[
  {
    "path": ".git-blame-ignore-revs",
    "content": "# PreTeXt whitespace/formatting commits\n# Commit message (e.g.): \"Add whitespace commit to git blame ignore revisions\"\n\n# May 2021: \"black\" formatting on Python pretext script\n56a27b3a41ece5a2eee1975e190e49b6cf98c500\n\n# Oct 2023: restructure WW chapter as a book, indentation\n87f4f5e712e03024ae85589c8086d273d8241fd3\n\n# Mar 2025: empty elements in sample article\n36decdaa299138281dd461d021483a83fb7d1964\n"
  },
  {
    "path": ".gitignore",
    "content": "user/*\ndoc/guide/webwork-representations.ptx\nscript/mjsre/node_modules/\nscript/mjsre/package-lock.json\nscript/dynsub/node_modules/\nscript/dynsub/package-lock.json\npretext/__pycache__/**\npretext/lib/__pycache__/**\n.error_schema.log\n# WW examples\nexamples/webwork/Makefile.paths\n# any file ending in ~ (backups, usually)\n*~\n.vscode\n**/_build\n**/output\n**/cli.log\n**/rsbuild\n**/build\n**/node_modules/\n\n# cssbuilder output\ncss/dist/*.map\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "Contributing\n------------\n\nThanks for your interest in contributing to [PreTeXt](https://pretextbook.org).\n\nDetails on participation in the PreTeXt Community can be found at\n\n[Welcome to the PreTeXt Community](https://pretextbook.org/doc/guide/html/welcome.html)\n\nIn particular, discussion almost always begins in the Google Groups,\nand once there is consensus about what needs to be done\n(bug-fix, new feature, etc.), then an issue is created.\n\nPlease do not use issues for support questions and please\ninitiate feature requests in one of the Google Groups.  Pull\nrequests are welcome without discussion when something is clearly\nin error and the change is readily apparent.\n\nThanks for adapting to the idosyncracies of our project!\nSome specific details follow.\n\n(2022-06-19)\n\nReporting Errors\n----------------\n\nIf you have output that you think might be incorrect or misbehaved, please follow this procedure:\n\n* Check that your input conforms to the schema [Author's Guide](https://pretextbook.org/doc/author-guide/html/schema.html)\n* Add a small example of your problem to the \"minimal\" example in the `examples/minimal` directory and test there\n* Search the [pretext-support](https://groups.google.com/forum/#!forum/pretext-support) and [pretext-dev](https://groups.google.com/forum/#!forum/pretext-dev) Google Groups, and the [GitHub issues](https://github.com/rbeezer/mathbook/issues), to see if the problem is known (if so, please add any new information there)\n* Post on one of the Google Groups, and include the source of your adjusted minimal example, along with a copy of the problematic output\n* If your problem involves HTML output, it is usually easier for us to understand if you host a live example and provide a URL in your post\n* If you have discovered a new problem, you can help when asked by filing an issue on GitHub (and it is OK to cut/paste from th Google Group discussion and/or link to a discussion there)\n\nThanks for your help keeping all the volunteers on this project working efficiently.\n\n(2018-08-27)\n\n\nContributing to PreTeXt\n-----------------------\n\nThanks for your interest in making PreTeXt better.  Contributions from users are an important part of its development.  The following suggestions are meant to make the process of creating and accepting a contribution easier for you, and easier for the maintainers.\n\n*  Use the [pretext-dev](https://groups.google.com/forum/#!forum/pretext-dev) Google Group to float your idea before starting.  You will get some good feedback that will make your contribution better and you may get some cautions that will save you some effort.\n*  Pull requests on GitHub are the easiest way to contribute and are really the only practical way for us to review, test, and incorporate your work.  If you are new to Git, there is lots of information on the Internet, and some of it is even helpful and accurate.  You can also read a guide we put together, [Git for Authors](https://pretextbook.org/gfa/html/). Despite the title, it has general principles and techniques that work equally well for software.\n*  **Always** begin a new branch for a contribution.  And keep topically distinct contributions on different branches.  Small and compact is better than large and diverse.\n*  Pull frequently from the main line of development for official PreTeXt (`master` at this writing) to update current progress.  Then **rebase** your topic branch onto the tip of this official branch as you work, as follows.\n```\ngit switch master\ngit pull origin master\ngit switch topic\ngit rebase master\n```\n*  In particular, **do not merge** `master` into your `topic` branch, that makes our job harder when we add your work into the official repository.\n*  Once you have your branch in good shape, be sure you update `master` one last time and rebase onto the tip of `master`.  Then make a pull request with that branch.\n*  While your work is being reviewed, do not add any new commits to your branch, and do not rebase it again, unless you are asked to add changes.  If you later need to build on your work, then say so in the discussion area and we can plot how to accomodate that.  But it would be better to not make a pull request until you are completely finished with a task.\n*  We are likely to combine your commits, and maybe even then distribute them into logical chunks.  We will edit your commit messages, deleting anything beyond a single line (so do not spend time on that).\n*  We will preserve your authorship, and mark the commit(s) with the pull request number so there is a record of where it came from and how (or we will merge and put the pull request number on the merge commit).\n*  Once we incorporate your work into the mainline of the official repository, then you can pull those changes and delete your topic branch.\n\n(2018-08-27)\n"
  },
  {
    "path": "COPYING",
    "content": "Copyright 2013 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n"
  },
  {
    "path": "README.md",
    "content": "PreTeXt\n=======\n\nAn authoring and publishing system for authors of textbooks, research articles, and monographs, especially in STEM disciplines.\n\nGPL License.\n\nQuickstart instructions at project website:  [pretextbook.org](https://pretextbook.org)\n\nHelp and development discussions:\n* Support forum/mailing-list: [pretext-support](https://groups.google.com/forum/#!forum/pretext-support)\n* Announcements only, low-volume: [pretext-announce](https://groups.google.com/forum/#!forum/pretext-announce)\n* Submitting an issue is the last option for receiving help. See the [Contributing Guide](CONTRIBUTING.md).\n\nPreTeXt is guided by the following principles:\n----------------------------------------------\n1. PreTeXt is a markup language that captures the structure of\ntextbooks and research papers.\n2. PreTeXt is human-readable and human-writable.\n3. PreTeXt documents serve as a single source which can be\neasily converted to multiple other formats, current and future.\n4. PreTeXt respects the good design practices which have been\ndeveloped over the past centuries.\n5. PreTeXt makes it easy for authors to implement features which\nare both common and reasonable.\n6. PreTeXt supports online documents which make use of the full\ncapabilities of the Web.\n7. PreTeXt output is styled by selecting from a list of available\ntemplates, relieving the author of the burden involved\nin micromanaging the output format.\n8. PreTeXt is free: the software is available at no cost, with an\nopen license. The use of PreTeXt does not impose any constraints\non documents prepared with the system.\n9. PreTeXt is not a closed system: documents can be converted to\nLaTeX and then developed using standard LaTeX tools.\n10. PreTeXt recognizes that scholarly documents involve the\ninteraction of authors, publishers, scholars, curators, instructors,\nstudents, and readers, with each group having its own needs\nand goals.\n11. PreTeXt recognizes the inherent value in producing material\nthat is accessible to everyone.\n"
  },
  {
    "path": "contrib/hitchman/README.md",
    "content": "Hitchman's Linear Algebra Workbook\n==================================\n\nCompatibility layers to support TJ Hitchman's Linear Algebra workbook for his IBL course.\n\nFirst used Fall 2014.  Principally a new \"Task\" environment was added.  But with the addition of a `task` element, and its subsequent re-purposing in Summer 2017, that code has been removed.\n"
  },
  {
    "path": "contrib/hitchman/tjh-law-html.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\r\n\r\n<!-- For TJ Hitchman's Linear Algebra Workbook     -->\r\n<!-- 2014/09/09  R. Beezer, implemented \"tasks\"    -->\r\n<!-- 2017/08/04  R. Beezer, removed \"tasks\"        -->\r\n\r\n<!-- Identify as a stylesheet -->\r\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\r\n\r\n<!-- Import the usual LaTeX conversion templates            -->\r\n<!-- Place this file in  mathbook/user  (mkdir if necessary)-->\r\n<xsl:import href=\"../xsl/mathbook-html.xsl\" />\r\n\r\n<!-- Intend output for rendering by pdflatex -->\r\n<xsl:output method=\"html\" />\r\n\r\n<!-- Style code output to have red text -->\r\n<!-- And pump up the font size          -->\r\n<xsl:template match=\"c\">\r\n\t<tt class=\"code-inline\" style=\"color: red; font-size: 120%\">\r\n\t\t<xsl:apply-templates />\r\n\t</tt>\r\n</xsl:template>\r\n\r\n<!-- custom numbering flags -->\r\n<xsl:param name=\"numbering.maximum.level\">\r\n\t<xsl:text>2</xsl:text>\r\n</xsl:param>\r\n<xsl:param name=\"numbering.theorems.level\">\r\n\t<xsl:text>1</xsl:text>\r\n</xsl:param>\r\n\r\n</xsl:stylesheet>\r\n"
  },
  {
    "path": "contrib/hitchman/tjh-law-print.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\r\n\r\n<!-- For TJ Hitchman's Linear Algebra Workbook     -->\r\n<!-- 2014/09/04  R. Beezer, page break at sections -->\r\n<!-- 2014/09/09  R. Beezer, implemented \"tasks\"    -->\r\n<!-- 2017/08/04  R. Beezer, removed \"tasks\"        -->\r\n\r\n<!-- Identify as a stylesheet -->\r\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\r\n\r\n<!-- Import the usual LaTeX conversion templates            -->\r\n<!-- Place this file in  mathbook/user  (mkdir if necessary)-->\r\n<xsl:import href=\"../xsl/mathbook-latex.xsl\" />\r\n\r\n<!-- Intend output for rendering by pdflatex -->\r\n<xsl:output method=\"text\" />\r\n\r\n<!-- Examples of items you usually set as \"stringparam\" on the command line -->\r\n<xsl:param name=\"latex.font.size\" select=\"'10pt'\" />\r\n\r\n<!-- Makes hyperlinks, program listings, etc. black & white -->\r\n<xsl:param name=\"latex.print\">\r\n\t<xsl:text>yes</xsl:text>\r\n</xsl:param>\r\n\r\n<!-- custom numbering flags -->\r\n<xsl:param name=\"numbering.maximum.level\">\r\n\t<xsl:text>2</xsl:text>\r\n</xsl:param>\r\n<xsl:param name=\"numbering.theorems.level\">\r\n\t<xsl:text>1</xsl:text>\r\n</xsl:param>\r\n\r\n<!-- Enhance processing of sections    -->\r\n<!-- Add a \\clearpage to the end, plus -->\r\n<!-- a newline for very clean source   -->\r\n<xsl:template match=\"section\">\r\n\t<xsl:apply-imports />\r\n\t<xsl:text>\\clearpage&#xa;</xsl:text>\r\n</xsl:template>\r\n\r\n</xsl:stylesheet>\r\n"
  },
  {
    "path": "contrib/ups-writers/README.md",
    "content": "University of Puget Sound's \"Writer's Handbook\"\n===============================================\n\nCompatibility layers to support extra features for discussing aspects of writing.\n\n* Different styles of underlining.\n* Colors to indicate parts of bibliography entries.\n* A different ellipsis for text use.\n\nFirst used Fall 2016.  None of this should be taken as especially semantic, so is not a good example of the PreTeXt philosophy.\n"
  },
  {
    "path": "contrib/ups-writers/ups-writers-html.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\r\n\r\n<!-- For University of Puget Sound, Writer's Handbook      -->\r\n<!-- 2016/07/29  R. Beezer, rough underline styles         -->\r\n\r\n<!-- Identify as a stylesheet -->\r\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\r\n\r\n<!-- Import the usual HTML conversion templates          -->\r\n<!-- Place ups-writers-html.xsl file into  mathbook/user -->\r\n<xsl:import href=\"../xsl/mathbook-html.xsl\" />\r\n\r\n<xsl:output method=\"html\" />\r\n\r\n<xsl:param name=\"html.css.file\" select=\"'mathbook-ups.css'\"/>\r\n<xsl:param name=\"html.knowl.example\" select=\"'no'\"/>\r\n\r\n<xsl:param name=\"chunk.level\" select=\"'3'\" />\r\n\r\n<!-- Make marked <p>s hanging indented for citiation chapter. -->\r\n<xsl:template match=\"p[@indent='hanging']\" mode=\"body\">\r\n    <xsl:param name=\"block-type\" />\r\n    <xsl:param name=\"b-original\" select=\"true()\" />\r\n    <xsl:if test=\"$block-type = 'xref'\">\r\n        <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\" />\r\n    </xsl:if>\r\n    <xsl:element name=\"p\">\r\n        <!-- Beginning of customization -->\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>padding-left: 2em; text-indent: -2em;</xsl:text>\r\n        </xsl:attribute>\r\n        <!-- End of customization -->\r\n        <xsl:if test=\"$b-original\">\r\n            <xsl:attribute name=\"id\">\r\n                <xsl:apply-templates select=\".\" mode=\"internal-id\" />\r\n            </xsl:attribute>\r\n        </xsl:if>\r\n        <xsl:apply-templates select=\"*|text()\">\r\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\r\n        </xsl:apply-templates>\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n<xsl:template match=\"un[@s='1']\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"class\">\r\n            <xsl:text>underline-single</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>border-bottom: 1px solid;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates />\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n<!-- http://stackoverflow.com/questions/15643614/double-underline-tag -->\r\n<xsl:template match=\"un[@s='2']\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"class\">\r\n            <xsl:text>underline-double</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>border-bottom: 3px double;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates />\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n<xsl:template match=\"un[@s='3']\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"class\">\r\n            <xsl:text>underline-dashed</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>border-bottom: 1px dashed;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates />\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n<xsl:template match=\"un[@s='4']\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"class\">\r\n            <xsl:text>underline-dotted</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>border-bottom: 1px dotted;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates />\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n<!-- A wavy underline, potential '5':                               -->\r\n<!--   (1) won't span lines (needs non-breaking space for snippets) -->\r\n<!--   (2) must go into CSS, becaue of \"after\" pseudo-class         -->\r\n<!-- http://stackoverflow.com/questions/28152175/a-wavy-underline-in-css -->\r\n\r\n<!-- .mathbook-content .underline-wavy { -->\r\n<!-- border-bottom:2px dotted black; -->\r\n<!-- display: inline; -->\r\n<!-- position: relative; -->\r\n<!-- } -->\r\n<!--  -->\r\n<!-- .underline-wavy:after { -->\r\n<!-- content: ''; -->\r\n<!-- height: 5px; -->\r\n<!-- width: 100%; -->\r\n<!-- border-bottom:2px dotted black; -->\r\n<!-- position: absolute; -->\r\n<!-- bottom: -3px; -->\r\n<!-- left: -2px; -->\r\n<!-- } -->\r\n\r\n<!-- Ellipsis (dots), for text, not math -->\r\n<xsl:template match=\"ellipsis\">\r\n    <xsl:text>.&#xa0;.&#xa0;.</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- Bibliography Formatting -->\r\n<xsl:template match=\"i\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>font-style: italic;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n<!-- Bibliography Colors -->\r\n<xsl:template match=\"black\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: black;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"red\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: red;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"lightblue\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: lightblue;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"lightgreen\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: lightgreen;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"lightpurple\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: violet;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"maroon\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: maroon;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"pink\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: pink;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"darkred\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: darkred;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"blue\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: blue;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"orange\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: orange;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"teal\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: teal;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"darkpurple\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: darkviolet;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"lightpink\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: lightpink;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"green\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: green;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"darkgreen\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: darkgreen;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"navy\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: navy;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n<xsl:template match=\"gray\">\r\n    <xsl:element name=\"span\">\r\n        <xsl:attribute name=\"style\">\r\n            <xsl:text>color: gray;</xsl:text>\r\n        </xsl:attribute>\r\n        <xsl:apply-templates/>\r\n    </xsl:element>\r\n</xsl:template>\r\n\r\n</xsl:stylesheet>\r\n"
  },
  {
    "path": "contrib/ups-writers/ups-writers-latex.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\r\n\r\n<!-- For University of Puget Sound, Writer's Handbook      -->\r\n<!-- 2016/07/29  R. Beezer, rough underline styles         -->\r\n\r\n<!DOCTYPE xsl:stylesheet [\r\n    <!ENTITY % entities SYSTEM \"../xsl/entities.ent\">\r\n    %entities;\r\n]>\r\n\r\n<!-- Identify as a stylesheet -->\r\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\r\n\r\n<!-- Import the usual LaTeX conversion templates          -->\r\n<!-- Place ups-writers-latex.xsl file into  mathbook/user -->\r\n<xsl:import href=\"../xsl/mathbook-latex.xsl\" />\r\n\r\n<xsl:output method=\"text\" />\r\n\r\n<!-- Make marked <p>s hanging indented for citiation chapter. -->\r\n<xsl:template match=\"p[@indent='hanging']\">\r\n    <xsl:if test=\"preceding-sibling::*[not(&SUBDIVISION-METADATA-FILTER;)][1][self::p or self::paragraphs or self::sidebyside]\">\r\n        <xsl:text>\\par&#xa;</xsl:text>\r\n    </xsl:if>\r\n    <!-- Beginning of customization -->\r\n    <xsl:text>\\hangindent=\\parindent{}\\hangafter=1{}\\noindent{}</xsl:text>\r\n    <!-- End of customization -->\r\n    <xsl:apply-templates/>\r\n    <xsl:text>%&#xa;</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- If also loaded for insert, delete, stale,       -->\r\n<!-- presumably not a problem to attempt second load -->\r\n<xsl:param name=\"latex.preamble.late\">\r\n    <xsl:text>\\usepackage{ulem}&#xa;</xsl:text>\r\n    <xsl:text>\\normalem&#xa;</xsl:text>\r\n    <xsl:text>\\raggedbottom&#xa;</xsl:text>\r\n</xsl:param>\r\n\r\n<!-- General commands from the \"ulem\" package -->\r\n<!-- Make semantic versions if made official  -->\r\n\r\n<!-- single -->\r\n<xsl:template match=\"un[@s='1']\">\r\n    <xsl:text>\\uline{</xsl:text>\r\n    <xsl:apply-templates />\r\n    <xsl:text>}</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- double -->\r\n<xsl:template match=\"un[@s='2']\">\r\n    <xsl:text>\\uuline{</xsl:text>\r\n    <xsl:apply-templates />\r\n    <xsl:text>}</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- dashed -->\r\n<xsl:template match=\"un[@s='3']\">\r\n    <xsl:text>\\dashuline{</xsl:text>\r\n    <xsl:apply-templates />\r\n    <xsl:text>}</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- dotted -->\r\n<xsl:template match=\"un[@s='4']\">\r\n    <xsl:text>\\dotuline{</xsl:text>\r\n    <xsl:apply-templates />\r\n    <xsl:text>}</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- A wavy underline, potential '5': \\uwave{} -->\r\n\r\n<!-- Ellipsis (dots), for text, not math -->\r\n<xsl:template match=\"ellipsis\">\r\n    <xsl:text>{.~.~.}</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- Bibliography Formatting -->\r\n<xsl:template match=\"i\">\r\n    <xsl:text>\\textit{</xsl:text>\r\n    <xsl:apply-templates/>\r\n    <xsl:text>}</xsl:text>\r\n</xsl:template>\r\n\r\n<!-- Bibliography Colors -->\r\n<xsl:template match=\"black\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{black}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"red\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{red}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"lightblue\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{LightBlue}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"lightgreen\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{LightGreen}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"lightpurple\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{Lavender}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"maroon\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{Maroon}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"pink\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{pink}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"darkred\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{DarkRed}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"blue\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{blue}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"orange\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{orange}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"teal\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{teal}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"darkpurple\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{DarkViolet}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"lightpink\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{LightPink}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"green\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{green}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"darkgreen\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{DarkGreen}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"navy\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{Navy}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n<xsl:template match=\"gray\">\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>\\textcolor{gray}{</xsl:text>\r\n    </xsl:if>\r\n    <xsl:apply-templates/>\r\n    <xsl:if test=\"$latex.print='no'\">\r\n        <xsl:text>}</xsl:text>\r\n    </xsl:if>\r\n</xsl:template>\r\n</xsl:stylesheet>\r\n"
  },
  {
    "path": "css/README.md",
    "content": "# Notes on CSS structure and development\n\nPreTeXt books expect to use a `theme.css` file for its styling. SCSS is used to build that CSS file.\n\nA few themes (the default-modern one and legacy ones that predate SCSS overhaul) are provided \"prerolled\" in `css/dist`. These can be used without rebuilding from SCSS and even gently modified via the appending of CSS `variables` to customize things like `primary-color`.\n\nOther themes, or using `options` to more substantially change a \"prerolled\" theme, require that the theme is rebuilt.\n\n## Building\n\nIf a book's theme requires building, the pretext script or CLI should handle all of the build details. If you are using the CLI, it should handle installing the build tools as well. If you are using the pretext script, you will need to [install Node and the build script dependencies manually](../script/cssbuilder/README.md#installing-node-and-dependencies)\n\nFor more advanced use, including rebuilding themes by hand, see the [CSS Builder script README](../script/cssbuilder/README.md)\n\n### Installing NPM\n\nYou will need to [install node](https://nodejs.org/en/download/package-manager).\n\nInstall the needed dependencies by switching to the `pretext/script/cssbuilder` and doing `npm install`.\n\nRun `npm run build` to build all the default targets to the output directory (default is `pretext/css/dist`). You can change the directory the build product is produced into with `-o PATH`. If using a relative path, make sure to specify it from the `cssbuilder` folder.\n\n## Folders\n\n### colors\n\nColor palettes that ideally can be used across multiple themes, though it is not expected every palette will be available in every theme. These are all designed to produce a variable `$colors` containing a map of variable definitions. The theme is responsible for turning that map into CSS variables via the `scss-to-css` function.\n\nIf a shared palette needs slight modifications by a given theme, the theme can simply override the individual variables (or add new ones). See the comment in `theme-default-modern` for an example.\n\n### components\n\nShared files that are (or are expected to be) used across many **targets**.\n\nSome of these files are in need of refactoring and modularization.\n\nSee README.md in subfolders of `components/` for tips on organization of subcomponents.\n\n### dist\n\nBuilt CSS ready for inclusion by pretext.\n\nFiles in the directory **should not be modified by hand**. The CSS build script in `script/cssbuilder` will produce these files from the items in the `targets` directory.\n\n### fonts\n\nMechanisms for selection of fonts by a theme\n\n### legacy\n\nFiles only used by legacy (pre scss) styles\n\n### targets\n\nRoot targets that produce a CSS file. Anything that represents a self-contained final product belongs here.\n\nAny files that are designed only to be used in one target also belong here, grouped with the target they belong to. For example, if `foo.scss` is only intended to be used by the `reveal` target, that file should be placed in the `revealjs` folder.\n\n### other\n\nCSS that is not a part of producing PreTeXt volumes and is not bundled into any target in `dist/` e.g. CSS related to the PreTeXt catalog.\n\n## File \"ownership\", @use, and copy/paste\n\nFiles in the `target` folder are considered \"owned\" by the folder they are in. When making changes to those files you are encouraged to think about other targets in the same \"family\" that may @use the files, but are not expected to go out of your way to fix issues in those other targets that result from the changes.\n\nFiles in `components` are \"shared\". Changes to them should consider (and test) all targets that @use the component.\n\nThere is a balancing act between the complexity of the include tree for targets and avoiding duplication of effort. Avoid coping/pasting large numbers of rules from one target to another. If you want to reuse some of the rules from another target, consider factoring out those rules into a `component` that the old file and your new one can both @use. But doing so to reuse a small number of CSS rules likely creates more complexity than simply duplicating those rules in your target.\n\n## Tips on differentiating theme code\n\n1) In cases of significantly different CSS, we try to provide different scss files that themes can choose to import (see `_toc-default` vs `_toc-overlay`). As any given theme will only (hopefully) import one of the options, we don't have to worry about cross talk between the CSS. Common features of the two can be factored out into a sheet they both import (`_toc-basics`).\n\n2) In cases of more minor variations, especially those that end up affecting multiple rules (e.g. how much margin to apply, whether or not to round off border corners) we try to pass in a variable to the scss file to control that aspect. Those variables can have defaults that are applied if a theme does not specify a default. The downside here is that variables need to be passed all the way down through any stylesheets that are between the theme and the target sheet. So in this case a theme file like `theme-default-modern` would have to pass $toc-expander-style to  `_toc-default` as it imports that and `_to-default` would then have to pass it to `_toc-basics` where it is applied.\n\n3) Differences that are only value differences in CSS properties can be set as cssvaraibles. We use that for lots of the colors. A low level file can set `border-right: 1px solid var(--toc-border-color);`. Then a theme can change --toc-border-color` and the new color is used.\n\n4) The last approach is to just define CSS in the theme SCSS file that adds to or overrides what is produced in the import. This works well if the change only makes sense in the context of a particular theme AND if they are extending what is already there instead of undoing all of the defaults to replace them with something new.  We do this for things like Salem making a bunch of the RS elements wider. If the same logic needs to be applied to multiple themes, consider making a mixin file that they can opt into (see `toc-expand-chevrons`).\n"
  },
  {
    "path": "css/colors/_color-helpers.scss",
    "content": "// This file contains functions and mixins for working with colors in SCSS\n\n@use \"sass:map\";\n@use \"sass:color\";\n\n@mixin set-root-colors($colors, $dark-colors: null) {\n  :root {\n    color-scheme: light;\n    // prevent variable leak through to dark\n    &:not(.dark-mode) {\n      @include scss-to-css($colors);\n    }\n  }\n\n  @if $dark-colors {\n    :root.dark-mode {\n      color-scheme: dark;\n      @include scss-to-css($dark-colors);\n    }\n  }\n}\n\n// Renders a map of SCSS variables as CSS variables\n@mixin scss-to-css($colors) {\n  @each $name, $value in $colors {\n    --#{$name}: #{$value};\n  }\n}\n\n// Create a map of colors that blend $color with $other at $mix-amounts\n// The resulting map will have keys of the form 'color-other-10'\n// Indicating 10% of other mixed into color\n@function mixes($color, $other, $mix-amounts) {\n  $result: ();\n\n  @each $i in $mix-amounts {\n    $result: map.set($result, '#{$color}-#{$other}-#{$i}', 'color-mix(in oklab, var(--#{$color}), #{$other} #{$i}%)');\n  }\n\n  @return $result;\n}\n\n$std-mixes: (1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 65, 70, 75, 80, 85, 90, 95, 96, 97, 98, 99);\n\n// Creates a map of color blends for a given color\n// By default it creates blends with black, white, and gray at $std-mixes amounts\n// Mixing is done using css color-mix function so that if a theme file has the base\n// css variable overridden, the blends will be updated accordingly\n@function get-blends($color, $shades: $std-mixes, $tints: $std-mixes, $tones: $std-mixes, ) {\n  $shades: mixes($color, black, $std-mixes);\n  $tints: mixes($color, white, $std-mixes);\n  $tones: mixes($color, gray, $std-mixes);\n\n  $blends: map.merge(\n    $tints,\n    $shades\n  );\n\n  $blends: map.merge(\n    $blends,\n    $tones\n  );\n  @return $blends;\n}\n\n//--------------------------------------------------------------------------\n// https://jonnykates.medium.com/automating-colour-contrast-ratios-with-sass-e201f3b52797\n// Formula there has a typo, need parens around the sum of the three color channels\n\n@function text-contrast($color, $light: #ffffff, $dark: #000000) {\n  $color-brightness: round(\n    (\n      (color.red($color) * 299) +\n      (color.green($color) * 587) +\n      (color.blue($color) * 114)\n    ) / 1000\n  );\n\n  $light-color: round(\n    (\n      (color.red(#ffffff) * 299) +\n      (color.green(#ffffff) * 587) +\n      (color.blue(#ffffff) * 114)\n    ) / 1000\n  );\n\n  @if abs($color-brightness) < calc($light-color / 2){\n    @return $light;\n  } @else {\n    @return $dark;\n  }\n}\n\n// @debug \"text-contrast(#7b7b55) should be #ffffff: \" text-contrast(#7b7b55);\n// @debug \"text-contrast(#9b9b70) should be #000000: \" text-contrast(#9b9b70);\n// @debug \"text-contrast(#766f7a) should be #ffffff: \" text-contrast(#766f7a);\n// @debug \"text-contrast(#70909b) should be #000000: \" text-contrast(#70909b);\n//--------------------------------------------rgb(25, 25, 24)-----------------------\n"
  },
  {
    "path": "css/colors/_color-vars.scss",
    "content": "/*\n  Master list of color variables and default values.\n  Variables are defined in SCSS to allow for calculation of values. They are\n  then converted to CSS variables for use in the HTML so authors can, if\n  need be, override them with custom CSS.\n\n  Any new variable should be added to this file and either defined to another\n  variable or given a reasonable default value for the red-blue default theme.\n\n  Variables should be semantic, not descriptive\n  i.e. --link-color, not --pretty-blue\n*/\n\n@use \"sass:map\";\n\n// ==============================================================================\n// Light theme\n\n// ==============================================================================\n// Page structures\n\n$colors: (\n  // Background of page (gutters if any)\n  \"page-color\": white,\n  // Background of content area\n  \"content-background\": white,\n  // Border around content area - also possibly used for internal borders\n  \"page-border-color\": #ccc,\n\n  // ------------------------------------------------------------------------------\n  // Banner/nav related\n\n  \"doc-title-color\": #932919,\n  \"byline-color\": #333,\n  \"banner-background\": #fafafa,\n  \"navbar-background\": #ededed,\n  \"footer-background\": var(--banner-background),\n\n  // ------------------------------------------------------------------------------\n  // TOC related\n\n  \"toc-border-color\": #666,\n  \"toc-background\": var(--content-background),\n\n  \"tocitem-background\": var(--toc-background),\n  \"toc-text-color\": var(--body-text-color),\n\n  // highlight styles are used for hover\n  \"tocitem-highlight-background\": #671d12,\n  \"tocitem-highlight-text-color\": white,\n  \"tocitem-highlight-border-color\": var(--toc-border-color),\n  \n  // active styles are used for the current toc item\n  \"tocitem-active-background\": #671d12,\n  \"tocitem-active-text-color\": white,\n  \"tocitem-active-border-color\": var(--toc-border-color),\n\n  // level based colors for TOC\n  // levels are not necessarily all used\n  // see the toc-basics.scss for how these are determined\n  \"toclevel1-background\": var(--content-background),\n  \"toclevel1-text-color\": var(--toc-text-color),\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel2-text-color\": var(--toc-text-color),\n  \"toclevel3-background\": var(--content-background),\n  \"toclevel3-text-color\": var(--toc-text-color),\n\n\n  // ==============================================================================\n  // Content\n  // ==============================================================================\n\n  // ------------------------------------------------------------------------------\n  // Text & titles\n\n  \"body-text-color\": #000,\n  \"body-title-color\": #000,\n\n  \"ptx-image-bg\": transparent,\n  \"activated-content-bg\": rgba(241, 185, 255, 30%),\n\n  \"summary-link-background\": var(--button-background),\n  \"summary-link-text-color\": var(--button-text-color),\n  \"summary-link-hover-background\": var(--button-hover-background),\n  \"summary-link-hover-text-color\": var(--button-hover-text-color),\n\n  // ------------------------------------------------------------------------------\n  // Links & knowls\n\n  \"link-text-color\": #2B5F82,\n  \"link-background\": transparent,\n  \"link-active-text-color\": var(--link-text-color),\n  \"link-active-background\": #cad2e1,\n\n  \"link-alt-text-color\": #A62E1C,\n  \"link-alt-background\": transparent,\n  \"link-alt-active-text-color\": var(--link-alt-text-color),\n  \"link-alt-active-background\": #e3d1ce,\n\n  \"knowl-link-color\": var(--link-text-color),\n  \"knowl-background\": #f5f8ff,\n  \"knowl-border-color\": #e0e9ff,\n  \"knowl-nested-1-background\": #f5f5ff,\n  \"knowl-nested-2-background\": #fffff5,\n  \"knowl-nested-3-background\": #f5ffff,\n  \"knowl-nested-4-background\": #fff5f5,\n\n  // ------------------------------------------------------------------------------\n  // Blocks\n\n  // Fall back generic block colors:\n  \"block-body-background\": var(--content-background),\n  \"block-border-color\": var(--knowl-border-color),\n  \"block-head-color\": var(--body-text-color),\n\n  // See below for specific block types\n  \n  \"aside-like-link-color\": var(--link-text-color),\n\n  // ------------------------------------------------------------------------------\n  // Buttons & Widgets\n\n  \"button-background\": #ededed,\n  \"button-text-color\": #333333,\n  \"button-border-color\": #ccc,\n  \"button-hover-background\": #c7c7c7,\n  \"button-hover-text-color\": var(--button-text-color),\n\n  \"dropdown-background\": var(--content-background),\n  \"dropdown-border-color\": var(--toc-border-color),\n  \"dropdown-text-color\": var(--toc-text-color),\n  \"dropdown-hover-background\": var(--tocitem-active-background),\n  \"dropdown-hover-text-color\": var(--tocitem-active-text-color),\n\n  // ------------------------------------------------------------------------------\n  // Other\n  \"code-background\": #fdfdfd,\n  \"code-inline-background\": #ededed,\n);\n\n// ==============================================================================\n// Block types\n\n// Variables for specific block types should look like those below. In this file\n// only \"top level\" blocks from the -like families are defined. \n// Other themes/color palettes may define\n// more specific ones - see palette_quad_chunks.scss for an example.\n\n// block-types based on those in entities.ent\n$block-types: \"assemblage-like\", \"definition-like\", \"theorem-like\", \"theorem-like\", \"axiom-like\", \"remark-like\", \"computation-like\", \"openproblem-like\", \"aside-like\", \"proof-like\", \"example-like\", \"project-like\", \"goal-like\", \"solution-like\";\n// TODO - \"proof\" should probably be updated to \"proof-like\" in HTML css\n\n@each $block in $block-types {\n  $colors: map.merge(\n    $colors,\n    (\n      // define background and border, but default to generic block colors\n      \"#{$block}-body-background\": var(--block-body-background),\n      \"#{$block}-border-color\": var(--block-border-color),\n    )\n  );\n}\n"
  },
  {
    "path": "css/colors/_palette-dark.scss",
    "content": "// Implements a dark theme single color palette using a --primary-color\n\n@use \"sass:meta\";\n@use \"sass:color\";\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/color-vars.scss\" as color-vars;\n\n$primary-color: #6285ca !default;\n$background-color: #23241f !default;\n\n// Grab all color variables, override some for palette\n$colors: map.merge(\n  color-vars.$colors,\n  (\n  \"primary-color\": $primary-color,\n  \"background-color\": $background-color,\n\n  // Background of page (gutters if any)\n  \"page-color\": var(--background-color),\n  // Background of content area\n  \"content-background\": var(--page-color),\n  // Border around content area - also possibly used for internal borders\n  \"page-border-color\": var(--background-color-white-25),\n\n  // ------------------------------------------------------------------------------\n  // Banner/nav related\n\n  \"doc-title-color\": var(--primary-color),\n  \"banner-background\": $background-color,\n  \"navbar-background\": var(--background-color-gray-15),\n  \"footer-background\": var(--background-color-black-10),\n\n  // ------------------------------------------------------------------------------\n  // TOC related\n\n  \"toc-border-color\": #555,\n  \"toc-text-color\": var(--body-text-color),\n\n  // highlight styles are used for hover/active states\n  \"tocitem-highlight-background\": var(--primary-color-gray-5),\n  // \"tocitem-highlight-text-color\": white,\n  \"tocitem-highlight-text-color\": var(--background-color-black-50),\n  \n  \"tocitem-active-background\": var(--primary-color-gray-5),\n  // \"tocitem-active-text-color\": white,\n  \"tocitem-active-text-color\": var(--background-color-black-50),\n\n  \"toclevel1-background\": var(--background-color-gray-10),\n  \"toclevel1-text-color\": var(--primary-color-white-40),\n  \"toclevel2-background\": var(--toclevel1-background),\n  \"toclevel2-text-color\": var(--toclevel1-text-color),\n  \"toclevel3-background\": var(--content-background),\n  \"toclevel3-text-color\": var(--toc-text-color),\n\n  // ==============================================================================\n  // Content\n  // ==============================================================================\n\n  // ------------------------------------------------------------------------------\n  // Text & titles\n\n  \"body-text-color\": #f2f2f2,\n  \"body-title-color\": var(--primary-color-white-20),\n  \"byline-color\": var(--background-color-white-50),\n  \n  \"ptx-image-bg\": white,\n\n  \"activated-content-bg\": rgba(255, 237, 185, 20%),\n\n  // ------------------------------------------------------------------------------\n  // Links & knowls\n\n  \"link-text-color\": var(--primary-color-white-10),\n  \"link-active-background\": var(--background-color-gray-30),\n  \"link-active-text-color\": var(--primary-color-white-40),\n  \"link-alt-text-color\": var(--link-text-color),\n  \"link-alt-active-background\": var(--link-active-text-color),\n  \"knowl-link-color\": var(--doc-title-color),\n  \"knowl-background\": var(--background-color-black-10),\n  \"knowl-border-color\": var(--background-color-white-20),\n  \"knowl-nested-1-background\": var(--background-color-gray-10),\n  \"knowl-nested-2-background\": var(--background-color-black-10),\n  \"knowl-nested-3-background\": var(--background-color-gray-10),\n  \"knowl-nested-4-background\": var(--background-color-black-10),\n\n  // ------------------------------------------------------------------------------\n  // Groupings (assemblages, etc...)\n\n  // ------------------------------------------------------------------------------\n  // Buttons & Widgets\n  \"button-background\": var(--background-color-gray-15),\n  \"button-border-color\": var(--background-color-white-25),\n  \"button-hover-background\": var(--primary-color-black-50),\n  \"button-text-color\": var(--body-text-color),\n\n  // ------------------------------------------------------------------------------\n  // Other\n  \"code-background\": var(--background-color-gray-20),\n  \"code-inline-background\": var(--background-color-gray-20),\n  )\n);\n\n\n// Compute color blends and add them as variables\n$blends: colorHelpers.get-blends('background-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n\n// Compute color blends and add them as variables\n$blends: colorHelpers.get-blends('primary-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n"
  },
  {
    "path": "css/colors/_palette-dual.scss",
    "content": "// Implements a palette with two main colors, --primary-color and --secondary-color\n\n@use \"sass:meta\";\n@use \"sass:color\";\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/color-vars\" as color-vars;\n\n$schemes: (\n  \"blue-red\": (\n    \"primary-color\": #195684,\n    \"secondary-color\": #932c1c,\n  ),\n  \"blue-green\": (\n    \"primary-color\": #195684,\n    \"secondary-color\": #28803f,\n  ),\n  \"green-blue\": (\n    \"primary-color\": #1a602d,\n    \"secondary-color\": #2a5ea4,\n  ),\n  \"greens\": (\n    \"primary-color\": #193e1c,\n    \"secondary-color\": #347a3a,\n  ),\n  \"blues\": (\n    \"primary-color\": hsl(217, 70%, 20%),\n    \"secondary-color\": hsl(216, 42%, 47%),\n  ),\n);\n\n$palette: 'red-blue' !default;\n\n@if not map.has-key($schemes, $palette) {\n  @error \"Unknown color scheme #{$palette} for theme. Valid schemes are: #{map.keys($schemes)}\";\n}\n\n// if primary-color or secondary-color are not set, use the scheme colors\n$primary-color: null !default;\n$secondary-color: null !default;\n\n@if $primary-color == null {\n  $scheme-primary-color: map.get(map.get($schemes, $palette), \"primary-color\");\n  $primary-color: $scheme-primary-color;\n}\n@if $secondary-color == null {\n  $scheme-secondary-color: map.get(map.get($schemes, $palette), \"secondary-color\");\n  $secondary-color: $scheme-secondary-color;\n}\n\n// Start with values from color-vars\n$colors: map.merge(\n  color-vars.$colors, ()\n);\n\n// Compute color blends and add them as variables\n$blends: colorHelpers.get-blends('primary-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n$blends: colorHelpers.get-blends('secondary-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n\n// Override some colors\n$colors: map.merge(\n  $colors,\n  (\n    \"primary-color\": $primary-color,\n    \"secondary-color\": $secondary-color,\n\n    \"link-text-color\": var(--primary-color),\n    \"link-active-text-color\": var(--primary-color-black-20),\n    \"link-background\": var(--primary-color-white-97),\n    \"link-active-background\": var(--link-background),\n\n    \"link-alt-text-color\": var(--secondary-color-black-10),\n    \"link-alt-active-background\": var(--secondary-color-white-97),\n    \"link-alt-background\": var(--secondary-color-white-97),\n\n    \"toc-border-color\": var(--primary-color-white-30),\n\n    \"toclevel1-background\": var(--primary-color),\n    \"toclevel1-text-color\": white,\n    \"toclevel2-background\": var(--primary-color-white-10),\n    \"toclevel2-text-color\": var(--toclevel1-text-color),\n\n    \"tocitem-highlight-background\": var(--secondary-color-white-10),\n    \"tocitem-highlight-text-color\": white,\n    \n    \"tocitem-active-background\": var(--secondary-color),\n    \"tocitem-active-text-color\": white,\n\n    \"doc-title-color\": var(--primary-color),\n\n    \"aside-like-body-background\": var(--knowl-background),\n    \"aside-like-border-color\": var(--knowl-border-color),\n\n    \"assemblage-like-body-background\": var(--knowl-background),\n    \"assemblage-like-border-color\": var(--knowl-border-color),\n\n    \"activated-content-bg\": color.scale($secondary-color, $lightness: 90%),\n\n    \"goal-like-border-color\": var(--secondary-color-white-20),\n\n    \"knowl-background\": var(--primary-color-white-97),\n    \"knowl-border-color\": var(--primary-color-white-30),\n    \"knowl-nested-1-background\": var(--secondary-color-white-97),\n    \"knowl-nested-2-background\": var(--primary-color-white-97),\n    \"knowl-nested-3-background\": var(--secondary-color-white-97),\n    \"knowl-nested-4-background\": var(--primary-color-white-97),\n  )\n);\n"
  },
  {
    "path": "css/colors/_palette-quad-chunks.scss",
    "content": "// Defines colors for grouping elements based on four colors to identify \n// block elements as either main, do, fact, or meta.\n\n// Intended to be used as a supplement to a palette that handles non-block elements\n// See theme-denver.scss for an example\n\n// Hint: color palettes general make the most sense if all four colors are distinct\n// or, if they are not, the close/identical colors are main/fact or do/meta\n\n@use 'sass:color';\n@use 'sass:map';\n\n$schemes: (\n  \"earth-sea\": (\n    \"color-main\": #573d31,\n    \"color-do\": #0f6385,\n    \"color-fact\": #997562,\n    \"color-meta\": #358292,\n  ),\n  \"leaves\": (\n    \"color-main\": #105b2f,\n    \"color-do\": #987436,\n    \"color-fact\": #29895c,\n    \"color-meta\": #c7522a,\n  ),\n  \"ice-fire\": (\n    \"color-main\": hsl(210, 45%, 27%),\n    \"color-do\": hsl(208, 7%, 49%),\n    \"color-fact\": #0f80b0,\n    \"color-meta\": #a13838,\n  ),\n  \"slate\": (\n    \"color-main\": hsl(210, 12%, 20%),\n    \"color-do\": #165976,\n    \"color-fact\": hsl(210, 5%, 32%),\n    \"color-meta\": #021e2a,\n  ),\n  \"bold\": (\n    \"color-main\": hsl(221, 61%, 21%),\n    \"color-do\": #51b39a,\n    \"color-fact\": #9a51b3,\n    \"color-meta\": #b3516a,\n  ),\n  \"bold2\": (\n    \"color-main\": hsl(221, 61%, 21%),\n    \"color-do\": hsl(118, 51%, 42%),\n    \"color-fact\": hsl(182, 90%, 35%),\n    \"color-meta\": hsl(51, 84%, 63%),\n  ),\n  \"primaries\": (\n    \"color-main\": #195684,\n    \"color-do\": #28803f,\n    \"color-fact\": #195684,\n    \"color-meta\": #932c1c, \n  ),\n  \"primaries2\": (\n    \"color-main\": #28803f,\n    \"color-do\": #195684,\n    \"color-fact\": #28803f,\n    \"color-meta\": #932c1c,\n  ),\n);\n\n$palette: 'bold' !default;\n\n@if not map.has-key($schemes, $palette) {\n  @error \"Unknown color scheme #{$palette} in theme. Valid schemes are: #{map.keys($schemes)}\";\n}\n\n// color-main is for basic groupings and knowls\n$color-main: null !default;\n\n// color-do is for examples and things for the reader to do\n$color-do: null !default;\n\n// color-fact is for statements of fact (definitions/theorems/etc...)\n$color-fact: null !default;\n\n// color-meta is for meta information for the reader (notes/objectives/etc...)\n$color-meta: null !default;\n\n// if a color is not set, use the scheme colors\n@if $color-main == null {\n  $scheme-color: map.get(map.get($schemes, $palette), \"color-main\");\n  $color-main: $scheme-color;\n}\n@if $color-do == null {\n  $scheme-color: map.get(map.get($schemes, $palette), \"color-do\");\n  $color-do: $scheme-color;\n}\n@if $color-fact == null {\n  $scheme-color: map.get(map.get($schemes, $palette), \"color-fact\");\n  $color-fact: $scheme-color;\n}\n@if $color-meta == null {\n  $scheme-color: map.get(map.get($schemes, $palette), \"color-meta\");\n  $color-meta: $scheme-color;\n}\n\n\n// text color for headings\n$heading-text-color: white !default;\n\n$body-light: 96%;\n$body-light-alt: 93%;\n$body-sat: -20%;\n\n//lighter version of color-main for knowl borders\n$color-main-alt: color.adjust(color.scale($color-main, $lightness: 25%), $saturation: $body-sat);\n\n//Make light versions of the 4 colors for backgrounds behind \n$color-main-light: color.adjust(color.change($color-main, $lightness: $body-light), $saturation: $body-sat);\n$color-do-light: color.adjust(color.change($color-do, $lightness: $body-light), $saturation: $body-sat);\n$color-fact-light: color.adjust(color.change($color-fact, $lightness: $body-light), $saturation: $body-sat);\n$color-meta-light: color.adjust(color.change($color-meta, $lightness: $body-light), $saturation: $body-sat);\n//and an alt of color-main for nested knowls\n$color-main-light-alt: color.change($color-main, $lightness: $body-light-alt);\n\n$colors: (\n  \"color-main\": $color-main,\n  \"color-meta\": $color-meta,\n  \"color-do\": $color-do,\n  \"color-fact\": $color-fact,\n\n  // color-main\n  \"block-body-background\": $color-main-light,\n  \"block-border-color\": $color-main-alt,\n  \"block-head-color\": $heading-text-color,\n\n  \"knowl-background\": $color-main-light,\n  \"knowl-border-color\": $color-main-alt,\n  \"knowl-nested-1-background\": $color-main-light-alt,\n  \"knowl-nested-2-background\": $color-main-light,\n  \"knowl-nested-3-background\": $color-main-light-alt,\n  \"knowl-nested-4-background\": $color-main-light,\n);\n\n\n// block-types based on those in entities.ent\n$do-types: \"exercise-like\", \"project-like\", \"solution-like\", \"example-like\";\n@each $block in $do-types {\n  $colors: map.merge(\n    $colors,\n    (\n      // define background and border, but default to generic block colors\n      \"#{$block}-body-background\": $color-do-light,\n      \"#{$block}-border-color\": $color-do,\n    )\n  );\n}\n\n$fact-types: \"definition-like\", \"proof-like\", \"theorem-like\", \"computation-like\";\n@each $block in $fact-types {\n  $colors: map.merge(\n    $colors,\n    (\n      // define background and border, but default to generic block colors\n      \"#{$block}-body-background\": $color-fact-light,\n      \"#{$block}-border-color\": $color-fact,\n    )\n  );\n}\n\n$meta-types: \"goal-like\", \"asside-like\", \"remark-like\";\n@each $block in $meta-types {\n  $colors: map.merge(\n    $colors,\n    (\n      // define background and border, but default to generic block colors\n      \"#{$block}-body-background\": $color-meta-light,\n      \"#{$block}-border-color\": $color-meta,\n    )\n  );\n}\n"
  },
  {
    "path": "css/colors/_palette-single-bold.scss",
    "content": "// Implements a palette with one main --primary-color\n// More dramatic than _palette-single.scss\n\n@use \"sass:meta\";\n@use \"sass:color\";\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/color-vars\" as color-vars;\n\n$primary-color: #2a5ea4 !default;\n\n// Start with values from color-vars\n$colors: map.merge(\n  color-vars.$colors, ()\n);\n\n// Compute color blends and add them as variables\n$blends: colorHelpers.get-blends('primary-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n\n$slate: #3a3a3a;\n\n// Override some colors\n$colors: map.merge(\n  $colors,\n  (\n    \"primary-color\": $primary-color,\n    \"doc-title-color\": var(--primary-color),\n    \"banner-background\": #f8f8f8,\n\n    \"toc-text-color\": var(--primary-color-black-30),\n    \"toc-border\": var(--primary-color-gray-10),\n\n    \"tocitem-highlight-background\": $slate,\n    \"tocitem-highlight-text-color\": #fff,\n    \"tocitem-highlight-border-color\": $slate,\n\n    \"tocitem-active-background\": var(--primary-color-white-15),\n\n    \"toclevel1-text-color\": var(--toc-text-color),\n    \"toclevel1-background\": var(--content-background),\n\n    \"toclevel2-background\": var(--primary-color-white-98),\n    \"toclevel3-background\": var(--primary-color-white-96),\n\n    \"link-text-color\": var(--primary-color),\n    \"link-active-text-color\": var(--primary-color),\n    \"link-active-background\": var(--primary-color-white-96),\n    \"link-alt-text-color\": var(--link-text-color),\n    \"link-alt-active-background\": var(--primary-color-white-96),\n\n    \"body-title-color\": var(--primary-color-black-20),\n    \"navbar-background\": var(--primary-color),\n    \"button-background\": var(--primary-color),\n    \"button-border-color\": $slate,\n    \"button-text-color\": var(--primary-color-white-90),\n    \"button-hover-background\": $slate,\n\n    \"knowl-background\": #f8f8f8,\n    \"knowl-border-color\": var(--primary-color-gray-80),\n  )\n);\n"
  },
  {
    "path": "css/colors/_palette-single-muted.scss",
    "content": "// Implements a palette with one main --primary-color used in a very sparing fashion\n\n@use \"sass:meta\";\n@use \"sass:color\";\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/color-vars\" as color-vars;\n\n$primary-color: #2a5ea4 !default;\n\n// Start with values from color-vars\n$colors: map.merge(\n  color-vars.$colors, ()\n);\n\n// Compute color blends and add them as variables\n$blends: colorHelpers.get-blends('primary-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n\n// Override some colors\n$colors: map.merge(\n  $colors,\n  (\n    \"primary-color\": $primary-color,\n\n    \"link-text-color\": var(--primary-color),\n    \"link-active-text-color\": var(--primary-color-white-40),\n    \"link-active-background\": var(--background-color-gray-30),\n    \"link-alt-text-color\": var(--link-text-color),\n    \"link-alt-active-background\": var(--link-active-text-color),\n\n    \"banner-background\": \"#fafafa\",\n\n    \"toc-border-color\": #c9c9c9,\n    \"toc-text-color\": var(--primary-color-black-30),\n    \"tocitem-background\": #f2f2f2,\n\n    \"tocitem-active-background\": var(--primary-color),\n    \"tocitem-highlight-background\": var(--primary-color-white-10),\n\n    // \"toclevel1-background\": var(--primary-color-white-95),\n    \"toclevel2-background\": var(--primary-color-white-98),\n    \"toclevel3-background\": var(--primary-color-white-95),\n\n    \"doc-title-color\": var(--primary-color),\n    \"body-title-color\": \"black\",\n\n    \"knowl-background\": #f8f8f8,\n    \"knowl-nested-1-background\": var(--knowl-background),\n    \"knowl-nested-2-background\": var(--knowl-background),\n    \"knowl-nested-3-background\": var(--knowl-background),\n    \"knowl-nested-4-background\": var(--knowl-background),\n    \"knowl-border-color\": var(--primary-color-gray-80),\n    \"block-border-color\": black,\n\n    \"goal-border-color\": var(--primary-color-white-20),\n  )\n);\n"
  },
  {
    "path": "css/colors/_palette-single.scss",
    "content": "// Implements a palette with one main --primary-color\n\n@use \"sass:meta\";\n@use \"sass:color\";\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/color-vars\" as color-vars;\n\n$primary-color: #2a5ea4 !default;\n\n// Start with values from color-vars\n$colors: map.merge(\n  color-vars.$colors, ()\n);\n\n// Compute color blends and add them as variables\n$blends: colorHelpers.get-blends('primary-color');\n$colors: map.merge(\n  $colors,\n  $blends\n);\n\n// Override some colors\n$colors: map.merge(\n  $colors,\n  (\n    \"primary-color\": $primary-color,\n\n    \"banner-background\": \"#fafafa\",\n\n    \"link-text-color\": var(--primary-color),\n    \"link-active-text-color\": var(--primary-color-white-40),\n    \"link-active-background\": var(--background-color-gray-30),\n    \"link-alt-text-color\": var(--link-text-color),\n    \"link-alt-active-background\": var(--link-active-text-color),\n\n    \"toc-border-color\": var(--primary-color-white-80),\n\n    \"toc-text-color\": var(--primary-color-black-30),\n\n    \"tocitem-active-background\": var(--primary-color-white-15),\n    \"tocitem-highlight-background\": var(--primary-color-white-15),\n\n    \"toclevel2-background\": var(--primary-color-white-95),\n    \"toclevel3-background\": var(--primary-color-white-90),\n\n    \"doc-title-color\": var(--primary-color),\n    \"body-title-color\": var(--primary-color-black-20),\n    \"button-hover-background\": var(--primary-color-white-80),\n    \"assemb-border-color\": var(--primary-color-white-50),\n\n    \"block-head-color\": white,\n    \"knowl-background\": var(--primary-color-white-95),\n    \"knowl-border-color\": var(--primary-color),\n  )\n);\n"
  },
  {
    "path": "css/components/README.md",
    "content": "# Notes on components folder\n\nComponents contains pieces shared by all modern scss themes. They are divided into:\n\n## chunks\n\nGrouping elements that are generally PreTeXt specific - exercises, knowls, etc...\n\nGenerally all these will be included by a `chunks-XXXX` file like `_chunks-default.scss`.\n\n## elements\n\nSmall, relatively self contained pieces of content.\n\nThese are all included from `components/_pretext.scss`\n\n## helpers\n\nMixins used to help build multiple other components\n\n## interactives\n\nInteractive widgets like Runestone, Sage, etc...\n\n`interactives/extras` contains optional modifications that a theme can use.\n\n## page-parts\n\nMacro structures of the page - TOC, navbar, etc...\n\n`page-parts/extras` contains optional modifications that a theme can use.\n"
  },
  {
    "path": "css/components/_google-search.scss",
    "content": "// TODO - refactor\n// Make conditional on use of google search???\n\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n\n// .pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n// .searchwrapper input.gsc-search-button-v2 {\n//   padding: 2px 2px;\n// }\n\n// .pretext .searchwrapper form.gsc-search-box {\n//   margin: 0;\n// }\n\n// .pretext .searchwrapper table.gsc-search-box {\n//   margin: 0;\n// }\n\n// .pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n//   padding: 0;\n// }\n\n// .pretext .searchwrapper .gsib_a {\n//   padding: 0 0 0 5px;\n// }\n\n// .pretext .searchwrapper .gsc-input-box {\n//   height: 3.0ex;\n// }\n\n// .pretext .searchwrapper form.gsc-search-box {\n//   font-size: 12px;\n// }\n"
  },
  {
    "path": "css/components/_mystery.scss",
    "content": "// Chunks of code that seem like one off fixes for books that may not exist\n// This file is not included anywhere else - kept around temporarily for reference\n\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.30em;\n}\n.APEXlogo .E {\n  position: relative;\n top: 0.33em;\n}\n\n\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%\n}\n\n.toolBPanel {\n    overflow: hidden !important;\n}\n.toolBPanel:hover {\n    overflow: auto !important;\n}\n\n.unprocessed {\n    padding: 8px;\n    background-color: rgb(255,230,230)\n}\n\n.unprocessed .unprocessed {\n    margin: 8px;\n    background-color: rgb(255,200,255)\n}\n\n.unprocessed .unprocessed .unprocessed {\n    margin: 8px;\n    background-color: rgb(205,205,255)\n}\n\n\n.ptx-navbar .preferences_menu_holder .active  > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n    background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n width: 4em;\n justify-content: center;\n text-align: center;\n align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n\n\n\n// No sign of continuation class\n.para.continuation {\n  margin-top: 0;\n}\npre + .para.continuation,\npre + form,\ndiv + form {\n  margin-top: 1em;\n}\nul + .para.continuation,\nol + .para.continuation,\ndl + .para.continuation {\n  margin-top: 0.75em;\n}\n\n\n// theoretically in colophon, but do not match actual html\nsection .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\nsection .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n\n// No sign of contributors class\n.frontmatter .contributors, .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n\n// exercise-stage??\narticle .exercise-stage {\n  font-family: var(--font-headings);\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n\n\n// .status ???\n.discussion-like.status > .heading {\n  display: none;\n}\n.discussion-like.status > .heading + .para,\n.discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n\n\n// schema doesn't allow for title in paragraph?\n .paragraphs .para .title {\n  font-family: var(--font-headings);\n  font-size: 1.125em;\n  font-weight: 700;\n}\n\n\n\n// ---------------------------------------------------\n// bug chunk of styles for older style knowls\n\n\n// This entire section causes issues with non-white backgounds. Can't identify actual problem it solves\n// /* show wide equation overflow even when no scroll bars,\n// from Jiří Lebl */\n// .MJXc-display, .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display ,\n// pre.prettyprint,\n// pre.plainprint,\n// pre.console,\n// .code-box {\n\n//     // background-image: linear-gradient(to right, white, white), linear-gradient(to right, white, white), linear-gradient(to right, rgba(0,0,0,.25), rgba(255,255,255,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(255,255,255,0));\n//     // background-position: left center, right center, left center, right center;\n//     // background-repeat: no-repeat;\n//     // background-color: inherit;\n//     // background-size: 20px 100%, 20px 100%, 10px 100%, 10px 100%;\n//     // background-attachment: local, local, scroll, scroll;\n// }\n// .knowl-output .MJXc-display {\n//     background-image: linear-gradient(to right, var(--knowl-background), var(--knowl-background)), linear-gradient(to right, var(--knowl-background), var(--knowl-background)), linear-gradient(to right, rgba(0,0,0,.25), var(--knowl-background)), linear-gradient(to left, rgba(0,0,0,.25), var(--knowl-background));\n// }\n// /* this should have a variable name, maybe? */\n// .knowl-output.original .MJXc-display {\n//     background: inherit;\n// }\n// .assemblage-like .MJXc-display {\n// /*\n//     background-image: none;\n//     background-image: linear-gradient(to right, #f4f4fe, #f4f4fe), linear-gradient(to right, #f4f4fe, #f4f4fe), linear-gradient(to right, rgba(0,0,0,.25), rgba(242,242,254,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(242,242,254,0));\n// */\n//     background-image: linear-gradient(to right, var(--assemb-body-background), var(--assemb-body-background)), linear-gradient(to right, var(--assemb-body-background), var(--assemb-body-background)), linear-gradient(to right, rgba(0,0,0,.25), var(--assemb-body-background)), linear-gradient(to left, rgba(0,0,0,.25), var(--assemb-body-background));\n// }\n// .knowl-output .knowl-output .MJXc-display {\n//     background-image: none;\n//     background-image: linear-gradient(to right, #fffff5, #fffff5), linear-gradient(to right, #fffff5, #fffff5), linear-gradient(to right, rgba(0,0,0,.25), rgba(255,255,243,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(255,255,243,0));\n// }\n// .knowl-output .knowl-output .knowl-output .MJXc-display {\n//     background-image: none;\n//     background-image: linear-gradient(to right, #fff5fe, #fff5fe), linear-gradient(to right, #fff5fe, #fff5fe), linear-gradient(to right, rgba(0,0,0,.25), rgba(255,243,254,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(255,243,254,0));\n// }\n\n\n\n/* not sure where this was being used, but it made short knowls\n * look bad, like the hint here:\n * SAFurtherReading.html\n*/\n.knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.knowl-output .knowl .knowl-content > .solution-like,\n.knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n\n.knowl-content > article:first-child,\n.knowl-content > .solution-like:first-child {\n/* padding, not margin, to get colored background (and not be absorbed) */\n  padding-top: 0.25em;\n}\n\n\n.hidden-knowl-wrapper [data-knowl]::after, .hidden-knowl-wrapper [data-knowl]:hover::after, .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n\n\n\n.exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n\n.standalone.worksheet article > .knowl-output.original {\n    margin: 0;\n}\n\n.cols2 .knowl-output, .cols3 .knowl-output, .cols4 .knowl-output, .cols5 .knowl-output, .cols5 .knowl-output {\n    width: 100%;\n}\n\n.standalone.worksheet .knowl-content {\n    padding: 0;\n}\n\n// ---------------------------------------------------\n\n// Obsoluete mathjax styling?\n\n\n/* maybe the remainder of this case is subsumed by the above,\n   and also does not apply to MJ3 */\n   .mjx-chtml.MJXc-display {\n    /*Allow users on smaller screens to scroll equations*/\n    /*horizontally when they don't fit on the screen*/\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n\n  #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n\n/*  http://sites.wcsu.edu/mbxml/OER_Linear_Alg/glossary.html\n   to fix the extra margin on top of the next term when\n   the previous definition ends in display math\n   May need to make less specific\n*/\ndd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n\n/* Example 4.8 of sample article (compare main page of sample book (4^{th} edition)`*/\na .heading .mjx-chtml {\n    z-index: 1;\n    background: #fff;\n}\n\n/* solution to Example 4.2.12 in http://spot.pcc.edu/math/orcca-draft/orcca/section-radical-expressions-and-rational-exponents.html\n*/\n.solution ol li > .para:first-child, .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n\n\n/* to stop things being blue when rendering MathJax with SVG */\na.mjx-svg-href  {\n  fill: inherit;\n  stroke: inherit;\n}\n\n\n\n// Old UI for sage cell?\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n\n\n\n\n// no sign of posterior /* Currently only for Solution to example */\n.posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n/* if hints and solutions are in .posterior, then\n * some of the above styling does not apply */\narticle.exercise-like + .posterior {\n    margin-top: -0.75em;\n}\n// Currently only for Solution to example\n.posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n\n\n\n\n\n\n// Can't find use of .wrap\nfigcaption .wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\nno sign of wrap class\n&.wrap img {\n  width: 250px;\n}\nfigure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\nfigure img.wrap {\n  float: right;\n  margin: 0;\n}\n\n// Permalinks break these and have for years... currently useless\nfigure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\nfigure.table-like figcaption:first-child .type,\nfigure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n\n\n// autoterm??\n.autoterm [knowl], .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n\n\n\n// floatnav??\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n\n.floatnav a {\n  padding-left: 3px;\n/*\n*  omitted, because we put a space in the source\n  padding-right: 3px;\n*/\n  margin-right: -1px;\n  color: inherit;\n}\n\n.floatnav a:hover {\n    background: #eeaaff;\n}\n\n\n\n// tt ??\na > tt {\n  font-size: 110%;\n}\n\n\n\n\n\n/* next is for the old code formatting js */\npre.prettyprint,\npre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n/* preveiously turned off the border and padding from pretty.css */\n}\n\npre.prettyprint:before,\npre.plainprint:before {\n  content:'';\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n\n\n\n/* math directly adajacent to words is wrapped to avoid bad line breaks */\n.mathword {\n  white-space: nowrap;\n}\n\n\n\n/* Born-hidden example with a very long title */\n/* http://physics.thomasmore.edu/ConnectedPhysics/sss-netforce.html */\na .heading {\n  white-space: normal;\n}\n\n\n\n.minipage  + .minipage {\n  display: inline-block;\n}\n\n\n// Early attempt at merging Runestone???\n/* Runestone nav for Runestone-wide features */\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n\n\n\n\n// does not match any current output from xsl\nhr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2.0em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n\nhr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4.0em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n\n\n\n// consecutive headings? need sample\n.exercise-like .task > .heading + .heading {\n  font-weight: 600;  /* should be slightly less bold, but some browsers make it bold */\n}\n.exercise-like .task > .heading + .heading + .para,\n.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n\n\n\n\n// ---------------------------------------------------\n// spacing rules - these were in pretext/pretext_add_on\n// attempting to forgo them with simpler spacing rules\n\n// table + article {\n//     margin-top: 1em;\n// }\n\n\n// .image-box + table,\n// .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n//     margin-top: 1.5em;\n// }\n\n\n// section.introduction + section {\n//     margin-top: 2em;\n// }\n\n\n// section section + section {\n//     margin-top: 3em;\n// }\n\n\n// .solution > ol li + li {\n//     margin-top: 0.5em;\n// }\n\n\n// section > ol:last-child,\n// section > ul:last-child {\n//     margin-bottom: 1.5em;\n// }\n\n// .objectives {\n//     margin-bottom: 1.25em;\n// }\n\n\n// li > .heading + ol,\n// li > .heading + ul {\n//   margin-top: 0.25em;\n// }\n\n\n// li > .heading + ol > li:nth-child(1),\n// li > .heading + ul > li:nth-child(1) {\n//   margin-top: 0;\n// }\n\n// li > .heading + ol.cols2 > li:nth-child(2),\n// li > .heading + ul.cols2 > li:nth-child(2) {\n//   margin-top: 0;\n// }\n\n// /* http://spot.pcc.edu/math/APEXCalculus/sec_prod_quot_rules.html\n//  * solution to Example 2.4.14\n//  */\n// .solution ol li {\n//     margin-top: 1em;\n//     padding-left: 0.5em;\n// }\n\n// /*\n// nested tasks. see\n// https://pretextbook.org/examples/sample-article/html/interesting-corollary.html#aBc\n// */\n\n// article.example-like > .heading + .introduction {\n//     display: inline;\n// }\n// article.example-like > .heading + .introduction > .para:first-child {\n//     display: inline;\n// }\n// article.example-like > .exercise-like > .para {\n//     margin-top: 1.25em;\n// }\n\n/* end of nested tasks */\n\n// /*\n//    See 10.1.8c in http://faculty.valpo.edu/calculus3ibl/ch10_01_gradient.html\n// and condider having this replace line 3338 of the general code (which uses .heading + p)\n// */\n// .example-like > .exercise-like > .para:first-of-type {\n//     display: inline;\n// }\n// .example-like > .exercise-like > .aside-like {\n//     margin-top: -3em;\n// }\n// .example-like > .exercise-like > .aside-like.front {\n//     margin-top: 0;\n// }\n\n// don't appear to work due to permalinks. But not needed\n// /* we use .para as a wrapper around some \"compound\" p, so the\n//    first p in .para is block-like because of the .pare */\n// .para > p:first-child,\n// .para > .para:first-child {\n//     display: inline;\n// }\n\n\n\n// .paragraphs + .paragraphs {\n//   margin-top: 3em;\n// }\n\n\n// /* spacing around and after .para, and around and after article */\n\n// .aside-like > .para:first-child,\n// td > .para:first-child,\n// .solution-like > .para:first-child {\n//     margin-top: 0;\n// }\n// /* for assemblages without a title */\n// .assemblage-like > .para:first-of-type {\n//     margin-top: 0;\n// }\n// .assemblage-like > .heading + .para {\n//     margin-top: 0.25em;\n// }\n// .assemblage-like + .para {\n//     margin-top: 1.75em;\n// }\n\n\n// .para + table {\n//     margin-top: 1em;\n// }\n\n// table tr td .para + .para {\n//     margin-top: 1em;\n// }\n\n// table + .para {\n//     margin-top: 1.5em;\n// }\n\n// .para + figure.figure-like > table {\n//     margin-top: 1em;\n// }\n\n// .para + pre.prettyprint,\n// .para + pre.plainprint {\n//     margin-top: 1.25em;\n// }\n// .para + .code-box {\n//     margin-top: 1.25em;\n// }\n\n// /* 1.25 = ol top + li top ?  looked too big with 0.75 below */\n// .exercise-like .para + ol {\n//   margin-top: 0.5em;\n// }\n\n\n// /* this > may be too restrictive.  The purpose is to not put a\n//    top margin on an article at the top of a knowl */\n// section > article, section > section.paragraphs, .paragraphs > article {\n//     margin-top: 1.25em;\n// }\n// section article + article,\n// section .introduction + article,\n// section .para + article,\n// section .posterior + article {\n//     margin-top: 1.75em;\n// }\n// section article > .introduction + article {\n//     margin-top: 1em;\n// }\n\n// section article > .discussion-like {\n//     margin-top: 1em;\n// }\n// section article > .discussion-like .para {\n//     margin-top: 1em;\n// }\n\n// article + .posterior {\n//     margin-top: 0.5em;\n// }\n// section .para + .tabular-box {\n//     margin-top: 0.75em;\n// }\n// section .tabular-box + .tabular-box {\n//     margin-top: 1.0em;\n// }\n// section .proof,\n// section .hiddenproof {\n//     margin-top: 0.75em;\n// }\n\n// section > pre, .para + pre {\n//     margin-top: 1.25em;\n// }\n\n// ol .para + .para, ul .para + .para {\n//     margin-top: 1em;\n// }\n\n// /* see Ex 29 https://yoshiwarabooks.org/linear-functions.html\n// and ex 2.91 in\n// https://yoshiwarabooks.org/mfg/MathModels.html */\n// .introduction + .sidebyside,\n// .para + .sidebyside,\n// ol + .sidebyside,\n// ul + .sidebyside {\n//     margin-top: 1em;\n// }\n\n\n\n// section .heading + .para,\n// section .title + .para, /* list items have bare .title, not in a .heading */\n// section .heading + .introduction > .para:first-child,\n// section .blob > .para:first-child {\n//     margin-top: 0.25em;\n// }\n\n// /*\n//  * Contents of articles\n//  */\n\n// .conclusion {\n//     margin-top: 1em;\n// }\n// .conclusion > .para:first-child {\n//     margin-top: 0.5em;\n// }\n\n// .exercise-like > ol:first-child,\n// .exercise-like > ul:first-child {\n//     margin-top: 0;\n// }\n\n// .heading + ol, .heading + ul {\n//     margin-top: 0.45em;\n// }\n\n// article .para:first-child {\n//     margin-top: 0;\n// }\n"
  },
  {
    "path": "css/components/_pretext-search.scss",
    "content": "\n@use 'components/helpers/buttons-default' as buttons;\n\n.searchbox {\n\n  .searchwidget {\n    height: 100%;\n  }\n  \n  .searchresultsplaceholder {\n    position: fixed;\n    top: 5vh;\n    bottom: 5vh;\n    padding: 1em;\n    left: max(10vw, calc(100vw - 800px) / 2);\n    width: 80vw;\n    max-width: 800px;\n    border: 2px solid var(--body-text-color);\n    background: var(--knowl-background, #eaf0f6);\n    z-index: 5000;\n    display: flex;\n    flex-direction: column;\n  }\n\n  .searchresultsplaceholder article {\n    width: 60%;\n    margin-left: auto;\n    margin-right: auto;\n    font-family: sans-serif;\n  }\n\n  .search-results-controls {\n    display: flex;\n    justify-content: space-between;\n    align-items: stretch;\n    gap: 10px;\n    margin-bottom: 1em;\n    height: 35px;\n  }\n\n  .ptxsearch {\n    flex: 1 1;\n  }\n  \n\n  .closesearchresults {\n    @include buttons.ptx-button;\n  }\n\n  .detailed_result {\n    margin-bottom: 10px;\n  }\n\n  .searchresults a:hover {\n    text-decoration: underline;\n    background: var(--link-active-background);\n  }\n\n\n  .searchresults {\n    padding-left: 10px;\n    margin-top: 0;\n    overflow-y: auto;\n    flex: 1 1;\n    background: var(--content-background, white);\n    border: 1px solid var(--page-border-color, #ccc);\n  }\n\n  .searchresults:empty {\n    display: none;\n  }\n  \n  .search-result-bullet {\n    list-style-type: none;\n  }\n\n  .search-result-score {\n    display: none;\n  }\n\n  //result qualities\n  .no_result {\n    font-size: 90%;\n    font-weight: 200;\n  }\n\n  .low_result {\n    font-weight: 200;\n  }\n\n  .medium_result {\n    font-weight: 500;\n  }\n  .high_result {\n    font-weight: 700;\n  }\n\n  .searchempty {\n    display: none;\n    padding-left: 10px;\n    padding-top: 5px;\n  }\n\n  .search-results-unshown-count {\n    margin-top: 0.6em;\n  }\n\n  .search-result-clip-highlight {\n    background: var(--searchresultshighlight);\n  }\n\n  .searchresultsbackground {\n    position: fixed;\n    top: 0;\n    background: var(--searchresultsbackground, white);\n    width: 100vw;\n    height: 100%;\n    left: 0;\n    z-index: 4999;\n  }\n\n  @media screen and (max-width: 800px) {\n    .searchresultsplaceholder {\n      bottom: 10vh;\n    }\n  }\n}\n\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n"
  },
  {
    "path": "css/components/_pretext-web.scss",
    "content": "// Entry point for web-based themes. Incorporates common PreTeXt styles\n// and web-specific styles.\n\n// Todo - analyze interactives/ and other scss files for items\n// that belong here\n\n// Breakpoint at which the navbar moves to the bottom of the screen\n$navbar-breakpoint: 800px !default;\n\n@use 'components/pretext';\n\n\n@use 'printing';\n@use 'worksheet';\n\n@use 'google-search';\n@use 'pretext-search';\n@use 'interactives/runestone';\n@use 'interactives/other';\n@use 'interactives/webwork';\n@use 'interactives/sagecell';\n\n@use 'interactives/calculators' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'elements/permalinks';\n"
  },
  {
    "path": "css/components/_pretext.scss",
    "content": "// Entry point for common styling\n\n// It is assumed these are used by both web and epub stylesheets\n// page-parts/ and chunks/ are not included here as they vary more from theme to theme\n\n@use 'spacing';\n@use 'elements/lists';\n@use 'elements/fillin';\n@use 'elements/headings';\n@use 'elements/links';\n@use 'elements/tables';\n@use 'elements/front-matter';\n@use 'elements/summary-links';\n@use 'elements/footnotes';\n@use 'elements/index';\n@use 'elements/media';\n@use 'elements/figures';\n@use 'elements/poem';\n@use 'elements/prism';\n@use 'elements/math';\n@use 'elements/misc-content';"
  },
  {
    "path": "css/components/_printing.scss",
    "content": "// Basic rules for printing a standard PreTeXt page\n\n// Get rid of UI elements.\n// Leave margin fiddling for system print dialog.\n\n// Worksheet and handout printing is handled in print-worksheet.scss\n\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext  .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display:none;\n  }\n\n  .ptx-page, .ptx-main, .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n\n  .ptx-sagecell, .tabular, .table-like, .figure-like, .exercise-like {\n    break-inside: avoid;\n  }\n\n  .heading {\n    break-after: avoid;\n  }\n\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n"
  },
  {
    "path": "css/components/_spacing.scss",
    "content": "// Basic spacing for content\n\n// Breakpoint at which the navbar moves to the bottom of the screen\n$navbar-breakpoint: 800px !default;\n\n// all styling assumes border-box layout measurement\n* {\n  box-sizing: border-box;\n}\n\n//----------------------------------------------------------\n// Inter item vertical spacing\n//\n// Set some baseline minimal inter-item vertical spacings\n//\n// Individual items can override this with their own margin. The\n// user of @layer here forces these rules to all have less precedence\n// than any rules not in a layer.\n// Most spacing should be done with margin-top.\n\n@layer spacing {\n  // inter-item spacing high level containers\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n\n  // but tighten up spacing slightly for adjacent paragraphs in a section\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n\n  // lower-level container elements that are expected to contain sequences of items\n  // tighter spacing here to avoid visually breaking up the minor container\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}"
  },
  {
    "path": "css/components/_worksheet.scss",
    "content": "// TODO refactor\n\n// Rules in this file apply to both screen and print\n// Print specific rules should go in a file in targets/print-worksheet stylesheet\n@use 'components/helpers/buttons-default' as buttons;\n\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n  .print-link {\n    font-family: var(--font-body);\n    padding: 0.1em 0.2em;\n  }\n  .material-symbols-outlined {\n    margin-top:5pt;\n  }\n}\n\n"
  },
  {
    "path": "css/components/chunks/README.md",
    "content": "Styling for \"chunks\" of content - containers that are designed to hold\nother elements and are likely to vary significantly from theme to theme.\n\n_chunks-default.scss in css/targets/html/default-modern is a sample aggregator\nfile that provides a one import way to get styling for the chunks.\n"
  },
  {
    "path": "css/components/chunks/_asides-basic.scss",
    "content": "$border-width: 2px !default;\n$side-margins: 30px !default;\n\n.aside-like {\n  & > .knowl__link {\n    color: var(--aside-like-link-color);\n    border-bottom-color: var(--aside-like-link-color);\n  }\n  & > .knowl__content{\n    margin-left: $side-margins;\n    margin-right: $side-margins;\n    border: $border-width solid var(--aside-like-border-color);\n    background-color: var(--aside-like-body-background);\n  }\n}"
  },
  {
    "path": "css/components/chunks/_asides-floating.scss",
    "content": "$float-width: 200px !default;\n$float-offset: -248px !default;\n$min-float-width: 1280px !default;\n\n@use 'asides-basic';\n\n@media screen and (min-width: $min-float-width) {\n  details.aside-like {\n    position: relative;\n    margin-left: $float-offset;\n    width: $float-width;\n    right: $float-offset;\n    float: right;\n    clear: right;\n  }\n\n  /* disable in any multicolumn list/exercisegroup */\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n\n  details.aside-like > .knowl__content {\n    margin-left:0;\n    margin-right:0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}"
  },
  {
    "path": "css/components/chunks/_codelike.scss",
    "content": "@mixin code-text {\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: .93rem;\n  line-height: 1.2;\n}\n\n@mixin code-inline-spacing {\n  line-height: normal;  //prevent extra \"padding\" based on line-height\n  padding: 0.0625em .15em;\n}\n\n// wide programs need to be scrollable\n.code-box {\n  overflow-x: auto;\n}\n\n.code-display {\n  overflow-x: auto;      //scroll if overflowing\n  font-family: var(--font-monospace);\n  // code-display appears inside .paras and may need space around it\n  margin: 0.5em 0;\n}\n\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  @include code-text();\n}\n\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  @include code-inline-spacing();\n}\n\n\n.prompt.unselectable {\n  user-select: none;\n}\n\n// code blocks are preformatted text that is not a program\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  @include code-text();\n}\n\n.code-block::before {\n  content:' ';\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3.0em;\n}\n\n\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/_discussion-inline.scss",
    "content": "@use './helpers/inline-heading-mixin';\n\n.discussion-like {\n  @include inline-heading-mixin.heading;\n  & > .heading {\n    ::after {\n      content: \"\\2009\";\n    }\n\n    & + .para {\n      display: inline;\n    }\n\n    .space,\n    .codenumber,\n    .period {\n      display: none;\n    }\n\n    .type::after {\n      content: \". \";\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/_exercises.scss",
    "content": "@use '../helpers/cols';\n\n// generate multi column rules for exercises\n@include cols.allow-cols('.exercise-like');\n\n.exercise-like > .heading {\n  // exercise heading/numbers regular size\n  font-size: inherit;\n}\n\n.exercisegroup {\n\n  .exercise-like {\n    margin-top: 1em;\n  }\n\n  > .heading {\n    font-size: 1.10em;\n    line-height: 1.05em;\n    margin-top: 0.75em;\n    display: inline;\n\n    & + .introduction {\n      display: inline;\n\n      & > .para:first-child {\n        display: inline;\n      }\n    }\n  }\n\n  // push the actual exercises down from any possible heading/intro\n  .exercisegroup-exercises {\n    margin-top: 1em;\n  \n    //indent items with padding so cols works correctly on them\n    padding-left: 40px;\n  }\n\n  .conclusion {\n    margin-left: 40px;  // match the padding of the exercisegroup-exercises\n  \n    .heading {\n      // exercise heading/numbers regular size\n      font-size: inherit;\n    } \n  }\n}\n\n// subtasks are indented\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n\n\n\n// ---------------------------------------------------------\n// exercise-wrapper is used for WW problems\n// these rules need testing/refactoring\n\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%; /* for live ww to open at 100% wide */\n}\n\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n\n/* next is related to having exercises start in-line with their exercise number,\n including when a static WW problem is made interactive */\n/* not sure this was the right way to do it */\n/* see https://opentext.uleth.ca/apex-calculus/sec_antider.html#exercise-722 */\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n"
  },
  {
    "path": "css/components/chunks/_knowls.scss",
    "content": "/*\n  main knowls styles\n*/\n\n$border-radius: 0px !default;\n$border-width: 3px !default;\n$pad: 12px !default;\n\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n\n.source-view {\n  margin: 0.5em 0;\n}\n\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n\n.source-view__content {\n  margin: 0.2em 0;\n}\n\n.knowl__content {\n  margin: 0.75em 0;  //at least this much space above/below\n  border: $border-width solid var(--knowl-border-color);\n  border-radius: $border-radius;\n  padding: $pad;\n  background-color: var(--knowl-background);\n\n  .incontext {\n    display: block;\n    font-size: 85%;\n    text-align: right;\n  }\n}\n\n/* nested knowl alt colors */\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n\n\n/* spacing tweaks inside knowls */\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n"
  },
  {
    "path": "css/components/chunks/_sidebyside.scss",
    "content": "// Space all rows in a sbsgroup, no other styling\n.sbsgroup > *:not(:first-child)\n{\n    margin-top: 1.5em;\n}\n\n\n// sidebysides get laid out into a grid with two rows. \"Plain panels\" without\n// a caption are in the first row. Panels with things like tables/figures with\n// captions we want to align are decomposed across two rows.\n// If there is no content (no captions) in a second row, it will collapse.\n\n// 1| plain panel | figure-like/table-like\n// 2|             | figcaption\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n\n.sbspanel {\n  // most sbspanels are in the first row\n  grid-row: 1; \n\n  // tables and their captions get centered when in panels\n  & > .table > figcaption {\n    text-align: center;\n  }\n  .tabular {\n    overflow-x: auto;\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n\n\n// panel content alignment options\n.sbspanel--top {\n  align-self: start;\n}\n\n.sbspanel--middle {\n  align-self: center;\n}\n\n.sbspanel--bottom {\n  align-self: end;\n}\n\n\n// sbspanels with figures or tables get decomposed into two rows\n// both the panel and the figure-like/table-like element should\n// be ignored by the grid layout so we can place the items inside\n// the *-like into the grid\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n\n\n// first child of decomposed *-like goes to the first row\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n\n// and gets alignment info\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n\n\n// second child of decomposed *-like goes to the second row\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n\n\n// make sure content for a panel stays in the correct column\n// otherwise captions may shift left into columns that do not have\n// second row content\n@for $col from 2 through 10 {\n  .sbspanel:nth-of-type(#{$col}) * {\n    grid-column: #{$col};\n  }\n}"
  },
  {
    "path": "css/components/chunks/_solutions.scss",
    "content": "// \n\n/* stacked headings in the solutions backmatter */\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\n\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/README.md",
    "content": "Helpers used to style block elements\n"
  },
  {
    "path": "css/components/chunks/helpers/_C-box-mixin.scss",
    "content": "// These values can be set on @use to avoid repeating values in each @import\n$padding: 20px !default;\n$padding-top: $padding !default;\n$padding-bottom: $padding !default;\n$padding-left: $padding !default;\n$padding-right: $padding !default;\n$border-radius: 0px !default;\n$border-width: 3px !default;\n$font-style: 'normal' !default;\n$box-padding: 5px !default;\n$background-color: var(--content-background-background) !default;\n$border-color: var(--block-border-color) !default;\n$heading-background: var(--block-border-color) !default;\n$heading-color: var(--block-head-color) !default;\n\n// Block title and left/bottom wrapper\n@mixin box($border-width: $border-width,\n  $background-color: $background-color,\n  $border-color: $border-color,\n  $heading-background: $heading-background,\n  $heading-color: $heading-color,\n  $padding: $padding,\n  $padding-top: $padding-top,\n  $padding-bottom: $padding-bottom,\n  $padding-right: $padding-right,\n  $padding-left: $padding-left,\n  $font-style: $font-style,\n  $border-radius: $border-radius,\n  $box-padding: $box-padding,\n  $hide-number: false)\n{\n  \n  &:not(.knowl__content, .born-hidden-knowl) {\n    border-left: $border-width solid $border-color;\n    border-bottom: $border-width solid $border-color;\n    background-color: $background-color;\n    //top padding turns into margin below header\n    padding: 0 $padding-right $padding-bottom $padding-left;\n\n\n    @if $border-radius > 0 {\n      border-bottom-left-radius: $border-radius;\n    }\n\n    & > .heading:first-child {\n      background-color: $heading-background;\n      display: inline-block;\n      color: $heading-color;\n      padding: $box-padding (2 * $box-padding);\n      margin-left: -$padding-left;\n      margin-top: 0;\n\n      @if $font-style != 'normal' {\n        font-style: $font-style;\n      }\n\n      @if $hide-number {\n        .codenumber {\n          display: none;\n        }\n      }\n\n      @if $border-radius > 0 {\n        border-top-right-radius: $border-radius;\n        border-bottom-right-radius: $border-radius;\n      }\n\n      &:after {\n        //disable any extra junk\n        display: none;\n      }\n\n      // fake padding under the heading\n      & {  //turn off sass warning\n        margin-bottom: $padding-bottom;\n      }\n      //prevent child from adding space\n      & + * {\n        margin-top: 0;\n      }\n\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/_L-mixin.scss",
    "content": "// These values can be set on @use to avoid repeating values in each @import\n$pad: 10px !default;\n\n// Generate styles for an L shaped border \n@mixin border(\n  $border-width: 2px,\n  $style: solid,\n  $head-color: var(--block-head-color),\n  $border-color: var(--block-border-color),\n  $padding: $pad,\n  $L-side: left) \n{\n  //determine side opposite L\n  $alt-side: if($L-side ==left, right, left);\n\n  &:not(.knowl__content, .born-hidden-knowl) {\n    padding-#{$L-side}: $padding;\n    border-#{$L-side}: $border-width $style $border-color;\n\n    & > .heading:first-child {\n      color: $head-color;\n    }\n\n    &::after {\n      content: '';\n      border-bottom: $border-width $style $border-color;\n      display: block;\n      margin-#{$alt-side}: auto;\n      margin-#{$L-side}: -$padding;\n      padding-top: $padding;\n      width: 1.5em;\n    }\n  }\n\n  @at-root .knowl__content & {\n    padding-#{$L-side}: 0;\n    border-#{$L-side}: 0;\n\n    &::after {\n      display: none;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/_box-mixin.scss",
    "content": "// These values can be set on @use to avoid repeating values in each @import\n$pad: 10px !default;\n$border-radius: 0px !default;\n$border-width: 2px !default;\n\n// Generate styles for a surrounding box\n@mixin box($border-width: $border-width,\n  $style: solid,\n  $background-color: var(--block-body-background),\n  $border-color: var(--block-border-color),\n  $head-color: var(--block-head-color),\n  $padding: $pad,\n  $border-radius: $border-radius)\n{\n\n  &:not(.knowl__content, .born-hidden-knowl) {\n    border: $border-width $style $border-color;\n    background-color: $background-color;\n    padding: $padding;\n\n    @if $border-radius > 0 {\n      border-radius: $border-radius;\n    }\n\n    & > .heading:first-child {\n      display: block;\n      color: $head-color;\n      margin-bottom: 0.5em;\n    }\n\n    & > *:first-child {\n      margin-top: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/_heading-box-mixin.scss",
    "content": "// These values can be set on @use to avoid repeating values in each @import\n$pad: 20px !default;\n$border-radius: 0px !default;\n$border-width: 3px !default;\n$margin-top: 2.5em !default;\n$font-style: 'normal' !default;\n// $font-size: 1.25em !default;\n$box-padding: 5px !default;\n$background-color: var(--block-body-background) !default;\n$border-color: var(--block-border-color) !default;\n$heading-background: var(--content-background) !default;\n$heading-color: var(--block-head-color) !default;\n$side-borders: true !default;\n\n// Generate styles for a box with inset heading\n@mixin box($border-width: $border-width,\n  $style: solid,\n  $background-color: $background-color,\n  $border-color: $border-color,\n  $heading-background: $heading-background,\n  $heading-color: $heading-color,\n  $padding: $pad,\n  $border-radius: $border-radius,\n  $side-borders: $side-borders,\n  $margin-top: $margin-top,\n  $font-style: $font-style,\n  $box-padding: $box-padding,\n  // $font-size: $font-size,\n  $hide-number: false)\n{\n  // this *should* always work well for reasonable padding/font sizes\n  //$heading-top: calc(-1 * $box-padding - 1.65ex);\n  $heading-top: calc(-1 * ($padding + $box-padding) - 1.65ex);\n  \n  &:not(.knowl__content, .born-hidden-knowl) {\n    border: $border-width $style $border-color;\n    @if not $side-borders {\n      border-left: 0;\n      border-right: 0;\n    }\n    background-color: $background-color;\n    padding: $pad;\n    //extra top-padding to make room for heading\n    padding-top: calc($pad + 0.25ex);\n\n    // need to control margin to overcome negative margin on heading\n    // !important to override default article styling\n    margin-top: $margin-top !important;\n\n    @if $border-radius > 0 {\n      border-radius: $border-radius;\n    }\n\n    & > .heading:first-child {\n      background-color: $heading-background;\n      display: block;\n      color: $heading-color;\n      margin-bottom: 0.5em;\n      padding: $box-padding (2 * $box-padding);\n      // font-size: $font-size;\n      margin-top: $heading-top;\n      width: fit-content;\n      border: 0;  //in case picking up border from elsewhere\n\n      @if $font-style != 'normal' {\n        font-style: $font-style;\n      }\n      @if $border-radius > 0 {\n        border-radius: $border-radius;\n      }\n\n      @if $hide-number {\n        .codenumber {\n          display: none;\n        }\n      }\n\n      &:after {\n        //disable any extra junk\n        display: none;\n      }\n    }\n  }\n\n  // if the first child of a knowl, need just enough margin to clear exposed heading\n  @at-root {\n    .knowl__content *:first-child & {\n      margin-top: 1em;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/_horizontal-bars-mixin.scss",
    "content": "// These values can be set on @use to avoid repeating values in each @import\n$pad: 0px !default;   //all sides\n$border-color: var(--block-border-color) !default;\n$background-color: var(--content-background) !default;\n$border-width: 3px !default;\n$title-pos: \"border\" !default; // can be \"border\", \"inside\", or \"outside\"\n$heading-background: var(--content-background) !default;\n$heading-color: var(--body-text-colorolor) !default;\n$font-style: 'normal' !default;\n\n// Generate styles for a box with horizontal rules\n@mixin bars($border-width: $border-width,\n  $style: solid,\n  $border-color: $border-color,\n  $background-color: $background-color,\n  $padding: $pad,\n  $title-pos: $title-pos,\n  $heading-background: $heading-background,\n  $heading-color: $heading-color,\n  $font-style: $font-style\n  )\n{\n    $heading-top: 0;\n    $heading-left: 0;\n    @if $title-pos == \"border\" {\n        $heading-top: -1.5em;\n        $heading-left: 10px;\n    } @else if $title-pos == \"inside\" {\n        $heading-top: 0;\n    } @else if $title-pos == \"outside\" {\n        $heading-top: 3em;\n    }\n\n    &:not(.knowl__content, .born-hidden-knowl) {\n    padding: $padding;\n    border-top: $border-width $style $border-color;\n    border-bottom: $border-width $style $border-color;\n    border-left: none;\n    border-right: none;\n    background-color: $background-color;\n    margin-top: 2em;\n    margin-bottom: 1em;\n    }\n\n\n    & > .heading:first-child {\n        background-color: $heading-background;\n        display: block;\n        color: $heading-color;\n        margin-bottom: 0.5em;\n        // font-size: $font-size;\n        margin-top: $heading-top;\n        margin-left: $heading-left;\n        width: fit-content;\n        padding: 5px 1em;\n        $font-style: $font-style;\n\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/_inline-heading-mixin.scss",
    "content": "// Generate styles for an inline heading\n@mixin heading {\n  & > .heading:first-child {\n    display: inline;\n    line-height: initial;\n    border-bottom: 0;  // disable underline that may come from underlined headings\n\n    &:after {\n      content: \"\\2009\";\n    }\n\n    // Following sibling also needs to be inline for heading to line up correctly\n    // For now limit to logical paragraphs and introductions as they seem to cover\n    // the plain text cases. Not clear we would want same treatment for other\n    // kinds of content\n    & + :is(.para, .para.logical, .introduction) {\n      display: inline;\n      // possible first child that is the actual text\n      & > .para:first-child {\n        display: inline;\n        }\n      // an introduction could have a para.logical with a para\n      & > .para.logical:first-child > .para:first-child {\n        display: inline;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/chunks/helpers/_sidebar-mixin.scss",
    "content": "// These values can be set on @use to avoid repeating values in each @import\n$pad: 10px !default;   //all sides\n$padside: 15px !default;   //on side with border\n$border-radius: 0px !default;   //on side with border\n$border-color: var(--block-border-color) !default;\n$background-color: var(--content-background) !default;\n$side: left !default;\n$border-width: 2px !default;\n\n// Generate styles for a sidebar down left or right of content\n@mixin box($border-width: $border-width,\n  $style: solid,\n  $border-color: $border-color,\n  $background-color: $background-color,\n  $padding: $pad,\n  $padside: $padside,\n  $side: $side,\n  $border-radius: $border-radius) \n{\n  &:not(.knowl__content, .born-hidden-knowl) {\n    padding: $padding;\n    padding-#{$side}: $padside;\n    border-#{$side}: $border-width $style $border-color;\n    background-color: $background-color;\n\n    @if $border-radius > 0 {\n      border-radius: $border-radius;\n    }\n\n    > .heading:first-child {\n      margin-top: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/elements/README.md",
    "content": "Styling for basic content elements\n"
  },
  {
    "path": "css/components/elements/_description-lists.scss",
    "content": "/* dl is used for glossaries and descriptions lists.\n   Glossaries are simple:  bold word by itself on a line.\n        Definition indented on the next line.\n        Vertical space before the next term.\n\n   Description lists are more complicated.  The wider version\n   (refering to the horizontal indentation of the definition;\n    this is the default)\n   has the (wrapped) term inline with the definition.\n\n   The narrow version is complicated because the term is inline\n   with its definition if it fits, otherwise it is on the line above.\n   That means the vertical space between entries can't be handled by\n   a top margin on the dt.  Instead we have an ::after on the dd .\n */\n\n$wide-dt-width: 25ex;\n\ndl:is(.description-list, .glossary) {\n  margin: 0;\n  //overflow: hidden; // Removed to show permalinks\n\n  dt {\n    font-weight: bold;\n    max-width: 55ex;\n  }\n\n  dd::after {\n    content: \"\";\n    display: block;\n    clear: both;\n  }\n}\n\n.para > dl:is(.description-list) {\n  // add some space when inside a .para\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\n\ndl.glossary {\n  dt {\n    margin-top: 1.25em;\n\n    &:first-of-type {\n      margin-top: 0;\n    }\n  }\n\n  dd {\n    margin-left: 5ex;\n  }\n}\n\ndl.description-list {\n\n  dt,\n  dd {\n    margin-top: 1em;\n\n    &:first-of-type {\n      margin-top: 0;\n    }\n  }\n\n  dt {\n    float: left;\n    clear: both;\n    text-align: right;\n    width: 18ex;\n    margin-right: 1ex;\n  }\n\n  dd {\n    margin-left: 22ex;\n  }\n\n  &.narrow {\n    dt {\n      width: 11ex;\n    }\n\n    dd {\n      margin-left: 15ex;\n    }\n  }\n\n  &.wide {\n    dt {\n      width: $wide-dt-width;\n    }\n\n    dd {\n      margin-left: 29ex;\n    }\n  }\n}\n\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n\n.description-list + * {\n  clear: both;\n}\n\n/* where do we have nested dl? */\ndl.description-list dl dt {\n  width: 8ex;\n}\n\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\n\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n\n\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: $wide-dt-width;\n  }\n\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n"
  },
  {
    "path": "css/components/elements/_figures.scss",
    "content": "figure {\n  clear: both;\n  position: relative;\n\n  // override browser margins\n  margin-left: 0;\n  margin-right: 0;\n}\n\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n\n  code.code-inline {\n    white-space: pre;\n  }\n  \n  .codenumber,\n  .type {\n    font-weight: 700;\n  }\n\n  // add n-dashes\n  .codenumber::after,\n  .type:last-of-type::after {\n    content: \"\\2002\";\n  }\n\n  // make sure first para comes right after title\n  .para:first-of-type {\n    display: inline;\n  }\n}\n\n// tables are inset\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n\n  // but lists can go full right\n  .list {\n    margin-right: 0;\n  }\n}\n\n@media (max-width <= 943px){\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n"
  },
  {
    "path": "css/components/elements/_fillin.scss",
    "content": "\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n\n  &.underline {\n    border-bottom-style: solid;\n    border-width: 1px;\n  }\n\n  &.box {\n    outline: 1px solid var(--body-text-color);\n    height: 1.3em;\n  }\n\n  &.shade {\n    background-color: var(--fillin-background-color, #eee);\n    height: 1.3em;\n  }\n}\n\n\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n"
  },
  {
    "path": "css/components/elements/_footnotes.scss",
    "content": "$border-radius: 0px !default;\n\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n\n.ptx-footnote[open] {\n  display: contents;\n}\n\n\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em; //hopefully enough space...\n}\n\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: $border-radius;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  //reset color/weight/size in case used in block that changed them\n  // e.g. theorem title in denver\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n"
  },
  {
    "path": "css/components/elements/_front-matter.scss",
    "content": "// Styles for the items that are (at least generally) a part of the front matter\n// There are some pretty generic class names. Those get wrapped with a class\n// limiting their scope to the expected page\n\n.frontmatter {\n  & > .heading {\n    display: block;\n    text-align: center;\n  }\n\n  & > .heading .title,\n  .book > .heading .title {\n    font-size: 1.3em;\n  }\n\n  & > .heading .subtitle,\n  .book > .heading .subtitle {\n    display: block;\n    font-weight: normal;\n    color: var(--byline-color);\n    font-size: 0.875em;\n    line-height: 1.42857em;\n    margin-top: 0.35714em;\n  }\n\n  & > .para:first-of-type {\n    margin-top: 4em;\n  }\n\n  & > .author,\n  & > .credit {\n    margin-top: 2em;\n    text-align: center;\n  }\n\n  .author:first-of-type {\n    margin-top: 4em;\n  }\n\n  & > .author .author-name {\n    font-size: 120%;\n  }\n\n  .date {\n    display: block;\n    margin-top: 2em;\n    text-align: center;\n  }\n\n  .credit .title {\n    font-size: 1em;\n  }\n\n  .credit .author {\n    font-size: 0.9em;\n    margin-top: 0.75em;\n  }\n\n  .author-info {\n    font-size: 90%;\n  }\n\n  .summary-links {\n    margin-top: 4em;\n  }\n\n  .abstract {\n    margin: 4em 2em;\n  }\n\n  .keywords, .support {\n    margin-top: 2em;\n  }\n\n  .abstract, .keywords, .support {\n    & > .title {\n      font-size: 1.125em;\n      font-weight: 600;\n      line-height: 1.125em;\n      display: inline;\n    }\n\n    & > .title::after {\n      content: \".\\2009\\2009\\2009\";\n    }\n\n    & > .title + .para {\n      display: inline;\n    }\n  }\n\n  .colophon {\n    .copyright {\n      margin-top: 2.5em;\n    }\n\n    .license {\n      margin-top: 2.5em;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/elements/_headings.scss",
    "content": "// headings for standard page elements - sections/articles/etc...\n// more specialized headings (exercises) should be defined in the specific component\n// complex stylizing (like boxes) should be done by \"chunks\"\n\n// reset size/margin for headings\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\n\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n\n  // pull in any following items that default to a larger top margin\n  & + * {\n    margin-top: 0.5em;\n  }\n}\n\n.ptx-content > section > .heading {\n  //first heading on page\n  margin-top: 0.5em;\n}\n\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\n\nsection section section > .heading {\n  font-size: 1.40em;\n  margin-top: 2em;\n}\n\n\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n\n  // pull in any following items that default to a larger top margin\n  & + * {\n    margin-top: 0.5em;\n  }\n}\n\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n\n// heading followed by no content and then a subsection that starts with heading\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n\n// smaller headings on phone screens\n@media screen and (max-width: 480px) {\n  section > .heading {\n      font-size: 1.5em;\n      line-height: 1.33em;\n      margin-top: 1em;\n  }\n  section section > .heading {\n      font-size: 1.3em;\n      line-height: 1.15em;\n  }\n  section section section > .heading {\n      font-size: 1.15em;\n      line-height: 1em;\n  }\n}\n\n.heading.hide-type > .type {\n  display: none;\n}\n"
  },
  {
    "path": "css/components/elements/_index.scss",
    "content": "\n\n/* the index at the back of the book */\n// TODO - refactor\n\n\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n\n\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n/*\n*  *  omitted, because we put a space in the source\n*      padding-right: 3px;\n*      */\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after{\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14){\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n\n.indexitem {\n  margin-top: 4px;\n}\n\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl  {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n/*  note that multiple things after \"see\" are in separate spans */\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n   margin-left: 0;\n   margin-right: 0;\n}\n\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n\n.indexitem [data-knowl], .subindexitem [data-knowl], .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover, .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n\n.indexletter {\n  margin-top: 1.5em;\n}\n"
  },
  {
    "path": "css/components/elements/_links.scss",
    "content": "\n// Reset for all links\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n}\n\n\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n\n\n// Body links. .ptx-content to avoid hitting navbar, toc, etc...\n.ptx-content {\n  a.internal {\n    color: var(--link-text-color);\n    font-weight: bold;\n  }\n  a.external {\n    color: var(--link-alt-text-color);\n    font-weight: bold;\n  }\n  a.internal:hover, a.internal:hover *,\n  a.internal:focus, a.internal:focus * {\n    color: var(--link-active-text-color);\n    background-color: var(--link-active-background);\n    font-weight: bold;\n  }\n  a.external:hover, a.external:hover *,\n  a.external:focus, a.external:focus * {\n    color: var(--link-alt-active-text-color);\n    background-color: var(--link-alt-active-background);\n    font-weight: bold;\n  }\n}\n"
  },
  {
    "path": "css/components/elements/_list-styles.scss",
    "content": "// Types of ol/ul - used by web and ebooks\n// Any spacing should be in _lists.scss, not here\n\nol.no-marker,\nul.no-marker,\nli.no-marker {\n    list-style-type: none;\n}\n\nol.decimal {\n    list-style-type: decimal;\n}\n\nol.lower-alpha {\n    list-style-type: lower-alpha;\n}\n\n// Match LaTeX style for second level (i.e. level=\"1\") lists\nol.lower-alpha-level-1 > li::marker {\n    content: \"(\"counter(list-item,lower-alpha)\") \";\n}\n\nol.upper-alpha {\n    list-style-type: upper-alpha;\n}\n\nol.lower-roman {\n    list-style-type: lower-roman;\n}\n\nol.upper-roman {\n    list-style-type: upper-roman;\n}\n\nul.disc {\n    list-style-type: disc;\n}\n\nul.square {\n    list-style-type: square;\n}\n\nul.circle {\n    list-style-type: circle;\n}\n"
  },
  {
    "path": "css/components/elements/_lists.scss",
    "content": "// Entry point for ol/ul/dl web styling\n\n@use \"list-styles\";\n@use \"description-lists\";\n@use '../helpers/cols';\n\n// generate multi column rules for lists\n@include cols.allow-cols('li');\n\n// use .ptx-content to avoid styling lists in toc/header/etc...\n.ptx-content {\n  ol,\n  ul {\n\n    ol,\n    ul {\n      // margin-top: 0.5em;\n    }\n  }\n\n  li {\n    margin-top: 0.5em;\n    // margin-bottom: 0;\n\n    // & > .para:first-child {\n    //     margin-top: 0;\n    // }\n\n    .li--heading-title {\n      font-size: 100%;\n      font-weight: normal;\n      font-style: italic;\n    }\n  }\n}   // .ptx-content\n\n.para > :is(ol, ul) {\n  // add some space when inside a .para\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\n\n// provide space for custom markers\nol > li {\n  padding-left: 0.25em;\n}\n"
  },
  {
    "path": "css/components/elements/_math.scss",
    "content": "// TODO - refactor\n\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n\n.displaymath mjx-container[jax=\"CHTML\"][display=\"true\"] {\n  margin: 0 0 0 0;  // container is going to apply margin, so remove it from mjx-container\n  padding-top: .3em; // backport MJ4 padding to MJ3\n}\n\n.process-math mjx-container svg {\n  // remove the background that is normally applied to svg's by PreTeXt CSS\n  // we use .process-math instead of .displaymath to get inline math as well.\n  background: none;\n}\n\n// ?\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n\n/* remove this when MathJax fixes the bug that was setting the width to 0 */\n/* as in  $x=0$.  becomes  $x=0\\text{.}$ */\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n    width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n    display: inline;\n}\n"
  },
  {
    "path": "css/components/elements/_media.scss",
    "content": "// ---------------------------------------------\n// containers for images, audio, video, and asymptote\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n    position: relative;\n}\n\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n    position: absolute; top: 0; left: 0; width: 100%; height: 100%;\n}\n\n// images in containers should grow to fit space\n.image-box img,\nimg.contained {\n    width: 100%;\n}\n\n.asymptote-fullsize-link {\n    text-align: center;\n    font-size: 0.9em;\n}\n\n// ---------------------------------------------\n// images\n.ptx-content img, .ptx-content svg {\n  // for body images in dark mode, we want to be able to force a light colored background\n  // as most transparent images will assume that the background is white\n  background: var(--ptx-image-bg);\n}\n// but mermaid svg should always have a transparent background\n.mermaid > svg {\n  background: none;\n}\n\n.image-description {\n  summary {\n    list-style: none; // no marker\n    cursor: pointer;\n  }\n}\n\n// download links after an image\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n\n// TODO - refactor mag_popup JS and CSS\n// was .ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup)\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\n\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n\n.mag_popup_container {\n  width:100%;\n  position:absolute;\n  z-index:1001;\n  overflow-x: visible;\n}\n\n// ---------------------------------------------\n// other\n.audio {\n    width: 100%;\n}\n\n.video-poster {\n    cursor: pointer;\n}\n"
  },
  {
    "path": "css/components/elements/_misc-content.scss",
    "content": "\n// Miscellaneous stylized content blocks that are not complex enough\n// to warrant their own file\n\nem.alert {\n  font-weight: bold;\n}\n\n.bib {\n  margin-top: 0.25em;\n\n  .bibitem {\n    display: inline-block;\n    vertical-align: top;\n    width: 7%;\n    margin-right: 0;\n  }\n  \n  .bibitem + .bibentry {\n    display: inline-block;\n    width: 90%;\n    margin-top: 0;\n  }\n}\n\n\n\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n\n\n.contributor {\n  margin-top: 1.5ex;\n\n  &:first-child {\n    margin-top: 0em;\n  }\n\n  & + .para {\n    margin-top: 3ex;\n  }\n\n  .contributor-name {\n    font-variant: small-caps;\n  }\n\n  .contributor-info {\n    font-size: 88%;\n    font-style: italic;\n    margin-left: 3ex;\n  }\n}\n\n\n// Icon font settings\n.material-symbols-outlined {\n  font-variation-settings:\n  'FILL' 0,\n  'wght' 400,\n  'GRAD' 0,\n  'opsz' 24\n}\n\n\niframe {\n  margin: 0;\n  border: none;\n}\n\n\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n\n\n.unit,\n.quantity {\n    white-space: nowrap;\n    word-spacing: -0.25ex;\n    margin-right: 0.125em;\n\n    sub, sup {\n      word-spacing: normal;\n    }\n}\n\n\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n\n\n\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n\n\n.emphasis {\n  font-style: italic;\n\n  .emphasis {\n      font-weight: bold;\n  }\n}\n\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n\n.para {\n  line-height: 1.35;\n}\n\n.hidden {\n  display: none !important;\n}\n\n/* genus and species in italics */\n.taxon {\n  font-style: italic;\n}\n\n.quote {\n    padding-left: 40px;\n    padding-right: 10px;\n    margin-bottom: 1em;\n}\n\n.booktitle {\n    font-style: oblique;\n}\n\n/* Adapted from William Hammond (attributed to David Carlisle) */\n/* \"mathjax-users\" Google Group, 2015-12-27 */\n\n.latex-logo {font-family: \"PT Serif\", \"Times New Roman\", Times, serif;}\n\n.latex-logo .A {font-size: 75%; text-transform: uppercase; vertical-align: .5ex;\n         margin-left: -.48em; margin-right: -.2em;}\n\n.latex-logo .E {vertical-align:-.5ex; text-transform: uppercase;\n         margin-left: -.18em; margin-right: -.12em; }\n"
  },
  {
    "path": "css/components/elements/_permalinks.scss",
    "content": "// TODO - refactor\n$opacity: 0.0 !default;\n\n/*\nSo that we can position things (like .autopermalink) absolutely wrt these items.\nAny element whose permalink should be positioned directly to the left of it\nshould be in this list.\n*/\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  // variable allows theme to set different opacities for dark/light\n  opacity: var(--permalink-opacity, $opacity);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\n\nli > .autopermalink {\n  left: -3.5em;\n}\n\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n\n\n// Move permalink for division titles etc a little bit lower\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n\n// In some styles, the autopermalink for paras land right on the border line.\n// This is an attempt to fix that.  TODO: find a more robust solution, maybe\n// using a variable for the left offset of paras inside blocks.\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n\n\n.axiom-like, .example-like, .exercise-like, .solution-like, .assemblage-like, .definition-like, .remark-like, .project-like, .openproblem-like, .computation-like, .theorem-like, .proof, .case, li, dd {\n  > .para:first-of-type > .autopermalink {\n    display:none;\n  }\n\n  > .introduction > .para:first-of-type > .autopermalink {\n    display:none;\n  }\n}\n\n\n// Hover effects\n\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n\n\n/* when jumping to a permalink, push down so sticky navbar does not cover */\n:target {\n  scroll-margin-top: 45px;\n  // the \"pink flash\" when navigating to a target\n  animation: target-fade 10s 1;\n}\n\n@keyframes target-fade {\n    0% { background-color: var(--activated-content-bg) }\n    100% {\n      background-color: inherit;\n      opacity: 1;\n    }\n}\n"
  },
  {
    "path": "css/components/elements/_poem.scss",
    "content": "/* style for poems */\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\n\nsection article.poem > .heading::after {\n  content: \"\";\n}\n\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n\n.poem .author.left {\n  text-align: left;\n}\n\n.poem .author.center {\n  text-align: center;\n}\n\n.poem .author.right {\n  text-align: right;\n}\n\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n\n.poem .line.center {\n  text-align: center;\n}\n\n.poem .line.right {\n  text-align: right;\n}\n\n.poem .tab {\n  margin-left: 2em;\n}\n"
  },
  {
    "path": "css/components/elements/_prism.scss",
    "content": "@use '../chunks/codelike';\n\n// Prism stylesheets built locally as default ones don't support light/dark switching\n// this is a merged version of the default and dark themes\n\n// Default prism styling\n// Blocks\npre[class*=\"language-\"] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n\n// Inline code\n:not(pre) > code[class*=\"language-\"] {\n  padding: .1em;\n  border-radius: .3em;\n  white-space: normal;\n}\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n\n  &.code-inline {\n    // unclobber some inline code styles\n    @include codelike.code-inline-spacing();\n  }\n\n  &::selection,\n  & ::selection {\n    background: #b3d4fc;\n  }\n\n  .token {\n    \n    &:is(.comment,\n    .prolog,\n    .doctype,\n    .cdata) {\n      color: #2a9716;\n    }\n    \n    &.punctuation {\n      color: #000;\n    }\n    \n    &.namespace {\n      opacity: .9;\n    }\n    \n    &:is(.property,\n    .tag,\n    .boolean,\n    .number,\n    .constant,\n    .symbol,\n    .deleted) {\n      color: rgb(41, 120, 15);\n    }\n    \n    &:is(.selector,\n    .attr-name,\n    .string,\n    .char,\n    .builtin,\n    .regex,\n    .inserted) {\n      color: #a11;\n    }\n    \n    &:is(.operator,\n    .entity,\n    .url) {\n      color: #000;\n      background: none;\n    }\n    \n    &:is(.atrule,\n    .attr-value,\n    .keyword) {\n      color: #0679B7;\n    }\n    \n    &.function,\n    &.class-name {\n      color: #30a;\n    }\n    \n    &.important,\n    &.variable {\n      color: rgb(0, 0, 0);\n    }\n    \n    \n    &.important,\n    &.bold {\n      font-weight: bold;\n    }\n    \n    &.italic {\n      font-style: italic;\n    }\n    \n    &.entity {\n      cursor: help;\n    }\n  }\n  \n  // -------------------------------------------\n  // Line numbers\n  &.line-numbers {\n    position: relative;\n    padding-left: 3.8em;\n    counter-reset: linenumber;\n    overflow: auto;\n    \n    > code {\n      position: relative;\n      white-space: inherit\n    }\n    \n    .line-numbers-rows {\n      position: absolute;\n      pointer-events: none;\n      top: 0;\n      font-size: 100%;\n      left: -3.8em;\n      width: 3em;\n      letter-spacing: -1px;\n      border-right: 1px solid #999;\n      user-select: none\n    }\n    \n    .line-numbers-rows > span {\n      display: block;\n      counter-increment: linenumber\n    }\n    \n    .line-numbers-rows > span::before {\n      content: counter(linenumber);\n      color: #999;\n      display: block;\n      padding-right: .8em;\n      text-align: right\n    }\n  }\n  \n  \n  // -------------------------------------------\n  // Line highlighting\n  .line-highlight {\n    position: absolute;\n    margin-top: 4px;    // tune to match padding of containing pre\n    left: 0;\n    right: 0;\n    padding: inherit 0;\n    font-size: inherit;\n    background: hsla(24, 20%, 50%, 8%);\n    pointer-events: none;\n    line-height: inherit;\n    white-space: pre\n  }\n}\n\n// -------------------------------------------\n// Dark mode\n:root.dark-mode {\n  \n  /* Code blocks */\n  pre[class*=\"language-\"] {\n    border: 1px solid #3d3d3d;\n  }\n  \n  \n  // Darker styling to match Runesone's code mirror theme\n  code[class*=\"language-\"],\n  pre[class*=\"language-\"] {\n    color: white;\n    background: hsl(0, 0%, 8%);\n    \n    &::selection,\n    & ::selection {\n      background: hsl(200, 4%, 16%);\n    }\n    \n    /* Make the tokens sit above the line highlight so the colours don't look faded. */\n    .token {\n      position: relative;\n      z-index: 1;\n      \n      &:is(.comment,\n      .prolog,\n      .doctype,\n      .cdata) {\n        color: #68a950;\n      }\n      \n      &.punctuation {\n        color: white;\n        opacity: 1;\n      }\n      \n      &.namespace {\n        opacity: .9;\n      }\n      \n      &:is(.property,\n      .tag,\n      .boolean,\n      .number,\n      .constant,\n      .symbol,\n      .deleted) {\n        color: #abc792;\n      }\n      \n      &:is(.selector,\n      .attr-name,\n      .string,\n      .char,\n      .builtin,\n      .regex,\n      .inserted) {\n        color: #ca9147;\n      }\n      \n      &:is(.operator,\n      .entity,\n      .url) {\n        color: white;\n      }\n      \n      &:is(.atrule,\n      .attr-value,\n      .keyword) {\n        color: #2d94fb;\n      }\n      \n      &.function,\n      &.class-name {\n        color: #e3e1c2;\n      }\n      \n      &.important,\n      &.bold {\n        font-weight: bold;\n      }\n      \n      &.italic {\n        font-style: italic;\n      }\n      \n      &.entity {\n        cursor: help;\n      }\n      \n    }\n  }\n  \n  .line-highlight {\n    background: hsla(0, 0%, 33%, 10%);\n    border-bottom: 1px dashed hsl(0, 0%, 33%);\n    border-top: 1px dashed hsl(0, 0%, 33%);\n    z-index: 0;\n  }\n}\n\n@media print {\n  code[class*=\"language-\"],\n  pre[class*=\"language-\"] {\n    .line-highlight {\n      color-adjust: exact\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/elements/_summary-links.scss",
    "content": "\n/* Start of division toc links */\n// .ptx-content to override _links rules\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n\n  a {\n    color: var(--summary-link-text-color);\n    background: var(--summary-link-background);\n    font-size: 1.5em;\n    line-height: 1.25em;\n    padding: 10px 20px;\n    padding-right: 60px;\n    border-radius: 3px;\n    position: relative;\n    display: block;\n    font-weight: unset;\n\n    .title{\n      font-style: normal;\n    }\n\n    .codenumber {\n      margin-right: 0.41667em;\n    }\n\n    &::after {\n      // triangles\n      right: 0.83333em;\n      content: \"\";\n      position: absolute;\n      top: 50%;\n      margin-top: -0.4em;\n      width: 0;\n      height: 0;\n      border-top: 0.4em solid transparent;\n      border-bottom: 0.4em solid transparent;\n      border-left: 0.4em solid var(--summary-link-text-color);\n    }\n\n    &:hover {\n      color: var(--summary-link-hover-text-color);\n      background: var(--summary-link-hover-background);\n\n      // need to override work done in _links\n      * {\n        color: var(--summary-link-hover-text-color);\n        background: var(--summary-link-hover-background);\n      }\n      .title {\n        font-weight: normal;\n      }\n\n      &::after {\n        border-left: 0.4em solid var(--summary-link-hover-text-color);\n      } \n    } \n  }\n\n  ul {\n      list-style-type: none;\n      padding: 0;\n      margin-top: 0;\n  }\n\n  li {\n      margin-top: 5px;\n  }\n}\n\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    //shrink on mobile\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n"
  },
  {
    "path": "css/components/elements/_tables.scss",
    "content": "// limit rules targeting basic elements to just content area\n.ptx-content {\n  table {\n    border-spacing: 0;\n    border-collapse: collapse;\n  }\n\n  td {\n    padding: 2px 5px;\n    font-size: 90%;\n\n    img {\n      max-width: 200px;\n      margin-right: 30px;\n    }\n  }\n\n  th {\n    padding: 2px 5px;\n  }\n\n  // generate alignment/border mixin classes for both th and td\n  @each $cell-type in (th, td) {\n    #{$cell-type} {\n      .lines {\n        white-space: nowrap;\n      }\n\n      // horizontal alignment options\n      @each $class, $align in (l: left, c: center, r: right, j: justify) {\n        &.#{$class} {\n          text-align: $align;\n        }\n      }\n\n      // vertical alignment options\n      @each $class, $align in (t: top, b: bottom, m: middle) {\n        &.#{$class} {\n          vertical-align: $align;\n        }\n      }\n\n      // border options\n      @each $side, $side-symbol in (left: l, right: r, top: t, bottom: b) {\n        @for $i from 0 through 3 {\n          &.#{$side-symbol}#{$i} {\n            @if $i ==0 {\n              border-#{$side}: none;\n            }\n\n            @else {\n              border-#{$side}: #{$i}px solid var(--body-text-color);\n            }\n          }\n        }\n      }\n    }\n  }\n\n\n  // when cells do not have a border on left and right, add padding\n  th.r0.l0,\n  td.r0.l0  {\n    padding-left: 0.8em;\n    padding-right: 0.8em;\n  }\n\n  tr.header-vertical {\n    th {\n      writing-mode: vertical-rl;\n      transform: rotate(180deg);  // match LaTeX's vertical header orientation\n      padding-top: 5px;  // bottom after rotation\n    }\n  }\n\n  .center {\n    table {\n      text-align: center;\n      margin-left: auto;\n      margin-right: auto;\n    }\n  }\n}\n\n// Rules with non-generic targeting\n\n.tabular-box {\n  margin-top: 0.5em;  //minimum space above to separate from figcaption\n  overflow-x: auto;\n}\n\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n\n// More specific types of tables\n\ntable.notation-list {\n  tr {\n    th {\n      text-align: left;\n      margin-left: 1em;\n    }\n\n    td {\n      text-align: left;\n      vertical-align: top;\n    }\n  }\n}\n\n\n\n"
  },
  {
    "path": "css/components/elements/extras/_heading-underlines.scss",
    "content": "$color-light: var(--primary-color-white-30) !default;\n$color-dark: var(--primary-color-black-30) !default;\n$thickness: 2px !default;\n$padding: 3px !default;\n$thickness-h2: 4px !default;\n$thickness-h3: 3px !default;\n\n\nsection > .heading {\n  padding-bottom: $padding;\n  border-bottom: $thickness solid $color-light;\n}\nsection > h2.heading {\n  border-bottom-width: $thickness-h2;\n}\nsection > h3.heading {\n  border-bottom-width: $thickness-h3;\n}\n\n:root.dark-mode {\n  section > .heading {\n    border-bottom-color: $color-dark;\n  }\n}\n"
  },
  {
    "path": "css/components/helpers/README.md",
    "content": "Mixins used to build style rules in other files\n"
  },
  {
    "path": "css/components/helpers/_buttons-default.scss",
    "content": "$border-radius: 0 !default;\n\n@mixin ptx-button(\n  $border-radius: $border-radius\n) {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: $border-radius;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n\n  // Disable accidental text-selection\n  user-select: none;\n\n  &:hover:not(.disabled) {\n    color: var(--button-hover-text-color);\n    background-color: var(--button-hover-background);\n  }\n\n  &:focus-visible {\n    outline: 2px solid var(--button-text-color);\n    outline-offset: -2px;\n  }\n\n  &.disabled {\n    opacity: .4;\n    cursor: not-allowed;\n  }\n\n  &.hidden {\n    display: none;\n  }\n\n  &.open {\n    color: var(--button-hover-text-color);\n    background-color: var(--button-hover-background);\n  }\n}\n\n@mixin ptx-dropdown-button {\n  position: relative;\n\n  .dropdown-content {\n    display: none;\n    position: absolute;\n    background-color: var(--dropdown-background);\n    min-width: 160px;\n    z-index: 100;\n    border: 1px solid var(--dropdown-border-color);\n    right: 0;\n    top: 35px;\n    text-align: start;\n    padding: 0;\n\n    a {\n      display: block;\n      text-decoration: none;\n      color: var(--dropdown-text-color);\n      padding: 2px 8px;\n\n      &:is(:hover, :focus-visible) {\n        background-color: var(--dropdown-hover-background);\n        color: var(--dropdown-hover-text-color);\n      }\n    }\n\n    hr {\n      color: var(--dropdown-border-color);\n      margin: 4px 0;\n    }\n  }\n\n  &:is(:hover, :focus-visible, :focus-within) {\n    overflow: visible;\n\n    .dropdown-content {\n      display: block;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/helpers/_cols.scss",
    "content": "\n// columns are arranged in row-major order to match print output in LaTeX\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n\n// see lists and exercises for sample use\n@mixin allow-cols($el, $col-gap: 2em) {\n  @for $i from 2 through 6 {\n    .cols#{$i} > #{$el} {\n      // columns are a suggestion enforced by a minimum size\n      // content that needs to be wider can reduce number of columns\n      // in its row\n      min-width: calc(100% / $i - #{$col-gap});\n      width: min-content;\n      margin-right: $col-gap;\n    }\n  }\n}\n\n"
  },
  {
    "path": "css/components/helpers/_expandable.scss",
    "content": "// Styling for elements in ptx-main that are allowed to expand past normal width\n// of ptx-content.\n\n// Assumes that $content-padding is set to the padding of ptx-content\n// and that element normally takes up 100% of parent width. (Like display-math)\n\n// for responsive elements\n$width-hard-cap: 900px !default;\n$base-content-width: 600px !default;\n$content-padding: 48px !default;\n$always-expand: false !default;  // whether to always expand to the max width\n$centered: false !default;  // whether to center the content if not max width\n$content-with-padding-width: $base-content-width + 2 * $content-padding;\n\n// for scrollable\n$overflow-y-scroll: hidden !default;\n\n\n// An element that has some minimum authored width which may be larger\n// than the available width. We want it to scroll horizontally.\n@mixin scrollable(\n  $overflow-y-scroll: $overflow-y-scroll\n) {\n  overflow-x: auto;\n  $overflow-y: $overflow-y-scroll;\n}\n\n// An element with no minimum width that we want to allow to expand\n// to whatever width is available to maximize the display area.\n@mixin responsive(\n  $base-content-width: $base-content-width,\n  $width-hard-cap: $width-hard-cap,\n  $content-padding: $content-padding,\n  $always-expand: $always-expand,\n  $centered: $centered\n) {\n  @container ptx-main (width > #{$base-content-width + 2 * $content-padding}) {\n    --max-width: calc(min((100cqw - 2 * #{$content-padding}), #{$width-hard-cap}));\n    min-width: 100%;\n    clear: right; // clear any floats\n    @if $always-expand {\n      width: var(--max-width);\n    } @else {\n      width: fit-content;      //grow if space needed\n    }\n    max-width: var(--max-width);\n    @if $centered {\n      margin-left: calc(-0.5 * (100cqw - #{$content-with-padding-width}));\n    }\n  }\n}\n\n// An element that has some minimum authored width which we want to allow to expand\n// to whatever width is available to maximize visible content.\n// Content that is still not visible will be scrollable.\n@mixin expandable(\n  $base-content-width: $base-content-width,\n  $width-hard-cap: $width-hard-cap,\n  $content-padding: $content-padding,\n  $always-expand: $always-expand,\n  $centered: $centered,\n  $overflow-y-scroll: $overflow-y-scroll\n) {\n  @include scrollable(\n    $overflow-y-scroll: $overflow-y-scroll\n  );\n  @include responsive(\n    $base-content-width: $base-content-width,\n    $width-hard-cap: $width-hard-cap,\n    $content-padding: $content-padding,\n    $always-expand: $always-expand,\n    $centered: $centered\n  );\n}\n"
  },
  {
    "path": "css/components/interactives/README.md",
    "content": "Interactive elements.\n\nThese could be made conditional in the build process if we passed the requisite info from PTX to cssbuilder.\n"
  },
  {
    "path": "css/components/interactives/_calculators.scss",
    "content": "// GeoGebra calculator\n\n$navbar-breakpoint: 856px !default;\n\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n\n@media screen and (max-width: $navbar-breakpoint) {\n  .calculator-container {\n    //assumes navbar moves to bottom of screen\n    bottom: 50px !important;\n  }\n}\n"
  },
  {
    "path": "css/components/interactives/_other.scss",
    "content": "// Misc styles for interactive bits that should only be incldued in a web context\n// (not ebook)\n\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n  & > iframe {\n    margin-left: auto;\n    margin-right: auto;\n    display: block;\n  }\n}\n\n.interactive__instructions {\n  // ensure interactive instructions stay normal width\n  max-width: var(--base-content-width);\n}\n\n// center instructions and iframes on standalone pages\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n  & .icon {\n    font-size: 18px;\n  }\n\n  // if figcaption or instructions follow, this should float next to that\n  &:has(+ figcaption, + .instructions) {\n    float: left;\n    z-index: 1; // place above fig caption in render stack\n    position: relative;  // for z-index\n  }\n\n  // and if both, the figcaption should clear\n  + .instructions + figcaption {\n    clear: left;\n  }\n\n  + .instructions {\n    margin-top: .5em;\n  }\n}\n\n\n.clipboardable {\n  position: relative;  // To anchor the code-copy button\n  display: flow-root;\n\n  .code-copy {\n    position: absolute;\n    right: 0;\n    top: 0;\n    opacity: 0.25;\n    border-width: 0;\n    background: none;\n    cursor: pointer;\n    z-index: 1;\n    white-space-collapse: collapse;\n    padding: 1px;\n    scale: 0.85;\n\n    &:hover {\n      opacity: 0.7;\n    }\n\n    .checkmark {\n      display: none;\n    }\n\n    &.copied {\n      opacity: 1;\n      color: mediumseagreen;\n      cursor: not-allowed;\n      pointer-events: none;\n\n      .copyicon {\n        display: none;\n      }\n\n      .checkmark {\n        display: inline;\n      }\n    }\n  }\n}\n\n// if code-display clipboardable, move margin to that container and turn some into padding\n// to help make sure clipboard icon is contained inside the code-display in dark mode\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n\n  .code-display {\n    margin: 0;\n    padding: 0.25em 0;\n  }\n}"
  },
  {
    "path": "css/components/interactives/_runestone.scss",
    "content": "// extra specific to override Runestone margin\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n\n// avoid label splitting into multiple lines\n.multiplechoice_section label > .para {\n  display: inline;\n}\n\n// extra specific to override Runestone margin\n.ptx-content .ptx-runestone-container .ac_question { \n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n\n.runestone .runestone_caption {\n  // caption is always just something like \"ActiveCode\" in PTX\n  display: none;\n}\n\n\n/* to undo Runestone's draganddrop.css */\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n\n// Unsure if still needed\n/* hack for runestone */\n/* to undo Runestone's presentermode.css */\n.ptx-content .bottom {\n    position: unset;\n}\n\n// override Runestone's pre formatting with these extra specific rules\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: .93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n\n// override Runestone's pre formatting with these extra specific rules\n.ptx-runestone-container code[class*=\"language-\"],\n.ptx-runestone-container pre[class*=\"language-\"] {\n  color: black;\n  background: #fdfdfd;\n}\n\n//Fixup datafile captions\n.runestone.datafile {\n  .datafile_caption {\n    background: var(--code-inline-background);\n    border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n    display: block;\n    width: fit-content;\n    margin: 0 auto;\n  }\n  img {\n    margin: 0 auto;\n    display: block;\n    border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  }\n  pre, textarea {\n    margin: 0 auto;\n    border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n    background-color: var(--page-color);\n  }\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\n\n// RS does not care what kind of element is used\n// PTX chooses to use a ul, so we will fix margins for it here instead of RS\nul[data-component=\"timedAssessment\"] {\n  margin: 0;\n  padding: 0;\n}\n\n:root.dark-mode {\n  // Darker styling to match Runesone's code mirror theme\n  .ptx-runestone-container code[class*=\"language-\"],\n  .ptx-runestone-container pre[class*=\"language-\"] {\n    color: white;\n    background: hsl(0, 0%, 8%);\n  }\n}\n\n// Similar to rules in _spacing.scss\n// <statments> exercise content divs that are hoisted into a RS interactive\n// should get one of these classes.\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n"
  },
  {
    "path": "css/components/interactives/_sagecell.scss",
    "content": "// TODO - refactor\n\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n\n.sage-interact.sagecell {\n  margin: 0;\n}\n\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  /* Disable accidental text-selection */\n  user-select: none;\n  /* Truncate overflowing text with ellipsis */\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n"
  },
  {
    "path": "css/components/interactives/_webwork.scss",
    "content": "// TODO - needs refactoring and dark mode update\n\n@use 'components/helpers/buttons-default' as buttons;\n\n/*  WW problems */\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n\n/* interactive WeBWorK */\n\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\n\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\n\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\n\nlabel.incorrect .status {\n  color: #b00;\n}\n\nlabel.incorrect .status::before {\n  content: \" \";\n}\n\nlabel.feedback {\n  word-wrap: break-word;\n}\n\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\n\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\n\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n\n// Make the default margin for items inside the exercise-wrapper similar to\n// default for items in a section\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n\n.ptx-content .problem-buttons {\n  display: flex;\n}\n\n.ptx-content .webwork-button {\n  @include buttons.ptx-button;\n}\n\n//.hidden-content used to be used for knowls and got repurposed for hiding webwork contents\n// now just used by webwork\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n"
  },
  {
    "path": "css/components/page-parts/README.md",
    "content": "Styling for large display regions on the page\n\nIt is expected that a file like `_parts-default.scss` will be used to aggregate the\nparts. Themes that wish to use a different mix of parts should provide their own\nversion of a parts file.\n"
  },
  {
    "path": "css/components/page-parts/_banner.scss",
    "content": "$max-width: 1200px !default;  // 0 == no max width\n$navbar-breakpoint: 800px !default;\n$centered-content: false !default;\n\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display:flex;\n  justify-content: center;\n\n  .ptx-banner {\n    border-top: 1px solid transparent;\n    overflow: hidden;\n    padding: 10px 10px;\n    border-bottom: none;\n    display:flex;\n    width: 100%;\n    align-items: center;\n    @if $max-width > 0 {\n      max-width: $max-width;\n    }\n    @if $centered-content  {\n      justify-content: center;\n    }\n  }\n\n  a {\n    color: var(--doc-title-color, #2a5ea4);\n  }\n\n  a:active {\n    color: var(--link-active-text-color);\n  }\n\n  .title-container {\n    font-family: var(--font-headings);\n    font-size: 2em;\n    padding-left: 9.68px;\n    overflow: hidden;\n    flex: 1;\n\n    .heading {\n      font-weight: 700;\n      font-size: 100%;\n      line-height: 1.25em;\n    }\n\n    .title:has(+ .subtitle)::after {\n      content: \":\";\n    }\n\n    .subtitle {\n      font-weight: normal;\n    }\n  }\n\n  .logo-link {\n    height: 5em;\n    display: flex;\n\n    img {\n      max-height: 100%; //fix rendering bug on safari with large images\n    }\n    img[src$=\".svg\"] {\n      height: 100%; //svg's in safari don't get a correct width with max-height\n      // don't use this for all images as we wouldn't want to stretch raster images\n    }\n  }\n\n  // // Insert a placeholder icon if the logo-link is empty\n  // .logo-link:empty::before {\n  //   display: flex;\n  //   font-family: var(--font-body);\n  //   font-size: 4rem;\n  //   margin-top: -0.7rem;\n  //   content: \"\\2211\"; //sigma symbol\n  //   color: var(--page-border-color)\n  // }\n\n  .byline {\n    color: var(--byline-color);\n    font-weight: normal;\n    margin: 0;\n    font-size: 62.5%;\n    min-height: inherit;\n  }\n}\n\n@media screen and (max-width: $navbar-breakpoint) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n\n    .ptx-banner {\n      padding: 10px 28px;\n      display: flex;\n      justify-content: center;\n    }\n\n    .logo-link::before {\n      font-size: 1rem;\n      margin-top: 0;\n    }\n\n    .title-container {\n      width: fit-content;\n      flex: unset;\n      .heading {\n        line-height: 1em;\n\n        .subtitle {\n          /* Force the subtitle onto a separate line */\n          display: block;\n          font-size: 80%;\n          line-height: 1em;\n        }\n      }\n    }\n\n    .byline {\n      font-size: 50%;\n    }\n  }\n}\n\n\n@media screen and (width <= 480px) {\n  .ptx-masthead {\n\n    .title-container {\n      padding: 0;\n      text-align: center;\n      font-size: 1em;\n    }\n\n    .logo-link {\n      display: none;\n    }\n\n    .byline {\n      display: none;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/_body.scss",
    "content": "// Body level styling\n$max-width: 1200px !default;  // 0 == no max width\n$standalone-max-width: 1600px !default;  // used for iframe standalones\n\n$content-width: 600px !default;                 // without padding\n$content-side-padding: 48px !default;\n$centered-content: false !default;\n\n$footer-button-border-radius: 0 !default;\n\n$content-with-padding-width: $content-width + 2 * $content-side-padding;\n\n@use 'components/helpers/buttons-default' as buttons;\n\n// set content width up as a CSS variables so other files can ask\n// \"how wide is standard content?\"\n:root {\n  --base-content-width: #{$content-width};\n  --content-padding: #{$content-side-padding};\n}\n\n// hits regular pages and generated iframe pages\nbody {\n  margin: 0;\n  min-height: 100vh;\n\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n\n  &.pretext {\n    color: var(--body-text-color);\n    font-family: var(--font-body);\n  }\n}\n\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;  // fill space in body\n  width: 100%;\n}\n\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;  // for container queries elsewhere\n  container-type: inline-size;  // for container queries elsewhere\n}\n\n// Base width/padding\n// ptx-main ensures iframe pages don't get these\n.ptx-main .ptx-content {\n  max-width: $content-with-padding-width;   // bad for worksheets\n  padding: 24px $content-side-padding 60px;\n\n  @if $centered-content {\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n.worksheet .ptx-main .ptx-content {\n    max-width: 960px;\n}\n\n@if $max-width > 0 {\n  .ptx-page {\n    max-width: $max-width;\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n\n// Hide print preview header div in normal view\n.ptx-content .print-preview-header {\n  display: none;\n}\n\nbody.pretext > a.assistive {\n  padding:6px;\n  position: absolute;\n  top:-40px; // hide off screen until keyboard focus\n  left: 0px;\n  color:white;\n  border-right:1px solid white;\n  border-bottom:1px solid white;\n  border-bottom-right-radius:8px;\n  background:#BF1722; // always have correct contrast\n  z-index: 10000;\n\n  &:focus {\n    top:0px; // move into view when keyboard focus\n    outline:0;\n    transition: top .1s ease-in, background .5s linear;\n  }\n}\n\n\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: $content-with-padding-width;\n\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: $content-side-padding;\n  padding-right: $content-side-padding;\n\n  @if $centered-content {\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  .button {\n    @include buttons.ptx-button(\n      $border-radius: $footer-button-border-radius\n    );\n    .icon {\n      margin: 0 -7px; // current icons have lots of whitespace\n    }\n  }\n}\n\n// Give iframe popout pages a wider max width, since they have no sidebars\n// and content should be free to grow to reasonable size\nbody.standalone-page .ptx-page {\n    max-width: $standalone-max-width;\n}"
  },
  {
    "path": "css/components/page-parts/_footer.scss",
    "content": "$max-width: 0 !default;  // 0 == no max width\n$navbar-breakpoint: 856px !default;\n$nav-height: 36px !default;\n\n@use 'components/helpers/buttons-default' as buttons;\n\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n  @if $max-width > 0 {\n    max-width: $max-width;\n  }\n  \n  \n  & > a {\n    margin: 1em 0;\n    color: var(--body-text-color);\n  }\n\n  & > a > .logo:first-child {\n    height: 3em;\n    width: unset;\n    margin: 0;\n  }\n\n  .feedback-link {\n    @include buttons.ptx-button;\n  }\n}\n\n\n@media screen and (max-width: $navbar-breakpoint) {\n  .ptx-page-footer {\n    // prevent icons from spreading too much\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: $nav-height - 2;\n\n    & > a > .logo:first-child {\n      height: 2em;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/_navbar.scss",
    "content": "$max-width: 1200px !default;  // 0 == no max width\n// applied to the contents of the navbar\n\n$nav-height: 36px !default;\n$border-width: 1px !default;\n$navbar-breakpoint: 800px !default;\n$center-content: true !default;\n\n@use 'components/helpers/buttons-default' as buttons;\n\n@use 'components/page-parts/extras/navbar-btn-borders';\n\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: $nav-height;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n\n  .ptx-navbar-contents {\n    position: relative;\n    display: flex;\n    flex: 1;\n    justify-content: center;\n    align-items: center;\n    max-width: $max-width;\n    @if $center-content {\n      margin: 0 auto;\n    }\n  }\n\n  .button {\n    @include buttons.ptx-button;\n\n    & {\n      height: 100%; //always fill container\n      // Disable normal borders - top/bottom provided by container\n      // Use extras/_navbar-btn-borders.scss for side borders if desired\n      border-width: 0;\n\n    }\n  }\n\n  .toc-toggle {\n    width: 240px;\n    gap: 0.4em;\n    margin-left: 0; //assumes is first button\n  }\n\n  :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n    display: flex;\n  }\n\n  .treebuttons {\n    flex: 1 1 210px;\n    justify-content: end;\n  }\n\n  .nav-runestone-controls {\n    flex: 1 1 70px;\n    justify-content: end;\n  }\n\n  .pretext .navbar .dropdown {\n    height: 34px;\n  }\n\n  .embed-popup {\n    padding: 10px;\n    background-color: var(--navbar-background);\n    position: absolute;\n    margin-top: $nav-height;\n    border: 1px solid var(--page-border-color);\n    border-radius: 3px;\n    box-shadow: 0 0 5px var(--primary-color-gray-80);\n    color: var(--button-text-color);\n\n    .embed-code-container {\n      width: \"100%\";\n      padding:5px;\n      .embed-code-textbox {\n        width: 100%;\n        padding: 10px;\n        height: 5em;\n      }\n    }\n  }\n\n  .treebuttons > * {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 75px;\n  }\n\n  .treebuttons .icon {\n    margin: 0 -7px; // chevrons have lots of horizontal padding\n  }\n\n  :is(.index-button) .icon {\n    display: none;\n  }\n\n  :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n    display: none;\n  }\n\n  .index-button {\n    min-width: 70px;\n  }\n\n}\n\n// Button in the navbar, but needs to be less specific so not nested in previous\n.runestone-profile {\n  @include buttons.ptx-dropdown-button;\n}\n\n@if $max-width > 0 {\n  @media screen and (min-width: $max-width) {\n    body.pretext .ptx-navbar {\n      //forces navbar to line up cleanly with sidebar\n      // need padding because there is no container around the items in navbar\n      // padding: 0 calc((100% - $max-width) / 2);\n      // border-left-width: 1px;\n\n      // //tug contents of first button to left\n      // & .ptx-navbar-contents > *:first-child {\n      //   justify-content: start;\n      // }\n    }\n  }\n}\n\n@media screen and (max-width: $navbar-breakpoint) {\n  @include navbar-btn-borders.navbar-btn-borders();\n\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n\n    .ptx-navbar-contents {\n      max-width: 100vw;\n    }\n\n    .nav-runestone-controls {\n      flex: 0;\n    }\n\n    .toc-toggle {\n      flex: 2 1 100px;\n    }\n\n    .treebuttons {\n      flex: 3 1 150px;\n      /* 3:2 ratio with toc-toggle */\n    }\n\n    .treebuttons > * {\n      flex: 1 1;\n      min-width: 35px\n    }\n\n    .index-button {\n      display: none;\n    }\n\n    .embed-popup {\n      margin-top: unset;\n      bottom: $nav-height;\n    }\n\n    .dropdown-content {\n      top: unset;\n      bottom: $nav-height;\n    }\n\n    :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n      display: none;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/_toc-basics.scss",
    "content": "// shared toc styling used by _toc-default, etc...\n\n$sidebar-width: 240px !default;\n$nav-height: 36px !default;\n\n\n\n.ptx-sidebar {\n  align-self: flex-start; // needed for sticky inside a flex\n\n  &.visible {\n    display: block;\n  }\n\n  &.hidden {\n    display: none;\n    height: 0;\n  }\n}\n\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n\n  background: var(--toc-background);\n\n  margin: 0;\n  font-size: 0.9rem;\n\n  /* -------------------toc-items-------------------- */\n  // will be less indentation, add some padding\n  &:is(.depth1, .parts.depth2) {\n    --codenumber-pad-right: 0.5rem;\n  }\n\n  .toc-item-list {\n    margin: 0;\n    padding: 0;\n    list-style: none;\n    background: var(--tocitem-background);\n\n    .active {\n      list-style: none; // clobber runestone css\n    }\n  }\n\n  .toc-item {\n    background-color: var(--tocitem-background);\n    color: var(--toc-text-color);\n    border-color: var(--toc-border-color);\n\n    a {\n      color: inherit;\n    }\n\n    // only highlight lowest level active item\n    // need !important to override later depth based css\n    &.active:not(:has(.toc-item.active)) {\n      color: var(--tocitem-active-text-color) !important;\n      background-color: var(--tocitem-active-background) !important;\n      border-color: var(--tocitem-active-border-color) !important;\n    }\n\n    // hoving over a toc item\n    & > .toc-title-box > a:is(:hover, :focus) {\n      color: var(--tocitem-highlight-text-color);\n      background-color: var(--tocitem-highlight-background);\n      border-color: var(--tocitem-highlight-border-color);\n    }\n  }\n\n  /* -------------------title-box------------------- */\n\n  .toc-title-box {\n    display: flex;\n  }\n\n  .toc-title-box > .internal {\n    position: relative;\n    display: flex;\n    flex-grow: 1;\n    padding: 0.2em;\n    font-weight: 500;\n  }\n\n  /* at second level, switch fonts */\n  .toc-item-list .toc-item-list .toc-title-box > .internal {\n    font-weight: normal;\n  }\n\n  /* -------------------codenumbers-------------------- */\n  .codenumber {\n    min-width: var(--toc-indent-first);\n    padding-left: var(--codenumber-pad-left);\n    padding-right: var(--codenumber-pad-right);\n    display: inline-block;\n    text-align: left;\n    flex-grow: 0;\n  }\n}\n\n\n\n// --------------------------------------------------------------------------\n// Conditional styling based on depth\n\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item  .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n\n\n/* second level of numbering */\n/*  anything 1+ levels deeper than a chapter in a book */\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n/*  anything 1+ levels deeper than a section in an article */\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n/*  anything 1+ levels deeper than backmatter */\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n\n/* third level of numbering */\n/*  anything 2+ levels deeper than a chapter in a book */\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n/*  anything 2+ levels deeper than a section in an article */\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n/*  anything 2+ levels deeper than backmatter */\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n\n/* reveal hidden numbers on interaction */\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n\n/* Any toc item without a codenumber needs indentation\nCan't select absence of a preceeding, so indent all titles\nand then clear indent if there is a codenumber */\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n\n/* second level as defined by codenumber selectors */\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n\n/* third level as defined by codenumber selectors */\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n\n/* unless there is a codenumber */\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n\n// --------------------------------------------------------------------------\n// Conditional styling based on depth\n\n\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n/* 2 levels deep in back matter */\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n/* 3 levels deep in back matter */\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n\n/* -------------------depth controls-------------------- */\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n\n/* if depth is shallow, identify best available toc item */\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n\n\n// --------------------------------------------------------------------------\n// Focused toc\n\n/* Hide all but active area of book */\n.ptx-toc.focused {\n\n  ul.structural:not(.contains-active) > .toc-item {\n    display: none;\n\n    &.visible {\n      display: block;\n    }\n  }\n\n  ul.structural .toc-item.active > ul.structural > .toc-item {\n    display: block;\n\n    &.hidden {\n      display: none;\n    }\n  }\n\n  .toc-expander {\n    border: 0;\n    padding: 2px 5px;\n    background: inherit;\n    color: inherit;\n    display: flex;\n    align-items: center;\n\n    .icon {\n      font-size: 1.25em;\n      line-height: 18px;\n      font-variation-settings: 'wght' 200;\n    }\n\n    &:is(:hover) {\n      background-color: var(--tocitem-highlight-background);\n      color: var(--tocitem-highlight-text-color);\n\n      .icon {\n        fill: var(--tocitem-highlight-text-color);\n      }\n    }\n  }\n\n  /* ---------------icon customization----------------- */\n  .toc-item > .toc-title-box > .toc-expander > .icon:before {\n    content: \"add\";\n  }\n\n  .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n    content: \"remove\";\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/_toc-default.scss",
    "content": "$scrolling: true !default;\n$sidebar-width: 240px !default;\n$nav-height: 36px !default;\n$sidebar-breakpoint: 856px !default;\n$navbar-breakpoint: 800px !default;\n\n@use 'toc-basics' with (\n  $sidebar-width: $sidebar-width,\n  $nav-height: $nav-height\n);\n\n.ptx-sidebar {\n  flex: 0 0 $sidebar-width;\n  @if $scrolling {\n    position: sticky;\n    top: $nav-height;\n    overflow-y: hidden;\n  }\n}\n\n.ptx-toc {\n  @if $scrolling {\n    position: sticky;\n    top: $nav-height;\n    overflow-y: auto;\n    overflow-x: hidden;\n    height: calc(100vh - $nav-height);\n    margin-top: -1px; // partially hide top border of first toc item\n\n    // border under the last item before the pretext icon\n    & > .toc-item-list:first-child > .toc-item:last-child {\n      border-bottom: 3px solid var(--toc-border-color);\n    }\n  }\n  @else {\n    // not scrolling\n    scrollbar-width: none;\n    padding: 10px 0;\n    box-sizing: border-box;\n    border-right: 1px solid var(--toc-border-color);\n  }\n}\n\n// Hide once we get too narrow\n@media screen and (max-width: $sidebar-breakpoint) {\n  .ptx-sidebar {\n    display: none;\n    position: sticky;\n    top: $nav-height;\n    background: var(--content-background);\n    min-height: 30vh;\n    border-right: 2px solid var(--toc-border-color);\n    border-bottom: 2px solid var(--toc-border-color);\n    width: $sidebar-width;\n  }\n\n  @if not $scrolling {\n    .ptx-sidebar {\n      overflow-y: scroll;\n    }\n  }\n}\n\n// flip sidebar to bottom one navbar moves\n@media screen and (max-width: min($sidebar-breakpoint, $navbar-breakpoint)) {\n  .ptx-sidebar {\n    position: fixed;\n    z-index: 1000;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: $nav-height;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/_toc-overlay.scss",
    "content": "$sidebar-width: 240px !default;\n$nav-height: 36px !default;\n$navbar-breakpoint: 800px !default;\n$border-width: 1px !default;\n$initially-visible: false !default;\n\n@use 'toc-basics' with (\n  $sidebar-width: 0,\n  $nav-height: $nav-height\n);\n\n.ptx-sidebar {\n  position: sticky;\n  width: 0;\n  @if $initially-visible {\n    display: block;\n  }\n  @else {\n    display: none;\n  }\n  z-index: 200;\n  height: 0;\n  top: 35px;\n}\n\n.ptx-toc {\n  border-right: $border-width solid var(--toc-border-color);\n  border-bottom: $border-width solid var(--toc-border-color);\n  max-height: calc(100vh - 200px);\n  overflow-y: auto;\n  background: var(--page-color);\n  width: $sidebar-width;\n\n  // border under the last item before the pretext icon\n  & > .toc-item-list:first-child > .toc-item:last-child {\n    border-bottom: 3px solid var(--toc-border-color);\n  }\n}\n\n// flip sidebar to bottom one navbar moves\n@media screen and (max-width: $navbar-breakpoint) {\n  .ptx-sidebar {\n    position: fixed;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: $nav-height;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/extras/README.md",
    "content": "Options that can be added by a theme to tweak a parts file\n"
  },
  {
    "path": "css/components/page-parts/extras/_navbar-btn-borders.scss",
    "content": "\n$border-width: 1px !default;\n\n@mixin navbar-btn-borders {\n  .ptx-navbar {\n    .button {\n      border-left-width: $border-width;\n      border-right-width: $border-width;\n      border-color: var(--page-border-color);\n    }\n  \n    & > *:not(:first-child) {\n      //hide double borders\n      margin-left: -1 * $border-width;\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/extras/_toc-borders.scss",
    "content": "\n$border-width: 1px !default;\n\n// apply some borders to the TOC\n.toc-item {\n  border-top: $border-width solid var(--toc-border-color);\n}\n.ptx-toc.focused .toc-title-box > a:hover {\n  border-right: $border-width solid var(--toc-border-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n    border-left: $border-width solid var(--toc-border-color);\n}\n// Extra border above top level items\n.ptx-toc > .toc-item-list > .toc-item {\n  border-top: $border-width + 1 solid var(--toc-border-color);\n}\n"
  },
  {
    "path": "css/components/page-parts/extras/_toc-expand-chevrons.scss",
    "content": "// Use chevrons instead of +/- in ToC expander control\n\n.ptx-toc.focused {\n  .toc-item > .toc-title-box > .toc-expander > .icon {\n    font-size: 30px;\n    &:before {\n      content: \"chevron_left\";\n    }\n  }\n\n  .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n    transform: rotate(-90deg);\n    &:before {\n      content: \"chevron_left\";\n    }\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/extras/_toc-hidden-scrollbar.scss",
    "content": "// blend in with page until hover\n.ptx-toc {\n  scrollbar-color: var(--content-background) var(--content-background);\n\n  // reveal scroll on hover\n  &:hover {\n    scrollbar-color: var(--page-border-color) var(--content-background);\n  }\n}\n"
  },
  {
    "path": "css/components/page-parts/extras/_toc-last-level-plain.scss",
    "content": "// levels 2 & 3 only get new colors if they contain further levels\n// that way bottom level has default styling\n\n.ptx-toc:is(.depth0, .depth1, .depth2) .toc-item .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n}\n\n.ptx-toc:is(.depth0, .depth1, .depth2, .depth3) .toc-item .toc-item .toc-item  {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n}\n"
  },
  {
    "path": "css/dist/epub.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/ebook/epub/epub.scss */\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.ptx-content.epub img {\n  display: block;\n}\n.ptx-content.epub .solutions {\n  margin-top: 1em;\n}\n.ptx-content.epub .solutions .solution .type,\n.ptx-content.epub .solutions .answer .type {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-content.epub .solutions .solution .type + .period,\n.ptx-content.epub .solutions .answer .type + .period {\n  margin-right: 0.75em;\n}\n.ptx-content.epub .solutions .solution .type + p,\n.ptx-content.epub .solutions .answer .type + p {\n  display: inline;\n}\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content.epub article.openproblem-like,\n.ptx-content.epub article.openproblems-like,\n.ptx-content.epub article.computation-like {\n  margin-left: 1px;\n}\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n.ptx-content pre {\n  font-size: 95%;\n  padding-top: 0.3em;\n  padding-bottom: 0.5em;\n  padding-left: 0.5em;\n  background: #f0f0f0;\n}\n.ptx-content pre.code.input {\n  background: #f0f0ff;\n}\n.ptx-content pre.code.output {\n  background: #f0fff0;\n}\n.ptx-content section > .heading {\n  display: block;\n  margin-top: 0;\n  break-after: avoid !important;\n}\n.ptx-content section > .heading + p {\n  display: block;\n  break-before: avoid !important;\n}\n.ptx-content figcaption {\n  break-before: avoid !important;\n}\n.ptx-content figure {\n  break-inside: avoid !important;\n}\n.ptx-content figure .image-box,\n.ptx-content figure .tabular-box {\n  break-after: avoid !important;\n}\n.mjpage .MJX-monospace {\n  font-family: monospace;\n}\n.mjpage .MJX-sans-serif {\n  font-family: sans-serif;\n}\n.mjpage {\n  display: inline;\n  font-style: normal;\n  font-weight: normal;\n  line-height: normal;\n  font-size: 100%;\n  font-size-adjust: none;\n  text-indent: 0;\n  text-align: left;\n  text-transform: none;\n  letter-spacing: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: nowrap;\n  float: none;\n  max-width: none;\n  max-height: none;\n  min-width: 0;\n  min-height: 0;\n  border: 0;\n  padding: 0;\n  margin: 0;\n}\n.mjpage * {\n  transition: none;\n  -webkit-transition: none;\n  -moz-transition: none;\n  -ms-transition: none;\n  -o-transition: none;\n}\n.mjx-svg-href {\n  fill: blue;\n  stroke: blue;\n}\n.MathJax_SVG_LineBox {\n  display: table !important;\n}\n.MathJax_SVG_LineBox span {\n  display: table-cell !important;\n  width: 10000em !important;\n  min-width: 0;\n  max-width: none;\n  padding: 0;\n  border: 0;\n  margin: 0;\n}\n.mjpage__block {\n  text-align: center;\n  margin: 1em 0em;\n  position: relative;\n  display: block !important;\n  text-indent: 0;\n  max-width: none;\n  max-height: none;\n  min-width: 0;\n  min-height: 0;\n  width: 100%;\n}\n/*! Theme: epub */\n/*# sourceMappingURL=epub.css.map */\n"
  },
  {
    "path": "css/dist/kindle.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/ebook/kindle/kindle.scss */\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.ptx-content.epub img {\n  display: block;\n}\n.ptx-content.epub .solutions {\n  margin-top: 1em;\n}\n.ptx-content.epub .solutions .solution .type,\n.ptx-content.epub .solutions .answer .type {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-content.epub .solutions .solution .type + .period,\n.ptx-content.epub .solutions .answer .type + .period {\n  margin-right: 0.75em;\n}\n.ptx-content.epub .solutions .solution .type + p,\n.ptx-content.epub .solutions .answer .type + p {\n  display: inline;\n}\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content.epub article.openproblem-like,\n.ptx-content.epub article.openproblems-like,\n.ptx-content.epub article.computation-like {\n  margin-left: 1px;\n}\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n.ptx-content pre {\n  font-size: 95%;\n  padding-top: 0.3em;\n  padding-bottom: 0.5em;\n  padding-left: 0.5em;\n  background: #f0f0f0;\n}\n.ptx-content pre.code.input {\n  background: #f0f0ff;\n}\n.ptx-content pre.code.output {\n  background: #f0fff0;\n}\n.ptx-content section article > .heading,\n.ptx-content section > .heading {\n  display: block;\n  margin-top: 0;\n  break-after: avoid !important;\n}\n.ptx-content section article > .heading + p,\n.ptx-content section article > .heading + .introduction,\n.ptx-content section > .heading + p {\n  display: block;\n  break-before: avoid !important;\n}\n.ptx-content figcaption {\n  break-before: avoid !important;\n}\n.ptx-content figure {\n  break-inside: avoid !important;\n}\n.ptx-content figure .image-box,\n.ptx-content figure .tabular-box {\n  break-after: avoid !important;\n}\n.mjpage .MJX-monospace {\n  font-family: monospace;\n}\n.mjpage .MJX-sans-serif {\n  font-family: sans-serif;\n}\n.mjpage {\n  display: inline;\n  font-style: normal;\n  font-weight: normal;\n  line-height: normal;\n  font-size: 100%;\n  font-size-adjust: none;\n  text-indent: 0;\n  text-align: left;\n  text-transform: none;\n  letter-spacing: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  white-space: nowrap;\n  float: none;\n  max-width: none;\n  max-height: none;\n  min-width: 0;\n  min-height: 0;\n  border: 0;\n  padding: 0;\n  margin: 0;\n}\n.mjpage * {\n  transition: none;\n  -webkit-transition: none;\n  -moz-transition: none;\n  -ms-transition: none;\n  -o-transition: none;\n}\n.mjx-svg-href {\n  fill: blue;\n  stroke: blue;\n}\n.MathJax_SVG_LineBox {\n  display: table !important;\n}\n.MathJax_SVG_LineBox span {\n  display: table-cell !important;\n  width: 10000em !important;\n  min-width: 0;\n  max-width: none;\n  padding: 0;\n  border: 0;\n  margin: 0;\n}\n.mjpage__block {\n  text-align: center;\n  margin: 1em 0em;\n  position: relative;\n  display: block !important;\n  text-indent: 0;\n  max-width: none;\n  max-height: none;\n  min-width: 0;\n  min-height: 0;\n  width: 100%;\n}\n.ptx-content .mjpage {\n  margin-bottom: 0 !important;\n  vertical-align: -0.68ex;\n}\n.ptx-content .mjpage + p {\n  margin-top: -0.5em !important;\n}\n.ptx-content .solution-like > .type {\n  font-weight: bold;\n}\n.ptx-content .solution-like .type + p {\n  display: inline;\n}\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.computation-like::after {\n  margin-top: -1em;\n}\n.ptx-content section {\n  padding-top: 0 !important;\n}\n.ptx-content .subsection {\n  margin-top: 1.5em !important;\n}\n/*! Theme: kindle */\n/*# sourceMappingURL=kindle.css.map */\n"
  },
  {
    "path": "css/dist/pretext-reveal.css",
    "content": "/* ../../css/targets/revealjs/reveal.scss */\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\nul {\n  display: block !important;\n}\n.cols1 li,\n.cols2 li,\n.cols3 li,\n.cols4 li,\n.cols5 li,\n.cols6 li {\n  float: left;\n  padding-right: 2em;\n}\n.sidebyside {\n  width: 100%;\n}\n.definition-like,\n.theorem-like,\n.proof,\n.project-like {\n  border-width: 0.5px;\n  border-style: solid;\n  border-radius: 2px 10px 2px;\n  padding: 1%;\n  margin-bottom: var(--r-block-margin);\n}\n.definition-like {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #006080);\n}\n.theorem-like {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #a00);\n}\n.proof {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #aaa);\n}\n.project-like {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #608000);\n}\n.reveal img {\n  border: 0.5px !important;\n  border-radius: 2px 10px;\n  padding: 4px;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\ndiv[style*=\"display:table-cell\"] img {\n  width: 100%;\n}\n.code-inline {\n  background: color-mix(in srgb, var(--r-background-color) 75%, var(--r-link-color));\n  padding: 0 3px;\n  border: 1px solid;\n  margin: 3px;\n  display: inline-block;\n}\n.sagecell_sessionOutput {\n  background: white;\n  color: black;\n  border: 0.5px solid var(--r-main-color);\n}\n.program {\n  background: color-mix(in srgb, var(--r-background-color) 75%, var(--r-link-color));\n  max-height: 450px;\n  overflow: auto;\n  border: 0.5px solid var(--r-main-color);\n}\n.ptx-sagecell,\n.reveal .program {\n  font-size: calc(var(--r-main-font-size) * 0.6);\n}\ncode[class*=language-],\npre[class*=language-] {\n  padding: 0;\n  line-height: 1.2;\n}\n.reveal pre {\n  box-shadow: none;\n  line-height: 1;\n  font-size: inherit;\n  width: auto;\n  margin: inherit;\n}\n.reveal pre code {\n  display: block;\n  padding: 0;\n  overflow: unset;\n  max-height: unset;\n  word-wrap: normal;\n}\ndfn {\n  font-weight: bold;\n}\n/*! Theme: reveal */\n/*# sourceMappingURL=pretext-reveal.css.map */\n"
  },
  {
    "path": "css/dist/print-worksheet.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=PT Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/print-worksheet/print-worksheet.scss */\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n@media screen and (min-width: 1280px) {\n  details.aside-like {\n    position: relative;\n    margin-left: -248px;\n    width: 200px;\n    right: -248px;\n    float: right;\n    clear: right;\n  }\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n  details.aside-like > .knowl__content {\n    margin-left: 0;\n    margin-right: 0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 3px solid var(--knowl-border-color);\n  border-radius: 0;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.theorem-like > .heading,\n.definition-like > .heading,\n.example-like > .heading,\n.project-like > .heading,\n.remark-like > .heading,\n.openproblem-like > .heading,\n.computation-like > .heading,\n.assemblage-like > .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.proof {\n  padding-bottom: 1.5em;\n}\n.proof::after {\n  content: \"\\25a1\";\n  float: right;\n}\n.proof .heading {\n  font-size: unset;\n  font-weight: bold;\n  font-style: italic;\n}\n.solution-like .heading {\n  display: inline;\n  font-style: italic;\n  font-size: unset;\n}\n.goal-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 0.5em;\n  border-top: 1px solid var(--block-border-color);\n  border-bottom: 1px solid var(--block-border-color);\n  border-left: none;\n  border-right: none;\n  background-color: var(--content-background);\n  margin-top: 2em;\n  margin-bottom: 1em;\n}\n.goal-like > .heading:first-child {\n  background-color: var(--content-background);\n  display: block;\n  color: var(--body-text-colorolor);\n  margin-bottom: 0.5em;\n  margin-top: -1.5em;\n  margin-left: 10px;\n  width: fit-content;\n  padding: 5px 1em;\n}\n.paragraphs > .heading:first-child,\narticle > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.paragraphs > .heading:first-child:after,\narticle > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction),\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 1px solid var(--assemblage-like-border-color);\n  background-color: var(--block-body-background);\n  padding: 10px;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > *:first-child {\n  margin-top: 0;\n}\n.assemblage-like > .heading {\n  font-size: 1.1em;\n}\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root,\n:root.dark-mode {\n  color-scheme: light;\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #fafafa;\n  --navbar-background: #ededed;\n  --footer-background: var(--banner-background);\n  --toc-border-color: var(--primary-color-white-80);\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--primary-color-black-30);\n  --tocitem-highlight-background: var(--primary-color-white-15);\n  --tocitem-highlight-text-color: white;\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-white-15);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--toc-text-color);\n  --toclevel2-background: var(--primary-color-white-95);\n  --toclevel2-text-color: var(--toc-text-color);\n  --toclevel3-background: var(--primary-color-white-90);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: var(--primary-color-black-20);\n  --ptx-image-bg: transparent;\n  --activated-content-bg: rgba(241, 185, 255, 0.3);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: var(--primary-color-white-95);\n  --knowl-border-color: var(--primary-color);\n  --knowl-nested-1-background: #f5f5ff;\n  --knowl-nested-2-background: #fffff5;\n  --knowl-nested-3-background: #f5ffff;\n  --knowl-nested-4-background: #fff5f5;\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: black;\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: #ededed;\n  --button-text-color: #333333;\n  --button-border-color: #ccc;\n  --button-hover-background: var(--primary-color-white-80);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --primary-color: black;\n  --assemb-border-color: var(--primary-color-white-50);\n}\n:root {\n  --ws-width: 8.5in;\n  --ws-height: 11in;\n  --ws-top-margin: 40px;\n  --ws-right-margin: 55px;\n  --ws-bottom-margin: 45px;\n  --ws-left-margin: 45px;\n  --ws-content-width: calc(var(--ws-width) - var(--ws-right-margin) - var(--ws-left-margin));\n  --ws-content-height: calc(var(--ws-height) - var(--ws-top-margin) - var(--ws-bottom-margin));\n}\n.pretext .ptx-masthead,\n.pretext .ptx-navbar,\nbody.pretext > a.assistive,\n.pretext .ptx-page > .ptx-sidebar,\n.pretext .ptx-page-footer,\n.pretext .ptx-main > div.ptx-content-footer {\n  display: none;\n}\n.heading .print-links {\n  display: none;\n}\n.autopermalink {\n  display: none;\n}\n.image-description,\n.ptx-content .webwork-button,\n.ptx-runestone-container button.btn {\n  display: none;\n}\nsection.worksheet,\nsection.handout {\n  font-size: 11pt;\n  font-family: var(--font-print);\n}\n.onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\n.onepage h4.heading {\n  font-size: 1.2em;\n  margin-top: 1em;\n}\n.onepage .instructions {\n  display: none;\n}\n.onepage .first-page-header,\n.onepage .running-header,\n.onepage .first-page-footer,\n.onepage .running-footer {\n  display: flex;\n  justify-content: space-between;\n  align-content: flex-start;\n}\n.onepage .first-page-header div,\n.onepage .running-header div,\n.onepage .first-page-footer div,\n.onepage .running-footer div {\n  min-width: 10em;\n}\n.onepage .first-page-header .header-center,\n.onepage .first-page-header .footer-center,\n.onepage .running-header .header-center,\n.onepage .running-header .footer-center,\n.onepage .first-page-footer .header-center,\n.onepage .first-page-footer .footer-center,\n.onepage .running-footer .header-center,\n.onepage .running-footer .footer-center {\n  text-align: center;\n}\n.onepage .first-page-header .header-right,\n.onepage .first-page-header .footer-right,\n.onepage .running-header .header-right,\n.onepage .running-header .footer-right,\n.onepage .first-page-footer .header-right,\n.onepage .first-page-footer .footer-right,\n.onepage .running-footer .header-right,\n.onepage .running-footer .footer-right {\n  text-align: right;\n}\n.onepage .first-page-header,\n.onepage .running-header {\n  margin-bottom: 1em;\n  border-bottom: 1px dashed lightgray;\n}\n.onepage .first-page-footer,\n.onepage .running-footer {\n  margin-top: 1em;\n  border-top: 1px dashed lightgray;\n}\n.solutions {\n  margin-top: 1em;\n}\n.solutions .solution-like.born-hidden-knowl {\n  margin-top: 1em;\n  padding: unset;\n}\n.solutions .solution-like.born-hidden-knowl h5 {\n  font-weight: bolder;\n  display: inline;\n  font-size: 1em;\n}\n.solutions .solution-like.born-hidden-knowl > div {\n  display: inline;\n}\n.solutions .solution-like.born-hidden-knowl .knowl__content {\n  display: inline;\n  border: none;\n  background-color: unset;\n  padding: 0;\n}\n.solutions .solution-like.born-hidden-knowl .knowl__content > :first-child {\n  display: inline;\n}\n.solutions .solution-like.born-hidden-knowl .knowl__content .para {\n  margin-top: 0.5em;\n}\n.code-inline {\n  border: unset;\n  background: unset;\n}\n.onepage article {\n  padding-left: 0;\n  border: none;\n}\n.onepage article::after {\n  all: unset;\n}\n.onepage > .para:first-child,\n.onepage > article:first-child {\n  margin-top: 0;\n}\n.onepage > section > .heading {\n  margin-top: 0;\n}\nsection article.task,\n.conclusion.subtask {\n  margin-left: 20px;\n}\nsection article.subtask,\n.conclusion.subsubtask {\n  margin-left: 40px;\n}\nsection article.subsubtask {\n  margin-left: 60px;\n}\nsection.worksheet > .heading,\nsection.handout > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nsection.worksheet > .heading + .para,\nsection.handout > .heading + .para {\n  display: inline;\n}\n.introduction > .heading,\n.conclusion > .heading {\n  font-size: 1.1em;\n  font-weight: bold;\n  margin-bottom: 0;\n  border-bottom: none;\n}\n.introduction > .heading + .para,\n.conclusion > .heading + .para {\n  margin-top: 0.5em;\n}\nform.papersize-select {\n  padding-bottom: 8px;\n}\n@media screen {\n  .ptx-main {\n    max-width: var(--ws-width);\n    margin: 50px auto;\n  }\n  .worksheet,\n  .handout {\n    max-width: var(--ws-width);\n    margin: 0 auto;\n  }\n  .onepage {\n    width: 100%;\n    height: var(--ws-height);\n    padding: var(--ws-top-margin) var(--ws-right-margin) var(--ws-bottom-margin) var(--ws-left-margin);\n    box-shadow: 5px 10px 40px -10px;\n  }\n  .onepage + .onepage {\n    margin-top: 2.5em;\n  }\n  .workspace-container {\n    display: flex;\n    overflow: visible;\n  }\n  .workspace {\n    width: 100%;\n  }\n  .highlight-workspace .onepage .workspace {\n    border: 1px dashed gray;\n    background: hsl(224, 100%, 95%);\n  }\n  .onepage .original-workspace {\n    display: none;\n  }\n  .highlight-workspace .onepage .original-workspace {\n    display: block;\n    width: 10px;\n    background: hsl(152, 29%, 65%);\n  }\n  .highlight-workspace .onepage .warning {\n    background: hsl(36, 65%, 67%);\n  }\n  .print-button {\n    font: inherit;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    padding: 0 10px;\n    gap: 10px;\n    min-height: 34px;\n    color: var(--button-text-color);\n    background-color: var(--button-background);\n    border-width: 1px;\n    border-color: var(--button-border-color);\n    border-style: solid;\n    border-radius: 0;\n    white-space: nowrap;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    cursor: pointer;\n    user-select: none;\n  }\n  .print-button:hover:not(.disabled) {\n    color: var(--button-hover-text-color);\n    background-color: var(--button-hover-background);\n  }\n  .print-button:focus-visible {\n    outline: 2px solid var(--button-text-color);\n    outline-offset: -2px;\n  }\n  .print-button.disabled {\n    opacity: 0.4;\n    cursor: not-allowed;\n  }\n  .print-button.hidden {\n    display: none;\n  }\n  .print-button.open {\n    color: var(--button-hover-text-color);\n    background-color: var(--button-hover-background);\n  }\n  .papersize-select {\n    z-index: 1;\n  }\n  .papersize-select .name::after {\n    content: \": \";\n  }\n  .print-controls {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-bottom: 1em;\n  }\n  label,\n  input {\n    cursor: pointer;\n  }\n  .header-option,\n  .footer-option {\n    display: flex;\n    gap: 1em;\n    align-items: baseline;\n  }\n  .header-option .title::after,\n  .footer-option .title::after {\n    content: \":\";\n  }\n  .print-options summary {\n    cursor: pointer;\n    display: list-item inline;\n  }\n  .print-options .hide-option {\n    display: inline-block;\n    padding-right: 1em;\n  }\n}\n@media print {\n  body {\n    margin: 0;\n    padding: 0;\n    width: var(--ws-content-width);\n  }\n  .print-preview-header {\n    display: none;\n  }\n  section.worksheet,\n  section.handout {\n    border: none;\n    width: 100%;\n  }\n  section.worksheet .onepage,\n  section.handout .onepage {\n    margin-top: 0;\n    width: 100%;\n    height: var(--ws-content-height);\n    overflow: hidden;\n    page-break-after: always;\n    page-break-inside: avoid;\n  }\n  section.worksheet .onepage:last-of-type,\n  section.handout .onepage:last-of-type {\n    page-break-after: avoid;\n  }\n  section.worksheet .first-page-header,\n  section.worksheet .running-header,\n  section.handout .first-page-header,\n  section.handout .running-header {\n    border-bottom: none;\n  }\n  section.worksheet .first-page-footer,\n  section.worksheet .running-footer,\n  section.handout .first-page-footer,\n  section.handout .running-footer {\n    border-top: none;\n  }\n  section.worksheet div.workspace,\n  section.worksheet div.workspace.squashed.tight,\n  section.handout div.workspace,\n  section.handout div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  a {\n    color: black;\n  }\n  @page {\n    margin: var(--ws-top-margin, 40px) var(--ws-right-margin, 55px) var(--ws-bottom-margin, 45px) var(--ws-left-margin, 45px);\n  }\n}\n/*! Theme: print-worksheet */\n/*# sourceMappingURL=print-worksheet.css.map */\n"
  },
  {
    "path": "css/dist/theme-boulder.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=PT Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/html/boulder/theme-boulder.scss */\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n  }\n  .ptx-page,\n  .ptx-main,\n  .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n  .ptx-sagecell,\n  .tabular,\n  .table-like,\n  .figure-like,\n  .exercise-like {\n    break-inside: avoid;\n  }\n  .heading {\n    break-after: avoid;\n  }\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n}\n.heading .print-links .print-link {\n  font-family: var(--font-body);\n  padding: 0.1em 0.2em;\n}\n.heading .print-links .material-symbols-outlined {\n  margin-top: 5pt;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n.searchbox .searchwidget {\n  height: 100%;\n}\n.searchbox .searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  padding: 1em;\n  left: max(10vw, (100vw - 800px) / 2);\n  width: 80vw;\n  max-width: 800px;\n  border: 2px solid var(--body-text-color);\n  background: var(--knowl-background, #eaf0f6);\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.searchbox .searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox .search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n  height: 35px;\n}\n.searchbox .ptxsearch {\n  flex: 1 1;\n}\n.searchbox .closesearchresults {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.searchbox .closesearchresults:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .closesearchresults:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.searchbox .closesearchresults.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.searchbox .closesearchresults.hidden {\n  display: none;\n}\n.searchbox .closesearchresults.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .detailed_result {\n  margin-bottom: 10px;\n}\n.searchbox .searchresults a:hover {\n  text-decoration: underline;\n  background: var(--link-active-background);\n}\n.searchbox .searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n  background: var(--content-background, white);\n  border: 1px solid var(--page-border-color, #ccc);\n}\n.searchbox .searchresults:empty {\n  display: none;\n}\n.searchbox .search-result-bullet {\n  list-style-type: none;\n}\n.searchbox .search-result-score {\n  display: none;\n}\n.searchbox .no_result {\n  font-size: 90%;\n  font-weight: 200;\n}\n.searchbox .low_result {\n  font-weight: 200;\n}\n.searchbox .medium_result {\n  font-weight: 500;\n}\n.searchbox .high_result {\n  font-weight: 700;\n}\n.searchbox .searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.searchbox .search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.searchbox .search-result-clip-highlight {\n  background: var(--searchresultshighlight);\n}\n.searchbox .searchresultsbackground {\n  position: fixed;\n  top: 0;\n  background: var(--searchresultsbackground, white);\n  width: 100vw;\n  height: 100%;\n  left: 0;\n  z-index: 4999;\n}\n@media screen and (max-width: 800px) {\n  .searchbox .searchresultsplaceholder {\n    bottom: 10vh;\n  }\n}\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n.multiplechoice_section label > .para {\n  display: inline;\n}\n.ptx-content .ptx-runestone-container .ac_question {\n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n.runestone .runestone_caption {\n  display: none;\n}\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: 0.93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n.ptx-runestone-container code[class*=language-],\n.ptx-runestone-container pre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n}\n.runestone.datafile .datafile_caption {\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  display: block;\n  width: fit-content;\n  margin: 0 auto;\n}\n.runestone.datafile img {\n  margin: 0 auto;\n  display: block;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n}\n.runestone.datafile pre,\n.runestone.datafile textarea {\n  margin: 0 auto;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  background-color: var(--page-color);\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\nul[data-component=timedAssessment] {\n  margin: 0;\n  padding: 0;\n}\n:root.dark-mode .ptx-runestone-container code[class*=language-],\n:root.dark-mode .ptx-runestone-container pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n}\n.interactive-iframe-container > iframe {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n}\n.interactive__instructions {\n  max-width: var(--base-content-width);\n}\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n}\n.interactive-iframe-container__opener .icon {\n  font-size: 18px;\n}\n.interactive-iframe-container__opener:has(+ figcaption, + .instructions) {\n  float: left;\n  z-index: 1;\n  position: relative;\n}\n.interactive-iframe-container__opener + .instructions + figcaption {\n  clear: left;\n}\n.interactive-iframe-container__opener + .instructions {\n  margin-top: 0.5em;\n}\n.clipboardable {\n  position: relative;\n  display: flow-root;\n}\n.clipboardable .code-copy {\n  position: absolute;\n  right: 0;\n  top: 0;\n  opacity: 0.25;\n  border-width: 0;\n  background: none;\n  cursor: pointer;\n  z-index: 1;\n  white-space-collapse: collapse;\n  padding: 1px;\n  scale: 0.85;\n}\n.clipboardable .code-copy:hover {\n  opacity: 0.7;\n}\n.clipboardable .code-copy .checkmark {\n  display: none;\n}\n.clipboardable .code-copy.copied {\n  opacity: 1;\n  color: mediumseagreen;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.clipboardable .code-copy.copied .copyicon {\n  display: none;\n}\n.clipboardable .code-copy.copied .checkmark {\n  display: inline;\n}\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n}\n.clipboardable:has(.code-display) .code-display {\n  margin: 0;\n  padding: 0.25em 0;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\nlabel.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.ptx-content .problem-buttons {\n  display: flex;\n}\n.ptx-content .webwork-button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content .webwork-button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content .webwork-button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content .webwork-button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content .webwork-button.hidden {\n  display: none;\n}\n.ptx-content .webwork-button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.sage-interact.sagecell {\n  margin: 0;\n}\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  opacity: var(--permalink-opacity, 0);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\nli > .autopermalink {\n  left: -3.5em;\n}\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n.axiom-like > .para:first-of-type > .autopermalink,\n.example-like > .para:first-of-type > .autopermalink,\n.exercise-like > .para:first-of-type > .autopermalink,\n.solution-like > .para:first-of-type > .autopermalink,\n.assemblage-like > .para:first-of-type > .autopermalink,\n.definition-like > .para:first-of-type > .autopermalink,\n.remark-like > .para:first-of-type > .autopermalink,\n.project-like > .para:first-of-type > .autopermalink,\n.openproblem-like > .para:first-of-type > .autopermalink,\n.computation-like > .para:first-of-type > .autopermalink,\n.theorem-like > .para:first-of-type > .autopermalink,\n.proof > .para:first-of-type > .autopermalink,\n.case > .para:first-of-type > .autopermalink,\nli > .para:first-of-type > .autopermalink,\ndd > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.axiom-like > .introduction > .para:first-of-type > .autopermalink,\n.example-like > .introduction > .para:first-of-type > .autopermalink,\n.exercise-like > .introduction > .para:first-of-type > .autopermalink,\n.solution-like > .introduction > .para:first-of-type > .autopermalink,\n.assemblage-like > .introduction > .para:first-of-type > .autopermalink,\n.definition-like > .introduction > .para:first-of-type > .autopermalink,\n.remark-like > .introduction > .para:first-of-type > .autopermalink,\n.project-like > .introduction > .para:first-of-type > .autopermalink,\n.openproblem-like > .introduction > .para:first-of-type > .autopermalink,\n.computation-like > .introduction > .para:first-of-type > .autopermalink,\n.theorem-like > .introduction > .para:first-of-type > .autopermalink,\n.proof > .introduction > .para:first-of-type > .autopermalink,\n.case > .introduction > .para:first-of-type > .autopermalink,\nli > .introduction > .para:first-of-type > .autopermalink,\ndd > .introduction > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n:target {\n  scroll-margin-top: 45px;\n  animation: target-fade 10s 1;\n}\n@keyframes target-fade {\n  0% {\n    background-color: var(--activated-content-bg);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n:is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n:is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n  overflow-x: auto;\n}\n@container ptx-main (width > 640px) {\n  :is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n  :is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\nfigure.table-like {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n:root {\n  --base-content-width: 600px;\n  --content-padding: 120px;\n}\nbody {\n  margin: 0;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.pretext {\n  color: var(--body-text-color);\n  font-family: var(--font-body);\n}\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n}\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;\n  container-type: inline-size;\n}\n.ptx-main .ptx-content {\n  max-width: 840px;\n  padding: 24px 120px 60px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.worksheet .ptx-main .ptx-content {\n  max-width: 960px;\n}\n.ptx-page {\n  max-width: 1480px;\n  margin-left: auto;\n  margin-right: auto;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n.ptx-content .print-preview-header {\n  display: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: #BF1722;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: 840px;\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: 120px;\n  padding-right: 120px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content-footer .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content-footer .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content-footer .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content-footer .button.hidden {\n  display: none;\n}\n.ptx-content-footer .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\nbody.standalone-page .ptx-page {\n  max-width: 1600px;\n}\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding: 10px 10px;\n  border-bottom: none;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  max-width: 840px;\n}\n.ptx-masthead a {\n  color: var(--doc-title-color, #2a5ea4);\n}\n.ptx-masthead a:active {\n  color: var(--link-active-text-color);\n}\n.ptx-masthead .title-container {\n  font-family: var(--font-headings);\n  font-size: 2em;\n  padding-left: 9.68px;\n  overflow: hidden;\n  flex: 1;\n}\n.ptx-masthead .title-container .heading {\n  font-weight: 700;\n  font-size: 100%;\n  line-height: 1.25em;\n}\n.ptx-masthead .title-container .title:has(+ .subtitle)::after {\n  content: \":\";\n}\n.ptx-masthead .title-container .subtitle {\n  font-weight: normal;\n}\n.ptx-masthead .logo-link {\n  height: 5em;\n  display: flex;\n}\n.ptx-masthead .logo-link img {\n  max-height: 100%;\n}\n.ptx-masthead .logo-link img[src$=\".svg\"] {\n  height: 100%;\n}\n.ptx-masthead .byline {\n  color: var(--byline-color);\n  font-weight: normal;\n  margin: 0;\n  font-size: 62.5%;\n  min-height: inherit;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n  }\n  .ptx-masthead .ptx-banner {\n    padding: 10px 28px;\n    display: flex;\n    justify-content: center;\n  }\n  .ptx-masthead .logo-link::before {\n    font-size: 1rem;\n    margin-top: 0;\n  }\n  .ptx-masthead .title-container {\n    width: fit-content;\n    flex: unset;\n  }\n  .ptx-masthead .title-container .heading {\n    line-height: 1em;\n  }\n  .ptx-masthead .title-container .heading .subtitle {\n    display: block;\n    font-size: 80%;\n    line-height: 1em;\n  }\n  .ptx-masthead .byline {\n    font-size: 50%;\n  }\n}\n@media screen and (width <= 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    font-size: 1em;\n  }\n  .ptx-masthead .logo-link {\n    display: none;\n  }\n  .ptx-masthead .byline {\n    display: none;\n  }\n}\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: 36px;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar .ptx-navbar-contents {\n  position: relative;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n  max-width: 840px;\n  margin: 0 auto;\n}\n.ptx-navbar .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-navbar .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-navbar .button.hidden {\n  display: none;\n}\n.ptx-navbar .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button {\n  height: 100%;\n  border-width: 0;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n  margin-left: 0;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.ptx-navbar .pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar .embed-popup {\n  padding: 10px;\n  background-color: var(--navbar-background);\n  position: absolute;\n  margin-top: 36px;\n  border: 1px solid var(--page-border-color);\n  border-radius: 3px;\n  box-shadow: 0 0 5px var(--primary-color-gray-80);\n  color: var(--button-text-color);\n}\n.ptx-navbar .embed-popup .embed-code-container {\n  width: \"100%\";\n  padding: 5px;\n}\n.ptx-navbar .embed-popup .embed-code-container .embed-code-textbox {\n  width: 100%;\n  padding: 10px;\n  height: 5em;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  min-width: 70px;\n}\n.runestone-profile {\n  position: relative;\n}\n.runestone-profile .dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: var(--dropdown-background);\n  min-width: 160px;\n  z-index: 100;\n  border: 1px solid var(--dropdown-border-color);\n  right: 0;\n  top: 35px;\n  text-align: start;\n  padding: 0;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: var(--dropdown-text-color);\n  padding: 2px 8px;\n}\n.runestone-profile .dropdown-content a:is(:hover, :focus-visible) {\n  background-color: var(--dropdown-hover-background);\n  color: var(--dropdown-hover-text-color);\n}\n.runestone-profile .dropdown-content hr {\n  color: var(--dropdown-border-color);\n  margin: 4px 0;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) {\n  overflow: visible;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) .dropdown-content {\n  display: block;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .button {\n    border-left-width: 1px;\n    border-right-width: 1px;\n    border-color: var(--page-border-color);\n  }\n  .ptx-navbar > *:not(:first-child) {\n    margin-left: -1px;\n  }\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    max-width: 100vw;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar .embed-popup {\n    margin-top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n    display: none;\n  }\n}\n.ptx-sidebar {\n  align-self: flex-start;\n}\n.ptx-sidebar.visible {\n  display: block;\n}\n.ptx-sidebar.hidden {\n  display: none;\n  height: 0;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  background: var(--toc-background);\n  margin: 0;\n  font-size: 0.9rem;\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--tocitem-background);\n}\n.ptx-toc .toc-item-list .active {\n  list-style: none;\n}\n.ptx-toc .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n  border-color: var(--toc-border-color);\n}\n.ptx-toc .toc-item a {\n  color: inherit;\n}\n.ptx-toc .toc-item.active:not(:has(.toc-item.active)) {\n  color: var(--tocitem-active-text-color) !important;\n  background-color: var(--tocitem-active-background) !important;\n  border-color: var(--tocitem-active-border-color) !important;\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-weight: 500;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-weight: normal;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.focused {\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item.hidden {\n  display: none;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 1.25em;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--tocitem-highlight-background);\n  color: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"add\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"remove\";\n}\n.ptx-sidebar {\n  flex: 0 0 240px;\n  position: sticky;\n  top: 36px;\n  overflow-y: hidden;\n}\n.ptx-toc {\n  position: sticky;\n  top: 36px;\n  overflow-y: auto;\n  overflow-x: hidden;\n  height: calc(100vh - 36px);\n  margin-top: -1px;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 3px solid var(--toc-border-color);\n}\n@media screen and (max-width: 944px) {\n  .ptx-sidebar {\n    display: none;\n    position: sticky;\n    top: 36px;\n    background: var(--content-background);\n    min-height: 30vh;\n    border-right: 2px solid var(--toc-border-color);\n    border-bottom: 2px solid var(--toc-border-color);\n    width: 240px;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-sidebar {\n    position: fixed;\n    z-index: 1000;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: 36px;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n.ptx-toc {\n  scrollbar-color: var(--content-background) var(--content-background);\n}\n.ptx-toc:hover {\n  scrollbar-color: var(--page-border-color) var(--content-background);\n}\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n}\n.ptx-page-footer > a {\n  margin: 1em 0;\n  color: var(--body-text-color);\n}\n.ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-page-footer .feedback-link {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-page-footer .feedback-link:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-page-footer .feedback-link:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-page-footer .feedback-link.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-page-footer .feedback-link.hidden {\n  display: none;\n}\n.ptx-page-footer .feedback-link.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n@media screen and (max-width: 800px) {\n  .ptx-page-footer {\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: 34px;\n  }\n  .ptx-page-footer > a > .logo:first-child {\n    height: 2em;\n  }\n}\n@container ptx-main (width > 640px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\n.ptx-runestone-container .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  min-width: 100%;\n  margin-left: auto;\n}\n@container ptx-main (width > 640px) {\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: auto;\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: 0;\n}\n.runestone.ac_section > div > div > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone .exercise-statement {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.hparsons_section .hp_question,\n.hparsons_section .hp_feedback {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n}\n.runestone.parsons_section > .parsons .sortable-code-container {\n  display: flex;\n  flex-flow: wrap;\n  justify-content: center;\n  gap: 15px;\n  margin: 10px auto;\n}\n.runestone.parsons_section > .parsons .sortable-code {\n  margin: 0;\n}\n.runestone.parsons_section > .parsons .runestone_caption_text {\n  max-width: unset;\n}\n.runestone.parsons_section > .parsons > div > *:not(.sortable-code-container) {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n@media (width < 850px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100%;\n    margin-left: 0px;\n  }\n}\n.ptx-main {\n  margin-right: 320px;\n}\n.ptx-sidebar.hidden + .ptx-main {\n  margin-left: 320px;\n}\n.ptx-main {\n  box-shadow: 5px 10px 40px -10px var(--primary-color-gray-80);\n}\n@media (prefers-color-scheme: dark) {\n  .ptx-main {\n    box-shadow: 5px 10px 40px -10px black;\n  }\n}\n.ptx-sidebar {\n  margin-right: 80px;\n}\n.ptx-navbar {\n  border: none;\n}\n.ptx-navbar .toc-toggle {\n  transform: translateX(-320px);\n  position: absolute;\n  left: 0;\n  justify-content: left;\n}\n.ptx-toc {\n  border: none;\n  position: sticky;\n  top: 36px;\n}\n.toc-item.visible {\n  font-size: 0.95em;\n  padding-left: 8px;\n}\n.ptx-page {\n  margin-top: 36px;\n  margin-bottom: 36px;\n}\n@media screen and (width <= 1480px) {\n  .ptx-page {\n    margin-left: 0;\n    max-width: 100%;\n  }\n  .ptx-main {\n    margin-right: calc(100% - 840px - 320px);\n    max-width: 840px;\n  }\n  .ptx-sidebar.hidden + .ptx-main {\n    margin-right: auto;\n    margin-left: auto;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 320px;\n  }\n}\n@media screen and (width <= 1240px) {\n  .ptx-main {\n    box-shadow: unset;\n    margin-right: auto;\n  }\n  .ptx-main .ptx-content {\n    padding-left: 20px;\n    padding-right: 20px;\n    max-width: 640px;\n  }\n  .ptx-sidebar {\n    margin-right: 0;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 240px;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: translateX(-240px);\n    justify-content: center;\n  }\n  .ptx-page {\n    margin-top: unset;\n    margin-bottom: unset;\n  }\n  .ptx-toc {\n    padding-top: 36px;\n  }\n}\n@media screen and (width <= 880px) {\n  .ptx-sidebar {\n    display: none;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: none;\n    position: relative;\n    justify-content: center;\n  }\n  .ptx-content-footer {\n    padding-left: 20px;\n    padding-right: 20px;\n  }\n}\n.toc-item:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.standalone-page {\n  margin: 0;\n  padding: 0;\n}\n.standalone-page .ptx-page {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.standalone-page .ptx-main {\n  margin-right: auto;\n  margin-left: auto;\n  box-shadow: none;\n  max-width: 100%;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon {\n  font-size: 30px;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.hide-type .codenumber:not(:empty)::after {\n  content: \". \";\n}\n.ptx-masthead {\n  display: none;\n}\n.button.disabled {\n  display: none;\n}\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n@media screen and (min-width: 1450px) {\n  details.aside-like {\n    position: relative;\n    margin-left: -365px;\n    width: 200px;\n    right: -365px;\n    float: right;\n    clear: right;\n  }\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n  details.aside-like > .knowl__content {\n    margin-left: 0;\n    margin-right: 0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 3px solid var(--knowl-border-color);\n  border-radius: 8px;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl),\n.goal-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 4px solid var(--block-border-color);\n  background-color: var(--goal-like-body-background);\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.goal-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.theorem-like .heading,\n.definition-like .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.theorem-like .para,\n.definition-like .para {\n  font-style: italic;\n}\n.example-like > .heading,\n.project-like > .heading,\n.remark-like > .heading,\n.openproblem-like > .heading,\n.computation-like > .heading,\n.commentary > .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.proof {\n  padding-bottom: 1.5em;\n  padding-left: 1em;\n  padding-right: 1em;\n}\n.proof::after {\n  content: \"\\25a1\";\n  position: absolute;\n  right: 0;\n  bottom: 1.5em;\n}\n.proof .heading {\n  font-size: unset;\n  font-weight: bold;\n  font-style: italic;\n}\n.solution-like .heading {\n  display: inline;\n  font-style: italic;\n  font-size: unset;\n}\n.tasks .knowl__content {\n  border: none;\n}\n.tasks .knowl__content .theorem-like,\n.tasks .knowl__content .definition-like,\n.tasks .knowl__content .example-like,\n.tasks .knowl__content .project-like,\n.tasks .knowl__content .remark-like,\n.tasks .knowl__content .openproblem-like,\n.tasks .knowl__content .computation-like,\n.tasks .knowl__content .project-like,\n.tasks .knowl__content .commentary {\n  padding-left: 0;\n  margin-left: 0;\n  border-left: none;\n}\n.tasks .knowl__content .theorem-like::after,\n.tasks .knowl__content .definition-like::after,\n.tasks .knowl__content .example-like::after,\n.tasks .knowl__content .project-like::after,\n.tasks .knowl__content .remark-like::after,\n.tasks .knowl__content .openproblem-like::after,\n.tasks .knowl__content .computation-like::after,\n.tasks .knowl__content .project-like::after,\n.tasks .knowl__content .commentary::after {\n  border-bottom: none;\n  display: none;\n}\nsection.solutions:not(:is(:first-child)):not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 2px solid var(--solution-border-color);\n  background-color: var(--content-background);\n}\nsection.solutions:not(:is(:first-child)):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.paragraphs > .heading:first-child,\narticle > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.paragraphs > .heading:first-child:after,\narticle > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction),\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  color-scheme: light;\n}\n:root:not(.dark-mode) {\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #f8f8f8;\n  --navbar-background: var(--primary-color);\n  --footer-background: var(--banner-background);\n  --toc-border-color: #666;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--primary-color-black-30);\n  --tocitem-highlight-background: #3a3a3a;\n  --tocitem-highlight-text-color: #fff;\n  --tocitem-highlight-border-color: #3a3a3a;\n  --tocitem-active-background: var(--primary-color-white-15);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--toc-text-color);\n  --toclevel2-background: var(--content-background);\n  --toclevel2-text-color: var(--toc-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: var(--primary-color-black-20);\n  --ptx-image-bg: transparent;\n  --activated-content-bg: rgba(241, 185, 255, 0.3);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color);\n  --link-active-background: var(--primary-color-white-96);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--primary-color-white-96);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: #f8f8f8;\n  --knowl-border-color: var(--primary-color-gray-80);\n  --knowl-nested-1-background: #f5f5ff;\n  --knowl-nested-2-background: #fffff5;\n  --knowl-nested-3-background: #f5ffff;\n  --knowl-nested-4-background: #fff5f5;\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--primary-color);\n  --button-text-color: var(--primary-color-white-90);\n  --button-border-color: #3a3a3a;\n  --button-hover-background: #3a3a3a;\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --primary-color: hsl(270, 40%, 15%);\n  --toc-border: var(--primary-color-gray-10);\n}\n:root.dark-mode {\n  color-scheme: dark;\n  --page-color: var(--background-color);\n  --content-background: var(--page-color);\n  --page-border-color: var(--background-color-white-25);\n  --doc-title-color: var(--primary-color);\n  --byline-color: var(--background-color-white-50);\n  --banner-background: hsl(270, 10%, 5%);\n  --navbar-background: var(--background-color-gray-15);\n  --footer-background: var(--background-color-black-10);\n  --toc-border-color: #555;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--primary-color-gray-5);\n  --tocitem-highlight-text-color: var(--background-color-black-50);\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-gray-5);\n  --tocitem-active-text-color: var(--background-color-black-50);\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--primary-color-white-40);\n  --toclevel2-background: var(--content-background);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #f2f2f2;\n  --body-title-color: var(--primary-color-white-20);\n  --ptx-image-bg: white;\n  --activated-content-bg: rgba(255, 237, 185, 0.2);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color-white-10);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--doc-title-color);\n  --knowl-background: var(--background-color-black-10);\n  --knowl-border-color: var(--background-color-white-20);\n  --knowl-nested-1-background: var(--background-color-gray-10);\n  --knowl-nested-2-background: var(--background-color-black-10);\n  --knowl-nested-3-background: var(--background-color-gray-10);\n  --knowl-nested-4-background: var(--background-color-black-10);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--background-color-gray-15);\n  --button-text-color: var(--body-text-color);\n  --button-border-color: var(--background-color-white-25);\n  --button-hover-background: var(--primary-color-black-50);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: var(--background-color-gray-20);\n  --code-inline-background: var(--background-color-gray-20);\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color: hsl(270, 50%, 50%);\n  --background-color: hsl(270, 10%, 5%);\n  --background-color-white-1: color-mix(in oklab, var(--background-color), white 1%);\n  --background-color-white-2: color-mix(in oklab, var(--background-color), white 2%);\n  --background-color-white-3: color-mix(in oklab, var(--background-color), white 3%);\n  --background-color-white-4: color-mix(in oklab, var(--background-color), white 4%);\n  --background-color-white-5: color-mix(in oklab, var(--background-color), white 5%);\n  --background-color-white-10: color-mix(in oklab, var(--background-color), white 10%);\n  --background-color-white-15: color-mix(in oklab, var(--background-color), white 15%);\n  --background-color-white-20: color-mix(in oklab, var(--background-color), white 20%);\n  --background-color-white-25: color-mix(in oklab, var(--background-color), white 25%);\n  --background-color-white-30: color-mix(in oklab, var(--background-color), white 30%);\n  --background-color-white-35: color-mix(in oklab, var(--background-color), white 35%);\n  --background-color-white-40: color-mix(in oklab, var(--background-color), white 40%);\n  --background-color-white-50: color-mix(in oklab, var(--background-color), white 50%);\n  --background-color-white-60: color-mix(in oklab, var(--background-color), white 60%);\n  --background-color-white-65: color-mix(in oklab, var(--background-color), white 65%);\n  --background-color-white-70: color-mix(in oklab, var(--background-color), white 70%);\n  --background-color-white-75: color-mix(in oklab, var(--background-color), white 75%);\n  --background-color-white-80: color-mix(in oklab, var(--background-color), white 80%);\n  --background-color-white-85: color-mix(in oklab, var(--background-color), white 85%);\n  --background-color-white-90: color-mix(in oklab, var(--background-color), white 90%);\n  --background-color-white-95: color-mix(in oklab, var(--background-color), white 95%);\n  --background-color-white-96: color-mix(in oklab, var(--background-color), white 96%);\n  --background-color-white-97: color-mix(in oklab, var(--background-color), white 97%);\n  --background-color-white-98: color-mix(in oklab, var(--background-color), white 98%);\n  --background-color-white-99: color-mix(in oklab, var(--background-color), white 99%);\n  --background-color-black-1: color-mix(in oklab, var(--background-color), black 1%);\n  --background-color-black-2: color-mix(in oklab, var(--background-color), black 2%);\n  --background-color-black-3: color-mix(in oklab, var(--background-color), black 3%);\n  --background-color-black-4: color-mix(in oklab, var(--background-color), black 4%);\n  --background-color-black-5: color-mix(in oklab, var(--background-color), black 5%);\n  --background-color-black-10: color-mix(in oklab, var(--background-color), black 10%);\n  --background-color-black-15: color-mix(in oklab, var(--background-color), black 15%);\n  --background-color-black-20: color-mix(in oklab, var(--background-color), black 20%);\n  --background-color-black-25: color-mix(in oklab, var(--background-color), black 25%);\n  --background-color-black-30: color-mix(in oklab, var(--background-color), black 30%);\n  --background-color-black-35: color-mix(in oklab, var(--background-color), black 35%);\n  --background-color-black-40: color-mix(in oklab, var(--background-color), black 40%);\n  --background-color-black-50: color-mix(in oklab, var(--background-color), black 50%);\n  --background-color-black-60: color-mix(in oklab, var(--background-color), black 60%);\n  --background-color-black-65: color-mix(in oklab, var(--background-color), black 65%);\n  --background-color-black-70: color-mix(in oklab, var(--background-color), black 70%);\n  --background-color-black-75: color-mix(in oklab, var(--background-color), black 75%);\n  --background-color-black-80: color-mix(in oklab, var(--background-color), black 80%);\n  --background-color-black-85: color-mix(in oklab, var(--background-color), black 85%);\n  --background-color-black-90: color-mix(in oklab, var(--background-color), black 90%);\n  --background-color-black-95: color-mix(in oklab, var(--background-color), black 95%);\n  --background-color-black-96: color-mix(in oklab, var(--background-color), black 96%);\n  --background-color-black-97: color-mix(in oklab, var(--background-color), black 97%);\n  --background-color-black-98: color-mix(in oklab, var(--background-color), black 98%);\n  --background-color-black-99: color-mix(in oklab, var(--background-color), black 99%);\n  --background-color-gray-1: color-mix(in oklab, var(--background-color), gray 1%);\n  --background-color-gray-2: color-mix(in oklab, var(--background-color), gray 2%);\n  --background-color-gray-3: color-mix(in oklab, var(--background-color), gray 3%);\n  --background-color-gray-4: color-mix(in oklab, var(--background-color), gray 4%);\n  --background-color-gray-5: color-mix(in oklab, var(--background-color), gray 5%);\n  --background-color-gray-10: color-mix(in oklab, var(--background-color), gray 10%);\n  --background-color-gray-15: color-mix(in oklab, var(--background-color), gray 15%);\n  --background-color-gray-20: color-mix(in oklab, var(--background-color), gray 20%);\n  --background-color-gray-25: color-mix(in oklab, var(--background-color), gray 25%);\n  --background-color-gray-30: color-mix(in oklab, var(--background-color), gray 30%);\n  --background-color-gray-35: color-mix(in oklab, var(--background-color), gray 35%);\n  --background-color-gray-40: color-mix(in oklab, var(--background-color), gray 40%);\n  --background-color-gray-50: color-mix(in oklab, var(--background-color), gray 50%);\n  --background-color-gray-60: color-mix(in oklab, var(--background-color), gray 60%);\n  --background-color-gray-65: color-mix(in oklab, var(--background-color), gray 65%);\n  --background-color-gray-70: color-mix(in oklab, var(--background-color), gray 70%);\n  --background-color-gray-75: color-mix(in oklab, var(--background-color), gray 75%);\n  --background-color-gray-80: color-mix(in oklab, var(--background-color), gray 80%);\n  --background-color-gray-85: color-mix(in oklab, var(--background-color), gray 85%);\n  --background-color-gray-90: color-mix(in oklab, var(--background-color), gray 90%);\n  --background-color-gray-95: color-mix(in oklab, var(--background-color), gray 95%);\n  --background-color-gray-96: color-mix(in oklab, var(--background-color), gray 96%);\n  --background-color-gray-97: color-mix(in oklab, var(--background-color), gray 97%);\n  --background-color-gray-98: color-mix(in oklab, var(--background-color), gray 98%);\n  --background-color-gray-99: color-mix(in oklab, var(--background-color), gray 99%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n}\n/*! Theme: boulder */\n/*# sourceMappingURL=theme-boulder.css.map */\n"
  },
  {
    "path": "css/dist/theme-crc-legacy.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/html/legacy/crc/theme-crc.scss */\n* {\n  box-sizing: border-box;\n}\nbody.pretext {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\nbody.pretext[data-font=OS] {\n  font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=RS] {\n  font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n}\nbody.pretext {\n  background: #fff;\n}\na {\n  color: inherit;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: transparent;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  background: #BF1722;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n  position: relative;\n}\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n  display: inline;\n}\n.ptx-content pre {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.ptx-content pre {\n  border-radius: 0;\n}\n.ptx-content textarea {\n  padding: 0;\n}\n.ptx-content h1,\n.ptx-content h2,\n.ptx-content h3,\n.ptx-content h4,\n.ptx-content h5,\n.ptx-content h6 {\n  margin: 0;\n  font-size: unset;\n}\n.pretext h1,\n.pretext h2,\n.pretext h3,\n.pretext h4,\n.pretext h5,\n.pretext h6 {\n  margin: 0;\n  font-size: unset;\n}\n.ptx-content .heading {\n  line-height: 1.1;\n}\n.ptx-content .para {\n  margin-top: 1.25em;\n  margin-bottom: 0;\n  line-height: 1.35;\n}\n.ptx-content .para.continuation {\n  margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n  margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n  margin-top: 0.75em;\n}\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .para:first-of-type {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n  margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n  margin-top: 1.75em;\n}\n.ptx-content .para.intertext {\n  margin-top: -0.25em;\n  text-indent: 0;\n}\n.ptx-content .para + table {\n  margin-top: 1em;\n}\n.ptx-content table tr td .para + .para {\n  margin-top: 1em;\n}\n.ptx-content table + .para {\n  margin-top: 1.5em;\n}\n.ptx-content .para + figure.figure-like > table {\n  margin-top: 1em;\n}\n.ptx-content .exercise-like .para + ol {\n  margin-top: 0.5em;\n}\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n  margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n  margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n  margin-left: 1.5em;\n}\n.ptx-content .exercisegroup {\n  padding-top: 1.25em;\n  margin-bottom: 1em;\n}\n.ptx-content section .exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup article.exercise-like .heading {\n  margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n  font-weight: 600;\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n  margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n  margin-top: 1em;\n}\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n  margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n  margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n  margin-top: 1.25em;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n  content: \"\\25a0\\2009\";\n  color: #06a;\n  position: relative;\n  top: -1px;\n  right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n  content: \"\\2003\";\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content section > article,\n.ptx-content section > section.paragraphs,\n.ptx-content .paragraphs > article {\n  margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n  margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n  margin-top: 1em;\n}\n.ptx-content article + .posterior {\n  margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n  margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n  margin-top: 1em;\n}\n.ptx-content section .proof {\n  margin-top: 0.75em;\n}\n.ptx-content section > pre,\n.ptx-content .para + pre {\n  margin-top: 1.25em;\n}\n.ptx-content ol .para + .para,\n.ptx-content ul .para + .para {\n  margin-top: 1em;\n}\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content section .heading,\n.ptx-content article .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n}\n.ptx-content article .exercise-stage {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n.ptx-content article > .heading + .para {\n  margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para,\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n  margin-top: 0.25em;\n}\n.ptx-content section .heading + article {\n  margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content a > .heading {\n  display: inline;\n}\n.ptx-content section > .heading {\n  font-size: 1.75em;\n  line-height: 1.25em;\n  margin-top: 1em;\n  margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n  font-size: 1.5em;\n  line-height: 1.25em;\n  margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .paragraphs .heading + .para {\n  display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n  display: inline;\n}\n.ptx-content .runestone label > .para {\n  display: inline;\n}\n.ptx-content .paragraphs .para .title {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-size: 1.125em;\n  font-weight: 700;\n}\n.ptx-content .paragraphs > .heading {\n  margin-top: 0;\n}\n.ptx-content .paragraphs + .paragraphs {\n  margin-top: 3em;\n}\n.ptx-content article .paragraphs > .heading {\n  font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n  font-size: 1.4em;\n  line-height: 1.15em;\n  margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  .ptx-content section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  .ptx-content section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.ptx-content .abstract {\n  margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .abstract > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n  display: inline;\n}\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like > .heading {\n  font-size: 1em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n  display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n  content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n  display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n  content: \"\\2009\";\n}\n.ptx-content .posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n  padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n  font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n  font-weight: 700;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-bottom: 0;\n}\n.ptx-content li {\n  margin-bottom: 0;\n}\n.ptx-content li .title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.ptx-content article.theorem-like li .title {\n  font-weight: 600;\n  font-style: normal;\n  font-size: 96%;\n}\n.ptx-content figure {\n  margin-bottom: 0;\n}\n.ptx-content .heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.ptx-content .conclusion {\n  margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n  margin-top: 0.5em;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n  margin-top: 0;\n}\n.ptx-content .heading + ol,\n.ptx-content .heading + ul {\n  margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol,\n.ptx-content li > .heading + ul {\n  margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n  margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n  margin-top: 0;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content article .para:first-child {\n  margin-top: 0;\n}\n.ptx-content ol ol,\n.ptx-content ol ul,\n.ptx-content ul ol,\n.ptx-content ul ul {\n  margin-top: 0.5em;\n}\n.ptx-content .frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content .frontmatter > .heading .title,\n.ptx-content .book > .heading .title {\n  font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle,\n.ptx-content .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: #666666;\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.ptx-content .frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n  font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n  font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\nbutton {\n  font: inherit;\n}\n.print-button {\n  position: relative;\n  right: 2px;\n  top: 66px;\n  background-color: LightGreen;\n  z-index: 1;\n  margin-top: -4em;\n  float: right;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n    border: none;\n  }\n  .pretext .ptx-page main.ptx-main {\n    margin-left: 0;\n    left: auto;\n    border: none;\n    box-shadow: none;\n    padding: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content {\n    margin-top: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section {\n    margin-top: 1em;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading {\n    margin-top: 0;\n  }\n  .pretext a[href]::after {\n    content: \"\";\n  }\n  .print-button {\n    display: none;\n  }\n}\n@media print {\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    width: 820px;\n    max-width: 820px;\n    font-size: 12.5px;\n  }\n  body.standalone.worksheet {\n    margin: 0;\n  }\n  body.standalone .ptx-content section.worksheet {\n    border: none;\n  }\n  body.standalone.worksheet .ptx-masthead,\n  body.standalone.worksheet .ptx-page-footer {\n    display: none;\n  }\n  body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-content section.onepage {\n    max-height: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    page-break-after: always;\n    border: none;\n    page-break-inside: avoid;\n  }\n  body.standalone.worksheet .ptx-content .onepage.lastpage {\n    margin-bottom: -2em;\n    page-break-after: auto;\n  }\n  body.standalone.worksheet.a4 .ptx-content .onepage {\n  }\n  body.standalone.worksheet .ptx-content .onepage div.workspace,\n  body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  body.standalone.worksheet a {\n    color: black;\n  }\n  body.standalone.worksheet .ptx-page .ptx-main {\n    padding: 0;\n  }\n  body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n    padding-bottom: 20px;\n  }\n  @page {\n    margin: 0;\n  }\n}\n.hidden {\n  display: none;\n}\n.ptx-navbar .preferences_menu_holder .active > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n  background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n  width: 4em;\n  justify-content: center;\n  text-align: center;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n[data-ruler=greybar] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: #f3f3f3;\n}\n[data-atmosphere*=dark][data-ruler=greybar] .onelineX:hover {\n  color: #333;\n}\n[data-ruler=lightbox] .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=lightbox] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: inherit;\n}\n[data-ruler=sunrise] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 2px solid black;\n  margin-bottom: -2px;\n  position: relative;\n  z-index: 10;\n}\nxxxxxx[data-ruler=sunriseunderline] .onelineX:hover + .onelineX {\n  margin-top: -2px;\n}\n[data-ruler=sunriseunderline] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=underline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  margin-bottom: -1px;\n}\n[data-ruler=lunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  border-left: 1px solid black;\n  padding-left: 4px;\n  margin-left: -5px;\n  margin-bottom: -1px;\n}\n[data-atmosphere*=dark][data-ruler*=underline] .onelineX:hover {\n  border-bottom: 1.5px solid #ddd;\n  margin-bottom: -1.5px;\n}\n[data-atmosphere*=dark][data-ruler=lunderline] .onelineX:hover {\n  border-left: 1.5px solid #ddd;\n  padding-left: 3.5px;\n  margin-left: -5px;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\n.ptx-footnote {\n  display: inline-block;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number {\n  visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: 0.6rem;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote__number {\n  display: inline;\n  cursor: pointer;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowlbackground);\n  border-radius: 6px;\n  padding: 0px 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowlborder);\n}\n.ptx-content section .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n.ptx-content section .para.copyright {\n  margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n  margin-top: 2.5em;\n}\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n  margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.ptx-content .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n}\n.ptx-content .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.ptx-content figcaption {\n  font-weight: normal;\n}\n.ptx-content figcaption {\n  margin-top: 0.6em;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n  font-weight: 700;\n  font-size: inherit;\n}\n.ptx-content figcaption .codenumber:after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption code.code-inline {\n  white-space: pre;\n}\n.ptx-content figure.figure > figcaption {\n  margin-top: 1em;\n}\n.ptx-content figure.listing > figcaption + * {\n  margin-top: 0.5em;\n}\n.ptx-content figcaption + .named-list-content {\n  margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n  margin-top: 0.5em;\n}\n.ptx-content .definition-like .para > .emphasis {\n  font-weight: 700;\n}\n.ptx-content em.alert {\n  font-weight: bold;\n}\n.unprocessed {\n  padding: 8px;\n  background-color: rgb(255, 230, 230);\n}\n.unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(255, 200, 255);\n}\n.unprocessed .unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(205, 205, 255);\n}\n.ptx-content section.introduction + section {\n  margin-top: 2em;\n}\n.ptx-content {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section {\n  display: inline-block;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n  max-width: unset;\n}\n.ptx-content .runestone > .parsons {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone .parsons {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: max-content;\n  padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: 660px;\n}\n.runestonebustmenu {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.runestonebustmenu .dropdown-content {\n  position: absolute;\n  right: 2em;\n  left: unset;\n  top: 1em;\n}\n@media screen and (max-width: 800px) {\n  nav .dropdown .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .activecode-toggle {\n    display: none;\n  }\n}\n.pretext .navbar .dropdown {\n  height: 35px;\n}\n.ptx-content section section + section {\n  margin-top: 3em;\n}\n.ptx-content .sidebyside > .para,\n.ptx-content .sidebyside > figure,\n.ptx-content .sidebyside > img,\n.ptx-content .sidebyside > table,\n.ptx-content .sidebyside > tabular,\n.ptx-content .sidebyside > section,\n.ptx-content .sidebyside > .paragraphs {\n  display: inline-block;\n  margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .sidebyside figcaption {\n  padding-left: 1em;\n  padding-right: 0;\n  padding-bottom: 0;\n  margin: 0.75em 0 0 0;\n}\n.ptx-content figcaption {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .sidebyside > .para {\n  width: 32%;\n  vertical-align: top;\n}\n.ptx-content .sidebyside > .para.left,\n.ptx-content .sidebyside > .para.middle,\n.ptx-content .sidebyside > .para.right {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside > .para + img {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside .sbsrow .sbsheader {\n  margin-top: 0;\n}\n.ptx-content .sbsgroup {\n  width: 100%;\n}\n.ptx-content .sidebyside {\n  width: 100%;\n}\n.ptx-content .sbsrow {\n  display: flex;\n  justify-content: space-between;\n}\n.ptx-content .sbsheader {\n  text-align: center;\n  justify-content: center;\n  font-size: 1em;\n}\n.ptx-content .sbspanel:empty {\n  height: 10em;\n  background-color: rgb(221, 221, 255);\n}\n.ptx-content .sbspanel {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n  justify-content: center;\n}\n.ptx-content .sbspanel.bottom {\n  justify-content: flex-end;\n}\n.ptx-content .sbspanel > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .fixed-width {\n  align-items: center;\n}\n.ptx-content .sbscaption {\n  justify-content: center;\n}\n.ptx-content table {\n  border-spacing: 0;\n}\n.ptx-content table {\n  border-collapse: collapse;\n}\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n  margin-top: 1.5em;\n}\n.ptx-content table tr td,\n.ptx-content table tr th {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.ptx-content table tr td {\n  font-size: 90%;\n}\n.ptx-content table tr td.l {\n  text-align: left;\n}\n.ptx-content table tr td.c {\n  text-align: center;\n}\n.ptx-content table tr td.r {\n  text-align: right;\n}\n.ptx-content table tr td.j {\n  text-align: justify;\n}\n.ptx-content table tr td.lines {\n  white-space: nowrap;\n}\n.ptx-content table tr td.t {\n  vertical-align: top;\n}\n.ptx-content table tr td.b {\n  vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n  vertical-align: middle;\n}\n.ptx-content table tr td.vv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n}\n.ptx-content table tr td.vcv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vcvv {\n  border-left: 2px solid #000;\n  border-right: 4px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vlv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vrv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.rv {\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.vr {\n  border-left: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.lv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vl {\n  border-left: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.cv {\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.Xv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vc {\n  border-left: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.hline {\n  padding: 0;\n}\n.ptx-content table tr td.hlinethick {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.ptx-content table tr td.hline hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 1px solid rgb(0, 0, 0);\n}\n.ptx-content table tr td.hlinethick hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 2px solid rgb(0, 0, 0);\n}\n.center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n  border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n  border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n  border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n  border-bottom: none;\n}\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n  border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n  border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n  border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n  border-top: none;\n}\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n  border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n  border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n  border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n  border-right: none;\n}\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n  border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n  border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n  border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n  border-left: none;\n}\n.ptx-content table tr td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content table.notation-list tr th {\n  text-align: left;\n}\n.ptx-content table.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.ptx-content table.notation-list tr th {\n  margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n  margin-left: 1em;\n}\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content table tr td span.decimal {\n  float: left;\n  text-align: right;\n}\n.ptx-content table tr.header-vertical th {\n  writing-mode: vertical-rl;\n  padding-left: 2em;\n}\n.ptx-content table + article {\n  margin-top: 1em;\n}\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof {\n  margin-top: 0.3em;\n}\n.ptx-content .hidden-knowl-wrapper article {\n  display: inline;\n}\n.apretext-content figure.figure-like {\n  overflow: auto;\n}\n.ptx-content figure.figure-like {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content figure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n  margin-right: 0;\n}\n.ptx-content a > tt {\n  font-size: 110%;\n}\n.ptx-content section .videolink a:link {\n  background-size: 0;\n}\n.ptx-content .playvideo {\n  cursor: pointer;\n}\n.ptx-content .videobig {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 85%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: relative;\n  top: 100px;\n  cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n}\n.ptx-content .knowl .videobig {\n  display: none;\n}\n.ptx-content .videosmall {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 80%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: absolute;\n  left: -250px;\n  z-index: 1001;\n  cursor: zoom-out;\n}\n.ptx-content .exercise-like ol li table {\n  margin-bottom: 0.5em;\n}\n.ptx-content .exercise-like > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content section.worksheet > .heading > .codenumber {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n  display: inline-block;\n  max-width: 70%;\n}\n.ptx-content .heading .print-links {\n  display: inline-block;\n  float: right;\n  vertical-align: top;\n  width: 19%;\n  text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n  display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n  display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n  display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n  background: none;\n  color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n  border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n  padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n  margin: 0;\n}\n.ptx-content .appendix .heading > .type {\n  display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n  display: none;\n}\n.ptx-content .heading .print-links > a {\n  font-family: \"Open Sans\";\n  font-size: 0.6em;\n  font-weight: bold;\n  padding: 0.1em 0.2em;\n  background: #ffa;\n  border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n  background: #eef;\n  color: #9b1c2c;\n  border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n  margin-left: 0.25em;\n}\n.ptx-content .autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 3px;\n  left: -1.9em;\n  font-size: 85%;\n  color: #a00;\n  opacity: 0.05;\n  margin-top: 0.1em;\n}\n.ptx-content li > .para > .autopermalink {\n  left: -3.4em;\n  top: 0;\n}\n.ptx-content .autopermalink a {\n  color: #a00;\n}\n.ptx-content .autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n:target {\n  scroll-margin-top: 45px;\n}\n.ptx-content .para > .autopermalink {\n  margin-top: 0.2em;\n}\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .figure-like > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .subsubsection > .autopermalink {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .autopermalink:hover {\n  opacity: 1;\n  background: #eeddff;\n}\n.ptx-content .permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: #fff;\n  border: 3px solid blue;\n  z-index: 2001;\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: #eeaaff;\n}\n.ptx-content .indexitem {\n  margin-top: 2px;\n}\n.ptx-content .subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .indexknowl {\n  margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl {\n  margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n  margin-left: 2em;\n}\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .indexitem .indexknowl {\n  font-size: 90%;\n}\n.ptx-content .indexitem [data-knowl],\n.ptx-content .subindexitem [data-knowl],\n.ptx-content .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover,\n.ptx-content .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.ptx-content .subindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .indexletter {\n  margin-top: 1.5em;\n}\n.ptx-content .hidden-knowl-wrapper .heading {\n  display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n  display: inline;\n}\n.ptx-content .cols2 .knowl-output,\n.ptx-content .cols3 .knowl-output,\n.ptx-content .cols4 .knowl-output,\n.ptx-content .cols5 .knowl-output,\n.ptx-content .cols5 .knowl-output {\n  width: 100%;\n}\n.ptx-content .cols2 + *,\n.ptx-content .cols3 + *,\n.ptx-content .cols4 + *,\n.ptx-content .cols5 + *,\n.ptx-content .cols6 + * {\n  clear: both;\n}\n.ptx-content .cols2::after,\n.ptx-content .cols3::after,\n.ptx-content .cols4::after,\n.ptx-content .cols5::after,\n.ptx-content .cols6::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n  margin-bottom: 1.5em;\n}\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n  padding-bottom: 0em;\n}\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n  clear: left;\n}\n.ptx-content .exercise-like ol.cols2 li {\n  margin-top: 0.5em;\n}\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n  float: left;\n}\n.ptx-content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.ptx-content .emphasis {\n  font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n  font-weight: bold;\n}\n:target {\n  animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n@-moz-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n.ptx-content .autoterm [knowl],\n.ptx-content .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.ptx-content .autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.ptx-content ol li.custom-list-style-type {\n  list-style-type: none;\n}\n.ptx-content ol li.custom-list-style-type:before {\n  content: attr(label) \"\\a0\\a0\";\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n  list-style-type: none;\n}\n.ptx-content ol.decimal {\n  list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n  list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n  list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n  list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n  list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n  list-style-type: disc;\n}\n.ptx-content ul.square {\n  list-style-type: square;\n}\n.ptx-content ul.circle {\n  list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n  list-style-type: none;\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n  clear: both;\n}\n.ptx-content dl {\n  margin-top: 1em;\n  margin-left: 0;\n  margin-bottom: 0;\n  overflow: hidden;\n}\n.ptx-content dl dd {\n  margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n  margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n  margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n  margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n  margin-top: 0;\n}\n.ptx-content dl dd .para {\n  margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child,\n.ptx-content dl dd > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content dl > dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: left;\n  text-align: right;\n  width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n  text-align: left;\n}\n.ptx-content dl.glossary dd {\n  margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n  margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n  clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n  content: \"\";\n  display: block;\n  height: 1em;\n  clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n  height: 0;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: both;\n  margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n  width: unset;\n  max-width: 55ex;\n  text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 0;\n  margin-top: 0;\n  width: 31em;\n  max-width: calc(100% - 12ex);\n  float: right;\n  clear: right;\n}\n.ptx-content dl.description-list + * {\n  clear: both;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.ptx-content dl.description-list dl dt {\n  width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n  margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n  margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n  width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n  display: inline;\n}\na.mjx-svg-href {\n  fill: inherit;\n  stroke: inherit;\n}\n.displaymath + .para {\n  margin-top: 0;\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n    position: relative;\n    overflow-x: auto;\n  }\n  .ptx-content .mjx-chtml.MJXc-display {\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n.ptx-content dd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n.floatnav a {\n  padding-left: 3px;\n  margin-right: -1px;\n  color: inherit;\n}\n.ptx-content a .heading .mjx-chtml {\n  z-index: 1;\n  background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after,\n.ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after,\n.ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n.floatnav a:hover {\n  background: #eeaaff;\n}\n.ptx-content .unselectable {\n  user-select: none;\n}\n.ptx-content .latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.ptx-content .latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.ptx-content .fillin {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n  display: inline-block;\n  border: none;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n  outline: 1px solid black;\n  height: 1.3em;\n}\n.ptx-content .fillin.shade {\n  display: inline-block;\n  border: none;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n  background-color: #eee;\n  height: 1.3em;\n}\n.ptx-content .hiddenproof > a > .heading {\n  font-style: italic;\n  font-weight: normal;\n}\n.ptx-content .MJXc-display,\n.ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n  background-image:\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0));\n  background-position:\n    left center,\n    right center,\n    left center,\n    right center;\n  background-repeat: no-repeat;\n  background-color: inherit;\n  background-size:\n    20px 100%,\n    20px 100%,\n    10px 100%,\n    10px 100%;\n  background-attachment:\n    local,\n    local,\n    scroll,\n    scroll;\n}\n.ptx-content .runestone .code-box {\n  background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground));\n}\n.ptx-content .knowl-output.original .MJXc-display {\n  background: inherit;\n}\n.ptx-content .assemblage-like .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground));\n}\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0));\n}\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n  padding-top: 0.25em;\n}\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 1.5em;\n}\n.ptx-content .exercise-like .introduction {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n  content: \"\";\n  display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n  content: \"\";\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols3,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols4,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols5,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n  width: 100%;\n  display: inline-flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-items: flex-start;\n  align-content: flex-start;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n  display: inline;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n.ptx-content .exercisegroup .cols1 > article.exercise-like {\n  flex-basis: calc(100% - 2em);\n}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {\n  flex-basis: calc(50% - 2em);\n}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {\n  flex-basis: calc(33.33% - 2em);\n}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {\n  flex-basis: calc(25% - 2em);\n}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {\n  flex-basis: calc(20% - 2em);\n}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {\n  flex-basis: calc(16.66% - 2em);\n}\n.ptx-content .mathword {\n  white-space: nowrap;\n}\n.ptx-content .unit,\n.ptx-content .quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n  word-spacing: normal;\n}\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n  overflow-x: auto;\n}\n.ptx-content .code-inline {\n  font-size: 1em;\n  white-space: pre;\n  color: inherit;\n  background: #eeeeee;\n  border: 1px solid #dddddd;\n  padding: 0.0625em 0.25em;\n  margin-left: 0.2em;\n  margin-right: 0.2em;\n  border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n  margin-left: 0;\n}\n.ptx-content .title .code-inline {\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content a .code-inline {\n  background: #f6f6f6;\n}\n.ptx-content .kbdkey {\n  background: #f1f1f1;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.ptx-content .kbdkey {\n  color: #333;\n}\n.ptx-content .sagecell_sessionOutput pre {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n  margin: 0;\n}\n.ptx-content .sagecell_evalButton {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.ptx-content .booktitle {\n  font-style: oblique;\n}\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n  font-size: 1.25em;\n}\n.ptx-content a .heading {\n  white-space: normal;\n}\n.ptx-content .solutions > a,\n.ptx-content .solutions > a:hover,\n.ptx-content .solutions > a.active,\n.ptx-content .instructions > a,\n.ptx-content .instructions > a:hover,\n.ptx-content .instructions > a.active {\n  display: inline-block;\n  margin-right: 1.5em;\n}\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n  content: \"\\25ba\";\n  font-size: 70%;\n  color: #06a;\n  position: relative;\n  top: -2px;\n  right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n  content: \"\\25bc\";\n  animation-name: solutiontriangle;\n  animation-duration: 3s;\n  animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n  left: 12px;\n}\n@keyframes solutiontriangle {\n  from {\n    content: \"\\25ba\";\n  }\n  to {\n    content: \"\\25bc\";\n  }\n}\n.ptx-content section.solutions {\n  font-size: 90%;\n  padding-left: 1em;\n  border-left: 1em solid #eeeeee;\n}\n.ptx-content.ptx-content > section.solutions:first-child {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n  margin-top: 1em;\n  padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n  font-size: 100%;\n  font-weight: 700;\n  margin-right: 0.25em;\n  display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n  display: inline;\n}\n.ptx-content article > figure:first-child {\n  margin-top: 0;\n}\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n  padding-top: 1em;\n}\n.ptx-content img {\n  display: inline-block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img.cs {\n  display: block;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img:not(.cs) {\n  max-width: 650px;\n}\n.ptx-content .tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img + img {\n  margin-top: 30px;\n}\n.ptx-content div.center img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content div.center + div.center > img {\n  margin-top: 60px;\n}\n.ptx-content div.center > img + img {\n  margin-top: 60px;\n}\n.ptx-content figure table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure.wrap img {\n  width: 250px;\n}\n.ptx-content figure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n  float: right;\n  margin: 0;\n}\n.ptx-content figure figcaption.wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure,\n.ptx-content .image-box {\n  margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n  margin-top: 1em;\n}\n.ptx-content figure .image-box {\n  margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n  margin-top: 0;\n}\n.ptx-content .image-box img,\n.ptx-content img.contained,\n.ptx-content .sbspanel img {\n  width: 100%;\n  height: auto;\n}\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n  cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n  max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n  position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n  margin-top: 0.75em;\n}\n.ptx-content .audio {\n  width: 100%;\n}\n.caption .heading {\n  font-weight: bold;\n}\n.caption .counter {\n  font-weight: bold;\n}\n.ptx-content div.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.minipage + .minipage {\n  display: inline-block;\n}\n.ptx-content code.inline {\n  background: none;\n  border: none;\n}\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n  line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n  margin-top: 1em;\n}\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n.ptx-content pre[data-line].program,\n.ptx-content pre[data-line].code-block {\n  padding-left: 2.5em;\n}\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n  margin-left: -5em;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  padding-left: 3.5em;\n  overflow: visible;\n}\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n  margin-left: -7em;\n}\n.ptx-content pre[data-line].line-numbers code {\n  padding-top: 0em;\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n  margin-top: 0em;\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n  margin-top: 0.6em;\n}\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n  content: \"\";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n.ptx-content .objectives {\n  margin-bottom: 1.25em;\n}\n.ptx-content ol > li {\n  padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li,\n.ptx-content ul.cols2 > li {\n  width: calc(49% - 1.75em);\n  min-width: 190px;\n}\n.ptx-content ol.cols3 > li,\n.ptx-content ul.cols3 > li {\n  width: calc(33% - 1.25em);\n  min-width: 160px;\n}\n.ptx-content ol.cols4 > li,\n.ptx-content ul.cols4 > li {\n  width: calc(24.5% - 1.25em);\n  min-width: 100px;\n}\n.ptx-content ol.cols5 > li,\n.ptx-content ul.cols5 > li {\n  width: calc(19.5% - 0.75em);\n  min-width: 90px;\n}\n.ptx-content ol.cols6 > li,\n.ptx-content ul.cols6 > li {\n  width: calc(16.3% - 0.5em);\n  min-width: 80px;\n}\n.ptx-content ul.cols2 > li:nth-child(odd),\n.ptx-content ol.cols2 > li:nth-child(odd) {\n  margin-right: 2em;\n}\n.ptx-content .cols2 ol,\n.ptx-content .cols3 ol,\n.ptx-content .cols4 ol,\n.ptx-content .cols5 ol,\n.ptx-content .cols6 ol {\n  padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n  margin-top: 1em;\n}\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n  float: none !important;\n  padding-top: 0.5em;\n}\n.ptx-content .solution ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .solution ol li > .para:first-child,\n.ptx-content .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n.ptx-content .exercise-like ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .exercise-like > .cols2 > li {\n  width: calc(49% - 2.5em);\n}\n.ptx-content .exercise-like > .cols3 > li {\n  width: calc(33% - 2.5em);\n}\n.ptx-content .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2.5em);\n}\n.ptx-content .knowl .exercise-like > .cols2 > li {\n  width: calc(49% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols3 > li {\n  width: calc(33% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2em);\n}\n.ptx-content .exercise-like ol li > .para:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .contributor .contributor-name {\n  font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.ptx-content .contributor {\n  margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n  margin-top: 1.5ex;\n}\n.ptx-content .contributor + .para {\n  margin-top: 3ex;\n}\n.ptx-content .frontmatter .contributors,\n.ptx-content .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.searchwrapper .gsc-control-cse {\n  padding: 0;\n  border: none;\n  width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n.searchwrapper input.gsc-search-button-v2 {\n  padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n  padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n  padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n  height: 3ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  font-size: 12px;\n}\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {\n  color: #090;\n}\n.ptx-content .image-archive {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-top: 0.75em;\n  padding-bottom: 0.25em;\n  text-align: center;\n}\n.ptx-content .image-archive > a {\n  display: inline-block;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n  font-family: monospace;\n}\n.ptx-content iframe {\n  margin: 0;\n  border: none;\n  box-sizing: border-box;\n}\n.ptx-content .times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.ptx-content article.notranslate {\n  margin-top: 0;\n}\n.ptx-content article.exercise-like > .exercise-like {\n  margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content article.example-like > .heading + .introduction {\n  display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content .taxon {\n  font-style: italic;\n}\n.ptx-content .sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n  padding-bottom: 5px;\n  padding-left: 6px;\n}\n.ptx-content .hidden-content,\n.pretext .hidden-content {\n  display: none;\n}\n.ptx-content hr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n.ptx-content hr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n  display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n  margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n  margin-top: 0;\n}\n.ptx-content meta {\n  display: none;\n}\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:hover .codenumber,\n.ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n.ptx-content .summary-links {\n  margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n  margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n}\n.ptx-content .summary-links li {\n  margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a,\n.ptx-content .summary-links a:link,\n.ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n  margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n  display: none;\n}\nbody.standalone .ptx-content .worksheet {\n  padding: 40px 0 45px 0;\n  border: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage {\n  padding: 40px 45px 45px 55px;\n  border-bottom: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  border-top: 2px solid grey;\n}\nbody.standalone .ptx-content .onepage.firstpage {\n  padding-top: 0;\n}\nbody.standalone .ptx-content .onepage.lastpage {\n  padding-bottom: 0;\n  border-bottom: none;\n}\nbody.standalone .ptx-content .worksheet > *:last-child {\n  padding-bottom: 0 !important;\n}\n.ptx-content .onepage + .onepage {\n  margin-top: 2.5em;\n  padding-top: 1.5em;\n  border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n  content: \"pagebreak\";\n  text-align: center;\n  margin-left: 40%;\n  padding-left: 1em;\n  padding-right: 1em;\n  position: absolute;\n  top: -0.8em;\n  font-size: 80%;\n  font-style: italic;\n  background: white;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n  content: none;\n}\nbody.standalone .ptx-content .onepage article {\n  padding-left: 0;\n  border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n  all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n  margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n  margin-top: 1.25em;\n}\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  padding-left: 1.25em;\n  border-left: 1px solid grey;\n  margin-left: -1.25em;\n  z-index: -100;\n}\nbody.standalone.worksheet .ptx-content section article.task {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n  font-weight: normal;\n}\nbody.standalone .autopermalink {\n  display: none;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n  border: 2px dotted grey;\n  background: #f3fff3;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n  border: 2px dotted grey;\n  background: #ffe;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n  border: 15px solid;\n  border-image:\n    repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px) 20;\n  background: yellow;\n}\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like {\n  border: none;\n  padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n  margin-top: -0.5em;\n  padding: 0;\n  margin: 0;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n  margin-left: 55px;\n  margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n  display: inline;\n}\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n.ptx-content a.url,\n.ptx-content a.external {\n  color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n  background: #ffd;\n}\n.ptx-content .poem {\n  margin-top: 1.5em;\n}\n.ptx-content .poem {\n  display: table;\n  margin-top: 1.5em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  width: auto;\n  max-width: 90%;\n}\n.ptx-content .poem > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n  content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.ptx-content .poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n  text-align: left;\n}\n.ptx-content .poem .author.center {\n  text-align: center;\n}\n.ptx-content .poem .author.right {\n  text-align: right;\n}\n.ptx-content .poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n  text-align: center;\n}\n.ptx-content .poem .line.right {\n  text-align: right;\n}\n.ptx-content .poem .tab {\n  margin-left: 2em;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\n.toolBPanel {\n  overflow: hidden !important;\n}\n.toolBPanel:hover {\n  overflow: auto !important;\n}\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n.ptx-content .marginresource {\n  position: relative;\n  height: 0;\n  left: 40em;\n  top: 1em;\n}\n.ptx-content .marginresource a {\n  color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n  border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n  font-size: 200%;\n  margin-right: 1em;\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n  display: block;\n  margin-left: 2em;\n}\n.collectedworks .knowl-output {\n  border: 12px solid #D6E3FF;\n  background: none repeat scroll 0% 0% #FAFCFF;\n  border-radius: 4px;\n  margin-bottom: 1.25em;\n}\n.collectedworks .subjectwork {\n  max-width: 750px;\n}\n.collectedworks .bib {\n  margin-bottom: 1em;\n}\n.collectedworks .bibitem + .bibentry {\n  display: inline;\n}\n.collectedworks .bibitem {\n  display: inline;\n  font-weight: bold;\n  margin-right: 1em;\n}\n.collectedworks .work .title a {\n  text-decoration: none;\n  color: #009;\n}\n.iconlegend {\n  position: absolute;\n  margin-top: 0.5em;\n  top: 0;\n  left: 920px;\n  line-height: 1;\n}\n.iconlegend .icon_name {\n  font-size: 90%;\n  margin-right: 1em;\n}\n.icongroup + .icongroup {\n  margin-left: 1em;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\n.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.ptx-content .webwork-button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n  cursor: pointer;\n  background-color: #a0a0a0;\n  border: 1px solid #999;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.ptx-content .exercise-wrapper form button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  color: black;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n  width: 22px;\n  height: 22px;\n  background-image: url(https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico);\n  background-size: contain;\n  position: absolute;\n  right: -35px;\n}\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n  margin-top: 0.5em;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-content .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.ptx-content .cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n@media screen and (max-width: 600px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.3em;\n}\n.APEXlogo .E {\n  position: relative;\n  top: 0.33em;\n}\n.runestone-profile .dropdown-content {\n  position: absolute;\n  display: none;\n  right: 0;\n  top: 35px;\n  text-align: left;\n  border: 1px solid;\n  border-color: #600;\n  border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n  background-color: #ddd;\n  overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n  display: block;\n}\n.runestone-profile .dropdown-content {\n  background-color: white;\n  z-index: 1800;\n  min-width: 100px;\n  padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: #662211;\n  padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n  background-color: #671d12;\n  color: #ffffff;\n  text-decoration: none;\n  background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n  margin-bottom: 4px;\n  margin-top: 4px;\n  border-color: #600;\n  border-color: var(--sectiontoctext);\n}\n.searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox {\n}\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n.searchbutton .name {\n  display: none;\n}\n.searchwidget {\n  text-align: right;\n}\n.searchwidget input {\n}\n.helpbox {\n  display: none;\n}\n.detailed_result {\n  margin-bottom: 10px;\n}\n.all_results a:link {\n  text-decoration: none;\n  font-size: large;\n}\n.all_results a:hover {\n  background-color: lightgray;\n}\n.searchresults a:hover {\n  background-color: #eee;\n}\n.searchresults a {\n  text-decoration: none;\n  color: #222;\n}\n.searchresults a:hover {\n  text-decoration: underline;\n  color: #33f;\n}\n.searchresults ul li {\n  list-style-type: none;\n}\nol.searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n}\nol.searchresults > li {\n  list-style-type: none;\n}\n.search-result-score {\n  display: none;\n}\n.high_result {\n  font-weight: 700;\n}\n.medium_result {\n  font-weight: 500;\n}\n.low_result {\n  font-weight: 200;\n}\n.no_result {\n  font-weight: 200;\n  color: #444;\n}\n.detailed_result .no_result {\n  font-size: 90%;\n}\n.searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  left: 152px;\n  width: 600px;\n  padding: 1em;\n  border: 0.2em solid #009;\n  background: aliceblue;\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.search-results-heading {\n  border-bottom: 1px solid rgba(0, 0, 125, 0.5);\n}\n.search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n}\n.closesearchresults {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border: 1px solid black;\n}\n.closesearchresults:hover {\n  color: #c00;\n  background-color: #fee;\n  border-color: #f00;\n}\n.closesearchresults + h2 {\n  margin-top: -1em;\n}\n.searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.search-result-bullet {\n  margin-top: 0.3em;\n}\n.search-result-clip {\n  font-size: 80%;\n  font-style: italic;\n  color: #444;\n  padding-left: 15px;\n}\n.search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n  background: rgba(255, 255, 0, 0.5);\n}\n@media screen and (max-width: 800px) {\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n.pretext .ptx-page > .ptx-main {\n  margin-left: unset;\n}\n.ptx-masthead .logo-link img {\n  width: unset;\n  height: unset;\n  max-height: unset;\n}\n.ptx-masthead .logo-link {\n  font-size: unset;\n  text-align: unset;\n  line-height: unset;\n}\n.pretext .ptx-masthead {\n  position: unset;\n  background: unset;\n  min-height: unset;\n  border: unset;\n  position: unset;\n  z-index: unset;\n}\n.ptx-content-footer .previous-button .name {\n  margin-left: unset;\n  padding-right: unset;\n}\n.pretext .ptx-content-footer .name {\n  position: relative;\n  bottom: 0;\n}\n.pretext .ptx-content-footer .button.previous-button,\n.pretext .ptx-content-footer .button.next-button {\n  font-size: 0.8em;\n  margin-top: 1.5em;\n  padding: 0.4em;\n}\n.pretext .ptx-content-footer .top-button .icon,\n.pretext .ptx-content-footer .top-button .name {\n  display: unset;\n}\n.pretext .ptx-content-footer .previous-button .icon {\n  margin-left: unset;\n  margin-right: unset;\n}\n.pretext .ptx-content-footer .button {\n  text-align: unset;\n  padding: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  height: 35px;\n  min-width: 85px;\n}\nbody.pretext {\n  max-width: 904px;\n  margin: 0 auto 0 auto;\n  padding: 0;\n  box-sizing: border-box;\n}\n.pretext .ptx-masthead {\n  border: 2px solid #ddd;\n  border-bottom: none;\n  border-top-left-radius: 5px;\n  border-top-right-radius: 5px;\n}\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  box-shadow: none;\n}\n.pretext .ptx-masthead {\n  max-width: 904px;\n  border-right: 1px solid #bababa;\n}\n@media only screen and (min-width: 600px) {\n  .ptx-masthead {\n    z-index: 100;\n  }\n}\n.ptx-masthead .searchbox {\n  bottom: 2px;\n  margin-right: -19px;\n}\n.ptx-page {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 1em;\n  min-height: 100vh;\n  display: grid;\n  grid-template-columns: auto 1fr auto;\n  grid-template-rows: auto;\n  grid-template-areas: \"toc main-content\" \"toc content-footer\";\n}\n.ptx-content {\n  min-height: 50vh;\n}\n.ptx-sidebar {\n  position: sticky;\n  top: 34px;\n  background-color: #f1f1f1;\n  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n  width: 240px;\n  max-height: 100vh;\n  height: 100vh;\n  grid-area: toc;\n  grid-column-start: 1;\n  grid-column-end: 2;\n  grid-row-start: 1;\n  grid-row-end: 3;\n  border: 2px solid var(--bluegreen);\n  border-radius: 5px;\n  z-index: 1;\n}\n.ptx-page > .ptx-main {\n  grid-area: main-content;\n  grid-column-start: 2;\n  grid-column-end: 3;\n  grid-row-start: 1;\n  grid-row-end: 2;\n  justify-self: start;\n  max-width: 664px;\n  width: 97vw;\n  transition: 0s;\n  padding: 0;\n  margin: 0;\n  z-index: 0;\n}\n@media only screen and (min-width: 500px) {\n  .ptx-page > .ptx-main {\n    margin: 0;\n    max-width: 664px;\n    width: min(100vw, 664px);\n    justify-self: center;\n  }\n}\n.ptx-page > .ptx-main > .ptx-content {\n  margin-left: 2em;\n}\n.pretext .ptx-page .ptx-content-footer {\n  display: grid;\n  max-width: 100%;\n  grid-template-columns: 1fr 1fr 1fr;\n  grid-template-areas: \"content-footer-prev content-footer-top content-footer-next\";\n  margin-left: 32px;\n  margin-top: 30px;\n}\n.ptx-content-footer .previous-button {\n  grid-area: content-footer-prev;\n  justify-self: start;\n  align-self: center;\n  margin: 20px;\n  padding: 5px;\n  display: inline-block;\n  height: 32px;\n  color: var(--bodytitle);\n  font-family: inherit;\n  text-align: center;\n  font-size: 0.8em;\n  font-weight: 700;\n  letter-spacing: 0.1rem;\n  text-transform: uppercase;\n  text-decoration: none;\n  white-space: nowrap;\n  background-color: #eee;\n  border-radius: 4px;\n  border: 1px solid #888;\n  cursor: pointer;\n  box-sizing: border-box;\n}\n.ptx-content-footer .previous-button:hover {\n  background-color: #fafafa;\n  color: #888;\n}\n.ptx-content-footer .previous-button .name {\n  margin-left: 2px;\n  padding-right: 5px;\n}\n.ptx-content-footer .previous-button .icon {\n  padding-left: 5px;\n}\n.ptx-content-footer .top-button {\n  grid-area: content-footer-top;\n  justify-self: center;\n  align-self: center;\n  margin: 20px;\n  padding: 5px;\n  display: inline-block;\n  height: 32px;\n  color: var(--bodytitle);\n  font-family: inherit;\n  text-align: center;\n  font-size: 0.8em;\n  font-weight: 700;\n  letter-spacing: 0.1rem;\n  text-transform: uppercase;\n  text-decoration: none;\n  white-space: nowrap;\n  background-color: #eee;\n  border-radius: 4px;\n  border: 1px solid #888;\n  cursor: pointer;\n  box-sizing: border-box;\n}\n.ptx-content-footer .top-button:hover {\n  background-color: #fafafa;\n  color: #888;\n}\n.ptx-content-footer .top-button .name {\n  margin-left: 2px;\n  padding-right: 5px;\n}\n.ptx-content-footer .top-button .icon {\n  padding-left: 5px;\n}\n.ptx-content-footer .next-button {\n  grid-area: content-footer-next;\n  justify-self: end;\n  align-self: center;\n  margin: 20px;\n  padding: 5px;\n  display: inline-block;\n  height: 32px;\n  color: var(--bodytitle);\n  font-family: inherit;\n  text-align: center;\n  font-size: 0.8em;\n  font-weight: 700;\n  letter-spacing: 0.1rem;\n  text-transform: uppercase;\n  text-decoration: none;\n  white-space: nowrap;\n  background-color: #eee;\n  border-radius: 4px;\n  border: 1px solid #888;\n  cursor: pointer;\n  box-sizing: border-box;\n}\n.ptx-content-footer .next-button:hover {\n  background-color: #fafafa;\n  color: #888;\n}\n.ptx-content-footer .next-button .name {\n  margin-right: 2px;\n  padding-left: 5px;\n}\n.ptx-content-footer .next-button .icon {\n  padding-right: 5px;\n}\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n@media only screen and (max-width: 800px) {\n  .pretext .ptx-sidebar {\n    display: none;\n  }\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n  }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n}\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n  background: #f4f4f4;\n  margin-top: 2em;\n  padding-top: 0;\n  max-width: 900px;\n  border-top: 2px solid var(--sectiontoctext);\n  border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  position: relative;\n}\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-masthead .title-container > .heading {\n  line-height: unset;\n}\n.ptx-masthead .byline {\n  margin: unset;\n  font-size: unset;\n  line-height: unset;\n  font-family: unset;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  border-bottom: none;\n  overflow: hidden;\n  padding-top: 0.625em;\n  padding-bottom: 1.125em;\n}\n.ptx-content .summary-links a {\n  display: block;\n  padding: 0.6em;\n  text-decoration: none;\n  font-family: \"Open Sans\", sans-serif;\n  font-size: 1em;\n  font-weight: 600;\n  border-radius: 5px;\n}\n.ptx-content .summary-links a .codenumber {\n  color: var(--bluegreen);\n}\n.ptx-content .summary-links a .title {\n  font-weight: 600;\n}\n.ptx-content .summary-links a:hover {\n  color: #fff;\n  background: var(--bluegreen);\n}\n.ptx-content .summary-links ul,\n.ptx-content .summary-links ul li {\n  display: grid;\n  list-style-type: none;\n  min-width: 300px;\n  padding-inline-start: 0px;\n  font-family: \"Open Sans\", sans-serif;\n  justify-items: stretch;\n  margin: 2px auto 3px auto;\n}\n.ptx-content .summary-links > ul {\n}\n@media screen and (min-width: 600px) {\n  .ptx-content .summary-links ul,\n  .ptx-content .summary-links ul li {\n    width: 60vw;\n    max-width: 500px;\n  }\n}\n@media screen and (min-width: 700px) {\n  .ptx-content .summary-links ul,\n  .ptx-content .summary-links ul li {\n    width: 55vw;\n    max-width: 500px;\n  }\n}\n@media screen and (min-width: 800px) {\n  .ptx-content .summary-links ul,\n  .ptx-content .summary-links ul li {\n    width: 49vw;\n    max-width: 500px;\n  }\n}\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  margin: 0;\n  font-size: 2em;\n}\n.ptx-masthead .title-container > .heading.hide-type .type {\n  display: none;\n}\n.ptx-masthead .title-container > .heading.hide-codenumber .codenumber {\n  display: none;\n}\n.ptx-masthead .title-container > .heading.hide-title .title {\n  display: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    display: block;\n    color: #595959;\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-size: 1.2em;\n  font-weight: normal;\n  margin: 0;\n  min-height: inherit;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\n.ptx-masthead .ptx-banner .title-container .heading {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n.ptx-masthead .ptx-banner {\n  max-width: 904px;\n  display: grid;\n  grid-gap: 1em;\n  grid-template-columns: 50px 1fr;\n  grid-template-areas: \"ptx-logobox ptx-title-byline-box\";\n  background-color: #fff;\n  padding: 0px 20px 0px 20px;\n}\n.title-container .title {\n  color: var(--bodytitle);\n}\n.title-container .subtitle {\n  color: var(--bodysubtitle);\n}\n.title-container {\n  margin-top: 0px;\n}\n.title-container .title {\n  font-size: 0.6em;\n  font-weight: 600;\n}\n.title-container .subtitle {\n  font-weight: normal;\n  font-size: 0.5em;\n}\n@media (min-width: 400px) {\n  .title-container {\n    margin-top: 0px;\n  }\n  .title-container .title {\n    font-size: 0.7em;\n    font-weight: 600;\n  }\n  .title-container .subtitle {\n    font-weight: normal;\n    font-size: 0.6em;\n  }\n}\n@media (min-width: 550px) {\n  .title-container {\n    margin-top: 3px;\n  }\n  .title-container .title {\n    font-size: 0.9em;\n    font-weight: 600;\n  }\n  .title-container .subtitle {\n    font-weight: normal;\n    font-size: 0.7em;\n  }\n}\n@media (min-width: 801px) {\n  .title-container {\n    margin-top: 5px;\n  }\n  .title-container .title {\n    font-size: 1em;\n    font-weight: 600;\n  }\n  .title-container .subtitle {\n    font-weight: normal;\n    font-size: 0.8em;\n  }\n}\n.logo-link {\n  grid-area: ptx-logobox;\n  color: #000;\n  padding: 15px 0px 0px 0px;\n  justify-self: stretch;\n}\n.ptx-masthead .logo-link img {\n  width: 50px;\n}\n.title-container {\n  grid-area: ptx-title-byline-box;\n  color: #000;\n  padding: 0px 0px 0px 0px;\n  justify-self: stretch;\n}\n.searchbox {\n  grid-area: ptx-searchbox;\n}\n.ptx-navbar .treebuttons .next-button,\n.ptx-navbar .treebuttons .up-button,\n.ptx-navbar .treebuttons .previous-button {\n  float: unset;\n}\n.ptx-navbar .previous-button,\n.ptx-navbar .up-button,\n.ptx-navbar .next-button,\n.ptx-navbar .index-button,\n.ptx-navbar .calculator-toggle,\n.ptx-navbar .toc-toggle {\n  width: unset;\n}\n.ptx-navbar .calculator-toggle {\n  margin-left: unset;\n  margin-right: unset;\n}\n.ptx-navbar .index-button .name {\n  padding-top: unset;\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.ptx-navbar .nav-other-controls {\n  margin-left: 1em;\n}\n.ptx-navbar .treebuttons {\n  display: flex;\n  justify-content: right;\n}\n.ptx-navbar .button {\n  padding: 0 10px 0 10px;\n}\n.ptx-navbar .treebuttons .button {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n.ptx-navbar .treebuttons .previous-button {\n  padding-left: 0px;\n}\n.ptx-navbar .treebuttons .next-button {\n  padding-right: 0px;\n}\n.ptx-navbar .nav-runestone-controls {\n  display: flex;\n}\nnav.ptx-navbar {\n  display: grid;\n  grid-column-gap: 0em;\n  grid-template-columns: auto auto auto 1fr 1fr auto;\n  grid-template-areas: \"MH-toc-area MH-extras-area1 ptx-searchbox MH-extras-area2 MH-page-navigation-area MH-preferences-area\";\n  background-color: #fff;\n  align-items: start;\n  border: 2px solid #ddd;\n  border-top: none;\n  border-bottom-left-radius: 5px;\n  border-bottom-right-radius: 5px;\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  z-index: 20;\n  position: sticky;\n  top: 0;\n  align-items: end;\n  min-height: unset;\n  margin-bottom: 0;\n}\nnav.ptx-navbar::before,\nnav.ptx-navbar::after {\n  content: none;\n}\n.toc-toggle {\n  display: inline-block;\n  height: 32px;\n  color: #333;\n  font-family: inherit;\n  text-align: center;\n  font-size: 0.8em;\n  font-weight: 600;\n  line-height: 32px;\n  letter-spacing: 0.1rem;\n  text-transform: uppercase;\n  text-decoration: none;\n  white-space: nowrap;\n  background-color: #eee;\n  border-radius: 4px;\n  border: 1px solid #888;\n  cursor: pointer;\n  box-sizing: border-box;\n  margin-right: 2em;\n}\n.toc-toggle:hover {\n  background-color: #fafafa;\n  color: black;\n}\n.toc-toggle {\n  grid-area: MH-toc-area;\n  justify-self: start;\n}\n.index-button {\n  grid-area: MH-extras-area1;\n  justify-self: right;\n}\n.calculator-toggle {\n  grid-area: MH-extras-area2;\n  justify-self: left;\n}\n.user-preferences-button {\n  justify-self: left;\n}\n.treebuttons {\n  grid-area: MH-page-navigation-area;\n  justify-self: end;\n  display: flex;\n  width: 100%;\n}\n.nav-runestone-controls {\n  grid-area: MH-preferences-area;\n  justify-self: end;\n  display: flex;\n  padding-left: 4em;\n}\n.ptx-navbar .button {\n  display: inline-block;\n  height: 32px;\n  color: var(--bodytitle);\n  font-family: inherit;\n  text-align: center;\n  font-size: 0.8em;\n  font-weight: 600;\n  line-height: 32px;\n  letter-spacing: 0.1rem;\n  text-transform: uppercase;\n  text-decoration: none;\n  white-space: nowrap;\n  background-color: #eee;\n  border-radius: 4px;\n  border: 1px solid #888;\n  cursor: pointer;\n  box-sizing: border-box;\n}\n.ptx-navbar .searchbutton {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.searchresultsplaceholder {\n  left: calc(50vw - 300px);\n}\n@media only screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    padding: 0;\n    background: #ededed;\n    grid-template-columns: auto auto auto auto 1fr auto;\n    align-items: end;\n  }\n  .ptx-navbar .toc-toggle {\n    padding: 0 40px;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    padding-left: 0;\n  }\n  .ptx-navbar .treebuttons {\n    justify-content: center;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n  .searchresultsplaceholder {\n    left: 10vw;\n  }\n}\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n  color: #888;\n}\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  color: #333333;\n  background: #ededed;\n  cursor: default;\n  box-shadow: none;\n}\n.ptx-navbar .toc-toggle .icon {\n  font-size: 1.5em;\n  position: relative;\n  bottom: -0.1em;\n  padding-left: 0;\n  padding-right: 0.4em;\n}\n.ptx-navbar .toc-toggle .name {\n  font-size: 1em;\n}\n.ptx-navbar .index-button .name {\n}\n.ptx-navbar .index-button .icon {\n  display: none;\n}\n.ptx-navbar .calculator-toggle .name {\n}\n.ptx-navbar .calculator-toggle .icon {\n  display: none;\n}\n.ptx-navbar .runestone-profile .name {\n  display: none;\n}\n.ptx-navbar .activecode-toggle .name {\n  display: none;\n}\n.pretext .ptx-navbar .dropdown {\n  height: 32px;\n}\n.ptx-navbar .up-button {\n  text-align: center;\n}\n.ptx-navbar .name {\n  display: inline-block;\n}\n.ptx-navbar .searchbutton .name {\n  display: none;\n  position: relative;\n  bottom: 0;\n}\n.ptx-navbar .icon {\n  display: inline-block;\n  font-size: 1.5em;\n}\n.ptx-navbar .previous-button .icon {\n  margin-left: 0.3em;\n  margin-right: 0.2em;\n}\n.ptx-navbar .up-button .icon {\n  margin-left: 0;\n  margin-right: 0.2em;\n}\n.ptx-navbar .next-button .icon {\n  margin-left: 0.2em;\n  margin-right: 0.3em;\n}\n.ptx-navbar .user-preferences-button {\n  padding: 0 0.8em 0 0.8em;\n  margin-left: 2em;\n  border: 1px solid #bababa;\n  width: 6em;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .toc-toggle .name,\n  .ptx-navbar .previous-button .name,\n  .ptx-navbar .up-button .name,\n  .ptx-navbar .up-button .disabled .name,\n  .ptx-navbar .next-button .name {\n    display: none;\n  }\n  .ptx-navbar .toc-toggle {\n    margin: 0;\n  }\n  .ptx-navbar .calculator-toggle .icon {\n    padding-top: 5px;\n  }\n}\n.ptx-toc > ul.structural > li:not(:first-child) {\n  margin-top: 0;\n}\n.ptx-toc ul.structural li a {\n  border-bottom: 0;\n}\n.ptx-toc ul.structural li li a {\n  border-bottom: none;\n}\n.ptx-toc ul.structural .toc-title-box {\n  border-top: solid #999 1px;\n}\n.ptx-toc ul.structural li ul.structural li:last-child {\n  margin-bottom: 0;\n}\n.ptx-toc {\n  width: 240px;\n  margin: 0;\n  font-size: 14.72px;\n  overflow-y: auto;\n  overflow-x: hidden;\n  background: #fff;\n}\n.ptx-toc ul {\n  margin: 0px;\n  padding: 0px;\n}\n.ptx-toc ul a,\n.ptx-toc ul .part a,\n.ptx-toc ul .frontmatter a {\n  font-weight: 700;\n  font-size: 0.9em;\n}\n.ptx-toc ul ul li a {\n  font-weight: 400;\n  grid-template-columns: 1.5em 1fr;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n}\n.ptx-toc .toc-section .toc-item-list .toc-item a > .codenumber {\n  display: none;\n}\n.ptx-toc .toc-section .toc-item-list .toc-item a:hover > .codenumber {\n  display: inline-block;\n}\n.ptx-toc ul ul a > .title {\n  margin-left: 0;\n}\n.ptx-toc ul ul a > .title:empty::after {\n  content: \"empty heading!\";\n  font-weight: bold;\n}\n.ptx-toc ul ul ul a > .title {\n  margin-left: 0.5em;\n  font-size: 90%;\n}\n.ptx-toc ul ul ul ul a > .title {\n  margin-left: 2em;\n  font-size: 90%;\n  font-style: italic;\n}\n.ptx-toc ul li a {\n  text-decoration: none;\n}\n.ptx-toc > ul > li a {\n  font-weight: bold;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  padding-left: 0.2em;\n}\n.ptx-toc ul li a:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-toc a {\n  padding: 0.25em 0.5em 0.25em 0.5em;\n  text-decoration: none;\n  font-weight: 500;\n  font-size: 0.9em;\n  margin: 0px;\n}\n.ptx-toc ul,\n.ptx-toc ul li {\n  list-style-type: none;\n  margin: 0px;\n  padding-inline-start: 0px;\n}\n.ptx-toc ul li a {\n  display: grid;\n  grid-gap: 3px;\n  grid-template-columns: 1.25em 10fr;\n  grid-template-areas: \"toc-codenumber toc-content\";\n}\n.ptx-toc {\n  position: sticky;\n  top: 0;\n  width: unset;\n  height: 100vh;\n}\n.ptx-toc::after {\n  content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n  display: block;\n  height: 13em;\n  padding: 2em 1em;\n  background: #fff;\n}\n.ptx-toc > ul:first-child > li:last-child {\n  border-bottom: 4px solid #669;\n}\n.ptx-toc a > .codenumber {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  grid-area: toc-codenumber;\n}\n.ptx-toc a > .title {\n  grid-area: toc-content;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n  display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n  display: block;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n  display: none;\n}\n.ptx-toc.focused > ul.structural > li:not(:first-child) {\n  margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n  border: 0;\n}\n.toc-title-box {\n  display: flex;\n}\n.ptx-toc ul.structural li .toc-title-box a {\n  flex: 1 1;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 30px;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--highlighttoc);\n  color: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n:root {\n  --parttoc: var(--chaptertoc);\n  --parttoctext: var(--chaptertoctext);\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: var(--chaptertoctextactive);\n}\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n  :root {\n    --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n  }\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowlLinkColor);\n  border-bottom: 1px dotted var(--knowlLinkColor);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--linkbackground);\n  border-bottom-color: transparent;\n}\n.knowl__content {\n  margin: 0.2em;\n  border: 6px solid var(--knowlborder);\n  border-radius: 0.4em;\n  padding: 0.8em;\n  background-color: var(--knowlbackground);\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n  content: \"\" !important;\n  border-bottom: none;\n  margin: 0;\n  padding: 0;\n  width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n  padding-right: 0;\n  border-right: none;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested4Background);\n}\n.ptx-content .knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .proof {\n  border-right: 1px solid #666;\n  padding-right: 0.625em;\n  margin-right: -0.725em;\n}\n.ptx-content .proof:after {\n  content: \"\";\n  border-bottom: 1px solid #666;\n  display: block;\n  margin-left: auto;\n  margin-right: -0.625em;\n  width: 1.5em;\n  padding-bottom: 0.25em;\n}\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n.ptx-content .proof .proof {\n  margin-right: -0.2em;\n  border-right: 1.5px solid #ddd;\n}\n.ptx-content .proof .proof:after {\n  border-bottom: 1.5px solid #ddd;\n  width: 1em;\n}\n.ptx-content article.theorem-like,\n.ptx-content article.definition-like,\n.ptx-content article.example-like,\n.ptx-content article.project-like,\n.ptx-content article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content article.computation-like {\n  padding-left: 0.4em;\n  border-left: 1px solid #569;\n}\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content.epub article.computation-like {\n  margin-left: 1px;\n}\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.openproblem-like::after,\n.ptx-content article.openproblems-like::after,\n.ptx-content article.computation-like::after {\n  content: \"\";\n  border-bottom: 1px solid #569;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.5em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content article.project-like {\n  border-left: 1px dotted #569;\n}\n.ptx-content article.project-like::after {\n  border-bottom: 1px dotted #569;\n}\n.ptx-content article.commentary {\n  padding-left: 0.6em;\n  border-left: 3px solid #c33;\n}\n.ptx-content article.commentary::after {\n  content: \"\";\n  border-bottom: 3px solid #c33;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.6em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content .assemblage-like {\n  border: solid 2px #1100AA;\n  border-radius: 12px;\n  padding: 10px;\n  background-color: #f4f4fe;\n}\n.ptx-content .assemblage-like .heading {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like + .sidebyside {\n  margin-top: 1.25em;\n}\n.ptx-content section article.assemblage-like .heading + .para {\n  display: block;\n}\n.ptx-content .goal-like {\n  border: solid 3px #999999;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n.ptx-content .goal-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 5px;\n  font-style: italic;\n  font-size: 120%;\n}\n.ptx-content .goal-like > .heading .codenumber {\n  display: none;\n}\n.ptx-content .goal-like > .heading::after {\n  display: none;\n}\n.ptx-content .aside-like {\n  position: absolute;\n  margin-left: 45%;\n  overflow-x: hidden;\n  max-width: 495px;\n  max-height: 7em;\n  overflow-y: hidden;\n  border: none;\n  padding: 4px 10px 0 10px;\n  color: #888;\n  z-index: 100;\n}\n.ptx-content .example-like .aside-like {\n  margin-top: 0;\n  position: absolute;\n}\n.ptx-content .aside-like {\n  font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1em 0.2em #fff inset;\n}\n.ptx-content .aside-like .para {\n  overflow-x: auto;\n}\n.ptx-content .aside-like:first-child {\n  margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0em;\n  bottom: 0;\n  left: 0;\n  pointer-events: none;\n  background-image:\n    linear-gradient(\n      to bottom,\n      rgba(255, 255, 255, 0.4),\n      rgba(255, 255, 255, 1) 90%);\n  width: 550px;\n  height: 8em;\n}\n.ptx-content .aside-like.front,\n.ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after,\n.ptx-content .example-like .aside-like.front:after {\n  background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n  margin-top: 1.25em;\n}\n.ptx-content .aside-like.front + p {\n  margin-top: 1.25em !important;\n  padding-top: 0;\n}\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n.ptx-content article.aside-like > p:first-child {\n  margin-top: 0;\n}\n.ptx-content .aside-like > .heading {\n  font-size: 95%;\n}\n.ptx-content .aside-like + * {\n  margin-top: 3em;\n  margin-right: 3em;\n}\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n    margin-right: 0;\n  }\n}\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like,\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    position: absolute;\n    margin-top: -2em;\n    margin-left: 660px;\n    max-width: 200px;\n    width: 200px;\n    color: inherit;\n  }\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like.front {\n    max-height: none;\n    max-width: 223px;\n    border: 2px solid #dcebfa;\n  }\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    margin-left: 654px;\n  }\n  .ptx-content .aside-like + * {\n    margin-top: 1.25em;\n    margin-right: 0;\n  }\n  .ptx-content .aside-like + .solutions,\n  .ptx-content .aside-like + .instructions {\n    margin-top: 0;\n  }\n  .ptx-content .aside-like.front:after,\n  .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n  }\n}\n.ptx-content .aside-like:hover:after,\n.ptx-content .aside-like:focus:after {\n  top: 3em;\n  height: auto;\n  background-image: none;\n}\n.ptx-content .aside-like:hover,\n.ptx-content .aside-like:focus {\n  color: inherit;\n  padding: 2px 8px 0 8px;\n  border: 2px solid #dcebfa;\n  height: auto;\n  max-height: none;\n}\n.ptx-content .aside-like.front:hover,\n.ptx-content .aside-like.front:focus {\n  padding: 4px 10px;\n}\n.ptx-content section dl dd .aside-like {\n  margin-top: 0 !important;\n  margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n  margin-left: -300px !important;\n}\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n  }\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n  }\n}\n.searchbox .searchresultsplaceholder {\n  background: #eaf0f6;\n}\n:root[data-legacy-colorscheme=blue_green] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82;\n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=blue_grey] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red_dark] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n    background: #444;\n    color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n    background: #333;\n  }\n  .ptx-navbar .button {\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n  .pretext .ptx-masthead {\n    background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background: var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n:root[data-legacy-colorscheme=bluegreen_grey] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #ddd;\n  --chaptertoctext: var(--bluegreen);\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: var(--bluegreen);\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);\n  --highlighttoc: var(--bluegreen);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=brown_gold] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c;\n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #140a00 --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=darkmartiansands] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #550000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=default] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --parttoc: #234b6a;\n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=focused_gray_aqua] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=focused_light] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=green_blue] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #195827;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=green_plum] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20602f;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=maroon_grey] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #330000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=martiansands] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #6a3418;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=orange_navy] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a;\n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #006deb;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=pastel_blue_orange] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n:root[data-legacy-colorscheme=red_blue] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_amethyst] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #008099;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_emerald] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_turquoise] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n.ptx-masthead .title-container > .heading,\n.ptx-masthead .title-container > .heading a,\n.ptx-masthead .logo-link:empty:hover::before,\n.ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n.ptx-masthead .title-container > .heading a:active,\n.ptx-masthead .logo-link:empty:active::before,\n.ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active {\n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n.ptx-content .para > a.internal {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover,\n.ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus,\n.ptx-content .para > a.internal:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover,\n.ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus,\n.ptx-content .para > a.external:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .playvideo {\n  background-color: var(--videoplay);\n}\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n.ptx-content .assemblage-like {\n  border-color: var(--assemblageborder);\n  background-color: var(--assemblagebackground);\n}\n.ptx-content .knowl-output {\n  border-color: var(--knowlborder);\n  background-color: var(--knowlbackground);\n}\n.pretext[data-atmosphere=pastel],\n.pretext[data-atmosphere=pastel] .ptx-main {\n  background: #dbf5ff;\n  background: #efe;\n}\n.pretext[data-atmosphere=pastel] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=pastel] .ptx-navbar {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-masthead {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-sidebar {\n  background: #ffd;\n}\n.pretext[data-atmosphere=darktwilight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(9, 72%, 30%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n}\n.pretext[data-atmosphere=dark] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(5, 86%, 24%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n}\n.pretext[data-atmosphere=darkmidnight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n.pretext[data-atmosphere*=dark] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page > .ptx-main {\n  background: var(--mainbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .summary-links a {\n  background: var(--documenttitledark);\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar {\n  background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead {\n  background: var(--bannerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer {\n  background: var(--footerbackground);\n  border-top-color: #447;\n  border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .logo {\n  background: #779;\n  border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=dark] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=dark] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .code-inline {\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .kbdkey {\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .goal-like > .heading {\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content a.url,\n.pretext[data-atmosphere*=dark] .ptx-content a.internal,\n.pretext[data-atmosphere*=dark] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n/*! Theme: crc-legacy */\n/*# sourceMappingURL=theme-crc-legacy.css.map */\n"
  },
  {
    "path": "css/dist/theme-default-legacy.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/html/legacy/default/theme-default.scss */\n* {\n  box-sizing: border-box;\n}\nbody.pretext {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\nbody.pretext[data-font=OS] {\n  font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=RS] {\n  font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n}\nbody.pretext {\n  background: #fff;\n}\na {\n  color: inherit;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: transparent;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  background: #BF1722;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n  position: relative;\n}\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n  display: inline;\n}\n.ptx-content pre {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.ptx-content pre {\n  border-radius: 0;\n}\n.ptx-content textarea {\n  padding: 0;\n}\n.ptx-content h1,\n.ptx-content h2,\n.ptx-content h3,\n.ptx-content h4,\n.ptx-content h5,\n.ptx-content h6 {\n  margin: 0;\n  font-size: unset;\n}\n.pretext h1,\n.pretext h2,\n.pretext h3,\n.pretext h4,\n.pretext h5,\n.pretext h6 {\n  margin: 0;\n  font-size: unset;\n}\n.ptx-content .heading {\n  line-height: 1.1;\n}\n.ptx-content .para {\n  margin-top: 1.25em;\n  margin-bottom: 0;\n  line-height: 1.35;\n}\n.ptx-content .para.continuation {\n  margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n  margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n  margin-top: 0.75em;\n}\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .para:first-of-type {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n  margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n  margin-top: 1.75em;\n}\n.ptx-content .para.intertext {\n  margin-top: -0.25em;\n  text-indent: 0;\n}\n.ptx-content .para + table {\n  margin-top: 1em;\n}\n.ptx-content table tr td .para + .para {\n  margin-top: 1em;\n}\n.ptx-content table + .para {\n  margin-top: 1.5em;\n}\n.ptx-content .para + figure.figure-like > table {\n  margin-top: 1em;\n}\n.ptx-content .exercise-like .para + ol {\n  margin-top: 0.5em;\n}\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n  margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n  margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n  margin-left: 1.5em;\n}\n.ptx-content .exercisegroup {\n  padding-top: 1.25em;\n  margin-bottom: 1em;\n}\n.ptx-content section .exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup article.exercise-like .heading {\n  margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n  font-weight: 600;\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n  margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n  margin-top: 1em;\n}\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n  margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n  margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n  margin-top: 1.25em;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n  content: \"\\25a0\\2009\";\n  color: #06a;\n  position: relative;\n  top: -1px;\n  right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n  content: \"\\2003\";\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content section > article,\n.ptx-content section > section.paragraphs,\n.ptx-content .paragraphs > article {\n  margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n  margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n  margin-top: 1em;\n}\n.ptx-content article + .posterior {\n  margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n  margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n  margin-top: 1em;\n}\n.ptx-content section .proof {\n  margin-top: 0.75em;\n}\n.ptx-content section > pre,\n.ptx-content .para + pre {\n  margin-top: 1.25em;\n}\n.ptx-content ol .para + .para,\n.ptx-content ul .para + .para {\n  margin-top: 1em;\n}\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content section .heading,\n.ptx-content article .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n}\n.ptx-content article .exercise-stage {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n.ptx-content article > .heading + .para {\n  margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para,\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n  margin-top: 0.25em;\n}\n.ptx-content section .heading + article {\n  margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content a > .heading {\n  display: inline;\n}\n.ptx-content section > .heading {\n  font-size: 1.75em;\n  line-height: 1.25em;\n  margin-top: 1em;\n  margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n  font-size: 1.5em;\n  line-height: 1.25em;\n  margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .paragraphs .heading + .para {\n  display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n  display: inline;\n}\n.ptx-content .runestone label > .para {\n  display: inline;\n}\n.ptx-content .paragraphs .para .title {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-size: 1.125em;\n  font-weight: 700;\n}\n.ptx-content .paragraphs > .heading {\n  margin-top: 0;\n}\n.ptx-content .paragraphs + .paragraphs {\n  margin-top: 3em;\n}\n.ptx-content article .paragraphs > .heading {\n  font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n  font-size: 1.4em;\n  line-height: 1.15em;\n  margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  .ptx-content section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  .ptx-content section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.ptx-content .abstract {\n  margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .abstract > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n  display: inline;\n}\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like > .heading {\n  font-size: 1em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n  display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n  content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n  display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n  content: \"\\2009\";\n}\n.ptx-content .posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n  padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n  font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n  font-weight: 700;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-bottom: 0;\n}\n.ptx-content li {\n  margin-bottom: 0;\n}\n.ptx-content li .title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.ptx-content article.theorem-like li .title {\n  font-weight: 600;\n  font-style: normal;\n  font-size: 96%;\n}\n.ptx-content figure {\n  margin-bottom: 0;\n}\n.ptx-content .heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.ptx-content .conclusion {\n  margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n  margin-top: 0.5em;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n  margin-top: 0;\n}\n.ptx-content .heading + ol,\n.ptx-content .heading + ul {\n  margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol,\n.ptx-content li > .heading + ul {\n  margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n  margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n  margin-top: 0;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content article .para:first-child {\n  margin-top: 0;\n}\n.ptx-content ol ol,\n.ptx-content ol ul,\n.ptx-content ul ol,\n.ptx-content ul ul {\n  margin-top: 0.5em;\n}\n.ptx-content .frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content .frontmatter > .heading .title,\n.ptx-content .book > .heading .title {\n  font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle,\n.ptx-content .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: #666666;\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.ptx-content .frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n  font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n  font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\nbutton {\n  font: inherit;\n}\n.print-button {\n  position: relative;\n  right: 2px;\n  top: 66px;\n  background-color: LightGreen;\n  z-index: 1;\n  margin-top: -4em;\n  float: right;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n    border: none;\n  }\n  .pretext .ptx-page main.ptx-main {\n    margin-left: 0;\n    left: auto;\n    border: none;\n    box-shadow: none;\n    padding: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content {\n    margin-top: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section {\n    margin-top: 1em;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading {\n    margin-top: 0;\n  }\n  .pretext a[href]::after {\n    content: \"\";\n  }\n  .print-button {\n    display: none;\n  }\n}\n@media print {\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    width: 820px;\n    max-width: 820px;\n    font-size: 12.5px;\n  }\n  body.standalone.worksheet {\n    margin: 0;\n  }\n  body.standalone .ptx-content section.worksheet {\n    border: none;\n  }\n  body.standalone.worksheet .ptx-masthead,\n  body.standalone.worksheet .ptx-page-footer {\n    display: none;\n  }\n  body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-content section.onepage {\n    max-height: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    page-break-after: always;\n    border: none;\n    page-break-inside: avoid;\n  }\n  body.standalone.worksheet .ptx-content .onepage.lastpage {\n    margin-bottom: -2em;\n    page-break-after: auto;\n  }\n  body.standalone.worksheet.a4 .ptx-content .onepage {\n  }\n  body.standalone.worksheet .ptx-content .onepage div.workspace,\n  body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  body.standalone.worksheet a {\n    color: black;\n  }\n  body.standalone.worksheet .ptx-page .ptx-main {\n    padding: 0;\n  }\n  body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n    padding-bottom: 20px;\n  }\n  @page {\n    margin: 0;\n  }\n}\n.hidden {\n  display: none;\n}\n.ptx-navbar .preferences_menu_holder .active > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n  background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n  width: 4em;\n  justify-content: center;\n  text-align: center;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n[data-ruler=greybar] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: #f3f3f3;\n}\n[data-atmosphere*=dark][data-ruler=greybar] .onelineX:hover {\n  color: #333;\n}\n[data-ruler=lightbox] .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=lightbox] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: inherit;\n}\n[data-ruler=sunrise] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 2px solid black;\n  margin-bottom: -2px;\n  position: relative;\n  z-index: 10;\n}\nxxxxxx[data-ruler=sunriseunderline] .onelineX:hover + .onelineX {\n  margin-top: -2px;\n}\n[data-ruler=sunriseunderline] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=underline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  margin-bottom: -1px;\n}\n[data-ruler=lunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  border-left: 1px solid black;\n  padding-left: 4px;\n  margin-left: -5px;\n  margin-bottom: -1px;\n}\n[data-atmosphere*=dark][data-ruler*=underline] .onelineX:hover {\n  border-bottom: 1.5px solid #ddd;\n  margin-bottom: -1.5px;\n}\n[data-atmosphere*=dark][data-ruler=lunderline] .onelineX:hover {\n  border-left: 1.5px solid #ddd;\n  padding-left: 3.5px;\n  margin-left: -5px;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\n.ptx-footnote {\n  display: inline-block;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number {\n  visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: 0.6rem;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote__number {\n  display: inline;\n  cursor: pointer;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowlbackground);\n  border-radius: 6px;\n  padding: 0px 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowlborder);\n}\n.ptx-content section .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n.ptx-content section .para.copyright {\n  margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n  margin-top: 2.5em;\n}\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n  margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.ptx-content .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n}\n.ptx-content .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.ptx-content figcaption {\n  font-weight: normal;\n}\n.ptx-content figcaption {\n  margin-top: 0.6em;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n  font-weight: 700;\n  font-size: inherit;\n}\n.ptx-content figcaption .codenumber:after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption code.code-inline {\n  white-space: pre;\n}\n.ptx-content figure.figure > figcaption {\n  margin-top: 1em;\n}\n.ptx-content figure.listing > figcaption + * {\n  margin-top: 0.5em;\n}\n.ptx-content figcaption + .named-list-content {\n  margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n  margin-top: 0.5em;\n}\n.ptx-content .definition-like .para > .emphasis {\n  font-weight: 700;\n}\n.ptx-content em.alert {\n  font-weight: bold;\n}\n.unprocessed {\n  padding: 8px;\n  background-color: rgb(255, 230, 230);\n}\n.unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(255, 200, 255);\n}\n.unprocessed .unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(205, 205, 255);\n}\n.ptx-content section.introduction + section {\n  margin-top: 2em;\n}\n.ptx-content {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section {\n  display: inline-block;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n  max-width: unset;\n}\n.ptx-content .runestone > .parsons {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone .parsons {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: max-content;\n  padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: 660px;\n}\n.runestonebustmenu {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.runestonebustmenu .dropdown-content {\n  position: absolute;\n  right: 2em;\n  left: unset;\n  top: 1em;\n}\n@media screen and (max-width: 800px) {\n  nav .dropdown .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .activecode-toggle {\n    display: none;\n  }\n}\n.pretext .navbar .dropdown {\n  height: 35px;\n}\n.ptx-content section section + section {\n  margin-top: 3em;\n}\n.ptx-content .sidebyside > .para,\n.ptx-content .sidebyside > figure,\n.ptx-content .sidebyside > img,\n.ptx-content .sidebyside > table,\n.ptx-content .sidebyside > tabular,\n.ptx-content .sidebyside > section,\n.ptx-content .sidebyside > .paragraphs {\n  display: inline-block;\n  margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .sidebyside figcaption {\n  padding-left: 1em;\n  padding-right: 0;\n  padding-bottom: 0;\n  margin: 0.75em 0 0 0;\n}\n.ptx-content figcaption {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .sidebyside > .para {\n  width: 32%;\n  vertical-align: top;\n}\n.ptx-content .sidebyside > .para.left,\n.ptx-content .sidebyside > .para.middle,\n.ptx-content .sidebyside > .para.right {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside > .para + img {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside .sbsrow .sbsheader {\n  margin-top: 0;\n}\n.ptx-content .sbsgroup {\n  width: 100%;\n}\n.ptx-content .sidebyside {\n  width: 100%;\n}\n.ptx-content .sbsrow {\n  display: flex;\n  justify-content: space-between;\n}\n.ptx-content .sbsheader {\n  text-align: center;\n  justify-content: center;\n  font-size: 1em;\n}\n.ptx-content .sbspanel:empty {\n  height: 10em;\n  background-color: rgb(221, 221, 255);\n}\n.ptx-content .sbspanel {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n  justify-content: center;\n}\n.ptx-content .sbspanel.bottom {\n  justify-content: flex-end;\n}\n.ptx-content .sbspanel > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .fixed-width {\n  align-items: center;\n}\n.ptx-content .sbscaption {\n  justify-content: center;\n}\n.ptx-content table {\n  border-spacing: 0;\n}\n.ptx-content table {\n  border-collapse: collapse;\n}\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n  margin-top: 1.5em;\n}\n.ptx-content table tr td,\n.ptx-content table tr th {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.ptx-content table tr td {\n  font-size: 90%;\n}\n.ptx-content table tr td.l {\n  text-align: left;\n}\n.ptx-content table tr td.c {\n  text-align: center;\n}\n.ptx-content table tr td.r {\n  text-align: right;\n}\n.ptx-content table tr td.j {\n  text-align: justify;\n}\n.ptx-content table tr td.lines {\n  white-space: nowrap;\n}\n.ptx-content table tr td.t {\n  vertical-align: top;\n}\n.ptx-content table tr td.b {\n  vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n  vertical-align: middle;\n}\n.ptx-content table tr td.vv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n}\n.ptx-content table tr td.vcv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vcvv {\n  border-left: 2px solid #000;\n  border-right: 4px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vlv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vrv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.rv {\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.vr {\n  border-left: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.lv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vl {\n  border-left: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.cv {\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.Xv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vc {\n  border-left: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.hline {\n  padding: 0;\n}\n.ptx-content table tr td.hlinethick {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.ptx-content table tr td.hline hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 1px solid rgb(0, 0, 0);\n}\n.ptx-content table tr td.hlinethick hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 2px solid rgb(0, 0, 0);\n}\n.center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n  border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n  border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n  border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n  border-bottom: none;\n}\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n  border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n  border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n  border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n  border-top: none;\n}\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n  border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n  border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n  border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n  border-right: none;\n}\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n  border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n  border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n  border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n  border-left: none;\n}\n.ptx-content table tr td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content table.notation-list tr th {\n  text-align: left;\n}\n.ptx-content table.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.ptx-content table.notation-list tr th {\n  margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n  margin-left: 1em;\n}\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content table tr td span.decimal {\n  float: left;\n  text-align: right;\n}\n.ptx-content table tr.header-vertical th {\n  writing-mode: vertical-rl;\n  padding-left: 2em;\n}\n.ptx-content table + article {\n  margin-top: 1em;\n}\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof {\n  margin-top: 0.3em;\n}\n.ptx-content .hidden-knowl-wrapper article {\n  display: inline;\n}\n.apretext-content figure.figure-like {\n  overflow: auto;\n}\n.ptx-content figure.figure-like {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content figure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n  margin-right: 0;\n}\n.ptx-content a > tt {\n  font-size: 110%;\n}\n.ptx-content section .videolink a:link {\n  background-size: 0;\n}\n.ptx-content .playvideo {\n  cursor: pointer;\n}\n.ptx-content .videobig {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 85%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: relative;\n  top: 100px;\n  cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n}\n.ptx-content .knowl .videobig {\n  display: none;\n}\n.ptx-content .videosmall {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 80%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: absolute;\n  left: -250px;\n  z-index: 1001;\n  cursor: zoom-out;\n}\n.ptx-content .exercise-like ol li table {\n  margin-bottom: 0.5em;\n}\n.ptx-content .exercise-like > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content section.worksheet > .heading > .codenumber {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n  display: inline-block;\n  max-width: 70%;\n}\n.ptx-content .heading .print-links {\n  display: inline-block;\n  float: right;\n  vertical-align: top;\n  width: 19%;\n  text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n  display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n  display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n  display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n  background: none;\n  color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n  border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n  padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n  margin: 0;\n}\n.ptx-content .appendix .heading > .type {\n  display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n  display: none;\n}\n.ptx-content .heading .print-links > a {\n  font-family: \"Open Sans\";\n  font-size: 0.6em;\n  font-weight: bold;\n  padding: 0.1em 0.2em;\n  background: #ffa;\n  border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n  background: #eef;\n  color: #9b1c2c;\n  border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n  margin-left: 0.25em;\n}\n.ptx-content .autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 3px;\n  left: -1.9em;\n  font-size: 85%;\n  color: #a00;\n  opacity: 0.05;\n  margin-top: 0.1em;\n}\n.ptx-content li > .para > .autopermalink {\n  left: -3.4em;\n  top: 0;\n}\n.ptx-content .autopermalink a {\n  color: #a00;\n}\n.ptx-content .autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n:target {\n  scroll-margin-top: 45px;\n}\n.ptx-content .para > .autopermalink {\n  margin-top: 0.2em;\n}\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .figure-like > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .subsubsection > .autopermalink {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .autopermalink:hover {\n  opacity: 1;\n  background: #eeddff;\n}\n.ptx-content .permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: #fff;\n  border: 3px solid blue;\n  z-index: 2001;\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: #eeaaff;\n}\n.ptx-content .indexitem {\n  margin-top: 2px;\n}\n.ptx-content .subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .indexknowl {\n  margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl {\n  margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n  margin-left: 2em;\n}\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .indexitem .indexknowl {\n  font-size: 90%;\n}\n.ptx-content .indexitem [data-knowl],\n.ptx-content .subindexitem [data-knowl],\n.ptx-content .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover,\n.ptx-content .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.ptx-content .subindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .indexletter {\n  margin-top: 1.5em;\n}\n.ptx-content .hidden-knowl-wrapper .heading {\n  display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n  display: inline;\n}\n.ptx-content .cols2 .knowl-output,\n.ptx-content .cols3 .knowl-output,\n.ptx-content .cols4 .knowl-output,\n.ptx-content .cols5 .knowl-output,\n.ptx-content .cols5 .knowl-output {\n  width: 100%;\n}\n.ptx-content .cols2 + *,\n.ptx-content .cols3 + *,\n.ptx-content .cols4 + *,\n.ptx-content .cols5 + *,\n.ptx-content .cols6 + * {\n  clear: both;\n}\n.ptx-content .cols2::after,\n.ptx-content .cols3::after,\n.ptx-content .cols4::after,\n.ptx-content .cols5::after,\n.ptx-content .cols6::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n  margin-bottom: 1.5em;\n}\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n  padding-bottom: 0em;\n}\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n  clear: left;\n}\n.ptx-content .exercise-like ol.cols2 li {\n  margin-top: 0.5em;\n}\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n  float: left;\n}\n.ptx-content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.ptx-content .emphasis {\n  font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n  font-weight: bold;\n}\n:target {\n  animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n@-moz-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n.ptx-content .autoterm [knowl],\n.ptx-content .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.ptx-content .autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.ptx-content ol li.custom-list-style-type {\n  list-style-type: none;\n}\n.ptx-content ol li.custom-list-style-type:before {\n  content: attr(label) \"\\a0\\a0\";\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n  list-style-type: none;\n}\n.ptx-content ol.decimal {\n  list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n  list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n  list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n  list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n  list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n  list-style-type: disc;\n}\n.ptx-content ul.square {\n  list-style-type: square;\n}\n.ptx-content ul.circle {\n  list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n  list-style-type: none;\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n  clear: both;\n}\n.ptx-content dl {\n  margin-top: 1em;\n  margin-left: 0;\n  margin-bottom: 0;\n  overflow: hidden;\n}\n.ptx-content dl dd {\n  margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n  margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n  margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n  margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n  margin-top: 0;\n}\n.ptx-content dl dd .para {\n  margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child,\n.ptx-content dl dd > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content dl > dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: left;\n  text-align: right;\n  width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n  text-align: left;\n}\n.ptx-content dl.glossary dd {\n  margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n  margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n  clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n  content: \"\";\n  display: block;\n  height: 1em;\n  clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n  height: 0;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: both;\n  margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n  width: unset;\n  max-width: 55ex;\n  text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 0;\n  margin-top: 0;\n  width: 31em;\n  max-width: calc(100% - 12ex);\n  float: right;\n  clear: right;\n}\n.ptx-content dl.description-list + * {\n  clear: both;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.ptx-content dl.description-list dl dt {\n  width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n  margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n  margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n  width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n  display: inline;\n}\na.mjx-svg-href {\n  fill: inherit;\n  stroke: inherit;\n}\n.displaymath + .para {\n  margin-top: 0;\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n    position: relative;\n    overflow-x: auto;\n  }\n  .ptx-content .mjx-chtml.MJXc-display {\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n.ptx-content dd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n.floatnav a {\n  padding-left: 3px;\n  margin-right: -1px;\n  color: inherit;\n}\n.ptx-content a .heading .mjx-chtml {\n  z-index: 1;\n  background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after,\n.ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after,\n.ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n.floatnav a:hover {\n  background: #eeaaff;\n}\n.ptx-content .unselectable {\n  user-select: none;\n}\n.ptx-content .latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.ptx-content .latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.ptx-content .fillin {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n  display: inline-block;\n  border: none;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n  outline: 1px solid black;\n  height: 1.3em;\n}\n.ptx-content .fillin.shade {\n  display: inline-block;\n  border: none;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n  background-color: #eee;\n  height: 1.3em;\n}\n.ptx-content .hiddenproof > a > .heading {\n  font-style: italic;\n  font-weight: normal;\n}\n.ptx-content .MJXc-display,\n.ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n  background-image:\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0));\n  background-position:\n    left center,\n    right center,\n    left center,\n    right center;\n  background-repeat: no-repeat;\n  background-color: inherit;\n  background-size:\n    20px 100%,\n    20px 100%,\n    10px 100%,\n    10px 100%;\n  background-attachment:\n    local,\n    local,\n    scroll,\n    scroll;\n}\n.ptx-content .runestone .code-box {\n  background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground));\n}\n.ptx-content .knowl-output.original .MJXc-display {\n  background: inherit;\n}\n.ptx-content .assemblage-like .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground));\n}\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0));\n}\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n  padding-top: 0.25em;\n}\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 1.5em;\n}\n.ptx-content .exercise-like .introduction {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n  content: \"\";\n  display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n  content: \"\";\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols3,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols4,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols5,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n  width: 100%;\n  display: inline-flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-items: flex-start;\n  align-content: flex-start;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n  display: inline;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n.ptx-content .exercisegroup .cols1 > article.exercise-like {\n  flex-basis: calc(100% - 2em);\n}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {\n  flex-basis: calc(50% - 2em);\n}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {\n  flex-basis: calc(33.33% - 2em);\n}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {\n  flex-basis: calc(25% - 2em);\n}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {\n  flex-basis: calc(20% - 2em);\n}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {\n  flex-basis: calc(16.66% - 2em);\n}\n.ptx-content .mathword {\n  white-space: nowrap;\n}\n.ptx-content .unit,\n.ptx-content .quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n  word-spacing: normal;\n}\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n  overflow-x: auto;\n}\n.ptx-content .code-inline {\n  font-size: 1em;\n  white-space: pre;\n  color: inherit;\n  background: #eeeeee;\n  border: 1px solid #dddddd;\n  padding: 0.0625em 0.25em;\n  margin-left: 0.2em;\n  margin-right: 0.2em;\n  border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n  margin-left: 0;\n}\n.ptx-content .title .code-inline {\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content a .code-inline {\n  background: #f6f6f6;\n}\n.ptx-content .kbdkey {\n  background: #f1f1f1;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.ptx-content .kbdkey {\n  color: #333;\n}\n.ptx-content .sagecell_sessionOutput pre {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n  margin: 0;\n}\n.ptx-content .sagecell_evalButton {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.ptx-content .booktitle {\n  font-style: oblique;\n}\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n  font-size: 1.25em;\n}\n.ptx-content a .heading {\n  white-space: normal;\n}\n.ptx-content .solutions > a,\n.ptx-content .solutions > a:hover,\n.ptx-content .solutions > a.active,\n.ptx-content .instructions > a,\n.ptx-content .instructions > a:hover,\n.ptx-content .instructions > a.active {\n  display: inline-block;\n  margin-right: 1.5em;\n}\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n  content: \"\\25ba\";\n  font-size: 70%;\n  color: #06a;\n  position: relative;\n  top: -2px;\n  right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n  content: \"\\25bc\";\n  animation-name: solutiontriangle;\n  animation-duration: 3s;\n  animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n  left: 12px;\n}\n@keyframes solutiontriangle {\n  from {\n    content: \"\\25ba\";\n  }\n  to {\n    content: \"\\25bc\";\n  }\n}\n.ptx-content section.solutions {\n  font-size: 90%;\n  padding-left: 1em;\n  border-left: 1em solid #eeeeee;\n}\n.ptx-content.ptx-content > section.solutions:first-child {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n  margin-top: 1em;\n  padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n  font-size: 100%;\n  font-weight: 700;\n  margin-right: 0.25em;\n  display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n  display: inline;\n}\n.ptx-content article > figure:first-child {\n  margin-top: 0;\n}\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n  padding-top: 1em;\n}\n.ptx-content img {\n  display: inline-block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img.cs {\n  display: block;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img:not(.cs) {\n  max-width: 650px;\n}\n.ptx-content .tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img + img {\n  margin-top: 30px;\n}\n.ptx-content div.center img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content div.center + div.center > img {\n  margin-top: 60px;\n}\n.ptx-content div.center > img + img {\n  margin-top: 60px;\n}\n.ptx-content figure table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure.wrap img {\n  width: 250px;\n}\n.ptx-content figure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n  float: right;\n  margin: 0;\n}\n.ptx-content figure figcaption.wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure,\n.ptx-content .image-box {\n  margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n  margin-top: 1em;\n}\n.ptx-content figure .image-box {\n  margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n  margin-top: 0;\n}\n.ptx-content .image-box img,\n.ptx-content img.contained,\n.ptx-content .sbspanel img {\n  width: 100%;\n  height: auto;\n}\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n  cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n  max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n  position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n  margin-top: 0.75em;\n}\n.ptx-content .audio {\n  width: 100%;\n}\n.caption .heading {\n  font-weight: bold;\n}\n.caption .counter {\n  font-weight: bold;\n}\n.ptx-content div.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.minipage + .minipage {\n  display: inline-block;\n}\n.ptx-content code.inline {\n  background: none;\n  border: none;\n}\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n  line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n  margin-top: 1em;\n}\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n.ptx-content pre[data-line].program,\n.ptx-content pre[data-line].code-block {\n  padding-left: 2.5em;\n}\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n  margin-left: -5em;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  padding-left: 3.5em;\n  overflow: visible;\n}\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n  margin-left: -7em;\n}\n.ptx-content pre[data-line].line-numbers code {\n  padding-top: 0em;\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n  margin-top: 0em;\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n  margin-top: 0.6em;\n}\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n  content: \"\";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n.ptx-content .objectives {\n  margin-bottom: 1.25em;\n}\n.ptx-content ol > li {\n  padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li,\n.ptx-content ul.cols2 > li {\n  width: calc(49% - 1.75em);\n  min-width: 190px;\n}\n.ptx-content ol.cols3 > li,\n.ptx-content ul.cols3 > li {\n  width: calc(33% - 1.25em);\n  min-width: 160px;\n}\n.ptx-content ol.cols4 > li,\n.ptx-content ul.cols4 > li {\n  width: calc(24.5% - 1.25em);\n  min-width: 100px;\n}\n.ptx-content ol.cols5 > li,\n.ptx-content ul.cols5 > li {\n  width: calc(19.5% - 0.75em);\n  min-width: 90px;\n}\n.ptx-content ol.cols6 > li,\n.ptx-content ul.cols6 > li {\n  width: calc(16.3% - 0.5em);\n  min-width: 80px;\n}\n.ptx-content ul.cols2 > li:nth-child(odd),\n.ptx-content ol.cols2 > li:nth-child(odd) {\n  margin-right: 2em;\n}\n.ptx-content .cols2 ol,\n.ptx-content .cols3 ol,\n.ptx-content .cols4 ol,\n.ptx-content .cols5 ol,\n.ptx-content .cols6 ol {\n  padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n  margin-top: 1em;\n}\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n  float: none !important;\n  padding-top: 0.5em;\n}\n.ptx-content .solution ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .solution ol li > .para:first-child,\n.ptx-content .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n.ptx-content .exercise-like ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .exercise-like > .cols2 > li {\n  width: calc(49% - 2.5em);\n}\n.ptx-content .exercise-like > .cols3 > li {\n  width: calc(33% - 2.5em);\n}\n.ptx-content .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2.5em);\n}\n.ptx-content .knowl .exercise-like > .cols2 > li {\n  width: calc(49% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols3 > li {\n  width: calc(33% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2em);\n}\n.ptx-content .exercise-like ol li > .para:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .contributor .contributor-name {\n  font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.ptx-content .contributor {\n  margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n  margin-top: 1.5ex;\n}\n.ptx-content .contributor + .para {\n  margin-top: 3ex;\n}\n.ptx-content .frontmatter .contributors,\n.ptx-content .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.searchwrapper .gsc-control-cse {\n  padding: 0;\n  border: none;\n  width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n.searchwrapper input.gsc-search-button-v2 {\n  padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n  padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n  padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n  height: 3ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  font-size: 12px;\n}\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {\n  color: #090;\n}\n.ptx-content .image-archive {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-top: 0.75em;\n  padding-bottom: 0.25em;\n  text-align: center;\n}\n.ptx-content .image-archive > a {\n  display: inline-block;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n  font-family: monospace;\n}\n.ptx-content iframe {\n  margin: 0;\n  border: none;\n  box-sizing: border-box;\n}\n.ptx-content .times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.ptx-content article.notranslate {\n  margin-top: 0;\n}\n.ptx-content article.exercise-like > .exercise-like {\n  margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content article.example-like > .heading + .introduction {\n  display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content .taxon {\n  font-style: italic;\n}\n.ptx-content .sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n  padding-bottom: 5px;\n  padding-left: 6px;\n}\n.ptx-content .hidden-content,\n.pretext .hidden-content {\n  display: none;\n}\n.ptx-content hr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n.ptx-content hr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n  display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n  margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n  margin-top: 0;\n}\n.ptx-content meta {\n  display: none;\n}\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:hover .codenumber,\n.ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n.ptx-content .summary-links {\n  margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n  margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n}\n.ptx-content .summary-links li {\n  margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a,\n.ptx-content .summary-links a:link,\n.ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n  margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n  display: none;\n}\nbody.standalone .ptx-content .worksheet {\n  padding: 40px 0 45px 0;\n  border: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage {\n  padding: 40px 45px 45px 55px;\n  border-bottom: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  border-top: 2px solid grey;\n}\nbody.standalone .ptx-content .onepage.firstpage {\n  padding-top: 0;\n}\nbody.standalone .ptx-content .onepage.lastpage {\n  padding-bottom: 0;\n  border-bottom: none;\n}\nbody.standalone .ptx-content .worksheet > *:last-child {\n  padding-bottom: 0 !important;\n}\n.ptx-content .onepage + .onepage {\n  margin-top: 2.5em;\n  padding-top: 1.5em;\n  border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n  content: \"pagebreak\";\n  text-align: center;\n  margin-left: 40%;\n  padding-left: 1em;\n  padding-right: 1em;\n  position: absolute;\n  top: -0.8em;\n  font-size: 80%;\n  font-style: italic;\n  background: white;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n  content: none;\n}\nbody.standalone .ptx-content .onepage article {\n  padding-left: 0;\n  border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n  all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n  margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n  margin-top: 1.25em;\n}\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  padding-left: 1.25em;\n  border-left: 1px solid grey;\n  margin-left: -1.25em;\n  z-index: -100;\n}\nbody.standalone.worksheet .ptx-content section article.task {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n  font-weight: normal;\n}\nbody.standalone .autopermalink {\n  display: none;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n  border: 2px dotted grey;\n  background: #f3fff3;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n  border: 2px dotted grey;\n  background: #ffe;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n  border: 15px solid;\n  border-image:\n    repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px) 20;\n  background: yellow;\n}\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like {\n  border: none;\n  padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n  margin-top: -0.5em;\n  padding: 0;\n  margin: 0;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n  margin-left: 55px;\n  margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n  display: inline;\n}\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n.ptx-content a.url,\n.ptx-content a.external {\n  color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n  background: #ffd;\n}\n.ptx-content .poem {\n  margin-top: 1.5em;\n}\n.ptx-content .poem {\n  display: table;\n  margin-top: 1.5em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  width: auto;\n  max-width: 90%;\n}\n.ptx-content .poem > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n  content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.ptx-content .poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n  text-align: left;\n}\n.ptx-content .poem .author.center {\n  text-align: center;\n}\n.ptx-content .poem .author.right {\n  text-align: right;\n}\n.ptx-content .poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n  text-align: center;\n}\n.ptx-content .poem .line.right {\n  text-align: right;\n}\n.ptx-content .poem .tab {\n  margin-left: 2em;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\n.toolBPanel {\n  overflow: hidden !important;\n}\n.toolBPanel:hover {\n  overflow: auto !important;\n}\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n.ptx-content .marginresource {\n  position: relative;\n  height: 0;\n  left: 40em;\n  top: 1em;\n}\n.ptx-content .marginresource a {\n  color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n  border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n  font-size: 200%;\n  margin-right: 1em;\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n  display: block;\n  margin-left: 2em;\n}\n.collectedworks .knowl-output {\n  border: 12px solid #D6E3FF;\n  background: none repeat scroll 0% 0% #FAFCFF;\n  border-radius: 4px;\n  margin-bottom: 1.25em;\n}\n.collectedworks .subjectwork {\n  max-width: 750px;\n}\n.collectedworks .bib {\n  margin-bottom: 1em;\n}\n.collectedworks .bibitem + .bibentry {\n  display: inline;\n}\n.collectedworks .bibitem {\n  display: inline;\n  font-weight: bold;\n  margin-right: 1em;\n}\n.collectedworks .work .title a {\n  text-decoration: none;\n  color: #009;\n}\n.iconlegend {\n  position: absolute;\n  margin-top: 0.5em;\n  top: 0;\n  left: 920px;\n  line-height: 1;\n}\n.iconlegend .icon_name {\n  font-size: 90%;\n  margin-right: 1em;\n}\n.icongroup + .icongroup {\n  margin-left: 1em;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\n.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.ptx-content .webwork-button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n  cursor: pointer;\n  background-color: #a0a0a0;\n  border: 1px solid #999;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.ptx-content .exercise-wrapper form button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  color: black;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n  width: 22px;\n  height: 22px;\n  background-image: url(https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico);\n  background-size: contain;\n  position: absolute;\n  right: -35px;\n}\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n  margin-top: 0.5em;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-content .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.ptx-content .cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n@media screen and (max-width: 600px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.3em;\n}\n.APEXlogo .E {\n  position: relative;\n  top: 0.33em;\n}\n.runestone-profile .dropdown-content {\n  position: absolute;\n  display: none;\n  right: 0;\n  top: 35px;\n  text-align: left;\n  border: 1px solid;\n  border-color: #600;\n  border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n  background-color: #ddd;\n  overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n  display: block;\n}\n.runestone-profile .dropdown-content {\n  background-color: white;\n  z-index: 1800;\n  min-width: 100px;\n  padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: #662211;\n  padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n  background-color: #671d12;\n  color: #ffffff;\n  text-decoration: none;\n  background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n  margin-bottom: 4px;\n  margin-top: 4px;\n  border-color: #600;\n  border-color: var(--sectiontoctext);\n}\n.searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox {\n}\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n.searchbutton .name {\n  display: none;\n}\n.searchwidget {\n  text-align: right;\n}\n.searchwidget input {\n}\n.helpbox {\n  display: none;\n}\n.detailed_result {\n  margin-bottom: 10px;\n}\n.all_results a:link {\n  text-decoration: none;\n  font-size: large;\n}\n.all_results a:hover {\n  background-color: lightgray;\n}\n.searchresults a:hover {\n  background-color: #eee;\n}\n.searchresults a {\n  text-decoration: none;\n  color: #222;\n}\n.searchresults a:hover {\n  text-decoration: underline;\n  color: #33f;\n}\n.searchresults ul li {\n  list-style-type: none;\n}\nol.searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n}\nol.searchresults > li {\n  list-style-type: none;\n}\n.search-result-score {\n  display: none;\n}\n.high_result {\n  font-weight: 700;\n}\n.medium_result {\n  font-weight: 500;\n}\n.low_result {\n  font-weight: 200;\n}\n.no_result {\n  font-weight: 200;\n  color: #444;\n}\n.detailed_result .no_result {\n  font-size: 90%;\n}\n.searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  left: 152px;\n  width: 600px;\n  padding: 1em;\n  border: 0.2em solid #009;\n  background: aliceblue;\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.search-results-heading {\n  border-bottom: 1px solid rgba(0, 0, 125, 0.5);\n}\n.search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n}\n.closesearchresults {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border: 1px solid black;\n}\n.closesearchresults:hover {\n  color: #c00;\n  background-color: #fee;\n  border-color: #f00;\n}\n.closesearchresults + h2 {\n  margin-top: -1em;\n}\n.searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.search-result-bullet {\n  margin-top: 0.3em;\n}\n.search-result-clip {\n  font-size: 80%;\n  font-style: italic;\n  color: #444;\n  padding-left: 15px;\n}\n.search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n  background: rgba(255, 255, 0, 0.5);\n}\n@media screen and (max-width: 800px) {\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n  position: relative;\n}\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n  height: 36px;\n}\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n}\n.ptx-content {\n  min-height: 60vh;\n}\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 36px;\n  left: 0;\n  float: left;\n  width: 240px;\n}\n.pretext .ptx-toc {\n  position: sticky;\n  top: 50px;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  height: calc(100vh - 60px);\n}\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin-left: 0;\n}\n.pretext .ptx-page > .ptx-main.notoc {\n  margin-left: 0;\n  transition-property: margin-left;\n  transition-duration: 0.3s;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n  .pretext .ptx-page-footer {\n    margin-bottom: 38px;\n  }\n}\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    margin: 28px;\n  }\n}\n.ptx-content.serif .para .para,\n.ptx-content[data-font=RS] .para .para {\n  font-size: 100%;\n}\n.ptx-content[data-font=RS] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  justify-content: space-around;\n  max-width: 600px;\n  margin-left: 32px;\n}\n.pretext .ptx-content-footer .button {\n  min-width: 80px;\n  height: 35px;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0 10px;\n  display: flex;\n  gap: 10px;\n  align-items: center;\n  justify-content: center;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.pretext .ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n  background: #f4f4f4;\n  margin-top: 2em;\n  padding-top: 0;\n  max-width: 900px;\n  border-top: 2px solid var(--sectiontoctext);\n  border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  position: relative;\n}\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n  }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n}\n.ptx-masthead .ptx-banner {\n  border-bottom: 1px solid #d4d4d4;\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding-top: 0.625em;\n  padding-bottom: 1.125em;\n  border-bottom: none;\n}\n.ptx-masthead {\n  max-width: 904px;\n  border-right: 1px solid #bababa;\n}\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    margin-top: 0.625em;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  margin: 0;\n  font-size: 2em;\n  line-height: 1.25em;\n  color: #932919;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n.ptx-masthead .title-container > .heading a {\n  color: #932919;\n  background: none;\n  text-decoration: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    display: block;\n    font-size: 1.16667em;\n    line-height: 1.42857em;\n    color: #595959;\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .logo-link {\n  position: relative;\n  float: left;\n  font-size: 50px;\n  margin-top: 0.1em;\n  margin-left: 9.68px;\n  text-align: center;\n  line-height: 1;\n}\n.ptx-masthead .logo-link img {\n  width: auto;\n  height: auto;\n  max-height: 1em;\n}\n.ptx-masthead .logo-link:empty:before {\n  font-family: \"Open Sans\";\n  font-size: 1em;\n  content: \"\\2211\";\n  line-height: 1;\n  width: 1em;\n  display: inline-block;\n  vertical-align: top;\n  text-align: center;\n  color: #ccc;\n}\n.ptx-masthead .logo-link:empty:hover:before {\n  color: #932919;\n}\n.ptx-masthead .logo-link:empty:active:before {\n  color: #3572a0;\n}\n.ptx-masthead .logo-link {\n  background: transparent;\n  border: none;\n  text-decoration: none;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .logo-link {\n    display: block;\n    float: none;\n    margin: 0;\n    font-size: 50px;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-weight: normal;\n  margin: 0;\n  font-size: 1.3125em;\n  line-height: 1.42857em;\n  min-height: inherit;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:hover,\n.ptx-masthead .byline a:focus {\n  color: #932919;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\nnav.ptx-navbar {\n  background: #ededed;\n  border: 0;\n  border-top: 1px solid #bababa;\n  border-bottom: 1px solid #bababa;\n  margin: 0;\n  z-index: 100;\n  font-family: \"Open Sans\";\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.ptx-navbar .button {\n  font-size: 1em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: #333333;\n  background-color: #ededed;\n  border: 0;\n  border-right: 1px solid #bababa;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n.ptx-navbar .button:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n}\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  color: #333333;\n  background: #ededed;\n  box-shadow: none;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n}\n.ptx-navbar .button .icon {\n  font-size: 1.5em;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) > *:first-child {\n  border-left: 1px solid #bababa;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button, .calculator-toggle) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  width: 70px;\n}\n.ptx-navbar .calculator-toggle {\n  width: 60px;\n  min-height: 32px;\n  text-align: center;\n  border-radius: 20px;\n  margin-left: 5px;\n  border: 2px solid #66f;\n  line-height: 25px;\n  margin-top: 1px;\n  background-color: #eef;\n}\n.ptx-navbar .calculator-toggle.open {\n  background: #fee;\n  border: 2px solid #f66;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: #ededed;\n    box-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar :is(.treebuttons) > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n  .ptx-navbar .nav-runestone-controls > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar .calculator-toggle {\n    width: auto;\n    height: 35px;\n    border-radius: 0;\n    margin-left: 0;\n    border: 0;\n    border-right: 1px solid #bababa;\n    line-height: inherit;\n    margin-top: 0;\n    background-color: inherit;\n  }\n}\n.ptx-toc {\n  width: 240px;\n  margin: 0;\n  font-size: 14.72px;\n  overflow-y: auto;\n  overflow-x: hidden;\n}\n.ptx-toc::after {\n  content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n  display: block;\n  height: 13em;\n  padding: 2em 1em;\n  background: #fff;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 8px solid #999;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0px;\n  padding: 0px;\n  list-style-type: none;\n}\n.ptx-toc .toc-item {\n  border-top: 1px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-weight: normal;\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  border-top: 2px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-item.active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-title-box .title {\n  flex-grow: 1;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc ul.structural ul.structural .title:empty::after {\n  content: \"empty heading!\";\n  font-weight: bold;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n  display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n  display: block;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n  display: none;\n}\n.ptx-toc.focused > ul.structural > li:not(:first-child) {\n  margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n  border: 0;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 30px;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--highlighttoc);\n  color: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n:root {\n  --parttoc: var(--chaptertoc);\n  --parttoctext: var(--chaptertoctext);\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: var(--chaptertoctextactive);\n}\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n  :root {\n    --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n  }\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowlLinkColor);\n  border-bottom: 1px dotted var(--knowlLinkColor);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--linkbackground);\n  border-bottom-color: transparent;\n}\n.knowl__content {\n  margin: 0.2em;\n  border: 6px solid var(--knowlborder);\n  border-radius: 0.4em;\n  padding: 0.8em;\n  background-color: var(--knowlbackground);\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n  content: \"\" !important;\n  border-bottom: none;\n  margin: 0;\n  padding: 0;\n  width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n  padding-right: 0;\n  border-right: none;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested4Background);\n}\n.ptx-content .knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .proof {\n  border-right: 1px solid #666;\n  padding-right: 0.625em;\n  margin-right: -0.725em;\n}\n.ptx-content .proof:after {\n  content: \"\";\n  border-bottom: 1px solid #666;\n  display: block;\n  margin-left: auto;\n  margin-right: -0.625em;\n  width: 1.5em;\n  padding-bottom: 0.25em;\n}\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n.ptx-content .proof .proof {\n  margin-right: -0.2em;\n  border-right: 1.5px solid #ddd;\n}\n.ptx-content .proof .proof:after {\n  border-bottom: 1.5px solid #ddd;\n  width: 1em;\n}\n.ptx-content article.theorem-like,\n.ptx-content article.definition-like,\n.ptx-content article.example-like,\n.ptx-content article.project-like,\n.ptx-content article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content article.computation-like {\n  padding-left: 0.4em;\n  border-left: 1px solid #569;\n}\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content.epub article.computation-like {\n  margin-left: 1px;\n}\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.openproblem-like::after,\n.ptx-content article.openproblems-like::after,\n.ptx-content article.computation-like::after {\n  content: \"\";\n  border-bottom: 1px solid #569;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.5em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content article.project-like {\n  border-left: 1px dotted #569;\n}\n.ptx-content article.project-like::after {\n  border-bottom: 1px dotted #569;\n}\n.ptx-content article.commentary {\n  padding-left: 0.6em;\n  border-left: 3px solid #c33;\n}\n.ptx-content article.commentary::after {\n  content: \"\";\n  border-bottom: 3px solid #c33;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.6em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content .assemblage-like {\n  border: solid 2px #1100AA;\n  border-radius: 12px;\n  padding: 10px;\n  background-color: #f4f4fe;\n}\n.ptx-content .assemblage-like .heading {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like + .sidebyside {\n  margin-top: 1.25em;\n}\n.ptx-content section article.assemblage-like .heading + .para {\n  display: block;\n}\n.ptx-content .goal-like {\n  border: solid 3px #999999;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n.ptx-content .goal-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 5px;\n  font-style: italic;\n  font-size: 120%;\n}\n.ptx-content .goal-like > .heading .codenumber {\n  display: none;\n}\n.ptx-content .goal-like > .heading::after {\n  display: none;\n}\n.ptx-content .aside-like {\n  position: absolute;\n  margin-left: 45%;\n  overflow-x: hidden;\n  max-width: 495px;\n  max-height: 7em;\n  overflow-y: hidden;\n  border: none;\n  padding: 4px 10px 0 10px;\n  color: #888;\n  z-index: 100;\n}\n.ptx-content .example-like .aside-like {\n  margin-top: 0;\n  position: absolute;\n}\n.ptx-content .aside-like {\n  font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1em 0.2em #fff inset;\n}\n.ptx-content .aside-like .para {\n  overflow-x: auto;\n}\n.ptx-content .aside-like:first-child {\n  margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0em;\n  bottom: 0;\n  left: 0;\n  pointer-events: none;\n  background-image:\n    linear-gradient(\n      to bottom,\n      rgba(255, 255, 255, 0.4),\n      rgba(255, 255, 255, 1) 90%);\n  width: 550px;\n  height: 8em;\n}\n.ptx-content .aside-like.front,\n.ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after,\n.ptx-content .example-like .aside-like.front:after {\n  background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n  margin-top: 1.25em;\n}\n.ptx-content .aside-like.front + p {\n  margin-top: 1.25em !important;\n  padding-top: 0;\n}\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n.ptx-content article.aside-like > p:first-child {\n  margin-top: 0;\n}\n.ptx-content .aside-like > .heading {\n  font-size: 95%;\n}\n.ptx-content .aside-like + * {\n  margin-top: 3em;\n  margin-right: 3em;\n}\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n    margin-right: 0;\n  }\n}\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like,\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    position: absolute;\n    margin-top: -2em;\n    margin-left: 660px;\n    max-width: 200px;\n    width: 200px;\n    color: inherit;\n  }\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like.front {\n    max-height: none;\n    max-width: 223px;\n    border: 2px solid #dcebfa;\n  }\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    margin-left: 654px;\n  }\n  .ptx-content .aside-like + * {\n    margin-top: 1.25em;\n    margin-right: 0;\n  }\n  .ptx-content .aside-like + .solutions,\n  .ptx-content .aside-like + .instructions {\n    margin-top: 0;\n  }\n  .ptx-content .aside-like.front:after,\n  .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n  }\n}\n.ptx-content .aside-like:hover:after,\n.ptx-content .aside-like:focus:after {\n  top: 3em;\n  height: auto;\n  background-image: none;\n}\n.ptx-content .aside-like:hover,\n.ptx-content .aside-like:focus {\n  color: inherit;\n  padding: 2px 8px 0 8px;\n  border: 2px solid #dcebfa;\n  height: auto;\n  max-height: none;\n}\n.ptx-content .aside-like.front:hover,\n.ptx-content .aside-like.front:focus {\n  padding: 4px 10px;\n}\n.ptx-content section dl dd .aside-like {\n  margin-top: 0 !important;\n  margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n  margin-left: -300px !important;\n}\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n  }\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n  }\n}\n.searchbox .searchresultsplaceholder {\n  background: #eaf0f6;\n}\n:root[data-legacy-colorscheme=blue_green] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82;\n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=blue_grey] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red_dark] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n    background: #444;\n    color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n    background: #333;\n  }\n  .ptx-navbar .button {\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n  .pretext .ptx-masthead {\n    background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background: var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n:root[data-legacy-colorscheme=bluegreen_grey] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #ddd;\n  --chaptertoctext: var(--bluegreen);\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: var(--bluegreen);\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);\n  --highlighttoc: var(--bluegreen);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=brown_gold] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c;\n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #140a00 --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=darkmartiansands] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #550000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=default] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --parttoc: #234b6a;\n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=focused_gray_aqua] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=focused_light] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=green_blue] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #195827;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=green_plum] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20602f;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=maroon_grey] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #330000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=martiansands] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #6a3418;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=orange_navy] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a;\n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #006deb;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=pastel_blue_orange] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n:root[data-legacy-colorscheme=red_blue] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_amethyst] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #008099;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_emerald] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_turquoise] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n.ptx-masthead .title-container > .heading,\n.ptx-masthead .title-container > .heading a,\n.ptx-masthead .logo-link:empty:hover::before,\n.ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n.ptx-masthead .title-container > .heading a:active,\n.ptx-masthead .logo-link:empty:active::before,\n.ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active {\n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n.ptx-content .para > a.internal {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover,\n.ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus,\n.ptx-content .para > a.internal:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover,\n.ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus,\n.ptx-content .para > a.external:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .playvideo {\n  background-color: var(--videoplay);\n}\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n.ptx-content .assemblage-like {\n  border-color: var(--assemblageborder);\n  background-color: var(--assemblagebackground);\n}\n.ptx-content .knowl-output {\n  border-color: var(--knowlborder);\n  background-color: var(--knowlbackground);\n}\n.pretext[data-atmosphere=pastel],\n.pretext[data-atmosphere=pastel] .ptx-main {\n  background: #dbf5ff;\n  background: #efe;\n}\n.pretext[data-atmosphere=pastel] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=pastel] .ptx-navbar {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-masthead {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-sidebar {\n  background: #ffd;\n}\n.pretext[data-atmosphere=darktwilight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(9, 72%, 30%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n}\n.pretext[data-atmosphere=dark] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(5, 86%, 24%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n}\n.pretext[data-atmosphere=darkmidnight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n.pretext[data-atmosphere*=dark] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page > .ptx-main {\n  background: var(--mainbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .summary-links a {\n  background: var(--documenttitledark);\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar {\n  background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead {\n  background: var(--bannerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer {\n  background: var(--footerbackground);\n  border-top-color: #447;\n  border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .logo {\n  background: #779;\n  border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=dark] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=dark] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .code-inline {\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .kbdkey {\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .goal-like > .heading {\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content a.url,\n.pretext[data-atmosphere*=dark] .ptx-content a.internal,\n.pretext[data-atmosphere*=dark] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n/*! Theme: default-legacy */\n/*# sourceMappingURL=theme-default-legacy.css.map */\n"
  },
  {
    "path": "css/dist/theme-default-modern.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=PT Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/html/default-modern/theme-default-modern.scss */\n:root {\n  --base-content-width: 600px;\n  --content-padding: 48px;\n}\nbody {\n  margin: 0;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.pretext {\n  color: var(--body-text-color);\n  font-family: var(--font-body);\n}\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n}\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;\n  container-type: inline-size;\n}\n.ptx-main .ptx-content {\n  max-width: 696px;\n  padding: 24px 48px 60px;\n}\n.worksheet .ptx-main .ptx-content {\n  max-width: 960px;\n}\n.ptx-page {\n  max-width: 1200px;\n  margin-left: auto;\n  margin-right: auto;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n.ptx-content .print-preview-header {\n  display: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: #BF1722;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: 696px;\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: 48px;\n  padding-right: 48px;\n}\n.ptx-content-footer .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content-footer .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content-footer .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content-footer .button.hidden {\n  display: none;\n}\n.ptx-content-footer .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\nbody.standalone-page .ptx-page {\n  max-width: 1600px;\n}\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding: 10px 10px;\n  border-bottom: none;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  max-width: 1200px;\n}\n.ptx-masthead a {\n  color: var(--doc-title-color, #2a5ea4);\n}\n.ptx-masthead a:active {\n  color: var(--link-active-text-color);\n}\n.ptx-masthead .title-container {\n  font-family: var(--font-headings);\n  font-size: 2em;\n  padding-left: 9.68px;\n  overflow: hidden;\n  flex: 1;\n}\n.ptx-masthead .title-container .heading {\n  font-weight: 700;\n  font-size: 100%;\n  line-height: 1.25em;\n}\n.ptx-masthead .title-container .title:has(+ .subtitle)::after {\n  content: \":\";\n}\n.ptx-masthead .title-container .subtitle {\n  font-weight: normal;\n}\n.ptx-masthead .logo-link {\n  height: 5em;\n  display: flex;\n}\n.ptx-masthead .logo-link img {\n  max-height: 100%;\n}\n.ptx-masthead .logo-link img[src$=\".svg\"] {\n  height: 100%;\n}\n.ptx-masthead .byline {\n  color: var(--byline-color);\n  font-weight: normal;\n  margin: 0;\n  font-size: 62.5%;\n  min-height: inherit;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n  }\n  .ptx-masthead .ptx-banner {\n    padding: 10px 28px;\n    display: flex;\n    justify-content: center;\n  }\n  .ptx-masthead .logo-link::before {\n    font-size: 1rem;\n    margin-top: 0;\n  }\n  .ptx-masthead .title-container {\n    width: fit-content;\n    flex: unset;\n  }\n  .ptx-masthead .title-container .heading {\n    line-height: 1em;\n  }\n  .ptx-masthead .title-container .heading .subtitle {\n    display: block;\n    font-size: 80%;\n    line-height: 1em;\n  }\n  .ptx-masthead .byline {\n    font-size: 50%;\n  }\n}\n@media screen and (width <= 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    font-size: 1em;\n  }\n  .ptx-masthead .logo-link {\n    display: none;\n  }\n  .ptx-masthead .byline {\n    display: none;\n  }\n}\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: 36px;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar .ptx-navbar-contents {\n  position: relative;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n  max-width: 1200px;\n  margin: 0 auto;\n}\n.ptx-navbar .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-navbar .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-navbar .button.hidden {\n  display: none;\n}\n.ptx-navbar .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button {\n  height: 100%;\n  border-width: 0;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n  margin-left: 0;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.ptx-navbar .pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar .embed-popup {\n  padding: 10px;\n  background-color: var(--navbar-background);\n  position: absolute;\n  margin-top: 36px;\n  border: 1px solid var(--page-border-color);\n  border-radius: 3px;\n  box-shadow: 0 0 5px var(--primary-color-gray-80);\n  color: var(--button-text-color);\n}\n.ptx-navbar .embed-popup .embed-code-container {\n  width: \"100%\";\n  padding: 5px;\n}\n.ptx-navbar .embed-popup .embed-code-container .embed-code-textbox {\n  width: 100%;\n  padding: 10px;\n  height: 5em;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  min-width: 70px;\n}\n.runestone-profile {\n  position: relative;\n}\n.runestone-profile .dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: var(--dropdown-background);\n  min-width: 160px;\n  z-index: 100;\n  border: 1px solid var(--dropdown-border-color);\n  right: 0;\n  top: 35px;\n  text-align: start;\n  padding: 0;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: var(--dropdown-text-color);\n  padding: 2px 8px;\n}\n.runestone-profile .dropdown-content a:is(:hover, :focus-visible) {\n  background-color: var(--dropdown-hover-background);\n  color: var(--dropdown-hover-text-color);\n}\n.runestone-profile .dropdown-content hr {\n  color: var(--dropdown-border-color);\n  margin: 4px 0;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) {\n  overflow: visible;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) .dropdown-content {\n  display: block;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .button {\n    border-left-width: 1px;\n    border-right-width: 1px;\n    border-color: var(--page-border-color);\n  }\n  .ptx-navbar > *:not(:first-child) {\n    margin-left: -1px;\n  }\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    max-width: 100vw;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar .embed-popup {\n    margin-top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n    display: none;\n  }\n}\n.ptx-sidebar {\n  align-self: flex-start;\n}\n.ptx-sidebar.visible {\n  display: block;\n}\n.ptx-sidebar.hidden {\n  display: none;\n  height: 0;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  background: var(--toc-background);\n  margin: 0;\n  font-size: 0.9rem;\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--tocitem-background);\n}\n.ptx-toc .toc-item-list .active {\n  list-style: none;\n}\n.ptx-toc .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n  border-color: var(--toc-border-color);\n}\n.ptx-toc .toc-item a {\n  color: inherit;\n}\n.ptx-toc .toc-item.active:not(:has(.toc-item.active)) {\n  color: var(--tocitem-active-text-color) !important;\n  background-color: var(--tocitem-active-background) !important;\n  border-color: var(--tocitem-active-border-color) !important;\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-weight: 500;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-weight: normal;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.focused {\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item.hidden {\n  display: none;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 1.25em;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--tocitem-highlight-background);\n  color: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"add\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"remove\";\n}\n.ptx-sidebar {\n  flex: 0 0 240px;\n  position: sticky;\n  top: 36px;\n  overflow-y: hidden;\n}\n.ptx-toc {\n  position: sticky;\n  top: 36px;\n  overflow-y: auto;\n  overflow-x: hidden;\n  height: calc(100vh - 36px);\n  margin-top: -1px;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 3px solid var(--toc-border-color);\n}\n@media screen and (max-width: 936px) {\n  .ptx-sidebar {\n    display: none;\n    position: sticky;\n    top: 36px;\n    background: var(--content-background);\n    min-height: 30vh;\n    border-right: 2px solid var(--toc-border-color);\n    border-bottom: 2px solid var(--toc-border-color);\n    width: 240px;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-sidebar {\n    position: fixed;\n    z-index: 1000;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: 36px;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n}\n.ptx-page-footer > a {\n  margin: 1em 0;\n  color: var(--body-text-color);\n}\n.ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-page-footer .feedback-link {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-page-footer .feedback-link:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-page-footer .feedback-link:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-page-footer .feedback-link.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-page-footer .feedback-link.hidden {\n  display: none;\n}\n.ptx-page-footer .feedback-link.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n@media screen and (max-width: 800px) {\n  .ptx-page-footer {\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: 34px;\n  }\n  .ptx-page-footer > a > .logo:first-child {\n    height: 2em;\n  }\n}\n@container ptx-main (width < 696px) {\n  .ptx-page > .ptx-main .ptx-content {\n    padding-left: 28px;\n    padding-right: 28px;\n    max-width: calc(600px + 2 * 28px);\n  }\n}\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n@media screen and (min-width: 1280px) {\n  details.aside-like {\n    position: relative;\n    margin-left: -248px;\n    width: 200px;\n    right: -248px;\n    float: right;\n    clear: right;\n  }\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n  details.aside-like > .knowl__content {\n    margin-left: 0;\n    margin-right: 0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 3px solid var(--knowl-border-color);\n  border-radius: 8px;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 2px solid var(--assemblage-like-border-color);\n  background-color: var(--assemblage-like-body-background);\n  padding: 10px;\n  border-radius: 8px;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > *:first-child {\n  margin-top: 0;\n}\n.goal-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 3px solid var(--goal-like-border-color);\n  background-color: var(--goal-like-body-background);\n  padding: 20px;\n  padding-top: calc(20px + 0.25ex);\n  margin-top: 2.5em !important;\n}\n.goal-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--content-background);\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n  padding: 5px 10px;\n  margin-top: calc(-25px - 1.65ex);\n  width: fit-content;\n  border: 0;\n}\n.goal-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.knowl__content *:first-child .goal-like {\n  margin-top: 1em;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl),\n.definition-like:not(.knowl__content, .born-hidden-knowl),\n.example-like:not(.knowl__content, .born-hidden-knowl),\n.project-like:not(.knowl__content, .born-hidden-knowl),\n.remark-like:not(.knowl__content, .born-hidden-knowl),\n.openproblem-like:not(.knowl__content, .born-hidden-knowl),\n.computation-like:not(.knowl__content, .born-hidden-knowl) {\n  padding-left: 10px;\n  border-left: 2px solid var(--block-border-color);\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.remark-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.openproblem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  color: var(--block-head-color);\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl)::after,\n.definition-like:not(.knowl__content, .born-hidden-knowl)::after,\n.example-like:not(.knowl__content, .born-hidden-knowl)::after,\n.project-like:not(.knowl__content, .born-hidden-knowl)::after,\n.remark-like:not(.knowl__content, .born-hidden-knowl)::after,\n.openproblem-like:not(.knowl__content, .born-hidden-knowl)::after,\n.computation-like:not(.knowl__content, .born-hidden-knowl)::after {\n  content: \"\";\n  border-bottom: 2px solid var(--block-border-color);\n  display: block;\n  margin-right: auto;\n  margin-left: -10px;\n  padding-top: 10px;\n  width: 1.5em;\n}\n.knowl__content .theorem-like,\n.knowl__content .definition-like,\n.knowl__content .example-like,\n.knowl__content .project-like,\n.knowl__content .remark-like,\n.knowl__content .openproblem-like,\n.knowl__content .computation-like {\n  padding-left: 0;\n  border-left: 0;\n}\n.knowl__content .theorem-like::after,\n.knowl__content .definition-like::after,\n.knowl__content .example-like::after,\n.knowl__content .project-like::after,\n.knowl__content .remark-like::after,\n.knowl__content .openproblem-like::after,\n.knowl__content .computation-like::after {\n  display: none;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl):not(.knowl__content, .born-hidden-knowl) {\n  padding-left: 10px;\n  border-left: 2px dotted var(--block-border-color);\n}\n.project-like:not(.knowl__content, .born-hidden-knowl):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  color: var(--block-head-color);\n}\n.project-like:not(.knowl__content, .born-hidden-knowl):not(.knowl__content, .born-hidden-knowl)::after {\n  content: \"\";\n  border-bottom: 2px dotted var(--block-border-color);\n  display: block;\n  margin-right: auto;\n  margin-left: -10px;\n  padding-top: 10px;\n  width: 1.5em;\n}\n.knowl__content .project-like:not(.knowl__content, .born-hidden-knowl) {\n  padding-left: 0;\n  border-left: 0;\n}\n.knowl__content .project-like:not(.knowl__content, .born-hidden-knowl)::after {\n  display: none;\n}\n.proof:not(.knowl__content, .born-hidden-knowl) {\n  padding-right: 10px;\n  border-right: 1px solid var(--block-border-color);\n}\n.proof:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  color: var(--block-head-color);\n}\n.proof:not(.knowl__content, .born-hidden-knowl)::after {\n  content: \"\";\n  border-bottom: 1px solid var(--block-border-color);\n  display: block;\n  margin-left: auto;\n  margin-right: -10px;\n  padding-top: 10px;\n  width: 1.5em;\n}\n.knowl__content .proof {\n  padding-right: 0;\n  border-right: 0;\n}\n.knowl__content .proof::after {\n  display: none;\n}\n.knowl__content .theorem-like,\n.knowl__content .definition-like,\n.knowl__content .example-like,\n.knowl__content .project-like,\n.knowl__content .remark-like,\n.knowl__content .openproblem-like,\n.knowl__content .computation-like,\n.knowl__content .project-like {\n  padding-left: 0;\n  margin-left: 0;\n  border-left: none;\n}\n.knowl__content .theorem-like::after,\n.knowl__content .definition-like::after,\n.knowl__content .example-like::after,\n.knowl__content .project-like::after,\n.knowl__content .remark-like::after,\n.knowl__content .openproblem-like::after,\n.knowl__content .computation-like::after,\n.knowl__content .project-like::after {\n  border-bottom: none;\n  display: none;\n}\nsection.solutions:not(:is(:first-child)):not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 10px solid var(--page-border-color);\n  background-color: var(--content-background);\n}\nsection.solutions:not(:is(:first-child)):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.paragraphs > .heading:first-child,\narticle > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.paragraphs > .heading:first-child:after,\narticle > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction),\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n  }\n  .ptx-page,\n  .ptx-main,\n  .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n  .ptx-sagecell,\n  .tabular,\n  .table-like,\n  .figure-like,\n  .exercise-like {\n    break-inside: avoid;\n  }\n  .heading {\n    break-after: avoid;\n  }\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n}\n.heading .print-links .print-link {\n  font-family: var(--font-body);\n  padding: 0.1em 0.2em;\n}\n.heading .print-links .material-symbols-outlined {\n  margin-top: 5pt;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n.searchbox .searchwidget {\n  height: 100%;\n}\n.searchbox .searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  padding: 1em;\n  left: max(10vw, (100vw - 800px) / 2);\n  width: 80vw;\n  max-width: 800px;\n  border: 2px solid var(--body-text-color);\n  background: var(--knowl-background, #eaf0f6);\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.searchbox .searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox .search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n  height: 35px;\n}\n.searchbox .ptxsearch {\n  flex: 1 1;\n}\n.searchbox .closesearchresults {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.searchbox .closesearchresults:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .closesearchresults:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.searchbox .closesearchresults.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.searchbox .closesearchresults.hidden {\n  display: none;\n}\n.searchbox .closesearchresults.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .detailed_result {\n  margin-bottom: 10px;\n}\n.searchbox .searchresults a:hover {\n  text-decoration: underline;\n  background: var(--link-active-background);\n}\n.searchbox .searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n  background: var(--content-background, white);\n  border: 1px solid var(--page-border-color, #ccc);\n}\n.searchbox .searchresults:empty {\n  display: none;\n}\n.searchbox .search-result-bullet {\n  list-style-type: none;\n}\n.searchbox .search-result-score {\n  display: none;\n}\n.searchbox .no_result {\n  font-size: 90%;\n  font-weight: 200;\n}\n.searchbox .low_result {\n  font-weight: 200;\n}\n.searchbox .medium_result {\n  font-weight: 500;\n}\n.searchbox .high_result {\n  font-weight: 700;\n}\n.searchbox .searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.searchbox .search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.searchbox .search-result-clip-highlight {\n  background: var(--searchresultshighlight);\n}\n.searchbox .searchresultsbackground {\n  position: fixed;\n  top: 0;\n  background: var(--searchresultsbackground, white);\n  width: 100vw;\n  height: 100%;\n  left: 0;\n  z-index: 4999;\n}\n@media screen and (max-width: 800px) {\n  .searchbox .searchresultsplaceholder {\n    bottom: 10vh;\n  }\n}\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n.multiplechoice_section label > .para {\n  display: inline;\n}\n.ptx-content .ptx-runestone-container .ac_question {\n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n.runestone .runestone_caption {\n  display: none;\n}\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: 0.93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n.ptx-runestone-container code[class*=language-],\n.ptx-runestone-container pre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n}\n.runestone.datafile .datafile_caption {\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  display: block;\n  width: fit-content;\n  margin: 0 auto;\n}\n.runestone.datafile img {\n  margin: 0 auto;\n  display: block;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n}\n.runestone.datafile pre,\n.runestone.datafile textarea {\n  margin: 0 auto;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  background-color: var(--page-color);\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\nul[data-component=timedAssessment] {\n  margin: 0;\n  padding: 0;\n}\n:root.dark-mode .ptx-runestone-container code[class*=language-],\n:root.dark-mode .ptx-runestone-container pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n}\n.interactive-iframe-container > iframe {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n}\n.interactive__instructions {\n  max-width: var(--base-content-width);\n}\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n}\n.interactive-iframe-container__opener .icon {\n  font-size: 18px;\n}\n.interactive-iframe-container__opener:has(+ figcaption, + .instructions) {\n  float: left;\n  z-index: 1;\n  position: relative;\n}\n.interactive-iframe-container__opener + .instructions + figcaption {\n  clear: left;\n}\n.interactive-iframe-container__opener + .instructions {\n  margin-top: 0.5em;\n}\n.clipboardable {\n  position: relative;\n  display: flow-root;\n}\n.clipboardable .code-copy {\n  position: absolute;\n  right: 0;\n  top: 0;\n  opacity: 0.25;\n  border-width: 0;\n  background: none;\n  cursor: pointer;\n  z-index: 1;\n  white-space-collapse: collapse;\n  padding: 1px;\n  scale: 0.85;\n}\n.clipboardable .code-copy:hover {\n  opacity: 0.7;\n}\n.clipboardable .code-copy .checkmark {\n  display: none;\n}\n.clipboardable .code-copy.copied {\n  opacity: 1;\n  color: mediumseagreen;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.clipboardable .code-copy.copied .copyicon {\n  display: none;\n}\n.clipboardable .code-copy.copied .checkmark {\n  display: inline;\n}\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n}\n.clipboardable:has(.code-display) .code-display {\n  margin: 0;\n  padding: 0.25em 0;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\nlabel.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.ptx-content .problem-buttons {\n  display: flex;\n}\n.ptx-content .webwork-button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content .webwork-button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content .webwork-button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content .webwork-button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content .webwork-button.hidden {\n  display: none;\n}\n.ptx-content .webwork-button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.sage-interact.sagecell {\n  margin: 0;\n}\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  opacity: var(--permalink-opacity, 0);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\nli > .autopermalink {\n  left: -3.5em;\n}\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n.axiom-like > .para:first-of-type > .autopermalink,\n.example-like > .para:first-of-type > .autopermalink,\n.exercise-like > .para:first-of-type > .autopermalink,\n.solution-like > .para:first-of-type > .autopermalink,\n.assemblage-like > .para:first-of-type > .autopermalink,\n.definition-like > .para:first-of-type > .autopermalink,\n.remark-like > .para:first-of-type > .autopermalink,\n.project-like > .para:first-of-type > .autopermalink,\n.openproblem-like > .para:first-of-type > .autopermalink,\n.computation-like > .para:first-of-type > .autopermalink,\n.theorem-like > .para:first-of-type > .autopermalink,\n.proof > .para:first-of-type > .autopermalink,\n.case > .para:first-of-type > .autopermalink,\nli > .para:first-of-type > .autopermalink,\ndd > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.axiom-like > .introduction > .para:first-of-type > .autopermalink,\n.example-like > .introduction > .para:first-of-type > .autopermalink,\n.exercise-like > .introduction > .para:first-of-type > .autopermalink,\n.solution-like > .introduction > .para:first-of-type > .autopermalink,\n.assemblage-like > .introduction > .para:first-of-type > .autopermalink,\n.definition-like > .introduction > .para:first-of-type > .autopermalink,\n.remark-like > .introduction > .para:first-of-type > .autopermalink,\n.project-like > .introduction > .para:first-of-type > .autopermalink,\n.openproblem-like > .introduction > .para:first-of-type > .autopermalink,\n.computation-like > .introduction > .para:first-of-type > .autopermalink,\n.theorem-like > .introduction > .para:first-of-type > .autopermalink,\n.proof > .introduction > .para:first-of-type > .autopermalink,\n.case > .introduction > .para:first-of-type > .autopermalink,\nli > .introduction > .para:first-of-type > .autopermalink,\ndd > .introduction > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n:target {\n  scroll-margin-top: 45px;\n  animation: target-fade 10s 1;\n}\n@keyframes target-fade {\n  0% {\n    background-color: var(--activated-content-bg);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n.ptx-toc:is(.depth0, .depth1, .depth2) .toc-item .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n}\n.ptx-toc:is(.depth0, .depth1, .depth2, .depth3) .toc-item .toc-item .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n}\n.toc-item {\n  border-top: 1px solid var(--toc-border-color);\n}\n.ptx-toc.focused .toc-title-box > a:hover {\n  border-right: 1px solid var(--toc-border-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  border-left: 1px solid var(--toc-border-color);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  border-top: 2px solid var(--toc-border-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon {\n  font-size: 30px;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\nsection > .heading {\n  padding-bottom: 3px;\n  border-bottom: 2px solid var(--primary-color-white-30);\n}\nsection > h2.heading {\n  border-bottom-width: 4px;\n}\nsection > h3.heading {\n  border-bottom-width: 3px;\n}\n:root.dark-mode section > .heading {\n  border-bottom-color: var(--primary-color-black-30);\n}\n.displaymath {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .displaymath {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: fit-content;\n    max-width: var(--max-width);\n  }\n}\n.code-display {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .code-display {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: fit-content;\n    max-width: var(--max-width);\n  }\n}\n.ptx-runestone-container:has(.parsons_section, .ac_section, .codelens) {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .ptx-runestone-container:has(.parsons_section, .ac_section, .codelens) {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n  }\n}\n.tabular-box {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .tabular-box {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: fit-content;\n    max-width: var(--max-width);\n  }\n}\n:root {\n  color-scheme: light;\n}\n:root:not(.dark-mode) {\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #fafafa;\n  --navbar-background: #ededed;\n  --footer-background: var(--banner-background);\n  --toc-border-color: var(--primary-color-white-30);\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--secondary-color-white-10);\n  --tocitem-highlight-text-color: white;\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--secondary-color);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--primary-color);\n  --toclevel1-text-color: white;\n  --toclevel2-background: var(--primary-color-white-10);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: #000;\n  --ptx-image-bg: transparent;\n  --activated-content-bg: #fae6e3;\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: var(--primary-color-white-97);\n  --link-active-text-color: var(--primary-color-black-20);\n  --link-active-background: var(--link-background);\n  --link-alt-text-color: var(--secondary-color-black-10);\n  --link-alt-background: var(--secondary-color-white-97);\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--secondary-color-white-97);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: var(--primary-color-white-97);\n  --knowl-border-color: var(--primary-color-white-30);\n  --knowl-nested-1-background: var(--secondary-color-white-97);\n  --knowl-nested-2-background: var(--primary-color-white-97);\n  --knowl-nested-3-background: var(--secondary-color-white-97);\n  --knowl-nested-4-background: var(--primary-color-white-97);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: #ededed;\n  --button-text-color: #333333;\n  --button-border-color: #ccc;\n  --button-hover-background: #c7c7c7;\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--knowl-background);\n  --assemblage-like-border-color: var(--knowl-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--knowl-background);\n  --aside-like-border-color: var(--knowl-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--secondary-color-white-20);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --secondary-color-white-1: color-mix(in oklab, var(--secondary-color), white 1%);\n  --secondary-color-white-2: color-mix(in oklab, var(--secondary-color), white 2%);\n  --secondary-color-white-3: color-mix(in oklab, var(--secondary-color), white 3%);\n  --secondary-color-white-4: color-mix(in oklab, var(--secondary-color), white 4%);\n  --secondary-color-white-5: color-mix(in oklab, var(--secondary-color), white 5%);\n  --secondary-color-white-10: color-mix(in oklab, var(--secondary-color), white 10%);\n  --secondary-color-white-15: color-mix(in oklab, var(--secondary-color), white 15%);\n  --secondary-color-white-20: color-mix(in oklab, var(--secondary-color), white 20%);\n  --secondary-color-white-25: color-mix(in oklab, var(--secondary-color), white 25%);\n  --secondary-color-white-30: color-mix(in oklab, var(--secondary-color), white 30%);\n  --secondary-color-white-35: color-mix(in oklab, var(--secondary-color), white 35%);\n  --secondary-color-white-40: color-mix(in oklab, var(--secondary-color), white 40%);\n  --secondary-color-white-50: color-mix(in oklab, var(--secondary-color), white 50%);\n  --secondary-color-white-60: color-mix(in oklab, var(--secondary-color), white 60%);\n  --secondary-color-white-65: color-mix(in oklab, var(--secondary-color), white 65%);\n  --secondary-color-white-70: color-mix(in oklab, var(--secondary-color), white 70%);\n  --secondary-color-white-75: color-mix(in oklab, var(--secondary-color), white 75%);\n  --secondary-color-white-80: color-mix(in oklab, var(--secondary-color), white 80%);\n  --secondary-color-white-85: color-mix(in oklab, var(--secondary-color), white 85%);\n  --secondary-color-white-90: color-mix(in oklab, var(--secondary-color), white 90%);\n  --secondary-color-white-95: color-mix(in oklab, var(--secondary-color), white 95%);\n  --secondary-color-white-96: color-mix(in oklab, var(--secondary-color), white 96%);\n  --secondary-color-white-97: color-mix(in oklab, var(--secondary-color), white 97%);\n  --secondary-color-white-98: color-mix(in oklab, var(--secondary-color), white 98%);\n  --secondary-color-white-99: color-mix(in oklab, var(--secondary-color), white 99%);\n  --secondary-color-black-1: color-mix(in oklab, var(--secondary-color), black 1%);\n  --secondary-color-black-2: color-mix(in oklab, var(--secondary-color), black 2%);\n  --secondary-color-black-3: color-mix(in oklab, var(--secondary-color), black 3%);\n  --secondary-color-black-4: color-mix(in oklab, var(--secondary-color), black 4%);\n  --secondary-color-black-5: color-mix(in oklab, var(--secondary-color), black 5%);\n  --secondary-color-black-10: color-mix(in oklab, var(--secondary-color), black 10%);\n  --secondary-color-black-15: color-mix(in oklab, var(--secondary-color), black 15%);\n  --secondary-color-black-20: color-mix(in oklab, var(--secondary-color), black 20%);\n  --secondary-color-black-25: color-mix(in oklab, var(--secondary-color), black 25%);\n  --secondary-color-black-30: color-mix(in oklab, var(--secondary-color), black 30%);\n  --secondary-color-black-35: color-mix(in oklab, var(--secondary-color), black 35%);\n  --secondary-color-black-40: color-mix(in oklab, var(--secondary-color), black 40%);\n  --secondary-color-black-50: color-mix(in oklab, var(--secondary-color), black 50%);\n  --secondary-color-black-60: color-mix(in oklab, var(--secondary-color), black 60%);\n  --secondary-color-black-65: color-mix(in oklab, var(--secondary-color), black 65%);\n  --secondary-color-black-70: color-mix(in oklab, var(--secondary-color), black 70%);\n  --secondary-color-black-75: color-mix(in oklab, var(--secondary-color), black 75%);\n  --secondary-color-black-80: color-mix(in oklab, var(--secondary-color), black 80%);\n  --secondary-color-black-85: color-mix(in oklab, var(--secondary-color), black 85%);\n  --secondary-color-black-90: color-mix(in oklab, var(--secondary-color), black 90%);\n  --secondary-color-black-95: color-mix(in oklab, var(--secondary-color), black 95%);\n  --secondary-color-black-96: color-mix(in oklab, var(--secondary-color), black 96%);\n  --secondary-color-black-97: color-mix(in oklab, var(--secondary-color), black 97%);\n  --secondary-color-black-98: color-mix(in oklab, var(--secondary-color), black 98%);\n  --secondary-color-black-99: color-mix(in oklab, var(--secondary-color), black 99%);\n  --secondary-color-gray-1: color-mix(in oklab, var(--secondary-color), gray 1%);\n  --secondary-color-gray-2: color-mix(in oklab, var(--secondary-color), gray 2%);\n  --secondary-color-gray-3: color-mix(in oklab, var(--secondary-color), gray 3%);\n  --secondary-color-gray-4: color-mix(in oklab, var(--secondary-color), gray 4%);\n  --secondary-color-gray-5: color-mix(in oklab, var(--secondary-color), gray 5%);\n  --secondary-color-gray-10: color-mix(in oklab, var(--secondary-color), gray 10%);\n  --secondary-color-gray-15: color-mix(in oklab, var(--secondary-color), gray 15%);\n  --secondary-color-gray-20: color-mix(in oklab, var(--secondary-color), gray 20%);\n  --secondary-color-gray-25: color-mix(in oklab, var(--secondary-color), gray 25%);\n  --secondary-color-gray-30: color-mix(in oklab, var(--secondary-color), gray 30%);\n  --secondary-color-gray-35: color-mix(in oklab, var(--secondary-color), gray 35%);\n  --secondary-color-gray-40: color-mix(in oklab, var(--secondary-color), gray 40%);\n  --secondary-color-gray-50: color-mix(in oklab, var(--secondary-color), gray 50%);\n  --secondary-color-gray-60: color-mix(in oklab, var(--secondary-color), gray 60%);\n  --secondary-color-gray-65: color-mix(in oklab, var(--secondary-color), gray 65%);\n  --secondary-color-gray-70: color-mix(in oklab, var(--secondary-color), gray 70%);\n  --secondary-color-gray-75: color-mix(in oklab, var(--secondary-color), gray 75%);\n  --secondary-color-gray-80: color-mix(in oklab, var(--secondary-color), gray 80%);\n  --secondary-color-gray-85: color-mix(in oklab, var(--secondary-color), gray 85%);\n  --secondary-color-gray-90: color-mix(in oklab, var(--secondary-color), gray 90%);\n  --secondary-color-gray-95: color-mix(in oklab, var(--secondary-color), gray 95%);\n  --secondary-color-gray-96: color-mix(in oklab, var(--secondary-color), gray 96%);\n  --secondary-color-gray-97: color-mix(in oklab, var(--secondary-color), gray 97%);\n  --secondary-color-gray-98: color-mix(in oklab, var(--secondary-color), gray 98%);\n  --secondary-color-gray-99: color-mix(in oklab, var(--secondary-color), gray 99%);\n  --primary-color: #195684;\n  --secondary-color: #932c1c;\n}\n:root.dark-mode {\n  color-scheme: dark;\n  --page-color: var(--background-color);\n  --content-background: var(--page-color);\n  --page-border-color: var(--background-color-white-25);\n  --doc-title-color: var(--primary-color);\n  --byline-color: var(--background-color-white-50);\n  --banner-background: #23241f;\n  --navbar-background: var(--background-color-gray-15);\n  --footer-background: var(--background-color-black-10);\n  --toc-border-color: #555;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--primary-color-gray-5);\n  --tocitem-highlight-text-color: var(--background-color-black-50);\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-gray-5);\n  --tocitem-active-text-color: var(--background-color-black-50);\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--background-color-gray-10);\n  --toclevel1-text-color: var(--primary-color-white-40);\n  --toclevel2-background: var(--toclevel1-background);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #f2f2f2;\n  --body-title-color: var(--primary-color-white-20);\n  --ptx-image-bg: white;\n  --activated-content-bg: rgba(255, 237, 185, 0.2);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color-white-10);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--doc-title-color);\n  --knowl-background: var(--background-color-black-10);\n  --knowl-border-color: var(--background-color-white-20);\n  --knowl-nested-1-background: var(--background-color-gray-10);\n  --knowl-nested-2-background: var(--background-color-black-10);\n  --knowl-nested-3-background: var(--background-color-gray-10);\n  --knowl-nested-4-background: var(--background-color-black-10);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--background-color-gray-15);\n  --button-text-color: var(--body-text-color);\n  --button-border-color: var(--background-color-white-25);\n  --button-hover-background: var(--primary-color-black-50);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: var(--background-color-gray-20);\n  --code-inline-background: var(--background-color-gray-20);\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color: #698aa8;\n  --background-color: #23241f;\n  --background-color-white-1: color-mix(in oklab, var(--background-color), white 1%);\n  --background-color-white-2: color-mix(in oklab, var(--background-color), white 2%);\n  --background-color-white-3: color-mix(in oklab, var(--background-color), white 3%);\n  --background-color-white-4: color-mix(in oklab, var(--background-color), white 4%);\n  --background-color-white-5: color-mix(in oklab, var(--background-color), white 5%);\n  --background-color-white-10: color-mix(in oklab, var(--background-color), white 10%);\n  --background-color-white-15: color-mix(in oklab, var(--background-color), white 15%);\n  --background-color-white-20: color-mix(in oklab, var(--background-color), white 20%);\n  --background-color-white-25: color-mix(in oklab, var(--background-color), white 25%);\n  --background-color-white-30: color-mix(in oklab, var(--background-color), white 30%);\n  --background-color-white-35: color-mix(in oklab, var(--background-color), white 35%);\n  --background-color-white-40: color-mix(in oklab, var(--background-color), white 40%);\n  --background-color-white-50: color-mix(in oklab, var(--background-color), white 50%);\n  --background-color-white-60: color-mix(in oklab, var(--background-color), white 60%);\n  --background-color-white-65: color-mix(in oklab, var(--background-color), white 65%);\n  --background-color-white-70: color-mix(in oklab, var(--background-color), white 70%);\n  --background-color-white-75: color-mix(in oklab, var(--background-color), white 75%);\n  --background-color-white-80: color-mix(in oklab, var(--background-color), white 80%);\n  --background-color-white-85: color-mix(in oklab, var(--background-color), white 85%);\n  --background-color-white-90: color-mix(in oklab, var(--background-color), white 90%);\n  --background-color-white-95: color-mix(in oklab, var(--background-color), white 95%);\n  --background-color-white-96: color-mix(in oklab, var(--background-color), white 96%);\n  --background-color-white-97: color-mix(in oklab, var(--background-color), white 97%);\n  --background-color-white-98: color-mix(in oklab, var(--background-color), white 98%);\n  --background-color-white-99: color-mix(in oklab, var(--background-color), white 99%);\n  --background-color-black-1: color-mix(in oklab, var(--background-color), black 1%);\n  --background-color-black-2: color-mix(in oklab, var(--background-color), black 2%);\n  --background-color-black-3: color-mix(in oklab, var(--background-color), black 3%);\n  --background-color-black-4: color-mix(in oklab, var(--background-color), black 4%);\n  --background-color-black-5: color-mix(in oklab, var(--background-color), black 5%);\n  --background-color-black-10: color-mix(in oklab, var(--background-color), black 10%);\n  --background-color-black-15: color-mix(in oklab, var(--background-color), black 15%);\n  --background-color-black-20: color-mix(in oklab, var(--background-color), black 20%);\n  --background-color-black-25: color-mix(in oklab, var(--background-color), black 25%);\n  --background-color-black-30: color-mix(in oklab, var(--background-color), black 30%);\n  --background-color-black-35: color-mix(in oklab, var(--background-color), black 35%);\n  --background-color-black-40: color-mix(in oklab, var(--background-color), black 40%);\n  --background-color-black-50: color-mix(in oklab, var(--background-color), black 50%);\n  --background-color-black-60: color-mix(in oklab, var(--background-color), black 60%);\n  --background-color-black-65: color-mix(in oklab, var(--background-color), black 65%);\n  --background-color-black-70: color-mix(in oklab, var(--background-color), black 70%);\n  --background-color-black-75: color-mix(in oklab, var(--background-color), black 75%);\n  --background-color-black-80: color-mix(in oklab, var(--background-color), black 80%);\n  --background-color-black-85: color-mix(in oklab, var(--background-color), black 85%);\n  --background-color-black-90: color-mix(in oklab, var(--background-color), black 90%);\n  --background-color-black-95: color-mix(in oklab, var(--background-color), black 95%);\n  --background-color-black-96: color-mix(in oklab, var(--background-color), black 96%);\n  --background-color-black-97: color-mix(in oklab, var(--background-color), black 97%);\n  --background-color-black-98: color-mix(in oklab, var(--background-color), black 98%);\n  --background-color-black-99: color-mix(in oklab, var(--background-color), black 99%);\n  --background-color-gray-1: color-mix(in oklab, var(--background-color), gray 1%);\n  --background-color-gray-2: color-mix(in oklab, var(--background-color), gray 2%);\n  --background-color-gray-3: color-mix(in oklab, var(--background-color), gray 3%);\n  --background-color-gray-4: color-mix(in oklab, var(--background-color), gray 4%);\n  --background-color-gray-5: color-mix(in oklab, var(--background-color), gray 5%);\n  --background-color-gray-10: color-mix(in oklab, var(--background-color), gray 10%);\n  --background-color-gray-15: color-mix(in oklab, var(--background-color), gray 15%);\n  --background-color-gray-20: color-mix(in oklab, var(--background-color), gray 20%);\n  --background-color-gray-25: color-mix(in oklab, var(--background-color), gray 25%);\n  --background-color-gray-30: color-mix(in oklab, var(--background-color), gray 30%);\n  --background-color-gray-35: color-mix(in oklab, var(--background-color), gray 35%);\n  --background-color-gray-40: color-mix(in oklab, var(--background-color), gray 40%);\n  --background-color-gray-50: color-mix(in oklab, var(--background-color), gray 50%);\n  --background-color-gray-60: color-mix(in oklab, var(--background-color), gray 60%);\n  --background-color-gray-65: color-mix(in oklab, var(--background-color), gray 65%);\n  --background-color-gray-70: color-mix(in oklab, var(--background-color), gray 70%);\n  --background-color-gray-75: color-mix(in oklab, var(--background-color), gray 75%);\n  --background-color-gray-80: color-mix(in oklab, var(--background-color), gray 80%);\n  --background-color-gray-85: color-mix(in oklab, var(--background-color), gray 85%);\n  --background-color-gray-90: color-mix(in oklab, var(--background-color), gray 90%);\n  --background-color-gray-95: color-mix(in oklab, var(--background-color), gray 95%);\n  --background-color-gray-96: color-mix(in oklab, var(--background-color), gray 96%);\n  --background-color-gray-97: color-mix(in oklab, var(--background-color), gray 97%);\n  --background-color-gray-98: color-mix(in oklab, var(--background-color), gray 98%);\n  --background-color-gray-99: color-mix(in oklab, var(--background-color), gray 99%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n}\n/*! Theme: default-modern */\n/*# sourceMappingURL=theme-default-modern.css.map */\n"
  },
  {
    "path": "css/dist/theme-denver.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Noto Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/html/denver/theme-denver.scss */\n:root {\n  --base-content-width: 600px;\n  --content-padding: 120px;\n}\nbody {\n  margin: 0;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.pretext {\n  color: var(--body-text-color);\n  font-family: var(--font-body);\n}\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n}\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;\n  container-type: inline-size;\n}\n.ptx-main .ptx-content {\n  max-width: 840px;\n  padding: 24px 120px 60px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.worksheet .ptx-main .ptx-content {\n  max-width: 960px;\n}\n.ptx-page {\n  max-width: 1480px;\n  margin-left: auto;\n  margin-right: auto;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n.ptx-content .print-preview-header {\n  display: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: #BF1722;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: 840px;\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: 120px;\n  padding-right: 120px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content-footer .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content-footer .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content-footer .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content-footer .button.hidden {\n  display: none;\n}\n.ptx-content-footer .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\nbody.standalone-page .ptx-page {\n  max-width: 1600px;\n}\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding: 10px 10px;\n  border-bottom: none;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  max-width: 840px;\n}\n.ptx-masthead a {\n  color: var(--doc-title-color, #2a5ea4);\n}\n.ptx-masthead a:active {\n  color: var(--link-active-text-color);\n}\n.ptx-masthead .title-container {\n  font-family: var(--font-headings);\n  font-size: 2em;\n  padding-left: 9.68px;\n  overflow: hidden;\n  flex: 1;\n}\n.ptx-masthead .title-container .heading {\n  font-weight: 700;\n  font-size: 100%;\n  line-height: 1.25em;\n}\n.ptx-masthead .title-container .title:has(+ .subtitle)::after {\n  content: \":\";\n}\n.ptx-masthead .title-container .subtitle {\n  font-weight: normal;\n}\n.ptx-masthead .logo-link {\n  height: 5em;\n  display: flex;\n}\n.ptx-masthead .logo-link img {\n  max-height: 100%;\n}\n.ptx-masthead .logo-link img[src$=\".svg\"] {\n  height: 100%;\n}\n.ptx-masthead .byline {\n  color: var(--byline-color);\n  font-weight: normal;\n  margin: 0;\n  font-size: 62.5%;\n  min-height: inherit;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n  }\n  .ptx-masthead .ptx-banner {\n    padding: 10px 28px;\n    display: flex;\n    justify-content: center;\n  }\n  .ptx-masthead .logo-link::before {\n    font-size: 1rem;\n    margin-top: 0;\n  }\n  .ptx-masthead .title-container {\n    width: fit-content;\n    flex: unset;\n  }\n  .ptx-masthead .title-container .heading {\n    line-height: 1em;\n  }\n  .ptx-masthead .title-container .heading .subtitle {\n    display: block;\n    font-size: 80%;\n    line-height: 1em;\n  }\n  .ptx-masthead .byline {\n    font-size: 50%;\n  }\n}\n@media screen and (width <= 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    font-size: 1em;\n  }\n  .ptx-masthead .logo-link {\n    display: none;\n  }\n  .ptx-masthead .byline {\n    display: none;\n  }\n}\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: 36px;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar .ptx-navbar-contents {\n  position: relative;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n  max-width: 840px;\n  margin: 0 auto;\n}\n.ptx-navbar .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-navbar .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-navbar .button.hidden {\n  display: none;\n}\n.ptx-navbar .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button {\n  height: 100%;\n  border-width: 0;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n  margin-left: 0;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.ptx-navbar .pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar .embed-popup {\n  padding: 10px;\n  background-color: var(--navbar-background);\n  position: absolute;\n  margin-top: 36px;\n  border: 1px solid var(--page-border-color);\n  border-radius: 3px;\n  box-shadow: 0 0 5px var(--primary-color-gray-80);\n  color: var(--button-text-color);\n}\n.ptx-navbar .embed-popup .embed-code-container {\n  width: \"100%\";\n  padding: 5px;\n}\n.ptx-navbar .embed-popup .embed-code-container .embed-code-textbox {\n  width: 100%;\n  padding: 10px;\n  height: 5em;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  min-width: 70px;\n}\n.runestone-profile {\n  position: relative;\n}\n.runestone-profile .dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: var(--dropdown-background);\n  min-width: 160px;\n  z-index: 100;\n  border: 1px solid var(--dropdown-border-color);\n  right: 0;\n  top: 35px;\n  text-align: start;\n  padding: 0;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: var(--dropdown-text-color);\n  padding: 2px 8px;\n}\n.runestone-profile .dropdown-content a:is(:hover, :focus-visible) {\n  background-color: var(--dropdown-hover-background);\n  color: var(--dropdown-hover-text-color);\n}\n.runestone-profile .dropdown-content hr {\n  color: var(--dropdown-border-color);\n  margin: 4px 0;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) {\n  overflow: visible;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) .dropdown-content {\n  display: block;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .button {\n    border-left-width: 1px;\n    border-right-width: 1px;\n    border-color: var(--page-border-color);\n  }\n  .ptx-navbar > *:not(:first-child) {\n    margin-left: -1px;\n  }\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    max-width: 100vw;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar .embed-popup {\n    margin-top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n    display: none;\n  }\n}\n.ptx-sidebar {\n  align-self: flex-start;\n}\n.ptx-sidebar.visible {\n  display: block;\n}\n.ptx-sidebar.hidden {\n  display: none;\n  height: 0;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  background: var(--toc-background);\n  margin: 0;\n  font-size: 0.9rem;\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--tocitem-background);\n}\n.ptx-toc .toc-item-list .active {\n  list-style: none;\n}\n.ptx-toc .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n  border-color: var(--toc-border-color);\n}\n.ptx-toc .toc-item a {\n  color: inherit;\n}\n.ptx-toc .toc-item.active:not(:has(.toc-item.active)) {\n  color: var(--tocitem-active-text-color) !important;\n  background-color: var(--tocitem-active-background) !important;\n  border-color: var(--tocitem-active-border-color) !important;\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-weight: 500;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-weight: normal;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.focused {\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item.hidden {\n  display: none;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 1.25em;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--tocitem-highlight-background);\n  color: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"add\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"remove\";\n}\n.ptx-sidebar {\n  flex: 0 0 240px;\n  position: sticky;\n  top: 36px;\n  overflow-y: hidden;\n}\n.ptx-toc {\n  position: sticky;\n  top: 36px;\n  overflow-y: auto;\n  overflow-x: hidden;\n  height: calc(100vh - 36px);\n  margin-top: -1px;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 3px solid var(--toc-border-color);\n}\n@media screen and (max-width: 944px) {\n  .ptx-sidebar {\n    display: none;\n    position: sticky;\n    top: 36px;\n    background: var(--content-background);\n    min-height: 30vh;\n    border-right: 2px solid var(--toc-border-color);\n    border-bottom: 2px solid var(--toc-border-color);\n    width: 240px;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-sidebar {\n    position: fixed;\n    z-index: 1000;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: 36px;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n.ptx-toc {\n  scrollbar-color: var(--content-background) var(--content-background);\n}\n.ptx-toc:hover {\n  scrollbar-color: var(--page-border-color) var(--content-background);\n}\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n}\n.ptx-page-footer > a {\n  margin: 1em 0;\n  color: var(--body-text-color);\n}\n.ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-page-footer .feedback-link {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-page-footer .feedback-link:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-page-footer .feedback-link:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-page-footer .feedback-link.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-page-footer .feedback-link.hidden {\n  display: none;\n}\n.ptx-page-footer .feedback-link.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n@media screen and (max-width: 800px) {\n  .ptx-page-footer {\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: 34px;\n  }\n  .ptx-page-footer > a > .logo:first-child {\n    height: 2em;\n  }\n}\n@container ptx-main (width > 640px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\n.ptx-runestone-container .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  min-width: 100%;\n  margin-left: auto;\n}\n@container ptx-main (width > 640px) {\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: auto;\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: 0;\n}\n.runestone.ac_section > div > div > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone .exercise-statement {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.hparsons_section .hp_question,\n.hparsons_section .hp_feedback {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n}\n.runestone.parsons_section > .parsons .sortable-code-container {\n  display: flex;\n  flex-flow: wrap;\n  justify-content: center;\n  gap: 15px;\n  margin: 10px auto;\n}\n.runestone.parsons_section > .parsons .sortable-code {\n  margin: 0;\n}\n.runestone.parsons_section > .parsons .runestone_caption_text {\n  max-width: unset;\n}\n.runestone.parsons_section > .parsons > div > *:not(.sortable-code-container) {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n@media (width < 850px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100%;\n    margin-left: 0px;\n  }\n}\n.ptx-main {\n  margin-right: 320px;\n}\n.ptx-sidebar.hidden + .ptx-main {\n  margin-left: 320px;\n}\n.ptx-main {\n  box-shadow: 5px 10px 40px -10px var(--primary-color-gray-80);\n}\n@media (prefers-color-scheme: dark) {\n  .ptx-main {\n    box-shadow: 5px 10px 40px -10px black;\n  }\n}\n.ptx-sidebar {\n  margin-right: 80px;\n}\n.ptx-navbar {\n  border: none;\n}\n.ptx-navbar .toc-toggle {\n  transform: translateX(-320px);\n  position: absolute;\n  left: 0;\n  justify-content: left;\n}\n.ptx-toc {\n  border: none;\n  position: sticky;\n  top: 36px;\n}\n.toc-item.visible {\n  font-size: 0.95em;\n  padding-left: 8px;\n}\n.ptx-page {\n  margin-top: 36px;\n  margin-bottom: 36px;\n}\n@media screen and (width <= 1480px) {\n  .ptx-page {\n    margin-left: 0;\n    max-width: 100%;\n  }\n  .ptx-main {\n    margin-right: calc(100% - 840px - 320px);\n    max-width: 840px;\n  }\n  .ptx-sidebar.hidden + .ptx-main {\n    margin-right: auto;\n    margin-left: auto;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 320px;\n  }\n}\n@media screen and (width <= 1240px) {\n  .ptx-main {\n    box-shadow: unset;\n    margin-right: auto;\n  }\n  .ptx-main .ptx-content {\n    padding-left: 20px;\n    padding-right: 20px;\n    max-width: 640px;\n  }\n  .ptx-sidebar {\n    margin-right: 0;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 240px;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: translateX(-240px);\n    justify-content: center;\n  }\n  .ptx-page {\n    margin-top: unset;\n    margin-bottom: unset;\n  }\n  .ptx-toc {\n    padding-top: 36px;\n  }\n}\n@media screen and (width <= 880px) {\n  .ptx-sidebar {\n    display: none;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: none;\n    position: relative;\n    justify-content: center;\n  }\n  .ptx-content-footer {\n    padding-left: 20px;\n    padding-right: 20px;\n  }\n}\n.toc-item:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.standalone-page {\n  margin: 0;\n  padding: 0;\n}\n.standalone-page .ptx-page {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.standalone-page .ptx-main {\n  margin-right: auto;\n  margin-left: auto;\n  box-shadow: none;\n  max-width: 100%;\n}\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n@media screen and (min-width: 1450px) {\n  details.aside-like {\n    position: relative;\n    margin-left: -365px;\n    width: 200px;\n    right: -365px;\n    float: right;\n    clear: right;\n  }\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n  details.aside-like > .knowl__content {\n    margin-left: 0;\n    margin-right: 0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 3px solid var(--knowl-border-color);\n  border-radius: 0;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 3px solid var(--theorem-like-border-color);\n  background-color: var(--theorem-like-body-background);\n  padding: 20px;\n  padding-top: calc(20px + 0.25ex);\n  margin-top: 2.5em !important;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--theorem-like-border-color);\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n  padding: 5px 10px;\n  margin-top: calc(-25px - 1.65ex);\n  width: fit-content;\n  border: 0;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.knowl__content *:first-child .theorem-like {\n  margin-top: 1em;\n}\n.theorem-like > .heading {\n  font-size: 1.125em;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 3px solid var(--definition-like-border-color);\n  background-color: var(--definition-like-body-background);\n  padding: 20px;\n  padding-top: calc(20px + 0.25ex);\n  margin-top: 2.5em !important;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--definition-like-border-color);\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n  padding: 5px 10px;\n  margin-top: calc(-25px - 1.65ex);\n  width: fit-content;\n  border: 0;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.knowl__content *:first-child .definition-like {\n  margin-top: 1em;\n}\n.definition-like > .heading {\n  font-size: 1.125em;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 3px solid var(--assemblage-like-border-color);\n  background-color: var(--assemblage-like-body-background);\n  padding: 20px;\n  padding-top: calc(20px + 0.25ex);\n  margin-top: 2.5em !important;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--assemblage-like-border-color);\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n  padding: 5px 10px;\n  margin-top: calc(-25px - 1.65ex);\n  width: fit-content;\n  border: 0;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.knowl__content *:first-child .assemblage-like {\n  margin-top: 1em;\n}\n.assemblage-like > .heading {\n  font-size: 1.125em;\n}\n.project-like > .heading {\n  font-style: italic;\n  font-size: 1.125em;\n}\n.project-like > .heading {\n  font-size: 1.125em;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 3px solid var(--project-like-border-color);\n  background-color: var(--content-background);\n  padding: 20px;\n  padding-top: calc(20px + 0.25ex);\n  margin-top: 2.5em !important;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--content-background);\n  display: block;\n  color: var(--body-text-color);\n  margin-bottom: 0.5em;\n  padding: 5px 10px;\n  margin-top: calc(-25px - 1.65ex);\n  width: fit-content;\n  border: 0;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.knowl__content *:first-child .project-like {\n  margin-top: 1em;\n}\n.proof {\n  padding-bottom: 1.5em;\n  padding-left: 1em;\n  padding-right: 1em;\n}\n.proof::after {\n  content: \"\\220e\";\n  position: absolute;\n  right: 0;\n  bottom: 1.5em;\n}\n.proof .heading {\n  display: inline;\n  font-size: unset;\n  font-weight: bolder;\n}\n.proof > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.proof > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.proof > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.proof > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.proof > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.solution-like .heading {\n  display: inline;\n  font-style: italic;\n  font-size: unset;\n}\n.remark-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 6px solid var(--remark-like-border-color);\n  background-color: var(--remark-like-body-background);\n}\n.remark-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.remark-like > .heading {\n  font-size: 1.125em;\n}\n.goal-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 0.7em;\n  border-top: 3px solid var(--goal-like-border-color);\n  border-bottom: 3px solid var(--goal-like-border-color);\n  border-left: none;\n  border-right: none;\n  background-color: var(--content-background);\n  margin-top: 2em;\n  margin-bottom: 1em;\n}\n.goal-like > .heading:first-child {\n  background-color: var(--content-background);\n  display: block;\n  color: var(--body-text-colorolor);\n  margin-bottom: 0.5em;\n  margin-top: -1.5em;\n  margin-left: 10px;\n  width: fit-content;\n  padding: 5px 1em;\n}\n.goal-like > .heading {\n  font-size: 1.125em;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 3px solid var(--example-like-border-color);\n  border-bottom: 3px solid var(--example-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 20px 20px 20px;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--example-like-border-color);\n  display: inline-block;\n  color: var(--block-head-color);\n  padding: 5px 10px;\n  margin-left: -20px;\n  margin-top: 0;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 20px;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.example-like > .heading {\n  font-size: 1.125em;\n}\n.exercise-like.born-hidden-knowl:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 3px solid var(--exercise-like-border-color);\n  border-bottom: 3px solid var(--exercise-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 20px 20px 20px;\n}\n.exercise-like.born-hidden-knowl:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--exercise-like-border-color);\n  display: inline-block;\n  color: var(--block-head-color);\n  padding: 5px 10px;\n  margin-left: -20px;\n  margin-top: 0;\n}\n.exercise-like.born-hidden-knowl:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.exercise-like.born-hidden-knowl:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 20px;\n}\n.exercise-like.born-hidden-knowl:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.exercise-like.born-hidden-knowl > .heading {\n  font-size: 1.125em;\n}\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like):not(.knowl__content, .born-hidden-knowl) {\n  border-left: 3px solid var(--exercise-like-border-color);\n  border-bottom: 3px solid var(--exercise-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 20px 20px 20px;\n}\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--exercise-like-border-color);\n  display: inline-block;\n  color: var(--block-head-color);\n  padding: 5px 10px;\n  margin-left: -20px;\n  margin-top: 0;\n}\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like):not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 20px;\n}\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like):not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like) > .heading {\n  font-size: 1.125em;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 3px solid var(--computation-like-border-color);\n  border-bottom: 3px solid var(--computation-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 20px 20px 20px;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--computation-like-border-color);\n  display: inline-block;\n  color: var(--block-head-color);\n  padding: 5px 10px;\n  margin-left: -20px;\n  margin-top: 0;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 20px;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.computation-like > .heading {\n  font-size: 1.125em;\n}\n.knowl__content {\n  border: none;\n}\n.knowl__content .theorem-like,\n.knowl__content .definition-like,\n.knowl__content .example-like,\n.knowl__content .project-like,\n.knowl__content .remark-like,\n.knowl__content .openproblem-like,\n.knowl__content .computation-like,\n.knowl__content .project-like,\n.knowl__content .commentary {\n  padding-left: 0;\n  margin-left: 0;\n  border-left: none;\n}\n.knowl__content .theorem-like::after,\n.knowl__content .definition-like::after,\n.knowl__content .example-like::after,\n.knowl__content .project-like::after,\n.knowl__content .remark-like::after,\n.knowl__content .openproblem-like::after,\n.knowl__content .computation-like::after,\n.knowl__content .project-like::after,\n.knowl__content .commentary::after {\n  border-bottom: none;\n  display: none;\n}\n.exercises .exercise-like > .heading:first-child,\n.worksheet .exercise-like > .heading:first-child,\n.task > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.exercises .exercise-like > .heading:first-child:after,\n.worksheet .exercise-like > .heading:first-child:after,\n.task > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.exercises .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction),\n.worksheet .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction),\n.task > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.exercises .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child,\n.worksheet .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child,\n.task > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.exercises .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child,\n.worksheet .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child,\n.task > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n  }\n  .ptx-page,\n  .ptx-main,\n  .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n  .ptx-sagecell,\n  .tabular,\n  .table-like,\n  .figure-like,\n  .exercise-like {\n    break-inside: avoid;\n  }\n  .heading {\n    break-after: avoid;\n  }\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n}\n.heading .print-links .print-link {\n  font-family: var(--font-body);\n  padding: 0.1em 0.2em;\n}\n.heading .print-links .material-symbols-outlined {\n  margin-top: 5pt;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n.searchbox .searchwidget {\n  height: 100%;\n}\n.searchbox .searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  padding: 1em;\n  left: max(10vw, (100vw - 800px) / 2);\n  width: 80vw;\n  max-width: 800px;\n  border: 2px solid var(--body-text-color);\n  background: var(--knowl-background, #eaf0f6);\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.searchbox .searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox .search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n  height: 35px;\n}\n.searchbox .ptxsearch {\n  flex: 1 1;\n}\n.searchbox .closesearchresults {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.searchbox .closesearchresults:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .closesearchresults:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.searchbox .closesearchresults.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.searchbox .closesearchresults.hidden {\n  display: none;\n}\n.searchbox .closesearchresults.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .detailed_result {\n  margin-bottom: 10px;\n}\n.searchbox .searchresults a:hover {\n  text-decoration: underline;\n  background: var(--link-active-background);\n}\n.searchbox .searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n  background: var(--content-background, white);\n  border: 1px solid var(--page-border-color, #ccc);\n}\n.searchbox .searchresults:empty {\n  display: none;\n}\n.searchbox .search-result-bullet {\n  list-style-type: none;\n}\n.searchbox .search-result-score {\n  display: none;\n}\n.searchbox .no_result {\n  font-size: 90%;\n  font-weight: 200;\n}\n.searchbox .low_result {\n  font-weight: 200;\n}\n.searchbox .medium_result {\n  font-weight: 500;\n}\n.searchbox .high_result {\n  font-weight: 700;\n}\n.searchbox .searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.searchbox .search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.searchbox .search-result-clip-highlight {\n  background: var(--searchresultshighlight);\n}\n.searchbox .searchresultsbackground {\n  position: fixed;\n  top: 0;\n  background: var(--searchresultsbackground, white);\n  width: 100vw;\n  height: 100%;\n  left: 0;\n  z-index: 4999;\n}\n@media screen and (max-width: 800px) {\n  .searchbox .searchresultsplaceholder {\n    bottom: 10vh;\n  }\n}\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n.multiplechoice_section label > .para {\n  display: inline;\n}\n.ptx-content .ptx-runestone-container .ac_question {\n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n.runestone .runestone_caption {\n  display: none;\n}\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: 0.93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n.ptx-runestone-container code[class*=language-],\n.ptx-runestone-container pre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n}\n.runestone.datafile .datafile_caption {\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  display: block;\n  width: fit-content;\n  margin: 0 auto;\n}\n.runestone.datafile img {\n  margin: 0 auto;\n  display: block;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n}\n.runestone.datafile pre,\n.runestone.datafile textarea {\n  margin: 0 auto;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  background-color: var(--page-color);\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\nul[data-component=timedAssessment] {\n  margin: 0;\n  padding: 0;\n}\n:root.dark-mode .ptx-runestone-container code[class*=language-],\n:root.dark-mode .ptx-runestone-container pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n}\n.interactive-iframe-container > iframe {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n}\n.interactive__instructions {\n  max-width: var(--base-content-width);\n}\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n}\n.interactive-iframe-container__opener .icon {\n  font-size: 18px;\n}\n.interactive-iframe-container__opener:has(+ figcaption, + .instructions) {\n  float: left;\n  z-index: 1;\n  position: relative;\n}\n.interactive-iframe-container__opener + .instructions + figcaption {\n  clear: left;\n}\n.interactive-iframe-container__opener + .instructions {\n  margin-top: 0.5em;\n}\n.clipboardable {\n  position: relative;\n  display: flow-root;\n}\n.clipboardable .code-copy {\n  position: absolute;\n  right: 0;\n  top: 0;\n  opacity: 0.25;\n  border-width: 0;\n  background: none;\n  cursor: pointer;\n  z-index: 1;\n  white-space-collapse: collapse;\n  padding: 1px;\n  scale: 0.85;\n}\n.clipboardable .code-copy:hover {\n  opacity: 0.7;\n}\n.clipboardable .code-copy .checkmark {\n  display: none;\n}\n.clipboardable .code-copy.copied {\n  opacity: 1;\n  color: mediumseagreen;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.clipboardable .code-copy.copied .copyicon {\n  display: none;\n}\n.clipboardable .code-copy.copied .checkmark {\n  display: inline;\n}\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n}\n.clipboardable:has(.code-display) .code-display {\n  margin: 0;\n  padding: 0.25em 0;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\nlabel.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.ptx-content .problem-buttons {\n  display: flex;\n}\n.ptx-content .webwork-button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content .webwork-button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content .webwork-button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content .webwork-button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content .webwork-button.hidden {\n  display: none;\n}\n.ptx-content .webwork-button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.sage-interact.sagecell {\n  margin: 0;\n}\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  opacity: var(--permalink-opacity, 0);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\nli > .autopermalink {\n  left: -3.5em;\n}\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n.axiom-like > .para:first-of-type > .autopermalink,\n.example-like > .para:first-of-type > .autopermalink,\n.exercise-like > .para:first-of-type > .autopermalink,\n.solution-like > .para:first-of-type > .autopermalink,\n.assemblage-like > .para:first-of-type > .autopermalink,\n.definition-like > .para:first-of-type > .autopermalink,\n.remark-like > .para:first-of-type > .autopermalink,\n.project-like > .para:first-of-type > .autopermalink,\n.openproblem-like > .para:first-of-type > .autopermalink,\n.computation-like > .para:first-of-type > .autopermalink,\n.theorem-like > .para:first-of-type > .autopermalink,\n.proof > .para:first-of-type > .autopermalink,\n.case > .para:first-of-type > .autopermalink,\nli > .para:first-of-type > .autopermalink,\ndd > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.axiom-like > .introduction > .para:first-of-type > .autopermalink,\n.example-like > .introduction > .para:first-of-type > .autopermalink,\n.exercise-like > .introduction > .para:first-of-type > .autopermalink,\n.solution-like > .introduction > .para:first-of-type > .autopermalink,\n.assemblage-like > .introduction > .para:first-of-type > .autopermalink,\n.definition-like > .introduction > .para:first-of-type > .autopermalink,\n.remark-like > .introduction > .para:first-of-type > .autopermalink,\n.project-like > .introduction > .para:first-of-type > .autopermalink,\n.openproblem-like > .introduction > .para:first-of-type > .autopermalink,\n.computation-like > .introduction > .para:first-of-type > .autopermalink,\n.theorem-like > .introduction > .para:first-of-type > .autopermalink,\n.proof > .introduction > .para:first-of-type > .autopermalink,\n.case > .introduction > .para:first-of-type > .autopermalink,\nli > .introduction > .para:first-of-type > .autopermalink,\ndd > .introduction > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n:target {\n  scroll-margin-top: 45px;\n  animation: target-fade 10s 1;\n}\n@keyframes target-fade {\n  0% {\n    background-color: var(--activated-content-bg);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n:is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n:is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n  overflow-x: auto;\n}\n@container ptx-main (width > 640px) {\n  :is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n  :is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\nfigure.table-like {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    Noto Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon {\n  font-size: 30px;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.hide-type .codenumber:not(:empty)::after {\n  content: \" \";\n}\n.ptx-navbar {\n  background:\n    linear-gradient(\n      to bottom,\n      var(--banner-background),\n      var(--navbar-background));\n}\n.ptx-navbar .button:not(.copy-embed-button) {\n  background:\n    linear-gradient(\n      to bottom,\n      var(--banner-background),\n      var(--navbar-background));\n}\n.ptx-navbar .button:not(.copy-embed-button):hover:not(.disabled) {\n  background-image: none;\n}\n.ptx-navbar .button:not(.copy-embed-button).open {\n  background-image: none;\n}\n:root {\n  color-scheme: light;\n}\n:root:not(.dark-mode) {\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #fafafa;\n  --navbar-background: #ededed;\n  --footer-background: var(--banner-background);\n  --toc-border-color: var(--primary-color-white-80);\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--primary-color-black-30);\n  --tocitem-highlight-background: var(--primary-color-white-15);\n  --tocitem-highlight-text-color: white;\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-white-15);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--toc-text-color);\n  --toclevel2-background: var(--content-background);\n  --toclevel2-text-color: var(--toc-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: var(--primary-color-black-20);\n  --ptx-image-bg: transparent;\n  --activated-content-bg: rgba(241, 185, 255, 0.3);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: #f1f3f9;\n  --knowl-border-color: #3d5893;\n  --knowl-nested-1-background: #e2e9f8;\n  --knowl-nested-2-background: #f1f3f9;\n  --knowl-nested-3-background: #e2e9f8;\n  --knowl-nested-4-background: #f1f3f9;\n  --block-body-background: #f1f3f9;\n  --block-border-color: #3d5893;\n  --block-head-color: white;\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: #ededed;\n  --button-text-color: #333333;\n  --button-border-color: #ccc;\n  --button-hover-background: var(--primary-color-white-80);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: #f6f3f7;\n  --definition-like-border-color: #9a51b3;\n  --theorem-like-body-background: #f6f3f7;\n  --theorem-like-border-color: #9a51b3;\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: #f7f3f4;\n  --remark-like-border-color: #b3516a;\n  --computation-like-body-background: #f6f3f7;\n  --computation-like-border-color: #9a51b3;\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: #f6f3f7;\n  --proof-like-border-color: #9a51b3;\n  --example-like-body-background: var(--content-background);\n  --example-like-border-color: var(--color-main);\n  --project-like-body-background: #f3f7f6;\n  --project-like-border-color: #51b39a;\n  --goal-like-body-background: #f7f3f4;\n  --goal-like-border-color: #b3516a;\n  --solution-like-body-background: #f3f7f6;\n  --solution-like-border-color: #51b39a;\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --primary-color: hsl(221, 61%, 21%);\n  --assemb-border-color: var(--primary-color-white-50);\n  --color-main: hsl(221, 61%, 21%);\n  --color-meta: #b3516a;\n  --color-do: #51b39a;\n  --color-fact: #9a51b3;\n  --exercise-like-body-background: #f3f7f6;\n  --exercise-like-border-color: #51b39a;\n  --asside-like-body-background: #f7f3f4;\n  --asside-like-border-color: #b3516a;\n}\n:root.dark-mode {\n  color-scheme: dark;\n  --page-color: var(--background-color);\n  --content-background: var(--page-color);\n  --page-border-color: var(--background-color-white-25);\n  --doc-title-color: var(--primary-color);\n  --byline-color: var(--background-color-white-50);\n  --banner-background: hsl(210, 10%, 10%);\n  --navbar-background: var(--background-color-gray-15);\n  --footer-background: var(--background-color-black-10);\n  --toc-border-color: #555;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--primary-color-gray-5);\n  --tocitem-highlight-text-color: var(--background-color-black-50);\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-gray-5);\n  --tocitem-active-text-color: var(--background-color-black-50);\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--primary-color-white-40);\n  --toclevel2-background: var(--content-background);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #f2f2f2;\n  --body-title-color: var(--primary-color-white-20);\n  --ptx-image-bg: white;\n  --activated-content-bg: rgba(255, 237, 185, 0.2);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color-white-10);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--doc-title-color);\n  --knowl-background: var(--background-color-black-10);\n  --knowl-border-color: var(--background-color-white-20);\n  --knowl-nested-1-background: var(--background-color-gray-10);\n  --knowl-nested-2-background: var(--background-color-black-10);\n  --knowl-nested-3-background: var(--background-color-gray-10);\n  --knowl-nested-4-background: var(--background-color-black-10);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--background-color-gray-15);\n  --button-text-color: var(--body-text-color);\n  --button-border-color: var(--background-color-white-25);\n  --button-hover-background: var(--primary-color-black-50);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: var(--background-color-gray-20);\n  --code-inline-background: var(--background-color-gray-20);\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color: hsl(210, 50%, 50%);\n  --background-color: hsl(210, 10%, 10%);\n  --background-color-white-1: color-mix(in oklab, var(--background-color), white 1%);\n  --background-color-white-2: color-mix(in oklab, var(--background-color), white 2%);\n  --background-color-white-3: color-mix(in oklab, var(--background-color), white 3%);\n  --background-color-white-4: color-mix(in oklab, var(--background-color), white 4%);\n  --background-color-white-5: color-mix(in oklab, var(--background-color), white 5%);\n  --background-color-white-10: color-mix(in oklab, var(--background-color), white 10%);\n  --background-color-white-15: color-mix(in oklab, var(--background-color), white 15%);\n  --background-color-white-20: color-mix(in oklab, var(--background-color), white 20%);\n  --background-color-white-25: color-mix(in oklab, var(--background-color), white 25%);\n  --background-color-white-30: color-mix(in oklab, var(--background-color), white 30%);\n  --background-color-white-35: color-mix(in oklab, var(--background-color), white 35%);\n  --background-color-white-40: color-mix(in oklab, var(--background-color), white 40%);\n  --background-color-white-50: color-mix(in oklab, var(--background-color), white 50%);\n  --background-color-white-60: color-mix(in oklab, var(--background-color), white 60%);\n  --background-color-white-65: color-mix(in oklab, var(--background-color), white 65%);\n  --background-color-white-70: color-mix(in oklab, var(--background-color), white 70%);\n  --background-color-white-75: color-mix(in oklab, var(--background-color), white 75%);\n  --background-color-white-80: color-mix(in oklab, var(--background-color), white 80%);\n  --background-color-white-85: color-mix(in oklab, var(--background-color), white 85%);\n  --background-color-white-90: color-mix(in oklab, var(--background-color), white 90%);\n  --background-color-white-95: color-mix(in oklab, var(--background-color), white 95%);\n  --background-color-white-96: color-mix(in oklab, var(--background-color), white 96%);\n  --background-color-white-97: color-mix(in oklab, var(--background-color), white 97%);\n  --background-color-white-98: color-mix(in oklab, var(--background-color), white 98%);\n  --background-color-white-99: color-mix(in oklab, var(--background-color), white 99%);\n  --background-color-black-1: color-mix(in oklab, var(--background-color), black 1%);\n  --background-color-black-2: color-mix(in oklab, var(--background-color), black 2%);\n  --background-color-black-3: color-mix(in oklab, var(--background-color), black 3%);\n  --background-color-black-4: color-mix(in oklab, var(--background-color), black 4%);\n  --background-color-black-5: color-mix(in oklab, var(--background-color), black 5%);\n  --background-color-black-10: color-mix(in oklab, var(--background-color), black 10%);\n  --background-color-black-15: color-mix(in oklab, var(--background-color), black 15%);\n  --background-color-black-20: color-mix(in oklab, var(--background-color), black 20%);\n  --background-color-black-25: color-mix(in oklab, var(--background-color), black 25%);\n  --background-color-black-30: color-mix(in oklab, var(--background-color), black 30%);\n  --background-color-black-35: color-mix(in oklab, var(--background-color), black 35%);\n  --background-color-black-40: color-mix(in oklab, var(--background-color), black 40%);\n  --background-color-black-50: color-mix(in oklab, var(--background-color), black 50%);\n  --background-color-black-60: color-mix(in oklab, var(--background-color), black 60%);\n  --background-color-black-65: color-mix(in oklab, var(--background-color), black 65%);\n  --background-color-black-70: color-mix(in oklab, var(--background-color), black 70%);\n  --background-color-black-75: color-mix(in oklab, var(--background-color), black 75%);\n  --background-color-black-80: color-mix(in oklab, var(--background-color), black 80%);\n  --background-color-black-85: color-mix(in oklab, var(--background-color), black 85%);\n  --background-color-black-90: color-mix(in oklab, var(--background-color), black 90%);\n  --background-color-black-95: color-mix(in oklab, var(--background-color), black 95%);\n  --background-color-black-96: color-mix(in oklab, var(--background-color), black 96%);\n  --background-color-black-97: color-mix(in oklab, var(--background-color), black 97%);\n  --background-color-black-98: color-mix(in oklab, var(--background-color), black 98%);\n  --background-color-black-99: color-mix(in oklab, var(--background-color), black 99%);\n  --background-color-gray-1: color-mix(in oklab, var(--background-color), gray 1%);\n  --background-color-gray-2: color-mix(in oklab, var(--background-color), gray 2%);\n  --background-color-gray-3: color-mix(in oklab, var(--background-color), gray 3%);\n  --background-color-gray-4: color-mix(in oklab, var(--background-color), gray 4%);\n  --background-color-gray-5: color-mix(in oklab, var(--background-color), gray 5%);\n  --background-color-gray-10: color-mix(in oklab, var(--background-color), gray 10%);\n  --background-color-gray-15: color-mix(in oklab, var(--background-color), gray 15%);\n  --background-color-gray-20: color-mix(in oklab, var(--background-color), gray 20%);\n  --background-color-gray-25: color-mix(in oklab, var(--background-color), gray 25%);\n  --background-color-gray-30: color-mix(in oklab, var(--background-color), gray 30%);\n  --background-color-gray-35: color-mix(in oklab, var(--background-color), gray 35%);\n  --background-color-gray-40: color-mix(in oklab, var(--background-color), gray 40%);\n  --background-color-gray-50: color-mix(in oklab, var(--background-color), gray 50%);\n  --background-color-gray-60: color-mix(in oklab, var(--background-color), gray 60%);\n  --background-color-gray-65: color-mix(in oklab, var(--background-color), gray 65%);\n  --background-color-gray-70: color-mix(in oklab, var(--background-color), gray 70%);\n  --background-color-gray-75: color-mix(in oklab, var(--background-color), gray 75%);\n  --background-color-gray-80: color-mix(in oklab, var(--background-color), gray 80%);\n  --background-color-gray-85: color-mix(in oklab, var(--background-color), gray 85%);\n  --background-color-gray-90: color-mix(in oklab, var(--background-color), gray 90%);\n  --background-color-gray-95: color-mix(in oklab, var(--background-color), gray 95%);\n  --background-color-gray-96: color-mix(in oklab, var(--background-color), gray 96%);\n  --background-color-gray-97: color-mix(in oklab, var(--background-color), gray 97%);\n  --background-color-gray-98: color-mix(in oklab, var(--background-color), gray 98%);\n  --background-color-gray-99: color-mix(in oklab, var(--background-color), gray 99%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n}\n/*! Theme: denver */\n/*# sourceMappingURL=theme-denver.css.map */\n"
  },
  {
    "path": "css/dist/theme-greeley.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=PT Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/html/greeley/theme-greeley.scss */\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n  }\n  .ptx-page,\n  .ptx-main,\n  .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n  .ptx-sagecell,\n  .tabular,\n  .table-like,\n  .figure-like,\n  .exercise-like {\n    break-inside: avoid;\n  }\n  .heading {\n    break-after: avoid;\n  }\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n}\n.heading .print-links .print-link {\n  font-family: var(--font-body);\n  padding: 0.1em 0.2em;\n}\n.heading .print-links .material-symbols-outlined {\n  margin-top: 5pt;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n.searchbox .searchwidget {\n  height: 100%;\n}\n.searchbox .searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  padding: 1em;\n  left: max(10vw, (100vw - 800px) / 2);\n  width: 80vw;\n  max-width: 800px;\n  border: 2px solid var(--body-text-color);\n  background: var(--knowl-background, #eaf0f6);\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.searchbox .searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox .search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n  height: 35px;\n}\n.searchbox .ptxsearch {\n  flex: 1 1;\n}\n.searchbox .closesearchresults {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.searchbox .closesearchresults:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .closesearchresults:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.searchbox .closesearchresults.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.searchbox .closesearchresults.hidden {\n  display: none;\n}\n.searchbox .closesearchresults.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .detailed_result {\n  margin-bottom: 10px;\n}\n.searchbox .searchresults a:hover {\n  text-decoration: underline;\n  background: var(--link-active-background);\n}\n.searchbox .searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n  background: var(--content-background, white);\n  border: 1px solid var(--page-border-color, #ccc);\n}\n.searchbox .searchresults:empty {\n  display: none;\n}\n.searchbox .search-result-bullet {\n  list-style-type: none;\n}\n.searchbox .search-result-score {\n  display: none;\n}\n.searchbox .no_result {\n  font-size: 90%;\n  font-weight: 200;\n}\n.searchbox .low_result {\n  font-weight: 200;\n}\n.searchbox .medium_result {\n  font-weight: 500;\n}\n.searchbox .high_result {\n  font-weight: 700;\n}\n.searchbox .searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.searchbox .search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.searchbox .search-result-clip-highlight {\n  background: var(--searchresultshighlight);\n}\n.searchbox .searchresultsbackground {\n  position: fixed;\n  top: 0;\n  background: var(--searchresultsbackground, white);\n  width: 100vw;\n  height: 100%;\n  left: 0;\n  z-index: 4999;\n}\n@media screen and (max-width: 800px) {\n  .searchbox .searchresultsplaceholder {\n    bottom: 10vh;\n  }\n}\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n.multiplechoice_section label > .para {\n  display: inline;\n}\n.ptx-content .ptx-runestone-container .ac_question {\n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n.runestone .runestone_caption {\n  display: none;\n}\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: 0.93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n.ptx-runestone-container code[class*=language-],\n.ptx-runestone-container pre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n}\n.runestone.datafile .datafile_caption {\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  display: block;\n  width: fit-content;\n  margin: 0 auto;\n}\n.runestone.datafile img {\n  margin: 0 auto;\n  display: block;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n}\n.runestone.datafile pre,\n.runestone.datafile textarea {\n  margin: 0 auto;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  background-color: var(--page-color);\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\nul[data-component=timedAssessment] {\n  margin: 0;\n  padding: 0;\n}\n:root.dark-mode .ptx-runestone-container code[class*=language-],\n:root.dark-mode .ptx-runestone-container pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n}\n.interactive-iframe-container > iframe {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n}\n.interactive__instructions {\n  max-width: var(--base-content-width);\n}\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n}\n.interactive-iframe-container__opener .icon {\n  font-size: 18px;\n}\n.interactive-iframe-container__opener:has(+ figcaption, + .instructions) {\n  float: left;\n  z-index: 1;\n  position: relative;\n}\n.interactive-iframe-container__opener + .instructions + figcaption {\n  clear: left;\n}\n.interactive-iframe-container__opener + .instructions {\n  margin-top: 0.5em;\n}\n.clipboardable {\n  position: relative;\n  display: flow-root;\n}\n.clipboardable .code-copy {\n  position: absolute;\n  right: 0;\n  top: 0;\n  opacity: 0.25;\n  border-width: 0;\n  background: none;\n  cursor: pointer;\n  z-index: 1;\n  white-space-collapse: collapse;\n  padding: 1px;\n  scale: 0.85;\n}\n.clipboardable .code-copy:hover {\n  opacity: 0.7;\n}\n.clipboardable .code-copy .checkmark {\n  display: none;\n}\n.clipboardable .code-copy.copied {\n  opacity: 1;\n  color: mediumseagreen;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.clipboardable .code-copy.copied .copyicon {\n  display: none;\n}\n.clipboardable .code-copy.copied .checkmark {\n  display: inline;\n}\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n}\n.clipboardable:has(.code-display) .code-display {\n  margin: 0;\n  padding: 0.25em 0;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\nlabel.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.ptx-content .problem-buttons {\n  display: flex;\n}\n.ptx-content .webwork-button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content .webwork-button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content .webwork-button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content .webwork-button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content .webwork-button.hidden {\n  display: none;\n}\n.ptx-content .webwork-button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.sage-interact.sagecell {\n  margin: 0;\n}\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  opacity: var(--permalink-opacity, 0);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\nli > .autopermalink {\n  left: -3.5em;\n}\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n.axiom-like > .para:first-of-type > .autopermalink,\n.example-like > .para:first-of-type > .autopermalink,\n.exercise-like > .para:first-of-type > .autopermalink,\n.solution-like > .para:first-of-type > .autopermalink,\n.assemblage-like > .para:first-of-type > .autopermalink,\n.definition-like > .para:first-of-type > .autopermalink,\n.remark-like > .para:first-of-type > .autopermalink,\n.project-like > .para:first-of-type > .autopermalink,\n.openproblem-like > .para:first-of-type > .autopermalink,\n.computation-like > .para:first-of-type > .autopermalink,\n.theorem-like > .para:first-of-type > .autopermalink,\n.proof > .para:first-of-type > .autopermalink,\n.case > .para:first-of-type > .autopermalink,\nli > .para:first-of-type > .autopermalink,\ndd > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.axiom-like > .introduction > .para:first-of-type > .autopermalink,\n.example-like > .introduction > .para:first-of-type > .autopermalink,\n.exercise-like > .introduction > .para:first-of-type > .autopermalink,\n.solution-like > .introduction > .para:first-of-type > .autopermalink,\n.assemblage-like > .introduction > .para:first-of-type > .autopermalink,\n.definition-like > .introduction > .para:first-of-type > .autopermalink,\n.remark-like > .introduction > .para:first-of-type > .autopermalink,\n.project-like > .introduction > .para:first-of-type > .autopermalink,\n.openproblem-like > .introduction > .para:first-of-type > .autopermalink,\n.computation-like > .introduction > .para:first-of-type > .autopermalink,\n.theorem-like > .introduction > .para:first-of-type > .autopermalink,\n.proof > .introduction > .para:first-of-type > .autopermalink,\n.case > .introduction > .para:first-of-type > .autopermalink,\nli > .introduction > .para:first-of-type > .autopermalink,\ndd > .introduction > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n:target {\n  scroll-margin-top: 45px;\n  animation: target-fade 10s 1;\n}\n@keyframes target-fade {\n  0% {\n    background-color: var(--activated-content-bg);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n:is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n:is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n  overflow-x: auto;\n}\n@container ptx-main (width > 640px) {\n  :is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n  :is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\nfigure.table-like {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n:root {\n  --base-content-width: 600px;\n  --content-padding: 120px;\n}\nbody {\n  margin: 0;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.pretext {\n  color: var(--body-text-color);\n  font-family: var(--font-body);\n}\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n}\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;\n  container-type: inline-size;\n}\n.ptx-main .ptx-content {\n  max-width: 840px;\n  padding: 24px 120px 60px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.worksheet .ptx-main .ptx-content {\n  max-width: 960px;\n}\n.ptx-page {\n  max-width: 1480px;\n  margin-left: auto;\n  margin-right: auto;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n.ptx-content .print-preview-header {\n  display: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: #BF1722;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: 840px;\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: 120px;\n  padding-right: 120px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content-footer .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content-footer .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content-footer .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content-footer .button.hidden {\n  display: none;\n}\n.ptx-content-footer .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\nbody.standalone-page .ptx-page {\n  max-width: 1600px;\n}\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding: 10px 10px;\n  border-bottom: none;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  max-width: 840px;\n}\n.ptx-masthead a {\n  color: var(--doc-title-color, #2a5ea4);\n}\n.ptx-masthead a:active {\n  color: var(--link-active-text-color);\n}\n.ptx-masthead .title-container {\n  font-family: var(--font-headings);\n  font-size: 2em;\n  padding-left: 9.68px;\n  overflow: hidden;\n  flex: 1;\n}\n.ptx-masthead .title-container .heading {\n  font-weight: 700;\n  font-size: 100%;\n  line-height: 1.25em;\n}\n.ptx-masthead .title-container .title:has(+ .subtitle)::after {\n  content: \":\";\n}\n.ptx-masthead .title-container .subtitle {\n  font-weight: normal;\n}\n.ptx-masthead .logo-link {\n  height: 5em;\n  display: flex;\n}\n.ptx-masthead .logo-link img {\n  max-height: 100%;\n}\n.ptx-masthead .logo-link img[src$=\".svg\"] {\n  height: 100%;\n}\n.ptx-masthead .byline {\n  color: var(--byline-color);\n  font-weight: normal;\n  margin: 0;\n  font-size: 62.5%;\n  min-height: inherit;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n  }\n  .ptx-masthead .ptx-banner {\n    padding: 10px 28px;\n    display: flex;\n    justify-content: center;\n  }\n  .ptx-masthead .logo-link::before {\n    font-size: 1rem;\n    margin-top: 0;\n  }\n  .ptx-masthead .title-container {\n    width: fit-content;\n    flex: unset;\n  }\n  .ptx-masthead .title-container .heading {\n    line-height: 1em;\n  }\n  .ptx-masthead .title-container .heading .subtitle {\n    display: block;\n    font-size: 80%;\n    line-height: 1em;\n  }\n  .ptx-masthead .byline {\n    font-size: 50%;\n  }\n}\n@media screen and (width <= 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    font-size: 1em;\n  }\n  .ptx-masthead .logo-link {\n    display: none;\n  }\n  .ptx-masthead .byline {\n    display: none;\n  }\n}\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: 36px;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar .ptx-navbar-contents {\n  position: relative;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n  max-width: 840px;\n  margin: 0 auto;\n}\n.ptx-navbar .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-navbar .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-navbar .button.hidden {\n  display: none;\n}\n.ptx-navbar .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button {\n  height: 100%;\n  border-width: 0;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n  margin-left: 0;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.ptx-navbar .pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar .embed-popup {\n  padding: 10px;\n  background-color: var(--navbar-background);\n  position: absolute;\n  margin-top: 36px;\n  border: 1px solid var(--page-border-color);\n  border-radius: 3px;\n  box-shadow: 0 0 5px var(--primary-color-gray-80);\n  color: var(--button-text-color);\n}\n.ptx-navbar .embed-popup .embed-code-container {\n  width: \"100%\";\n  padding: 5px;\n}\n.ptx-navbar .embed-popup .embed-code-container .embed-code-textbox {\n  width: 100%;\n  padding: 10px;\n  height: 5em;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  min-width: 70px;\n}\n.runestone-profile {\n  position: relative;\n}\n.runestone-profile .dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: var(--dropdown-background);\n  min-width: 160px;\n  z-index: 100;\n  border: 1px solid var(--dropdown-border-color);\n  right: 0;\n  top: 35px;\n  text-align: start;\n  padding: 0;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: var(--dropdown-text-color);\n  padding: 2px 8px;\n}\n.runestone-profile .dropdown-content a:is(:hover, :focus-visible) {\n  background-color: var(--dropdown-hover-background);\n  color: var(--dropdown-hover-text-color);\n}\n.runestone-profile .dropdown-content hr {\n  color: var(--dropdown-border-color);\n  margin: 4px 0;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) {\n  overflow: visible;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) .dropdown-content {\n  display: block;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .button {\n    border-left-width: 1px;\n    border-right-width: 1px;\n    border-color: var(--page-border-color);\n  }\n  .ptx-navbar > *:not(:first-child) {\n    margin-left: -1px;\n  }\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    max-width: 100vw;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar .embed-popup {\n    margin-top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n    display: none;\n  }\n}\n.ptx-sidebar {\n  align-self: flex-start;\n}\n.ptx-sidebar.visible {\n  display: block;\n}\n.ptx-sidebar.hidden {\n  display: none;\n  height: 0;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  background: var(--toc-background);\n  margin: 0;\n  font-size: 0.9rem;\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--tocitem-background);\n}\n.ptx-toc .toc-item-list .active {\n  list-style: none;\n}\n.ptx-toc .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n  border-color: var(--toc-border-color);\n}\n.ptx-toc .toc-item a {\n  color: inherit;\n}\n.ptx-toc .toc-item.active:not(:has(.toc-item.active)) {\n  color: var(--tocitem-active-text-color) !important;\n  background-color: var(--tocitem-active-background) !important;\n  border-color: var(--tocitem-active-border-color) !important;\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-weight: 500;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-weight: normal;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.focused {\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item.hidden {\n  display: none;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 1.25em;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--tocitem-highlight-background);\n  color: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"add\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"remove\";\n}\n.ptx-sidebar {\n  flex: 0 0 240px;\n  position: sticky;\n  top: 36px;\n  overflow-y: hidden;\n}\n.ptx-toc {\n  position: sticky;\n  top: 36px;\n  overflow-y: auto;\n  overflow-x: hidden;\n  height: calc(100vh - 36px);\n  margin-top: -1px;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 3px solid var(--toc-border-color);\n}\n@media screen and (max-width: 944px) {\n  .ptx-sidebar {\n    display: none;\n    position: sticky;\n    top: 36px;\n    background: var(--content-background);\n    min-height: 30vh;\n    border-right: 2px solid var(--toc-border-color);\n    border-bottom: 2px solid var(--toc-border-color);\n    width: 240px;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-sidebar {\n    position: fixed;\n    z-index: 1000;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: 36px;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n.ptx-toc {\n  scrollbar-color: var(--content-background) var(--content-background);\n}\n.ptx-toc:hover {\n  scrollbar-color: var(--page-border-color) var(--content-background);\n}\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n}\n.ptx-page-footer > a {\n  margin: 1em 0;\n  color: var(--body-text-color);\n}\n.ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-page-footer .feedback-link {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-page-footer .feedback-link:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-page-footer .feedback-link:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-page-footer .feedback-link.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-page-footer .feedback-link.hidden {\n  display: none;\n}\n.ptx-page-footer .feedback-link.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n@media screen and (max-width: 800px) {\n  .ptx-page-footer {\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: 34px;\n  }\n  .ptx-page-footer > a > .logo:first-child {\n    height: 2em;\n  }\n}\n@container ptx-main (width > 640px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\n.ptx-runestone-container .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  min-width: 100%;\n  margin-left: auto;\n}\n@container ptx-main (width > 640px) {\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 20px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 640px));\n  }\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: auto;\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: 0;\n}\n.runestone.ac_section > div > div > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone .exercise-statement {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.hparsons_section .hp_question,\n.hparsons_section .hp_feedback {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n}\n.runestone.parsons_section > .parsons .sortable-code-container {\n  display: flex;\n  flex-flow: wrap;\n  justify-content: center;\n  gap: 15px;\n  margin: 10px auto;\n}\n.runestone.parsons_section > .parsons .sortable-code {\n  margin: 0;\n}\n.runestone.parsons_section > .parsons .runestone_caption_text {\n  max-width: unset;\n}\n.runestone.parsons_section > .parsons > div > *:not(.sortable-code-container) {\n  max-width: 600px;\n  margin-left: auto;\n  margin-right: auto;\n}\n@media (width < 850px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100%;\n    margin-left: 0px;\n  }\n}\n.ptx-main {\n  margin-right: 320px;\n}\n.ptx-sidebar.hidden + .ptx-main {\n  margin-left: 320px;\n}\n.ptx-main {\n  box-shadow: 5px 10px 40px -10px var(--primary-color-gray-80);\n}\n@media (prefers-color-scheme: dark) {\n  .ptx-main {\n    box-shadow: 5px 10px 40px -10px black;\n  }\n}\n.ptx-sidebar {\n  margin-right: 80px;\n}\n.ptx-navbar {\n  border: none;\n}\n.ptx-navbar .toc-toggle {\n  transform: translateX(-320px);\n  position: absolute;\n  left: 0;\n  justify-content: left;\n}\n.ptx-toc {\n  border: none;\n  position: sticky;\n  top: 36px;\n}\n.toc-item.visible {\n  font-size: 0.95em;\n  padding-left: 8px;\n}\n.ptx-page {\n  margin-top: 36px;\n  margin-bottom: 36px;\n}\n@media screen and (width <= 1480px) {\n  .ptx-page {\n    margin-left: 0;\n    max-width: 100%;\n  }\n  .ptx-main {\n    margin-right: calc(100% - 840px - 320px);\n    max-width: 840px;\n  }\n  .ptx-sidebar.hidden + .ptx-main {\n    margin-right: auto;\n    margin-left: auto;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 320px;\n  }\n}\n@media screen and (width <= 1240px) {\n  .ptx-main {\n    box-shadow: unset;\n    margin-right: auto;\n  }\n  .ptx-main .ptx-content {\n    padding-left: 20px;\n    padding-right: 20px;\n    max-width: 640px;\n  }\n  .ptx-sidebar {\n    margin-right: 0;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 240px;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: translateX(-240px);\n    justify-content: center;\n  }\n  .ptx-page {\n    margin-top: unset;\n    margin-bottom: unset;\n  }\n  .ptx-toc {\n    padding-top: 36px;\n  }\n}\n@media screen and (width <= 880px) {\n  .ptx-sidebar {\n    display: none;\n  }\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: none;\n    position: relative;\n    justify-content: center;\n  }\n  .ptx-content-footer {\n    padding-left: 20px;\n    padding-right: 20px;\n  }\n}\n.toc-item:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.standalone-page {\n  margin: 0;\n  padding: 0;\n}\n.standalone-page .ptx-page {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.standalone-page .ptx-main {\n  margin-right: auto;\n  margin-left: auto;\n  box-shadow: none;\n  max-width: 100%;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon {\n  font-size: 30px;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.hide-type .codenumber:not(:empty)::after {\n  content: \". \";\n}\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n@media screen and (min-width: 1450px) {\n  details.aside-like {\n    position: relative;\n    margin-left: -365px;\n    width: 200px;\n    right: -365px;\n    float: right;\n    clear: right;\n  }\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n  details.aside-like > .knowl__content {\n    margin-left: 0;\n    margin-right: 0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 3px solid var(--knowl-border-color);\n  border-radius: 8px;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl),\n.goal-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 4px solid var(--block-border-color);\n  background-color: var(--goal-like-body-background);\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.goal-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.theorem-like .heading,\n.definition-like .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.theorem-like .para,\n.definition-like .para {\n  font-style: italic;\n}\n.example-like > .heading,\n.project-like > .heading,\n.remark-like > .heading,\n.openproblem-like > .heading,\n.computation-like > .heading,\n.commentary > .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.proof {\n  padding-bottom: 1.5em;\n  padding-left: 1em;\n  padding-right: 1em;\n}\n.proof::after {\n  content: \"\\25a1\";\n  position: absolute;\n  right: 0;\n  bottom: 1.5em;\n}\n.proof .heading {\n  font-size: unset;\n  font-weight: bold;\n  font-style: italic;\n}\n.solution-like .heading {\n  display: inline;\n  font-style: italic;\n  font-size: unset;\n}\n.tasks .knowl__content {\n  border: none;\n}\n.tasks .knowl__content .theorem-like,\n.tasks .knowl__content .definition-like,\n.tasks .knowl__content .example-like,\n.tasks .knowl__content .project-like,\n.tasks .knowl__content .remark-like,\n.tasks .knowl__content .openproblem-like,\n.tasks .knowl__content .computation-like,\n.tasks .knowl__content .project-like,\n.tasks .knowl__content .commentary {\n  padding-left: 0;\n  margin-left: 0;\n  border-left: none;\n}\n.tasks .knowl__content .theorem-like::after,\n.tasks .knowl__content .definition-like::after,\n.tasks .knowl__content .example-like::after,\n.tasks .knowl__content .project-like::after,\n.tasks .knowl__content .remark-like::after,\n.tasks .knowl__content .openproblem-like::after,\n.tasks .knowl__content .computation-like::after,\n.tasks .knowl__content .project-like::after,\n.tasks .knowl__content .commentary::after {\n  border-bottom: none;\n  display: none;\n}\nsection.solutions:not(:is(:first-child)):not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 2px solid var(--solution-border-color);\n  background-color: var(--content-background);\n}\nsection.solutions:not(:is(:first-child)):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.paragraphs > .heading:first-child,\narticle > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.paragraphs > .heading:first-child:after,\narticle > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction),\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child,\narticle > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  color-scheme: light;\n}\n:root:not(.dark-mode) {\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #f8f8f8;\n  --navbar-background: var(--primary-color);\n  --footer-background: var(--banner-background);\n  --toc-border-color: #666;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--primary-color-black-30);\n  --tocitem-highlight-background: #3a3a3a;\n  --tocitem-highlight-text-color: #fff;\n  --tocitem-highlight-border-color: #3a3a3a;\n  --tocitem-active-background: var(--primary-color-white-15);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--toc-text-color);\n  --toclevel2-background: var(--content-background);\n  --toclevel2-text-color: var(--toc-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: var(--primary-color-black-20);\n  --ptx-image-bg: transparent;\n  --activated-content-bg: rgba(241, 185, 255, 0.3);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color);\n  --link-active-background: var(--primary-color-white-96);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--primary-color-white-96);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: #f8f8f8;\n  --knowl-border-color: var(--primary-color-gray-80);\n  --knowl-nested-1-background: #f5f5ff;\n  --knowl-nested-2-background: #fffff5;\n  --knowl-nested-3-background: #f5ffff;\n  --knowl-nested-4-background: #fff5f5;\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--primary-color);\n  --button-text-color: var(--primary-color-white-90);\n  --button-border-color: #3a3a3a;\n  --button-hover-background: #3a3a3a;\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --primary-color: hsl(214, 59%, 40%);\n  --toc-border: var(--primary-color-gray-10);\n}\n:root.dark-mode {\n  color-scheme: dark;\n  --page-color: var(--background-color);\n  --content-background: var(--page-color);\n  --page-border-color: var(--background-color-white-25);\n  --doc-title-color: var(--primary-color);\n  --byline-color: var(--background-color-white-50);\n  --banner-background: hsl(214, 20%, 10%);\n  --navbar-background: var(--background-color-gray-15);\n  --footer-background: var(--background-color-black-10);\n  --toc-border-color: #555;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--primary-color-gray-5);\n  --tocitem-highlight-text-color: var(--background-color-black-50);\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-gray-5);\n  --tocitem-active-text-color: var(--background-color-black-50);\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--primary-color-white-40);\n  --toclevel2-background: var(--content-background);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #f2f2f2;\n  --body-title-color: var(--primary-color-white-20);\n  --ptx-image-bg: white;\n  --activated-content-bg: rgba(255, 237, 185, 0.2);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color-white-10);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--doc-title-color);\n  --knowl-background: var(--background-color-black-10);\n  --knowl-border-color: var(--background-color-white-20);\n  --knowl-nested-1-background: var(--background-color-gray-10);\n  --knowl-nested-2-background: var(--background-color-black-10);\n  --knowl-nested-3-background: var(--background-color-gray-10);\n  --knowl-nested-4-background: var(--background-color-black-10);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--background-color-gray-15);\n  --button-text-color: var(--body-text-color);\n  --button-border-color: var(--background-color-white-25);\n  --button-hover-background: var(--primary-color-black-50);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: var(--background-color-gray-20);\n  --code-inline-background: var(--background-color-gray-20);\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color: hsl(214, 50%, 50%);\n  --background-color: hsl(214, 20%, 10%);\n  --background-color-white-1: color-mix(in oklab, var(--background-color), white 1%);\n  --background-color-white-2: color-mix(in oklab, var(--background-color), white 2%);\n  --background-color-white-3: color-mix(in oklab, var(--background-color), white 3%);\n  --background-color-white-4: color-mix(in oklab, var(--background-color), white 4%);\n  --background-color-white-5: color-mix(in oklab, var(--background-color), white 5%);\n  --background-color-white-10: color-mix(in oklab, var(--background-color), white 10%);\n  --background-color-white-15: color-mix(in oklab, var(--background-color), white 15%);\n  --background-color-white-20: color-mix(in oklab, var(--background-color), white 20%);\n  --background-color-white-25: color-mix(in oklab, var(--background-color), white 25%);\n  --background-color-white-30: color-mix(in oklab, var(--background-color), white 30%);\n  --background-color-white-35: color-mix(in oklab, var(--background-color), white 35%);\n  --background-color-white-40: color-mix(in oklab, var(--background-color), white 40%);\n  --background-color-white-50: color-mix(in oklab, var(--background-color), white 50%);\n  --background-color-white-60: color-mix(in oklab, var(--background-color), white 60%);\n  --background-color-white-65: color-mix(in oklab, var(--background-color), white 65%);\n  --background-color-white-70: color-mix(in oklab, var(--background-color), white 70%);\n  --background-color-white-75: color-mix(in oklab, var(--background-color), white 75%);\n  --background-color-white-80: color-mix(in oklab, var(--background-color), white 80%);\n  --background-color-white-85: color-mix(in oklab, var(--background-color), white 85%);\n  --background-color-white-90: color-mix(in oklab, var(--background-color), white 90%);\n  --background-color-white-95: color-mix(in oklab, var(--background-color), white 95%);\n  --background-color-white-96: color-mix(in oklab, var(--background-color), white 96%);\n  --background-color-white-97: color-mix(in oklab, var(--background-color), white 97%);\n  --background-color-white-98: color-mix(in oklab, var(--background-color), white 98%);\n  --background-color-white-99: color-mix(in oklab, var(--background-color), white 99%);\n  --background-color-black-1: color-mix(in oklab, var(--background-color), black 1%);\n  --background-color-black-2: color-mix(in oklab, var(--background-color), black 2%);\n  --background-color-black-3: color-mix(in oklab, var(--background-color), black 3%);\n  --background-color-black-4: color-mix(in oklab, var(--background-color), black 4%);\n  --background-color-black-5: color-mix(in oklab, var(--background-color), black 5%);\n  --background-color-black-10: color-mix(in oklab, var(--background-color), black 10%);\n  --background-color-black-15: color-mix(in oklab, var(--background-color), black 15%);\n  --background-color-black-20: color-mix(in oklab, var(--background-color), black 20%);\n  --background-color-black-25: color-mix(in oklab, var(--background-color), black 25%);\n  --background-color-black-30: color-mix(in oklab, var(--background-color), black 30%);\n  --background-color-black-35: color-mix(in oklab, var(--background-color), black 35%);\n  --background-color-black-40: color-mix(in oklab, var(--background-color), black 40%);\n  --background-color-black-50: color-mix(in oklab, var(--background-color), black 50%);\n  --background-color-black-60: color-mix(in oklab, var(--background-color), black 60%);\n  --background-color-black-65: color-mix(in oklab, var(--background-color), black 65%);\n  --background-color-black-70: color-mix(in oklab, var(--background-color), black 70%);\n  --background-color-black-75: color-mix(in oklab, var(--background-color), black 75%);\n  --background-color-black-80: color-mix(in oklab, var(--background-color), black 80%);\n  --background-color-black-85: color-mix(in oklab, var(--background-color), black 85%);\n  --background-color-black-90: color-mix(in oklab, var(--background-color), black 90%);\n  --background-color-black-95: color-mix(in oklab, var(--background-color), black 95%);\n  --background-color-black-96: color-mix(in oklab, var(--background-color), black 96%);\n  --background-color-black-97: color-mix(in oklab, var(--background-color), black 97%);\n  --background-color-black-98: color-mix(in oklab, var(--background-color), black 98%);\n  --background-color-black-99: color-mix(in oklab, var(--background-color), black 99%);\n  --background-color-gray-1: color-mix(in oklab, var(--background-color), gray 1%);\n  --background-color-gray-2: color-mix(in oklab, var(--background-color), gray 2%);\n  --background-color-gray-3: color-mix(in oklab, var(--background-color), gray 3%);\n  --background-color-gray-4: color-mix(in oklab, var(--background-color), gray 4%);\n  --background-color-gray-5: color-mix(in oklab, var(--background-color), gray 5%);\n  --background-color-gray-10: color-mix(in oklab, var(--background-color), gray 10%);\n  --background-color-gray-15: color-mix(in oklab, var(--background-color), gray 15%);\n  --background-color-gray-20: color-mix(in oklab, var(--background-color), gray 20%);\n  --background-color-gray-25: color-mix(in oklab, var(--background-color), gray 25%);\n  --background-color-gray-30: color-mix(in oklab, var(--background-color), gray 30%);\n  --background-color-gray-35: color-mix(in oklab, var(--background-color), gray 35%);\n  --background-color-gray-40: color-mix(in oklab, var(--background-color), gray 40%);\n  --background-color-gray-50: color-mix(in oklab, var(--background-color), gray 50%);\n  --background-color-gray-60: color-mix(in oklab, var(--background-color), gray 60%);\n  --background-color-gray-65: color-mix(in oklab, var(--background-color), gray 65%);\n  --background-color-gray-70: color-mix(in oklab, var(--background-color), gray 70%);\n  --background-color-gray-75: color-mix(in oklab, var(--background-color), gray 75%);\n  --background-color-gray-80: color-mix(in oklab, var(--background-color), gray 80%);\n  --background-color-gray-85: color-mix(in oklab, var(--background-color), gray 85%);\n  --background-color-gray-90: color-mix(in oklab, var(--background-color), gray 90%);\n  --background-color-gray-95: color-mix(in oklab, var(--background-color), gray 95%);\n  --background-color-gray-96: color-mix(in oklab, var(--background-color), gray 96%);\n  --background-color-gray-97: color-mix(in oklab, var(--background-color), gray 97%);\n  --background-color-gray-98: color-mix(in oklab, var(--background-color), gray 98%);\n  --background-color-gray-99: color-mix(in oklab, var(--background-color), gray 99%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n}\n/*! Theme: greeley */\n/*# sourceMappingURL=theme-greeley.css.map */\n"
  },
  {
    "path": "css/dist/theme-min-legacy.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/html/legacy/min/theme-min.scss */\n* {\n  box-sizing: border-box;\n}\nbody.pretext {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\nbody.pretext[data-font=OS] {\n  font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=RS] {\n  font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n}\nbody.pretext {\n  background: #fff;\n}\na {\n  color: inherit;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: transparent;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  background: #BF1722;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n  position: relative;\n}\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n  display: inline;\n}\n.ptx-content pre {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.ptx-content pre {\n  border-radius: 0;\n}\n.ptx-content textarea {\n  padding: 0;\n}\n.ptx-content h1,\n.ptx-content h2,\n.ptx-content h3,\n.ptx-content h4,\n.ptx-content h5,\n.ptx-content h6 {\n  margin: 0;\n  font-size: unset;\n}\n.pretext h1,\n.pretext h2,\n.pretext h3,\n.pretext h4,\n.pretext h5,\n.pretext h6 {\n  margin: 0;\n  font-size: unset;\n}\n.ptx-content .heading {\n  line-height: 1.1;\n}\n.ptx-content .para {\n  margin-top: 1.25em;\n  margin-bottom: 0;\n  line-height: 1.35;\n}\n.ptx-content .para.continuation {\n  margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n  margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n  margin-top: 0.75em;\n}\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .para:first-of-type {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n  margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n  margin-top: 1.75em;\n}\n.ptx-content .para.intertext {\n  margin-top: -0.25em;\n  text-indent: 0;\n}\n.ptx-content .para + table {\n  margin-top: 1em;\n}\n.ptx-content table tr td .para + .para {\n  margin-top: 1em;\n}\n.ptx-content table + .para {\n  margin-top: 1.5em;\n}\n.ptx-content .para + figure.figure-like > table {\n  margin-top: 1em;\n}\n.ptx-content .exercise-like .para + ol {\n  margin-top: 0.5em;\n}\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n  margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n  margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n  margin-left: 1.5em;\n}\n.ptx-content .exercisegroup {\n  padding-top: 1.25em;\n  margin-bottom: 1em;\n}\n.ptx-content section .exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup article.exercise-like .heading {\n  margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n  font-weight: 600;\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n  margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n  margin-top: 1em;\n}\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n  margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n  margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n  margin-top: 1.25em;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n  content: \"\\25a0\\2009\";\n  color: #06a;\n  position: relative;\n  top: -1px;\n  right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n  content: \"\\2003\";\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content section > article,\n.ptx-content section > section.paragraphs,\n.ptx-content .paragraphs > article {\n  margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n  margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n  margin-top: 1em;\n}\n.ptx-content article + .posterior {\n  margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n  margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n  margin-top: 1em;\n}\n.ptx-content section .proof {\n  margin-top: 0.75em;\n}\n.ptx-content section > pre,\n.ptx-content .para + pre {\n  margin-top: 1.25em;\n}\n.ptx-content ol .para + .para,\n.ptx-content ul .para + .para {\n  margin-top: 1em;\n}\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content section .heading,\n.ptx-content article .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n}\n.ptx-content article .exercise-stage {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n.ptx-content article > .heading + .para {\n  margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para,\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n  margin-top: 0.25em;\n}\n.ptx-content section .heading + article {\n  margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content a > .heading {\n  display: inline;\n}\n.ptx-content section > .heading {\n  font-size: 1.75em;\n  line-height: 1.25em;\n  margin-top: 1em;\n  margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n  font-size: 1.5em;\n  line-height: 1.25em;\n  margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .paragraphs .heading + .para {\n  display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n  display: inline;\n}\n.ptx-content .runestone label > .para {\n  display: inline;\n}\n.ptx-content .paragraphs .para .title {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-size: 1.125em;\n  font-weight: 700;\n}\n.ptx-content .paragraphs > .heading {\n  margin-top: 0;\n}\n.ptx-content .paragraphs + .paragraphs {\n  margin-top: 3em;\n}\n.ptx-content article .paragraphs > .heading {\n  font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n  font-size: 1.4em;\n  line-height: 1.15em;\n  margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  .ptx-content section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  .ptx-content section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.ptx-content .abstract {\n  margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .abstract > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n  display: inline;\n}\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like > .heading {\n  font-size: 1em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n  display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n  content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n  display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n  content: \"\\2009\";\n}\n.ptx-content .posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n  padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n  font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n  font-weight: 700;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-bottom: 0;\n}\n.ptx-content li {\n  margin-bottom: 0;\n}\n.ptx-content li .title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.ptx-content article.theorem-like li .title {\n  font-weight: 600;\n  font-style: normal;\n  font-size: 96%;\n}\n.ptx-content figure {\n  margin-bottom: 0;\n}\n.ptx-content .heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.ptx-content .conclusion {\n  margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n  margin-top: 0.5em;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n  margin-top: 0;\n}\n.ptx-content .heading + ol,\n.ptx-content .heading + ul {\n  margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol,\n.ptx-content li > .heading + ul {\n  margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n  margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n  margin-top: 0;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content article .para:first-child {\n  margin-top: 0;\n}\n.ptx-content ol ol,\n.ptx-content ol ul,\n.ptx-content ul ol,\n.ptx-content ul ul {\n  margin-top: 0.5em;\n}\n.ptx-content .frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content .frontmatter > .heading .title,\n.ptx-content .book > .heading .title {\n  font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle,\n.ptx-content .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: #666666;\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.ptx-content .frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n  font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n  font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\nbutton {\n  font: inherit;\n}\n.print-button {\n  position: relative;\n  right: 2px;\n  top: 66px;\n  background-color: LightGreen;\n  z-index: 1;\n  margin-top: -4em;\n  float: right;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n    border: none;\n  }\n  .pretext .ptx-page main.ptx-main {\n    margin-left: 0;\n    left: auto;\n    border: none;\n    box-shadow: none;\n    padding: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content {\n    margin-top: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section {\n    margin-top: 1em;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading {\n    margin-top: 0;\n  }\n  .pretext a[href]::after {\n    content: \"\";\n  }\n  .print-button {\n    display: none;\n  }\n}\n@media print {\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    width: 820px;\n    max-width: 820px;\n    font-size: 12.5px;\n  }\n  body.standalone.worksheet {\n    margin: 0;\n  }\n  body.standalone .ptx-content section.worksheet {\n    border: none;\n  }\n  body.standalone.worksheet .ptx-masthead,\n  body.standalone.worksheet .ptx-page-footer {\n    display: none;\n  }\n  body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-content section.onepage {\n    max-height: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    page-break-after: always;\n    border: none;\n    page-break-inside: avoid;\n  }\n  body.standalone.worksheet .ptx-content .onepage.lastpage {\n    margin-bottom: -2em;\n    page-break-after: auto;\n  }\n  body.standalone.worksheet.a4 .ptx-content .onepage {\n  }\n  body.standalone.worksheet .ptx-content .onepage div.workspace,\n  body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  body.standalone.worksheet a {\n    color: black;\n  }\n  body.standalone.worksheet .ptx-page .ptx-main {\n    padding: 0;\n  }\n  body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n    padding-bottom: 20px;\n  }\n  @page {\n    margin: 0;\n  }\n}\n.hidden {\n  display: none;\n}\n.ptx-navbar .preferences_menu_holder .active > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n  background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n  width: 4em;\n  justify-content: center;\n  text-align: center;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n[data-ruler=greybar] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: #f3f3f3;\n}\n[data-atmosphere*=dark][data-ruler=greybar] .onelineX:hover {\n  color: #333;\n}\n[data-ruler=lightbox] .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=lightbox] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: inherit;\n}\n[data-ruler=sunrise] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 2px solid black;\n  margin-bottom: -2px;\n  position: relative;\n  z-index: 10;\n}\nxxxxxx[data-ruler=sunriseunderline] .onelineX:hover + .onelineX {\n  margin-top: -2px;\n}\n[data-ruler=sunriseunderline] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=underline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  margin-bottom: -1px;\n}\n[data-ruler=lunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  border-left: 1px solid black;\n  padding-left: 4px;\n  margin-left: -5px;\n  margin-bottom: -1px;\n}\n[data-atmosphere*=dark][data-ruler*=underline] .onelineX:hover {\n  border-bottom: 1.5px solid #ddd;\n  margin-bottom: -1.5px;\n}\n[data-atmosphere*=dark][data-ruler=lunderline] .onelineX:hover {\n  border-left: 1.5px solid #ddd;\n  padding-left: 3.5px;\n  margin-left: -5px;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\n.ptx-footnote {\n  display: inline-block;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number {\n  visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: 0.6rem;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote__number {\n  display: inline;\n  cursor: pointer;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowlbackground);\n  border-radius: 6px;\n  padding: 0px 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowlborder);\n}\n.ptx-content section .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n.ptx-content section .para.copyright {\n  margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n  margin-top: 2.5em;\n}\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n  margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.ptx-content .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n}\n.ptx-content .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.ptx-content figcaption {\n  font-weight: normal;\n}\n.ptx-content figcaption {\n  margin-top: 0.6em;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n  font-weight: 700;\n  font-size: inherit;\n}\n.ptx-content figcaption .codenumber:after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption code.code-inline {\n  white-space: pre;\n}\n.ptx-content figure.figure > figcaption {\n  margin-top: 1em;\n}\n.ptx-content figure.listing > figcaption + * {\n  margin-top: 0.5em;\n}\n.ptx-content figcaption + .named-list-content {\n  margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n  margin-top: 0.5em;\n}\n.ptx-content .definition-like .para > .emphasis {\n  font-weight: 700;\n}\n.ptx-content em.alert {\n  font-weight: bold;\n}\n.unprocessed {\n  padding: 8px;\n  background-color: rgb(255, 230, 230);\n}\n.unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(255, 200, 255);\n}\n.unprocessed .unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(205, 205, 255);\n}\n.ptx-content section.introduction + section {\n  margin-top: 2em;\n}\n.ptx-content {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section {\n  display: inline-block;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n  max-width: unset;\n}\n.ptx-content .runestone > .parsons {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone .parsons {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: max-content;\n  padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: 660px;\n}\n.runestonebustmenu {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.runestonebustmenu .dropdown-content {\n  position: absolute;\n  right: 2em;\n  left: unset;\n  top: 1em;\n}\n@media screen and (max-width: 800px) {\n  nav .dropdown .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .activecode-toggle {\n    display: none;\n  }\n}\n.pretext .navbar .dropdown {\n  height: 35px;\n}\n.ptx-content section section + section {\n  margin-top: 3em;\n}\n.ptx-content .sidebyside > .para,\n.ptx-content .sidebyside > figure,\n.ptx-content .sidebyside > img,\n.ptx-content .sidebyside > table,\n.ptx-content .sidebyside > tabular,\n.ptx-content .sidebyside > section,\n.ptx-content .sidebyside > .paragraphs {\n  display: inline-block;\n  margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .sidebyside figcaption {\n  padding-left: 1em;\n  padding-right: 0;\n  padding-bottom: 0;\n  margin: 0.75em 0 0 0;\n}\n.ptx-content figcaption {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .sidebyside > .para {\n  width: 32%;\n  vertical-align: top;\n}\n.ptx-content .sidebyside > .para.left,\n.ptx-content .sidebyside > .para.middle,\n.ptx-content .sidebyside > .para.right {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside > .para + img {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside .sbsrow .sbsheader {\n  margin-top: 0;\n}\n.ptx-content .sbsgroup {\n  width: 100%;\n}\n.ptx-content .sidebyside {\n  width: 100%;\n}\n.ptx-content .sbsrow {\n  display: flex;\n  justify-content: space-between;\n}\n.ptx-content .sbsheader {\n  text-align: center;\n  justify-content: center;\n  font-size: 1em;\n}\n.ptx-content .sbspanel:empty {\n  height: 10em;\n  background-color: rgb(221, 221, 255);\n}\n.ptx-content .sbspanel {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n  justify-content: center;\n}\n.ptx-content .sbspanel.bottom {\n  justify-content: flex-end;\n}\n.ptx-content .sbspanel > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .fixed-width {\n  align-items: center;\n}\n.ptx-content .sbscaption {\n  justify-content: center;\n}\n.ptx-content table {\n  border-spacing: 0;\n}\n.ptx-content table {\n  border-collapse: collapse;\n}\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n  margin-top: 1.5em;\n}\n.ptx-content table tr td,\n.ptx-content table tr th {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.ptx-content table tr td {\n  font-size: 90%;\n}\n.ptx-content table tr td.l {\n  text-align: left;\n}\n.ptx-content table tr td.c {\n  text-align: center;\n}\n.ptx-content table tr td.r {\n  text-align: right;\n}\n.ptx-content table tr td.j {\n  text-align: justify;\n}\n.ptx-content table tr td.lines {\n  white-space: nowrap;\n}\n.ptx-content table tr td.t {\n  vertical-align: top;\n}\n.ptx-content table tr td.b {\n  vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n  vertical-align: middle;\n}\n.ptx-content table tr td.vv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n}\n.ptx-content table tr td.vcv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vcvv {\n  border-left: 2px solid #000;\n  border-right: 4px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vlv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vrv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.rv {\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.vr {\n  border-left: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.lv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vl {\n  border-left: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.cv {\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.Xv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vc {\n  border-left: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.hline {\n  padding: 0;\n}\n.ptx-content table tr td.hlinethick {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.ptx-content table tr td.hline hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 1px solid rgb(0, 0, 0);\n}\n.ptx-content table tr td.hlinethick hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 2px solid rgb(0, 0, 0);\n}\n.center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n  border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n  border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n  border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n  border-bottom: none;\n}\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n  border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n  border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n  border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n  border-top: none;\n}\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n  border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n  border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n  border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n  border-right: none;\n}\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n  border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n  border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n  border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n  border-left: none;\n}\n.ptx-content table tr td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content table.notation-list tr th {\n  text-align: left;\n}\n.ptx-content table.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.ptx-content table.notation-list tr th {\n  margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n  margin-left: 1em;\n}\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content table tr td span.decimal {\n  float: left;\n  text-align: right;\n}\n.ptx-content table tr.header-vertical th {\n  writing-mode: vertical-rl;\n  padding-left: 2em;\n}\n.ptx-content table + article {\n  margin-top: 1em;\n}\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof {\n  margin-top: 0.3em;\n}\n.ptx-content .hidden-knowl-wrapper article {\n  display: inline;\n}\n.apretext-content figure.figure-like {\n  overflow: auto;\n}\n.ptx-content figure.figure-like {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content figure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n  margin-right: 0;\n}\n.ptx-content a > tt {\n  font-size: 110%;\n}\n.ptx-content section .videolink a:link {\n  background-size: 0;\n}\n.ptx-content .playvideo {\n  cursor: pointer;\n}\n.ptx-content .videobig {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 85%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: relative;\n  top: 100px;\n  cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n}\n.ptx-content .knowl .videobig {\n  display: none;\n}\n.ptx-content .videosmall {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 80%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: absolute;\n  left: -250px;\n  z-index: 1001;\n  cursor: zoom-out;\n}\n.ptx-content .exercise-like ol li table {\n  margin-bottom: 0.5em;\n}\n.ptx-content .exercise-like > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content section.worksheet > .heading > .codenumber {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n  display: inline-block;\n  max-width: 70%;\n}\n.ptx-content .heading .print-links {\n  display: inline-block;\n  float: right;\n  vertical-align: top;\n  width: 19%;\n  text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n  display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n  display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n  display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n  background: none;\n  color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n  border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n  padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n  margin: 0;\n}\n.ptx-content .appendix .heading > .type {\n  display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n  display: none;\n}\n.ptx-content .heading .print-links > a {\n  font-family: \"Open Sans\";\n  font-size: 0.6em;\n  font-weight: bold;\n  padding: 0.1em 0.2em;\n  background: #ffa;\n  border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n  background: #eef;\n  color: #9b1c2c;\n  border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n  margin-left: 0.25em;\n}\n.ptx-content .autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 3px;\n  left: -1.9em;\n  font-size: 85%;\n  color: #a00;\n  opacity: 0.05;\n  margin-top: 0.1em;\n}\n.ptx-content li > .para > .autopermalink {\n  left: -3.4em;\n  top: 0;\n}\n.ptx-content .autopermalink a {\n  color: #a00;\n}\n.ptx-content .autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n:target {\n  scroll-margin-top: 45px;\n}\n.ptx-content .para > .autopermalink {\n  margin-top: 0.2em;\n}\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .figure-like > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .subsubsection > .autopermalink {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .autopermalink:hover {\n  opacity: 1;\n  background: #eeddff;\n}\n.ptx-content .permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: #fff;\n  border: 3px solid blue;\n  z-index: 2001;\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: #eeaaff;\n}\n.ptx-content .indexitem {\n  margin-top: 2px;\n}\n.ptx-content .subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .indexknowl {\n  margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl {\n  margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n  margin-left: 2em;\n}\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .indexitem .indexknowl {\n  font-size: 90%;\n}\n.ptx-content .indexitem [data-knowl],\n.ptx-content .subindexitem [data-knowl],\n.ptx-content .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover,\n.ptx-content .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.ptx-content .subindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .indexletter {\n  margin-top: 1.5em;\n}\n.ptx-content .hidden-knowl-wrapper .heading {\n  display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n  display: inline;\n}\n.ptx-content .cols2 .knowl-output,\n.ptx-content .cols3 .knowl-output,\n.ptx-content .cols4 .knowl-output,\n.ptx-content .cols5 .knowl-output,\n.ptx-content .cols5 .knowl-output {\n  width: 100%;\n}\n.ptx-content .cols2 + *,\n.ptx-content .cols3 + *,\n.ptx-content .cols4 + *,\n.ptx-content .cols5 + *,\n.ptx-content .cols6 + * {\n  clear: both;\n}\n.ptx-content .cols2::after,\n.ptx-content .cols3::after,\n.ptx-content .cols4::after,\n.ptx-content .cols5::after,\n.ptx-content .cols6::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n  margin-bottom: 1.5em;\n}\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n  padding-bottom: 0em;\n}\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n  clear: left;\n}\n.ptx-content .exercise-like ol.cols2 li {\n  margin-top: 0.5em;\n}\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n  float: left;\n}\n.ptx-content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.ptx-content .emphasis {\n  font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n  font-weight: bold;\n}\n:target {\n  animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n@-moz-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n.ptx-content .autoterm [knowl],\n.ptx-content .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.ptx-content .autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.ptx-content ol li.custom-list-style-type {\n  list-style-type: none;\n}\n.ptx-content ol li.custom-list-style-type:before {\n  content: attr(label) \"\\a0\\a0\";\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n  list-style-type: none;\n}\n.ptx-content ol.decimal {\n  list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n  list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n  list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n  list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n  list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n  list-style-type: disc;\n}\n.ptx-content ul.square {\n  list-style-type: square;\n}\n.ptx-content ul.circle {\n  list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n  list-style-type: none;\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n  clear: both;\n}\n.ptx-content dl {\n  margin-top: 1em;\n  margin-left: 0;\n  margin-bottom: 0;\n  overflow: hidden;\n}\n.ptx-content dl dd {\n  margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n  margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n  margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n  margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n  margin-top: 0;\n}\n.ptx-content dl dd .para {\n  margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child,\n.ptx-content dl dd > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content dl > dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: left;\n  text-align: right;\n  width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n  text-align: left;\n}\n.ptx-content dl.glossary dd {\n  margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n  margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n  clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n  content: \"\";\n  display: block;\n  height: 1em;\n  clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n  height: 0;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: both;\n  margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n  width: unset;\n  max-width: 55ex;\n  text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 0;\n  margin-top: 0;\n  width: 31em;\n  max-width: calc(100% - 12ex);\n  float: right;\n  clear: right;\n}\n.ptx-content dl.description-list + * {\n  clear: both;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.ptx-content dl.description-list dl dt {\n  width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n  margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n  margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n  width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n  display: inline;\n}\na.mjx-svg-href {\n  fill: inherit;\n  stroke: inherit;\n}\n.displaymath + .para {\n  margin-top: 0;\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n    position: relative;\n    overflow-x: auto;\n  }\n  .ptx-content .mjx-chtml.MJXc-display {\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n.ptx-content dd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n.floatnav a {\n  padding-left: 3px;\n  margin-right: -1px;\n  color: inherit;\n}\n.ptx-content a .heading .mjx-chtml {\n  z-index: 1;\n  background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after,\n.ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after,\n.ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n.floatnav a:hover {\n  background: #eeaaff;\n}\n.ptx-content .unselectable {\n  user-select: none;\n}\n.ptx-content .latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.ptx-content .latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.ptx-content .fillin {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n  display: inline-block;\n  border: none;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n  outline: 1px solid black;\n  height: 1.3em;\n}\n.ptx-content .fillin.shade {\n  display: inline-block;\n  border: none;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n  background-color: #eee;\n  height: 1.3em;\n}\n.ptx-content .hiddenproof > a > .heading {\n  font-style: italic;\n  font-weight: normal;\n}\n.ptx-content .MJXc-display,\n.ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n  background-image:\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0));\n  background-position:\n    left center,\n    right center,\n    left center,\n    right center;\n  background-repeat: no-repeat;\n  background-color: inherit;\n  background-size:\n    20px 100%,\n    20px 100%,\n    10px 100%,\n    10px 100%;\n  background-attachment:\n    local,\n    local,\n    scroll,\n    scroll;\n}\n.ptx-content .runestone .code-box {\n  background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground));\n}\n.ptx-content .knowl-output.original .MJXc-display {\n  background: inherit;\n}\n.ptx-content .assemblage-like .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground));\n}\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0));\n}\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n  padding-top: 0.25em;\n}\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 1.5em;\n}\n.ptx-content .exercise-like .introduction {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n  content: \"\";\n  display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n  content: \"\";\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols3,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols4,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols5,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n  width: 100%;\n  display: inline-flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-items: flex-start;\n  align-content: flex-start;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n  display: inline;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n.ptx-content .exercisegroup .cols1 > article.exercise-like {\n  flex-basis: calc(100% - 2em);\n}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {\n  flex-basis: calc(50% - 2em);\n}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {\n  flex-basis: calc(33.33% - 2em);\n}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {\n  flex-basis: calc(25% - 2em);\n}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {\n  flex-basis: calc(20% - 2em);\n}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {\n  flex-basis: calc(16.66% - 2em);\n}\n.ptx-content .mathword {\n  white-space: nowrap;\n}\n.ptx-content .unit,\n.ptx-content .quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n  word-spacing: normal;\n}\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n  overflow-x: auto;\n}\n.ptx-content .code-inline {\n  font-size: 1em;\n  white-space: pre;\n  color: inherit;\n  background: #eeeeee;\n  border: 1px solid #dddddd;\n  padding: 0.0625em 0.25em;\n  margin-left: 0.2em;\n  margin-right: 0.2em;\n  border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n  margin-left: 0;\n}\n.ptx-content .title .code-inline {\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content a .code-inline {\n  background: #f6f6f6;\n}\n.ptx-content .kbdkey {\n  background: #f1f1f1;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.ptx-content .kbdkey {\n  color: #333;\n}\n.ptx-content .sagecell_sessionOutput pre {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n  margin: 0;\n}\n.ptx-content .sagecell_evalButton {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.ptx-content .booktitle {\n  font-style: oblique;\n}\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n  font-size: 1.25em;\n}\n.ptx-content a .heading {\n  white-space: normal;\n}\n.ptx-content .solutions > a,\n.ptx-content .solutions > a:hover,\n.ptx-content .solutions > a.active,\n.ptx-content .instructions > a,\n.ptx-content .instructions > a:hover,\n.ptx-content .instructions > a.active {\n  display: inline-block;\n  margin-right: 1.5em;\n}\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n  content: \"\\25ba\";\n  font-size: 70%;\n  color: #06a;\n  position: relative;\n  top: -2px;\n  right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n  content: \"\\25bc\";\n  animation-name: solutiontriangle;\n  animation-duration: 3s;\n  animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n  left: 12px;\n}\n@keyframes solutiontriangle {\n  from {\n    content: \"\\25ba\";\n  }\n  to {\n    content: \"\\25bc\";\n  }\n}\n.ptx-content section.solutions {\n  font-size: 90%;\n  padding-left: 1em;\n  border-left: 1em solid #eeeeee;\n}\n.ptx-content.ptx-content > section.solutions:first-child {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n  margin-top: 1em;\n  padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n  font-size: 100%;\n  font-weight: 700;\n  margin-right: 0.25em;\n  display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n  display: inline;\n}\n.ptx-content article > figure:first-child {\n  margin-top: 0;\n}\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n  padding-top: 1em;\n}\n.ptx-content img {\n  display: inline-block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img.cs {\n  display: block;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img:not(.cs) {\n  max-width: 650px;\n}\n.ptx-content .tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img + img {\n  margin-top: 30px;\n}\n.ptx-content div.center img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content div.center + div.center > img {\n  margin-top: 60px;\n}\n.ptx-content div.center > img + img {\n  margin-top: 60px;\n}\n.ptx-content figure table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure.wrap img {\n  width: 250px;\n}\n.ptx-content figure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n  float: right;\n  margin: 0;\n}\n.ptx-content figure figcaption.wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure,\n.ptx-content .image-box {\n  margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n  margin-top: 1em;\n}\n.ptx-content figure .image-box {\n  margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n  margin-top: 0;\n}\n.ptx-content .image-box img,\n.ptx-content img.contained,\n.ptx-content .sbspanel img {\n  width: 100%;\n  height: auto;\n}\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n  cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n  max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n  position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n  margin-top: 0.75em;\n}\n.ptx-content .audio {\n  width: 100%;\n}\n.caption .heading {\n  font-weight: bold;\n}\n.caption .counter {\n  font-weight: bold;\n}\n.ptx-content div.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.minipage + .minipage {\n  display: inline-block;\n}\n.ptx-content code.inline {\n  background: none;\n  border: none;\n}\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n  line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n  margin-top: 1em;\n}\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n.ptx-content pre[data-line].program,\n.ptx-content pre[data-line].code-block {\n  padding-left: 2.5em;\n}\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n  margin-left: -5em;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  padding-left: 3.5em;\n  overflow: visible;\n}\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n  margin-left: -7em;\n}\n.ptx-content pre[data-line].line-numbers code {\n  padding-top: 0em;\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n  margin-top: 0em;\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n  margin-top: 0.6em;\n}\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n  content: \"\";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n.ptx-content .objectives {\n  margin-bottom: 1.25em;\n}\n.ptx-content ol > li {\n  padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li,\n.ptx-content ul.cols2 > li {\n  width: calc(49% - 1.75em);\n  min-width: 190px;\n}\n.ptx-content ol.cols3 > li,\n.ptx-content ul.cols3 > li {\n  width: calc(33% - 1.25em);\n  min-width: 160px;\n}\n.ptx-content ol.cols4 > li,\n.ptx-content ul.cols4 > li {\n  width: calc(24.5% - 1.25em);\n  min-width: 100px;\n}\n.ptx-content ol.cols5 > li,\n.ptx-content ul.cols5 > li {\n  width: calc(19.5% - 0.75em);\n  min-width: 90px;\n}\n.ptx-content ol.cols6 > li,\n.ptx-content ul.cols6 > li {\n  width: calc(16.3% - 0.5em);\n  min-width: 80px;\n}\n.ptx-content ul.cols2 > li:nth-child(odd),\n.ptx-content ol.cols2 > li:nth-child(odd) {\n  margin-right: 2em;\n}\n.ptx-content .cols2 ol,\n.ptx-content .cols3 ol,\n.ptx-content .cols4 ol,\n.ptx-content .cols5 ol,\n.ptx-content .cols6 ol {\n  padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n  margin-top: 1em;\n}\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n  float: none !important;\n  padding-top: 0.5em;\n}\n.ptx-content .solution ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .solution ol li > .para:first-child,\n.ptx-content .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n.ptx-content .exercise-like ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .exercise-like > .cols2 > li {\n  width: calc(49% - 2.5em);\n}\n.ptx-content .exercise-like > .cols3 > li {\n  width: calc(33% - 2.5em);\n}\n.ptx-content .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2.5em);\n}\n.ptx-content .knowl .exercise-like > .cols2 > li {\n  width: calc(49% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols3 > li {\n  width: calc(33% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2em);\n}\n.ptx-content .exercise-like ol li > .para:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .contributor .contributor-name {\n  font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.ptx-content .contributor {\n  margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n  margin-top: 1.5ex;\n}\n.ptx-content .contributor + .para {\n  margin-top: 3ex;\n}\n.ptx-content .frontmatter .contributors,\n.ptx-content .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.searchwrapper .gsc-control-cse {\n  padding: 0;\n  border: none;\n  width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n.searchwrapper input.gsc-search-button-v2 {\n  padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n  padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n  padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n  height: 3ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  font-size: 12px;\n}\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {\n  color: #090;\n}\n.ptx-content .image-archive {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-top: 0.75em;\n  padding-bottom: 0.25em;\n  text-align: center;\n}\n.ptx-content .image-archive > a {\n  display: inline-block;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n  font-family: monospace;\n}\n.ptx-content iframe {\n  margin: 0;\n  border: none;\n  box-sizing: border-box;\n}\n.ptx-content .times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.ptx-content article.notranslate {\n  margin-top: 0;\n}\n.ptx-content article.exercise-like > .exercise-like {\n  margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content article.example-like > .heading + .introduction {\n  display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content .taxon {\n  font-style: italic;\n}\n.ptx-content .sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n  padding-bottom: 5px;\n  padding-left: 6px;\n}\n.ptx-content .hidden-content,\n.pretext .hidden-content {\n  display: none;\n}\n.ptx-content hr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n.ptx-content hr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n  display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n  margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n  margin-top: 0;\n}\n.ptx-content meta {\n  display: none;\n}\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:hover .codenumber,\n.ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n.ptx-content .summary-links {\n  margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n  margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n}\n.ptx-content .summary-links li {\n  margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a,\n.ptx-content .summary-links a:link,\n.ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n  margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n  display: none;\n}\nbody.standalone .ptx-content .worksheet {\n  padding: 40px 0 45px 0;\n  border: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage {\n  padding: 40px 45px 45px 55px;\n  border-bottom: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  border-top: 2px solid grey;\n}\nbody.standalone .ptx-content .onepage.firstpage {\n  padding-top: 0;\n}\nbody.standalone .ptx-content .onepage.lastpage {\n  padding-bottom: 0;\n  border-bottom: none;\n}\nbody.standalone .ptx-content .worksheet > *:last-child {\n  padding-bottom: 0 !important;\n}\n.ptx-content .onepage + .onepage {\n  margin-top: 2.5em;\n  padding-top: 1.5em;\n  border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n  content: \"pagebreak\";\n  text-align: center;\n  margin-left: 40%;\n  padding-left: 1em;\n  padding-right: 1em;\n  position: absolute;\n  top: -0.8em;\n  font-size: 80%;\n  font-style: italic;\n  background: white;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n  content: none;\n}\nbody.standalone .ptx-content .onepage article {\n  padding-left: 0;\n  border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n  all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n  margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n  margin-top: 1.25em;\n}\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  padding-left: 1.25em;\n  border-left: 1px solid grey;\n  margin-left: -1.25em;\n  z-index: -100;\n}\nbody.standalone.worksheet .ptx-content section article.task {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n  font-weight: normal;\n}\nbody.standalone .autopermalink {\n  display: none;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n  border: 2px dotted grey;\n  background: #f3fff3;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n  border: 2px dotted grey;\n  background: #ffe;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n  border: 15px solid;\n  border-image:\n    repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px) 20;\n  background: yellow;\n}\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like {\n  border: none;\n  padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n  margin-top: -0.5em;\n  padding: 0;\n  margin: 0;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n  margin-left: 55px;\n  margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n  display: inline;\n}\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n.ptx-content a.url,\n.ptx-content a.external {\n  color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n  background: #ffd;\n}\n.ptx-content .poem {\n  margin-top: 1.5em;\n}\n.ptx-content .poem {\n  display: table;\n  margin-top: 1.5em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  width: auto;\n  max-width: 90%;\n}\n.ptx-content .poem > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n  content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.ptx-content .poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n  text-align: left;\n}\n.ptx-content .poem .author.center {\n  text-align: center;\n}\n.ptx-content .poem .author.right {\n  text-align: right;\n}\n.ptx-content .poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n  text-align: center;\n}\n.ptx-content .poem .line.right {\n  text-align: right;\n}\n.ptx-content .poem .tab {\n  margin-left: 2em;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\n.toolBPanel {\n  overflow: hidden !important;\n}\n.toolBPanel:hover {\n  overflow: auto !important;\n}\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n.ptx-content .marginresource {\n  position: relative;\n  height: 0;\n  left: 40em;\n  top: 1em;\n}\n.ptx-content .marginresource a {\n  color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n  border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n  font-size: 200%;\n  margin-right: 1em;\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n  display: block;\n  margin-left: 2em;\n}\n.collectedworks .knowl-output {\n  border: 12px solid #D6E3FF;\n  background: none repeat scroll 0% 0% #FAFCFF;\n  border-radius: 4px;\n  margin-bottom: 1.25em;\n}\n.collectedworks .subjectwork {\n  max-width: 750px;\n}\n.collectedworks .bib {\n  margin-bottom: 1em;\n}\n.collectedworks .bibitem + .bibentry {\n  display: inline;\n}\n.collectedworks .bibitem {\n  display: inline;\n  font-weight: bold;\n  margin-right: 1em;\n}\n.collectedworks .work .title a {\n  text-decoration: none;\n  color: #009;\n}\n.iconlegend {\n  position: absolute;\n  margin-top: 0.5em;\n  top: 0;\n  left: 920px;\n  line-height: 1;\n}\n.iconlegend .icon_name {\n  font-size: 90%;\n  margin-right: 1em;\n}\n.icongroup + .icongroup {\n  margin-left: 1em;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\n.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.ptx-content .webwork-button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n  cursor: pointer;\n  background-color: #a0a0a0;\n  border: 1px solid #999;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.ptx-content .exercise-wrapper form button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  color: black;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n  width: 22px;\n  height: 22px;\n  background-image: url(https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico);\n  background-size: contain;\n  position: absolute;\n  right: -35px;\n}\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n  margin-top: 0.5em;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-content .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.ptx-content .cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n@media screen and (max-width: 600px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.3em;\n}\n.APEXlogo .E {\n  position: relative;\n  top: 0.33em;\n}\n.runestone-profile .dropdown-content {\n  position: absolute;\n  display: none;\n  right: 0;\n  top: 35px;\n  text-align: left;\n  border: 1px solid;\n  border-color: #600;\n  border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n  background-color: #ddd;\n  overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n  display: block;\n}\n.runestone-profile .dropdown-content {\n  background-color: white;\n  z-index: 1800;\n  min-width: 100px;\n  padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: #662211;\n  padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n  background-color: #671d12;\n  color: #ffffff;\n  text-decoration: none;\n  background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n  margin-bottom: 4px;\n  margin-top: 4px;\n  border-color: #600;\n  border-color: var(--sectiontoctext);\n}\n.searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox {\n}\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n.searchbutton .name {\n  display: none;\n}\n.searchwidget {\n  text-align: right;\n}\n.searchwidget input {\n}\n.helpbox {\n  display: none;\n}\n.detailed_result {\n  margin-bottom: 10px;\n}\n.all_results a:link {\n  text-decoration: none;\n  font-size: large;\n}\n.all_results a:hover {\n  background-color: lightgray;\n}\n.searchresults a:hover {\n  background-color: #eee;\n}\n.searchresults a {\n  text-decoration: none;\n  color: #222;\n}\n.searchresults a:hover {\n  text-decoration: underline;\n  color: #33f;\n}\n.searchresults ul li {\n  list-style-type: none;\n}\nol.searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n}\nol.searchresults > li {\n  list-style-type: none;\n}\n.search-result-score {\n  display: none;\n}\n.high_result {\n  font-weight: 700;\n}\n.medium_result {\n  font-weight: 500;\n}\n.low_result {\n  font-weight: 200;\n}\n.no_result {\n  font-weight: 200;\n  color: #444;\n}\n.detailed_result .no_result {\n  font-size: 90%;\n}\n.searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  left: 152px;\n  width: 600px;\n  padding: 1em;\n  border: 0.2em solid #009;\n  background: aliceblue;\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.search-results-heading {\n  border-bottom: 1px solid rgba(0, 0, 125, 0.5);\n}\n.search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n}\n.closesearchresults {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border: 1px solid black;\n}\n.closesearchresults:hover {\n  color: #c00;\n  background-color: #fee;\n  border-color: #f00;\n}\n.closesearchresults + h2 {\n  margin-top: -1em;\n}\n.searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.search-result-bullet {\n  margin-top: 0.3em;\n}\n.search-result-clip {\n  font-size: 80%;\n  font-style: italic;\n  color: #444;\n  padding-left: 15px;\n}\n.search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n  background: rgba(255, 255, 0, 0.5);\n}\n@media screen and (max-width: 800px) {\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n}\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n}\n.pretext .ptx-page {\n  position: relative;\n}\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 41px;\n  float: left;\n  width: 240px;\n}\n.pretext .ptx-toc {\n  position: sticky;\n  top: 50px;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  height: calc(100vh - 60px);\n}\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n}\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    margin: 28px;\n  }\n}\n.ptx-content.serif .para .para,\n.ptx-content[data-font=RS] .para .para {\n  font-size: 100%;\n}\n.ptx-content[data-font=RS] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  max-width: 650px;\n}\n.pretext .ptx-content-footer .button {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n.pretext .ptx-content-footer .button.top-button {\n  text-align: center;\n  width: 40px;\n  height: 50px;\n}\n.pretext .ptx-content-footer .button.previous-button,\n.pretext .ptx-content-footer .button.next-button {\n  font-size: 1em;\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  height: 35px;\n  width: 65px;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  float: left;\n  position: relative;\n  margin-top: 0.5em;\n}\n.pretext .ptx-content-footer .previous-button {\n  text-align: left;\n}\n.pretext .ptx-content-footer .next-button {\n  text-align: right;\n}\n.pretext .ptx-content-footer .name {\n  position: relative;\n  bottom: 0;\n}\n.pretext .ptx-content-footer .icon {\n  font-size: 1.3em;\n  Position: relative;\n  bottom: -0.1em;\n}\n.pretext .ptx-content-footer .previous-button .icon {\n  margin-left: 0.3em;\n  margin-right: 0.2em;\n}\n.pretext .ptx-content-footer .next-button .icon {\n  margin-left: 0.2em;\n  margin-right: 0.3em;\n}\n.pretext .ptx-content-footer .next-button {\n  text-align: right;\n}\n.pretext .ptx-content-footer .previous-button {\n  width: 70px;\n  float: right;\n  border-left: 1px solid #bababa;\n  border-right: 1px solid #bababa;\n}\n.pretext .ptx-content-footer .next-button {\n  width: 70px;\n  float: right;\n  border-right: 1px solid #bababa;\n}\n.pretext .ptx-content-footer .top-button {\n  display: block;\n}\n.pretext .ptx-content-footer .top-button .icon,\n.pretext .ptx-content-footer .top-button .name {\n  display: block;\n}\n.pretext .ptx-content-footer .top-button .icon {\n  bottom: 0;\n}\n.pretext .ptx-content-footer .top-button .name {\n  position: relative;\n  bottom: 0.4em;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n  }\n  .pretext .ptx-sidebar {\n    display: none;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n  .pretext .ptx-navbar .calculator-toggle,\n  .pretext .ptx-navbar .index-button {\n    display: none;\n  }\n  .pretext .ptx-navbar .toc-toggle {\n    width: 25%;\n  }\n  .pretext .ptx-navbar .treebuttons {\n    width: 75%;\n  }\n  .pretext .ptx-navbar .previous-button,\n  .pretext .ptx-navbar .up-button,\n  .pretext .ptx-navbar .next-button {\n    width: 33.3%;\n  }\n}\n.ptx-masthead .ptx-banner {\n  border-bottom: 1px solid #d4d4d4;\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding-top: 0.625em;\n  padding-bottom: 1.125em;\n  border-bottom: none;\n}\n.ptx-masthead {\n  max-width: 904px;\n  border-right: 1px solid #bababa;\n}\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    margin-top: 0.625em;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  margin: 0;\n  font-size: 2em;\n  line-height: 1.25em;\n  color: #932919;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n.ptx-masthead .title-container > .heading a {\n  color: #932919;\n  background: none;\n  text-decoration: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    display: block;\n    font-size: 1.16667em;\n    line-height: 1.42857em;\n    color: #595959;\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .logo-link {\n  position: relative;\n  float: left;\n  font-size: 50px;\n  margin-top: 0.1em;\n  margin-left: 9.68px;\n  text-align: center;\n  line-height: 1;\n}\n.ptx-masthead .logo-link img {\n  width: auto;\n  height: auto;\n  max-height: 1em;\n}\n.ptx-masthead .logo-link:empty:before {\n  font-family: \"Open Sans\";\n  font-size: 1em;\n  content: \"\\2211\";\n  line-height: 1;\n  width: 1em;\n  display: inline-block;\n  vertical-align: top;\n  text-align: center;\n  color: #ccc;\n}\n.ptx-masthead .logo-link:empty:hover:before {\n  color: #932919;\n}\n.ptx-masthead .logo-link:empty:active:before {\n  color: #3572a0;\n}\n.ptx-masthead .logo-link {\n  background: transparent;\n  border: none;\n  text-decoration: none;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .logo-link {\n    display: block;\n    float: none;\n    margin: 0;\n    font-size: 50px;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-weight: normal;\n  margin: 0;\n  font-size: 1.3125em;\n  line-height: 1.42857em;\n  min-height: inherit;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:hover,\n.ptx-masthead .byline a:focus {\n  color: #932919;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\nnav.ptx-navbar {\n  background: #ededed;\n  border: 0;\n  border-top: 1px solid #bababa;\n  border-bottom: 1px solid #bababa;\n  margin: 0;\n  z-index: 100;\n  font-family: \"Open Sans\";\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.ptx-navbar .button {\n  font-size: 1em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: #333333;\n  background-color: #ededed;\n  border: 0;\n  border-right: 1px solid #bababa;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n.ptx-navbar .button:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n}\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  color: #333333;\n  background: #ededed;\n  box-shadow: none;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n}\n.ptx-navbar .button .icon {\n  font-size: 1.5em;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) > *:first-child {\n  border-left: 1px solid #bababa;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button, .calculator-toggle) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  width: 70px;\n}\n.ptx-navbar .calculator-toggle {\n  width: 60px;\n  min-height: 32px;\n  text-align: center;\n  border-radius: 20px;\n  margin-left: 5px;\n  border: 2px solid #66f;\n  line-height: 25px;\n  margin-top: 1px;\n  background-color: #eef;\n}\n.ptx-navbar .calculator-toggle.open {\n  background: #fee;\n  border: 2px solid #f66;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: #ededed;\n    box-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar :is(.treebuttons) > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n  .ptx-navbar .nav-runestone-controls > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar .calculator-toggle {\n    width: auto;\n    height: 35px;\n    border-radius: 0;\n    margin-left: 0;\n    border: 0;\n    border-right: 1px solid #bababa;\n    line-height: inherit;\n    margin-top: 0;\n    background-color: inherit;\n  }\n}\n.ptx-toc {\n  width: 240px;\n  margin: 0;\n  font-size: 14.72px;\n  overflow-y: auto;\n  overflow-x: hidden;\n}\n.ptx-toc ul {\n  margin: 0px;\n  padding: 0px;\n  list-style-type: none;\n}\n.ptx-toc .codenumber {\n  position: absolute;\n  margin-right: 0;\n  margin-left: 0em;\n  left: 0.3em;\n  display: inline-block;\n}\n.ptx-toc ul.structural ul.structural a > .codenumber {\n  display: none;\n}\n.ptx-toc ul.structural .title {\n  margin-left: 1.4em;\n  display: inline-block;\n}\n.ptx-toc ul.structural ul.structural .title {\n  margin-left: 1.5em;\n}\n.ptx-toc ul.structural ul.structural .title:empty::after {\n  content: \"empty heading!\";\n  font-weight: bold;\n}\n.ptx-toc ul.structural ul.structural ul.structural .title {\n  margin-left: 2.5em;\n  font-size: 90%;\n}\n.ptx-toc ul.structural ul.structural ul.structural ul.structural .title {\n  margin-left: 3.2em;\n  font-size: 90%;\n  font-style: italic;\n}\n.ptx-toc ul.structural li ul.structural li ul.structural li:last-child {\n  margin-bottom: 0;\n  border-bottom: 1px solid #ddd;\n}\n.ptx-toc .part > a .codenumber {\n  position: relative;\n  display: block;\n  float: left;\n  margin-right: 0.7em;\n}\n.ptx-toc .part > a .title {\n  display: block;\n  margin-left: 1em;\n}\n.ptx-toc ul.structural li a {\n  position: relative;\n  display: block;\n  padding: 2.86957px;\n  padding: 0.2em;\n  border-top: 1px solid #d1d1d1;\n  border-bottom: 1px solid #d1d1d1;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-toc ul.structural ul.structural li a {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-weight: normal;\n}\n.ptx-toc > ul.structural > li:not(:first-child) {\n  margin-top: 0.3em;\n}\n.ptx-toc > ul.structural > li.part + li,\n.ptx-toc > ul.structural > li.frontmatter + li,\n.ptx-toc > ul.structural > li.backmatter + li {\n  margin-top: 0;\n}\n.ptx-toc ul.structural li a,\n.ptx-toc ul.structural li a:link,\n.ptx-toc ul.structural li a:visited,\n.ptx-toc ul.structural li a:hover,\n.ptx-toc ul.structural li a:focus,\n.ptx-toc ul.structural li a:active {\n  text-decoration: none;\n}\n.ptx-toc ul.structural li ul.structural a {\n  border-top: none;\n}\n.ptx-toc ul.structural li ul.structural a:hover {\n  border-top: 1px solid #3c110a;\n  margin-top: -1px;\n}\n.ptx-toc ul.structural li ul.structural li:last-child {\n  margin-bottom: -0.3em;\n}\n.ptx-toc ul.structural li ul.structural li:last-child a {\n  border-bottom: none;\n}\n.ptx-toc ul.structural li a:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n.ptx-toc .toc-item {\n  position: relative;\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowlLinkColor);\n  border-bottom: 1px dotted var(--knowlLinkColor);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--linkbackground);\n  border-bottom-color: transparent;\n}\n.knowl__content {\n  margin: 0.2em;\n  border: 6px solid var(--knowlborder);\n  border-radius: 0.4em;\n  padding: 0.8em;\n  background-color: var(--knowlbackground);\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n  content: \"\" !important;\n  border-bottom: none;\n  margin: 0;\n  padding: 0;\n  width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n  padding-right: 0;\n  border-right: none;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested4Background);\n}\n.ptx-content .knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .proof {\n  border-right: 1px solid #666;\n  padding-right: 0.625em;\n  margin-right: -0.725em;\n}\n.ptx-content .proof:after {\n  content: \"\";\n  border-bottom: 1px solid #666;\n  display: block;\n  margin-left: auto;\n  margin-right: -0.625em;\n  width: 1.5em;\n  padding-bottom: 0.25em;\n}\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n.ptx-content .proof .proof {\n  margin-right: -0.2em;\n  border-right: 1.5px solid #ddd;\n}\n.ptx-content .proof .proof:after {\n  border-bottom: 1.5px solid #ddd;\n  width: 1em;\n}\n.ptx-content article.theorem-like,\n.ptx-content article.definition-like,\n.ptx-content article.example-like,\n.ptx-content article.project-like,\n.ptx-content article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content article.computation-like {\n  padding-left: 0.4em;\n  border-left: 1px solid #569;\n}\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content.epub article.computation-like {\n  margin-left: 1px;\n}\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.openproblem-like::after,\n.ptx-content article.openproblems-like::after,\n.ptx-content article.computation-like::after {\n  content: \"\";\n  border-bottom: 1px solid #569;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.5em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content article.project-like {\n  border-left: 1px dotted #569;\n}\n.ptx-content article.project-like::after {\n  border-bottom: 1px dotted #569;\n}\n.ptx-content article.commentary {\n  padding-left: 0.6em;\n  border-left: 3px solid #c33;\n}\n.ptx-content article.commentary::after {\n  content: \"\";\n  border-bottom: 3px solid #c33;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.6em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content .assemblage-like {\n  border: solid 2px #1100AA;\n  border-radius: 12px;\n  padding: 10px;\n  background-color: #f4f4fe;\n}\n.ptx-content .assemblage-like .heading {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like + .sidebyside {\n  margin-top: 1.25em;\n}\n.ptx-content section article.assemblage-like .heading + .para {\n  display: block;\n}\n.ptx-content .goal-like {\n  border: solid 3px #999999;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n.ptx-content .goal-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 5px;\n  font-style: italic;\n  font-size: 120%;\n}\n.ptx-content .goal-like > .heading .codenumber {\n  display: none;\n}\n.ptx-content .goal-like > .heading::after {\n  display: none;\n}\n.ptx-content .aside-like {\n  position: absolute;\n  margin-left: 45%;\n  overflow-x: hidden;\n  max-width: 495px;\n  max-height: 7em;\n  overflow-y: hidden;\n  border: none;\n  padding: 4px 10px 0 10px;\n  color: #888;\n  z-index: 100;\n}\n.ptx-content .example-like .aside-like {\n  margin-top: 0;\n  position: absolute;\n}\n.ptx-content .aside-like {\n  font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1em 0.2em #fff inset;\n}\n.ptx-content .aside-like .para {\n  overflow-x: auto;\n}\n.ptx-content .aside-like:first-child {\n  margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0em;\n  bottom: 0;\n  left: 0;\n  pointer-events: none;\n  background-image:\n    linear-gradient(\n      to bottom,\n      rgba(255, 255, 255, 0.4),\n      rgba(255, 255, 255, 1) 90%);\n  width: 550px;\n  height: 8em;\n}\n.ptx-content .aside-like.front,\n.ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after,\n.ptx-content .example-like .aside-like.front:after {\n  background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n  margin-top: 1.25em;\n}\n.ptx-content .aside-like.front + p {\n  margin-top: 1.25em !important;\n  padding-top: 0;\n}\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n.ptx-content article.aside-like > p:first-child {\n  margin-top: 0;\n}\n.ptx-content .aside-like > .heading {\n  font-size: 95%;\n}\n.ptx-content .aside-like + * {\n  margin-top: 3em;\n  margin-right: 3em;\n}\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n    margin-right: 0;\n  }\n}\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like,\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    position: absolute;\n    margin-top: -2em;\n    margin-left: 660px;\n    max-width: 200px;\n    width: 200px;\n    color: inherit;\n  }\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like.front {\n    max-height: none;\n    max-width: 223px;\n    border: 2px solid #dcebfa;\n  }\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    margin-left: 654px;\n  }\n  .ptx-content .aside-like + * {\n    margin-top: 1.25em;\n    margin-right: 0;\n  }\n  .ptx-content .aside-like + .solutions,\n  .ptx-content .aside-like + .instructions {\n    margin-top: 0;\n  }\n  .ptx-content .aside-like.front:after,\n  .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n  }\n}\n.ptx-content .aside-like:hover:after,\n.ptx-content .aside-like:focus:after {\n  top: 3em;\n  height: auto;\n  background-image: none;\n}\n.ptx-content .aside-like:hover,\n.ptx-content .aside-like:focus {\n  color: inherit;\n  padding: 2px 8px 0 8px;\n  border: 2px solid #dcebfa;\n  height: auto;\n  max-height: none;\n}\n.ptx-content .aside-like.front:hover,\n.ptx-content .aside-like.front:focus {\n  padding: 4px 10px;\n}\n.ptx-content section dl dd .aside-like {\n  margin-top: 0 !important;\n  margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n  margin-left: -300px !important;\n}\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n  }\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n  }\n}\n.searchbox .searchresultsplaceholder {\n  background: #eaf0f6;\n}\n:root[data-legacy-colorscheme=blue_green] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82;\n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=blue_grey] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red_dark] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n    background: #444;\n    color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n    background: #333;\n  }\n  .ptx-navbar .button {\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n  .pretext .ptx-masthead {\n    background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background: var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n:root[data-legacy-colorscheme=bluegreen_grey] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #ddd;\n  --chaptertoctext: var(--bluegreen);\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: var(--bluegreen);\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);\n  --highlighttoc: var(--bluegreen);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=brown_gold] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c;\n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #140a00 --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=darkmartiansands] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #550000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=default] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --parttoc: #234b6a;\n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=focused_gray_aqua] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=focused_light] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=green_blue] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #195827;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=green_plum] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20602f;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=maroon_grey] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #330000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=martiansands] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #6a3418;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=orange_navy] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a;\n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #006deb;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=pastel_blue_orange] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n:root[data-legacy-colorscheme=red_blue] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_amethyst] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #008099;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_emerald] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_turquoise] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n.ptx-masthead .title-container > .heading,\n.ptx-masthead .title-container > .heading a,\n.ptx-masthead .logo-link:empty:hover::before,\n.ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n.ptx-masthead .title-container > .heading a:active,\n.ptx-masthead .logo-link:empty:active::before,\n.ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active {\n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n.ptx-content .para > a.internal {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover,\n.ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus,\n.ptx-content .para > a.internal:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover,\n.ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus,\n.ptx-content .para > a.external:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .playvideo {\n  background-color: var(--videoplay);\n}\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n.ptx-content .assemblage-like {\n  border-color: var(--assemblageborder);\n  background-color: var(--assemblagebackground);\n}\n.ptx-content .knowl-output {\n  border-color: var(--knowlborder);\n  background-color: var(--knowlbackground);\n}\n.pretext[data-atmosphere=pastel],\n.pretext[data-atmosphere=pastel] .ptx-main {\n  background: #dbf5ff;\n  background: #efe;\n}\n.pretext[data-atmosphere=pastel] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=pastel] .ptx-navbar {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-masthead {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-sidebar {\n  background: #ffd;\n}\n.pretext[data-atmosphere=darktwilight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(9, 72%, 30%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n}\n.pretext[data-atmosphere=dark] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(5, 86%, 24%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n}\n.pretext[data-atmosphere=darkmidnight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n.pretext[data-atmosphere*=dark] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page > .ptx-main {\n  background: var(--mainbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .summary-links a {\n  background: var(--documenttitledark);\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar {\n  background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead {\n  background: var(--bannerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer {\n  background: var(--footerbackground);\n  border-top-color: #447;\n  border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .logo {\n  background: #779;\n  border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=dark] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=dark] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .code-inline {\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .kbdkey {\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .goal-like > .heading {\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content a.url,\n.pretext[data-atmosphere*=dark] .ptx-content a.internal,\n.pretext[data-atmosphere*=dark] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n/*! Theme: min-legacy */\n/*# sourceMappingURL=theme-min-legacy.css.map */\n"
  },
  {
    "path": "css/dist/theme-oscarlevin-legacy.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/html/legacy/oscarlevin/theme-oscarlevin.scss */\n* {\n  box-sizing: border-box;\n}\nbody.pretext {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\nbody.pretext[data-font=OS] {\n  font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=RS] {\n  font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n}\nbody.pretext {\n  background: #fff;\n}\na {\n  color: inherit;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: transparent;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  background: #BF1722;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n  position: relative;\n}\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n  display: inline;\n}\n.ptx-content pre {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.ptx-content pre {\n  border-radius: 0;\n}\n.ptx-content textarea {\n  padding: 0;\n}\n.ptx-content h1,\n.ptx-content h2,\n.ptx-content h3,\n.ptx-content h4,\n.ptx-content h5,\n.ptx-content h6 {\n  margin: 0;\n  font-size: unset;\n}\n.pretext h1,\n.pretext h2,\n.pretext h3,\n.pretext h4,\n.pretext h5,\n.pretext h6 {\n  margin: 0;\n  font-size: unset;\n}\n.ptx-content .heading {\n  line-height: 1.1;\n}\n.ptx-content .para {\n  margin-top: 1.25em;\n  margin-bottom: 0;\n  line-height: 1.35;\n}\n.ptx-content .para.continuation {\n  margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n  margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n  margin-top: 0.75em;\n}\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .para:first-of-type {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n  margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n  margin-top: 1.75em;\n}\n.ptx-content .para.intertext {\n  margin-top: -0.25em;\n  text-indent: 0;\n}\n.ptx-content .para + table {\n  margin-top: 1em;\n}\n.ptx-content table tr td .para + .para {\n  margin-top: 1em;\n}\n.ptx-content table + .para {\n  margin-top: 1.5em;\n}\n.ptx-content .para + figure.figure-like > table {\n  margin-top: 1em;\n}\n.ptx-content .exercise-like .para + ol {\n  margin-top: 0.5em;\n}\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n  margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n  margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n  margin-left: 1.5em;\n}\n.ptx-content .exercisegroup {\n  padding-top: 1.25em;\n  margin-bottom: 1em;\n}\n.ptx-content section .exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup article.exercise-like .heading {\n  margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n  font-weight: 600;\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n  margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n  margin-top: 1em;\n}\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n  margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n  margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n  margin-top: 1.25em;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n  content: \"\\25a0\\2009\";\n  color: #06a;\n  position: relative;\n  top: -1px;\n  right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n  content: \"\\2003\";\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content section > article,\n.ptx-content section > section.paragraphs,\n.ptx-content .paragraphs > article {\n  margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n  margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n  margin-top: 1em;\n}\n.ptx-content article + .posterior {\n  margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n  margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n  margin-top: 1em;\n}\n.ptx-content section .proof {\n  margin-top: 0.75em;\n}\n.ptx-content section > pre,\n.ptx-content .para + pre {\n  margin-top: 1.25em;\n}\n.ptx-content ol .para + .para,\n.ptx-content ul .para + .para {\n  margin-top: 1em;\n}\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content section .heading,\n.ptx-content article .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n}\n.ptx-content article .exercise-stage {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n.ptx-content article > .heading + .para {\n  margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para,\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n  margin-top: 0.25em;\n}\n.ptx-content section .heading + article {\n  margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content a > .heading {\n  display: inline;\n}\n.ptx-content section > .heading {\n  font-size: 1.75em;\n  line-height: 1.25em;\n  margin-top: 1em;\n  margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n  font-size: 1.5em;\n  line-height: 1.25em;\n  margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .paragraphs .heading + .para {\n  display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n  display: inline;\n}\n.ptx-content .runestone label > .para {\n  display: inline;\n}\n.ptx-content .paragraphs .para .title {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-size: 1.125em;\n  font-weight: 700;\n}\n.ptx-content .paragraphs > .heading {\n  margin-top: 0;\n}\n.ptx-content .paragraphs + .paragraphs {\n  margin-top: 3em;\n}\n.ptx-content article .paragraphs > .heading {\n  font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n  font-size: 1.4em;\n  line-height: 1.15em;\n  margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  .ptx-content section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  .ptx-content section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.ptx-content .abstract {\n  margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .abstract > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n  display: inline;\n}\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like > .heading {\n  font-size: 1em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n  display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n  content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n  display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n  content: \"\\2009\";\n}\n.ptx-content .posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n  padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n  font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n  font-weight: 700;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-bottom: 0;\n}\n.ptx-content li {\n  margin-bottom: 0;\n}\n.ptx-content li .title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.ptx-content article.theorem-like li .title {\n  font-weight: 600;\n  font-style: normal;\n  font-size: 96%;\n}\n.ptx-content figure {\n  margin-bottom: 0;\n}\n.ptx-content .heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.ptx-content .conclusion {\n  margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n  margin-top: 0.5em;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n  margin-top: 0;\n}\n.ptx-content .heading + ol,\n.ptx-content .heading + ul {\n  margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol,\n.ptx-content li > .heading + ul {\n  margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n  margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n  margin-top: 0;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content article .para:first-child {\n  margin-top: 0;\n}\n.ptx-content ol ol,\n.ptx-content ol ul,\n.ptx-content ul ol,\n.ptx-content ul ul {\n  margin-top: 0.5em;\n}\n.ptx-content .frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content .frontmatter > .heading .title,\n.ptx-content .book > .heading .title {\n  font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle,\n.ptx-content .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: #666666;\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.ptx-content .frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n  font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n  font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\nbutton {\n  font: inherit;\n}\n.print-button {\n  position: relative;\n  right: 2px;\n  top: 66px;\n  background-color: LightGreen;\n  z-index: 1;\n  margin-top: -4em;\n  float: right;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n    border: none;\n  }\n  .pretext .ptx-page main.ptx-main {\n    margin-left: 0;\n    left: auto;\n    border: none;\n    box-shadow: none;\n    padding: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content {\n    margin-top: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section {\n    margin-top: 1em;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading {\n    margin-top: 0;\n  }\n  .pretext a[href]::after {\n    content: \"\";\n  }\n  .print-button {\n    display: none;\n  }\n}\n@media print {\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    width: 820px;\n    max-width: 820px;\n    font-size: 12.5px;\n  }\n  body.standalone.worksheet {\n    margin: 0;\n  }\n  body.standalone .ptx-content section.worksheet {\n    border: none;\n  }\n  body.standalone.worksheet .ptx-masthead,\n  body.standalone.worksheet .ptx-page-footer {\n    display: none;\n  }\n  body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-content section.onepage {\n    max-height: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    page-break-after: always;\n    border: none;\n    page-break-inside: avoid;\n  }\n  body.standalone.worksheet .ptx-content .onepage.lastpage {\n    margin-bottom: -2em;\n    page-break-after: auto;\n  }\n  body.standalone.worksheet.a4 .ptx-content .onepage {\n  }\n  body.standalone.worksheet .ptx-content .onepage div.workspace,\n  body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  body.standalone.worksheet a {\n    color: black;\n  }\n  body.standalone.worksheet .ptx-page .ptx-main {\n    padding: 0;\n  }\n  body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n    padding-bottom: 20px;\n  }\n  @page {\n    margin: 0;\n  }\n}\n.hidden {\n  display: none;\n}\n.ptx-navbar .preferences_menu_holder .active > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n  background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n  width: 4em;\n  justify-content: center;\n  text-align: center;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n[data-ruler=greybar] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: #f3f3f3;\n}\n[data-atmosphere*=dark][data-ruler=greybar] .onelineX:hover {\n  color: #333;\n}\n[data-ruler=lightbox] .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=lightbox] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: inherit;\n}\n[data-ruler=sunrise] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 2px solid black;\n  margin-bottom: -2px;\n  position: relative;\n  z-index: 10;\n}\nxxxxxx[data-ruler=sunriseunderline] .onelineX:hover + .onelineX {\n  margin-top: -2px;\n}\n[data-ruler=sunriseunderline] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=underline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  margin-bottom: -1px;\n}\n[data-ruler=lunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  border-left: 1px solid black;\n  padding-left: 4px;\n  margin-left: -5px;\n  margin-bottom: -1px;\n}\n[data-atmosphere*=dark][data-ruler*=underline] .onelineX:hover {\n  border-bottom: 1.5px solid #ddd;\n  margin-bottom: -1.5px;\n}\n[data-atmosphere*=dark][data-ruler=lunderline] .onelineX:hover {\n  border-left: 1.5px solid #ddd;\n  padding-left: 3.5px;\n  margin-left: -5px;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\n.ptx-footnote {\n  display: inline-block;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number {\n  visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: 0.6rem;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote__number {\n  display: inline;\n  cursor: pointer;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowlbackground);\n  border-radius: 6px;\n  padding: 0px 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowlborder);\n}\n.ptx-content section .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n.ptx-content section .para.copyright {\n  margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n  margin-top: 2.5em;\n}\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n  margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.ptx-content .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n}\n.ptx-content .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.ptx-content figcaption {\n  font-weight: normal;\n}\n.ptx-content figcaption {\n  margin-top: 0.6em;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n  font-weight: 700;\n  font-size: inherit;\n}\n.ptx-content figcaption .codenumber:after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption code.code-inline {\n  white-space: pre;\n}\n.ptx-content figure.figure > figcaption {\n  margin-top: 1em;\n}\n.ptx-content figure.listing > figcaption + * {\n  margin-top: 0.5em;\n}\n.ptx-content figcaption + .named-list-content {\n  margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n  margin-top: 0.5em;\n}\n.ptx-content .definition-like .para > .emphasis {\n  font-weight: 700;\n}\n.ptx-content em.alert {\n  font-weight: bold;\n}\n.unprocessed {\n  padding: 8px;\n  background-color: rgb(255, 230, 230);\n}\n.unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(255, 200, 255);\n}\n.unprocessed .unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(205, 205, 255);\n}\n.ptx-content section.introduction + section {\n  margin-top: 2em;\n}\n.ptx-content {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section {\n  display: inline-block;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n  max-width: unset;\n}\n.ptx-content .runestone > .parsons {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone .parsons {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: max-content;\n  padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: 660px;\n}\n.runestonebustmenu {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.runestonebustmenu .dropdown-content {\n  position: absolute;\n  right: 2em;\n  left: unset;\n  top: 1em;\n}\n@media screen and (max-width: 800px) {\n  nav .dropdown .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .activecode-toggle {\n    display: none;\n  }\n}\n.pretext .navbar .dropdown {\n  height: 35px;\n}\n.ptx-content section section + section {\n  margin-top: 3em;\n}\n.ptx-content .sidebyside > .para,\n.ptx-content .sidebyside > figure,\n.ptx-content .sidebyside > img,\n.ptx-content .sidebyside > table,\n.ptx-content .sidebyside > tabular,\n.ptx-content .sidebyside > section,\n.ptx-content .sidebyside > .paragraphs {\n  display: inline-block;\n  margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .sidebyside figcaption {\n  padding-left: 1em;\n  padding-right: 0;\n  padding-bottom: 0;\n  margin: 0.75em 0 0 0;\n}\n.ptx-content figcaption {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .sidebyside > .para {\n  width: 32%;\n  vertical-align: top;\n}\n.ptx-content .sidebyside > .para.left,\n.ptx-content .sidebyside > .para.middle,\n.ptx-content .sidebyside > .para.right {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside > .para + img {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside .sbsrow .sbsheader {\n  margin-top: 0;\n}\n.ptx-content .sbsgroup {\n  width: 100%;\n}\n.ptx-content .sidebyside {\n  width: 100%;\n}\n.ptx-content .sbsrow {\n  display: flex;\n  justify-content: space-between;\n}\n.ptx-content .sbsheader {\n  text-align: center;\n  justify-content: center;\n  font-size: 1em;\n}\n.ptx-content .sbspanel:empty {\n  height: 10em;\n  background-color: rgb(221, 221, 255);\n}\n.ptx-content .sbspanel {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n  justify-content: center;\n}\n.ptx-content .sbspanel.bottom {\n  justify-content: flex-end;\n}\n.ptx-content .sbspanel > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .fixed-width {\n  align-items: center;\n}\n.ptx-content .sbscaption {\n  justify-content: center;\n}\n.ptx-content table {\n  border-spacing: 0;\n}\n.ptx-content table {\n  border-collapse: collapse;\n}\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n  margin-top: 1.5em;\n}\n.ptx-content table tr td,\n.ptx-content table tr th {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.ptx-content table tr td {\n  font-size: 90%;\n}\n.ptx-content table tr td.l {\n  text-align: left;\n}\n.ptx-content table tr td.c {\n  text-align: center;\n}\n.ptx-content table tr td.r {\n  text-align: right;\n}\n.ptx-content table tr td.j {\n  text-align: justify;\n}\n.ptx-content table tr td.lines {\n  white-space: nowrap;\n}\n.ptx-content table tr td.t {\n  vertical-align: top;\n}\n.ptx-content table tr td.b {\n  vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n  vertical-align: middle;\n}\n.ptx-content table tr td.vv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n}\n.ptx-content table tr td.vcv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vcvv {\n  border-left: 2px solid #000;\n  border-right: 4px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vlv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vrv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.rv {\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.vr {\n  border-left: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.lv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vl {\n  border-left: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.cv {\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.Xv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vc {\n  border-left: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.hline {\n  padding: 0;\n}\n.ptx-content table tr td.hlinethick {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.ptx-content table tr td.hline hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 1px solid rgb(0, 0, 0);\n}\n.ptx-content table tr td.hlinethick hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 2px solid rgb(0, 0, 0);\n}\n.center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n  border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n  border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n  border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n  border-bottom: none;\n}\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n  border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n  border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n  border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n  border-top: none;\n}\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n  border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n  border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n  border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n  border-right: none;\n}\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n  border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n  border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n  border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n  border-left: none;\n}\n.ptx-content table tr td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content table.notation-list tr th {\n  text-align: left;\n}\n.ptx-content table.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.ptx-content table.notation-list tr th {\n  margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n  margin-left: 1em;\n}\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content table tr td span.decimal {\n  float: left;\n  text-align: right;\n}\n.ptx-content table tr.header-vertical th {\n  writing-mode: vertical-rl;\n  padding-left: 2em;\n}\n.ptx-content table + article {\n  margin-top: 1em;\n}\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof {\n  margin-top: 0.3em;\n}\n.ptx-content .hidden-knowl-wrapper article {\n  display: inline;\n}\n.apretext-content figure.figure-like {\n  overflow: auto;\n}\n.ptx-content figure.figure-like {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content figure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n  margin-right: 0;\n}\n.ptx-content a > tt {\n  font-size: 110%;\n}\n.ptx-content section .videolink a:link {\n  background-size: 0;\n}\n.ptx-content .playvideo {\n  cursor: pointer;\n}\n.ptx-content .videobig {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 85%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: relative;\n  top: 100px;\n  cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n}\n.ptx-content .knowl .videobig {\n  display: none;\n}\n.ptx-content .videosmall {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 80%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: absolute;\n  left: -250px;\n  z-index: 1001;\n  cursor: zoom-out;\n}\n.ptx-content .exercise-like ol li table {\n  margin-bottom: 0.5em;\n}\n.ptx-content .exercise-like > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content section.worksheet > .heading > .codenumber {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n  display: inline-block;\n  max-width: 70%;\n}\n.ptx-content .heading .print-links {\n  display: inline-block;\n  float: right;\n  vertical-align: top;\n  width: 19%;\n  text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n  display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n  display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n  display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n  background: none;\n  color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n  border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n  padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n  margin: 0;\n}\n.ptx-content .appendix .heading > .type {\n  display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n  display: none;\n}\n.ptx-content .heading .print-links > a {\n  font-family: \"Open Sans\";\n  font-size: 0.6em;\n  font-weight: bold;\n  padding: 0.1em 0.2em;\n  background: #ffa;\n  border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n  background: #eef;\n  color: #9b1c2c;\n  border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n  margin-left: 0.25em;\n}\n.ptx-content .autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 3px;\n  left: -1.9em;\n  font-size: 85%;\n  color: #a00;\n  opacity: 0.05;\n  margin-top: 0.1em;\n}\n.ptx-content li > .para > .autopermalink {\n  left: -3.4em;\n  top: 0;\n}\n.ptx-content .autopermalink a {\n  color: #a00;\n}\n.ptx-content .autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n:target {\n  scroll-margin-top: 45px;\n}\n.ptx-content .para > .autopermalink {\n  margin-top: 0.2em;\n}\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .figure-like > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .subsubsection > .autopermalink {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .autopermalink:hover {\n  opacity: 1;\n  background: #eeddff;\n}\n.ptx-content .permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: #fff;\n  border: 3px solid blue;\n  z-index: 2001;\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: #eeaaff;\n}\n.ptx-content .indexitem {\n  margin-top: 2px;\n}\n.ptx-content .subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .indexknowl {\n  margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl {\n  margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n  margin-left: 2em;\n}\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .indexitem .indexknowl {\n  font-size: 90%;\n}\n.ptx-content .indexitem [data-knowl],\n.ptx-content .subindexitem [data-knowl],\n.ptx-content .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover,\n.ptx-content .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.ptx-content .subindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .indexletter {\n  margin-top: 1.5em;\n}\n.ptx-content .hidden-knowl-wrapper .heading {\n  display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n  display: inline;\n}\n.ptx-content .cols2 .knowl-output,\n.ptx-content .cols3 .knowl-output,\n.ptx-content .cols4 .knowl-output,\n.ptx-content .cols5 .knowl-output,\n.ptx-content .cols5 .knowl-output {\n  width: 100%;\n}\n.ptx-content .cols2 + *,\n.ptx-content .cols3 + *,\n.ptx-content .cols4 + *,\n.ptx-content .cols5 + *,\n.ptx-content .cols6 + * {\n  clear: both;\n}\n.ptx-content .cols2::after,\n.ptx-content .cols3::after,\n.ptx-content .cols4::after,\n.ptx-content .cols5::after,\n.ptx-content .cols6::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n  margin-bottom: 1.5em;\n}\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n  padding-bottom: 0em;\n}\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n  clear: left;\n}\n.ptx-content .exercise-like ol.cols2 li {\n  margin-top: 0.5em;\n}\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n  float: left;\n}\n.ptx-content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.ptx-content .emphasis {\n  font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n  font-weight: bold;\n}\n:target {\n  animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n@-moz-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n.ptx-content .autoterm [knowl],\n.ptx-content .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.ptx-content .autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.ptx-content ol li.custom-list-style-type {\n  list-style-type: none;\n}\n.ptx-content ol li.custom-list-style-type:before {\n  content: attr(label) \"\\a0\\a0\";\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n  list-style-type: none;\n}\n.ptx-content ol.decimal {\n  list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n  list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n  list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n  list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n  list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n  list-style-type: disc;\n}\n.ptx-content ul.square {\n  list-style-type: square;\n}\n.ptx-content ul.circle {\n  list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n  list-style-type: none;\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n  clear: both;\n}\n.ptx-content dl {\n  margin-top: 1em;\n  margin-left: 0;\n  margin-bottom: 0;\n  overflow: hidden;\n}\n.ptx-content dl dd {\n  margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n  margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n  margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n  margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n  margin-top: 0;\n}\n.ptx-content dl dd .para {\n  margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child,\n.ptx-content dl dd > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content dl > dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: left;\n  text-align: right;\n  width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n  text-align: left;\n}\n.ptx-content dl.glossary dd {\n  margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n  margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n  clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n  content: \"\";\n  display: block;\n  height: 1em;\n  clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n  height: 0;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: both;\n  margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n  width: unset;\n  max-width: 55ex;\n  text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 0;\n  margin-top: 0;\n  width: 31em;\n  max-width: calc(100% - 12ex);\n  float: right;\n  clear: right;\n}\n.ptx-content dl.description-list + * {\n  clear: both;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.ptx-content dl.description-list dl dt {\n  width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n  margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n  margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n  width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n  display: inline;\n}\na.mjx-svg-href {\n  fill: inherit;\n  stroke: inherit;\n}\n.displaymath + .para {\n  margin-top: 0;\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n    position: relative;\n    overflow-x: auto;\n  }\n  .ptx-content .mjx-chtml.MJXc-display {\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n.ptx-content dd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n.floatnav a {\n  padding-left: 3px;\n  margin-right: -1px;\n  color: inherit;\n}\n.ptx-content a .heading .mjx-chtml {\n  z-index: 1;\n  background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after,\n.ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after,\n.ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n.floatnav a:hover {\n  background: #eeaaff;\n}\n.ptx-content .unselectable {\n  user-select: none;\n}\n.ptx-content .latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.ptx-content .latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.ptx-content .fillin {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n  display: inline-block;\n  border: none;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n  outline: 1px solid black;\n  height: 1.3em;\n}\n.ptx-content .fillin.shade {\n  display: inline-block;\n  border: none;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n  background-color: #eee;\n  height: 1.3em;\n}\n.ptx-content .hiddenproof > a > .heading {\n  font-style: italic;\n  font-weight: normal;\n}\n.ptx-content .MJXc-display,\n.ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n  background-image:\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0));\n  background-position:\n    left center,\n    right center,\n    left center,\n    right center;\n  background-repeat: no-repeat;\n  background-color: inherit;\n  background-size:\n    20px 100%,\n    20px 100%,\n    10px 100%,\n    10px 100%;\n  background-attachment:\n    local,\n    local,\n    scroll,\n    scroll;\n}\n.ptx-content .runestone .code-box {\n  background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground));\n}\n.ptx-content .knowl-output.original .MJXc-display {\n  background: inherit;\n}\n.ptx-content .assemblage-like .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground));\n}\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0));\n}\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n  padding-top: 0.25em;\n}\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 1.5em;\n}\n.ptx-content .exercise-like .introduction {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n  content: \"\";\n  display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n  content: \"\";\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols3,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols4,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols5,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n  width: 100%;\n  display: inline-flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-items: flex-start;\n  align-content: flex-start;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n  display: inline;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n.ptx-content .exercisegroup .cols1 > article.exercise-like {\n  flex-basis: calc(100% - 2em);\n}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {\n  flex-basis: calc(50% - 2em);\n}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {\n  flex-basis: calc(33.33% - 2em);\n}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {\n  flex-basis: calc(25% - 2em);\n}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {\n  flex-basis: calc(20% - 2em);\n}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {\n  flex-basis: calc(16.66% - 2em);\n}\n.ptx-content .mathword {\n  white-space: nowrap;\n}\n.ptx-content .unit,\n.ptx-content .quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n  word-spacing: normal;\n}\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n  overflow-x: auto;\n}\n.ptx-content .code-inline {\n  font-size: 1em;\n  white-space: pre;\n  color: inherit;\n  background: #eeeeee;\n  border: 1px solid #dddddd;\n  padding: 0.0625em 0.25em;\n  margin-left: 0.2em;\n  margin-right: 0.2em;\n  border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n  margin-left: 0;\n}\n.ptx-content .title .code-inline {\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content a .code-inline {\n  background: #f6f6f6;\n}\n.ptx-content .kbdkey {\n  background: #f1f1f1;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.ptx-content .kbdkey {\n  color: #333;\n}\n.ptx-content .sagecell_sessionOutput pre {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n  margin: 0;\n}\n.ptx-content .sagecell_evalButton {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.ptx-content .booktitle {\n  font-style: oblique;\n}\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n  font-size: 1.25em;\n}\n.ptx-content a .heading {\n  white-space: normal;\n}\n.ptx-content .solutions > a,\n.ptx-content .solutions > a:hover,\n.ptx-content .solutions > a.active,\n.ptx-content .instructions > a,\n.ptx-content .instructions > a:hover,\n.ptx-content .instructions > a.active {\n  display: inline-block;\n  margin-right: 1.5em;\n}\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n  content: \"\\25ba\";\n  font-size: 70%;\n  color: #06a;\n  position: relative;\n  top: -2px;\n  right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n  content: \"\\25bc\";\n  animation-name: solutiontriangle;\n  animation-duration: 3s;\n  animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n  left: 12px;\n}\n@keyframes solutiontriangle {\n  from {\n    content: \"\\25ba\";\n  }\n  to {\n    content: \"\\25bc\";\n  }\n}\n.ptx-content section.solutions {\n  font-size: 90%;\n  padding-left: 1em;\n  border-left: 1em solid #eeeeee;\n}\n.ptx-content.ptx-content > section.solutions:first-child {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n  margin-top: 1em;\n  padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n  font-size: 100%;\n  font-weight: 700;\n  margin-right: 0.25em;\n  display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n  display: inline;\n}\n.ptx-content article > figure:first-child {\n  margin-top: 0;\n}\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n  padding-top: 1em;\n}\n.ptx-content img {\n  display: inline-block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img.cs {\n  display: block;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img:not(.cs) {\n  max-width: 650px;\n}\n.ptx-content .tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img + img {\n  margin-top: 30px;\n}\n.ptx-content div.center img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content div.center + div.center > img {\n  margin-top: 60px;\n}\n.ptx-content div.center > img + img {\n  margin-top: 60px;\n}\n.ptx-content figure table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure.wrap img {\n  width: 250px;\n}\n.ptx-content figure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n  float: right;\n  margin: 0;\n}\n.ptx-content figure figcaption.wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure,\n.ptx-content .image-box {\n  margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n  margin-top: 1em;\n}\n.ptx-content figure .image-box {\n  margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n  margin-top: 0;\n}\n.ptx-content .image-box img,\n.ptx-content img.contained,\n.ptx-content .sbspanel img {\n  width: 100%;\n  height: auto;\n}\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n  cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n  max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n  position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n  margin-top: 0.75em;\n}\n.ptx-content .audio {\n  width: 100%;\n}\n.caption .heading {\n  font-weight: bold;\n}\n.caption .counter {\n  font-weight: bold;\n}\n.ptx-content div.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.minipage + .minipage {\n  display: inline-block;\n}\n.ptx-content code.inline {\n  background: none;\n  border: none;\n}\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n  line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n  margin-top: 1em;\n}\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n.ptx-content pre[data-line].program,\n.ptx-content pre[data-line].code-block {\n  padding-left: 2.5em;\n}\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n  margin-left: -5em;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  padding-left: 3.5em;\n  overflow: visible;\n}\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n  margin-left: -7em;\n}\n.ptx-content pre[data-line].line-numbers code {\n  padding-top: 0em;\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n  margin-top: 0em;\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n  margin-top: 0.6em;\n}\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n  content: \"\";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n.ptx-content .objectives {\n  margin-bottom: 1.25em;\n}\n.ptx-content ol > li {\n  padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li,\n.ptx-content ul.cols2 > li {\n  width: calc(49% - 1.75em);\n  min-width: 190px;\n}\n.ptx-content ol.cols3 > li,\n.ptx-content ul.cols3 > li {\n  width: calc(33% - 1.25em);\n  min-width: 160px;\n}\n.ptx-content ol.cols4 > li,\n.ptx-content ul.cols4 > li {\n  width: calc(24.5% - 1.25em);\n  min-width: 100px;\n}\n.ptx-content ol.cols5 > li,\n.ptx-content ul.cols5 > li {\n  width: calc(19.5% - 0.75em);\n  min-width: 90px;\n}\n.ptx-content ol.cols6 > li,\n.ptx-content ul.cols6 > li {\n  width: calc(16.3% - 0.5em);\n  min-width: 80px;\n}\n.ptx-content ul.cols2 > li:nth-child(odd),\n.ptx-content ol.cols2 > li:nth-child(odd) {\n  margin-right: 2em;\n}\n.ptx-content .cols2 ol,\n.ptx-content .cols3 ol,\n.ptx-content .cols4 ol,\n.ptx-content .cols5 ol,\n.ptx-content .cols6 ol {\n  padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n  margin-top: 1em;\n}\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n  float: none !important;\n  padding-top: 0.5em;\n}\n.ptx-content .solution ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .solution ol li > .para:first-child,\n.ptx-content .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n.ptx-content .exercise-like ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .exercise-like > .cols2 > li {\n  width: calc(49% - 2.5em);\n}\n.ptx-content .exercise-like > .cols3 > li {\n  width: calc(33% - 2.5em);\n}\n.ptx-content .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2.5em);\n}\n.ptx-content .knowl .exercise-like > .cols2 > li {\n  width: calc(49% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols3 > li {\n  width: calc(33% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2em);\n}\n.ptx-content .exercise-like ol li > .para:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .contributor .contributor-name {\n  font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.ptx-content .contributor {\n  margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n  margin-top: 1.5ex;\n}\n.ptx-content .contributor + .para {\n  margin-top: 3ex;\n}\n.ptx-content .frontmatter .contributors,\n.ptx-content .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.searchwrapper .gsc-control-cse {\n  padding: 0;\n  border: none;\n  width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n.searchwrapper input.gsc-search-button-v2 {\n  padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n  padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n  padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n  height: 3ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  font-size: 12px;\n}\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {\n  color: #090;\n}\n.ptx-content .image-archive {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-top: 0.75em;\n  padding-bottom: 0.25em;\n  text-align: center;\n}\n.ptx-content .image-archive > a {\n  display: inline-block;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n  font-family: monospace;\n}\n.ptx-content iframe {\n  margin: 0;\n  border: none;\n  box-sizing: border-box;\n}\n.ptx-content .times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.ptx-content article.notranslate {\n  margin-top: 0;\n}\n.ptx-content article.exercise-like > .exercise-like {\n  margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content article.example-like > .heading + .introduction {\n  display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content .taxon {\n  font-style: italic;\n}\n.ptx-content .sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n  padding-bottom: 5px;\n  padding-left: 6px;\n}\n.ptx-content .hidden-content,\n.pretext .hidden-content {\n  display: none;\n}\n.ptx-content hr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n.ptx-content hr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n  display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n  margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n  margin-top: 0;\n}\n.ptx-content meta {\n  display: none;\n}\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:hover .codenumber,\n.ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n.ptx-content .summary-links {\n  margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n  margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n}\n.ptx-content .summary-links li {\n  margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a,\n.ptx-content .summary-links a:link,\n.ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n  margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n  display: none;\n}\nbody.standalone .ptx-content .worksheet {\n  padding: 40px 0 45px 0;\n  border: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage {\n  padding: 40px 45px 45px 55px;\n  border-bottom: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  border-top: 2px solid grey;\n}\nbody.standalone .ptx-content .onepage.firstpage {\n  padding-top: 0;\n}\nbody.standalone .ptx-content .onepage.lastpage {\n  padding-bottom: 0;\n  border-bottom: none;\n}\nbody.standalone .ptx-content .worksheet > *:last-child {\n  padding-bottom: 0 !important;\n}\n.ptx-content .onepage + .onepage {\n  margin-top: 2.5em;\n  padding-top: 1.5em;\n  border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n  content: \"pagebreak\";\n  text-align: center;\n  margin-left: 40%;\n  padding-left: 1em;\n  padding-right: 1em;\n  position: absolute;\n  top: -0.8em;\n  font-size: 80%;\n  font-style: italic;\n  background: white;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n  content: none;\n}\nbody.standalone .ptx-content .onepage article {\n  padding-left: 0;\n  border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n  all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n  margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n  margin-top: 1.25em;\n}\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  padding-left: 1.25em;\n  border-left: 1px solid grey;\n  margin-left: -1.25em;\n  z-index: -100;\n}\nbody.standalone.worksheet .ptx-content section article.task {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n  font-weight: normal;\n}\nbody.standalone .autopermalink {\n  display: none;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n  border: 2px dotted grey;\n  background: #f3fff3;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n  border: 2px dotted grey;\n  background: #ffe;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n  border: 15px solid;\n  border-image:\n    repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px) 20;\n  background: yellow;\n}\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like {\n  border: none;\n  padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n  margin-top: -0.5em;\n  padding: 0;\n  margin: 0;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n  margin-left: 55px;\n  margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n  display: inline;\n}\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n.ptx-content a.url,\n.ptx-content a.external {\n  color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n  background: #ffd;\n}\n.ptx-content .poem {\n  margin-top: 1.5em;\n}\n.ptx-content .poem {\n  display: table;\n  margin-top: 1.5em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  width: auto;\n  max-width: 90%;\n}\n.ptx-content .poem > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n  content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.ptx-content .poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n  text-align: left;\n}\n.ptx-content .poem .author.center {\n  text-align: center;\n}\n.ptx-content .poem .author.right {\n  text-align: right;\n}\n.ptx-content .poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n  text-align: center;\n}\n.ptx-content .poem .line.right {\n  text-align: right;\n}\n.ptx-content .poem .tab {\n  margin-left: 2em;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\n.toolBPanel {\n  overflow: hidden !important;\n}\n.toolBPanel:hover {\n  overflow: auto !important;\n}\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n.ptx-content .marginresource {\n  position: relative;\n  height: 0;\n  left: 40em;\n  top: 1em;\n}\n.ptx-content .marginresource a {\n  color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n  border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n  font-size: 200%;\n  margin-right: 1em;\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n  display: block;\n  margin-left: 2em;\n}\n.collectedworks .knowl-output {\n  border: 12px solid #D6E3FF;\n  background: none repeat scroll 0% 0% #FAFCFF;\n  border-radius: 4px;\n  margin-bottom: 1.25em;\n}\n.collectedworks .subjectwork {\n  max-width: 750px;\n}\n.collectedworks .bib {\n  margin-bottom: 1em;\n}\n.collectedworks .bibitem + .bibentry {\n  display: inline;\n}\n.collectedworks .bibitem {\n  display: inline;\n  font-weight: bold;\n  margin-right: 1em;\n}\n.collectedworks .work .title a {\n  text-decoration: none;\n  color: #009;\n}\n.iconlegend {\n  position: absolute;\n  margin-top: 0.5em;\n  top: 0;\n  left: 920px;\n  line-height: 1;\n}\n.iconlegend .icon_name {\n  font-size: 90%;\n  margin-right: 1em;\n}\n.icongroup + .icongroup {\n  margin-left: 1em;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\n.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.ptx-content .webwork-button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n  cursor: pointer;\n  background-color: #a0a0a0;\n  border: 1px solid #999;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.ptx-content .exercise-wrapper form button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  color: black;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n  width: 22px;\n  height: 22px;\n  background-image: url(https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico);\n  background-size: contain;\n  position: absolute;\n  right: -35px;\n}\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n  margin-top: 0.5em;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-content .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.ptx-content .cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n@media screen and (max-width: 600px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.3em;\n}\n.APEXlogo .E {\n  position: relative;\n  top: 0.33em;\n}\n.runestone-profile .dropdown-content {\n  position: absolute;\n  display: none;\n  right: 0;\n  top: 35px;\n  text-align: left;\n  border: 1px solid;\n  border-color: #600;\n  border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n  background-color: #ddd;\n  overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n  display: block;\n}\n.runestone-profile .dropdown-content {\n  background-color: white;\n  z-index: 1800;\n  min-width: 100px;\n  padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: #662211;\n  padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n  background-color: #671d12;\n  color: #ffffff;\n  text-decoration: none;\n  background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n  margin-bottom: 4px;\n  margin-top: 4px;\n  border-color: #600;\n  border-color: var(--sectiontoctext);\n}\n.searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox {\n}\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n.searchbutton .name {\n  display: none;\n}\n.searchwidget {\n  text-align: right;\n}\n.searchwidget input {\n}\n.helpbox {\n  display: none;\n}\n.detailed_result {\n  margin-bottom: 10px;\n}\n.all_results a:link {\n  text-decoration: none;\n  font-size: large;\n}\n.all_results a:hover {\n  background-color: lightgray;\n}\n.searchresults a:hover {\n  background-color: #eee;\n}\n.searchresults a {\n  text-decoration: none;\n  color: #222;\n}\n.searchresults a:hover {\n  text-decoration: underline;\n  color: #33f;\n}\n.searchresults ul li {\n  list-style-type: none;\n}\nol.searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n}\nol.searchresults > li {\n  list-style-type: none;\n}\n.search-result-score {\n  display: none;\n}\n.high_result {\n  font-weight: 700;\n}\n.medium_result {\n  font-weight: 500;\n}\n.low_result {\n  font-weight: 200;\n}\n.no_result {\n  font-weight: 200;\n  color: #444;\n}\n.detailed_result .no_result {\n  font-size: 90%;\n}\n.searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  left: 152px;\n  width: 600px;\n  padding: 1em;\n  border: 0.2em solid #009;\n  background: aliceblue;\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.search-results-heading {\n  border-bottom: 1px solid rgba(0, 0, 125, 0.5);\n}\n.search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n}\n.closesearchresults {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border: 1px solid black;\n}\n.closesearchresults:hover {\n  color: #c00;\n  background-color: #fee;\n  border-color: #f00;\n}\n.closesearchresults + h2 {\n  margin-top: -1em;\n}\n.searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.search-result-bullet {\n  margin-top: 0.3em;\n}\n.search-result-clip {\n  font-size: 80%;\n  font-style: italic;\n  color: #444;\n  padding-left: 15px;\n}\n.search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n  background: rgba(255, 255, 0, 0.5);\n}\n@media screen and (max-width: 800px) {\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n  position: relative;\n}\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n  height: 36px;\n}\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n}\n.ptx-content {\n  min-height: 60vh;\n}\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 36px;\n  left: 0;\n  float: left;\n  width: 240px;\n}\n.pretext .ptx-toc {\n  position: sticky;\n  top: 50px;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  height: calc(100vh - 60px);\n}\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin-left: 0;\n}\n.pretext .ptx-page > .ptx-main.notoc {\n  margin-left: 0;\n  transition-property: margin-left;\n  transition-duration: 0.3s;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n  .pretext .ptx-page-footer {\n    margin-bottom: 38px;\n  }\n}\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    margin: 28px;\n  }\n}\n.ptx-content.serif .para .para,\n.ptx-content[data-font=RS] .para .para {\n  font-size: 100%;\n}\n.ptx-content[data-font=RS] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  justify-content: space-around;\n  max-width: 600px;\n  margin-left: 32px;\n}\n.pretext .ptx-content-footer .button {\n  min-width: 80px;\n  height: 35px;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0 10px;\n  display: flex;\n  gap: 10px;\n  align-items: center;\n  justify-content: center;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.pretext .ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n  background: #f4f4f4;\n  margin-top: 2em;\n  padding-top: 0;\n  max-width: 900px;\n  border-top: 2px solid var(--sectiontoctext);\n  border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  position: relative;\n}\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n  }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n}\n.ptx-masthead .ptx-banner {\n  border-bottom: 1px solid #d4d4d4;\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding-top: 0.625em;\n  padding-bottom: 1.125em;\n  border-bottom: none;\n}\n.ptx-masthead {\n  max-width: 904px;\n  border-right: 1px solid #bababa;\n}\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    margin-top: 0.625em;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  margin: 0;\n  font-size: 2em;\n  line-height: 1.25em;\n  color: #932919;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n.ptx-masthead .title-container > .heading a {\n  color: #932919;\n  background: none;\n  text-decoration: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    display: block;\n    font-size: 1.16667em;\n    line-height: 1.42857em;\n    color: #595959;\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .logo-link {\n  position: relative;\n  float: left;\n  font-size: 50px;\n  margin-top: 0.1em;\n  margin-left: 9.68px;\n  text-align: center;\n  line-height: 1;\n}\n.ptx-masthead .logo-link img {\n  width: auto;\n  height: auto;\n  max-height: 1em;\n}\n.ptx-masthead .logo-link:empty:before {\n  font-family: \"Open Sans\";\n  font-size: 1em;\n  content: \"\\2211\";\n  line-height: 1;\n  width: 1em;\n  display: inline-block;\n  vertical-align: top;\n  text-align: center;\n  color: #ccc;\n}\n.ptx-masthead .logo-link:empty:hover:before {\n  color: #932919;\n}\n.ptx-masthead .logo-link:empty:active:before {\n  color: #3572a0;\n}\n.ptx-masthead .logo-link {\n  background: transparent;\n  border: none;\n  text-decoration: none;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .logo-link {\n    display: block;\n    float: none;\n    margin: 0;\n    font-size: 50px;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-weight: normal;\n  margin: 0;\n  font-size: 1.3125em;\n  line-height: 1.42857em;\n  min-height: inherit;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:hover,\n.ptx-masthead .byline a:focus {\n  color: #932919;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\nnav.ptx-navbar {\n  background: #ededed;\n  border: 0;\n  border-top: 1px solid #bababa;\n  border-bottom: 1px solid #bababa;\n  margin: 0;\n  z-index: 100;\n  font-family: \"Open Sans\";\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.ptx-navbar .button {\n  font-size: 1em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: #333333;\n  background-color: #ededed;\n  border: 0;\n  border-right: 1px solid #bababa;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n.ptx-navbar .button:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n}\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  color: #333333;\n  background: #ededed;\n  box-shadow: none;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n}\n.ptx-navbar .button .icon {\n  font-size: 1.5em;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) > *:first-child {\n  border-left: 1px solid #bababa;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button, .calculator-toggle) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  width: 70px;\n}\n.ptx-navbar .calculator-toggle {\n  width: 60px;\n  min-height: 32px;\n  text-align: center;\n  border-radius: 20px;\n  margin-left: 5px;\n  border: 2px solid #66f;\n  line-height: 25px;\n  margin-top: 1px;\n  background-color: #eef;\n}\n.ptx-navbar .calculator-toggle.open {\n  background: #fee;\n  border: 2px solid #f66;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: #ededed;\n    box-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar :is(.treebuttons) > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n  .ptx-navbar .nav-runestone-controls > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar .calculator-toggle {\n    width: auto;\n    height: 35px;\n    border-radius: 0;\n    margin-left: 0;\n    border: 0;\n    border-right: 1px solid #bababa;\n    line-height: inherit;\n    margin-top: 0;\n    background-color: inherit;\n  }\n}\n.ptx-toc {\n  width: 240px;\n  margin: 0;\n  font-size: 14.72px;\n  overflow-y: auto;\n  overflow-x: hidden;\n}\n.ptx-toc::after {\n  content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n  display: block;\n  height: 13em;\n  padding: 2em 1em;\n  background: #fff;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 8px solid #999;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0px;\n  padding: 0px;\n  list-style-type: none;\n}\n.ptx-toc .toc-item {\n  border-top: 1px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-weight: normal;\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  border-top: 2px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-item.active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-title-box .title {\n  flex-grow: 1;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc ul.structural ul.structural .title:empty::after {\n  content: \"empty heading!\";\n  font-weight: bold;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n  display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n  display: block;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n  display: none;\n}\n.ptx-toc.focused > ul.structural > li:not(:first-child) {\n  margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n  border: 0;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 30px;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--highlighttoc);\n  color: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n:root {\n  --parttoc: var(--chaptertoc);\n  --parttoctext: var(--chaptertoctext);\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: var(--chaptertoctextactive);\n}\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n  :root {\n    --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n  }\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowlLinkColor);\n  border-bottom: 1px dotted var(--knowlLinkColor);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--linkbackground);\n  border-bottom-color: transparent;\n}\n.knowl__content {\n  margin: 0.2em;\n  border: 6px solid var(--knowlborder);\n  border-radius: 0.4em;\n  padding: 0.8em;\n  background-color: var(--knowlbackground);\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n  content: \"\" !important;\n  border-bottom: none;\n  margin: 0;\n  padding: 0;\n  width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n  padding-right: 0;\n  border-right: none;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested4Background);\n}\n.ptx-content .knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.openproblem-like::after,\n.ptx-content article.openproblems-like::after,\n.ptx-content article.computation-like::after {\n  content: unset;\n}\n.ptx-content article.theorem-like,\n.ptx-content article.definition-like,\n.ptx-content article.example-like,\n.ptx-content article.project-like,\n.ptx-content article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content article.computation-like {\n  padding: unset;\n  border: unset;\n}\n:root {\n  --assembbody: var(--bluelight, hsl(210, 90%, 90%));\n  --assembborder: var(--blue, hsl(210, 40%, 60%));\n  --assembhead: var(--blue, hsl(210, 40%, 75%));\n  --definitionbody: var(--greenlight, hsl(180, 40%, 90%));\n  --definitionborder: var(--green, hsl(180, 40%, 50%));\n  --definitionhead: var(--green, hsl(180, 40%, 50%));\n  --theorembody: var(--violetlight, hsl(270, 40%, 90%));\n  --theoremborder: var(--violet, hsl(270, 40%, 75%));\n  --theoremhead: var(--violetdark, hsl(270, 40%, 25%));\n  --examplebody: var(--bluedull, hsl(240, 40%, 90%));\n  --exampleborder: var(--bluedark, hsl(240, 40%, 25%));\n  --examplehead: var(--exampleborder);\n  --examplelikebody: var(--examplebody);\n  --examplelikeborder: var(--bluedull, hsl(240, 40%, 75%));\n  --examplelikehead: var(--examplelikeborder);\n  --projectbody: var(--greenlight, hsl(180, 40%, 90%));\n  --projectborder: var(--green, hsl(180, 40%, 75%));\n  --projecthead: var(--green, hsl(180, 40%, 75%));\n  --investigateborder: var(--bluerich, hsl(180, 40%, 25%));\n  --goalborder: var(--violetrich, hsl(270, 90%, 25%));\n  --remarklikebody: var(--yellowlight, hsl(330, 55%, 90%));\n  --remarklikeborder: var(--yellow, hsl(330, 55%, 50%));\n  --remarklikehead: var(--yellow, hsl(330, 55%, 50%));\n  --computationborder: var(--orangedull, hsl(180, 40%, 75%));\n  --asemblagebackground: var(--assembbody) !important;\n  --assemblageborder: var(--assembborder) !important;\n}\n.ptx-content article.assemblage-like,\n.ptx-content article.definition-like,\n.ptx-content article.theorem-like.theorem {\n  margin-top: 1.75em;\n  padding: 1em;\n  border-radius: 2px;\n  margin-bottom: 1em;\n}\n.ptx-content article.theorem-like {\n  margin-top: 1.25em;\n  padding: 1em;\n  border-radius: 2px;\n  margin-bottom: 1em;\n}\n.ptx-content article.assemblage-like {\n  background-color: var(--assembbody);\n  border: 2px solid var(--assembborder);\n}\n.ptx-content article.definition-like {\n  background-color: var(--definitionbody);\n  border: 2px solid var(--definitionborder);\n}\n.ptx-content article.theorem-like.theorem,\n.ptx-content article.theorem-like {\n  background-color: var(--theorembody);\n  border: 2px solid var(--theoremborder);\n}\n.ptx-content article.assemblage-like .heading,\n.ptx-content article.definition-like .heading,\n.ptx-content article.theorem-like.theorem .heading {\n  margin-top: -1.75em;\n  margin-left: -0.25em;\n  display: table;\n  padding: 0.25em 0.4em;\n}\n.ptx-content .assemblage-like .heading {\n  background-color: var(--assembhead);\n  color: #000;\n}\n.ptx-content .definition-like .heading {\n  background-color: var(--definitionborder);\n  color: #000;\n}\n.ptx-content .theorem-like.theorem .heading {\n  background-color: var(--theoremborder);\n  color: #000;\n}\n.ptx-content .example-like > .heading + .introduction,\n.ptx-content .computation-like > .heading + .introduction,\n.ptx-content .assemblage-like .heading + .para,\n.ptx-content .computation-like > .heading + .para,\n.ptx-content .example-like .heading + .para,\n.ptx-content .theorem-like.theorem .heading + .para,\n.ptx-content .definition-like .heading + .para {\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content article.example-like,\n.ptx-content article.computation-like {\n  padding-left: 0.8em;\n  padding-bottom: 0.5em;\n}\n.ptx-content article.example-like.example {\n  border-left: 0.1em solid var(--examplehead);\n  border-bottom: 0.1em solid var(--examplehead);\n}\n.ptx-content article.example-like {\n  border-left: 0.1em solid var(--examplelikeborder);\n  border-bottom: 0.1em solid var(--examplelikeborder);\n}\n.ptx-content article.computation-like {\n  border-left: 0.1em solid var(--computationborder);\n  border-bottom: 0.1em solid var(--computationborder);\n}\n.ptx-content .example-like > .heading,\n.ptx-content .computation-like > .heading {\n  display: inline-block;\n  padding: 0.3em 0.5em;\n  margin-left: -0.8em;\n}\n.ptx-content .example-like.example > .heading {\n  border: 0.1em solid var(--examplehead);\n  background: var(--examplehead);\n  color: white;\n}\n.ptx-content .example-like > .heading {\n  background: var(--examplelikeborder);\n  color: black;\n}\n.ptx-content .computation-like > .heading {\n  background: var(--computationborder);\n  color: black;\n}\n.ptx-content article.project-like {\n  background-color: white;\n  border: solid 3px var(--projectborder);\n  border-radius: 10px;\n  padding: 10px;\n  margin-bottom: 1em;\n}\n.ptx-content article.project-like.investigation {\n  border-color: var(--investigateborder);\n}\n.ptx-content article.project-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table !important;\n  padding: 5px 1em;\n  margin-left: 10px;\n  font-style: italic;\n  font-size: 120% !important;\n}\n.ptx-content .goal-like {\n  background-color: white;\n  border-radius: 0em;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n.ptx-content .goal-like.objectives {\n  border-top: solid 3px var(--goalborder);\n  border-bottom: solid 3px var(--goalborder);\n  border-left: none;\n  border-right: none;\n}\n.ptx-content .goal-like.outcomes {\n  border-top: solid 3px var(--goalborder);\n  border-bottom: solid 3px var(--goalborder);\n  border-left: none;\n  border-right: none;\n}\n.ptx-content .goal-like .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 10px;\n  font-style: italic;\n  font-size: 120%;\n}\n.ptx-content article.remark-like {\n  margin-top: 1.25em;\n  padding: 1em;\n  padding-top: 0.7em;\n  margin-bottom: 1em;\n  border-radius: 0px;\n  border-left: 5px solid var(--remarklikeborder);\n  background-color: var(--remarklikebody);\n}\n.ptx-content section > .proof {\n  margin-bottom: 1em;\n}\n.ptx-content article.assemblage-like .heading::after,\n.ptx-content article.theorem-like.theorem .heading::after,\n.ptx-content article.theorem-like .heading::after,\n.ptx-content article.example-like > .heading::after,\n.ptx-content article.project-like > .heading::after {\n  content: \"\";\n}\n.ptx-content .assemblage-like .MJXc-display,\n.ptx-content .definition-like .MJXc-display,\n.ptx-content .theorem-like.theorem .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      #e9eff5,\n      #e9eff5),\n    linear-gradient(\n      to right,\n      #e9eff5,\n      #e9eff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(242, 242, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(242, 242, 254, 0));\n}\n.ptx-content .theorem-like.corollary .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--bodytitlehighlight),\n      var(--bodytitlehighlight)),\n    linear-gradient(\n      to right,\n      var(--bodytitlehighlight),\n      var(--bodytitlehighlight)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(242, 242, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(242, 242, 254, 0));\n}\n.ptx-content .aside-like {\n  position: absolute;\n  margin-left: 45%;\n  overflow-x: hidden;\n  max-width: 495px;\n  max-height: 7em;\n  overflow-y: hidden;\n  border: none;\n  padding: 4px 10px 0 10px;\n  color: #888;\n}\n.ptx-content .example-like .aside-like {\n  margin-top: 0;\n  position: absolute;\n}\n.ptx-content .aside-like {\n  font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1em 0.2em #fff inset;\n}\n.ptx-content .aside-like:first-child {\n  margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0em;\n  bottom: 0;\n  left: 0;\n  pointer-events: none;\n  background-image:\n    linear-gradient(\n      to bottom,\n      rgba(255, 255, 255, 0.4),\n      rgba(255, 255, 255, 1) 90%);\n  width: 550px;\n  height: 8em;\n}\n.ptx-content .aside-like.front,\n.ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after,\n.ptx-content .example-like .aside-like.front:after {\n  background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n  margin-top: 1.25em;\n}\n.ptx-content .aside-like.front + .para {\n  margin-top: 1.25em !important;\n  padding-top: 0;\n}\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n.ptx-content article.aside-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .aside-like > .heading {\n  font-size: 95%;\n}\n.ptx-content .aside-like + * {\n  margin-top: 3em !important;\n  margin-right: 3em;\n}\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n    margin-right: 0;\n  }\n}\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like,\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    position: absolute;\n    margin-top: -2em;\n    margin-left: 660px;\n    max-width: 200px;\n    width: 200px;\n    color: inherit;\n  }\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like.front {\n    max-height: none;\n    max-width: 223px;\n    border: 2px solid #dcebfa;\n  }\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    margin-left: 654px;\n  }\n  .ptx-content .aside-like + * {\n    margin-top: 1.25em !important;\n    margin-right: 0;\n  }\n  .ptx-content .aside-like.front:after,\n  .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n  }\n}\n.ptx-content .aside-like:hover:after,\n.ptx-content .aside-like:focus:after {\n  top: 3em;\n  height: auto;\n  background-image: none;\n}\n.ptx-content .aside-like:hover,\n.ptx-content .aside-like:focus {\n  color: inherit;\n  padding: 2px 8px 0 8px;\n  border: 2px solid #dcebfa;\n  height: auto;\n  max-height: none;\n}\n.ptx-content .aside-like.front:hover,\n.ptx-content .aside-like.front:focus {\n  padding: 4px 10px;\n}\n.ptx-content section dl dd .aside-like {\n  margin-top: 0 !important;\n  margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n  margin-left: -300px !important;\n}\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n  }\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n  }\n}\n:root[data-legacy-colorscheme=blue_green] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82;\n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=blue_grey] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red_dark] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n    background: #444;\n    color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n    background: #333;\n  }\n  .ptx-navbar .button {\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n  .pretext .ptx-masthead {\n    background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background: var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n:root[data-legacy-colorscheme=bluegreen_grey] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #ddd;\n  --chaptertoctext: var(--bluegreen);\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: var(--bluegreen);\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);\n  --highlighttoc: var(--bluegreen);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=brown_gold] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c;\n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #140a00 --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=darkmartiansands] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #550000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=default] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --parttoc: #234b6a;\n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=focused_gray_aqua] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=focused_light] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=green_blue] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #195827;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=green_plum] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20602f;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=maroon_grey] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #330000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=martiansands] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #6a3418;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=orange_navy] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a;\n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #006deb;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=pastel_blue_orange] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n:root[data-legacy-colorscheme=red_blue] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_amethyst] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #008099;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_emerald] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_turquoise] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n.ptx-masthead .title-container > .heading,\n.ptx-masthead .title-container > .heading a,\n.ptx-masthead .logo-link:empty:hover::before,\n.ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n.ptx-masthead .title-container > .heading a:active,\n.ptx-masthead .logo-link:empty:active::before,\n.ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active {\n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n.ptx-content .para > a.internal {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover,\n.ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus,\n.ptx-content .para > a.internal:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover,\n.ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus,\n.ptx-content .para > a.external:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .playvideo {\n  background-color: var(--videoplay);\n}\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n.ptx-content .assemblage-like {\n  border-color: var(--assemblageborder);\n  background-color: var(--assemblagebackground);\n}\n.ptx-content .knowl-output {\n  border-color: var(--knowlborder);\n  background-color: var(--knowlbackground);\n}\n.pretext[data-atmosphere=pastel],\n.pretext[data-atmosphere=pastel] .ptx-main {\n  background: #dbf5ff;\n  background: #efe;\n}\n.pretext[data-atmosphere=pastel] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=pastel] .ptx-navbar {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-masthead {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-sidebar {\n  background: #ffd;\n}\n.pretext[data-atmosphere=darktwilight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(9, 72%, 30%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n}\n.pretext[data-atmosphere=dark] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(5, 86%, 24%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n}\n.pretext[data-atmosphere=darkmidnight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n.pretext[data-atmosphere*=dark] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page > .ptx-main {\n  background: var(--mainbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .summary-links a {\n  background: var(--documenttitledark);\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar {\n  background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead {\n  background: var(--bannerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer {\n  background: var(--footerbackground);\n  border-top-color: #447;\n  border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .logo {\n  background: #779;\n  border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=dark] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=dark] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .code-inline {\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .kbdkey {\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .goal-like > .heading {\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content a.url,\n.pretext[data-atmosphere*=dark] .ptx-content a.internal,\n.pretext[data-atmosphere*=dark] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n/*! Theme: oscarlevin-legacy */\n/*# sourceMappingURL=theme-oscarlevin-legacy.css.map */\n"
  },
  {
    "path": "css/dist/theme-salem.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Noto Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/html/salem/theme-salem.scss */\n:root {\n  --base-content-width: 725px;\n  --content-padding: 48px;\n}\nbody {\n  margin: 0;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.pretext {\n  color: var(--body-text-color);\n  font-family: var(--font-body);\n}\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n}\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;\n  container-type: inline-size;\n}\n.ptx-main .ptx-content {\n  max-width: 821px;\n  padding: 24px 48px 60px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.worksheet .ptx-main .ptx-content {\n  max-width: 960px;\n}\n.ptx-page {\n  max-width: 1200px;\n  margin-left: auto;\n  margin-right: auto;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n.ptx-content .print-preview-header {\n  display: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: #BF1722;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: 821px;\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: 48px;\n  padding-right: 48px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content-footer .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 2px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content-footer .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content-footer .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content-footer .button.hidden {\n  display: none;\n}\n.ptx-content-footer .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\nbody.standalone-page .ptx-page {\n  max-width: 1600px;\n}\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding: 10px 10px;\n  border-bottom: none;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  max-width: 1200px;\n}\n.ptx-masthead a {\n  color: var(--doc-title-color, #2a5ea4);\n}\n.ptx-masthead a:active {\n  color: var(--link-active-text-color);\n}\n.ptx-masthead .title-container {\n  font-family: var(--font-headings);\n  font-size: 2em;\n  padding-left: 9.68px;\n  overflow: hidden;\n  flex: 1;\n}\n.ptx-masthead .title-container .heading {\n  font-weight: 700;\n  font-size: 100%;\n  line-height: 1.25em;\n}\n.ptx-masthead .title-container .title:has(+ .subtitle)::after {\n  content: \":\";\n}\n.ptx-masthead .title-container .subtitle {\n  font-weight: normal;\n}\n.ptx-masthead .logo-link {\n  height: 5em;\n  display: flex;\n}\n.ptx-masthead .logo-link img {\n  max-height: 100%;\n}\n.ptx-masthead .logo-link img[src$=\".svg\"] {\n  height: 100%;\n}\n.ptx-masthead .byline {\n  color: var(--byline-color);\n  font-weight: normal;\n  margin: 0;\n  font-size: 62.5%;\n  min-height: inherit;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n  }\n  .ptx-masthead .ptx-banner {\n    padding: 10px 28px;\n    display: flex;\n    justify-content: center;\n  }\n  .ptx-masthead .logo-link::before {\n    font-size: 1rem;\n    margin-top: 0;\n  }\n  .ptx-masthead .title-container {\n    width: fit-content;\n    flex: unset;\n  }\n  .ptx-masthead .title-container .heading {\n    line-height: 1em;\n  }\n  .ptx-masthead .title-container .heading .subtitle {\n    display: block;\n    font-size: 80%;\n    line-height: 1em;\n  }\n  .ptx-masthead .byline {\n    font-size: 50%;\n  }\n}\n@media screen and (width <= 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    font-size: 1em;\n  }\n  .ptx-masthead .logo-link {\n    display: none;\n  }\n  .ptx-masthead .byline {\n    display: none;\n  }\n}\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: 36px;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar .ptx-navbar-contents {\n  position: relative;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n  max-width: 1200px;\n  margin: 0 auto;\n}\n.ptx-navbar .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-navbar .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-navbar .button.hidden {\n  display: none;\n}\n.ptx-navbar .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button {\n  height: 100%;\n  border-width: 0;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n  margin-left: 0;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.ptx-navbar .pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar .embed-popup {\n  padding: 10px;\n  background-color: var(--navbar-background);\n  position: absolute;\n  margin-top: 36px;\n  border: 1px solid var(--page-border-color);\n  border-radius: 3px;\n  box-shadow: 0 0 5px var(--primary-color-gray-80);\n  color: var(--button-text-color);\n}\n.ptx-navbar .embed-popup .embed-code-container {\n  width: \"100%\";\n  padding: 5px;\n}\n.ptx-navbar .embed-popup .embed-code-container .embed-code-textbox {\n  width: 100%;\n  padding: 10px;\n  height: 5em;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  min-width: 70px;\n}\n.runestone-profile {\n  position: relative;\n}\n.runestone-profile .dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: var(--dropdown-background);\n  min-width: 160px;\n  z-index: 100;\n  border: 1px solid var(--dropdown-border-color);\n  right: 0;\n  top: 35px;\n  text-align: start;\n  padding: 0;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: var(--dropdown-text-color);\n  padding: 2px 8px;\n}\n.runestone-profile .dropdown-content a:is(:hover, :focus-visible) {\n  background-color: var(--dropdown-hover-background);\n  color: var(--dropdown-hover-text-color);\n}\n.runestone-profile .dropdown-content hr {\n  color: var(--dropdown-border-color);\n  margin: 4px 0;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) {\n  overflow: visible;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) .dropdown-content {\n  display: block;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .button {\n    border-left-width: 1px;\n    border-right-width: 1px;\n    border-color: var(--page-border-color);\n  }\n  .ptx-navbar > *:not(:first-child) {\n    margin-left: -1px;\n  }\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    max-width: 100vw;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar .embed-popup {\n    margin-top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n    display: none;\n  }\n}\n.ptx-sidebar {\n  align-self: flex-start;\n}\n.ptx-sidebar.visible {\n  display: block;\n}\n.ptx-sidebar.hidden {\n  display: none;\n  height: 0;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  background: var(--toc-background);\n  margin: 0;\n  font-size: 0.9rem;\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--tocitem-background);\n}\n.ptx-toc .toc-item-list .active {\n  list-style: none;\n}\n.ptx-toc .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n  border-color: var(--toc-border-color);\n}\n.ptx-toc .toc-item a {\n  color: inherit;\n}\n.ptx-toc .toc-item.active:not(:has(.toc-item.active)) {\n  color: var(--tocitem-active-text-color) !important;\n  background-color: var(--tocitem-active-background) !important;\n  border-color: var(--tocitem-active-border-color) !important;\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-weight: 500;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-weight: normal;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.focused {\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item.hidden {\n  display: none;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 1.25em;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--tocitem-highlight-background);\n  color: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"add\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"remove\";\n}\n.ptx-sidebar {\n  position: sticky;\n  width: 0;\n  display: none;\n  z-index: 200;\n  height: 0;\n  top: 35px;\n}\n.ptx-toc {\n  border-right: 1px solid var(--toc-border-color);\n  border-bottom: 1px solid var(--toc-border-color);\n  max-height: calc(100vh - 200px);\n  overflow-y: auto;\n  background: var(--page-color);\n  width: 350px;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 3px solid var(--toc-border-color);\n}\n@media screen and (max-width: 800px) {\n  .ptx-sidebar {\n    position: fixed;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: 36px;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n}\n.ptx-page-footer > a {\n  margin: 1em 0;\n  color: var(--body-text-color);\n}\n.ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-page-footer .feedback-link {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-page-footer .feedback-link:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-page-footer .feedback-link:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-page-footer .feedback-link.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-page-footer .feedback-link.hidden {\n  display: none;\n}\n.ptx-page-footer .feedback-link.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n@media screen and (max-width: 800px) {\n  .ptx-page-footer {\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: 34px;\n  }\n  .ptx-page-footer > a > .logo:first-child {\n    height: 2em;\n  }\n}\n:root {\n  --page-width: 1100px;\n}\n.standalone-page {\n  --page-width: 1600px;\n}\n.ptx-masthead .ptx-banner {\n  justify-content: center;\n}\n.ptx-masthead .title-container {\n  flex: unset;\n}\n@media screen and (width > 800px) {\n  .ptx-masthead {\n    max-width: var(--page-width);\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n@media screen and (width > 1100px) {\n  .ptx-masthead {\n    border-left: 1px solid var(--page-border-color);\n    border-right: 1px solid var(--page-border-color);\n  }\n}\n@media screen and (width > 800px) {\n  .ptx-navbar {\n    max-width: var(--page-width);\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n@media screen and (width > 1100px) {\n  .ptx-navbar {\n    border-left: 1px solid var(--page-border-color);\n    border-right: 1px solid var(--page-border-color);\n  }\n}\n@media screen and (width > 800px) {\n  .ptx-page {\n    max-width: var(--page-width);\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n@media screen and (width > 1100px) {\n  .ptx-page {\n    border-left: 1px solid var(--page-border-color);\n    border-right: 1px solid var(--page-border-color);\n  }\n}\n.ptx-page-footer {\n  border-bottom: 0;\n}\n@media screen and (width > 800px) {\n  .ptx-page-footer {\n    max-width: var(--page-width);\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n@media screen and (width > 1100px) {\n  .ptx-page-footer {\n    border-left: 1px solid var(--page-border-color);\n    border-right: 1px solid var(--page-border-color);\n  }\n}\n.ptx-content-footer {\n  justify-content: space-evenly;\n}\n@container ptx-main (width < 800px) {\n  .ptx-page > .ptx-main .ptx-content {\n    padding-left: 20px;\n    padding-right: 20px;\n    max-width: 765px;\n  }\n}\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n@media screen and (min-width: 1820px) {\n  details.aside-like {\n    position: relative;\n    margin-left: -524px;\n    width: 300px;\n    right: -524px;\n    float: right;\n    clear: right;\n  }\n  .multicolumn details.aside-like {\n    position: relative;\n    margin-left: inherit;\n    width: auto;\n    right: 0;\n    float: none;\n    clear: none;\n  }\n  details.aside-like > .knowl__content {\n    margin-left: 0;\n    margin-right: 0;\n    background-color: var(--aside-like-body-background);\n    z-index: 100;\n  }\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 1px solid var(--knowl-border-color);\n  border-radius: 2px;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.remark-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 4px solid var(--remark-like-border-color);\n  background-color: var(--remark-like-body-background);\n  border-radius: 4px;\n}\n.remark-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) {\n  border: 2px solid var(--assemblage-like-border-color);\n  background-color: var(--assemblage-like-body-background);\n  padding: 10px;\n  border-radius: 2px;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  display: block;\n  color: var(--block-head-color);\n  margin-bottom: 0.5em;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > *:first-child {\n  margin-top: 0;\n}\n.ptx-content:not(:has(> .worksheet)) .conclusion:not(.ptx-runestone-container *):not(.knowl__content, .born-hidden-knowl),\n.ptx-content:not(:has(> .worksheet)) .goal-like:not(.ptx-runestone-container *):not(.knowl__content, .born-hidden-knowl) {\n  border: 3px solid var(--goal-like-border-color);\n  background-color: var(--goal-like-body-background);\n  padding: 20px;\n  padding-top: calc(20px + 0.25ex);\n  margin-top: 2.5em !important;\n}\n.ptx-content:not(:has(> .worksheet)) .conclusion:not(.ptx-runestone-container *):not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.ptx-content:not(:has(> .worksheet)) .goal-like:not(.ptx-runestone-container *):not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--goal-like-border-color);\n  display: block;\n  color: white;\n  margin-bottom: 0.5em;\n  padding: 5px 10px;\n  margin-top: calc(-25px - 1.65ex);\n  width: fit-content;\n  border: 0;\n}\n.ptx-content:not(:has(> .worksheet)) .conclusion:not(.ptx-runestone-container *):not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after,\n.ptx-content:not(:has(> .worksheet)) .goal-like:not(.ptx-runestone-container *):not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.knowl__content *:first-child .ptx-content:not(:has(> .worksheet)) .conclusion:not(.ptx-runestone-container *),\n.knowl__content *:first-child .ptx-content:not(:has(> .worksheet)) .goal-like:not(.ptx-runestone-container *) {\n  margin-top: 1em;\n}\n.ptx-content:has(> .worksheet) .goal-like {\n  margin-top: 1.5em;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--theorem-like-border-color);\n  border-bottom: 1px solid var(--theorem-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--theorem-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.theorem-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--definition-like-border-color);\n  border-bottom: 1px solid var(--definition-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--definition-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.definition-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--example-like-border-color);\n  border-bottom: 1px solid var(--example-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--example-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.example-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--project-like-border-color);\n  border-bottom: 1px solid var(--project-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--project-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.project-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--computation-like-border-color);\n  border-bottom: 1px solid var(--computation-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--computation-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.computation-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.proof-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--proof-like-border-color);\n  border-bottom: 1px solid var(--proof-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.proof-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--proof-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.proof-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.proof-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.proof-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.ptx-content:not(:has(> .worksheet)) .exercise-like:not(.knowl__content, .born-hidden-knowl) {\n  border-left: 1px solid var(--exercise-like-border-color);\n  border-bottom: 1px solid var(--exercise-like-border-color);\n  background-color: var(--content-background-background);\n  padding: 0 0px 12px 12px;\n  border-bottom-left-radius: 2px;\n}\n.ptx-content:not(:has(> .worksheet)) .exercise-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  background-color: var(--exercise-like-border-color);\n  display: inline-block;\n  color: white;\n  padding: 5px 10px;\n  margin-left: -12px;\n  margin-top: 0;\n  border-top-right-radius: 2px;\n  border-bottom-right-radius: 2px;\n}\n.ptx-content:not(:has(> .worksheet)) .exercise-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child:after {\n  display: none;\n}\n.ptx-content:not(:has(> .worksheet)) .exercise-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-bottom: 12px;\n}\n.ptx-content:not(:has(> .worksheet)) .exercise-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child + * {\n  margin-top: 0;\n}\n.ptx-content:has(> .worksheet) .exercise-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.ptx-content:has(> .worksheet) .exercise-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.ptx-content:has(> .worksheet) .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.ptx-content:has(> .worksheet) .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.ptx-content:has(> .worksheet) .exercise-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n  }\n  .ptx-page,\n  .ptx-main,\n  .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n  .ptx-sagecell,\n  .tabular,\n  .table-like,\n  .figure-like,\n  .exercise-like {\n    break-inside: avoid;\n  }\n  .heading {\n    break-after: avoid;\n  }\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n}\n.heading .print-links .print-link {\n  font-family: var(--font-body);\n  padding: 0.1em 0.2em;\n}\n.heading .print-links .material-symbols-outlined {\n  margin-top: 5pt;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n.searchbox .searchwidget {\n  height: 100%;\n}\n.searchbox .searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  padding: 1em;\n  left: max(10vw, (100vw - 800px) / 2);\n  width: 80vw;\n  max-width: 800px;\n  border: 2px solid var(--body-text-color);\n  background: var(--knowl-background, #eaf0f6);\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.searchbox .searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox .search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n  height: 35px;\n}\n.searchbox .ptxsearch {\n  flex: 1 1;\n}\n.searchbox .closesearchresults {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.searchbox .closesearchresults:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .closesearchresults:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.searchbox .closesearchresults.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.searchbox .closesearchresults.hidden {\n  display: none;\n}\n.searchbox .closesearchresults.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .detailed_result {\n  margin-bottom: 10px;\n}\n.searchbox .searchresults a:hover {\n  text-decoration: underline;\n  background: var(--link-active-background);\n}\n.searchbox .searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n  background: var(--content-background, white);\n  border: 1px solid var(--page-border-color, #ccc);\n}\n.searchbox .searchresults:empty {\n  display: none;\n}\n.searchbox .search-result-bullet {\n  list-style-type: none;\n}\n.searchbox .search-result-score {\n  display: none;\n}\n.searchbox .no_result {\n  font-size: 90%;\n  font-weight: 200;\n}\n.searchbox .low_result {\n  font-weight: 200;\n}\n.searchbox .medium_result {\n  font-weight: 500;\n}\n.searchbox .high_result {\n  font-weight: 700;\n}\n.searchbox .searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.searchbox .search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.searchbox .search-result-clip-highlight {\n  background: var(--searchresultshighlight);\n}\n.searchbox .searchresultsbackground {\n  position: fixed;\n  top: 0;\n  background: var(--searchresultsbackground, white);\n  width: 100vw;\n  height: 100%;\n  left: 0;\n  z-index: 4999;\n}\n@media screen and (max-width: 800px) {\n  .searchbox .searchresultsplaceholder {\n    bottom: 10vh;\n  }\n}\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n.multiplechoice_section label > .para {\n  display: inline;\n}\n.ptx-content .ptx-runestone-container .ac_question {\n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n.runestone .runestone_caption {\n  display: none;\n}\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: 0.93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n.ptx-runestone-container code[class*=language-],\n.ptx-runestone-container pre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n}\n.runestone.datafile .datafile_caption {\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  display: block;\n  width: fit-content;\n  margin: 0 auto;\n}\n.runestone.datafile img {\n  margin: 0 auto;\n  display: block;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n}\n.runestone.datafile pre,\n.runestone.datafile textarea {\n  margin: 0 auto;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  background-color: var(--page-color);\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\nul[data-component=timedAssessment] {\n  margin: 0;\n  padding: 0;\n}\n:root.dark-mode .ptx-runestone-container code[class*=language-],\n:root.dark-mode .ptx-runestone-container pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n}\n.interactive-iframe-container > iframe {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n}\n.interactive__instructions {\n  max-width: var(--base-content-width);\n}\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n}\n.interactive-iframe-container__opener .icon {\n  font-size: 18px;\n}\n.interactive-iframe-container__opener:has(+ figcaption, + .instructions) {\n  float: left;\n  z-index: 1;\n  position: relative;\n}\n.interactive-iframe-container__opener + .instructions + figcaption {\n  clear: left;\n}\n.interactive-iframe-container__opener + .instructions {\n  margin-top: 0.5em;\n}\n.clipboardable {\n  position: relative;\n  display: flow-root;\n}\n.clipboardable .code-copy {\n  position: absolute;\n  right: 0;\n  top: 0;\n  opacity: 0.25;\n  border-width: 0;\n  background: none;\n  cursor: pointer;\n  z-index: 1;\n  white-space-collapse: collapse;\n  padding: 1px;\n  scale: 0.85;\n}\n.clipboardable .code-copy:hover {\n  opacity: 0.7;\n}\n.clipboardable .code-copy .checkmark {\n  display: none;\n}\n.clipboardable .code-copy.copied {\n  opacity: 1;\n  color: mediumseagreen;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.clipboardable .code-copy.copied .copyicon {\n  display: none;\n}\n.clipboardable .code-copy.copied .checkmark {\n  display: inline;\n}\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n}\n.clipboardable:has(.code-display) .code-display {\n  margin: 0;\n  padding: 0.25em 0;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\nlabel.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.ptx-content .problem-buttons {\n  display: flex;\n}\n.ptx-content .webwork-button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content .webwork-button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content .webwork-button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content .webwork-button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content .webwork-button.hidden {\n  display: none;\n}\n.ptx-content .webwork-button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.sage-interact.sagecell {\n  margin: 0;\n}\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  opacity: var(--permalink-opacity, 0);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\nli > .autopermalink {\n  left: -3.5em;\n}\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n.axiom-like > .para:first-of-type > .autopermalink,\n.example-like > .para:first-of-type > .autopermalink,\n.exercise-like > .para:first-of-type > .autopermalink,\n.solution-like > .para:first-of-type > .autopermalink,\n.assemblage-like > .para:first-of-type > .autopermalink,\n.definition-like > .para:first-of-type > .autopermalink,\n.remark-like > .para:first-of-type > .autopermalink,\n.project-like > .para:first-of-type > .autopermalink,\n.openproblem-like > .para:first-of-type > .autopermalink,\n.computation-like > .para:first-of-type > .autopermalink,\n.theorem-like > .para:first-of-type > .autopermalink,\n.proof > .para:first-of-type > .autopermalink,\n.case > .para:first-of-type > .autopermalink,\nli > .para:first-of-type > .autopermalink,\ndd > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.axiom-like > .introduction > .para:first-of-type > .autopermalink,\n.example-like > .introduction > .para:first-of-type > .autopermalink,\n.exercise-like > .introduction > .para:first-of-type > .autopermalink,\n.solution-like > .introduction > .para:first-of-type > .autopermalink,\n.assemblage-like > .introduction > .para:first-of-type > .autopermalink,\n.definition-like > .introduction > .para:first-of-type > .autopermalink,\n.remark-like > .introduction > .para:first-of-type > .autopermalink,\n.project-like > .introduction > .para:first-of-type > .autopermalink,\n.openproblem-like > .introduction > .para:first-of-type > .autopermalink,\n.computation-like > .introduction > .para:first-of-type > .autopermalink,\n.theorem-like > .introduction > .para:first-of-type > .autopermalink,\n.proof > .introduction > .para:first-of-type > .autopermalink,\n.case > .introduction > .para:first-of-type > .autopermalink,\nli > .introduction > .para:first-of-type > .autopermalink,\ndd > .introduction > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n:target {\n  scroll-margin-top: 45px;\n  animation: target-fade 10s 1;\n}\n@keyframes target-fade {\n  0% {\n    background-color: var(--activated-content-bg);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    Noto Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\nsection > .heading {\n  padding-bottom: 3px;\n  border-bottom: 2px solid var(--primary-color-white-30);\n}\nsection > h2.heading {\n  border-bottom-width: 4px;\n}\nsection > h3.heading {\n  border-bottom-width: 3px;\n}\n:root.dark-mode section > .heading {\n  border-bottom-color: var(--primary-color-black-30);\n}\n.hide-type .codenumber:not(:empty)::after {\n  content: \" -\";\n}\n:is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n:is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n  overflow-x: auto;\n}\n@container ptx-main (width > 821px) {\n  :is(.chapter, .section, .subsection, .subsubsection) > .tabular-box,\n  :is(.chapter, .section, .subsection, .subsubsection) > .table > .tabular-box {\n    --max-width: calc(min((100cqw - 2 * 48px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 821px));\n  }\n}\nfigure.table-like {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n@container ptx-main (width > 821px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 48px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 821px));\n  }\n}\n.ptx-runestone-container .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  min-width: 100%;\n  margin-left: auto;\n}\n@container ptx-main (width > 821px) {\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    --max-width: calc(min((100cqw - 2 * 48px), 10000px));\n    min-width: 100%;\n    clear: right;\n    width: var(--max-width);\n    max-width: var(--max-width);\n    margin-left: calc(-0.5 * (100cqw - 821px));\n  }\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: auto;\n}\n:is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n  width: 100%;\n  margin-left: 0;\n}\n.runestone.ac_section > div > div > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: 725px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone .exercise-statement {\n  max-width: 725px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.hparsons_section .hp_question,\n.hparsons_section .hp_feedback {\n  max-width: 725px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n}\n.runestone.parsons_section > .parsons .sortable-code-container {\n  display: flex;\n  flex-flow: wrap;\n  justify-content: center;\n  gap: 15px;\n  margin: 10px auto;\n}\n.runestone.parsons_section > .parsons .sortable-code {\n  margin: 0;\n}\n.runestone.parsons_section > .parsons .runestone_caption_text {\n  max-width: unset;\n}\n.runestone.parsons_section > .parsons > div > *:not(.sortable-code-container) {\n  max-width: 725px;\n  margin-left: auto;\n  margin-right: auto;\n}\n@container ptx-main (width < 850px) {\n  .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content):has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100cqw;\n    margin-left: calc(-0.5 * (100cqw - 100%));\n  }\n  :is(.timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content) .ptx-runestone-container:has(.ac_section, .codelens, .parsons_section, .hparsons_section, .datafile) {\n    width: 100%;\n    margin-left: -5px;\n  }\n}\nbody.pretext {\n  font-size: var(--content-font-size);\n}\n:root {\n  --content-font-size: 1.1rem;\n  --auto-collapse-toc: yes;\n}\n@media screen and (width < 800px) {\n  body.pretext {\n    font-size: 1rem;\n  }\n}\n:root {\n  color-scheme: light;\n}\n:root:not(.dark-mode) {\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #f8f8f8;\n  --navbar-background: var(--primary-color);\n  --footer-background: var(--banner-background);\n  --toc-border-color: #666;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--primary-color-black-30);\n  --tocitem-highlight-background: #3a3a3a;\n  --tocitem-highlight-text-color: #fff;\n  --tocitem-highlight-border-color: #3a3a3a;\n  --tocitem-active-background: var(--primary-color-white-15);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--toc-text-color);\n  --toclevel2-background: var(--primary-color-white-98);\n  --toclevel2-text-color: var(--toc-text-color);\n  --toclevel3-background: var(--primary-color-white-96);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: var(--primary-color-black-20);\n  --ptx-image-bg: transparent;\n  --activated-content-bg: rgba(241, 185, 255, 0.3);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color);\n  --link-active-background: var(--primary-color-white-96);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--primary-color-white-96);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: #f2f5f7;\n  --knowl-border-color: #577390;\n  --knowl-nested-1-background: #e5edf5;\n  --knowl-nested-2-background: #f2f5f7;\n  --knowl-nested-3-background: #e5edf5;\n  --knowl-nested-4-background: #f2f5f7;\n  --block-body-background: #f2f5f7;\n  --block-border-color: #577390;\n  --block-head-color: black;\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--primary-color);\n  --button-text-color: var(--primary-color-white-90);\n  --button-border-color: #3a3a3a;\n  --button-hover-background: #3a3a3a;\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: #eef7fb;\n  --definition-like-border-color: #0f80b0;\n  --theorem-like-body-background: #eef7fb;\n  --theorem-like-border-color: #0f80b0;\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: #f8f2f2;\n  --remark-like-border-color: #a13838;\n  --computation-like-body-background: #eef7fb;\n  --computation-like-border-color: #0f80b0;\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: #eef7fb;\n  --proof-like-border-color: #0f80b0;\n  --example-like-body-background: whitesmoke;\n  --example-like-border-color: hsl(208, 7%, 49%);\n  --project-like-body-background: whitesmoke;\n  --project-like-border-color: hsl(208, 7%, 49%);\n  --goal-like-body-background: #f8f2f2;\n  --goal-like-border-color: #a13838;\n  --solution-like-body-background: whitesmoke;\n  --solution-like-border-color: hsl(208, 7%, 49%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --primary-color: hsl(210, 45%, 27%);\n  --toc-border: var(--primary-color-gray-10);\n  --color-main: hsl(210, 45%, 27%);\n  --color-meta: #a13838;\n  --color-do: hsl(208, 7%, 49%);\n  --color-fact: #0f80b0;\n  --exercise-like-body-background: whitesmoke;\n  --exercise-like-border-color: hsl(208, 7%, 49%);\n  --asside-like-body-background: #f8f2f2;\n  --asside-like-border-color: #a13838;\n}\n:root.dark-mode {\n  color-scheme: dark;\n  --page-color: var(--background-color);\n  --content-background: var(--page-color);\n  --page-border-color: var(--background-color-white-25);\n  --doc-title-color: var(--primary-color);\n  --byline-color: var(--background-color-white-50);\n  --banner-background: #23241f;\n  --navbar-background: var(--background-color-gray-15);\n  --footer-background: var(--background-color-black-10);\n  --toc-border-color: #555;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--primary-color-gray-5);\n  --tocitem-highlight-text-color: var(--background-color-black-50);\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-gray-5);\n  --tocitem-active-text-color: var(--background-color-black-50);\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--background-color-gray-10);\n  --toclevel1-text-color: var(--primary-color-white-40);\n  --toclevel2-background: var(--toclevel1-background);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #f2f2f2;\n  --body-title-color: var(--primary-color-white-20);\n  --ptx-image-bg: white;\n  --activated-content-bg: rgba(255, 237, 185, 0.2);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color-white-10);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--doc-title-color);\n  --knowl-background: var(--background-color-black-10);\n  --knowl-border-color: var(--background-color-white-20);\n  --knowl-nested-1-background: var(--background-color-gray-10);\n  --knowl-nested-2-background: var(--background-color-black-10);\n  --knowl-nested-3-background: var(--background-color-gray-10);\n  --knowl-nested-4-background: var(--background-color-black-10);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--background-color-gray-15);\n  --button-text-color: var(--body-text-color);\n  --button-border-color: var(--background-color-white-25);\n  --button-hover-background: var(--primary-color-black-50);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: var(--background-color-gray-20);\n  --code-inline-background: var(--background-color-gray-20);\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color: #9db9d3;\n  --background-color: #23241f;\n  --background-color-white-1: color-mix(in oklab, var(--background-color), white 1%);\n  --background-color-white-2: color-mix(in oklab, var(--background-color), white 2%);\n  --background-color-white-3: color-mix(in oklab, var(--background-color), white 3%);\n  --background-color-white-4: color-mix(in oklab, var(--background-color), white 4%);\n  --background-color-white-5: color-mix(in oklab, var(--background-color), white 5%);\n  --background-color-white-10: color-mix(in oklab, var(--background-color), white 10%);\n  --background-color-white-15: color-mix(in oklab, var(--background-color), white 15%);\n  --background-color-white-20: color-mix(in oklab, var(--background-color), white 20%);\n  --background-color-white-25: color-mix(in oklab, var(--background-color), white 25%);\n  --background-color-white-30: color-mix(in oklab, var(--background-color), white 30%);\n  --background-color-white-35: color-mix(in oklab, var(--background-color), white 35%);\n  --background-color-white-40: color-mix(in oklab, var(--background-color), white 40%);\n  --background-color-white-50: color-mix(in oklab, var(--background-color), white 50%);\n  --background-color-white-60: color-mix(in oklab, var(--background-color), white 60%);\n  --background-color-white-65: color-mix(in oklab, var(--background-color), white 65%);\n  --background-color-white-70: color-mix(in oklab, var(--background-color), white 70%);\n  --background-color-white-75: color-mix(in oklab, var(--background-color), white 75%);\n  --background-color-white-80: color-mix(in oklab, var(--background-color), white 80%);\n  --background-color-white-85: color-mix(in oklab, var(--background-color), white 85%);\n  --background-color-white-90: color-mix(in oklab, var(--background-color), white 90%);\n  --background-color-white-95: color-mix(in oklab, var(--background-color), white 95%);\n  --background-color-white-96: color-mix(in oklab, var(--background-color), white 96%);\n  --background-color-white-97: color-mix(in oklab, var(--background-color), white 97%);\n  --background-color-white-98: color-mix(in oklab, var(--background-color), white 98%);\n  --background-color-white-99: color-mix(in oklab, var(--background-color), white 99%);\n  --background-color-black-1: color-mix(in oklab, var(--background-color), black 1%);\n  --background-color-black-2: color-mix(in oklab, var(--background-color), black 2%);\n  --background-color-black-3: color-mix(in oklab, var(--background-color), black 3%);\n  --background-color-black-4: color-mix(in oklab, var(--background-color), black 4%);\n  --background-color-black-5: color-mix(in oklab, var(--background-color), black 5%);\n  --background-color-black-10: color-mix(in oklab, var(--background-color), black 10%);\n  --background-color-black-15: color-mix(in oklab, var(--background-color), black 15%);\n  --background-color-black-20: color-mix(in oklab, var(--background-color), black 20%);\n  --background-color-black-25: color-mix(in oklab, var(--background-color), black 25%);\n  --background-color-black-30: color-mix(in oklab, var(--background-color), black 30%);\n  --background-color-black-35: color-mix(in oklab, var(--background-color), black 35%);\n  --background-color-black-40: color-mix(in oklab, var(--background-color), black 40%);\n  --background-color-black-50: color-mix(in oklab, var(--background-color), black 50%);\n  --background-color-black-60: color-mix(in oklab, var(--background-color), black 60%);\n  --background-color-black-65: color-mix(in oklab, var(--background-color), black 65%);\n  --background-color-black-70: color-mix(in oklab, var(--background-color), black 70%);\n  --background-color-black-75: color-mix(in oklab, var(--background-color), black 75%);\n  --background-color-black-80: color-mix(in oklab, var(--background-color), black 80%);\n  --background-color-black-85: color-mix(in oklab, var(--background-color), black 85%);\n  --background-color-black-90: color-mix(in oklab, var(--background-color), black 90%);\n  --background-color-black-95: color-mix(in oklab, var(--background-color), black 95%);\n  --background-color-black-96: color-mix(in oklab, var(--background-color), black 96%);\n  --background-color-black-97: color-mix(in oklab, var(--background-color), black 97%);\n  --background-color-black-98: color-mix(in oklab, var(--background-color), black 98%);\n  --background-color-black-99: color-mix(in oklab, var(--background-color), black 99%);\n  --background-color-gray-1: color-mix(in oklab, var(--background-color), gray 1%);\n  --background-color-gray-2: color-mix(in oklab, var(--background-color), gray 2%);\n  --background-color-gray-3: color-mix(in oklab, var(--background-color), gray 3%);\n  --background-color-gray-4: color-mix(in oklab, var(--background-color), gray 4%);\n  --background-color-gray-5: color-mix(in oklab, var(--background-color), gray 5%);\n  --background-color-gray-10: color-mix(in oklab, var(--background-color), gray 10%);\n  --background-color-gray-15: color-mix(in oklab, var(--background-color), gray 15%);\n  --background-color-gray-20: color-mix(in oklab, var(--background-color), gray 20%);\n  --background-color-gray-25: color-mix(in oklab, var(--background-color), gray 25%);\n  --background-color-gray-30: color-mix(in oklab, var(--background-color), gray 30%);\n  --background-color-gray-35: color-mix(in oklab, var(--background-color), gray 35%);\n  --background-color-gray-40: color-mix(in oklab, var(--background-color), gray 40%);\n  --background-color-gray-50: color-mix(in oklab, var(--background-color), gray 50%);\n  --background-color-gray-60: color-mix(in oklab, var(--background-color), gray 60%);\n  --background-color-gray-65: color-mix(in oklab, var(--background-color), gray 65%);\n  --background-color-gray-70: color-mix(in oklab, var(--background-color), gray 70%);\n  --background-color-gray-75: color-mix(in oklab, var(--background-color), gray 75%);\n  --background-color-gray-80: color-mix(in oklab, var(--background-color), gray 80%);\n  --background-color-gray-85: color-mix(in oklab, var(--background-color), gray 85%);\n  --background-color-gray-90: color-mix(in oklab, var(--background-color), gray 90%);\n  --background-color-gray-95: color-mix(in oklab, var(--background-color), gray 95%);\n  --background-color-gray-96: color-mix(in oklab, var(--background-color), gray 96%);\n  --background-color-gray-97: color-mix(in oklab, var(--background-color), gray 97%);\n  --background-color-gray-98: color-mix(in oklab, var(--background-color), gray 98%);\n  --background-color-gray-99: color-mix(in oklab, var(--background-color), gray 99%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n}\n/*! Theme: salem */\n/*# sourceMappingURL=theme-salem.css.map */\n"
  },
  {
    "path": "css/dist/theme-soundwriting-legacy.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/html/legacy/soundwriting/theme-soundwriting.scss */\n* {\n  box-sizing: border-box;\n}\nbody.pretext {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\nbody.pretext[data-font=OS] {\n  font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=RS] {\n  font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n}\nbody.pretext {\n  background: #fff;\n}\na {\n  color: inherit;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: transparent;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  background: #BF1722;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n  position: relative;\n}\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n  display: inline;\n}\n.ptx-content pre {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.ptx-content pre {\n  border-radius: 0;\n}\n.ptx-content textarea {\n  padding: 0;\n}\n.ptx-content h1,\n.ptx-content h2,\n.ptx-content h3,\n.ptx-content h4,\n.ptx-content h5,\n.ptx-content h6 {\n  margin: 0;\n  font-size: unset;\n}\n.pretext h1,\n.pretext h2,\n.pretext h3,\n.pretext h4,\n.pretext h5,\n.pretext h6 {\n  margin: 0;\n  font-size: unset;\n}\n.ptx-content .heading {\n  line-height: 1.1;\n}\n.ptx-content .para {\n  margin-top: 1.25em;\n  margin-bottom: 0;\n  line-height: 1.35;\n}\n.ptx-content .para.continuation {\n  margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n  margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n  margin-top: 0.75em;\n}\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .para:first-of-type {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n  margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n  margin-top: 1.75em;\n}\n.ptx-content .para.intertext {\n  margin-top: -0.25em;\n  text-indent: 0;\n}\n.ptx-content .para + table {\n  margin-top: 1em;\n}\n.ptx-content table tr td .para + .para {\n  margin-top: 1em;\n}\n.ptx-content table + .para {\n  margin-top: 1.5em;\n}\n.ptx-content .para + figure.figure-like > table {\n  margin-top: 1em;\n}\n.ptx-content .exercise-like .para + ol {\n  margin-top: 0.5em;\n}\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n  margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n  margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n  margin-left: 1.5em;\n}\n.ptx-content .exercisegroup {\n  padding-top: 1.25em;\n  margin-bottom: 1em;\n}\n.ptx-content section .exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup article.exercise-like .heading {\n  margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n  font-weight: 600;\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n  margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n  margin-top: 1em;\n}\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n  margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n  margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n  margin-top: 1.25em;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n  content: \"\\25a0\\2009\";\n  color: #06a;\n  position: relative;\n  top: -1px;\n  right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n  content: \"\\2003\";\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content section > article,\n.ptx-content section > section.paragraphs,\n.ptx-content .paragraphs > article {\n  margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n  margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n  margin-top: 1em;\n}\n.ptx-content article + .posterior {\n  margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n  margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n  margin-top: 1em;\n}\n.ptx-content section .proof {\n  margin-top: 0.75em;\n}\n.ptx-content section > pre,\n.ptx-content .para + pre {\n  margin-top: 1.25em;\n}\n.ptx-content ol .para + .para,\n.ptx-content ul .para + .para {\n  margin-top: 1em;\n}\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content section .heading,\n.ptx-content article .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n}\n.ptx-content article .exercise-stage {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n.ptx-content article > .heading + .para {\n  margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para,\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n  margin-top: 0.25em;\n}\n.ptx-content section .heading + article {\n  margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content a > .heading {\n  display: inline;\n}\n.ptx-content section > .heading {\n  font-size: 1.75em;\n  line-height: 1.25em;\n  margin-top: 1em;\n  margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n  font-size: 1.5em;\n  line-height: 1.25em;\n  margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .paragraphs .heading + .para {\n  display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n  display: inline;\n}\n.ptx-content .runestone label > .para {\n  display: inline;\n}\n.ptx-content .paragraphs .para .title {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-size: 1.125em;\n  font-weight: 700;\n}\n.ptx-content .paragraphs > .heading {\n  margin-top: 0;\n}\n.ptx-content .paragraphs + .paragraphs {\n  margin-top: 3em;\n}\n.ptx-content article .paragraphs > .heading {\n  font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n  font-size: 1.4em;\n  line-height: 1.15em;\n  margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  .ptx-content section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  .ptx-content section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.ptx-content .abstract {\n  margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .abstract > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n  display: inline;\n}\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like > .heading {\n  font-size: 1em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n  display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n  content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n  display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n  content: \"\\2009\";\n}\n.ptx-content .posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n  padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n  font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n  font-weight: 700;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-bottom: 0;\n}\n.ptx-content li {\n  margin-bottom: 0;\n}\n.ptx-content li .title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.ptx-content article.theorem-like li .title {\n  font-weight: 600;\n  font-style: normal;\n  font-size: 96%;\n}\n.ptx-content figure {\n  margin-bottom: 0;\n}\n.ptx-content .heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.ptx-content .conclusion {\n  margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n  margin-top: 0.5em;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n  margin-top: 0;\n}\n.ptx-content .heading + ol,\n.ptx-content .heading + ul {\n  margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol,\n.ptx-content li > .heading + ul {\n  margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n  margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n  margin-top: 0;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content article .para:first-child {\n  margin-top: 0;\n}\n.ptx-content ol ol,\n.ptx-content ol ul,\n.ptx-content ul ol,\n.ptx-content ul ul {\n  margin-top: 0.5em;\n}\n.ptx-content .frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content .frontmatter > .heading .title,\n.ptx-content .book > .heading .title {\n  font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle,\n.ptx-content .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: #666666;\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.ptx-content .frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n  font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n  font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\nbutton {\n  font: inherit;\n}\n.print-button {\n  position: relative;\n  right: 2px;\n  top: 66px;\n  background-color: LightGreen;\n  z-index: 1;\n  margin-top: -4em;\n  float: right;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n    border: none;\n  }\n  .pretext .ptx-page main.ptx-main {\n    margin-left: 0;\n    left: auto;\n    border: none;\n    box-shadow: none;\n    padding: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content {\n    margin-top: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section {\n    margin-top: 1em;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading {\n    margin-top: 0;\n  }\n  .pretext a[href]::after {\n    content: \"\";\n  }\n  .print-button {\n    display: none;\n  }\n}\n@media print {\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    width: 820px;\n    max-width: 820px;\n    font-size: 12.5px;\n  }\n  body.standalone.worksheet {\n    margin: 0;\n  }\n  body.standalone .ptx-content section.worksheet {\n    border: none;\n  }\n  body.standalone.worksheet .ptx-masthead,\n  body.standalone.worksheet .ptx-page-footer {\n    display: none;\n  }\n  body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-content section.onepage {\n    max-height: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    page-break-after: always;\n    border: none;\n    page-break-inside: avoid;\n  }\n  body.standalone.worksheet .ptx-content .onepage.lastpage {\n    margin-bottom: -2em;\n    page-break-after: auto;\n  }\n  body.standalone.worksheet.a4 .ptx-content .onepage {\n  }\n  body.standalone.worksheet .ptx-content .onepage div.workspace,\n  body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  body.standalone.worksheet a {\n    color: black;\n  }\n  body.standalone.worksheet .ptx-page .ptx-main {\n    padding: 0;\n  }\n  body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n    padding-bottom: 20px;\n  }\n  @page {\n    margin: 0;\n  }\n}\n.hidden {\n  display: none;\n}\n.ptx-navbar .preferences_menu_holder .active > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n  background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n  width: 4em;\n  justify-content: center;\n  text-align: center;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n[data-ruler=greybar] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: #f3f3f3;\n}\n[data-atmosphere*=dark][data-ruler=greybar] .onelineX:hover {\n  color: #333;\n}\n[data-ruler=lightbox] .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=lightbox] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: inherit;\n}\n[data-ruler=sunrise] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 2px solid black;\n  margin-bottom: -2px;\n  position: relative;\n  z-index: 10;\n}\nxxxxxx[data-ruler=sunriseunderline] .onelineX:hover + .onelineX {\n  margin-top: -2px;\n}\n[data-ruler=sunriseunderline] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=underline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  margin-bottom: -1px;\n}\n[data-ruler=lunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  border-left: 1px solid black;\n  padding-left: 4px;\n  margin-left: -5px;\n  margin-bottom: -1px;\n}\n[data-atmosphere*=dark][data-ruler*=underline] .onelineX:hover {\n  border-bottom: 1.5px solid #ddd;\n  margin-bottom: -1.5px;\n}\n[data-atmosphere*=dark][data-ruler=lunderline] .onelineX:hover {\n  border-left: 1.5px solid #ddd;\n  padding-left: 3.5px;\n  margin-left: -5px;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\n.ptx-footnote {\n  display: inline-block;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number {\n  visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: 0.6rem;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote__number {\n  display: inline;\n  cursor: pointer;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowlbackground);\n  border-radius: 6px;\n  padding: 0px 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowlborder);\n}\n.ptx-content section .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n.ptx-content section .para.copyright {\n  margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n  margin-top: 2.5em;\n}\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n  margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.ptx-content .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n}\n.ptx-content .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.ptx-content figcaption {\n  font-weight: normal;\n}\n.ptx-content figcaption {\n  margin-top: 0.6em;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n  font-weight: 700;\n  font-size: inherit;\n}\n.ptx-content figcaption .codenumber:after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption code.code-inline {\n  white-space: pre;\n}\n.ptx-content figure.figure > figcaption {\n  margin-top: 1em;\n}\n.ptx-content figure.listing > figcaption + * {\n  margin-top: 0.5em;\n}\n.ptx-content figcaption + .named-list-content {\n  margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n  margin-top: 0.5em;\n}\n.ptx-content .definition-like .para > .emphasis {\n  font-weight: 700;\n}\n.ptx-content em.alert {\n  font-weight: bold;\n}\n.unprocessed {\n  padding: 8px;\n  background-color: rgb(255, 230, 230);\n}\n.unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(255, 200, 255);\n}\n.unprocessed .unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(205, 205, 255);\n}\n.ptx-content section.introduction + section {\n  margin-top: 2em;\n}\n.ptx-content {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section {\n  display: inline-block;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n  max-width: unset;\n}\n.ptx-content .runestone > .parsons {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone .parsons {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: max-content;\n  padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: 660px;\n}\n.runestonebustmenu {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.runestonebustmenu .dropdown-content {\n  position: absolute;\n  right: 2em;\n  left: unset;\n  top: 1em;\n}\n@media screen and (max-width: 800px) {\n  nav .dropdown .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .activecode-toggle {\n    display: none;\n  }\n}\n.pretext .navbar .dropdown {\n  height: 35px;\n}\n.ptx-content section section + section {\n  margin-top: 3em;\n}\n.ptx-content .sidebyside > .para,\n.ptx-content .sidebyside > figure,\n.ptx-content .sidebyside > img,\n.ptx-content .sidebyside > table,\n.ptx-content .sidebyside > tabular,\n.ptx-content .sidebyside > section,\n.ptx-content .sidebyside > .paragraphs {\n  display: inline-block;\n  margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .sidebyside figcaption {\n  padding-left: 1em;\n  padding-right: 0;\n  padding-bottom: 0;\n  margin: 0.75em 0 0 0;\n}\n.ptx-content figcaption {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .sidebyside > .para {\n  width: 32%;\n  vertical-align: top;\n}\n.ptx-content .sidebyside > .para.left,\n.ptx-content .sidebyside > .para.middle,\n.ptx-content .sidebyside > .para.right {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside > .para + img {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside .sbsrow .sbsheader {\n  margin-top: 0;\n}\n.ptx-content .sbsgroup {\n  width: 100%;\n}\n.ptx-content .sidebyside {\n  width: 100%;\n}\n.ptx-content .sbsrow {\n  display: flex;\n  justify-content: space-between;\n}\n.ptx-content .sbsheader {\n  text-align: center;\n  justify-content: center;\n  font-size: 1em;\n}\n.ptx-content .sbspanel:empty {\n  height: 10em;\n  background-color: rgb(221, 221, 255);\n}\n.ptx-content .sbspanel {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n  justify-content: center;\n}\n.ptx-content .sbspanel.bottom {\n  justify-content: flex-end;\n}\n.ptx-content .sbspanel > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .fixed-width {\n  align-items: center;\n}\n.ptx-content .sbscaption {\n  justify-content: center;\n}\n.ptx-content table {\n  border-spacing: 0;\n}\n.ptx-content table {\n  border-collapse: collapse;\n}\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n  margin-top: 1.5em;\n}\n.ptx-content table tr td,\n.ptx-content table tr th {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.ptx-content table tr td {\n  font-size: 90%;\n}\n.ptx-content table tr td.l {\n  text-align: left;\n}\n.ptx-content table tr td.c {\n  text-align: center;\n}\n.ptx-content table tr td.r {\n  text-align: right;\n}\n.ptx-content table tr td.j {\n  text-align: justify;\n}\n.ptx-content table tr td.lines {\n  white-space: nowrap;\n}\n.ptx-content table tr td.t {\n  vertical-align: top;\n}\n.ptx-content table tr td.b {\n  vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n  vertical-align: middle;\n}\n.ptx-content table tr td.vv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n}\n.ptx-content table tr td.vcv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vcvv {\n  border-left: 2px solid #000;\n  border-right: 4px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vlv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vrv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.rv {\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.vr {\n  border-left: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.lv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vl {\n  border-left: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.cv {\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.Xv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vc {\n  border-left: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.hline {\n  padding: 0;\n}\n.ptx-content table tr td.hlinethick {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.ptx-content table tr td.hline hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 1px solid rgb(0, 0, 0);\n}\n.ptx-content table tr td.hlinethick hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 2px solid rgb(0, 0, 0);\n}\n.center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n  border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n  border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n  border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n  border-bottom: none;\n}\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n  border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n  border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n  border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n  border-top: none;\n}\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n  border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n  border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n  border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n  border-right: none;\n}\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n  border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n  border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n  border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n  border-left: none;\n}\n.ptx-content table tr td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content table.notation-list tr th {\n  text-align: left;\n}\n.ptx-content table.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.ptx-content table.notation-list tr th {\n  margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n  margin-left: 1em;\n}\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content table tr td span.decimal {\n  float: left;\n  text-align: right;\n}\n.ptx-content table tr.header-vertical th {\n  writing-mode: vertical-rl;\n  padding-left: 2em;\n}\n.ptx-content table + article {\n  margin-top: 1em;\n}\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof {\n  margin-top: 0.3em;\n}\n.ptx-content .hidden-knowl-wrapper article {\n  display: inline;\n}\n.apretext-content figure.figure-like {\n  overflow: auto;\n}\n.ptx-content figure.figure-like {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content figure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n  margin-right: 0;\n}\n.ptx-content a > tt {\n  font-size: 110%;\n}\n.ptx-content section .videolink a:link {\n  background-size: 0;\n}\n.ptx-content .playvideo {\n  cursor: pointer;\n}\n.ptx-content .videobig {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 85%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: relative;\n  top: 100px;\n  cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n}\n.ptx-content .knowl .videobig {\n  display: none;\n}\n.ptx-content .videosmall {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 80%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: absolute;\n  left: -250px;\n  z-index: 1001;\n  cursor: zoom-out;\n}\n.ptx-content .exercise-like ol li table {\n  margin-bottom: 0.5em;\n}\n.ptx-content .exercise-like > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content section.worksheet > .heading > .codenumber {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n  display: inline-block;\n  max-width: 70%;\n}\n.ptx-content .heading .print-links {\n  display: inline-block;\n  float: right;\n  vertical-align: top;\n  width: 19%;\n  text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n  display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n  display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n  display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n  background: none;\n  color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n  border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n  padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n  margin: 0;\n}\n.ptx-content .appendix .heading > .type {\n  display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n  display: none;\n}\n.ptx-content .heading .print-links > a {\n  font-family: \"Open Sans\";\n  font-size: 0.6em;\n  font-weight: bold;\n  padding: 0.1em 0.2em;\n  background: #ffa;\n  border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n  background: #eef;\n  color: #9b1c2c;\n  border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n  margin-left: 0.25em;\n}\n.ptx-content .autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 3px;\n  left: -1.9em;\n  font-size: 85%;\n  color: #a00;\n  opacity: 0.05;\n  margin-top: 0.1em;\n}\n.ptx-content li > .para > .autopermalink {\n  left: -3.4em;\n  top: 0;\n}\n.ptx-content .autopermalink a {\n  color: #a00;\n}\n.ptx-content .autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n:target {\n  scroll-margin-top: 45px;\n}\n.ptx-content .para > .autopermalink {\n  margin-top: 0.2em;\n}\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .figure-like > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .subsubsection > .autopermalink {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .autopermalink:hover {\n  opacity: 1;\n  background: #eeddff;\n}\n.ptx-content .permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: #fff;\n  border: 3px solid blue;\n  z-index: 2001;\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: #eeaaff;\n}\n.ptx-content .indexitem {\n  margin-top: 2px;\n}\n.ptx-content .subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .indexknowl {\n  margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl {\n  margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n  margin-left: 2em;\n}\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .indexitem .indexknowl {\n  font-size: 90%;\n}\n.ptx-content .indexitem [data-knowl],\n.ptx-content .subindexitem [data-knowl],\n.ptx-content .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover,\n.ptx-content .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.ptx-content .subindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .indexletter {\n  margin-top: 1.5em;\n}\n.ptx-content .hidden-knowl-wrapper .heading {\n  display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n  display: inline;\n}\n.ptx-content .cols2 .knowl-output,\n.ptx-content .cols3 .knowl-output,\n.ptx-content .cols4 .knowl-output,\n.ptx-content .cols5 .knowl-output,\n.ptx-content .cols5 .knowl-output {\n  width: 100%;\n}\n.ptx-content .cols2 + *,\n.ptx-content .cols3 + *,\n.ptx-content .cols4 + *,\n.ptx-content .cols5 + *,\n.ptx-content .cols6 + * {\n  clear: both;\n}\n.ptx-content .cols2::after,\n.ptx-content .cols3::after,\n.ptx-content .cols4::after,\n.ptx-content .cols5::after,\n.ptx-content .cols6::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n  margin-bottom: 1.5em;\n}\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n  padding-bottom: 0em;\n}\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n  clear: left;\n}\n.ptx-content .exercise-like ol.cols2 li {\n  margin-top: 0.5em;\n}\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n  float: left;\n}\n.ptx-content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.ptx-content .emphasis {\n  font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n  font-weight: bold;\n}\n:target {\n  animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n@-moz-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n.ptx-content .autoterm [knowl],\n.ptx-content .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.ptx-content .autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.ptx-content ol li.custom-list-style-type {\n  list-style-type: none;\n}\n.ptx-content ol li.custom-list-style-type:before {\n  content: attr(label) \"\\a0\\a0\";\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n  list-style-type: none;\n}\n.ptx-content ol.decimal {\n  list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n  list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n  list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n  list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n  list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n  list-style-type: disc;\n}\n.ptx-content ul.square {\n  list-style-type: square;\n}\n.ptx-content ul.circle {\n  list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n  list-style-type: none;\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n  clear: both;\n}\n.ptx-content dl {\n  margin-top: 1em;\n  margin-left: 0;\n  margin-bottom: 0;\n  overflow: hidden;\n}\n.ptx-content dl dd {\n  margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n  margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n  margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n  margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n  margin-top: 0;\n}\n.ptx-content dl dd .para {\n  margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child,\n.ptx-content dl dd > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content dl > dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: left;\n  text-align: right;\n  width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n  text-align: left;\n}\n.ptx-content dl.glossary dd {\n  margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n  margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n  clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n  content: \"\";\n  display: block;\n  height: 1em;\n  clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n  height: 0;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: both;\n  margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n  width: unset;\n  max-width: 55ex;\n  text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 0;\n  margin-top: 0;\n  width: 31em;\n  max-width: calc(100% - 12ex);\n  float: right;\n  clear: right;\n}\n.ptx-content dl.description-list + * {\n  clear: both;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.ptx-content dl.description-list dl dt {\n  width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n  margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n  margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n  width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n  display: inline;\n}\na.mjx-svg-href {\n  fill: inherit;\n  stroke: inherit;\n}\n.displaymath + .para {\n  margin-top: 0;\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n    position: relative;\n    overflow-x: auto;\n  }\n  .ptx-content .mjx-chtml.MJXc-display {\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n.ptx-content dd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n.floatnav a {\n  padding-left: 3px;\n  margin-right: -1px;\n  color: inherit;\n}\n.ptx-content a .heading .mjx-chtml {\n  z-index: 1;\n  background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after,\n.ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after,\n.ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n.floatnav a:hover {\n  background: #eeaaff;\n}\n.ptx-content .unselectable {\n  user-select: none;\n}\n.ptx-content .latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.ptx-content .latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.ptx-content .fillin {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n  display: inline-block;\n  border: none;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n  outline: 1px solid black;\n  height: 1.3em;\n}\n.ptx-content .fillin.shade {\n  display: inline-block;\n  border: none;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n  background-color: #eee;\n  height: 1.3em;\n}\n.ptx-content .hiddenproof > a > .heading {\n  font-style: italic;\n  font-weight: normal;\n}\n.ptx-content .MJXc-display,\n.ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n  background-image:\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0));\n  background-position:\n    left center,\n    right center,\n    left center,\n    right center;\n  background-repeat: no-repeat;\n  background-color: inherit;\n  background-size:\n    20px 100%,\n    20px 100%,\n    10px 100%,\n    10px 100%;\n  background-attachment:\n    local,\n    local,\n    scroll,\n    scroll;\n}\n.ptx-content .runestone .code-box {\n  background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground));\n}\n.ptx-content .knowl-output.original .MJXc-display {\n  background: inherit;\n}\n.ptx-content .assemblage-like .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground));\n}\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0));\n}\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n  padding-top: 0.25em;\n}\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 1.5em;\n}\n.ptx-content .exercise-like .introduction {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n  content: \"\";\n  display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n  content: \"\";\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols3,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols4,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols5,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n  width: 100%;\n  display: inline-flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-items: flex-start;\n  align-content: flex-start;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n  display: inline;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n.ptx-content .exercisegroup .cols1 > article.exercise-like {\n  flex-basis: calc(100% - 2em);\n}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {\n  flex-basis: calc(50% - 2em);\n}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {\n  flex-basis: calc(33.33% - 2em);\n}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {\n  flex-basis: calc(25% - 2em);\n}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {\n  flex-basis: calc(20% - 2em);\n}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {\n  flex-basis: calc(16.66% - 2em);\n}\n.ptx-content .mathword {\n  white-space: nowrap;\n}\n.ptx-content .unit,\n.ptx-content .quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n  word-spacing: normal;\n}\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n  overflow-x: auto;\n}\n.ptx-content .code-inline {\n  font-size: 1em;\n  white-space: pre;\n  color: inherit;\n  background: #eeeeee;\n  border: 1px solid #dddddd;\n  padding: 0.0625em 0.25em;\n  margin-left: 0.2em;\n  margin-right: 0.2em;\n  border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n  margin-left: 0;\n}\n.ptx-content .title .code-inline {\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content a .code-inline {\n  background: #f6f6f6;\n}\n.ptx-content .kbdkey {\n  background: #f1f1f1;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.ptx-content .kbdkey {\n  color: #333;\n}\n.ptx-content .sagecell_sessionOutput pre {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n  margin: 0;\n}\n.ptx-content .sagecell_evalButton {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.ptx-content .booktitle {\n  font-style: oblique;\n}\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n  font-size: 1.25em;\n}\n.ptx-content a .heading {\n  white-space: normal;\n}\n.ptx-content .solutions > a,\n.ptx-content .solutions > a:hover,\n.ptx-content .solutions > a.active,\n.ptx-content .instructions > a,\n.ptx-content .instructions > a:hover,\n.ptx-content .instructions > a.active {\n  display: inline-block;\n  margin-right: 1.5em;\n}\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n  content: \"\\25ba\";\n  font-size: 70%;\n  color: #06a;\n  position: relative;\n  top: -2px;\n  right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n  content: \"\\25bc\";\n  animation-name: solutiontriangle;\n  animation-duration: 3s;\n  animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n  left: 12px;\n}\n@keyframes solutiontriangle {\n  from {\n    content: \"\\25ba\";\n  }\n  to {\n    content: \"\\25bc\";\n  }\n}\n.ptx-content section.solutions {\n  font-size: 90%;\n  padding-left: 1em;\n  border-left: 1em solid #eeeeee;\n}\n.ptx-content.ptx-content > section.solutions:first-child {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n  margin-top: 1em;\n  padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n  font-size: 100%;\n  font-weight: 700;\n  margin-right: 0.25em;\n  display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n  display: inline;\n}\n.ptx-content article > figure:first-child {\n  margin-top: 0;\n}\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n  padding-top: 1em;\n}\n.ptx-content img {\n  display: inline-block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img.cs {\n  display: block;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img:not(.cs) {\n  max-width: 650px;\n}\n.ptx-content .tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img + img {\n  margin-top: 30px;\n}\n.ptx-content div.center img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content div.center + div.center > img {\n  margin-top: 60px;\n}\n.ptx-content div.center > img + img {\n  margin-top: 60px;\n}\n.ptx-content figure table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure.wrap img {\n  width: 250px;\n}\n.ptx-content figure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n  float: right;\n  margin: 0;\n}\n.ptx-content figure figcaption.wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure,\n.ptx-content .image-box {\n  margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n  margin-top: 1em;\n}\n.ptx-content figure .image-box {\n  margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n  margin-top: 0;\n}\n.ptx-content .image-box img,\n.ptx-content img.contained,\n.ptx-content .sbspanel img {\n  width: 100%;\n  height: auto;\n}\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n  cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n  max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n  position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n  margin-top: 0.75em;\n}\n.ptx-content .audio {\n  width: 100%;\n}\n.caption .heading {\n  font-weight: bold;\n}\n.caption .counter {\n  font-weight: bold;\n}\n.ptx-content div.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.minipage + .minipage {\n  display: inline-block;\n}\n.ptx-content code.inline {\n  background: none;\n  border: none;\n}\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n  line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n  margin-top: 1em;\n}\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n.ptx-content pre[data-line].program,\n.ptx-content pre[data-line].code-block {\n  padding-left: 2.5em;\n}\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n  margin-left: -5em;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  padding-left: 3.5em;\n  overflow: visible;\n}\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n  margin-left: -7em;\n}\n.ptx-content pre[data-line].line-numbers code {\n  padding-top: 0em;\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n  margin-top: 0em;\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n  margin-top: 0.6em;\n}\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n  content: \"\";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n.ptx-content .objectives {\n  margin-bottom: 1.25em;\n}\n.ptx-content ol > li {\n  padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li,\n.ptx-content ul.cols2 > li {\n  width: calc(49% - 1.75em);\n  min-width: 190px;\n}\n.ptx-content ol.cols3 > li,\n.ptx-content ul.cols3 > li {\n  width: calc(33% - 1.25em);\n  min-width: 160px;\n}\n.ptx-content ol.cols4 > li,\n.ptx-content ul.cols4 > li {\n  width: calc(24.5% - 1.25em);\n  min-width: 100px;\n}\n.ptx-content ol.cols5 > li,\n.ptx-content ul.cols5 > li {\n  width: calc(19.5% - 0.75em);\n  min-width: 90px;\n}\n.ptx-content ol.cols6 > li,\n.ptx-content ul.cols6 > li {\n  width: calc(16.3% - 0.5em);\n  min-width: 80px;\n}\n.ptx-content ul.cols2 > li:nth-child(odd),\n.ptx-content ol.cols2 > li:nth-child(odd) {\n  margin-right: 2em;\n}\n.ptx-content .cols2 ol,\n.ptx-content .cols3 ol,\n.ptx-content .cols4 ol,\n.ptx-content .cols5 ol,\n.ptx-content .cols6 ol {\n  padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n  margin-top: 1em;\n}\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n  float: none !important;\n  padding-top: 0.5em;\n}\n.ptx-content .solution ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .solution ol li > .para:first-child,\n.ptx-content .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n.ptx-content .exercise-like ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .exercise-like > .cols2 > li {\n  width: calc(49% - 2.5em);\n}\n.ptx-content .exercise-like > .cols3 > li {\n  width: calc(33% - 2.5em);\n}\n.ptx-content .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2.5em);\n}\n.ptx-content .knowl .exercise-like > .cols2 > li {\n  width: calc(49% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols3 > li {\n  width: calc(33% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2em);\n}\n.ptx-content .exercise-like ol li > .para:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .contributor .contributor-name {\n  font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.ptx-content .contributor {\n  margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n  margin-top: 1.5ex;\n}\n.ptx-content .contributor + .para {\n  margin-top: 3ex;\n}\n.ptx-content .frontmatter .contributors,\n.ptx-content .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.searchwrapper .gsc-control-cse {\n  padding: 0;\n  border: none;\n  width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n.searchwrapper input.gsc-search-button-v2 {\n  padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n  padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n  padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n  height: 3ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  font-size: 12px;\n}\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {\n  color: #090;\n}\n.ptx-content .image-archive {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-top: 0.75em;\n  padding-bottom: 0.25em;\n  text-align: center;\n}\n.ptx-content .image-archive > a {\n  display: inline-block;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n  font-family: monospace;\n}\n.ptx-content iframe {\n  margin: 0;\n  border: none;\n  box-sizing: border-box;\n}\n.ptx-content .times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.ptx-content article.notranslate {\n  margin-top: 0;\n}\n.ptx-content article.exercise-like > .exercise-like {\n  margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content article.example-like > .heading + .introduction {\n  display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content .taxon {\n  font-style: italic;\n}\n.ptx-content .sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n  padding-bottom: 5px;\n  padding-left: 6px;\n}\n.ptx-content .hidden-content,\n.pretext .hidden-content {\n  display: none;\n}\n.ptx-content hr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n.ptx-content hr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n  display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n  margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n  margin-top: 0;\n}\n.ptx-content meta {\n  display: none;\n}\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:hover .codenumber,\n.ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n.ptx-content .summary-links {\n  margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n  margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n}\n.ptx-content .summary-links li {\n  margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a,\n.ptx-content .summary-links a:link,\n.ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n  margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n  display: none;\n}\nbody.standalone .ptx-content .worksheet {\n  padding: 40px 0 45px 0;\n  border: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage {\n  padding: 40px 45px 45px 55px;\n  border-bottom: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  border-top: 2px solid grey;\n}\nbody.standalone .ptx-content .onepage.firstpage {\n  padding-top: 0;\n}\nbody.standalone .ptx-content .onepage.lastpage {\n  padding-bottom: 0;\n  border-bottom: none;\n}\nbody.standalone .ptx-content .worksheet > *:last-child {\n  padding-bottom: 0 !important;\n}\n.ptx-content .onepage + .onepage {\n  margin-top: 2.5em;\n  padding-top: 1.5em;\n  border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n  content: \"pagebreak\";\n  text-align: center;\n  margin-left: 40%;\n  padding-left: 1em;\n  padding-right: 1em;\n  position: absolute;\n  top: -0.8em;\n  font-size: 80%;\n  font-style: italic;\n  background: white;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n  content: none;\n}\nbody.standalone .ptx-content .onepage article {\n  padding-left: 0;\n  border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n  all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n  margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n  margin-top: 1.25em;\n}\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  padding-left: 1.25em;\n  border-left: 1px solid grey;\n  margin-left: -1.25em;\n  z-index: -100;\n}\nbody.standalone.worksheet .ptx-content section article.task {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n  font-weight: normal;\n}\nbody.standalone .autopermalink {\n  display: none;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n  border: 2px dotted grey;\n  background: #f3fff3;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n  border: 2px dotted grey;\n  background: #ffe;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n  border: 15px solid;\n  border-image:\n    repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px) 20;\n  background: yellow;\n}\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like {\n  border: none;\n  padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n  margin-top: -0.5em;\n  padding: 0;\n  margin: 0;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n  margin-left: 55px;\n  margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n  display: inline;\n}\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n.ptx-content a.url,\n.ptx-content a.external {\n  color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n  background: #ffd;\n}\n.ptx-content .poem {\n  margin-top: 1.5em;\n}\n.ptx-content .poem {\n  display: table;\n  margin-top: 1.5em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  width: auto;\n  max-width: 90%;\n}\n.ptx-content .poem > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n  content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.ptx-content .poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n  text-align: left;\n}\n.ptx-content .poem .author.center {\n  text-align: center;\n}\n.ptx-content .poem .author.right {\n  text-align: right;\n}\n.ptx-content .poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n  text-align: center;\n}\n.ptx-content .poem .line.right {\n  text-align: right;\n}\n.ptx-content .poem .tab {\n  margin-left: 2em;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\n.toolBPanel {\n  overflow: hidden !important;\n}\n.toolBPanel:hover {\n  overflow: auto !important;\n}\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n.ptx-content .marginresource {\n  position: relative;\n  height: 0;\n  left: 40em;\n  top: 1em;\n}\n.ptx-content .marginresource a {\n  color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n  border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n  font-size: 200%;\n  margin-right: 1em;\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n  display: block;\n  margin-left: 2em;\n}\n.collectedworks .knowl-output {\n  border: 12px solid #D6E3FF;\n  background: none repeat scroll 0% 0% #FAFCFF;\n  border-radius: 4px;\n  margin-bottom: 1.25em;\n}\n.collectedworks .subjectwork {\n  max-width: 750px;\n}\n.collectedworks .bib {\n  margin-bottom: 1em;\n}\n.collectedworks .bibitem + .bibentry {\n  display: inline;\n}\n.collectedworks .bibitem {\n  display: inline;\n  font-weight: bold;\n  margin-right: 1em;\n}\n.collectedworks .work .title a {\n  text-decoration: none;\n  color: #009;\n}\n.iconlegend {\n  position: absolute;\n  margin-top: 0.5em;\n  top: 0;\n  left: 920px;\n  line-height: 1;\n}\n.iconlegend .icon_name {\n  font-size: 90%;\n  margin-right: 1em;\n}\n.icongroup + .icongroup {\n  margin-left: 1em;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\n.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.ptx-content .webwork-button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n  cursor: pointer;\n  background-color: #a0a0a0;\n  border: 1px solid #999;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.ptx-content .exercise-wrapper form button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  color: black;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n  width: 22px;\n  height: 22px;\n  background-image: url(https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico);\n  background-size: contain;\n  position: absolute;\n  right: -35px;\n}\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n  margin-top: 0.5em;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-content .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.ptx-content .cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n@media screen and (max-width: 600px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.3em;\n}\n.APEXlogo .E {\n  position: relative;\n  top: 0.33em;\n}\n.runestone-profile .dropdown-content {\n  position: absolute;\n  display: none;\n  right: 0;\n  top: 35px;\n  text-align: left;\n  border: 1px solid;\n  border-color: #600;\n  border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n  background-color: #ddd;\n  overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n  display: block;\n}\n.runestone-profile .dropdown-content {\n  background-color: white;\n  z-index: 1800;\n  min-width: 100px;\n  padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: #662211;\n  padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n  background-color: #671d12;\n  color: #ffffff;\n  text-decoration: none;\n  background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n  margin-bottom: 4px;\n  margin-top: 4px;\n  border-color: #600;\n  border-color: var(--sectiontoctext);\n}\n.searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox {\n}\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n.searchbutton .name {\n  display: none;\n}\n.searchwidget {\n  text-align: right;\n}\n.searchwidget input {\n}\n.helpbox {\n  display: none;\n}\n.detailed_result {\n  margin-bottom: 10px;\n}\n.all_results a:link {\n  text-decoration: none;\n  font-size: large;\n}\n.all_results a:hover {\n  background-color: lightgray;\n}\n.searchresults a:hover {\n  background-color: #eee;\n}\n.searchresults a {\n  text-decoration: none;\n  color: #222;\n}\n.searchresults a:hover {\n  text-decoration: underline;\n  color: #33f;\n}\n.searchresults ul li {\n  list-style-type: none;\n}\nol.searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n}\nol.searchresults > li {\n  list-style-type: none;\n}\n.search-result-score {\n  display: none;\n}\n.high_result {\n  font-weight: 700;\n}\n.medium_result {\n  font-weight: 500;\n}\n.low_result {\n  font-weight: 200;\n}\n.no_result {\n  font-weight: 200;\n  color: #444;\n}\n.detailed_result .no_result {\n  font-size: 90%;\n}\n.searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  left: 152px;\n  width: 600px;\n  padding: 1em;\n  border: 0.2em solid #009;\n  background: aliceblue;\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.search-results-heading {\n  border-bottom: 1px solid rgba(0, 0, 125, 0.5);\n}\n.search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n}\n.closesearchresults {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border: 1px solid black;\n}\n.closesearchresults:hover {\n  color: #c00;\n  background-color: #fee;\n  border-color: #f00;\n}\n.closesearchresults + h2 {\n  margin-top: -1em;\n}\n.searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.search-result-bullet {\n  margin-top: 0.3em;\n}\n.search-result-clip {\n  font-size: 80%;\n  font-style: italic;\n  color: #444;\n  padding-left: 15px;\n}\n.search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n  background: rgba(255, 255, 0, 0.5);\n}\n@media screen and (max-width: 800px) {\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n  position: relative;\n}\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n  height: 36px;\n}\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n}\n.ptx-content {\n  min-height: 60vh;\n}\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 36px;\n  left: 0;\n  float: left;\n  width: 240px;\n}\n.pretext .ptx-toc {\n  position: sticky;\n  top: 50px;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  height: calc(100vh - 60px);\n}\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin-left: 0;\n}\n.pretext .ptx-page > .ptx-main.notoc {\n  margin-left: 0;\n  transition-property: margin-left;\n  transition-duration: 0.3s;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n  .pretext .ptx-page-footer {\n    margin-bottom: 38px;\n  }\n}\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    margin: 28px;\n  }\n}\n.ptx-content.serif .para .para,\n.ptx-content[data-font=RS] .para .para {\n  font-size: 100%;\n}\n.ptx-content[data-font=RS] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  justify-content: space-around;\n  max-width: 600px;\n  margin-left: 32px;\n}\n.pretext .ptx-content-footer .button {\n  min-width: 80px;\n  height: 35px;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0 10px;\n  display: flex;\n  gap: 10px;\n  align-items: center;\n  justify-content: center;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.pretext .ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n  background: #f4f4f4;\n  margin-top: 2em;\n  padding-top: 0;\n  max-width: 900px;\n  border-top: 2px solid var(--sectiontoctext);\n  border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  position: relative;\n}\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n  }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n}\n.ptx-masthead .ptx-banner {\n  border-bottom: 1px solid #d4d4d4;\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding-top: 0.625em;\n  padding-bottom: 1.125em;\n  border-bottom: none;\n}\n.ptx-masthead {\n  max-width: 904px;\n  border-right: 1px solid #bababa;\n}\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    margin-top: 0.625em;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  margin: 0;\n  font-size: 2em;\n  line-height: 1.25em;\n  color: #932919;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n.ptx-masthead .title-container > .heading a {\n  color: #932919;\n  background: none;\n  text-decoration: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    display: block;\n    font-size: 1.16667em;\n    line-height: 1.42857em;\n    color: #595959;\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .logo-link {\n  position: relative;\n  float: left;\n  font-size: 50px;\n  margin-top: 0.1em;\n  margin-left: 9.68px;\n  text-align: center;\n  line-height: 1;\n}\n.ptx-masthead .logo-link img {\n  width: auto;\n  height: auto;\n  max-height: 1em;\n}\n.ptx-masthead .logo-link:empty:before {\n  font-family: \"Open Sans\";\n  font-size: 1em;\n  content: \"\\2211\";\n  line-height: 1;\n  width: 1em;\n  display: inline-block;\n  vertical-align: top;\n  text-align: center;\n  color: #ccc;\n}\n.ptx-masthead .logo-link:empty:hover:before {\n  color: #932919;\n}\n.ptx-masthead .logo-link:empty:active:before {\n  color: #3572a0;\n}\n.ptx-masthead .logo-link {\n  background: transparent;\n  border: none;\n  text-decoration: none;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .logo-link {\n    display: block;\n    float: none;\n    margin: 0;\n    font-size: 50px;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-weight: normal;\n  margin: 0;\n  font-size: 1.3125em;\n  line-height: 1.42857em;\n  min-height: inherit;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:hover,\n.ptx-masthead .byline a:focus {\n  color: #932919;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\nnav.ptx-navbar {\n  background: #ededed;\n  border: 0;\n  border-top: 1px solid #bababa;\n  border-bottom: 1px solid #bababa;\n  margin: 0;\n  z-index: 100;\n  font-family: \"Open Sans\";\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.ptx-navbar .button {\n  font-size: 1em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: #333333;\n  background-color: #ededed;\n  border: 0;\n  border-right: 1px solid #bababa;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n.ptx-navbar .button:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n}\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  color: #333333;\n  background: #ededed;\n  box-shadow: none;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n}\n.ptx-navbar .button .icon {\n  font-size: 1.5em;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) > *:first-child {\n  border-left: 1px solid #bababa;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button, .calculator-toggle) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  width: 70px;\n}\n.ptx-navbar .calculator-toggle {\n  width: 60px;\n  min-height: 32px;\n  text-align: center;\n  border-radius: 20px;\n  margin-left: 5px;\n  border: 2px solid #66f;\n  line-height: 25px;\n  margin-top: 1px;\n  background-color: #eef;\n}\n.ptx-navbar .calculator-toggle.open {\n  background: #fee;\n  border: 2px solid #f66;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: #ededed;\n    box-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar :is(.treebuttons) > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n  .ptx-navbar .nav-runestone-controls > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar .calculator-toggle {\n    width: auto;\n    height: 35px;\n    border-radius: 0;\n    margin-left: 0;\n    border: 0;\n    border-right: 1px solid #bababa;\n    line-height: inherit;\n    margin-top: 0;\n    background-color: inherit;\n  }\n}\n.ptx-toc {\n  width: 240px;\n  margin: 0;\n  font-size: 14.72px;\n  overflow-y: auto;\n  overflow-x: hidden;\n}\n.ptx-toc::after {\n  content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n  display: block;\n  height: 13em;\n  padding: 2em 1em;\n  background: #fff;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 8px solid #999;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0px;\n  padding: 0px;\n  list-style-type: none;\n}\n.ptx-toc .toc-item {\n  border-top: 1px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-weight: normal;\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  border-top: 2px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-item.active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-title-box .title {\n  flex-grow: 1;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc ul.structural ul.structural .title:empty::after {\n  content: \"empty heading!\";\n  font-weight: bold;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n  display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n  display: block;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n  display: none;\n}\n.ptx-toc.focused > ul.structural > li:not(:first-child) {\n  margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n  border: 0;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 30px;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--highlighttoc);\n  color: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n:root {\n  --parttoc: var(--chaptertoc);\n  --parttoctext: var(--chaptertoctext);\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: var(--chaptertoctextactive);\n}\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n  :root {\n    --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n  }\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowlLinkColor);\n  border-bottom: 1px dotted var(--knowlLinkColor);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--linkbackground);\n  border-bottom-color: transparent;\n}\n.knowl__content {\n  margin: 0.2em;\n  border: 6px solid var(--knowlborder);\n  border-radius: 0.4em;\n  padding: 0.8em;\n  background-color: var(--knowlbackground);\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n  content: \"\" !important;\n  border-bottom: none;\n  margin: 0;\n  padding: 0;\n  width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n  padding-right: 0;\n  border-right: none;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested4Background);\n}\n.ptx-content .knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n:root {\n  --chaptertitle: var(--documenttitle);\n  --sectiontitle: var(--documenttitle);\n  --subsectiontitle: var(--documenttitle);\n  --bordercolor: var(--documenttitle);\n  --listbackground: #d0ccbd;\n  --insightbackground: #d0c681;\n  --conventionbackground: #b1a77d;\n  --notebackground: #93a396;\n  --examplebackground: #a2bac2;\n  --warningbackground: #b4bd00;\n  --observationbackground: #48848d;\n}\n.ptx-content section.chapter h2.heading {\n  color: var(--chaptertitle);\n}\n.ptx-content section.chapter h2.heading .title {\n  display: block;\n  font-size: larger;\n  margin-top: 5pt;\n}\n.ptx-content section.section h2.heading {\n  color: var(--sectiontitle);\n  border-top: 1pt solid;\n  border-bottom: 1pt solid;\n  margin-bottom: 20pt;\n  width: 100%;\n}\n.ptx-content section.subsection h2.heading {\n  color: var(--subsectiontitle);\n  border-bottom: 1pt solid;\n  margin-bottom: 20pt;\n  width: 90%;\n}\n.ptx-content section.frontmatter h2.heading {\n  color: var(--chaptertitle);\n  font-size: 2em;\n}\n.ptx-content section.preface h2.heading,\n.ptx-content section.acknowledgement h2.heading,\n.ptx-content section.colophon h2.heading {\n  color: var(--chaptertitle);\n  margin-bottom: 15pt;\n  font-size: 1.75em;\n}\n.ptx-content section.preface h2.heading .title {\n  display: block;\n  font-size: larger;\n}\n.ptx-content .list {\n  background-color: var(--listbackground);\n}\n.ptx-content .insight {\n  background-color: var(--insightbackground);\n}\n.ptx-content .convention {\n  background-color: var(--conventionbackground);\n}\n.ptx-content .note {\n  background-color: var(--notebackground);\n}\n.ptx-content .example {\n  background-color: var(--examplebackground);\n}\n.ptx-content .warning {\n  background-color: var(--warningbackground);\n}\n.ptx-content .observation {\n  background-color: var(--observationbackground);\n}\n.ptx-content .remark-like,\n.ptx-content .example-like,\n.ptx-content .list {\n  padding: 1em;\n  border-radius: 10px;\n  margin-bottom: 1em;\n  border: 2px solid var(--bordercolor);\n}\n.ptx-content .example-like .example-like {\n  padding: 0;\n  margin: 0;\n  border: none;\n  background: inherit;\n}\n.ptx-content .list {\n  margin-left: 0 !important;\n  margin-right: 0 !important;\n}\n.ptx-content .remark-like .heading,\n.ptx-content .list figcaption {\n  display: block;\n  margin-top: -0.5em !important;\n  padding-bottom: 1em;\n  font-size: large;\n}\n:root[data-legacy-colorscheme=blue_green] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82;\n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=blue_grey] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red_dark] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n    background: #444;\n    color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n    background: #333;\n  }\n  .ptx-navbar .button {\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n  .pretext .ptx-masthead {\n    background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background: var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n:root[data-legacy-colorscheme=bluegreen_grey] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #ddd;\n  --chaptertoctext: var(--bluegreen);\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: var(--bluegreen);\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);\n  --highlighttoc: var(--bluegreen);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=brown_gold] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c;\n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #140a00 --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=darkmartiansands] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #550000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=default] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --parttoc: #234b6a;\n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=focused_gray_aqua] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=focused_light] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=green_blue] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #195827;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=green_plum] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20602f;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=maroon_grey] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #330000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=martiansands] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #6a3418;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=orange_navy] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a;\n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #006deb;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=pastel_blue_orange] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n:root[data-legacy-colorscheme=red_blue] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_amethyst] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #008099;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_emerald] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_turquoise] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n.ptx-masthead .title-container > .heading,\n.ptx-masthead .title-container > .heading a,\n.ptx-masthead .logo-link:empty:hover::before,\n.ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n.ptx-masthead .title-container > .heading a:active,\n.ptx-masthead .logo-link:empty:active::before,\n.ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active {\n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n.ptx-content .para > a.internal {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover,\n.ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus,\n.ptx-content .para > a.internal:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover,\n.ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus,\n.ptx-content .para > a.external:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .playvideo {\n  background-color: var(--videoplay);\n}\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n.ptx-content .assemblage-like {\n  border-color: var(--assemblageborder);\n  background-color: var(--assemblagebackground);\n}\n.ptx-content .knowl-output {\n  border-color: var(--knowlborder);\n  background-color: var(--knowlbackground);\n}\n.pretext[data-atmosphere=pastel],\n.pretext[data-atmosphere=pastel] .ptx-main {\n  background: #dbf5ff;\n  background: #efe;\n}\n.pretext[data-atmosphere=pastel] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=pastel] .ptx-navbar {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-masthead {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-sidebar {\n  background: #ffd;\n}\n.pretext[data-atmosphere=darktwilight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(9, 72%, 30%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n}\n.pretext[data-atmosphere=dark] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(5, 86%, 24%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n}\n.pretext[data-atmosphere=darkmidnight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n.pretext[data-atmosphere*=dark] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page > .ptx-main {\n  background: var(--mainbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .summary-links a {\n  background: var(--documenttitledark);\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar {\n  background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead {\n  background: var(--bannerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer {\n  background: var(--footerbackground);\n  border-top-color: #447;\n  border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .logo {\n  background: #779;\n  border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=dark] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=dark] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .code-inline {\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .kbdkey {\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .goal-like > .heading {\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content a.url,\n.pretext[data-atmosphere*=dark] .ptx-content a.internal,\n.pretext[data-atmosphere*=dark] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n/*! Theme: soundwriting-legacy */\n/*# sourceMappingURL=theme-soundwriting-legacy.css.map */\n"
  },
  {
    "path": "css/dist/theme-tacoma.css",
    "content": "@charset \"UTF-8\";\n@import \"https://fonts.googleapis.com/css2?family=Open Sans:ital,wght@0,400..700;1,400..700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=PT Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap\";\n@import \"https://fonts.googleapis.com/css2?family=Inconsolata:ital,wght@0,400..700;1,400..700&display=swap\";\n\n/* ../../css/targets/html/tacoma/theme-tacoma.scss */\n:root {\n  --base-content-width: 600px;\n  --content-padding: 48px;\n}\nbody {\n  margin: 0;\n  min-height: 100vh;\n  display: flex;\n  flex-direction: column;\n  align-items: stretch;\n}\nbody.pretext {\n  color: var(--body-text-color);\n  font-family: var(--font-body);\n}\n.ptx-page {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n}\n.ptx-main {\n  flex-grow: 1;\n  position: relative;\n  max-width: 100%;\n  container-name: ptx-main;\n  container-type: inline-size;\n}\n.ptx-main .ptx-content {\n  max-width: 696px;\n  padding: 24px 48px 60px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.worksheet .ptx-main .ptx-content {\n  max-width: 960px;\n}\n.ptx-page {\n  max-width: 1000px;\n  margin-left: auto;\n  margin-right: auto;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n  background: var(--page-color, white);\n}\n.ptx-content .print-preview-header {\n  display: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: #BF1722;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\n.ptx-content-footer {\n  display: flex;\n  justify-content: space-around;\n  max-width: 696px;\n  padding-top: 2em;\n  padding-bottom: 2em;\n  padding-left: 48px;\n  padding-right: 48px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content-footer .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content-footer .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content-footer .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content-footer .button.hidden {\n  display: none;\n}\n.ptx-content-footer .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\nbody.standalone-page .ptx-page {\n  max-width: 1600px;\n}\n.ptx-masthead {\n  position: relative;\n  background: var(--banner-background);\n  width: 100%;\n  display: flex;\n  justify-content: center;\n}\n.ptx-masthead .ptx-banner {\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding: 10px 10px;\n  border-bottom: none;\n  display: flex;\n  width: 100%;\n  align-items: center;\n  max-width: 1200px;\n}\n.ptx-masthead a {\n  color: var(--doc-title-color, #2a5ea4);\n}\n.ptx-masthead a:active {\n  color: var(--link-active-text-color);\n}\n.ptx-masthead .title-container {\n  font-family: var(--font-headings);\n  font-size: 2em;\n  padding-left: 9.68px;\n  overflow: hidden;\n  flex: 1;\n}\n.ptx-masthead .title-container .heading {\n  font-weight: 700;\n  font-size: 100%;\n  line-height: 1.25em;\n}\n.ptx-masthead .title-container .title:has(+ .subtitle)::after {\n  content: \":\";\n}\n.ptx-masthead .title-container .subtitle {\n  font-weight: normal;\n}\n.ptx-masthead .logo-link {\n  height: 5em;\n  display: flex;\n}\n.ptx-masthead .logo-link img {\n  max-height: 100%;\n}\n.ptx-masthead .logo-link img[src$=\".svg\"] {\n  height: 100%;\n}\n.ptx-masthead .byline {\n  color: var(--byline-color);\n  font-weight: normal;\n  margin: 0;\n  font-size: 62.5%;\n  min-height: inherit;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead {\n    border-bottom: 1px solid var(--page-border-color);\n  }\n  .ptx-masthead .ptx-banner {\n    padding: 10px 28px;\n    display: flex;\n    justify-content: center;\n  }\n  .ptx-masthead .logo-link::before {\n    font-size: 1rem;\n    margin-top: 0;\n  }\n  .ptx-masthead .title-container {\n    width: fit-content;\n    flex: unset;\n  }\n  .ptx-masthead .title-container .heading {\n    line-height: 1em;\n  }\n  .ptx-masthead .title-container .heading .subtitle {\n    display: block;\n    font-size: 80%;\n    line-height: 1em;\n  }\n  .ptx-masthead .byline {\n    font-size: 50%;\n  }\n}\n@media screen and (width <= 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    font-size: 1em;\n  }\n  .ptx-masthead .logo-link {\n    display: none;\n  }\n  .ptx-masthead .byline {\n    display: none;\n  }\n}\n.ptx-navbar {\n  position: sticky;\n  top: 0;\n  height: 36px;\n  width: 100%;\n  background: var(--navbar-background);\n  border: 0;\n  border-top: 1px solid var(--page-border-color);\n  border-bottom: 1px solid var(--page-border-color);\n  margin: 0;\n  z-index: 500;\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar .ptx-navbar-contents {\n  position: relative;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n  max-width: 1000px;\n  margin: 0 auto;\n}\n.ptx-navbar .button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-navbar .button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-navbar .button.hidden {\n  display: none;\n}\n.ptx-navbar .button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-navbar .button {\n  height: 100%;\n  border-width: 0;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n  margin-left: 0;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls, .nav-other-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.ptx-navbar .pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar .embed-popup {\n  padding: 10px;\n  background-color: var(--navbar-background);\n  position: absolute;\n  margin-top: 36px;\n  border: 1px solid var(--page-border-color);\n  border-radius: 3px;\n  box-shadow: 0 0 5px var(--primary-color-gray-80);\n  color: var(--button-text-color);\n}\n.ptx-navbar .embed-popup .embed-code-container {\n  width: \"100%\";\n  padding: 5px;\n}\n.ptx-navbar .embed-popup .embed-code-container .embed-code-textbox {\n  width: 100%;\n  padding: 10px;\n  height: 5em;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton, .calculator-toggle, .light-dark-button, .embed-button) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  min-width: 70px;\n}\n.runestone-profile {\n  position: relative;\n}\n.runestone-profile .dropdown-content {\n  display: none;\n  position: absolute;\n  background-color: var(--dropdown-background);\n  min-width: 160px;\n  z-index: 100;\n  border: 1px solid var(--dropdown-border-color);\n  right: 0;\n  top: 35px;\n  text-align: start;\n  padding: 0;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: var(--dropdown-text-color);\n  padding: 2px 8px;\n}\n.runestone-profile .dropdown-content a:is(:hover, :focus-visible) {\n  background-color: var(--dropdown-hover-background);\n  color: var(--dropdown-hover-text-color);\n}\n.runestone-profile .dropdown-content hr {\n  color: var(--dropdown-border-color);\n  margin: 4px 0;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) {\n  overflow: visible;\n}\n.runestone-profile:is(:hover, :focus-visible, :focus-within) .dropdown-content {\n  display: block;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar .button {\n    border-left-width: 1px;\n    border-right-width: 1px;\n    border-color: var(--page-border-color);\n  }\n  .ptx-navbar > *:not(:first-child) {\n    margin-left: -1px;\n  }\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    z-index: 1100;\n    background: var(--button-border-color);\n    max-width: 100vw;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    max-width: 100vw;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar .embed-popup {\n    margin-top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button, .embed-button) .name {\n    display: none;\n  }\n}\n.ptx-sidebar {\n  align-self: flex-start;\n}\n.ptx-sidebar.visible {\n  display: block;\n}\n.ptx-sidebar.hidden {\n  display: none;\n  height: 0;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  background: var(--toc-background);\n  margin: 0;\n  font-size: 0.9rem;\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  background: var(--tocitem-background);\n}\n.ptx-toc .toc-item-list .active {\n  list-style: none;\n}\n.ptx-toc .toc-item {\n  background-color: var(--tocitem-background);\n  color: var(--toc-text-color);\n  border-color: var(--toc-border-color);\n}\n.ptx-toc .toc-item a {\n  color: inherit;\n}\n.ptx-toc .toc-item.active:not(:has(.toc-item.active)) {\n  color: var(--tocitem-active-text-color) !important;\n  background-color: var(--tocitem-active-background) !important;\n  border-color: var(--tocitem-active-border-color) !important;\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-weight: 500;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-weight: normal;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.ptx-toc .toc-item {\n  color: var(--toclevel1-text-color);\n  background-color: var(--toclevel1-background);\n}\n.ptx-toc .toc-item .toc-item {\n  color: var(--toclevel2-text-color);\n  background-color: var(--toclevel2-background);\n}\n.ptx-toc .toc-item .toc-item .toc-item {\n  color: var(--toclevel3-text-color);\n  background-color: var(--toclevel3-background);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-backgrounde);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--tocitem-active-background);\n  color: var(--tocitem-active-text-color);\n}\n.ptx-toc.focused {\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item {\n  display: none;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > .toc-item.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item {\n  display: block;\n}\n.ptx-toc.focused ul.structural .toc-item.active > ul.structural > .toc-item.hidden {\n  display: none;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 1.25em;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--tocitem-highlight-background);\n  color: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--tocitem-highlight-text-color);\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"add\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"remove\";\n}\n.ptx-sidebar {\n  position: sticky;\n  width: 0;\n  display: none;\n  z-index: 200;\n  height: 0;\n  top: 35px;\n}\n.ptx-toc {\n  border-right: 1px solid var(--toc-border-color);\n  border-bottom: 1px solid var(--toc-border-color);\n  max-height: calc(100vh - 200px);\n  overflow-y: auto;\n  background: var(--page-color);\n  width: 240px;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 3px solid var(--toc-border-color);\n}\n@media screen and (max-width: 800px) {\n  .ptx-sidebar {\n    position: fixed;\n    top: unset;\n    height: auto;\n    max-height: 80vh;\n    max-width: 80vw;\n    bottom: 36px;\n    border-right: 2px solid var(--toc-border-color);\n    border-top: 2px solid var(--toc-border-color);\n  }\n  .ptx-toc {\n    border-top: 2px solid var(--toc-border-color);\n    border-bottom: 0;\n    max-height: 80vh;\n  }\n}\n.ptx-page-footer {\n  background: var(--footer-background);\n  padding-top: 0;\n  border-top: 2px solid var(--page-border-color);\n  border-bottom: 2px solid var(--page-border-color);\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  width: 100%;\n  gap: 90px;\n  position: relative;\n}\n.ptx-page-footer > a {\n  margin: 1em 0;\n  color: var(--body-text-color);\n}\n.ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n.ptx-page-footer .feedback-link {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-page-footer .feedback-link:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-page-footer .feedback-link:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-page-footer .feedback-link.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-page-footer .feedback-link.hidden {\n  display: none;\n}\n.ptx-page-footer .feedback-link.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n@media screen and (max-width: 800px) {\n  .ptx-page-footer {\n    gap: 20px;\n    justify-content: center;\n    margin-bottom: 34px;\n  }\n  .ptx-page-footer > a > .logo:first-child {\n    height: 2em;\n  }\n}\n@media screen and (width < 1000px) {\n  .ptx-main .ptx-content {\n    margin: 0;\n  }\n}\n@container ptx-main (width < 696px) {\n  .ptx-page > .ptx-main .ptx-content {\n    padding-left: 28px;\n    padding-right: 28px;\n    max-width: calc(600px + 2 * 28px);\n  }\n}\n.aside-like > .knowl__link {\n  color: var(--aside-like-link-color);\n  border-bottom-color: var(--aside-like-link-color);\n}\n.aside-like > .knowl__content {\n  margin-left: 30px;\n  margin-right: 30px;\n  border: 2px solid var(--aside-like-border-color);\n  background-color: var(--aside-like-body-background);\n}\n.code-box {\n  overflow-x: auto;\n}\n.code-display {\n  overflow-x: auto;\n  font-family: var(--font-monospace);\n  margin: 0.5em 0;\n}\n.console,\n.program {\n  border: 1px solid var(--page-border-color);\n  padding: 5px 15px;\n  overflow-x: auto;\n  margin: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-inline {\n  font-family: var(--font-monospace);\n  white-space: pre;\n  color: var(--body-text-color);\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  border-radius: 0.2em;\n  display: inline-block;\n  overflow-x: auto;\n  max-width: 100%;\n  vertical-align: middle;\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\n.prompt.unselectable {\n  user-select: none;\n}\n.code-block {\n  border-left: 1px solid #aaa;\n  padding: 0 15px 5px;\n  overflow-x: auto;\n  background: var(--code-background);\n  margin-top: 0;\n  margin-bottom: 0;\n  font-family: var(--font-monospace);\n  background: var(--code-background);\n  font-size: 0.93rem;\n  line-height: 1.2;\n}\n.code-block::before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n@media print {\n  .code-copy {\n    display: none;\n  }\n}\n:is(.cols2, .cols3, .cols4, .cols5, .cols6) {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: start;\n}\n.cols2 > .exercise-like {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > .exercise-like {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > .exercise-like {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > .exercise-like {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > .exercise-like {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.exercise-like > .heading {\n  font-size: inherit;\n}\n.exercisegroup .exercise-like {\n  margin-top: 1em;\n}\n.exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.exercisegroup .exercisegroup-exercises {\n  margin-top: 1em;\n  padding-left: 40px;\n}\n.exercisegroup .conclusion {\n  margin-left: 40px;\n}\n.exercisegroup .conclusion .heading {\n  font-size: inherit;\n}\n.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.exercise-wrapper,\n.exercise-wrapper form,\n.exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.knowl .exercise-wrapper,\n.knowl .exercise-wrapper form,\n.knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.exercise-wrapper > .para:first-child,\n.exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\nsection.solutions > .heading + .heading {\n  margin-top: 0.5em;\n}\nsection.solutions > h3.heading,\nsection.solutions section > h3.heading {\n  font-size: 1.6em;\n}\nsection.solutions > h4.heading,\nsection.solutions section > h4.heading {\n  font-size: 1.45em;\n}\nsection.solutions > h5.heading,\nsection.solutions section > h5.heading {\n  font-size: 1.35em;\n}\nsection.solutions > h6.heading,\nsection.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.sbsgroup > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.sbsrow {\n  display: grid;\n  grid-template-rows: auto auto;\n}\n.sbspanel {\n  grid-row: 1;\n}\n.sbspanel > .table > figcaption {\n  text-align: center;\n}\n.sbspanel .tabular {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.sbspanel--top {\n  align-self: start;\n}\n.sbspanel--middle {\n  align-self: center;\n}\n.sbspanel--bottom {\n  align-self: end;\n}\n.sbspanel:has(.figure-like, .table-like),\n.sbspanel > :is(.figure-like, .table-like) {\n  display: contents;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:first-child {\n  grid-row: 1;\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--top > :is(.figure-like, .table-like) > *:first-child {\n  align-items: start;\n  align-self: start;\n}\n.sbspanel--middle > :is(.figure-like, .table-like) > *:first-child {\n  align-items: center;\n  align-self: center;\n}\n.sbspanel--bottom > :is(.figure-like, .table-like) > *:first-child {\n  align-items: end;\n  align-self: end;\n}\n.sbspanel > :is(.figure-like, .table-like) > *:nth-child(2) {\n  margin-top: 0.5em;\n  grid-row: 2;\n  width: 100%;\n}\n.sbspanel:nth-of-type(2) * {\n  grid-column: 2;\n}\n.sbspanel:nth-of-type(3) * {\n  grid-column: 3;\n}\n.sbspanel:nth-of-type(4) * {\n  grid-column: 4;\n}\n.sbspanel:nth-of-type(5) * {\n  grid-column: 5;\n}\n.sbspanel:nth-of-type(6) * {\n  grid-column: 6;\n}\n.sbspanel:nth-of-type(7) * {\n  grid-column: 7;\n}\n.sbspanel:nth-of-type(8) * {\n  grid-column: 8;\n}\n.sbspanel:nth-of-type(9) * {\n  grid-column: 9;\n}\n.sbspanel:nth-of-type(10) * {\n  grid-column: 10;\n}\n.discussion-like > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.discussion-like > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n.discussion-like > .heading ::after {\n  content: \"\\2009\";\n}\n.discussion-like > .heading + .para {\n  display: inline;\n}\n.discussion-like > .heading .space,\n.discussion-like > .heading .codenumber,\n.discussion-like > .heading .period {\n  display: none;\n}\n.discussion-like > .heading .type::after {\n  content: \". \";\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowl-link-color);\n  border-bottom: 1px dotted var(--knowl-link-color);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--knowl-background);\n  border-bottom-color: transparent;\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.knowl__content {\n  margin: 0.75em 0;\n  border: 3px solid var(--knowl-border-color);\n  border-radius: 0;\n  padding: 12px;\n  background-color: var(--knowl-background);\n}\n.knowl__content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowl-nested-1-background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-2-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-3-background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowl-nested-4-background);\n}\n.knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl),\n.goal-like:not(.knowl__content, .born-hidden-knowl) {\n  padding: 10px;\n  padding-left: 15px;\n  border-left: 4px solid var(--block-border-color);\n  background-color: var(--goal-body-background);\n}\n.assemblage-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child,\n.goal-like:not(.knowl__content, .born-hidden-knowl) > .heading:first-child {\n  margin-top: 0;\n}\n.theorem-like .heading,\n.definition-like .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.theorem-like .para,\n.definition-like .para {\n  font-style: italic;\n}\n.example-like > .heading,\n.project-like > .heading,\n.remark-like > .heading,\n.openproblem-like > .heading,\n.computation-like > .heading {\n  display: block;\n  font-size: 1.1em;\n}\n.proof {\n  padding-bottom: 1.5em;\n}\n.proof::after {\n  content: \"\\25a1\";\n  float: right;\n}\n.proof .heading {\n  font-size: unset;\n  font-weight: bold;\n  font-style: italic;\n}\n.solution-like .heading {\n  display: inline;\n  font-style: italic;\n  font-size: unset;\n}\n.paragraphs > .heading:first-child {\n  display: inline;\n  line-height: initial;\n  border-bottom: 0;\n}\n.paragraphs > .heading:first-child:after {\n  content: \"\\2009\";\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para:first-child {\n  display: inline;\n}\n.paragraphs > .heading:first-child + :is(.para, .para.logical, .introduction) > .para.logical:first-child > .para:first-child {\n  display: inline;\n}\n* {\n  box-sizing: border-box;\n}\n@layer spacing {\n  :is(section, article, .knowl__content) > *:not(:first-child) {\n    margin-top: 1.5em;\n  }\n  :is(section, article, .knowl__content) > .para + .para {\n    margin-top: 1em;\n  }\n  .ptx-content :is(ul, td, li, dd, .blockquote, .sbspanel, .para.logical) > *:not(:first-child) {\n    margin-top: 0.5em;\n  }\n}\nol.no-marker,\nul.no-marker,\nli.no-marker {\n  list-style-type: none;\n}\nol.decimal {\n  list-style-type: decimal;\n}\nol.lower-alpha {\n  list-style-type: lower-alpha;\n}\nol.lower-alpha-level-1 > li::marker {\n  content: \"(\" counter(list-item, lower-alpha) \") \";\n}\nol.upper-alpha {\n  list-style-type: upper-alpha;\n}\nol.lower-roman {\n  list-style-type: lower-roman;\n}\nol.upper-roman {\n  list-style-type: upper-roman;\n}\nul.disc {\n  list-style-type: disc;\n}\nul.square {\n  list-style-type: square;\n}\nul.circle {\n  list-style-type: circle;\n}\ndl:is(.description-list, .glossary) {\n  margin: 0;\n}\ndl:is(.description-list, .glossary) dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\ndl:is(.description-list, .glossary) dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.para > dl:is(.description-list) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\ndl.glossary dt {\n  margin-top: 1.25em;\n}\ndl.glossary dt:first-of-type {\n  margin-top: 0;\n}\ndl.glossary dd {\n  margin-left: 5ex;\n}\ndl.description-list dt,\ndl.description-list dd {\n  margin-top: 1em;\n}\ndl.description-list dt:first-of-type,\ndl.description-list dd:first-of-type {\n  margin-top: 0;\n}\ndl.description-list dt {\n  float: left;\n  clear: both;\n  text-align: right;\n  width: 18ex;\n  margin-right: 1ex;\n}\ndl.description-list dd {\n  margin-left: 22ex;\n}\ndl.description-list.narrow dt {\n  width: 11ex;\n}\ndl.description-list.narrow dd {\n  margin-left: 15ex;\n}\ndl.description-list.wide dt {\n  width: 25ex;\n}\ndl.description-list.wide dd {\n  margin-left: 29ex;\n}\ndl.description-list dt:first-of-type {\n  clear: none;\n}\n.description-list + * {\n  clear: both;\n}\ndl.description-list dl dt {\n  width: 8ex;\n}\ndl.description-list dd dd {\n  margin-left: 18ex;\n}\ndl.description-list dl dd {\n  margin-left: 12ex;\n}\n@media screen and (max-width: 480px) {\n  dl.description-list dt,\n  dl.description-list.narrow dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n    width: 25ex;\n  }\n  dl.description-list dd,\n  dl.description-list.narrow dd,\n  dl.description-list.wide dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.cols2 > li {\n  min-width: calc(50% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols3 > li {\n  min-width: calc(33.3333333333% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols4 > li {\n  min-width: calc(25% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols5 > li {\n  min-width: calc(20% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.cols6 > li {\n  min-width: calc(16.6666666667% - 2em);\n  width: min-content;\n  margin-right: 2em;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li .li--heading-title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.para > :is(ol, ul) {\n  margin-top: 0.5em;\n  margin-bottom: 0.5em;\n}\nol > li {\n  padding-left: 0.25em;\n}\n.fillin {\n  display: inline-block;\n  border: none;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n}\n.fillin.underline {\n  border-bottom-style: solid;\n  border-width: 1px;\n}\n.fillin.box {\n  outline: 1px solid var(--body-text-color);\n  height: 1.3em;\n}\n.fillin.shade {\n  background-color: var(--fillin-background-color, #eee);\n  height: 1.3em;\n}\n:root.dark-mode {\n  --fillin-background-color: #444;\n}\n.heading:is(h1, h2, h3, h4, h5, h6) {\n  margin: 0;\n  font-size: unset;\n}\n.heading {\n  line-height: 1.1;\n  font-family: var(--font-headings);\n  font-weight: 700;\n  margin-top: 0;\n  margin-bottom: 0;\n}\nsection > .heading {\n  font-size: 1.75em;\n  color: var(--body-title-color);\n  line-height: 1.25em;\n  margin-top: 2.5em;\n  margin-bottom: 0.5em;\n}\nsection > .heading + * {\n  margin-top: 0.5em;\n}\n.ptx-content > section > .heading {\n  margin-top: 0.5em;\n}\nsection section > .heading {\n  font-size: 1.5em;\n  margin-top: 2em;\n}\nsection section section > .heading {\n  font-size: 1.4em;\n  margin-top: 2em;\n}\narticle > .heading {\n  font-size: 1.25em;\n  margin-top: 1.5em;\n}\narticle > .heading + * {\n  margin-top: 0.5em;\n}\n.paragraphs > .heading {\n  font-size: 1.125em;\n}\n:is(section, article) > .heading + :is(section, article) > .heading {\n  margin-top: 0.5em;\n}\n@media screen and (max-width: 480px) {\n  section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.heading.hide-type > .type {\n  display: none;\n}\na {\n  color: var(--link-text-color);\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\na[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content a.internal {\n  color: var(--link-text-color);\n  font-weight: bold;\n}\n.ptx-content a.external {\n  color: var(--link-alt-text-color);\n  font-weight: bold;\n}\n.ptx-content a.internal:hover,\n.ptx-content a.internal:hover *,\n.ptx-content a.internal:focus,\n.ptx-content a.internal:focus * {\n  color: var(--link-active-text-color);\n  background-color: var(--link-active-background);\n  font-weight: bold;\n}\n.ptx-content a.external:hover,\n.ptx-content a.external:hover *,\n.ptx-content a.external:focus,\n.ptx-content a.external:focus * {\n  color: var(--link-alt-active-text-color);\n  background-color: var(--link-alt-active-background);\n  font-weight: bold;\n}\n.ptx-content table {\n  border-spacing: 0;\n  border-collapse: collapse;\n}\n.ptx-content td {\n  padding: 2px 5px;\n  font-size: 90%;\n}\n.ptx-content td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content th {\n  padding: 2px 5px;\n}\n.ptx-content th .lines {\n  white-space: nowrap;\n}\n.ptx-content th.l {\n  text-align: left;\n}\n.ptx-content th.c {\n  text-align: center;\n}\n.ptx-content th.r {\n  text-align: right;\n}\n.ptx-content th.j {\n  text-align: justify;\n}\n.ptx-content th.t {\n  vertical-align: top;\n}\n.ptx-content th.b {\n  vertical-align: bottom;\n}\n.ptx-content th.m {\n  vertical-align: middle;\n}\n.ptx-content th.l0 {\n  border-left: none;\n}\n.ptx-content th.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content th.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content th.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0 {\n  border-right: none;\n}\n.ptx-content th.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content th.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content th.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content th.t0 {\n  border-top: none;\n}\n.ptx-content th.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content th.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content th.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content th.b0 {\n  border-bottom: none;\n}\n.ptx-content th.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content th.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content th.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content td .lines {\n  white-space: nowrap;\n}\n.ptx-content td.l {\n  text-align: left;\n}\n.ptx-content td.c {\n  text-align: center;\n}\n.ptx-content td.r {\n  text-align: right;\n}\n.ptx-content td.j {\n  text-align: justify;\n}\n.ptx-content td.t {\n  vertical-align: top;\n}\n.ptx-content td.b {\n  vertical-align: bottom;\n}\n.ptx-content td.m {\n  vertical-align: middle;\n}\n.ptx-content td.l0 {\n  border-left: none;\n}\n.ptx-content td.l1 {\n  border-left: 1px solid var(--body-text-color);\n}\n.ptx-content td.l2 {\n  border-left: 2px solid var(--body-text-color);\n}\n.ptx-content td.l3 {\n  border-left: 3px solid var(--body-text-color);\n}\n.ptx-content td.r0 {\n  border-right: none;\n}\n.ptx-content td.r1 {\n  border-right: 1px solid var(--body-text-color);\n}\n.ptx-content td.r2 {\n  border-right: 2px solid var(--body-text-color);\n}\n.ptx-content td.r3 {\n  border-right: 3px solid var(--body-text-color);\n}\n.ptx-content td.t0 {\n  border-top: none;\n}\n.ptx-content td.t1 {\n  border-top: 1px solid var(--body-text-color);\n}\n.ptx-content td.t2 {\n  border-top: 2px solid var(--body-text-color);\n}\n.ptx-content td.t3 {\n  border-top: 3px solid var(--body-text-color);\n}\n.ptx-content td.b0 {\n  border-bottom: none;\n}\n.ptx-content td.b1 {\n  border-bottom: 1px solid var(--body-text-color);\n}\n.ptx-content td.b2 {\n  border-bottom: 2px solid var(--body-text-color);\n}\n.ptx-content td.b3 {\n  border-bottom: 3px solid var(--body-text-color);\n}\n.ptx-content th.r0.l0,\n.ptx-content td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content tr.header-vertical th {\n  writing-mode: vertical-rl;\n  transform: rotate(180deg);\n  padding-top: 5px;\n}\n.ptx-content .center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.tabular-box {\n  margin-top: 0.5em;\n  overflow-x: auto;\n}\n.tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\ntable.notation-list tr th {\n  text-align: left;\n  margin-left: 1em;\n}\ntable.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.frontmatter > .heading .title,\n.frontmatter .book > .heading .title {\n  font-size: 1.3em;\n}\n.frontmatter > .heading .subtitle,\n.frontmatter .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: var(--byline-color);\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author,\n.frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.frontmatter .credit .title {\n  font-size: 1em;\n}\n.frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.frontmatter .author-info {\n  font-size: 90%;\n}\n.frontmatter .summary-links {\n  margin-top: 4em;\n}\n.frontmatter .abstract {\n  margin: 4em 2em;\n}\n.frontmatter .keywords,\n.frontmatter .support {\n  margin-top: 2em;\n}\n.frontmatter .abstract > .title,\n.frontmatter .keywords > .title,\n.frontmatter .support > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.frontmatter .abstract > .title::after,\n.frontmatter .keywords > .title::after,\n.frontmatter .support > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.frontmatter .abstract > .title + .para,\n.frontmatter .keywords > .title + .para,\n.frontmatter .support > .title + .para {\n  display: inline;\n}\n.frontmatter .colophon .copyright {\n  margin-top: 2.5em;\n}\n.frontmatter .colophon .license {\n  margin-top: 2.5em;\n}\n.ptx-content .summary-links {\n  font-family: var(--font-headings);\n  display: block;\n  margin-top: 1em;\n}\n.ptx-content .summary-links a {\n  color: var(--summary-link-text-color);\n  background: var(--summary-link-background);\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 10px 20px;\n  padding-right: 60px;\n  border-radius: 3px;\n  position: relative;\n  display: block;\n  font-weight: unset;\n}\n.ptx-content .summary-links a .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a::after {\n  right: 0.83333em;\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid var(--summary-link-text-color);\n}\n.ptx-content .summary-links a:hover {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover * {\n  color: var(--summary-link-hover-text-color);\n  background: var(--summary-link-hover-background);\n}\n.ptx-content .summary-links a:hover .title {\n  font-weight: normal;\n}\n.ptx-content .summary-links a:hover::after {\n  border-left: 0.4em solid var(--summary-link-hover-text-color);\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n  padding: 0;\n  margin-top: 0;\n}\n.ptx-content .summary-links li {\n  margin-top: 5px;\n}\n@media screen and (width <= 480px) {\n  .ptx-content .summary-links a {\n    font-size: 100%;\n    line-height: 1.25em;\n  }\n}\n.ptx-footnote {\n  display: inline-block;\n  position: relative;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: smaller;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote[open] .ptx-footnote__number sup {\n  display: none;\n}\n.ptx-footnote__number {\n  display: inline-block;\n  cursor: pointer;\n  min-width: 1em;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowl-background);\n  border-radius: 0px;\n  padding: 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowl-border-color);\n  color: var(--body-text-color);\n  font-weight: normal;\n  font-size: var(1rem);\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: var(--activated-content-bg);\n}\n.indexitem {\n  margin-top: 4px;\n}\n.subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.indexknowl {\n  margin-left: 0.11em;\n}\nem + .indexknowl {\n  margin-left: -0.25em;\n}\n.indexknowl a {\n  margin-left: 2em;\n}\n.indexitem .see,\n.subindexitem .see,\n.subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .seealso,\n.subindexitem .seealso,\n.subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.indexitem .see em,\n.subindexitem .see em,\n.subsubindexitem .see em,\n.indexitem .seealso em,\n.subindexitem .seealso em,\n.subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.indexitem .see + .see,\n.subindexitem .see + .see,\n.subsubindexitem .see + .see,\n.indexitem .seealso + .seealso,\n.subindexitem .seealso + .seealso,\n.subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.indexitem .indexknowl {\n  font-size: 90%;\n}\n.indexitem [data-knowl],\n.subindexitem [data-knowl],\n.indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.indexknowl [data-knowl]:hover,\n.indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.subindexitem .indexknowl {\n  font-size: 95%;\n}\n.subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.indexletter {\n  margin-top: 1.5em;\n}\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n.image-box .asymptote-box iframe.asymptote,\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.image-box img,\nimg.contained {\n  width: 100%;\n}\n.asymptote-fullsize-link {\n  text-align: center;\n  font-size: 0.9em;\n}\n.ptx-content img,\n.ptx-content svg {\n  background: var(--ptx-image-bg);\n}\n.mermaid > svg {\n  background: none;\n}\n.image-description summary {\n  list-style: none;\n  cursor: pointer;\n}\n.image-archive {\n  margin: 0.75em auto 0;\n  font-family: var(--font-monospace);\n  justify-content: center;\n  display: flex;\n  gap: 0.5em;\n}\n.image-box > img:not(.mag_popup) {\n  cursor: zoom-in;\n}\nimg.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n}\n.mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.audio {\n  width: 100%;\n}\n.video-poster {\n  cursor: pointer;\n}\nfigure {\n  clear: both;\n  position: relative;\n  margin-left: 0;\n  margin-right: 0;\n}\nfigcaption {\n  margin-left: auto;\n  margin-right: auto;\n  margin-top: 0.5em;\n}\nfigcaption code.code-inline {\n  white-space: pre;\n}\nfigcaption .codenumber,\nfigcaption .type {\n  font-weight: 700;\n}\nfigcaption .codenumber::after,\nfigcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\nfigcaption .para:first-of-type {\n  display: inline;\n}\nfigure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\nfigure.table-like .list {\n  margin-right: 0;\n}\n@media (max-width <= 943px) {\n  .figure-like {\n    overflow-x: auto;\n  }\n}\n.poem {\n  display: table;\n  margin: 0 auto;\n  width: auto;\n  max-width: 90%;\n}\n.poem > .heading {\n  display: block;\n  text-align: center;\n}\nsection article.poem > .heading::after {\n  content: \"\";\n}\n.poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.poem .author.left {\n  text-align: left;\n}\n.poem .author.center {\n  text-align: center;\n}\n.poem .author.right {\n  text-align: right;\n}\n.poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.poem .heading + .line {\n  margin-top: 0.2em;\n}\n.poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.poem .line.center {\n  text-align: center;\n}\n.poem .line.right {\n  text-align: right;\n}\n.poem .tab {\n  margin-left: 2em;\n}\npre[class*=language-] {\n  margin: 0;\n  overflow: auto;\n  border: 1px solid #e1e1e1;\n}\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n  text-shadow: none;\n  font-family: var(--font-monospace);\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.2;\n  tab-size: 4;\n  hyphens: none;\n}\ncode[class*=language-].code-inline,\npre[class*=language-].code-inline {\n  line-height: normal;\n  padding: 0.0625em 0.15em;\n}\ncode[class*=language-]::selection,\ncode[class*=language-] ::selection,\npre[class*=language-]::selection,\npre[class*=language-] ::selection {\n  background: #b3d4fc;\n}\ncode[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\npre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #2a9716;\n}\ncode[class*=language-] .token.punctuation,\npre[class*=language-] .token.punctuation {\n  color: #000;\n}\ncode[class*=language-] .token.namespace,\npre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\ncode[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\npre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: rgb(41, 120, 15);\n}\ncode[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\npre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #a11;\n}\ncode[class*=language-] .token:is(.operator, .entity, .url),\npre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: #000;\n  background: none;\n}\ncode[class*=language-] .token:is(.atrule, .attr-value, .keyword),\npre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #0679B7;\n}\ncode[class*=language-] .token.function,\ncode[class*=language-] .token.class-name,\npre[class*=language-] .token.function,\npre[class*=language-] .token.class-name {\n  color: #30a;\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.variable,\npre[class*=language-] .token.important,\npre[class*=language-] .token.variable {\n  color: rgb(0, 0, 0);\n}\ncode[class*=language-] .token.important,\ncode[class*=language-] .token.bold,\npre[class*=language-] .token.important,\npre[class*=language-] .token.bold {\n  font-weight: bold;\n}\ncode[class*=language-] .token.italic,\npre[class*=language-] .token.italic {\n  font-style: italic;\n}\ncode[class*=language-] .token.entity,\npre[class*=language-] .token.entity {\n  cursor: help;\n}\ncode[class*=language-].line-numbers,\npre[class*=language-].line-numbers {\n  position: relative;\n  padding-left: 3.8em;\n  counter-reset: linenumber;\n  overflow: auto;\n}\ncode[class*=language-].line-numbers > code,\npre[class*=language-].line-numbers > code {\n  position: relative;\n  white-space: inherit;\n}\ncode[class*=language-].line-numbers .line-numbers-rows,\npre[class*=language-].line-numbers .line-numbers-rows {\n  position: absolute;\n  pointer-events: none;\n  top: 0;\n  font-size: 100%;\n  left: -3.8em;\n  width: 3em;\n  letter-spacing: -1px;\n  border-right: 1px solid #999;\n  user-select: none;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span,\npre[class*=language-].line-numbers .line-numbers-rows > span {\n  display: block;\n  counter-increment: linenumber;\n}\ncode[class*=language-].line-numbers .line-numbers-rows > span::before,\npre[class*=language-].line-numbers .line-numbers-rows > span::before {\n  content: counter(linenumber);\n  color: #999;\n  display: block;\n  padding-right: 0.8em;\n  text-align: right;\n}\ncode[class*=language-] .line-highlight,\npre[class*=language-] .line-highlight {\n  position: absolute;\n  margin-top: 4px;\n  left: 0;\n  right: 0;\n  padding: inherit 0;\n  font-size: inherit;\n  background: hsla(24, 20%, 50%, 0.08);\n  pointer-events: none;\n  line-height: inherit;\n  white-space: pre;\n}\n:root.dark-mode {\n}\n:root.dark-mode pre[class*=language-] {\n  border: 1px solid #3d3d3d;\n}\n:root.dark-mode code[class*=language-],\n:root.dark-mode pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n:root.dark-mode code[class*=language-]::selection,\n:root.dark-mode code[class*=language-] ::selection,\n:root.dark-mode pre[class*=language-]::selection,\n:root.dark-mode pre[class*=language-] ::selection {\n  background: hsl(200, 4%, 16%);\n}\n:root.dark-mode code[class*=language-] .token,\n:root.dark-mode pre[class*=language-] .token {\n  position: relative;\n  z-index: 1;\n}\n:root.dark-mode code[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata),\n:root.dark-mode pre[class*=language-] .token:is(.comment, .prolog, .doctype, .cdata) {\n  color: #68a950;\n}\n:root.dark-mode code[class*=language-] .token.punctuation,\n:root.dark-mode pre[class*=language-] .token.punctuation {\n  color: white;\n  opacity: 1;\n}\n:root.dark-mode code[class*=language-] .token.namespace,\n:root.dark-mode pre[class*=language-] .token.namespace {\n  opacity: 0.9;\n}\n:root.dark-mode code[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted),\n:root.dark-mode pre[class*=language-] .token:is(.property, .tag, .boolean, .number, .constant, .symbol, .deleted) {\n  color: #abc792;\n}\n:root.dark-mode code[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted),\n:root.dark-mode pre[class*=language-] .token:is(.selector, .attr-name, .string, .char, .builtin, .regex, .inserted) {\n  color: #ca9147;\n}\n:root.dark-mode code[class*=language-] .token:is(.operator, .entity, .url),\n:root.dark-mode pre[class*=language-] .token:is(.operator, .entity, .url) {\n  color: white;\n}\n:root.dark-mode code[class*=language-] .token:is(.atrule, .attr-value, .keyword),\n:root.dark-mode pre[class*=language-] .token:is(.atrule, .attr-value, .keyword) {\n  color: #2d94fb;\n}\n:root.dark-mode code[class*=language-] .token.function,\n:root.dark-mode code[class*=language-] .token.class-name,\n:root.dark-mode pre[class*=language-] .token.function,\n:root.dark-mode pre[class*=language-] .token.class-name {\n  color: #e3e1c2;\n}\n:root.dark-mode code[class*=language-] .token.important,\n:root.dark-mode code[class*=language-] .token.bold,\n:root.dark-mode pre[class*=language-] .token.important,\n:root.dark-mode pre[class*=language-] .token.bold {\n  font-weight: bold;\n}\n:root.dark-mode code[class*=language-] .token.italic,\n:root.dark-mode pre[class*=language-] .token.italic {\n  font-style: italic;\n}\n:root.dark-mode code[class*=language-] .token.entity,\n:root.dark-mode pre[class*=language-] .token.entity {\n  cursor: help;\n}\n:root.dark-mode .line-highlight {\n  background: hsla(0, 0%, 33%, 0.1);\n  border-bottom: 1px dashed hsl(0, 0%, 33%);\n  border-top: 1px dashed hsl(0, 0%, 33%);\n  z-index: 0;\n}\n@media print {\n  code[class*=language-] .line-highlight,\n  pre[class*=language-] .line-highlight {\n    color-adjust: exact;\n  }\n}\n.displaymath {\n  overflow-x: auto;\n  overflow-y: hidden;\n}\n.displaymath mjx-container[jax=CHTML][display=true] {\n  margin: 0 0 0 0;\n  padding-top: 0.3em;\n}\n.process-math mjx-container svg {\n  background: none;\n}\n[data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.knowl mjx-mtext > mjx-utext,\nmjx-mtext > mjx-utext {\n  width: revert !important;\n}\nmjx-msup mjx-utext,\nmjx-msub mjx-utext {\n  display: inline;\n}\nem.alert {\n  font-weight: bold;\n}\n.bib {\n  margin-top: 0.25em;\n}\n.bib .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.bib .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n  margin-top: 0;\n}\n.caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.contributor {\n  margin-top: 1.5ex;\n}\n.contributor:first-child {\n  margin-top: 0em;\n}\n.contributor + .para {\n  margin-top: 3ex;\n}\n.contributor .contributor-name {\n  font-variant: small-caps;\n}\n.contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\niframe {\n  margin: 0;\n  border: none;\n}\n.kbdkey {\n  background: #f1f1f1;\n  color: #333;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.unit,\n.quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.unit sub,\n.unit sup,\n.quantity sub,\n.quantity sup {\n  word-spacing: normal;\n}\n.terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.emphasis {\n  font-style: italic;\n}\n.emphasis .emphasis {\n  font-weight: bold;\n}\n.definition-like .emphasis {\n  font-weight: 700;\n}\narticle.theorem-like .emphasis {\n  font-weight: 700;\n}\n.para {\n  line-height: 1.35;\n}\n.hidden {\n  display: none !important;\n}\n.taxon {\n  font-style: italic;\n}\n.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.booktitle {\n  font-style: oblique;\n}\n.latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n  }\n  .ptx-page,\n  .ptx-main,\n  .ptx-main .ptx-content {\n    all: unset !important;\n    width: 100%;\n    border: none;\n    padding: 0;\n    margin: 0;\n  }\n  .ptx-sagecell,\n  .tabular,\n  .table-like,\n  .figure-like,\n  .exercise-like {\n    break-inside: avoid;\n  }\n  .heading {\n    break-after: avoid;\n  }\n  .code-inline {\n    border: unset;\n    background: unset;\n  }\n  @page {\n    margin: 0.75in 0.75in 0.75in 0.75in;\n  }\n}\n.heading .print-links {\n  float: right;\n  position: relative;\n  z-index: 100;\n  vertical-align: bottom;\n}\n.heading .print-links .print-link {\n  font-family: var(--font-body);\n  padding: 0.1em 0.2em;\n}\n.heading .print-links .material-symbols-outlined {\n  margin-top: 5pt;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.pretext .searchwrapper .cse .gsc-control-cse input,\n.searchwrapper .gsc-control-cse {\n  padding: 5px;\n}\n.searchbox .searchwidget {\n  height: 100%;\n}\n.searchbox .searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  padding: 1em;\n  left: max(10vw, (100vw - 800px) / 2);\n  width: 80vw;\n  max-width: 800px;\n  border: 2px solid var(--body-text-color);\n  background: var(--knowl-background, #eaf0f6);\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.searchbox .searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox .search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n  height: 35px;\n}\n.searchbox .ptxsearch {\n  flex: 1 1;\n}\n.searchbox .closesearchresults {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.searchbox .closesearchresults:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .closesearchresults:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.searchbox .closesearchresults.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.searchbox .closesearchresults.hidden {\n  display: none;\n}\n.searchbox .closesearchresults.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.searchbox .detailed_result {\n  margin-bottom: 10px;\n}\n.searchbox .searchresults a:hover {\n  text-decoration: underline;\n  background: var(--link-active-background);\n}\n.searchbox .searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n  background: var(--content-background, white);\n  border: 1px solid var(--page-border-color, #ccc);\n}\n.searchbox .searchresults:empty {\n  display: none;\n}\n.searchbox .search-result-bullet {\n  list-style-type: none;\n}\n.searchbox .search-result-score {\n  display: none;\n}\n.searchbox .no_result {\n  font-size: 90%;\n  font-weight: 200;\n}\n.searchbox .low_result {\n  font-weight: 200;\n}\n.searchbox .medium_result {\n  font-weight: 500;\n}\n.searchbox .high_result {\n  font-weight: 700;\n}\n.searchbox .searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.searchbox .search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.searchbox .search-result-clip-highlight {\n  background: var(--searchresultshighlight);\n}\n.searchbox .searchresultsbackground {\n  position: fixed;\n  top: 0;\n  background: var(--searchresultsbackground, white);\n  width: 100vw;\n  height: 100%;\n  left: 0;\n  z-index: 4999;\n}\n@media screen and (max-width: 800px) {\n  .searchbox .searchresultsplaceholder {\n    bottom: 10vh;\n  }\n}\n:root {\n  --searchresultsbackground: #fff8;\n  --searchresultshighlight: rgba(255, 255, 0, 50%);\n}\n:root.dark-mode {\n  --searchresultsbackground: #0008;\n  --searchresultshighlight: rgba(255, 255, 0, 15%);\n}\n.ptx-content .ptx-runestone-container .runestone {\n  margin: unset;\n  border-radius: 0;\n  border-width: 1px;\n}\n.multiplechoice_section label > .para {\n  display: inline;\n}\n.ptx-content .ptx-runestone-container .ac_question {\n  max-width: var(--base-content-width);\n  margin: 0 auto 10px;\n}\n.runestone .runestone_caption {\n  display: none;\n}\n.ptx-content .ptx-runestone-container .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-runestone-container .runestone code,\n.ptx-runestone-container .runestone pre {\n  font-size: 0.93rem;\n  line-height: 1.2;\n  font-family: var(--font-monospace);\n}\n.ptx-runestone-container code[class*=language-],\n.ptx-runestone-container pre[class*=language-] {\n  color: black;\n  background: #fdfdfd;\n}\n.runestone.datafile .datafile_caption {\n  background: var(--code-inline-background);\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  display: block;\n  width: fit-content;\n  margin: 0 auto;\n}\n.runestone.datafile img {\n  margin: 0 auto;\n  display: block;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n}\n.runestone.datafile pre,\n.runestone.datafile textarea {\n  margin: 0 auto;\n  border: 1px solid color-mix(in oklab, var(--code-inline-background) 50%, #888);\n  background-color: var(--page-color);\n}\n.runestone.datafile + .program {\n  margin-top: 0;\n}\nul[data-component=timedAssessment] {\n  margin: 0;\n  padding: 0;\n}\n:root.dark-mode .ptx-runestone-container code[class*=language-],\n:root.dark-mode .ptx-runestone-container pre[class*=language-] {\n  color: white;\n  background: hsl(0, 0%, 8%);\n}\n@layer spacing {\n  .runestone :is(.exercise-statement, .exercise-content) > *:not(:first-child) {\n    margin-top: 1em;\n  }\n  .ptx-runestone-container + .solutions {\n    margin-top: 0.5em;\n  }\n}\n.interactive-iframe-container {\n  max-width: 100%;\n  overflow: auto;\n}\n.interactive-iframe-container > iframe {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n}\n.interactive__instructions {\n  max-width: var(--base-content-width);\n}\n.standalone-page .interactive-iframe-container {\n  margin-left: auto;\n  margin-right: auto;\n}\n.standalone-page .interactive__instructions {\n  margin: 5px auto 20px;\n}\n.interactive-iframe-container__opener {\n  display: block;\n  margin-right: 5px;\n  margin-top: 11px;\n  margin-bottom: 5px;\n  font-size: 0.8rem;\n}\n.interactive-iframe-container__opener .icon {\n  font-size: 18px;\n}\n.interactive-iframe-container__opener:has(+ figcaption, + .instructions) {\n  float: left;\n  z-index: 1;\n  position: relative;\n}\n.interactive-iframe-container__opener + .instructions + figcaption {\n  clear: left;\n}\n.interactive-iframe-container__opener + .instructions {\n  margin-top: 0.5em;\n}\n.clipboardable {\n  position: relative;\n  display: flow-root;\n}\n.clipboardable .code-copy {\n  position: absolute;\n  right: 0;\n  top: 0;\n  opacity: 0.25;\n  border-width: 0;\n  background: none;\n  cursor: pointer;\n  z-index: 1;\n  white-space-collapse: collapse;\n  padding: 1px;\n  scale: 0.85;\n}\n.clipboardable .code-copy:hover {\n  opacity: 0.7;\n}\n.clipboardable .code-copy .checkmark {\n  display: none;\n}\n.clipboardable .code-copy.copied {\n  opacity: 1;\n  color: mediumseagreen;\n  cursor: not-allowed;\n  pointer-events: none;\n}\n.clipboardable .code-copy.copied .copyicon {\n  display: none;\n}\n.clipboardable .code-copy.copied .checkmark {\n  display: inline;\n}\n.clipboardable:has(.code-display) {\n  margin: 0.25em 0;\n}\n.clipboardable:has(.code-display) .code-display {\n  margin: 0;\n  padding: 0.25em 0;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\nlabel.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.exercise-wrapper > *:not(:first-child) {\n  margin-top: 1.5em;\n}\n.ptx-content .problem-buttons {\n  display: flex;\n}\n.ptx-content .webwork-button {\n  font: inherit;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: var(--button-text-color);\n  background-color: var(--button-background);\n  border-width: 1px;\n  border-color: var(--button-border-color);\n  border-style: solid;\n  border-radius: 0;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  cursor: pointer;\n  user-select: none;\n}\n.ptx-content .webwork-button:hover:not(.disabled) {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.ptx-content .webwork-button:focus-visible {\n  outline: 2px solid var(--button-text-color);\n  outline-offset: -2px;\n}\n.ptx-content .webwork-button.disabled {\n  opacity: 0.4;\n  cursor: not-allowed;\n}\n.ptx-content .webwork-button.hidden {\n  display: none;\n}\n.ptx-content .webwork-button.open {\n  color: var(--button-hover-text-color);\n  background-color: var(--button-hover-background);\n}\n.problem-buttons.hidden-content,\n.problem-contents.hidden-content {\n  display: none;\n}\n.sagecell_sessionOutput pre {\n  font-family: var(--font-monospace);\n}\n.sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.sage-interact.sagecell {\n  margin: 0;\n}\n.sagecell_evalButton {\n  font-family: var(--font-body);\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.sagecell_evalButton:focus,\n.sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\nsection,\narticle,\nli,\nblockquote,\nfigcaption,\ndt,\n.exercisegroup,\n.discussion-like,\n.solution-like,\n.para {\n  position: relative;\n}\n.autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 0.5ex;\n  left: -2em;\n  font-size: 85%;\n  opacity: var(--permalink-opacity, 0);\n  transition: opacity 0.2s;\n  margin-top: 0 !important;\n  user-select: none;\n}\nli > .autopermalink {\n  left: -3.5em;\n}\n.autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n.appendix > .autopermalink,\n.chapter > .autopermalink,\n.index > .autopermalink,\n.section > .autopermalink,\n.subsection > .autopermalink,\n.references > .autopermalink,\n.exercises > .autopermalink {\n  top: 1.5ex;\n}\n.assemblage-like > .para > .autopermalink,\n.example-like > .para > .autopermalink,\n.example-like > .exercise-like > .autopermalink,\n.project-like > .para > .autopermalink,\n.project-like > .exercise-like > .autopermalink,\n.project-like > .exercise-like > .introduction > .para > .autopermalink,\n.project-like > .exercise-like > .conclusion > .para > .autopermalink,\n.remark-like > .para > .autopermalink {\n  left: -2.9em;\n}\n.axiom-like > .para:first-of-type > .autopermalink,\n.example-like > .para:first-of-type > .autopermalink,\n.exercise-like > .para:first-of-type > .autopermalink,\n.solution-like > .para:first-of-type > .autopermalink,\n.assemblage-like > .para:first-of-type > .autopermalink,\n.definition-like > .para:first-of-type > .autopermalink,\n.remark-like > .para:first-of-type > .autopermalink,\n.project-like > .para:first-of-type > .autopermalink,\n.openproblem-like > .para:first-of-type > .autopermalink,\n.computation-like > .para:first-of-type > .autopermalink,\n.theorem-like > .para:first-of-type > .autopermalink,\n.proof > .para:first-of-type > .autopermalink,\n.case > .para:first-of-type > .autopermalink,\nli > .para:first-of-type > .autopermalink,\ndd > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.axiom-like > .introduction > .para:first-of-type > .autopermalink,\n.example-like > .introduction > .para:first-of-type > .autopermalink,\n.exercise-like > .introduction > .para:first-of-type > .autopermalink,\n.solution-like > .introduction > .para:first-of-type > .autopermalink,\n.assemblage-like > .introduction > .para:first-of-type > .autopermalink,\n.definition-like > .introduction > .para:first-of-type > .autopermalink,\n.remark-like > .introduction > .para:first-of-type > .autopermalink,\n.project-like > .introduction > .para:first-of-type > .autopermalink,\n.openproblem-like > .introduction > .para:first-of-type > .autopermalink,\n.computation-like > .introduction > .para:first-of-type > .autopermalink,\n.theorem-like > .introduction > .para:first-of-type > .autopermalink,\n.proof > .introduction > .para:first-of-type > .autopermalink,\n.case > .introduction > .para:first-of-type > .autopermalink,\nli > .introduction > .para:first-of-type > .autopermalink,\ndd > .introduction > .para:first-of-type > .autopermalink {\n  display: none;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink {\n  opacity: 0.2;\n}\n.ptx-content:has(.autopermalink:hover) .autopermalink:hover {\n  opacity: 1;\n}\n.autopermalink:has(a:focus-visible) {\n  opacity: 1;\n}\n.permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: var(--content-background);\n  border: 3px solid var(--page-border-color);\n  z-index: 2001;\n}\n:target {\n  scroll-margin-top: 45px;\n  animation: target-fade 10s 1;\n}\n@keyframes target-fade {\n  0% {\n    background-color: var(--activated-content-bg);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n:root {\n  --font-body:\n    Open Sans,\n    Helvetica Neue,\n    Helvetica,\n    Arial,\n    sans-serif;\n}\n:root {\n  --font-headings:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n:root {\n  --font-monospace:\n    Inconsolata,\n    Consolas,\n    Monaco,\n    monospace;\n}\n:root {\n  --font-print:\n    PT Serif,\n    Times New Roman,\n    Times,\n    serif;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon {\n  font-size: 30px;\n}\n.ptx-toc.focused .toc-item > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon:before {\n  content: \"chevron_left\";\n}\nsection > *:not(:first-child) {\n  margin-top: 1.5em;\n}\narticle > *:not(:first-child):has(.heading) {\n  margin-top: 1.5em;\n}\n.displaymath {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .displaymath {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: fit-content;\n    max-width: var(--max-width);\n  }\n}\n.code-display {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .code-display {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: fit-content;\n    max-width: var(--max-width);\n  }\n}\n.tabular-box {\n  overflow-x: auto;\n}\n@container ptx-main (width > 696px) {\n  .tabular-box {\n    --max-width: calc(min((100cqw - 2 * 48px), 900px));\n    min-width: 100%;\n    clear: right;\n    width: fit-content;\n    max-width: var(--max-width);\n  }\n}\n:root {\n  color-scheme: light;\n}\n:root:not(.dark-mode) {\n  --page-color: white;\n  --content-background: white;\n  --page-border-color: #ccc;\n  --doc-title-color: var(--primary-color);\n  --byline-color: #333;\n  --banner-background: #fafafa;\n  --navbar-background: #ededed;\n  --footer-background: var(--banner-background);\n  --toc-border-color: #c9c9c9;\n  --toc-background: var(--content-background);\n  --tocitem-background: #f2f2f2;\n  --toc-text-color: var(--primary-color-black-30);\n  --tocitem-highlight-background: var(--primary-color-white-10);\n  --tocitem-highlight-text-color: white;\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color);\n  --tocitem-active-text-color: white;\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--content-background);\n  --toclevel1-text-color: var(--toc-text-color);\n  --toclevel2-background: var(--primary-color-white-98);\n  --toclevel2-text-color: var(--toc-text-color);\n  --toclevel3-background: var(--primary-color-white-95);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #000;\n  --body-title-color: black;\n  --ptx-image-bg: transparent;\n  --activated-content-bg: rgba(241, 185, 255, 0.3);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--link-text-color);\n  --knowl-background: #f8f8f8;\n  --knowl-border-color: var(--primary-color-gray-80);\n  --knowl-nested-1-background: var(--knowl-background);\n  --knowl-nested-2-background: var(--knowl-background);\n  --knowl-nested-3-background: var(--knowl-background);\n  --knowl-nested-4-background: var(--knowl-background);\n  --block-body-background: var(--content-background);\n  --block-border-color: black;\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: #ededed;\n  --button-text-color: #333333;\n  --button-border-color: #ccc;\n  --button-hover-background: #c7c7c7;\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: #fdfdfd;\n  --code-inline-background: #ededed;\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n  --primary-color: #2a5ea4;\n  --goal-border-color: var(--primary-color-white-20);\n}\n:root.dark-mode {\n  color-scheme: dark;\n  --page-color: var(--background-color);\n  --content-background: var(--page-color);\n  --page-border-color: var(--background-color-white-25);\n  --doc-title-color: var(--primary-color);\n  --byline-color: var(--background-color-white-50);\n  --banner-background: #23241f;\n  --navbar-background: var(--background-color-gray-15);\n  --footer-background: var(--background-color-black-10);\n  --toc-border-color: #555;\n  --toc-background: var(--content-background);\n  --tocitem-background: var(--toc-background);\n  --toc-text-color: var(--body-text-color);\n  --tocitem-highlight-background: var(--primary-color-gray-5);\n  --tocitem-highlight-text-color: var(--background-color-black-50);\n  --tocitem-highlight-border-color: var(--toc-border-color);\n  --tocitem-active-background: var(--primary-color-gray-5);\n  --tocitem-active-text-color: var(--background-color-black-50);\n  --tocitem-active-border-color: var(--toc-border-color);\n  --toclevel1-background: var(--background-color-gray-10);\n  --toclevel1-text-color: var(--primary-color-white-40);\n  --toclevel2-background: var(--toclevel1-background);\n  --toclevel2-text-color: var(--toclevel1-text-color);\n  --toclevel3-background: var(--content-background);\n  --toclevel3-text-color: var(--toc-text-color);\n  --body-text-color: #f2f2f2;\n  --body-title-color: var(--primary-color-white-20);\n  --ptx-image-bg: white;\n  --activated-content-bg: rgba(255, 237, 185, 0.2);\n  --summary-link-background: var(--button-background);\n  --summary-link-text-color: var(--button-text-color);\n  --summary-link-hover-background: var(--button-hover-background);\n  --summary-link-hover-text-color: var(--button-hover-text-color);\n  --link-text-color: var(--primary-color-white-10);\n  --link-background: transparent;\n  --link-active-text-color: var(--primary-color-white-40);\n  --link-active-background: var(--background-color-gray-30);\n  --link-alt-text-color: var(--link-text-color);\n  --link-alt-background: transparent;\n  --link-alt-active-text-color: var(--link-alt-text-color);\n  --link-alt-active-background: var(--link-active-text-color);\n  --knowl-link-color: var(--doc-title-color);\n  --knowl-background: var(--background-color-black-10);\n  --knowl-border-color: var(--background-color-white-20);\n  --knowl-nested-1-background: var(--background-color-gray-10);\n  --knowl-nested-2-background: var(--background-color-black-10);\n  --knowl-nested-3-background: var(--background-color-gray-10);\n  --knowl-nested-4-background: var(--background-color-black-10);\n  --block-body-background: var(--content-background);\n  --block-border-color: var(--knowl-border-color);\n  --block-head-color: var(--body-text-color);\n  --aside-like-link-color: var(--link-text-color);\n  --button-background: var(--background-color-gray-15);\n  --button-text-color: var(--body-text-color);\n  --button-border-color: var(--background-color-white-25);\n  --button-hover-background: var(--primary-color-black-50);\n  --button-hover-text-color: var(--button-text-color);\n  --dropdown-background: var(--content-background);\n  --dropdown-border-color: var(--toc-border-color);\n  --dropdown-text-color: var(--toc-text-color);\n  --dropdown-hover-background: var(--tocitem-active-background);\n  --dropdown-hover-text-color: var(--tocitem-active-text-color);\n  --code-background: var(--background-color-gray-20);\n  --code-inline-background: var(--background-color-gray-20);\n  --assemblage-like-body-background: var(--block-body-background);\n  --assemblage-like-border-color: var(--block-border-color);\n  --definition-like-body-background: var(--block-body-background);\n  --definition-like-border-color: var(--block-border-color);\n  --theorem-like-body-background: var(--block-body-background);\n  --theorem-like-border-color: var(--block-border-color);\n  --axiom-like-body-background: var(--block-body-background);\n  --axiom-like-border-color: var(--block-border-color);\n  --remark-like-body-background: var(--block-body-background);\n  --remark-like-border-color: var(--block-border-color);\n  --computation-like-body-background: var(--block-body-background);\n  --computation-like-border-color: var(--block-border-color);\n  --openproblem-like-body-background: var(--block-body-background);\n  --openproblem-like-border-color: var(--block-border-color);\n  --aside-like-body-background: var(--block-body-background);\n  --aside-like-border-color: var(--block-border-color);\n  --proof-like-body-background: var(--block-body-background);\n  --proof-like-border-color: var(--block-border-color);\n  --example-like-body-background: var(--block-body-background);\n  --example-like-border-color: var(--block-border-color);\n  --project-like-body-background: var(--block-body-background);\n  --project-like-border-color: var(--block-border-color);\n  --goal-like-body-background: var(--block-body-background);\n  --goal-like-border-color: var(--block-border-color);\n  --solution-like-body-background: var(--block-body-background);\n  --solution-like-border-color: var(--block-border-color);\n  --primary-color: #829ab1;\n  --background-color: #23241f;\n  --background-color-white-1: color-mix(in oklab, var(--background-color), white 1%);\n  --background-color-white-2: color-mix(in oklab, var(--background-color), white 2%);\n  --background-color-white-3: color-mix(in oklab, var(--background-color), white 3%);\n  --background-color-white-4: color-mix(in oklab, var(--background-color), white 4%);\n  --background-color-white-5: color-mix(in oklab, var(--background-color), white 5%);\n  --background-color-white-10: color-mix(in oklab, var(--background-color), white 10%);\n  --background-color-white-15: color-mix(in oklab, var(--background-color), white 15%);\n  --background-color-white-20: color-mix(in oklab, var(--background-color), white 20%);\n  --background-color-white-25: color-mix(in oklab, var(--background-color), white 25%);\n  --background-color-white-30: color-mix(in oklab, var(--background-color), white 30%);\n  --background-color-white-35: color-mix(in oklab, var(--background-color), white 35%);\n  --background-color-white-40: color-mix(in oklab, var(--background-color), white 40%);\n  --background-color-white-50: color-mix(in oklab, var(--background-color), white 50%);\n  --background-color-white-60: color-mix(in oklab, var(--background-color), white 60%);\n  --background-color-white-65: color-mix(in oklab, var(--background-color), white 65%);\n  --background-color-white-70: color-mix(in oklab, var(--background-color), white 70%);\n  --background-color-white-75: color-mix(in oklab, var(--background-color), white 75%);\n  --background-color-white-80: color-mix(in oklab, var(--background-color), white 80%);\n  --background-color-white-85: color-mix(in oklab, var(--background-color), white 85%);\n  --background-color-white-90: color-mix(in oklab, var(--background-color), white 90%);\n  --background-color-white-95: color-mix(in oklab, var(--background-color), white 95%);\n  --background-color-white-96: color-mix(in oklab, var(--background-color), white 96%);\n  --background-color-white-97: color-mix(in oklab, var(--background-color), white 97%);\n  --background-color-white-98: color-mix(in oklab, var(--background-color), white 98%);\n  --background-color-white-99: color-mix(in oklab, var(--background-color), white 99%);\n  --background-color-black-1: color-mix(in oklab, var(--background-color), black 1%);\n  --background-color-black-2: color-mix(in oklab, var(--background-color), black 2%);\n  --background-color-black-3: color-mix(in oklab, var(--background-color), black 3%);\n  --background-color-black-4: color-mix(in oklab, var(--background-color), black 4%);\n  --background-color-black-5: color-mix(in oklab, var(--background-color), black 5%);\n  --background-color-black-10: color-mix(in oklab, var(--background-color), black 10%);\n  --background-color-black-15: color-mix(in oklab, var(--background-color), black 15%);\n  --background-color-black-20: color-mix(in oklab, var(--background-color), black 20%);\n  --background-color-black-25: color-mix(in oklab, var(--background-color), black 25%);\n  --background-color-black-30: color-mix(in oklab, var(--background-color), black 30%);\n  --background-color-black-35: color-mix(in oklab, var(--background-color), black 35%);\n  --background-color-black-40: color-mix(in oklab, var(--background-color), black 40%);\n  --background-color-black-50: color-mix(in oklab, var(--background-color), black 50%);\n  --background-color-black-60: color-mix(in oklab, var(--background-color), black 60%);\n  --background-color-black-65: color-mix(in oklab, var(--background-color), black 65%);\n  --background-color-black-70: color-mix(in oklab, var(--background-color), black 70%);\n  --background-color-black-75: color-mix(in oklab, var(--background-color), black 75%);\n  --background-color-black-80: color-mix(in oklab, var(--background-color), black 80%);\n  --background-color-black-85: color-mix(in oklab, var(--background-color), black 85%);\n  --background-color-black-90: color-mix(in oklab, var(--background-color), black 90%);\n  --background-color-black-95: color-mix(in oklab, var(--background-color), black 95%);\n  --background-color-black-96: color-mix(in oklab, var(--background-color), black 96%);\n  --background-color-black-97: color-mix(in oklab, var(--background-color), black 97%);\n  --background-color-black-98: color-mix(in oklab, var(--background-color), black 98%);\n  --background-color-black-99: color-mix(in oklab, var(--background-color), black 99%);\n  --background-color-gray-1: color-mix(in oklab, var(--background-color), gray 1%);\n  --background-color-gray-2: color-mix(in oklab, var(--background-color), gray 2%);\n  --background-color-gray-3: color-mix(in oklab, var(--background-color), gray 3%);\n  --background-color-gray-4: color-mix(in oklab, var(--background-color), gray 4%);\n  --background-color-gray-5: color-mix(in oklab, var(--background-color), gray 5%);\n  --background-color-gray-10: color-mix(in oklab, var(--background-color), gray 10%);\n  --background-color-gray-15: color-mix(in oklab, var(--background-color), gray 15%);\n  --background-color-gray-20: color-mix(in oklab, var(--background-color), gray 20%);\n  --background-color-gray-25: color-mix(in oklab, var(--background-color), gray 25%);\n  --background-color-gray-30: color-mix(in oklab, var(--background-color), gray 30%);\n  --background-color-gray-35: color-mix(in oklab, var(--background-color), gray 35%);\n  --background-color-gray-40: color-mix(in oklab, var(--background-color), gray 40%);\n  --background-color-gray-50: color-mix(in oklab, var(--background-color), gray 50%);\n  --background-color-gray-60: color-mix(in oklab, var(--background-color), gray 60%);\n  --background-color-gray-65: color-mix(in oklab, var(--background-color), gray 65%);\n  --background-color-gray-70: color-mix(in oklab, var(--background-color), gray 70%);\n  --background-color-gray-75: color-mix(in oklab, var(--background-color), gray 75%);\n  --background-color-gray-80: color-mix(in oklab, var(--background-color), gray 80%);\n  --background-color-gray-85: color-mix(in oklab, var(--background-color), gray 85%);\n  --background-color-gray-90: color-mix(in oklab, var(--background-color), gray 90%);\n  --background-color-gray-95: color-mix(in oklab, var(--background-color), gray 95%);\n  --background-color-gray-96: color-mix(in oklab, var(--background-color), gray 96%);\n  --background-color-gray-97: color-mix(in oklab, var(--background-color), gray 97%);\n  --background-color-gray-98: color-mix(in oklab, var(--background-color), gray 98%);\n  --background-color-gray-99: color-mix(in oklab, var(--background-color), gray 99%);\n  --primary-color-white-1: color-mix(in oklab, var(--primary-color), white 1%);\n  --primary-color-white-2: color-mix(in oklab, var(--primary-color), white 2%);\n  --primary-color-white-3: color-mix(in oklab, var(--primary-color), white 3%);\n  --primary-color-white-4: color-mix(in oklab, var(--primary-color), white 4%);\n  --primary-color-white-5: color-mix(in oklab, var(--primary-color), white 5%);\n  --primary-color-white-10: color-mix(in oklab, var(--primary-color), white 10%);\n  --primary-color-white-15: color-mix(in oklab, var(--primary-color), white 15%);\n  --primary-color-white-20: color-mix(in oklab, var(--primary-color), white 20%);\n  --primary-color-white-25: color-mix(in oklab, var(--primary-color), white 25%);\n  --primary-color-white-30: color-mix(in oklab, var(--primary-color), white 30%);\n  --primary-color-white-35: color-mix(in oklab, var(--primary-color), white 35%);\n  --primary-color-white-40: color-mix(in oklab, var(--primary-color), white 40%);\n  --primary-color-white-50: color-mix(in oklab, var(--primary-color), white 50%);\n  --primary-color-white-60: color-mix(in oklab, var(--primary-color), white 60%);\n  --primary-color-white-65: color-mix(in oklab, var(--primary-color), white 65%);\n  --primary-color-white-70: color-mix(in oklab, var(--primary-color), white 70%);\n  --primary-color-white-75: color-mix(in oklab, var(--primary-color), white 75%);\n  --primary-color-white-80: color-mix(in oklab, var(--primary-color), white 80%);\n  --primary-color-white-85: color-mix(in oklab, var(--primary-color), white 85%);\n  --primary-color-white-90: color-mix(in oklab, var(--primary-color), white 90%);\n  --primary-color-white-95: color-mix(in oklab, var(--primary-color), white 95%);\n  --primary-color-white-96: color-mix(in oklab, var(--primary-color), white 96%);\n  --primary-color-white-97: color-mix(in oklab, var(--primary-color), white 97%);\n  --primary-color-white-98: color-mix(in oklab, var(--primary-color), white 98%);\n  --primary-color-white-99: color-mix(in oklab, var(--primary-color), white 99%);\n  --primary-color-black-1: color-mix(in oklab, var(--primary-color), black 1%);\n  --primary-color-black-2: color-mix(in oklab, var(--primary-color), black 2%);\n  --primary-color-black-3: color-mix(in oklab, var(--primary-color), black 3%);\n  --primary-color-black-4: color-mix(in oklab, var(--primary-color), black 4%);\n  --primary-color-black-5: color-mix(in oklab, var(--primary-color), black 5%);\n  --primary-color-black-10: color-mix(in oklab, var(--primary-color), black 10%);\n  --primary-color-black-15: color-mix(in oklab, var(--primary-color), black 15%);\n  --primary-color-black-20: color-mix(in oklab, var(--primary-color), black 20%);\n  --primary-color-black-25: color-mix(in oklab, var(--primary-color), black 25%);\n  --primary-color-black-30: color-mix(in oklab, var(--primary-color), black 30%);\n  --primary-color-black-35: color-mix(in oklab, var(--primary-color), black 35%);\n  --primary-color-black-40: color-mix(in oklab, var(--primary-color), black 40%);\n  --primary-color-black-50: color-mix(in oklab, var(--primary-color), black 50%);\n  --primary-color-black-60: color-mix(in oklab, var(--primary-color), black 60%);\n  --primary-color-black-65: color-mix(in oklab, var(--primary-color), black 65%);\n  --primary-color-black-70: color-mix(in oklab, var(--primary-color), black 70%);\n  --primary-color-black-75: color-mix(in oklab, var(--primary-color), black 75%);\n  --primary-color-black-80: color-mix(in oklab, var(--primary-color), black 80%);\n  --primary-color-black-85: color-mix(in oklab, var(--primary-color), black 85%);\n  --primary-color-black-90: color-mix(in oklab, var(--primary-color), black 90%);\n  --primary-color-black-95: color-mix(in oklab, var(--primary-color), black 95%);\n  --primary-color-black-96: color-mix(in oklab, var(--primary-color), black 96%);\n  --primary-color-black-97: color-mix(in oklab, var(--primary-color), black 97%);\n  --primary-color-black-98: color-mix(in oklab, var(--primary-color), black 98%);\n  --primary-color-black-99: color-mix(in oklab, var(--primary-color), black 99%);\n  --primary-color-gray-1: color-mix(in oklab, var(--primary-color), gray 1%);\n  --primary-color-gray-2: color-mix(in oklab, var(--primary-color), gray 2%);\n  --primary-color-gray-3: color-mix(in oklab, var(--primary-color), gray 3%);\n  --primary-color-gray-4: color-mix(in oklab, var(--primary-color), gray 4%);\n  --primary-color-gray-5: color-mix(in oklab, var(--primary-color), gray 5%);\n  --primary-color-gray-10: color-mix(in oklab, var(--primary-color), gray 10%);\n  --primary-color-gray-15: color-mix(in oklab, var(--primary-color), gray 15%);\n  --primary-color-gray-20: color-mix(in oklab, var(--primary-color), gray 20%);\n  --primary-color-gray-25: color-mix(in oklab, var(--primary-color), gray 25%);\n  --primary-color-gray-30: color-mix(in oklab, var(--primary-color), gray 30%);\n  --primary-color-gray-35: color-mix(in oklab, var(--primary-color), gray 35%);\n  --primary-color-gray-40: color-mix(in oklab, var(--primary-color), gray 40%);\n  --primary-color-gray-50: color-mix(in oklab, var(--primary-color), gray 50%);\n  --primary-color-gray-60: color-mix(in oklab, var(--primary-color), gray 60%);\n  --primary-color-gray-65: color-mix(in oklab, var(--primary-color), gray 65%);\n  --primary-color-gray-70: color-mix(in oklab, var(--primary-color), gray 70%);\n  --primary-color-gray-75: color-mix(in oklab, var(--primary-color), gray 75%);\n  --primary-color-gray-80: color-mix(in oklab, var(--primary-color), gray 80%);\n  --primary-color-gray-85: color-mix(in oklab, var(--primary-color), gray 85%);\n  --primary-color-gray-90: color-mix(in oklab, var(--primary-color), gray 90%);\n  --primary-color-gray-95: color-mix(in oklab, var(--primary-color), gray 95%);\n  --primary-color-gray-96: color-mix(in oklab, var(--primary-color), gray 96%);\n  --primary-color-gray-97: color-mix(in oklab, var(--primary-color), gray 97%);\n  --primary-color-gray-98: color-mix(in oklab, var(--primary-color), gray 98%);\n  --primary-color-gray-99: color-mix(in oklab, var(--primary-color), gray 99%);\n}\n/*! Theme: tacoma */\n/*# sourceMappingURL=theme-tacoma.css.map */\n"
  },
  {
    "path": "css/dist/theme-wide-legacy.css",
    "content": "@charset \"UTF-8\";\n\n/* ../../css/targets/html/legacy/wide/theme-wide.scss */\n* {\n  box-sizing: border-box;\n}\nbody.pretext {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n}\nbody.pretext[data-font=OS] {\n  font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=RS] {\n  font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n  margin: 0;\n  padding: 0;\n  font-size: 16px;\n}\nbody.pretext {\n  background: #fff;\n}\na {\n  color: inherit;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  text-decoration: none;\n}\nbody.pretext > a.assistive {\n  padding: 6px;\n  position: absolute;\n  top: -40px;\n  left: 0px;\n  color: white;\n  border-right: 1px solid white;\n  border-bottom: 1px solid white;\n  border-bottom-right-radius: 8px;\n  background: transparent;\n  z-index: 10000;\n}\nbody.pretext > a.assistive:focus {\n  top: 0px;\n  background: #BF1722;\n  outline: 0;\n  transition: top 0.1s ease-in, background 0.5s linear;\n}\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n  position: relative;\n}\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n  display: inline;\n}\n.ptx-content pre {\n  margin: 0;\n  padding: 0;\n  border: none;\n}\n.ptx-content pre {\n  border-radius: 0;\n}\n.ptx-content textarea {\n  padding: 0;\n}\n.ptx-content h1,\n.ptx-content h2,\n.ptx-content h3,\n.ptx-content h4,\n.ptx-content h5,\n.ptx-content h6 {\n  margin: 0;\n  font-size: unset;\n}\n.pretext h1,\n.pretext h2,\n.pretext h3,\n.pretext h4,\n.pretext h5,\n.pretext h6 {\n  margin: 0;\n  font-size: unset;\n}\n.ptx-content .heading {\n  line-height: 1.1;\n}\n.ptx-content .para {\n  margin-top: 1.25em;\n  margin-bottom: 0;\n  line-height: 1.35;\n}\n.ptx-content .para.continuation {\n  margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n  margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n  margin-top: 0.75em;\n}\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .para:first-of-type {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n  margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n  margin-top: 1.75em;\n}\n.ptx-content .para.intertext {\n  margin-top: -0.25em;\n  text-indent: 0;\n}\n.ptx-content .para + table {\n  margin-top: 1em;\n}\n.ptx-content table tr td .para + .para {\n  margin-top: 1em;\n}\n.ptx-content table + .para {\n  margin-top: 1.5em;\n}\n.ptx-content .para + figure.figure-like > table {\n  margin-top: 1em;\n}\n.ptx-content .exercise-like .para + ol {\n  margin-top: 0.5em;\n}\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n  margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n  margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n  margin-left: 1.5em;\n}\n.ptx-content .exercisegroup {\n  padding-top: 1.25em;\n  margin-bottom: 1em;\n}\n.ptx-content section .exercisegroup > .heading {\n  font-size: 1.1em;\n  line-height: 1.05em;\n  margin-top: 0.75em;\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n  display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup article.exercise-like .heading {\n  margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n  font-weight: 600;\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n  display: block;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n  margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n  margin-top: 1em;\n}\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n  margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n  margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n  margin-top: 1.25em;\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n  content: \"\\25a0\\2009\";\n  color: #06a;\n  position: relative;\n  top: -1px;\n  right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n  content: \"\\2003\";\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content section > article,\n.ptx-content section > section.paragraphs,\n.ptx-content .paragraphs > article {\n  margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n  margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like {\n  margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n  margin-top: 1em;\n}\n.ptx-content article + .posterior {\n  margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n  margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n  margin-top: 1em;\n}\n.ptx-content section .proof {\n  margin-top: 0.75em;\n}\n.ptx-content section > pre,\n.ptx-content .para + pre {\n  margin-top: 1.25em;\n}\n.ptx-content ol .para + .para,\n.ptx-content ul .para + .para {\n  margin-top: 1em;\n}\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content section .heading,\n.ptx-content article .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n}\n.ptx-content article .exercise-stage {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  color: inherit;\n  font-size: 100%;\n  margin-top: 0.4em;\n}\n.ptx-content article > .heading + .para {\n  margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para,\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n  margin-top: 0.25em;\n}\n.ptx-content section .heading + article {\n  margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n  margin-top: 1em;\n}\n.ptx-content a > .heading {\n  display: inline;\n}\n.ptx-content section > .heading {\n  font-size: 1.75em;\n  line-height: 1.25em;\n  margin-top: 1em;\n  margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n  font-size: 1.5em;\n  line-height: 1.25em;\n  margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .paragraphs .heading + .para {\n  display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n  display: inline;\n}\n.ptx-content .runestone label > .para {\n  display: inline;\n}\n.ptx-content .paragraphs .para .title {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-size: 1.125em;\n  font-weight: 700;\n}\n.ptx-content .paragraphs > .heading {\n  margin-top: 0;\n}\n.ptx-content .paragraphs + .paragraphs {\n  margin-top: 3em;\n}\n.ptx-content article .paragraphs > .heading {\n  font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n  font-size: 1.4em;\n  line-height: 1.15em;\n  margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content section > .heading {\n    font-size: 1.5em;\n    line-height: 1.33em;\n    margin-top: 1em;\n  }\n  .ptx-content section section > .heading {\n    font-size: 1.3em;\n    line-height: 1.15em;\n  }\n  .ptx-content section section section > .heading {\n    font-size: 1.15em;\n    line-height: 1em;\n  }\n}\n.ptx-content .abstract {\n  margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n  font-size: 1.125em;\n  font-weight: 600;\n  line-height: 1.125em;\n  display: inline;\n}\n.ptx-content .abstract > .title::after {\n  content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n  display: inline;\n}\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like > .heading {\n  font-size: 1em;\n  line-height: 1.125em;\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n  display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n  content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n  display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n  font-style: italic;\n  display: block;\n  padding-left: 1em;\n}\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n  content: \"\\2009\";\n}\n.ptx-content .posterior .heading {\n  font-weight: normal;\n  font-size: 1.125em;\n  line-height: 1.125em;\n  margin-top: 0;\n}\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n  padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n  font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n  font-weight: 700;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-bottom: 0;\n}\n.ptx-content li {\n  margin-bottom: 0;\n}\n.ptx-content li .title {\n  font-size: 100%;\n  font-weight: normal;\n  font-style: italic;\n}\n.ptx-content article.theorem-like li .title {\n  font-weight: 600;\n  font-style: normal;\n  font-size: 96%;\n}\n.ptx-content figure {\n  margin-bottom: 0;\n}\n.ptx-content .heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.ptx-content .conclusion {\n  margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n  margin-top: 0.5em;\n}\n.ptx-content ol,\n.ptx-content ul {\n  margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n  margin-top: 0;\n}\n.ptx-content .heading + ol,\n.ptx-content .heading + ul {\n  margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol,\n.ptx-content li > .heading + ul {\n  margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n  margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n  margin-top: 0;\n}\n.ptx-content li {\n  margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content article .para:first-child {\n  margin-top: 0;\n}\n.ptx-content ol ol,\n.ptx-content ol ul,\n.ptx-content ul ol,\n.ptx-content ul ul {\n  margin-top: 0.5em;\n}\n.ptx-content .frontmatter > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content .frontmatter > .heading .title,\n.ptx-content .book > .heading .title {\n  font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle,\n.ptx-content .book > .heading .subtitle {\n  display: block;\n  font-weight: normal;\n  color: #666666;\n  font-size: 0.875em;\n  line-height: 1.42857em;\n  margin-top: 0.35714em;\n}\n.ptx-content .frontmatter .author:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n  margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n  font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n  display: block;\n  margin-top: 2em;\n  text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n  font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n  font-size: 0.9em;\n  margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n  font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n  white-space: pre;\n}\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\nbutton {\n  font: inherit;\n}\n.print-button {\n  position: relative;\n  right: 2px;\n  top: 66px;\n  background-color: LightGreen;\n  z-index: 1;\n  margin-top: -4em;\n  float: right;\n}\n@media print {\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display: none;\n    border: none;\n  }\n  .pretext .ptx-page main.ptx-main {\n    margin-left: 0;\n    left: auto;\n    border: none;\n    box-shadow: none;\n    padding: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content {\n    margin-top: 0;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section {\n    margin-top: 1em;\n  }\n  .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading {\n    margin-top: 0;\n  }\n  .pretext a[href]::after {\n    content: \"\";\n  }\n  .print-button {\n    display: none;\n  }\n}\n@media print {\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    width: 820px;\n    max-width: 820px;\n    font-size: 12.5px;\n  }\n  body.standalone.worksheet {\n    margin: 0;\n  }\n  body.standalone .ptx-content section.worksheet {\n    border: none;\n  }\n  body.standalone.worksheet .ptx-masthead,\n  body.standalone.worksheet .ptx-page-footer {\n    display: none;\n  }\n  body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n    margin: 0;\n  }\n  body.standalone.worksheet .ptx-content section.onepage {\n    max-height: 100%;\n    max-width: 100%;\n    overflow: hidden;\n    page-break-after: always;\n    border: none;\n    page-break-inside: avoid;\n  }\n  body.standalone.worksheet .ptx-content .onepage.lastpage {\n    margin-bottom: -2em;\n    page-break-after: auto;\n  }\n  body.standalone.worksheet.a4 .ptx-content .onepage {\n  }\n  body.standalone.worksheet .ptx-content .onepage div.workspace,\n  body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n    border: none;\n    padding: 0;\n    background: none !important;\n  }\n  body.standalone.worksheet a {\n    color: black;\n  }\n  body.standalone.worksheet .ptx-page .ptx-main {\n    padding: 0;\n  }\n  body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n    padding-bottom: 20px;\n  }\n  @page {\n    margin: 0;\n  }\n}\n.hidden {\n  display: none;\n}\n.ptx-navbar .preferences_menu_holder .active > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n  display: grid;\n  grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n  background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n  width: 4em;\n  justify-content: center;\n  text-align: center;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n[data-ruler=greybar] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: #f3f3f3;\n}\n[data-atmosphere*=dark][data-ruler=greybar] .onelineX:hover {\n  color: #333;\n}\n[data-ruler=lightbox] .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=lightbox] .onelineX:hover {\n  padding-top: 2px;\n  margin-top: -2px;\n  padding-bottom: 2px;\n  margin-bottom: -2px;\n  background-color: inherit;\n}\n[data-ruler=sunrise] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunrise] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 2px solid black;\n  margin-bottom: -2px;\n  position: relative;\n  z-index: 10;\n}\nxxxxxx[data-ruler=sunriseunderline] .onelineX:hover + .onelineX {\n  margin-top: -2px;\n}\n[data-ruler=sunriseunderline] .onelineX:hover ~ .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] .para:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=sunriseunderline] section:hover ~ * .onelineX {\n  background-color: #e3e3e3;\n}\n[data-ruler=underline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  margin-bottom: -1px;\n}\n[data-ruler=lunderline] .onelineX:hover {\n  background-color: inherit;\n  border-bottom: 1px solid black;\n  border-left: 1px solid black;\n  padding-left: 4px;\n  margin-left: -5px;\n  margin-bottom: -1px;\n}\n[data-atmosphere*=dark][data-ruler*=underline] .onelineX:hover {\n  border-bottom: 1.5px solid #ddd;\n  margin-bottom: -1.5px;\n}\n[data-atmosphere*=dark][data-ruler=lunderline] .onelineX:hover {\n  border-left: 1.5px solid #ddd;\n  padding-left: 3.5px;\n  margin-left: -5px;\n}\n.material-symbols-outlined {\n  font-variation-settings:\n    \"FILL\" 0,\n    \"wght\" 400,\n    \"GRAD\" 0,\n    \"opsz\" 24;\n}\n.ptx-footnote {\n  display: inline-block;\n}\n.ptx-footnote[open] {\n  display: contents;\n}\n.ptx-footnote[open] .ptx-footnote__number {\n  visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n  font-size: 0.6rem;\n  content: \"[x]\";\n  visibility: visible;\n  vertical-align: super;\n}\n.ptx-footnote__number {\n  display: inline;\n  cursor: pointer;\n}\n.ptx-footnote__number::marker {\n  content: \"\";\n}\n.ptx-footnote__contents {\n  display: block;\n  font-style: italic;\n  background: var(--knowlbackground);\n  border-radius: 6px;\n  padding: 0px 8px;\n  margin: 4px auto;\n  width: fit-content;\n  max-width: calc(100% - 60px);\n  border: 2px solid var(--knowlborder);\n}\n.ptx-content section .para.credit + .para.credit {\n  margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n  font-weight: 700;\n  margin-right: 0.5em;\n}\n.ptx-content section .para.copyright {\n  margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n  margin-top: 2.5em;\n}\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n  margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n  font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n  font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n  font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n  font-size: 1.25em;\n}\n.ptx-content .bibitem + .bibentry {\n  display: inline-block;\n  width: 90%;\n}\n.ptx-content .bibitem {\n  display: inline-block;\n  vertical-align: top;\n  width: 7%;\n  margin-right: 0;\n}\n.ptx-content figcaption {\n  font-weight: normal;\n}\n.ptx-content figcaption {\n  margin-top: 0.6em;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure.table-like figcaption:first-child {\n  font-style: oblique;\n  margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n  font-style: normal;\n}\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n  font-weight: 700;\n  font-size: inherit;\n}\n.ptx-content figcaption .codenumber:after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n  content: \"\\2002\";\n}\n.ptx-content figcaption code.code-inline {\n  white-space: pre;\n}\n.ptx-content figure.figure > figcaption {\n  margin-top: 1em;\n}\n.ptx-content figure.listing > figcaption + * {\n  margin-top: 0.5em;\n}\n.ptx-content figcaption + .named-list-content {\n  margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n  margin-top: 0.5em;\n}\n.ptx-content .definition-like .para > .emphasis {\n  font-weight: 700;\n}\n.ptx-content em.alert {\n  font-weight: bold;\n}\n.unprocessed {\n  padding: 8px;\n  background-color: rgb(255, 230, 230);\n}\n.unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(255, 200, 255);\n}\n.unprocessed .unprocessed .unprocessed {\n  margin: 8px;\n  background-color: rgb(205, 205, 255);\n}\n.ptx-content section.introduction + section {\n  margin-top: 2em;\n}\n.ptx-content {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section {\n  display: inline-block;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n  max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n  max-width: unset;\n}\n.ptx-content .runestone > .parsons {\n  width: 60em;\n  max-width: unset;\n}\n.ptx-content .runestone .parsons {\n  margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: max-content;\n  padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n  margin-right: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: 660px;\n}\n.runestonebustmenu {\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n.runestonebustmenu .dropdown-content {\n  position: absolute;\n  right: 2em;\n  left: unset;\n  top: 1em;\n}\n@media screen and (max-width: 800px) {\n  nav .dropdown .dropdown-content {\n    top: unset;\n    bottom: 36px;\n  }\n  .activecode-toggle {\n    display: none;\n  }\n}\n.pretext .navbar .dropdown {\n  height: 35px;\n}\n.ptx-content section section + section {\n  margin-top: 3em;\n}\n.ptx-content .sidebyside > .para,\n.ptx-content .sidebyside > figure,\n.ptx-content .sidebyside > img,\n.ptx-content .sidebyside > table,\n.ptx-content .sidebyside > tabular,\n.ptx-content .sidebyside > section,\n.ptx-content .sidebyside > .paragraphs {\n  display: inline-block;\n  margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n  overflow-x: auto;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .sidebyside figcaption {\n  padding-left: 1em;\n  padding-right: 0;\n  padding-bottom: 0;\n  margin: 0.75em 0 0 0;\n}\n.ptx-content figcaption {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .sidebyside > .para {\n  width: 32%;\n  vertical-align: top;\n}\n.ptx-content .sidebyside > .para.left,\n.ptx-content .sidebyside > .para.middle,\n.ptx-content .sidebyside > .para.right {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside > .para + img {\n  vertical-align: middle;\n}\n.ptx-content .sidebyside .sbsrow .sbsheader {\n  margin-top: 0;\n}\n.ptx-content .sbsgroup {\n  width: 100%;\n}\n.ptx-content .sidebyside {\n  width: 100%;\n}\n.ptx-content .sbsrow {\n  display: flex;\n  justify-content: space-between;\n}\n.ptx-content .sbsheader {\n  text-align: center;\n  justify-content: center;\n  font-size: 1em;\n}\n.ptx-content .sbspanel:empty {\n  height: 10em;\n  background-color: rgb(221, 221, 255);\n}\n.ptx-content .sbspanel {\n  display: flex;\n  flex-direction: column;\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {\n  justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n  justify-content: center;\n}\n.ptx-content .sbspanel.bottom {\n  justify-content: flex-end;\n}\n.ptx-content .sbspanel > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content .fixed-width {\n  align-items: center;\n}\n.ptx-content .sbscaption {\n  justify-content: center;\n}\n.ptx-content table {\n  border-spacing: 0;\n}\n.ptx-content table {\n  border-collapse: collapse;\n}\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n  margin-top: 1.5em;\n}\n.ptx-content table tr td,\n.ptx-content table tr th {\n  padding-top: 2px;\n  padding-bottom: 2px;\n  padding-left: 5px;\n  padding-right: 5px;\n}\n.ptx-content table tr td {\n  font-size: 90%;\n}\n.ptx-content table tr td.l {\n  text-align: left;\n}\n.ptx-content table tr td.c {\n  text-align: center;\n}\n.ptx-content table tr td.r {\n  text-align: right;\n}\n.ptx-content table tr td.j {\n  text-align: justify;\n}\n.ptx-content table tr td.lines {\n  white-space: nowrap;\n}\n.ptx-content table tr td.t {\n  vertical-align: top;\n}\n.ptx-content table tr td.b {\n  vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n  vertical-align: middle;\n}\n.ptx-content table tr td.vv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n}\n.ptx-content table tr td.vcv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vcvv {\n  border-left: 2px solid #000;\n  border-right: 4px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.vlv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vrv {\n  border-left: 2px solid #000;\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.rv {\n  border-right: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.vr {\n  border-left: 2px solid #000;\n  text-align: right;\n}\n.ptx-content table tr td.lv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vl {\n  border-left: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.cv {\n  border-right: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.Xv {\n  border-right: 2px solid #000;\n  text-align: left;\n}\n.ptx-content table tr td.vc {\n  border-left: 2px solid #000;\n  text-align: center;\n}\n.ptx-content table tr td.hline {\n  padding: 0;\n}\n.ptx-content table tr td.hlinethick {\n  padding-left: 0px;\n  padding-right: 0px;\n}\n.ptx-content table tr td.hline hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 1px solid rgb(0, 0, 0);\n}\n.ptx-content table tr td.hlinethick hr {\n  margin-top: 0;\n  margin-bottom: 0;\n  margin-left: -1px;\n  margin-right: -1px;\n  border: 2px solid rgb(0, 0, 0);\n}\n.center table {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n  border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n  border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n  border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n  border-bottom: none;\n}\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n  border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n  border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n  border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n  border-top: none;\n}\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n  border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n  border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n  border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n  border-right: none;\n}\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n  border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n  border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n  border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n  border-left: none;\n}\n.ptx-content table tr td img {\n  max-width: 200px;\n  margin-right: 30px;\n}\n.ptx-content table.notation-list tr th {\n  text-align: left;\n}\n.ptx-content table.notation-list tr td {\n  text-align: left;\n  vertical-align: top;\n}\n.ptx-content table.notation-list tr th {\n  margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n  margin-left: 1em;\n}\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n  padding-left: 0.8em;\n  padding-right: 0.8em;\n}\n.ptx-content table tr td span.decimal {\n  float: left;\n  text-align: right;\n}\n.ptx-content table tr.header-vertical th {\n  writing-mode: vertical-rl;\n  padding-left: 2em;\n}\n.ptx-content table + article {\n  margin-top: 1em;\n}\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof {\n  margin-top: 0.3em;\n}\n.ptx-content .hidden-knowl-wrapper article {\n  display: inline;\n}\n.apretext-content figure.figure-like {\n  overflow: auto;\n}\n.ptx-content figure.figure-like {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content figure.table-like {\n  margin-left: 30px;\n  margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n  margin-right: 0;\n}\n.ptx-content a > tt {\n  font-size: 110%;\n}\n.ptx-content section .videolink a:link {\n  background-size: 0;\n}\n.ptx-content .playvideo {\n  cursor: pointer;\n}\n.ptx-content .videobig {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 85%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: relative;\n  top: 100px;\n  cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n}\n.ptx-content .knowl .videobig {\n  display: none;\n}\n.ptx-content .videosmall {\n  padding-right: 0.3em;\n  padding-left: 0.3em;\n  font-size: 80%;\n  background-color: rgba(255, 255, 100, 0.9);\n  display: inline-block;\n  position: absolute;\n  left: -250px;\n  z-index: 1001;\n  cursor: zoom-out;\n}\n.ptx-content .exercise-like ol li table {\n  margin-bottom: 0.5em;\n}\n.ptx-content .exercise-like > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n  margin-top: 0.5em;\n}\n.ptx-content section.worksheet > .heading > .codenumber {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n  display: inline-block;\n  max-width: 70%;\n}\n.ptx-content .heading .print-links {\n  display: inline-block;\n  float: right;\n  vertical-align: top;\n  width: 19%;\n  text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n  display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n  display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n  display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n  background: none;\n  color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n  border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n  padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n  margin: 0;\n}\n.ptx-content .appendix .heading > .type {\n  display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n  display: none;\n}\n.ptx-content .heading .print-links > a {\n  font-family: \"Open Sans\";\n  font-size: 0.6em;\n  font-weight: bold;\n  padding: 0.1em 0.2em;\n  background: #ffa;\n  border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n  background: #eef;\n  color: #9b1c2c;\n  border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n  margin-left: 0.25em;\n}\n.ptx-content .autopermalink {\n  position: absolute;\n  display: inline-block;\n  top: 3px;\n  left: -1.9em;\n  font-size: 85%;\n  color: #a00;\n  opacity: 0.05;\n  margin-top: 0.1em;\n}\n.ptx-content li > .para > .autopermalink {\n  left: -3.4em;\n  top: 0;\n}\n.ptx-content .autopermalink a {\n  color: #a00;\n}\n.ptx-content .autopermalink > * {\n  padding-left: 0.2em;\n  padding-right: 0.2em;\n}\n:target {\n  scroll-margin-top: 45px;\n}\n.ptx-content .para > .autopermalink {\n  margin-top: 0.2em;\n}\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n  margin-top: 0.3em;\n}\n.ptx-content .figure-like > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .subsubsection > .autopermalink {\n  margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n  margin-top: 1.4em;\n}\n.ptx-content .autopermalink:hover {\n  opacity: 1;\n  background: #eeddff;\n}\n.ptx-content .permalink-alert {\n  position: absolute;\n  top: -3em;\n  left: 5em;\n  padding: 1.5em 2em;\n  background: #fff;\n  border: 3px solid blue;\n  z-index: 2001;\n}\n.navbar .indexnav {\n  position: absolute;\n  top: 46px;\n  right: 0;\n}\n.mininav {\n  float: left;\n  padding-top: 0.7ex;\n  padding-left: 1ex;\n}\n.indexjump {\n  margin-left: 1.5ex;\n  margin-top: 0.2ex;\n  padding-top: 0;\n  float: left;\n  line-height: 0.95;\n}\n.indexjump a {\n  padding-left: 2.5px;\n  padding-right: 0.5px;\n  width: 2.5ex;\n  margin-right: -1px;\n  color: inherit;\n  font-size: 80%;\n  text-align: center;\n}\n.indexjump a::after {\n  content: \"\";\n  display: inline-block;\n}\n.indexjump a:nth-of-type(14) {\n  padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n  padding-right: 10px;\n}\n.indexjump a:hover {\n  background: #eeaaff;\n}\n.ptx-content .indexitem {\n  margin-top: 2px;\n}\n.ptx-content .subindexitem {\n  margin-left: 2em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .subsubindexitem {\n  margin-left: 3.5em;\n  font-size: 95%;\n  margin-top: -1px;\n}\n.ptx-content .indexknowl {\n  margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl {\n  margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n  margin-left: 2em;\n}\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n  margin-left: 1em;\n  margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n  margin-right: 0.25em;\n  font-style: italic;\n}\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .indexitem .indexknowl {\n  font-size: 90%;\n}\n.ptx-content .indexitem [data-knowl],\n.ptx-content .subindexitem [data-knowl],\n.ptx-content .indexitem [data-knowl]:hover {\n  padding-right: 2px;\n  padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover,\n.ptx-content .indexknowl .active[data-knowl] {\n  margin-left: 2em;\n}\n.ptx-content .subindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n  font-size: 95%;\n}\n.ptx-content .indexletter {\n  margin-top: 1.5em;\n}\n.ptx-content .hidden-knowl-wrapper .heading {\n  display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n  display: inline;\n}\n.ptx-content .cols2 .knowl-output,\n.ptx-content .cols3 .knowl-output,\n.ptx-content .cols4 .knowl-output,\n.ptx-content .cols5 .knowl-output,\n.ptx-content .cols5 .knowl-output {\n  width: 100%;\n}\n.ptx-content .cols2 + *,\n.ptx-content .cols3 + *,\n.ptx-content .cols4 + *,\n.ptx-content .cols5 + *,\n.ptx-content .cols6 + * {\n  clear: both;\n}\n.ptx-content .cols2::after,\n.ptx-content .cols3::after,\n.ptx-content .cols4::after,\n.ptx-content .cols5::after,\n.ptx-content .cols6::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n  margin-bottom: 1.5em;\n}\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n  padding-bottom: 0em;\n}\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n  clear: left;\n}\n.ptx-content .exercise-like ol.cols2 li {\n  margin-top: 0.5em;\n}\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n  float: left;\n}\n.ptx-content .incontext {\n  display: block;\n  font-size: 85%;\n  text-align: right;\n}\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n.ptx-content .emphasis {\n  font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n  font-weight: bold;\n}\n:target {\n  animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n@-moz-keyframes target-fade {\n  0% {\n    background-color: rgba(120, 0, 120, 0.3);\n  }\n  100% {\n    background-color: inherit;\n    opacity: 1;\n  }\n}\n.ptx-content .autoterm [knowl],\n.ptx-content .autoterm [knowl]:after {\n  font-weight: inherit;\n  color: inherit;\n  padding: 0;\n  margin-bottom: inherit;\n  border-bottom: inherit;\n  border-bottom-color: inherit;\n}\n.ptx-content .autoterm [knowl]:hover {\n  background: #ffddff;\n  border-top: 2px dotted purple;\n  border-bottom: 1px dotted red;\n  border-top-left-radius: 0;\n  border-top-right-radius: 0;\n}\n.ptx-content ol li.custom-list-style-type {\n  list-style-type: none;\n}\n.ptx-content ol li.custom-list-style-type:before {\n  content: attr(label) \"\\a0\\a0\";\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n  list-style-type: none;\n}\n.ptx-content ol.decimal {\n  list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n  list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n  list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n  list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n  list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n  list-style-type: disc;\n}\n.ptx-content ul.square {\n  list-style-type: square;\n}\n.ptx-content ul.circle {\n  list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n  list-style-type: none;\n}\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n  clear: both;\n}\n.ptx-content dl {\n  margin-top: 1em;\n  margin-left: 0;\n  margin-bottom: 0;\n  overflow: hidden;\n}\n.ptx-content dl dd {\n  margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n  margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n  margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n  margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n  margin-top: 0;\n}\n.ptx-content dl dd .para {\n  margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child,\n.ptx-content dl dd > .para:first-child {\n  margin-top: 0;\n}\n.ptx-content dl > dt {\n  font-weight: bold;\n  max-width: 55ex;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: left;\n  text-align: right;\n  width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n  text-align: left;\n}\n.ptx-content dl.glossary dd {\n  margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n  margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n  clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n  content: \"\";\n  display: block;\n  height: 1em;\n  clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n  height: 0;\n}\n.ptx-content dl.description-list dt {\n  float: left;\n  clear: both;\n  margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n  width: unset;\n  max-width: 55ex;\n  text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n  margin-left: 0;\n  margin-top: 0;\n  width: 31em;\n  max-width: calc(100% - 12ex);\n  float: right;\n  clear: right;\n}\n.ptx-content dl.description-list + * {\n  clear: both;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n.ptx-content dl.description-list dl dt {\n  width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n  margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n  margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n  font-family: MJXZERO !important;\n  font-style: normal !important;\n}\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n  width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n  display: inline;\n}\na.mjx-svg-href {\n  fill: inherit;\n  stroke: inherit;\n}\n.displaymath + .para {\n  margin-top: 0;\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n    position: relative;\n    overflow-x: auto;\n  }\n  .ptx-content .mjx-chtml.MJXc-display {\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n.ptx-content dd .displaymath:last-child .MJXc-display {\n  margin-bottom: 0;\n}\n.floatnav {\n  margin-top: 8px;\n  margin-left: 50px;\n}\n.floatnav a {\n  padding-left: 3px;\n  margin-right: -1px;\n  color: inherit;\n}\n.ptx-content a .heading .mjx-chtml {\n  z-index: 1;\n  background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after,\n.ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after,\n.ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n  right: 7px;\n}\n.floatnav a:hover {\n  background: #eeaaff;\n}\n.ptx-content .unselectable {\n  user-select: none;\n}\n.ptx-content .latex-logo {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n.ptx-content .latex-logo .A {\n  font-size: 75%;\n  text-transform: uppercase;\n  vertical-align: 0.5ex;\n  margin-left: -0.48em;\n  margin-right: -0.2em;\n}\n.ptx-content .latex-logo .E {\n  vertical-align: -0.5ex;\n  text-transform: uppercase;\n  margin-left: -0.18em;\n  margin-right: -0.12em;\n}\n.ptx-content .fillin {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n  display: inline-block;\n  border-bottom-style: solid;\n  border-width: 1px;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n  display: inline-block;\n  border: none;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  margin-bottom: -0.25em;\n  outline: 1px solid black;\n  height: 1.3em;\n}\n.ptx-content .fillin.shade {\n  display: inline-block;\n  border: none;\n  margin-right: 0.1em;\n  margin-left: 0.1em;\n  margin-bottom: -0.25em;\n  background-color: #eee;\n  height: 1.3em;\n}\n.ptx-content .hiddenproof > a > .heading {\n  font-style: italic;\n  font-weight: normal;\n}\n.ptx-content .MJXc-display,\n.ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n  background-image:\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      white,\n      white),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 255, 0));\n  background-position:\n    left center,\n    right center,\n    left center,\n    right center;\n  background-repeat: no-repeat;\n  background-color: inherit;\n  background-size:\n    20px 100%,\n    20px 100%,\n    10px 100%,\n    10px 100%;\n  background-attachment:\n    local,\n    local,\n    scroll,\n    scroll;\n}\n.ptx-content .runestone .code-box {\n  background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      var(--knowlbackground),\n      var(--knowlbackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--knowlbackground));\n}\n.ptx-content .knowl-output.original .MJXc-display {\n  background: inherit;\n}\n.ptx-content .assemblage-like .MJXc-display {\n  background-image:\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      var(--assemblagebackground),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      var(--assemblagebackground));\n}\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      #fffff5,\n      #fffff5),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 255, 243, 0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n  background-image: none;\n  background-image:\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      #fff5fe,\n      #fff5fe),\n    linear-gradient(\n      to right,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0)),\n    linear-gradient(\n      to left,\n      rgba(0, 0, 0, 0.25),\n      rgba(255, 243, 254, 0));\n}\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n  margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n  margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n  border-left: 1px solid #0f0;\n  padding-left: 0.35em;\n  background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n  border-left: 2px solid #00f;\n  padding-left: 0.35em;\n  background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n  border-left: 3px solid #c0c;\n  padding-left: 0.5em;\n  background: #fef;\n}\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n  padding-top: 0.25em;\n}\n.ptx-content .exercisegroup > .conclusion {\n  margin-left: 1.5em;\n}\n.ptx-content .exercise-like .introduction {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n  display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n  content: \"\";\n  display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n  content: \"\";\n  display: block;\n  margin-top: 0.25em;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols3,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols4,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols5,\n.ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n  width: 100%;\n  display: inline-flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  align-items: flex-start;\n  align-content: flex-start;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n  display: inline;\n}\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n  display: block;\n}\n.ptx-content .exercisegroup .cols1 > article.exercise-like {\n  flex-basis: calc(100% - 2em);\n}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {\n  flex-basis: calc(50% - 2em);\n}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {\n  flex-basis: calc(33.33% - 2em);\n}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {\n  flex-basis: calc(25% - 2em);\n}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {\n  flex-basis: calc(20% - 2em);\n}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {\n  flex-basis: calc(16.66% - 2em);\n}\n.ptx-content .mathword {\n  white-space: nowrap;\n}\n.ptx-content .unit,\n.ptx-content .quantity {\n  white-space: nowrap;\n  word-spacing: -0.25ex;\n  margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n  word-spacing: normal;\n}\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n  overflow-x: auto;\n}\n.ptx-content .code-inline {\n  font-size: 1em;\n  white-space: pre;\n  color: inherit;\n  background: #eeeeee;\n  border: 1px solid #dddddd;\n  padding: 0.0625em 0.25em;\n  margin-left: 0.2em;\n  margin-right: 0.2em;\n  border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n  margin-left: 0;\n}\n.ptx-content .title .code-inline {\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content a .code-inline {\n  background: #f6f6f6;\n}\n.ptx-content .kbdkey {\n  background: #f1f1f1;\n  border: 1px solid #dddddd;\n  border-radius: 3px;\n  padding: 1px 2px 0 2px;\n  vertical-align: 0.1em;\n  font-size: 110%;\n  line-height: 1;\n  box-shadow: 2px 2px grey;\n  display: inline-block;\n  margin-right: 3px;\n}\n.ptx-content .kbdkey {\n  color: #333;\n}\n.ptx-content .sagecell_sessionOutput pre {\n  font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .sagecell {\n  white-space: normal;\n  margin-top: 1.25em;\n  margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n  margin: 0;\n}\n.ptx-content .sagecell_evalButton {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n.ptx-content .booktitle {\n  font-style: oblique;\n}\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n  font-size: 1.25em;\n}\n.ptx-content a .heading {\n  white-space: normal;\n}\n.ptx-content .solutions > a,\n.ptx-content .solutions > a:hover,\n.ptx-content .solutions > a.active,\n.ptx-content .instructions > a,\n.ptx-content .instructions > a:hover,\n.ptx-content .instructions > a.active {\n  display: inline-block;\n  margin-right: 1.5em;\n}\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n  content: \"\\25ba\";\n  font-size: 70%;\n  color: #06a;\n  position: relative;\n  top: -2px;\n  right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n  content: \"\\25bc\";\n  animation-name: solutiontriangle;\n  animation-duration: 3s;\n  animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n  left: 12px;\n}\n@keyframes solutiontriangle {\n  from {\n    content: \"\\25ba\";\n  }\n  to {\n    content: \"\\25bc\";\n  }\n}\n.ptx-content section.solutions {\n  font-size: 90%;\n  padding-left: 1em;\n  border-left: 1em solid #eeeeee;\n}\n.ptx-content.ptx-content > section.solutions:first-child {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n  margin-top: 1em;\n  padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n  font-size: 100%;\n  font-weight: 700;\n  margin-right: 0.25em;\n  display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n  display: inline;\n}\n.ptx-content article > figure:first-child {\n  margin-top: 0;\n}\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n  padding-top: 1em;\n}\n.ptx-content img {\n  display: inline-block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img.cs {\n  display: block;\n  margin-top: 20px;\n  margin-bottom: 20px;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content img:not(.cs) {\n  max-width: 650px;\n}\n.ptx-content .tabular-box.natural-width table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content figure img + img {\n  margin-top: 30px;\n}\n.ptx-content div.center img {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content div.center + div.center > img {\n  margin-top: 60px;\n}\n.ptx-content div.center > img + img {\n  margin-top: 60px;\n}\n.ptx-content figure table {\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .caption {\n  margin-top: 10px;\n  margin-left: auto;\n  margin-right: auto;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure.wrap img {\n  width: 250px;\n}\n.ptx-content figure.wrap {\n  float: right;\n  margin-right: 0;\n  margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n  float: right;\n  margin: 0;\n}\n.ptx-content figure figcaption.wrap {\n  margin: 10px;\n  font-size: 100%;\n  text-align: center;\n}\n.ptx-content figure,\n.ptx-content .image-box {\n  margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n  margin-top: 1em;\n}\n.ptx-content figure .image-box {\n  margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n  margin-top: 0;\n}\n.ptx-content .image-box img,\n.ptx-content img.contained,\n.ptx-content .sbspanel img {\n  width: 100%;\n  height: auto;\n}\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n  cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n  border: 1px solid #666;\n  box-shadow: 4px 6px 4px #999;\n  cursor: zoom-out;\n  max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n  width: 100%;\n  position: absolute;\n  z-index: 1001;\n  overflow-x: visible;\n}\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n  position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n  margin-top: 0.75em;\n}\n.ptx-content .audio {\n  width: 100%;\n}\n.caption .heading {\n  font-weight: bold;\n}\n.caption .counter {\n  font-weight: bold;\n}\n.ptx-content div.quote {\n  padding-left: 40px;\n  padding-right: 10px;\n  margin-bottom: 1em;\n}\n.minipage + .minipage {\n  display: inline-block;\n}\n.ptx-content code.inline {\n  background: none;\n  border: none;\n}\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n  line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n  margin-top: 1em;\n}\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n  content: \" \";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 3em;\n}\n.ptx-content pre[data-line].program,\n.ptx-content pre[data-line].code-block {\n  padding-left: 2.5em;\n}\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n  margin-left: -5em;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  padding-left: 3.5em;\n  overflow: visible;\n}\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n  margin-left: -7em;\n}\n.ptx-content pre[data-line].line-numbers code {\n  padding-top: 0em;\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n  margin-top: 0em;\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n  margin-top: 0.6em;\n}\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n  margin-top: 0;\n  padding-left: 15px;\n  border-left: 1px solid #aaa;\n  font-size: 93%;\n  overflow: auto;\n}\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n  content: \"\";\n  font-size: 50%;\n  border-top: 1px solid #aaa;\n  display: block;\n  margin-right: auto;\n  margin-left: -15px;\n  width: 2.5em;\n}\n.ptx-content .objectives {\n  margin-bottom: 1.25em;\n}\n.ptx-content ol > li {\n  padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li,\n.ptx-content ul.cols2 > li {\n  width: calc(49% - 1.75em);\n  min-width: 190px;\n}\n.ptx-content ol.cols3 > li,\n.ptx-content ul.cols3 > li {\n  width: calc(33% - 1.25em);\n  min-width: 160px;\n}\n.ptx-content ol.cols4 > li,\n.ptx-content ul.cols4 > li {\n  width: calc(24.5% - 1.25em);\n  min-width: 100px;\n}\n.ptx-content ol.cols5 > li,\n.ptx-content ul.cols5 > li {\n  width: calc(19.5% - 0.75em);\n  min-width: 90px;\n}\n.ptx-content ol.cols6 > li,\n.ptx-content ul.cols6 > li {\n  width: calc(16.3% - 0.5em);\n  min-width: 80px;\n}\n.ptx-content ul.cols2 > li:nth-child(odd),\n.ptx-content ol.cols2 > li:nth-child(odd) {\n  margin-right: 2em;\n}\n.ptx-content .cols2 ol,\n.ptx-content .cols3 ol,\n.ptx-content .cols4 ol,\n.ptx-content .cols5 ol,\n.ptx-content .cols6 ol {\n  padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n  margin-top: 1em;\n}\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n  float: none !important;\n  padding-top: 0.5em;\n}\n.ptx-content .solution ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .solution ol li > .para:first-child,\n.ptx-content .solution ol li > .displaymath:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n  margin-top: 0;\n}\n.ptx-content .exercise-like ol li {\n  margin-top: 1em;\n  padding-left: 0.5em;\n}\n.ptx-content .exercise-like > .cols2 > li {\n  width: calc(49% - 2.5em);\n}\n.ptx-content .exercise-like > .cols3 > li {\n  width: calc(33% - 2.5em);\n}\n.ptx-content .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2.5em);\n}\n.ptx-content .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2.5em);\n}\n.ptx-content .knowl .exercise-like > .cols2 > li {\n  width: calc(49% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols3 > li {\n  width: calc(33% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols4 > li {\n  width: calc(24.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols5 > li {\n  width: calc(19.5% - 2em);\n}\n.ptx-content .knowl .exercise-like > .cols6 > li {\n  width: calc(16.3% - 2em);\n}\n.ptx-content .exercise-like ol li > .para:first-child {\n  vertical-align: top;\n  display: inline-block;\n  margin-top: 0;\n}\n.ptx-content .contributor .contributor-name {\n  font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n  font-size: 88%;\n  font-style: italic;\n  margin-left: 3ex;\n}\n.ptx-content .contributor {\n  margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n  margin-top: 1.5ex;\n}\n.ptx-content .contributor + .para {\n  margin-top: 3ex;\n}\n.ptx-content .frontmatter .contributors,\n.ptx-content .book .contributors {\n  text-align: center;\n  font-style: normal;\n}\n.pretext .searchwrapper {\n  max-width: 900px;\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  margin-bottom: 39px;\n}\n.pretext .searchwrapper .cse .gsc-control-cse,\n.searchwrapper .gsc-control-cse {\n  padding: 0;\n  border: none;\n  width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2,\n.searchwrapper input.gsc-search-button-v2 {\n  padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n  margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n  padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n  padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n  height: 3ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n  font-size: 12px;\n}\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {\n  color: #090;\n}\n.ptx-content .image-archive {\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-top: 0.75em;\n  padding-bottom: 0.25em;\n  text-align: center;\n}\n.ptx-content .image-archive > a {\n  display: inline-block;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n  font-family: monospace;\n}\n.ptx-content iframe {\n  margin: 0;\n  border: none;\n  box-sizing: border-box;\n}\n.ptx-content .times-sign {\n  font-size: larger;\n  vertical-align: -0.15ex;\n}\n.ptx-content article.notranslate {\n  margin-top: 0;\n}\n.ptx-content article.exercise-like > .exercise-like {\n  margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n  margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content article.example-like > .heading + .introduction {\n  display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n  display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n  margin-top: 1.25em;\n}\n.ptx-content .taxon {\n  font-style: italic;\n}\n.ptx-content .sageanswer {\n  font-family: monospace;\n  white-space: pre;\n  margin-left: 3em;\n  margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n  display: inline-block;\n  vertical-align: top;\n  margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n  display: inline-block;\n  vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n  padding-bottom: 5px;\n  padding-left: 6px;\n}\n.ptx-content .hidden-content,\n.pretext .hidden-content {\n  display: none;\n}\n.ptx-content hr.ptx-pagebreak {\n  width: 30em;\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 2em;\n  margin-top: 0;\n  height: 4em;\n  border: 0;\n  border-bottom: 1px dashed #ccc;\n}\n.ptx-content hr.ptx-pagebreak:after {\n  content: \"page\";\n  display: inline-block;\n  position: relative;\n  top: 4em;\n  font-size: 80%;\n  padding: 0 0.25em;\n  background: white;\n}\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n  display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n  margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n  margin-top: 0;\n}\n.ptx-content meta {\n  display: none;\n}\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:hover .codenumber,\n.ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n.ptx-content .summary-links {\n  margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n  margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n  list-style-type: none;\n}\n.ptx-content .summary-links li {\n  margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n  font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a,\n.ptx-content .summary-links a:link,\n.ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n  margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n  display: none;\n}\nbody.standalone .ptx-content .worksheet {\n  padding: 40px 0 45px 0;\n  border: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage {\n  padding: 40px 45px 45px 55px;\n  border-bottom: 2px solid grey;\n  margin: 0;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  border-top: 2px solid grey;\n}\nbody.standalone .ptx-content .onepage.firstpage {\n  padding-top: 0;\n}\nbody.standalone .ptx-content .onepage.lastpage {\n  padding-bottom: 0;\n  border-bottom: none;\n}\nbody.standalone .ptx-content .worksheet > *:last-child {\n  padding-bottom: 0 !important;\n}\n.ptx-content .onepage + .onepage {\n  margin-top: 2.5em;\n  padding-top: 1.5em;\n  border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n  content: \"pagebreak\";\n  text-align: center;\n  margin-left: 40%;\n  padding-left: 1em;\n  padding-right: 1em;\n  position: absolute;\n  top: -0.8em;\n  font-size: 80%;\n  font-style: italic;\n  background: white;\n}\nbody.standalone .ptx-content .onepage + .onepage {\n  margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n  content: none;\n}\nbody.standalone .ptx-content .onepage article {\n  padding-left: 0;\n  border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n  all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n  margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n  margin-top: 1.25em;\n}\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  padding-left: 1.25em;\n  border-left: 1px solid grey;\n  margin-left: -1.25em;\n  z-index: -100;\n}\nbody.standalone.worksheet .ptx-content section article.task {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n  font-weight: normal;\n}\nbody.standalone .autopermalink {\n  display: none;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n  border: 2px dotted grey;\n  background: #f3fff3;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n  border: 2px dotted grey;\n  background: #ffe;\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n  border: 15px solid;\n  border-image:\n    repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px) 20;\n  background: yellow;\n}\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n  margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like {\n  border: none;\n  padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n  margin-top: -0.5em;\n  padding: 0;\n  margin: 0;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n  margin-left: 55px;\n  margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n  display: inline;\n}\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n  left: 0 !important;\n  top: 0 !important;\n}\n.ptx-content a.url,\n.ptx-content a.external {\n  color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n  background: #ffd;\n}\n.ptx-content .poem {\n  margin-top: 1.5em;\n}\n.ptx-content .poem {\n  display: table;\n  margin-top: 1.5em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 0;\n  width: auto;\n  max-width: 90%;\n}\n.ptx-content .poem > .heading {\n  display: block;\n  text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n  content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n  font-weight: bold;\n  font-size: 1.2em;\n  line-height: 1.2em;\n}\n.ptx-content .poem .author {\n  font-style: italic;\n  margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n  text-align: left;\n}\n.ptx-content .poem .author.center {\n  text-align: center;\n}\n.ptx-content .poem .author.right {\n  text-align: right;\n}\n.ptx-content .poem .stanza > .heading {\n  text-align: center;\n  font-weight: bold;\n  font-size: 1em;\n  line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n  margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n  margin-top: 0.2em;\n}\n.ptx-content .poem .line.left {\n  text-align: left;\n  margin-left: 4em;\n  text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n  text-align: center;\n}\n.ptx-content .poem .line.right {\n  text-align: right;\n}\n.ptx-content .poem .tab {\n  margin-left: 2em;\n}\n.calculator-container {\n  position: fixed;\n  z-index: 100;\n  bottom: 5px;\n  right: 5px;\n  width: 253px;\n  height: 460px;\n}\n@media screen and (max-width: 800px) {\n  .calculator-container {\n    bottom: 50px !important;\n  }\n}\n.toolBPanel {\n  overflow: hidden !important;\n}\n.toolBPanel:hover {\n  overflow: auto !important;\n}\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n  font-size: 300%;\n}\n.ptx-content .wwprob table.attemptResults {\n  margin-left: 2em;\n  background: #efefef;\n  padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n  margin-top: 1em;\n}\n.ptx-content .wwprob .problem-main-form {\n  margin-top: 1em;\n  background: #eeeeff;\n  padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n  background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n  background: #f99;\n}\n.ptx-content .wwprob tr th {\n  text-align: center;\n  padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n  text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n  background: #fff;\n}\n.ptx-content .wwprob ol,\n.ptx-content .wwprob ul {\n  margin-top: 0.75em !important;\n}\n.ptx-content .wwprob .problem {\n  background: #fdfdfd;\n}\n.ptx-content .wwprob .problem a {\n  text-decoration: none;\n}\n.ptx-content .wwprob #footer {\n  font-size: 70%;\n  text-align: right;\n}\n.ptx-content .marginresource {\n  position: relative;\n  height: 0;\n  left: 40em;\n  top: 1em;\n}\n.ptx-content .marginresource a {\n  color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n  border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n  font-size: 200%;\n  margin-right: 1em;\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n  display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n  display: block;\n  margin-left: 2em;\n}\n.collectedworks .knowl-output {\n  border: 12px solid #D6E3FF;\n  background: none repeat scroll 0% 0% #FAFCFF;\n  border-radius: 4px;\n  margin-bottom: 1.25em;\n}\n.collectedworks .subjectwork {\n  max-width: 750px;\n}\n.collectedworks .bib {\n  margin-bottom: 1em;\n}\n.collectedworks .bibitem + .bibentry {\n  display: inline;\n}\n.collectedworks .bibitem {\n  display: inline;\n  font-weight: bold;\n  margin-right: 1em;\n}\n.collectedworks .work .title a {\n  text-decoration: none;\n  color: #009;\n}\n.iconlegend {\n  position: absolute;\n  margin-top: 0.5em;\n  top: 0;\n  left: 920px;\n  line-height: 1;\n}\n.iconlegend .icon_name {\n  font-size: 90%;\n  margin-right: 1em;\n}\n.icongroup + .icongroup {\n  margin-left: 1em;\n}\nlabel.webwork {\n  display: inline-flex;\n  flex-direction: column;\n}\nlabel.correct .status {\n  background-color: #a0f0a0;\n}\nlabel.partly-correct .status {\n  color: #ffcc66;\n}\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n  content: \" \";\n}\n.feedback {\n  word-wrap: break-word;\n}\nlabel.correct .feedback {\n  background-color: #00ffcc;\n}\nlabel.partly-correct .feedback {\n  color: #ffcc66;\n}\nlabel.incorrect .feedback {\n  color: #e07070;\n}\n.ptx-content .webwork-button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n  cursor: pointer;\n  background-color: #a0a0a0;\n  border: 1px solid #999;\n}\n.webwork img,\n.webwork + .knowl-output img {\n  max-width: 100%;\n}\n.ptx-content .exercise-wrapper form button {\n  border-radius: 3px;\n  padding: 0px 3px 0px 3px;\n  border: 1px solid #999;\n  color: black;\n  background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n  width: 22px;\n  height: 22px;\n  background-image: url(https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico);\n  background-size: contain;\n  position: absolute;\n  right: -35px;\n}\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n  margin-top: 0.5em;\n}\n.ptx-content .bottom {\n  position: unset;\n}\n.ptx-content .rsdraggable {\n  font-size: 100%;\n}\n.ptx-content .exercise-wrapper form button:hover {\n  cursor: pointer;\n  background-color: #e0e0ff;\n  border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n  background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n  margin-left: 0.8em;\n}\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n  display: inline-block;\n  vertical-align: top;\n  width: 100%;\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n  width: 100%;\n}\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n  margin-top: 0;\n  display: inline;\n}\n.ptx-content .heading + .exercise-wrapper {\n  display: inline-block;\n  max-width: 95%;\n  width: 100%;\n}\n.ptx-content .cols2 .heading + .exercise-wrapper {\n  width: auto;\n}\n@media screen and (max-width: 600px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n  .ptx-content .exercisegroup .cols2 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols3 > article.exercise-like {\n    flex-basis: calc(100% - 2em);\n  }\n  .ptx-content .exercisegroup .cols4 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols5 > article.exercise-like {\n    flex-basis: calc(50% - 2em);\n  }\n  .ptx-content .exercisegroup .cols6 > article.exercise-like {\n    flex-basis: calc(33.3% - 2em);\n  }\n  .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper {\n    max-width: 100%;\n  }\n}\n.APEXlogo {\n  white-space: nowrap;\n}\n.APEXlogo .A {\n  margin-right: -0.07em;\n}\n.APEXlogo .P {\n  margin-right: -0.33em;\n  position: relative;\n  top: -0.3em;\n}\n.APEXlogo .E {\n  position: relative;\n  top: 0.33em;\n}\n.runestone-profile .dropdown-content {\n  position: absolute;\n  display: none;\n  right: 0;\n  top: 35px;\n  text-align: left;\n  border: 1px solid;\n  border-color: #600;\n  border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n  background-color: #ddd;\n  overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n  display: block;\n}\n.runestone-profile .dropdown-content {\n  background-color: white;\n  z-index: 1800;\n  min-width: 100px;\n  padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n  display: block;\n  text-decoration: none;\n  color: #662211;\n  padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n  background-color: #671d12;\n  color: #ffffff;\n  text-decoration: none;\n  background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n  margin-bottom: 4px;\n  margin-top: 4px;\n  border-color: #600;\n  border-color: var(--sectiontoctext);\n}\n.searchresultsplaceholder article {\n  width: 60%;\n  margin-left: auto;\n  margin-right: auto;\n  font-family: sans-serif;\n}\n.searchbox {\n}\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n.searchbutton .name {\n  display: none;\n}\n.searchwidget {\n  text-align: right;\n}\n.searchwidget input {\n}\n.helpbox {\n  display: none;\n}\n.detailed_result {\n  margin-bottom: 10px;\n}\n.all_results a:link {\n  text-decoration: none;\n  font-size: large;\n}\n.all_results a:hover {\n  background-color: lightgray;\n}\n.searchresults a:hover {\n  background-color: #eee;\n}\n.searchresults a {\n  text-decoration: none;\n  color: #222;\n}\n.searchresults a:hover {\n  text-decoration: underline;\n  color: #33f;\n}\n.searchresults ul li {\n  list-style-type: none;\n}\nol.searchresults {\n  padding-left: 10px;\n  margin-top: 0;\n  overflow-y: auto;\n  flex: 1 1;\n}\nol.searchresults > li {\n  list-style-type: none;\n}\n.search-result-score {\n  display: none;\n}\n.high_result {\n  font-weight: 700;\n}\n.medium_result {\n  font-weight: 500;\n}\n.low_result {\n  font-weight: 200;\n}\n.no_result {\n  font-weight: 200;\n  color: #444;\n}\n.detailed_result .no_result {\n  font-size: 90%;\n}\n.searchresultsplaceholder {\n  position: fixed;\n  top: 5vh;\n  bottom: 5vh;\n  left: 152px;\n  width: 600px;\n  padding: 1em;\n  border: 0.2em solid #009;\n  background: aliceblue;\n  z-index: 5000;\n  display: flex;\n  flex-direction: column;\n}\n.search-results-heading {\n  border-bottom: 1px solid rgba(0, 0, 125, 0.5);\n}\n.search-results-controls {\n  display: flex;\n  justify-content: space-between;\n  align-items: stretch;\n  gap: 10px;\n  margin-bottom: 1em;\n}\n.closesearchresults {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  border: 1px solid black;\n}\n.closesearchresults:hover {\n  color: #c00;\n  background-color: #fee;\n  border-color: #f00;\n}\n.closesearchresults + h2 {\n  margin-top: -1em;\n}\n.searchempty {\n  display: none;\n  padding-left: 10px;\n  padding-top: 5px;\n}\n.search-result-bullet {\n  margin-top: 0.3em;\n}\n.search-result-clip {\n  font-size: 80%;\n  font-style: italic;\n  color: #444;\n  padding-left: 15px;\n}\n.search-results-unshown-count {\n  margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n  background: rgba(255, 255, 0, 0.5);\n}\n@media screen and (max-width: 800px) {\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n  position: relative;\n}\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n  height: 36px;\n}\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n}\n.ptx-content {\n  min-height: 60vh;\n}\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 36px;\n  left: 0;\n  float: left;\n  width: 240px;\n}\n.pretext .ptx-toc {\n  position: sticky;\n  top: 50px;\n  box-sizing: border-box;\n  overflow-y: scroll;\n  height: calc(100vh - 60px);\n}\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin-left: 0;\n}\n.pretext .ptx-page > .ptx-main.notoc {\n  margin-left: 0;\n  transition-property: margin-left;\n  transition-duration: 0.3s;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n  .pretext .ptx-page-footer {\n    margin-bottom: 38px;\n  }\n}\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    margin: 28px;\n  }\n}\n.ptx-content.serif .para .para,\n.ptx-content[data-font=RS] .para .para {\n  font-size: 100%;\n}\n.ptx-content[data-font=RS] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  justify-content: space-around;\n  max-width: 600px;\n  margin-left: 32px;\n}\n.pretext .ptx-content-footer .button {\n  min-width: 80px;\n  height: 35px;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0 10px;\n  display: flex;\n  gap: 10px;\n  align-items: center;\n  justify-content: center;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.pretext .ptx-content-footer .button .icon {\n  margin: 0 -7px;\n}\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n  background: #f4f4f4;\n  margin-top: 2em;\n  padding-top: 0;\n  max-width: 900px;\n  border-top: 2px solid var(--sectiontoctext);\n  border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  position: relative;\n}\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n  height: 3em;\n  width: unset;\n  margin: 0;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n  }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n}\n:root {\n  --content-margin: 32px;\n  --content-width: 750px;\n  --content-width-wide: 1050px;\n  --page-width: 1100px;\n  --xl-margin: calc((var(--content-width) - var(--content-width-wide)) / 2 - var(--content-margin));\n  --content-font-size: 1.2rem;\n}\nhtml {\n  font-size: 16px !important;\n}\n:root {\n  --questionBgColor: var(--componentBgColor) !important;\n}\n:root {\n  --component-border-color: #bababa;\n  --page-gutter-color: #c5c4c4;\n  --page-border-color: #444;\n  --page-color: white;\n}\n.pretext .ptx-masthead {\n  border-bottom: 1px solid var(--component-border-color);\n}\nbody.pretext {\n  background-color: var(--page-gutter-color);\n}\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n  max-width: var(--page-width);\n  margin: 0 auto;\n  background: var(--page-color);\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n}\n.searchresultsplaceholder {\n  left: calc(50vw - 300px);\n}\n.pretext .ptx-page .ptx-main {\n  max-width: var(--content-width);\n  margin: 0 auto;\n  padding-bottom: 2em;\n  border: 0;\n  overflow: visible;\n}\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin: 0 auto;\n}\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: var(--content-width);\n  font-size: var(--content-font-size);\n}\n.pretext .ptx-page-footer {\n  max-width: var(--page-width);\n  justify-content: center;\n  margin: 0 auto;\n  gap: 90px;\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n  border-bottom: 0;\n}\n.pretext .ptx-content-footer {\n  max-width: 100%;\n  margin: 2em auto 0;\n  padding-bottom: 2em;\n  justify-content: space-evenly;\n}\n.pretext .ptx-page-footer a {\n  --margin: 15px 45px;\n}\n.ptx-content .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n.ptx-content .runestone.datafile,\n.ptx-content .contains-wide {\n  width: var(--content-width-wide);\n  max-width: unset;\n  margin-left: var(--xl-margin);\n  max-width: unset;\n  border-width: 1px;\n  border-radius: 3px;\n}\n.ptx-content .runestone .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n.ptx-content .runestone .runestone.datafile {\n  width: 100%;\n  margin-left: auto;\n}\n.ptx-content .runestone {\n  border-width: 1px;\n  border-radius: 3px;\n}\n.pretext .ptx-page > .ptx-main .ptx-content pre,\n.pretext .ptx-page > .ptx-main .ptx-content .ptx-runestone-container :is(.ac_code_div),\n.ptx-runestone-container .parsons .sortable-code-container,\n.ptx-runestone-container .hparsons_section .hparsons-input {\n  font-size: 1rem;\n}\n.ptx-content .runestone.ac_section > div > div > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: calc(var(--content-width) - 2 * var(--content-margin));\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .runestone.contains-wide .tab-content {\n  max-width: var(--content-width);\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .runestone.contains-wide .tab-content .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section) {\n  width: calc(var(--content-width-wide) - 20px);\n  margin-left: calc(var(--xl-margin) + 8px);\n}\n.ptx-content .runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons > div > *:not(.sortable-code-container) {\n  max-width: calc(var(--content-width) - 2 * var(--content-margin));\n  margin-left: auto;\n  margin-right: auto;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n  display: flex;\n  flex-flow: wrap;\n  justify-content: center;\n  gap: 15px;\n  margin: 10px auto;\n}\n.ptx-content .ptx-runestone-container .parsons .sortable-code {\n  margin: 0;\n}\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: unset;\n}\n.ptx-content .runestone .parsons .lines code {\n  white-space: nowrap;\n}\n.ptx-content .runestone .parsons .lines code .token {\n  background: none;\n}\n.ptx-runestone-container .runestone.parsons_section {\n  padding-top: 15px;\n}\n@media screen and (max-width: 1100px) {\n  :root {\n    --page-width: 100%;\n  }\n}\n@media screen and (max-width: 1100px) {\n  :root {\n    --content-width-wide: 1000px;\n  }\n}\n@media screen and (max-width: 1050px) {\n  :root {\n    --content-width-wide: 950px;\n  }\n}\n@media screen and (max-width: 1000px) {\n  :root {\n    --content-width-wide: 900px;\n  }\n}\n@media screen and (max-width: 950px) {\n  :root {\n    --content-width-wide: 850px;\n  }\n}\n@media screen and (max-width: 900px) {\n  :root {\n    --content-width-wide: 800px;\n  }\n}\n@media screen and (max-width: 943px) {\n  .ptx-content .figure-like {\n    overflow-x: inherit;\n  }\n}\n@media screen and (max-width: 850px) {\n  :root {\n    --content-width: 100%;\n    --content-width-wide: calc(100% + 2 * var(--content-margin));\n    --xl-margin: calc(-1 * var(--content-margin));\n  }\n  .ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) > .ptx-runestone-container > .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n  .ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) > .ptx-runestone-container > .runestone.datafile,\n  .ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) > .ptx-runestone-container > .runestone.contains-wide {\n    width: calc(var(--content-width-wide) + 10px);\n  }\n  .ptx-content .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section, .contains-wide) {\n    border-left: 0;\n    border-right: 0;\n    border-top: 1px solid #aaa;\n    border-bottom: 1px solid #aaa;\n    border-radius: 0;\n  }\n  .ptx-content .code-inline {\n    white-space: pre-wrap;\n  }\n  .ptx-runestone-container .cd_section,\n  .ptx-content .ptx-runestone-container .parsons .sortable-code {\n    overflow-x: auto;\n  }\n  .ptx-content .ptx-runestone-container .parsons .sortable-code:first-of-type {\n    padding: 0 25px;\n  }\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n}\n@media screen and (max-width: 663px) {\n  :root {\n    --content-margin: 28px;\n  }\n}\n.ptx-masthead .ptx-banner {\n  border-bottom: 1px solid #d4d4d4;\n  border-top: 1px solid transparent;\n  overflow: hidden;\n  padding-top: 0.625em;\n  padding-bottom: 1.125em;\n  border-bottom: none;\n}\n.ptx-masthead {\n  max-width: 904px;\n  border-right: 1px solid #bababa;\n}\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    margin-top: 0.625em;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: 700;\n  margin: 0;\n  font-size: 2em;\n  line-height: 1.25em;\n  color: #932919;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n.ptx-masthead .title-container > .heading a {\n  color: #932919;\n  background: none;\n  text-decoration: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    display: block;\n    font-size: 1.16667em;\n    line-height: 1.42857em;\n    color: #595959;\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .logo-link {\n  position: relative;\n  float: left;\n  font-size: 50px;\n  margin-top: 0.1em;\n  margin-left: 9.68px;\n  text-align: center;\n  line-height: 1;\n}\n.ptx-masthead .logo-link img {\n  width: auto;\n  height: auto;\n  max-height: 1em;\n}\n.ptx-masthead .logo-link:empty:before {\n  font-family: \"Open Sans\";\n  font-size: 1em;\n  content: \"\\2211\";\n  line-height: 1;\n  width: 1em;\n  display: inline-block;\n  vertical-align: top;\n  text-align: center;\n  color: #ccc;\n}\n.ptx-masthead .logo-link:empty:hover:before {\n  color: #932919;\n}\n.ptx-masthead .logo-link:empty:active:before {\n  color: #3572a0;\n}\n.ptx-masthead .logo-link {\n  background: transparent;\n  border: none;\n  text-decoration: none;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .logo-link {\n    display: block;\n    float: none;\n    margin: 0;\n    font-size: 50px;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-weight: normal;\n  margin: 0;\n  font-size: 1.3125em;\n  line-height: 1.42857em;\n  min-height: inherit;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:hover,\n.ptx-masthead .byline a:focus {\n  color: #932919;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\n:root {\n  --banner-background-color: #ffffff;\n}\n.pretext .ptx-masthead {\n  max-width: var(--page-width);\n  background-color: var(--banner-background-color);\n  margin: 0 auto;\n}\n.pretext .ptx-masthead .ptx-banner {\n  margin: 0 auto;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  max-width: var(--page-width);\n  padding: 8px 0;\n}\nnav.ptx-navbar {\n  background: #ededed;\n  border: 0;\n  border-top: 1px solid #bababa;\n  border-bottom: 1px solid #bababa;\n  margin: 0;\n  z-index: 100;\n  font-family: \"Open Sans\";\n  overflow: visible;\n  display: flex;\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.ptx-navbar .button {\n  font-size: 1em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n  color: #333333;\n  background-color: #ededed;\n  border: 0;\n  border-right: 1px solid #bababa;\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n.ptx-navbar .button:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n}\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n.ptx-navbar .button.disabled {\n  opacity: 0.4;\n  color: #333333;\n  background: #ededed;\n  box-shadow: none;\n}\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n}\n.ptx-navbar .button .icon {\n  font-size: 1.5em;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) {\n  display: flex;\n}\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n.pretext .navbar .dropdown {\n  height: 34px;\n}\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) > *:first-child {\n  border-left: 1px solid #bababa;\n}\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;\n}\n.ptx-navbar :is(.index-button, .calculator-toggle) .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton) .name {\n  display: none;\n}\n.ptx-navbar .index-button {\n  width: 70px;\n}\n.ptx-navbar .calculator-toggle {\n  width: 60px;\n  min-height: 32px;\n  text-align: center;\n  border-radius: 20px;\n  margin-left: 5px;\n  border: 2px solid #66f;\n  line-height: 25px;\n  margin-top: 1px;\n  background-color: #eef;\n}\n.ptx-navbar .calculator-toggle.open {\n  background: #fee;\n  border: 2px solid #f66;\n}\n@media screen and (max-width: 800px) {\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: #ededed;\n    box-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n  }\n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px;\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px;\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  .ptx-navbar :is(.treebuttons) > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n  .ptx-navbar .nav-runestone-controls > *:first-child {\n    border-left: 0;\n  }\n  .ptx-navbar .calculator-toggle {\n    width: auto;\n    height: 35px;\n    border-radius: 0;\n    margin-left: 0;\n    border: 0;\n    border-right: 1px solid #bababa;\n    line-height: inherit;\n    margin-top: 0;\n    background-color: inherit;\n  }\n}\n:root {\n  --nav-background-color: #ededed;\n}\n.pretext .ptx-navbar {\n  max-width: 100%;\n  margin: 0 auto;\n  display: flex;\n  width: var(--page-width);\n  background: var(--nav-background-color);\n  border-top: 0;\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n}\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n.pretext .ptx-navbar .toc-toggle {\n  border-left: 0;\n}\n.ptx-navbar .calculator-toggle {\n  width: auto;\n  height: 35px;\n  text-align: center;\n  border-radius: 0;\n  margin-left: 0;\n  border: 0;\n  border-right: 1px solid #bababa;\n  line-height: inherit;\n  margin-top: 0;\n  background-color: #ededed;\n  padding: 0 15px;\n}\n.ptx-navbar > :last-child > :last-child {\n  border-right: none;\n}\n.ptx-toc {\n  width: 240px;\n  margin: 0;\n  font-size: 14.72px;\n  overflow-y: auto;\n  overflow-x: hidden;\n}\n.ptx-toc::after {\n  content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n  display: block;\n  height: 13em;\n  padding: 2em 1em;\n  background: #fff;\n}\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n  border-bottom: 8px solid #999;\n}\n.ptx-toc {\n  --codenumber-pad-left: 0.3rem;\n  --codenumber-pad-right: 0.5rem;\n  --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n  --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n}\n.ptx-toc:is(.depth1, .parts.depth2) {\n  --codenumber-pad-right: 0.5rem;\n}\n.ptx-toc .toc-item-list {\n  margin: 0px;\n  padding: 0px;\n  list-style-type: none;\n}\n.ptx-toc .toc-item {\n  border-top: 1px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-title-box {\n  display: flex;\n}\n.ptx-toc .toc-title-box > .internal {\n  position: relative;\n  display: flex;\n  flex-grow: 1;\n  padding: 0.2em;\n  font-family:\n    \"PT Serif\",\n    \"Times New Roman\",\n    Times,\n    serif;\n  font-weight: bold;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n  font-family:\n    \"Open Sans\",\n    \"Helvetica Neue\",\n    Helvetica,\n    Arial,\n    sans-serif;\n  font-weight: normal;\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  border-top: 2px solid var(--tocborder, #d1d1d1);\n}\n.ptx-toc .toc-item.active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n.ptx-toc .codenumber {\n  min-width: var(--toc-indent-first);\n  padding-left: var(--codenumber-pad-left);\n  padding-right: var(--codenumber-pad-right);\n  display: inline-block;\n  text-align: left;\n  flex-grow: 0;\n}\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .codenumber {\n  font-size: 80%;\n  padding-top: 0.16em;\n  min-width: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber {\n  min-width: var(--toc-indent-third);\n  visibility: hidden;\n}\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n  visibility: visible;\n}\n.ptx-toc .toc-title-box .title {\n  flex-grow: 1;\n}\n.ptx-toc .toc-item .toc-title-box .title {\n  margin-left: var(--toc-indent-first);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title {\n  margin-left: var(--toc-indent-second);\n}\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  margin-left: var(--toc-indent-third);\n}\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n  margin-left: 0 !important;\n}\n.ptx-toc ul.structural ul.structural .title:empty::after {\n  content: \"empty heading!\";\n  font-weight: bold;\n}\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title {\n  font-size: 90%;\n}\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title {\n  font-style: italic;\n}\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n.ptx-toc.depth0 ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n  display: none;\n}\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n  display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n  display: block;\n}\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n  display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n  display: none;\n}\n.ptx-toc.focused > ul.structural > li:not(:first-child) {\n  margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n  border: 0;\n}\n.ptx-toc.focused .toc-expander {\n  border: 0;\n  padding: 2px 5px;\n  background: inherit;\n  color: inherit;\n  display: flex;\n  align-items: center;\n}\n.ptx-toc.focused .toc-expander .icon {\n  font-size: 30px;\n  line-height: 18px;\n  font-variation-settings: \"wght\" 200;\n}\n.ptx-toc.focused .toc-expander:is(:hover) {\n  background-color: var(--highlighttoc);\n  color: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n  fill: var(--highlighttoctext);\n}\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n  transform: rotate(-90deg);\n}\n:root {\n  --parttoc: var(--chaptertoc);\n  --parttoctext: var(--chaptertoctext);\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: var(--chaptertoctextactive);\n}\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n  :root {\n    --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n  }\n}\n.pretext .ptx-sidebar {\n  display: none;\n  width: 200px;\n  position: sticky;\n  top: 36px;\n  z-index: 10;\n  height: 0;\n}\n.pretext .ptx-sidebar.visible {\n  position: sticky;\n  top: 36px;\n  z-index: 10;\n  height: 0;\n}\n.pretext .ptx-sidebar .ptx-toc {\n  width: 360px;\n  background-color: var(--page-color);\n  border: 1px solid var(--tocborder);\n}\n.pretext .ptx-page .ptx-main {\n  margin-left: inherit;\n}\n.ptx-toc::after {\n  height: auto;\n  max-width: 100px;\n  margin: 0 auto;\n}\n.source-view__link,\n.knowl__link {\n  cursor: pointer;\n  margin-left: 0.1em;\n  margin-right: 0.1em;\n  color: var(--knowlLinkColor);\n  border-bottom: 1px dotted var(--knowlLinkColor);\n}\n.source-view {\n  margin: 0.5em 0;\n}\nsummary.source-view__link,\nsummary.knowl__link {\n  display: list-item inline;\n}\n.source-view__link > *,\n.knowl__link > * {\n  display: inline;\n}\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n  background-color: var(--linkbackground);\n  border-bottom-color: transparent;\n}\n.knowl__content {\n  margin: 0.2em;\n  border: 6px solid var(--knowlborder);\n  border-radius: 0.4em;\n  padding: 0.8em;\n  background-color: var(--knowlbackground);\n}\n.source-view__content {\n  margin: 0.2em 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n  content: \"\" !important;\n  border-bottom: none;\n  margin: 0;\n  padding: 0;\n  width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n  padding-left: 0;\n  border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n  padding-right: 0;\n  border-right: none;\n}\n.knowl__content .knowl__content {\n  background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n  background-color: var(--knowlNested4Background);\n}\n.ptx-content .knowl__content > figure {\n  margin-left: 0;\n  margin-right: 0;\n}\n.ptx-content .proof {\n  border-right: 1px solid #666;\n  padding-right: 0.625em;\n  margin-right: -0.725em;\n}\n.ptx-content .proof:after {\n  content: \"\";\n  border-bottom: 1px solid #666;\n  display: block;\n  margin-left: auto;\n  margin-right: -0.625em;\n  width: 1.5em;\n  padding-bottom: 0.25em;\n}\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n.ptx-content .proof .proof {\n  margin-right: -0.2em;\n  border-right: 1.5px solid #ddd;\n}\n.ptx-content .proof .proof:after {\n  border-bottom: 1.5px solid #ddd;\n  width: 1em;\n}\n.ptx-content article.theorem-like,\n.ptx-content article.definition-like,\n.ptx-content article.example-like,\n.ptx-content article.project-like,\n.ptx-content article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content article.computation-like {\n  padding-left: 0.4em;\n  border-left: 1px solid #569;\n}\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,\n.ptx-content.epub article.computation-like {\n  margin-left: 1px;\n}\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.openproblem-like::after,\n.ptx-content article.openproblems-like::after,\n.ptx-content article.computation-like::after {\n  content: \"\";\n  border-bottom: 1px solid #569;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.5em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content article.project-like {\n  border-left: 1px dotted #569;\n}\n.ptx-content article.project-like::after {\n  border-bottom: 1px dotted #569;\n}\n.ptx-content article.commentary {\n  padding-left: 0.6em;\n  border-left: 3px solid #c33;\n}\n.ptx-content article.commentary::after {\n  content: \"\";\n  border-bottom: 3px solid #c33;\n  display: block;\n  margin-right: auto;\n  margin-left: -0.6em;\n  padding-top: 0.25em;\n  width: 1.5em;\n}\n.ptx-content .assemblage-like {\n  border: solid 2px #1100AA;\n  border-radius: 12px;\n  padding: 10px;\n  background-color: #f4f4fe;\n}\n.ptx-content .assemblage-like .heading {\n  margin-top: 0;\n}\n.ptx-content .assemblage-like + .sidebyside {\n  margin-top: 1.25em;\n}\n.ptx-content section article.assemblage-like .heading + .para {\n  display: block;\n}\n.ptx-content .goal-like {\n  border: solid 3px #999999;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n.ptx-content .goal-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 5px;\n  font-style: italic;\n  font-size: 120%;\n}\n.ptx-content .goal-like > .heading .codenumber {\n  display: none;\n}\n.ptx-content .goal-like > .heading::after {\n  display: none;\n}\n.ptx-content .aside-like {\n  position: absolute;\n  margin-left: 45%;\n  overflow-x: hidden;\n  max-width: 495px;\n  max-height: 7em;\n  overflow-y: hidden;\n  border: none;\n  padding: 4px 10px 0 10px;\n  color: #888;\n  z-index: 100;\n}\n.ptx-content .example-like .aside-like {\n  margin-top: 0;\n  position: absolute;\n}\n.ptx-content .aside-like {\n  font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1em 0.2em #fff inset;\n}\n.ptx-content .aside-like .para {\n  overflow-x: auto;\n}\n.ptx-content .aside-like:first-child {\n  margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content: \"\";\n  position: absolute;\n  z-index: 1;\n  top: 0em;\n  bottom: 0;\n  left: 0;\n  pointer-events: none;\n  background-image:\n    linear-gradient(\n      to bottom,\n      rgba(255, 255, 255, 0.4),\n      rgba(255, 255, 255, 1) 90%);\n  width: 550px;\n  height: 8em;\n}\n.ptx-content .aside-like.front,\n.ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after,\n.ptx-content .example-like .aside-like.front:after {\n  background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n  margin-top: 1.25em;\n}\n.ptx-content .aside-like.front + p {\n  margin-top: 1.25em !important;\n  padding-top: 0;\n}\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n.ptx-content article.aside-like > p:first-child {\n  margin-top: 0;\n}\n.ptx-content .aside-like > .heading {\n  font-size: 95%;\n}\n.ptx-content .aside-like + * {\n  margin-top: 3em;\n  margin-right: 3em;\n}\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n    margin-right: 0;\n  }\n}\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like,\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    position: absolute;\n    margin-top: -2em;\n    margin-left: 660px;\n    max-width: 200px;\n    width: 200px;\n    color: inherit;\n  }\n  .ptx-content .aside-like.front,\n  .ptx-content .example-like .aside-like.front {\n    max-height: none;\n    max-width: 223px;\n    border: 2px solid #dcebfa;\n  }\n  .ptx-content .example-like .aside-like,\n  .ptx-content .example-like .aside-like.front {\n    margin-left: 654px;\n  }\n  .ptx-content .aside-like + * {\n    margin-top: 1.25em;\n    margin-right: 0;\n  }\n  .ptx-content .aside-like + .solutions,\n  .ptx-content .aside-like + .instructions {\n    margin-top: 0;\n  }\n  .ptx-content .aside-like.front:after,\n  .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n  }\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n  }\n}\n.ptx-content .aside-like:hover:after,\n.ptx-content .aside-like:focus:after {\n  top: 3em;\n  height: auto;\n  background-image: none;\n}\n.ptx-content .aside-like:hover,\n.ptx-content .aside-like:focus {\n  color: inherit;\n  padding: 2px 8px 0 8px;\n  border: 2px solid #dcebfa;\n  height: auto;\n  max-height: none;\n}\n.ptx-content .aside-like.front:hover,\n.ptx-content .aside-like.front:focus {\n  padding: 4px 10px;\n}\n.ptx-content section dl dd .aside-like {\n  margin-top: 0 !important;\n  margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n  margin-left: -300px !important;\n}\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n  }\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n  }\n}\n.searchbox .searchresultsplaceholder {\n  background: #eaf0f6;\n}\n.ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) {\n  padding-left: 10px;\n}\n.ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) > .ptx-runestone-container > .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n.ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) > .ptx-runestone-container > .runestone.datafile,\n.ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like) .contains-wide {\n  margin-left: calc(var(--xl-margin) - 10px);\n}\n.ptx-content .datafile pre {\n  border: 1px solid #616160;\n  border-radius: 3px;\n  padding: 10px;\n}\n.ptx-content .runestone.datafile {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 10px;\n}\n.ptx-content .datafile_caption {\n  background: transparent;\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.ac_actions {\n  font-size: 1rem;\n  margin-bottom: 5px;\n}\n.ptx-content .ptx-runestone-container .ac_output {\n  margin-bottom: 10px;\n}\n.ptx-content .ptx-runestone-container .codelens {\n  margin-bottom: 10px;\n}\n.ptx-content .ptx-runestone-container .ac_output pre {\n  width: 100%;\n  max-width: var(--content-width);\n  margin: 10px auto;\n}\n.ptx-runestone-container .ac-canvas {\n  margin-left: calc(50% - 202px);\n}\n.ptx-runestone-container .ac-canvas:empty {\n  display: none;\n}\n.runestone_caption {\n  font-size: 1rem;\n}\n.ptx-runestone-container .unittest-results table {\n  background: white;\n}\n.ptx-content .ptx-runestone-container div.ExecutionVisualizer table.visualizer {\n  width: 100%;\n}\n.ptx-content table tr td {\n  font-size: 1rem;\n}\n.pretext .ptx-content-footer {\n  align-items: stretch;\n}\n.ptx-content article:is(.theorem-like, .definition-like, .example-like, .project-like, .remark-like, .openproblem-like, .computation-like)::after {\n  margin-left: -10px;\n}\n.video-box {\n  margin: 0.75em auto !important;\n}\n.ac_code_div {\n  margin-top: 10px;\n}\n.pretext .ptx-runestone-container .ac_actions {\n  max-width: var(--content-width);\n  margin: 0 auto;\n  flex-wrap: nowrap;\n  align-items: center;\n  gap: 10px;\n  padding-left: 10px;\n  padding-right: 10px;\n}\n.pretext .ptx-runestone-container .ac_actions > * {\n  flex: 0 1;\n  margin: 0 !important;\n}\n.pretext .ptx-runestone-container .ac_actions > div:first-of-type {\n  display: flex !important;\n  flex-direction: column;\n  align-items: stretch;\n  text-align: center;\n  flex-grow: 1;\n}\n.ptx-runestone-container .unittest-results {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  overflow-x: auto;\n}\n.hparsons_section {\n  max-width: unset !important;\n}\n.hparsons_section > :not(.hparsons_section, .hp_question) {\n  max-width: unset !important;\n}\n.ptx-runestone-container .hparsons_section .hp_question {\n  max-width: var(--content-width);\n}\n.codepart_section > div > div {\n  font-size: 1rem;\n  clear: both;\n}\n.codepart_section > div > div:first-of-type {\n  font-size: var(--content-font-size);\n}\n@media screen and (max-width: 600px) {\n  .pretext .ptx-runestone-container .ac_actions > * {\n    white-space: break-spaces;\n    flex-grow: 1;\n  }\n}\n:root[data-legacy-colorscheme=blue_green] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82;\n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=blue_grey] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20477b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=blue_red_dark] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n    background: #444;\n    color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n    background: #333;\n  }\n  .ptx-navbar .button {\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n  .pretext .ptx-masthead {\n    background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background: var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n:root[data-legacy-colorscheme=bluegreen_grey] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #ddd;\n  --chaptertoctext: var(--bluegreen);\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: var(--bluegreen);\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);\n  --highlighttoc: var(--bluegreen);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --red: hsl(345, 60%, 60%);\n  --redlight: hsl(345, 60%, 80%);\n  --reddark: hsl(345, 60%, 15%);\n  --redrich: hsl(345, 100%, 60%);\n  --reddull: hsl(345, 20%, 60%);\n  --orange: hsl(30, 70%, 60%);\n  --orangelight: hsl(30, 60%, 80%);\n  --orangedark: hsl(30, 60%, 15%);\n  --orangerich: hsl(30, 100%, 60%);\n  --orangedull: hsl(30, 30%, 60%);\n  --yellow: hsl(58, 60%, 60%);\n  --yellowlight: hsl(58, 60%, 80%);\n  --yellowdark: hsl(58, 60%, 15%);\n  --yellowrich: hsl(58, 100%, 60%);\n  --yellowdull: hsl(58, 30%, 60%);\n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);\n  --greendark: hsl(136, 52%, 15%);\n  --greenrich: hsl(136, 100%, 60%);\n  --greendull: hsl(136, 20%, 60%);\n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);\n  --bluedark: hsl(214, 59%, 15%);\n  --bluerich: hsl(214, 100%, 50%);\n  --bluedull: hsl(214, 20%, 50%);\n  --violet: hsl(259, 60%, 60%);\n  --violetlight: hsl(259, 60%, 80%);\n  --violetdark: hsl(259, 60%, 15%);\n  --violetrich: hsl(259, 100%, 60%);\n  --violetdull: hsl(259, 20%, 60%);\n}\n:root[data-legacy-colorscheme=brown_gold] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c;\n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #140a00 --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=darkmartiansands] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #550000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=default] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --parttoc: #234b6a;\n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=focused_gray_aqua] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=focused_light] {\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n:root[data-legacy-colorscheme=green_blue] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #195827;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=green_plum] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f;\n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #20602f;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=maroon_grey] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #330000;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=martiansands] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n  --highlighttoc: #6a3418;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=orange_navy] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a;\n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #006deb;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=pastel_blue_orange] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n:root[data-legacy-colorscheme=red_blue] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n  --highlighttoc: #671d12;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_amethyst] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #008099;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_emerald] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n:root[data-legacy-colorscheme=ruby_turquoise] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c;\n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;\n  --bodysubtitlehighlight: #fce5e4;\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: #6f080b;\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n.ptx-masthead .title-container > .heading,\n.ptx-masthead .title-container > .heading a,\n.ptx-masthead .logo-link:empty:hover::before,\n.ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n.ptx-masthead .title-container > .heading a:active,\n.ptx-masthead .logo-link:empty:active::before,\n.ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active {\n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active {\n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active {\n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover,\n.ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n.ptx-content .para > a.internal {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n  color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover,\n.ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus,\n.ptx-content .para > a.internal:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover,\n.ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus,\n.ptx-content .para > a.external:focus * {\n  color: var(--bodyfontcolorhighlight);\n  background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .playvideo {\n  background-color: var(--videoplay);\n}\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n.ptx-content .assemblage-like {\n  border-color: var(--assemblageborder);\n  background-color: var(--assemblagebackground);\n}\n.ptx-content .knowl-output {\n  border-color: var(--knowlborder);\n  background-color: var(--knowlbackground);\n}\n.pretext[data-atmosphere=pastel],\n.pretext[data-atmosphere=pastel] .ptx-main {\n  background: #dbf5ff;\n  background: #efe;\n}\n.pretext[data-atmosphere=pastel] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=pastel] .ptx-navbar {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-masthead {\n  background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=pastel] .ptx-sidebar {\n  background: #ffd;\n}\n.pretext[data-atmosphere=darktwilight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(9, 72%, 30%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n}\n.pretext[data-atmosphere=dark] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(5, 86%, 24%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n}\n.pretext[data-atmosphere=darkmidnight] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd;\n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n.pretext[data-atmosphere*=dark] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page > .ptx-main {\n  background: var(--mainbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .summary-links a {\n  background: var(--documenttitledark);\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar {\n  background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=dark] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead {\n  background: var(--bannerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer {\n  background: var(--footerbackground);\n  border-top-color: #447;\n  border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=dark] .ptx-page-footer .logo {\n  background: #779;\n  border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=dark] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=dark] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline,\n.pretext[data-atmosphere*=dark] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=dark] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .code-inline {\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .kbdkey {\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=dark] .ptx-content .goal-like > .heading {\n  background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content a.url,\n.pretext[data-atmosphere*=dark] .ptx-content a.internal,\n.pretext[data-atmosphere*=dark] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=dark] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=dark] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n/*! Theme: wide-legacy */\n/*# sourceMappingURL=theme-wide-legacy.css.map */\n"
  },
  {
    "path": "css/fonts/_fonts-google.scss",
    "content": "@use \"sass:map\";\n@use \"sass:string\";\n@use \"sass:list\";\n\n// Fonts to use\n$body: 'Open Sans, Helvetica Neue, Helvetica, Arial, sans-serif' !default;\n$heading: 'PT Serif, Times New Roman, Times, serif' !default;\n$monospace: 'Inconsolata, Consolas, Monaco, monospace;' !default;\n$print: 'PT Serif, Times New Roman, Times, serif' !default;\n\n@function is-variable-font($font-name) {\n  $static-fonts: ('PT Serif');  // list of known static fonts used by themes\n  @if list.index($font-name, $static-fonts) {\n    @return false;\n  }\n  @return true;\n}\n\n@function generate-import($font-name) {\n  @if is-variable-font($font-name) {\n    @return 'https://fonts.googleapis.com/css2?family=' + $font-name + ':ital,wght@0,400..700;1,400..700&display=swap';\n  }\n  @else {\n    @return 'https://fonts.googleapis.com/css2?family=' + $font-name + ':ital,wght@0,400;0,700;1,400;1,700&display=swap';\n  }\n}\n\n// For now, only try to fetch the first name in the list and assume\n// the rest are system defined fallbacks.\n// lists are 1-indexed\n$body-font: list.nth(string.split($body, ','), 1);\n// @debug \"----------------\" $body-font;\n@import url( generate-import($body-font) );\n\n$heading-font: list.nth(string.split($heading, ','), 1);\n// generate-import($heading-font);\n@import url( generate-import($heading-font) );\n\n$monospace-font: list.nth(string.split($monospace, ','), 1);\n// generate-import($monospace-font);\n@import url( generate-import($monospace-font) );\n\n:root {\n  --font-body: #{$body};\n}\n:root {\n  --font-headings: #{$heading};\n}\n:root {\n  --font-monospace: #{$monospace};\n}\n:root {\n  --font-print: #{$print};\n}\n\n// 9/5/24 ... TODO controlled list of fonts ... wait and explore later\n// // Available fonts\n// $serif-options: ('Alegreya', 'Merriweather', 'Noto Serif', 'PT Serif', 'Source Serif 4');\n// $sans-options: ('Alegreya Sans', 'Barlow', 'Lato', 'Open Sans', 'Roboto', 'Source Sans 3');\n// $code-options: ('Inconsolata');\n\n// // Backup lists\n// $sans-backups: ', Helvetica Neue, Helvetica, Arial, sans-serif';\n// $serif-backups: ', Times New Roman, Times, serif';\n\n// // ---------------------------------------------------------\n\n\n// @function add-fonts($list, $backups, $fonts: ()) {\n//   @each $font in $list {\n//     $fonts: map.set($fonts, $font, (\n//       url: '\"https://fonts.googleapis.com/css2?family=#{$font}:wdth,wght@75..100,300..800&amp;display=swap\"',\n//       fontlist: $font + $backups,\n//     ));\n//   }\n//   @return $fonts;\n// }\n\n// $fonts: add-fonts($sans-options, $sans-backups);\n// $fonts: add-fonts($serif-options, $sans-backups, $fonts);\n\n// $bodyfont: map.get($fonts, $body);\n// @if not $bodyfont {\n//   @error \"Unknown body font: #{$body}\";\n// } @else {\n//   @import url(#{map.get($bodyfont, \"url\")});\n//   :root {\n//     --font-body: #{map.get($bodyfont, \"fontlist\")};\n//   }\n// }\n\n// $headingfont: map.get($fonts, $heading);\n// @if not $headingfont {\n//   @error \"Unknown heading font: #{$heading}\";\n// } @else {\n//   @import url(#{map.get($headingfont, \"url\")});\n//   :root {\n//     --font-headings: #{map.get($headingfont, \"fontlist\")};\n//   }\n// }\n"
  },
  {
    "path": "css/legacy/colors/all_colors.scss",
    "content": "// Entrypoint to get all legacy color schemes\n\n@use 'colors_blue_green.css';\n@use 'colors_blue_grey.css';\n@use 'colors_blue_red.css';\n@use 'colors_blue_red_dark.css';\n@use 'colors_bluegreen_grey.css';\n@use 'colors_brown_gold.css';\n@use 'colors_darkmartiansands.css';\n@use 'colors_default.css';\n@use 'colors_focused_gray_aqua.css';\n@use 'colors_focused_light.css';\n@use 'colors_green_blue.css';\n@use 'colors_green_plum.css';\n@use 'colors_maroon_grey.css';\n@use 'colors_martiansands.css';\n@use 'colors_orange_navy.css';\n@use 'colors_pastel_blue_orange.css';\n@use 'colors_red_blue.css';\n@use 'colors_ruby_amethyst.css';\n@use 'colors_ruby_emerald.css';\n@use 'colors_ruby_turquoise.css';\n@use 'setcolors.css';\n"
  },
  {
    "path": "css/legacy/colors/colors_blue_green.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"blue_green\"] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2b5f82; \n  --bodysubtitle: #a62e1c;\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #28803f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #20477b;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);  \n  --knowlbackground: var(--assemblagebackground);\n\n  /* Colors for block envirornments: */\n  /* \n  We specify 6 color families (hues), each with 5 hue/lightness options, to be used by style files if they wish. \n\n  The hues should roughly corrspond to red, orange, yellow, green, blue, violet, but should be consistent with the colors specified for titles and toc defined above. \n  \n  Each color has *light, *dark variants (adjusting the lightness of hsl) and *rich, *dull variants (adjusting the saturation). *light and *dull should work for a main background. The standard and *riche should work for borders. For a bold title background, the *dark could be used.\n\n  The *dark should always contrast correctly with white text (we could later specify a *dark-text to be the correct contrast with *dark). All other variants should contrast correctly with black text.\n  */\n  --red: hsl(345, 60%, 60%);  \n  --redlight: hsl(345, 60%, 80%);  \n  --reddark: hsl(345, 60%, 15%);  \n  --redrich: hsl(345, 100%, 60%);  \n  --reddull: hsl(345, 20%, 60%);  \n\n  --orange: hsl(30, 70%, 60%);  \n  --orangelight: hsl(30, 60%, 80%);  \n  --orangedark: hsl(30, 60%, 15%);  \n  --orangerich: hsl(30, 100%, 60%);  \n  --orangedull: hsl(30, 30%, 60%);  \n\n  --yellow: hsl(58, 60%, 60%);  \n  --yellowlight: hsl(58, 60%, 80%);  \n  --yellowdark: hsl(58, 60%, 15%);  \n  --yellowrich: hsl(58, 100%, 60%);  \n  --yellowdull: hsl(58, 30%, 60%);  \n  \n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);  \n  --greendark: hsl(136, 52%, 15%);  \n  --greenrich: hsl(136, 100%, 60%);  \n  --greendull: hsl(136, 20%, 60%);\n    \n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);  \n  --bluedark: hsl(214, 59%, 15%);  \n  --bluerich: hsl(214, 100%, 50%);  \n  --bluedull: hsl(214, 20%, 50%);\n\n  --violet: hsl(259, 60%, 60%);  \n  --violetlight: hsl(259, 60%, 80%);  \n  --violetdark: hsl(259, 60%, 15%);  \n  --violetrich: hsl(259, 100%, 60%);  \n  --violetdull: hsl(259, 20%, 60%);  \n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_blue_grey.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n/* Colors formerly in mathbook-4.css */\n\n:root[data-legacy-colorscheme=\"blue_grey\"] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #525252;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #20477b;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_blue_red.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"blue_red\"] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #2B5F82; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #932c1c;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #20477b;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_blue_red_dark.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"blue_red_dark\"] {\n  --bodyfontcolor: #eee;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abf;\n  --bodytitle: #2B5F82; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #316;  /* DARKER, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #932c1c;\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: #666;\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n  \n\n  body.pretext {\n    background: #222;\n  }\n  .pretext .ptx-page > .ptx-main {\n      background: #444;\n      color: var(--bodyfontcolor);\n  }\n  .ptx-content .summary-links a {\n      background: var(--documenttitledark);\n      background: var(--chaptertoc);\n  }\n  .ptx-navbar {\n      background: #333;\n  }\n  .ptx-navbar .button{\n    background-color: #635;\n    color: #fff;\n  }\n  .ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #000;\n  }\n  .ptx-navbar .calculator-toggle {\n    background-color: #336;\n  }\n  .ptx-navbar .calculator-toggle:hover {\n    background-color: #fce;\n  }\n\n  .pretext .ptx-masthead {\n      background: #555;\n  }\n  .pretext .ptx-masthead .title-container > .pretext .heading,\n  .pretext .ptx-masthead .title-container > .heading a,\n  .pretext .ptx-masthead .logo-link:empty:hover::before,\n  .pretext .ptx-masthead .byline,\n  .pretext .ptx-masthead .byline a {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-content .code-inline {\n    color: var(--documenttitledark);\n  }\n  .ptx-content .goal-like > .heading {\n    background:  var(--chaptertoc);\n  }\n  .pretext .ptx-content [data-knowl],\n  .pretext .ptx-content [data-knowl]:hover,\n  .pretext .ptx-content [data-knowl]:active,\n  .pretext .ptx-content [data-knowl].active {\n    color: var(--documenttitlelight);\n  }\n  .pretext .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n    background: #606;\n  }\n}\n"
  },
  {
    "path": "css/legacy/colors/colors_bluegreen_grey.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"bluegreen_grey\"] {\n  --bluegreen: hsl(192, 98%, 23%);\n  --documenttitle: var(--bluegreen);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #ddd; /* #28803f; */\n  --chaptertoctext: var(--bluegreen); /* white; */\n  --chaptertocactive: hsl(192, 98%, 19%);\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: var(--bluegreen); /* #20477b; */\n  --sectiontocactive: hsl(192, 98%, 19%);\n  --sectiontoctextactive: white;\n  --tocborder: var(--bluegreen);  /* #152f53; */\n\n  --highlighttoc: var(--bluegreen); /* #20477b; */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n\n  /* Colors for block envirornments: */\n  /* \n  We specify 6 color families (hues), each with 5 hue/lightness options, to be used by style files if they wish. \n\n  The hues should roughly corrspond to red, orange, yellow, green, blue, violet, but should be consistent with the colors specified for titles and toc defined above. \n  \n  Each color has *light, *dark variants (adjusting the lightness of hsl) and *rich, *dull variants (adjusting the saturation). *light and *dull should work for a main background. The standard and *riche should work for borders. For a bold title background, the *dark could be used.\n\n  The *dark should always contrast correctly with white text (we could later specify a *dark-text to be the correct contrast with *dark). All other variants should contrast correctly with black text.\n  */\n  --red: hsl(345, 60%, 60%);  \n  --redlight: hsl(345, 60%, 80%);  \n  --reddark: hsl(345, 60%, 15%);  \n  --redrich: hsl(345, 100%, 60%);  \n  --reddull: hsl(345, 20%, 60%);  \n\n  --orange: hsl(30, 70%, 60%);  \n  --orangelight: hsl(30, 60%, 80%);  \n  --orangedark: hsl(30, 60%, 15%);  \n  --orangerich: hsl(30, 100%, 60%);  \n  --orangedull: hsl(30, 30%, 60%);  \n\n  --yellow: hsl(58, 60%, 60%);  \n  --yellowlight: hsl(58, 60%, 80%);  \n  --yellowdark: hsl(58, 60%, 15%);  \n  --yellowrich: hsl(58, 100%, 60%);  \n  --yellowdull: hsl(58, 30%, 60%);  \n  \n  --green: hsl(136, 52%, 33%);\n  --greenlight: hsl(136, 52%, 80%);  \n  --greendark: hsl(136, 52%, 15%);  \n  --greenrich: hsl(136, 100%, 60%);  \n  --greendull: hsl(136, 20%, 60%);\n    \n  --blue: hsl(214, 59%, 60%);\n  --bluelight: hsl(214, 59%, 80%);  \n  --bluedark: hsl(214, 59%, 15%);  \n  --bluerich: hsl(214, 100%, 50%);  \n  --bluedull: hsl(214, 20%, 50%);\n\n  --violet: hsl(259, 60%, 60%);  \n  --violetlight: hsl(259, 60%, 80%);  \n  --violetdark: hsl(259, 60%, 15%);  \n  --violetrich: hsl(259, 100%, 60%);  \n  --violetdull: hsl(259, 20%, 60%);  \n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_brown_gold.css",
    "content": "\n/* Colors for Manitoba */\n\n:root[data-legacy-colorscheme=\"brown_gold\"] {\n  --documenttitle: #472200;\n  --bodytitle: #8e4a0c; \n  --bodysubtitle: #864E1C;\n  --bodytitlehighlight: #eeeff3;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #eaaf0f;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #140a00   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_darkmartiansands.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n/* Martian sands color scheme by Alex Jordan */\n\n:root[data-legacy-colorscheme=\"darkmartiansands\"] {\n  --documenttitle: #880000;\n  --bodytitle: #932c10; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #b58039;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n\n  --highlighttoc: #550000;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_default.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 4) A dark color for each chapter background\n 5) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 4') A light color for each chapter background\n 5') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 4) and 5) you need white letters to go on the dark\n background, and with 4') and 5') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"default\"] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;  /* often a darker version of documenttitle  */\n  --bodysubtitle: #2B5F82;  /* can be the same as bodytitle  */\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  /* Part colors are not used in non-focused TOC */\n  --parttoc: #234b6a;   \n  --parttoctext: white;\n  --parttocactive: var(--documenttitle);\n  --parttoctextactive: white;\n\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n\n  --highlighttoc: #671d12;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblagebackground: #F0EAF6;\n  --assemblageborder: #CAAEE0;\n  --assemblagedarkborder: #472664;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_focused_gray_aqua.css",
    "content": "/*\n  Sample bolder focused TOC color scheme\n  See colors_default for general color tips\n*/\n\n\n:root[data-legacy-colorscheme=\"focused_gray_aqua\"] {\n  /* -------- general -------- */\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82; \n  --bodysubtitle: #1d686e;\n  --bodytitlehighlight: #e0e9ff; \n  --bodysubtitlehighlight: #fce5e4; \n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #343b48;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n\n  /* -------- TOC -------- */\n  --toc-text-dark: #343b48;\n  --toc-text-light: white;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #e5ca34;\n\n  --parttoc: var(--toc-text-dark);\n  --parttoctext: var(--toc-text-light);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n\n  --chaptertoc: #1d686e;\n  --chaptertoctext: var(--toc-text-light);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n\n  --sectiontoc: #fffffd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n\n\n  --highlighttoc: var(--active-toc-item);\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n"
  },
  {
    "path": "css/legacy/colors/colors_focused_light.css",
    "content": "/*\n  Sample light, non-distracting focused TOC color scheme\n  See colors_default for general color tips\n*/\n\n:root[data-legacy-colorscheme=\"focused_light\"] {\n  /* -------- general -------- */\n  --documenttitle: #343b48;\n  --bodytitle: #2B5F82; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #fce5e4;\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n\n  /* -------- TOC -------- */\n  --toc-text-dark: #333;\n  --tocborder: var(--toc-text-dark);\n  --active-toc-item: #dbebf1;\n\n  --parttoc: #e8e8e8;\n  --parttoctext: var(--toc-text-dark);\n  --parttocactive: var(--active-toc-item);\n  --parttoctextactive: var(--toc-text-dark);\n\n  --chaptertoc: #f2f2f2;\n  --chaptertoctext: var(--toc-text-dark);\n  --chaptertocactive: var(--active-toc-item);\n  --chaptertoctextactive: var(--toc-text-dark);\n\n  --sectiontoc: #fdfdfd;\n  --sectiontoctext: var(--toc-text-dark);\n  --sectiontocactive: var(--active-toc-item);\n  --sectiontoctextactive: var(--toc-text-dark);\n\n  --highlighttoc: #c2e5f2;\n  --highlighttoctext: var(--toc-text-dark);\n  --highlighttocborder: var(--chaptertoc);\n}\n"
  },
  {
    "path": "css/legacy/colors/colors_green_blue.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"green_blue\"] {\n  --documenttitle: #248038;\n  --bodytitle: #20602f; \n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #2650a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #195827;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_green_plum.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"green_plum\"] {\n  --documenttitle: #28803f;\n  --bodytitle: #20602f; \n  --bodysubtitle: #822060;\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #822060;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20602f;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #20602f;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_maroon_grey.css",
    "content": "\n/* Colors for UPS */\n\n:root[data-legacy-colorscheme=\"maroon_grey\"] {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #330000;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_martiansands.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n/* Martian sands color scheme by Alex Jordan */\n\n:root[data-legacy-colorscheme=\"martiansands\"] {\n  --documenttitle: #944921;\n  --bodytitle: #932c10; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #dcd3f0;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #d19e69;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #20477b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #d1d1d1;\n\n  --highlighttoc: #6a3418;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_orange_navy.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"orange_navy\"] {\n  --documenttitle: #d64000;\n  --bodytitle: #00408a; \n  --bodysubtitle: #9e2f00;\n  --bodytitlehighlight: #ffcdbd;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #00326b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #00326b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #006deb;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_pastel_blue_orange.css",
    "content": "\n/* Pastel color scheme by Nathan Wintersgill */\n\n:root[data-legacy-colorscheme=\"pastel_blue_orange\"] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodysubtitlehighlight: #FCE5E4;\n\n  --chaptertoc: #dbf5ff;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffffff;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n\n  --highlighttoc: #fac793;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_red_blue.css",
    "content": "\n:root[data-legacy-colorscheme=\"red_blue\"] {\n  --documenttitle: #932919;\n  --bodytitle: #A62E1C;  /* often a darker version of documenttitle  */\n  --bodysubtitle: #2B5F82;  /* can be the same as bodytitle  */\n  --bodytitlehighlight: #e0e9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #3572a0;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #662211;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #185f65;\n\n  --highlighttoc: #671d12;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #5B2F82;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_ruby_amethyst.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"ruby_amethyst\"] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #6f080b;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #008099;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_ruby_emerald.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"ruby_emerald\"] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d9ffe9;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #16a67d;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #6f080b;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/colors_ruby_turquoise.css",
    "content": "\n/*\n There are five main choices that define a color scheme in the\n HTML output of PreTeXt:\n 1) A dark color for the title on each page\n 2) A dark color for highlighted words in the body\n 3) A dark color for other highlighted words in the body\n\n In the CSS those are called 'documenttitle', 'bodytitle',\n and 'bodysubtitle'.\n\n The other two choices appear in the ToC.\n\n Either:\n 3) A dark color for each chapter background\n 4) A dark color for the current section background\n (Often the ToC section background equals documenttitle.\n\n Or:\n 3') A light color for each chapter background\n 4') A light color for the current section background\n\n In the CSS those are called 'chaptertoc' and 'sectiontoc',\n respectively.\n\n With 3) and 4) you need white letters to go on the dark\n background, and with 3') and 4') you need dark letters\n on the light background.  Set the color of those letters\n with 'chaptertoctext'.\n\n In addition to the above four choices, you need to \n choose a contrasting shade of each color, to be used\n for highlighting, borders, etc.\n\n In the future you will be able to choose colors for assemblages\n and for knowl output\n*/\n\n:root[data-legacy-colorscheme=\"ruby_turquoise\"] {\n  --documenttitle: #9e0c0f;\n  --bodytitle: #8e0a0c; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #d0f9ff;  /* light, and contrasting to bodytitle  */\n  --bodysubtitlehighlight: #fce5e4;  /* light, and contrasting to bodysubtitle  */\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: #008099;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: white;   /* can also write it as #ffffff  */\n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #6f080b;   /* often a dark version of documenttitle */\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n\n"
  },
  {
    "path": "css/legacy/colors/setcolors.css",
    "content": "\n/* This file assigns the main colors, using variables that\n   have been set previously. */\n\nbody.pretext {\n  color: var(--bodyfontcolor);\n}\n\n.ptx-masthead .title-container > .heading, .ptx-masthead .title-container > .heading a, .ptx-masthead .logo-link:empty:hover::before, .ptx-masthead .byline a {\n  color: var(--documenttitle, #2a5ea4);\n}\n\n.ptx-masthead .title-container > .heading a:active, .ptx-masthead .logo-link:empty:active::before, .ptx-masthead .byline a:active {\n  color: var(--bodytitle, #932c1c);\n}\n\n\n/* Start by assuming any TOC item is a section, change others as appropriate */\n.ptx-toc .toc-item {\n  color: var(--sectiontoctext, #404040);\n  background-color: var(--sectiontoc);\n  border-color: var(--tocborder, #afc2e5);\n}\n.ptx-toc .toc-item.active {\n  color: var(--sectiontoctextactive);\n  background-color: var(--sectiontocactive);\n  border-color: var(--highlighttocborder);\n}\n\n/* this looks weird but it matches previous ways the colors were applied */\n.ptx-toc:not(.depth2) .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n/* override for focused view */\n.ptx-toc.focused:not(.depth2) .toc-chapter {  \n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n\n\n/* All top level items styled like chapters to match old styling */\n.ptx-toc > .toc-item-list > .toc-item {\n  color: var(--chaptertoctext);\n  background-color: var(--chaptertoc);\n}\n.ptx-toc > .toc-item-list > .toc-item.active { \n  color: var(--chaptertoctextactive);\n  background-color: var(--chaptertocactive);\n  border-color: var(--highlighttocborder);\n}\n\n\n.ptx-toc .toc-item > .toc-title-box > a:is(:hover, :focus) {\n  color: var(--highlighttoctext, #321a0c);\n  background-color: var(--highlighttoc);\n  border-color: var(--highlighttocborder, #ec704b);\n}\n\n/* top level parts/front/backmatter styled as parts */\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter) {\n  background-color: var(--parttoc);\n  color: var(--parttoctext);\n}\n.ptx-toc > .toc-item-list > :is(.toc-frontmatter, .toc-part, .toc-backmatter).active { \n  background-color: var(--parttocactive);\n  color: var(--parttoctextactive);\n}\n\n.ptx-toc.focused .toc-chapter {\n  background-color: var(--chaptertoc);\n  color: var(--chaptertoctext);\n}\n.ptx-toc.focused .toc-chapter.active { \n  background-color: var(--chaptertocactive);\n  color: var(--chaptertoctextactive);\n}\n\n/* Anything under a chapter, front matter, back matter styled as section */\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item {\n  background-color: var(--sectiontoc);\n  color: var(--sectiontoctext);\n}\n.ptx-toc.focused :is(.toc-chapter, .toc-frontmatter, .toc-backmatter) > ul > .toc-item.active {\n  background-color: var(--sectiontocactive);\n  color: var(--sectiontoctextactive);\n}\n\n\n.ptx-content .summary-links a {\n  color: var(--sectiontoctext);\n}\n.ptx-content .summary-links a:hover, .ptx-content .summary-links a:focus {\n  color: var(--highlighttoctext);\n  background: var(--highlighttoc);\n}\n\n/* next two groups concern accessibility, so check when making changes */\n.ptx-content .para > a.internal {\n    color: var(--bodysubtitle);\n}\n.ptx-content .para > a.external {\n    color: var(--bodysubtitle);\n}\n.ptx-content .para > a.internal:hover, .ptx-content .para > a.internal:hover *,\n.ptx-content .para > a.internal:focus, .ptx-content .para > a.internal:focus * {\n    color: var(--bodyfontcolorhighlight);\n    background-color: var(--bodysubtitlehighlight);\n}\n.ptx-content .para > a.external:hover, .ptx-content .para > a.external:hover *,\n.ptx-content .para > a.external:focus, .ptx-content .para > a.external:focus * {\n    color: var(--bodyfontcolorhighlight);\n    background-color: var(--bodysubtitlehighlight);\n}\n\n.ptx-content .playvideo {\n    background-color: var(--videoplay);\n}\n\n.ptx-content .goal-like {\n  border-color: var(--goalborder);\n}\n\n.ptx-content .assemblage-like {\n    border-color: var(--assemblageborder);\n    background-color: var(--assemblagebackground);\n}\n\n.ptx-content .knowl-output {\n    border-color: var(--knowlborder);\n    background-color: var(--knowlbackground);\n}\n\n/* \n  pastel\n*/\n.pretext[data-atmosphere=\"pastel\"],\n.pretext[data-atmosphere=\"pastel\"] .ptx-main {\n  background: #dbf5ff;\n    background: #efe;\n}\n.pretext[data-atmosphere=\"pastel\"] {\n  --documenttitle: #2a5ea4;\n  --bodytitle: #A62E1C;\n  --bodysubtitle: #2B5F82;\n  --bodytitlehighlight: #e0e9ff;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #FCE5E4;\n\n  --chaptertoc: #dbf5ff;\n  --chaptertoc: #dcdcf9;\n  --chaptertoctext: #444444;\n  --chaptertocactive: #fae5b6;\n  --chaptertoctextactive: #303030;\n  --sectiontoc: #ffeeee;\n  --sectiontoctext: #404040;\n  --sectiontocactive: #fae5b6;\n  --sectiontoctextactive: #202020;\n  --tocborder: #afc2e5;\n\n  --highlighttoc: #fac793;\n  --highlighttoc: #fadfa3;\n  --highlighttoctext: #321a0c;\n  --highlighttocborder: #ec704b;\n\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f4f4fe;\n\n  --knowlborder: #e0e9ff;\n  --knowlbackground: #f5f8ff;\n}\n\n.pretext[data-atmosphere=\"pastel\"] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) #efe;\n}\n.pretext[data-atmosphere=\"pastel\"] .ptx-navbar {\n    background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=\"pastel\"] .ptx-masthead {\n    background: #efe;\n  background: #dbf5ff;\n}\n.pretext[data-atmosphere=\"pastel\"] .ptx-sidebar {\n    background: #ffd;\n}\n\n/* twilight */\n\n.pretext[data-atmosphere=\"darktwilight\"] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #abd;\n  --bodytitle: #abd; \n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: hsl(9, 72%, 30%);  /* #832615; */\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 40%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n\n  --bannerbackground: hsl(0, 0%, 33%);\n  --navbarbackground: hsl(0, 0%, 33%);\n  --footerbackground: hsl(0, 0%, 30%);\n  --mainbackground: hsl(0, 0%, 27%);\n  --buttonbackground: hsl(225, 80%, 25%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 23%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 20%);\n\n}\n\n/* dark */\n\n.pretext[data-atmosphere=\"dark\"] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd; \n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad6;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: hsl(5, 86%, 24%);  \n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 27%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n\n  --bannerbackground: hsl(0, 0%, 20%);\n  --navbarbackground: hsl(0, 0%, 20%);\n  --footerbackground: hsl(0, 0%, 22%);\n  --mainbackground: hsl(0, 0%, 17%);\n  --buttonbackground: hsl(232, 90%, 19%);\n  --codebackground: hsl(120, 100%, 15%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 19%);\n\n}\n\n\n/* midnight */\n\n.pretext[data-atmosphere=\"darkmidnight\"] {\n  --bodyfontcolor: #ddd;\n  --bodyfontcolorhighlight: #222;\n  --documenttitle: #2a5ea4;\n  --documenttitledark: #20477b;\n  --documenttitlelight: #8ab;\n  --bodytitle: #abd; \n  --bodysubtitle: #dcb;\n  --bodytitlehighlight: #ad9;\n  --bodyfonttitlehighlight: #306;\n  --bodysubtitlehighlight: #363;\n     /*\n       The bodytitle and bodysubtitle colors must have at least a 3:1 contrast\n       ratio with black, and at least 5:1 ratio with with the corresponding highlight.\n       (The second condition will guarantee an adequate contrast with white.)\n     */\n\n  --chaptertoc: hsl(0, 100%, 17%);\n  --chaptertoctext: #dee;\n  --chaptertocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --chaptertoctextactive: white;\n  --sectiontoc: hsl(0, 0%, 13%);\n  --sectiontoctext: #eed;\n  --sectiontocactive: var(--documenttitle);   /* often the same as documenttitle */\n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: var(--documenttitledark);\n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n  --assemblagebackground: #003;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n\n  --bannerbackground: hsl(0, 0%, 16%);\n  --navbarbackground: hsl(0, 0%, 16%);\n  --footerbackground: hsl(0, 0%, 13%);\n  --mainbackground: hsl(0, 0%, 7%);\n  --buttonbackground: hsl(240, 100%, 13%);\n  --codebackground: hsl(120, 100%, 17%);\n  --linkbackground: hsl(120, 90%, 20%);\n  --linkbackgroundhighlight: hsl(0, 0%, 70%);\n  --keybackground: hsl(0, 100%, 17%);\n}\n\n.pretext[data-atmosphere*=\"dark\"] {\n  background: var(--mainbackground);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-page > .ptx-main {\n    background: var(--mainbackground);\n    color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-content .summary-links a {\n    background: var(--documenttitledark);\n    background: var(--chaptertoc);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-navbar {\n    background: var(--navbarbackground);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-page-footer .feedback-link,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content-footer .button,\n.pretext[data-atmosphere*=\"dark\"] .ptx-navbar .button {\n  background-color: var(--buttonbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-page-footer .feedback-link:hover,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content-footer .button:hover,\n.pretext[data-atmosphere*=\"dark\"] .ptx-navbar .button:hover,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content-footer .button:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-navbar .calculator-toggle {\n  background-color: var(--buttonbackground);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-navbar .calculator-toggle:hover {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n\n.pretext[data-atmosphere*=\"dark\"] .ptx-masthead {\n    background: var(--bannerbackground);\n}\n\n.pretext[data-atmosphere*=\"dark\"] .ptx-page-footer {\n    background: var(--footerbackground);\n    border-top-color: #447;\n    border-bottom-color: #447;\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-page-footer .logo {\n    background: #779;\n    border-radius: 0.4em;\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-masthead .title-container > .pretext .heading,\n.pretext[data-atmosphere*=\"dark\"] .ptx-masthead .title-container > .heading a,\n.pretext[data-atmosphere*=\"dark\"] .ptx-masthead .logo-link:empty:hover::before,\n.pretext[data-atmosphere*=\"dark\"] .ptx-masthead .byline,\n.pretext[data-atmosphere*=\"dark\"] .ptx-masthead .byline a {\n  color: var(--documenttitlelight);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-toc {\n  scrollbar-color: var(--documenttitlelight) var(--footerbackground);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-content .code-inline {\n/*\n  color: var(--documenttitledark);\n*/\n  background: var(--codebackground);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-content .kbdkey {\n/*\n  color: var(--documenttitledark);\n*/\n  background: var(--keybackground);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-content .goal-like > .heading {\n  background:  var(--chaptertoc);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-content a.url,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content a.internal,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content a.external {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor, #ddc);\n}\n\n.pretext[data-atmosphere*=\"dark\"] .ptx-content [data-knowl] {\n  background-color: var(--linkbackground);\n  color: var(--bodyfontcolor);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-content [data-knowl]:hover,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content [data-knowl]:active,\n.pretext[data-atmosphere*=\"dark\"] .ptx-content [data-knowl].active {\n  background-color: var(--linkbackgroundhighlight);\n  color: var(--bodyfontcolorhighlight);\n}\n.pretext[data-atmosphere*=\"dark\"] .ptx-page .ptx-main .ptx-content .knowl-content > .solution-like {\n  background: #606;\n}\n\n/* link/knowl coloring */\n:root {\n  --knowlLinkColor: var(--documenttitle);\n  --linkColor: var(--bodysubtitle);\n  --linkBackground: var(--bodysubtitlehighlight);\n  --knowlNested1Background: #f5f5ff;\n  --knowlNested2Background: #fffff5;\n  --knowlNested3Background: #f5ffff;\n  --knowlNested4Background: #fff5f5;\n}\n"
  },
  {
    "path": "css/legacy/pretext.css",
    "content": "/*******************************************************************************\n * pretext.css handles structure which (should be) common to all styles\n *******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n\n* {\n    box-sizing: border-box;\n}\n\nbody.pretext {\n    font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n}\nbody.pretext[data-font=\"OS\"] {\n    font-family: \"Open Sans\", sans-serif;\n}\nbody.pretext[data-font=\"RS\"] {\n    font-family: \"Roboto Serif\", serif;\n}\nbody.pretext,\nbody.standalone {\n    margin: 0;\n    padding: 0;\n    font-size: 16px;\n}\n\nbody.pretext { background: #fff; }\n\na {\n    color: inherit;\n    text-decoration: none;\n}\na:hover,\na:focus {\n    text-decoration: none;\n}\n\n\nbody.pretext > a.assistive {\n    padding:6px;\n    position: absolute;\n    top:-40px;\n    left:0px;\n    color:white;\n    border-right:1px solid white;\n    border-bottom:1px solid white;\n    border-bottom-right-radius:8px;\n    background:transparent;\n    z-index: 10000;\n}\n\nbody.pretext > a.assistive:focus {\n    top:0px;\n    background:#BF1722;\n    outline:0;\n    transition: top .1s ease-in, background .5s linear;\n}\n\n/* over-write bootstrap (in Runestone, for example) */\nnav .ptx-navbar {\n  border-top: none;\n  border-right: none;\n  border-left: none;\n  min-height: unset;\n}\n\n/* next for the Activecode popup */\n/*\n.modal-backdrop.fade.in {\n   display: none;\n}\n*/\n.ptx-navbar .activecode-toggle {\n  padding: 3px 5px;\n}\n\n/* Runestone nav for Runestone-wide features */\n.pretext #brand-navbar,\n.pretext .brand-navbar {\n  left: 0;\n  position: fixed;\n  right: 0;\n  z-index: 1030;\n  height: 50px;\n  border-width: 0 0 1px;\n  top: 0;\n  margin-bottom: 0;\n}\n.pretext #brand-navbar > .container::before,\n.pretext .brand-navbar > .container::before,\n.pretext #brand-navbar > .container::after,\n.pretext .brand-navbar > .container::after {\n  display: none;\n}\n.pretext #brand-navbar + .ptx-masthead,\n.pretext .brand-navbar + .ptx-masthead {\n  margin-top: 50px;\n}\n.pretext #brand-navbar .navbar-collapse.collapse,\n.pretext .brand-navbar .navbar-collapse.collapse {\n  overflow: hidden !important;\n}\n.pretext #brand-navbar ~ .ptx-navbar,\n.pretext .brand-navbar ~ .ptx-navbar {\n  top: 50px;\n}\n@media screen and (max-width: 800px) {\n  .pretext #brand-navbar ~ .ptx-navbar,\n  .pretext .brand-navbar ~ .ptx-navbar {\n    top: auto;\n  }\n}\n\n/* so that we can position things (like .autopermalink) absolutely wrt these items */\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure,\n.ptx-content figcaption,\n.ptx-content .exercisegroup,\n.ptx-content .discussion-like,\n.ptx-content .para {\n    position: relative;\n}\n\n/* we use .para as a wrapper around some \"compound\" p, so the\n   first p in .para is block-like because of the .pare */\n.ptx-content .para > p:first-child,\n.ptx-content .para > .para:first-child {\n    display: inline;\n}\n\n/* CSS defult values:\nhttps://www.w3schools.com/cssref/css_default_values.asp\n*/\n\n/* the default margin for pre is \"1em 0\", so we over-ride\nso that we can set our own later */\n.ptx-content pre {\n    margin: 0;\n    padding: 0;\n    border: none;\n}\n/* these are to over-ride \"pre\" styling in code.less */\n.ptx-content pre {\n    border-radius: 0;\n}\n\n.ptx-content textarea {\n    padding: 0;\n}\n\n/* .para and other block-level elements should have space at the top, and not the bottom */\n.ptx-content h1, .ptx-content h2, .ptx-content h3, .ptx-content h4, .ptx-content h5, .ptx-content h6 {\n    margin: 0;\n    font-size: unset;\n}\n.pretext h1, .pretext h2, .pretext h3, .pretext h4, .pretext h5, .pretext h6 {\n    margin: 0;\n    font-size: unset;\n}\n\n.ptx-content .heading {\n    line-height: 1.1;\n}\n\n/* spacing around and after .para, and around and after article */\n.ptx-content .para {\n    margin-top: 1.25em;\n    margin-bottom: 0;\n    line-height: 1.35;\n}\n.ptx-content .para.continuation {\n    margin-top: 0;\n}\n.ptx-content pre + .para.continuation,\n.ptx-content pre + form,\n.ptx-content div + form {\n    margin-top: 1em;\n}\n.ptx-content ul + .para.continuation,\n.ptx-content ol + .para.continuation,\n.ptx-content dl + .para.continuation {\n    margin-top: 0.75em;\n}\n\n.ptx-content .aside-like > .para:first-child,\n.ptx-content td > .para:first-child,\n.ptx-content .solution-like > .para:first-child {\n    margin-top: 0;\n}\n/* for assemblages without a title */\n.ptx-content .assemblage-like > .para:first-of-type {\n    margin-top: 0;\n}\n.ptx-content .assemblage-like > .heading + .para {\n    margin-top: 0.25em;\n}\n.ptx-content .assemblage-like + .para {\n    margin-top: 1.75em;\n}\n\n.ptx-content .para.intertext {\n    margin-top: -0.25em;\n    text-indent: 0;\n}\n\n.ptx-content .para + table {\n    margin-top: 1em;\n}\n\n.ptx-content table tr td .para + .para {\n    margin-top: 1em;\n}\n\n.ptx-content table + .para {\n    margin-top: 1.5em;\n}\n\n.ptx-content .para + figure.figure-like > table {\n    margin-top: 1em;\n}\n\n/* 1.25 = ol top + li top ?  looked too big with 0.75 below */\n.ptx-content .exercise-like .para + ol {\n    margin-top: 0.5em;\n}\n\n.ptx-content .para + pre.prettyprint,\n.ptx-content .para + pre.plainprint {\n    margin-top: 1.25em;\n}\n.ptx-content .para + .code-box {\n    margin-top: 1.25em;\n}\n.ptx-content .code-box > .console {\n    margin-left: 1.5em;\n}\n\n.ptx-content .exercisegroup {\n    padding-top: 1.25em;\n    margin-bottom: 1.0em;\n}\n.ptx-content section .exercisegroup > .heading {\n    font-size: 1.10em;\n    line-height: 1.05em;\n    margin-top: 0.75em;\n    display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction {\n    display: inline;\n}\n.ptx-content section .exercisegroup > .heading + .introduction > .para:first-child {\n    display: inline;\n}\n\n.ptx-content .exercisegroup article.exercise-like li > .para:first-child {\n    margin-top: 0;\n}\n\n.ptx-content .exercisegroup article.exercise-like .heading {\n    margin: 0;\n}\n.ptx-content article.exercise-like .task > .heading + .heading {\n    font-weight: 600;  /* should be slightly less bold, but some browsers make it bold */\n}\n.ptx-content article.exercise-like .task > .heading + .heading + .para,\n.ptx-content article.exercise-like .task > .heading + .heading + div {\n    display: block;\n    margin-top: 0;\n}\n.ptx-content .exercisegroup .conclusion .heading {\n    margin-top: 0.5em;\n}\n.ptx-content .exercisegroup article + article {\n    margin-top: 1em;\n}\n\n/* http://spot.pcc.edu/math/APEXCalculus/sec_interp_deriv.html */\n.ptx-content .exercisegroup > article,\n.ptx-content .exercisegroup-exercises > article {\n    margin-left: 2em;\n}\n.ptx-content .exercisegroup .cols2 > article {\n    margin-left: 1.25em;\n}\n.ptx-content .exercisegroup > .introduction,\n.ptx-content .exercisegroup > .conclusion {\n    margin-left: 0;\n}\n.ptx-content .exercisegroup > .introduction {\n    margin-top: 1.25em;\n    margin-top: 0;\n}\n.ptx-content .exercisegroup > .introduction > .para:first-child::before {\n    content: '\\25a0\\2009';\n   /* font-size: 70%; */\n    color: #06a;\n    position: relative;\n    top: -1px;\n    right: 1px;\n}\n.ptx-content .exercisegroup > .heading + .introduction > .para:first-child::before {\n    content: '\\2003';\n}\n\n.ptx-content .exercisegroup > .introduction > .para:first-child {\n    margin-top: 0;\n}\n\n\n/* this > may be too restrictive.  The purpose is to not put a\n   top margin on an article at the top of a knowl */\n.ptx-content section > article, .ptx-content section > section.paragraphs, .ptx-content .paragraphs > article {\n    margin-top: 1.25em;\n}\n.ptx-content section article + article,\n.ptx-content section .introduction + article,\n.ptx-content section .para + article,\n.ptx-content section .posterior + article {\n    margin-top: 1.75em;\n}\n.ptx-content section article > .introduction + article {\n    margin-top: 1em;\n}\n\n.ptx-content section article > .discussion-like {\n    margin-top: 1em;\n}\n.ptx-content section article > .discussion-like .para {\n    margin-top: 1em;\n}\n\n.ptx-content article + .posterior {\n    margin-top: 0.5em;\n}\n.ptx-content section .para + .tabular-box {\n    margin-top: 0.75em;\n}\n.ptx-content section .tabular-box + .tabular-box {\n    margin-top: 1.0em;\n}\n.ptx-content section .proof {\n    margin-top: 0.75em;\n}\n\n.ptx-content section > pre, .ptx-content .para + pre {\n    margin-top: 1.25em;\n}\n\n.ptx-content ol .para + .para, .ptx-content ul .para + .para {\n    margin-top: 1em;\n}\n\n/* see Ex 29 https://yoshiwarabooks.org/linear-functions.html\nand ex 2.91 in\nhttps://yoshiwarabooks.org/mfg/MathModels.html */\n.ptx-content .introduction + .sidebyside,\n.ptx-content .para + .sidebyside,\n.ptx-content ol + .sidebyside,\n.ptx-content ul + .sidebyside {\n    margin-top: 1em;\n}\n\n.ptx-content section .heading,\n.ptx-content article .heading {\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    font-weight: 700;\n    color: inherit;\n}\n.ptx-content article .exercise-stage {\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    font-weight: 700;\n    color: inherit;\n    font-size: 100%;\n    margin-top: 0.4em;\n}\n\n.ptx-content article > .heading + .para {\n    margin-top: 0;\n}\n.ptx-content section .heading + .para,\n.ptx-content section .title + .para, /* list items have bare .title, not in a .heading */\n.ptx-content section .heading + .introduction > .para:first-child,\n.ptx-content section .blob > .para:first-child {\n    margin-top: 0.25em;\n}\n.ptx-content section .heading + article { /* , .ptx-content section header + article { */\n    margin-top: 1em;\n}\n.ptx-content section .heading + .sidebyside {\n    margin-top: 1em;\n}\n\n.ptx-content a > .heading { display: inline;}\n\n.ptx-content section > .heading {\n    font-size: 1.75em;\n    line-height: 1.25em;\n    margin-top: 1em;\n    margin-bottom: 0.35em;\n}\n.ptx-content section section > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin-bottom: 0;\n}\n.ptx-content .paragraphs > .heading {\n    font-size: 1.125em;\n    line-height: 1.125em;\n    display: inline;\n}\n/*\n.ptx-content .paragraphs .heading {\n    display: inline;\n}\n*/\n\n.ptx-content .paragraphs .heading + .para {\n    display: inline;\n}\n.ptx-content .para.logical > .para:first-child {\n    display: inline;\n}\n\n/* next is for runestone multiple choice */\n.ptx-content  .runestone label > .para {\n    display: inline;\n}\n/* the next are to avoid stlping a .para as inline, because\n * inline styling messes up the meaning of line-height.\n * */\n\n.ptx-content .paragraphs .para .title {\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    font-size: 1.125em;\n    font-weight: 700;\n}\n\n.ptx-content .paragraphs > .heading {\n    margin-top: 0;\n}\n\n.ptx-content .paragraphs + .paragraphs {\n    margin-top: 3em;\n}\n\n.ptx-content article .paragraphs > .heading {\n    font-size: 1.05em;\n}\n.ptx-content section section section > .heading {\n    font-size: 1.40em;\n    line-height: 1.15em;\n    margin-top: 0.75em;\n}\n@media screen and (max-width: 480px) {\n    .ptx-content section > .heading {\n        font-size: 1.5em;\n        line-height: 1.33em;\n        margin-top: 1em;\n    }\n    .ptx-content section section > .heading {\n        font-size: 1.3em;\n        line-height: 1.15em;\n    }\n    .ptx-content section section section > .heading {\n        font-size: 1.15em;\n        line-height: 1em;\n    }\n}\n\n.ptx-content .abstract {\n    margin: 4em 2em;\n}\n.ptx-content .abstract > .title {\n    font-size: 1.125em;\n    font-weight: 600;\n    line-height: 1.125em;\n    display: inline;\n}\n.ptx-content .abstract > .title::after {\n    content: \".\\2009\\2009\\2009\";\n}\n.ptx-content .abstract > .title + .para {\n    display: inline;\n}\n\n/*       -----      */\n\n\n.ptx-content article > .heading,\n.ptx-content article > a .heading {\n    font-size: 1.125em;\n    line-height: 1.125em;\n    margin-top: 0;\n    display: inline;\n}\n.ptx-content .discussion-like > .heading {\n    font-size: 1.0em;\n    line-height: 1.125em;\n    margin-top: 0;\n    display: inline;\n}\n.ptx-content .discussion-like.discussion > .heading .codenumber,\n.ptx-content .discussion-like.discussion > .heading .space,\n.ptx-content .discussion-like.discussion > .heading .period {\n    display: none;\n}\n.ptx-content .discussion-like.discussion > .heading .type::after {\n    content: \". \";\n}\n.ptx-content .discussion-like.status > .heading {\n    display: none;\n}\n.ptx-content .discussion-like.status > .heading + .para,\n.ptx-content .discussion-like.status > .para {\n    font-style: italic;\n    display: block;\n    padding-left: 1em;\n}\n\n\n.ptx-content article > .heading::after,\n.ptx-content .discussion-like > .heading::after,\n.ptx-content .paragraphs > .heading::after,\n.ptx-content article > a > .heading::after {\n    content: \"\\2009\";\n}\n/* Currently only for Solution to example */\n.ptx-content .posterior .heading {\n    font-weight: normal;\n    font-size: 1.125em;\n    line-height: 1.125em;\n    margin-top: 0;\n}\n\n/*\n * Contents of articles\n */\n.ptx-content article > .heading + .para,\n.ptx-content .discussion-like > .heading + .para,\n.ptx-content article > .heading + .introduction,\n.ptx-content article > .heading + .introduction > .para:first-child {\n    display: inline;\n}\n/* when a list is the only thing in an environment with a border,\n   there is too much space to the left */\n.ptx-content article > .heading + ol,\n.ptx-content article > .heading + ul {\n    padding-left: 1.5em;\n}\n.ptx-content article.theorem-like .para,\n.ptx-content article.theorem-like li {\n    font-style: italic;\n}\n.ptx-content article.theorem-like .emphasis {\n    font-weight: 700;\n}\n\n.ptx-content ol, .ptx-content ul {\n    margin-bottom: 0;\n}\n.ptx-content li {\n    margin-bottom: 0;\n}\n.ptx-content li .title {\n    font-size: 100%;\n    font-weight: normal;\n    font-style: italic;\n}\n.ptx-content article.theorem-like li  .title {\n    font-weight: 600;\n    font-style: normal;\n    font-size: 96%;\n}\n\n.ptx-content figure {\n    margin-bottom: 0;\n}\n\n.ptx-content .heading {\n    margin-top: 0;\n    margin-bottom: 0;\n}\n\n.ptx-content .conclusion {\n    margin-top: 1em;\n}\n.ptx-content .conclusion > .para:first-child {\n    margin-top: 0.5em;\n}\n\n.ptx-content ol, .ptx-content ul {\n    margin-top: 0.75em;\n}\n.ptx-content .exercise-like > ol:first-child,\n.ptx-content .exercise-like > ul:first-child {\n    margin-top: 0;\n}\n.ptx-content .heading + ol, .ptx-content .heading + ul {\n    margin-top: 0.45em;\n}\n.ptx-content li > .heading + ol, .ptx-content li > .heading + ul {\n    margin-top: 0.25em;\n}\n.ptx-content li > .heading + ol > li:nth-child(1),\n.ptx-content li > .heading + ul > li:nth-child(1) {\n    margin-top: 0;\n}\n.ptx-content li > .heading + ol.cols2 > li:nth-child(2),\n.ptx-content li > .heading + ul.cols2 > li:nth-child(2) {\n    margin-top: 0;\n}\n\n.ptx-content li {\n    margin-top: 0.5em;\n}\n.ptx-content li > .para:first-child {\n    margin-top: 0;\n}\n.ptx-content article .para:first-child {\n    margin-top: 0;\n}\n\n.ptx-content ol ol, .ptx-content ol ul,  .ptx-content ul ol, .ptx-content ul ul {\n    margin-top: 0.5em;\n}\n\n.ptx-content .frontmatter > .heading {\n    display: block;\n    text-align: center;\n}\n.ptx-content .frontmatter > .heading .title, .ptx-content .book > .heading .title {\n    font-size: 1.3em;\n}\n.ptx-content .frontmatter > .heading .subtitle, .ptx-content .book > .heading .subtitle {\n    display: block;\n    font-weight: normal;\n    color: #666666;\n    font-size: 0.875em;\n    line-height: 1.42857em;\n    margin-top: 0.35714em;\n}\n\n.ptx-content .frontmatter .author:first-of-type {\n    margin-top: 4em;\n}\n.ptx-content .frontmatter > .para:first-of-type {\n    margin-top: 4em;\n}\n.ptx-content .frontmatter > .author,\n.ptx-content .frontmatter > .credit {\n    margin-top: 2em;\n    text-align: center;\n}\n.ptx-content .frontmatter > .author .author-name {\n    font-size: 120%;\n}\n.ptx-content .frontmatter .date {\n    display: block;\n    margin-top: 2em;\n    text-align: center;\n}\n.ptx-content .frontmatter .credit .title {\n    font-size: 1em;\n}\n.ptx-content .frontmatter .credit .author {\n    font-size: 0.9em;\n    margin-top: 0.75em;\n}\n.ptx-content .frontmatter .author-info {\n    font-size: 90%;\n}\n.ptx-content a[href^=\"mailto:\"] {\n    white-space: pre;\n}\n\n.ptx-content .colophon .credit {\n  margin-top: 1em;\n}\n\nbutton {\n   font: inherit;\n}\n\n.print-button {\n\tposition: relative;\n\tright: 2px;\n\ttop: 66px;\n\tbackground-color: LightGreen;\n\tz-index: 1;\n\tmargin-top: -4em;\n\tfloat: right;\n}\n\n@media print {\n    .pretext .ptx-masthead,\n    .pretext .ptx-navbar,\n     body.pretext > a.assistive,\n    .pretext .ptx-page > .ptx-sidebar,\n    .pretext  .ptx-page-footer,\n    .pretext .ptx-main > div.ptx-content-footer {\n       display:none;\n        border:none;\n    }\n    .pretext .ptx-page main.ptx-main {\n        margin-left:0;\n        left:auto;\n        border:none;\n        box-shadow:none;\n        padding: 0;\n    }\n    .pretext .ptx-page .ptx-main .ptx-content { margin-top:0 }\n    .pretext .ptx-page .ptx-main .ptx-content.ptx-content section { margin-top:1em }\n    .pretext .ptx-page .ptx-main .ptx-content.ptx-content section .heading { margin-top:0 }\n\n    /* over-ride print.less */\n    .pretext a[href]::after {\n         content: \"\";\n     }\n\n\t/* don't print the print-button */\n\t.print-button {\n\t\tdisplay: none;\n\t}\n}\n\n/* printing for one-page worksheets */\n\n@media print {\n    body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n       width: 820px;\n       max-width: 820px;\n       font-size: 12.5px;\n    }\n    body.standalone.worksheet {\n        margin: 0;\n    }\n    body.standalone .ptx-content section.worksheet {\n        border: none;\n    }\n    body.standalone.worksheet .ptx-masthead,\n    body.standalone.worksheet .ptx-page-footer {\n        display: none;\n    }\n\n    body.standalone.worksheet.has-sidebar-left.mathbook-loaded .ptx-page .ptx-main {\n        margin: 0;\n    }\n\n    body.standalone.worksheet .ptx-page > .ptx-main .ptx-content {\n        margin: 0;\n    }\n    body.standalone.worksheet .ptx-content section.onepage {\n        max-height: 100%;\n        max-width: 100%;\n        overflow: hidden;\n        page-break-after: always;\n/*\n        height: 1243px;\n*/\n        border: none;\n        page-break-inside: avoid;\n     }\n    body.standalone.worksheet .ptx-content .onepage.lastpage {\n        margin-bottom: -2em;  /* to avoid blank space overflow causing an extra blank page */\n        page-break-after: auto;\n     }\n    body.standalone.worksheet.a4 .ptx-content .onepage {\n/*\n        height: 1320px;\n*/\n    }\n    body.standalone.worksheet .ptx-content .onepage div.workspace,\n    body.standalone.worksheet .ptx-content .onepage div.workspace.squashed.tight {\n        border: none;\n        padding: 0;\n        background: none !important;\n    }\n    body.standalone.worksheet a {\n        color: black;\n    }\n\n    body.standalone.worksheet .ptx-page  .ptx-main {\n        padding: 0;\n    }\n\n    body.standalone.worksheet.mathbook-loaded .ptx-page .ptx-main .ptx-content.ptx-content section.onepage {\n        padding-bottom: 20px;  /* to help prevent flow onto the next page, particularly in Safari */\n                              /* the page is not full length, but what is missing was blank anyway */\n/*\n        margin: 0;\n*/\n    }\n\n    @page { margin: 0 }\n}\n\n.hidden {\n  display: none;\n}\n\n.ptx-navbar .preferences_menu_holder .active  > li {\n  color: #ddd;\n}\n.ptx-navbar .preferences_menu_holder > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 2px 24px 2px 8px;\n}\n.ptx-navbar .preferences_menu_holder > ol > li > ol > li:focus {\n  background: #eef;\n  border: 2px solid #909;\n  padding: 4px 4px 2px 4px;\n}\n\n.ptx-navbar .preferences_menu_holder .active .selected {\n  background: #eef;\n  color: #111;\n}\n.ptx-navbar .button.user-preferences-button {\n  overflow: visible;\n  display: none;\n}\n.preferences_menu_holder {\n  z-index: 30;\n  background: #fee;\n  color: #222;\n  position: absolute;\n  left: -11em;\n  top: 4em;\n}\n.preferences_menu_holder ol {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n.preferences_menu_holder > ol {\n  width: 12.5em;\n}\n.preferences_menu_holder > ol > li {\n  padding: 4px 26px 4px 10px;\n}\n.preferences_menu_holder ol li ol {\n  z-index: 40;\n  position: absolute;\n  left: 13em;\n  top: -2em;\n  background: #fee;\n}\n.preferences_menu_holder ol li ol li {\n  padding: 6px 6px 4px 6px;\n  display: flex;\n  align-items: center;\n}\n.preferences_menu_holder ol.fonts:not(.hidden) {\n    display: grid;\n    grid-template-columns: 1fr 1fr 1fr 1fr;\n}\n.preferences_menu_holder ol.fonts li:nth-child(8n+1),\n.preferences_menu_holder ol.fonts li:nth-child(8n+2),\n.preferences_menu_holder ol.fonts li:nth-child(8n+3),\n.preferences_menu_holder ol.fonts li:nth-child(8n+4) {\n    background-color: #eff;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+2) {\n width: 4em;\n justify-content: center;\n text-align: center;\n align-items: center;\n}\n.preferences_menu_holder ol.fonts li:nth-child(4n+1) {\n  padding-left: 14px;\n}\n\n.preferences_menu_holder .wrap_to_submenu {\n  float: right;\n  line-height: 0.95em;\n  margin-right: -7px;\n}\n.preferences_menu_holder .to_submenu {\n  position: absolute;\n}\n.preferences_menu_holder .avatars li {\n  font-size: 200%;\n  text-align: center;\n}\n.preferences_menu_holder .fontfamily .name {\n  margin-right: 2em;\n}\n.preferences_menu_holder .fontfamily .sample {\n  margin-left: auto;\n}\n.preferences_menu_holder .fonts .byunits {\n  font-size: 80%;\n  margin-bottom: -0.3em;\n}\n#choose_topic {\n  background: #eef;\n}\n.ffcheck,\n.atmospherecheck,\n.avatarcheck,\n.rulercheck,\n.motioncheck {\n  width: 1em;\n  margin-left: 0.2em;\n  margin-right: 0.7em;\n  font-size: 11pt;\n}\n\n.preferences_menu_holder .moveQ {\n  padding-top: 0.5em;\n  border-top: 0.3em solid #eef;\n}\n.preferences_menu_holder .moveQ,\n.preferences_menu_holder .moveQ ~ li {\n  background: #efe;\n}\n\n[data-ruler=\"greybar\"] .onelineX:hover{\n    padding-top: 2px;\n    margin-top: -2px;\n    padding-bottom: 2px;\n    margin-bottom: -2px;\n    background-color: #f3f3f3;\n}\n[data-atmosphere*=\"dark\"][data-ruler=\"greybar\"] .onelineX:hover{\n    color: #333;\n}\n[data-ruler=\"lightbox\"] .onelineX {\n    background-color: #e3e3e3;\n}\n[data-ruler=\"lightbox\"] .onelineX:hover{\n    padding-top: 2px;\n    margin-top: -2px;\n    padding-bottom: 2px;\n    margin-bottom: -2px;\n    background-color: inherit;\n}\n[data-ruler=\"sunrise\"] .onelineX:hover ~ .onelineX {\n    background-color: #e3e3e3;\n}\n[data-ruler=\"sunrise\"] .para:hover ~ * .onelineX {\n    background-color: #e3e3e3;\n}\n[data-ruler=\"sunrise\"] section:hover ~ * .onelineX {\n    background-color: #e3e3e3;\n}\n\n[data-ruler=\"sunriseunderline\"] .onelineX:hover{\n    background-color: inherit;\n    border-bottom: 2px solid black;\n    margin-bottom: -2px;\n    position: relative;\n    z-index: 10;\n}\nxxxxxx[data-ruler=\"sunriseunderline\"] .onelineX:hover + .onelineX {\n    margin-top: -2px;\n}\n[data-ruler=\"sunriseunderline\"] .onelineX:hover ~ .onelineX {\n    background-color: #e3e3e3;\n}\n[data-ruler=\"sunriseunderline\"] .para:hover ~ * .onelineX {\n    background-color: #e3e3e3;\n}\n[data-ruler=\"sunriseunderline\"] section:hover ~ * .onelineX {\n    background-color: #e3e3e3;\n}\n\n\n[data-ruler=\"underline\"] .onelineX:hover{\n    background-color: inherit;\n    border-bottom: 1px solid black;\n    margin-bottom: -1px;\n}\n[data-ruler=\"lunderline\"] .onelineX:hover{\n    background-color: inherit;\n    border-bottom: 1px solid black;\n    border-left: 1px solid black;\n    padding-left: 4px;\n    margin-left: -5px;\n    margin-bottom: -1px;\n}\n[data-atmosphere*=\"dark\"][data-ruler*=\"underline\"] .onelineX:hover{\n    border-bottom: 1.5px solid #ddd;\n    margin-bottom: -1.5px;\n}\n[data-atmosphere*=\"dark\"][data-ruler=\"lunderline\"] .onelineX:hover{\n    border-left: 1.5px solid #ddd;\n    padding-left: 3.5px;\n    margin-left: -5px;\n}\n\n\n.material-symbols-outlined {\n    font-variation-settings:\n    'FILL' 0,\n    'wght' 400,\n    'GRAD' 0,\n    'opsz' 24\n}\n\n.ptx-footnote {\n    display: inline-block;\n}\n\n.ptx-footnote[open] {\n    display: contents;\n}\n\n.ptx-footnote[open] .ptx-footnote__number {\n    visibility: hidden;\n}\n.ptx-footnote[open] .ptx-footnote__number::before {\n    font-size: 0.6rem;\n    content: \"[x]\";\n    visibility: visible;\n    vertical-align: super;\n}\n\n.ptx-footnote__number {\n    display: inline;\n    cursor: pointer;\n}\n\n.ptx-footnote__number::marker {\n    content: \"\";\n}\n\n.ptx-footnote__contents {\n    display: block;\n    font-style: italic;\n    background: var(--knowlbackground);\n    border-radius: 6px;\n    padding: 0px 8px;\n    margin: 4px auto;\n    width: fit-content;\n    max-width: calc(100% - 60px);\n    border: 2px solid var(--knowlborder);\n}\n  \n\n/*******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n"
  },
  {
    "path": "css/legacy/pretext_add_on.css",
    "content": "\n.ptx-content section .para.credit + .para.credit {\n    margin-top: 0.25em;\n}\n.ptx-content section .para.credit > .title {\n    font-weight: 700;\n    margin-right: 0.5em;\n}\n/* .ptx-content section .para.credit > .title::after {\n    content: \": \";\n} */\n\n.ptx-content section .para.copyright {\n    margin-top: 2.5em;\n}\n.ptx-content section .para.license {\n    margin-top: 2.5em;\n}\n\n/* stacked headings in the solutions backmatter */\n.ptx-content section > .heading + .heading,\n.ptx-content section section > .heading + .heading {\n    margin-top: 0.5em;\n}\n.ptx-content section.solutions > h3.heading,\n.ptx-content section.solutions section > h3.heading {\n    font-size: 1.6em;\n}\n.ptx-content section.solutions > h4.heading,\n.ptx-content section.solutions section > h4.heading {\n    font-size: 1.45em;\n}\n.ptx-content section.solutions > h5.heading,\n.ptx-content section.solutions section > h5.heading {\n    font-size: 1.35em;\n}\n.ptx-content section.solutions > h6.heading,\n.ptx-content section.solutions section > h6.heading {\n    font-size: 1.25em;\n}\n\n.ptx-content .bibitem + .bibentry {\n    display: inline-block;\n    width: 90%;\n}\n.ptx-content .bibitem {\n    display: inline-block;\n    vertical-align: top;\n    width: 7%;\n    margin-right: 0;\n}\n\n.ptx-content figcaption {\n    font-weight: normal;\n}\n\n.ptx-content figcaption {\n    margin-top: 0.6em;\n    margin-left: auto;\n    margin-right: auto;\n/*  Commenting this out because the initial letter of some captions were cut off\n    text-indent: -30px;\n*/\n}\n\n.ptx-content figure.table-like figcaption:first-child {\n    font-style: oblique;\n    margin-top: 0;\n}\n.ptx-content figure.table-like figcaption:first-child .type,\n.ptx-content figure.table-like figcaption:first-child .codenumber {\n    font-style: normal;\n}\n\n.ptx-content section figcaption .codenumber,\n.ptx-content section figcaption .type {\n    font-weight: 700;\n    font-size: inherit;\n}\n\n.ptx-content figcaption .codenumber:after {\n    content: \"\\2002\";\n}\n.ptx-content figcaption .type:last-of-type::after {\n   /* so, not followed by a span.codenumber */\n   /* not sure where this is used */\n    content: \"\\2002\";\n}\n\n.ptx-content figcaption code.code-inline {\n    white-space: pre;\n}\n\n.ptx-content figure.figure > figcaption{\n    margin-top: 1em;\n}\n\n.ptx-content figure.listing > figcaption + * {\n    margin-top: 0.5em;\n}\n\n.ptx-content figcaption + .named-list-content {\n    margin-top: 0.6em;\n}\n.ptx-content figcaption + .named-list-content > .introduction > .para:first-child {\n    margin-top: 0;\n}\n.ptx-content figcaption + table,\n.ptx-content figcaption + .tabular-box {\n    margin-top: 0.5em;\n}\n\n.ptx-content .definition-like .para > .emphasis {\n    font-weight: 700;\n}\n.ptx-content em.alert {\n    font-weight: bold;\n}\n\n.unprocessed {\n    padding: 8px;\n    background-color: rgb(255,230,230)\n}\n\n.unprocessed .unprocessed {\n    margin: 8px;\n    background-color: rgb(255,200,255)\n}\n\n.unprocessed .unprocessed .unprocessed {\n    margin: 8px;\n    background-color: rgb(205,205,255)\n}\n\n.ptx-content section.introduction + section {\n    margin-top: 2em;\n}\n\n.ptx-content {\n    margin: 0;\n}\n\n.ptx-content .runestone.parsons_section {\n    display: inline-block;\n    max-width: unset;\n}\n\n.ptx-content .runestone.ac_section {\n    width: 60em;\n    max-width: unset;\n}\n.ptx-content .runestone.ac_section .ac_section {\n    max-width: unset;\n}\n.ptx-content .runestone.ac_section > div {\n    max-width: unset;\n}\n\n.ptx-content .runestone > .parsons {\n    width: 60em;\n    max-width: unset;\n}\n\n.ptx-content .runestone .parsons {\n    margin: 0;\n}\n.ptx-content .runestone.parsons_section > .parsons {\n    width: max-content;\n    padding-right: 1em;\n}\n.ptx-content .runestone .parsons .sortable-code-container {\n    text-align: unset;\n}\n.ptx-content .runestone .parsons .parsons-text,\n.ptx-content .runestone .parsons .parsons-controls {\n    margin-left: 0;\n    margin-right: 0;\n}\n.ptx-content .runestone .parsons .sortable-code + .sortable-code {\n    margin-right: 0;\n}\n\n.ptx-content .runestone .parsons .runestone_caption_text {\n    max-width: 660px;\n}\n\n.runestonebustmenu {\n   position: absolute;\n   right: 0;\n   top: 0;\n}\n.runestonebustmenu .dropdown-content {\n   position: absolute;\n   right: 2em;\n   left: unset;\n   top: 1em;\n}\n@media screen and (max-width: 800px) {\n/*\n    .runestonebustmenu { display: none }\n*/\n    nav .dropdown .dropdown-content {\n        top: unset;\n        bottom: 36px;\n    }\n\n    .activecode-toggle { display: none }\n}\n/* above may be obsolete because we do not have the runestonebustmenu class in overhaul?\n*/\n.pretext .navbar .dropdown {\n    height: 35px;\n}\n\n.ptx-content section section + section {\n    margin-top: 3em;\n}\n\n\n.ptx-content .sidebyside > .para, .ptx-content .sidebyside > figure, .ptx-content .sidebyside > img, .ptx-content .sidebyside > table, .ptx-content .sidebyside > tabular, .ptx-content .sidebyside > section, .ptx-content .sidebyside > .paragraphs {\n    display: inline-block;\n    margin: 0;\n}\n.ptx-content .sidebyside .sbspanel > table {\n/* see Sec 23.12 of sample article */\n    overflow-x: auto;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content .sidebyside figcaption {\n    padding-left: 1em;\n    padding-right: 0;\n    padding-bottom: 0;\n    margin: 0.75em 0 0 0;\n}\n\n\n.ptx-content figcaption {\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n}\n\n.ptx-content .sidebyside > .para {   /* what about sbspanel? */\n    width: 32%;\n    vertical-align: top;\n}\n\n.ptx-content .sidebyside > .para.left, .ptx-content .sidebyside > .para.middle, .ptx-content .sidebyside > .para.right {\n    vertical-align: middle;\n}\n\n.ptx-content .sidebyside > .para + img {\n    vertical-align: middle;\n}\n\n.ptx-content .sidebyside .sbsrow .sbsheader {\n    margin-top: 0;\n}\n\n.ptx-content .sbsgroup {\n    width: 100%;\n}\n\n.ptx-content .sidebyside {\n    width: 100%;\n}\n\n.ptx-content .sbsrow {\n    display: flex;\n    justify-content: space-between;\n}\n\n/* Components of three types of \"sbsrow\" */\n\n/* titles, totally centered text */\n.ptx-content .sbsheader {\n    text-align: center;\n    justify-content: center;\n    font-size: 1em;\n}\n\n.ptx-content .sbspanel:empty { /* can only happen when partially created */\n    height: 10em;\n    background-color: rgb(221, 221, 255);\n}\n/* containers of desired width for actual content */\n.ptx-content .sbspanel {\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-start;\n}\n.ptx-content .sbspanel.top {  /* also the default */\n    justify-content: flex-start;\n}\n.ptx-content .sbspanel.middle {\n    justify-content: center;  /* should that be space-between? */\n}\n.ptx-content .sbspanel.bottom {\n    justify-content: flex-end;\n}\n\n.ptx-content .sbspanel > .para:first-child {\n    margin-top: 0;\n}\n\n/* fixed-width items are centered horizontally in their panel */\n/* always used in conjunction with sbspanel                   */\n.ptx-content .fixed-width {\n    align-items: center;\n}\n\n/* captions, centered until word-wrapped */\n.ptx-content .sbscaption {\n    justify-content: center;\n}\n\n\n/*  good for table, bad for image\n.ptx-content .sidebyside {\n    overflow-x: scroll;\n}\n*/\n\n.ptx-content table {\n    border-spacing: 0;\n}\n\n.ptx-content table {\n    border-collapse: collapse;\n}\n\n.ptx-content .image-box + table,\n.ptx-content .image-box + .sidebyside > .sbsrow:first-child > .sbspanel > table:first-child {\n    margin-top: 1.5em;\n}\n\n.ptx-content table tr td,\n.ptx-content table tr th {\n    padding-top: 2px;\n    padding-bottom: 2px;\n    padding-left: 5px;\n    padding-right: 5px;\n}\n.ptx-content table tr td {\n    font-size: 90%;\n}\n\n.ptx-content table tr td.l {\n    text-align: left;\n}\n.ptx-content table tr td.c {\n    text-align: center;\n}\n.ptx-content table tr td.r {\n    text-align: right;\n}\n.ptx-content table tr td.j {\n    text-align: justify;\n}\n.ptx-content table tr td.lines {\n        white-space: nowrap;\n}\n\n\n.ptx-content table tr td.t {\n    vertical-align: top;\n}\n.ptx-content table tr td.b {\n    vertical-align: bottom;\n}\n.ptx-content table tr td.m {\n    vertical-align: middle;\n}\n\n.ptx-content table tr td.vv {\n    border-left: 2px solid #000;\n    border-right: 2px solid #000;\n}\n\n.ptx-content table tr td.vcv {\n    border-left: 2px solid #000;\n    border-right: 2px solid #000;\n    text-align: center;\n}\n\n.ptx-content table tr td.vcvv {\n    border-left: 2px solid #000;\n    border-right: 4px solid #000;\n    text-align: center;\n}\n\n.ptx-content table tr td.vlv {\n    border-left: 2px solid #000;\n    border-right: 2px solid #000;\n    text-align: left;\n}\n\n.ptx-content table tr td.vrv {\n    border-left: 2px solid #000;\n    border-right: 2px solid #000;\n    text-align: right;\n}\n\n.ptx-content table tr td.rv {\n    border-right: 2px solid #000;\n    text-align: right;\n}\n\n.ptx-content table tr td.vr {\n    border-left: 2px solid #000;\n    text-align: right;\n}\n\n.ptx-content table tr td.lv {\n    border-right: 2px solid #000;\n    text-align: left;\n}\n\n.ptx-content table tr td.vl {\n    border-left: 2px solid #000;\n    text-align: left;\n}\n.ptx-content table tr td.cv {\n    border-right: 2px solid #000;\n    text-align: center;\n}\n\n.ptx-content table tr td.Xv {\n    border-right: 2px solid #000;\n    text-align: left;\n}\n\n.ptx-content table tr td.vc {\n    border-left: 2px solid #000;\n    text-align: center;\n}\n\n.ptx-content table tr td.hline {\n    padding: 0;\n}\n\n.ptx-content table tr td.hlinethick {\n\n    padding-left: 0px;\n    padding-right: 0px;\n\n}\n\n.ptx-content table tr td.hline hr  {\n\n    margin-top:0;\n    margin-bottom:0;\n    margin-left: -1px;\n    margin-right: -1px;\n    border: 1px solid rgb(0,0,0);\n\n}\n\n.ptx-content table tr td.hlinethick hr  {\n\n    margin-top:0;\n    margin-bottom:0;\n    margin-left: -1px;\n    margin-right: -1px;\n    border: 2px solid rgb(0,0,0);\n\n}\n\n.center table {\n    text-align: center;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content table tr th.b1,\n.ptx-content table tr td.b1 {\n    border-bottom: 1px solid #000;\n}\n.ptx-content table tr th.b2,\n.ptx-content table tr td.b2 {\n    border-bottom: 2px solid #000;\n}\n.ptx-content table tr th.b3,\n.ptx-content table tr td.b3 {\n    border-bottom: 3px solid #000;\n}\n.ptx-content table tr th.b0,\n.ptx-content table tr td.b0 {\n    border-bottom: none;\n}\n\n.ptx-content table tr th.t1,\n.ptx-content table tr td.t1 {\n    border-top: 1px solid #000;\n}\n.ptx-content table tr th.t2,\n.ptx-content table tr td.t2 {\n    border-top: 2px solid #000;\n}\n.ptx-content table tr th.t3,\n.ptx-content table tr td.t3 {\n    border-top: 3px solid #000;\n}\n.ptx-content table tr th.t0,\n.ptx-content table tr td.t0 {\n    border-top: none;\n}\n\n.ptx-content table tr th.r1,\n.ptx-content table tr td.r1 {\n    border-right: 1px solid #000;\n}\n.ptx-content table tr th.r2,\n.ptx-content table tr td.r2 {\n    border-right: 2px solid #000;\n}\n.ptx-content table tr th.r3,\n.ptx-content table tr td.r3 {\n    border-right: 3px solid #000;\n}\n.ptx-content table tr th.r0,\n.ptx-content table tr td.r0 {\n    border-right: none;\n}\n\n.ptx-content table tr th.l1,\n.ptx-content table tr td.l1 {\n    border-left: 1px solid #000;\n}\n.ptx-content table tr th.l2,\n.ptx-content table tr td.l2 {\n    border-left: 2px solid #000;\n}\n.ptx-content table tr th.l3,\n.ptx-content table tr td.l3 {\n    border-left: 3px solid #000;\n}\n.ptx-content table tr th.l0,\n.ptx-content table tr td.l0 {\n    border-left: none;\n}\n\n.ptx-content table tr td img {\n    max-width: 200px;\n    margin-right: 30px;\n}\n\n.ptx-content table.notation-list tr th {\n    text-align: left;\n}\n.ptx-content table.notation-list tr td {\n    text-align:left;\n    vertical-align:top;\n}\n.ptx-content table.notation-list tr th {\n    margin-left: 2em;\n}\n.ptx-content table.notation-list tr td {\n    margin-left: 1em;\n}\n\n.ptx-content tr th.r0.l0,\n.ptx-content tr td.r0.l0 {\n    padding-left: 0.8em;\n    padding-right: 0.8em;\n}\n\n.ptx-content table tr td span.decimal {\n    float: left;\n    text-align: right;\n}\n\n.ptx-content table tr.header-vertical th {\n    writing-mode: vertical-rl;\n    padding-left: 2em;\n/*\n    transform: rotate(180deg);\n*/\n}\n\n.ptx-content table + article {\n    margin-top: 1em;\n}\n\n.ptx-content .hidden-knowl-wrapper .hiddenproof,\n.ptx-content .blob > article.hiddenproof,\n.ptx-content section > article.hiddenproof  {\n    margin-top: 0.3em;\n}\n\n.ptx-content .hidden-knowl-wrapper article {\n    display: inline;\n}\n\n/* next disabled accidentally or on purpose? */\n.apretext-content figure.figure-like {\n    overflow: auto;\n}\n.ptx-content figure.figure-like {\n    margin-left: 0;\n    margin-right: 0;\n}\n.ptx-content figure.table-like {\n    margin-left: 30px;\n    margin-right: 30px;\n}\n.ptx-content figure.table-like.list {\n    margin-right: 0;\n}\n\n/* why was this ever added ?\n.ptx-content figure.figure-like figcaption {\n    overflow: hidden;\n}\n*/\n\n.ptx-content a > tt {\n    font-size: 110%;\n}\n\n.ptx-content section .videolink a:link {\n    background-size: 0;\n}\n.ptx-content .playvideo {\n    cursor: pointer;\n}\n\n.ptx-content .videobig {\n    padding-right: 0.3em;\n    padding-left: 0.3em;\n    font-size: 85%;\n/*    background: #ffff66;\n*/\n    background-color: rgba(255,255,100,0.9);\n    display: inline-block;\n    position: relative;\n    top: 100px;\n    cursor: zoom-in;\n}\n.ptx-content .videobig.nofigure {\n    /* not actually used */\n}\n.ptx-content .knowl .videobig {\n    display: none;\n}\n\n.ptx-content .videosmall {\n    padding-right: 0.3em;\n    padding-left: 0.3em;\n    font-size: 80%;\n    background-color: rgba(255,255,100,0.9);\n    display: inline-block;\n    position: absolute;\n    left: -250px;\n    z-index: 1001;\n    cursor: zoom-out;\n}\n\n\n.ptx-content .exercise-like ol li table {\n    margin-bottom: 0.5em;\n}\n\n.ptx-content .exercise-like > ol li + li {\n    margin-top: 0.5em;\n}\n.ptx-content .solution > ol li + li {\n    margin-top: 0.5em;\n}\n\n/* should be the default\n.ptx-content section.worksheet > .heading,\n.ptx-content section section.worksheet > .heading,\n.ptx-content section section section.worksheet > .heading {\n  display: block;\n}\n*/\n.ptx-content section.worksheet > .heading > .codenumber {\n    display: inline-block;\n    vertical-align: top;\n}\n.ptx-content section.worksheet > .heading > .title {\n    display: inline-block;\n    max-width: 70%;\n}\n.ptx-content .heading .print-links {\n    display: inline-block;\n    float: right;\n    vertical-align: top;\n    width: 19%;\n    text-align: right;\n}\n.standalone .ptx-content .heading .print-links {\n    display: none;\n}\n.standalone.worksheet .previous-button,\n.standalone.worksheet .up-button,\n.standalone.worksheet .next-button {\n    display: none;\n}\n.standalone.worksheet .ptx-navbar .toc-toggle {\n    display: none;\n}\n.standalone.worksheet .ptx-content [data-knowl]:hover,\n.standalone.worksheet .ptx-content [data-knowl]:active,\n.standalone.worksheet .ptx-content [data-knowl].active {\n    background: none;\n    color: black;\n}\n.standalone.worksheet .ptx-content [data-knowl]::after {\n    border: none;\n}\n.standalone.worksheet .ptx-content .knowl-content {\n    padding: 0;\n}\n.standalone.worksheet .ptx-content article > .knowl-output.original {\n    margin: 0;\n}\n\n.ptx-content .appendix .heading > .type {\n    display: inline;\n}\n.ptx-content .heading.hide-type > .type {\n    display: none;\n}\n\n.ptx-content .heading .print-links > a {\n    font-family: \"Open Sans\";\n    font-size: 0.6em;\n    font-weight: bold;\n    padding: 0.1em 0.2em;\n    background: #ffa;\n    border: 2px solid green;\n}\n.ptx-content .heading .print-links > a.us {\n    background: #eef;\n    color: #9b1c2c;\n    border-color: #041E42;\n}\n.ptx-content .heading .print-links > a + a {\n    margin-left: 0.25em;\n}\n\n.ptx-content .autopermalink {\n    position: absolute;\n    display: inline-block;\n    top: 3px;\n    left: -1.9em;\n    font-size: 85%;\n    color: #a00;\n    opacity: 0.05;\n    margin-top: 0.1em;\n}\n\n.ptx-content li > .para > .autopermalink {\n    left: -3.4em;\n    top: 0;\n}\n.ptx-content .autopermalink a {\n    color: #a00;\n}\n.ptx-content .autopermalink > * {\n    padding-left: 0.2em;\n    padding-right: 0.2em;\n}\n/* when jumping to a permalink, push down so sticky navbar does not cover */\n:target {\n    /* scroll-snap-margin-top: 45px;   for safari, except it doesn't work */\n    scroll-margin-top: 45px;\n}\n\n.ptx-content .para > .autopermalink {\n    margin-top: 0.2em;\n}\n\n.ptx-content .exercises > .autopermalink,\n.ptx-content .introduction > .autopermalink,\n.ptx-content .glossary > .autopermalink {\n    margin-top: 0.3em;\n/*\n    margin-top: 1em;\n*/\n}\n.ptx-content .appendix > .autopermalink,\n.ptx-content .chapter > .autopermalink,\n.ptx-content .index > .autopermalink,\n.ptx-content .section > .autopermalink {\n    margin-top: 0.3em;\n/*\n    margin-top: 2.7em;\n*/\n}\n.ptx-content .subsection > .autopermalink,\n.ptx-content .references > .autopermalink,\n.ptx-content .exercises > .autopermalink {\n    margin-top: 0.3em;\n/*\n    margin-top: 2.0em;\n*/\n}\n.ptx-content .figure-like > .autopermalink {\n    margin-top: 1.4em;\n}\n\n.ptx-content .subsubsection > .autopermalink {\n    margin-top: 0;\n}\n.ptx-content .exercisegroup > .autopermalink {\n/*\n    margin-top: 0.3em;\n*/\n    margin-top: 1.4em;\n}\n\n.ptx-content .autopermalink:hover {\n    opacity: 1;\n    background: #eeddff;\n}\n.ptx-content .permalink-alert {\n    position: absolute;\n    top: -3em;\n    left: 5em;\n    padding: 1.5em 2em;\n    background: #fff;\n    border: 3px solid blue;\n    z-index: 2001;\n}\n\n.navbar .indexnav {\n    position: absolute;\n    top: 46px;\n    right: 0;\n}\n.mininav {\n    float: left;\n    padding-top: 0.7ex;\n    padding-left: 1ex;\n}\n\n/* the index at the back of the book */\n\n.indexjump {\n    margin-left: 1.5ex;\n    margin-top: 0.2ex;\n    padding-top: 0;\n    float: left;\n    line-height: 0.95;\n}\n\n.indexjump a {\n    padding-left: 2.5px;\n    padding-right: 0.5px;\n    width: 2.5ex;\n/*\n *  *  omitted, because we put a space in the source\n *      padding-right: 3px;\n *      */\n    margin-right: -1px;\n    color: inherit;\n    font-size: 80%;\n    text-align: center;\n}\n.indexjump a::after{\n    content: \"\";\n    display: inline-block;\n}\n.indexjump a:nth-of-type(14){\n    padding-left: 1.8ex;\n}\n.indexjump a:last-child {\n    padding-right: 10px;\n}\n\n.indexjump a:hover {\n    background: #eeaaff;\n}\n\n.ptx-content .indexitem {\n    margin-top: 2px;\n}\n\n.ptx-content .subindexitem {\n    margin-left: 2em;\n    font-size: 95%;\n    margin-top: -1px;\n}\n\n.ptx-content .subsubindexitem {\n    margin-left: 3.5em;\n    font-size: 95%;\n    margin-top: -1px;\n}\n\n.ptx-content .indexknowl {\n    margin-left: 0.11em;\n}\n.ptx-content em + .indexknowl  {\n    margin-left: -0.25em;\n}\n.ptx-content .indexknowl a {\n    margin-left: 2em;\n}\n\n.ptx-content .indexitem .see,\n.ptx-content .subindexitem .see,\n.ptx-content .subsubindexitem .see {\n    margin-left: 1em;\n    margin-right: 0;\n}\n.ptx-content .indexitem .seealso,\n.ptx-content .subindexitem .seealso,\n.ptx-content .subsubindexitem .seealso {\n    margin-left: 1em;\n    margin-right: 0;\n}\n.ptx-content .indexitem .see em,\n.ptx-content .subindexitem .see em,\n.ptx-content .subsubindexitem .see em,\n.ptx-content .indexitem .seealso em,\n.ptx-content .subindexitem .seealso em,\n.ptx-content .subsubindexitem .seealso em {\n    margin-right: 0.25em;\n    font-style: italic;\n}\n/*  note that multiple things after \"see\" are in separate spans */\n.ptx-content .indexitem .see + .see,\n.ptx-content .subindexitem .see + .see,\n.ptx-content .subsubindexitem .see + .see,\n.ptx-content .indexitem .seealso + .seealso,\n.ptx-content .subindexitem .seealso + .seealso,\n.ptx-content .subsubindexitem .seealso + .seealso {\n     margin-left: 0;\n     margin-right: 0;\n}\n\n.ptx-content .indexitem .indexknowl {\n    font-size: 90%;\n}\n\n.ptx-content .indexitem [data-knowl], .ptx-content .subindexitem [data-knowl], .ptx-content .indexitem [data-knowl]:hover {\n    padding-right: 2px;\n    padding-left: 2px;\n}\n.ptx-content .indexknowl [data-knowl]:hover, .ptx-content .indexknowl .active[data-knowl] {\n    margin-left: 2em;\n}\n\n.ptx-content .subindexitem .indexknowl {\n    font-size: 95%;\n}\n.ptx-content .subsubindexitem .indexknowl {\n    font-size: 95%;\n}\n\n.ptx-content .indexletter {\n    margin-top: 1.5em;\n}\n\n/* end index */\n\n.ptx-content .hidden-knowl-wrapper .heading {\n    display: inline;\n}\n.ptx-content .heading + .hidden-knowl-wrapper {\n    display: inline;\n}\n\n.ptx-content .cols2 .knowl-output, .ptx-content .cols3 .knowl-output, .ptx-content .cols4 .knowl-output, .ptx-content .cols5 .knowl-output, .ptx-content .cols5 .knowl-output {\n    width: 100%;\n}\n\n.ptx-content .cols2 + *, .ptx-content .cols3 + *, .ptx-content .cols4 + *, .ptx-content .cols5 + *, .ptx-content .cols6 + * {\n    clear: both;\n}\n/* does the next line eliminate the need for the previous line? */\n.ptx-content .cols2::after, .ptx-content .cols3::after, .ptx-content .cols4::after, .ptx-content .cols5::after, .ptx-content .cols6::after {\n    content: \"\";\n    display: block;\n    clear: both;\n}\n\n.ptx-content section > ol:last-child,\n.ptx-content section > ul:last-child {\n    margin-bottom: 1.5em;\n}\n/* because of */\n/* .ptx-content .colsN > li:last-child {\n    padding-bottom: 1em;\n}\n*/\n.ptx-content section > ol:last-child > li:last-child,\n.ptx-content section > ul:last-child > li:last-child {\n    padding-bottom: 0em;\n}\n\n/* does this do anything which is not accomplished by the colsN::after above? */\n/* seems not\n.ptx-content .cols2:last-child::after, .ptx-content .cols3:last-child::after, .ptx-content .cols4:last-child::after, .ptx-content .cols5:last-child::after, .ptx-content .cols6:last-child::after {\n    content: \"\";\n    display: block;\n    clear: both;\n}\n*/\n\n.ptx-content .cols2 > li:nth-child(2n+1),\n.ptx-content .cols3 > li:nth-child(3n+1),\n.ptx-content .cols4 > li:nth-child(4n+1),\n.ptx-content .cols5 > li:nth-child(5n+1),\n.ptx-content .cols6 > li:nth-child(6n+1) {\n    clear: left;\n}\n/* need to repeat for .colsN */\n.ptx-content .exercise-like ol.cols2 li {\n    margin-top: 0.5em;\n}\n\n.ptx-content .cols2 > li,\n.ptx-content .cols3 > li,\n.ptx-content .cols4 > li,\n.ptx-content .cols5 > li,\n.ptx-content .cols6 > li {\n    float: left;\n}\n\n.ptx-content .incontext {\n    display: block;\n    font-size: 85%;\n    text-align: right;\n}\n\n.ptx-content .terminology {\n  font-style: italic;\n  font-weight: bold;\n}\n\n.ptx-content .emphasis {\n    font-style: italic;\n}\n.ptx-content .emphasis .emphasis {\n    font-weight: bold;\n}\n\n/* the \"pink flash\" when navigating to a target\n*/\n:target {\n    animation: target-fade 15s 1;\n}\n@-webkit-keyframes target-fade {\n    0% { background-color: rgba(120,0,120,.3); }\n    100% { background-color: inherit;\n           opacity: 1; }\n}\n@-moz-keyframes target-fade {\n    0% { background-color: rgba(120,0,120,.3); }\n    100% { background-color: inherit;\n           opacity: 1; }\n}\n\n\n.ptx-content .autoterm [knowl], .ptx-content .autoterm [knowl]:after {\n    font-weight: inherit;\n    color: inherit;\n    padding: 0;\n    margin-bottom: inherit;\n    border-bottom: inherit;\n    border-bottom-color: inherit;\n}\n\n.ptx-content .autoterm [knowl]:hover {\n    background: #ffddff;\n    border-top: 2px dotted purple;\n    border-bottom: 1px dotted red;\n    border-top-left-radius: 0;\n    border-top-right-radius: 0;\n}\n\n.ptx-content ol li.custom-list-style-type {\n    list-style-type: none;\n}\n\n.ptx-content ol li.custom-list-style-type:before {\n     content: attr(label) \"\\00A0\\00A0 \";\n}\n\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker,\n.ptx-content li.no-marker {\n    list-style-type: none;\n}\n\n.ptx-content ol.decimal {\n    list-style-type: decimal;\n}\n.ptx-content ol.lower-alpha {\n    list-style-type: lower-alpha;\n}\n.ptx-content ol.upper-alpha {\n    list-style-type: upper-alpha;\n}\n.ptx-content ol.lower-roman {\n    list-style-type: lower-roman;\n}\n.ptx-content ol.upper-roman {\n    list-style-type: upper-roman;\n}\n.ptx-content ul.disc {\n    list-style-type: disc;\n}\n.ptx-content ul.square {\n    list-style-type: square;\n}\n.ptx-content ul.circle {\n    list-style-type: circle;\n}\n.ptx-content ol.no-marker,\n.ptx-content ul.no-marker {\n    list-style-type: none;\n}\n\n/* needed for dl, but probably won't cause harm elsewhere */\n.ptx-content section,\n.ptx-content article,\n.ptx-content figure {\n    clear: both;\n}\n\n/* dl is used for glossaries and descriptions lists.\n   Glossaries are simple:  bold word by itself on a line.\n        Definition indented on the next line.\n        Vertical space before the next term.\n\n   Description lists are more complicated.  The wider version\n   (refering to the horizontal indentation of the definition;\n    this is the default)\n   has the (wrapped) term inline with the definition.\n\n   The narrow version is complicated because the term is inline\n   with its definition if it fits, otherwise it is on the line above.\n   That means the vertical space between entries can't be handled by\n   a top margin on the dt.  Instead we have an ::after on the dd .\n */\n\n.ptx-content dl {\n    margin-top: 1em;\n    margin-left: 0;\n    margin-bottom: 0;\n    overflow: hidden;\n}\n.ptx-content dl dd {\n    margin-top: 0;\n}\n.ptx-content dl dd::after {\n  content: \"\";\n  display: block;\n  clear: both;\n}\n.ptx-content dl.glossary dt {\n    margin-top: 1.25em;\n}\n.ptx-content dl.description-list dt,\n.ptx-content dl.description-list dd {\n    margin-top: 1em;\n}\n.ptx-content dl.description-list.narrow dt {\n    margin-top: 0;\n}\n.ptx-content dl.glosary dt:first-of-type,\n.ptx-content dl.description-list dt:first-of-type,\n.ptx-content dl.glosary dd:first-of-type,\n.ptx-content dl.description-list dd:first-of-type {\n    margin-top: 0;\n}\n.ptx-content dl dd .para {\n    margin-top: 1em;\n}\n.ptx-content dl dt > .para:first-child, .ptx-content dl dd > .para:first-child {\n    margin-top: 0;\n}\n\n\n.ptx-content dl > dt {\n    font-weight: bold;\n    max-width: 55ex;\n}\n\n.ptx-content dl.description-list dt {\n    float: left;\n    clear: left;\n    text-align: right;\n    width: 18ex;\n}\n.ptx-content dl.description-list.narrow dt,\n.ptx-content dl.glossary dt {\n    text-align: left;\n}\n.ptx-content dl.glossary dd {\n    margin-left: 5ex;\n}\n.ptx-content dl.description-list dd {\n    margin-left: 22ex;\n}\n.ptx-content dl.description-list.narrow dd {\n    margin-left: 12ex;\n}\n.ptx-content dl.description-list dt:first-of-type {\n    clear: none;\n}\n.ptx-content dl.description-list.narrow dd::after {\n    content: \"\";\n    display: block;\n    height: 1em;\n    clear: left;\n}\n.ptx-content dl.description-list.narrow dd:last-child::after {\n    height: 0;\n}\n\n.ptx-content dl.description-list dt {\n    float: left;\n    clear: both;\n    margin-right: 1ex;\n}\n.ptx-content dl.description-list.narrow dt {\n    width: unset;\n    max-width: 55ex;\n    text-align: left;\n}\n.ptx-content dl.description-list.narrow dd {\n    margin-left: 0;\n    margin-top: 0;\n    width: 31em;\n    max-width: calc(100% - 12ex);\n    float: right;\n    clear: right;\n}\n\n.ptx-content dl.description-list + * {\n    clear: both;\n}\n\n@media screen and (max-width: 480px) {\n  .ptx-content dl.description-list dt {\n    float: none;\n    margin-left: 0;\n    text-align: left;\n  }\n  .ptx-content dl.description-list dd,\n  .ptx-content dl.description-list.narrow dd {\n    margin-top: 0.5em;\n    margin-left: 3em;\n    max-width: calc(100% - 3em);\n  }\n}\n/* where do we have nested dl? */\n.ptx-content dl.description-list dl dt {\n    width: 8ex;\n}\n.ptx-content dl.description-list dd dd {\n    margin-left: 18ex;\n}\n.ptx-content dl.description-list dl dd {\n    margin-left: 12ex;\n}\n.ptx-content [data-knowl] > mjx-mrow .TEX-I {\n    font-family: MJXZERO !important;\n    font-style: normal !important;\n}\n\n/* remove this when MathJax fixes the bug that was setting the width to 0 */\n/* as in  $x=0$.  becomes  $x=0\\text{.}$ */\n.ptx-content .knowl mjx-mtext > mjx-utext,\n.ptx-content mjx-mtext > mjx-utext {\n    width: revert !important;\n}\n.ptx-content mjx-msup mjx-utext,\n.ptx-content mjx-msub mjx-utext {\n    display: inline;\n}\n\n/* to stop things being blue when rendering MathJax with SVG */\na.mjx-svg-href  {\n    fill: inherit;\n    stroke: inherit;\n}\n\n.displaymath + .para {\n    margin-top: 0\n}\n\n/* for long math formulas and tables to scroll on small screens */\n@media screen and (max-width: 943px) {\n  .ptx-content .displaymath {\n     position: relative;\n     overflow-x: auto;\n  }\n/* maybe the remainder of this case is subsumed by the above,\n   and also does not apply to MJ3 */\n  .ptx-content .mjx-chtml.MJXc-display {\n    /*Allow users on smaller screens to scroll equations*/\n    /*horizontally when they don't fit on the screen*/\n    overflow-x: auto;\n    overflow-y: hidden;\n  }\n  .ptx-content .figure-like {\n    overflow-x: auto;\n  }\n\n  .ptx-content #MathJax_ZoomFrame {\n    position: static;\n    background: white;\n  }\n  .ptx-content #MathJax_Zoom {\n    background-color: inherit;\n    border: 0;\n    padding: 0;\n    position: absolute;\n    overflow-x: auto;\n    overflow-y: visible;\n    left: 10% !important;\n    max-height: none !important;\n  }\n}\n\n/*  http://sites.wcsu.edu/mbxml/OER_Linear_Alg/glossary.html\n   to fix the extra margin on top of the next term when\n   the previous definition ends in display math\n   May need to make less specific\n*/\n.ptx-content dd .displaymath:last-child .MJXc-display {\n    margin-bottom: 0;\n}\n\n.floatnav {\n    margin-top: 8px;\n    margin-left: 50px;\n}\n\n.floatnav a {\n    padding-left: 3px;\n/*\n *  omitted, because we put a space in the source\n    padding-right: 3px;\n*/\n    margin-right: -1px;\n    color: inherit;\n}\n\n/* Example 4.8 of sample article (compare main page of sample book (4^{th} edition)`*/\n.ptx-content a .heading .mjx-chtml {\n    z-index: 1;\n    background: #fff;\n}\n.ptx-content .hidden-knowl-wrapper [data-knowl]::after, .ptx-content .hidden-knowl-wrapper [data-knowl]:hover::after, .ptx-content .hidden-knowl-wrapper .active[data-knowl]::after {\n    right: 7px;\n}\n\n.floatnav a:hover {\n    background: #eeaaff;\n}\n\n.ptx-content .unselectable {  /* from Alex Jordan */\n  user-select: none;           /* Non-prefixed version, currently\n                                  not supported by any browser */\n}\n\n/* Adapted from William Hammond (attributed to David Carlisle) */\n/* \"mathjax-users\" Google Group, 2015-12-27 */\n\n.ptx-content .latex-logo {font-family: \"PT Serif\", \"Times New Roman\", Times, serif;}\n\n.ptx-content .latex-logo .A {font-size: 75%; text-transform: uppercase; vertical-align: .5ex;\n         margin-left: -.48em; margin-right: -.2em;}\n\n.ptx-content .latex-logo .E {vertical-align:-.5ex; text-transform: uppercase;\n         margin-left: -.18em; margin-right: -.12em; }\n\n.ptx-content .fillin {\n    display: inline-block;\n    border-bottom-style: solid;\n    border-width: 1px;\n    margin-right: 0.1em;\n    margin-bottom: -0.25em;\n}\n.ptx-content .fillin.underline {\n    display: inline-block;\n    border-bottom-style: solid;\n    border-width: 1px;\n    margin-right: 0.1em;\n    margin-bottom: -0.25em;\n}\n.ptx-content .fillin.box {\n    display: inline-block;\n    border: none;\n    margin-left: 0.1em;\n    margin-right: 0.1em;\n    margin-bottom: -0.25em;\n    outline: 1px solid black;\n    height: 1.3em;\n}\n.ptx-content .fillin.shade {\n    display: inline-block;\n    border: none;\n    margin-right: 0.1em;\n    margin-left: 0.1em;\n    margin-bottom: -0.25em;\n    background-color: #eee;\n    height: 1.3em;\n}\n\n\n/*\n *  .hiddenproof\n */\n\n/* knowlified proofs are in an article.hiddenproof */\n/* .ptx-content .hiddenproof .heading,   ???? can't happen, because the a does the hiding? */\n.ptx-content .hiddenproof > a > .heading {\n    font-style: italic;\n    font-weight: normal;\n}\n\n/* show wide equation overflow even when no scroll bars,\nfrom Jiří Lebl */\n.ptx-content .MJXc-display, .ptx-content .knowl-output .knowl-output .knowl-output .knowl-output .MJXc-display ,\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint,\n.ptx-content pre.console,\n.ptx-content .code-box {\n    background-image: linear-gradient(to right, white, white), linear-gradient(to right, white, white), linear-gradient(to right, rgba(0,0,0,.25), rgba(255,255,255,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(255,255,255,0));\n    background-position: left center, right center, left center, right center;\n    background-repeat: no-repeat;\n    background-color: inherit;\n    background-size: 20px 100%, 20px 100%, 10px 100%, 10px 100%;\n    background-attachment: local, local, scroll, scroll;\n}\n.ptx-content .runestone .code-box {\n    background-image: none;\n}\n.ptx-content .knowl-output .MJXc-display {\n    background-image: linear-gradient(to right, var(--knowlbackground), var(--knowlbackground)), linear-gradient(to right, var(--knowlbackground), var(--knowlbackground)), linear-gradient(to right, rgba(0,0,0,.25), var(--knowlbackground)), linear-gradient(to left, rgba(0,0,0,.25), var(--knowlbackground));\n}\n/* this should have a variable name, maybe? */\n.ptx-content .knowl-output.original .MJXc-display {\n    background: inherit;\n}\n\n.ptx-content .assemblage-like .MJXc-display {\n/*\n    background-image: none;\n    background-image: linear-gradient(to right, #f4f4fe, #f4f4fe), linear-gradient(to right, #f4f4fe, #f4f4fe), linear-gradient(to right, rgba(0,0,0,.25), rgba(242,242,254,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(242,242,254,0));\n*/\n    background-image: linear-gradient(to right, var(--assemblagebackground), var(--assemblagebackground)), linear-gradient(to right, var(--assemblagebackground), var(--assemblagebackground)), linear-gradient(to right, rgba(0,0,0,.25), var(--assemblagebackground)), linear-gradient(to left, rgba(0,0,0,.25), var(--assemblagebackground));\n}\n\n\n.ptx-content .knowl-output .knowl-output .MJXc-display {\n    background-image: none;\n    background-image: linear-gradient(to right, #fffff5, #fffff5), linear-gradient(to right, #fffff5, #fffff5), linear-gradient(to right, rgba(0,0,0,.25), rgba(255,255,243,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(255,255,243,0));\n}\n.ptx-content .knowl-output .knowl-output .knowl-output .MJXc-display {\n    background-image: none;\n    background-image: linear-gradient(to right, #fff5fe, #fff5fe), linear-gradient(to right, #fff5fe, #fff5fe), linear-gradient(to right, rgba(0,0,0,.25), rgba(255,243,254,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(255,243,254,0));\n}\n\n\n\n/* not sure where this was being used, but it made short knowls\n * look bad, like the hint here:\n * SAFurtherReading.html\n*/\n.ptx-content .knowl-output .knowl-content > *:last-child:not(.incontext) {\n    margin-bottom: 0.5em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like,\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like:not(.incontext) {\n    margin-bottom: 0.15em;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.hint {\n    border-left: 1px solid #0f0;\n    padding-left: 0.35em;\n    background: #efe;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.answer {\n    border-left: 2px solid #00f;\n    padding-left: 0.35em;\n    background: #eef;\n}\n.ptx-content .knowl-output .knowl .knowl-content > .solution-like.solution {\n    border-left: 3px solid #c0c;\n    padding-left: 0.5em;\n    background: #fef;\n}\n\n.ptx-content .knowl-content > article:first-child,\n.ptx-content .knowl-content > .solution-like:first-child {\n/* padding, not margin, to get colored background (and not be absorbed) */\n    padding-top: 0.25em;\n}\n\n.ptx-content .exercisegroup > .conclusion {\n    margin-left: 1.5em;\n}\n\n.ptx-content .exercise-like .introduction {\n    display: inline;\n}\n.ptx-content .exercise-like .introduction .heading {\n    display: inline;\n}\n.ptx-content .exercise-like .introduction .para:first-child {\n    display: inline;\n}\n.ptx-content .exercise-like .introduction::after {\n    content: \"\";\n    display: block;\n}\n.ptx-content .exercise-like .conclusion::before {\n    content: \"\";\n    display: block;\n    margin-top: 0.25em;\n}\n\n\n.ptx-content .exercisegroup .exercisegroup-exercises.cols2, .ptx-content .exercisegroup .exercisegroup-exercises.cols3, .ptx-content .exercisegroup .exercisegroup-exercises.cols4, .ptx-content .exercisegroup .exercisegroup-exercises.cols5, .ptx-content .exercisegroup .exercisegroup-exercises.cols6 {\n    width: 100%;\n    display:inline-flex;\n    flex-direction:row;\n    flex-wrap:wrap;\n    justify-content:flex-start;\n    align-items:flex-start;\n    align-content:flex-start;\n}\n\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 {\n    display:inline;\n}\n\n.ptx-content .exercisegroup .exercisegroup-exercises.cols1 .knowl-output {\n    display: block;\n}\n\n.ptx-content .exercisegroup .cols1 > article.exercise-like {flex-basis: calc(100% - 2em);}\n.ptx-content .exercisegroup .cols2 > article.exercise-like {flex-basis: calc(50% - 2em);}\n.ptx-content .exercisegroup .cols3 > article.exercise-like {flex-basis: calc(33.33% - 2em);}\n.ptx-content .exercisegroup .cols4 > article.exercise-like {flex-basis: calc(25% - 2em);}\n.ptx-content .exercisegroup .cols5 > article.exercise-like {flex-basis: calc(20% - 2em);}\n.ptx-content .exercisegroup .cols6 > article.exercise-like {flex-basis: calc(16.66% - 2em);}\n\n/* math directly adajacent to words is wrapped to avoid bad line breaks */\n.ptx-content .mathword {\n    white-space: nowrap;\n}\n\n.ptx-content .unit,\n.ptx-content .quantity {\n    white-space: nowrap;\n    word-spacing: -0.25ex;\n    margin-right: 0.125em;\n}\n.ptx-content .unit sub,\n.ptx-content .unit sup,\n.ptx-content .quantity sub,\n.ptx-content .quantity sup {\n     word-spacing: normal;\n}\n\n.ptx-content .code-inline,\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program,\n.ptx-content .program code {\n    font-family: \"Inconsolata\", monospace;\n}\n.ptx-content .code-block,\n.ptx-content .console,\n.ptx-content .program {\n    overflow-x: auto;\n}\n\n.ptx-content .code-inline {\n    font-size: 1em;\n    white-space: pre;\n    color: inherit;\n    background: #eeeeee;\n    border: 1px solid #dddddd;\n    padding: 0.0625em 0.25em;\n    margin-left: 0.2em;\n    margin-right: 0.2em;\n    border-radius: 0.2em;\n}\n.ptx-content .code-inline:first-child {\n    margin-left: 0;\n}\n.ptx-content .title .code-inline {\n    padding-left: 0;\n    padding-right: 0;\n    margin-left: 0;\n    margin-right: 0;\n}\n.ptx-content a .code-inline {\n    background: #f6f6f6;\n}\n\n.ptx-content .kbdkey {\n    background: #f1f1f1;\n    border: 1px solid #dddddd;\n    border-radius: 3px;\n    padding: 1px 2px 0 2px;\n    vertical-align: 0.1em;\n    font-size: 110%;\n    line-height: 1;\n    box-shadow: 2px 2px grey;\n    display: inline-block;\n    margin-right: 3px;\n}\n.ptx-content .kbdkey {\n    color: #333;\n}\n\n.ptx-content .sagecell_sessionOutput pre {\n    font-family: 'Inconsolata', monospace;\n}\n\n.ptx-content .sagecell {\n    white-space: normal;\n    margin-top: 1.25em;\n    margin-bottom: 1.25em;\n}\n.ptx-content .sage-interact.sagecell {\n    margin: 0;\n}\n\n.ptx-content .sagecell_evalButton {\n  font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 16px;\n  padding: 0 0.65em;\n}\n.ptx-content .sagecell_evalButton {\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  /* Disable accidental text-selection */\n  user-select: none;\n  /* Truncate overflowing text with ellipsis */\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  border-width: 1px;\n  border-style: solid;\n  font-weight: bold;\n  border-radius: 3px;\n}\n.ptx-content .sagecell_evalButton {\n  color: #383838;\n  background-image: linear-gradient(#f7f7f7, #bbbbbb);\n  border-color: #c4c4c4;\n}\n.ptx-content .sagecell_evalButton:hover {\n  color: #181868;\n  background-image: linear-gradient(#bbbbbb, #f7f7f7);\n}\n.ptx-content .sagecell_evalButton:focus,\n.ptx-content .sagecell_evalButton:active {\n  color: #20160b;\n  background-image: linear-gradient(#ff6852, #ffd7d1);\n  border-color: #ff2822;\n}\n\n.ptx-content .sagecell .sagecell_editor {\n  margin-bottom: 8px;\n}\n\n.ptx-content .booktitle {\n    font-style: oblique;\n}\n\n.ptx-content .objectives > .heading,\n.ptx-content .outcomes > .heading {\n    font-size: 1.25em;\n}\n\n/* Born-hidden example with a very long title */\n/* http://physics.thomasmore.edu/ConnectedPhysics/sss-netforce.html */\n.ptx-content a .heading {\n    white-space: normal;\n}\n\n\n.ptx-content .solutions > a, .ptx-content .solutions > a:hover, .ptx-content .solutions > a.active,\n.ptx-content .instructions > a, .ptx-content .instructions > a:hover, .ptx-content .instructions > a.active {\n    display: inline-block;\n    margin-right: 1.5em;\n}\n\n/* When the knowl is a Hint, Answer, or Solution, put a little\n   triangle in front of it */\n.ptx-content .solutions > a::before,\n.ptx-content .instructions > a::before {\n    content: '\\25ba';\n    font-size: 70%;\n    color: #06a;\n    position: relative;\n    top: -2px;\n    right: 3px;\n}\n.ptx-content .solutions > a.active::before,\n.ptx-content .instructions > a.active::before {\n    content: '\\25bc';\n    animation-name: solutiontriangle;\n    animation-duration: 3s;\n    animation-iteration-count: 1;\n}\n.ptx-content .solutions > a[data-knowl]::after,\n.ptx-content .instructions > a[data-knowl]::after {\n    left: 12px;\n}\n@keyframes solutiontriangle {\n    from {content: '\\25ba';}\n    to {content: '\\25bc';}\n}\n\n.ptx-content section.solutions {\n    font-size: 90%;\n    padding-left: 1em;\n    border-left: 1em solid #eeeeee;\n}\n\n.ptx-content.ptx-content > section.solutions:first-child {\n    padding-left: 0;\n    border-left: none;\n}\n\n.ptx-content article.example-like > .solution-like,\n.ptx-content article.exercise-like > .solution-like {\n    margin-top: 1.0em;\n    padding-left: 0.7em;\n}\n.ptx-content article.example-like > .solution-like > .heading,\n.ptx-content article.exercise-like > .solution-like > .heading {\n    font-size: 100%;\n    font-weight: 700;\n    margin-right: 0.25em;\n    display: inline;\n}\n.ptx-content article.example-like > .solution-like > .heading + .para,\n.ptx-content article.exercise-like > .solution-like > .heading + .para {\n    display: inline;\n}\n\n\n\n\n/* these were taken from the local add-on.css.\n * need to check if the are needed.\n */\n\n.ptx-content article > figure:first-child {\n    margin-top: 0;\n}\n\n.ptx-content figure + figure,\n.ptx-content figure + .sidebyside,\n.ptx-content .sidebyside + .sidebyside,\n.ptx-content article + figure,\n.ptx-content .sidebyside + figure {\n    padding-top: 1.0em;\n}\n\n\n.ptx-content img {\n    display: inline-block;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n/* is .cs for commutative diagrams? */\n.ptx-content img.cs {\n    display: block;\n    margin-top: 20px;\n    margin-bottom: 20px;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content img:not(.cs) {\n    max-width: 650px;\n}\n\n.ptx-content .tabular-box.natural-width table {\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content figure img {\n    display: block;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content figure img + img {\n    margin-top: 30px;\n}\n\n.ptx-content div.center img {\n    display: block;\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content div.center + div.center > img {\n    margin-top: 60px;\n}\n\n.ptx-content div.center > img + img {\n    margin-top: 60px;\n}\n\n.ptx-content figure table {\n    margin-left: auto;\n    margin-right: auto;\n}\n\n.ptx-content .caption {\n    margin-top: 10px;\n    margin-left: auto;\n    margin-right: auto;\n    font-size: 100%;\n    text-align: center;\n}\n\n\n.ptx-content figure.wrap img {\n    width: 250px;\n}\n.ptx-content figure.wrap {\n    float: right;\n    margin-right: 0;\n    margin-left: 30px;\n}\n.ptx-content figure img.wrap {\n    float: right;\n    margin: 0;\n}\n\n.ptx-content figure figcaption.wrap {\n    margin: 10px;\n    font-size: 100%;\n    text-align: center;\n}\n\n.ptx-content figure, .ptx-content .image-box {\n    margin-top: 0.5em;\n}\n.ptx-content figure.listing {\n    margin-top: 1em;\n}\n.ptx-content figure .image-box {\n    margin-top: 0;\n}\n.ptx-content .sidebyside figure {\n    margin-top: 0;\n}\n.ptx-content .image-box img,  /* See sample article Graphics section */\n.ptx-content img.contained,  /* See sample article Graphics section */\n.ptx-content .sbspanel img {\n   /* previously these were hard-coded in the HTML */\n    width: 100%;\n    height: auto;\n}\n\n/* these seem to be obsolete because an img has to be in a .image-box .\n   Check on that.\n.ptx-content .sbspanel > img:not(.draw_on_me):not(.mag_popup),\n.ptx-content figure > img:not(.draw_on_me):not(.mag_popup),\n.ptx-content figure > div > img:not(.draw_on_me):not(.mag_popup),\n*/\n.ptx-content .image-box > img:not(.draw_on_me):not(.mag_popup) {\n    cursor: zoom-in;\n}\n.ptx-content img.mag_popup {\n    border: 1px solid #666;\n    box-shadow: 4px 6px 4px #999;\n    cursor: zoom-out;\n    max-width: 600px;\n}\n.ptx-content .mag_popup_container {\n    width:100%;\n    position:absolute;\n    z-index:1001;\n    overflow-x: visible;\n}\n\n.ptx-content .image-box,\n.ptx-content .audio-box,\n.ptx-content .video-box,\n.ptx-content .asymptote-box {\n    position: relative;\n}\n.ptx-content .image-box .asymptote-box iframe.asymptote,\n.ptx-content iframe.asymptote,\n.ptx-content .video-box .video,\n.ptx-content .video-box .video-poster {\n    position: absolute; top: 0; left: 0; width: 100%; height: 100%;\n}\n.ptx-content section > .audio-box,\n.ptx-content section > .video-box,\n.ptx-content section > .image-box {\n    margin-top: 0.75em;\n}\n\n.ptx-content .audio {\n    width: 100%;\n}\n\n.caption .heading {\n    font-weight: bold;\n}\n\n.caption .counter {\n    font-weight: bold;\n}\n\n.ptx-content div.quote {\n    padding-left: 40px;\n    padding-right: 10px;\n    margin-bottom: 1em;\n}\n\n.minipage  + .minipage {\n    display: inline-block;\n}\n\n.ptx-content code.inline {\n    background: none;\n    border: none;\n}\n\n/* These next are for Prism */\n.ptx-content pre.program,\n.ptx-content pre.program code,\n.ptx-content pre.code-block,\n.ptx-content pre.code-block code {\n    line-height: 1.1;\n}\n.ptx-content section > .code-box,\n.ptx-content .para + .code-box,\n.ptx-content section > .code-block,\n.ptx-content .para + .code-block {\n    margin-top: 1em;\n}\n\n.ptx-content pre.program,\n.ptx-content pre.code-block {\n    margin-top: 0;\n    padding-left: 15px;\n    border-left: 1px solid #aaa;\n    font-size: 93%;\n    overflow: auto;\n}\n.ptx-content pre.program:before,\n.ptx-content pre.code-block:before {\n    content:' ';\n    font-size: 50%;\n    border-top: 1px solid #aaa;\n    display: block;\n    margin-right: auto;\n    margin-left: -15px;\n    width: 3.0em;\n}\n\n.ptx-content pre[data-line].program, \n.ptx-content pre[data-line].code-block\n{\n    padding-left: 2.5em;\n}\n\n.ptx-content pre[data-line].program:before,\n.ptx-content pre[data-line].code-block:before {\n    margin-left: -5em;\n}\n\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers\n{\n    padding-left: 3.5em;\n    overflow: visible;\n}\n\n.ptx-content pre.program.line-numbers:before,\n.ptx-content pre.code-block.line-numbers:before {\n    margin-left: -7em;\n}\n\n/* fine tune next 3 based on line-height of surrounding pre  */\n.ptx-content pre[data-line].line-numbers code {\n    padding-top: 0em;  /* increase with line-height */\n}\n.ptx-content pre[data-line].line-numbers .line-highlight {\n    margin-top: 0em; /* decreases as line-height increases */\n}\n.ptx-content pre[data-line]:not(.line-numbers) .line-highlight {\n    margin-top: 0.6em; /* decreases as line-height increases */\n}\n\n\n/* next is for the old code formatting js */\n.ptx-content pre.prettyprint,\n.ptx-content pre.plainprint {\n    margin-top: 0;\n    padding-left: 15px;\n    border-left: 1px solid #aaa;\n    font-size: 93%;\n    overflow: auto;\n/* preveiously turned off the border and padding from pretty.css */\n}\n\n.ptx-content pre.prettyprint:before,\n.ptx-content pre.plainprint:before {\n    content:'';\n    font-size: 50%;\n    border-top: 1px solid #aaa;\n    display: block;\n    margin-right: auto;\n    margin-left: -15px;\n    width: 2.5em;\n}\n\n.ptx-content .objectives {\n    margin-bottom: 1.25em;\n}\n\n\n.ptx-content ol > li {\n    padding-left: 0.25em;\n}\n.ptx-content ol.cols2 > li, .ptx-content ul.cols2 > li { width: calc(49% - 1.75em); min-width: 190px}\n/*\n.ptx-content ol.cols2 > li, .ptx-content ul.cols2 > li { width: 50%; min-width: 240px}\n*/\n.ptx-content ol.cols3 > li, .ptx-content ul.cols3 > li { width: calc(33% - 1.25em); min-width: 160px}\n/*\n.ptx-content ol.cols3 > li, .ptx-content ul.cols3 > li { width: 31%; min-width: 160px}\n*/\n.ptx-content ol.cols4 > li, .ptx-content ul.cols4 > li { width: calc(24.5% - 1.25em); min-width: 100px}\n.ptx-content ol.cols5 > li, .ptx-content ul.cols5 > li { width: calc(19.5% - 0.75em); min-width: 90px}\n.ptx-content ol.cols6 > li, .ptx-content ul.cols6 > li { width: calc(16.3% - 0.5em); min-width: 80px}\n/* sample-article sec 5 */\n.ptx-content ul.cols2 > li:nth-child(odd), .ptx-content ol.cols2 > li:nth-child(odd) {\n   margin-right: 2em;\n}\n\n/*\n.ptx-content .cols2 > li:first-child,\n.ptx-content .cols3 > li:first-child,\n.ptx-content .cols4 > li:first-child,\n.ptx-content .cols5 > li:first-child,\n.ptx-content .cols6 > li:first-child {\n    margin-top: 0.5em;\n}\n*/\n\n.ptx-content .cols2  ol,\n.ptx-content .cols3  ol,\n.ptx-content .cols4  ol,\n.ptx-content .cols5  ol,\n.ptx-content .cols6  ol {\n    padding-left: 0.7em;\n}\n.ptx-content .exercisegroup-exercises > article.exercise-like {\n    margin-top: 1em;\n}\n\n\n/* see http://bob.cs.sonoma.edu/IntroCompOrg-RPi/exercises-10.html\n  for examples of an odd number of items in a cols2, followed by\n  a hint */\n.ptx-content .cols2 > li:last-child:nth-child(odd) {\n    float: none !important;\n    padding-top: 0.5em;\n}\n\n\n/* http://spot.pcc.edu/math/APEXCalculus/sec_prod_quot_rules.html\n * solution to Example 2.4.14\n */\n.ptx-content .solution ol li {\n    margin-top: 1em;\n    padding-left: 0.5em;\n}\n\n/* solution to Example 4.2.12 in http://spot.pcc.edu/math/orcca-draft/orcca/section-radical-expressions-and-rational-exponents.html\n*/\n.ptx-content .solution ol li > .para:first-child, .ptx-content .solution ol li > .displaymath:first-child {\n    vertical-align: top;\n    display: inline-block;\n    margin-top: 0;\n}\n.ptx-content .solution ol li > .displaymath:first-child .MJXc-display {\n    margin-top: 0;\n}\n\n\n.ptx-content .exercise-like ol li {\n    margin-top: 1em;\n    padding-left: 0.5em;\n}\n\n.ptx-content .exercise-like > .cols2 > li { width: calc(49% - 2.5em)}\n.ptx-content .exercise-like > .cols3 > li { width: calc(33% - 2.5em)}\n.ptx-content .exercise-like > .cols4 > li { width: calc(24.5% - 2.5em)}\n.ptx-content .exercise-like > .cols5 > li { width: calc(19.5% - 2.5em)}\n.ptx-content .exercise-like > .cols6 > li { width: calc(16.3% - 2.5em)}\n\n/* A colsN in a knowl needs to be narrower because of the margin/padding of the knowl */\n.ptx-content .knowl .exercise-like > .cols2 > li { width: calc(49% - 2em)}\n/* next 4 not actually checked: just copied from cols2 */\n.ptx-content .knowl .exercise-like > .cols3 > li { width: calc(33% - 2em)}\n.ptx-content .knowl .exercise-like > .cols4 > li { width: calc(24.5% - 2em)}\n.ptx-content .knowl .exercise-like > .cols5 > li { width: calc(19.5% - 2em)}\n.ptx-content .knowl .exercise-like > .cols6 > li { width: calc(16.3% - 2em)}\n\n\n.ptx-content .exercise-like ol li > .para:first-child {\n    vertical-align: top;\n    display: inline-block;\n    margin-top: 0;\n}\n\n.ptx-content .contributor .contributor-name {\n    font-variant: small-caps;\n}\n.ptx-content .contributor .contributor-info {\n    font-size: 88%;\n    font-style: italic;\n    margin-left: 3ex;\n}\n.ptx-content .contributor {\n    margin-top: 3ex;\n}\n.ptx-content .contributor + .contributor {\n    margin-top: 1.5ex;\n}\n\n.ptx-content .contributor + .para {\n    margin-top: 3ex;\n}\n\n.ptx-content .frontmatter .contributors, .ptx-content .book .contributors {\n    text-align: center;\n    font-style: normal;\n}\n\n.pretext .searchwrapper {\n    max-width: 900px;\n    position: absolute;\n    right: 0;\n    bottom: 0;\n    margin-bottom: 39px;\n}\n\n.pretext .searchwrapper .cse .gsc-control-cse, .searchwrapper .gsc-control-cse  {\n    padding: 0;\n    border: none;\n    width: 25ex;\n}\n.pretext .searchwrapper .cse .gsc-search-button input.gsc-search-button-v2, .searchwrapper input.gsc-search-button-v2 {\n    padding: 2px 2px;\n}\n.pretext .searchwrapper form.gsc-search-box {\n    margin: 0;\n}\n.pretext .searchwrapper table.gsc-search-box {\n    margin: 0;\n}\n.pretext .searchwrapper .gsc-search-box-tools .gsc-search-box .gsc-input {\n    padding: 0;\n}\n.pretext .searchwrapper .gsib_a {\n    padding: 0 0 0 5px;\n}\n.pretext .searchwrapper .gsc-input-box {\n    height: 3.0ex;\n}\n.pretext .searchwrapper form.gsc-search-box {\n    font-size: 12px;\n}\n\n/* turn off the green parentheses Alex does not like */\n.ptx-content div.CodeMirror span.CodeMirror-matchingbracket {color: #090;}\n\n.ptx-content .image-archive {\n    margin-left: auto;\n    margin-right: auto;\n    margin-bottom: 0;  /* was auto */\n    margin-top: 0.75em;\n    padding-bottom: 0.25em;\n    text-align: center;\n}\n.ptx-content .image-archive > a {\n    display: inline-block;\n    padding-left: 0.5em;\n    padding-right: 0.5em;\n    font-family: monospace;\n}\n\n.ptx-content iframe {\n    margin: 0;\n    border: none;\n    box-sizing: border-box;\n}\n\n.ptx-content .times-sign {\n    font-size: larger;\n    vertical-align: -0.15ex;\n}\n/* temporary for Geogebra development: replace with a more\n  restrictive selector for articles */\n.ptx-content article.notranslate {\n    margin-top: 0;\n}\n\n/*\nnested tasks. see\nhttps://pretextbook.org/examples/sample-article/html/interesting-corollary.html#aBc\n*/\n\n/* 9/27/23  added \"article\" because of details.exercise-like */\n.ptx-content article.exercise-like > .exercise-like {\n    margin-left: 40px;\n}\n.ptx-content article.exercise-like > .exercise-like.task {\n    margin-left: 20px;\n}\n.ptx-content article.exercise-like > .exercise-like > .para {\n    margin-top: 1.25em;\n/*    margin-bottom: 0.25em; */\n}\n.ptx-content article.example-like > .heading + .introduction {\n    display: inline;\n}\n.ptx-content article.example-like > .heading + .introduction > .para:first-child {\n    display: inline;\n}\n.ptx-content article.example-like > .exercise-like > .para {\n    margin-top: 1.25em;\n}\n\n/* end of nested tasks */\n\n/* genus and species in italics */\n.ptx-content .taxon {\n    font-style: italic;\n}\n\n/* Sage stuff */\n.ptx-content .sageanswer {\n    font-family: monospace;\n    white-space: pre;\n    margin-left: 3em;\n    margin-bottom: 2em;\n}\n.ptx-content .sageanswer .key {\n    display: inline-block;\n    vertical-align: top;\n    margin-right: 1em;\n}\n.ptx-content .sageanswer .output {\n    display: inline-block;\n    vertical-align: top;\n}\n.ptx-content .CodeMirror-code pre.CodeMirror-line {\n    padding-bottom: 5px;\n/* the next item is the CodeMirror default, which was\n previously over-ridden */\n    padding-left: 6px;\n}\n\n/* used when knowl content is hidden in the page */\n.ptx-content .hidden-content, .pretext .hidden-content {\n/* things will be different after 2022 overhaul */\n    display: none;\n}\n\n.ptx-content hr.ptx-pagebreak {\n    width: 30em;\n    text-align: center;\n    margin-left: auto;\n    margin-right: auto;\n    margin-bottom: 2.0em;\n    margin-top: 0;\n    height: 4em;\n    border: 0;\n    border-bottom: 1px dashed #ccc;\n}\n\n.ptx-content hr.ptx-pagebreak:after {\n    content: \"page\";\n    display: inline-block;\n    position: relative;\n    top: 4.0em;\n    font-size: 80%;\n    padding: 0 0.25em;\n    background: white;\n}\n\n/*\n   See 10.1.8c in http://faculty.valpo.edu/calculus3ibl/ch10_01_gradient.html\nand condider having this replace line 3338 of the general code (which uses .heading + p)\n*/\n.ptx-content .example-like > .exercise-like > .para:first-of-type {\n    display: inline;\n}\n.ptx-content .example-like > .exercise-like > .aside-like {\n    margin-top: -3em;\n}\n.ptx-content .example-like > .exercise-like > .aside-like.front {\n    margin-top: 0;\n}\n\n.ptx-content meta {\n    display: none;\n}\n\n.ptx-content .summary-links a {\n  color: #671d12;\n  background: #f0f0f0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover, .ptx-content .summary-links a:focus {\n  color: white;\n  background: #671d12;\n}\n.ptx-content .summary-links a .codenumber {\n  color: #303030;\n  margin-right: 0.41667em;\n}\n\n.ptx-content .summary-links a:hover .codenumber, .ptx-content .summary-links a:focus .codenumber {\n  color: #f0f0f0;\n}\n\n\n\n.ptx-content .summary-links {\n    margin-top: 4em;\n}\n.ptx-content section + .summary-links {\n    margin-top: 2em;\n}\n.ptx-content .summary-links ul {\n    list-style-type:none;\n}\n.ptx-content .summary-links li {\n    margin-top: 0;\n}\n.ptx-content section .summary-links li .title {\n    font-style: normal;\n}\n.ptx-content .summary-links a {\n  position: relative;\n  display: block;\n  font-size: 1.5em;\n  line-height: 1.25em;\n  padding: 0.41667em 0.83333em;\n  margin-top: 0.20833em;\n  border-radius: 3px;\n  padding-right: 2.06667em;\n}\n.ptx-content .summary-links a:after {\n  right: 0.83333em;\n}\n.ptx-content .summary-links a:after {\n  content: \"\";\n  position: absolute;\n  /* center vertically */\n  top: 50%;\n  margin-top: -0.4em;\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid #c9c9c9;\n}\n.ptx-content .summary-links a, .ptx-content .summary-links a:link, .ptx-content .summary-links a:visited {\n  cursor: pointer;\n}\n.ptx-content .summary-links a:hover:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a {\n  font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-content .summary-links a {\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-content .summary-links a .codenumber {\n  margin-right: 0.41667em;\n}\n\n.ptx-content .summary-links a:active {\n  position: relative;\n  color: white;\n  background: #932919;\n  text-decoration: none;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px 5px inset;\n}\n.ptx-content .summary-links a:active:after {\n  width: 0;\n  height: 0;\n  border-top: 0.4em solid transparent;\n  border-bottom: 0.4em solid transparent;\n  border-left: 0.4em solid white;\n}\n.ptx-content .summary-links a:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n  /**\n   * Remove stupid inner dotted border applied by Firefox on focus\n   * See http://stackoverflow.com/a/199319/1599617\n   */\n}\n\n\n/* also see section > heading for worksheets, maybe around line 1200 */\n/* one-page documents in the browser */\n\nbody.standalone.worksheet .ptx-content .onepage > .heading {\n    margin-top: 0;\n    font-size: 1.3em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction {\n    margin-top: 0.4em;\n}\nbody.standalone.worksheet .ptx-content .onepage > .introduction > .heading {\n    font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content .onepage .solutions,\nbody.standalone.worksheet .ptx-content .onepage .instructions {\n    display: none;\n}\nbody.standalone .ptx-content .worksheet {\n/*\n    padding: 40px 45px 45px 55px;\n*/\n    padding: 40px 0 45px 0;\n    border: 2px solid grey;\n    margin: 0;\n/* height: 1243px; */\n}\n\nbody.standalone .ptx-content .onepage {\n/*    padding: 40px 45px 45px 55px;\n    padding: 0 0 45px 0;\n*/\n    padding: 40px 45px 45px 55px;\n    border-bottom: 2px solid grey;\n    margin: 0;\n/* height: 1243px; */\n}\nbody.standalone .ptx-content .onepage + .onepage {\n/*\n    padding-top: 40px;\n*/\n    border-top: 2px solid grey;\n}\n/* there may be worksheet content before the first page\n   or after the last page\n*/\nbody.standalone .ptx-content .onepage.firstpage {\n    padding-top: 0\n}\nbody.standalone .ptx-content .onepage.lastpage {\n    padding-bottom: 0;\n    border-bottom: none;\n}\n\nbody.standalone .ptx-content .worksheet > *:last-child {\n    padding-bottom: 0 !important\n}\n.ptx-content .onepage + .onepage {\n    margin-top: 2.5em;\n    padding-top: 1.5em;\n    border-top: 1px dashed #aaa;\n}\n.ptx-content .onepage + .onepage::before {\n    content: \"pagebreak\";\n    text-align: center;\n    margin-left: 40%;\n    padding-left: 1em;\n    padding-right: 1em;\n    position: absolute;\n    top: -0.8em;\n    font-size: 80%;\n    font-style: italic;\n    background: white;\n}\n\nbody.standalone .ptx-content .onepage + .onepage {\n    margin-top: 10px;\n}\nbody.standalone .ptx-content .onepage + .onepage::before {\n    content: none;\n}\n\nbody.standalone .ptx-content .onepage article {\n    padding-left: 0;\n    border: none;\n}\nbody.standalone .ptx-content .onepage article::after {\n    all: unset;\n}\n.ptx-content .onepage > .para:first-child,\n.ptx-content .onepage > article:first-child {\n    margin-top: 0;\n}\n.ptx-content section + .onepage.firstpage,\n.ptx-content article + .onepage.firstpage,\n.ptx-content .para + .onepage.firstpage {\n    margin-top: 1.25em;\n}\n\n/* not good, because of image next to image\n.ptx-content .onepage .sbspanel + .sbspanel {\n    padding-left: 1.25em;\n    border-left: 1px solid grey;\n    margin-left: -1.25em;\n}\n*/\nbody.worksheet .ptx-content .onepage .sbspanel + .sbspanel > .exercise::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    left: 0;\n    padding-left: 1.25em;\n    border-left: 1px solid grey;\n    margin-left: -1.25em;\n    z-index: -100;  /* to not block editable content */\n}\n\nbody.standalone.worksheet .ptx-content section article.task {\n    margin-left: 0;\n}\nbody.standalone.worksheet .ptx-content section article.task > .heading {\n    font-weight: normal;\n}\n\nbody.standalone .autopermalink {\n    display: none;\n}\n\nbody.standalone.worksheet .ptx-content .onepage .workspace {\n    border: 2px dotted grey;\n    background: #f3fff3;\n/*  Sally suggests light and dark blue\n    background: linear-gradient(\n        #eef 0px, #eef 200px,\n        #eef 200px, #99f 205px,\n        #99f 205px, #99f 100%)\n*/\n}\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed {\n    border: 2px dotted grey;\n    background: #ffe;\n}\n\nbody.standalone.worksheet .ptx-content .onepage .workspace.squashed.tight {\n    border: 15px solid;\n    border-image: repeating-linear-gradient(\n      -35deg,\n      #f33,\n      #f33 10px,\n      #000 10px,\n      #000 20px\n    ) 20;\n/*\n    background: linear-gradient(\n        #ff0 0%, #ff0 8%,\n        #000 8%, #000 9%,\n        #ff6 9%, #ff6 17%,\n        #555 17%, #555 19%,\n        #ff8 19%, #ff8 26%,\n        #777 26%, #777 29%,\n        #ffa 29%, #ffa 37%,\n        #aaa 37%, #aaa 41%,\n        #ffd 41%, #ffd 48%,\n        #ccc 48%, #ccc 52%,\n        #ffd 52%, #ffd 59%,\n        #aaa 59%, #aaa 63%,\n        #ffa 63%, #ffa 71%,\n        #777 71%, #777 74%,\n        #ff8 74%, #ff8 81%,\n        #555 81%, #555 83%,\n        #ff6 83%, #ff6 91%,\n        #000 91%, #000 92%,\n        #ff0 92%, #ff0 100%\n        );\n*/\n    background: yellow;\n}\n\nbody.has-sidebar-left.mathbook-loaded.standalone.worksheet .ptx-page .ptx-main {\n    margin-left: 0;\n}\n\nbody.standalone.worksheet .ptx-content .goal-like {\n    border: none;\n    padding: 0;\n}\nbody.standalone.worksheet .ptx-content .goal-like > .heading {\n    margin-top: -0.5em;\n    padding: 0;\n    margin: 0;\n    font-size: 1.1em;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading {\n    display: inline;\n    font-size: 1.1em;\n}\n/* becaues the worksheet has no side margins but the .onepage does */\nbody.standalone.worksheet .ptx-content section.worksheet > .heading,\nbody.standalone.worksheet .ptx-content section.worksheet > .objectives,\nbody.standalone.worksheet .ptx-content section.worksheet > .introduction,\nbody.standalone.worksheet .ptx-content section.worksheet > .conclusion {\n    margin-left: 55px;\n    margin-right: 40px;\n}\nbody.standalone.worksheet .ptx-content section.worksheet > .heading + .para {\n    display: inline;\n}\n\n/* printing for one-page worksheets */\n\n.ui-dialog.ui-widget.ui-widget-content.ui-corner-all.ui-draggable.ui-resizable {\n    left: 0 !important;\n    top: 0 !important;\n}\n\n/* move to the color file(s) and figure out next comment */\n/*\n.ptx-content a.internal {\n    color: #900;\n}\n.ptx-content a.internal:hover {\n    background-color: #ddf;\n}\n*/\n/* check whether class=\"url\" under Endnotes in pretext-epub.xsl can be\n   changed to class = \"external\"*/\n.ptx-content a.url,\n.ptx-content a.external {\n    color: #22a;\n}\n.ptx-content a.url:hover,\n.ptx-content a.external:hover {\n    background: #ffd;\n}\n\n/*\n.ptx-content a.internal:hover,\n.ptx-content a.external:hover,\n.ptx-content a.internal:focus,\n.ptx-content a.external:focus {\n    text-decoration: underline;\n}\n*/\n\n/* style for poems */\n\n.ptx-content .poem {\n    margin-top: 1.5em;\n}\n.ptx-content .poem {\n    display: table;\n    margin-top: 1.5em;\n    margin-left: auto;\n    margin-right: auto;\n    margin-bottom: 0;\n    width: auto;\n    max-width: 90%;\n}\n\n.ptx-content .poem > .heading {\n    display: block;\n    text-align: center;\n}\n.ptx-content section article.poem > .heading::after {\n    content: \"\";\n}\n.ptx-content .poem > .heading > .title {\n    font-weight: bold;\n    font-size: 1.2em;\n    line-height: 1.2em;\n}\n\n.ptx-content .poem .author {\n    font-style: italic;\n    margin-top: 0.75em;\n}\n.ptx-content .poem .author.left {\n    text-align: left;\n}\n.ptx-content .poem .author.center {\n    text-align: center;\n}\n.ptx-content .poem .author.right {\n    text-align: right;\n}\n\n.ptx-content .poem .stanza > .heading {\n    text-align: center;\n    font-weight: bold;\n    font-size: 1em;\n    line-height: 1em;\n}\n.ptx-content .poem .stanza + .stanza {\n    margin-top: 1em;\n}\n.ptx-content .poem .heading + .stanza {\n    margin-top: 0.2em;\n}\n.ptx-content .poem .heading + .line {\n    margin-top: 0.2em;\n}\n\n.ptx-content .poem .line.left {\n    text-align: left;\n    margin-left: 4em;\n    text-indent: -4em;\n}\n.ptx-content .poem .line.center {\n    text-align: center;\n}\n.ptx-content .poem .line.right {\n    text-align: right;\n}\n.ptx-content .poem .tab {\n    margin-left: 2em;\n}\n\n/* GeoGebra calculator */\n\n.calculator-container {\n    position: fixed;\n    z-index: 100;\n    bottom: 5px;\n    right: 5px;\n/*\n    width: 320px;\n*/\n    width: 253px;\n/*\n    height: 600px;\n*/\n    height: 460px;\n}\n@media screen and (max-width: 800px) {\n    .calculator-container {\n         bottom: 50px !important;\n    }\n}\n\n.toolBPanel {\n    overflow: hidden !important;\n}\n.toolBPanel:hover {\n    overflow: auto !important;\n}\n\n#aboelkins-ACS .ptx-main .ptx-content > section:first-of-type > section:first-of-type > .project-like:first-of-type li {\n    font-size: 300%\n}\n/*  WW problems */\n\n.ptx-content .wwprob table.attemptResults {\n    margin-left: 2em;\n    background: #efefef;\n    padding: 0.2em;\n}\n.ptx-content .wwprob table.attemptResults + .attemptResultsSummary {\n    margin-top: 1em;\n}\n\n.ptx-content .wwprob .problem-main-form {\n    margin-top: 1em;\n    background: #eeeeff;\n    padding: 0.5em;\n}\n.ptx-content .wwprob td.ResultsWithoutError {\n    background: #9f9;\n}\n.ptx-content .wwprob td.ResultsWithError {\n    background: #f99;\n}\n\n.ptx-content .wwprob tr th {\n    text-align: center;\n    padding: 0.2em 1em 0.2em 1em;\n}\n.ptx-content .wwprob tr td {\n    text-align: center;\n}\n.ptx-content .wwprob tr td:empty {\n    background: #fff;\n}\n\n.ptx-content .wwprob ol, .ptx-content .wwprob ul {\n    margin-top: 0.75em !important;\n}\n\n.ptx-content .wwprob .problem {\n    background: #fdfdfd;\n}\n\n.ptx-content .wwprob .problem a {\n    text-decoration: none;\n}\n\n.ptx-content .wwprob #footer {\n    font-size: 70%;\n    text-align: right;\n}\n\n.ptx-content .marginresource {\n    position: relative;\n    height: 0;\n    left: 40em;\n    top: 1em;\n}\n.ptx-content .marginresource a {\n    color: blue;\n}\n.ptx-content .marginresource a[knowl] {\n    border-bottom: 1px dotted blue;\n}\n.ptx-content .marginresource .icon {\n    font-size: 200%;\n    margin-right: 1em;\n    display: inline-block;\n}\n.ptx-content .marginresource .resource_description {\n    display: inline-block;\n}\n.ptx-content .marginresource .resource_links {\n    display: block;\n    margin-left: 2em;\n}\n\n.collectedworks .knowl-output {\n    border: 12px\n    solid #D6E3FF;\n    background: none repeat scroll 0% 0% #FAFCFF;\n    border-radius: 4px;\n    margin-bottom: 1.25em;\n}\n\n.collectedworks .subjectwork {\n    max-width: 750px;\n}\n\n.collectedworks .bib {\n    margin-bottom: 1em;\n}\n\n.collectedworks .bibitem + .bibentry {\n    display: inline;\n}\n\n.collectedworks .bibitem {\n    display: inline;\n    font-weight: bold;\n    margin-right: 1em;\n}\n.collectedworks .work .title a {\n    text-decoration: none;\n    color: #009;\n}\n.collectedworks .work .title {\n}\n\n\n.iconlegend {\n    position: absolute;\n    margin-top: 0.5em;\n    top: 0;\n    left: 920px;\n    line-height: 1;\n}\n\n.iconlegend .icon_name {\n    font-size: 90%;\n    margin-right: 1em;\n}\n.icongroup + .icongroup {\n    margin-left: 1em;\n}\n\n/* interactive WeBWorK */\n\nlabel.webwork {\ndisplay:inline-flex;\nflex-direction:column;\n}\n\nlabel.correct .status {\nbackground-color: #a0f0a0;\n}\n\nlabel.partly-correct .status {\n color: #ffcc66;\n}\n\nlabel.incorrect .status {\n  color: #b00;\n}\nlabel.incorrect .status::before {\n    content: \" \";\n}\n\n.feedback {\n word-wrap:break-word;\n}\n\nlabel.correct .feedback {\n background-color: #00ffcc;\n}\n\nlabel.partly-correct .feedback {\n color: #ffcc66;\n}\n\nlabel.incorrect .feedback {\n color: #e07070;\n}\n\n\n.ptx-content .webwork-button {\n    border-radius: 3px;\n    padding: 0px 3px 0px 3px;\n    border: 1px solid #999;\n    background-color: #ffffff;\n}\n\n.ptx-content .webwork-button:hover {\n    cursor: pointer;\n    background-color: #e0e0ff;\n    border: 1px solid #000;\n}\n.ptx-content .webwork-button:active {\n    cursor: pointer;\n    background-color: #a0a0a0;\n    border: 1px solid #999;\n}\n\n.webwork img, .webwork + .knowl-output img {max-width:100%;}\n\n.ptx-content .exercise-wrapper form button {\n    border-radius: 3px;\n    padding: 0px 3px 0px 3px;\n    border: 1px solid #999;\n    color: black;\n    background-color: #ffffff;\n}\n.ptx-content .webwork-button.activate {\n    width: 22px;\n    height: 22px;\n    background-image: url('https://raw.githubusercontent.com/openwebwork/webwork2/main/htdocs/images/favicon.ico');\n    background-size: contain;\n    position: absolute;\n    right: -35px;\n}\n\narticle.project-like > .heading + div.ptx-runestone-container > div.runestone,\narticle.exercise-like > .heading + div.ptx-runestone-container > div.runestone {\n    margin-top: 0.5em;\n}\n\n/* hack for runestone */\n/*\n.ptx-content .exercise-wrapper form button.btn-success {\n    background-color: #5cb85c;\n}\n*/\n/* to undo Runestone's presentermode.css */\n.ptx-content .bottom {\n    position: unset;\n}\n\n/* to undo Runestone's draganddrop.css */\n.ptx-content .rsdraggable {\n    font-size: 100%;\n}\n\n.ptx-content .exercise-wrapper form button:hover {\n    cursor: pointer;\n    background-color: #e0e0ff;\n    border: 1px solid #000;\n}\n.ptx-content .exercise-wrapper form button:active {\n    background-color: #f0f0f0;\n}\n.ptx-content .exercise-wrapper form button + button {\n    margin-left: 0.8em;\n}\n\n.ptx-content .exercise-wrapper,\n.ptx-content .exercise-wrapper form,\n.ptx-content .exercise-wrapper form > div:first-child {\n    display: inline-block;\n    vertical-align: top;\n    width: 100%; /* for live ww to open at 100% wide */\n}\n.ptx-content .knowl .exercise-wrapper,\n.ptx-content .knowl .exercise-wrapper form,\n.ptx-content .knowl .exercise-wrapper form > div:first-child {\n    width: 100%;\n}\n/*\n.ptx-content .exercise-wrapper form {\n     max-width: 95%;\n}\n*/\n.ptx-content .exercise-wrapper > .para:first-child,\n.ptx-content .exercisegroup .exercise-wrapper > .para:first-child {\n    margin-top: 0;\n    display: inline;\n}\n/* next is realted to having exercises start in-line with their exercise number,\n   including when a static WW problem is made interactive */\n/* not sure this was the right way to do it */\n/* see https://opentext.uleth.ca/apex-calculus/sec_antider.html#exercise-722 */\n.ptx-content .heading + .exercise-wrapper {\n    display: inline-block;\n    max-width: 95%;\n    width: 100%;\n}\n/*\n.ptx-content .exercisegroup .heading + .exercise-wrapper {\n    width: auto;\n}\n*/\n.ptx-content .cols2 .heading + .exercise-wrapper {\n    width: auto;\n}\n\n/* next two need to be separate due to limitations in Chrome and Safari */\n@media screen and (max-width: 600px) {\n    .ptx-content .exercisegroup .cols2 > article.exercise-like {flex-basis: calc(100% - 2em);}\n    .ptx-content .exercisegroup .cols3 > article.exercise-like {flex-basis: calc(100% - 2em);}\n    .ptx-content .exercisegroup .cols4 > article.exercise-like {flex-basis: calc(50% - 2em);}\n    .ptx-content .exercisegroup .cols5 > article.exercise-like {flex-basis: calc(50% - 2em);}\n    .ptx-content .exercisegroup .cols6 > article.exercise-like {flex-basis: calc(33.3% - 2em);}\n    .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper { max-width: 100%; }\n}\n@media screen and (max-width: 850px) and (min-width: 786px) {\n    .ptx-content .exercisegroup .cols2 > article.exercise-like {flex-basis: calc(100% - 2em);}\n    .ptx-content .exercisegroup .cols3 > article.exercise-like {flex-basis: calc(100% - 2em);}\n    .ptx-content .exercisegroup .cols4 > article.exercise-like {flex-basis: calc(50% - 2em);}\n    .ptx-content .exercisegroup .cols5 > article.exercise-like {flex-basis: calc(50% - 2em);}\n    .ptx-content .exercisegroup .cols6 > article.exercise-like {flex-basis: calc(33.3% - 2em);}\n    .ptx-content .exercisegroup .cols2 .heading + .exercise-wrapper { max-width: 100%; }\n}\n\n.APEXlogo {\n    white-space: nowrap;\n}\n.APEXlogo .A {\n    margin-right: -0.07em;\n}\n.APEXlogo .P {\n    margin-right: -0.33em;\n    position: relative;\n    top: -0.30em;\n}\n.APEXlogo .E {\n    position: relative;\n   top: 0.33em;\n}\n\n/* testing */\n\n\n.runestone-profile .dropdown-content {\n    position: absolute;\n    display: none;\n    right: 0;\n    top: 35px;\n    text-align: left;\n    border: 1px solid;\n    border-color: #600;\n    border-color: var(--tocborder);\n}\n.runestone-profile.dropdown:hover {\n    background-color: #ddd;\n    overflow: visible;\n}\n.runestone-profile.dropdown:hover .dropdown-content {\n    display: block;\n}\n.runestone-profile .dropdown-content {\n    background-color: white;\n    z-index: 1800;\n    min-width: 100px;\n    padding: 5px;\n}\n.runestone-profile .dropdown-content a {\n    display: block;\n    text-decoration: none;\n    color: #662211;\n    padding: 2px 8px;\n}\n.runestone-profile.dropdown .dropdown-content a:hover {\n    background-color: #671d12;\n    color: #ffffff;\n    text-decoration: none;\n    background-color: var(--chaptertoc);\n}\n.runestone-profile.dropdown .dropdown-content hr {\n    margin-bottom: 4px;\n    margin-top: 4px;\n    border-color: #600;\n    border-color: var(--sectiontoctext);\n}\n"
  },
  {
    "path": "css/legacy/pretext_search.css",
    "content": ".searchresultsplaceholder article {\n    width: 60%;\n    margin-left: auto;\n    margin-right: auto;\n    font-family: sans-serif;\n}\n\n.searchbox {\n/*\n    height: 60px;\n    border: solid;\n    border-radius: 5px;\n    background-color: #eeee;\n*/\n  /* position: absolute;\n  top: 37px;\n  right: 0; */\n}\n\n.ptxsearch {\n  height: 35px;\n  flex: 1 1;\n}\n\n.searchbutton .name {\n  display: none;\n}\n\n.searchwidget {\n/*\n    padding-top: 15px;\n    padding-left: 20px;\n    font-size: larger;\n*/\n    text-align: right;\n}\n\n.searchwidget input {\n/*\n    font-size: larger;\n*/\n}\n\n.helpbox {\n    display: none;\n}\n\n.detailed_result {\n    margin-bottom: 10px;\n}\n\n.all_results a:link {\n    text-decoration: none;\n    font-size: large;\n}\n\n.all_results a:hover {\n    background-color: lightgray;\n}\n.searchresults a:hover {\n    background-color: #eee;\n}\n\n.searchresults a {\n    text-decoration: none;\n    color: #222;\n}\n.searchresults a:hover {\n    text-decoration: underline;\n    color: #33f;\n}\n.searchresults ul li {\n    list-style-type: none;\n}\nol.searchresults {\n    padding-left: 10px;\n    margin-top: 0;\n    overflow-y: auto;\n    flex: 1 1;\n}\nol.searchresults > li {\n    list-style-type: none;\n}\n.search-result-score {\n    display: none;\n}\n.high_result {\n    font-weight: 700;\n}\n\n.medium_result {\n    font-weight: 500;\n}\n\n\n.low_result {\n    font-weight: 200;\n}\n.no_result {\n    font-weight: 200;\n    color: #444;\n}\n.detailed_result .no_result {\n    font-size: 90%;\n}\n\n.searchresultsplaceholder {\n    position: fixed;\n    top: 5vh;\n    bottom: 5vh;\n    left: 152px;\n    width: 600px;\n    padding: 1em;\n    border: 0.2em solid #009;\n    background: aliceblue;\n    z-index: 5000;\n    display: flex;\n    flex-direction: column;\n}\n\n.search-results-heading {\n    border-bottom: 1px solid rgba(0,0,125,0.5);\n}\n\n.search-results-controls {\n    display:flex;\n    justify-content: space-between;\n    align-items: stretch;\n    gap: 10px;\n    margin-bottom: 1em;\n}\n\n.closesearchresults {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    border: 1px solid black;\n}\n.closesearchresults:hover {\n    color: #c00;\n    background-color: #fee;\n    border-color: #f00;\n}\n.closesearchresults + h2 {\n    margin-top: -1em;\n}\n.searchempty {\n    display: none;\n    padding-left: 10px;\n    padding-top: 5px;\n}\n.search-result-bullet {\n    margin-top: 0.3em;\n}\n.search-result-clip {\n    font-size: 80%;\n    font-style: italic;\n    color: #444;\n    padding-left: 15px;\n}\n.search-results-unshown-count {\n    margin-top: 0.6em;\n}\n.search-result-clip-highlight {\n    background: rgba(255,255,0,0.5);\n}\n@media screen and (max-width: 800px) {\n    .searchresultsplaceholder {\n        width: 80vw;\n        left: 10vw;\n        bottom: 10vh;\n    }\n}\n"
  },
  {
    "path": "css/other/catalog.css",
    "content": "/* Used by the PreTeXt catalog website */\n\n.projects a {\n    text-decoration: none;\n}\n.projects p {\n    margin: 0;\n}\n.projects p + p {  \n    margin-top: 0.75em;\n}\n\n.projects .category {\n    max-width: 700px;\n}\n.projects .fact-sheet-knowl {\n    display: none;\n}\n.projects .description-knowl {\n    display: none;\n}\n.projects .awards-knowl {\n    display: none;\n}\n.projects .book-summary {\n    margin-left: 2em;\n    padding-left: 0.5em;\n}\n.projects .book-summary + .book-summary {\n    padding-top: 0.5em;\n    padding-bottom: 0.5em;\n    margin-top: 1em;\n}\n\n.projects .book-summary:nth-of-type(even) {\n    background: #efe;\n}\n.projects .badges {\n    margin-top: 0.25em;\n    padding-left: 0.5em;\n    min-height: 30px;\n}\n.projects .badges img {\n    max-height: 25px;\n}\n.projects .badges img + img {\n    margin-left: 5px;\n}\n.projects .badge.award + .badge:not(.award) {\n    margin-left: 2em;\n}\n.projects .badge.license {\n    margin-right: 0.5em;\n    float: right;\n}\n\n.projects .biblio > .title {\n    font-style: italic;\n    font-size: 120%;\n}\n.projects .biblio > .authors {\n    margin-left: 0.25em;\n}\n\n.projects .category > .title {\n    display: block;\n    margin-top: 1em;\n    margin-bottom: 0.4em;\n    margin-left: 1em;\n    background: #ccf;\n    font-size: 150%;\n    padding: 0.5em 0 0.25em 0.2em;\n}\n\n.projects .blurb {\n    margin-top: 0.2em;\n    padding-left: 0.5em;\n}\n.projects .category .blurb .id-ref {  /* why that name? */\n    font-style: italic;\n    font-size: 90%;\n    margin-left: 0.5em;\n}\n.projects .category .description {\n    padding: 0.5em 2em 0.5em 2em;\n}\n[data-knowl]:hover, [data-knowl]:active, [data-knowl].active {\n    color: #8a1200;\n    background: #ffedeb;\n/*\n    margin-bottom: 0;\n*/\n    border-bottom: none;\n}\n\n"
  },
  {
    "path": "css/targets/ebook/ebook-common.scss",
    "content": "// Use this file for anything common to kindle and epub\n@use 'components/pretext';\n\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/discussion-inline';\n\n// TODO... needed???\n// @use 'colors/legacy/all_colors.scss';\n// @use 'colors/legacy/setcolors.css';\n\n// Note: Not sure if .ptx-content.epub selectors need to be different than the\n// .ptx-content selectors below. They were different in source files this\n// was constructed from.\n\n.ptx-content.epub {\n    img {\n        display: block;\n    }\n\n    .solutions {\n        margin-top: 1em;\n\n        .solution .type,\n        .answer .type {\n            font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n            font-weight: bold;\n        }\n\n        .solution .type + .period,\n        .answer .type + .period {\n            margin-right: 0.75em;\n        }\n\n        .solution .type + p,\n        .answer .type + p {\n            display: inline;\n        }\n    }\n\n\n    article.theorem-like,\n    article.definition-like,\n    article.example-like,\n    article.project-like,\n    article.remark-like,\n    article.openproblem-like,\n    article.openproblems-like,  /* delete once markup is fixed */\n    article.computation-like {\n        margin-left: 1px;\n    }\n\n    .proof {\n        margin-right: 1px;\n    }\n} // .ptx-content.epub\n\n.ptx-content {\n    // sage cell code goes in a pre.  What else goes there? \n    pre {\n        font-size: 95%;\n        padding-top: 0.3em;\n        padding-bottom: 0.5em;\n        padding-left: 0.5em;\n        background: #f0f0f0;\n    }\n\n    pre.code.input {\n        background: #f0f0ff;\n    }\n\n    pre.code.output {\n        background: #f0fff0;\n    }\n\n    // Placeholder template to use for section headings, will be extended\n    //  here and in other files\n    // The \"break-(before/after) might not actually do anything\n    %section-heading {\n        display: block;\n        margin-top: 0;\n        break-after: avoid !important;\n    }\n\n    section > .heading {\n        @extend %section-heading;\n    }\n\n    // Placeholder extended here and in other files\n    %section-heading-p {\n        display: block;\n        break-before: avoid !important;\n    }\n\n    section > .heading + p {\n        @extend %section-heading-p;\n    }\n\n    figcaption {\n        break-before: avoid !important;\n    }\n\n    figure {\n        break-inside: avoid !important;\n\n        .image-box,\n        .tabular-box {\n            break-after: avoid !important;\n        }\n    }\n} // .ptx-content\n\n\n/* This CSS is presumably from some page that MathJax created: */\n/* a page of HTML, with LaTeX mixed into it, got hit by a      */\n/* MathJax tool to create a new, derived, HTML page and this   */\n/* CSS was added to control placment of the math bits.  We     */\n/* started using it in June 2020 (commit: d1e899b5d99ce9bf),   */\n/* so it is a bit hazy as to the exact origin.                 */\n\n/* Original code comment:                                      */\n/* MathJax CSS, which is placed on enclosing span elements     */\n/*   mjpage:        for all math, so only class on online math */\n/*   mjpage__block: for display math, so additional on \"md\"    */\n/* Removed as EPUB 3.0 violation: .mjpage direction: ltr;      */\n\n.mjpage .MJX-monospace {\nfont-family: monospace\n}\n\n.mjpage .MJX-sans-serif {\nfont-family: sans-serif\n}\n\n.mjpage {\ndisplay: inline;\nfont-style: normal;\nfont-weight: normal;\nline-height: normal;\nfont-size: 100%;\nfont-size-adjust: none;\ntext-indent: 0;\ntext-align: left;\ntext-transform: none;\nletter-spacing: normal;\nword-spacing: normal;\nword-wrap: normal;\nwhite-space: nowrap;\nfloat: none;\nmax-width: none;\nmax-height: none;\nmin-width: 0;\nmin-height: 0;\nborder: 0;\npadding: 0;\nmargin: 0\n}\n\n.mjpage * {\ntransition: none;\n-webkit-transition: none;\n-moz-transition: none;\n-ms-transition: none;\n-o-transition: none\n}\n\n.mjx-svg-href {\nfill: blue;\nstroke: blue\n}\n\n.MathJax_SVG_LineBox {\ndisplay: table!important\n}\n\n.MathJax_SVG_LineBox span {\ndisplay: table-cell!important;\nwidth: 10000em!important;\nmin-width: 0;\nmax-width: none;\npadding: 0;\nborder: 0;\nmargin: 0\n}\n\n.mjpage__block {\ntext-align: center;\nmargin: 1em 0em;\nposition: relative;\ndisplay: block!important;\ntext-indent: 0;\nmax-width: none;\nmax-height: none;\nmin-width: 0;\nmin-height: 0;\nwidth: 100%\n}"
  },
  {
    "path": "css/targets/ebook/epub/epub.scss",
    "content": "/*! Theme: epub */\n@use '../ebook-common';\n\n// no extra styles\n"
  },
  {
    "path": "css/targets/ebook/kindle/kindle.scss",
    "content": "/*! Theme: kindle */\n@use '../ebook-common';\n\n.ptx-content {\n    // default behavior is excessive space below display math. \n    // should the selector be .mjpage__block? \n    .mjpage {\n        margin-bottom: 0 !important;\n        vertical-align: -.68ex;\n    }\n\n    .mjpage + p {\n        margin-top: -0.5em !important;\n    }\n\n    .solution-like > .type {\n        font-weight: bold;\n    }\n\n    .solution-like .type + p {\n        display: inline;\n    }\n\n    // Greg's L was a line too long \n    article.theorem-like::after,\n    article.definition-like::after,\n    article.example-like::after,\n    article.project-like::after,\n    article.remark-like::after,\n    article.computation-like::after {\n        margin-top: -1em;\n    }\n\n    section {\n        padding-top: 0 !important;\n    }\n\n    .subsection {\n        margin-top: 1.5em !important;\n    }\n\n    // kindle has these extra selectors... should epub? \n    // use @extend to mix them in via placeholder in ebook-common.scss\n    section article > .heading {\n        @extend %section-heading;\n    }\n\n    section article > .heading + p,\n    section article > .heading + .introduction {\n        @extend %section-heading-p;\n    }\n}\n"
  },
  {
    "path": "css/targets/html/README.md",
    "content": "HTML themes using the modern tooling.\n\nOther than default-modern, the intent is to use city names to identify themes.\nIdeally, related themes are identified by nearby cities (e.g. Denver and Greeley.)\n"
  },
  {
    "path": "css/targets/html/boulder/_customization.scss",
    "content": "//$color: var(--primary-color) !default;\n//$text-color: white !default;\n\n@use 'components/page-parts/extras/toc-expand-chevrons';\n\n.hide-type .codenumber:not(:empty)::after {\n    content: \". \";\n}\n\n.ptx-masthead {\n    display: none;\n}\n\n\n.button.disabled {\n    display: none;\n}\n\n//.ptx-toc {\n//    padding-top:unset;\n//}\n\n//// Top heading followed by no content and then a subsection that starts with heading\n//section > .heading + section > .heading {\n//  margin-top: 0.5em;\n//}\n\n"
  },
  {
    "path": "css/targets/html/boulder/theme-boulder.scss",
    "content": "/*! Theme: boulder */\n// Theme designed for short articles (i.e., research papers) or course documents.\n// Minimal navigation bar; there is likely only one html page per document.\n\n// Current maintainer: Oscar Levin\n\n// Variables used by theme. CSSBuilder overrides these by prepending\n// different definitions for these variables to this file before the theme\n// is compiled.\n$primary-color: hsl(270, 40%, 15%) !default;\n$primary-color-dark: hsl(270, 50%, 50%) !default;\n$background-color-dark: hsl(270, 10%, 5%) !default;\n\n@use \"sass:map\";\n\n\n// set some default sizing variables - this will also set up\n// defaults for expandable mixin\n@use '../salem/sizing-globals' with (\n  $content-width: 600px,\n  $content-side-padding: 20px\n);\n\n// Basic components: \n@use 'components/pretext-web'; \n\n@use '../salem/other-widen';\n\n@use '../denver/parts-paper';\n//@use 'shell';\n@use 'customization';\n@use '../greeley/chunks-greeley';\n\n//@use 'heading-tweaks';\n\n// fonts and colors\n// $body-font: 'Open Sans' !default;\n// $heading-font: 'Roboto' !default;\n@use 'fonts/fonts-google'; // with ($body: $body-font, $heading: $heading-font);\n\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/palette-single-bold\" as palette-single with (\n  $primary-color: $primary-color,\n);\n\n\n// primary/secondary color defined as determined by palette-chunks from\n// color-scheme, primary-color, secondary-color\n$primary-color: map.get(palette-single.$colors, 'primary-color');\n//$secondary-color: map.get(palette-dual.$colors, 'secondary-color');\n\n@use 'colors/palette-dark' as palette-dark with (\n    $primary-color: $primary-color-dark,\n    $background-color: $background-color-dark,\n);\n\n\n$light-colors: map.merge(palette-single.$colors, (\n  \"toclevel1-background\": var(--content-background),\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--content-background),\n));\n\n\n$dark-colors: map.merge(palette-dark.$colors,  (\n  \"toclevel1-background\": var(--content-background),\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--content-background),\n));\n\n@include colorHelpers.set-root-colors($light-colors, $dark-colors);\n"
  },
  {
    "path": "css/targets/html/default-modern/_chunks-default.scss",
    "content": "// Standard collection of chunks. This file should only be modified\n// to fix bugs or improve the default-modern theme. If you want to\n// make changes for use in some other theme, create a _chunks-XXX file\n// in that theme's directory.\n\n$border-radius: 8px !default;\n\n// One stop include for default style content blocks\n@use 'components/chunks/asides-floating';\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/discussion-inline';\n@use 'components/chunks/knowls' with ($border-radius: $border-radius);\n\n@use 'components/chunks/helpers/L-mixin';\n@use 'components/chunks/helpers/box-mixin' with ($border-radius: $border-radius);\n@use 'components/chunks/helpers/heading-box-mixin';\n@use 'components/chunks/helpers/sidebar-mixin';\n@use 'components/chunks/helpers/inline-heading-mixin';\n\n// rounded box\n.assemblage-like {\n  @include box-mixin.box($border-color: var(--assemblage-like-border-color), $background-color: var(--assemblage-like-body-background));\n}\n\n// box with title inset on top\n.goal-like {\n  @include heading-box-mixin.box(\n    $background-color: var(--goal-like-body-background),\n    $border-color: var(--goal-like-border-color)\n  );\n}\n\n// L-border\n.theorem-like,\n.definition-like,\n.example-like,\n.project-like,\n.remark-like,\n.openproblem-like,\n.computation-like {\n  @include L-mixin.border;\n}\n\n// projects get a dotted L\n.project-like:not(.knowl__content, .born-hidden-knowl) {\n  @include L-mixin.border($style: dotted);\n}\n\n/* proof gets a backwards facing L */\n.proof {\n  @include L-mixin.border(1px, $L-side: right);\n}\n\n/* No decorations/borders in knowls, to save space */\n.knowl__content {\n  .theorem-like,\n  .definition-like,\n  .example-like,\n  .project-like,\n  .remark-like,\n  .openproblem-like,\n  .computation-like,\n  .project-like {\n    padding-left: 0;\n    margin-left: 0;\n    border-left: none;\n\n    &::after {\n      border-bottom: none;\n      display: none;\n    }\n  }\n}\n\n// wide sidebar on an entire section of solutions\nsection.solutions:not(:is(:first-child)) {\n  @include sidebar-mixin.box(\n    $border-width: 10px,\n\n    $border-color: var(--page-border-color),\n  );\n}\n\n.paragraphs,\narticle {\n  @include inline-heading-mixin.heading;\n}\n"
  },
  {
    "path": "css/targets/html/default-modern/_customization.scss",
    "content": "// turn on some optional design features\n@use 'components/page-parts/extras/navbar-btn-borders';\n@use 'components/page-parts/extras/toc-last-level-plain';\n@use 'components/page-parts/extras/toc-borders';\n@use 'components/page-parts/extras/toc-expand-chevrons';\n\n// used to expand math and RS blocks\n@use 'components/helpers/expandable';\n\n// underlines to headings\n@use 'components/elements/extras/heading-underlines';\n\n// let math stretch out to fill space on right\n.displaymath {\n  @include expandable.expandable;\n}\n\n.code-display {\n  @include expandable.expandable;\n}\n\n// grow some rs elements\n$wide-rs-elements: \".parsons_section, .ac_section, .codelens\";\n\n.ptx-runestone-container:has(#{$wide-rs-elements}) {\n  @include expandable.expandable($always-expand: true);\n}\n\n// horizontal scroll for tabular boxes\n.tabular-box {\n  @include expandable.expandable;\n}\n"
  },
  {
    "path": "css/targets/html/default-modern/_parts-default.scss",
    "content": "// Left aligned \"page\" with limited width, beyond which it is centered\n\n$max-width: 1200px !default;\n$sidebar-width: 240px !default;\n$scrolling-toc: true !default;\n$nav-height: 36px !default;\n$content-width: 600px !default;\n$content-side-padding: 48px !default;\n$content-side-padding-tight: 28px !default;\n$navbar-breakpoint: 800px !default;\n\n$sidebar-breakpoint: $content-width + $sidebar-width + $content-side-padding * 2;\n$content-with-padding-width: $content-width + 2 * $content-side-padding;\n\n@use 'components/page-parts/body' with (\n  $max-width: $max-width,\n  $content-width: $content-width,\n  $content-side-padding: $content-side-padding,\n);\n\n@use 'components/page-parts/banner' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/navbar' with (\n  $nav-height: $nav-height,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/toc-default' with (\n  $scrolling: $scrolling-toc,\n  $sidebar-width: $sidebar-width,\n  $sidebar-breakpoint: $sidebar-breakpoint,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/footer' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n// Decrease the side margins once out of room\n@container ptx-main (width < #{$content-with-padding-width}) {\n  .ptx-page > .ptx-main { \n    .ptx-content {\n      padding-left: #{$content-side-padding-tight};\n      padding-right: #{$content-side-padding-tight};\n      max-width: calc($content-width + 2 * #{$content-side-padding-tight});\n    }\n  }\n}\n"
  },
  {
    "path": "css/targets/html/default-modern/theme-default-modern.scss",
    "content": "/*! Theme: default-modern */\n\n// Variables used by theme. CSSBuilder overrides these by prepending\n// different definitions for these variables to this file before the theme\n// is compiled.\n\n$palette: 'blue-red' !default;\n$primary-color: null !default;\n$secondary-color: null !default;\n$primary-color-dark: #698aa8 !default;\n$background-color-dark: #23241f !default;\n\n@use \"sass:map\";\n\n// ---------------------------------------------\n// components and layout\n@use 'parts-default';\n@use 'chunks-default';\n@use 'components/pretext-web' with (\n  $navbar-breakpoint: parts-default.$navbar-breakpoint,\n);\n\n// ---------------------------------------------\n// fonts and colors\n@use 'fonts/fonts-google';\n\n@use \"colors/color-helpers\" as colorHelpers;\n@use 'colors/palette-dual' as palette-dual with (\n  $palette: $palette,\n  $primary-color: $primary-color,\n  $secondary-color: $secondary-color,\n);\n\n// primary/secondary color defined as determined by palette-dual using\n// $palette, $primary-color, $secondary-color\n$primary-color: map.get(palette-dual.$colors, 'primary-color');\n$secondary-color: map.get(palette-dual.$colors, 'secondary-color');\n\n@use 'colors/palette-dark' as palette-dark with (\n  $primary-color: $primary-color-dark,\n  $background-color: $background-color-dark,\n);\n\n// ---------------------------------------------\n// extra customizations\n\n@use './customization';\n\n// ---------------------------------------------\n// concrete rules / includes that generate CSS\n\n// render the actual colors\n@include colorHelpers.set-root-colors(palette-dual.$colors, palette-dark.$colors);\n"
  },
  {
    "path": "css/targets/html/denver/_chunks-denver.scss",
    "content": "$border-radius: 0 !default;\n$chunk-heading-font-size: 1.125em !default;\n\n// One stop include for heading-box dominant content blocks\n@use 'components/chunks/asides-floating' with (\n  $float-width: 200px,\n  $float-offset: -365px,\n  $min-float-width: 1450px\n);\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/knowls' with ($border-radius: $border-radius);\n\n@use 'components/chunks/helpers/box-mixin' with ($border-radius: $border-radius);\n@use 'components/chunks/helpers/heading-box-mixin' with (\n  $border-radius: $border-radius,\n  $margin-top: 2.5em,\n  $heading-color: var(--block-head-color),\n  $heading-background: var(--block-border-color)\n);\n@use 'components/chunks/helpers/sidebar-mixin' with ($border-width: 4px);\n@use 'components/chunks/helpers/C-box-mixin' with ($border-radius: $border-radius);\n@use 'components/chunks/helpers/horizontal-bars-mixin';\n@use 'components/chunks/helpers/inline-heading-mixin';\n\n@mixin chunk-heading {\n  & > .heading {\n    font-size: $chunk-heading-font-size;\n  }\n}\n\n.theorem-like {\n  @include heading-box-mixin.box(\n    $background-color: var(--theorem-like-body-background),\n    $border-color: var(--theorem-like-border-color),\n    $heading-background: var(--theorem-like-border-color),\n  );\n  @include chunk-heading;\n}\n\n.definition-like {\n  @include heading-box-mixin.box(\n    $background-color: var(--definition-like-body-background),\n    $border-color: var(--definition-like-border-color),\n    $heading-background: var(--definition-like-border-color),\n  );\n  @include chunk-heading;\n}\n\n.assemblage-like {\n  @include heading-box-mixin.box(\n    $background-color: var(--assemblage-like-body-background),\n    $border-color: var(--assemblage-like-border-color),\n    $heading-background: var(--assemblage-like-border-color),\n  );\n  @include chunk-heading;\n}\n\n.project-like {\n  & > .heading {\n    font-style: italic;\n    font-size: 1.125em;\n  }\n  @include chunk-heading;\n\n  @include heading-box-mixin.box(\n    $background-color: var(--content-background),\n    $border-color: var(--project-like-border-color),\n    $heading-background: var(--content-background),\n    $heading-color: var(--body-text-color),\n  );\n}\n\n\n.proof {\n  padding-bottom: 1.5em;\n  padding-left: 1em;\n  padding-right: 1em;\n\n  &::after {\n    content: \"\\220E\";\n    position: absolute;\n    right: 0;\n    bottom: 1.5em;\n  }\n\n  .heading {\n    display: inline;\n    font-size: unset;\n    font-weight: bolder;\n  }\n  @include inline-heading-mixin.heading;\n\n}\n\n.solution-like {\n  .heading {\n    display: inline;\n    font-style: italic;\n    font-size: unset;\n  }\n}\n\n.remark-like {\n  @include sidebar-mixin.box(\n    $border-color: var(--remark-like-border-color),\n    $background-color: var(--remark-like-body-background),\n    $padding: 10px,\n    $border-width: 6px,\n    $border-radius: $border-radius,\n  );\n  @include chunk-heading;\n\n}\n\n.goal-like {\n  @include horizontal-bars-mixin.bars(\n    $border-color: var(--goal-like-border-color),\n    $font-style: italic,\n    $padding: 0.7em\n    );\n  @include chunk-heading;\n\n}\n\n\n.example-like {\n  @include C-box-mixin.box(\n    $border-color: var(--example-like-border-color),\n    $heading-background: var(--example-like-border-color)\n  );\n  @include chunk-heading;\n\n}\n\n\n.exercise-like.born-hidden-knowl {\n  @include C-box-mixin.box(\n    $border-color: var(--exercise-like-border-color),\n    $heading-background: var(--exercise-like-border-color)\n  );\n  @include chunk-heading;\n\n}\n\n\n// Inline exercises get C-box styling.  But we don't want this on any other exercise-like\n// Last one captures exercise-like in activated webwork.\n.exercise-like:not(.project-like .exercise-like, .exercise-like .exercise-like, .exercises .exercise-like, .reading-questions .exercise-like, .task, .worksheet .exercise-like, .problem-content .exercise-like) {\n  @include C-box-mixin.box(\n    $border-color: var(--exercise-like-border-color),\n    $heading-background: var(--exercise-like-border-color)\n  );\n  @include chunk-heading;\n\n}\n\n.computation-like {\n  @include C-box-mixin.box(\n    $border-color: var(--computation-like-border-color),\n    $heading-background: var(--computation-like-border-color)\n  );\n  @include chunk-heading;\n\n}\n\n/* No decorations/borders in knowls, to save space */\n.knowl__content {\n  border: none;\n  .theorem-like,\n  .definition-like,\n  .example-like,\n  .project-like,\n  .remark-like,\n  .openproblem-like,\n  .computation-like,\n  .project-like,\n  .commentary {\n    padding-left: 0;\n    margin-left: 0;\n    border-left: none;\n\n    &::after {\n      border-bottom: none;\n      display: none;\n    }\n  }\n}\n\n// Keep heading inline for divisional exercises and all tasks (the parent of the .exercise-like will have class .exercises).\n.exercises .exercise-like,\n.worksheet .exercise-like,\n.task {\n  @include inline-heading-mixin.heading;\n}\n"
  },
  {
    "path": "css/targets/html/denver/_customizations.scss",
    "content": "$color: var(--primary-color) !default;\n$text-color: white !default;\n\n@use 'components/page-parts/extras/toc-expand-chevrons';\n\n\n.hide-type .codenumber:not(:empty)::after {\n    content: \" \";\n}\n\n\n//Give navbar a gradient background\n.ptx-navbar {\n    background: linear-gradient(to bottom, var(--banner-background), var(--navbar-background));\n\n    .button:not(.copy-embed-button) {\n        background: linear-gradient(to bottom, var(--banner-background), var(--navbar-background));\n\n        // Turn off background-image (linear gradient) on hover so it behaves like a solid color button\n        &:hover:not(.disabled) {\n            background-image: none;\n        }\n\n        &.open {\n            background-image: none;\n        }\n\n    }\n}\n\n\n// Apply blocks of colors to headings when not in dark mode\n//:root {\n//  &:not(.dark-mode) {\n//    section > .heading{\n//      background: var(--primary-color-white-30);\n//      padding: 5px;\n//      padding-left: 15px;\n//      color: var(--page-color);\n//      border-radius: 2px;\n//    }\n\n//    // Section heading is extra dark\n//    section.section > .heading{\n//      background-color: var(--primary-color);\n//    }\n//  }\n//}\n"
  },
  {
    "path": "css/targets/html/denver/_parts-paper.scss",
    "content": "//Some basic variables\n$centered-content: true !default;\n$scrolling-toc: true !default;\n$nav-height: 36px !default;\n$navbar-breakpoint: 800px !default;\n\n//The following variables represent the *max* width of everything.  When the screen shrinks, we will reduce some of these.\n\n// The sidebar contains the TOC. It is left of the page, with a right-margin to separate it.\n$sidebar-width: 240px !default;\n$sidebar-right-margin: 80px !default;\n$sidebar-total-width: $sidebar-width + $sidebar-right-margin;\n\n// ptx-content contains the main content.  It is contained in ptx-main\n$content-width: 600px !default;\n$content-side-padding: 120px !default;\n$content-side-padding-tight: 20px !default;\n\n$sidebar-breakpoint: $content-width + $sidebar-total-width + 24px; // a little extra for padding\n\n// ptx-main contains the ptx-content and footer.  It has a width equal to the content plus the content's margins.\n// There is a right margin that counters the size of the sidebar+sidebarmargin.\n$main-width: $content-width + (2 * $content-side-padding);\n$main-right-margin: $sidebar-total-width;\n\n// ptx-page contains the sidebar and ptx-main.  It's width is the sum of main, main-right-margin, and sidebar-total-width.\n$page-width: $sidebar-total-width + $main-width + $main-right-margin;\n\n@use 'components/page-parts/body' with (\n  $max-width: $page-width,\n  $content-width: $content-width,\n  $content-side-padding: $content-side-padding,\n  $centered-content: $centered-content,\n);\n\n@use 'components/page-parts/banner' with (\n  $max-width: $main-width,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/navbar' with (\n  $max-width: $main-width,\n  $nav-height: $nav-height,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/toc-default' with (\n  $scrolling: $scrolling-toc,\n  $sidebar-width: $sidebar-width,\n  $sidebar-breakpoint: $sidebar-breakpoint,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/extras/toc-hidden-scrollbar';\n\n//@use 'summary-links';\n@use 'components/page-parts/footer' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use '../salem/rs-widen';\n\n// now handle smaller screens for rs elements\n@media (width < 850px) {\n  @include rs-widen.smaller-screen-widening;\n}\n\n\n.ptx-main {\n  margin-right: $sidebar-total-width;\n}\n\n.ptx-sidebar.hidden + .ptx-main {\n  margin-left: $sidebar-total-width;\n}\n\n\n// .ptx-main is the center column - apply page shadow to it\n.ptx-main {\n  // The color of the shadow is mostly gray, but with a slight tint of the primary color\n  box-shadow: 5px 10px 40px -10px var(--primary-color-gray-80);\n}\n@media (prefers-color-scheme: dark) {\n  .ptx-main {\n    // Dark mode shadow is just black\n    box-shadow: 5px 10px 40px -10px black;\n  }\n}\n\n\n\n// visually shift the sidebar off the page\n.ptx-sidebar {\n  //transform: translateX(-$sidebar-right-margin);\n  margin-right: $sidebar-right-margin;\n}\n\n.ptx-navbar {\n  border: none;\n\n  // move contents button out of navbar-contents and align with sidebar\n  .toc-toggle {\n    transform: translateX(-$sidebar-total-width);\n    position: absolute;\n    left: 0;\n    justify-content: left;\n  }\n}\n\n.ptx-toc {\n  border: none;\n  position: sticky;\n  top: $nav-height;\n}\n\n// Make expanded parts of TOC look more like subsections\n.toc-item.visible {\n  font-size: .95em;\n  padding-left: 8px;\n}\n\n.ptx-page {\n    margin-top: 36px;\n    margin-bottom: 36px;\n}\n\n// Sidebar hits the left side of page - need to lock it in place\n$sidebar-lock-breakpoint: $main-width + 2 * $sidebar-total-width;\n// @debug \"$sidebar-lock-breakpoint: #{$sidebar-lock-breakpoint}\";\n@media screen and (width <= $sidebar-lock-breakpoint) {\n  .ptx-page {\n    margin-left: 0;\n    max-width: 100%;\n  }\n  .ptx-main {\n    margin-right: calc(100% - $main-width - $sidebar-total-width);\n    max-width: $main-width;\n  }\n  .ptx-sidebar.hidden + .ptx-main {\n    margin-right: auto;\n    margin-left: auto;\n  }\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: $sidebar-total-width;\n  }\n}\n\n// When the the main content is almost to the edge of the screen, we remove the drop-shadow\n// and change the layout strategy to center the content in what space is available\n// Sidebar no only consumes minimum required space as whitespace on left/right of main should be equal\n$page-border-breakpoint: $main-width + $sidebar-width + 2 * $sidebar-right-margin;\n// @debug \"page-border-breakpoint: #{$page-border-breakpoint}\";\n@media screen and (width <= $page-border-breakpoint) {\n  // main is centered in page\n  .ptx-main {\n    box-shadow: unset;\n    margin-right: auto;\n\n    // shrink content padding\n    .ptx-content {\n      padding-left: $content-side-padding-tight;\n      padding-right: $content-side-padding-tight;\n      max-width: calc($content-width + 2 * $content-side-padding-tight);\n    }\n  }\n\n  .ptx-sidebar {\n    margin-right: 0;\n  }\n\n  // align toc-toggle with right edge of sidebar\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: $sidebar-width;\n  }\n  .ptx-navbar .toc-toggle {\n    transform: translateX(-$sidebar-width);\n    justify-content: center;\n  }\n\n  // Reset margins for page now that we don't show box-shadow\n  .ptx-page {\n    margin-top: unset;\n    margin-bottom: unset;\n  }\n\n  // And lower TOC accordingly\n  .ptx-toc {\n    padding-top: 36px;\n\n  }\n\n}\n\n\n// Now it is time to hide the sidebar unless requested\n$sidebar-hide-breakpoint: $content-width + 2 * $content-side-padding-tight + $sidebar-width;\n// @debug \"sidebar-hide-breakpoint: #{$sidebar-hide-breakpoint}\";\n@media screen and (width <= $sidebar-hide-breakpoint) {\n  .ptx-sidebar {\n    display: none;\n  }\n}\n\n//Adjust again when navbar moves to bottom.\n@media screen and (max-width: $navbar-breakpoint) {\n  // Undo modifications to toc-toggle and margin that held space for it\n  .ptx-navbar .ptx-navbar-contents {\n    margin-left: 0;\n  }\n  .ptx-navbar .toc-toggle {\n      transform: none;\n      position: relative;\n      justify-content: center;\n  }\n\n  .ptx-content-footer {\n    padding-left: $content-side-padding-tight;\n    padding-right: $content-side-padding-tight;\n  }\n}\n\n\n// TOC hover spans entire width of TOC item\n.toc-item:is(:hover, :focus) {\n  color: var(--tocitem-highlight-text-color);\n  background-color: var(--tocitem-highlight-background);\n  border-color: var(--tocitem-highlight-border-color);\n}\n\n\n.standalone-page {\n  margin: 0;\n  padding: 0;\n\n  .ptx-page {\n    margin-top: 0;\n    margin-bottom: 0;\n  }\n\n  .ptx-main {\n    margin-right: auto;\n    margin-left: auto;\n    box-shadow: none;\n    max-width: 100%;\n  }\n}\n"
  },
  {
    "path": "css/targets/html/denver/theme-denver.scss",
    "content": "/*! Theme: denver */\n// Theme that uses bold content blocks with a visible centered \"page\" of content\n\n// Current maintainer: Oscar Levin\n\n// Variables used by theme. CSSBuilder overrides these by prepending\n// different definitions for these variables to this file before the theme\n// is compiled.\n\n$palette: 'bold' !default;\n$color-main: null !default;\n$color-do: null !default;\n$color-fact: null !default;\n$color-meta: null !default;\n$primary-color-dark: hsl(210, 50%, 50%) !default;\n$background-color-dark: hsl(210, 10%, 10%) !default;\n\n@use \"sass:map\";\n@use 'sass:color';\n@use \"colors/color-helpers\" as colorHelpers;\n\n// ---------------------------------------------\n// components\n\n// set some default sizing variables - this will also set up\n// defaults for expandable mixin\n@use '../salem/sizing-globals' with (\n  $content-width: 600px,\n  $content-side-padding: 20px\n);\n\n@use 'parts-paper' with(\n  $scrolling-toc: true,\n);\n\n@use 'chunks-denver';\n\n@use 'components/pretext-web' with (\n $navbar-breakpoint: parts-paper.$navbar-breakpoint,\n);\n\n@use '../salem/other-widen';\n\n// ---------------------------------------------\n// fonts and colors\n$heading-font: 'Noto Sans, Helvetica Neue, Helvetica, Arial, sans-serif' !default;\n@use 'fonts/fonts-google' with ($heading: $heading-font);\n\n// fancy colors for chunks\n@use 'colors/palette-quad-chunks' as palette-chunks with (\n  $palette: $palette,\n  $color-main: $color-main,\n  $color-do: $color-do,\n  $color-fact: $color-fact,\n  $color-meta: $color-meta,\n);\n\n\n// primary color defined by color-main as determined by palette-chunks\n$primary-color: map.get(palette-chunks.$colors, 'color-main');\n$secondary-color: map.get(palette-chunks.$colors, 'color-meta');\n\n@use 'colors/palette-single' as palette-light with (\n  $primary-color: $primary-color,\n  // $secondary-color: $secondary-color\n);\n\n$custom-colors: map.merge(palette-chunks.$colors, (\n  \"example-like-body-background\": var(--content-background),\n  \"example-like-border-color\": var(--color-main),\n  \"toclevel1-background\": var(--content-background),\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--content-background),\n));\n\n\n$light-colors: map.merge(palette-light.$colors, $custom-colors);\n\n\n@use 'colors/palette-dark' as palette-dark with (\n  $primary-color: $primary-color-dark,\n  $background-color: $background-color-dark,\n);\n\n$dark-colors: map.merge(palette-dark.$colors, (\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--content-background),\n  \"toclevel1-background\": var(--content-background),\n));\n\n\n// ---------------------------------------------\n// customizations\n\n// @use './shell';\n@use './customizations' with ($text-color: colorHelpers.text-contrast($primary-color));\n\n\n// ---------------------------------------------\n// concrete rules / includes that generate CSS\n\n// render the actual colors\n@include colorHelpers.set-root-colors($light-colors, $dark-colors);\n\n"
  },
  {
    "path": "css/targets/html/greeley/_chunks-greeley.scss",
    "content": "$border-radius: 8px !default;\n\n// One stop include for default style content blocks\n@use 'components/chunks/asides-floating' with (\n  $float-width: 200px,\n  $float-offset: -365px,\n  $min-float-width: 1450px\n);\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/discussion-inline';\n@use 'components/chunks/knowls' with ($border-radius: $border-radius);\n@use 'components/chunks/helpers/L-mixin';\n@use 'components/chunks/helpers/box-mixin' with ($border-radius: 0);\n@use 'components/chunks/helpers/heading-box-mixin';\n@use 'components/chunks/helpers/sidebar-mixin';\n@use 'components/chunks/helpers/inline-heading-mixin';\n\n.assemblage-like, .goal-like {\n  @include sidebar-mixin.box(\n    $border-width: 4px,\n    $background-color: var(--goal-like-body-background),\n  );\n}\n\n\n.theorem-like,\n.definition-like\n{\n  .heading {\n    display: block;\n    font-size: 1.1em;\n  }\n  .para {\n    font-style: italic;\n  }\n}\n\n.example-like,\n.project-like,\n.remark-like,\n.openproblem-like,\n.computation-like,\n.commentary  {\n  > .heading {\n    display: block;\n    font-size: 1.1em;\n  }\n}\n\n.proof {\n  padding-bottom: 1.5em;\n  padding-left: 1em;\n  padding-right: 1em;\n  &::after {\n    content: \"□\";\n    position: absolute;\n    right: 0;\n    bottom: 1.5em;\n  }\n\n  .heading {\n    font-size: unset;\n    font-weight: bold;\n    font-style: italic;\n  }\n}\n\n.solution-like {\n  .heading {\n    display: inline;\n    font-style: italic;\n    font-size: unset;\n  }\n}\n\n.tasks\n\n/* No decorations/borders in knowls, to save space */\n.knowl__content {\n  border: none;\n  .theorem-like,\n  .definition-like,\n  .example-like,\n  .project-like,\n  .remark-like,\n  .openproblem-like,\n  .computation-like,\n  .project-like,\n  .commentary {\n    padding-left: 0;\n    margin-left: 0;\n    border-left: none;\n\n    &::after {\n      border-bottom: none;\n      display: none;\n    }\n  }\n}\n\n// wide sidebar on an entire section of solutions\nsection.solutions:not(:is(:first-child)) {\n  @include sidebar-mixin.box($border-color: var(--solution-border-color));\n}\n\n.paragraphs,\narticle {\n  @include inline-heading-mixin.heading;\n}\n"
  },
  {
    "path": "css/targets/html/greeley/_customization.scss",
    "content": "//$color: var(--primary-color) !default;\n//$text-color: white !default;\n\n@use 'components/page-parts/extras/toc-expand-chevrons';\n\n\n.hide-type .codenumber:not(:empty)::after {\n    content: \". \";\n}\n\n//:root {\n//  &:not(.dark-mode) {\n//    section > .heading.hide-type {\n//      background: var(--primary-color-white-30);\n//      padding: 5px;\n//      padding-left: 15px;\n//      color: var(--page-color);\n//      border-radius: 2px;\n//    }\n\n//    // Section heading is extra dark\n//    section.section > .heading{\n//      background-color: var(--primary-color);\n//    }\n//  }\n//}\n\n//// Top heading followed by no content and then a subsection that starts with heading\n//section > .heading + section > .heading {\n//  margin-top: 0.5em;\n//}\n\n"
  },
  {
    "path": "css/targets/html/greeley/theme-greeley.scss",
    "content": "/*! Theme: greeley */\n// Theme designed for short articles (i.e., research papers).\n\n// Current maintainer: Oscar Levin\n\n// Variables used by theme. CSSBuilder overrides these by prepending\n// different definitions for these variables to this file before the theme\n// is compiled.\n$palette: 'grays' !default;\n$primary-color: hsl(214, 59%, 40%) !default;\n$secondary-color: null !default;\n$primary-color-dark: hsl(214, 50%, 50%) !default;\n$background-color-dark: hsl(214, 20%, 10%) !default;\n\n@use \"sass:map\";\n\n// Imports in this file can be either relative to this file or \n// relative to css/ directory\n// Basic components: \n\n// set some default sizing variables - this will also set up\n// defaults for expandable mixin\n@use '../salem/sizing-globals' with (\n  $content-width: 600px,\n  $content-side-padding: 20px\n);\n\n@use 'components/pretext-web';\n\n@use '../salem/other-widen';\n\n@use '../denver/parts-paper';\n//@use 'shell';\n@use 'customization';\n@use 'chunks-greeley';\n\n//@use 'heading-tweaks';\n\n// fonts and colors\n// $body-font: 'Open Sans' !default;\n// $heading-font: 'Roboto' !default;\n@use 'fonts/fonts-google'; // with ($body: $body-font, $heading: $heading-font);\n\n@use \"colors/color-helpers\" as colorHelpers;\n@use \"colors/palette-single-bold\" as palette-single with (\n  $primary-color: $primary-color,\n);\n\n\n// primary/secondary color defined as determined by palette-chunks from\n// color-scheme, primary-color, secondary-color\n$primary-color: map.get(palette-single.$colors, 'primary-color');\n//$secondary-color: map.get(palette-dual.$colors, 'secondary-color');\n\n@use 'colors/palette-dark' as palette-dark with (\n    $primary-color: $primary-color-dark,\n    $background-color: $background-color-dark,\n);\n\n\n$light-colors: map.merge(palette-single.$colors, (\n  \"toclevel1-background\": var(--content-background),\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--content-background),\n));\n\n\n$dark-colors: map.merge(palette-dark.$colors,  (\n  \"toclevel1-background\": var(--content-background),\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--content-background),\n));\n\n@include colorHelpers.set-root-colors($light-colors, $dark-colors);\n"
  },
  {
    "path": "css/targets/html/legacy/crc/banner_crc.css",
    "content": "/*** Some PreTeXt overrides ***/\n/*\n@media (min-width: 801px) {\n  .title-container .title {\n    font-size: unset;\n    font-weight: unset;\n  }\n}\n*/\n.ptx-masthead .title-container > .heading {\n  line-height: unset;\n}\n/*\n.ptx-masthead .title-container > .heading {\n  font-family: unset;\n  font-weight: unset;\n  font-size: unset;\n  line-height: unset;\n  color: unset;\n}\n*/\n.ptx-masthead .byline {\n  margin: unset;\n  font-size: unset;\n  line-height: unset;\n  font-family: unset;\n}\n\n.ptx-masthead .ptx-banner {\n    border-top: 1px solid transparent;\n    border-bottom: none;\n    overflow: hidden;\n    padding-top: 0.625em;\n    padding-bottom: 1.125em;\n}\n\n.ptx-content .summary-links a {\n    display: block;\n    padding: .6em;\n    text-decoration: none;\n    font-family: \"Open Sans\", sans-serif;\n    font-size: 1em;\n    font-weight: 600;\n    border-radius: 5px;\n}\n\n.ptx-content .summary-links a .codenumber {\n    color: var(--bluegreen)\n}\n\n.ptx-content .summary-links a .title {\n    font-weight: 600;\n}\n\n.ptx-content .summary-links a:hover {\n    color: #fff;\n    background: var(--bluegreen);\n}\n\n.ptx-content .summary-links ul,\n.ptx-content .summary-links ul li {\n    display: grid;\n    list-style-type: none;\n    min-width: 300px;\n    padding-inline-start: 0px;\n    font-family: \"Open Sans\", sans-serif;\n    justify-items: stretch;\n    margin: 2px auto 3px auto;\n}\n\n\n.ptx-content .summary-links > ul {\n    /* //   text-align: left; */\n}\n\n@media screen and (min-width: 600px) {\n    .ptx-content .summary-links ul,\n    .ptx-content .summary-links ul li {\n\twidth: 60vw;\n\tmax-width: 500px;\n    }\n}\n\n@media screen and (min-width: 700px) {\n    .ptx-content .summary-links ul,\n    .ptx-content .summary-links ul li {\n\twidth: 55vw;\n\tmax-width: 500px;\n    }\n}\n\n@media screen and (min-width: 800px) {\n    .ptx-content .summary-links ul,\n    .ptx-content .summary-links ul li {\n\twidth: 49vw;\n\tmax-width: 500px;\n    }\n}\n/*** End PreTeXt overrides ***/\n\n\n\n.ptx-masthead .title-container {\n    font-size: 1em;\n    padding-left: 9.68px;\n    overflow: hidden;\n}\n\n@media screen and (max-width: 480px) {\n    .ptx-masthead .title-container {\n\tpadding: 0;\n\ttext-align: center;\n    }\n}\n\n.ptx-masthead .title-container > .heading {\n    margin: 0;\n    font-size: 2em;\n}\n\n.ptx-masthead .title-container > .heading.hide-type .type {\n    display: none;\n}\n.ptx-masthead .title-container > .heading.hide-codenumber .codenumber {\n    display: none;\n}\n.ptx-masthead .title-container > .heading.hide-title .title {\n    display: none;\n}\n\n/*\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n\n\n.ptx-masthead .title-container > .heading a {\n    color: #932919;\n    background: none;\n    text-decoration: none;\n}\n\n\n\n.ptx-masthead .title-container > .heading a:active {\n    color: #3572a0;\n}\n*/\n\n.ptx-masthead .title-container > .heading .subtitle {\n    font-weight: normal;\n}\n\n\n@media screen and (max-width: 800px) {\n    .ptx-masthead .title-container > .heading .subtitle {\n\t/* Force the subtitle onto a separate line */\n\tdisplay: block;\n\t/* De-emphasize relative to main title */\n\tcolor: #595959;\n\t/* Remove colon */\n    }\n    .ptx-masthead .title-container > .heading .subtitle:before {\n\tcontent: normal;\n    }\n}\n\n\n.ptx-masthead .byline {\n    color: #333333;\n    font-size: 1.2em;\n    font-weight: normal;\n    margin: 0;\n    min-height: inherit;\n}\n\n\n\n@media screen and (max-width: 480px) {\n    .ptx-masthead .byline {\n\tmargin-top: 0;\n\tfont-size: 1em;\n\tline-height: 1.25em;\n    }\n}\n\n\n\n\n.ptx-masthead .byline a {\n    color: #333333;\n}\n.ptx-masthead .byline a:active {\n    color: #3572a0;\n}\n\n\n.ptx-masthead .ptx-banner .title-container .heading {\n    font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n}\n\n/* .ptx-masthead-banner  */\n.ptx-masthead .ptx-banner {  /* maybe .ptx-masthead > .ptx-banner? */\n    max-width: 904px;\n    display: grid;\n    grid-gap: 1em;\n    grid-template-columns: 50px 1fr;\n    grid-template-areas:\n        \"ptx-logobox ptx-title-byline-box\";\n    background-color: #fff; /* #fafafa;  */\n    padding: 0px 20px 0px 20px;\n/*\n    justify-self: stretch;\n*/\n\n}\n\n.title-container .title  {\n    color: var(--bodytitle);\n}\n\n.title-container .subtitle  {\n    color: var(--bodysubtitle);\n}\n\n/* Adjust font sizes by screen sizes */\n/* Phones */\n.title-container {\n    margin-top: 0px;\n}\n\n.title-container  .title {\n    font-size: .6em;\n    font-weight: 600;\n}\n\n.title-container  .subtitle {\n    font-weight: normal;\n    font-size: .5em;\n}\n\n\n\n/* Larger than mobile */\n@media (min-width: 400px) {\n\n    .title-container {\n\tmargin-top: 0px;\n    }\n\n    .title-container  .title {\n\tfont-size: .7em;\n\tfont-weight: 600;\n    }\n\n    .title-container  .subtitle {\n\tfont-weight: normal;\n\tfont-size: .6em;\n    }\n\n\n}\n\n/* Larger than phablet (also point when grid becomes active) */\n@media (min-width: 550px) {\n\n    .title-container {\n\tmargin-top: 3px;\n    }\n\n    .title-container  .title {\n\tfont-size: .9em;\n\tfont-weight: 600;\n    }\n\n    .title-container  .subtitle {\n\tfont-weight: normal;\n\tfont-size: .7em;\n    }\n\n\n}\n\n/* Large screens */\n@media (min-width: 801px) {\n\n    .title-container {\n\tmargin-top: 5px;\n    }\n\n    .title-container  .title {\n\tfont-size: 1.0em;\n\tfont-weight: 600;\n    }\n\n    .title-container  .subtitle {\n\tfont-weight: normal;\n\tfont-size: .8em;\n    }\n\n\n}\n\n\n\n/* .ptx-logobox  */\n.logo-link {\n    grid-area: ptx-logobox;\n    color: #000;\n    padding: 15px 0px 0px 0px;\n    justify-self: stretch;\n}\n\n/* Fix the width of logo to always be 50px */\n/* .ptx-logobox img  */\n.ptx-masthead .logo-link img {\n    width: 50px;\n}\n\n/* .ptx-title-byline-box  */\n.title-container {\n    grid-area: ptx-title-byline-box;\n    color: #000;\n    padding: 0px 0px 0px 0px;\n    justify-self: stretch;\n}\n\n/* ptx-searchbox */\n.searchbox {\n    grid-area: ptx-searchbox;\n}\n"
  },
  {
    "path": "css/targets/html/legacy/crc/navbar_crc.css",
    "content": "\n/* Since CRC loads after default, we need to suppress some of the default styling */\n\n.ptx-navbar .treebuttons .next-button, .ptx-navbar .treebuttons .up-button,\n.ptx-navbar .treebuttons .previous-button {\n  float: unset;\n}\n\n.ptx-navbar .previous-button, .ptx-navbar .up-button, .ptx-navbar .next-button,\n.ptx-navbar .index-button, .ptx-navbar .calculator-toggle, .ptx-navbar .toc-toggle {\n  width: unset;\n}\n\n.ptx-navbar .calculator-toggle {\n  margin-left: unset;\n  margin-right: unset;\n}\n\n.ptx-navbar .index-button .name {\n  padding-top: unset;\n}\n\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n\n\n/* Generic and large screen layout */\n.ptx-navbar .toc-toggle, .ptx-navbar .index-button, .ptx-navbar .searchbox\n{\n}\n\n.ptx-navbar .nav-other-controls\n{\n    margin-left: 1em;\n}\n\n.ptx-navbar .treebuttons {\n    display: flex;\n    justify-content: right;\n}\n\n.ptx-navbar .button {\n    padding: 0 10px 0 10px;\n}\n\n.ptx-navbar .treebuttons .button {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n\n.ptx-navbar .treebuttons .previous-button { padding-left: 0px; }\n.ptx-navbar .treebuttons .next-button { padding-right: 0px; }\n\n.ptx-navbar .nav-runestone-controls {\n    display: flex;\n}\n\n\nnav.ptx-navbar {\n    display: grid;\n    grid-column-gap: 0em;\n\n    grid-template-columns: auto auto auto 1fr 1fr auto; \n    grid-template-areas:\n    \"MH-toc-area MH-extras-area1 ptx-searchbox MH-extras-area2 MH-page-navigation-area MH-preferences-area\";\n    background-color: #fff;\n/*\n    padding: 20px 0px 0px 0px;\n*/\n    align-items: start;\n\n    border: 2px solid #ddd;\n    border-top: none;\n    border-bottom-left-radius: 5px;\n    border-bottom-right-radius: 5px;\n\n    font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n    z-index: 20;\n\n    position: sticky;\n    top: 0;\n    align-items: end;\n    min-height: unset; /* to thwart navbar.less */\n    margin-bottom: 0; /* to thwart navbar.less */\n}\nnav.ptx-navbar::before,\nnav.ptx-navbar::after {\n    content: none;  /* to thwart clearfix.less */\n}\n\n\n/* TOC button may be sized differently */\n.toc-toggle {\n    display: inline-block;\n    height: 32px;\n    color: #333;\n    font-family: inherit;\n    text-align: center;\n    font-size: .8em; /*11px; */\n    font-weight: 600;\n    line-height: 32px;\n    letter-spacing: .1rem;\n    text-transform: uppercase;\n    text-decoration: none;\n    white-space: nowrap;\n    background-color: #eee;\n    border-radius: 4px;\n    border: 1px solid #888;\n    cursor: pointer;\n    box-sizing: border-box;\n    margin-right: 2em;\n}\n\n.toc-toggle:hover {\n    background-color: #fafafa;\n    color: black;\n\n}\n\n\n/* .ptx-MH-toc-area  */\n.toc-toggle {\n    grid-area: MH-toc-area;\n    justify-self: start;\n/*\n    align-self: start;\n*/\n}\n\n/* .ptx-MH-extras-area  */\n.index-button {\n    grid-area: MH-extras-area1;\n    justify-self: right;\n}\n.calculator-toggle {\n    grid-area: MH-extras-area2;\n    justify-self: left;\n}\n.user-preferences-button {\n    justify-self: left;\n}\n\n/* .ptx-page-navigation-area  */\n.treebuttons {\n    grid-area: MH-page-navigation-area;\n    justify-self: end;\n    display: flex;\n    width: 100%;\n/*\n    align-self: start;\n*/\n}\n\n.nav-runestone-controls {\n    grid-area: MH-preferences-area;\n    justify-self: end;\n    display: flex;\n    padding-left: 4em;\n}\n\n/* .ptx-navbar button, */\n.ptx-navbar .button {\n    display: inline-block;\n    height: 32px;\n    color: var(--bodytitle);\n    font-family: inherit;\n    text-align: center;\n    font-size: .8em;\n    font-weight: 600;\n    line-height: 32px;\n    letter-spacing: .1rem;\n    text-transform: uppercase;\n    text-decoration: none;\n    white-space: nowrap;\n    background-color: #eee;\n    border-radius: 4px;\n    border: 1px solid #888;\n    cursor: pointer;\n    box-sizing: border-box;\n}\n\n.ptx-navbar .searchbutton {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n}\n\n.searchresultsplaceholder {\n    left: calc(50vw - 300px);\n}\n\n\n/* Small screen layout  */\n@media only screen and (max-width: 800px) {\n    .pretext  .ptx-navbar {\n\tposition: fixed;\n\ttop: auto;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tpadding: 0;\n\tbackground: #ededed;\n    grid-template-columns: auto auto auto auto 1fr auto; \n/*\n\tbox-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n*/\n\t/*    height: 44.2px; */\n\t\n\talign-items: end;\n    }\n\n    /* .pretext .ptx-navbar .button {\n\twidth: 24.95%;\n\theight: 36px;\n\tline-height: 40px;\n\tmargin: 0;\n    }\n    .ptx-navbar    .toc-toggle {\n\twidth: 25%;\n\tmargin: 0;\n    } */\n\n    .ptx-navbar .toc-toggle {\n        padding: 0 40px;\n    }\n\n    .ptx-navbar .nav-runestone-controls {\n        padding-left: 0;\n    }\n\n    .ptx-navbar .treebuttons {\n        justify-content: center;\n    }\n    \n    .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n        display: none;\n    }\n\n    .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n        display: inline-block;\n    }\n\n    .searchresultsplaceholder {\n        left: 10vw;\n    }\n}\n\n.ptx-navbar .button:hover {\n    background-color: #fafafa;\n    color: #888;\n}\n\n.ptx-navbar .button:focus {\n    outline: thin dotted #333;\n    outline-offset: -2px;\n}\n\n.ptx-navbar .button:active {\n    background-color: #e0e0e0;\n}\n\n\n.ptx-navbar .button.disabled {\n    opacity: .4;\n    color: #333333;\n    background: #ededed;\n    cursor: default;\n    box-shadow: none;\n}\n.ptx-navbar .toc-toggle .icon {\n    font-size: 1.5em;\n    position: relative;\n    bottom: -0.1em;\n    padding-left: 0;\n    padding-right: 0.4em;\n}\n.ptx-navbar .toc-toggle .name {\n    font-size: 1.0em;\n}\n\n.ptx-navbar .index-button .name {\n    /*  Nada */\n}\n.ptx-navbar .index-button .icon {\n    display: none;\n}\n\n.ptx-navbar .calculator-toggle .name {\n    /*  Nada */\n}\n.ptx-navbar .calculator-toggle .icon {\n    display: none;\n}\n\n.ptx-navbar .runestone-profile .name {\n    display: none;\n}\n\n.ptx-navbar .activecode-toggle .name {\n    display: none;\n}\n\n.pretext .ptx-navbar .dropdown {\n    height: 32px;\n}\n\n.ptx-navbar .up-button {\n    text-align: center;\n}\n\n.ptx-navbar .name {\n    display: inline-block;\n}\n.ptx-navbar .searchbutton .name {\n    display: none;\n    position: relative;\n    bottom: 0;\n}\n\n.ptx-navbar .icon {\n    display: inline-block;\n    font-size: 1.5em;\n}\n.ptx-navbar .previous-button .icon {\n    margin-left: 0.3em;\n    margin-right: 0.2em;\n}\n.ptx-navbar .up-button .icon {\n    margin-left: 0;\n    margin-right: 0.2em;\n}\n.ptx-navbar .next-button .icon {\n    margin-left: 0.2em;\n    margin-right: 0.3em;\n}\n.ptx-navbar .user-preferences-button {\n  padding: 0 0.8em 0 0.8em;\n  margin-left: 2em;\n  border: 1px solid #bababa;\n  width: 6em;\n}\n\n@media screen and (max-width: 800px) {\n    .ptx-navbar .toc-toggle .name,\n    .ptx-navbar .previous-button .name,\n    .ptx-navbar .up-button .name,\n    .ptx-navbar .up-button .disabled .name,\n    .ptx-navbar .next-button .name {\n        display: none;\n    }\n\n    .ptx-navbar .toc-toggle {\n        margin: 0;\n    }\n\n    .ptx-navbar .calculator-toggle .icon {\n        padding-top: 5px;\n    }\n}\n\n"
  },
  {
    "path": "css/targets/html/legacy/crc/shell_crc.css",
    "content": "/*******************************************************************************\n * shell_X.css controls the overall arrangement of the blocks on the page.\n *******************************************************************************\n *\n * Author: Thomas Shemanske\n *\n *******************************************************************************\n */\n\n/* The overall structure is\n  html\n    head\n    body.pretext\n      header.ptx-masthead\n      nav.ptx-navbar\n      div.ptx-page\n        div.sidebar\n          nav.ptx-toc\n        main.ptx-main\n          div.ptx-content\n          div.ptx-content-footer\n      div.ptx-page-footer\n*/\n\n/*  Supplied by colors_bluegreen_grey.css  */\n/*\n:root{\n  --bluegreen: hsl(192, 98%, 23%);\n  --bodytitle: var(--bluegreen);\n  --bodysubtitle: var(--bluegreen);\n}\n*/\n\n/* over-ride some of the default style */\n\n.pretext .ptx-page > .ptx-main {\n  margin-left: unset;\n}\n.ptx-masthead .logo-link img {\n  width: unset;\n  height: unset;\n  max-height: unset;\n}\n.ptx-masthead .logo-link {\n  font-size: unset;\n  text-align: unset;\n  line-height: unset;\n}\n.pretext .ptx-masthead {\n  position: unset;\n  background: unset;\n  min-height: unset;\n  border: unset;\n  position: unset;\n  z-index: unset;\n}\n\n.ptx-content-footer .previous-button .name {\n  margin-left: unset;\n  padding-right: unset;\n}\n.pretext .ptx-content-footer .name {\n  position: relative;\n  bottom: 0;\n}\n.pretext .ptx-content-footer .button.previous-button, .pretext .ptx-content-footer .button.next-button {\n  font-size: 0.8em;\n  margin-top: 1.5em;\n  padding: 0.4em;\n}\n.pretext .ptx-content-footer .top-button .icon, .pretext .ptx-content-footer .top-button .name {\n  display: unset;\n}\n.pretext .ptx-content-footer .previous-button .icon {\n  margin-left: unset;\n  margin-right: unset;\n}\n.pretext .ptx-content-footer .button {\n  text-align: unset;\n/*\n  color: unset;\n  background-color: unset;\n*/\n  padding: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  height: 35px;\n  min-width: 85px;\n}\n\n/* Elements introduced in order of appearance */\n\n/* .ptx-container  */\nbody.pretext {\n/*\n    position: relative;\n*/\n    max-width: 904px;  /* To match PreTeXt */\n    margin: 0 auto 0 auto;  /* centered content */\n    padding: 0;\n    box-sizing: border-box;\n}\n\n/* .ptx-masthead-wrapper  */\n.pretext .ptx-masthead {\n    border: 2px solid #ddd;\n    border-bottom: none;\n    border-top-left-radius: 5px;\n    border-top-right-radius: 5px;\n    /*     overflow: hidden;*/  /* otherwise the rounded corners are not visible */\n}\n.pretext .ptx-masthead {\n    position: relative;\n    background: #fafafa;\n    min-height: inherit;\n    box-shadow: none;\n}\n.pretext .ptx-masthead {\n    max-width: 904px;\n    border-right: 1px solid #bababa;\n}\n@media only screen and (min-width: 600px) {\n    /*   .ptx-masthead-wrapper {*/\n    .ptx-masthead {\n        z-index: 100;\n    }\n}\n.ptx-masthead .searchbox {\n   bottom: 2px;\n   margin-right: -19px;\n}\n\n/* .ptx-main-wrapper  */\n.ptx-page {\n    font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n    font-size: 1.0em;\n  min-height: 100vh;\n\n    display: grid;\n    grid-template-columns: auto 1fr auto;\n    grid-template-rows: auto;\n    grid-template-areas:\n        \"toc main-content\"\n        \"toc content-footer\";\n}\n.ptx-content {\n  min-height: 50vh;\n}\n\n/* MH-toc dropdown Content (Hidden by Default) */\n.ptx-sidebar {\n    position: sticky;\n    top: 34px;\n    background-color: #f1f1f1;\n    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n    width: 240px;\n    max-height: 100vh;\n    height: 100vh;\n    grid-area: toc;\n    grid-column-start: 1;\n    grid-column-end: 2;\n    grid-row-start: 1;\n    grid-row-end: 3;\n\n/*\n    overflow-y: auto;\n    overflow-x: hidden;\n*/\n    border: 2px solid var(--bluegreen);\n    border-radius:5px;\n    z-index: 1;\n}\n\n/* .ptx-main-content  */\n.ptx-page > .ptx-main {\n    grid-area: main-content;\n    grid-column-start: 2;\n    grid-column-end: 3;\n    grid-row-start: 1;\n    grid-row-end: 2;\n\n    justify-self: start;\n    max-width: 664px;\n    width: 97vw;\n    transition: 0s;\n    padding: 0;\n    margin: 0;\n    z-index: 0;  /* Added so horizontal scrollbars in content don't bleed into TOC dropdown */\n    /* //    overflow-y: auto;\n    //    border: 2px solid green; */\n}\n\n@media only screen and (min-width: 500px) {\n    .ptx-page > .ptx-main {\n\tmargin: 0;\n\tmax-width: 664px;\n\twidth: min(100vw,664px);\n\tjustify-self: center;\n\t/*      width: 570px; @ 810px */\n    }\n\n}\n.ptx-page > .ptx-main > .ptx-content {\n    margin-left: 2em;\n}\n\n/* Content footer wrapper playground */\n\n.pretext .ptx-page .ptx-content-footer {\n    display: grid;\n    max-width: 100%;\n    grid-template-columns: 1fr 1fr 1fr;\n    grid-template-areas:\n        \"content-footer-prev content-footer-top content-footer-next\";\n    margin-left: 32px;\n    margin-top: 30px;\n}\n\n.ptx-content-footer .previous-button {\n    grid-area: content-footer-prev;\n\n    justify-self: start;\n    align-self: center;\n    margin: 20px;\n    padding: 5px;\n\n    display: inline-block;\n    height: 32px;\n    color: var(--bodytitle);\n    font-family: inherit;\n    text-align: center;\n    font-size: .8em;\n    font-weight: 700;\n    letter-spacing: .1rem;\n    text-transform: uppercase;\n    text-decoration: none;\n    white-space: nowrap;\n    background-color: #eee;\n    border-radius: 4px;\n    border: 1px solid #888;\n    cursor: pointer;\n    box-sizing: border-box;\n\n}\n\n.ptx-content-footer .previous-button:hover{\n    background-color: #fafafa;\n    color: #888;\n}\n\n\n.ptx-content-footer .previous-button .name{\n    margin-left: 2px;\n    padding-right: 5px;\n}\n\n.ptx-content-footer .previous-button .icon{\n    padding-left: 5px;\n}\n\n.ptx-content-footer .top-button{\n    grid-area: content-footer-top;\n    justify-self: center;\n    align-self: center;\n    margin: 20px;\n    padding: 5px;\n\n    display: inline-block;\n    height: 32px;\n    color: var(--bodytitle);\n    font-family: inherit;\n    text-align: center;\n    font-size: .8em;\n    font-weight: 700;\n    letter-spacing: .1rem;\n    text-transform: uppercase;\n    text-decoration: none;\n    white-space: nowrap;\n    background-color: #eee;\n    border-radius: 4px;\n    border: 1px solid #888;\n    cursor: pointer;\n    box-sizing: border-box;\n}\n\n.ptx-content-footer .top-button:hover{\n    background-color: #fafafa;\n    color: #888;\n}\n\n    /* color: #888;\n} */\n\n.ptx-content-footer .top-button .name{\n    margin-left: 2px;\n    padding-right: 5px;\n\n}\n\n.ptx-content-footer .top-button .icon{\n    padding-left: 5px;\n}\n\n.ptx-content-footer .next-button {\n    grid-area: content-footer-next;\n    justify-self: end;\n    align-self: center;\n    margin: 20px;\n    padding: 5px;\n\n    display: inline-block;\n    height: 32px;\n    color:  var(--bodytitle);\n    font-family: inherit;\n    text-align: center;\n    font-size: .8em;\n    font-weight: 700;\n    letter-spacing: .1rem;\n    text-transform: uppercase;\n    text-decoration: none;\n    white-space: nowrap;\n    background-color: #eee;\n    border-radius: 4px;\n    border: 1px solid #888;\n    cursor: pointer;\n    box-sizing: border-box;\n\n\n}\n\n.ptx-content-footer .next-button:hover{\n    background-color: #fafafa;\n    color: #888;\n}\n\n.ptx-content-footer .next-button .name{\n    margin-right: 2px;\n    padding-left: 5px\n\n}\n\n.ptx-content-footer .next-button .icon{\n    padding-right:5px;\n}\n\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n\n@media only screen and (max-width: 800px) {\n\n  .pretext .ptx-sidebar {\n    display: none;\n  }\n/* copied from shell_default.css   Wher is ptx-navbar set in the CRC style */\n.pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n   }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n}\n\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n    background: #f4f4f4;\n    margin-top: 2em;\n    padding-top: 0;\n    max-width: 900px;\n    border-top: 2px solid var(--sectiontoctext);\n    border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n    position: relative;\n/*\n    z-index: 100;\n*/\n}\n\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n    height: 3em;\n    width: unset;\n    margin: 0;\n}\n\n"
  },
  {
    "path": "css/targets/html/legacy/crc/theme-crc.scss",
    "content": "/*! Theme: crc-legacy */\n// Imports in this file should be relative to css root\n@use 'legacy/pretext.css';\n@use 'legacy/pretext_add_on.css';\n@use 'legacy/pretext_search';\n@use 'targets/html/legacy/crc/shell_crc.css';\n@use 'targets/html/legacy/crc/banner_crc.css';\n@use 'targets/html/legacy/crc/navbar_crc.css';\n@use 'targets/html/legacy/crc/toc_crc.css';\n@use 'targets/html/legacy/default/knowls_default.css';\n@use 'targets/html/legacy/default/style_default.css';\n@use 'legacy/colors/all_colors.scss';\n"
  },
  {
    "path": "css/targets/html/legacy/crc/toc_crc.css",
    "content": "\n/* over-ride default css */\n.ptx-toc > ul.structural > li:not(:first-child) {\n  margin-top: 0;\n}\n.ptx-toc ul.structural li a {\n  border-bottom: 0;\n}\n\n.ptx-toc ul.structural li li  a {\n  border-bottom: none;  /*solid #999 1px;  */\n}\n.ptx-toc ul.structural .toc-title-box {\n  border-top: solid #999 1px;\n}\n.ptx-toc ul.structural li ul.structural li:last-child {\n  margin-bottom: 0;\n}\n\n.ptx-toc {\n    width: 240px;\n    margin: 0;\n    font-size: 14.72px;\n    overflow-y: auto;\n    overflow-x: hidden;\n    background: #fff;\n}\n\n/* Aligns toc to the top and side of the allotted space, respectively */\n.ptx-toc ul {\n    margin: 0px;\n    padding: 0px;\n}\n\n.ptx-toc ul a,\n.ptx-toc ul .part a,\n.ptx-toc ul .frontmatter a {\n    font-weight: 700;\n    font-size: .9em;\n}\n.ptx-toc ul ul li a {\n    font-weight: 400;\n    grid-template-columns: 1.5em 1fr;\n}\n\n.ptx-toc .toc-chapter .toc-item-list .toc-item .codenumber {\n    font-size: 80%;\n    padding-top: 0.16em;\n}\n/* no codenumbers on subsections (anything under section) */\n.ptx-toc .toc-section .toc-item-list .toc-item a > .codenumber {\n    display: none;\n}\n.ptx-toc .toc-section .toc-item-list .toc-item a:hover > .codenumber {\n    display: inline-block;\n}\n\n.ptx-toc ul ul a > .title {\n    margin-left: 0;\n}\n.ptx-toc ul ul a > .title:empty::after {\n    content: \"empty heading!\";\n    font-weight: bold;\n}\n.ptx-toc ul ul ul a > .title {\n    margin-left: 0.5em;\n    font-size: 90%;\n}\n.ptx-toc ul ul ul ul a > .title {\n    margin-left: 2em;\n    font-size: 90%;\n    font-style: italic;\n}\n\n.ptx-toc ul li a {\n    text-decoration: none;\n}\n\n.ptx-toc > ul > li a {\n    font-weight: bold;\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    padding-left: 0.2em;\n}\n/*\n.ptx-toc ul li ul a:hover {\n    padding-top: -10px;\n}\n*/\n\n.ptx-toc ul li a:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n\n\n/* ************************************************** */\n/* Above code may be old.  New code below             */\n/* ************************************************** */\n\n\n/* TOC is initially closed in the CRC style */\n/* The onload js will close it, but you get an odd fluttering effect */\n\n/* comment out because we need to fix the fluttering effect.\n   if this is hidden by default, the page is not usable without JavaScript\n.ptx-sidebar {\n    display: none;\n}\n*/\n\n\n\n/* Links inside the dropdown */\n.ptx-toc a {\n    padding: .25em .5em .25em .5em;\n    text-decoration: none;\n    font-weight: 500;\n    font-size: .9em;\n    margin: 0px;\n}\n\n.ptx-toc ul,\n.ptx-toc ul li {\n    list-style-type: none;\n    margin: 0px;\n/*    width: 255px; */ /* This one is key to making items menu uniform width */\n    padding-inline-start: 0px;\n}\n\n/* The anchor carries the grid content  */\n/* undo what is in toc_default.css */\n.ptx-toc ul li a {\n    display: grid;\n/*  made titles too wide */\n/*\n    width: 240px;\n*/\n    grid-gap: 3px;\n    grid-template-columns: 1.25em 10fr;\n    grid-template-areas:\n        \"toc-codenumber toc-content\";\n}\n.ptx-toc {\n  position: sticky;\n  top: 0;\n  width: unset;\n  height: 100vh;\n}\n\n/*\n.ptx-toc::after {\n    content: \"\";\n    display: block;\n    height: 13em;\n    background: #fff;\n}\n*/\n\n.ptx-toc::after {\n    content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n    display: block;\n    height: 13em;\n    padding: 2em 1em;\n    background: #fff;\n}\n\n.ptx-toc > ul:first-child > li:last-child {\n    border-bottom: 4px solid #669;\n}\n\n\n\n/**** Use serif font for Roman numerals ****/\n/* .ptx-TOC-codenumber  */\n.ptx-toc a > .codenumber {\n    font-family:  \"PT Serif\", \"Times New Roman\", Times, serif;\n    grid-area: toc-codenumber;\n}\n\n/* .ptx-TOC-contents */\n.ptx-toc a > .title {\n    grid-area: toc-content;\n}\n\n.ptx-toc.depth0 ul.structural {\n    display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n    display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n    display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n    display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n    display: none;\n}\n\n\n/* Hide all but active area of book */\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n    display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n    display: block;\n}\n\n/* Hooks for js based switching */\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n    display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n    display: none ;\n}\n\n\n.ptx-toc.focused  > ul.structural > li:not(:first-child) {\n    margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n    border: 0;\n}\n\n\n.toc-title-box {\n    display: flex;\n}\n\n.ptx-toc ul.structural li .toc-title-box a {\n    flex: 1 1;\n}\n\n.ptx-toc.focused .toc-expander {\n    border: 0;\n    padding: 2px 5px;\n    background: inherit;\n    color: inherit;\n    display: flex;\n    align-items: center;\n}\n\n.ptx-toc.focused .toc-expander .icon {\n    font-size: 30px;\n    line-height: 18px;\n    font-variation-settings: 'wght' 200;\n}\n\n.ptx-toc.focused .toc-expander:is(:hover) {\n    background-color: var(--highlighttoc);\n    color: var(--highlighttoctext);\n}\n\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n    fill: var(--highlighttoctext);\n}\n\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n    transform: rotate(-90deg);\n}\n\n/* Part colors fall back to same as chapter if not defined \n   Defined here and not in setcolors so that colors_ file can override as include\n    order is toc/colors/setcolors */\n:root {\n    --parttoc: var(--chaptertoc);\n    --parttoctext: var(--chaptertoctext);\n    --parttocactive: var(--documenttitle);\n    --parttoctextactive: var(--chaptertoctextactive);\n}\n/* But if browser supports, make parts very slightly darker than chapters */\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n    :root {\n        --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n    }\n}\n"
  },
  {
    "path": "css/targets/html/legacy/default/banner_default.css",
    "content": "/*******************************************************************************\n * PreTeXt Masthead Stylesheet\n *******************************************************************************/\n\n.ptx-masthead .ptx-banner {\n    border-bottom: 1px solid #d4d4d4;\n    border-top: 1px solid transparent;\n    overflow: hidden;\n    padding-top: 0.625em;\n    padding-bottom: 1.125em;\n    border-bottom: none;\n}\n\n.ptx-masthead {\n    max-width: 904px;\n    border-right: 1px solid #bababa;\n}\n\n.ptx-masthead .title-container {\n  font-size: 1em;\n  padding-left: 9.68px;\n  overflow: hidden;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container {\n    padding: 0;\n    text-align: center;\n    margin-top: 0.625em;\n  }\n}\n.ptx-masthead .title-container > .heading {\n  font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n  font-weight: 700;\n  margin: 0;\n  font-size: 2em;\n  line-height: 1.25em;\n  color: #932919;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .title-container > .heading {\n    font-size: 1.5em;\n    line-height: 1.25em;\n    margin: 0;\n    margin-bottom: 0.41667em;\n  }\n}\n.ptx-masthead .title-container > .heading a {\n  color: #932919;\n  background: none;\n  text-decoration: none;\n}\n.ptx-masthead .title-container > .heading .subtitle {\n  font-weight: normal;\n}\n@media screen and (max-width: 800px) {\n  .ptx-masthead .title-container > .heading .subtitle {\n    /* Force the subtitle onto a separate line */\n    display: block;\n    font-size: 1.16667em;\n    line-height: 1.42857em;\n    /* De-emphasize relative to main title */\n    color: #595959;\n    /* Remove colon */\n  }\n  .ptx-masthead .title-container > .heading .subtitle:before {\n    content: normal;\n  }\n}\n.ptx-masthead .logo-link {\n  position: relative;\n  float: left;\n  font-size: 50px;\n  margin-top: 0.1em;\n  margin-left: 9.68px;\n  text-align: center;\n  line-height: 1;\n}\n.ptx-masthead .logo-link img {\n  width: auto;\n  height: auto;\n  /* Allow font-size to control height\n   * so that icon placeholder height matches */\n  max-height: 1em;\n}\n.ptx-masthead .logo-link:empty:before {\n  font-family: \"Open Sans\";\n  font-size: 1em;\n  content: \"\\2211\";\n  /* Center the icon in a square the size of the parent's font-size */\n  line-height: 1;\n  width: 1em;\n  display: inline-block;\n  vertical-align: top;\n  text-align: center;\n  color: #ccc;\n}\n.ptx-masthead .logo-link:empty:hover:before {\n  color: #932919;\n}\n.ptx-masthead .logo-link:empty:active:before {\n  color: #3572a0;\n}\n.ptx-masthead .logo-link {\n  background: transparent;\n  border: none;\n  text-decoration: none;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .logo-link {\n    display: block;\n    float: none;\n    margin: 0;\n    font-size: 50px;\n  }\n}\n.ptx-masthead .byline {\n  color: #333333;\n  font-weight: normal;\n  margin: 0;\n  font-size: 1.3125em;\n  line-height: 1.42857em;\n  min-height: inherit;\n  font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n}\n@media screen and (max-width: 480px) {\n  .ptx-masthead .byline {\n    margin-top: 0;\n    font-size: 1em;\n    line-height: 1.25em;\n  }\n}\n.ptx-masthead .byline a {\n  color: #333333;\n}\n.ptx-masthead .byline a:hover, .ptx-masthead .byline a:focus {\n  color: #932919;\n}\n.ptx-masthead .byline a:active {\n  color: #3572a0;\n}\n\n"
  },
  {
    "path": "css/targets/html/legacy/default/knowls_default.css",
    "content": "/*\n  main knowls styles\n*/\n\n.source-view__link,\n.knowl__link {\n    cursor: pointer;\n    margin-left: 0.1em;\n    margin-right: 0.1em;\n    color: var(--knowlLinkColor);\n    border-bottom: 1px dotted var(--knowlLinkColor);\n}\n\n.source-view {\n  margin: 0.5em 0;\n}\n\nsummary.source-view__link,\nsummary.knowl__link {\n    display: list-item inline;\n}\n\n.source-view__link > *,\n.knowl__link > * {\n    display: inline;\n}\n\n\n.source-view__link:is(:hover, :focus, [open]),\n.knowl__link:is(:hover, :focus, [open]) {\n    background-color: var(--linkbackground);\n    border-bottom-color: transparent;\n}\n\n.knowl__content {\n    margin: 0.2em;\n    border: 6px solid var(--knowlborder);\n    border-radius: 0.4em;\n    padding: 0.8em;\n    background-color: var(--knowlbackground);\n}\n\n.source-view__content {\n  margin: 0.2em 0;\n}\n\n/* No Greg's L in knowls, to save space */\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like, .proof)::after {\n    content: '' !important;\n    border-bottom: none;\n    margin: 0;\n    padding: 0;\n    width: 0;\n}\n.ptx-content .knowl__content > article:is(.theorem-like, .definition-like, .example-like, .project-like, .objectives, .outcomes, .remark-like) {\n    padding-left: 0;\n    border-left: none;\n}\n.ptx-content .knowl__content > article:is(.proof) {\n    padding-right: 0;\n    border-right: none;\n}\n\n\n/* nested knowl alt colors */\n.knowl__content .knowl__content {\n    background-color: var(--knowlNested1Background);\n}\n.knowl__content .knowl__content .knowl__content {\n    background-color: var(--knowlNested2Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content {\n    background-color: var(--knowlNested3Background);\n}\n.knowl__content .knowl__content .knowl__content .knowl__content .knowl__content {\n    background-color: var(--knowlNested4Background);\n}\n\n\n/* spacing tweaks inside knowls */\n.ptx-content .knowl__content > figure {\n    margin-left: 0;\n    margin-right: 0;\n}\n"
  },
  {
    "path": "css/targets/html/legacy/default/navbar_default.css",
    "content": "/*******************************************************************************\n * Navbar Stylesheet\n *******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n\nnav.ptx-navbar {\n  background: #ededed;\n  border: 0;\n  border-top: 1px solid #bababa;\n  border-bottom: 1px solid #bababa;\n  margin: 0;\n  z-index: 100;\n  font-family: \"Open Sans\";\n  overflow: visible;\n  display: flex;\n}\n\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n\n.ptx-navbar .button {\n  font-size: 1.0em;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 0 10px;\n  gap: 10px;\n  min-height: 34px;\n\n  color: #333333;\n  background-color: #ededed;\n  border: 0;\n  border-right: 1px solid #bababa;\n\n  /* Disable accidental text-selection */\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n\n.ptx-navbar .button:focus {\n  outline: thin dotted #333;\n  outline-offset: -2px;\n}\n\n.ptx-navbar .button:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n\n.ptx-navbar .button:hover {\n  background-color: #fafafa;\n}\n\n.ptx-navbar .button:active {\n  background-color: #e0e0e0;\n}\n\n.ptx-navbar .button.disabled {\n  opacity: .4;\n  color: #333333;\n  background: #ededed;\n  box-shadow: none;\n}\n\n.ptx-navbar .toc-toggle {\n  width: 240px;\n  gap: 0.4em;\n}\n\n.ptx-navbar .button .icon {\n  font-size: 1.5em;\n}\n\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) {\n  display: flex;\n}\n\n.ptx-navbar .treebuttons {\n  flex: 1 1 210px;\n  justify-content: end;\n}\n\n.ptx-navbar .nav-runestone-controls {\n  flex: 1 1 70px;\n  justify-content: end;\n}\n\n.pretext .navbar .dropdown {\n  height: 34px;\n}\n\n\n.ptx-navbar :is(.treebuttons, .nav-runestone-controls) > *:first-child {\n  border-left: 1px solid #bababa;\n}\n\n\n.ptx-navbar .treebuttons > * {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-width: 75px;\n}\n\n.ptx-navbar .treebuttons .icon {\n  margin: 0 -7px;  /* chevrons have lots of horizontal padding */\n}\n\n.ptx-navbar :is(.index-button, .calculator-toggle)  .icon {\n  display: none;\n}\n.ptx-navbar :is(.runestone-profile, .activecode-toggle, .searchbutton) .name {\n  display: none;\n}\n\n.ptx-navbar .index-button {\n  width: 70px;\n}\n\n.ptx-navbar .calculator-toggle {\n  width: 60px;\n  min-height: 32px;\n  text-align: center;\n  border-radius: 20px;\n  margin-left: 5px;\n  border: 2px solid #66f;\n  line-height: 25px;\n  margin-top: 1px;\n  background-color: #eef;\n}\n\n.ptx-navbar .calculator-toggle.open {\n  background: #fee;\n  border: 2px solid #f66;\n}\n\n@media screen and (max-width: 800px) {\n  .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    background: #ededed;\n    box-shadow: rgba(0, 0, 0, 0.3) 0px -2px 5px;\n  }\n  \n  .ptx-navbar .nav-runestone-controls {\n    flex: 0;\n  }\n  .ptx-navbar .toc-toggle {\n    flex: 2 1 100px;\n  }\n  .ptx-navbar .treebuttons {\n    flex: 3 1 150px; /* 3:2 ratio with toc-toggle */\n  }\n  .ptx-navbar .treebuttons > * {\n    flex: 1 1;\n    min-width: 35px\n  }\n  .ptx-navbar .index-button {\n    display: none;\n  }\n  \n  .ptx-navbar :is(.treebuttons) > *:first-child {\n    border-left: 0;\n  }\n\n  .ptx-navbar :is(.toc-toggle, .previous-button, .up-button, .next-button, .calculator-toggle, .index-button) .name {\n    display: none;\n  }\n\n  .pretext .ptx-navbar :is(.calculator-toggle, .index-button) .icon {\n    display: inline-block;\n  }\n\n  .ptx-navbar .nav-runestone-controls > *:first-child {\n    border-left: 0\n  }\n\n  .ptx-navbar .calculator-toggle {\n    width: auto;\n    height: 35px;\n    border-radius: 0;\n    margin-left: 0;\n    border: 0;\n    border-right: 1px solid #bababa;\n    line-height: inherit;\n    margin-top: 0;\n    background-color: inherit;\n  }\n}\n"
  },
  {
    "path": "css/targets/html/legacy/default/shell_default.css",
    "content": "/*******************************************************************************\n * shell_X.css controls the overall arrangement of the blocks on the page.\n *******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n\n/* The overall structure is\n  html\n    head\n    body.pretext\n      header.ptx-masthead\n      nav.ptx-navbar\n      div.ptx-page\n        div.sidebar\n          nav.ptx-toc\n        main.ptx-main\n          div.ptx-content\n          div.ptx-content-footer\n      div.ptx-page-footer\n*/\n\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n  position: relative;\n}\n\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n  height: 36px;\n}\n\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n}\n.ptx-content {\n  min-height: 60vh;\n}\n\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 36px;\n  left: 0;\n  float: left;\n  width: 240px;\n}\n\n.pretext .ptx-toc {\n    position: sticky;\n    top: 50px;\n    box-sizing: border-box;\n    overflow-y: scroll;\n    height: calc(100vh - 60px);\n}\n\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin-left: 0;\n}\n.pretext .ptx-page > .ptx-main.notoc {\n  margin-left: 0;\n  transition-property: margin-left;\n  transition-duration: 0.3s;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n  .pretext .ptx-page-footer {\n    /* Make space for navbar fixed to bottom of screen */\n    margin-bottom: 38px;\n  }\n}\n\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    /* Decrease the margins */\n    margin: 28px;\n  }\n}\n\n/*\n.ptx-content.serif .para {\n  font-family: \"PT Serif\", \"Times New Roman\", serif;\n  font-size: 105%;\n}\n.ptx-content.serif #text-in-paragraphs .para,\n.ptx-content.serif #Bcd .para,\n.ptx-content.serif #interesting-corollary .para {\n  font-family: \"Roboto Serif\", serif;\n  font-size: 12pt;\n  line-height: 1.20;\n  font-variation-settings: 'wdth' 100;\n\n}\n.ptx-content.serif #table-calisthenics .para,\n.ptx-content.serif #section-7 .para,\n.ptx-content.serif #section-11 .para {\n  font-family: \"Tinos\", serif;\n  font-size: 115%;\n  line-height: 1.30;\n}\n\n.ptx-content.serif #section-6 .para,\n.ptx-content.serif #section-6 .para {\n  font-family: \"Noto\", serif;\n  font-size: 115%;\n  line-height: 1.30;\n}\n*/\n\n/* text in lists was big */\n.ptx-content.serif .para .para,\n.ptx-content[data-font=\"RS\"] .para .para {\n  font-size: 100%;\n}\n\n.ptx-content[data-font=\"RS\"] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  justify-content: space-around;\n  max-width: 600px;\n  margin-left: 32px;\n}\n\n.pretext .ptx-content-footer .button {\n  min-width: 80px;\n  height: 35px;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0 10px;\n  display: flex;\n  gap: 10px;\n  align-items: center;\n  justify-content: center;\n  /* Disable accidental text-selection */\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.pretext .ptx-content-footer .button .icon {\n  margin: 0 -7px; /* icons have lots of whitespace */\n}\n\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n\n\n.pretext .ptx-sidebar.visible {\n  display: block;\n}\n\n\n.pretext .ptx-page-footer .feedback-link {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  margin: 1.5em 0 0 0;\n  padding: 0 1em 0 1em;\n  height: 2em;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-page-footer {\n    background: #f4f4f4;\n    margin-top: 2em;\n    padding-top: 0;\n    max-width: 900px;\n    border-top: 2px solid var(--sectiontoctext);\n    border-bottom: 2px solid var(--sectiontoctext);\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n    position: relative;\n/*\n    z-index: 100;\n*/\n}\n\n.pretext .ptx-page-footer > a {\n  margin: 1em 0;\n}\n.pretext .ptx-page-footer > a > .logo:first-child {\n    height: 3em;\n    width: unset;\n    margin: 0;\n}\n\n\n\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n    z-index: 1100;\n   }\n  .pretext .ptx-sidebar {\n    display: none;\n    position: fixed;\n    top: 10px;\n    z-index: 1000;\n    background: white;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n/*\n  .pretext .ptx-content-footer {\n    margin-bottom: 60px;\n  }\n*/\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n}\n\n/*******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n"
  },
  {
    "path": "css/targets/html/legacy/default/style_default.css",
    "content": "\n/* The Greg's L for theorems, proofs, etc */\n\n.ptx-content .proof {\n  border-right: 1px solid #666;\n  padding-right: 0.625em;\n  margin-right: -0.725em;\n}\n.ptx-content .proof:after {\n  content: '';\n  border-bottom: 1px solid #666;\n  display: block;\n  margin-left: auto;\n  margin-right: -0.625em;\n  /* so the corner of the L meets */\n  width: 1.5em;\n  padding-bottom: 0.25em;\n}\n\n.ptx-content.epub .proof {\n  margin-right: 1px;\n}\n\n.ptx-content .proof .proof {\n  margin-right: -0.2em;\n  border-right: 1.5px solid #ddd;\n}\n.ptx-content .proof .proof:after {\n  border-bottom: 1.5px solid #ddd;\n  width: 1em;\n}\n\n.ptx-content article.theorem-like,\n.ptx-content article.definition-like,\n.ptx-content article.example-like,\n.ptx-content article.project-like,\n.ptx-content article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,  /* delete once markup is fixed */\n.ptx-content article.computation-like {\n    padding-left: 0.4em;\n    border-left: 1px solid #569;\n}\n\n.ptx-content.epub article.theorem-like,\n.ptx-content.epub article.definition-like,\n.ptx-content.epub article.example-like,\n.ptx-content.epub article.project-like,\n.ptx-content.epub article.remark-like,\n.ptx-content article.openproblem-like,\n.ptx-content article.openproblems-like,  /* delete once markup is fixed */\n.ptx-content.epub article.computation-like {\n    margin-left: 1px;\n}\n\n\n.ptx-content article.theorem-like::after,\n.ptx-content article.definition-like::after,\n.ptx-content article.example-like::after,\n.ptx-content article.project-like::after,\n.ptx-content article.remark-like::after,\n.ptx-content article.openproblem-like::after,\n.ptx-content article.openproblems-like::after,  /* delete once markup is fixed */\n.ptx-content article.computation-like::after {\n    content:'';\n    border-bottom: 1px solid #569;\n    display: block;\n    margin-right: auto;\n    margin-left: -0.5em;\n    padding-top: 0.25em;\n    width: 1.5em;\n}\n/* projects get a dotted L */\n.ptx-content article.project-like {\n    border-left: 1px dotted #569;\n}\n.ptx-content article.project-like::after {\n    border-bottom: 1px dotted #569;\n}\n\n/* commentary gets a thicker red L */\n\n.ptx-content article.commentary {\n    padding-left: 0.6em;\n    border-left: 3px solid #c33;\n}\n.ptx-content article.commentary::after {\n    content:'';\n    border-bottom: 3px solid #c33;\n    display: block;\n    margin-right: auto;\n    margin-left: -0.6em;\n    padding-top: 0.25em;\n    width: 1.5em;\n}\n\n.ptx-content .assemblage-like {\n    border: solid 2px #1100AA;\n    border-radius: 12px;\n    padding: 10px;\n    background-color: #f4f4fe;\n}\n\n.ptx-content .assemblage-like .heading {\n    margin-top: 0;\n}\n\n.ptx-content .assemblage-like + .sidebyside {\n    margin-top: 1.25em;\n}\n.ptx-content section article.assemblage-like .heading + .para {\n    display: block;\n}\n\n.ptx-content .goal-like {\n  border: solid 3px #999999;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n\n.ptx-content .goal-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 5px;\n  font-style: italic;\n  font-size: 120%;\n}\n\n.ptx-content .goal-like > .heading .codenumber {\n  display:none;\n}\n\n.ptx-content .goal-like > .heading::after {\n  display:none;\n}\n\n\n.ptx-content .aside-like {\n    position: absolute;\n    margin-left: 45%;\n    overflow-x: hidden;\n    max-width: 495px;\n    max-height: 7em;\n    overflow-y: hidden;\n    border: none;\n    padding: 4px 10px 0 10px;\n    color: #888;\n    z-index: 100;\n}\n.ptx-content .example-like .aside-like {\n    margin-top: 0;\n    position: absolute;\n}\n.ptx-content .aside-like {\n    font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1.0em 0.2em #fff inset;\n}\n.ptx-content .aside-like .para {\n    overflow-x: auto;\n}\n.ptx-content .aside-like:first-child {\n    margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content  : \"\";\n  position : absolute;\n  z-index  : 1;\n  top   : 0em;  \n  bottom   : 0;\n  left     : 0;\n  pointer-events   : none;\n  background-image : linear-gradient(to bottom, \n                    rgba(255,255,255, 0.4), \n                    rgba(255,255,255, 1) 90%);\n  width    : 550px;\n  height   : 8em;\n}\n/* example of where the following is needed? */\n/*\n.ptx-content .aside-like * {\n    background-color: #f5faff !important;\n}\n*/\n.ptx-content .aside-like.front, .ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after, .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n    margin-top: 1.25em;\n}\n\n.ptx-content .aside-like.front + p{\n    margin-top: 1.25em !important;\n    padding-top: 0;\n}\n\n\n\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n\n.ptx-content article.aside-like > p:first-child {\n    margin-top: 0;\n}\n\n.ptx-content .aside-like > .heading {\n    font-size: 95%;\n}\n\n.ptx-content .aside-like + *{\n    margin-top: 3em; /* !important; */\n    margin-right: 3em;\n}\n\n/* on sufficiently large screens, there is enough of a margin to see part of the aside */\n\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n      margin-right: 0;\n  }\n}\n\n/* on a wide screen, asides should appear in the right margin */\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like, .ptx-content .aside-like.front, .ptx-content .example-like .aside-like, .ptx-content .example-like .aside-like.front {\n      position: absolute;\n      margin-top: -2em;\n      margin-left: 660px;\n      max-width: 200px;  /* for some reason the width was too small, so I had to put width (next line) */\n      width: 200px;\n      color: inherit;\n  }\n  .ptx-content .aside-like.front, .ptx-content .example-like .aside-like.front {\n      max-height: none;\n      max-width: 223px;\n      border: 2px solid #dcebfa;\n}\n  .ptx-content .example-like .aside-like, .ptx-content .example-like .aside-like.front {\n      margin-left: 654px;  /* because .example-like has 6px of padding */\n  }\n\n  .ptx-content .aside-like + * {\n      margin-top: 1.25em;\n  /*    background: none;  */\n      margin-right: 0;\n  }\n  /* previous and next point to the need to rethink asides:  structurally they are\n     in the midts of the other elements, so they affect neighbor selectors.\n     but visually they often are off to the side */\n  .ptx-content .aside-like + .solutions,\n  .ptx-content .aside-like + .instructions {\n      margin-top: 0;\n  }\n\n  .ptx-content .aside-like.front:after, .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n}\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n}\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n}\n}\n\n.ptx-content .aside-like:hover:after, .ptx-content .aside-like:focus:after {\n    top: 3em;\n    height: auto;\n    background-image : none;\n}\n\n.ptx-content .aside-like:hover, .ptx-content .aside-like:focus {\n    color: inherit;\n    padding: 2px 8px 0 8px;\n    border: 2px solid #dcebfa;\n    height: auto;\n    max-height: none;\n}\n.ptx-content .aside-like.front:hover, .ptx-content .aside-like.front:focus {\n    padding: 4px 10px;\n}\n\n/* find a better way to handle asides in content that has a wide left margin */\n/* see http://pretext.jahrme.com/aside-in-knowl/section-1.html */\n.ptx-content section dl dd .aside-like {\n    margin-top: 0 !important;\n    margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n    margin-left: -300px !important;\n}\n\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n}\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n}\n}\n\n.searchbox .searchresultsplaceholder {\n  background: #eaf0f6;\n}\n"
  },
  {
    "path": "css/targets/html/legacy/default/theme-default.scss",
    "content": "/*! Theme: default-legacy */\n// Imports in this file should be relative to css root\n@use 'legacy/pretext.css';\n@use 'legacy/pretext_add_on.css';\n@use 'legacy/pretext_search';\n@use 'targets/html/legacy/default/shell_default.css';\n@use 'targets/html/legacy/default/banner_default.css';\n@use 'targets/html/legacy/default/navbar_default.css';\n@use 'targets/html/legacy/default/toc_default.css';\n@use 'targets/html/legacy/default/knowls_default.css';\n@use 'targets/html/legacy/default/style_default.css';\n@use 'legacy/colors/all_colors.scss';\n"
  },
  {
    "path": "css/targets/html/legacy/default/toc_default.css",
    "content": "/* -------------------toc-------------------- */\n.ptx-toc {\n  /* IMPORTANT height must be calculated by javascript. */\n    width: 240px;\n    margin: 0;\n    font-size: 14.72px;\n    overflow-y: auto;\n    overflow-x: hidden;\n}\n.ptx-toc::after {\n    content: url(\"data:image/svg+xml; utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='338 3000 8772 6866'%3E%3Cg style='stroke-width:.025in; stroke:black; fill:none'%3E%3Cpolyline points='472,3590 472,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,9448 A 4660 4660 0 0 1 8598 9259 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4488,9685 A 4228 4228 0 0 0 472 9732 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:butt;' d='M 4724,3590 A 4241 4241 0 0 1 8598 3496 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,3496 A 4241 4241 0 0 1 4724 3590 '%3E%3C/path%3E%3Cpath style='stroke:%23000000;stroke-width:126;stroke-linecap:round;' d='M 850,9259 A 4507 4507 0 0 1 4724 9448 '%3E%3C/path%3E%3Cpolyline points='5385,4299 4062,8125 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8598,3496 8598,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='850,3496 850,9259 ' style='stroke:%23000000;stroke-width:126; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='4960,9685 4488,9685 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='3070,4582 1889,6141 3070,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='6418,4582 7600,6141 6418,7700 ' style='stroke:%23000000;stroke-width:300; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpolyline points='8976,3590 8976,9732 ' style='stroke:%23000000;stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; '%3E%3C/polyline%3E%3Cpath style='stroke:%23000000;stroke-width:174;stroke-linecap:butt;' d='M 4960,9685 A 4228 4228 0 0 1 8976 9732 '%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");\n    display: block;\n    height: 13em;\n    padding: 2em 1em;\n    background: #fff;\n}\n\n.ptx-toc > .toc-item-list:first-child > .toc-item:last-child {\n    border-bottom: 8px solid #999;\n}\n\n/* -------------------toc-items-------------------- */\n\n.ptx-toc {\n    --codenumber-pad-left: 0.3rem;\n    --codenumber-pad-right: 0.5rem;\n    \n    --toc-indent-first: calc(1.0rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n    --toc-indent-second: calc(1.7rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n    --toc-indent-third: calc(2.2rem + var(--codenumber-pad-left) + var(--codenumber-pad-right));\n}\n\n/* will be less indentation */\n.ptx-toc:is(.depth1, .parts.depth2) {\n    --codenumber-pad-right: 0.5rem;\n}\n\n.ptx-toc .toc-item-list {\n    margin: 0px;\n    padding: 0px;\n    list-style-type: none;\n}\n\n.ptx-toc .toc-item {\n    border-top: 1px solid var(--tocborder, #d1d1d1);\n}\n\n/* -------------------title-box------------------- */\n\n.ptx-toc .toc-title-box {\n    display: flex;\n}\n\n.ptx-toc .toc-title-box > .internal {\n    position: relative;\n    display: flex;\n    flex-grow: 1;\n    padding: 0.2em;\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    font-weight: bold;\n}\n\n/* at second level, switch fonts */\n.ptx-toc .toc-item-list .toc-item-list .toc-title-box > .internal {\n    font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n    font-weight: normal;\n}\n\n/* Extra border above top level items */\n.ptx-toc > .toc-item-list > .toc-item {\n    border-top: 2px solid var(--tocborder, #d1d1d1);\n}\n\n.ptx-toc .toc-item.active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n\n\n/* -------------------codenumbers-------------------- */\n.ptx-toc .codenumber {\n    min-width: var(--toc-indent-first);\n    padding-left: var(--codenumber-pad-left);\n    padding-right: var(--codenumber-pad-right);\n    display: inline-block;\n    text-align: left;\n    flex-grow: 0;\n}\n\n/* second level of numbering */\n/*  anything 1+ levels deeper than a chapter in a book */\n.book .ptx-toc .toc-chapter .toc-item-list .codenumber,\n/*  anything 1+ levels deeper than a section in an article */\n.article .ptx-toc .toc-section .toc-item-list .codenumber,\n/*  anything 1+ levels deeper than backmatter */\n.ptx-toc .toc-backmatter .toc-item-list .codenumber\n{\n    font-size: 80%;\n    padding-top: 0.16em;\n    min-width: var(--toc-indent-second);\n}\n\n/* third level of numbering */\n/*  anything 2+ levels deeper than a chapter in a book */\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .codenumber,\n/*  anything 2+ levels deeper than a section in an article */\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .codenumber,\n/*  anything 2+ levels deeper than backmatter */\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .codenumber\n{\n    min-width: var(--toc-indent-third);\n    visibility: hidden;\n}\n\n/* reveal on interaction */\n.ptx-toc .toc-item-list .toc-item-list .toc-item-list a:is(:hover, :focus) > .codenumber {\n    visibility: visible;\n}\n\n/* -------------------titles-------------------- */\n.ptx-toc .toc-title-box .title {\n    flex-grow: 1;\n}\n\n/* Any toc item without a codenumber needs indentation\n   Can't select absence of a preceeding, so indent all titles\n   and then clear indent if there is a codenumber */\n.ptx-toc .toc-item .toc-title-box .title {\n    margin-left: var(--toc-indent-first);\n}\n\n/* second level as defined by codenumber selectors */\n.book .ptx-toc .toc-chapter .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .title \n{\n    margin-left: var(--toc-indent-second);\n}\n\n/* third level as defined by codenumber selectors */\n.book .ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.article .ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title\n{\n    margin-left: var(--toc-indent-third);\n}\n\n/* unless there is a codenumber */\n.ptx-toc .toc-item > .toc-title-box .codenumber + .title {\n    margin-left: 0 !important;\n}\n\n.ptx-toc ul.structural ul.structural .title:empty::after {\n    content: \"empty heading!\";\n    font-weight: bold;\n}\n\n\n.ptx-toc .toc-chapter .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .title,\n/* 2 levels deep in back matter */\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .title \n{\n    font-size: 90%;\n}\n\n.ptx-toc .toc-chapter .toc-item-list .toc-item-list .title,\n.ptx-toc .toc-section .toc-item-list .toc-item-list .title,\n/* 3 levels deep in back matter */\n.ptx-toc .toc-backmatter .toc-item-list .toc-item-list .toc-item-list .title \n{\n    font-style: italic;\n}\n\n/* ??? */\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n\n/* -------------------depth controls-------------------- */\n.ptx-toc.depth0 ul.structural {\n    display: none;\n}\n.ptx-toc.depth1 ul.structural ul.structural {\n    display: none;\n}\n.ptx-toc.depth2 ul.structural ul.structural ul.structural {\n    display: none;\n}\n.ptx-toc.depth3 ul.structural ul.structural ul.structural ul.structural {\n    display: none;\n}\n.ptx-toc.depth4 ul.structural ul.structural ul.structural ul.structural ul.structural {\n    display: none;\n}\n\n/* if depth is shallow, identify best available toc item */\n.ptx-toc.depth1 ul.structural .toc-item.contains-active {\n    background-color: var(--chaptertocactive);\n    color: var(--chaptertoctextactive);\n}\n.ptx-toc.depth2 ul.structural ul.structural .toc-item.contains-active {\n    background-color: var(--parttocactive);\n    color: var(--parttoctextactive);\n}\n\n\n/* -------------------focused toc-------------------- */\n/* Hide all but active area of book */\n.ptx-toc.focused ul.structural:not(.contains-active) > li {\n    display: none;\n}\n.ptx-toc.focused ul.structural li.active > ul > li {\n    display: block;\n}\n\n/* Hooks for js based switching */\n.ptx-toc.focused ul.structural:not(.contains-active) > li.visible {\n    display: block;\n}\n.ptx-toc.focused ul.structural li.active > ul > li.hidden {\n    display: none ;\n}\n\n\n.ptx-toc.focused  > ul.structural > li:not(:first-child) {\n    margin-top: 0em;\n}\n.ptx-toc.focused ul.structural li ul.structural a:hover {\n    border: 0;\n}\n\n.ptx-toc.focused .toc-expander {\n    border: 0;\n    padding: 2px 5px;\n    background: inherit;\n    color: inherit;\n    display: flex;\n    align-items: center;\n}\n\n.ptx-toc.focused .toc-expander .icon {\n    font-size: 30px;\n    line-height: 18px;\n    font-variation-settings: 'wght' 200;\n}\n\n.ptx-toc.focused .toc-expander:is(:hover) {\n    background-color: var(--highlighttoc);\n    color: var(--highlighttoctext);\n}\n\n.ptx-toc.focused .toc-expander:is(:hover) .icon {\n    fill: var(--highlighttoctext);\n}\n\n.ptx-toc.focused .toc-item.expanded > .toc-title-box > .toc-expander > .icon {\n    transform: rotate(-90deg);\n}\n\n/* Part colors fall back to same as chapter if not defined \n   Defined here and not in setcolors so that colors_ file can override as include\n    order is toc/colors/setcolors */\n:root {\n    --parttoc: var(--chaptertoc);\n    --parttoctext: var(--chaptertoctext);\n    --parttocactive: var(--documenttitle);\n    --parttoctextactive: var(--chaptertoctextactive);\n}\n/* But if browser supports, make parts very slightly darker than chapters */\n@supports (background: color-mix(in srgb, red 50%, blue)) {\n    :root {\n        --parttoc: color-mix(in srgb, var(--chaptertoc), black 15%);\n    }\n}\n"
  },
  {
    "path": "css/targets/html/legacy/min/shell_min.css",
    "content": "/*******************************************************************************\n * shell_X.css controls the overall arrangement of the blocks on the page.\n *******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n\n/* The overall structure is\n  html\n    head\n    body.pretext\n      header.ptx-masthead\n      nav.ptx-navbar\n      div.ptx-page\n        div.sidebar\n          nav.ptx-toc\n        main.ptx-main\n          div.ptx-content\n          div.ptx-content-footer\n      div.ptx-page-footer\n*/\n\n.pretext .ptx-masthead {\n  position: relative;\n  background: #fafafa;\n  min-height: inherit;\n  border: none;\n}\n\n.pretext .ptx-navbar {\n  position: sticky;\n  top: 0;\n  max-width: 904px;\n}\n\n.pretext .ptx-page {\n  position: relative;\n}\n\n.pretext .ptx-sidebar {\n  position: sticky;\n  top: 41px;\n  float: left;\n  width: 240px;\n}\n\n.pretext .ptx-toc {\n    position: sticky;\n    top: 50px;\n    box-sizing: border-box;\n    overflow-y: scroll;\n    height: calc(100vh - 60px);\n}\n\n.pretext .ptx-page > .ptx-main {\n  display: block;\n  position: relative;\n  overflow-y: hidden;\n  margin: 0 0 0 240px;\n  padding: 1px 0 0 0;\n  background: white;\n  border-left: 1px solid #ccc;\n}\n@media screen and (max-width: 800px) {\n  .pretext .ptx-page > .ptx-main {\n    margin-left: 0;\n    left: auto;\n  }\n}\n\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: 600px;\n  margin: 32px;\n}\n@media screen and (max-width: 663px) {\n  .pretext .ptx-page > .ptx-main .ptx-content {\n    /* Decrease the margins */\n    margin: 28px;\n  }\n}\n\n/*\n.ptx-content.serif .para {\n  font-family: \"PT Serif\", \"Times New Roman\", serif;\n  font-size: 105%;\n}\n.ptx-content.serif #text-in-paragraphs .para,\n.ptx-content.serif #Bcd .para,\n.ptx-content.serif #interesting-corollary .para {\n  font-family: \"Roboto Serif\", serif;\n  font-size: 12pt;\n  line-height: 1.20;\n  font-variation-settings: 'wdth' 100;\n\n}\n.ptx-content.serif #table-calisthenics .para,\n.ptx-content.serif #section-7 .para,\n.ptx-content.serif #section-11 .para {\n  font-family: \"Tinos\", serif;\n  font-size: 115%;\n  line-height: 1.30;\n}\n\n.ptx-content.serif #section-6 .para,\n.ptx-content.serif #section-6 .para {\n  font-family: \"Noto\", serif;\n  font-size: 115%;\n  line-height: 1.30;\n}\n*/\n\n/* text in lists was big */\n.ptx-content.serif .para .para,\n.ptx-content[data-font=\"RS\"] .para .para {\n  font-size: 100%;\n}\n\n.ptx-content[data-font=\"RS\"] .code-inline {\n  background: #f6f6f6;\n  border: 1px solid #eee;\n  padding: 0.01em 0.15em 0.03em 0.15em;\n  margin-left: 0.15em;\n  margin-right: 0.15em;\n  border-radius: 0;\n}\n\n.pretext .ptx-content-footer {\n  margin-top: 2em;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-around;\n  max-width: 650px;\n}\n.pretext .ptx-content-footer .button {\n  cursor: pointer;\n  text-align: center;\n  color: #333333;\n  background-color: #ededed;\n  border: 1px solid #bababa;\n  padding: 0;\n  display: flex;\n  align-items: center;\n}\n.pretext .ptx-content-footer .button:hover,\n.pretext .ptx-content-footer .button:active,\n.pretext .ptx-content-footer .button:focus {\n  background-color: #fafafa;\n}\n\n.pretext .ptx-content-footer .button.top-button {\n  text-align: center;\n  width: 40px;\n  height: 50px;\n}\n.pretext .ptx-content-footer .button.previous-button,\n.pretext .ptx-content-footer .button.next-button {\n  font-size: 1.0em;\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  height: 35px;\n  width: 65px;\n  /* Disable accidental text-selection */\n  user-select: none;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  float: left;\n  position: relative;\n  margin-top: 0.5em;\n}\n.pretext .ptx-content-footer .previous-button {\n  text-align: left;\n}\n.pretext .ptx-content-footer .next-button {\n  text-align: right;\n}\n\n.pretext .ptx-content-footer .name {\n  position: relative;\n  bottom: 0;\n}\n.pretext .ptx-content-footer .icon {\n  font-size: 1.3em;\n  Position: relative;\n  bottom: -0.1em;\n}\n.pretext .ptx-content-footer .previous-button .icon {\n  margin-left: 0.3em;\n  margin-right: 0.2em;\n}\n.pretext .ptx-content-footer .next-button .icon {\n  margin-left: 0.2em;\n  margin-right: 0.3em;\n}\n.pretext .ptx-content-footer .next-button {\n  text-align: right;\n}\n.pretext .ptx-content-footer .previous-button {\n    width: 70px;\n    float: right;\n    border-left: 1px solid #bababa;\n    border-right: 1px solid #bababa;\n}\n.pretext .ptx-content-footer .next-button {\n    width: 70px;\n    float: right;\n    border-right: 1px solid #bababa;\n}\n\n\n\n.pretext .ptx-content-footer .top-button {\n  display: block;\n}\n\n.pretext .ptx-content-footer .top-button .icon,\n.pretext .ptx-content-footer .top-button .name {\n  display: block;\n}\n.pretext .ptx-content-footer .top-button .icon {\n  bottom: 0;\n}\n.pretext .ptx-content-footer .top-button .name {\n  position: relative;\n  bottom: 0.4em;\n}\n\n@media screen and (max-width: 800px) {\n  .pretext .ptx-navbar {\n    position: fixed;\n    top: auto;\n    bottom: 0;\n   }\n  .pretext .ptx-sidebar {\n    display: none;\n  }\n  .pretext .ptx-content-footer {\n    display: none;\n  }\n/*\n  .pretext .ptx-content-footer {\n    margin-bottom: 60px;\n  }\n*/\n  .pretext .ptx-toc {\n    height: calc(100vh - 50px);\n  }\n  .pretext .ptx-navbar .calculator-toggle,\n  .pretext .ptx-navbar .index-button {\n    display: none;\n  }\n  .pretext .ptx-navbar .toc-toggle {\n    width: 25%;\n  }\n  .pretext .ptx-navbar .treebuttons {\n    width: 75%;\n  }\n  .pretext .ptx-navbar .previous-button,\n  .pretext .ptx-navbar .up-button,\n  .pretext .ptx-navbar .next-button {\n    width: 33.3%;\n  }\n}\n\n/*******************************************************************************\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n"
  },
  {
    "path": "css/targets/html/legacy/min/theme-min.scss",
    "content": "/*! Theme: min-legacy */\n// Imports in this file should be relative to css root\n@use 'legacy/pretext.css';\n@use 'legacy/pretext_add_on.css';\n@use 'legacy/pretext_search';\n@use 'targets/html/legacy/min/shell_min.css';\n@use 'targets/html/legacy/default/banner_default.css';\n@use 'targets/html/legacy/default/navbar_default.css';\n@use 'targets/html/legacy/min/toc_min.css';\n@use 'targets/html/legacy/default/knowls_default.css';\n@use 'targets/html/legacy/default/style_default.css';\n@use 'legacy/colors/all_colors.scss';\n"
  },
  {
    "path": "css/targets/html/legacy/min/toc_min.css",
    "content": "\n.ptx-toc {\n  /* IMPORTANT height must be calculated by javascript. */\n    width: 240px;\n    margin: 0;\n    font-size: 14.72px;\n    overflow-y: auto;\n    overflow-x: hidden;\n}\n\n/* Aligns toc to the top and side of the allotted space, respectively */\n.ptx-toc ul {\n    margin: 0px;\n    padding: 0px;\n    list-style-type: none;\n}\n\n\n/* Places codenumbers */\n.ptx-toc .codenumber {\n    position: absolute;\n    margin-right: 0;\n    margin-left: 0em;\n/*\n    margin-top: 0.4px;\n*/\n    left: 0.3em;\n    display: inline-block;\n}\n/* no codenumbers on subsections */\n.ptx-toc ul.structural ul.structural a > .codenumber {\n    display: none;\n}\n.ptx-toc ul.structural .title {\n    margin-left: 1.4em;\n    display: inline-block;\n}\n.ptx-toc ul.structural ul.structural .title {\n    margin-left: 1.5em;\n}\n.ptx-toc ul.structural ul.structural .title:empty::after {\n    content: \"empty heading!\";\n    font-weight: bold;\n}\n.ptx-toc ul.structural ul.structural ul.structural .title {\n    margin-left: 2.5em;\n    font-size: 90%;\n}\n.ptx-toc ul.structural ul.structural ul.structural ul.structural .title {\n    margin-left: 3.2em;\n    font-size: 90%;\n    font-style: italic;\n}\n\n/* more specific than something in toc_default (obsolete comment?) */\n.ptx-toc ul.structural li ul.structural li ul.structural li:last-child {\n    margin-bottom: 0;\n    border-bottom: 1px solid #ddd;\n}\n\n.ptx-toc .part > a .codenumber {\n    position: relative;\n    display: block;\n    float: left;\n    margin-right: 0.7em;\n}\n.ptx-toc .part > a .title {\n    display: block;\n    margin-left: 1em;\n}\n\n.ptx-toc ul.structural li a {\n    position: relative;\n    display: block;\n    padding: 2.86957px;\n    padding: 0.2em;\n/* //    padding-left: 0.5em; */\n    border-top: 1px solid #d1d1d1;\n    border-bottom: 1px solid #d1d1d1;\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    font-weight: bold;\n}\n.ptx-toc ul.structural ul.structural li a {\n    font-family: \"Open Sans\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n    font-weight: normal;\n/* //    padding-left: 2.0em; */\n}\n\n/* Sets spacing between section headings*/\n.ptx-toc > ul.structural > li:not(:first-child) {\n    margin-top: 0.3em;\n}\n/* But not at the start of a part */\n/* I cannot see that this actually does anything --DF */\n.ptx-toc > ul.structural > li.part + li,\n.ptx-toc > ul.structural > li.frontmatter + li,\n.ptx-toc > ul.structural > li.backmatter + li {\n    margin-top: 0;\n}\n/* Removes underlines from links in toc */\n.ptx-toc ul.structural li a, .ptx-toc ul.structural li a:link, .ptx-toc ul.structural li a:visited, .ptx-toc ul.structural li a:hover, .ptx-toc ul.structural li a:focus, .ptx-toc ul.structural li a:active {\n    text-decoration: none;\n}\n\n/*\n.ptx-toc > ul > li a, .ptx-toc > ul > li a:link, .ptx-toc > ul > li a:visited {\n    font-weight: bold;\n    font-family: \"PT Serif\", \"Times New Roman\", Times, serif;\n    padding-left: 0.2em;\n}\n*/\n\n/* Ensures that there is no double border between subsections */\n.ptx-toc ul.structural li ul.structural a {\n    border-top: none;\n}\n\n/* Allows both \"top\" and bottom border of a subsection to be highlighted on hover */\n.ptx-toc ul.structural li ul.structural a:hover {\n    border-top: 1px solid #3c110a;\n    margin-top: -1px;\n}\n\n/* Removes the excess space between the last subsection and the next section (caused by\nthe margin on top of sections being used to space out adjacent sections) */\n.ptx-toc ul.structural li ul.structural li:last-child {\n    margin-bottom: -0.3em;\n}\n\n/* Removes double border between last subsection and next section */\n.ptx-toc ul.structural li ul.structural li:last-child a {\n    border-bottom: none;\n}\n\n.ptx-toc ul.structural li a:active {\n  box-shadow: rgba(0, 0, 0, 0.5) 0 2px 5px inset;\n}\n\n.ptx-toc ul.structural li a.has-chevron {\n  padding-right: 2em;\n}\n.ptx-toc .toc-item {\n  position: relative;\n}\n"
  },
  {
    "path": "css/targets/html/legacy/oscarlevin/style_oscarlevin.css",
    "content": "/* Since the detault style is loaded before the oscarlevin style, */\n/* some of the default style has to be undone */\n\n.ptx-content article.theorem-like::after, .ptx-content article.definition-like::after, .ptx-content article.example-like::after, .ptx-content article.project-like::after, .ptx-content article.remark-like::after, .ptx-content article.openproblem-like::after, .ptx-content article.openproblems-like::after, .ptx-content article.computation-like::after {\n   content: unset;\n}\n\n.ptx-content article.theorem-like, .ptx-content article.definition-like, .ptx-content article.example-like, .ptx-content article.project-like, .ptx-content article.remark-like, .ptx-content article.openproblem-like, .ptx-content article.openproblems-like, .ptx-content article.computation-like {\n  padding: unset;\n  border: unset;\n}\n\n\n:root {\n/* Set colors for environments */\n\n  --assembbody: var(--bluelight, hsl(210, 90%, 90%));\n  --assembborder: var(--blue, hsl(210, 40%, 60%));\n  --assembhead: var(--blue, hsl(210, 40%, 75%));\n  --definitionbody: var(--greenlight, hsl(180, 40%, 90%));\n  --definitionborder: var(--green, hsl(180, 40%, 50%));\n  --definitionhead: var(--green, hsl(180, 40%, 50%));\n  --theorembody: var(--violetlight, hsl(270, 40%, 90%));\n  --theoremborder: var(--violet, hsl(270, 40%, 75%));\n  --theoremhead: var(--violetdark, hsl(270, 40%, 25%));\n  --examplebody: var(--bluedull, hsl(240, 40%, 90%));\n  --exampleborder: var(--bluedark, hsl(240, 40%, 25%));\n  --examplehead: var(--exampleborder);\n  --examplelikebody: var(--examplebody);\n  --examplelikeborder: var(--bluedull, hsl(240, 40%, 75%));\n  --examplelikehead: var(--examplelikeborder);\n  --projectbody: var(--greenlight, hsl(180, 40%, 90%));\n  --projectborder: var(--green, hsl(180, 40%, 75%));\n  --projecthead: var(--green, hsl(180, 40%, 75%));\n  --investigateborder: var(--bluerich, hsl(180, 40%, 25%));\n  --goalborder: var(--violetrich, hsl(270, 90%, 25%));\n  --remarklikebody: var(--yellowlight, hsl(330, 55%, 90%));\n  --remarklikeborder: var(--yellow, hsl(330, 55%, 50%));\n  --remarklikehead: var(--yellow, hsl(330, 55%, 50%));\n  --computationborder: var(--orangedull, hsl(180, 40%, 75%));\n\n  /* temporary workaround for setcolors.css use of assemblage */\n  --asemblagebackground: var(--assembbody) !important;\n  --assemblageborder: var(--assembborder) !important;\n}\n\n/* We can style all the *-like environments:\n    definition-like,\n    theorem-like,\n    example-like,\n    project-like,\n    remark-like,\n    computation-like,\n    goal-like, and\n    assemblage-like.\n  We also could do something for proofs, and commentary.\n\n  (should we style aside-like?  Or just copy from style_default?)\n\n  We define the style of environments in three steps: first the shape, then the color, and finally the shape and color of the heading/title.  The only reason to group these as such is that we can then have a common shape for differet *-like elements, but still allow for different colors to distinguish them.\n\n  Start with the important custom environments (theorem might be different from the other theorem-like, etc.), then clean up any standard *-like.\n\n*/\n\n/* definitions, theorems, assemblages, with theorem-like.theorem distinguished */\n.ptx-content article.assemblage-like,\n.ptx-content article.definition-like,\n.ptx-content article.theorem-like.theorem {\n    margin-top: 1.75em;\n    padding: 1em;\n    border-radius: 2px;\n    margin-bottom: 1em;\n}\n\n.ptx-content article.theorem-like {\n  margin-top: 1.25em;\n  padding: 1em;\n  border-radius: 2px;\n  margin-bottom: 1em;\n}\n\n.ptx-content article.assemblage-like{\n    background-color: var(--assembbody);\n    border: 2px solid var(--assembborder);\n}\n\n.ptx-content article.definition-like {\n  background-color: var(--definitionbody);\n  border: 2px solid var(--definitionborder);\n}\n\n.ptx-content article.theorem-like.theorem,\n.ptx-content article.theorem-like {\n  background-color: var(--theorembody);\n  border: 2px solid var(--theoremborder);\n}\n\n.ptx-content article.assemblage-like .heading,\n.ptx-content article.definition-like .heading,\n.ptx-content article.theorem-like.theorem .heading {\n  margin-top: -1.75em;\n  margin-left: -0.25em;\n  display: table;\n  padding: 0.25em 0.4em;\n}\n\n.ptx-content .assemblage-like .heading {\n  background-color: var(--assembhead);\n  color: #000;\n}\n\n.ptx-content .definition-like .heading {\n  background-color: var(--definitionborder);\n  color: #000;\n}\n\n.ptx-content .theorem-like.theorem .heading {\n  background-color: var(--theoremborder);\n  color: #000;\n}\n\n.ptx-content .example-like > .heading + .introduction,\n.ptx-content .computation-like > .heading + .introduction,\n.ptx-content .assemblage-like .heading + .para,\n.ptx-content .computation-like > .heading + .para,\n.ptx-content .example-like .heading + .para,\n.ptx-content .theorem-like.theorem .heading + .para,\n.ptx-content .definition-like .heading + .para {\n  display: block;\n  margin-top: 0.25em;\n}\n\n/* Examples and example-like; computation-like styled same as example-like with different colors */\n.ptx-content article.example-like,\n.ptx-content article.computation-like {\n  padding-left: 0.8em;\n  padding-bottom: 0.5em;\n}\n\n.ptx-content article.example-like.example {\n  border-left: 0.1em solid var(--examplehead);\n  border-bottom: 0.1em solid var(--examplehead);\n}\n\n.ptx-content article.example-like {\n  border-left: 0.1em solid var(--examplelikeborder);\n  border-bottom: 0.1em solid var(--examplelikeborder);\n}\n\n.ptx-content article.computation-like {\n  border-left: 0.1em solid var(--computationborder);\n  border-bottom: 0.1em solid var(--computationborder);\n}\n\n.ptx-content .example-like > .heading,\n.ptx-content .computation-like > .heading {\n  display: inline-block;\n  padding: 0.3em 0.5em;\n  margin-left: -0.8em;\n}\n\n\n.ptx-content .example-like.example > .heading {\n  border: 0.1em solid var(--examplehead);   /* maybe no border-left? */\n  background: var(--examplehead);\n  color: white;\n}\n\n.ptx-content .example-like > .heading {\n  background: var(--examplelikeborder);\n  color: black;\n}\n\n.ptx-content .computation-like > .heading {\n  background: var(--computationborder);\n  color: black;\n}\n\n/* Project-like */\n.ptx-content article.project-like {\n  background-color: white;\n  border: solid 3px var(--projectborder);\n  border-radius: 10px;\n  padding: 10px;\n  margin-bottom: 1em;\n}\n\n.ptx-content article.project-like.investigation {\n  border-color: var(--investigateborder);\n}\n\n.ptx-content article.project-like > .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table !important;\n  padding: 5px 1em;\n  margin-left: 10px;\n  font-style: italic;\n  font-size: 120% !important;\n}\n\n\n/* Goal-like */\n\n.ptx-content .goal-like {\n  background-color: white;\n  border-radius: 0em;\n  padding: 0.7em;\n  margin-bottom: 1em;\n}\n.ptx-content .goal-like.objectives {\n  border-top: solid 3px var(--goalborder);\n  border-bottom: solid 3px var(--goalborder);\n  border-left: none;\n  border-right: none;\n}\n.ptx-content .goal-like.outcomes {\n  border-top: solid 3px var(--goalborder);\n  border-bottom: solid 3px var(--goalborder);\n  border-left: none;\n  border-right: none;\n}\n\n.ptx-content .goal-like .heading {\n  margin-top: -1.5em;\n  background-color: white;\n  display: table;\n  padding: 5px 1em;\n  margin-left: 10px;\n  font-style: italic;\n  font-size: 120%;\n}\n\n/* remark-like */\n\n.ptx-content article.remark-like {\n  margin-top: 1.25em;\n  padding: 1em;\n  padding-top: 0.7em;\n  margin-bottom: 1em;\n  border-radius: 0px;\n  border-left: 5px solid var(--remarklikeborder);\n  background-color: var(--remarklikebody);\n}\n\n\n/* proofs */\n\n.ptx-content section > .proof {\n  margin-bottom: 1em;\n}\n\n\n/* Common fixes? */\n.ptx-content article.assemblage-like .heading::after,\n.ptx-content article.theorem-like.theorem .heading::after,\n.ptx-content article.theorem-like .heading::after,\n.ptx-content article.example-like > .heading::after,\n.ptx-content article.project-like > .heading::after {\n  content: \"\";\n}\n\n/* Fixes for mathjax: */\n/* These gradients need to be adjusted to match background colors */\n.ptx-content .assemblage-like .MJXc-display,\n.ptx-content .definition-like .MJXc-display,\n.ptx-content .theorem-like.theorem .MJXc-display {\n    background-image: linear-gradient(to right, #e9eff5, #e9eff5), linear-gradient(to right, #e9eff5, #e9eff5), linear-gradient(to right, rgba(0,0,0,.25), rgba(242,242,254,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(242,242,254,0));\n}\n.ptx-content .theorem-like.corollary .MJXc-display {\n    background-image: linear-gradient(to right, var(--bodytitlehighlight), var(--bodytitlehighlight)), linear-gradient(to right, var(--bodytitlehighlight), var(--bodytitlehighlight)), linear-gradient(to right, rgba(0,0,0,.25), rgba(242,242,254,0)), linear-gradient(to left, rgba(0,0,0,.25), rgba(242,242,254,0));\n}\n\n/*\nEND OF STYLE_OSCARLEVIN\n(below is only stuff copied from style_default)\n*/\n\n\n\n/* Assides, copied directly from style_default.css */\n/* next selector first part of the following is due to the mistake of\n   putting paragraph spacing in the margin-bottom\n   Redo when we fix that error */\n.ptx-content .aside-like {\n /*   margin-top: -1.25em;\n*/\n    position: absolute;\n    margin-left: 45%;\n    overflow-x: hidden;\n    max-width: 495px;\n    max-height: 7em;\n    overflow-y: hidden;\n    border: none;\n    padding: 4px 10px 0 10px;\n    color: #888;\n}\n.ptx-content .example-like .aside-like {\n    margin-top: 0;\n    position: absolute;\n}\n.ptx-content .aside-like {\n    font-size: 90%;\n}\n.ptx-content .aside-like {\n  margin-bottom: 5px;\n  background-color: #f5faff;\n  box-shadow: 0 0 1.0em 0.2em #fff inset;\n}\n.ptx-content .aside-like:first-child {\n    margin-top: -2.25em;\n}\n.ptx-content .aside-like:after {\n  content  : \"\";\n  position : absolute;\n  z-index  : 1;\n  top   : 0em;\n  bottom   : 0;\n  left     : 0;\n  pointer-events   : none;\n  background-image : linear-gradient(to bottom,\n                    rgba(255,255,255, 0.4),\n                    rgba(255,255,255, 1) 90%);\n  width    : 550px;\n  height   : 8em;\n}\n/* example of where the following is needed? */\n/*\n.ptx-content .aside-like * {\n    background-color: #f5faff !important;\n}\n*/\n.ptx-content .aside-like.front, .ptx-content .example-like .aside-like.front {\n  position: relative;\n  z-index: 0;\n  padding: 8px 15px 10px 15px;\n  padding: 2px 10px;\n  margin: 5px 0px 5px 10px;\n  border: 2px solid #dcebfa;\n  max-height: none;\n  max-width: 550px;\n  color: inherit;\n  font-size: 100%;\n  box-shadow: none;\n}\n.ptx-content .aside-like.front:after, .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n}\n.ptx-content .example-like .aside-like.front {\n    margin-top: 1.25em;\n}\n\n.ptx-content .aside-like.front + .para{\n    margin-top: 1.25em !important;\n    padding-top: 0;\n}\n\n\n\n.ptx-content .aside-like .aside-like {\n  background-color: #fafff5;\n  border: 1px dotted #aaa;\n}\n\n.ptx-content article.aside-like > .para:first-child {\n    margin-top: 0;\n}\n\n.ptx-content .aside-like > .heading {\n    font-size: 95%;\n}\n\n.ptx-content .aside-like + *{\n    margin-top: 3em !important;\n    margin-right: 3em;\n}\n\n/* on sufficiently large screens, there is enough of a margin to see part of the aside */\n\n@media screen and (min-width: 943px) {\n  .ptx-content .aside-like + * {\n      margin-right: 0;\n  }\n}\n\n/* on a wide screen, asides should appear in the right margin */\n@media screen and (min-width: 1100px) {\n  .ptx-content .aside-like, .ptx-content .aside-like.front, .ptx-content .example-like .aside-like, .ptx-content .example-like .aside-like.front {\n      position: absolute;\n      margin-top: -2em;\n      margin-left: 660px;\n      max-width: 200px;  /* for some reason the width was too small, so I had to put width (next line) */\n      width: 200px;\n      color: inherit;\n  }\n  .ptx-content .aside-like.front, .ptx-content .example-like .aside-like.front {\n      max-height: none;\n      max-width: 223px;\n      border: 2px solid #dcebfa;\n}\n  .ptx-content .example-like .aside-like, .ptx-content .example-like .aside-like.front {\n      margin-left: 654px;  /* because .example-like has 6px of padding */\n  }\n\n  .ptx-content .aside-like + * {\n      margin-top: 1.25em !important;\n  /*    background: none;  */\n      margin-right: 0;\n  }\n\n  .ptx-content .aside-like.front:after, .ptx-content .example-like .aside-like.front:after {\n    background-image: none;\n  }\n\n  .ptx-content .aside-like:nth-of-type(3n+1) {\n    margin-left: 660px;\n}\n  .ptx-content .aside-like:nth-of-type(3n) {\n    margin-left: 680px;\n}\n  .ptx-content .aside-like:nth-of-type(3n+2) {\n    margin-left: 640px;\n}\n}\n\n.ptx-content .aside-like:hover:after, .ptx-content .aside-like:focus:after {\n    top: 3em;\n    height: auto;\n    background-image : none;\n}\n\n.ptx-content .aside-like:hover, .ptx-content .aside-like:focus {\n    color: inherit;\n    padding: 2px 8px 0 8px;\n    border: 2px solid #dcebfa;\n    height: auto;\n    max-height: none;\n}\n.ptx-content .aside-like.front:hover, .ptx-content .aside-like.front:focus {\n    padding: 4px 10px;\n}\n\n/* find a better way to handle asides in content that has a wide left margin */\n/* see http://pretext.jahrme.com/aside-in-knowl/section-1.html */\n.ptx-content section dl dd .aside-like {\n    margin-top: 0 !important;\n    margin-left: 100px !important;\n}\n.ptx-content section dl dd .aside-like.front {\n    margin-left: -300px !important;\n}\n\n@media screen and (max-width: 1099px) {\n  .ptx-content .aside-like {\n    position: relative;\n    float: right;\n    z-index: 0;\n    overflow-x: hidden;\n    margin-left: 1em;\n    margin-top: 1em;\n    max-width: 195px;\n    max-height: 4em;\n    margin-right: -8em;\n}\n  .ptx-content li > .aside-like:last-child {\n    position: absolute;\n}\n}\n\n\n"
  },
  {
    "path": "css/targets/html/legacy/oscarlevin/theme-oscarlevin.scss",
    "content": "/*! Theme: oscarlevin-legacy */\n// Designed to support custom styling for oscarlevin style\n// Imports in this file should be relative to css root\n@use 'legacy/pretext.css';\n@use 'legacy/pretext_add_on.css';\n@use 'legacy/pretext_search';\n@use 'targets/html/legacy/default/shell_default.css';\n@use 'targets/html/legacy/default/banner_default.css';\n@use 'targets/html/legacy/default/navbar_default.css';\n@use 'targets/html/legacy/default/toc_default.css';\n@use 'targets/html/legacy/default/knowls_default.css';\n@use 'style_oscarlevin.css';\n@use 'legacy/colors/all_colors.scss';\n"
  },
  {
    "path": "css/targets/html/legacy/soundwriting/style_soundwriting.css",
    "content": "\n/*\n:root {\n  --documenttitle: #660000;\n  --bodytitle: #8e0a0c; \n  --bodysubtitle: #A62E1C;\n  --bodytitlehighlight: #eeeff3;  \n  --bodysubtitlehighlight: #fce5e4;  \n\n  --chaptertoc: #6d8899;\n  --chaptertoctext: white;\n  --chaptertocactive: var(--documenttitle);   \n  --chaptertoctextactive: white;\n  --sectiontoc: white;   \n  --sectiontoctext: #6f080b;\n  --sectiontocactive: var(--documenttitle);   \n  --sectiontoctextactive: white;\n  --tocborder: #152f53;\n\n  --highlighttoc: #330000;   \n  --highlighttoctext: white;\n  --highlighttocborder: var(--chaptertoc);\n\n  --videoplay: var(--bodytitle);\n  --assemblageborder: #1100aa;\n  --assemblagebackground: #f5f8ff;\n\n  --knowlborder: var(--bodytitlehighlight);\n  --knowlbackground: var(--assemblagebackground);\n}\n*/\n\n\n:root {\n/* Colors for titles */\n--chaptertitle: var(--documenttitle);\n--sectiontitle: var(--documenttitle);\n--subsectiontitle: var(--documenttitle);\n\n/* Set colors for blocks */\n\n  --bordercolor: var(--documenttitle);\n  --listbackground: #d0ccbd; /*neutral1*/\n  --insightbackground: #d0c681; /*muted2*/\n  --conventionbackground: #b1a77d; /*muted3*/\n  --notebackground: #93a396; /*muted4*/\n  --examplebackground: #a2bac2; /*muted5*/\n  --warningbackground: #b4bd00; /*bright4*/\n  --observationbackground: #48848d; /*bright6*/\n}\n\n\n/* Headings: */\n\n.ptx-content section.chapter h2.heading {\n  color: var(--chaptertitle);\n}\n\n.ptx-content section.chapter h2.heading .title {\n  display:block;\n  font-size:larger;\n  margin-top: 5pt;\n}\n\n.ptx-content section.section h2.heading {\n  color: var(--sectiontitle);\n  border-top: 1pt solid;\n  border-bottom: 1pt solid;\n  margin-bottom: 20pt;\n  width: 100%;\n}\n.ptx-content section.subsection h2.heading {\n  color: var(--subsectiontitle);\n  border-bottom: 1pt solid;\n  margin-bottom: 20pt;\n  width: 90%;\n}\n\n/* frontmatter headings: */\n.ptx-content section.frontmatter h2.heading {\n  color: var(--chaptertitle);\n  font-size:2em;\n}\n\n.ptx-content section.preface h2.heading, \n.ptx-content section.acknowledgement h2.heading, \n.ptx-content section.colophon h2.heading {\n  color: var(--chaptertitle);\n  margin-bottom: 15pt;\n  font-size: 1.75em;\n}\n\n.ptx-content section.preface h2.heading .title {\n  display:block;\n  font-size:larger;\n}\n\n/* Blocks: */\n\n/* set background colors */\n.ptx-content .list {\n  background-color: var(--listbackground);\n}\n.ptx-content .insight {\n  background-color: var(--insightbackground);\n}\n.ptx-content .convention {\n  background-color: var(--conventionbackground);\n}\n.ptx-content .note {\n  background-color: var(--notebackground);\n}\n.ptx-content .example {\n  background-color: var(--examplebackground);\n}\n.ptx-content .warning {\n  background-color: var(--warningbackground);\n}\n.ptx-content .observation {\n  background-color: var(--observationbackground);\n}\n\n/* set titles and borders */\n.ptx-content .remark-like,\n.ptx-content .example-like,\n.ptx-content .list {\n    padding: 1em;\n    border-radius: 10px;\n    margin-bottom: 1em;\n    border: 2px solid var(--bordercolor);\n}\n\n.ptx-content .example-like .example-like {\n    padding: 0;\n    margin: 0;\n    border: none;\n    background: inherit;\n}\n\n\n/* override list margins */\n.ptx-content .list {\n  margin-left: 0 !important;\n  margin-right: 0 !important;\n}\n\n.ptx-content .remark-like .heading,\n/* .ptx-content .example-like .heading, */\n.ptx-content .list figcaption {\n  display: block;\n  margin-top: -0.5em !important;\n  padding-bottom: 1em;\n  font-size: large; /*sets font caption size to match h6*/\n}\n\n\n"
  },
  {
    "path": "css/targets/html/legacy/soundwriting/theme-soundwriting.scss",
    "content": "/*! Theme: soundwriting-legacy */\n// Designed to support custom styling for https://github.com/UPS-CWLT/soundwriting\n// Imports in this file should be relative to css root\n@use 'legacy/pretext.css';\n@use 'legacy/pretext_add_on.css';\n@use 'legacy/pretext_search';\n@use 'targets/html/legacy/default/shell_default.css';\n@use 'targets/html/legacy/default/banner_default.css';\n@use 'targets/html/legacy/default/navbar_default.css';\n@use 'targets/html/legacy/default/toc_default.css';\n@use 'targets/html/legacy/default/knowls_default.css';\n@use 'style_soundwriting.css';\n@use 'legacy/colors/all_colors.scss';\n"
  },
  {
    "path": "css/targets/html/legacy/wide/banner_wide.scss",
    "content": "@use '../default/banner_default.css';\n\n:root {\n  --banner-background-color: #ffffff;\n}\n\n.pretext .ptx-masthead {\n  max-width: var(--page-width);\n  background-color: var(--banner-background-color);\n  margin: 0 auto;\n}\n\n.pretext .ptx-masthead .ptx-banner {\n  margin: 0 auto;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  max-width: var(--page-width);\n  padding: 8px 0;\n}\n"
  },
  {
    "path": "css/targets/html/legacy/wide/navbar_wide.scss",
    "content": "@use '../default/navbar_default.css';\n\n\n:root {\n  --nav-background-color: #ededed;\n}\n\n.pretext .ptx-navbar {\n  max-width: 100%;\n  margin: 0 auto;\n  display: flex;\n  width: var(--page-width);\n  background: var(--nav-background-color);\n  border-top: 0;\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n}\n\n.ptx-navbar-contents {\n  display: flex;\n  flex: 1;\n  max-width: 100%;\n}\n\n.pretext .ptx-navbar .toc-toggle {\n  border-left: 0;\n}\n\n.ptx-navbar .calculator-toggle {\n  width: auto;\n  height: 35px;\n  text-align: center;\n  border-radius: 0;\n  margin-left: 0;\n  border: 0;\n  border-right: 1px solid #bababa;\n  line-height: inherit;\n  margin-top: 0;\n  background-color: #ededed;\n  padding: 0 15px;\n}\n\n\n.ptx-navbar > :last-child > :last-child {\n  border-right: none;\n}\n"
  },
  {
    "path": "css/targets/html/legacy/wide/shell_wide.scss",
    "content": "@use '../default/shell_default.css';\n\n:root {\n  --content-margin: 32px;\n  --content-width: 750px;\n  --content-width-wide: 1050px;\n  --page-width: 1100px;\n  --xl-margin: calc((var(--content-width) - var(--content-width-wide)) / 2 - var(--content-margin));\n\n  --content-font-size: 1.2rem;\n}\n\nhtml {\n  font-size: 16px !important;\n  /* temp override runestone injection */\n}\n\n:root {\n  --questionBgColor: var(--componentBgColor) !important;\n}\n\n:root {\n  --component-border-color: #bababa;\n  --page-gutter-color: #c5c4c4;\n  --page-border-color: #444;\n  --page-color: white;\n}\n\n.pretext .ptx-masthead {\n  border-bottom: 1px solid var(--component-border-color);\n}\n\nbody.pretext {\n  background-color: var(--page-gutter-color);\n}\n\n.pretext .ptx-page {\n  position: relative;\n  min-height: 100vh;\n  max-width: var(--page-width);\n  margin: 0 auto;\n  background: var(--page-color);\n\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n}\n\n.searchresultsplaceholder {\n  left: calc(50vw - 300px);\n}\n\n.pretext .ptx-page .ptx-main {\n  max-width: var(--content-width);\n  margin: 0 auto;\n  padding-bottom: 2em;\n  border: 0;\n  overflow: visible;\n}\n\n.pretext .ptx-page .ptx-sidebar.hidden + .ptx-main {\n  margin: 0 auto;\n}\n\n.pretext .ptx-page > .ptx-main .ptx-content {\n  max-width: var(--content-width);\n  font-size: var(--content-font-size);\n}\n\n.pretext .ptx-page-footer {\n  max-width: var(--page-width);\n  justify-content: center;\n  margin: 0 auto;\n  gap: 90px;\n  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);\n  border-bottom: 0;\n}\n\n.pretext .ptx-content-footer {\n  max-width: 100%;\n  margin: 2em auto 0;\n  padding-bottom: 2em;\n  justify-content: space-evenly;\n}\n\n.pretext .ptx-page-footer a {\n  --margin: 15px 45px;\n}\n\n/* components that should be wide */\n.ptx-content .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n/* .ptx-content pre.program, */\n.ptx-content .runestone.datafile,\n.ptx-content .contains-wide {\n  width: var(--content-width-wide);\n  max-width: unset;\n  margin-left: var(--xl-margin);\n  max-width: unset;\n  border-width: 1px;\n  border-radius: 3px;\n}\n\n/* unless nested in other runestone's */\n.ptx-content .runestone .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n/* .ptx-content .runestone pre.program, */\n.ptx-content .runestone .runestone.datafile {\n  width: 100%;\n  margin-left: auto;\n}\n\n.ptx-content .runestone {\n  border-width: 1px;\n  border-radius: 3px;\n}\n\n.pretext .ptx-page > .ptx-main .ptx-content pre,\n.pretext .ptx-page > .ptx-main .ptx-content .ptx-runestone-container :is(.ac_code_div),\n.ptx-runestone-container .parsons .sortable-code-container,\n.ptx-runestone-container .hparsons_section .hparsons-input {\n  font-size: 1rem;\n}\n\n/* limit width of content inside ac except for actual activecode */\n.ptx-content .runestone.ac_section > div > div > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: calc(var(--content-width) - 2 * var(--content-margin));\n  margin-left: auto;\n  margin-right: auto;\n}\n\n\n/* limit width of content inside contains-wide */\n.ptx-content .runestone.contains-wide .tab-content {\n  max-width: var(--content-width);\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/* but widen item that needs it */\n.ptx-content .runestone.contains-wide .tab-content .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section) {\n  width: calc(var(--content-width-wide) - 20px);\n  margin-left: calc(var(--xl-margin) + 8px);\n}\n\n\n/* limit width of content inside parsons except for actual parsons */\n.ptx-content .runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n}\n\n.ptx-content .runestone.parsons_section > .parsons > div > *:not(.sortable-code-container) {\n  max-width: calc(var(--content-width) - 2 * var(--content-margin));\n  margin-left: auto;\n  margin-right: auto;\n}\n\n.ptx-content .runestone .parsons .sortable-code-container {\n  display: flex;\n  flex-flow: wrap;\n  justify-content: center;\n  gap: 15px;\n  margin: 10px auto;\n}\n\n.ptx-content .ptx-runestone-container .parsons .sortable-code {\n  margin: 0;\n}\n\n.ptx-content .runestone .parsons .runestone_caption_text {\n  max-width: unset;\n}\n\n.ptx-content .runestone .parsons .lines code {\n  white-space: nowrap;\n}\n\n.ptx-content .runestone .parsons .lines code .token {\n  background: none;\n  /*fix prism overlap */\n}\n\n.ptx-runestone-container .runestone.parsons_section {\n  padding-top: 15px;\n}\n\n/* whole bunch of rules to relatively gracefully handle lots of different sizes without js */\n@media screen and (max-width: 1100px) {\n\n  /* tune to match --page-width */\n  :root {\n    --page-width: 100%;\n  }\n}\n\n@media screen and (max-width: 1100px) {\n  :root {\n    --content-width-wide: 1000px;\n  }\n}\n\n@media screen and (max-width: 1050px) {\n  :root {\n    --content-width-wide: 950px;\n  }\n}\n\n@media screen and (max-width: 1000px) {\n  :root {\n    --content-width-wide: 900px;\n  }\n}\n\n@media screen and (max-width: 950px) {\n  :root {\n    --content-width-wide: 850px;\n  }\n}\n\n@media screen and (max-width: 900px) {\n  :root {\n    --content-width-wide: 800px;\n  }\n}\n\n@media screen and (max-width: 943px) {\n\n  /* Override rule that adds scrollbars to program listings when not needed */\n  .ptx-content .figure-like {\n    overflow-x: inherit;\n  }\n}\n\n@media screen and (max-width: 850px) {\n\n  /* match to --content-width - should be that + 100 */\n  :root {\n    --content-width: 100%;\n    --content-width-wide: calc(100% + 2 * var(--content-margin));\n    --xl-margin: calc(-1 * var(--content-margin));\n  }\n\n  /* nested sizing */\n  .ptx-content article:is(.theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like) > .ptx-runestone-container > .runestone:is(.ac_section,\n    .codelens,\n    .parsons_section,\n    .hparsons_section),\n  /* .ptx-content\n    article:is(\n      .theorem-like,\n      .definition-like,\n      .example-like,\n      .project-like,\n      .remark-like,\n      .openproblem-like,\n    .computation-like\n    )\n    > .ptx-runestone-container\n    > pre.program, */\n  .ptx-content article:is(.theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like) > .ptx-runestone-container > .runestone.datafile,\n  .ptx-content article:is(.theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like) > .ptx-runestone-container > .runestone.contains-wide {\n    width: calc(var(--content-width-wide) + 10px);\n  }\n\n  .ptx-content .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section, .contains-wide) {\n    border-left: 0;\n    border-right: 0;\n    border-top: 1px solid #aaa;\n    border-bottom: 1px solid #aaa;\n    border-radius: 0;\n  }\n\n  .ptx-content .code-inline {\n    white-space: pre-wrap;\n  }\n\n  .ptx-runestone-container .cd_section,\n  .ptx-content .ptx-runestone-container .parsons .sortable-code {\n    overflow-x: auto;\n  }\n\n  .ptx-content .ptx-runestone-container .parsons .sortable-code:first-of-type {\n    padding: 0 25px;\n  }\n\n  .searchresultsplaceholder {\n    width: 80vw;\n    left: 10vw;\n    bottom: 10vh;\n  }\n\n}\n\n@media screen and (max-width: 663px) {\n  :root {\n    --content-margin: 28px;\n    /* based on shell_default */\n  }\n}\n"
  },
  {
    "path": "css/targets/html/legacy/wide/style_wide.scss",
    "content": "@use '../default/style_default.css';\n\n/* handle margin of articles that items might be nested inside */\n/* first change nesting unit to px to avoid font-size issues */\n.ptx-content\n  article:is(\n    .theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like\n  ) {\n  padding-left: 10px;\n}\n/* now overcome the indentation */\n.ptx-content\n  article:is(\n    .theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like\n  )\n  > .ptx-runestone-container\n  > .runestone:is(.ac_section, .codelens, .parsons_section, .hparsons_section),\n/* .ptx-content\n  article:is(\n    .theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like\n  )\n  > pre.program, */\n.ptx-content\n  article:is(\n    .theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like\n  )\n  > .ptx-runestone-container\n  > .runestone.datafile,\n.ptx-content\n  article:is(\n  .theorem-like,\n  .definition-like,\n  .example-like,\n  .project-like,\n  .remark-like,\n  .openproblem-like,\n    .computation-like\n) .contains-wide {\n  margin-left: calc(var(--xl-margin) - 10px);\n}\n\n\n\n.ptx-content .datafile pre {\n  border: 1px solid #616160;\n  border-radius: 3px;\n  padding: 10px;\n}\n\n.ptx-content .runestone.datafile {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 10px;\n}\n\n.ptx-content .datafile_caption {\n  background: transparent;\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n\n.ac_actions {\n  font-size: 1rem;\n  margin-bottom: 5px;\n}\n\n.ptx-content .ptx-runestone-container .ac_output {\n  margin-bottom: 10px;\n}\n\n.ptx-content .ptx-runestone-container .codelens {\n  margin-bottom: 10px;\n}\n\n.ptx-content .ptx-runestone-container .ac_output pre {\n  width: 100%;\n  max-width: var(--content-width);\n  margin: 10px auto;\n}\n.ptx-runestone-container .ac-canvas {\n  margin-left: calc(50% - 202px);\n}\n.ptx-runestone-container .ac-canvas:empty {\n  display: none;\n}\n\n.runestone_caption {\n  font-size: 1rem;\n}\n\n.ptx-runestone-container .unittest-results table {\n  background: white;\n}\n\n.ptx-content .ptx-runestone-container div.ExecutionVisualizer table.visualizer {\n  width: 100%;\n}\n\n.ptx-content table tr td {\n  font-size: 1rem;\n}\n\n.pretext .ptx-content-footer {\n  align-items: stretch;\n}\n\n/*change margin to px to avoid font size issues */\n.ptx-content\n  article:is(\n    .theorem-like,\n    .definition-like,\n    .example-like,\n    .project-like,\n    .remark-like,\n    .openproblem-like,\n    .computation-like\n  )::after {\n  margin-left: -10px;\n}\n\n.video-box {\n  margin: 0.75em auto !important;\n}\n\n.ac_code_div {\n  margin-top: 10px;\n}\n\n.pretext .ptx-runestone-container .ac_actions {\n  max-width: var(--content-width);\n  margin: 0 auto;\n  flex-wrap: nowrap;\n  align-items: center;\n  gap: 10px;\n  padding-left: 10px;\n  padding-right: 10px;\n}\n\n.pretext .ptx-runestone-container .ac_actions > * {\n  flex: 0 1;\n  margin: 0 !important;\n}\n\n\n.pretext .ptx-runestone-container .ac_actions > div:first-of-type {\n  display: flex !important;\n  flex-direction: column;\n  align-items: stretch;\n  text-align: center;\n  flex-grow: 1;\n}\n\n.ptx-runestone-container .unittest-results {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n}\n\n\n.ptx-content pre.program.line-numbers,\n.ptx-content pre.code-block.line-numbers {\n  overflow-x: auto;\n}\n\n.hparsons_section {\n  max-width: unset !important;\n}\n\n.hparsons_section > :not(.hparsons_section, .hp_question) {\n  max-width: unset !important;\n}\n\n.ptx-runestone-container .hparsons_section .hp_question {\n  max-width: var(--content-width);\n}\n\n.codepart_section > div > div {\n  font-size: 1rem;\n  clear: both;\n}\n.codepart_section > div > div:first-of-type {\n  font-size: var(--content-font-size);\n}\n\n@media screen and (max-width: 600px) {\n  .pretext .ptx-runestone-container .ac_actions > * {\n    white-space: break-spaces;\n    flex-grow: 1;\n  }\n}\n"
  },
  {
    "path": "css/targets/html/legacy/wide/theme-wide.scss",
    "content": "/*! Theme: wide-legacy */\n// Imports in this file should be relative to css root\n@use 'legacy/pretext.css';\n@use 'legacy/pretext_add_on.css';\n@use 'legacy/pretext_search';\n@use 'targets/html/legacy/wide/shell_wide.scss';\n@use 'targets/html/legacy/wide/banner_wide.scss';\n@use 'targets/html/legacy/wide/navbar_wide.scss'; \n@use 'targets/html/legacy/wide/toc_wide.scss';\n@use 'targets/html/legacy/default/knowls_default.css';\n@use 'targets/html/legacy/wide/style_wide.scss';\n@use 'legacy/colors/all_colors.scss';\n"
  },
  {
    "path": "css/targets/html/legacy/wide/toc_wide.scss",
    "content": "@use '../default/toc_default';\n\n.pretext .ptx-sidebar {\n  display: none;\n  width: 200px;\n  position: sticky;\n  top: 36px;\n  z-index: 10;\n  height: 0;\n}\n\n.pretext .ptx-sidebar.visible {\n  position: sticky;\n  top: 36px;\n  z-index: 10;\n  height: 0;\n}\n\n.pretext .ptx-sidebar .ptx-toc {\n  width: 360px;\n  background-color: var(--page-color);\n  border: 1px solid var(--tocborder);\n}\n\n.pretext .ptx-page .ptx-main {\n  margin-left: inherit;\n}\n\n.ptx-toc::after {\n  height: auto;\n  max-width: 100px;\n  margin: 0 auto;\n}\n"
  },
  {
    "path": "css/targets/html/salem/_chunks-salem.scss",
    "content": "// Standard collection of chunks. This file should only be modified\n// to fix bugs or improve the default-modern theme. If you want to\n// make changes for use in some other theme, create a _chunks-XXX file\n// in that theme's directory.\n\n$border-radius: 2px !default;\n\n// One stop include for default style content blocks\n@use 'components/chunks/asides-floating' with (\n  $float-width: 300px,\n  $float-offset: -524px,\n  $min-float-width: 1820px\n);\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/discussion-inline';\n\n@use 'components/chunks/knowls' with (\n  $border-radius: $border-radius,\n  $border-width: 1px,\n  $pad: 12px\n);\n\n@use 'components/chunks/helpers/L-mixin';\n@use 'components/chunks/helpers/box-mixin' with ($border-radius: $border-radius);\n@use 'components/chunks/helpers/heading-box-mixin' with (\n  $heading-color: white,\n);\n@use 'components/chunks/helpers/sidebar-mixin' with (\n  $border-width: 4px,\n  $border-radius: 4px,\n);\n@use 'components/chunks/helpers/inline-heading-mixin';\n@use 'components/chunks/helpers/C-box-mixin' with (\n  $heading-color: white,\n  $border-radius: $border-radius,\n  $border-width: 1px,\n  $padding: 12px,\n  $padding-right: 0px\n);\n\n.remark-like {\n  @include sidebar-mixin.box(\n    $background-color: var(--remark-like-body-background),\n    $border-color: var(--remark-like-border-color),\n  );\n}\n\n.assemblage-like {\n  @include box-mixin.box(\n    $border-color: var(--assemblage-like-border-color), \n    $background-color: var(--assemblage-like-body-background)\n  );\n}\n\n// get rid of this wrapper when print worksheet styles are fixed\n.ptx-content:not(:has(>.worksheet)) {\n  // avoid styling inside runestone containers\n  .conclusion:not(.ptx-runestone-container *),\n  .goal-like:not(.ptx-runestone-container *) {\n    @include heading-box-mixin.box(\n      $background-color: var(--goal-like-body-background),\n      $border-color: var(--goal-like-border-color),\n      $heading-background: var(--goal-like-border-color),\n      $heading-color: white\n    );\n  }\n}\n\n.ptx-content:has(>.worksheet) {\n  .goal-like {\n    margin-top: 1.5em;\n  }\n}\n\n$c-boxes: \"theorem-like\", \"definition-like\", \"example-like\", \"project-like\", \"computation-like\", \"proof-like\";\n\n@each $box in $c-boxes {\n  .#{$box} {\n    @include C-box-mixin.box(\n      $border-color: var(--#{$box}-border-color),\n      $heading-background: var(--#{$box}-border-color),\n    );\n  }\n}\n\n// skip styling of exercises in worksheets, apply elsewhere\n$c-boxes-screen-only: \"exercise-like\";\n@each $box in $c-boxes-screen-only {\n  .ptx-content:not(:has(>.worksheet)) .#{$box} {\n    @include C-box-mixin.box(\n      $border-color: var(--#{$box}-border-color),\n      $heading-background: var(--#{$box}-border-color),\n    );\n  }\n  .ptx-content:has(>.worksheet) .#{$box} {\n    @include inline-heading-mixin.heading();\n  }\n}\n"
  },
  {
    "path": "css/targets/html/salem/_heading-tweaks.scss",
    "content": "// underlines to headings\n@use 'components/elements/extras/heading-underlines';\n\n.hide-type .codenumber:not(:empty)::after {\n  content: \" -\";\n}\n"
  },
  {
    "path": "css/targets/html/salem/_other-widen.scss",
    "content": "// --------------------------------------------------------------------------\n// Flexible / centered widening of other components\n\n// options should already be set in a previous @use\n@use 'components/helpers/expandable';\n\n$top-level-containers: \".chapter, .section, .subsection, .subsubsection\" !default;\n\n:is(#{$top-level-containers}) > .tabular-box,\n:is(#{$top-level-containers}) > .table > .tabular-box {\n  @include expandable.expandable;\n}\n\n// get rid of indentation for tablular figures, interferes with centering wide elements\nfigure.table-like {\n  margin-left: 0px;\n  margin-right: 0px;\n}\n"
  },
  {
    "path": "css/targets/html/salem/_parts-salem.scss",
    "content": "// Produces a centered \"page\" with borders and centered banner\n// TOC will be an initially hidden overlay\n\n$sidebar-width: 350px !default;\n$nav-height: 36px !default;\n$content-width: 725px !default;\n$content-side-padding: 48px !default;\n$navbar-breakpoint: 800px !default;\n\n$sidebar-breakpoint: $content-width + $sidebar-width + $content-side-padding * 2;\n\n@use 'components/page-parts/body' with (\n  // $max-width: 0,\n  $content-width: $content-width,\n  $content-side-padding: $content-side-padding,\n  $centered-content: true,\n  $footer-button-border-radius: 2px,\n);\n\n@use 'components/page-parts/banner' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/navbar' with (\n  // $max-width: 0,\n  $nav-height: $nav-height,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/toc-overlay' with (\n  $nav-height: $nav-height,\n  $sidebar-width: $sidebar-width,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/footer' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n:root {\n  --page-width: 1100px;\n}\n\n.standalone-page {\n  --page-width: 1600px;\n}\n\n@mixin page-block {\n  @at-root {\n    @media screen and (width > 800px) {\n      & {\n          max-width: var(--page-width);\n          margin-left: auto;\n          margin-right: auto;\n      }\n    }\n    @media screen and (width > 1100px) {\n      & {\n        border-left: 1px solid var(--page-border-color);\n        border-right: 1px solid var(--page-border-color);\n      }\n    }\n  }\n}\n\n.ptx-masthead {\n  .ptx-banner {\n    justify-content: center;\n  }\n  \n  .title-container {\n    flex: unset;\n  }\n  @include page-block;\n}\n\n\n.ptx-navbar {\n  @include page-block;\n}\n\n.ptx-page {\n  @include page-block;\n}\n\n.ptx-page-footer {\n  border-bottom: 0;\n  @include page-block;\n}\n\n.ptx-content-footer {\n  justify-content: space-evenly;\n}\n\n@container ptx-main (width < #{$navbar-breakpoint}) {\n  .ptx-page > .ptx-main { \n    .ptx-content {\n      padding-left: 20px;\n      padding-right: 20px;\n      max-width: calc($content-width + 40px);\n    }\n  }\n}\n"
  },
  {
    "path": "css/targets/html/salem/_rs-widen.scss",
    "content": "// --------------------------------------------------------------------------\n// Flexible / centered widening of rs elements and other components\n\n$small-nested-margin-offset: 0px !default;\n\n// These will have defaults that have possibly been overridden by @use in main theme file\n@use 'sizing-globals' as sizing;\n@use 'components/helpers/expandable';\n\n\n\n// designed to be used with a @container/media query by file using this\n// left to user to include in a media query\n// e.g. @container ptx-main (width < 850px) { @include smaller-screen-widening; }\n@mixin smaller-screen-widening {\n  .ptx-runestone-container:has(#{sizing.$rs-wide-elements}) {\n    width: calc(100cqw);\n    margin-left: calc(-0.5*(100cqw - 100%));\n  }\n  :is(#{sizing.$grouping-elements}):has(#{sizing.$rs-wide-elements}) {\n    width: calc(100cqw);\n    margin-left: calc(-0.5*(100cqw - 100%));\n  }\n  :is(#{sizing.$grouping-elements}) .ptx-runestone-container:has(#{sizing.$rs-wide-elements}) {\n    width: 100%;\n    margin-left: $small-nested-margin-offset;  //cheat into padding\n  }\n}\n\n\n\n// widen all runestone elements that should be wide\n.ptx-runestone-container:has(#{sizing.$rs-wide-elements}){\n  @include expandable.responsive;\n}\n\n// unless nested in other runestones\n.ptx-runestone-container {\n  .ptx-runestone-container:has(#{sizing.$rs-wide-elements})\n  {\n    width: 100%;\n    min-width: 100%;\n    margin-left: auto;\n  }\n}\n\n// also wide grouping elements that have wide elements\n:is(#{sizing.$grouping-elements}):has(#{sizing.$rs-wide-elements}) {\n  @include expandable.responsive;\n}\n// unless nested in other wide elements\n:is(#{sizing.$grouping-elements}):has(#{sizing.$rs-wide-elements}) {\n  :is(#{sizing.$grouping-elements}):has(#{sizing.$rs-wide-elements}) {\n    width: 100%;\n    margin-left: auto;\n  }\n}\n\n// which simplifies the nested wide elements\n:is(#{sizing.$grouping-elements}) .ptx-runestone-container:has(#{sizing.$rs-wide-elements}) {\n  width: 100%;\n  margin-left: 0;\n}\n\n/* limit width of content inside ac except for actual activecode */\n.runestone.ac_section\n  > div\n  > div\n  > *:not(.ac_code_div):not(.ac_output):not(.codelens):not(.ac_actions) {\n  max-width: sizing.$content-width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/* same for exercise-statement in any runestone */\n.runestone {\n  .exercise-statement {\n    max-width: sizing.$content-width;\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n\n/* limit width of statement and success/error message inside hparson */\n.hparsons_section .hp_question,\n.hparsons_section .hp_feedback {\n  max-width: sizing.$content-width;\n  margin-left: auto;\n  margin-right: auto;\n}\n\n/* limit width of content inside parsons except for actual parsons */\n.runestone.parsons_section > .parsons {\n  width: 100%;\n  padding-right: 0;\n\n  .sortable-code-container {\n    display: flex;\n    flex-flow: wrap;\n    justify-content: center;\n    gap: 15px;\n    margin: 10px auto;\n  }\n\n  .sortable-code {\n    margin: 0;\n  }\n\n  .runestone_caption_text {\n    max-width: unset;\n  }\n\n  & > div > *:not(.sortable-code-container) {\n    max-width: sizing.$content-width;\n    margin-left: auto;\n    margin-right: auto;\n  }\n}\n"
  },
  {
    "path": "css/targets/html/salem/_sizing-globals.scss",
    "content": "// This file can be @use'd with overrides once\n// Then future @uses will get those overrides instead of the values listed here\n\n$content-width: 725px !default;\n$content-side-padding: 48px !default;\n$content-with-padding-width: $content-width + 2 * $content-side-padding;\n\n// rs components that should be wide\n$rs-wide-elements: \".ac_section, .codelens, .parsons_section, .hparsons_section, .datafile\" !default;\n\n// grouping elements that may have wide elements and require different margins\n// need to make sure those elements have a consistent amount of (padding+border)\n$grouping-elements: \".timedAssessment, .theorem-like, .definition-like, .example-like, .exercise-like, .project-like, .remark-like, .openproblem-like, .openproblems-like, .computation-like, .knowl__content\" !default;\n\n// import expandable helper and set some defaults\n// future @uses will get these defaults\n@use 'components/helpers/expandable' with (\n  $width-hard-cap: 10000px,  //no functional limit\n  $base-content-width: $content-width,\n  $content-padding: $content-side-padding,\n  $always-expand: true,\n  $centered: true\n);\n"
  },
  {
    "path": "css/targets/html/salem/theme-salem.scss",
    "content": "/*! Theme: salem */\n// A theme focused on displaying wide content gracefully\n\n// Current maintainer: Andrew Scholer\n\n// Variables used by theme. CSSBuilder overrides these by prepending\n// different definitions for these variables to this file before the theme\n// is compiled.\n\n// light colors\n$palette: 'ice-fire' !default;\n$color-main: null !default;\n$color-do: null !default;\n$color-fact: null !default;\n$color-meta: null !default;\n\n// dark colors\n$primary-color-dark: #9db9d3 !default;\n$background-color-dark: #23241f !default;\n\n\n@use \"sass:map\";\n@use 'sass:color';\n@use \"colors/color-helpers\" as colorHelpers;\n\n\n// ---------------------------------------------\n// components\n\n// set some default sizing variables - this will also set up\n// defaults for expandable mixin\n@use 'sizing-globals';\n\n@use 'parts-salem';\n@use 'chunks-salem';\n@use 'components/pretext-web' with (\n  $navbar-breakpoint: parts-salem.$navbar-breakpoint,\n);\n\n// ---------------------------------------------\n// fonts and colors\n$heading-font: 'Noto Sans, Helvetica Neue, Helvetica, Arial, sans-serif' !default;\n@use 'fonts/fonts-google' with ($heading: $heading-font);\n\n// fancy colors for chunks\n@use 'colors/palette-quad-chunks' as palette-chunks with (\n  $palette: $palette,\n  $color-main: $color-main,\n  $color-do: $color-do,\n  $color-fact: $color-fact,\n  $color-meta: $color-meta,\n  $heading-text-color: black,\n);\n\n// primary color defined by color-main as determined by palette-chunks\n$primary-color: map.get(palette-chunks.$colors, 'color-main');\n\n@use 'colors/palette-single-bold' as palette-light with (\n  $primary-color: $primary-color,\n);\n\n$light-colors: map.merge(palette-light.$colors, palette-chunks.$colors);\n\n\n@use 'colors/palette-dark' as palette-dark with (\n  $primary-color: $primary-color-dark,\n  $background-color: $background-color-dark,\n);\n\n$palette-dark: map.merge(palette-dark.$colors, (\n  \"toclevel2-background\": var(--content-background),\n  \"toclevel3-background\": var(--background-color-gray-20),\n  \"toclevel1-background\": var(--content-background),\n));\n\npalette-dark.$colors: map.merge(palette-dark.$colors, ());\n\n\n// ---------------------------------------------\n// customizations\n\n@use 'heading-tweaks';\n@use 'other-widen';\n@use 'rs-widen' with (\n  $small-nested-margin-offset: -5px\n);\n\n// now handle smaller screens\n@container ptx-main (width < 850px) {\n  @include rs-widen.smaller-screen-widening;\n}\n\n\n// bump up font size to avoid long lines in wider body\nbody.pretext {\n  font-size: var(--content-font-size);\n}\n\n:root {\n  --content-font-size: 1.1rem;\n  --auto-collapse-toc: yes;\n}\n\n@media screen and (width < #{parts-salem.$navbar-breakpoint}) {\n  body.pretext {\n    font-size: 1rem;\n  }\n}\n\n// ---------------------------------------------\n// concrete rules / includes that generate CSS\n\n// render the actual colors\n@include colorHelpers.set-root-colors($light-colors, palette-dark.$colors);\n"
  },
  {
    "path": "css/targets/html/tacoma/_chunks-minimal.scss",
    "content": "$border-radius: 8px !default;\n\n// One stop include for default style content blocks\n@use 'components/chunks/asides-basic';\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/discussion-inline';\n@use 'components/chunks/knowls' with ($border-radius: $border-radius);\n@use 'components/chunks/helpers/L-mixin';\n@use 'components/chunks/helpers/box-mixin' with ($border-radius: 0);\n@use 'components/chunks/helpers/heading-box-mixin';\n@use 'components/chunks/helpers/sidebar-mixin';\n@use 'components/chunks/helpers/inline-heading-mixin';\n\n.assemblage-like, .goal-like {\n  @include sidebar-mixin.box(\n    $border-width: 4px,\n    $background-color: var(--goal-body-background),\n  );\n}\n\n\n.theorem-like,\n.definition-like\n{\n  .heading {\n    display: block;\n    font-size: 1.1em;\n  }\n  .para {\n    font-style: italic;\n  }\n}\n\n.example-like,\n.project-like,\n.remark-like,\n.openproblem-like,\n.computation-like\n{\n  > .heading {\n    display: block;\n    font-size: 1.1em;\n  }\n}\n\n\n.proof {\n  padding-bottom: 1.5em;\n  &::after {\n    content: \"□\";\n    float: right;\n  }\n\n  .heading {\n    font-size: unset;\n    font-weight: bold;\n    font-style: italic;\n  }\n}\n\n.solution-like {\n  .heading {\n    display: inline;\n    font-style: italic;\n    font-size: unset;\n  }\n}\n\n.paragraphs {\n  @include inline-heading-mixin.heading;\n}\n"
  },
  {
    "path": "css/targets/html/tacoma/_customization.scss",
    "content": "// more generous spacing for sections/articles\n\n@use 'components/page-parts/extras/toc-expand-chevrons';\n\n// used to expand math and RS blocks\n@use 'components/helpers/expandable';\n\nsection>*:not(:first-child) {\n  margin-top: 1.5em;\n}\narticle>*:not(:first-child):has(.heading) {\n  margin-top: 1.5em;\n}\n\n\n// let math stretch out to fill space on right\n.displaymath {\n  @include expandable.expandable;\n}\n\n.code-display {\n  @include expandable.expandable;\n}\n\n// horizontal scroll for tabular boxes\n.tabular-box {\n  @include expandable.expandable;\n}\n"
  },
  {
    "path": "css/targets/html/tacoma/_parts-tacoma.scss",
    "content": "// Left aligned \"page\" with limited width, beyond which it is centered\n\n$max-width: 1000px !default;\n$sidebar-width: 240px !default;\n$scrolling-toc: true !default;\n$nav-height: 36px !default;\n$content-width: 600px !default;\n$content-side-padding: 48px !default;\n$content-side-padding-tight: 28px !default;\n$navbar-breakpoint: 800px !default;\n\n$sidebar-breakpoint: $content-width + $sidebar-width + $content-side-padding * 2;\n$content-with-padding-width: $content-width + 2 * $content-side-padding;\n\n@use 'components/page-parts/body' with (\n  $max-width: $max-width,\n  $content-width: $content-width,\n  $content-side-padding: $content-side-padding,\n  $centered-content: true,\n);\n\n@use 'components/page-parts/banner' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/navbar' with (\n  $max-width: $max-width,\n  $nav-height: $nav-height,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/toc-overlay' with (\n  $nav-height: $nav-height,\n  $sidebar-width: $sidebar-width,\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n@use 'components/page-parts/footer' with (\n  $navbar-breakpoint: $navbar-breakpoint,\n);\n\n// breakpoint to end centering\n@media screen and (width < 1000px) {\n  .ptx-main .ptx-content {\n    margin: 0;\n  }\n}\n\n// Decrease the side margins once out of room\n@container ptx-main (width < #{$content-with-padding-width}) {\n  .ptx-page > .ptx-main { \n    .ptx-content {\n      padding-left: #{$content-side-padding-tight};\n      padding-right: #{$content-side-padding-tight};\n      max-width: calc($content-width + 2 * #{$content-side-padding-tight});\n    }\n  }\n}\n"
  },
  {
    "path": "css/targets/html/tacoma/theme-tacoma.scss",
    "content": "/*! Theme: tacoma */\n// A theme focused on a minimal distraction reading environment\n\n// Current maintainer: Andrew Scholer\n\n// Variables used by theme. CSSBuilder overrides these by prepending\n// different definitions for these variables to this file before the theme\n// is compiled.\n$primary-color: #2a5ea4 !default;\n$primary-color-dark: #829ab1 !default;\n$background-color-dark: #23241f !default;\n\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n\n// ---------------------------------------------\n// components\n@use 'parts-tacoma' as parts;\n\n@use 'chunks-minimal' with ($border-radius: 0); \n\n@use 'components/pretext-web' with (\n  $navbar-breakpoint: parts.$navbar-breakpoint,\n);\n\n// ---------------------------------------------\n// fonts and colors\n@use 'fonts/fonts-google';\n\n@use 'colors/palette-single-muted' as palette-light with (\n  $primary-color: $primary-color,\n);\n\n@use 'colors/palette-dark' as palette-dark with (\n  $primary-color: $primary-color-dark,\n  $background-color: $background-color-dark,\n);\n\n// ---------------------------------------------\n// customizations\n@use './customization';\n\n\n// ---------------------------------------------\n// concrete rules / includes that generate CSS\n\n// render the actual colors\n@include colorHelpers.set-root-colors(palette-light.$colors, palette-dark.$colors);\n"
  },
  {
    "path": "css/targets/print-worksheet/_chunks-worksheet.scss",
    "content": "// Standard collection of chunks. This file should only be modified\n// to fix bugs or improve the default-modern theme. If you want to\n// make changes for use in some other theme, create a _chunks-XXX file\n// in that theme's directory.\n\n$border-radius: 8px !default;\n\n// One stop include for default style content blocks\n@use 'components/chunks/asides-floating';\n@use 'components/chunks/codelike';\n@use 'components/chunks/exercises';\n@use 'components/chunks/solutions';\n@use 'components/chunks/sidebyside';\n@use 'components/chunks/discussion-inline';\n@use 'components/chunks/knowls' with ($border-radius: $border-radius);\n\n@use 'components/chunks/helpers/inline-heading-mixin';\n@use 'components/chunks/helpers/horizontal-bars-mixin';\n@use 'components/chunks/helpers/box-mixin' with ($border-radius: $border-radius);\n\n\n.theorem-like,\n.definition-like,\n.example-like,\n.project-like,\n.remark-like,\n.openproblem-like,\n.computation-like,\n.assemblage-like {\n  > .heading {\n    display: block;\n    font-size: 1.1em;\n  }\n}\n\n.proof {\n  padding-bottom: 1.5em;\n  &::after {\n    content: \"□\";\n    float: right;\n  }\n\n  .heading {\n    font-size: unset;\n    font-weight: bold;\n    font-style: italic;\n  }\n}\n\n.solution-like {\n  .heading {\n    display: inline;\n    font-style: italic;\n    font-size: unset;\n  }\n}\n\n\n.goal-like {\n  @include horizontal-bars-mixin.bars(\n    $border-width: 1px,\n    $padding: 0.5em\n    );\n}\n\n.paragraphs,\narticle {\n  @include inline-heading-mixin.heading;\n}\n\n.assemblage-like {\n  @include box-mixin.box(\n    $border-width: 1px,\n    $border-color: var(--assemblage-like-border-color),\n  );\n  > .heading {\n    font-size: 1.1em;\n  }\n}\n"
  },
  {
    "path": "css/targets/print-worksheet/print-worksheet.scss",
    "content": "/*! Theme: print-worksheet */\n\n// Used for print versions of worksheets (including their previews) for all themes\n\n// File is only included in standalone printable worksheet pages (the print preview pages).\n// Most rules apply to both screen and print; rules at the bottom of the file split into these two cases.\n\n// Also see:\n// components/_printing.scss : base rules for printing a standard PreTeXt page - removes UI\n// components/_worksheet.scss : rules that apply to worksheets in context and in print/preview.\n\n// Current maintainer: Oscar Levin\n\n// ---------------------------------------------\n// Grouping containers - based off of those in default-modern\n@use 'chunks-worksheet' with ($border-radius: 0);\n\n// Bring in the standard PreTeXt styles for components\n@use 'components/pretext';\n\n// Use underline style headings\n//@use 'components/elements/extras/heading-underlines';\n\n// Make sure fonts are available\n@use 'fonts/fonts-google';\n\n// For the print button\n@use 'components/helpers/buttons-default' as buttons;\n\n\n// Make sure we are including the root colors using simple black-and-white palette\n// Always use colors from the light mode palette, since the print preview and printed version will be light mode.\n@use \"sass:map\";\n@use \"colors/color-helpers\" as colorHelpers;\n@use 'colors/palette-single' as palette with (\n  $primary-color: black,\n);\n\n$light-colors: map.merge(\n  palette.$colors,\n  (\n    \"block-head-color\": black,\n  )\n);\n\n// Print worksheets should always render with the light palette, even if the page\n// root still carries the site's dark-mode class.\n:root,\n:root.dark-mode {\n  color-scheme: light;\n  @include colorHelpers.scss-to-css($light-colors);\n}\n\n// ---------------------------------------------\n// concrete rules / includes that generate CSS\n\n// Set variables for default width and margins\n:root {\n  --ws-width: 8.5in; // Default width for worksheets\n  --ws-height: 11in; // Default height for worksheets\n  --ws-top-margin: 40px; // Default top margin for worksheets\n  --ws-right-margin: 55px; // Default right margin for worksheets\n  --ws-bottom-margin: 45px; // Default bottom margin for worksheets\n  --ws-left-margin: 45px; // Default left margin for worksheets\n\n  --ws-content-width: calc(var(--ws-width) - var(--ws-right-margin) - var(--ws-left-margin));\n  --ws-content-height: calc(var(--ws-height) - var(--ws-top-margin) - var(--ws-bottom-margin));\n}\n\n\n\n\n// Remove surrounding UI elements\n  .pretext .ptx-masthead,\n  .pretext .ptx-navbar,\n  body.pretext > a.assistive,\n  .pretext .ptx-page > .ptx-sidebar,\n  .pretext  .ptx-page-footer,\n  .pretext .ptx-main > div.ptx-content-footer {\n    display:none;\n  }\n\n  // Remove the print preview link\n.heading .print-links {\n  display: none;\n}\n\n .autopermalink {\n  display: none;\n}\n\n// Some elements don't make sense to print:\n//   image descriptions\n//   webwork \"activate\" buttons\n//   buttons in general (to remove Runestone \"Check Me\" button)\n// We remove these here.\n.image-description,\n.ptx-content .webwork-button,\n.ptx-runestone-container button.btn {\n  display: none;\n}\n\n\n// Set font appropriate for printing\nsection.worksheet, section.handout {\n  font-size: 11pt;\n  font-family: var(--font-print);\n}\n\n// .onepage is the common class that wraps all content in a single worksheet page (often modified by the javascript)\n .onepage > .heading {\n  margin-top: 0;\n  font-size: 1.3em;\n}\n\n// Headings made out of paragraphs titles\n.onepage h4.heading {\n  font-size: 1.2em;\n  margin-top: 1em;\n}\n\n.onepage .instructions {\n  display: none;\n}\n\n// Headers and footers\n.onepage .first-page-header,\n.onepage .running-header,\n.onepage .first-page-footer,\n.onepage .running-footer {\n  display: flex;\n  justify-content: space-between;\n  align-content: flex-start;\n\n  // Make divs have minimum width to make it easier to select them for editing\n  div {\n    min-width: 10em;\n  }\n\n  .header-center, .footer-center {\n    text-align: center;\n  }\n\n  .header-right, .footer-right {\n    text-align: right;\n  }\n}\n\n.onepage .first-page-header, .onepage .running-header {\n  margin-bottom: 1em;\n  border-bottom: 1px dashed lightgray;\n}\n\n.onepage .first-page-footer, .onepage .running-footer {\n  margin-top: 1em;\n  border-top: 1px dashed lightgray;\n}\n\n\n// Style solutions divs, which the javascript transforms from knowls to divs with titles\n\n.solutions {\n  margin-top: 1em;\n\n  .solution-like.born-hidden-knowl {\n    margin-top: 1em;\n    padding: unset;\n\n    h5 {\n      font-weight: bolder;\n      display: inline;\n      font-size: 1em;\n    }\n\n    > div {\n      display: inline;\n    }\n\n    .knowl__content {\n      display: inline;\n      border: none;\n      background-color: unset;\n      padding: 0;\n\n      >:first-child {\n        display: inline;\n      }\n\n      .para {\n        margin-top: 0.5em;\n      }\n    }\n  }\n}\n\n// Additional styling tweaks for print\n\n.code-inline {\n  border: unset;\n  background: unset;\n}\n\n.onepage article {\n  padding-left: 0;\n  border: none;\n}\n\n.onepage article::after {\n  all: unset;\n}\n\n.onepage > .para:first-child,\n.onepage > article:first-child {\n  margin-top: 0;\n}\n\n\n// Some headings have larger top-margins than their parent section, so we fix that here.\n.onepage > section > .heading {\n  margin-top: 0;\n}\n\n// tasks might be \"free-floating\" articles, in which case they should get the same indenting as tasks inside exercises.\nsection article.task, .conclusion.subtask {\n  margin-left: 20px;\n}\nsection article.subtask, .conclusion.subsubtask {\n  margin-left: 40px;\n}\nsection article.subsubtask {\n  margin-left: 60px;\n}\n\nsection.worksheet > .heading, section.handout > .heading {\n  display: inline;\n  font-size: 1.1em;\n}\n\nsection.worksheet > .heading + .para, section.handout > .heading + .para {\n  display: inline;\n}\n\n.introduction, .conclusion {\n  > .heading {\n    font-size: 1.1em;\n    font-weight: bold;\n    margin-bottom: 0;\n    border-bottom: none;\n    + .para {\n      margin-top: 0.5em;\n    }\n  }\n}\n\nform.papersize-select {\n  padding-bottom: 8px;\n}\n\n\n\n\n// Screen specific styles (mostly for showing the border around a worksheet with it's \"margins\" and for the print controls)\n@media screen {\n  .ptx-main {\n    max-width: var(--ws-width);\n    margin: 50px auto;\n  }\n\n  .worksheet, .handout {\n    max-width: var(--ws-width);\n    margin: 0 auto;\n  }\n\n  .onepage {\n    width: 100%;\n    height: var(--ws-height);\n    padding: var(--ws-top-margin) var(--ws-right-margin) var(--ws-bottom-margin) var(--ws-left-margin);\n    box-shadow: 5px 10px 40px -10px;\n  }\n\n  // Set space between pages\n  .onepage + .onepage {\n    margin-top: 2.5em;\n  }\n\n\n  .workspace-container {\n    display: flex;\n    overflow: visible;\n  }\n\n  .workspace {\n    width: 100%;\n  }\n\n  .highlight-workspace .onepage .workspace {\n    border: 1px dashed gray;\n    background: hsl(224, 100%, 95%);\n  }\n\n  // Normally, the .workspace.original is hidden in the print preview, but if the highlight-workspace checkbox is checked, it will be shown.\n  .onepage .original-workspace {\n    display: none;\n  }\n\n  .highlight-workspace .onepage .original-workspace {\n    display:block;\n    width: 10px;\n    background: hsl(152, 29%, 65%);\n  }\n\n  .highlight-workspace .onepage .warning {\n    background: hsl(36, 65%, 67%);\n  }\n\n  .print-button {\n  @include buttons.ptx-button;\n  }\n\n  .papersize-select {\n    z-index: 1;\n    .name::after {\n      content: \": \";\n    }\n  }\n\n  .print-controls {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding-bottom: 1em;\n  }\n\n  // Make labels and inputs for print options have pointer cursor\n  label, input {\n    cursor: pointer;\n  }\n\n  // Add spacing for header/footer options\n  .header-option, .footer-option {\n    display: flex;\n    gap: 1em;\n    align-items: baseline;\n\n    .title::after {\n      content: \":\";\n    }\n  }\n\n// Style the additional printing options the same as we do for knowls\n  .print-options {\n    summary {\n      cursor: pointer;\n      display: list-item inline;\n    }\n\n    .hide-option {\n      display: inline-block;\n      padding-right: 1em;\n    }\n  }\n}\n\n\n// Print specific styles\n@media print {\n  body {\n    margin: 0;\n    padding: 0;\n    width: var(--ws-content-width);\n  }\n\n  .print-preview-header {\n    display: none;\n  }\n\n  section.worksheet, section.handout {\n    border: none;\n    width: 100%;\n\n    .onepage {\n      margin-top: 0;\n      width: 100%;\n      height: var(--ws-content-height);\n      overflow: hidden;\n      page-break-after: always;\n      page-break-inside: avoid;\n    }\n\n    // Avoid a blank page at the end if the last page fits on the previous page\n    .onepage:last-of-type {\n      page-break-after: avoid;\n    }\n\n    .first-page-header, .running-header {\n      border-bottom: none;\n    }\n\n    .first-page-footer, .running-footer {\n      border-top: none;\n    }\n\n    // Never show the workspace preview in print\n    div.workspace,\n    div.workspace.squashed.tight {\n      border: none;\n      padding: 0;\n      background: none !important;\n    }\n  }\n\n  a {\n    color: black;\n  }\n\n  @page {\n    // Note: when we allow custom margins, the javascript will need to change these defaults.\n    // Default margins appear to be necessary for Firefox and Safari (Chrome already works with the variable values).\n    margin: var(--ws-top-margin, 40px) var(--ws-right-margin, 55px) var(--ws-bottom-margin, 45px) var(--ws-left-margin, 45px);\n  }\n}\n"
  },
  {
    "path": "css/targets/revealjs/reveal.scss",
    "content": "/*! Theme: reveal */\n\n// Tip: to build just this file directly to a folder for testing, do something like:\n// npm run build -- -w -t pretext-reveal -o ../../examples/sample-slideshow/out/_static/pretext/css\n\n@use \"components/elements/list-styles\";\n\n//---- List Styles ----\nul {\n  display: block !important;\n}\n\n.cols1 li,\n.cols2 li,\n.cols3 li,\n.cols4 li,\n.cols5 li,\n.cols6 li {\n  float: left;\n  padding-right: 2em;\n}\n\n//---- Container Styles ----\n\n// Force sidebyside divs to be full width\n.sidebyside {\n  width: 100%;\n}\n\n\n/* Callout boxes */\n// Note: the box around a \"theorem\" does not contain\n// the associated \"proof\" because the HTML does not\n// provide an enclosure containing both.\n.definition-like,\n.theorem-like,\n.proof,\n.project-like {\n  border-width: 0.5px;\n  border-style: solid;\n  border-radius: 2px 10px 2px;\n  padding: 1%;\n  margin-bottom: var(--r-block-margin);\n}\n\n.definition-like {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #006080);\n}\n\n.theorem-like {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #a00);\n}\n\n.proof {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #aaa);\n}\n\n.project-like {\n  background: color-mix(in srgb, var(--r-background-color) 75%, #608000);\n}\n\n//---- Media Styles ----\n.reveal img {\n  border: 0.5px !important;\n  border-radius: 2px 10px;\n  padding: 4px;\n}\n\n.image-box,\n.audio-box,\n.video-box,\n.asymptote-box {\n  position: relative;\n}\n\niframe.asymptote,\n.video-box .video,\n.video-box .video-poster {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n\n// make small images full-width in #sidebyside\n// could improve with a .sidebyside class\ndiv[style*=\"display:table-cell\"] img {\n    width: 100%;\n}\n\n//---- Codelike Styles ----\n.code-inline {\n  background: color-mix(in srgb, var(--r-background-color) 75%, var(--r-link-color));\n  padding: 0 3px;\n  border: 1px solid;\n  margin: 3px;\n  display: inline-block;\n}\n\n.sagecell_sessionOutput {\n  background: white;\n  color: black;\n  border: 0.5px solid var(--r-main-color);\n}\n\n.program {\n  background: color-mix(in srgb, var(--r-background-color) 75%, var(--r-link-color));\n  max-height: 450px;\n  overflow: auto;\n  border: 0.5px solid var(--r-main-color);\n}\n\n.ptx-sagecell,\n.reveal .program {\n  font-size: calc(var(--r-main-font-size) * 0.6);\n}\n\ncode[class*=\"language-\"],\npre[class*=\"language-\"] {\n  padding: 0;\n  line-height: 1.2;\n}\n\n// Undo some reveal.js defaults\n.reveal pre {\n  box-shadow: none;\n  line-height: 1;\n  font-size: inherit;\n  width: auto;\n  margin: inherit;\n}\n\n.reveal pre code {\n  display: block;\n  padding: 0;\n  overflow: unset;\n  max-height: unset;\n  word-wrap: normal;\n}\n\n//---- Other Styles ----\ndfn {\n  font-weight: bold;\n}\n"
  },
  {
    "path": "doc/guide/COPYING",
    "content": "                   PreTeXt Guide\n                        by\n  Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller\n\nCopyright (C) 2013-2016\nRobert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller\n\nPermission is granted to copy, distribute and/or modify this document\nunder the terms of the GNU Free Documentation License, Version 1.3\nor any later version published by the Free Software Foundation;\nwith no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.\nA copy of the license is included in the appendix entitled \"GNU\nFree Documentation License\" and appended below.\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n                GNU Free Documentation License\n                 Version 1.3, 3 November 2008\n\n\n Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.\n     <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n0. PREAMBLE\n\nThe purpose of this License is to make a manual, textbook, or other\nfunctional and useful document \"free\" in the sense of freedom: to\nassure everyone the effective freedom to copy and redistribute it,\nwith or without modifying it, either commercially or noncommercially.\nSecondarily, this License preserves for the author and publisher a way\nto get credit for their work, while not being considered responsible\nfor modifications made by others.\n\nThis License is a kind of \"copyleft\", which means that derivative\nworks of the document must themselves be free in the same sense.  It\ncomplements the GNU General Public License, which is a copyleft\nlicense designed for free software.\n\nWe have designed this License in order to use it for manuals for free\nsoftware, because free software needs free documentation: a free\nprogram should come with manuals providing the same freedoms that the\nsoftware does.  But this License is not limited to software manuals;\nit can be used for any textual work, regardless of subject matter or\nwhether it is published as a printed book.  We recommend this License\nprincipally for works whose purpose is instruction or reference.\n\n\n1. APPLICABILITY AND DEFINITIONS\n\nThis License applies to any manual or other work, in any medium, that\ncontains a notice placed by the copyright holder saying it can be\ndistributed under the terms of this License.  Such a notice grants a\nworld-wide, royalty-free license, unlimited in duration, to use that\nwork under the conditions stated herein.  The \"Document\", below,\nrefers to any such manual or work.  Any member of the public is a\nlicensee, and is addressed as \"you\".  You accept the license if you\ncopy, modify or distribute the work in a way requiring permission\nunder copyright law.\n\nA \"Modified Version\" of the Document means any work containing the\nDocument or a portion of it, either copied verbatim, or with\nmodifications and/or translated into another language.\n\nA \"Secondary Section\" is a named appendix or a front-matter section of\nthe Document that deals exclusively with the relationship of the\npublishers or authors of the Document to the Document's overall\nsubject (or to related matters) and contains nothing that could fall\ndirectly within that overall subject.  (Thus, if the Document is in\npart a textbook of mathematics, a Secondary Section may not explain\nany mathematics.)  The relationship could be a matter of historical\nconnection with the subject or with related matters, or of legal,\ncommercial, philosophical, ethical or political position regarding\nthem.\n\nThe \"Invariant Sections\" are certain Secondary Sections whose titles\nare designated, as being those of Invariant Sections, in the notice\nthat says that the Document is released under this License.  If a\nsection does not fit the above definition of Secondary then it is not\nallowed to be designated as Invariant.  The Document may contain zero\nInvariant Sections.  If the Document does not identify any Invariant\nSections then there are none.\n\nThe \"Cover Texts\" are certain short passages of text that are listed,\nas Front-Cover Texts or Back-Cover Texts, in the notice that says that\nthe Document is released under this License.  A Front-Cover Text may\nbe at most 5 words, and a Back-Cover Text may be at most 25 words.\n\nA \"Transparent\" copy of the Document means a machine-readable copy,\nrepresented in a format whose specification is available to the\ngeneral public, that is suitable for revising the document\nstraightforwardly with generic text editors or (for images composed of\npixels) generic paint programs or (for drawings) some widely available\ndrawing editor, and that is suitable for input to text formatters or\nfor automatic translation to a variety of formats suitable for input\nto text formatters.  A copy made in an otherwise Transparent file\nformat whose markup, or absence of markup, has been arranged to thwart\nor discourage subsequent modification by readers is not Transparent.\nAn image format is not Transparent if used for any substantial amount\nof text.  A copy that is not \"Transparent\" is called \"Opaque\".\n\nExamples of suitable formats for Transparent copies include plain\nASCII without markup, Texinfo input format, LaTeX input format, SGML\nor XML using a publicly available DTD, and standard-conforming simple\nHTML, PostScript or PDF designed for human modification.  Examples of\ntransparent image formats include PNG, XCF and JPG.  Opaque formats\ninclude proprietary formats that can be read and edited only by\nproprietary word processors, SGML or XML for which the DTD and/or\nprocessing tools are not generally available, and the\nmachine-generated HTML, PostScript or PDF produced by some word\nprocessors for output purposes only.\n\nThe \"Title Page\" means, for a printed book, the title page itself,\nplus such following pages as are needed to hold, legibly, the material\nthis License requires to appear in the title page.  For works in\nformats which do not have any title page as such, \"Title Page\" means\nthe text near the most prominent appearance of the work's title,\npreceding the beginning of the body of the text.\n\nThe \"publisher\" means any person or entity that distributes copies of\nthe Document to the public.\n\nA section \"Entitled XYZ\" means a named subunit of the Document whose\ntitle either is precisely XYZ or contains XYZ in parentheses following\ntext that translates XYZ in another language.  (Here XYZ stands for a\nspecific section name mentioned below, such as \"Acknowledgements\",\n\"Dedications\", \"Endorsements\", or \"History\".)  To \"Preserve the Title\"\nof such a section when you modify the Document means that it remains a\nsection \"Entitled XYZ\" according to this definition.\n\nThe Document may include Warranty Disclaimers next to the notice which\nstates that this License applies to the Document.  These Warranty\nDisclaimers are considered to be included by reference in this\nLicense, but only as regards disclaiming warranties: any other\nimplication that these Warranty Disclaimers may have is void and has\nno effect on the meaning of this License.\n\n2. VERBATIM COPYING\n\nYou may copy and distribute the Document in any medium, either\ncommercially or noncommercially, provided that this License, the\ncopyright notices, and the license notice saying this License applies\nto the Document are reproduced in all copies, and that you add no\nother conditions whatsoever to those of this License.  You may not use\ntechnical measures to obstruct or control the reading or further\ncopying of the copies you make or distribute.  However, you may accept\ncompensation in exchange for copies.  If you distribute a large enough\nnumber of copies you must also follow the conditions in section 3.\n\nYou may also lend copies, under the same conditions stated above, and\nyou may publicly display copies.\n\n\n3. COPYING IN QUANTITY\n\nIf you publish printed copies (or copies in media that commonly have\nprinted covers) of the Document, numbering more than 100, and the\nDocument's license notice requires Cover Texts, you must enclose the\ncopies in covers that carry, clearly and legibly, all these Cover\nTexts: Front-Cover Texts on the front cover, and Back-Cover Texts on\nthe back cover.  Both covers must also clearly and legibly identify\nyou as the publisher of these copies.  The front cover must present\nthe full title with all words of the title equally prominent and\nvisible.  You may add other material on the covers in addition.\nCopying with changes limited to the covers, as long as they preserve\nthe title of the Document and satisfy these conditions, can be treated\nas verbatim copying in other respects.\n\nIf the required texts for either cover are too voluminous to fit\nlegibly, you should put the first ones listed (as many as fit\nreasonably) on the actual cover, and continue the rest onto adjacent\npages.\n\nIf you publish or distribute Opaque copies of the Document numbering\nmore than 100, you must either include a machine-readable Transparent\ncopy along with each Opaque copy, or state in or with each Opaque copy\na computer-network location from which the general network-using\npublic has access to download using public-standard network protocols\na complete Transparent copy of the Document, free of added material.\nIf you use the latter option, you must take reasonably prudent steps,\nwhen you begin distribution of Opaque copies in quantity, to ensure\nthat this Transparent copy will remain thus accessible at the stated\nlocation until at least one year after the last time you distribute an\nOpaque copy (directly or through your agents or retailers) of that\nedition to the public.\n\nIt is requested, but not required, that you contact the authors of the\nDocument well before redistributing any large number of copies, to\ngive them a chance to provide you with an updated version of the\nDocument.\n\n\n4. MODIFICATIONS\n\nYou may copy and distribute a Modified Version of the Document under\nthe conditions of sections 2 and 3 above, provided that you release\nthe Modified Version under precisely this License, with the Modified\nVersion filling the role of the Document, thus licensing distribution\nand modification of the Modified Version to whoever possesses a copy\nof it.  In addition, you must do these things in the Modified Version:\n\nA. Use in the Title Page (and on the covers, if any) a title distinct\n   from that of the Document, and from those of previous versions\n   (which should, if there were any, be listed in the History section\n   of the Document).  You may use the same title as a previous version\n   if the original publisher of that version gives permission.\nB. List on the Title Page, as authors, one or more persons or entities\n   responsible for authorship of the modifications in the Modified\n   Version, together with at least five of the principal authors of the\n   Document (all of its principal authors, if it has fewer than five),\n   unless they release you from this requirement.\nC. State on the Title page the name of the publisher of the\n   Modified Version, as the publisher.\nD. Preserve all the copyright notices of the Document.\nE. Add an appropriate copyright notice for your modifications\n   adjacent to the other copyright notices.\nF. Include, immediately after the copyright notices, a license notice\n   giving the public permission to use the Modified Version under the\n   terms of this License, in the form shown in the Addendum below.\nG. Preserve in that license notice the full lists of Invariant Sections\n   and required Cover Texts given in the Document's license notice.\nH. Include an unaltered copy of this License.\nI. Preserve the section Entitled \"History\", Preserve its Title, and add\n   to it an item stating at least the title, year, new authors, and\n   publisher of the Modified Version as given on the Title Page.  If\n   there is no section Entitled \"History\" in the Document, create one\n   stating the title, year, authors, and publisher of the Document as\n   given on its Title Page, then add an item describing the Modified\n   Version as stated in the previous sentence.\nJ. Preserve the network location, if any, given in the Document for\n   public access to a Transparent copy of the Document, and likewise\n   the network locations given in the Document for previous versions\n   it was based on.  These may be placed in the \"History\" section.\n   You may omit a network location for a work that was published at\n   least four years before the Document itself, or if the original\n   publisher of the version it refers to gives permission.\nK. For any section Entitled \"Acknowledgements\" or \"Dedications\",\n   Preserve the Title of the section, and preserve in the section all\n   the substance and tone of each of the contributor acknowledgements\n   and/or dedications given therein.\nL. Preserve all the Invariant Sections of the Document,\n   unaltered in their text and in their titles.  Section numbers\n   or the equivalent are not considered part of the section titles.\nM. Delete any section Entitled \"Endorsements\".  Such a section\n   may not be included in the Modified Version.\nN. Do not retitle any existing section to be Entitled \"Endorsements\"\n   or to conflict in title with any Invariant Section.\nO. Preserve any Warranty Disclaimers.\n\nIf the Modified Version includes new front-matter sections or\nappendices that qualify as Secondary Sections and contain no material\ncopied from the Document, you may at your option designate some or all\nof these sections as invariant.  To do this, add their titles to the\nlist of Invariant Sections in the Modified Version's license notice.\nThese titles must be distinct from any other section titles.\n\nYou may add a section Entitled \"Endorsements\", provided it contains\nnothing but endorsements of your Modified Version by various\nparties--for example, statements of peer review or that the text has\nbeen approved by an organization as the authoritative definition of a\nstandard.\n\nYou may add a passage of up to five words as a Front-Cover Text, and a\npassage of up to 25 words as a Back-Cover Text, to the end of the list\nof Cover Texts in the Modified Version.  Only one passage of\nFront-Cover Text and one of Back-Cover Text may be added by (or\nthrough arrangements made by) any one entity.  If the Document already\nincludes a cover text for the same cover, previously added by you or\nby arrangement made by the same entity you are acting on behalf of,\nyou may not add another; but you may replace the old one, on explicit\npermission from the previous publisher that added the old one.\n\nThe author(s) and publisher(s) of the Document do not by this License\ngive permission to use their names for publicity for or to assert or\nimply endorsement of any Modified Version.\n\n\n5. COMBINING DOCUMENTS\n\nYou may combine the Document with other documents released under this\nLicense, under the terms defined in section 4 above for modified\nversions, provided that you include in the combination all of the\nInvariant Sections of all of the original documents, unmodified, and\nlist them all as Invariant Sections of your combined work in its\nlicense notice, and that you preserve all their Warranty Disclaimers.\n\nThe combined work need only contain one copy of this License, and\nmultiple identical Invariant Sections may be replaced with a single\ncopy.  If there are multiple Invariant Sections with the same name but\ndifferent contents, make the title of each such section unique by\nadding at the end of it, in parentheses, the name of the original\nauthor or publisher of that section if known, or else a unique number.\nMake the same adjustment to the section titles in the list of\nInvariant Sections in the license notice of the combined work.\n\nIn the combination, you must combine any sections Entitled \"History\"\nin the various original documents, forming one section Entitled\n\"History\"; likewise combine any sections Entitled \"Acknowledgements\",\nand any sections Entitled \"Dedications\".  You must delete all sections\nEntitled \"Endorsements\".\n\n\n6. COLLECTIONS OF DOCUMENTS\n\nYou may make a collection consisting of the Document and other\ndocuments released under this License, and replace the individual\ncopies of this License in the various documents with a single copy\nthat is included in the collection, provided that you follow the rules\nof this License for verbatim copying of each of the documents in all\nother respects.\n\nYou may extract a single document from such a collection, and\ndistribute it individually under this License, provided you insert a\ncopy of this License into the extracted document, and follow this\nLicense in all other respects regarding verbatim copying of that\ndocument.\n\n\n7. AGGREGATION WITH INDEPENDENT WORKS\n\nA compilation of the Document or its derivatives with other separate\nand independent documents or works, in or on a volume of a storage or\ndistribution medium, is called an \"aggregate\" if the copyright\nresulting from the compilation is not used to limit the legal rights\nof the compilation's users beyond what the individual works permit.\nWhen the Document is included in an aggregate, this License does not\napply to the other works in the aggregate which are not themselves\nderivative works of the Document.\n\nIf the Cover Text requirement of section 3 is applicable to these\ncopies of the Document, then if the Document is less than one half of\nthe entire aggregate, the Document's Cover Texts may be placed on\ncovers that bracket the Document within the aggregate, or the\nelectronic equivalent of covers if the Document is in electronic form.\nOtherwise they must appear on printed covers that bracket the whole\naggregate.\n\n\n8. TRANSLATION\n\nTranslation is considered a kind of modification, so you may\ndistribute translations of the Document under the terms of section 4.\nReplacing Invariant Sections with translations requires special\npermission from their copyright holders, but you may include\ntranslations of some or all Invariant Sections in addition to the\noriginal versions of these Invariant Sections.  You may include a\ntranslation of this License, and all the license notices in the\nDocument, and any Warranty Disclaimers, provided that you also include\nthe original English version of this License and the original versions\nof those notices and disclaimers.  In case of a disagreement between\nthe translation and the original version of this License or a notice\nor disclaimer, the original version will prevail.\n\nIf a section in the Document is Entitled \"Acknowledgements\",\n\"Dedications\", or \"History\", the requirement (section 4) to Preserve\nits Title (section 1) will typically require changing the actual\ntitle.\n\n\n9. TERMINATION\n\nYou may not copy, modify, sublicense, or distribute the Document\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense, or distribute it is void, and\nwill automatically terminate your rights under this License.\n\nHowever, if you cease all violation of this License, then your license\nfrom a particular copyright holder is reinstated (a) provisionally,\nunless and until the copyright holder explicitly and finally\nterminates your license, and (b) permanently, if the copyright holder\nfails to notify you of the violation by some reasonable means prior to\n60 days after the cessation.\n\nMoreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\nTermination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, receipt of a copy of some or all of the same material does\nnot give you any rights to use it.\n\n\n10. FUTURE REVISIONS OF THIS LICENSE\n\nThe Free Software Foundation may publish new, revised versions of the\nGNU Free Documentation License from time to time.  Such new versions\nwill be similar in spirit to the present version, but may differ in\ndetail to address new problems or concerns.  See\nhttp://www.gnu.org/copyleft/.\n\nEach version of the License is given a distinguishing version number.\nIf the Document specifies that a particular numbered version of this\nLicense \"or any later version\" applies to it, you have the option of\nfollowing the terms and conditions either of that specified version or\nof any later version that has been published (not as a draft) by the\nFree Software Foundation.  If the Document does not specify a version\nnumber of this License, you may choose any version ever published (not\nas a draft) by the Free Software Foundation.  If the Document\nspecifies that a proxy can decide which future versions of this\nLicense can be used, that proxy's public statement of acceptance of a\nversion permanently authorizes you to choose that version for the\nDocument.\n\n11. RELICENSING\n\n\"Massive Multiauthor Collaboration Site\" (or \"MMC Site\") means any\nWorld Wide Web server that publishes copyrightable works and also\nprovides prominent facilities for anybody to edit those works.  A\npublic wiki that anybody can edit is an example of such a server.  A\n\"Massive Multiauthor Collaboration\" (or \"MMC\") contained in the site\nmeans any set of copyrightable works thus published on the MMC site.\n\n\"CC-BY-SA\" means the Creative Commons Attribution-Share Alike 3.0\nlicense published by Creative Commons Corporation, a not-for-profit\ncorporation with a principal place of business in San Francisco,\nCalifornia, as well as future copyleft versions of that license\npublished by that same organization.\n\n\"Incorporate\" means to publish or republish a Document, in whole or in\npart, as part of another Document.\n\nAn MMC is \"eligible for relicensing\" if it is licensed under this\nLicense, and if all works that were first published under this License\nsomewhere other than this MMC, and subsequently incorporated in whole or\nin part into the MMC, (1) had no cover texts or invariant sections, and\n(2) were thus incorporated prior to November 1, 2008.\n\nThe operator of an MMC Site may republish an MMC contained in the site\nunder CC-BY-SA on the same site at any time before August 1, 2009,\nprovided the MMC is eligible for relicensing.\n\n\nADDENDUM: How to use this License for your documents\n\nTo use this License in a document you have written, include a copy of\nthe License in the document and put the following copyright and\nlicense notices just after the title page:\n\n    Copyright (c)  YEAR  YOUR NAME.\n    Permission is granted to copy, distribute and/or modify this document\n    under the terms of the GNU Free Documentation License, Version 1.3\n    or any later version published by the Free Software Foundation;\n    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.\n    A copy of the license is included in the section entitled \"GNU\n    Free Documentation License\".\n\nIf you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,\nreplace the \"with...Texts.\" line with this:\n\n    with the Invariant Sections being LIST THEIR TITLES, with the\n    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.\n\nIf you have Invariant Sections without Cover Texts, or some other\ncombination of the three, merge those two alternatives to suit the\nsituation.\n\nIf your document contains nontrivial examples of program code, we\nrecommend releasing these examples in parallel under your choice of\nfree software license, such as the GNU General Public License,\nto permit their use in free software.\n\n"
  },
  {
    "path": "doc/guide/README.md",
    "content": "# The PreTeXt Guide\n\nPDF and HTML versions of this guide are available at the [PreTeXt](https://pretextbook.org) site in the Documentation area.\n\nIf you wish to build from source, possibly as part of contributing improvements, follow these steps:\n\n1.  To build LaTeX for input to `pdflatex`:\n    cd /path/to/guide\n    pretext build latex -d -w\n1.  And for HTML output:\n    cd /path/to/guide\n    pretext build html -d -w\n1.  The preceeding two steps will attempt to build all of the webwork representations and diagrams needed for your book. You may be missing some of the prerequisites, such as Sage that will need to be installed before a full build can be completed.\n\nIf you are contributing new material, note that there are three important elements in use. Please make use of them in your contribution.\n\n-   `tag` - for element names\n-   `tage` - for names of empty elements\n-   `attr` - for names of attributes\n"
  },
  {
    "path": "doc/guide/appendices/cli-transition.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"cli-transition\">\n  <title>Transitioning to the PreTeXt-CLI</title>\n  <author>Sean Fitzpatrick</author>\n\n  <introduction>\n    <p>\n      This appendix is intended for authors of existing (<q>legacy</q>) <pretext/>\n      projects who want to transition from using <c>xsltproc</c> to the PreTeXt-CLI.\n    </p>\n  </introduction>\n\n  <section xml:id=\"cli-setup\">\n    <title>Setup</title>\n    <p>\n      We will assume you have the following:\n      <ul>\n        <li>An existing <pretext/> project, in a folder called <c>PROJECT</c>.</li>\n        <li>A Python installation at version 3.8 or newer.</li>\n        <li>The PreTeXt-CLI, installed using the instructions in <xref ref=\"processing-CLI\"/>.</li>\n      </ul>\n    </p>\n\n    <p>\n      For usage of the CLI, see <xref ref=\"processing-CLI\"/>.\n    </p>\n\n    <p>\n      The first thing we will do is to create a new folder.\n      Call this folder <c>PROJECT-CLI</c>, and put it at the same level as the <c>PROJECT</c> folder.\n      In a terminal (or in Python), enter the <c>PROJECT-CLI</c> directory,\n      and run the <c>pretext new book</c> command.\n      This will create the directory structure that the PreTeXt-CLI expects.\n    </p>\n\n    <p>\n      You now should see the following:\n      <ul>\n        <li>A <c>project.ptx</c> file</li>\n        <li>An <c>assets</c> folder</li>\n        <li>A <c>generated-assets</c> folder</li>\n        <li>A <c>publication</c> folder</li>\n        <li>A <c>source</c> folder</li>\n      </ul>\n    </p>\n\n    <p>\n      Within the <c>source</c> folder, there will be a file called <c>main.ptx</c>,\n      and within the <c>publication</c> folder, there will be a publisher file,\n      called <c>publication.ptx</c>.\n    </p>\n  </section>\n\n  <section xml:id=\"cli-transfer\">\n    <title>Transferring files</title>\n    <p>\n      In your original project, you probably have one folder containing your <pretext/> source,\n      and you may have other folders containing external files,\n      such as images, or code for interactive elements.\n      If you use additional <init>XSL</init>, such as a LaTeX style sheet,\n      you may have a folder for those files as well.\n    </p>\n\n    <p>\n      You want to copy your files as follows:\n      <ol>\n        <li>\n          <p>\n            Copy all of your <pretext/> source files into <c>PROJECT-CLI/source</c>.\n          </p>\n\n          <p>\n            If you already have a file called <c>main.ptx</c>,\n            it is fine to let this file overwrite the one created by the <c>pretext init</c> command.\n            If you do not have such a file, you can either delete <c>main.ptx</c>,\n            or rename your top-level file to <c>main.ptx</c>.\n          </p>\n\n          <p>\n            <alert>Note:</alert> if you do not end up with a file called <c>main.ptx</c>,\n            or if your file with this name is not your top-level file,\n            see <xref ref=\"cli-publication\"/> for details on how to edit the <c>project.ptx</c> file accordingly.\n          </p>\n        </li>\n        <li>\n          <p>\n            Copy each folder containing external assets such as images into the <c>assets</c> folder.\n            Note that you want to copy the <em>folders</em> and not the contents of those folders.\n            This should result in folders such as <c>PROJECT-CLI/assets/images</c>.\n          </p>\n        </li>\n        <li>\n          <p>\n            If applicable, copy over your <c>xsl</c> folder, and any other relevant folders.\n            But do not copy over your <c>output</c> or <c>publication</c> folders.\n          </p>\n        </li>\n      </ol>\n    </p>\n  </section>\n\n  <section xml:id=\"cli-publication\">\n    <title>Updating docinfo, the publication file, and the project manifest</title>\n    <p>\n      Open both your original <c>publication.ptx</c> file,\n      and the one created by the <c>pretext init</c> command.\n      The file created by <c>pretext init</c> will contain some directory management details, such as:\n      <cd>\n        <cline>&lt;source&gt;</cline>\n        <cline>    &lt;directories external=\"../assets\" generated=\"../generated-assets\"/&gt;</cline>\n        <cline>&lt;/source&gt;</cline>\n      </cd>\n    </p>\n\n    <p>\n      If your publication file did not already have a <tag>source</tag> element,\n      copy this from the auto-generated publisher file into your own.\n      If it does, adjust your existing content to match the director structure needed by the PreTeXt-CLI.\n    </p>\n\n    <p>\n      When this is done, replace the publication file created by <c>pretext init</c> with your own.\n    </p>\n\n    <p>\n      If your <tag>docinfo</tag> contains a <tag>brandlogo</tag>,\n      you may need to change the <attr>source</attr> attribute from <c>logo.png</c>\n      to <c>images/logo.png</c>, where <c>logo.png</c> is the name of the file used for your brand logo.\n      This assumes that the file you use for your brand logo is contained in\n      <c>PROJECT-CLI/assets/images/</c>.\n    </p>\n\n    <p>\n      Next, we need to update the <c>project.ptx</c> file that was created by <c>pretext init</c>.\n      Opening the file, you will see there are several components: <c>html</c>,\n      <c>latex</c>, <c>pdf</c>, and <c>subset</c>.\n      The <c>subset</c> component is quite useful for editing:\n      specify an <c>xml:id</c> from your book (such as a chapter or section),\n      and you can use the command <c>pretext build subset</c> to do a partial build of your project.\n    </p>\n\n    <p>\n      In each component, ensure that the <tag>source</tag> tag points to the top level file of your project.\n      By default, this is <c>source/main.ptx</c>,\n      but if you kept a different file name during the step in <xref ref=\"cli-transfer\"/>,\n      you will need to change this line to point to the correct file.\n    </p>\n\n    <p>\n      Similarly, ensure that the <tag>publication</tag> tag points to the correct publication file.\n    </p>\n\n    <p>\n      If you use any string parameters that cannot be transitioned to the publisher file,\n      you can add them in your <c>project.ptx</c> manifest.\n      For example, if you have WeBWorK problems and use the static preview feature,\n      your <c>xsltproc</c> executable would have contained\n      <cd>\n        --stringparam webwork.divisional.static no\n      </cd>\n      In the <tag>html</tag> section of <c>project.ptx</c>, you can add\n      <cd>\n        &lt;stringparam key=\"webwork.divisional.static\" value=\"no\"/&gt;\n      </cd>\n      You can also specify a WeBWorK server as a string parameter,\n      using <c>key=\"server\" </c>, with <attr>value</attr> set to the server you use.\n    </p>\n\n    <p>\n      Finally, if there is any component for which you use additional <init>XSL</init>,\n      you can specify this in the manifest as well.\n      For example, if you have a LaTeX style sheet <c>xsl/latex-style.xsl</c>,\n      then in both the <tag>latex</tag> and <tag>pdf</tag> sections,\n      you should add the line\n      <cd>\n        &lt;xsl&gt;xsl/latex-style.xsl&lt;/xsl&gt;\n      </cd>\n      See <xref ref=\"cli-xsl\"/> below for further details on using custom <init>XSL</init>.\n    </p>\n  </section>\n\n  <section xml:id=\"cli-xsl\">\n    <title>Updating your custom <init>XSL</init></title>\n    <p>\n      Because the PreTeXt-CLI uses its own copy of <pretext/>,\n      we have to change how the custom <init>XSL</init> imports the <pretext/> style sheets.\n    </p>\n\n    <p>\n      At time of writing, import of the <c>entities.ent</c> file,\n      which defines all the different components of <pretext/>,\n      does not seem to work automatically. Our first step will be to make a copy of this file,\n      and place it in the <c>xsl</c> folder, next to our custom <init>XSL</init> style sheet.\n    </p>\n\n    <p>\n      If you still have a copy of the <pretext/> repository,\n      you can copy <c>entities.ent</c> from <c>pretext/xsl</c>.\n      If not, open a Python terminal, and then run:\n      <cd>\n        <cline>from pretext import static</cline>\n        <cline>static.core_xsl('pretext-latex.xsl',as_path=True)</cline>\n      </cd>\n      This will output the path to the <pretext/> <init>XSL</init>,\n      and in that folder you can find <c>entities.ent</c> and copy it to <c>PROJECT-CLI/xsl</c>.\n    </p>\n\n    <p>\n      Next, open your custom <init>XSL</init> file. You will need to change two lines.\n      First, you will have a line that looks something like\n      <cd>\n        &lt;!ENTITY % entities SYSTEM \"../xsl/entities.ent\"/&gt;\n      </cd>\n      Change the string <c>../xsl/entities.ent</c> to simply <c>entities.ent</c>.\n      (Alternatively, instead of copying this file as above, you could enter the full path.)\n    </p>\n\n    <p>\n      Second, for each style sheet that you import, you will have a line that looks something like\n      <cd>\n        &lt;xsl:import href=\"../xsl/pretext-latex.xsl\"/&gt;\n      </cd>\n      if you are using custom <init>XSL</init> for LaTeX.\n      Replace <c>href=\"../xsl/pretext-latex.xsl\" </c> with <c>pretext-href=\"pretext-latex.xsl\" </c>.\n      This tells the PreTeXt-CLI to import the <init>XSL</init> style sheet that it ships with.\n    </p>\n  </section>\n  <conclusion>\n    <p>\n      At this point, you should be ready to try building your project with the PreTeXt-CLI.\n      The advice above is based on a particular case study, using APEX Calculus.\n      The requirements of your particular project may differ somewhat from the steps presented here.\n    </p>\n\n    <p>\n      As development proceeds on the PreTeXt-CLI, some of this advice may change.\n      In particular, in a future version,\n      it should no longer be necessary to make a copy of <c>entities.ent</c>.\n    </p>\n  </conclusion>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/cli-v1vsv2.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"cli-v1vsv2\">\n  <title>CLI versions 1 vs 2</title>\n  <author>Oscar Levin</author>\n\n\n    <p>\n      This appendix describes the differences between the PreTeXt-CLI version 1.x and 2.x.\n      Generally, projects started in version 1 of the CLI will continue to work in version 2.\n    </p>\n\n    <p>\n      The primary difference between the versions of the CLI is the format of the project manifest (<c>project.ptx</c>): in version 1, most properties were described as <init>XML</init> elements, where they are now given as attributes.  The functions of each attribute for the version 2 manifest is described in <xref ref=\"cli-project-manifest\"/>.  Here we illustrate how these relate to the <em>legacy</em> elements.\n    </p>\n\n    <p>\n      In <xref ref=\"listing-v1-manifest\"/> we show a project manifest containing almost all options available.  Then <xref ref=\"listing-v2-manifest\"/> shows the same project manifest in version 2 format.\n    </p>\n\n    <listing xml:id=\"listing-v1-manifest\">\n      <title>Example of version 1 project manifest</title>\n    <program language=\"xml\">\n      <code>\n      <![CDATA[\n      <?xml version=\"1.0\" encoding=\"utf-8\"?>\n      <project>\n        <targets>\n          <target name=\"web\">\n            <format>html</format>\n            <source>source/main.ptx</source>\n            <publication>publication/publication.ptx</publication>\n            <output-dir>output/web</output-dir>\n          </target>\n          <target name=\"print\" pdf-method=\"xelatex\">\n            <format>pdf</format>\n            <source>source/main.ptx</source>\n            <publication>publication/publication.ptx</publication>\n            <output-dir>output/print</output-dir>\n            <output-filename>mybook.pdf</output-filename>\n          </target>\n          <target name=\"runestone\">\n            <format>html</format>\n            <source>source/main.ptx</source>\n            <publication>publication/rs-publication.ptx</publication>\n            <output-dir>published/mydoc-id</output-dir>\n            <stringparam key=\"author.tools\" value=\"yes\"/>\n            <stringparam key=\"html.css.extra\" value=\"external/custom-styles.css\" />\n            <xsl>xsl/runestone.xsl</xsl>\n          </target>\n        </targets>\n        <executables>\n          <latex>latex</latex>\n          <pdflatex>pdflatex</pdflatex>\n          <xelatex>xelatex</xelatex>\n          <asy>asy</asy>\n          <sage>sage</sage>\n          <pdfpng>convert</pdfpng>\n          <pdfeps>pdftops</pdfeps>\n          <node>node</node>\n          <liblouis>file2brl</liblouis>\n        </executables>\n      </project>\n      ]]>\n    </code>\n    </program>\n    </listing>\n\n    <listing xml:id=\"listing-v2-manifest\">\n      <title>Example of version 2 project manifest</title>\n    <program language=\"xml\">\n      <code>\n      <![CDATA[\n      <?xml version=\"1.0\" encoding=\"utf-8\"?>\n      <project ptx-version=\"2\">\n        <targets>\n          <target\n            name=\"web\"\n            format=\"html\"\n            source=\"source/main.ptx\"\n            publication=\"publication/publication.ptx\"\n            output-dir=\"output/web\" />\n          <target\n            name=\"print\"\n            format=\"pdf\"\n            latex-engine=\"xelatex\"\n            source=\"source/main.ptx\"\n            publication=\"publication/publication.ptx\"\n            output-dir=\"output/print\"\n            output-filename=\"mybook.pdf\" />\n          <target\n            name=\"runestone\"\n            format=\"html\"\n            platform=\"runestone\"\n            source=\"source/main.ptx\"\n            publication=\"publication/rs-publication.ptx\"\n            output-dir=\"published/mydoc-id\"\n            xsl=\"xsl/runestone.xsl\">\n            <stringparams author.tools=\"yes\" html.css.extra=\"external/custom-styles.css\" />\n          </target>\n        </targets>\n      </project>\n      ]]>\n      </code>\n    </program>\n    </listing>\n\n    <p>\n      One advantage of version 2 of the CLI is that many of the options are now optional, or can be applied at the project level to all targets.  The example shown above can be further simplified, as shown in <xref ref=\"listing-v2-manifest-simple\"/>, since most values are the defaults anyway.\n    </p>\n\n    <listing xml:id=\"listing-v2-manifest-simple\">\n      <title>Simplified project manifest in version 2 format</title>\n    <program language=\"xml\">\n      <code>\n      <![CDATA[\n      <?xml version=\"1.0\" encoding=\"utf-8\"?>\n      <project ptx-version=\"2\" publication=\"publication\">\n        <targets>\n          <target\n            name=\"web\"\n            format=\"html\" />\n          <target\n            name=\"print\"\n            format=\"pdf\"\n            output-filename=\"mybook.pdf\" />\n          <target\n            name=\"runestone\"\n            format=\"html\"\n            platform=\"runestone\"\n            publication=\"rs-publication.ptx\"\n            output-dir=\"published/mydoc-id\"\n            xsl=\"xsl/runestone.xsl\">\n            <stringparams author.tools=\"yes\" html.css.extra=\"external/custom-styles.css\" />\n          </target>\n        </targets>\n      </project>\n      ]]>\n      </code>\n    </program>\n    </listing>\n\n    <p>\n      Attributes for the <tag>project</tag> element that describe paths are common roots for any paths specified in <tag>target</tag> elements.\n    </p>\n\n    <p>\n      Notice that there is no longer a place to specify your <em>executables</em> in the manifest.  This is because your executables are generally specific to a particular system, not a project.  So instead, you specify executables in the file <c>executables.ptx</c> which is ignored by git.  As with the version 2 manifest, the name or path to the executables are given as values of attributes.  An example is shown in <xref ref=\"listing-v2-executables\"/>.\n    </p>\n\n\n\n    <p>\n      The project manifest can be further simplified by setting attributes for the <tag>project</tag> element.  See <xref ref=\"cli-project-manifest\"/> for details.\n    </p>\n\n    <p>\n      Hopefully the examples above make it clear how the two versions compare for basic options.  Below we list a few more differences between how you specify options in the version 1 and version 2 manifests.\n      <dl>\n        <li>\n          <title><attr>ptx-version</attr></title>\n          <p>\n            For the CLI to know you are using a version 2 manifest, you <em>must</em> include the <attr>ptx-version</attr> attribute in the <tag>project</tag> element, with value <q>2</q>.\n          </p>\n        </li>\n        <li>\n          <title>string parameters</title>\n          <p>\n            In version 1, you would specify string parameters as a sequence of <tag>stringparam</tag> elements, each with <attr>key</attr> and <attr>value</attr> attributes.  In version 2, you use a single <tag>stringparams</tag> element with attributes for each key set to the value for the string parameter's value.  See the example in <xref ref=\"listing-v2-manifest\"/>\n          </p>\n        </li>\n        <li>\n          <title>zipped output</title>\n          <p>\n            In version 1, you could get a zipped version of your html output by setting the format of the target to <c>html-zipped</c>.  In version 2, this is replaced by setting the <attr>compression</attr> attribute to <q>zip</q> in the <tag>target</tag> element.\n          </p>\n        </li>\n        <li>\n          <title>Braille options</title>\n          <p>\n            In version 2, you specify what embossing method you use for Braille formatted targets using the <attr>braille-mode</attr> attribute, with value either <q>emboss</q> or <q>electronic</q>.\n          </p>\n        </li>\n        <li>\n          <title>WeBWorK Sets</title>\n          <p>\n            In version 1, you could generate webwork sets using the \"webwork-sets\" format.  In version 2, this is replaced by setting the <attr>format</attr> attribute to <q>webwork</q> in the <tag>target</tag> element.  Such a target can be compressed using the <attr>compression</attr> attribute.\n          </p>\n\n        </li>\n        <li>\n          <title>Local asymptote</title>\n          <p>\n            In version 2, you can require that asymptote elements are generated using a local version of asymptote (instead of the server).  You can specify this by setting the <attr>asy-method</attr> attribute to <q>local</q>, in either the <tag>target</tag> element, or as an attribute of <tag>project</tag> to use this method for all targets.\n          </p>\n        </li>\n      </dl>\n    </p>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/editors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"editors\">\n    <title>Text Editors, Spell Check</title>\n\n    <introduction>\n        <p>This appendix has information about using various text editors efficiently with <pretext/> source, along with suggestions for spell-checking.  The choice of an editor that suits you is a big part of being a productive author. We are partial to Visual Studio Code because it is available free, is open-source, has a range of features, has community support (plug-ins), and has cross-platform support (Linux, Mac, and Windows).  So we lead with Visual Studio Code, but also include Sublime Text, Emacs, XML Copy Editor, and vi/vim.  A summary table of schema-aware editors can be found at <xref ref=\"editors-supporting-schema\" />.</p>\n    </introduction>\n\n    <section xml:id=\"vscode\">\n        <title>Visual Studio Code</title>\n        <author>Oscar Levin</author>\n        <p>\n            VS Code is a free and open source, cross platform text editor from Microsoft.  The package <url href=\"https://marketplace.visualstudio.com/items?itemName=oscarlevin.pretext-tools\" visual=\"marketplace.visualstudio.com/items?itemName=oscarlevin.pretext-tools\">PreTeXt-tools</url> provides highlighting and snippets for <pretext/> by extending the XML language support of VS Code.\n        </p>\n    </section>\n\n    <section xml:id=\"section-sublime-text\">\n        <title>Sublime Text</title>\n        <author>Dave Rosoff</author>\n\n        <introduction>\n            <p>Sublime Text is a fast cross-platform editor with thousands of user-contributed packages implemented in its Python <init>API</init>. It is not free or open-source, although most of the user-contributed packages are both. Development is active as of December<nbsp />2024. However after build 4180 of Sublime Text 4, the PreTeXt support is broken.</p>\n            <p>Here we outline several of the most important Sublime Text features that will help you to minimize your typing overhead and work more efficiently with your <pretext/> project. We also introduce the no longer maintained PreTeXtual package designed to help <pretext/> authors work more efficiently.</p>\n            <p>Sublime Text 2, 3 and 4 are available for an unlimited evaluation period, but a license must be purchased for continued use.</p>\n        </introduction>\n        <subsection xml:id=\"subsection-settings\">\n            <title>Settings</title>\n            <p>Sublime Text settings are stored and managed in a collection of <init>JSON</init> files as key-value pairs, in files that have a <c>.sublime-settings</c> extension. You change the settings by visiting these files and editing the values away from their defaults.</p>\n            <p>To edit your Sublime Text settings, you can use the Preferences/Settings <mdash /> User menu (Sublime Text/Preferences<ellipsis /> on <init>OS X</init>). Make sure that when you go to edit Settings, you always choose the User option. Changes to Default settings files will be overwritten when Sublime Text updates. It is recommended to use the Default files to see what settings are available to change. There are a lot, and not all are documented.</p>\n            <p>All Sublime Text users should be aware that a particular view (buffer) may receive settings in several different ways, e.g., from global default settings, from global <init>OS</init>-specific settings, from package-provided settings, from user-provided settings, and so on.</p>\n            <p>Key bindings are also stored in files with a similar format. There\n            are only a limited number of keyboard shortcuts available, although Sublime Text does support multi-step shortcuts like Emacs. If you find that you wish to reassign shortcuts, this is certainly possible through the Preferences/Key Bindings <mdash /> User menu (Sublime Text/Preferences<ellipsis /> on <init>OS X</init>).</p>\n        </subsection>\n        <subsection xml:id=\"subsection-package-control\">\n            <title>Package Control</title>\n            <p>Sublime Text's Python <init>API</init> exposes a lot of the Sublime Text internals to plugin and package authors. Packages extend Sublime Text's functionality, much like Emacs major modes. A package usually consists of some Python scripts that define Sublime Text events and actions, some text-based configuration files (<init>XML</init>/<init>JSON</init>/<init>YAML</init> files defining language syntax, symbol recognition, custom snippet insertion triggers and contexts, keybindings for new and old commands, <etc />), and perhaps some other stuff too. These typically get bundled into a <c>.zip</c> archive that is disguised with the unusual extension <c>.sublime-package</c>. These archives live in the Packages directory, accessible via the Preferences menu (the Sublime Text/Preferences menu on <init>OS X</init>). Sublime Text monitors the <c>Packages</c> directory for changes and reloads all affected plugins on the fly.</p>\n            <p>The first thing you should do after installing Sublime Text is install the Package Control package. This package manager operates within Sublime Text to automatically fetch updates for packages you have installed (unless you disable this feature). You can also list currently installed packages, find new packages to investigate, remove packages, <etc /></p>\n            <p>Thousands of user-contributed packages are available for easy installation via Package Control. It is possible to maintain packages by hand, since most package authors publish via GitHub, but Package Control is the universally recommended method of obtaining, managing, and removing packages for your installation.<ol>\n                <li><p>Visit the <url href=\"https://packagecontrol.io/\" visual=\"packagecontrol.io/\">Package Control download site</url>.</p></li>\n                <li><p>Find the Sublime Text console command (make sure the correct version of Sublime Text is selected) and copy it to the clipboard.</p></li>\n                <li><p>Open the Sublime Text console (<c>Ctrl-`</c>) and paste the command into the window that appears, then press <c>Enter</c>.</p></li>\n            </ol></p>\n            <p>Having installed Package Control, you can use the command palette to deploy its commands, such as Install Package, List Packages, and Remove Package. See the documentation for more. A few packages that are especially useful are recommended throughout this section, and summarized in <xref ref=\"subsection-recommended-packages\" />.</p>\n        </subsection>\n        <subsection xml:id=\"subsection-project-management\">\n            <title>Project Management</title>\n            <introduction>\n                <p>Like many modern editors, Sublime Text has good project management features. These allow files that are part of a larger project to work together. For example, Sublime's Goto Anything command allows quick access to any file in a project. The Find in Project command permits users to search and replace (with or without regular expressions) across an entire project. Matches are displayed in a text buffer and double-clicking opens the relevant file at the appropriate position.</p>\n                <p>The sidebar provides a convenient view of all of the files and directories in a project<mdash />or, if you like, a filtered view, where files of your choice are excluded. The MBXTools package (<xref ref=\"subsection-mbxtools\" />) also makes some use of project-specific settings in order to provide some of its functionality.</p>\n            </introduction>\n            <subsubsection xml:id=\"subsubsection-the-open-folder-command\">\n                <title>The Open Folder Command</title>\n                <p>The easiest way to make use of the project management functionality is to store related files in a single directory and its subdirectories. If you then use the File/Open Folder<ellipsis /> command, the entire directory is opened and all its subdirectories and files are shown in the sidebar. You can toggle the sidebar with either the command palette or directly with <c>Ctrl+K, Ctrl+B</c> (<c>Cmd+K, Cmd+B</c> on <init>OS X</init>).</p>\n                <p>By making use of this command you are already using project management, even if you never save your project. Sublime Text always has an implicit project open if you don't open an explicit one. This is good enough for many users a lot of the time, since it provides the most useful feature (Find/Find in Project). The Goto/Go To Symbol in Project command is also useful, but not fully implemented in MBXTools (<xref ref=\"subsection-mbxtools\" />). Some of the benefits of explicit project management are outlined below.</p>\n            </subsubsection>\n            <subsubsection xml:id=\"subsubsection-explicit-projects\">\n                <title>Explicit Projects</title>\n                <p>To save your project explicitly, use the Project menu to choose Save As Project<ellipsis /> and choose an appropriate name and location. For a <pretext /> <init>XML</init> project, this would probably be the same name and location as the document root file. Use the Project menu commands to open and close your project.</p>\n                <p>There are a few benefits to using an explicit project to group files.<ul>\n                    <li><p>You can group together files and folders in different parts of the file system, instead of being restricted to subtrees.</p></li>\n                    <li><p>You can have project-specific settings that are different from Sublime Text's defaults and different from your user preferences (<xref provisional=\"subsection-settings\" />).</p></li>\n                    <li><p>Sublime's project workspaces will remember which files you had open when you last closed the project, and at which positions.</p></li>\n                    <li><p>If you get very fancy, you can have multiple workspaces for the same project, with different filters and views for different purposes.</p></li>\n                    <li><p>It is fine to include <c>.sublime-project</c> files in Git repositories, but <c>.sublime-workspace</c> files should <alert>never</alert> be so included (according to the Sublime Text documentation).</p></li>\n                </ul></p>\n            </subsubsection>\n            <subsubsection xml:id=\"subsubsection-using-the-sidebar\">\n                <title>Using the Sidebar</title>\n                <p>The project sidebar allows you to view the entire directory tree (rooted at the folder you opened with the Open Folder command), or, if you've opened an explicit project as described above, all of its files and folders. You can use the sidebar to copy, move, rename, delete, and duplicate files, for example, as well as opening them.</p>\n                <p>The package SideBarEnhancements is highly recommended (install via Package Control). It makes the sidebar much more useful.</p>\n                <p>An alternative to the sidebar that Emacs users especially will find helpful is the <url href=\"https://github.com/daverosoff/dired\" visual=\"github.com/daverosoff/dired\">dired package</url>. The link is to a git repository since the package is no longer available from Package Control. This package allows you to browse the directory tree in a Sublime Text buffer. You can rename and move files within it<mdash />using all your favorite Sublime commands, including multiple selections (<xref ref=\"subsection-multiple-selections\" />). You might also try the SublimeFileBrowser package, which is actively maintained, available in Package Control, and seems to provide similar functionality.</p>\n            </subsubsection>\n        </subsection>\n        <subsection xml:id=\"subsection-multiple-selections\">\n            <title>Multiple selections</title>\n            <p>Multiple selections are the single most useful and irreplaceable feature of Sublime Text, the one that will keep you coming back. From the documentation:</p>\n            <blockquote>\n                <p>Any praise about multiple selections is an understatement.</p>\n            </blockquote>\n            <p>The base functionality of multiple selections is simple. Hold down the <c>Ctrl</c> key (<c>Cmd</c> on <init>OS X</init>), and click somewhere in the open view to get a second cursor. Continue to add more cursors. All of them will behave together when you type: text will be inserted, most snippets or other text commands function as usual, etc. Even mouse commands work in an intuitive way with multiple selections. </p>\n            <p>It is hard to explain exactly what makes multiple selections so powerful. You just have to try it for yourself. Here is a typical example. In a structured document, many bits of text occur quite frequently<mdash />element and attribute names, for example. You may want to update several occurrences of a fragment at once<mdash />making several identical changes. Sublime's Quick Add Next command (<c>Ctrl+D</c>/<c>Cmd+D</c>) makes this a snap.<ol>\n                <li>\n                    <p>Place the caret somewhere in the word you'd like to modify.</p>\n                </li>\n                <li>\n                    <p>Use Quick Add Next to expand your (empty) selection to the current word.</p>\n                </li>\n                <li>\n                    <p>Use Quick Add Next again to add the next instance to the selection, which will then typically be disconnected.</p>\n                </li>\n                <li>\n                    <p>Continue to Quick Add Next as many times as you like. Use Quick Skip Next (<c>Ctrl+K, Ctrl+D</c>/<c>Cmd+K, Cmd+D</c>) to jump over instances you would like to leave alone. If you go too far and select in error, hit <c>Ctrl+U/Cmd+U</c> to undo.</p>\n                </li>\n                <li>\n                    <p>Make your modification, only one time.</p>\n                </li>\n            </ol></p>\n            <p>Another example that occurs frequently when authoring <init>XML</init> is when you use the Wrap with Tag snippet (<c>Alt+Shift+W</c>/<c>Ctrl+Shift+W</c>). This snippet wraps the selection(s) in a <tag>p</tag> tag, with the tag name highlighted in both the start and end tags. If the <c>p</c> element is not what you wanted, just type. Both tags are replaced. This is a huge benefit to the <init>XML</init> author that makes essential use of multiple selections, even though you are barely aware of this as you use the feature.</p>\n            <p>Column selection allows you to select a rectangular area of a file.\n            This is unbelievably useful when editing a structured document. There\n            are lots of ways to do it (<url\n            href=\"http://docs.sublimetext.info/en/latest/editing/editing.html\">see the Sublime Text documentation</url> for an almost exhaustive list), but the most frequently used is to hold down <c>Shift</c> while clicking and dragging with the right mouse button (on <init>OS X</init>, hold down <c>Option</c> while dragging with the right mouse button). See the documentation for keyboard-based shortcuts.</p>\n            <p>Column selection becomes even more useful when used in combination with the keyboard shortcuts for moving and selecting, such as <c>Ctrl+Shift+Right</c> (select to end of word) and <c>Shift+End</c> (select to end of line).</p>\n            <p>Yet another example of the appallingly great utility of multiple selection comes when copying and pasting from a different file format. Suppose you have copied some lines of text and wish each such line to become a list item in your <pretext /> source.<ol>\n                <li>\n                    <p>Use column selection, as described above, to select each line individually.</p>\n                </li>\n                <li>\n                    <p>Use Wrap with Tag to wrap each of the selected lines with matched begin/end <tag>li</tag> tags, all at once.</p>\n                </li>\n                <li>\n                    <p>Now you have to select the lines again, to wrap them with matched begin/end <tag>p</tag> tags. First, hit <c>Shift+End</c> to select to end of line.</p>\n                </li>\n                <li>\n                    <p>If your lines are wrapped, you may need to hit <c>Shift+End</c> again to get to the end of the wrapped lines.</p>\n                </li>\n                <li>\n                    <p>Now you've selected too far: the <c>&lt;/li&gt;</c> are selected as well. Hold down <c>Ctrl+Shift</c> and hit the left arrow twice (unselect by word). (After a little practice, steps like this seem automatic.)</p>\n                </li>\n                <li>\n                    <p>Use Wrap with Tag to wrap each of the selected lines with matched begin/end <tag>p</tag> tags, all at once.</p>\n                </li>\n            </ol></p>\n            <p>This does take a little mouse-work, but the keystroke savings can be considerable. (The Emmet package, described in <xref ref=\"subsection-emmet\" />, provides an even quicker way to do this task and much more complicated ones.)</p>\n            <p>There are so many incredibly handy ways to use multiple selections that we will forgo any further examples to leave the reader the pleasure of discovering her own favorites. One particularly helpful package is Text Pastry, which provides some auto-numbering and text insertion commands that work nicely with multiple selections. There are also a handful of packages that extend multiple selection functionality, such as PowerCursors and MultiEditUtils. PowerCursors allows you to add cursors and manipulate them without using the mouse. MultiEditUtils provides additional text processing commands designed to work with multiple selections.</p>\n        </subsection>\n        <subsection xml:id=\"subsection-emmet\">\n            <title>Emmet</title>\n            <p>Emmet is the most downloaded plugin for Sublime Text (1.82 million installs via Package Control). It is mostly used by HTML and CSS authors and provides a lot of functionality for them. It is also useful for writing <init>XML</init>, as we see below. The main benefits of working with Emmet are ease of tag creation, manipulation, and removal.</p>\n            <p>Emmet by default overrides Sublime's binding for the <c>Tab</c> key, endowing it with new behavior (the command Expand Abbreviation). This new behavior is to create a matching <init>XML</init> tag pair for whatever word is to the left of the caret, or with whatever words are selected. For example, if you were to type <q>ol</q> and press the <c>Tab</c> key, the resulting text would be<cd>&lt;ol&gt;&lt;/ol&gt;</cd>with the caret positioned between the two newly created tags. Pressing <c>Tab</c> a further time moves the caret to the right of the end tag.</p>\n            <p>Emmet will produce any word it does not recognize into a matched tag pair when the Expand Abbreviation command is run. Some <init>XML</init> elements are empty, though. Within a matched tag pair, the command Split/Join Tag (<c>Ctrl+Shift+`</c>/<c>Cmd+Shift+`</c>) will contract it into an empty tag, removing any text between the existing begin and end tags. (If the caret is <em>inside</em> a tag for an empty element, this command replaces the empty element with a matching begin/end tag pair.)</p>\n            <p>The default behavior (creating tag pairs whenever <c>Tab</c> is pressed) interferes with Sublime Text's usual Tab-completion, which may be undesirable. It may be disabled by setting<cd>\"disabled_keymap_actions\": \"expand_abbreviation_by_tab\"</cd>in the Preferences/Package Settings/Emmet/Settings <mdash /> User file. The functionality of Expand Abbreviation will still be available through <c>Ctrl+E</c>.</p>\n            <p>For a more involved example of abbreviations, suppose you have pasted the items of an ordered list. Now you need to structure it with <c>ol</c>, <c>li</c>, and so on.</p>\n            <pre>\n                Lists are often good.\n                You can provide list items with &lt;c&gt;@xml:id&lt;/c&gt;.\n                You probably don't want to number them, though.\n            </pre>\n            <p>The desired output is:</p>\n            <pre>\n                &lt;ol&gt;\n                    &lt;li xml:id=\"item1\"&gt;Lists are often good.&lt;/li&gt;\n                    &lt;li xml:id=\"item2\"&gt;You can provide list items with &lt;c&gt;@xml:id&lt;/c&gt;.&lt;/li&gt;\n                    &lt;li xml:id=\"item3\"&gt;You probably don't want to number them, though.&lt;/li&gt;\n                &lt;/ol&gt;\n            </pre>\n            <p>Using Emmet, one produces it by executing the Wrap as you Type command (<c>Ctrl+Shift+G</c>/<c>Ctrl+W</c>) and entering the following expression in the minibuffer.</p>\n            <pre>\n                ol&gt;li[xml:id=item$]*&gt;p\n            </pre>\n            <p>The <c>&gt;</c> symbol denotes a child element, the square brackets (with or without assignment) denote an attribute list, the <c>$</c> provides the line-based numbering, and the <c>*</c> specifies wrapping each selected line with the indicated subtree (so each line is wrapped with <tag>li</tag><tag>p</tag>, instead of the entire selection).</p>\n            <p>Emmet can produce a large hierarchy of nested <init>XML</init> tags at various levels using this abbreviation syntax. For example, suppose you know that you will need to produce a tag structure of the following form.</p>\n            <pre>\n                &lt;section xml:id=\"\"&gt;\n                    &lt;introduction&gt;\n                        &lt;p&gt;&lt;/p&gt;\n                    &lt;/introduction&gt;\n                    &lt;subsection xml:id=\"\"&gt;\n                        &lt;p&gt;&lt;/p&gt;\n                        &lt;p&gt;&lt;/p&gt;\n                        &lt;figure&gt;&lt;/figure&gt;\n                        &lt;p&gt;&lt;/p&gt;\n                        &lt;ol&gt;\n                            &lt;li&gt;&lt;/li&gt;\n                            &lt;li&gt;&lt;/li&gt;\n                            &lt;li&gt;&lt;/li&gt;\n                        &lt;/ol&gt;\n                    &lt;/subsection&gt;\n                    &lt;conclusion&gt;\n                        &lt;p&gt;&lt;/p&gt;\n                    &lt;/conclusion&gt;\n                &lt;/section&gt;\n            </pre>\n            <p>Admittedly, this is a bit much, but it makes the point. The Emmet <q>abbreviation</q> for this structure is:</p>\n            <pre>section[xml:id]&gt;introduction&gt;p^(subsection[xml:id]&gt;p*2+figure+p+ol&gt;li*3)^^conclusion&gt;p</pre>\n            <p>Upon typing this string and placing the caret to the right of it, hit <c>Ctrl+E</c> (or <c>Tab</c>, if you didn't disable the Emmet default). The entire tree structure is created immediately, with tab stops for the missing attribute values and for each matching begin/end pair.</p>\n            <p>The Expand Abbreviation As You Type command allows you to tweak such abbreviations interactively. Hit <c>Ctrl+Alt+Enter</c> and type the expression above into the minibuffer at the bottom of the window, watching the tree appear as you type. </p>\n            <p>Emmet is a very powerful package that can do much more than is outlined here. However, it is by default mostly adapted to writing CSS and HTML. Customizing it to work more directly with <pretext /> is an ongoing project. You can discover more about Emmet by examining the <url href=\"http://docs.emmet.io/\" visual=\"docs.emmet.io/\">Emmet documentation</url> or poking around in the Settings and Keymap files.</p>\n        </subsection>\n        <subsection xml:id=\"subsection-mbxtools\">\n            <title>PreTeXtual<mdash />a Sublime Text package for <pretext/></title>\n            <introduction>\n                <p>PreTeXtual is a Sublime Text package designed to assist authors using <pretext/>. It is no longer supported and will not work in the latest version of Sublime Text 4.</p>\n                <p>The package owes its inspiration and much of its code to the excellent <url href=\"https://github.com/SublimeText/LaTeXTools\" visual=\"github.com/SublimeText/LaTeXTools\">LaTeXTools</url> package. Please let the author know of any bugs you find or any features you would like to see included in MBXTools by <url href=\"https://github.com/daverosoff/PreTeXtual/issues\" visual=\"github.com/daverosoff/PreTeXtual/issues\">creating a GitHub issue</url>.</p>\n            </introduction>\n            <subsubsection xml:id=\"subsubsection-mbxtools-install\">\n                <title>Installation</title>\n                <paragraphs xml:id=\"paragraphs-mbxtools-install-via-package-control\">\n                    <title>via Package Control</title>\n                    <p>It is recommended to install PreTeXtual via <url href = \"https://packagecontrol.io\">Package Control</url>. If you have not installed Package Control yet, you should do that first (and restart Sublime Text afterwards).</p>\n                    <p>After Package Control is installed, use the <c>Install Package</c> command to search for the PreTeXtual package, and select it from the Quick Panel to install. This method of installation allows Package Control to automatically update your installation and show you appropriate release notes.</p>\n                </paragraphs>\n                <paragraphs xml:id=\"paragraphs-mbxtools-install-via-git\">\n                    <title>via git</title>\n                    <p>You may also install PreTeXtual via <c>git</c>. Change directories into your <c>Packages</c> folder. To find the <c>Packages</c> folder, select Browse Packages from the Preferences menu (from the Sublime Text 4 menu on OS X). Make sure you are in the <c>Packages</c> folder and <em>not</em> <c>Packages/User</c>.</p>\n                    <p>Then, run<cd>git clone https://github.com/daverosoff/PreTeXtual.git</cd>and restart Sublime Text (probably not necessary).</p>\n                </paragraphs>\n            </subsubsection>\n            <subsubsection xml:id=\"pretextual-usage\">\n                <title>Usage</title>\n                <p>You can activate the package features by enabling the <pretext/> syntax. The syntax definition looks for <c>.mbx</c> or <c>.ptx</c> file extensions. If your <pretext/> files end with <c>.xml</c>, you will either need to add a comment to the first line of each file (after the <init>XML</init> declaration):<cd>&lt;!-- PTX --&gt;</cd>or you will need to enable the syntax manually using the command palette. To enable it manually, open a <pretext/> file and press <c>Ctrl+Shift+P</c> (<c>Cmd+Shift+P</c> on <init>OS X</init>) and type <c>pretext</c>. Select <q>Set Syntax: PreTeXt</q> from the list of options.</p>\n                <p>You should see the text <q>PreTeXt</q> in the lower right corner if you have the status bar visible (command palette: Toggle Status Bar).</p>\n                <p>There are only a few features implemented so far.<ol>\n                    <li>\n                        <p>If you have some sectioning in your PTX file, hit <c>Ctrl+R</c> (<c>Cmd+R</c> on <init>OS X</init>) to run the Go To Symbol command. You should see a panel showing all the divisions' <attr>xml:id</attr> names.</p>\n                    </li>\n                    <li>\n                        <p>If you have been using <attr>xml:id</attr> to label your stuff, try typing <c>&lt;xref ref=\"</c> (the beginning of a cross-reference). Sublime Text should show you a panel containing all <attr>xml:id</attr> values along with the elements they go with. Choose one to insert it at the caret and close the <c>xref</c> tag. Alternatively, type <c>ref</c> and hit <c>Tab</c> to activate the <c>xref</c> snippet. Then hit <c>Ctrl+l</c> followed by <c>x</c> or <c>Ctrl+l</c> followed by <c>Ctrl+Space</c> to bring up the completions menu. There are several variants of the <c>ref</c> snippet, namely <c>refa</c>, <c>refp</c>, and <c>refpa</c>.</p>\n                    </li>\n                    <li>\n                        <p>Type <c>chp</c>, <c>sec</c>, <c>ssec</c>, or <c>sssec</c> and hit <c>Tab</c> to activate the division snippets. A blank <c>title</c> element is provided and the cursor positioned within it. As you type, the <attr>xml:id</attr> field for the division is filled with similar text mirroring the title you are entering.</p>\n                    </li>\n                </ol></p>\n            </subsubsection>\n            <subsubsection xml:id=\"pretextual-known-issues\">\n                <title>Known issues</title>\n                <p><ol>\n                    <li>\n                        <p>When manually adding an <c>xref</c> (not using the snippets or autocomplete), you will frequently see a spurious <q>Unrecognized format</q> error.</p>\n                    </li>\n                    <li>\n                        <p>The <c>ref</c> snippet does not bring up the quick panel. Should it?</p>\n                    </li>\n                    <li>\n                        <p>Recursive search through included files for labels is not yet implemented.</p>\n                        <p>This will only work for <c>xref</c> completion, not Go To Symbol.</p>\n                    </li>\n                    <li>\n                        <p>Nothing has been tested on OS X or Linux.</p>\n                    </li>\n                </ol></p>\n            </subsubsection>\n        </subsection>\n        <subsection xml:id=\"subsection-recommended-packages\">\n            <title>Recommended Packages</title>\n            <p><ol>\n                <li><p>Package Control</p></li>\n                <li><p>Emmet</p></li>\n                <li><p>SideBarEnhancements</p></li>\n                <li><p>PowerCursors</p></li>\n                <li><p>MultiEditUtils</p></li>\n                <li><p>Text Pastry</p></li>\n                <li><p>Git or SublimeGit</p></li>\n                <li><p>SublimeLinter</p></li>\n                <li><p>MBXTools</p></li>\n            </ol></p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"aspell\">\n        <title>Aspell</title> <!-- lowercase \"s\" -->\n\n        <p>Aspell is a spell-checker which you can easily configure to skip every piece of text used as a name of an <init>XML</init> element, and to skip <pretext/> elements that are likely to contain text that is not really made up of words and sentences.  For example, the element <tag>chapter</tag> might not be flagged by some mainstream spell checkers, but most likely the element <tage>mdash</tage> will be flagged by every spell checker, including the default configuration of Aspell.  And your <tag>m</tag> elements are full of <latex/>, not words.  Unfortunately, Aspell will not follow your <c>xi:xinclude</c> directives, so you need to run it against each of your files if you have modularized your source.  A command-line invocation would like like:<cd>\n            <cline>aspell -c ~/aota/src/fish.xml</cline>\n        </cd></p>\n\n        <p>Installation on Linux should be straightforward through your distribution's package manager.  On a Mac, the executable, and a dictionary for your language, can be installed easily via MacPorts (<xref provisional=\"macports\"/>).  Recent improvements on Windows (ca. 2019-06-06) perhaps imply that <init>WSL</init> or the Ubuntu Linux install may provide an easy avenue.  Please report steps that result in a successful Windows installation, so we can include them here.</p>\n\n        <p>Configuration is achieved via a <q>hidden</q> file at the top of your home directory, namely <c>.aspell.conf</c>.  A Mac will try to keep you away from hidden files, which are the ones whose name begins with a period.  Let SublimeText give you an assist here.  In <xref ref=\"aspell-configuration\"/> we show a first run at a useful configuration file.  You <em>definitely</em> want to add the <init>SGML</init> filter, since this is what tells Aspell that you are working on <init>XML</init> files<fn><init>SGML</init> is the precursor of <init>XML</init>.</fn>, so that all element names, attributes, etc. will not be checked.  The remainder is a suggested list of <pretext/> elements to skip.  Suggestions for additions are welcome here.</p>\n\n        <listing xml:id=\"aspell-configuration\">\n            <title>Aspell Configuration File</title>\n\n            <program>\n                <code>\n                add-filter sgml\n\n                # elements with lots of code\n                # but not \"pre\", since it is like a \"p\"\n                add-sgml-skip c\n                add-sgml-skip cd\n                add-sgml-skip program\n                add-sgml-skip console\n                add-sgml-skip sage\n\n                # image formats\n                add-sgml-skip latex-image\n                add-sgml-skip asymptote\n                add-sgml-skip sageplot\n\n                # elements that display XML elements\n                add-sgml-skip tag\n                add-sgml-skip tage\n                add-sgml-skip attr\n\n                # initialisms and friends\n                add-sgml-skip init\n                add-sgml-skip acro\n                add-sgml-skip abbr\n\n                # math (latex)\n                add-sgml-skip m\n                add-sgml-skip me\n                add-sgml-skip men\n                add-sgml-skip md\n                add-sgml-skip mdn\n                add-sgml-skip usage # in \"notation\"\n\n                # not really content, by and large\n                add-sgml-skip docinfo\n                </code>\n            </program>\n        </listing>\n\n        <p>You can run Aspell in a sort of batch, non-interactive mode by adding the <c>-a</c> switch and then providing your source on standard input and directing results from standard output.  But I do not find it very useful.</p>\n    </section>\n\n    <section xml:id=\"emacs\">\n        <title>emacs</title>\n\n        <p>Jason Underdown reports on 2016-05-12 that emacs' <url href=\"https://www.gnu.org/software/emacs/manual/html_mono/nxml-mode.html\" visual=\"www.gnu.org/software/emacs/manual/html_mono/nxml-mode.html\">nXML mode</url> works well with a schema, and Mitch Keller reports on 2021-04-18 that specifically a <acro>RELAX-NG</acro> schema may be used.  The two versions of the <acro>RELAX-NG</acro> schema for <pretext/> can be found at<cd>\n            <cline>pretext/schema/pretext.rng</cline>\n            <cline>pretext/schema/pretext.rnc</cline>\n        </cd>The first is the <q>real</q> version, while the second is an entirely equivalent (compact) syntax that is meant to be a bit more human-readable, so perhaps either may be employed.</p>\n\n        <p>On 2021-04-18, Mitch Keller reports success with placing the following <c>schemas.xml</c> file in his <pretext/> source file directories.  Note that you may need to adjust the path in the <attr>uri</attr> attribute, and the <attr>pattern</attr> attribute implies that Mitch has used a <c>.ptx</c> suffix for all his source filenames.  If you are already using emacs, you should have no trouble making the necessary adjustments.</p>\n\n        <pre><![CDATA[\n        <?xml version=\"1.0\"?>\n        <locatingRules xmlns=\"http://thaiopensource.com/ns/locating-rules/1.0\">\n          <uri pattern=\"*.ptx\" uri=\"../../pretext/schema/pretext.rnc\"/>\n        </locatingRules>\n        ]]>\n        </pre>\n\n        <blockquote>\n            <p>You simply put your cursor at any point in the document, start a new tag with <c>&lt;</c> and then call the <c>completion-at-point</c> function (I bound it to the key-chord: <c>C-&lt;return&gt;</c>) to get a list of possible completions. Or you can start typing a few characters to narrow the list of possibilities. It will also let you know if the element you are trying to insert is invalid.</p>\n            <attribution>Jason Underdown</attribution>\n        </blockquote>\n    </section>\n\n    <section xml:id=\"xmlcopyeditor\">\n        <title>XML Copy Editor</title>\n\n        <p>Michael Doob reports on 2017-02-03 that <url href=\"http://xml-copy-editor.sourceforge.net/\" visual=\"xml-copy-editor.sourceforge.net/\">XML Copy Editor</url> works well, in particular on Windows.  This is an open source program, for Windows and a variety of popular Linux distributions, that supports both <init>DTD</init> and <acro>RELAX-NG</acro> schemas.  It is less of a general programmer's editor and more like dedicated tools for working strictly with <init>XML</init> documents.</p>\n    </section>\n\n    <section xml:id=\"vi\">\n        <title>vi, vim</title>\n\n        <subsection>\n        <title>Using vi and <pretext /> together</title>\n            <introduction>\n            <p>\n            Any smart editor, and vi is no exception, allows the addition of new commands\n            to make repetitive tasks easier. Since creating documents\n            with <pretext /> markup often is repetitive, it makes sense to\n            explore the techniques of creating additional commands in vi to make editing\n            easier.\n            </p>\n            <p>\n            The expectation for this section is that the reader is able to\n            use vi to create and edit files, but no greater depth of knowledge\n            is assumed. The term <em>vi</em> is meant to be inclusive, that is,\n            it includes vim, gvim and the like.\n            </p>\n            </introduction>\n\n            <subsubsection xml:id=\"vi-modes\">\n            <title>Modes of vi: Command, Normal, and Insert</title>\n            <p>\n            One of the most fundamental properties of vi is that every editing task\n            may be accomplished using the keyboard. For different editing contexts,\n            it is advantageous to have the keyboard strokes have different meaning;\n            these different interpretations are called the <em>modes</em> of vi.\n            </p>\n\n            <p>\n            Here are the pertinent modes of vi:\n            <ul>\n            <li> <em>Normal mode: </em> This mode is for changing position within the file.\n                For example, <c>j</c> moves down, <c>2w</c> moves forward two words,\n                and <c>-2}</c> moves backwards two paragraphs. It is also used for block\n                operations on text:\n                <c>-3dd</c> is used to delete three previous lines,\n                or <c>2.yy</c> will yank the next two sentences.\n                Usually vi starts in normal mode.\n            </li>\n            <li> <em>Insert mode: </em> This mode is for inserting new text into the file.\n                Typing <c>Galloping Gertie leapt into the air.</c> causes that text\n                to be inserted at the current position in the file.\n            </li>\n            <li> <em>Command mode: </em> This mode is to execute commands.\n                Typing <c>/abc</c> in normal mode initiates a forward search for the\n                first occurrence of\n                <q>abc</q> via the command mode. Similarly <c>:w</c> will use command\n                mode to write out the current working material (buffer) to the disk.\n            </li>\n            </ul>\n            </p>\n\n            <p>\n            Now a quick review of the keys used to move between modes:\n            From a given position in a file in Normal mode, using\n            <kbd>i</kbd>   or <kbd>a</kbd>  will change to Insert mode and\n            insert text before or after that position.\n            Similarly, <kbd>I</kbd> or <kbd>A</kbd> will insert text in front of or\n            directly following the current line,\n            and <kbd>O</kbd> or <kbd>o</kbd> will insert text above or below\n            the current line. Returning to Normal mode is done using\n            <kbd>Esc</kbd>.\n            </p>\n\n            <p>\n            If <kbd>/</kbd>, <kbd>?</kbd>, or <kbd>:</kbd> is typed when in\n            normal mode, a small one-line window opens up (called the <em>command line</em>)\n            to receive text. This entered text is terminated by <kbd>Enter</kbd>.\n            The <kbd>/</kbd> or <kbd>?</kbd> initiates a forward or backward search\n            for the entered text. The <kbd>:</kbd> sends the entered text to the\n            vi program for further processing.\n            </p>\n\n            <p>\n            <xref ref=\"vimodesfigure\" />  show the keys used to move between modes.\n            </p>\n\n            <figure xml:id=\"vimodesfigure\">\n            <caption>Keys for moving between different modes in vi</caption>\n                <image xml:id=\"vimodes\">\n                <asymptote>\n                unitsize(1.0cm);\n                void modebox(string s, pair P) {\n                label(\"\\setlength{\\fboxrule}{2.0pt}\n                \\framebox[72pt]{\\vbox{\\begin{center}\"+s+\"\\\\mode\\end{center}}}\",P);\n                }\n                void keybox(string s, pair C, real w, real h, real r) {\n                  real c1=C.x, c2=C.y;\n                  pair []  X = {\n                    (c1-w+r,c2-h),   (c1+w-r,c2-h), (c1+w-r,c2-h+r), (c1+w,c2+h-r),\n                    (c1+w-r,c2+h-r), (c1-w+r,c2+h), (c1-w+r,c2+h-r), (c1-w,c2-h+r),\n                    (c1-w+r,c2-h+r)\n                  };\n                  path P =\n                    X[0]--X[1]-- arc(X[2],r,270,0,direction=CCW)--\n                    X[3]-- arc(X[4],r,0,90)--\n                    X[5]-- arc(X[6],r,90,180)--\n                    X[7]-- arc(X[8],r,180,270)\n                    --cycle;\n                  filldraw(shift(.05,-.05)*P,gray);\n                  filldraw(P,lightgray);\n                  label(\"\\footnotesize \"+s,C);\n                }\n                pair C=(0,0), N=(5,0), I=(10,0); //LL of Control, Normal, Insert boxes\n                modebox(\"Command\",C);\n                modebox(\"Normal\",N);\n                modebox(\"Insert\",I);\n                pair L=(1.5,0.3), R=(6.5,0.3), XD=(2.2,0), YD=(0,-0.7);\n                draw (L..L+XD,Arrow);\n                draw (L+YD+XD..L+YD,Arrow);\n                draw (R..R+XD,Arrow);\n                draw (R+YD+XD..R+YD,Arrow);\n                real w=0.25, h=0.27, r=0.12; // default width, height, radius of curvature\n                keybox(\"/\",    L+0.5*XD+2*YD,  w,     h,r);\n                keybox(\"?\",    L+0.5*XD+3.0*YD,w,     h,r);\n                keybox(\":\",    L+0.5*XD+4*YD,  w,     h,r);\n                keybox(\"Esc\",  R+0.5*XD+2*YD,  w+0.12,h,r);\n                keybox(\"Enter\",L+0.5*XD-1.5*YD,w+0.3, h,r);\n                keybox(\"i\",    R+0.5*XD-1.0*YD,w,     h,r);\n                keybox(\"a\",    R+0.5*XD-2.0*YD,w,     h,r);\n                keybox(\"o\",    R+0.5*XD-3.0*YD,w,     h,r);\n                </asymptote>\n                </image>\n            </figure>\n\n            <p>\n            An exclamation point prefix  <c>!</c> in Command mode\n            sends that command to the operating system.\n            For example, entering  <c>:!date</c> will cause the results\n            of the operating system command <c>date</c> to be displayed\n            on the command line. In addition the percent character\n            <c>%</c> gets expanded to the name of the file being edited.\n            If your operating system uses <c>ls -l</c> to list file information,\n            then <c>:!ls -l %</c> will give the properties of the file being edited.\n            </p>\n            </subsubsection>\n\n            <subsubsection>\n            <title>Using :set</title>\n            <p>\n            The Command mode in vi allows users to change their interaction with the editor.\n            (Remember that entering <c>:</c> changes to Command mode,\n            and any text string entered in Command mode is terminated by <kbd>Enter</kbd>.)\n            For example, entering <c>:set number</c> will cause line numbers to appear on\n            the left.\n            They are not in the file itself, of course, but are there for the convenience\n            of the user.\n            Entering <c>:set nonumber</c> will remove these line numbers.\n            Similarly <c>:set autoindent</c> will cause a new line to preserve the\n            indentation of the previous one and <c>:set expandtab</c> will replace the tab\n            character by an appropriate number of spaces (both are very useful for writing\n            <pretext /> documents).\n            Some useful set commands are given in <xref ref=\"setcommands\" />.\n            </p>\n\n            <table xml:id=\"setcommands\">\n            <title>Some useful parameters for the set command</title>\n                <tabular halign=\"center\">\n                <row bottom=\"minor\">\n                    <cell right=\"minor\">Command</cell>\n                    <cell>Resulting change</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set autoindent</cell>\n                    <cell>A new line preserves indentation</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set expandtab</cell>\n                    <cell>Inserted tabs converted to spaces</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set rows<m>=</m>n</cell>\n                    <cell>Set number of lines displayed </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set columns<m>=</m>n</cell>\n                    <cell>Set the display size of each line</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set list</cell>\n                    <cell>Show tabs and carriage returns </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set tabstops<m>=</m>n</cell>\n                    <cell><kbd>Tab</kbd> inserts <m>n</m> spaces </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">:set </cell>\n                    <cell>Show all current settings</cell>\n                </row>\n                </tabular>\n            </table>\n            </subsubsection>\n\n            <subsubsection>\n            <title>A little editing etiquette</title>\n            <p>\n            The <init>xml</init> files used with <pretext/> are ordinary text files.\n            This makes it easy for  coauthors to email them back and forth in order\n            to expand and improve the content. There are a few potential problems,\n            and hence some useful precautions.\n            <ul>\n                <li>\n                If a <kbd>Tab</kbd> is entered and not expanded to spaces, different editors may\n                display the text with different alignments.\n                </li>\n                <li>\n                If there are extra spaces at the end of a line, there may be odd line wrapping.\n                </li>\n            </ul>\n            </p>\n\n            <p>\n            Fortunately, these are easy to avoid.\n            <ul>\n                <li>\n                A tab character may be found in the usual manner for searches:\n                <kbd>:</kbd> <kbd>/</kbd> <kbd>Tab</kbd> will find the next tab;\n                it can be removed and replaced by spaces.\n                </li>\n                <li>\n                A space before the end of a line can be found with the search\n                <kbd>:</kbd> <kbd>/</kbd> <kbd>Space</kbd> <kbd>$</kbd>\n                (vi will interpret <kbd>$</kbd> as the end of a line rather than\n                as a dollar sign). The spaces at the end of the line can then\n                be removed.\n                </li>\n            </ul>\n            </p>\n            <p>\n            There is another feature of vi that is helpful in this respect.\n            Using <c>:set list</c> will make the tab and end of line characters visual\n            as <c>^I</c> and <c>$</c>.\n            This makes the appropriate deletions easy. It is good editing etiquette to do so.\n            </p>\n            </subsubsection>\n\n            <subsubsection>\n            <title>Abbreviations</title>\n            <p>\n            The <c>:abbreviation</c> command allows the replacement of longer expressions\n            by shorter ones. Try this: in Command mode enter\n            <cd>:abbreviate ups University of Puget Sound</cd>\n            and then (in Insert mode) type\n            <cd>I enjoyed my visit to the ups.</cd>\n            If all goes well, the abbreviation is expanded and the\n            text is\n            <cd>I enjoyed my visit to the University of Puget Sound.</cd>\n            Now suppose you want to write\n            <c>My favourite letter of the Greek alphabet is upsilon.</c>\n            Looks like trouble with the last word, but in fact all is well.\n            Abbreviations are not expanded until the next character after the\n            abbreviation is read. If the next character after\n            the abbreviation is either a letter or a number, no expansion\n            takes place. Careful observation of the original example reveals that\n            the abbreviation is not expanded until the period is entered.\n            Here is another example: You want to write <c>I love pushups.</c>\n            What about the end of the last word? No problem!\n            The <c>ups</c> is expanded only if it is at the beginning of a word.\n            </p>\n\n            <p>\n            Amusingly enough, when in Command mode, the <c>abbreviate</c> command\n            can itself be abbreviated to <c>ab</c>.\n            </p>\n\n            <p>\n            The choice of an abbreviation is essentially arbitrary. However, if\n            desiring an abbreviation within\n            <q>I enjoyed my visit to the Technische Hogeschool Eindhoven</q>,\n            it would be folly to use <c>:ab the  Technische Hogeschool Eindhoven</c>.\n            The abbreviation should be mnemonic, but avoid actual words.\n            </p>\n\n            <p>Now consider the following problem: what if the <kbd>Enter</kbd> key\n            is one of the desired characters in the abbreviation? Since that key\n            terminates Command mode, it appears impossible.\n            Not so! The characters <c>&lt;enter&gt;</c> (that's seven of them) will be\n            replaced by a single character equivalent to <kbd>Enter</kbd>.\n            </p>\n\n            <p>\n            There are other characters that are treated in the same manner:\n            </p>\n\n            <table>\n            <title>Text equivalents to keyboard entries</title>\n                <tabular halign=\"center\">\n                <row bottom=\"minor\">\n                    <cell>Desired key</cell>\n                    <cell>Text equivalent (not case sensitive)</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Enter</kbd></cell>\n                    <cell>&lt;enter&gt; or &lt;cr&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Backspace</kbd></cell>\n                    <cell>&lt;bs&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Insert</kbd></cell>\n                    <cell>&lt;ins&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Delete</kbd></cell>\n                    <cell>&lt;del&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Esc</kbd></cell>\n                    <cell>&lt;esc&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd name=\"left\"/></cell>\n                    <cell>&lt;left&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd name=\"right\"/></cell>\n                    <cell>&lt;right&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd name=\"up\"/></cell>\n                    <cell>&lt;up&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd name=\"down\"/></cell>\n                    <cell>&lt;down&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Home</kbd></cell>\n                    <cell>&lt;home&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>End</kbd></cell>\n                    <cell>&lt;end&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Ctrl</kbd>+<kbd>x</kbd></cell>\n                    <cell>&lt;C-x&gt; </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\"><kbd>Alt</kbd> + <kbd>y</kbd></cell>\n                    <cell>&lt;M-y&gt; </cell>\n                </row>\n                </tabular>\n            </table>\n\n            <p>\n            Here is a useful <pretext /> example:\n            Define the abbreviation\n            <cd>\n            ab gm &lt;m&gt;&lt;/m&gt;&lt;left&gt;&lt;left&gt;&lt;left&gt;&lt;left&gt;\n            </cd>\n            and then enter (in Insert mode)\n            <cd>It follows from gm\\log(\\theta)=0 that gm\\theta=1.</cd>\n            It will (almost) be expanded to\n            <cd>\n            It follows from &lt;m&gt;\\log(\\theta)=0&lt;/m&gt; that &lt;m&gt;\\theta=1&lt;/m&gt;.\n            </cd>\n            That's <q>almost</q> because it is necessary to move the cursor past the\n            <c>&lt;/m&gt;</c> when leaving the mathematics input. It's pretty easy to see how\n            this abbreviation works. The first seven characters <c>&lt;m&gt;&lt;/m&gt;</c>\n            are expanded unchanged and then the cursor moves to the left four times to put it\n            right where it needs to be to enter the mathematics. Careful observation\n            will reveal a little trick used in this example: <c>gm</c> is followed by\n            a <c>\\</c> and so terminated the abbreviation correctly. If the variable were <m>x</m>,\n            then inputting <c>gmx</c> would not work. A workaround: enter a <kbd>Space</kbd> after\n            the <c>gm</c>. This terminates the abbreviation and it will work as desired. (Actually,\n            there will be an extra space before the <m>x</m>, which causes no ill effect, but if\n            true perfection is desired, using <c>gm</c><kbd>Space</kbd>  <kbd>Backspace</kbd>\n            will eliminate it.)\n            </p>\n\n            <p>\n            When <c>:ab </c> is used, it is in effect in all modes. When abbreviations\n            are for Input mode only (as is the present case), then <c>iab:</c> may be used\n            and is usually preferable.\n            </p>\n\n            <p>\n            Here is another useful (nonmathematical) example.\n            Define (for use in Input mode)\n            <cd>:iab gp &lt;p&gt;&lt;cr&gt;&lt;/p&gt;&lt;up&gt;.</cd>\n            Then entering <q>gp<kbd>Enter</kbd></q> on a new line will create three lines\n            appearing like:\n            </p>\n            <pre>\n            &lt;p&gt;\n\n            &lt;/p&gt;\n            </pre>\n            <p>\n            That is, the first and third line start and end a paragraph and the cursor,\n            represented by <c>|</c> is\n            at the beginning of the second line. If autoindent is set,\n            (see <xref ref=\"setcommands\" />),\n            the line indentations are preserved. With this definition, the frequent\n            task of starting a new paragraph appropriately formatted\n            may be carried out using only three key strokes.\n            </p>\n\n            <p>\n            A further example:\n            <cd>:iab gcom &lt;!--&lt;CR&gt;&lt;CR&gt;--&gt;&lt;Up&gt;</cd>\n            is useful to entering comments.  Starting a line with\n            <q>gcom <kbd>Tab</kbd></q> will help create nicely indented comments.\n            </p>\n            <p>\n            Want to know what abbreviations are in effect? Just enter <c>:ab</c>\n            and they will be listed.\n            </p>\n            </subsubsection>\n\n            <subsubsection>\n            <title>Maps</title>\n            <p>\n            Maps, like abbreviations, are shortcuts that save extra key strokes.\n            There is a difference in method: the <c>map</c>  command uses\n            <em>key bindings</em> that (re)define the meanings of key strokes.\n            For example, inputting (while in Normal mode)\n            <c>:map &lt;C-X&gt; :w&lt;CR&gt;</c> will define (map) the\n            <kbd>Ctrl</kbd> +<kbd>X</kbd> key combination so that it is equivalent\n            to typing the rest of the definition, <c>:w&lt;CR&gt;</c>.\n            This three-key sequence, of course, just changes to Command mode,\n            writes the current buffer to disk, and returns to Normal mode.\n            </p>\n\n            <p>\n            Presumably this newly defined key binding is meant to be invoked in Normal mode.\n            To do so in Insert mode would be a mistake;\n            to avoid this, there is an <c>nmap</c> command that defines key binding\n            for Normal mode only. Similarly, there is an <c>imap</c> command for Insert mode only.\n            Thus defining a key binding using <c>:nmap &lt;C-X&gt; :w&lt;CR&gt;</c>\n            will make it valid only in Normal mode.\n            Unlike abbreviations, the binding takes effect the moment the key is pressed.\n            </p>\n            <p>\n            There is a cute technique to use the same binding in Normal and Insert modes.\n            The key binding\n            <c>:imap &lt;C-X&gt; &lt;esc&gt;&lt;C-X&gt;a</c>\n            defines a binding for Insert mode. The first character,\n            <c> &lt;esc&gt;</c>, changes to Normal mode; the next character,\n            <c>&lt;C-X&gt;</c>, will use the the Normal mode definition of\n            <c>&lt;C-X&gt;</c>.  The final character <c>a</c> returns to the\n            previous position in Insert mode.\n            </p>\n            <p>\n            We can make special use of the special characters\n            <c>!</c> and <c>%</c>\n            as described at the end of <xref ref=\"vi-modes\"/>.\n            </p>\n\n            <p>\n            The author using <pretext /> usually edits an <init>xml</init> file, say <c>myfile.xml</c> .\n            This file is then processed using xsltproc in conjunction with an <init>xsl</init>\n            file, say <c>myfile.xsl</c>.\n            Often the <init>xsl</init> file is <c>pretext-html.xsl</c> or <c>pretext-latex.xsl</c>.\n            The usual command used by the author is <c>xsltproc myfile.xsl myfile.xml</c>.\n            With this in mind, we could define a map:\n            <c>:nmap &lt;C-X&gt; !xsltproc myfile.xsl myfile.xml&lt;CR&gt;</c>\n            so that the <init>xml</init> file could be processed with a single keystroke.\n            Even better:\n            <c>:nmap &lt;C-X&gt; :w&lt;cr&gt;:!xsltproc myfile.xsl %&lt;CR&gt;</c>\n            defines a map that first writes the file being edited to disk and then\n            processes it with xsltproc. This command is independent of the\n            particular file being edited.\n            </p>\n\n            <p>\n            A final somewhat complicated but very useful definition:\n            <cd>\n            imap &lt;C-A&gt; &lt;Esc&gt;yiwi&lt;&lt;Esc&gt;ea&gt;&lt;/&lt;Esc&gt;pa&gt;&lt;Esc&gt;F&lt;i\n            </cd>\n            which is a truly cryptic sequence of key strokes. Here is what they do:\n            </p>\n\n            <table>\n            <title />\n                <tabular halign=\"center\">\n                <row bottom=\"minor\">\n                    <cell right=\"minor\">Key strokes</cell>\n                    <cell>Interpretation</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">&lt;esc&gt;</cell>\n                    <cell>Leave input mode</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">yiw</cell>\n                    <cell>Save (yank) word above cursor</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">i&lt;</cell>\n                    <cell>Insert <c>&lt;</c> </cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">&lt;esc&gt;</cell>\n                    <cell>Go to to Normal mode</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">e</cell>\n                    <cell>Move to end of word</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">a&gt;&lt;/&lt;esc&gt;</cell>\n                    <cell>append <c> &gt;&lt;/</c> and return\n                to Normal mode</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">p</cell>\n                    <cell>Paste the saved word</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">a&gt;&lt;Esc&gt;</cell>\n                    <cell>append <c>&gt;</c> and leave Insert mode</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">F&lt;</cell>\n                    <cell>Move to  preceding &lt;</cell>\n                </row>\n                <row>\n                    <cell right=\"minor\">i</cell>\n                    <cell>Go to Insert mode</cell>\n                </row>\n                </tabular>\n            </table>\n\n            <p>\n            The effect of this map: Entering <c>abc&lt;C-A&gt;</c> will change\n            <c>abc</c> to <c>&lt;abc&gt;|&lt;/abc&gt;</c> where <c>|</c> is the\n            position of the cursor.\n            </p>\n            <aside>\n            <p>\n            The definition needs to be a bit convoluted so that it works with both single\n            letter and multiple-letter words.\n            </p>\n            </aside>\n            <p>\n            To list all of your defined maps, just use <c>:map</c>.\n            </p>\n            </subsubsection>\n\n            <subsubsection>\n            <title>Saving abbreviations and maps</title>\n            <p>\n            The abbreviations and maps defined during an editing session disappear when\n            the session is over. There are a number of ways to retain them over different\n            sessions.\n            <ul>\n            <li>Ephemeral use in one file:\n                For most versions of vi, after entering Command mode the history may be\n                accessed using the <kbd>\\(\\uparrow\\)</kbd> key. Backing up to the previous\n                definition of an abbreviation or map and pressing <kbd>Enter</kbd>\n                will reinstate the definition. The line can also be edited if changes are desired\n                (very useful while developing new abbreviations and maps). This history\n                is preserved between editing sessions.\n            </li>\n            <li>Repeated use in several files in one directory:\n                The abbreviations and maps can be saved in a text file, say <c>mymaps.txt</c>.\n                A line within the file might look like\n                <cd>:ab ups University of Puget Sound</cd>\n                Vi is then started with the <c>-s mymaps.txt</c> option\n                to initialize the definitions.\n            </li>\n            <li>Repeated use for files in different directories:\n                Put the abbreviations and maps in the file <c>.vimrc</c>\n                (<c>_vimrc</c> for Windows) in your home directory.\n            </li>\n            </ul>\n            </p>\n            </subsubsection>\n        </subsection>\n    </section>\n    <section xml:id=\"subsection-spellchecking-output\">\n        <title>Spell Checking Output</title>\n        <p>\n            While browsing your HTML output, it is possible to have the web browser's native\n            spell checker highlight spelling errors. Create a bookmark with the following for\n            its URL (all at once on one line, there are three lines here just for clarity):\n            <cd>\n                <cline>javascript:document.body.contentEditable=!document.body.isContentEditable;</cline>\n                <cline>document.designMode=(document.designMode === 'on') ? 'off' : 'on';</cline>\n                <cline>void 0</cline>\n            </cd>\n            Now when viewing a page and you click this bookmarklet, JavaScript will change\n            browser settings so that the native spell checker highlights spelling errors. This\n            is done by making the text content of the page editable, which is normally what is\n            needed for the browser's spell checker to kick in. While this is active, you will\n            not be able to click most links and buttons. Click the bookmarklet again to toggle\n            things back to how they were.\n        </p>\n        <p>\n            Some browsers may have extensions that you can install for spell checking the\n            content of a page. For example, Chrome has\n            <url href=\"https://chromewebstore.google.com/detail/webpage-spell-check/mgdhaoimpabdhmacaclbbjddhngchjik\">Webpage Spell-Check</url>.\n        </p>\n    </section>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/gfdl-pretext.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2018-2019 Mitchel T. Keller\n\nThis file is part of The PreTeXt Basics Reference (The PBR).\n\nPermission is granted to copy, distribute and/or modify this document\nunder the terms of the GNU Free Documentation License, Version 1.3\nor any later version published by the Free Software Foundation; with\nno Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.\nA copy of the license is included in the section entitled “GNU Free\nDocumentation License”.\n\nYou should have received a copy of the GNU Free Documentation License\nalong with The PBR.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is a faithful copy of Version 1.3 of the GFDL. -->\n<!-- The copyright assertion above only refers to the    -->\n<!-- addition of the <pretext /> elements employed to   -->\n<!-- render the license within a <pretext /> document   -->\n\n<appendix xml:id=\"appendix-gfdl\">\n    <title>GNU Free Documentation License</title>\n\n    <p>Version 1.3, 3 November 2008</p>\n\n    <p>Copyright <copyright /> 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. &lt;<url href=\"http://www.fsf.org/\" visual=\"www.fsf.org/\"/>&gt;</p>\n\n    <p>Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.</p>\n\n    <paragraphs xml:id=\"gfdl-section0\">\n        <title>0. PREAMBLE</title>\n\n        <p>The purpose of this License is to make a manual, textbook, or other functional and useful document <q>free</q> in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.</p>\n\n        <p>This License is a kind of <q>copyleft</q>, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.</p>\n\n        <p>We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section1\">\n        <title>1. APPLICABILITY AND DEFINITIONS</title>\n\n        <p>This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The <q>Document</q>, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as <q>you</q>. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.</p>\n\n        <p>A <q>Modified Version</q> of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.</p>\n\n        <p>A <q>Secondary Section</q> is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.</p>\n\n        <p>The <q>Invariant Sections</q> are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.</p>\n\n        <p>The <q>Cover Texts</q> are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.</p>\n\n        <p>A <q>Transparent</q> copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not <q>Transparent</q> is called <q>Opaque</q>.</p>\n\n        <p>Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.</p>\n\n        <p>The <q>Title Page</q> means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, <q>Title Page</q> means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.</p>\n\n        <p>The <q>publisher</q> means any person or entity that distributes copies of the Document to the public.</p>\n\n        <p>A section <q>Entitled XYZ</q> means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as <q>Acknowledgements</q>, <q>Dedications</q>, <q>Endorsements</q>, or <q>History</q>.) To <q>Preserve the Title</q> of such a section when you modify the Document means that it remains a section <q>Entitled XYZ</q> according to this definition.</p>\n\n        <p>The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section2\">\n        <title>2. VERBATIM COPYING</title>\n\n        <p>You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.</p>\n\n        <p>You may also lend copies, under the same conditions stated above, and you may publicly display copies.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section3\">\n        <title>3. COPYING IN QUANTITY</title>\n\n        <p>If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.</p>\n\n        <p>If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.</p>\n\n        <p>If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.</p>\n\n        <p>It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section4\">\n        <title>4. MODIFICATIONS</title>\n\n        <p>You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:<ol marker=\"A.\">\n            <li><p>Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.</p></li>\n\n            <li><p>List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.</p></li>\n\n            <li><p>State on the Title page the name of the publisher of the Modified Version, as the publisher.</p></li>\n\n            <li><p>Preserve all the copyright notices of the Document.</p></li>\n\n            <li><p>Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.</p></li>\n\n            <li><p>Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.</p></li>\n\n            <li><p>Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.</p></li>\n\n            <li><p>Include an unaltered copy of this License.</p></li>\n\n            <li><p>Preserve the section Entitled <q>History</q>, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled <q>History</q> in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.</p></li>\n\n            <li><p>Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on.  These may be placed in the <q>History</q> section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.</p></li>\n\n            <li><p>For any section Entitled <q>Acknowledgements</q> or <q>Dedications</q>, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.</p></li>\n\n            <li><p>Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.</p></li>\n\n            <li><p>Delete any section Entitled <q>Endorsements</q>. Such a section may not be included in the Modified Version.</p></li>\n\n            <li><p>Do not retitle any existing section to be Entitled <q>Endorsements</q> or to conflict in title with any Invariant Section.</p></li>\n\n            <li><p>Preserve any Warranty Disclaimers.</p></li>\n        </ol></p>\n\n        <p>If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.</p>\n\n        <p>You may add a section Entitled <q>Endorsements</q>, provided it contains nothing but endorsements of your Modified Version by various parties <mdash /> for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.</p>\n\n        <p>You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.</p>\n\n        <p>The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section5\">\n        <title>5. COMBINING DOCUMENTS</title>\n\n        <p>You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.</p>\n\n        <p>The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.</p>\n\n        <p>In the combination, you must combine any sections Entitled <q>History</q> in the various original documents, forming one section Entitled <q>History</q>; likewise combine any sections Entitled <q>Acknowledgements</q>, and any sections Entitled <q>Dedications</q>. You must delete all sections Entitled <q>Endorsements</q>.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section6\">\n        <title>6. COLLECTIONS OF DOCUMENTS</title>\n\n        <p>You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.</p>\n\n        <p>You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section7\">\n        <title>7. AGGREGATION WITH INDEPENDENT WORKS</title>\n\n        <p>A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an <q>aggregate</q> if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.</p>\n\n        <p>If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section8\">\n    <title>8. TRANSLATION</title>\n\n        <p>Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.</p>\n\n        <p>If a section in the Document is Entitled <q>Acknowledgements</q>, <q>Dedications</q>, or <q>History</q>, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section9\">\n        <title>9. TERMINATION</title>\n\n        <p>You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.</p>\n\n        <p>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.</p>\n\n        <p>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.</p>\n\n        <p>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, receipt of a copy of some or all of the same material does not give you any rights to use it.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section10\">\n        <title>10. FUTURE REVISIONS OF THIS LICENSE</title>\n\n        <p>The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See <url href=\"http://www.gnu.org/copyleft/\" visual=\"www.gnu.org/copyleft/\"/>.</p>\n\n        <p>Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License <q>or any later version</q> applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section11\">\n        <title>11. RELICENSING</title>\n\n        <p><q>Massive Multiauthor Collaboration Site</q> (or <q>MMC Site</q>) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A <q>Massive Multiauthor Collaboration</q> (or <q>MMC</q>) contained in the site means any set of copyrightable works thus published on the MMC site.</p>\n\n        <p><q>CC-BY-SA</q> means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.</p> <p><q>Incorporate</q> means to publish or republish a Document, in whole or in part, as part of another Document.</p>\n\n        <p>An MMC is <q>eligible for relicensing</q> if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.</p>\n\n        <p>The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-addendum\">\n        <title>ADDENDUM: How to use this License for your documents</title>\n\n        <p>To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:</p>\n\n        <pre>\n        Copyright (C)  YEAR  YOUR NAME.\n        Permission is granted to copy, distribute and/or modify this document\n        under the terms of the GNU Free Documentation License, Version 1.3\n        or any later version published by the Free Software Foundation;\n        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.\n        A copy of the license is included in the section entitled \"GNU\n        Free Documentation License\".\n        </pre>\n\n        <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the <q>with<ellipsis /> Texts.</q> line with this:</p>\n\n        <pre>\n        with the Invariant Sections being LIST THEIR TITLES, with the\n        Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.\n        </pre>\n\n        <p>If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.</p>\n\n        <p>If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.</p>\n    </paragraphs>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/git.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"git-author\">\n    <title>Revision Control: git</title>\n\n     <p>Authoring a textbook without revision control is like driving without a seat belt.  Sooner or later, you will wish you had used it.  git is a popular program for revision control for software projects, and works quite well with <pretext />, though not perfectly.  Notes here are designed to help.  For more on git itself, in the context of authoring a book, see <url href=\"https://pretextbook.org/gfa/html/\" visual=\"pretextbook.org/gfa/html/\">Git for Authors</url>, by Robert Beezer and David Farmer at <c>pretextbook.org/gfa/html</c>.</p>\n\n     <paragraphs>\n        <title>Word Wrap</title>\n\n        <p>git is designed for code, where a newline often expresses the end of a statement.  In <pretext />, it might make sense to author an entire (long) paragraph without any newlines.  If so, a line-oriented file diff is not so useful.  Fortunately, git has a flag, <c>--word-diff</c>, which does an excellent job of displaying small edits precisely.</p>\n    </paragraphs>\n\n     <paragraphs>\n        <title>Messages for Commits and Merges</title>\n\n        <p>When you make a commit or merge, you can supply a message at the command line with the <c>-m</c> argument.  Otherwise you get thrown into an editor, with the default being <c>vi</c>, which can be hard to get out of if you have not used it before.  Better, as Joe Fields suggests, is to tell git which editor you want to use.  To set <c>pico</c> as the default editor, the one-time command-line incantation would be:<cd>\n            <cline>git config  --global core.editor \"pico\"</cline>\n        </cd>  You can also directly edit the configuration file at <c>~/.gitconfig</c>.  More suggestions can be found on <url href=\"https://stackoverflow.com/questions/2596805/how-do-i-make-git-use-the-editor-of-my-choice-for-commits\" visual=\"stackoverflow.com/questions/2596805/\">this thread</url> on StackOverflow at <c>stackoverflow.com/questions/2596805</c>.</p>\n    </paragraphs>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/glossary.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2018  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<glossary xml:id=\"glossary\">\n    <!-- Let title internationalize itself -->\n\n    <gi>\n        <title>alt text</title>\n        <idx>alt text</idx>\n        <p>A text description of an image or other visual content.\n           Its purpose is to describe content to readers who are unable to see the page.\n        </p>\n    </gi>\n\n    <gi>\n        <title>AMSMath</title>\n        <idx>AMSMath</idx>\n        <p>A <latex/> package containing a wide variety of common math symbols.\n        </p>\n    </gi>\n\n    <gi>\n        <title>Asymptote</title>\n        <idx>Asymptote</idx>\n        <p>A package for drawing graphs, diagrams or pictures which may be used with <latex/> or <pretext/>.\n        </p>\n    </gi>\n\n    <gi>\n        <title>attribute</title>\n        <idx>attribute</idx>\n        <p>In XML, tags can have attributes, which provide more information about the element.  For example,\n           in <c>&lt;section permid=\"dWf\"></c> the tag is <q>section</q>,\n           the attribute is <q>permid</q>, and the value of that attribute is <q>dWf</q>.</p>\n    </gi>\n\n    <gi>\n        <title>BibTeX</title>\n        <idx>BibTeX</idx>\n        <p>A <latex/> package for typesetting bibliographies.\n        </p>\n    </gi>\n\n    <gi>\n        <title>branch</title>\n        <idx>branch (git)</idx>\n        <p>In git, the files in a repository can exist in multiple versions which are independent\n           of each other, but are able to be merged.  Each independent version is a <term>branch</term></p>\n    </gi>\n\n    <gi>\n        <title>commit</title>\n        <idx>commit (git)</idx>\n        <p>In git, the act of declaring that changes to the files in a branch are now a permanent part of that branch.</p>\n    </gi>\n\n    <gi>\n        <title>copyleft</title>\n        <idx>copyleft</idx>\n        <p>An arrangement whereby software or artistic work may be used,\n           modified, and distributed freely on condition that anything derived from it is bound by the same condition.\n        </p>\n    </gi>\n    <gi>\n        <title>Creative Commons</title>\n        <idx>Creative Commons</idx>\n        <idx>CC</idx>\n        <p>An organization which has created several open licenses for creative works.\n        </p>\n\n        <p>The Creative Commons licenses are:  CC BY, CC BY-SA, CC BY-ND, CC BY-NC, CC BY-NC-SA,\n           and CC BY-NC-ND.  The strings\n           BY, SA, ND, and NC represent, respectively,\n           Attribution, Share Alike, No Derivatives, and Noncommercial.\n        </p>\n    </gi>\n\n    <gi>\n        <title>D3.js</title>\n        <idx>D3.js</idx>\n        <p>A JavaScript library for animating data.\n           The name comes from <q>Data Driven Documents</q>.\n        </p>\n    </gi>\n\n    <gi>\n        <title>Desmos</title>\n        <idx>Desmos</idx>\n        <p>A graphing calculator that can be embedded in a Web page.\n        </p>\n    </gi>\n\n    <gi>\n        <title>division</title>\n        <idx>division</idx>\n        <p>In <pretext/>, a\n           <c>part</c>,\n           <c>chapter</c>,\n           <c>section</c>,\n           <c>subsection</c>,\n           <c>subsubsection</c>,\n           <c>appendix</c>, or\n           <c>paragraphs</c> of a document,\n           other similar components such as\n           <c>readingquestions</c>,\n           <c>exercises</c>, or\n           <c>glossary</c>, as well as various similar content markup outside the\n           main content.\n        </p>\n    </gi>\n\n    <gi>\n        <title>DVI</title>\n        <idx>DVI</idx>\n        <p>A file format intermediate between <latex/> and PS or PDF.\n           Stands for <em>Device Independent</em>.\n        </p>\n    </gi>\n\n    <gi>\n        <title>EPS</title>\n        <idx>EPS</idx>\n        <p>Encapsulated Postscript:  a form of Postscript designed to hold a fragment of a page, to be included\n           in a larger document.\n        </p>\n    </gi>\n\n    <gi>\n        <title>escape character</title>\n        <idx>escape (character)</idx>\n        <p>Every markup language has <term>escape characters</term> which play a special role.\n           In XML there are two escape characters: &amp; and &lt;.\n           In <tex/> there are 10 escape characters: # $ % &amp; \\ ^ _ { } and ~.\n         </p>\n    </gi>\n\n    <gi>\n        <title>FontAwesome</title>\n        <idx>FontAwesome</idx>\n        <p>A <latex/> package containing many popular icons.\n        </p>\n    </gi>\n\n    <gi>\n        <title>GeoGebra</title>\n        <idx>GeoGebra</idx>\n        <p>An interactive environment particularly suited for constructing demonstrations in Euclidean geometry.\n        </p>\n    </gi>\n\n    <gi>\n        <title>GFDL</title>\n        <idx>GFDL</idx>\n        <p>GNU Free Documentation License: a copyleft license for manuals, textbooks,\n           and other written materials.\n           </p>\n    </gi>\n\n    <gi>\n        <title>GIF</title>\n        <idx>GIF</idx>\n        <p>Graphics Interchange Format: a lossless bitmap image format.\n           </p>\n    </gi>\n\n    <gi>\n        <title>git</title>\n        <idx>git</idx>\n        <p>A version control system which is is used to track changes to computer files.\n           Git is particularly useful for large projects involving multiple authors.</p>\n    </gi>\n\n    <gi>\n        <title>GitHub</title>\n        <idx>GitHub</idx>\n        <p>A commercial website which hosts repositories for software projects, with the assumption\n           that users use git to transfer material between GitHub and other systems.</p>\n    </gi>\n\n    <gi>\n        <title>GPL</title>\n        <idx>GPL</idx>\n        <p>GNU General Public License: a copyleft license which gives users the right to\n           run, study, share and modify software.\n           </p>\n    </gi>\n\n\n    <gi>\n        <title>HTML</title>\n        <idx>HTML</idx>\n        <p>Hypertext Markup Language:  the markup language used to describe the content of Web pages.</p>\n    </gi>\n\n    <gi>\n        <title>JavaScript</title>\n        <idx>JavaScript</idx>\n        <p>A computer language in common use for interactivity in Web pages.\n        </p>\n    </gi>\n\n    <gi>\n        <title>JPEG</title>\n        <idx>JPEG</idx><idx><h>jpg</h><see>JPEG</see></idx>\n        <p>A method for compressing digital images, where the amount of compression can be adjusted,\n           allowing for a tradeoff between image size and image quality.  Named for\n           the Joint Photographic Experts Group, which developed the standard.  Files with JPEG\n           compression usually have the extension <c>.jpg</c>.\n           </p>\n    </gi>\n\n    <gi>\n        <title>Jupyter</title>\n        <idx>Jupyter</idx>\n        <p>An interactive computing environment designed to support a wide variety of computer languages.\n           Named after the languages  Julia, Python and R.</p>\n\n        <p>A <term>Jupyter notebook</term> is a Web-based environment running Jupyter,\n           typically accessed through a browser.\n        </p>\n    </gi>\n\n    <gi>\n        <title>JSXGraph</title>\n        <idx>JSXGraph</idx>\n        <p>A JavaScript library for interactive geometry, function plotting, and data visualization.\n        </p>\n    </gi>\n\n    <gi>\n        <title>knowl</title>\n        <idx>knowl</idx>\n        <p>Similar to a hyperlink, except the referenced material appears inside\n           the current Web page.\n           Usually indicated by a dotted underline.\n        </p>\n        <p>Pronounced <q>knoll</q> as in <q>a knoll is a small hill</q>.\n        </p>\n    </gi>\n    <gi>\n        <title><latex/></title>\n        <idx><latex/></idx>\n        <p>A markup language used for books and papers with lots of mathematics, which is built on <tex/>.  <pretext/> uses <latex/> as an intermediate format to produce <init>PDF</init> and print output.</p>\n    </gi>\n\n    <gi>\n        <title>main branch</title>\n        <idx>main branch</idx>\n        <p>In git, the name of the default branch.</p>\n    </gi>\n    <gi>\n        <title>Markdown</title>\n        <idx>Markdown</idx>\n        <p>A plain text markup language which is easy to use, is limited in its capabilities\n           (compared to <pretext/> or <latex/>, for example), but can convert to many other formats.</p>\n    </gi>\n\n    <gi>\n        <title>markup language</title>\n        <idx>markup language</idx>\n        <p>A computer language that uses tags to define the content of a document. XML, HTML, Markdown, and <latex/> are examples of markup languages.</p>\n    </gi>\n\n    <gi>\n        <title>master branch</title>\n        <idx>master branch</idx>\n        <p>In git, the former name of the default branch.\n           Currently <q>main</q> is the preferred.</p>\n    </gi>\n\n    <gi>\n        <title>MathJax</title>\n        <idx>MathJax</idx>\n        <p>A JavaScript package for converting math <latex/> to presentation MathML or other visual formats.</p>\n    </gi>\n\n    <gi>\n        <title>MBX</title>\n        <idx>MBX</idx>\n        <p><pretext/> was once known as <q>MathBook XML</q>, commonly abbreviated as MBX.  This abbreviation appears in many historical references.</p>\n    </gi>\n\n    <gi>\n        <title>MP3</title>\n        <idx>MP3</idx>\n        <p>A format for storing audio content.\n        </p>\n    </gi>\n\n    <gi>\n        <title>MP4</title>\n        <idx>MP4</idx>\n        <p>A format for storing video content.\n        </p>\n    </gi>\n\n    <gi>\n        <title>MyOpenMath</title>\n        <idx>MyOpenMath</idx>\n        <p>A free and open online homework system.\n        </p>\n    </gi>\n\n    <gi>\n        <title>Ogg</title>\n        <idx>Ogg</idx>\n        <p>A format for storing video content.\n        </p>\n    </gi>\n\n    <gi>\n        <title>origin repository</title>\n        <idx>origin repository</idx>\n        <p>In git, the default name for the remote repository from which the local repository was cloned.</p>\n    </gi>\n\n    <gi>\n        <title>PDF</title>\n        <idx>PDF</idx>\n        <p>Portable Document Format:  a file format designed for printing documents, where the appearance of\n           the pages is identical on all devices.</p>\n    </gi>\n\n    <gi>\n        <title>PDFLaTeX</title>\n        <idx>PDFLaTeX</idx>\n        <p>One of the available programs to convert <latex/> to PDF.\n        </p>\n    </gi>\n\n    <gi>\n        <title>pgfplots</title>\n        <idx>pgfplots</idx>\n        <p>A <latex/> package for drawing graphs of functions.</p>\n    </gi>\n\n    <gi>\n        <title>PNG</title>\n        <idx>PNG</idx>\n        <p>Portable Network Graphics: a raster image format that supports lossless data compression.\n           PNG offers a similar functionality to GIF but is not subject to patent protection.\n        </p>\n    </gi>\n\n    <gi>\n        <title>Postscript</title>\n        <idx>Postscript</idx><idx><h>ps (file extension)</h><see>Postscript</see></idx>\n        <idx><h>file extension</h><h>ps</h><see>Postscript</see></idx>\n        <p>A page description language and file format designed for printing documents.\n        </p>\n    </gi>\n\n    <gi>\n        <title><pretext/></title>\n        <idx><pretext/></idx>\n        <p>The markup language and document preparation system for creating the next generation of textbooks.\n           And the generation after that.\n        </p>\n    </gi>\n\n    <gi>\n        <title>PSTricks</title>\n        <idx>PSTricks</idx>\n        <p>A <latex/> package for drawing diagrams and pictures.\n        </p>\n    </gi>\n\n    <gi>\n        <title>pull</title>\n        <idx>pull (git)</idx>\n        <p>In git, the process of transferring information from a remote repository to a local repository.</p>\n    </gi>\n\n    <gi>\n        <title>pull request</title>\n        <idx>pull request</idx>\n        <p>In git, a suggestion that the changes to the files in one branch be merged into another branch\n           (typically in another repository).</p>\n    </gi>\n\n    <gi>\n        <title>push</title>\n        <idx>push (git)</idx>\n        <p>In git, the process of transferring information from a local repository to a remote repository.</p>\n    </gi>\n\n    <gi>\n        <title>Python</title>\n        <idx>Python</idx>\n        <p>A general-purpose programming language, noted for making it easy (compared to other programming\n           languages) for a programmer to read the code written by someone else.\n           Sage is written in Python.\n        </p>\n    </gi>\n\n    <gi>\n        <title>QR code</title>\n        <idx>QR code</idx>\n        <p>Quick Response code: a type of two-dimensional bar code,\n           usually consisting of a grid of small black-and-white squares.\n        </p>\n    </gi>\n\n    <gi>\n        <title>R</title>\n        <idx>R (programming language)</idx>\n        <p>A programming language and software environment for statistics;\n           available in Sage.\n        </p>\n    </gi>\n\n    <gi>\n        <title>Sage</title>\n        <idx>Sage</idx>\n        <p>An open source computer algebra system for a wide range of symbolic and numerical mathematical computations.</p>\n    </gi>\n\n    <gi>\n        <title>Sage cell</title>\n        <idx><h>Sage</h><h>cell</h></idx>\n        <p>A text box in which the user can run Sage commands, designed to be included\n           in a Web page.\n        </p>\n    </gi>\n\n    <gi>\n        <title>Sage interact</title>\n        <idx><h>Sage</h><h>interact</h></idx>\n        <p>A interactive demonstration, with sliders and boxes to adjust parameters,\n           created as a single Python function in Sage.\n        </p>\n    </gi>\n\n    <gi>\n        <title>siunitx</title>\n        <idx>siunitx</idx>\n        <p>A <latex/> package for typesetting scientific units.\n        </p>\n    </gi>\n\n    <gi>\n        <title>SVG</title>\n        <idx>SVG</idx>\n        <p>Scalable Vector Graphics: an XML vector image format for two-dimensional graphics.\n        </p>\n    </gi>\n\n    <gi>\n        <title>tag</title>\n        <idx>tag</idx>\n        <p>In XML, tags are enclosed in angle brackets and are used to describe the contents of a document.\n           For example, if <q>All about even</q> was the title of a book about numbers that are multiples of 2,\n           then the XML source of that book might mark up the title using the <c>title</c> tag,\n           as <c>&lt;title>All about even&lt;/title></c>.\n           In XML, most tags occur in pairs which surround their content, with the closing tag beginning\n           with a <q>slash</q> <c>/</c>.  However, some tags which do not contain content are are <q>self-closing</q>,\n           meaning that they end with a slash, such as <c>&lt;mdash/></c> and <c>&lt;pretext/></c>. </p>\n    </gi>\n\n    <gi>\n        <title><tex/></title>\n        <idx><tex/></idx>\n        <p>A typesetting language with high-quality automatic line- and page-breaking, specifically designed for mathematics.\n        </p>\n    </gi>\n\n    <gi>\n        <title>three.js</title>\n        <idx>three.js</idx>\n        <p>A JavaScript library for animating 3-dimensional graphics on a Web page.\n        </p>\n    </gi>\n\n    <gi>\n        <title>TikZ</title>\n        <idx>TikZ</idx>\n        <p>A <latex/> package for drawing diagrams and pictures.\n        </p>\n    </gi>\n\n    <gi>\n        <title>unicode</title>\n        <idx>unicode</idx>\n        <p>The accepted standard for encoding text in any language.</p>\n    </gi>\n\n    <gi>\n        <title>upstream repository</title>\n        <idx>upstream repository (git)</idx>\n        <p>In git, the usual name for the remote repository from which the local repository was originally forked.</p>\n    </gi>\n\n    <gi>\n        <title>URL</title>\n        <idx>URL</idx>\n        <p>Uniform Resource Locator:  the <q>web address</q> of a Web page (or other online content)\n           consisting of a domain name, optionally followed by strings separated by slashes (<c>/</c>)\n           which indicate specific content in the domain.</p>\n    </gi>\n\n    <gi>\n        <title>Vimeo</title>\n        <idx>Vimeo</idx>\n        <p>A commercial website for hosting videos.</p>\n    </gi>\n\n    <gi>\n        <title>WebM</title>\n        <idx>WebM</idx>\n        <p>A format for storing video content.\n        </p>\n    </gi>\n    <gi>\n        <title><webwork/></title>\n        <idx><webwork/></idx>\n        <p>An open-source online homework system for math and sciences courses.</p>\n    </gi>\n\n    <gi>\n        <title>Wolfram CDF</title>\n        <idx>Wolfram CDF</idx>\n        <idx>CDF</idx>\n        <p> Wolfram Computable Document Format: a system for creating interactive demonstrations\n            hosted in the Wolfram Cloud.\n        </p>\n    </gi>\n\n    <gi>\n        <title><xelatex/></title>\n        <idx><xelatex/></idx>\n        <p>One of the available programs to convert <latex/> to DVI or PDF, the executable is <c>xelatex</c>.\n        </p>\n    </gi>\n\n    <gi>\n        <title>XML</title>\n        <idx>XML</idx>\n        <p>eXstensible Markup Language: the base syntax for the <pretext/> language.\n           Angle brackets enclose matching begin and end tags.  Tags can nest hierarchically, and can have attributes.\n           <init>HTML</init> is another markup language that uses XML syntax.</p>\n    </gi>\n\n    <gi>\n        <title>XSL</title>\n        <idx>XSL</idx>\n        <p>eXstensible Stylesheet Language: the language that describes how to convert XML to other formats.\n           <pretext/>'s XSL stylesheets are used to convert <pretext/> XML to <latex/>, HTML, ePub, and other formats.</p>\n    </gi>\n\n    <gi>\n        <title>xsltproc</title>\n        <idx>xsltproc</idx>\n        <p>A command-line program which takes as input an XSL file and and XML file, using the contents of the XSL\n           file to transform the contents of the XML file. It is now preferred to use the <pretext /> CLI for transforming.</p>\n    </gi>\n\n    <gi>\n        <title>xypic</title>\n        <idx>xypic</idx>\n        <p>A <latex/> package for drawing simple commutative diagrams.\n        </p>\n    </gi>\n\n    <gi>\n        <title>YouTube</title>\n        <idx>YouTube</idx>\n        <p>A commercial website for hosting videos.</p>\n    </gi>\n</glossary>\n\n\n"
  },
  {
    "path": "doc/guide/appendices/journals-table.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<table>\n  <title>Journals supported by PreTeXt</title>\n  <tabular>\n    <row header=\"yes\">\n      <cell>Full Journal Name</cell>\n      <cell>Code</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>AMS journals</cell>\n      <cell>ams</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Elsevier journals</cell>\n      <cell>elsevier</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Springer Nature journals</cell>\n      <cell>springer-nature</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Taylor Francis journals</cell>\n      <cell>taylor-francis</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Annals of Pure and Applied Logic</cell>\n      <cell>ann-pure-appl-logic</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Bulletin (New Series) of the American Mathematical Society</cell>\n      <cell>bull-amer-math-soc</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Conformal Geometry and Dynamics</cell>\n      <cell>conform-geom-dyn</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Electronic Journal of Combinatorics</cell>\n      <cell>electron-j-combin</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Experimental Mathematics</cell>\n      <cell>exp-math</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Journal of Algebraic Geometry</cell>\n      <cell>j-algebraic-geom</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Journal of the American Mathematical Society</cell>\n      <cell>j-amer-math-soc</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Mathematics of Computation</cell>\n      <cell>math-comp</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Quarterly of Applied Mathematics</cell>\n      <cell>quart-appl-math</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Proceedings of the American Mathematical Society</cell>\n      <cell>proc-amer-math-soc</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Representation Theory</cell>\n      <cell>represent-theory</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Theory of Probability and Mathematical Statistics</cell>\n      <cell>theory-probab-math-statist</cell>\n    </row>\n    <row bottom=\"minor\">\n      <cell>Transactions of the American Mathematical Society</cell>\n      <cell>trans-ams</cell>\n    </row>\n  </tabular>\n</table>\n"
  },
  {
    "path": "doc/guide/appendices/journals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2019  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"appendix-journals\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <title>List of Supported Journal Styles</title>\n\n        <p>\n            This appendix contains the list of supported journals and their short name codes.  To specify\n            one of these journals, use the publication file.  See <xref ref=\"common-journal\"/>.\n        </p>\n\n        <p>\n            The code for a journal is taken from the list of abbreviations used by MathSciNet available at <url href=\"https://mathscinet.ams.org/msnhtml/serials.pdf\">https://mathscinet.ams.org/msnhtml/serials.pdf</url>.\n        </p>\n\n        <xi:include href=\"journals-table.xml\"/>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/latex-conversion.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"latex-conversion\">\n    <title>Conversion from <latex /></title>\n\n    <p>As part of the <url href=\"https://utmost.aimath.org/\" visual=\"utmost.aimath.org/\"><init>UTMOST</init></url> project, we offer a service to help convert existing textbooks from <latex/> to <pretext/>. The service is free if you are planning to release your book with an open license.  The conversion will only be 95 percent correct, but that means it will take you 20 times less effort than converting it yourself.</p>\n\n    <p>Before converting your book, familiarize yourself with <pretext/> to the point of being able to compile the sample article and sample book into <init>HTML</init> and <init>PDF</init>.  Check that you can edit the source files and the resulting output files behave as expected.  That way, you will be on familiar ground when you finish the last 5 percent of the conversion.</p>\n\n    <p>The actual conversion will be done by David Farmer from the American Institute of Mathematics.  The first hurdle is to get your <latex/> files to David.  The preferred method is:<ol>\n\n        <li>Put your <em>entire</em> <latex/> source into a GitHub repository.  Do not edit or restructure in any way, nor provide just a subset for <q>testing,</q> since this only complicates the process.  You do not need to include the image files.</li>\n\n        <li>If the repository is private, make David a collaborator so he can access it. (GitHub username: <c>davidfarmer</c>.)</li>\n\n        <li>Email <c>farmer@aimath.org</c> with your request for conversion, including the <init>URL</init> of your repository and a brief description of your project.</li>\n\n        <li>When the first draft of the conversion is ready, you will receive a pull request from David via GitHub. Go ahead and accept it, and now your repository will have new files that are the <pretext/> source.</li>\n\n        <li>Spend some time to review the files carefully, looking for consistent mis-interpretations of your intent. Convert to <init>HTML</init> and <init>PDF</init> and see how they look. There may be some back-and-forth with you explaining what your <latex/> was trying to do, and David improving the conversion to <pretext/>.</li>\n\n        <li>At some point it will be up to you to take ownership of the <pretext/> source and finish the conversion.</li>\n    </ol></p>\n\n    <p>This service is for authors who wish to consider having <pretext/> as the <q>official</q> source of their textbook.  It is not feasible to maintain <latex/> source and expect to have all of the features of <pretext/>.</p>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/liblouis.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2023  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"liblouis\">\n    <title>LibLouis</title>\n    <idx>liblouis</idx>\n\n    <introduction>\n        <p><url href=\"https://liblouis.io\"><c>liblouis</c></url> is an open-source library for low-level translation of phrases into braille, supporting many, many languages.  We rely on Python bindings for this library to translate all of the literary text (non-math) to braille for a document, so this is an essential piece of the pipeline.  Once installed, its use is transparent.  This appendix outlines two alternative installation methods, current as of 2025-12-19, on Linux, Mac, and Windows Subsystem for Linux.  Contributions of adjustments for other operating systems are welcome.</p>\n    </introduction>\n\n    <section xml:id=\"liblouis-system-pkg\">\n        <title>Installing as a system package</title>\n\n        <p>\n            For many operating systems, one may install the <c>liblouis</c> Python bindings as a system package.  For instance, on Debain/Ubuntu systems and Windows Subsystem for Linux, run\n            <cd>\n                <cline># sudo apt install python3-louis</cline>\n            </cd>\n            and on Mac\n            <cd>\n                <cline># brew install liblouis</cline>\n            </cd>\n            To test the bindings, the following should complete successfully in a Python interpreter\n            <cd>\n                <cline>>>> import louis</cline>\n            </cd>\n        </p>\n\n        <p>\n            If you are following best practices by using a <xref ref=\"python-virtual\" text=\"custom\">Python virtual environment</xref> for your <pretext/> project, you will need to give the environment access to system packages since <c>liblouis</c> is now installed as a system package.  You can do this when creating the virtual environment using\n            <cd>\n                <cline># python3 -m venv /path/to/venv --system-site-packages</cline>\n            </cd>\n            If you have an existing virtual environment configured for your <pretext/> project, you may alternatively edit one line in the file <c>pyvenv.cfg</c> in the virtual environment's main directory:\n            <cd>\n                <cline>include-system-site-packages = true</cline>\n            </cd>\n        </p>\n    </section>\n\n    <section xml:id=\"liblouis-source\">\n        <title>Installing from source</title>\n\n        <p>While the <c>python3-louis</c> system package appears to be updated frequently, if you need a more recent version of <c>liblouis</c> or simply feel a little more adventurous, you may wish to install <c>liblouis</c> directly from source following these instructions:\n        <ul>\n            <li>\n                <p>Download the <c>liblouis-X.YY.0.tar.gz</c> archive from the <url href=\"https://liblouis.io/downloads\">downloads page</url>.  Releases are tracked at the <url href=\"https://github.com/liblouis/liblouis/releases\">GitHub release page</url>.  The <c>liblouisutdml</c> package is not necessary.</p>\n            </li>\n            <li>\n                <p><c>tar -xvf liblouis-X.YY.0.tar.gz</c> into a scratch directory like <c>/tmp</c>.</p>\n            </li>\n            <li>\n                <p>Switch to being root (<c>sudo</c>) and <c>cd</c> into the directory created by the extraction.</p>\n            </li>\n            <li>\n                <p>In your terminal run<cd>\n                <cline># ./configure --enable-ucs4</cline>\n                <cline># make</cline>\n                <cline># make install</cline>\n                </cd>The <q>ucs4</q> flag enables 32-bit Unicode support, which is necessary for running tests later.</p>\n            </li>\n            <li>\n                <p>Read <c>/tmp/liblouis-X.YY.0/python/README.md</c> and perform two steps, still as root, from within the directory structure in <c>/tmp</c>: install the bindings into your Python distribution and run the Python tests.  Instructions for setting up a Python virtual environment are also available in that file.</p>\n            </li>\n            <li>\n                <p>I do not do anything special to clean-up afterwards, and of course, my <c>/tmp</c> goes away on the next reboot.  I also do not do anything special when installing the next version, I just follow the same procedure as a fresh install.</p>\n            </li>\n        </ul></p>\n    </section>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/mac-os.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2019  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"mac-os-install-notes\">\n    <title>MacOS Installation Notes</title>\n\n    <introduction>\n       <p>This appendix explains how to install necessary software on Apple's Mac.</p>\n    </introduction>\n\n    <section xml:id=\"mac-os-java\">\n        <title>Java</title>\n\n        <p>The <c>jing</c> and <c>trang</c> schema tools (<xref ref=\"schema-install\"/>) require the Java Development Kit (<init>JDK</init>).  These instructions come from Mitch Keller and Jane Butterfield on 2019-07-23.  You may need to change some version numbers over time.</p>\n\n        <list>\n            <title>Install Java on MacOS</title>\n\n            <ol>\n                <li><p>From <url href=\"https://jdk.java.net/12/\" visual=\"jdk.java.net/12/\"/> get an open source <init>JDK</init>.  In other words, not the proprietary version from Oracle.</p></li>\n\n                <li><p>Unzip the file you download until you have a directory called <c>jdk-12.0.1.jdk</c>. Put that directory somewhere useful. We will pretend that you put it in your home directory and that your user is called <c>jane</c>, which means that the directory is now at <c>/Users/jane/jdk-12.0.1.jdk</c>.</p></li>\n\n                <li><p>In a Terminal, run<cd>export JAVA_HOME=/Users/jane/jdk-12.0.2.jdk/Contents/Home</cd>adjusted appropriately.  A good check is to get this same directory back from the command<cd><cline>echo $(/usr/libexec/java_home)</cline></cd></p></li>\n\n                <li><p>If you are doing this to install <c>jing</c> and <c>trang</c>, then, <em>in the same Terminal window</em>, <c>cd</c> into the <c>jing-trang</c> directory and run <c>./ant</c>.</p></li>\n            </ol>\n        </list>\n  </section>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/node-npm.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"node-and-npm\">\n    <title>Node and npm</title>\n    <idx>Node</idx>\n    <idx>npm</idx>\n\n    <p>To run a Javascript program <em>outside</em> a web browser requires a program that can interpret the Javascript language.  A popular choice is <c>node.js</c>, whose executable is simply <c>node</c>.  Programs designed for execution by <c>node</c> often build on other programs.  These are all organized in packages, which can be managed by the Node Package Manager, known as <c>npm</c> for short.  A basic purpose of <c>npm</c> is to manage versions and dependencies among packages.</p>\n\n    <p>So the first step is to install both <c>node</c> and <c>npm</c> on your system.  <url href=\"https://nodejs.org/en/download/package-manager\">Instructions for installing node and npm</url> can be found at <url href=\"https://nodejs.org/\">nodejs.org</url>.  These programs are meant to be cross-platform, so once you do these two operating-system-specific installations, we can proceed with generic instructions.</p>\n\n    <p>Now <c>node</c> should be on your path, and you can try <cd>which node</cd> to see if your operating system can locate it automatically.  If not, then you will need to edit your personal copy of the <c>pretext.cfg</c> configuration file to have the <c>node</c> key provide a path to the executable (see <xref ref=\"pretext-helpers\"/>).</p>\n\n    <p>Some useful <c>npm</c> commands are listed below, in the form of examples. These commands depend on running in a <term>package</term> <em/> a folder containing a file named <q>package.json</q>. So before trying to run any of them, make sure to navigate to such a folder (e.g. <c>script/mjsre</c> or <c>script/cssbuilder</c>).  In particular, note <c>npm install</c> which must be run before using a script.</p>\n\n    <p>When using node with git (see <xref ref=\"git-author\"/>), you generally should should check <c>package.json</c> and <c>package-lock.json</c> into source control, but ignore the entire <c>node_modules</c> folder.</p>\n\n    <table>\n        <title>Useful <c>npm</c> commands</title>\n        <tabular>\n            <row>\n                <cell><c>npm install</c></cell>\n                <cell>Install the packages listed in the <q>package.json</q> file to the folder <c>node_modules</c>. This is required one time before you use a package.</cell>\n            </row>\n            <row>\n                <cell><c>npm list</c></cell>\n                <cell>Full tree of installed packages (local)</cell>\n            </row>\n            <row>\n                <cell><c>npm list mathjax-full</c></cell>\n                <cell>Just one package</cell>\n            </row>\n            <row>\n                <cell><c>npm view speech-rule-engine version</c></cell>\n                <cell><em>Available</em> version</cell>\n            </row>\n        </tabular>\n    </table>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/offline-mathjax.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"offline-mathjax\">\n    <title>Offline MathJax</title>\n    <idx>MathJax</idx>\n\n    <introduction>\n        <p><pretext/> uses the well-known <latex/> syntax for mathematics.  One fundamental reason for this choice is that the <url href=\"https://www.mathjax.org/\" visual=\"www.mathjax.org/\">MathJax</url> Javascript library is so capable at rendering <latex/> inside of an <init>HTML</init> web page.  Of course, it is not hard to render <latex/> syntax inside of <latex/> output!  But what about output formats that are not processed by <latex/> or Javascript, such as <init>EPUB</init> or braille?  That is where running MathJax offline (locally) comes into play.</p>\n    </introduction>\n\n    <section xml:id=\"install-mathjax\">\n        <title>MathJax and Speech Rule Engine</title>\n        <idx>Speech Rule Engine</idx>\n\n        <p>MathJax is packaged as a <c>node.js</c> program. A component of MathJax is Speech Rule Engine (<init>SRE</init>), which converts <latex/> to text that represents a spoken version of the mathematics, and to Nemeth braille, a braille code for expressing mathematics.</p>\n\n        <p>Any <c>node.js</c> script requires installing Node. See <xref ref=\"node-and-npm\"/> for instructions on doing so. Once Node is installed, you can use the following instructions to complete the installation of MathJax and the <init>SRE</init>.</p>\n\n        <p>Follow the directions here <em>exactly</em>.  Do not free-style and think some modification will have a better or identical result.  In a terminal, set your working directory with<cd>\n            <cline>cd /path/to/pretext/script/mjsre</cline>\n        </cd>\n        Install both packages at the same time with a single command:<cd>\n            <cline>./update-sre</cline>\n        </cd>It is possible you will need to make this simple script executable.  On Unix-style systems (Linux, Mac OS) this can be done with the <c>chmod</c> command.  As this is a bash script, Windows users must use Window's Subsystem for Linux or examine the contents of the script to run the commands manually.</p>\n\n        <p>The <c>update-sre</c> script is supplied by <pretext/>.  It will create a file and a directory:<cd>\n            <cline>/path/to/pretext/script/mjsre/package-lock.json</cline>\n            <cline>/path/to/pretext/script/mjsre/node_modules</cline>\n        </cd>Neither will be tracked by <c>git</c>.  Since SRE changes faster than MathJax, this will replace MathJax's expectation for a version of SRE with a potentially newer version.  So do not be alarmed if it appears MathJax is missing a dependency, that is intentional.</p>\n\n        <p>Now you have copies of MathJax and SRE that can be used by the <c>pretext/pretext</c> script to process mathematics offline into useful formats for conversions to <init>EPUB</init>, Kindle, and braille.</p>\n    </section>\n\n\n    <section xml:id=\"math-representations\">\n        <title>Mathematics Representations</title>\n\n        <p>Once MathJax is installed properly, the <c>pretext/pretext</c> script will be able to produce an <init>EPUB</init> version of your project.  The script will first analyze your document, isolating all of the mathematics.  These are then processed by MathJax and produce a file of <term>representations</term> of the mathematics, either as <init>SVG</init> images or as MathML versions.  These representations are then inserted properly into the eventual output.  This process is all automatic but explains why it is possible to produce two different types of <init>EPUB</init>.  A good test of your installation is to use the <c>pretext/pretext</c> script to make an <init>EPUB</init> (<xref provisional=\"epub production\"/>) or the script can be used to simply produce structured files of these alternate representations (see <xref provisional=\"script math representations\"/> or paragraph just below).</p>\n\n        <p>With <init>SRE</init> also installed, text (speech) becomes a possible representation, as well as Nemeth braille.  This makes possible an <init>EPUB</init> version that is all text, and there are online sites that will turn this <init>EPUB</init> into an audio book (of not very good quality).  The braille representations are one component of the production of braille output.  (<xref provisional=\"braille production\"/>, <xref ref=\"mathematics-representations\" text=\"title\"/>)</p>\n\n        <p>If you use the <c>pretext/pretext</c> script with a <c>math</c> component, and a format of <c>svg</c> or <c>mathml</c>, you will produce a file of these representations, structured by <init>XML</init> (naturally).  These files are not much use by themselves, but may be of interest.</p>\n    </section>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/python.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"python\">\n    <title>Python</title>\n\n    <section xml:id=\"python-executable\">\n        <title>Python Executable</title>\n\n        <p>While the majority of the processing of your text is accomplished with <init>XSL</init> transforms, we rely on Python for numerous other tasks and conveniences.  So, sooner or later, you will want, or need, to get Python working on your system.  Part of our attraction to Python is that is very popular and so should run very similarly (identically?) on a variety of systems: Linux, Mac, and Windows.  So the quicker we can get you to a platform-neutral setup, the better.</p>\n\n        <p>On Linux and Mac, you will likely have at least some version of Python already installed.  On Windows, you may need to explicitly install it.  (We hope to provide some more careful advice here for Windows users.  For now, see <xref ref=\"installing-anaconda\"/> and <xref ref=\"windows-subsystem-linux\"/>.)</p>\n\n        <p>Python 2 is no longer being developed and is officially dead.  That does not mean you do not have it on your system.  And for older systems, it may well be the default.  <pretext/> requires at least Python 3.8.5 (current as of 2022-08-31).  At a command-line, or in a terminal or console, or at a command-prompt, try<cd>\n            <cline>python --version</cline>\n        </cd>and if the result is unacceptable, then try<cd>\n            <cline>python3 --version</cline>\n        </cd>Remember which variant you need<mdash/>we will just routinely use the generic <c>python</c>.</p>\n    </section>\n\n    <section xml:id=\"python-virtual\">\n        <title>Python Virtual Environment</title>\n\n        <p>There is a very good chance your system has a version of Python\n        installed already since various other programs rely on it.  You will be much happier if various Python programs you need for <pretext/> do not get entangled with your Python programs installed as system software.  And if we need to help you debug some related problems we will ask you to work in a virtual environment anyway.  We will follow a <url href=\"https://realpython.com/python-virtual-environments-a-primer/\" visual=\"realpython.com/python-virtual-environments-a-primer/\">primer</url> that has been recommended by Brad Miller, founder of Runestone Interactive.  See that page for more details.</p>\n\n        <p>These are condensed instructions without much explanation.<ol>\n            <li>Do not install the old-school <c>virtualenv</c> module.</li>\n            <li>Make a directory anywhere you like named <c>virtual-python</c> and change into it.</li>\n            <li><c>python3 -m venv ptx</c> makes a virtual environment named <c>ptx</c>. (Requires Python 3.6 or later.)</li>\n        </ol>Done.  But how do you use it?<ol>\n            <li>\n                <p>To activate your virtual environment, be sure you are in the <c>virtual-python</c> directory.\n                For Mac or Linux, with a bash shell go<cd>\n                    <cline>source ptx/bin/activate</cline>\n                    <cline>(ptx) $</cline>\n                </cd>\n                There are other scripts for other shells, take a look around.</p>\n                <p>For Windows, go<cd>\n                    <cline>ptx/Scripts/activate.bat</cline>\n                    <cline>(ptx) &gt;</cline>\n                </cd>Notice that your prompt has changed to remind you that now anything you do with Python will be <q>sandboxed</q> in this virtual environment and not get mixed up with your system Python.</p>\n            </li>\n            <li>Now you can do any Python-related task using your virtual environment, and can change directories if desired.</li>\n            <li>\n                <p>When you are finished with your virtual environment, on Mac or Linux with a bash shell you simply go<cd>\n                    <cline>(ptx) $ deactivate</cline>\n                    <cline>$</cline>\n                </cd></p>\n                <p>For Windows, similarly<cd>\n                    <cline>(ptx) &gt; deactivate</cline>\n                    <cline>&gt;</cline>\n                </cd></p>\n                <p>We have one report, on a Mac, of deactivation dropping you into a different virtual environment named <c>(base)</c>.  A way to leave that virtual environment is to run<cd>\n                    <cline>(base) $ conda deactivate</cline>\n                </cd>This appears to be due to Anaconda somehow creating a default base environment initially.  If you have this experience and find a simple solution, please report it.  Some details at <url href=\"https://stackoverflow.com/questions/54429210/how-do-i-prevent-conda-from-activating-the-base-environment-by-default\" visual=\"stackoverflow.com/questions/54429210\">Stack Overflow 54429210</url> may be helpful.</p>\n            </li>\n        </ol></p>\n    </section>\n\n    <section xml:id=\"pip-install\">\n        <title><init>PIP</init> Install</title>\n\n        <p><init>PIP</init>, in the open source tradition of recursive acronyms,\n        stands for <q>PIP Installs Packages</q>.  This package manager helps you obtain software and keep it up-to-date.  There are three packages that are indispensable for use with <pretext/> so you can practice doing installations now via your virtual environment.</p>\n\n        <p>\n          If you have installed the <pretext/>-CLI already using pip, then all the programs below are already installed.  Otherwise (for example, if you are using <c>xsltproc</c>) you will need to install the following manually.\n        </p>\n\n        <p>\n          To install all required additional python libraries, in your virtual environment, navigate to the <c>pretext</c> directory and run\n          <cd>\n            <cline>(ptx) $ pip install</cline>\n          </cd>\n          You can also install individual libraries, as in\n          <cd>\n            <cline>(ptx) $ pip install lxml</cline>\n          </cd>\n        </p>\n\n        <p>With <c>lxml</c>, you have a collection of Python routines that interface with the same base libraries for <init>XSL</init> processing as the <c>xsltproc</c> executable.  A second library is <c>requests</c> which moderates communications with online servers and is necessary to communicate with WeBWorK servers and with a YouTube server that provides thumbnail images for static versions of videos. The <c>pdfCropMargins</c> package provides a tool that will crop images during their production with the <c>pretext</c> script.  The <c>pyMuPDF</c> library then converts the <init>PDF</init> that was cropped to <init>SVG</init> and <init>PNG</init> images.  Finally, <c>playwright</c> uses a Chromium headless browser to take static screenshots of interactive elements of your project.</p>\n\n        <p>Note that right after you install <c>playwright</c> then you want to run<cd>\n            <cline> playwright install</cline>\n        </cd>one time only.  This will install three web browsers (Chromium, Firefox, WebKit) and FFMPEG where they should only be available to this package.</p>\n\n        <table>\n            <title>PIP-installable Python Packages</title>\n\n            <tabular>\n                <col/>\n                <col width=\"60%\"/>\n                <row bottom=\"major\">\n                    <cell>Package</cell>\n                    <cell>Purpose</cell>\n                </row>\n                <row>\n                    <cell><c>lxml</c></cell>\n                    <cell><p>XSL processing</p></cell>\n                </row>\n                <row>\n                    <cell><c>requests</c></cell>\n                    <cell><p>Communication with online servers</p></cell>\n                </row>\n                <row>\n                    <cell><c>pdfCropMargins</c></cell>\n                    <cell><p>Crop images during production</p></cell>\n                </row>\n                <row>\n                    <cell><c>playwright</c></cell>\n                    <cell><p>Automatic screenshots of interactive elements</p></cell>\n                </row>\n                <row>\n                    <cell><c>pyMuPDF</c></cell>\n                    <cell><p>Convert images to SVG and PNG</p></cell>\n                </row>\n            </tabular>\n        </table>\n    </section>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/references.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2020  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<references xml:id=\"references\">\n    <!-- Let title internationalize itself -->\n\n    <biblio type=\"raw\" xml:id=\"cmos\">\n        <title>The Chicago Manual of Style</title>.  Fifteenth Edition, The University of Chicago Press. 2003.\n    </biblio>\n\n    <biblio type=\"raw\" xml:id=\"knuth-literate-programming\">\n        Knuth, Donald E., <title>Literate Programming</title>.  <journal>The Computer Journal</journal>, 1983, <url href=\"http://www.literateprogramming.com/knuthweb.pdf\" visual=\"www.literateprogramming.com/knuthweb.pdf\"/>.\n    </biblio>\n\n    <biblio type=\"raw\" xml:id=\"indexing-guide\">Fred Leise, Kate Mertes, Nan Badgett, <title>Indexing for Editors and Authors: A Practical Guide to Understanding Indexes</title>, American Society of Indexers, 2008</biblio>\n\n</references>\n"
  },
  {
    "path": "doc/guide/appendices/schema-install.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"schema-install\">\n    <title>Schema Tools</title>\n\n    <introduction>\n        <p>This appendix has technical information about tools that work with the <acro>RELAX-NG</acro> schema and our additional validation stylesheet.  See <xref ref=\"schema\" /> for a more general overview.</p>\n    </introduction>\n\n    <section xml:id=\"jing-trang\">\n        <title>Jing and Trang</title>\n\n        <introduction>\n            <p>These tools come from James Clark, an author of the <acro>RELAX-NG</acro> syntax.  <c>trang</c> is a converter between different formats for schemas.  An author should not ever need it.  Though a <pretext /> developer might find it useful, and it is a by-product of the <c>jing-trang</c> install described below.</p>\n\n            <p><c>jing</c> is our recommendation for <acro>RELAX-NG</acro> validation by authors, and works very well.</p>\n\n            <p><c>jing</c> and <c>trang</c> are packaged (separately) for Debian/Ubuntu Linux, see <xref ref=\"jing-ubuntu\"/>.  Reports of other similarly easy installations for other operating systems, to be included here, are especially welcome.  We have employed the Debian/Ubuntu versions and also versions built from source, see <xref ref=\"jing-from-source\"/>.</p>\n        </introduction>\n\n        <subsection xml:id=\"jing-ubuntu\">\n            <title><c>jing</c> on Ubuntu and CoCalc</title>\n\n            <p><url href=\"https://cocalc.com/\" visual=\"cocalc.com/\">CoCalc</url> runs Ubuntu when you create a terminal window.  The necessary Ubuntu Linux (Debian) package is also named <c>jing</c> and is installed as part of the CoCalc setup.  So on Ubuntu, you need to install this package, and on CoCalc you will need to copy over the <c>schema/pretext.rng</c> version of the schema.  If you have a CoCalc subscription, it would be even better if you made a clone of the PreTeXt repository, so it would be trivial to update and always have the latest version of the schema in your CoCalc account.</p>\n\n            <p>Now it is straightforward to execute <c>jing</c>:<cd>\n                <cline>jing /path/to/pretext.rng aota.xml</cline>\n            </cd></p>\n\n            <p>Presumably something similar to the above will work for any Linux distribution that has packages for <c>jing</c>.</p>\n\n            <!-- warning about using single source also in \"from source\" section -->\n            <p>Note that if you have modularized your source files (see <xref ref=\"processing-modular\"/>), you only need to provide the top-level file as an argument to <c>jing</c>. In particular, the subsidiary files are certain to fail validation since they do not have a <tag>pretext</tag> root element.</p>\n        </subsection>\n\n        <subsection xml:id=\"jing-from-source\">\n            <title>Install <c>jing</c> from Source</title>\n\n            <p>If you cannot install this tool easily as part of your system, you can still follow the notes below to build from source.  Many authors have done this successfully.  Installation notes for <c>jing</c> and <c>trang</c> follow.\n                <dl width=\"narrow\">\n                    <li>\n                        <title>Clone</title>\n                        <p>Clone the <c>git</c> repository at <url href=\"https://github.com/relaxng/jing-trang\" visual=\"github.com/relaxng/jing-trang\"/> with the command<cd>\n                            <cline>git clone https://github.com/relaxng/jing-trang</cline>\n                        </cd>which assumes you have a command-line version of <c>git</c> installed.  You will end up with a new <c>jing-trang</c> directory, which you will certainly want <em>outside</em> of your <pretext /> files and <em>outside</em> of your project files.</p>\n                    </li>\n\n                    <li>\n                        <title><c>readme.md</c></title>\n                        <p>Follow the instructions in the <c>readme.md</c> found at the top level of the <c>jing-trang</c> distribution, observing the following notes keyed to the four steps.  These helpful notes come courtesy of the experiences of Jahrme Risner, Mitch Keller, Bruce Yoshiwara, Ken Levasseur, and Jessica Sklar on a variety of operating systems.</p>\n                        <p><ol>\n                            <li>\n                                <p>It is necessary to have a developer's version of <c>java</c> on your machine.  Try <c>which java</c> to see if one is already available.  Any output here might help in the next step.  References here to the <init>JDK</init> is the Java Development Kit.  There are specific directions for MacOS (<xref ref=\"mac-os-java\"/>) and Windows (<xref ref=\"section-jing\"/>).</p>\n                            </li>\n\n                            <li>\n                                <p>You will need to have the <c>JAVA_HOME</c> environment variable set correctly.  You can try <c>echo ${JAVA_HOME}</c> in a Linux console to see if it produces anything sensible and/or consistent with Step 1.  Ken Levasseur notes that on MacOS you can go<cd>\n                                    <cline>echo $(/usr/libexec/java_home)</cline>\n                                </cd>and the output is what you set to the <c>JAVA_HOME</c> variable.</p>\n                                <p>On Windows you may need to set Environmental Variables in the Windows System Properties GUI, both here and in Step 4.</p>\n                            </li>\n\n                            <li>\n                                <p>Setting your working directory to the root directory of the <c>jing-trang</c> distribution should not cause any particular difficulties.</p>\n                            </li>\n\n                            <li>\n                                <p>You may need to install the <c>ANT</c> tool, almost certainly on Windows.  Again, on Windows you may need to set an <c>ANT_HOME</c> environment variable.  On Linux, this may be all set for you already as a system tool.</p>\n                                <p>The README suggests changing slashes on Windows.  But you may already be using a shell that gives Unix-like behavior.  So try both directions, if necessary.  Also, the README suggests running <c>./ant test</c> (or <c>.\\ant test</c>). Doing this on Windows may yield a <c>BUILD FAILED</c> message, but <c>jing</c> may still work.</p>\n                            </li>\n                        </ol></p>\n                    </li>\n\n                    <li>\n                        <title>Results</title>\n                        <p>Change into the <c>build</c> subdirectory.  You may have more files here, but the two you really want are <c>jing.jar</c> and <c>trang.jar</c>.  So if you have these, you are in good shape.</p>\n                        <p>If you have modularized your source files (<xref ref=\"processing-modular\" />) then you need one more library.  Look in the top-level <c>lib</c> directory (a peer of <c>build</c>) for <c>xercesImpl.jar</c>.  You have two and a half choices now.<ul>\n                            <li>Copy <c>lib/xercesImpl.jar</c> into <c>build</c>.</li>\n                            <li>Or make a <q>symbolic link</q> to the third JAR archive.  Be sure you are in <c>build</c> and go<cd>\n                                <cline>ln -s ../lib/xercesImpl.jar</cline>\n                            </cd>which will just make your operating system think this third archive is in the <c>build</c> directory.</li>\n                            <li>A third option would be to adjust/augment some classpath information below and send us a report of success.  We have not tested this approach.</li>\n                        </ul></p>\n                    </li>\n                </dl>\n            </p>\n\n            <p>Now you are ready to use <c>jing</c> to validate a <pretext /> document.  Note that the commands below require the <init>XML</init> version of the schema, which is the non-compact version.  Also, these are the commands if you build <c>jing-trang</c> from source.  If you install a system-supplied version, then consult the <c>man</c> pages, or similar, for syntax which is likely much easier and direct.</p>\n\n            <!-- warning about using single source also in \"ubuntu/cocalc\" version -->\n            <p>For a document contained in a single file, run (with suitable working directory and path prefixes).<cd>\n                <cline>java -jar jing-trang/build/jing.jar pretext.rng my-book.xml</cline>\n            </cd>For a document modularized across several files using the <c>xinclude</c> mechanism, issue as one single command line (again, with suitable working directory and path prefixes).  This presumes you have moved or symlinked the <c>lib/xercesImpl.jar</c> file into the <c>build</c> directory.  Do not leave any spaces around the equals-sign, we have split that line there for readability, so the <c>-D</c> option should not have any spaces in its argument.<cd>\n                <cline>java -classpath jing-trang/build</cline>\n                <cline>-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=</cline>\n                <cline>    org.apache.xerces.parsers.XIncludeParserConfiguration</cline>\n                <cline>-jar jing-trang/build/jing.jar pretext.rng my-book.xml</cline>\n            </cd>It may go without saying that scripting this task will make you more likely to do it as often as is necessary and you will save yourself much time, and a little frustration, in the process.</p>\n\n            <p>Jahrme Risner provides the following setup he uses to make it very convenient to regularly validate his sources.  This is a <q>shell script</q>, which a Linux user might add to their <c>~/.bashrc</c> file.  Note that we have again split the line with the <c>-D</c> option at the equals-sign, without a line-continuation character.  Do not do that in your version.<cd>\n                <cline>ptx-check() {</cline>\n                <cline>  java\\</cline>\n                <cline>    -classpath ~/GitHub/jing-trang/build\\</cline>\n                <cline>    -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=</cline>\n                <cline>        org.apache.xerces.parsers.XIncludeParserConfiguration\\</cline>\n                <cline>    -jar ~/GitHub/jing-trang/build/jing.jar\\</cline>\n                <cline>    ~/GitHub/pretext/Schema/pretext.rng \"$1\"</cline>\n                <cline>}</cline>\n            </cd>Then he can simply go<cd>\n                <cline>~ $ ptx-check my-book.xml</cline>\n            </cd>at anytime.  Note that you might have to provide or adjust some of the paths above for your situation.  And there are other ways to script tasks like this.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"pretext-validation-plus\">\n        <title><pretext/> Validation Plus</title>\n\n        <p>The second step of validation is our <q>validation-plus</q> stylesheet.  Fortunately, there is nothing to install.  Use it just like the conversions you have already been doing.  In the <pretext/> distribution, in the <c>schema</c> directory you will find <c>pretext-validation-plus.xsl</c>.  This is a stylesheet, unique to <pretext/>, which will carefully analyze your source to find any exceptions that the <acro>RELAX-NG</acro> schema was not designed to catch.  You use the stylesheet like any other,<cd>\n            <cline>xsltproc ~/pretext/schema/pretext-validation-plus.xsl ~/books/aota/animals.xml</cline>\n        </cd>with suitably adjusted paths, and be sure to provide the <c>-xinclude</c> switch if your source is modularized across multiple files (<xref ref=\"processing-modular\" />).  No news is good news, but each exception found should provide enough explanation for you to locate, and correct, the problem.  These messages are under <pretext/>'s control, so please report any that are not helpful enough.  That's it<mdash/>easy.</p>\n    </section>\n\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/welcome.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2018  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"welcome\">\n    <title>Welcome to the <pretext/> Community</title>\n\n    <introduction>\n        <p>Thank-you for your interest in <pretext/>, and welcome!  This appendix is meant to answer some questions you may have about how this open-source project is organized, how you can get help, and how you can contribute back.</p>\n\n        <p><pretext/> is not <latex/> and it is not Word.  Some <q>features</q> of those languages are intentionally missing, but more importantly, the mind-set expected of authors is completely different. One of the most important distinctions is that <pretext/> treats the author, the publisher, and the reader (which might be an instructor) as separate entities<mdash/>even when those are all the same person.</p>\n\n        <p>Newcomers to <pretext/> should focus on the author role. Make sure the structure of your book is marked-up properly. If something looks wrong in your output, assume it is a problem with the source markup.  If the source is correct but the output does not look as you wish, leave that as a problem for the publisher, to be addressed <em>after</em> you have finished writing the content.</p>\n    </introduction>\n\n    <section xml:id=\"help-and-support\">\n        <title>Help and Support</title>\n\n        <p>There is a documentation area at the project website.  Presumably, that is where you found this <pubtitle><pretext/> Guide</pubtitle>.  This is what another software project might call the <pubtitle>User's Manual</pubtitle>.  So start here.  Re-read <xref ref=\"philosophy\"/> on the project philosophy and the principles in <xref ref=\"list-principles\"/> at regular intervals.  <xref ref=\"overview\"/> is meant to inform you of the features of <pretext/>, without getting into all the details.  It will frequently refer you to <xref ref=\"topics\"/> for all those details.</p>\n\n        <p>PreTeXt is fundamentally a specification of a set of elements and attributes, a topic discussed in <xref ref=\"schema\"/>.  This chapter also discusses validation.  Once comfortable, but before authoring lots of material, take the time to get validation working, and use it regularly.  Do not save it for last.</p>\n\n        <p>There are many examples available in an area on the website.  Compare <pretext /> source to the resulting output (in both directions).  The <articletitle>sample article</articletitle> is not always pretty, since it is used for testing, but it does try to have one of everything.</p>\n\n        <p>When the above is not sufficient, the <c>pretext-support</c> Google Group is the right place to ask questions.  If you are trying to determine which elements to use to accomplish something, provide some context.  Do not ask, <q>How do I print a line of text upside-down?</q>  Instead say, <q>I am writing a monograph on mammalian vision, and I'd like the reader to use a mirror to view a line of text written upside down.  What is the best way to do that?</q>  (I think the answer would be: make an image and include that, rather than trying to get reflected text.)  Sometimes a quick search of the Goggle Group may yield insights.  Overall, do your best not to be a <url href=\"http://slash7.com/2006/12/22/vampires/\" visual=\"slash7.com/2006/12/22/vampires/\">Help Vampire</url>.</p>\n\n    </section>\n\n    <section xml:id=\"drop-in\">\n        <title>Weekly Drop-Ins</title>\n\n        <p>Since May<nbsp/>2020 there has been a standing weekly online gathering of <pretext/> authors and developers on Friday afternoons.  And now there is a companion session on Tuesday afternoons, and a Getting Started session on Mondays.  A weekly schedule of these, and other activities, is posted to the <c>pretext-announce</c> Google Group, so look there for particulars.   Once in a while there are scheduled discussions on development topics or seminars on topics of interest to authors and developers (such as building an index, see <xref ref=\"topic-index-advice\"/>).  But mostly there is no agenda and no schedule.  Come late, leave early, drop-in, drop-out. If you are present, then you are implicitly available to help someone with questions, even if you are working on something yourself.  The rest of us may lurk and/or join in.  We can use break-out rooms if a subgroup wants to run a discussion, work on a targeted project, or help somebody get started one-on-one.  The model is the hotel lobby after dinner at a workshop, but you provide your own contraband.</p>\n\n        <p>So this is a great place to discuss a support question (likely with the person who wrote the code!) or a place to get involved with development.</p>\n    </section>\n\n    <section xml:id=\"github-issues\">\n        <title>Feature Requests and Reporting Problems</title>\n\n        <p>We use the <term>issue tracker</term> at the GitHub site as an organized to-do list.  You do not need to know anything about <c>git</c> to use this forum.  Just make a new issue, or make a comment on an existing issue.  Frequently, a discussion on the groups will culminate with the creation of a new issue.  It is nice to have a link from the discussion to the issue, and vice-versa.</p>\n\n        <p>If you are asked to create an issue in response to a discussion you initiated, please consider doing so.  It will save the other volunteers just a bit of time to work on other parts of <pretext />.  And you will also get email-for-life as the issue is discussed and eventually closed.  It is a very helpful contribution.</p>\n\n        <p>As you gain more experience, you will identify bugs, obsolete instructions, typos, <etc/>  Search the issues to see if there is something relevant you can add.  For example, your particular version of a bug might provide the key insight into identifying the cause.  When you are certain something is wrong, and there is no need to discuss it in the groups, feel free to go straight to making an issue.  For something like a list of typos, make a single issue and just keep editing your initial post.</p>\n\n        <p>If you have some structural problem, see if you can reproduce it by adding into the minimal example, and post that <em>entire</em> source file.  If the rendering in <init>HTML</init> is a bit off or you think it exhibits a bug, be sure to post a link to a <em>live</em> example, not just a verbal description and <em>definitely not</em> a screenshot.  If you need an easy, quick, free, temporary location to host one file or your whole project as <init>HTML</init>, try <url href=\"https://app.netlify.com/drop\" visual=\"app.netlify.com/drop\">Netlify Drop</url>.</p>\n\n        <!-- Sean Fitzpatrick suggestion, 2024-10-02 -->\n        <p>If you are posting code snippets, and copying out of an editor using Dark Mode, try <c>ctrl-shift-V</c> when you paste and perhaps the Dark Mode color scheme will go away<mdash/>making it easier for some to read.</p>\n    </section>\n\n\n    <section xml:id=\"contributing\">\n        <title>Contributing</title>\n\n        <p>As a project that is licensed openly, we welcome contributions.  And this does not necessarily mean you need to learn our primary language, <init>XSL</init>.  For ideas, find the issues on GitHub that have the label <c>contributor project</c>.  As one example, it would be very helpful if a member of the community would create and maintain a Wikipedia page.  That is a skill that is very distinct from the other skills used to create and maintain other parts of the project.  See <url href=\"https://github.com/PreTeXtBook/pretext/issues/207\" visual=\"github.com/PreTeXtBook/pretext/issues/207\">Issue #207</url>.</p>\n\n        <p>The documentation is authored in <pretext/>, so you know how to create additions, clean-up obsolete parts, and fix typos.  If you know <c>git</c> and GitHub, then a pull request (on a new branch!) is a very economical way for us to manage contributions.  Even if you do not know GitHub, we can easily accept files written in <pretext/> that contain changes to the documentation.  For example, files supporting localization to new languages (see <xref ref=\"topic-localization\"/>) are ideal for simply submitting an entire file.  (Send files to us by email, or post as attachments on one of the Google groups.)</p>\n\n        <p>Conversions are written in <init>XSL</init>, a declarative language.  It has a steep learning curve, but is very powerful for an application like this.  Start small, and we do not mind helping you along with suggestions and critiques.  Do not, do not, begin an ambitious task unless your skills are up to it.</p>\n\n        <p>When you have gained significant experience as an author, and have a good feel for the questions asked by other authors due to your material participation in the <c>pretext-support</c> group, then it may be time to apply to be part of the <c>pretext-dev</c> group.  This where design discussions are held and nasty bugs are squashed collectively.</p>\n    </section>\n\n    <section xml:id=\"personal-email\">\n        <title>Personal Email</title>\n\n        <p>How do we put this politely?  Personal email to the core <pretext/> developers should be your last resort.  We are not unfriendly<mdash/>just the opposite.  We would love to hear from you, but in the groups.  Here is the rationale:<ul>\n            <li>You may get a better answer from somebody who is not the most active developer, but understands your particular need better than anybody else.  You will never get that answer with a personal email.</li>\n            <li>Developers teach university courses, travel to professional meetings, sleep at night, take naps, turn off their email for big coding pushes, and sometimes travel in the wilderness and are offline for days at a time.  You are likely to get quick responses from the core developers through the groups, but if they are not available a personal email may get a slower response.  (I am inclined to answer posts on the groups before I work through personal email.)</li>\n            <li>Many contributors prefer to provide help in a public forum because their efforts are then more widely recognized.</li>\n            <li>Your question and its answer are searchable by others.  (The groups and issues are public.)  A personal email is no help to anybody else.</li>\n            <li>We prefer to make as many decisions as possible <em>openly</em>.  So a discussion on a public group or site is there for all to see, now and later.</li>\n            <li>We depend on granting agencies for much of our funding.  Membership in groups, forks on GitHub, activity in the groups, number of issues, and number of contributors to the repository, are all crude measures of the health of the project.  Personal emails add nothing to those measures.</li>\n            <li>Everybody who has committed their big writing project to <pretext/> likes to see an active, responsive, friendly community supporting its use and growth.  Just by asking a necessary question, you can add to that community.</li>\n        </ul></p>\n\n        <p>We understand that nobody likes to pop their head up and ask a <q>stupid question.</q>  But it is counterproductive to do personally what we can do better collectively.  The groups are friendly forums (we will enforce that if we ever have to) and everybody there made an initial post once.  And the group members largely enjoy sharing their advice, experience, and knowledge.  So, please make a contribution simply by saving the personal emails for that which is really personal.  Thanks, and we'll look forward to chatting with you on the groups!</p>\n    </section>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/windows-cli.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"windows-cli\">\n  <title>Installing the <pretext/>-CLI on Windows</title>\n  <author>Sean Fitzpatrick</author>\n\n  <introduction>\n    <p>\n      The <pretext/>-CLI is the simplest way for authors to get started using <pretext/>,\n      and it is the recommended method on all systems, including Windows.\n      Details on using the CLI can be found starting in <xref ref=\"processing-CLI\"/>.\n      Setting up the <pretext/>-CLI on Windows is considerably simpler than the method presented in <xref ref=\"windows-install-notes\"/>,\n      but there is still some effort required.\n      In particular, you will have to install several pieces of software to get your system ready for using <pretext/>.\n    </p>\n\n    <p>\n      If you prefer a video walkthrough, one is provided below.\n      The video is approximately 40 minutes in length, but it goes through the entire installation process,\n      from adding the necessary software, to setting up <url href=\"https://github.com\" visual=\"github.com\">GitHub</url>.\n    </p>\n\n    <video youtube=\"tAtdzyVBcZA\" preview=\"yt-windows-cli.png\"/>\n  </introduction>\n\n  <section xml:id=\"windows-cli-software\">\n    <title>Software prerequisites</title>\n    <introduction>\n      <p>\n        We begin with the programs you will want to have installed prior to using the <pretext/>-CLI.\n        All software can be downloaded free of charge, and is relatively easy to install.\n      </p>\n    </introduction>\n\n    <subsection xml:id=\"windows-cli-vscode\">\n      <title>VSCode</title>\n      <p>\n        <term>VSCode</term> is short for Visual Studio Code.\n        This is a text editor developed by Microsoft; we recommend it not because it plays well with Windows (although it does),\n        but because of the availability of the <c>pretext-tools</c> add-on, which will let you run the <pretext/>-CLI without leaving the editor.\n      </p>\n\n      <p>\n        To install, the editor, first download the installer from <url href=\"https://code.visualstudio.com/\" visual=\"code.visualstudio.com\">the VSCode website</url>.\n      </p>\n\n      <image width=\"70%\" source=\"vscode-download.png\">\n        <description><p>Screenshot of the VSCode website, showing where to click to download the installer</p></description>\n      </image>\n\n      <p>\n        When running the installer, be sure that the <q>Add to PATH</q> option is selected:\n      </p>\n\n      <image width=\"50%\" source=\"vscode-setup.png\">\n        <description><p>Screenshot of the VSCode installer program, showing where to click to ensure the program is added to the Windows system environment variables</p></description>\n      </image>\n\n      <p>\n        You should now have VSCode installed on your system.\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"windows-cli-python\">\n      <title>Python</title>\n      <p>\n        One difficulty with using <pretext /> on Windows is the fact that Python is not core software, and there are many different ways to install install.\n        The recommended method for installing Python is to get it directly from <url href=\"https://www.python.org/\" visual=\"python.org\"/>.\n        Other Python installations, such as Anaconda, or even Miniconda, include a lot of extras that we don't need.\n      </p>\n\n      <p>\n        To install Python, simply download the installer from the <url href=\"https://www.python.org/\" visual=\"python.org\">Python website</url>.\n      </p>\n\n      <image width=\"70%\" source=\"python-download.png\">\n        <description><p>Screenshot of the python.org webpage, showing where to access the installer download</p></description>\n      </image>\n\n      <p>\n        When you run the installer, be sure to check off the box to add Python to the Windows PATH during installation.\n        This will ensure that Python commands can be run from the command line without needing to provide the path to the Python program.\n      </p>\n\n      <image width=\"50%\" source=\"python-setup.png\">\n        <description><p>Screenshot of the Python installer program, showing the box that needs to be checked to ensure it is added to the system environment variables</p></description>\n      </image>\n    </subsection>\n\n    <subsection xml:id=\"windows-cli-git\">\n      <title>Git for Windows</title>\n      <p>\n        The next piece of software we need to install is Git for Windows.\n        This will provide tools for allowing us to interact with textbook source on GitHub.\n        More importantly, it provides us with the <term>Git Bash</term> terminal,\n        which is what we will be running all of the commands for <pretext />.\n      </p>\n\n      <p>\n        You can get Git for Windows at <url href=\"https://gitforwindows.org/\" visual=\"gitforwindows.org\"/>.\n      </p>\n\n      <p>\n        The installation process for Git for Windows can seem quite complicated,\n        as there are a lot of options, and many of them are quite technical.\n        You can safely choose the defaults throughout, unless there is a particular setting you're familiar with that you wish to change.\n        The only thing you might want to do is change the default editor.\n        Since we have already installed VSCode, we can choose to use that instead of an editor like Emacs or Nano that you may be unfamiliar with.\n      </p>\n\n      <image width=\"50%\" source=\"git-setup.png\">\n        <description><p>Screenshot of the Git for Windows installation program, showing how to select VSCode as the default text editor</p></description>\n      </image>\n    </subsection>\n\n    <subsection xml:id=\"windows-cli-other-software\">\n      <title>Other software</title>\n\n      <p>\n        A number of additional programs may be needed to assist in processing your book, depending on what elements your book contains.\n      </p>\n\n      <p>\n        <dl>\n          <li>\n            <title><latex/></title>\n            <p>\n              You will almost certainly need to be able to process <latex />, either to produce the <init>PDF</init> version of your book,\n              or to process <latex /> images for the <init>HTML</init> version of your book.\n            </p>\n\n            <p>\n              There are two ways to install <latex /> on Windows: <url href=\"https://miktex.org/\" visual=\"miktex.org\">MikTeX</url>,\n              or <url href=\"https://www.tug.org/texlive/windows.html\" visual=\"www.tug.org/texlive/windows.html\">TeXLive</url>.\n              Although TeXLive is the default <latex /> distribution for Linux and MacOS platforms,\n              most Windows users find MikTeX easier to use, since it comes with package management software to assist with automatically installing needed <latex/> packages.\n              One thing to keep in mind: with MikTeX, you <em>must</em> run an initial update from the MikTeX package manager before it will work correctly.\n            </p>\n          </li>\n        </dl>\n      </p>\n\n      <sidebyside widths=\"33% 33% 33%\">\n        <image source=\"windows-path-1.png\">\n          <description><p>Screenshot of the Windows system property control panel, showing how to access the Environment Variables</p></description>\n        </image>\n\n        <image source=\"windows-path-2.png\">\n          <description><p>Screenshot of the Environment Variables control panel, showing how to access and edit the Path</p></description>\n        </image>\n\n        <image source=\"windows-path-3.png\">\n          <description><p>Screenshot of the interface for editing the Windows Path to add a new program</p></description>\n        </image>\n      </sidebyside>\n\n      <p>\n        <dl>\n          <li>\n            <title>Sage</title>\n            <p>\n              If your book includes Sage components, such as <c>sageplot</c> (but <em>not</em> Sage Cells),\n              you will need to install Sage to process them.\n              Sage is available at <url href=\"https://www.sagemath.org/\" visual=\"www.sagemath.org\"/>.\n              Click on the download button, and follow the instructions in the installer.\n            </p>\n          </li>\n\n          <li>\n            <title>GitHub Desktop</title>\n            <p>\n              If you find it difficult to manage git from the command line,\n              GitHub provides a graphical user interface for the Windows environment,\n              called <url href=\"https://desktop.github.com/\" visual=\"desktop.github.com\">GitHub Desktop</url>.\n              This provides a point-and-click interface for synchronizing your local changes with GitHub.\n            </p>\n          </li>\n        </dl>\n      </p>\n    </subsection>\n  </section>\n\n  <section xml:id=\"windows-cli-installation\">\n    <title>Installing the CLI</title>\n\n    <introduction>\n      <p>\n        You now have all the necessary software installed.\n        Next, we need to set up Git Bash, and install the <pretext />-CLI.\n      </p>\n    </introduction>\n\n    <subsection xml:id=\"windows-cli-git-setup\">\n      <title>Setting up Git Bash</title>\n      <p>\n        One change that you will want to make right away is setting the default working directory for Git Bash.\n        In your home folder (<c>C:\\Users\\Sean</c> in our example), look for a file called <c>.bashrc</c>.\n        If it doesn't already exist, open Git Bash, navigate to this folder, and type <c>touch .bashrc</c> to create the file.\n        Open the file (it is a plain text file), and add the line <c>cd C:/Users/Sean</c>,\n        where you should replace the directory with the one you want to use.\n      </p>\n\n      <p>\n        Next, we need to set up <init>SSH</init> authentication, for more efficient communication with GitHub.\n        We assume that you already have a GitHub account; it not, you should create one at <url href=\"https://github.com/\" visual=\"github.com\"/>.\n        There are existing instructions available online at\n        <url href=\"https://docs.github.com/en/authentication/connecting-to-github-with-ssh\" visual=\"docs.github.com/en/authentication/connecting-to-github-with-ssh\">docs.github.com</url>.\n        To begin with, please follow the instructions provided there for generating an <init>SSH</init> key using Git Bash, and adding it to GitHub.\n      </p>\n\n      <p>\n        There is one aspect of the instructions that is not quite correct.\n        When you get to the step for <url href=\"https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent\" visual=\"docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent\">adding the ssh key to the ssh agent</url>,\n        the instructions will tell you to add your <init>SSH</init> key to the <init>SSH</init> agent using a relative path, with a line such as <c>ssh-add ~/.ssh/id_ed25519</c>.\n        <alert>You must use a full path here</alert>. Instead, type <c>ssh-add /c/Users/Sean/.ssh/id_ed25519</c>,\n        where as usual you should replace <c>Users/Sean</c> with your own directory.\n      </p>\n\n      <p>\n        There is one more step you will want to complete.\n        The <c>ssh-agent</c> program will not start automatically when you open Git Bash.\n        To change this, we follow the instructions provided at <url href=\"https://gist.github.com/bsara/5c4d90db3016814a3d2fe38d314f9c23\" visual=\"gist.github.com/bsara/5c4d90db3016814a3d2fe38d314f9c23\"/>.\n      </p>\n\n      <p>\n        <ol>\n          <li>\n            <p>\n              In the file <c>/c/Users/Sean/.ssh</c>, open the <c>config</c> file (or create it using the <c>touch</c> command in Git Bash if it doesn't already exist),\n              and add the following lines:\n              <cd>\n                <cline>Host github.com</cline>\n                <cline> Hostname github.com</cline>\n                <cline> IdentityFile ~/.ssh/id_rsa</cline>\n              </cd>\n              Note that the second and third lines are indented by one space.\n              Note also that this assumes an <init>RSA</init> key, but you may have chosen a different encryption method.\n              You may, for example, want to replace <c>id_rsa</c> with <c>id_ed25519</c>.\n            </p>\n          </li>\n\n          <li>\n            <p>\n              In the file <c>/c/Users/Sean/.bash_profile</c>, (again, create it if it does not already exist) add the following lines:\n              <cd>\n                <cline>test -f ~/.profile &amp;&amp; . ~/.profile</cline>\n                <cline>test -f ~/.bashrc &amp;&amp; . ~/.bashrc</cline>\n              </cd>\n            </p>\n          </li>\n\n          <li>\n            <p>\n              In the file <c>/c/Users/Sean/.ssh</c>, we need to add the following script, which will automatically start the <c>ssh-agent</c>.\n            </p>\n\n            <program>\n              <code>\n                # Start SSH Agent\n                #----------------------------\n\n                SSH_ENV=\"$HOME/.ssh/environment\"\n\n                function run_ssh_env {\n                  . \"${SSH_ENV}\" > /dev/null\n                }\n\n                function start_ssh_agent {\n                  echo \"Initializing new SSH agent...\"\n                  ssh-agent | sed 's/^echo/#echo/' > \"${SSH_ENV}\"\n                  echo \"succeeded\"\n                  chmod 600 \"${SSH_ENV}\"\n\n                  run_ssh_env;\n\n                  ssh-add ~/.ssh/id_rsa;\n                }\n\n                if [ -f \"${SSH_ENV}\" ]; then\n                  run_ssh_env;\n                  ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {\n                    start_ssh_agent;\n                  }\n                else\n                  start_ssh_agent;\n                fi\n              </code>\n            </program>\n          </li>\n        </ol>\n      </p>\n\n      <p>\n        You should now be set up to work with GitHub on your Windows machine.\n        When you clone a GitHub repository containing a <pretext /> book, be sure to choose the <init>SSH</init> option rather than <init>HTML</init>.\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"windows-cli-install\">\n      <title>Installing the CLI</title>\n      <p>\n        Finally, we are ready to install the <pretext />-CLI. This is perhaps the easiest step of the whole process.\n        From the Git Bash terminal, first type <c>which python</c> to confirm that Python has been successfully added to the PATH.\n        You should see the path to your Python program if things are working correctly.\n        If you don't, you may need to reinstall Python, or you can manually add it.\n      </p>\n\n      <p>\n        To install the CLI, simply type <c>pip install pretext</c>.\n      </p>\n\n      <p>\n        Congratulations! You are now ready to start using <pretext /> on your Windows machine.\n        If you did not do so previously, there is one additional step you may want to take.\n        In VSCode, go to File, then Preferences, then Extensions in the menu, or type <kbd>Ctrl</kbd>-<kbd>Shift</kbd>-X.\n        In the search bar that comes up, type <q>pretext-tools</q>, and install the package that comes up.\n        This will equip VSCode with syntax highlighting for <c>.ptx</c> files, as well as some automatic tag completion.\n        (For example, typing <c>thm</c> and then the <kbd>Tab</kbd> key will automatically insert the <init>XML</init> markup for a theorem.)\n      </p>\n\n      <p>\n        Additionally, from the command palette, (View, then Command Palette in the menu, or <kbd>Ctrl</kbd>-<kbd>Shift</kbd>-P)\n        if you type <q>pretext</q>, you will see some built-in options for building your book using the CLI.\n      </p>\n    </subsection>\n  </section>\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/windows-wsl.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"windows-subsystem-linux\">\n    <title>Windows Subsystem for Linux</title>\n\n    <p>\n      Windows Subsystem for Linux is no longer the recommended method for Windows <pretext /> users.\n      Instead, consider using either the web-based GitHub solution described in <xref ref=\"tutorial\"/>\n      or the handy <pretext />-CLI as discussed in <xref ref=\"processing-CLI\"/>.\n    </p>\n\n    <p>\n      <pretext /> developers who use\n      Windows may be interested in the information in this appendix but do note that some information may be out of date.\n    </p>\n\n    <p>\n    The <term>Windows Subsystem for Linux</term> (<init>WSL</init>)\n    may be installed on computers running Windows 10.\n    Several distributions of Linux are available.\n    We will use  Ubuntu as an example; working with other distributions is quite similar.\n    The latest news and announcements about <init>WSL</init> may be found at\n    <url href=\"https://msdn.microsoft.com/commandline/wsl/about\" visual=\"msdn.microsoft.com/commandline/wsl/about\"/>.\n    </p>\n\n    <aside>\n    <title> What is my OS build?</title>\n    <p>\n    An easy way to find your OS Build:\n    Hold down the Windows key and R key simultaneously.\n    Enter <c>winver.exe</c> in the resulting new window.\n    The next window that opens will have the OS Build in small type near the top.\n        </p>\n    </aside>\n\n    <paragraphs>\n        <title>Installing WSL</title>\n        <p>\n\t    If you have Windows 10 with OS Build greater than 16215 (August 2016),\n        then installing <init>WSL</init> is not difficult. Just follow the\n        (reasonably straightforward) instructions given by Microsoft at the address\n        <url href=\"https://msdn.microsoft.com/en-us/commandline/wsl/install_guide\" visual=\"msdn.microsoft.com/en-us/commandline/wsl/install_guide\"/>.\n        </p>\n        <p>\n        Upon completion of the installation, you should\n        <ul>\n        <li><p>be able to use the <c>bash</c> command from the <c>PowerShell</c> window,</p></li>\n        <li><p>have your own <init>WSL</init> userid (distinct from Windows),</p></li>\n        <li><p>have your own <init>WSL</init> password (distinct from Windows).</p></li>\n        </ul>\n        </p>\n    </paragraphs>\n\n    <aside>\n        <title>A little background about using about the command line</title>\n\n        <p>\n        <ul>\n        <li><p>\n            You type in commands (terminated by the Enter key) and\n            the operating system responds. For example, if you type in\n            <c>date</c>, the\n            operating system responds with (what it considers to be) the date.\n            Using the command line is an ongoing conversation between you and\n            the operating system.\n        </p></li>\n        <li><p>\n            The <c>sudo</c> command:\n            when a command starts with <c>sudo</c>, the rest of\n            the command is executed with administrative privileges.\n            This is needed, for example, to install software or\n            update the operating system. You must give your\n            password when you run <c>sudo</c> (although you get\n            a little window of time after the first usage when\n            it is not necessary to do so).\n        </p></li>\n        <li><p>\n            The <c>sudo apt-get update</c> command: this is used to\n            resynchronize the local listing of installed packages\n            with those in the official repository.\n        </p></li>\n        <li><p>\n            The <c>sudo apt-get upgrade</c> command: this is used to\n            bring all the local software up to date with\n            those in the official repository.\n        </p></li>\n        </ul>\n        </p>\n        <p>\n        Run <c>sudo apt-get update</c> followed\n        by <c>sudo apt-get upgrade</c> with a newly system to bring it\n        up to date. It is a good idea to repeat this frequently to have\n        the latest software on your computer.\n        </p>\n    </aside>\n\n    <paragraphs>\n        <title>Installing software</title>\n        <p>\n        The default configuration of <init>WSL</init> does not have the software needed\n        for creating documents with <pretext/>.\n        </p>\n        <p>\n        The program <term>xsltproc</term> is used to create your readable documents.\n        It is installed with the command <c>sudo apt-get install xsltproc</c>.\n        </p>\n        <p>\n         You are now ready to set up <pretext/>.\n        </p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>Putting <pretext/> on your computer</title>\n        <p>\n        Here are the steps necessary to get the <pretext/> software onto\n        your computer:\n        <ul>\n        <li><p>Make a new directory <c>mkdir pretext</c></p></li>\n        <li><p>Make your own clone of the <pretext/> repository\n            <c>git clone https://github.com/PreTeXtBook/pretext.git</c></p></li>\n        <li><p>Move to the new directory <c>cd pretext</c></p></li>\n        <li><p>Initialize the new directory with <c>git pull</c></p></li>\n        </ul>\n        This last command synchronizes your files with those in the official repository.\n        You should run it frequently to keep your files up to date.\n        </p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>The simplest example</title>\n        <p>\n        Here is a brief description of the use of <init>WSL</init> to create\n        readable files.\n        You, as the author, create the <init>xml</init> file.\n        The system will contain an appropriate <init>xsl</init> file that translates\n        your <init>xml</init> file to something readable.\n        </p>\n        <p>\n        Several editors come with <init>WSL</init> by default including\n        <init>nano</init>, <init>pico</init>, <init>vi</init>,  and <init>vim</init>.\n        In addition, editing is possible using <init>notebook.exe</init>.\n        Here are the steps to follow:\n        <ol>\n        <li>\n        <p>\n        Type the command <c>cd</c> to align yourself in your home directory.\n        </p>\n        </li>\n        <li><p>\n            Use one of the editors to create a file called <c>hw.xml</c>\n            (you could use the command <c>nano hw.xml</c>), and add\n            the following text:\n            <cd>\n            &lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\n            &lt;pretext&gt;\n                &lt;article xml:id=\"hw\"&gt;\n                &lt;p&gt;Hello, World!&lt;/p&gt;\n                &lt;/article&gt;\n            &lt;/pretext&gt;\n            </cd></p>\n        </li>\n        <li><p>\n            Run the command\n            <c>xsltproc pretext/xsl/pretext-html.xsl hw.xml</c>\n            Upon completion, your should have a file called <c>hw.html</c>.\n        </p></li>\n        <li><p>\n            You now want to view the <c>hw.html</c> file in a browser,\n\t    This is done with the command <c>explorer.exe hw.html</c>.\n        </p></li>\n        </ol>\n        The <c>edit-xsltproc-view</c> cycle just given may seem daunting at first blush.\n        Some things that can help:\n        <ul>\n        <li><p>\n            Pressing the up arrow when at the command line displays the previously\n            executed commands.  Hitting the enter key while such a command is displayed\n            executes it. This saves a lot of retyping.\n        </p></li>\n        <li><p>\n            It is possible to define aliases to shorten commands. Your local Linux guru can\n            show how this is done.\n        </p></li>\n        <li><p>\n            It is possible to define scripts to shorten multiple commands.\n            Your local Linux guru can show how this is done.\n        </p></li>\n        </ul>\n        </p>\n    </paragraphs>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/appendices/windows.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<appendix xml:id=\"windows-install-notes\">\n  <title>Windows Installation Notes</title>\n  <author>Dave Rosoff</author>\n\n  <introduction>\n    <p>The recommended method for setting up <pretext /> on Windows now uses the <pretext/>-CLI. For instructions on setting up the CLI, see <xref ref=\"windows-cli\"/>. This appendix explains how to install the older <pretext /> toolchain using <c>xsltproc</c>, and is intended primarily for developers. It has been tested on Windows 7, 8, and 10. We assume that none of the listed tools or equivalents have been previously installed. That may complicate matters. This is especially true if you use Cygwin, or if you have already installed Python on your machine. <pretext /> compatibility with existing Python installations is addressed elsewhere in this document (<xref ref=\"python-executable\" />).</p>\n\n    <p>If you have Windows 10, be sure to read about <init>WSL</init> in <xref ref=\"windows-subsystem-linux\" />, which could be a whole lot easier to setup and maintain.</p>\n  </introduction>\n\n  <section xml:id=\"setup\">\n    <title>Setup</title>\n\n    <introduction>\n      <p>In this section, we do some initial setup, establish notation, and issue warnings. Some of the steps in this process are dangerous. Typos could lead to an unstable system, or possibly even to unrecoverable system errors. Double-check everything.</p>\n    </introduction>\n\n    <subsection xml:id=\"notation\">\n      <title>Notation</title>\n      <p>Strings enclosed in <c>&lt;angle brackets&gt;</c> are variables whose values you should substitute in typed expressions. <c>&lt;username&gt;</c>, for example, should be replaced with your Windows username (<eg />, mine is <c>drosoff</c>). Throughout this installation process it is very important to pay attention to the direction of slashes <c>/</c> and backslashes <c>\\</c>.</p>\n    </subsection>\n\n    <subsection xml:id=\"initial-windows-setup\">\n      <title>Initial Windows setup</title>\n      <p>It is easier to see what is happening if your Windows file browser is not set up to hide file extensions from you. Disable the <q>hide file extensions</q> behavior before proceeding. In Windows 7/8, this can be done through the Control Panel. In Windows 10, there is a checkbox somewhere in the ribbon for it.</p>\n      <list xml:id=\"initial-windows-setup-steps\">\n        <title>Initial Windows Setup</title>\n        <ul>\n          <li>\n            <p>On Windows 7 or 8:<ol>\n              <li><p>Open the Start Menu and type <q>Control Panel</q>. Select the <c>Control Panel</c> entry from the popup list.</p></li>\n              <li><p>Type <q>Folder Options</q> into the search box in the Control Panel window. Select <c>Folder Options</c> when it appears.</p></li>\n              <li><p>Select the View tab.</p></li>\n              <li><p>Uncheck the box for <q>Hide extensions for known file types</q>.</p></li>\n              <li><p>Click OK until there are no more OKs to click.</p></li>\n            </ol></p>\n          </li>\n          <li>\n            <p>On Windows 10:<ol>\n              <li><p>Open the Start Menu (icon shaped like a Window at the bottom left, typically).  Select the <c>File Explorer</c> option, right above <c>Settings</c>, from the popup list.</p></li>\n              <li><p>Click on this, and then select <c>View</c> from the <q>ribbon lists</q> of options along the top.</p></li>\n              <li><p>After clicking this, on the right there should be a check box for <q>File Name Extensions</q>.  Click this box; that should do it.</p></li>\n            </ol></p>\n          </li>\n        </ul>\n      </list>\n    </subsection>\n\n    <subsection xml:id=\"a-word-on-path-names\">\n      <title>A word on path names</title>\n      <p>An appallingly large fraction of the difficulties of using GNU/Linux-based utilities with Windows come from the differences in formatting path names. Windows path names begin with a drive letter (usually <q>C</q>) and a colon. Like all path names, they describe a path in a rooted tree. The root directory (folder) in Windows is called <c>\\</c>, a backslash. Note the direction carefully. Children of the root node are either subdirectories or files in the root directory (leaves). The path to my downloads folder is:</p>\n      <pre>C:\\Users\\drosoff\\Downloads\\</pre>\n      <p>The trailing backslash is often unnecessary, but it is an easy way to see immediately whether a path name refers to a file or to a directory. Windows path names are not case-sensitive.</p>\n      <p>Linux/Mac OS X path names are quite similar, but lack drive letters, start with an explicit reference to the root, use forward slashes, and are case-sensitive (more or less so, in Mac's case). A path to a typical Linux user's download folder might be</p>\n      <pre>/home/typical.username/Downloads</pre>\n      <p>Again, Linux pathnames are case-sensitive and Mac OS X pathnames are typically <sq>case-preserving</sq>. The Git Bash shell for Windows is an emulation of a Linux environment, and the utilities within it expect path names that follow Linux conventions. So we conform to this expectation as follows.<ol>\n        <!-- http://apple.stackexchange.com/questions/22297/is-bash-in-osx-case-insensitive -->\n        <li><p>Remove the colon, but keep the drive letter.</p></li>\n        <li><p>All backslashes <c>\\</c> become slashes <c>/</c>.</p></li>\n        <li><p>Add an initial slash preceding the drive letter.</p></li>\n      </ol></p>\n      <p>The path name to my Windows download folder becomes</p>\n      <pre>/c/users/drosoff/Downloads</pre>\n      <p>Even though Git Bash is pretending to be a Linux shell, path names are still the underlying Windows path names, and therefore are not case sensitive. You can verify this using tab-completion.</p>\n      <p>Path names that begin with the drive letter (Windows) or the root <c>/</c> (Linux/Mac OS X) are called <term>absolute path names</term>. Their referents do not depend on the location from which the path name is invoked. <term>Relative path names</term>, on the other hand, begin in the so-called <term>current working directory</term>. A relative pathname might look something like this:</p>\n      <pre>../../examples/sample-article/sample-article.xml</pre>\n      <p>The symbol <c>..</c> is a shortcut for the parent of the current directory. Thus, the relative path name above means from where we are, ascend two levels, then descend into the <c>examples</c> and <c>sample-article</c> subdirectories, and find the file <c>sample-article.xml</c>.</p>\n      <p>Path names that contain spaces are <em>evil</em>, and should be avoided in many cases. Unfortunately, all Windows default program installation locations contain at least one space (directory name <q>Program Files</q>). This does not appear to cause problems, except when installing ImageMagick (<xref ref=\"installing-imagemagick\" />). To be extra careful, you could always choose an installation location that is free of space characters.</p>\n\n    </subsection>\n\n    <subsection xml:id=\"do-i-have-64-bit-windows\">\n      <title>Do I have 64-bit Windows?</title>\n      <p>Find out on Windows 7:<ol>\n        <li><p>Open the start menu and type <q>Computer</q>. Right-click the <c>Computer</c> item in the popup menu.</p></li>\n        <li><p>Select <c>Properties</c> from the drop-down menu.</p></li>\n        <li><p>Read in the right-hand side of the pane to find the <q>System</q> heading.</p></li>\n        <li><p>From the <q>System type</q> entry, read whether you have a 32- or a 64-bit OS.</p></li>\n      </ol></p>\n    </subsection>\n\n    <conclusion>\n      <p>Now you are ready to begin installing the various pieces of the <pretext /> puzzle. The first one, <c>xsltproc</c> (<xref ref=\"installing-xsltproc\" />), is the most annoying. You might want to go get a snack or another cup of coffee.</p>\n    </conclusion>\n  </section>\n\n  <section xml:id=\"installing-xsltproc\">\n    <title>Installing xsltproc</title>\n\n    <subsection xml:id=\"download-and-install-executables-and-linked-libraries\">\n      <title>xsltproc binaries</title>\n\n      <p>This is the most annoying part of the installation. Obtain four zip archives from <url href=\"ftp://ftp.zlatkovic.com/libxml/\" visual=\"ftp://ftp.zlatkovic.com/libxml\"> Igor Zlatkovic's FTP site</url> that hosts the most recent Libxml binaries for Windows. At the time of this writing, the 64-bit binaries were considered experimental. I have had no trouble using the 32-bit binaries on my 64-bit Windows 7 system, so I suggest that all <pretext/> users download the most recent 32-bit version of the following libraries:</p>\n      <list xml:id=\"list-zip-files-xsltproc\">\n        <title><c>xsltproc</c> Zip Files</title>\n        <ol>\n          <li><p><c>iconv</c> (filename something like <c>iconv-1.9.2.win32.zip</c>)</p></li>\n          <li><p><c>libxml2</c> (filename something like <c>libxml2-2.7.8.win32.zip</c>)</p></li>\n          <li><p><c>libxslt</c> (filename something like <c>libxslt-1.1.26.win32.zip</c>)</p></li>\n          <li><p><c>zlib</c> (filename something like <c>zlib-1.2.5.win32.zip</c>)</p></li>\n        </ol>\n      </list>\n      <p>We only need a handful of files from these archives. So the simplest thing is to leave them in your Downloads folder and grab what we need. Create a new folder <c>C:\\xsltproc</c> (it can be anywhere, as long as it's a new location). We'll call this location <c>&lt;xsltproc&gt;</c> in case you named your folder something different.</p>\n      <p>Extract the following files from the four zip archives you downloaded above into <c>&lt;xsltproc&gt;</c>:</p>\n      <list xml:id=\"list-extracted-files-from-zips-xsltproc\">\n        <title><c>xsltproc</c> Extracted Zip Files</title>\n        <ol>\n          <li>\n            <p>From <c>iconv-*.win32.zip</c>:<ol>\n              <li><p><c>iconv-*.win32\\bin\\iconv.dll</c></p></li>\n            </ol></p>\n          </li>\n          <li>\n            <p>From <c>libxml2-*.win32.zip</c>:<ol>\n              <li><p><c>libxml2-*.win32\\bin\\libxml2.dll</c></p></li>\n              <li><p><c>libxml2-*.win32\\bin\\xmllint.exe</c></p></li>\n            </ol></p>\n          </li>\n          <li>\n            <p>From <c>libxslt-*.win32.zip</c>:<ol>\n              <li><p><c>libxslt-*.win32\\bin\\libexslt.dll</c></p></li>\n              <li><p><c>libxslt-*.win32\\bin\\libxslt.dll</c></p></li>\n              <li><p><c>libxslt-*.win32\\bin\\xsltproc.exe</c></p></li>\n            </ol></p>\n          </li>\n          <li>\n            <p>From <c>zlib-*.win32.zip</c>:<ol>\n              <li><p><c>zlib-*.win32\\bin\\zlib1.dll</c></p></li>\n            </ol></p>\n          </li>\n        </ol>\n      </list>\n    </subsection>\n\n    <subsection xml:id=\"change-path-environment-variable-xsltproc\">\n      <title>Change PATH environment variable</title>\n      <p><em>Note: if you prefer not to meddle with this, it can be avoided</em>.  Now, we need to make sure your system can find these files when we need them.</p>\n      <list xml:id=\"steps-change-path-environment-variable-xsltproc\">\n        <title>Path Environment Variable for <c>xsltproc</c></title>\n        <ol>\n          <li>\n            <p>Open the Start menu and start typing <q>Edit the system environment variables</q>. Select this option when it becomes visible.</p>\n          </li>\n          <li>\n            <p>Click the Environment Variables button near the bottom of the dialog.</p>\n          </li>\n          <li>\n            <p>In the bottom part of the dialog labeled <q>System environment variables</q>, look for a variable named <c>PATH</c>. You may need to scroll.<ol>\n              <li>\n                <p>If you do not find one, create it using the New... button. Make sure to use all capital letters. (This really shouldn't happen. Make sure you are editing the <em>system</em> environment variables, not the <em>user</em> environment variables.)</p>\n              </li>\n              <li>\n                <p>If you do find the <c>PATH</c> variable, select it and click the Edit... button.</p>\n              </li>\n            </ol></p>\n          </li>\n          <li>\n            <p>Regardless of which of steps 1 and 2 you followed, now you should see a dialog with two text fields. Your variable name should be <c>PATH</c>.</p>\n          </li>\n          <li>\n            <p>If you created this variable, populate the second field with the full path name of <c>&lt;xsltproc&gt;</c>, the location where you put the seven files from Igor's zip archives. For me this looks like <c>C:\\xsltproc</c>.</p>\n          </li>\n          <li>\n            <p>If you are editing the <c>PATH</c> variable, place the cursor in the existing value and press the End key, so that the cursor moves to the back of the line. The <c>PATH</c> string is a <c>;</c>-delimited list of full path names, so append the string <c>&lt;xsltproc&gt;;</c> (note the semicolon) to the existing value. If you named &lt;xsltproc&gt; as we suggested above, then the last part of your <c>PATH</c> variable is now <c>C:\\xsltproc;</c>.</p>\n          </li>\n          <li>\n            <p>Click OK to save changes.</p> </li>\n        </ol>\n      </list>\n    </subsection>\n\n    <conclusion>\n      <p>Congratulations, you have successfully installed <c>xsltproc</c>.</p>\n      <p>Note that you have installed the <c>xmllint</c> utility as part of this procedure. This utility will allow some text editors to <term>lint</term> your <pretext /> files, that is, to automatically detect and highlight errors, and perhaps even to explain them.</p>\n    </conclusion>\n  </section>\n\n  <section xml:id=\"installing-git\">\n    <title>Installing git</title>\n    <introduction>\n      <p>In this section we install the <c>git</c> version control system and some tools to interact with it, including a fairly full-featured emulation of the <c>bash</c> command line shell. I strongly recommend you use the Git Bash shell or another <c>bash</c> emulation, so that you can use Linux commands referenced elsewhere.</p>\n    </introduction>\n    <subsection xml:id=\"install-git\">\n      <title>Steps to install git</title>\n      <list xml:id=\"steps-install-git\">\n        <title>git Installation</title>\n        <ol>\n          <li>\n            <p>Visit the official <c>git</c> <url href=\"https://git-scm.com/download/win\" visual=\"git-scm.com/download/win\"/> (download starts automatically) and obtain the latest binary for your system.</p>\n          </li>\n          <li>\n            <p>Find the installer in your Download location and run it.</p>\n          </li>\n          <li>\n            <p>Choose whatever location you like for the <c>git</c> installation folder. I recommend you use the default.</p>\n          </li>\n          <li>\n            <p>At the <q>Adjusting your PATH environment</q> dialog, select either of the first two items. I recommend the second, <q>Add git executable to Windows PATH</q>. This will allow you to use <c>git</c> from within other Windows programs, such as Sublime Text or other text editors, which can be extremely convenient. If you are apprehensive about adding <c>git</c> to the Windows PATH, select the first option. I do not recommend the third option.</p>\n          </li>\n          <li>\n            <p>Accept the default options for all the remaining prompts.</p>\n          </li>\n        </ol>\n      </list>\n    </subsection>\n    <subsection xml:id=\"changing-path-with-bashrc\">\n      <title>Changing the path with .bashrc</title>\n      <p>In <xref ref=\"change-path-environment-variable-xsltproc\" />, we promised that you could avoid messing with the Windows environment variables. If you install something else later that wants to use <c>xsltproc</c>, then this might not be the best idea. But if you are only going to use it from within Git Bash, then this will work fine.</p>\n      <p>From the Git Bash command prompt, enter this line of text and hit Enter. Do not make any typos. You should substitute your value of <c>&lt;xsltproc&gt;</c> where indicated, but make sure to conform to the conventions at the end of <xref ref=\"a-word-on-path-names\" /> regarding Windows path names in Git Bash. (I warned you this was going to be annoying.)<cd>echo \"export PATH=&lt;xsltproc&gt;:$PATH\" &gt;&gt; ~/.bashrc</cd>You may get a message from Git Bash the next time you run it about <c>.bash_profile</c>, which you may safely ignore.</p>\n    </subsection>\n    <conclusion>\n      <p>Congratulations, you have successfully installed <c>git</c>.</p>\n    </conclusion>\n  </section>\n\n  <section xml:id=\"installing-anaconda\">\n    <title>Installing Anaconda</title>\n    <p>Anaconda is a well-regulated development environment for Python under Windows, and I recommend it for users who do not already have Python installed. The essential <c>pretext</c> script has <url href=\"https://github.com/PreTeXtBook/pretext/pull/252\" visual=\"github.com/PreTeXtBook/pretext/pull/252\"/> to support both Python 2 and Python 3. Therefore we make no recommendation about which Python version to choose.</p>\n    <p>If you already have a working Python installation, skip to <xref ref=\"installing-imagemagick\" />.</p>\n    <p>You have some choice with your Anaconda installation. It actually supports the installation of several independent Pythons side-by-side (since both 2.7 and 3.x are in active use, this is more reasonable than it seems). If you do not need Python for anything else or are simply a minimalist, Miniconda is also an option. Miniconda installs no packages, but these can be installed via the <c>conda</c> utility at the command line later.<ol>\n      <li><p>Download either Miniconda, Python 2.7, or Python 3.5 from the <url href=\"https://www.continuum.io/downloads\" visual=\"www.continuum.io/downloads\"/>.</p></li>\n      <li><p>Run the installer and accept all the default suggestions.</p></li>\n    </ol></p>\n\n    <p>Congratulations, you have successfully installed Python.</p>\n    <p>If you do not care about images, you can stop here. Much of the <pretext/> functionality is already present. However, to use the <c>pretext/pretext</c> script to create SVG images from sources like PDF/PNG images, Sage, Asymptote, or TikZ, you need to install ImageMagick using the directions in <xref ref =\"installing-imagemagick\"/>.</p>\n  </section>\n\n  <section xml:id=\"installing-imagemagick\">\n    <title>Installing ImageMagick</title>\n    <p>Visit the <url href=\"https://imagemagick.org/script/download.php#windows\" visual=\"imagemagick.org/script/download.php#windows\"/> and grab a binary. If you have a 64-bit Windows installation (<xref ref=\"do-i-have-64-bit-windows\" />), use the recommended version. If you have a 32-bit installation, find the version whose filename is obtained from that of the recommended version by substituting <c>x86</c> for <c>x64</c>. For example, if the recommended version's filename is:</p>\n    <pre>ImageMagick-7.0.1-6-Q16-x64-dll.exe</pre>\n    <p>then a good choice for a 32-bit Windows would be</p>\n    <pre>ImageMagick-7.0.1-6-Q16-x86-dll.exe</pre>\n    <list xml:id=\"installing-imagemagick-steps\">\n      <title>imagemagick Installation</title>\n      <ol>\n        <li>\n          <p>Run the installer from your download location.</p>\n        </li>\n        <li>\n          <p>Accept the license agreement.</p>\n        </li>\n        <li>\n          <p>Choose a default installation location that has no spaces in its folder name. The default choice <q>Program Files</q> causes problems because of path name issues. I chose<cd>c:\\ImageMagick-7.0.1-Q16\\</cd>It matters because the ImageMagick utility <c>convert</c> is used by the <c>pretext</c> script to convert your images into different formats. The <c>pretext</c> script will have a lot of trouble with path names that contain spaces.</p>\n        </li>\n        <li>\n          <p>When confronted with <q>Select additional tasks</q>, make sure that the boxes for <q>Add application directory to your system path</q> and <q>Install legacy utilities</q> are checked.</p>\n        </li>\n        <li>\n          <p>If you like, carry out the procedure to verify your installation.</p>\n        </li>\n      </ol>\n    </list>\n    <p>Congratulations, you have successfully installed ImageMagick.</p>\n  </section>\n\n\n  <section xml:id=\"section-jing\">\n    <title>Installing jing</title>\n    <p>\n      The <c>jing</c> utility for schema validation can be installed in Windows.\n      To install, first make sure Java is installed on your machine.\n      You can either install the official Oracle JDK from\n      <url href=\"https://www.oracle.com/technetwork/java/javase/downloads/index.html\" visual=\"www.oracle.com/technetwork/java/javase/downloads/index.html\"/>\n      or, if you prefer an open license, <url href=\"https://jdk.java.net/12/\" visual=\"jdk.java.net/12/\"/>.\n      Download the <c>.zip</c> file, and extract to a folder such as <c>C:\\Java</c>.\n      (Avoid installing to the Program Files folder due to the space in the folder name.)\n    </p>\n\n    <p>\n      Next, follow the installation instructions in <xref ref=\"jing-trang\" />,\n      ignoring the <c>BUILD FAILED</c> message. You will almost certainly want\n      to copy the file <c>xercesImpl.jar</c> from the <c>lib.</c> folder into <c>build</c>.\n    </p>\n\n    <p>\n      If you are using Git Bash for processing, you may want to set up a command shortcut\n      to avoid the rather lengthy command given in <xref ref=\"jing-trang\" />, especially\n      if you have modularized source. Before proceeding, make sure that you have configured\n      your Windows environment variables to include a path to Java.\n      For example, if you installed JDK 12.0.1 in <c>C:\\Java</c> you will want the path\n      <c>C:\\Java\\jdk-12.0.1\\bin</c>.\n    </p>\n\n    <p>\n      As suggested in <xref ref=\"jing-trang\" />, you can set up a command in <c>.bashrc</c>.\n      Git Bash on Windows requires a <c>.bash-profile</c> to load <c>.bashrc</c>.\n      Open Git Bash and change to your user directory: <c>cd /c/Users/your.name</c>.\n      Windows does not like file names beginning with a period, so if they do not already\n      exist, you'll need to create them in Git Bash. Do <c>touch .bash-profile</c> and\n      <c>touch .bashrc</c> to create the files. Use your favorite text editor to add the line\n      <cd>\n        <cline>if [ -f ~/.bashrc ]; then . ~/.bashrc; fi</cline>\n      </cd>\n      to <c>.bash-profile</c>\n    </p>\n\n    <p>\n      You can then create the <c>ptx-check</c> command as in <xref ref=\"jing-trang\" />.\n      Absolute paths are recommended. Using the Git Bash syntax for Windows paths,\n      your definition in <c>.bashrc</c> will look something like the following:\n      <cd>\n        <cline>ptx-check() {</cline>\n        <cline>  java\\</cline>\n        <cline>    -classpath /c/jing-trang/build\\</cline>\n        <cline>    -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=</cline>\n        <cline>      org.apache.xerces.parsers.XIncludeParserConfiguration\\</cline>\n        <cline>    -jar /c/jing-trang/build/jing.jar\\</cline>\n        <cline>    /c/PreTeXt/pretext/schema/pretext.rng \"$1\"</cline>\n        <cline>}</cline>\n      </cd>\n      The above assumes that <c>jing-trang</c> is installed at <c>C:\\jing-trang</c>\n      and that PreTeXt has been cloned at <c>C:\\PreTeXt\\pretext</c>.\n      Adjust your paths as needed. You can now run validation from Git Bash using\n      <cd>\n        <cline>ptx-check ~/path/to/project/index.ptx > jing_report.txt</cline>\n      </cd>\n      and the <c>jing_report.txt</c> file will be created in your working directory.\n    </p>\n\n  </section>\n\n  <section xml:id=\"whats-missing\">\n    <title>What's Missing</title>\n    <p>Development of a Windows-compatible <c>pretext</c> script (<xref ref=\"pretext-script\" />) is mostly complete. If you need help with <c>pretext</c>, contact Dave Rosoff. There are still a few use cases that haven't been tested, mostly those to do with Asymptote.</p>\n    <p>A Windows installer for Sage is available from several mirrors at\n      <url href=\"http://www.sagemath.org/download-windows.html\" visual=\"www.sagemath.org/download-windows.html\"/>.\n      The installer provides Sage Math, the Sage Math Shell,\n      and the Sage Math Notebook (Jupyter).</p>\n  </section>\n\n  <conclusion>\n    <p>If you find any problems or bugs, please let us know at the <pretext /> Support group in Google Groups, or email <c>drosoff</c> AT <c>collegeofidaho</c> DOT <c>edu</c>.</p>\n  </conclusion>\n\n</appendix>\n"
  },
  {
    "path": "doc/guide/author/advice.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2018  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"advice\">\n    <title>Authoring Advice</title>\n\n    <introduction>\n        <p>In this chapter we gather advice on authoring.  In some cases it is discipline-specific.</p>\n    </introduction>\n\n    <section xml:id=\"advice-math-textbook\">\n        <title>Writing Your Student-Friendly Math Textbook</title>\n        <author>Kathy Yoshiwara</author>\n\n        <p>So you are writing a math textbook. You love your subject enough to put in the hours, and you probably have some ideas on how the standard presentation can be improved. You care about good pedagogy and want to engage your students.</p>\n\n        <p>You know that writing a text for undergraduates requires a different style from writing a research paper or a scholarly article for colleagues. But how to achieve that style? A good first step is to adjust your linguistic goal from</p>\n\n        <sidebyside margins=\"5%\" widths=\"25% 5% 35%\">\n            <p>Elegant Argument</p>\n            <p>to</p>\n            <p>Illuminating Explanation</p>\n        </sidebyside>\n\n        <p>We can examine this strategy in three areas:<ol>\n            <li>Language</li>\n            <li>Layout or Format</li>\n            <li>Content</li>\n        </ol></p>\n\n        <paragraphs>\n            <title>Language</title>\n\n            <p>In the exposition, it is useful to adopt an informal voice. But, perhaps counter-intuitively, that does not mean a conversational voice. In conversation, you have gestures and tone of voice to help convey meaning: what are the main points, what are helpful hints, what are asides, and what are social interactions.</p>\n\n            <p>None of these prompts are available when communicating in print. The author must shape the material so that the reader can navigate the ideas on his or her own. It is best to be as brief and direct as possible. After writing a section or so, go back and omit any unnecessary words or phrases. For example, before presenting an Example, there is no need to say <q>Here is an example to illustrate the ideas we have just discussed.</q> Subconsciously, the reader must absorb and then jettison this comment as unimportant. Doing so constantly leads to <q>reader fatigue.</q></p>\n\n            <p>Often an explanation can be improved just by (judiciously) making it shorter. In addition, while trying to understand a new concept, most students will not find helpful our philosophical musings or historical anecdotes. These can be presented in a sidebar or addendum. Do try to relate new ideas to previous ones and show how they fit into the overall scheme, but avoid references such as <q>we'll need this for our later study of (whatever).</q></p>\n\n            <p>The principles of good writing for any format apply equally to textbooks, mathematical or otherwise. Usually, active voice is more effective than passive voice, and a positive form is clearer than a negative one. Strunk and White's classic <pubtitle>The Elements of Style</pubtitle> and, more recently, George Gopen's reader expectation approach are standard resources for techniques of composition. (Although sometimes their advice is contradictory, which just goes to show that no rule is appropriate in every situation.) Steven Pinker's <pubtitle>The Sense of Style</pubtitle> is also useful.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Layout or Format</title>\n\n            <p>In a textbook, it is good practice to deliver material in digestible portions. Try to keep blocks of uninterrupted text rather short. Break up the exposition visually with boxes, Examples, Cautions, Notes, and so on. Use bulleted or numbered lists to highlight important points. Consider whether it would be more effective to start a particular section with a motivating example, or perhaps with a few sentences explaining how the new topic arises naturally, or in some other way.</p>\n\n            <p>Instead of opening your textbook with a <q>Chapter 0</q> type catalog of all the notation and terminology needed in the entire book, it would be kinder to students to introduce new notation and terminology as needed. Also, it is not necessary to front-load all the information about a topic at one time; let students absorb and practice the fundamental ideas, then return later to elaborate, generalize, or present exceptions. Resist the temptation to proceed too quickly to general or abstract statements. Most people grasp abstract ideas more easily if they first see specific and concrete examples.</p>\n\n            <p>Choosing effective examples helps make your text student-friendly. A simple example has greater impact than a complicated one. If you are introducing asymptotes, the graph of<md>\n                y=\\dfrac{x-3}{x-2}\n            </md>is a better example than<md>\n                y=\\dfrac{x^2-9}{x^2-x-2}\n            </md>. It is also better than<md>\n                y=\\dfrac{1}{x}\n            </md>because the latter may lead students to believe that asymptotes are identified with the coordinate axes. If you are introducing subgroups, do not limit your examples to subgroups of cyclic groups. Always consider your example from the students' point of view! Is your example too general or too specific? Are there confounding features that may distract from the intended message?</p>\n\n            <p>What about proofs? These days a good background in mathematics is necessary for a wide variety of occupations, so that only a small number of your students may be headed to graduate school in mathematics, even in junior or senior level classes. Here is a good place to strive for <q>illuminating</q> rather than <q>elegant.</q></p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Content</title>\n\n            <p>Choosing and organizing the material for your textbook requires more thought than any other aspect of the creative process. To make your textbook truly student-friendly, you may want to rethink the traditional or standard order of content. If you are used to presenting material by topic, you might want to consider how better to make connections or to take advantage of sound pedagogical principles.</p>\n\n            <p>For example, forty years ago high school algebra was taught by first covering all the <q>one-variable</q> material and then (if time permitted) considering graphs and other <q>two-variable</q> topics. Now it is considered more effective to study graphs throughout the course. Linear algebra courses used to start with the study of vector spaces. Now many texts prefer to begin with systems of linear equations. In trigonometry, maybe we can start with just three trig functions instead of six; maybe we can work in one quadrant first, then add the second quadrant, before treating all four.</p>\n\n            <p>In a sense, textbooks drive the curriculum. Think of the innovations introduced in the calculus renewal movement that are now incorporated into most calculus texts: the catalog of functions, the rule of four, the inclusion of conceptual exercises. Many instructors, especially adjunct or part-time instructors, rely on their textbooks to shape their courses. You have a real opportunity to influence the direction of your field and to shape the way it is taught. Now get to work.</p>\n        </paragraphs>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/author/author-faq.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"author-faq\">\n    <title>Author FAQ: Frequently Asked Questions</title>\n\n    <p>Technical questions first, followed by questions about markup.</p>\n\n    <p><ol>\n        <li>\n          <title>On my local machine, why is the <fillin characters=\"8\"/> not working?</title>\n\n            <p>\n              The <q><fillin characters=\"8\"/></q> could be a knowl that appears empty.\n              Or a sage cell that appears empty.\n              Or an interactive element of some sort that seems broken.\n              Or any component of the HTML page that is <q>fancy</q>.\n            </p>\n\n            <p>\n              Viewing an HTML file on your own computer is not the same as visiting\n              it on a website. There is no web server, so you should assume that\n              things will be different.\n            </p>\n\n            <p>\n              The cause of the difficulty is that some web browsers will behave\n              differently when viewing a local file compared with viewing it on a website.\n              If there are other resources to fetch (for example, the content of a knowl)\n              the browser may consider it a security risk to fetch them while viewing\n              a local file.\n            </p>\n\n            <p>\n              Try viewing your HTML file using a different browser, and you may find that\n              the feature is working there. However the real test is to transfer the\n              files to an actual web server, or to set up a local web server so that local\n              files operate in the usual way.\n            </p>\n\n            <p>\n              To set up a local server, see <xref ref=\"processing-testing-html\"/>.\n            </p>\n        </li>\n\n        <li>\n            <title>How do I install <c>xsltproc</c> on Ubuntu or Debian Linux?</title>\n            <p>\n              <c>sudo apt-get install xsltproc</c>\n            </p>\n        </li>\n\n        <li>\n            <title>How do I install <c>pdf2svg</c>?</title>\n            <p>\n              As of July 2024, you no longer need <c>pdf2svg</c> to process latex-images; we now use the python <c>pyMuPDF</c> library instead.\n            </p>\n        </li>\n\n        <li>\n            <title>Why is there no tag for bold?</title>\n            <p>\n              Because the first principle of <pretext/>\n              is that the markup captures the structure of the document,\n              not the appearance.\n            </p>\n\n            <p>\n              A better question is: <em>why</em> do you want to print something in bold?\n              Is it emphasis? (See <tag>em</tag>.)\n              Is it the volume number of a journal? (See <tag>journal</tag>.)\n              Do you want to SHOUT?  Try <tag>alert</tag>.  And so on. There are lots of good answers, some of which are not yet implemented.  We would love to hear about elements you need that are about expressing content, and not about altering presentation.  See <xref ref=\"principle-markup\" text=\"type-local\">Principle</xref>.\n            </p>\n        </li>\n\n        <li>\n            <title>Can I create <pretext/> source in Microsoft Word or Google Docs?</title>\n            <p>Unlikely.  <pretext/> is designed around <init>XML</init> markup, so using a text editor to create a text file is the intended process for creating source.  When you create a file with other word processors it is likely to use different characters in some places, such as <q>smart quotes</q>, and convert other things you type, such as converting three periods into a single ellipsis character.  And if you make font changes, such as italics for emphasis, that will not translate directly to <pretext/>.</p>\n\n            <p>Perhaps you know somebody technically-minded you want to convert your word-processor files for you?  First, this is a tedious job.  Second, they may not accurately translate your intent.  Third, you cannot make any edits and you will be <em>reliant</em> on them alone to maintain your project for you.</p>\n\n            <p>If you insist on authoring with a traditional word-processor, then you should.  But you will get whatever output that tool provides, and miss out on the benefits of the semantic markup that allows us to create all the various output formats <pretext/> provides.</p>\n        </li>\n\n        <li>\n            <title>Why do I get no output and some warnings about bugs?</title>\n            <p>There is a good chance you have <q>modularized</q> your source files and have not included an <tag>xi:include</tag> for each modularized file.  (See <xref ref=\"processing-modular\" />.)\n               If that was your mistake, then you should have seen a warning.\n               Please check to see if there was a warning you missed.  (If not, we can improve the warning if you tell us how your source was organized.  So please do, since we would love to hear about it.)</p>\n        </li>\n\n        <li xml:id=\"faq-pull-regularly\">\n            <title>I don't like surprises and have not updated in months.  Why do I now have a problem?</title>\n            <p>We almost never release mistaken code that breaks output produced from valid source (<xref ref=\"schema\" />).  And when we have, the cause is usually a small typo, or something that gets fixed easily and quickly.  We do sometimes make backwards-incompatible changes, but you always get warnings, often the changes can wait, there are announcements on the mailing lists, and whenever possible, we update tools that automate the changes.</p>\n\n            <p>As volunteers, we cannot support problems from old versions, and sometimes we have to implement changes in reaction to third-party software (like MathJax), which is beyond our control.  So while development is rapid, we implore you to remain on the <c>dev</c> branch of the repository and <c>git pull</c> regularly.  Such as <em>daily</em>, with your morning coffee as you sit down to write, or with your last compilation of the evening.  You will have <em>far fewer unpleasant surprises</em> this way, and we can help you better.</p>\n\n            <p>We understand that <pretext /> is a moving target, but we are iterating to a better state, and it is best to have everybody along for the <em>whole</em> ride.</p>\n        </li>\n\n        <li xml:id=\"faq-keep-up-with-changes\">\n            <title>I have not updated in months, so I did a pull, and now I have a bunch of warnings.  How do I catch up?</title>\n            <p>Changes on our end which produce new warnings are almost always announced on the <c>pretext-announce</c> Google Group.  This is a very low-traffic, announcement-only list, so you could skim the messages you missed.  Also, read warnings carefully, as they often have explicit suggestions about what to do next.</p>\n        </li>\n\n        <li>\n          <title>There are lots of different  blocks, but my project needs one that does not exist.</title>\n          <p>We do not support creating new blocks.  But you can repurpose an existing one.  See <xref ref=\"renaming-blocks\"/>.</p>\n        </li>\n\n        <!-- mathbook-xml-support:  2015-06-21:  Subscripts in custom lists -->\n        <!-- mathbook-xml-support:  2016-06-19:  Formulas in list markers    -->\n        <li>\n            <title>How do I put mathematics into my list markers?</title>\n            <p>List markers are an organizational device for grouping small bits of information.  It is not appropriate to use mathematics in this situation.  (Even if <latex/> list item <q>labels</q> allow such a construction.)  The alternative is to use a description list, with a <tag>dl</tag> element.  Put your mathematics in the <tag>title</tag> and put the associated content into the remainder of the <tag>li</tag>.  Or, put titles on the list items of an ordered or unordered list, and include mathematics there.</p>\n        </li>\n\n        <li>\n            <title>I have errors when I try to validate my markup, but everything looks okay when I make the HTML and the PDF.  Should I be worried?</title>\n\n            <p>\n              Occasionally the schema lags behind the code, so your first step is to\n              post to <c>pretext-support@googlegroups.com</c> to find out if it is\n              a problem with the schema.\n            </p>\n\n            <p>\n              Possibly there is another way to accomplish what you want, and that\n              markup will fit the schema.\n              Or maybe what you are doing meets the <q>common and reasonable</q>\n              test and can become a feature request.  The discussion on\n              <c>pretext-support</c> should provide an answer.\n            </p>\n        </li>\n\n        <li>\n            <title>Why are theorems, definitions, examples, remarks, etc.<nbsp/>all numbered using the same counter?</title>\n            <p>The following is an argument in favor of using common counters for blocks of similar appearance. The argument is stronger in the context of using a printed copy of the book, where physical page flipping is necessary, but also applies to scrolling through a (long) page in a web browser.</p>\n\n            <p>Suppose your professor gave you a note to review Example 2.4.7 in your textbook. The <q>2.4</q> is useful information directing you to Chapter 2, Section 4. You can tell by the <q>7</q> that the example is probably not right at the beginning of the section, so you open to the middle of the section. You find yourself on a page with no examples, but you do see Remark 2.4.11. What do you do: flip forward or flip backward?</p>\n\n            <p>If examples and remarks are numbered using separate counters, you have no information about which way to go. You need to make a random decision, and flip pages until you find another example that you can use as a guidepost.  And examples might be rare and sparse, so it may take quite a bit of page flipping to find that guidepost. You may end up at Example 2.4.8, telling you that you need to flip backward now. But how far? Will it be one page earlier or twenty?</p>\n\n            <p>For a more expansive discussion along these lines, see <xref ref=\"publisher-numbering\"/>.</p>\n\n            <p>Also, as an author, recognize that there is a very flexible mechanism for making lists of objects that may be included in the <tag>backmatter</tag> (or elsewhere).  To continue the example here, you could make a list of all the examples in the book, and a separate list of all the remarks.  Each list would be in the order of appearance, include the number (and a title if you provide one).  In <init>HTML</init> output, each is a knowl which will quickly provide the content (independent of location), and also provides an <q>in-context</q> link to take you to the location for surrounding material.  This useful feature requires very little additional effort, especially if you title your blocks as you author them.</p>\n        </li>\n\n        <li>\n            <title>Why do I have <latex /> errors?</title>\n            <p>\n              If you have errors when you run <c>pdflatex</c> or <c>xelatex</c>,\n              that is more likely to be caused by a problem with your <latex /> installation\n              than with <pretext />.  It is difficult to make legitimate <pretext />\n              that fails to compile; an exception being math markup inside a math element\n              (<tag>m</tag>, <tag>md</tag>, and friends).\n            </p>\n\n            <p>\n              To check your <latex /> installation, run <c>pdflatex -version</c>.\n              If it reports something older than <q>TeX Live 2017</q>,\n              then updating may help.  If the trouble seems to be coming from a\n              particular package, then check which version of the package is being used.\n              For example, if the <q>tasks</q> package is causing a problem,\n              run <c>kpsewhich tasks.sty</c> in the directory where you are\n              compiling the <latex />.  If the package is in your personal\n              texmf tree, that may be the problem.\n            </p>\n\n            <p>\n              If the PDF is created without errors, but something looks wrong in the PDF,\n              then probably the <pretext /> source markup is wrong.  Validate your source\n              against the schema (see <xref ref=\"schema-validation\" />), and also carefully examine the HTML output.\n              If that does not reveal the problem, seek expert help.\n            </p>\n        </li>\n\n        <li>\n            <title>I have great output, so why does validation produce hundreds of errors?</title>\n            <p>Success with a tool like the <pretext/>-CLI (see <xref ref=\"processing-CLI\"/>), in terms of no errors and great-looking output, does not mean your source is correct.  <init>XSLT</init> processing can be forgiving, and many invalid constructions just work, and look great.  But that is no guarantee this situation will continue, or the same happy accidents occur for a conversion to a different output format.</p>\n\n            <p>We do raise some errors during processing with the <pretext/>-CLI, but error-checking your input is a job for a validator, so in theory we should not ever produce any errors during a conversion.  So strive for having 100% valid <pretext /> source, not simply great-looking results.  See <xref ref=\"schema\" /> and <xref ref=\"schema-install\" />.</p>\n        </li>\n\n        <li>\n            <title>I'd like to keep using <latex/> markup for mathematics, in other words, $<ellipsis/>$ and \\[<ellipsis/>\\]</title>\n\n            <p>If you <em>were</em> somehow able to mix-in a dollar sign into your <pretext/> document, how would you then write <q>The bus ride cost me $2.50</q>?  The <latex/> solution, <c>\\$</c>, is not going to help you.  It is a shortcoming of <tex/> that so many characters have special meanings in certain circumstances.</p>\n\n            <p>If you insist, you can still author using $<ellipsis/>$ and \\[<ellipsis/>\\], and before processing do a global search-and-replace.  But converting a leading <c>$</c> to <c>&lt;m&gt;</c> and a trailing <c>$</c> to <c>&lt;/m&gt;</c> will drive you mad unless you are really good with regular expressions.  So perhaps better to use <c>\\(</c> and <c>\\)</c> for inline mathematics and search-and-replace will go better.  I count six key presses for that, including the shifts for the parentheses, while it just takes me seven key presses for the PreTeXt <tag>m</tag> element, when I use an editor that auto-completes elements with a two-key combination.</p>\n\n            <p>We realize change is hard<mdash/>we used <latex/> for thirty years.  But we believe the long-term advantages of <pretext/> markup are worth the short-term rearrangements.</p>\n        </li>\n\n        <li>\n            <title>Why not <latex/>?  Why <pretext/>?</title>\n            <p><tex/> was first released in 1978.  There was no Internet, no <init>HTML</init>, no Unicode, and no YouTube.  There have been many attempts to convert <tex/>/<latex/> to more modern document formats.  They are not hard to find<mdash/>none is satisfactory.  We know because we have spent many years trying to adapt them to our purposes.</p>\n\n            <p>Many laud <latex/> for its ability to separate content from presentation.  The key word is <em>ability</em>.  It is possible to use <latex/> in a purely semantic way.  But it very rarely happens in practice.  And we suspect that when it does, the result looks much like <init>XML</init> anyway, such as the use of many <c>\\begin{}/\\end{}</c> pairs.  <latex/> allows authors enough freedom that it is impossible to accurately discern intent in a totally automated way.</p>\n\n            <p>By contrast, an <init>XML</init> vocabulary defined by a schema (i.e.<nbsp/><pretext/>) forces authors to communicate intent and denies authors the opportunity to micro-manage presentation.  The result is automated conversions to many useful output formats with no extra effort from the author, including future conversions to formats not yet imagined.  And <init>XSL</init>, once understood, is a robust and powerful tool for the sorts of text-manipulation tasks necessary.</p>\n        </li>\n\n        <li>\n            <title>Why do I have an <q>extra</q> period at the end of a title?</title>\n            <p>Author your titles <em>without</em> punctuation at the end meant for spacing or separation (period, colon, semi-colon, hyphen).  Do include punctuation which imparts meaning (question-mark, exclamation-point).  <pretext /> will then add separation (a period, or spacing), as needed, in all the places where it is required.  But <pretext /> will respect your question-marks and exclamation-points.</p>\n\n            <p>If you think you have an additional punctuation character that conveys meaning at the end of a title, please bring it to our attention.</p>\n        </li>\n\n        <li>\n          <title>I'm a little confused about the less-than character, the ampersand, and <q>escape characters</q> in general</title>\n\n          <p>When you process <init>XML</init>, the less-than character, <c>&lt;</c>, is a signal that the name of an opening or closing tag is coming next.  How do you prevent this if you really need the character, especially for something like computer code?  Answer: you use the <q>escaped</q> version, <c>&amp;lt;</c>.  The ampersand is known as an <term>escape character</term>.  It is a signal to the processor to escape from its usual rules.  <q>But,</q> I hear you say, <q>we just gave the ampersand character a special meaning, now how do I get <em>that</em> character when I need to say <sq>I went to the A&amp;P store.</sq>?</q>  Simple<mdash/>there is an escaped version, <c>&amp;amp;</c>.</p>\n\n          <p>So think of <c>&amp;lt;</c> and <c>&amp;amp;</c> as <em>being</em> the characters <c>&lt;</c> and <c>&amp;</c>.  End of story.  These two concessions should <q>work</q> throughout your <pretext/> source and in every conversion.  Every markup language needs, and uses, an escape character, but <init>XML</init> and <pretext/> have you covered and really only need these two (infrequent) exceptions.</p>\n\n          <p>It is worth repeating: think of the escaped versions of the characters as actually being the characters themselves.  That is the way the <init>XML</init> processor sees them and uses them.  For more, see <xref ref=\"overview-exceptional-characters\"/>, <xref ref=\"overview-verbatim-literal\"/>, <xref ref=\"topic-exceptional-characters\"/>, <xref ref=\"topic-verbatim-literal\"/>, and <xref ref=\"topic-url-characters\"/>.</p>\n\n          <p>Postscript:  <init>XML</init> has the escaped characters <c>&amp;gt</c>, <c>&amp;apos</c>, and <c>&amp;quot</c> for <c>&gt;</c>, <c>&apos;</c>, and <c>&quot;</c> (respectively).  But they are rarely (never?) necessary within <pretext/>.</p>\n\n          <p>Extra-credit homework: think about how some of the above was authored and then look at the source to grade your own work.</p>\n        </li>\n\n        <li>\n          <title>The titles of my description list are long, and the formatting is really bad.</title>\n\n          <p>Use shorter titles?  Read too about the <attr>width</attr> hint for list items within <xref ref=\"topic-lists\"/>.</p>\n\n          <p>Or convert your list to an <tag>ol</tag> or <tag>ul</tag>.  The titles will now render more like their own paragraphs.</p>\n        </li>\n\n        <li>\n          <title>My math looks great in one output format (<latex/> or <init>HTML</init>) but is causing errors or looks bad in another output format (<init>HTML</init> or <latex/>).  What's up?</title>\n\n          <p>There are subtle and minor variations and restrictions around the interpretation of <latex/> syntax by <latex/> itself and the MathJax Javascript routines for rendering in a web page.  Work backwards from <xref ref=\"mathematics-notes\"/> for details.</p>\n        </li>\n\n        <li>\n          <title>I would like to use a standard package in my Sage code</title>\n\n          <p>See <xref ref=\"sage-cell-design\"/> for an explanation.</p>\n        </li>\n\n        <li>\n          <title>I would like to use a (large) data file in my Sage code</title>\n\n          <p>See <xref ref=\"sage-cell-design\"/> for an explanation.</p>\n        </li>\n\n        <li>\n          <title>Processing my project takes a long time.  Can I <q>comment out</q> some parts?</title>\n\n          <p>First, we know some aspects of processing are inefficient and therefore slow for large projects.  We <em>are</em> working on it.</p>\n\n          <p>Your <pretext/> source is not a program, nor is it <latex/>, which can also be a program.  So the idea of <q>commenting out</q> code, or mimicking conditional use of <latex/>'s <c>\\include{}</c> command, are injurious to your <pretext/> source.  Processing expects to see <em>all</em> of it.  Some aspects of producing output demand it.</p>\n\n          <p>We have the notion of a <term>version</term> which can eliminate some (large) portions of your source in controlled ways (see <xref ref=\"publisher-versions\"/>).  Processing tools, such as the <pretext/>-CLI and the <c>pretext/pretext</c> Python script support the notion of restricting some processing to a subtree of your source, without <em>hiding</em> parts of your source from the processor.  See <xref ref=\"restrict-pretext-scope\"/> for how to do this with the <c>pretext/pretext</c> Python script.</p>\n        </li>\n    </ol></p>\n</chapter>\n"
  },
  {
    "path": "doc/guide/author/overview.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"overview\">\n    <title>Overview of Features</title>\n\n    <introduction>\n        <p>This chapter is a high-level view of the important concepts, features and design decisions that go into the creation of <pretext />.  For careful exact descriptions of details, we will direct you to one of the many sections in the <xref ref=\"topics\" text=\"title\" /> chapter.  So this chapter should make you aware of what is possible and expand on the philosophy described earlier in <xref ref=\"philosophy\" />, while also giving you examples of many basic constructions you can use to get started quickly.</p>\n    </introduction>\n\n    <section xml:id=\"overview-structure\">\n        <title>Structure</title>\n\n        <p>A <pretext /> document is a nested sequence of <term>structural divisions</term><idx>structural division</idx>.  For a book, these would go <tag>part</tag>, <tag>chapter</tag>, <tag>section</tag>, <tag>subsection</tag>, and <tag>subsubsection</tag>.  Using <tag>part</tag> is optional, but a book must always use <tag>chapter</tag> (or else it is not a book!).  No skipping over divisions.  For example, you cannot divide a <tag>section</tag> directly into several <tag>subsubsection</tag>s without an intervening <tag>subsection</tag>.</p>\n\n        <p>An <tag>article</tag> starts divisions from <tag>section</tag>, though it may choose to have no divisions at all.  <tag>paragraphs</tag> are exceptional.  They lack a full set of features, but can be used to divide anything, in books or in articles, though they are always terminal since you cannot divide them further.  You will have noticed that we prefer the generic term <term>division</term><idx><h>division</h><seealso>structural division</seealso></idx> (rather than <q>section</q>) since a <tag>section</tag> is a very particular division.</p>\n\n        <p>A division may be unstructured, in which case you fill it with paragraphs and lists and figures and theorems and so on.  But if you choose to structure a division it must look like the following:\n        <ul>\n        <li>An optional <tag>introduction</tag> </li>\n        <li>One or more divisions of the next finer granularity</li>\n        <li>An optional <tag>conclusion</tag>.</li>\n        </ul>\n        Either version may have a single <tag>exercises</tag> division at the end, or other <q>specialized</q> divisions. The structured version may have more than one <tag>exercises</tag>, and more than one of each of the types of specialized divisions.  For example a <tag>references</tag> is a second example of a specialized division.  (See <xref ref=\"topic-specialized-divisions\"/>.)</p>\n\n        <p>The <tag>introduction</tag> and <tag>conclusion</tag> divisions are meant to be short, and may not contain any other numbered tag.  No exercises, theorems, listings, etc. If you want to have an introductory division with any of the numbered elements you are free to omit the <tag>introduction</tag> and use the next finer subdivision with a <tag>title</tag> of <q>Introduction</q>.</p>\n\n        <p>Every division tag can carry an <attr>xml:id</attr> attribute, and it is a good practice to (a) provide one, (b) use a very short list of words describing the content, and (c) adopt a consistent pattern of your choosing.  Do not use numbers, you may later regret it.  These are optional, and with practice you will learn how best to use them. See <xref ref=\"overview-cross-references\" /> just below for more on this.</p>\n\n        <p>The <tag>exercises</tag> and <tag>references</tag> tags are special divisions, see <xref ref=\"topic-exercises\" /> and <xref ref=\"topic-references\" />.</p>\n\n        <p>This explanation is expanded and reiterated at <xref ref=\"topic-divisions\" /> and is worth reading earlier rather than later.</p>\n    </section>\n\n    <section xml:id=\"overview-paragraphs\">\n        <title>Paragraphs</title>\n        <idx>paragraph</idx>\n\n        <p>Once you have divisions, what do you put into them?  Most likely, paragraphs<idx>paragraph</idx>.  We use long, exact names for tags that are used infrequently, like <tag>subsubsection</tag>.  But for frequently used elements, we use abbreviated tags, often identical to names used in <init>HTML</init>.  So a paragraph is delimited by simply the <tag>p</tag> tag.</p>\n\n        <p>Lots of things can happen in paragraphs, some things can <em>only</em> happen in a paragraph, and some things are <em>banned</em> in paragraphs.  Inside a paragraph, you can emphasize some text (<tag>em</tag>), you can quote some text (<tag>q</tag>), you can mark a phrase as being from another language (<tag>foreign</tag>), and much more.  You can use almost any character your keyboard can produce, but need to be careful with the three <init>XML</init> exceptional characters: ampersand (&amp;), less than (&lt;), and rarely, greater than (&gt;).  (See <xref ref=\"overview-exceptional-characters\"/>.) You must put a list inside a paragraph, and all mathematics (<xref ref=\"overview-math\" />) will occur inside a paragraph.  You cannot put a <tag>table</tag> or a <tag>figure</tag> in a paragraph, and many other structured components are prohibited in paragraphs.</p>\n\n        <p>Paragraphs are also used as part of the structure of other parts of your document.  For example, a <tag>remark</tag> could be composed of several <tag>p</tag>.  As you get started with <pretext />, remember that much of your actual writing will occur inside of a <tag>p</tag> and you will have a collection of tags you can use there to express your meaning to your readers.</p>\n\n        <p>So early in your writing project, familiarize yourself with the components of a paragraph detailed in <xref ref=\"topic-paragraphs\" />.</p>\n    </section>\n\n    <section xml:id=\"overview-blocks\">\n        <title>Blocks</title>\n        <idx>blocks</idx>\n        <idx><h>environments</h><see>blocks</see></idx>\n\n        <p>Besides paragraphs (<xref ref=\"overview-paragraphs\"/>) the most common object to include in a division is what we informally refer to as a <term>block</term>.  These are self-contained units of text, almost always set-off visually, and likely with a number and a title.  If you know <latex/>, you may be in the habit of calling these <term>environments</term>.  Mathematical results are one example, and you can start at <xref ref=\"overview-math-results\"/> to learn more.  There are others that are more general-purpose, such as <tag>remark</tag> and <tag>example</tag>.  While fundamentally different from these blocks that are textual with reflowable lines, objects like <tag>figure</tag> and <tag>table</tag> (<xref ref=\"overview-figures-tables-etc\"/>) or <tag>program</tag> and <tag>console</tag> (<xref ref=\"overview-programs\"/>) are blocks, even if their contents are more rigid or spatial.  For a more precise description, see <xref ref=\"topic-blocks\"/>.</p>\n    </section>\n\n    <section xml:id=\"overview-cross-references\">\n        <title>Cross-References</title>\n        <idx>cross-reference</idx>\n\n        <p>Cross-references in a <pretext /> document are easy, powerful and flexible.  So it is worth familiarizing yourselves with them early, here and then ahead in <xref ref=\"topic-cross-referencing\" />.</p>\n\n        <p>Any element that you place a <attr>xml:id</attr> on can become the target of a cross-reference<idx>cross-reference</idx>.  This could be a division, a remark, a bibliographic entry, or a figure.  So for example, suppose your source had <c>&lt;subsection xml:id=\"subsection-flowers\"&gt;</c> and someplace else you wrote <c>&lt;xref ref=\"subsection-flowers\" /&gt;</c>.  Then at the latter location you would get a reference to the Subsection that discusses flowers.  In print this might just be the number for the subsection, but in various electronic output formats, these cross-references can be very powerful interactive ways to explore the content.  And the mechanism is always the same, pair up an <attr>xml:id</attr> on a target with a <attr>ref</attr> on an <tag>xref</tag> cross-reference.</p>\n\n        <p>Since the value of an <attr>xml:id</attr> is also used in a variety of ways, such as to construct some file names, some care should be taken in how you author them.  We limit the possible characters to letters and numbers (<c>a-z</c>, <c>A-Z</c>, <c>0-9</c>), with hyphens and underscores (<c>-_</c>) available as word-separators.  Our advice is to stick to lowercase letters, though we are not yet aware of any problems with case-insensitivity.  So in short, use <term>kebab-case</term> or <term>snake-case</term> for your <attr>xml:id</attr> values.</p>\n\n        <p>For more, see <xref ref=\"topic-cross-referencing\" /> because cross-references have many features. But first, here are two features you do not want to miss.  In the early stages of writing, you can author <c>&lt;xref provisional=\"subsection-flowers\" /&gt;</c> to point to a subsection you are contemplating (but have not written yet) and you will get various polite reminders to get that straightened out eventually (see <xref ref=\"processing-author-tools\" /> for details).  Also the default behavior is to automatically provide the generic name of the target, so you will get something like <q>Subsection 4.3.2</q> without ever typing the <q>Subsection</q> part.  If you move the target, the generic name will adjust if necessary, and if you switch to one of the supported languages, the generic name will switch language (see <xref provisional=\"topic-on-languages\" />.</p>\n    </section>\n\n    <section xml:id=\"overview-title\">\n        <title>Titles</title>\n        <idx>title</idx>\n\n        <p>Divisions always require titles, you accomplish this with a <tag>title</tag><idx>title</idx> tag first thing.  Almost everything that you can use in a paragraph can be used in a title, but a few constructions are banned, such as a displayed mathematical equation (for good reason).  Try to avoid using footnotes in titles, even if we have tried to make them possible.</p>\n\n        <p>Since titles migrate to other places, such as a Table of Contents, there are options for variants of a title, such as a short version, or a markup-free version.  Some (major) titles may also be structured as a sequence of <tag>line</tag> elements to control line-breaks for long titles.</p>\n\n        <p>Many, many other structures admit titles.  Experiment, or look at specific descriptions of the structure you are interested in.  Titles are integral to <pretext/>, much like cross-references.  Titles migrate to the Table of Contents, get used in page headers for print output, can be used in lists (such as a List of Figures), and can be used as the text of a cross-reference, instead of a number.  You might be inclined to not give a <tag>remark</tag> a title, but it would definitely be good practice to do so (study <xref ref=\"best-practice-titles\"/>).  For more details consult <xref ref=\"topic-title\"/>.</p>\n    </section>\n\n    <section xml:id=\"overview-math\">\n        <title>Mathematics</title>\n        <idx>mathematics</idx>\n\n        <p>With experience, you may realize that <pretext /> utilizes three principal languages.  One is the narrative of everyday sentences and paragraphs.  Most of what you write in a paragraph, or a table cell, or a title, or a caption, or an index heading, is in this language.  Then there is the structural language, which is the majority of the elements in <pretext />, such as <tag>chapter</tag>, <tag>theorem</tag>, or <tag>figure</tag>.  Then finally, there is the language of mathematical symbols and notation.</p>\n\n        <p>A key design decision is that mathematical symbols, expressions and equations are authored using <latex /> syntax.  More precisely, we support the symbols and constructions provided by <url href=\"https://www.mathjax.org/\" visual=\"www.mathjax.org/\">MathJax</url>, which quite closely follows the <c>amsmath</c> package maintained by the American Mathematical Society.  Neither you nor I want to write <url href=\"https://en.wikipedia.org/wiki/MathML\" visual=\"en.wikipedia.org/wiki/MathML\">MathML</url> by hand!</p>\n\n        <p>The symbols and macros supported by MathJax can be found at their <url href=\"https://docs.mathjax.org/en/latest/input/tex/macros/index.html\">Supported <latex/> commands</url> documentation.  Look here to see which parts of <latex/> may be used in your mathematical expressions.</p>\n\n        <p>For <term>inline</term> mathematics<idx><h>mathematics</h><h>inline mathematics</h></idx>, use the short <tag>m</tag> tag within a <tag>p</tag> (or within a <tag>title</tag> or <tag>caption</tag>).  For example, <c>&lt;m&gt;\\alpha^2 + \\beta^4&lt;/m&gt;</c> will do what you expect, in print and in electronic outputs.  To get a single equation, centered, with some vertical separation before and after, use the <tag>md</tag> tag (<q>math display</q>) in the same way within a <tag>p</tag>, but do not try using it within a <tag>title</tag>.  For example, <c>&lt;md&gt;\\rho = \\alpha^2 + \\beta^4&lt;/md&gt;</c>.  If you want your equation numbered, add the <attr>number</attr> attribue with the value set to <c>yes</c>.</p>\n\n        <p>There is a way to incorporate your own (simple) custom <latex /> macros within mathematics (only).  They will be effective in your print and electronic outputs, and can be employed in graphics languages like <c>TikZ</c> and Asymptote.  You can also author multi-line <term>display mathematics</term><idx><h>mathematics</h><h>display mathematics</h></idx> using the <tag>md</tag> tag, but now it should contain a equence of <tag>mrow</tag> elements holding <latex/> syntax.  We defer the details to <xref ref=\"topic-mathematics\" />.</p>\n    </section>\n\n    <section xml:id=\"overview-images\">\n        <title>Images</title>\n        <idx>image</idx>\n\n        <p>You can include an image via the <tag>image</tag><idx>image</idx> tag, using the <attr>source</attr> attribute to provide a filename, likely prefixed by a relative path from the top-level of the appropriate directory. Read <xref ref=\"processing-directory-management\"/> for details on how to set these directories correctly.  If you are starting a new project, using the <pretext />-CLI (with the command <c>pretext new book</c>, for example), then most of the setup portion is done for you and the top-level directory for images that are created external to the project is called <c>assets</c>, and it is a sibling of the <c>source</c> directory. It is your responsibility to locate that file properly relative to this directory, and that the file format is compatible.  So, for example, suppose your source contained <c>&lt;image source=\"images/butterflies.jpg\"/&gt;</c>.  Then you would want to have a directory named <c>images</c> below wherever you set the <attr>external</attr> top-level directory, and you would place the <c>butterflies.jpg</c> file inside of the <c>images</c> directory.</p>\n\n        <p>The <attr>width</attr> attribute can be used to control the size of the image.   Widths are expressed as a percentage of the available width, such as <c>width=\"60%\"</c>.  Instead of a width, you can also specify margins and the width will be deduced.</p>\n\n        <p>The optional <attr>rotate</attr> attribute controls the angular rotation of the image about its center, for example <c>image/@rotate=\"30\"</c> will rotate the image 30<degree/> counterclockwise.</p>\n\n        <p>You may want to wrap your image in a <tag>figure</tag> to have it centered, and to have some vertical separation above and below.  A <tag>figure</tag> must also have a <tag>caption</tag>, and the figure will be numbered.</p>\n\n        <p>You can also place an <q>anonymous</q> image (no caption, no number) almost anywhere you might place a paragraph (but not <em>within</em> a paragraph).  Note also that the <tag>sidebyside</tag> tag provides some very flexible options for placing several images (<xref ref=\"overview-sidebyside\" />) together, or combining figures with subcaptions.</p>\n\n        <p>If you wish to construct technical diagrams, with editable source, and perhaps including the use of <latex/> macros, <pretext/> provides support for authoring with graphics languages such as Asymptote, TikZ, PGF, PSTricks, and xy-pic in addition to using Sage code to describe a plot or image.  In most cases output can be obtained as smoothly-scalable <init>SVG</init> images, in addition to other formats like <init>PDF</init> or <init>PNG</init>.  Making all this happen is one of the more technical aspects of <pretext/>, so read the details in <xref ref=\"topic-images\"/> along with frequent references there to the <c>pretext</c> script described in <xref ref=\"pretext-script\"/>.</p>\n\n        <p>\n            For accessibility, every <tag>image</tag> should either have a description or it should\n            explicitly declare itself to be a decorative image setting <attr>decorative</attr> to\n            the value <c>yes</c>. Descriptions are of two types. A <tag>shortdescription</tag>\n            should minimally describe the important information in the image that is not already\n            present in the surrounding text. It should have no element children except possibly\n            <tag>var</tag> children. This content will be used as the <attr>alt</attr> attribute\n            for the HTML <tag>img</tag>. Some screen readers may cut off reading this content after\n            the first 100<ndash/>140 characters, therefore you should keep this element short.\n            A <tag>description</tag> element should be structured with <tag>p</tag> and\n            <tag>tabular</tag> children and has no technical limit on length. It may describe the\n            image more completely. The content of the <tag>description</tag> should describe the\n            image, but should not be necessary for a sighted reader to take in the important\n            features of the image. (If there are features of the image that need to be explained to\n            all readers, this should happen in the main body of the text.) An <tag>image</tag> may\n            have one or both types of description, but it is incorrect to have neither unless\n            <attr>decorative</attr> is set to value <c>yes</c>.\n        </p>\n    </section>\n\n    <section xml:id=\"overview-lists\">\n        <title>Lists</title>\n        <idx>list</idx>\n\n        <p>Ordered lists (numbered)<idx><h>list</h><h>ordered list</h></idx>, unordered lists (bullets)<idx><h>list</h><h>unordered list</h></idx> and description lists (defined terms)<idx><h>list</h><h>description list</h></idx> are all supported, and syntax generally follows <init>HTML</init>.  Lists usually live within a paragraph (<tag>p</tag>), though there are limited exceptions.  Their structure is given by the <tag>ol</tag>, <tag>ul</tag>, <tag>dl</tag> tags (respectively).  These can specify a variety of options for the labels via attributes, as described in <xref ref=\"topic-lists\"/>.</p>\n\n        <p>List items, for any of the three types, are delimited with the <tag>li</tag> tag.  What is different from <init>HTML</init> is that the contents of a list item may be structured, with paragraphs (<tag>p</tag>) being the most likely and frequent element.  So to nest lists you begin a paragraph in a list item of the outer list, then begin the inner list within that paragraph.  However, a simple list item may be authored just like you were authoring within a paragraph, much like writing sentences elsewhere.  A structured  list item may begin with <tag>title</tag> for ordered and unordered lists, and is mandatory for a description list.  In this latter case, the text of the <tag>title</tag> will become the text that is being described (the label of the list item).   For the optional uses, the title will be rendered as its own paragraph, with a different font (perhaps italics or oblique).  A description list cannot be contained within another list.  In other words, it is a <q>top-level</q> list.</p>\n\n        <p>Lists are more complicated than they appear, so be sure to read the details at <xref ref=\"topic-lists\"/> before you start designing really involved lists.</p>\n    </section>\n\n    <section xml:id=\"overview-exercises\">\n        <title>Exercises</title>\n        <idx>exercise</idx>\n\n        <p>Textbooks in many disciplines have exercises for the reader.  In <pretext/> there are five places where you can set a question for the reader to pursue.<dl>\n            <li>\n                <title>Divisional</title>\n                <p>There is a special <tag>exercises</tag><idx><h>exercise</h><h>divisional exercise</h></idx> division and an <tag>exercise</tag> placed there is then known as a <term>divisional exercise</term>.  This division supports extra features designed for exercises, such as an <tag>exercisegroup</tag> for short exercises with common instructions.  The <tag>exercises</tag> division can be used at any level.  In other words, it can be a peer of any other division.</p>\n            </li>\n            <li>\n                <title>Inline</title>\n                <p>Immediately within any division, you can interrupt the narrative with an <term>inline exercise</term>.<idx><h>exercise</h><h>inline exercise</h></idx>  It will be rendered similar to a <tag>theorem</tag> or other block, with a number, and a optional <tag>title</tag>.</p>\n            </li>\n            <li>\n                <title>Reading Question</title>\n                <p>Another specialized division, <tag>reading-questions</tag>, can be used to house <tag>exercise</tag> designed to test or guide a reader's comprehension of the material in that division.</p>\n            </li>\n            <li>\n                <title>Worksheet</title>\n                <p>The main component of a <tag>worksheet</tag> is an <tag>exercise</tag> (<xref ref=\"overview-worksheet\"/>).  Notably the exercises in a worksheet may be arranged with a <tag>sidebyside</tag> element (<xref ref=\"overview-sidebyside\"/>).</p>\n            </li>\n            <li>\n                <title>Project</title>\n                <p>A <tag>project</tag> is similar to an inline exercise, other than the type name and the fact that it can run on a separate counter from theorems, figures, etc. (When running on a separate counter, the same counter is used for <tag>activity</tag>, <tag>exploration</tag>, and <tag>investigation</tag>.)</p>\n            </li>\n        </dl></p>\n\n        <p>If an <tag>exercise</tag> is simply a statement of the question, then it may be authored with paragraphs (<tag>p</tag>) and similar elements.  If an <tag>exercise</tag> has hints, answers, or solutions, then it must be structured with a <tag>statement</tag>, followed by (possibly several) optional <tag>hint</tag>, <tag>answer</tag> and/or <tag>solution</tag>.  Conceptually, an <tag>answer</tag> is a short final result, while a <tag>solution</tag> provides details about the route to the answer.  Each of these four components is structured further, with paragraph-like elements, and the exercise itself may have a <tag>title</tag>.  A title is strongly encouraged for inline exercises, and nearly-mandatory if you plan to have inline exercises rendered in knowls in a conversion to <init>HTML</init>.</p>\n\n        <p>There is a wide variety of interactive exercise types you may specify, such as multiple choice, Parson problems, matching, and more.  See <xref ref=\"topic-interactive-exercises\"/> for descriptions of each type and the details of markup for each.</p>\n\n        <p>You need (and want) to have the hints, answers and solutions grouped with the statement as you author, but there is a lot of flexibility on making these available at the location of the exercise, or in the back matter.  See <xref ref=\"topic-exercises-solutions\" /> for more.</p>\n\n        <p>An inline exercise typically gets a fully qualified unique number and is rendered similar to an <tag>example</tag> or a <tag>remark</tag>.  A divisional exercise (including reading questions and worksheet exercises) only gets a sequential number, though this can be overridden with the <attr>number</attr> attribute if you want to maintain stable numbering in response to edits.  (Be careful, once you override the sequential numbering, you probably need to manually specify every subsequent number, so save overrides for when your project matures.)</p>\n\n        <p>Within a run of divisional exercises a subgroup can be delimited as an <tag>exercisegroup</tag>, which requires an <tag>introduction</tag> and allows a <tag>conclusion</tag> to explain some commonality.  A <tag>title</tag> is optional, and a default will be provided otherwise.  An <tag>exercisegroup</tag> should be rendered in some way that makes it clear to the reader that they are a group.</p>\n    </section>\n\n    <section xml:id=\"overview-programs\">\n        <title>Programs and Consoles</title>\n        <idx>program</idx>\n        <idx>console</idx>\n\n        <p>If you are writing about computer science, or more general scientific or engineering topics, you may wish to include sample computer programs, or command-line sessions.  A <tag>program</tag> will contain a complete computer program, or a portion of the code from a program, while a <tag>pf</tag> (<q>program fragment</q>) will display a chunk of code inline with the text.  Some <tag>program</tag> can execute in an online output format, while others are both editable and executable.  This behavior depends on the language used and the host employed.    A <tag>console</tag> holds a command-line session.  These elements feature monospace fonts, preservation of whitespace, and syntax highlighting.  These may also be placed in a <tag>listing</tag> to be more prominent, or as the target of a cross-reference.  See <xref ref=\"topic-program\"/> for details.</p>\n    </section>\n\n    <section xml:id=\"overview-worksheet\">\n        <title>Worksheets</title>\n        <idx>worksheet</idx>\n\n        <p>Another division is a <tag>worksheet</tag>.  It is similar to a <tag>chapter</tag>, <tag>section</tag>, and so on, but with some variations to support a worksheet or in-class activity.  Here we recognize the primacy of printed output (perhaps to bring into a classroom), and the online version is a less-capable representation.</p>\n\n        <p>There is no limit to what you can place in a <tag>worksheet</tag> division: objectives, an introduction, theorems, figures, images, and so on.  But the principal element is an <tag>exercise</tag>, which mostly behaves like an <tag>exercise</tag> in an <tag>exercises</tag> division, but with additional capabilities.</p>\n\n        <p>An <tag>exercise</tag> in a <tag>worksheet</tag> can have a specified width when included in a <tag>sidebyside</tag>, and in any case may have a specified additional blank working space of specified height.  Page breaks can be specified, and the four margins on a page can be independently controlled.  So if you want to create ancillary worksheets for your project, and you like to use <em>all</em> of the space on a printed page, then there is some layout control to support that.</p>\n\n        <p>Notice that all of this layout control is an exception to the philosophy of <pretext />.  So in particular, margins and working space do not appear in the <init>HTML</init> output.  We do give a visual indication where a page break in a <tag>worksheet</tag> is placed.  An author might wish to collect all of the worksheets in a book, for printing as an <q>activity book</q>, and so there are plans (2018-08-11) to support and automate that process.  Details for authoring worksheets can be found in <xref ref=\"topic-worksheet\"/>.</p>\n    </section>\n\n    <section xml:id=\"overview-references\">\n        <title>References</title>\n        <idx>reference</idx>\n\n        <p>Like <tag>exercises</tag>, a <tag>references</tag> division may go anywhere a more typical division could go.  This allows for things like a <q>Further Reading</q> list at the end of every chapter of a book.  These are populated with <tag>biblio</tag> items that are individual bibliographic entries.  Support is presently very minimal, but is planned to improve.</p>\n    </section>\n\n    <section xml:id=\"overview-figures-tables-etc\">\n        <title>Figures, Tables, Listings, Lists</title>\n        <idx>figure</idx>\n        <idx>table</idx>\n        <idx>listing</idx>\n        <idx><h>list</h><h>named</h></idx>\n\n        <p>Some elements in <pretext/> are <term>containers</term>, meaning they do not stand by themselves, but are meant to be filled with other elements.  Other elements are <term>atomic</term>, meaning they cannot be decomposed into smaller elements.  A canonical example is the case of a <tag>figure</tag>, which is a container meant to be filled with other elements.  One such element is an <tag>image</tag>, which is atomic.  Note that the figure can be filled with other items, and that an image may appear inside other elements, including as a child of a division, perhaps as a peer within a run of paragraphs.  A purpose of the container is typically to provide a number and some text (a title, caption, or similar) as identification or description, in addition to indicating to conversions the necessity for some visual formatting (such as small amounts of separating vertical space above and below).  Note that an author provides the caption, while <pretext/> provides the vertical spacing.</p>\n\n        <p>Here we provide very brief descriptions of these four containers.  Be sure to consult the in-depth topics for more details on specifics.  Generally, the common thread here is that these containers contain text or graphic elements that has a two-dimensional quality to it.  To different degrees the content is rigid.  Unlike a paragraph, which could be unwound into a single (linear) long sequence of characters, <em>something</em> about the contents of these containers would be lost if stretched out in one dimension.  To reflect this rigid two-dimensional flavor, we refer to these objects (and their containers) as <term>planar</term>.</p>\n\n        <p>A <tag>figure</tag> is the most general planar container.  It can hold an <tag>image</tag>, a <tag>audio</tag>, a <tag>video</tag>, and more.  A <tag>caption</tag> is authored early as metadata, but will likely render below.  A <tag>title</tag> can be used for cross-references or in lists of figures, but may not render where authored.\n        See <xref ref=\"topic-figure\"/> for full details.\n        </p>\n\n        <p>A <tag>table</tag> is the container for a <tag>tabular</tag>, an atomic element which is the only allowed content of a table.  A <tag>title</tag> is the identifying information, and renders above the rows and columns of the table.  A variety of notes (to appear below the table) are possible (not implemented as of 2021-12-10).  The elements we provide to describe a table are heavily influenced by the discussion in <pubtitle>Chicago Manual of Style</pubtitle> <xref ref=\"cmos\" detail=\"Chapter 13\"/>, which is worth reading if your project has many important tables.  See <xref ref=\"topic-tabular\"/> for full details.</p>\n\n        <p>A <tag>listing</tag> is a container for computer code or programs, to support projects in computer science and other technical disciplines.  These languages often rely on indentation (Python) or even exact column numbers of text (<acro>FORTRAN</acro>), hence a planar quality.  Other languages can be written syntactically-correct as one long reflowable line (C, Pascal), but are impractical to do so as part of an exposition.  So the allowed content is a <tag>program</tag> or <tag>console</tag>, which will respect indentation, use monospace fonts, and include syntax highlighting.  Otherwise, a listing is very similar to a figure in how a caption and title are handled. See <xref ref=\"topic-listing\"/> for full details.</p>\n\n        <p>A <tag>list</tag> may not be what you think it is.  An actual list (be it ordered, unordered, or description) is a common and popular device for organizing information.  Start at <xref ref=\"overview-lists\"/> for details on lists.  Since these lists are considered part of a sentence (within a paragraph), or a part of a paragraph, it is hard to create a cross-reference to them.  So when you have a list that is important to mention elsewhere, you can create a <term>named list</term> with the <tag>list</tag> element, a container that has an optional <tag>introduction</tag>, followed by a actual list, and then an optional <tag>conclusion</tag>.  An example might be a laboratory procedure, such as the steps necessary to dissect a frog.  Like a <tag>table</tag> this element should have a <tag>title</tag>, and will be given a number.  Using a new line for each new list item, and conveying nesting with indentation gives a list a planar quality. See <xref ref=\"topic-named-list\"/> for full details.</p>\n\n        <p>We use a <tag>table</tag> to summarize these similar containers.</p>\n\n        <table>\n            <title>Containers for Planar Content</title>\n            <tabular>\n                <col/>\n                <col/>\n                <col/>\n                <col/>\n                <col/>\n\n                <row header=\"yes\" bottom=\"major\">\n                    <cell></cell>\n                    <cell>Figure</cell>\n                    <cell>Table</cell>\n                    <cell>Listing</cell>\n                    <cell>List</cell>\n                </row>\n\n                <row>\n                    <cell>Element</cell>\n                    <cell><c>figure</c></cell>\n                    <cell><c>table</c></cell>\n                    <cell><c>listing</c></cell>\n                    <cell><c>list</c></cell>\n                </row>\n\n                <row valign=\"top\">\n                    <cell>Contents</cell>\n                    <cell>various</cell>\n                    <cell><c>tabular</c></cell>\n                    <cell>\n                        <line><c>program</c>, or</line>\n                        <line><c>console</c></line>\n                    </cell>\n                    <cell><line><c>introduction</c></line>\n                          <line><c>ol</c>, <c>ul</c>, or <c>dl</c></line>\n                          <line><c>conclusion</c></line>\n                    </cell>\n                </row>\n\n                <row halign=\"center\">\n                    <cell halign=\"left\">Title</cell>\n                    <cell><times/></cell>\n                    <cell><times/></cell>\n                    <cell><times/></cell>\n                    <cell><times/></cell>\n                </row>\n\n                <row halign=\"center\">\n                    <cell halign=\"left\">Caption</cell>\n                    <cell><times/></cell>\n                    <cell></cell>\n                    <cell><times/></cell>\n                    <cell></cell>\n                </row>\n\n                <row halign=\"center\">\n                    <cell halign=\"left\">Notes</cell>\n                    <cell></cell>\n                    <cell><times/></cell>\n                    <cell></cell>\n                    <cell></cell>\n                </row>\n\n                <row>\n                    <cell>Details</cell>\n                    <cell><xref ref=\"topic-figure\"     text=\"global\"/></cell>\n                    <cell><xref ref=\"topic-tabular\"    text=\"global\"/></cell>\n                    <cell><xref ref=\"topic-listing\"    text=\"global\"/></cell>\n                    <cell><xref ref=\"topic-named-list\" text=\"global\"/></cell>\n                </row>\n            </tabular>\n        </table>\n    </section>\n\n    <section xml:id=\"overview-exceptional-characters\">\n        <title>Exceptional Characters</title>\n        <idx>exceptional characters</idx>\n        <idx><h>characters</h><h>exceptional</h></idx>\n\n        <p>An advantage of XML syntax is that very few characters are reserved for the language's use, and thus very few characters need to be escaped.  Of course, there is always the need to escape the escape character.</p>\n\n        <p>The escape character for XML is the ampersand, &amp;.  The other dangerous character is the left angle bracket, the <q>less than,</q> &lt;.  If you like to be symmetric, you can also handle the right angle bracket, the <q>greater than,</q> &gt;, similarly.  Single and double quotation marks are used to delimit attributes, so are part of the XML specification, but do not present difficulties in narrative text.</p>\n\n        <p>These first two characters are interpreted by the <init>XML</init> processor very early in the analysis of your source.  So they need to be authored specially via the <term>XML entities</term> <c>&amp;amp;</c> and <c>&amp;lt;</c>.  In practice, escaping <c>&gt;</c> is rarely necessary.  So fundamentally within <pretext/> there are just two characters to type carefully or exceptionally.</p>\n\n        <p>If you consistently follow the prescription in the previous paragraph you will avoid a descent into escape-character hell and avoid a lot of head-scratching.  In particular, you should have no need of the <c>&lt;![CDATA[</c><nbsp /><c>]]&gt;</c> mechanism of <init>XML</init>, so <em>please</em> just forget we even mentioned it.  But see <xref ref=\"topic-exceptional-characters\"/> if you are curious, or want a more thorough discussion.</p>\n    </section>\n\n    <section xml:id=\"overview-nontrivial-characters\">\n        <title>Nontrivial Characters</title>\n        <idx>nontrivial characters</idx>\n        <idx><h>characters</h><h>nontrivial</h></idx>\n\n        <p>Quality typography is more expansive than the limited capabilities of computer keyboards, whose history is rooted in the machines known as typewriters.  Some characters are never present on a keyboard (e.g., a pilcrow), while others are ambiguous.  Is a diagonal line a slash used to separate information (either/or), or is it a solidus used to form a simple fraction such as 3<solidus/>4? <xref ref=\"table-nontrivial-characters\"/> is a <em>sample</em> of how <pretext/> addresses this.  (The last two are the technical exceptions imposed by using a markup language, see <xref ref=\"overview-exceptional-characters\"/>.) See <xref ref=\"topic-paragraphs\"/> for a more comprehensive and detailed discussion.</p>\n\n        <table xml:id=\"table-nontrivial-characters\">\n            <title>Nontrivial Characters</title>\n            <tabular halign=\"left\">\n                <col halign=\"center\"/>\n                <col halign=\"left\" right=\"medium\"/>\n                <col halign=\"center\"/>\n                <col halign=\"left\"/>\n                <row bottom=\"medium\">\n                    <cell>To get this:</cell>\n                    <cell>Type this:</cell>\n                    <cell>To get this:</cell>\n                    <cell>Type this</cell>\n                </row>\n\n                <row>\n                    <cell><ellipsis/></cell>\n                    <cell><tage>ellipsis</tage></cell>\n                    <cell><fillin/></cell>\n                    <cell><tage>fillin</tage></cell>\n                </row>\n                <row>\n                    <cell><icon name=\"gear\"/></cell>\n                    <cell><c>&lt;icon name=\"gear\"/&gt;</c></cell>\n                    <cell><icon name=\"wrench\"/></cell>\n                    <cell><c>&lt;icon name=\"wrench\"/&gt;</c></cell>\n                </row>\n                <row>\n                    <cell><kbd>PrtScn</kbd></cell>\n                    <cell><c>&lt;kbd&gt;PrtScn&lt;/kbd&gt;</c></cell>\n                    <cell><kbd name=\"shift\"/></cell>\n                    <cell><c>&lt;kbd name=\"shift\"/&gt;</c></cell>\n                </row>\n                <row>\n                    <cell><ndash/></cell>\n                    <cell><tage>ndash</tage></cell>\n                    <cell><mdash/></cell>\n                    <cell><tage>mdash</tage></cell>\n                </row>\n                <row>\n                    <cell><registered/></cell>\n                    <cell><tage>registered</tage></cell>\n                    <cell><copyright/></cell>\n                    <cell><tage>copyright</tage></cell>\n                </row>\n                <row>\n                    <cell><permille/></cell>\n                    <cell><tage>permille</tage></cell>\n                    <cell><pilcrow/></cell>\n                    <cell><tage>pilcrow</tage></cell>\n                </row>\n                <row>\n                    <cell><section-mark/></cell>\n                    <cell><tage>section-mark</tage></cell>\n                    <cell><midpoint/></cell>\n                    <cell><tage>midpoint</tage></cell>\n                </row>\n                <row>\n                    <cell><trademark/></cell>\n                    <cell><tage>trademark</tage></cell>\n                    <cell><swungdash/></cell>\n                    <cell><tage>swungdash</tage></cell>\n                </row>\n                <row>\n                    <cell><times/></cell>\n                    <cell><tage>times</tage></cell>\n                    <cell><plusminus/></cell>\n                    <cell><tage>plusminus</tage></cell>\n                </row>\n                <row>\n                    <cell><solidus/></cell>\n                    <cell><tage>solidus</tage></cell>\n                    <cell><obelus/></cell>\n                    <cell><tage>obelus</tage></cell>\n                </row>\n                <row>\n                    <cell><degree/></cell>\n                    <cell><tage>degree</tage></cell>\n                    <cell/>\n                    <cell/>\n                </row>\n                <row>\n                    <cell><prime/></cell>\n                    <cell><tage>prime</tage></cell>\n                    <cell><dblprime/></cell>\n                    <cell><tage>dblprime</tage></cell>\n                </row>\n                <row>\n                    <cell>&amp;</cell>\n                    <cell><c>&amp;amp;</c></cell>\n                    <cell>&lt;</cell>\n                    <cell><c>&amp;lt;</c></cell>\n                </row>\n            </tabular>\n         </table>\n\n    </section>\n\n    <section xml:id=\"overview-verbatim-literal\">\n        <title>Verbatim and Literal Text</title>\n        <idx>verbatim text</idx>\n        <idx>literal text</idx>\n\n        <p>Typesetting literal text, usually in a monospace font, can sometimes be tricky.  For short bits of such text, as part of a sentence in a paragraph, or in a caption or title, use the <tag>c</tag> tag, which is short for <q>code.</q>  For much longer blocks of literal text, with line breaks that are to be preserved, use the <tag>cd</tag> element within a paragraph (<q>code display</q>).  Outside a paragraph, most anywhere you could place a regular paragraph, use the <tag>pre</tag> tag, which is short for <q>pre-formatted</q>.</p>\n\n        <p>For the content of a <tag>pre</tag> element, the indentation will be preserved, though an equal amount of leading whitespace will be stripped from every line, so as to keep the code shifted left as far as possible.</p>\n\n        <p>The behavior of these two tags is to preserve characters exactly.  Certainly the <acro>ASCII</acro> character set will behave as expected, and Unicode characters will migrate successfully to output formats based on <init>HTML</init>.  As mentioned in <xref ref=\"overview-exceptional-characters\" /> the ampersand and left angle bracket will confuse the initial XML processing.  So use the XML entities <c>&amp;amp;</c> and <c>&amp;lt;</c> to represent these characters to the <pretext /> conversion tool, the <pretext />-CLI.  See <xref ref=\"topic-verbatim-literal\" /> for further details.</p>\n    </section>\n\n    <section xml:id=\"overview-sage\">\n        <title>Sage</title>\n\n        <p><url href=\"http://www.sagemath.org/\">Sage</url><idx>Sage</idx> is an open source library of computational routines for symbolic, exact and numerical mathematics.  It is designed to be a <q>viable free open source alternative to Magma, Maple, Mathematica, and Matlab.</q>  <pretext /> contains extensive support for including example Sage into your document.</p>\n\n        <p>A typical use of the <tag>sage</tag> tag is to include an <tag>input</tag> element, followed by an <tag>output</tag> element.  The content of the <tag>input</tag> element may be presented statically in PDF output, or dynamically as a Sage Cell<idx>Sage cell</idx> in an output format based on HTML.  Of course, for output as a CoCalc or Jupyter worksheet, the Sage code is presented in the worksheet's native format.</p>\n\n        <p>The content of the <tag>output</tag> element is included in PDF output, but not in dynamic instances, since it can be re-computed.  Notably, there is a conversion which pairs input and output into a single file in the format used by Sage's <c>doctest</c> framework.  So if expected output is provided, it becomes automatic to identify when Sage has diverged from your expectations, and you can adjust your examples accordingly.</p>\n\n        <p>The Sage Cell Server can also be configured to interpret different languages, because Sage by default contains everything needed to evaluate code in these languages.  This is done by providing a <attr>language</attr> attribute, where possible values are <c>sage</c>, <c>gap</c>, <c>gp</c>, <c>html</c>, <c>macaulay2</c>, <c>maxima</c>, <c>octave</c>, <c>python</c>, <c>r</c>, and <c>singular</c>. The default is <c>sage</c>.</p>\n\n        <p>Note that the dynamic formats (including the Sage Cell) may run Sage <q>interacts,</q> so that is possible to embed interactive demonstrations into your dynamic output formats.</p>\n    </section>\n\n    <section xml:id=\"overview-interactive\">\n        <title>Interactives</title>\n\n        <p>We strive to make it simple for authors to incorporate interactive demonstrations in the online output of their projects.  Of course, this prompts the question of what to do with this content in less-capable formats like <init>PDF</init> or braille.</p>\n\n        <p>The <tag>interactive</tag> element provides a consistent way to specify these demonstrations.  There are many possibilities, but perhaps they can be grouped mostly into three broad classes.<dl>\n            <li>\n                <title>Server Hosted</title>\n                <p>Interactive demonstrations hosted at external sites, such as those from GeoGebra or Desmos, can be included simply by providing the appropriate identifying information, much like the way you would specify a YouTube video (<xref ref=\"topic-youtube-video\"/>).</p>\n            </li>\n            <li>\n                <title>Source Code</title>\n                <p>Some interactives can be described by source code that you include in your <pretext/> source.  Examples include JessieCode, CircuitJS, and Sage Interacts.  We also support GeoGebra this way.  This is similar to how we employ Sage Cells, but without as much specialization.</p>\n            </li>\n            <li>\n                <title>Roll Your Own</title>\n                <p>If you know <init>HTML</init>, <init>CSS</init>, and Javascript, you can provide your own routines and libraries to incorporate any sort of demonstration you can imagine and can code.</p>\n            </li>\n        </dl>See <xref ref=\"topic-interactive\"/> for details.</p>\n\n        <p>For output formats where executing an <tag>interactive</tag> would be impossible, we manufacture a static version.  This includes a screenshot of the demonstration (automatically generated, or supplied by the author) and a Quick Response (QR) code that will point to a <term>standalone</term> <init>HTML</init> page that contains the interactive.  Again, see <xref ref=\"topic-interactive\"/> for details.</p>\n    </section>\n\n    <section xml:id=\"overview-sidebyside\">\n        <title>Side-by-Side Panels</title>\n        <idx>side-by-side panel</idx>\n\n        <p>A <tag>sidebyside</tag><idx>side-by-side panel</idx> is a useful organization of elements in a horizontal layout, and so begins to blur the line between content and presentation.  While we default to organizing information in a vertical sequence, it is often desirable to organize smaller elements adjacent to each other horizontally.  Specifically, images, tabular, figures, tables, paragraphs, and more, may all be combined and there is good control over vertical and horizontal alignment.  Captioning, both overall and individually, is especially flexible.  An <tag>sbsgroup</tag>  (<q>side-by-side group</q><idx>side-by-side group</idx>) collects multiple <tag>sidebyside</tag> to stack vertically, which allows for displays in grids.  See <xref ref=\"topic-sidebyside\" /> for details.</p>\n    </section>\n\n    <section xml:id=\"overview-math-results\">\n        <title>Mathematical Results</title>\n        <idx><h>mathematics</h><h>mathematical results</h></idx>\n        <idx><h>mathematics</h><h>mathematical results</h><seealso>theorem-like elements</seealso></idx>\n\n        <p>Definitions, theorems, corollaries, <etc /> are supported by the tags:  <tag>theorem</tag>, <tag>corollary</tag>, <tag>lemma</tag>, <tag>algorithm</tag>, <tag>proposition</tag>, <tag>claim</tag>, <tag>fact</tag>, <tag>definition</tag>, <tag>conjecture</tag>, <tag>axiom</tag>, and <tag>principle</tag>.  Each may have a <tag>title</tag> (strongly encouraged), and then contains a <tag>statement</tag> which is a sequence of paragraphs and other elements.  As appropriate, some of these elements (such as a <tag>lemma</tag>) may contain an optional <tag>proof</tag> (or several), while other elements may not have a <tag>proof</tag> (such as a <tag>conjecture</tag>).</p>\n\n        <p>A <tag>definition</tag> is a natural place to define notation as well (see <xref ref=\"overview-index-notation\" />), and to use the <tag>term</tag> tag to identify the terminology being defined.</p>\n\n        <p>In order to assist readers locating numbered items, these items are all numbered consecutively in a group that includes <tag>example</tag>s, <tag>remark</tag>s and inline <tag>exercise</tag>s.</p>\n    </section>\n\n    <section xml:id=\"overview-frontmatter\">\n        <title>Front Matter</title>\n        <idx>front matter</idx>\n\n        <p>In the beginning of your <tag>book</tag> or <tag>article</tag> you can have a <tag>frontmatter</tag><idx>front matter</idx> element that contains various items that would precede your first <tag>chapter</tag> or <tag>section</tag> (respectively).  Possibilities include <tag>bibinfo</tag> (to hold <term>bibliographic information</term> about your document), <tag>titlepage</tag>, <tag>colophon</tag>, <tag>biography</tag>, <tag>abstract</tag>, <tag>dedication</tag>, <tag>acknowledgement</tag>, <tag>foreword</tag>, and <tag>preface</tag>.  Some of these may be duplicated (e.g., several prefaces for multiple editions), many of these items are restricted to books (e.g., a foreword), and some items are restricted to articles (e.g., an abstract).  The schema (<xref ref=\"schema\"/>) will help you place them in the right order in your source.  See <xref ref=\"topic-front-matter\"/> for details.</p>\n\n        <p>The <tag>frontmatter</tag> is also employed in other types of documents, such as a <tag>slideshow</tag>, in similar, but not identical, ways.</p>\n    </section>\n\n    <section xml:id=\"overview-backmatter\">\n        <title>Back Matter</title>\n        <idx>back matter</idx>\n\n        <p>Similar to front matter, there is material you might wish to include after your book's final <tag>chapter</tag> or your article's final <tag>section</tag>.  Possibilities to place in a <tag>backmatter</tag><idx>back matter</idx> include <tag>appendix</tag>, <tag>references</tag>, <tag>glossary</tag>, <tag>solutions</tag>, <tag>index</tag>, and <tag>colophon</tag>.  There are empty tags you can place into an appendix to generate lists of notation, or lists of particular elements of your choice, such as a list of figures.  A similar empty element actually generates the index, <tag>index-list</tag>, but you will almost always want to place it into the <tag>index</tag> division.  See <xref ref=\"topic-back-matter\"/> for details on the back matter generally.  Also, be sure to read about the powerful and flexible automatic list feature (<xref ref=\"topic-automatic-lists\"/>), which is not restricted to just the back matter.</p>\n    </section>\n\n    <section xml:id=\"overview-index-notation\">\n        <title>Index and Notation Entries</title>\n        <idx>index</idx>\n        <idx>notation</idx>\n        <idx>notation list</idx>\n        <idx><h>list</h><h>of notation</h></idx>\n\n        <p>Construction of an index<idx>index</idx> and a list of notation<idx>notation</idx> is accomplished by placing information into your text in the appropriate places in the right way.</p>\n\n        <p>The <tag>idx</tag> tags denote an index entry<idx><h>index</h><h>index entry</h></idx>.  These should be placed within the element that they describe.  By this we mean that an <tag>idx</tag> element can be placed within a <tag>theorem</tag> to refer to just that theorem, or it might be placed within a <tag>subsection</tag> to refer to that subsection.  When you do this, a natural place to place the <tag>idx</tag> is right after the <tag>title</tag> and similar metadata.  In this way, electronic versions of your work can have an index that is more informative than a traditional index that uses just page numbers, since it will be apparent while reading and using the index just what type of object the entry refers to.  (See the end of this Guide in an electronic format for an example, <xref ref=\"the-index\" text=\"title\"/>).  Note that the text contained within the <tag>idx</tag> tags does not actually appear in the article<mdash />it only serves to mark the location the index entry points to. You can have several levels of headings by structuring your <tag>idx</tag> element with up to three <tag>h</tag> tags (<q>h</q> for <q>heading</q>).  Additionally, you can use <tag>see</tag> or <tag>seealso</tag> for cross-references within the index.</p>\n\n        <p>See <xref ref=\"topic-index\"/> for more details and the finer points of creating index entries.</p>\n\n        <p>A similar device is used to create a list of notation for a technical (mathematical) work.\n        Place a <tag>notation</tag> element as close as possible to the place where notation is first introduced.  If you use the <tag>definition</tag> tag for your definitions, then this is a very natural place to also introduce notation.  Inside of <tag>notation</tag> use the <tag>usage</tag> tag to include a short example of the notation in use, wrapped in an <tag>m</tag> tag and use <latex/> syntax (as usual).  The <tag>description</tag> tag should contain a very short description in words of what the notation is for.  So <q>center of a group</q> would be a good description to accompany the usage <q><m>Z(G)</m>.</q></p>\n\n        <p>See <xref ref=\"topic-notation\"/> for more details and the finer points of creating notation entries.</p>\n    </section>\n\n    <section xml:id=\"overview-webwork\">\n        <title><webwork/> Exercises</title>\n        <idx><h><webwork/></h><h><webwork/> exercise</h></idx>\n\n        <p>\n            It is possible to include <webwork/>/PG problems in your source. These can be authored\n            using <pretext/>, included from local PG files, or referenced from a host <webwork/>\n            course. A static version of the exercise will be rendered in your static output formats\n            such as <latex/>/PDF. A <q>live</q> version will be rendered in HTML output. If the HTML\n            is hosted on a Runestone server, the student's progress completing the live exercises\n            can be tracked. You can also extract the problems into a single archive suitable for\n            uploading into a <webwork/> course. This is a big topic, so see the dedicated\n            <xref ref=\"webwork-author\"/> for details.\n        </p>\n    </section>\n\n    <section xml:id=\"overview-myopenmath\">\n        <title>MyOpenMath Exercises</title>\n        <idx>myopenmath exercise</idx>\n\n        <p>MyOpenMath is a hosted online homework system with hundreds of thousands\n        of prebuilt questions. These questions can be embedded in PreTeXt using the\n        <tag>myopenmath</tag> tag. See <xref ref=\"topic-myopenmath\"/> for details.</p>\n\n        <p>In the web output, the MyOpenMath question will be embedded and\n        interactive though not tied to any student or faculty account.  In static output,\n        a static version of the question will be included.  Note that there are some\n        limitations on which problems will display correctly in web and static output. See <xref ref=\"topic-myopenmath\"/> for best practices.</p>\n    </section>\n\n    <section xml:id=\"overview-stack\">\n        <title>STACK Exercises</title>\n        <idx>STACK exercise</idx>\n\n        <p><acro>STACK</acro> is an online assessment system, and these exercises can be embedded in a <pretext/> document. <acro>STACK</acro> is an acronym for <q>System for Teaching and Assessment using a Computer algebra Kernel.</q>  See <xref ref=\"topic-stack\"/> for details.</p>\n    </section>\n\n    <section xml:id=\"overview-url\">\n        <title><init>URL</init>s and External References</title>\n        <idx>URL</idx>\n        <idx>external reference</idx><idx><h>external reference</h><seealso>URL</seealso></idx>\n\n        <p>The <tag>url</tag> tag always requires an <attr>href</attr> attribute.  Usually this will be a complete address for some external web page, or other external resource.  The <attr>visual</attr> attribute is sometimes mandatory, but sometimes optional.  It should provide a simplified version of the <init>URL</init> for use in print, or similar situations.  Finally, you can provide content for the <tag>url</tag> element, which will become the clickable text in most realizations.</p>\n\n        <p>If the <tag>url</tag> element is empty (no content), then the value of the <attr>href</attr> attribute or the optional <attr>visual</attr> attribute will be the link text, with a preference for the latter.  When you instead provide content, you can use <pretext/> elements much like any other piece of text that would occur in a paragraph.  In this case, a <attr>visual</attr> attribute is now highly recommended, as an alternative to the content, providing information about the actual <init>URL</init> for non-electronic formats like print.  A default version of the value of the <attr>href</attr> attribute will be used in its absence.  This visual version of the <init>URL</init> will appear in a trailing parenthetical for print PDF versions.</p>\n\n        <p>See <xref ref=\"topic-url\"/> for an example and full details.  There is a similar <tag>dataurl</tag> element for pointing to supporting files, see <xref ref=\"topic-dataurl\"/>.</p>\n    </section>\n\n    <section xml:id=\"overview-video\">\n        <title>Video</title>\n        <idx>video</idx>\n\n        <p>Videos<idx>video</idx>, either author-hosted, via a <init>URL</init>, or hosted on YouTube, may be embedded in a <pretext /> document that is converted to <init>HTML</init>, and may be optionally <q>popped-out</q> to view on another page.  For a YouTube video, it is simplicity itself, as an author need only supply the identification string, and all the details of the embedding are handled by <pretext />.  See <xref ref=\"topic-video\" /> for details.</p>\n    </section>\n\n    <section xml:id=\"overview-si-units\">\n        <title>Scientific Units</title>\n        <idx>scientific units</idx>\n        <idx><h>SI units</h><see>scientific units</see></idx>\n        <idx><h>units</h><see>scientific units</see></idx>\n\n        <p>If you are writing about science or engineering, or even if you are not, there is extensive support for scientific units<idx>scientific units</idx>.  So, for example, you could author a force in metric units as</p>\n\n        <pre>\n        &lt;quantity&gt;\n            &lt;mag&gt;20.7&lt;/mag&gt;\n            &lt;unit prefix=\"kilo\" base=\"gram\" /&gt;\n            &lt;unit base=\"meter\" /&gt;\n            &lt;per  base=\"second\" exp=\"2\" /&gt;\n        &lt;/quantity&gt;\n        </pre>\n\n        <p>This would be rendered as <quantity><mag>20.7</mag><unit prefix=\"kilo\" base=\"gram\"/><unit base=\"meter\"/><per base=\"second\" exp=\"2\"/></quantity>.  More in <xref ref=\"topic-units-measure\" />.</p>\n    </section>\n\n    <section xml:id=\"overview-localization\">\n        <title>Localization</title>\n        <idx>localization</idx>\n        <idx>internationalization</idx>\n\n        <p>We are interested in helping authors produce documents with open licenses around the entirety of the world.  <pretext/> provides infrastructure for doing so (or <term>internationalization</term>) in accordance with guidelines of the <url href=\"https://www.w3.org/International/\" visual=\"www.w3.org/International/\">W3C Internationalization (I18n) Activity</url> at <init>W3C</init> (<c>www.w3.org</c>).</p>\n\n        <p>In order to actually adapt <pretext /> to another language (<term>localization</term>), there are two requirements:\n          <ul>\n            <li>A file for localization into the desired locale.</li>\n            <li>The author adds an <c>xml:lang</c> attribute on the <tag>pretext</tag> element.</li>\n        </ul>See <xref ref=\"topic-localization\" /> for more details.</p>\n\n    </section>\n\n    <section xml:id=\"overview-accessibility\">\n        <title>Accessibility</title>\n        <idx>accessibility</idx>\n        <idx>web accessibility</idx>\n\n\n        <p>The <url href=\"https://www.w3.org/standards/webdesign/accessibility\" visual=\"www.w3.org/standards/webdesign/accessibility\">Web Accessibility Initiative</url> at <init>W3C</init> (<c>www.w3.org</c>) says:</p>\n\n        <blockquote>\n            <p>The Web is fundamentally designed to work for all people, whatever their hardware, software, language, culture, location, or physical or mental ability. When the Web meets this goal, it is accessible to people with a diverse range of hearing, movement, sight, and cognitive ability.</p>\n\n            <p>Thus the impact of disability is radically changed on the Web because the Web removes barriers to communication and interaction that many people face in the physical world. However, when websites, web technologies, or web tools are badly designed, they can create barriers that exclude people from using the Web.</p>\n        </blockquote>\n\n        <p>Since we are interested in helping authors produce documents with open licenses, and we concentrate on employing open standards for the <init>HTML</init> output we create, we are ideally positioned to help you easily create highly-accessible documents.  There are many technical features which happen automatically, and there are some features which we make available for your use as an author and which only an author can provide, or elect to use.  Before getting too deep into your project, review <xref ref=\"topic-accessibility\" /> for full details and ways you can make the <init>HTML</init> version of your document more accessible, and more useful for a wider audience.</p>\n    </section>\n    <section xml:id=\"overview-slides\">\n      <title>Slides</title>\n      <idx>slides</idx>\n      <p>\n        In addition to articles and books, support for authoring slideshows is also available,\n        but is experimental (so tags and attributes are subject to change).\n      </p>\n      <p>\n        Currently, support for producing <url href=\"https://revealjs.com\" visual=\"revealjs.com\">Reveal.js</url>\n        and <url href=\"https://en.wikipedia.org/wiki/Beamer_(LaTeX)\" visual=\"en.wikipedia.org/wiki/Beamer_(LaTeX)\">Beamer <latex/></url>\n        slideshows is available. Details on authoring may be found in <xref ref=\"topic-slides\"/>,\n        and publishing details are in <xref ref=\"publisher-slides\"/>.\n      </p>\n      <p>\n        Also, future support for annotating <pretext/> books and articles to export <pretext/> slides\n        is in the works, but not yet available.\n      </p>\n    </section>\n\n    <section xml:id=\"overview-literate-programming\">\n        <title>Literate Programming</title>\n        <idx>literate programming</idx>\n\n        <p>If you know what <term>literate programming</term> is, then you may not be surprised to learn that <pretext/> provides excellent support primarily with two additional elements: <tag>fragment</tag> and <tag>fragref</tag>.</p>\n\n        <p>If you have never heard of literate programming, it is a way to mix code and documentation for a computer program in a single file.  But rather than typographically simple code comments, you have the full power of every other feature in <pretext/> and all of the possible output formats.  Furthermore, you can arrange your code in an order that might make more sense to a human (top-down, bottom-up, a mixture, or <ellipsis/>) and <pretext/> will rearrange the code into an order that the compiler or interpreter understands.</p>\n\n        <p>So the idea is that from one file you get a program for the compiler, and a beautiful, typeset explanation for a human reader in any format <pretext/> supports.  An accessible introduction is Knuth's description of his <c>WEB</c> system for the Pascal programming language <xref ref=\"knuth-literate-programming\"/>, or many more resources are at <url href=\"http://www.literateprogramming.com/\" visual=\"www.literateprogramming.com\">the literate programming site</url>.  Full details on the <pretext/> implementation are at <xref ref=\"topic-literate-programming\"/>.</p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/author/processing.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"processing\">\n    <title>Processing, Tools and Workflow</title>\n\n    <introduction>\n        <p>This chapter explains in full detail how to convert your source into various output formats, using both the simple <pretext />-CLI as well as other methods to combine your source file with an XSL stylesheet that might provide greater flexibility and control.  It expands on the simple cloud-based workflow in <xref ref=\"tutorial\" />, providing options for a local installation and processing.</p>\n    </introduction>\n\n    <section xml:id=\"processing-basic\">\n        <title>Options for Processing</title>\n\n        <p>\n            There are currently three supported options for converting (processing) your source:\n            <ol>\n                <li>\n                    <p>\n                        The <pretext/>-CLI: very easy and friendly, but somewhat limited in customization.  Requires Python 3.10 or later.  Documentation appears in <xref ref=\"processing-CLI\" />, and throughout the Guide as needed.\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        The <pretext/> script (sometimes referred to as <c>pretext/pretext</c>): a Python script that has a large variety of utilities to process your source and its components.  Requires Python 3.6 or later.  This script is very useful for development and for users who prefer a <q>Swiss Army Knife</q> approach to their tools.  In rare cases this may be needed to test new features that have not yet been exposed in the <pretext/>-CLI.  See <xref ref=\"pretext-script\"/>.\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        <c>xsltproc</c>: an executable program that directly converts <init>XML</init> using a specified XSL file.  The command-line program is easily available on Linux and MacOS, but harder to install on Windows (using Windows Subsystem for Linux is probably your best bet).  Demonstrations of use in this Guide are being phased-out but will be collected in <xref ref=\"xsltproc\"/>.\n                    </p>\n                </li>\n            </ol>\n        </p>\n\n        <p>\n            The <pretext />-CLI, can be installed on the command-line using the command <c>pip install pretext</c>, see <xref ref=\"processing-CLI\"/>.  To use options 2 and 3 above, you will need to get a copy of <pretext /> from its <url href=\"https://github.com/PreTeXtBook/pretext\" visual=\"github.com/PreTeXtBook/pretext\">GitHub repository</url>.  This can be done using the command <c>git clone https://github.com/PreTeXtBook/pretext.git</c>, or by downloading a zip file directly from the repository.\n        </p>\n\n        <p>\n            Wherever the functionality of the <pretext />-CLI allows it, instructions in this guide will use that method.  We will collect corresponding processing instructions using <c>xsltproc</c> in <xref ref=\"xsltproc\"/>.  Information on the use of the <pretext /> script can be found in <xref ref=\"pretext-script\" />.  These tools are especially useful when developing new features for <pretext />, so they are housed in the <xref ref=\"part-developer\" text=\"title\"/>.\n        </p>\n\n        <p>\n            If you prefer to use online, cloud-based tools, all of the processing options are available when using a Github Codespace or similar online platform.  If you already use and have a license for CoCalc, it should have all the tools ready to go (although you will likely want to update the CLI).\n        </p>\n    </section>\n\n    <section xml:id=\"processing-CLI\">\n        <title>The <pretext />-CLI</title>\n        <idx><h>CLI</h></idx>\n        <author>Oscar Levin</author>\n        <introduction>\n        <p>\n            Here we will outline the functionality of the <pretext />-CLI.  Instructions for using the CLI without any local installation can be found in <xref ref=\"tutorial\"/>.  An easy first step toward getting PreTeXt working locally would be to download VS Code and install the <c>pretext-tools</c> extension (which will install the <pretext />-CLI for you, assuming you have an appropriate version of python available).\n        </p>\n\n        <p><idx>command-line</idx><idx>terminal</idx><idx>console</idx>\n            We will work at the <term>command-line</term> inside of a <term>\n            terminal</term> or <term>console</term>. If you do not know what this is, it will seem very primitive at first. This will be called a <q>Command Prompt</q> or <q>PowerShell</q> in Windows or a <q>Terminal</q> on a Mac. In Linux it may be known as a <q>console</q> or a <q>shell</q>. Whenever the guide says to enter something on the <em>command line</em> or in a <em>terminal</em>, or just to <em>enter the command</em>, this is what we are talking about.\n        </p>\n\n        </introduction>\n\n        <subsection>\n            <title>Installing <pretext /></title>\n\n            <p>\n                Before you can install <pretext /> locally, make sure you have the following software on your computer, or else install it using instructions easily searched for online.\n                <ul>\n                    <li>\n                        <p>\n                            Python, version 3.10 or later. In a terminal, type <c>python --version</c> to ensure you are already set up. On MacOS or Linux, your command for python might be called <c>python3</c>, so also try <c>python3 --version</c>.\n                        </p>\n                    </li>\n                    <li>\n                        <p>\n                            To use an HTML theme other than the default, you will need Node.js, version 18 or later.  You can check if you have it installed by running <c>node --version</c> in your terminal.\n                        </p>\n                    </li>\n                    <li>\n                        <p>\n                            To produce a pdf, or to generate tikz images from source, you need <latex />. Try <c>xelatex --version</c> to see if you already have this.\n                        </p>\n                    </li>\n                    <li>\n                        <p>\n                            Any text editor. <url href=\"https://code.visualstudio.com/\" visual=\"code.visualstudio.com\">Visual Studio Code</url> is an excellent choice (and has an extension, <url href=\"https://marketplace.visualstudio.com/items?itemName=oscarlevin.pretext-tools\">PreTeXt-tools</url>, with specific language support), but other editors such as SublimeText, atom, emacs, vi, etc. can also be used. See <xref ref=\"editors\" />.\n                        </p>\n                    </li>\n                </ul>\n            </p>\n\n            <p>\n                Now we can install <pretext />. Open a terminal and type the following:\n            </p>\n            <console>\n                <input>pip install pretext[all]</input>\n            </console>\n\n            <p>\n                If this fails, try:\n            </p>\n\n            <console>\n                <input>python -m pip install pretext[all]</input>\n            </console>\n\n            <p>\n                (or, if <c>python3</c> worked above, do <c>python3 -m pip install pretext[all]</c>.)\n            </p>\n\n            <p>\n                The <c>python -m</c> helps in case Python is on your <init>PATH</init> but <c>pip</c> is not. This is a useful fix for the rest of the commands listed for the <pretext />-CLI.\n            </p>\n\n            <p>\n                Including the <c>[all]</c> at the end of the instillation command will install both optional dependencies with the CLI: <c>pelican</c> for generating a static landing page if you wish to deploy multiple targets, and <c>prefigure</c>, to include accessible prefigure graphics.  You could install just one of these using <c>pip install pretext[prefigure]</c>, for example.  If something goes wrong, you can always just include the required dependencies with <c>pip install pretext</c>.\n            </p>\n\n            <note>\n                <p>\n                    Newer Linux distributions and MacOS versions may give an error or warning when using <c>pip</c> outside of a virtual environment.  It is likely best practice to use a virtual environment, especially if you use python for other projects.  Some instructions are available in <xref ref=\"python-virtual\"/>.\n                </p>\n                <p>\n                    Alternatively, you can use <c>pipx</c> to install the CLI with <c>pipx install pretext</c>, which will create and manage a virtual environment for you.\n                </p>\n            </note>\n\n            <p>\n                To verify that the CLI is installed, type <c>pretext --version</c> (or <c>python -m pretext --version</c>) and you should get back a number (2.13.5, for example).\n            </p>\n\n            <p>\n            <idx><h>CLI</h><h><c>--help</c></h></idx>\n                For quick hints about what you can do, the CLI has built-in help. You can access this by entering <c>pretext --help</c> or <c>pretext build --help</c> (replacing <c>build</c> with <c>new</c> or <c>view</c> or <c>generate</c> etc.).\n            </p>\n\n        <paragraphs>\n            <title>Upgrading</title>\n\n            <p>\n                This documentation will assume you have version 1.0 or later of the CLI. You can upgrade the CLI to the most recent version through PIP using the command:\n            </p>\n\n            <console>\n                <input>pip install pretext --upgrade</input>\n            </console>\n\n            <p>\n                Versions of the CLI starting with 2.12 also allow you to simply run <c>pretext upgrade</c> to get the most recent version.\n            </p>\n\n            <p>\n                If you want to experiment with bleeding-edge features, you can install a nightly development version of the CLI by running:\n            </p>\n\n            <console>\n                <input>pip install pretext --upgrade --pre</input>\n            </console>\n\n            <p>\n                If you ever want to downgrade to previous version, you can do that with <c>pip</c> as well.  For example, to install version 2.20.1:\n            </p>\n\n            <console>\n                <input>pip install pretext==\"2.20.1\"</input>\n            </console>\n            <warning>\n                <p>\n                    If you installed the <pretext />-CLI before version 1.0, you need to manually uninstall the package <c>pretextbook</c> (which is what the CLI was called during early development).  Run <c>pip uninstall pretextbook</c> and then <c>pip install pretext</c> te get caught up.\n                </p>\n            </warning>\n\n            </paragraphs>\n        </subsection>\n\n        <subsection>\n            <title>Starting a New Project: <c>pretext new</c></title>\n            <idx><h><c>new</c></h></idx>\n            <idx><h><c>pretext new</c></h></idx>\n            <idx><h>CLI</h><h><c>new</c></h></idx>\n            <p>\n                To generate a new book or article, from the folder in which you want to project located, type:\n            </p>\n\n            <console>\n                <input>pretext new book</input>\n            </console>\n\n            <p>\n                This creates a new book in the folder <q>new-pretext-project</q> (which you can safely rename).  For a new article, use <c>pretext new article</c>.  You might also try <c>pretext new demo</c> to get a project that shows off more features available, or <c>pretext new course</c> for a collection of course documents.  <c>pretext new slideshow</c> will create a new project with a simple slideshow template.\n            </p>\n\n            <p>\n                Inside the <q>new-pretext-project</q> folder, you will find the following folders and files:\n                <dl>\n                    <li>\n                        <title>assets</title>\n                        <p>\n                            A folder to place static (external) assets, such as images or data files, that you will include in your project, for example, with <tage>image source=\"frog.jpg\"</tage>.\n                        </p>\n                    </li>\n                    <li>\n                        <title>generated-assets</title>\n                        <p>\n                            A folder that will hold assets (such as images) generated from source, using the <c>pretext build</c> or <c>pretext generate</c> commands.  You should not manually edit any contents of this folder.\n                        </p>\n                    </li>\n                    <li>\n                        <title>publication</title>\n                        <p>\n                            A folder to hold your <q>publication</q> files used to customize how your output looks.  One publication file is included, but you can have as many as you want.  See <xref ref=\"publication-file-reference\"/>.\n                        </p>\n                    </li>\n                    <li>\n                        <title>source</title>\n                        <p>\n                            A folder to hold all your <pretext /> source files.  These are the main files you will edit to control the content of your project.\n                        </p>\n                    </li>\n                    <li>\n                        <title>project.ptx</title>\n                        <p>\n                            An <init>XML</init> file called the <term>project manifest</term>. This specifies options for converting your source into different <term>target</term> outputs.  We will describe the contents of this file in <xref ref=\"cli-project-manifest\"/>.\n                        </p>\n                    </li>\n                    <li>\n                        <title>README.md</title>\n                        <p>\n                            A file that you can use to describe your project.\n                        </p>\n                    </li>\n                    <li>\n                        <title>requirements.txt</title>\n                        <p>\n                            A simple text file that contains the version of the CLI that is initially used to build the project.  If you upgrade the CLI, you will be warned to also update the version in this file once you know that things build as expected.\n                        </p>\n                    </li>\n                </dl>\n            </p>\n\n            <p>\n                Once you build your project, you will get a folder called <c>output</c> and possibly one called <c>.cache</c> (which stores cached generated assets).  Do not edit the contents of these folders manually; such changes will be overwritten anyway.\n            </p>\n\n            <p>\n                Additional files and folders will be generated if your project is managed by git (for example, if you use GitHub).  You can expect to see a file <c>.gitignore</c> and folders <c>.devcontainer</c> and <c>.github</c>.\n            </p>\n\n            <p>\n                Whenever you upgrade your installation of the CLI, you should run <c>pretext update</c> from inside your project folder.  Doing so will update any managed files that you have not edited.  This can be useful to get the latest features.\n            </p>\n        </subsection>\n        <subsection xml:id=\"processing-CLI-build\">\n            <title>Converting: <c>pretext build</c></title>\n            <idx><h><c>build</c></h></idx>\n            <idx><h><c>pretext build</c></h></idx>\n            <idx><h>CLI</h><h><c>build</c></h></idx>\n            <p>\n                To convert your source into one of the available output formats, say HTML, run the command:\n            </p>\n\n            <console>\n                <input>pretext build web</input>\n            </console>\n\n            <p>\n                Here <q>web</q> is the <attr>name</attr> of one of the targets in the project manifest (<c>project.ptx</c>).  To build different targets, replace it with the <attr>name</attr> of another target, as in <c>pretext build print</c>.\n            </p>\n\n            <p>\n                You can also build the first (default) target of the manifest by omitting the target: just type <c>pretext build</c>.\n            </p>\n        </subsection>\n\n        <subsection>\n            <title>Viewing output: <c>pretext view</c></title>\n            <idx><h>CLI</h><h><c>view</c></h></idx>\n            <idx><h><c>view</c></h></idx>\n            <idx><h><c>pretext view</c></h></idx>\n            <p>\n                After you convert your source into, say HTML, you can view the output using the command:\n            </p>\n\n            <console>\n                <input>pretext view web</input>\n            </console>\n\n            <p>\n                This will direct you to open a file running in a local server (that the CLI started for you) at a provided address (perhaps <url href=\"http://localhost:8128/output/web\" visual=\"http://localhost:8128/output/web\"/>).  Once you have run <c>pretext view</c> once, you can navigate to other output targets by navigating to a different url (maybe <url href=\"http://localhost:8128/output/print\" visual=\"http://localhost:8128/output/print\"/>) or just rerun the <c>pretext view</c> command with a different target name.\n            </p>\n\n            <p>\n                Running <c>pretext view</c> will attempt to open your default program for the type of file you are opening.  You can prevent this attempt using the <c>--no-launch</c> flag.\n            </p>\n\n            <p>\n                Assuming you ran this command in a terminal, the easiest way to continue working is to open a new terminal tab to run <c>pretext build</c> again; the local server will continue in the original terminal until you stop it with <kbd>CTRL</kbd>+<kbd>C</kbd>.\n            </p>\n\n            <warning>\n                <p>\n                    When using <c>pretext view</c>, your project is only viewable on your local machine (even if you are working in a Codespace or on CoCalc).  To make the output available to the public, you will need to copy the output to a web server, or use the <c>pretext deploy</c> command, described below.\n                </p>\n            </warning>\n        </subsection>\n\n\n        <subsection>\n            <title>Hosting your project: <c>pretext deploy</c></title>\n            <idx><h>hosting</h></idx>\n            <idx><h>CLI</h><h><c>deploy</c></h></idx>\n            <idx><h><c>deploy</c></h></idx>\n            <idx><h><c>pretext deploy</c></h></idx>\n            <p>\n                When you are ready to share your project with the world, you can copy the contents of the <c>output/web</c> (or whatever you called the output of your html build) to any webserver.  A convenient free option is to use <url href=\"https://pages.github.com/\">GitHub Pages</url>, and the CLI makes this especially easy.\n            </p>\n\n            <p>\n                If you already track your source files using GitHub, all you need to do is enter the following command:\n            </p>\n\n            <console>\n                <input>pretext deploy</input>\n            </console>\n\n            <p>\n                If you watch the terminal, you will either get directions for how to set up your repository, or will simply be told what the live website for your project is.\n            </p>\n            <p>\n                Behind the scenes, this command copies the contents of the output folders you want to deploy to a folder <c>output/stage</c>, and then moves the entire contents of that folder to the <c>gh-pages</c> branch of your github repository.  If you have not already created a <c>gh-pages</c> branch, the CLI will create one for you.  If you have not already set up your repository to track your source files, the CLI will walk you through the steps you need to get set up.\n            </p>\n\n            <insight>\n                <p>\n                    If you don't have your project set up with GitHub yet, the CLI will try to walk you through the process.\n                </p>\n                <p>\n                    Sometimes authentication with GitHub can be tricky.  Especially on Macs, it appears that conflicts can arise if you use different methods for authenticating in different applications.  A fix that seems to work is to open Keychain Access, search for <q>github</q> and delete some or all of the entries you find (GitHub api seems to be a culprit).  You will need to reauthenticate then, but after that, it should work.\n                </p>\n            </insight>\n\n            <insight>\n\n                <p>\n                    You can deploy multiple targets, starting with the 2.0 release of the CLI.  To do this, you will need to specify a <attr>deploy-dir</attr> attribute in your project manifest for each target you want to deploy.  Additionally, you should create a folder in the root of your project called <c>site</c> and create a landing page for your project.  The <c>site</c> folder and the output folders for each specified project will all be copied to <c>output/stage</c>.  We recommend using the flag <c>--stage-only</c> so you can preview you complete site before deploying it.\n                </p>\n            </insight>\n        </subsection>\n\n        <subsection>\n            <title>Generating assets: <c>pretext generate</c></title>\n            <idx><h><c>generate</c></h></idx>\n            <idx><h><c>pretext generate</c></h></idx>\n            <idx><h>CLI</h><h><c>generate</c></h></idx>\n            <p>\n                Some <pretext /> elements require special processing: <webwork/> exercises, <tag>prefigure</tag>, <tag>latex-image</tag>, <tag>sageplot</tag>, and <tag>asymptote</tag> images, as well as previews for embedded youtube videos or interactive elements.  We call these elements <q>assets</q> or <q>generated assets</q>.\n            </p>\n\n            <p>\n                Prior to version 1.7 of the CLI, you would need to run <c>pretext generate -t [target]</c> (where <q>[target]</q> is the name of a target, like <q>web</q>) in order to generate assets.  Since then, you can still do this, but it is usually not necessary: whenever you build a target, the CLI will automatically generate any assets that are out of date.  If you want to force the generation of assets, you can use the <c>-g</c> flag when building (e.g., <c>pretext build web -g</c>).  If you really don't want to automatically regenerate assets, you can use the <c>--no-generate</c> flag when building (e.g., <c>pretext build web --no-generate</c>).\n            </p>\n\n            <p>\n                If you want to generate assets without building (or if you are using an older version of the CLI), the following instructions can help you limit what you generate.\n                <ul>\n                    <li>\n                        <p>\n                            You can limit which sorts of assets you generate.  For example, if you edit a few <tag>latex-image</tag> elements, you can just generate these (for the first target in the manifest) with <c>pretext generate latex-image</c>.  To get the same assets for a different target, use the <c>-t</c> flag (e.g., <c>pretext generate -t print prefigure</c>).  If you want to generate all assets for a specific target, use the <c>--all-assets</c> flag (e.g., <c>pretext generate -t web --all-assets</c>).  This will generate all assets for the specified target, regardless of whether they are out of date or not.\n                        </p>\n                        <p>\n                            Valid choices for what types of assets you can generate in this specific way are: <c>webwork</c>, <c>prefigure</c>, <c>latex-image</c>, <c>sageplot</c>, <c>asymptote</c>, <c>interactive</c>, <c>youtube</c>, <c>codelense</c>, and <c>datafile</c>.\n                        </p>\n                    </li>\n                    <li>\n                        <p>\n                            To be even more precise, if the element you wish to generate has an <attr>xml:id</attr>, you can generate just that element using the <c>-x</c> flag.  For example, if your <tag>latex-image</tag> has id <q>img-circle</q>, generate it with <c>pretext generate -x img-circle</c>\n                        </p>\n                    </li>\n                    <li>\n                        <p>\n                            Finally, there might be times you would like to get all output formats for the assets you are generating.  You can accomplish this using the <c>--all-formats</c> flag on <c>pretext generate</c>.  Different output formats require different asset formats; to get just those formats for a particular target, you can use the <c>-t</c> flag to specify a target name.\n                        </p>\n                    </li>\n                </ul>\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"cli-project-manifest\">\n            <title>The project manifest: <c>project.ptx</c></title>\n            <idx><h>project manifest</h></idx>\n            <idx><h>manifest</h></idx>\n            <idx><h>CLI</h><h>project manifest</h></idx>\n            <idx><h><c>project.ptx</c></h></idx>\n            <p>\n                The project manifest, always named <q>project.ptx</q>, contains information about each <term>target</term> you will build.  Prior to version 2.0 of the CLI, it also contained the names of <term>executables</term> of external tools that might be needed for building targets and generating assets.  (In 2.0 and later, if you need to change the default names or paths to executables, you will use a separate <c>executables.ptx</c> file.)\n            </p>\n\n            <p>\n                The CLI looks for this file, so you should have only one.  If you have a project that was not created using <c>pretext new</c>, you can get a copy of the file by running <c>pretext init</c>.  You can also get the most recent template version of the manifest by running <c>pretext init --refresh</c>, which will create a new versions of the files (and create a <c>.bak</c> backup version for those you have modified so you can compare then and update accordingly).\n            </p>\n\n            <p>\n                While we use the <c>.ptx</c> extension, the manifest is not technically a <pretext/> document, since it does not agree with the schema.  However, it must have a specific structure to be used with the CLI.  An example of a simple manifest is given in <xref ref=\"cli-project-manifest-example\"/>.  Note this is version 2 manifest; for a comparison of <q>legacy</q> manifests and the current format, see <xref ref=\"cli-v1vsv2\"/>.\n            </p>\n\n            <listing xml:id=\"cli-project-manifest-example\">\n                <title>Example of a very simple project manifest.</title>\n            <program language=\"xml\">\n                <code>\n                <![CDATA[\n                <?xml version=\"1.0\" encoding=\"utf-8\"?>\n                <project ptx-version=\"2\">\n                <targets>\n                    <target name=\"web\" format=\"html\" />\n                    <target name=\"rs\" format=\"html\" publication=\"publication-runestone.ptx\" />\n                    <target name=\"print\" format=\"pdf\" />\n                </targets>\n                </project>\n                ]]>\n                </code>\n            </program>\n            </listing>\n\n            <p>\n                The manifest contains a single <tag>project</tag> element with a <attr>ptx-version</attr> attribute.  This attribute is required and must be set to <q>2</q> for the CLI to recognize the file as a valid manifest.  Additional optional attributes of <tag>project</tag> can also be specified, which we will describe below.  The <tag>project</tag> element has a single child, <tag>targets</tag>, which contains a list of <tag>target</tag> elements.\n            </p>\n\n            <p>\n                <idx><h>CLI</h><h>targets</h></idx>\n                Each <tag>target</tag> must have a <attr>name</attr> attribute.  The name (e.g., web, print) is what you specify when you run <c>build</c>, <c>view</c>, or <c>generate</c> for a specific target (so <c>pretext build web</c>, <c>pretext view web</c> or <c>pretext generate -t web</c>).\n            </p>\n\n            <p>\n                <idx><h>CLI</h><h>format</h></idx>\n                The second required attribute of <tag>target</tag> is <attr>format</attr>, which must be one of html, pdf, latex, custom, epub, kindle, or braille (although the last three of these are still experimental, as of 9/1/2023).\n            </p>\n\n            <p>\n                With just these attributes, as with the manifest in <xref ref=\"cli-project-manifest-example\"/>, the CLI assumes your project uses default values throughout. The following defaults are constructed from the default value for an attribute of the root <tag>project</tag> element with the default value for an attribute of a particular <tag>target</tag> element. Each of the two pieces can be overridden. The net default folders are:\n                <ul>\n                    <li><p>The source is <c>source/main.ptx</c>.</p></li>\n                    <li><p>The publication file is <c>publication/publication.ptx</c>.</p></li>\n                    <li><p>Output is stored in <c>output/</c> (with each target in a subfolder identical to the target's <c>name</c>).</p></li>\n                    <li><p>The staging directory to preview deploys is <c>output/stage</c>.</p></li>\n                </ul>\n                Again, each of these can be modified using the appropriate attribute of either the root <tag>project</tag> element or a particular <tag>target</tag> element.\n            </p>\n\n            <p>\n                In <xref ref=\"table-cli-project-attributes\"/> and <xref ref=\"table-cli-target-attributes\"/> we give all the attributes you can have on the <tag>project</tag> and <tag>target</tag> elements, respectively.  Some attributes can be specified for both elements.  In such cases, the values will be paths, and the path given in the <tag>target</tag>'s attribute will be relative to the path given in the <tag>project</tag>'s attribute. This can be useful, for example, if all targets have publication files in the same folder, but the files for some targets are different.\n            </p>\n\n            <p>All paths described in <xref ref=\"table-cli-project-attributes\"/> are given <em>relative to the root of your project</em> (the location of the <c>project.ptx</c> file).</p>\n\n            <table xml:id=\"table-cli-project-attributes\">\n                <title>Attributes available for the <tag>project</tag> element.</title>\n                <tabular valign=\"top\">\n                    <col/><col width=\"70%\"/>\n                    <row header=\"yes\">\n                        <cell>Attribute</cell><cell>Description</cell>\n                    </row>\n                    <row>\n                        <cell><attr>ptx-version</attr></cell><cell><p>Required.  Must have value 2.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>source</attr></cell><cell><p>Optional, default: <c>source</c>.  Path to folder holding main source file.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>publication</attr></cell><cell><p>Optional, default: <c>publication</c>.  Path to folder holding publication file.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>output-dir</attr></cell><cell><p>Optional, default: <c>output</c>.  Path to folder in which output files/folders for each target will be created.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>site</attr></cell><cell><p>Optional, default: <c>site</c>.  Path to folder holding user-provided landing page for deploying multiple targets.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>stage</attr></cell><cell><p>Optional, default: <c>output/stage</c>.  Path to folder where deployable targets will be collected before they are deployed.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>xsl</attr></cell><cell><p>Optional, default: <c>xsl</c>.  Path to folder holding custom xsl files.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>asy-method</attr></cell><cell><p>Optional, default: <c>server</c>.  Valid values: <c>server</c> or <c>local</c>. Used to specify whether asymptote images should be generated using the <c>server</c> asymptote version or a <c>local</c> asymptote install.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>generated-cache</attr></cell><cell><p>Optional, default: <c>.cache</c>.  Path to folder holding cached versions of some generated assets.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>cname</attr></cell><cell><p>Optional, default: None.  The custom domain you want to use for a deployed target through github pages. Only needed if you set a custom domain.</p></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Any file paths described in attributes of a <tag>target</tag> element are relative to a corresponding attribute value from the root <tag>project</tag> element.</p>\n\n            <table xml:id=\"table-cli-target-attributes\">\n                <title>Attributes available for the <tag>target</tag> elements.</title>\n                <tabular halign=\"left\" valign=\"top\">\n                    <col/><col width=\"70%\"/>\n                    <row header=\"yes\">\n                        <cell>Attribute</cell><cell>Description</cell>\n                    </row>\n                    <row>\n                        <cell><attr>name</attr></cell><cell><p>Required.  The name you use when executing a CLI command.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>format</attr></cell><cell><p>Required.  Valid values: <c>html</c>, <c>pdf</c>, <c>latex</c>, <c>epub</c>, <c>kindle</c>, <c>braille</c>, <c>webwork</c>, and <c>custom</c>.  The format the target will be built into.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>source</attr></cell><cell><p>Optional, default: <c>main.ptx</c>.  Path to the root source file of the project (relative to the value of the <attr>source</attr> of <tag>project</tag>).</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>publication</attr></cell><cell><p>Optional, default: <c>publication.ptx</c>.  Path to publication file (relative to the value of <attr>publication</attr> attribute of <tag>project</tag>).</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>output-dir</attr></cell><cell><p>Optional, default: the value of <attr>name</attr>.  Path to folder in which output files/folders will be created (relative to the value of <attr>output-dir</attr> attribute of <tag>project</tag>).</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>output-filename</attr></cell><cell><p>Optional, default: generated by pretext. Only valid for formats that produce a single output file.  Path to output file to be built (relative to the value of <attr>output-dir</attr> of the same <tag>target</tag> element).</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>deploy-dir</attr></cell><cell><p>Optional, no default.  Path to subdirectory of deployed site where this target will live.  If deploying multiple targets, then this attribute must have a value for it to be deployed.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>xsl</attr></cell><cell><p>Optional, no default. Required when <attr>format</attr> is <c>custom</c>. Path to custom <init>XSL</init> file (relative to the value of <attr>xsl</attr> attribute of <tag>project</tag>).</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>latex-engine</attr></cell><cell><p>Optional, default: <c>xelatex</c>.  Valid values: <c>xelatex</c>, <c>pdflatex</c>, or <c>latex</c>. Only used on targets that build with latex, to specify what latex command to call in that step.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>latex-source</attr></cell><cell><p>Optional, default: <c>no</c>.  Valid values: <c>yes</c> or <c>no</c>.  Only used on pdf format targets. If <c>yes</c>, the LaTeX source file will be included in the output directory. Equivalent to using the <c>--latex</c> flag with <c>pretext build</c>.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>braille-mode</attr></cell><cell><p>Optional, default: <c>emboss</c>.  Valid values: <c>emboss</c> or <c>electronic</c>. Only used when <attr>format</attr> is <c>braille</c>, to specify the mode for braille.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>platform</attr></cell><cell><p>Optional, no default. Only valid when <attr>format</attr> is <c>html</c>.  Valid values: <c>runestone</c>.  Used to specify that the target will be hosted on Runestone.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>compression</attr></cell><cell><p>Optional, no default.  Only valid when <attr>format</attr> is <c>webwork</c> or <c>html</c> and <attr>platform</attr> is not <c>runestone</c>. Valid values: <c>scorm</c> or <c>zip</c>.  Results in output being compressed (as <c>.zip</c> file), and if the value is <c>scorm</c>, the required scorm manifest is also include in the archive.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>asy-method</attr></cell><cell><p>Optional, default: <c>server</c>.  Valid values: <c>server</c> or <c>local</c>. Overrides the <attr>asy-method</attr> attribute on <tag>project</tag>.</p></cell>\n                    </row>\n                    <row>\n                        <cell><attr>standalone</attr></cell><cell><p>\n                            Optional, default: <c>no</c>.  Valid values: <c>yes</c> or <c>no</c>.  If <c>yes</c>, the target will be built as a standalone document.  This will place the output adjacent to the source file, unless <attr>output-dir</attr> is specified.  Useful for creating a target for which you will specify a different source file (using the <c>-i</c> flag when building).\n                        </p></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <example xml:id=\"example-manifest\">\n                <title>Example Project Manifest</title>\n\n                <p>\n                    To illustrate how the relative paths work, with attributes on both <tag>project</tag> and <tag>targets</tag> elements, consider the following manifest:\n                </p>\n            <program language=\"xml\">\n                <code>\n                <![CDATA[\n                <?xml version=\"1.0\" encoding=\"utf-8\"?>\n                <project ptx-version=\"2\" source=\"src\" output-dir=\"out\">\n                    <targets>\n                        <target\n                            name=\"web\"\n                            format=\"html\"\n                            output-dir=\"web\" />\n                        <target\n                            name=\"print\"\n                            format=\"pdf\"\n                            source=\"main-print.ptx\"\n                            publication=\"pub/publication.ptx\" />\n                    </targets>\n                </project>\n                ]]>\n                </code>\n            </program>\n                <p>\n                    Here, the web target, with format html, will build from the root <pretext/> file \"src/main.ptx\", using the publication file \"publication/publication.ptx\", and will place the output in the folder \"out/web\".\n                </p>\n                <p>\n                    The print target, with format pdf, will build from the file \"src/main-print.ptx\", using the publication file \"publication/pub/publication.ptx\", and will place the output in the folder \"out/print\".\n                </p>\n            </example>\n\n            <p>\n                <idx><h>stringparam</h></idx>\n                <idx><h>CLI</h><h>stringparam</h></idx>\n                <idx><h>xmlid-root</h></idx>\n                <idx><h>CLI</h><h>xmlid-root</h></idx>\n                In addition to the attributes available for <tag>target</tag> elements, there is one optional child element, <tag>stringparams</tag>, which can be used to specify string parameter options (see <xref ref=\"publisher-string-parameters\"/>).  These are specified using an attribute for the name of the string parameter, and the value of the attribute is the value of the string parameter.  Multiple string parameters are set using multiple attributes on the single <tag>stringparams</tag> element.  For example,\n                <cd>\n                    <cline>&lt;stringparams author.tools=\"yes\" html.css.extra=\"external/custom-style.css\" /&gt;</cline>\n                </cd>\n            </p>\n        </subsection>\n\n        <subsection>\n            <title>Executables</title>\n            <idx><h>CLI</h><h>executables</h></idx>\n            <p>\n                <pretext/> uses several external tools to build and generate assets.  The CLI will automatically find these tools if they are installed in the default location for your operating system.  If you have installed them in a non-standard location, you can specify the path to the executable in a <c>executables.ptx</c> file, at the root of your project.  In <xref ref=\"listing-v2-executables\"/> we give the defaults and formatting of such a file.\n            </p>\n\n            <listing xml:id=\"listing-v2-executables\">\n                <title>Example of version 2 executables file</title>\n                <program language=\"xml\">\n                  <code>\n                  <![CDATA[\n\n                  <?xml version=\"1.0\" encoding=\"utf-8\"?>\n                  <executables\n                        latex=\"latex\"\n                        pdflatex=\"pdflatex\"\n                        xelatex=\"xelatex\"\n                        asy=\"asy\"\n                        sage=\"sage\"\n                        pdfeps=\"pdftops\"\n                        node=\"node\"\n                        liblouis=\"file2brl\" />\n\n                  ]]>\n                  </code>\n                </program>\n              </listing>\n\n              <warning>\n                <p>\n                    Prior to version 2 of the CLI, these executables were contained in the <c>project.ptx</c> file.  If you are using a version prior to 2.0, see <xref ref=\"cli-v1vsv2\"/>.\n                </p>\n              </warning>\n        </subsection>\n\n        <subsection xml:id=\"subsec-cli-standalone\">\n            <title>Using <pretext /> outside of a project</title>\n            <idx><h>standalone files</h></idx>\n            <p>\n                Most of the time you will want to set up a project folder that will hold all the files you need for your project, including the <c>project.ptx</c> and <c>publication.ptx</c> configuration files, your possibly modular source files, and external assets.  However, it is also possible to use <pretext /> to process a single file, similar to how you might with <latex />.  Starting with the CLI version 2.19.0, this can be done easily.\n            </p>\n\n            <p>\n                Suppose a colleague sends you a file <c>mypaper.ptx</c> which you save to your <c>~/Desktop</c> folder.  You can process this file using the following command.\n            </p>\n\n                <console>\n                    <input>pretext build pdf -i ~/Desktop/mypaper.ptx</input>\n                </console>\n\n            <p>\n                This will create a <c>mypaper.pdf</c> file in the <c>~/Desktop</c> folder (i.e., adjacent to the source <c>.ptx</c> file).\n            </p>\n\n            <p>\n                You can also get portable <init>HTML</init> output using <c>pretext build html -i ~/Desktop/mypaper.ptx</c>, which will create a folder <c>mypaper_html</c> in the <c>~/Desktop</c> folder.  Note that often a portable <init>HTML</init> build will result in a single <c>.html</c> file, so this can easily be shared with others or uploaded to a web server.\n            </p>\n        </subsection>\n\n        <subsection>\n            <title>Getting help</title>\n            <p>\n                <idx><h>CLI</h><h><c>-v debug</c></h></idx>\n                In addition to checking <c>pretext --help</c>, <c>pretext build --help</c>, <c>pretext view --help</c>, etc, you have a few options when you run into trouble.  If you are getting errors that don't make sense, even after trying follow the suggestion of the error messages, look at the time-stamped log files inside the <c>logs</c> folder (or the <q>cli.log</q> file if you are using a CLI version prior to 2.0), which includes debug-level log messages.  You can also run the CLI using this higher level of verbosity using the <c>-v debug</c> option, which must go right after <c>pretext</c> command, before the subcommands (<c>build</c>, <c>deploy</c>, etc.).  That is, enter the following for example,\n            </p>\n\n            <console>\n                <input>pretext -v debug build web</input>\n            </console>\n\n            <p>\n                <idx><h><c>pretext support</c></h></idx>\n                <idx><h>CLI</h><h><c>support</c></h></idx>\n                You can also ask for help on the <url href=\"https://groups.google.com/g/pretext-support\">google support group</url>.  When you post there, please run <c>pretext support</c> from inside your project's folder and copy the output into your help request.\n            </p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"processing-modular\">\n        <title>Modular Source Files</title>\n        <idx>modular source files</idx>\n        <idx><h>including files</h><see>modular source files</see></idx>\n\n        <p>For a large project, such as a book, you will likely want to split up your source into logical units, such as chapters and sections.\n        The <pretext />-CLI supports an inclusion mechanism automatically (see <xref ref=\"xsltproc\"/> for what you need to do different for <c>xsltproc</c>).\n        </p>\n\n        <p>\n            Suppose your <c>book</c> on animals has a <c>chapter</c> on mammals with a <c>section</c> on monkeys.  Then you need to do the following:\n            <ol>\n                <li>\n                    <p>For the file containing the <tag>chapter</tag> tag for the chapter on mammals, place the attribute\n                    <cd>\n                        <cline>xmlns:xi=\"http://www.w3.org/2001/XInclude\"</cline>\n                    </cd>\n                    on the outermost tag in the file.</p>\n                </li>\n                <li><p>Within the <tag>chapter</tag> element for the chapter on mammals, add the line <c>&lt;xi:include href=\"monkeys.xml\" /&gt;</c> to <q>pull in</q> the section on monkeys at that location.  The <attr>href</attr> attribute can point to a file in a subdirectory, but will be interpreted relative to the location of the file containing the mammal chapter element.</p></li>\n        </ol></p>\n\n        <p>Several comments are in order.<ul>\n            <li><p>Begin small and start a project <em>without</em> using modular files.  Modularizing seems to add a layer of complexity that sometimes obscures other beginner's errors.  So get comfortable with a single source file before branching out.</p></li>\n            <li><p>The <init>XML</init> specification requires that a source file only contain a single outermost element.  So for example, two <tag>chapter</tag> elements cannot go into the same file as simultaneous outermost elements.</p></li>\n            <li>There will always be a <q>main</q> file that contains the <tag>pretext</tag> element as its single outermost element.  In this Guide we will call this the <term>top-level</term> file.<idx>top-level file</idx></li>\n            <li><p>Any file that uses an <tag>xi:include</tag> element will need the <c>xml:ns</c> declaration on the outermost element.  So in our animal book example, the top-level file, which presumably includes several chapter files, would need this declaration on the <tag>pretext</tag> element.</p></li>\n            <li><p>In practice, there is not a lot to be gained by creating a subdirectory structure mirroring your modularization<mdash />all your source files can go into one big directory and the <init>XML</init> hierarchy will take care of the organization.  I do sometimes like to name my files accordingly, so for example <c>chapter-mammals.xml</c> and <c>section-monkeys.xml</c>.</p></li>\n            <li><p>When you validate your source (see <xref ref=\"processing-dtd\"/> and <xref ref=\"schema\"/>) you will always point to the top-level source file (the one with the <tag>pretext</tag> tags).</p></li>\n        </ul></p>\n\n        <p>The book generated by <c>pretext new demo</c> has modular source, so is a nice starting point to see how this works.  Other examples are the sample book in <c>examples/sample-book</c> amply demonstrates different ways to modularize parts of a project (but in no way should be taken as best practice in this regard).  This guide, in <c>doc/author-guide</c> is a simple example of modular source files, and might be a good template to follow for your book.\n        See <xref ref=\"topic-xinclude\" /> for some of the finer points of this topic.</p>\n    </section>\n\n    <section xml:id=\"processing-dtd\">\n        <title>Verifying your Source</title>\n\n        <p>A <term>schema</term><idx>schema</idx>, in our case a <init>RELAX-NG</init> schema,  is a formal specification of an <init>XML</init> vocabulary<idx><h>schema</h><seealso>XML vocabulary</seealso></idx><idx>XML vocabulary</idx> (the allowed tags and attributes), and how they relate to each other.  So, for example, the restrictions that say you cannot nest a <tag>book</tag> inside of a <tag>chapter</tag>, nor can you nest a <tag>subsection</tag> in a <tag>chapter</tag> without an intervening <tag>section</tag>, are expressed and enforced by the schema.  One of the beauties of the schema is that it is written using a very specific syntax and then there are tools that use a schema as input.  In particular, a <pretext /> source file that conforms to the <pretext /> schema is said to be <term>valid</term><idx>valid schema</idx>.  You should strive to always, always, always have valid source files, and therefore you want to regularly verify that this is the case.</p>\n\n        <p>You can find the <pretext /> schema in the <url href=\"https://github.com/PreTeXtBook/pretext/schema\" visual=\"github.com/PreTeXtBook/pretext/schema\"><c>schema</c> folder of the GitHub repository</url>.  The version we author and maintain is <c>pretext.xml</c>, which is used to create <c>pretext.rnc</c>, which uses the compact syntax of the RELAX-NG specification.  By providing the schema and your source to a program called a <term>validator</term><idx>validator</idx> you can check if your source is valid, and if not, why.  See <xref ref=\"schema\" /> for the details on doing this.</p>\n\n        <p>\n            The <pretext />-CLI also has some basic validating capability: after running <c>pretext build</c>, open the <c>.error_schema.log</c> file in the main folder of your project to see validation errors.\n        </p>\n\n        <p>If you author source that is valid <pretext />, then a conversion of your source to another format should succeed.  And maybe in the future, somebody will create a new conversion to a new output format, and your source should still produce faithful output, with no extra effort from you.  Think of the schema as a contract between authors of source files and developers of converters.  This is different than performing a conversion and getting good-looking output<ndash />that can just be a happy accident and your source may not succeed with some other conversion.</p>\n\n        <p>We cannot stress enough the importance of setting up and performing regular validation and preventing many consistent errors of the same type.  You will learn what elements are allowed where, and which are not, from the messages produced by validation errors.  And when a conversion fails, or produces spectacularly incorrect output, validating your source should be your first reaction.  Always.</p>\n\n        <p>The other beauty of a schema is that you can supply it to a text editor (<xref ref=\"introduction-to-source-formatting\" />) and then you will get context-sensitive help that greatly assists you in using only the tags and attributes that are allowed in a given location of your source.  <url href=\"http://xml-copy-editor.sourceforge.net/\" visual=\"xml-copy-editor.sourceforge.net/\">XML Copy Editor</url> is the one editor like this we have tried, but we do not have extensive experience.</p>\n\n        <p>We have devoted an entire chapter (<xref ref=\"schema\" />) to amplifying this introduction and providing more details, such as where to find details on installing a validator.</p>\n    </section>\n\n    <section xml:id=\"processing-customizations\">\n        <title>Customizations</title>\n\n        <p>There are some aspects of your output that are entirely divorced from the actual content, and are presumably all about how that content is presented.  Two good examples are the size of the font used in <latex />/PDF/print output, and the granularity of web pages in HTML output (by this we mean, is each web page a whole chapter, a whole section, a whole subsection?).  Producing output with varying values of these parameters does absolutely nothing to change your content in any way, and so should not be a part of your writing, nor a concern while you concentrating on your writing.</p>\n\n        <p>Therefore, many aspects of how your writing is <em>presented</em> is accomplished by your publisher.  Note that this is very different from <em>your</em> role as the author of your project.  When your project is mature then you can consult with your publisher about how to best present your project to your audience.  An entire part of this guide is devoted to this process (<xref ref=\"part-publisher\"/>), but if you are curious, the first part of <xref ref=\"conversions\"/> can serve as an introduction.</p>\n    </section>\n\n    <section xml:id=\"processing-directory-management\">\n        <title>Directory Management</title>\n        <introduction>\n            <p>\n                Organizing your source files, external assets (like images) and other support files, can become a challenge as your project grows.  <pretext /> supports managing external and generated files (including images), but this requires some setup and understanding of the correct way to specify assets in your source.  This section explains both those steps.\n            </p>\n\n            <p>\n                If you are starting a new project, using the <pretext />-CLI (with the command <c>pretext new book</c>, for example), then most of the setup portion is done for you.\n            </p>\n        </introduction>\n\n        <subsection>\n            <title>External and Generated Files</title>\n\n            <p>Early in your writing project, you will decide you want to add images, embedded YouTube videos, interactive demonstrations, or other enhancements that are more than just words on the page.  Some of these objects will be created outside of your <pretext/> project, such as a photograph.  But some images are described within your <pretext/> project, such as a diagram authored using the <latex/> TikZ package, and <pretext/> will help generate different versions of the diagram in different file formats for use in output formats that are not <latex/>.  For an embedded YouTube video we provide tools that will automatically get you a thumbnail preview image from a YouTube server, which will then appear in your non-interactive PDF version.  We describe the photograph as <term>external</term>, since it comes from <q>somewhere else,</q> independent of anything you authored in your source. In contrast, an SVG image of your TikZ diagram for HTML output, and a preview image of a YouTube video for use in a print version, are described as <term>generated</term> since they are dependent on what you have put in your source, and <pretext/> automates almost all of their creation for you.</p>\n\n            <p>As these files are added to your project, you want to organize them in a specific (but flexible) way.  First, make a directory (folder) for your <em>external</em> files.  You can use any name you like, including <c>external</c>.  Within reason you can place it wherever you want.  Natural choices are as a peer of a <c>source</c> directory that holds your <pretext/> files, or as a subdirectory of your project's top-level directory that may hold all your <pretext/> files.  You can also organize this directory with subdirectories of your own choice, if that helps you stay organized.</p>\n\n            <p>Similarly, you need a separate directory for your <em>generated</em> files.  As above, it can be named anything, including <c>generated</c>, and you can place it almost anywhere (close by).  But now, it must have a precise directory structure, described below in <xref ref=\"subdirectories-of-generated\"/>, according to what sort of generation produced the files.</p>\n\n            <p>After you have read this section, see the discussion of generated and external files in <xref ref=\"version-caveats\"/> for some good examples of why this flexibility is useful.</p>\n        </subsection>\n\n        <subsection>\n            <title>Managing Directories</title>\n\n            <p>The name, and location of the external and generated directories (both of them, always) are then specified in a publication file (see <xref ref=\"publication-file-directory-management\"/> for the precise specification).  The values of these attributes are <em>relative</em> pathnames to the directories, relative to the location of the <em>main</em> <pretext/> file for your project.  Let us take a look at an example.</p>\n\n            <example xml:id=\"sample-directory-management\">\n                <title>Sample Directory Management</title>\n\n                <p>Suppose you are M.<nbsp/>Jones, the author of the <init>AOTA</init> project, and so you might have the following directory and file structure.  There is some sort of overall path from the root of your entire filesystem to your project, so on Linux this path could be<cd>\n                    <cline>/home/mjones/books/</cline>\n                </cd>and on other operating systems it will be slightly different, but those differences are not relevant here.  Inside of <c>books</c> there would be an <c>aota</c> directory for the <init>AOTA</init> project, structured as follows.  We are most interested in the <c>ext</c> and <c>gen</c> directories.<cd>\n                    <cline>aota</cline>\n                    <cline>    source</cline>\n                    <cline>        aota.ptx</cline>\n                    <cline>        alligators.ptx</cline>\n                    <cline>        dogs.ptx</cline>\n                    <cline>    publication</cline>\n                    <cline>        print.ptx</cline>\n                    <cline>        online.ptx</cline>\n                    <cline>        epub.ptx</cline>\n                    <cline>    ext</cline>\n                    <cline>        photos</cline>\n                    <cline>            slow-alligator.jpeg</cline>\n                    <cline>            fast-whippet.png</cline>\n                    <cline>        movies</cline>\n                    <cline>            alligator-chases-whippet.mp4</cline>\n                    <cline>        data</cline>\n                    <cline>            deer-weights.csv</cline>\n                    <cline>    gen</cline>\n                    <cline>        latex-image</cline>\n                    <cline>            marsupial-life-cycle.svg</cline>\n                    <cline>        youtube</cline>\n                    <cline>            sloth.jpg</cline>\n                </cd></p>\n\n                <p>In your publication files you would then have the entry, as a sub-element of the <c>source</c> element,<cd>\n                    <cline>&lt;directories external=\"../ext\" generated=\"../gen\"/&gt;</cline>\n                </cd>Notice that we have deliberately named our directories <c>ext</c> and <c>gen</c> as part of this illustration, so that they are not identical to the <em>attribute</em> names on the <tag>directories</tag> element.  The two attribute values are <em>relative</em> to the location of the main <pretext/> file, in this case <c>aota.ptx</c>.  The two periods, <c>..</c>, mean to go up a level, here to the <c>aota</c> directory, then the slash indicates a step down to either <c>gen</c> or <c>ext</c>.  Note that <c>latex-image</c> and <c>youtube</c> within <c>gen</c> <em>must</em> be specified exactly that way.  Now every <pretext/> production tool can deduce where your files are.</p>\n\n                <p>How do you specify in your <pretext/> source which file to use where?  Suppose you want your two (external) photographs to be used in a <tag>sidebyside</tag> element.  You would author<cd>\n                    <cline>&lt;sidebyside widths=\"50% 30%\"&gt;</cline>\n                    <cline>     &lt;image source=\"photos/slow-alligator.jpeg\"/&gt;</cline>\n                    <cline>     &lt;image source=\"photos/fast-whippet.jpeg\"/&gt;</cline>\n                    <cline>&lt;sidebyside/&gt;</cline>\n                </cd>Notice that the values of your <attr>source</attr> attributes <em>do not</em> include <c>ext</c> or <c>../ext</c>.  This gives you the freedom to move your <c>ext</c> directory or rename it, and then you only change the publication file and not your source.  The decision to have the subdirectories <c>photos</c> and <c>movies</c> are not easily changed, since they will be in your source, but they may have value for the organization of your project.</p>\n\n                <p>The chase video is of your own creation, you have included it as part of your project's files, and will be hosting it on your web server, where the rest of your HTML version is made available for viewing.  You might author<cd>\n                    <cline>&lt;figure xml:id=\"fig-chase\"&gt;</cline>\n                    <cline>     &lt;caption&gt;Alligator chases whippet&lt;/caption&gt;</cline>\n                    <cline>     &lt;video source=\"movies/alligator-chases-whippet.mp4\"/&gt;</cline>\n                    <cline>&lt;figure/&gt;</cline>\n                </cd></p>\n\n                <p>The situation with the generated files is presently a bit more complicated, but will eventually be transparent to an author.  The marsupial life cycle diagram has been authored in your source using the language from the <latex/> TikZ package, which is delimited as a <tag>latex-image</tag> element.  When building a PDF from <latex/> output this is a no-brainer<mdash/><pretext/> just puts your TikZ code into the <latex/> file.  But how about HTML output?  The <c>pretext/pretext</c> script will manufacture a standalone version of this image and then convert it to an SVG, and this version will work very well in the online version of your project.  What do you author?<cd>\n                    <cline>&lt;figure xml:id=\"fig-life-cycle\"&gt;</cline>\n                    <cline>     &lt;caption&gt;Marsupial Life Cycle&lt;/caption&gt;</cline>\n                    <cline>     &lt;latex-image xml:id=\"marsupial-life-cycle\"&gt;</cline>\n                    <cline>         -- some TiKZ code here --</cline>\n                    <cline>     &lt;/latex-image&gt;</cline>\n                    <cline>&lt;figure/&gt;</cline>\n                </cd>With the right options to the <c>pretext/pretext</c> script, the file <c>marsupial-life-cycle.svg</c> will be generated.  Presently, you must explicitly tell the script to place the output in the directory<cd>\n                    <cline>/home/mjones/books/gen/latex-image</cline>\n                </cd>but we plan to make this the default behavior.  Or you could generate the file anywhere, and move it to the <c>latex-image</c> subdirectory of <c>gen</c>.  Notice how much of the process of creating a companion SVG image (which excels in a web browser) is automated, and how the <attr>xml:id</attr> attribute and the directories in the publication file are used to keep everything coordinated.  The <c>latex-image</c> directory is not negotiable, it is the home for <em>every</em> image authored using a <pretext/> <tag>latex-image</tag> element (see <xref ref=\"subdirectories-of-generated\"/>).</p>\n\n                <p>The slow sloth video was created by somebody else and posted to YouTube as a super slo-mo 240fps video.  You authored it within a <tag>figure</tag> simply by using the ID of the video on YouTube.<cd>\n                    <cline>&lt;figure xml:id=\"fig-sloth\"&gt;</cline>\n                    <cline>     &lt;caption&gt;Slow Sloth&lt;/caption&gt;</cline>\n                    <cline>     &lt;video xml:id=\"sloth\" youtube=\"DJWEqYcxUl8\"/&gt;</cline>\n                    <cline>&lt;figure/&gt;</cline>\n                </cd>With the right options to the <c>pretext/pretext</c> script, the file <c>sloth.jpg</c> will be generated by requesting a thumbnail preview from YouTube's servers.  Note how this content is generated from your source (precisely, the YouTube ID) through an automated process.  Presently, you must explicitly tell the script to place the output in the directory<cd>\n                    <cline>/home/mjones/books/gen/youtube</cline>\n                </cd>but we plan to make this the default behavior.  The <c>youtube</c> directory is not negotiable, it is the home for <em>every</em> server-generated preview image for an embedded YouTube video (see <xref ref=\"subdirectories-of-generated\"/>).  (Note that any <tag>video</tag> may have an author-provided image as its preview, and then this would be considered an external file.)</p>\n            </example>\n\n            <p>As you can tell from the above, different output formats have different expectations for additional files and when producing an output, there may be different expectations for where exactly where to find files.  A good example is the <init>EPUB</init> format, which despite being basically an HTML format, is still very rigorous about names, formats, and locations for image files.  With the above procedures you provide just enough information for <pretext/> to handle the remainder of the complexity for you, without you becoming an expert with the EPUB standard.  So the <c>pretext/pretext</c> script can automatically produce PDF, HTML, EPUB, Kindle, and braille, each in a single step.</p>\n\n            <p>We have skirted one finer point of all this.  How does an author know if a file is external or generated and what are the supported subdirectories of the generated directory?  A <pretext/> <attr>source</attr> attribute will almost always point to a file that belongs in the external directory.  An exception is the <attr>preview</attr> attribute which is used to specify static images to use in outputs like PDF or print to represent more dynamic objects employed in more-capable electronic formats (videos, audio, interactives).  (Please alert us to other exceptions!)  The list below describes the subdirectories of the generated directory.  The files that belong in these directories are all generated by the <c>pretext/pretext</c> script using aspects of your authored source.</p>\n\n            <list xml:id=\"subdirectories-of-generated\">\n                <title>Subdirectories of the Generated Directory</title>\n                <!-- preserve alphabetical ordering -->\n                <dl width=\"narrow\">\n                    <li>\n                        <title><c>asymptote</c></title>\n                        <p>Images described by Asymptote code in an <tag>asymptote</tag> element.</p>\n                    </li>\n\n                    <li>\n                        <title><c>dynamic_subs</c></title>\n                        <p><init>XML</init> files needed for dynamic fill-in-the-blank exercises.</p>\n                    </li>\n\n                    <li>\n                        <title><c>latex-image</c></title>\n                        <p>Images described by <latex/> code in a <tag>latex-image</tag> element.</p>\n                    </li>\n\n                    <li>\n                        <title><c>mermaid</c></title>\n                        <p>Images described by Mermaid code in a <tag>mermaid</tag> element.</p>\n                    </li>\n\n                    <li>\n                        <title><c>prefigure</c></title>\n                        <p>Images described by PreFigure code in a <tag>prefigure</tag> element.</p>\n                    </li>\n\n                    <li>\n                        <title><c>preview</c></title>\n                        <p>Static images of dynamic content, created with automatic screenshots via a headless web server.</p>\n                    </li>\n\n                    <li>\n                        <title><c>problems</c></title>\n                        <p>MyOpenMath problems in static <pretext/> forms.</p>\n                    </li>\n\n                    <li>\n                        <title><c>qrcodes</c></title>\n                        <p>QR codes for <init>PDF</init> files that point to live versions of some interactive elements.</p>\n                    </li>\n\n                    <li>\n                        <title><c>sageplot</c></title>\n                        <p>Images described by Sage code in a <tag>sageplot</tag> element.</p>\n                    </li>\n\n                    <li>\n                        <title><c>trace</c></title>\n                        <p>Program trace data for <tag>codelens</tag> elements</p>\n                    </li>\n\n                    <li>\n                        <title><c>youtube</c></title>\n                        <p>Static images for YouTube videos, automatically downloaded from YouTube servers.</p>\n                    </li>\n                </dl>\n            </list>\n\n            <p>Just one more obscure situation to address, requiring a peek under the hood.  Occasionally there are external files used in ways that <pretext/> cannot <q>see</q> them and provide the management necessary.  One example is a file of data points used to generate a plot using the <tag>latex-image</tag> element.  Suppose we have a file<cd>\n                <cline>/home/mjones/books/ext/data/deer-weights.csv</cline>\n            </cd>as shown in <xref ref=\"sample-directory-management\"/>.  We will use this inside of a <tag>latex-image</tag> element employing PGF code with a <c>table {};</c> construction.  As part of building the <latex/> output, this file will be copied to a temporary directory as<cd>\n                <cline>external/data/deer-weights.csv</cline>\n            </cd>Note that your <c>ext</c> has been converted to <c>external</c> as files are copied<mdash/>that is not a typo.  <pretext/> is not going to examine all your code and try to guess where you have requested a file.  So you need to author<cd>\n                <cline>\\addplot table {external/data/deer-weights.csv};</cline>\n            </cd>\n            using the filename created after the copy.  Then the <latex/> compilation will locate the file successfully.  The <c>external</c> directory after the file copy is not negotiable, that is what is always used.</p>\n        </subsection>\n\n        <subsection>\n            <title>Backward-Compatibility and Migration</title>\n\n            <p>Directory management was added in the middle of 2021.  For projects existing at that time, it is an <q>opt-in</q> feature.  In other words, existing projects can still be built by moving additional files in the same ways as always, so long as you do not have a <tag>directories</tag> element in your publication file.</p>\n\n            <p>However, it is absolutely necessary to opt-in to directory management (via the publication file) if you want to build EPUB or Kindle formats.  You will also then be able to build PDF and HTML output with a single invocation of the <c>pretext/pretext</c> script, without any extra effort to place additional files in the right places.</p>\n\n            <p>New projects should definitely adopt directory management as their project develops.  New features and tools will assume this.  We now describe how existing projects can migrate.</p>\n\n            <p>Previously there was not a firm distinction between external and generated files, though they were specified differently in <pretext/> source.  Many authors placed both types of files into a single directory, and since the default for locating generated files was a directory called <c>images</c>, this was often the single directory employed.   Thus, external files would be specified with a <attr>source</attr> attribute such as<cd>\n                <cline>&lt;image source=\"images/bobcat.jpg\"/&gt;</cline>\n            </cd>A solution, if a bit clunky, is to make a new directory named <c>ext</c> and copy <c>images</c> and its contents to become a subdirectory of <c>ext</c>.  Then place a relative path to <c>ext</c> in the <attr>external</attr> attribute in your publication file.  This means you will not have to edit your <pretext/> source at all.  At some later time, you could remove all references to <c>images</c> in your source and move the files themselves directly into <c>ext</c>.</p>\n\n            <p>For generated files it will be a bit more involved.  You need a new directory, such as <c>gen</c>, and you need to add it to your publication file with the right relative path.  Then you will need to create as many of the relevant directories from <xref ref=\"subdirectories-of-generated\"/> as necessary, as subdirectories of <c>gen</c>.  Populate these subdirectories with the relevant files, which may have been located in <c>images</c> before you started migrating.  There was a string parameter, <c>directory.images</c>, that could be used to specify an alternative directory to the default, <c>images</c>.  That parameter is now announced as deprecated, but will still be effective until your project opts-in.</p>\n\n            <p>As another short-term option for Mac or Linux users, it is possible to take previously existing resource directories and make symbolic links from a previous image directory, such as <c>my_images</c>, to the names provided here.  In that case, assuming the directory structure provided here, a command like <c>ln -s my_images external</c> (issued in the directory containing <c>my_images</c>) would create the correct symbolic link.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"processing-images-inkscape\">\n        <title>Creating Images with Inkscape</title>\n        <idx>Inkscape</idx>\n        <idx><h>vector graphics</h><h>Inkscape</h></idx>\n\n        <p>A strength of <pretext/> is the ability to create diagrams and images with editable source code, embedded alongside your other <pretext/> source material (<xref ref=\"topic-images-source\"/>, <xref ref=\"processing-images-pretext\"/>).  But sometimes you want, or need, to be more artistic.  <url href=\"https://inkscape.org/\" visual=\"inkscape.org/\">Inkscape</url> is a great tool for creating images.  It ticks all the boxes: open source, mature, cross-platform, standards-compliant.  Bethany Llewellyn helped research Inkscape capabilities for this section.</p>\n\n        <p>Inkscape's native file format is Scalable Vector Graphics (<init>SVG</init>).  As the name suggests, this translates into excellent support for vector graphics.  (See <xref ref=\"topic-images-raster\"/> and <xref ref=\"topic-images-vector\"/> for the distinction.)  Why use Inkscape?<ul>\n            <li><init>SVG</init> files are small and scale smoothly when you zoom in on a web page.  So this format is our top choice for how images are realized in the <init>HTML</init> output.  They will also work well in formats based on <init>HTML</init>, such as <init>EPUB</init>.</li>\n            <li>The <init>SVG</init> format is how Inkscape works with images internally.  The file format it calls <q>Inkscape SVG</q> is valid <init>SVG</init>, along with additional information to make editing better and/or easier.  So any author may come back and easily edit an image saved in this format.</li>\n            <li>Inkscape will export easily and efficiently to Portable Document Format (<init>PDF</init>), another vector format.  This is our top choice for realizing images in <latex/> output, which will become print or <init>PDF</init> output.</li>\n            <li><init>SVG</init> is an <init>XML</init> format, just like <pretext/>.</li>\n        </ul></p>\n\n        <p>When would you use Inkscape?<ul>\n            <li>Your image is more free-form and artistic than what a source language like TikZ or Asymptote will provide, and you do not need to embed any mathematical symbols.</li>\n            <li>You do not want to learn some new source language (there <em>is</em> a significant learning curve for most of these).</li>\n            <li>You want to annotate screenshots (see <xref ref=\"list-annotate-screenshot\"/>).</li>\n        </ul></p>\n\n        <p>Note that when you save an image as <init>SVG</init> from within Inkscape, you have two choices: <q>Plain SVG</q> and <q>Inkscape SVG</q>.  The latter contains additions to the former which make subsequent editing better and/or easier.  So, you can choose to use <q>Plain</q> as the format used for your <init>HTML</init> output, and it will be smaller and provide great performance.  But you can also make an <q>Inkscape</q> version of the same name, and distribute it with your source files in a different directory, so you and others can edit it easily later.</p>\n\n        <list xml:id=\"list-annotate-screenshot\">\n            <title>Annotated Screenshot</title>\n\n            <introduction>\n                <p>Suppose you want to include a screenshot of some application, and point out some aspect of it.</p>\n            </introduction>\n\n            <ol>\n                <li>View the application on the highest-resolution monitor you can get your hands on.  Not a laptop and not a phone.</li>\n\n                <li>Zoom in, so the area of interest fills as much of the screen as possible.  You are trying to capture as many pixels as possible.</li>\n\n                <li>Use a screen-capture tool that allows you to save the result as Portable Network Graphics (<init>PNG</init>).  This is a lossless format, and you may be able to elect a high level of compression as part of the file-saving process.</li>\n\n                <li>The only raster format explicitly supported by Inkscape is <init>PNG</init>.  So you can import the screenshot into Inkscape, and use the tools there to add arrows, red ovals, etc. to highlight key parts of the image.</li>\n\n                <li>Save the result as <init>PNG</init>, since it already has a significant raster component, for use in <init>HTML</init> conversions.  And save again as <init>PDF</init> for use in print and <init>PDF</init> output.</li>\n            </ol>\n        </list>\n    </section>\n\n    <section xml:id=\"processing-images-pretext\">\n        <title>Images Described in Source</title>\n\n        <p>We believe it is important to preserve a record of how diagrams and other graphics are produced.  This can be easy when a graphics language is employed to describe the graphical elements, rather than creating a bit-mapped image with some other interface.  So we have <tag>asymptote</tag>, <tag>latex-image</tag>, and <tag>sageplot</tag> for elements holding code to produce diagrams or images<idx>image</idx>.</p>\n\n        <p>The upside to this is that small edits to the code can easily accomplish minor changes or corrections necessary for the images.  The <latex /> macros provided by an author can be used in the text <em>and</em> in a diagram, leading to greater consistency between the two.  Finally, starting from source, we can do the best possible job of producing image formats that are compatible with the document output formats and which scale smoothly in PDFs and in web browsers.</p>\n\n        <p>\n            The downside is that processing these images requires various <q>helper</q> programs, such as <c>pdflatex</c> and <c>sage</c>.  This requires installing the helper program and perhaps setting the path to it on your system.  This is done inside the <c>project.ptx</c> manifest as children as the <tag>executables</tag> element.\n        </p>\n\n        <p>\n            Whenever you need to process images described in your source, run <c>pretext generate</c>.  This will build the correct image output file for your specified target (use <c>-t [target]</c>). If you would like to build additional image formats, you can add <c>--all-formats</c> to the command.\n        </p>\n\n\n    </section>\n\n    <section xml:id=\"processing-author-tools\">\n        <title>Author Tools</title>\n        <idx>author tools</idx>\n\n        <p>While your writing project is getting underway, you may want to go in several directions at once.  We have two devices, and three reports, which can help you manage this.</p>\n\n        <p>You may want to make a forward-reference to some future, not-yet-written material.  So you can go<cd>\n            <cline>&lt;xref provisional=\"a reminder of future material\"/&gt;</cline>\n        </cd>in your source.  In your output, you will get a temporary place-holder of sorts.</p>\n\n        <p>Comments in the source code of a computer program, labeled <c>TODO</c>, is a common device to help a programmer remember tasks that need to be completed.  You can use a similar device in your <pretext/> source.  Use an <init>XML</init> comment, delimited by <c>&lt;!--</c> and <c>--&gt;</c>, and make the first four non-blank characters spell <c>todo</c>, using any combination of lower- and upper-case you like.  Your Author's Report (next) will look even better if you follow that with a colon and a space, but this is not required.  So, for example, go<cd>\n             <cline>&lt;!-- ToDo: include a section on salamanders and their life-cycle --&gt;</cline>\n        </cd>  As an XML comment, you can place this anywhere.  Contents need to be plain characters, no XML will be active here.  Remember to escape the two XML characters, and also be aware that <c>--</c> is banned in comments outside of the delimiters.</p>\n\n        <p>Use the <c>author.tools</c><idx><c>author.tools</c></idx> parameter set equal to <c>yes</c> and your <latex/> and <init>HTML</init> output will be annotated.  (See <xref ref=\"publisher-string-parameters\"/> for more on parameters.)  Provisional cross-references and todo-comments will be visible and highlighted, and in particular, the <latex/> output will display an abundance of extra information (maybe too much).  The <latex />-specific publication file entry for draft mode will activate the <latex/> draft option (see <xref ref=\"latex-draft-mode-options\"/>).  The intent here is to make a rough draft, for an author or collaborator only, reporting as much as possible that is incomplete, pending, or hidden, in the usual output.</p>\n\n        <p>\n            For users of <c>xsltproc</c>, the <c>authors-report.xsl</c> stylesheet, found in the <c>xsl/utilities</c> directory, will report all of the provisional cross-references and all of the properly prefixed todo-comments.  See <xref ref=\"xsltproc-author-tools\"/>.\n        </p>\n    </section>\n\n    <section xml:id=\"processing-updating-source\">\n        <title>Keeping Your Source Up-to-Date</title>\n\n        <p>Once in a while it becomes necessary to adjust how the <pretext /> vocabulary is arranged, which involves adding or removing elements or attributes, or changing their behavior.  When elements or attributes are removed, or their relationships with other elements change, we say that certain items or behaviors are <term>deprecated</term><idx>deprecated</idx>.  Fortunately, we can often automate the changes.</p>\n\n        <p>When there is a deprecation, a warning is added so that any conversion will report the presence of the old use in the console.  Sometimes we can preserve the old behavior, so there is no rush to make changes to your source.  Sometimes a change needs to be more urgent.  And frequently old behaviors do not get updates or bug-fixes.  Our warnings provide advice and information about what you need to do.  There are also announcements on public discussion groups, clearly marked as deprecations.  Also, the schema will change as part of any deprecation, so the old elements or old use will be reported.</p>\n\n        <p>\n            For some suggestions about how to automate the process of adjusting your source, see <xref ref=\"xsltproc-updating-source\"/>.\n        </p>\n\n    </section>\n\n    <section xml:id=\"processing-testing-html\">\n        <title>Testing <init>HTML</init> Output Locally</title>\n\n        <p>Certain complicated parts of <init>HTML</init> output will not always function when you look at <pretext /> output by just opening files in your web browser.  These include knowls, Sage cells, and YouTube videos.  This is a consequence of security policies and so will vary from browser to browser.  A solution is to run a web server on your own machine, which is much easier than it sounds.</p>\n\n        <p>\n            In fact, this is exactly what the <pretext />-CLI does when you type the following command.\n        </p>\n\n        <console>\n            <input>pretext view web</input>\n        </console>\n\n        <p>\n            You can replace <q>web</q> with any target name, although it is really <init>HTML</init> builds that benefit from this feature.  The CLI uses python to spin up a local web server so you can see a copy of your output by going to the <init>URL</init> the CLI gives as output (usually <url href=\"http://localhost:8128\" visual=\"http://localhost:8128\"/>, although if you are working in a GitHub codespace, this will be different).\n        </p>\n\n        <p>\n            There are two useful options that can be used with <c>pretext view</c> to speed up authoring.  First, the <c>-b</c> flag will build your source before starting the server (i.e., runs <c>pretext build</c> in the background).  Similarly, the <c>-g</c> flag will generate assets prior to viewing.\n        </p>\n\n        <p>\n            It is also possible to specify whether your server is public or private (on your local network) with the <c>-a</c> option, and to specify a port other than 8128 with the <c>-p</c> option.  (Run <c>pretext view --help</c> for more.)\n        </p>\n\n        <p>Another option, in the case where you know where your output lives (such as when you use the <c>pretext/pretext</c> script) is to use Python itself to start a simple web server.  Ideally, first set your working directory to the location of your <init>HTML</init> output.  Then in a console, at a command-line:</p>\n\n        <console>\n            <input prompt=\"$ \">python3 -m http.server</input>\n            <output>Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...</output>\n        </console>\n\n        <p>Which tells you to open your browser using the address <c>http://0.0.0.0:8000/</c>.  <c>Ctrl-C</c> in the terminal will kill the server when you are done.  See the <url href=\"https://docs.python.org/3/library/http.server.html\">Python documentation</url> for more options.</p>\n    </section>\n\n    <section xml:id=\"processing-testing-html-globally\">\n        <title>Testing <init>HTML</init> Output Globally</title>\n\n        <p>Just like testing files locally can sometimes be misleading, testing on your own server can sometimes be misleading.  For example, on some university campuses, frequently accessed content (your textbook!) can be cached.  So when you update your files, it might not look like anything has changed.  An easy, free, quick solution is to place your <init>HTML</init> temporarily at <url href=\"https://app.netlify.com/drop\" visual=\"app.netlify.com/drop\">Netlify Drop</url> as a double-check on the source of any problems.</p>\n\n        <p>This can also be a great solution if you do not have a server setup and want help from the <pretext/> community with your <init>HTML</init> output.  (See <xref ref=\"github-issues\"/>.)</p>\n    </section>\n\n    <section xml:id=\"processing-doctest-sage\">\n        <title>Doctesting Sage Code</title>\n\n        <p>Adding computer code to your textbook is a tricky proposition.  You can propose that it is merely an illustration, and not meant to have all the necessary details, or you can make it exact, correct and executable, and then risk inevitable changes to render your code obsolete.  At least you have the option of editing and reposting online versions quickly and easily.</p>\n\n        <p>One of our main motivations for this project was mixing in code from the powerful, open source, mathematical software project, Sage (<xref ref=\"overview-sage\" />).  When you add example Sage code to illustrate mathematical ideas, you are then encouraged to also include expected output in the <tag>output</tag> element.  Here comes one of the powerful advantages of XML source and XSL processing.</p>\n\n        <p>\n            This process currently requires <c>xsltproc</c>, and is described in <xref ref=\"xsltproc-doctest-sage\"/>.\n        </p>\n\n        <p>The <c>pretext/xsl/pretext-sage-doctest.xsl</c> stylesheet, used in the usual way, will create one, or several file(s), in <em>exactly</em> the format Sage expects for automated testing.  So all your words are gone, and all your Sage input and output is packaged so Sage can run all the <tag>input</tag> and compare the results to the expected <tag>output</tag>.  See <xref ref=\"common-chunking-options\"/> for details on obtaining more than one file.</p>\n\n        <p>We have many years' experience testing hundreds of non-trivial Sage examples from textbooks, for linear algebra and abstract algebra.  Roughly every six months, we discover ten to twenty examples that fail.  Frequently the failures are trivial (usually output gets re-ordered), but some are significant changes in behavior that leads us to re-word surrounding guidance in the text, and in a few cases the failures have exposed bugs introduced into Sage.  It has been relatively easy to do this maintenance on a regular basis, and if it had not been done, the accumulated errors would be enough to greatly degrade confidence in the accuracy of the examples.</p>\n\n        <p>Exact details for this process can be found in <xref ref=\"topic-doctest-sage\" />.  Note that Sage is really just a huge Python library, so it might be possible to test pure Python code with this facility, but we have not tested this at all.  Similar support for other languages can be considered if requested for use in a serious project.</p>\n    </section>\n\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/author/schema.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"schema\">\n    <title><pretext /> Vocabulary Specification</title>\n\n    <introduction>\n        <p>This Guide, along with the sample article and sample book distributed with the <pretext /> source, provide a wealth of examples of how to author in <pretext />. However, at some point, you will undoubtedly encounter a situation where some of your text fails to appear in your output or the <pretext />-CLI produces an error. Those are good moments to start investigating the formal specifications of the <pretext /> vocabulary, as most likely you tried to use something in a way incompatible with those specifications.  This chapter will help you understand, and work with, the formal specification of <pretext />.</p>\n    </introduction>\n\n    <section xml:id=\"schema-relaxng\">\n        <title><acro>RELAX-NG</acro> Schema</title>\n\n        <p>A <term>schema</term><idx>schema</idx> is a set of patterns which describe how the elements of a language may be combined.  The <pretext /> vocabulary is described by a <acro>RELAX-NG</acro> schema, which is included in the <pretext /> distribution.  (<acro>RELAX-NG</acro><idx><acro>RELAX-NG</acro></idx> stands for <q>REgular LAnguage for XML Next Generation</q> and is pronounced <q>relaxing</q>.)  In general terms, the schema tells you which elements are available, which attributes they may carry, and which other elements they may contain.  You can then infer where you can place an element.  The schema also indicates if an element is required or optional, if it may be repeated, or if it needs to appear in a prescribed order with other elements, and may limit attribute values.</p>\n\n        <p>Besides providing a concise formal description of the <pretext /> vocabulary, your <init>XML</init> source and the <acro>RELAX-NG</acro> schema can be provided to tools which will automatically <term>validate</term> your source against the formal definition.  The best validators<idx>validator</idx> will provide accurate and helpful messages about errors in your source.  Further, some editing tools will use a schema to provide context-sensitive assistance on available elements and attributes as you write, sparing you typographical errors, misplaced elements, and the need to frequently context-switch in order to consult reference material.</p>\n\n        <p>The schema does not tell you anything about how an element or attribute will behave.  But hopefully there is not much ambiguity about the behavior of the content of a <tag>title</tag> element nested within a <tag>chapter</tag> element.  You would not be surprised to see that content duplicated in the Table of Contents of a book.  The purpose of this guide, and other documentation, is to help you understand what to expect.  It is better to think of the schema as a contract between you and the developers of conversion tools.  If your source conforms to the schema, then a conversion tool will produce reasonable output that conveys the structure and meaning of your writing.  Twenty years from now, when <init>GEFF</init> is the dominant document format, a conversion of your source will preserve your meaning, while also taking advantage of the amazing features of <init>GEFF</init>.  (<init>GEFF</init> stands for <q>Great Electronic Format of the Future</q>.)</p>\n\n        <p>In summary, the <acro>RELAX-NG</acro> schema<ul>\n            <li>is the formal specification of the <pretext /> vocabulary,</li>\n            <li>is a key input to validation,</li>\n            <li>can be incredibly helpful in the editing process, and</li>\n            <li>provides guidance to implementors of conversions.</li>\n        </ul>As such, we are very deliberate about changes, and hope over time to make changes only very rarely.</p>\n    </section>\n\n    <section xml:id=\"validation-plus\">\n        <title>Validation Plus</title>\n        <idx><h>validation</h><h>additional</h></idx>\n\n        <p>The <acro>RELAX-NG</acro> schema is very good at specifying <q>parent-child</q> relationships, in other words, which elements can nest directly under/within other elements.  But we have situations where the possible elements depend on grandparents, great-grandparents, or older ancestors.  An example is the <tag>var</tag> element, which is only useful if it is contained <em>somewhere</em> within a <tag>webwork</tag> element.  You can describe these situations with <acro>RELAX-NG</acro>, but it becomes cumbersome and redundant.  So our strategy is to allow some prohibited situations in the <acro>RELAX-NG</acro> schema, and use an additional stylesheet to identify the prohibited situations.  Continuing our <webwork/> example, the <acro>RELAX-NG</acro> schema makes it appear that <tag>var</tag> can be used many places, but the <q>validation-plus</q> stylesheet provides a helpful message indicating you have used it outside the context of a <webwork/> problem.</p>\n\n        <p>You have put a lot of time and effort into your source, and we want to help you make the best possible output.  A little more effort from you will allow us to make the fine distinctions that produce really high-quality output.  So this stylesheet is our best attempt to help you make the very best possible source.  It is full of (automated) advice and warnings.</p>\n\n        <p>To use this stylesheet, simply apply it at the command-line with <c>xsltproc</c> like any other stylesheet.<cd>\n            <cline>xsltproc -xinclude -o report.txt</cline>\n            <cline>    schema/pretext-validation-plus.xsl aota/animals.xml</cline>\n        </cd>The output will be a text file that indicates the suspect element by its location in the document tree.</p>\n\n        <p>You may get lots of output on first use, especially if your source was born <q>somewhere else,</q> not meant for use by <pretext/>.  We could make improvements in managing all this output, but for now we have one suggestion.  Sorting on the actual messages realyed, rather than a hodgepodge of messages in document order, can help you identify consistent situations that you might be able to fix in bulk.  First, apply the stylesheet again, but now use the stringparam <c>single.line.output</c> set to the value <c>yes</c> (<xref ref=\"publisher-string-parameters\"/>).  As you suspect, this will put all the output on one line, and the message text will be in the third <q>field</q>, which can be used by the command-line utility <c>sort</c>,<cd>\n            <cline>cat report.txt | sort -k 3 > report-sorted.txt</cline>\n        </cd></p>\n\n        <p>We once used Schematron for this purpose.  Its author, Rick Jelliffe, says <q>Schematron is a feather duster to reach the corners that other schema languages cannot reach.</q>  Our additional stylesheet is similar.</p>\n\n        <p>Why do we have two tools for validation?  We have explained the necessity of an <em>extra</em> stylesheet.  Why not describe the entire grammar in this stylesheet?  The reason is that RELAX-NG is a recognized standard, and so can be converted to other formats, and may also be utilized by XML editors or integrated development environments (<init>IDE</init>) to provide features like code completion.  Besides, it would be very tedious to provide all the code for checking everything that is possible and everything that is not.</p>\n    </section>\n\n    <section xml:id=\"schema-products\">\n        <title>Versions of the Schema</title>\n        <idx>literate programming</idx>\n\n\n        <p>The schema is born within a <pretext/> document, <c>schema/pretext.xml</c>, where surrounding text provides documentation and guidance on implementation.  The literate programming support in <pretext/> (start at <xref ref=\"overview-literate-programming\"/>) is used to produce a file, <c>schema/pretext.rnc</c>, which is a <acro>RELAX-NG</acro> specification in compact syntax.  <init>HTML</init> and <init>PDF</init> versions are available on the <pretext/> website as documentation.  We provide some guidance below on reading the compact syntax.</p>\n\n        <p>The compact syntax is a faithful representation of the more verbose <init>XML</init> syntax.  And vice-versa, so it is possible to translate back-and-forth between the two syntaxes.  In practice, we convert the compact version to the <init>XML</init> version, producing a file <c>schema/pretext.rng</c>.  Some tools require this latter (100% equivalent) version.  We perform this conversion with <c>trang</c><idx><c>trang</c></idx>, an open source program written by James Clark, one of the authors of <acro>RELAX-NG</acro>.  (<c>trang</c> stands for <q>TRAnslator for relax NG</q>.)  The compact syntax is often indicated as <init>RNC</init> and the <init>XML</init> syntax is often indicated as <init>RNG</init>.</p>\n        <!-- acronym suggested at bottom of: http://www.thaiopensource.com/relaxng/convert-to-xsd-talk.html -->\n\n        <p><init>XSD</init><idx>XSD</idx> (<init>XML</init> Schema Definition), from the World Wide Web Consortium (<init>W3C</init>), is an alternative to the <acro>RELAX-NG</acro> syntax.  It cannot express as many situations as the <acro>RELAX-NG</acro> syntax, but we have created the <pretext /> schema in a way that <c>trang</c> can convert to an <init>XSD</init> specification without introducing any more-permissive <q>approximations.</q>  But the <init>XSD</init> version seems to have a few small inaccuracies, and in particular should not be used for validation.  That said, <c>schema/pretext.xsd</c> may be useful for tools (<eg /> editors) that require it.</p>\n\n        <p>The files <c>pretext.xml</c>, <c>pretext.rnc</c>, <c>pretext.rng</c>, and <c>pretext.xsd</c> are all provided in the <c>schema</c> directory under revision control, and are updated by the <c>schema/build.sh</c> script when changes are made to <c>pretext.xml</c>.  So as an author, you do not need to install or run <c>trang</c> and should just link to the (continually updated) copies in your <c>pretext</c> directory.</p>\n\n        <p>We once provided a <term>document type definition</term><idx>document type definition</idx> (<init>DTD</init><idx><h>DTD</h><see>document type definition</see></idx>) as a description of the <pretext /> vocabulary.  <url href=\"http://rellek.net/home/\" visual=\"rellek.net/home/\">Mitch Keller</url> wrote an excellent initial version of this chapter to help others understand similar principles in the context of the <init>DTD</init>.  However, the <init>DTD</init> was not sufficiently flexible to handle elements that behave differently in different locations, such as an <tag>introduction</tag> to a <tag>chapter</tag> versus an <tag>introduction</tag> to an <tag>exercisegroup</tag>.  As further evidence, <c>trang</c> will knowingly refuse to convert the <pretext /> schema to a <init>DTD</init> since the <init>DTD</init> syntax is not sufficiently expressive to describe <pretext />.</p>\n\n        <p>If you are interested in conversions, more tools can be found at <url href=\"http://relaxng.org/\" visual=\"relaxng.org\"/> and we have information on installation in <xref ref=\"schema-install\" />.  We would be pleased to learn more about authors' experiences with other converters.</p>\n    </section>\n\n    <section xml:id=\"schema-reading-relaxng\">\n        <title>Reading <acro>RELAX-NG</acro> Compact Syntax</title>\n\n        <p>The compact syntax might remind you of Java or C++ syntax.  We do not provide a tutorial here, but do provide some hints on the various delimiters and special symbols, which may make it fairly easy to see your way through to the meaning.  The fundamental object of the schema is a <term>pattern</term><idx>pattern</idx>, and <term>named patterns</term><idx>named pattern</idx><idx><h>pattern</h><h>named pattern</h></idx> can be reused in order to reuse common patterns<idx>common pattern</idx><idx><h>pattern</h><h>common pattern</h></idx> and modularize the description.  One approach to validation is to remove portions of your source that match required patterns until only optional material remains.  Notice that if you were to chase your way through substituting the named patterns with their employment, you would have a single (large) pattern which every possible <pretext /> document would match, and by definition an <init>XML</init> document that does not match is not <pretext />.  (OK, that is a slight exaggeration, see <xref ref=\"validation-plus\" />.)</p>\n\n        <table>\n            <title><acro>RELAX-NG</acro> Compact Syntax Summary</title>\n\n            <tabular>\n                <!--  -->\n                <row><cell>element foo { }</cell>\n                <cell>Define <tag>foo</tag> and children</cell></row>\n                <!--  -->\n                <row><cell>attribute bar { }</cell>\n                <cell>Define <attr>bar</attr> and values</cell></row>\n                <!--  -->\n                <row><cell>text</cell>\n                <cell>Sequence of characters (any length)</cell></row>\n                <!--  -->\n                <row><cell>mixed { }</cell>\n                <cell>Mixed-content, characters interleaved in pattern</cell></row>\n                <!--  -->\n                <row><cell></cell>\n                <cell>Exactly one (required)</cell></row>\n                <!--  -->\n                <row><cell>+</cell>\n                <cell>One or more (required)</cell></row>\n                <!--  -->\n                <row><cell>*</cell>\n                <cell>Zero or more (optional)</cell></row>\n                <!--  -->\n                <row><cell>?</cell>\n                <cell>Zero or one (optional)</cell></row>\n                <!--  -->\n                <row><cell>,</cell>\n                <cell>Sequence, in prescribed order</cell></row>\n                <!--  -->\n                <row><cell>|</cell>\n                <cell>Choice</cell></row>\n                <!--  -->\n                <row><cell>&amp;</cell>\n                <cell>Sequence, any order</cell></row>\n                <!--  -->\n                <row><cell>(  )</cell>\n                <cell>Grouping</cell></row>\n                <!--  -->\n                <row><cell>=</cell>\n                <cell>Define named pattern</cell></row>\n                <!--  -->\n                <row><cell>|=</cell>\n                <cell>Accumulate named pattern as a choice</cell></row>\n            </tabular>\n        </table>\n    </section>\n\n    <section xml:id=\"schema-validation\">\n        <title>Validation</title>\n\n        <p>We cannot stress enough the importance of validating<idx>valid schema</idx> your source early and frequently.  Error conditions and messages can be built into processing (we have some anyway), but they are much better accommodated by tools built for just this purpose.  If your processing with the <pretext />-CLI suddenly fails, or if chunks of your content fail to materialize, it is highly likely that a validation check will tell you where the problem lies.  If you integrate regular checks into your workflow, then sudden problems can be traced to recent changes.  (Perhaps paired with using <c>git bisect</c>, in the extreme.  You are using revision control, aren't you?)</p>\n\n        <p>We use <c>jing</c><idx><c>jing</c></idx> for the first step, <acro>RELAX-NG</acro> validation.  This is an open source companion to the <c>trang</c> converter described above.  As a Java program, it should be cross-platform.  It is also packaged for Debian and Ubuntu Linux, and is available in a GitHub codespace.  It provides messages keyed to the line number and character number of your source, and the messages are very clear and informative.  See notes on installation in <xref ref=\"schema-install\"/>.  We would be pleased to learn more about authors' experiences with other validators.</p>\n\n        <p>You might get a lot of error messages the first time you use <c>jing</c>. If so, it might be that many of them are the same situation.  If you pipe the output of <c>jing</c> through <c>sort -k 2</c> then the output will group similar messages together.</p>\n\n        <p>Previously, we used <c>xsltproc</c> as the <init>XSLT</init> processor. We no longer recommend this option for authors, who should be using the <pretext />-CLI. However, if you still use <c>xsltproc</c>, then you likely automatically also have the <c>xmllint</c><idx><c>xmllint</c></idx> program, which will perform validation with <acro>RELAX-NG</acro> schema.  Our experience is that it bails out at the first warning, or at least does not process the remainder of the current subtree, and that the error messages are often very misleading.  We will not support questions about validation based on output from <c>xmllint</c>.</p>\n\n        <p>The second step is easier, since it is an <init>XSL</init> transform.  In other words, it is just another stylesheet, which you run against your source, with a processor like <c>xsltproc</c>.  This stylesheet encoding additional restrictions is unique to <pretext/> and will report exceptions that are too difficult to express with <acro>RELAX-NG</acro>.  So validation is two complementary steps.  See <xref ref=\"validation-plus\" /> for the exact syntax for using this stylesheet.</p>\n    </section>\n\n    <section xml:id=\"schema-browser\">\n        <title>Schema Browser</title>\n\n        <p>Through the efforts of <url href=\"https://github.com/siefkenj/pretext-book\" visual=\"github.com/siefkenj/pretext-book\">Jason Siefkin</url>, and other contributors, we have a <term>schema browser</term> that lets you easily and naturally explore the schema through web pages, many with example uses.  Look for a link in the <url href=\"https://pretextbook.org/documentation.html\" visual=\"https://pretextbook.org/documentation.html\">Documentation section</url> of the <pretext/> website.</p>\n\n        <p>Do not be intimidated by the list of roughly 300 elements available in the <q>All Tags</q> panel.  Many are configuration options, many are special-purpose, and many you will never use.  (Someday we will do lexical analysis on a substantial range of <pretext/> texts to see just which elements do get used most frequently).  We hope to document elements which have complicated restrictions that cannot be expressed with the parent-child relationships of the schema as part of this tool.</p>\n\n        <p>An excellent way to contribute to <pretext/> is to help flesh out aspects of the schema browser with more, and better, information for all authors.</p>\n    </section>\n\n    <section xml:id=\"editors-supporting-schema\">\n        <title>Editor Support for Schema</title>\n\n        <p>We collect summary information about editors that make use of schema.  See <xref ref=\"editors\" /> for more specific information, links, <etc />.</p>\n\n        <table>\n            <title>Schema Support in Editors</title>\n\n            <tabular>\n                <!--  -->\n                <row bottom=\"minor\">\n                    <cell>Editor</cell>\n                    <cell>Formats</cell>\n                    <cell>Notes</cell>\n                </row>\n                <!--  -->\n                <row>\n                    <cell>Visual Studio Code</cell>\n                    <cell>RNG</cell>\n                    <cell>Validation and completion, open source</cell>\n                </row>\n                <row>\n                    <cell>emacs</cell>\n                    <cell>RNC</cell>\n                    <cell>Schema-sensitive editing, open source</cell>\n                </row>\n                <!--  -->\n                <row>\n                    <cell>XML Copy Editor</cell>\n                    <cell>RNG, XSD</cell>\n                    <cell>Validation, <q>tag completion</q>, open source</cell>\n                </row>\n                <!--  -->\n                <row>\n                    <cell>oXygen</cell>\n                    <cell>RNC, RNG</cell>\n                    <cell>Validation and completion, commercial</cell>\n                </row>\n                <!--  -->\n            </tabular>\n        </table>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/author/topics.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"topics\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Topics</title>\n\n    <introduction>\n        <p>This long chapter provides the main documentation for a variety of the features of <pretext />.  Some sections are just stubs and need to be written.  Requests for sections to prioritize are welcome, though some sections are waiting for features to stabilize.</p>\n    </introduction>\n\n    <section xml:id=\"topic-paragraphs\">\n        <title>Paragraphs</title>\n\n        <introduction>\n            <p>Much of your writing will happen in paragraphs, delimited by the simple tag, <tag>p</tag>.  You are reading one right now.  They are a basic building block of divisions, and also a basic building block of other structures.  For example, an ordered list, <tag>ol</tag>, contains a sequence of list items, <tag>li</tag>, and a typical list item might be a sequence of paragraphs.  (Do not confuse this element with the anomalous <tag>paragraphs</tag> subdivision, <xref ref=\"topic-divisions\" />).</p>\n\n            <p>Paragraphs are a choke-point of sorts.  Many tags can <em>only</em> be used within paragraphs, and many others <em>cannot</em> be used within paragraphs.  Notice too, that we do a certain amount of manipulation of whitespace in a paragraph, in ways that you may not even notice.</p>\n\n            <p>The following subsections together contain allowed, or encouraged, markup within a paragraph.  Many of these may be used in captions and titles, but some of the more complicated constructions (which appear later here) cannot be used in captions or titles.</p>\n\n            <!-- Rutter, \"Web Typography\", \"em dash\", \"en dash\" (no hyphen) -->\n            <p>One more comment: typewriters, computer keyboards, and the <acro>ASCII</acro> character set have together conspired to limit the full range of characters that typographers and printers have used historically.  A case in point is the hyphen, which is a single key on a keyboard.  However, there are at least three common dashes of differing lengths (hyphen, en dash, and em dash), and in the context of mathematics or a computer program, the hyphen might be the binary operation of subtraction or the unary operation of negation.  Another example is the <q>upright</q>, or <q>dumb</q>, quote mark that is a single key on a keyboard, while careful typography will employ <q>smart</q>, or <q>curly</q>, quote marks that have left and right variants.  (Sometimes called <q>66</q> and <q>99</q> based on their shape.)  <pretext /> will help you navigate this complexity, but you will want to use keyboard characters or markup appropriately.  So if you care about communicating clearly, and making your writing easy for a reader to use, absorb the details that follow and the philosophy they implement.</p>\n\n            <p>We will say it again.  <pretext /> is a markup language, and our various output formats (<latex />, <init>HTML</init>, <init>EPUB</init>, Jupyter notebooks) in turn employ markup languages.  These use different escape characters and give different characters special meanings.  Our job is to insulate you from this variety, so you can concentrate on authoring your <em>ideas</em>.</p>\n\n            <p>We begin with some simple <q>grouping</q> elements which contain several excellent examples of the importance and utility of careful markup.  There is a plethora of empty tags for individual characters, and these are very important (see <xref ref=\"topic-character-elements\" />).  We defer them to the end of this section, since they are not as instructive, but do not think this means they are an afterthought.  They can be extremely critical for successful conversions.  Also do not miss <xref ref=\"practice-careful-markup\" /> in the conclusion of this section.</p>\n        </introduction>\n\n        <subsection>\n            <title>Simple Markup in Paragraphs</title>\n\n            <p>Beyond empty tags that translate to various characters, there are relatively simple tags that can call attention to various <em>portions</em> of a sentence, or generate more complicated constructions than described above.</p>\n\n            <p>Most, if not all, of the markup in this subsection may also be used within titles and captions, though they might lose some of their features when used in a title, especially when the title is duplicated in other contexts, such as a Table of Contents.</p>\n\n            <!-- fragment names, and their elements, from schema source\n            delimiter-group: q, sq, braces, angles, brackets, dblbrackets\n            highlight-group: em, term, alert, pubtitle, articletitle, foreign\n            abbreviation-group: abbr, acro, init\n            editing-group: delete, insert, stale\n            xml-group: tag, tage, attr\n            scientific-name-group: taxon\n            footnotes: fn\n            mathematics: m\n            verbatim: c, email\n            -->\n\n            <!-- Groupings via symbols or characters -->\n\n            <paragraphs>\n                <title><tag>q</tag>, quotes, <q>group</q></title>\n                <p>This is the first of several grouping tags, using characters with left and right variants, and some of the most common markup in your writing.  Presentation uses double quote marks that are <term>smart quotes</term>, meaning that they look different in their opening and closing variants.  (See <tag>blockquote</tag> for extensive runs of quoted text that can stand alone, and which can carry an attribution.)</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>sq</tag>, single quotes, <sq>group</sq></title>\n                <p>Perhaps less-often used than <tag>q</tag>, so a couple more characters to type.  Presentation is paired single-quotes, opening and closing.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>angles</tag>, angle brackets, <angles>group</angles></title>\n                <p>Left and right angle brackets to enclose a phrase.  This is not for creating a set of generators in mathematics, use the appropriate mathematics tag and syntax for that.  Note also that the characters used here are definitely distinct from the inequality symbols, &lt; and &gt;.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>dblbrackets</tag>, double square brackets, <dblbrackets>group</dblbrackets></title>\n                <p>Double left and right square brackets to enclose a phrase.  This is not for grouping expressions in mathematics, use the appropriate mathematics tag and syntax for that.  These are used in the analysis of texts to note various restorations or deletions.  Inquire if you feel there should be more semantic markup for this purpose.</p>\n            </paragraphs>\n\n            <!-- Font-face-changing markup -->\n\n            <paragraphs>\n                <title><tag>em</tag>, emphasis, <em>important</em></title>\n                <p>Use this element to surround characters in a phrase that is to be emphasized.  This will typically be rendered in italics, though this choice is left to the implementation of a particular conversion.  See also, <tag>alert</tag>.</p>\n\n                <p>If you are new to using a markup language, this is a place to stop and think.  As a <pretext /> author you are never able to say, <q>I want this text to appear in italics.</q>  Rather, you specify that certain text has a certain purpose or meaning.  Emphasis is a way of <em>calling attention</em> to a portion of a sentence or paragraph.  A font change (to italic) is a common and effective device.  But a particular format might have a better, or different, way to achieve this.  Perhaps in an electronic format, the letters are animated and dance up and down.  (Just kidding.  But you may be reminded of frequent blinking text in the early days of web design, supported by a non-standard <tag>blink</tag> element.)  Seriously, now would be a good time to review <xref ref=\"philosophy\" />.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>alert</tag>, alert, <alert>critical</alert></title>\n                <p>Use this to heavily emphasize something to a greater degree than just emphasis.  Maybe think of it as <alert>SHOUTING</alert>.  Bold italic font, or a bright color, or both, would be normal choices for presentation.  Overuse of this tag will dilute its effectiveness.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>term</tag>, terminology, <term>larvae</term></title>\n                <p>Use this to identify a word or phrase that is being defined, in contrast to actually using a structured <tag>definition</tag>.  Typical presentation is a bold font.  Caution: the use of this tag is to communicate a defined term and converters may make use of this interpretation, given the importance of definitions in scholarly work.  It would be considered <term>tag abuse</term> to use this tag to simply bold a word or phrase for some other reason, perhaps as an alternative to <tag>em</tag> or <tag>alert</tag>.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>foreign</tag>, foreign words, idioms, phrases, <foreign>Hola</foreign></title>\n                <p>This tag is used to identify words or phrases from a language other than the main one used for the overall document.  It is best practice to use a <attr>xml:lang</attr> attribute to identify the language, since this will assist screen readers and hyphenation algorithms.  We may also recognize the need for a different script (font).  Usual presentation is italics for languages using a Latin script.  This should not be used for entire paragraphs as a way of assisting with a translation of an entire document.</p>\n\n                <p>Note that when we use italics for emphasis <em>and</em> to point out foreign words or phrases, there is a loss of information in our output.  In other words, we can no longer reliably (in an automated way) convert our output back to equivalent PreTeXt source from its visual representations.  <foreign xml:lang=\"fr-FR\">C'est la vie</foreign>.  See <xref ref=\"philosophy\" /> again.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>pubtitle</tag>, <tag>articletitle</tag>, titles of books and articles</title>\n                <p>These provide the ability to typographically distinguish the title of another work, and are not a replacement for careful bibliographies and citations.  Use <tag>pubtitle</tag> for longer, complete works, such as books, plays, or entire websites.  Use <tag>articletitle</tag> for shorter, component works, such as a chapter of a book, a research article, or a single webpage.</p>\n\n                <p>Presentation for a longer work will be italics or an oblique (slanted) font, and for a shorter work, the title will simply be quoted.</p>\n            </paragraphs>\n\n            <!-- Font-size changing group -->\n\n            <paragraphs>\n                <title><tag>abbr</tag>, <tag>init</tag>, <tag>acro</tag>, abbreviation, initialism, acronym, <abbr>Mr.</abbr>, <init>XML</init>, <acro>SCUBA</acro></title>\n                <p>An abbreviation is a condensed or shortened version of some word or phrase, such as <abbr>Mr.</abbr> for <q>Mister.</q>  Converters should take care with periods (full stop) inside an <tag>abbr</tag> as distinguished from the end of a sentence (which may not always be clear given the absence of a tag delimiting sentences).  An initialism is an abbreviation read as a sequence of letters, often the first letter of words in a phrase, such as <init>HTML</init> for <q>HyperText Markup Language.</q>  An acronym is much like an initialism, but the letters are read as a pronounceable word (which sometimes actually enters the language as a word, such as <q>radar</q> which began as RAdio Detection And Ranging).  An example is <acro>SCUBA</acro> which stands for <q>Self-Contained Underwater Breathing Apparatus.</q>  Initialisms and acronyms may be presented in a small-capitals font or as regular capitals reduced in size.</p>\n            </paragraphs>\n\n            <!-- Editing group -->\n\n            <paragraphs>\n                <title><tag>delete</tag>, <tag>insert</tag>, <tag>stale</tag>, editing assistance, <delete>gone</delete>, <insert>new</insert>, <stale>old</stale></title>\n                <p>These denote portions of a text that is being changed in some way, presumably as part of an editing process.  Conceivably, they could be managed by some other tool acting on your source.  Stale text is that which is slated for removal eventually, but is left in place so that it may be consulted.  There is no support presently for actually deleting or incorporating text, though that would be a reasonable feature request.</p>\n\n                <p>Red and green, for leaving and entering, are natural choices for presentation.  But in consideration of those readers who cannot always distinguish different colors, other devices, such as strikethrough or underlining, should also be employed.</p>\n            </paragraphs>\n\n            <!-- XML syntax group -->\n\n            <paragraphs>\n                <title><tag>tag</tag>, <tag>tage</tag>, <tag>attr</tag>, tag, empty tag, attribute, <tag>section</tag>, <tage>hash</tage>, <attr>width</attr></title>\n                <p>These are <pretext /> tags for when we write about <pretext /> and need to discuss tags, empty tags, and attributes.  Given how we design <pretext /> tags the content of these elements should only be the 26 lower-case letters and a dash/hyphen.  These should render in ways that make the three types of language elements obvious without much further discussion.  Just a bit self-serving, but not unjustified.</p>\n\n                <p>These are not meant for more elaborate constructions.  For example, an attribute-value pair should not be authored as\n                    <cd>&lt;attr&gt;data=\"/home/data\"&lt;/attr&gt;</cd>\n                and instead I would write\n                    <cd>set the &lt;attr&gt;data&lt;/attr&gt; attribute to the value &lt;c&gt;/home/data&lt;/c&gt;</cd>\n                Similarly, do not use the <tag>tag</tag> element for long XPath constructions like\n                    <cd>&lt;tag&gt;docinfo/prefigure-preamble/line&lt;/tag&gt;</cd>\n                The <tag>c</tag> or <tag>cd</tag> element will likely work better.</p>\n            </paragraphs>\n\n            <!-- Scientific names -->\n\n            <paragraphs>\n                <title><tag>taxon</tag>, scientific names, <taxon>Escherichia coli</taxon></title>\n                <p>This element may surround a full scientific name, resulting in presentation in italics.  There are subelements <tag>genus</tag> and <tag>species</tag> which may be used to delineate those components.</p>\n\n                <p>A <attr>ncbi</attr> attribute on <tag>taxon</tag> accepts an identifier from the <url href=\"https://www.ncbi.nlm.nih.gov/\" visual=\"www.ncbi.nlm.nih.gov\">National Center for Biotechnology Information</url>.  Feature requests for ways to make this more useful are welcome.</p>\n            </paragraphs>\n\n            <!-- Footnotes -->\n\n            <paragraphs>\n                <title><tag>fn</tag>, footnotes</title>\n                <idx>footnotes</idx>\n                <p>A footnote can be inserted in a paragraph and a mark will be left behind.  Where the content of the footnote goes depends on the capabilities of the output format.  Because a footnote allows you to begin a new piece of text <em>anywhere</em>, it can be difficult to handle technically.  For this reason it is banned from places like titles and its possible content is limited (for openers, no paragraphs).</p>\n\n                <p>A footnote is the farthest thing from structured writing that we can think of.  It can go anywhere.  Resist the temptation to use it, and your writing will improve.  We frequently entertain the thought of making footnotes impossible in <pretext />.  See the <tag>aside</tag> element for a possible alternative.</p>\n            </paragraphs>\n\n            <!-- Inline mathematics -->\n\n            <paragraphs>\n                <title><tag>m</tag>, mathematics, <m>x^2+y^2</m></title>\n                <p>Simple, inline expressions using mathematical notation may be used in paragraphs, and in titles and captions.  The syntax is <latex />.  See <xref ref=\"topic-mathematics\" /> for full details.</p>\n            </paragraphs>\n\n            <!-- Inline verbatim -->\n\n            <paragraphs>\n                <title><tag>c</tag>, code, verbatim text, literal text, <c>import</c></title>\n                <p>Short bursts of raw, or verbatim, text can be wrapped in the <tag>c</tag> element.  Strictly speaking, <q>code</q> is a misnomer, as the text may be anything you need to communicate exactly as one would type it at a keyboard or as input to a computer program.  Anything longer than a handful of characters, or needing accurate line breaks should consider the <tag>cd</tag>, <tag>pre</tag>, <tag>program</tag> or <tag>console</tag> tags.  If you like to have your source word-wrapped with hard line-breaks (newline characters), we will replace those for you with a space character.  This is the only modification made to the content of a <tag>c</tag> element.</p>\n\n                <p>Presentation is normally a monospaced sans serif font, perhaps of a slightly heavier weight, and designed for the job with features such as unambiguous zeros (versus the letter <sq>oh</sq>).  See <xref ref=\"topic-verbatim-literal\" /> for details.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>email</tag>, email address, <email>nobody@example.com</email></title>\n                <p>Very similar to the <tag>c</tag> tag, this may be used to get a monospace presentation of an email address, possibly as an active link in some formats.</p>\n            </paragraphs>\n\n        </subsection>\n\n        <subsection>\n            <title>Cross-References and Paragraphs</title>\n\n            <!-- fragment names, and their elements, from schema source\n            reference: url, xref, notation\n            index: idx\n            -->\n\n            <p>There are several devices for creating cross-references.  Generally, these are unwise (or banned) in titles, and if allowed may be inactive in certain portions of an electronic output format (such as when migrating to a Table of Contents).</p>\n\n            <paragraphs>\n                <title><tag>url</tag>, linking external resources</title>\n                <p>This is a cross-reference <em>to</em> some item separate and distinct for your document.</p>\n\n                <p>A Uniform Resource Locator (<init>URL</init>) is, loosely speaking, an Internet address for some item.  Capabilities for providing links to such items are provided and take into account usability in different output formats.  See <xref ref=\"topic-url\"/> for full details on how to use <tag>url</tag> for links to external resources.\n                </p>\n\n                <p>Note also that this tag is meant for <em>external</em> resources, so see the <tag>xref</tag> element (below) or <xref ref=\"topic-cross-referencing\" /> for ways to link internally (<ie /> within your document).</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>xref</tag>, cross-references</title>\n                <p>This is a cross-reference <em>to</em> some item contained within your document.</p>\n\n                <p>Extensive and intuitive capabilities for cross-referencing are a primary feature of <pretext />.  Typical use is an empty tag with the <attr>ref</attr> attribute specifying the value of an <attr>xml:id</attr> on the <term>target</term> of the cross-reference.  This should work easily without much more instruction, but familiarize yourself with the details in <xref ref=\"topic-cross-referencing\" /> to get the most out of some the available options. </p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>idx</tag>, index target</title>\n\n                <p>This indicates that the containing structure (theorem, example, etc.), or top-level paragraph, should be the <em>target</em> of an entry of the index (a special sort of cross-reference).  See <xref ref=\"overview-index-notation\"/> and <xref ref=\"topic-index\"/> for general details.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tag>notation</tag>, index target</title>\n\n                <p>This indicates that the containing definition, or top-level paragraph, should be the <em>target</em> of an entry of the list of notation (a special sort of cross-reference).  See <xref ref=\"overview-index-notation\"/> and <xref ref=\"topic-notation\"/> for general details.</p>\n            </paragraphs>\n        </subsection>\n\n        <subsection xml:id=\"topic-structure-in-paragraph\">\n            <title>Structured Markup in Paragraphs</title>\n\n            <!-- Schema, reference groups:      -->\n            <!-- List, MathDisplay, CodeDisplay -->\n\n            <p>There are three categories of items which typically are structured further, and which are almost entirely restricted to appearing in a paragraph.  Given their complexity, details are covered in other sections of this guide.</p>\n\n            <paragraphs>\n                <title>Lists</title>\n                <p>With only one major exception (and three minor ones), a list <em>must</em> appear within a paragraph.  See <xref ref=\"overview-lists\" /> for an introduction and <xref ref=\"topic-lists\" /> for precise details.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Display Mathematics</title>\n                <p>Displayed mathematics, which is a single equation or a sequence of (aligned) equations, can only be placed within a paragraph.  The relevant tag is <tag>md</tag>.  It can hold a single expression or be structured with <tag>mrow</tag> elements.  See <xref ref=\"overview-math\" /> for an introduction and <xref ref=\"topic-mathematics\" /> for precise details.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Display Verbatim</title>\n                <p>The <tag>cd</tag> tag, by analogy with the <tag>md</tag> tag for displayed mathematics, may be used to display one or more lines of verbatim text (such as a series of commands), possibly structured with the <tag>cline</tag> tag.  See <xref ref=\"overview-verbatim-literal\" /> for an introduction and <xref ref=\"topic-verbatim-literal\" /> for precise details.</p>\n\n                <p>This should not be confused with the <tag>pre</tag>, <tag>console</tag>, or <tag>program</tag> tags, which have slightly different uses, and all of which must be used <em>outside</em> of a paragraph.</p>\n            </paragraphs>\n        </subsection>\n\n        <subsection xml:id=\"topic-character-elements\">\n            <title>Characters in Paragraphs</title>\n\n            <!-- Unambiguous:  ~, !, @, #, $, %, ^, (, ), _, =, +, [, ], {, }, \\, |, :, ;, and , -->\n            <!-- Exceptional:  <, & -->\n\n            <!-- fragment names, and their elements, from schema source\n            dash-character:       nbsp, ndash, mdash\n            xml-character:        ampersand, less, greater\n            latex-character:      hash, dollar, percent, tilde, underscore,\n                                  circumflex, backslash, lbrace, rbrace\n            delimiter-character:  lsq, rsq, rq, lq\n            exotic-character:     ellipsis, asterisk, backtick, slash, midpoint,\n                                  swungdash, permille, pilcrow, section-mark,\n                                  copyright, registered, trademark\n            generator:            today, timeofday, tex, latex, pretext, webwork,\n                                  eg, ie, circa, etc\n            arithmetic-character: minus, solidus, times, obelus, plusminus\n                                  degree, prime, dblprime\n            siunit:               (deferred to its own section)\n            music-character:      (deferred to its own section)\n            -->\n\n            <introduction>\n                <p>Some keyboard characters are unambiguous, for example, the percent sign, %.  Other keyboard characters are poor replacements for several different characters.  Is a slash, /, being used to separate information/ideas, or is it a <term>solidus</term> being used to form a fraction such as 3<solidus/>4?  Other characters, such as per-mille, <permille/>, are not present on keyboards at all.  We organize this section according to these types of distinctions.</p>\n            </introduction>\n\n            <subsubsection>\n                <title>Unambiguous Keyboard Characters</title>\n\n                <p>The keyboard characters `, ~, !, @, #, $, %, ^, *, (, ), _, =, +, [, ], {, }, \\, |, :, ;, and , are entered as-is and are only rendered one way.  Easy.</p>\n\n                <p>Of course, the fifty-two Latin letters, and ten decimal digits, are also in this category.  If you have an international, or bilingual, or country-specific keyboard, then common accented versions of Latin letters (as used in Europe and the Western Hemisphere) may also be used directly from your keyboard.</p>\n            </subsubsection>\n\n            <subsubsection xml:id=\"topic-exceptional-characters\">\n                <title>Exceptional Keyboard Characters</title>\n                <idx>exceptional characters</idx>\n                <idx><h>characters</h><h>exceptional</h></idx>\n                <idx>CDATA</idx>\n\n                <p><init>XML</init> is a <term>markup language</term>, which in part means that some keyboard characters are co-opted to signal the start of markup.  For <init>XML</init> this character is the less-than symbol, &lt;.  It signals the start of a <term>tag</term>, and then an opening tag ends with a greater-than symbol, &gt;, while a closing tag has an extra / right after the &lt;.</p>\n\n                <p>This begs the question:  if a &lt; is used in our <init>XML</init> source to signal the start of a tag, then how did we get one to appear here in this sentence without mistakenly starting a tag?  Once a markup language gives some characters special meanings, then there needs to be an <term>escape character</term>.  For <init>XML</init> the escape character is the ampersand, &amp;.  So to author the &lt; and &gt; symbols, we type <term>escaped</term> versions: <c>&amp;lt;</c> and <c>&amp;gt;</c>.</p>\n\n                <p>I hear you now say, <q>But now we just took the &amp; out of the running and gave it a special meaning.  How do we get an ampersand?</q>  Easy, use the escaped version:  <c>&amp;amp;</c>.</p>\n\n                <p>So the short answer is: never, ever type the &lt; or &amp; keyboard characters in isolation.  The very beginning of the processing of <init>XML</init> (<ie/> <pretext/>) will fail fatally on these characters.  Instead, always use the sequences <c>&amp;lt;</c> and  <c>&amp;amp;</c> and then very early the <init>XML</init> processing will convert them to characters, <em>without</em> interpreting them as signals for aspects of the markup.</p>\n\n                <p>It does not seem necessary to author &gt; as <c>&amp;gt;</c>, though there is no real harm in doing so.  The two other characters with escaped versions are the single and double quotes, <c>&apos;</c> and <c>&quot;</c>, which have escaped version of <c>&amp;apos;</c> and <c>&amp;quot;</c> (respectively).  These are only necessary for attribute values, and we have been careful to design <pretext/> so that they are not necessary.</p>\n\n                <remark>\n                    <title>Excessive Escaped Characters</title>\n\n                    <p>If you know another markup language, such as <tex/>, <latex/>, Markdown, <init>JSON</init>, or <init>PGML</init>, think about how many characters have been given special meanings, and the subsequent necessity to use escaped versions.  And if you want to write about computer languages, realize that each such language also gives certain keyboard characters special meanings.</p>\n\n                    <p><init>XML</init> only has five exceptional characters, and in your daily use, <pretext/> really only requires you to be aware of two, the minimum necessary for a markup language.</p>\n                </remark>\n\n                <note>\n                    <title>A <init>CDATA</init> Section is Never Necessary</title>\n\n                    <p>We hate to mention it, but sooner or later, we need to have an uncomfortable discussion about the misunderstood <init>CDATA</init> section, and risk confusing the rest of this subsubsection.  And this is the place.  But you can come back later, if you wish.</p>\n\n                    <p>You will read other places about very special markup known as a <init>CDATA</init> section.  The name stands for <term>character data</term>, which means <q>all characters, no markup</q>.  Think of it as switching off the <init>XML</init> processing for a while, so in particular, <c>&amp;</c>, <c>&lt;</c>, <c>&gt;</c> no longer have any special meaning at all.  That <em>could</em> be nice, but realize that now there is no opportunity to have any markup present using <init>XML</init> syntax, since it is ineffective.</p>\n\n                    <p><em>A <init>CDATA</init> section is always a convenience and is never necessary.</em></p>\n\n                    <p>When would it be convenient?  Maybe you have some <latex/> inside an <tag>md</tag> with a large matrix that uses lots of ampersands to separate the entries.  Inside a <init>CDATA</init> you can author it with bare &amp; rather than a plethora of <c>&amp;amp;</c> or <c>\\amp</c>.  But you lose the ability to include an <tag>xref</tag> in that <init>CDATA</init>, so you need to be surgical about its scope.  Perhaps a Tikz diagram in a <tag>latex-image</tag> has a multitude of <c>&lt;-&gt;</c> or a chunk of Sage code in an <tag>input</tag> has a lot of finitely-generated algebraic structures authored as <c>R.&lt;x&gt; = ...</c> (which is not even legal Python syntax either!).  These places where there is little, or no, markup could be <em>convenient</em> places to use a <init>CDATA</init>.  Be sure to read the warning at <xref ref=\"deprecation-fixer-cdata\"/> in <xref ref=\"processing-updating-source\"/> before you go all-in.</p>\n                </note>\n            </subsubsection>\n\n            <subsubsection>\n                <title>Ambiguous Keyboard Characters</title>\n\n                <p>Some keyboard characters have a primary interpretation, and are imitations of other typographic characters.  Your output will be of higher quality if you understand these distinctions and employ the proper variant.</p>\n\n                <!-- / forward slash, solidus        -->\n                <!-- ' apostrophe, rsq               -->\n                <!-- ` backtick,  lsq                -->\n                <!-- . period, sentence/abbreviation -->\n                <!-- - hyphen, see ...........       -->\n                <!-- ~ tilde, swungdash              -->\n                <!-- \" do not use, lq, rq            -->\n\n                <table xml:id=\"table-ambiguous-characters\">\n                    <title>Ambiguous Keyboard Characters and Alternatives</title>\n                    <tabular>\n                        <row bottom=\"medium\">\n                            <cell>Keyboard</cell>\n                            <cell>Primary</cell>\n                            <cell>Notes</cell>\n                        </row>\n                        <row>\n                            <cell><c>/</c></cell>\n                            <cell>(forward) slash</cell>\n                            <cell><tage>solidus</tage> is a fraction bar, <solidus/></cell>\n                        </row>\n                        <row>\n                            <cell><c>'</c></cell>\n                            <cell>apostrophe</cell>\n                            <cell><tage>rsq</tage> is a right single quote, <rsq/></cell>\n                        </row>\n                        <row>\n                            <cell><c>`</c></cell>\n                            <cell>backtick</cell>\n                            <cell><tage>lsq</tage> is a right single quote, <lsq/></cell>\n                        </row>\n                        <row>\n                            <cell><c>.</c></cell>\n                            <cell>period</cell>\n                            <cell>abbreviations <em>and</em> end-of-sentence</cell>\n                        </row>\n                        <row>\n                            <cell><c>-</c></cell>\n                            <cell>hyphen</cell>\n                            <cell>See dashes, and arithmetic</cell>\n                        </row>\n                        <row>\n                            <cell><c>\"</c></cell>\n                            <cell>upright double quote</cell>\n                            <cell><tage>lq</tage> is <lq/>, <tage>rq</tage> is <rq/></cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <p>Note that the four quote marks (left/right, single/double) are meant for the actual characters.  Always use the grouping constructions described above (<ie/> <tag>q</tag> and <tag>sq</tag>) when grouping a phrase with quote marks.  Note, too, that there is never a good reason to use the keyboard quote character (<c>\"</c>) unless you are creating some sort of verbatim text, such as a program listing or describing literal keyboard input.</p>\n\n                <p>When creating print or <init>PDF</init> via <latex/> a period may get different trailing space depending on location and context, generally being its use in abbreviations or to conclude a sentence.  We do not yet have this dual-use under control.</p>\n            </subsubsection>\n\n            <subsubsection>\n                <title>Extraordinary Characters</title>\n\n                <p>Some characters or symbols are typically not available on a keyboard, so we provide empty elements.  Many of these may be entered directly into your source as Unicode characters, and they will do well in your <init>HTML</init> output.  However, these may fail entirely if you create print or <init>PDF</init> via <latex/> using the <c>pdflatex</c> engine.  Furthermore, even for <init>HTML</init> output there may be several Unicode characters that are very similar.</p>\n\n                <p>So again, for the best quality output be aware of these elements and use them.  Please suggest additions if you do not find what you need and are resorting to Unicode characters.</p>\n\n                <paragraphs>\n                    <title><tage>ellipsis</tage>, <ellipsis />, ellipsis</title>\n                    <p>Typically three low dots with no intervening space, to indicate a continuation.  This will always perform better than three consecutive periods.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>midpoint</tage>, <midpoint />, midpoint</title>\n                    <p>A small centered (vertically) dot, which can be used to separate pieces of information, especially in displayed text (<ie /> outside of paragraphs).  Not to be confused with a bullet preceding a list item, or multiplication in mathematics.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>swungdash</tage>, <swungdash />, swung dash</title>\n                    <p>Another decorative separator, not to be confused with the keyboard tilde character since it is wider and thicker.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>permille</tage>, <permille />, per mille</title>\n                    <p>Like per cent, but now a number expressed as its product with <m>1000</m> (rather than with <m>100</m>).</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>pilcrow</tage>, <pilcrow />, pilcrow, paragraph mark</title>\n                    <p>Mark used historically to indicate the start of an internal paragraph, and in a more modern use, to indicate a permalink.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>section-mark</tage>, <section-mark />, section mark</title>\n                    <p>Used to prefix the number of a section, or other division.  (So the word section is being used generically here.)</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>copyright</tage>, <copyright />, copyright</title>\n                    <p>The symbol used in publishing, legal, or business contexts.  For a <pretext /> project, copyright information can be specified within the <tag>bibinfo</tag> portion of the <tag>frontmatter</tag>.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>trademark</tage>, <trademark />, trademark</title>\n                    <p>The symbol used in legal or business contexts.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>registered</tage>, <registered />, registered</title>\n                    <p>The symbol used in legal or business contexts.</p>\n                </paragraphs>\n\n                <table>\n                    <title>Extraordinary Characters and Their Empty Elements</title>\n                    <tabular>\n                        <row bottom=\"medium\">\n                            <cell>Character</cell>\n                            <cell>Name</cell>\n                            <cell>Element</cell>\n                        </row>\n                        <row>\n                            <cell><ellipsis/></cell>\n                            <cell>ellipsis</cell>\n                            <cell><tage>ellipsis</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><midpoint/></cell>\n                            <cell>midpoint</cell>\n                            <cell><tage>midpoint</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><swungdash/></cell>\n                            <cell>swung dash</cell>\n                            <cell><tage>swungdash</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><permille/></cell>\n                            <cell>per-mille</cell>\n                            <cell><tage>permille</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><pilcrow/></cell>\n                            <cell>pilcrow</cell>\n                            <cell><tage>pilcrow</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><section-mark/></cell>\n                            <cell>section-mark</cell>\n                            <cell><tage>section-mark</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><copyright/></cell>\n                            <cell>copyright</cell>\n                            <cell><tage>copyright</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><trademark/></cell>\n                            <cell>trademark</cell>\n                            <cell><tage>trademark</tage></cell>\n                        </row>\n\n                        <row>\n                            <cell><registered/></cell>\n                            <cell>registered</cell>\n                            <cell><tage>registered</tage></cell>\n                        </row>\n                    </tabular>\n                </table>\n            </subsubsection>\n\n            <subsubsection>\n                <title>Accented Characters</title>\n\n                <p>The second 128 Unicode characters (hex <c>80</c> to <c>FF</c>) contain many of the most frequently-used accented characters in Western languages, along with niceties such as the German <foreign>eszett</foreign>, &#xDF;, or the Scandinavian <foreign>æsc</foreign>, &#xE6;, an a-e ligature.  Like the fifty-two Latin letters (part of the <em>first</em> 128 Unicode characters), these may be used as-is.  They may be present on your keyboard, or you may need to learn keyboard shortcuts or specifics of your operating system to enter them as Unicode characters.  In a pinch, you can often cut-and-paste a few characters from web pages.</p>\n\n                <p>This table is indexed by the Unicode number, in hexadecimal notation.  The first 32 of the 128 (<c>U+0080</c><ndash/><c>U+009F</c>) are control codes and <c>U+00A0</c> is a non-breaking space, so is invisible, while <c>U+00AD</c> is a soft hyphen (which we have not implemented and so is excluded).</p>\n\n                <!-- ex &#x0080; - &#x009F; controls -->\n                <!-- ex &#x00A0; non-breaking space  -->\n                <!-- ex &#x00AD; soft hyphen         -->\n                <table>\n                    <title>Latin-1 Supplement, Unicode <c>U+00A0</c><ndash/><c>U+00FF</c></title>\n                <tabular>\n                    <row><cell />\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>00A_</c></cell><cell><nbsp /></cell><cell>&#x00A1;</cell><cell>&#x00A2;</cell><cell>&#x00A3;</cell><cell>&#x00A4;</cell><cell>&#x00A5;</cell><cell>&#x00A6;</cell><cell>&#x00A7;</cell>\n                                                 <cell>&#x00A8;</cell><cell>&#x00A9;</cell><cell>&#x00AA;</cell><cell>&#x00AB;</cell><cell>&#x00AC;</cell><cell>        </cell><cell>&#x00AE;</cell><cell>&#x00AF;</cell></row>\n                    <row><cell><c>00B_</c></cell><cell>&#x00B0;</cell><cell>&#x00B1;</cell><cell>&#x00B2;</cell><cell>&#x00B3;</cell><cell>&#x00B4;</cell><cell>&#x00B5;</cell><cell>&#x00B6;</cell><cell>&#x00B7;</cell>\n                                                 <cell>&#x00B8;</cell><cell>&#x00B9;</cell><cell>&#x00BA;</cell><cell>&#x00BB;</cell><cell>&#x00BC;</cell><cell>&#x00BD;</cell><cell>&#x00BE;</cell><cell>&#x00BF;</cell></row>\n                    <row><cell><c>00C_</c></cell><cell>&#x00C0;</cell><cell>&#x00C1;</cell><cell>&#x00C2;</cell><cell>&#x00C3;</cell><cell>&#x00C4;</cell><cell>&#x00C5;</cell><cell>&#x00C6;</cell><cell>&#x00C7;</cell>\n                                                 <cell>&#x00C8;</cell><cell>&#x00C9;</cell><cell>&#x00CA;</cell><cell>&#x00CB;</cell><cell>&#x00CC;</cell><cell>&#x00CD;</cell><cell>&#x00CE;</cell><cell>&#x00CF;</cell></row>\n                    <row><cell><c>00D_</c></cell><cell>&#x00D0;</cell><cell>&#x00D1;</cell><cell>&#x00D2;</cell><cell>&#x00D3;</cell><cell>&#x00D4;</cell><cell>&#x00D5;</cell><cell>&#x00D6;</cell><cell>&#x00D7;</cell>\n                                                 <cell>&#x00D8;</cell><cell>&#x00D9;</cell><cell>&#x00DA;</cell><cell>&#x00DB;</cell><cell>&#x00DC;</cell><cell>&#x00DD;</cell><cell>&#x00DE;</cell><cell>&#x00DF;</cell></row>\n                    <row><cell><c>00E_</c></cell><cell>&#x00E0;</cell><cell>&#x00E1;</cell><cell>&#x00E2;</cell><cell>&#x00E3;</cell><cell>&#x00E4;</cell><cell>&#x00E5;</cell><cell>&#x00E6;</cell><cell>&#x00E7;</cell>\n                                                 <cell>&#x00E8;</cell><cell>&#x00E9;</cell><cell>&#x00EA;</cell><cell>&#x00EB;</cell><cell>&#x00EC;</cell><cell>&#x00ED;</cell><cell>&#x00EE;</cell><cell>&#x00EF;</cell></row>\n                    <row><cell><c>00F_</c></cell><cell>&#x00F0;</cell><cell>&#x00F1;</cell><cell>&#x00F2;</cell><cell>&#x00F3;</cell><cell>&#x00F4;</cell><cell>&#x00F5;</cell><cell>&#x00F6;</cell><cell>&#x00F7;</cell>\n                                                 <cell>&#x00F8;</cell><cell>&#x00F9;</cell><cell>&#x00FA;</cell><cell>&#x00FB;</cell><cell>&#x00FC;</cell><cell>&#x00FD;</cell><cell>&#x00FE;</cell><cell>&#x00FF;</cell></row>\n                    </tabular>\n                </table>\n            </subsubsection>\n\n            <subsubsection>\n                <title>Arithmetic</title>\n\n                <p>If you are writing about technical subjects, then you will want to avail yourself of <pretext/>'s extensive support for mathematics.  Otherwise, you may wish to write <em>really simple</em> arithmetic within sentences without extra formatting.  Notice that there is no provision for preventing line-breaks in the midst of these expressions.</p>\n\n                <p>So you can author (2<times/>6)<obelus/>3+10<minus/>15 = -1, but that is about the limit of the complexity of expressions you should author without using the extensive capabilities designed for <em>mathematics</em>, rather than <em>arithmetic</em>.  Note that the spaces around the equal sign have been supplied in the source, but no spaces have been provided around the operators.  Also, the minus sign and the negative are slightly different because the subtraction uses the <tage>minus</tage> element, while the negative answer uses a plain keyboard hyphen/dash.</p>\n\n                <p>Using the <tag>m</tag> element instead, the above is <m>(2\\times 6)\\div 3+10-15=-1</m>.  Note the more careful spacing, and the appropriate symbols for subtraction and negation, with no special care in the <latex/> syntax used in the source.</p>\n\n                <p>Note also that the plus sign, <c>+</c> and the equals sign, <c>=</c>, can be provided in text as the unambiguous keyboard characters.</p>\n\n                <p>The <tage>degree</tage>, <tage>prime</tage>, <tage>dblprime</tage> elements support simple coordinates with degrees, minutes, seconds, or temperature, or distance in feet and inches.  <q>We parked the car at 36<degree/>16<prime/>0.83<dblprime/>N, 122<degree/>35<prime/>47.27<dblprime/>W, and since it was 93<degree/>F, we walked 505<prime/>3.6<dblprime/> so we could swim in the bay.</q></p>\n\n                <paragraphs>\n                    <title><tage>minus</tage>, <minus/>, minus, subtraction, negation</title>\n                    <p>For simple arithmetic expressions in text, this symbol may be used.  Note that the keyboard hyhpen (or dash) might be acceptable for your purposes, but they are different.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>times</tage>, <times />, times, multiplication</title>\n                    <p>For simple arithmetic expressions in text, this symbol may be used.  Or it may be used to specify dimensions, as in <q>I bought a 2<times />4 at the lumber yard.</q></p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>solidus</tage>, <solidus />, solidus, virgule, fraction bar</title>\n                    <p>For simple arithmetic expressions in text, this symbol may be used to form a fraction.  It should appear to have a significantly shallower slope than the forward slash, /.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>obelus</tage>, <obelus/>, obelus, division sign</title>\n                    <p>For simple arithmetic expressions in text, this symbol may be used to indicate division.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>plusminus</tage>, <plusminus/>, plus-minus sign</title>\n                    <p>For simple arithmetic expressions in text, this symbol may be used to indicate a tolerance or a choice of two values, one the negative of the other.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>degree</tage>, <degree/>, degree symbol</title>\n                    <p>A raised open circle for temperature or for angles used in coordinates.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>prime</tage>, <prime/>, prime symbol</title>\n                    <p>A straight mark that is placed like an exponent.  For use in coordinates or statements of linear measure in feet and inches.  Not an apostrophe, and not mathematics (like, say, not to denote a derivative).</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>dblprime</tage>, <dblprime/>, double prime symbol</title>\n                    <p>Two straight marks that are placed like an exponent.  For use in coordinates or statements of linear measure in feet and inches.  Not an apostrophe, and not mathematics (like, say, not to denote a second derivative).</p>\n                </paragraphs>\n\n                <!--\n                http://gcp.fcaglp.unlp.edu.ar/_media/integrantes:psantamaria:latex:textcomp.pdf\n                + regular\n                - negative\n                - subtract \\textminus\n                <times/>  \\texttimes\n                <solidus/> \\textfractionsolidus\n                <division/> F7 \\textdiv\n                <plusminus/> b1 \\textpm\n                -->\n            </subsubsection>\n\n            <subsubsection xml:id=\"topics-separators\">\n                <title>Separators</title>\n\n                <paragraphs>\n                    <title><tage>ndash</tage>, <ndash />, en dash</title>\n                    <p>A dash, the width of a lowercase <sq>n</sq>, or exactly half the width of the em dash.  This is typically used to express a range, such as <c>1955&lt;ndash /&gt;1975</c>, with no intervening spaces.  It is often expressed as two hyphens when typed.  Bringhurst suggests an ndash surrounded by spaces <ndash /> thusly <ndash /> when setting off phrases.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>mdash</tage>, <mdash />, em dash</title>\n                    <p>A dash, the width of a lowercase <sq>m</sq>, or twice the width of the en dash.  This is typically used to express a secondary part of a phrase, much like the use of a semi-colon or parentheses.</p>\n\n                    <p>Style guides suggest that there should be no spaces, before or after, an em dash, while some allow for a <q>thin</q> space on either side.  You should always leave no space around an <tage>mdash</tage> element in your <pretext/> source.  Then a publication file entry can be used to elect the automatic addition of a thin space, should your publisher so desire.  See <xref ref=\"common-emdash-width-options\"/> for the syntax of the publisher file entry.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>nbsp</tage>, non-breaking space</title>\n                    <p>A space, but which ties two words together and discourages a line break when formatted, such as <c>Summer&lt;nbsp /&gt;1967</c>.  This can also be used to discourage a period in an abbreviation from being interpreted as the end of a sentence, such as <c>C.R.&lt;nbsp /&gt;Darwin</c>.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title><tage>midpoint</tage>, <tage>swungdash</tage>, <midpoint/>, <swungdash/>, midpoint, swung dash</title>\n                    <p>These can be used<midpoint/>as more decorative<swungdash/>separators.</p>\n                </paragraphs>\n            </subsubsection>\n        </subsection>\n\n        <subsection>\n            <title>Keyboard Keys</title>\n            <idx>keyboard keys</idx>\n            <idx><h>keys</h><h>keyboard</h></idx>\n\n            <p>If you are writing a software manual, or writing about how to use a calculator as part of a science textbook, then you might want to make it very clear which keys to press on a keyboard.  The <tag>kbd</tag> element can hold content like <c>Z</c> or <c>Caps Lock</c> and your output will have a very nice looking keyboard key with the desired label.  For example, <kbd>Z</kbd> and <kbd>Caps Lock</kbd>.  For keys labeled with graphics, like the arrow keys, instead of content, provide the <attr>name</attr> attribute with a value from the following table.  Request additions to this table if you are using this feature (2019-11-22).</p>\n\n            <table>\n                <title>Keyboard Keys Specified by <attr>name</attr> Attribute</title>\n                <!-- IMPORTANT: long names in the last column to keep table-width under control -->\n                <tabular>\n                    <row>\n                        <cell><c>left</c></cell>\n                        <cell><kbd name=\"left\"/></cell>\n                        <cell><c>right</c></cell>\n                        <cell><kbd name=\"right\"/></cell>\n                        <cell><c>up</c></cell>\n                        <cell><kbd name=\"up\"/></cell>\n                        <cell><c>down</c></cell>\n                        <cell><kbd name=\"down\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>enter</c></cell>\n                        <cell><kbd name=\"enter\"/></cell>\n                        <cell><c>shift</c></cell>\n                        <cell><kbd name=\"shift\"/></cell>\n                        <cell><c>solidus</c></cell>\n                        <cell><kbd name=\"solidus\"/></cell>\n                        <cell></cell>\n                        <cell></cell>\n                    </row>\n                    <row>\n                        <cell><c>plus</c></cell>\n                        <cell><kbd name=\"plus\"/></cell>\n                        <cell><c>minus</c></cell>\n                        <cell><kbd name=\"minus\"/></cell>\n                        <cell><c>times</c></cell>\n                        <cell><kbd name=\"times\"/></cell>\n                        <cell><c>left-paren</c></cell>\n                        <cell><kbd name=\"left-paren\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>obelus</c></cell>\n                        <cell><kbd name=\"obelus\"/></cell>\n                        <cell><c>squared</c></cell>\n                        <cell><kbd name=\"squared\"/></cell>\n                        <cell><c>inverse</c></cell>\n                        <cell><kbd name=\"inverse\"/></cell>\n                        <cell><c>right-paren</c></cell>\n                        <cell><kbd name=\"right-paren\"/></cell>\n                    </row>\n                </tabular>\n            </table>\n        </subsection>\n\n        <subsection>\n            <title>User-Interface Icons</title>\n\n            <p>When writing about software, you may wish to call attention to icons used in the interface.  Similar to graphical keyboard keys, use the <tag>icon</tag> element with a <attr>name</attr> attribute with a value from the following table.  See <xref ref=\"latex-icons\"/> for information about using icons as part of <latex/> output.</p>\n\n            <!-- Keep table skinny with short names left and long names right -->\n            <table>\n                <title>User-Interface Icons available with <tage>icon</tage></title>\n\n                <tabular>\n                    <col/>\n                    <col halign=\"center\" right=\"medium\"/>\n                    <col/>\n                    <col halign=\"center\" right=\"medium\"/>\n                    <col/>\n                    <col halign=\"center\"/>\n                    <row bottom=\"medium\">\n                        <cell>Name</cell>\n                        <cell>Icon</cell>\n                        <cell>Name</cell>\n                        <cell>Icon</cell>\n                        <cell>Name</cell>\n                        <cell>Icon</cell>\n                    </row>\n                    <row>\n                        <cell><c>file-save</c></cell>\n                        <cell><icon name=\"file-save\"/></cell>\n                        <cell><c>arrow-left</c></cell>\n                        <cell><icon name=\"arrow-left\"/></cell>\n                        <cell><c>media-rewind</c></cell>\n                        <cell><icon name=\"media-rewind\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>arrow-up</c></cell>\n                        <cell><icon name=\"arrow-up\"/></cell>\n                        <cell><c>arrow-right</c></cell>\n                        <cell><icon name=\"arrow-right\"/></cell>\n                        <cell><c>media-fast-forward</c></cell>\n                        <cell><icon name=\"media-fast-forward\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>menu</c></cell>\n                        <cell><icon name=\"menu\"/></cell>\n                        <cell><c>arrow-down</c></cell>\n                        <cell><icon name=\"arrow-down\"/></cell>\n                        <cell><c>media-skip-to-start</c></cell>\n                        <cell><icon name=\"media-skip-to-start\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>wrench</c></cell>\n                        <cell><icon name=\"wrench\"/></cell>\n                        <cell><c>media-stop</c></cell>\n                        <cell><icon name=\"media-stop\"/></cell>\n                        <cell><c>media-pause</c></cell>\n                        <cell><icon name=\"media-pause\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>gear</c></cell>\n                        <cell><icon name=\"gear\"/></cell>\n                        <cell><c>media-play</c></cell>\n                        <cell><icon name=\"media-play\"/></cell>\n                        <cell><c>media-skip-to-end</c></cell>\n                        <cell><icon name=\"media-skip-to-end\"/></cell>\n                    </row>\n                    <row>\n                        <cell><c>power</c></cell>\n                        <cell><icon name=\"power\"/></cell>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                    </row>\n                   <!-- <cell><c></c></cell><cell><icon name=\"\"/></cell> -->\n                   <!-- Keep rows full (w/ empty cells) to please HTML validator -->\n                </tabular>\n             </table>\n\n        </subsection>\n\n        <subsection>\n            <title>Other Markup in Paragraphs</title>\n\n                <!-- <title>Generators</title> -->\n\n            <paragraphs>\n                <title><tage>today</tage>, <tage>timeofday</tage>, <today />, <timeofday /></title>\n                <p>Values at the time of <init>XML</init> processing.  Useful for marking drafts or other frequently revised material such as online versions.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tage>tex</tage>, <tage>latex</tage>, <tage>xetex</tage>, <tage>xelatex</tage>, <tage>pretext</tage>, <tage>webwork</tage>, <tex />, <latex />, <xetex/>, <xelatex/>, <pretext />, <webwork/></title>\n                <p>Conveniences for frequently-mentioned accessories to <pretext />.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tage>fillin</tage>, <fillin characters=\"5\" />, fill-in blank</title>\n                <p>A <q>fill in the blank</q> blank.  May be used in normal text or within mathematics contexts.  The <attr>characters</attr> attribute may be used to hint at how long the line will be.  Here we have set <attr>characters</attr> to the value <c>5</c>.</p>\n\n                <p>If used inside math, a <attr>fill</attr> attribute (in lieu of <attr>characters</attr>) may be some string of math that will be used to determine width, height, and depth of the blank. In text, the default value of <c>10</c> is used for <attr>characters</attr>. In math, the default value of <c>XXX</c> is used for <attr>fill</attr>.</p>\n\n                <p>If used in normal text, a <attr>rows</attr> and/or <attr>cols</attr> attribute may be present, each a positive integer. When either is greater than one, there will be an indication that the expected content to fill in the blank is a <attr>rows</attr><nbsp/><times/><nbsp/><attr>cols</attr> array.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title><tage>ie</tage>, <tage>eg</tage>, <tage>ca</tage>, <tage>vs</tage>, <tage>etc</tage>, <ie />, <eg />, <ca />, <vs />, <etc /></title>\n                <p>A small collection of frequently-used Latin abbreviations, with attempts to handle the tricky periods wisely in <latex /> output.  Strictly speaking <bc /> is not Latin, but we include it for completeness.  Tags are always lowercase, no punctuation, usually two letters.</p>\n                <tabular>\n                    <row><cell>Tag</cell><cell>Realization</cell><cell>Meaning</cell></row>\n                    <!--  -->\n                    <row><cell><c>ad</c></cell>    <cell><ad/>    </cell><cell><foreign>anno Domini</foreign>, in the year of the Lord</cell>      </row>\n                    <row><cell><c>am</c></cell>    <cell><am/>    </cell><cell><foreign>ante meridiem</foreign>, before midday</cell>              </row>\n                    <row><cell><c>bc</c></cell>    <cell><bc/>    </cell><cell>English, before Christ</cell>                                       </row>\n                    <row><cell><c>ca</c></cell>    <cell><ca/>    </cell><cell><foreign>circa</foreign>, about</cell>                              </row>\n                    <row><cell><c>eg</c></cell>    <cell><eg/>    </cell><cell><foreign>exempli gratia</foreign>, for example</cell>               </row>\n                    <row><cell><c>etal</c></cell>  <cell><etal/>  </cell><cell><foreign>et alia</foreign>, and others</cell>                       </row>\n                    <row><cell><c>etc</c></cell>   <cell><etc/>   </cell><cell><foreign>et caetera</foreign>, and the rest</cell>                  </row>\n                    <row><cell><c>ie</c></cell>    <cell><ie/>    </cell><cell><foreign>id est</foreign>, in other words</cell>                    </row>\n                    <row><cell><c>nb</c></cell>    <cell><nb/>    </cell><cell><foreign>nota bene</foreign>, note well</cell>                      </row>\n                    <row><cell><c>pm</c></cell>    <cell><pm/>    </cell><cell><foreign>post meridiem</foreign>, after midday</cell>               </row>\n                    <row><cell><c>ps</c></cell>    <cell><ps/>    </cell><cell><foreign>post scriptum</foreign>, after what has been written</cell></row>\n                    <row><cell><c>vs</c></cell>    <cell><vs/>    </cell><cell><foreign>versus</foreign>, against</cell>                           </row>\n                    <row><cell><c>viz</c></cell>   <cell><viz/>   </cell><cell><foreign>videlicet</foreign>, namely</cell>                         </row>\n                </tabular>\n            </paragraphs>\n\n            <paragraphs>\n                <title>SI Units</title>\n                <p><foreign xml:lang=\"fr-FR\">Système international (d'unités)</foreign> (International System of Units) is a system of measurement used universally in science.  <pretext /> has comprehensive support for this system and its notation and abbreviations.  See <xref ref=\"overview-si-units\" /> for a short introduction and <xref ref=\"topic-units-measure\" /> for detailed descriptions of the relevant elements and their use.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <!-- <title>music notation</title> -->\n                <title><doublesharp/>, <sharp/>, <natural/>, <flat/>, <doubleflat/>, music notation</title>\n                <p>Notes, chords, and other notation may appear within sentences as part of a discussion.  See <xref ref=\"topic-music\" /> for detailed descriptions of the relevant elements.</p>\n            </paragraphs>\n        </subsection>\n\n        <conclusion>\n            <note xml:id=\"practice-careful-markup\">\n                <title>Understand the Importance of Careful Markup</title>\n\n                <p>There is a lot of detailed information in this section.  Much of it is critically important.  If you are new to thinking in terms of markup (rather than <acro>WYSIWYG</acro> tools), it might be overwhelming, a lot to digest, and hard to separate the wheat from the chaff.  Careful here means using the necessary markup, not using it for other purposes different than its intent (<term>tag abuse</term>), planning ahead for different output formats, but not becoming a slave to over-doing it.</p>\n\n                <p>So come back here often for a re-read.  And keep in mind that <pretext /> is designed around principles (<xref ref=\"list-principles\" />), and that it is markup (<xref ref=\"principle-markup\" />) which enables multiple outputs (<xref ref=\"principle-multiple-outputs\" />) and effective and beautiful online versions (<xref ref=\"principle-web-versions\"/>).</p>\n            </note>\n        </conclusion>\n    </section>\n\n    <section xml:id=\"topic-blocks\">\n        <title>Blocks</title>\n        <idx>blocks</idx>\n\n        <subsection>\n            <title>Introduction to Blocks</title>\n\n            <p>A division (<xref ref=\"overview-structure\"/>), that is not further subdivided, is primarly, but not exclusively, composed of paragraphs and <term>blocks</term>.  We document the types of blocks here, even though we do not intend to ever provide a rigorous definition of the term.  Here is a list of characteristics, which is not prescriptive.</p>\n\n            <list>\n                <title>Characteristics of a Block</title>\n\n                <ul>\n                    <li>Visually set-off from a run of <q>plain</q> paragraphs.  Often earning a number, and ideally provided a title or caption (<xref ref=\"best-practice-titles\"/>).</li>\n\n                    <li>Reflowable lines of text, such as an <tag>example</tag>, <em>or</em> a more rigid, more spatial, more <term>planar</term> object, such as a <tag>figure</tag> or <tag>table</tag>.</li>\n\n                    <li>Usually a child of a division (<xref ref=\"topic-divisions\"/>).  But see just below.</li>\n\n                    <li>Typically a block does not contain another block, except that the more planar ones can appear as part of a more textual one.</li>\n\n                    <li>When numbered, all blocks generally run consecutively.  (In <latex/>-speak, <q>on the same counter.</q>)  Numbering FIGURE-LIKE and PROJECT-LIKE independently is in transition at this writing (2021-07-07).</li>\n                    <li>Depending on the output format of your document, some block types may be initially hidden to improve the visual flow.  The reader must click on the heading for the block to reveal its contents.  You can change this behavior by configuring your publication file.  See <xref ref=\"publication-file-online\"/>.  We will make note of the elements that are hidden by default for <init>HTML</init> output.</li>\n                </ul>\n            </list>\n\n            <p>The following is somewhat general, and we have not extensively cross-referenced to the particular types of blocks, so use the Table of Contents or the Index to learn more specifics.</p>\n        </subsection>\n\n        <subsection>\n            <title>Isomorphic Blocks</title>\n\n            <p>The structure of a block is described carefully in the schema (<xref ref=\"schema\"/>).  There are approximately forty blocks that are arranged into ten groups, within which they behave identically, except for their displayed names.  An exception is the group of four <q>figure-like</q> items which are very similar, but have differences beyond just their displayed names.  These groupings are defined in the <c>xsl/entities.ent</c> file, which we summarize in the next table.  The category name is taken from the entities file, and the notes are meant to describe the distinctive capabilities of the category.</p>\n\n            <list xml:id=\"block-summary\">\n                <title>Summary of Blocks</title>\n\n                <dl>\n                    <li>\n                        <title>REMARK-LIKE</title>\n                        <p><tag>remark</tag>, <tag>convention</tag>, <tag>note</tag>, <tag>observation</tag>, <tag>warning</tag>, <tag>insight</tag></p>\n                        <p>The most basic, generic, block.</p>\n                    </li>\n\n                    <li>\n                        <title>EXAMPLE-LIKE</title>\n                        <p><tag>example</tag>, <tag>question</tag>, <tag>problem</tag></p>\n                        <p>A worked problem meant as exposition.  It can be structured with <tag>task</tag>, <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> just like an <tag>exercise</tag> or PROJECT-LIKE, but the <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> cannot be electively removed from output, and they do not migrate to collections of solutions elsewhere. Hidden by default for <init>HTML</init> output formats.</p>\n                    </li>\n\n                    <li>\n                        <title>PROJECT-LIKE</title>\n                        <p><tag>project</tag>, <tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag></p>\n                        <p>These are similar to an <tag>exercise</tag>, but the name suggests a slightly different undertaking, and they cannot be placed in an <tag>exercises</tag> division.  The current default is that they are numbered independently from other blocks, but this is planned to switch to elective behavior.  The <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> behave more like those for an <tag>exercise</tag> and can be removed from output, and can migrate to collections of solutions.</p>\n                    </li>\n\n                    <li>\n                        <title>FIGURE-LIKE</title>\n                        <p><tag>figure</tag>, <tag>table</tag>, <tag>listing</tag>, <tag>list</tag></p>\n                        <p>An object that is a container for other atomic objects, which are typically somewhat rigid (not reflowable) or two-dimensional.  Typically with a number, and provided with a title or caption.  But each is slightly different in what it can contain and how it is rendered.  A <tag>table</tag> can only hold a <tag>tabular</tag>, while a <tag>listing</tag> is meant for <tag>program</tag> and <tag>console</tag>.  A <tag>list</tag> is not the list itself, but a container for one of the three possible lists (see <xref ref=\"topic-lists\"/> and especially <xref ref=\"topic-named-list\"/>).  A <tag>figure</tag> is the most liberal, allowing a wide variety of contents, with <tag>image</tag> being the prototypical example.  These are not designed with the expectation that they can be renamed.</p>\n                    </li>\n\n                    <li>\n                        <title>THEOREM-LIKE</title>\n                        <p><tag>theorem</tag>, <tag>corollary</tag>, <tag>lemma</tag>, <tag>algorithm</tag>, <tag>proposition</tag>, <tag>claim</tag>, <tag>fact</tag>, <tag>identity</tag></p>\n                        <p>Mathematical results, which can have an (optional) <tag>proof</tag>.  Proofs are hidden by default in <init>HTML</init> output.</p>\n                    </li>\n\n                    <li>\n                        <title>AXIOM-LIKE</title>\n                        <p><tag>axiom</tag>, <tag>conjecture</tag>, <tag>principle</tag>, <tag>heuristic</tag>, <tag>hypothesis</tag>, <tag>assumption</tag></p>\n                        <p>A mathematical statement, which does not have a proof.</p>\n                    </li>\n\n                    <li>\n                        <title>DEFINITION-LIKE</title>\n                        <p><tag>definition</tag></p>\n                        <p>A definition of a (mathematical) object.</p>\n                    </li>\n\n                    <li>\n                        <title>ASIDE-LIKE</title>\n                        <p><tag>aside</tag>, <tag>biographical</tag>, <tag>historical</tag></p>\n                        <p>Parenthetical content that is structured beyond what a footnote can contain.</p>\n                    </li>\n\n                    <li>\n                        <title>COMPUTATION-LIKE</title>\n                        <p><tag>computation</tag>, <tag>technology</tag>, <tag>data</tag></p>\n                        <p>For descriptions of activities or data for use with computers, calculators, or other devices.</p>\n                    </li>\n\n                    <li>\n                        <title>GOAL-LIKE</title>\n                        <p><tag>objectives</tag>, <tag>outcomes</tag></p>\n                        <p>These are structured primarily as lists, and may only appear early (<tag>objectives</tag>) or late (<tag>outcomes</tag>) within a division.</p>\n                    </li>\n\n                </dl>\n            </list>\n        </subsection>\n\n        <subsection>\n            <title>Other Blocks</title>\n\n            <p>There are other blocks which can be achieved using just one element.  Examples are <tag>poem</tag> and <tag>assemblage</tag>.  An <tag>exercise</tag> can take on different behaviors, depending on its placement (see <xref ref=\"topic-exercises\"/>).  One such placement is as a child of a division, which we call an <term>inline exercise</term>, and this would be regarded as a block, very similar to a PROJECT-LIKE.  Inline exercises are hidden by default in <init>HTML</init> output.</p>\n\n            <p>A paragraph (<tag>p</tag>) can appear many places and is a primary component of blocks.  But when it is a child of a division, it shares some charateristics with other blocks.  There are a number of peers of a <tag>p</tag> which would then also qualify:  <tag>pre</tag>, <tag>blockquote</tag>, <tag>image</tag>, <tag>video</tag>, <tag>program</tag>, <tag>console</tag>, and <tag>tabular</tag>.  None of these can have a title or number, making them less useful, but widening the possibilities for placement.</p>\n        </subsection>\n\n        <subsection xml:id=\"renaming-blocks\">\n            <title>Renaming Blocks</title>\n            <idx>renaming blocks</idx>\n\n            <p>A common desire of authors new to <pretext/> is a new block.  Authors extending <pretext/> to add a new one is not supported, and it is not even straightforward for a <pretext/> developer to provide comprehensive support for a new block.  One of the reasons for multiple versions of blocks, with common behaviors, is that you can appropriate one for use with your project and give it a new name.  So for example, a biology textbook might want to use <tag>activity</tag> for a laboratory, but rename it to <q>Laboratory</q>.   Of course, this means you will forego having any <q>Activity</q> in your book.  (But if you <em>are the first</em> to write a biology textbook in <pretext/> perhaps you should talk to us about a real <tag>laboratory</tag> element that behaves well for all the physical and biological sciences!)  Here is the procedure:<ol>\n                <li>Choose a block from <xref ref=\"block-summary\"/> that has behavior similar to your intended use, and which you do not forsee using as-is in your project.</li>\n\n                <li>In the <tag>docinfo</tag> section use a <tag>rename</tag> element.  The content should be the new name (<q>Laboratory</q> above), while the <attr>element</attr> attribute should be the name of the element renamed (<c>activity</c> above).</li>\n\n                <li>The <attr>xml:lang</attr> attribute should be used to specify a value of the code for use with documents authored in languages other than US English.  If absent, the default vslue <c>en-US</c> is used.  Multiple <tag>rename</tag> elements for the same element, in different languages, is supported.</li>\n            </ol>So, continuing and extending our example, an author would use<cd>\n                <cline>&lt;rename @element=\"activity\" xml:lang=\"fr-FR\"&gt;Laboratoire&lt;/rename&gt;</cline>\n            </cd></p>\n\n            <p>The most popular block to rename is <tag>exercise</tag>.  We have exercises inside <tag>exercises</tag> divisions, which we call <term>divisional exercises</term>, and exercises inside divisions, which we call <term>inline exercises</term>.   It is possible to have one of each that have identical numbers.  So in cross-references the former is an <q>Exercise</q>, while the latter is a <q>Checkpoint</q>.  If you only have inline exercises, you might prefer that they be called Exercise rather than Checkpoint.  For the <attr>element</attr> attribute of the <tag>rename</tag> element, use a <term>pseudo-element</term>, in this case <c>inlineexercise</c>.  Other pseudo-elements which can be used to distinguish the various types of exercises are:  <c>divisionexercise</c>, <c>worksheetexercise</c>, and <c>readingquestion</c>.</p>\n\n            <p>Choose the element you rename carefully, trying to match it to the purpose of your content.  It can be useful for other purposes, such as automatic lists (<xref ref=\"topic-automatic-lists\"/>), and you may decide later to use other properties of the element you have chosen.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-exercises\">\n        <title>(*) Exercises, Inline and Divisional</title>\n        <p></p>\n    </section>\n\n    <section xml:id=\"topic-verbatim-literal\">\n        <title>Verbatim and Literal Text</title>\n\n        <introduction>\n\n            <p>This section expands on parts of <xref ref=\"overview-verbatim-literal\" />.  For descriptions of more involved uses, such as program listings and console sessions, see <xref ref=\"topic-program\"/> and <xref ref=\"topic-console\"/>.</p>\n\n            <p>The tags described here contain <em>only raw characters</em>.  By that we typically mean the first 128 characters of the <acro>ASCII</acro> code.  Unicode characters are likely to migrate to HTML output just fine, but results for <latex /> output will be variable.  The restriction to character data has two consequences.  First, any markup mistakenly included will have its content silently ignored and dropped.  Second, you need to observe the rules on exceptional characters and escaped characters for <init>XML</init> for literal text, which are mercifully simple.</p>\n\n            <blockquote>\n                <p>In your source, use <c>&amp;amp;</c> for an &amp;, use <c>&amp;lt;</c> for &lt;, and optionally use <c>&amp;gt;</c> for &gt;.  Otherwise, every other <acro>ASCII</acro> character will render faithfully across all possible formats.</p>\n            </blockquote>\n\n            <p>See <xref ref=\"topic-exceptional-characters\"/> for more detail and explanation.</p>\n        </introduction>\n\n        <subsection xml:id=\"short-verbatim-text\">\n            <title>Short, Inline, Verbatim Text</title>\n            <idx>verbatim text</idx>\n            <idx>literal text</idx>\n\n            <p>The <tag>c</tag> tag is a mnemonic for <q>code</q>, but is really meant to be any chunk of literal characters that you want to emphasise that way.  So a <q>typewriter</q> font of fixed-width characters would be a typical presentation.  It is meant for use within a sentence or caption (<q>inline</q>) so its use is limited to those situations, and others that are similar, such as a title or a cell of a table.  Typically these pieces of text do not hyphenate words, and so can lead to spillover into a right margin.  In these situations, consider options below for longer pieces of text.</p>\n\n            <p>There is also a <tag>pf</tag> tag, which is a mnemonic for <q>program fragment</q>.  It is used in the same way as <tag>c</tag>, but will apply syntax highlighting so that the displayed text matches the formatting of a <tag>program</tag> See <xref ref=\"program-fragments\"/> for more information.</p>\n        </subsection>\n\n        <subsection xml:id=\"long-verbatim-text\">\n            <title>Longer, Inline, Verbatim Text</title>\n\n            <p>For longer pieces of verbatim text, use the <tag>cd</tag> tag, which is short for <q>code display</q>, analogous to the <tag>md</tag> for mathematics.  It is used within sentences of a paragraph and will be presented with a vertical break above and below, but without interrupting the paragraph.  Because of the display presentation, it cannot be used other places, such as a <tag>title</tag>, where a vertical gap is not appropriate.  All of the previous discussion about exceptional characters applies for this tag.</p>\n\n            <p>You have two options in use.  You may author inline with the rest of a sentence, with no extra newlines or whitespace before, after, or within the content.  The result will be a single displayed line.</p>\n\n            <p>Or you may structure the content using one, or more, of the <tag>cline</tag> tag, which is meant to be similar to the <tag>line</tag> tag used elsewhere.  You should still take care to not place any extra whitespace before or after the <tag>cd</tag> element, but in between the <tag>cline</tag> you may use as much visual formatting of your source as you wish, especially if you like your source to mirror your output.</p>\n        </subsection>\n\n        <subsection xml:id=\"block-verbatim-text\">\n            <title>Blocks of Verbatim Text</title>\n\n            <p>If you want to isolate large chunks of verbatim text outside of paragraphs, the <tag>pre</tag> tag is the one to use.  It can be used as a peer of paragraphs (and other structures) as a child of a division, or it can be placed into a <tag>listing</tag> to receive a caption, title and number.</p>\n\n            <p>You can structure the contents with <tag>cline</tag> in exactly the same manner as for <tag>cd</tag>.  But you may find this tedious.  Instead, you can make the content of <tag>pre</tag> a sequence of lines separated by newlines.  So that you can preserve the indentation of your source, the line closest to the left margin is taken to actually be the left margin, and a corresponding amount of leading whitespace will be removed from every line.  This will work well if you recognize two caveats.  First, results will be unpredictable if you mix spaces and tabs for indentation.  Sticking with spaces is best.  Second, if your first characters of content immediately follow the <tag>pre</tag> tag then there is no leading whitespace and it is as if that line is already at the left margin.  Then subsequent indentation may seem too severe to you.</p>\n\n            <p>As previously mentioned, <xref ref=\"topic-console\"/> and <xref ref=\"topic-program\"/> discuss the <tag>console</tag> and <tag>program</tag> tags which are more specific, and hence more capable.  Review the possibilities before you decide between <tag>pre</tag>, <tag>console</tag>, and <tag>program</tag>.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-cross-referencing\">\n        <title>Cross-References and Citations</title>\n        <idx>cross-reference</idx>\n        <idx>citation</idx>\n\n        <introduction>\n            <p>When you read a novel, you would likely read it cover-to-cover (in one sitting?) and then put it away and never read it again.  But for a textbook, you may read cover-to-cover, but you may also frequently skip around, especially at exam time.  And once read, it might become a reference work for you, since you know it so well.  So years later you might come back looking for something.  Cross-references help with all this, so use them liberally.  Recognize that an index is really just a specialized way to provide an abundance of cross-references.</p>\n        </introduction>\n\n        <subsection>\n            <title>Creating a Cross-Reference</title>\n\n            <p>It is a two-step process to make a cross-reference.<ol>\n                <li>Put an <attr>xml:id</attr> attribute on any element you think you might want to reference later.  Be organized about the values of these attributes, and in particular do not number them, as this has no place in your source, and you do not want to maintain the changing numbers over the life of your project.  See the advice in <xref ref=\"overview-cross-references\" /> about banned characters.  Some elements do not accept this attribute because the element has nothing to identify it (no number, no title).  Typically these are <term>containers</term><idx>container</idx> such as <tag>sidebyside</tag>, <tag>statement</tag>, or <tag>ol</tag>.  In these cases, put the attribute on the closest enclosing element.</li>\n\n                <li>To make a cross reference, you create an <tage>xref</tage> element with a <attr>ref</attr> attribute with the same value as <attr>xml:id</attr> attribute on the element you want to reference.</li>\n            </ol>Simple.  It is meant to be, so you can use it liberally.  But we also know authors want some flexibility.</p>\n\n            <note>\n                <title>Use <attr>xml:id</attr> Frequently</title>\n\n                <p>Use the <attr>xml:id</attr> attribute liberally, on any object you might want to reference later, and on every division.  It is easier to do as you author and will be very valuable later.  (Trust us on this one.)  Develop a system so you can recall them predictably, but keep them readable.  Don't use numbers, they will change.  Then make frequent cross-references.  They are relatively easy for you and will be incredibly useful for each and every one of your many readers, over and over and over again.</p>\n            </note>\n        </subsection>\n\n        <subsection>\n            <title>Text of a Cross-Reference</title>\n\n            <p>By default, a cross-reference will visually be text like Theorem 5.2.  Depending on your output format, it may have various devices to help you locate that theorem.  Maybe a page number, or it is a hyperlink, or the whole theorem is the content of a knowl.  You can change the default look of cross-references by setting the <attr>text</attr> attribute in <c>docinfo/cross-references</c>.  But you can also change the visual appearance of a cross-reference on a case-by-case basis.  Add a <attr>text</attr> attribute to your <tage>xref</tage> element to override the document-wide setting.  The first column of this table lists the possible attribute values, either document-wide, or on a per-cross-reference basis.  The second column has live cross-references to a section of an earlier chapter (that is far away).  The third column has live cross-references to another section of this chapter (which is close by).  For the fourth column, we have placed content (<q>Extra</q>) into the <tag>xref</tag> element as an override of, or addition to, some of the text for the cross-references of the preceding column.  Study the table and then read some more explanation following.  Note that <c>type-global</c> is the default.</p>\n\n            <table>\n                <title>Cross-reference visual text styles</title>\n                <tabular>\n                    <row bottom=\"major\">\n                        <cell><attr>text</attr></cell>\n                        <cell>Far Away</cell>\n                        <cell>Close By</cell>\n                        <cell>With Content</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-local</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"type-local\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-local\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-local\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-global</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"type-global\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-global\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-global\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-hybrid</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"type-hybrid\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-hybrid\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-hybrid\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>local</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"local\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"local\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"local\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>global</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"global\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"global\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"global\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>hybrid</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"hybrid\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"hybrid\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"hybrid\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-local-title</c></cell>\n                        <cell><xref ref=\"overview-title\"  text=\"type-local-title\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-local-title\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-local-title\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-global-title</c></cell>\n                        <cell><xref ref=\"overview-title\"  text=\"type-global-title\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-global-title\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"type-global-title\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>phrase-global</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"phrase-global\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"phrase-global\" /></cell>\n                        <cell>Warning</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>phrase-hybrid</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"phrase-hybrid\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"phrase-hybrid\" /></cell>\n                        <cell>Warning</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>title</c></cell>\n                        <cell><xref ref=\"overview-title\"     text=\"title\" /></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"title\" /></cell>\n                        <cell>Warning</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>custom</c></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell><xref ref=\"topic-divisions\" text=\"custom\">Extra</xref></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Note that <c>local/global</c> describes the uniqueness of the number (and is affected by your choice of numbering schemes), while <c>type</c> refers to an automatic prefix of the number.  The text of the type will vary according to the document's language. If a cross-reference and its target are close to each other, a number like 5.8.2.4 might be overkill, when just a 4 would suffice.  A <c>hybrid</c> scheme will use the shorter number whenever it makes sense.  There are two <c>phrase</c> schemes, and it should be clear what text <c>title</c> will produce (though realize there must be a title for the object, possibly a default provided by <pretext />).  Finally, if desired, the text can be customized with any text you like.</p>\n\n            <p>You can also override the text used in a cross-reference link.  You do this by providing content to the <tag>xref</tag> element.  In other words, do not use an empty tag, but put some (simple) text in the element.  Generally, this additional text becomes a prefix of a number or a replacement of a type.  It is better to use these overrides, since in electronic formats, the text of the override will be incorporated into the <q>clickable</q> portion of the resulting link, making a larger item to hit.  Recognize that this extra content will not benefit from automatic internationalization.</p>\n\n            <p>Here are careful examples of providing content inside the <tag>xref</tag> element, where we have provided the content <q>Division</q> in the live examples.  The list is not exhaustive.</p>\n\n            <!-- expand and add links to the Preface to demo default titles -->\n            <table xml:id=\"txo\">\n                <title>Cross-reference text overrides</title>\n                <tabular>\n                    <row bottom=\"major\">\n                        <cell><attr>text</attr></cell>\n                        <cell>Example</cell>\n                    </row>\n                    <row>\n                        <cell><c>'global'</c></cell>\n                        <cell><xref ref=\"topic-cross-referencing\" text=\"global\">Division</xref></cell>\n                    </row>\n                    <row>\n                        <cell><c>'type-global'</c></cell>\n                        <cell><xref ref=\"topic-cross-referencing\" text=\"type-global\">Division</xref></cell>\n                    </row>\n                    <row>\n                        <cell><c>'custom'</c></cell>\n                        <cell><xref ref=\"topic-cross-referencing\" text=\"custom\">Division</xref></cell>\n                    </row>\n                </tabular>\n            </table>\n        </subsection>\n\n        <subsection>\n            <title>Variations</title>\n\n            <p>There are some variant uses for the <tag>xref</tag> tag.<ul>\n                <li>Replace <attr>ref</attr> by <attr>provisional</attr> and give it a value with some simple text like <c>subsection on eagle habitat</c> and you will get reminders that once you write this future subsection you need to link it in right here.  This is just a convenience for authors during the early stages of a writing project (see <xref ref=\"processing-author-tools\" /> for details).</li>\n\n                <li>Replace <attr>ref</attr> by the pair <attr>first</attr> and <attr>last</attr>.  Provide attribute values just as you would for <attr>ref</attr>.  The code will check that the targets have the exact same tag, and that the order is correct.  You will get a link that looks like a range, separated by an en dash.  As a link, only <attr>first</attr> will be used for the linking mechanism (<ie />, one link is generated, not two).  Experiment with <attr>text</attr> and content overrides.</li>\n\n                <li>The <attr>ref</attr> attribute may be a list of <attr>xml:id</attr>, separated by commas or by spaces.  Then you will get back a list of cross-references.  This is meant for a list of citations, producing a look like [5, 9, 22], but it makes no restriction to this case.  Use it generally, but it is unlikely to get any more capable.  If you want a different list, just use multiple <tag>xref</tag> and format as you desire.</li>\n            </ul></p>\n\n            <p>You can create many different combinations with the text options and the variants.  Here is one example.  You want to say <xref first=\"start-here\" last=\"schema\" text=\"global\">Chapters</xref>.  As a range you use the variant with two references. You would get <q>Chapter</q> out front automatically with the <c>type-global</c> scheme, but a plural form makes more sense.  So you use that text as an override.  We could use either <c>type-global</c> or <c>global</c> to get the same text, and possibly <c>type-hybrid</c> depending on the place where you built the cross-reference.  So possibly, one of these schemes might be your document-wide setting and you do not need to specify it now.  Here is what we just used:<cd>\n                <cline>&lt;xref first=\"start-here\" last=\"schema\" text=\"global\"&gt;Chapters&lt;/xref&gt;</cline>\n            </cd></p>\n\n            <p>You can place a cross-reference into a <tag>title</tag> element, but a particular conversion is free to simply render it as text, and not as an active link.</p>\n\n            <p>Finally, there is fairly robust error-checking to protect against typographical errors in the attribute values that need to match up for all this to work.  Also, there is a check that the <attr>xml:id</attr> are unique.  But all this checking happens at processing-time, not at the validation step.  Any suggestions for improvements that make these checks even more robust are welcome.</p>\n        </subsection>\n\n        <subsection>\n            <title>Citations</title>\n            <idx>citation</idx>\n\n            <p>Citations are just specialized cross-references to <tag>biblio</tag> elements, and so behave the same way as other cross-references.  However they will always visually look like [23], and there is no notion of <q>type name.</q></p>\n        </subsection>\n\n        <subsection>\n            <title>Equations</title>\n\n            <p>Similar to citations, references to equations (<tag>md</tag> and <tag>mrow</tag> elements) will visually look like (4.2), where the type name is implied by the parentheses.  Notice that you cannot cross-reference a bare <tag>md</tag> element that is not numbered nor an <tag>md</tag> element structured with <tag>mrow</tag> (it is just a container, filled with <tag>mrow</tag> that you can target if you give them numbers).  Consult <xref ref=\"topic-display-math\" /> for details about controlling the numbering of equations within an <tag>md</tag>.</p>\n        </subsection>\n\n\n\n        <subsection xml:id=\"topic-cross-reference-list-item\">\n            <title>Lists</title>\n\n            <p>Roughly, you can target a list item for a cross-reference, but not the list itself, since it is a container.  See <xref ref=\"topic-list-item-target\" /> for precise details about using list content as the target of a cross-reference.  Note also, that an entire named list may be the target of a cross-reference, see <xref ref=\"topic-named-list\" />.  Here we concentrate on the text of the cross-reference itself.</p>\n\n            <p>First, note that if you cross-reference a list item of an anonymous list, there is a very real possibility that the number will be ambiguous, and there is no option for <attr>text</attr> will save you, and never can be.  See the middle column of <xref ref=\"table-xref-list-item\" /> for the demonstration.  We assiduously try to make it <em>impossible</em> to ever create ambiguous text for cross-references, especially in consideration of print output.  Use the feature carefully.</p>\n\n            <note xml:id=\"practice-ambiguous-list-items\">\n                <title>Take Care Referencing Anonymous Lists</title>\n\n                <p>Cross-references to list items of anonymous lists can easily be ambiguous and then useless for readers of print.  Keep such a cross-reference close to its target, ideally within the same list, and/or perhaps using additional, unambiguous clues about location (which you  expect will survive later editing):\n                <ol>\n                    <li xml:id=\"ambiguous-list-item-one\">See <xref ref=\"ambiguous-list-item-two\" /> of this list.</li>\n                    <li xml:id=\"ambiguous-list-item-two\">See <xref ref=\"ambiguous-list-item-one\" /> in the list appearing in <xref ref=\"practice-ambiguous-list-items\" />.</li>\n                </ol></p>\n            </note>\n\n            <p>The <c>local</c> option, discussed generally above, behaves differently for a cross-reference to a list item of an ordered list that is contained in a named list.  As seen in the table just below, the local portion of the number is the part that comes from the list item, without the part that comes from the location of the <tag>list</tag> block.</p>\n\n            <table xml:id=\"table-xref-list-item\">\n                <title>Cross-references to list items, visual text styles</title>\n                <tabular>\n                    <row bottom=\"major\">\n                        <cell><attr>text</attr></cell>\n                        <cell>Named List</cell>\n                        <cell>Anonymous List</cell>\n                        <cell>With Content</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-local</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"type-local\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"type-local\" /></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"type-local\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-global</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"type-global\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"type-global\" /></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"type-global\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>type-hybrid</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"type-hybrid\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"type-hybrid\" /></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"type-hybrid\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>local</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"local\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"local\" /></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"local\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>global</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"global\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"global\" /></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"global\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>hybrid</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"hybrid\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"hybrid\" /></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"hybrid\">Extra</xref></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>phrase-global</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"phrase-global\" /></cell>\n                        <cell>Warning</cell>\n                        <cell>Warning</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>phrase-hybrid</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"phrase-hybrid\" /></cell>\n                        <cell>Warning</cell>\n                        <cell>Warning</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>title</c></cell>\n                        <cell><xref ref=\"named-list-target\"  text=\"title\" /></cell>\n                        <cell><xref ref=\"anon-list-target\" text=\"title\" /></cell>\n                        <cell>Warning</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>custom</c></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell><xref ref=\"named-list-target\" text=\"custom\">Extra</xref></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>The <c>hybrid</c> options employ a different definition of when the distance between a cross-reference and its target is close enough that the number can be shortened, without becoming ambiguous.  When an <tag>xref</tag> and its target are part of the same <tag>list</tag>, then the common part of the number derived from the <tag>list</tag> is not needed.  To illustrate we need to make a small <tag>list</tag> with cross-references contained within.</p>\n\n            <list>\n                <title>Small test</title>\n                <ol>\n                    <li>(<c>type-global</c>)  Flowers are not <xref ref=\"nearby-item\" text=\"type-global\" />.</li>\n                    <li>(<c>type-hybrid</c>)  Fish are not <xref ref=\"nearby-item\" text=\"type-hybrid\" />.</li>\n                    <li>(<c>hybrid</c>)  Bacteria are not <xref ref=\"nearby-item\" text=\"hybrid\" />.</li>\n                    <li>(<c>phrase-global</c>)  Fungi are not <xref ref=\"nearby-item\" text=\"phrase-global\" />.</li>\n                    <li>(<c>phrase-hybrid</c>)  Trees are not <xref ref=\"nearby-item\" text=\"phrase-hybrid\" />.</li>\n                    <li xml:id=\"nearby-item\">Mammals.</li>\n                </ol>\n            </list>\n        </subsection>\n\n        <conclusion>\n            <note>\n                <title>Be Rational About Numbering Variations</title>\n\n                <p>With distinct numbering schemes for divisions, theorems, figures, equations, and citations, along with ten different text styles for a cross-reference, plus variants, per-cross-reference settings, and text overrides, there is a huge supply of combinations.  Likely you can create some really ugly cross-references.  Use the flexibility sensibly.</p>\n            </note>\n        </conclusion>\n    </section>\n\n\n    <section xml:id=\"topic-divisions\">\n        <title>Divisions</title>\n\n        <p>A <term>division</term><idx>division</idx> (or more carefully, a <term>structural division</term><idx>structural division</idx>) is a structured component of a book or article that would be recognized by most any reader.  They are essential to the organization of a <pretext /> project.  Notice that we use the generic term division, since a <tag>section</tag> is just one example of a division.</p>\n\n        <p>Divisions are <tag>book</tag>, <tag>article</tag>, <tag>part</tag>, <tag>chapter</tag>, <tag>section</tag>, <tag>subsection</tag>, <tag>subsubsection</tag>, and <tag>paragraphs</tag>.  Their use is fairly intuitive, though there are some restrictions, so please read on.</p>\n\n        <p>A <tag>book</tag> must contain at least one <tag>part</tag> or at least one <tag>chapter</tag>, which may contain <tag>section</tag>, <tag>subsection</tag>, and <tag>subsubsection</tag>.  A <tag>part</tag> simply contains a sequence of <tag>chapter</tag> and functions in two user-selectable ways: structural (<eg /> numbering will reset), or decorative (merely inserting a decorative page between two chapters and sectioning the Table of Contents).</p>\n\n        <p>An <tag>article</tag> is simpler and shorter than a book.  It might be really simple and have no divisions at all, or it may have <tag>section</tag>s.  It cannot have <tag>chapter</tag>s, as that would be a <tag>book</tag>.  Within a <tag>section</tag>, <tag>subsection</tag>s and <tag>subsubsection</tag>s may follow.</p>\n\n        <p>Divisions must nest properly and may not be skipped.  So a <tag>section</tag> cannot contain a <tag>chapter</tag> and a <tag>subsection</tag> may not be contained in a <tag>chapter</tag> without an intervening <tag>section</tag>.</p>\n\n        <p>A division <em>must</em> contain a <tag>title</tag>, and may contain one or more index entries (see <xref ref=\"topic-index\" />), which should appear before anything else.  Any division may be unstructured, with just a sequence of <term>top-level content</term><idx>top-level content</idx> such as paragraphs, figures, lists, theorems, <etc />  Or a division may be structured, and in this case it must follow a prescribed pattern.  There may be a single, optional <tag>introduction</tag>, filled with top-level content, followed by a sequence of at least one of the appropriate divisions, ending with a single, optional <tag>conclusion</tag>, filled with top-level content.  It is an error to begin with a run of top-level content inside a division and then begin to use divisions.  (The solution is to make the initial content an <tag>introduction</tag> and/or one or several divisions.)</p>\n\n        <p>A <tag>book</tag> may be structured into parts.  After the <tag>frontmatter</tag> and before the <tag>backmatter</tag> there may be a sequence of <tag>part</tag>.  These elements may carry a <tag>title</tag>, and not much else, besides a substantial sequence of <tag>chapter</tag>.  The main effect is to get an extra level of division in the Table of Contents.  For print and <init>PDF</init> there is an entire page devoted to the title and number of the part.  The default numbering is <term>decorative</term>, which means that the chapters are numbered consecutively from the start of the book and do not reset to one at the start of each part.  It is as if the parts were not even there.  The alternative is that parts are <term>structural</term>.  Now each part begins with Chapter 1.  There are other more subtle differences, such as cross-references use a part number if, and only if,  the trip from the cross-reference to its target crosses a boundary of two parts.  The two approaches to part structure may be set via the publication file, see <xref ref=\"publication-file-numbering\"/>.</p>\n\n        <p>There are exceptions to the above.  For one, <tag>paragraphs</tag> is an anomalous division, as a sort of lightweight sectioning command.  It may appear in any division, at any location within a division, it may not be divided further (it is a leaf of the document tree), it never gets a number, and its title is formatted in a subsidiary way.  I especially like to use this in a two- or three-page <tag>article</tag> that has no other divisions at all.   It is also very useful as a way to subdivide portions of the front matter (<xref ref=\"topic-front-matter\"/>), such as a <tag>preface</tag>. Typical presentation has the title in bold, without much change in font size (if at all), inline with the first paragraph, and perhaps a bit of vertical space as it begins and ends.  Despite the name, it may contain more than just paragraphs, so may contain any top-level-content that would go in any other division.</p>\n    </section>\n\n    <section xml:id=\"topic-specialized-divisions\">\n        <title>Specialized Divisions</title>\n        <idx><h>division</h><h>specialized</h></idx>\n        <idx>specialized division</idx>\n\n        <introduction>\n            <p>There are six divisions that have specialized functions, and therefore have less generic names than ones like <tag>chapter</tag> or <tag>section</tag>.  They are <tag>exercises</tag>, <tag>reading-questions</tag>, <tag>solutions</tag>, <tag>references</tag>, <tag>glossary</tag>, and <tag>worksheet</tag>.  They have some features in common, such as having a <tag>title</tag>, but each is different from the other in substantial ways.</p>\n\n            <p>Generally, a specialized division may be placed within any other division (<xref ref=\"topic-divisions\"/>), and it will behave like a subdivision of that division.  Some may be placed in the back matter and may behave as a version relevant to the entire document.  This section describes the specifics for each type of specialized division.</p>\n        </introduction>\n\n        <subsection xml:id=\"topic-references\">\n            <title>(*) References (Lists of Works Cited)</title>\n            <p></p>\n        </subsection>\n\n        <subsection xml:id=\"topic-glossary\">\n            <title>Glossary</title>\n            <idx>glossary</idx>\n\n            <p>A glossary is a list, in alphabetical order, of foreign or unfamiliar words, along with definitions. <xref ref=\"cmos\" detail=\"1.87\"/></p>\n\n            <p>A <tag>glossary</tag> division may be placed inside any main matter division, and at most once in the <tag>backmatter</tag>.   In either event, the <pubtitle>Chicago Manual of Style</pubtitle> <xref ref=\"cmos\" detail=\"1.87\"/> indicates that it should be placed right before a <tag>references</tag>.</p>\n\n            <p>After a <tag>title</tag>, index entries, and other metadata, a <tag>glossary</tag> division may begin with an optional <tag>headnote</tag>, which can use paragraphs to explain anything unusual about the construction of a particular glossary.</p>\n\n            <p>The remainder of a glossary is a sequence of items to explain.  Typically these are words, phrases, initialisms, or acronyms.  Each item is a <q>glossary item</q>, enclosed in a shorthand <tag>gi</tag> element.  The element must lead with a <tag>title</tag>, which is the term being explained.  <pretext/> will provide a period after each defined word, so there should not be any punctuation in your source at this location.  The term should not have any markup, <em>unless</em> the markup is used in every occurence of the term in the text.  Similarly, a term is capitalized only if it is capitalized routinely in the text.</p>\n\n            <p>The explanation itself follows, typically in a sequence of paragraphs, but unnumbered items, such as an <tag>image</tag> may also be used.  It is the author's responsibility to create the list in alphabetical order.  Automatic groupss (according to initial letter) are a pending feature request, perhaps especially for a final, overall, back matter glossary, much like an index.  See <url href=\"https://github.com/PreTeXtBook/pretext/issues/1971\">GitHub #1971</url>.</p>\n\n            <p>Many of the preceding recommendations can be found in <pubtitle>Chicago Manual of Style</pubtitle> <xref ref=\"cmos\" detail=\"2.28\"/>.  For an example, see the <xref ref=\"glossary\" text=\"custom\">glossary</xref> in the back matter of this Guide.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-worksheet\">\n            <title>(*) Worksheets</title>\n            <p></p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-title\">\n        <title>Titles</title>\n        <idx>title</idx>\n\n        <p>Divisions always need titles, you accomplish this with a <tag>title</tag><idx>title</idx> tag first thing.  Almost everything that you can use in a paragraph can be used in a title, but a few constructions are banned, such as a displayed mathematical equation (for good reason).  Try to avoid using footnotes in titles, even if we have tried to make them possible.</p>\n\n        <p>A division will also support a single optional <tag>shorttitle</tag> and/or a single optional <tag>plaintitle</tag>.  The full <tag>title</tag> will be used where the division is born, but in other places where the title is used for navigation, such as a Table of Contents, print page header, or HTML summary page, when horizontal space may be at a premium, the <tag>shortitle</tag> will be used preferentially.</p>\n\n        <p>A <tag>plaintitle</tag> is similar, but slightly different, so you might want both.  In limited situations, <pretext/> markup does not travel well in certain conversions.  The best example is mathematics, which might be in a title of a division, and then in a conversion to HTML, will fail to render in the tab of a browser, or the list of open tabs for a browser window.  Two examples<cd>\n            <cline>&lt;title&gt;&lt;m&gt;q&lt;/m&gt;-crystalline cohomology&lt;/title&gt;</cline>\n            <cline>&lt;title&gt;&lt;m&gt;\\delta&lt;/m&gt;-rings&lt;/title&gt;</cline>\n        </cd>  <pretext/> will automatically do a nice job for you with the first, but the second will retain <c>\\delta</c> in a browser tab.  However, you can add a <tag>plaintitle</tag> element where the <latex/> <c>\\delta</c> can be replaced by a Unicode delta (<c>U+03B4</c>), which will used preferentially and be fine in <init>HTML</init> output.</p>\n\n        <p>To avoid confusing your readers, use these alternate titles sparingly, and ideally only when you have a really, really, really long title and then use a short title that is easily recognizable as a variant of the long title, or when markup is behaving poorly in situations such as a browser tab.  Your first option should be to ask if your long title must absolutely be so long, or if the markup is strictly necessary.</p>\n\n        <p>Many, many other structures admit titles.  Experiment, or look at specific descriptions of the structure you are interested in.  Titles are very integral to <pretext/>, much like cross-references.  Titles migrate to the Table of Contents, get used in page headers for print output, can be used in lists (such as a List of Figures), and can be used as the text of a cross-reference, instead of a number.  You might not be inclined to give a <tag>remark</tag> a title, but it would be good practice to do so.  If you use knowls in your <init>HTML</init> output for structures such as <tag>example</tag> (or if somebody else may someday choose to), then your readers will be spared a lot of confusion if you supply informative titles for each. Your electronic outputs will be much more useful to your readers if you routinely title every structure that allows it (perhaps excepting <tag>exercise</tag> which can be known by their number).</p>\n\n        <p>If a title is very long, the <tag>line</tag> element can be used to indicate how the title should appear on multiple lines.  Note: does not apply to all output formats.\n        <idx><h>title</h><h>very long</h></idx>\n        <idx>line</idx>\n        </p>\n\n        <note xml:id=\"best-practice-titles\">\n            <title>Provide Informative Titles Liberally</title>\n            <p>Provisions for titles in many situations is a key <pretext/> feature.  And then they are used for various purposes to benefit readers.  A good example is when the <init>HTML</init> conversion is used to place content in a <term>knowl</term>, a unit of content that begins hidden, but can be revealed (and hidden again) with one click of a mouse.  Since a reader cannot see the content originally, we will migrate a title into the clickable text.  But we cannot read your mind<mdash/>it is your job as the author to provide a title, and to provide a good one.</p>\n\n            <p>Even if you are not yet sure what a knowl is, and even if you think you do not want to use them, there are other good reasons to have a title (such as automatic lists, see <xref ref=\"topic-automatic-lists\"/>).  Constructing them on-the-fly is much easier than making a big chore out of going back and doing it later.</p>\n\n            <p><dl width=\"narrow\">\n                <li>\n                    <title>Bad</title>\n                    <p>Example 5.10</p>\n                </li>\n                <li>\n                    <title>Better</title>\n                    <p>Example 5.10 A cool lizard trick.</p>\n                </li>\n                <li>\n                    <title>Best</title>\n                    <p>Example 5.10 Various colors and markings of a chameleon.</p>\n                </li>\n            </dl></p>\n        </note>\n    </section>\n\n    <section xml:id=\"topic-mathematics\">\n        <title>Mathematics</title>\n        <idx>mathematics</idx>\n\n        <introduction>\n            <p>As mentioned in the overview, <xref ref=\"overview-math\" />, we use <latex /> syntax for mathematics.  In order to allow for quality display in <init>HTML</init>, and other electronic formats, this limits us to the subset of <latex /> supported by the very capable <url href=\"https://www.mathjax.org/\" visual=\"www.mathjax.org\">MathJax</url> Javascript library.  Generally this looks like the <c>amsmath</c><idx><c>amsmath</c></idx> package maintained by the American Mathematical Society at their <url href=\"http://www.ams.org/publications/authors/tex/amslatex\" visual=\"www.ams.org/publications/authors/tex/amslatex\">AMS-LaTeX page</url>. For a complete and precise list of what MathJax supports, see MathJax's <url href=\"http://docs.mathjax.org/en/latest/input/tex/macros/\" visual=\"docs.mathjax.org/en/latest/input/tex/macros/\">Supported <tex/>/<latex/> commands</url>. Once you have digested this more general section, be sure to also consult <xref ref=\"topic-mathematics-practices\"/> for some very specific suggestions.</p>\n        </introduction>\n\n        <subsection>\n            <title>Inline Mathematics</title>\n\n            <p>Use the <tag>m</tag> to place variables or very short expressions within a sentence of a paragraph, the content of a <tag>title</tag>, a <tag>cell</tag> of a table, a footnote, or other similar locations of sentence-like text.  You cannot cross-reference this text, nor make a knowl with it.  Though you can typically cross-reference a containing element.</p>\n\n            <p>Do not use <latex />-isms like <c>\\displaystyle</c> to try to end-run the inline nature.  It will just lead to poor results.</p>\n\n            <note>\n                <title>Keep Inline Mathematics Short</title>\n\n                <p>Longer mathematical expressions in an <tag>m</tag> element can lead to awkward line breaks, both in <init>HTML</init> output, and especially in <init>PDF</init> generated from <latex/>.  And complicated fractions or integrals can introduce abnormal line-spacing that is distracting to a reader.  As a rough rule-of-thumb, keep an inline expression shorter than a moderately-long regular word and avoid tall constructions.  This should allow <latex/>'s line-breaking algorithms the best chance of success.</p>\n\n                <p>So a simple, short equality such as <m>x=2</m> should not cause a problem, but if you want to claim that the probability distribution of the normal distribution has the right scaling factors, <m>\\int_{-\\infty}^{\\infty}\\frac{1}{\\sigma\\sqrt{2\\pi}}e^{-\\frac{1}{2}\\frac{\\left(x-\\mu\\right)^2}{\\sigma}} dx = 1</m>, there is a good chance it will do less harm to your paragraph of you display it\n                <md>\\int_{-\\infty}^{\\infty}\\frac{1}{\\sigma\\sqrt{2\\pi}}e^{-\\frac{1}{2}\\frac{\\left(x-\\mu\\right)^2}{\\sigma}} dx = 1</md>\n                using the <tag>md</tag> element described next.</p>\n            </note>\n        </subsection>\n\n        <subsection>\n            <title>One-Line Display Mathematics</title>\n\n            <p>The <tag>md</tag> element can be used for longer expressions or a single equation.  Typically you will get vertical separation above and below, and the contents will be centered.  See below about concluding periods (and other punctuation), and alignment.  To number the expression, use the <attr>number</attr> attribute with the value set to <c>yes</c>.  And once numbered, the expression can be the target of a cross-reference (<tag>xref</tag>), if you also add a <attr>xml:id</attr> attribute.</p>\n\n            <p>A symbolic local tag may instead be requested with the <attr>tag</attr> attribute, using the same set of symbol names as on an <tag>mrow</tag>; see <xref ref=\"topic-display-math\"/>.  Since a tag stands in for a number, the <attr>tag</attr> and <attr>number</attr> attributes are mutually exclusive on a one-line <tag>md</tag>.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-display-math\">\n            <title>Multi-line Display Mathematics</title>\n\n            <p>We begin with the <tag>md</tag> element, but now used as a container.  Within the container, content, on a per-line basis, goes into a <tag>mrow</tag> element.  You can think of <tag>mrow</tag> as being very similar to a one-line <tag>md</tag> that does not have additional structure.  In a <latex/> <c>align</c> environment, the <c>\\\\</c> marks the end of a displayed line.  In <pretext/> each <tag>mrow</tag> delimits a displayed line, and there are no <c>\\\\</c>s.  Use <c>\\amp</c> to mark the alignment point. <idx>aligned math</idx><idx>\\amp, math alignment</idx></p>\n\n            <p>On any given <tag>mrow</tag> you can place the <attr>number</attr> attribute, with allowable values of <c>yes</c> and <c>no</c>.  These will typically be used to override the behavior you might place on the <tag>md</tag> container, via an overall <attr>number attribute</attr>, but there is no harm if they are redundant.  A given line of the display may be the target of a cross-reference (<tag>xref</tag>) via an <attr>xml:id</attr> attribute, though the numbering flexibility means you can try (and fail) to target an unnumbered equation.</p>\n\n            <p>An <tag>mrow</tag> may have a <attr>tag</attr> attribute in place of a <attr>number</attr> attribute.  This will create a <q>number</q> on the equation which is just a symbol.  This is meant for situations where you do not want to use numbers, and the resulting cross-reference is <q>local.</q>  In other words, the <tag>xref</tag> and its target are not far apart, such as maybe within the same <tag>example</tag> or the same <tag>proof</tag>.  Allowable values for the attribute are:<cd>\n                <cline>star, dstar, tstar,</cline>\n                <cline>dagger, ddagger, tdagger,</cline>\n                <cline>daggerdbl, ddaggerdbl, tdaggerdbl,</cline>\n                <cline>hash, dhash, thash,</cline>\n                <cline>maltese, dmaltese, tmaltese</cline>\n            </cd>These are the names of symbols, with prefixes where the prefix <c>d</c> means <q>double</q>, and the prefix <c>t</c> means <q>triple</q>.  Cross-references to these tagged equations happens in the usual way and should behave as expected.  See <xref ref=\"overview-cross-references\" /> and <xref ref=\"topic-cross-referencing\" /> for more on cross-references.</p>\n\n            <p>Finally, the default is to not number displayed expressions.  If you want every displayed expression numbered, or you find yourself electing to number the majority of the displayed expressions, then there is a global default.  In your <tag>docinfo</tag> element, put a <attr>equations</attr> attribute on the <tag>numbering</tag> element, and set its value to <c>yes</c>, rather than the default <c>no</c>.</p>\n        </subsection>\n\n        <subsection xml:id=\"mathematics-xml-characters\">\n            <title>Exceptional Characters</title>\n\n            <p>The <latex /> macros, <c>\\amp</c>, <c>\\lt</c>, and <c>\\gt</c> are always available within these mathematics elements, so that you can avoid the exceptional XML characters <c>&amp;</c>, <c>&lt;</c> and <c>&gt;</c>.  See <xref ref=\"overview-exceptional-characters\" /> for this same information, but in the broader context of your entire document.</p>\n        </subsection>\n\n        <subsection xml:id=\"text-in-mathematics\">\n            <title>Text in Mathematics</title>\n\n            <p>Once in a while, you need a little bit of <q>regular</q> text within an expression and you do not want it to look like a product of a bunch of one-letter variables.  Use the <c>\\text{}</c> macro for these.  Only.  Other ways of switching out of math-mode and into some sort of <q>regular</q> text will appear inferior, and can raise errors in certain conversions.<ul>\n                <li>Do place surrounding spaces inside the <c>\\text{}</c> macro.</li>\n                <li>Do not place any mathematics inside the  <c>\\text{}</c> macro.</li>\n                <li>Do not use the <c>\\mbox{}</c> macro as a substitute.</li>\n                <li>Do not use font-changing commands (<eg /> <c>\\rm</c>) as a substitute.</li>\n            </ul></p>\n\n            <p>For example,<cd>\n                <cline>&lt;me&gt;f(x) = \\begin{cases} x^2 \\amp \\text{if } x\\gt 0\\\\</cline>\n                <cline>           -7 \\amp \\text{otherwise} \\end{cases}&lt;/me&gt;</cline>\n            </cd>produces\n            <md>f(x) = \\begin{cases}x^2\\amp\\text{if }x\\gt 0\\\\-7\\amp\\text{otherwise}\\end{cases}</md>.  This example amply illustrates the use of macros for XML exceptional characters (twice), appropriate use of the <c>\\text{}</c> macro (twice), spaces in the <c>\\text{}</c> macro (once), sentence-ending punctuation (see the source, the period is <em>not</em> inside the <tag>md</tag> element) and yes, we did think twice about the <c>\\\\</c> (an exception to the rule).</p>\n        </subsection>\n\n        <subsection xml:id=\"color-in-math\">\n            <title>Color in Mathematics</title>\n\n            <p>There is a temptation to use color to indicate or highlight portions of mathematics, especially for electronic outputs where color is easy and cheap.  But before you leap, how will this work in black-and-white printed output?  How will it work for a blind reader using a screen-reader or a braille version?</p>\n\n            <p>With careful use of <tex/> grouping (<c>{...}</c>) you can make the two behaviors of <c>\\color</c> effective.  For example, go:<cd>\n                <cline>{\\color{blue}{x^2}}</cline>\n            </cd></p>\n        </subsection>\n\n        <subsection>\n            <title>Cross-References in Display Mathematics</title>\n\n            <p>A cross-reference is achieved with the <tag>xref</tag> element, see <xref ref=\"overview-cross-references\" />.  You can place an <tag>xref</tag> inside a <tag>mrow</tag>, and remarkably, it will do the right thing.  This is one of only two <init>XML</init> elements you can mix-in with <latex /> syntax.  A typical use is to provide a justification or explanation for a step in a proof, derivation, or simplification.  And it works best with alignment, see below.</p>\n        </subsection>\n\n        <subsection>\n            <title>Alignment in Display Mathematics</title>\n\n            <p>Displayed mathematics is implemented with the AMS-<latex /> <c>align</c> environment.  Ampersands are used to control this, so use the <c>\\amp</c> macro for these.  The first ampersand in a line or row is an alignment point, typically a symbol, like an equality.  The next ampersand is a column separator, then the next is an alignment point, then a column separator, then<ellipsis />  The moral of the story is you should have <m>n</m> alignment points, with <m>n-1</m> column separators, for a total of <m>2n-1</m> ampersands<mdash />always an odd number.</p>\n\n            <p>For example,<cd>\n                <cline>&lt;md&gt;</cline>\n                <cline>  &lt;mrow&gt;A \\amp = B \\amp D \\amp = E \\amp \\amp \\text{Because}&lt;/mrow&gt;</cline>\n                <cline>  &lt;mrow&gt;  \\amp = C \\amp   \\amp = F \\amp \\amp &lt;xref ref=\"txo\" /&gt;&lt;/mrow&gt;</cline>\n                <cline>&lt;/md&gt;</cline>\n            </cd>produces\n            <md>\n                <mrow>A \\amp = B \\amp D \\amp = E \\amp \\amp\\text{Because}</mrow>\n                <mrow>  \\amp = C \\amp   \\amp = F \\amp \\amp<xref ref=\"txo\" /></mrow>\n            </md>.</p>\n\n            <p>Sometimes you want several short equations on one line.  Do not use the bare <tag>md</tag>.  Instead use a single <tag>mrow</tag> inside an <tag>md</tag>, and use alignment to spread them out evenly.</p>\n\n            <p>For multi-line display mathematics with no ampersands present, each line will be centered.  This is implemented with the AMS-<latex /> <c>gather</c> environment.</p>\n\n            <p>You can fool the alignment behavior by hiding all your ampersands in macro definitions, so there is the optional <attr>alignment</attr> attribute for the <tag>md</tag> element, in order to force the right kind of alignment.  Allowable values are <c>gather</c>, <c>align</c>, and <c>alignat</c>.  The latter is similar to <c>align</c>, but no space is automatically provided between columns.  You can leave it that way, or explicitly add your own.  For example, this allows you to precisely arrange individual terms of a system of linear equations, especially when terms with zero coefficients are omitted.  When using the <c>alignat</c> option <pretext /> tries to count ampersands to see how many columns you intend, since <latex /> needs this number (we are not sure why).  This detection can be fooled too, especially if you have something like a matrix with lots of ampersands for other purposes.  So set the <attr>alignat-columns</attr> attribute to the <em>number of intended columns</em>, if necessary.</p>\n\n            <p>If you have many aligned equation in a single <tag>md</tag>, but want to add a short sentence or two somewhere in the middle, place it in an <tag>intertext</tag> element, and keep it simple.  Just some words and punctuation, plus maybe some elements like <tag>em</tag> or <tag>q</tag>, but nothing like a list.  In <init>PDF</init> output constructed via <latex/> the alignment will be preserved across the break for the intertext (since this feature is inspired by <latex/>'s <c>\\intertext{}</c> macro).  Unfortunately, this is too complicated in other (electronic) output formats, so we just do the best we can to preserve your intent.  Perhaps some day, MathJax will be more capable, and we can make your source do better.</p>\n        </subsection>\n\n        <subsection xml:id=\"commutative-diagrams\">\n            <title>Commutative Diagrams</title>\n\n            <p>Commutative diagrams may be authored using the <init>AMS</init> <latex/> <url href=\"https://ctan.org/pkg/amscd\" visual=\"ctan.org/pkg/amscd\"><c>amscd</c></url> package.  While restricted in some ways, such as the lack of sloped or curved arrows, it has one important advantage over more general drawing tools.  Support for <init>HTML</init> output comes from MathJax, and hence has accessible versions included in the output.</p>\n\n            <p>Typical use would be within an <tag>md</tag> element, so starting with <c>\\begin{CD}</c>.  Despite this being multi-line output, we have not chosen to integrate it within the more general <c>md/mrow</c> structure, but that decision can be revisited.</p>\n        </subsection>\n\n        <subsection>\n            <title>Fill-In Blanks in Mathematics</title>\n\n            <p>The other mix-in <init>XML</init> element is <tag>fillin</tag>. It may use a <attr>fill</attr> attribute with some math string to determine width, height, and depth of the blank. Or it may use a <attr>characters</attr> attribute that takes an integer value to hint at the width.</p>\n        </subsection>\n\n        <subsection>\n            <title>Page Breaks for Tall Display Mathematics</title>\n\n            <p>For print output, do nothing additional and <latex /> will do its best to break your display between lines.  You can turn this behavior off by setting the <attr>break</attr> attribute on the <tag>md</tag> to the value <c>no</c>.  Once you do this, you can then selectively allow a page break after a given <tag>mrow</tag> by setting the <attr>break</attr> attribute on the <tag>mrow</tag> to the value <c>yes</c>.</p>\n        </subsection>\n\n        <subsection xml:id=\"mathematics-macros\">\n            <title>Your Macros</title>\n\n            <p>These go in the <tag>docinfo</tag> section, wrapped in a <tag>macros</tag><idx>macro</idx> element.  Keep them simple<mdash />one or two arguments, and one-line definitions.  This is not the place to be fancy, and not the place to try to end-run the structural aspects of <pretext/>.  The idea is to define something like <c>\\adjoint{A}</c> for the matrix <c>A</c> to be a superscript asterisk, and later you can change your mind and use a superscript dagger instead.  Keep in the spirit of <pretext/> and use readable, semantic macros.  For example, do not use <c>\\a{A}</c> for the adjoint of <c>A</c>.  Repeating: keep your <latex/> macros simmple, and to a single line.</p>\n\n            <p><pretext/> will use your macros correctly for print and for <init>HTML</init>, after erasing whitespace from the left margin, and stripping <latex/> comments.</p>\n\n            <p>The name of your macros also cannot contain any numbers, otherwise MathJax will <q>silently</q> fail and may not read any subsequent macros you might have. This is important because <pretext/> will place custom macros for you at the end of your own, defined at <xref ref=\"mathematics-xml-characters\"/>, to be used. Those would fail to be processed by MathJax if your own macros caused it to stop reading.</p>\n        </subsection>\n\n        <subsection xml:id=\"semantic-macros\">\n            <title>Semantic Macros</title>\n\n            <introduction>\n                <p>We have resisted using overly-verbose MathML for mathematics, or worse, inventing our own <init>XML</init> vocabulary for mathematics.  <latex/> syntax generally works great, but to work even better within <pretext/> an author needs to take a few extra steps.  Your work will translate better to a variety of formats, and will be easier to maintain, with well-designed macros.  A well-designed macro will convey the mathematical <em>meaning</em> of the object to a reader of your source, without them looking at your <em>definition</em> of the macro.  In situations where a mathematical object might be written with different notation, it should be trivial to change the macro's definition and preserve the mathematical meaning.  For example, consider two versions of a binomial coefficient:\n                <md>\n                    <mrow>&amp;{n\\choose r} &amp; &amp;\\operatorname{C}(n,r)</mrow>\n                </md>which could both equally well be the realization of <c>\\binomial{n}{r}</c>.</p>\n\n                <p>Here we describe some notation which often carries multiple mathematical meanings and/or may be created with <latex/> in multiple ways.</p>\n            </introduction>\n\n            <subsubsection>\n                <title>Vertical Bars</title>\n\n                <p>Vertical bars are used for a variety of mathematical objects.  Paired to create functions of expressions: absolute value, <m>\\left\\lvert x-1\\right\\rvert</m>; norm of a vector, <m>\\left\\lVert \\mathbf{v}\\right\\rVert</m>; cardinality of a set, <m>\\left\\lvert X\\right\\rvert</m>; and the determinant of a matrix, <m>\\left\\lvert A^k\\right\\rvert</m>.  As relations:  division, <m>a\\mid b</m>; parallel lines <m>L_1\\parallel L_2</m>.  Sets are another use: <m>E=\\left\\{x\\in{\\mathbb Z}\\,\\middle\\vert\\, x\\equiv 0\\pmod 2\\right\\}</m>.</p>\n\n                <p><latex/> <c>\\vert</c>, <c>\\Vert</c>, <c>\\lvert</c>, <c>\\rvert</c>, <c>\\lVert</c>, <c>\\rVert</c> are the delimiters, where <c>l</c> and <c>r</c> refer to left and right, and the capitalized versions are a pair of vertical lines.  The qualifiers <c>\\left</c> and <c>\\right</c> can be used to have the length of the bar grow to match what it encloses.   Note that there is a <c>\\middle</c> that we have used above with <c>\\vert</c> for the set <m>E</m>, and we have added space on either side.  <c>\\mid</c> and <c>\\parallel</c> are relations, used above to indicate divisibility and parallel lines, and so automatically get an extra bit of spacing on either side.</p>\n\n                <p>When using <c>\\left</c> or <c>\\right</c> in isolation, <c>\\left.</c> or <c>\\right.</c> can be used to define a group that only has a bar on one end.  For example:<md>\n                    <mrow>\\int_0^1\\,\\sin^{-1}(x)\\,dx = \\left.\\frac{1}{\\sqrt{1-x^2}}\\right\\rvert_{x=0}^{x=1}</mrow>\n                </md>.</p>\n            </subsubsection>\n\n            <subsubsection>\n                <title>Times</title>\n\n                <p>The <q>times</q> symbol sees many uses that are different: dimensions, multiplication, and more complicated products (such as a Cartesian product of two sets).  Macros <c>\\product</c>, <c>\\times</c>, and <c>by</c> could carry different meanings, even if each one is defined by the <c>\\times</c> symbol, <m>\\times</m>.  For example:</p>\n\n                <pre>\n                Chess is played on an &lt;m&gt;8 \\by 8&lt;/m&gt; grid, which\n                contains &lt;m&gt;8 \\times 8 = 64&lt;/m&gt; little squares.\n                </pre>\n\n                <pre>\n                If &lt;m&gt;G&lt;/m&gt; and &lt;m&gt;H&lt;/m&gt; are finite groups, then\n                &lt;m&gt;\\card(G \\product H) = \\card(G) \\times \\card(H)&lt;/m&gt;.\n                </pre>\n            </subsubsection>\n        </subsection>\n\n        <subsection xml:id=\"punctuation-display-math\">\n            <title>Punctuation After Display Math</title>\n\n            <p>If a chunk of displayed math concludes a sentence, then the sentence-ending punctuation should appear at the conclusion of the display.  (And certainly not at the start of the first line after the display!)  But do not author the punctuation within the mathematics element, put it afterwards, where it logically belongs.</p>\n\n            <p>More specifically, place a sentence-ending period (say) <em>immediately</em> after the closing of an <tag>md</tag> element. <pretext /> will place the period in your output in the right place and in the right way.  (By using <latex />'s <c>\\text{}</c> macro, if you are curious to know the details.)  Here is an example.  The <init>XML</init> source<cd>\n                <cline>&lt;md&gt;</cline>\n                <cline>    &lt;mrow&gt;(a+b)^2&lt;/mrow&gt;</cline>\n                <cline>&lt;/md&gt;.  Now...</cline>\n            </cd>will render as<md>\n                <mrow>(a+b)^2</mrow>\n            </md>.  Now<ellipsis /></p>\n\n            <p>This all applies more generally to clause-ending punctuation, such as a comma.  Take notice of the requirement that the punctuation must be <em>immediately</em> after the closing tag of the math element, otherwise it will not migrate properly.  For example, do not interrupt the flow with whitespace, or an <init>XML</init> comment, or anything else.</p>\n\n            <p>For inline mathematics (the <tag>m</tag> element) the same authoring principle holds, though you would likely do this naturally.  Author the punctuation <em>outside</em> the element, where it will remain.</p>\n\n            <p>Here is a technical subtlety that will demonstrate some of the inner machinery of <pretext /> and our conversions.  In your work, locate a theorem that has some numbered display mathematics (<c>md</c>) which is at the end of a sentence, and which you have authored as described above.  In <init>HTML</init> output, test a cross-reference (<c>xref</c>) to the theorem and you will see the period for the end of the sentence at the end of the display, where it should be.  Now test a cross-reference (<c>xref</c>) to one of the numbered equations.  First, the knowl will contain the entire display, to provide context, but it also will not contain the period, since the rest of the sentence is not in the knowl and so the period is not necessary.</p>\n\n            <note xml:id=\"authoring-math-punctuation\">\n                <title>Authoring Punctuation after Mathematics</title>\n\n                <p><em>Always</em> follow the instructions in <xref ref=\"punctuation-display-math\"/> about placing all punctuation following mathematics <em>after</em> the math element, not inside it.  <pretext/> will do the right thing for display math for you.  But furthermore, there are some special situations where the output format is not visual, such as braille or audio, where the placement of the punctuation is both different and important to not confuse <q>reader.</q>  You can help ensure your various outputs are of the highest quality by observing these sorts of details.</p>\n            </note>\n        </subsection>\n\n        <subsection xml:id=\"math-list-items\">\n            <title>Lists of Mathematical Expressions</title>\n\n            <p>It is common to make lists of expressions, equations, or identities.  Think of the definitions of trigonometric functions, a collection of antiderivatives, or a compendium of generating functions.</p>\n\n            <p>In these situations, author a list item, <tag>li</tag>, within an <tag>ol</tag> or <tag>ul</tag>, by using <em>only</em> the necessary <tag>m</tag> element.  Do not use an intervening <tag>p</tag>, and do not include any adjacent text.  Whitespace is OK.  Then <pretext/> will add <latex/>'s <c>\\displaystyle</c> command to improve the visual appearance of the mathematics, and so you do not need to.</p>\n\n            <p>If you prefer to not have this behavior, insert an intervening <tag>p</tag>, and output will be identical, but without the <c>\\displaystyle</c>.</p>\n\n            <p>Note that <em>any</em> text, other than whitespace, outside the <tag>m</tag> tag will disable this feature, <em>including punctuation</em>. However, according to the <pubtitle>Chicago Manual of Style</pubtitle> <xref ref=\"cmos\" detail=\"6.127\"/>, <q>Items carry no closing punctuation unless they consist of complete sentences.</q> So that comma at the end of your equation probably doesn't belong there anyway.</p>\n        </subsection>\n\n        <subsection xml:id=\"mathematics-latex-packages\">\n            <title><latex/> Packages, MathJax Extensions</title>\n            <idx>LaTeX packages</idx>\n            <idx>MathJax extensions</idx>\n            <idx><h>extensions</h><h>MathJax</h></idx>\n            <idx><h>packages</h><h>LaTeX</h></idx>\n\n            <p><latex/>, which we use as the syntax for mathematics, allows extensive customization through <term>packages</term>, which are enabled through a <c>\\usepackage{}</c> macro.  Packages also provide extensive customization or control over the document structure.  Thus, <pretext/> provides support for additional packages <em>to enhance mathematical content</em>, but does not have any facility beyond this (e.g. to influence or support document structure).</p>\n\n            <p>We use <latex/> to create <init>PDF</init> and print output.  For most other electronic formats, we use MathJax to embed mathematics onto a web page or to make images of mathematics used in EPUB, and so on.  MathJax has <term>extensions</term>, which mimic certain <latex/> packages.  For a list of supported extensions see MathJax's <url href=\"https://docs.mathjax.org/en/latest/input/tex/extensions/index.html\">TeX/LaTeX Extension List</url>.  Note that some of these extensions are technical (not supporting mathematical syntax) and some we load already as part of setting up MathJax, so carefully evaluate how a given package is selected to support certain macros.</p>\n\n            <p>Suppose there is a <latex/> math-mode macro you would like to use.  We will illustrate with the <c>\\cancelto</c> macro that is part of the fairly standard <url href=\"https://ctan.org/pkg/cancel\"><c>cancel</c></url> package.  It will draw an arrow through a mathematical formula, with a replacement value.  Conveniently, MathJax has a <c>cancel</c> extension, and this extension <em>also</em> defines the <c>\\cancelto</c> macro.  You need to check this, as a <latex/> package and a MathJax extension are not guaranteed to define the same collection of macros.  Nor are the two guaranteed to have the same name (though this is best practice).</p>\n\n            <p>To make the <c>\\cancelto</c> macro available and active in your mathematical elements (<tag>m</tag> or <tag>md</tag>) add the following to your <tag>docinfo</tag> element:\n            <cd>\n                <cline>&lt;math-package latex-name=\"cancel\" mathjax-name=\"cancel\"/&gt;</cline>\n            </cd>Now you may freely use the <c>\\cancelto</c> macro in your mathematics, confident that it will render correctly in all output formats.</p>\n\n            <p>Note that both attributes <attr>latex-name</attr> and <attr>mathjax-name</attr> must be present.  They may be identical (as above, and typical) or they may be different (rare).  There are situations where one might be empty.  Of course, you can use these macros in other definitions of mathematics macros you might make (<xref ref=\"mathematics-macros\"/>).  However, we do not guarantee the absence of conflicts with other packages in use, even if employed by <pretext/>.  Nor do we support debugging such conflicts.</p>\n\n            <p>If there are <latex/> macros you desire, but without a MathJax implementation, then there is not much we can do, short of suggesting you write your own extension (not recommended, see <url href=\"https://docs.mathjax.org/en/latest/web/webpack.html#custom-extension\">A Custom Extension</url>).  There are some workarounds which we may document shortly.</p>\n        </subsection>\n\n        <subsection>\n            <title>Mathematics in Titles</title>\n\n            <p>Titles are a key feature of <pretext/>, and migrate to various places in different conversions, where they might be mixed with bold text, or where they do not render properly.  Please report any substandard situations.  A good example of this phenomenon is mathematics in division titles, where we provide a <tag>plaintitle</tag> alternate.  See <xref ref=\"topic-title\"/> for a complete discussion.</p>\n        </subsection>\n\n        <subsection>\n            <title>Extras</title>\n\n            <p>We were once in the business of supporting <q>extra</q> macros for mathematics, but have discontinued that practice (in a mostly backward-compatible way).</p>\n\n            <p>We are moving away from built-in automatic support for the <c>\\sfrac{}{}</c> macro.  As of 2023-10-18 you may use this macro, but results will just look like regular inline fractions.  However, you can get superior typesetting in <init>PDF</init> output by loading the <c>xfrac</c> <latex/> package with the following in <tag>docinfo</tag>:<cd>\n                <cline>&lt;math-package latex-name=\"xfrac\" mathjax-name=\"\"/&gt;</cline>\n            </cd>See the <xref ref=\"mathematics-latex-packages\"/> for more details.</p>\n\n            <p>Historically, we provided good internal support for the <latex/> <c>extpfeil</c> package of extensible arrows, even though the <latex/> version has some severe shortcomings.  As of 2023-10-19, it is now an author's responsibility to <em>elect</em> this package, along with the reliable MathJax extension of the same name.  And as of 2026-03-04 we have removed all attempts at backward-compatibility.  Add to <tag>docinfo</tag>:<cd>\n                <cline>&lt;math-package latex-name=\"extpfeil\" mathjax-name=\"extpfeil\"/&gt;</cline>\n            </cd>See the <xref ref=\"mathematics-latex-packages\"/> for more details.  Note that this package can have several adverse impacts on the conversion to <init>PDF</init> via <latex/>.</p>\n        </subsection>\n\n        <subsection xml:id=\"mathematics-notes\">\n            <title>Notes</title>\n\n            <p>As mentioned at the start of this section, your use of <latex/> needs to also be supported by MathJax so that it may be rendered as part of an <init>HTML</init> page displayed in a web broswer.  In addition to the information at the start of <xref ref=\"topic-mathematics\"/>, this subsection has some notes that may help you navigate this situation.<ol>\n                <li>Generally, MathJax supports commands available in the <c>amsmath</c> package.</li>\n                <li>You can construct, and use, your own macros, <em>but only for mathematics</em>, not for document structure or document management.  See <xref ref=\"mathematics-macros\"/>.</li>\n                <li>Support for loading <q>extra</q> packages is extremely limited.  See <xref ref=\"mathematics-latex-packages\"/>.</li>\n                <li>The <c>\\matrix{}</c> command, and its friends (such as <c>\\pmatrix{}</c>) are not supported by <latex/>, despite being recognized by MathJax.  So use environments like <c>\\begin{matrix}</c> and <c>\\begin{pmatrix}</c> (with their corresponding <c>\\end{}</c>, of course) and you will get accurate results for both formats.</li>\n            </ol></p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-mathematics-practices\">\n        <title>Mathematics Best Practices</title>\n        <idx><h>mathematics</h><h>best practices</h></idx>\n\n        <p>This section addresses some finer points of authoring mathematics with <latex/>, motivated in large part by helping MathJax create the most accessible output possible, which in many instances will also create a superior typographical result across all conversions.  We try to provide justification and explanation, though that might not be easy in all cases.   Some are definitely technical, and we are only aware of them from authors' experience and reports.  Many are meant to help in the conversion to braille.  This is an incomplete list so additional reports and additions are welcome.</p>\n\n        <paragraphs>\n            <title>Large Numbers</title>\n            <p>Using a separator to aid in reading a large number should avoid using a space as a separator.  So <m>234{,}766{,}544</m> or <m>234.766.544</m> is preferable to <m>234\\,766\\,544</m>.  We have used braces around the commas in the first instance, and a <latex/> <q>thin space</q>, <c> \\, </c>, in the last instance.) For <m>234{,}766{,}544</m>, braces around each comma prevents automatic trailing space that would normally be desirable in a list of numbers.  In other words, author as:<cd>\n                <cline>&lt;m&gt;234{,}766{,}544&lt;/m&gt;</cline>\n            </cd>Here is the version with commas and no effort to distinguish the big number from a list of smaller numbers: <m>234,766,544</m>.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Ratios</title>\n            <p>If you really intend to communicate a ratio with a colon, keep it super-simple, like <c>3:2</c> or <c>a:b</c>.  Do not wrap it in parentheses or other decorations, since then the colon will be communicated literally in braille.  For example, the index of a subgroup, <c>[G:H]</c>, will not be confused with a ratio, due to the brackets.  But <c>(4:5)</c> will not be output in a conversion to braille in a way that communicates that it is a ratio.  If you keep your ratios simple, braille output will use special syntax designed for ratios.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Function and Operator Names</title>\n            <!-- https://tex.stackexchange.com/questions/84302/what-is-the-difference-of-mathop-operatorname-and-declaremathoperator -->\n\n            <p>Common mathematical functions, like <m>\\sin</m> (<c>\\sin</c>) and <m>\\det</m> (<c>\\det</c>), are built into <latex/>, well-known, and commonly used.  Compare with the versions authored as simple sequences of letters <m>sin</m> and <m>det</m>, which <latex/> interprets (and typesets) as a product of three individual variables.</p>\n\n            <p>Instead, use the <latex/> <c>\\DeclareMathOperator</c> macro as we will illustrate.  Suppose you want to discuss the set of homomorphisms from the vector space <m>U</m> to the vector space <m>V</m>, <m>\\Hom{U}{V}</m>.  Define the macros\n            <cd>\n                <cline>\\DeclareMathOperator{\\homop}{Hom}</cline>\n                <cline>\\newcommand{\\Hom}[2]{\\homop\\left(#1,\\,#2\\right)}</cline>\n            </cd> and employ as <c>\\Hom{U}{V}</c>, which yields <m>\\Hom{U}{V}</m>.  Compare with the no-macro, no-special-care, version, <m>Hom(U,V)</m>.  Grouping <c>Hom</c> as a unit will prevent <latex/> from rendering it as a product of three variables, use the correct font, and will preserve the meaning in Nemeth braille.  Notice that the <c>\\homop</c> macro is never used in your source.</p>\n\n            <p>Directly contradicting this general advice, Sean Fitzpatrick reports on 2021-01-06 that the <latex/> macro construction\n                <cd>\\newcommand{\\foo}{\\operatorname{foo}}</cd>\n            behaves better in Asymptote diagrams than\n                <cd>\\DeclareMathOperator{\\foo}{foo}</cd>\n            So perhaps you need to define a second macro for use in Asymptote diagrams.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Permutations in Cycle Notation</title>\n\n            <p>The permutation in cycle notation, <m>(1246)(35)</m>, is difficult to distinguish from a product of two integers and gets entirely different treatment than intended as Nemeth braille.  And when the points of the permutation group involve multiple digits, some other notation will become necessary anyway.  Commas work, as in <m>(1,2,4,6)(3,5)</m>.  Or if commas look too cluttered, then spaces are possible, as in <m>(1\\;2\\;4\\;6)(3\\;5)</m>, where we have used the <latex/> medium space, <c> \\; </c>.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Text in Math</title>\n\n            <p>We have discussed this one already, but it is important for a conversion to braille.  If you use a word inside of math, such as describing a condition for membership in a set, put any spaces inside of a <c>\\text{}</c> macro, not on either side of it.  So <c>\\text{ and }</c> is preferable to <c>\\ \\text{and}\\ </c>.  Similarly, do not put any math inside a <c>\\text{}</c> macro.  For example,<cd>\n                <cline>\\text{ for -3 \\lt  x \\lt  -2 }</cline>\n            </cd>will lead to poor results due to the inequalties mixed in with the text.  A better version would be<cd>\n                <cline>\\text{ for }-3 \\lt  x \\lt  -2</cline>\n            </cd>and now the numbers will be treated as mathematics.  Review <xref ref=\"text-in-mathematics\"/> for more details.</p>\n       </paragraphs>\n\n        <paragraphs>\n            <title>Math as Text</title>\n\n            <p>Do not use symbols from mathematics in non-mathematical situations such as the <latex/> construction <c>73^\\circ</c> to indicate a temperature in degrees, outside of a mathematical or scientific setting, such as in a <tag>poem</tag> about springtime weather.  In this particular case, we provide a <tage>degree</tage> element that can be used in non-mathematical contexts, so we can get 73<degree/>, which will behave well in a variety of conversions (and can also be used for latitude and longitude in your poem).  Similarly, we advocate writing ordinal numbers with text on the baseline, rather than a <latex/> construction like <c>2^\\mathrm{nd}</c>.  So use 1st, 2nd, 3rd, 4th, etc.</p>\n\n        </paragraphs>\n\n        <paragraphs>\n            <title>Avoid Nesting</title>\n            <p>It may seem  convenient to nest custom macro definitions. For example:\n                <cd>\n                    <cline>\\newcommand{\\makered}[1]{{\\color{red}{#1}}}</cline>\n                    <cline>\\newcommand{\\MAKERED}[1]{\\textbf{\\makered{#1}}}</cline>\n                </cd>\n            The second macro definition uses the first macro. At least one <pretext/> conversion isolates macro defintions for use only on an as-needed basis. So here, if the author used <c>\\MAKERED</c> without also using <c>\\makered</c> close nearby, it would lead to an issue under that conversion, because <c>\\makered</c> would be locally undefined. So we recommend defining each macro from the ground up. In this case:\n                <cd>\n                    <cline>\\newcommand{\\MAKERED}[1]{\\textbf{\\color{red}{#1}}}</cline>\n                </cd>\n            This also contradicts our advice above on operator names.</p>\n        </paragraphs>\n    </section>\n\n    <section xml:id=\"topic-lists\">\n        <title>Lists</title>\n        <idx>list</idx>\n        <idx><h>list</h><h>label</h></idx>\n\n        <introduction>\n            <p>A <term>list</term> is an unusual construction, even if everybody knows exactly what one is.  We view the list itself as a container of various chunks of text, while those chunks of text are the <term>list items</term>.  Each item has a <term>marker</term> to identify it.</p>\n\n            <p>Markup and processing is complicated by the possibility of a list item containing a list, resulting in <term>nested lists</term>.  We simplify this problem by <em>requiring</em> that a list appear within a paragraph (<tag>p</tag>), see <xref ref=\"topic-structure-in-paragraph\"/>.  One of the three exceptions is the possibility to place a list into a block that earns a caption and a number, using the <tag>list</tag> element, see <xref ref=\"topic-named-list\"/>.</p>\n\n            <p>The final subsection contains some examples that you may wish to consult as you read this section.</p>\n        </introduction>\n\n        <subsection>\n            <title>Ordered, Unordered, Description Lists</title>\n\n            <p>An <term>ordered list</term> has items with markers that are naturally ordered (usually numerically or alphabetically).  We borrow from <init>HTML</init>, and use the <tag>ol</tag> tag to construct an ordered list.  Some commentators suggest an ordered list should only be used when the order of the content is important.  So the steps in a recipe would belong in an ordered list, but the shopping list when you go to the store need not be an ordered list.</p>\n\n            <p>An <term>unordered list</term> has items with markers that have no inherent order and so are usually symbols like circles, disks, squares, <etc/>  We borrow from <init>HTML</init>, and use the <tag>ul</tag> tag to construct an unordered list.</p>\n\n            <p>A <term>description</term> list has items that have <em>short</em> pieces of text as their markers.  We borrow from <init>HTML</init>, and use the <tag>dl</tag> tag to construct a description list. However, unlike the <init>HTML</init> <tag>dl</tag>, the items in a description list are tagged with <tag>li</tag>. A <tag>title</tag> element within each <tag>li</tag> provides the term to be described (the <tag>dt</tag> in <init>HTML</init> terms) and the remaining elemens of the <tag>li</tag> provides the description (the <tag>dd</tag> in <init>HTML</init>.)</p>\n\n            <p>Ordered lists are used as part of <tag>objectives</tag> (<xref provisional=\"topic-objectives\" />) and exercises (<xref ref=\"topic-exercises-solutions\" />).  Any of the three lists may occur inside the <tag>list</tag> element (below, <xref ref=\"topic-named-list\" />).  Otherwise, a list must occur within a paragraph, <tag>p</tag>.  This means that to place a list within a list item of another list, the list item must contain a paragraph.</p>\n        </subsection>\n\n        <subsection>\n            <title>List Markers</title>\n\n            <p>Do nothing, and your ordered and unordered lists will get sensible default markers.  They are consistent in the following sense.  If your list has two items, and each of the two items contains a list, then these two lists will use the same type of marker.</p>\n\n            <p>For a description list, you author each marker as part of each list item, as discussed below in the discussion of list items.</p>\n\n            <p>If you want to change how an ordered list is marked, then you use the <attr>marker</attr> attribute on the <tag>ol</tag>, whose value is a <term>format code</term>.  This string contains one of five codes (a single character), which may be surrounded by other characters, excluding the five codes.  For example <c>marker=\"(A)\"</c> will produce uppercase letters wrapped in parentheses:  (A), (B), (C), <ellipsis />.  The extra formatting works well in a conversion to <latex/>, but is not possible technically in a conversion to <init>HTML</init>, so it should be considered decorative, and not relied upon for meaning.  The formatting does not carry through to the numbers of list items in cross-references.</p>\n\n            <p>If you want to change how an unordered list is marked, then you use the <attr>marker</attr> attribute on the <tag>ul</tag>, whose value is a <term>format code</term>.  This string contains one of three codes in the table below.  Then every item of the list will have that symbol as its marker.</p>\n\n            <sidebyside>\n                <table>\n                    <title>Ordered List Markers</title>\n                    <tabular>\n                        <row><cell>Code</cell><cell>Realization</cell></row>\n                        <row><cell>1</cell><cell>Arabic numerals</cell></row>\n                        <row><cell>a</cell><cell>Lowercase letters</cell></row>\n                        <row><cell>i</cell><cell>Lowercase Roman numerals</cell></row>\n                        <row><cell>A</cell><cell>Uppercase letters</cell></row>\n                        <row><cell>I</cell><cell>Uppercase Roman numerals</cell></row>\n                        <row><cell>0</cell><cell>Arabic numerals, from zero</cell></row>\n                    </tabular>\n                </table>\n                <table>\n                    <title>Unordered List Markers</title>\n                    <tabular>\n                        <row><cell>Code</cell><cell>Realization</cell></row>\n                        <row><cell>disc</cell><cell>Filled small circle, aka a bullet</cell></row>\n                        <row><cell>circle</cell><cell>Small circle</cell></row>\n                        <row><cell>square</cell><cell>A square</cell></row>\n                    </tabular>\n                </table>\n            </sidebyside>\n\n            <p>Default marker types are assigned to each level of nested lists in the order shown in the table, and cycle back to the top of the table if necessary, though zero-based Arabic numerals will be skipped for ordered lists.</p>\n\n            <p>Start with the defaults, and experiment as needed.  See the examples below for some extreme (and unwise) customizations of markers.</p>\n\n            <p>For a description list, possible markers are more varied than what you can express within an attribute.  So the list item must have a <tag>title</tag> element (see below).  This should be very short text, and may contain inline mathematics.  It is often rendered in bold, so be aware that some markup may get lost.  Perhaps for obvious reasons, do not include footnotes, cross-references, or display mathematics.  The <tag>dl</tag> element has a <attr>width</attr> attribute, with possible values <c>narrow</c>, <c>medium</c>, and <c>wide</c>.  The default is <c>narrow</c>.  This is a <em>hint</em> about how much text you have in these markers, and in certain presentations may make better use of horizontal space on a page.</p>\n        </subsection>\n\n        <subsection>\n            <title>List Items</title>\n\n            <p>So now you have a list all organized as a container.  What do you put in it?  List items, using the <tag>li</tag> tag, again borrowed from <init>HTML</init>, and independent of the type of list.</p>\n\n            <p>A list item could be really simple, maybe just one or two words.  Then you can use, and conceptualize, an <tag>li</tag> element as not much different from a <tag>p</tag> element, and the rules about content are not much different.  Even several full sentences, with some intermediate displayed mathematics, is fine.</p>\n\n            <p>But once you want two paragraphs in a list item, then you need to structure the contents of the item.  So a list item might have five paragraphs in it, requiring five <tag>p</tag> elements.  Notice that this is how you nest lists.  Make a list item, include a paragraph, then put the subsidiary list into the paragraph.  Indeed, this is the only way to nest lists.  A consequence of this is that the only way to have an unstructured list item is if it is a terminal item, like the leaf of a tree.</p>\n\n            <p>Other items may be interspersed among the paragraphs of a list item, such as a chunk of verbatim text delimited by a <tag>pre</tag> tag.  But anything with a number, such as a <tag>figure</tag> or <tag>remark</tag> is banned, in part because the consequences for numbering and organization become too complicated.  Imagine a remark, and a paragraph of the remark has a list.  Fine so far.  But if the items of that list can again contain remarks, the possibilities become endless.  You should be able to include non-textual items, like an <tag>image</tag>, and work is underway to improve this.  You can use a <tag>sidebyside</tag> in a structured list item, which can in turn hold an <tag>image</tag>, <tag>tabular</tag>, or similar.  But you cannot place items in such a <tag>sidebyside</tag> that are numbered, so a <tag>figure</tag> or <tag>table</tag> is not possible.  A general rule is no numbered components in a list item.  Computational components, such as <tag>sage</tag> are also banned from list items due to the difficulty of converting them into electronic computational notebooks with a relatively flat structure.</p>\n\n            <p>A list item of a description list must have a <tag>title</tag> element, to provide the text of the marker.  Now that the list item has some structure, the remainder must also be structured, typically with some paragraphs, as discussed above.  In other words, the earlier option of employing an <tag>li</tag> element just like a <tag>p</tag> element is not available in a description list.  Further, given the complexity of presenting a description list, it can <em>only be a top-level list</em>.  It can contain the two other types nested within its list items.</p>\n\n            <p>For ordered and unordered lists, you may optionally include a <tag>title</tag> when you have structured the <tag>li</tag>.  This will be rendered as a heading of sorts for the list item, though the only distinction might be a change to an italic or oblique font.  As an example, this might be a good way to author a Frequently Asked Questions (<init>FAQ</init>).</p>\n\n            <p>Note that a list item holding <em>only</em> an <tag>m</tag> element will get special treatment.  See <xref ref=\"math-list-items\"/>.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-list-item-target\">\n            <title>Cross-References to List Content</title>\n\n            <p>Note that a list is a container, so it cannot be the target of a cross-reference, and so the three types of lists cannot have an <attr>xml:id</attr> attribute.  But you may well be able to point at some other structure (<eg />, a <tag>remark</tag>) with a paragraph containing a list of interest.  If this seems overly restrictive, read below about named lists.</p>\n\n            <p>By contrast, a list item, <tag>li</tag>, is not a container, and does contain content.  Further, a list item of an ordered list has a marker that is natural text for a cross-reference.  So in this situation, the list item can have an <attr>xml:id</attr> attribute.  But note that the <q>number</q> of a list item of an ordered list, which is nested inside a list item of an unordered list, is not defined, so a cross-reference by number can fail.</p>\n\n            <p>The <q>number</q> of a list item, mostly for the purposes of a cross-reference, is the concatenation of all of the individual markers in the containing lists, outermost first.  For example, from the example lists below, the list item with content <q>Walleye</q> has number <xref ref=\"walleye\" text=\"local\" />.  These are indivisible, there is no way to get a component, excepting leading subsequences obtained by using an <attr>xml:id</attr> on a containing list item.  Note that the format codes never become part of the number.</p>\n        </subsection>\n\n        <subsection>\n            <title>Lists in Columns</title>\n            <idx><h>list</h><h>columns</h></idx>\n\n            <p>You can control the number of columns used to layout an ordered or unordered list (but not a description list).  On the <tag>ol</tag> or <tag>ul</tag> use a <attr>cols</attr> attribute with values <c>2</c> through <c>6</c>.  (<c>1</c> is the default.)</p>\n\n            <p>We do not yet (2018-03-28) have enough technical confidence to allow an author to specify a row-major order versus a column-major order for the layout.  So understand that this is can be an implementation choice for a particular conversion, and can vary across implementations.  If this is critical to conveying <em>meaning</em>, and not an aesthetic preference, then maybe consider using a <tag>table</tag> or <tag>tabular</tag> (<xref ref=\"topic-tabular\" />).</p>\n\n            <note>\n                <title>Use Only a Few Columns for Lists</title>\n\n                <p>Anything more than three columns tends to get very crowded horizontally.  Think twice about using more than that, and realize that six columns should be a ridiculously generous upper limit, and not a promise of good behavior in final output.</p>\n            </note>\n        </subsection>\n\n        <subsection>\n            <title>Exceptional Lists</title>\n\n            <p>We use the tags for lists in a few situations outside of anonymous lists inside paragraphs and named lists.  These include the items within an objectives, subparts of an exercise, and within panels of a side-by-side.  See those topics to learn about subtle differences in use.</p>\n        </subsection>\n\n        <subsection>\n            <title>Examples of Lists</title>\n\n                <p>To illustrate this section, we offer three too-elaborate examples.  Take these as compact examples of what is possible, and not best practice in your writing.  We also use these to illustrate cross-references to list items, see <xref ref=\"topic-cross-reference-list-item\" />.</p>\n\n                <p>We have a paragraph that begins with anonymous list of species that live in water (maybe partially), which necessarily is placed inside a paragraph.  The roman numerals purposely do not have any extra adornment in the <latex /> version (but may for <init>HTML</init> output).\n                <ol marker=\"1)\">\n                    <li>\n                        <p>Amphibians\n                            <ol marker=\"a.\">\n                                <li>Frog</li>\n                                <li>Salamander</li>\n                                <li>Newt</li>\n                                <li>Toad</li>\n                            </ol>\n                        </p>\n                    </li>\n                    <li>\n                        <p>Freshwater Sport Fish\n                            <ol marker=\"I\">\n                                <li xml:id=\"walleye\">Walleye</li>\n                                <li>Bass</li>\n                                <li xml:id=\"anon-list-target\">\n                                    <title>Exquisite Fish</title>\n                                    <p>Trout</p>\n                                </li>\n                            </ol>\n                        </p>\n                    </li>\n                    <li>\n                        <p>Saltwater Sport Fish\n                            <ol marker=\"(A)\">\n                                <li>Salmon</li>\n                                <li>Halibut</li>\n                                <li>Marlin</li>\n                            </ol>\n                        </p>\n                    </li>\n                </ol>\n                Within the same paragraph, we transition to an unordered, two-column, list of some germs:\n                <ul cols=\"2\">\n                    <li>\n                        <p>Bacteria\n                            <ul>\n                                <li><taxon>Staphylococci</taxon></li>\n                                <li><taxon>Streptococci</taxon></li>\n                                <li><taxon>Salmonella</taxon></li>\n                            </ul>\n                        </p>\n                    </li>\n                    <li>\n                        <p>Viruses\n                            <ul>\n                                <li><taxon>Varicellovirus</taxon></li>\n                                <li><taxon>Orthopoxvirus</taxon></li>\n                            </ul>\n                        </p>\n                    </li>\n                </ul>\n                This sentence concludes our (small) paragraph on small and large organisms.</p>\n\n                <p>A named list, only to test cross-references.</p>\n\n                <list xml:id=\"named-list\">\n                    <title>A two-deep ordered list</title>\n                    <ol marker=\"A:\">\n                        <li>\n                            <p>\n                                <ol marker=\"i.\">\n                                    <li>A and i</li>\n                                    <li>A and ii</li>\n                                </ol>\n                            </p>\n                        </li>\n                        <li>\n                            <p>\n                                <ol marker=\"(a)\">\n                                    <li>B and a</li>\n                                    <li>B and b</li>\n                                    <li xml:id=\"named-list-target\">\n                                        <title>A Test Title</title>\n                                        <p>B and c</p>\n                                    </li>\n                                </ol>\n                            </p>\n                        </li>\n                        <li>\n                            <p>\n                                <ol marker=\"&lt;I&gt;\">\n                                    <li>C and I</li>\n                                    <li>C and II</li>\n                                    <li>C and III</li>\n                                </ol>\n                            </p>\n                        </li>\n                    </ol>\n                </list>\n\n                <p>An example of a description list, anonymously in a paragraph.\n                <dl width=\"narrow\">\n                    <li>\n                        <title>Red</title>\n                        <p>The color of the sun at sunset.</p>\n                    </li>\n                    <li>\n                        <title>Blue</title>\n                        <p>The color of a clear sky.</p>\n                    </li>\n                    <li>\n                        <title>Aqua</title>\n                        <p>The color of shallow tropical waters.</p>\n                    </li>\n                    <li xml:id=\"description-list-math-title\">\n                        <title><m>x^2 + y^2</m></title>\n                        <p>Definitely not a color</p>\n                    </li>\n                </dl></p>\n        </subsection>\n\n        <conclusion>\n            <remark>\n                <title>Best Practice</title>\n\n                <p>Lists are a very attractive device.  Hopefully the discussion above has convinced you that they are more complicated than they first appear.  Think carefully before using one, and consider if some other structure (<tag>paragraphs</tag>, <tag>sidebyside</tag>, a subdivision) might do a better job of organizing and communicating your meaning.  And if a list is really necessary, consider if it should be named or anonymous, heavily-nested or nearly-flat, with columns, or with long or short content in the items.  Cross-references <em>from</em> the items of a list <em>to</em> more complicated structures is another device that works well.</p>\n            </remark>\n        </conclusion>\n\n    </section>\n\n    <section xml:id=\"topic-interactive-exercises\">\n        <title>Interactive Exercises</title>\n        <idx>interactive exercises</idx>\n        <idx><h>exercise</h><h>interactive</h></idx>\n\n        <introduction>\n            <p><pretext/> has markup for a variety of interactive problem types, described individually in the subsections to follow.  Generally, for a regular <init>HTML</init> build (<xref ref=\"online-html\"/>), these will be interactive, informing the reader when their answer is correct, and providing feedback when their answer is not correct.  When <init>HTML</init> is built to host on a Runestone server (<xref ref=\"runestone\"/>), then student progress as part of a course will be recorded on the server.  Some features, which will be noted below, such as execution of computer code, is more capable on a Runestone server.</p>\n\n            <p>Generally, an interactive exercise is authored much like a <q>regular</q> <tag>exercise</tag> (<xref ref=\"overview-exercises\"/>) with <tag>statement</tag>, <tag>hint</tag>, <tag>answer</tag>, <tag>solution</tag>.  However, there is also some additional markup which serves as a <term>signal</term> that the exercise is more than a short-answer, or free-response, question.  Usually, but not always, this signal is an additional element following <tag>statement</tag>.  One consequence of this is that all but one type of interactive exercise will require a <tag>statement</tag> element to contain the question text.</p>\n\n            <p>Each type of interactive question has a <term>static</term> version for use in output formats like print, <init>PDF</init>, or braille.  Details are given below.  Note that since the ability for instant evaluation of a reader's answer means an author provides the solution and other feedback, this can then be incorporated into a static version as an automatically-generated <tag>answer</tag> and/or <tag>solution</tag> (in addition to any others an author provides).  Note that an author can provide a <tag>hint</tag> for use in all output formats, but there are not any  automatically-generated <tag>hint</tag> for static versions of interactive problems.  Visibility of these solutions can be controlled via the mechanism applicable to all exercises, see <xref ref=\"exercise-component-visibility\"/>.</p>\n\n            <p>Note the opportunity to provide feeback to the reader using a <tag>feedback</tag> element in various locations.  These are generally optional, but highly encouraged as a way to improve the quality of your reader's experience.</p>\n\n            <p>These interactive questions are enabled by software from Runestone Academy (<xref ref=\"runestone\"/>) and have extra capabilities when the online version of our output is hosted on Runestone servers.  But you <em>must</em> use a <attr>label</attr> attribute.  This is described more carefully next, so that we can make reference to it from other locations.</p>\n\n            <note xml:id=\"best-practice-label\">\n                <title>Use <c>label</c> attribute for Runestone Components</title>\n\n                <p>Many of our interactive exercises and programming environments are powered by software from Runestone Academy (<xref ref=\"runestone\"/>).  Not suprisingly, when you build online <init>HTML</init> for hosting on Runestone servers these components have more features than otherwise.  This is managed by locating each component in a (massive) database.  And so each exercise needs an identifier.</p>\n\n                <p>You accomplish this by placing a unique value in a <attr>label</attr> attribute on an outermost element, such as an <tag>exercise</tag>, <tag>task</tag>, <tag>project</tag>, <tag>video</tag>, <tag>program</tag>, etc.  You should choose these strings carefully, as they should not be changed, lest the database entries become confused.  Under the hood, we get the content of <c>docinfo/document-id</c> element, and the <attr>edition</attr> attribute of <tag>document-id</tag>, to form a database identifier such as <c>AATA_2_easy-exercise</c>.  The <tag>document-id</tag> distinguishes your book from other books, and the edition allows you some flexibility.  In other words, if you declare a new edition, you can change some of your <attr>label</attr> as part of that process and you will get new database entries while preserving the old.</p>\n\n                <p>Short answer: <em>before</em> hosting your project on Runestone, decide on permanent values for <tag>document-id</tag>, <attr>edition</attr>, and all necessary <attr>label</attr>.  (We expect to add a warning for Runestone builds when these values are not set.)</p>\n            </note>\n        </introduction>\n\n        <subsection xml:id=\"true-false-exercises\">\n            <title>True/False Exercises</title>\n            <idx>true/false</idx>\n            <idx><h>interactive exercises</h><h>true/false</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>true/false</h></idx>\n\n            <p>A True/False exercise <em>must</em> have a <tag>statement</tag> element, and this element <em>must</em> have a <attr>correct</attr> attribute, whose value is <c>yes</c> or <c>no</c> (there is no default value).  That's it.  The presence of the <attr>correct</attr> attribute is the signal that this is a True/False exercise.</p>\n\n            <p>The text of the statement is the assertion the reader must determine is true or not.  The <attr>correct</attr> attribute is how an author describes if the statment is true (<c>yes</c>) or false (<c>no</c>).  This is enough information for a conversion to formulate a version of the question.  An optional <tag>feedback</tag> element may follow the <tag>statement</tag>, and should provide more than a binary explanation of the exercise.</p>\n\n            <p>Presentation as an interactive element will vary cosmetically, according to the output type targeted.</p>\n\n            <p>A static version gets an automatic <tag>answer</tag> that is simply <q>True</q> or <q>False</q>.  The automatic <tag>solution</tag> is the same, plus the content of <tag>feedback</tag>.</p>\n        </subsection>\n\n        <subsection xml:id=\"multiple-choice-exercises\">\n            <title>Multiple-Choice Exercises</title>\n            <idx>multiple-choice exercises</idx>\n            <idx><h>interactive exercises</h><h>multiple-choice</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>multiple-choice</h></idx>\n\n            <p>A multiple-choice exercise is signaled by a <tag>choices</tag> element (plural) following a <tag>statement</tag> and preceding an optional <tag>hint</tag>.  The <tag>choices</tag> element is structured by a sequence of <tag>choice</tag> elements, whose content is a potential answer for the reader to choose.  So the <tag>statement</tag> is the prompt or question, and the <tag>choice</tag> are the possible answers.</p>\n\n            <p>At least one <tag>choice</tag> has an attribute <attr>correct</attr> set to the value <c>yes</c>.  The default value of <attr>correct</attr> is <c>no</c>.  There may be several correct answers, indicated with this attribute.  The presentation as an exercise with one answer or many is automatic.  However, in the event there is exactly one correct answer, but you wish the reader to consider the possibility of multiple correct answers, you may set the <attr>multiple-correct</attr> attribute on the <tag>choices</tag> element to <c>yes</c>.  The default value is <c>no</c>.</p>\n\n            <p>Each <tag>choice</tag> element must be further structured with a <tag>statement</tag> and a <tag>feedback</tag>, which each can contain items such as paragraphs (<tag>p</tag>).  In this way, the highly-encouraged feedback can be associated with each correct and incorrect choice.</p>\n\n            <p>The order of the <tag>choice</tag> as authored, is the order they will be given in a static version.  To present the choices in different orders in an interactive version, set the <attr>randomize</attr> attribute on the <tag>choices</tag> element to <c>yes</c>.</p>\n\n            <p>An automatic <tag>answer</tag> for the static version is simply the list markers for the correct choices.  An automatic <tag>solution</tag> has an indication for each choice if it is correct or incorrect, along with the choice's feedback.</p>\n        </subsection>\n\n        <subsection xml:id=\"parsons-problems\">\n            <title>Parsons Problems</title>\n            <idx>Parsons problems</idx>\n            <idx><h>interactive exercises</h><h>Parsons problems</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>Parsons problems</h></idx>\n            <idx>mixed-up blocks exercises</idx>\n            <idx><h>interactive exercises</h><h>mixed-up blocks</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>mixed-up blocks</h></idx>\n\n            <p>Parsons problems are named for Dale Parsons, one of their creators, along with Patricia Haden.  They could also be called <term>mixed-up blocks</term>.  A reader is presented with a set of blocks containing text, either computer code or natural language, and their goal is to assemble the blocks into a correct order.  This could be a computer problem with a stated purpose, or could be a logical argument such as proof, or it could be a procedure such as a recipe.  An interactive drag-and-drip interface is a very efficient presentation for a reader.</p>\n\n            <p>Similar to multiple-choice exercises, a <tag>statement</tag> is followed by a <tag>blocks</tag> element containing a sequence of <tag>block</tag> elements.  The <tag>blocks</tag> element is the signal that this is a Parsons problem.  The overall <tag>exercise</tag> element may have several attributes:<ul>\n                <li><attr>numbered</attr> set to <c>left</c> or <c>right</c> indicates the blocks should be numbered, and on which side the numbers go.  The default value is <c>no</c>.</li>\n                <li><attr>language</attr> set to <c>natural</c> indicates the text of the blocks is natural language, while the use of a computer language should be indicated by naming the actual language employed.  A list of languages will soon be added in <xref ref=\"topic-program\"/>.  The default is <c>natural</c>.</li>\n                <li><attr>indentation</attr> set to <c>hide</c> indicates that a computer code exercise will not include indentation common to each line of a block.  In other words, the problem is slightly harder, as the interactive interface will require the reader to adjust the block horizontally to provide common indentation for the block.  The default is <c>show</c>.</li>\n                <li><attr>adaptive</attr> set to <c>yes</c> enables an adaptive mode: after three incorrect attempts, the problem will offer help. After continued failures, the problem will be incrementally simplified: distractors will be removed, one at a time. For coding problems, requirements for indentation may be removed.</li>\n            </ul></p>\n\n            <p>A <tag>block</tag> that has natural content is authored as usual, with a sequence of paragraphs (<tag>p</tag>) or similar.  If the content is a computer language, then it should be authored as a sequence of lines, using the <tag>cline</tag> element, which allows for precise interpretation of indentation and non-standard characters.  Include <em>all</em> indentation necessary for each line, no matter how <attr>indentation</attr> is set.  The content of the blocks, arranged properly, should form a syntactically correct program.  If the reader is to provide indentation, <pretext/> will strip away the common amount of indentation.</p>\n\n            <p>A block may be a <term>distractor</term>, meaning it is not to be used at all in the solution.  Indicate this with a <attr>correct</attr> attribute on the <tag>block</tag> set to <c>no</c> (the default being <c>yes</c>).  Furthermore, a given block of the solution can be authored with several alternatives, only one of which is correct.  Indicate this by structuring a <tag>block</tag> with a sequence of <tag>choice</tag>.  Each <tag>choice</tag> should be authored similarly to a <tag>block</tag>, and the one correct choice should have the <tag>correct</tag> attribute set to <c>yes</c> (the default being <c>no</c>).</p>\n\n            <p>The blocks should be authored in the correct order and the interactive interface will control the randomization.  A block that is a distractor may be placed in any location amidst the other blocks.  Each block should have an <tag>@order</tag> attribute that is a whole number, counting from 1.  This is the fixed, mixed-up, order that will be presented in any static rendition.  In static versions, sequences of blocks are in lists, which are numbered if the attribute has been set, but the left/right distinction is lost<mdash/>all numbers are to the left.  An automatic <tag>answer</tag> is provided if blocks are numbered, and it is just the block numbers in the correct order.  An automatic <tag>solution</tag> is always generated with the text of the blocks listed in the correct order.  For an exercise with computer code, the <pretext/> <tag>program</tag> element and the exercise's <attr>language</attr> attribute will produce a syntax-highlighted listing.</p>\n\n            <p>There is no provision for a <tag>feedback</tag> element.  Further explanation may be provided in a <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>.  Also, a good interactive interface can provide assistance to a reader by telling them if they have too few or too many blocks, or combining or removing blocks, and so on.</p>\n\n            <p>It is possible to specify a partial ordering of blocks using the <attr>name</attr> and <attr>depends</attr> attributes of <tag>block</tag>. <attr>name</attr> is used to assign the block a string identifier. <attr>depends</attr> should be a space-separated list of the <attr>name</attr> of each block that must precede the current block. The interactive version of the exercise will mark as correct any ordering of blocks that is valid according to the described dependencies. Static versions of the answer will only display the cannonical answer as determined by the order of the blocks in the source document.</p>\n\n            <p>If a Parsons problem that has a <attr>language</attr> set to a value that is valid for an activecode (<xref ref=\"interactive-program-activecode\"/>), it can be made runnable in interactive versions of the book - when the student completes the exercise, they can run the code they built. To do so, define a <tag>program</tag> element as a sibling to the <tag>blocks</tag>. The program can have all of the normal attributes for an activecode, but does not need the <attr>interactive</attr> attribute to be set. It should have an empty body as the student work will be used as its contents. If it is necessary to add additional code to the program, you can add either or both a <tag>program-preamble</tag> and <tag>program-postamble</tag> element as siblings to the <tag>program</tag>. The <tag>program-preamble</tag> will be placed before the student's code, and the <tag>program-postamble</tag> will be placed after the student's code. Both elements can have an <attr>indent</attr> with some text to use as the indentation for every line in the block; use this to align the added code to the expected format of a correct answer.</p>\n        </subsection>\n\n        <subsection xml:id=\"horizontal-parsons-problems\">\n            <title>Horizontal Parsons Problems</title>\n            <idx><h>Parsons problems</h><h>horizontal</h></idx>\n            <idx><h>interactive exercises</h><h>horizontal Parsons problems</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>horizontal Parsons problems</h></idx>\n            <idx><h>mixed-up blocks exercises</h><h>horizontal</h></idx>\n            <idx><h>interactive exercises</h><h>horizontal mixed-up blocks</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>horizontal mixed-up blocks</h></idx>\n\n            <p>A <term>horizontal Parsons problem</term> is very similar to the traditional <em>vertical</em> problems just described in <xref ref=\"parsons-problems\"/>.  Except they are horizontal.  Which means the blocks are very short (a word or symbol) and they are rearranged by the reader to form a horizontal bit of text.  They are ideal for constructing a single line of computer code, such as a regular expression, or a short sentence.  While similar, they have a few features which are different.</p>\n\n            <p>To indicate a horizontal problem, set the <attr>layout</attr> attribute on the <tag>blocks</tag> element to the value <c>horizontal</c>.  The default value is <c>vertical</c> and so is not necessary for the traditional versions.</p>\n\n            <p>The syntax for blocks is the same, and they are authored in an order that yields a correct answer.  The use of an <attr>order</attr> attribute on each <tag>block</tag> indicates a rearrangment to be used for a static version.  Blocks may be reused.  To do this, place an <attr>xml:id</attr> on a single instance of a block to be reused.  Then, to indicate its reuse as part of a correct version, use a <attr>ref</attr> attribute on a <tag>block</tag>.  Since the duplicate instance is not shown to the reader, the use of <attr>order</attr> and <attr>ref</attr> is mutually-exclusive.  You can set the <attr>reuse</attr> attribute on the <attr>blocks</attr> element to the value <c>yes</c> to force the interface to allow the reader to reuse blocks, even if there is no duplication in the correct version.  Otherwise, the interface reacts to the presence or absence of blocks with the <attr>ref</attr> attribute.</p>\n\n            <p>Distractors may be included in the same manner as for vertical Parsons problems, by setting the <attr>correct</attr> attribute on a <tag>block</tag> to the value <c>no</c>.  The default is <c>yes</c>.  It does not make much sense to indicate a reusable block (in either form) as a distractor, so don't.</p>\n\n            <p>Another option on the <attr>blocks</attr> element is the <attr>randomize</attr> attribute.  The default value is <c>yes</c>.  When the value is set to <c>no</c>, then the blocks are always presented to the reader in the same order, which is the one given by the <attr>order</attr> attribute.</p>\n\n            <p>As of 2022-11-28, the implemenation of these problems assumes that the blocks rearrange to be computer code.  So you <em>can</em> set the <attr>language</attr> attribute on the <tag>exercise</tag> element to <c>natural</c>, but it will not have much effect.  Markup like <tag>em</tag> on the text of a block will be unpredictable, as will attempts to use mathematics.  And the text of blocks will always be in a monospaced font, perhaps with some syntax highlighting if <attr>language</attr> is set properly.</p>\n        </subsection>\n\n        <subsection xml:id=\"matching-exercises\">\n            <title>Matching Exercises</title>\n            <idx>matching exercises</idx>\n            <idx><h>interactive exercises</h><h>matching</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>matching</h></idx>\n\n            <p>A <term>matching exercise</term> asks a reader to pair a <term>premise</term> with a <term>response</term>.  Similar to multiple-choice exercises and Parsons problems, a <tag>matches</tag> element follows a <tag>statement</tag> and this is the signal.  The <tag>matches</tag> element is structured as a sequence of <tag>match</tag> elements, each of which has a <tag>premise</tag> element and the matching <tag>response</tag> element.  Since the content of each premise and response is best kept short and simple as a phrase, the elements may also be simple phrases without the additional structure of <tag>p</tag> elements, or similar.  That's it.</p>\n\n            <p>An interactive interface should randomize at least one of the lists of premises and responses, consulting the authored version for the correct pairings.  For a static version, an author should put an <tag>order</tag> element on each <tag>match</tag> whose value is a whole number, starting from 1.  Then the <tag>premise</tag> will appear in the authored order, while the <tag>response</tag> will be re-ordered according to the attribute.</p>\n\n            <p>A single <tag>feedback</tag> element may be given, as a peer of <tag>statement</tag>, in addition to authored <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>.  For a static version an automatic <tag>solution</tag> presents the problem in the order the <tag>match</tag> were authored.</p>\n        </subsection>\n\n        <subsection xml:id=\"clickable-area-exercises\">\n            <title>Clickable Area Exercises</title>\n            <idx>clickable area exercises</idx>\n            <idx><h>interactive exercises</h><h>clickable area</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>clickable area</h></idx>\n            <idx>select text exercises</idx>\n            <idx><h>interactive exercises</h><h>select text</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>select text</h></idx>\n\n            <p><term>Clickable Area</term> is a misnomer, assuming an interactive version of this type of problem.  Perhaps <q>Select Text</q> would be better.  In any event <q>area</q> is not meant to connote a geometric notion, instead this is about a sequence of characters, either in natural language or in computer code.</p>\n\n            <p>A <tag>statement</tag> is a prompt, describing which sort of areas should be selected by the reader.  Such as: Locate all the nouns in the following paragraph. This is followed by an <tag>areas</tag> element, which is the signal for this type of exercise.  The <tag>areas</tag> element holds either (a) <pretext/> paragraphs or similar, or (b) a sequence of <tag>cline</tag>, understood to be program code.  In the latter case, a <attr>language</attr> attribute on the <tag>areas</tag> element will enable the right syntax highlighting in some output formats.</p>\n\n            <p>Within the content of the <tag>areas</tag> element an <tag>area</tag> element can be used to surround a run of characters.  These cannot cross <init>XML</init> boundaries, such as a <tag>cline</tag> or <tag>p</tag>.  A <attr>correct</attr> attribute, with values <c>yes</c> or <c>no</c>, indicates the text is to be selected (clicked on) or that it is a distractor (tempting to click on).  The default is <c>yes</c>, so only distractors need to be indicated.</p>\n\n            <p>A single overall <tag>feedback</tag> may be placed following the <tag>areas</tag> element.</p>\n\n            <p>Now an interactive version will allow the reader to click on and off the marked areas of text, and provide information about which are correct and which are not, in addition to general feedback.</p>\n\n            <p>Generally, a static version of the problem will not be clickable.  <tage>wink</tage>  So your prompt might say something generic like <q>select</q> or <q>locate</q> since a reader might work the problem on paper by circling or underlining the areas.  A static version includes an automatic <tag>answer</tag> which is a list of the correct areas as text, followed by a list of the incorrect areas as text.  An automatic <tag>solution</tag> repeats the text in the <tag>areas</tag> element, and uses (accessible) visual cues to note the correct and incorrect text.</p>\n        </subsection>\n\n        <subsection xml:id=\"fill-in-exercises\">\n            <title>Fill-in-the-Blanks Exercises</title>\n            <idx>fill-in exercises</idx>\n            <idx><h>interactive exercises</h><h>fill-in </h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>fill-in </h></idx>\n\n            <p>A <term>fill-in-the-blank</term> problem allows the reader to submit free text that is evaluated for correctness. The signal for a fill-in problem is a <tag>statement</tag> containing a sequence of <tag>fillin</tag> elements with a sibling <tag>evaluation</tag> element. Randomized elements to appear in the statement and solution and to be used in evaluation of reader responses requires the presence of an additional <tag>setup</tag> element that is also a sibling to the <tag>statement</tag>. The presence of the <tag>setup</tag> provides the ability for the statement and evaluation of the responses to incorporate random, dynamically generated elements.</p>\n\n            <p>The body of the <tag>statement</tag> is the same as for any exercise-like statement, with the addition of two elements of markup. A <tag>fillin</tag> is placed at the location a blank would be required for the reader's response. Details for this element are described in the next paragraph. When the question includes a <tag>setup</tag>, content can reference the string or TeX representation of the object (if defined) by using a <tag>eval</tag> element, where the name of the object is provided by a <attr>object</attr> attribute.</p>\n\n            <p>The <tag>fillin</tag> element is required to have an <attr>answer</attr> attribute that contains an answer that would be evaluated as correct, in the case that the question has a known, static, valid answer, or an <attr>ansobj</attr> attribute that contains the variable name of a dynamically generated object representing a correct answer, in the case that the problem has an associated <tag>setup</tag>. In addition, the <tag>fillin</tag> is required to have a <c>@mode</c> that characterizes the mode by which the submitted answer will be parsed. Current possible modes are <c>string</c>, <c>number</c>, and <c>math</c> (only for the dynamic implementation). The <tag>fillin</tag> element may have a <attr>width</attr> attribute specifying the number of characters for the static-version blank. For questions that involve dynamic evaluation, a <attr>name</attr> attribute may be used to identify a variable name that will reference the reader's response during dynamic evaluation of <em>other</em> blanks. (A standard <c>ans</c> variable will always be available in the context of each individual response's evaluation.)</p>\n\n            <p>The <tag>evaluation</tag> block will have a sequence of <tag>evaluate</tag> elements, one associated with each of the corresponding <tag>fillin</tag> elements appearing in the <tag>statement</tag>. By default, the association is by order. If each <tag>fillin</tag> has an associated <attr>name</attr>, the association does not need to be in order. Within each <tag>evaluate</tag> element, there will be a sequence of <tag>test</tag> elements that define a comparison rule for the test and the associated feedback provided when the test evaluates as true. Default behavior is that the <attr>answer</attr> or <attr>ansobj</attr> attribute of the corresponding <tag>fillin</tag> is used for comparison to evaluate a correct response. If the author wishes to override this default or wishes to provide specific feedback for a correct response which will also be used for the automatic solution for static versions, the author will identify one <tag>test</tag> element with the attribute <attr>correct=\"yes\"</attr>.</p>\n\n            <p>Within each <tag>test</tag>, the author needs to specify which type of comparison will be used. For non-dynamic questions, three comparisons are available: <tag>numcmp</tag>, <tag>strcmp</tag>, and <tag>jscmp</tag>. For dynamic questions that include <tag>setup</tag>, additional options include <tag>mathcmp</tag> comparisons involving math objects and <tag>logic</tag> elements to construct more complex boolean tests involving these objects, described later. Feedback that is provided to the reader when the comparison is true, beyond saying the response is correct/incorrect, is provided in a <tag>feedback</tag> element which can itself contain structured <pretext/> text including <tag>eval</tag> elements to reference dynamically generated objects.</p>\n\n            <p>A <tag>numcmp</tag> and a <tag>strcmp</tag> can specify that the comparison should be to match the provided answer for the corresponding <tag>fillin</tag> by including the attribute <attr>use-answer=\"yes\"</attr>. Otherwise, these comparisons must specify the value being compared. A <tag>numcmp</tag> provides this with an attribute <attr>value</attr> that indicates the matching value. If the <tag>numcmp</tag> includes the optional <attr>tolerance</attr> attribute, any response in the range of from the given value plus or minus the tolerance will be accepted. Alternatively, the <tag>numcmp</tag> can directly provide a <attr>min</attr> and <attr>max</attr> attribute to specify an arbitrary interval. A <tag>strcmp</tag> that does not include the <attr>use-answer</attr> will have content that defines a matching string or more generally a matching regular-expression. By default, <pretext/> augments the provided string to match the entire response after stripping leading and trailing white space. The attribute <attr>strip=\"no\"</attr> overrides this behavior so that, for example, the match can look for the presence of a pattern within the response rather than matching the entire response. In addition, the attribute <attr>case=\"insensitive\"</attr> makes the regular expression ignore case during the comparison.</p>\n\n            <p>A comparison involving <tag>jscmp</tag> allows the author to provide arbitrary Javascript code that will evaluate to either true/false or a string containing feedback for a valid match, where the reader's evaluated response is available as a variable <c>ans</c> and all of the reader's responses are in an array <c>ans_array</c>. This allows custom evaluation that can allow the evaluation of one blank to depend on what was answered in another blank. The Javascript is evaluated in the context of a local, anonymous function. Nevertheless, the author should take care that no commands are included that invoke mutable side-effects.</p>\n\n            <p>To create dynamic, randomizable versions of a fill-in-the-blank question, a <tag>setup</tag> element is required as a sibling of the <tag>statement</tag> and <tag>evaluation</tag> elements. For the interactive version of these questions, the problem will created with a random number generator initialized with a seed that is stored by the Runestone Component for the reader. This results in the reader seeing the same version the next time they open the question. A button allowing the reader to request a new randomized version changes the seed and regenerates the question. Static representations need to provide consistent versions each time, so the <tag>setup</tag> requires a <attr>seed</attr> attribute.</p>\n\n            <p>Within the <tag>setup</tag>, the author provides statements that will initialize Javascript objects that will be accessible in the <tag>statement</tag>, <tag>solution</tag>, and <tag>evaluation</tag> elements. The author can provide Javascript code within a <tag>setupScript</tag> child of the <tag>setup</tag>. It is likely that the script contents will need to be escaped to avoid XML conflicts, for example by individually escaping problematic characters or surrounding the code with <c>&lt;![CDATA[...]]&gt;</c>. In the context in which the script runs, there is an object <c>v</c> representing the dynamic variable namespace. Any object that the author wants to access should be created as a member of that object, such as <c>v.myObject = ...</c>. The name <c>myObject</c> could then be used (without reference to <c>v</c>) in an <attr>ansobj</attr> attribute of a <tag>fillin</tag>, in an <attr>object</attr> attribute of an <tag>eval</tag> or directly in a <tag>jscmp</tag> comparison.</p>\n\n            <p>To provide randomization, a random number generator based on the current seed is available in the <tag>setupScript</tag> using the object name <c>RNG</c>. The <c>RNG</c> object includes the following methods for generating various types of random values.\n                <ol>\n                    <li><c>RNG.random()</c>: Uniform random values between <m>0</m> and <m>1</m>.</li>\n                    <li><c>RNG.randSign()</c>: Random values <m>+1</m> and <m>-1</m>.</li>\n                    <li><c>RNG.randInt(a,b)</c>: Random integer from <m>a,a+1,a+2,\\ldots,b</m>.</li>\n                    <li><c>RNG.randUniform(a,b)</c>: Random floating value <m>a &lt; x &lt; b</m>.</li>\n                    <li><c>RNG.randDiscrete(a,b,dx,nonzero)</c>: Random value <m>x</m> from <m>a,a+dx,a+2dx,\\ldots</m> with <m>x \\le b</m>. If <c>nonzero=true</c> (optional parameter), then <m>x=0</m> is excluded.</li>\n                </ol>\n            Using this generator will ensure that subsequent visits by the reader to the question will see the same version.</p>\n\n            <p>If the author wishes for reader responses to be parsed to assess format prior to evaluating correctness, <tag>setupScript</tag> should include a declaration of an entry <c>v.types</c>. The value can either be a single parser function applied to all blanks or an array of separate parser functions, one for each <tag>fillin</tag>. A parser function takes a string representing the response for the blank and returns the parsed object. If there is an error in the structure of the response, the function should <c>throw new TypeError(errMsg)</c>, and the <c>errMsg</c> will be provided as feedback for the response without performing any of the tests.</p>\n\n            <p>The Runestone Component that implements interactivity takes the HTML generated from the <tag>statement</tag> after the <tag>setup</tag> is processed and performs substitutions of any <tag>eval</tag> elements. The recomputed HTML is then inserted into live webpage. A <tag>postRenderScript</tag> entry in <tag>setup</tag> can be used as a second script that runs as a call-back after this substitution occurs. Such a script would be useful if the script requires access to the actual webpage elements and not just defining objects for the evaluation context.</p>\n\n            <paragraphs>\n                <title>Math Objects in Dynamic Problems</title>\n\n                <p>A Javascript library that supports some mathematical objects in the dynamic setup and evaluation of fill-in-the-blank problems. In order to access these objects, an XML-interface is provided to interact with the objects in the <tag>setup</tag> and <tag>evaluation</tag> elements. Any <tag>fillin</tag> elements expecting to parse as mathematical objects should use <attr>mode=\"math\"</attr> and assign <attr>ansobj</attr> to the name of a dynamic expression object created in <tag>setup</tag> that represents a correct answer.</p>\n\n                <p>For the <tag>setup</tag> stage, a sequence of <tag>de-object</tag> elements can be used to define mathematical dynamic expression objects. Each <tag>de-object</tag> will have a <attr>name</attr> attribute representing the object name. The mathematical nature of the <tag>de-object</tag> is indicated with a <attr>context</attr> attribute. Currently supported expression types are to represent numbers using <attr>context=\"number\"</attr> and formulas using <attr>context=\"formula\"</attr>.</p>\n\n                <p> The content of the <tag>de-object</tag> element is an XML element that defines the actual expression. The following choices are available, described in the following paragraphs:\n                <ol>\n                    <li><tag>de-random</tag>: create a randomly generated number</li>\n                    <li><tag>de-number</tag>: create a number by providing its value or formula</li>\n                    <li><tag>de-expression</tag>: create an expression or formula involving variables by directly providing a formula or by performing a substitution or a derivative on a previously-defined expression object</li>\n                    <li><tag>de-evaluate</tag>: create a number by evaluating an expression object by replacing each variable with a specified number value</li>\n                </ol>\n                As elements are defined in sequence, formulas used at any stage may include the name of any previously generated object as a valid symbol in the formula.</p>\n\n                <p>To define a random number, use a <tag>de-random</tag> element. The same random number generation routines provided by the <c>RNG</c> object are accessible through this element using a <attr>distribution</attr> attribute and additional attributes for the distribution parameters, some of which come with default values.\n                <ol>\n                    <li><attr>distribution=\"uniform\"</attr>: Parameters are <attr>min=0</attr>, <attr>max=1</attr> as decimal values. Gives a value from the interval <m>(\\mathrm{min},\\mathrm{max}</m>.</li>\n                    <li><attr>distribution=\"sign\"</attr>: No parameters. Gives <m>\\pm 1</m> as possible values.</li>\n                    <li><attr>distribution=\"integer\"</attr>: Parameters are <attr>min</attr>, <attr>max</attr> as integer values. Value is an integer chosen inclusively between <m>\\mathrm{min}</m> and <m>\\mathrm{max}</m>.</li>\n                    <li><attr>distribution=\"discrete\"</attr>: Parameters include <attr>min</attr>, <attr>max</attr>, <attr>by=\"1\"</attr>, and <attr>nonzero=\"yes\"</attr>. Values chosen from the sequence <m>\\mathrm{min} + k \\cdot \\mathrm{by}</m>, <m>k=0, 1, 2, \\ldots</m> that are not greater than <m>\\mathrm{max}</m>.</li>\n                </ol>\n                In practice, all distributions can be obtained using just the uniform and discrete distributions.</p>\n\n                <p>To define a number by formula, including defining rational numbers as fractions, use a <tag>de-number</tag> element. The content of the element should be a single number or a formula that results in a constant value. Symbols of previously defined numbers as well as mathematical constants like <c>pi</c> or <c>e</c> may be part of the formula. Any undefined symbols will result in an error.</p>\n\n                <p>To define an expression using a formula that might involve variables, use a <tag>de-expression</tag> with <attr>mode=\"formula\"</attr>. The content of the element can be a mathematical formula that includes both numbers and variables. Previously defined numbers and expressions can be used in the formula by referencing their object name.</p>\n\n                <p>To define an expression that is the partial derivative of another expression with respect to a variable, use <tag>de-expression</tag> with <attr>mode=\"derivative</attr>. Such an expression must have a <tag>formula</tag> child that contains an object representing the original expression. The content can be either a <tag>eval</tag> with <attr>object</attr> to reference a previously-defined object or a separate <tag>de-expression</tag> defining an expression not saved as a separate object. In addition, the element must contain a <tag>variable</tag> element with <attr>name</attr> indicating the name of the variable of differentiation.</p>\n\n                <p>Formula evaluation and substitution follow a similar pattern. Formula evaluation to compute a number is performed with a <tag>de-evaluate</tag> element, which requires that every variable in the expression is assigned a specific numerical value. Formula substitution is like function composition and allows for any subset of the involved variables to be assigned either number or expression values and uses <tag>de-expression</tag> with <attr>mode=\"substitution\"</attr>. In either event, the element requires a <tag>formula</tag> child element to specify a starting expression using a <tag>eval</tag> element to specify a previously-defined <tag>de-object</tag> or a <tag>de-expression</tag> element to generate a new formula expression. For each variable that will be replaced by a value or another expression, we will include a <tag>variable</tag> with <attr>name</attr> specifying which variable is being replaced. The content of the <tag>variable</tag> element can be an <tag>eval</tag> to reference an existing object or any of the elements that can be used to generate a <tag>de-object</tag>.</p>\n\n                <p>Automatic reduction and simplification can be applied to elements created by <tag>de-evaluate</tag> and <tag>de-expression</tag> by including the attribute <attr>reduce=\"yes\"</attr>. Elements created by <tag>de-number</tag> always reduce the resulting number. Reductions include reducing arithmetic involving numerical values and simple algebraic identities. The identities that are applied include the following where <m>u</m> and <m>w</m> represent any expression:\n                <ol>\n                    <li><m>u \\pm 0 \\rightarrow u</m></li>\n                    <li><m>0 \\cdot u \\rightarrow 0 \\rightarrow u</m></li>\n                    <li><m>0 \\div u \\rightarrow 0 \\rightarrow u</m></li>\n                    <li><m>1 \\cdot u \\rightarrow u \\rightarrow u</m></li>\n                    <li><m>-1 \\cdot u \\rightarrow -u \\rightarrow u</m></li>\n                    <li><m>u \\div 1 \\rightarrow u \\rightarrow u</m></li>\n                    <li><m>u^1 \\rightarrow u \\rightarrow u</m></li>\n                    <li><m>u^0 \\rightarrow 1 \\rightarrow u</m></li>\n                    <li><m>1^u \\rightarrow 1 \\rightarrow u</m></li>\n                    <li><m>u+(-u) \\rightarrow 0</m></li>\n                    <li><m>u-u \\rightarrow 0</m></li>\n                    <li><m>u+-w \\rightarrow u-w</m></li>\n                    <li><m>u-(-w) \\rightarrow u+w</m></li>\n                    <li><m>-(-u) \\rightarrow u</m></li>\n                    <li><m>u\\cdot(-w) \\rightarrow -u \\cdot w</m></li>\n                    <li><m>u \\div (-w) \\rightarrow -u \\div w</m></li>\n                    <li><m>(-u)+(-w) \\rightarrow -(u+w)</m></li>\n                </ol></p>\n\n                <p>For the <tag>evaluation</tag> block, two comparison elements are accessible<mdash/><tag>mathcmp</tag> for testing whether two math objects are equivalent and <tag>logic</tag> for constructing compound tests involving simple Boolean logical operations. The <tag>mathcmp</tag> comparison is performed by numerically evaluating the two expressions being compared over a range of values for each variable present and verifying that they are numerically within a comparison tolerance.</p>\n\n                <p>To compare the reader's submitted response to the provided correct answer with <tag>mathcmp</tag>, use <attr>use-answer=\"yes\"</attr>. To compare the submitted response to any other object, the <tag>mathcmp</tag> element should have a single evaluated math object as content, which could include a newly generated expression using <tag>de-expression</tag> that is based on the submitted responses. To compare two different math objects, the <tag>mathcmp</tag> should have two math objects. For convenience, there are some implicit representations available as well, illustrated in <xref ref=\"list-mathcmp-expressions-structure\"/>.</p>\n\n                <listing xml:id=\"list-mathcmp-expressions-structure\">\n                    <title>Possible structures for using <tag>mathcmp</tag> within a <tag>test</tag>. The <tag>de-expression</tag> would be replaced by any valid construction as described for the <tag>setup</tag>.</title>\n                    <program>\n                        <code><![CDATA[\n                            <!-- Compare submitted response with fillin answer -->\n                            <mathcmp use-answer=\"yes\"/>\n\n                            <!-- Compare submitted response with pre-computed object -->\n                            <mathcmp obj=\"objName\"/>\n\n                            <!-- Compare submitted response with pre-computed object (alternate) -->\n                            <mathcmp>\n                              <eval obj=\"objName\"/>\n                            </mathcmp\n\n                            <!-- Implicit mathcmp with submitted response (alternate) -->\n                            <eval obj=\"objName\"/>\n\n                            <!-- Compare submitted response with newly generated object -->\n                            <mathcmp>\n                              <de-expression/>\n                            </mathcmp>\n\n                            <!-- Implicit mathcmp with submitted response (alternate) -->\n                            <de-expression/>\n\n                            <!-- Compare with newly generated object with pre-computed object -->\n                            <mathcmp>\n                              <de-expression/>\n                              <eval obj=\"objName\"/>\n                            </mathcmp>\n\n                            <!-- Compare two newly generated objects -->\n                            <mathcmp>\n                              <de-expression/>\n                              <de-expression/>\n                            </mathcmp>\n                        ]]>\n                        </code>\n                    </program>\n                </listing>\n\n                <p>Compound logical structures are created using the <tag>logic</tag> element in the place of a comparison. To specify which operation is being used, the <attr>op</attr> attribute is set to one of <attr>op=\"and\"</attr>, <attr>op=\"or\"</attr>, or <attr>op=\"not\"</attr>. The operations are considered <m>n</m>-ary, meaning that the contents should be one or more comparison elements, which might include additional logic. The <attr>op=\"and\"</attr> will evaluate as true when <em>all</em> of the children comparisons evaluate as true. The <attr>op=\"or\"</attr> will evaluate as true when <em>at least one</em> of the children comparisons evaluates as true. The <attr>op=\"not\"</attr> is technically implemented as the negation of <attr>op=\"and\"</attr>, and so will evaluate as true when <em>at least one</em> of the children comparisons evaluates as <em>false</em>. In the absence of any <tag>logic</tag>, there is always an implicit <attr>op=\"and\"</attr> so that any sequence of comparisons within a single <tag>test</tag>, all comparisons are required to evaluate as true.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Static Representations</title>\n\n                <p>A static version will include an automatic <tag>solution</tag> which <q>fills in</q> each blank with the correct answer that is provided by the <tag>fillin</tag>. The feedback text specified in the <tag>evaluation</tag> that associated with a correct response for each of the <tag>fillin</tag> blanks are then provided in sequence. Consequently, the author should ensure that the feedback for a <tag>test</tag> with <attr>correct=\"yes\"</attr> makes sense in the context of a back-of-the-book solution and not just as immediate feedback in an interactive setting.</p>\n\n                <p>If the author provides an optional <tag>solution</tag> element, this text will also be included as a solution. This solution may contain <tag>eval</tag> elements in the same manner as described for the <tag>statement</tag> element. The automatic solution can be disabled by including <attr>include-automatic=\"no\"</attr> as an attribute of the <tag>solution</tag>.</p>\n\n                <p>To build the static version, <pretext/> needs to generate the dynamic substitution rules. Each dynamic question that includes <tag>setup</tag> is processed using its corresponding static seed to evaluate the potential substitutions. The resulting substitutions are stored in one of the generated files. Using the <pretext/>-CLI, the substitution file is generated using the command <c>pretext generate dynamic-subs -t static-target</c> where <c>static-target</c> is replaced by a static project target such as PDF.</p>\n            </paragraphs>\n\n            <p>As of 2022-06-14 a major effort is underway to provide comprehensive markup for <term>fill-in-the-blank</term> problems.  Until then, there is transitional markup intended only to supply a migration path for projects originally authored for Runestone servers (<xref ref=\"runestone\"/>).  So (a) our documentation is sparse, and (b) there will be no backward-compatible improvements.  So in particular, new projects should wait for the new markup.  Also, studying examples may be a useful way to augment what is described here.</p>\n\n            <p>A <tag>statement</tag> is enriched with empty <tage>var</tage> elements which will render as the blanks in the problem.</p>\n\n            <p>The signal for a fill-in problem is a <tag>setup</tag> element containing a sequence of <tag>var</tag> elements.  Each <tag>var</tag> contains a sequence of <tag>condition</tag> elements that describe possible values (via regular expressions) which might appear in a blank.  The first condition describes the correct answer(s), and then the subsequent conditions are descriptions of probable incorrect answers.  Each <tag>condition</tag> has a <tag>feedback</tag>.  So the first condition to match an entry provided via a blank will be noted as correct or incorrect, and its feedback will be relayed.</p>\n\n            <p>The <tag>var</tag> of the statement and the <tag>var</tag> of the setup are in a 1-1 correspondence, which establishes how the setup is associated with a blank.  The <tag>var</tag> in the statement may have a <attr>width</attr> attribute whose value controls how many characters would be visible in the blank.</p>\n\n            <p>A static version will include an automatic <tag>solution</tag> which <q>fills in</q> each blank with a correct answer, and then duplicates the feedback text, in order.</p>\n        </subsection>\n\n        <subsection xml:id=\"coding-exercises-projects\">\n            <title>Coding Exercises and Projects</title>\n            <idx>coding exercises</idx>\n            <idx><h>interactive exercises</h><h>coding</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>coding</h></idx>\n\n            <p>A <term>Coding Exercise</term> is formed by placing a <tag>program</tag> element <em>after</em> the <tag>statement</tag> of an <tag>exercise</tag>.  The main distinction is that this is a signal that the interactivity is provided by the <tag>program</tag>, and therefore the <tag>exercise</tag> will not be understood as a short answer exercise (<xref ref=\"short-answer-exercises\"/>).  For this reason, the <tag>program</tag> should be requested as one of the interactive realizations (<xref ref=\"interactive-program-codelens\"/>, <xref ref=\"interactive-program-activecode\"/>).</p>\n\n            <p>The identical construction may be used with any PROJECT-LIKE (<xref ref=\"block-summary\"/>) such as an <tag>activity</tag>.  As of 2022-06-17 this only applies to the form that uses a <tag>statement</tag>, but will soon also apply to <tag>task</tag> within PROJECT-LIKE.</p>\n\n            <p>Realize that it is always possible to place a <tag>program</tag> <em>inside</em> of a <tag>statement</tag>, and if there is no <tag>program</tag> that is <em>after</em> the <tag>statement</tag> (or another signal for an interactive exercise) then the <tag>exercise</tag> will be classified as a short-answer exercise.  It may be instructive to understand that in a static realization, a <tag>program</tag> at the <em>end</em> of a <tag>statement</tag> may be visually identical to an <tag>exercise</tag> where the <tag>program</tag> is <em>after</em> the <tag>statement</tag>, even though the former is a short-answer exercise and the latter is a coding exercise (which will render differently for different output formats and hosting platforms).</p>\n        </subsection>\n\n        <subsection xml:id=\"short-answer-exercises\">\n            <title>Short Answer Exercises</title>\n            <idx>short answer exercises</idx>\n            <idx><h>interactive exercises</h><h>short answer</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>short answer</h></idx>\n            <idx>free-response exercises</idx>\n            <idx><h>interactive exercises</h><h>free-response</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>free-response</h></idx>\n            <idx>essay question exercises</idx>\n            <idx><h>interactive exercises</h><h>essay question</h></idx>\n            <idx><h>exercise</h><h>interactive</h><h>essay question</h></idx>\n\n            <p><term>Short Answer</term> questions might also be known as <term>Free Response</term> questions, or <term>Essay</term> questions.  A <pretext/> <tag>exercise</tag>, or a PROJECT-LIKE that is not structured by <tag>task</tag>, is implicitly of this nature.  But you still need to signal that you wish such a problem to be interactive, typically with a text box where the student can enter an answer.  So, similar to other types of exercises, add a <tage>response</tage> element immediately after the <tag>statement</tag>.  (We expect to add attributes for this element to influence the behavior of the text box.)</p>\n\n            <p>In an online setting, it is a simple matter to provide a place for a reader to type in an answer, response, or essay.  But then what?  Until artificial intelligence is brought to bear, somebody (not something), such as an instructor for a course of enrolled students, will need to read a response and provide a score and/or comments that can be saved and distributed back to the students.  So the first prerequisite is that <init>HTML</init> output is being built for a capable platform.  As of 2022-06-15, this means a Runestone server (<xref ref=\"runestone\"/>), but it could easily also be a <webwork/> server.</p>\n\n            <p>An author can also supply an <attr>attachment</attr> attribute on the <tag>exercise</tag> element.  When set to <c>yes</c> the short answer question will allow the student to upload a single document in support of their answer.  This document might be a diagram or an entire essay in <init>PDF</init> format.</p>\n\n            <p>A publisher can control when a response area is created in <init>HTML</init> output (<xref ref=\"online-short-answer-responses\"/>).  The default is to only have this area present when it is possible for a response to be graded and scored.  However, an option will cause a response box to be created always.   A reader can reflect on the question by typing in a response, and the text will be saved <em>on that particular device</em> only.  When it is impossible for a response to be graded, placeholder text will warn the reader.</p>\n        </subsection>\n\n        <subsection xml:id=\"timed-assessments\">\n            <title>Timed Assessments</title>\n            <idx>timed assessments</idx>\n\n            <p>A collection of <tag>exercise</tag> may be optionally selected to be part of a timed assessment.  A timed assessment will show each <tag>exercise</tag> separately with a navigation mechanism to allow the student to move from exercise to exercise.  A student may <q>flag</q> an exercise for later review if they are unsure of their answer.  When a student completes the assessment they will receive varying amounts of feedback on their performance, depending on how the assessment is configured.</p>\n\n            <p>To enable this behavior, place a <attr>time-limit</attr> attribute on the <tag>exercises</tag> element, with a value indicating the time limit in seconds.  In addition you can allow the student to pause the timer by including <attr>pause</attr> attribute on the <tag>exercises</tag> element with a value of <q>yes</q>, You can control the amount of feedback provided to the student with two additional attributes.  <attr>results</attr> and <attr>feedback</attr>.  If the <attr>results</attr> attribute is set to <q>yes</q>, the student will receive a summary of their performance after completing the assessment.  If the <attr>feedback</attr> attribute is set to <q>yes</q>, the student will receive feedback on their answers.</p>\n\n            <p>For books that will be hosted on Runestone Academy, you should include a <attr>label</attr> attribute on the <tag>exercises</tag> element to provide a short name for the assessment.  This label will be used to identify the assessment in the gradebook.  It will also allow you as the instructor to reset the exam for a student to give them another try if they need it for any reason, including some kind of technical glitch with their browser as they are taking the exam.</p>\n        </subsection>\n        <subsection xml:id=\"group-work-exercises\">\n            <title>Group Work Exercises</title>\n            <idx>group work exercises</idx>\n\n            <p>A collection of <tag>exercise</tag> may be optionally selected for work by a group of readers.  This behavior is only available when hosted on a Runestone server.  We re-purpose a <tag>worksheet</tag> specialized division for groups of such exercises.</p>\n\n            <p>To enable this behavior, place a <attr>groupwork</attr> attribute on a <tag>worksheet</tag> element, with a value of <c>yes</c>.  Then all of the contained <tag>exercise</tag> will be provided by Runestone as group work.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-exercises-solutions\">\n        <title>Exercises and their Solutions</title>\n\n        <introduction>\n            <p>As described in <xref ref=\"overview-exercises\"/> an <tag>exercise</tag> can be placed in many different locations, and a <tag>project</tag> has similar features.  It is critical to understand that you want to author any hints, answers, or solutions immediately following the statement of an exercise.  If your <pretext/> source is public, and you would like to keep some aspects of the solutions private, then read <xref ref=\"instructor-solutions\"/> for some practical advice.  See <xref ref=\"private-solutions-file\"/> as well for information on creating a standalone <pubtitle>Solutions Guide</pubtitle>.  We concentrate here on techniques for controlling visibility and location of the components of exercises within your primary output.</p>\n        </introduction>\n\n        <subsection>\n            <title>Exercises, Original Versions</title>\n\n            <p>In a conversion to <init>HTML</init>, a <tag>hint</tag> to an <tag>exercise</tag> renders nicely in a knowl, right below the exercise statement.  For a conversion to <latex/>/<init>PDF</init>/print, you might wish to display a hint, visibly, as part of the exercise, or you may wish to park the hint in a <pubtitle>Hints to Exercises</pubtitle> division in the back matter.  To control visibility of the components of exercises (and projects) there are twenty switches you can use.  See <xref ref=\"exercise-component-visibility\"/> for more.</p>\n\n        </subsection>\n\n        <subsection xml:id=\"topic-solutions-division\">\n            <title>Exercises, Solutions Versions</title>\n\n            <p>Exercises, and their components may be duplicated easily, to provide a back matter appendix with solutions, or within each division.  For example, you can easily create an end-of-chapter division with solutions to every inline exercise throughout the chapter and solutions to all the divisional exercises from each section of the chapter.</p>\n\n            <p>The <tag>solutions</tag> element will create an entire division, semi-automatically.  You can provide a <tag>title</tag>, an <tag>introduction</tag>, and <tag>conclusion</tag>.  The remaining content is statements, hints, answers, and solutions to exercises (and projects).</p>\n\n            <p>If <tag>solutions</tag> is a child of <tag>backmatter</tag>, then an appendix will be generated, and covering <tag>exercise</tag> from the entire <tag>book</tag> or <tag>article</tag>.  If <tag>solutions</tag> is a child of a division, then a new subdivision is created and the scope is all <tag>exercise</tag> for the division.  So, for example, a <tag>solutions</tag> placed inside a <tag>chapter</tag> will render as a division that looks like a <tag>section</tag> and will include components of all the exercises (at any level) contained within the <tag>chapter</tag>.</p>\n\n            <p>An optional attribute is <attr>scope</attr>, whose value is the <attr>xml:id</attr> of a division.  Then it is this division which is scanned for exercises and their solutions (rather than defaulting to the enclosing parent of the <tag>solutions</tag>).  This allows for much greater flexibility.  For a simple example, suppose a <tag>chapter</tag> contains two <tag>exercises</tag>, and you want to have two <tag>solutions</tag> within the chapter, each covering just one of the <tag>exercises</tag>.  This can be accomplished with <attr>scope</attr>, and you can arrange the four divisions (two <tag>exercises</tag> and two <tag>solutions</tag>) however you wish within the chapter.</p>\n\n            <p>An author filters the types of exercises, and their components, through attributes of the <tag>solutions</tag> element.  For example<cd>\n                <cline>reading=\"hint answer\"</cline>\n            </cd>would cause every <tag>exercise</tag> within each <tag>reading-questions</tag> to have its <tag>hint</tag> and <tag>answer</tag> displayed, but not its <tag>statement</tag> nor its <tag>solution</tag>.  These are the attribute names and the possible values.</p>\n\n            <table>\n                <title>Attributes (left) and Values (right) for <tag>solutions</tag> element</title>\n\n                <tabular>\n                    <row>\n                        <cell><c>inline</c></cell>\n                        <cell><c>statement</c></cell>\n                    </row>\n                    <row>\n                        <cell><c>divisional</c></cell>\n                        <cell><c>hint</c></cell>\n                    </row>\n                    <row>\n                        <cell><c>reading</c></cell>\n                        <cell><c>answer</c></cell>\n                    </row>\n                    <row>\n                        <cell><c>worksheet</c></cell>\n                        <cell><c>solution</c></cell>\n                    </row>\n                    <row>\n                        <cell><c>project</c></cell>\n                        <cell/>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Note that the <attr>worksheet</attr> filter only refers to <tag>exercise</tag> within any <tag>worksheet</tag>.  This is because worksheets are built around <tag>exercise</tag> that are slightly different than others, such as allowing <attr>workspace</attr>, and being allowed in a <tag>sidebyside</tag> for layout purposes.  Similarly, a <tag>project</tag> (or more precisely PROJECT-LIKE) is a child of a division, and so can appear inside a <tag>worksheet</tag>, or outside of a <tag>worksheet</tag>.  The <attr>project</attr> filter applies equally to both instances.</p>\n\n            <p>So, <pretext/> source like<cd>\n                <cline>&lt;section&gt;</cline>\n                <cline>  &lt;title&gt;Tropical Bird of Paradise&lt;title&gt;</cline>\n                <cline>  ...</cline>\n                <cline>  &lt;solutions worksheet=\"hint solution\" project=\"hint answer\"&gt;</cline>\n                <cline>    &lt;title&gt;Hints and Solutions to Worksheets and Projects&lt;title&gt;</cline>\n                <cline>  &lt;/solutions&gt;</cline>\n                <cline>&lt;/section&gt;</cline>\n            </cd>would generate an entire subsection in the section on Birds of Paradise, containing with hints and solutions to every <tag>exercise</tag> in any worksheet in the section, and hints and answers for every project, located anywhere (including in subsections, subsubsections, and worksheets).  There is a great deal of flexibility, though not every imaginable scenario may be possible.</p>\n\n            <p>\n                An <attr>admit</attr> attribute specifies some feature of an exercise's serial number\n                to determine whether its components are admitted into the solutions division.\n                (For example, the <q>serial number</q> of Exercise 1.2.3 is 3.)\n                Presently, the only options are <c>odd</c>, <c>even</c>, and the default <c>all</c>.\n                So, <pretext/> source like\n                <cd>&lt;solutions divisional=\"answer\" admit=\"odd\"&gt;</cd>\n                would generate a subsection with answers to only the odd-numbered divisional exercises.\n            </p>\n\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-images\">\n        <title>Images</title>\n        <idx>image</idx>\n\n        <subsection xml:id=\"topic-images-raster\">\n            <title>Raster Images</title>\n\n            <p>A <term>raster image</term><idx>raster image</idx><idx><h>image</h><h>raster image</h></idx> is an image described pixel-by-pixel, with different colors and intensities.  Photographs are good examples.  Common formats are Portable Network Graphics (PNG) and Joint Photographic Experts Group (JPEG, JPG), which will both work with <c>pdflatex</c> and modern web browsers.  JPEG is a good choice for photographs since they are compressed on the assumption they will be viewed by a human, while PNG is a lossless format and good for line art, diagrams and similar images (if you do not have vector graphics versions, see below).</p>\n\n            <p>To use these images, you simply provide the complete filename, with a relative path.  A subdirectory such as <c>images</c> is a good choice for a place to put them.  It is your responsibility to place these images where the <latex /> output will find them or where the HTML output will find them.  Your <pretext/> source would look like:</p>\n\n            <pre>\n            <![CDATA[<image source=\"images/crocodiles.png\" width=\"50%\"/>]]>\n            </pre>\n\n            <p>Typically you would wrap this in a <tag>figure</tag> that might have an <attr>xml:id</attr> attribute for cross-references, with or without a caption.  There is no <attr>height</attr> attribute, so the aspect ratio of your image is your responsibility outside of <pretext />.  The <attr>width</attr> attribute is a percentage of the available width of the text (outside of a <tag>sidebyside</tag> panel).</p>\n\n            <p>\n                You should also provide a <tag>description</tag> and/or <tag>shortdescription</tag>\n                as a child of the <tag>image</tag>, or else explicitly declare the image to be\n                decorative with an attribute <attr>decorative</attr> set to <c>yes</c>.\n                A <tag>shortdescription</tag> should be text-only (but perhaps with <tag>var</tag>\n                children) and be less than 100<ndash/>140 characters long. A <tag>description</tag>\n                should be structured with <tag>p</tag> and <tag>tabular</tag> elements. For example:\n            </p>\n\n            <pre>\n            <![CDATA[\n            <image source=\"images/crocodiles.jpeg\" width=\"50%\">\n                <shortdescription>Five crocodiles partially submerged.</shortdescription>\n                <description>\n                    <p>\n                        Five crocodiles are in a pond. Three of them have their eyes above\n                        the water line, looking in the direction of the camera. The other\n                        two are in the background and only their tails are visible above\n                        the water line.\n                    </p>\n                </description>\n            </image>\n            ]]>\n            </pre>\n\n            <p>\n                See <xref ref=\"subsec-img-desc-advice\"/> for advice on writing effective image descriptions.\n            </p>\n\n        </subsection>\n\n        <subsection xml:id=\"topic-images-vector\">\n            <title>Vector Graphics</title>\n\n            <p>An image is a <term>vector graphic</term><idx>vector graphic</idx><idx><h>image</h><h>vector graphic</h></idx> if the file describes the geometric shapes that constitute the image.  So a simple diagram would be a good candidate, but a photograph would not.  Popular formats are Portable Document Format (<init>PDF</init>) and Scalable Vector Graphics (<init>SVG</init>).  You will get the best results with <init>PDF</init> images in <latex/> output and <init>SVG</init> images for <init>HTML</init>.  The principal advantage of these formats is that they scale (big or small) smoothly, along with fonts.  This is critical when you cannot predict the screen size for a reader of an electronic version.</p>\n\n            <p>Unless you describe these images with a language (see <xref ref=\"topic-images-source\"/>), you are responsible for providing the <init>PDF</init> and <init>SVG</init> versions.  The <c>pdf2svg</c> utility is very useful if you have <init>PDF</init> images only.  To have these different images used for different output formats, you simply follow the instructions above, but <em>do not include a file extension</em>.  This alerts the conversion to use the best possible choice for any given output, and to embed it correctly.  So presuming you made available the files <c>images/toad-life-cycle.pdf</c> and <c>images/toad-life-cycle.svg</c>, the following example would incorporate the <init>PDF</init> version with <latex/> output and the <init>SVG</init> version for <init>HTML</init> output.</p>\n\n            <pre>\n            <![CDATA[\n            <image source=\"images/toad-life-cycle\" width=\"85%\">\n                <description><p>The four stages of a toad's life.</p></description>\n            </image>\n            ]]>\n            </pre>\n\n            <p>Vector graphics images can be created with source code in different languages (<xref ref=\"topic-images-source\"/>) or with applications, such as Inkscape (<xref ref=\"processing-images-inkscape\"/>).  If you are creating non-technical graphics that have lots of geometric shapes and simple text (a look like a movie poster), then using a tool like Inkscape is a great choice since its native file format is an enhanced version of <init>SVG</init> and a faithful <init>PDF</init> is easy to create.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-images-source\">\n            <title>Images Described by Source Code</title>\n\n            <introduction>\n                <p>There are various languages which may be used to describe diagrams, geometric objects, or data plots.  A key strategy enabled by <pretext/> is to put these specifications of such images <em>directly in your document's source</em> rather than losing track of them over time.</p>\n\n                <p>So we have various elements which are children of <tag>image</tag> that hold these source code descriptions.  Then <pretext/> provides techniques for realizing these in the best formats for various devices and print.  So if you are accustomed to the idea of a <attr>source</attr> attribute pointing to a file, think of these elements as alternative specifications.</p>\n            </introduction>\n\n            <subsubsection>\n                <title>Asymptote</title>\n\n                <p><url href=\"https://asymptote.sourceforge.io/\" visual=\"asymptote.sourceforge.io/\">Asymptote</url> is a vector graphics language that produces high-quality output in <init>WebGL</init>, <init>SVG</init>, <init>PNG</init>, and <init>PDF</init> formats.  You can describe 2-D or 3-D objects, and the 3-D objects are interactive in online output as <init>HTML</init> <init>WebGL</init> files.  <latex/> may be used, and your macros are automatically available for use.</p>\n\n                <p>Authoring is straight-forward.  Inside an <tag>image</tag> include a child <tag>asymptote</tag> to hold the code.  For example:</p>\n\n                <pre>\n                &lt;image&gt;\n                    &lt;description&gt;A histogram of Gaussian data.&lt;/description&gt;\n                    &lt;asymptote label=\"gaussian-histogram\"&gt;\n                    import graph;\n                    import stats;\n\n                    size(400,200,IgnoreAspect);\n\n                    int n=10000;\n                    real[] a=new real[n];\n                    for(int i=0; i &lt; n; ++i) a[i]=Gaussrand();\n\n                    draw(graph(Gaussian,min(a),max(a)),blue);\n\n                    // Optionally calculate \"optimal\" number\n                    // of bins a la Shimazaki and Shinomoto.\n                    int N=bins(a);\n\n                    histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=false);\n\n                    xaxis(\"$x$\",BottomTop,LeftTicks);\n                    yaxis(\"$dP/dx$\",LeftRight,RightTicks(trailingzero));\n                    &lt;/asymptote&gt;\n                &lt;/image&gt;\n                </pre>\n\n                <p>Here is the result.  Look elsewhere for examples of 3-D output from Asymptote.</p>\n\n                <image width=\"60%\">\n                    <description><p>A histogram of Gaussian data.</p></description>\n                    <asymptote label=\"gaussian-histogram\">\n                    import graph;\n                    import stats;\n\n                    size(400,200,IgnoreAspect);\n\n                    int n=10000;\n                    real[] a=new real[n];\n                    for(int i=0; i &lt; n; ++i) a[i]=Gaussrand();\n\n                    draw(graph(Gaussian,min(a),max(a)),blue);\n\n                    // Optionally calculate \"optimal\" number\n                    // of bins a la Shimazaki and Shinomoto.\n                    int N=bins(a);\n\n                    histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=false);\n\n                    xaxis(\"$x$\",BottomTop,LeftTicks);\n                    yaxis(\"$dP/dx$\",LeftRight,RightTicks(trailingzero));\n                    </asymptote>\n                </image>\n\n                <p>Notes:<ul>\n                    <li>Notice the necessity of escaping the less-than in the for-loop.  See <xref ref=\"topic-exceptional-characters\"/>.</li>\n                    <li>Setting a <attr>label</attr> on the <tag>asymptote</tag> tag is necessary to have a stable name for graphics files that will be generated.</li>\n                    <li>The <tag>description</tag> is an important part of making your output accessible.</li>\n                    <li>Notice the use of <latex/> for the label on the vertical axis.  All of your macros defined in <c>docinfo</c> are available for use, so you can keep notation consistent.</li>\n                    <li>You need to produce <init>PDF</init> versions of your diagrams for use in a conversion to <latex/>.</li>\n                    <li>\n                        <p>You need to produce <init>HTML</init> versions of your diagrams for use in a conversion to an electronic format based on <init>HTML</init>.  For a 2-D diagram these are a thin wrapper around an <init>SVG</init> image.  For a 3-D diagram these are interactive WebGL objects.</p>\n\n                        <p>It is very important to note that these <init>HTML</init> versions contain the height and width of the diagram and these are queried by a conversion of your document to <init>HTML</init> format in order to compute the aspect ratio.  Therefore they need to be available with your other source files (typically in an <c>images</c> directory).  So in a very real sense these files become part of your source.</p>\n                    </li>\n                    <li>You may want to produce <init>SVG</init> versions of your diagrams for conversion to <init>EPUB</init>, and <init>PNG</init> versions for conversion to the <init>EPUB</init> precursor for Kindle format.</li>\n                    <li><init>PDF</init> versions produced by the <c>pretext</c> script will not include the RPC extensions.  So <q>rotatable</q> 3D images rendered by the proprietary viewer, Adobe Acrobat, are not created, consistent with our open source philosophy.</li>\n\n                    <li>\n                        <p>Colors in Asymptote can be hard-coded using <c>rgb</c> syntax. Colors can also be defined at the top of an Asymptote file, to be referred to later. You may wish to produce <init>PDF</init> in both color (electronic) and black and white (print on demand) formats, and you probably do not want to maintain parallel source for both versions. Rather than writing (for example) <c>pen p=rgb(0,0,.7);</c> in your Asymptote code, you can write <c>pen p=curvepen1;</c>. Then, in the <tag>docinfo</tag> section of your document, you can add an <tag>asymptote-preamble</tag> and include the line <c>pen curvepen1=rgb(0,0,.7);</c>. Once you are ready to produce your black and white version, you need only change the definition of <c>curvepen1</c> in your <tag>asymptote-preamble</tag>.</p>\n\n                        <p>One note of caution: if your preamble includes Asymptote code that only works once certain libraries are loaded, you must include lines to import those libraries in your preamble. For example, to define a <c>material</c> you must first have the line <c>import three;</c>.</p>\n                    </li>\n                </ul></p>\n\n                <p>Asymptote may be run as a program installed locally, but the project also has an on-demand online server written by Supakorn Jamie Rassameemasmuang.  By default, the <c>pretext/pretext</c> script (<xref ref=\"pretext-script\"/>) will interface automatically with this server to create your diagrams.  Furthermore, Asymptote provides a very useful <url href=\"http://asymptote.ualberta.ca/\" visual=\"asymptote.ualberta.ca/\">web application</url> written by Pedram Emami.  This is a great place to learn, experiment, and iterate as you become more skilled at building high-quality graphics to illustrate the concepts in your document.</p>\n\n                <note>\n                    <title>Build 3-D Asymptote Figures</title>\n\n                    <p>If your project uses geometric or mathematical objects that are three-dimensional, invest some time in learning the Asymptote vector graphics language.  The interactive diagrams for your <init>HTML</init> output produced by Asymptote, in <init>WebGL</init> format, are outstanding and will greatly enhance your project.  (And the other static formats are similarly excellent.)  The <c>pretext/pretext</c> script will create these diagrams, in the necessary formats, with no extra software by using an online server.</p>\n                </note>\n\n            </subsubsection>\n\n            <subsubsection xml:id=\"topic-latex-images\">\n                <title>Images in <latex/> Syntax</title>\n\n                <p>There are a variety of <latex/> packages for authoring a diagram, plot, or graph.  Examples include: TikZ, PGF, Xy-pic, and PSTricks.  Generally, the <tag>latex-image</tag> tag allows you to incorporate this code into your source and <pretext/> realizes these descriptions as images in your output.</p>\n\n                <p>For <latex/> output the procedure is transparent<mdash/><pretext/> simply incorporates the preamble information and the image's code in the correct places in the <latex/> output, scaled to fit whatever space is described on the <tag>image</tag> element.  Then traditional <latex/> processing will do the right thing.  For output to other non-<latex/> formats, such as <init>HTML</init> or <init>EPUB</init>, we need some help from the CLI to generate other formats.  This tool will isolate the image's code and bundle it up with the necessary preamble to make a complete single-purpose <latex/> file.  Once converted by <latex/> to a <init>PDF</init> version, other tools can convert the image into other formats, such as <init>SVG</init>.  In this way, you can use <latex/> packages for describing images, use mathematically-correct labels in <latex/> syntax, and use your own macros for consistency in notation, yet also employ the resulting images in more modern output formats.  Note that as of 2020-07-24, limited testing indicates that PSTricks needs to be processed with the <c>xelatex</c> engine, and the <c>pstricks-add</c> package might also be necessary.  Any updates, especially using <c>pdflatex</c> would be appreciated.  Finally, processing with <c>xelatex</c> might be necessary if your labels use Unicode characters.</p>\n\n                <p>Much like the <tag>asymptote</tag> tag, the <tag>latex-image</tag> tag is used as a child of <tag>image</tag> and can be thought of as an alternative to the <attr>source</attr> attribute of <tag>image</tag>. Adding a <attr>label</attr> to the <tag>latex-image</tag> tag will ensure a stable file name for the graphics files that will be produced.  The contents need to be a complete specification of the image.  For example, a TikZ image will typically begin with <c>\\begin{tikzpicture}</c>.  Inside of your document's <tag>docinfo</tag> you will likely need to employ a <tag>latex-image-preamble</tag> element to hold necessary <c>\\usepackage</c> commands and any global settings, such as the style for tick-marks and labels on axes of graphs.  The source code in this next example is greatly abbreviated and mildly edited, see the source for the complete example.</p>\n\n                <pre><![CDATA[\n                <docinfo>\n                    <latex-image-preamble>\n                    \\usepackage{tikz}\n                    </latex-image-preamble>\n                </docinfo>\n                ]]></pre>\n\n                <pre><![CDATA[\n                <figure xml:id=\"rna-codons-figure\">\n                    <caption>RNA Codons Table, by Florian Hollandt</caption>\n                    <image width=\"100%\">\n                        <description><p>A table of the RNA codons.</p></description>\n                        <latex-image label=\"rna-codons-table\">\n                        \\begin{tikzpicture}\n                        \\footnotesize\n                        \\tikzstyle{every node}=[inner sep=1.7pt,anchor=center]\n                        % to_x and from_x styles denote bonds terminating\n                        % or starting in labeled nodes. x denotes the\n                        % number of letters in the node label.\n                        \\tikzstyle{to_1}=[shorten >=5pt]\n                        \\tikzstyle{to_1i}=[shorten >=6pt]\n                        \\tikzstyle{to_2}=[shorten >=7pt]\n                        \\tikzstyle{to_3}=[shorten >=8pt]\n                        ...\n                        \\begin{scope}[scale=0.5]    % Asparagine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (90-2*5.625:8.2)\n                                        arc(90-2*5.625:90-4*5.625:8.2);\n                        \\path (90-3.5*3.625-3:13.3) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- +(30:1) node (Cd) {NH$_{\\mbox{2}}$};\n                        \\draw[to_1i] (Cc.center)    -- +(270:1) node (O) {};\n                        \\draw[to_1]  (Cc.210)       -- (O.150);\n                        \\path (O.center) node {O};\n                        \\end{scope}\n                        ...\n                        \\node at (90-55*5.625:4.5) {C};\n                        \\node at (90-58*5.625:4.5) {S};\n                        \\node at (90-61*5.625:4.5) {L};\n                        \\node at (90-63*5.625:4.5) {F};\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n                </figure>\n                ]]></pre>\n\n                <p>This will result in:</p>\n\n                <figure xml:id=\"rna-codons-figure\">\n                    <caption>RNA Codons Table, by Florian Hollandt, from <url href=\"https://texample.net/tikz/examples/rna-codons-table/\" visual=\"texample.net/tikz/examples/rna-codons-table/\"><tex/>ample.net</url></caption>\n                    <image width=\"100%\">\n                        <description><p>A table of the RNA codons, together with the amino acids they encode.</p></description>\n                        <latex-image label=\"rna-codons-figure\">\n                        \\begin{tikzpicture}\n                        \\footnotesize\n                        \\tikzstyle{every node}=[inner sep=1.7pt,anchor=center]\n                        %   to_x and from_x styles denote bonds terminating or starting in labeled nodes. x denotes the number of letters in the node label.\n                        \\tikzstyle{to_1}=[shorten >=5pt]\n                        \\tikzstyle{to_1i}=[shorten >=6pt]\n                        \\tikzstyle{to_2}=[shorten >=7pt]\n                        \\tikzstyle{to_3}=[shorten >=8pt]\n                        \\tikzstyle{from_1}=[shorten &lt;=5pt]\n                        \\tikzstyle{from_1i}=[shorten &lt;=6pt]\n                        \\tikzstyle{from_2}=[shorten &lt;=8pt]\n                        \\begin{scope}\n                        \\draw [ultra thick] circle(1cm);\n                        \\draw [ultra thick] (0:4)--(180:4) (90:4)--(270:4);\n                        \\foreach \\a/\\l in {45/A,135/G,225/C,315/U}{\n                            \\node at (90-\\a:0.5cm) {\\l};\n                        }\n                        \\draw [very thick] circle(2cm);\n                        \\foreach \\A in {90,0,270,180}{\n                            \\foreach \\a/\\l in {22.5/A,45/G,67.5/C,90/U}{\n                                \\draw [very thick] (\\A+\\a:1) -- (\\A+\\a:4);\n                                \\node at (\\A-\\a+11.25:1.5) {\\l};\n                            }\n                        }\n                        \\draw circle(4cm) (0:4)--(180:4) (90:4)--(270:4);\n                        \\foreach \\A in {90,180,270,0}{\n                            \\foreach \\a in {0,22.5,45,67.5}{\n                                \\foreach \\i/\\l in {5.625/A,11.25/G,16.875/C,22.5/U}{\n                                    \\draw (\\A+\\a+\\i:2) -- (\\A+\\a+\\i:4);\n                                    \\node at (\\A-\\a-\\i+2.8125:3) {\\l};\n                                }\n                            }\n                        }\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Lysine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (90:8.2)\n                                        arc(90:90-2*5.625:8.2);\n                        \\path (90-0.8*5.625:14.3) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_3]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- ++(270:1) node (Cd) {}\n                                        -- ++(210:1) node (Ce) {}\n                                        -- ++(150:1) node (Cf) {NH$_{\\mbox{2}}$};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Asparagine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (90-2*5.625:8.2)\n                                        arc(90-2*5.625:90-4*5.625:8.2);\n                        \\path (90-3.5*3.625-3:13.3) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- +(30:1) node (Cd) {NH$_{\\mbox{2}}$};\n                        \\draw[to_1i] (Cc.center)    -- +(270:1) node (O) {};\n                        \\draw[to_1]  (Cc.210)       -- (O.150);\n                        \\path (O.center) node {O};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Arginine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (90-22.5:8.2)\n                                        arc(90-22.5:90-33.75:8.2);\n                        \\path (90-3.7*5.625:16) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- ++(270:1) node (Cd) {}\n                                        -- ++(330:1) node (NH1) {NH};\n                        \\draw[from_2,to_3]  (NH1.center)    -- ++(30:1) node (Ce) {}\n                                        -- ++(330:1) node {NH$_{\\mbox{2}}$};\n                        \\draw[to_1i] (Ce.center)    -- ++(90:1) node (N2) {};\n                        \\draw[to_1]  (Ce.150)       -- (N2.210);\n                        \\path (N2) node {N};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Serine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (90-22.5-2*5.625:8.2)\n                                        arc(90-33.75:90-33.75-11.25:8.2);\n                        \\path (90-7*5.625:12.5) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){} -- ++(210:1) node (Cc) {OH};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Threonine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (90-45:8.2)\n                                        arc(90-45:90-67.5:8.2);\n                        \\path (90-45-0.8*11.25:12.5) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {} (Cb.center)\n                                        -- +(210:1) node {OH};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Methionine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (90-67.5:8.2)\n                                        arc(90-67.5:90-67.5-5.625:8.2);\n                        \\path (90-67.5-0.5*5.625:14) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_1]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- ++(30:1) node (Cd) {S};\n                        \\draw[from_1] (Cd.center)   -- +(330:1);\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Isoleucine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (0:8.2)\n                                        arc(0:11.25:8.2);\n                        \\path (1.0*5.625:12.4) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- +(30:1) node (Cd) {} (Cb.center)\n                                        -- +(210:1) node (Ce) {};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Glutamic acid\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (0:8.2)\n                                        arc(0:-11.25:8.2);\n                        \\path (-1.3*5.625:15) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_1i] (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- ++(270:1) node (Cd) {}\n                                        -- ++(330:1) node (NH) {OH};\n                        \\draw[to_1]  (Cd.center)    -- +(210:1) node (O) {};\n                        \\draw[to_1i] (Cd.270)       -- (O.300);\n                        \\path (O.center) node {O};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Aspartic acid\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (-11.25:8.2)\n                                        arc(-11.25:-22.5:8.2);\n                        \\path (-11.25-5.625:12) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- +(30:1) node (Cd) {OH};\n                        \\draw[to_1i] (Cc.center)    -- +(270:1) node (O) {};\n                        \\draw[to_1]  (Cc.210)       -- (O.150);\n                        \\path (O.center) node {O};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Glycine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (-22.5:8.2)\n                                        arc(-22.5:-45:8.2);\n                        \\path (-33.75-1*5.625:12) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Alanine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (-45:8.2)\n                                        arc(-45:-68.25:8.2);\n                        \\path (-45-11.25:12) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Valine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (-68.25:8.2)\n                                        arc(-68.25:-90:8.2);\n                        \\path (-68.25-0.8*11.25:12) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw (zero.center)     -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Glutamine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (-90:8.2)\n                                        arc(-90:-101.25:8.2);\n                        \\path (-90.25-5.625:12.5) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_2]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_3]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- ++(270:1) node (Cd) {}\n                                        -- ++(330:1) node (NH) {NH$_{\\mbox{2}}$};\n                        \\draw[to_1]  (Cd.center)    -- +(210:1) node (O) {};\n                        \\draw[to_1i] (Cd.270)       -- (O.300);\n                        \\path (O.center) node {O};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Histidine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (-101.25:8.2)\n                                        arc(-101.25:-101.25-11.25:8.2);\n                        \\path (-101.25-1.2*5.625:15.5) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node(Cc){};\n                        \\draw[to_2]  (Cc.center)    -- ++(108-1*72:1) node (Cd) {}\n                                        -- ++(108-2*72:1) node (Ce) {NH};\n                        \\draw[from_1,to_1] (Ce.center)  -- ++(108-3*72:1) node (Cf) {}\n                                        -- ++(108-4*72:1) node (Cg) {};\n                        \\draw[from_1] (Cg.center)   -- (Cc.center);\n                        \\draw         (Cc.198+2*72) -- (Cd.198+1*72);\n                        \\draw[from_1] (Cg.72)       -- (Cf.198+4*72);\n                        \\draw (Cg.center) node {N};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Arginine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (-90-22.5:8.2)\n                                        arc(-90-22.5:-90-45:8.2);\n                        \\path (-90-7.7*5.625:12.3) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- ++(270:1) node (Cd) {}\n                                        -- ++(330:1) node (NH1) {NH};\n                        \\draw[from_1i,to_3] (NH1.center)-- ++(30:1) node (Ce) {}\n                                        -- ++(330:1) node {NH$_{\\mbox{2}}$};\n                        \\draw[to_1]  (Ce.center)    -- ++(90:1) node (N2) {};\n                        \\draw[shorten >=4pt] (Ce.150)   -- (N2.210);\n                        \\path (N2) node {N};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Proline\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (-90-45:8.2)\n                                        arc(-90-45:-90-45-22.25:8.2);\n                        \\path (-90-10.5*5.625:12) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_2]  (zero.center)  -- ++(150:1) node (nh) {NH$_{\\mbox{2}}^+$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){};\n                        \\path        (Cb.center)    -- +(150:1) node (x) {};\n                        \\path        (x.center)     +(170:1) node (Cd) {};\n                        \\path        (x.center)     +(250:1) node (Cc) {};\n                        \\draw[to_3]  (Cb.center)    -- (Cc.center)\n                                        -- (Cd.center)\n                                        -- (nh.center);\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Leucine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (180:8.2)\n                                        arc(180:180+22.25:8.2);\n                        \\path (-90-14.5*5.625:13) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw (zero.center)     -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {}\n                                        -- +(30:1) node (Cd) {} (Cc.center)\n                                        -- +(270:1) node (Ce) {};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Tyrosine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (180-11.25:8.2)\n                                        arc(180-11.25:180-22.5:8.2);\n                        \\path (180-3*5.625:16) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){};\n                        \\draw        (Cb.center)    -- ++(330:1) node (Cc) {}\n                                        -- ++(30:1) node (Cd) {}\n                                        -- ++(330:1) node (Ce) {}\n                                        -- ++(270:1) node (Cf) {}\n                                        -- ++(210:1) node (Cg) {}\n                                        -- ++(150:1) node (Ch) {}\n                                        -- ++(90:1);\n                        \\draw        (Cc.330)       -- (Cd.270);\n                        \\draw        (Ce.210)       -- (Cf.150);\n                        \\draw        (Cg.90)        -- (Ch.30);\n                        \\draw[to_1i] (Cf.center)    -- +(330:1) node (OH) {OH};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Tryptophane\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (180-22.5-5.625:8.2)\n                                        arc(180-22.5-5.625:180-22.5-11.25:8.2);\n                        \\path (180-22.5-1.8*5.625:16) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node(Cc){};\n                        \\draw[to_2]  (Cc.center)    -- ++(108-1*72:1) node (Cd) {}\n                                        -- ++(108-2*72:1) node (Ce) {NH};\n                        \\draw[from_1](Ce.center)    -- ++(108-3*72:1) node (Cf) {}\n                                        -- ++(108-4*72:1) node (Cg) {};\n                        \\draw        (Cg.center)    -- (Cc.center);\n                        \\draw        (Cc.198+2*72)  -- (Cd.198+1*72);\n                        \\draw        (Cg.72)        -- (Cf.198+4*72);\n                        \\draw        (Cg.center)    -- ++(240:1) node (Ch) {}\n                                        -- ++(300:1) node (Ci) {}\n                                        -- ++(0:1) node (Cj) {}\n                                        -- ++(60:1) node (Ck) {}\n                                        -- ++(120:1) node (Cl) {};\n                        \\draw        (Ch.0)     -- (Ci.60);\n                        \\draw        (Cj.120)       -- (Ck.180);\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Cysteine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (180-45+11.25:8.2)\n                                        arc(180-45+11.25:180-45:8.2);\n                        \\path (180-45+11.25-1*7.625:12) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(210:1) node (Cc) {SH};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Serine\n                        \\draw[ultra thick,shorten >=1pt,shorten &lt;=2pt] (90+45:8.2)\n                                        arc(90+45:90+45-22.5:8.2);\n                        \\path (90+45-11.25+0*5.625:14) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw[to_2]  (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(330:1) node (Cc) {OH};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Leucine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (90+22.5:8.2)\n                                        arc(90+22.5:90+11.25:8.2);\n                        \\path (90+22.5-1.2*5.625:16) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){}\n                                        -- ++(210:1) node (Cc) {}\n                                        -- +(150:1) node (Cd) {} (Cc.center)\n                                        -- +(270:1) node (Ce) {};\n                        \\end{scope}\n                        \\begin{scope}[scale=0.5]    % Phenylalanine\n                        \\draw[ultra thick,shorten >=2pt,shorten &lt;=2pt] (90+11.25:8.2)\n                                        arc(90+11.25:90:8.2);\n                        \\path (90+1.5*5.625:13) node (zero) {};\n                        \\draw[to_2]  (zero.center)  -- ++(30:1) node (CO) {}\n                                        -- +(330:1) node [anchor=base] {O$^{\\mbox{-}}$};\n                        \\draw[to_1]  (CO.center)    -- +(90:1) node (Od) {O};\n                        \\draw[to_1i] (CO.30)        -- +(90:1);\n                        \\draw[to_3]  (zero.center)  -- ++(150:1) node {NH$_{\\mbox{3}}^{\\mbox{+}}$};\n                        \\draw        (zero.center)  -- ++(270:1) node(Cb){};\n                        \\draw        (Cb.center)    -- ++(210:1) node (Cc) {}\n                                        -- ++(150:1) node (Cd) {}\n                                        -- ++(210:1) node (Ce) {}\n                                        -- ++(270:1) node (Cf) {}\n                                        -- ++(330:1) node (Cg) {}\n                                        -- ++(30:1) node (Ch) {}\n                                        -- ++(90:1);\n                        \\draw        (Cc.210)       -- (Cd.270);\n                        \\draw        (Ce.330)       -- (Cf.30);\n                        \\draw        (Cg.90)        -- (Ch.150);\n                        \\end{scope}\n                        \\node at (90-1*5.625:4.5) {K};\n                        \\node at (90-3*5.625:4.5) {N};\n                        \\node at (90-5*5.625:4.5) {R};\n                        \\node at (90-7*5.625:4.5) {S};\n                        \\node at (90-10*5.625:4.5) {T};\n                        \\node at (90-12.5*5.625:4.5) {I};\n                        \\node at (90-13.7*5.625:4.7) {M / $\\star$};\n                        \\node at (90-15*5.625:4.5) {I};\n                        \\node at (90-17*5.625:4.5) {E};\n                        \\node at (90-19*5.625:4.5) {D};\n                        \\node at (90-22*5.625:4.5) {G};\n                        \\node at (90-26*5.625:4.5) {A};\n                        \\node at (90-30*5.625:4.5) {V};\n                        \\node at (90-33*5.625:4.5) {Q};\n                        \\node at (90-35*5.625:4.5) {H};\n                        \\node at (90-38*5.625:4.5) {R};\n                        \\node at (90-42*5.625:4.5) {P};\n                        \\node at (90-46*5.625:4.5) {L};\n                        \\node at (90-49*5.625:4.5) {$\\dagger$};\n                        \\node at (90-51*5.625:4.5) {Y};\n                        \\node at (90-52.3*5.625:4.5) {$\\dagger$};\n                        \\node at (90-53.3*5.625:4.5) {W};\n                        \\node at (90-55*5.625:4.5) {C};\n                        \\node at (90-58*5.625:4.5) {S};\n                        \\node at (90-61*5.625:4.5) {L};\n                        \\node at (90-63*5.625:4.5) {F};\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n                </figure>\n            </subsubsection>\n\n            <subsubsection>\n                <title>Scaling TikZ Images</title>\n\n                <p>Images authored in <url href=\"https://github.com/pgf-tikz/pgf\">TikZ</url> are the most popular.   Text (nodes) in a TikZ picture are at whatever the current <latex/> font size is.  The other parts of the picture (lines, circles, rays, etc.; the <q>line art</q>) can be scaled as part of an overall scale factor.  The point being, the scale factor will not scale the text simultaneously.  It is not unlike a map application on your mobile device.  The name of a road is too small to read, so you zoom in on the map, making the street bigger, but the name stays in the same font size and is still unreadable.  This means some manual labor is involved when you place a TikZ picture into a <pretext/> document.</p>\n\n                <p>For many authors, the goal is to have the text in their TikZ picture have the same size as the surrounding text, both in a <init>PDF</init> and in <init>HTML</init>.  We now explain how to accomplish this consistently.</p>\n\n                <paragraphs>\n                    <title>Preparation</title>\n\n                    <p>Well <em>before</em> designing many TikZ images, answer the following questions.<ol>\n                        <li>For your <latex/> output, what will the overall font size be?</li>\n                        <li>For your <latex/> output, what will the width of the text block be?  Note that this will normally be computed by <pretext/>, dependent on your chosen font size.  A larger font will mean a greater width.  You can generate the <latex/> source file and look early in the preamble to see what width is being used.  It is also possible that you may be setting this with yourself (<xref ref=\"page-shape\"/>).  The ratio of line width to font size is always <m>34:1</m>.</li>\n                    </ol></p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title>TikZ in <latex/></title>\n\n                    <p>Every image in <pretext/> may be constrained by width and/or margins, or may be restricted to a panel of a <tag>sidebyside</tag> with a certain width.  So the TikZ code you author will create an image that is then scaled by <pretext/> to fit the constraints (much as any other image is scaled).  Except this is done in a way that scales both the font and the line art.  Your main goal is to have this scaling use a scale factor of <m>1.0</m>.  Which, of course, sounds like a waste of effort, but it is critical for how the image behaves in <init>HTML</init> (next).</p>\n\n                    <p>To accomplish this unit scaling, follow this procedure for each TikZ picture.<ol>\n                        <li>Determine the width of the TikZ picture itself, in physical units of length.  Typically, the lengths used for larger portions are described in centimeters.  But note that an overall scale factor is sometimes applied for convenience (or as a result of poor planning!).  Also, the default unit length (centimeters) can be changed.  Note also, that text may <q>push out</q> to the right and left, defining the boundaries on the sides, and these lengths can be hard to compute or predict.</li>\n                        <li>Recall the width of your text (above).  Recognize that list items will be indented (reducing width), and perhaps there are multiple indents if a list has multiple levels.</li>\n                        <li>Now you want the width of your picture as a percentage of the overall available width.  By default, your overall width will be points, and your picture width will be in centimeters.  You may be familiar with a <q>big point</q> (or <q>desktop publishing point</q>) which is <m>72</m> points to the inch.  <tex/> however uses <m>72.27</m> points to the inch, which makes a <tex/> point equal to <m>0.03514598</m> centimeters.  Convert to whatever common unit makes sense to you, since it is the dimension-less ratio you are after.</li>\n                        <li>Use this percentage as the <attr>width</attr> attribute on the <tag>image</tag> (with a percent sign).</li>\n                    </ol>Now produce a <init>PDF</init> and you will find that the font in the surrounding text, and the font in image, will match identically.  I like to check this carefully by zomming in on the <init>PDF</init> and using an on-screen pixel ruler to check the heights of identical letters.  <url href=\"https://apps.kde.org/kruler/\">KRuler</url> is one such example for Linux, suggestions for other operating systems are welcome.</p>\n\n                    <p>Note that in practice you will envision your picture as large or small, and you will begin with some overall physical width in mind, relative to the line width.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title>TikZ in <init>HTML</init></title>\n\n                    <p>For <init>HTML</init> output, the goal is to not edit your source.  In other words to not change the <attr>width</attr> attributes that have been so carefully computed and to not edit the TikZ code.  But you will want to maintain fidelity with the surrounding font.</p>\n\n                    <p><init>HTML</init> output is designed to behave very similarly (not identically) to how <latex/> output behaves.  In other words, the ratio of line width to font size is <m>34:1</m>.  In this way, line length and font size are such that a long paragraph will usually have an identical number of lines in <latex/> (at any font size) and in <init>HTML</init>.</p>\n\n                    <p>Our tools produce Scalable Vector Graphics (<init>SVG</init>) versions of TikZ pictures for use in <init>HTML</init> output.  Being scalable means a reader can zoom in without any pixelation of the images.  This is helpful for those with low vision, or if some fine point of a picture needs to be examined closely.  It also means an SVG can be scaled by any factor when placed in <pretext/> <init>HTML</init>.  However, the work done for a unit scaling for <latex/> output will continue to provide the correct scaling for <init>HTML</init>!  (Provided the text width used for the <init>PDF</init> production is the one automatically computed from the font size via the <m>34:1</m> ratio.)</p>\n                </paragraphs>\n\n                <example>\n                    <title>Case Study: Scaling a TikZ picture</title>\n\n                    <p>The <pretext/> source below describes a simple TikZ picture, nd is followed by the picture itself.  The rectangle is 8 centimeters wide.  The Guide is produced as a <init>PDF</init> with 10 point text and a text width of <m>6.5</m> inches.  (This is too wide for comfortable reading, and contrary to our recommendations.  See <xref ref=\"best-practice-too-much-text\"/>.)   Normally, a choice of 10 point text would result in a width of <m>340</m> point, or about <m>4.7</m> inches.</p>\n\n                    <p>So we compute the fraction of the available width required, as a percentage:\n                        <md>\\frac{8\\text{ cm}}{6.5\\text{ in}} =\n                            \\frac{8\\text{ cm}\\left(\\frac{1\\text{ in}}{2.54\\text{ cm}}\\right)}{6.5\\text{ in}} =\n                            0.4846 = 48.46\\%</md>\n                    and we use that as the width of the image.</p>\n\n                    <pre><![CDATA[\n                    <image width=\"48.46%\">\n                        <latex-image label=\"scaling-tikz\">\n                        \\begin{tikzpicture}\n                        % 1 cm is default unit of length\n                        % a rectangle: 8 cm wide, 6 cm tall\n                        \\draw[draw=black, thick] (4,2) rectangle (-4,-2);\n\n                        \\node at (-2,  1) {Foo};\n                        \\node at ( 2,  1) {Bar};\n                        \\node at (-2, -1) {Baz};\n                        \\node at ( 2, -1) {Qux};\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>]]>\n                    </pre>\n\n                    <p>Some characters for comparison: Foo<nbsp/><nbsp/>Bar<nbsp/><nbsp/>Baz<nbsp/><nbsp/>Qux</p>\n\n                    <image width=\"48.46%\">\n                        <latex-image label=\"scaling-tikz\">\n                        \\begin{tikzpicture}\n                        % 1 cm is default unit of length\n                        % a rectangle: 8 cm wide, 6 cm tall\n                        \\draw[draw=black, thick] (4,2) rectangle (-4,-2);\n\n                        \\node at (-2,  1) {Foo};\n                        \\node at ( 2,  1) {Bar};\n                        \\node at (-2, -1) {Baz};\n                        \\node at ( 2, -1) {Qux};\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n\n                    <p>In the <init>PDF</init> version, the text matches between the image and the surrounding text almost identically.  We could slide the image right and left by adjusting the margins (the default is to be centered).  But if we want the image bigger and smaller, we need to adjust the TikZ code and recompute the <attr>width</attr> attribute.</p>\n\n                    <p>Now for <init>HTML</init> we need to produce an <init>SVG</init> version that is a close match.  The <init>HTML</init> version is a close match for <latex/> built with a computed text width (for any font size).  We do not want to change the percentage of the width devoted to the TikZ picture, and we do not want to change the TikZ code itself.  If we had not chosen a different text width (the <m>6.5</m> inches, versus a computed <m>340</m> point), then we could generate the <init>SVG</init> by supplying the same publication file, so as to use the same font size.  However, our text width is 38% larger in the <latex/> version,\n                        <md>\\frac{6.5\\text{ in}}{340\\text{ pt}} =\n                            \\frac{6.5\\text{ in}\\left(\\frac{72.27\\text{ pt}}{1\\text{ in}}\\right)}{340\\text{ pt}} = 1.3816</md>\n                    The font size needs to increase by a similar percentage,\n                        <md>10\\text{ pt}\\times 1.3816 = 13.816\\text{ pt}\\approx 14\\text{ pt}</md>\n                    So we generate the <init>SVG</init> image with a <em>different</em> publication file, giving a font size of 14 point.  The <init>HTML</init> font in the text may be very different from the <latex/> font used in the TikZ picture, but their <em>sizes</em> are nearly identical.  Note that our use of <latex/> only supports 8 different font sizes, so it was fortuitous in this example that the 38% increase was so close to the supported 14 point font size.  Note also, that since we used a different text width for the <init>PDF</init>, the resulting 40% increase in the font size for the <init>SVG</init> could play havoc with text that has been placed carefully not to overlap other components of the picture.</p>\n                </example>\n\n                <p>There are myriad ways to scale and transform a TikZ picture.  You might choose to intentionally use a smaller font size than the surrounding text, as in <xref ref=\"rna-codons-figure\"/>.  Or, fidelity with the surrounding text might not be important to you.  Or you might prefer that images perform better in <init>HTML</init>.  But hopefully the above discussion and example provide enough insight into how the various constructions behave.  The important points are:<ul>\n                    <li>TikZ uses physical units for the overall width of a picture, and nodes have text using the ambient font size of the <pretext/> <latex/> file (unless prescribed otherwise).</li>\n\n                    <li><pretext/> scales a TikZ picture uniformly (text <em>and</em> line art) to fit into constraints given in the source.</li>\n\n                    <li>The <init>SVG</init> version of a TikZ picture is also uniformly scalable and at the same width as the original will have text of the correct font size.  However, when used in <init>HTML</init> output, it is scaled on the assumption that the ratio of the line  width to the font size is 34:1.  This is the default width computed by <pretext/> for all supported font sizes.  Changes in this ratio for <init>PDF</init> production requires an equivalent change in font size during <init>SVG</init> construction, via the publication file.</li>\n                </ul></p>\n            </subsubsection>\n\n            <subsubsection xml:id=\"topic-sageplot\">\n                <title>Images in Sage Syntax</title>\n\n                <p>Sometimes the necessary computations for an image are not part of the capabilities of whatever system is actually realizing the image.  We have good support for Sage in other parts of your document, and Sage has an extremely wide variety of computational capabilities, in addition to letting you program your own computations in Python syntax with the full support of the Sage library.  Rather than translating Sage output as input to some other graphics program, we simply capture the graphics output from Sage.  So if your graphics are derived from non-standard, or intensive, computation this might be your best avenue.</p>\n\n                <p>Use the <tag>sageplot</tag> element, in a manner entirely similar to the <tag>asymptote</tag> element and the <tag>latex-image</tag> element, as a child of <tag>image</tag>, and containing the necessary Sage code to construct the image.  There is one very important twist.  The last line of your Sage code <alert>must</alert> return a Sage <c>Graphics</c> object.  The <c>pretext/pretext</c> script (<xref ref=\"pretext-script\"/>) and <pretext/>-CLI (<xref ref=\"processing-CLI\"/>) will isolate this last line, use it as the right-hand side of an assignment statement, and the Sage <c>.save()</c> method will automatically be called to generate the image in a file.  Like <tag>asymptote</tag> and <tag>latex-image</tag>, putting a <attr>label</attr> on the <tag>sageplot</tag> tag will determine the name of this file.  Note that there are four different file types, depending on if the graphic is 2D or 3D, and the output format of the conversion.</p>\n\n                <p>The <attr>variant</attr> attribute of the <tag>sageplot</tag> element may be <c>2d</c> or <c>3d</c>, since <pretext/> is not capable of analyzing your Sage code.  The default value is <c>3d</c> so can be skipped for 2D plots.  For technical reasons, it is also necessary to specify the aspect ratio of a graphic for the 3D case using the <attr>aspect</attr> attribute.  The value can be a positive real number (decimal) or a ratio of two positive integers separated by a colon.  The default is a square (<c>1.0</c> or <c>1:1</c>).</p>\n\n                <table>\n                    <title>File formats for <c>sageplot</c> images</title>\n                    <tabular>\n                        <col right=\"major\"/>\n                        <col/>\n                        <col/>\n                        <row bottom=\"major\">\n                            <cell/>\n                            <cell>2D</cell>\n                            <cell>3D</cell>\n                        </row>\n                        <row>\n                            <cell><latex/></cell>\n                            <cell>PDF</cell>\n                            <cell>PNG</cell>\n                        </row>\n                        <row valign=\"top\">\n                            <cell>HTML</cell>\n                            <cell>SVG</cell>\n                            <cell>HTML (for <c>iframe</c>)</cell>\n                        </row>\n                        <row valign=\"top\">\n                            <cell>EPUB</cell>\n                            <cell>SVG</cell>\n                            <cell>PNG</cell>\n                        </row>\n                        <row valign=\"top\">\n                            <cell>Kindle</cell>\n                            <cell>PNG</cell>\n                            <cell>PNG</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <p>Note that the <init>PNG</init> images in the 3D case are not very good.  This needs help on the Sage side.  And since 3D images in <init>HTML</init> output are inserted via an <init>HTML</init> <c>iframe</c> they can misbehave if you do not get the aspect ratio close to right.  On the plus side, the 3D <init>HTML</init> images may be manipulated interactively with keyboard arrow keys, a mouse scroll wheel, and by dragging with a mouse using both a left and a right mouse press.  Note that EPUB output used to make a Kindle book needs to use PNG images for both the 2D and 3D cases.</p>\n\n\n                <p>Pay very careful attention to the requirement that the last line of your code evaluates to be a graphics object.  In particular, while <c>show()</c> might appear to do the right thing during testing, it evaluates to Python's <c>None</c> object and that is just what you will get for your image.  The example below illustrates creating two graphics objects and combining them into an expression on the last line that evaluates to the graphics object that will be created in the desired graphics files.</p>\n\n                <pre><![CDATA[\n                <figure>\n                    <caption>Negative multiple of a curve</caption>\n                    <image width=\"65%\">\n                        <description><p>Plot of x^4 - 1 and its negative.</p></description>\n                        <sageplot label=\"negative-curve\">\n                        f(x) = x^4 - 1\n                        g(x) = -x^4 + 1\n                        up = plot(f, (x, -1.5, 1.5), color='blue', thickness=2)\n                        down = plot(g, (x, -1.5, 1.5), color='red', thickness=2)\n                        up + down\n                        </sageplot>\n                    </image>\n                </figure>\n                ]]></pre>\n\n                <p>This will result in:</p>\n\n                <figure>\n                    <caption>Negative multiple of a curve</caption>\n                    <image width=\"65%\">\n                        <description><p>Plot of x^4 - 1 and its negative.</p></description>\n                        <sageplot label=\"negative-curve\">\n                        f(x) = x^4 - 1\n                        g(x) = -x^4 + 1\n                        up = plot(f, (x, -1.5, 1.5), color='blue', thickness=2)\n                        down = plot(g, (x, -1.5, 1.5), color='red', thickness=2)\n                        up + down\n                        </sageplot>\n                    </image>\n                </figure>\n\n                <p>Note the necessity of using the <c>pretext</c> script (<xref ref=\"pretext-script\"/>) to independently invoke Sage, no matter what sort of output is being created for your document.</p>\n            </subsubsection>\n\n            <subsubsection xml:id=\"topic-mermaid\">\n                <title>Mermaid</title>\n\n                <p><url href=\"https://mermaid.js.org/\" visual=\"mermaid.js.org\">Mermaid</url> is a Markdown-inspired tool for authoring various kinds of diagrams. One kind of diagram - a git commit visualization - is shown below. For a full listing of diagram types, see the <url href=\"https://mermaid.js.org/intro/#diagram-types\">Mermaid Documentation</url>. The <url href=\"https://mermaid.live/\" visual=\"mermaid.live\">Mermaid live editor</url>is a great tool for testing the syntax of your mermaid diagrams.</p>\n\n                <p>You can specify global settings for diagrams via an entry in the publication files, see <xref ref=\"common-mermaid\"/>. The available options are the same as the ones available in the <c>config</c> frontmatter section of a diagram.  Note that the <c>neutral</c> theme will produce grayscale images, which could be useful for controlling the cost of a print-on-demand version.</p>\n\n                <p>To author a Mermaid diagram, use a <tag>image</tag> that contains a <tag>mermaid</tag> element. A <attr>label</attr> on the <tag>mermaid</tag> element will be used to construct a filename<mdash/>you will want to utilize this feature.</p>\n\n                <pre>\n                &lt;figure xml:id=\"figure-mermaid-git\"&gt;\n                    &lt;caption&gt;Mermaid Git Diagram&lt;/caption&gt;\n                    &lt;image&gt;\n                        &lt;mermaid label=\"mermaid-git-image\"&gt;\n                    ---\n                    title: Example Git diagram\n                    config:\n                        theme: default\n                        layout dagre\n                    ---\n                    gitGraph\n                        commit\n                        commit\n                        branch develop\n                        checkout develop\n                        commit\n                        commit\n                        checkout main\n                        merge develop\n                        commit\n                        commit\n                        &lt;/mermaid&gt;\n                    &lt;/image&gt;\n                &lt;/figure&gt;\n                </pre>\n\n                <figure xml:id=\"figure-mermaid-git\">\n                    <caption>Mermaid Git Diagram</caption>\n                    <image>\n                        <mermaid label=\"mermaid-git-image\">\n                            ---\n                            title: Example Git diagram\n                            ---\n                            gitGraph\n                                commit\n                                commit\n                                branch develop\n                                checkout develop\n                                commit\n                                commit\n                                checkout main\n                                merge develop\n                                commit\n                                commit\n                        </mermaid>\n                    </image>\n                </figure>\n\n                <p>Mermaid has two layout engines<mdash/>the default and <c>elk</c>. The ELK engine often does a better job with complex diagrams. You can specify it as a default by setting <attr>common/mermaid/@layout-engine</attr> to <c>\"elk\"</c>, or by using standard Mermaid config frontmatter as shown in <xref ref=\"figure-mermaid-elk-layout\"/> below.</p>\n\n                <figure xml:id=\"figure-mermaid-elk-layout\">\n                    <caption>Mermaid Class Diagram using ELK layout engine</caption>\n                    <image>\n                        <mermaid label=\"mermaid-elk-layout\"><![CDATA[\n                ---\n                title: Mermaid layout using ELK\n                config:\n                  layout: elk\n                ---\n                classDiagram\n                          OrderMethod <|-- Phone\n                          OrderMethod <|-- Online\n                          OrderMethod <|-- InStore\n                          PaymentMethod <|-- Cash\n                          PaymentMethod <|-- Account\n                          PaymentMethod <|-- Credit\n                          Phone <|-- CashPhone\n                          Phone <|-- AccountPhone\n                          Phone <|-- CreditPhone\n                          Online <|-- CashOnline\n                          Online <|-- AccountOnline\n                          Online <|-- CreditOnline\n                          InStore <|-- CashInStore\n                          InStore <|-- AccountInStore\n                          InStore <|-- CreditInStore\n                          Cash <|-- CashPhone\n                          Account <|-- AccountPhone\n                          Credit <|-- CreditPhone\n                          Cash <|-- CashOnline\n                          Account <|-- AccountOnline\n                          Credit <|-- CreditOnline\n                          Cash <|-- CashInStore\n                          Account <|-- AccountInStore\n                          Credit <|-- CreditInStore\n                        ]]>\n                        </mermaid>\n                    </image>\n                </figure>\n\n            </subsubsection>\n        </subsection>\n\n        <subsection>\n            <title>Image Formats</title>\n\n            <note>\n                <title>Preferred Image Formats</title>\n\n                <p>The best formats for images, in order, are:<dl width=\"narrow\">\n                    <li>\n                        <title>SVG</title>\n                        <p>Vector graphics format ideal for <init>HTML</init> output formats.  Scalable and compact.  Converts to other formats, such as <init>PDF</init>.</p>\n                    </li>\n\n                    <li>\n                        <title>PDF</title>\n                        <p>Vector graphics format ideal for print and <init>PDF</init> output formats.  Good tools exist to convert back-and-forth between <init>SVG</init> and <init>PDF</init>.</p>\n                    </li>\n\n                    <li>\n                        <title>PNG</title>\n                        <p>Lossless and compressible format for raster images.  May be used for both <init>HTML</init> and <init>PDF</init> outputs.</p>\n                    </li>\n\n                    <li>\n                        <title>JPEG</title>\n                        <p>Compressed lossy format which works well for photographs.  May be used for both <init>HTML</init> and <init>PDF</init> outputs.  <init>PNG</init> should be preferred when there is a choice, except in the case of a photograph.  Converting between these formats is unlikely to be an improvement.</p>\n                    </li>\n                </dl></p>\n            </note>\n        </subsection>\n\n        <subsection xml:id=\"topic-images-archive\">\n            <title>Image Archives</title>\n\n            <p>As an instructor, you might want to recycle images from a text for a classroom presentation, a project handout, or an examination question.  As an author, you can elect to make images files available through links in the HTML version, and it is easy and flexible to produce those links automatically.</p>\n\n            <p>First, it is your responsibility to manufacture the files.  For making different formats, the <c>pretext</c> script can sometimes help (<xref ref=\"pretext-script\" />).  The Image Magick <c>convert</c> command is a quick way to make raster images in different formats, while the <c>pdf2svg</c> executable is good for converting vector graphics <init>PDF</init>s into <init>SVG</init>s (although now the <c>pretext</c> script uses the <c>pyMuPDF</c> library for these tasks instead).  Also, to make this easy to specify, different versions of the same image must have identical paths and names, other than the suffixes.  Finally, the case and spelling of the suffix in your <pretext/> source must match the filename (<eg /> <c>jpg</c> versus <c>JPEG</c>).  OK, those are the ground rules.</p>\n\n            <p>For links for a single image, add the <attr>archive</attr> attribute to the <tag>image</tag> element, such as<cd>\n                <cline>&lt;image  ...  archive=\"pdf svg\"&gt;</cline>\n            </cd>to get two links for a single image.</p>\n\n            <p>To have every single image receive an identical collection of links, in <c>docinfo/images</c> place an <tag>archive</tag> element whose content is the space-separated list of suffixes/formats.<cd>\n                <cline>&lt;archive&gt;png JPEG tex ods&lt;/archive&gt;</cline>\n            </cd>will provide four links on every image, including a link to an OpenDocument spreadsheet.</p>\n\n            <p>For a collection of images that is contained within some portion of your document, you can place an <attr>xml:id</attr> on the enclosing element and then in <c>docinfo/images</c> place<cd>\n                <cline>&lt;archive from=\"the-xml-id-on-the-portion\"&gt;svg png&lt;/archive&gt;</cline>\n            </cd>to get two links on every image <em>only</em> in that portion (chapter, subsection, side-by-side, <etc />).  The <attr>from</attr> attribute is meant to suggest the root of a subtree of your hierarchical document.  If you use this, then <em>do not</em> use the global form that does not have <attr>from</attr>.</p>\n\n            <p>You may accumulate several of the above semi-global semi-local forms in succession.  An image will receive links according to the last <tag>archive</tag> whose <attr>from</attr> subtree contains the image.  So the strategy is to place general, large subtree, specifications early, and use refined, smaller subtree specifications later.  For example,<cd>\n                <cline>&lt;archive from=\"the-xml:id-on-a-chapter\"&gt;svg png&lt;/archive&gt;</cline>\n                <cline>&lt;archive from=\"the-xml:id-on-the-introduction\"&gt;jpeg&lt;/archive&gt;</cline>\n                <cline>&lt;archive from=\"the-xml:id-on-a-section-within\" /&gt;</cline>\n            </cd>will put two links on every image of a chapter, but just one link on images in the introduction, and no links at all on every image image within one specific section.  Again, do not mix with the global form.  You can use the root document node (<eg /> <tag>book</tag>) for <attr>from</attr> to obtain a global treatment, but it is unnecessary (and inefficient) to provide empty content for the root node as first in the list<mdash />the same effect is the default behavior.</p>\n\n            <p>Notice that this facility does not restrict you to providing files of the same image, or even images at all.  You could choose to make data files available for each data plot you provide, as spreadsheets, or text files, or whatever you have, or whatever you think your readers need.</p>\n\n            <p>Finally, <q>archive</q> may be a bit of a misnomer, since there is no historical aspect to any of this.  Maybe <q>repository</q> would be more accurate.  Though for a history textbook, it might be a perfect name.</p>\n        </subsection>\n\n        <subsection>\n            <title>Copies of Images</title>\n\n            <p>Sometimes you want to use the same image more than once.  Putting it in a <tag>figure</tag> and then making a cross-reference (<tag>xref</tag>) can work well in <init>HTML</init> output since it will be available as a knowl.  However in a static format (<init>PDF</init>, print) the reader will need to chase the cross-reference.</p>\n\n            <p>For a raster image, you can just point to the file again with the <attr>source</attr> attribute.  You are free to wrap it in a <c>figure</c> and thus change the caption.  It will get a new number as a new figure, and you will need to assign a new unique <attr>xml:id</attr> attribute.  Maybe appending <c>-copy-2</c>, or similar, to the <attr>xml:id</attr> will be helpful.</p>\n\n            <p>If you have a figure generated from source code (such as in TikZ) you really do not want to edit and maintain two copies that may not stay in sync.  Instead, you can place the code into a file and <c>xinclude</c> it twice.  Study <xref ref=\"topic-xinclude\"/> carefully, and note that this is an excellent place to take advantage of setting the <attr>parse</attr> attribute to <c>text</c> (no need to escape problematic <init>XML</init> characters).  Notice that when you generate images, you will have two image files with identical contents, but different names.  This is no place for false optimization.  Bits are cheap and your time is valuable.  It is far more important to only maintain a single copy of the source, than to be caught up with the <q>waste</q> of having two copies of the same file (and which are managed for you).  We demonstrate this with the sample book, since it is all set up with the <c>xinclude</c> mechanism.  See the two plots of the 8-th roots of unity in the complex numbers section of the chapter on cyclic groups.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-console\">\n        <title>Consoles</title>\n        <idx>console</idx>\n\n        <subsection>\n            <title>Content and Placement of Consoles</title>\n\n            <p>A <tag>console</tag> is a transcript of an interactive session in a terminal or console at a command-line.  It is a sequence of the following elements, in this order, possibly repeated many times as a group: <tag>input</tag>, and <tag>output</tag>.  The <tag>output</tag> is optional.  The content of these two elements is treated as verbatim text (see <xref ref=\"overview-verbatim-literal\"/>), subject to all the exceptions for exceptional characters (see <xref ref=\"overview-exceptional-characters\"/>).  A <attr>prompt</attr> attribute on the <tag>input</tag> can be supplied to provide a system prompt distinct from the actual commands.  The default prompt is a dollar sign followed by a space.  If it is more convenient <attr>prompt</attr> may be supplied on the <tag>console</tag>, to be used in each enclosed <tag>input</tag>.  If you do not want any prompts at all, just use an empty value for <attr>prompt</attr>. A <attr>continuation</attr> attribute may also be supplied at the <tag>input</tag> or <tag>console</tag>. If present, it will apply to the start of each input line following the first.</p>\n\n            <p>A <tag>console</tag> may be wrapped in a <tag>listing</tag>, see <xref ref=\"topic-listing\"/>.  This will behave similar to a <tag>figure</tag>, with the <tag>caption</tag> displayed below, and a number assigned.  So, in particular, if your program is important enough to cross-reference, it is an enclosing <tag>listing</tag> that serves as the target.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-program\">\n        <title>Programs and Program Fragments</title>\n        <idx>program</idx>\n\n        <subsection>\n            <title>Content and Placement of Programs</title>\n\n            <subsubsection xml:id=\"program-content-placement\">\n                <title>Content and Placement</title>\n\n            <p>A <tag>program</tag> will be treated as verbatim text (see <xref ref=\"overview-verbatim-literal\"/>), subject to all the exceptions for exceptional characters (see <xref ref=\"overview-exceptional-characters\"/>).  Indentation will be preserved, though an equal amount of leading whitespace will be stripped from every line, so as to keep the code shifted left as far as possible.  So you can indent your code consistently along with your <init>XML</init> indentation.  For this reason it is best to indent with spaces, and not tabs.  A mix will almost surely end badly, and in some programming languages tabs are discouraged (e.g. Python).</p>\n\n            <p>The text contents of a program can be surrounded with <tag>code</tag>, but that is only necessary if you have other elements inside of the <tag>program</tag> like <tag>preamble</tag> or <tag>tests</tag> used by an interactive program (see <xref ref=\"interactive-program-activecode\"/> below for details).</p>\n\n            <p>A <tag>program</tag> or <tag>console</tag> may be wrapped in a <tag>listing</tag>, see <xref ref=\"topic-listing\"/>.  This will behave similar to a <tag>figure</tag>, with the <tag>title</tag> displayed above, and a number assigned.  So, in particular, if your program or console is important enough to cross-reference, it is an enclosing <tag>listing</tag> that serves as the target.</p>\n\n            <p>The <attr>language</attr> attribute may be used to get some degree of language-specific syntax highlighting and/or interactive behavior.  The current known languages are:\n                <ul cols=\"3\">\n                    <li><c>basic</c></li>\n                    <li><c>c</c></li>\n                    <li><c>cpp</c></li>\n                    <li><c>go</c></li>\n                    <li><c>java</c></li>\n                    <li><c>javascript</c></li>\n                    <li><c>lua</c></li>\n                    <li><c>pascal</c></li>\n                    <li><c>perl</c></li>\n                    <li><c>python</c></li>\n                    <li><c>python3</c></li>\n                    <li><c>r</c></li>\n                    <li><c>s</c></li>\n                    <li><c>sas</c></li>\n                    <li><c>sage</c></li>\n                    <li><c>splus</c></li>\n                    <li><c>vbasic</c></li>\n                    <li><c>vbscript</c></li>\n                    <li><c>clojure</c></li>\n                    <li><c>lisp</c></li>\n                    <li><c>clisp</c></li>\n                    <li><c>elisp</c></li>\n                    <li><c>scheme</c></li>\n                    <li><c>racket</c></li>\n                    <li><c>sql</c></li>\n                    <li><c>llvm</c></li>\n                    <li><c>matlab</c></li>\n                    <li><c>octave</c></li>\n                    <li><c>ml</c></li>\n                    <li><c>ocaml</c></li>\n                    <li><c>fsharp</c></li>\n                    <li><c>css</c></li>\n                    <li><c>latex</c></li>\n                    <li><c>html</c></li>\n                    <li><c>tex</c></li>\n                    <li><c>xml</c></li>\n                    <li><c>xslt</c></li>\n                </ul>\n            </p>\n\n            <p>In some output formats, notably <init>HTML</init>, the syntax highlighter can add lines or highlight individual lines of code. Highlighting lines is not supported for <latex/> output.  To display line numbers, set the <attr>line-numbers</attr> attribute to <c>yes</c>. To highlight particular lines, set <attr>highlight-lines</attr> to a comma-separated list consisting of individual lines and/or ranges indicated with dashes.  Some examples are: <c>5</c>, <c>2,5</c>,  <c>2,5-8,10-15,15</c>.</p>\n\n            <xi:include href=\"../../../examples/sample-book/rune-examples/static-listing-java.xml\"/>\n\n            <p>For interactive versions hosted on Runestone servers, the <attr>label</attr> attribute is critical, just like for interactive exercises.  So be certain to read <xref ref=\"best-practice-label\"/>.</p>\n\n            <p>Finally, when authoring programs, it may be helpful to keep the source code as plain text in separate files. This can avoid the need to manually escape characters that have special meaning in XML and can facilitate testing and updating the code samples. See <xref ref=\"topic-xinclude\"/> for how to do so.</p>\n            </subsubsection>\n\n            <subsubsection xml:id=\"program-default-values\">\n                <title>Default Attributes for Programs</title>\n                <p>Book-level default values for some program attributes can be set in <c>docinfo/programs</c>. If a value for an attribute is set in that location, it will be used for any <tag>program</tag> that lacks the corresponding attribute.</p>\n                <p>The following attributes can be given default values - some only are applicable to interactive programs (see <xref ref=\"interactive-program-codelens\"/> and <xref ref=\"interactive-program-activecode\"/>): <attr>compiler-args</attr>, <attr>linker-args</attr>, <attr>interpreter-args</attr>, <attr>download</attr>, <attr>language</attr>, <attr>linenumbers</attr>, and <attr>timelimit</attr>.</p>\n            </subsubsection>\n\n            <subsubsection xml:id=\"program-fragments\">\n                <title>Program Fragments</title>\n                <p>Fragments of a program can be added inline with text using the <tag>pf</tag>. A program fragment will be displayed similar to a <tag>c</tag>, but will be syntax highlighted to match a <tag>program</tag>. The language to interpret the fragment as can be specified with <attr>language</attr> or by relying on a document level default for programs (see <xref ref=\"program-default-values\"/>).</p>\n            </subsubsection>\n        </subsection>\n\n        <subsection xml:id=\"interactive-program-codelens\">\n            <title>Interactive Programs, CodeLens</title>\n\n            <p><term>CodeLens</term> is an interactive version of a computer program, which can be visualized by stepping through the code one statement at a time, watching output, variables, and other data structures change.  So it is similar to a debugger, except the reader does not set breakpoints or modify program data on-the-fly.  This is possible automatically for several different languages when your <init>HTML</init> is hosted on a Runestone server (<xref ref=\"runestone\"/>).  This may also be accomplished <q>in browser</q> when hosted on any old generic web server.  The catch is that for a generic server a publisher must generate <term>trace data</term> in advance, typically with the PreTeXt-CLI (<xref ref=\"processing-CLI\"/>).  Place the <tag>interactive</tag> attribute on a <tag>program</tag> element with the value <c>codelens</c> to elect this behavior (<c>no</c> is the default value).  Also, be sure to specify a language from the supported languages: Python, Java, C, and C++.  Consult <xref ref=\"table-program-interactive\"/> below for a summary of various combinations.  When an output format does not support an interactive CodeLens instance, the fallback is a static program listing. The <tag>program</tag> should have an <attr>xml:id</attr> that will be used as a unique identifier for the generated trace file needed by the codelens.</p>\n\n            <p>Sometimes, there is uninteresting setup to get through before the portion of the program the author wants to illustrate. The author can use <attr>starting-step</attr> to specify the instruction number that the interactive should start at. Code before that will be fast-forwarded through and execution will begin at the indicted step. Note that <attr>starting-step</attr> is a <q>Step</q> number in the execution sequence, not a line number in the source code. You may have to run the Codelens once to find the right step to start at.</p>\n\n            <p>An author may add checkpoints to a Codelens that will ask the user a question when execution reaches a particular line of the program. To do so, add one or more <tag>checkpoint</tag>s. The <tag>checkpoint</tag> should have a <attr>line</attr> specifying what line to ask it on and either an <attr>answer</attr> or <attr>answer-variable</attr> attribute to indicate the correct answer (see the next paragraph for more on these). The <tag>checkpoint</tag> must have a child <tag>prompt</tag> with the question to ask the reader and optionally may have a child <tag>feedback</tag> element with Simple markup can be used to format the contents of both the prompt and the feedback.</p>\n\n            <p>To determine if the user's answer is correct, the <attr>answer</attr> or <attr>answer-variable</attr> will be used. <attr>answer</attr> will be compared directly to the user response via simple string comparison. An <attr>answer-variable</attr> will be compared to the current value of a variable in the program. This is especially useful for checkpoints inside a loop or function that will be asked multiple times with a different correct answer each time. To specify the name of a variable, use <c>globals.x</c> (for globally scoped variables) or <c>current_frame.x</c> (for locally scoped ones). More advanced names (array elements, object members, etc...) can be decoded by examining the trace file generated for the codelens. Find the line that will contain the checkpoint, and examine the <c>globals</c> field or the <c>encoded_locals</c> field of the last stack frame in that line.</p>\n\n            <p>For examples, see <url href=\"https://runestone.academy/ns/books/published/PTXSB/code-lens.html\">the Codelens section of the Sample Book on Runestone</url>.</p>\n        </subsection>\n\n        <subsection xml:id=\"interactive-program-activecode\">\n            <title>Interactive Programs, ActiveCode</title>\n\n            <subsubsection xml:id=\"activecode-authoring\">\n                <title>Authoring ActiveCode Programs</title>\n\n            <p><term>ActiveCode</term> is an interactive environment where a reader may work on code through repeated edit-compile-test cycles.  Code can be provided by an author as a complete program to be modified, a partial program to be completed, or nothing at all.  One good example is that maybe header files, import statement, and similar are provided, and a skeleton of a main entry-point procedure is also provided.  Then a reader can concentrate on the more conceptual parts of the programming.  Some languages will be executable <q>in browser</q> on any old generic web server, while others must be on a Runestone server (<xref ref=\"runestone\"/>) where a <url href=\"https://github.com/trampgeek/jobe\" visual=\"github.com/trampgeek/jobe\">Jobe Server</url> is running to support the execution.</p>\n\n            <p>Place the <attr>interactive</attr> attribute on a <tag>program</tag> element with the value <c>activecode</c> to elect this behavior (<c>no</c> is the default value).  Also, be sure to specify a language from the supported languages.  Consult <xref ref=\"table-program-interactive\"/> below for a summary of various combinations.  When an output format does not support an interactive ActiveCode instance, the fallback is a static program listing.</p>\n\n            <warning>\n                <title>Labels and XML IDs</title>\n                <p>Properly placing labels and xml:id's can get tricky for programs. Understanding the purpose of these two different identifiers is important:\n                  <ul>\n                    <li>\n                      <p>\n                        <attr>xml:id</attr>s are used to link to a program from other parts of the book source code. Any program that you want to use as the target of an <attr>add-files</attr> or <attr>include</attr> attribute in some other program must have a unique (within the book) <attr>xml:id</attr>.\n                      </p>\n                    </li>\n                    <li>\n                      <p>\n                        <attr>label</attr>s are used to provide an identifer for items in the Runestone database. They too should be unique within a book. But a program that is a direct child of an exercise-like element is considered to be a <term>programming exercise</term>. Programming exercises do not need a label as they are included in the database as part of the exercise.\n                      </p>\n                    </li>\n                  </ul>\n                </p>\n                <p>So best practices are:\n                  <ul>\n                    <li>\n                      <p>Every program should have a <attr>label</attr> attribute unless it is the direct child of an exercise like element. In that case, the label goes on the exercise and the program does not get a label. It is OK to leave a label off of a non-interactive program no other programs try to link to it (e.g. <attr>addfiles</attr>).</p>\n                    </li>\n                    <li>\n                      <p>Any program you want to link to from other places should get an <attr>xml:id</attr>. It always goes on the program itself.</p>\n                    </li>\n                  </ul>\n                  It is perfectly fine to use the same value for both <attr>label</attr> and <attr>xml:id</attr>, although xml:ids are more restrictive in terms of what characters are allowed.\n                </p>\n            </warning>\n\n            <p>Inside the <tag>program</tag> of an ActiveCode, you can use the following elements:\n                <dl>\n                    <li>\n                        <title>preamble</title>\n                        <p>Code that will be part of the program but not available for editing by the user and precedes the contents of <tag>code</tag>. This code will be visible unless the <attr>visible</attr> is set to <c>no</c>.</p>\n                        <p>Note that the contents of this element will be combined with the <tag>code</tag> before the indentation is adjusted. So any code in this block must be indented to the same baseline as the contents of <tag>code</tag>.</p>\n                    </li>\n                    <li>\n                        <title>code</title>\n                        <p>The body of the program that will be editable by the user.</p>\n                    </li>\n                    <li>\n                        <title>postamble</title>\n                        <p>Code that will be part of the program but not available for editing by the user and follows the contents of <tag>code</tag>. This code will be visible unless the <attr>visible</attr> is set to <c>no</c>.</p>\n                        <p>Note that the contents of this element will be combined with the <tag>code</tag> before the indentation is adjusted. So any code in this block must be indented to the same baseline as the contents of <tag>code</tag>.</p>\n                    </li>\n                    <li>\n                        <title>tests</title>\n                        <p>Tests may take the form of either structured input-output tests (see <xref ref=\"interactive-program-activecode-tests\"/>) or as a block of code that will be added after the <tag>code</tag> (as well as any <tag>postamble</tag>). The assumption is that code in <tag>tests</tag> is doing unit testing that the user should not see, so this code will be hidden unless the <attr>visible</attr> is set to <c>yes</c>.</p>\n                        <p>This code is processed by PreTeXt separately from the <tag>code</tag>, so indentation does not need to be consistent between it <tag>code</tag> and <tag>tests</tag>.</p>\n                        <p>Some languages have support for unit testing frameworks. If you use one of them, the results of the tests will be parsed and displayed to the user as a visual results table. The following languages have support for unit testing frameworks:\n                            <ul>\n                                <li><c>python</c> supports <c>unittest</c></li>\n                                <li><c>java</c> supports <c>junit</c></li>\n                                <li><c>c</c> and <c>cpp</c> support <c>doctest</c> (which tends to build and run significantly faster) and <c>catch</c></li>\n                            </ul>\n                        </p>\n                    </li>\n                    <li>\n                        <title>stdin</title>\n                        <p>If this element is provided, a text box will be created for the user to enter text that will be fed to the program via the <c>stdin</c> stream. If the <tag>stdin</tag> has text content, that will be provided to the user as a default input. Multiple lines of input are permissable. The text will be sanitized in the same way that the <tag>program</tag> itself is.</p>\n                    </li>\n                </dl>\n            </p>\n\n            <p>Here is a sample of a program with preamble and postamble. For more examples, see <url href=\"https://runestone.academy/ns/books/published/PTXSB/activecode.html\">the Activecode section of the Sample Book</url></p>\n\n            <xi:include href=\"../../../examples/sample-book/rune-examples/activecode-ambles.xml\"/>\n\n            <p>\n                There are a wealth of attributes that can be used to control the behavior of ActiveCode. (These are in addition to the standard ones allowed for for <tag>program</tag>. see <xref ref=\"topic-program\"/> for those.) Below is a list of the extra attributes available. Any attribute that lists other elements for inclusion will take a list of <attr>xml:id</attr>s for those elements.\n                <dl>\n                    <li>\n                        <title>autorun</title>\n                        <p>If set to <c>yes</c> the program will run on page load.</p>\n                    </li>\n                    <li>\n                        <title>chatcodes</title>\n                        <p>Set to <c>yes</c> to enable users to talk about this code snippet with others.</p>\n                    </li>\n                    <li>\n                        <title>codelens</title>\n                        <p>In languages that support Codelens (see <xref ref=\"interactive-program-codelens\"/>), there will be a button that allows the user to run the program via Codelens. Set this to <c>no</c> to remove it. This may be desireable if you know the code uses features that are not supported by Codelens (e.g. turtle graphics or image).</p>\n                    </li>\n                    <li>\n                        <title>compiler-args</title>\n                        <p>(C/C++ only) A comma separated list of strings to be passed to the compiler. Ex: <c>-Wall, -std=c++17</c>. A book-level default can be specified - see <xref ref=\"program-default-values\"/>.</p>\n                    </li>\n                    <li>\n                        <title>extra-compiler-args</title>\n                        <p>(C/C++ only) A comma separated list of strings to be passed to the compiler in addition to the <attr>compiler-args</attr>. Mostly of interest to add an argument to a particular program without overriding any book-level default arguments.</p>\n                    </li>\n                    <li>\n                        <title>database</title>\n                        <p>(SQL only) SQL based programs can make use of an SQLite database file. Use this attribute to specify the file to load as a string relative to the <attr>external</attr> top-level directory.</p>\n                    </li>\n                    <li>\n                        <title>filename</title>\n                        <p>For server based programs. What name to use when the code from this file is written to the server. This is generally only required if using the <attr>add-files</attr> attribute on some other program to make the contents of this program available (as a .h file for example).</p>\n                    </li>\n                    <li>\n                        <title>download</title>\n                        <p>Set to <c>yes</c> to enable users a download button that triggers downloading of the user code to a file. A book-level default can be specified - see <xref ref=\"program-default-values\"/>.</p>\n                    </li>\n                    <li>\n                        <title>hidecode</title>\n                        <p>Set to <c>yes</c> to initially hide the code.     When code is hidden, the 'Run' button is also disabled. To run the code, a user either presses 'Show Code', then 'Run'.</p>\n                        <p>You might use this if you want to put an ActiveCode block in the page in order to include \n                            it in another ActiveCode block, but you don't need or want students to see it right away. Or to hide the code of an ActiveCode with <attr>autorun</attr> where you initially want to focus on the output instead of the program.\n                        </p>\n                    </li>\n                    <li>\n                        <title>include</title>\n                        <p>A comma separated string identifying one or more other ActiveCodes that are to be prepended to this program when it is run.</p>\n                        <p>This allows you to write examples that build on each other without having to duplicate all the code in each successive block. For example, if you write a function definition in one ActiveCode, you can include it in a later ActiveCode block that has code to call the function without having to visibly include the definition. </p>\n                    </li>\n                    <li>\n                        <title>add-files</title>\n                        <p>(Server based code only) A comma separated string identifying one or more other programs or Datafiles by xml:id that are to be made available to this code. Each of those elements should have an <attr>filename</attr>.</p>\n                        <p>For server based programs, the other elements will be copied into files based on their <attr>filename</attr> attributes.</p>\n                        <p>This allows you to split code into multiple <q>files</q> and thus create more complex interconnections than when using <attr>include</attr>.</p>\n                    </li>\n                    <li>\n                        <title>compile-also</title>\n                        <p>(C/C++ only) A comma separated string identifying one or more other programs by xml:id that are also to be compiled when this program is compiled. They will be assumed to also be a part of the <attr>add-files</attr> collection. Each of those programs should have an <attr>filename</attr>.</p>\n                    </li>\n                    <li>\n                        <title>interpreter-args</title>\n                        <p>(Python2/3/Java/octave only. Only applies to Python that is run on the server. See <xref ref=\"table-program-interactive\"/>.) A comma separated list of strings to be passed to the compiler. Ex: <c>-Xrs, -Xss8m, -Xmx200m</c>. A book-level default can be specified - see <xref ref=\"program-default-values\"/>.</p>\n                    </li>\n                    <li>\n                        <title>language</title>\n                        <p>Same options as <tag>program</tag>. A book-level default can be specified - see <xref ref=\"program-default-values\"/>.</p>\n                    </li>\n                    <li>\n                        <title>linker-args</title>\n                        <p>(C/C++ only) A comma separated list of strings to be passed to the compiler. Ex: <c>-lm, -g</c>. A book-level default can be specified - see <xref ref=\"program-default-values\"/>.</p>\n                    </li>\n                    <li>\n                        <title>timelimit</title>\n                        <p>A maximum time allowed, in milliseconds, for a program to compile and run. If not provided, the default is <c>25000</c> (25 seconds). A book-level default can be specified - see <xref ref=\"program-default-values\"/>.</p>\n                    </li>\n                </dl>\n            </p>\n            </subsubsection>\n\n            <subsubsection xml:id=\"interactive-program-activecode-tests\">\n                <title>Tests for Interactive Programs</title>\n\n                <p>There are currently two ways to make automated tests for ActiveCode programs. The first way is to simply provide code in the <tag>tests</tag> element of the <tag>program</tag> as described in <xref ref=\"interactive-program-activecode\"/>. It will be assumed this code is unit tests and it will be run automatically with the user's submission.</p>\n\n                <p>Below is an example of unit tested Python. For more examples, see <url href=\"https://runestone.academy/ns/books/published/PTXSB/coding-exercises.html\">the Coding Exercises section of the Sample Book</url></p>\n\n                <xi:include href=\"../../../examples/sample-book/rune-examples/activecode-unittest.xml\"/>\n\n                <p>The second way to automatically test code is to provide a set of structured input-output pair tests. For each test, the program will be run and fed the specified input. Then the program output will be compared against the test output to decide if the program handled the test correctly. This mechanism is useful for testing simple programs without functions and for languages that do not have a unit testing framework. A particular program can only have one of these two testing mechanisms.</p>\n\n                <p>IO tests are generally only available for programs that run on a Runestone server. (See <xref ref=\"table-program-interactive\"/> for a list of which languages support IO tests.). To preview them, see <url href=\"https://runestone.academy/ns/books/published/PTXSB/coding-exercises.html\">the Coding Exercises section of the Sample Book hosted on Runestone</url></p>\n\n                <p>Structured IO tests are added as <tag>iotest</tag>s to the <tag>tests</tag> element. Each <tag>iotest</tag> element must have a single <tag>input</tag> and <tag>output</tag> element. The <tag>input</tag> element contains the input that will be fed to the program, and the <tag>match</tag> element contains the expected output of the program. Indentation for both will be normalized in the same way that programs are (so multiple-line sample output can be indented in your source document).</p>\n\n                <p>When evaluated, the program output and test <tag>output</tag> will have leading and trailing spaces removed. Other than that spacing, the two must match exactly to be considered a \"passed\" test.</p>\n            </subsubsection>\n        </subsection>\n\n        <subsection xml:id=\"interactive-program-capabilities\">\n            <title>Interactive Program Capabilities</title>\n\n            <p>This table lists which types of interactivity are available on various combinations of servers and programming languages.  The entry <q>AC + CL</q> means that both ActiveCode and CodeLens instances are available, but the ActiveCode instance will have a CodeLens button enabled. Although <tag>tests</tag> can be used to append code to any program, only in situations listed as <q>UT</q> below will the test output be parsed and interpreted by the server</p>\n\n            <p>Note that <c>python</c> is generic Python with the standard libraries (version 3.x).  On the other hand <c>python3</c> is a Runestone server installation (only) with a number of additional popular Python packages available, such as <c>numpy</c> and <c>pandas</c>.</p>\n\n            <table xml:id=\"table-program-interactive\">\n                <title>Interactive Programs</title>\n\n                <tabular>\n                    <row header=\"yes\">\n                        <cell>Language</cell>\n                        <cell><c>@language</c></cell>\n                        <cell colspan=\"2\" halign=\"center\">Server</cell>\n                    </row>\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>Generic</cell>\n                        <cell>Runestone</cell>\n                    </row>\n                    <row>\n                        <cell>Python</cell>\n                        <cell><c>python</c></cell>\n                        <cell>AC + CL + UT</cell>\n                        <cell>AC + CL + UT</cell>\n                    </row>\n                    <row>\n                        <cell>Python 3</cell>\n                        <cell><c>python3</c></cell>\n                        <cell></cell>\n                        <cell>AC + IO</cell>\n                    </row>\n                    <row>\n                        <cell>Java</cell>\n                        <cell><c>java</c></cell>\n                        <cell>CL</cell>\n                        <cell>AC + CL + IO + UT</cell>\n                    </row>\n                    <row>\n                        <cell>Kotlin</cell>\n                        <cell><c>kotlin</c></cell>\n                        <cell></cell>\n                        <cell>AC</cell>\n                    </row>\n                    <row>\n                        <cell>C</cell>\n                        <cell><c>c</c></cell>\n                        <cell>CL</cell>\n                        <cell>AC + CL + IO + UT</cell>\n                    </row>\n                    <row>\n                        <cell>C++</cell>\n                        <cell><c>cpp</c></cell>\n                        <cell>CL</cell>\n                        <cell>AC + CL + IO + UT</cell>\n                    </row>\n                    <row>\n                        <cell>JavaScript</cell>\n                        <cell><c>javascript</c></cell>\n                        <cell>AC</cell>\n                        <cell>AC</cell>\n                    </row>\n                    <row>\n                        <cell>HTML</cell>\n                        <cell><c>html</c></cell>\n                        <cell>AC</cell>\n                        <cell>AC</cell>\n                    </row>\n                    <row>\n                        <cell>SQL</cell>\n                        <cell><c>sql</c></cell>\n                        <cell>AC</cell>\n                        <cell>AC</cell>\n                    </row>\n                    <row bottom=\"major\">\n                        <cell>Octave</cell>\n                        <cell><c>octave</c></cell>\n                        <cell></cell>\n                        <cell>AC + IO</cell>\n                    </row>\n                    <!-- should really be a note, or similar -->\n                    <row>\n                        <cell halign=\"left\" colspan=\"4\">AC = ActiveCode, CL = CodeLens, UT = Unit Tests (parsed), IO = IO Tests</cell>\n                    </row>\n                </tabular>\n            </table>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-datafile\">\n        <title>Data Files</title>\n\n        <p>In concert with interactive programs (see <xref ref=\"topic-program\"/>) you can define a file of data that may be employed by those programs.  The necessary element is <tag>datafile</tag>.  It requires a <attr>label</attr>.  To allow programs to link to the datafile, it will also need an <attr>xml:id</attr> (which can be the same as the <attr>label</attr>). A <attr>filename</attr> is also required and is the name the file is known by in an ActiveCode program.  Do not try to impose any sort of directory structure on this name.  Just a filename.  In the case of a text file (see below), the <attr>editable</attr> attribute is optional.  The value <c>no</c> is the default, with <c>yes</c> as the other option.  The attributes <attr>rows</attr> and <attr>cols</attr> are optional for text files, and default to <c>20</c> and <c>60</c> respectively.  Finally, a non-editable text file (only) may have its contents hidden by setting the <attr>hide</attr> attribute to <c>yes</c>, rather than the default value of <c>no</c>.</p>\n\n        <p>Where might you place a <tag>datafile</tag>?  Lots of places are possible, such as in an <tag>example</tag> or a programming <tag>exercise</tag>, close to an ActiveCode <tag>program</tag>.  So, in expository material or in activities for readers to work through.  The purpose-built COMPUTATION-LIKE block, <tag>data</tag>, which will get you a heading, number, title, cross-reference target, etc. (see <xref ref=\"block-summary\"/>), is an option if the file itself needs more prominence or dedicated explanation.  Notice that this feature is very powerful, and thus requires a bit of machinery to support.  If you just want to point your reader to a file (and leave them to work with it outside of your project), either globally or locally, the read about the <tag>dataurl</tag> element at <xref ref=\"topic-datafile\"/>.</p>\n\n        <paragraphs>\n            <title>Text as Data Files</title>\n\n            <p>Inside of a <tag>datafile</tag> place an <tag>pre</tag> element.  There are then two options: provide the contents of the text file right in your source <pretext/> file, as you might for other preformatted text, or supply a <attr>source</attr> attribute whose value is the name of an external text file you provide.  The former is appropriate for <q>toy</q> examples, while the latter may be used for <q>serious</q> files with many lines, or with long lines.  Note that if you provide the file as the content of the <tag>pre</tag> element, it can be indented to match your source file indentation, and will undergo some manipulation, such as removing leading whitespace, and ensuring a final newline, but preserving any <em>relative</em> indentation.  If provided via a <attr>source</attr> attribute, there is no manipulation.</p>\n\n            <p>Such a text file may be declared editable by the reader, presumably to allow them to witness the resulting behavior of a some employing program.  The <attr>rows</attr> and <attr>cols</attr> attributes describe the viewport into the file provided in the <init>HTML</init> output.  Typically scrollbars will allow the reader to survey all of a large file.  In static outputs, the first few lines are shown, given by the value of <attr>rows</attr>, and lines are truncated according to the value of <attr>cols</attr>.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Images as Data Files</title>\n\n            <p>Inside of a <tag>datafile</tag> place an <tag>image</tag> element with a <attr>source</attr> attribute.  As usual, this attribute should be the name of an external file you provide.  Most common formats are supported, but it is important to use standard extensions, so the format can be discerned.  Now this file may be explored programmatically by opening the file using the name provided in <attr>filename</attr>.</p>\n\n            <p>Keep the size of the image small, say 300<ndash/>400 pixels in each direction.  You may also supply the usual layout controls, such as <attr>width</attr>, and these will be consulted in the formation of output formats.  Ideally, you should use a width that scales the image to look something like its <q>native</q> resolution, since part of an image-processing exercise may depend on this aspect of the input.  <init>HTML</init> output uses a 600 pixel overall width, so a percentage can be computed based on this parameter.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Notes on Data Files</title>\n\n            <p>Some notes that apply to each type of data file.<ul>\n                <li>Note that the name of the data file in a <attr>source</attr> attribute need not have any resemblance to the new name given to the file via the <attr>filename</attr> attribute.  In other words, the reader will never know (or care) what <attr>source</attr> was.</li>\n\n                <li>Whenever the <attr>source</attr> attribute is used, there needs to be an advance step performed by the CLI <xref ref=\"processing-CLI\"/>\n                or the <c>pretext/pretext</c> script (<xref ref=\"pretext-script\"/>) to generate an auxillary file (yes, a third file!) to aid the transistion from an external file to a file that can be used by the reader in programs.</li>\n\n                <li>For a program to use a data file, it must be able to find the appropriate file. This is accomplished by specifying an <attr>add-files</attr> attribute on the <tag>program</tag> element that is a list (separated by commas or space) of the xml:id's for files that are available for use in the program. For programs that run strictly in the browser as opposed to on a Runestone server (see <xref ref=\"interactive-program-capabilities\"/> for what languages run in the browser), a program may be able to open a file by name without specifying its xml:id in the <attr>add-files</attr>. However, for all programs, best practice is to make sure that the xml:id of any datafile a program should have access to is correctly listed in that program's <attr>add-files</attr></li>\n                <li>\n                    <p>In all cases, for an <init>HTML</init> build the contents of the data file live within an <init>HTML</init> page, as text for a text file, and as a base-64 encoding for an image file.  Hence for a non-Runestone build, any employing program <em>must</em> be on the same page, and an author should think ahead about the granularity of how a project might be chunked into pages (<xref ref=\"publication-file-common\"/>).</p>\n\n                    <p>In a build for use on Runestone Academy (<xref ref=\"runestone\"/>), the file will be in the Runestone database and usuable throughout.</p>\n                </li>\n            </ul></p>\n        </paragraphs>\n    </section>\n\n    <section xml:id=\"topic-figure\">\n        <title>Figures</title>\n\n        <p>A <tag>figure</tag> is the most generic and flexible container for planar content.  But be sure to read <xref ref=\"overview-figures-tables-etc\"/> so you are aware of the other possibilities.  A figure has a <tag>caption</tag>, which will typically render below the content (even if authored early as metadata) and serves to provide an extra description of the content.  So it may be several sentences long.  There is also a <tag>title</tag>, which is typically not rendered as part of the figure.  Instead it is used for cross-references, or in a list of figures, to identify the figure.  So it should be very short and might just be a phrase, such as <q>Life Cycle of a Salamander.</q></p>\n\n        <p>An <tag>image</tag> is likely the most frequent content in a <tag>figure</tag>.  But you may also place a <tag>video</tag>, <tag>audio</tag>, <tag>sidebyside</tag>, or <tag>sbsgroup</tag>.  Once completely implemented, an <tag>interactive</tag> is another possibility.  (See  <xref ref=\"topic-sidebyside\"/> for more about the side-by-side construction.)</p>\n\n        <p>A special situation is when a <tag>figure</tag> is a panel of a <tag>sidebyside</tag>, which is itself inside a <tag>figure</tag>.  Then the interior figure is <term>subnumbered</term>.  For example, the exterior figure might be Figure 4.12, and if a panel of the <tag>sidebyside</tag> is the second interior figure it will be Figure 4.12(b).  For example,<cd>\n            <cline>&lt;figure&gt;</cline>\n            <cline>    &lt;caption&gt;Salamanders at different life stages&lt;/caption&gt;</cline>\n            <cline>    &lt;sidebyside&gt;</cline>\n            <cline>        &lt;figure&gt;</cline>\n            <cline>            &lt;caption&gt;Hatchling&lt;/caption&gt;</cline>\n            <cline>            &lt;image source=\"salamader-hatchling.jpg\"/&gt;</cline>\n            <cline>        &lt;/figure&gt;</cline>\n            <cline>        &lt;figure&gt;</cline>\n            <cline>            &lt;caption&gt;Juvenile&lt;/caption&gt;</cline>\n            <cline>            &lt;image source=\"salamader-juvenile.jpg\"/&gt;</cline>\n            <cline>        &lt;/figure&gt;</cline>\n            <cline>        &lt;figure&gt;</cline>\n            <cline>            &lt;caption&gt;Adult&lt;/caption&gt;</cline>\n            <cline>            &lt;image source=\"salamader-adult.jpg\"/&gt;</cline>\n            <cline>        &lt;/figure&gt;</cline>\n            <cline>    &lt;/sidebyside&gt;</cline>\n            <cline>&lt;/figure&gt;</cline>\n        </cd>could result in the entire figure being Figure 4.12 and then the juvenile salamander photograph would be inside of Figure 4.12(b).</p>\n    </section>\n\n    <section xml:id=\"topic-tabular\">\n        <title>Tables and Tabulars</title>\n\n        <introduction>\n            <p>A <tag>table</tag> is a container that houses a <tag>tabular</tag>, which is the actual rows and columns of table entries.</p>\n\n            <p>Note that <tag>tabular</tag> may be constructed using the <url href=\"http://www.latex-tables.com/\" visual=\"www.latex-tables.com\"><latex /> Complex Table Editor</url> tool online and then exported in <pretext/> syntax. This produces verbose <pretext/> syntax that is usually equivalent to much simpler <pretext/> syntax once you understand the borders and alignment considerations below.</p>\n        </introduction>\n\n        <subsection>\n            <title>Tables</title>\n            <idx>table</idx>\n\n            <p>A <tag>table</tag> is similar to other blocks in <pretext/> (<xref ref=\"topic-blocks\"/>) and is most similar to a <tag>figure</tag>.  It will earn a number, which is likely to be a part of the text of a cross-reference pointing to the table.  Rather than a <tag>caption</tag>, it will have a <tag>title</tag>.  The main difference is that the principal content <em>must</em> be a <tag>tabular</tag>.  Only.</p>\n        </subsection>\n\n        <subsection>\n            <title>Tabular</title>\n            <idx>tabular</idx>\n\n            <p>A <tag>tabular</tag> is the actual headers, rows, and columns of a table.  As discussed above, a typical use is to place it inside a <tag>table</tag>, though it can be placed all by itself, typically in among a run of paragraphs.</p>\n\n            <p>Fundamentally a <tag>tabular</tag> is a sequence of <tag>row</tag> and each <tag>row</tag> is a sequence of <tag>cell</tag>, which could also be called <q>table entries.</q></p>\n        </subsection>\n\n        <subsection>\n            <title>Table Cells</title>\n            <idx><h>table</h><h>cell</h></idx>\n            <idx><h>table</h><h>entry</h></idx>\n            <idx><h>cell</h><h>table</h></idx>\n\n            <p>A given cell can span multiple columns, by providing the <attr>colspan</attr> attribute with a value that is a positive number, the cell will extend to occupy additional columns.</p>\n        </subsection>\n\n        <subsection>\n            <title>Table Rows</title>\n            <idx><h>table</h><h>row</h></idx>\n            <idx><h>row</h><h>table</h></idx>\n\n            <p>A <tag>row</tag> of a table is a sequence of <tag>cell</tag> elements.  Each row should occupy the same number of cells, when considering the <attr>colspan</attr>, as discussed above.</p>\n\n            <p>To achieve <em>column</em> headers, you indicate that a <em>row</em> contains headers.  Typically, the contents of every cell in this row will then be rendered in bold, or some other style.  The <tag>row</tag> element accepts a <attr>header</attr> attribute with possible values of <c>no</c> (the default), <c>yes</c>, or <c>vertical</c>.  The latter is useful if space is at a premium (which always seems to be the case with tables), and the cells of a column are narrow and the header is long.  Note that only the first (top) rows can be treated as column headers and these rows must be contiguous.  If you think you need column headers mid-tabular, maybe you really have two tables?</p>\n        </subsection>\n\n        <subsection>\n            <title>Table Columns</title>\n            <idx><h>table</h><h>column</h></idx>\n            <idx><h>column</h><h>table</h></idx>\n\n            <p>Prior to all of the <tag>row</tag> within a <tag>tabular</tag>, there may be a sequence of empty <tage>col</tage> elements.  Having these is optional, but once there is one, then there needs to be as many as the number of columns of the table.  These elements do not have any content that appears in the table, but are used to hold attributes that influence the borders or alignment of the cells within a column.  These are described below.</p>\n\n            <p>So it should now be clear that, after much consideration, that we have chosen a <q>row first</q> approach to describing a table.</p>\n\n            <p>To encourage good style, we only support row headers as the first column.  So this is a property of the entire <tag>tabular</tag>.  So the attribute <attr>row-headers</attr> on <tag>tabular</tag> can have values <c>no</c> and <c>yes</c>, with the former as default.  Note that <q>major</q> and <q>minor</q> row headers should be accomplished in the first column by using indentation for the minor headers.  Please make a feature request if you would find this useful.</p>\n        </subsection>\n\n        <subsection>\n            <title>Table Borders and Rules</title>\n            <idx><h>table</h><h>row</h></idx>\n            <idx><h>row</h><h>table</h></idx>\n            <idx><h>table</h><h>rule</h></idx>\n            <idx><h>rule</h><h>table</h></idx>\n\n            <p>You can view each cell of your table as having four borders.  Or you can imagine rows and columns separated by horizontal or vertical rules.  These additions to your table do not change the arrangement of information into rows and columns (a doubly-indexed data set), though you may think it makes the presentation clearer.  But less is actually more.</p>\n\n            <note>\n                <title>Vertical Rules in Tables</title>\n\n                <p>One of the goals of <pretext/> is to gently guide authors towards good choices in the design of their documents, even if we do not claim to know it all ourselves.  Take a close look at <xref ref=\"table-ambiguous-characters\"/>.  What's missing?  No vertical rules.  Try living without them, you will not really miss them.  If you think you need to divide a table into two halves, maybe you really need two tables (and then see the <q>side-by-side</q> capabilities, <xref ref=\"topic-sidebyside\"/>).</p>\n\n                <p>In the documentation for his excellent <latex/> package, <url href=\"https://www.ctan.org/pkg/booktabs\" visual=\"www.ctan.org/pkg/booktabs\">booktabs</url>, Simon Fear gives two rules for what he calls <q>formal tables</q>: (1) Never, ever use vertical rules, and (2) Never use double rules.  We have resisted the temptation to enforce the former and have provided an alternative to the second (three thicknesses).  He refers to using tables for layout as creating <q>tableau.</q>  If you are finicky about the look of your work, the first three pages of the documentation is recommended reading.</p>\n            </note>\n\n            <p>A given <tag>cell</tag> can have a border on its bottom edge, and on its right edge.  This is accomplished with the <attr>bottom</attr> and <attr>right</attr> attributes.  The possible values are <c>minor</c>, <c>medium</c>, and <c>major</c>, which control thickness.  (Not every conversion can produce three distinct thicknesses, so this should be considered a hint to the conversion.)  A value of <c>none</c> is the default behavior when the attribute is not used, but can be given explicitly.</p>\n\n            <p>How to get a left border on the first cell of a row?  The <tag>row</tag> element allows a <attr>left</attr> attribute which will put a border on the left end of the row, which is also the left border of the first cell.</p>\n\n            <p>How to get a top border on a cell?  Put a bottom border on the cell above it.  But what if the cell is already in the top row and has no cell above it?  The relevant <tag>col</tag> element allows a <attr>top</attr> attribute which will place the necessary border on the top-row cell.</p>\n\n            <p>Borders and rules verge on presentation, so we are not concerned about which cell a border (or rule) belongs to.  So, generally <attr>bottom</attr> and <attr>right</attr> can be used in many places, and the exceptional <attr>top</attr> and <attr>bottom</attr> maybe used to get the missing border <m>n+1</m> for a vertical or horizontal sequence of <m>n</m> cells.</p>\n\n            <p>The attributes described for cells may also be used on <tag>row</tag>, <tag>col</tag>, and <tag>tabular</tag>.  For example a thick horizontal rule after two rows of headers could be accomplished with<cd>\n                <cline>&lt;row header=\"yes\"&gt;...&lt;/row&gt;</cline>\n                <cline>&lt;row header=\"yes\" bottom=\"major\"&gt;...&lt;/row&gt;</cline>\n            </cd>We will not detail all the combinations that are possible, so experiment and you should be able to create any rational look (and some irrational ones).</p>\n        </subsection>\n\n        <subsection>\n            <title>Table Cell Alignment</title>\n            <idx><h>table</h><h>cell alignment</h></idx>\n            <idx><h>cell alignment</h><h>table</h></idx>\n\n            <p>The horizontal alignment of the contents of a <tag>cell</tag> can be influenced by the <attr>halign</attr> attribute with values <c>left</c>, <c>right</c>, <c>center</c>, and for <q>paragraph cells,</q> <c>justify</c>.  Similarly the <attr>valign</attr> attribute will influence the vertical alignment through values <c>top</c>, <c>middle</c>, and <c>bottom</c>.  Default alignments are <c>left</c> and <c>middle</c>.</p>\n\n            <p>To align the cells of an entire <tag>row</tag>, <tag>col</tag>, or <tag>tabular</tag> identically, place the relevant attribute on the relevant element.  Note that these choices can be overridden by different values on individual consituents.</p>\n\n        </subsection>\n\n        <subsection>\n            <title>Multi-line Cells</title>\n            <idx><h>table</h><h>multi-line cell</h></idx>\n            <idx><h>cell</h><h>table</h><h>multi-line</h></idx>\n\n            <p>A cell of a table may contain more text that fits onto one line.  If you know exactly where you want the line-breaks to be, then structure the entire cell as a sequence of <tag>line</tag> elements.</p>\n\n            <p>Or, if you want the contents of a cell to look and feel more like a paragraph (or several), structure the cell as a sequence of <tag>p</tag>, which can contain the usual content of a <tag>p</tag>, excepting <q>larger</q> content such as display mathematics or lists.  Now, in this case, you must constrain the width of the cell's column, to force the line-breaking necessary to render a paragraph as several lines.  Use the relevant <tage>col</tage> element, and specify a percentage of the tabular's overall width, like this:\n                <cd>&lt;col width=\"40%\"/&gt;</cd>\n            A paragraph cell can be right-justified with the <attr>halign</attr> attribute set to <c>justify</c>.  But be aware that if the column is skinny, this can lead to awkward inter-word spaces.</p>\n        </subsection>\n\n        <subsection>\n            <title>Breakable Tabulars</title>\n            <idx><h>table</h><h>breakable</h></idx>\n            <idx><h>tabular</h><h>breakable</h></idx>\n\n            <p>A <tag>tabular</tag> may be specified as <term>breakable</term>, inside of a <tag>table</tag> or not.  Use the attribute <attr>break</attr> set to <c>yes</c>.  (The default is <c>no</c>.)  This only affects conversions to formats with page breaks, such as <init>PDF</init>.  Usually the motivation will be a <tag>table</tag> or <tag>tabular</tag> that is too long for a page, but even a shorter table can be allowed to page break.</p>\n\n            <p>As of 2022-07-28 this is effective for simple tables, but introduces some variations for more complex constructions.  This is implemented with the <latex/> <c>longtable</c> package, which suggests it may take up to four passes with <latex/> to obtain the final version.  It is also not effective for a <tag>tabular</tag> that is a side-by-side panel.  Consult the sample article for examples where more progress is necessary.</p>\n        </subsection>\n\n        <subsection>\n            <title>Table Philosophy</title>\n\n            <p>The <pubtitle>Chicago Manual of Style</pubtitle>  <xref ref=\"cmos\" detail=\"13.1\"/> says:</p>\n\n            <blockquote>\n                <p>A table offers an excellent means of presenting a large number of individual similar facts so that they are easy to scan and compare.  A simple table can give information that would require several paragraphs to present textually, and it can do so more clearly. <ellipsis/> A table should be as simple as the material allows and understandable on its own; even a reader unfamiliar with the material presented should be able to make general sense of a table.</p>\n            </blockquote>\n\n            <p>If you review the twenty tables presented in Chapter 13 of <init>CMOS</init>, that are of the type we implement, you will notice several things.<ul>\n                <li>Only the first column is ever used for row headings.</li>\n                <li>Cells do not span multiple rows.  (There is no analogue for <attr>colspan</attr>.)</li>\n                <li>Column headings appear at the top, other than <term>cut-in heads</term>, which have a very particular form.  (We have not implemented these, but would entertain a feature request.)</li>\n            </ul></p>\n\n            <p>While our implementation allows for some presentational elements (borders, rules, alignment) our conversions will presume your table hews to the purposes described by CMOS.  In particular, it is not a device for spatial layout of complex elements.  You might find that the <tag>sidebyside</tag> and <tag>sbsgroup</tag> layout devices will suit that purpose better (see <xref ref=\"topic-sidebyside\"/>).</p>\n\n            <note>\n                <title>Tables are Difficult</title>\n\n                <p>Width is always at a premium, and then when a <tag>tabular</tag> has more than a few columns, the width becomes even more dear.  When a <tag>cell</tag> has text that looks like a phrase or a sentence, rather than numerical data or symbols, it can be even harder to pack it all in.  A common example is a schedule of talks at a small professional conference where each time slot (rows) might have two or three talks simultaneously in parallel sessions (columns).</p>\n\n                <p>We offer <term>paragraph cells</term> which automatically break lines, but you need to specify a <attr>width</attr> on the <tag>col</tag> as a percentage to indicate where line-breaking happens.  For manual line-breaking, a <tag>cell</tag> can be structured entirely by <tag>line</tag> elements.</p>\n\n                <p>The next complication is that the <latex/> used for <init>PDF</init> output tends to make columns as wide as necessary and will not break lines without the devices mentioned in the previous paragraph.  The <init>HTML</init> output can sometimes be a bit more forgiving and flexible.  So we suggest building the <latex/> output first and getting that right, and then the <init>HTML</init> is likely to follow along and not need much futher refinement.</p>\n\n                <p>In contrast to most of <pretext/>, you may need to experiment, refine your approach, iterate, and maybe do things contrary to usual best practices elsewhere.  For example, the clickables for <init>URL</init>s and knowls might need to be short and less-informative in order to save some width.  Abbreviations, initialisms, and acronyms can also save some width.</p>\n            </note>\n        </subsection>\n\n        <subsection>\n            <title>Summary: Table Reference</title>\n\n            <p>Finally, we summarize the available options for a table with<ellipsis/>a table.  Because it would take too much text to describe fully.</p>\n\n            <p>This table describes how to construct tables via the <c>tabular</c> element.  The <c>table</c> element may be used to enclose the raw table, so as to associate a title and get vertical separation with horizontal centering.</p>\n\n            <p>The <c>tabular</c> element contains a sequence of <c>row</c> elements, and must contain at least one.  Each <c>row</c> contains a sequence of <c>cell</c> elements and must have the same number in each row (acccounting for the use of the <c>colspan</c> attribute).  The contents of the <c>cell</c> elements are the text to appear in entries of the table.</p>\n\n            <p>A sequence of <c>col</c> elements may optionally be used.  But if one appears, then there must be the right number for the width of the table.  They are empty elements always, and just carry information about their respective column.</p>\n\n            <p>Where the body of the table below has an entry, it means the attribute may be used on the element, and affects the range of the tabular described by the element.  Employment of an attribute on elements to the right in the table will supersede use on elements to the left.  Generally, every cell has right and bottom borders, but only cells at the left side of the table have a left border and only cells across the top have a top border.  Only one cell has four borders.</p>\n\n            <table>\n                <title>Tabular Elements and Attributes (p = potential)</title>\n                <tabular top=\"major\" halign=\"center\">\n                    <col halign=\"left\" />\n                    <col/>\n                    <col/>\n                    <col/>\n                    <col/>\n                    <col halign=\"left\"/>\n                    <!--  -->\n                    <row header=\"yes\">\n                        <cell>Attributes</cell>\n                        <cell colspan=\"4\" halign=\"center\">Elements</cell>\n                        <cell>Values</cell>\n                    </row>\n                    <row header=\"yes\" bottom=\"medium\">\n                        <cell></cell>\n                        <cell><c>tabular</c></cell>\n                        <cell><c>col</c></cell>\n                        <cell><c>row</c></cell>\n                        <cell><c>cell</c></cell>\n                        <cell>* = default</cell>\n                    </row>\n                    <row>\n                        <cell><c>top</c></cell>\n                        <cell><times/></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>none*, minor, medium, major</cell>\n                    </row>\n                    <row>\n                        <cell><c>left</c></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell>none*, minor, medium, major</cell>\n                    </row>\n                    <row>\n                        <cell><c>bottom</c></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell><times/></cell>\n                        <cell>none*, minor, medium, major</cell>\n                    </row>\n                    <row>\n                        <cell><c>right</c></cell>\n                        <cell><times/></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell>none*, minor, medium, major</cell>\n                    </row>\n                    <row>\n                        <cell><c>halign</c></cell>\n                        <cell><times/></cell>\n                        <cell><times/></cell>\n                        <cell><times/></cell>\n                        <cell><times/></cell>\n                        <cell>left*, center, right, justify</cell>\n                    </row>\n                    <row>\n                        <cell><c>halign</c></cell>\n                        <cell></cell>\n                        <cell>p</cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>decimal, character</cell>\n                    </row>\n                    <row>\n                        <cell><c>header</c></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell>yes/vertical/no*</cell>\n                    </row>\n                    <row>\n                        <cell><c>row-headers</c></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>yes/no*</cell>\n                    </row>\n                    <row>\n                        <cell><c>valign</c></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell>top, middle*, bottom</cell>\n                    </row>\n                    <row>\n                        <cell><c>colspan</c></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell>1*, positive integer</cell>\n                    </row>\n                    <row>\n                        <cell><c>width</c></cell>\n                        <cell></cell>\n                        <cell><times/></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>percentage</cell>\n                    </row>\n                    <row>\n                        <cell>colors</cell>\n                        <cell>p</cell>\n                        <cell>p</cell>\n                        <cell>p</cell>\n                        <cell>p</cell>\n                        <cell></cell>\n                    </row>\n                </tabular>\n            </table>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-listing\">\n        <title>Program Listings</title>\n        <p>A <tag>listing</tag> is really a specialized type of <tag>figure</tag>, whose purpose is to hold computer code.  It has an optional <tag>title</tag> which is rendered above the listing.  However, the enclosed planar content is limited to a <tag>program</tag> or <tag>console</tag> (see <xref ref=\"topic-program\"/> and <xref ref=\"topic-console\"/>).</p>\n    </section>\n\n    <section xml:id=\"topic-named-list\">\n        <title>Named Lists</title>\n        <idx><h>list</h><h>named</h></idx>\n        <idx><h>named list</h></idx>\n        <idx><h>list</h><h>anonymous</h></idx>\n        <idx><h>anonymous list</h></idx>\n\n        <p>As mentioned above, it is not possible to have a list be the target of a cross-reference.  Should an entire list be <em>so important</em> that you need to point to it from elsewhere, then make it a <term>named list</term> by wrapping it in the <tag>list</tag> tag.</p>\n\n        <p>This element can begin with an optional <tag>introduction</tag>, then has a single, required list, which may be any of the three types.  It concludes with an optional <tag>conclusion</tag>.  It can have an <attr>xml:id</attr> attribute, which in a way is the whole <foreign xml:lang=\"fr-FR\">raison d'être</foreign> for this construction.  It will be numbered when rendered, and so also requires a <tag>title</tag>.  You might think of this as similar to a <tag>table</tag><mdash/>bits of information organized spatially, via indentation and line breaks.</p>\n\n        <p>Since this element associates a number, title, to an entire list, we call it a <q>named list</q>.  What should we call a list that is authored within a paragraph and cannot be the target of a cross-reference?  We call it an <term>anonymous list</term> when we want to make the distinction.</p>\n    </section>\n\n    <section xml:id=\"topic-sage\">\n        <title>Sage</title>\n\n        <introduction>\n            <p>Until we can expand this section, get some ideas from <xref ref=\"overview-sage\"/>.  We will also collect a few items here, to be cleaned-up later.</p>\n\n            <p>For online output formats, sometimes the output of a Sage command can be overwhelming, and a bit complicated to parse.  Many objects in Sage also have a <latex/> representation, which can be used to create a superior output format (for some purposes).  Begin a cell with the <q>magic</q>:<cd>\n                <cline>%display latex</cline>\n            </cd>Experiment with the following Sage code on the next line<cd>\n                <cline>integral(x^9*cos(x), x)</cline>\n            </cd>Boom!  Very nice.  Try replacing <c>latex</c> with <c>None</c>, <c>plain</c>, <c>ascii_art</c>, or <c>unicode_art</c>.</p>\n        </introduction>\n\n        <subsection xml:id=\"sage-cell-design\">\n            <title>Sage Cell Server Design</title>\n\n            <p>The ability to execute, and edit, chunks of Sage code is provided by a distinct project, the <url href=\"https://sagecell.sagemath.org/\" visual=\"sagecell.sagemath.org/\">Sage Cell Server</url>.  Simplifying somewhat, the Sage code a reader sees (or has edited!) is shipped out to a running instance of Sage (on a server <em>somewhere</em>) and the code is executed there.  The results of that computation are shipped back to the reader for display below the code.</p>\n\n            <p>Two implications of this design are<ul>\n                <li>It is not within your power to add additional packages for the supported languages.</li>\n                <li>You cannot read a (data) file hosted on your project's site.</li>\n            </ul>  Fortunately, there are workarounds.</p>\n\n            <p>If your code needs a Python package, or an R package, or similar, and it is a standard open source package, then make a request on the <url href=\"https://groups.google.com/g/sage-cell\" visual=\"groups.google.com/g/sage-cell\">Sage Cell</url> Google Group.  Likely, it can be added/installed.</p>\n\n            <!-- Details at: https://groups.google.com/g/sage-cell/c/ETeONQMYbQM/m/Tzl-rFmkAQAJ -->\n            <p>Unfortunately, the ability to read files <em>anywhere</em> on the internet was abused, so this capability had to be restricted to a finite list of servers.  These include <url href=\"https://www.dropbox.com\" visual=\"www.dropbox.com\">DropBox</url> and <url href=\"https://github.com\" visual=\"github.com\">GitHub</url> where you might find it convenient to place files supporting your code.  Note that for GitHub, you likely want to use a <init>URL</init> which is a <q>raw</q> file such as for the <pretext/> repository <url href=\"https://github.com/PreTeXtBook/pretext/raw/master/README.md\" visual=\"github.com/PreTeXtBook/pretext/raw/master/README.md\">README</url> file, written with Markdown.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-interactive\">\n        <title>Interactives</title>\n\n        <p>TODO: until then examine copious examples in the sample article.</p>\n    </section>\n\n    <section xml:id=\"topic-sidebyside\">\n        <title>Side-by-Side Panels</title>\n        <idx>side-by-side panel</idx>\n\n        <p>Documents, pages, and screens tend to run vertically from top to bottom.  But sometimes you want to control elements laid out horizontally.  A <tag>sidebyside</tag> is designed to play this role.  It is best thought of as a container, enclosing <term>panels</term><idx><h>panel</h><see>side-by-side panel</see></idx><idx><h>side-by-side panel</h><h>panel</h></idx>, and specifying their layout.  Examples include three images, all the same size and equally spaced.  Or a poem occupying two-thirds of the available width, with commentary adjacent in the remaining third.  Or an image next to a table.  But the most common use may be a single image (with no caption, and hence no number), whose width and horizontal placement are controlled by the layout.</p>\n\n        <p>See the schema for the exact items that are allowed in a <tag>sidebyside</tag>.  To author, just place these items within <tag>sidebyside</tag> in the order they should appear, left to right.  Then you add attributes to the <tag>sidebyside</tag> element to affect placement.</p>\n\n        <p>Instead of placing a <attr>width</attr> attribute on each item, instead place this on the <tag>sidebyside</tag> element.  A single <attr>width</attr> will use the same value for each panel.  For different widths, use the plural form <attr>widths</attr> and provide a space-separated list of percentages.  The default is to give each panel the same width, and as large as possible, which will result in no gap between panels.</p>\n\n        <p>The margins can be specified with the <attr>margins</attr> attribute, which if given as a single percentage will be used for both the left and right sides.  You may also specify asymmetric left and right margins with two percentages, separated by a space, in the same attribute.  An additional option is to use the value <c>auto</c> which will set each margin to half of the (common) space between panels.  This is also the default.  In the case of a single panel, the left margin, right margin, and panel width should all add up to 100%.</p>\n\n        <p>Once the widths and margins are known, any additional available width is used to create a common distance separating panels.  (Which is not possible when there is just a single panel.)</p>\n\n        <p>Independent of horizontal positioning, individual panels may be aligned vertically.  The attribute is <attr>valigns</attr> and its value is a space-separated list of <c>top</c>, <c>middle</c>, and <c>bottom</c>.  The singular version, <attr>valign</attr>, is used to give every panel the same alignment, using the same keywords.  The default is to have every panel at the <c>top</c>.</p>\n\n        <p>We could give lots of examples, but instead it might be best to just experiment.  Error-checking is very robust, so it is hard to get it too wrong.  OK, we will do just one to help explain.  Suppose a <tag>sidebyside</tag> contains three panels and has layout parameters given by<cd>\n            <cline>&lt;sidebyside widths=\"20% 40% 25%\" margins=\"auto\" valign=\"middle\"&gt;</cline>\n        </cd>Then there will be 15% of the width left to space out the panels.  The two gaps are each 5% of the width, and the remaining 5% is split between the margins at 2.5% each.  And the vertical midlines of each panel are all aligned.</p>\n\n        <p>For a single panel with no attributes, the panel will occupy 100% of the width.  A single panel with a specified width will get equal (auto) margins, resulting in a centered panel.</p>\n\n        <p>Captioned items<idx><h>side-by-side panel</h><h>panel</h><h>captioned item</h></idx> as panels deserve special mention.  These will continue to be numbered consecutively, with one exception.  If you place a <tag>sidebyside</tag> inside of a <tag>figure</tag>, then the <tag>figure</tag> will be numbered, and the captioned items inside the <tag>sidebyside</tag> will be <term>sub-captioned</term><idx><h>side-by-side panel</h><h>panel</h><h>sub-captioned item</h></idx>.  In other words, the second captioned panel of a <tag>sidebyside</tag> inside Figure 5.2 would be referenced as Figure 5.2.b.</p>\n\n        <p>An <tag>sbsgroup</tag> (<q>side-by-side group</q>) contains only <tag>sidebyside</tag>, which are displayed in order.  However, all of the layout parameters allowed on a <tag>sidebyside</tag> may be used on an <tag>sbsgroup</tag>.  This might allow a collection of fifteen images to be laid out in three rows of five images each, with widths and spacing identical for each row because the parameters are specified on the <tag>sbsgroup</tag> element.  In this way, simple grids can be constructed.  Note that any layout parameters given on an enclosed <tag>sidebyside</tag> will take priority over those given on the <tag>sbsgroup</tag>.  Captioning behavior extends to an entire <tag>sbsgroup</tag>.</p>\n\n        <p>Since <tag>sidebyside</tag> and <tag>sbsgroup</tag> are containers they cannot be referenced and so do not have an <attr>xml:id</attr>.  However, you can reference their individual contents if they are captioned, and you can reference an enclosing <tag>figure</tag>.</p>\n\n        <p>Generally, a <tag>sidebyside</tag> or <tag>sbsgroup</tag> can be placed as a child of a division, or within various blocks, such as <tag>proof</tag> for example.  See the schema for (evolving) specifics.</p>\n\n        <p>It should be clear now that a <tag>sidebyside</tag> is more about presentation than most <pretext /> elements, though there is some semantic information being conveyed by grouping the panels with one another.</p>\n    </section>\n\n    <section xml:id=\"topic-front-matter\">\n        <title>Front Matter</title>\n\n         <introduction>\n            <p>A single <tag>frontmatter</tag> element can be placed early in your <tag>book</tag> or <tag>article</tag>.  It is optional, but likely highly desirable.  The following subsections describe the items that may be employed within the <tag>frontmatter</tag>.  Most are optional, and some may be repeated.  An <tag>article</tag> differs in that it must contain a <tag>bibinfo</tag> and <tag>titlepage</tag> and then may <em>only</em> contain an <tag>abstract</tag>.  Generally, these divisions will get default titles, localized in the language of your document, but these defaults may also be replaced by giving a <tag>title</tag> element.  None of these divisions themselves is numbered, so precluding any content within that might normally be numbered.  So, for example, no <tag>figure</tag> may be included.  But you could choose to include an <tag>image</tag>, perhaps within a <tag>biography</tag>.</p>\n\n            <p>If a component of the front matter cannot be numbered, how best to subdivide something like a <tag>preface</tag>?  This is a good use of the <tag>paragraphs</tag> element.  It allows for a (minimal) title, but cannot be subdivided further.  See the later part of <xref ref=\"topic-divisions\"/> for more about this exceptional element.</p>\n\n            <p>These elements must appear in your source in the order given below, and will appear in your ouput in the same order, which is a generally accepted order used in the production of books.  So, for example, even if you author an <tag>acknowledgement</tag> between two <tag>preface</tag>, your output may (will?) place the Acknowledgement before the first Preface.</p>\n\n            <p>Exceptions to the above general information are noted below.</p>\n        </introduction>\n\n        <subsection>\n            <title>Bibliographic Information</title>\n\n            <p>Required. The <tag>bibinfo</tag> <idx><h>bibinfo</h></idx> element may contain metadata about your document, including <tag>author</tag>, <tag>editor</tag>, <tag>credit</tag>, <tag>date</tag>, <tag>keywords</tag>, <tag>edition</tag>, <tag>website</tag> and <tag>copyright</tag>.  Additional elements to capture bibliographic information are planned.  This is an exception to the divisions described next, as this is a mini-database of sorts, which contains various pieces of information which get used different ways, but primarly via the <tag>titlepage</tag> element.</p>\n\n            <paragraphs>\n                <title>Authors and editors</title>\n                <p>\n                    Each author and editor should be described in their own <tag>author</tag> or <tag>editor</tag> element, which are structured identically (in output, authors are listed first, followed by editors, sometimes using less prominent formatting).  An author can be designated as the <term>corresponding author</term> using the <attr>corresponding</attr> attribute.\n                </p>\n\n                <p>\n                    The name of an author or editor should be enclosed in a <tag>personname</tag> element.  Following this, affiliation information can be provided either by using elements <tag>department</tag>, <tag>institution</tag>, and <tag>location</tag> (each of which can be further structured with <tag>line</tag> tags), or by enclosing these in an <tag>affiliation</tag> element.  (Grouping affiliation details is useful when an author might have multiple affiliations.)\n                </p>\n\n                <p>\n                    An author or editor can also have an <tag>email</tag>, <tag>biography</tag>, or <tag>support</tag> element.  The <tag>support</tag> element can be used to describe funding sources particular to that author as required by some journals.  Notice that the <tag>support</tag> element could also be a child of <tag>bibinfo</tag> itself, in which case it would appear as applying to the entire document, not just an individual author.\n                </p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Keywords</title>\n                <p>\n                    Many journals require papers to contain a list of keywords or subject classification codes.  These are both captured by the <tag>keywords</tag> element.  This groups a collection of <tag>keyword</tag> elements, each of which is a single keyword or subject classification code.\n                </p>\n\n                <p>\n                    To distinguish between author-provided keywords and subject classification codes, the <tag>keywords</tag> element can have attributes <attr>authority</attr> and <attr>variant</attr>.  As of 2025-02-18, the values of these attributes that are recognized are given in <xref ref=\"table-keywords\"/>.\n                </p>\n\n                <table xml:id=\"table-keywords\">\n                    <title>Recognized keyword attribute values</title>\n                    <tabular>\n                        <row header=\"yes\" bottom=\"minor\">\n                            <cell>Type</cell><cell><attr>authority</attr></cell><cell>variant</cell>\n                        </row>\n                        <row>\n                            <cell>Author-provided keywords</cell>\n                            <cell><c>author</c> or none</cell>\n                            <cell>none</cell>\n                        </row>\n                        <row>\n                            <cell>Math Subject Classification (MSC) codes</cell>\n                            <cell><c>msc</c></cell>\n                            <cell><c>2020</c> or <c>2010</c> or etc.</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <p>\n                    For subject classification codes, to distinguish between primary or secondary codes, the <tag>keyword</tag> element can have the optional attribute <attr>primary</attr> (with value <c>yes</c> or <c>no</c>).  Put <c>primary=\"yes\"</c> on the <em>first</em> primary keyword, and <c>primary=\"no\"</c> on the <em>first</em> secondary keyword.  Alternatively, using <c>secondary=\"yes\"</c> on the first secondary keyword is also acceptable.\n                </p>\n\n                <p>\n                    If you are writing a paper that needs a different classification from those currently available, please submit a request.\n                </p>\n            </paragraphs>\n        </subsection>\n\n        <subsection>\n            <title>Title Page</title>\n\n            <p>Optional, but usually desirable.  When present, the <tag>titlepage</tag> should contain a single empty element <tage>titlepage-items</tage>, that will collect the appropriate elements from <tag>bibinfo</tag> to generate a titlepage.  So, this is an exception to the following list of divisions, as its production is automatic.</p>\n        </subsection>\n\n        <subsection>\n            <title>Abstract</title>\n\n            <p>Optional, and only available for an <tag>article</tag>.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-front-colophon\">\n            <title>Colophon</title>\n\n            <p>Optional; only available within a <tag>book</tag>.  The <em>front</em> colophon. (There is also a <em>back</em> colophon, see <xref ref=\"topic-back-colophon\"/>).  Sometimes this is also called the <term>copyright page</term>.  The <tag>colophon</tag> element can be given a <attr>label</attr> to produce a specific file name in HTML builds.  The only allowable (and required) child of the <tag>colophon</tag> is the empty element <tage>colophon-items</tage>, which will automatically bring in appropriate elements from <tag>bibinfo</tag>.  So, like the <tag>titlepage</tag>, this is an exception due to its automatic production.</p>\n        </subsection>\n\n        <subsection>\n            <title>Biographies</title>\n\n            <p>Multiple <tag>biography</tag> elements, perhaps one per author.  The <tag>title</tag> can be used in the case of multiple authors to distinguish one from another.</p>\n        </subsection>\n\n        <subsection>\n            <title>Dedication</title>\n\n            <p>A single <tag>dedication</tag> element, that might include multiple dedications (perhaps by different authors).  The content is simply a sequence of <tag>p</tag>, with multiple elementts for multiple dedications.</p>\n        </subsection>\n\n        <subsection>\n            <title>Acknowledgements</title>\n\n            <p>A single <tag>acknowledgement</tag> element (note spelling), that becomes a division, and so can contain paragraphs, lists, etc.  The Chicago Manual of Style  <xref ref=\"cmos\" detail=\"1.52\"/> suggests that if these are short, they may be contained in a preface.</p>\n        </subsection>\n\n        <subsection>\n            <title>Forewords</title>\n\n            <p>As of 2021-07-16 the <tag>foreword</tag> element is not fully implemented.  Please make a feature request if you need it.</p>\n\n            <p>A <tag>foreword</tag> is written by somebody other than the author.  The name of the writer of the foreword needs to be included<mdash/>at the end is a good location.</p>\n        </subsection>\n\n        <subsection>\n            <title>Prefaces</title>\n\n            <p>Multiple prefaces are a distinct possibility, and in this case providing a different <tag>title</tag> for each would be essential.  Examples might include:  <articletitle>Preface to the Third Edition</articletitle>, <articletitle>How to Use this Book</articletitle>, or <articletitle>To the Student</articletitle>.  More ad-hoc material, such as a translator's note, can be handled as a preface.</p>\n\n            <note xml:id=\"best-practice-preface\">\n                <title>Understand the Role of a Preface</title>\n\n                <p><pubtitle>Chicago Manual of Style</pubtitle>  <xref ref=\"cmos\" detail=\"1.49\"/> begins with <q>Material normally contained in an author's preface includes reasons for undertaking the work, method of research, <ellipsis/></q>  Note that a preface is not introductory content and is not an introduction.  It is written from the author's point-of-view, and may include information about why they are qualified to write on the topic of the book.  If there are several editions, the prefaces to the newer editions are placed first.  See the related <xref ref=\"best-practice-chapter-zero\"/>.</p>\n            </note>\n        </subsection>\n\n    </section>\n\n    <section xml:id=\"topic-back-matter\">\n        <title>(*) Back Matter</title>\n\n        <introduction>\n            <p></p>\n        </introduction>\n\n        <subsection>\n            <title>(*) Appendices</title>\n\n            <p>Automatic lists (<xref ref=\"topic-automatic-lists\"/>) can appear anywhere, but an appendix is a very natural place to place one.</p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Glossary</title>\n\n            <p></p>\n        </subsection>\n\n        <subsection>\n            <title>(*) References</title>\n\n            <p></p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Solutions</title>\n\n            <p></p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Index</title>\n\n            <p></p>\n        </subsection>\n\n        <subsection xml:id=\"topic-back-colophon\">\n            <title>(*) Colophon</title>\n\n            <p>The <em>back</em> colophon, what most authors think of as <em>the</em> colophon. (There is also a <em>front</em> colophon, see <xref ref=\"topic-front-colophon\"/>).</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-index\">\n        <title>Index</title>\n\n        <introduction>\n            <p>Continuing our basic discussion from <xref ref=\"overview-index-notation\"/>, we discuss some details of making and using index entries.  We will begin with how you <em>procedurally</em> author an index entry with <pretext/> syntax, and then move to general principles about how to use these constructions to create an effective index.  So these two subsections are intimately linked.</p>\n        </introduction>\n\n        <subsection>\n            <title>Syntax and Placement of Index Entries</title>\n\n            <note>\n                <title>Capitalization of Index Entries</title>\n\n                <p>The headings (entries) of an index are authored entirely in lower-case, unless it is a proper noun (name, place, <etc/>) which would normally be capitalized in the middle of a sentence.  We are not able to provide any enforcement of this advice, nor any assistance.  It is the author's responsibility to provide quality source material in this regard.  We do sort entries so that an entry with an initial capital letter arrives at the right location in the index.</p>\n            </note>\n\n            <p><em>Where</em> you place an <tag>idx</tag> entry is critical.  With <latex/> output, you will get the traditional page number as a locator in your index.  With <init>HTML</init> output we can be more careful.  We will look to see which sort of structure contains the <tag>idx</tag>.  Maybe it is an <tag>example</tag> or a <tag>subsection</tag>.  If so, the index will contain a locator that is a knowl of the example, or a link to the subsection.  The distinction is the size of the object, we do not knowl divisions.  The exception is a paragraph (<tag>p</tag>) that is a child of a division, and then the locator is a knowl of the entire paragraph.  Remember that a knowl contains an <q>in-context</q> link which can take the reader to the original location of the content in the knowl.</p>\n\n            <p>A lot happens in a <pretext/> paragraph, especially when producing <init>HTML</init>.  Sometimes an <tag>idx</tag> can get in the way.  Our recommendation is to put <tag>idx</tag> entries <em>between</em> sentences, and not at the start or end of the paragraph.  They can be authored with each on their own line.  If you do not need the specificity of a paragraph, then locate the appropriate structure and author the <tag>idx</tag> right after the <tag>title</tag> (or where one would be).</p>\n\n            <p>A <term>cross-reference</term> in an index is a pointer to another index entry.\n                <idx><h>cross-reference</h><h>index</h></idx>\n                <idx><h>index</h><h>cross-reference</h></idx>\n            These are rendered as <q>See</q> and <q>See also.</q>  You can add <tag>see</tag> and <tag>seealso</tag> elements within an <tag>idx</tag>, so long as it is structured with <tag>h</tag>.  Then it is placed after the last <tag>h</tag>.  A <q>see</q> cross-reference is a direct pointer to another entry in the index.  It cannot have a locator as well.  When you build the <init>HTML</init> output, we will recognize this situation and produce a warning.  A <q>see also</q> cross-reference is an additional pointer, and so it must have a locator to go with it (you will author two <tag>idx</tag> with identical headings, the first without a <tag>seealso</tag> to create the locator, the second with the <tag>seealso</tag> to create the cross-reference.  Again, when you build the <init>HTML</init> output, we will recognize a <tag>seealso</tag> without a locator and produce a warning.</p>\n\n            <p>Follow these directions and <pretext/> will format cross-references for you, in the style suggested by the <pubtitle>Chicago Manual of Style</pubtitle> <xref ref=\"cmos\"/> for <init>HTML</init> output, and according to <latex/>'s style for print and <init>PDF</init>.</p>\n\n            <p>(2019-03-04) We have consciously not said anything specific about what to place inside a <tag>see</tag> or <tag>seealso</tag> element.  At this writing, you need to supply the text.  Of course, this is error-prone and you will need to consult <acro>CMOS</acro> for formatting guidance.  But we have plans to do this the <pretext/> way.  First, the <c>ref/xml:id</c> mechanism will be used to automatically create the correct text for the cross-reference, both content and format.  Second, these will become live links in electronic formats.</p>\n\n            <p>Certain index entries do not sort very well, especially entries that begin with mathematical notation.  Our first advice is to avoid this situation, but sometimes it is necessary.  The <attr>sortby</attr> attribute on an <tag>h</tag> element can contain simple text that will be used to override the content shown to the reader during the sorting of the index.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-index-advice\">\n            <title>Advice on Indexing</title>\n            <idx><h>index</h><h>advice on</h></idx>\n\n            <p>\n              An index is a navigational aid for your readers (and you).\n              We do not assume that a reader remembers where anything is,\n              nor that the Table of Contents is a replacement for part of the index.\n              Some readers of the index may not have even read your book yet,\n              and are looking to get a feel for the range of topics as part of the decision of whether or not to read your book at all,\n              or if it will be useful to have.\n              It should be comprehensive, including everything substantive.</p>\n\n            <p>\n              Indexing is a job for a skilled professional, and most authors produce poor indexes.\n              The tips in this section will help you avoid the most common pitfalls.\n              We follow recommendations from the <pubtitle>Chicago Manual of Style</pubtitle>  <xref ref=\"cmos\" detail=\"Chapter 18\"/>,\n              <pubtitle>Indexing for Editors and Authors: A Practical Guide to Understanding Indexes</pubtitle>\n              <xref ref=\"indexing-guide\"/>,\n              and Pilar Wyman of <url href=\"http://www.wymanindexing.com/\" visual=\"www.wymanindexing.com/\">Wyman Indexing</url>.\n            </p>\n\n            <paragraphs><title>Terminology</title>\n              <p>The basic element of an index is an <term>entry</term>, which consists of\n                 a piece of information and its <term>locator</term>.  For example:\n                 </p>\n                 <pre>\n                     normal subgroup,  37\n                 </pre>\n                 <p>\n                 is an entry indicating that information about <q>normal subgroup</q>\n                 can be found on page 37.\n                 Indexes are (usually) organized alphabetically, with a\n                 <term>main heading</term>\n                 aligned with the left margin, and progressively indented <term>subheading</term>s below\n                 the main heading.\n              </p>\n\n              <p>Often it is desirable to place the same locator under more than one heading,\n                known as <term>double posting</term>.  For example, a desirable addition to the\n                sample entry above is\n                </p>\n                <pre>\n                subgroup,  28\n                   normal,  37 .\n                </pre>\n                <p>\n                An alternative to double posting is <term>cross referencing</term>, using\n                <em>see</em> and <em>see also</em>.  Typically cross references are used to\n                avoid repeating a large number of entries, or to direct the reader to related topics.\n              </p>\n\n              <p>An index may start with a <term>headnote</term> giving advice about using the index.\n                Typically a headnote is not necessary unless the index has some unusual features.\n              </p>\n            </paragraphs>\n\n            <paragraphs><title>Basic principles</title>\n              <p>The purpose of an index is to point the reader to information.\n                 Point to, not repeat.\n                 For example, acronyms should be indexed at the location where they are defined,\n                 not at every place they appear, and it is not necessary to define the acronym within the index.\n                 People and places should be indexed when information is given about them,\n                 not every time they are mentioned.\n              </p>\n\n              <p>A good index has multiple ways to find the same information.  Being redundant is desirable,\n                 because it increases the chance the reader finds what they seek in the first place they look.\n              </p>\n\n              <p>Indexing is best done after the text has been written.  Adding index entries while writing\n                 the text may seem to be a labor-saving device, but if you are not an experienced indexer,\n                 those entries will only be a small fraction of the final index.\n              </p>\n\n              <p>Topics should be indexed in multiple ways.  If a term is defined, you should also think\n                 of other words the reader might search for.  For example, you may define <q>limit point</q>\n                 and consistently use only that term, but an index entry for <q>accumulation point</q> with a\n                 <q><em>see</em> limit point</q> locator would be appropriate.\n              </p>\n              <p>Use <term>disambiguation</term> to distinguish identical terms with different meanings.\n                For example\n                </p>\n                <pre>\n                    isomorphism (of groups),  55\n                    isomorphism (of rings),  123\n                </pre>\n                <p>\n                Both of those entries should also be double posted under the main headings of <q>group</q>\n                and <q>ring</q>, respectively.  No disambiguation is needed for those entries.\n              </p>\n              <p>\n                Singular or plural forms of nouns should reflect the language in the text.\n                So if a chapter is titled <articletitle>Mammals</articletitle>,\n                then use a heading <c>mammals</c>.\n                And if the chapter is titled <articletitle>The Mammal Class</articletitle>,\n                then use a heading <c>mammal</c>.\n              </p>\n              <p>\n                An index is typically as long as 5% of the main text.\n                With many figures, or other structures creating additional whitespace,\n                the percentage may be lower.  If your primary output is online,\n                length may not be an issue.  For print, there are strategies for pruning an index.\n              </p>\n              <p>\n                Once you have finished the text, and then finished the index,\n                it is time for a thorough review of the index.\n                There will be places for consolidation, often due to using variants of particular words.\n                You may wish to remove subheadings which all appear within the range given in the heading.\n                For example,\n              </p>\n              <pre>\n                fish, 204-212\n                   bass, 208-209\n                   salmon, 210\n                   trout, 207\n              </pre>\n              <p>\n                could have all of its subheadings removed, especially if space is an issue.\n              </p>\n            </paragraphs>\n\n            <paragraphs><title>Common pitfalls</title>\n              <p>Sometimes it takes less than one second to determine that an index is poor.\n                 If a quick glance reveals that the index consists mostly of main headings\n                 with very few subheadings, then few readers will find it to be useful.\n                 Double posting, which may mean more than literally two entries with the same locator,\n                 will help readers find what they are looking for.  Most of those entries will\n                 be in subheadings.\n              </p>\n\n              <p>Another instantly recognizable problem is too many locators in one entry.  This entry\n              </p>\n              <pre>\n                  asymptote,  37, 48\n              </pre>\n              <p>\n              is probably fine.  But once you have three or more locators in an entry, then\n              your index may be improved by adding some subheadings.  If the locators in the above\n              example refer separately to <q>horizontal</q> and <q>vertical</q>, then probably two subheadings\n              would be more useful than two undifferentiated locators in one entry.\n              </p>\n\n              <p>An additional problem which can be seen at a glance if you know what to look for,\n              is the absence of any main headings with a large number of subheadings.  On almost\n              any subject there are topics which are addressed repeatedly.  This should be\n              reflected in the structure of the index.  For example, in a group theory textbook\n              there should be several entries under <q>group, examples</q>.  In an introductory\n              calculus book the index should help the reader locate the derivative of many\n              different elementary functions.\n              </p>\n\n              <p>\n                Index headings should be nouns, not adjectives.  An adjective may be important,\n                and you should use it, but it should not be the entire content of a heading\n                since it is not an idea by itself.  But it may be a subheading. For example,\n                suppose you have a paragraph on <q>highland sheep.</q>\n                Then <em>both</em> of the following should appear in your index,\n                since a reader might consult both locations.\n              </p>\n              <pre>\n                highland sheep, 45\n              </pre>\n              <pre>\n                sheep\n                   highland, 45\n              </pre>\n\n\n<!-- Discuss pointing to entire section/chapter -->\n\n<!-- singular plural -->\n\n\n            </paragraphs>\n        </subsection>\n    </section>\n\n\n    <section xml:id=\"topic-notation\">\n        <title>Notation</title>\n        <idx>notation</idx>\n        <idx>notation list</idx>\n        <idx><h>list</h><h>of notation</h></idx>\n\n        <p>We continue the introduction at <xref ref=\"overview-index-notation\"/>.  A notation list, like an index, is a specialized collection of cross-references.  So some of the philosophy here applies equally well to the <tag>idx</tag> and <tag>index-list</tag> elements, and vice-versa.  (See <xref ref=\"topic-index\"/>.)</p>\n\n        <p>To generate a list of notation employed in a book or article, use the <tage>notation-list</tage> element.  This empty element belongs in an <tag>appendix</tag>.  Likely it is the only content, or you might include some preliminary material.  The title of the <tag>appendix</tag> is up to you and is not automatic.</p>\n\n        <p>Some authors like to make definitions inside of paragraphs, ideally using a <tag>term</tag> element.  This is a natural place for a <tag>notation</tag> element.  So this approach gives an author a lot of flexibility in location.</p>\n\n        <p>Other authors like to make definitions using the <tag>definition</tag> element, since it creates a heading and number, allows a <tag>title</tag>, and can easily serve as the target of a cross-reference.  So this is another good place for a <tag>notation</tag> element.  But now, associate it clearly with the <tag>definition</tag> by placing it in the metadata, early on, after the <tag>title</tag>.  And not in some subsequent paragraph.  The reason will be clear in just a bit.</p>\n\n        <p>How is a <tag>notation</tag> element constructed?  It has two elements.  The <tag>usage</tag> should be a sample piece of mathematics using the necessary symbols, and wrapped in a <em>single</em> <tag>m</tag> element.  The second element is <tag>description</tag> and should be a short phrase, or sentence-like material, decoding the sample usage, and may include <tag>m</tag> elements.  The reader sees nothing in the output at the location of the <tag>notation</tag> element.</p>\n\n        <p>The automatically-generated notation list is then a three-column table, in the order of appearance, with the sample usage, the description, and a <term>locator</term>.  For output derived from <latex/>, such as print or <init>PDF</init>, the locator will be the page number of wherever you placed the <tag>notation</tag> element.  For <init>HTML</init> the locator is much better<mdash/>it is a knowl, for either a paragraph or for an entire definition.  The latter possibility explains why it is better to place the <tag>notation</tag> element inside a <tag>definition</tag>, if possible, rather than in a paragraph that is a constituent of a <tag>definition</tag>.</p>\n    </section>\n\n    <section xml:id=\"topic-automatic-lists\">\n        <title>Automatic Lists</title>\n\n        <p>Sometimes it is useful to have an automatic list of various elements of one kind in a book, other than the ones already available in a <pretext/> document.  The predefined ones include an index (see <xref ref=\"topic-index\"/>) and a list of notation (see <xref ref=\"topic-notation\"/>).  Examples of lists one might wish to create could include lists figures, computational listings, or theorems.</p>\n\n        <p>There is a very flexible way to make a list of various blocks (or perhaps other items) in your text.  Use an empty <tage>list-of</tage> element as a child of a division.  A very natural use would be to create an <tag>appendix</tag> for the sole purpose of holding one such list.  This is why this feature is frequently used in the back matter.  But you could place an <term>automatic list</term> many other places.</p>\n\n        <p>We will illustrate with an example.  Suppose you know your book has theoretical results only in <tag>theorem</tag> and <tag>lemma</tag> elements.  So, for example, you never use <tag>corollary</tag> elements.  Then you could author</p>\n\n        <pre><![CDATA[\n        <appendix xml:id=\"appendix-list-results\">\n          <title>List of Results</title>\n\n          <list-of elements=\"theorem lemma\" divisions=\"chapter\" empty=\"yes\"/>\n        </appendix>\n        ]]>\n        </pre>\n\n        <p>The result will be a link to every <tag>theorem</tag> and <tag>lemma</tag> in the entire book, using a clickable with its type, number and title.  See <xref ref=\"best-practices\"/> for an example. In <init>HTML</init> output the clickables will usually be knowls, which is especially handy.  The list will be organized with the titles of the chapters as headings.  The <attr>divisions</attr> attribute can have several types of divisions listed, such as both <tag>chapter</tag> <em>and</em> <tag>section</tag>.  The <attr>empty</attr> attribute set to <c>yes</c> indicates that a division heading should be used even if there is nothing on the list contained within.  The default for <attr>empty</attr> is <c>no</c>.</p>\n\n        <p>This feature is best used when the items in the list have been authored with titles, which greatly increases the utility of the list for your reader.  Review <xref ref=\"best-practice-titles\"/> if this advice is new to you.</p>\n\n        <p>There is a <attr>scope</attr> attribute, which should be the name of an element which is a division containing the location of the <tag>list-of</tag> element.  Then the list is restricted to items within the specified division.  For example, if you have the <tag>list-of</tag> inside a <tag>subsection</tag> built for this purpose, and you use <c>@scope=\"section\"</c> then the list will have all the items from throughout the section containing the list.</p>\n\n        <p>There are four types of exercises, based on their location: inline, divisional, worksheet, and reading questions.  These may be specified inside <attr>elements</attr> by the <term>pseudo-elements</term>: <c>'inlineexercise'</c>, <c>'divisionexercise'</c>, <c>'worksheetexercise'</c>, <c>'readingquestion'</c>.  (These are just strings meant for this purpose, and are not <em>real</em> <pretext/> elements.)</p>\n\n        <p>There may be an argument for a <attr>ref</attr> attribute that would behave similar to <attr>scope</attr>.  Make a feature request if you need it?</p>\n\n    </section>\n\n    <section xml:id=\"topic-myopenmath\">\n        <title>MyOpenMath Exercises</title>\n        <idx>myopenmath exercise</idx>\n\n        <p>MyOpenMath is a hosted online homework system with hundreds of thousands\n        of prebuilt questions.</p>\n\n        <p>In the web output, the MyOpenMath question will be embedded and\n        interactive though not tied to any student or faculty account.  In static output,\n        a static version of the question will be included.  Note that there are some\n        limitations on which problems will display correctly in web and static output. Best practices are below.</p>\n\n        <p>To include a MyOpenMath question, you'll first need an account on\n        <url href=\"https://myopenmath.com/\" visual=\"myopenmath.com\">MyOpenMath.com</url>\n        where you can browse the question libaries and look up the question ID.\n        Then in your PreTeXt document include a <tag>myopenmath</tag> element\n        with a <attr>problem</attr> attribute with the MyOpenMath question ID.</p>\n\n        <p>To further control the web behavior of the embedded question, you can\n        optionally include a <attr>params</attr> attribute containing a comma-separated\n        list of parameters, like <c>maxtries=1,showhints=0</c>, which can include:\n        <dl>\n            <li>\n                <title>maxtries</title>\n                <p>(default 0): Set to more than 0 to set the max tries on a\n                question part before it gets disabled, and before a scaffolded\n                question will move on to the next part.</p>\n            </li>\n            <li>\n                <title>hidescoreval</title>\n                <p>(default 0): Set to 1 to hide the \"score: #\" that displays\n                after submitting a question. Score markers (check or x) will\n                still show.</p>\n            </li>\n            <li>\n                <title>showansafter</title>\n                <p>(default 1, or maxtries if set): Set to have the answer show\n                after this many tries. Set to 0 to have answers never show.</p>\n            </li>\n            <li>\n                <title>showhints</title>\n                <p>(default 3): Set to 0 to suppress help features, like hints\n                and video buttons.</p>\n            </li>\n            <li>\n                <title>allowregen</title>\n                <p>(default 1): setting this to 1 will show a \"Try another version\"\n                button after submitting.</p>\n            </li>\n            <li>\n                <title>submitall</title>\n                <p>(default 0): Set to 1 for all parts to get submitted, regardless of whether all parts are answered.</p>\n            </li>\n            <li>\n                <title>seed</title>\n                <p>(default random): To set a specific seed (1-9999) to force a\n                specific version of the question to display</p>\n            </li>\n        </dl>\n        </p>\n\n        <p>While almost all problems will display correctly in web output and many will display correctly in static output, it is recommended that you avoid using problems with the following features. Note, you can usually make a copy of the problem, edit out the offending feature, and use your substitute.\n            <ul>\n                <li>Scaffolded problems</li>\n                <li>Problems with extensive formatting (e.g., use of an html table to control display)</li>\n                <li>Lists containing images or line breaks (&lt;br/&gt;)</li>\n            </ul>\n        If you really love a MyOpenMath problem that does not display correctly, you might contact <pretext/> support; likely someone knows how to produce a conforming version.\n        </p>\n    </section>\n\n    <section xml:id=\"topic-stack\">\n        <title>STACK Exercises</title>\n        <idx>STACK exercise</idx>\n\n        <p><acro>STACK</acro> is an assessment system with online interactive exercioses.  This section will soon have instructions on how to embed these exercises.</p>\n    </section>\n\n    <section xml:id=\"topic-url\">\n        <title><init>URL</init>s and External References</title>\n        <idx>URL</idx>\n        <idx>external reference</idx>\n\n        <subsection>\n            <title><init>URL</init>s to External Web Pages</title>\n\n            <p>The <tag>url</tag> element is used to point to <em>external</em> web pages, or other online resources  (as distinct from other internal portions of your current document, which is accomplished with the <tage>xref</tage> element, <xref ref=\"overview-cross-references\"/>).  The <attr>href</attr> attribute is always necessary, as it contains the full and complete address of the external page or resource.  Include everything the <init>URL</init> needs, such as the protocol, since this will be most reliable, and as you will see it never needs to be visible.  The element always allows, and then employs, a <attr>visual</attr> attribute for a provided more-friendly version of the address.  Finally, the content of the element, which becomes the clickable text in electronic formats, can be authored with the full range of <pretext/> markup generally available in a title or sentence.  A typical use might look like<cd>\n                <cline>&lt;url href=\"https://example.com/\" visual=\"example.com\"&gt;Demo Site&lt;/url&gt;</cline>\n            </cd>This will render as <url href=\"https://example.com/\" visual=\"example.com\">Demo Site</url>.  If a <tag>url</tag> has content, and no <attr>visual</attr> attribute is given, then the <attr>href</attr> will be placed in a trailing parenthetical for print versions of PDF, though there will be an attempt to remove standard protocols.  Compare\n            <cd>\n                <cline>&lt;url href=\"https://example.com/\"&gt;Demo Site&lt;/url&gt;</cline>\n            </cd>which will render as <url href=\"https://example.com/\">Demo Site</url> versus<cd>\n                <cline>&lt;url href=\"mailto:nobody@example.com\"&gt;Bouncing Email&lt;/url&gt;</cline>\n            </cd>which will render as <url href=\"mailto:nobody@example.com\">Bouncing Email</url>.</p>\n\n            <p>If you do not provide any content for a <tage>url</tage> element, then the clickable text will be the actual <init>URL</init> with a preference for the (optional) <attr>visual</attr> attribute, rather than the mandatory <attr>href</attr> attribute.  This should be considered as disruptive to the flow of your text, and so a poor alternative to the content version just discussed (see <xref ref=\"best-practice-urls\"/>).  But it might be a good choice in something like a list of interesting web sites.  Whether or not a simplified version of the address, via the <attr>visual</attr> attribute, is desirable will depend on the application.  As an example, using the optional <attr>visual</attr> attribute we have<cd>\n                <cline>&lt;url href=\"https://example.com/\" visual=\"example.com\"/&gt;</cline>\n            </cd>This will render as <url href=\"https://example.com/\" visual=\"example.com\"/>.  Note that for the print version of PDF, there is no trailing parenthetical since the visual version is already apparent.</p>\n\n            <p>If you want to squelch the automatic trailing parenthetical for the print version of PDF on a <tag>url</tag> element with content, you can explicitly set the <attr>visual</attr> attribute to an empty string as <c>visual=\"\"</c>.  This signal will inhibit the automatic trailing parenthetical.  This should be a <em>very rare</em> occurence, since you are denying readers of some formats from seeing even a hint of the actual <init>URL</init>.</p>\n\n            <p>A <tag>url</tag> inside a <tag>title</tag> has been accounted for, but should be used with caution.</p>\n\n            <p>As with the rest of <pretext/> we have taken care to handle all of the exceptional characters that might arise in a <tag>url</tag>.  So author normally, using the necessary keyboard characters, only taking care with the two <init>XML</init> characters, <c>&lt;</c> and <c>&amp;</c>, which need escaping (see <xref ref=\"overview-exceptional-characters\"/>).  Use <term>percent-encoding</term><idx>percent encoding</idx><idx><h>percent encoding</h><seealso>URL encoding</seealso></idx> (aka <term>URL encoding</term><idx><h>URL</h><h>URL encoding</h></idx>) for the <attr>href</attr> attribute, if necesary, to include special characters, such as spaces.  See <xref ref=\"topic-url-characters\"/> below for a common need for the ampersand character, and a further caution  about percent-encoding of <init>URL</init>s.</p>\n\n            <p>Finally, for conversion to <latex/>/PDF output it gets extremely tricky to handle all the various meanings of certain escape characters in <init>URL</init>s in more complicated contexts (such as tables, footnotes, and titles), so there may be some special cases where the formatting is off or you get an error when compiling your <latex/>.  We have anticipated most of these situations, but we always appreciate reports of missed cases.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-dataurl\">\n            <title>Data <init>URL</init>s</title>\n            <idx><h>URL</h><h>data</h></idx>\n            <idx>data URL</idx>\n\n            <p>A <tag>dataurl</tag> element is very similar to the <tag>url</tag> element just described.  The purpose is to point to an actual file that will be of use to your readers.  What actual happens when a reader clicks on it is dependent on the format of the <pretext/> output and that reader's environment.  Maybe the file will be downloaded, or maybe a particular application will open the file.  That part is out of our hands.  Use an <attr>href</attr> attribute in the same way as for <tag>url</tag>, and the content and the <attr>visual</attr> attribute also behave similarly.</p>\n\n            <p>The one key differerence is that you can also use a <attr>source</attr> attribute in place of <attr>href</attr> and point to a file that you provide as part of your project (not unlike providing a photographic image via the <tag>image</tag> element).  Place the file in your collection of external files (see <xref ref=\"processing-directory-management\"/>) and provide the path to your file from below the directory of external files in the <attr>source</attr> attribute.  For <init>HTML</init> output, <pretext/> will do the rest.  For more static formats, you can set a base <init>URL</init> (see <xref ref=\"online-baseurl\"/>) and you will get a complete <init>URL</init> that points to the instance of your file hosted with the rest of your <init>HTML</init> output.</p>\n\n            <p>Notice that this element provides limited functionality, at best just a hyperlink to a file.  For data files that you want a reader's in-browser computer program to process, read about the <tag>datafile</tag> element at <xref ref=\"topic-datafile\"/>.</p>\n        </subsection>\n\n        <subsection xml:id=\"topic-visual-urls\">\n            <title>Visual <init>URL</init>s</title>\n            <idx><h>URL</h><h>visual</h></idx>\n\n            <p>By a <term>visual URL</term> we mean a version of a <init>URL</init> that is simpler than the <q>real</q> <init>URL</init>, but that provides enough information that a reader can type the <init>URL</init> into some other device with a minimum of effort, and with success.  Consider that your project may someday be a print (hardcopy) book, or that your project will be converted to braille for a blind reader.  These are some ideas about making a <init>URL</init> simpler.  We welcome more ideas.<ul>\n                <li>Remove standard/default protocols like <c>http://</c> and <c>https://</c> which most browsers will furnish in their absence.</li>\n                <li>Sites like <url href=\"https://stackexchange.com/\" visual=\"stackexchange.com\">StackExchange</url> list posts with a long identifying number, followed by something that looks like the title.  In practice, the number is enough.</li>\n                <li>Experiment with dropping a trailing slash<mdash/>they are frequently unnecessary.</li>\n                <li>Often a leading <c>www.</c> in a domain name is not necessary.</li>\n                <li>Try providing just a domain name in place of a top-level landing page, it will often redirect to a longer <init>URL</init>.</li>\n                <li>You could use a <url href=\"https://en.wikipedia.org/wiki/Wikipedia:URLShortener\" visual=\"https://w.wiki/4QA\">URL shortener</url>, though some thought should be given to <url href=\"https://en.wikipedia.org/wiki/Google_URL_Shortener\" visual=\"https://w.wiki/4eEM\">its longevity</url>.  Will you remember where your short <init>URL</init>s point once they are no longer functional?  Safer to have your long <init>URL</init>s in an <attr>href</attr> in your source, and use <pretext/> to make them friendlier.</li>\n            </ul></p>\n\n            <note xml:id=\"best-practice-urls\">\n                <title>Craft URLs Carefully</title>\n\n                <p>Your writing will be smoother, and easier on your readers, if you do not interrupt a sentence with a long <init>URL</init>, unless somehow it is really of interest and relevant right there.  So provide content (the <q>clickable</q> text) when you use the <tag>url</tag> element (rather than an empty <tage>url</tage>).  This obligates you to provide a <attr>visual</attr> attribute, which feels a little like a tedious exercise.  But this will be very welcome to some of your readers, those who are unable or prefer not to use electronic formats.  Just above (<xref ref=\"topic-visual-urls\"/>), we provide suggestions for crafting these to be more pleasing, but still useful, versions of <init>URL</init>s.</p>\n            </note>\n        </subsection>\n\n        <subsection xml:id=\"topic-url-characters\">\n            <title>Characters in <init>URL</init>s</title>\n            <idx><h>URL</h><h>query string</h></idx>\n\n            <p>A <init>URL</init> can have a <term>query string</term>, which has a list of parameters following a question-mark.  The parameters are separated by ampersands (&amp;), which will need to be escaped, so as to not confuse the <init>XML</init> processor.  So use <c>&amp;amp;</c> anywhere the ampersand <em>character</em> is necessary, such as a <attr>source</attr> attribute, or a monospace version of a <init>URL</init> achieved with a <tag>c</tag> element.  Also, the question-mark character should <em>not</em> be <init>URL</init>-encoded (<c>%3F</c>) (despite advice just given above), so if necessary edit it to be the actual character.  General advice about exceptional characters in <init>XML</init> source can be found in <xref ref=\"overview-exceptional-characters\"/>.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-video\">\n        <title>Video</title>\n        <idx>video</idx>\n\n        <introduction>\n            <p>A video is a natural way to enhance a document when rendered in an electronic format, such as <init>HTML</init> web pages.  It might be additional information that is hard to communicate with text (marine invertebrates swimming), a lecture or presentation that augments your text, or even some artistic work, such as a symphony legally hosted on YouTube, when you could never hope to get copyright clearance yourself.</p>\n\n            <p><pretext /> supports videos you own and distribute with your source, videos shared openly on the Internet via stable <init>URL</init>s, and videos available on YouTube.  Go straight to to the end of this section to see how easy it is to incorporate a YouTube video.</p>\n\n            <p>HTML5 web browsers are able to play video files in three formats, summarized in the following table.</p>\n\n            <table xml:id=\"table-video-formats\">\n                <title>HTML5 video formats</title>\n\n                <tabular>\n                    <row>\n                        <cell>Format</cell>\n                        <cell>Extension</cell>\n                        <cell>Reference</cell>\n                    </row>\n                    <row>\n                        <cell>Ogg, Theora</cell>\n                        <cell><c>.ogg</c></cell>\n                        <cell>Free and open, <url href=\"https://en.wikipedia.org/wiki/Ogg\" visual=\"en.wikipedia.org/wiki/Ogg\">Wikipedia</url></cell>\n                    </row>\n                    <row>\n                        <cell>WebM</cell>\n                        <cell><c>.webm</c></cell>\n                        <cell>Royalty-free, <url href=\"https://en.wikipedia.org/wiki/WebM\" visual=\"en.wikipedia.org/wiki/WebM\">Wikipedia</url></cell>\n                    </row>\n                    <row>\n                        <cell>MPEG-4</cell>\n                        <cell><c>.mp4</c></cell>\n                        <cell>Patent encumbered, <url href=\"https://en.wikipedia.org/wiki/MPEG-4_Part_14\" visual=\"en.wikipedia.org/wiki/MPEG-4_Part_14\">Wikipedia</url></cell>\n                    </row>\n                </tabular>\n            </table>\n        </introduction>\n\n        <subsection>\n            <title>Video Element</title>\n\n            <p>The <tag>video</tag><idx>video</idx> element is used to embed a video in output formed from <init>HTML</init>.  Subsections below describe the different ways to indicate the source of the video.  The video may be placed inside a <tag>figure</tag> or can be a panel of a <tag>sidebyside</tag>.  The former will have a caption, be numbered, and hence can be the target of a cross-reference (<tag>xref</tag>).  The latter is anonymous, but allows for horizontal layout, and combinations with other panels.</p>\n\n            <p>Size is controlled by a <attr>width</attr> attribute expressed as a percentage (on the <tag>video</tag> element when used in a figure, or as part of the <tag>sidebyside</tag> layout parameters).  Height is controlled by giving the <term>aspect ratio</term><idx>aspect ratio</idx><idx><h>aspect ratio</h><seealso>video</seealso></idx><idx><h>video</h><h>aspect ratio</h></idx> with the <attr>aspect</attr> attribute on the <tag>video</tag> element.  The value can be a ratio expressed like <c>4:3</c> or a decimal number computed from the width divided by the height, such as <c>1.333</c>.  The default for videos is a 16:9 aspect ratio, which is very common, so you may not need to specify this attribute.</p>\n\n            <p>Options include specifying a <attr>start</attr> and an <attr>end</attr> in seconds as integers (no units) if you only want to highlight a key portion of a video.  The <attr>play-at</attr> attribute can take the following values<dl width=\"narrow\">\n                <li>\n                    <title><c>embed</c></title>\n                    <p>Play in place (the default action).</p>\n                </li>\n                <li>\n                    <title><c>popout</c></title>\n                    <p>Play in new window or tab, at 150% width.</p>\n                </li>\n                <li>\n                    <title><c>select</c></title>\n                    <p>Provide the reader the choice of the other two options.</p>\n                </li>\n            </dl>In an educational setting, sometimes the preview images provided by YouTube can be distracting, or for an author-provided video you may wish to provide your own preview image.  The <attr>preview</attr> attribute can take on the following values<dl width=\"narrow\">\n                <li>\n                    <title><c>generic</c></title>\n                    <p><pretext /> supplies a Play-button image.</p>\n                </li>\n                <li>\n                    <title><c>default</c></title>\n                    <p>Whatever the video playback provides.  This is identical to simply not including <attr>attribute</attr> at all</p>\n                </li>\n                <li>\n                    <title>Path to an image file</title>\n                    <p>Typically, this will be a relative path, starting with <c>images/</c>.  This image will be used as preview for the online version and the print version.</p>\n                </li>\n            </dl></p>\n        </subsection>\n\n        <subsection>\n            <title>Author-Provided Videos</title>\n\n            <p>If you own and possess your video content, then you can distribute it with your <pretext /> source, and it can be hosted as part of your <init>HTML</init> output.  Then the <attr>source</attr> should be a relative file name that points to the file containing the video.  If you are able to provide more than one of the three formats in <xref ref=\"table-video-formats\" />, then you can provide the filename <em>without an extension</em>.  If a browser cannot play one format, it may be able to play another.  <pretext /> will write the code to make that happen, preferentially in the order of the table (more open formats first!).  In other words, you can provide files in more than one format and increase the likelihood that a reader's browser will find a format it can playback.</p>\n        </subsection>\n\n        <subsection>\n            <title>Network-Hosted Videos</title>\n\n            <p>If a video is shared openly on the Internet, you can simply provide the full <init>URL</init> in the <attr>href</attr> attribute.  All the other attributes are the same as for the author-provided case, above.  Read <xref ref=\"topic-url-characters\" /> for some considerations when authoring a <init>URL</init>, since there are a few gotchas.</p>\n\n            <p>You can frequently discover the <init>URL</init> of a video by first playing it, and then using a context menu (<eg /> via a right-click) to reveal an option to copy the video's location.  However, note that there are various techniques sites use to make such a <init>URL</init> temporary, or otherwise unusable.  So do some research about potential uses and test carefully.  Our example below is provided from a United States government site.</p>\n\n            <p>Also, some video-sharing sites do their best to never make it easy to access the video as a file, so the construction described here will not be successful.  Instead, they have links to <q>Share</q> or to <q>Embed</q> which will run their own (proprietary) player in your web browser.  YouTube and Vimeo are two popular examples, and we provide explicit support, see <xref ref=\"topic-youtube-video\"/> for YouZTube, while Vimeo is similar.  For other sites, you have limited success with the <tag>interactive</tag> element, with a construction such as:\n                <cd>\n                    <cline>&lt;interactive iframe=\"https://www.dailymotion.com/embed/video/x8mc0pr\"/&gt;</cline>\n                </cd>\n            Here is one example of a network-hosted video in MP4 format (from the <url href=\"https://tekeye.uk/html/html5-video-test-page\">HTML5 Video Test Page</url> at <url href=\"https://tekeye.uk/\">Tek Eye</url>):</p>\n\n            <figure>\n                <caption>Jōren Falls, Kano River, Japan</caption>\n                <video label=\"joren-falls-video\" href=\"https://tekeye.uk/html/images/Joren_Falls_Izu_Jap.mp4\" width=\"80%\" preview=\"joren-falls.png\" />\n            </figure>\n        </subsection>\n\n        <subsection xml:id=\"topic-youtube-video\">\n            <title>YouTube Videos</title>\n\n            <p>For a video hosted at YouTube, find the 11-character identification string in the address of a video you are viewing.  It will look something like <c>hAzdgU_kpGo</c>.  Then, instead of the <attr>source</attr> attribute, simply provide this identification string as the <attr>youtube</attr> attribute, such as<cd>\n                <cline>youtube=\"hAzdgU_kpGo\"</cline>\n            </cd>That's it.  All of the options above are then implemented and realized with YouTube's embedded player.</p>\n\n            <p>This can be a great way to incorporate popular or artistic content, legally, which might be difficult or costly to acquire through copyright clearance.</p>\n\n            <figure>\n                <caption>The Eagles, <articletitle>Hotel California</articletitle></caption>\n                <video xml:id=\"video-hotel-california\" youtube=\"YW4dzWE1SUs\" width=\"60%\" start=\"12\" preview=\"hotel-california.jpg\" />\n            </figure>\n\n            <figure>\n                <caption>Mozart, Piano Sonata in C Major, K. 545, II</caption>\n                <video xml:id=\"mozart-piano-sonata\" youtube=\"1Yv_AINhVn4\" width=\"80%\" preview=\"mozart-piano.jpg\" />\n            </figure>\n\n            <p>The <c>pretext</c> script (<xref ref=\"pretext-script\" />) may be used to download the provided preview images for YouTube videos (only).  Filenames will be formed from the <attr>xml:id</attr> of the <tag>video</tag> element.  These will be used in static versions of output, such as print.  Once custom preview images are implemented for author-hosted video, their static representation will improve.</p>\n\n            <p>Additionally, a YouTube <term>playlist</term> can be included in one of two ways. You may set the <attr>youtube</attr> attribute to be a space-separated list of several video IDs (an <q>itemized</q> playlist). Alternatively, you may set the <attr>youtubeplaylist</attr> attribute to a YouTube playlist ID (a <q>named</q> playlist). At present, a named playlist will not get a thumbnail image from Youtube, and either the <q>generic</q> thumbnail will be used or you can supply your own <attr>preview</attr>.</p>\n\n            <figure>\n                <caption>YouTube Playlist</caption>\n                <video youtubeplaylist=\"PLGRecdYLYDNdX5NEkS3KH-ZtCqc2f8lJ_\" />\n            </figure>\n\n            <p>Make a feature-request if a scheme similar to the one for YouTube, but for some other video-hosting service, would be useful for your project.</p>\n\n            <p>Note that when a project is hosted at Runestone Academy (<xref ref=\"runestone\"/>) a YouTube video becomes an activity that is part of a student's reading assignement.  So just like an interactive exercise, it needs a <attr>label</attr> attribute.  See <xref ref=\"best-practice-label\"/> for more.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-music\">\n        <title>(*) Music</title>\n\n        <p>TODO: Scholarly works discussing music may use notes and chords in text, and displays of sheet music are easily supported. (TODO: add some discussion to <xref ref=\"overview\" />.)</p>\n\n    </section>\n\n    <section xml:id=\"topic-units-measure\">\n        <title>(*) Units of Measure</title>\n        <p></p>\n    </section>\n\n    <section xml:id=\"topic-unicode\">\n        <title>Unicode Characters</title>\n        <idx>Unicode characters</idx>\n\n        <introduction>\n\n            <p><pretext /> supports (and encourages) the use of Unicode characters.  Here are some relevant comments.<ul>\n                <li><p>Unicode characters will migrate well to any output format based on <init>HTML</init>.  Most browsers will have a variety of fonts with glyphs to realize these characters.</p></li>\n\n                <li><p><latex /> will not always behave as smoothly.  For openers, you definitely will want to use the <c>xelatex</c> engine to build a <init>PDF</init>.  Then you need to be sure your system has a font with the necessary characters and you make the font known to <c>xelatex</c>.  We are working out the details of the best way to accomplish this.</p></li>\n\n                <li><p>How do you get a Unicode character into your source?  In part this is specific to your operating system and editor, so is outside the scope of this guide, but we have hints below for popular operating systems.</p></li>\n\n                <li><p>You can always place a Unicode character in your source using <init>XML</init> syntax.  The first thing an <init>XML</init> parser will do is convert this syntax into a character.  The number of the <c>SECTION SIGN</c> in hexadecimal is <c>A7</c>, so the syntax <c>&amp;#xA7;</c> is identical to the  character &#xA7;.  Of course, this will get tedious fast.</p></li>\n\n                <li><p>The <url href=\"https://www.cs.tut.fi/~jkorpela/fui.html8\" visual=\"www.cs.tut.fi/~jkorpela/fui.html8\">Full Unicode Input</url> utility at <c>www.cs.tut.fi/~jkorpela/fui.html8</c> will allow you to specify a chunk of 256 consecutive Unicode numbers and then you can click on characters to make a string of several or many.  You can cut/paste these into your source, or convert the whole lot to <init>XML</init> syntax all at once.</p></li>\n\n                <li><p>Unicode characters have standardized names.  You can find these, and more information, including font support, at the Unicode section of <url href=\"http://www.fileformat.info/info/unicode/\" visual=\"www.fileformat.info/info/unicode/\">FileFormat.info</url>.  If you are struggling to find a specific character, then using this site's name in a search will often quickly locate what you need.  Be sure to experiment with the test pages there for browser and font support (including checking your local configuration).</p></li>\n\n                <li>\n                    <p><alert>Warning</alert>: do not use Unicode characters as a way to get mathematical symbols (that is delegated to our use of <latex /> syntax).  And do not use Unicode when we have provided an empty element for a character.  These empty elements are conveniences, which spare you from looking up Unicode numbers and make your source more readable.  We also sometimes fine-tune these characters in ways that are not possible if you embed them as Unicode.  An example is <c>&lt;times /&gt;</c>, for use outside of a strictly mathematical setting:  <q>I bought a 2<times />4 at the lumberyard.</q></p>\n                </li>\n            </ul></p>\n        </introduction>\n\n        <subsection>\n            <title>Unicode Support in OSX</title>\n\n            <p>Mitch Keller reports on 2017-01-12 a way to get some popular characters with OSX.  Use the Keyboard preference pane under System Preferences. In there, you can enable <cd>\n                <cline>Show Keyboard, Emoji, &amp; Symbols Viewers in menu bar</cline>\n            </cd>Once you activate the keyboard viewer, you get a keyboard on your screen. When you hold down <c>opt</c>, it shows you what other symbol you would get if you push <c>opt+letter</c>. For instance, <c>opt+w</c> gives an upper-case Greek sigma and <c>opt+=</c> gives a not-equals sign (neither of which we can handle when processing the latex version of this guide). To get ä, you type <c>opt+u</c> and then hit <c>a</c>. This is illustrated by the keys for diacritical marks being highlighted in orange while holding opt.  The shift key can have an effect to produce variations of some characters, such as quote marks (dumb versus smart).</p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Unicode Support in Linux</title>\n            <p></p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Unicode Support in Windows</title>\n            <p></p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-braille-practices\">\n        <title>Braille Best Practices</title>\n        <idx><h>braille</h><h>best practices</h></idx>\n\n        <p>This is an evolving list of best practices for authoring (and publishing) so that a conversion to braille is as useful as possible for the blind reader.</p>\n\n        <p>Many recommendations for mathematics will be useful to any reader, but perhaps even moreso for a blind reader, so read <xref ref=\"topic-mathematics-practices\"/>.  Recommendations here may also improve your project for all readers.  See <xref ref=\"publisher-braille\"/> for more about the mechanics of producing output as braille.</p>\n\n        <paragraphs>\n            <title>Division Numbering</title>\n\n            <p>Braille uses various devices to indicate division headings, since font weight, size, and color are not available.  These include starting on a new page, centering text, preceding with a blank lines, standard levels of indentation (4 or 6 cells), and combinations of these devices.</p>\n\n            <p>In a conversion from <pretext/>, the text of each heading is the number of the division, followed by the title.  So the formatting and the presence of a hierarchical number are together good clues that a new division is starting.  And the number of parts in the hierarchical number will also serve as a precise indicator of the depth of the division.</p>\n\n            <p>As a publisher, you can <q>turn off</q> division numbering below some level (<xref ref=\"publication-file-numbering\"/>).  Think carefully about the impact this will have on a blind reader, since lesser division headings will be harder to recognize without a leading number.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Side-By-Side Layout</title>\n\n            <p>A <tag>sidebyside</tag> can be a very useful device, but think carefully about its suitability.  As of 2022-11-30, we have yet to even handle them carefully in a braille conversion.  And if your panels hold images, that is even harder, since we do not have good support for tactile images yet.</p>\n\n            <p>In any event, we will likely <q>unwind</q> a <tag>sidebyside</tag> into a series of its panels running <em>down</em> the page, rather than <em>across</em>, along with a note about how many panels to expect.  So when you author a <tag>sidebyside</tag>, consider how this alternate presentation in braille will be received by the reader.</p>\n        </paragraphs>\n    </section>\n\n    <section xml:id=\"topic-doctest-sage\">\n        <title>(*) Testing Sage Examples</title>\n        <p></p>\n    </section>\n\n    <section xml:id=\"topic-xinclude\">\n        <title>Xinclude Modularization</title>\n\n        <p>The <c>xinclude</c><idx><c>xinclude</c></idx> mechanism is not part of <pretext />, <foreign>per se</foreign>.  It is of some use for organizing your authoring, so you do not have mammoth files open in your text editor.  As discussed in <xref ref=\"processing-modular\" /> there is very little value in modularizing so much that you have many very small files, and also almost no benefit whatsoever to using directory structure to duplicate the inherent tree-like structure of <init>XML</init>.  Many small files, or deeply-nested directories, seem to be of little help and can cause more headaches than they are worth.</p>\n\n        <p>The <c>xinclude</c> mechanism automatically introduces a <attr>xml:base</attr> attribute, which we need to account for in the RELAX-NG schema (<xref ref=\"schema\" />).  So we limit which <pretext /> elements may be the root element of an included file.  The rough, general rule is that if an element <em>can</em> have a title, then it can be the root element of an included file.  So in particular each of the divisions (<tag>chapter</tag>, <tag>section</tag>, <etc />) is a candidate.</p>\n\n        <p>One special exception to this restriction is the use of text files, containing absolutely no markup at all.  Two good examples are the <tag>code</tag> child of a <tag>program</tag> or the <tag>latex-image</tag> element used to describe an <tag>image</tag> by source code that <latex /> understands.</p>\n\n        <p>In both cases you can put the text content of these elements in a separate file, use the <attr>href</attr> attribute of <tag>xi:include</tag> to point to the file, and then the twist is to set the <attr>parse</attr> attribute to the value <c>text</c>.  This has two general benefits.  First, you now <em>cannot</em> have any <init>XML</init> in the file, so you do not have to have a single root element for the file (and so the schema imposes no restrictions).  Second, you do not need to escape any problematic characters like ampersands and angle brackets (<xref ref=\"topic-verbatim-literal\" />), nor use the misunderstood <init>CDATA</init> mechanism.</p>\n\n        <p>There is one caveat about this device.  Normal XML processing will normalize line endings.  Usually this means XML source edited on Windows will have line endings that are two characters, a carriage return (<c>CR</c>) and a line feed (<c>LF</c>).  Effectively, this is replaced by one character, the line feed, which is what is common for Linux and Mac.  However, when you use the <attr>parse</attr> attribute with value <c>text</c>, this is now an <term>unparsed entity</term> and the normalization of line endings does not happen.  The likely result may be a lot of extra blank lines interleaved into your content.  See <url href=\"https://www.w3.org/TR/xml/#sec-line-ends\" visual=\"www.w3.org/TR/xml/#sec-line-ends\">End-of-Line Handling</url> in the XML specification for details.</p>\n\n        <p>Additionally, in the case of <tag>latex-image</tag> you can park unsightly code away in files so you do not have to look at it, or you can create a small driver <latex /> program to test each one, or even better, you may want to use the same image more than once (maybe in different figures?) and can just include it repeatedly, while only ever editing the single copy.</p>\n\n        <p>Finally, the <tag>input</tag> and <tag>output</tag> children of <tag>sage</tag>, and <tag>console</tag> as well as the <tag>code</tag> of <tag>program</tag> are also candidates for this device.  In particular, you may want to have the code for a program in its own file where you can test it easily with an interpreter or compiler.  There is one gotcha.  If you were to put a newline between <tag>code</tag> and <tag>xi:include</tag> there is the very real potential of unwanted whitespace bleeding into your <pretext /> output.  Our suggested remedy uses an example from Bob Plantz.  Convert</p>\n\n        <pre>\n        &lt;program language=\"c\">\n            &lt;code>\n                &lt;xi:include parse=\"text\" href=\"intAndFloat.c\"/>\n            &lt;/code>\n        &lt;/program>\n        </pre>\n\n        <p>to</p>\n\n        <pre>\n        &lt;program language=\"c\">\n            &lt;code>&lt;xi:include parse=\"text\" href=\"intAndFloat.c\"/>&lt;/code>\n        &lt;/program>\n        </pre>\n\n        <p>There are some fancy <init>XSLT</init> tricks you can employ to use more complicated content repeatedly.  Your source will be less portable, and we do not support or recommend these techniques.  But if you want a go anyway, see hints at <url href=\"http://www.sagehill.net/docbookxsl/DuplicateIDs.html\" visual=\"www.sagehill.net/docbookxsl/DuplicateIDs.html\"/>.  Note the reliance on <c>xpointer()</c>, and that the final technique is restricted to DocBook, a different <init>XML</init> vocabulary.</p>\n    </section>\n\n    <section xml:id=\"topic-localization\">\n        <title>Localization</title>\n        <idx>localization</idx>\n        <idx>internationalization</idx>\n\n        <introduction>\n          <p>We briefly introduced <pretext/> support for authoring documents in multiple languages in <xref ref=\"overview-localization\"/>.  Here are some more details.</p>\n\n          <p>First, authors are encouraged to write the actual text of their documents using the language of their choice.  See <xref ref=\"topic-unicode\"/> for details. For <init>HTML</init> this should be straightforward, for other output formats (especially <init>PDF</init>) the publisher may need to have various fonts installed (see <xref ref=\"latex-fonts\"/>).</p>\n\n          <p>Localization for <pretext/> itself is restricted to the items <pretext/> names for you.  This includes things like <tag>theorem</tag>, but also items such as the labels of navigation buttons.  To have this in your language requires two things, described in the following subsections.</p>\n        </introduction>\n\n        <subsection>\n          <title>Localization Files</title>\n\n          <!-- 2023-02-07: 15 languages -->\n          <p>The prerequisite is that a localization file for your language exists.  Fifteen languages are already supported, such as <c>es-ES</c> (Peninsular Spanish), <c>pt-BR</c> (Brazilian Portuguese), and <c>hu-HU</c> (Hungarian/Magyar); the default language code is <c>en-US</c> (American English).  For a up-to-date list of which languages are available, see <url href=\"https://github.com/PreTeXtBook/pretext/tree/dev/xsl/localizations\" visual=\"xsl/localizations\">the localization stylesheet folder on GitHub</url>.</p>\n\n          <p>If such a file does not exist, you will need to create one or find someone to help you do so. Brief instructions for this <url href=\"https://github.com/PreTeXtBook/pretext/blob/dev/xsl/localizations/README.md\" visual=\"xsl/localizations/README.md\">are in the README file</url> for this directory.  These instructions suggest using the <c>en-US</c> file as a template and as a source of more detailed instructions.  We highly encourage anyone who creates such a file to contribute it to our growing list of localization stylesheets; see <xref ref=\"contributing\"/> in the Appendices for details.</p>\n        </subsection>\n\n        <subsection>\n          <title>Changing the Document Language</title>\n\n          <p>In order to use a localization, simply place <c>xml:lang=\"es-ES\"</c> (with language code as appropriate for your project) as an attribute on your <tag>pretext</tag> element.  For example:<cd>\n            <cline>&lt;pretext xml:lang=\"hu-HU\"/></cline>\n          </cd>Then you can process your source as usual.  Be sure to check that the translations look appropriate in your output.</p>\n\n          <p>While processing your source, you may encounter warnings for missing translations, like this:<cd>\n            <cline>MBX:WARNING: could not translate string with id</cline>\n            <cline>\"hypothesis\" into language for code \"pt-PT\"</cline>\n          </cd>In this case, the localization stylesheet is missing a translation for this tag, and it will remain in <c>en-US</c>.  We welcome contributions to keep stylesheets fully complete; see <xref ref=\"contributing\"/> for details.</p>\n        </subsection>\n\n        <subsection>\n          <title>Multilingual Documents</title>\n\n          <p>As of the start of 2023, we are improving support to allow for <em>parts</em> of a document to be in different languages.  Much as you place an <attr>xml:lang</attr> attribute on the overall <tag>pretext</tag> element, you can place this attribute, <em>with a different supported language</em> onto any element, and all of the content within that element should react according to the new language.  A division would be most natural, but perhaps also a block or a paragraph?  Development continues, and in particular not every part of an <init>HTML</init> page always reacts.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"topic-accessibility\">\n        <title>Accessibility</title>\n        <idx>accessibilty</idx>\n        <idx>web accessibilty</idx>\n        <subsection xml:id=\"subsec-accessibility-automatic\">\n            <title><pretext /> provided accessibility features</title>\n\n\n        <p>Continuing our discussion from <xref ref=\"overview-accessibility\" /> we begin by listing features of our conversion to <init>HTML</init> which happen automatically.  These come in part from the recommendations at the <url href=\"https://www.w3.org/WAI/standards-guidelines/wcag/\" visual=\"www.w3.org/WAI/standards-guidelines/wcag/\">Web Content Accessibility Guidelines</url> of the Web Accessibility Initiative.<dl width=\"narrow\">\n            <li>\n                <title>HTML</title>\n                <p>Wherever possible we supply <init>HTML</init> elements and attributes that will be interpreted sensibly by a screen reader in the absence of the visual styling provided by <init>CSS</init>.  This means we are very careful about the role of headings (<c>h1</c> through <c>h6</c>) for screenreaders, both for divisions and the block elements they contain.  We provide HTML that passes validation checks.  And so on.  Employing attributes from the <url href=\"https://www.w3.org/WAI/standards-guidelines/aria/\" visual=\"www.w3.org/WAI/standards-guidelines/aria/\">Accessible Rich Internet Applications</url> suite of web standards (<init>ARIA</init>) will go a long way to improving accessibility.  This work is on-going, as of 2021-11-03.</p>\n            </li>\n            <li>\n                <title>Mathematics</title>\n                <idx><h>accessibility</h><h>mathematics</h></idx>\n                <idx><h>web accessibility</h><h>mathematics</h></idx>\n                <p>MathJax (<url href=\"https://www.mathjax.org/\" visual=\"mathjax.org\"/>) is the JavaScript library we use to render mathematics within the <init>HTML</init> output.  It provides extensive capabilities for screen readers to render the mathematics audibly, and by default your project's output is configured to take advantage of these features.  We refer the reader to the MathJax documentation of <url href=\"http://docs.mathjax.org/en/latest/misc/accessibility-features.html\" visual=\"docs.mathjax.org/en/latest/misc/accessibility-features.html\">Accessibility Features</url> for details.  But here is a simple experiment you can do yourself right now to simulate how a blind reader could experience mathematics with the combination of <pretext />, MathJax, and a screen reader.<ol>\n                    <li>Find some moderately complicated mathematics, such as in the <q>Mathematics</q> section of the sample article, or your own project, or the sample from MathJax copied below.</li>\n                    <li>Bring up the context menu on that display (a mouse right-click for most).</li>\n                    <li>Turn on the <c>Accessibility > Explorer > Activate</c> menu item.  The page will reload, and the <c>Explorer</c> menu item will earn many more menu items.  This setting is reasonably sticky, so you should not have to do this repeatedly.  Having this on will incur some processing time as part of each page load, so you may want to turn it off later.</li>\n                    <li>Turn on the <c>Accessibility > Explorer > Speech Output</c> menu item.</li>\n                    <li>Turn on the <c>Accessibility > Explorer > Subtitles</c> menu item.  (If <c>Subtitles</c> is <q>greyed out</q>, try toggling <c>Speech Output</c>.)</li>\n                    <li><c>TAB</c> until some mathematics is given focus (a discrete border appears).</li>\n                    <li><c>SHIFT-SPACE</c> will activate exploration of the mathematics with the Explorer.  A subtitle, with an aural rendering of the mathematics, will appear below the display.</li>\n                    <li>You can navigate (explore) the expression tree with the up, down, left, and right arrow keys.  The subtitles will change as you do this.</li>\n                </ol></p>\n                <p>From the MathJax demonstration page, Maxwell's equations for practice:<idx>Maxwell's equations</idx><md>\n                    <mrow>\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t}\n                    &amp; = \\frac{4\\pi}{c}\\vec{\\boldsymbol{\\jmath}}</mrow>\n                    <mrow>\\nabla \\cdot \\vec{\\mathbf{E}} &amp; = 4 \\pi \\rho</mrow>\n                    <mrow>\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} &amp; = \\vec{\\mathbf{0}}</mrow>\n                    <mrow>\\nabla \\cdot \\vec{\\mathbf{B}} &amp; = 0</mrow>\n                </md><notation><usage><m>\\nabla</m></usage><description>gradient operator</description></notation></p>\n\n            </li>\n\n            <li>\n                <title>3D Images</title>\n                <p>Asymptote is a language for describing 2D and 3D images, which we support as much as possible.  The 3D images produced are rotatable for exploration via a mouse or finger.  For those with motor limitations, the images may also be manipulated with keyboard controls.  (Many assistive technologies rely on, or emulate, keyboards.)</p>\n            </li>\n\n            <li>\n                <title>Skip to Main Content</title>\n                <p>Repeatedly pressing the <c>Tab</c> key will move a reader from one location to the next in a web document.  Since your Table of Contents in the left sidebar is a series of many links, a reader will need to tab through <em>all</em> of these to eventually reach the interesting content on a page.</p>\n\n                <p>However, we support a common device.  The first link on every page is hidden from all readers, but an initial <c>Tab</c> will present a link labeled <c>Skip to Main Content</c> which when executed will take the reader past the Table of Contents and to the start of the content at the top of the page.</p>\n            </li>\n\n            <li>\n                <title>Links</title>\n                <p>Hyperlinks have colors, styles (such as underlining), and effects (such as mouse hover) which are consistent with <init>WCAG</init> recommendations.  Rather than being underlined by default, we instead use high-contrast color choices.</p>\n            </li>\n\n            <li>\n                <title>Colors</title>\n                <p>We are sensitive to the fact that some readers have difficulty distinguishing between certain colors.  So we do our best to distinguish text, or other elements, without relying exclusively on color.  For example, the <tag>delete</tag> and <tag>insert</tag> elements may render text with strike-through and underlining (respectively) to show the distinction.</p>\n\n                <p>But you can help as you author.  For example, see <xref ref=\"color-in-math\"/>.</p>\n            </li>\n\n            <li>\n                <title>Justified Text</title>\n                <p>Right-justified text (an even right margin) can sometimes lead to spaced-out text that is difficult for some readers.  For print, our use of <latex/> as an intermediate format, leads to <init>PDF</init> output where right-justified text can be superior to the alternative, <term>ragged right</term> text.  For more see <xref ref=\"print-justification\"/> and <xref ref=\"styling-justification\"/>.</p>\n            </li>\n\n            <li>\n                <title>Watermarks</title>\n                <p>If a document has a watermark (<xref ref=\"watermarks\"/>), then a screen reader will announce its presence at the beginning of each page of <init>HTML</init> content.</p>\n            </li>\n        </dl></p>\n    </subsection>\n    <subsection xml:id=\"subsec-accessibility-author-provided\">\n        <title>Author Provided Accessibility Features</title>\n\n        <p>Here are features which are <pretext /> helps fascilitate, but require your participation as the author.<dl width=\"narrow\">\n            <li>\n                <title>Image Description</title>\n                <p>Images you author or supply will be invisible to some readers.  Within every <tag>image</tag> element you can provide both a <tag>shortdescription</tag>, which will migrate to the <init>HTML</init> <attr>alt</attr> attribute, as well as a  a <tag>description</tag> element (structured with <tag>p</tag> and <tag>tabular</tag> children) that will be provided as a longer description.  The content will picked up by screen readers.</p>\n\n                <p>For the <tag>shortdescription</tag>, make the content clear and concise.  Do not use any markup whatsoever, just simple characters, and avoid quotation marks, and limit the text to at most 125 characters. You can learn more at sites such as the one provided by the Web Accessibility Initiative (<init>WAI</init>) at <url href=\"https://www.w3.org/WAI/fundamentals/accessibility-principles/#alternatives\" visual=\"www.w3.org/WAI/fundamentals/accessibility-principles/#alternatives\">Text alternatives for non-text content</url>.</p>\n\n                <p>We cannot do this one for you, this is for the author only, as image descriptions must take into account author intent and their context.  But we can give you the tools do it as easily and as correctly as possible.</p>\n\n                <p>See <xref ref=\"subsec-img-desc-advice\"/> for further advice on authoring image descriptions.</p>\n            </li>\n\n            <li>\n                <title>Image Formats</title>\n                <p>University offices that provide services for students with disabilities are often interested in the images themselves from a text, as standalone files.  For example, they might be able to manufacture tactile versions.  You could use the <c>pretext</c> script to produce a variety of different formats and bundle these up in a single archive file for distribution at your book's website.  Or you can make each image available through adjacent links placed automatically.  We call these <q>image archives.</q>  See <xref ref=\"topic-images-archive\" />.</p>\n\n                <p>Futhermore, as described above, a 3D image authored with Asymptote code can be superior for those with motor disabilities.  So this functionality begins with an author's choice to employ Asymptote.</p>\n            </li>\n\n            <li>\n                <title>Cross-References</title>\n                <p><xref ref=\"topic-cross-referencing\" /> describes a variety of ways to customize the look and content of a cross-reference.  You can create a larger target for clickable items by making the text as long as possible.  So for example an <tag>xref</tag> authored as<cd>\n                    <cline>&lt;xref ref=\"theorem-FTC\" text=\"type-global\" /&gt;</cline>\n                </cd>would cause the clickable portion to be something like <q>Theorem 5.16</q>, whereas<cd>\n                    <cline>&lt;xref ref=\"theorem-FTC\" text=\"global\" /&gt;</cline>\n                </cd>would then cause the clickable portion to be simply the much shorter <q>5.16</q>.  Of course, you can set a default style for your entire document, so it is not necessary to continually provide the <attr>text</attr> attribute.</p>\n            </li>\n\n            <li>\n                <title>Link Text</title>\n                <p>Default link text, such as <q>Theorem 4.15</q> has been chosen to be informative.  But for internal links (<tag>xref</tag>) or external links (<tag>url</tag>) you can choose alternative content for the clickable portion of the text.  Think carefully about your choices here and try to avoid text like <q>here</q> or <q>click here.</q>  For a <tag>url</tag>, the default content is the <attr>href</attr>, which can always be improved by providing content. For formats such as the print version of PDF, the <attr>visual</attr> is provided automatically as a trailing parenthetical.</p>\n            </li>\n\n            <li>\n                <title>Hyperlink Underlining in <init>PDF</init></title>\n                <p>In an electronic <init>PDF</init>, hyperlinks are distinguished from surrounding text by color alone, which may be insufficient for readers with color vision deficiencies.  A publisher option can add an underline beneath all hyperlinks (<tag>xref</tag> and <tag>url</tag>), providing a second visual cue independent of color.  (A print <init>PDF</init> does not color links, but a publisher may still choose to underline them.)  See <xref ref=\"latex-link-highlight-options\"/> for the publisher file syntax.</p>\n            </li>\n\n            <li>\n                <title>Commutative Diagrams</title>\n                <p>Whenever possible, author commutative diagrams using the syntax of the <c>amscd</c> <latex/> package.  Then online and braille output will be more accessible.  See <xref ref=\"commutative-diagrams\"/> for more.</p>\n            </li>\n\n            <li>\n                <title>Punctuation after Mathematics</title>\n                <p>Periods, commas, and semi-colons that follow directly after mathematics are handled differently by <pretext/> for visual formats versus non-visual ones (e.g. braille, audio).   But this only happens if you author the punctuation in the <em>logically</em> correct location and let <pretext/> do the rest for you.  See <xref ref=\"authoring-math-punctuation\"/> and <xref ref=\"punctuation-display-math\"/> for details.</p>\n            </li>\n\n        </dl></p>\n    </subsection>\n\n    <subsection xml:id=\"subsec-img-desc-advice\">\n        <title>Advice for Writing Image Descriptions</title>\n        <author>Oscar Levin</author>\n        <p>\n          Acknowledgement: the following content is based on a presentation delivered by Michael Cantino in December 2022.  Michael has served as the BVIS specialist for Oregon's K-12 public schools, an accessibility specialist at Portland Community College, and is a Library of Congress certified Braille Transcriber. Many thanks to Michael for sharing his expertise with the <pretext/> community.\n        </p>\n\n        <p>\n          Accessibility standards dictate that all (non-decorative) images included in websites are accompanied by a text description which a screen reader can read aloud to a non-sighted user.  This <term>alternative text</term> (or <term>alt text</term>) is also displayed in place of the image if the image fails to load.  Essentially alt text is a brief description of what the image is meant to convey. Of course, determining how to concisely convey information of an image can be a challenge for any image, and this is especially true for images you would find in a mathematics or science textbook.  The following suggestions and examples are intended to help an author create quality descriptions of their images.\n        </p>\n\n        <p>\n          First, a few technical considerations.  The usual way a non-sighted user will access a pretext book is through a <pretext />-generated <init>HTML</init> webpage.  Screen readers will read the text contained in the <attr>alt</attr> attribute of the <tag>img</tag> element on the page. (<pretext /> uses the text the author provides in the <tag>shortdescription</tag> element to create this content.)  Technical limitations of the <attr>alt</attr> attribute and most screen reader software mean that descriptions presented in this way must conform to particular specifications.\n        </p>\n\n        <p>\n          The content of an alt-text description must be plain text and should not exceed a total of 125 characters (although the exact character limit is a matter of some debate). Some screen readers will read more than this, but others will simply stop reading at this point. Further, it is more complicated to get screen readers to navigate alt text compared to how they would navigate the rest of text on the page.  Since the alt text is plain text, it cannot include text styles, links, MathML, or other markup.\n        </p>\n\n        <insight>\n          <p>\n            VS Code, and presumably most modern text editors, will display the character count of selected text in the status bar.\n          </p>\n        </insight>\n\n        <p>\n          A separate way to provide information about an image to non-sighted users is to use some sort of <term>long description</term>.  There is not wide agreement among platforms on how to implement long descriptions, but generally they are available near the image (not assigned to the image directly). In <pretext />, long descriptions are authored inside a <tag>description</tag> element, structured with <tag>p</tag> (or <tag>tabular</tag>) children.  These descriptions <em>can</em> include basic markup, including mathematics inside <tag>m</tag> tags.\n        </p>\n\n        <p>\n          In the following sections, we will consider how to write image descriptions that achieve the goal of providing the same information as the image does.  Depending on the particular case, this could be done with a short or long description.  When a long description is needed, the image should still have a short description that give a brief overview of the image and alert the reader to the presence of a long description. The long description will likely repeat the information from the short description (although this is a bit of a style decision).\n        </p>\n\n        <p>\n          From this point on, we will not distinguish between the types of descriptions and simply consider what content would be appropriate to include in a description.\n        </p>\n\n      <paragraphs>\n        <title>Images in Context</title>\n\n        <p>\n          To convey the information of an image requires an understanding of what information the image is <em>intended</em> to convey.  Two identical images can naturally have completely different descriptions depending on what the purpose of the image is.  For example, consider the following image and think about how you might describe it.\n        </p>\n\n        <figure xml:id=\"fig-img-desc-discontinuity\">\n          <caption>Graph from <url href=\"https://activecalculus.org/single/sec-1-7-lim-cont-diff.html#gHq\"><pubtitle>Active Calculus</pubtitle></url></caption>\n          <image source=\"discontinuity.png\" width=\"30%\">\n            <shortdescription>graph of function f, a downward opening parabola, with open circle at parabola's vertex, at the point (1,3)</shortdescription>\n            <description>\n              <p>\n                The graph of a downward opening parabola labeled <m>f</m>, with vertex at the point <m>(1,3)</m>.  At the vertex, the graph shows an open circle, indicating that the function is not defined at this point.\n              </p>\n            </description>\n          </image>\n        </figure>\n\n        <p>\n          The long description I gave to this image was: <q>The graph of a downward opening parabola labeled <m>f</m>, with vertex at the point <m>(1,3)</m>.  At the vertex, the graph shows an open circle, indicating that the function is not defined at this point.</q>  This was informed by what I assumed the author was trying to accomplish with the image: to illustrate various ways that a function might not be continuous.  I also know that the textbook has described parabolas as <q>opening downward,</q> rather than having negative leading coefficient or some other standard.\n        </p>\n\n        <p>\n          But what if this same image was in an exercise asking the reader to determine the equation of the parabola?  The description above didn't mention anything about axes since that wasn't relevant to the point the author was trying to make.  If the reader wanted to find the equation, then we might write a description like the following:\n        </p>\n\n        <blockquote>\n          <p>\n            The graph of a function plotted on coordinate axes.  Both horizontal and vertical axes range from -1 to 4. The graph appears to start at the point <m>(-1,1)</m>, crosses the vertical axis between labeled values 2 and 3, reaches a maximum value of 3 at <m>x = 1</m>, and then decreases again, crossing the horizontal axis between <m>x = 3</m> and <m>x = 4</m>.\n          </p>\n        </blockquote>\n\n        <p>\n          Even this might change depending on the context.  Should readers be able to identify whether the graph is a polynomial or a line?  Or is the goal to be able to identify what the vertical intercept is from the graph?\n        </p>\n\n        <p>\n          Along with the pedagogical context, it is also worth considering the other information that is available to the reader: some of the information in the image may be described in the surrounding text or in the caption of the image.  It is not necessary to repeat this information in the description.\n        </p>\n\n        <p>\n          Once you have an understanding of what the image is meant to convey, you can start to write the description itself.  The following are some general guidelines to keep in mind.\n          <ul>\n            <li>\n              <p>\n                Give an overview. Before describing various elements in an image, give a brief overview.  This will allow the reader to determine whether they need to continue reading the description, or jump ahead.  It also orients the reader to the image and helps them understand the context of the description.\n              </p>\n            </li>\n            <li>\n              <p>\n                Create <em>structure</em>. A reader will need to piece together all the different components of an image, so anything the author can do to facilitate this is helpful.  For example, work from left to right, or clockwise from the top, and say that this is what you are doing. Use the relevant structure of an image to group descriptions of related components: <q>A set of coordinate axes, in which the horizontal axis ranges from -10 to 10 and the vertical axis ranges from -5 to 5.</q>\n              </p>\n            </li>\n            <li>\n              <p>\n                Be clear and concise. After writing your description, read it back and look for ways to improve brevity, clarity, and structure.  This needs to be done while still considering the reading level and vocabulary of the target audience.  A nice resource of this is the <url href=\"https://alt-text-as-poetry.net/\">Alt Text as Poetry</url> website.\n              </p>\n            </li>\n            <li>\n              <p>\n                Leverage the reader's specialized knowledge.  Again with an understanding of your target audience, you may be able to assume they know what the graph of a particular function looks like.  For example, an advanced college math textbook could have as a description, <q>graph of a quadratic function with a vertex at (2, 3) and a <m>y</m>-intercept at (0, 1).</q>\n              </p>\n            </li>\n            <li>\n              <p>\n                Avoid visual shorthand. Sighted authors are used to using comparisons between how things look. Some basic shapes should be okay for most readers: a ball, a cup, U-shaped, etc.\n              </p>\n            </li>\n          </ul>\n        </p>\n\n        <p>\n          As an example of the structure of a description, consider the recommendations for describing a <q>chart or graph</q> (data visualization) provided by the <url href=\"https://www.urban.org/sites/default/files/2022-12/Do%20No%20Harm%20Guide%20Centering%20Accessibility%20in%20Data%20Visualization.pdf\">Do No Harm Guide: Centering Accessibility in Data Visualization</url>.  Chapters 3 and 4 of that guide are particularly helpful.\n        </p>\n      </paragraphs>\n        <paragraphs>\n          <title>Examples</title>\n\n\n        <p>\n          We conclude with a few more examples of images and their descriptions.\n        </p>\n\n\n        <example>\n          <title>Venn diagram</title>\n          <figure xml:id=\"fig-img-desc-venn\">\n            <caption>A Venn diagram from <url href=\"https://discrete.openmathbooks.org/dmoi3/sec_intro-sets.html#ovT\"><pubtitle>Discrete Mathematics: an Open Introduction</pubtitle></url>\n            </caption>\n            <image source=\"two-set-a-minus-b\" width=\"30%\">\n              <shortdescription>Venn diagram with two overlapping circles labeled A and B; region in A not overlapping B is shaded.</shortdescription>\n              <description>\n                <p>\n                  A Venn diagram with two overlapping circles labeled A and B, respectively.  Each circle contains a region which does not overlap with the other circle, and a region which does overlap.  The region contained in circle A that does not overlap with region B is shaded.\n                </p>\n              </description>\n            </image>\n          </figure>\n          <p>\n            <dl>\n              <li>\n                <title>Short description</title>\n                <p>\n                  Venn diagram with two overlapping circles labeled A and B; region in A not overlapping B is shaded.\n                </p>\n              </li>\n              <li>\n                <title>Long description</title>\n                <p>\n                  A Venn diagram with two overlapping circles labeled A and B, respectively.  Each circle contains a region which does not overlap with the other circle, and a region which does overlap.  The region contained in circle A that does not overlap with region B is shaded.\n                </p>\n              </li>\n              <li>\n                <title>Context</title>\n                <p>\n                  The image is illustrating how Venn diagrams can be shaded to illustrate set operations.  This was the forth Venn diagram in the text, as such the second sentence of the long description is likely unnecessary; readers should understand what a 2 set Venn diagram looks like.\n                </p>\n              </li>\n            </dl>\n          </p>\n        </example>\n\n\n        <example>\n          <title>Kernel and pre-image</title>\n          <figure xml:id=\"fig-img-desc-kpi\">\n            <caption>Kernel and pre-image diagram from <url href=\"http://linear.ups.edu/html/section-ILT.html\"><pubtitle>A First Course in Linear Algebra</pubtitle></url></caption>\n            <image source=\"KPI\" width=\"60%\">\n              <shortdescription>Two ovals representing vector spaces containing points representing vectors, with arrows associating points.</shortdescription>\n              <description>\n                <p>\n                  Two ovals representing vector spaces <m>U</m> and <m>V</m> with arrows connecting points in oval <m>U</m> to oval <m>V</m>, representing the transformation <m>T</m>.  Oval <m>U</m> is split into 4 roughly equal sections, each with 3 points; arrows point from each individual point to a shared, corresponding point in oval <m>V</m>. Each section's points connect to a different point in oval <m>V</m>, which contains 6 points in total.  In each section of oval <m>U</m>, a label appears above the first point and an expression appears to label the section.\n                  <ul>\n                    <li>\n                      <p>\n                        Section 1: first point is labeled <m>\\mathbf{u}_1</m>, section labeled with <m>\\mathbf{u}_1 + \\mathcal{K}(T)</m>, arrows point to point <m>\\mathbf{v}_1</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n\n                    <li>\n                      <p>\n                        Section 2: first point is labeled <m>\\mathbf{u}_2</m>, section labeled with <m>T^{-1}(\\mathbf{v}_2) = \\mathbf{u}_2 + \\mathcal{K}(T)</m>, arrows point to point <m>\\mathbf{v}_2</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n                    <li>\n                      <p>\n                        Section 3: first point is labeled <m>\\mathbf{0}_U</m>, section labeled with <m>T^{-1}(\\mathbf{0}_V) = \\mathcal{K}(T)</m>, arrows point to point labeled <m>\\mathbf{0}_V</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n                    <li>\n                      <p>\n                        Section 4: first point is labeled <m>\\mathbf{u}_3</m>, section labeled with <m>T^{-1}(\\mathbf{v}_3)</m>, arrows point to point labeled <m>\\mathbf{v}_3</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n                  </ul>\n                  The two remaining points in <m>V</m> are labeled <m>x</m> and <m>y</m>.\n                </p>\n              </description>\n            </image>\n        </figure>\n            <p>\n              <dl>\n                <li>\n                  <title>Short description</title>\n                  <p>\n                    Two ovals representing vector spaces containing points representing vectors, with arrows associating points.\n                  </p>\n                </li>\n                <li>\n                  <title>Long description</title>\n                  <p>\n                    Two ovals representing vector spaces <m>U</m> and <m>V</m> with arrows connecting points in oval <m>U</m> to oval <m>V</m>, representing the transformation <m>T</m>.  Oval <m>U</m> is split into 4 roughly equal sections, each with 3 points; arrows point from each individual point to a shared, corresponding point in oval <m>V</m>. Each section's points connect to a different point in oval <m>V</m>, which contains 6 points in total.  In each section of oval <m>U</m>, a label appears above the first point and an expression appears to label the section.\n                  <ul>\n                    <li>\n                      <p>\n                        Section 1: first point is labeled <m>\\mathbf{u}_1</m>, section labeled with <m>\\mathbf{u}_1 + \\mathcal{K}(T)</m>, arrows point to point <m>\\mathbf{v}_1</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n\n                    <li>\n                      <p>\n                        Section 2: first point is labeled <m>\\mathbf{u}_2</m>, section labeled with <m>T^{-1}(\\mathbf{v}_2) = \\mathbf{u}_2 + \\mathcal{K}(T)</m>, arrows point to point <m>\\mathbf{v}_2</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n                    <li>\n                      <p>\n                        Section 3: first point is labeled <m>\\mathbf{0}_U</m>, section labeled with <m>T^{-1}(\\mathbf{0}_V) = \\mathcal{K}(T)</m>, arrows point to point labeled <m>\\mathbf{0}_V</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n                    <li>\n                      <p>\n                        Section 4: first point is labeled <m>\\mathbf{u}_3</m>, section labeled with <m>T^{-1}(\\mathbf{v}_3)</m>, arrows point to point labeled <m>\\mathbf{v}_3</m> in oval <m>V</m>.\n                      </p>\n                    </li>\n                  </ul>\n                  The two remaining points in <m>V</m> are labeled <m>x</m> and <m>y</m>.\n                  </p>\n                </li>\n                <li>\n                  <title>Context</title>\n                  <p>\n                    The image is contained in a section on injective linear transformations in a proof-based linear algebra textbook.  The goal of the image is to illustrate the equivalence between images of the linear transformation, their pre-images, and the kernel of the transformation.\n                  </p>\n                </li>\n              </dl>\n            </p>\n\n        </example>\n\n        <example>\n          <title>Combinatorial Graph (unlabeled)</title>\n          <figure xml:id=\"fig-img-desc-graph\">\n            <caption>Unlabeled graph from <url href=\"https://discrete.openmathbooks.org/dmoi3/sec_paths.html#KBJ\"><pubtitle>Discrete Mathematics: an Open Introduction</pubtitle></url></caption>\n            <image source=\"graph-10-friends\" width=\"30%\">\n              <shortdescription>9 vertices arranged in a circle; edges connect some pairs of vertices.  See long description</shortdescription>\n              <description>\n                <p>\n                  Graph with 9 vertices arranged in a circle. Edges connect pairs of vertices.  Starting at the top and moving clockwise, the vertices have been numbered in this description 1 through 9 so edges can be detailed in the table below.\n                </p>\n                <tabular>\n                  <row header=\"yes\">\n                    <cell>Vertex</cell><cell>Connected to vertices</cell>\n                  </row>\n                  <row>\n                    <cell>1</cell><cell>2, 4, 6, 7</cell>\n                  </row>\n                  <row>\n                    <cell>2</cell><cell>1, 4, 7</cell>\n                  </row>\n                  <row>\n                    <cell>3</cell><cell>6, 8</cell>\n                  </row>\n                  <row>\n                    <cell>4</cell><cell>1, 2, 6, 7, 8, 9</cell>\n                  </row>\n                  <row>\n                    <cell>5</cell><cell>6, 8, 9</cell>\n                  </row>\n                  <row>\n                    <cell>6</cell><cell>1, 3, 4, 5</cell>\n                  </row>\n                  <row>\n                    <cell>7</cell><cell>1, 2, 4, 8</cell>\n                  </row>\n                  <row>\n                    <cell>8</cell><cell>3, 4, 5, 7</cell>\n                  </row>\n                  <row>\n                    <cell>9</cell><cell>4, 5</cell>\n                  </row>\n                </tabular>\n              </description>\n            </image>\n        </figure>\n            <p>\n              <dl>\n                <li>\n                  <title>Short description</title>\n                  <p>\n                    9 vertices arranged in a circle; edges connect some pairs of vertices.  See long description\n                  </p>\n                </li>\n                <li>\n                  <title>Long description</title>\n                  <p>\n                    Graph with 9 vertices arranged in a circle. Edges connect pairs of vertices.  Starting at the top and moving clockwise, the vertices have been numbered in this description 1 through 9 so edges can be detailed in the table below.\n                  </p>\n                  <tabular>\n                    <row header=\"yes\">\n                      <cell>Vertex</cell><cell>Connected to vertices</cell>\n                    </row>\n                    <row>\n                      <cell>1</cell><cell>2, 4, 6, 7</cell>\n                    </row>\n                    <row>\n                      <cell>2</cell><cell>1, 4, 7</cell>\n                    </row>\n                    <row>\n                      <cell>3</cell><cell>6, 8</cell>\n                    </row>\n                    <row>\n                      <cell>4</cell><cell>1, 2, 6, 7, 8, 9</cell>\n                    </row>\n                    <row>\n                      <cell>5</cell><cell>6, 8, 9</cell>\n                    </row>\n                    <row>\n                      <cell>6</cell><cell>1, 3, 4, 5</cell>\n                    </row>\n                    <row>\n                      <cell>7</cell><cell>1, 2, 4, 8</cell>\n                    </row>\n                    <row>\n                      <cell>8</cell><cell>3, 4, 5, 7</cell>\n                    </row>\n                    <row>\n                      <cell>9</cell><cell>4, 5</cell>\n                    </row>\n                  </tabular>\n                </li>\n                <li>\n                  <title>Context</title>\n                  <p>\n                    This is from an exercise in a section on paths in graphs.  The question reads, <q>Below is a graph representing friendships between a group of students (each vertex is a student and each edge is a friendship). Is it possible for the students to sit around a round table in such a way that every student sits between two friends? What does this question have to do with paths?</q>\n                  </p>\n                </li>\n              </dl>\n            </p>\n\n        </example>\n\n      </paragraphs>\n    </subsection>\n    <conclusion>\n        <title>Conclusion</title>\n\n        <p>Watching a blind reader navigate a web page can be a very enlightening experience.  Or you might even undertake learning one yourself.  Here are some suggestions for getting started (current on 2018-05-31).<ul>\n            <li><init>NVDA</init>, <url href=\"https://www.nvaccess.org/\" visual=\"www.nvaccess.org\"/>, Windows, open source via GPL</li>\n            <li>Orca, <url href=\"https://help.gnome.org/users/orca/stable/\" visual=\"help.gnome.org/users\"/>, Linux, open source via LGPL</li>\n            <li>VoiceOver, included with Apple's macOS and iOS</li>\n            <li>ChromeVox, <url href=\"http://www.chromevox.com/\" visual=\"www.chromevox.com\"/>, ChromeOS, free from Google</li>\n            <li><acro>JAWS</acro>, <url href=\"https://www.freedomscientific.com/Products/Blindness/JAWS\" visual=\"www.freedomscientific.com\"/>, Windows, commercial</li>\n        </ul></p>\n\n        <p>Much of the technical work for accessibility is accomplished by <pretext/> developers.  But authors have responsibilities, too.  So testing can be part of your workflow.  One free tool is <url href=\"https://www.deque.com/axe/\" visual=\"www.deque.com/axe\">axe</url> from <url href=\"https://www.deque.com\" visual=\"www.deque.com\">Deque Systems</url>.</p>\n\n        <p>We have concentrated on making <init>HTML</init> output accessible, since that seems the most natural and best supported.  But we are aware of efforts for other formats.<dl>\n            <li>\n                <title>PDF/<latex/></title>\n                <p>A <init>PDF</init> may not lend itself naturally to providing an accessible format.  But there have been efforts.  The <url href=\"https://tug.org/twg/accessibility/\" visual=\"tug.org/twg/accessibility/\"><tex/> Users Group on PDF Accessibility and PDF Standards</url> is an excellent resource to start with.  There is also a <url href=\"https://github.com/PreTeXtBook/pretext/issues/1046\" visual=\"github.com/PreTeXtBook/pretext/issues/1046\"><pretext/> issue #1046</url>.</p>\n            </li>\n            <li>\n                <title>EPUB</title>\n                <p>The International Digital Publishing Forum has information on <url href=\"http://idpf.org/a11y\" visual=\"idpf.org/a11y\">EPUB Accessibility</url>.</p>\n            </li>\n        </dl></p>\n    </conclusion>\n    </section>\n    <section xml:id=\"topic-slides\">\n        <title>Slides</title>\n        <idx>slides</idx>\n        <p>\nSlideshows may be authored in <pretext/> by using the following tags.\n        <ul>\n          <li>\n<c>slideshow</c> replaces the usual <c>article</c> or <c>book</c> tag to\nlet <pretext/> know you are authoring a set of slides. As usual, you may then\ndefine your <c>title</c>, <c>subtitle</c>, and <c>frontmatter</c>.\n          </li>\n          <li>\nSimilar to articles, your content should be organized into several\n<c>section</c>s.\n          </li>\n          <li>\nAnd within each section, a <c>slide</c> represents a full screen of information.\nWithin a slide, you may author <pretext/> content as usual, such as paragraphs\n(<c>p</c>), lists (<c>ul</c>), and so on.\n          </li>\n          <li>\nSeveral elements support setting the <attr>pause</attr> attribute to the\nvalue <c>yes</c> to allow stepping through\nparts of a slide (e.g. it inserts a Beamer <c>\\pause</c>).\n          </li>\n        </ul>\n        </p>\n        <p>\nA minimal working example may be found in the\n<url href=\"https://github.com/PreTeXtBook/pretext/blob/dev/examples/sample-slideshow/sample-slideshow.xml\" visual=\"examples/sample-slideshow/sample-slideshow.xml\">\n  Examples folder of the PreTeXt repo on GitHub\n</url>.\nSee publishing details for various outputs in <xref ref=\"publisher-slides\"/>.\n        </p>\n    </section>\n\n    <section xml:id=\"topic-literate-programming\">\n        <title>Literate Programming</title>\n        <idx>literate programming</idx>\n\n        <p>We continue (and do not repeat) the introduction at <xref ref=\"overview-literate-programming\"/>.  <pretext/> implements the literate programming paradigm with two primary elements, <tag>fragment</tag> and <tag>fragref</tag>.</p>\n\n        <p>A <tag>fragment</tag> is a chunk of code.  Almost always it has a <attr>xml:id</attr> attribute.  It begins with a mandatory <tag>title</tag>.  It may have index entries, but see below for advice using the <tag>list-of</tag> element.  Then there is a mix of <tag>code</tag> and <tag>fragref</tag> elements.  The <tag>code</tag> element holds the actual text in whatever computer language you are using.  Line breaks are respected.  Use the <init>XML</init> escape characters <c>&amp;lt;</c> and <c>&amp;amp;</c> if your code needs the <c>&lt;</c> or <c>&amp;</c> characters.  Do not try to use <init>XML</init> markup inside the <tag>code</tag> element.</p>\n\n        <p>A <tag>fragref</tag> is a reference to some other <tag>fragment</tag>.  This is accomplished via the <attr>ref</attr> attribute which points to the target via an <attr>xml:id</attr>.  So this is very similar to an <tag>xref</tag> (<xref ref=\"overview-cross-references\"/>), but not enough alike to have the same element name.   The most important distinction is that the <c>xsl/pretext-litprog.xsl</c> stylesheet will <em>replace</em> the <tag>fragref</tag> with the <em>contents</em> of the target <tag>fragment</tag>.  In other conversions, the <tag>fragref</tag> will be a visual expression of the target <tag>fragment</tag>, possibly with some active means to visit or examine the target (hyperlink, knowl), more similar to an <tag>xref</tag>.</p>\n\n        <p>So the <c>xsl/pretext-litprog.xsl</c> stylesheet will course through your fragments converting the tree-like structure given by the references in the <tag>fragref</tag> elements into a depth-first traversal that will assemble the <tag>code</tag> elements, and only the <tag>code</tag> elements, linearly into a program.  Notice that it is your job as the author of the program to be certain that this rearrangement results in a syntactically correct program.  (<pretext/> is good, but not that good.)</p>\n\n        <p>If you are with us this far, you are wondering just where the root of this tree is?  In other words, just <em>which</em> <tag>fragment</tag> does this traversal begin with?  Good question.  At least one <tag>fragment</tag> must have a <attr>filename</attr> attribute.  Then a traversal will begin here and your program will be output to the file with the name you specify.  You are not limited to one file/root, so if your program has multiple source files they may be documented/collected into a single <pretext/> source file.  (Notice this implies that every <tag>fragment</tag> <em>must</em> have an <attr>xml:id</attr> or a <attr>filename</attr>.)</p>\n\n        <p>You can place a <tag>fragment</tag> most anywhere you might place any other numbered block (such as <tag>example</tag>), though we would tend to place them as children of divisions.  The remainder of your document can have all the usual <pretext/> features: a table of contents, a preface, divisions, an index, references, etc.  Then a conversion to <init>PDF</init>, <init>HTML</init>, or other formats, will include your code, but in an order that might be more human-readable, and with careful documentation in close proximity.</p>\n\n        <p>Automatically migrating each <tag>fragment</tag> to an index is a bad idea.  (We already experimented.)  Instead you can try putting<cd>\n            <cline>&lt;list-of elements=\"fragment\"/&gt;</cline>\n        </cd>into an <tag>appendix</tag>.  Perhaps a pointer early on to its existence will help your reader.  This list can be subdivided with the use of the <attr>divisions</attr> attribute.  See <xref ref=\"topic-automatic-lists\"/>.  Note that you might still want to provide an index, but remember that its construction is a job for an author (<xref ref=\"topic-index-advice\"/>).</p>\n\n        <p>Literate programming has been developed to support the authoritative <init>RELAX-NG</init> version of the <pretext/> schema.  Since <init>RELAX-NG</init> is a declarative language, the rearrangement of code hunks is not quite as critical.  But still, see <c>schema/pretext.xml</c> for a non-trivial example.  As of 2020-11-11 there are a few caveats.  Start a discussion on the development forum if you have a need.<ul>\n            <li>The conversion to a program has no explicit support for languages which interpret indentation meaningfully (e.g. Python).  The <tag>code</tag> element makes <em>no changes</em>, so you could succeed if authored carefully.  Some sort of relative indentation attribute might be a good solution.</li>\n\n            <li>We do not syntax-highlight the code.  A language attribute might allow us to recycle existing features.</li>\n\n            <li>Numbering is serial from the start of the document.  Raise a feature request if you think hierarchical numbering is indicated.</li>\n        </ul></p>\n    </section>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/author/webwork.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"webwork-author\">\n  <title><webwork/> Exercises</title>\n  <idx>\n    <h><webwork/></h>\n    <h><webwork/> exercises</h>\n  </idx>\n  <author>Alex Jordan</author>\n\n  <introduction>\n    <p>\n      With a <webwork/> server\n      (version 2.16 or higher, or <url href=\"https://webwork-ptx.aimath.org\" visual=\"webwork-ptx.aimath.org\"/>)\n      and a little setup work, you can embed <webwork/> exercises in your <pretext/> project.\n      HTML output can have interactive problem cells or print problems in <q>static</q> form.\n      PDF output will print static versions.\n      And all such exercises can be archived into a file tree to be uploaded onto a <webwork/> server\n      for use in the <q>traditional</q> way.\n    </p>\n    <p>\n      Although we expect that version 2.16 and above are supported,\n      we recommend that you use the <url href=\"https://github.com/openwebwork/webwork2/blob/main/VERSION\">current</url>\n      (or one previous) version of <webwork/> whenever possible.\n      Should bugs be discovered, it may be difficult to address them with older versions of <webwork/>.\n    </p>\n    <p>\n      See <xref ref=\"webwork-publisher\"/> for how to configure a <webwork/> course and server to process your <webwork/> problems,\n      and then how to process them.\n    </p>\n  </introduction>\n\n  <section xml:id=\"webwork-source\">\n    <title><webwork/> Problems</title>\n\n    <introduction>\n      <p>\n        <alert>You must extract <webwork/> content as described in <xref ref=\"webwork-publisher\"/>\n        before you will be able to see any <webwork/> content in your output.  For most cases, you\n        should be able to do this by running <c>pretext generate webwork</c> to process <webwork/>\n        exercises.</alert>\n      </p>\n      <p>\n        A <tag>webwork</tag> tag must be inside an <tag>exercise</tag> or a PROJECT-LIKE block,\n        <em>optionally</em> preceded by an <tag>introduction</tag>,\n        and <em>optionally</em> followed by a <tag>conclusion</tag>.\n      </p>\n      <pre>\n        <![CDATA[\n        <exercise label=\"mylabel\">\n          <introduction>\n          </introduction>\n\n          <webwork>\n          </webwork>\n\n          <conclusion>\n          </conclusion>\n        </exercise>\n        ]]>\n      </pre>\n      <p>\n        There are several methods for putting content into the <tage>webwork</tage>. (Note that an\n        empty <tag>webwork</tag> with no attributes will simply produce the camelcase <webwork/>\n        logo.)\n      </p>\n    </introduction>\n\n    <subsection>\n      <title>Using an OPL <webwork/> Problem</title>\n      <p>\n        If a problem comes from the <webwork/> Open Problem Library and is accessible from the host\n        course in the usual way using a <c>Library/...</c> path, then you can include it with a\n        <attr>source</attr> attribute. For example:\n        <cd>&lt;webwork source=\"Library/.../foo.pg\"/></cd>\n      </p>\n      <warning>\n        <title>Not Every PG Problem is Compatible with <pretext/></title>\n        <p>\n          Some problems that work fine within <webwork/> are not compatible with <pretext/>.\n          Typically, these are exercises that use older PG coding techniques. To be compatible with\n          <pretext/>, all of the macros used by a problem must be updated to give <pretext/> output.\n          We have done this with modern PG macros and macros that are frequently used. But still,\n          not every PG problem is compatible with <pretext/>. In some cases, maybe it would be\n          straightforward to train the macros to give <pretext/> output. But in many cases, older\n          macros and problem files are not structured well and <pretext/> is all about good\n          structure. So it could be a significant project to retrofit <pretext/> compatibility.\n        </p>\n        <p>\n          If you elect to use a problem that is incompatible with <pretext/> but you don't yet know that,\n          a few things could happen. One is that when you process the problems to gather static representations,\n          you will get an error message that the problem did not return valid XML.\n        </p>\n        <p>\n          Or you might coincidentally get valid XML back, but something is just missing or wrong.\n          There's no automated check for that; you should read the output to check that the problem is complete.\n          We recommend reading your PDF output with hints, answers, and solutions exposed,\n          to be sure you are seeing the static version of the exercise.\n        </p>\n        <p>\n          If there is an incompatible problem that you would really like to use, you have three\n          options:\n          <ul>\n            <li>\n              Author the problem in <pretext/> from scratch as described elsewhere in this section.\n            </li>\n            <li>Edit the code for that problem to use compatible macros.</li>\n            <li>Edit the incompatible macros to be compatible with <pretext/>.</li>\n          </ul>\n          The last two options may involve contributing to repositories such as the OPL and PG on\n          GitHub, so it is more expedient to use the first option.\n        </p>\n      </warning>\n    </subsection>\n\n    <subsection>\n      <title>Local PG Source</title>\n      <p>\n        You can include PG source for a problem directly, as text content for the\n        <tag>webwork</tag> element. For example:</p>\n        <pre>\n    &lt;exercise>\n        &lt;webwork>DOCUMENT();\n\nloadMacros(qw(PGstandard.pl PGML.pl PGcourse.pl));\n$pi = Real(\"pi\");\n\nBEGIN_PGML\nEnter a value for [`\\pi`].\n\n[_]{$pi}{5}\nEND_PGML\n\nENDDOCUMENT();\n&lt;/webwork>\n    &lt;/exercise>\n        </pre>\n      <p>Note the attention paid here to whitespace. Any indentation or newline whitespace within\n        the <tag>webwork</tag> will be kept in the PG file that results from this method. Such\n        whitespace may affect the functionality of the problem.\n      </p>\n      <p>\n        If you have a problem as a PG file, you can place it in your project's folder tree and use\n        <tag>xi:include</tag> to insert the PG code as text into the <tag>webwork</tag> element:\n        <cd>&lt;webwork>&lt;xi:include parse=\"text\" href=\"pg/my_problem.pg\"/>&lt;/webwork></cd>\n        Two things to note. The file where you use <tag>xi:include</tag> has a root element, and\n        that root element needs to declare the <c>xi</c> namespace. So you need to have an attribute\n        <c>xmlns:xi=\"http://www.w3.org/2001/XInclude\"</c> on that root element. Second, the\n        <attr>href</attr> specifying the path to the PG file needs to be relative to the file you\n        are working in. In the example, there is a folder named <c>pg</c> adjacent to the file we\n        are working in, and the PG file is within that folder.\n      </p>\n    </subsection>\n\n    <subsection>\n      <title>Perl-free Problems</title>\n      <p>\n        If you'd just like to rattle off a quick question with no randomization, you can do as in this example.\n      </p>\n      <pre>\n        <![CDATA[\n        <exercise label=\"mylabel\">\n          <webwork>\n            <statement>\n              <p>\n                <m>1+2=</m><var name=\"'3'\" width=\"5\"/>\n              </p>\n            </statement>\n          </webwork>\n        </exercise>\n        ]]>\n      </pre>\n      <p>\n        The <tag>exercise</tag> above could be given an optional <tag>title</tag>, <tag>introduction</tag>, and <tag>conclusion</tag>.\n        The <tag>webwork</tag> inside could be given a <tag>hint</tag> and <tag>solution</tag>.\n        These are discussed in <xref ref=\"webwork-pg-code\">Subsection</xref>.\n      </p>\n      <p>\n        In the above example, <c>'3'</c> is the <attr>name</attr> attribute to a <tag>var</tag> element.\n        There is actually no <q>variable</q> named <q>3</q>; we are just using the slot where more complicated exercises\n        would place a Perl variable answer.\n      </p>\n      <p>\n        So the above is how to create an answer blank that is expecting <m>3</m> as the answer. What\n        you give as a <attr>name</attr> attribute will be passed to PG's <c>Compute()</c>\n        constructor, so it needs to be valid input for <c>Compute()</c>. Note that you could pass a\n        string encased in quotes, or a perl expression. Just be mindful of the differences. For\n        example:\n        <ul>\n          <li>\n            <p>\n              <c>8**2</c> will process a perl real using exponentiation and lead to the MathObject Real 64.\n            </p>\n          </li>\n          <li>\n            <p>\n              <c>'8^2'</c> will process a perl string and lead to the MathObject Real 64.\n            </p>\n          </li>\n          <li>\n            <p>\n              <c>8^2</c> will process the perl real using bitwise XOR and lead to the MathObject Real 10.\n            </p>\n          </li>\n        </ul>\n      </p>\n      <p>\n        The default context is <c>Numeric</c>,\n        which understands numerical expressions and formulaic expressions in the variable <m>x</m>.\n        You can activate some other context as in this example.\n      </p>\n      <pre>\n        <![CDATA[\n        <exercise label=\"mylabel\">\n          <webwork>\n            <pg-code>\n              Context(\"ImplicitPlane\");\n            </pg-code>\n            <statement>\n              <p>\n                The answer is <m>x+y=1</m>.\n              </p>\n              <p>\n                <var name=\"'x+y=1'\" width=\"8\"/>\n              </p>\n            </statement>\n          </webwork>\n        </exercise>\n        ]]>\n      </pre>\n      <p>\n        Many special contexts are automatically detected by <pretext/>, and it loads the appropriate macro file into the PG problem.\n        However you may need to explicitly load a macro file as described in <xref ref=\"webwork-pg-code\">Subsection</xref>.\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"webwork-pg-code\">\n      <title>PG code in Problems</title>\n      <p>\n        To have randomization in problems\n        or otherwise take advantage of the algorithmic programming capabilities of Perl and <webwork/>'s PG language\n        requires using a <tag>pg-code</tag> tag.\n        Having at least a little familiarity with coding problems in <webwork/> is necessary,\n        although for simpler problems you could get away with mimicking the sample article in <c>pretext/examples/webwork/</c>.\n        A <tag>statement</tag>, <em>optional</em> <tag>hint</tag>, and <em>optional</em> <tag>solution</tag> follow.\n      </p>\n      <pre>\n        <![CDATA[\n        <webwork>\n\n          <pg-code>\n          </pg-code>\n\n          <statement>\n          </statement>\n\n          <hint>\n          </hint>\n\n          <solution>\n          </solution>\n\n        </webwork>\n        ]]>\n      </pre>\n      <p>\n        If you are familiar with code for <webwork/> PG problems, the <tag>pg-code</tag> contains\n        lines of PG code that would appear in the <q>setup</q> portion of the problem. Typically,\n        this is the code that precedes the first <c>BEGIN_PGML</c>. If your code needs any special\n        <webwork/> macro libraries, you may load them in a <tag>pg-macros</tag> tag prior to\n        <tag>pg-code</tag>, with each such <c>.pl</c> file's name inside a <tag>macro-file</tag>\n        tag. However many of the most common macro libraries will be loaded automatically based on\n        the content and attributes you use in the rest of your problem.\n      </p>\n      <p>\n        Here is a small example. Following the example, we'll continue discussing <tag>statement</tag> and <tag>solution</tag>.\n      </p>\n      <pre>\n        <![CDATA[\n        <webwork>\n          <pg-code>\n            Context(\"LimitedNumeric\");\n            $a = Compute(random(1, 9));\n            $b = Compute(random(1, 9));\n            $c = $a + $b;\n          </pg-code>\n\n          <statement>\n            <p>\n              Compute <m><var name=\"$a\"/> + <var name=\"$b\"/></m>.\n            </p>\n            <instruction>\n              Type your answer without using the <c>+</c> sign.\n            </instruction>\n            <p>\n              The sum is <var name=\"$c\" width=\"2\"/>.\n            </p>\n          </statement>\n\n          <solution>\n            <p>\n              <m><var name=\"$a\"/> + <var name=\"$b\"/> = <var name=\"$c\"/></m>.\n            </p>\n          </solution>\n        </webwork>\n        ]]>\n      </pre>\n      <p>\n        Within a <tag>statement</tag>, <tag>hint</tag>, or <tag>solution</tag>, reference perl\n        variables using <tag>var</tag> tags with <attr>name</attr>.\n      </p>\n      <p>\n        Within the <tag>statement</tag>, a <tag>var</tag> tag with either a <attr>width</attr> or <attr>form</attr> attribute\n        creates an input field answer blank that expects the variable with that <attr>name</attr> to be the answer.\n      </p>\n      <p>\n        A <tag>var</tag> can have <attr>form</attr> with value <c>essay</c>, in which case it need not have a <attr>name</attr> attribute.\n        This is for open-ended questions that must be graded by a human.\n        The form field will be an expandable input block if the question is served to an authenticated user within <webwork/>.\n        But for the <webwork/> cells in <pretext/> HTML output,\n        there will just be a message explaining that there is no place to enter an answer.\n      </p>\n      <p>\n        A <tag>var</tag> can have <attr>form</attr> with value <c>array</c>. You would use this\n        when the answer is a Point, Vector, ColumnVector, or Matrix MathObject to cause the input\n        form to be an array of smaller input fields instead of one big field.\n      </p>\n      <p>\n        A <tag>var</tag> can have <attr>form</attr> with value <c>popup</c>, <c>buttons</c>, or <c>checkboxes</c> for multiple choice questions.\n      </p>\n      <p>\n        If you are familiar with PG, then in your <tag>pg-code</tag> you might write a custom evaluator\n        (a combination of a custom answer checker, post filters, pre filters, <etc/>).\n        If you store this similar to\n        <cd>$my_evaluator = $answer->cmp(...);</cd>\n        then the <tag>var</tag> can have <attr>evaluator</attr> with value <c>$my_evaluator</c>.\n      </p>\n      <p>\n        An <tag>instruction</tag> is specific instructions for how the reader might type or otherwise electronically submit their answer.\n        Contents of an <tag>instruction</tag> will be omitted from print and other static output forms.\n        The <tag>instruction</tag> is a peer to <tag>p</tag>, but may only contain <q>short text</q> children.\n      </p>\n      <p>\n        Some general information on authoring <webwork/> problems can be found in\n        a <url href=\"http://webwork.maa.org/wiki/Problem_Authoring_Videos\" visual=\"webwork.maa.org/wiki/Problem_Authoring_Videos\">set of videos at <c>webwork.maa.org/wiki/Problem_Authoring_Videos</c></url>.\n        Not all of this is relevant to authoring within <pretext/>,\n        but there are parts that will be helpful for constructing the Perl code necessary for randomized problems.\n      </p>\n    </subsection>\n\n    <subsection>\n      <title><webwork/> in an <tag>exercisegroup</tag></title>\n      <p>\n        An <tag>exercisegroup</tag> is a collection of exercises with common instructions that are put into an <tag>introduction</tag>.\n        If you put <webwork/> exercises in an exercisegroup,\n        then when the exercises are exported to <c>.pg</c> problem files for use as online homework from a <webwork/> server\n        it makes sense that the instructions from the <tag>exercisegroup</tag>'s <tag>introduction</tag> should be included in the <c>.pg</c> file.\n        And so they are included there. Note that they are <em>not</em> included when you are building <acro>HTML</acro> or <latex/> output\n        for your project. (Rather, the <tag>exercisegroup</tag>'s <tag>introduction</tag> appears in its normal place.)\n      </p>\n      <p>\n        You should be aware of this when you write the <tag>exercisegroup</tag>'s <tag>introduction</tag>.\n        It impacts the specific language you should use. For example, if you write <q>Differentiate the following functions.</q>\n        or <q>Differentiate each of the functions below.</q>, then you have language that doesn't fit the individual problem\n        when it is used for homework on a <webwork/> server. Instead you might write <q>Differentiate the function</q>.\n        It makes sense as common instructions for the <tag>exercisegroup</tag> as well as the instructions for an individual exercise.\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"webwork-metadata\">\n      <title>Metadata</title>\n      <p>\n        A <tag>webwork</tag> <em>without a source attribute</em> can have a plain text <tag>description</tag>.\n        This should be a summary of what the exercise asks a user to do,\n        including any relevant pedagogical details of the exercise. For example:\n      </p>\n      <pre>\n        <![CDATA[\n        <webwork>\n          <description>\n            Add two fractions with distinct one-digit prime denominators.\n          </description>\n\n          ...\n\n        </webwork>\n        ]]>\n      </pre>\n      <p>\n        A longer description may be broken into lines where the lines are plain text.\n      </p>\n      <pre>\n        <![CDATA[\n        <webwork>\n          <description>\n            <line>\n              Add two fractions with distinct one-digit prime denominators.\n            </line>\n            <line>\n              One fraction is always positive, the other always negative.\n            </line>\n          </description>\n\n          ...\n\n        </webwork>\n        ]]>\n      </pre>\n      <p>\n        The content of the description will be written into a PG <c>COMMENT</c> command,\n        making the description visible in a <webwork/> Library Browser.\n      </p>\n    </subsection>\n\n    <subsection>\n      <title>Reusing a <tag>webwork</tag> by <attr>xml:id</attr></title>\n      <p>\n        If a <tag>webwork</tag> has an <attr>xml:id</attr>,\n        then another <tag>webwork</tag> can <q>copy</q> the first one simply by using a <attr>copy</attr> attribute\n        whose value is the first <tag>webwork</tag>'s <attr>xml:id</attr>.\n        The <attr>seed</attr> of the first <tag>webwork</tag> is ignored,\n        and the second <tag>webwork</tag> may set its own <attr>seed</attr>.\n        For example:\n      </p>\n      <pre>\n        <![CDATA[\n        <exercise label=\"mylabel\">\n          <webwork xml:id=\"foo\" seed=\"1\">\n            <pg-code>\n              $a = random(1, 9);\n              $answer = $a+1;\n            </pg-code>\n            <statement>\n              <p>\n                Enter <m><var name=\"$a\"/>+1</m>.  <var name=\"$answer\" width=\"10\"/>\n              </p>\n            </statement>\n          </webwork>\n        </exercise>\n\n        <exercise label=\"myotherlabel\">\n          <webwork copy=\"foo\" seed=\"2\"/>\n        </exercise>\n        ]]>\n      </pre>\n      <p>\n        The <attr>copy</attr> attribute should point to a <tag>webwork</tag> that has <pretext/>-authored source,\n        not to a <tag>webwork</tag> with a <attr>source</attr> attribute.\n        (If you want to copy one with a <attr>source</attr> attribute, just reuse the same <attr>source</attr> value.)\n      </p>\n    </subsection>\n\n    <subsection>\n      <title>Images</title>\n      <subsubsection>\n        <title>Using a Local image file</title>\n        <p>\n          Planned, not implemented yet.\n        </p>\n      </subsubsection>\n\n      <subsubsection>\n        <title>Using <c>TikZ</c></title>\n        <p>\n          In a problem statement (or hint, or solution), you may use an <tag>image</tag> with a\n          <tag>latex-image</tag> child. See <xref ref=\"topic-latex-images\"/> for generalities\n          about using <tag>latex-image</tag>.\n        </p>\n        <p>\n          However, if a <tag>latex-image</tag> is inside a <tag>webwork</tag>,\n          you must use <c>\\(...\\)</c> instead of <c>$...$</c> to encase any inline math in the image.\n          And if you have display math, that should use <c>\\[...\\]</c> instead of <c>$$...$$</c>.\n        </p>\n        <p>\n          Your latex-image code can use variables that you defined in the <tag>pg-code</tag> section.\n          Scalar variables may be used simply by using their perl names including the dollar sign sigil.\n          For example, <c>\\draw ($a,$b) -- ($c,$d);</c> where <c>$a</c>, <c>$b</c>, <c>$c</c>, and <c>$d</c> are variables.\n          However, any instance of <c>\\$</c> in code will be interpreted as an escaped dollar sign first,\n          so rare situations may require you to be more explicit.\n          The alternative is to include variables just as you would anywhere else in a problem statement,\n          using a <tag>var</tag> element like <c>&lt;var name=\"$a\"/></c>.\n          You would also need to use a <tag>var</tag> element if you would like to insert a perl array,\n          for example <c>&lt;var name=\"@a\"/></c>.\n        </p>\n        <p>\n          In perl, <c>$</c>, <c>@</c>, and <c>%</c> each have special meaning.\n          So you may wonder about using them in your latex-image code.\n          The short answer is that you should use them just as you would use them in a regular <latex/> document.\n          So when you would like a dollar sign, write <c>\\$</c>.\n          For a percent sign, use <c>\\%</c>.\n          An <q>at</q> character does not need escaping, so write <c>@</c>.\n        </p>\n        <p>\n          As mentioned above, do not use a dollar sign to encase math.\n          If you want to put a <latex/> comment in the code,\n          you may write it in the usual way like <c>% This is a comment</c>.\n        </p>\n        <p>\n          Your project's <tag>docinfo</tag> may contain a <tag>latex-image-preamble</tag> element.\n          If so, and if that preamble content should affect the latex-images inside the <tag>webwork</tag>,\n          then you need to get that preamble content up on the <webwork/> host course.\n          In many cases, you will <em>need</em> to get that preamble content up on the host course for the image to even compile.\n          See <xref ref=\"webwork-pg-macros\"/>.\n        </p>\n        <p>\n          See the <webwork/> sample chapter for examples.\n        </p>\n      </subsubsection>\n\n      <subsubsection>\n        <title>Using <attr>pg-name</attr></title>\n        <p>\n          In a problem statement (or hint, or solution), you may use an <tag>image</tag> with a <attr>pg-name</attr>.\n          This attribute's values should be the name of an image created in the <tag>pg-code</tag> section.\n          For example, an image created using <c>init_graph</c> from <c>PGgraphmacros.pl</c>.\n        </p>\n        <p>\n          See the <webwork/> sample chapter for examples.\n        </p>\n      </subsubsection>\n    </subsection>\n  </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/backmatter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the documentation of PreTeXt              -->\n<!--                                                                -->\n<!--         The PreTeXt Guide                                      -->\n<!--                                                                -->\n<!-- Copyright (C) 2013-2019                                        -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller -->\n<!-- See the file COPYING for copying conditions.                   -->\n\n<backmatter xml:id=\"backmatter\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Appendices</title>\n\n    <xi:include href=\"appendices/welcome.xml\"/>\n    <!-- collect references to each Best Practice note -->\n    <appendix xml:id=\"best-practices\">\n        <title>Best Practices</title>\n        <list-of elements=\"note\"/>\n    </appendix>\n    <xi:include href=\"appendices/python.xml\"/>\n    <xi:include href=\"appendices/editors.xml\"/>\n    <xi:include href=\"appendices/schema-install.xml\"/>\n    <xi:include href=\"appendices/node-npm.xml\"/>\n    <xi:include href=\"appendices/offline-mathjax.xml\"/>\n    <xi:include href=\"appendices/liblouis.xml\"/>\n    <xi:include href=\"appendices/git.xml\"/>\n    <xi:include href=\"appendices/latex-conversion.xml\"/>\n    <xi:include href=\"appendices/mac-os.xml\"/>\n    <xi:include href=\"appendices/windows-cli.xml\"/>\n    <xi:include href=\"appendices/windows.xml\"/>\n    <xi:include href=\"appendices/windows-wsl.xml\"/>\n    <xi:include href=\"appendices/cli-transition.xml\"/>\n    <xi:include href=\"appendices/cli-v1vsv2.xml\"/>\n    <xi:include href=\"appendices/journals.xml\"/>\n    <appendix>\n        <title>Example List of Notation</title>\n        <notation-list />\n    </appendix>\n    <xi:include href=\"appendices/gfdl-pretext.xml\"/>\n    <xi:include href=\"appendices/glossary.xml\"/>\n    <xi:include href=\"appendices/references.xml\"/>\n\n    <index xml:id=\"the-index\">\n        <title>Index</title>\n        <index-list />\n    </index>\n</backmatter>\n"
  },
  {
    "path": "doc/guide/basics/README.md",
    "content": "# Contributing to the *Basics Reference* portion of The PreTeXt Guide\n\n## `xml:id` usage\n\n* Add `xml:id`s to all divisions and listings (at a minimum).\n* Within the *Basics Reference*, please ensure that your `xml:id`s begin with \"basics\".\n* Within the *Basics Reference*, use `ch` for chapter, `s` for section, `ss` for subsection, `l` for listing, and `fig` for figure when constructing `xml:id`s.\n* An `xref` to another portion of the *Basics Reference* can be done via something like `<xref ref=\"basics-ch-exercises\"/>`.\n\n## Cross references to other parts of The Guide\n\n* To help readers develop an understanding for the delineation between the parts of the guide, state which part you are making a reference to. For instance, `The <pubtitle>Author's Guide</pubtitle>  (<xref ref=\"topic-cross-referencing\"/>)\ngoes into greater detail` is the preferred style of making an `xref` out of the *Basics Reference*.\n* We encourage contributors to add lots of cross references. The *Basics Reference* is not meant to be the ultimate guide to every feature of PreTeXt.\n\n## Code snippets\n\n* Unless demonstrating something such as inline math or a cross reference that must live within a `p`, you are expected to put your code snippet in a separate file with extension `.ptx`.\n* Follow the model done in existing sections to use `xi:include` twice, once with `@parse=\"text\"` (always within a listing) and once without setting `@parse`. This allows the reader to see how the code is rendered by the PreTeXt converters.\n\n## Index entries\n\n* The initial indexing of the *Basics Reference* is being done by Matt Boelkins, Mitch Keller, and Oscar Levin based on extensive conversations with a larger group at the Portland workshop in 2019. **Please do not add additional `idx` tags to existing portions of the *Basics Reference* while this bullet remains in the `README.md` file.**\n* Code snippets contained in `listing` are required to have at least two index entries. One should have main heading `<pretext/> code for` and subheading that identifies what it is the PreTeXt code for. The second must have the appropriate main heading to identify what the sampmle code for and subheading `<pretext/> code for`.\n* Use `see` and `seealso` liberally in your indexing. Try to think of any other (nontechnical) terms someone might use to look up an idea and put the appropriate `see` entry in the index. For instance, we have \"problem\" as an index heading with with \"as homework\" as the subheading. This points the reader to see exercise.\n* When referring to a PreTeXt tag or attribute in the index, use `<tag>` or `<attr>` as appropriate. Also ensure that you use `@sortby` in these cases, as otherwise the index isn't sorted correctly. For instance, you might use something like `<idx sortby=\"example\"><tag>example</tag></idx>` to create a top-level index entry for the PreTeXt example tag.\n* The various \"-like\" elements need to be indexed carefully. The main index entry needs to follow the lead of example-like elements, which is presented (in output) as \"example-like elements (<example>, <problem>, <question>)\". When using `<see>` or `<seealso>` to point to a \"-like\" category, use only the portion that does not list the tags (e.g., `<see>example-like elements</see>`. For the top-level `<pretext/> code for` index entry, the subheading for a \"-like\" element should be comprehensive: `<idx><h sortby=\"pretext code for\"><pretext/> code for</h><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h></idx>`. This allows a user of the index to scan and realize that if they want to create a `<question>` element, then they can copy the listing given for the example-like elements and change `example` to `question`.\n"
  },
  {
    "path": "doc/guide/basics/aside.ptx",
    "content": "<aside>\n  <title>A Sample Aside</title>\n  <p>\n    Here is some text inside a sample aside.\n    I'm going to put the Pythagorean identity below:\n    <md>\n      \\sin^2(x) + \\cos^2(x) = 1\n    </md>.\n  </p>\n\n  <p>\n    This aside has two paragraphs.\n    You can't do that with a footnote.\n  </p>\n</aside>\n"
  },
  {
    "path": "doc/guide/basics/axiom.ptx",
    "content": "<axiom>\n    <title>Optional</title>\n    <creator>Peano</creator>\n  <statement>\n    <p>\n      Here's the statement of the axiom.\n    </p>\n  </statement>\n</axiom>\n\n"
  },
  {
    "path": "doc/guide/basics/basics-part.xml",
    "content": "<part xml:id=\"part-basics\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n  <title>Basics Reference</title>\n  <chapter xml:id=\"basics-ch-about\">\n    <title>About This Reference</title>\n    <p>\n      This <pubtitle>Basics Reference</pubtitle> supplements the more formal documentation in other parts of the Guide.\n      Here you will find the <em>basics</em>\n      of the most important and commonly used <pretext/> elements.\n      In most instances,\n      this will be exhibited by showing a chunk of <pretext/> code in a numbered Listing followed immediately by the exact output that <pretext/> code produces.\n      (In some cases, such as with the code that produces a section,\n      it is not practical to do this.)\n      Wherever possible,\n      the sample code and its output are accompanied by cross-references to the <pubtitle>Author's Guide</pubtitle> in <xref ref=\"part-author\"/>.\n    </p>\n\n    <p>\n      There are some things that are considered beyond the scope of this reference:\n\n      <ul>\n        <li>\n          Many of the possible options that can be used with the different tags.\n          This is a <em>basic</em> reference,\n          and so we want to keep things simple.\n          When you need a more advanced feature not discussed here,\n          follow the link to the\n          <xref ref=\"part-author\" text=\"title\"/>.\n          We welcome contributions of intermediate examples to this\n          <pubtitle>Basics Reference</pubtitle>,\n          but the initial goal is not to be comprehensive in adding such examples.\n        </li>\n\n        <li>\n          Instructions on converting your <pretext/> <init>XML</init> to another format such as <init>HTML</init> or <latex/>.\n        </li>\n\n        <li>\n          Instructions on using\n          <webwork/> in <pretext/>.\n          (This reference does show the most basic of syntax for including a problem from the\n          <webwork/> Open Problem Library.\n          However, it assumes that you already have a project set up to compile correctly with\n          <webwork/> problems,\n          which is an involved task.)\n        </li>\n      </ul>\n    </p>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-basic-formatting\">\n    <title>Basic Formatting</title>\n    <p>\n          <idx><h>bold</h><see>formatting</see></idx>\n          <idx><h>italic</h><see>formatting</see></idx>\n          <idx><h>font</h><see>formatting</see></idx>\n          <idx>term</idx>\n          <idx>formatting</idx>\n          <idx>emphasis</idx>\n      The <xref ref=\"list-principles\"\n      text=\"title\" /> begin with <q><pretext/> is a markup language that captures the structure of textbooks and research papers</q> (<xref ref=\"principle-markup\"/>).\n      By a <term>markup language</term>,\n          <idx>markup language</idx>\n      we mean that the syntax describes the <em>structure</em>\n      of the document and not the presentation of the document.\n      Thus, <pretext/> does not provide, for instance,\n      a way to make text bold or italic or in a larger font.\n      If an author seeks a specific type of local typesetting,\n      then they need to pause and think about the\n      <em>reason</em> for that typesetting.\n      Is the reason to emphasize a word or phrase?\n      Is the reason to alert the reader to a common mistake?\n      Is it to designate that a word is a new term being defined by the author?\n      There are ways to mark up such structural ideas in <pretext/>,\n      and authors should conscientiously ensure that they use this markup.\n    </p>\n\n    <p>\n      To illustrate some of the key structural markup that leads to formatting,\n      we include the listing and paragraph below.\n    </p>\n\n    <listing xml:id=\"basics-l-p\">\n      <title>Some basic content of a paragraph</title>\n        <idx><h sortby=\"p\"><tag>p</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"p\"><tag>p</tag></h></idx>\n\n<program>\n<code><xi:include href=\"p.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-p\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"p.ptx\"/>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-divisions\">\n    <title>Document Structure</title>\n    <p>\n     Elements such as <tag>chapter</tag>, <tag>section</tag>,\n      and <tag>subsection</tag> are called <term>divisions</term>.\n          <idx>division</idx>\n          <idx>document structure</idx>\n          <idx sortby=\"section\"><tag>section</tag></idx>\n          <idx><h sortby=\"section\"><tag>section</tag></h><seealso>division</seealso></idx>\n          <idx><h sortby=\"subsection\"><tag>subsection</tag></h><see>division</see></idx>\n          <idx><h sortby=\"chapter\"><tag>chapter</tag></h><see>division</see></idx>\n      They are the key organizational elements of the structure of a <pretext/> document and all have (essentially) the same syntax.\n      If a division does not contain any other divisions,\n      then its structure looks like what we see in <xref ref=\"basics-l-section-primitive\"/>. (Plenty of other things can go inside other than paragraphs,\n      including figures, <etc/>)\n    </p>\n\n    <listing xml:id=\"basics-l-section-primitive\">\n      <title>The general outline of a section as a model division</title>\n      <idx><h sortby=\"section\"><tag>section</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"section\"><tag>section</tag></h></idx>\n<program><code><xi:include href=\"section.ptx\" parse=\"text\"/></code> </program>\n    </listing>\n\n    <p>\n        <idx><h>division</h><h>containing other divisions</h></idx>\n        <idx><h sortby=\"introduction\"><tag>introduction</tag></h><h>of a division</h></idx>\n        <idx><h sortby=\"conclusion\"><tag>conclusion</tag></h><h>of a division</h></idx>\n        If a division has other divisions inside it,\n      then the structure is a bit more complicated and regimented.\n      In particular,\n      if you want text before your first subdivision (<tag>subsection</tag> in this example),\n      that text must go inside <tag>introduction</tag>.\n      If you want to start with the <tag>subsection</tag>,\n      then the <tag>introduction</tag> is optional.\n      In the <q>division with subdivisions</q> model,\n      everything <em>must</em> be contained inside <tag>introduction</tag>, <tag>subsection</tag> (or whatever your subdivision type is), <tag>exercises</tag>, <tag>references</tag>,\n      or <tag>conclusion</tag>.\n      This is illustrated in <xref ref=\"basics-l-section-sub\"/>.\n    </p>\n\n    <listing xml:id=\"basics-l-section-sub\">\n      <title>A <tag>section</tag> with <tag>subsection</tag>s.</title>\n      <idx><h sortby=\"section\"><tag>section</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"section\"><tag>section</tag></h></idx>\n      <idx><h sortby=\"subsection\"><tag>subsection</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"subsection\"><tag>subsection</tag></h></idx>\n      <idx><h sortby=\"introduction\"><tag>introduction</tag></h><h>of a division</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"introduction\"><tag>introduction</tag> of a division</h></idx>\n      <idx><h sortby=\"conclusion\"><tag>conclusion</tag></h><h>of a division</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"conclusion\"><tag>conclusion</tag> of a division</h></idx>\n\n<program><code><xi:include href=\"section-sub.ptx\" parse=\"text\"/></code> </program>\n    </listing>\n\n    <paragraphs>\n      <title>Limitations on introductions and conclusions</title>\n      <idx><h sortby=\"introduction\"><tag>introduction</tag></h><h>of a division</h><h>limitations</h></idx>\n      <idx><h sortby=\"conclusion\"><tag>conclusion</tag></h><h>of a division</h><h>limitations</h></idx>\n\n      <p>\n        There are many tags that are <em>not</em>\n        allowed in introductions and conclusions.\n        In general, avoid things that would have numbers.\n        For instance,\n        one should not put an <tag>example</tag> or an <tag>exercise</tag> in an introduction or conclusion.\n      </p>\n    </paragraphs>\n\n    <paragraphs>\n      <title>Paragraphs: like an un-numbered (sub)section</title>\n      <idx>paragraphs</idx>\n      <idx><h sortby=\"paragraphs\">paragraphs</h></idx>\n      <p>\n        It can be useful to gather a few items and give them a title,\n        but perhaps those items do not merit their own (sub)section.\n        The <tag>paragraphs</tag> serves that purpose.  A <tag>title</tag>\n        is required.</p>\n\n      <p>\n        This <tag>paragraphs</tag> contains two <tag>p</tag>s.  Immediately before,\n        and immediately after this <tag>paragraphs</tag> there are <tag>paragraphs</tag>\n        which each contain one <tag>p</tag>.  A <tag>paragraphs</tag> can contain pretty\n        much anything except for a division.\n      </p>\n    </paragraphs>\n\n\n    <paragraphs>\n      <title>The role of <tag>p</tag> tags</title>\n      <idx>paragraph</idx>\n      <idx sortby=\"p\"><tag>p</tag></idx>\n\n      <p>\n        One of the things you'll need to keep an eye out for is when things must be wrapped in <tag>p</tag> (paragraph) tags.\n        Notice that <tag>title</tag> tags do not have their content wrapped in <tag>p</tag>,\n        which places some limits on the sorts of things that can be contained in a title.\n        If you find text disappearing or displaying strangely,\n        the culprit is likely an unnecessary or or missing <tag>p</tag> tag.\n        See <xref ref=\"schema\" text=\"type-global\" /> for information on how to use some additional tools to see if your <pretext/> file is valid in terms of following the structural rules in the schema.\n      </p>\n    </paragraphs>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-math\">\n    <title>Mathematics</title>\n    <idx>mathematics</idx>\n\n    <p>\n      Since <pretext/> was originally called MathBook <init>XML</init>,\n      you will not be surprised to learn that it has robust support for mathematical formulas.\n          <idx><h>mathematics</h><h>formula</h></idx>\n          <idx><h>mathematics</h><seealso>equation</seealso></idx>\n          <idx><h>mathematics</h><h><latex/></h></idx>\n          <idx><h>formula</h><see>equation</see></idx>\n          <idx><h>equation</h></idx>\n      Inside the tags that delimit math environments,\n      your code is basically <latex/> , with the caveat that you must be careful with &lt;\n      and &amp;\n      since they are special symbols for <init>XML</init>.\n          <idx><latex/></idx>\n          <idx><h><latex/></h> <h>exceptions: &lt; and &amp;</h></idx>\n          <idx><h>special symbols</h><see><latex/></see></idx>\n      When typing math in your <pretext/> code, use <c>\\lt</c> for\n      &lt;, use <c>\\gt</c> for &gt; (not strictly necessary, but good\n      for symmetry), and use <c>\\amp</c> for &amp;. In\n      <init>HTML</init>, MathJax is used to render math, so <pretext/>\n      generally supports the things that MathJax does <q>out of the\n      box</q> (with the addition of <c>amsmath</c>) without the need for too many additional packages to be loaded.\n          <idx>MathJax</idx>\n    </p>\n\n    <p>\n      For inline math,\n      just wrap things in the <tag>m</tag> tag.\n          <idx><h>equation</h><h>in-line</h><h><pretext/> code for</h></idx>\n          <idx><h><pretext/> code for</h><h>in-line equation</h></idx>\n      For example, <m>a^2 + b^2 = c^2</m> is produced by <c>&lt;m&gt;a^2 + b^2 = c^2&lt;/m&gt;.</c> We get displayed equations with the <tag>md</tag> tag; setting <attr>number</attr> to <c>yes</c> on the <tag>md</tag> produces a numbered equation.\n          <idx><h>mathematics</h><h>environments</h><h>displayed equation</h></idx>\n          <idx><h>mathematics</h><h>environments</h><h>in-line equation</h></idx>\n          <idx><h>equation</h><h>numbered</h></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-md-bare\">\n      <title>Displayed equations</title>\n      <idx><h><pretext/> code for</h><h>displayed equation</h></idx>\n      <idx><h>equation</h><h>displayed</h><h><pretext/> code for</h></idx>\n      <program>\n<code><xi:include href=\"md-bare.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-md-bare\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"md-bare.ptx\"/>\n\n    <p>\n      For a collection of equations all aligned at a designated point,\n      use <tag>md</tag> and <tag>mrow</tag>.  Number equations by setting <attr>number</attr> to <c>yes</c> on the <tag>md</tag> (or on individual <tag>mrow</tag> children). <idx><h>mathematics</h><h>environments</h><h>aligned equation</h></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-md\">\n      <title>Aligned equations</title>\n      <idx><h><pretext/> code for</h><h>aligned equations</h></idx>\n      <idx><h>equation</h><h>aligned</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"md\"><tag>md</tag></h></idx>\n      <idx><h sortby=\"md\"><tag>md</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"mrow\"><tag>mrow</tag></h></idx>\n      <idx><h sortby=\"mrow\"><tag>mrow</tag></h><h><pretext/> code for</h></idx>\n\n      <program>\n<code><xi:include href=\"md.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-md\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"md.ptx\"/>\n\n    <p>\n      Because most of the early adopters of <pretext/> have been mathematicians,\n      there are lots of additional features supported in terms of mathematics.\n      See <xref ref=\"topic-mathematics\" text=\"type-global\" /> for further details.\n    </p>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-lists\">\n    <title>Lists</title>\n    <idx>list</idx>\n    <idx><h>enumerate</h><see>list</see></idx>\n\n    <p>\n      Lists are important in lots of contexts,\n      and the desire to nest lists has led to some very,\n      very complex discussions on the <pretext/> email lists.\n      We'll keep it simple here.\n      There are a variety of places that lists can live,\n      but a good mental model is that a list must be put inside an element\n      that's similar to <tag>p</tag>.\n      <alert>So for example,\n      you can't put your list directly inside a <tag>subsection</tag>,\n      but instead must wrap the list in a <tag>p</tag>.</alert>\n    </p>\n\n    <p>\n      There are two common types of lists:\n      ordered and unordered.\n          <idx><h>list</h><h>ordered</h></idx>\n          <idx><h>ordered list</h></idx> (There's also the description list.\n      See <xref ref=\"topic-lists\"/> for more information.) As in <init>HTML</init>,\n      an ordered list is produced with <tag>ol</tag> and an unordered list with <tag>ul</tag>.\n      The items of your list are structured inside <tag>li</tag>\n      tags. The example in <xref ref=\"basics-l-ol\"\n      text=\"type-global\"/> shows that these <tag>li</tag> tags can\n      contain a paragraph in a <tag>p</tag> tag but you do not need\n      to. If you're just putting a sentence or two inside your\n      <tag>li</tag>, no <tag>p</tag> is required. However, if you also\n      want to put an image or more complicated items inside the\n      <tag>li</tag>, then the <tag>li</tag> must be structured with\n      <tag>p</tag> by placing <q>loose</q> text inside one or more <tag>p</tag>.<idx><h sortby=\"p\"><tag>p</tag></h><h sortby=\"use inside li\">use inside <tag>li</tag></h></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-ol\">\n      <title>An ordered list</title>\n      <idx><h>list</h><h>ordered</h><h><pretext/> code for</h></idx>\n      <idx><h>ordered list</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>ordered list</h></idx>\n      <idx><h sortby=\"ol\"><tag>ol</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"ol\"><tag>ol</tag></h></idx>\n<program>\n<code><xi:include href=\"ol.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-ol\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"ol.ptx\"/>\n\n    <p>\n        <idx><h sortby=\"marker\"><attr>marker</attr></h><h sortby=\"of ol\">of <tag>ol</tag></h></idx>\n      You can use the <attr>marker</attr> attribute<fn>As illustrated here, an attribute is something that appears between the &lt; and &gt; of the opening tag. The convention in <init>XML</init> usage is to prefix an attribute name with <c>@</c> when referring to the attribute <em>outside</em> of the tag. You do not use the <c>@</c> in the tag itself.</fn> on the <tag>ol</tag> tag to change the default markers.\n      For instance,\n      if the opening tag for the list above were <tag>ol marker=\"A\"</tag>,\n      then the list items would be marked as A. and B. Sensible things to use with <attr>marker</attr> are i, I, A, a, and 1.\n      Nesting of lists is possible,\n      and there are sensible default markers.\n          <idx><h>list</h><h>numbering</h></idx>\n          <idx><h>list</h><h>marking</h></idx>\n          <idx><h>numbering</h><h>list items</h></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-ul\">\n      <title>An unordered list</title>\n      <idx><h>list</h><h>unordered</h><h><pretext/> code for</h></idx>\n      <idx><h>unordered list</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>unordered list</h></idx>\n      <idx><h sortby=\"ul\"><tag>ul</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"ul\"><tag>ul</tag></h></idx>\n      <program>\n<code><xi:include href=\"ul.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-ul\"/> produces the following output:\n          <idx><h>list</h><h>unordered</h></idx>\n          <idx><h>unordered list</h></idx>\n          <idx><h>itemize</h><see>unordered list</see></idx>\n          <idx><h>bulleted list</h><see>unordered list</see></idx>\n    </p>\n\n    <xi:include href=\"ul.ptx\"/>\n\n    <p>\n        <idx><h sortby=\"cols\"><attr>cols</attr></h><h>of a list</h></idx>\n        You can also use the <attr>cols</attr> attribute to split a list\n      (ordered or unordered)\n      across multiple columns if the screen/page is suitably wide.\n          <idx><h>list</h><h>displayed in columns</h></idx>\n      The value of this attribute must be an integer between 2 and 6\n      (inclusive).\n    </p>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-block\">\n    <title>Blocks</title>\n    <section xml:id=\"basics-s-thm\">\n    <title>Theorem-Like Elements</title>\n    <idx>theorem-like elements (<tag>algorithm</tag>, <tag>claim</tag>, <tag>corollary</tag>, <tag>fact</tag>, <tag>identity</tag>, <tag>lemma</tag>, <tag>proposition</tag>, <tag>theorem</tag>)</idx>\n\n    <p>\n      The tags <tag>theorem</tag>, <tag>algorithm</tag>, <tag>claim</tag>, <tag>corollary</tag>, <tag>fact</tag>, <tag>identity</tag>, <tag>lemma</tag>,\n      and <tag>proposition</tag> have the same structure in <pretext/>,\n      so we will just illustrate <tag>theorem</tag> here.\n          <idx>theorem</idx>\n          <idx><h sortby=\"algorithm\"><tag>algorithm</tag></h><see>theorem-like elements</see></idx>\n          <idx><h sortby=\"claim\"><tag>claim</tag></h><see>theorem-like elements</see></idx>\n          <idx><h sortby=\"corollary\"><tag>corollary</tag></h><see>theorem-like elements</see></idx>\n          <idx><h sortby=\"fact\"><tag>fact</tag></h><see>theorem-like elements</see></idx>\n          <idx><h sortby=\"identity\"><tag>identity</tag></h><see>theorem-like elements</see></idx>\n          <idx><h sortby=\"lemma\"><tag>lemma</tag></h><see>theorem-like elements</see></idx>\n          <idx><h sortby=\"proposition\"><tag>proposition</tag></h><see>theorem-like elements</see></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-theorem\">\n      <title>A theorem</title>\n      <idx><h sortby=\"theorem\"><tag>theorem</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>theorem-like elements (<tag>algorithm</tag>, <tag>claim</tag>, <tag>corollary</tag>, <tag>fact</tag>, <tag>identity</tag>, <tag>lemma</tag>, <tag>proposition</tag>, <tag>theorem</tag>)</h></idx>\n      <idx><h>theorem-like elements (<tag>algorithm</tag>, <tag>claim</tag>, <tag>corollary</tag>, <tag>fact</tag>, <tag>identity</tag>, <tag>lemma</tag>, <tag>proposition</tag>, <tag>theorem</tag>)</h><h><pretext/> code for</h></idx>\n      <idx><h sortby=\"proof\"><tag>proof</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>proof (of theorem-like element)</h></idx>\n          <idx><h sortby=\"statement\"><tag>statement</tag></h><h>of theorem-like elements</h></idx>\n\n<program>\n<code><xi:include href=\"theorem.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-theorem\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"theorem.ptx\"/>\n\n    <p>\n      The <tag>title</tag> is optional and typically used for theorems with names. To give an attribution, one can use the optional <tag>creator</tag> tag.\n          <idx><h sortby=\"theorem\"><tag>theorem</tag></h><h sortby=\"title\"><tag>title</tag></h></idx>\n          <idx><h sortby=\"title\"><tag>title</tag></h><h>of theorem-like elements</h></idx>\n          <idx><h sortby=\"creator\"><tag>creator</tag></h><h>of theorem-like elements</h></idx>\n      Cross references (see <xref ref=\"basics-s-xref\"/>) can be made using the name or the number, depending on how the author codes them.\n    </p>\n\n    <p>\n        <idx sortby=\"proof\"><tag>proof</tag></idx>\n        <idx><h>theorem-like elements (<tag>algorithm</tag>, <tag>claim</tag>, <tag>corollary</tag>, <tag>fact</tag>, <tag>identity</tag>, <tag>lemma</tag>, <tag>proposition</tag>, <tag>theorem</tag>)</h><h>proofs of</h></idx>\n        A theorem-like element can contain multiple <tag>proof</tag> elements. In such instances, it would be useful to use the <tag>title</tag> tag within your proof. By default, a <tag>proof</tag> is hidden in a knowl when using <init>HTML</init> output. Click the <q>Proof.</q> heading to expand the proof. Click it again to hide the proof. A <tag>proof</tag> can also be divided into <tag>case</tag>s, each of which can have a title.<idx><h sortby=\"case\"><tag>case</tag></h><h>of proof</h></idx> Although it has not always been so, you can author a <tag>proof</tag> all on its own within a division. The structure of such a detached <tag>proof</tag> is the same as for a <tag>proof</tag> contained within a theorem-like element.<idx><h sortby=\"proof\"><tag>proof</tag></h><h>detached</h></idx>\n        <idx><h sortby=\"proof\"><tag>proof</tag></h><h>outside of theorem-like elements</h><see>proof, detached</see></idx>\n        <idx>detached proof</idx>\n    </p>\n    <p>\n      You can use <tag>definition</tag> essentially like <tag>theorem</tag>,\n      but a <tag>definition</tag> does not have a proof.\n          <idx>definition</idx>\n      You are encouraged to use the <tag>term</tag> tag to set off the word being defined.\n          <idx><h sortby=\"term\"><tag>term</tag></h><h>in a definition</h></idx>\n      If you wish to include a list of notation as an appendix as your document,\n      you might also add a <tag>notation</tag> tag such as shown in <xref ref=\"basics-l-definition\"/>. A <tag>notation</tag> tag has no effect unless you have an <tag>appendix</tag> with a <tage>notation-list</tage> in it.\n      <idx sortby=\"notation (to be included in a notation list)\"><tag>notation</tag> (to be included in a notation list)</idx>\n      <idx sortby=\"notation list\"><tage>notation-list</tage></idx>\n      <idx><h>list</h><h>of notation</h></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-definition\">\n      <title>A definition with notation</title>\n      <idx><h sortby=\"definition\"><tag>definition</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"definition\"><tag>definition</tag></h></idx>\n      <idx><h>notation (to be included in a notation list)</h><h><pretext/> code for</h></idx>\n<program>\n<code><xi:include href=\"definition.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-definition\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"definition.ptx\"/>\n  </section>\n\n  <section xml:id=\"basics-s-examples\">\n    <title>Example-Like Elements</title>\n    <idx>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</idx>\n    <idx><h sortby=\"example\"><tag>example</tag></h></idx>\n    <idx><h sortby=\"example\"><tag>example</tag></h><seealso>example-like elements</seealso></idx>\n    <idx><h sortby=\"problem\"><tag>problem</tag></h><see>example-like elements</see></idx>\n    <idx><h>problem</h><h>as homework</h><see><tag>exercise</tag></see></idx>\n    <idx><h sortby=\"question\"><tag>question</tag></h><see>example-like elements</see></idx>\n\n    <p>\n      <pretext/> provides three closely-related tags for things that are examples or similar.\n      They are <tag>example</tag>, <tag>problem</tag>,\n      and <tag>question</tag>.\n      They all have the same syntax.\n      The <tag>title</tag> element is optional, but encouraged as\n      discussed in <xref ref=\"best-practice-titles\" text=\"type-global\" />.\n          <idx><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h><h sortby=\"title\"><tag>title</tag></h></idx>\n          <idx><h sortby=\"title\"><tag>title</tag></h><h>of example-like elements</h></idx>\n      You may either use a freeform example, as shown in <xref ref=\"basics-l-example-simple\"/>,\n            <idx><h sortby=\"example\"><tag>example</tag></h><h>unstructured</h></idx>\n      or an example structured with a <tag>statement</tag> and zero or more <tag>hint</tag>s, <tag>answer</tag>s, and <tag>solution</tag>s\n      (in that order).\n          <idx><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h><h>hint</h></idx>\n          <idx><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h><h>answer</h></idx>\n          <idx><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h><h>solution</h></idx>\n          <idx><h>hint</h><h>to example-like elements</h></idx>\n          <idx><h>answer</h><h>to example-like elements</h></idx>\n          <idx><h>solution</h><h>to example-like elements</h></idx>\n      This is illustrated in <xref ref=\"basics-l-example-structured\"/>.\n          <idx><h sortby=\"example\"><tag>example</tag></h><h>structured</h></idx>\n      Note that for <init>HTML</init> output,\n      if your <tag>example</tag> has a <tag>solution</tag>,\n      the solution will be hidden in a knowl by default. See <xref ref=\"knowled-content\"\n      text=\"type-global\" /> for information on changing this behavior.\n    </p>\n    <aside>\n        <title>Author vs. publisher</title>\n        <p>\n            <pretext/> strives to remind us that the roles of author and publisher should be kept mentally separate, even if there is one individual ultimately responsible for both roles. One way to think about this is that the <term>author</term> is the person writing the <em>content</em> of the book, article, <etc/>, while the <term>publisher</term> is the person responsible for making the final product available to the world in one or more formats such as a physical print-on-demand book, an electronic book in <init>EPUB</init> format, or a web page.\n        </p>\n        <p>\n            Authors and publishers generally work collaboratively, but the publisher frequently comes in later in the process. Some authors act as their own publishers, but it is useful to switch mindsets when making decisions about how the final product will be presented to the world rather than the specific content on the page or screen.\n        </p>\n    </aside>\n\n    <listing xml:id=\"basics-l-example-simple\">\n      <title>A simple example</title>\n      <idx><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h><h>unstructured</h><h><pretext/> code for</h></idx>\n            <idx><h sortby=\"example\"><tag>example</tag></h><h>unstructured</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>example</h><h>unstructured</h></idx>\n      <idx><h><pretext/> code for</h><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h></idx>\n      <program>\n<code><xi:include href=\"example-simple.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-example-simple\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"example-simple.ptx\"/>\n\n    <p>\n      If you are reading this in <init>HTML</init> with the default\n      processing options applied, the example above will be\n      knowled. This is the <pretext /> default <em>only</em> so that\n      authors know that knowls exist. See <xref ref=\"knowled-content\"\n      text=\"type-global\" /> for information on changing this behavior.\n    </p>\n\n    <listing xml:id=\"basics-l-example-structured\">\n      <title>A structured example</title>\n      <idx><h sortby=\"example\"><tag>example</tag></h><h>structured</h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>example</h><h>structured</h></idx>\n      <idx><h><pretext/> code for</h><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h></idx>\n      <idx><h>example-like elements (<tag>example</tag>, <tag>problem</tag>, <tag>question</tag>)</h><h>structured</h><h><pretext/> code for</h></idx>\n      <program>\n<code><xi:include href=\"example-structured.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-example-structured\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"example-structured.ptx\"/>\n  </section>\n\n  <section xml:id=\"basics-s-axiom\">\n    <title>Axiom-Like Elements</title>\n    <idx>axiom-like elements (<tag>assumption</tag>, <tag>axiom</tag>, <tag>conjecture</tag>, <tag>heuristic</tag>, <tag>hypothesis</tag>, <tag>principle</tag>)</idx>\n\n    <p>\n      <pretext/> provides several tags that fall into the category of an <q>axiom</q>.\n      They are <tag>assumption</tag>, <tag>axiom</tag>, <tag>conjecture</tag>, <tag>heuristic</tag>, <tag>hypothesis</tag>, and <tag>principle</tag>.\n      The content of these tags is very simple.\n      They allow an optional <tag>title</tag>, an optional <tag>creator</tag>,\n      optional <tag>idx</tag> tags,\n      and then a <tag>statement</tag> much like a <tag>theorem</tag> does.\n          <idx sortby=\"axiom\"><tag>axiom</tag></idx>\n          <idx><h sortby=\"assumption\"><tag>assumption</tag></h><see>axiom-like elements</see></idx>\n          <idx><h sortby=\"conjecture\"><tag>conjecture</tag></h><see>axiom-like elements</see></idx>\n          <idx><h sortby=\"heuristic\"><tag>heuristic</tag></h><see>axiom-like elements</see></idx>\n          <idx><h sortby=\"hypothesis\"><tag>hypothesis</tag></h><see>axiom-like elements</see></idx>\n          <idx><h sortby=\"principle\"><tag>principle</tag></h><see>axiom-like elements</see></idx>\n          <idx><h sortby=\"title\"><tag>title</tag></h><h>of axiom-like elements</h></idx>\n          <idx><h sortby=\"statement\"><tag>statement</tag></h><h>of axiom-like elements</h></idx>\n          <idx><h sortby=\"creator\"><tag>creator</tag></h><h>of axiom-like elements</h></idx>\n\n    </p>\n\n    <listing xml:id=\"basics-l-axiom\">\n      <title>An axiom</title>\n      <idx><h sortby=\"remark\"><tag>axiom</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>axiom-like elements (<tag>assumption</tag>, <tag>axiom</tag>, <tag>conjecture</tag>, <tag>heuristic</tag>, <tag>hypothesis</tag>, <tag>principle</tag>)</h></idx>\n      <idx><h>axiom-like elements (<tag>assumption</tag>, <tag>axiom</tag>, <tag>conjecture</tag>, <tag>heuristic</tag>, <tag>hypothesis</tag>, <tag>principle</tag>)</h><h><pretext/> code for</h></idx>\n<program>\n<code><xi:include href=\"axiom.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-axiom\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"axiom.ptx\"/>\n  </section>\n\n\n  <section xml:id=\"basics-s-remark\">\n    <title>Remark-Like Elements</title>\n    <idx>remark-like elements (<tag>convention</tag>, <tag>insight</tag>, <tag>note</tag>, <tag>observation</tag>, <tag>remark</tag>, <tag>warning</tag>)</idx>\n\n    <p>\n      <pretext/> provides several tags that fall into the general category of a <q>remark</q>.\n      They are <tag>convention</tag>, <tag>insight</tag>, <tag>note</tag>, <tag>observation</tag>, <tag>remark</tag>,\n      and <tag>warning</tag>.\n      The content of these elements is similar to what is allowed inside\n      the <tag>statement</tag> of a theorem-like element.\n      They allow an optional title,\n      optional <tag>idx</tag> tags,\n      and then a mixture of <tag>p</tag>, <tag>blockquote</tag>,\n      and <tag>pre</tag>.\n          <idx sortby=\"remark\"><tag>remark</tag></idx>\n          <idx><h sortby=\"convention\"><tag>convention</tag></h><see>remark-like elements</see></idx>\n          <idx><h sortby=\"insight\"><tag>insight</tag></h><see>remark-like elements</see></idx>\n          <idx><h sortby=\"note\"><tag>note</tag></h><see>remark-like elements</see></idx>\n          <idx><h sortby=\"observation\"><tag>observation</tag></h><see>remark-like elements</see></idx>\n          <idx><h sortby=\"warning\"><tag>warning</tag></h><see>remark-like elements</see></idx>\n          <idx><h sortby=\"title\"><tag>title</tag></h><h>of remark-like elements</h></idx>\n    </p>\n\n    <listing xml:id=\"basics-l-remark\">\n      <title>A remark</title>\n      <idx><h sortby=\"remark\"><tag>remark</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>remark-like elements (<tag>convention</tag>, <tag>insight</tag>, <tag>note</tag>, <tag>observation</tag>, <tag>remark</tag>, <tag>warning</tag>)</h></idx>\n      <idx><h>remark-like elements (<tag>convention</tag>, <tag>insight</tag>, <tag>note</tag>, <tag>observation</tag>, <tag>remark</tag>, <tag>warning</tag>)</h><h><pretext/> code for</h></idx>\n<program>\n<code><xi:include href=\"remark.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-remark\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"remark.ptx\"/>\n  </section>\n\n  <section xml:id=\"basics-ch-project\">\n    <title>Project-Like Elements</title>\n    <idx>project-like elements (<tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag>, <tag>project</tag>)</idx>\n\n    <p>\n      There are four tags that <pretext/> considers to be <q>project-like</q>.\n      They are <tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag>, <tag>project</tag>.  We will focus on <tag>project</tag> here.\n      These four tags allow a general, freeform structure similar to the unstructured <tag>example</tag> in <xref ref=\"basics-l-example-simple\"/>;\n      a structure analogous to that of the structured <tag>example</tag> in <xref ref=\"basics-l-example-structured\"/>;\n      and the highly-structured <tag>introduction</tag>, <tag>task</tag>, <tag>conclusion</tag> model shown in <xref ref=\"basics-l-project\"/>.\n          <idx><h>example</h><h>comparison to project-like elements</h></idx>\n          <idx sortby=\"project\"><tag>project</tag></idx>\n          <idx><h sortby=\"activity\"><tag>activity</tag></h><see>project-like elements</see></idx>\n          <idx><h sortby=\"exploration\"><tag>exploration</tag></h><see>project-like elements</see></idx>\n          <idx><h sortby=\"investigation\"><tag>investigation</tag></h><see>project-like elements</see></idx>\n\n    </p>\n\n    <listing xml:id=\"basics-l-project\">\n      <title>A project</title>\n      <idx><h sortby=\"project\"><tag>project</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h>project-like elements\n      (<tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag>, <tag>project</tag>)</h></idx>\n      <idx><h sortby=\"conclusion\"><tag>conclusion</tag></h><h>of a project-like element</h></idx>\n      <idx><h sortby=\"introduction\"><tag>introduction</tag></h><h>of a project-like element</h></idx>\n      <idx><h>project-like elements (<tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag>, <tag>project</tag>)</h><h><pretext/> code for</h></idx>\n\n\t\t<program>\n\t\t<code><xi:include href=\"project.ptx\" parse=\"text\"/></code>\n\t\t</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-project\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"project.ptx\"/>\n  </section>\n  </chapter>\n  <chapter xml:id=\"basics-ch-exercise\">\n    <title>Exercises</title>\n    <idx sortby=\"exercise\"><tag>exercise</tag></idx>\n    <introduction>\n      <p><pretext /> provides a number of ways of collecting things\n      that might be thought of as exercises for students to do. Some\n      might be used for a student to check their ability to perform a\n      skill. Others might be to check the understanding of what a\n      student has just read, perhaps submitting responses to an\n      instructor before class so that plans for in-class time can be\n      adjusted. Another way of collecting exercises might be as a\n      worksheet intended to be worked on during class.</p>\n    </introduction>\n    <section xml:id=\"basics-ss-exercise-structure\">\n      <title><tag>exercise</tag> structure</title>\n      <p>\n\tAn <tag>exercise</tag> can be rather freeform, containing\n\telements such as <tag>p</tag>, <tag>figure</tag>,\n\t<tag>image</tag>, etc. However, an author will typically think\n\tabout an exercise as having an associated correct answer,\n\tperhaps with a hint or a detailed solution. <pretext /> has\n\ttags to support that sort of content, but it does require that\n\tyour <tag>exercise</tag> be structured. This is nearly\n\tidentical to the structure of a project-like element.\n      </p>\n\n      <listing xml:id=\"basics-l-exercise\">\n        <title>An exercise</title>\n        <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h><pretext/> code for</h></idx>\n        <idx><h>inline exercise</h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"exercise\"><tag>exercise</tag></h><h>inline</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"exercise\"><tag>exercise</tag></h></idx>\n\t<program>\n<code><xi:include href=\"exercise.ptx\" parse=\"text\"/></code>\n\t</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-exercise\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"exercise.ptx\"/>\n\n      <p>\n        Note that you can have multiple <tag>hint</tag>, <tag>answer</tag>,\n        and <tag>solution</tag> elements.\n            <idx><h>hint</h><h sortby=\"to exercise\">to <tag>exercise</tag></h></idx>\n            <idx><h>answer</h><h sortby=\"to exercise\">to <tag>exercise</tag></h></idx>\n            <idx><h>solution</h><h sortby=\"to exercise\">to <tag>exercise</tag></h></idx>\n            <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"answer\"><tag>answer</tag></h></idx>\n            <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"hint\"><tag>hint</tag></h></idx>\n            <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"solution\"><tag>solution</tag></h></idx>\n        But you must put all the <tag>hint</tag>s first,\n        then all the <tag>answer</tag>s, and then all the <tag>solution</tag>s.\n        There are a variety of options for determining where hints,\n        answers, and solutions appear\n        (at all).\n        Check <xref\n\tref=\"publisher-string-parameters\"\n\ttext=\"type-global\" /> for information about <c>stringparam</c>s.\n      </p>\n\n      <p>\n\tAn <tag>exercise</tag> can also have a more complicated\n\tstructure that assigns a sequence of steps for a student to\n\tcomplete. <pretext /> provides the same <tag>task</tag> tag\n\tthat is used in project-like elements to give structure to\n\tsuch an <tag>exercise</tag>.\n      </p>\n      <listing xml:id=\"basics-l-exercise-task\">\n        <title>An exercise with tasks</title>\n        <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h\n\tsortby=\"with task\">with <tag>task</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h\n\tsortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"with\n\ttask\">with <tag>task</tag></h></idx>\n\t<program>\n<code><xi:include href=\"exercise-task.ptx\" parse=\"text\"/></code>\n\t</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-exercise-task\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"exercise-task.ptx\"/>\n\n    </section>\n    <section xml:id=\"basics-s-exercise-inline\">\n      <title>Inline exercises</title>\n      <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h>inline</h></idx>\n      <idx><h>inline exercise</h></idx>\n\n      <p>\n        You can put an <tag>exercise</tag> in the middle of a division,\n        intermixed between theorems and paragraphs and figures.\n        In this case, it is labeled as a <q>Checkpoint</q>.<fn>\n        See <xref ref=\"basics-ch-rename\"/> for information on how to use something different than\n        <q>Checkpoint</q> as the name for these.\n        </fn> To distinguish these <tag>exercise</tag>s from\n\t<tag>exercise</tag>s that are contained in the specialized\n\tdivisions designed to collect <tag>exercise</tag>s that will\n\tbe discussed in the next section, we refer to these as\n\t<term>inline exercises</term>.\n            <idx><h>checkpoint</h><see>inline exercise</see></idx>\n            <idx>inline exercise</idx>\n      </p>\n\n    </section>\n    <section xml:id=\"basics-s-\">\n      <title>Divisions of <tag>exercise</tag>s</title>\n      <introduction>\n\t<p>\n\t  <idx sortby=\"exercises division\"><tag>exercises</tag>\n\t  division</idx>\n\n\t  You can also put several <tag>exercise</tag>s as part of an\n\t  <tag>exercises</tag> element within a division, which is the\n\t  typical way for creating a collection of exercises together\n\t  at the end of a division such as a chapter or section. The\n\t  content of an <tag>exercises</tag> division is rather\n\t  limited. It can begin with an <tag>introduction</tag>\n\t  (perhaps a set of common instructions), followed by a\n\t  mixture of <tag>exercise</tag> and <tag>exercisegroup</tag>\n\t  (see <xref ref=\"basics-ss-exgp\" text=\"type-global\" />)\n\t  elements, followed by an optional <tag>conclusion</tag>. The\n\t  sample code in <xref ref=\"basics-l-exercisegroup\"\n\t  text=\"type-global\" /> illustrates this structure, which is\n\t  rendered later as <q><xref ref=\"basics-s-sample-exercises\"\n\t  text=\"global\"/> Exercises</q>.\n\t</p>\n\t<p>\n\t  <idx sortby=\"subexercises\"><tag>subexercises</tag></idx>\n\t  <idx><h sortby=\"exercises\"><tag>exercises</tag></h><h>grouping</h></idx>\n\t  An alternative structure for an <tag>exercises</tag>\n\t  division is to use a sequence of <tag>subsexercises</tag>\n\t  elements, optionally preceded by an <tag>introduction</tag>\n\t  and followed by a <tag>conclusion</tag>. The content of a\n\t  <tag>subexercises</tag> element is identical to\n\t  what was described above for an <tag>exercises</tag>\n\t  element, but we emphasize that a strong rationale for using\n\t  <tag>subexercises</tag> (as opposed to\n\t  <tag>exercisegroup</tag>) is that a <tag>subexercises</tag>\n\t  element can begin with a <tag>title</tag>, providing a clear\n\t  way of organizing the <tag>exercise</tag>s for the reader.\n\t</p>\n      </introduction>\n      <subsection xml:id=\"basics-ss-exgp\">\n      <title><tag>exercisegroup</tag></title>\n      <idx sortby=\"exercisegroup\"><tag>exercisegroup</tag></idx>\n      <idx><h sortby=\"exercises\"><tag>exercises</tag></h><h>grouping</h></idx>\n      <p>\n        Sometimes you have several exercises that should all have a common set of instructions,\n        which is when you will use the <tag>exercisegroup</tag> tag.\n            <idx><h sortby=\"exercisegroup\"><tag>exercisegroup</tag></h><h>instructions</h></idx>\n        An <tag>exercisegroup</tag> can only be used as part of an\n\t<tag>exercises</tag> element or a <tag>subexercises</tag> element, however!\n        The portion of this section headed as\n        <q><xref ref=\"basics-s-sample-exercises\" text=\"global\"/> Exercises</q>\n        is produced using the code in <xref ref=\"basics-l-exercisegroup\"/>.\n      </p>\n\n      <listing xml:id=\"basics-l-exercisegroup\">\n        <title>Using an <tag>exercisegroup</tag>.</title>\n        <idx><h sortby=\"exercisegroup\"><tag>exercisegroup</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"exercisegroup\"><tag>exercisegroup</tag></h></idx>\n<program>\n<code><xi:include href=\"exercisegroup.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n          <idx><h sortby=\"cols\"><attr>cols</attr></h><h>of an exercise group</h></idx>\n        If you want the contents of an <tag>exercisegroup</tag> to be put in multiple columns,\n        you can add a <attr>cols</attr> attribute to the <tag>exercisegroup</tag> with value (for example) <c>3</c>.\n        The integer value of <attr>cols</attr> must be between 2 and 6\n        (inclusive).\n            <idx><h sortby=\"exercisegroup\"><tag>exercisegroup</tag></h><h>columns</h></idx>\n            <idx><h>column</h><h>of an exercise group</h></idx>\n      </p>\n\n      <p>\n        The code in <xref ref=\"basics-l-exercisegroup\">Listing</xref>\n        produces the output seen in <xref ref=\"basics-s-sample-exercises\">Exercises</xref>.\n      </p>\n      </subsection>\n      <subsection>\n\t<title>Reading questions</title>\n\t<p>\n\t  Another specialized division, <tag>reading-questions</tag>,\n\t  can be used to house <tag>exercise</tag>s designed to test\n\t  or guide a reader's comprehension of the material in that\n\t  division. The structure of a <tag>reading-questions</tag>\n\t  element is similar to an <tag>exercises</tag> element, but\n\t  without the grouping options of <tag>subexercises</tag> and\n\t  <tag>exercisegroup</tag>.         The portion of this section headed as\n        <q><xref ref=\"basics-reading-questions\" text=\"global\"/> <xref ref=\"basics-reading-questions\" text=\"title\"/></q>\n        is produced using the code in <xref ref=\"basics-l-reading-questions\"/>.\n      </p>\n\n      <listing xml:id=\"basics-l-reading-questions\">\n        <title>Structure of <tag>reading-questions</tag>.</title>\n        <idx><h sortby=\"reading-questions\"><tag>reading-questions</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"reading-questions\"><tag>reading-questions</tag></h></idx>\n<program>\n<code><xi:include href=\"reading-questions.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      </subsection>\n      <xi:include href=\"reading-questions.ptx\" />\n    </section>\n\n    <xi:include href=\"exercisegroup.ptx\"/>\n\n    <section xml:id=\"basics-s-webwork\">\n    <title><webwork/> Exercises</title>\n    <idx><webwork/> exercise</idx>\n    <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h><webwork/></h></idx>\n    <p>\n      It is possible to embed <webwork/> exercises into a <pretext/> document. It is possible to\n      build an <init>HTML</init> version in which readers can answer these exercises and find out if\n      their answer is correct or incorrect. And if the book is hosted by Runestone, the reader's\n      success can be recorded and incorporated into grades. Because <webwork/> content belongs\n      inside an <tag>exercise</tag>, you can include <webwork/> exercises in any of the elements\n      that can contain an <tag>exercise</tag> such as a <tag>worksheet</tag> and\n      <tag>reading-questions</tag>. There's some configuration required to use <webwork/>. Please\n      see <xref ref=\"webwork-author\"/> and <xref ref=\"webwork-publisher\"/> for more details. There\n      is a <webwork/> <pubtitle>Sample Chapter</pubtitle> available elsewhere, with copious\n      examples and output in multiple formats.\n    </p>\n  </section>\n\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-worksheets\">\n    <title>Worksheets</title>\n    <idx><h sortby=\"worksheet\"><tag>worksheet</tag></h></idx>\n    <p>\n      <idx><h>page layout</h><h sortby=\"in worksheet\">in\n      <tag>worksheet</tag></h></idx>\n\n      A <tag>worksheet</tag> is a specialized division that can be a\n      child of most divisions and can contain most <pretext />\n      tags. The general idea, however, would be to assemble a sequence\n      of <tag>exercise</tag>s or project-like elements with some\n      interspersed <tag>p</tag>, <tag>figure</tag>, and\n      <tag>sidebyside</tag>. One of the few times that <pretext />\n      allows you to manipulate page layout in terms of giving blank\n      space and specifying page breaks is in the <tag>worksheet</tag>\n      tag. A <tag>worksheet</tag> is also the only place you can put\n      an <tag>exercise</tag> inside a <tag>sidebyside</tag>. The\n      sample code in <xref ref=\"basics-l-worksheet\" text=\"type-global\"\n      /> is not meant to demonstrate everything you can do, but rather\n      to give you a skeleton to start exploring. The rendered output\n      from the listing appears immediately after it.\n    </p>\n\n    <listing xml:id=\"basics-l-worksheet\">\n        <title>Structure of <tag>worksheet</tag>.</title>\n        <idx><h sortby=\"worksheet\"><tag>worksheet</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"worksheet\"><tag>worksheet</tag></h></idx>\n\t<program>\n\t  <code><xi:include href=\"worksheet.ptx\" parse=\"text\"/></code>\n\t</program>\n    </listing>\n    <xi:include href=\"worksheet.ptx\" />\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-rename\">\n      <title>Renaming Elements</title>\n      <idx sortby=\"rename\"><tag>rename</tag></idx>\n      <idx><h>porism</h><h>renaming another tag to obtain</h></idx>\n      <p>\n          <idx><h sortby=\"rename\"><tag>rename</tag></h><h><pretext/> code for</h></idx>\n          <idx><h><pretext/> code for</h><h sortby=\"rename\"><tag>rename</tag></h></idx>\n\n          <idx sortby=\"docinfo\"><tag>docinfo</tag></idx>\n      The preceding sections have provided a lengthy list of <pretext/> tags that behave interchangeably.\n      Perhaps you don't like one of their names.\n      For instance, suppose your project will not involve any <tag>algorithm</tag>s, but you need another theorem-like tag whose name you would like to have rendered as <q>Porism</q>.\n      To do this, you need to add a <tag>rename</tag> element to the <tag>docinfo</tag> element of your code.\n      For our example,\n      the necessary code would be <c>&lt;rename element=\"algorithm\"&gt;Porism&lt;/rename&gt;</c>.\n      A <tag>rename</tag> element generates a <em>global</em> change;\n      it is not possible to rename a single instance of an element or to define your own tags (without writing your own <init>XSLT</init> code.\n    </p>\n\n    <p>\n      We have included this <tag>rename</tag> code in this guide's <tag>docinfo</tag>,\n      and as such,\n      we can do the following.\n    </p>\n\n    <listing xml:id=\"basics-l-porism\">\n      <title>A porism generated using <tag>algorithm</tag> and <tag>rename</tag></title>\n\n<program>\n<code><xi:include href=\"porism.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-porism\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"porism.ptx\"/>\n\n    <paragraphs>\n      <title>A special note about renaming\n      <tag>exercise</tag>s</title>\n      <idx><h>inline exercise</h><h>renaming</h></idx>\n      <idx><h\n\t       sortby=\"exercise\"><tag>exercise</tag></h><h>renaming</h></idx>\n      <idx><h sortby=\"rename\"><tag>rename</tag></h><h sortby=\"for exercise\">for <tag>exercise</tag></h></idx>\n      <p>Because of the range of divisions that can contain an\n      <tag>exercise</tag> element with different names displayed (such\n      as <q>Checkpoint</q> for an inline exercise), one cannot simply\n      use <attr>element</attr> with value <c>exercise</c> in a <tag>rename</tag>\n      element. The value of <attr>element</attr> to rename an\n      <tag>exercise</tag> is as follows:\n      <ul>\n\t<li><c>divisionalexercise</c> for an <tag>exercise</tag>\n\tinside <tag>exercises</tag>, <tag>subexercises</tag>, or\n\t<tag>exercisegroup</tag> with default <q>Exercise</q></li>\n\t<li><c>inlineexercise</c> for an inline exerise with default\n\t<q>Checkpoint</q></li>\n\t<li><c>worksheetexercise</c> for an <tag>exercise</tag>\n\tcontained in a <tag>worksheet</tag> with default <q>Worksheet\n\tExercise</q></li>\n\t<li><c>readingquestion</c> for an <tag>exercise</tag>\n\tcontained in a <tag>reading-questions</tag> with default\n\t<q>Reading Question</q></li>\n      </ul></p>\n    </paragraphs>\n  </chapter>\n\n\n  <chapter xml:id=\"basics-ch-fig\">\n    <title>Figures and Friends</title>\n    <section xml:id=\"basics-s-image\">\n        <title><tag>image</tag></title>\n        <idx sortby=\"image\"><tag>image</tag></idx>\n        <p><idx><h sortby=\"figure\"><tag>figure</tag></h><h>without caption</h><see><tag>image</tag></see></idx>\n        <idx><h sortby=\"image\"><tag>image</tag></h><h>without caption</h></idx>\n        It is possible to include an image without a number or caption, centered on its own line by using <tag>image</tag>.</p>\n      <p>\n          <idx>graphics formats</idx>\n          <idx sortby=\"svg\"><init>SVG</init> (Scalable Vector Graphics) format</idx>\n          <idx><h sortby=\"pdf\"><init>PDF</init> format</h><h>as image</h></idx>\n          <idx>PNG image format</idx>\n        The gold standard for graphics to include in <pretext/> documents is, well,\n        complicated.\n        If you're only working with <init>HTML</init> or <init>EPUB</init> output\n        then <init>SVG</init> is what you want.\n        If you're producing <init>PDF</init> by using <latex/>,\n        then you'll also want <init>PDF</init> graphics files. If you\n\tplan to produce an ebook that can be read on Kindle devices,\n\tyou will need <init>PNG</init> graphics files.\n        Fortunately,\n        it's not too hard to convert between these formats on the command line.<fn>\n        Since conversion is a rare task,\n        it may be easiest to do in a cloud environment like CoCalc.\n        </fn> In order to produce <init>HTML</init>, <init>PDF</init>,\n\tand Kindle, you will need to always have three files\n\tavailable. We recommend that you consistently pick\n\t<init>PDF</init> or <init>SVG</init> to be the one that you\n\tedit and then convert to the other format. Otherwise, you\n\tmight have <c>parabola.svg</c> and <c>parabola.pdf</c> and\n\t<c>parabola.png</c> contain three different graphics, and then\n\tthe different output formats for your project will have different images in them!\n        <init>PNG</init> and <init>JPEG</init> are supported by modern\n\tweb browsers, <latex/>, and Kindle,\n        so that's a good option when vector graphic formats like <init>SVG</init> and <init>PDF</init> are not available or appropriate.\n      </p>\n      <listing xml:id=\"basics-l-image\">\n          <title>Code to include an image without a number or caption</title>\n          <idx><h sortby=\"image\"><tag>image</tag></h><h><pretext/> code for</h></idx>\n          <idx><h><pretext/> code for</h><h sortby=\"image\"><tag>image</tag></h></idx>\n          <idx><h sortby=\"description\"><tag>description</tag></h><h sortby=\"of image\">of <tag>image</tag></h></idx>\n<program>\n<code><xi:include href=\"image.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n\t<idx><h sortby=\"width\"><attr>width</attr></h><h sortby=\"of image\">of <tag>image</tag></h></idx>\n        Use of <attr>width</attr> on an image must be a percentage, and for an <tag>image</tag> as in this example, the percentage is of the current line width. The code in <xref ref=\"basics-l-image\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"image.ptx\"/>\n\n      <p><idx><h sortby=\"description\"><tag>description</tag></h><h>for\n      accessibility</h></idx>\n      <idx>accessibility</idx>The example in <xref ref=\"basics-l-image\"/> also illustrates the use of  <tag>description</tag>. We admit to not using a <tag>description</tag> for most of the other <tag>image</tag>s in this Guide, but doing so is strongly recommended for accessibility reasons. A reader who is unable to see the visual element of your book can use assistive technology to have the <tag>description</tag> read to them. As much as is practical, authors should endeavor to include <tag>description</tag>s for their <tag>image</tag>s.\n      </p>\n      <p>\n          <idx><h>file extensions</h><h>for graphics</h></idx>\n          <idx><h>extensions</h><see>file extensions</see></idx>\n\t  <idx><h>graphics</h><h>file formats</h></idx>\n\t  <idx><h sortby=\"image\"><tag>image</tag></h><h>file formats</h></idx>\n        Note that the path to the image file does not include the file extension.\n        When you process your source,\n        the output format you're generating will determine what gets added on so that the right file is used.\n        If your browser says it can't find the image file,\n        make sure that the <init>SVG</init> file is in the correct location relative to the <init>HTML</init> file.\n        Here, we need a directory called <c>images</c> that lives next to our <init>HTML</init> files with a file called <c>small-graph.svg</c> inside that directory.\n        If using a <init>PNG</init> or <init>JPEG</init> file across\n\t<init>HTML</init>, <latex />/<init>PDF</init>,\n\t<init>EPUB</init>, and Kindle,\n        put the extension in the filename so that the file is used for\n\tall. Many authors have an <c>images</c> directory that lives in the same directory as their <pretext/> source files and then produce the <c>.tex</c> file or <init>HTML</init> files in another directory. When doing so, you need to copy the <c>images</c> directory to be in the same directory as the <c>.tex</c> file before generating a <init>PDF</init> or in the same directory as your many <c>.html</c> files before viewing your <init>HTML</init> files in a web browser.\n      </p>\n    </section>\n    <section xml:id=\"basics-s-fig\">\n        <title><tag>figure</tag></title>\n        <idx sortby=\"figure\"><tag>figure</tag></idx>\n        <p>To provide a number and caption for an <tag>image</tag>,\n\tthe <tag>figure</tag> element is used. Notice that the\n\t<tag>caption</tag> is authored at the <em>beginning</em> of\n\tthe <tag>figure</tag> but is displayed <em>below</em> the\n\t<tag>figure</tag>'s content.</p>\n      <listing xml:id=\"basics-l-figure\">\n          <title>Code to include a figure</title>\n          <idx><h sortby=\"figure\"><tag>figure</tag></h><h><pretext/> code for</h></idx>\n          <idx><h><pretext/> code for</h><h sortby=\"figure\"><tag>figure</tag></h></idx>\n          <idx><h sortby=\"caption\"><tag>caption</tag></h><h sortby=\"of figure\">of <tag>figure</tag></h></idx>\n          <idx><h sortby=\"image\"><tag>image</tag></h><h>inside <tag>figure</tag></h><h><pretext/> code for</h></idx>\n          <idx><h><pretext/> code for</h><h sortby=\"image (inside figure)\"><tag>image</tag> (inside <tag>figure</tag>)</h></idx>\n\n<program>\n<code><xi:include href=\"figure.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-figure\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"figure.ptx\"/>\n\n    </section>\n\n    <section xml:id=\"basics-s-sidebyside\">\n        <title><tag>sidebyside</tag></title>\n        <idx sortby=\"sidebyside\"><tag>sidebyside</tag></idx>\n\t<idx>page layout</idx>\n      <p>\n        One of the more complex pieces of code in <pretext/>,\n        by most accounts, is that used for positioning objects\n        (frequently <tag>image</tag> and <tag>tabular</tag>, but also <tag>p</tag>)\n        next to each other.\n        If you've tried to do this in <latex/>, you know that it can be challenging on a good day.\n        Fortunately,\n        <pretext/> does the heavy lifting for us.\n      </p>\n\n      <p>\n        We include two examples here.  The first places the\n        <tag>sidebyside</tag> directly in the current division and\n        places a <tag>figure</tag> with a caption inside the\n        <tag>sidebyside</tag>.  The second puts the\n        <tag>sidebyside</tag> inside <tag>figure</tag> and then uses\n        an <tag>image</tag> not contained in a <tag>figure</tag> to\n        include the graphic.  It's possible to do all sorts of nesting\n        and get nice subnumbering automatically.  More information on\n        the capabilities of <tag>sidebyside</tag> can be found in\n        <xref ref=\"topic-sidebyside\" text=\"type-global\" />.\n      </p>\n\n      <listing xml:id=\"basics-l-sbs\">\n        <title>Code to place things side by side</title>\n        <idx><h sortby=\"sidebyside\"><tag>sidebyside</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"sidebyside\"><tag>sidebyside</tag></h></idx>\n        <idx><h sortby=\"figure\"><tag>figure</tag></h><h sortby=\"inside sidebyside\">inside <tag>sidebyside</tag></h></idx>\n        <idx><h sortby=\"p\"><tag>p</tag></h><h sortby=\"inside sidebyside\">inside <tag>sidebyside</tag></h></idx>\n        <idx><h sortby=\"sidebyside\"><tag>sidebyside</tag></h><h sortby=\"containing figure\">containing <tag>figure</tag></h></idx>\n        <idx><h sortby=\"sidebyside\"><tag>sidebyside</tag></h><h sortby=\"containing p\">containing <tag>p</tag></h></idx>\n\n<program>\n<code><xi:include href=\"sidebyside.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-sbs\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"sidebyside.ptx\"/>\n\n      <listing xml:id=\"basics-l-sbs2\">\n        <title>A few more bells and whistles for <tag>sidebyside</tag></title>\n        <idx><h sortby=\"sidebyside\"><tag>sidebyside</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"sidebyside\"><tag>sidebyside</tag></h></idx>\n        <idx><h sortby=\"figure\"><tag>figure</tag></h><h sortby=\"containing sidebyside\">containing <tag>sidebyside</tag></h></idx>\n        <idx><h sortby=\"sidebyside\"><tag>sidebyside</tag></h><h sortby=\"inside figure\">inside <tag>figure</tag></h></idx>\n\n<program>\n<code><xi:include href=\"sidebyside2.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-sbs2\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"sidebyside2.ptx\"/>\n\n      <p><idx>side-by-side group</idx>\n      <idx><h>side-by-side group</h><seealso><tag>sbsgroup</tag></seealso></idx>\n          For a layout with multiple rows (but the same <attr>widths</attr> for each row, <pretext/> provides the side-by-side group using <tag>sbsgroup</tag>.\n      </p>\n\n      <listing xml:id=\"basics-l-sbsgroup\">\n        <title>Use of <tag>sbsgroup</tag></title>\n        <idx><h sortby=\"sbsgroup\"><tag>sbsgroup</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"sbsgroup\"><tag>sbsgroup</tag></h></idx>\n\n<program>\n<code><xi:include href=\"sbsgroup.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-sbsgroup\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"sbsgroup.ptx\"/>\n    </section>\n\n    <section xml:id=\"basics-s-latex-fig\">\n        <title><latex/>-generated images</title>\n        <idx><h sortby=\"latex\"><latex/></h><h>using to generate images</h></idx>\n        <p>\n            <idx>TikZ</idx>\n            <idx sortby=\"pretext script\"><c>pretext</c> script</idx>\n            <idx><h>graphics formats</h><h>generating from <latex/> source</h></idx>\n        <pretext/> makes it straightforward to embed <latex/> code that produces images\n        (such as TikZ)\n        into your source files. The <pretext />-CLI basically just dumps your code out to your <latex/> file so that it compiles nicely.\n        However, for <init>HTML</init> display,\n        you will need <init>SVG</init> graphic files.\n        This is where the <c>pretext/pretext</c> script comes in.\n        Running the <c>pretext/pretext</c> script frequently requires patience,\n        particularly on Windows,\n        so settle in with an experienced user before attempting the steps in this section.  See <xref ref=\"pretext-script\"/> for complete details.\n      </p>\n      <aside>\n          <title>The <c>pretext</c> script</title>\n          <idx><h sortby=\"pretext script\"><c>pretext</c> script</h><h>prerequisites</h></idx>\n        <p>\n          The <c>pretext/pretext</c> script requires a working Python installation, and works best with a virtual Python environment.   See <xref ref=\"python\"/>.\n        </p>\n\n        <p>\n          <c>pdf2svg</c> and ImageMagick are also pieces of the toolchain that may need to be installed separately,\n          including on macOS. To generate graphics using SageMath,\n          you'll need a working installation of it with a proper configuration of its path in the <c>pretext.cfg</c> file.\n          Linux and CoCalc can probably get away without extra configuration here,\n          but it will likely be required on macOS and Windows unless\n\t  you've set up your SageMath install so you can run it from\n\t  the command line by simply executing <c>sage</c>. More\n\t  details on running the <c>pretext/pretext</c> script can be\n\t  found in <xref\n\t  ref=\"pretext-script\"\n\t  text=\"type-global\" />\n        </p>\n      </aside>\n      <p><idx sortby=\"latex-image-preamble\"><tag>latex-image-preamble</tag></idx>\n      <idx sortby=\"docinfo\"><tag>docinfo</tag></idx>\n      <idx><h>TikZ</h><h sortby=\"loading in latex-image-preamble\">loading in <tag>latex-image-preamble</tag></h></idx>\n        Our example here just illustrates using TikZ to make a simple figure\n        (the Hasse diagram of a poset),\n        but lots of other <latex/> graphics packages can be used.\n        One step required is to put the following three lines in the <tag>docinfo</tag> tag of your main file. <tag>latex-image-preamble</tag> is used to set up the preamble that should be used for making <init>SVG</init> images from your <pretext/> source.\n        Macros that you wish to use more broadly should be put inside <tag>macros</tag> inside <tag>docinfo</tag>.\n\n      </p>\n\n<pre>\n&lt;latex-image-preamble&gt;\n\\usepackage{tikz}\n&lt;/latex-image-preamble&gt;\n</pre>\n\n      <listing xml:id=\"basics-l-tikz\">\n        <title>How to use <tag>latex-image</tag> to invoke TikZ</title>\n        <idx><h sortby=\"latex-image\"><tag>latex-image</tag></h><h><pretext/> code for</h></idx>\n                <idx><h><pretext/> code for</h><h sortby=\"latex-image\"><tag>latex-image</tag></h></idx>\n                <idx><h>TikZ</h><h sortby=\"inside latex-image\">inside <tag>latex-image</tag></h></idx>\n<program>\n<code><xi:include href=\"tikz.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-tikz\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"tikz.ptx\"/>\n\n      <p>\n        Well, that's not 100% true for <init>HTML</init>.\n        If you just run <c>pretext build web</c>,\n        your terminal will display a few warnings about not generating assets such as images.\n        To generate the assets,\n        we have to use the <c>-g</c> flag.\n        To generate the assets before building, on the command line we run the following command\n        (on a single line). (Omitting the <c>web</c> target will, by default, use the first target)\n        in the <c>project.ptx</c> file.)\n        <cd>\n          <cline>pretext build web -g</cline>\n        </cd>\n      </p>\n\n      <aside>\n        <p>\n          For the same build using <c>xsltproc</c>, you would use the following:\n          \n        </p>\n        <console width=\"80%\" margins=\"10% 10%\">\n         <!-- <idx><h><c>pretext</c> script</h><h>for latex-image</h></idx> -->\n        <input>/path/to/pretext/pretext -c latex-image -f\n\tsvg -d /path/to/html/output/directory/images /path/to/yoursource.ptx</input>\n      </console>\n      </aside>\n      \n    </section>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-table\">\n    <title>Tables</title>\n    <idx sortby=\"table\"><tag>table</tag></idx>\n\n    <p>\n      After <tag>sidebyside</tag>,\n      getting tables to lay out consistently between <init>HTML</init> and <init>PDF</init> is probably the second biggest headache that <pretext/> takes care of for us behind the scenes.\n      Considerable effort has been taken in order to fix some of the challenges inherent to working with the <c>tabular</c> environment in <latex/>, and so if you author in <pretext/>,\n      you should be able to forget the hacks you had to learn to make nice tables in <latex/>.\n    </p>\n\n    <p>\n          <idx><h sortby=\"table\"><tag>table</tag></h><h>not for visual layout</h></idx>\n          <idx><h sortby=\"table\"><tag>table</tag></h><h>not for visual layout</h><seealso>side-by-side group</seealso></idx><alert>Tables should only be used to display data.</alert> Too often in other authoring systems, tables are used as a crutch to facilitate the visual layout of a page.\n      Do <em>not</em> do that when authoring <pretext/>.\n      A good question to ask yourself before using a <tag>tabular</tag> is\n      <q>Do the <m>xy</m>-coordinates of a cell have semantic meaning in terms of my data?</q>\n      If the answer is <q>yes</q>,\n      then make an array of numbers with <tag>tabular</tag>.\n      If not, find a more suitable tag.\n      (Perhaps <tag>sidebyside</tag> and/or <tag>sbsgroup</tag>.)\n      One of the many reasons for this is that screen readers used by individuals with visual impairments read tables in a very specific way that assumes the <m>xy</m>-coordinates of each cell are contributing to the meaning.\n      Individuals who use screen readers will find a document that uses tables to do something other than present tabular data very confusing and frustrating.\n    </p>\n\n    <p>\n        Similar to <latex/>, <pretext/> provides a <tag>table</tag> tag and a <tag>tabular</tag> tag. The <tag>tabular</tag> tag is used for producing the array of data, while the <tag>table</tag> tag provides the number and title.\n    </p>\n    <listing xml:id=\"basics-l-table\">\n      <title>Code to produce a table</title>\n      <idx><h sortby=\"table\"><tag>table</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"table\"><tag>table</tag></h></idx>\n      <idx><h sortby=\"title\"><tag>title</tag></h><h sortby=\"of table\">of <tag>table</tag></h></idx>\n      <idx><h sortby=\"caption\"><tag>caption</tag></h><h sortby=\"of table\">of <tag>table</tag></h><see><tag>title</tag></see></idx>\n      <idx><h sortby=\"table\"><tag>table</tag></h><h sortby=\"title\"><tag>title</tag></h></idx>\n      <idx><h sortby=\"tabular\"><tag>tabular</tag></h><h><pretext/> code for</h></idx>\n      <idx><h><pretext/> code for</h><h sortby=\"tabular\"><tag>tabular</tag></h></idx>\n      <idx><h>row</h><h>of a table</h></idx>\n      <idx><h>cell</h><h>of a table</h></idx>\n      <idx><h>entry of a table</h><see>cell</see></idx>\n<program>\n<code><xi:include href=\"table.ptx\" parse=\"text\"/></code>\n</program>\n    </listing>\n\n    <p>\n      The code in <xref ref=\"basics-l-table\"/> produces the following output:\n    </p>\n\n    <xi:include href=\"table.ptx\"/>\n\n    <p><idx><h sortby=\"table\"><tag>table</tag></h><h>without title or caption</h><see><tag>tabular</tag></see></idx>\n    <idx><h sortby=\"tabular\"><tag>tabular</tag></h><h>without title or caption</h></idx>\n    Much like <tag>image</tag>, you can use <tag>tabular</tag> on its own to lay out a table of data, centered on a line, between (for instance) a couple of <tag>p</tag> elements. In many cases, the sort of data layout generated using <tag>tabular</tag> functions more as a figure than a table according to the definitions in the <pubtitle>Chicago Manual of Style</pubtitle>  <xref ref=\"cmos\"/> (CMOS), which <pretext/> attempts to follow in the absence of other guiding principles. The quote below from David Farmer on the <url href=\"https://groups.google.com/forum/#!searchin/pretext-dev/CMOS$20table%7Csort:date/pretext-dev/w1e4dERKZ6M/gt_WhA9sCAAJ\" visual=\"groups.google.com/g/pretext-dev/c/w1e4dERKZ6M/m/gt_WhA9sCAAJ\">pretext-dev Google Group</url> provides guidance on deciding if your <tag>tabular</tag> should be contained in <tag>figure</tag> or <tag>table</tag>.\n        </p>\n        <blockquote>\n            <idx><h sortby=\"table\"><tag>table</tag></h><h>deciding when to use instead of <tag>figure</tag></h></idx>\n            <p><lq/>There is an entire chapter on tables in CMOS, so I'll try to\n            summarize how those are distinct from many uses of grids of\n            numbers in PreTeXt.  Some approximate quotes about tables from CMOS:\n            <ul>\n                <li>facts that are easy to scan and compare</li>\n                <li>a reader unfamiliar with the material should still be able to make\n                sense of the table</li>\n                <li>tables are numbered and have titles (and not captions)</li>\n            </ul>\n            </p>\n            <p>My take-away is that a CMOS table is a supplement to what is written\n            in the text and at any one time only a small amount of the table is\n            relevant.  Rephrasing: a CMOS table is not intended to be integrated\n            with the narrative of the book, and the reader is not supposed to\n            pore over a large fraction of the table when it is first encountered.<rq/>\n            </p>\n            <attribution>David Farmer</attribution>\n        </blockquote>\n        <p>In reality, the <tag>tabular</tag> in <xref ref=\"basics-l-table\"/> really should be contained in <tag>figure</tag> (and then the <tag>title</tag> must become a <tag>caption</tag>). Perhaps someday we will come up with an example <tag>tabular</tag> that meets the CMOS definition of a table to use instead.</p>\n\n    <p>\n          <idx><h>column</h><h>of a table</h></idx>\n      See <xref ref=\"topic-tabular\"/> for more information about how to make more complicated tables including formatting columns and vertical and horizontal rules.\n    </p>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-sage\">\n    <title>SageMath Content</title>\n    <section xml:id=\"basics-s-sage-cell\">\n      <title>SageMathCells</title>\n      <idx><h>SageMathCell</h><h>interactive</h></idx>\n      <idx><h>SageMathCell</h><h>for static images</h><see><tag>sageplot</tag></see></idx>\n      <idx><h>interactive SageMath code</h><see><tag>sage</tag></see></idx>\n      <p>\n        <idx sortby=\"input\"><tag>input</tag></idx>\n        <idx sortby=\"output\"><tag>output</tag></idx>\n        Including computational SageMath cells is pretty easy with <tag>sage</tag>, <tag>input</tag>,\n        and <tag>output</tag>.\n        The last tag is useful for producing formats intended for\n\toffline reading so that they can include the result of the code's execution.\n      </p>\n\n      <listing xml:id=\"basics-l-sage\">\n        <title>SageMath cell</title>\n        <idx><h sortby=\"sage\"><tag>sage</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"sage\"><tag>sage</tag></h></idx>\n<program>\n<code><xi:include href=\"sage.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-sage\"/> produces the following output:\n      </p>\n\n      <xi:include href=\"sage.ptx\"/>\n\n      <p>\n        SageMathCells on a single <init>HTML</init> page are automatically linked so that a cell can use the results of computations done in earlier cells on the same page.\n      </p>\n    </section>\n\n    <section xml:id=\"basics-s-sageplot\">\n      <title><tag>sageplot</tag></title>\n      <p>\n        Sometimes you don't want to provide an interactive SageMath environment in the middle of your book\n        (or a chunk of code)\n        but you would like to produce a figure to include in your project by using SageMath.\n        The cleanest way to do this his to put the SageMath code right in your <pretext/> project and use the <c>pretext</c> script\n\tthat we discussed in <xref ref=\"basics-s-latex-fig\"/> to produce the image files required for your chosen output formats.\n        This is accomplished by using <tag>sageplot</tag> with the script.\n        (The <c>pretext</c> script is fully discussed in <xref ref=\"pretext-script\"/>, but at least\n        see the aside in <xref ref=\"basics-s-latex-fig\"/> about the additional packages that must be installed and configured to use it properly.)\n      </p>\n\n      <listing xml:id=\"basics-l-sageplot\">\n        <title><tag>sageplot</tag> to produce a graphic</title>\n        <idx><h sortby=\"sageplot\"><tag>sageplot</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h sortby=\"sageplot\"><tag>sageplot</tag></h></idx>\n<program>\n<code><xi:include href=\"sageplot.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        <idx><h><c>pretext</c> script</h></idx>\n\n        We need to run the <c>pretext</c> script to actually make the image files required.\n        If you want to make both <init>HTML</init> and <init>PDF</init> via <latex/>, you'll need to run it twice.\n        The first command below (again,\n        enter on one line) makes the <init>SVG</init> to use on the web,\n        and the second makes what you need for <latex/>.\n        There is an <c>all</c> option that can be passed after <c>-f</c> instead of <c>svg</c> or <c>pdf</c>,\n        but that is more likely to raise errors because some source code cannot produce certain output formats.\n        It's best to stay away from error-producing steps until you're comfortable with debugging your system.\n      </p>\n\n      <!-- <idx><h><c>pretext</c> script</h><h>for sageplot to svg</h></idx> -->\n      <!-- <idx><h><c>pretext</c> script</h><h>for sageplot to pdf</h></idx> -->\n      <console width=\"80%\" margins=\"10% 10%\">\n        <input>/path/to/pretext/pretext/pretext -c sageplot -f svg -d ./images /path/to/yoursource.ptx</input>\n      </console>\n\n      <console width=\"80%\" margins=\"10% 10%\">\n        <input>/path/to/pretext/pretext/pretext -c sageplot -f pdf -d ./images /path/to/yoursource.ptx</input>\n      </console>\n\n      <p>\n        The code in <xref ref=\"basics-l-sageplot\"/> produces the following output.\n      </p>\n\n      <xi:include href=\"sageplot.ptx\"/>\n    </section>\n  </chapter>\n\n  <chapter xml:id=\"basics-ch-small\">\n    <title>Small, But Useful</title>\n    <introduction>\n      <p>\n        The topics in this section are not terribly structural or critical,\n        but they fall in the category of\n        <q>little things you want to do right from the outset</q>.\n      </p>\n    </introduction>\n\n    <section xml:id=\"basics-s-xref\">\n      <title>Cross references</title>\n      <idx><h>cross reference</h><h>in text</h></idx>\n      <idx>internal cross reference</idx>\n      <idx><h>link</h><h>internal</h><see>cross reference</see></idx>\n\n      <p>\n        <idx><h sortby=\"label\">\\label</h><see>xml:id</see></idx>\n        <idx><h sortby=\"ref\"><attr>ref</attr></h></idx>\n        <idx sortby=\"xmlid\"><attr>xml:id</attr></idx>\n        <pretext/> provides a robust set of features for internal cross referencing.\n        If you're familiar with <latex/>,\n        the equivalent of <c>\\label</c> is to use an <attr>xml:id</attr>.\n        For example,\n        the opening tag for this section is <tag>section xml:id=\"basics-s-xref\"</tag>.\n        Instead of the <c>\\ref</c> used by <latex/>,\n        we use <tag>xref</tag> in <pretext/>.\n        So we can type <tage>xref ref=\"basics-s-xref\"</tage> to create a reference to this subsection:\n        <xref ref=\"basics-s-xref\"/>.\n        There are lots of options to control what text and number appear when you use <tag>xref</tag>.\n        The default is <attr>text</attr> with value <c>type-global</c>,\n        which produces something like <q>Subsection 3.3</q> or <q>Theorem 3.1.4</q>.\n        The type is <q>Subsection</q> or <q>Theorem</q>,\n        and the <em>global</em> number is 3.3 or 3.1.4. (Global is in contrast to local,\n        which would be just 3 or 4, respectively,\n        for these examples.) <xref ref=\"topic-cross-referencing\"/>\n        goes into greater detail about how to change settings for how cross references appear,\n        which you can do for your entire document as well as for individual cross references that require different treatment.\n      </p>\n    </section>\n\n    <section>\n      <title>External links</title>\n      <idx><h>external link</h></idx>\n      <idx><h>link</h><h>external</h></idx>\n      <idx><h>hyperlinks</h><see>cross reference</see></idx>\n      <idx><h>hyperlinks</h><see>external link</see></idx>\n      <p>\n        <idx sortby=\"url\"><tag>url</tag></idx>\n        <idx sortby=\"href\"><attr>href</attr></idx>\n        If you want to provide a link to a resource outside of your project,\n        you will want the <tag>url</tag> tag.\n        The code\n        <cd>&lt;url href=\"https://pretextbook.org\" visual=\"pretextbook.org\"&gt;PreTeXt&lt;/url&gt;</cd>\n        produces <url href=\"https://pretextbook.org\" visual=\"pretextbook.org\">PreTeXt</url>.\n        Note that in a print PDF version, a trailing parenthetical with the content of <attr>visual</attr> is automatically created.\n      </p>\n\n      <p>\n        Extensive details are provided in <xref ref=\"topic-url\"/>.\n      </p>\n    </section>\n\n    <section xml:id=\"basics-s-fn\">\n      <title>Footnotes and asides</title>\n      <idx>footnote</idx>\n      <idx><h>footnote</h><h>long</h><see><tag>aside</tag></see></idx>\n      <idx sortby=\"fn\"><tag>fn</tag></idx>\n\n      <p>\n        Footnotes are not too hard,\n        just use <tag>fn</tag>,\n        but note that for the time being,\n        what can go inside a footnote is very, very restricted.<fn>\n        This is a sample footnote, just so you can see how one looks.\n        </fn> For instance,\n        you can't put a <tag>p</tag> (and thus you can't put lists) inside a footnote.\n        Also, no displayed math via <tag>md</tag>.\n        There's a lot of care being taken because of the prospect of footnotes inside footnotes inside footnotes.\n            <idx><h>footnote</h><h>restrictions</h></idx>\n      </p>\n\n      <p>\n        Because of the restrictions on footnotes,\n        it is important to keep them short.\n        A good alternative for longer things that are somewhat digressional is the <term>aside</term>,\n            <idx sortby=\"aside\"><tag>aside</tag></idx>\n        which comes in three flavors: <tag>aside</tag>, <tag>biographical</tag>, <tag>historical</tag>.\n            <idx><h sortby=\"historical\"><tag>historical</tag></h><see><tag>aside</tag></see></idx>\n            <idx><h sortby=\"biographical\"><tag>biographical</tag></h><see><tag>aside</tag></see></idx>\n            <idx><h>margin note</h><see><tag>aside</tag></see></idx>\n        Each of these allows an optional title and then a variety of tags such as <tag>p</tag>, <tag>figure</tag>,\n        and <tag>sidebyside</tag> (and many more).\n      </p>\n\n      <listing xml:id=\"basics-l-aside\">\n        <title>A sample <tag>aside</tag></title>\n        <idx><h sortby=\"aside\"><tag>aside</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h><tag>aside</tag></h></idx>\n<program>\n<code><xi:include href=\"aside.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-aside\"/> produces the aside <q>A Sample Aside</q>.\n        A less contrived example of an aside can be found in <xref ref=\"basics-s-latex-fig\"/>.\n      </p>\n\n      <xi:include href=\"aside.ptx\"/>\n    </section>\n\n    <section xml:id=\"basics-s-idx\">\n      <title>Index entries</title>\n      <idx><h>index entries</h></idx>\n      <idx><h>index entries</h><h><pretext/> code for</h></idx>\n      <idx sortby=\"idx\"><tag>idx</tag></idx>\n      <idx><h><em>see</em> reference in index</h><see><tag>see</tag></see></idx>\n      <p>\n        <idx><h sortby=\"h\"><tag>h</tag></h></idx>\n        <idx><h>subheadings (in index)</h></idx>\n        <idx><h><pretext/> code for</h><h>index entries</h></idx>\n        <idx><h><pretext/> code for</h><h><tag>idx</tag></h></idx>\n        <pretext/> does a good job of supporting index generation.\n        You still need to tag everything that should get an index entry by hand,\n        but then the index is produced automatically.\n        For a simple index entry for the word <q>group</q>,\n        you just use <c>&lt;idx&gt;group&lt;/idx&gt;</c>.\n        If you need an index entry involving subheadings,\n        such as <q>normal</q> under <q>subgroup</q>,\n        use <c>&lt;idx&gt;&lt;h&gt;subgroup&lt;/h&gt;&lt;h&gt;normal&lt;/h&gt;&lt;/idx&gt;</c>.\n      </p>\n\n      <p>\n        <idx sortby=\"see\"><tag>see</tag></idx>\n        <idx sortby=\"seealso\"><tag>seealso</tag></idx>\n        <idx><h>cross reference</h><h>in index</h></idx>\n        It is also possible to use <q>see</q>\n        and <q>see also</q> entries for indices.\n        For instance, in <xref ref=\"basics-ch-basic-formatting\"/>,\n        we use\n\t<cd>&lt;idx&gt;&lt;h&gt;font&lt;/h&gt;&lt;see&gt;formatting&lt;/see&gt;&lt;/idx&gt;</cd> to create an index entry for <q>font</q>\n        that instructs the reader to <q><em>see </em> formatting</q>.\n        A <q><em>see also</em></q> can be created using the <tag>seealso</tag> tag instead of <tag>see</tag>.\n      </p>\n\n      <p>\n        <idx sortby=\"sortby\"><attr>sortby</attr></idx>\n        <idx><h>sorted index entries</h></idx>\n        <idx><h>alphabetized index entries</h></idx>\n        If the index entry is in danger of being alphabetized incorrectly, you can specify how it should be sorted with the <attr>sortby</attr> attribute.\n        For example, to give an index entry to <m>\\Sigma</m> in the <q>s</q> section, you would use <c>&lt;idx sortby=\"sigma\"&gt;&lt;m&gt;\\Sigma&lt;/m&gt;&lt;/idx&gt;</c>.  Note that if the index entry has <tag>h</tag> tags, the <attr>sortby</attr> attribute should go there, not on <tag>idx</tag>.\n      </p>\n\n      <p>\n        If you generate <init>PDF</init> output from <latex/>,\n        the index is automatically generated.\n      </p>\n    </section>\n\n    <section>\n      <title>Quotations</title>\n      <idx>quotations</idx>\n      <idx><h>free standing quotation</h><see><tag>blockquote</tag></see></idx>\n\n      <p>\n        <idx><h>quotation mark</h><h>single</h></idx>\n        <idx><h>quotation mark</h><h>double</h></idx>\n        <idx><h>quotations</h><h>inline</h></idx>\n        <idx><h>quotations</h><h>long</h><see><tag>blockquote</tag></see></idx>\n        To ensure that quotation marks are properly typeset,\n        it is important to use the correct <pretext/> code.\n        To set something off in double quotes,\n        use the <tag>q</tag> tag around what should appear in quotes.\n        It will supply both the opening and closing quotation marks, as in:\n        <q>This is a quotation.</q> If you need single quotes,\n        use <tag>sq</tag>.\n        Because the content of <tag>q</tag> and <tag>sq</tag> is quite restricted,\n        you may find yourself needing to explicitly access the left and right single and double quotation marks.\n        They are, quite sensibly, <tag>lq</tag>, <tag>rq</tag>, <tag>lsq</tag>,\n        and <tag>rsq</tag>.\n      </p>\n\n      <p>\n        Longer quotes are best set off using <tag>blockquote</tag>\n      </p>\n\n      <listing xml:id=\"basics-l-blockquote\">\n        <title>A sample <tag>blockquote</tag></title>\n        <idx><h sortby=\"blockquote\"><tag>blockquote</tag></h><h><pretext/> code for</h></idx>\n        <idx><h><pretext/> code for</h><h><tag>blockquote</tag></h></idx>\n<program>\n<code><xi:include href=\"blockquote.ptx\" parse=\"text\"/></code>\n</program>\n      </listing>\n\n      <p>\n        The code in <xref ref=\"basics-l-blockquote\"/> produces the quotation below.\n      </p>\n\n      <xi:include href=\"blockquote.ptx\"/>\n    </section>\n  </chapter>\n\n  <chapter>\n    <title>Modular Source</title>\n    <p>\n      Once a project gets big,\n      you may find yourself wishing to break your source into multiple files.\n      This is well documented in\n      <xref ref=\"processing-modular\"/>, so we refer you there for more details.\n    </p>\n  </chapter>\n</part>\n"
  },
  {
    "path": "doc/guide/basics/blockquote.ptx",
    "content": "<blockquote>\n  <title>Lorem ipsum</title>\n  <p>\n    <q>Lorem ipsum dolor sit amet,\n    consectetur adipiscing elit,\n    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\n    Ut enim ad minim veniam,\n    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n    Excepteur sint occaecat cupidatat non proident,\n    sunt in culpa qui officia deserunt mollit anim id est laborum.</q>\n  </p>\n  <attribution>Anonymous</attribution>\n</blockquote>\n\n"
  },
  {
    "path": "doc/guide/basics/definition.ptx",
    "content": "<definition>\n\n  <notation>\n    <usage><m>\\binom{n}{k}</m></usage>\n    <description>binomial coefficient</description>\n  </notation>\n\n  <statement>\n    <p>\n      The <term>binomial coefficient</term>\n      <m>\\binom{n}{k}</m> is the number of <m>k</m>-element subsets of an <m>n</m>-element set.\n    </p>\n  </statement>\n</definition>\n\n"
  },
  {
    "path": "doc/guide/basics/example-simple.ptx",
    "content": "<example>\n  <title>Differentiating a polynomial</title>\n  <p>\n    The derivative of the function\n    <m>f(x) = 3x^5-7x+5</m> is <m>f'(x) = 15x^4-7</m>.\n  </p>\n</example>\n\n"
  },
  {
    "path": "doc/guide/basics/example-structured.ptx",
    "content": "<example>\n  <title>Differentiating a polynomial</title>\n  <statement>\n    <p>\n      Differentiate the function <m>f(x) = 3x^5-7x+5</m>.\n    </p>\n  </statement>\n  <answer>\n    <p>\n      <m>f'(x) = 15x^4-7</m>\n    </p>\n  </answer>\n  <solution>\n    <p>\n      We use the power, sum,\n      and constant multiple rules and find that the derivative is <m>f'(x) = 15x^4-7</m>.\n    </p>\n  </solution>\n</example>\n\n"
  },
  {
    "path": "doc/guide/basics/exercise-task.ptx",
    "content": "<exercise>\n  <title>A structured exercise</title>\n  <introduction>\n    <p>\n      Here is where we give the student the background information\n      required to start accomplishing tasks.\n    </p>\n  </introduction>\n\n  <task>\n    <statement>\n      <p>\n        The first step to do.\n      </p>\n    </statement>\n    <hint>\n      <p>\n        A little hint.\n      </p>\n    </hint>\n    <answer>\n      <p>\n        Just the answer.\n      </p>\n    </answer>\n    <solution>\n      <p>\n        All the glorious details about how to do the first step.\n      </p>\n    </solution>\n  </task>\n\n  <task>\n    <statement>\n      <p>\n        The second step to do.\n        We'll be lazy and just include an answer.\n      </p>\n    </statement>\n    <answer>\n      <p>\n        Just the answer.\n      </p>\n    </answer>\n  </task>\n\n  <conclusion>\n    <p>\n      A little wrap up.\n    </p>\n  </conclusion>\n\n</exercise>\n\n"
  },
  {
    "path": "doc/guide/basics/exercise.ptx",
    "content": "<exercise>\n  <statement>\n    <p>\n      <idx><h sortby=\"statement\"><tag>statement</tag></h><h sortby=\"of an exercise\">of an <tag>exercise</tag></h></idx>\n      <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"statement\"><tag>statement</tag></h></idx>\n      The <tag>statement</tag> is mandatory when any of\n      <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>\n      is included as a child of <tag>exercise</tag>,\n      otherwise it may be omitted.\n    </p>\n  </statement>\n  <hint>\n    <p>\n      <idx><h sortby=\"hint\"><tag>hint</tag></h><h sortby=\"of an exercise\">of an <tag>exercise</tag></h></idx>\n      <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"hint\"><tag>hint</tag></h></idx>\n      Optional.\n      Just an suggestion of what to try.\n    </p>\n  </hint>\n  <answer>\n    <p>\n      <idx><h sortby=\"answer\"><tag>answer</tag></h><h sortby=\"of an exercise\">of an <tag>exercise</tag></h></idx>\n      <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"answer\"><tag>answer</tag></h></idx>\n      Optional.\n      Just the <q>final answer</q>.\n    </p>\n  </answer>\n  <solution>\n    <p>\n      <idx><h sortby=\"solution\"><tag>solution</tag></h><h sortby=\"of an exercise\">of an <tag>exercise</tag></h></idx>\n      <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"solution\"><tag>solution</tag></h></idx>\n      Optional.\n      All the gory details.\n    </p>\n  </solution>\n</exercise>\n"
  },
  {
    "path": "doc/guide/basics/exercisegroup.ptx",
    "content": "<exercises xml:id=\"basics-s-sample-exercises\">\n  <exercisegroup>\n\n    <introduction>\n      <p>\n        Here's where you put the common instructions.\n      </p>\n    </introduction>\n\n    <exercise>\n      <statement>\n        <p>\n          First exercise.\n          <idx><h sortby=\"statement\"><tag>statement</tag></h><h sortby=\"of an exercise\">of an <tag>exercise</tag></h></idx>\n          <idx><h sortby=\"exercise\"><tag>exercise</tag></h><h sortby=\"statement\"><tag>statement</tag></h></idx>\n          You can add all the usual bells and whistles after,\n          but we'll keep it short here.\n          (The <tag>statement</tag> may be omitted if none of\n          <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>\n          are present as a child of the <tag>exercise</tag>.)\n        </p>\n      </statement>\n    </exercise>\n\n    <exercise>\n      <statement>\n        <p>\n          Second exercise.\n        </p>\n      </statement>\n      <hint>\n        <p>\n          The <tag>statement</tag> for this exercise is necessary because we\n          have included at least one of\n          <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>\n          (namely, <tag>hint</tag>).\n        </p>\n      </hint>\n    </exercise>\n\n    <exercise>\n      <p>\n        Third exercise.\n        (No <tag>statement</tag> necessary here because no\n        <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>.)\n      </p>\n    </exercise>\n\n  </exercisegroup>\n\n  <exercise>\n    <p>\n      This <tag>exercise</tag> is not inside the <tag>exercisegroup</tag>.\n    </p>\n  </exercise>\n\n</exercises>\n"
  },
  {
    "path": "doc/guide/basics/figure.ptx",
    "content": "<figure xml:id=\"fig-graph\">\n  <caption>A small graph (from <pubtitle>Applied\n  Combinatorics</pubtitle> by Keller and\n  Trotter)</caption>\n  <image source=\"small-graph\" width=\"20%\"/>\n</figure>\n\n"
  },
  {
    "path": "doc/guide/basics/image.ptx",
    "content": "<image source=\"small-graph\" width=\"20%\">\n    <description><p>A graph on five vertices. One of the vertices is isolated, while the other four form a path on four vertices.</p></description>\n</image>\n\n"
  },
  {
    "path": "doc/guide/basics/md-bare.ptx",
    "content": "<p>\n  <md>\n    \\frac{d}{dx} \\int_1^x \\frac{1}{t}\\, dt = \\frac{1}{x}\n  </md>\n  <md number=\"yes\">\n    \\int_a^b f(x)\\, dx = F(b) - F(a)\n  </md>\n</p>\n\n"
  },
  {
    "path": "doc/guide/basics/md.ptx",
    "content": "<p>\n  <md>\n    <mrow>x \\amp = r\\cos\\theta</mrow>\n    <mrow>y \\amp = r\\sin\\theta</mrow>\n  </md>\n</p>\n\n"
  },
  {
    "path": "doc/guide/basics/ol.ptx",
    "content": "<p>\n  <ol>\n    <li>First item.</li>\n\n    <li>\n      <p>\n        Second item,\n        showing can wrap content with <c>p</c>.\n      </p>\n    </li>\n  </ol>\n</p>\n\n"
  },
  {
    "path": "doc/guide/basics/p.ptx",
    "content": "<p>\n  This is a new <term>piece of terminology</term>.\n  Here is a word we have chosen to <em>emphasize</em>.\n  <alert>This is an alert to the reader!</alert> This is a piece of\n  <c>code typeset in a different font</c>.\n</p>\n\n"
  },
  {
    "path": "doc/guide/basics/porism.ptx",
    "content": "<algorithm>\n  <statement>\n    <p>\n      This is a short little ditty that follows immediately from the previous proof.\n    </p>\n  </statement>\n\n  <proof>\n    <p>\n      We'll still include a proof though.\n    </p>\n  </proof>\n</algorithm>\n\n"
  },
  {
    "path": "doc/guide/basics/project.ptx",
    "content": "<project>\n  <title>A structured project</title>\n  <introduction>\n    <p>\n      Here is where we describe what the reader will accomplish in the project.\n    </p>\n  </introduction>\n\n  <task>\n    <statement>\n      <p>\n        The first step to do.\n      </p>\n    </statement>\n    <hint>\n      <p>\n        A little hint.\n      </p>\n    </hint>\n    <answer>\n      <p>\n        Just the answer.\n      </p>\n    </answer>\n    <solution>\n      <p>\n        All the glorious details about how to do the first step.\n      </p>\n    </solution>\n  </task>\n\n  <task>\n    <statement>\n      <p>\n        The second step to do.\n        We'll be lazy and just include an answer.\n      </p>\n    </statement>\n    <answer>\n      <p>\n        Just the answer.\n      </p>\n    </answer>\n  </task>\n\n  <conclusion>\n    <p>\n      A little wrap up.\n    </p>\n  </conclusion>\n\n</project>\n\n"
  },
  {
    "path": "doc/guide/basics/reading-questions.ptx",
    "content": "<reading-questions xml:id=\"basics-reading-questions\">\n  <title>Check your understanding!</title>\n  <introduction>\n    <p>\n      Here is a spot to explain the purpose of these questions. It's\n      optional, like most introductions.\n    </p>\n  </introduction>\n\n  <exercise>\n    <statement>\n      <p>\n\tHere is a question.\n      </p>\n    </statement>\n    <hint>\n      <p>\n        A little hint.\n      </p>\n    </hint>\n    <answer>\n      <p>\n        Just the answer.\n      </p>\n    </answer>\n    <solution>\n      <p>\n        All the glorious details about an answer.\n      </p>\n    </solution>\n  </exercise>\n\n  <exercise>\n    <statement>\n      <p>\n\tA second comprehension question. We don't bother with answers\n\tor solutions.\n      </p>\n    </statement>\n  </exercise>\n\n  <conclusion>\n    <p>\n      A little wrap up, perhaps giving guidance or encouragement if\n      the student struggled with the questions. Optional like most\n      conclusions. \n    </p>\n  </conclusion>\n\n</reading-questions>\n\n"
  },
  {
    "path": "doc/guide/basics/remark.ptx",
    "content": "\n\n<remark>\n  <title>A little remark</title>\n  <p>\n    Remarks have restricted content,\n    but they can be used to call out lots of important things for your readers.\n  </p>\n</remark>\n\n"
  },
  {
    "path": "doc/guide/basics/sage.ptx",
    "content": "<sage>\n<input>\n2+2\n</input>\n<output>\n4\n</output>\n</sage>\n"
  },
  {
    "path": "doc/guide/basics/sageplot.ptx",
    "content": "<figure xml:id=\"fig-sage-cubic\">\n  <caption>A cubic plotted by SageMath on\n  <m>[-3,2]</m></caption>\n  <image xml:id=\"sageplot-cubic\" width=\"50%\">\n    <description><p>A cubic function on the interval\n    [-3,2]</p></description>\n\n<sageplot>\nf(x) = (x-1)*(x+1)*(x-2)\nplot(f, (x, -3, 2), color='blue', thickness=3)\n</sageplot>\n  </image>\n\n</figure>\n\n"
  },
  {
    "path": "doc/guide/basics/sbsgroup.ptx",
    "content": "<sbsgroup widths=\"25% 50%\" margins=\"5% 10%\">\n    <sidebyside>\n        <image source=\"small-graph\" />\n    <p>\n      A longer piece of text.\n      It goes on and on and on.\n      And on and on and on.\n      And eventually we will let it end,\n      but we want to show the width.\n    </p>\n  </sidebyside>\n\n  <sidebyside>\n    <p>\n      Another little snippet of text.\n      This time a bit longer so that it will wrap.\n    </p>\n\n    <p>\n      We're going to keep this paragraph shorter.\n    </p>\n  </sidebyside>\n  <sidebyside widths=\"75% 10%\">\n    <p>Here is some text in a row where we have overridden the widths\n    specified above. Isn't this grand?</p>\n    <p>Super duper narrow. Look at me!</p>\n  </sidebyside>\n</sbsgroup>\n\n"
  },
  {
    "path": "doc/guide/basics/section-sub.ptx",
    "content": "<section>\n  <title>Mandatory</title>\n  <introduction>\n    <p>\n      Introductory text.\n      (Optional.)\n    </p>\n  </introduction>\n\n  <subsection>\n    <title>Mandatory</title>\n    <p>\n      Subsection content.\n    </p>\n  </subsection>\n\n  <subsection>\n    <title>Mandatory</title>\n    <p>\n      Subsection content.\n    </p>\n  </subsection>\n\n  <conclusion>\n    <p>\n      Concluding text.\n      (Optional.)\n    </p>\n  </conclusion>\n</section>\n\n"
  },
  {
    "path": "doc/guide/basics/section.ptx",
    "content": "<section>\n  <title>Mandatory</title>\n  <p>\n    First paragraph.\n  </p>\n\n  <p>\n    Second paragraph.\n  </p>\n</section>\n\n"
  },
  {
    "path": "doc/guide/basics/sidebyside.ptx",
    "content": "<sidebyside widths=\"25% 25%\" valign=\"middle\">\n  <figure>\n    <caption>Small graph with the caption only associated to the\n    image. </caption>\n    <image source=\"small-graph\" />\n  </figure>\n\n  <p>\n    We can put a paragraph here.\n    Yes, a paragraph.\n    Isn't this the most exciting paragraph that you've ever seen?\n    It goes on and on and on and on and on and on.\n    We want to put enough here to make it wrap, really, is all.\n    Let's hope that this is enough.\n  </p>\n</sidebyside>\n\n"
  },
  {
    "path": "doc/guide/basics/sidebyside2.ptx",
    "content": "<figure>\n  <caption>A graphic next to a paragraph of\n  text with the caption assigned to both.</caption>\n  <sidebyside widths=\"25% 35%\" margins=\"0% 0%\"\n    valigns=\"bottom top\">\n    <image source=\"small-graph\" />\n\n    <p>\n      We can put a paragraph here.\n      Yes, a paragraph.\n      Isn't this the most exciting paragraph that you've ever seen?\n      It goes on and on and on and on and on and on.\n      We want to put enough here to make it wrap, really, is all.\n      Let's hope that this is enough.\n    </p>\n  </sidebyside>\n\n</figure>\n\n"
  },
  {
    "path": "doc/guide/basics/table.ptx",
    "content": "<table>\n  <title>A simple table</title>\n  <tabular halign=\"center\">\n    <row header=\"yes\" bottom=\"minor\" >\n      <cell>Variable <m>x</m></cell>\n      <cell>Variable <m>y</m></cell>\n      <cell>Conjunction <m>x\\wedge y</m></cell>\n      <cell>Disjunction <m>x\\vee y</m></cell>\n    </row>\n    <row>\n      <cell>T</cell>\n      <cell>T</cell>\n      <cell>T</cell>\n      <cell>T</cell>\n    </row>\n    <row>\n      <cell>T</cell>\n      <cell>F</cell>\n      <cell>F</cell>\n      <cell>T</cell>\n    </row>\n    <row>\n      <cell>F</cell>\n      <cell>T</cell>\n      <cell>F</cell>\n      <cell>T</cell>\n    </row>\n    <row>\n      <cell>F</cell>\n      <cell>F</cell>\n      <cell>F</cell>\n      <cell>F</cell>\n    </row>\n  </tabular>\n\n</table>\n\n"
  },
  {
    "path": "doc/guide/basics/theorem.ptx",
    "content": "<theorem>\n    <title>Optional</title>\n    <creator>I. Newton</creator>\n  <statement>\n    <p>\n      Here's the statement of the theorem.\n    </p>\n  </statement>\n\n  <proof>\n    <p>\n      You don't actually need a proof,\n      but put it inside the <c>theorem</c>.\n      You can actually put another <c>proof</c> right after this one if you want to.\n    </p>\n  </proof>\n</theorem>\n\n"
  },
  {
    "path": "doc/guide/basics/tikz.ptx",
    "content": "<figure xml:id=\"fig-tikz\">\n  <caption>A figure generated with TikZ in\n  <latex /></caption>\n  <image width=\"15%\" xml:id=\"poset\">\n\n<latex-image >\n\\begin{tikzpicture}\n\\draw (0,0) -- (0,1);\n\\draw (1,0) -- (1,1) -- (1,2) -- (1,3);\n\\draw (0,0) -- (1,2);\n\\draw (0,1) -- (1,0);\n\\draw [fill] (0,0) circle [radius=0.1];\n\\draw [fill] (0,1) circle [radius=0.1];\n\\draw [fill] (1,0) circle [radius=0.1];\n\\draw [fill] (1,1) circle [radius=0.1];\n\\draw [fill] (1,2) circle [radius=0.1];\n\\draw [fill] (1,3) circle [radius=0.1];\n\\node [left] at (0,0) {$x$};\n\\node [left] at (0,1) {$b$};\n\\node [right] at (1,0) {$a$};\n\\node [right] at (1,1) {$y$};\n\\node [right] at (1,2) {$c$};\n\\node [right] at (1,3) {$d$};\n\\end{tikzpicture}\n</latex-image>\n  </image>\n\n</figure>\n\n"
  },
  {
    "path": "doc/guide/basics/ul.ptx",
    "content": "<p>\n  <ul>\n    <li>First item.</li>\n\n    <li>Another item.</li>\n  </ul>\n</p>\n\n"
  },
  {
    "path": "doc/guide/basics/worksheet.ptx",
    "content": "<worksheet xml:id=\"basics-sample-worksheet\">\n  <title>A Skeletal Worksheet</title>\n  <objectives>\n    <ul>\n      <li>Something really cool</li>\n      <li>A less important thing you'll learn</li>\n    </ul>\n  </objectives>\n  <introduction>\n    <p>It can be helpful to say what the point of the worksheet is.</p>\n  </introduction>\n\n  <page>\n    <exercise workspace=\"4in\">\n      <statement>\n        <p>Here's a first exercise in this worksheet.\n\tNotice how we set the workspace in inches.</p>\n      </statement>\n    </exercise>\n\n    <exercise workspace=\"1cm\">\n      <introduction>\n\t<p>A second exercise, this time structured with tasks. The\n\tworkspace specification is assigned to each task. </p>\n      </introduction>\n      <task>\n\t<statement>\n\t  <p>Here's the first task.</p>\n\t</statement>\n\t<hint>\n\t  <p>Why not give a hint here, we're nice authors, right?</p>\n\t</hint>\n      </task>\n      <task>\n\t<statement>\n\t  <p>The second task. No hint this time!</p>\n\t</statement>\n      </task>\n    </exercise>\n  </page>\n\n  <page>\n    <p>OK, we're now onto a second page, one of the few times you can\n    force this.</p>\n    <figure>\n      <caption>Just a little figure</caption>\n      <image source=\"cross-square.png\" width=\"50%\" />\n    </figure>\n    <sidebyside margins=\"0%\" widths=\"30% 60%\" valign=\"top\">\n      <exercise workspace=\"4.5in\">\n        <statement>\n\t  <p>Only inside a worksheet can you put an exercise in a\n\t  sidebyside!</p>\n        </statement>\n\t<answer>\n\t  <p>Sure, you can have an answer here.</p>\n\t</answer>\n      </exercise>\n      <exercise workspace=\"2in\">\n        <statement>\n          <p>Here's the second column. We also could have just put a\n\t  figure here if we needed for layout.</p>\n        </statement>\n      </exercise>\n    </sidebyside>\n    <exercise workspace=\"2.54cm\">\n      <p>One more exercise to do.</p>\n    </exercise>\n  </page>\n\n  <conclusion>\n    <title>Final thoughts</title>\n    <p>Put something here because you might run out of time.</p>\n  </conclusion>\n</worksheet>\n"
  },
  {
    "path": "doc/guide/developer/code-style.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--        PreTeXt Developer's Guide                         -->\n<!--                                                          -->\n<!-- Copyright (C) 2019-2023                                  -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan              -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"code-style\">\n    <title>Code Style</title>\n\n    <section xml:id=\"code-style-indentation\">\n        <title>Indentation</title>\n\n        <p>Indentation of XSL, and indentation of Python, is four spaces per level of indentation.  Please do not be stubborn and suggest that you should be allowed to behave differently.  With many contributors it is more important that every developer does it the same, than for one developer to suggest that their personal preference is better.  Oh, and never tabs (see <xref ref=\"git-tabs\"/>).</p>\n    </section>\n\n    <section xml:id=\"code-style-whitespace\">\n        <title>Whitespace</title>\n\n        <p>When a change has a lot of whitespace changes, or trivial re-formatting, please isolate those on a separate commit.  Then suggest to the committer that the full 40-character hash of the commit (once finalized) be added to the <c>.git-blame-ignore-revs</c> file to keep <c>git blame</c> functional.  To learn more, see <url href=\"https://akrabat.com/ignoring-revisions-with-git-blame/\">Rob Allen's post</url>, and <xref ref=\"git-blame\"/>.</p>\n    </section>\n</chapter>\n\n\n"
  },
  {
    "path": "doc/guide/developer/coding.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--        PreTeXt Developer's Guide                         -->\n<!--                                                          -->\n<!-- Copyright (C) 2019-2019                                  -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan              -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"coding\">\n    <title>Coding Conventions</title>\n\n    <section xml:id=\"developer-coding\">\n        <title>Author and Publisher Input</title>\n\n        <p>When an author or publisher provides input to regulate some change in how their content is realized follow these procedures.<ul>\n            <li>String parameters (which are discouraged anyway) should default to an empty string initially when defined.  For technical reasons, this makes them easier to deprecate later.</li>\n            <li>Input should produce a global variable, whose possible values are known exactly.  This variable should be set in one location, with other similar variables, and then it should be used later.  There should be no need to further error-check this variable later.  In other words, do not mix error-checking input and employment of that input<mdash/>rigorously separate them (like separating content from presentation!).</li>\n            <li>\n                <p>Use a <tag>xsl:choose</tag> inside a <tag>xsl:variable</tag> that first parrots legitimate input.   Next check for attempts to set the input to something <q>invalid</q>.  Use <tag>xsl:message</tag> to report:<ul>\n                    <li>the name of the input being checked</li>\n                    <li>a description of valid values</li>\n                    <li><q>, not</q> followed by the invalid value supplied (via <tage>xsl:value-of</tage> typically)</li>\n                    <li><q>Using the default value</q>, followed by that value</li>\n                </ul></p>\n            </li>\n            <li>Then don't forget to actually set the default value, either due to no input, or erroneous input.</li>\n            <li>Done right, this variable will usually meet the requirements above.</li>\n            <li>If input is binary, have the variable just described take on one of two values.  Only.  Then construct a new boolean variable based on these two strings.  Name the variable with a <c>b-</c> prefix.  This will be more reliable to use later.</li>\n        </ul></p>\n    </section>\n\n    <section>\n        <title>Run-Time Messages</title>\n\n        <p><init>XSL</init> provides a <tag>xsl:message</tag> element, which writes to the console (the <c>stderr</c> stream really, I believe).  This makes it useful for debugging (like a <c>print</c> statement in another language).  A mix of text, <tage>xsl:apply-templates</tage>, and <tage>xsl:value-of</tage> works well.  Include delimiters (colons perhaps) so you don't get fooled by unexpected empty strings that are part of your problem anyway.</p>\n\n        <p>But our point here is to discuss messages broadcast to an author or publisher.<ul>\n            <li>Use <tag>xsl:message</tag> to communicate with authors and publishers as described above in <xref ref=\"developer-coding\"/> while negotiating their input used to control their content.</li>\n            <li>Otherwise, during actual processing, use <tag>xsl:message</tag> <em>only</em> when there is the potential for a real disaster in the output, such as a <latex/> file that will not compile at all, meaning more than simple recoverable errors.</li>\n            <li>Do not duplicate parent-child relationships that are expressed in the schema.  There are good validation tools for that job.</li>\n            <li>Consider using our auxiliary <q>validation-plus</q> stylesheet for detecting more complicated relationships that the schema cannot, or does not, detect.</li>\n            <li>See the advice above (<xref ref=\"developer-coding\"/>) about checking author and publisher input and providing a <q>safe</q> result so there is no danger of creating broken output and thus less temptation to use <tag>xsl:message</tag> at all.</li>\n            <li>Reserve adding <c>terminate=\"yes\"</c> for extreme situations where there is absolutely no hope of recovery.  This should be a last resort.</li>\n            <li>Place <c>terminate=\"no\"</c> (the default) in your code only when some future removal of deprecated code means this message will transition to <c>terminate=\"yes\"</c>.  Include clear code comments describing the situation.</li>\n            <li><p>Prefix messages with<ul>\n                <li><c>PTX:WARNING:</c> for advisories</li>\n                <li><c>PTX:ERROR:</c> for recoverable problems</li>\n                <li><c>PTX:FATAL:</c> for case when processing terminates</li>\n                <li><c>PTX:BUG:</c> for situations that are unexpected (and problematic)</li>\n            </ul>and align the start of messages in column 14 (so they all line up).</p></li>\n            <li>There is a template with <c>mode=\"location-report\"</c> you can use to provide standardized assistance for an author or publisher looking for the place to correct a problem (in lieu of line numbers, which are not available).</li>\n        </ul></p>\n    </section>\n\n    <section>\n        <title>Locating Other Nodes</title>\n\n        <p>Should you need to locate a node some other place in a document, via some sort of a reference by an identifier, be sure to use the interface provided by the  <c>id-lookup-by-name</c> named template.  It accepts a string (the value of the identifier in the reference) and returns an <c>xml:id</c> value that can be used with the <init>XSL</init> <c>id()</c> function to return the desired node (as a node-set).  Use a pattern such as the following, paying particular attention to the name of the variable supplied to the <c>id()</c> function.</p>\n\n        <pre><![CDATA[\n            <xsl:variable name=\"target-id\">\n                <xsl:call-template name=\"id-lookup-by-name\">\n                    <xsl:with-param name=\"name\" select=\"normalize-space(@ref)\"/>\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:variable name=\"target\" select=\"id($target-id)\" />]]>\n        </pre>\n    </section>\n\n    <section>\n        <title>Documentation</title>\n\n        <p>Careful documentation must accompany new features.  You <em>cannot</em> leave this task for somebody else to clean-up after you, and writing the documentation is likely to cause you to revisit your code to introduce small improvements or squash bugs.</p>\n\n        <p>New <pretext/> language elements are described briefly in the overview at <xref ref=\"overview\"/>.  This should make new authors <em>aware</em> of what elements are available, and maybe have enough instruction to get them started.  Then the topics at <xref ref=\"topics\"/> should have full details.  These two sections should link back-and-forth to each other.  Examples are welcome, but should be short and succinct.  Elaborate examples should be contributed to the <pubtitle>Showcase Article</pubtitle>.</p>\n\n        <p>New options for publishers should be detailed <em>very tersely</em> in the reference section, <xref ref=\"publication-file-reference\"/>.  This section is organized lexicographically with respect to the XPath expressions describing the entries of the publication file.  Then a more careful description, with examples if necessary, should appear in one of the chapters of the publisher part (<xref ref=\"part-publisher\"/>) according to which aspects of a conversion are affected.  These two sections should link back-and-forth to each other.</p>\n\n        <p>Here are some conventions to follow, which will help authors and publishers have a better experience wandering through the Guide.  Please observe them in your own contributions.<ul>\n            <li>\n                <title>The Guide</title>\n                <p>We usually just say <q>the Guide</q> or <q>in this Guide</q>, with no additional formatting, and just the capital <q>G</q> indicative of a formal title.</p>\n            </li>\n            <li>\n                <title>Modularization</title>\n                <p>When an author's source is modularized (<xref ref=\"processing-modular\"/>) we refer to the outermost, or main, file as the <q>top-level</q> file.  This is the one file that has the overall <tag>pretext</tag> element in it.</p>\n            </li>\n            <li>\n                <title>Git Branches</title>\n                <p>Reference the primary branch of a git repository as <c>main</c>.</p>\n            </li>\n        </ul></p>\n    </section>\n</chapter>\n\n\n"
  },
  {
    "path": "doc/guide/developer/debugging.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--        PreTeXt Developer's Guide                         -->\n<!--                                                          -->\n<!-- Copyright (C) 2019-2019                                  -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan              -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"debugging\">\n    <title>Debugging</title>\n\n    <section xml:id=\"developer-debugging-parameters\">\n        <title>Debugging Parameters</title>\n\n        <p>There are a variety of command-line string parameters (<xref ref=\"publisher-string-parameters\"/>) for use by developers testing new code or diagnosing problems.  As of 2021-02-14 we are collecting their definitions in the <c>pretext-common.xsl</c> stylesheet early on.  Search on <c>debug.</c> to find them.  Elsewhere the names might be a bit more variable until we get them all rounded up in one place, but usually the name contains <c>debug</c> somewhere.  No documentation here, these are not documented (or stable), and only intended for authors as a stop-gap measure before being replaced in function.  Read the code for more, while some more permanent versions will be mentioned in this chapter.</p>\n    </section>\n\n    <section xml:id=\"developer-testing-procedures\">\n        <title>Testing Procedures</title>\n\n        <p>When developing a new feature or trying to fix a bug, it can be helpful to test a <q>before</q> version of some output format versus a current or <q>after</q> version.  Sometimes you can lay the groundwork for a new feature by adding some code which has zero effect, but leaves a place where a small addition enables the feature.  Then you can be somewhat confident your additions will also not ruin existing (desirable) behavior.  Here are some suggestions for doing this with <pretext/>.<ul>\n            <li>Make a <q>before</q> version before you start.  Or do a <c>git stash save</c> to put away uncommitted changes and then make that initial version.  Use <c>git stash pop</c> to bring the changes back.  You can also temporarily <c>git checkout 1234abcd</c> some commit, and <c>git checkout topic-branch</c> to come back.  You can have <c>sample-article.tex.old</c> around to compare with a new and constantly updated <c>sample-article.tex</c>.  I routinely remove <c>*.tex</c> between tests, so the <c>*.tex.old</c> version is named so it does not get deleted.</li>\n            <li>The <c>sample-article.xml</c> document is meant to have one of most everything and lots of extreme examples.  If your changes affect chapters, and other aspects of a book, then the <c>sample-book.xml</c> document can also be used.</li>\n            <li>Be careful about adding new content since you can get a lot of automatically-generated id's that change, making it hard to see real changes.  By managing location (early in a list of commits) and building at specific commits you can test new code that needs new sample uses.</li>\n            <li><latex/> output is one big file.  Use the <c>debug.chunk</c> string parameter, set to <c>0</c> to get one big <init>HTML</init> file.</li>\n            <li>Use the <c>debug.datedfiles</c> string parameter set to <c>no</c> so that file headers (knowls!) do not all have spurious changes.</li>\n            <li><c>git diff sample-article.tex.old sample-article.tex</c> works well, and oftentimes it works even better with <c>--word-diff</c>.  You really want your test output off in some scratch directory.  If not, be careful, and you may need the <c>--no-index</c> option so you are not fooled by no apparent changes. (Those options need a double-dash to lead, they look like one right now.)</li>\n            <li>Having <c>&lt;today/></c> and <c>&lt;timeofday/></c> in your test document you can be sure there is always at least one or two changes, and prevent some confusion due to mistakes.</li>\n            <li>When testing <init>HTML</init> output, especially for chunking or knowls, putting two versions in different parallel directories will allow git to compare the entire directories with <c>git diff /tmp/before /tmp/after</c>.</li>\n            <li>Every number is hard-coded in <init>HTML</init> output, so changes to numbering are best tested there.  The <latex/> conversion may react differently (a mix of hard-coded and automatically-generated numbers), so should also be tested.</li>\n        </ul>It can be very surprising how many subtle bugs can be revealed by very small, or very few, changes discovered by these procedures.</p>\n    </section>\n</chapter>\n\n\n"
  },
  {
    "path": "doc/guide/developer/git.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--        PreTeXt Developer's Guide                         -->\n<!--                                                          -->\n<!-- Copyright (C) 2019-2019                                  -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan              -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"git-developer\" label=\"git-developer\">\n    <title>Git</title>\n\n    <section>\n        <title>Getting Started</title>\n\n        <p>Todo: preliminary list as of 2019-04-26:<ul>\n            <li>Install git.</li>\n            <li>Learn to use git at command-line, front-ends will ruin your life.</li>\n            <li>GitHub is not git, but we use it to advantage.  Explain the difference.</li>\n            <li>Point to Git for Authors.</li>\n        </ul></p>\n    </section>\n\n    <section>\n        <title>Commit Messages</title>\n\n        <p>Commit messages are a critical tool when locating and reviewing changes to the project.  In a way, they are like an index of a book.  We take great care to have useful and concise commit messages, and to this end, we are likely to edit yours.  But you can help by doing some simple things, so we do not have to.<ul>\n            <li>Begin with a capital letter.</li>\n            <li>Do not end with a period.</li>\n            <li>Do not repeat information available by examining the commit itself.  Bad: <q>Changes in foo.xsl</q></li>\n            <li>No longer than roughly 60 to 70 characters, and never onto multiple lines.</li>\n            <li>You can find lots of advice about phrasing commit messages with action words, or in ways that describe how the code will be different.  These make for good reading, but we do not adhere slavishly to any one formulation.</li>\n            <li>For whatever reason, we isolate and prefix messages with the name of a relevant conversion such as <q>HTML:<nbsp/></q>, or other areas, such as <q>Guide:<nbsp/></q> or <q>Schema:<nbsp/></q>.  Scroll the list of commit messages to see the range.</li>\n            <li>For pull requests we will append <q><nbsp/>(PR #nnnn)</q>.  (This provides a permanent record somewhat independent of GitHub, and GitHub will utilize this number.)  </li>\n        </ul></p>\n    </section>\n\n    <section xml:id=\"git-whitespace\">\n        <title>Whitespace</title>\n        <idx><h>whitespace</h><h>in code</h></idx>\n\n        <p><term>Whitespace</term> refers to those pesky characters that you really cannot see visually, but which are definitely (different) bytes in your source code.  Spaces, non-breaking spaces, tabs, newlines (carriage return?  Enter?).  Here is the problem.  Somebody else left a blank space at the end of a line mid-sentence, perhaps because they manually added a newline there to make a line shorter and more readable (especially if it is code).  Now you open that file with your editor, which is set to strip trailing whitespace from lines.  Maybe you make an edit, realize it was not what you needed and remove the edit.  The rest of your work is off in some other file.  But now the original file has a single one-character deletion, and that will be carried forever in the git history as a change you made to the work of the previous manual-line-breaker.</p>\n\n        <p>Solution: the original space introduced at the end of the line in mid-sentence should never have been part of a commit, and should never have been merged in the first place.  The fault is really not yours, and having your editor strip trailing whitespace is probably a good thing.  But if you find these sorts of mistakes, they should be on a commit of their own, clearly labeled as fixing whitespace (see <xref ref=\"code-style-whitespace\"/>).  But do not be the person who introduces the spurious whitespace in the first place!  We will likely ask you to clean it up before your pull request is merged.</p>\n\n        <p>Whether or not a newline is the last character of a file seems to be a common <q>correction</q> that editors make routinely.  Let us say that a newline should be there, so feel free to add such newlines (on its own commit).</p>\n\n        <p>When I do <c>git diff</c> at the command-line, extraneous whitespace (trailing characters, blank lines that are really not at all blank) are shown as bright red rectangles.  Can't miss 'em.  Find a similar tool that works for you.  Or <c>grep</c> with a pattern like <c> $</c> (that's a space and a dollar-sign.)  And learn to configure your editor to do the right thing routinely (and no more).</p>\n    </section>\n\n    <section xml:id=\"git-tabs\">\n        <title>Tabs</title>\n        <idx><h>whitespace</h><h>tabs</h></idx>\n\n        <p>A <term>tab</term> is the worst sort of whitespace!  (See <xref ref=\"git-whitespace\"/>.)  There should never ever be any tabs present in any contribution to <pretext/>.  The problem: the <q>width</q> of a tab is different for each person who opens a file.  Two spaces, four spaces, eight spaces, you name it.  So if indentation is accomplished with a mix of tabs and spaces, there is a good chance it might look right to you, but looks wrong to many other developers.  I hit the tab key on my keyboard all the time.  But my editor is set to supply <em>four spaces</em> as a result.  See if your editor will behave similarly.</p>\n    </section>\n\n    <section label=\"git-review-pr\">\n        <title>Reviewing Pull Requests</title>\n\n        <p>A <term>pull request</term> (<init>PR</init>) is a way that developers suggest and contribute new code to a git repository.  The <em>next</em> section describes how to make one, and might be interesting reading after you finish <em>this</em> section (but not now!).  Here we will describe how you can test out a pull request, in order to help with evaluation, or if you are simply curious.</p>\n\n        <p>You will need a <term>clone</term> of the repository where the pull request resides.  If you have a fork (see next section) that is fine, too.  We will illustrate with a real <init>PR</init>, <url href=\"https://github.com/PreTeXtBook/pretext/pull/2096\">GitHub #2029</url>.\n            <ol>\n                <li><p>At a command-line, with a working directory at the top-level of the <c>pretext</c> repository, issue<cd>\n                    <cline>git fetch origin pull/2096/head:andrew-pointer-css-2096</cline></cd>\n                    <ul>\n                        <li><c>git</c> is the command-line git executable.</li>\n                        <li><c>fetch</c> means we are going to grab a collection of commits from somewhere.  This is not a <c>pull</c> and that will be incorrect here right now.</li>\n                        <li><c>origin</c> is the somewhere, a repository that has the commits we want.  This name translates to the repository hosted on GitHub, which is where you obtained your clone or fork.  This is known as a <term>remote</term>, and you can have several with different names that you have assigned to them.  <c>git remote -vv</c> will list all your remotes for you.</li>\n                        <li><c>pull/2096/head</c> locates <em>all</em> the commits for PR #2096.  Don't let the use of <c>pull</c> fool you.</li>\n                        <li><c>andrew-pointer-css-2096</c> is a pointer, internal to my clone, that helps me identify the <init>PR</init>, especially when I have many in play at the same time.  In git it is known as a <term>branch</term>.  Andrew wrote it, I have a reminder of the topic, and I find it helpful to have the actual identifying number around.  You are free to do anything you like here for a name of the branch<mdash/>whatever works for you.</li>\n                    </ul></p>\n                </li>\n\n                <li>Now you have one, or more, commits on your system, and a name that helps you locate them as a branch.  Presuming you are on your main branch (<c>master</c> here, but possibly <c>main</c>) you will want to switch to the branch with these new commits as a putative change to the code for you to experiment with.  Easy:\n                    <cd>git switch andrew-pointer-css-2096</cd>\n                </li>\n\n                <li>Now you will want to use the <c>pretext/pretext</c> script (<xref ref=\"pretext-script\"/>) to produce whatever output you want to test or examine.  The point is, you now have the proposed modifications available to you for use.</li>\n\n                <li>Optional.  The <init>PR</init> could be several days old, or maybe it has been weeks or months.  So it may be a branch off the state of the code from the past, and the code has moved on and evolved (through accepted pull requests).  While you have <c>andrew-pointer-css-2096</c> as your active branch you can go:\n                    <cd>git rebase master</cd>\n                This will move the branch to be a deviation from the most recent version of the code.  (I say to myself as I type, <q>git rebase ONTO master.</q>)  It is possible this is not what the original author of the <init>PR</init> intended, but for <pretext/> this is rarely an issue.  It is also possible that the movement creates contradictions (<term>conflicts</term>).  Don't panic if this happens, just go:\n                    <cd>git rebase --abort</cd>\n                and it will be like it never happened.</li>\n\n                <li>When you are finished, return to the <c>master</c> branch with\n                    <cd>git switch master</cd>\n                and then delete the branch with\n                    <cd>git branch -d andrew-pointer-css-2096</cd>\n                Aah, git will not let you do that.  It is not clear if this might be important work and you really should not be deleting it.  git cannot tell if this is something original you just created or something that is just a copy of what is safe and sound on GitHub.  So, go:\n                    <cd>git branch -D andrew-pointer-css-2096</cd>\n                using the semi-dangerous <c>-D</c> flag.  Now your clone is back to its original state.</li>\n            </ol>\n        </p>\n\n        <p>This is the procedure described on <url href=\"https://stackoverflow.com/a/30584951\">StackOverflow: How can I check out a GitHub pull request with git?</url>.  On an open pull request within GitHub you can find <q>command line instructions.</q>  These suggest making a (empty) branch in your repository, then doing a pull <em>from the fork belonging to the author of the pull request</em>.  This means the second step will be very different every time since it uses the fork and also a branch name devised by the pull request author.  Functionally equivalent, but we find it more complicated.</p>\n\n        <p>When you learn more about the use of git you will discover there are many additional things you can do to modify and experiment with pull requests.  Here we are concentrating on the first step: getting a pull request onto your system so you can employ it.</p>\n    </section>\n\n    <section label=\"git-create-pr\">\n        <title>Creating Pull Requests</title>\n\n        <p>Contributions to the code repository are accomplished with a <term>pull request</term><idx>pull request</idx>.  The short version is that you have a copy of the repository and you make a collection of changes on your copy.  Then you make a request to have your changes <q>pulled into</q> the official (main, canonical) repository.  A pull request is a concept independent of GitHub, but one of GitHub's advantages is that it makes a pull request very easy to create and manage.</p>\n\n        <paragraphs>\n            <title>One-Time Initial Setup</title>\n\n            <p><ol>\n                <li>Make an account on <url href=\"https://github.com/\" visual=\"github.com\">GitHub</url> if you do not have one already.  A username that bears some correspondence to your real name or favorite email name is helpful.</li>\n\n                <li>Log into your (new) account.</li>\n\n                <li>Go to the official repository for <pretext/>. Find a button labeled <c>Fork</c>, roughly in the upper-right corner.  Click on it.  This will make a copy (a <term>fork</term>)<idx>fork</idx> of the official repository in your GitHub account.  This repository is called a fork since you are going to make improvements there and your version will diverge from the official version.  The fork will <q>know</q> where it came from.</li>\n\n                <li>Install a command-line version of Git on your local computer.  Heed the advice above about using front-ends.</li>\n\n                <li>\n                    <p>You are now going to make a local copy of your fork.  Think of it as a mirror<mdash/>you will do your best to keep the copy and the fork in-sync.  Git calls this a <term>clone</term><idx>clone</idx>.  In your fork (i.e. in your account, find a green button partway down the right side.  Clicking on it will bring up a textbox with a <init>URL</init> you can copy.  Now at the command-line, execute something similar to<cd>\n                        <cline>git clone https://github.com/mjsmith/pretext.git</cline>\n                    </cd>Your clone will also <q>know</q> where it came from.</p>\n                </li>\n\n                <li>\n                    <p>That finishes setup.  You can check that all is well by running<cd>\n                        <cline>git remote -vv</cline>\n                    </cd>and the response should be something like<cd>\n                        <cline>origin      https://github.com/mjsmith/pretext.git (fetch)</cline>\n                        <cline>origin      https://github.com/mjsmith/pretext.git (push)</cline>\n                        <cline>upstream    https://github.com/PreTeXtBook/pretext.git (fetch)</cline>\n                        <cline>upstream    https://github.com/PreTeXtBook/pretext.git (push)</cline>\n                    </cd><c>origin</c> is an alias for the location of the repository you cloned.  And <c>upstream</c> is an alias the fork uses to know the location of the official repository.</p>\n                </li>\n            </ol></p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Preparing Your Changes</title>\n\n            <p>The following all happens on your local computer, using your clone, at the command-line.<ol>\n                <li>\n                    <p>Create a <term>branch</term> for your work, and switch into it.<cd>\n                        <cline>git checkout -b my-big-improvement</cline>\n                    </cd>The name you choose will not ever be part of the official repository, but it will be part of the record on GitHub.  So you do not have to be too careful, but it should be informative.</p>\n                </li>\n\n                <li>Use a text editor to make changes to existing files, or to create and populate new ones.  As you save the affected files, you can type<cd>\n                    <cline>git diff</cline>\n                </cd>to see the changes to existing files.  See the rest of this guide for particulars about the code.</li>\n\n                <li>\n                    <p>When finished, you will package up your changes as a <term>commit</term>, the fundamental unit of a git repository.  Throughout this process (and at any other time), you can type<cd>\n                        <cline>git status</cline>\n                    </cd>to see how your repository is changing.</p>\n\n                    <p>If you have created new files, you need to stage them.  You can see these files' status changing if you run <c>git status</c> before and after.  To stage a new file,<cd>\n                        <cline>git add xsl/pretext-esoteric-format.xsl</cline>\n                    </cd></p>\n\n                    <p>You do exactly the same thing for existing files you have changed.  Run <c>git status</c> before and after.<cd>\n                        <cline>git add xsl/pretext-common.xsl xsl/pretext-latex.xsl</cline>\n                    </cd></p>\n\n                    <p>Running <c>git status</c> should now show that all affected files (changed, new) are now in the staging area, and no files with changes are left behind.  You can preview the commit with<cd>\n                        <cline>git diff --cached</cline>\n                    </cd>If you need to edit some more, go ahead, and be sure to <c>add</c> your new changes into the staging area.  Now you are ready to make your commit.<cd>\n                        <cline>git commit -m \"Create a new conversion to an esoteric format\"</cline>\n                    </cd></p>\n\n                    <p>Now <c>git status</c> should show something of a clean slate.  You can also run<cd>\n                        <cline>git show-branch</cline>\n                    </cd>to get a pictorial version of your branch.</p>\n                </li>\n            </ol></p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Creating the Pull Request</title>\n\n            <p>Now you will communicate your changes (on a branch on your local computer) to GitHub as a request for incorporation into the official repository.<ol>\n                <li>\n                    <p>First, <term>push</term> your branch to your fork on GitHub.  Recall that this repository is known as <c>origin</c>.  On your local computer, at the command-line,<cd>\n                        <cline>git push origin my-big-improvement</cline>\n                    </cd></p>\n                </li>\n\n                <li>\n                    <p>Now move to your web browser and your fork on GitHub, which now has a copy of the <c>my-big-improvement</c> branch.  You should see a prominent message about your new branch, and a green button labeled <c>Compare &amp; pull request</c>.  Click on it.</p>\n                </li>\n\n                <li>\n                    <p>Now you have a screen titled <q>Open a pull request</q>, where you can describe the purpose of the new code.  Then click on the green button labeled <c>Create pull request</c>.</p>\n\n                    <p>That's it.  The developers responsible for approving pull requests will be notified automatically and receive your code in a way they can test and review it in their own forks/clones of the repositories.  You can see the pull request in action at the appropriate area of the official repository.  Pretty slick.</p>\n                </li>\n            </ol></p>\n        </paragraphs>\n\n        <paragraphs xml:id=\"pull-request-verification\">\n            <title>Pull Request Verification</title>\n\n            <p>It is often advisable to add an example of any new markup, new situation, or bug-provoking content into the sample article as part of a pull request.  Please do so, as appropriate.  However, because we do rolling releases, all code gets thoroughly tested.  For this reason <em>please</em> put all changes to the sample article, and only changes to the sample article, onto a first commit.  Code should then follow on subsequent commits.  This makes a big difference in our ability to test quickly and accurately.  Thanks.  (Ask if you need help rearranging your commits to achieve this, or see <xref ref=\"git-formation\"/>.)</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Modifications to a Pull Request</title>\n\n            <p>To Do: describe how a pull request might iterate to approval/merge.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Cleaning Up</title>\n\n            <p><ol>\n                <li>\n                    <p>At any time after pushing your branch to your clone you can/should switch to the default branch (<c>dev</c> now, but changing to <c>master</c> later).<cd>\n                        <cline>git checkout dev</cline>\n                    </cd></p>\n                </li>\n\n                <li>\n                    <p>Your pull request ends when the lead developers <term>merge</term><idx>merge</idx> your branch into the main branch that everybody uses.  The commit will have your name on it, as part of the permanent record.  But the commit may have changed slightly between initiating the pull request and its subsequent merge.  You will want to remove your original branch from your clone on your local computer.<cd>\n                        <cline>git checkout dev</cline>\n                        <cline>git branch -d my-big-improvement</cline>\n                        <cline>git branch -D my-big-improvement</cline>\n                    </cd>The second command will fail, as a safeguard against deleting branches with temporary (but important) work on them.  The capital <q>D</q> is a <q>forced deletion</q> so should be used with care!  But it is the right thing to do here, since your work has been incorporated into the official repository.</p>\n                </li>\n\n                <li>\n                    <p>But, of course, you want your new improvement like everybody else.  So you are now going to pull it from the official repository into your clone on your local computer.  Remember that the official repository is known as <c>upstream</c>.<cd>\n                        <cline>git checkout dev</cline>\n                        <cline>git pull upstream dev</cline>\n                    </cd></p>\n                </li>\n\n                <li>\n                    <p>Technically, you could now totally trash your fork (making your clone disconnected), and make a new fork and clone for your next contribution.  Instead, you can sync your clone with the fork.<cd>\n                        <cline>git checkout dev</cline>\n                        <cline>git push origin dev</cline>\n                    </cd>Now all three repositories (clone, fork, official) look the same and have your contribution.  Before your next contribution you will want to pull from <c>upstream</c> into your clone, and then push that into <c>origin</c> (your fork).</p>\n                </li>\n            </ol></p>\n        </paragraphs>\n\n    </section>\n\n    <section xml:id=\"git-formation\">\n        <title>Forming Logical Commits</title>\n\n        <p>There is an art to making a pull request that is easier to review, and which will be useful to others later (such as when using <c>git bisect</c> to isolate the introduction of a bug).  Here are some notes:\n            <ul>\n                <li>\n                    <p>Always <c>rebase</c> your sequence of commits onto <c>master</c> before creating a pull request.  Any (rare) conflicts should be your responsibility.  If we delay in getting to a review, then maybe conflicts are our responsibility.</p>\n                </li>\n                <li>\n                    <p>Make logical commits.  Changes to common templates, HTML-specific templates, <latex/>-specific templates, etc. should all be on separate commits.  Contributions to the Guide, and examples for testing in the sample article, should follow (even if testing examples may have been an early commit on your branch during development).  Make schema changes <em>last</em> since it will be easier for us to manufacture derived files as an add-on to your work.</p>\n                </li>\n                <li>\n                    <p>Do not put partial work on two disjoint files into one commit, come back later, add a second commit with more work in each file, and call it good.  Likely there should be two commits<mdash/>relevant code in one file, related code in the other file.  This is a general suggestion: a stream-of-consciousness commit history is of no benefit to anybody, even you.</p>\n                </li>\n                <li>\n                    <p>Do not make a mistake (typo, whitespace, logical error) in one commit, and then fix it several commits later as part of the same pull request.  If you made a mistake, learn how to make the change/fix so it looks like it never happened.  You do not want other developers to think you make mistakes, do you?</p>\n                </li>\n                <li>\n                    <p>Done right, a pull request with no changes will be merged as-is with no changes to the commit hashes.  Consider that a goal, and we will congratulate you when it happens the first time (and expect it from then on!)</p>\n                </li>\n            </ul></p>\n\n        <p>Alright, those are high expectations.  How do you make a well-formed sequence of commits?  This is not a git tutorial, but we will make some suggestions.  git has what is called a <term>staging area</term> where you can gradually place a collection of changes before making them part of a single commit.  The command <c>git commit -a</c> is a bad habit and breaking yourself of it will help you learn to be more flexible about how you package changes into a commit via the staging area.  Finally <c>-m</c> is a useful option for making (or changing) a commit message without being thrown into an editor.\n            <ul>\n                <li>\n                    <p>If your most recent commit (or only commit!) is lacking you can add new changes into it by adding them to the staging area and using <c>git commit --amend</c> to introduce them into the commit.</p>\n                </li>\n                <li>\n                    <p><c>git reset HEAD~n</c> will return your files to a state as if you have made no commits (presuming you had <m>n</m> of them in the first place).  Your edits will all be available (this is <em>not</em> a <q>hard</q> reset, and forget that we even mentioned such a possibility).  Then you can selectively stage portions of your work with tools like <c>git add &lt;file&gt;</c> or <c>git add -p</c> and build up individual logical commits in the staging area.  Of course, you do not always need to reset all of your commits on a branch, perhaps only a few will need reworking.  Caution: do not reset so many commits that you blow past branch pointers and lose them, such as <c>master</c>.</p>\n                </li>\n                <li>\n                    <p>You can do an interactive rebase with <c>git rebase -i HEAD~n</c>.  This unwinds <m>n</m> commits on the current branch, makes a little script for replaying them in the proper order, and throws you into an editor with the script.  Exit the editor and the script runs.  With that description/process nothing interesting happens.  What is interesting is that you can edit the script to affect the replay.</p>\n                    <p>You can rearrange the order of the commits.  But this only works if you know that interchanged commits do not build on one another.  For example, I often start developing a new feature by designing the <pretext/> markup and making an example in the sample article.  But once I am all done, I move it to be <em>later</em> than the code, as an example of how the new code will behave (ansd I do not leave the sample article in a broken state).</p>\n                    <p>Suppose you have ten commits on a branch, and you discover that the third-newest has a small mistake.  Correct the mistake and make a throw-away commit with just that correction on it.  Now, do an interactive rebase with the newest <em>four</em> commits (you just added one), <c>git rebase -i HEAD~4</c>.  Edit the script to place the throwaway commit just after the commit with the mistake, and do not leave it as <c>pick</c>, but edit that action to <c>fix</c> (an <c>f</c> is all you really need).  Be sure to remove the line that has the original version of the throwaway commit.  Exit your editor.  Poof!  Three commits and the mistake is corrected.  (Do not use the <c>squash</c> action, that accumulates commit messages, which we do not want.)</p>\n                    <p>This is analogous to <c>git --amend</c> except it is needed for the times when you see a change that needs to be made several commits ago.</p>\n                </li>\n                <li>\n                    <p>The <c>git cherry-pick &lt;commit&gt;</c> command allows you to recycle existing commits onto new branches.  Suppose your current branch ends up having two very different projects on it.  Make a new branch and cherry-pick the commits for one project onto it.  Now do an interactive rebase on the original branch and remove those commits from the script.  Of course, this assumes you know the two sets of commits are independent of each other.</p>\n                    <p>Here is a different solution to the same problem.  Do a <c>git reset</c> of the entire branch, as described above.  Build up the first project into a set of commits.  Now do <c>git stash save</c> to put all the remaining edits for the second project into the <term>stash</term> temporarily).  Switch to <c>master</c>, make a new branch, <c>git stash pop</c> to get all the edits back, and start building up the second branch.  Note that this assumes the second project does not build on the first project.</p>\n                </li>\n                <li>\n                    <p>Be bold!  But maybe make backups first?  You can often abandon things that are not going well.  If <c>git rebase master</c> has conflicts you can look around at the files affected, and then you can give up with <c>git rebase --abort</c>.  There are other bail-outs for other commands.</p>\n                </li>\n                <li>\n                    <p>The commands <c>git log</c>, <c>git diff</c>, and <c>git status</c> are your friends.  It is never a mistake to use them more than necessary.</p>\n                </li>\n            </ul>\n        </p>\n    </section>\n\n    <section xml:id=\"git-blame\">\n        <title>Blame</title>\n\n        <p>The command <c>git blame</c> is simultaneously funny, useful, and powerful.  A line of code you do not understand can be traced back to its originating commit.  We maintain a list of commits (in <c>.git-blame-ignore-revs</c>) that have no real new code and make just cosmetic changes, so you may want to use this feature.  To use:<cd>\n            <cline>git blame --ignore-revs-file .git-blame-ignore-revs birds.xml</cline>\n        </cd>  You can also make this happen every time with a local configuration change, to wit:<cd>\n            <cline>git config blame.ignoreRevsFile .git-blame-ignore-revs</cline>\n        </cd></p>\n\n        <p>To learn more, see <url href=\"https://akrabat.com/ignoring-revisions-with-git-blame/\">Rob Allen's post</url>, and <xref ref=\"code-style-whitespace\"/>.</p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/developer/localization.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--        PreTeXt Developer's Guide                         -->\n<!--                                                          -->\n<!-- Copyright (C) 2019-2019                                  -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan              -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"localization-contributions\">\n    <title>Contributing Localizations</title>\n\n    <p>We rely heavily on those fluent in other languages to provide translations of terms like <c>Chapter</c> and <c>Example</c>.  See <xref ref=\"topic-localization\"/> for more about this feature.  This chapter is meant to help you get started if you would like to contribute to <pretext/> development in this way.</p>\n\n    <p>Some notes:<ul>\n        <li>We know it is hard to translate subtleties of one language into another.  Do the best you can!  Something is better than nothing.  And somebody may come along later with an improvement.  See the <c>en-US</c> file for explanations, this is the only documentation about each term that gets translated.</li>\n\n        <li>Do not copy the documentation from the <c>en-US</c> file into your file.  Add comments if you feel your work needs some explanations.  Do try to keep the order and organization the same.</li>\n\n        <li>When we add new features, sometimes new translations are needed.  We appreciate maintainers who regularly come back to add in more.  But anybody can hop in and add new translations to an existing file.  We try to be careful to have all the <q>missing</q> translations commented-out so it is easy to see what needs work.</li>\n\n        <li>Explore the files in <c>xsl/localizations</c>, including the <c>README</c> file, which should provide you enough to get started.</li>\n    </ul></p>\n\n    <p>Thanks in advance for continuing the great work that allows us to support readers, authors, and publishers in many parts of the world!</p>\n</chapter>\n\n\n"
  },
  {
    "path": "doc/guide/developer/pretext-script.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"pretext-script\">\n    <title>The <c>pretext</c> Script</title>\n    <idx><c>pretext</c> script</idx>\n\n    <introduction>\n        <p>Note that this <em>entire chapter</em> documents a lower-level tool for producing output from <pretext/> source.  Most authors and publishers should be using the <pretext/>-CLI, see <xref ref=\"processing\"/>.</p>\n\n        <p><init>XSL</init> is a very powerful language for text processing.  However, it cannot do everything.  The <c>pretext/pretext</c> script is a Swiss Army Knife of sorts to operate on parts of your document and manage processing that requires the application of external programs, such as <latex/> and Sage.  It can also produce entire documents in different output formats.  Its principal routines are shared with the <pretext/>-CLI.</p>\n    </introduction>\n\n    <section xml:id=\"pretext-executing\">\n        <title>Running <c>pretext/pretext</c></title>\n\n        <p><c>pretext</c> is a Python program (aka script), so you will need to have the Python 3 interpreter on your system (version 3.6 or better expected as of 2021-05-21) which you can run at a command-line (aka terminal, console, command prompt).  So your first step is to install Python (see <xref ref=\"python\"/>) or check your installed version and the exact name of your executable (see <xref ref=\"python-executable\"/>).</p>\n\n        <p>The <c>pretext</c> script is located in a directory of the <pretext/> distribution also named <c>pretext</c>.  So we often refer to it as the <c>pretext/pretext</c> script to avoid confusion with all the other places we say <pretext/>.  As a simple check on your ability to run the script, with a suitable path you can run<cd>\n            <cline>/path/to/pretext/pretext -h</cline>\n        </cd> to get a summary of the commands.   Since the command lives in the <c>pretext</c> directory, you may prefer to change to that directory for your first attempt.  On a Unix-like system (Linux, Mac) you may need to go <c>./pretext</c> since the program is not on your PATH.  Thus, depending on your executable name (<xref ref=\"python-executable\"/>),\n        whether the script is in your path, and whether you have made the file executable, you might need to run\n        <cd>\n            <cline>python /path/to/pretext/pretext -h</cline>\n        </cd>\n        or\n        <cd>\n            <cline>python3 /path/to/pretext/pretext -h</cline>\n        </cd></p>\n\n        <p>\n        Some of the processing may take a long time, or you may experience trouble.  There are two switches to enable more verbose output in your terminal or console.<cd>\n            <cline>pretext -v [command arguments]</cline>\n        </cd>will provide progress indicators, which may be comforting for long runs, while<cd>\n            <cline>pretext -vv [command arguments]</cline>\n        </cd>will provide progress indicators along with additional technical information that will help you or a fellow author to discern where a problem lies.  If you ask for help, please <em>include all of this output, from start to finish</em>, including the command you use and the current directory, and <em>do not assume you know exactly which part is the relevant part</em>.</p>\n    </section>\n\n    <section>\n        <title>Overview</title>\n\n        <p>Generally, you use the <c>pretext/pretext</c> script by supplying a <term>component</term> (<c>-c</c>) and a <term>format</term> (<c>-f</c>), along with your <pretext/> source as the very last argument.  The component may be some limited subset of your document that needs specialized treatment, such as an image described by the Asymptote language (<c>-c asy</c>).  Or it could be the entire document (<c>-c doc</c>) being converted to some format as a final output form.  So <c>-c asy -f svg</c> would produce Asymptote images in <init>SVG</init> files, while <c>-c all -f latex</c> would produce the entire document as a <latex/> file.</p>\n    </section>\n\n\n    <section xml:id=\"pretext-example-use\">\n        <title>Example Use</title>\n\n        <p>Here is a typical example of using <c>pretext/pretext</c>.  You have several (or many!) diagrams and figures in your <pretext/> source, all authored in the TikZ language, and so packaged up within <tag>latex-image</tag> elements.  Your <latex/>/<init>PDF</init> output looks beautiful, since <pretext/> simply inserts the TikZ code into the right place in the generated <c>*.tex</c> file, and you have done this several times until your figures look just right.</p>\n\n        <p>Now you need to generate the <init>SVG</init> versions of your images that will accompany your <init>HTML</init> version of your book and provide nice scalable graphics. This is exactly the sort of chore the <c>pretext/pretext</c> script was designed for.  You might run (all on one line)<cd>\n            <cline>pretext -vv -c latex-image -f svg</cline>\n            <cline>  -d ~/books/aota/images ~/books/aota/animals.xml</cline>\n        </cd>Here <c>-c</c> is specifying the <q>component</q> of your book to process, and <c>-f</c> is specifying the <q>format</q> of what is being produced.  The <c>-d</c> argument specifies a directory where the output ends up, in this case a collection of <init>SVG</init> files, one per image.\nNote that the <pretext/> file, <c>animals.xml</c> in the above example, is the main source file for the document.\nThe script should be run on the entire document, even if all the images are in one file.</p>\n    </section>\n\n    <section xml:id=\"pretext-strategy\">\n        <title>Strategy</title>\n\n        <p>Much like the build advice at the end of <xref ref=\"processing-file-management\"/>, the <c>pretext/pretext</c><idx><c>pretext</c></idx> script collects necessary bits into a system-created temporary directory, does its work, and copies out the desired results.  So in the example of the previous section, each chunk of TikZ code is isolated, your <latex/> macros are copied from <tag>docinfo</tag>, and a syntactically correct <latex/> file is produced (one per image).  Then <c>pretext</c> calls your system's <latex/> executable on each of these files to produce a one-page <init>PDF</init>.  This is then cropped and converted to  an <init>SVG</init> version, which at the end is copied to the location specified in the <c>-d</c> argument.</p>\n\n        <p>Some insight into failures can be found in the temporary directory where all this processing happened.  (We leave the directory, and its contents, behind for the system to clean-up next time the system is rebooted).  Early in the <c>-vv</c> doubly-verbose output, this directory is reported after the string <c>temporary directory:</c>.</p>\n\n        <p>Some notes:<ul>\n            <li>If you have modularized your source across more than one <init>XML</init> file, then be sure to provide your top-level file as the final argument to the script, just like you would for an invocation of <c>xsltproc</c>.  It is important to understand that your source is one huge <q>source tree</q> and your file-by-file modularization is never respected or recognized in any way.  In particular, use of the <c>xinclude</c> mechanism is handled by the script, and you should not apply the script to each of your source files individually.  If image production (or some other task) takes a long time, see <xref ref=\"restrict-pretext-scope\"/> for a way to have the script restrict its action to only a portion of your project.</li>\n\n            <li>Do not place the script, or configuration files, anywhere else (except as recommended for your personal copy of the configuration file).  The locations are <em>critically important</em> for locating other files, such as the stylesheets used to isolate parts of your project for processing.</li>\n\n            <li>Much of the work of this script happens in the temporary directory described above.  We leave a lot of intermediate work behind in this directory.  Often, exploring this directory is helpful when debugging problems, or a failure to finish successfully.  For an example, see <xref ref=\"debugging-pretext-image-generation\"/>.</li>\n        </ul></p>\n    </section>\n\n    <section xml:id=\"debugging-pretext-image-generation\">\n        <title>Debugging Image Generation</title>\n\n        <p>A principal use of the <c>pretext/pretext</c> script is to isolate source code from <tag>latex-image</tag> sections, package them up as proper <c>*.tex</c> files, run <latex/> to make cropped <init>PDF</init> versions, and then convert these to other formats such as <init>SVG</init> or <init>PNG</init>.</p>\n\n        <p>Much of this activity happens in a temporary directory, and it is similar for Asymptote images and other options of the script.  If you use the <c>-vv</c> switch described above, then these temporary directories will be noted in the debugging output requested, and a complete list will be the last line of output.   In this case, and if the script encounters an error prior to successful execution, then these directories will be left in place.  Looking to see what files end up there, and what those files contain, is often useful in determining the step where the script fails, and maybe even why.</p>\n\n        <p>With no chatter requested, or just progress indications (<c>-v</c>) these temporary directories will be cleaned out as the last part of successful execution.</p>\n\n        <p>Another option is to ask for the actual source files (<c>*.tex</c>, <c>*.asy</c>, etc.) as the output of a run.  This is accomplished with the <c>-f source</c> option when invoking <c>pretext/pretext</c>.  If the right packages or macros are not being employed in these files, this is an easy way to get at the source files for inspection and analysis, and is a good first check on problematic execution.</p>\n\n        <p>It is possible to design an image whose dimensions exceed the page size of typical <latex/> output.  An example is an image you might use only for some HTML output, such as a slideshow.  In this case, construction and conversion to an output format like <init>SVG</init> may fail.  There is a string parameter, <c>latex.geometry</c>, that allows you to provide options to the <latex/> <url href=\"https://ctan.org/pkg/geometry\" visual=\"ctan.org/pkg/geometry\"><c>geometry</c> package</url> which influence page size.  At a minimum, you need to override the page size, plus it might be best to override the <q>printable</q> area as well.  (See <xref ref=\"pretext-publisher-stringparam\"/> for more on string parameters, which will be obsolete in the future.)  Here is a sample <em>addition</em> to a call to the <c>pretext</c> script.  Note that you cannot put the <c>-x</c> switch last, so it must precede some other option.<cd>\n            <cline>-x latex.geometry \"paperwidth=21in,paperheight=21in,total={20in,20in}\"</cline>\n        </cd>Since the image will ultimately be cropped, there is little harm in making the overall page grossly oversized.  However, if the <latex/> code you are using employs lengths like <c>\\linewidth</c> or <c>\\textwidth</c> (which we will claim is not a good practice), then your image might be very sensitive to how you set the page geometry.  Note that restricting the scope (<xref ref=\"restrict-pretext-scope\"/>) might be useful if this accommodation is only needed for one image.</p>\n    </section>\n\n    <section xml:id=\"pretext-helpers\">\n        <title>Configuring External Helper Programs</title>\n\n        <p>Our main processor, <c>xsltproc</c><idx><c>xsltproc</c></idx>, is not a general-purpose compiler, and does not <q>call</q> external programs.  That is the <foreign xml:lang=\"fr-FR\">raison d'être</foreign> of the <c>pretext/pretext</c> script.  You will see a configuration file, <c>pretext/pretext.cfg</c>, as part of the distribution.  Read the comments at the top of this file, but foremost, realize that you are not meant to edit this file.  It is a template, and any changes you make will be overwritten with an original version when you update.  Instead, make a copy and place it as <c>user/pretext.cfg</c> within the distribution.  For instance, if your distribution is in the <c>pretext</c> directory, then the commands<cd>\n            <cline>cd /path/to/pretext</cline>\n            <cline>mkdir user</cline>\n            <cline>cp pretext/pretext.cfg user/</cline>\n        </cd>would be appropriate.  The script will look for the <c>user</c> copy first, and if not found, then fallback to the generic version.</p>\n\n        <p>The entries of this file are the names of executable files that perform certain tasks as part of the script's functions.  If it seems that certain helper programs are not being found, you can provide full path names, and that may solve the problem.</p>\n    </section>\n\n    <section xml:id=\"pretext-python-prerequisites\">\n        <title>Python Prerequisites for the <c>pretext/pretext</c> script</title>\n\n        <p>There are several external programs that the script relies on that are again Python packages.  See <xref ref=\"pip-install\"/> for instructions and a list.</p>\n    </section>\n\n    <section xml:id=\"pretext-publisher-stringparam\">\n        <title>Publication Files, String Parameters</title>\n\n        <p>A publication file (<xref ref=\"publication-file\"/>) can be used to control various options that are independent of the authoring process, or for some conversions may be necessary.  And the managed directories scheme requires use of a publication file (see <xref ref=\"processing-directory-management\"/>).  Use the <c>-p</c> switch to specify this file, using a path that is relative to your <pretext/> source (or an absolute path if it seems to be ignored).</p>\n\n        <p>Sometimes you might have need to pass string parameters to the <pretext/> script, though this will eventually be something an author will rarely do, and is more likely necessary for developers.  This is accomplished with the <c>-x</c> flag, followed by a space separated list of (stringparam, value) pairs.  Do not use parentheses, just separate with spaces.  But note that <c>-x</c> cannot be the last option passed to the script since it makes it hard for the script to <q>see</q> the filename for your source.</p>\n\n        <p>For example:<cd>\n            <cline>pretext -vv -x debug.datedfiles no debug.chunk 0</cline>\n            <cline>   -f html -c doc -p ~/books/aota/pub.xml</cline>\n            <cline>   -d /tmp/aota-html ~/books/aota/animals.xml</cline>\n        </cd></p>\n    </section>\n\n    <section xml:id=\"extra-stylesheet\">\n        <title>Extra Stylesheet</title>\n\n        <p>There are situations when an <q>extra</q> <init>XSL</init> stylesheet is necessary for processing your <init>XML</init> source.  A good example is the supported method for styling <init>PDF</init> output, described at <xref ref=\"latex-styles\"/>.  Historically, various customizations have been supported by <q>thin</q> XSL stylesheets (<xref ref=\"publisher-extra-stylesheet\"/>), but as certain themes have become apparent we have moved these customizations to simpler techniques (e.g. publication files, <xref ref=\"publication-file\"/>).  Other than styling <init>PDF</init>, you should think carefully about if an additional stylesheet is necessary.</p>\n\n        <p>The <c>-X</c><idx><c>-X</c></idx> (<c>--XSL</c><idx><c>--XSL</c></idx>) switch is used to specify an <q>extra</q> <init>XSL</init> stylesheet that will be applied to your source.  Note that it is now possible to do <em>anything</em> you want to your source and so can create run-time failures at any point in the process.  Here are the simple mistakes to avoid.<ul>\n            <li>If you are expecting <init>HTML</init> output because you used <c>-f html</c>, then your stylesheet supplied in the <c>-X</c> argument will certainly import the base <c>xsl/pretext-html.xsl</c> stylesheet.  When you understand this, then you will understand that perhaps we should call this an <q>alternate</q> stylesheet.  This advice applies equally well to extending the base <c>xsl/pretext-latex.xsl</c> stylesheet.</li>\n\n            <li>The import just described will behave better for others (meaning co-authors, or authors who fork your project) if the import uses a relative path, meaning relative to location of the extra stylesheet.  We therefore suggest using a <c>user</c> directory, placed as a peer of the <c>xsl</c> directory, as described in <xref ref=\"publisher-extra-stylesheet\"/>.</li>\n\n            <li>So a common mistake is to use <c>-X</c> to point to an extra stylesheet someplace close-by your project's source files, when you have sensibly setup a relative import of the base stylesheet, and instead should point to the <em>copy</em> you have placed in <c>user</c> so that the import is effective on everybody's system.</li>\n        </ul></p>\n\n        <p>As of 2021-08-04, this technique is only effective for <init>HTML</init>, <init>PDF</init>, and <latex/> outputs.  It may be natural for some other output formats (e.g., <init>EPUB</init>), and perhaps possible for others (e.g., braille).  Make a feature request for expanding applicability.</p>\n    </section>\n\n    <section xml:id=\"restrict-pretext-scope\">\n        <title>Restricting the Scope</title>\n\n        <p>The <c>-r</c><idx><c>-r</c></idx> (<c>--restrict</c><idx><c>--restrict</c></idx>) switch deserves special mention.  It is followed by the value of an <attr>xml:id</attr> attribute present in your source XML file.  Then whatever action the script is asked to perform, it will only act on a subtree of the hierarchy, rooted at the element with the given <attr>xml:id</attr> value.</p>\n\n        <p>So if your images are complex or numerous (or both!) and take a long time to process, you can restrict attention to whatever part of the document you are actively editing, and you can even restrict to a single <tag>image</tag> and so produce just a single graphics file.</p>\n    </section>\n\n    <section xml:id=\"pretext-method\">\n        <title>Methods</title>\n\n        <p>The <c>-M</c><idx><c>-M</c></idx> (<c>--method</c><idx><c>--method</c></idx>) switch is used in some cases to specify the <em>method</em> by which some process is achieved.  Supported situations and values are listed below.  Defaults are listed first, in brackets.</p>\n\n        <table>\n            <title>PreTeXt Script Methods</title>\n\n            <tabular>\n                <row header=\"yes\" bottom=\"major\">\n                    <cell>Situation</cell>\n                    <cell>Values</cell>\n                </row>\n                <row>\n                    <cell><c>-c asy</c></cell>\n                    <cell>[<c>server</c>], <c>local</c></cell>\n                </row>\n                <row>\n                    <cell><c>-c latex-image</c></cell>\n                    <cell>[<c>xelatex</c>], <c>pdflatex</c></cell>\n                </row>\n                <row>\n                    <cell><c>-c doc -f pdf</c></cell>\n                    <cell>[<c>xelatex</c>], <c>pdflatex</c></cell>\n                </row>\n                <row>\n                    <cell><c>-c preview</c></cell>\n                    <cell>[<c>fast</c>], <c>slow</c></cell>\n                </row>\n            </tabular>\n        </table>\n\n        <p>For generation of preview images for interactive elements, <c>fast</c> is the default of a 5 second timeout to allow the page to load; if the interactive element is taking longer to load, using <c>slow</c> will double the timeout.</p>\n    </section>\n\n    <section xml:id=\"pretext-output\">\n        <title>Output</title>\n\n        <p>If you use the script to make a single file, such as your complete project as a <init>PDF</init> or an <init>EPUB</init>, then you can use the <c>-o</c> switch to specify this file, otherwise the file will land in the current working directory.</p>\n\n        <p>If your output consists of many files, such as all the <init>HTML</init> for your complete project, then you can specify a directory with the <c>-d</c> switch.  Again, the default is the current working directory.</p>\n\n        <p>If you specify one of the components in <xref ref=\"subdirectories-of-generated\"/> <em>and</em> you are using a publication file to specify directories that are managed (<xref ref=\"processing-directory-management\"/>) then the multiple files for that component will automatically be placed into necessary directories by default (rather than in the current working directory).  Of course, you can override this behavior by specifying a directory with <c>-d</c>.   For example, for many operating systems, by using <c>-d .</c> you can have the results land in the current working directory. (Note there is a necessary period there.)</p>\n\n        <p>In the early stages of a project, you might rebuild your images regularly.  But you may not always want those results landing within directories under revision control.  Later in a project, your images may be relatively stable, and you want to distribute them with your source, perhaps so others can re-purpose them in handouts or other materials.  To accommodate this, make two publication files, and in one make a relative path for the generated components that is outside of the main directory that is under revision control.  Likely you will need some file path syntax for a parent directory, such as <c>../</c> on Unix-like systems.  Then you can switch from testing to distribution, and back, easily.</p>\n    </section>\n\n    <section xml:id=\"pretext-capabilities\">\n        <title><c>pretext/pretext</c> Capabilities</title>\n\n        <list xml:id=\"list-pretext-capabilities\">\n            <title><c>pretext/pretext</c> Capabilities</title>\n\n            <introduction>\n                <p>Again, the command <c>pretext -h</c> will remind you of the various options for the script and is the most likely list to be correct and up-to-date.  The following is a brief summary, in general terms, of what is possible.</p>\n            </introduction>\n\n            <dl width=\"narrow\">\n                <li>\n                    <title>Complete Conversions</title>\n                    <p>With <c>-c doc</c> and various choices of the format (<c>-f</c>) the script will execute a complete conversion.  In some cases, this is a convenience compared with just using the <c>xsltproc</c> processor.  In other cases the conversion is very complex and multiple (arcane) output files must be packaged up in very specific ways and no author would want to manage it all.  Conversion to <c>EPUB</c> is one example (<xref provisional=\"epub conversion\"/>).</p>\n                </li>\n\n                <li>\n                    <title><latex/> Graphics</title>\n                    <p><latex/> has a variety of languages for specifying images, such as xypic, pgfplots, and TikZ.  By including the necessary packages or setup commands in <c>docinfo/latex-preamble</c>, these can all be generated at once, in the manner of the example earlier.</p>\n                </li>\n\n                <li>\n                    <title>Asymptote</title>\n                    <p>Images described by the Asymptote language can be processed in a manner entirely similar to that for images described with <latex/> graphics languages.  By default an online server will be used for the image generation, or you may elect to use an <c>asy</c> executable on your system and locatable via the <c>pretext.cfg</c> configuration file.</p>\n                </li>\n\n                <li>\n                    <title>Sage Plot</title>\n                    <p>If you have a version of Sage installed on your system, you can specify the path to the executable and obtain images described by Sage code.  See <xref ref=\"topic-sageplot\"/> for more information.</p>\n                </li>\n\n                <li>\n                    <title>All Formats</title>\n                    <p>If you desire images in a wide variety of formats, the option <c>-f all</c> will oblige.</p>\n                </li>\n\n                <li>\n                    <title>YouTube Thumbnails</title>\n                    <p>For each YouTube video (or itemized playlist) you specify, the script will go the YouTube site and grab a thumbnail image for that video (or first video from the itemized playlist). These get used in static formats, such as <init>PDF</init>.</p>\n                </li>\n\n                <li>\n                    <title>Preview Images</title>\n                    <p>Like a thumbnail for a YouTube video, other interactive content can benefit from a still image for use with static formats.  Our strategy is to render the content with a <q>headless</q> web browser and capture an image automatically.  For example, you might write some custom Javascript to allow a reader to interact with a graph, and you would like an image of the graph, along with its interactive sliders and checkboxes, to appear in the <init>PDF</init> version of your text.  Recognize that this image will necessarily be the content at its initial start-up.  Get a screenshot manually if you want something better.</p>\n\n                    <p>Note that for all this to work, you need to properly serve your project's <init>HTML</init> output with the interactive content.  (A local server may be a possibility, but we have not tried.  See <xref ref=\"processing-testing-html\"/>.  Or you can try a temporary public server, see <xref ref=\"processing-testing-html-globally\"/>).  Then you need to announce the location of this hosted <init>HTML</init>, which is accomplished via a <q>base URL</q> in a publication file.  Start at <xref ref=\"online-base-url\"/> for details on this publisher variable.  Note that the chunk level in your publication file used in this process <em>must</em> match the chunk level used when you build your <init>HTML</init> output, and mismatches for other publisher variables could have some ill effects.</p>\n\n                    <p>The automatic screenshots will then be managed by the Python <c>playwright</c> package, which you will need to have installed in your Python virtual environment (see <xref ref=\"pip-install\"/>).</p>\n                </li>\n\n                <li xml:id=\"mathematics-representations\">\n                    <title>Mathematics Representations</title>\n                    <p>Conversions to <init>EPUB</init>, braille, and other formats require creating conversions of mathematics elements locally as part of the conversion.  This requires having MathJax installed locally,  see <xref ref=\"offline-mathjax\"/>.  Structured files of these representations can be obtained by setting the component with <c>-c math</c>.  Possible formats (<c>-f</c>) are <c>svg</c>, <c>mml</c> (MathML), <c>braille</c> and <c>speech</c>.</p>\n                </li>\n\n                <li>\n                    <title><webwork/></title>\n                    <p>\n                        Various conversions of <webwork/> problems are facilitated using either a\n                        <webwork/> server or a local copy of the PG repository.  See\n                        <xref ref=\"webwork-author\"/> for the details of this procedure.\n                    </p>\n                </li>\n            </dl>\n        </list>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/developer/xsltproc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"xsltproc\">\n  <title>Processing with <c>xsltproc</c></title>\n  <introduction>\n    <p>\n      The executable program <c>xsltproc</c>\n      <idx>\n        <c>xsltproc</c>\n      </idx> implements Version 1.0 of the <term>eXtensible Stylesheet Language (XSL)</term>\n      <idx>XSL</idx>.  This is a declarative language that walks the hierarchical tree of an XML source file, and for each element describes some output to produce before, and after, recursively processing the contained elements.  (That is a simplified description.)\n    </p>\n\n    <p>\n      <c>xsltproc</c> is typically installed by default on Linux systems and as part of Mac OS.  See the <pretext /> website for details for Windows systems.  The most basic operation is to provide <c>xsltproc</c> with an XSL stylesheet from the <pretext /> distribution and an XML document of your creation that is valid <pretext />.  This is done at the command-line, inside of a terminal or shell.  Describing command-line operations, along with file and directory management, is beyond the scope of this guide, so consult another resource if this is unfamiliar.  So here is a hypothetical simple example:\n    </p>\n\n    <console>\n      <input prompt=\"rob@lava:~/pretext$ \">xsltproc xsl/pretext-html.xsl ~/books/aota/animals.xml</input>\n    </console>\n\n    <p>\n      By default, <c>xsltproc</c> writes output to <c>stdout</c> (the screen), which you could redirect to a file, or you could use the <c>-o</c> switch to send the output to a named file.  However, <pretext />\n      automatically writes to a file whose name is derived from the <attr>xml:id</attr> attribute of the top-level <tag>book</tag> or <tag>article</tag> tag.  If no such attribute is given the filename will be derived from <c>book-1</c> or <c>article-1</c>.  All output is produced in whatever the current default directory is, so you will likely want to set this beforehand.\n    </p>\n\n    <p>\n      The <c>xsl</c> subdirectory of the <pretext />\n      distribution contains a variety of XSL stylesheets<idx>XSL stylesheet</idx>, which I will also refer to as <term>converters</term>\n      <idx>\n      <h>converter</h>\n      <see>XSL stylesheet</see>\n      </idx> or <term>conversions</term>\n      <idx>\n      <h>conversion</h>\n      <see>XSL stylesheet</see>\n      </idx>.\n      The ones that you will use as an author all have filenames of the form <c>xsl/pretext-XXX.xsl</c>, where <c>XXX</c> is some indication of the output produced.  Conversions to <latex />or HTML output are the two most mature converters.\n    </p>\n\n    <p>\n      Note that authors are not responsible for creating XSL stylesheets.  Stock conversions are part of the <pretext />\n      distribution, and anybody is welcome to assume a source document is valid <pretext />\n      and create new conversions to process it to existing, or as yet unimagined, formats.\n    </p>\n\n  </introduction>\n  <section xml:id=\"xsltproc-setup\">\n    <title>Setup</title>\n\n    <p>There are two components to processing your document, the <pretext />\n    stylesheets and the <c>xsltproc</c> program.  We work at the <term>command-line</term>\n    <idx>command-line</idx> inside of a <term>terminal</term>\n    <idx>terminal</idx> or <term>console</term>\n    <idx>console</idx>.  If you do not know what this is, it will seem very primitive at first.  Sometimes the old ways are the best ways.  This will be called a <q>Command Prompt</q> in Windows or a <q>Terminal</q> on a Mac.  In Linux it may be known as a <q>console</q> or a <q>shell</q>.  A tutorial, which is Linux-specific, can be found at <url href=\"http://ryanstutorials.net/linuxtutorial/\" visual=\"ryanstutorials.net/linuxtutorial/\">Ryan's Tutorials</url> and certainly others exist.</p>\n    <p>The operating system on a Mac is built on Unix, which is very similar to Linux, so most of the directions here will be little changed between the two.  Procedures can be very different in Windows (<xref ref=\"windows-install-notes\" />\n    ,<xref ref=\"windows-subsystem-linux\" />\n    ).  One alternative is <url href=\"https://cocalc.com/\" visual=\"cocalc.com\">CoCalc</url>\n    which provides a full Linux computer for free in your web browser, so that may be an excellent place for initial experiments.</p>\n\n    <paragraphs>\n    <title>Step 1: <pretext />\n    </title>\n\n    <p>You need to obtain the <pretext />\n    stylesheets, which are the main part of <pretext />\n    .  Since you are reading this, it may be possible that you have this already.  You can use <c>git</c> to <term>clone</term> the <pretext />\n    from the GitHub repository, and then be sure to checkout the <c>dev</c> branch to have the latest version.  This is the best way to go, and you should only download the repository as a zip file once for an initial experiment, and then switch to using a clone instead.</p>\n\n    <p>Once you have a clone of the repository, you can issue <c>git pull</c>, and git will update your local copy with any recent changes.  You should do this <em>regularly</em>\n    <mdash />\n    meaning on the order of <em>daily</em>.  See the <xref ref=\"faq-pull-regularly\" text=\"custom\">FAQ entry</xref> for more about why we <em>expect</em> you to do this.</p>\n\n    <p>See the <url href=\"https://pretextbook.org/\" visual=\"pretextbook.org\">\n    <pretext/>\n    site</url> for details and commands for this step, right on the main page.</p>\n    </paragraphs>\n\n    <paragraphs>\n    <title>Step 2: <c>xsltproc</c>\n    </title>\n\n    <p>This is the command-line program which takes your document and a <pretext />\n    stylesheet to together produce output.  On Linux or a Mac you probably already have it installed as part of system software.  On Windows it is not so simple.</p>\n\n    <p>In either case see the website for details abut verifying you have this, or how to install it.</p>\n    </paragraphs>\n\n  </section>\n\n  <section xml:id=\"xsltproc-processing\">\n    <title>Processing</title>\n\n    <p>At a command prompt in your terminal or console adjust the path names for the two files and execute:<cd>\n    <cline>xsltproc /path/to/pretext/xsl/pretext-html.xsl /path/to/quickstart.xml</cline>\n    </cd>In the current working directory you should now find the file <c>article-1.html</c> which you can view in a web browser.  (You will want an internet connection since various parts of the page come from the network.  Someday we will create output for the offline situation.)  It will look very plain, but you should be able to read the sentence.</p>\n\n    <p>Now, try the following, again with adjusted paths, and all on one line:\n      <cd>\n      <cline>xsltproc -o quick.tex /path/to/pretext/xsl/pretext-latex.xsl</cline>\n      <cline>/path/to/quickstart.xml</cline>\n      </cd>\n    </p>\n\n    <p>In the current working directory you should now find the file <c>quick.tex</c> which you can process with <c>pdflatex</c> or <c>xelatex</c> at the command line as below.  If you do not have <latex />\n    installed on your system, you could process this file within a variety of online services, and CoCalc would be an obvious choice.<cd>\n    <cline>pdflatex quick.tex</cline>\n    </cd>In the current working directory you should now find the file <c>quick.pdf</c> which you can view or print with standard PDF viewing software.  You could even send it to a print-on-demand service to get nice hardback books, though I suspect sales will not be great.</p>\n\n    <p> Note that if your project includes multiple files you will need to pass the <c>-xinclude</c> flag to <c>xsltproc</c>, though this is not needed for this simple example.\n            An example of this is the command\n    <cd>\n    <cline>xsltproc -xinclude /path/to/pretext/xsl/pretext-html.xsl /path/to/index.xml</cline>\n    </cd>\n    For more on this see <xref ref=\"topic-xinclude\"/>\n    and <xref ref=\"processing-modular\"/>.\n    </p>\n\n    <p>That's it.  You now know all the basics of authoring with <pretext />\n    , since you have produced two radically different output formats with identical content from the exact same structured input, via two different command lines.  Everything you need to author a complete article or textbook, and produce it in many different formats, is just an extension or variation on what you just did.  Let us look at a few simple extensions right away before being more methodical.</p>\n  </section>\n\n  <section>\n    <title>Modular Source Files</title>\n    <p>\n      If you use the <tag>xi:include</tag> mechanism for modular source files, you must process your source slightly differently.\n    </p>\n\n    <p>Add the switch <c>-xinclude</c> to your invocation of <c>xsltproc</c>, just after <c>xsltproc</c>, but before the filenames for the stylesheet and the top-level source file.  Note that for some versions of <c>xsltproc</c> it might be necessary to use two dashes for the switch, <c>--xinclude</c>.\n                So now a typical invocation (using one dash) might look like\n    <cd>\n    <cline>xsltproc -xinclude xsl/pretext-html.xsl ~/books/aota/animals.xml</cline>\n    </cd>\n    </p>\n    <p>It is easy to forget the <c>-xinclude</c> switch.  Empty output, or cryptic error messages, are your first clue to this simple, but common, mistake.</p>\n    </section>\n\n    <section xml:id=\"xsltproc-string-parameters\">\n    <title>String Parameters</title>\n    <p>\n                    To pass string parameters to <c>xsltproc</c>, use a command like the following (possibly with <c>--xinclude</c>).\n    </p>\n\n    <console>\n    <input>xsltproc -o animals.tex --stringparam latex.font.size \"20pt\"</input>\n    <input>  /path/to/xsl/pretext-latex.xsl ~/books/aota/animals.xml</input>\n    </console>\n\n    <p>\n                    You can use as many <c>stringparam</c> as you like on the command-line (or in your scripts).  The quotation marks are not strictly needed in this example, but if the value of the parameter has spaces, slashes, etc., then you need to quote-protect the string from the command-line processor, and either single or double quotes will work (and protect the other kind).\n    </p>\n    </section>\n    <section>\n    <title>Extra XSL Stylesheets</title>\n    <p>\n                    If you want to use a custom <init>XSL</init> stylesheet, as described in <xref ref=\"publisher-extra-stylesheet\"/>\n    , it is a simple matter of using that custom as the <init>XSL</init> file fed to <c>xsltproc</c>.  That is, enter something like the following.\n    </p>\n\n    <console>\n    <input>xsltproc -xinclude -o animals.tex ./xsl/custom-latex.xsl ~/books/aota/animals.xml</input>\n    </console>\n\n    <p>\n                    Note that using this method, it is necessary to import the stock <init>XSL</init> using the <attr>href</attr> instead of <attr>pretext-href</attr>, as in <cd>xsl:import href=\"path/to/pretext/xsl/pretext-latex.xsl\"</cd>.  You need to specify the full path to the <c>pretext/xsl</c> directory, or else put your custom <init>XSL</init> in the <c>pretext/user</c> directory and use a relative path (<c>../xsl/pretext-latex.xsl</c>).\n    </p>\n    </section>\n    <section>\n        <title>Publication File</title>\n\n        <p>To employ a publication file using <c>xsltproc</c> you use a string parameter (<xref ref=\"publisher-string-parameters\"/>) named <c>publisher</c>.  This should have a path that is relative to the main file for the document.  For example, assuming <c>pod.xml</c> and <c>fauna.xml</c> are in the same directory<cd>\n            <cline>xsltproc -stringparam publisher pod.xml pretext-html.xsl aota.xml</cline>\n        </cd>This file should reduce the many other string parameters in use, and reduce the need for extra <init>XSL</init> files (<xref ref=\"publisher-extra-stylesheet\"/>).</p>\n    </section>\n    <section>\n    <title>Images Described in Source</title>\n    <p>\n                    As we discussed in <xref ref=\"processing-images-pretext\"/>\n    , there are many advantages to describing images directly in the source of your <pretext />\n    document.  However, these must be processed with various <q>helper</q> programs such as <c>asy</c>,<c>pdflatex</c>, and <c>sage</c>.\n    </p>\n\n    <p>\n                    The issue with this is that XSL is not a general purpose programming language, and so in particular, cannot call the <q>helper</q> programs.  The general strategy is to use XSL to identify and isolate the parts of a document that lie in the elements designed for graphics languages.  A Python script, the <c>pretext</c> script, employs these XSL stylesheets and then feeds each image file to the appropriate helper program.\n    </p>\n\n    <p>\n                    This script has a variety of options, so we document it fully in <xref ref=\"pretext-script\" />\n    .\n    </p>\n    </section>\n    <section xml:id=\"xsltproc-author-tools\">\n    <title>Author Tools</title>\n    <p>\n                    The <c>authors-report.xsl</c> stylesheet, found in the <c>xsl/utilities</c> directory, will report all of the provisional cross-references and all of the properly prefixed todo-comments. The report is organized by all of the divisions in use in your project.  It is meant to be simple in appearance, just text.\n    </p>\n\n    <p>\n                    Apply this stylesheet just like you would any other:\n    </p>\n\n    <console>\n    <input>xsltproc -xinclude path/to/pretext/xsl/utilities/authors-report.xsl path/to/main.ptx</input>\n    </console>\n    </section>\n    <section xml:id=\"xsltproc-updating-source\">\n    <title>Keeping Your Source Up-to-Date</title>\n    <p>This section describes a tool you can use to automate the process of adjusting your source when there are deprecations.  Generally, there is an <init>XSL</init> stylesheet which will convert your <init>XML</init> source to another <init>XML</init> source file, fixing many of the deprecations automatically.  However, it is the nature of <init>XML</init> processing that your source file will undergo some cosmetic changes.  For example, the order of attributes is never relevant, so an <init>XML</init>-to-<init>XML</init> conversion is free to re-order the attributes of an element, perhaps different from how you like to author them.</p>\n\n    <p>So you have two choices:<ul>\n    <li>Process your source with any of the provided conversions and edit by hand until the warnings all disappear.</li>\n    <li>Run the deprecation-fixing conversion and accept the changes in <init>XML</init> formatting. (Read on for more specifics about these changes.)</li>\n    </ul>\n    </p>\n\n    <p>You perform this conversion using <c>xsl/utilities/fix-deprecations.xsl</c> on an <init>XML</init> source file in the usual way.  By default, output appears on the console, so you will want to specify an output file, for example with the <c>-o</c> flag of <c>xsltproc</c>.  You will discover a safety measure that requires you to also use a parameter, which you can pass in to <c>xsltproc</c> with the <c>-stringparam</c> command-line argument.</p>\n\n    <p>One choice of the parameter will result in just <q>copying</q> your source file and making all the cosmetic source format changes (we refer to this here as <term>normalization</term>\n    <idx>normalization</idx>).  This might be a useful thing to do first, all by itself, either as a first step, or an exploratory experiment.  The other value of the parameter will actually make changes, and report some information about progress.</p>\n\n    <p>Here are some notes:<ol>\n    <li>\n    <p>Be sure to experiment on copies of your source in a scratch directory.  Send your output to another directory.  When finished, use a <c>diff</c> tool to inspect the actual changes made.  You can record your eventual changes using revision-control. (See <pubtitle>\n    <url href=\"https://pretextbook.org/gfa/html/\" visual=\"pretextbook.org/gfa/html/\">Git for Authors</url>\n    </pubtitle>.)\n    </p>\n    </li>\n    <li>\n    <p>Do not enable <c>xinclude</c> processing or else your several files will all be merged into one as output and any modularity of your source will be lost.</p>\n    </li>\n    <li>\n    <p>Every single bit of indentation and whitespace in your source will be preserved, except perhaps for some blank lines near the top of your source files, and limited exceptions noted below.</p>\n    </li>\n    <li>\n    <p>Attributes will likely be re-ordered, with normalized spacing between them.</p>\n    </li>\n    <li>\n    <p>Empty elements will have any spaces removed from the end of the tag.</p>\n    </li>\n    <li>\n    <p>Elements with no content may be written with a single empty tag.</p>\n    </li>\n    <li xml:id=\"deprecation-fixer-cdata\">\n    <p>\n    <abbr>CDATA</abbr> sections will be converted to text acceptable to the <init>XML</init> parser.  In other words, the <abbr>CDATA</abbr> wrapper will be removed and dangerous characters (&amp;, &lt;, &gt;) will be replaced by equivalent entities (such as <c>&amp;amp;</c>).  If you have many matrices expressed in <latex />\n            and wrapped in a <abbr>CDATA</abbr>, this might be a big change.  See <xref ref=\"topic-exceptional-characters\"/>\n            for background.</p>\n    </li>\n    <li>\n    <p>The output files will be labeled as having <c>UTF-8</c> encoding.</p>\n    </li>\n    <li>\n    <p>It could be necessary to run this conversion more than once if deprecations build on one another.  In other words, we do not update specific conversions, but rely on regular use to keep source up-to-date.</p>\n    </li>\n    <li>\n    <p>It should be safe to run this conversion repeatedly, even after new deprecations are added.  In fact, it is encouraged.</p>\n    </li>\n    <li>\n    <p>The <pretext />\n            source file <c>examples/sample-errors-and-warnings.xml</c> is intentionally full of lots of bad stuff.  You can experiment with it, should you want to see interesting things happen.  We have already performed the normalization step, so you can concentrate on substantive changes.</p>\n    </li>\n    </ol>\n    </p>\n\n    <p>To process a directory with multiple source files, I would proceed as follows.  First make three temporary directories, <c>/tmp/original</c>,<c>/tmp/normal</c>,<c>/tmp/clean</c>, and copy my source files into <c>/tmp/original</c>.  Then, using a BASH shell, and inputting the command all on one long line.</p>\n\n    <console>\n    <input prompt=\"rob@lava:/tmp/original$ \">for f in *.xml; do xsltproc -o ../normal/$f -stringparam fix normalize</input>\n    <input>  /home/rob/pretext/xsl/utilities/fix-deprecations.xsl $f; done</input>\n    </console>\n\n    <p>This will loop over every <init>XML</init> file in the current working directory, <c>/tmp/original</c>, running the normalization conversion on each file, with the output files using the same filename, but now being placed in the <c>/tmp/normal</c> directory.  If you change to the <c>/tmp</c> directory, then you can compare the results.  I like to use the <c>diff</c> utility provided by <c>git</c>.\n    </p>\n\n    <console>\n    <input prompt=\"rob@lava:/tmp$ \">git diff original normal</input>\n    </console>\n\n    <p>Or, try this for a view that might be more informative.</p>\n\n    <console>\n    <input prompt=\"rob@lava:/tmp$ \">git diff --word-diff original normal</input>\n    </console>\n\n    <p>You may only do the above once, on your first use of this conversion stylesheet.  You will see how your style of authoring <init>XML</init> will undergo some minor changes.  We can repeat the above to actual make the changes necessary due to <pretext />\n            deprecations.  Make <c>/tmp/normal</c> the working directory.</p>\n\n    <console>\n    <input prompt=\"rob@lava:/tmp/normal$ \">for f in *.xml; do xsltproc -o ../clean/$f -stringparam fix all</input>\n    <input>  /home/rob/pretext/xsl/utilities/fix-deprecations.xsl $f; done</input>\n    </console>\n\n    <p>And as above, you can now compare the <c>normal</c> and <c>clean</c> directories to see actual changes.  If you are satisfied with the changes, you can copy the files in the <c>clean</c> directory back onto your source files.  If you are using revision-control (you are, aren't you?) then you can make a commit that holds these changes. (See <pubtitle>\n    <url href=\"https://pretextbook.org/gfa/html/\" visual=\"pretextbook.org/gfa/html/\">Git for Authors</url>\n    </pubtitle>.) Or maybe even make two commits, one from the normalization step, and a second with the substantive changes.</p>\n    </section>\n\n    <section xml:id=\"processing-file-management\">\n      <title>File Management</title>\n\n      <p>\n        <pretext />, at its core, is the formal specification of the XML vocabulary, as expressed in the DTD (<xref ref=\"processing-dtd\" />).  We have provided converters to process source files into useful output.  However, we have not yet built a point-and-click application for the production of a book.  So you need to take some responsibility in a large project for managing your files, both input and output.  We have tried to provide flexible tools to make an author's job easier. The following is advice and practices we have successfully employed in several book projects.</p>\n\n      <paragraphs>\n        <title>Source</title>\n\n        <p>I am fond of describing my own books with an initialism formed from the title.  So <pubtitle>A First Course in Linear Algebra</pubtitle> becomes <acro>FCLA</acro>, and in file and directory names becomes <c>fcla</c>.  So I have a top-level directory <c>books</c> and then <c>books/fcla</c>, but this directory is not the book itself, this is all the extra stuff that goes along with writing a book, much of it in <c>books/fcla/local</c>.  The actual book, the part everybody sees with an open license, lives in <c>books/fcla/fcla</c>.  This subdirectory has files like <c>COPYING</c>, which is a free software standard for license information, and <c>README.md</c> which is a file in the simplistic Markdown format that is picked up automatically by GitHub and displayed nicely at the book's repository's main page.  Subdirectories include <c>src</c> for the actual XML files, <c>xsl</c> for any customizing XSL (<xref ref=\"publisher-extra-stylesheet\" />), and <c>script</c> for shell scripts used to process the book (see below).</p>\n\n      <p>I do not use any additional directory structure below <c>src</c> to manage modular files for a book, since the XML and the <c>--xinclude</c> mechanism manage that just fine.  I see little benefit to extra subdirectories for organization and some resulting inconvenience.  I do typically have a single subdirectory <c>src/images</c> for raster images and other graphics files.</p>\n\n      <p>I believe it is critically important to put your project under revision control, and if licensed openly, in a public GitHub repository.  So the <c>books/fcla/fcla</c> directory and all of its contents and subdirectories is tracked as a <c>git</c> repository and hosted on GitHub.  Because this directory is <em>source</em> I try very hard to <em>never</em> have any temporary files in these directories since I do not want to accidentally incorporate them into the <c>git</c> repository.  As a general rule-of-thumb, only original material goes in this directory and anything that can be re-created belongs outside.</p>\n\n      <p>A tutorial on <c>git</c> would be way outside the scope of this guide, but Beezer and Farmer <em>have</em> written <pubtitle>Git For Authors</pubtitle>, so perhaps look for that.</p>\n    </paragraphs>\n\n    <paragraphs>\n      <title>Image Files</title>\n\n      <p>Some images are raster images (<eg /> photographs) that are not easily changed, and perhaps unlikely to be changed.  Other images will come from source-level languages via the <c>pretext</c> script.  For your convenience, this script has a command-line option that allows you to direct output (graphics files) to a directory of your choice.</p>\n\n      <p>In the early stages of writing a book, I put image files<idx>image</idx> produced from source code in a directory outside of what is tracked by <c>git</c>. It is only when a project is very mature that I begin to include completed graphics files into the <c>src/images</c> directory for tracking by <c>git</c>.\n    </p>\n  </paragraphs>\n\n  <paragraphs>\n    <title>Build Scripts</title>\n\n    <p>When you have a mature book project, the various files, processing options, and a desire for multiple outputs can all get a bit confusing.  Writing simple scripts<idx>script</idx> is a good idea and the investment of time doing this early in a project will pay off through the course of further writing and editing.  The particular setup you employ is less important.</p>\n\n    <p>I have fallen into the habit of using the <c>make</c> program.  It allows me to define common variables upfront (such as paths to the <pretext /> distribution and the main directory for the project it applies to).  Then I can easily make <q>targets</q> for different outputs.  So, for example I typically go <c>make pdf</c> or <c>make html</c> to produce output, and have simple companion targets so that I can go <c>make viewpdf</c> or <c>make viewhtml</c>.  Other targets do things like checking my source against the DTD (<xref ref=\"processing-dtd\" />).  I have split out the variable definitions in a way that a collaborator can join the project and simply edit the file of definitions just once to reflect their setup, and still participate in future upgrades to the script by pulling from GitHub and not overwrite their local information.</p>\n\n    <p>My use of <c>make</c> is a bit of an abuse, since it is really designed for large software projects, with the aim of reducing duplicative compilations and that is not at all the purpose.  You could likely have exactly the same effect with a shell script and a case (or switch) statement.</p>\n\n    <p>My general strategy is to assemble all the necessary files into a temporary directory (under <c>/tmp</c> in Linux) by copying them out of their permanent home, copy customizing XSL into the right place (typically <c>pretext/user</c>), run the <c>pretext</c> script as necessary and direct the results to the right place, and finally copy results out of the temporary directory if they are meant to be permanent.  Interesting, an exception to staging all these files is the source of the book itself which is only read for each conversion and then not needed for the output.  So you can just point directly to a top-level file and the <c>xinclude</c> mechanism locates any other necessary source files.</p>\n\n    <p>A good example of this general strategy is the use and placement of image files for HTML output.  It is your responsibility to place images into the location your resulting HTML files expect to locate them.  By default, this is a subdirectory of the directory holding the HTML files, named <c>images</c>.  You will want to copy images, such as photographs, out of your main source directory (<c>src/images</c>?). But you may be actively modifying source code for diagrams, and you want to re-run the <c>pretext</c> script for each run, and make sure the output of the script is directed to the correct subdirectory for the HTML output.  Running the <c>pretext</c> script frequently can get tiresome, so maybe you have a makefile target <c>make diagrams</c> that updates a permanent directory, outside of your tracked files in the repository, and you copy those files into the correct subdirectory for the output.  That way, you can update images only when you are actively editing them, or when you are producing a draft that you want to be as up-to-date as possible.  As a project matures, you can add images into the directory tracked by <c>git</c> so they are available to others without getting involved with the <c>pretext</c> script.</p>\n\n    <p>We did not say it would be easy, but we feel much of this sort of project management is outside the scope of the <pretext />\n    project itself, while in its initial stages, and existing tools to manage the complexity are available and documented.  (We <em>have</em> been encouraged to create sample scripts, which we may do.)  Just remember the strategy: stage necessary components in a temporary directory, build output in that directory, copy out desired semi-permanent results, and limit additions to the source directory to that which is original, or mature and time-consuming to reproduce.</p>\n  </paragraphs>\n  </section>\n  <section xml:id=\"xsltproc-doctest-sage\">\n    <title>Doctesting Sage Code</title>\n\n    <p>Adding computer code to your textbook is a tricky proposition.  You can propose that it is merely an illustration, and not meant to have all the necessary details, or you can make it exact, correct and executable, and then risk inevitable changes to render your code obsolete.  At least you have the option of editing and reposting online versions quickly and easily.</p>\n\n    <p>One of our main motivations for this project was mixing in code from the powerful, open source, mathematical software project, Sage (<xref ref=\"overview-sage\" />).  When you add example Sage code to illustrate mathematical ideas, you are then encouraged to also include expected output in the <tag>output</tag> element.  Here comes one of the powerful advantages of XML source and XSL processing.</p>\n\n    <p>The <c>pretext/xsl/pretext-sage-doctest.xsl</c> stylesheet, used in the usual way, will create one, or several file(s), in <em>exactly</em> the format Sage expects for automated testing.  So all your words are gone, and all your Sage input and output is packaged so Sage can run all the <tag>input</tag> and compare the results to the expected <tag>output</tag>.  See <xref ref=\"common-chunking-options\"/> for details on obtaining more than one file.</p>\n\n    <p>We have many years' experience testing hundreds of non-trivial Sage examples from textbooks, for linear algebra and abstract algebra.  Roughly every six months, we discover ten to twenty examples that fail.  Frequently the failures are trivial (usually output gets re-ordered), but some are significant changes in behavior that leads us to re-word surrounding guidance in the text, and in a few cases the failures have exposed bugs introduced into Sage.  It has been relatively easy to do this maintenance on a regular basis, and if it had not been done, the accumulated errors would be enough to greatly degrade confidence in the accuracy of the examples.</p>\n\n    <p>Exact details for this process can be found in <xref ref=\"topic-doctest-sage\" />.  Note that Sage is really just a huge Python library, so it might be possible to test pure Python code with this facility, but we have not tested this at all.  Similar support for other languages can be considered if requested for use in a serious project.</p>\n  </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/frontmatter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the documentation of PreTeXt              -->\n<!--                                                                -->\n<!--         The PreTeXt Guide                                      -->\n<!--                                                                -->\n<!-- Copyright (C) 2013-2019                                        -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller -->\n<!-- See the file COPYING for copying conditions.                   -->\n\n\n<frontmatter xml:id=\"guide\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <bibinfo>\n        <author>\n            <personname>Robert A. Beezer</personname>\n            <department>Department of Mathematics and Computer Science</department>\n            <institution>University of Puget Sound</institution>\n            <email>beezer@pugetsound.edu</email>\n        </author>\n\n        <author>\n            <personname>David Farmer</personname>\n            <institution>American Institute of Mathematics</institution>\n            <email>farmer@aimath.org</email>\n        </author>\n\n        <author>\n            <personname>Alex Jordan</personname>\n            <department>Department of Mathematics</department>\n            <institution>Portland Community College</institution>\n            <email>alex.jordan@pcc.edu</email>\n        </author>\n\n        <author>\n            <personname>Mitchel T. Keller</personname>\n            <institution>Morningside College</institution>\n        </author>\n\n        <author>\n            <personname>Oscar Levin</personname>\n            <institution>University of Northern Colorado</institution>\n        </author>\n\n        <date><today /></date>\n\n        <copyright>\n            <year>2013<ndash />2019</year>\n            <holder>Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller</holder>\n            <shortlicense>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled <q>GNU Free Documentation License</q>.</shortlicense>\n        </copyright>\n    </bibinfo>\n\n    <titlepage>\n        <titlepage-items/>\n    </titlepage>\n\n    <colophon xml:id=\"colophon\">\n        <colophon-items/>\n    </colophon>\n\n    <xi:include href=\"preface.xml\"/>\n\n</frontmatter>\n"
  },
  {
    "path": "doc/guide/generated/asymptote/gaussian-histogram.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.9.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='400pt' height='200.326pt' viewBox='277.445 227.505 400 200.326'>\n<defs>\n<path id='g0-0' d='M7.878456-2.749689C8.081694-2.749689 8.296887-2.749689 8.296887-2.988792S8.081694-3.227895 7.878456-3.227895H1.41071C1.207472-3.227895 .992279-3.227895 .992279-2.988792S1.207472-2.749689 1.41071-2.749689H7.878456Z'/>\n<path id='g2-48' d='M5.355915-3.825654C5.355915-4.817933 5.296139-5.786301 4.865753-6.694894C4.375592-7.687173 3.514819-7.950187 2.929016-7.950187C2.235616-7.950187 1.3868-7.603487 .944458-6.611208C.609714-5.858032 .490162-5.116812 .490162-3.825654C.490162-2.666002 .573848-1.793275 1.004234-.944458C1.470486-.035866 2.295392 .251059 2.917061 .251059C3.957161 .251059 4.554919-.37061 4.901619-1.06401C5.332005-1.960648 5.355915-3.132254 5.355915-3.825654ZM2.917061 .011955C2.534496 .011955 1.75741-.203238 1.530262-1.506351C1.398755-2.223661 1.398755-3.132254 1.398755-3.969116C1.398755-4.94944 1.398755-5.834122 1.590037-6.539477C1.793275-7.340473 2.402989-7.711083 2.917061-7.711083C3.371357-7.711083 4.064757-7.436115 4.291905-6.40797C4.447323-5.726526 4.447323-4.782067 4.447323-3.969116C4.447323-3.16812 4.447323-2.259527 4.315816-1.530262C4.088667-.215193 3.335492 .011955 2.917061 .011955Z'/>\n<path id='g2-49' d='M3.443088-7.663263C3.443088-7.938232 3.443088-7.950187 3.203985-7.950187C2.917061-7.627397 2.319303-7.185056 1.08792-7.185056V-6.838356C1.362889-6.838356 1.960648-6.838356 2.618182-7.149191V-.920548C2.618182-.490162 2.582316-.3467 1.530262-.3467H1.159651V0C1.482441-.02391 2.642092-.02391 3.036613-.02391S4.578829-.02391 4.901619 0V-.3467H4.531009C3.478954-.3467 3.443088-.490162 3.443088-.920548V-7.663263Z'/>\n<path id='g2-50' d='M5.260274-2.008468H4.99726C4.961395-1.80523 4.865753-1.147696 4.746202-.956413C4.662516-.848817 3.981071-.848817 3.622416-.848817H1.41071C1.733499-1.123786 2.462765-1.888917 2.773599-2.175841C4.590785-3.849564 5.260274-4.471233 5.260274-5.654795C5.260274-7.029639 4.172354-7.950187 2.785554-7.950187S.585803-6.766625 .585803-5.738481C.585803-5.128767 1.111831-5.128767 1.147696-5.128767C1.398755-5.128767 1.709589-5.308095 1.709589-5.69066C1.709589-6.025405 1.482441-6.252553 1.147696-6.252553C1.0401-6.252553 1.016189-6.252553 .980324-6.240598C1.207472-7.053549 1.853051-7.603487 2.630137-7.603487C3.646326-7.603487 4.267995-6.75467 4.267995-5.654795C4.267995-4.638605 3.682192-3.753923 3.000747-2.988792L.585803-.286924V0H4.94944L5.260274-2.008468Z'/>\n<path id='g2-51' d='M2.199751-4.291905C1.996513-4.27995 1.948692-4.267995 1.948692-4.160399C1.948692-4.040847 2.008468-4.040847 2.223661-4.040847H2.773599C3.789788-4.040847 4.244085-3.203985 4.244085-2.056289C4.244085-.490162 3.431133-.071731 2.84533-.071731C2.271482-.071731 1.291158-.3467 .944458-1.135741C1.327024-1.075965 1.673724-1.291158 1.673724-1.721544C1.673724-2.068244 1.422665-2.307347 1.08792-2.307347C.800996-2.307347 .490162-2.139975 .490162-1.685679C.490162-.621669 1.554172 .251059 2.881196 .251059C4.303861 .251059 5.355915-.836862 5.355915-2.044334C5.355915-3.144209 4.471233-4.004981 3.323537-4.208219C4.363636-4.507098 5.033126-5.379826 5.033126-6.312329C5.033126-7.256787 4.052802-7.950187 2.893151-7.950187C1.697634-7.950187 .812951-7.220922 .812951-6.348194C.812951-5.869988 1.183562-5.774346 1.362889-5.774346C1.613948-5.774346 1.900872-5.953674 1.900872-6.312329C1.900872-6.694894 1.613948-6.862267 1.350934-6.862267C1.279203-6.862267 1.255293-6.862267 1.219427-6.850311C1.673724-7.663263 2.797509-7.663263 2.857285-7.663263C3.251806-7.663263 4.028892-7.483935 4.028892-6.312329C4.028892-6.085181 3.993026-5.415691 3.646326-4.901619C3.287671-4.375592 2.881196-4.339726 2.558406-4.327771L2.199751-4.291905Z'/>\n<path id='g2-52' d='M4.315816-7.782814C4.315816-8.009963 4.315816-8.069738 4.148443-8.069738C4.052802-8.069738 4.016936-8.069738 3.921295-7.926276L.32279-2.343213V-1.996513H3.466999V-.908593C3.466999-.466252 3.443088-.3467 2.570361-.3467H2.331258V0C2.606227-.02391 3.550685-.02391 3.88543-.02391S5.176588-.02391 5.451557 0V-.3467H5.212453C4.351681-.3467 4.315816-.466252 4.315816-.908593V-1.996513H5.523288V-2.343213H4.315816V-7.782814ZM3.526775-6.850311V-2.343213H.621669L3.526775-6.850311Z'/>\n<path id='g1-58' d='M2.199751-.573848C2.199751-.920548 1.912827-1.159651 1.625903-1.159651C1.279203-1.159651 1.0401-.872727 1.0401-.585803C1.0401-.239103 1.327024 0 1.613948 0C1.960648 0 2.199751-.286924 2.199751-.573848Z'/>\n<path id='g1-61' d='M5.128767-8.524035C5.128767-8.53599 5.200498-8.715318 5.200498-8.739228C5.200498-8.88269 5.080946-8.966376 4.985305-8.966376C4.925529-8.966376 4.817933-8.966376 4.722291-8.703362L.71731 2.546451C.71731 2.558406 .645579 2.737733 .645579 2.761644C.645579 2.905106 .765131 2.988792 .860772 2.988792C.932503 2.988792 1.0401 2.976837 1.123786 2.725778L5.128767-8.524035Z'/>\n<path id='g1-80' d='M3.53873-3.801743H5.547198C7.197011-3.801743 8.846824-5.021171 8.846824-6.38406C8.846824-7.316563 8.057783-8.16538 6.551432-8.16538H2.857285C2.630137-8.16538 2.52254-8.16538 2.52254-7.938232C2.52254-7.81868 2.630137-7.81868 2.809465-7.81868C3.53873-7.81868 3.53873-7.723039 3.53873-7.591532C3.53873-7.567621 3.53873-7.49589 3.490909-7.316563L1.876961-.884682C1.769365-.466252 1.745455-.3467 .908593-.3467C.681445-.3467 .561893-.3467 .561893-.131507C.561893 0 .669489 0 .74122 0C.968369 0 1.207472-.02391 1.43462-.02391H2.833375C3.060523-.02391 3.311582 0 3.53873 0C3.634371 0 3.765878 0 3.765878-.227148C3.765878-.3467 3.658281-.3467 3.478954-.3467C2.761644-.3467 2.749689-.430386 2.749689-.549938C2.749689-.609714 2.761644-.6934 2.773599-.753176L3.53873-3.801743ZM4.399502-7.352428C4.507098-7.79477 4.554919-7.81868 5.021171-7.81868H6.204732C7.10137-7.81868 7.84259-7.531756 7.84259-6.635118C7.84259-6.324284 7.687173-5.308095 7.137235-4.758157C6.933998-4.542964 6.360149-4.088667 5.272229-4.088667H3.58655L4.399502-7.352428Z'/>\n<path id='g1-100' d='M6.01345-7.998007C6.025405-8.045828 6.049315-8.117559 6.049315-8.177335C6.049315-8.296887 5.929763-8.296887 5.905853-8.296887C5.893898-8.296887 5.308095-8.249066 5.248319-8.237111C5.045081-8.225156 4.865753-8.201245 4.65056-8.18929C4.351681-8.16538 4.267995-8.153425 4.267995-7.938232C4.267995-7.81868 4.363636-7.81868 4.531009-7.81868C5.116812-7.81868 5.128767-7.711083 5.128767-7.591532C5.128767-7.519801 5.104857-7.424159 5.092902-7.388294L4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.71731 4.244085-.968369 4.327771-1.303113L6.01345-7.998007ZM3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665Z'/>\n<path id='g1-120' d='M5.66675-4.877709C5.284184-4.805978 5.140722-4.519054 5.140722-4.291905C5.140722-4.004981 5.36787-3.90934 5.535243-3.90934C5.893898-3.90934 6.144956-4.220174 6.144956-4.542964C6.144956-5.045081 5.571108-5.272229 5.068991-5.272229C4.339726-5.272229 3.93325-4.554919 3.825654-4.327771C3.550685-5.224408 2.809465-5.272229 2.594271-5.272229C1.374844-5.272229 .729265-3.706102 .729265-3.443088C.729265-3.395268 .777086-3.335492 .860772-3.335492C.956413-3.335492 .980324-3.407223 1.004234-3.455044C1.41071-4.782067 2.211706-5.033126 2.558406-5.033126C3.096389-5.033126 3.203985-4.531009 3.203985-4.244085C3.203985-3.981071 3.132254-3.706102 2.988792-3.132254L2.582316-1.494396C2.402989-.777086 2.056289-.119552 1.422665-.119552C1.362889-.119552 1.06401-.119552 .812951-.274969C1.243337-.358655 1.338979-.71731 1.338979-.860772C1.338979-1.099875 1.159651-1.243337 .932503-1.243337C.645579-1.243337 .334745-.992279 .334745-.609714C.334745-.107597 .896638 .119552 1.41071 .119552C1.984558 .119552 2.391034-.334745 2.642092-.824907C2.833375-.119552 3.431133 .119552 3.873474 .119552C5.092902 .119552 5.738481-1.446575 5.738481-1.709589C5.738481-1.769365 5.69066-1.817186 5.618929-1.817186C5.511333-1.817186 5.499377-1.75741 5.463512-1.661768C5.140722-.609714 4.447323-.119552 3.90934-.119552C3.490909-.119552 3.263761-.430386 3.263761-.920548C3.263761-1.183562 3.311582-1.374844 3.502864-2.163885L3.921295-3.789788C4.100623-4.507098 4.507098-5.033126 5.057036-5.033126C5.080946-5.033126 5.415691-5.033126 5.66675-4.877709Z'/>\n</defs>\n<g id='page1'>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 0 201.077L 401.5 201.077L 401.5 0L 0 0L 0 201.077Z' fill='#ffffff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 174.298L 401.249 2.29788' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 174.298L 395.559 174.298' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 132.287L 395.559 132.287' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 90.2771L 395.559 90.2771' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 48.2667L 395.559 48.2667' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 6.25626L 395.559 6.25626' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 153.293L 398.404 153.293' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 111.282L 398.404 111.282' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 69.2719L 398.404 69.2719' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 27.2615L 398.404 27.2615' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 174.298L 38.116 2.29788' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 174.298L 43.8065 174.298' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 132.287L 43.8065 132.287' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 90.2771L 43.8065 90.2771' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 48.2667L 43.8065 48.2667' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 6.25626L 43.8065 6.25626' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 153.293L 40.9613 153.293' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 111.282L 40.9613 111.282' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 69.2719L 40.9613 69.2719' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 27.2615L 40.9613 27.2615' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='295.981287' y='405.829002' xlink:href='#g2-48'/>\n<use x='301.834277' y='405.829002' xlink:href='#g1-58'/>\n<use x='305.085939' y='405.829002' xlink:href='#g2-48'/>\n<use x='295.981287' y='363.975561' xlink:href='#g2-48'/>\n<use x='301.834277' y='363.975561' xlink:href='#g1-58'/>\n<use x='305.085939' y='363.975561' xlink:href='#g2-49'/>\n<use x='295.981287' y='322.122105' xlink:href='#g2-48'/>\n<use x='301.834277' y='322.122105' xlink:href='#g1-58'/>\n<use x='305.085939' y='322.122105' xlink:href='#g2-50'/>\n<use x='295.981287' y='280.268649' xlink:href='#g2-48'/>\n<use x='301.834277' y='280.268649' xlink:href='#g1-58'/>\n<use x='305.085939' y='280.268649' xlink:href='#g2-51'/>\n<use x='295.981287' y='238.415193' xlink:href='#g2-48'/>\n<use x='301.834277' y='238.415193' xlink:href='#g1-58'/>\n<use x='305.085939' y='238.415193' xlink:href='#g2-52'/>\n<g transform='matrix(0 -1 1 0 -24.514 606.312)'>\n<use x='274.303622' y='312.424143' xlink:href='#g1-100'/>\n<use x='280.386315' y='312.424143' xlink:href='#g1-80'/>\n<use x='288.907081' y='312.424143' xlink:href='#g1-61'/>\n<use x='294.760071' y='312.424143' xlink:href='#g1-100'/>\n<use x='300.842764' y='312.424143' xlink:href='#g1-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 2.29788L 401.249 2.29788' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 65.7087 2.29788L 65.7087 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 117.761 2.29788L 117.761 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 169.812 2.29788L 169.812 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 221.864 2.29788L 221.864 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 273.916 2.29788L 273.916 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 325.968 2.29788L 325.968 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 378.02 2.29788L 378.02 7.98843' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 39.6828 2.29788L 39.6828 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 91.7346 2.29788L 91.7346 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 143.786 2.29788L 143.786 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 195.838 2.29788L 195.838 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 247.89 2.29788L 247.89 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 299.942 2.29788L 299.942 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 351.994 2.29788L 351.994 5.14315' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 174.298L 401.249 174.298' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 65.7087 174.298L 65.7087 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 117.761 174.298L 117.761 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 169.812 174.298L 169.812 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 221.864 174.298L 221.864 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 273.916 174.298L 273.916 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 325.968 174.298L 325.968 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 378.02 174.298L 378.02 168.607' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 39.6828 174.298L 39.6828 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 91.7346 174.298L 91.7346 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 143.786 174.298L 143.786 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 195.838 174.298L 195.838 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 247.89 174.298L 247.89 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 299.942 174.298L 299.942 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 351.994 174.298L 351.994 171.453' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='335.336072' y='415.049628' xlink:href='#g0-0'/>\n<use x='344.634569' y='415.049628' xlink:href='#g2-51'/>\n<use x='387.19341' y='415.049628' xlink:href='#g0-0'/>\n<use x='396.491907' y='415.049628' xlink:href='#g2-50'/>\n<use x='439.050749' y='415.049628' xlink:href='#g0-0'/>\n<use x='448.349246' y='415.049628' xlink:href='#g2-49'/>\n<use x='495.55731' y='415.049567' xlink:href='#g2-48'/>\n<use x='547.414648' y='415.049567' xlink:href='#g2-49'/>\n<use x='599.271987' y='415.049567' xlink:href='#g2-50'/>\n<use x='651.129325' y='415.049567' xlink:href='#g2-51'/>\n<use x='492.984286' y='426.275278' xlink:href='#g1-120'/>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 173.968L 41.7473 173.877L 45.3786 173.763L 49.01 173.622L 52.6413 173.448L 56.2726 173.235L 59.904 172.974L 63.5353 172.657L 67.1666 172.274L 70.798 171.813L 74.4293 171.263L 78.0606 170.609L 81.6919 169.836L 85.3233 168.927L 88.9546 167.864L 92.5859 166.628L 96.2173 165.199L 99.8486 163.556L 103.48 161.679L 107.111 159.545L 110.743 157.134L 114.374 154.426L 118.005 151.402L 121.637 148.046L 125.268 144.345L 128.899 140.288L 132.531 135.869L 136.162 131.086L 139.793 125.944L 143.425 120.453L 147.056 114.629L 150.687 108.497L 154.319 102.086L 157.95 95.436L 161.581 88.5915L 165.213 81.6052L 168.844 74.5361L 172.475 67.4492L 176.107 60.4145L 179.738 53.506L 183.369 46.8004L 187.001 40.376L 190.632 34.3108L 194.263 28.6814L 197.895 23.561L 201.526 19.0181L 205.157 15.115L 208.789 11.906L 212.42 9.43673L 216.051 7.74247L 219.683 6.84775L 223.314 6.7656L 226.945 7.4972L 230.577 9.03192L 234.208 11.3475L 237.839 14.4107L 241.471 18.1781L 245.102 22.5968L 248.733 27.6061L 252.364 33.1386L 255.996 39.1221L 259.627 45.4804L 263.258 52.1356L 266.89 59.0094L 270.521 66.0248L 274.152 73.1069L 277.784 80.185L 281.415 87.1929L 285.046 94.0704L 288.678 100.764L 292.309 107.226L 295.94 113.417L 299.572 119.305L 303.203 124.865L 306.834 130.078L 310.466 134.934L 314.097 139.426L 317.728 143.556L 321.36 147.329L 324.991 150.753L 328.622 153.842L 332.254 156.612L 335.885 159.082L 339.516 161.27L 343.148 163.197L 346.779 164.886L 350.41 166.356L 354.042 167.629L 357.673 168.725L 361.304 169.664L 364.936 170.463L 368.567 171.14L 372.198 171.71L 375.83 172.187L 379.461 172.585L 383.092 172.915L 386.724 173.186L 390.355 173.409L 393.986 173.59L 397.618 173.737L 401.249 173.856' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 174.298L 48.7964 174.298L 48.7964 174.093L 38.116 174.093L 38.116 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 48.7964 174.093L 48.7964 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 38.116 174.298L 38.116 174.093L 48.7964 174.093' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 48.7964 174.298L 59.4767 174.298L 59.4767 173.479L 48.7964 173.479L 48.7964 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 59.4767 173.479L 59.4767 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 48.7964 174.093L 48.7964 173.479L 59.4767 173.479' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 59.4767 174.298L 70.1571 174.298L 70.1571 172.25L 59.4767 172.25L 59.4767 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 70.1571 172.25L 70.1571 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 59.4767 173.479L 59.4767 172.25L 70.1571 172.25' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 70.1571 174.298L 80.8375 174.298L 80.8375 171.636L 70.1571 171.636L 70.1571 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 80.8375 171.636L 80.8375 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 70.1571 172.25L 70.1571 171.636L 80.8375 171.636' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 80.8375 174.298L 91.5179 174.298L 91.5179 167.95L 80.8375 167.95L 80.8375 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 91.5179 167.95L 91.5179 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 80.8375 171.636L 80.8375 167.95L 91.5179 167.95' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 91.5179 174.298L 102.198 174.298L 102.198 162.422L 91.5179 162.422L 91.5179 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 102.198 162.422L 102.198 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 91.5179 167.95L 91.5179 162.422L 102.198 162.422' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 102.198 174.298L 112.879 174.298L 112.879 159.555L 102.198 159.555L 102.198 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 112.879 159.555L 112.879 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 102.198 162.422L 102.198 159.555L 112.879 159.555' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 112.879 174.298L 123.559 174.298L 123.559 148.703L 112.879 148.703L 112.879 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 123.559 148.703L 123.559 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 112.879 159.555L 112.879 148.703L 123.559 148.703' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 123.559 174.298L 134.239 174.298L 134.239 138.26L 123.559 138.26L 123.559 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 134.239 138.26L 134.239 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 123.559 148.703L 123.559 138.26L 134.239 138.26' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 134.239 174.298L 144.92 174.298L 144.92 123.517L 134.239 123.517L 134.239 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 144.92 123.517L 144.92 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 134.239 138.26L 134.239 123.517L 144.92 123.517' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 144.92 174.298L 155.6 174.298L 155.6 110.003L 144.92 110.003L 144.92 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 155.6 110.003L 155.6 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 144.92 123.517L 144.92 110.003L 155.6 110.003' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 155.6 174.298L 166.281 174.298L 166.281 86.8645L 155.6 86.8645L 155.6 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 166.281 86.8645L 166.281 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 155.6 110.003L 155.6 86.8645L 166.281 86.8645' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 166.281 174.298L 176.961 174.298L 176.961 66.1836L 166.281 66.1836L 166.281 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 176.961 66.1836L 176.961 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 166.281 86.8645L 166.281 66.1836L 176.961 66.1836' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 176.961 174.298L 187.641 174.298L 187.641 46.1169L 176.961 46.1169L 176.961 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 187.641 46.1169L 187.641 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 176.961 66.1836L 176.961 46.1169L 187.641 46.1169' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 187.641 174.298L 198.322 174.298L 198.322 34.036L 187.641 34.036L 187.641 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 198.322 34.036L 198.322 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 187.641 46.1169L 187.641 34.036L 198.322 34.036' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 198.322 174.298L 209.002 174.298L 209.002 21.7503L 198.322 21.7503L 198.322 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 209.002 21.7503L 209.002 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 198.322 34.036L 198.322 21.7503L 209.002 21.7503' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 209.002 174.298L 219.683 174.298L 219.683 2.29788L 209.002 2.29788L 209.002 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 219.683 2.29788L 219.683 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 209.002 21.7503L 209.002 2.29788L 219.683 2.29788' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 219.683 174.298L 230.363 174.298L 230.363 15.4026L 219.683 15.4026L 219.683 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 230.363 15.4026L 230.363 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 219.683 2.29788L 219.683 15.4026L 230.363 15.4026' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 230.363 174.298L 241.043 174.298L 241.043 3.93597L 230.363 3.93597L 230.363 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 241.043 3.93597L 241.043 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 230.363 15.4026L 230.363 3.93597L 241.043 3.93597' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 241.043 174.298L 251.724 174.298L 251.724 36.0836L 241.043 36.0836L 241.043 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 251.724 36.0836L 251.724 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 241.043 3.93597L 241.043 36.0836L 251.724 36.0836' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 251.724 174.298L 262.404 174.298L 262.404 42.2264L 251.724 42.2264L 251.724 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 262.404 42.2264L 262.404 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 251.724 36.0836L 251.724 42.2264L 262.404 42.2264' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 262.404 174.298L 273.084 174.298L 273.084 67.0026L 262.404 67.0026L 262.404 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 273.084 67.0026L 273.084 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 262.404 42.2264L 262.404 67.0026L 273.084 67.0026' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 273.084 174.298L 283.765 174.298L 283.765 81.1312L 273.084 81.1312L 273.084 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 283.765 81.1312L 283.765 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 273.084 67.0026L 273.084 81.1312L 283.765 81.1312' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 283.765 174.298L 294.445 174.298L 294.445 101.198L 283.765 101.198L 283.765 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 294.445 101.198L 294.445 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 283.765 81.1312L 283.765 101.198L 294.445 101.198' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 294.445 174.298L 305.126 174.298L 305.126 113.688L 294.445 113.688L 294.445 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 305.126 113.688L 305.126 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 294.445 101.198L 294.445 113.688L 305.126 113.688' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 305.126 174.298L 315.806 174.298L 315.806 136.212L 305.126 136.212L 305.126 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 315.806 136.212L 315.806 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 305.126 113.688L 305.126 136.212L 315.806 136.212' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 315.806 174.298L 326.486 174.298L 326.486 147.884L 315.806 147.884L 315.806 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 326.486 147.884L 326.486 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 315.806 136.212L 315.806 147.884L 326.486 147.884' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 326.486 174.298L 337.167 174.298L 337.167 154.845L 326.486 154.845L 326.486 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 337.167 154.845L 337.167 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 326.486 147.884L 326.486 154.845L 337.167 154.845' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 337.167 174.298L 347.847 174.298L 347.847 164.674L 337.167 164.674L 337.167 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 347.847 164.674L 347.847 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 337.167 154.845L 337.167 164.674L 347.847 164.674' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 347.847 174.298L 358.528 174.298L 358.528 166.926L 347.847 166.926L 347.847 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 358.528 166.926L 358.528 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 347.847 164.674L 347.847 166.926L 358.528 166.926' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 358.528 174.298L 369.208 174.298L 369.208 169.384L 358.528 169.384L 358.528 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 369.208 169.384L 369.208 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 358.528 166.926L 358.528 169.384L 369.208 169.384' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 369.208 174.298L 379.888 174.298L 379.888 172.66L 369.208 172.66L 369.208 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 379.888 172.66L 379.888 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 369.208 169.384L 369.208 172.66L 379.888 172.66' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 379.888 174.298L 390.569 174.298L 390.569 172.865L 379.888 172.865L 379.888 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 390.569 172.865L 390.569 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 379.888 172.66L 379.888 172.865L 390.569 172.865' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 390.569 174.298L 401.249 174.298L 401.249 173.479L 390.569 173.479L 390.569 174.298Z' fill='#ff7f7f'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 173.479L 401.249 174.298' fill='none' stroke='#ff7f7f' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 390.569 172.865L 390.569 173.479L 401.249 173.479' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 277.445 227.505)'>\n<path d='M 401.249 173.479L 401.249 174.298' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "doc/guide/generated/asymptote/vimodes.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.9.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='362.0885pt' height='156.122pt' viewBox='95.7215 129.793 362.0885 156.122'>\n<defs>\n<path id='g1-47' d='M4.363636-7.0934C4.41345-7.222914 4.41345-7.252802 4.41345-7.272727C4.41345-7.382316 4.323786-7.47198 4.214197-7.47198C4.07472-7.47198 4.034869-7.372354 4.004981-7.272727L.607721 2.11208C.557908 2.241594 .557908 2.271482 .557908 2.291407C.557908 2.400996 .647572 2.49066 .757161 2.49066C.896638 2.49066 .936488 2.391034 .966376 2.291407L4.363636-7.0934Z'/>\n<path id='g1-58' d='M1.912827-3.765878C1.912827-4.054795 1.673724-4.293898 1.384807-4.293898S.856787-4.054795 .856787-3.765878S1.09589-3.237858 1.384807-3.237858S1.912827-3.476961 1.912827-3.765878ZM1.912827-.52802C1.912827-.816936 1.673724-1.05604 1.384807-1.05604S.856787-.816936 .856787-.52802S1.09589 0 1.384807 0S1.912827-.239103 1.912827-.52802Z'/>\n<path id='g1-63' d='M2.34122-2.480697C2.34122-3.73599 3.307597-4.443337 3.656289-4.702366C3.92528-4.901619 4.134496-5.260274 4.134496-5.678705C4.134496-6.256538 3.73599-7.023661 2.251557-7.023661C1.175592-7.023661 .557908-6.346202 .557908-5.69863C.557908-5.3599 .787049-5.220423 1.016189-5.220423C1.295143-5.220423 1.474471-5.419676 1.474471-5.678705C1.474471-6.127024 1.05604-6.127024 .916563-6.127024C1.225405-6.655044 1.803238-6.804483 2.221669-6.804483C3.307597-6.804483 3.307597-6.127024 3.307597-5.738481C3.307597-5.150685 3.148194-4.971357 2.968867-4.79203C2.311333-4.07472 2.092154-3.158157 2.092154-2.550436V-2.102117C2.092154-1.92279 2.092154-1.863014 2.211706-1.863014C2.34122-1.863014 2.34122-1.952677 2.34122-2.132005V-2.480697ZM2.739726-.52802C2.739726-.816936 2.500623-1.05604 2.211706-1.05604S1.683686-.816936 1.683686-.52802S1.92279 0 2.211706 0S2.739726-.239103 2.739726-.52802Z'/>\n<path id='g1-69' d='M1.354919-.777086C1.354919-.418431 1.334994-.308842 .56787-.308842H.328767V0H6.07721L6.495641-2.570361H6.246575C5.997509-1.036115 5.768369-.308842 4.054795-.308842H2.729763C2.261519-.308842 2.241594-.37858 2.241594-.707347V-3.367372H3.138232C4.104608-3.367372 4.214197-3.048568 4.214197-2.201743H4.463263V-4.841843H4.214197C4.214197-3.985056 4.104608-3.676214 3.138232-3.676214H2.241594V-6.067248C2.241594-6.396015 2.261519-6.465753 2.729763-6.465753H4.014944C5.539228-6.465753 5.808219-5.917808 5.967621-4.533001H6.216687L5.937733-6.774595H.328767V-6.465753H.56787C1.334994-6.465753 1.354919-6.356164 1.354919-5.997509V-.777086Z'/>\n<path id='g1-97' d='M3.317559-.757161C3.35741-.358655 3.626401 .059776 4.094645 .059776C4.303861 .059776 4.911582-.079701 4.911582-.886675V-1.444583H4.662516V-.886675C4.662516-.308842 4.41345-.249066 4.303861-.249066C3.975093-.249066 3.935243-.697385 3.935243-.747198V-2.739726C3.935243-3.158157 3.935243-3.5467 3.576588-3.915318C3.188045-4.303861 2.689913-4.463263 2.211706-4.463263C1.39477-4.463263 .707347-3.995019 .707347-3.337484C.707347-3.038605 .9066-2.86924 1.165629-2.86924C1.444583-2.86924 1.62391-3.068493 1.62391-3.327522C1.62391-3.447073 1.574097-3.775841 1.115816-3.785803C1.384807-4.134496 1.872976-4.244085 2.191781-4.244085C2.67995-4.244085 3.247821-3.855542 3.247821-2.968867V-2.600249C2.739726-2.570361 2.042341-2.540473 1.414695-2.241594C.667497-1.902864 .418431-1.384807 .418431-.946451C.418431-.139477 1.384807 .109589 2.012453 .109589C2.669988 .109589 3.128269-.288917 3.317559-.757161ZM3.247821-2.391034V-1.39477C3.247821-.448319 2.530511-.109589 2.082192-.109589C1.594022-.109589 1.185554-.458281 1.185554-.956413C1.185554-1.504359 1.603985-2.331258 3.247821-2.391034Z'/>\n<path id='g1-99' d='M1.165629-2.171856C1.165629-3.795766 1.982565-4.214197 2.510585-4.214197C2.600249-4.214197 3.227895-4.204234 3.576588-3.845579C3.16812-3.815691 3.108344-3.516812 3.108344-3.387298C3.108344-3.128269 3.287671-2.929016 3.566625-2.929016C3.825654-2.929016 4.024907-3.098381 4.024907-3.39726C4.024907-4.07472 3.267746-4.463263 2.500623-4.463263C1.255293-4.463263 .33873-3.387298 .33873-2.15193C.33873-.876712 1.325031 .109589 2.480697 .109589C3.815691 .109589 4.134496-1.085928 4.134496-1.185554S4.034869-1.285181 4.004981-1.285181C3.915318-1.285181 3.895392-1.24533 3.875467-1.185554C3.58655-.259029 2.938979-.139477 2.570361-.139477C2.042341-.139477 1.165629-.56787 1.165629-2.171856Z'/>\n<path id='g1-101' d='M1.115816-2.510585C1.175592-3.995019 2.012453-4.244085 2.351183-4.244085C3.377335-4.244085 3.476961-2.899128 3.476961-2.510585H1.115816ZM1.105853-2.30137H3.88543C4.104608-2.30137 4.134496-2.30137 4.134496-2.510585C4.134496-3.496887 3.596513-4.463263 2.351183-4.463263C1.195517-4.463263 .278954-3.437111 .278954-2.191781C.278954-.856787 1.325031 .109589 2.470735 .109589C3.686177 .109589 4.134496-.996264 4.134496-1.185554C4.134496-1.285181 4.054795-1.305106 4.004981-1.305106C3.915318-1.305106 3.895392-1.24533 3.875467-1.165629C3.526775-.139477 2.630137-.139477 2.530511-.139477C2.032379-.139477 1.633873-.438356 1.404732-.806974C1.105853-1.285181 1.105853-1.942715 1.105853-2.30137Z'/>\n<path id='g1-105' d='M1.763387-4.403487L.368618-4.293898V-3.985056C1.016189-3.985056 1.105853-3.92528 1.105853-3.437111V-.757161C1.105853-.308842 .996264-.308842 .328767-.308842V0C.647572-.009963 1.185554-.029888 1.424658-.029888C1.77335-.029888 2.122042-.009963 2.460772 0V-.308842C1.803238-.308842 1.763387-.358655 1.763387-.747198V-4.403487ZM1.803238-6.136986C1.803238-6.455791 1.554172-6.665006 1.275218-6.665006C.966376-6.665006 .747198-6.396015 .747198-6.136986C.747198-5.867995 .966376-5.608966 1.275218-5.608966C1.554172-5.608966 1.803238-5.818182 1.803238-6.136986Z'/>\n<path id='g1-110' d='M1.09589-3.427148V-.757161C1.09589-.308842 .986301-.308842 .318804-.308842V0C.667497-.009963 1.175592-.029888 1.444583-.029888C1.703611-.029888 2.221669-.009963 2.560399 0V-.308842C1.892902-.308842 1.783313-.308842 1.783313-.757161V-2.590286C1.783313-3.626401 2.49066-4.184309 3.128269-4.184309C3.755915-4.184309 3.865504-3.646326 3.865504-3.078456V-.757161C3.865504-.308842 3.755915-.308842 3.088418-.308842V0C3.437111-.009963 3.945205-.029888 4.214197-.029888C4.473225-.029888 4.991283-.009963 5.330012 0V-.308842C4.811955-.308842 4.562889-.308842 4.552927-.607721V-2.510585C4.552927-3.367372 4.552927-3.676214 4.244085-4.034869C4.104608-4.204234 3.775841-4.403487 3.198007-4.403487C2.470735-4.403487 2.002491-3.975093 1.723537-3.35741V-4.403487L.318804-4.293898V-3.985056C1.016189-3.985056 1.09589-3.915318 1.09589-3.427148Z'/>\n<path id='g1-111' d='M4.692403-2.132005C4.692403-3.407223 3.696139-4.463263 2.49066-4.463263C1.24533-4.463263 .278954-3.377335 .278954-2.132005C.278954-.846824 1.315068 .109589 2.480697 .109589C3.686177 .109589 4.692403-.86675 4.692403-2.132005ZM2.49066-.139477C2.062267-.139477 1.62391-.348692 1.354919-.806974C1.105853-1.24533 1.105853-1.853051 1.105853-2.211706C1.105853-2.600249 1.105853-3.138232 1.344956-3.576588C1.613948-4.034869 2.082192-4.244085 2.480697-4.244085C2.919054-4.244085 3.347447-4.024907 3.606476-3.596513S3.865504-2.590286 3.865504-2.211706C3.865504-1.853051 3.865504-1.315068 3.646326-.876712C3.427148-.428394 2.988792-.139477 2.49066-.139477Z'/>\n<path id='g1-114' d='M1.663761-3.307597V-4.403487L.278954-4.293898V-3.985056C.976339-3.985056 1.05604-3.915318 1.05604-3.427148V-.757161C1.05604-.308842 .946451-.308842 .278954-.308842V0C.667497-.009963 1.135741-.029888 1.414695-.029888C1.8132-.029888 2.281445-.029888 2.67995 0V-.308842H2.470735C1.733499-.308842 1.713574-.418431 1.713574-.777086V-2.311333C1.713574-3.297634 2.132005-4.184309 2.889166-4.184309C2.958904-4.184309 2.978829-4.184309 2.998755-4.174346C2.968867-4.164384 2.769614-4.044832 2.769614-3.785803C2.769614-3.506849 2.978829-3.35741 3.198007-3.35741C3.377335-3.35741 3.626401-3.476961 3.626401-3.795766S3.317559-4.403487 2.889166-4.403487C2.161893-4.403487 1.803238-3.73599 1.663761-3.307597Z'/>\n<path id='g1-115' d='M2.072229-1.932752C2.291407-1.892902 3.108344-1.733499 3.108344-1.016189C3.108344-.508095 2.759651-.109589 1.982565-.109589C1.145704-.109589 .787049-.67746 .597758-1.524284C.56787-1.653798 .557908-1.693649 .458281-1.693649C.328767-1.693649 .328767-1.62391 .328767-1.444583V-.129514C.328767 .039851 .328767 .109589 .438356 .109589C.488169 .109589 .498132 .099626 .687422-.089664C.707347-.109589 .707347-.129514 .886675-.318804C1.325031 .099626 1.77335 .109589 1.982565 .109589C3.128269 .109589 3.58655-.557908 3.58655-1.275218C3.58655-1.803238 3.287671-2.102117 3.16812-2.221669C2.839352-2.540473 2.450809-2.620174 2.032379-2.699875C1.474471-2.809465 .806974-2.938979 .806974-3.516812C.806974-3.865504 1.066002-4.273973 1.92279-4.273973C3.01868-4.273973 3.068493-3.377335 3.088418-3.068493C3.098381-2.978829 3.188045-2.978829 3.20797-2.978829C3.337484-2.978829 3.337484-3.028643 3.337484-3.217933V-4.224159C3.337484-4.393524 3.337484-4.463263 3.227895-4.463263C3.178082-4.463263 3.158157-4.463263 3.028643-4.343711C2.998755-4.303861 2.899128-4.214197 2.859278-4.184309C2.480697-4.463263 2.072229-4.463263 1.92279-4.463263C.707347-4.463263 .328767-3.795766 .328767-3.237858C.328767-2.889166 .488169-2.610212 .757161-2.391034C1.075965-2.132005 1.354919-2.072229 2.072229-1.932752Z'/>\n<path id='g1-116' d='M1.723537-3.985056H3.148194V-4.293898H1.723537V-6.127024H1.474471C1.464508-5.310087 1.165629-4.244085 .18929-4.204234V-3.985056H1.036115V-1.235367C1.036115-.009963 1.96264 .109589 2.321295 .109589C3.028643 .109589 3.307597-.597758 3.307597-1.235367V-1.803238H3.058531V-1.255293C3.058531-.518057 2.759651-.139477 2.391034-.139477C1.723537-.139477 1.723537-1.046077 1.723537-1.215442V-3.985056Z'/>\n<path id='g0-67' d='M7.79477-8.141469C7.79477-8.356663 7.79477-8.416438 7.675218-8.416438C7.603487-8.416438 7.591532-8.392528 7.519801-8.272976L6.933998-7.328518C6.396015-7.998007 5.583064-8.416438 4.722291-8.416438C2.534496-8.416438 .645579-6.527522 .645579-4.088667C.645579-1.613948 2.558406 .251059 4.722291 .251059C6.682939 .251059 7.79477-1.458531 7.79477-2.773599C7.79477-2.905106 7.79477-2.976837 7.663263-2.976837C7.543711-2.976837 7.531756-2.917061 7.531756-2.833375C7.424159-.932503 6.03736-.095641 4.877709-.095641C4.040847-.095641 1.75741-.597758 1.75741-4.088667C1.75741-7.543711 4.004981-8.069738 4.865753-8.069738C6.121046-8.069738 7.220922-7.005729 7.460025-5.212453C7.483935-5.068991 7.483935-5.033126 7.627397-5.033126C7.79477-5.033126 7.79477-5.068991 7.79477-5.308095V-8.141469Z'/>\n<path id='g0-73' d='M2.594271-7.256787C2.594271-7.699128 2.630137-7.81868 3.526775-7.81868H3.789788V-8.16538C3.502864-8.141469 2.47472-8.141469 2.116065-8.141469S.71731-8.141469 .430386-8.16538V-7.81868H.6934C1.590037-7.81868 1.625903-7.699128 1.625903-7.256787V-.908593C1.625903-.466252 1.590037-.3467 .6934-.3467H.430386V0C.71731-.02391 1.745455-.02391 2.10411-.02391S3.502864-.02391 3.789788 0V-.3467H3.526775C2.630137-.3467 2.594271-.466252 2.594271-.908593V-7.256787Z'/>\n<path id='g0-78' d='M2.701868-7.998007C2.594271-8.153425 2.582316-8.16538 2.319303-8.16538H.490162V-7.81868C1.004234-7.81868 1.303113-7.81868 1.625903-7.734994V-1.255293C1.625903-.908593 1.625903-.3467 .490162-.3467V0C.800996-.02391 1.43462-.02391 1.769365-.02391S2.737733-.02391 3.048568 0V-.3467C1.912827-.3467 1.912827-.908593 1.912827-1.255293V-7.543711C2.008468-7.44807 2.008468-7.424159 2.116065-7.280697L6.77858-.179328C6.898132-.011955 6.910087 0 6.993773 0C7.10137 0 7.12528-.047821 7.137235-.071731V-6.910087C7.137235-7.256787 7.137235-7.81868 8.272976-7.81868V-8.16538C7.962142-8.141469 7.328518-8.141469 6.993773-8.141469S6.025405-8.141469 5.71457-8.16538V-7.81868C6.850311-7.81868 6.850311-7.256787 6.850311-6.910087V-1.685679L2.701868-7.998007Z'/>\n<path id='g0-97' d='M4.614695-3.19203C4.614695-3.837609 4.614695-4.315816 4.088667-4.782067C3.670237-5.164633 3.132254-5.332005 2.606227-5.332005C1.625903-5.332005 .872727-4.686426 .872727-3.90934C.872727-3.56264 1.099875-3.395268 1.374844-3.395268C1.661768-3.395268 1.865006-3.598506 1.865006-3.88543C1.865006-4.375592 1.43462-4.375592 1.255293-4.375592C1.530262-4.877709 2.10411-5.092902 2.582316-5.092902C3.132254-5.092902 3.837609-4.638605 3.837609-3.56264V-3.084433C1.43462-3.048568 .526027-2.044334 .526027-1.123786C.526027-.179328 1.625903 .119552 2.355168 .119552C3.144209 .119552 3.682192-.358655 3.90934-.932503C3.957161-.37061 4.327771 .059776 4.841843 .059776C5.092902 .059776 5.786301-.107597 5.786301-1.06401V-1.733499H5.523288V-1.06401C5.523288-.382565 5.236364-.286924 5.068991-.286924C4.614695-.286924 4.614695-.920548 4.614695-1.099875V-3.19203ZM3.837609-1.685679C3.837609-.514072 2.964882-.119552 2.450809-.119552C1.865006-.119552 1.374844-.549938 1.374844-1.123786C1.374844-2.701868 3.407223-2.84533 3.837609-2.86924V-1.685679Z'/>\n<path id='g0-100' d='M3.58655-8.16538V-7.81868C4.399502-7.81868 4.495143-7.734994 4.495143-7.149191V-4.507098C4.244085-4.853798 3.730012-5.272229 3.000747-5.272229C1.613948-5.272229 .418431-4.100623 .418431-2.570361C.418431-1.052055 1.554172 .119552 2.86924 .119552C3.777833 .119552 4.303861-.478207 4.471233-.705355V.119552L6.156912 0V-.3467C5.34396-.3467 5.248319-.430386 5.248319-1.016189V-8.296887L3.58655-8.16538ZM4.471233-1.398755C4.471233-1.183562 4.471233-1.147696 4.303861-.884682C4.016936-.466252 3.526775-.119552 2.929016-.119552C2.618182-.119552 1.327024-.239103 1.327024-2.558406C1.327024-3.419178 1.470486-3.897385 1.733499-4.291905C1.972603-4.662516 2.450809-5.033126 3.048568-5.033126C3.789788-5.033126 4.208219-4.495143 4.327771-4.303861C4.471233-4.100623 4.471233-4.076712 4.471233-3.861519V-1.398755Z'/>\n<path id='g0-101' d='M4.578829-2.773599C4.841843-2.773599 4.865753-2.773599 4.865753-3.000747C4.865753-4.208219 4.220174-5.332005 2.773599-5.332005C1.41071-5.332005 .358655-4.100623 .358655-2.618182C.358655-1.0401 1.578082 .119552 2.905106 .119552C4.327771 .119552 4.865753-1.171606 4.865753-1.422665C4.865753-1.494396 4.805978-1.542217 4.734247-1.542217C4.638605-1.542217 4.614695-1.482441 4.590785-1.422665C4.27995-.418431 3.478954-.143462 2.976837-.143462S1.267248-.478207 1.267248-2.546451V-2.773599H4.578829ZM1.279203-3.000747C1.374844-4.877709 2.426899-5.092902 2.761644-5.092902C4.040847-5.092902 4.112578-3.407223 4.124533-3.000747H1.279203Z'/>\n<path id='g0-108' d='M2.056289-8.296887L.394521-8.16538V-7.81868C1.207472-7.81868 1.303113-7.734994 1.303113-7.149191V-.884682C1.303113-.3467 1.171606-.3467 .394521-.3467V0C.729265-.02391 1.315068-.02391 1.673724-.02391S2.630137-.02391 2.964882 0V-.3467C2.199751-.3467 2.056289-.3467 2.056289-.884682V-8.296887Z'/>\n<path id='g0-109' d='M8.571856-2.905106C8.571856-4.016936 8.571856-4.351681 8.296887-4.734247C7.950187-5.200498 7.388294-5.272229 6.981818-5.272229C5.989539-5.272229 5.487422-4.554919 5.296139-4.088667C5.128767-5.009215 4.483188-5.272229 3.730012-5.272229C2.570361-5.272229 2.116065-4.27995 2.020423-4.040847H2.008468V-5.272229L.382565-5.140722V-4.794022C1.195517-4.794022 1.291158-4.710336 1.291158-4.124533V-.884682C1.291158-.3467 1.159651-.3467 .382565-.3467V0C.6934-.02391 1.338979-.02391 1.673724-.02391C2.020423-.02391 2.666002-.02391 2.976837 0V-.3467C2.211706-.3467 2.068244-.3467 2.068244-.884682V-3.108344C2.068244-4.363636 2.893151-5.033126 3.634371-5.033126S4.542964-4.423412 4.542964-3.694147V-.884682C4.542964-.3467 4.411457-.3467 3.634371-.3467V0C3.945205-.02391 4.590785-.02391 4.925529-.02391C5.272229-.02391 5.917808-.02391 6.228643 0V-.3467C5.463512-.3467 5.32005-.3467 5.32005-.884682V-3.108344C5.32005-4.363636 6.144956-5.033126 6.886177-5.033126S7.79477-4.423412 7.79477-3.694147V-.884682C7.79477-.3467 7.663263-.3467 6.886177-.3467V0C7.197011-.02391 7.84259-.02391 8.177335-.02391C8.524035-.02391 9.169614-.02391 9.480448 0V-.3467C8.88269-.3467 8.583811-.3467 8.571856-.705355V-2.905106Z'/>\n<path id='g0-110' d='M5.32005-2.905106C5.32005-4.016936 5.32005-4.351681 5.045081-4.734247C4.698381-5.200498 4.136488-5.272229 3.730012-5.272229C2.570361-5.272229 2.116065-4.27995 2.020423-4.040847H2.008468V-5.272229L.382565-5.140722V-4.794022C1.195517-4.794022 1.291158-4.710336 1.291158-4.124533V-.884682C1.291158-.3467 1.159651-.3467 .382565-.3467V0C.6934-.02391 1.338979-.02391 1.673724-.02391C2.020423-.02391 2.666002-.02391 2.976837 0V-.3467C2.211706-.3467 2.068244-.3467 2.068244-.884682V-3.108344C2.068244-4.363636 2.893151-5.033126 3.634371-5.033126S4.542964-4.423412 4.542964-3.694147V-.884682C4.542964-.3467 4.411457-.3467 3.634371-.3467V0C3.945205-.02391 4.590785-.02391 4.925529-.02391C5.272229-.02391 5.917808-.02391 6.228643 0V-.3467C5.630884-.3467 5.332005-.3467 5.32005-.705355V-2.905106Z'/>\n<path id='g0-111' d='M5.487422-2.558406C5.487422-4.100623 4.315816-5.332005 2.929016-5.332005C1.494396-5.332005 .358655-4.064757 .358655-2.558406C.358655-1.028144 1.554172 .119552 2.917061 .119552C4.327771 .119552 5.487422-1.052055 5.487422-2.558406ZM2.929016-.143462C2.486675-.143462 1.948692-.334745 1.601993-.920548C1.279203-1.458531 1.267248-2.163885 1.267248-2.666002C1.267248-3.120299 1.267248-3.849564 1.637858-4.387547C1.972603-4.901619 2.49863-5.092902 2.917061-5.092902C3.383313-5.092902 3.88543-4.877709 4.208219-4.411457C4.578829-3.861519 4.578829-3.108344 4.578829-2.666002C4.578829-2.247572 4.578829-1.506351 4.267995-.944458C3.93325-.37061 3.383313-.143462 2.929016-.143462Z'/>\n<path id='g0-114' d='M1.996513-2.785554C1.996513-3.945205 2.47472-5.033126 3.395268-5.033126C3.490909-5.033126 3.514819-5.033126 3.56264-5.021171C3.466999-4.97335 3.275716-4.901619 3.275716-4.578829C3.275716-4.23213 3.550685-4.100623 3.741968-4.100623C3.981071-4.100623 4.220174-4.25604 4.220174-4.578829C4.220174-4.937484 3.897385-5.272229 3.383313-5.272229C2.367123-5.272229 2.020423-4.172354 1.948692-3.945205H1.936737V-5.272229L.334745-5.140722V-4.794022C1.147696-4.794022 1.243337-4.710336 1.243337-4.124533V-.884682C1.243337-.3467 1.111831-.3467 .334745-.3467V0C.669489-.02391 1.327024-.02391 1.685679-.02391C2.008468-.02391 2.857285-.02391 3.132254 0V-.3467H2.893151C2.020423-.3467 1.996513-.478207 1.996513-.908593V-2.785554Z'/>\n<path id='g0-115' d='M3.921295-5.057036C3.921295-5.272229 3.921295-5.332005 3.801743-5.332005C3.706102-5.332005 3.478954-5.068991 3.395268-4.961395C3.024658-5.260274 2.654047-5.332005 2.271482-5.332005C.824907-5.332005 .394521-4.542964 .394521-3.88543C.394521-3.753923 .394521-3.335492 .848817-2.917061C1.231382-2.582316 1.637858-2.49863 2.187796-2.391034C2.84533-2.259527 3.000747-2.223661 3.299626-1.984558C3.514819-1.80523 3.670237-1.542217 3.670237-1.207472C3.670237-.6934 3.371357-.119552 2.319303-.119552C1.530262-.119552 .956413-.573848 .6934-1.769365C.645579-1.984558 .645579-1.996513 .633624-2.008468C.609714-2.056289 .561893-2.056289 .526027-2.056289C.394521-2.056289 .394521-1.996513 .394521-1.78132V-.155417C.394521 .059776 .394521 .119552 .514072 .119552C.573848 .119552 .585803 .107597 .789041-.143462C.848817-.227148 .848817-.251059 1.028144-.442341C1.482441 .119552 2.12802 .119552 2.331258 .119552C3.58655 .119552 4.208219-.573848 4.208219-1.518306C4.208219-2.163885 3.813699-2.546451 3.706102-2.654047C3.275716-3.024658 2.952927-3.096389 2.163885-3.239851C1.80523-3.311582 .932503-3.478954 .932503-4.196264C.932503-4.566874 1.183562-5.116812 2.259527-5.116812C3.56264-5.116812 3.634371-4.004981 3.658281-3.634371C3.670237-3.53873 3.753923-3.53873 3.789788-3.53873C3.921295-3.53873 3.921295-3.598506 3.921295-3.813699V-5.057036Z'/>\n<path id='g0-116' d='M2.008468-4.805978H3.694147V-5.152677H2.008468V-7.352428H1.745455C1.733499-6.228643 1.303113-5.080946 .215193-5.045081V-4.805978H1.231382V-1.482441C1.231382-.155417 2.116065 .119552 2.749689 .119552C3.502864 .119552 3.897385-.621669 3.897385-1.482441V-2.163885H3.634371V-1.506351C3.634371-.645579 3.287671-.143462 2.82142-.143462C2.008468-.143462 2.008468-1.255293 2.008468-1.458531V-4.805978Z'/>\n</defs>\n<g id='page1'>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 0 156.708L 363.446 156.708L 363.446 0L 0 0L 0 156.708Z' fill='#ffffff'/>\n</g>\n<rect x='101.122804' y='176.411485' height='1.992528' width='71.731009'/>\n<rect x='101.122804' y='178.404014' height='54.528824' width='1.992528'/>\n<use x='110.649852' y='202.646417' xlink:href='#g0-67'/>\n<use x='119.104171' y='202.646417' xlink:href='#g0-111'/>\n<use x='124.957161' y='202.646417' xlink:href='#g0-109'/>\n<use x='134.712145' y='202.646417' xlink:href='#g0-109'/>\n<use x='144.467129' y='202.646417' xlink:href='#g0-97'/>\n<use x='150.320119' y='202.646417' xlink:href='#g0-110'/>\n<use x='156.823442' y='202.646417' xlink:href='#g0-100'/>\n<use x='123.168748' y='216.992613' xlink:href='#g0-109'/>\n<use x='132.923731' y='216.992613' xlink:href='#g0-111'/>\n<use x='139.101888' y='216.992613' xlink:href='#g0-100'/>\n<use x='145.60521' y='216.992613' xlink:href='#g0-101'/>\n<rect x='170.861284' y='178.404014' height='54.528824' width='1.992528'/>\n<rect x='101.122804' y='232.932837' height='1.992528' width='71.731009'/>\n<rect x='242.855086' y='176.411485' height='1.992528' width='71.731009'/>\n<rect x='242.855086' y='178.404014' height='54.528824' width='1.992528'/>\n<use x='259.70044' y='202.646417' xlink:href='#g0-78'/>\n<use x='268.475786' y='202.646417' xlink:href='#g0-111'/>\n<use x='274.328777' y='202.646417' xlink:href='#g0-114'/>\n<use x='278.881102' y='202.646417' xlink:href='#g0-109'/>\n<use x='288.636086' y='202.646417' xlink:href='#g0-97'/>\n<use x='294.489076' y='202.646417' xlink:href='#g0-108'/>\n<use x='264.90103' y='216.992613' xlink:href='#g0-109'/>\n<use x='274.656014' y='216.992613' xlink:href='#g0-111'/>\n<use x='280.83417' y='216.992613' xlink:href='#g0-100'/>\n<use x='287.337493' y='216.992613' xlink:href='#g0-101'/>\n<rect x='312.593567' y='178.404014' height='54.528824' width='1.992528'/>\n<rect x='242.855086' y='232.932837' height='1.992528' width='71.731009'/>\n<rect x='384.587369' y='176.477628' height='1.992528' width='71.731009'/>\n<rect x='384.587369' y='178.470156' height='54.396006' width='1.992528'/>\n<use x='405.627365' y='202.579742' xlink:href='#g0-73'/>\n<use x='409.850386' y='202.579742' xlink:href='#g0-110'/>\n<use x='416.353709' y='202.579742' xlink:href='#g0-115'/>\n<use x='420.971068' y='202.579742' xlink:href='#g0-101'/>\n<use x='426.173726' y='202.579742' xlink:href='#g0-114'/>\n<use x='430.726052' y='202.579742' xlink:href='#g0-116'/>\n<use x='406.633313' y='216.925938' xlink:href='#g0-109'/>\n<use x='416.388297' y='216.925938' xlink:href='#g0-111'/>\n<use x='422.566453' y='216.925938' xlink:href='#g0-100'/>\n<use x='429.069776' y='216.925938' xlink:href='#g0-101'/>\n<rect x='454.32585' y='178.470156' height='54.396006' width='1.992528'/>\n<rect x='384.587369' y='232.866162' height='1.992528' width='71.731009'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 137.207 67.684L 82.1386 67.684' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 144.735 67.684L 137.207 65.6668L 137.207 69.7011L 144.735 67.684Z' fill='#000000'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 144.735 67.684L 137.207 65.6668L 137.207 69.7011L 144.735 67.684Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 89.6667 87.6009L 144.735 87.6009' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 82.1386 87.6009L 89.6667 89.6181L 89.6667 85.5837L 82.1386 87.6009Z' fill='#000000'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 82.1386 87.6009L 89.6667 89.6181L 89.6667 85.5837L 82.1386 87.6009Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 279.47 67.684L 224.402 67.684' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 286.998 67.684L 279.47 65.6668L 279.47 69.7011L 286.998 67.684Z' fill='#000000'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 286.998 67.684L 279.47 65.6668L 279.47 69.7011L 286.998 67.684Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 231.93 87.6009L 286.998 87.6009' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 224.402 87.6009L 231.93 89.6181L 231.93 85.5837L 224.402 87.6009Z' fill='#000000'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 224.402 87.6009L 231.93 89.6181L 231.93 85.5837L 224.402 87.6009Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 111.16 116.623L 118.558 116.623L 118.558 116.623C 120.444 116.623 121.972 115.094 121.972 113.208L 121.972 104.673L 121.972 104.673C 121.972 102.787 120.444 101.258 118.558 101.258L 111.16 101.258L 111.16 101.258C 111.16 101.258 111.16 101.258 111.16 101.258C 109.275 101.258 107.746 102.787 107.746 104.673L 107.746 113.208L 107.746 113.208C 107.746 113.208 107.746 113.208 107.746 113.208C 107.746 115.094 109.275 116.623 111.16 116.623L 111.16 116.623Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 111.16 116.623L 118.558 116.623L 118.558 116.623C 120.444 116.623 121.972 115.094 121.972 113.208L 121.972 104.673L 121.972 104.673C 121.972 102.787 120.444 101.258 118.558 101.258L 111.16 101.258L 111.16 101.258C 111.16 101.258 111.16 101.258 111.16 101.258C 109.275 101.258 107.746 102.787 107.746 104.673L 107.746 113.208L 107.746 113.208C 107.746 113.208 107.746 113.208 107.746 113.208C 107.746 115.094 109.275 116.623 111.16 116.623L 111.16 116.623Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 109.738 115.2L 117.135 115.2L 117.135 115.2C 119.021 115.2 120.55 113.671 120.55 111.786L 120.55 103.25L 120.55 103.25C 120.55 101.364 119.021 99.8356 117.135 99.8356L 109.738 99.8356L 109.738 99.8356C 109.738 99.8356 109.738 99.8356 109.738 99.8356C 107.852 99.8356 106.323 101.364 106.323 103.25L 106.323 111.786L 106.323 111.786C 106.323 111.786 106.323 111.786 106.323 111.786C 106.323 113.671 107.852 115.2 109.738 115.2L 109.738 115.2Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 109.738 115.2L 117.135 115.2L 117.135 115.2C 119.021 115.2 120.55 113.671 120.55 111.786L 120.55 103.25L 120.55 103.25C 120.55 101.364 119.021 99.8356 117.135 99.8356L 109.738 99.8356L 109.738 99.8356C 109.738 99.8356 109.738 99.8356 109.738 99.8356C 107.852 99.8356 106.323 101.364 106.323 103.25L 106.323 111.786L 106.323 111.786C 106.323 111.786 106.323 111.786 106.323 111.786C 106.323 113.671 107.852 115.2 109.738 115.2L 109.738 115.2Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='206.247431' y='239.3401' xlink:href='#g1-47'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 111.16 136.54L 118.558 136.54L 118.558 136.54C 120.444 136.54 121.972 135.011 121.972 133.125L 121.972 124.589L 121.972 124.589C 121.972 122.704 120.444 121.175 118.558 121.175L 111.16 121.175L 111.16 121.175C 111.16 121.175 111.16 121.175 111.16 121.175C 109.275 121.175 107.746 122.704 107.746 124.589L 107.746 133.125L 107.746 133.125C 107.746 133.125 107.746 133.125 107.746 133.125C 107.746 135.011 109.275 136.54 111.16 136.54L 111.16 136.54Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 111.16 136.54L 118.558 136.54L 118.558 136.54C 120.444 136.54 121.972 135.011 121.972 133.125L 121.972 124.589L 121.972 124.589C 121.972 122.704 120.444 121.175 118.558 121.175L 111.16 121.175L 111.16 121.175C 111.16 121.175 111.16 121.175 111.16 121.175C 109.275 121.175 107.746 122.704 107.746 124.589L 107.746 133.125L 107.746 133.125C 107.746 133.125 107.746 133.125 107.746 133.125C 107.746 135.011 109.275 136.54 111.16 136.54L 111.16 136.54Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 109.738 135.117L 117.135 135.117L 117.135 135.117C 119.021 135.117 120.55 133.588 120.55 131.703L 120.55 123.167L 120.55 123.167C 120.55 121.281 119.021 119.753 117.135 119.753L 109.738 119.753L 109.738 119.753C 109.738 119.753 109.738 119.753 109.738 119.753C 107.852 119.753 106.323 121.281 106.323 123.167L 106.323 131.703L 106.323 131.703C 106.323 131.703 106.323 131.703 106.323 131.703C 106.323 133.588 107.852 135.117 109.738 135.117L 109.738 135.117Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 109.738 135.117L 117.135 135.117L 117.135 135.117C 119.021 135.117 120.55 133.588 120.55 131.703L 120.55 123.167L 120.55 123.167C 120.55 121.281 119.021 119.753 117.135 119.753L 109.738 119.753L 109.738 119.753C 109.738 119.753 109.738 119.753 109.738 119.753C 107.852 119.753 106.323 121.281 106.323 123.167L 106.323 131.703L 106.323 131.703C 106.323 131.703 106.323 131.703 106.323 131.703C 106.323 133.588 107.852 135.117 109.738 135.117L 109.738 135.117Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='206.385798' y='260.151203' xlink:href='#g1-63'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 111.16 156.457L 118.558 156.457L 118.558 156.457C 120.444 156.457 121.972 154.928 121.972 153.042L 121.972 144.506L 121.972 144.506C 121.972 142.621 120.444 141.092 118.558 141.092L 111.16 141.092L 111.16 141.092C 111.16 141.092 111.16 141.092 111.16 141.092C 109.275 141.092 107.746 142.621 107.746 144.506L 107.746 153.042L 107.746 153.042C 107.746 153.042 107.746 153.042 107.746 153.042C 107.746 154.928 109.275 156.457 111.16 156.457L 111.16 156.457Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 111.16 156.457L 118.558 156.457L 118.558 156.457C 120.444 156.457 121.972 154.928 121.972 153.042L 121.972 144.506L 121.972 144.506C 121.972 142.621 120.444 141.092 118.558 141.092L 111.16 141.092L 111.16 141.092C 111.16 141.092 111.16 141.092 111.16 141.092C 109.275 141.092 107.746 142.621 107.746 144.506L 107.746 153.042L 107.746 153.042C 107.746 153.042 107.746 153.042 107.746 153.042C 107.746 154.928 109.275 156.457 111.16 156.457L 111.16 156.457Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 109.738 155.034L 117.135 155.034L 117.135 155.034C 119.021 155.034 120.55 153.505 120.55 151.62L 120.55 143.084L 120.55 143.084C 120.55 141.198 119.021 139.669 117.135 139.669L 109.738 139.669L 109.738 139.669C 109.738 139.669 109.738 139.669 109.738 139.669C 107.852 139.669 106.323 141.198 106.323 143.084L 106.323 151.62L 106.323 151.62C 106.323 151.62 106.323 151.62 106.323 151.62C 106.323 153.505 107.852 155.034 109.738 155.034L 109.738 155.034Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 109.738 155.034L 117.135 155.034L 117.135 155.034C 119.021 155.034 120.55 153.505 120.55 151.62L 120.55 143.084L 120.55 143.084C 120.55 141.198 119.021 139.669 117.135 139.669L 109.738 139.669L 109.738 139.669C 109.738 139.669 109.738 139.669 109.738 139.669C 107.852 139.669 106.323 141.198 106.323 143.084L 106.323 151.62L 106.323 151.62C 106.323 151.62 106.323 151.62 106.323 151.62C 106.323 153.505 107.852 155.034 109.738 155.034L 109.738 155.034Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='207.354394' y='278.679211' xlink:href='#g1-58'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 250.01 116.623L 264.236 116.623L 264.236 116.623C 266.122 116.623 267.651 115.094 267.651 113.208L 267.651 104.673L 267.651 104.673C 267.651 102.787 266.122 101.258 264.236 101.258L 250.01 101.258L 250.01 101.258C 250.01 101.258 250.01 101.258 250.01 101.258C 248.124 101.258 246.596 102.787 246.596 104.673L 246.596 113.208L 246.596 113.208C 246.596 113.208 246.596 113.208 246.596 113.208C 246.596 115.094 248.124 116.623 250.01 116.623L 250.01 116.623Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 250.01 116.623L 264.236 116.623L 264.236 116.623C 266.122 116.623 267.651 115.094 267.651 113.208L 267.651 104.673L 267.651 104.673C 267.651 102.787 266.122 101.258 264.236 101.258L 250.01 101.258L 250.01 101.258C 250.01 101.258 250.01 101.258 250.01 101.258C 248.124 101.258 246.596 102.787 246.596 104.673L 246.596 113.208L 246.596 113.208C 246.596 113.208 246.596 113.208 246.596 113.208C 246.596 115.094 248.124 116.623 250.01 116.623L 250.01 116.623Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 248.587 115.2L 262.814 115.2L 262.814 115.2C 264.699 115.2 266.228 113.671 266.228 111.786L 266.228 103.25L 266.228 103.25C 266.228 101.364 264.699 99.8356 262.814 99.8356L 248.587 99.8356L 248.587 99.8356C 248.587 99.8356 248.587 99.8356 248.587 99.8356C 246.702 99.8356 245.173 101.364 245.173 103.25L 245.173 111.786L 245.173 111.786C 245.173 111.786 245.173 111.786 245.173 111.786C 245.173 113.671 246.702 115.2 248.587 115.2L 248.587 115.2Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 248.587 115.2L 262.814 115.2L 262.814 115.2C 264.699 115.2 266.228 113.671 266.228 111.786L 266.228 103.25L 266.228 103.25C 266.228 101.364 264.699 99.8356 262.814 99.8356L 248.587 99.8356L 248.587 99.8356C 248.587 99.8356 248.587 99.8356 248.587 99.8356C 246.702 99.8356 245.173 101.364 245.173 103.25L 245.173 111.786L 245.173 111.786C 245.173 111.786 245.173 111.786 245.173 111.786C 245.173 113.671 246.702 115.2 248.587 115.2L 248.587 115.2Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='342.901528' y='240.253332' xlink:href='#g1-69'/>\n<use x='349.681675' y='240.253332' xlink:href='#g1-115'/>\n<use x='353.611392' y='240.253332' xlink:href='#g1-99'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 102.625 46.9135L 127.094 46.9135L 127.094 46.9135C 128.98 46.9135 130.508 45.3848 130.508 43.4991L 130.508 34.9633L 130.508 34.9633C 130.508 33.0776 128.98 31.549 127.094 31.549L 102.625 31.549L 102.625 31.549C 102.625 31.549 102.625 31.549 102.625 31.549C 100.739 31.549 99.2102 33.0776 99.2102 34.9633L 99.2102 43.4991L 99.2102 43.4991C 99.2102 43.4991 99.2102 43.4991 99.2102 43.4991C 99.2102 45.3848 100.739 46.9135 102.625 46.9135L 102.625 46.9135Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 102.625 46.9135L 127.094 46.9135L 127.094 46.9135C 128.98 46.9135 130.508 45.3848 130.508 43.4991L 130.508 34.9633L 130.508 34.9633C 130.508 33.0776 128.98 31.549 127.094 31.549L 102.625 31.549L 102.625 31.549C 102.625 31.549 102.625 31.549 102.625 31.549C 100.739 31.549 99.2102 33.0776 99.2102 34.9633L 99.2102 43.4991L 99.2102 43.4991C 99.2102 43.4991 99.2102 43.4991 99.2102 43.4991C 99.2102 45.3848 100.739 46.9135 102.625 46.9135L 102.625 46.9135Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 101.202 45.4908L 125.671 45.4908L 125.671 45.4908C 127.557 45.4908 129.086 43.9622 129.086 42.0765L 129.086 33.5407L 129.086 33.5407C 129.086 31.655 127.557 30.1263 125.671 30.1263L 101.202 30.1263L 101.202 30.1263C 101.202 30.1263 101.202 30.1263 101.202 30.1263C 99.3162 30.1263 97.7876 31.655 97.7876 33.5407L 97.7876 42.0765L 97.7876 42.0765C 97.7876 42.0765 97.7876 42.0765 97.7876 42.0765C 97.7876 43.9622 99.3162 45.4908 101.202 45.4908L 101.202 45.4908Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 101.202 45.4908L 125.671 45.4908L 125.671 45.4908C 127.557 45.4908 129.086 43.9622 129.086 42.0765L 129.086 33.5407L 129.086 33.5407C 129.086 31.655 127.557 30.1263 125.671 30.1263L 101.202 30.1263L 101.202 30.1263C 101.202 30.1263 101.202 30.1263 101.202 30.1263C 99.3162 30.1263 97.7876 31.655 97.7876 33.5407L 97.7876 42.0765L 97.7876 42.0765C 97.7876 42.0765 97.7876 42.0765 97.7876 42.0765C 97.7876 43.9622 99.3162 45.4908 101.202 45.4908L 101.202 45.4908Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='196.616859' y='170.804506' xlink:href='#g1-69'/>\n<use x='203.397005' y='170.804506' xlink:href='#g1-110'/>\n<use x='208.655074' y='170.804506' xlink:href='#g1-116'/>\n<use x='212.529448' y='170.804506' xlink:href='#g1-101'/>\n<use x='216.957299' y='170.804506' xlink:href='#g1-114'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 253.424 56.8719L 260.822 56.8719L 260.822 56.8719C 262.708 56.8719 264.236 55.3433 264.236 53.4576L 264.236 44.9218L 264.236 44.9218C 264.236 43.0361 262.708 41.5074 260.822 41.5074L 253.424 41.5074L 253.424 41.5074C 253.424 41.5074 253.424 41.5074 253.424 41.5074C 251.538 41.5074 250.01 43.0361 250.01 44.9218L 250.01 53.4576L 250.01 53.4576C 250.01 53.4576 250.01 53.4576 250.01 53.4576C 250.01 55.3433 251.538 56.8719 253.424 56.8719L 253.424 56.8719Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 253.424 56.8719L 260.822 56.8719L 260.822 56.8719C 262.708 56.8719 264.236 55.3433 264.236 53.4576L 264.236 44.9218L 264.236 44.9218C 264.236 43.0361 262.708 41.5074 260.822 41.5074L 253.424 41.5074L 253.424 41.5074C 253.424 41.5074 253.424 41.5074 253.424 41.5074C 251.538 41.5074 250.01 43.0361 250.01 44.9218L 250.01 53.4576L 250.01 53.4576C 250.01 53.4576 250.01 53.4576 250.01 53.4576C 250.01 55.3433 251.538 56.8719 253.424 56.8719L 253.424 56.8719Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 252.002 55.4493L 259.399 55.4493L 259.399 55.4493C 261.285 55.4493 262.814 53.9206 262.814 52.035L 262.814 43.4991L 262.814 43.4991C 262.814 41.6134 261.285 40.0848 259.399 40.0848L 252.002 40.0848L 252.002 40.0848C 252.002 40.0848 252.002 40.0848 252.002 40.0848C 250.116 40.0848 248.587 41.6134 248.587 43.4991L 248.587 52.035L 248.587 52.035C 248.587 52.035 248.587 52.035 248.587 52.035C 248.587 53.9206 250.116 55.4493 252.002 55.4493L 252.002 55.4493Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 252.002 55.4493L 259.399 55.4493L 259.399 55.4493C 261.285 55.4493 262.814 53.9206 262.814 52.035L 262.814 43.4991L 262.814 43.4991C 262.814 41.6134 261.285 40.0848 259.399 40.0848L 252.002 40.0848L 252.002 40.0848C 252.002 40.0848 252.002 40.0848 252.002 40.0848C 250.116 40.0848 248.587 41.6134 248.587 43.4991L 248.587 52.035L 248.587 52.035C 248.587 52.035 248.587 52.035 248.587 52.035C 248.587 53.9206 250.116 55.4493 252.002 55.4493L 252.002 55.4493Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='349.086677' y='180.648693' xlink:href='#g1-105'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 253.424 36.955L 260.822 36.955L 260.822 36.955C 262.708 36.955 264.236 35.4263 264.236 33.5407L 264.236 25.0048L 264.236 25.0048C 264.236 23.1192 262.708 21.5905 260.822 21.5905L 253.424 21.5905L 253.424 21.5905C 253.424 21.5905 253.424 21.5905 253.424 21.5905C 251.538 21.5905 250.01 23.1192 250.01 25.0048L 250.01 33.5407L 250.01 33.5407C 250.01 33.5407 250.01 33.5407 250.01 33.5407C 250.01 35.4263 251.538 36.955 253.424 36.955L 253.424 36.955Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 253.424 36.955L 260.822 36.955L 260.822 36.955C 262.708 36.955 264.236 35.4263 264.236 33.5407L 264.236 25.0048L 264.236 25.0048C 264.236 23.1192 262.708 21.5905 260.822 21.5905L 253.424 21.5905L 253.424 21.5905C 253.424 21.5905 253.424 21.5905 253.424 21.5905C 251.538 21.5905 250.01 23.1192 250.01 25.0048L 250.01 33.5407L 250.01 33.5407C 250.01 33.5407 250.01 33.5407 250.01 33.5407C 250.01 35.4263 251.538 36.955 253.424 36.955L 253.424 36.955Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 252.002 35.5324L 259.399 35.5324L 259.399 35.5324C 261.285 35.5324 262.814 34.0037 262.814 32.118L 262.814 23.5822L 262.814 23.5822C 262.814 21.6965 261.285 20.1679 259.399 20.1679L 252.002 20.1679L 252.002 20.1679C 252.002 20.1679 252.002 20.1679 252.002 20.1679C 250.116 20.1679 248.587 21.6965 248.587 23.5822L 248.587 32.118L 248.587 32.118C 248.587 32.118 248.587 32.118 248.587 32.118C 248.587 34.0037 250.116 35.5324 252.002 35.5324L 252.002 35.5324Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 252.002 35.5324L 259.399 35.5324L 259.399 35.5324C 261.285 35.5324 262.814 34.0037 262.814 32.118L 262.814 23.5822L 262.814 23.5822C 262.814 21.6965 261.285 20.1679 259.399 20.1679L 252.002 20.1679L 252.002 20.1679C 252.002 20.1679 252.002 20.1679 252.002 20.1679C 250.116 20.1679 248.587 21.6965 248.587 23.5822L 248.587 32.118L 248.587 32.118C 248.587 32.118 248.587 32.118 248.587 32.118C 248.587 34.0037 250.116 35.5324 252.002 35.5324L 252.002 35.5324Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='347.979714' y='159.624081' xlink:href='#g1-97'/>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 253.424 17.0381L 260.822 17.0381L 260.822 17.0381C 262.708 17.0381 264.236 15.5094 264.236 13.6237L 264.236 5.08791L 264.236 5.08791C 264.236 3.20222 262.708 1.67358 260.822 1.67358L 253.424 1.67358L 253.424 1.67358C 253.424 1.67358 253.424 1.67358 253.424 1.67358C 251.538 1.67358 250.01 3.20222 250.01 5.08791L 250.01 13.6237L 250.01 13.6237C 250.01 13.6237 250.01 13.6237 250.01 13.6237C 250.01 15.5094 251.538 17.0381 253.424 17.0381L 253.424 17.0381Z' fill='#7f7f7f'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 253.424 17.0381L 260.822 17.0381L 260.822 17.0381C 262.708 17.0381 264.236 15.5094 264.236 13.6237L 264.236 5.08791L 264.236 5.08791C 264.236 3.20222 262.708 1.67358 260.822 1.67358L 253.424 1.67358L 253.424 1.67358C 253.424 1.67358 253.424 1.67358 253.424 1.67358C 251.538 1.67358 250.01 3.20222 250.01 5.08791L 250.01 13.6237L 250.01 13.6237C 250.01 13.6237 250.01 13.6237 250.01 13.6237C 250.01 15.5094 251.538 17.0381 253.424 17.0381L 253.424 17.0381Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 252.002 15.6154L 259.399 15.6154L 259.399 15.6154C 261.285 15.6154 262.814 14.0868 262.814 12.2011L 262.814 3.66527L 262.814 3.66527C 262.814 1.77959 261.285 0.250937 259.399 0.250937L 252.002 0.250937L 252.002 0.250937C 252.002 0.250937 252.002 0.250937 252.002 0.250937C 250.116 0.250937 248.587 1.77959 248.587 3.66527L 248.587 12.2011L 248.587 12.2011C 248.587 12.2011 248.587 12.2011 248.587 12.2011C 248.587 14.0868 250.116 15.6154 252.002 15.6154L 252.002 15.6154Z' fill='#e6e6e6'/>\n</g>\n<g transform='translate(95.7215 129.793)scale(.996264)'>\n<path d='M 252.002 15.6154L 259.399 15.6154L 259.399 15.6154C 261.285 15.6154 262.814 14.0868 262.814 12.2011L 262.814 3.66527L 262.814 3.66527C 262.814 1.77959 261.285 0.250937 259.399 0.250937L 252.002 0.250937L 252.002 0.250937C 252.002 0.250937 252.002 0.250937 252.002 0.250937C 250.116 0.250937 248.587 1.77959 248.587 3.66527L 248.587 12.2011L 248.587 12.2011C 248.587 12.2011 248.587 12.2011 248.587 12.2011C 248.587 14.0868 250.116 15.6154 252.002 15.6154L 252.002 15.6154Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='347.979714' y='139.78156' xlink:href='#g1-111'/>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "doc/guide/generated/qrcode/joren-falls-video-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/doc/guide/html/joren-falls-video.html</pi:standalone-url><pi:context-url>https://pretextbook.org/doc/guide/html/topic-video.html#joren-falls-video</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "doc/guide/generated/qrcode/mozart-piano-sonata-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=1Yv_AINhVn4</pi:standalone-url><pi:context-url>https://pretextbook.org/doc/guide/html/topic-video.html#mozart-piano-sonata</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "doc/guide/generated/qrcode/topic-youtube-video-8-2-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/playlist?list=PLGRecdYLYDNdX5NEkS3KH-ZtCqc2f8lJ_</pi:standalone-url><pi:context-url>https://pretextbook.org/doc/guide/html/topic-video.html#topic-youtube-video-8-2</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "doc/guide/generated/qrcode/tutorial-videos-video-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=w_Wu5ysIiPQ</pi:standalone-url><pi:context-url>https://pretextbook.org/doc/guide/html/tutorial-videos.html#tutorial-videos-video</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "doc/guide/generated/qrcode/video-hotel-california-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=YW4dzWE1SUs\\&amp;start=12</pi:standalone-url><pi:context-url>https://pretextbook.org/doc/guide/html/topic-video.html#video-hotel-california</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "doc/guide/generated/qrcode/windows-cli-3-3-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=tAtdzyVBcZA</pi:standalone-url><pi:context-url>https://pretextbook.org/doc/guide/html/windows-cli.html#windows-cli-3-3</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "doc/guide/guide.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the documentation of PreTeXt              -->\n<!--                                                                -->\n<!--         The PreTeXt Guide                                      -->\n<!--                                                                -->\n<!-- Copyright (C) 2013-2019                                        -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller -->\n<!-- See the file COPYING for copying conditions.                   -->\n\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <xi:include href=\"guideinfo.xml\"/>\n\n    <book xml:id=\"guide-toc\">\n        <title>The <pretext /> Guide</title>\n\n        <!-- Front Matter -->\n        <xi:include href=\"frontmatter.xml\"/>\n\n        <part xml:id=\"part-introduction\">\n            <title>Introduction</title>\n\n            <xi:include href=\"introduction/start-here.xml\"/>\n            <xi:include href=\"introduction/tutorial.xml\"/>\n        </part>\n\n        <part xml:id=\"part-author\">\n            <title>Author's Guide</title>\n\n            <xi:include href=\"author/overview.xml\"/>\n            <xi:include href=\"author/topics.xml\"/>\n            <xi:include href=\"author/processing.xml\"/>\n            <xi:include href=\"author/schema.xml\"/>\n            <xi:include href=\"author/webwork.xml\"/>\n            <xi:include href=\"author/advice.xml\"/>\n            <!-- keep the Author's FAQ last within part -->\n            <xi:include href=\"author/author-faq.xml\"/>\n        </part>\n\n        <!-- The Basics Reference could be split out  -->\n        <!-- into a series of chapters, one per file  -->\n        <!-- with the \"part\" and \"title\" obvious here -->\n        <xi:include href=\"basics/basics-part.xml\"/>\n\n        <part xml:id=\"part-publisher\">\n            <title>Publisher's Guide</title>\n\n            <xi:include href=\"publisher/production.xml\"/>\n            <xi:include href=\"publisher/open-licenses.xml\"/>\n            <xi:include href=\"publisher/conversions.xml\"/>\n            <xi:include href=\"publisher/custom-versions.xml\"/>\n            <xi:include href=\"publisher/further-customizations.xml\"/>\n            <xi:include href=\"publisher/online-html.xml\"/>\n            <xi:include href=\"publisher/pdf-print.xml\"/>\n            <xi:include href=\"publisher/epub.xml\"/>\n            <xi:include href=\"publisher/runestone.xml\"/>\n            <xi:include href=\"publisher/braille.xml\"/>\n            <xi:include href=\"publisher/slides.xml\"/>\n            <xi:include href=\"publisher/jupyter-notebook.xml\"/>\n            <xi:include href=\"publisher/instructor-version.xml\"/>\n            <xi:include href=\"publisher/ancillaries.xml\"/>\n            <xi:include href=\"publisher/webwork.xml\"/>\n            <xi:include href=\"publisher/web-hosting.xml\"/>\n            <xi:include href=\"publisher/latex-fonts.xml\"/>\n            <xi:include href=\"publisher/latex-styling.xml\"/>\n            <xi:include href=\"publisher/cover-design.xml\"/>\n            <xi:include href=\"publisher/print-on-demand.xml\"/>\n            <xi:include href=\"publisher/publication-file.xml\"/>\n            <!-- keep the Publisher's FAQ last within part -->\n            <xi:include href=\"publisher/publisher-faq.xml\"/>\n        </part>\n\n        <part xml:id=\"part-developer\">\n            <title>Developer's Guide</title>\n\n            <xi:include href=\"developer/xsltproc.xml\"/>\n            <xi:include href=\"developer/pretext-script.xml\"/>\n            <xi:include href=\"developer/coding.xml\"/>\n            <xi:include href=\"developer/localization.xml\"/>\n            <xi:include href=\"developer/code-style.xml\"/>\n            <xi:include href=\"developer/debugging.xml\"/>\n            <xi:include href=\"developer/git.xml\"/>\n        </part>\n\n        <!-- Appendices -->\n        <xi:include href=\"backmatter.xml\"/>\n\n    </book>\n</pretext>\n"
  },
  {
    "path": "doc/guide/guideinfo.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the documentation of PreTeXt              -->\n<!--                                                                -->\n<!--         The PreTeXt Guide                                      -->\n<!--                                                                -->\n<!-- Copyright (C) 2013-2019                                        -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller -->\n<!-- See the file COPYING for copying conditions.                   -->\n\n<docinfo>\n    <rename element=\"note\" xml:lang=\"en-US\">Best Practice</rename>\n    <rename element=\"insight\" xml:lang=\"en-US\">Tip</rename>\n    <!-- a demonstration in Basic Reference -->\n    <rename element=\"algorithm\" xml:lang=\"en-US\">Porism</rename>\n    <latex-image-preamble>\n        \\usepackage{tikz}\n    </latex-image-preamble>\n    <!-- necessary for discussion and demonstration of using -->\n    <!-- macros for the names of mathematical functions      -->\n    <!-- \\DeclareMathOperator preferable to \\operatorname    -->\n    <!-- See link in comment at discussion in source         -->\n    <macros>\n    \\DeclareMathOperator{\\homop}{Hom}\n    \\newcommand{\\Hom}[2]{\\homop\\left(#1,\\,#2\\right)}\n    </macros>\n</docinfo>\n"
  },
  {
    "path": "doc/guide/introduction/start-here.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"start-here\">\n    <title>Why <pretext />?</title>\n\n    <introduction>\n        <p>Welcome to <q>the Guide</q> for <pretext />.  You are likely eager to get started, but familiarizing yourself with this chapter should save you a lot of time in the long run.  We will try to keep it short and at the end of early chapters we will guide you on where to go next.  Not everything we say here will make sense on your first reading, so come back after your first few trial runs.  When you are ready to seek further help, or ask questions, please read the <xref ref=\"welcome\" text=\"title\"/> in <xref ref=\"welcome\"/>.</p>\n    </introduction>\n\n    <section xml:id=\"philosophy\">\n        <title>Philosophy</title>\n\n        <p><pretext /> is a <term>markup language</term><idx>markup language</idx>, which means that you explicitly specify the logical parts of your document and not how these parts should be displayed.</p>\n\n        <p>This is very liberating for an author, since it frees you to concentrate on capturing your ideas to share with others, leaving the construction of the visual presentation to the software.  As an example, you might specify the content of the title of a chapter to be <c>Further Experiments</c>, but you will not be concerned if a 36 point sans-serif font in black will be used for this title in the print version of your book, or a CSS class specifying 18 pixel height in blue is used for a title in an online web version of your book.  You can just trust that a reasonable choice has been made for displaying a title of a chapter in a way that a reader will recognize it as a name for a chapter.  (And if all that talk of fonts was unfamiliar, all the more reason to trust the design to software.)</p>\n\n        <p>You are also freed from the technical details of presenting your ideas in the plethora of new formats available as a consequence of the advances in computers (including tablets and smartphones) and networks (global and wireless).  Your output <q>just works</q> and the software keeps up with technical advances and the introduction of new formats, while you concentrate on the content of your book (or article, or report, or proposal, or<nbsp /><ellipsis />).</p>\n\n        <p>If you have never used a markup language, it can be unfamiliar at first.  Even if you have used a markup language before (such as <init>HTML</init>, Markdown, or basic <latex />) you may need to make a few adjustments.  Most word-processors are WYSIWYG (<q>what you see is what you get</q>).  That approach is likely very helpful if you are designing the front page of a newspaper, but not if you are writing about the life-cycle of a salamander.  In the old days, programs like\n        <url href=\"https://en.wikipedia.org/wiki/Troff\" visual=\"en.wikipedia.org/wiki/Troff\"><c>troff</c></url> and its predecessor, <url href=\"https://en.wikipedia.org/wiki/TYPSET_and_RUNOFF\" visual=\"en.wikipedia.org/wiki/TYPSET_and_RUNOFF\"><c>RUNOFF</c></url> (1964), implemented simple markup languages to allow early computers to do limited text-formatting.  Sometimes the old ways are the best ways.</p>\n\n        <p><pretext /> is what is called an <term>XML application</term><idx>XML application</idx><idx><h>XML application</h><seealso>XML vocabulary</seealso></idx> or an <term>XML vocabulary</term><idx>XML vocabulary</idx><idx><h>XML vocabulary</h><seealso>XML application</seealso></idx> (I prefer the latter). That is, the source you write is <q>marked up</q> as <init>XML</init>, with specific <term>tags</term> that describe the semantic structure of your document.  Authoring in <init>XML</init> might seem cumbersome at first, since some content will require more characters of markup than of content.  Much of this markup can be quickly produced with a modern text editor, but it can still be overwhelming.  We believe you will eventually appreciate the long-run economies, so keep an open mind.  And if you are already familiar with <init>XML</init>, realize we have been very careful to design this vocabulary with human authors foremost in our mind.</p>\n\n        <paragraphs>\n            <title>Principles</title>\n\n            <p>The creation, design, development, and maintenance of <pretext /> is guided by the following list of principles.  These will become more understandable as you become more familiar with authoring texts with <pretext /> and should amplify some of the previous discussion.</p>\n\n            <list xml:id=\"list-principles\">\n                <title><pretext /> Principles</title>\n\n                <ol>\n                    <li xml:id=\"principle-markup\"><pretext /> is a markup language that captures the structure of textbooks and research papers.</li>\n\n                    <li xml:id=\"principle-readable\"><pretext /> is human-readable and human-writable.</li>\n\n                    <li xml:id=\"principle-multiple-outputs\"><pretext /> documents serve as a single source which can be easily converted to multiple other formats, current and future.</li>\n\n                    <li xml:id=\"principle-good-design\"><pretext /> respects the good design practices which have been developed over the past centuries.</li>\n\n                    <li xml:id=\"principle-common-and-reasonable\"><pretext /> makes it easy for authors to implement features which are both common and reasonable.</li>\n\n                    <li xml:id=\"principle-web-versions\"><pretext /> supports online documents which make use of the full capabilities of the Web.</li>\n\n                    <li xml:id=\"principle-output-styles\"><pretext /> output is styled by selecting from a list of available templates, relieving the author of the burden involved in micromanaging the output format.</li>\n\n                    <li xml:id=\"principle-open-software\"><pretext /> is free: the software is available at no cost, with an open license. The use of <pretext /> does not impose any constraints on documents prepared with the system.</li>\n\n                    <li xml:id=\"principle-open\"><pretext /> is not a closed system: documents can be converted to <latex /> and then developed using standard <latex /> tools.</li>\n\n                    <li xml:id=\"principle-users\"><pretext /> recognizes that scholarly documents involve the interaction of authors, publishers, scholars, curators, instructors, students, and readers, with each group having its own needs and goals.</li>\n\n                    <li xml:id=\"principle-accessibility\"><pretext/> recognizes the inherent value in producing material that is accessible to everyone.</li>\n                </ol>\n            </list>\n        </paragraphs>\n    </section>\n\n    <section xml:id=\"introduction-to-source-formatting\">\n        <title>Understanding Your Source</title>\n\n        <p>Almost all of your time authoring in <pretext /> will be spent editing your <term>source</term><idx>source</idx> files.  We now briefly describe what these files will look like and how to edit them.</p>\n\n        <paragraphs>\n            <title>File Format and Text Editors</title>\n\n            <p>Your source will be plain text <term>ASCII files</term><idx>ASCII file</idx>, which you create and edit with any number of text editors. Files can be saved with the <c>.ptx</c> extension, which might tell your text editor what sort of file you are editing and will provide syntax highlighting and code completion, among other features.  If your editor does not recognize <c>.ptx</c>, then you can use the <c>.xml</c> extension which has wider editor support (but with fewer <pretext />-specific features).</p>\n\n            <p>Popular text editors include Visual Studio Code, Sublime Text, vi, emacs, Notepad, Notepad++, Atom, TextWrangler, and BBEdit.  But in particular, you should not use word processing programs like Word, LibreOffice, Google Docs, WordPerfect, AbiWord, Pages, or similar programs.  Sometimes these editors are known as a <term>programmer's editor</term><idx>programmer's editor</idx> (though we will be doing no programming).  Support for writing HTML sometimes translates directly to good support for XML.</p>\n\n            <p>\n                Visual Studio Code has support for PreTeXt documents via a free extension, and the editor is open source and cross-platform (Windows, OS X, and Linux).  The developers of <pretext /> have also had a very good experience with Sublime Text, which is cross-platform, and can be used for free,\n                though it has a very liberal paid license if you want to avoid nagging.\n            </p>\n\n            <p>There are <term>XML editors</term><idx>XML editor</idx>, which might be too complex for authoring in <pretext />.  They do have some advantages and XML Copy Editor is one that you might find useful.</p>\n\n            <p>Some text editors (like VS Code) have spell checking extensions.  More generally, recommendations for a spell checker can be found in <xref ref=\"aspell\"/>.</p>\n        </paragraphs>\n\n\n        <paragraphs>\n            <title>Structure of your Source</title>\n            <p>\n                If you start to think about the structure of a document (like an article or book) you will quickly realize that components are like blocks, stacked inside or next to other blocks.  From the <em>outside</em> to <em>inside</em>, a book will have a number of chapters (next to each other, but all inside the book), and each might have sections (adjacent but inside the chapter).  In the section, there will be a title, paragraphs, images, examples, theorems, and so on.  Examples will themselves contain paragraphs.  A theorem might contain a statement, which contains some paragraphs, which might contain some displayed math, and adjacent to the statement, there could be a proof, itself containing paragraphs, etc.\n            </p>\n\n            <p>The hierarchical nature of <init>XML</init> is perfect to capture the hierarchical nature of a scholarly document.  Consider the start of a <pretext /> document shown in <xref ref=\"listing-simple\"/>.</p>\n\n            <listing xml:id=\"listing-simple\">\n                <title>Source of a simple <pretext /> book project.</title>\n                <program language=\"xml\">\n                    <code>\n                    <![CDATA[\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pretext>\n    <book>\n        <title>Hello world!</title>\n        <chapter>\n            <title>Getting Started</title>\n            <p>Welcome to PreTeXt!</p>\n            <!-- TODO: find something more to say... -->\n        </chapter>\n    </book>\n</pretext>\n                        ]]>\n                    </code>\n                </program>\n            </listing>\n\n            <p>\n                The first line is boilerplate that lets various programs know the rest of the file is XML, and the line start <c>&lt;!--</c>  is an example of a comment that won't appear in the output.  Besides this, you can start to see how the structure of the book is laid out.\n            </p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Whitespace and Indentation</title>\n\n            <p>The term <term>whitespace</term><idx>whitespace</idx> refers to characters you type but typically do not see.  For us they are <term>space</term>, <term>non-breaking space</term>, <term>tab</term> and <term>newline</term> (also known as a <q>carriage return</q> and/or <q>line feed</q>).  Unlike some other markup languages, <pretext /> <em>does not ever use whitespace</em> to convey formatting information.</p>\n\n            <p>\n                However, it can be useful to use whitespace to indent the different levels of the <init>XML</init> (and document) hierarchy. Use two (or four) spaces for indentation; a good editor will visually respect this indentation, and help you with maintaining the right indentation with each new line.  Line up opening and closing tags at the same level of indentation, and your editor should let you <q>fold</q> the code to visually hide blocks.\n            </p>\n\n            <p>Whatever you do, use a style and stick with it.  You could put titles on a new line (indented) after creating a new chapter or section; some people like them on the same line, immediately adjacent.  You could put a single blank line before each new paragraph, but not after the last.  And so on.  The choice is yours, but consistency will pay off when you inevitably come back to edit something.  You have put a lot of work and effort into your source.  You will be rewarded with fewer problems if you keep it neat and tidy.</p>\n\n            <p>In some parts of a <pretext /> document, every single whitespace character is important and will be transmitted to your output, such as in the <tag>input</tag> and <tag>output</tag> portions of a <tag>sage</tag> element.  Since Sage code mostly follows Python syntax, indentation is important and leading spaces must be preserved.  But you can indent all of your code to match your <init>XML</init> indentation and the entire <tag>input</tag> (or <tag>output</tag>) content will be uniformly shifted left to the margin in your final output.</p>\n\n            <p>Never use tabs, they can only cause problems.  You should be able to set your editor to translate the tab key to a certain number of spaces, or to translate tabs to spaces when you save a file (and these behaviors are useful).  Most editors have a setting that will show whitespace as a small faint dots or arrows, so you can be certain there is no stray whitespace <em>anywhere</em>.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Learn to Use Your Editor</title>\n\n            <p>Because XML requires a closing tag for every opening tag, it feels like a lot of typing.  The VS Code <pretext /> extension comes with many <term>snippets</term> (code completions) that can fill out lots of the markup for you.  More generally, any editor should know what tag to close next and there should be a simple command to do that (for example, in Sublime Text on Linux, <c>Alt-Period</c> gives a closing tag).  Not only is this quick and easy, it can help spot errors when you forget to close an earlier tag.</p>\n\n            <p>If your editor can predict your opening tag, all the better.  VS Code can recognize what tags are allowed at a given position.    Sublime Text recognizes if you already have a <tag>section</tag> elsewhere, so when you start a second section, you very quickly (and automatically) get a short list of choices as you type, with the one you want at the top of the list, or close to it.</p>\n\n            <p>Invest a little time early on to learn, and configure, your editor and you can be even more efficient about capturing your ideas with a minimum of overhead and interference.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Revision Control</title>\n\n            <p>If you are writing a book, or if you are collaborating with co-authors, then you owe it to yourself and your co-authors to learn how to use revision control<idx>revision control</idx>, which works well with <pretext /> since the source is just text files.  The hands-down favorite is <c>git</c>.  To fully understand it is beyond the scope of this guide but some information is provided in <xref ref=\"git-author\" /> which has hints on how to best use <c>git</c> together with a <pretext /> project.</p>\n\n            <p>If you use the workflow recommended in the <xref ref=\"tutorial\"/> using GitHub's codespaces, you will get revision control via git automatically, and VS Code provides a graphical user interface for all the basic operations you need.</p>\n        </paragraphs>\n\n    </section>\n\n    <section xml:id=\"start-source-to-output\">\n        <title>Converting Your Source to Output</title>\n\n        <p>\n            Once you have content created in <pretext /> files (i.e., <init>XML</init> files), you will want to convert these files into a output format such as <init>HTML</init>, to be viewed in a web browser, or a <init>PDF</init>.  Instructions for doing this will be discussed in <xref ref=\"tutorial\"/>, and in even more detail in <xref ref=\"processing\"/>.  Here we provide an overview of how the conversion works to help you understand what is possible.\n        </p>\n\n        <p>\n            With <pretext /> <q>installed</q> (on your computer or in the cloud), converting <pretext /> <init>XML</init> into a full <init>HTML</init> website can be as simple as typing <c>pretext build html</c> in a terminal, or hitting <c>Ctrl+Alt+B</c> in VS Code.  Behind-the-scenes, these commands read through your <init>XML</init> and use <term>XSL</term> 1.0 (<term>eXtensiible Stylesheet Language</term>) to <em>transform</em> the <init>XML</init> source, using a number of <init>XSL</init> stylesheets that come with <pretext />.\n        </p>\n\n        <p>\n            The recommended workflow for processing your source uses a python program we call the <em><pretext/>-CLI</em> (<init>CLI</init> is <term>command line interface</term>). There are also a number of other free tools that can processes <init>XML</init> with <init>XSL</init>.  For example, <c>xsltproc</c> is a command line program that is usually installed by default on Linux systems and MacOS.\n            This was the recommended method in the early days of <pretext />, and still works.  Documentation for how to use <c>xsltproc</c> with <pretext /> can be found in <xref ref=\"xsltproc\"/>, but unless you are helping with the development of <pretext /> or are trying to do something fancy, you probably don't need it.\n        </p>\n\n        <p>\n        Some features of <pretext />, such as the inclusion of images described in source, or including <webwork /> exercises, requires the use of an additional processing, done in python. Some of these also require additional software (such as <latex /> or Sage). The <pretext />-CLI does this automatically when building (and regenerates these assets if they have changed since the last build). There is also a python script that can accesses these functions directly for use in development. See <xref ref=\"pretext-script\" /> if you are curious.\n    </p>\n\n    </section>\n\n    <section xml:id=\"start-next\">\n        <title>Where Next?</title>\n\n        <p>To start playing with <pretext /> right away, work through the <xref ref=\"tutorial\"/>.  It will guide you through a cloud-based setup (no software install required) and you will create, edit, convert, and deploy your first document.</p>\n\n        <p>If you would like a general, high-level overview of features skip ahead to <xref ref=\"overview\"/>.</p>\n\n        <p>In-depth, comprehensive use of features is in <xref ref=\"topics\"/>.</p>\n\n        <p>If you have an existing project authored in <latex/> you may be interested in the conversion process described in <xref ref=\"latex-conversion\"/>.</p>\n    </section>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/introduction/tutorial.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2023  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"tutorial\">\n    <title>Getting Started Tutorial</title>\n\n    <objectives>\n      <introduction><p>At the end of this tutorial you will have...</p></introduction>\n      <ul>\n        <li><p>Created a free GitHub account.</p></li>\n        <li><p>Created a GitHub Repository and Codespace for authoring <pretext/> in your web browser.</p></li>\n        <li><p>Learned the first steps to editing a <pretext/> document.</p></li>\n        <li><p>Converted your document to both <latex/>-generated PDF and accessible <init>HTML</init>.</p></li>\n        <li><p>Deployed your <init>HTML</init> to the web via GitHub Pages.</p></li>\n      </ul>\n    </objectives>\n\n    <introduction>\n      <p>\n        This chapter serves as a tutorial for quickly getting started with <pretext /> in your web browser\n        using free services provided by <url href=\"https://github.com\">GitHub</url>.\n        (Advanced users who'd prefer to install our free and open-source software\n        to their own machine may choose to skip ahead to <xref ref=\"tutorial-install\"/>.)\n      </p>\n      <p>\n        The community does its best to keep this guide updated, but for even more up-to-date advice,\n        join us at our regular Zoom drop-ins announced at\n        <url href=\"https://groups.google.com/g/pretext-announce/\">our Google group</url> or\n        watch a recording posted in <xref ref=\"tutorial-videos\"/>.\n      </p>\n    </introduction>\n\n    <section xml:id=\"quickstart-example\">\n      <title>Using <pretext /> online</title>\n      <introduction>\n        <p>\n          It is possible to write <pretext /> documents using nothing more than a web browser.  This approach does not require you to install any software (other than a web browser), although it does require you have internet access.  Options for installing <pretext /> on your own computer are discussed in <xref ref=\"tutorial-install\"/>.\n        </p>\n      </introduction>\n      <subsection>\n        <title>What is GitHub</title>\n        <p>\n          <term>GitHub</term> is a freely-available service owned by Microsoft for authoring, sharing, and deploying\n          documents and source code. It uses the free and open-source <term>Git</term>\n          software for version management.\n        </p>\n        <p>\n          There are other services such as <url href=\"https://cocalc.com\">CoCalc</url> and\n          <url href=\"https://about.gitlab.com/\">GitLab</url> for managing <pretext/> documents\n          online, as well as other ways to write <pretext/> that don't require anything\n          besides installing the free and open-source <pretext/> software onto your own device\n          (see <xref ref=\"tutorial-install\"/> to learn more).\n        </p>\n        <p>\n          We will use GitHub for this tutorial as it the most popular way to share and disseminate\n          <pretext/> documents, and provides the easiest pathway to getting started writing in the\n          <pretext/> language.\n        </p>\n        <p>\n          To create your free GitHub account,\n          <url href=\"https://github.com/signup\">\n              follow the instructions on GitHub's\n              sign-up page\n          </url>. You can also log into an existing GitHub account if you already have one.\n          Be sure to note your GitHub username and password in your password manager\n          (or however you usually keep track of login credentials).\n        </p>\n        <paragraphs>\n          <title>Tip!</title>\n          <p>\n            Educators and non-profit researchers can get many of GitHub's paid features\n            for free. While this is not strictly required for the rest of the tutorial, it's a\n            useful way to increase GitHub's free Codespaces usage quotas, and allows you to use GitHub's free web hosting even for private repositories.\n          </p>\n          <p>\n            Apply at\n            <url href=\"https://education.github.com/discount_requests/pack_application\">Education.GitHub.com</url>\n            to unlock these features. In our experience, applications are usually processed quickly for <c>.edu</c>\n            email addresses, but you do not need to wait for approval to continue on with this tutorial.\n          </p>\n        </paragraphs>\n      </subsection>\n      <subsection>\n        <title>Three GitHub concepts</title>\n        <p>\n          This tutorial uses three GitHub services:\n          <dl>\n            <li>\n              <title>Codespaces (<c>github.dev</c>)</title>\n              <p>\n                The Codespace for your project is an application\n                run in your web browser that gives you access to a virtual\n                computer with all the software recommended to author <pretext/>\n                installed for you automatically. This Codespace is private to you,\n                and lives at an address like\n                <c>https://username-random-words-abc123.github.dev</c>.\n              </p>\n            </li>\n            <li>\n              <title>Repository hosting (<c>github.com</c>)</title>\n              <p>\n                The <term>repository</term> for your project represents\n                the history of its edits that have been <q>committed and synced</q>\n                from your Codespace to it. This repository can be public\n                or private (though we encourage public repositories as they help\n                the community provide support for each other),\n                and lives at an address like\n                <c>https://github.com/username/reponame/</c>.\n              </p>\n            </li>\n            <li>\n              <title>GitHub Pages (<c>github.io</c>)</title>\n              <p>\n                The <term>GitHub Pages</term> service provides free hosting\n                for websites such as the HTML generated from a <pretext/> project.\n                This website is public, and lives at an address like\n                <c>https://username.github.io/reponame/</c>.\n              </p>\n            </li>\n          </dl>\n        </p>\n        <p>\n          Broadly speaking, you <q>author</q> within your Codespace, which you periodically\n          <q>commit and sync</q> to your repository, and then occasionally <q>deploy</q>\n          to your public GitHub Pages website.\n        </p>\n      </subsection>\n      <subsection>\n        <title>Creating your repository and Codespace</title>\n        <p>\n          Follow the instructions at <url href=\"https://github.com/PreTeXtBook/pretext-codespace\" />\n          to get started creating your repository and Codespace. You'll have the option to make your repository public\n          (recommended if you want support from the rest of the <pretext/> community) or private.\n          Either way, those instructions will also walk you through creating your private Codespace\n          for authoring.\n        </p>\n        <p>\n          This takes a few moments, but is a one-time process. Take note of the <c>github.com</c>\n          URL your new repository lives at so you can find it\n          the next time you want to work on your project.\n          (You can always access your <c>github.dev</c> Codespace link from there via the <c>Code</c>\n          menu.)\n          Then you'll be ready for <xref ref=\"tutorial-first-document\"/>.\n        </p>\n      </subsection>\n    </section>\n\n    <section xml:id=\"tutorial-first-document\">\n      <title>Your First PreTeXt Document</title>\n      <introduction>\n        <p>\n          At this point, you should have a <pretext /> project set up as a\n          <c>github.com</c> repository with a <c>github.dev</c> Codespace. You can use the\n          <c>Code</c> menu on the repository webpage to pull up the Codespace environment in\n          your web browser if you haven't already.\n        </p>\n\n        <p>\n          When you first created your repository from the template, there were very few files included.  The first thing you will do when you open your Codespace is to create a new <pretext /> project.  As the directions in the repository indicate, you can do this by selecting the <q>PreTeXt: New Project</q> command from the <term>command pallette</term> (which you can open with <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>P</kbd>, among other options).\n        </p>\n\n        <p>\n          You should be presented with a dialog asking for what sort of project you would like to create (<c>article</c>, <c>book</c>, <c>course</c>, <c>slideshow</c>, etc.).  For purposes of this tutorial, you should select <c>article</c> or <c>book</c>.  You will then be asked where you would like to create the project, and selecting the default suggested location is fine.\n        </p>\n\n        <p>\n          The window should now refresh and you will see a bunch of new files, including a folder called <c>source</c> that contains your <c>main.ptx</c> file.  Now you are ready to build it!\n        </p>\n      </introduction>\n      <subsection>\n        <title>Building for web</title>\n        <p>\n          You can build your entire project in a few different ways.\n          <ul>\n            <li>\n              <p>\n                Click the <q>PreTeXt</q> button in the center left of the bottom toolbar of the VS Code window (see <xref ref=\"tutorial-figure-codespaces-pretext\"/>). A dialog will pop up asking which <pretext /> command you want to run.  Select <c>Build default target</c>, or choose <c>Build another target...</c> to get a menu of options to select a <term>target</term> to build (choose <c>web</c>).\n              </p>\n            </li>\n            <li>\n              <p>\n                You can use the keyboard shortcut <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>p</kbd>\n                (replacing <kbd>CTRL</kbd> with <kbd>CMD</kbd> if you have a Mac) to get the same dialogs.  Or to build in one step, use <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>b</kbd>.\n              </p>\n            </li>\n            <li>\n              <p>\n                Select a <pretext /> command from the VS Code command palette, which you can access by clicking the icon in the bottom left of the VS Code window. You can also access this by typing <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>p</kbd> (again, replacing <kbd>CTRL</kbd> with <kbd>CMD</kbd> if you have a Mac).  Start typing <q>pretext</q> to get a list of commands available.\n              </p>\n            </li>\n            <li>\n              <p>\n                If you are comfortable entering commands in a terminal/command prompt, you can access one in your Codespace using <kbd>CTRL</kbd>+<kbd>`</kbd>.  Then you can run <c>pretext build web</c> to build your project.\n              </p>\n            </li>\n          </ul>\n          The resulting HTML files will be available in the <c>output/web</c> directory of your project.  However, to view it, you should NOT navigate there and open the files. Instead, read on.\n        </p>\n\n        <figure xml:id=\"tutorial-figure-codespaces-pretext\">\n          <caption>PreTeXt commands in Codespaces</caption>\n          <image width=\"50%\" source=\"codespaces-pretext.png\">\n            <description><p>Screenshot of VS Code PreTeXt button in Codespaces</p></description>\n          </image>\n        </figure>\n      </subsection>\n\n      <subsection xml:id=\"tutorial-previewing\">\n        <title>Viewing</title>\n        <p>\n          You can preview these HTML files you just built using the <term>View</term> command.\n          Again, you can access this in multiple ways: <pretext /> button in the toolbar, <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>p</kbd>, etc.\n          Select <c>View</c> from the dialog.  You may be given options on how to view the document,\n          depending on what VS Code plugins you have available to you. Try one or another until\n          you're able to view your web build in either a new tab of your browser or a tab within VS Code.\n        </p>\n\n        <p>\n          The VS Code Live Preview is a good option, but it is buggy when used inside Codespaces.  It seems to help to use the VS Code command palette to run <c>Live Preview: Show Preview (External Browser)</c>, then close the tab that opens, and start the process over.  You may need to do this a few times before it works.\n        </p>\n\n        <p>\n          Now is a great time to try to make edits to your source files (maybe change the title).\n          Note that these changes aren't updated live in your preview:\n          you will need to build again, and then refresh the preview window to see them.  Note, you do not need to run the <c>View</c> command again unless you stop the preview server.\n        </p>\n      </subsection>\n\n      <subsection xml:id=\"tutorial-pdf\">\n        <title>Building for print</title>\n        <p>\n          To produce a PDF from your <pretext /> source, repeat the above instructions\n          with the <c>print</c> target. If you use the <pretext /> button in the toolbar, select <c>Build another target...</c> and then <c>print</c>. Alternatively, you can enter <c>pretext build print</c> in a terminal. The resulting PDF will land in <c>output/print/main.pdf</c>, and can be downloaded by right-clicking in the VS Code file explorer, or previewed using\n          a View command.\n        </p>\n\n        <p>\n          If you would like to see the intermediate <latex /> source files, you can add a new target to the project manifest (<c>project.ptx</c>) with a <attr>format</attr> of <c>latex</c>.  See <xref ref=\"cli-project-manifest\"/>.\n        </p>\n\n      </subsection>\n\n\n      <subsection xml:id=\"tutorial-saving\">\n        <title>Saving your work</title>\n        <p>\n          Using Codespaces will keep all your files <q>in the cloud</q>,\n          saved automatically as you edit.\n          As long as your Codespace is active, your files will be saved there\n          for your private use. However, inactive Codespaces are periodically\n          cleaned up by GitHub (as of writing, this happens after one month of\n          inactivity), so you'll need to periodically\n          <term>commit &amp; sync</term> your work to your repository\n          where it will never be deleted.\n        </p>\n\n        <p>\n          Recall that your Codespace lives at <c>github.dev</c>, while your\n          repository has a <c>github.com</c> address like\n          <c>https://github.com/username/reponame</c>).\n          This repository serves as a backup of your work in the Codespace, and has the added benefit of\n          allowing collaborators to access your files as well. As a bonus, if you made your repository\n          public, members of the PreTeXt community who watch\n          the <url href=\"https://groups.google.com/g/pretext-support\">PreTeXt-support</url>\n          Google group can create their own Codespace based on your public repository and easily answer any\n          questions you have.\n        </p>\n\n        <p>\n          While Git and GitHub have a lot of features, there's a very simple way to use them\n          via Codespaces. As you edit files, you'll notice that their filenames will turn orange, and new\n          files will appear green. Likewise, a blue number will appear in the left sidebar.\n        </p>\n\n        <figure xml:id=\"tutorial-figure-codespaces-sidebar\">\n          <caption>Filenames changing color as they are edited in Codespaces</caption>\n          <image width=\"50%\" source=\"codespaces-sidebar.png\">\n            <description><p>Screenshot of VS Code sidebar in Codespaces</p></description>\n          </image>\n        </figure>\n\n        <p>\n          This blue badge is next to the Source Control view.\n          You will notice a list of files that were changed;\n          you can click on any of these to see what the changes are.\n        </p>\n\n        <figure xml:id=\"tutorial-figure-codespaces-diff\">\n          <caption>A <q>Git diff</q> showing changes in a file</caption>\n          <image width=\"100%\" source=\"codespaces-diff.png\">\n            <description><p>Screenshot of VS Code Git diff in Codespaces</p></description>\n          </image>\n        </figure>\n\n        <p>\n          <em>Type a message describing the changes you've made</em> then\n          click the green <q>Commit and Sync</q> button. If it just says <q>Commit</q>,\n          use the drop-down menu to choose <q>Commit and Sync</q>. (If you forget to type a message describing the changes you've made, then a new tab will open: <q>COMMIT_EDITMSG</q> where you can type the message.  When you are done, close the tab.)\n        </p>\n\n        <figure xml:id=\"tutorial-figure-codespaces-sync\">\n          <caption>Committing and syncing changes</caption>\n          <image width=\"50%\" source=\"codespaces-sync.png\">\n            <description><p>Screenshot of VS Code source control in Codespaces</p></description>\n          </image>\n        </figure>\n\n        <p>\n          To see that this is successful, return to your <c>github.com</c> repository webpage.\n          You should see your files with all your\n          committed/synced changes. (That is, most of them: many files, such as log files and\n          temporary build files that appear in gray within your Codespace, will not\n          be synced.\n          This is no problem: they are created during a build automatically and don't need to be,\n          and really shouldn't be, saved or shared with others.)\n        </p>\n      </subsection>\n\n      <subsection xml:id=\"tutorial-generate\">\n        <title>Generating assets</title>\n\n        <p>\n          If your document contains certain elements, you might need to <term>generate</term> their assets\n          for use in certain output formats. Depending on your build target, these include:\n          <ul>\n            <li><tag>latex-image</tag></li>\n            <li><tag>sagemath</tag></li>\n            <li><tag>asymptote</tag></li>\n            <li><tag>youtube</tag></li>\n            <li><tag>webwork</tag></li>\n            <li><tag>codelens</tag></li>\n          </ul>\n        </p>\n\n      <p>\n        Starting in CLI version 1.7, these assets will be automatically generated whenever you build your output. If you change the source of these assets, they will be regenerated when you build.\n      </p>\n      <p>\n        Regardless of which version of the CLI you are using, you can generate assets as a separate step in much the same way you run a build. You will see a <c>Generate</c> option in the <pretext /> command dialog, just below <c>Build</c>. Select your target and wait for the process to complete, then <c>Build</c> once more to incorporate your generated assets.\n      </p>\n\n      </subsection>\n\n      <subsection xml:id=\"tutorial-deploy\">\n        <title>Deploy</title>\n        <p>\n          So you have worked tirelessly to prepare course notes or a book, built and previewed,\n          synced changes to your git repository, and now you are ready to share the results of\n          your efforts with the world.  It's time to <term>deploy</term> your project!\n        </p>\n\n      <p>\n        From the <q>PreTeXt Commands</q> dialog, select <q>Deploy</q>. This will automatically take the most recent build of your web target and host it through <url href=\"https://pages.github.com/\">GitHub Pages</url>. Watch the output pane for a link to your published site; unlike the preview link you've been using on <c>github.dev</c> which is private to only you, this <c>github.io</c> link is ready to share with the world. (It can take a few minutes for the site to get set up or updated; there should be another link to view the progress of the GitHub <q>action</q> that reports the progress.)\n      </p>\n\n      <p>\n        By default, doing a deploy will just publish your <c>web</c> target. It is also possible to deploy multiple targets along with a <q>landing</q> page directing a visitor of your site to the different versions of your project. See <xref ref=\"processing-CLI\" /> for more information.\n      </p>\n    </subsection>\n\n      <subsection xml:id=\"tutorial-advanced\">\n        <title>Using this guide and advanced features</title>\n        <p>\n          The rest of this guide will help you on your way.\n          However, keep in mind that this guide is the work of many volunteers\n          over many years, and certain sections may assume the reader is using mechanisms for writing <pretext/>\n          that have been around for much longer than the Codespaces environment\n          recommended for this tutorial.\n        </p>\n        <p>\n          In particular, there are two advanced mechanisms used by many <pretext/> authors: the\n          <term>PreTeXt developer script</term>\n          <xref ref=\"pretext-script\"/> (i.e. the <c>pretext/pretext</c> script) and the\n          <term>PreTeXt CLI</term> <xref ref=\"processing-CLI\"/>.\n        </p>\n        <p>\n          Under the hood, the PreTeXt CLI is what you're using in Codespaces, and it also has the ability to\n          call the PreTeXt developer script as well. If you ever want to use a PreTeXt CLI command, you can open\n          a <term>Terminal</term> in your Codespace using the menus, or by pressing <kbd>Ctrl</kbd>+<kbd>`</kbd>\n          (the backtick key, found in upper left of many keyboards).\n        </p>\n        <p>\n          From the terminal, you can type in any PreTeXt CLI commands directly. For example,\n          typing in the CLI command <c>pretext build web</c> and running it by pressing <kbd>Enter</kbd> builds the\n          web target.\n        </p>\n        <figure xml:id=\"tutorial-figure-codespaces-pretext-cli\">\n          <caption>Using the PreTeXt CLI with a Codespaces terminal</caption>\n          <image width=\"80%\" source=\"codespaces-pretext-cli.png\">\n            <description><p>Screenshot of using the PreTeXt CLI within Codespaces</p></description>\n          </image>\n        </figure>\n        <p>\n          The CLI should be sufficient to do nearly everything you want to do for your project, and using\n          the developer script should be exercised with caution. Nonetheless,\n          to access a <c>pretext/pretext</c> developer script feature, you can use <c>pretext devscript</c>.\n          For example, if the\n          documentation suggests a command like <c>pretext/pretext -foo bar</c>, you could try running\n          <c>pretext devscript -foo bar</c>.\n        </p>\n      </subsection>\n    </section>\n\n  <section xml:id=\"tutorial-install\">\n    <title>Installing PreTeXt</title>\n\n    <introduction>\n      <p>\n        The browser-based GitHub Codespaces workflow described in <xref ref=\"quickstart-example\"/> is a quick and easy way to use <pretext /> without needing to install any additional software.  If you prefer to have a local setup of PreTeXt, we recommend one of the following three setups.\n      </p>\n    </introduction>\n\n    <subsection xml:id=\"subsec-installing-a-docker-container\">\n      <title>Option 1: Installing a Docker container</title>\n\n      <p>\n        The closest thing we have to a single click installer is to use a <term>Docker container</term> that includes all the software needed to run PreTeXt.  In fact, the setup described in this section results in an identical environment to the one used in GitHub Codespaces, but it is all locally running on your own computer.  The directions for all operating systems are the same (since the two programs you need to download and install are available for Windows, Mac, and Linux).\n      </p>\n\n      <p>\n        The one downside to this approach is that you will need a fair amount of disk space (around 5 GB all together), and some of that space will be used to install tools like <latex /> and SageMath that you might already have installed anyway.\n      </p>\n\n      <p>\n        Here are the steps required to use this option.\n        <ol>\n          <li>\n            <p>\n              Download and install <url href=\"https://code.visualstudio.com/\">Visual Studio Code</url>.  This is the desktop version of the text editor used in Codespaces (and is great for all your text editing needs, not just PreTeXt).\n            </p>\n          </li>\n          <li>\n            <p>\n              Download and install <url href=\"https://www.docker.com/products/docker-desktop\">Docker Desktop</url>.  Once installed, start Docker Desktop and agree to the licensing terms.  You should not need to create an account.\n            </p>\n          </li>\n          <li>\n            <p>\n              Download the <url href=\"https://github.com/PreTeXtBook/pretext-codespace/archive/refs/heads/main.zip\">PreTeXt Codespace</url> zip file and extract it to a location of your choice.\n            </p>\n          </li>\n          <li>\n            <p>\n              Launch Visual Studio Code.  Use the <q>File</q> menu to select <q>Open Folder...</q> and navigate to the folder where you extracted the zip file in the previous step.  Select that folder and click <q>Open</q>.\n            </p>\n          </li>\n          <li>\n            <p>\n              You will likely get a popup in the lower right corner of the window asking if you want to install the devcontainer extension, or if you want to open the current workspace in a devcontainer.  You do want to do both of these.  If you don't get this message, you can install the <q>Dev Containers</q> extension from the Extensions view (click the square icon on the left sidebar) and then use the Command Palette (<kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>P</kbd>) to run the command <q>Dev Containers: Reopen in Container</q>.\n            </p>\n          </li>\n        </ol>\n\n        The last step will take a few minutes the first time since it must download the container image.\n      </p>\n\n      <p>\n        Upon completing the steps above, you can create a new project and build/view/deploy just like described in <xref ref=\"tutorial-first-document\"/>.\n      </p>\n\n      <p>\n        Whenever you work on a project locally, you will want to open it in the container (but next time it will boot up much faster since you will already have the container image downloaded).\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"subsec-installing-pretext-cli\">\n      <title>Option 2: Installing the <pretext /> CLI and Additional Software</title>\n\n      <p>\n        The <pretext /> CLI is a Python package that can be installed on your computer.  This option is more lightweight than using a Docker container, but it does require you to install several prerequisite programs (including Python itself).\n      </p>\n\n      <p>\n        Detailed instructions for installing the <pretext /> CLI with PIP are available in <xref ref=\"processing-CLI\"/>. If you know what you are doing, you can just run `pip install pretext[all]` to get all the python and core parts of <pretext />.\n      </p>\n\n      <p>\n        This option is great if you already have a lot of the software that would be duplicated in the docker image from Option 1.  In the following list, only python is strictly required, but many features of <pretext /> will not work without the other software.\n        <ul>\n          <li>\n            <p>\n              <term>Python</term> (version 3.10 or later); required.\n            </p>\n          </li>\n          <li>\n            <p>\n              <term>Node.js</term> (version 18 or later); required to build custom themes for HTML and to build Braille and some epub targets.\n            </p>\n          </li>\n          <li>\n            <p>\n              <term>Git</term>; required to store your project on GitHub and use the `pretext deploy` command to host your project on GitHub Pages.\n            </p>\n          </li>\n          <li>\n            <p>\n              <term>PreFigure</term>; required to build  <tag>prefigure</tag> images. You can get this as part of the <pretext /> CLI installation, if you install the cli with <c>pip install pretext[prefigure]</c>, although you might need some additional system libraries installed.  See <url href=\"https://prefigure.org/\">PreFigure's website</url> for more information.\n            </p>\n          </li>\n          <li>\n            <p>\n              <term><latex /></term> (any standard distribution, including TeXLive, MiKTeX or TinyTex will work); required to build PDF output and if your document includes TiKz images (in a <tag>latex-image</tag> element).\n            </p>\n          </li>\n          <li>\n            <p>\n              <term>SageMath</term> (version 10.0 or later recommended); required to build SageMath output and if your document includes sageplots (in a <tag>sageplot</tag> element).\n            </p>\n          </li>\n        </ul>\n      </p>\n\n      <p>\n        While you can use any text editor you like for authoring <pretext /> documents, <term>Visual Studio Code</term> is highly recommended due to the availability of the <c>pretext-tools</c> extension which provides syntax highlighting, autocompletion, and other features that make authoring <pretext /> documents much easier.  You can install this extension from the Extensions view in Visual Studio Code (click the square icon on the left sidebar) or by searching for <c>pretext-tools</c> in the Extensions Marketplace (it is automatically installed if you use the Docker container from Option 1).\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"subsec-installing-from-source\">\n      <title>Option 3: Running <pretext /> <q>from source</q></title>\n\n      <p>\n        For advanced users, especially if you want to contribute to the development of <pretext />, you can run <pretext /> without the CLI.  To do this, you will need to clone the <url href=\"https://github.com/PreTeXtBook/pretext\">PreTeXt repository</url> and install the required dependencies manually.  This is required if you want to run the <xref ref=\"pretext-script\"><pretext /> script</xref> or even just use <xref ref=\"xsltproc\"><c>xsltproc</c></xref> to process your <pretext /> documents.  Additional information is available in the linked sections.\n      </p>\n\n      <p>\n        Some context for experienced Python developers: <pretext /> is an open-source <url href=\"https://en.wikipedia.org/wiki/XML\">XML</url> language primarily powered by\n        <url href=\"https://en.wikipedia.org/wiki/XSLT\">XSLT</url> and <url href=\"https://en.wikipedia.org/wiki/Python_(programming_language)\">Python</url> tools.\n        PreTeXt development is primarily split over two GitHub repositories:\n        <url href=\"https://github.com/PreTeXtBook/pretext\">PreTeXtBook/pretext</url>\n        for the <q>core</q> functionality of PreTeXt, and the more recent\n        <url href=\"https://github.com/PreTeXtBook/pretext-cli\">PreTeXtBook/pretext-cli</url>\n        that packages up these resources into a Python package with several UX enhancements\n        such as a simplified command line interface and project management that does not require the use of custom makefiles.  Instructions for developing with the CLI are available in its repository's README file.\n      </p>\n\n      <p>\n        If you're interested in potentially contributing back to PreTeXt someday, please\n        feel free to request to join\n        <url href=\"https://groups.google.com/g/pretext-dev\">our developer Google Group</url>\n        and say hello!\n      </p>\n    </subsection>\n\n  </section>\n\n  <section xml:id=\"tutorial-videos\">\n      <title>Videos</title>\n\n      <p>\n        Occasional <q>Getting Started with PreTeXt</q> tutorials are offered to the community via\n        Zoom. For updates on when these are available, subscribe to\n        <url href=\"https://groups.google.com/g/pretext-announce\">the PreTeXt announcements\n        Google Group</url>.\n      </p>\n\n      <p>The most recent recording of this tutorial is provided here for your reference.</p>\n\n      <figure xml:id=\"tutorial-videos-figure\">\n          <caption>Getting Started with PreTeXt, 2023 July</caption>\n          <video xml:id=\"tutorial-videos-video\" youtube=\"w_Wu5ysIiPQ\" preview=\"getting-started-preview.png\"/>\n      </figure>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/preface.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the documentation of PreTeXt              -->\n<!--                                                                -->\n<!--         The PreTeXt Guide                                      -->\n<!--                                                                -->\n<!-- Copyright (C) 2013-2019                                        -->\n<!-- Robert A. Beezer, David Farmer, Alex Jordan, Mitchel T. Keller -->\n<!-- See the file COPYING for copying conditions.                   -->\n\n<preface xml:id=\"preface\">\n    <paragraphs>\n        <title>Introduction</title>\n\n        <p>This part is the place to begin if you are new to <pretext/>.  <xref ref=\"start-here\"/> is the introduction, overview, and philosophy.  Then <xref ref=\"tutorial\"/> intends to get you started quickly by showing how to set up a <pretext/> authoring environment and converting a document to <init>HTML</init> and <latex/> output formats.  Notice that there are three parts which target different roles: the <pubtitle>Author's Guide</pubtitle> (<xref ref=\"part-author\"/>), the <pubtitle>Publisher's Guide</pubtitle> (<xref ref=\"part-publisher\"/>) and the <pubtitle>Developer's Guide</pubtitle> (<xref ref=\"part-developer\"/>).</p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>Author's Guide</title>\n\n        <p>This guide will help you <em>author</em> a <pretext /> document.  So it serves as a description of the <pretext/> <init>XML</init> vocabulary, along with the mechanics of creating the source and common output formats.  <xref ref=\"overview\"/> is meant to be a short overview of the majority of <pretext/>'s features, which can be skimmed to get a sense of <pretext/>'s capabilities.  Or it can be read quickly as you begin authoring and you can return as you need certain features.  The roughly parallel <xref ref=\"topics\"/> is much more comprehensive and is the first place to go for details not addressed in the overview.  Note that the <pubtitle>Author's Guide</pubtitle> is not concerned with <em>publishing</em> your document, which is described in the <pubtitle>Publisher's Guide</pubtitle>.</p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>Basic Reference</title>\n\n        <p>This part provides a quick overview of the minimal syntax for a variety of key <pretext/> features. Unlike the sample article, which is designed to demonstrate and stress test all aspects of <pretext/>, this guide will illustrate only the key elements of some of the most universally-used features of the language. In many cases, in addition to features not discussed, there may be alternative structures that are not given here.</p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>Publisher's Guide</title>\n\n        <p>Even if you intend to distribute your document with an open license, and you are both author <em>and</em> publisher, it is still helpful and instructive to understand, and separate, the two different steps and roles.  So visit this part of the <pubtitle>Guide</pubtitle> to learn how you can present, distribute, and maintain what you have authored.</p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>Developer's Guide</title>\n\n        <p>This part provides advice, suggestions, and conventions for contributing to <pretext/>.  For anything not answered here please use the <url href=\"https://groups.google.com/forum/#!forum/pretext-dev\" visual=\"groups.google.com/forum/#!forum/pretext-dev\"><c>pretext-dev</c></url> Google Group.  Make a membership request and it will be processed quickly.</p>\n    </paragraphs>\n\n    <paragraphs>\n        <title>Appendices</title>\n\n        <p>In addition to the usual items you might expect in the back matter, such as an <xref ref=\"appendix-gfdl\" text=\"custom\">open license</xref>, <xref ref=\"glossary\" text=\"custom\">glossary</xref>, <xref ref=\"references\" text=\"custom\">references</xref>, and an <xref ref=\"the-index\" text=\"custom\">index</xref>, there are numerous more specialized additions, mostly describing the installation of, or effective use of, various technical tools that are independent of <pretext/> (but useful or necessary).</p>\n    </paragraphs>\n</preface>\n"
  },
  {
    "path": "doc/guide/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <target name=\"html\">\n      <format>html</format>\n      <source>guide.xml</source>\n      <publication>publication.xml</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"latex\">\n      <format>latex</format>\n      <source>guide.xml</source>\n      <publication>publication.xml</publication>\n      <output-dir>output/latex</output-dir>\n    </target>\n    <target name=\"pdf\" pdf-method=\"pdflatex\">\n      <format>pdf</format>\n      <source>guide.xml</source>\n      <publication>publication.xml</publication>\n      <output-dir>output/pdf</output-dir>\n    </target>\n  </targets>\n  <executables>\n    <latex>latex</latex>\n    <pdflatex>pdflatex</pdflatex>\n    <xelatex>xelatex</xelatex>\n    <asy>asy</asy>\n    <sage>sage</sage>\n    <pdfpng>convert</pdfpng>\n    <pdfeps>pdftops</pdfeps>\n    <node>node</node>\n    <liblouis>file2brl</liblouis>\n  </executables>\n</project>\n"
  },
  {
    "path": "doc/guide/publication-styled.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- The  publication.xml  and  publication-styled.xml  files    -->\n<!-- are very similar.  The latter specifies a LaTeX style,      -->\n<!-- which mostly manipulates fonts, and lacks any configuration -->\n<!-- for an HTML version.  Edits should consider keeping these   -->\n<!-- two files in sync.                                          -->\n\n<publication>\n\n    <!-- LaTeX only, no \"html\" section -->\n\n    <latex font-size=\"10\" latex-style=\"guide\">\n        <page>\n            <geometry>letterpaper,total={6.5in,9in}</geometry>\n        </page>\n    </latex>\n\n    <!-- Relative path, relative to \"main\" source file -->\n    <source>\n        <directories external=\"external\" generated=\"generated\"/>\n    </source>\n\n</publication>\n"
  },
  {
    "path": "doc/guide/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- The  publication.xml  and  publication-styled.xml  files    -->\n<!-- are very similar.  The latter specifies a LaTeX style,      -->\n<!-- which mostly manipulates fonts, and lacks any configuration -->\n<!-- for an HTML version.  Edits should consider keeping these   -->\n<!-- two files in sync.                                          -->\n\n<publication>\n\n    <html>\n        <index-page ref=\"guide-toc\"/>\n        <baseurl href=\"https://pretextbook.org/doc/guide/html/\"/>\n        <css theme=\"default-modern\" palette=\"blue-red\"/>\n        <analytics google-gst=\"UA-48811660-1\" statcounter-project=\"9664088\" statcounter-security=\"6e60c510\"/>\n        <search variant=\"reference\"/>\n    </html>\n\n    <latex font-size=\"10\">\n        <page>\n            <geometry>letterpaper,total={6.5in,9in}</geometry>\n        </page>\n    </latex>\n\n    <!-- Relative path, relative to \"main\" source file -->\n    <source>\n        <directories external=\"external\" generated=\"generated\"/>\n    </source>\n\n</publication>\n"
  },
  {
    "path": "doc/guide/publisher/ancillaries.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"ancillaries\">\n    <title>Ancillaries</title>\n\n    <introduction>\n        <p>Similar to an Instructor's Version, for a textbook, or other work, a publisher might wish to provide ancillary documents with additional, or repackaged, material.</p>\n    </introduction>\n\n    <section xml:id=\"solution-manual\">\n        <title>Solution Manual</title>\n\n        <p>An author may include a <tag>hint</tag>, <tag>answer</tag>, and/or <tag>solution</tag> as part of each <tag>exercise</tag> or <tag>project</tag>.  Some of these may be designed for the reader, while some may designed for the instructor.  A separate conversion is available to make a <init>PDF</init> containing just these items.</p>\n\n        <p>\n            To use the CLI, first create a small <init>XSL</init> file, called <c>solution-manual.xsl</c>, in the <c>xsl</c> folder at the root of your project, containing the following lines.\n        </p>\n\n        <pre>\n        <![CDATA[\n        <?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n        <xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n            <xsl:import href=\"./core/pretext-solution-manual-latex.xsl\"/>\n        </xsl:stylesheet>\n        ]]>\n        </pre>\n\n        <p>\n            Then add the following target in your project manifest.\n        </p>\n\n        <pre>\n        <![CDATA[\n        <target name=\"solutions\">\n            <format>custom</format>\n            <source>source/main.ptx</source>\n            <publication>publication/publication.ptx</publication>\n            <xsl>xsl/solution-manual.xsl</xsl>\n            <output-dir>output/solutions</output-dir>\n        </target>\n        ]]>\n        </pre>\n\n        <p>\n            Then you can build the solution manual with the <pretext />-CLI using <c>pretext build solutions</c>.\n        </p>\n\n        <p>Or using xsltproc, execute<cd>\n            <cline>xsltproc -xinclude pretext-solution-manual-latex.xsl fauna.xml</cline>\n        </cd>with suitable paths in front of the stylesheet and the source file.  The result will be a file like <c>fauna.tex</c>, which can be processed with a <latex/> engine such as <c>pdflatex</c>.  By default, the result will include <em>all</em> <tag>statement</tag>, <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> for <em>every</em> <tag>exercise</tag> or <tag>project</tag> anywhere in your <tag>book</tag>.  Note that this conversion is explicitly designed only for <tag>book</tag>, so send a request for support for an <tag>article</tag>.  Division headings (<tag>chapter</tag>, <tag>section</tag>, <ellipsis/>) will be present, if and only if they have content.  Page headers will help locate chapters and sections.  Exercise numbers will be complete, to make it easier to locate individual problems.  In other words, Exercise 3 from Exercises 5.6 will be labeled as 5.6.3, not just 3, as in the original text.</p>\n\n        <p>Any cross-reference that exists inside a solution will be honored and displayed faithfully.  By that, we mean that if the author includes an <tag>xref</tag> as part of a solution to, say, Theorem 10.6, then that cross-reference will be rendered visibly as <q>Theorem 10.6</q> in the solution manual.  However, it will not be live (clickable) since the target (the <tag>theorem</tag> itself) is not part of the solution manual.  We have not, and do not expect to, determine if a cross-reference points to part of another exercise which is visible in the remainder of the solution manual and then elect to make it live/clickable.  In other words, all cross-references are static, even if there is the possibility to be more dynamic for a select few.  If this is a severe shortcoming, consider producing an Instructor's Version (<xref ref=\"instructor-version\"/>), enhanced with additional solutions, where all cross-references are live, and targets are more likely to be available.</p>\n\n        <p>A set of switches allows a publisher to control including <tag>statement</tag>, <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag><ndash/>for inline exercises, divisional exercises, worksheet exercises, reading questions, projects, and tasks within exercises and projects.  So there is a total of <m>4\\times 5 = 20</m> yes/no switches, for <m>2^{20} = 1\\,048\\,576</m> supported scenarios.  Start at <xref ref=\"exercise-component-visibility\"/> for more on these settings.  The <latex/> preamble is the same as for the full document, so besides being excessive, it should support any of the <latex/> styling options.</p>\n\n        <p>In practice, you will discover that the conversion will reproduce all of your <tag>frontmatter</tag> and <tag>backmatter</tag> <em>exactly</em> as if it was part of the entire text itself.  The reason for this is that you may actually want a little bit of front matter, perhaps some back matter, and maybe a new title page that makes it clear that you have created a solution manual.  Best practice would be to have your project already organized so that each of your chapters is in its own file, and incorporated into your document via a top-level file using the <tag>xi:include</tag> mechanism.  (Read about modularity in <xref ref=\"processing-modular\"/> if this is new to you.)  So now make an <em>additional</em> top-level file for the solution manual, maybe with a new title, a new preface, and acknowledgements of any help creating exercises and solutions.  Be sure to include <em>all</em> of the main matter, even if you know some parts may not have any <tag>exercise</tag>.  You want numbering to be correct for your cross-references and this means having all the content available to be counted, even if it is not visible in the end product.  This new top-level file is really the only overhead involved in getting a quality, reliable solution manual together.</p>\n\n        <p>The philosophy behind this conversion is that a publisher may wish to create a <em>different</em> range of solutions for instructors, for limited distribution in ways that students are unlikely to find.  Thus, we have tried to produce a <em>functional</em> document by default, without too much attention to making a <em>beautiful</em> document.  Of course, improvements and suggestions are always welcome, though here the priority will be ease-of-use.</p>\n\n        <paragraphs>\n            <title>Digression</title>\n\n            <p>This conversion illustrates some advantages of including all the content of your project in one source document, and then selecting a subset of that content for different audiences. The advantage of authoring <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> in close proximity to the <tag>statement</tag> should mean a higher probability that changes to one part of an exercise will be reflected in the other parts.  And with standard processing tools, and provided switches, an author and publisher can easily decide which parts to show, and when.</p>\n\n            <p>By including all of your project's content in one monolithic source document, it is possible to confidently reference supporting parts of the main text via cross-references from solutions.  When a new edition is released, any variations in numbering will automatically be reflected in a new solution manual, created with no additional editing or proofreading.</p>\n        </paragraphs>\n    </section>\n\n    <section xml:id=\"private-solutions-file\">\n        <title>Private Solutions File</title>\n\n        <p>Suppose an author distributes a textbook with an open license, and so makes the <pretext/> source available publicly (perhaps as a condition of the license).  Perhaps the author also intends <tag>hint</tag> provided with <tag>exercise</tag> to assist students, and having them available as knowls in <init>HTML</init> output is a great way to make them easily available, but not immediately visible.  But the author has also written some, or many, <tag>solution</tag> for the <tag>exercise</tag>, but these are only meant for instructors, and not for students.  See the discussion at <xref ref=\"instructor-solutions\"/> for more background.</p>\n\n        <p>One approach is to distribute an Instructor Version or Solution Manual only on request, and only as a PDF.  The ability to provide a watermark on every page (see <xref ref=\"watermarks\"/>) allows you to include a personalized message such as <cd>Issued to Charles Darwin.  Do Not Copy.</cd>It would be a trivial technical exercise to remove this, but perhaps the moral imperative (in an extra <tag>preface</tag> as well?) would dissuade most from distributing further?</p>\n\n        <p>But with an open-source project, how can you distribute the exercise without distributing the <tag>solution</tag>?  After multiple unsatisfactory experiments, we have arrived at the following <em>solution</em>.  You author a <em>separate</em> <pretext/> document with <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> that you wish to keep <term>private</term>.   You might put this in a different, private, git repository that you only share with your co-authors.  Here is how you can construct and employ this file.  Here we use the word <term>solution</term> generically to mean any of <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>.</p>\n\n        <list>\n            <title>Private Solutions File</title>\n            <idx><h>solutions</h><h>private</h></idx>\n            <idx>private solutions</idx>\n\n            <ol>\n                <li xml:id=\"prep-the-exercise\">\n                    <p>Start with an <tag>exercise</tag> that you wish to provide private solutions for.  Give it an <attr>xml:id</attr>, which you will need for <xref ref=\"build-the-solution\" text=\"type-local\"/>.  Be sure the <tag>exercise</tag> is structured with a <tag>statement</tag> so a private solution may be appended.</p>\n                </li>\n\n                <li>\n                    <p>We recommend leaving a comment inside the <tag>exercise</tag> to remind you that there is a private solution that may need editing if the problem <tag>statement</tag> changes.</p>\n                </li>\n\n                <li>\n                    <p>Create a new <pretext/> file to hold the private solutions, presumably located <em>away</em> from your other source files (see <xref ref=\"private-stays-private\"/>).  Call it something like <c>privatesolutions.ptx</c>, which is what we will use below.</p>\n\n                    <p>The first two lines of the file <em>must</em> be:<cd>\n                        <cline>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;</cline>\n                        <cline>&lt;pi:privatesolutions</cline>\n                        <cline>  xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"&gt;</cline>\n                    </cd>(<c>pi</c> is the <pretext/> internal namespace.)</p>\n                </li>\n\n                <li xml:id=\"build-the-solution\">\n                    <p>Now add as many <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag> as you like, in any order you like, authored in the usual way.  The missing piece is that you must link each solution back to the <tag>exercise</tag> it belongs to, with a <attr>ref</attr> attribute whose value is the <attr>xml:id</attr> you used to label the <tag>exercise</tag> in <xref ref=\"prep-the-exercise\" text=\"type-local\"/>.</p>\n\n                    <p>For example, if there is an <tag>exercise</tag> with <attr>xml:id</attr> having value <c>very-hard-problem</c>, you might author:<cd>\n                        <cline>&lt;answer ref=\"very-hard-problem\"&gt;</cline>\n                        <cline>  &lt;p&gt;42.&lt;/p&gt;</cline>\n                        <cline>&lt;/answer&gt;</cline>\n                    </cd></p>\n                </li>\n\n                <li>\n                    <p>Finish the file by closing the overall <tag>pi:privatesolutions</tag> element.</p>\n                </li>\n\n                <li>\n                    <p>Now you can have all of these private solutions incorporated into your source by specifying the filename in your publication file (<xref ref=\"publication-file\"/>).  The <attr>private-solutions</attr> attribute of the <c>/publication/source</c> element should be set to this filename (<xref ref=\"publication-file-source-extras\"/>).  So you would have<cd>\n                        <cline>&lt;publication&gt;</cline>\n                        <cline>  &lt;source private-solutions=\"path/to/privatesolutions.ptx\"/&gt;</cline>\n                        <cline>  ...</cline>\n                    </cd></p>\n                </li>\n\n                <li>\n                    <p>The private solutions file should be available to any conversion, but most likely you will be using it with the solution manual conversion (see <xref ref=\"solution-manual\"/>).</p>\n                </li>\n            </ol>\n        </list>\n\n        <p>For a large project you may have <em>many</em> private solutions and one big file is unwieldy.  The solution is to modularize the file as described in <xref ref=\"processing-modular\"/>.  Then you can organize your <q>file</q> of solutions into multiple files, perhaps organized by <tag>chapter</tag> or <tag>section</tag>.  The carch is that the include facility requires each separate file to only have a <em>single</em> top-level (root) element.  For this purpose use the <tag>pi:privatesolutionsdivision</tag> element, which is designed for only this purpose.  You can nest this element arbitrarily deep.</p>\n\n        <p>Note that an <tag>exercise</tag> or <tag>task</tag> may be authored with no solutions and then does not need a <tag>statement</tag>.  Now, if you add private solutions to such an exercise or task, the markup will be incorrect.  As of 2020-06-24 we make no extra effort to warn, or fix, this situation.  A likely consequence will be that these private solutions are not rendered (but you might see a problem number where they should appear).  Similar advice applies to <tag>task</tag>, and especially to non-terminal <tag>task</tag> which can never hold solutions.</p>\n\n        <p>You will have noticed that you have a lot of freedom to make a completely disorganized private solutions file, or even <em>many</em> disorganized files.  There is no structure to prevent this<mdash/>you are on your own.  Ourselves, we would keep the solutions in order of appearance, modularize a big project logically, and use comments liberally.  But you can always search on the common value of <attr>xml:id</attr> and <attr>ref</attr> to locate the pieces.</p>\n\n        <warning xml:id=\"private-stays-private\">\n            <title>Keep Your Private Solutions Private!</title>\n\n            <p>If you are using git (and why wouldn't you?) it could be an easy mistake to include your private solutions in a public repository accidentally with a careless commit.  We would place our private solutions in a directory close to our source tree, but not within the material tracked by git.  And we would build our solutions manual with private solutions by copying the necessary files to some scratch directory, where they get deleted later, after the <init>PDF</init> result has been preserved for use.</p>\n        </warning>\n    </section>\n\n    <section xml:id=\"private-solutions-git\">\n        <title>Private Solutions with Git</title>\n\n        <p>(2020-06-06) We no longer advocate this approach, and find <xref ref=\"private-solutions-file\"/> easier and more robust.  This section is no longer maintained and may be removed.</p>\n\n        <p>Suppose an author distributes a textbook with an open license, and so makes the <pretext/> source available publicly (perhaps as a condition of the license).  Perhaps the author also intends <tag>hint</tag> provided with <tag>exercise</tag> to assist students, and having them available as knowls in <init>HTML</init> output is a great way to make them easily available, but not immediately visible.  But the author has also written some, or many, <tag>solution</tag> for the <tag>exercise</tag>, but these are only meant for instructors, and not for students.  See the discussion at <xref ref=\"instructor-solutions\"/> for more background.</p>\n\n        <p>One approach is to distribute an Instructor Version or Solution Manual only on request, and only as a PDF.  The ability to provide a watermark on every page (see <xref ref=\"watermarks\"/>) allows you to include a personalized message such as <cd>Issued to Charles Darwin.  Do Not Copy.</cd>It would be a trivial technical exercise to remove this, but perhaps the moral imperative (in an extra <tag>preface</tag> as well?) would dissuade most from distributing further?</p>\n\n        <p>But what about publicly available source code?  After several unsatisfactory experiments, we have arrived at the following <em>solution</em>.  Again it involves an intermediate understanding of the revision control software, git.  And again, this is an outline.<ul>\n            <li>Create a private repository for authors, and other trusted contributors.  In other words, if shared, read access is controlled via passwords or something similar.</li>\n            <li>Create a branch off of <c>master</c> called <c>solutions</c>.</li>\n            <li>Do all editing of private material, and only editing of private material, as commits to this branch.  So a typical commit might just be <tag>solution</tag> elements inside existing <tag>exercise</tag>.  Any script or top-level file for producing a solution manual might also be part of this branch.</li>\n            <li>Do all authoring in this private repository, mostly as commits on <c>master</c>.</li>\n            <li>Periodically, while the <c>solutions</c> branch is checked out, merge <c>master</c> to bring in new changes to the main content.</li>\n            <li>Never ever merge <c>solutions</c> into <c>master</c>.  In other words, <c>solutions</c> is a long-lived branch which never dies and is never merged into another branch. (Never rebase this branch if you have collaborators sharing the private repository.)</li>\n            <li>Push and pull both <c>master</c> and <c>solutions</c> to and from the private repository by setting up tracking branches.</li>\n            <li>Create a public repository which is a strict duplicate of the <c>master</c> branch.  Periodically push the <c>master</c> branch of the private repository to the <c>master</c> branch of the public repository.  Only.  Its only purpose is for the next item.  Use commands or a setup which makes it impossible to accidentally push <c>solutions</c> to this public repository.</li>\n            <li>The commits in the public repository will be <em>identical</em> to those on <c>master</c> in the private repository.  So anyone can clone or fork this repository and make pull requests, which authors can apply and mange via the private repository.  But solutions will never be part of the interaction with this repository.</li>\n        </ul></p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/braille.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2023-2023  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"publisher-braille\">\n    <title>Conversion to Braille</title>\n    <idx>braille</idx>\n\n    <p>There is a conversion to braille which works very well, while also needing further improvements.  Conceptually, it is not very different than the <init>EPUB</init> conversion (<xref ref=\"epub\"/>), except for the additional necessity of the <c>liblouis</c> library for the translation of literary text (see <xref ref=\"liblouis\"/>).  MathJax and Speech Rule Engine provide Nemeth Braille from your authored <latex/> mathematics.  There is the option of embossable braille (designed for a physical paper page) or electronic braille meant for an electronic device like a one-line reader with mechanical raised pins.  It is worth the effort to first make sure an <init>EPUB</init> conversion is successful, and then extend to the braille conversion.</p>\n\n    <p>Some extra care needs to go into the authoring of a <pretext/> project that creates the best possible output as braille.  Some aspects are obvious, such as not being overly-reliant on video or interactive demonstrations.  We can accomodate some constructions like a <tag>sidebyside</tag> in a way that makes sense to the reader.  An allied project hopes to make it easy for authors to create diagrams that work well for both sighted and blind readers (tactile graphics).  But constructions like abusing an <tag>m</tag> element to get a superscript <q>th</q> will just lead to confusion for a braille reader.  With experience, we are collecting suggestions for authoring in <xref ref=\"topic-braille-practices\"/>.</p>\n\n    <p>Please be in-touch in the <pretext/> discussion groups if you have a <pretext/> project you would like to convert.  Of course, we want to improve the process and the result, but we are especially interested in the experience of blind and low-vision readers who can point us to areas that need improvement.</p>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/conversions.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"conversions\">\n    <title>Conversions, Generally</title>\n\n    <introduction>\n        <p>A main goal of <pretext /> is to provide a language for describing a scholarly document by its structure, with contained content, and with no description of the presentation.  It then becomes possible to use software to produce different formats, where the presentation takes advantage of that format and enhances the meaning of the content through the expression of the structure.</p>\n\n        <p>But different output formats have different capabilities.  For example, a conversion to <init>HTML</init> can take advantage of knowls to organize smaller chunks of content, while a conversion to <init>PDF</init> can take advantage of page numbers for cross-references.  And in these two examples, the capability of the one output format is mostly impossible or silly in the other.  Look here in this chapter for notes about options that are largely <em>independent</em> of the particular conversion.  Subsequent chapters contain notes about options that are largely <em>specific</em> to a particular conversion.</p>\n    </introduction>\n\n    <section xml:id=\"publication-file\">\n        <title>Publication File</title>\n        <idx><h>publication file</h></idx> <idx><h>publisher file</h><see>publication file</see></idx>\n\n        <p>A key concept when using <pretext/> to describe your writing project is that an author should concentrate on <em>content</em> and then <em>later</em> a publisher can concentrate on <em>presentation</em>.  (Of course, many <pretext/> authors are also their publisher, making this distinction more difficult than when a professional publisher was a necessity).</p>\n\n        <p>We isolate these publisher decisions in a file we call a <term>publication file</term>.  Generally, use of this file will change <em>how</em> words look, or are arranged, on the page, but will not change the author's words <em>themselves</em>.  some software might call this a <q>configuration file</q>, but we think it is very important to indicate its role in the publication process.</p>\n\n        <p>In tnis section, we describe how to create and employ this file.  Details on actual options can be found throughout this guide, with terse comprehensive reference material in <xref ref=\"publication-file-reference\"/>.</p>\n\n        <p>Create a separate <init>XML</init> file the same way you always would.  Include the usual <init>XML</init> declaration as the first line.  Now, instead of the overall element being <tag>pretext</tag>, use <tag>publication</tag>.  That's it.  Various elements within <tag>publication</tag> will be used to specify options, typically attributes.  Name the file something that reminds you of its purpose, such as <c>pod.xml</c> for a print-on-demand version.  Avoid using spaces in the filename, even if your operating system encourages it.</p>\n\n        <p>Entries that control aspects of the output are often attributes of various elements, but may also be the content of elements.  When you read the reference material in <xref ref=\"publication-file-reference\"/> be aware that we use a sort of shorthand to describe these entries, modeled on a specification called XPath.  For example, if we say to set<cd>\n            <cline>/publication/foo/bar/@bazz</cline>\n        </cd>to possible values of <c>yes</c>, <c>no</c>, or <c>maybe</c> then the following will be the guts of a legitimate publication file that would somehow adjust your output in some way.  In particular, note that the <q>at sign</q>, <c>@</c>, indicates an attribute of the preceding element.</p>\n\n        <pre><![CDATA[\n            <publication>\n                <foo>\n                    <bar bazz=\"maybe\"/>\n                </foo>\n            </publication>]]>\n        </pre>\n\n        <p>When using the CLI (<xref ref=\"processing-CLI\"/>), the path to a publication file must be specified in the project manifest in the <tag>publication</tag> element for each <tag>target</tag>.</p>\n    </section>\n\n    <section xml:id=\"publisher-levels\">\n        <title>Levels Explained</title>\n        <idx>levels</idx>\n\n        <p>Every <pretext/> document has a hierarchy, even if it might not be very deep.  As an extreme example, for a sub-sub-section of a book, the <tag>subsubsection</tag> is contained in a <tag>subsection</tag>, that <tag>subsection</tag> is contained in a <tag>section</tag>, that <tag>section</tag> is contained in a <tag>chapter</tag>, and that <tag>chapter</tag> is contained in the <tag>book</tag>.  Each division of a document has a <term>level</term>, and the overall <term>root</term> element is always at level 0 (the <tag>book</tag> in the example).  Each other division is at some <term>depth</term>, computed by counting from the root.  So the <tag>subsubsection</tag> in the example is at level 4.</p>\n\n        <p>Many aspects of the different outputs produced can be customized, typically via the publication file (<xref ref=\"publication-file\"/>), based on how much of the hierarchy is used or made visible.  A good example is the Table of Contents.  If the level of the Table of Contents of a book is set to 2, then the Table of Contents will be <q>two-deep</q> or have <q>two levels</q> of entries.  More precisely, there will be titles (and maybe page numbers) for every <tag>chapter</tag> and every <tag>section</tag>.</p>\n\n        <p>When hierarchical numbering is customized by specifying a level, the number of an object will have as many separators (periods, typically) as the level given.  Here's why.  Suppose equations are set to be numbered at level 2.  Then two levels of the hierarchy will be used to create the initial part of the number.  So in an <tag>article</tag>, Equation 5.2.34 will be in Subsection 2, of Chapter 5, and then will be the 34th equation of that sub-section.  Two levels: one separator to describe the division, one less that the number of levels (this is the <term>structure number</term>) and a second separator to set off the count within the division (the <term>serial number</term>).  So, <m>(2 - 1) + 1 = 2</m> separators.  See more on numbering at <xref ref=\"publisher-numbering\"/>.</p>\n\n        <p>Notice that you make no assumptions or decisions in your source about the depth of the Table of Contents, nor the numbering of equations.  At any time, right up to the completion of your project (or later!), you can change this aspect of your output with nearly trivial edits in the publication file.  Nice.</p>\n    </section>\n\n    <section xml:id=\"publisher-numbering\">\n        <title>Numbering Explained</title>\n        <idx>numbering</idx>\n\n        <p><pretext/> targets the production of <q>structured scholarly documents</q><mdash/>not novels, not magazine articles, not menus, and not travel brochures.  (Though a novel could work well?)  A research monograph might only be consulted for a portion of its content.  A good textbook should be useful to a reader after a course is over, and it should be easy to locate certain portions of the material.  A good textbook will foreshadow later material, and reinforce earlier material.  So we provide tools that lead to a quality index, reduce the overhead of making an accurate cross-reference, and make an automatic Table of Contents.  Page numbers can be a useful way to locate information for print output, but are less useful in an electronic <init>PDF</init> with hyperlinks, and are totally useless for online <init>HTML</init> and reflowable <init>EPUB</init>.  So we rely on copious hierarchical numbering to assist with locating discrete pieces of content.</p>\n\n        <p>A <pretext/> document, like most any scholarly document has a hierarchy of <term>divisions</term>.  These are always numbered to reflect that hierarchy.  So Subsection 4.7.2 of a <tag>book</tag> is the second sub-section of the seventh section of the fourth chapter of the book.  It is possible to specify that the numbering stops at some level, but that will limit how you can number smaller units of content.</p>\n\n        <p><term>Blocks</term> are units of content held in a division.  An <tag>example</tag> is a good example.  These are always numbered, so that cross-references are as useful as possible in all output formats.  The number begins with a <term>structure number</term> that is the number of a division.  The division will contain the block, but does not need to be the closest containing division.  For example, Example 5.2.65 of a book has structure number 5.2, indicating it is in Section 2 of Chapter 5.  But this section might be structured as a sequence of sub-sections and Example 5.2.65 would be contained in one of these sub-sections.  But if we started counting all the examples in this <em>section</em> we would find Example 5.2.65 as the sixty-fifth numbered block of the whole <em>section</em>, even if it might only be the twenty-second example of its sub-section.  This final number is known as the <term>serial number</term>.  The granularity of the structure number may be configured.  This is a good place to suggest the complementary <xref ref=\"publisher-levels\"/> on the meaning of the term <term>level</term>.</p>\n\n        <p>Numbering of equations and footnotes may be configured in a manner entirely similar to that of blocks.  See <xref ref=\"publication-file-numbering\"/> for details on how to control this.</p>\n\n        <p>As mentioned above, a number is a kind of <term>locator</term><mdash/>it should help a reader locate content, via a cross-reference, an index entry (a specialized cross-reference), or a Table of Contents.  It should also help a reader (teacher) tell another reader (student) where to find content, perhaps as part of a citation to a smaller item within a larger work.  How would you locate Example 5.2.65?  A Table of Contents, in any output format should get you to Section 5.2 quite easily.  We claim that the <tag>remark</tag> immediately preceding Example 5.2.65 should be Remark 5.2.64.  In other words, it will easier to scan the section and quickly home in on the example if the serial numbers count <em>all</em> the numbered blocks, rather than having one sequence of serial numbers counting examples, and a second sequence counting remarks.  Not convinced?  Suppose there were two such sequences of serial numbers.  When you see Remark 5.2.23, should you move forward or backward in your search for Example 5.2.65?</p>\n\n        <p>If it is so important to not have separate sequences of serial numbers, then why do equations and footnotes get their own sequences?  These items are substantially different visually, and even their numbers are formatted quite differently, so scanning for blocks or equations or footnotes should be very distinct visually.  Notice that it is their <em>distinctive appearance</em> that is the criteria for an independent sequence of serial numbers.</p>\n\n        <p>We have implemented some flexibility for figures and tables, and for projects.  This work is in flux, so we have not yet documented the possibilities.  Our view is that figures and tables can be considered visually different enough to merit a separate sequence of serial numbers.</p>\n\n        <p>Divisions that are <tag>chapter</tag>s, and only <tag>chapter</tag>s, may begin with a number other than one.  Primarily this is to accommodate books that need to be printed in multiple physical volumes, so numbering in a second (or subsequent) volume can be correct.  We also understand the instructive value of a computer science text that wants to start counting from zero.  We do not mean to encourage a Chapter 0 that is an introduction (go ahead and title Chapter 1 <articletitle>Introduction</articletitle>) or background preparatory material (make that an appendix).  Understand that a <tag>preface</tag>, or multiple <tag>preface</tag>s, is the place to talk about how, or why, you wrote your book, and/or a place to instruct a reader or instructor about the best ways to use your book.  See <xref ref=\"publication-file-numbering\"/> for details on how to accomplish this.</p>\n\n        <note xml:id=\"best-practice-chapter-zero\">\n            <title>Use Chapter Zero Carefully</title>\n\n            <p>Chapter numbering may start with a number other than one, and zero is a popular choice.  This should not be simply because the first chapter is introductory or preparatory, nor should it be a replacement for a preface, which has a well-defined purpose (see <xref ref=\"best-practice-preface\"/>).</p>\n        </note>\n    </section>\n\n    <section xml:id=\"exercise-component-visibility\">\n        <title>Exercise Component Visibility</title>\n\n        <p>The <tag>statement</tag>, <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> elements are collectively the <term>components</term> of exercises, projects (and similar), and tasks they may contain.  When you author an exercise, you may only want to have a solution appear at the end of a book, or in a solution manual, and not right where the exercise is born.  There are twenty yes/no settings (four components for each of five types of exercises), which control visibility <em>at the location where the content is born</em>.  The default value for each is <c>yes</c>, which means the component is visible.  See <xref ref=\"common-exercise-visibility\"/> for complete details.</p>\n\n        <p>This is a good example of settings you may wish to employ differently for different output.  Since <init>HTML</init> output automatically puts these components into knowls (<xref ref=\"knowled-content\"/>), you may be less concerned about having them visible as part of the exercise itself.  Conversely, for PDF/print output, you may wish exercise components to only be visible at the end of a book.  Note that migrating solutions to another location is accomplished with a <tag>solutions</tag> specialized division (<xref ref=\"topic-solutions-division\"/>).</p>\n\n        <p>Finally, these settings are observed by the stylesheet which creates a solution manual (see <xref ref=\"solution-manual\"/>).  This might explain why controlling the visibility of a <tag>statement</tag> is of interest.</p>\n    </section>\n\n    <section xml:id=\"watermarks\">\n        <title>Watermarks</title>\n\n        <p>Output can contain a <term>watermark</term><idx>watermark</idx>, which is prominent text in the background of a document.  You might use it to make a draft version (with a date?), or a CONFIDENTIAL version, or a document intended for limited distribution, such as an instructor's solution manual.</p>\n\n        <p>In <init>PDF</init> output this text will render as large, light grey text, at an angle across the page.  <init>HTML</init> output will have repeated <init>SVG</init> images of the text below/behind the usual text.</p>\n\n        <p>To use, a publication file entry can be used to specify the text itself, along with a scaling factor that can be used to fill the page and prevent overruns.  Note that the text is assumed to be simple (e.g.<nbsp/>no markup) and when used with <latex/> output certain characters (e.g.<nbsp/>a percent sign) may cause problems.  Make a feature request if the handling of this text needs to be more robust.  See <xref ref=\"common-watermark-options\"/> for exact syntax.</p>\n\n        <p>Here is an example of a specification in the publication file.<cd>\n            <cline>&lt;common&gt;</cline>\n            <cline>  &lt;watermark scale=\"1.2\"&gt;DRAFT 2034-05-25&lt;/watermark&gt;</cline>\n            <cline>&lt;/common&gt;</cline>\n        </cd></p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/cover-design.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"cover-design\">\n    <title>(*) Cover Design</title>\n\n    <p>Notes: Rationale (promotion).  Procedures for print-on-demand (generally).  Tools (Illustrator, GIMP, Inkscape). ISBN placement.  Capable students can do design for you.</p>\n\n    <p>Covers can be modified for use in an electronic <init>PDF</init> produced from the <latex/> conversion, see <xref ref=\"latex-cover-images\"/>.</p>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/custom-versions.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2022  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"custom-versions\">\n    <title>Custom Versions</title>\n    <idx>custom versions</idx>\n    <idx><h>versions</h><h>custom</h></idx>\n\n    <introduction>\n        <p>An <term>edition</term> would be a copy of your project, different than one produced at some other time.  For example, you might elect to make annual editions, with corrections, additions, and deletions.  By contrast, a <term>version</term> is a copy of your project that shares content with another version, but differs in minor or substantial ways.  We provide mechanisms for minor differences in <xref ref=\"publisher-customizations\"/> and for substantial differences in <xref ref=\"publisher-versions\"/>.  Be sure to read about both mechanisms first, and understand their purposes, before committing to one or the other.</p>\n    </introduction>\n\n    <section xml:id=\"publisher-customizations\">\n        <title>Customizations</title>\n        <idx>customizations</idx>\n\n        <p>The customization feature allows you to create two or more versions of your text for slightly different audiences. To do this, an author defines custom elements that find their translations in a file specified in the publication file.  Multiple customization files can then be used to build different versions of the text. For example, we might want to create two versions of our <init>AOTA</init> book, one for zoologists and one for laypeople. For the zoologist edition we want animal names to be scientific names, but in the edition for laypeople we want to use common names. The rest of the text is identical.  To execute this, we make every animal name a custom element and create a customization file for each of the two versions.</p>\n\n        <p>Say we want to write a sentence that reads <q>The IUCN red list classification of the western lowland gorilla is critically endangered</q> in the layperson’s edition and <q>The IUCN red list classification of the <taxon>Gorilla gorilla gorilla</taxon> is critically endangered</q> in the zoologist’s edition. We begin by writing the sentence in the source and creating a <tag>custom</tag> element as a place-holder for the name of the gorilla:</p>\n\n        <pre>\n        The &lt;init>IUCN&lt;/init&gt; red list classification of\n        the &lt;custom ref=\"gorilla-name\"/&gt; is critically endangered.\n        </pre>\n\n        <p>Then the file of translations will contain a <tag>custom</tag> element, with a <attr>name</attr> attribute that has value <c>gorilla-name</c>, and whose content is the translation.</p>\n\n        <p>Once you have placed <tag>custom</tag> elements in your source, you need to create one or more files of translations.  To stay organized you might choose to place them in a directory of their own.  The customization file opens with a special element and then contains a definition for each customization.</p>\n\n        <p>For the example above, here is the beginning of the customization file we might name <c>customizations/zoologist.ptx.</c></p>\n\n        <pre>\n        &lt;pi:customizations xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"&gt;\n          &lt;!-- Name of Western mountain gorilla --&gt;\n          &lt;custom name= \"gorilla-name\">\n            &lt;taxon&gt;Gorilla gorilla gorilla&lt;/taxon&gt;\n          &lt;/custom&gt;\n        &lt;/pi:customizations&gt;\n        </pre>\n\n        <p>Note that employing a common value for the <attr>name</attr> attribute and the <attr>ref</attr> attribute makes the association for the replacement in the source. Next, we would also create a customization file named <q>customizations/layperson.ptx</q> that looks like the following.</p>\n\n        <pre>\n        &lt;pi:customizations xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"&gt;\n          &lt;!-- Name of Western mountain gorilla --&gt;\n          &lt;custom name= \"gorilla-name\">western lowland gorilla&lt;/custom&gt;\n        &lt;/pi:customizations&gt;\n        </pre>\n\n        <p>Once the customization files are created, the element <c>&lt;custom ref=\"gorilla-name\"/&gt;</c> can be used <em>throughout</em> the text and will populate automatically depending on which customization file is specified in the publication file.</p>\n\n        <p>When choosing names to use as values for the  <attr>ref</attr> and <attr>name</attr> attributes, develop a consistent scheme that will make sense to other authors. Do not use spaces or capital letters. This name will never be visible to readers but should be easy for developers to understand.  Placing careful comments in one <q>main</q> customization file can help other authors create new customizations that are accurate.</p>\n\n        <p>Note that this functionality is limited when it comes to irregular plurals and capitalization. Take care with the placement of custom elements: they will not, for example, capitalize automatically at the beginning of a sentence.</p>\n\n        <p>See <xref ref=\"publication-file-source-extras\"/> for the mechanics of specifying a file of customizations via the publication file.</p>\n    </section>\n\n    <section xml:id=\"publisher-versions\">\n        <title>Versions</title>\n        <idx>versions</idx>\n\n        <introduction>\n            <p>A <term>version</term> is formed by including or excluding content coming from your <pretext/> source.  This could be optional content, or it could be content that varies between versions.  See <xref ref=\"version-use-cases\"/> for specific examples.</p>\n        </introduction>\n\n        <subsection>\n            <title>Marking Your Source</title>\n\n            <p>The <attr>component</attr> attribute is used by an author to identify elements in the <pretext/> source.  The value of the attribute is any name that makes sense to a publisher.  Examples might be <c>videos</c>, <c>labs</c>, <c>genome</c>, or <c>color</c>.  There is a (huge) <term>un-component</term> which is the collection of all elements not contained in an element that is in some named component.  You can think of it as a default component, or an un-named component<mdash/>it is content that will be in <em>every</em> version, no matter what.</p>\n        </subsection>\n\n        <subsection>\n            <title>Forming a Version</title>\n\n            <p>Now, a publisher can elect to include or exclude all of the content of each component.  This is accomplished with the <attr>include</attr> attribute of the <c>source/include</c> element inside a publication file.  The value of this attribute is a space-separated listing of some of the component names in use.  An example minimal publication file could look like the following example.  See <xref ref=\"publication-file-source-version\"/> for the specifics.</p>\n\n            <pre><![CDATA[\n                <publication>\n                    <source>\n                        <version include=\"videos labs\"/>\n                    </source>\n                </publication>]]>\n            </pre>\n\n            <p>This attribute is interpreted according to these rules:<ul>\n                <li>An element whose <attr>component</attr> value <em>is</em> in the list in <attr>include</attr> will be included in the source that will be converted.</li>\n                <li>An element whose <attr>component</attr> value <em>is not</em> in the list in <attr>include</attr> will not be included in the source that will be converted.</li>\n                <li>If there is no <attr>include</attr> attribute in the publication file, the indication of the components are ignored and the entire source is processed.  This would be the same as listing every component name in <attr>include</attr>.</li>\n                <li>Setting <attr>include</attr> to an empty value (<c>include=\"\"</c>) achieves the opposite effect and excludes every component from the source that will be converted.</li>\n            </ul>You can nest one component inside another.  But understand that once a <pretext/> element is excluded because the version in play does not include a certain component, then <em>all</em> of that element's contained source is gone and never coming back.  In other words, an element nested inside an excluded element cannot be influenced by whatever other component it may be assigned to.  However, the converse is possible: include an element via a component, and exclude contained elements via a different component.</p>\n        </subsection>\n\n        <subsection xml:id=\"version-use-cases\">\n            <title>Types of Versions</title>\n\n            <p>Here are three typical use cases for versions.</p>\n\n            <paragraphs>\n                <title>Additional Material</title>\n\n                <p>Some material may not be desired for every output format.  Some interactive material might not make sense in a printed book.  Or perhaps certain types of exercises are included at the end of each chapter, or not.  By putting these elements in components, they may be included or excluded via a publication file.  The idea here is that some versions contain a <em>subset</em> of all the available, authored material.  For example, a version might include content in the <c>videos</c> and <c>labs</c> components, but exclude content in the <c>genome</c> component.</p>\n\n                <p>An <q>annotated</q> Instructor's Version can be accomplished with additional material, perhaps in a selection of <tag>commentary</tag> elements looking like like <cd>\n                    <cline>&lt;commentary component=\"instructor\"&gt;</cline>\n                </cd></p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Alternate Treatments</title>\n\n                <p>It may be possible to present a topic in two logically correct orders, but with substantial differences in how subtopics are treated.  An example is the <q>early</q> or <q>late</q> treatment of transcendental functions in calculus.  If the rearrangement is cosmetic, then an alternate main file can simply include divisions (chapters, sections) from separate files in a different order via the <c>xi:include</c> mechanism.  See <xref ref=\"processing-modular\"/> for details.</p>\n\n                <p>When the two pathways through the material have common and distinct material, then two components can be employed and the publication file would always include exactly one component.</p>\n\n                <p>Or for excluded material you might create some sort of placeholder text indicating what is missing.  So all <tag>video</tag> elements might be excluded by placing them into the <c>videos</c> component.  But you might want to indicate that there is a video available in some other format and include an indication of its title or topic.  So you could write a short paragraph next to the <tag>video</tag> and place it in a <c>novideos</c> component.  Now you would typically include exactly one of <c>videos</c> or <c>novideos</c> within each publication file in use.  If your <tag>video</tag> live in numbered figures, you could exclude the <tag>figure</tag> and use a numbered block, such a <tag>remark</tag> as the alternate and perhaps preserve numbering of later items.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Alternate Presentation</title>\n\n                <p>This is an example similar to one Sean Fitzpatrick uses.  His <tag>docinfo</tag> configures the way color is used in his TikZ diagrams.  But instead he has two configurations, one for full color (HTML, electronic PDF), and another for black-and-white (printed hardcopy).  The former is in the <c>color</c> component, and the second is in the <c>nocolor</c> component.  If his project has color photographs, he could make careful gray-scale versions with specialized tools, and then place the resulting pair of <tag>image</tag> into each of the two components separately.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Releasing Material over Time</title>\n\n                <p>Many authors are simultaneously publishers, and some are also instructors.  And a few author-publisher-instructors like to <q>release</q> their material over time.  This could be accomplished with versions.  First there will be some base material like the front matter, back matter, and a preparatory Chapter 1.  Now, mark Chapters 2 and 3 each with the component <c>week1</c>.  Mark Chapter 4 with component <c>week2</c>.  Mark Chapters 5, 6 and 7 with component <c>week3</c>.  And so on.</p>\n\n                <p>Then the publisher file can be edited each week, or there can be multiple publisher files (one per week), which successively accumulate more components to include.  For example,<cd>\n                    <cline>&lt;version include=\"week1\"/&gt;</cline>\n                    <cline>&lt;version include=\"week1 week2\"/&gt;</cline>\n                    <cline>&lt;version include=\"week1 week2 week3\"/&gt;</cline>\n                </cd>Note how the numbering of older material will not be affected by the addition of newer material, you will just want to be careful about forward cross-references from released material into un-released material.  Of course, this example just uses chapters as the granular unit<mdash/>you could use other divisions, or a mix.</p>\n            </paragraphs>\n        </subsection>\n\n        <subsection xml:id=\"version-caveats\">\n            <title>Caveats for Creating Versions</title>\n\n            <p>There are some subtleties when you get fancy with manipulating your source this way, and we cannot protect you from every pitfall.  You may get warnings for some of this.  If you find new gotchas the hard way, please let us know.</p>\n\n            <paragraphs>\n                <title>Numbering</title>\n\n                <p>It is very possible that material that is common between versions ends up with different numbers.  An exception is if you subset by excluding material <em>at the end of a division</em>.  This may be very natural for optional material.  Then elect a numbering option that resets at the next division.  In this way later <q>higher</q> numbers go missing, and it does not affect the sequence of earlier <q>smaller</q> numbers.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Cross-References</title>\n\n                <p>Do not create a cross-reference into content you might exclude, there may not be a target for the <tag>xref</tag>.  You should get a warning about this.  When you have alternate versions, you will need to think carefully about <attr>xml:id</attr> and <tag>xref</tag> for your two versions.  It is possible that what you think is common material might really need to go into two components because an <tag>xref</tag> points at a target that actually resides in two different components.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Identifiers</title>\n\n                <p>Allied with cross-referencing, be careful not to create source that had duplicate identifiers that are meant to be unique.  You may get warnings about this situation.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Generated and External Files</title>\n\n                <p>Some portions of your <pretext/> source get manipulated into additional files in particular formats (<q>generated</q>).  Examples would include images given in <latex/> or Asymptote syntax, and trace files for Runestone CodeLens environments.  Depending on what you include or exclude in different versions, these files could have different characteristics.  As one example, suppose you define different color palettes for use in images described using the TikZ language (inside a <pretext/> <tag>latex-image</tag> element).  And then you employ the two different palettes by using versions and components to control which palette is used for each version.  If you want to save these images (say, by commiting to a repository) rather than repeatedly regenerate them, then you need to save two different collections of generated images.</p>\n\n                <p>Versions are given by a publication file (<xref ref=\"publication-file-reference\"/>), and the publication file allows you to specify which directory has these generated images (<xref ref=\"processing-directory-management\"/>) so you can easily coordinate the generation and employment of these images with a coherent publication file.</p>\n\n                <p>You also sometimes bring <q>external</q> files to your project, such as <init>JPEG</init> images, which are not derived from your <pretext/> source.  As in the example above, you could have color images for a version used to produce electronic formats and grayscale images for a version produced for physical printing.  Again, the publication file could be used to employ a different collection/directory of external images for different versions via the options described in <xref ref=\"processing-directory-management\"/>.</p>\n            </paragraphs>\n        </subsection>\n    </section>\n</chapter>\n\n"
  },
  {
    "path": "doc/guide/publisher/epub.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2021  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"epub\">\n    <title>Conversion to EPUB/Kindle</title>\n    <idx><h>epub</h></idx>\n    <idx><h>kindle</h></idx>\n    <introduction>\n        <p><init>EPUB</init> is the standard format for electronic books. Books in <init>EPUB</init> format can be read using applications on a variety of platforms. (Apple Books across the entire Apple ecosystem. <url href=\"http://calibre-ebook.com\" visual=\"calibre-ebook.com\">Calibre</url> is open source and cross-platform for desktop usage. Android devices have options as well.) Amazon's Kindle devices use a proprietary format that is derived from <init>EPUB</init>. Through much experimentation, the <pretext /> team has determined that <init>SVG</init> mathematics, generated by MathJax offline tools, works well in all ebook readers <em>other</em> than Kindle apps and devices. For Kindle, MathML is the best format. (Apple's MathML implementation is very poor as of July 2021, and so we cannot recommend math formatted using MathML for situations where readers may use the Apple Books app.) Thus, we provide <em>two</em> pathways for production of electronic books. These formats are useful as an offline version, which is superior to a <init>PDF</init> in some ways, such as font face and font size being controlled by the software in an e-reader device.  However, it is inferior to the online version (<xref ref=\"online-html\"/>), since many interactive features cannot function within the <init>EPUB</init> version.</p>\n    </introduction>\n\n    <section>\n        <title>Prerequisites</title>\n        <p>\n            There are a handful of prerequisites to build an <init>EPUB</init> version of a book.\n            <ul>\n                <li>\n                    <p>\n                        You must use either the <pretext />-CLI or the <c>pretext/pretext</c> script, since creating an <init>EPUB</init> file is a multi-stage process; building with <c>xsltproc</c> is not supported.\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        You must have <c>node</c> and <c>npm</c> must be installed.  See <xref ref=\"node-and-npm\"/> for more on <c>node</c> and <c>npm</c>.\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        You must use a publication file (referred to below as <c>publication.ptx</c>) with <cd>source/directories/@generated</cd> and <cd>source/directories/@external</cd> so that images can be located and bundled (these are included by default if you use <c>pretext new</c> or <c>pretext init</c> for your project).\n                    </p>\n\n                    <p>\n                        To use a non-generic cover image, the publication file must also have <c>epub/cover/@front</c> attribute that points to the cover image (<init>JPEG</init> or <init>PNG</init>, 2048 pixels tall, 1280 pixels wide).  Absent an image provided, there will be an attempt to create a simple, generic cover image.  See <xref ref=\"epub-cover-image-option\"/> for details about specifying a cover image.\n                    </p>\n                </li>\n            </ul>\n            If you use the <c>pretext/pretext</c> script, you will need to generate any source-defined images in <init>SVG</init> format for standard <init>EPUB</init>, and <init>PNG</init> format for Kindle.  Furthermore, Kindle processing requires <init>PNG</init> resolution to be at least 200 <init>DPI</init>, and 300 <init>DPI</init> is a good recommendation (from Mitch Keller).  See <url href=\"https://kdp.amazon.com/en_US/help/topic/G202169030\">Kindle Help topic <c>G202169030</c></url> for more.\n        </p>\n\n        <p>\n            Finally, if you are using the <c>pretext/pretext</c> script, you must install a local version of MathJax (the CLI will try to do this for you).  We provide a bash script in <c>scripts/mjsre</c> that automates this process.  See <xref ref=\"install-mathjax\"/> for instructions.  As updates to the <init>EPUB</init> conversion are released, you may occasionally want to update your local copy of MathJax.  Simply use the script referenced above.\n        </p>\n\n        <p>\n            To use the CLI, you will need to create a new target in the project manifest (project.ptx).  The target should look something like the following.\n        </p>\n\n        <pre>\n        <![CDATA[\n            <target name=\"ebook\">\n                <format>epub</format>\n                <source>source/main.ptx</source>\n                <publication>publication/publication.ptx</publication>\n                <output-dir>output/epub</output-dir>\n            </target>\n        ]]>\n        </pre>\n        <p>\n            The <attr>name</attr> can be whatever you wish, but the <tag>format</tag> must be epub or kindle.  You won't be able to tell the output files apart, so if you want both an epub and a kindle, name the output directory differently for each.\n        </p>\n\n    </section>\n\n    <section>\n        <title>Converting and validating</title>\n        <p>\n            First we will describe how to convert to epub or kindle using the CLI.  Assuming you have added a target with name <q>ebook</q> and format <q>epub</q>, simply run:\n        </p>\n        <console>\n            <input>pretext build ebook -g</input>\n        </console>\n\n        <p>\n            If instead, you wish to use the <c>pretext/pretext</c> script, make sure to first generate images into the correct format (<init>SVG</init> for regular <init>EPUB</init> and <init>PNG</init> for kindle).\n            Converting to <init>EPUB</init> with <init>SVG</init> math (used everywhere other than Kindle), run as a single command-line\n            <cd>\n                <cline>/path/to/pretext/pretext/pretext -c doc -f epub-svg</cline>\n                <cline>    -p publication.xml -d /path/to/output</cline>\n                <cline>    /path/to/yourmainfile.ptx</cline>\n            </cd>\n            For an <init>EPUB</init> file destined for Kindle, use the single command-line\n            <cd>\n                <cline>/path/to/pretext/pretext/pretext -c doc -f epub-kindle</cline>\n                <cline>    -p publication.xml -d /path/to/output</cline>\n                <cline>    /path/to/yourmainfile.ptx</cline>\n            </cd>\n        </p>\n\n        <p>\n            If you would like to name your output file something other than the name inferred from the root xml:id, you can use <c>-o path/to/output/filename.epub</c> instead of the <c>-d</c> option.\n        </p>\n\n        <p>For the standard <init>EPUB</init> conversion, any standard <init>EPUB</init> reader should work. MacOS users will find the Apple Book app is likely their default. Calibre is useful for an alternative view and works on Windows and Linux as well. For the Kindle conversion, you will need to get <url href=\"https://www.amazon.com/gp/feature.html?ie=UTF8&amp;docId=1000765261\" visual=\"www.amazon.com/gp/feature.html?ie=UTF8&amp;docId=1000765261\">Amazon's Kindle Previewer app</url> (macOS and Windows only). For reasons we do not understand, some books crash the Kindle Previewer app, in which case you should try loading the <init>EPUB</init> file into the Amazon KDP web interface, which also offers a preview. (This preview is the only option for Linux users.)</p>\n\n        <p>Many <init>EPUB</init> marketplaces are strict about requiring that your <init>EPUB</init> file pass validation by the open source <c>epubcheck</c> validation tool. You may be able to install a command-line version of <c>epubcheck</c> using your operating system's package management tool. A free Java-based GUI version <url href=\"https://www.pagina.gmbh/produkte/epub-checker/\" visual=\"www.pagina.gmbh/produkte/epub-checker/\">released by Pagina</url> might be useful. There is also a (slow, limited) online version.  More pointers can be found at the <url href=\"https://www.w3.org/publishing/epubcheck/\" visual=\"www.w3.org/publishing/epubcheck/\">W3 EPUBCheck</url> site.  Please report validation errors and oddly-formatted electronic book output to the <c>pretext-support</c> Google group. Some aspects of <pretext /> have not yet been fully implemented for <init>EPUB</init>, but we will endeavor to support them as demand arises.</p>\n    </section>\n\n    <section>\n        <title>Distribution</title>\n        <p>Because the <init>EPUB</init> file built for Kindle is different than what we build for all other readers, you <em>must</em> distribute the Kindle version of your book through Amazon's KDP. Because Amazon and Kindle have the overwhelming majority of the electronic book market in the United States, if your readers are mainly in the United States, we highly recommend that you get your Kindle version in good shape.</p>\n        <p>Distribution of the <init>EPUB</init> file produced by the <c>epub-svg</c> conversion can be done through electronic book aggregators. There are many options available, and they all take an additional commission on top of what the electronic book marketplace through which a reader buys your book takes, but using such a service can save you from needing to post your electronic book on a variety of marketplaces. <alert>Do not allow an aggregator to distribute your book to Amazon, as the math will not render properly.</alert> It is as simple as <em>not</em> checking the box for Amazon when signing up with an aggregator to opt out of having the aggregator send your book to Amazon.</p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/further-customizations.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2022  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"further-customizations\">\n    <title>Further Customizations</title>\n    <idx>customization</idx>\n\n    <introduction>\n        <p>The publication file is our primary vehicle for substantially affecting the way a project is produced, see <xref ref=\"publication-file\"/> for more.  Varying small portions of text (on the order of a phrase) is accomplished with customizations to make different versions, see <xref ref=\"publisher-customizations\"/>.  Producing different versions by including, or excluding, large portions of text, on the order of paragraphs, blocks, and divisions, is accomplished with support for versions, see <xref ref=\"publisher-versions\"/>.  Arranging material in different orders can be accomplished with thoughtful use of modularizing source files, see <xref ref=\"processing-modular\"/>.</p>\n\n        <p>In this chapter we describe two other ways to influence output, which are in some ways are techniques a <pretext/> developer might need to be familiar with (<xref ref=\"part-developer\"/>), though a publisher might also find them useful.  An author should not have any need for these techniques.</p>\n    </introduction>\n\n    <section xml:id=\"publisher-string-parameters\">\n        <title>String Parameters</title>\n        <idx>string parameters</idx>\n        <idx>stringparam</idx>\n\n        <p>The majority of the conversions that <pretext/> supports are accomplished via an Extensible Stylesheet Language (<init>XSL</init>) stylesheet.  This language has a <term>parameter</term> feature which allows an external value (as a small chunk of text) to be provided to the stylesheet externally.  In this way, a single stylesheet can produce small changes in output in reaction to a parameter value, without the need for creating multiple stylesheets.  We say that the stylesheet is <term>parameterized</term> by the parameter.  These are often called <term>stringparam</term> since that is the command-line switch used by the <c>xsltproc</c> executable for the external communication (<xref ref=\"xsltproc\"/>).</p>\n\n        <p>The conversion to <latex/> source, as a precursor of <init>PDF</init> output is a good example.  A string parameter specifies the size of the font, which causes small changes to the <latex/> source file in the appropriate ways.  Similarly, a <init>PDF</init> should be different if it is meant to be become a hardcopy printed book, or if it is meant to be viewed on an electronic screen.  This dichotomy is reflected by a simple string parameter (with values <c>yes</c> or <c>no</c>) and then a single stylesheet can produce two outputs that are different in substantial ways.  Note that a publisher is insulated from any of this discussion for these two examples as the publisher file (<xref ref=\"publication-file\"/>) handles all the logistics.  See the publisher file options at <xref ref=\"latex-font-size-options\"/> and <xref ref=\"latex-print-options\"/>.</p>\n\n        <p>Some string parameters are just for internal use, especially when multiple stylesheets are chained together to accomplish a complicated conversion, such as to <init>EPUB</init> (<xref ref=\"epub\"/>) or braille.  Others are used to allow developers to optionally test-drive some new features<mdash/>these usually have <c>debug</c> in their name.  We once used string parameters directly to accomplish publisher customizations.  As of 2022-10-24 we are well along to moving these to the publication file, though we mention this here since this transition is not 100% complete.</p>\n\n        <p>The method for supplying an (external) string parameter to the processing of a <pretext/> project varies depending on the tool used for processing.<ul>\n            <li><pretext/>-CLI, <xref ref=\"cli-project-manifest\"/></li>\n            <li><c>pretext/pretext</c> Python script, <xref ref=\"pretext-publisher-stringparam\"/></li>\n            <li><c>xsltproc</c> binary executable, <xref ref=\"xsltproc-string-parameters\"/></li>\n        </ul></p>\n    </section>\n\n    <section xml:id=\"publisher-extra-stylesheet\">\n        <title>Extra Stylesheets</title>\n        <idx>extra stylesheets</idx>\n        <idx><h>stylesheet</h><h>extra</h></idx>\n\n        <p>String parameters (<xref ref=\"publisher-string-parameters\"/>) are an easy way to effect global changes in the presentation of your writing.  But putting ten of them on every command-line gets old and cumbersome fast.</p>\n\n        <p>You may also wish to customize your output in some stylistic way.  This might be especially true for <latex />/PDF/print output.  For example, you might wish to have every chapter heading of your book in a nice shade of light blue, with the title flush right to the margin, countered by a thick solid rule extending all the way right, to the edge of the paper.  Notice that this does not affect your content, it is strictly presentation.  This is our approach for styling <latex/> output, much as <init>CSS</init> is used to style <init>HTML</init> output (<xref ref=\"latex-styles\"/>)</p>\n\n        <p>We have done several things to encourage such customizations.  We have tried to put as much stylistic information as possible in the <latex /> preamble and keep as much as possible out of the body.  (There is always room for improvement on this score, please be in touch if you have a need.)</p>\n\n        <p>You can start with a new small XSL file.  You then tell the <pretext />-CLI to use that <init>XSL</init> file instead of the standard one provided by <pretext /> through the <tag>xsl</tag> element in a <tag>target</tag> of the project manifest.</p>\n\n        <p>\n            Assume that you have an <init>XSL</init> file called <c>custom-latex.xsl</c> located in the folder <c>xsl</c> inside the root of your project.  In your <c>project.ptx</c> manifest file, use <c>&lt;xsl&gt;xsl/custom-latex.xsl&lt;/xsl&gt;</c> as an element in the corresponding <tag>target</tag>.\n        </p>\n\n        <p>\n            The custom <init>XSL</init> file should import the stock <pretext /> file for the type of output you want to create.  This is done using the line<cd>\n                <cline>&lt;xsl:import href=\"./core/pretext-latex.xsl\"/&gt;</cline>\n            </cd>which should be placed near the top of the file; everything after it will redefine the various rules imported from the stock <init>XSL</init>.  Note the <attr>href</attr> attribute's value starts with <c>./core/</c>.  This works because the CLI copies all the standard <init>XSL</init> to a subfolder <c>core</c> of the temporary directory holding your custom <init>XSL</init> so that you do not need to know the path to its location on your system.\n        </p>\n        <p>\n            See <xref ref=\"extra-stylesheet\"/> to see how to use such a stylesheet with the <c>pretext/pretext</c> script.\n        </p>\n\n        <p>\n            The easiest thing to put in this file is elements like<cd>\n                <cline>&lt;xsl:param name=\"latex.font.size\" select=\"'20pt'\" /&gt;</cline>\n            </cd>.  Values given on the command-line supersede those given in an XSL file this way.</p>\n\n        <p>You can augment the <latex /> preamble with as much <latex /> code as you like in the following way.</p>\n\n        <pre>\n        &lt;xsl:param name=\"latex.preamble.late\"&gt;\n            &lt;xsl:text&gt;% Proof environment with heading in small caps&amp;#xa;&lt;/xsl:text&gt;\n            &lt;xsl:text&gt;\\expandafter\\let\\expandafter\\oldp\\csname\\string\\proof\\endcsname&amp;#xa;&lt;/xsl:text&gt;\n            &lt;xsl:text&gt;\\let\\oldep\\endproof&amp;#xa;&lt;/xsl:text&gt;\n            &lt;xsl:text&gt;\\renewenvironment{proof}[1][\\proofname]{\\oldp[\\scshape #1]}{\\oldep}&amp;#xa;&lt;/xsl:text&gt;\n        &lt;/xsl:param&gt;\n        </pre>\n\n        <p>There are a variety of things you can do generally, by overriding the imported XSL templates to change behavior, but such modifications are beyond the scope of this guide.</p>\n    </section>\n</chapter>\n\n"
  },
  {
    "path": "doc/guide/publisher/instructor-version.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"instructor-version\">\n    <title>Instructor's Version</title>\n\n    <introduction>\n        <p>Once your content is in place, you can begin thinking about various useful derivative versions.  A natural example for a textbook is an <q>Instructor's Version</q>, enhanced with additional material to help an instructor understand your organization and intent, or to provide advice and counsel about teaching the material.</p>\n    </introduction>\n\n    <section xml:id=\"instructor-solutions\">\n        <title>Solutions</title>\n\n        <p>Philosophies about the purpose and use of exercises varies among authors and instructors.  Some think hints, answers, and/or solutions, should be universally available to students to use responsibly.  Others like to assign exercises to be graded as part of a course grade.  Some are resigned to solutions that are distributed in a limited fashion eventually becoming public, or that some groups of students will distribute their own solutions, possibly not uniformly.  Wherever you place yourself in this debate, distributing solutions to only instructors is one approach, and some instructors may find this a very helpful aid when they teach material new to them.</p>\n\n        <p>There is flexibility in which of <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> can be included or excluded in your text, which can be included or excluded in an Instructor's Version, and which can be included or excluded in a Solution Manual (see <xref ref=\"solution-manual\"/>).  You can choose to author these or not, and then decide which to include in the student version, and which to include in an independently-produced Instructor Version, and which to include in a Solution Manual.</p>\n\n        <p>Read <xref ref=\"private-solutions-file\"/> (and <xref ref=\"private-solutions-git\"/>) for some practical advice about limiting distribution of solutions.</p>\n    </section>\n\n    <section>\n        <title>Notes and Commentary</title>\n\n        <p>The <tag>commentary</tag> element is designed primarily for the purpose of adding material to a document to make an enhanced version (see <xref ref=\"publisher-versions\"/>).  It is similar in many ways to a <tag>paragraphs</tag> in that it can be placed within any division and must be titled.\n        </p>\n\n        <p>\n        Other distinctions are:<ul>\n            <li>Since it is often elective, you need to be careful about cross-references to and from a <tag>commentary</tag>.  It is highly likely that you will want to make cross-references <em>within</em> a <tag>commentary</tag> <em>pointing to</em> other portions of your text, and this is always a good idea.  You will want to avoid making cross-references <em>to</em> a <tag>commentary</tag> from other parts of the text, with the exception of a cross-reference that originates <em>within</em> some <tag>commentary</tag>.</li>\n            <li>Numbered items are prohibited within a <tag>commentary</tag>, such as a <tag>figure</tag> or a <tag>theorem</tag>.  Doing so would disrupt consecutive numbering in different versions, with or without, <tag>commentary</tag> included.  Numbered equations are not prohibited in the schema, but should definitely be avoided anyway.</li>\n        </ul></p>\n    </section>\n\n    <section>\n        <title>Adding or Removing Divisions</title>\n\n        <p>For an Instructor's Version you might wish to add additional material into the front matter (a specialized <tag>preface</tag> perhaps), or remove some material from the back matter (an <tag>appendix</tag> with solutions that duplicates solutions now placed within the exercises themselves).  There may also be parts of each chapter you do not find necessary to include.</p>\n\n        <p>Modularizing your source files would allow for a different top-level <init>XML</init> source file to include different portions of the <tag>frontmatter</tag> or <tag>backmatter</tag>, perhaps just making a different title page.  See <xref ref=\"processing-modular\"/> for more on modularization.</p>\n\n        <p>Additional, minimal, <init>XSLT</init> stylesheets can be used to selectively <q>kill</q> portions of your source, such as every <q>Additional Reading</q> at the end of each <tag>chapter</tag> residing in a <tag>references</tag>.  Consistent use of elements, leading strings in <attr>xml:id</attr>, and/or leading strings in <tag>title</tag>, can make it a single-line exercise to selectively remove multiple portions of your source without removing other portions.  See <xref ref=\"publisher-extra-stylesheet\"/> for more about additional <init>XSLT</init> stylesheets.</p>\n\n        <p>Think carefully about the effect of removals and additions on numbering.  In <init>HTML</init> output all numbering is hard-coded and will be based on counts of the entire <init>XML</init> source file.  So selectively killing content will not change numbering, but cross-references may point to divisions for which there is no content to serve as the target.  Using a different top-level file can impact numbering throughout.  Significant portions of the <latex /> output rely on <latex />'s automatic numbering via mechanisms like <c>\\label{}</c> and <c>\\ref{}</c>.  So if portions of the text are killed, then the <c>\\label{}</c> of a cross-reference may never be defined.  A technical solution would be to provide an option to hard-code all numbering in <latex /> output.</p>\n\n        <p>Generally, removing portions of each division will have the least ill-effects on numbering if the portions removed are at the end of a division and no cross-references point there.  So, for example, a <tag>references</tag> at the end of each <tag>chapter</tag> can be safely killed with no ill-effects if there are no cross-references elsewhere to the particular <tag>biblio</tag> contained in that <tag>references</tag>.</p>\n\n        <p>When a division is killed through the use of additional <init>XSLT</init>, knowls and index entries will still be generated as usual for that division as part of the conversion to <init>HTML</init>.  Thus, some care may need to be taken if certain knowls should not be uploaded to a server.  Using a consistent scheme for the values of the <attr>xml:id</attr> might make this easy to script.  The <tag>idx</tag> elements could be killed in a manner similar to the division with a use of the <c>ancestor</c> axis in a filter.  Of course, the conversion to <latex /> will not create knowls, and the index-creation process does not suffer from the shortcomings of the creation process for <init>HTML</init>.</p>\n    </section>\n\n    <section>\n        <title>Instructor's Notes</title>\n\n        <p>The <tag>commentary</tag> element, as described above, can be used effectively by an individual instructor to customize a personal version of a book.  This is not as fine-grained as highlights or annotations, so is not meant as a replacement for tools that support more localized personal additions.</p>\n\n        <p>The ideal way to do this would be with a text having source distributed as a git repository, and with notes managed by git.  Here is a rough outline, assuming a solid understanding of git.<ol>\n            <li>Clone the author's repository to a local, personal, location.</li>\n            <li>Make a long-lived <c>notes</c> branch off the author's <c>master</c> branch.</li>\n            <li>Add <tag>commentary</tag> with commits on the <c>notes</c> branch.</li>\n            <li>Regularly pull <c>master</c> from the original repository to receive updates and fixes from the author.</li>\n            <li>Regularly merge <c>master</c> into <c>notes</c> so the enhanced version gets the author's changes without changing <c>master</c>.</li>\n            <li>Produce personalized output from the <c>notes</c> branch via <pretext /> as normal, with the switch enabling display of the <tag>commentary</tag>.</li>\n        </ol></p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/jupyter-notebook.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"jupyter-notebook\">\n    <title>(*)  Conversion to Jupyter Notebooks</title>\n\n        <p>TODO</p>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/latex-fonts.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"latex-fonts\">\n    <title><latex /> Fonts</title>\n\n    <introduction>\n        <p>Part of a book's style is the choice of fonts.  As of 2019-11-09 we have a better understanding of the use of fonts in <latex/> to the point where we can design interfaces that will make it simpler for you to experiment with different choices and preserve various features that <pretext/> enables.</p>\n\n        <p>The first thing to understand is that the <c>xelatex</c> engine is much more capable of employing modern fonts.  <tex/> was built in the late 1970's when computer resources were at a premium, and the idea of mixing mathematics with non-Western languages and scripts may have been fanciful.  The <c>pdflatex</c> engine is rooted in this history.  We now have the Unicode standard, thoroughly integrated into web browsers, and companion scalable OpenType fonts.  In contrast to <tex/>, <xetex/> was designed to work better with a multitude of fonts.  So we organize this section by this distinction.</p>\n    </introduction>\n\n    <section>\n        <title>Processing with <c>pdflatex</c></title>\n\n        <p>Fonts used by <latex/> come in <term>encodings</term>.  The original encoding is known as <c>OT1</c> and organizes glyphs (shapes of individual characters) 128 at a time.  Since this puts regular Latin letters in one group, and accented letters into another group, this makes automatic hyphenation impossible if accented letters are used (as in many European countries and much of the Americas).  The 1990 <tex/> Users Group (<acro>TUG</acro>) meeting in Cork, Ireland, formulated new and improved encodings.  The <c>T1</c> encoding is one result, and so it is known as the <term>Cork</term> encoding (and also as <c>EC</c>).  It groups 256 glyphs together at a time.  So you need only know that a <c>T1</c> encoding is better than an <c>OT1</c> encoding.  If you want to know more (much more), locate <articletitle><latex/> font encodings</articletitle> by Mittlebach, Fairbairns, &amp; Lemberg.</p>\n\n        <p>The <url href=\"http://www.tug.dk/FontCatalogue/\" visual=\"www.tug.dk/FontCatalogue/\"><latex/> Font Catalogue</url> is a great resource for locating different fonts.  The fonts and their packages are likely already installed (this information is provided), or there is enough information about how to install the package in a standard way.  Each gives exact directions on how to enable the font for a document.\n        For example, <url href=\"http://www.tug.dk/FontCatalogue/iwona/\" visual=\"www.tug.dk/FontCatalogue/iwona/\">Iwona</url>, a sans-serif font with support for mathematics, can be employed as the document font simply by including the following in the preamble:<cd>\n            <cline>\\usepackage[math]{iwona}</cline>\n            <cline>\\usepackage[T1]{fontenc}</cline>\n        </cd>This suggested use of <c>fontenc</c> package (not to be confused with the <c>fontspec</c> package) indicates the availability of a <c>T1</c> encoding.</p>\n        <p>Note: when the <latex/> Font Catalogue says <q><init>OTF</init> or <init>TTF</init> available</q> then the font can also be used with <c>xelatex</c>.  When it says <q><init>OTF</init> or <init>TTF</init> only</q> then the font <em>cannot</em> be used via <c>pdflatex</c>.  Read on.</p>\n    </section>\n\n    <section>\n        <title>Processing with <c>xelatex</c></title>\n\n        <p>TrueType fonts (<init>TTF</init>, <c>*.ttf</c> files) have been improved upon by the creation of OpenType fonts (<init>OTF</init>, <c>*.otf</c> files).  The main difference is that <init>OTF</init> fonts have a variety of <term>features</term> which can be selected or not.  It is also easier to directly select a particular glyph (realization of a character) by specifying its numerical code point as a Unicode character.  For the remainder, we will reference <init>OTF</init> fonts only, but nearly everything applies equally well to <init>TTF</init> fonts.</p>\n\n        <p>The main difference with <c>xelatex</c> and <init>OTF</init> fonts is that <c>xelatex</c> expects the font files to be part of the system software and are managed by the operating system and its tools.  So, for example, in the example above installing the <c>iwona</c> package will place files into your <term>texmf</term> tree, where they remain unknown to your operating system.  So you will need to learn how to use your operating system to locate and install <init>OTF</init> files (or make them known to your operating system).  With luck, popular fonts may be easy to install using your system's package manager.</p>\n\n        <p>So installing fonts into a system is a bit of a hurdle, and as a style writer, you are reliant on authors who use your style to understand this requirement.</p>\n\n        <!-- https://askubuntu.com/questions/3697/how-do-i-install-fonts -->\n        <paragraphs>\n            <title>Locating an <init>OTF</init> font</title>\n\n            <p>Since I have the <latex/> <c>iwona</c> package, I can expect the <init>OTF</init> version of the font to be somewhere.  I know I have the <latex/> package by using a TeXLive tool to search for the style file.<cd>\n                <cline>kpsewhich iwona.sty</cline>\n            </cd>will return the full path to that file.</p>\n\n            <p>On my Linux system, with TeXLive installed via a Debian/Ubuntu package, I can locate the main <init>OTF</init> file for the Iwona font by exploring the relevant directories (<c>fonts/opentype</c> looks promising), or I can use the system <c>find</c> utility to search for filenames with <c>iwona</c> or <c>Iwona</c> in the name.  There it is:<cd>\n                <cline>/usr/share/texlive/texmf-dist/fonts/opentype/nowacki/iwona/Iwona-Regular.otf</cline>\n            </cd></p>\n\n            <p>You can simultaneously determine if you have a font, and if it is known to your system with the <c>fc-list</c> command from the <c>fontconfig</c> utility.  The produces a lot of output, with one line per file, but it includes file names and the human-readable name of each font.  You can pipe the output through <c>grep</c> to find what you are looking for, for example<cd>\n                <cline>fc-list | grep \"Latin Modern\"</cline>\n            </cd></p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Making an <init>OTF</init> font known to the system</title>\n\n            <p>On my Linux system,  I need to copy this file (and its companions) into the system directory<cd>\n                <cline>/usr/local/share/fonts</cline>\n            </cd>and reboot, or rebuild the font cache with<cd>\n                <cline>fc-cache -f -v</cline>\n            </cd>Finally, I can check that the font is known to the system with<cd>\n                <cline>fc-list</cline>\n            </cd></p>\n\n            <p>On a Mac, we have several reports for how to do this.\n                <ul>\n                    <li>\n                        <p>Mitch Keller reports on 2019-01-02 that <q>I opened the directory on my hard drive containing the <init>OTF</init> file, double clicked on the font (opens the macOS application Font Book, which comes with the OS), and then clicked the <c>Install Font</c> button.</q></p>\n                    </li>\n                    <li>\n                        <p>Karl-Dieter Crisman reports on 2019-07-01 that <q>I was able to use some fonts already existing in TeXLive with a symbolic link to the Font Book,\n                          as suggested at <url href=\"https://apple.stackexchange.com/a/225824/189102\" visual=\"apple.stackexchange.com/a/225824/189102\">Ask Different</url>:</q>\n                        <cd>\n                            <cline>ln -s</cline>\n                            <cline>  /usr/local/texlive/2018/texmf-dist/fonts/opentype/public/lm/</cline>\n                            <cline>  '/Library/Fonts/Latin Modern'</cline>\n                        </cd><q>where 2018 indicates when I updated my <tex/>Live distribution.</q></p>\n                    </li>\n                </ul></p>\n       </paragraphs>\n\n        <paragraphs>\n            <title>Information about an <init>OTF</init> font</title>\n\n            <p>To learn more about this particular font TeXLive provides an executable, <c>otfinfo</c>, which I can use as (omitting the long directory path here for clarity)<cd>\n                <cline>otfinfo -i Iwona-Regular.otf</cline>\n            </cd>  The first part of the output is\n            <cd>\n            Family:              Iwona\n            Subfamily:           Regular\n            Full name:           Iwona-Regular\n            PostScript name:     Iwona-Regular\n            </cd>  The critical piece of information here is the font's name: <c>Iwona-Regular</c>.  I can also learn which OpenType features are available\n            <cd>\n            $ otfinfo -f Iwona-Regular.otf\n\n            aalt    Access All Alternates\n            c2sc    Small Capitals From Capitals\n            cpsp    Capital Spacing\n            dlig    Discretionary Ligatures\n            dnom    Denominators\n            frac    Fractions\n            hist    Historical Forms\n            kern    Kerning\n            liga    Standard Ligatures\n            lnum    Lining Figures\n            numr    Numerators\n            onum    Oldstyle Figures\n            ordn    Ordinals\n            pnum    Proportional Figures\n            sinf    Scientific Inferiors\n            smcp    Small Capitals\n            ss02    Stylistic Set 2\n            sups    Superscript\n            tnum    Tabular Figures\n            zero    Slashed Zero\n            </cd>This will all be useful shortly.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Using an <init>OTF</init> font with <c>xelatex</c></title>\n\n            <p>Depending on the package, now it can be as simple as simply including <c>\\usepackage{}</c> in your preamble and the font can be used with different weights and shapes, and certain features are enabled.  However, sometimes you want more control, or you want to use more than one font in a document.  Now the <c>fontspec</c> package is your tool of choice.</p>\n\n            <p>The simplest example of using <c>fontspec</c> would be to recall the font name from above, and in your preamble use<cd>\n                <cline>\\setmainfont{Iwona-Regular}</cline>\n            </cd>This font name has the hyphen in lieu of a space, but names with spaces are just fine.  An optional argument will let you customize the use of the font, such as turning on some of the features.  Read the <c>fontspec</c> documentation for all the finer points.  Hopefully this has given you a start.</p>\n\n            <p>Note that <c>fontspec</c> has a <c>Path=</c> option.  A tempting shortcut is to just point to the <init>*.otf</init> file in your <c>texmf</c> tree.  But as a style writer, this is a really bad idea, since other authors who use your style may have their font files in a different location.  Better to employ the font <em>by name</em> and require authors to understand (or learn) their system software.</p>\n        </paragraphs>\n\n        <exercise>\n            <p>Create a <latex/> file (from scratch) containing some Myanmar (Burmese) characters.  The <url href=\"http://kermitproject.org/utf8.html\" visual=\"kermitproject.org/utf8.html\"><pubtitle>Kermit Project UTF-* Sampler</pubtitle></url> is a great source for these sorts of experiments.  The Noto font is a project to make a huge collection of harmonious fonts for much of the world's languages.  Use what you have learned here to render your sample using a Noto font via both <c>pdflatex</c> and <c>xelatex</c>.  Extra credit if you can explain the name Noto.</p>\n        </exercise>\n\n        <paragraphs>\n            <title>Plans, as of 2019-11-09</title>\n\n            <p>We have experimental code in place to allow a style writer to place font information into the <latex/> preamble in the right place.  We are adding font-changing commands into other configurations in the preamble, so that pieces of a document (e.g.<nbsp/>the page header) will automatically use a particular font easily.</p>\n\n            <p>We have long been using the <latex/> <c>polyglossia</c> package to manage multiple languages in one document, and will continue to do so, perhaps.  This package relies heavily on <c>fontspec</c>.  We intend to hide the details of <c>polyglossia</c> from authors and from style writers, relying on just the specification of <attr>xml:lang</attr> attributes to control font changes.</p>\n        </paragraphs>\n    </section>\n\n    <section>\n        <title>Font Notes</title>\n\n        <subsection>\n            <title>Dyslexic Font</title>\n\n            <p>There is an <init>OTF</init> font, with an open license, that purports to help readers with dyslexia.<ul>\n                <li>Website is <url href=\"https://opendyslexic.org/\" visual=\"opendyslexic.org/\"/>.</li>\n                <li>In Debian/Ubuntu it is available in a package called <c>fonts-opendyslexic</c>.</li>\n                <li>When used with <c>xelatex</c> the relevant names of the font are <c>OpenDyslexic</c> and <c>OpenDyslexicMono</c>.</li>\n            </ul></p>\n        </subsection>\n    </section>\n\n    <section>\n        <title>LaTeX Font Configuration (Ubuntu/Debian Linux)</title>\n\n        <p>Actual font installation is missing here, since I (RAB) cannot recall just when or how certain fonts arrived on my system.  Certainly they were almost all via Ubuntu/Debian packages, though they could have been specific to <tex/>Live.  Specifically, the <c>texlive-fonts-recommended</c> and <c>texlive-fonts-extra</c> are two packages that will make many fonts available to <tex/>/<latex/> on an Ubuntu/Debian system.  The following is offered in the hope that it will be useful to other publishers on other Unix-like systems.</p>\n\n        <p>There is a system directory<cd>\n            <cline>/etc/fonts/conf.d</cline>\n        </cd>with a wide variety of configuration files for various fonts, or collections of fonts.  Here I find files (symlinks, really)<cd>\n            <cline>65-fonts-lmodern.conf</cline>\n            <cline>65-fonts-texgyre.conf</cline>\n        </cd>The first points to the extensive Latin Modern fonts, which are an improved version of the original Computer Modern fonts, and are <pretext/>'s default font for out-of-the-box <latex/>.  We have never had a report of these not being available in an author's <tex/> distribution.  The file indicates that the fonts can be found at<cd>\n            <cline>/usr/share/texmf/fonts/opentype/public/lm</cline>\n            <cline>/usr/share/texmf/fonts/opentype/public/lm-math</cline>\n        </cd>The second configuration file points to multiple fonts from the <url href=\"http://www.gust.org.pl/projects/e-foundry/tex-gyre/index_html\" visual=\"www.gust.org.pl/projects/e-foundry/tex-gyre/\">TeX Gyre Collection</url> of GUST: Polska Grupa Użytkowników Systemu <tex/>.  Examining the file indicates these fonts can be found at:<cd>\n            <cline>/usr/share/texmf/fonts/opentype/public/tex-gyre</cline>\n            <cline>/usr/share/texmf/fonts/opentype/public/tex-gyre-math</cline>\n        </cd></p>\n\n        <p>As of 2019-11-09 these were the only <tex/> fonts known to my system in <init>OTF</init> format.  This despite having directories full of fonts at:<cd>\n            <cline>/usr/share/texlive/texmf-dist/fonts/opentype</cline>\n            <cline>/usr/share/texlive/texmf-dist/fonts/truetype</cline>\n        </cd>and more.  You might have similar directories with the year of your version of <tex/>Live as a directory.  The solution is to create a new file (as root) named<cd>\n            <cline>/etc/fonts/conf.d/09-texlive-fontconfig.conf</cline>\n        </cd>with contents<cd>\n            <cline>&lt;?xml version=\"1.0\"?&gt;</cline>\n            <cline>&lt;!DOCTYPE fontconfig SYSTEM \"fonts.dtd\"&gt;</cline>\n            <cline>&lt;fontconfig&gt;</cline>\n            <cline>  &lt;dir&gt;/usr/share/texlive/texmf-dist/fonts/opentype&lt;/dir&gt;</cline>\n            <cline>  &lt;dir&gt;/usr/share/texlive/texmf-dist/fonts/truetype&lt;/dir&gt;</cline>\n            <cline>&lt;/fontconfig&gt;</cline>\n        </cd>and then running <c>fc-cache -f -v</c> to update what fonts are known to the system.  It is possible that you can put this file somewhere in your home directory if you do not have administrative access, but we have not tested that approach.  Note that some versions of the above file that you might find online will include a <c>type1</c> directory.  It is best to <em>not</em> include this directory, since these fonts are best used only with <c>pdflatex</c> and if known to the system they can mistakenly be incorporated by <c>xelatex</c>, with disasterous results.  Typically you will get an unusable <init>PDF</init> and your <c>xelatex</c> run will have the error message<cd>\n            <cline>xdvipdfmx:fatal: pdf_ref_obj(): passed invalid object</cline>\n        </cd>near the very end of the command-line output.</p>\n\n        <p>Apparently, the <c>texlive-fontconfig.conf</c> file is not distributed with Debian Linux as this <url href=\"https://packages.debian.org/search?arch=any&amp;mode=filename&amp;searchon=contents&amp;keywords=fontconfig.conf\" visual=\"packages.debian.org/search?arch=any&amp;mode=filename&amp;searchon=contents&amp;keywords=fontconfig.conf\">search</url> will demonstrate.  Please report any change in this situation.</p>\n\n        <p>When installing the Open Dyslexic font via an Ubuntu package (2020-04-28), <c>xelatex</c> became confused by the presence of Web Open Font Format (<init>WOFF</init>) versions which were installed along with the OTF versions.\n        The solution is to create a new file (as root) named<cd>\n            <cline>/etc/fonts/conf.d/70-no-woff.conf</cline>\n        </cd>with contents<cd>\n            <cline>&lt;fontconfig&gt;</cline>\n            <cline>  &lt;selectfont&gt;</cline>\n            <cline>    &lt;rejectfont&gt;</cline>\n            <cline>      &lt;glob&gt;/usr/share/fonts/woff/*&lt;/glob&gt;</cline>\n            <cline>    &lt;/rejectfont&gt;</cline>\n            <cline>  &lt;/selectfont&gt;</cline>\n            <cline>&lt;/fontconfig&gt;</cline>\n        </cd>and then running <c>fc-cache -f -v</c> to update what fonts are known to the system.  See the <url href=\"https://tex.stackexchange.com/questions/392144/xelatex-and-fontspec-crash-trying-to-find-woff-file-for-some-fonts-but-not-other\" visual=\"tex.stackexchange.com/questions/392144\"><c>tex.stackexchange.com</c></url> post.</p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/latex-styling.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"latex-styles\">\n    <title><latex /> Styles</title>\n    <idx><h>style</h><h>print</h></idx>\n\n\n    <introduction>\n        <p>Print and <init>PDF</init> output is created when <pretext/> outputs a <latex/> file, which can subsequently be easily converted to <init>PDF</init> with engines like <c>pdflatex</c> and <c>xelatex</c>.  There are many ways to influence the style (look, appearance) of this output, enhancing the content, but without changing it.  This chapter is directed at publishers who desire to create an attractive and consistent design for their books or articles.</p>\n\n        <p>Please read this chapter thorougly once before embarking.  Certain important points are made in certain contexts, yet are universally applicable.  If you cherry-pick, you will miss them.  Note also that some simple changes, like font size, are described in <xref ref=\"pdf-print\"/>.</p>\n    </introduction>\n\n    <section>\n        <title>Preparation</title>\n\n        <p>We do not encourage authors to make small adjustments in style, especially if they have few skills in book design.  Instead, they should choose a design built by others that will fit their needs and desires.  We do encourage publishers with design skills to create complete and harmonious designs, and to donate these back to <pretext/> with an open license, for use by all authors.  This chapter assumes you are such a publisher.  Further, it assumes you have certain technical skills.  Specifically<ul>\n            <li>Good familiarity with basic <tex/> and <latex/>.</li>\n            <li>The ability to debug <latex/> compilations gone bad.</li>\n            <li>Willingness to study several <latex/> packages that may be new to you.</li>\n            <li>Willingess to mimic and experiment with basic eXtensible Stylsheet Language (<init>XSL</init>).</li>\n        </ul>Fortunately, it is easy to start small, get good results, and expand your skills further.</p>\n\n        <p>Begin by creating a file that is a new <init>XSL</init> stylesheet.  You can likely safely copy a mature one from the <c>xsl/latex</c> directory.  Be certain to keep the first few declarations.  The <tag>xsl:import</tag> is critical, since it will <q>pull in</q> all the basic code for the <pretext/> conversion to <latex/>.  You will be overriding and appending to that code (which <pretext/> has made straightforward).  You can start with an absolute path from your filesystem root, but once public a relative path will be necessary.  Remove all of the <tag>xsl:template</tag> elements, leaving a hollow shell to begin working with.</p>\n\n        <p>What we are doing here is similar to the discussion of <q>extra <init>XSL</init> stylesheets</q> in <xref ref=\"publisher-extra-stylesheet\"/>, only thicker.  String parameters are also described in this Guide, at <xref ref=\"publisher-string-parameters\"/>.</p>\n    </section>\n\n    <section>\n        <title>Overview</title>\n\n        <p>Some changes in style are effected by setting string parameters that exist for use at the command line.  However, the more flexible features come from the selection by <pretext/> of certain <latex/> packages.  These have been chosen for their flexibility, maturity, and stability.  They should be part of a full <latex/> installation, especially one based on TeXLive.  We presume each author has a similar installation.  Please let us know of any exceptions.  Please try to avoid requiring new packages as part of your style, and if necessary, be sure they are mainstream ones.  Start a discussion on the development forum if you think it is warranted or necessary.  It may be difficult and error-prone for you to employ and integrate an obscure package, and it will cause problems for authors who want to use your style.</p>\n\n        <p>This is an incomplete list of the primary packages we employ, and their general purpose.  They, and their documentation, can be easily found at the <url href=\"https://ctan.org/\" visual=\"ctan.org\">Comprehensive <tex/> Archive Network</url>, aka <init>CTAN</init>.</p>\n\n        <table>\n            <title>Principal <latex/> packages used for styles</title>\n\n            <tabular>\n                <row>\n                    <cell><c>geometry</c></cell>\n                    <cell>Specification of the sizes of paper, margins, headers and footers</cell>\n                </row>\n                <row>\n                    <cell><c>titleps</c></cell>\n                    <cell>Headers and footers (part of <c>titlesec</c>)</cell>\n                </row>\n                <row>\n                    <cell><c>titlesec</c></cell>\n                    <cell>Titles of divisions</cell>\n                </row>\n                <row>\n                    <cell><c>tcolorbox</c></cell>\n                    <cell>Boxes, colors, <etc/> for <tag>example</tag>, <tag>remark</tag>, <etc/></cell>\n                </row>\n            </tabular>\n        </table>\n    </section>\n\n    <section xml:id=\"page-shape-styling\">\n        <title>Page Shape</title>\n\n        <p>Various dimensions of a printed page, including the page itself, may be adjusted using the <c>geometry</c> package, so study the documentation of this package to explore possibilities.  The options of this package may be also set on the command line.  To make options part of your style, place the <tag>xsl:param</tag> declaration in your stylesheet as follows (note the two sets of quotes):<cd>\n            <cline>&lt;xsl:param name=\"latex.geometry\" select=\"'foo'\"/&gt;</cline>\n        </cd>This will have the effect of placing the following line into the preamble of the resulting <latex/> output file, in the right place:<cd>\n            <cline>\\geometry{foo}</cline>\n        </cd>Of course, you will want to use something meaningful, such as<cd>\n            <cline>&lt;xsl:param name=\"latex.geometry\" select=\"'a4paper,total={16cm,25cm}'\"/&gt;</cline>\n        </cd>to produce in the <latex/> output<cd>\n            <cline>\\geometry{a4paper,total={16cm,25cm}}</cline>\n        </cd></p>\n\n        <p>This is typical and illustrates two important universal points.  First, <pretext/> puts surrounding infrastructure in place.  In this case the <c>geometry</c> package is loaded, and in an order that does not cause conflicts, plus the <c>\\geometry{}</c> command itself is placed and output by <pretext/>.  As a style writer, you simply provide the package options you desire.  Second, <q>garbage in, garbage out.</q>  It is very easy to make a typo in your style, and have the <latex/> compilation fail.  This is why we assume you are comfortable with <latex/> compilation and debugging, and not every author should be a style writer.</p>\n\n        <p>Set the document font size first, for this will influence later choices.  The string parameter, <c>latex.font.size</c> (which has <c>pt</c> as part of the value) will set an optimal line width.  This line width should translate to about 75 characters per line, at the upper end of recommendations for an optimal width.  It will also match closely (but not exactly) to line lengths in <init>HTML</init> output.  You can look into the <latex/> output before you experiment to see the value used when the stock <c>\\geometry{}</c> command is issued.  You are certainly able to override this width, but read the next paragraph carefully.</p>\n\n        <p>This raises two important more universal points.  You should expect to repeatedly examine the <latex/> output as you develop a style.  And most important<mdash/>are you tempted to use a small font, and <em>increase</em> the line width so as to cram more material onto the page, so your book is shorter, and sells via print-on-demand for $7 rather than $8?  Then you misunderstood that there are time-tested recommendations for the optimal number of characters per line for human readers, and we just counseled you that <pretext/> is <em>already at the high end of these recommendations</em>.  You have a certain freedom as a style writer.  Use it responsibly.  Enhance the content provided by authors, don't degrade it.</p>\n\n        <p>This is the place to think about headers and footers on the page, since you will want to make room for them, and with spacing away from the primary content.  See <xref ref=\"style-headers-footers\"/>.</p>\n    </section>\n\n    <section xml:id=\"style-headers-footers\">\n        <title>Headers and Footers</title>\n\n        <p>The <c>titleps</c> package cooperates with <q>traditional</q> <latex/> divisions, such as <c>\\chapter</c> and <c>\\section</c>, and the <c>titlesec</c> package, to pick up the titles of divisions automatically and migrate them to headers and footers on a page.  The <c>ps</c> is short for <q>page style</q>, and the documentation is a <init>PDF</init> file <em>within</em> the distribution for the <c>titlesec</c> package.  Primarily, we let <latex/> manage the selection of its page styles for various pages of an overall document: <c>empty</c>, <c>plain</c>, <c>headings</c>, and <c>myheadings</c>.  <pretext/> does some management in the front matter.  As a style writer it is not your concern where these styles are employed, but you do influence what information they contain and were it is placed on a page.</p>\n\n        <p>Add an <tag>xsl:template</tag> to your stylesheet that begins with<cd>\n            <cline>&lt;xsl:template match=\"book\" mode=\"titleps-style\"&gt;</cline>\n        </cd>This would then set a collection of commands from the <c>titleps</c> package for a <tag>book</tag>, which will be placed in the correct place in the <latex/> preamble.   (See <xref ref=\"style-xsl-101\"/>.)  You can <c>renew</c> existing page styles or create <c>new</c> pagestyles.  However you should always make your last line a declaration of the overall page style, for example,<cd>\n            <cline>\\pagestyle{headings}</cline>\n        </cd>  Note that a book may use the empty and plain styles for some pages, so you may need to renew those styles to be harmonious with other changes you have made.</p>\n\n        <p>The definition of this template will override (replace) the definition given in any imported stylesheet.  You can replace the value of the <attr>match</attr> attribute with <c>article</c> to make your style apply to a <pretext/> <tag>article</tag>.  If your style will be used for both books and articles, and you want the style to be identical for both, you can expand the <attr>match</attr> attribute to have the value <c>article|book</c>.  To have different styles for a book versus an article, make two separate templates.</p>\n\n        <p>The <c>titleps</c> package allows at least twelve options per page style:  even-numbered page versus odd-numbered page with two-sided printing; left, center, right; header or footer.  There are semi-automatic customizable rules, variable widths allowing hanging styles, choices of marks (division at page-start versus division at page-end versus new-division-mid-page, including combinations at the same time), and more.  Note that the <latex/> system of <c>\\markleft</c> and <c>\\markboth</c> has been abandonded.  (Did I hear you say, <q>Good riddance!</q>?)</p>\n\n        <p>\n          Some care must be taken with using <c>\\thechapter</c> to get the chapter number, since strange things happen in the frontmatter and backmatter, where chapters are numberless.   One solution is to use <c>\\ifthechapter{}{}</c> which allows you to control the behavior dependent on whether there is a current chapter number.  For example, if you wanted the center of the even-numbered pages to contain <q>Chapter 3: Derivatives</q> you would use\n            <cd>\\sethead[][\\ifthechapter{Chapter \\thechapter: }{}\\chaptertitle][]{}{}{}</cd>\n          which would then just put <q>Index</q> in the index, and nothing at all in the preface.\n          A similar approach could be used to deal with section numbers and titles in the case that the introduction of a chapter is multiple pages, using <c>\\ifthesection{}{}</c>.\n        </p>\n\n        <p>Note also that the macro <c>\\chaptertitlename</c> will resolve to <c>Chapter</c> or <c>Appendix</c> as necessary.</p>\n    </section>\n\n    <section>\n        <title>Titles of Divisions</title>\n\n        <p>The <c>titlesec</c> package cooperates with <q>traditional</q> <latex/> divisions, such as <c>\\chapter</c> and <c>\\section</c>, to style the start of each division, containing its <pretext/> <tag>title</tag> and in most instances, its number.  If a division is credited to (multiple) <tag>author</tag>, then that information can be styled, and there are plans (2018-09-30) for epigraphs.</p>\n\n        <p><pretext/> manages numbered versus unnumbered divisions, the correct level for one-off divisions like a <tag>preface</tag> or <tag>appendix</tag>, and the specialized divisions such as <tag>exercises</tag> and <tag>references</tag>.  A style writer creates two styles at each level of the hierarchy, for a numbered variant, and an unnumbered variant.  <c>titlesec</c> uses a <c>numberless</c> key to indicate the latter.  A named template, such as<cd>\n            <cline>&lt;xsl:template name=\"titlesec-section-style\"&gt;</cline>\n        </cd>would produce text containing complete <c>titlesec</c> commands <c>\\titleformat</c> and <c>\\titlespacing</c> in both numbered and unnumbered variants.</p>\n\n        <p>There are five <latex/> macros created by <pretext/> at the start of each division.  For example, <c>\\authorsptx</c> is a comma-separated list of the content of all the <tag>author</tag> elements for the division, in the order given.  Look in the <latex/>output to find the others nearby.  A robust style will include this information, even if the first use of the style may not have any divisions credited to others.</p>\n\n        <p>The table of contents and the index are created by a single <latex/> macro.  This creates a small technical challenge, since <pretext/> never has a chance to write the contents of the heading and must take what it is given.  The upshot is that the <c>\\titleptx</c> macro will be wrong or empty.  So instead, use the <c>titlesec</c> device of using the macro parameter <c>#1</c> for the title in the correct argument of <c>\\titleformat</c>.  We have enabled this possibility through the package's <c>explicit</c> option.  We believe the <c>numberless</c> variant of a <tag>chapter</tag> of a <tag>book</tag>, and the <c>numberless</c> variant of a <tag>section</tag> of an <tag>article</tag>, are the only places this is necessary.  2019-09-30:  we will contemplate if this should be the rule and the <c>\\titleptx</c> macro will go away.  Advise if you see a good answer, either way.</p>\n\n        <p>2019-09-30:  these templates are highly likely to break into two modes (format and spacing), with a <attr>match</attr> that can react to <tag>chapter</tag>, <tag>section</tag>, <etc/>, perhaps differently for books versus articles.  The change will only imply some minor editing to achieve the same end result, so don't hold back waiting.</p>\n    </section>\n\n    <section>\n        <title>Environments and Blocks</title>\n\n        <p>Objects like <tag>example</tag> and <tag>remark</tag> are almost invariably children of a division, numbered, and work best with a <tag>title</tag>.  <c>tcolorbox</c> is a massive package, that we have taken to as a solution to many under-the-bonnet technical problems, such as a hanging indent for numbers of <tag>exercise</tag> or laying out the panels of a <tag>sidebyside</tag>.  But it also allows an incredible variety of styling options for these intermediate chunks of text.  Think of variable placements of numbers and titles, borders and boxes, and colored backgrounds.  With freedom comes responsibility!  With a light touch, you can <em>help</em> your reader navigate the inherent structure of your <pretext/> source.</p>\n\n        <p>Whatever you call them: environments, blocks, or information objects, almost every one can be styled separately  (2019-09-30: not captioned items yet, such as <tag>figure</tag>).  For example,<cd>\n            <cline>&lt;xsl:template match=\"example\" mode=\"tcb-style\"&gt;</cline>\n            <cline>    &lt;xsl:text&gt;colback=pink,&lt;/xsl:text&gt;</cline>\n            <cline>&lt;/xsl:template&gt;</cline>\n        </cd>would cause the background of every <tag>example</tag> to be light red in color.  To make every <pretext/> element that is a variant of an <tag>example</tag> look identical, use one of the <term>entities</term> defined in <c>xsl/entities.ent</c>,<cd>\n            <cline>&lt;xsl:template match=\"&amp;EXAMPLE-LIKE;\" mode=\"tcb-style\"&gt;</cline>\n            <cline>    &lt;xsl:text&gt;colback=pink,&lt;/xsl:text&gt;</cline>\n            <cline>&lt;/xsl:template&gt;</cline>\n        </cd>.  This would affect <tag>example</tag>, <tag>question</tag>, and <tag>problem</tag>, and future-proof your style when there is a demand for <tag>illustration</tag> as a new kind of <q>example-like.</q></p>\n\n        <p>There is only one mode, but it can handle a variety of <pretext/> elements in the <attr>match</attr>.  The text produced by the template will be supplied in a named <c>tcolorbox</c> style via a <c>\\tcbset{}</c> command.  It is marginally more complicated than that.  <pretext/> will manage certain aspects of creating a <c>tcolorbox</c>, such as forming the <c>tcolorbox</c> <c>title</c> to be a string like <q>Example 4.5 The Chain Rule.</q>, or just <q>Example 4.6</q> when an author does not include a <pretext/> <tag>title</tag>.  As a style writer, you can change the font, color and placement of that string, but not the use of the type-name, the number, the title, or their order.  The text of your template is additive, meaning it is in addition to what the stock <pretext/> conversion provides.  Your options come last, so will be new and effective, or will replace what the base conversion to <latex/> does.  So in the example above, the base conversion to <latex/> has <c>colback=white</c> (rather than the default gray!), and this will be overridden since pink will come later.</p>\n    </section>\n\n    <section>\n        <title>Preamble and Experimentation</title>\n\n        <p>Two hooks are provided to allow for arbitrary additions to the <latex/> preamble.  It should go without saying that this is for experimenting with new features and is no way supported, including, but not limited to, interactions with current <latex/> packages in use, or those added in the future.</p>\n\n        <p>Arbitrary text (<latex/>) used as the values of the string parameters <c>latex.preamble.early</c> and <c>latex.preamble.late</c> will be added to the very beginning, or very end (respectively), of the generated preamble.</p>\n    </section>\n\n    <section xml:id=\"style-xsl-101\">\n        <title><init>XSL</init> 101</title>\n\n        <p>If you have read this far, and read carefully, you have been exposed to several key principles of writing <c>XSL</c>.  Basically you are creating templates which the base <latex/> conversion will <q>call</q> in exactly the right place.  In a procedural language these might be called <term>hooks</term>.  Besides a smooth integration with the rest of <pretext/> there are several advantages:<ul>\n            <li>A template using a <attr>match</attr> can apply narrowly or broadly.  Witness the example above for <tag>example</tag> versus <c>&amp;EXAMPLE-LIKE;</c>.  This attribute is similar to a <c>this</c> pointer in an object-oriented language and the modal template is not dissimilar to a method.</li>\n\n            <li><pretext/> has a discovery phase when it constructs the <latex/> preamble.  If your <pretext/> source has no <tag>example</tag> in it, then there will be no associated <c>tcolorbox</c> style added to the preamble, and the <latex/> <c>example</c> environment will not be defined.  So the preamble is exactly what your document needs, and no more (mostly).  The <attr>match</attr> attribute makes this possible.</li>\n\n            <li>You have seen named templates, which will feel familiar if you know procedural languages.  While perhaps comfortable, they are way less powerful, and we noted that we may get rid of them.</li>\n\n            <li>The <tag>xsl:import</tag> mechanism allows us to keep base definitions and override others.  So as you develop your style, you do not need to start from scratch.</li>\n        </ul></p>\n\n        <p>Be aware that <em>every single character</em> that you put inside the <tag>xsl:text</tag> element will get copied literally into the preamble of your <latex/> output, including newlines and spaces you use to indent in your <init>XSL</init>.  Conversely, any <em>whitespace</em> inside your template, but <em>between</em> the <tag>xsl:text</tag> elements is ignored.  So we like to use multiple <tag>xsl:text</tag> elements (except we were a bit lazy getting this out the door initially<mdash/>do as we say, not as we do) and explicitly create newlines with the <c>&amp;#xa;</c> character.  Your goal is to have a <latex/> preamble with no blank lines and no unintended indentation.  We often create comment lines (with two leading <c>%</c> characters to aid with readability.</p>\n\n        <p>See the <pretext/> website for recommendations for books on <init>XSL</init> if you are encouraged to learn more.</p>\n    </section>\n\n    <section>\n        <title>Testing and Debugging</title>\n\n        <p>The sample article tries to have one of everything, plus a few torture tests.  It is a good place to test initially, especially with the <c>tcb-style</c> templates.  The sample book is less haphazard, but does have most of the structure a typical book would have.  So if you are designing for a book it is a good place to test page styles, headers and footers, and division titles.  (2019-09-30: it is possible <tag>part</tag> has not been tested thorougly enough yet.)</p>\n\n        <p>When things go bad, such as a non-obvious <latex/> compilation, it can help to stop working with <pretext/> source, and instead edit the generated <latex/> until the problem is understood.</p>\n\n        <p>We do not expect to provide great support for this process.  First, because new code and basic support already keeps us busy, and second, because you have the freedom to really make a mess, and thus you should take responsibility for the problem.  When you are certain that <pretext/> has done something wrong or inadvisable, please, please do post in the development forum with a careful explanation and a (minimal) example.  It will happen.  Just don't use the forums as a replacement for this documentation or a bit of sleuthing through the <latex/> that <em>you</em> are now creating.  With freedom comes responsibilty.  Thanks.</p>\n    </section>\n\n    <section xml:id=\"styling-justification\">\n        <title>Justified Text</title>\n\n        <p>We employ the <latex/> package, <url href=\"https://ctan.org/pkg/microtype\" visual=\"ctan.org/pkg/microtype\"><c>microtype</c></url> to enhance <latex/>'s algorithms for spacing text.  See <xref ref=\"print-justification\"/> for some explanation.  The package admits a great deal of fine-tuning, and we make it easy to pass in options via a template included as part of the styling.</p>\n\n        <p>If you were using <c>pdflatex</c> you might include in your styling:<cd>\n            <cline>&lt;xsl:template name=\"microtype-options\"&gt;</cline>\n            <cline>    &lt;xsl:text&gt;protrusion=true,expansion&lt;/xsl:text&gt;</cline>\n            <cline>&lt;/xsl:template&gt;</cline>\n        </cd>This would have the effect of putting<cd>\n            <cline>\\usepackage[protrusion=true,expansion]{microtype}</cline>\n        </cd>into your <latex/> output file.  Study the <c>microtype</c> documentation for possibilities.</p>\n    </section>\n\n    <section>\n        <title>Planned Additions</title>\n\n        <p>Some items to include, as of 2019-09-30:<ul>\n            <li>Color schemes, so an author can use a style and just change the colors with a very simple stylesheet.</li>\n            <li>Font control, so a style writer has simple instructions that navigate <latex/>'s procedures.</li>\n            <li>Flexibility with the building blocks of a title page.</li>\n            <li>Cover design and placement.</li>\n        </ul></p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/online-html.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"online-html\">\n    <title>Conversion to Online HTML</title>\n\n    <introduction>\n        <p>This chapter describes way a publisher can adjust the presentation of <pretext/> content in an inline format, without actually changing that content.  Similar to the case for <latex/> conversion (<xref ref=\"pdf-print\"/>) there is a variety of options which may be configured.  As of 2022-10-24 we are transitioning away from string parameters (<xref ref=\"publisher-string-parameters\"/>) to using a publication file (<xref ref=\"publication-file\"/>), which is simultaneously being documented carefully.  During the transition you can explore <c>xsl/pretext-html.xsl</c> by searching on the use of <tag>xsl:param</tag> at the outermost level (i.e. starting in column 1).</p>\n    </introduction>\n\n    <section xml:id=\"html-publisher-options\">\n        <title>HTML Publisher Options</title>\n\n        <subsection xml:id=\"index-page\">\n            <title><c>index.html</c> Page</title>\n            <idx><h>index page</h><h>HTML</h></idx>\n            <idx><h>HTML</h><h>index page</h></idx>\n\n            <p>The conversion to <init>HTML</init> <em>always</em> creates a file named <c>index.html</c>.  We do this because if a reader requests the <init>URL</init><cd>\n                <cline>platypus.mammal-institute.org/aota/html</cline>\n            </cd>then most modern web servers will automatically return the page<cd>\n                <cline>platypus.mammal-institute.org/aota/html/index.html</cline>\n            </cd>So you can advertise the shorter version to potential readers.  What is in <c>index.html</c>?  Simple code to <term>redirect</term> to another one of your pages.  Which one?  Any one you like!</p>\n\n            <p>Within the <tag>publication</tag> element of your publication file (<xref ref=\"publication-file\"/>) include an <tag>html</tag> element, with a child element <tag>index-page</tag> having an attribute <attr>ref</attr>.  The value must be the <attr>xml:id</attr> of a division which is rendered as an entire web page at the requested level of chunking.  See <xref ref=\"online-index-page\"/>  for details on specifying this option.</p>\n\n            <p>For example, if a <tag>book</tag> is being chunked into <tag>chapter</tag>, and your source has<cd>\n                <cline>&lt;chapter xml:id=\"birds\"&gt;</cline>\n            </cd>then you can set <c>ref=\"birds\"</c> and the page for that chapter will be the default page for the shorter <init>URL</init>.  In practice, you probably really want a page that looks like the front matter or a Table of Contents.</p>\n\n            <p>The default is to first have <c>index.html</c> redirect to a page for the <tag>frontmatter</tag>, and if this is not possible, then it will redirect to a page for the top-level of your content.  If your document is short or simple, you may just have a single web page.  You could choose to not distribute the <c>index.html</c> file and then just use a concise and descriptive <attr>xml:id</attr> for your top-level element (e.g. <tag>article</tag>) to fashion an attractive URL that points to your shorter work.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-banner-options\">\n            <title>Banner Contents</title>\n            <idx><h>HTML</h><h>banner content</h></idx>\n\n            <p>The top of page banner normally features the title, subtitle, and author. If the subtitle or author list are long, or not particularly relevant for a given work, the publisher may wish to not render them at the top of each page. Of course, this information will still always be available at least once in places equivalent to a title page in the <q>front</q> of your document.  See <xref ref=\"online-banner\"/> for details on specifying what to display.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-embedded-calculator\">\n            <title>Embedded Calculator</title>\n            <idx><h>calculator</h><h>embedded in <init>HTML</init></h></idx>\n\n            <p>You may elect to have an embedded online calculator in each page of your online version.  It will appear in the right margin, and will stay there as a reader scrolls the page up and down.  A button near the masthead can be used to contol visibility.  By default no calculator is available, so you need to explicitly request this feature.  As of 2020-05-30 there are four calculators available from the\n              <url href=\"https://www.geogebra.org/\" visual=\"www.geogebra.org\">GeoGebra Project</url>.  See <xref ref=\"online-calculator\"/> for details on specifying this option.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-favicon-configuration\">\n            <title>HTML Favicon Configuration</title>\n            <idx>favicon</idx>\n\n            <p>A <term>favicon</term> is a graphical element (<q>icon</q>) that identifies a website.  Perhaps its most recognizable use is its appearance in every browser tab open at that site.  As publisher, you can associate an icon for your project to the <init>HTML</init> output of your project.</p>\n\n            <p>See <xref ref=\"online-favicon\"/> for details on this specification.  When the attribute value is <c>none</c> (the default), then your pages will not have a favicon.</p>\n\n            <!-- commit 96c5886dc27dc47d55fa6b7aec18cfd28ec5ee13 -->\n            <!-- Date:   Wed Jul 18 13:01:02 2018 -0700          -->\n            <!-- Support for HTML favicon                        -->\n\n            <p>If you set the attribute to <c>simple</c> then you <em>must</em> provide two versions of your icon, in <init>PNG</init> format, in pixel sizes 16<times/>16 and 32<times/>32, with exactly the two filenames below (respectively), in the directory of provided external files (<xref ref=\"processing-directory-management\"/>).<cd>\n                <cline>favicon/favicon-16x16.png</cline>\n                <cline>favicon/favicon-32x32.png</cline>\n            </cd>There are other ways to specify a favicon and some browsers expect different files.  Try this scheme first, as it appears to have been sufficient since 2018.  But if a new scheme needs implementation, we can consider a feature request.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-scratch-activecode\">\n            <title>ActiveCode Programming Windows</title>\n            <idx><h>ActiveCode</h><h>window in <init>HTML</init></h></idx>\n\n            <p>A window that allows for entering, and executing, computer programs can be made available for every page.  The reader can click on a pencil icon to activate this window.  Some languages can run in a web browser as part of any <init>HTML</init> output, while some other languages require infrastructure on a Runestone server to execute, and so are only available when you specify that hosting option.  Note that the publisher will select a single language for use with the entire document. See <xref ref=\"online-activecode\"/> for details on specifying this option.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-base-url\">\n            <title>Base URL</title>\n            <idx>base URL</idx>\n            <idx><h>URL</h><h>base</h></idx>\n\n            <p>The base <init>URL</init> of a hosted version of <init>HTML</init> output may be specified as an entry in a publication file.  Then certain aspects of other output (typically <init>PDF</init>/<latex/>) will link to corresponding aspects of the <init>HTML</init> output.  See <xref ref=\"online-baseurl\"/> for the specifics of this entry.  Examples of use include links from Asymptote graphics (<xref ref=\"latex-asymptote-links\"/>), and <init>URL</init>s pointing to locally-hosted data files (<xref ref=\"topic-datafile\"/>).</p>\n        </subsection>\n\n        <subsection xml:id=\"video-embedding\">\n            <title>Privacy Options for Video Embedding</title>\n            <idx><h>video</h><h>HTML</h></idx>\n            <idx><h>privacy</h><h>video</h></idx>\n\n            <p>When videos are embedded in <init>HTML</init> from sites like <url href=\"https://www.youtube.com\" visual=\"youtube.com\">YouTube</url> or <url href=\"https://vimeo.com/\" visual=\"vimeo.com\">Vimeo</url>,\n            they come with whatever tracking cookies these sites want to include. Some of these can be helpful; for example, to let the viewer keep track of what they have watched.\n            Others are designed to target advertising, and load when the page loads, rather than when the video plays, which can increase the time it takes for your book to load.</p>\n\n            <p>Currently YouTube offers an <q>enhanced privacy mode</q> that disables tracking cookies on page load.\n            The assumption is that publishers will want to protect their readers' privacy and optimage page load time, so this mode is turned on by default for YouTube videos.\n            It is not known to be available for other platforms, but can be added if this changes. Note that the behavior and appearance of your videos may change slightly depending on which option you choose.</p>\n\n            <p>Within the <tag>publication</tag> element of your publication file include an <tag>html</tag> element, with a child element <tag>video</tag> having an attribute <attr>privacy</attr>.\n            The value must be either <c>yes</c> (use enhanced privacy, if available), or <c>no</c> (allow all tracking cookies).\n            If your publication file does not have this element (or you do not have a publication file) you will get a warning message, and the default will be used.  See <xref ref=\"embedded-video-privacy-options\"/> for details on specifying this option.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-asymptote-links\">\n            <title>Links to full-size versions of Asymptote diagrams</title>\n            <idx><h>Asymptote links</h><h>HTML</h></idx>\n            <idx><h>HTML</h><h>Asymptote links</h></idx>\n\n            <p>Asymptote diagrams are embedded in <init>HTML</init> as a <c>canvas</c> element within an <c>iframe</c>.\n            Unlike <c>image</c> elements, web browsers will not provide the option to <q>view image</q>, and clicking on the image will not enlarge it.\n            Since 3D Asymptote diagrams are interactive, a reader may wish that they could interact with a larger version of the graphic.</p>\n\n            <p>You may elect to place a <q>Link to full-sized image</q> link below each Asymptote diagram.\n            Clicking on the link will open the Asymptote <init>HTML</init> file directly, and the digram will be displayed at a much larger size.</p>\n\n            <p>See <xref ref=\"html-asymptote-link-options\"/> for the specifics of this entry.  This feature is off by default.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-feedback\">\n            <title>HTML Feedback Button</title>\n            <idx><h>HTML</h><h>feedback button</h></idx>\n            <idx><h>feedback button</h><h>HTML</h></idx>\n\n            <p>You can elect to have a <q>Feedback</q> button in the footer of your <init>HTML</init> pages.  You must provide a <init>URL</init> via an attribute.  But where that <init>URL</init> points, and what happens there, <em>is your responsibility</em>.  In other words, <pretext/> is no more help here, you just get a functional button pointing <em>somewhere</em> of your choosing or design.  An example use case may be that you want to make it very easy for your readers to submit reports of small errors, like <q>typos.</q>  So you setup an online form with a free service, which will help you manage this communication.  Or maybe you want to run a reader survey via a form, so you point to that.</p>\n\n            <p>The default text on the button is <c>Feedback</c>, which will be in the language in effect for the page.  You can override this choice (e.g., <c>Bug Report</c>), but it needs to be raw text (no markup) and then it will not react to language changes for your document.  See <xref ref=\"html-feedback-options\"/> for precise details.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-navigation\">\n            <title>HTML Navigation</title>\n            <idx><h>Asymptote links</h><h>HTML</h></idx>\n            <idx><h>HTML</h><h>Asymptote links</h></idx>\n\n            <p>There are publisher file entries to control how navigation between pages behaves.  The <q>Up</q> button may be turned on and off.  An entry for the logic of these buttons can be set to the values of <c>linear</c> (the default) or <c>tree</c>.  The former causes the Previous and Next buttons to behave as if the divisions are arranged as in a printed book, i.e. linearly.  The latter option means that when a reader comes to the last subdivision of a division, the Next button will be not be active, and they will need to return (up the hierarchy/tree) to the division and move to the next division.  Turning off the Up button while electing the tree model is likely to lead to a frustrating navigation experience.</p>\n\n            <p>The HTML target offers two views of the Table of Contents (ToC). The default is to fully expand the ToC to the depth indicated by the the <xref ref=\"common-toc-options\">common Table of Contents level</xref> publisher setting. There is also a <c>focused</c> view that uses an expandable ToC and only initially fully expands the path to the current page.</p>\n\n            <p>See <xref ref=\"html-navigation-options\"/> and <xref ref=\"html-toc-options\"/> for the exact syntax of these options.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"knowled-content\">\n        <title>Knowled Content</title>\n\n        <p>A <term>knowl</term> is a feature of the online conversion. It is text that you can click on, and nearby some content is revealed. You can click it again to hide that content.  You can find a variety of examples in the Sample Article, or other <pretext/> projects.</p>\n\n        <p>Knowls come in two different types:<ul>\n            <li>\n                <p>A <term>born-hidden knowl</term> or <term>born-as knowl</term> is content that is contained in a knowl at the location where it first appears.  Typical examples are footnotes, hints to exercises, or proofs of theorems.  In other words, these small units of content are <q>hidden</q> behind knowls in the location where they naturally belong.  Some content (e.g. footnotes and exercise solutions) are <em>always</em> <term>knowled</term>, while other content (e.g. an inline exercise) can be knowled, or not, as a choice made by the publisher via the Publisher's File (<xref ref=\"publication-file\"/>).  For exact details on influencing knowlization see the reference material in <xref ref=\"online-knowlization-options\"/>.</p>\n\n                <p>An author does not need to be conscious of knowls. The structure and content of the document should not <q>be aware</q> that there will be knowls in the online output.  But instead the publisher has control over whether or not certain medium-sized pieces of content (examples, exercises, figures, etc.) are born as knowls or not.</p>\n\n                <p>Note that some of these switches are for broad categories of items, for example, choosing to knowl theorems will also knowl <tag>lemma</tag>s, <tag>corollary</tag>s, <tag>fact</tag>s, and more.  See <xref ref=\"online-knowlization-options\"/> for precise details.  This choice applies document-wide, there is no plan to support electing this on a case-by-case basis.</p>\n            </li>\n\n            <li>\n                <p>By contrast, a <term>cross-reference knowl</term> or an <term>xref knowl</term> is content that is a duplicate of some other content, in another location, as a result of an author making an <tag>xref</tag> cross-reference in their source.  So a cross-reference in Chapter<nbsp/>8 to Example<nbsp/>4.6 will open the content of the example in the knowl, rather than transporting the reader backwards four chapters.  If the reader <em>does</em> want to see the example in its original context in Chapter 4, then the knowl finishes with an <term>in-context</term> link that functions as a traditional hyperlink.  Almost every cross-reference is a knowl, except when the target is a division<mdash/>then a traditional hyperlink is used, since rendering an entire division as a knowl is unwieldy. Should knowls not be desired, there is a publisher level switch to render all <tag>xref</tag>s as traditional links. See <xref ref=\"html-xref-options\"/> for details.</p>\n            </li>\n        </ul>\n        The presence of the in-context link is one way to tell the difference between the two - <term>born-hidden knowl</term>s will not have an in-context link, while <term>cross-reference knowl</term>s will. Locators in the index (<xref ref=\"online-index-style\"/>) are mostly cross-reference knowls.  Knowls are used a few other places, such as in a list of notation.</p>\n    </section>\n\n    <section>\n        <title>Permalinks</title>\n\n        <p>If you place a mouse pointer in the left margin, to the left of a heading for an item, then an icon with two links of a chain will appear.  This is a link to the item.  Instead of a doing a right-click for a context menu that has an option like <q>Copy Link Location</q>, rather do a normal (left-) click.  This will copy the heading (<q>Example 4.5 Chameleon Colors</q>), and also the link itself, to your clipboard, along with some formatting.  You can then paste this into course materials, or email it to a reader who had a question.</p>\n\n        <p>You might want to make this feature known to your readers, perhaps via a preface explaining some of the more novel features of the <init>HTML</init> version of a <pretext/> document.</p>\n    </section>\n\n    <section>\n        <title>Lists</title>\n\n        <p>Lists with several columns are rendered in row-major order, as of 2018-02-28.  In other words, the first list items (<tag>li</tag>) in your source will populate the first row.</p>\n\n    </section>\n\n    <section xml:id=\"online-index-style\">\n        <title>Index Style</title>\n\n        <p>Start at <xref ref=\"overview-index-notation\"/> to learn how to create an index.  The realization of the index for online output is implemented within <pretext/>.  We have made certain stylistic choices, in addition to taking advantage of certain features of the online format.<ul>\n            <li>A one-column format.</li>\n            <li>Indented subheadings (not run-in).</li>\n            <li>Maximum two levels of subheadings.</li>\n            <li>Word-by-word sort order on headings.</li>\n            <li>Locators for divisions are hyperlinks.</li>\n            <li>Locators for smaller units are knowls.</li>\n            <li><q>Page ranges</q> use the initial location.</li>\n            <li>No running heads (yet).</li>\n            <li>A <term>headnote</term> can be accomplished with an <tag>introduction</tag>.</li>\n        </ul>Some of these choices would be easy to adjust or extend as the result of a feature request.</p>\n\n        <p>Also, there can be significant differences between how <pretext/> implements the index for <init>HTML</init> and how the <c>imakeidx</c> package creates an index for <latex/>.  See <xref ref=\"latex-index-style\"/> and <xref ref=\"indexing-guide\"/>.</p>\n    </section>\n\n    <section xml:id=\"online-style\">\n        <title>Styling</title>\n        <idx><h>style</h><h>HTML</h></idx>\n\n        <p>The <pretext/> conversion to <init>HTML</init> creates standard <init>HTML</init> elements, with styles controlled by <init>CSS</init> via class names (and not so much via the element names).  As evidence of this, building <init>HTML</init> without the accompanying Javascript and <init>CSS</init> renders in a readable fashion, albeit quite plain (as one would expect).</p>\n\n        <p>This <init>HTML</init> is styled with <init>CSS</init> to create the output that a reader sees. There are multiple <q>themes</q> that a publisher can choose from to render the pages in different styles. Below are samples of available themes. See <xref ref=\"online-style-options\"/> for the syntax for specifying a theme and options like the color palette to use.</p>\n\n        <paragraphs>\n            <title>Themes</title>\n\n            <p>There are multiple themes that define different appearances for HTML output. Currently available themes include:</p>\n\n            <sbsgroup>\n                <sidebyside widths=\"40% 40%\" margins=\"auto\" valign=\"middle\">\n                    <figure>\n                      <caption><term>default-modern</term> An updated version of the traditional PreTeXt theme.</caption>\n                      <image source=\"theme-default-modern.jpg\" width=\"100%\">\n                          <description><p>Screenshot of the default-modern theme</p></description>\n                      </image>\n                    </figure>\n                    <figure>\n                      <caption><term>tacoma</term> A theme with minimal decorations and colors. A minimalistic presentation of the contents.</caption>\n                      <image source=\"theme-tacoma.png\" width=\"100%\">\n                          <description><p>Screenshot of the tacoma theme</p></description>\n                      </image>\n                    </figure>\n                </sidebyside>\n                <sidebyside widths=\"40% 40%\" margins=\"auto\" valign=\"middle\">\n                    <figure>\n                      <caption><term>denver</term> A theme that uses bolder structural elements and colors.</caption>\n                      <image source=\"theme-denver.png\" width=\"100%\">\n                          <description><p>Screenshot of the denver theme</p></description>\n                      </image>\n                    </figure>\n                    <figure>\n                      <caption><term>greeley</term> A theme designed for short documents like academic papers.</caption>\n                      <image source=\"theme-greeley.png\" width=\"100%\">\n                          <description><p>Screenshot of the greeley theme</p></description>\n                      </image>\n                    </figure>\n                </sidebyside>\n                <sidebyside widths=\"40% 40%\" margins=\"auto\" valign=\"middle\">\n                    <figure>\n                      <caption><term>salem</term> A theme that is optimized for displaying wide interactive elements (such as Active Code and Parsons).</caption>\n                      <image source=\"theme-salem.png\" width=\"100%\">\n                          <description><p>Screenshot of the salem theme</p></description>\n                      </image>\n                    </figure>\n                    <figure>\n                      <caption><term>boulder</term> A minimal theme designed to mimic a LaTeX pdf for academic paper (no masthead).</caption>\n                      <image source=\"theme-boulder.png\" width=\"100%\">\n                          <description><p>Screenshot of the boulder theme</p></description>\n                      </image>\n                    </figure>\n                </sidebyside>\n            </sbsgroup>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Development</title>\n\n            <p>Please join us on the <c>pretext-dev</c> discussion group if you want to create alternate themes.</p>\n        </paragraphs>\n    </section>\n\n    <section xml:id=\"online-analytics\">\n        <title>Analytics</title>\n        <idx>analytics</idx>\n\n        <p><pretext/> makes it as easy as possible to have services provide data about visitors to the <init>HTML</init> version of your book.  We support <url href=\"https://analytics.google.com/analytics/web/\" visual=\"analytics.google.com/analytics/web/\">Google Analytics</url> and <url href=\"https://statcounter.com/\" visual=\"statcounter.com/\">StatCounter</url>.</p>\n\n        <p>In each case, use is similar.  Begin at the service's site and follow their instructions for enabling data collection for your book's site.  We will not document those instructions here.  <em>Do not copy the identification numbers from another project<mdash/>be sure to obtain your own for your project.</em>  When completed, you can request (or will be shown) sample Javascript code to add to pages on your site.  Except, <pretext/> is going to do that part for you.  You only need to provide the unique identifiers used by the service that identify your project.  Because these sign-ups are dependent on your site, this is a publisher activity, and hence configured with the publication file (<xref ref=\"publication-file\"/>), see <xref ref=\"online-analytics-options\"/> for details.</p>\n\n        <p>StatCounter uses two identifiers, a <c>project</c> ID and a <c>security</c> code.  <em>Do not copy the identification numbers from another project<mdash/>be sure to obtain your own for your project.</em>  You can find them in your <q>Project Config</q> under <q>Settings</q>.  Or the code provided will contain lines such as<cd>\n            <cline>var sc_project=11538430;</cline>\n            <cline>var sc_invisible=1;</cline>\n            <cline>var sc_security=\"72e1390a\";</cline>\n        </cd>In which case your publication file would have an element under <c>html</c> like<cd>\n            <cline>&lt;analytics statcounter-project=\"11538430\"</cline>\n            <cline>           statcounter-security\"72e1390a\"/&gt;</cline>\n        </cd></p>\n\n        <p>Google Analytics comes in several flavors.  We once supported Classic and Universal, but no longer, so we do not provide documentation here.  For the replacement, Google <term>Global Site Tag</term> is a single ID.    <em>Do not copy the identification numbers from another project<mdash/>be sure to obtain your own for your project.</em>  Google once called this a tracking ID, which may also be called a property ID; these looked like <c>UA-6836004-1</c>.  Google has now switched to Google Analytics 4 and is exclusively using the form of a <term>Google Tag ID</term>/<term>Measurement ID</term> which will look similar to <c>G-CQG9X37H61</c>; you will need to upgrade your analytics if you used the older style tag.  In any case your publication file would have an element under <c>html</c> like<cd>\n            <cline>&lt;analytics google-gst=\"G-CQG9X37H61\"/&gt;</cline>\n        </cd>If you use both services, you can elect to use just one <tag>analytics</tag> element with several attributes.</p>\n\n        <p>We would be happy to provide support for additional major services.  Just make a feature request.</p>\n    </section>\n\n    <section xml:id=\"native-search\">\n        <title>Native Search</title>\n        <idx><h>search</h><h>native</h></idx>\n\n        <p>Client-side search is supported natively by a Javascript library.  Search results are tuned to leverage the <em>structure</em> of your <pretext/> project.  As such, development and support will favor this approach over our legacy support for an online service (<xref ref=\"google-search\"/>).</p>\n\n        <p>There are two <term>tunings</term> of search.<dl>\n            <li>\n                <title>Textbook</title>\n                <p>This is the default.  Results are presented in order of appearance, on the assumption that a reader is following the text in a linear order and knows their current location.  Visual clues will reflect the relevance of each result.</p>\n            </li>\n            <li>\n                <title>Reference</title>\n                <p>This assumes a document is more like a reference work and is accessed <q>randomly.</q>  Results are not in order of appearnce, but rather early results will likely be more relevant.</p>\n            </li>\n        </dl></p>\n\n        <p>Employing a switch in the publication file will provide search boxes (top banner, lower-right corner) and all the supporting infrastructure.  See <xref ref=\"online-search-options\"/> for details.</p>\n    </section>\n\n    <section xml:id=\"google-search\">\n        <title>Google Search</title>\n        <idx><h>search</h><h>Google</h></idx>\n\n        <p>Note: as of 2022-10-27 we have search supported by an online service from Google and a client-side (<q>native</q>)version supported by Javascript (<xref ref=\"native-search\"/>).  Development and support will favor the latter.</p>\n\n        <p>Search facilities can be enabled through <url href=\"https://cse.google.com/cse\" visual=\"cse.google.com/cse\">Google Custom Search Engine</url><idx>Google Custom Search Engine</idx>.  Please, please report any discrepancies in the following instructions as the setup interface at Google changes out from underneath us.  These instructions have been updated as of 2020-10-01.</p>\n\n        <p>Besides being useful for search facilities, setting up a search engine might be a good way to alert Google of something newly available, and initiate your book's rise up the search results rankings.</p>\n\n        <list>\n            <title>Configuring Google Custom Search</title>\n\n            <ol>\n                <li><p>Create an account with Google (GMail, YouTube, <etc />) and make sure you are signed in.</p></li>\n\n                <li><p>Visit <url href=\"https://cse.google.com/cse\" visual=\"cse.google.com/cse\">GCSE</url> and add a new search engine via  <c>New Search Engine</c>.</p></li>\n\n                <li><p>Provide a <init>URL</init> for the top-level domain name/directory for your book/document.  Everything below this will be indexed.  We have taken some care to mark knowl content in a way compatible with the search facility, but there is more work to do here.</p></li>\n\n                <li><p>Give the engine a GCSE-specific name, so you can tell later which one it is when you have several.</p></li>\n\n                <li><p>Under <c>Edit Search Engine</c> in the <c>Basics</c> tab locate <c>Search engine ID</c> which has a string that uniquely identifies your new search engine.  Save this, you'll need to make it part of your <pretext/> document.</p></li>\n\n                <li><p>Under the <c>Users</c> tab add co-authors or trusted backup personnel.</p></li>\n\n                <li><p>Fiddle with <c>Edit Search Engine > Look and Feel</c> at your own risk!  Only the defaults are tested and supported.</p></li>\n\n                <li><p>Provisions for removing advertisements for non-profit sites seem to have changed.  If your university already contracts with Google, you should investigate having a <q>SuperAdmin</q> at your institution so this setup for you, and make you a trusted collaborator.  Then it should be an easy matter to turn off advertisements.</p></li>\n            </ol>\n        </list>\n\n        <list>\n            <title>Configuring <pretext/> for Google Search</title>\n\n            <ol>\n                <li><p>Because these sign-ups are dependent on your site, this is a publisher activity, and hence configured with the publication file (<xref ref=\"publication-file\"/>), see <xref ref=\"online-search-options\"/> for details.</p></li>\n                <li><p>The <c>Search engine ID</c> you saved from above is referenced in Google's code as a <c>cx</c> number.  An example looks like <c>482cf73dc05bed674</c> (older examples looked like <c>002673997130187229905:qjo2y0jplyu</c>).  In which case your publication file would have an element under <c>html</c> like<cd>\n                    <cline>&lt;search google-cx=\"482cf73dc05bed674\"/&gt;</cline>\n                </cd></p></li>\n\n                <li><p>The <c>search/@google-cx</c> attribute will alert the <pretext/> conversion and fully enable and implement search.  You are done, and everything should just work.  You should see a Google-branded search box to the top right of each of your pages.  (We have no control over the branding.)</p></li>\n\n                <li><p>Time to rebuild your <init>HTML</init> output and make the improved version available.</p></li>\n            </ol>\n        </list>\n    </section>\n\n    <section xml:id=\"one-page-html\">\n        <title>Single Page HTML</title>\n\n        <p>\n            Sometimes you would like a shorter work to be a <em>single</em> file in <init>HTML</init> format.  Perhaps it is something self-contained, like a course syllabus, or you desire to attach it easily to an email or other post.  This section contains advice and procedures you can use to achieve this.\n        </p>\n\n        <p>\n            The primary mechanism for limiting the number of files in an HTML build is to set the <attr>portable</attr> attribute of <c>publication/html/platform</c> to <c>\"yes\"</c> (see <xref ref=\"online-portable-options\"/>).  This will automatically take care of the following.\n\n            <ul>\n                <li>\n                    <p>\n                        Use hosted (CDN) versions of the <init>CSS</init> and javascript files rather than including them in your output directory.\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        Embed generated <init>SVG</init> images in the HTML (anything from <tag>prefigure</tag> or <tag>latex-image</tag>).\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        Embed the search code in the HTML (if you are using the )\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        Set all xref knowls to behave like links (same as setting <c>/publication/html/cross-references/@knowled</c> to <c>never</c>).\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        Produce a single file will all your chapters/sections/subsections in it (the same as setting <c>/publication/common/chunking/@level</c> to <c>0</c>).\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        Prevent the generation of most extra <q>standalone</q> pages (such as for most interactive elements and worksheets).\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        Not produce the standard <c>index.html</c> file that is otherwise used to redirect to the main page.\n                    </p>\n                </li>\n            </ul>\n        </p>\n\n        <p>\n            Keep in mind that if your document has external assets, or uses generated assets that are not converted to <init>SVG</init>, these assets will still be needed in your output (regardless, you will get <c>external</c> and <c>generated</c> directories for your assets, but these might be empty or not needed).  Additionally, some interactive elements work by creating an <c>iframe</c> that loads an <init>HTML</init> file, and these cannot be avoided currently.\n        </p>\n\n        <p>\n            Finally, depending on the purpose of your document, you might consider using a simpler theme.  The <c>boulder</c> theme is designed to look like a <latex />-produced PDF; it doesn't have any masthead, which makes sense for a single page document.  Other style options are described in <xref ref=\"online-style\"/>.\n        </p>\n\n        <p>\n            For very small documents, you might also consider turning off the table of contents by setting <c>/publication/common/tableofcontents/@level</c> to <c>0</c> (see <xref ref=\"common-toc-options\"/>).\n        </p>\n    </section>\n\n    <section xml:id=\"lms-hosting\">\n        <title>HTML in an LMS</title>\n\n        <p>\n            If you are using <pretext /> to author course materials, you may want to include the resulting <init>HTML</init> in your LMS (Learning Management System) course shell.\n            While uploading PDFs can also be useful for students to print from, many universities require the documents to also be made available in accessible formats, so <init>HTML</init> is likely your best option.\n        </p>\n\n        <p>\n            Depending on which LMS you use, and possibly what settings have been applied to your course shell, you may be able to upload a portable <init>HTML</init> file, as described in <xref ref=\"one-page-html\"/>.  This seems to work with Moodle, but not with Canvas, which blocks javascript inside uploaded files (the Javascript is required to render the MathJax math content).  In this case, you have two options:\n            <ol>\n                <li>\n                    <p>\n                        Host your <init>HTML</init> output on a web server (such as using <c>pretext deploy</c> to publish your files to GitHub pages) and then link to the content or embed it in your LMS using an iframe.  To make embedding easier, you can turn on an <q>embed this page</q> button by setting <c>/publication/html/@embed-button</c> to <c>yes</c> in the publication file (see <xref ref=\"online-embed-button-options\"/>).\n                    </p>\n                    <p>\n                        Once your page is published, click on the button and copy the code to your clipboard.  In the LMS, create a page in your course shell.  There is likely an <q>embed code</q> button in the editor interface of your LMS where you can paste what you copied from the <pretext /> page.  When you save the page in your LMS, you should see just the <em>inner</em> content of the pretext page (no table of contents or navigation).  However, the page should be fully functional, including interactive elements and MathJax rendered math (so it will be screen reader friendly).\n                    </p>\n                </li>\n                <li>\n                    <p>\n                        If you need to keep your document private to your course (for example, maybe it is a set of exam solutions you don't want to publish on the open web), you can produce a <init>SCORM</init><fn>Sharable Content Object Reference Model</fn> archive of your document.  To do this, in your <c>project.ptx</c> manifest, set <attr>compression</attr> to <c>scorm</c> for the <init>HTML</init> target you want to build.\n                    </p>\n                    <p>\n                        <pretext /> will produce the HTML inside a <c>.zip</c> archive which will also include a SCORM manifest that tells your LMS how to display the content.  You can then upload this SCORM file to your LMS and add it as a page.  In Canvas, you can do this by adding SCORM to your course navigation in settings and then clicking the upload button on that page.  Brightspace (D2L) lets you upload SCORM files from a page-creation menu.  See the documentation for your LMS for additional help.\n                    </p>\n                </li>\n            </ol>\n        </p>\n    </section>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/open-licenses.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"open-licenses\">\n    <title>Copyright and Licensing</title>\n\n    <introduction>\n        <p>The legal issues described here are based on the authors' experiences and study, which necessarily reflect the laws of the United States.  But the <url href=\"https://www.wipo.int/treaties/en/ip/berne/\" visual=\"www.wipo.int/treaties/en/ip/berne/\">Berne Convention</url>, which dates to 1886, has 172 parties, so law and practice are very similar the world over.  The United States acceded to the convention in 1988.</p>\n    </introduction>\n\n    <section>\n        <title>Copyright</title>\n\n        <p><term>Copyright</term> is a monopoly granted by the government.  It gives the author control over reproductions, translations, adaptations, performances, communications, <etc /> of their work for a fixed time.  Since 1978, it has not been necessary to register a copyright<mdash />it is automatic.  So for example, every web page, no matter how simple or unrefined, is copyrighted by its author.</p>\n\n        <p>The phrase <q>All Rights Reserved</q> is used to assert that the copyright holder intends to exercise all the rights granted by copyright.  It is not required to mark a document with the copyright symbol (<copyright />) but in case of disputes, it can be helpful.</p>\n\n        <p>So in <pretext /> you can go<cd>\n            <cline>&lt;frontmatter&gt;</cline>\n            <cline>  &lt;colophon&gt;</cline>\n            <cline>    &lt;copyright&gt;</cline>\n            <cline>      &lt;holder&gt;Thomas Jefferson&lt;/holder&gt;</cline>\n            <cline>      &lt;year&gt;1776&lt;/year&gt;</cline>\n            <cline>      &lt;minilicense&gt;All Rights Reserved&lt;/minilicense&gt;</cline>\n            <cline>    &lt;/copyright&gt;</cline>\n            <cline>  &lt;/colophon&gt;</cline>\n            <cline>&lt;/frontmatter&gt;</cline>\n        </cd>to assert a <q>traditional</q> copyright and the recommended information will then appear on the page after the title page.</p>\n\n        <p>In academic publishing, authors have usually transferred, or sold, their copyright to a publisher in return for distribution of their work, or for the promise of financial gain.</p>\n    </section>\n\n    <section>\n        <title>Open Licenses</title>\n\n        <p>Copyright allows an author to place a license on their work, granting others greater freedoms, sometimes along with certain specific obligations.  So it is important to understand that copyright allows an author or publisher to be very restrictive, and it also allows an author or publisher to be less restrictive.  A license makes these less restrictive terms explicit, and the ability to control these terms is made possible by copyright.</p>\n\n        <p>Generally an open license allows unlimited copying.  It often allows the creation of derivative works, and the mixing of material from a variety of openly licensed documents.  A <term>viral license</term> obliges the author of a derivative work to grant the same license to the derivative work, rather than asserting more restrictive terms.  The licenses are usually perpetual, so they do not expire at a fixed term.</p>\n\n        <p>It is easy to get distracted by legal jargon, obtuse arguments, and misunderstandings.  We view an open license as statement of intent.  The work is free to use forever.  It will not go out of print.  If you send the author a correction, suggestion, or contribution, it can be incorporated and enjoyed by others freely.  And should an author lose interest in a project, or become unable to continue working on it, another individual may take it up and continue to maintain it.</p>\n    </section>\n\n    <section>\n        <title>Creative Commons Licenses</title>\n\n        <p>We describe the Creative Commons (<init>CC</init>) licenses first, since they have various options, which are a convenient way to compartmentalize and describe the features of other open licenses.  They are known by abbreviations, so a license might be shortened to something like just <c>CC BY-SA</c>.</p>\n\n        <list>\n            <title>Creative Commons Options</title>\n            <dl>\n                <li>\n                    <title>Creative Commons, <c>CC</c></title>\n                    <p>All Creative Commons licenses allows unlimited copying, forever.  Unless restricted, derivative works are allowed with no obligation.</p>\n                </li>\n\n                <li>\n                    <title>Attribution, <c>BY</c></title>\n                    <p>A derivative work must make clear the contribution of the original author.</p>\n                </li>\n\n                <li>\n                    <title>Share Alike, <c>SA</c></title>\n                    <p>A derivative work must be licensed with the same license as the original.</p>\n                </li>\n\n                <li>\n                    <title>Non-Commercial, <c>NC</c></title>\n                    <p>Bans commercial uses.  (Without this clause an open license would allow the sale of copies.)</p>\n                </li>\n\n                <li>\n                    <title>No Derivatives, <c>ND</c></title>\n                    <p>Derivative works are not allowed.</p>\n                </li>\n            </dl>\n        </list>\n\n        <paragraphs>\n            <title>Source versus Output</title>\n\n            <p>Creative Commons licenses are designed for a variety of media, and so are very popular.  For example, images are often licensed with a Creative Commons license.</p>\n\n            <p>However, consider the case of a document distributed as a <init>PDF</init> which has been created from source, such as <pretext /> or <latex /> or Markdown.  An author may put a <c>CC BY-SA</c> license on the <init>PDF</init> while retaining traditional copyright on the source file(s).  While the license allows modification, how practical is it to modify a <init>PDF</init>?  Worse, we have seen this situation for projects described as <q>open source.</q>  This explains our use sometimes of the term <q>openly licensed content.</q></p>\n\n            <p>If you are serious about your project being open source, and you want to send that signal to your readers, then mark your output with a <init>CC</init> license <em>and</em> mark your source files as also having the same <init>CC</init> license.  This is usually accomplished by a statement at the top of each source file asserting copyright and then stating the license.  Or this statement can point to a top-level text file, often named <c>COPYING</c> or <c>LICENSE</c>, with more precise license information.  See the <pretext /> distribution for examples using the <init>GPL</init> software license.</p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Commercial Consideration</title>\n\n            <p>It is natural to consider that you have devoted considerable time and effort to your project, and with an open license you will now be donating it to the world to read for free.  So you might think, <q>Why should somebody else profit?</q>  Thus, the <c>NC</c> option is alluring.  But think about it for a minute.</p>\n\n            <p>Suppose a commercial publisher hires an experienced copy editor to go through your book, correcting errors and tightening the prose.  Then the publisher prints the improved version of your book in a nice hardback version, and sells the book for $250.  If you simply put the <c>BY-SA</c> options on your license, that publisher is obligated to (a) give you credit for authoring the original version of the book, and (b) make the copy-edited version available again with a <c>CC BY-SA</c> license.  Now there is a business opportunity for anybody in the world:  make a print-on-demand version of the copy-edited version, and sell it for $200.  Then it is a race to the bottom.  Eventually the price will come down to the cost of manufacturing, plus some small compensation for managing the relationship with a print-on-demand service <xref ref=\"print-on-demand\" />.  Just how much profit potential is there really available for others?</p>\n\n            <p>We assume you have written a book because you have something to say, and chosen an open license because you want to be read.  If you do place an <c>NC</c> option on your <init>CC</init> license, then you have made it impossible for anybody else to help you distribute your book in physical forms.  A <c>CC BY-SA</c> license already makes your work unattractive to a commercial publisher who wants to charge an unreasonable price, and adding an <c>NC</c> clause simply chokes off some distribution options, limiting the reach of your work.</p>\n\n            <p>This discussion is meant to explain why we call it the <q>CC-NC mistake.</q></p>\n        </paragraphs>\n\n        <paragraphs>\n            <title>Derivative Works</title>\n\n            <p>Will your monograph on the reptiles of the Mongolian steppes ever become a screenplay?  As exciting as the topic is to you, we think Hollywood feels otherwise.  An <c>ND</c> option probably makes little sense for scholarly works.  An conversely, if you get hit by a pie truck tomorrow, it will be a lot easier for an enthusiastic reader to take over custody and maintenance of your project, and they will be <em>required</em> to continue with the same license if you have employed the <c>SA</c> option.</p>\n        </paragraphs>\n\n        <p>So in <pretext /> you can go<cd>\n            <cline>&lt;frontmatter&gt;</cline>\n            <cline>  &lt;colophon&gt;</cline>\n            <cline>    &lt;copyright&gt;</cline>\n            <cline>      &lt;holder&gt;Steve Jobs&lt;/holder&gt;</cline>\n            <cline>      &lt;year&gt;1984&lt;/year&gt;</cline>\n            <cline>      &lt;minilicense&gt;Creative Commons BY-SA&lt;/minilicense&gt;</cline>\n            <cline>    &lt;/copyright&gt;</cline>\n            <cline>  &lt;/colophon&gt;</cline>\n            <cline>&lt;/frontmatter&gt;</cline>\n        </cd>for a <init>CC</init> license with the Attribution and Share-Alike options.  If it was not obvious already, this is our recommendation for scholarly work if you choose to use a Creative Commons license.  This is an example of what is known as a <term>copyleft</term> license.</p>\n    </section>\n\n    <section>\n        <title><acro>GNU</acro> Free Documentation License</title>\n\n        <p>The <acro>GNU</acro> Free Documentation License (<init>GFDL</init>) is a license designed for documentation of open source computer programs licensed by the <acro>GNU</acro> Public License (<init>GPL</init>).  However, it explicitly mentions textbooks as one possible use.  (<acro>GNU</acro> is a recursive acronym for <q><acro>GNU</acro>'s Not Unix</q> and is the software project that originally built all the utilities which complement the Linux Kernel to make up an operating system.)</p>\n\n        <p>The <init>GFDL</init> is similar to a <c>CC BY-SA</c> license.  It allows unlimited copying, forever.  Modified versions that are distributed must acknowledge the original contributions and must also carry a <init>GFDL</init> license.  So this is a viral license, always.  And another example of copyleft.</p>\n\n        <p>However, the <init>GFDL</init> does not employ options like a Creative Commons license.  More importantly, the <init>GFDL</init> is very explicit about source (<q>transparent</q> copies) and derived output (<q>opaque</q> copies), and the license applies to both versions.  So the <init>GFDL</init> would say <pretext /> source is transparent, and a resulting <init>PDF</init> is opaque, and the license largely treats them identically.</p>\n\n        <p>Because the <init>GFDL</init> has the essential characteristics of <c>CC BY-SA</c>, and is so explicit about simultaneously licensing document source authored with a markup language along with output formats, it is our choice for textbook projects.</p>\n\n        <p>So in <pretext /> we might go something like<cd>\n            <cline>&lt;frontmatter&gt;</cline>\n            <cline>  &lt;colophon&gt;</cline>\n            <cline>    &lt;copyright&gt;</cline>\n            <cline>      &lt;holder&gt;Richard Stallman&lt;/holder&gt;</cline>\n            <cline>      &lt;year&gt;1985&lt;/year&gt;</cline>\n            <cline>      &lt;minilicense&gt;GNU Free Documentation License&lt;/minilicense&gt;</cline>\n            <cline>    &lt;/copyright&gt;</cline>\n            <cline>  &lt;/colophon&gt;</cline>\n            <cline>&lt;/frontmatter&gt;</cline>\n        </cd>The <init>GFDL</init> is also explicit about including the complete license with your document.  You can find various places a version formatted for inclusion in a <pretext /> project, including as part of the source for this document.</p>\n    </section>\n\n    <section>\n        <title>Public Domain</title>\n\n        <p>Stating that your work is in the <term>public domain</term> basically means you relinquish all the rights you receive via your automatic copyright.  So it is a very different situation from using copyright to provide an open license.  Creative Commons uses <c>CC0</c>, <q>No Rights Reserved</q> to indicate this choice.</p>\n    </section>\n\n    <section>\n        <title>Remixing and License Compatibility</title>\n\n        <p>It is popular to describe the potential of remixing parts of open educational resources.  For example, a literature professor might collect a variety of openly licensed poems into a reader for students in a course.  When the licenses are viral, and different, there arises the problem of what license to put on the collection.  Worse, one license might prohibit commercial uses, and another allow it, meaning the licenses are incompatible.</p>\n\n        <p>So some thought should go into the choice of a license when the work has the very real potential to be included in another, such as would be the case with a photograph.  One solution is to provide more than one license (nothing about copyright prohibits this).  Another solution is to avoid licenses with overly restrictive terms, such as restricting commercial use or derivative works.</p>\n\n        <p>Remember too, that in addition to multiple licenses, as the copyright holder you may offer your work to another project on different terms.  So another author might ask if a chapter of your work may be included in their project, which might use a different license than yours (more or less restrictive), and yu can grant permission for that use under that license.  Now there are two versions of your chapter, which could diverge over time if derivatives are allowed, available to others on different terms.</p>\n\n        <p>For mathematics books, we do not concern ourselves too much with the potential for remixing.  Notation and dependencies make it hard to collect parts of various textbooks and assemble them into something new (and coherent).</p>\n\n        <p>Creative Commons maintains a matrix showing compatibility between their own licenses at their <init>FAQ</init> question, <url href=\"https://creativecommons.org/faq/#can-i-combine-material-under-different-creative-commons-licenses-in-my-work\" visual=\"creativecommons.org/faq/#can-i-combine-material-under-different-creative-commons-licenses-in-my-work\">Can I combine material under different Creative Commons licenses in my work?</url>, illustrating just how complicated this can become.</p>\n\n        <p>Finally, recognize that you can begin with a restrictive license and as you become more comfortable with the idea, change it to a more liberal license that applies to the work at the time of the change.  Further, you can always change your license to a more restrictive version, but invariably, you cannot revoke an open license once granted.  You could even stop offering an open license all together, and return to traditional copyright as you continue to improve your document.  But the version that existed when you made that decision is still available for anyone to use, and possibly improve, independent of your own closed version.</p>\n\n        <p>After a while, you realize that openly licensing your writing project gives it an independence and freedom all of its own.  It seems to be owned by everybody, and by nobody<mdash />at the same time.</p>\n    </section>\n\n    <section>\n        <title>A Final Comment</title>\n\n        <p>These discussions remind us of a <url href=\"http://www.let.rug.nl/usa/presidents/thomas-jefferson/letters-of-thomas-jefferson/jefl220.php\" visual=\"www.let.rug.nl/usa/presidents/thomas-jefferson/letters-of-thomas-jefferson/jefl220.php\">letter by Thomas Jefferson</url>, the principal author of the United States' <pubtitle>Declaration of Independence</pubtitle>, writing about another monoply granted by governments<mdash />patents.</p>\n\n        <blockquote>\n            <p>If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which an individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of every one, and the receiver cannot dispossess himself of it. Its peculiar character, too, is that no one possesses the less, because every other possesses the whole of it. He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me. That ideas should freely spread from one to another over the globe, for the moral and mutual instruction of man, and improvement of his condition, seems to have been peculiarly and benevolently designed by nature, when she made them, like fire, expansible over all space, without lessening their density in any point, and like the air in which we breathe, move, and have our physical being, incapable of confinement or exclusive appropriation.</p>\n            <attribution>\n                <line>Thomas Jefferson</line>\n                <line>Letter to Isaac McPherson</line>\n                <line>August 13, 1813</line>\n            </attribution>\n        </blockquote>\n    </section>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/pdf-print.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"pdf-print\">\n    <title>Conversion to PDF and Print</title>\n    <idx><h>print option</h><h>LaTeX, PDF</h></idx>\n    <idx><h>electronic option</h><h>LaTeX, PDF</h></idx>\n    <idx><h>LaTeX</h><h>print option</h></idx>\n    <idx><h>LaTeX</h><h>electronic option</h></idx>\n    <idx><h>PDF</h><h>print option</h></idx>\n    <idx><h>PDF</h><h>electronic option</h></idx>\n\n    <introduction>\n        <p>This chapter describes ways a publisher can adjust the presentation of <pretext/> content for a print format, or an electronic facsimile (i.e. <init>PDF</init>).</p>\n    </introduction>\n\n    <section xml:id=\"electronic-or-print\">\n        <title>Electronic versus Print</title>\n\n        <p>The stylesheet <c>pretext-latex.xsl</c> can produce two very similar outputs.  Each is a file in <latex/> syntax, which can be converted to a <init>PDF</init> with a <latex/> executable (<q>engine</q>).  However, there are two purposes for such a <init>PDF</init>.  The first is a document which is meant to be read on a screen.  We call this an <term>electronic PDF</term>.  The second is meant to be printed as a physical book, so it would be the file you provide to a copy shop, campus bookstore, or print-on-demand service (see <xref ref=\"print-on-demand\"/>).  We call this a <term>print PDF</term>.  So as you read this, keep in mind that the <latex/> conversion is really two-converters-in-one.</p>\n\n        <p>To illustrate the difference, an electronic <init>PDF</init> will contain cross-references that are active, and colored to be obvious to the reader.  For the print <init>PDF</init> the same cross-reference will be black, inactive, and by default contain the page number of the target.  Another difference is the print <init>PDF</init> will include trailing parentheticals with the content of <attr>visual</attr> when using <tag>url</tag>.  This allows readers of the print version to visit a <init>URL</init> that has clickable text in other formats.</p>\n\n        <p>A wide <tag>figure</tag>, <tag>table</tag>, <tag>list</tag>, or <tag>listing</tag> will be presented horizontally by default, but including a <attr>landscape</attr> attribute whose value is <c>yes</c> will rotate these blocks by 90<degree/> in <em>print PDF</em> output (only) to take advantage of the full page height.  This is presently only supported by images given by a <attr>source</attr> and with an extension provided in the filename.</p>\n\n        <p>The publication file entry <c>latex/@print</c> controls the selection of the two output modes of this single stylesheet.  The default is <c>no</c> for the electronic version, and <c>yes</c> will change to the print version.  See <xref ref=\"latex-print-options\"/> for the specifics of this entry.</p>\n\n        <p>In this chapter, we describe both of these two conversions together, since they are only slightly dissimilar.</p>\n    </section>\n\n    <section xml:id=\"traditional-publishing\">\n        <title>Traditional Publishing</title>\n\n        <p>Suppose that you have engaged a publisher to help you manufacture a physical copy of your book or research article.  Publishers vary greatly in their expectations for what you provide to them.  (And maybe you are your own publisher, see <xref ref=\"print-on-demand\"/>.)</p>\n\n        <p>If your publisher wants to run with <term>camera-ready copy</term> from you as a <init>PDF</init>, you should be in good shape.  With the print option (versus electronic, see <xref ref=\"electronic-or-print\"/>) and a bit of effort to control widows, orphans, and figure placement, you should be able to produce something very good by yourself.</p>\n\n        <p>In mathematics, computer science, physics, or economics, a publisher might want to work from your <latex/> files, which they will assume you have written from scratch.  And they may expect to be able to swap in their house class or style file to achieve the look they want.  A <pretext/> <latex/> file will look a bit unusual, see <xref ref=\"latex-file\"/>.  On 2022-11-22 we have a report of a very extensive <url href=\"https://arxiv.org/abs/2211.11671\">research article</url> written in <pretext/> and uploaded to the <url href=\"https://arxiv.org/\">arXiv</url> preprint server, where it was successfully processed by <c>pdflatex</c> on the server, with only minimal hand-edits to the intermediate <latex/> file.  We can always improve in this area, so we welcome reports, good and bad, about the robustness of our <latex/> output when delivered to publishers.</p>\n    </section>\n\n    <section xml:id=\"print-justification\">\n        <title>Text Block Alignment</title>\n\n        <p><latex/> is engineered around placing boxes on the page.  Characters in boxes are built up to be words, then words in boxes become lines, and then lines in boxes become pages.  Or something close to that.  As a consequence <latex/> excels at right-justified text.  For this reason, and also because we think it looks more like a commercial published book and therefore more professional, right-justified text is the default.  If your opinions on this come from experience with some other word processor, keep an open mind.  Note too, that paradoxically, sometimes a ragged-right alignment can lead to greater amounts of hyphenation.</p>\n\n        <p>Similarly, <latex/> can make the bottom of the text block <em>always</em> land at exactly the same place.  This is especially pleasing if you are targeting two-sided printing, since you can have the two text blocks on either side of a single piece of paper match up <em>exactly</em>.  But this comes at a cost<mdash/>sometimes a page can have huge gaps between paragraphs just to place the bottom edge of the last paragraph at the bottom of the space meant for the text blocks.  Further, <latex/> defaults to a flush bottom or ragged bottom, depending on if the document is a book or an article, or if it is one-sided or two-sided.  Instead, we default to a ragged bottom for better out-of-the-box formatting, with an option to elect a flush bottom when you understand the risks and can watch out for them.</p>\n\n        <p>See details on specifying these options at <xref ref=\"latex-page-options\"/>.  See <xref ref=\"styling-justification\"/> for greater control over some aspects of right-justified text and also read about justified text in <xref ref=\"topic-accessibility\"/>.</p>\n    </section>\n\n    <section xml:id=\"print-sides\">\n        <title>One-Sided or Two-Sided</title>\n\n        <p>An electronic <init>PDF</init> will default to page layout appropriate for a document printed single-sided, which makes the most sense for a document that may not ever be printed, or which possibly might be printed on a personal printer.</p>\n\n        <p>A print <init>PDF</init> will default to page layout appropriate for a document printed two-sided, which makes the most sense for a document that may be sent to a print-on-demand service or printed on a printer that will print on both sides of a sheet of paper.</p>\n\n        <p>These defaults may be overridden with the publisher entry <c>latex/@sides</c> switch with values <c>one</c> and <c>two</c>.  See <xref ref=\"latex-sides-options\"/> for the specifics of this entry.</p>\n\n        <p>One-sided layout will default to symmetric left/right margins, and page headers with the page numbers <em>always</em> placed in the upper-right corner as part of default page headers.  There will be no blank pages between chapters of a book.</p>\n\n        <p>Two-sided layout will have asymmetric margins with the ratio of inner (adjacent to spine) to outer at <c>2:3</c>.  You need some extra space at the spine to compensate for the binding, but when a book is open, the two pages are separated by two inner margins, so these do not need to be as wide as the outer margin to give some distance between the pages.  And readers will want more space to write in the outer margins, perhaps providing simple proofs of important results.  (This ratio may be changed with the <c>hmarginratio</c> key of the <c>geometry</c> package.)  Page headers will have page numbers on the outside of the page, with odd numbers on the right-side page.  Chapters will possibly have a blank page between them, so they begin on a right/odd page.  Behavior is similar in the front matter and back matter.</p>\n    </section>\n\n    <section xml:id=\"font-size\">\n        <title>Font Size</title>\n\n        <p>The overall (document-wide) font size may be given as one of eight different values, ranging from 8 points to 20 points.  The default is 10 points.  These values influence multiple settings within <latex/> itself, and <pretext/> will also adjust some default values, such as the line-width (in order to preserve an optimal number of characters per line for reading ease).  See <xref ref=\"latex-font-size-options\"/> for precise details.</p>\n    </section>\n\n    <section xml:id=\"page-shape\">\n        <title>Page Shape</title>\n\n        <p>The conversion to <latex/> defaults to US Letter paper with reasonable margins.  However, the <latex/> <url href=\"https://ctan.org/pkg/geometry\" visual=\"ctan.org/pkg/geometry\"><c>geometry</c> package</url> has numerous options for paper sizes and margins.  The publication file can be used to insert any configuration the package supports.  See <xref ref=\"latex-page-options\"/> for the exact syntax.</p>\n\n        <p>Note that if you change the paper size, you may want to change the text width computed by <pretext/>, and the more changes you make, the more default settings you may need to adjust.  However, if you are producing your book for print-on-demand (<xref ref=\"print-on-demand\"/>) getting the page size and margins just right is a key step of the process.</p>\n\n        <p>Note also that when you use the <tag>geometry</tag> element of the publication file, the <em>content</em> of the element (text between the opening and closing tags) will be duplicated <em>exactly</em> into a <latex/> source file.  Being careless here is a good explanation for the <latex/> compilation step to fail.</p>\n\n        <p>Here is an example:<cd>\n            <cline>&lt;latex&gt;</cline>\n            <cline>  &lt;page&gt;</cline>\n            <cline>    &lt;geometry&gt;a4paper,total={16cm,25cm}&lt;/geometry&gt;</cline>\n            <cline>  &lt;/page&gt;</cline>\n            <cline>&lt;/latex&gt;</cline>\n        </cd>twhich will produce in the <latex/> output<cd>\n            <cline>\\geometry{a4paper,total={16cm,25cm}}</cline>\n        </cd></p>\n\n        <p>An electronic <init>PDF</init> may be printed on physical paper, but perhaps you want to make a version that works well on a portable device that naturally supports a portrait orientation, such as an Android tablet, an iPad, a Kindle (device or application), smart phone, Sony Digital Paper, or a ReMarkable tablet.  Aspect ratios vary across these devices, but once you settle on a target ratio, we have had good luck with the following algorithm and parameters:<ol>\n            <li>Specify 10 point text</li>\n            <li>Text width of about 4.5 inches</li>\n            <li>Add quarter-inch left/right margins to compute text width</li>\n            <li>Use aspect ratio to compute an overall height (about 6.5 inches)</li>\n            <li>Subtract quarter-inch top and bottom margins to obtain text height</li>\n        </ol>Then you can provide the <c>geometry</c> package the overall size as the <c>papersize</c> and the text width and text height as the <c>total</c> size of the body, resulting in equal (tight) margins all around, and good use of limited screen real estate.  These parameters create a <init>PDF</init> that is very legible on a larger smart phone, and for fine detail, rotating the device to landscape works well.  Really.</p>\n\n        <p>Suppose you are a publisher, or an author who is also your publisher, and you wish to manufacture a paperback copy of your book in a 6-inch wide by 9-inch tall version.  It is unlikely your printer has paper of this size.  Use the <c>geometry</c> option above to specify the logical size of the paper for your book and then set margins, etc. to determine exactly how the text block sits on the page.  Then there is a <attr>crop-marks</attr> option available though the publication file.  You set it to a paper size describing the paper in your printer, likely <c>letter</c> (US) or <c>a4</c> (Europe).  Then your logical page will be centered on the physical page, and indications in each corner will describe the boundaries of the page.</p>\n\n        <p>To see this in action, you need to explicity set a smaller page size.  So the value of the <c>geometry</c> could be set to<cd>\n            <cline>paperwidth=6in,paperheight=9in,total={5in,7in}</cline>\n        </cd>Do not forget to turn off any page-scaling in your printer configuration before printing onto paper.  See <xref ref=\"latex-page-options\"/> for the exact syntax of how to enable crop marks.</p>\n\n        <p>Crop marks may be requested by a publisher, when it is understood that you are providing camera-ready copy.  Or you may find it useful for visualizing how your text and margins will look at a smaller page size.  The <c>crop</c> package has other useful options, such as framing the entire logical page.  You can hand-edit these into your <latex/> file, or make a feature request.</p>\n\n        <note xml:id=\"best-practice-too-much-text\">\n            <title>Avoid Too Much Text on a Printed Page</title>\n            <p>With freedom comes responsibility.  Resist the temptation to pack in as much text on the page as you can.  <pretext/> varies the width of the text in reaction to the font size and is already very close to the maximum number of characters per line for comfortable reading by humans.  Similarly, very narrow margins can be uncomfortable for reading (or holding a printed book).</p>\n        </note>\n    </section>\n\n    <section xml:id=\"page-breaks\">\n        <title>Page Breaks</title>\n        <p>\n            A publisher can insert page breaks beyond those that <latex/> creates automatically.\n            This might relieve some awkwardness that <latex/>'s otherwise excellent page breaking\n            failed to relieve. The publisher should identify each source element for which they\n            would like a page break to happen <em>before</em> that element appears in output. For\n            each such element, there must be an <attr>xml:id</attr>. Bring these <attr>xml:id</attr>\n            values together in the publication file, using whitespace to separate them. For example:\n            <cd>\n                <cline>&lt;latex&gt;</cline>\n                <cline>  &lt;insertions pagebreaks=\"xmlid1 xmlid2 ...\"&gt;</cline>\n                <cline>&lt;/latex&gt;</cline>\n            </cd>\n            You may use multiple <tag>insertions</tag> elements to help organize page breaks by\n            chapter, section, etc. For example:\n            <cd>\n                <cline>&lt;latex&gt;</cline>\n                <cline>  &lt;!-- chapter 1 page breaks --&gt;</cline>\n                <cline>  &lt;insertions pagebreaks=\"xmlid1 xmlid2\"&gt;</cline>\n                <cline>  &lt;!-- chapter 2 page breaks --&gt;</cline>\n                <cline>  &lt;insertions pagebreaks=\"xmlid3 xmlid4\"&gt;</cline>\n                <cline>&lt;/latex&gt;</cline>\n            </cd>\n            At time of writing, the allowable elements which may be preceded by a page break using\n            this feature are divisions, numbered blocks, and the following unnumbered elements:\n            <tag>answer</tag>, <tag>aside</tag>, <tag>audio</tag>, <tag>biographical</tag>,\n            <tag>assemblage</tag>, <tag>blokquote</tag>, <tag>console</tag> (when not a child of a\n            <tag>sidebyside</tag>), <tag>hint</tag>, <tag>historical</tag>, <tag>image</tag> (when\n            not a child of a <tag>sidebyside</tag>), <tag>interactive</tag>, <tag>list-of</tag>,\n            <tag>p</tag>, <tag>paragraphs</tag>, <tag>poem</tag>, <tag>pre</tag>, <tag>program</tag>\n            (when not a child of a <tag>sidebyside</tag>), <tag>sage</tag>, <tag>sbsgroup</tag>,\n            <tag>sidebyside</tag> (when not a child of a <tag>sidebyside</tag>), <tag>solution</tag>,\n            <tag>tabular</tag> (when not a child of a <tag>sidebyside</tag>), and <tag>video</tag>.\n        </p>\n        <p>\n            Note that over time, the precise size of many things in your PDF output may change. This\n            may be because of an underlying change in how <pretext/> builds PDFs. It may be because\n            of change in the <latex/> distribution. And of course, it may be because the source\n            content and publisher specifications (like font) change. So all manually specified page\n            breaks may need to be monitored over the life of a project.\n        </p>\n        <p>\n            See <xref ref=\"latex-insertions-pagebreaks-options\"/>.\n        </p>\n    </section>\n\n    <section xml:id=\"latex-asymptote-links\">\n        <title>Asymptote Links</title>\n\n        <p>An image described by an <tag>asymptote</tag> element will produce standalone <init>HTML</init> files as part of the convversion to <init>HTML</init> output.  For 3D images, these are interactive (rotate, scale).  If you set a base <init>URL</init> for your project (<xref ref=\"online-base-url\"/>) and request this feature through a publisher switch, then each image in an electronic <init>PDF</init> (<xref ref=\"electronic-or-print\"/>) will be a link to the <init>HTML</init> version. See <xref ref=\"latex-asymptote-link-options\"/> for the specifics of this entry.  This feature is off by default.</p>\n    </section>\n\n    <section xml:id=\"latex-xref-page-numbers\">\n        <title>Cross-References</title>\n\n        <p>In an electronic <init>PDF</init>, cross-references will be hyperlinks that take the reader to the target.  Color is used to make them visible, in addition to whatever indication a <init>PDF</init> viewer will provide on hover.  The publication file entry controlling the use of numbers in cross-references (<xref ref=\"latex-xref-page-number-options\"/>) is by default <c>no</c> in this case, but may be set to <c>yes</c> to include the page number of the target in the cross-reference.</p>\n\n        <p>In a print <init>PDF</init>, cross-references will not be active hyperlinks and will be the same color as the adjoining text.  The publication file entry controlling the use of numbers in cross-references (<xref ref=\"latex-xref-page-number-options\"/>) is by default <c>yes</c> in this case, but may be set to <c>no</c> to not include the page number of the target in the cross-reference.</p>\n\n        <p>See <xref ref=\"latex-xref-page-number-options\"/> for the syntax of specifying the use of page numbers in cross-references.</p>\n\n        <p>For accessibility, an underline can be added beneath all hyperlinks (cross-references and <init>URL</init>s) to supplement color as a visual indicator.  See <xref ref=\"latex-link-highlight-options\"/>.</p>\n    </section>\n\n    <section xml:id=\"latex-page-fidelity\">\n        <title>Page Number Fidelity</title>\n\n        <p>If you produce a <q>print</q> <init>PDF</init>, perhaps as a precursor to producing a physical book, the page numbers may be important to you and your readers.  Thus, you may desire that an <q>electronic</q> <init>PDF</init> have faithful page numbers.  And together we might consider this a canonical numbering of the pages of your project.  (Long-term we hope to migrate these page numbers into other formats, such as braille.  See <url href=\"https://github.com/PreTeXtBook/pretext/issues/1020\">GitHub #1020</url>.)  Fundamentally, a PDF destined to become a physical book will be built with <q>two-sided</q> pages, while an electronic PDF will have <q>one-sided</q> pages.  The two-sided version will often leave a page blank at the end of a division (e.g. parts or chapters), so a subsequent division begins (<q>opens</q>) on an odd-numbered page, also known as a <term>recto</term> page.  We have publisher options for print versus electronic (<xref ref=\"latex-print-options\"/>), which subsequently provide (different) defaults for <q>sidedness</q> (<xref ref=\"latex-sides-options\"/>).</p>\n\n        <p>Suppose you wish to have your electronic (one-sided) PDF have identical pages (i.e.<nbsp/>identical content) with identical page numbers as your print (two-sided) PDF?</p>\n\n        <p>First decision point is: what do your cross-references look like?  If every cross-reference looks like <c>Section 5.2</c>, then presumably a reader of print (or embossed braille) can locate the target.  But if you have used a cross-reference that looks like <c>Fermat's Theorem</c> then you have exhibited a preference for electronic formats at the expense of readers of physical formats.  To remedy this, we allow for the automatic insertion of page numbers as part of every cross-reference (see <xref ref=\"latex-xref-page-number-options\"/>).  But all these page numbers will increase the length of your physical version and pages will never match up.  So that your cross-references are workable in all output formats, or you should elect to have page numbers in every cross-reference, for each PDF produced.</p>\n\n        <p>Now a further complication is that a two-sided version will always start some larger divisions (parts, chapters, appendices) on an odd-numbered page, the <term>recto</term> page (versus the <term>verso</term> page).  This sometimes requires an additional blank page on the verso side.  But a one-sided version has no need for this practice, so the two-sided version will eventually have different (larger) page numbers on the identical content.  The solution is to use a publisher option, which is only effective when a one-sided version is produced, that creates these blank verso pages or skips the page numbering ahead by one when there would have been a blank page.  The result is that major divisions will always open on an odd-numbered page, matching the two-sided version.  See <xref ref=\"latex-open-odd-options\"/> for details.  (Note that this is not the default and so must be a conscious choice.)</p>\n    </section>\n\n    <section>\n        <title>Nested Lists</title>\n\n        <p><latex /> can fail if lists are nested too deeply.  Maximums may be up to four nested ordered lists, and up to six overall (mixing in unordered lists).  If you hit these limits, ask yourself if your situation is really that complicated, or ask us to consider a feature request adding a technical fix.</p>\n    </section>\n\n    <section>\n        <title>Multi-Column List Order</title>\n\n        <p>Lists with several columns are rendered in column-major order, as of 2018-02-28.  In other words, the first list items (<tag>li</tag>) in your source will populate the first column.</p>\n    </section>\n\n    <section>\n        <title>Footnotes</title>\n\n        <p>Footnotes are the farthest thing imaginable from structured authoring.  You can put them anywhere, and conceivably they can contain anything.  But they do work great in <init>HTML</init> presentations as knowls.  However, we do not let the tail wag the dog, and so have to make some <em>compromises</em> for footnotes output in print formats.<ul>\n            <li>As of 2019-01-04 we are fairly restrictive about content.  No paragraphs, more like a few sentences, max.  If you have more content, consider the <tag>aside</tag> element, and send feature requests for that.</li>\n            <li>Many blocks, such as <tag>example</tag> and <tag>remark</tag>, are implemented with the <latex/> <c>tcolorbox</c> package, to make styling and layout much more capable and reliable.  But footnotes get trapped within these boxes and render at the end of the box (not the bottom of the page) and have a different scheme for the marks (letters, not numbers).  We have mitigated much of this behavior, but the cost is that these footnotes are delayed until the box finishes.  So if you have a 4-page example, and use a footnote early, it may appear at the bottom of a page that is 3 or 4 pages away.</li>\n            <li>Another consequence of the above is that hyperlinks in electronic <init>PDF</init>s, from the mark to the text, need to be disabled (they will never work within a <c>tcolorbox</c>).  Cross-references to a footmark's text will still be active in an electronic <init>PDF</init>.</li>\n        </ul></p>\n    </section>\n\n    <section xml:id=\"latex-cover-images\">\n        <title>Cover Images</title>\n        <idx><h>PDF</h><h>covers</h></idx>\n        <idx><h>LaTeX</h><h>covers</h></idx>\n        <idx><h>covers</h><h>PDF</h></idx>\n        <idx><h>covers</h><h>LaTeX</h></idx>\n\n        <p>The publication file may be used to specify the filenames of a front-cover image and a back-cover image.  The image must be a single-page <init>PDF</init>, and it will be scaled to fit an entire page.  So it is your responsibility to supply an image which has the correct aspect ratio and sufficient resolution.  These are only supported for the <latex/> conversion.  See <xref ref=\"latex-covers-options\"/> for exact syntax.  Implementation is via the <latex/> <c>pdfpages</c> package.</p>\n\n        <p>This is meant to help you create a professional electronic <init>PDF</init>.  A print-on-demand service (<xref ref=\"print-on-demand\"/>) will likely want a standalone image (possibly with the front and back, plus a spine, all rolled into one <term>wrap</term> image).  So build your <em>real</em> cover images first (<xref ref=\"cover-design\"/>), and then modify them for this use.</p>\n    </section>\n\n    <section xml:id=\"latex-icons\">\n        <title>Icons</title>\n\n        <p>The <tag>icon</tag> element is built around the <term>Font Awesome 5</term> font collection.  The <latex/> <c>fontawesome5</c> package contains all the necessary font files (for use with both <c>pdflatex</c> and <c>xelatex</c>), and a style file that interfaces, in a semi-elaborate way, with the font files.  If you have installed this <latex/> package, and the fonts still seem unavailable, figure out how to adjust your <latex/> setup or your system configuration.  Simply installing a font file, such as the more recent <term>Font Awesome 5</term> is not going to work.  See <xref ref=\"latex-fonts\"/> for more about fonts in <latex/>.</p>\n    </section>\n\n    <section xml:id=\"latex-index-style\">\n        <title>Index Style</title>\n\n        <p>Start at <xref ref=\"overview-index-notation\"/> to learn how to create an index.  The realization of the index is under the influence of the <latex/> <c>imakeidx</c> package, which results in certain stylistic choices, such as a two-column format.  It also means that any options supported by this package could be easily implemented as the result of a feature request.</p>\n\n        <p>Also, there can be significant differences between how <pretext/> implements the index for <init>HTML</init> and how the <c>imakeidx</c> package creates an index for <latex/>.  See <xref ref=\"online-index-style\"/> and <xref ref=\"indexing-guide\"/>.</p>\n    </section>\n\n    <section>\n        <title>Styling</title>\n        <idx><h>style</h><h>print</h></idx>\n\n        <p>Note that some of these switches are about <em>style</em>.  There are many more ways to influence the style of the <latex/> output, see <xref ref=\"latex-styles\"/>.</p>\n    </section>\n\n    <section xml:id=\"latex-file\">\n        <title><latex /> File</title>\n\n        <p>The <latex/> file created by <pretext/> will contain the majority of your content in a form that you could use it in a new standalone <latex/> document, in accordance with Principle <xref ref=\"principle-open\" text=\"global\"/>.  However some constructions which are not natural in <latex/>, such as a <tag>sidebyside</tag>, may be cumbersome to reuse.  We continue to improve and refine these situations, though.</p>\n\n        <p>Our philosophy is to create and use many new <latex/> environments, allowing styling and fine-tuning to occur in the preamble.  This makes the body look more like simple <latex/> and allows for much greater flexiblity in styling, along with greater reliability for successful <latex/> compilation.</p>\n\n        <p>The existence, variety, and quality of <latex/> packages changes continuously.  We can, and will, swap out some packages for replacements, as needed or desirable.  This is to your advantage, as you are absolved of the need to evaluate competing packages, and to insure that they do not clash with each other.  So resist the temptation to modify the <latex/> output significantly prior to compilation, as it will inevitably lead to frustration.  The <latex/> file is a means to an end<mdash/>it allows us to create a <init>PDF</init> with excellent typography, and especially for the demands of technical discplines, such as <acro>STEM</acro> and music.  It is meant to ephemeral, not archival.</p>\n\n        <p>If some other variety of <latex/> (or <tex/>) file is desired, a new conversion could be created.  Many of the more complicated aspects of any conversion are purposely isolated in the <c>pretext-common.xsl</c> file so that they can be easily re-purposed and there is consistency across output formats.</p>\n\n        <note xml:id=\"edit-latex\">\n            <title>Only Edit <latex/> Files Rarely</title>\n\n            <p>We want to stress that the <latex/> file created by various conversions is meant to be an <em>intermediate</em> format.  In other words, it is <em>ephemeral</em>.   We try to make it clean and organized, but it is not the <latex/> a human would write.  You might be able to recycle a paragraph or two in other documents you create without <pretext/>.  But it is not meant to be stable or archival, and no long-term use is supported in any way.  In other words, it is not a supported output format, beyond compiling to a <init>PDF</init> without errors.</p>\n\n            <p>Because of that, you may find it necessary to manually adjust a file to control widows or orphans, or maybe the placement of a graphics file, or similar adjustments.  Some of the most the common adjustments used by <pretext/> authors are inserting <c>\\newpage</c>, <c>\\noindent</c>, or <c>\\par</c> to avoid awkward transitions, or to remove an occasional <c>\\leavevmode</c>; consult a good <latex/> reference before making such changes, as effects later in the output may be unpredictable.</p>\n\n            <p>We view this as the final step before making a new edition, which might be a <init>PDF</init> that you submit to a print-on-demand service (<xref ref=\"print-on-demand\"/>).  So hand-editing might be an annual exercise, at the most frequent.  One way to keep track of larger number of edits over long periods of time is to write a script (in an appropriate language), which looks for unique strings before or after trouble spots and replaces the nearby content.  Another minimally invasive option is to keep a separate git branch of the <latex/> file which makes the desired changes, which can then be applied on those rare occasions it is necessary (ideally, with little rebasing needed).</p>\n        </note>\n    </section>\n\n    <section xml:id=\"latex-snapshot-record\">\n        <title>Snapshot Record</title>\n        <idx><h>LaTeX</h><h>snapshot</h></idx>\n\n        <p>We are careful about which <latex/> packages we use, trying to stick with well-established packages with active maintainers.  But it can be useful to have a record of <em>exactly</em> which packagees are in play, and better still, which versions of those packages are being used.  So you can use a publication entry to request loading the <url href=\"https://ctan.org/pkg/snapshot\"><c>snapshot</c></url> package, which will then automatically generate such a record into a <c>&lt;job&gt;.dep</c> file.  See <xref ref=\"latex-snapshot-record-options\"/> for details on electing this feature.</p>\n\n        <p>If you suspect some packages are not playing well with each other, this record might be helpful for debugging this (rare) situation.  It can also be useful if you wish to have a perfect archive of how some publication was produced.  See the package documentation for more on the format and use.</p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/print-on-demand.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"print-on-demand\">\n    <title>Print-On-Demand</title>\n    <idx>print-on-demand</idx>\n\n    <p>If you are both author and publisher, you may wish to make your book available in a physical form, but may be reluctant to purchase and store thousands of copies, or to take orders and arrange shipments.  Then <term>print-on-demand</term> might be the solution for you.</p>\n\n    <p>A print-on-demand service is a manufacturer and distributor of printed books, which are typically only printed once ordered, or in extremely small quantities.  They can provide many of the manufacturing and fulfillment services a traditional supplies.  Some provide services you pay for that will produce a cover, provide editorial services, or assist with marketing.</p>\n\n    <p>We list three such services below, but first describe some commonalities, pro and con.<dl width=\"narrow\">\n        <li>\n            <title>Updates</title>\n            <p>Generally, you provide a <init>PDF</init> of your text, and we have tried, with the print option, to make output that is amenable to this situation (see <xref ref=\"electronic-or-print\"/>).  A real advantage of print-on-demand is that you can usually update this <init>PDF</init> at any time, without much trouble.  You will need to decide how to indicate versions (or printings?) of your work.  Perhaps we will have tools and advice about this soon.</p>\n        </li>\n\n        <li>\n            <title>Covers</title>\n            <p>You may need to provide a cover, typically as a <init>PDF</init> meeting some exact specifications.  Though you may be able to choose a fairly generic look through a template or wizard.  Or pay to have one created for you.  See also <xref ref=\"latex-cover-images\"/> and <xref ref=\"cover-design\"/>.</p>\n        </li>\n\n        <li>\n            <title>Price</title>\n            <p>You may choose to sell at your cost, or you may wish to make a profit on each sale.  (Note: as copyright-holder you can do this, no matter what license you have chosen, review <xref ref=\"open-licenses\" />).  A 450-page hardcover book might be sold by a print-on-demand manufacturer to an online bookstore, including some profit for the manufacturer, for $23.  If you, as author, want $5 profit, and the online bookstore wants $7 for fulfillment, shipping, and profit, the cost to your reader is now $35.  In order for the online bookstore to give the appearance of discounting your book to $35, you may need to declare a suggested retail price of $49.95.  So pricing takes a bit of thought.  Or guesswork, since the discounting algorithm is not public.</p>\n\n            <p>Note in the above scenario, the print-on-demand manufacturer may sell you, the  publisher, small quantities at a better price, such as ten copies for $170, shipping included.</p>\n        </li>\n\n        <li>\n            <title><init>ISBN</init></title>\n            <idx><init>ISBN</init></idx>\n            <p>An <term>International Standard Book Number</term> is a unique identifier of books and necessary for others to distibute and sell your book.  See details for each manufacturer below.  Much like a domain name for your book's website (see <xref ref=\"web-hosting\" />), this may be something you wish to control and own, foregoing the convenience of someody else providing and owning it for you.</p>\n        </li>\n    </dl></p>\n\n    <p>In order of increasing professionalism and decreasing convenience, we describe three print-on-demand manufacturers we are familiar with, plus three others. Additions, corrections, updates, and alternatives are all welcome.<dl width=\"narrow\">\n\n        <li>\n            <title>Lulu.com</title>\n            <idx>Lulu.com</idx>\n            <p>This site caters to people making photo books for relatives, in addition to more serious projects.  Account setup may be trivial, an ISBN number may not even be needed, and you may have options for distribution beyond readers simply ordering direct from the site.  This might be a good choice for drafts you will use in your own classes, if having your university bookstore print copies is not a good alternative. (2017-11-25)</p>\n        </li>\n\n        <li>\n            <title>Kindle Direct Publishing</title>\n            <idx>Kindle Direct Publishing</idx>\n            <idx>Amazon.com</idx>\n\n            <p>Until early 2018, Kindle Direct Publishing (<init>KDP</init>) was a service known as CreateSpace.  Some of the information below refers to this predecessor.  (2021-04-21).</p>\n\n            <p>This company is owned by Amazon.com.  They manufacture and distribute serious books, in addition to music and film.  Distribution through Amazon is nearly automatic.  There is also <q>Expanded Distribution</q>, which starts to look more like Ingram (next).  If royalties are small, using direct deposit might be the most convenient (international sales all get converted to dollars for authors in the US).  (2017-11-25)</p>\n\n            <p>CreateSpace attempts to make sure you have the rights to your content.  So if they find your book freely available on the Internet, their <q>Content Validation Request Team</q> becomes suspicious and investigates.  This has caused a few authors a few headaches and delays in making their book available for sale, though all have been successful eventually.  (2018-03-06)</p>\n\n            <p>If you want to offer your project electronically for no cost, you may need to do an end run.  We have a report that you can put your project on <init>KDP</init> for a low price (e.g.<nbsp/>$1), then offer it on Apple's similar service for free, and then exercise a price match guarantee back on <init>KDP</init>.  Reports on this technique encouraged.  (2021-04-21)</p>\n        </li>\n\n        <li>\n            <title>Ingram Spark</title>\n            <idx>Lightning Source</idx>\n            <idx>IngramSpark</idx>\n            <idx>Ingram</idx>\n            <p>IngramSpark (formerly Lightning Source) is a division of Ingram, which is a very large printer, also providing services to major publishers.  Creating an account is not trivial, and you need to provide your own <init>ISBN</init> number.  In return, your book is available at Amazon.com and many other online bookstores automatically, and is in many ways indistinguishable from offerings of large commercial publishers.  There are also options for international distribution.  You can also control settings for discounts and returns.  (2018-03-06)</p>\n            <p>Current startup pricing for publishers is forty-nine dollars for either a print book, or print and e-book together.  A recent change seems to be that, like <init>KDP</init>, they will now provide a free <init>ISBN</init> if you don't have one; however, the free <init>ISBN</init> is only usable for as long as you continue to use IngramSpark. (2021-07-21)</p>\n        </li>\n\n        <li>\n            <title>LAD Custom Publishing</title>\n            <idx>LAD Custom Publishing</idx>\n            <p>LAD primarily helps faculty create course packets while remaining copyright compliant, so it has experience with openly licensed educational resources if you need print copies of <pretext/> titles without other print options.  In addition, the <url href=\"https://ladbookstore.com\" visual=\"ladbookstore.com\">LAD Bookstore</url> can be used to print and market your own text without overhead, though as with other solutions an ISBN is free only so long as you use LAD.  One particular advantage for some authors is you can communicate with representatives on the phone or via email, not just through an automated web form.  (2024-07-18)</p>\n        </li>\n\n        <li>\n            <title>Blurb</title>\n            <idx>Blurb</idx>\n            <p>Blurb specializes in photo books, and uses Ingram for printing.  Sizes are limited, and costs are more that the other services.  Direct experiences would be a welcome addition.  (2018-03-06)</p>\n        </li>\n\n        <li>\n            <title>Nook Press</title>\n            <idx>Nook Press</idx>\n            <p>Nook Press is a service of Barnes &amp; Noble, and books appear only through their online store.  We have no additional information, so direct experiences would be a welcome addition.  (2018-03-06)</p>\n        </li>\n\n    </dl></p>\n\n    <p>We currently have no good information about distributing <init>EPUB</init> or Kindle electronic versions for profit.  (2017-11-25).</p>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/production.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"production\">\n    <title>(*) Producing a Book</title>\n\n    <introduction>\n        <p>You have finished using <pretext /> to write a textbook, research monograph, laboratory manual, writer's handbook, or some other scholarly work, and you want to share it openly with students and other readers.  Good!  That's why we created <pretext />, and why we include this chapter.  There is more to do.</p>\n\n        <p>This chapter will try to distill our personal experience, along with many conversations with other authors confronting these same decisions.  But recognize there is a lot of <em>advice</em> here, and a bit of an attitude, simply for your consideration.  The decisions are yours.</p>\n\n        <aside>\n            <title>Open Source</title>\n            <p><pretext /> is open source <em>software</em>, but that places no restrictions on how you use output that <pretext /> creates (see <xref ref=\"principle-open-software\" />).  You are welcome to sell your copyright to a commercial publisher or university press.  But just once, here and now, we will encourage you to consider an open license (see <xref ref=\"open-licenses\" />) as a way of paying it forward.</p>\n        </aside>\n    </introduction>\n\n    <section>\n        <title>(*) Front Matter</title>\n        <p>TODO</p>\n    </section>\n\n    <section>\n        <title>(*) Landing Page</title>\n        <p>TODO</p>\n    </section>\n\n    <section>\n        <title>(*) Source</title>\n        <p>TODO</p>\n    </section>\n\n    <section>\n        <title>(*) Marketing</title>\n\n        <introduction>\n            <p>Didn't think about that one?  Write it, and they will come?  Not necessarily.  I have seen nice projects where authors make little extra effort to get the word out, and it shows.  With the Internet, effective promotion can be accomplished without much effort or expense.  And very soon your project can rise very high in search engine rankings.</p>\n        </introduction>\n\n        <subsection>\n            <title>(*) Social Media</title>\n        <p>TODO</p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Reference Sites</title>\n        <p>TODO</p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Analytics</title>\n        <p>TODO</p>\n        </subsection>\n\n        <subsection>\n            <title>(*) Discussion Groups</title>\n        <p>TODO</p>\n        </subsection>\n    </section>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/publication-file.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<!-- NB: This chapter is organized by the hierarchy -->\n<!-- of the publication file and then alphabetically  -->\n<!-- at each level of the tree                      -->\n\n<chapter xml:id=\"publication-file-reference\">\n    <title>Publication File Reference</title>\n\n    <introduction>\n        <p>This chapter is reference material for the <term>publication file</term>, whose employment is described in <xref ref=\"publication-file\"/>, where you can also find an explanation of the shorthand syntax used here to describe elements of this file.</p>\n    </introduction>\n\n    <section xml:id=\"publication-file-common\">\n        <title>Common Options</title>\n        <idx>common options</idx>\n        <idx><h>publisher options</h><h>common</h></idx>\n\n        <introduction>\n            <p>These are options that might affect several conversions, though the influence may vary from one conversion to the next.</p>\n        </introduction>\n\n        <subsection xml:id=\"common-chunking-options\">\n            <title>Common Chunking Option</title>\n            <idx><h>common option</h><h>chunking</h></idx>\n            <idx><h>chunking option</h><h>chunking</h></idx>\n\n            <p>Many outputs are produced as a collection of several files, others may only produce a single file.  A <term>chunk</term> is a generic, informal term for a portion of an output, typically a single file.  This is given as a level, see <xref ref=\"publisher-levels\"/> for more about levels.  The specification is in the attribute<cd>\n                <cline>/publication/common/chunking/@level</cline>\n            </cd>with a whole number as the value (generally 0 is allowed).  This is critical for the construction of <init>HTML</init> output, and ignored for <latex/> output.</p>\n        </subsection>\n\n        <subsection xml:id=\"common-toc-options\">\n            <title>Table of Contents Level Option</title>\n            <idx><h>common option</h><h>table of contents level</h></idx>\n            <idx><h>table of contents</h><h>level option</h></idx>\n\n            <p>The depth of the entries in a Table of Contents is given as a level, see <xref ref=\"publisher-levels\"/> for more about levels.  The specification is in the attribute<cd>\n                <cline>/publication/common/tableofcontents/@level</cline>\n            </cd>with a whole number as the value.  A value of 0 is used to indicate that no Table of Contents is desired.  Absent this setting, reasonable defaults are supplied, which can vary by conversion and document type.</p>\n        </subsection>\n\n        <subsection xml:id=\"common-exercise-visibility\">\n            <title>Exercise Component Visibility</title>\n            <idx><h>exercise</h><h>component visibility</h></idx>\n            <idx><h>exercise components</h><h>visibility</h></idx>\n\n            <p>An <tag>exercise</tag> can appear in four different locations: mixed in with paragraphs and blocks (<q>inline</q>), inside an <tag>exercises</tag> specialized division (<q>divisional</q>), inside a <tag>worksheet</tag> specialized division (<q>worksheet</q>), or inside a <tag>reading-questions</tag> specialized division (<q>reading</q>).  Also, a <tag>project</tag>, and similar (<q>project</q>), behaves in many ways like an <tag>exercise</tag>.  All of these elements (or their <tag>task</tag>) may have <tag>statement</tag>, <tag>hint</tag>, <tag>answer</tag>, and <tag>solution</tag> (<q>components</q>).</p>\n\n            <p>Where such exercises first appear (not, for example, in back-of-the-book solutions) publication switches can control the visibility of the components.  There are five elements, each with four attributes, which can take on the values of <c>yes</c> or <c>no</c>.  The default is <c>yes</c>, which should be most useful in the early stages of a project.  The element <tag>exercise-project</tag> is a misnomer, but is used to avoid confusion with some other use of <c>project</c>.  See <xref ref=\"exercise-component-visibility\"/> for more explanation.</p>\n\n            <table>\n                <title>Exercise Component Visibility Settings</title>\n\n                <tabular>\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell>Publication File Entry</cell>\n                        <cell>Attributes: <c>yes</c> or <c>no</c> values</cell>\n                    </row>\n                    <row>\n                        <cell><c>common/exercise-inline</c></cell>\n                        <cell><attr>statement</attr>, <attr>hint</attr>, <attr>answer</attr>, <attr>solution</attr></cell>\n                    </row>\n                    <row>\n                        <cell><c>common/exercise-divisional</c></cell>\n                        <cell><attr>statement</attr>, <attr>hint</attr>, <attr>answer</attr>, <attr>solution</attr></cell>\n                    </row>\n                    <row>\n                        <cell><c>common/exercise-worksheet</c></cell>\n                        <cell><attr>statement</attr>, <attr>hint</attr>, <attr>answer</attr>, <attr>solution</attr></cell>\n                    </row>\n                    <row>\n                        <cell><c>common/exercise-reading</c></cell>\n                        <cell><attr>statement</attr>, <attr>hint</attr>, <attr>answer</attr>, <attr>solution</attr></cell>\n                    </row>\n                    <row>\n                        <cell><c>common/exercise-project</c></cell>\n                        <cell><attr>statement</attr>, <attr>hint</attr>, <attr>answer</attr>, <attr>solution</attr></cell>\n                    </row>\n                </tabular>\n            </table>\n        </subsection>\n\n        <subsection xml:id=\"common-fillin-options\">\n            <title>Fillin Options</title>\n            <idx><h>common options</h><h>fillin</h></idx>\n            <idx><h>fillin</h><h>options</h></idx>\n\n            <p>The style of fill-in-the-blanks (from a <tag>fillin</tag>) is set by the attributes<ul>\n                <li>\n                    <title>Text Fillin</title>\n                    <p>Set<cd>\n                        <cline>/publication/common/fillin/@textstyle</cline>\n                    </cd> to values <c>underline</c>, <c>box</c>, or <c>shade</c> to influence the style of a fillin within text. The default is <c>underline</c>.</p>\n                </li>\n\n                <li>\n                    <title>Math Fillin</title>\n                    <p>Set<cd>\n                        <cline>/publication/common/fillin/@mathstyle</cline>\n                    </cd> to values <c>underline</c>, <c>box</c>, or <c>shade</c> to influence the style of a fillin within math. The default is <c>shade</c>.</p>\n                </li>\n            </ul></p>\n        </subsection>\n\n        <subsection xml:id=\"common-emdash-width-options\">\n            <title>Em Dash Width Options</title>\n            <idx><h>common options</h><h>fillin</h></idx>\n            <idx><h>fillin</h><h>options</h></idx>\n\n            <p>The width of spaces on either side of an em dash (the <tage>mdash</tage> element) is set with the <cd>\n                <cline>/publication/common/@emdash-space</cline>\n            </cd>attribute having values <c>none</c> (the default) or <c>thin</c>.  See <xref ref=\"topics-separators\"/> for more explanation.</p>\n        </subsection>\n\n        <subsection xml:id=\"common-watermark-options\">\n            <title>Watermarks</title>\n            <idx><h>common option</h><h>watermark</h></idx>\n            <idx><h>watermark</h><h>common option</h></idx>\n\n            <p>The text of a watermark is given as the content of the <cd>\n                <cline>/publication/common/watermark</cline>\n            </cd>element.  An optional scale factor may be given as a positive rational number with the<cd>\n                <cline>/publication/common/watermark/@scale</cline>\n            </cd>attribute.  The default scale is <c>0.5</c>.</p>\n\n            <p>In the text itself avoid obscure characters or symbols, and do not use any markup.   Keep it simple.  When used with <latex/> output the scharacters <c>\\\\</c> will survive in the text to create multiple lines of text in the watermark.  This feature is implemented for <latex/> and <init>HTML</init> output.  See <xref ref=\"watermarks\"/> for more detail and an example.</p>\n        </subsection>\n\n        <subsection xml:id=\"common-mermaid\">\n            <title>Mermaid</title>\n            <idx><h>Mermaid themes</h></idx>\n\n            <p>\n                Various themes are available for Mermaid diagrams. To use a theme, set\n                <cd>\n                    <cline>/publication/common/mermaid/@theme</cline>\n                </cd>\n                with a value of the theme name. The default theme is <c>default</c>.\n                See <xref ref=\"topic-mermaid\"/> for more information on Mermaid diagrams.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"common-qrcode-image\">\n            <title>QR code image</title>\n            <idx><h>common option</h><h>qrcode</h></idx>\n            <idx><h>qrcode</h><h>common option</h></idx>\n\n            <p>\n                QR codes for videos and interactive elements can have an image placed in their\n                center. This image file should be square, and stored in the external assets folder.\n                To use this image in your QR codes, use\n                <cd>\n                    <cline>/publication/common/qrcode/@image</cline>\n                </cd>\n                with a value of the file path, relative to external assets folder.\n            </p>\n\n            <p>\n                Note that the presence of such an image will increase the raw size of QR codes,\n                which are then genreally shrunk to fit. This will result in a finer grain for the\n                QR code pixels.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"common-journal\">\n            <title>Journal name</title>\n            <idx><h>common option</h><h>journal name</h></idx>\n            <idx><h>journal name</h><h>common option</h></idx>\n\n            <p>\n                When an article is intended for publication in a particular journal, the name of the\n                journal can be specified with\n                <cd>\n                    <cline>/publication/common/journal/@name</cline>\n                </cd>\n                with a value being one of a list of supported journal short name codes.  Setting this option\n                will control the format of bibliography entries and the format of <latex/> that can be produced.\n            </p>\n\n            <p>\n                A complete list of the supported journals, together with their short name codes, will\n                be available in <xref ref=\"appendix-journals\"/>.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"common-worksheet-margins\">\n            <title>Worksheet and Handout Margins</title>\n            <idx><h>common option</h><h>worksheet margins</h></idx>\n            <idx><h>common option</h><h>handout margins</h></idx>\n            <idx><h>worksheet margins</h><h>common option</h></idx>\n            <idx><h>handout margins</h><h>common option</h></idx>\n\n            <p>\n                Margins for worksheets and handouts can be specified using a combination of attributes on the element\n                <cd>\n                    <cline>/publication/common/worksheet</cline>\n                </cd>\n                using attributes <attr>margin</attr>, <attr>top</attr>, <attr>right</attr>, <attr>bottom</attr>, and <attr>left</attr>.  The values of these attributes should include units, either <c>in</c> or <c>cm</c>.  Setting <attr>margin</attr> will set all four margins to its value, but this can be overridden by setting (some of) the other attributes.  The default margin is <c>0.75in</c>.\n            </p>\n\n            <p>\n                For example, setting <c>&lt;worksheet margin=\"1in\" left=\"2in\"/&gt;</c> will set the top, right, and bottom margins to <c>1in</c> and the left margin to <c>2in</c>.  Setting <c>&lt;worksheet top=\"1cm\" bottom=\"2cm\"/&gt;</c> will set the top margin to <c>1cm</c> and the bottom margin to <c>2cm</c>, while leaving the left and right margins at their default of <c>0.75in</c>.\n            </p>\n\n            <p>\n                These settings will be used for both the <latex /> and <init>HTML</init> conversions.\n                See also <xref ref=\"latex-worksheet-options\"/> for more information on how these margins are used in the <latex/> conversion.\n            </p>\n\n        </subsection>\n\n        <subsection xml:id=\"common-worksheet-headers-footers\">\n            <title>Worksheet and Handout Headers/Footers</title>\n            <idx><h>common option</h><h>worksheet headers and footers</h></idx>\n            <idx><h>worksheet headers and footers</h><h>common option</h></idx>\n\n            <p>\n                Headers and footers for worksheets and handouts can be specified in the publication file (they can also be edited in the browser when producing <init>HTML</init> output).  First-page and running headers and footers are specified separately, and each can have a value for left, center, and right positions.\n            </p>\n            <p>\n                That is, each of the elements\n                <cd>\n                    <cline>/publication/common/worksheet/first-page-header</cline>\n                    <cline>/publication/common/worksheet/first-page-footer</cline>\n                    <cline>/publication/common/worksheet/running-header</cline>\n                    <cline>/publication/common/worksheet/running-footer</cline>\n                </cd>\n                can have attributes <attr>left</attr>, <attr>center</attr>, and <attr>right</attr>, whose values are the desired content for that position in the header or footer.\n            </p>\n\n            <p>\n                For example, to add a name and date line to the top of the first page, one would include the publication file entry\n                <cd>\n                    <cline>&lt;first-page-header left=\"Name: __________\" right=\"Date: __________\"/&gt;</cline>\n                </cd>\n                (inside the <tag>worksheet</tag> element of <tag>common</tag>).\n            </p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"publication-file-numbering\">\n        <title>Numbering Options</title>\n        <idx>numbering options</idx>\n        <idx><h>publisher options</h><h>numbering</h></idx>\n\n        <p>How various items get numbered can be controlled by specifying levels.  For pieces of content (e.g. <tag>example</tag>, <tag>fn</tag>, <ellipsis/>) the level will be the number of separators in the number, usually periods.  To fully understand these options, carefully read <xref ref=\"publisher-levels\"/> and <xref ref=\"publisher-numbering\"/>.</p>\n        <p>You can stop numbering divisions at some depth.  For example, you may want your <tag>book</tag> (without parts) to have numbered <tag>subsection</tag>, but numbers on the few <tag>subsubsection</tag> is just too messy and not necessary.  Then you would set the publication file entry<cd>\n            <cline>/publication/numbering/divisions/@level</cline>\n        </cd> to the value <c>3</c> to number <tag>chapter</tag>, <tag>section</tag>, and <tag>subsection</tag>, only.  (Note this is the exception, you will get at most <em>two</em> separators in a division number in this case.)  So you can think of this as the <em>maximum</em> level for numbers on divisions.  Just be careful not to try to number other objects (described next) to a greater level, as that is impossible, and so will generate a warning and the default will be substituted.</p>\n        <p>For items within a division, various groups of objects are numbered consecutively, with a hierarchy given by a level.  These numbers are controlled by<cd>\n            <cline>/publication/numbering/blocks/@level</cline>\n            <cline>/publication/numbering/projects/@level</cline>\n            <cline>/publication/numbering/equations/@level</cline>\n            <cline>/publication/numbering/footnotes/@level</cline>\n        </cd> whose values should be integers (zero is a possibility) that do not exceed the maximum level specified for divisions.</p>\n        <p>Chapters of a <tag>book</tag> may start numbering from something other than one.  This feature is not available in a book with structural parts (rather than decorative parts).  Read about this at the end of <xref ref=\"publisher-numbering\"/> and <xref ref=\"best-practice-chapter-zero\"/>.  If you still want to proceed, then set the publication file entry<cd>\n            <cline>/publication/numbering/divisions/@chapter-start</cline>\n        </cd> to the desired value of the first chapter.</p>\n        <p>A <tag>book</tag> with <tag>part</tag> may have the parts numbered to reflect two different structures, <term>decorative</term> or <term>structural</term>.  Set the publication file entry<cd>\n            <cline>/publication/numbering/divisions/@part-structure</cline>\n        </cd> to <c>decorative</c> (the default) or <c>structural</c>.</p>\n        <p>When a <tag>book</tag> is designed to have structural parts, then there is an expectation that the part divisions are important or relevant (at least moreso than in the case of decorative parts).  Then, to choose to number objects (blocks, equations, etc.) at level 0, crossing part boundaries, strikes us as an odd choice.  So odd that there is a <url href=\"https://github.com/PreTeXtBook/pretext/issues/1650\" visual=\"github.com/PreTeXtBook/pretext/issues/1650\">small bug at issue #1650</url>, which might be solved by simply banning this combination.</p>\n        <p>For more on divisions, and their numbering see <xref ref=\"topic-divisions\"/>.</p>\n    </section>\n\n    <section xml:id=\"publication-file-latex\">\n        <title>PDF (<latex/>) Options</title>\n        <idx>PDF publisher options</idx>\n        <idx>LaTeX publisher options</idx>\n        <idx><h>publisher options</h><h>PDF</h></idx>\n        <idx><h>publisher options</h><h>LaTeX</h></idx>\n\n        <introduction>\n            <p>These options affect the conversion to <latex/>, which can in turn be converted into <init>PDF</init>.\n            See <xref ref=\"pdf-print\"/> for a more general overview of this conversion with more details.  This includes some existing options that will eventually migrate to the publication file.</p>\n        </introduction>\n\n        <subsection xml:id=\"latex-style-options\">\n            <title><latex/> Style Option</title>\n            <idx><h>style option</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>style option</h></idx>\n            <idx><h>PDF</h><h>style option</h></idx>\n\n            <p>A limited number of custom <latex /> styles are available and more are in development (see <xref ref=\"latex-styles\"/>). The<cd>\n                    <cline>/publication/latex/@latex-style</cline>\n                </cd>attribute can be set to one of the provided styles to build the <latex /> or <init>PDF</init> output with that style.  As of 2024-10-04, the supported styles (and values of this attribute) are <c>AIM</c>, <c>chaos</c>, <c>CLP</c>, <c>dyslexic-font</c>, and <c>guide</c>.  (Note that some of these are meant as demos and not intended for production.)</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-print-options\">\n            <title><latex/> Print Option</title>\n            <idx><h>print option</h><h>LaTeX, PDF</h></idx>\n            <idx><h>electronic option</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>print option</h></idx>\n            <idx><h>LaTeX</h><h>electronic option</h></idx>\n            <idx><h>PDF</h><h>print option</h></idx>\n            <idx><h>PDF</h><h>electronic option</h></idx>\n\n            <p>The conversion to <latex/> can produce a <init>PDF</init> optimized for print, or optimized for use electronically on a screen.  The<cd>\n                <cline>/publication/latex/@print</cline>\n            </cd>attribute can have the value <c>yes</c> to produce a print version, or the value <c>no</c> to produce an electronic version.  The default is an electronic version.  See <xref ref=\"electronic-or-print\"/> for more detail.  Note that the use of page numbers in cross-references has different default behavior based on this option (which can be overidden, see <xref ref=\"latex-xref-page-number-options\"/>).</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-sides-options\">\n            <title><latex/> Sides Option</title>\n            <idx><h>sides option</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>sides option</h></idx>\n            <idx><h>PDF</h><h>sides option</h></idx>\n\n            <p>The conversion to <latex/> can produce a <init>PDF</init> designed for printing on only one side of the page, or on both sides of the page.  The<cd>\n                <cline>/publication/latex/@sides</cline>\n            </cd>attribute can have the value <c>one</c> for a one-sided version, or the value <c>two</c> to produce a two-sided version.  The default depends on if the output is electronic (one-sided) or print (two-sided).  See <xref ref=\"print-sides\"/> for more detail.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-open-odd-options\">\n            <title><latex/> Page Matching</title>\n            <idx><h>page matching</h><h>LaTeX, PDF</h></idx>\n            <idx><h>open odd option</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>page matching</h></idx>\n            <idx><h>LaTeX</h><h>open odd option</h></idx>\n            <idx><h>PDF</h><h>page matching</h></idx>\n            <idx><h>PDF</h><h>open odd option</h></idx>\n\n            <p>A two-sided <init>PDF</init> will contain extra blank pages to ensure that certain divisions (usually parts and chapters) always open on an odd-numbered page. Since a one-sided <init>PDF</init> will omit these extra blank pages, the page numbers may get out of sync between the two versions. The<cd>\n                <cline>/publication/latex/@open-odd</cline>\n            </cd>attribute can be used to force the page numbers back into sync by either also inserting the extra blank pages in a one-side <init>PDF</init> version (by setting the attribute to value <c>add-blanks</c>) or by simply skipping the page number for pages that would have been blank in the pagination (by setting the attribute to value <c>skip-pages</c>). If the attribute value is <c>no</c> for a one-sided <init>PDF</init> output (the default), then no adjustment is made and divisions open on the next consecutive page whether odd- or even-numbered.</p>\n\n            <p>Note that this attribute is ignored for two-sided <init>PDF</init> output, where extra blank pages are always inserted. Also note that page-matching between one- and two-sided <init>PDF</init> versions may require a consistent specification of the  <c>/publication/latex/@pageref</c> option (<xref ref=\"latex-xref-page-number-options\"/>).  See <xref ref=\"latex-page-fidelity\"/> for a more thorough discussion of page number fidelity.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-font-size-options\">\n            <title><latex/> Font Sizes</title>\n            <idx><h>font size options</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>font size option</h></idx>\n            <idx><h>PDF</h><h>font size option</h></idx>\n\n            <p>The document-wide point size can be specified with the<cd>\n                <cline>/publication/latex/@font-size</cline>\n            </cd>attribute can have the value <c>8</c>, <c>9</c>, <c>10</c>, <c>11</c>, <c>12</c>, <c>14</c>, <c>17</c>, <c>20</c>, which are interpreted in points (<q>pt</q>) as the unit of measure.  The default value is <c>10</c>.  See <xref ref=\"font-size\"/> for details.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-page-options\">\n            <title><latex/> Page Shape Options</title>\n\n            <p>The following options affect the <q>shape</q> of each page, so are in a way less <q>global</q> than some of the previous options.  These are both attributes of the <cd>\n                <cline>/publication/latex/page</cline>\n            </cd>element.<ul>\n                <li>\n                    <title>Text Alignment, Right Edge</title>\n                    <p>Set<cd>\n                        <cline>/publication/latex/page/@right-alignment</cline>\n                    </cd> to values <c>flush</c> (default) or <c>ragged</c> to influence the right edge of the block of text on a page.  See <xref ref=\"print-justification\"/> for more.</p>\n                </li>\n\n                <li>\n                    <title>Text Alignment, Bottom Edge</title>\n                    <p>Set<cd>\n                        <cline>/publication/latex/page/@bottom-alignment</cline>\n                     </cd> to values <c>flush</c> or <c>ragged</c> (default) to influence the bottom edge of the block of text on a page.  See <xref ref=\"print-justification\"/> for more.</p>\n                </li>\n            </ul></p>\n\n            <p>The content of the element<cd>\n                <cline>/publication/latex/page/geometry</cline>\n            </cd> element will feed directly into a <latex/> <c>\\geometry{}</c> element, with no modifications.  (In other words, all whitespace, such as newlines and indentation, will be preserved.)  Be sure to carefully read the advice, an example, and further detail at <xref ref=\"page-shape\"/>.</p>\n\n            <p>The attribute<cd>\n                <cline>/publication/latex/page/@crop-marks</cline>\n            </cd>may be set to the value <c>none</c>, or not specified at all, and nothing will happen.  Otherwise, it is set to a paper size, then the logical page (whose size is presumably set by the <c>geometry</c> package) will be centered on the physical page specified, with marks at each corner delineating the logical page.  Some publishers request camera-ready copy to have these indications.  Paper sizes are arguments to the <c>crop</c> package, and as of 2023-05-19 the possible values were:<cd>\n                <cline>a0, a1, a2, a3, a4, a5, a6,</cline>\n                <cline>b0, b1, b2, b3, b4, b5, b6,</cline>\n                <cline>letter, legal, executive</cline>\n            </cd>There is no error-checking of these values.  See <xref ref=\"page-shape\"/> for more and examples.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-xref-page-number-options\">\n            <title>Page Numbers in Cross-References</title>\n\n            <p>Set<cd>\n                <cline>/publication/latex/@pageref</cline>\n            </cd> to values <c>yes</c> or <c>no</c> to enable or disable the use of page numbers in cross-references (typically achieved with the <tag>xref</tag> element).  The default varies, as it is dependent on the print option (<xref ref=\"latex-print-options\"/>).  See <xref ref=\"latex-xref-page-numbers\"/> for more on the defaults.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-link-highlight-options\">\n            <title>Hyperlink Highlighting</title>\n            <idx><h>accessibility</h><h>hyperlink underlining, LaTeX</h></idx>\n            <idx><h>LaTeX</h><h>hyperlink highlighting</h></idx>\n\n            <p>Set<cd>\n                <cline>/publication/latex/@link-highlight</cline>\n            </cd>to <c>underline</c> to draw an underline beneath hyperlinks (<tag>xref</tag> and <tag>url</tag>) in the <init>PDF</init> output.  The default value is <c>none</c>.  This option requires no additional <latex/> packages.  See <xref ref=\"topic-accessibility\"/> for accessibility motivation.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-worksheet-options\">\n            <title><latex /> Worksheet Options</title>\n            <p>\n                By default, worksheets are formatted differently than other pages, including customizable margins, workspace between exercises, and on their own pages.  This separate formatting can be ignored, causing worksheets to be treated like any other division, using the<cd>\n                <cline>/publication/latex/worksheet/@formatted</cline>\n             </cd>attribute, setting the value to <c>no</c>.  The default value is <c>yes</c>.\n            </p>\n\n            <p>\n                See also <xref ref=\"common-worksheet-margins\"/> for how to specify margins for formatted worksheets.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"latex-covers-options\">\n            <title>Covers</title>\n            <idx><h>PDF</h><h>covers</h></idx>\n            <idx><h>LaTeX</h><h>covers</h></idx>\n            <idx><h>covers</h><h>PDF</h></idx>\n            <idx><h>covers</h><h>LaTeX</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/latex/cover</cline>\n            </cd>element has attributes <attr>front</attr> and <attr>back</attr> whose values can be paths to <init>PDF</init> files to use as the first and last page of the output <init>PDF</init>.  The paths should be relative to your directory of external files, much like a raster image you might bring to your project being given by a <attr>source</attr> attribute.  See <xref ref=\"processing-directory-management\"/> for more about managed directories, and <xref ref=\"latex-cover-images\"/> for more detail about covers.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-asymptote-link-options\">\n            <title><latex/> Asymptote Links</title>\n            <idx><h>Asymptote links</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>Asymptote links</h></idx>\n            <idx><h>PDF</h><h>Asymptote links</h></idx>\n\n            <p>The conversion to <latex/> can provide a link to an <init>HTML</init> version of each Asymptote graphic.  The<cd>\n                <cline>/publication/latex/asymptote/@links</cline>\n            </cd>attribute can have the value <c>yes</c> to produce links, or the value <c>no</c> to not create links.  Note that a base URL must be set for this feature to be functional (<xref ref=\"online-base-url\"/>).  The default is <c>no</c>.  See  <xref ref=\"latex-asymptote-links\"/> for more detail.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-draft-mode-options\">\n            <title>Draft Mode</title>\n\n            <p>Set<cd>\n                <cline>/publication/latex/@draft</cline>\n            </cd> to values <c>yes</c> or <c>no</c> to enable or disable the use of the <latex/> draft mode.  The default is <c>no</c>.  See <xref ref=\"processing-author-tools\"/> for more detail.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-snapshot-record-options\">\n            <title>Snapshot Record</title>\n            <idx><h>LaTeX</h><h>snapshot</h></idx>\n\n            <p>Set<cd>\n                <cline>/publication/latex/@snapshot</cline>\n            </cd> to values <c>yes</c> or <c>no</c> to enable or disable the generation of a <q>snapshot</q> record of the LaTeX packages in use.  The default is <c>no</c>.  See <xref ref=\"latex-snapshot-record\"/> for more detail.</p>\n        </subsection>\n\n        <subsection xml:id=\"latex-insertions-pagebreaks-options\">\n            <title>Page Breaks</title>\n            <idx><h>Page breaks</h><h>LaTeX, PDF</h></idx>\n            <idx><h>Pagebreaks</h><h>LaTeX, PDF</h></idx>\n            <idx><h>LaTeX</h><h>page breaks</h></idx>\n            <idx><h>LaTeX</h><h>pagebreaks</h></idx>\n            <idx><h>PDF</h><h>page breaks</h></idx>\n            <idx><h>PDF</h><h>pagebreaks</h></idx>\n\n            <p>\n                A publisher can declare <attr>xml:id</attr> values for which a pagebreak\n                (<c>\\newpage</c>) will precede the corresponding element in output. This is only\n                valid for certain element types. Use\n                <cd>\n                    <cline>/publication/latex/insertions/@pagebreaks</cline>\n                </cd>\n                to provide a whitespace-separated list of <attr>xml:id</attr> values. You may use\n                multiple <tag>insertions</tag> elements, each with its own <attr>pagebreaks</attr>\n                to help organize pagebreaks by chapter, etc.\n            </p>\n            <p>\n                See <xref ref=\"page-breaks\"/>.\n            </p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"publication-file-online\">\n        <title>Online (HTML) Options</title>\n        <idx>HTML publisher options</idx>\n        <idx><h>publisher options</h><h>HTML</h></idx>\n\n        <introduction>\n            <p>These options affect the base conversion to web pages (online, <init>HTML</init>).  Many, but not all, will affect subsequent conversions based on <init>HTML</init>, such as a conversion to <init>EPUB</init> or Jupyter notebooks.  See <xref ref=\"online-html\"/>  for a more general overview of this conversion, including options that will eventually migrate here.</p>\n        </introduction>\n\n        <subsection xml:id=\"online-analytics-options\">\n            <title>HTML Analytics</title>\n            <idx>analytics</idx>\n\n            <p>The<cd>\n                <cline>/publication/html/analytics</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>google-gst</attr>: a Google <term>global site tag</term>, which is an ID you get from Google.  <em>Do not copy the identification numbers from another project<mdash/>be sure to obtain your own for your project.</em></li>\n                <li><attr>statcounter-project</attr>, <attr>statcounter-security</attr>: ID numbers you get from StatCounter.  <em>Do not copy the identification numbers from another project<mdash/>be sure to obtain your own for your project.</em></li>\n            </ul>Setting these attributes to non-empty strings is the signal to add the relevant code to each of the pages of your HTML output.  See <xref ref=\"online-analytics\"/> for more.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-baseurl\">\n            <title>HTML Base URL</title>\n            <idx><h>base url</h><h>HTML output</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/baseurl/@href</cline>\n            </cd>attribute may be given as a complete <init>URL</init> for the top-level of where <init>HTML</init> output is hosted.  Of course, this may be different for different publishers.  The value is a directory, and so should end with a slash (path separator).  See <xref ref=\"online-base-url\"/> for reasons why you might want to specify this.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-banner\">\n            <title>HTML Banner Options</title>\n            <idx><h>HTML</h><h>banner content options</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/banner/@subtitle</cline>\n            </cd> and <cd>\n                <cline>/publication/html/banner/@byline</cline>\n            </cd>attributes may be specified as either <c>yes</c> (the default) or <c>no</c> to control whether the subtitle and author byline are displayed in the banner. See <xref ref=\"online-banner-options\"/> for reasons why you might want to specify this.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-calculator\">\n            <title>HTML Embedded Calculator</title>\n            <idx><h>calculator</h><h>embedded in <init>HTML</init></h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/calculator</cline>\n            </cd>element has the following attribute:<ul>\n                <li>\n                    <p><attr>model</attr>: used to control which calculator is available on every page.  Possible values are:<ul>\n                        <li><c>geogebra-classic</c></li>\n                        <li><c>geogebra-graphing</c></li>\n                        <li><c>geogebra-geometry</c></li>\n                        <li><c>geogebra-3d</c></li>\n                        <li><c>none</c></li>\n                    </ul></p>\n                </li>\n            </ul>The default is <c>none</c>.  See <xref ref=\"online-embedded-calculator\"/> for more.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-favicon\">\n            <title>HTML Favicon</title>\n            <idx>favicon</idx>\n\n            <p>The<cd>\n                <cline>/publication/html/</cline>\n            </cd>element has the following attribute:<ul>\n                <li>\n                    <p><attr>favicon</attr>: used to control how icon files for a favicon are embedded into each <init>HTML</init> page:<ul>\n                        <li><c>none</c></li>\n                        <li><c>simple</c></li>\n                    </ul></p>\n                </li>\n            </ul>The default is <c>none</c>.  See <xref ref=\"online-favicon-configuration\"/> for more, including an explanation of what a favicon is.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-webwork-dynamism\">\n            <title>HTML <webwork/> Dynamism</title>\n            <idx><h>WeBWorK</h><h><init>HTML</init>dynamism</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/webwork</cline>\n            </cd>element has the following attributes, each of which can have a value of <c>static</c> or <c>dynamic</c>:<ul>\n                    <li><attr>inline</attr>, default value: <c>dynamic</c></li>\n                    <li><attr>divisional</attr>, default value: <c>static</c></li>\n                    <li><attr>reading</attr>, default value: <c>static</c></li>\n                    <li><attr>worksheet</attr>, default value: <c>static</c></li>\n                    <li><attr>project</attr>, default value: <c>dynamic</c></li>\n            </ul>The attribute names suggest the type of exercise or project-like that will be affected. See <xref ref=\"webwork-html-output\"/> for more details and the rationale for the defaults.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-activecode\">\n            <title>HTML ActiveCode Programming Window</title>\n            <idx><h>ActiveCode</h><h>window in <init>HTML</init></h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/calculator</cline>\n            </cd>element has the following attribute:<ul>\n                <li>\n                    <p><attr>activecode</attr>: used to control if an ActiveCode window is available on every page, and if so, which language it undestands.  Possible values are:<ul>\n                        <li><c>python</c> (Python)</li>\n                        <li><c>javascript</c> (JavaScript)</li>\n                        <li><c>html</c> (<init>HTML</init>)</li>\n                        <li><c>sql</c> (<init>SQL</init>)</li>\n                        <li><c>c</c> (C, Runestone server only)</li>\n                        <li><c>cpp</c> (C++, Runestone server only)</li>\n                        <li><c>java</c> (Java, Runestone server only)</li>\n                        <li><c>kotlin</c> (Kotlin, Runestone server only)</li>\n                        <li><c>python3</c> (Python 3, Runestone server only)</li>\n                        <li><c>octave</c> (Octave, Runestone server only)</li>\n                        <li><c>none</c></li>\n                    </ul></p>\n                </li>\n            </ul>For a build hosted at a Runestone server, <c>python</c> is the default.  For an <init>HTML</init> build hosted elsewhere, <c>none</c> is the default.  See <xref ref=\"online-scratch-activecode\"/> for more.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-index-page\">\n            <title>HTML Index Page</title>\n            <idx><h>index page</h><h>HTML</h></idx>\n            <idx><h>HTML</h><h>index page</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/index-page</cline>\n            </cd>element can have the following attribute:<ul>\n                <li><attr>ref</attr>: the <attr>xml:id</attr> of a division which will be a complete page at whatever level the document is chunked (broken into smaller pages).</li>\n            </ul>An <c>index.html</c> page will be created which redirects immediately to this page.  Many webservers will serve this page when a <init>URL</init> stops with the enclosing directory.  So the Table of Contents (<tag>book</tag>, <tag>article</tag>) or the <tag>frontmatter</tag> are common choices.  See <xref ref=\"index-page\"/> for more.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-knowlization-options\">\n            <title>HTML Knowlization</title>\n            <idx><h>knowls</h><h>elective</h></idx>\n            <idx>elective knowls</idx>\n\n            <p>In a conversion to <init>HTML</init> a wide variety of content can be <q>born</q> in a <term>knowl</term>.  Publisher switches are specified via multiple attributes of a single<cd>\n                <cline>/publication/html/knowl</cline>\n            </cd>element, with values of <c>yes</c> (do use a knowl) or <c>no</c> (do not use a knowl, present content normally).  For example,<cd>\n                <cline>&lt;knowl remark=\"yes\"/&gt;</cline>\n            </cd>would make every <q>remark-like</q> element occur as a knowl where the content is first introduced.  Note that these are distinctly different than cross-reference knowls.  For more detail see <xref ref=\"knowled-content\"/>.</p>\n\n            <p>This table gives the various attribute names, the default value, and an indication of the elements affected.  Note that some items are automatically born knowled (e.g. footnotes) and so there is no option to control that behavior.  Also, items such as <tag>figure</tag>, when included in a <tag>sidebyside</tag> are not influenced by the relevant option and are not born knowled.  There are four flavors of <tag>exercise</tag> and so four options.  A <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag> is automatically knowled as a plot-spoiler where the author is expecting the reader to do something.  In contrast, an <q>example-like</q> is expository, so the knowlization is configurable.</p>\n\n            <table>\n                <title>Knowlization options</title>\n                <tabular>\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell>Attribute</cell>\n                        <cell>Default</cell>\n                        <cell>Element(s)</cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>theorem</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>theorem</tag>, <tag>lemma</tag>, <ellipsis/></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>proof</c></cell>\n                        <cell><c>yes</c></cell>\n                        <cell><tag>proof</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>definition</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>definition</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>example</c></cell>\n                        <cell><c>yes</c></cell>\n                        <cell><tag>example</tag>, <tag>problem</tag>, <ellipsis/></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>example-solution</c></cell>\n                        <cell><c>yes</c></cell>\n                        <cell><tag>hint</tag>, <tag>answer</tag>, <tag>solution</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>project</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>project</tag>, <tag>activity</tag>, <ellipsis/></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>task</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>task</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>remark</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>remark</tag>, <tag>note</tag>, <ellipsis/></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>objectives</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>objectives</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>outcomes</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>outcomes</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>figure</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>figure</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>table</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>table</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>listing</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>listing</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>list</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell><tag>list</tag></cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>exercise-inline</c></cell>\n                        <cell><c>yes</c></cell>\n                        <cell>within narrative</cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>exercise-divisional</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell>inside <tag>exercises</tag> division</cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>exercise-worksheet</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell>inside <tag>worksheet</tag> division</cell>\n                    </row>\n                    <!--  -->\n                    <row>\n                        <cell><c>exercise-readingquestion</c></cell>\n                        <cell><c>no</c></cell>\n                        <cell>inside <tag>readingquestions</tag> division</cell>\n                    </row>\n                </tabular>\n            </table>\n        </subsection>\n\n        <subsection xml:id=\"online-tabbed-tasks\">\n            <title>HTML Tabbed viewer</title>\n            <idx><h>tabbed viewer</h><h>HTML</h></idx>\n            <idx><h>HTML</h><h>tabbed viewer</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/exercises</cline>\n            </cd>element can have a <attr>tabbed-tasks</attr> attribute.  The value is a space-separated, or comma-separated, list of types of <tag>exercise</tag> or PROJECT-LIKE.  The values in this list come specify up to four of the five possible types of exercises: <c>divisional</c>, <c>inline</c>, <c>reading</c>, <c>project</c>.  Note that exercises inside a <tag>worksheet</tag> are explicity ineligible.  See <xref ref=\"overview-exercises\"/> for careful descriptions of these types.</p>\n            <!-- 2023-06-08: no good place for a general discussion of \"task\", perhaps it has not been written. -->\n        </subsection>\n\n        <subsection xml:id=\"online-platform-options\">\n            <title>HTML Platforms</title>\n            <idx><h>platform</h><h>HTML</h></idx>\n            <idx><h>host</h><h>HTML</h></idx>\n            <idx>online platforms</idx>\n\n            <p>The<cd>\n                <cline>/publication/html/platform</cline>\n            </cd>element can have an attribute <attr>host</attr> with values:<ul>\n                <li><c>web</c>: the default, meant for self-hosting with no server configuration, features, or assumptions</li>\n                <li><c>runestone</c>: output meant for hosting on a Runestone server (<xref ref=\"runestone\"/>)</li>\n            </ul>Here <term>platform</term> refers to the server where the <init>HTML</init> output will eventually be hosted.  The effect is to create minor variations in the output to take advantage of extra features of the indicated platform.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-portable-options\">\n            <title>Portable HTML</title>\n            <idx><h>platform</h><h>HTML</h></idx>\n            <idx><h>portable</h><h>HTML</h></idx>\n            <idx><h>portable html</h></idx>\n\n            <p>To limit the number of files and directories created by the HTML conversion,\n            you can set the\n            <cd>\n                <cline>/publication/html/platform/@portable</cline>\n            </cd>\n            attribute to the value <c>\"yes\"</c>. \n            This will result in the HTML using hosted CSS and Javascript files, rather than including them adjacent to the rest of your output.\n            This is especially useful in conjunction with setting the <xref ref=\"common-chunking-options\">chunking variable</xref> to 0 to get a single html file.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-style-options\">\n            <title>HTML Style (Theme)</title>\n            <idx><h>style</h><h>HTML</h></idx>\n            <idx><h>theme</h><h>HTML</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/css</cline>\n                </cd>element can have a <attr>theme</attr> to specify the theme used to style the pages. See <xref ref=\"online-style\"/> for examples of what different themes look like. Depending on the theme chosen, there may be other attributes that can be set. See <xref ref=\"online-style-options-list\"/> below for details.</p>\n\n            <p>The <q>legacy</q> stylesheets are still available. Any publication file that references <c>html/css/@style</c> will use the corresponding legacy style sheet (default, crc, wide, oscar-levin) as well as the colors selected for it. However, the full range of configuration is no longer available. If your publisher file mixes legacy style parts in an unexpected way (<c>toc=\"crc\"</c> but <c>sidebar=\"wide\"</c>) you will get one or the other complete style.</p>\n\n            <p>New themes other than <q>default-modern</q> require a build step involving node.js. If node is not installed (try <c>node --version</c> to check), following the directions in <xref ref=\"node-and-npm\"/>.  If you are using the  <c>pretext/pretext</c> script, you will need to, one time, run <c>npm install</c> in the <c>script/cssbuilder</c> directory (this step is done automatically if you are using the CLI). After this initial setup, the build script will automatically be invoked when you build a document.</p>\n\n            <p>To rapidly test out different themes and options while using the CLI (see <xref ref=\"processing-CLI-build\"/>) you can use <c>pretext build --theme</c> to rebuild the theme without a full book rebuild. If you are using the pretext script (see <xref ref=\"pretext-script\"/>) you can use the flag <c>-c theme</c>. Note that doing this assumes the HTML needed for the different themes is the same. This should generally be the case, but if you encounter odd rendering issues you should do a full rebuild.</p>\n\n            <list xml:id=\"online-style-options-list\">\n                <title>Theme attribute options</title>\n                <dl>\n                    <li>\n                        <title>default-modern</title>\n                        <p>The following attributes can be set on CSS to modify the appearance of default-modern:\n                            <ul>\n                                <li><attr>palette</attr> controls the colors used. Options include: <c>\"blue-red\"</c>, <c>\"blue-green\"</c>, <c>\"green-blue\"</c>, <c>\"greens\"</c>, and <c>\"blues\"</c>.</li>\n                                <li><attr>primary-color</attr> override the primary color set by the palette. This, and all other color attributes, can be in CSS color format (hex, rbg, hsl<etc/>).</li>\n                                <li><attr>secondary-color</attr> override the secondary color set by the palette.</li>\n                                <li><attr>provide-dark-mode</attr> can be set to <c>\"no\"</c> to disable dark mode on the theme. This may be desirable if the work has significant elements that do not render correctly with a dark background and you are not able to modify them to do so.</li>\n                                <li><attr>primary-color-dark</attr> override the primary color used in dark mode.</li>\n                            </ul>\n                        </p>\n                    </li>\n                    <li>\n                        <title>tacoma, greeley, boulder</title>\n                        <p>The following attributes can be set on CSS to modify the appearance of tacoma, greely, and boulder. They function in the same way as the corresponding attributes for default-modern.\n                            <ul>\n                                <li><attr>primary-color</attr></li>\n                                <li><attr>primary-color-dark</attr></li>\n                                <li><attr>provide-dark-mode</attr></li>\n                            </ul>\n                        </p>\n                    </li>\n                    <li>\n                        <title>salem, denver</title>\n                        <p>The following attributes can be set on CSS to modify the appearance of salem and denver.\n                            <ul>\n                                <li><attr>palette</attr> controls the colors used. Options include: <c>\"bold\"</c>, <c>\"bold2\"</c>, <c>\"primaries\"</c>, <c>\"primaries2\"</c>, <c>\"ice-fire\"</c>, <c>\"earth-sea\"</c>, <c>\"leaves\"</c>, and <c>\"slate\"</c>.</li>\n                                <li><attr>color-main</attr> override the primary color set by the palette.</li>\n                                <li><attr>color-do</attr> override the color used for elements that ask the reader to do something (e.g. an exercise).</li>\n                                <li><attr>color-fact</attr> override the color used for elements that present a fact (e.g. a theorem).</li>\n                                <li><attr>color-meta</attr> override the color used for elements that provide meta information to the reader (e.g. goals, remarks).</li>\n                                <li><attr>provide-dark-mode</attr> - see default-modern.</li>\n                                <li><attr>primary-color-dark</attr> - see default-modern.</li>\n                            </ul>\n                        </p>\n                    </li>\n                </dl>\n            </list>\n\n            <p>Finally, if you wish to do development on a custom theme using SCSS, you can set <c>/publication/html/css/@theme</c> to <c>\"custom\"</c>. If you do so, you need to also set <attr>entry-point</attr> to be the path to an SCSS file that will be used to build the theme. This path should be relative to the xml file that is your document root.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-search-options\">\n            <title>HTML Search</title>\n            <idx>search</idx>\n            <idx><h>search</h><h>native</h></idx>\n            <idx><h>search</h><h>Google</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/search</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>variant</attr>: a string specifying how search queries are handled.  Possible values are <c>textbook</c>, <c>reference</c>, <c>default</c> and <c>none</c>.  For historical reasons, using the value <c>default</c> is synonymous with using <c>textbook</c>, so it is not necessary.  If you do not specify this entry, then that is equivalent to setting the value to <c>textbook</c>.  This is search provided natively.</li>\n                <li><attr>google-cx</attr>: a Google <term>cx number</term>, gained from configuring search for a site.  Setting this attribute to a non-empty string is the signal to add the relevant code for a search box in the masthead.</li>\n            </ul>Note that if you elect both native search and Google search the two search boxes will overlay each other and one will not be usable.  See <xref ref=\"native-search\"/> and <xref ref=\"google-search\"/> (respectively) for more.</p>\n        </subsection>\n\n        <subsection xml:id=\"embedded-video-privacy-options\">\n            <title>HTML Video Embedding</title>\n            <idx><h>video</h><h>embedding</h></idx>\n            <idx><h>privacy</h><h>video</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/video</cline>\n            </cd>element can have the following attribute:<ul>\n                <li><attr>privacy</attr>: allowed values are <c>yes</c> or <c>no</c>.</li>\n            </ul>Setting this to yes (the default) prevents certain tracking cookies from being used. Currently only supported for videos from YouTube. See <xref ref=\"video-embedding\"/> for more.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-short-answer-responses\">\n            <title>Short Answer Responses</title>\n            <idx><h>short answer exercises</h><h>response area</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html</cline>\n            </cd>element can have an attribute <attr>short-answer-responses</attr> with values:<ul>\n                <li><c>graded</c>: the default, only show an area for responses when they can be graded or scored (such as when hosted on Runestone,  <xref ref=\"runestone\"/>).</li>\n                <li><c>always</c>: include an editable response area, even if it cannot be submitted for feedback.</li>\n            </ul>See <xref ref=\"short-answer-exercises\"/> for details.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-asymptote-link-options\">\n            <title><latex/> Asymptote <q>Click to Enlarge</q> Links</title>\n            <idx><h>Asymptote links</h><h>HTML</h></idx>\n            <idx><h>HTML</h><h>Asymptote links</h></idx>\n\n            <p>The conversion to <init>HTML</init> can provide a <q>Link to full-sized image</q> link below each Asymptote graphic.  The<cd>\n                <cline>/publication/html/asymptote/@links</cline>\n            </cd>attribute can have the value <c>yes</c> to produce links, or the value <c>no</c> to not create links.  Note that a base URL must be set for this feature to be functional (<xref ref=\"online-base-url\"/>).  The default is <c>no</c>.  See  <xref ref=\"html-asymptote-links\"/> for more detail.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-feedback-options\">\n            <title>HTML Feedback Button</title>\n            <idx><h>HTML</h><h>feedback button</h></idx>\n            <idx><h>feedback button</h><h>HTML</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/feedback</cline>\n            </cd>element requires an <attr>href</attr> attribute that is a complete <init>URL</init>.  The content of the element is optional, and will provide alternate text for the button.  This alternate text should have no markup<mdash/>just text.  See <xref ref=\"html-feedback\"/> for explanations, details, and a caveat.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-navigation-options\">\n            <title>HTML Navigation Options</title>\n            <idx><h>HTML</h><h>navigation</h></idx>\n            <idx><h>navigation</h><h>HTML</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/navigation</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>logic</attr> with values <c>linear</c> (default) and <c>tree</c>.</li>\n                <li><attr>upbutton</attr> with values <c>yes</c> (default) and <c>no</c>.</li>\n            </ul>See <xref ref=\"html-navigation\"/> for explanations and details.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-toc-options\">\n            <title>HTML Table of Contents Options</title>\n            <idx><h>HTML</h><h>table of contents</h></idx>\n            <idx><h>table of contents</h><h>HTML</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/tableofcontents</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>focused</attr> with values <c>no</c> (default) and <c>yes</c>. Enabling a focused TOC makes the TOC expandable/collapsible and initialliy hides TOC items not on the path to the active webpage.</li>\n                <li><attr>preexpanded-levels</attr> with values <c>1-6</c> (0 is the default). This value controls how many levels from the root of the TOC are initially expanded outside of the path to the current page. Either 0 or 1 will result in the root level of the TOC being expanded (it is on the path to the active page and thus always is expanded). 2 will result in the first two levels of the TOC being visible (e.g. parts and chapters or chapters and sections). 3 would result in three initially visible levels (e.g. parts/chapters/sections), etc...</li>\n            </ul>See <xref ref=\"html-navigation\"/> for explanations and details.</p>\n        </subsection>\n\n        <subsection xml:id=\"html-xref-options\">\n            <title>xref Options</title>\n            <idx><h>xref</h><h>publisher options</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html/cross-references</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>knowled</attr> with values <c>maximum</c> (default), <c>never</c> and <c>cross-page</c>. <c>maximum</c> will render xref's to structural elements as HTML links and xref's to smaller elements as knowls. <c>never</c> forces all xref's to be rendered as traditional HTML links. <c>cross-page</c> bases the rendering decision on if the xref and its target are on the same page. If so, the xref is always rendered as an HTML link. If the link and target are on different pages, the behavior is the same as <c>maximum</c></li>\n            </ul>See <xref ref=\"knowled-content\"/> for explanations and details.</p>\n        </subsection>\n\n        <subsection xml:id=\"online-embed-button-options\">\n            <title>Embed Page Button</title>\n            <idx><h>embed page button</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/html</cline>\n            </cd>element can have an attribute <attr>embed-button</attr> with values:<ul>\n                <li><c>no</c>: the default, do not display button.</li>\n                <li><c>yes</c>: show a button in the navigation bar, that when clicked, displays a popup allowing the user to copy an iframe code snippet to paste into their website or LMS.</li>\n            </ul></p>\n        </subsection>\n\n        <subsection xml:id=\"online-interactives-options\">\n            <title>Interactives Options</title>\n            <idx><h>publisher options</h><h>html interactives</h></idx>\n\n            <p>\n                The\n                <cd>\n                    <cline>/publication/html</cline>\n                </cd>\n                element can have an attribute <attr>design-width</attr> with an integer value. This will be used as the base value for converting the percentage based widths of an interactive into a pixel values when that is required. The default value is <c>600</c> (100% width is 600px).\n            </p>\n\n           <p>\n              The\n              <cd>\n                  <cline>/publication/html/interactives</cline>\n              </cd>\n              element can have an attribute <attr>resize-behavior</attr> that is used to control how interactives respond to window resizing. Possible values are:\n              <ul>\n                  <li><c>fixed-height</c> (default): interactives will maintain their initial height as the window size changes. When the content becomes too wide to display, a horizontal scrollbar will appear.</li>\n                  <li><c>responsive</c>: interactives will resize dynamically as the window size changes to maintain their aspect ratio.</li>\n              </ul>\n              In addition to this global setting, you can add child elemements to \n              <cd>\n                  <cline>/publication/html/interactives</cline>\n              </cd>\n              to set the resize behavior for specific types of interactives. Each child element should be named after the interactive type (e.g. <c>geogebra</c> or <c>desmos</c>) and have a <attr>resize-behavior</attr> attribute with the same possible values as above. Settings on these child elements will override the global setting for that specific interactive type. Known interactive types that can be specified this way are:\n              <ul>\n                <li>calcplot3d</li>\n                <li>circuitjs</li>\n                <li>d3</li>\n                <li>desmos</li>\n                <li>doenetml</li>\n                <li>geogebra</li>\n                <li>iframe</li>\n                <li>javascript</li>\n                <li>jsxgraph</li>\n                <li>sage</li>\n              </ul>\n            </p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"publication-file-revealjs\">\n        <title>Reveal.js Slideshow Options</title>\n        <idx>reveal.js slideshow publisher options</idx>\n        <idx><h>publisher options</h><h>reveal.js slideshow</h></idx>\n\n        <introduction>\n            <p>See <xref ref=\"publisher-revealjs\"/> for a more general overview of this conversion.</p>\n        </introduction>\n\n        <subsection xml:id=\"revealjs-appearance-options\">\n            <title>Reveal.js Appearance</title>\n            <idx><h>publisher options</h><h>reveal.js appearance</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/revealjs/appearance</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>theme</attr>: the base name of a file that is a reveal.js theme. (See the <url href=\"https://revealjs.com/themes/\">reveal.js documentation</url> for available themes.)  For example if the desired theme/CSS file is <c>css/theme/solarized.css</c>, then set the value of this attribute to <c>solarized</c>.</li>\n                <li><attr>custom-css</attr>: a string separated list of custom css files to load. These may be local files or remote URLs. For local files, it is recommended to place them in the <term>external</term> files directory so that they are automatically copied from your source folder to the output directory. (Refer to <xref ref=\"processing-directory-management\"/> for more information on external files.)</li>\n            </ul></p>\n        </subsection>\n\n        <subsection xml:id=\"revealjs-control-options\">\n            <title>Reveal.js Controls</title>\n            <idx><h>publisher options</h><h>reveal.js controls</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/revealjs/controls</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>backarrow</attr>: for the visibility of a <q>back</q> arrow.  Values are <c>faded</c>, <c>hidden</c>, or <c>visible</c>.  The default is <c>faded</c>.</li>\n                <li><attr>display</attr>: for the overall visibility of controls.  Values are <c>yes</c> or <c>no</c>.  The default is <c>yes</c>.</li>\n                <li><attr>layout</attr>: for the location of the controls.  Values are <c>edges</c> or <c>bottom-right</c>.  The default is <c>bottom-right</c>.</li>\n                <li><attr>tutorial</attr>: for animation of suggested navigation arrows.  Values are <c>yes</c> or <c>no</c>.  The default is <c>yes</c>.</li>\n            </ul></p>\n        </subsection>\n\n        <subsection xml:id=\"revealjs-navigation-options\">\n            <title>Reveal.js Navigation</title>\n            <idx><h>publisher options</h><h>reveal.js navigation</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/revealjs/navigation</cline>\n            </cd>element can have the following attribute:<ul>\n                <li><attr>mode</attr>: for the arrangement of the navigation through slides.  Values are <c>default</c>, <c>linear</c>, or <c>grid</c>.  The default is <c>default</c>.  The value <c>default</c> refers to the default mode of Reveal.js and is synonomous with <c>grid</c>.  In other words, the choice of <c>default</c> or <c>grid</c> results in identical behavior.</li>\n            </ul>See <xref ref=\"publisher-revealjs\"/> for more explanation of the two different navigation modes.</p>\n        </subsection>\n\n        <subsection xml:id=\"revealjs-resources-options\">\n            <title>Reveal.js Resources</title>\n            <idx><h>publisher options</h><h>reveal.js resources</h></idx>\n\n            <p>You may wish to host the reveal.js CSS and javascript files locally or obtain them online.  Be sure to read in  <xref ref=\"publisher-revealjs\"/> about the necessity of providing the complete MathJax library <xref ref=\"publisher-revealjs\"/> if your document has mathematics and you opt for local resources.</p>\n\n            <p>The<cd>\n                <cline>/publication/revealjs/resources</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>host</attr>: The values <c>local</c> and <c>cdn</c> will retrieve various Javascript and CSS files (such as the theme) relative to the slideshow <init>HTML</init> file or from an online Content Delivery Network (respectively).  PreTeXt will maintain a link to a current, updated, <init>CDN</init> version and this will change without notice.  This attribute may be given a <init>URL</init> or a local path, though this has not been tested, so should be considered experimental.</li>\n            </ul></p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"publication-file-epub\">\n        <title>EPUB Options</title>\n        <idx>EPUB publisher options</idx>\n        <idx><h>publisher options</h><h>EPUB</h></idx>\n\n        <introduction>\n            <p>These options are specific to a conversion to <init>EPUB</init>.  But because an <init>EPUB</init> file is a compressed archive of <init>HTML</init> files, many of the options in <xref ref=\"publication-file-online\"/> can have an effect.  See <xref ref=\"online-html\"/> for a more general overview of the conversion to <init>HTML</init>.</p>\n        </introduction>\n\n        <subsection xml:id=\"epub-cover-image-option\">\n            <title>EPUB Cover Image</title>\n            <idx><h>EPUB</h><h>cover image</h></idx>\n            <idx><h>cover image</h><h>EPUB</h></idx>\n\n            <p>The<cd>\n                <cline>/publication/epub/cover/@front</cline>\n            </cd>attribute has a value that is a path, relative to the external directory of the managed directories scheme (see <xref ref=\"processing-directory-management\"/>), that is an image to be used as a cover for the <init>EPUB</init>.  See <xref ref=\"epub\"/> for more.</p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"publication-file-source\">\n        <title>Source Options</title>\n        <idx>source publisher options</idx>\n        <idx><h>publisher options</h><h>source</h></idx>\n\n        <subsection xml:id=\"publication-file-directory-management\">\n            <title>Directory Management</title>\n\n            <p>Two directories of additional files need to be specified, as paths relative to the main <pretext/> source file, in order that they can be managed automatically for the construction of various output formats.  Study <xref ref=\"processing-directory-management\"/> carefully for the exact details.  To set these directories, the<cd>\n                <cline>/publication/source/directories</cline>\n            </cd>element must have the following two attributes:<ul>\n                <li><attr>external</attr>: a directory of files produced independently of your project.</li>\n                <li><attr>generated</attr>: a directory of files produced automatically via <pretext/> tools, from aspects of your <pretext/> source.</li>\n            </ul>It is an error to only specify one of the two directories.  It is all or nothing.</p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-source-version\">\n            <title>Versions</title>\n\n            <p>Different versions of your source can be constructed by marking elements as belonging to different components.  Each component has a name of your choosing, and then you elect components to include or exclude via the publication file.  See <xref ref=\"publisher-versions\"/> for the exact details and examples.</p>\n\n            <p>To specify components to include, the<cd>\n                <cline>/publication/source/version/@include</cline>\n            </cd>attribute should be a space-separated list of component names.  For example, if <tag>version</tag> has<cd>\n                <cline>include=\"videos labs\"</cline>\n            </cd>then a version would be created that includes all of the videos and all of the labs (since the author placed them into these components), but would not contain any elements whose component is <c>genome</c>.  Note that <c>videos</c>, <c>labs</c>, and <c>genome</c> are names peculiar to the organization of your project, and are not <pretext/> element names (even if they are used consistently with similar element names, such as <tag>video</tag>).</p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-source-extras\">\n            <title>Extras</title>\n\n            <p>Some source material is optional, and may be included based on the publisher and the audience.  The values of the attributes below are filenames.  They could be absolute paths (which is not very portable, and so likely a bad idea), or relative paths.  In the latter case, they are relative to the source file that contains the <tag>pretext</tag> element (the <q>main</q> file if you have modularized your source).  Temporarily using an absolute path can be useful when you are having problems with any of these files and want to eliminate one variable while debugging.</p>\n\n            <p>The<cd>\n                <cline>/publication/source</cline>\n            </cd>element can have the following attributes:<ul>\n                <li><attr>customizations</attr>: A filename for a structured file of <tag>custom</tag> elements, each with a <attr>name</attr> attribute and content meant to be substituted into source.  See <xref ref=\"publisher-customizations\"/> for details about the use of customizations.</li>\n                <li><attr>private-solutions</attr>: A filename for a structured file of <tag>hint</tag>, <tag>answer</tag>, <tag>solution</tag> that will see limited distribution (for example, instructors only).  See <xref ref=\"private-solutions-file\"/> for details about the use of a private solutions file.</li>\n            </ul></p>\n        </subsection>\n    </section>\n\n    <section xml:id=\"publication-file-webwork\">\n        <title><webwork/> Options</title>\n        <idx>WeBWorK publisher options</idx>\n        <idx><h>publisher options</h><h>WeBWorK</h></idx>\n\n        <introduction>\n            <p>\n                <webwork/> exercises in a <pretext/> project can be processed in two ways: using a\n                local copy of <c>pg</c>, or using a <c>webwork2</c> server. The variables here\n                control which method is used where, and how it is used. These are also discussed in\n                <xref ref=\"webwork-publisher\"/>.\n            </p>\n            <p>\n                See <xref ref=\"online-webwork-dynamism\"/> for publisher file attributes that control\n                <webwork/>'s dynamic behavior in HTML.\n            </p>\n        </introduction>\n\n        <subsection xml:id=\"publication-file-webwork-static-processing\">\n            <title>Static Processing</title>\n            <p>The attribute\n                <cd>\n                    <cline>/publication/webwork/@static-processing</cline>\n                </cd>\n                can have value <c>webwork2</c> (the default) or <c>local</c>. When <webwork/>\n                exercises are processed to make static <pretext/> representations, this is the\n                method that will be used. Either communicating with a <c>webwork2</c> server or a\n                local copy of <c>pg</c>. The fastest processing happens if you use <c>local</c>. See\n                <xref ref=\"webwork-local-pg-static-processing\"/>.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-webwork-pg-location\">\n            <title>PG Location</title>\n            <p>The attribute\n                <cd>\n                    <cline>/publication/webwork/@pg-location</cline>\n                </cd>\n                gives the absolute file path to a local copy of the <c>pg</c> repository, for when\n                static processing is local. The default value is <c>/opt/webwork/pg</c>. See\n                <xref ref=\"webwork-local-pg-static-processing\"/>.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-webwork-server\">\n            <title>Server</title>\n            <p>\n                The URL to the <c>webwork2</c> server is in the attribute\n                <cd>\n                    <cline>/publication/webwork/@server</cline>\n                </cd>\n                It should include the protocol (e.g.<nbsp/><c>http</c> or <c>https</c>) and not\n                include a trailing slash. The server should be version 2.16 or later. The default\n                value is <c>https://webwork-ptx.aimath.org</c>. See\n                <xref ref=\"webwork-representations\"/>.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-webwork-course\">\n            <title>Course</title>\n            <p>\n                The name of the host course on the <c>webwork2</c> server is in the attribute\n                <cd>\n                    <cline>/publication/webwork/@course</cline>\n                </cd>\n                The default value is <c>anonymous</c>. See <xref ref=\"webwork-representations\"/>.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-webwork-user\">\n            <title>User</title>\n            <p>\n                The username that signs in to the host course to process exercises is in the\n                attribute\n                <cd>\n                    <cline>/publication/webwork/@user</cline>\n                </cd>\n                The default value is <c>anonymous</c>. See <xref ref=\"webwork-representations\"/>.\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-webwork-password\">\n            <title>Password</title>\n            <p>\n                A password (for the host user in the host course) is in the attribute\n                <cd>\n                    <cline>/publication/webwork/@password</cline>\n                </cd>\n                The default value is <c>anonymous</c>. See <xref ref=\"webwork-representations\"/>.\n                (If the <c>webwork2</c> server is version 2.18 or earlier, instead of\n                <attr>password</attr>, there should be both <attr>coursepassword</attr>\n                and <attr>userpassword</attr>.)\n            </p>\n        </subsection>\n\n        <subsection xml:id=\"publication-file-webwork-task-reveal\">\n            <title>Task Reveal</title>\n\n            <p>\n                The attribute\n                <cd>\n                    <cline>/publication/webwork/@task-reveal</cline>\n                </cd>\n                is used to control how tasks in a multi-task exercise are made available to the\n                reader. This applies to live interactive renderings of the exercises, either in\n                HTML, in <webwork/>, or otherwise. Possible values are:\n                <ul>\n                    <li>\n                        <c>preceding-correct</c> (all preceding tasks must be correctly answered\n                        before the next is available)\n                    </li>\n                    <li><c>all</c> (all tasks are available)</li>\n                </ul>\n                See <xref ref=\"webwork-html-output\"/>.\n            </p>\n        </subsection>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/publisher-faq.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"publisher-faq\">\n    <title>Publisher FAQ: Frequently Asked Questions</title>\n\n    <p>This is a list of answers to frequent questions, in no particular order.</p>\n\n    <p><ol>\n        <li>\n            <title>Why does the conversion to HTML use a fixed width for the text?</title>\n            <p>There is an optimal number of characters per line for human readers,\n               based on research and centuries of book design.\n               So we set a fixed width such that the default font comes close to achieving this optimal value.\n               We also use responsive design to accomodate the constraints of a small screen as best as possible.\n               A reader will not want to have to carefully resize a browser window to achieve the optimal width,\n               nor should a line of text spread to many, many characters across a very expansive screen.\n               See <xref ref=\"principle-good-design\" text=\"type-local\">Principle</xref>.</p>\n        </li>\n\n        <li>\n            <title>I do not want my examples in knowls (nor my inline exercises, nor proofs)</title>\n            <p>You can change that!  See <xref ref=\"knowled-content\"/>.</p>\n        </li>\n\n        <li>\n            <title>Knowls are fantastic!  Can I have more?</title>\n            <p>Start at <xref ref=\"knowled-content\"/> and follow a cross-reference to details on the various options.</p>\n        </li>\n\n        <li>\n            <title>Why are my knowls empty?</title>\n            <p>When viewing the HTML version on your laptop or local computer as files, do not expect knowls to render properly.  This is a known bug/feature, and there is nothing to be done about it, unless you run a web server on your own machine, which fortunately is a very easy thing to do (see <xref ref=\"processing-testing-html\"/> about testing <init>HTML</init> output locally). Think of it this way: the knowl content comes from a server, but on your laptop there is no web server.  You are just looking at files.</p>\n            <p>A possible added confusion is that some knowls, such as proofs, will appear.\n               That is because their content is embedded in the page, not taken from a file.</p>\n        </li>\n\n        <li>\n            <title>How can I change the colors in the HTML version?</title>\n\n            <p>\n              Start at <xref ref=\"online-style-options\"/> to learn about how to specify alternate styles for <init>HTML</init> output,\n              including an easy way to specify an existing alternate color file.\n            </p>\n        </li>\n\n        <li>\n            <title>Something looks wrong in the HTML output. How can I customize the layout of the HTML version?</title>\n            <p>\n                If there are some anomalies in the HTML version of your book,\n                probably that was just an oversight and can be fixed easily.\n                Send a message to <c>pretext-support@googlegroups.com</c>\n                describing the problem and\n                <em>including a live link to the page showing the error</em>.\n                Do not make a minimal example. (CSS issues are handled in a\n                completely different way than other software issues.)\n              </p>\n\n              <p>\n                The long-term plan is to have a variety of different layout options,\n                which can be chosen as easily as choosing a color scheme.\n                See <xref ref=\"principle-output-styles\" text=\"type-local\">Principle</xref>.\n                The first step is to rewrite the current CSS\n                so that it is easy to develop alternate layouts.\n                That should be done by the end of Spring, 2018.\n                Then people can develop new styles!  Until that happens, either suffer\n                with the current style, or hack away at your own peril.  (Note that\n                the <pretext/> support groups will not provide any help with hacking\n                the layout, but a lot of help will be available when it is time to\n                develop alternate layouts.)\n              </p>\n        </li>\n\n        <li>\n            <title>Why does the HTML output load so many external resources?</title>\n            <p>The subtext perhaps being, <q>Why shouldn't I host these on my own server?</q>  A main goal for <pretext /> is to spare authors the headaches of learning new technologies just so they can get their content in front of readers.  That knowledge should be built into software, so an author can work at a higher level, explaining the intricacies of their discipline.  So we only assume an author can place locally-built HTML output onto some public server they have permission to use.  Any extra enabling techology we do not want to create ourselves gets pulled from other public servers.  MathJax, both code and fonts, is a good example, as one of the enabling projects.  Perhaps it is <em>the</em> enabling project.</p>\n\n            <p>This way,<ul>\n                <li>Authors can concentrate on their writing, not updating services on their server.</li>\n                <li>Servers that are hostile to ad-hoc configurations (think <q>learning management systems</q>) are not an impediment to hosting projects.</li>\n                <li>For the most part, updates to external resources happen automatically.  This allows authors and <pretext /> developers to concentrate on other aspects of their work.</li>\n            </ul></p>\n\n            <p>We get MathJax from a <term>content delivery network</term> (CDN).  Once we have that dependency, then fonts and search from Google, CSS and Javascript from the American Institute of Mathematics, and other components, all have the same dependency: a decent internet connection.  Our experience over several years is that these resources have good uptimes and good bandwidth, and so are not a source of problems.  A good offline version, with resources packaged via a script, would be a good long-term project.</p>\n\n            <p>Finally, we do not load minor resources indiscriminately.  Something in your source should suggest they are necessary and we perform those checks, document-wide.  However, since a cross-reference is usually implemented as a knowl, and we cannot be sure what a knowl might contain, we do tend to load resources on <em>every</em> page, even if only needed once.  We hope to improve this situation.  And you are enouraged to help if you have technical skills in these areas.</p>\n        </li>\n\n        <li>\n            <title>Searching my <init>PDF</init> output is broken</title>\n            <p><pretext /> goes to great lengths to make a high-quality <init>PDF</init>, but if you manipulate it by adding in new pages, or adjust the intermediate <latex /> to use other fonts, you run the risk of breaking some of the features.</p>\n\n            <p>A ligature is a combination of two characters into one, like a lower-case <q>f</q> followed closely by a lower-case <q>i</q> without a dot.  These can confuse a search.  Verbatim text sometimes ends up with <q>smart</q> quotes, where left and right versions are inverted.  This frustrates copying source code into an actual program.  And so on.  If you see problems like this with un-customized <init>PDF</init> output, we would like to hear about it.</p>\n        </li>\n\n        <li>\n            <title>My LMS breaks my HTML</title>\n            <p>Suppose your <init>HTML</init> output seems to work fine, but once you place it inside your university's Learning Management System (<init>LMS</init>) it no longer works very well.</p>\n            <p>A likely culprit is that your <init>LMS</init> is adding material to your files, ruining them in the process.</p>\n        </li>\n\n        <li>\n            <title>I get a bad line break in HTML with a hyphen between text and mathematics</title>\n            <p>When you author something like <c>&lt;m&gt;x&lt;/m&gt;-axis</c> the code produced by MathJax may allow a web browser to break a line just before the hyphen.  Yes, this looks very bad.  No, it is not a problem <pretext/> can easily solve.  So we will wait for MathJax and web browsers to do a better job.  You might let us know when this happens?</p>\n        </li>\n\n        <li>\n            <title>My publication file (or other auxiliary file) does not seem to be effective</title>\n            <p>Does the filename, or any other directory <em>in the complete path to the file</em>, have a space in it?  A common culprit might be <c>My Documents</c> on Windows.  If so, the failure is likely our fault.  Doing a test where you move your project someplace clear of filenames or directory names with spaces would be a big help to us.  And then a careful report of the offending situation will let us make a fix for the next author or publisher.  Thank-you.</p>\n        </li>\n\n        <li>\n            <title>Should I edit the <latex/> file created to make a <init>PDF</init>?</title>\n            <p>See <xref ref=\"latex-file\"/> and especially the contained <xref ref=\"edit-latex\"/>.</p>\n        </li>\n    </ol></p>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/runestone.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"runestone\">\n    <title>Conversion to Runestone</title>\n\n    <introduction>\n        <p><url href=\"https://runestone.academy\" visual=\"runestone.academy\">Runestone Academy</url> is a textbook hosting system originally designed for <init>HTML</init> textbooks about computer science.  It is similar in design and goals to <pretext/>, but is also complementary in important ways.  In particular, Runestone excels at providing very interactive versions where student work in the textbook can be graded (automatically or manually), scores recorded, and that information can be viewed by an instructor.  Any instructor can easily spin-up an instance of your book for their course, hosted at Runestone Academy at no charge to the school or to the students.  Could not be easier.</p>\n    </introduction>\n\n    <section xml:id=\"about-runestone\">\n        <title>About Runestone Academy</title>\n\n        <p>Runestone textbooks are designed around interactive activities and active reading.  We are very far along in the process of exposing these capabilities via <pretext/> markup.  Publicly-accessible Runestone servers are available at <url href=\"https://runestone.academy\" visual=\"Runestone.Academy\">Runestone Academy</url>.\n        <ul>\n            <li>Every feature of the usual <pretext/> <init>HTML</init> output should function identically on a Runestone server.</li>\n\n            <li>We have designed <pretext/> markup for the various types of problems available in Runestone: True/False, multiple choice, Parsons problems, matching, clickable area, (basic) fill-in, and ActiveCode programming exercises.  Hosted on Runestone, readers have their responses graded and get instant feedback, plus their results are saved at the site.  For other <init>HTML</init> output, hosted on your own server, these problems are automatically graded and the reader gets instant feedback, but of course, responses and scores are not saved anywhere.  Please see <xref ref=\"topic-interactive-exercises\"/> for details of these exercises and their markup.</li>\n\n            <li>Any <tag>exercise</tag> authored in <pretext/> can be electively rendered as a Runestone short answer question, when the Runestone platform is targeted as the host.  A student can use <latex/> notation in formulating their answer, and Runestone will provide the instructor an efficient interface for reviewing student responses, provide feedback, and assign scores.</li>\n\n            <li>Every feature described for an <tag>exercise</tag> is also available for PROJECT-LIKE, and for individual terminal <tag>task</tag> within these structures.</li>\n\n            <li>As much as possible, non-interactive versions of these problems will render in less-capable formats, like <init>PDF</init>, <init>EPUB</init>, and braille.</li>\n\n            <li>A <tag>program</tag> element with the attribute <attr>interactive</attr> set to <c>activecode</c> (even outside of a an exercise) will be realized as a Runestone ActiveCode interactive program, where programs can be edited, compiled, and run.  In some cases a CodeLens interactive trace utility is also available.  The <attr>language</attr> must be set.  Supported values for the language when hosted at Runestone are: <c>python</c>, <c>python3</c>, <c>c</c>, <c>cpp</c> (C++), <c>javascript</c>, <c>java</c>, <c>kotlin</c>, <c>octave</c> (Matlab), <c>sql</c>, and <c>html</c>.  When hosted on your own server, <c>python</c>, <c>javascript</c>, <c>sql</c>, and <c>html</c>, are supported with in-browser routines.  So you do not need to configure <em>anything</em> server-side for this capability.  See subsections of <xref ref=\"interactive-program-activecode\"/> for details.</li>\n\n            <li>Similarly, a <tag>program</tag> element with the attribute <attr>interactive</attr> set to <c>codelens</c> (even outside of a an exercise) will be realized as a Runestone CodeLens interactive program.  This allows a reader to step through the program, much like in a debugger, but with more informative displays of the intermediate state of the program (and nothing like breakpoints or changing variable's values).  This ability varies by language, and by hosting location.    See subsections of <xref ref=\"interactive-program-codelens\"/> for details.</li>\n\n            <li>All of the interactive exercises on a Runestone server can be worked by a student at the location in the book where they were authored, or a student may use the interface provided by the server (the <term>assignment page</term>) to locate exercises assigned by an instructor, at a location disjoint from the text itself.</li>\n\n            <li>Additional activities are available when your book is hosted on a Runestone server, such as <term>peer instruction</term>.  For example, you may choose an exercise, typically multiple-choice, for all the students to answer in class.  Then the server can pair up students <em>with different answers</em> to discuss their responses before any more is know about the solution.  This can be done through a chat window for a class where moving around is difficult.</li>\n\n            <li>Students and instructors are provided extensive reports on progress.</li>\n\n            <li>Instructors may download a spreadsheet of scores at any time.</li>\n\n            <li>If you preview some books in Runestone's library, you will notice the use of ethical advertisements.  This, along with donations, is how Runestone can offer free hosting to authors and courses.  Once a student logs in as a member of a course, <em>advertisements are no longer shown</em>.  So do not let an aversion to online advertising dissuade you from making courses possible on Runestone.</li>\n\n            <li>Interactive exercises may not function fully inside of knowls.  This bug is being tracked at <url href=\"https://github.com/PreTeXtBook/pretext/issues/1983\">GitHub #1983</url>.</li>\n        </ul></p>\n\n        <p>We will not attempt to duplicate Runestone's documentation here.  Visit the <url href=\"https://runestone.academy\" visual=\"runestone.academy\">Runestone Academy</url> site to learn more about all the features designed for hosting your textbook for everybody's courses.</p>\n    </section>\n\n\n    <section xml:id=\"sec-publishing-to-runestone-academy\">\n        <title>Publishing to Runestone Academy</title>\n\n            <p>The usual <pretext/> <init>HTML</init> output (<xref ref=\"online-html\"/>) only needs minor modifications to run profitably on a Runestone server.  You accomplish this via a publication file (<xref ref=\"publication-file\"/>).  The absolute simplest publication file to accomplish this is<cd>\n                <cline>&lt;publication&gt;</cline>\n                <cline>  &lt;html&gt;</cline>\n                <cline>    &lt;platform host=\"runestone\"/&gt;</cline>\n                <cline>  &lt;/html&gt;</cline>\n                <cline>&lt;/publication&gt;</cline>\n            </cd>(See <xref ref=\"online-platform-options\"/>.)  Then perform the usual steps for a conversion to online <init>HTML</init>, as described in <xref ref=\"online-html\"/> but also be sure to specify the correct publication file.  The output should appear like a usual <pretext/> document, but will now include a new menu on each page.  This has options which allow a reader or instructor to interact with the Runestone server, once hosted there.  So it will not look entirely right when you view it locally, since you are not a Runestone server, but you should see subtle differences.</p>\n\n        <p>\n            While this HTML may be manually deployed to any Runestone server, authors who wish to publish their\n            work on the <url href=\"https://runestone.academy\" visual=\"Runestone.Academy\">Runestone Academy</url>\n            server have a few more requirements.\n        <ul>\n            <li>\n                <p>\n                    Hosting on Runestone assumes certain details conform to how a project is organized for use by the CLI (<xref ref=\"processing-CLI\"/>).\n                    So if you are managing your project with the CLI already, you are in good shape.\n                    If you did not create your project using <c>pretext new</c>, run <c>pretext init</c> to get started upgrading.\n                    You will also need to make your project available to the public via GitHub (instructions below).\n                </p>\n            </li>\n            <li>\n                <p>\n                    Copy the publication file you usually use for your html-format build target and name it as\n                    <c>publication/runestone.ptx</c> (or something similar that makes sense in your project).\n                    Edit this file so your <tag>html</tag> element matches the example at the start of this section.\n                </p>\n            </li>\n            <li>\n                <p>\n                    You should create a new <c>&lt;target name=\"runestone\"&gt;&lt;/target&gt;</c> in your <c>project.ptx</c>.\n                    The contents of this tag will differ from your usual html-format build target in the following ways.\n                    1) You should change your <tag>publication</tag> to point to the new file you just created, perhaps named <c>publication/runestone.ptx</c>.\n                    2) You should change your <tag>output-dir</tag> to point to <c>published/document-id</c>,\n                    where <tag>document-id</tag> is defined in your <tag>docinfo</tag>.  Note Runestone's preferred practice\n                    for the <tag>document-id</tag> is to have a simple lowercase string with no dashes or other special characters.\n                    This value is visible to readers who want to register for your course on Runestone outside of any formal setting.\n                </p>\n            </li>\n            <li>\n                <p>\n                    Update the <tag>docinfo</tag> section of your book so that it includes a <tag>blurb</tag>\n                    with a <attr>shelf</attr>.  The blurb should not contain any additional markup, just a simple\n                    string, that describes your book.  Think of something like what you would read on a book jacket.\n                    It might even also be used automatically in the future for exactly that:\n                    a blurb on the back cover of a hardback book.  So keep it simple<mdash/>straight ASCII text, nothing fancy.\n                    The <attr>shelf</attr> tells the Runestone software where your book belongs in the categories\n                    on the Runestone library page.  Look at the Runestone library page to see what values are in use\n                    and copy an existing one <em>exactly</em> including capitalization.\n                    If you think a new shelf is necessary in the library, please seek advice on what to use.\n                </p>\n            </li>\n            <li>\n                <p>\n                    Use <c>pretext deploy</c> on the command line, or simply <c>git push</c> the changes described above\n                    to GitHub if you are comfortable with git. The <c>deploy</c> command will walk\n                    you through setup if you have not deployed your project to GitHub before. You do <em>not</em> have to\n                    enable GitHub Pages unless you want to. (GitHub Pages does not have the features of a Runestone\n                    server, and will not render a build for the Runestone target properly.  You can host your regular\n                    html-format build on GitHub.)\n                </p>\n            </li>\n            <li>\n                <p>\n                    With Runestone Academy and the author interface you can see a <c>draft</c> of your book on\n                        <cd>author.runestone.academy</cd>\n                    When you are ready you can make a <c>published</c> version of your book available with the click of a button.\n                    We can set up access to the author interface when you open an issue (in the next step) requesting that your book be added to Runestone Academy.\n                </p>\n            </li>\n            <li>\n                <p>\n                    Log into GitHub and open an issue at\n                    <url href=\"https://github.com/RunestoneInteractive/rs/issues/new\" visual=\"github.com/RunestoneInteractive/rs/issues/new\"/>\n                    to request that your project be added to Runestone Academy. Be sure to provide the URL of your GitHub repository (e.g.\n                    <c>https://github.com/UserName/repo-name/</c>). Runestone Academy administrators will communicate with you via GitHub to\n                    complete this process. When your book is first added to Runestone, it will clone your repository and build from your default\n                    branch. The default branch is configured on GitHub and is usually <c>main</c> or <c>master</c> but can be anything.\n                    However if you change your default branch after your book is added to Runstone you will need to get in touch with the\n                    Runestone Academy administrators to get them to re-clone your repository.\n                </p>\n            </li>\n        </ul></p>\n    </section>\n\n    <section xml:id=\"sec-the-author-interface\">\n        <title>The Author Interface</title>\n        <subsection xml:id=\"author-interface-basics\">\n            <title>Author Interface Basics</title>\n            <p>\n                The author interface is a web-based interface that allows you to manage your book on Runestone Academy.  It is designed to be easy to use and provides a number of features to help you manage your book.\n            </p>\n            <p>When moving your book to Runestone Academy we will clone your repository to our server.  We do this one time, after that we use <c>git pull</c> to get the latest changes from your repository.  This means that you can make changes to your book on your local machine and push them to GitHub, then use the author interface to pull those changes into Runestone Academy and rebuild your book. Ideally your document-id and the name of your repository are the same.</p>\n            <warning><title>Configuration Tip</title><p>If your document-id and repository name do not match, then you will need to update the <q>Path to existing repo</q> in the author interface metadata before you build your book. This should not be a GitHub <init>URL</init>, it is just the name of your GitHub repository (see <xref ref=\"img-edit-metadata\"/>).</p></warning>\n            <p>If your book has already been cloned on Runestone, then you cannot clone it again.  If you think you have a use case where this is absolutely necessary please reach out to someone on the team to talk about it.</p>\n        <p>\n            The author interface is available at <url href=\"https://author.runestone.academy/author\" visual=\"author.runestone.academy/author\"/>.  You can log in with your Runestone account.  Once you have logged in you will see a list of your books.  You can click on the book title to to edit metadata about your book.  The author interface is also where you can build a new version of your book, see some analytics about your book, and publish your book to the Runestone Academy servers.  You can even get an anonymized data set from a large sample of the classes using your book.\n        </p>\n\n        <figure xml:id=\"img-author-interface\">\n            <caption>The author interface main page</caption>\n            <image source=\"author-interface.png\" width=\"100%\">\n                <description><p>The author interface lets you pull changes from GitHub and rebuild your book.</p></description>\n            </image>\n        </figure>\n        <p>\n            The main page of the author interface gives you access to all of the different functions.  Clicking on the build button pulls the latest source from GitHub and builds your book.  If you have a large book this can take a few minutes.  When the build is complete you deploy your book to the runestone servers.   You will see the build status change at the bottom of the page.  If there is a failure for any reason you can usually see the cause by clicking the button to view the latest log.\n        </p>\n\n        <p>\n            Another feature of the author interface is to provide you with some analytics.  This page shows you the number of students that have enrolled in a course using your book year to date.  It also shows you usage patterns for the book by the week of the course.  You can click on any of the shaded cells to drill down and see how students are viewing the sections of each chapter.\n        </p>\n        <figure xml:id=\"img-analytics\">\n            <caption>Some example analytics for your book</caption>\n            <image source=\"impact-report.png\" width=\"100%\">\n                <description><p>An impact report for Foundations of Python Programming</p></description>\n            </image>\n        </figure>\n        <p>\n            The Analytics are in their early stages so we encourage you to contact us with ideas for what kinds of data you would find useful.\n        </p>\n\n        <p>\n            If you click on the book's identifier you will be able to edit metadata about the book.  This is reflected in our library page so you can change the shelf section or update the <term>blurb</term> that describes your book to an audience. The Available for courses and Visible to Everyone in the Library checkboxes allow you to control the visibility of your book.  If you are in the early stages of development you probably do not want others to see the book, but you can always view it via a direct link.  When you are ready to make your book available to the world you can check the Visible to Everyone box and your book will appear in the Runestone Library.   When you are ready to let others create a course around your book you can check the Available for Courses box.  This will allow others to create a course using your book as the textbook.  You can always change these settings later.\n        </p>\n        <figure xml:id=\"img-edit-metadata\">\n            <caption>Editing a book's metadata</caption>\n            <image source=\"edit-metadata.png\" width=\"100%\">\n                <description><p>Editing metatdata about a book</p></description>\n            </image>\n        </figure>\n        </subsection>\n        <subsection xml:id=\"author-interface-advanced\">\n            <title>Advanced Author Interface</title>\n            <p>\n                The author interface also provides a number of advanced features to address the following scenarios:\n                <ul>\n                    <li>Your repository and your <tag>document-id</tag> do not match.</li>\n                    <li>Your repository is structured so that your  <c>project.ptx</c> file is not in the root of your repository.</li>\n                    <li>You have a single repository with more than one book.</li>\n                    <li>You want to produce multiple books from a single repository using the PreTeXt versions feature.</li>\n                </ul>\n            </p>\n            <p>\n                If your repository name and your document-id do not match you will need to fill out the the <q>path to an existing repository</q> field so that it matches what you checked out from GitHub.\n            </p>\n            <p>\n                If your repository is structured so that your project.ptx file is not in the root of your repository you will need to configure the path to the project.ptx file.  This is done by filling in the field for the path to the project.ptx file.  This should be a relative path from the root of your repository to the project.ptx file.\n            </p>\n            <p>\n                If you have a single repository with more than one book you will need to do the following steps.\n                <ol>\n                    <li>Create a new book for book number 1 on the main author page using the GitHub URL to your repository.</li>\n                    <li>Make sure you have a target in your project.ptx file for this book and it is configured to use the publication file you created for Runestone.</li>\n                    <li>Edit the metadata for your book in case any of the other advanced configuration situations apply.</li>\n                    <li>To create book number 2 on the main author page use the <q>path to an existing repository</q> field.  This should be <c>/books/&lt;your-repo-name&gt;</c>.  Leave the GitHub URL field blank.</li>\n                    <li>Depending on how your repository is structured you may need to make sure you have a second target for the second book with a different output folder configured and a different document-id.  Alternatively you may have an entirely separate <c>project.ptx</c> file for the second book in a different folder of your repository.  In this case you need to fill in the field for the path to the project.ptx file. </li>\n                </ol>\n            </p>\n            <p>\n                If you have a single repository and want to build two books using different versions then the process is the same as above, but you will need to have a second publisher file with the appropriate version information so that you will get a different output.  This includes using the <attr>component</attr> on the <tag>document-id</tag> element.  This will allow you to have two different books in the same repository with different document-ids.\n            </p>\n        </subsection>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/slides.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<chapter xml:id=\"publisher-slides\">\n    <title>Conversion to Slides</title>\n    <idx>slides</idx>\n    <introduction>\n        <p>\n            As discussed in <xref ref=\"overview-slides\"/> and <xref ref=\"topic-slides\"/>,\n            support is available for authoring slideshows in <pretext/>. Currently, slideshows\n            must be authored explicitly, but we hope to eventually support annotating\n            books and articles to export appropriate content as slides.\n        </p>\n    </introduction>\n    <section xml:id=\"publisher-revealjs\">\n        <title>Reveal.js</title>\n        <p>\n            To create a reveal.js slideshow using pretext, start by creating a new project as follows.\n        </p>\n\n        <console>\n            <input>pretext new slideshow</input>\n        </console>\n\n        <p>\n            You will notice a few differences from a standard project.   In the project manifest, the format is <q>custom</q>, and there is an <tag>xsl</tag> tag that points to a custom xsl stylesheet in the xsl folder of the project.  This will import the correct reveal.js stylesheet.  After authoring your slides, you can build them with the following command.\n        </p>\n\n        <console>\n            <input>pretext build web</input>\n        </console>\n\n        <p>\n            To use <c>xsltproc</c>, run this to produce a Reveal.js slideshow:<cd>\n                <cline>xsltproc --xinclude -o path/to/output/slides.html</cline>\n                <cline>  --stringparam publisher path/to/source/publication.xml</cline>\n                <cline>  path/to/pretext/xsl/pretext-revealjs.xsl path/to/source/slides.xml</cline>\n            </cd>\n        </p>\n        <p>\n            Reveal.js supports themes that affect the overall appearance of a slideshow.\n            So in <pretext/> you can specify the name of theme in a publication file.\n            See <xref ref=\"revealjs-appearance-options\"/> for details.\n        </p>\n        <p>\n            You might assume that your slideshow will be presented with the internet available,\n            perhaps in a classroom, and will be updated for use the next semester.\n            Or maybe you are presenting at a conference where you do not want to trust an unfamiliar internet connection,\n            and you will later host an archival version of your presentation on your website and you want it to <q>just work</q> ten years from now.\n            So you can configure your slideshow to obtain resources from a Content Delivery Network (<init>CDN</init>) online,\n            or you may arrange to copy the necessary files from reveal.js and store them locally (your hard disk, your website).\n            See <xref ref=\"revealjs-resources-options\"/> for details on specifying these options, and see below for directions on how to organize the Reveal.js support files.\n        </p>\n        <p>\n            Reveal.js will render <latex/> syntax with MathJax,\n            entirely similar to how MathJax is used in the <pretext/> conversion to <init>HTML</init>.\n            This is accomplished with the Reveal.js <c>math</c> plugin, which is loaded automatically as part of your output.  When you specify that resources come from a CDN, then this plugin will also get MathJax from a CDN.\n            When you specify that resources are available locally (your hard disk, your website),\n            then the plugin itself will be obtained locally, but MathJax will still be obtained from a CDN.\n            So a local version may only be practical if you are careful not to include <em>any</em> mathematics in your document.\n            (Reveal.js <em>can</em> be configured to use a locally installed copy of MathJax, but we have not provided any support for this scenario.)\n        </p>\n        <p>\n            We are not enthusiastic about <init>PDF</init> as an electronic format.\n            But it might be a good choice as an archival format.\n            So exporting your slideshow to a <init>PDF</init> could be a good choice for a long-term archive.\n            On 2020-08-01 Andrew Rechnitzer suggests the <url href=\"https://github.com/astefanutti/decktape\" visual=\"github.com/astefanutti/decktape\"><c>decktape</c></url> node (Javascript) program.\n            The <c>reveal</c> plugin works well once you settle on a resolution (the <c>-s</c> option).\n            The <c>generic</c> plugin, along with the default key action (<c>ArrowRight</c>) can capture the behavior of slides built using the <attr>pause</attr> attribute.\n            Note that the <c>grid</c> option (see below) may not always work well for printing all slides, while <c>default</c> creates slides that <c>decktape</c> steps through properly.\n            A local web server can also be employed to serve up the slides, see <xref ref=\"processing-testing-html\"/>.\n        </p>\n        <paragraphs>\n            <title>Navigation Mode</title>\n            <p>\n                Reveal.js has various options of the visibility of arrows a presenter can click on in order to move through a presentation.\n                The visibility of these can be controlled via options in the publication file.  See <xref ref=\"revealjs-control-options\"/>.\n            </p>\n            <p>\n                Reveal.js imagines slides laid out on a 2-D grid.  Each <pretext/> section gives rise to a title slide and these are organized left-to-right.  <em>Below</em> each of these slides, arranged vertically, are the slides comprising the section.  We use the attribute value <c>grid</c> to refer to this arrangement.\n            </p>\n            <p>\n                If public speaking makes you nervous and going left-to-right and top-to-bottom\n                nearly simultaneously means you get lost and even less confident (we've seen it),\n                we have an option for you.\n                The attribute value <c>linear</c> arranges <em>all</em> your slides from left-to-right.\n                Aah, that's better.\n                See <xref ref=\"revealjs-navigation-options\"/> for details on setting the navigation mode for your slideshow.\n            </p>\n        </paragraphs>\n        <paragraphs>\n            <title>Local Resources</title>\n            <p>\n                To set up a Reveal.js slideshow to run locally, you need to have certain files available locally.  We describe here the exact mechanics of doing this.\n            </p>\n            <p>\n                Suppose you have done the <pretext/> conversion, and have created a single <c>slides.html</c> file, which you have placed in a directory named <c>talk</c>.  Now download or clone the git repository for Reveal.js (<url href=\"https://github.com/hakimel/reveal.js/\" visual=\"github.com/hakimel/reveal.js\"/>).  This has a <c>dist</c> directory with four files, such as <c>reveal.css</c>, and also directory of themes, named <c>theme</c>.  Copy these files and the directory to <c>talk</c>.  Another directory in the repository is named <c>plugin</c>.  Copy this directory to <c>talk</c> as well.\n            </p>\n            <p>\n                This process will duplicate more files than you need.  Suppose your talk is produced to use the <c>solarized</c> theme (<xref ref=\"revealjs-appearance-options\"/>), and includes some math.  Then as an example of how the copying should go, and as an example of the bare minimum necessary, your <c>talk</c> directory should be organized as follows.\n            </p>\n\n            <pre>\n            talk\n                slides.html\n                reset.css\n                reveal.css\n                reveal.js\n                theme\n                    solarized.css\n                plugin\n                    math\n                        math.js\n                        plugin.js\n            </pre>\n        </paragraphs>\n    </section>\n    <section xml:id=\"publisher-beamer\">\n        <title>Beamer <latex/></title>\n        <p>\n            Run this to produce a Beamer <latex/> slideshow:<cd>\n                <cline>xsltproc --xinclude -o path/to/output/slides.tex</cline>\n                <cline>  path/to/pretext/xsl/pretext-beamer.xsl path/to/source/slides.xml</cline>\n            </cd>\n        </p>\n        <p>\n            Of course, you should then run e.g. <c>pdflatex slides.tex</c> to produce a PDF.\n        </p>\n    </section>\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/web-hosting.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Publisher's Guide                           -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2017  Robert A. Beezer, David Farmer  -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"web-hosting\">\n    <title>Hosting Your Online Version</title>\n\n    <p>You have HTML output, and now where do you put it?  A fundamental design decision is that you only need to simply upload your <init>HTML</init> files to a hosting service and since all the links are relative, readers should be able to read your whole book with no more effort than that from you.  By design, no extraordinary configuration or privileges are necessary on the server.</p>\n\n    <p>Users of the PreTeXt-CLI (<xref ref=\"processing-CLI\">Section</xref>) have access to <c>pretext deploy</c>, which walks users through the process of deploying their document to the free <url href=\"https://pages.github.com/\" visual=\"pages.github.com/\">GitHub Pages</url> service, even if they don't manually manage their Git revision history.</p>\n\n    <p>Otherwise, for the choice of a <term>hosting service</term> you may have a fundamental decision to make.  Mostly this applies to authors who are employees of an institution, yet have the freedom to control the copyright on their scholarly work.  But there is information here for independent scholars and for other employees.<ul>\n        <li>\n            <p>You love your institution, and plan to stay for a good long time.  They have implicitly (or explicitly) supported your project with time and/or money.  A <init>URL</init> with the insitution's domain name on a freely-accessible project is good advertising for the institution.  Bandwidth is huge, IT is super reliable and helpful, all this is no-cost to you.  Read the next scenario, but you have a good situation, so you might as well use it.</p>\n        </li>\n        <li>\n            <p>You are not really attached to your institution, and five years from now you may be somewhere else.  Consider hosting your project externally, so it is not tied to your institution.</p>\n\n            <p>Or maybe policy on faculty web pages, or crummy content management systems, make it difficult or impossible to host your project.  Or it is buried five levels deep with an impossible URL.  Point out the situation to your Provost or Dean, with examples of how <em>other institutions</em> do it right.  Remember that your colleagues may be writing monographs and textbooks for commercial publishers, likely with institutional support, and selling their copyright.  Your institution should be <em>proud</em> to host your project prominently.  If a reasoned, rational approach does not improve the situation, then consider hosting your work elsewhere.</p>\n        </li>\n    </ul></p>\n\n    <p>If you are hosting at your institution, that is a great outcome.  There is no cost to you, and everybody is happy.  Lobby for a great <init>URL</init>, like <c>platypus.mammal-institute.org</c> and the rest should take care of itself.  The rest of this section is about the second situation.</p>\n\n    <p>To arrange hosting yourself,<ol>\n        <li>Purchase a domain name, it should not be a real big annual expense.  Choose something professional, rather than just your name (though your name does have a natural appeal).  And maybe something general enough that you can host your next book under that same domain name.  The idea here is to <em>own</em> the domain name, so your book can move anywhere, but that domain name will always point to the book.  This name should be <em>owned and controlled by you</em>, not your institution, not GitHub, not <c>5GBFree.com</c>.</li>\n\n        <li>\n            <p>Sign up for, and perhaps pay for, a hosting service that lets you point your domain name at the site.<ul>\n                <li>Oscar Levin explains that <url href=\"https://pages.github.com/\" visual=\"pages.github.com/\">GitHub Pages</url> is free, super-easy to use if you already use <c>git</c>, and makes using your domain name (<q>custom <init>URL</init></q>) nearly trivial.  (2017-09-08)</li>\n                <li>Mitch Keller likes the <q>Swift</q> plan at <url href=\"https://www.a2hosting.com/web-hosting\" visual=\"www.a2hosting.com/web-hosting\">A2 Hosting</url> at about $60 annually.  (2017-07-05)</li>\n            </ul></p>\n        </li>\n    </ol>Now you are set, and control distribution of your scholarly publication.  If you are bothered by the thought of having expenses while you make your work freely available to the world, then consider generating some modest income.  For example, sell Google ads against your pages.  (Why should <em>this</em> disturb anybody?  I don't get it.)  Or roll a small royalty into the print-on-demand version, see <xref ref=\"print-on-demand\" />.</p>\n\n    <p>There are a few practical details to think about.  Eventually others will link to your book, and you will also release updates.  First, think about creating a simple high-level directory that will be stable, short, easy to type, and easy to remember.  Controlling your domain name (above) is the first step.  Then consider that you may also distribute a <init>PDF</init> version, and you may someday write a second book.  So, for example, your <init>URL</init> might look like:</p>\n\n    <pre>\n    https://platypus.mammal-institute.org/aota/html\n    https://platypus.mammal-institute.org/aota/aota.pdf\n    </pre>\n\n    <p>For the first <init>URL</init>, the <c>html</c> directory would contain all of the <pretext/> <init>HTML</init> output, and especially, an <c>index.html</c> file which most any web server will serve up when the <init>URL</init> ends with a directory.  <pretext/> has tools to help you with creating the <c>index.html</c> file.</p>\n\n    <p>An improvement on the above is to have stable generic <init>URL</init>s for the current version, and dated, or versioned, <init>URL</init>s for older versions you may wish to keep in place (as a record, or for instructors who want to stick with an old version).  It is a bit more work to maintain, but will lessen the frequency that an old version of your work is promoted as the last word.</p>\n\n    <pre>\n    https://platypus.mammal-institute.org/aota/latest\n    https://platypus.mammal-institute.org/aota/aota.pdf\n    https://platypus.mammal-institute.org/aota/html-2017-08-15\n    https://platypus.mammal-institute.org/aota/aota-2017-08-15.pdf\n    </pre>\n\n</chapter>\n"
  },
  {
    "path": "doc/guide/publisher/webwork.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--   This file is part of the documentation of PreTeXt      -->\n<!--                                                          -->\n<!--      PreTeXt Author's Guide                              -->\n<!--                                                          -->\n<!-- Copyright (C) 2013-2016  Robert A. Beezer                -->\n<!-- See the file COPYING for copying conditions.             -->\n\n<chapter xml:id=\"webwork-publisher\">\n  <title><webwork/> Exercises</title>\n  <idx>\n    <h><webwork/></h>\n    <h><webwork/> exercises</h>\n  </idx>\n  <author>Alex Jordan</author>\n\n  <introduction>\n    <p>\n      You can embed <webwork/> exercises in your <pretext/> project. This requires using a\n      <c>webwork2</c> server that is version 2.16 or later. The server could be the AIM <webwork/>\n      server that has been set up for this purpose, so to get started, there is no need to establish\n      your own <c>webwork2</c> server.\n    </p>\n    <p>\n      Part of the process can optionally be sped up by using a local copy of the <c>pg</c>\n      repository.\n    </p>\n    <p>\n      PDF and other static output formats will display static versions. HTML output can have\n      interactive exercises or display problems in static form. If the HTML book is hosted on\n      Runestone, reader interactions can be recorded so that scores can be given to students.\n    </p>\n    <p>\n      All such exercises can be archived into a file tree to be uploaded onto a <c>webwork2</c>\n      server for use in the <q>traditional</q> way.\n    </p>\n    <p>\n      See <xref ref=\"webwork-author\"/> for how to include or create <webwork/> problems in your\n      source.\n    </p>\n  </introduction>\n\n  <section xml:id=\"webwork-local-pg-static-processing\">\n    <title>Using a Local Copy of PG</title>\n    <p>\n      <webwork/> problems can be processed using a local copy of the <c>pg</c> repository. This can\n      siginificanlty speed up processing time, compared with the other options that use a network\n      connection.\n    </p>\n    <p>\n      To use this processing method, clone the <c>pg</c> repository. The code below places it in a\n      default location, but you could place it somewhere else.\n      <cd>\n        <cline>cd /opt</cline>\n        <cline>mkdir webwork</cline>\n        <cline>cd webwork</cline>\n        <cline>git clone https://github.com/openwebwork/pg</cline>\n      </cd>\n      Note that you should end up with a verion of <c>pg</c> that is 2.19 or later. To check,\n      examine the <c>VERSION</c> file in the root of the repository.\n    </p>\n    <p>\n      Set the <c>PG_ROOT</c> environment variable to be the path to your copy of <c>pg</c>. If it is\n      at the default location, you could run:\n      <cd>export PG_ROOT=/opt/webwork/pg</cd>\n      This will only define <c>$PG_ROOT</c> for your current terminal session, so you might also do\n      whatever is appropriate on your system to set <c>PG_ROOT</c> each time a terminal session\n      begins.\n    </p>\n    <p>\n      In <c>pg/conf/</c>, make a copy of <c>pg_config.dist.yml</c> called <c>pg_config.yml</c>. In\n      general you should read through all the settings and set them appropriately. At a minimum, set\n      <c>directories: root:</c> to the absolute path to your clone of <c>pg</c>. You may need to set\n      paths in <c>externalPrograms:</c> as well. And maybe more...\n    </p>\n    <p>\n      For <pretext/> in general you should already have ImageMagick installed. Somewhere in your\n      file system is an XML file that ImageMagick uses to control permissions. The file is named\n      <c>policy.xml</c> and might be located in a place like <c>/etc/imagemagick/policy.xml</c>\n      or <c>/etc/ImageMagick-6/policy.xml</c>. (If your version of ImageMagick is not 6, it's\n      possible none of this is necessary. But also it should be harmless to continue.) In this file,\n      within the <tag>policymap</tag> element, add the element:\n      <cd>&lt;policy domain=\"coder\" rights=\"read\" pattern=\"PDF\" /></cd>\n      Depending on your file, you may need to <em>replace</em> a similar line that is assigning\n      <c>rights=\"none\"</c>. Make sure that this is not within a commented out portion of the file.\n    </p>\n    <p>\n      You need to have a recent enough perl version. Version 5.32 is known to work, and versions as\n      early as 5.26 may work, but have not been thoroughly tested.\n    </p>\n    <p>\n      PG also uses perl packages that you may not yet have and need to install. These may be\n      available from Linux package distributions, and the details differ from one flavor of Linux to\n      the next. Alternatively there is a utility called <c>cpanm</c> (cpanminus) that is supposed\n      to let you manage perl module installation across Linux flavors. One important difference is\n      that <c>cpanm</c> only manages perl modules. And sometimes a perl module is actually an\n      interface between perl and some other system utility. <c>cpanm</c> will not actually install\n      that system utility that it depends on and will just quit. Whereas Linux package distributions\n      will have a more sophisticated dependency understanding, and try to install non-perl tools\n      when needed. So you want to try to use Linux package distributions where you can. Or else use\n      <c>cpanm</c> and perhaps be prepared to read the log if it fails and attempt to install some\n      non-perl tool that a particular module depends on.\n    </p>\n    <p>\n      Here is a list of all the perl modules you might need. Some are essential, and some are only\n      needed for tools that many exercises will not use. <c>Carp</c> <c>Class::Accessor</c>\n      <c>Class::Tiny</c> <c>Data::Dumper</c> <c>DBI</c> <c>Digest::MD5</c> <c>File::Copy</c>\n      <c>File::Find</c> <c>File::Path</c> <c>File::Spec</c> <c>GD</c> <c>Getopt::Long</c>\n      <c>HTML::Entities</c> <c>Locale::Maketext::Lexicon</c> <c>MIME::Base64</c> <c>Mojo::Base</c>\n      <c>Mojo::IOLoop</c> <c>Mojo::DOM Mojo::JSON</c> <c>Opcode</c> <c>Pandoc</c> <c>Perl::Tidy</c>\n      <c>Pod::Simple::Search</c> <c>Scalar::Util</c> <c>Socket</c> <c>Tie::IxHash</c>\n      <c>UUID::Tiny</c> <c>YAML::XS</c>. If you don't have one of these that is needed, and you\n      attempt to process <webwork/> problems using local PG processing, you will get a clear\n      message about which module is missing that you must pursue installing it.\n    </p>\n    <p>\n      Here are some Linux package collections that we think are sufficient (but please report if\n      you find them to be insufficient).\n      <dl>\n        <li>\n          <title>Debian/Ubuntu</title>\n          <p>\n              <c>liblocale-maketext-lexicon-perl</c>, <c>libyaml-libyaml-perl</c>,\n              <c>libuuid-tiny-perl</c>, <c>libclass-tiny-perl</c>, <c>libdbi-perl</c>,\n              <c>libgd-perl</c>, <c>libgd-text-perl</c>\n          </p>\n        </li>\n        <li>\n          <title>RedHat</title>\n          <p>\n              List not yet gathered. Please report if you put together a good list.\n          </p>\n        </li>\n      </dl>\n    </p>\n    <p>\n      To try to install using <c>cpanm</c>, of course first you must have <c>cpanm</c>. Try\n      <c>cpanm --version</c> to see if you have it. If not, follow installation instructions for\n      <url href=\"https://manpages.ubuntu.com/manpages/trusty/man3/App::cpanminus.3pm.html\" visual=\"manpages.ubuntu.com/manpages/trusty/man3/App::cpanminus.3pm.html\">Ubuntu</url>,\n      <url href=\"https://packages.debian.org/search?keywords=cpanminus\" visual=\"packages.debian.org/search?keywords=cpanminus\">Debian</url>\n      (<c>sudo apt install cpanminus</c>), RedHat (<c>sudo dnf install perl-CPAN</c>), or MacOS\n      (<c>brew install cpanminus</c>, requiring you first install\n      <url href=\"https://brew.sh/\" visual=\"https://brew.sh/\">Homebrew</url>). Or you could install\n      <c>cpanm</c> directly following\n      <url href=\"https://metacpan.org/pod/App::cpanminus\" visual=\"metacpan.org/pod/App::cpanminus\">these instructions</url>.\n    </p>\n    <p>\n      Once you have <c>cpanm</c>, you can opt to install the above modules one at a time, or all at\n      once. Either way, it is probably adequate to install the modules as your own user. And yet we\n      will recommend that you install the modules as root to avoid certain installation headaches\n      and so that your system is set up to use <c>webwork2</c> if that is ever desired. To install\n      one at time, run commands like: <c>sudo cpanm Carp</c>. But proceed through each module listed\n      above. This will help you clearly see if there was an issue during installation. To install\n      all at once: <c>sudo cpanm Carp Class::Accessor ... YAML::XS</c>, replacing the dots with the\n      full list of modules above.\n    </p>\n    <p>\n      One known bump in the road may come with the <c>GD</c> module. You may need to actually\n      install <c>gd</c> first, which is not a perl module. The perl <c>GD</c> module is the perl\n      bridge to <c>gd</c>. For Ubuntu/Debian, install these packages: <c>pkgconf</c>, <c>gdlib</c>\n      <c>libgd-dev</c>.\n    </p>\n    <p>\n      Now in a publisher file, you can set the <tag>webwork</tag> element to have\n      <attr>static-processing</attr> with value <c>local</c> (see\n      <xref ref=\"publication-file-webwork-static-processing\"/>). If you put the <c>pg</c> repository\n      in the default location, this is all you need to do. Otherwise, you also need to add the\n      attribute <attr>pg-location</attr> with the absolute path, for example <c>/opt/webwork/pg</c>\n      (see <xref ref=\"publication-file-webwork-pg-location\"/>). And when you process <webwork/>\n      exercises for static representations (following <xref ref=\"webwork-representations\"/>) your\n      local copy of PG will be used instead of some remote server.\n    </p>\n    <p>\n      Note that you will still need a network connection for problems in your HTML output to render\n      as live interactive exercises.\n    </p>\n  </section>\n\n  <section xml:id=\"webwork-server-configuration\">\n    <title>Configuring a <c>webwork2</c> Server for <pretext/></title>\n    <p>\n      Note that the default <c>webwork2</c> server for <pretext/> is\n      <url href=\"https://webwork-ptx.aimath.org\" visual=\"webwork-ptx.aimath.org\"/>, and this server\n      is already configured. If you are configuring your own <webwork/> server, read on.\n    </p>\n    <p>\n      We assume a mild familiarity with administrating a <webwork/> server. The version of\n      <webwork/> needs to be 2.16 or later for use with <pretext/>.\n    </p>\n    <p>\n      The only thing you need to do at the serverlevel is set the web server to use certain headers\n      on content that is fetched. These headers tell a web browser that you are authorizing it to\n      display content from this web server as embedded content inside pages from another web server\n      (in particular, where you are hosting you <pretext/> book).\n    </p>\n    <paragraphs>\n      <title><webwork/> 2.16 or 2.17</title>\n      <p>\n        In <c>webwork2/conf/</c> there should be the apache configuration file\n        <c>webwork-apache2.4-config</c>. This file needs to include the lines:\n      </p>\n      <pre>\n        <![CDATA[\n        <IfModule mod_headers.c>\n            <Location /webwork2/html2xml>\n                Header set Access-Control-Allow-Origin \"*\"\n            </Location>\n            <Location /webwork2_files>\n                Header set Access-Control-Allow-Origin \"*\"\n            </Location>\n        </IfModule>\n        ]]>\n      </pre>\n      <p>\n        Note there is the distribution file <c>webwork-apache2.4-config.dist</c>, which has these\n        lines (or similar lines) commented out.\n      </p>\n      <p>\n        You may also need to enable headers by executing something like <c>sudo a2enmod headers</c>\n        from the command line.\n      </p>\n    </paragraphs>\n    <paragraphs>\n      <title><webwork/> 2.18</title>\n      <p>\n        Edit <c>webwork2/conf/webwork2.mojolicious.yml</c> and uncomment these lines:\n      </p>\n      <pre>\n        extra_headers:\n        #  /webwork2/render_rpc:\n        #    Access-Control-Allow-Origin: '*'\n           /webwork2/html2xml:\n             Access-Control-Allow-Origin: '*'\n           /webwork2_files:\n             Access-Control-Allow-Origin: '*'\n           /pg_files:\n             Access-Control-Allow-Origin: '*'\n      </pre>\n      <p>\n        Note the <c>render_rpc</c> lines can remain commented out, unless you have some other reason\n        to uncomment them.\n      </p>\n      <p>\n        You will need to restart the <c>webwork2</c> service.\n      </p>\n    </paragraphs>\n    <paragraphs>\n      <title><webwork/> 2.19</title>\n      <p>\n        Edit <c>webwork2/conf/webwork2.mojolicious.yml</c> and uncomment these lines:\n      </p>\n      <pre>\n        extra_headers:\n           /webwork2/render_rpc:\n             Access-Control-Allow-Origin: '*'\n        #  /webwork2/html2xml:\n        #    Access-Control-Allow-Origin: '*'\n           /webwork2_files:\n             Access-Control-Allow-Origin: '*'\n           /pg_files:\n             Access-Control-Allow-Origin: '*'\n      </pre>\n      <p>\n        Note the <c>html2xml</c> lines can remain commented out, unless you have some other reason\n        to uncomment them.\n      </p>\n      <p>\n        Also in this same file, set <c>allow_unsecured_rpc: 1</c>.\n        You will need to restart the <c>webwork2</c> service.\n      </p>\n    </paragraphs>\n  </section>\n\n  <section xml:id=\"webwork-course-configuration\">\n    <title>Configuring a <webwork/> Course for <pretext/></title>\n    <p>\n      To make use of <webwork/> in your <pretext/> project, you need a host <webwork/> course. If\n      someone is providing a <webwork/> server for you, like the AIM server at\n      <url href=\"https://webwork-ptx.aimath.org\" visual=\"webwork-ptx.aimath.org\"/>, then we assume\n      they have already configured a course for use with <pretext/>, and you may skip this section\n      and move on to <xref ref=\"webwork-processing\"/>.\n    </p>\n    <p>\n      If you are configuring your own <webwork/> server to use with <pretext/>, we assume a mild\n      familiarity with administrating a <webwork/> server. The version of <webwork/> needs to be\n      2.16 or later for use with <pretext/>.\n    </p>\n    <p>\n      Using the <c>admin</c> course, create a course named <c>anonymous</c>. (You could name it\n      something else, but we assume the name is <c>anonymous</c> in this guide.) In the course's\n      Course Configuration menu, set all permissions to <c>admin</c> (or perhaps set some to the\n      even more restrictive <c>nobody</c>). Except set <q>Allowed to login to the course</q> to\n      <c>login_proctor</c>. Also if your server is new enough, it has\n      <q>Allowed to view course home page</q> which should also be set to <c>login_proctor</c>.\n    </p>\n    <p>\n      In the Accounts Manager(Classlist Editor in older versions of <webwork/>), add a user named\n      <c>anonymous</c> (again, you could use some other name), and set that user's permission level\n      to <c>login_proctor</c>, the permission level one higher than <c>student</c>. Set that user's\n      password to <c>anonymous</c> (again, you could use some other password). Note that because\n      this is public information, anyone will be able to log into this course as this user. This is\n      why restricting permissions in the previous paragraph is very important.\n    </p>\n    <p>\n      Add the following lines to the <c>course.conf</c> file (which lives in the parent folder of\n      the <c>templates/</c> folder.)\n    </p>\n    <pre>\n      # Hide message about previewing hints and solutions for instructors\n      $pg{specialPGEnvironmentVars}{ALWAYS_SHOW_HINT_PERMISSION_LEVEL} = 100;\n      $pg{specialPGEnvironmentVars}{ALWAYS_SHOW_SOLUTION_PERMISSION_LEVEL} = 100;\n    </pre>\n    <paragraphs>\n      <title><webwork/> 2.16, 2.17, or 2.18 (not needed for 2.19 or later)</title>\n      <p>\n        In the <c>templates/macros/</c> folder, edit <c>PGcourse.pl</c> (or create it if need be)\n        and add the following lines.\n      </p>\n      <pre>\n        #### Replace essay boxes with a message\n        my $essay_message = 'If you were logged into a WeBWorK course '\n            . 'and this problem were assigned to you, '\n            . 'you would be able to submit an essay answer '\n            . 'that would be graded later by a human being.';\n\n        sub essay_box {\n          my $out = MODES(\n            TeX => '',\n            Latex2HTML => '',\n            HTML => qq!&lt;p>$essay_message&lt;/p>!,\n            PTX => '',\n          );\n          $out;\n        };\n\n        sub explanation_box {\n          return if ($envir{waiveExplanations});\n          my $out = MODES(\n            TeX => '',\n            Latex2HTML => '',\n            HTML => qq!&lt;p>$essay_message&lt;/p>!,\n            PTX => '',\n          );\n          $out;\n        };\n\n        #### Suppress essay help link\n        sub essay_help {};\n\n        #### How many attempts until hint is available\n        $showHint = -1;\n        # May be a bug that WeBWorK requires -1 instead of 0\n        # for immediate access to hints\n\n        1;\n      </pre>\n    </paragraphs>\n    <p>\n      Now <pretext/> will be able to communicate with this course to retrieve what is needed.\n    </p>\n  </section>\n\n  <section xml:id=\"webwork-pg-macros\">\n    <title>PG Macros from the <pretext/> Source</title>\n    <p>\n      The project's <webwork/> exercises may rely on PG macros that are written into the project's\n      source. For example, the exercises might have TikZ images that rely on\n      <c>docinfo/latex-image-preamble</c>.\n    </p>\n    <p>\n      For this, a PG macro library file must be built and placed in the host course's\n      <c>templates/macros/</c> folder <em>before</em> attempting to process the <webwork/>\n      exercises. To build this macro library, run:\n      <cd>\n        pretext -c pg-macros aota.ptx\n      </cd>\n      <c>aota.ptx</c> in the example is the root file for your <pretext/> project. You could also\n      specify a location to place the resulting macro library file:\n      <cd>\n        pretext -c pg-macros -d some/file/path aota.ptx\n      </cd>\n    </p>\n    <p>\n      Once you have the macro library file, upload it to the host <webwork/> course's\n      <c>templates/macros</c> folder. If your project relies on the AIM <webwork/> server and you\n      need to supply a macro library file to a host course on that server, post to\n      <email>pretex-support@googlegroups.com</email> and we can help with that.\n    </p>\n  </section>\n\n  <section xml:id=\"webwork-processing\">\n    <title>Processing <webwork/> Exercises</title>\n\n    <subsection xml:id=\"webwork-representations\">\n      <title>Extraction and Processing</title>\n      <p>\n        Before anything else can be done, a <pretext/> project with <webwork/> problems must first\n        have its <webwork/> content extracted and processed into multiple representations, which are\n        then collected into an auxiliary XML file. Using the CLI, this is done with\n        <c>pretext generate webwork</c> (if you want to reference a particular target, add\n        <c>-t [targetname]</c>).\n      </p>\n      <p>\n        If instead you want to use the <c>pretext/pretext/pretext</c> script, you might need to\n        install the Python <c>requests</c> module. It is not uncommon for your computer to not have\n        <c>requests</c> installed (although it comes with the CLI), so you should check if it is\n        there and install it if need be. You can check if it is installed from the command line\n        with:\n        <cd>\n          python -c \"import requests\"\n        </cd>\n        And if it isn't, you can install it with <c>pip</c>, specifically with:\n        <cd>\n          pip install requests\n        </cd>\n        (If you don't have <c>pip</c> installed, you could use:\n        <cd>\n          easy_install pip\n        </cd>\n        to install it.)\n      </p>\n      <p>\n        Processing <webwork/> problems is best accomplished if you are using directory management.\n        With a publication file, declare the external and generated directories as describe in\n        <xref ref=\"processing-directory-management\"/>. Then use the <c>pretext</c> script to extract\n        <pretext/> content from the <webwork/> server. It will be placed in a <c>webwork</c>\n        subfolder of your generated folder. For example:\n      </p>\n      <console>\n        <input prompt=\"$ \">pretext -c webwork -p &lt;publisher&gt; aota.ptx</input>\n      </console>\n      <p>\n        <c>aota.ptx</c> in the example is the root file for your <pretext/> project.\n      </p>\n      <warning>\n        <title>File Paths</title>\n        <p>\n          In the previous example and those that follow, you should specify paths as needed. For\n          example, the <c>pretext</c> script is typically at <c>~/pretext/pretext/pretext</c>. And\n          the <c>-p</c> option is specifying a publication file.\n        </p>\n      </warning>\n      <p>\n        <c>-c webwork</c> means you are processing the <webwork/> components.\n      </p>\n      <p>\n        <c>-p</c> specifies the publication file (see <xref ref=\"publication-file-reference\"/>).\n        In the publication file, the element <tag>webwork</tag> may have attributes:\n        <ul>\n          <li><attr>server</attr> (<xref ref=\"publication-file-webwork-server\"/>)</li>\n          <li><attr>course</attr> (<xref ref=\"publication-file-webwork-course\"/>)</li>\n          <li><attr>user</attr> (<xref ref=\"publication-file-webwork-user\"/>)</li>\n          <li><attr>password</attr> (<xref ref=\"publication-file-webwork-password\"/>)</li>\n        </ul>\n        If absent, these default to <c>https://webwork-ptx.aimath.org</c>, <c>anonymous</c>,\n        <c>anonymous</c>, <c>anonymous</c>, and <c>anonymous</c> respectively. If you specify a\n        server, you must correctly specify the protocol (<c>http</c> versus <c>https</c>). And it\n        must be version 2.16 or later. Do not include a trailing slash.\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"webwork-html-output\">\n      <title>HTML output</title>\n\n      <p>\n        We assume you are using managed directories, and have <webwork/> representations file as\n        above.  Build the HTML with <c>pretext build TARGET</c> where <c>TARGET</c> is the name of\n        a target that has <c>format=\"html\"</c>. You can also use <c>pretext/pretext</c> to build\n        HTML. For example:\n      </p>\n      <console>\n        <input prompt=\"$ \">pretext -c doc -f html -p &lt;publisher&gt; -d &lt;destination&gt; aota.ptx</input>\n      </console>\n      <p>\n        <c>-p</c> specifies the publication file, as described in\n        <xref ref=\"publication-file-reference\"/>.\n      </p>\n      <p>\n        <c>-d</c> specifies a folder to place all of the HTML output. If unspecified, this will be\n        the current working directory.\n      </p>\n      <p>\n          There are five publisher file entries which control how a <webwork/> problem is realized\n          within <init>HTML</init> output. These are divided based on where the exercise (or\n          project-like) resides: inline, within a division of exercises, within a reading questions\n          division, within a worksheet, or if it is a project or similar. If the class of problems\n          is declared <c>dynamic</c>, then each problem has a button that readers can click to make\n          the problem interactive. Conversely, if the class of problems is declared <c>static</c>,\n          then the problems render with a static preview.\n        </p>\n        <p>\n          By default, inline exercises and project-like will be dynamic, under the assumption that\n          these are meant to be worked as a reader works through the material. The others will be\n          static, under the assumption that they will be placed on a WeBWorK server where they will\n          be worked for scores and grades.  See <xref ref=\"online-webwork-dynamism\"/> for the\n          precise syntax for these switches.\n        </p>\n      <p>\n        If an exercise is subdivided into tasks, then by default they will only be revealed\n        incrementally as the reader answers each one correctly. If you would like to have all tasks\n        revealed from the start, then this option may be elected in the publication file (see\n        <xref ref=\"publication-file-webwork-task-reveal\"/>).\n      </p>\n    </subsection>\n\n    <subsection xml:id=\"webwork-latex-output\">\n      <title><latex/> output</title>\n\n      <p>\n        We assume you are using managed directories, and have <webwork/> representations file as\n        above. Then build as normal with the CLI. Or you may use <c>pretext/pretext</c> to build a\n        <latex/> PDF. For example:\n      </p>\n      <console>\n        <input prompt=\"$ \">pretext -c doc -f pdf -p &lt;publisher&gt; -d &lt;destination&gt; aota.ptx</input>\n      </console>\n      <p>\n        <c>-p</c> specifies the publication file, as described in\n        <xref ref=\"publication-file-reference\"/>.\n      </p>\n      <p>\n        <c>-d</c> specifies a folder to place the PDF output. If unspecified, this will be the\n        current working directory.\n      </p>\n    </subsection>\n\n    <subsection>\n      <title>Creating Files for Uploading to <webwork/></title>\n\n      <p>\n        All of the <tag>webwork</tag> that you have written into your project can be\n        <q>harvested</q> in such a way that you could send them to a <webwork/> server for use\n        within <webwork/>. The components you would want are PG files for the exercises, PG macros\n        that you wrote, set defintion files corresponding to the sections (or other chunks) of your\n        project, and header files for those sets. All of this was placed into your project's\n        <c>generated/webwork/pg</c> folder when you executed <c>pretext -c webwork</c>, so you could\n        find it there and package it all up to send to your <webwork/> server.      </p>\n      <p>\n        Alternativley, you may run the following:\n      </p>\n      <console>\n        <input prompt=\"$ \">pretext -c all -f webwork-sets -p &lt;publisher&gt; -d &lt;destination&gt; aota.ptx</input>\n      </console>\n      <p>\n        This will specify a destination for that folder tree other than within\n        <c>generated/webwork/pg</c>. If you additionally use a <c>-z</c> flag, you will instead get\n        a compressed tarball (<c>.tgz</c> file).\n      </p>\n    </subsection>\n  </section>\n\n  <section>\n    <title>Unachievable Conversions</title>\n    <p>\n      By authoring <webwork/> problems within <pretext/> you do not need to learn all the ins and\n      outs of <init>PGML</init> markup and you can concentrate on simply becoming proficient with\n      <pretext/>. However, there are a few <pretext/> constructions which are not achievable in a\n      <webwork/> problem for one reason or another. We list exceptions here, and also try to use\n      source-checking tools to alert you to any differences.\n      <ul>\n        <li>\n          <p>\n            Anything that is the numbered target of a cross-reference, such as a figure, may not be\n            inside a <webwork/> exercise. The exercise may go on to have a life of its own\n            independent of its parent <pretext/> project, and then such a number makes no sense.\n          </p>\n        </li>\n        <li>\n          <p>\n            Certain aspects of specifying borders of a <pretext/> <tag>tabular</tag> are not\n            realizable in a <init>PGML</init> table. Specifically,\n            <ul>\n              <li>\n                <p>\n                  Specifying column-specific top border attributes are not implemented.\n                </p>\n              </li>\n              <li>\n                <p>\n                  Cell-specific bottom border attributes are not implemented.\n                </p>\n              </li>\n              <li>\n                <p>\n                  <c>medium</c> and <c>major</c> table rule-thickness attributes will be handled as\n                  if they were <c>minor</c>.\n                </p>\n              </li>\n            </ul>\n          </p>\n        </li>\n        <li>\n          <p>\n            When constructing a list (<tag>ul</tag> or <tag>ol</tag>) specifying some number of\n            columns (using the <attr>cols</attr> attribute) will be ignored. PGML markup has no way\n            to declare multicolumn lists.\n          </p>\n        </li>\n      </ul>\n    </p>\n  </section>\n\n</chapter>\n"
  },
  {
    "path": "doc/quickref/README.md",
    "content": "# Quick Reference (aka \"quickrefs\")\n\nThese \"cheat sheets\" are in the style of similar quick reference sheets pioneered for topical areas of Sage Math software.  Two pages maximum, so they can be printed on one sheet of paper (two-sided).\n\n* `quickref-pretext.tex`: general authoring techniques, initiated by Tom Judson\n* `quickref-cli.tex`: basic usage of the PreTeXt CLI, initiated by Tom Judson and Oscar Levin\n\nAuthored in LaTeX, given their structure, which would not be well-represented in PreTeXt.  Built PDF versions are available on the PreTeXt website.  If you build your own copies while editing, use `xelatex`, not `pdflatex`.\n\nExtensions, edits, and reorganization are all welcome contributions.  Topics represented by additional quickrefs would also be welcome.\n"
  },
  {
    "path": "doc/quickref/quickref-cli.tex",
    "content": "% PreTeXt CLI Quick Reference\n% (c) 2022 by Steven Clontz, Thomas W.\\ Judson, and Oscar Levin\n% Licensed with the GNU Free Documentation License (GFDL)\n%   http://www.gnu.org/copyleft/fdl.html\n%\n%  History\n%\n%    2012-06-15  Initial version based on Sage 9.4\n%\n%\n\\documentclass{article}\n\\usepackage{graphicx}\n\\usepackage[landscape]{geometry}\n\\usepackage[xetex]{color}\n\\usepackage{url}\n\\usepackage{multicol}\n\\usepackage{amsmath}\n\\usepackage{amsfonts}\n\\usepackage{textcomp}\n\\newcommand{\\ex}{\\color{blue}}\n\\newcommand{\\apost}{\\textquotesingle}\n\\newcommand{\\warn}{\\bf\\color{red}}\n\\pagestyle{empty}\n\\advance\\topmargin-.9in\n\\advance\\textheight2in\n\\advance\\textwidth3.0in\n\\advance\\oddsidemargin-1.45in\n\\advance\\evensidemargin-1.45in\n\\parindent0pt\n\\parskip2pt\n% Section break, dictates column widths?\n\\newcommand{\\hr}{\\centerline{\\rule{3.5in}{1pt}}}\n% Adjust gap to affect spacing, page count\n\\newcommand{\\sect}[1]{\\hr\\par\\vspace*{2pt}\\textbf{#1}\\par}\n% Mandatory indentation on subsidiary lines\n\\newcommand{\\skipin}{\\hspace*{12pt}}\n% notation shortcut\n\\newcommand{\\Z}{\\mathbb{Z}}\n\\begin{document}\n\\begin{multicols*}{3}\n\\begin{center}\n\\textbf{PreTeXt Quick Reference:\\\\ Command Line Interface (CLI)}\\\\\n% Steve Clontz, T.\\ W.\\ Judson, and Oscar Levin \\\\\nCLI version 2.0.0, 2023-09-12  \\\\\nFull documentation: \\url{pretextbook.org}\\\\\n% Switch to CC?\nGNU Free Document License, extend for your own use\n\\end{center}\n% backup over center environment gap\n\\vspace{-3ex}\n%*********************************************\n\\sect{Setup}\n\\hr\\textbf{Check requirements}\\\\\n\\underline{Note}: {\\verb|python|} might be called {\\verb|python3|} if you have MacOS or Linux.\n\n{\\ex \\verb| python --version|} : the CLI requires Python version 3.8 or later\\\\\n{\\ex \\verb| pip --version|} : pip is the package installer for Python \\\\\n{\\ex \\verb| xelatex --version|} : some PreTeXt features require \\LaTeX \\\\\n\n\\hr\\textbf{Install PreTeXt}\\\\\n{\\ex \\verb| python -m pip install pretext|} : install PreTeXt \\\\\n{\\ex \\verb| pretext --version|} : check version to verify install \\\\\n\n\n\n\\hr\\textbf{Create a new project}\\\\\n{\\ex \\verb| pretext new book|} : creates a new PreTeXt book in \\texttt{new-pretext-project}\\\\\n{\\ex \\verb| pretext new article|} : creates a new PreTeXt article \\texttt{new-pretext-project}\n\n\\hr\\textbf{Update a project to use the CLI}\\\\\n{\\ex \\verb| pretext init|}: creates project manifest ({\\verb|project.ptx|}), and publication file ({\\verb|publication/publication.ptx|}).  Edit these files appropriately before proceeding. \\\\\n{\\ex \\verb| pretext pretext init --refresh|}: creates new copies of project manifest and publication file to compare for new features.\n\n\\hr\\textbf{Upgrade PreTeXt}\\\\\n{\\ex \\verb| python -m pip install --upgrade pretext|}: upgrade to latest stable release \\\\\n\n\\hr\\textbf{Get Help}\\\\\n{\\ex \\verb| pretext --help|}: show general help\\\\\n{\\ex \\verb| pretext build --help|}: show help for build command.  Each subcommand has its own help.\n\n%\n%*********************************************\n%*********************************************\n\\columnbreak\n\\sect{Basic Usage}\n \\hr\\textbf{Build a PreTeXt document}\n\n{\\ex \\verb| pretext build|}: Builds the project to the format of the first target in {\\verb|project.ptx|}.\\\\\n{\\ex \\verb| pretext build print|}: Create pdf version (assuming {\\verb|<target name=\"print\">|}) is in {\\verb|project.ptx|}\\\\\n% {\\ex \\verb| pretext build print|}: Create print (pdf) version\\\\\n\n\n\\hr\\textbf{Generate source images and WeBWorK}\\\\\nIf your book has any WeBWorK, latex-image, asymptote, sageplot, interactive, etc. assets will be generated on each build. You can generate separately with:\\\\\n\n{\\ex \\verb| pretext generate|}: Generate all assets for first target in {\\verb|project.ptx|}.\\\\\n{\\ex \\verb| pretext generate webwork|}: Generate webwork for first target in {\\verb|publication.ptx|}\\\\\n{\\ex \\verb| pretext generate sageplot -t print|}: Generate sageplot for target ``print''.\\\\\n{\\ex \\verb| pretext generate latex-image -x img-graph1|}: Generate latex-image with xml:id ``img-graph1'' (for first target).\\\\\n%*********************************************\n\n \\hr\\textbf{View a PreTeXt document (local)}\n\n{\\ex \\verb| pretext view|}: Creates a local server to preview the first target in {\\verb|project.ptx|}\\\\\n{\\ex \\verb| pretext view print|}: Views the ``print'' target\\\\\n% {\\ex \\verb| CTRL+C|} to close the server\\\\\n%*********************************************\n\n\n%*********************************************\n\\hr\\textbf{Deploy to GitHub Pages}\n\n{\\ex \\verb| pretext deploy|} : deploys Git-managed project to GitHub Pages\\\\\n% {\\ex \\verb| pretext deploy -u|} : deploys and also uploads source files\\\\\n\n\n%*********************************************\n\n% \\hr\\textbf{Useful Shortcuts}\n\n% {\\ex \\verb| pretext build -g|}: build and generate in one step\\\\\n% {\\ex \\verb| pretext build web -g latex-image|}: build web target and generate latex-images\\\\\n% {\\ex \\verb| pretext view -b|}: build before you preview\\\\\n% {\\ex \\verb| pretext view -g|}: generate assets before you view\\\\\n% {\\ex \\verb| pretext view -bg|}: generate assets, build, and view\\\\\n\n\\columnbreak\n\n%*********************************************\n\\hr\\textbf{Project Manifest}\nThe file {\\verb|project.ptx|} describes your build targets.  Each target has a \\emph{name} (e.g. ``print-latex'') that you build or view with, e.g. {\\verb|pretext build print-latex|}.\n\nStructure of a target:\n\\begin{verbatim}\n  <target name=\"web\" format=\"html\"\\>\n\\end{verbatim}\n{\\ex \\verb|format|} can be html, latex, pdf, custom, epub, kindle, or braille\\\\\nAdditional attributes:\\\\\n{\\ex \\verb|source|} is the path to the root ptx document.  Default: \\texttt{source/main.ptx}\\\\\n{\\ex \\verb|publication|} is the path to the publication file.  Default \\texttt{publication/publication.ptx}\\\\\n{\\ex \\verb|output-dir|} is the path the the folder that will hold output.  Default is \\texttt{output/[target name]}\\\\\n\n\n\n\n\\sect{Recommended Project Structure}\n{\\ex \\verb|assets|}: Contains all static assets.\\\\\n% , such as a photo at {\\verb|assets/frog.jpg|} used as {\\verb|<image source=\"frog.jpg\"/>|}.\\\\\n{\\ex \\verb|generated-assets|}: Contains the products of running {\\verb|pretext generate|}. Should not be edited manually. \\\\\n{\\ex \\verb|output|}: Contains the products of running {\\verb|pretext build|}. Should not be edited manually. \\\\\n{\\ex \\verb|publication|}: Contains your publication file(s) (e.g. \\verb|publication/publication.ptx|). \\\\\n{\\ex \\verb|source|}: Contains your PreTeXt source file(s) (e.g. \\verb|source/main.ptx|). \\\\\n{\\ex \\verb|project.ptx|}: Describes your project's targets (e.g. \\verb|web|, \\verb|print-latex|) and executables.\\\\\n% {\\ex \\verb|README.md|}: Written description of your project.\\\\\n{\\ex \\verb|requirements.txt|}: Specifies version of CLI used to build your project.\\\\\n{\\ex \\verb|.gitignore|}: Specifies files not shared publicly when using Git or \\verb|pretext deploy|.\n\n%*********************************************\n% \\newpage\n\n% \\columnbreak\n\n% \\hr\\textbf{publication.ptx}\n\n% Information about the publication file goes here.\n\n\n\n% \\columnbreak\n% \\sect{Common PreTeXt source tags}\n\n% \\hr\\textbf{Blocks/Environments}\n% Example:\n% \\begin{verbatim}\n% <theorem>\n%   <title>My Title</title>\n%   <statement>\n%     <p>\n%       Statement of theorem.\n%     </p>\n%   </statement>\n%   <proof>\n%     <p>\n%       The proof.\n%     </p>\n%   </proof>\n% </theorem>\n% \\end{verbatim}\n% Theorem-like: {\\ex\\verb|<theorem>|}, {\\ex\\verb|<algorithm>|}, {\\ex\\verb|<claim>|}, {\\ex\\verb|<corollary>|}, {\\ex\\verb|<fact>|}, {\\ex\\verb|<identity>|}, {\\ex\\verb|<lemma>|}, {\\ex\\verb|<proposition>|}.\\\\\n% Example-like: {\\ex\\verb|<example>|}, {\\ex\\verb|<problem>|}, {\\ex\\verb|<question>|}.\\\\\n% Axiom-like: {\\ex\\verb|<assumption>|}, {\\ex\\verb|<axiom>|}, {\\ex\\verb|<conjecture>|}, {\\ex\\verb|<heuristic>|}, {\\ex\\verb|<hypothesis>|}, {\\ex\\verb|<principle>|}.\\\\\n% Remark-like: {\\ex\\verb|<remark>|}, {\\ex\\verb|<convention>|}, {\\ex\\verb|<insight>|}, {\\ex\\verb|<note>|}, {\\ex\\verb|<observation>|}, {\\ex\\verb|<warning>|}.\\\\\n% Project-like: {\\ex\\verb|<project>|}, {\\ex\\verb|<activity>|}, {\\ex\\verb|<exploration>|}, {\\ex\\verb|<investigation>|}.\\\\\n\n% Other common blocks:\\\\\n% {\\ex\\verb|<definition>|}\\\\\n% {\\ex\\verb|<exercise>|}\\\\\n% {\\ex\\verb|<task>|}: a division of an exercise or project-like\\\\\n\n\n\n\n% \\columnbreak\n\n% \\hr\\textbf{Examples}\n\n% Examples go here.\n\n\n\n\n\n\\end{multicols*}\n\n\\end{document}\n"
  },
  {
    "path": "doc/quickref/quickref-pretext.tex",
    "content": "% Sage CLI Quick Reference\n% (c) 2022 by Thomas W.\\ Judson,\n% Licensed with the GNU Free Documentation License (GFDL)\n%   http://www.gnu.org/copyleft/fdl.html\n%\n%  History\n%\n%    2012-06-15  Initial version based on Sage 9.4\n%\n%\n\\documentclass{article}\n\\usepackage{graphicx}  \n\\usepackage[landscape]{geometry}\n% presumes xelatex, so other character sets behave better\n\\usepackage[xetex]{color}\n\\usepackage{url}\n\\usepackage{multicol}\n\\usepackage{amsmath}\n\\usepackage{amsfonts}\n\\usepackage{textcomp}\n\\newcommand{\\ex}{\\color{blue}}\n\\newcommand{\\apost}{\\textquotesingle}\n\\newcommand{\\warn}{\\bf\\color{red}}\n\\pagestyle{empty}\n\\advance\\topmargin-.9in\n\\advance\\textheight2in\n\\advance\\textwidth3.0in\n\\advance\\oddsidemargin-1.45in\n\\advance\\evensidemargin-1.45in\n\\parindent0pt\n\\parskip2pt\n% Section break, dictates column widths?\n\\newcommand{\\hr}{\\centerline{\\rule{3.5in}{1pt}}}\n% Adjust gap to affect spacing, page count\n\\newcommand{\\sect}[1]{\\hr\\par\\vspace*{2pt}\\textbf{#1}\\par}\n% Mandatory indentation on subsidiary lines\n\\newcommand{\\skipin}{\\hspace*{12pt}}\n% notation shortcut\n\\newcommand{\\Z}{\\mathbb{Z}}\n\n\\begin{document}\n\\begin{multicols*}{3}\n\\begin{center}\n\\textbf{PreTeXt Authoring Quick Reference}\\\\\n% change review date iff there is an actual\n% review, not just some isolated update\nVersion 1.0, reviewed 2022-07-27\\\\\nT.\\ W.\\ Judson and others??? \\\\\nGNU Free Document License, extend for your own use. \\\\\nFor more details, see \\url{https://pretextbook.org/doc/guide/html/}\n\\end{center}\n% backup over center environment gap\n\\vspace{-2ex}\n%*********************************************\n\\sect{PreTeXt Documents}\nFor an article\n\\footnotesize{\n\\begin{verbatim}\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pretext>\n  <article>\n    <title>Hello World!</title>\n    <p>This is a PreTeXt document.</p>\n  </article>\n</pretext>\n\\end{verbatim}\nor a book\n\\begin{verbatim}\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pretext>\n  <book>\n    <title>Hello World!</title>\n    \n    <chapter>\n    \t<title>My Great Chapter</title>\n    \t<p>This is a PreTeXt document.</p>\n   </chapter>\n   \n  </book>\n</pretext>\n\\end{verbatim}\n}\n%\n\n\\sect{Structure of a PreTeXt Document}\n\nPreTeXt documents are structured and may contain divisions such as \\texttt{<chapter>} (for books), \\texttt{<section>}, \\texttt{<subsection>}, and \\texttt{<p>} (paragraphs).\n\n{\\footnotesize\n\\begin{verbatim}\n<section>\n  <title>Mandatory</title>\n  <p>First paragraph. </p>\n\n  <p>Second paragraph.</p>\n</section>\n\\end{verbatim}\n}\n\nDivisions may contain other divisions. Divisions require a \\texttt{<title>}.\n\n{\\footnotesize\n\\begin{verbatim}\n<section>\n  <title>Mandatory</title>\n  <introduction>\n    <p>Introductory text. (Optional.)</p>\n  </introduction>\n\n  <subsection>\n    <title>Mandatory</title>\n    <p>Subsection content.</p>\n  </subsection>\n\n  <conclusion>\n    <p>Concluding text. (Optional.)</p>\n  </conclusion>\n</section>\n\\end{verbatim}\n}\n%*********************************************\n%*********************************************\n\\sect{Blocks}\n\nBesides paragraphs (\\texttt{<p>}) the most common object to include in a division, \n \\texttt{<remark>},  \\texttt{<example>}, \\texttt{<figure>} and \\texttt{<table>}.\n \n \\sect{Cross-References}\n\nAny element that you place a \\texttt{@xml:id} on can become the target of a cross-reference. For example, suppose your source had \\texttt{<subsection xml:id=\"subsection-flowers\">} and someplace else you wrote \\texttt{<xref ref=\"subsection-flowers\" />}.\n\n\\sect{Mathematics in PreTeXt}\n\n\nSince PreTeXt has robust support for mathematical formulas. Inside the tags that delimit math environments, your code is basically \\LaTeX\\, with the caveat that you must be careful with \\texttt{<}, \\texttt{>}, and \\texttt{\\&} since they are special symbols for XML.  When typing math in your PreTeXt code, use \\texttt{\\textbackslash{lt}} for  \\texttt{<}, \\texttt{\\textbackslash{gt}} for  \\texttt{>}, and \\texttt{\\textbackslash{amp}} for  \\texttt{\\&}.\n\nFor inline math, wrap things in the \\texttt{<m>} tag: $a^2 + b^2 = c^2$ is \nproduced by \\texttt{<m>a\\^{}2 + b\\^{}2 = c\\^{}2</m>}.\n\n\n\nWe get displayed equations via the \\texttt{<me>} and \\texttt{<men>}. (to produce a numbered equation) tags.  The code\n{\\footnotesize\n\\begin{verbatim}\n<me>\n   \\frac{d}{dx} \\int_1^x \\frac{1}{t}\\, dt \n</me>\n<men xml:id=\"eqn-ftc\">\n  \\int_a^b f(x)\\, dx = F(b) - F(a)\n</men>\n\\end{verbatim}\n}\nproduces\n\\[\n \\frac{d}{dx} \\int_1^x \\frac{1}{t}\\, dt \n \\]\n \\begin{equation}\n \\int_a^b f(x)\\, dx = F(b) - F(a)\n \\end{equation}\n\nFor a collection of equations all aligned at a designated point, use \\texttt{<md>} and \\texttt{<mrow>} (\\texttt{<mdn>} for numbered equations.). The code\n\\begin{verbatim}\n  <md>\n    <mrow>x \\amp = r\\cos\\theta</mrow>\n    <mrow>y \\amp = r\\sin\\theta</mrow>\n  </md>\n  \\end{verbatim}\n  produces\n  \\begin{align*}\n   x & = r\\cos\\theta \\\\\n   y & = r\\sin\\theta.\n  \\end{align*}\n\n\n\\sect{Images, Figures, sidebyside}\n\nImages can be included using the \\texttt{<image>} tag with the \\texttt{@source}.  The \\texttt{@width} attribute can be used to control the size of the image.  Images can be wrapped inside a \\texttt{<figure>}. A \\texttt{<figure>} must have a \\texttt{<caption>}, and the figure will be numbered.\nThe \\texttt{<sidebyside>} tag provides flexible options for placing several images together or combining figures with subcaptions.\n PreTeXt provides support for authoring with graphics languages such as Asymptote, TikZ, PGF, PSTricks, and xy-pic in addition to using Sage code to describe a plot or image. In most cases output can be obtained as smoothly-scalable SVG images, in addition to other formats like PDF or PNG. For accessibility, every \\texttt{<image>} should either have a \\texttt{<description>} child.\n{ \\footnotesize\n \\begin{verbatim}\n<figure xml:id=\"figure-spring-mass\">\n  <image width=\"60\\%\" xml:id=\"spring-mass\">\n    <description>a mass on a table that is\n       attached to a wall with a spring</description>\n     <latex-image>\n       <xi:include href=\"tikz/spring-mass.tex\"  \n         parse=\"text\"/>\n      </latex-image>\n  </image>\n   <caption>A spring-mass system</caption>\n</figure>\n\\end{verbatim}\n}\n %*********************************************\n\\sect{Lists}\n\nThe structure of ordered lists (numbered), unordered lists (bullets) and description lists (defined terms) is given by the \\texttt{<ol>}, \\texttt{<ul>}, \\texttt{<dl>} tags (respectively). List items are delimited with the \\texttt{<li>} tag.\n\n%*********************************************\n\\sect{Theorem-Like Elements}\n\nThe tags \\texttt{<theorem>}, \\texttt{<algorithm>}, \\texttt{<claim>}, \\texttt{<corollary>}, \\texttt{<fact>}, \\texttt{<identity>}, \\texttt{<lemma>}, and \\texttt{<proposition>} have the same structure in PreTeXt.\n {\\footnotesize\n \\begin{verbatim}\n<theorem>\n    <title>Optional</title>\n  <statement>\n    <p>Here's the statement of the theorem.</p>\n  </statement>\n\n  <proof>\n    <p>You don't actually need a proof.</p>\n  </proof>\n</theorem>\n\\end{verbatim}\n}\n\n\\sect{Example-Like Elements}\n\nThe tags \\texttt{<example>}, \\texttt{<problem>}, and \\texttt{<question>} have the same structure in PreTeXt.\n {\\footnotesize\n \\begin{verbatim}\n<example>\n  <title>Differentiating a polynomial</title>\n  <p>The derivative of the function\n  <m>f(x) = 3x^5-7x+5</m> is <m>f'(x) = 15x^4-7</m>.</p>\n</example>\n\\end{verbatim}\n}\n\n\n\\sect{Axiom-Like Elements}\n\nThe tags \\texttt{<assumption>}, \\texttt{<axiom>}, \\texttt{<conjecture>}, \\texttt{<heuristic>}, \\texttt{<hypothesis>}, and \\texttt{<principle>} have the same structure in PreTeXt.\n {\\footnotesize\n \\begin{verbatim}\n<axiom>\n    <title>Optional</title>\n    <creator>Peano</creator>\n  <statement>\n    <p>Here's the statement of the axiom.</p>\n  </statement>\n</axiom>\n\\end{verbatim}\n}\n\n\\sect{Remark-Like Elements}\n\nThe tags \\texttt{<convention>}, \\texttt{<insight>}, \\texttt{<note>}, \\texttt{<observation>}, \\texttt{<remark>}, and \\texttt{<warning>} have the same structure in PreTeXt.\n {\\footnotesize\n \\begin{verbatim}\n<remark>\n  <title>A little remark</title>\n  <p>This is a remark.</p>\n</remark>\n\\end{verbatim}\n}\n\n\n\n \\hr\\textbf{Project-Like Elements}\n\n\nThe tags \\texttt{<activity>}, \\texttt{<exploration>}, \\texttt{<investigation>}, and \\texttt{<project>} have the same structure in PreTeXt.\n {\\footnotesize\n \\begin{verbatim}\n<project>\n  <title>A structured project</title>\n  <introduction>\n    <p>Here is the introduction.</p>\n  </introduction>\n\n  <task>\n    <statement>\n      <p>The first step to do.</p>\n    </statement>\n  </task>\n\n  <task>\n    <statement>\n      <p>The second step to do.</p>\n    </statement>\n  </task>\n\n  <conclusion>\n    <p>A little wrap up.</p>\n  </conclusion>\n</project>\n\\end{verbatim}\n}\n\n\n \\sect{Exercises}\n \nAn \\texttt{<exercise>} in the middle of a division, intermixed between theorems and paragraphs and figures. In this case, it is labeled as a ``Checkpoint.''  You can put several \\texttt{<exercise>}s as part of an \\texttt{<exercises>} element within a division, which is the typical way for creating a collection of exercises together at the end of a division such as a chapter or section.  An \\texttt{<exercisegroup>} can group together a collection of exercises that have a set of common instructions.  A specialized division, \\texttt{<reading-questions>}, can be used to house \\texttt{<exercise>}s designed to test or guide a reader's comprehension of the material in that division.  It is possible to embed WeBWorK exercises into a PreTeXt document\n\nAn \\texttt{<exercise>} has the following structure.\n {\\footnotesize\n \\begin{verbatim}\n<exercise>\n  <statement>\n    <p>The <c>statement</c> is mandatory.</p>\n  </statement>\n  <optional-signal/>\n  <hint>\n    <p>Optional.</p>\n  </hint>\n  <answer>\n    <p>Optional.</p>\n  </answer>\n  <solution>\n    <p>Optional.</p>\n  </solution>\n</exercise>\n\\end{verbatim}\n}\n\nAn element we generically call a ``signal'' is an important component of an exercise if you want to add something that will be interactive in HTML and Runestone.  Signals include \\texttt{<choices>} for multiple choice questions, \\texttt{<blocks>} for Parsons (mixed up blocks) problems, \\texttt{<match>} for matching, \\texttt{<areas>} for clickable area, \\texttt{<response>} for short answer, and \\texttt{<setup>} for fill-in-the-blank.  A True/False question simply uses a \\texttt{correct} attribute on \\texttt{<statement>} as a signal.  The signal element usually has further structure, see \\texttt{pretextbook.org} for examples and source.\n\n\\sect{Worksheets}\n\nA \\texttt{<worksheet>} is a specialized division that can be a child of most divisions and can contain most PreTeXt tags.\n\n\\sect{Tables}\n\nSimilar to \\LaTeX\\, PreTeXt provides a \\texttt{<table>} tag and a \\texttt{<tabular>} tag. The \\texttt{<tabular>} tag is used for producing the array of data, while the \\texttt{<table>} tag provides the number and title.\n\n%*********************************************\n\n%*********************************************\n \\hr\\textbf{SageMath Content}\n\nA SageMath cell can be included in a PreTeXt document.\n\n {\\footnotesize\n \\begin{verbatim}\n<sage>\n<input>\n2+2\n</input>\n<output>\n4\n</output>\n</sage>\n\\end{verbatim}\n}\n\nSageMath can be used to created an image in a PreTeXt document.\n\n {\\footnotesize\n \\begin{verbatim}\n<figure xml:id=\"fig-sage-cubic\">\n  <caption>A cubic plotted by SageMath on\n  <m>[-3,2]</m></caption>\n  <image xml:id=\"sageplot-cubic\" width=\"50%\">\n    <description>A cubic function on the interval\n    [-3,2]</description>\n\n    <sageplot>\n     f(x) = (x-1)*(x+1)*(x-2)\n     plot(f, (x, -3, 2), color='blue', thickness=3)\n    </sageplot>\n  </image>\n</figure>\n\\end{verbatim}\n}\n\n\n\n\\end{multicols*}\n\n\\end{document}\n"
  },
  {
    "path": "examples/README.md",
    "content": "# PreTeXt Examples\n\nSome directories have their own `README`.  This is an overview of the contents of the `examples/` directory, with the date of the last update for each entry.\n\nFor several of these, sample output (PDF, HTML) is produced routinely and is available at the PreTeXt website from the \"Examples\" page.\n\n\n### Sample Article (`sample-article/`)\n\nThe kitchen sink, this attempts to have one of everything.  Look around for something you need, experiment, or read the interspersed commentary on how things work.  (2016-02-20)\n\n\n### Sample Book (`sample-book/`)\n\nA forked version of the first three chapters of Tom Judson's \"Abstract Algebra\" textbook.  Use this to get ideas about how to create a book --- both how to organize the content and how to organize your files. (2016-02-20)\n\n\n### Minimal Example (`minimal/`)\n\nA short article.  This is a good place to test a problematic construction. This is also a good vehicle for filing helpful bug reports: adjust the source and send source and output.  (2016-02-20)\n\n\n### Hello, World (`hello-world/`)\n\nThe bare minimum, about as little as you can do and still be valid PreTeXt.  (2016-02-20)\n\n\n### WeBWorK (`webwork/`)\n\nSeveral examples of how to author WeBWorK online homework problems within a PreTeXt book.  See the `Makefile` for guidance on how to build the examples.  (2016-02-20)\n\n\n### Braille (`braille/`)\n\nA fairly simple document to test the conversion of principal elements of a document into Braille.  (2019-02-17)\n\n\n### Humanities in Action (`humanities/`)\n\nVarious exhibits of material authored in PreTeXt which might be of more interest to Humanities scholars.  Initiated by Jahrme Risner during his Summer 2016 undergraduate research project.  (2016-07-10)\n\n\n### Characters, Fonts, and Languages (`fonts/`)\n\nA testing and demonstration document similar to the sample article, but focused on print and PDF output in a variety of scripts and languages.  (2016-07-10)\n\n\n### Pug (`pug`)\n\nPug (nee Jade) is a Javascript template engine, which can be employed easily to output PreTeXt source.  So if you prefer to format with whitespace, this could be a good choice.  \"Normal\" output is best, but using a `-P` flag provides better formatting of the XML output for human eyes.  Contributed by Harald Schilly.  (2016-05-21)\n\nA subdirectory contains the original file for the Windows Installation Notes of the Author's Guide, contributed by Dave Rosoff.  It needs a few fixes, and will not be maintained, but will give a good demonstration of how a substantial chunk of content could be authored with Pug.  (2016-05-31)\n\n### Letters (`letter/`)\n\nA sample letter you can adapt to your needs.  See extensive comments in the source about using your letterhead.  (2016-02-20)\n\n\n### Memoranda (`memo/`)\n\nA sample memo you can adapt to your needs.  See extensive comments in the source about using your own logos.  (2016-02-20)\n"
  },
  {
    "path": "examples/braille/braille-test-book.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2019 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<pretext>\n\n    <docinfo/>\n\n    <book>\n        <title>A Test Book</title>\n        <subtitle>Converting <pretext/> to Braille</subtitle>\n\n        <frontmatter>\n            <titlepage>\n                <author>\n                    <personname>Robert A. Beezer</personname>\n                    <department>Department of Mathematics and Computer Science</department>\n                    <institution>University of Puget Sound</institution>\n                    <email>beezer@pugetsound.edu</email>\n                </author>\n\n                <editor>\n                    <personname>Al Maneki</personname>\n                </editor>\n\n                <editor>\n                    <personname>Karen Herstein</personname>\n                </editor>\n\n                <colophon>\n                    <edition>Preliminary Edition, Summer 2019</edition>\n                </colophon>\n\n                <date><today /></date>\n            </titlepage>\n\n            <preface>\n                <p>This is a <pretext/> book designed to test conversions to Braille without too much extraneous material.  We will describe here what should have been apparent on the title page.  This will be expanded as we get more and more parts of the book under control.  The title of the entire book is <q>A Test Book</q> with the subtitle <q>Converting PreTeXt to Braille</q>.  The author is <q>Robert A. Beezer</q>, with editors <q>Al Maneki</q> and <q>Karen Herstein</q>. The edition is <q>Preliminary Edition, Summer 2019</q>.  The date will change, but should be something recent.  Nota bene: if the sentence above that ends with <q>Herstein</q> is followed by <em>two</em> spaces, then one will migrate to the start of a new line and appear almost like the start of a new paragraph.  It seems that any number of extra characters will migrate.  In contrast, any number of newlines behave just fine.  So maybe pretty-printed source will avoid this fate.</p>\n\n                <p>This preface should have formatting similar to a chapter, which is described carefully in <xref ref=\"chapter-divisions\"/>.  (The cross-reference to Chapter 1 should be realized very plain in print, and does not yet have any extra information in Braille.)  The one difference is that a preface is not numbered, so there will be just a title, centered, followed by a blank line.  We can give a preface a title, such as <articletitle>Preface to the Second Edition</articletitle>, but here we have let <pretext/> provide a default title.</p>\n\n                <p>Title pages of print and Braille will not always match.  BANA suggests a different set of items than what default <pretext/> uses.  Also, we do not yet producing a Table of Contents for Braille.  Later.</p>\n            </preface>\n\n            <!-- colophon later -->\n        </frontmatter>\n\n        <chapter xml:id=\"chapter-divisions\">\n            <title>Divisions: A Chapter Heading</title>\n\n            <introduction>\n                <p>We test headings of divisions.  Chapter, Section, Subdivision, Subsubdivision.  Each will have a title, and each will be structured as a <pretext/> <q>introduction</q> followed by a single subdivision.  This is the introduction to the chapter.  In Braille, it will start a new page, have the word <q>Chapter</q>, followed by a number on a centered line all by itself, followed by a line with the text of the title, and then a blank line will separate the first line of content.</p>\n\n                <p>The word <q>Chapter</q> is supplied automatically in the language of the book (French, Portuguese, etc.).  But it could be omitted if the formatting (page break, etc.) is enough to indicate a new chapter.</p>\n            </introduction>\n\n            <section>\n                <title>A Section Heading</title>\n\n                <introduction>\n                    <p>The introduction to the section with some extra text to run onto a new line of the BRF output that may not be indented.  Since this sample book has more than 3 levels of divisions (chapter, section, subsection, subsubsection) this should have a centered heading.</p>\n\n                    <p>Most <pretext/> conversions supply the word <q>Chapter</q>, but omit words like <q>Section</q> and <q>Subsection</q>.  BANA says to follow the lead of print.  A hierarchical number will help also.</p>\n                </introduction>\n\n                <subsection>\n                    <title>A Subsection Heading</title>\n\n                    <introduction>\n                        <p>The introduction to the subsection with some extra text to run onto a new line of the BRF output that may not be indented.  The heading of this subsection begins in cell-5, and is a block when occupying more than one line.  Since this sample book has 4 levels of divisions (chapter, section, sub section, subsubsection) this should have a cell-5 heading.</p>\n                    </introduction>\n\n                    <subsubsection>\n                        <title>A Subsubsection Heading</title>\n\n                        <p>The subsubsection is terminal, so this is the actual content of the division, rather than an introduction to a further division.  The heading of this subsubsection begins in cell-7.</p>\n\n                        <p>However, any division may contain a <pretext/> construct called a <q>paragraphs</q>.  It has a title and some content, and cannot be subdivided.  We test one next.  In print we use a run-in title, but that is hard to do with our tools.</p>\n\n                        <paragraphs>\n                            <title>A Paragraphs Heading</title>\n\n                            <p>The <q>paragraphs</q> element is a lightweight division, which we realize much the same way as <q>blocks</q> elsewhere.  It is a <pretext/> invention, so no good precedent or guidance.</p>\n                            <p>This second paragraph tests that it is correct, since we want to see just which paragraphs are contained in this structure.</p>\n                        </paragraphs>\n\n                        <p>This paragraph is part of the subsubsection, and not part of the <tag>paragraphs</tag> element so should clearly be outside.</p>\n                    </subsubsection>\n                </subsection>\n            </section>\n        </chapter>\n\n        <chapter>\n            <title>Mathematics</title>\n\n            <p>Our motivation is the automatic translation of texts in mathematics.  We will do serious testing of mathematics elsewhere, but will include some here as both demonstration and for testing.</p>\n\n            <p>The third sentence has some single-letter Latin variables, interspersed with Greek variables and other simple inline math expressions.  The single-letter variables should be italicized.  We let <m>x</m> equal the value of <m>T</m>, but not <m>\\theta</m> nor the value of <m>a+b</m>, but it could also be <m>\\rho</m> or <m>g</m>.</p>\n\n            <p>For the previous line, <q>x</q> and <q>T</q> should be italicized (single Latin letter variable). <q>a+b</q> is meant to not be italicized (an expression).  <q>theta</q> and <q>rho</q> should not be italicized (Greek).  The last variable is a Latin <q>g</q>, not a Greek <q>gamma.</q>  So it should simply be italicized, since it is a lone Latin letter as math.</p>\n\n            <!-- testing hacks for multi-line mathematics -->\n            <p>And a multi-row equation, authored as two <tag>mrow</tag> within a <tag>md</tag> and including alignment:<md>\n                <mrow>a^2 + b^2 &amp;= c^2</mrow>\n                <mrow>x^3 + y^3 &amp;= z^3</mrow>\n            </md>.</p>\n\n            <p>And a single displayed equation, but authored as a single <tag>mrow</tag> within a <tag>md</tag>, with alignment:<md>\n                <mrow>p^4 + q^4 &amp;= r^4</mrow>\n            </md>.  Adjust to a single displayed equation, but authored as a single <tag>mrow</tag> within a <tag>md</tag>, without alignment:<md>\n                <mrow>r^5 + s^5 = t^5</mrow>\n            </md>.  Plus as a bare <tag>md</tag>, which cannot have alignment:<md>p^4 + q^4 = r^4</md>.</p>\n            <p>And a moderately complicated fraction:\n                <md>\\frac{\\alpha+1/2}{\\beta+\\gamma} = \\frac{12}{37}</md>\n            .</p>\n\n        </chapter>\n\n        <chapter>\n            <title>Literary Text</title>\n\n            <introduction>\n                <p>In this chapter we test widespread (i.e. not mathematical) constructions which would appear in a typical paragraph.</p>\n            </introduction>\n\n            <section>\n                <title>Distinguished Text</title>\n\n                <p>Portions of text are often distinguished, using vehicles like font changes, enclosing quotation marks, underlining, and/or color.  Within <pretext/> we have semantic markup, so we are free to translate to forms that work better via Braille.  Properly, this should be a list, but we have not tested those yet.  So we will put each example into a paragraph of its own for now.  One distinguished word or phrase per sentence, one sentence at the start of the paragraph, followed by comments.</p>\n\n                <p>We emphasize the word <em>emphasis</em>.</p>\n\n                <p>An <alert>alert</alert> is more imperative, like a warning.  Default presentation is bold-italic, but we have not figured out how to make liblouis react correctly to nesting the two.  Perhaps we need to create a new liblouis style.  Trying to make a new emphasis class was a failure.  Perhaps two HTML elements (bold, italic) will be better.  For now, just plain bold is an acceptable presentation for this element.</p>\n\n                <p>A <term>definition</term> mid-sentence is terminology.</p>\n\n                <p>We used <q>enclosing double quotes</q> earlier, since we knew they behaved properly.</p>\n\n                <p>An apostrophe and a single right quote are a real problem for Braille translation (and this problem is not limited to Braille).  Maybe <sq>enclosing single quotes</sq> are not so useful, but still necessary, and that construction was very tricky since the words ended with the letter <q>s</q> and <c>liblouis</c> thought it was a (non-Braille) contraction and really wanted to use an apostrophe.  A word like <sq>quote</sq> is easier it turns out.  This is a place where <pretext/> can shine.</p>\n\n                <p>We employ a <c>heavyweight monospace font</c> for literal text, especially in technical situations.  Right now, we do not distinguish this text.  However, see the liblouis documentation for compbrl and changeTable to perhaps get <q>Computer Braille</q> for inline code.</p>\n\n                <p>A <foreign>phrase from a foreign language</foreign> is usually distinguished.</p>\n\n                <p>The title of this publication is <pubtitle>A Test Book</pubtitle>.  It appears the italic indicators got confused between a single letter, two words, and a total of three items (so a phrase).  We'll try again: <pubtitle>Introduction to Calculus for Engineers</pubtitle>. Hmm, not perfect either.  OK, now <pubtitle>One Book Title</pubtitle>.  This one has me confused.  See lists below, where behavior is better.</p>\n\n                <p>A shorter document might be referenced as a <articletitle>A Test Article</articletitle>.</p>\n\n                <p>Esoteric: text can be grouped in <angles>angle brackets</angles>.</p>\n\n                <p>Esoteric: text can be grouped in <dblbrackets>double brackets</dblbrackets>.  Now simply two brackets repeated.</p>\n\n                <p>There is much more to check, but above is a good start on common constructions.  In the <pretext/> schema chase through the <q>TextLong</q> definition to find more.</p>\n\n                <p>Different indicators are used for emphasis of a letter, a word, or a phrase.  It appears a phrase is defined to be three words.  We test with the <tag>foreign</tag> element:<ul>\n                    <li>Single letter: <foreign>A</foreign></li>\n                    <li>Two words: <foreign>One Two</foreign></li>\n                    <li>Three words: <foreign>One Two Three</foreign></li>\n                    <li>Four words: <foreign>One Two Three Four</foreign></li>\n                    <li>Five words: <foreign>One Two Three Four Five</foreign></li>\n                </ul></p>\n\n                <p>Now, all over again with the <tag>pubtitle</tag> element, which is normally used to italicize titles of publications:<ul>\n                    <li>Single letter: <pubtitle>A</pubtitle></li>\n                    <li>Two words: <pubtitle>One Two</pubtitle></li>\n                    <li>Three words: <pubtitle>One Two Three</pubtitle></li>\n                    <li>Four words: <pubtitle>One Two Three Four</pubtitle></li>\n                    <li>Five words: <pubtitle>One Two Three Four Five</pubtitle></li>\n                </ul></p>\n            </section>\n        </chapter>\n\n        <chapter>\n            <title>Environments, Blocks</title>\n\n            <p><pretext/> has many chunks of text with a heading and a number.  I call them blocks, others call them environments.  They qualify as the <q>boxed material</q> of the BANA transcription guide.  Experiments here are the <pretext/> <q>definition</q> and <q>example</q>.  Theorems are more complicated, since they have associated proofs.  We will start simple and iterate to more types and more complicated structures.</p>\n\n            <p><c>liblouis</c> allows giving the characters to use for the top and bottom line, but is a bit vague.  BANA transcription guide clearly says dot patterns 2356 and 1245 for top and bottom respectively.  In 6-dot braille these appear to be the characters seven and capital-g, which is what I have put into the <c>liblouis</c> configuration.  But the BRF file seems to end up with the characters six and open-square-bracket.  Al reports that when embossed these yield dot patterns 246 and 235 (possibly reversed), consistent with the six and open-square-bracket in the BRF file.  I've tried many things, but cannot seem to configure <c>liblouis</c> to generate the seven and capital-G, nor can I see any rhyme nor reason to the results I get when experimenting.</p>\n\n            <p>BANA is pretty clear about <q>boxed material</q>, and <c>liblouis</c> supports a style option called <q>boxline</q>.  It'll be contrary to BANA, and technically more unnatural to try to just use inline markers.  Yes, two blank lines, and two boxlines, will use more paper, but this sort of material is a key feature of PreTeXt material.  So for now, I'd lobby for following the BANA and liblouis recommendations.  (Yes, I know the paper is expensive!)  Al has agreed to this.</p>\n\n            <p>To get a blank line after the bottom line of the box, I had to use a style parameter.  The blank line after the content, and before the bottom line, strikes me as a bug.  No combination of parameters is making it go away.</p>\n\n            <p>I have put the headings of boxed material onto their own lines, which is different than print.  I think that is fine<mdash/>part of the PreTeXt philosophy is that different output formats will have different expressions of the content.  And it will be really difficult to meld the title with the first bit of content.</p>\n\n            <definition>\n                <title>Right Triangle</title>\n\n                <statement>\n                    <p>A <term>right triangle</term> has one of its three angles subtending a quarter of a circle.</p>\n                    <p>And this second paragraph is part of the definition.</p>\n                    <figure>\n                        <caption>An interior boxline figure</caption>\n                        <p>This figure has a paragraph in it.  It is just forcing an <q>exterior</q> boxline on teh enclosing definition.</p>\n                    </figure>\n                    <p>And a last paragraph to disentangle the end of the definition.</p>\n                </statement>\n            </definition>\n\n            <p>This faux paragraph is not part of the definition nor of the example, so we particularly want the reader to not think it is part of the preceding definition.</p>\n\n            <example>\n                <statement>\n                    <p>This is an example of an example.  We did not include a title (as we did for the definition) to test this option.</p>\n                    <p>A second paragraph of the example.  Then we add a hint, and two different solutions.  Al suggests the colon.</p>\n                </statement>\n                <hint>\n                    <p>A small hint to get a student going in the right direction.  Not numbered, since it is the only one.</p>\n                    <p>A second paragraph of the hint to test formatting of a hint, answer or solution.</p>\n                </hint>\n                <solution>\n                    <p>A long complete solution.  Numbered as first.</p>\n                </solution>\n                <solution>\n                    <p>Another long complete solution.  Numbered as second.</p>\n                </solution>\n            </example>\n\n            <p>Final paragraph of the chapter on environments and blocks.</p>\n        </chapter>\n\n        <chapter>\n            <title>Verbatim Material</title>\n\n            <p>This chapter has examples of material that is meant to be a computer program, or commands typed exactly as shown.  In other words, text formatted to be used or copied literally.</p>\n\n            <p>This next paragraph is a Java computer program to write <q>Hello, World!</q></p>\n\n            <pre>\n            import javax.swing.JFrame;\n            import javax.swing.JLabel;\n            public class HelloWorld {\n              public static void main(String[] args) {\n                JFrame frame = new JFrame();\n                frame.setTitle(\"Hi!\");\n                frame.add(new JLabel(\"Hello, world!\"));\n                frame.pack();\n                frame.setLocationRelativeTo(null);\n                frame.setVisible(true);\n              }\n            }\n            </pre>\n\n            <p>An intervening normal paragraph.</p>\n\n            <p>Sometimes we break in the middle of a paragraph to make a small bit of displayed text that is verbatim for reasons similar to before.  Perhaps we have some commands to display.  Here are two ways to spin up a local web server, depending on if you are stuck back on Python 2 or have moved ahead to Python 3.<cd>\n                <cline>python2 -m SimpleHTTPServer</cline>\n                <cline>    python3 -m http.server</cline>\n            </cd>They are both very simple, even if only one uses that term in its name.  We indented the second one by 4 spaces simply as a test<mdash/>it doesn't mean anything.</p>\n        </chapter>\n\n        <chapter>\n            <title>Lists</title>\n\n            <p>These lists can have more complicated items (structured with paragraphs), and lists can be nested.  We start simple.  I cannot see a way to use <c>liblouis</c> styling to insert a blank line before and after a list, HTML empty <c>p</c> and <c>br</c> elements are not effective.</p>\n\n            <p>A super-simple ordered list, which <pretext/> requires to be authored inside a paragraph.<ol>\n                <li>Create a perpendicular bisector.</li>\n                <li>Mark off distance <m>a</m>. And we write some more that should become an indented second line.</li>\n                <li>Create a circle of radius <m>b</m> centered at <m>a</m>.</li>\n            </ol>And this sentence finishes the paragraph holding the ordered list.</p>\n\n            <p>A super-simple unordered list, which <pretext/> requires to be authored inside a paragraph.  This defaults to a symbol known as a bullet or disc, which BANA transcription guide says is dot pattern 456-256.<ul>\n                <li>Copy lengths.</li>\n                <li>Bisect segments.</li>\n                <li>Create arcs.</li>\n            </ul>And this sentence finishes the paragraph holding the unordered list.</p>\n\n            <p>Two more unordered lists in this paragraph.  To make legitimate HTML, <pretext/> explodes the paragraph into three, we need to use styles to mark the lead paragraph for indentation, and mark the later ones to not have indentation.  This seems unavoidable as one step of the pipeline is doing this breakup anyway.  An unordered list with a circle as a marker (not a <em>filled</em> circle), BANA says a Grade 1 indicator first, so dot pattern 56-1246-123456:<ul label=\"circle\">\n                <li>One with a circle</li>\n                <li>Two with a circle</li>\n                <li>Three with a circle</li>\n            </ul>Now with a solid (filled) square.  BANA says dot pattern 456-1246-3456-145, and the <c>liblouis</c> files clearly suggest a Grade 1 indicator here (dots 5-6?).  BANA suggests Grade 1 indicaor is not needed.  We can overrule <c>liblouis</c><mdash/>just a fiddle.<ul label=\"square\">\n                <li>One with a square</li>\n                <li>Two with a square</li>\n                <li>Three with a square</li>\n            </ul>This concludes the paragraph, which will be an apparent third paragraph.</p>\n\n            <p>A <pretext/> description list has a single word, or simple phrase, which then has a definition or an explanation, which may be several paragraphs.  We render this much differently in HTML versus print, and also somewhat differently here in Braille.  Defined term is on a line of its own, in bold.  Then the actual description, which can be quite variable follows, and is indented to help convey the structure.<dl>\n                <li>\n                    <title>First Item</title>\n                    <p>This text is a description of the first item, whicn is a paragraph.</p>\n                </li>\n                <li>\n                    <title>Second Item</title>\n                    <p>Describes second item.  In a paragraph for openers.</p>\n                    <p>This is a second paragraph, helping to describe the second item of the list.</p>\n                </li>\n                <li>\n                    <title>Third Item</title>\n                    <p>Describes third item.  The descriptions are indented for each item to help keep the groupings together.</p>\n                </li>\n            </dl></p>\n\n            <p>A <pretext/> ordered list where most of the list items are authored with structure, meaning paragraphs and similar blocks that are peers.<ol>\n                <li>\n                    <p>First item, first paragraph.  And a nonsense sentence so we wrap to a second braille line.</p>\n                    <p>First item, second paragraph.  And a nonsense sentence so we wrap to a second braille line.</p>\n                </li>\n                <li>\n                    <p>Second item, first paragraph.  All by itself, no more structure. With some display math that the HTML conversion will isolate and provide a \"continuation paragraph\".\n                        <md>a^2+b^2=c^2</md>\n                    And a nonsense sentence so there is something after the math.</p>\n                </li>\n                <li>Third item, but now totally unstructured, just to provide a mix within the list.</li>\n            </ol></p>\n\n\n            <p>TODO: list items structured with more than paragraphs, nested lists.</p>\n\n        </chapter>\n\n        <chapter>\n            <title>Tables</title>\n\n            <p>A table of names of colors, with a title, with three rows and five columns.  Designed to have runover lines.  The title is presently being displayed below, but can move to just prior.  Need to experiment with multi-column cells.</p>\n\n            <!-- https://digitalsynopsis.com/design/color-thesaurus-correct-names-of-shades/ -->\n            <table>\n                <title>Some Colors</title>\n                <tabular>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Blood</cell>\n                        <cell>Mahogany</cell>\n                        <cell>Crimson</cell>\n                        <cell>Lipstick</cell>\n                    </row>\n                    <row>\n                        <cell>White</cell>\n                        <cell>Alabaster</cell>\n                        <cell>Chiffon</cell>\n                        <cell>Porcelain</cell>\n                        <cell>Parchment</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>Admiral</cell>\n                        <cell>Cerulean</cell>\n                        <cell>Peacock</cell>\n                        <cell>Sapphire</cell>\n                    </row>\n                </tabular>\n            </table>\n\n\t    <p>Below is a table from section 10.3 of <pubtitle>Active Calculus -\n\t    Multivariable</pubtitle> by Steven Schlicker. It may be a\n\t    challenge because all the content is mathematical, but the\n\t    negative numbers aren't marked up as such. Michael Cantino\n\t    suggests that the entire table should be one big Nemeth\n\t    table. It is followed by the same table appearing in the\n\t    previous section but with all the table cells marked up\n\t    using <tag>m</tag>. Are either of these good, or should we\n\t    have something that just purely comes from SRE?\n\t    </p>\n\n\t    <table xml:id=\"T_10_3_wind_chill\">\n              <title>Wind chill as a function of wind speed and temperature.</title>\n              <tabular halign=\"center\" bottom=\"minor\" top=\"minor\">\n\t\t<row bottom=\"medium\">\n\t\t  <cell><m>v \\backslash T</m></cell>\n\t\t  <cell>-30</cell>\n\t\t  <cell>-25</cell>\n\t\t  <cell>-20</cell>\n\t\t  <cell>-15</cell>\n\t\t  <cell>-10</cell>\n\t\t  <cell>-5</cell>\n\t\t  <cell>0</cell>\n\t\t  <cell>5</cell>\n\t\t  <cell>10</cell>\n\t\t  <cell>15</cell>\n\t\t  <cell>20</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>5</cell>\n\t\t  <cell>-46</cell>\n\t\t  <cell>-40</cell>\n\t\t  <cell>-34</cell>\n\t\t  <cell>-28</cell>\n\t\t  <cell>-22</cell>\n\t\t  <cell>-16</cell>\n\t\t  <cell>-11</cell>\n\t\t  <cell>-5</cell>\n\t\t  <cell>1</cell>\n\t\t  <cell>7</cell>\n\t\t  <cell>13</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>10</cell>\n\t\t  <cell>-53</cell>\n\t\t  <cell>-47</cell>\n\t\t  <cell>-41</cell>\n\t\t  <cell>-35</cell>\n\t\t  <cell>-28</cell>\n\t\t  <cell>-22</cell>\n\t\t  <cell>-16</cell>\n\t\t  <cell>-10</cell>\n\t\t  <cell>-4</cell>\n\t\t  <cell>3</cell>\n\t\t  <cell>9</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>15</cell>\n\t\t  <cell>-58</cell>\n\t\t  <cell>-51</cell>\n\t\t  <cell>-45</cell>\n\t\t  <cell>-39</cell>\n\t\t  <cell>-32</cell>\n\t\t  <cell>-26</cell>\n\t\t  <cell>-19</cell>\n\t\t  <cell>-13</cell>\n\t\t  <cell>-7</cell>\n\t\t  <cell>0</cell>\n\t\t  <cell>6</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>20</cell>\n\t\t  <cell>-61</cell>\n\t\t  <cell>-55</cell>\n\t\t  <cell>-48</cell>\n\t\t  <cell>-42</cell>\n\t\t  <cell>-35</cell>\n\t\t  <cell>-29</cell>\n\t\t  <cell>-22</cell>\n\t\t  <cell>-15</cell>\n\t\t  <cell>-9</cell>\n\t\t  <cell>-2</cell>\n\t\t  <cell>4</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>25</cell>\n\t\t  <cell>-64</cell>\n\t\t  <cell>-58</cell>\n\t\t  <cell>-51</cell>\n\t\t  <cell>-44</cell>\n\t\t  <cell>-37</cell>\n\t\t  <cell>-31</cell>\n\t\t  <cell>-24</cell>\n\t\t  <cell>-17</cell>\n\t\t  <cell>-11</cell>\n\t\t  <cell>-4</cell>\n\t\t  <cell>3</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>30</cell>\n\t\t  <cell>-67</cell>\n\t\t  <cell>-60</cell>\n\t\t  <cell>-53</cell>\n\t\t  <cell>-46</cell>\n\t\t  <cell>-39</cell>\n\t\t  <cell>-33</cell>\n\t\t  <cell>-26</cell>\n\t\t  <cell>-19</cell>\n\t\t  <cell>-12</cell>\n\t\t  <cell>-5</cell>\n\t\t  <cell>1</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>35</cell>\n\t\t  <cell>-69</cell>\n\t\t  <cell>-62</cell>\n\t\t  <cell>-55</cell>\n\t\t  <cell>-48</cell>\n\t\t  <cell>-41</cell>\n\t\t  <cell>-34</cell>\n\t\t  <cell>-27</cell>\n\t\t  <cell>-21</cell>\n\t\t  <cell>-14</cell>\n\t\t  <cell>-7</cell>\n\t\t  <cell>0</cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell>40</cell>\n\t\t  <cell>-71</cell>\n\t\t  <cell>-64</cell>\n\t\t  <cell>-57</cell>\n\t\t  <cell>-50</cell>\n\t\t  <cell>-43</cell>\n\t\t  <cell>-36</cell>\n\t\t  <cell>-29</cell>\n\t\t  <cell>-22</cell>\n\t\t  <cell>-15</cell>\n\t\t  <cell>-8</cell>\n\t\t  <cell>-1</cell>\n\t\t</row>\n              </tabular>\n\t    </table>\n\n\t    <table xml:id=\"T_10_2_wind_chill\">\n              <title>Wind chill as a function of wind speed and temperature.</title>\n              <tabular halign=\"center\" bottom=\"minor\" top=\"minor\">\n\t\t<row bottom=\"medium\">\n\t\t  <cell><m>v \\backslash T</m></cell>\n\t\t  <cell><m>-30</m></cell>\n\t\t  <cell><m>-25</m></cell>\n\t\t  <cell><m>-20</m></cell>\n\t\t  <cell><m>-15</m></cell>\n\t\t  <cell><m>-10</m></cell>\n\t\t  <cell><m>-5</m></cell>\n\t\t  <cell><m>0</m></cell>\n\t\t  <cell><m>5</m></cell>\n\t\t  <cell><m>10</m></cell>\n\t\t  <cell><m>15</m></cell>\n\t\t  <cell><m>20</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>5</m></cell>\n\t\t  <cell><m>-46</m></cell>\n\t\t  <cell><m>-40</m></cell>\n\t\t  <cell><m>-34</m></cell>\n\t\t  <cell><m>-28</m></cell>\n\t\t  <cell><m>-22</m></cell>\n\t\t  <cell><m>-16</m></cell>\n\t\t  <cell><m>-11</m></cell>\n\t\t  <cell><m>-5</m></cell>\n\t\t  <cell><m>1</m></cell>\n\t\t  <cell><m>7</m></cell>\n\t\t  <cell><m>13</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>10</m></cell>\n\t\t  <cell><m>-53</m></cell>\n\t\t  <cell><m>-47</m></cell>\n\t\t  <cell><m>-41</m></cell>\n\t\t  <cell><m>-35</m></cell>\n\t\t  <cell><m>-28</m></cell>\n\t\t  <cell><m>-22</m></cell>\n\t\t  <cell><m>-16</m></cell>\n\t\t  <cell><m>-10</m></cell>\n\t\t  <cell><m>-4</m></cell>\n\t\t  <cell><m>3</m></cell>\n\t\t  <cell><m>9</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>15</m></cell>\n\t\t  <cell><m>-58</m></cell>\n\t\t  <cell><m>-51</m></cell>\n\t\t  <cell><m>-45</m></cell>\n\t\t  <cell><m>-39</m></cell>\n\t\t  <cell><m>-32</m></cell>\n\t\t  <cell><m>-26</m></cell>\n\t\t  <cell><m>-19</m></cell>\n\t\t  <cell><m>-13</m></cell>\n\t\t  <cell><m>-7</m></cell>\n\t\t  <cell><m>0</m></cell>\n\t\t  <cell><m>6</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>20</m></cell>\n\t\t  <cell><m>-61</m></cell>\n\t\t  <cell><m>-55</m></cell>\n\t\t  <cell><m>-48</m></cell>\n\t\t  <cell><m>-42</m></cell>\n\t\t  <cell><m>-35</m></cell>\n\t\t  <cell><m>-29</m></cell>\n\t\t  <cell><m>-22</m></cell>\n\t\t  <cell><m>-15</m></cell>\n\t\t  <cell><m>-9</m></cell>\n\t\t  <cell><m>-2</m></cell>\n\t\t  <cell><m>4</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>25</m></cell>\n\t\t  <cell><m>-64</m></cell>\n\t\t  <cell><m>-58</m></cell>\n\t\t  <cell><m>-51</m></cell>\n\t\t  <cell><m>-44</m></cell>\n\t\t  <cell><m>-37</m></cell>\n\t\t  <cell><m>-31</m></cell>\n\t\t  <cell><m>-24</m></cell>\n\t\t  <cell><m>-17</m></cell>\n\t\t  <cell><m>-11</m></cell>\n\t\t  <cell><m>-4</m></cell>\n\t\t  <cell><m>3</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>30</m></cell>\n\t\t  <cell><m>-67</m></cell>\n\t\t  <cell><m>-60</m></cell>\n\t\t  <cell><m>-53</m></cell>\n\t\t  <cell><m>-46</m></cell>\n\t\t  <cell><m>-39</m></cell>\n\t\t  <cell><m>-33</m></cell>\n\t\t  <cell><m>-26</m></cell>\n\t\t  <cell><m>-19</m></cell>\n\t\t  <cell><m>-12</m></cell>\n\t\t  <cell><m>-5</m></cell>\n\t\t  <cell><m>1</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>35</m></cell>\n\t\t  <cell><m>-69</m></cell>\n\t\t  <cell><m>-62</m></cell>\n\t\t  <cell><m>-55</m></cell>\n\t\t  <cell><m>-48</m></cell>\n\t\t  <cell><m>-41</m></cell>\n\t\t  <cell><m>-34</m></cell>\n\t\t  <cell><m>-27</m></cell>\n\t\t  <cell><m>-21</m></cell>\n\t\t  <cell><m>-14</m></cell>\n\t\t  <cell><m>-7</m></cell>\n\t\t  <cell><m>0</m></cell>\n\t\t</row>\n\t\t<row>\n\t\t  <cell><m>40</m></cell>\n\t\t  <cell><m>-71</m></cell>\n\t\t  <cell><m>-64</m></cell>\n\t\t  <cell><m>-57</m></cell>\n\t\t  <cell><m>-50</m></cell>\n\t\t  <cell><m>-43</m></cell>\n\t\t  <cell><m>-36</m></cell>\n\t\t  <cell><m>-29</m></cell>\n\t\t  <cell><m>-22</m></cell>\n\t\t  <cell><m>-15</m></cell>\n\t\t  <cell><m>-8</m></cell>\n\t\t  <cell><m>-1</m></cell>\n\t\t</row>\n              </tabular>\n\t    </table>\n\n\t    <p>Below are two tables from Oscar Levin's\n\t    <pubtitle>Discrete Mathematics: An Open\n\t    Introduction</pubtitle>. Might the second one be better as\n\t    transposed when making BRF?\n\t    </p>\n\t    <tabular>\n              <col right=\"minor\" halign=\"center\"/>\n              <col/>\n              <row bottom=\"minor\">\n\t\t<cell>Class:</cell>\n\t\t<cell>Conflicts with:</cell>\n              </row>\n              <row>\n\t\t<cell>A</cell>\n\t\t<cell>D I</cell>\n              </row>\n              <row>\n\t\t<cell>B</cell>\n\t\t<cell>D I J</cell>\n              </row>\n              <row>\n\t\t<cell>C</cell>\n\t\t<cell>E F I</cell>\n              </row>\n              <row>\n\t\t<cell>D</cell>\n\t\t<cell>A B F</cell>\n              </row>\n              <row>\n\t\t<cell>E</cell>\n\t\t<cell>C H I</cell>\n              </row>\n              <row>\n\t\t<cell>F</cell>\n\t\t<cell>C D I</cell>\n              </row>\n              <row>\n\t\t<cell>G</cell>\n\t\t<cell>J</cell>\n              </row>\n              <row>\n\t\t<cell>H</cell>\n\t\t<cell>E I J</cell>\n              </row>\n              <row>\n\t\t<cell>I</cell>\n\t\t<cell>A B C E F H</cell>\n              </row>\n              <row>\n\t\t<cell>J</cell>\n\t\t<cell>B G H</cell>\n              </row>\n            </tabular>\n\t    <tabular halign=\"center\">\n              <row bottom=\"medium\">\n                <cell halign=\"left\" right=\"medium\">Student:</cell>\n                <cell>A</cell>\n                <cell>B</cell>\n                <cell>C</cell>\n                <cell>D</cell>\n                <cell>E</cell>\n                <cell>F</cell>\n                <cell>G</cell>\n                <cell>H</cell>\n                <cell>I</cell>\n                <cell>J</cell>\n              </row>\n              <row>\n                <cell halign=\"left\" right=\"medium\">Conflicts:</cell>\n                <cell>BEJ</cell>\n                <cell>ADG</cell>\n                <cell>HJ</cell>\n                <cell>BF</cell>\n                <cell>AI</cell>\n                <cell>DJ</cell>\n                <cell>B</cell>\n                <cell>CI</cell>\n                <cell>EHJ</cell>\n                <cell>ACFI</cell>\n              </row>\n            </tabular>\n\n\t    <p>Here is a table from <pubtitle>Active Calculus -\n\t    Multivariable + Vector</pubtitle> by Steven Schlicker,\n\t    Mitchel T. Keller, and Nicholas Long. Again, it probably\n\t    should be marked for Nemeth both before and after.</p>\n\t    <tabular>\n              <col halign=\"center\" right=\"minor\"/><col/><col/><col/><col/><col/>\n              <row bottom=\"minor\">\n                <cell><m>(x,y)</m></cell>\n                <cell><m>(2,1)</m></cell>\n                <cell><m>(0,0)</m></cell>\n                <cell><m>(-1,2)</m></cell>\n                <cell><m>(3,-1)</m></cell>\n                <cell><m>(-2,-1)</m></cell>\n              </row>\n              <row>\n                <cell><m>\\mathbf{F}(x,y)</m></cell>\n                <cell/>\n                <cell/>\n                <cell/>\n                <cell/>\n                <cell/>\n              </row>\n            </tabular>\n\n\t    <p>Here is a table from <pubtitle>Applied\n\t    Combinatorics</pubtitle> by Mitchel T. Keller and William\n\t    T. Trotter. One of the cells is very wide, but it looks\n\t    fine in HTML and PDF.</p>\n            <tabular>\n              <col halign=\"right\" /> <col />\n              <row bottom=\"minor\"><cell>School</cell><cell>Player numbers</cell></row>\n              <row><cell>Boston College</cell><cell>1, 3, 4</cell></row>\n              <row><cell>Clemson University</cell><cell>1, 3, 4, 6</cell></row>\n              <row><cell>Georgia Institute of Technology</cell><cell>2, 6</cell></row>\n              <row><cell>University of Georgia</cell><cell>None interested</cell></row>\n              <row><cell>University of Maryland</cell><cell>2, 3, 5</cell></row>\n              <row><cell>University of North Carolina</cell><cell>1, 2, 5</cell></row>\n              <row><cell>Virginia Polytechnic Institute and State University</cell><cell>1, 2, 5, 6</cell></row>\n            </tabular>\n\n          </chapter>\n\n          <chapter>\n            <title>Figures</title>\n\n            <p>Figures should create some usable information, but also create a blank page (for embossable output) that will allow placement of a separately generated tactile graphic.</p>\n\n            <figure>\n                <caption>A test figure with an image</caption>\n                <image source=\"foo.jpg\">\n                    <description>A picture of a pretty flower in a field of grass all by itself</description>\n                </image>\n            </figure>\n\n            <p>And some text trailing the figure. And a bare image next.</p>\n\n            <image source=\"foo.jpg\"/>\n\n            <p>More text trailing an image.</p>\n        </chapter>\n\n        <chapter>\n            <title>MISCELLANEOUS - DO NOT REVIEW</title>\n\n            <theorem xml:id=\"pythagorean-theorem\">\n                <title>The Pythagorean Theorem</title>\n\n                <p>For a right triangle with side lengths <m>a, b, c</m>, where the side of length <m>c</m> is opposite the right angle, we have<md>a^2 + b^2 = c^2</md>.</p>\n            </theorem>\n\n            <p>The concluding period of the statement of the theorem will be absorbed into the displayed mathematics in a print version.  For Braille, we want the period to remain detached, so it is rendered as literary text and not with Nemeth Braille.</p>\n\n            <p><pretext/> encourages cross-references, so we now reference the previous result: <xref ref=\"pythagorean-theorem\"/>.  While the <c>liblouis</c> library seems to be able to reference <q>endnotes</q>, there does not appear to be a mechanism for general cross-references.</p>\n\n            <paragraphs>\n                <title>Quotations</title>\n\n                <p>It seems that <c>liblouis</c> converts Unicode quote marks into opening and closing variants, and recognizes double versus single.  Patterns are 2-3-6 and 3-5-6 for the double quote marks, with a shift/capital indicator for the single versions.  Two tests from Alex Jordan, where we just employ our standard conversion to <q>smart</q> Unicode variants and we let <c>liblouis</c> do the rest. <q>Life is about making an impact, not making an income.</q> <sq>Whatever the mind of man can conceive and believe, it can achieve.</sq>  Here we test individual words:  <q>double</q> and <q>single</q>.  And the four relevant characters isolated inside parentheses:  (<lq/>), (<rq/>), (<lsq/>), (<rsq/>).</p>\n\n                <p>Now we try a block quotation from Dr.<nbsp/>Seuss.  We have done nothing extra to try to get the attribution correct yet, though it appears to convert the quotation dash into a hyphen (good).  Just now, when using his name, we put a non-breaking space between the abbreviation for Doctor and his surname, as we might commonly do in light of other conversions' behavior.  It seems to have become nothing special (which is also good).</p>\n\n                <blockquote xml:id=\"blockquote-seuss\">\n                    <p>The problem with writing a book in verse is, to be successful, it has to sound like you knocked it off on a rainy Friday afternoon. It has to sound easy. When you can do it, it helps tremendously because it's a thing that forces kids to read on. You have this unconsummated feeling if you stop.</p>\n                    <attribution>Dr. Seuss</attribution>\n                </blockquote>\n            </paragraphs>\n        </chapter>\n\n        <backmatter>\n            <!-- copied/edited from Judson Chapter 8 -->\n            <references xml:id=\"algcodes-references\">\n                <title>References and Suggested Readings</title>\n\n                <biblio type=\"raw\">\n                Blake, I. F. <q>Codes and Designs,</q>\n                <title>Mathematics Magazine</title>\n                <volume>52</volume>\n                (1979), 81<ndash/>95.\n                </biblio>\n\n                <biblio type=\"raw\">\n                Hill, R.\n                <title>A First Course in Coding Theory</title>. Oxford University Press, Oxford, 1990.\n                </biblio>\n\n                <biblio type=\"raw\">\n                Levinson, N. <q>Coding Theory: A Counterexample to G. H. Hardy's Conception of Applied Mathematics,</q>\n                <title>American Mathematical Monthly</title>\n                <volume>77</volume>\n                (1970), 249<ndash/>58.\n                </biblio>\n\n                <biblio type=\"raw\">\n                Lidl, R. and Pilz, G.\n                <title>Applied Abstract Algebra</title>. 2nd ed. Springer, New York, 1998.\n                </biblio>\n\n                <biblio type=\"raw\">\n                MacWilliams, F. J. and Sloane, N. J. A.\n                <title>The Theory of Error-Correcting Codes</title>. North-Holland Mathematical Library, 16, Elsevier, Amsterdam, 1983.\n                </biblio>\n\n                <biblio type=\"raw\">\n                Roman, S.\n                <title>Coding and Information Theory</title>. Springer-Verlag, New York, 1992.\n                </biblio>\n\n                <biblio type=\"raw\">\n                Shannon, C. E. <q>A Mathematical Theory of Communication,</q>\n                <title>Bell System Technical Journal</title>\n                <volume>27</volume>\n                (1948), 379<ndash/>423, 623<ndash/>56.\n                </biblio>\n\n                <biblio type=\"raw\">\n                Thompson, T. M.\n                <title>From Error-Correcting Codes through Sphere Packing to Simple Groups</title>. Carus Monograph Series, No. 21. Mathematical Association of America, Washington, DC, 1983.\n                </biblio>\n\n                <biblio type=\"raw\">\n                van Lint, J. H.\n                <title>Introduction to Coding Theory</title>. Springer, New York, 1999.\n                </biblio>\n            </references>\n        </backmatter>\n    </book>\n</pretext>\n"
  },
  {
    "path": "examples/braille/braille-test.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<pretext>\n\n    <docinfo/>\n\n    <article xml:id=\"braille-test\">\n        <title>A Test Article</title>\n\n        <p>This is a <pretext/> article designed to test conversions to Braille without too much extraneous material.  The title above should be <q>A Test Article</q>.</p>\n\n        <theorem xml:id=\"pythagorean-theorem\">\n            <title>The Pythagorean Theorem</title>\n\n            <p>For a right triangle with side lengths <m>a, b, c</m>, where the side of length <m>c</m> is opposite the right angle, we have<md>a^2 + b^2 = c^2</md>.</p>\n        </theorem>\n\n        <p>The concluding period of the statement of the theorem will be absorbed into the displayed mathematics in a print version.  For Braille, we want the period to remain detached, so it is rendered as literary text and not with Nemeth Braille.</p>\n\n        <p><pretext/> encourages cross-references, so we now reference the previous result: <xref ref=\"pythagorean-theorem\"/>.  While the <c>liblouis</c> library seems to be able to reference <q>endnotes</q>, there does not appear to be a mechanism for general cross-references.</p>\n\n        <paragraphs>\n            <title>Quotations</title>\n        \n            <p>It seems that <c>liblouis</c> converts Unicode quote marks into opening and closing variants, and recognizes double versus single.  Patterns are 2-3-6 and 3-5-6 for the double quote marks, with a shift/capital indicator for the single versions.  Two tests from Alex Jordan, where we just employ our standard conversion to <q>smart</q> Unicode variants and we let <c>liblouis</c> do the rest. <q>Life is about making an impact, not making an income.</q> <sq>Whatever the mind of man can conceive and believe, it can achieve.</sq>  Here we test individual words:  <q>double</q> and <q>single</q>.  And the four relevant characters isolated inside parentheses:  (<lq/>), (<rq/>), (<lsq/>), (<rsq/>).</p>\n\n            <p>Now we try a block quotation from Dr.<nbsp/>Seuss.  We have done nothing extra to try to get the attribution correct yet, though it appears to convert the quotation dash into a hyphen (good).  Just now, when using his name, we put a non-breaking space between the abbreciation for Doctor and his surname, as we might commonly do in light of other conversions' behavior.  It seems to have become nothing special (which is also good).</p>\n\n            <blockquote xml:id=\"blockquote-seuss\">\n                <p>The problem with writing a book in verse is, to be successful, it has to sound like you knocked it off on a rainy Friday afternoon. It has to sound easy. When you can do it, it helps tremendously because it's a thing that forces kids to read on. You have this unconsummated feeling if you stop.</p>\n                <attribution>Dr. Seuss</attribution>\n            </blockquote>\n        </paragraphs>\n\n    </article>\n</pretext>\n"
  },
  {
    "path": "examples/braille/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <common>\n        <!-- 0 is an entire book in one file   -->\n        <!-- 1 is each chapter is its own file -->\n        <chunking level=\"0\"/>\n    </common>\n\n</publication>\n"
  },
  {
    "path": "examples/custom-theming/README.md",
    "content": "#  Styling/Theming Samples for PreTeXt\n\nThis project has samples to illustrate how the HTML output of PreTeXt can be customized. The `projects.ptx` file defines the following build targets:\n\n* `web` - Default styling\n* `web-custom-colors` - Specifying custom colors for a theme\n* `web-extra-css` - Adding extra CSS files with custom styles\n* `web-salem` - Specifying the \"salem\" theme with a specific color palette\n* `web-salem-extra-css` - Demonstrates additional tricks using extra CSS to use or modify the colors defined for a theme\n* `web-custom-theme` - Demonstrates how to create a custom theme by providing an SCSS file as a build target\n\nTo build any of these targets using the PreTeXt CLI use a command like:\n\n```bash\npretext build web-custom-colors\n```\n\nSee the `project.ptx` file for more details about each target.\n\nIf you are experimenting with `web-custom-theme`, and want to just rebuild the theme, you can add the `-t` flag. Doing so will leave the HTML in place and just rebuild the `theme.css` file from your SCSS.\n\n```bash\npretext build web-custom-theme -t\n```\n"
  },
  {
    "path": "examples/custom-theming/assets/css/more-styles.css",
    "content": ".ptx-content-footer .button {\n    border-radius: 10px 5px;\n}"
  },
  {
    "path": "examples/custom-theming/assets/css/my-styles.css",
    "content": ".ptx-masthead {\n    background-color: #e4e5e6;\n}\n\n/* styles to apply in dark mode */\n:root.dark-mode {\n    .ptx-masthead {\n        background-color: #000000;\n    }\n}"
  },
  {
    "path": "examples/custom-theming/assets/css/salem-color-vars.css",
    "content": "/* Many colors in your output are controlled by CSS variables.\n   You can override these variables to override the appearance \n   of all items that use that color.\n   You need to define the colors in a container that is at least\n   as specific as the default definition.\n   The default definitions for light mode are in \n   :root:not(.dark-mode) { ... }\n   The default definitions for dark mode are in\n   :root.dark-mode { ... }\n   */\n:root:not(.dark-mode) {\n    --body-title-color: #573c13;\n}\n\nsection>.heading {\n    /* you can use color variables defined in themes in your own rules to match existing colors */\n    background: var(--primary-color-white-95);\n    color: var(--primary-color);\n}\n\n/* Normally, all remark-likes are the same color in salem. Let's customize some. */\n/* observations are the classname used for the renamed \"danger\" blocks */\n.remark-like.observation {\n    border-color: #c72a36;\n    background-color: #f9d6d5;\n}\n\n.remark-like.convention {\n    border-color: #4CAF50;\n    background-color: #edfcee;\n}\n\n.remark-like.warning {\n    border-color: #e7d322;\n    background-color: #fbf8e6;\n}"
  },
  {
    "path": "examples/custom-theming/mytheme/_chunks-customized.scss",
    "content": "// Grab everything from tacoma's chunks but tell it to use 0 border radius\n@use 'targets/html/tacoma/chunks-minimal' with (\n  $border-radius: 0\n);\n\n// Now add to that\n// @use statements must come before any actual CSS rules\n@use 'components/chunks/helpers/heading-box-mixin';\n\n.project-like {\n  @include heading-box-mixin.box;\n}\n\n.remark-like\n{\n  > .heading {\n    color: var(--primary-color);\n  }\n}\n"
  },
  {
    "path": "examples/custom-theming/mytheme/mytheme.scss",
    "content": "// A custom theme that is a modified version of the tacoma theme\n\n// This will get compiled into \"theme.css\" and placed into the output directory\n// of your project\n\n$primary-color: #2a5ea4 !default;\n$primary-color-dark: #829ab1 !default;\n$background-color-dark: #23241f !default;\n\n@use \"sass:map\";\n\n// Any @use path is checked relative to this file first, then\n// relative to the css directory in the pretext core.\n// https://github.com/PreTeXtBook/pretext/tree/master/css\n@use \"colors/color-helpers\" as colorHelpers;\n\n// ---------------------------------------------\n// components\n\n// To borrow a file from tacoma, we must do an @use with the\n// full path from the css directory:\n@use 'targets/html/tacoma/_parts-tacoma' as parts;\n\n// Underscores indicate files designed to be included in other files\n// you do not need to include the underscore in the filename in the @use\n// chunks-customized exists in the same directory as this file, so that\n// will be found/used.\n@use 'chunks-customized';\n\n\n@use 'components/pretext-web';\n\n// ---------------------------------------------\n// fonts and colors\n@use 'fonts/fonts-google';\n\n@use 'colors/palette-single-muted' as palette-light with (\n  $primary-color: $primary-color,\n);\n\n@use 'colors/palette-dark' as palette-dark with (\n  $primary-color: $primary-color-dark,\n  $background-color: $background-color-dark,\n);\n\n// ---------------------------------------------\n// concrete rules / includes that generate CSS\n\n// render the actual colors\n@include colorHelpers.set-root-colors(palette-light.$colors, palette-dark.$colors);\n"
  },
  {
    "path": "examples/custom-theming/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<project ptx-version=\"2\">\n    <targets>\n        <!-- default web styling -->\n        <target name=\"web\" format=\"html\"/>\n\n        <!-- customized colors for a theme -->\n        <target name=\"web-custom-colors\" format=\"html\" publication=\"publication-custom-colors.ptx\"/>\n\n        <!-- use custom css files -->\n        <target name=\"web-extra-css\" format=\"html\">\n            <!-- stringparams must be specified per build target                                  -->\n            <!-- html.css.extra can have multiple file names, space separated                     -->\n            <!-- css files should be placed in the assets/external folder so                      -->\n            <!-- are copied to the output directory on build.                                     -->\n            <!-- see: https://pretextbook.org/doc/guide/html/processing-directory-management.html -->\n            <stringparams html.css.extra=\"external/css/my-styles.css external/css/more-styles.css\" />\n        </target>\n\n        <!-- use the salem theme with the leaves color palette -->\n        <target name=\"web-salem\" format=\"html\" publication=\"publication-salem.ptx\"/>\n        \n        <!-- use the salem theme with the leaves color palette and custom css -->\n        <target name=\"web-salem-extra-css\" format=\"html\" publication=\"publication-salem.ptx\">\n            <stringparams html.css.extra=\"external/css/salem-color-vars.css\" />\n        </target>\n\n        <!-- use a custom theme -->\n        <target name=\"web-custom-theme\" format=\"html\" publication=\"publication-custom-theme.ptx\"/>\n\n\n    </targets>\n</project>\n"
  },
  {
    "path": "examples/custom-theming/publication/publication-custom-colors.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<publication>\n  <!-- Set where external assets and generated assets will be   -->\n  <!-- stored or created.  Directories are relative to the main -->\n  <!-- source PreTeXt file                                      -->\n  <source>\n    <!-- Paths to folders containing external assets and generated assets -->\n    <!-- relative to your main source file.                               -->\n    <!-- the @external value is where any file specified by               -->\n    <!--  html.css.extra CSS should be                                    -->\n    <directories external=\"../assets\" generated=\"../generated-assets\" />\n  </source>\n\n  <html>\n    <!-- specify custom colors to use in the theme as described here: -->\n    <!-- https://pretextbook.org/doc/guide/html/publication-file-online.html#online-style-options -->\n    <css theme=\"default-modern\" primary-color=\"#361c65\" secondary-color=\"#904619\" primary-color-dark=\"#f2a0c2\"/>\n  </html>\n\n</publication>\n"
  },
  {
    "path": "examples/custom-theming/publication/publication-custom-theme.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<publication>\n  <!-- Set where external assets and generated assets will be   -->\n  <!-- stored or created.  Directories are relative to the main -->\n  <!-- source PreTeXt file                                      -->\n  <source>\n    <!-- Paths to folders containing external assets and generated assets -->\n    <!-- relative to your main source file.                               -->\n    <directories external=\"../assets\" generated=\"../generated-assets\" />\n  </source>\n\n  <html>\n    <!-- specify building a custom theme                    -->\n    <!-- entry-point must be relative to your document root -->\n    <css theme=\"custom\" entry-point=\"../mytheme/mytheme.scss\"/>\n  </html>\n\n</publication>\n"
  },
  {
    "path": "examples/custom-theming/publication/publication-salem.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<publication>\n  <!-- Set where external assets and generated assets will be   -->\n  <!-- stored or created.  Directories are relative to the main -->\n  <!-- source PreTeXt file                                      -->\n  <source>\n    <!-- Paths to folders containing external assets and generated assets -->\n    <!-- relative to your main source file.                               -->\n    <!-- the @external value is where any file specified by               -->\n    <!--  html.css.extra CSS should be                                    -->\n    <directories external=\"../assets\" generated=\"../generated-assets\" />\n  </source>\n\n  <html>\n    <css theme=\"salem\" palette=\"leaves\"/>\n  </html>\n\n</publication>\n"
  },
  {
    "path": "examples/custom-theming/publication/publication.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<publication>\n  <!-- Set where external assets and generated assets will be   -->\n  <!-- stored or created.  Directories are relative to the main -->\n  <!-- source PreTeXt file                                      -->\n  <source>\n    <!-- Paths to folders containing external assets and generated assets -->\n    <!-- relative to your main source file.                               -->\n    <!-- the @external value is where any file specified by               -->\n    <!--  html.css.extra CSS should be                                    -->\n    <directories external=\"../assets\" generated=\"../generated-assets\" />\n\n    <!-- If not specified, theme will default to \"default-modern\" -->\n    <!-- <theme name=\"default-modern\" /> -->\n  </source>\n\n</publication>\n"
  },
  {
    "path": "examples/custom-theming/source/ch-chapter-title.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<chapter xml:id=\"ch-chapter-title\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Chapter Title</title>\n    \n    <introduction>\n        <p> Text before the first section. </p>\n    </introduction>\n    \n    <!-- include sections -->\n    <xi:include href=\"sec-section-name.ptx\" />\n    \n</chapter>"
  },
  {
    "path": "examples/custom-theming/source/docinfo.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!-- The docinfo block is the analogue to the latex preamble -->\n<!-- This is where you can define macros and other book-wide -->\n<!-- settings. -->\n<docinfo xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n\n  <!-- brandlogo is the image that may appear next to the title in the banner -->\n  <!-- <brandlogo url=\"\" source=\"images/cover.png\"/> -->\n\n  <!-- It is possible to rename elements: -->\n  <rename element=\"observation\" xml:lang=\"en-US\">Danger</rename>\n\n</docinfo>\n"
  },
  {
    "path": "examples/custom-theming/source/frontmatter.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- This frontmatter division will contain all content before the -->\n<!-- first chapter. Fill in and comment/uncomment to see how this -->\n<!-- works. -->\n\n<frontmatter xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:id=\"frontmatter\">\n    <bibinfo>\n        \n        <author>\n            <personname>You</personname>\n            <department>Your department</department>\n            <institution>Your institution</institution>\n        </author>\n        <date>\n            <today />\n        </date>\n        \n        <website>\n            <url href=\"https://pretextbook.org\">My Website</url>\n        </website>\n        \n        <copyright>\n            <year>2020<ndash />2024</year>\n            <holder>You</holder>\n            <shortlicense> This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit <url href=\"http://creativecommons.org/licenses/by-sa/4.0/\" visual=\"creativecommons.org/licenses/by-sa/4.0\"> CreativeCommons.org</url>\n            </shortlicense>\n        </copyright>\n        \n    </bibinfo>\n    \n    <titlepage>\n        <titlepage-items/>\n    </titlepage>\n    \n    <colophon xml:id=\"front-colophon\">\n        <colophon-items/>\n    </colophon>\n</frontmatter>\n"
  },
  {
    "path": "examples/custom-theming/source/main.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<pretext xml:lang=\"en-US\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <!-- we first include a file which contains the docinfo element: -->\n    <xi:include href=\"./docinfo.ptx\" />\n\n    <book xml:id=\"my-great-book\">\n        <title>My Great Book</title>\n        <subtitle>An example to get you started</subtitle>\n\n        <!-- Include frontmatter -->\n        <xi:include href=\"./frontmatter.ptx\" />\n\n        <!-- Include chapters -->\n        <xi:include href=\"./ch-chapter-title.ptx\" />\n    </book>\n</pretext>\n"
  },
  {
    "path": "examples/custom-theming/source/sec-section-name.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<section xml:id=\"sec-section-name\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Section Title</title>\n\n    <activity><p>Here is an activity.</p></activity>\n\n    <project><p>Here is a project.</p></project>\n\n    <p> Text of section. </p>\n\n    <convention><p>Here is a note.</p></convention>\n\n    <warning><p>Here is a warning.</p></warning>\n\n    <observation><p>Here is an observation that was renamed into a <q>danger</q>.</p></observation>\n</section>"
  },
  {
    "path": "examples/epub/README.md",
    "content": "# EPUB Sampler\n\nThis short book is designed for testing conversions to EPUB.\nOf course, the Sample Book would be a good, longer,\ntest document as well.\n\nFeatures that need to be handled differently for EPUB should\nhave examples added here.  For example, footnotes and endnotes\nrequire extra care in EPUB.\n"
  },
  {
    "path": "examples/epub/epub-sampler.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<pretext>\n\n    <docinfo>\n        <macros>\n        \\newcommand{\\doubler}[1]{2#1}\n        \\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4} % this comment will be stripped\n        </macros>\n        <latex-image-preamble>\n            \\usepackage{tikz}\n            \\usetikzlibrary{arrows}\n        </latex-image-preamble>\n    </docinfo>\n\n    <book>\n        <title>An EPUB Sampler</title>\n\n        <frontmatter>\n            <bibinfo>\n                <author>\n                    <personname>Rob Beezer</personname>\n                </author>\n                <website>\n                    <name>PreTeXt</name>\n                    <address>https://www.pretextbook.org</address>\n                </website>\n                <copyright>\n                    <year>2016<ndash />2021</year>\n                    <holder>Robert A. Beezer</holder>\n                </copyright>\n            </bibinfo>\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n            <colophon>\n                <colophon-items/>\n            </colophon>\n            <biography>\n                <title>Biographical sketch with title</title>\n                <p>This is about the author and has a title.</p>\n            </biography>\n            <biography>\n                <p>This sketch doesn't actually have a title in the\n                <pretext /> source.</p>\n            </biography>\n            <dedication>\n                <p>To all those who like reflowable electronic books.</p>\n            </dedication>\n            <acknowledgement>\n                <p>Mitchel T. Keller has added a number of things to\n                this sampler to continue to stress out the EPUB\n                conversion and make sure it's all working right.</p>\n            </acknowledgement>\n        </frontmatter>\n\n        <chapter>\n            <title>One</title>\n\n            <p>The quick brown fox jumps over the lazy dog.</p>\n            <p>Some test cross-references:<ul>\n            <li>To the next chapter: <xref ref=\"nonsense-chapter\"/></li>\n            <li>To a figure much later: <xref ref=\"figure-cubic-polynomial\"/></li>\n            <li>To some multi-line display math later: <xref ref=\"small-DE-soln\"/></li>\n            <li>To an abstract algebra textbook: <xref ref=\"biblio-judson-AATA\"/></li>\n        </ul></p>\n        </chapter>\n        <chapter xml:id=\"nonsense-chapter\">\n            <title>Two</title>\n            <introduction>\n                <p>This is the introduction to the chapter. We put\n                some math <md>\\int_a^b f(t)\\, dt</md> in here for\n                validation purposes.</p>\n            </introduction>\n            <section>\n                <title>A silly section.</title>\n                <p>This section just exists so that we can add <tag>introduction</tag> and <tag>conclusion</tag> tags to this chapter.\n                </p>\n                <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultricies purus sit amet rutrum dictum. Donec sit amet ligula quis orci vestibulum tempor id in erat. Ut ut placerat lacus, sit amet feugiat lorem. Pellentesque sodales risus at eros malesuada, eget ultrices est consectetur. Praesent fermentum, ligula sit amet fermentum varius, elit eros imperdiet lectus, tempus condimentum quam elit in elit. Sed molestie mauris sem, sed laoreet elit iaculis ut. In mattis blandit ex, nec rutrum purus ullamcorper eget. Nullam maximus magna non elit euismod, non ornare nisl porttitor. Pellentesque commodo tempus viverra.</p>\n                <p>Curabitur ac hendrerit ligula. Aenean vitae nunc id elit convallis efficitur. Sed ultricies ut justo quis elementum. Sed eget eros venenatis, pellentesque risus sed, fermentum mi. Proin ipsum arcu, porta nec sem sit amet, sollicitudin faucibus erat. Quisque lacus lectus, pellentesque ut imperdiet sed, euismod vitae nibh. Donec dolor diam, elementum ac pharetra vitae, volutpat mollis augue.</p>\n                <aside>\n                    <title>Look at this!</title>\n                    <p>This is an aside. Please don't let it distract you.</p>\n                </aside>\n                <p>Maecenas ex enim, lobortis et blandit sit amet, pretium in ante. Sed mollis sollicitudin nibh non consectetur. Vestibulum eget tortor sit amet felis iaculis fermentum. Sed eu nisl a urna cursus congue at nec nulla. Mauris lacinia molestie tristique. Maecenas aliquet rutrum venenatis. Vivamus quis metus sit amet est feugiat facilisis quis et massa. Aenean dui sem, dapibus at imperdiet ac, auctor sit amet arcu. Vestibulum eget porttitor est. Aliquam id pellentesque quam, vitae rhoncus metus. In congue condimentum malesuada. Mauris in condimentum eros, eget mattis nibh. Praesent et ex porttitor, lobortis nibh sed, cursus ante. Suspendisse dapibus vel risus eu pellentesque. </p>\n                <p>We end here with multiline display math to test\n                linking from elsewhere into this multi-page section.\n                <md number=\"yes\">\n                    <mrow xml:id=\"small-DE\">\n                        -9y&amp;=y''-6y'\n                    </mrow>\n                    <mrow xml:id=\"small-DE-soln\">\n                        y&amp;=c_1e^{3x} + c_2 x e^{3x}\n                    </mrow>\n                </md>\n                </p>\n            </section>\n            <section>\n                <title>A Section with Subsections</title>\n                <subsection>\n                    <title>A simple subsection</title>\n                    <p>A <c>subsection</c> in a <c>section</c>.</p>\n                </subsection>\n                <exercises xml:id=\"exercises-like-a-subsection\">\n                    <exercise>\n                        <statement>\n                            <p>A single exercise buried in an <c>exercises</c> division that is a peer of a <c>subsection</c>.</p>\n                        </statement>\n                    </exercise>\n                </exercises>\n            </section>\n            <exercises xml:id=\"exercises-like-a-section\">\n                <exercise>\n                    <statement>\n                        <p>A lone exercise in an <c>exercises</c> division that is a peer of a <c>section</c>.</p>\n                    </statement>\n                    <hint>\n                        <p>A little suggestion.</p>\n                    </hint>\n                    <answer>\n                        <p>\n                            <m>y=x^2</m>\n                        </p>\n                    </answer>\n                    <solution>\n                        <p>Maecenas ex enim, lobortis et blandit\n            sit amet, pretium in ante. Sed mollis sollicitudin\n            nibh non consectetur. Vestibulum eget tortor sit\n            amet felis iaculis fermentum. Sed eu nisl a urna\n            cursus congue at nec nulla. Mauris lacinia\n            molestie tristique. Maecenas aliquet rutrum\n            venenatis. Vivamus quis metus sit amet est feugiat\n            facilisis quis et massa. Aenean dui sem, dapibus\n            at imperdiet ac, <m>y=ax^2+bx+c</m> auctor sit\n            amet arcu. Vestibulum eget porttitor est. Aliquam\n            id pellentesque quam, vitae rhoncus metus. In\n            congue condimentum malesuada. Mauris in\n            condimentum eros, eget mattis nibh. Praesent et ex\n            porttitor, lobortis nibh sed, cursus\n            ante. Suspendisse dapibus vel risus eu\n            pellentesque.</p>\n                    </solution>\n                </exercise>\n            </exercises>\n            <conclusion>\n                <title>Wrapping up</title>\n                <p>This is the conclusion.</p>\n            </conclusion>\n        </chapter>\n        <chapter>\n            <title>A Bit of Math <m>y=mx+b</m></title>\n            <shorttitle>A Bit of Math y=mx+b</shorttitle>\n            <p><idx>Diophantine equation</idx>This paragraph has some\n            inline math, a Diophantine equation, <m>x^2 +\n            \\doubler{y^2} = z^2</m>.  And some display math about\n            infinite series: <md number=\"yes\" xml:id=\"zeta-2\">\\sum_{n=1}^\\infty\\,\\frac{1}{n^2} = \\frac{\\pi^2}{6}.</md>  Look at the XML source to see how <latex/> macros are employed.</p>\n            <p>And a bit of multi-line display math:<md number=\"yes\"><mrow xml:id=\"equation-use-FTC\">\\frac{d}{dx}\\definiteintegral{a}{x}{f(t)}{t}&amp;=\\frac{d}{dx}\\left(F(x)-F(a)\\right)</mrow><mrow number=\"no\">&amp;=\\frac{d}{dx}F(x)-\\frac{d}{dx}F(a)</mrow><mrow xml:id=\"equation-conclude\">&amp;=f(x)-0 = f(x)</mrow></md>.</p>\n            <p>And multi-line math with an embedded cross-reference to a figure:<md><mrow>x^2 + y^2 &amp;= z^2&amp;&amp;<xref ref=\"complete-graph\"/></mrow><mrow>a^2 + b^2 &amp;= c^2&amp;&amp;</mrow></md></p>\n            <p>Nice.</p>\n            <theorem xml:id=\"FTC\">\n                <title>Fundamental Theorem of Calculus</title>\n                <creator>Newton, Leibniz</creator>\n                <statement>\n                    <p>Let <m>f</m> be a continuous function on the\n        interval <m>[a,b]</m>. If <m>F</m> is an\n        antiderivative for <m>f</m> on <m>[a,b]</m>, then\n        <md>\\int_a^b f(t)\\, dt = F(b)-F(a)</md>.</p>\n                </statement>\n            </theorem>\n            <outcomes>\n                <ul>\n                    <li>You have read the statement of <xref ref=\"FTC\" text=\"title\"/>.</li>\n                    <li>\n        You have seen multiline math, and it is awesome.\n          </li>\n                </ul>\n            </outcomes>\n        </chapter>\n        <chapter>\n            <title>Some Images <m>ax^2+bx+c=0</m></title>\n            <shorttitle>Some Imagex ax^2+bx+c=0</shorttitle>\n            <objectives>\n                <ul>\n                    <li>To discuss formats for graphics</li>\n                    <li>To stress test the EPUB conversion with\n                    <m>y=f'(x)</m> math in here</li>\n                </ul>\n            </objectives>\n            <section>\n                <title>Graphics formats <m>f'(x)</m></title>\n                <shorttitle>Graphics formats f'(x)</shorttitle>\n                <p><idx>Portable Network Graphics (PNG)</idx><idx><h>PNG</h><see>Portable Network Graphics</see></idx>A Portable Network Graphics (PNG) image created externally in Sage and then included directly here.</p>\n                <figure xml:id=\"figure-cubic-polynomial\">\n                    <caption>A cubic polynomial and its derivative</caption>\n                    <image source=\"cubic-function.png\" width=\"60%\">\n                        <description>\n                            <p>\n                                This is a Cartesian plot with a blue curve that enters from the lower left.\n                                It crosses the <m>x</m>-axis at about <m>-2</m> and climbs to reac a peak at about <m>-0.8</m>\n                                where it flattens out. It continues to the right, now moving downward, and crosses the <m>y</m>-axis\n                                at <m>6</m>, and then crossing the <m>x</m>-axis again at <m>1</m>. It bends back upward, returning\n                                to quadrant I at <m>x=3</m>.\n                            </p>\n                            <p>\n                                There is also a red curve, a parabola, that enters from the top right. It moves downward, crossing the\n                                <m>x</m>-axis at <m>-0.8</m> and bottoming out at <m>x=0.7</m>. Then it climbs back up crossing the\n                                <m>x</m>-axis into quadrant I at <m>x=2.1</m>, and it rises out the upper right of the plot.\n                            </p>\n                        </description>\n                    </image>\n                </figure>\n\n                <p>A Scalable Vector Graphics (SVG) image produced from <prefigure/> source with the <c>pretext</c> script.</p>\n                <figure xml:id=\"figure-prefigure-tangent\">\n                    <caption>The graph of a function and a tangent line</caption>\n                    <image width=\"60%\">\n                        <prefigure label=\"prefigure-tangent\"\n                                   xmlns=\"https://prefigure.org\">\n                            <diagram dimensions=\"(300,300)\" margins=\"5\">\n                                <definition>a=1</definition>\n                                <definition>f(x) = exp(x/3)*cos(x)</definition>\n                                <coordinates bbox=\"[-4,-4,4,4]\">\n                                    <grid-axes xlabel=\"x\" ylabel=\"y\"/>\n                                    <graph at=\"graph\" function='f' />\n                                    <tangent-line at=\"tangent\" function=\"f\" point=\"a\"/>\n                                    <point at=\"point\" p=\"(a, f(a))\">\n                                        <m>(a,f(a))</m>\n                                    </point>\n                                </coordinates>\n\n                                <annotations>\n                                    <annotation ref=\"figure\"\n                                                text=\"The graph of a function and its tangent line at the point a equals 1\">\n                                        <annotation ref=\"graph-tangent\" text=\"The graph and its tangent line\">\n                                            <annotation ref=\"graph\" text=\"The graph of the function f\" sonify=\"yes\"/>\n                                            <annotation ref=\"point\" text=\"The point a comma f of a\"/>\n                                            <annotation ref=\"tangent\" text=\"The tangent line to the graph of f at the point\"/>\n                                        </annotation>\n                                    </annotation>\n                                </annotations>\n                            </diagram>\n                        </prefigure>\n                    </image>\n                </figure>\n\n                <p>Here we drop a small reference to an equation\n                earlier, notably <xref ref=\"zeta-2\" />.</p>\n                <p>A Scalable Vector Graphics (SVG) image created externally in Sage and then included here as a vector image (no file extension given).</p>\n                <figure xml:id=\"complete-graph\">\n                    <caption>A complete graph on 16 vertices</caption>\n                    <image source=\"complete-graph\" width=\"70%\"/>\n                </figure>\n                <p>A Scalable Vector Graphics (SVG) image described by Sage commands, which is produced by the <c>pretext</c> script.</p>\n                <figure xml:id=\"figure-sage-multigraph\">\n                    <caption>A Sage multigraph of a sentence</caption>\n                    <image xml:id=\"sageplot-sentence-multigraph\" width=\"50%\">\n                        <sageplot>\n                            stnc = 'I am a cool multiedge graph with loops'\n                            g = DiGraph({}, loops=True, multiedges=True)\n                            for a,b in [(stnc[i], stnc[i+1]) for i in range(len(stnc)-1)]:\n                                g.add_edge(a, b, b)\n                            g.plot(color_by_label=True, edge_style='solid', figsize=(8,8))\n                        </sageplot>\n                    </image>\n                </figure>\n                <!-- http://www.texample.net/media/tikz/examples/TEX/noise-shaper.tex -->\n                <figure xml:id=\"figure-tikz-electronics\">\n                    <caption>TikZ Electronics Diagram</caption>\n                    <image xml:id=\"tikz-electronics\">\n                        <alttext>A pile of electronic components wired together</alttext>\n                        <latex-image><!-- CDATA prevents certain LaTeX code from being interpreted as xml --><![CDATA[\\tikzset{%\n                      block/.style    = {draw, thick, rectangle, minimum height = 3em,\n                        minimum width = 3em},\n                      sum/.style      = {draw, circle, node distance = 2cm}, % Adder\n                      input/.style    = {coordinate}, % Input\n                      output/.style   = {coordinate} % Output\n                    }\n                    % Defining string as labels of certain blocks.\n                    \\newcommand{\\suma}{\\Large$+$}\n                    \\newcommand{\\inte}{$\\displaystyle \\int$}\n                    \\newcommand{\\derv}{\\huge$\\frac{d}{dt}$}\n\n                    \\begin{tikzpicture}[auto, thick, node distance=2cm, >=triangle 45]\n                    \\draw\n                        % Drawing the blocks of first filter :\n                        node at (0,0)[right=-3mm]{\\Large \\textbullet}\n                        node [input, name=input1] {}\n                        node [sum, right of=input1] (suma1) {\\suma}\n                        node [block, right of=suma1] (inte1) {\\inte}\n                             node at (6.8,0)[block] (Q1) {\\Large $Q_1$}\n                             node [block, below of=inte1] (ret1) {\\Large$T_1$};\n                        % Joining blocks.\n                        % Commands \\draw with options like [->] must be written individually\n                        \\draw[->](input1) -- node {$X(Z)$}(suma1);\n                        \\draw[->](suma1) -- node {} (inte1);\n                        \\draw[->](inte1) -- node {} (Q1);\n                        \\draw[->](ret1) -| node[near end]{} (suma1);\n                        % Adder\n                    \\draw\n                        node at (5.4,-4) [sum, name=suma2] {\\suma}\n                            % Second stage of filter\n                        node at  (1,-6) [sum, name=suma3] {\\suma}\n                        node [block, right of=suma3] (inte2) {\\inte}\n                        node [sum, right of=inte2] (suma4) {\\suma}\n                        node [block, right of=suma4] (inte3) {\\inte}\n                        node [block, right of=inte3] (Q2) {\\Large$Q_2$}\n                        node at (9,-8) [block, name=ret2] {\\Large$T_2$}\n                    ;\n                        % Joining the blocks of second filter\n                        \\draw[->] (suma3) -- node {} (inte2);\n                        \\draw[->] (inte2) -- node {} (suma4);\n                        \\draw[->] (suma4) -- node {} (inte3);\n                        \\draw[->] (inte3) -- node {} (Q2);\n                        \\draw[->] (ret2) -| (suma3);\n                        \\draw[->] (ret2) -| (suma4);\n                             % Third stage of filter:\n                        % Defining nodes:\n                    \\draw\n                        node at (11.5, 0) [sum, name=suma5]{\\suma}\n                        node [output, right of=suma5]{}\n                        node [block, below of=suma5] (deriv1){\\derv}\n                        node [output, right of=suma5] (sal2){}\n                    ;\n                        % Joining the blocks:\n                        \\draw[->] (suma2) -| node {}(suma3);\n                        \\draw[->] (Q1) -- (8,0) |- node {}(ret1);\n                        \\draw[->] (8,0) |- (suma2);\n                        \\draw[->] (5.4,0) -- (suma2);\n                        \\draw[->] (Q1) -- node {}(suma5);\n                        \\draw[->] (deriv1) -- node {}(suma5);\n                        \\draw[->] (Q2) -| node {}(deriv1);\n                            \\draw[<->] (ret2) -| node {}(deriv1);\n                            \\draw[->] (suma5) -- node {$Y(Z)$}(sal2);\n                            % Drawing nodes with \\textbullet\n                    \\draw\n                        node at (8,0) {\\textbullet}\n                        node at (8,-2){\\textbullet}\n                        node at (5.4,0){\\textbullet}\n                            node at (5,-8){\\textbullet}\n                            node at (11.5,-6){\\textbullet}\n                            ;\n                        % Boxing and labelling noise shapers\n                        \\draw [color=gray,thick](-0.5,-3) rectangle (9,1);\n                        \\node at (-0.5,1) [above=5mm, right=0mm] {\\textsc{first-order noise shaper}};\n                        \\draw [color=gray,thick](-0.5,-9) rectangle (12.5,-5);\n                        \\node at (-0.5,-9) [below=5mm, right=0mm] {\\textsc{second-order noise shaper}};\n                        \\end{tikzpicture}\n                    ]]></latex-image>\n                    </image>\n                </figure>\n                <p>A diagram of some git commits, authored in Mermaid.</p>\n                <figure xml:id=\"figure-mermaid-git\">\n                    <caption>Mermaid Git Diagram</caption>\n                    <image xml:id=\"mermaid-git-image\">\n                        <shortdescription>\n                            A git diagram in Mermaid\n                        </shortdescription>\n                        <mermaid>\n                            ---\n                            title: Example Git diagram\n                            ---\n                            gitGraph\n                                commit\n                                commit\n                                branch develop\n                                checkout develop\n                                commit\n                                commit\n                                checkout main\n                                merge develop\n                                commit\n                                commit\n                        </mermaid>\n                    </image>\n                </figure>\n            </section>\n            <section>\n                <title>Additional stress testing</title>\n                <p>We repeat an image created from an external file, because the EPUB format only wants the file noted once.</p>\n                <image source=\"complete-graph\" width=\"70%\"/>\n                <p>We like to put <init>URL</init>s into footnotes, especially for formats like this where they may not be active.  This output is from <url href=\"https://pretextbook.org\"><pretext/></url><fn><c>pretextbook.org</c></fn>.</p>\n                <p>We make a reference to some math in another chapter\n                <xref ref=\"equation-conclude\"/> in order to test that\n                validation works for this. We also refer to <xref\n                ref=\"small-DE\"/></p>\n                <exercise>\n                    <statement>\n                        <p>A sample exercise, where a <tag>hint</tag> and a <tag>solution</tag> should be visible (rather than in a knowl).</p>\n                    </statement>\n                    <hint>\n                        <p>Just a little help.</p>\n                    </hint>\n                    <solution>\n                        <p>The whole story with all the details.</p>\n                    </solution>\n                </exercise>\n            </section>\n            <conclusion xml:id=\"concl-followed-by-outcomes\">\n                <p>This is a <tag>conclusion</tag>. We will follow it with\n            an <tag>outcomes</tag>.</p>\n            </conclusion>\n            <outcomes>\n                <title>The really awesome things we've done!</title>\n                <ol>\n                    <li>We just tested if we get this list of outcomes.</li>\n                </ol>\n            </outcomes>\n        </chapter>\n        <backmatter>\n            <appendix>\n                <title>Maybe the license</title>\n                <p>Lots of books written in <pretext/> include the terms of their license in an appendix, so let's use this as a test.</p>\n            </appendix>\n            <appendix xml:id=\"figure-list\">\n                <title>List of Figures</title>\n                <list-of elements=\"figure\" divisions=\"chapter subsection\" empty=\"no\" />\n            </appendix>\n            <solutions divisional=\"hint answer solution\">\n                <title>Hints, Answers and Solutions to Exercises</title>\n            </solutions>\n            <references xml:id=\"references-backmatter\">\n                <title>References</title>\n                <biblio type=\"raw\" xml:id=\"biblio-judson-AATA\">Tom Judson, <title>Abstract Algebra: Theory and Applications</title>.\n                <note xml:id=\"note-judson-AATA\"><p>Another online, open-source offering.</p></note>\n                </biblio>\n                <biblio type=\"raw\" xml:id=\"biblio-lay-article\">David C. Lay, <title>Subspaces and Echelon Forms</title>. <journal>The College Mathematics Journal</journal>, January 1993, <volume>24</volume> <number>1</number>, 57<ndash />62.</biblio>\n            </references>\n            <index>\n                <title>Index</title>\n                <index-list/>\n            </index>\n            <colophon>\n                <blockquote>\n                    <p>This document was authored in <pretext/>\n                    to stress test conversion to\n                    <init>EPUB</init>. Please do not judge its contents,\n                    which randomly has some <m>y=e^{ax+b}</m> math in the\n                    rear colophon.</p>\n                </blockquote>\n            </colophon>\n        </backmatter>\n    </book>\n</pretext>\n"
  },
  {
    "path": "examples/epub/gen/prefigure/prefigure-tangent-annotations.xml",
    "content": "<diagram>\n  <annotations>\n    <annotation id=\"figure\" speech2=\"The graph of a function and its tangent line at the point a equals 1\">\n      <grouped>figure</grouped>\n      <position>1</position>\n      <children>\n        <active>grid-axes</active>\n        <active>graph-tangent</active>\n      </children>\n      <components>\n        <active>grid-axes</active>\n        <active>graph-tangent</active>\n      </components>\n    </annotation>\n    <annotation id=\"grid-axes\" speech2=\"The coordinate grid and axes\">\n      <grouped>grid-axes</grouped>\n      <position>1</position>\n      <children>\n        <active>grid</active>\n        <active>axes</active>\n      </children>\n      <components>\n        <active>grid</active>\n        <active>axes</active>\n      </components>\n      <parents>\n        <grouped>figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"grid\" speech2=\"The coordinate grid\">\n      <active>grid</active>\n      <position>1</position>\n      <parents>\n        <grouped>grid-axes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"axes\" speech2=\"The coordinate axes\">\n      <active>axes</active>\n      <position>2</position>\n      <parents>\n        <grouped>grid-axes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"graph-tangent\" speech2=\"The graph and its tangent line\">\n      <grouped>graph-tangent</grouped>\n      <position>2</position>\n      <children>\n        <active>graph</active>\n        <active>point</active>\n        <active>tangent</active>\n      </children>\n      <components>\n        <active>graph</active>\n        <active>point</active>\n        <active>tangent</active>\n      </components>\n      <parents>\n        <grouped>figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"graph\" speech2=\"The graph of the function f\" sonify=\"yes\">\n      <active>graph</active>\n      <position>1</position>\n      <parents>\n        <grouped>graph-tangent</grouped>\n      </parents>\n      <sonification>\n        <ACTIVE>graph</ACTIVE>\n      </sonification>\n    </annotation>\n    <annotation id=\"point\" speech2=\"The point a comma f of a\">\n      <active>point</active>\n      <position>2</position>\n      <parents>\n        <grouped>graph-tangent</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"tangent\" speech2=\"The tangent line to the graph of f at the point\">\n      <active>tangent</active>\n      <position>3</position>\n      <parents>\n        <grouped>graph-tangent</grouped>\n      </parents>\n    </annotation>\n  </annotations>\n</diagram>\n"
  },
  {
    "path": "examples/epub/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <source>\n        <directories external=\"ext\" generated=\"gen\"/>\n    </source>\n\n    <!-- EPUB-Specific Options -->\n    <!-- cover image file is specified relative  -->\n    <!-- to the \"external\" managed directory     -->\n    <epub>\n        <cover front=\"Verne_Tour_du_Monde.png\"/>\n    </epub>\n\n    <!-- HTML-Specific Options -->\n    <!-- Useful for certain tests of common features, like numbering -->\n    <html>\n        <css theme=\"default-modern\" palette=\"blue-red\"/>\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/errors/sample-errors-and-warnings.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!--\nTo process this file, at the command-line issue:\n\nxsltproc /path/to/mathbook/xsl/pretext-html.xsl /path/to/mathbook/examples/sample-errors-and-warnings.xml\n\nSome warnings are converter-specific (such as \ntriple braces in LaTeX source migrating to Sage\nnotebooks where that syntax is relevant).\n\nErrors and warnings will be output at the console, \nso the actual HTML output should not be of interest,\nand may not even be usable.  That's not the point.\n\nDevelopers: use this file as a permanent place to\ntest specific errors or warnings, and/or to test\nimprovements to the error/warning/deprecation\nsystems.\n-->\n<pretext>\n\n    <docinfo>\n        <!-- rename/lang  replaced by  rename/@xml:lang -->\n        <rename element=\"proposition\" lang=\"en-US\">Conundrum</rename>\n        <!-- Moved to publisher file, 100% -->\n        <analytics/>\n    </docinfo>\n\n    <article xml:id=\"errors-and-warnings\">\n        <title>Errors and Warnings in MathBook XML</title>\n\n        <section xml:id=\"introduction-id\">\n            <title>Introduction</title>\n\n            <p>We collect some bad things here, to test deprecation warnings and error handling.  Don't be alarmed.</p>\n        </section>\n\n        <section>\n            <title>Global Deprecations</title>\n            <p>These are sprinkled around as necessary, but listed here.</p>\n            <!-- Newer deprecations first  -->\n            <p>Cite element subsumed into xref scheme (2014/06/25).</p>\n            <p>Obsolete filebase attribute (2014/05/04).</p>\n            <p>Once upon a time there was a hyphen element for hyphenated<hyphen/>words.</p>\n            <p>The <c latexsep=\"|\">c</c> element no longer needs a <c latexsep=\"?\">@latexsep</c> attribute.</p>\n        </section>\n\n        <section filebase=\"obsolete-way-to-introduce-filename-strings\">\n            <title>Introduction</title>\n            <p>A sample paragraph.</p>\n            <!-- these index entries should prompt warnings -->\n            <!-- a \"see\" must not have a page locator       -->\n            <idx><h>ACK</h></idx>\n            <idx><h>ACK</h><see>Yuck</see></idx>\n            <!-- a \"seealso\" needs to have a page locator -->\n            <idx><h>SND</h><seealso>Yuck</seealso></idx>\n        </section>\n\n        <section>\n            <title>Cross-References</title>\n            <p>A <c>cite</c> is replaced directly by an <c>xref</c>, the obsolete use here would be functional <cite ref=\"errors-and-warning\"/> and  <cite provisional=\"just-a-test\"/>.</p>\n\n            <p>A cross-reference to nowhere (warnings): <xref ref=\"pointer-to-nowhere-as-test\"/></p>\n\n            <p>A cross-reference with a bad/missing attribute: <xref perversional=\"spelled-bad\"/>.</p>\n\n            <p>A cross-reference with a bad value for the autoname attribute: <xref ref=\"errors-and-warnings\" autoname=\"maybe\"/>.</p>\n\n            <p>The <q>detail</q> attribute of a cross-reference is only implemented for a reference to a bibliographic item: <xref ref=\"errors-and-warnings\" detail=\"blah\"/>.</p>\n\n            <p>The <q>plural</q> attribute of a cross-reference is deprecated with no equivalent replacment: <xref ref=\"errors-and-warnings\" autoname=\"plural\"/>.</p>\n\n            <p>A cross-reference to a range with incompatible targets (article and section):  <xref first=\"errors-and-warnings\" last=\"introduction-id\" />.</p>\n\n            <p>A cross-reference to a range where the two targets are in the wrong order, so generates a warning:  <xref first=\"section-images\" last=\"introduction-id\" />.</p>\n\n            <p>We supply two broken cross-references for testing purposes only, one a list, one not: <xref ref=\"theorem-number-87\"/>, <xref ref=\"errors-and-warnings, theorem-number-85\"/>.</p>\n\n            <p>We supply two more broken cross-references for testing purposes only, both of the <attr>first</attr>/<attr>last</attr> variety: <xref first=\"errors-and-warnings\" last=\"theorem-number-28\"/>, <xref first=\"theorem-number-832\" last=\"errors-and-warnings\"/>.</p>\n\n            <todo>A <tag>todo</tag> element now becomes a prefixed XML comment.</todo>\n        </section>\n\n        <section>\n            <title>Bad Math</title>\n            <!-- we mean this construction to provide a link back to a \"contributor\" -->\n            <author><xref ref=\"errors-and-warnings\"/></author>\n\n            <p>Some math that gives the Sage notebook trouble:  first the fixed version, where we use a small negative space followed by a small positive space to breakup the triple braces: <m>x^2{{\\!\\,{y^3}}}</m></p>\n\n            <p>Now the problem version, which in the Sage notebook will wreck this page.  You should be warned about this at the console when you built this worksheet.  Elsewhere the fixed version should look like this version: <m>x^2{{{y^3}}}</m></p>\n\n        </section>\n\n        <section xml:id=\"section-images\">\n            <title>Images</title>\n\n            <p>TikZ code no longer goes in a <c>tikz</c> element, but <c>latex-image-code</c> instead.  And similar graphics languages need to go into an <c>image</c>c&gt; element.  We globally trap occurrence inside <c>figure</c>c&gt; without an intervening <c>image</c>, which may not be the only way this could occur.</p>\n\n            <tikz/>\n\n            <figure>\n                <tikz>\n                </tikz>\n            </figure>\n\n            <figure>\n                <asymptote>\n                </asymptote>\n            </figure>\n\n            <figure>\n                <sageplot>\n                </sageplot>\n            </figure>\n\n            <p>And the <c>task</c> element has a new purpose and should not exist at the top-level of a division.  We include a <c>project</c> with a real <c>task</c> to test effect.</p>\n\n            <task>\n                <p>I should not be here.</p>\n            </task>\n\n            <project>\n                <task><p>First real task.</p></task>\n                <task><p>Second real task.</p></task>\n            </project>\n\n            <p>The <c>program</c> and <c>console</c> elements cannot occur without a wrapper, a <c>sidebyside</c> or a <c>console</c>.</p>\n\n            <console>\n                <input>cd</input>\n            </console>\n\n            <program language=\"r\">\n                <code>\n                a = b + c\n                </code>\n            </program>\n\n\n        </section>\n\n        <section>\n            <title>Miscellaneous</title>\n\n            <p>A circumflex should still be obtainable with <c>circum</c>: <circum/>. And <circa/> is now <ca/>.</p>\n\n            <paragraph>\n                <title>Groups of paragraphs</title>\n\n                <p>There has always been a sort of odd mini-sectioning element, called <c>paragraph</c> orignally since that is what it is in <latex/>, but now better named as <c>paragraphs</c>.</p>\n            </paragraph>\n\n            <!-- # $ % ^ & _ { } ~ \\  -->\n            <p><latex/>'s ten reserved characters once each had an empty element of its own: <hash/> <dollar/> <percent/> <circumflex/> <ampersand/> <underscore/> <lbrace/> <rbrace/> <tilde/> <backslash/>.</p>\n\n            <!-- <, >, [, ], *, /, `, braces and brackets  -->\n            <p>And similarly, nine other elements were made redundant:  <less/> <greater/> <lbracket/> <rbracket/> <asterisk/> <slash/> <backtick/> <braces>braces</braces> <brackets>brackets</brackets>.</p>\n\n            <!-- Unicode for degree, times, en-dash, em-dash, no-length space, and several quotes -->\n            <p>There are also several Unicode characters which show up a lot in copy-paste: °×​–—‘’“”, especially from Windows.  However, they look okay and can be useful in text in math mode (which cannot use normal <sq>tags</sq> like &lt;sq&gt;), so we leave them alone there: <m>z\\text{×}z\\text{​}\\text{–}z\\text{ isn’t “z”}</m>.</p>\n\n            <p>Tables once looked like this, but now are really different.</p>\n\n             <table xml:id=\"table-euler1\">\n                <tgroup cols=\"4\" align=\"center\">\n                    <thead>\n                        <row><entry><m>i</m></entry><entry><m>t_i</m></entry><entry><m>x_i</m></entry><entry><m>y_i</m></entry></row>\n                    </thead>\n                    <tbody>\n                        <row><entry>0</entry><entry>0</entry><entry>0</entry><entry>0.5000</entry></row>\n                        <row><entry>1</entry><entry>0.20</entry><entry>0.1000</entry><entry>0.4800</entry></row>\n                        <row><entry>2</entry><entry>0.40</entry><entry>0.1960</entry><entry>0.4560</entry></row>\n                        <row><entry>3</entry><entry>0.60</entry><entry>0.2872</entry><entry>0.4295</entry></row>\n                        <row><entry>4</entry><entry>0.80</entry><entry>0.3731</entry><entry>0.4027</entry></row>\n                        <row><entry>5</entry><entry>1.00</entry><entry>0.4536</entry><entry>0.3783</entry></row>\n                        <row><entry>6</entry><entry>1.20</entry><entry>0.5293</entry><entry>0.3591</entry></row>\n                        <row><entry>7</entry><entry>1.40</entry><entry>0.6011</entry><entry>0.3480</entry></row>\n                        <row><entry>8</entry><entry>1.60</entry><entry>0.6707</entry><entry>0.3474</entry></row>\n                        <row><entry>9</entry><entry>1.80</entry><entry>0.7402</entry><entry>0.3603</entry></row>\n                        <row><entry>10</entry><entry>2.00</entry><entry>0.8123</entry><entry>0.3900</entry></row>\n                    </tbody>\n                </tgroup>\n            </table>\n\n        </section>\n\n        <section>\n            <title>Ordered Lists with No Labels</title>\n\n            <p>Once in the sample article, but now with two problems, not one.  What were we thinking?</p>\n\n            <ol label=\"\">\n                <li>Level 1, first.</li>\n                <li>Level 1, second.<ol label=\"++A\">\n                    <li>Level 2, first.</li>\n                    <li>Level 2, second.<ol label=\"\">\n                            <li>Level 3, first.</li>\n                            <li>Level 3, second.</li>\n                            <li>Level 3, third.</li>\n                        </ol></li>\n                    <li>Level 2, third.</li>\n                </ol></li>\n                <li>Level 1, third.</li>\n            </ol>\n        </section>\n\n        <section>\n            <title>Catching Mis-Authored Code Chunks</title>\n\n            <p>The XML special characters are often misunderstood.  We can <q>see</q> when an element expecting pure text has a stray XML element.  This could happen when code outputs legitimate HTML elements via print statements.  But there are other possibilities.  Solution, generally, is to use an escaped <q>less than</q> (<c>&amp;lt;</c>) or use a CDATA section.  First a silly inline verbatim that has a problem: <c>foo <bar/> foo</c>, and a structured code display<cd>\n                <cline>I'm fine.</cline>\n                <cline>I'm <broken/>.</cline>\n            </cd>Note, this is no help for stray <q>less than</q> in places like tikz code for diagrams.</p>\n        </section>\n\n        <section>\n            <title>A Badly Structured Section</title>\n\n            <p>This introductory paragraph should be inside an introduction, since it is followed by a sequence of subsections (well, just one anyway).  This will fail validation, and <em>also</em> raise a warning.</p>\n\n            <subsection>\n                <title>First Subsection</title>\n\n                <p>With a single paragraph.  We try to catch this common structural violation.</p>\n            </subsection>\n        </section>\n\n        <section>\n            <title>Prohibited Cross-References in Display Mathematics</title>\n\n            <p>Cross-references can be built into display mathematics, but they can only point to one item (<ie/> a comma-delimited list of targets is not supported).<md>\n                <mrow>x^2 + y^2 &amp;= z^2&amp;&amp;<xref ref=\"table-euler1\"/></mrow>\n                <mrow>x^2 + y^2 &amp;= z^2&amp;&amp;<xref ref=\"section-images\"/></mrow>\n                <mrow>a^2 + b^2 &amp;= c^2&amp;&amp;<xref ref=\"table-euler1, table-euler1\"/></mrow>\n            </md></p>\n        </section>\n\n        <section>\n            <title>Side-by-Side Paragraphs</title>\n\n            <sidebyside>\n                <p>First panel.</p>\n                <paragraphs>\n                    <title>Mock Title</title>\n                    <p>Paragraph one.</p>\n                    <image source=\"images/foobar.png\"/>\n                    <p>Paragraph two.</p>\n                </paragraphs>\n            </sidebyside>\n\n        </section>\n\n        <section>\n            <title>WeBWorK</title>\n\n            <p>A WeBWorK problem will need a server.  You will get a warning if you do not specify one.  But you should not be warned just because you use the empty element to get the stylized version, like this: <webwork/>.  So you can test warnings by commenting out one or the other instance.</p>\n\n            <exercise>\n                <title>Mock WW Exercise</title>\n\n                <webwork>\n                    <statement>\n                        <p>Very minimal.</p>\n                    </statement>\n                </webwork>\n            </exercise>\n\n        </section>\n\n        <section>\n            <title>Image Descriptions</title>\n\n            <p>The <c>height</c> attribute is ineffective on <c>image</c> elements.</p>\n\n            <figure>\n                <image height=\"30%\" source=\"images/foobar.png\"/>\n            </figure>\n\n            <p><c>width</c> attributes once could be dimensionless, but now need to be percentages.</p>\n\n            <figure>\n                <image width=\"300\" source=\"images/foobar.png\"/>\n            </figure>\n\n        </section>\n\n        <section>\n            <title>Bona Fide <webwork/> Problems</title>\n\n            <p>These are two legitimate <webwork/> problems copied from the WW sample chapter on 2018-07-12.  We are using them, and variants below, to test Schematron rules enforcing locations where <webwork/>-specific exceptions are alllowed.  The third problem is a clone of the second, but with a <tag>setup</tag> element that is deprecated as of 2020-03-13.</p>\n\n            <exercise>\n                <title>Solving Quadratic Equations</title>\n\n                <webwork xml:id=\"quadratic-equation\">\n                    <!-- TODO: move out context shift -->\n                    <pg-code>\n                        Context(\"Fraction\");\n\n                        $a = Compute(random(2,6,1));\n                        do {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n                        $r = Compute(random(2,6,1));\n                        $c = $k*-$r;\n                        $b = $a*-$r+$k;\n                        $quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n                        $x1 = Fraction($r,1);\n                        $x2 = Fraction(-$k,$a);\n                        Context()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n                        $solnum1 = Formula(\"-$b+sqrt(($b)**2-4($a)($c))\");\n                        $solnum2 = Formula(\"-$b-sqrt(($b)**2-4($a)($c))\");\n\n                        $evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n                            [-$a] =>\n                            \"Do you have the sign correct?\"));\n                        $evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n                            [-$b] =>\n                            \"Do you have the sign correct?\"));\n                        $evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n                            [-$c] =>\n                            \"Do you have the sign correct?\"));\n\n                        Context(\"LimitedFraction\");\n                        $multians1 = MultiAnswer(Fraction(\"$x1\"),Fraction(\"$x2\"))->with(\n                            singleResult => 0,\n                            allowBlankAnswers => 1,\n                            checker => sub {\n                                my ($correct,$student,$self) = @_;\n                                my ($s1, $s2) = @{$student};\n                                my ($c1, $c2) = @{$correct};\n\n                                return (1,1) if ($c1 == $s1 and $c2 == $s2) or\n                                                ($c1 == $s2 and $c2 == $s1);\n                                return (1,0) if $c1 == $s1 or $c2 == $s1;\n                                return (0,1) if $c1 == $s2 or $c2 == $s2;\n                                return (0,0);\n                            }\n                        );\n                    </pg-code>\n\n                    <stage>\n                        <title>Part 1: Identify the coefficients</title>\n\n                        <statement>\n                            <p>Consider the quadratic equation given by <md><var name=\"$quadratic\" /> = 0\\text{.}</md>  First, identify the coefficients for the quadratic equation using the standard form from <xref ref=\"theorem-quadratic-formula\" />.</p>\n\n                            <p><m>a=</m> <var name=\"$a\" width=\"4\" evaluator=\"$evaluatorfora\"/>, <m>b=</m> <var name=\"$b\" width=\"4\" evaluator=\"$evaluatorforb\"/>, <m>c=</m> <var name=\"$c\" width=\"4\" evaluator=\"$evaluatorforc\"/></p>\n                        </statement>\n\n                        <solution>\n                            <p> Take the coefficient of <m>x^2</m> for the value of <m>a</m>, the coefficient of <m>x</m> for <m>b</m>, and the constant for <m>c</m>.  <em>In this case</em>, they are <m>a = <var name=\"$a\" /></m>, <m>b = <var name=\"$b\" /></m>, <m>c = <var name=\"$c\" /></m>.</p>\n                        </solution>\n                    </stage>\n\n                    <stage>\n                        <title>Part 2: Solve using the quadratic formula</title>\n\n                        <statement>\n                            <p>Using the quadratic formula, solve <m><var name=\"$quadratic\"/>=0</m>.</p>\n                            <p><m>x=</m> <var name=\"$multians1\" width=\"15\"/> or <m>x=</m> <var name=\"$multians1\" width=\"15\"/></p>\n                        </statement>\n\n                        <solution>\n                            <p>Recall that the quadratic formula is given in <xref ref=\"theorem-quadratic-formula\" />.</p>\n\n                            <p>You already identified <m>a = <var name=\"$a\"/></m>, <m>b = <var name=\"$b\"/></m>, and <m>c = <var name=\"$c\"/></m>, so the results are: <md>x = {<var name=\"$solnum1\"/> \\over 2(<var name=\"$a\"/>)} = <var name=\"$x1\"/></md> or <md>x = {<var name=\"$solnum2\"/> \\over 2(<var name=\"$a\"/>)} = <var name=\"$x2\"/></md></p>\n                        </solution>\n                    </stage>\n                </webwork>\n            </exercise>\n\n\n            <exercise>\n                <title>Tables</title>\n\n                <webwork xml:id=\"tables\">\n                    <pg-code>\n                        $x = Real(5);\n                    </pg-code>\n\n                    <statement>\n                        <p>A table with minimal XML source.</p>\n\n                        <sidebyside>\n                            <tabular>\n                                <row>\n                                    <cell>A</cell>\n                                    <cell>B</cell>\n                                    <cell>C</cell>\n                                </row>\n                                <row>\n                                    <cell>D</cell>\n                                    <cell>E</cell>\n                                    <cell>F</cell>\n                                </row>\n                                <row>\n                                    <cell>G</cell>\n                                    <cell>H</cell>\n                                    <cell>I</cell>\n                                </row>\n                            </tabular>\n                        </sidebyside>\n                        <p>Finish this table.</p>\n\n                        <sidebyside>\n                            <tabular top=\"major\" left=\"major\" bottom=\"major\" right=\"minor\" halign=\"center\">\n                                <col halign=\"right\" top=\"minor\"/>\n                                <col right=\"medium\"/>\n                                <col halign=\"left\"/>\n                                <row bottom=\"none\" left=\"none\">\n                                <cell right=\"minor\">1</cell>\n                                    <cell>two</cell>\n                                    <cell><m>\\lfloor\\pi\\rfloor</m></cell>\n                                </row>\n                                <row valign=\"bottom\">\n                                    <cell bottom=\"minor\"><line><m>\\text{I}+\\text{I}</m></line><line><m>{}+\\text{I}+\\text{I}</m></line></cell>\n                                    <cell><var name=\"$x\" form=\"none\" category=\"integer\"/></cell>\n                                    <cell>six</cell>\n                                </row>\n                                <row halign=\"right\">\n                                    <cell><m>2^3-1</m></cell>\n                                    <cell colspan=\"2\" halign=\"center\">VIII</cell>\n                                </row>\n                            </tabular>\n                        </sidebyside>\n                    </statement>\n\n                    <solution>\n                        <p>The missing number is <var name=\"$x\"/>.</p>\n                    </solution>\n                </webwork>\n            </exercise>\n\n            <exercise>\n                <title>Tables Part Two</title>\n\n                <webwork xml:id=\"tables-with-setup\">\n                    <setup>\n                        <pg-code>\n                            $x = Real(5);\n                        </pg-code>\n                    </setup>\n\n                    <statement>\n                        <p>A table with minimal XML source.</p>\n\n                        <sidebyside>\n                            <tabular>\n                                <row>\n                                    <cell>A</cell>\n                                    <cell>B</cell>\n                                    <cell>C</cell>\n                                </row>\n                                <row>\n                                    <cell>D</cell>\n                                    <cell>E</cell>\n                                    <cell>F</cell>\n                                </row>\n                                <row>\n                                    <cell>G</cell>\n                                    <cell>H</cell>\n                                    <cell>I</cell>\n                                </row>\n                            </tabular>\n                        </sidebyside>\n                        <p>Finish this table.</p>\n\n                        <sidebyside>\n                            <tabular top=\"major\" left=\"major\" bottom=\"major\" right=\"minor\" halign=\"center\">\n                                <col halign=\"right\" top=\"minor\"/>\n                                <col right=\"medium\"/>\n                                <col halign=\"left\"/>\n                                <row bottom=\"none\" left=\"none\">\n                                <cell right=\"minor\">1</cell>\n                                    <cell>two</cell>\n                                    <cell><m>\\lfloor\\pi\\rfloor</m></cell>\n                                </row>\n                                <row valign=\"bottom\">\n                                    <cell bottom=\"minor\"><line><m>\\text{I}+\\text{I}</m></line><line><m>{}+\\text{I}+\\text{I}</m></line></cell>\n                                    <cell><var name=\"$x\" form=\"none\" category=\"integer\"/></cell>\n                                    <cell>six</cell>\n                                </row>\n                                <row halign=\"right\">\n                                    <cell><m>2^3-1</m></cell>\n                                    <cell colspan=\"2\" halign=\"center\">VIII</cell>\n                                </row>\n                            </tabular>\n                        </sidebyside>\n                    </statement>\n\n                    <solution>\n                        <p>The missing number is <var name=\"$x\"/>.</p>\n                    </solution>\n                </webwork>\n            </exercise>\n        </section>\n\n\n        <section>\n            <title>Broken <webwork/> Problems</title>\n\n            <p>These are remnants of the two legitimate <webwork/> problems copied from the WW sample chapter on 2018-07-12 (above).  We are leaving them as <tag>exercise</tag> but removing the <tag>webwork</tag> wrapper to provoke errors.</p>\n\n            <exercise>\n                        <title>Part 1: Identify the coefficients</title>\n\n                        <statement>\n                            <p>Consider the quadratic equation given by <md><var name=\"$quadratic\" /> = 0\\text{.}</md>  First, identify the coefficients for the quadratic equation using the standard form from <xref ref=\"theorem-quadratic-formula\" />.</p>\n\n                            <p><m>a=</m> <var name=\"$a\" width=\"4\" evaluator=\"$evaluatorfora\"/>, <m>b=</m> <var name=\"$b\" width=\"4\" evaluator=\"$evaluatorforb\"/>, <m>c=</m> <var name=\"$c\" width=\"4\" evaluator=\"$evaluatorforc\"/></p>\n                        </statement>\n\n                        <solution>\n                            <p> Take the coefficient of <m>x^2</m> for the value of <m>a</m>, the coefficient of <m>x</m> for <m>b</m>, and the constant for <m>c</m>.  <em>In this case</em>, they are <m>a = <var name=\"$a\" /></m>, <m>b = <var name=\"$b\" /></m>, <m>c = <var name=\"$c\" /></m>.</p>\n                        </solution>\n            </exercise>\n\n            <exercise>\n                        <title>Part 2: Solve using the quadratic formula</title>\n\n                        <statement>\n                            <p>Using the quadratic formula, solve <m><var name=\"$quadratic\"/>=0</m>.</p>\n                            <p><m>x=</m> <var name=\"$multians1\" width=\"15\"/> or <m>x=</m> <var name=\"$multians1\" width=\"15\"/></p>\n                        </statement>\n\n                        <solution>\n                            <p>Recall that the quadratic formula is given in <xref ref=\"theorem-quadratic-formula\" />.</p>\n\n                            <p>You already identified <m>a = <var name=\"$a\"/></m>, <m>b = <var name=\"$b\"/></m>, and <m>c = <var name=\"$c\"/></m>, so the results are: <md>x = {<var name=\"$solnum1\"/> \\over 2(<var name=\"$a\"/>)} = <var name=\"$x1\"/></md> or <md>x = {<var name=\"$solnum2\"/> \\over 2(<var name=\"$a\"/>)} = <var name=\"$x2\"/></md></p>\n                        </solution>\n            </exercise>\n\n\n            <exercise>\n                <title>Tables</title>\n\n\n                    <statement>\n                        <p>A table with minimal XML source.</p>\n\n                        <sidebyside>\n                            <tabular>\n                                <row>\n                                    <cell>A</cell>\n                                    <cell>B</cell>\n                                    <cell>C</cell>\n                                </row>\n                                <row>\n                                    <cell>D</cell>\n                                    <cell>E</cell>\n                                    <cell>F</cell>\n                                </row>\n                                <row>\n                                    <cell>G</cell>\n                                    <cell>H</cell>\n                                    <cell>I</cell>\n                                </row>\n                            </tabular>\n                        </sidebyside>\n                        <p>Finish this table.</p>\n\n                        <sidebyside>\n                            <tabular top=\"major\" left=\"major\" bottom=\"major\" right=\"minor\" halign=\"center\">\n                                <col halign=\"right\" top=\"minor\"/>\n                                <col right=\"medium\"/>\n                                <col halign=\"left\"/>\n                                <row bottom=\"none\" left=\"none\">\n                                <cell right=\"minor\">1</cell>\n                                    <cell>two</cell>\n                                    <cell><m>\\lfloor\\pi\\rfloor</m></cell>\n                                </row>\n                                <row valign=\"bottom\">\n                                    <cell bottom=\"minor\"><line><m>\\text{I}+\\text{I}</m></line><line><m>{}+\\text{I}+\\text{I}</m></line></cell>\n                                    <cell><var name=\"$x\" form=\"none\" category=\"integer\"/></cell>\n                                    <cell>six</cell>\n                                </row>\n                                <row halign=\"right\">\n                                    <cell><m>2^3-1</m></cell>\n                                    <cell colspan=\"2\" halign=\"center\">VIII</cell>\n                                </row>\n                            </tabular>\n                        </sidebyside>\n                    </statement>\n\n                    <solution>\n                        <p>The missing number is <var name=\"$x\"/>.</p>\n                    </solution>\n            </exercise>\n\n                <figure>\n                    <caption>Two named lists</caption>\n                    <sidebyside widths=\"30% 60%\" valign=\"top\">\n                        <list>\n                            <caption>Sea Life</caption>\n                            <title>Employed, so Caption is commented</title>\n                            <introduction>\n                                <p>Dr. Seuss again.</p>\n                            </introduction>\n                            <ul>\n                                <li>One fish</li>\n                                <li>Two fish</li>\n                                <li>Red fish</li>\n                                <li>Blue fish</li>\n                            </ul>\n                        </list>\n                        <list xml:id=\"color-list-as-panel\">\n                            <caption>Color Shades</caption>\n                            <idx><h>colors</h><h>shades</h></idx>\n                            <ol>\n                                <li><p>Blue<ol>\n                                    <li>Light</li>\n                                    <li>Navy</li>\n                                    <li>Royal</li>\n                                </ol></p></li>\n                                <li><p>Red<ol>\n                                    <li>Maroon</li>\n                                    <li>Pink</li>\n                                    <li>Shocking</li>\n                                </ol></p></li>\n                            </ol>\n                            <conclusion>\n                                <p>This ends our example.</p>\n                            </conclusion>\n                        </list>\n                    </sidebyside>\n                </figure>\n\n                <table>\n                    <caption>Supported Currency</caption>\n                    <tabular>\n                        <row bottom=\"medium\">\n                            <cell>Sign</cell>\n                            <cell>Unicode</cell>\n                            <cell>Name</cell>\n                        </row>\n                        <row>\n                            <cell>&#x0024;</cell>\n                            <cell><c>U+0024</c></cell>\n                            <cell>dollar</cell>\n                        </row>\n                        <row>\n                            <cell>&#x00a2;</cell>\n                            <cell><c>U+00A2</c></cell>\n                            <cell>cent</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n        </section>\n\n        <glossary>\n             <idx>glossary</idx>\n            <introduction>\n                <p>A glossary may have an <tag>introduction</tag>, perhaps with some explanation. Here this is an <q>old-style</q> glossary to provoke errors.</p>\n            </introduction>\n\n            <terms>\n                <defined-term>\n                    <title>bar</title>\n                    <p>A part of <term>foobar</term>.  See <xref ref=\"foobar-defined\" text=\"title\"/>.</p>\n                </defined-term>\n\n                <defined-term xml:id=\"foobar-defined\">\n                    <title>foobar</title>\n                    <p>A synonym for the acronym <acro>FUBAR</acro>.</p>\n                </defined-term>\n            </terms>\n\n            <conclusion>\n                <p>And for symmetry, a <tag>conclusion</tag>.</p>\n            </conclusion>\n        </glossary>\n\n\n        <!-- These worksheets frequently have too much space alloted, -->\n        <!-- so we can test the response to that author \"error\".      -->\n        <!-- 2020-03-22: copied verbatim from the sample article      -->\n       <worksheet>\n          <title>A Geometric Prelude</title>\n          <!-- <author>Dave Rosoff</author> -->\n          <objectives xml:id=\"objectives\">\n            <ul>\n              <li>Practice visualizing vector addition</li>\n              <li>Use vectors without explicit coordinates</li>\n            </ul>\n          </objectives>\n          <introduction>\n            <p>This two-page worksheet was generously donated to the sample article by Dave Rosoff at a CuratedCourses workshop in August<nbsp/>2018.  It has the default (skinny) margins.</p>\n\n            <p>It was known to Euclid, and probably earlier, that the midpoints of the sides of any quadrilateral all lie in the same plane (even if the vertices of the quadrilateral do not). In fact, these midpoints are the vertices of a parallelogram, as pictured in <xref ref=\"figure-midpoints-of-quadrilateral\" text=\"type-global\"/>.</p>\n            <sidebyside width=\"30%\">\n              <figure xml:id=\"figure-midpoints-of-quadrilateral\">\n                <caption>The midpoints of the sides of a quadrilateral are the vertices of a parallelogram.</caption>\n                <image xml:id=\"worksheet-midpoints-of-quadrilateral\">\n                  <latex-image>\n                    \\begin{tikzpicture}[xscale=0.8, yscale=0.8]\n                     \\draw[style={black, ultra thick}] (0,0) -- (5,0) -- (4,4) -- (2,5) -- (0,0);\n                     \\draw[style={black, dashed, very thick}] (2.5, 0) -- (4.5, 2) -- (3, 4.5) -- (1, 2.5) -- (2.5, 0);\n                    \\end{tikzpicture}\n                  </latex-image>\n                </image>\n              </figure>\n              <figure xml:id=\"figure-triangle-cyclic-vectors\">\n                <caption>The sides of a triangle presented as vectors.</caption>\n                <image xml:id=\"worksheet-triangle-cyclic-vectors\">\n                  <latex-image>\n                    \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                      \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                      \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                      \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                      % \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                      %   {} -- (1.5,0) node[below right=0mm and 3mm] {$\\vec{A}$};\n                      %\\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                      %  {} -- (2,1) node[above left=5mm and 1mm] {$\\vec{B}$};\n                      %\\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                      %  {} -- (0.5,1) node[below left=1mm and 3mm] {$\\vec{C}$};\n                      %\\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                      %\\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                      % \\node {$P$} (1.3333,0.6667);\n                    \\end{tikzpicture}\n                  </latex-image>\n                </image>\n              </figure>\n              <figure xml:id=\"figure-triangle-cyclic-medians\">\n                <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n                <image xml:id=\"worksheet-triangle-cyclic-medians\" width=\"50%\">\n                  <latex-image>\n                    \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                      \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                      \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                      \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                        {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                       {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                       {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n                      \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                      \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                      % \\node {$P$} (1.3333,0.6667);\n                    \\end{tikzpicture}\n                  </latex-image>\n                </image>\n              </figure>\n            </sidebyside>\n            <p>In this exercise, we'll use vectors to show that the medians of any triangle (<xref ref=\"figure-triangle-cyclic-vectors\" text=\"type-global\"/>) intersect at a point. Recall that medians are the lines connecting the vertices of the triangle to the midpoints of their opposite edges, as in the figure. We'll do this in a few steps.</p>\n          </introduction>\n<page>\n          <exercise xml:id=\"ex-cyclic\" workspace=\"4in\">\n            <statement>\n              <p>What is the value of <m>\\vec{A} + \\vec{B} + \\vec{C}</m>?</p>\n            </statement>\n          </exercise>\n</page>\n\n<page>\n          <p><xref ref=\"figure-triangle-cyclic-medians\" text=\"type-global\"/> from the previous page is reproduced for your convenience.</p>\n          <figure xml:id=\"figure-triangle-cyclic-medians-copy\">\n            <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n            <image xml:id=\"worksheet-triangle-cyclic-medians-copy\" width=\"50%\">\n              <latex-image>\n                \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                  \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                  \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                  \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                  \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                    {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n                  \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                   {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n                  \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                   {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n                  \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                  \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                  % \\node {$P$} (1.3333,0.6667);\n                \\end{tikzpicture}\n              </latex-image>\n            </image>\n          </figure>\n          <sidebyside margins=\"0%\" widths=\"30% 60%\" valign=\"top\">\n            <exercise xml:id=\"exercise-vector-addition\" workspace=\"5.5in\">\n              <statement>\n                <p>Show that <m>\\vec{M}_{1} + \\vec{M}_{2} + \\vec{M}_{3} = 0</m>.</p>\n              </statement>\n              <hint>\n                <p>Use <xref ref=\"ex-cyclic\" text=\"type-global\"/>.</p>\n              </hint>\n            </exercise>\n            <exercise workspace=\"2in\">\n              <statement>\n                <p>To show that the point <m>P</m> exists (as the common intersection of the <m>\\vec{M}_{i}</m>), show that <md>\n                  \\vec{A} + \\frac{2}{3} \\vec{M}_{3} = \\frac{2}{3} \\vec{M}_{2} = <fillin characters=\"10\"/>\n                </md>.</p>\n              </statement>\n            </exercise>\n          </sidebyside>\n          <exercise workspace=\"2.54cm\">\n            <p>If you have time, try to devise a vector proof of Euclid's result presented at the beginning of the workshop. Recall that a <term>parallelogram</term> is a four-sided polygon whose opposite sides are parallel.</p>\n          </exercise>\n</page>\n          <conclusion>\n            <title>Wrap-up</title>\n            <p>It's possible to do interesting things with vector arithmetic in a coordinate-free way: we didn't specify an origin, or any entries of any vectors in the examples.</p>\n          </conclusion>\n        </worksheet>\n\n        <worksheet top=\"3cm\" bottom=\"100pt\">\n            <title>Networks Worksheet</title>\n            <!-- <subtitle>An Activity Using Linear Algebra to Solve Network Applications</subtitle> -->\n\n            <introduction>\n                <title>Basic laws for electrical circuits</title>\n\n                <p>This two-page worksheet was generously donated to the sample article by Virgil Pierce at a CuratedCourses workshop in August<nbsp/>2018.  It has default (skinny) left and right margins, but we have specified longer top and bottom margins, with the top being the larger of the two.</p>\n\n                <theorem>\n                    <title> Ohms Law </title>\n                    <p> The current through a resistor is proportional to the ratio of the <em> Voltage </em> to the <em> Resistance </em>\n                        <md> I = \\frac{V}{R} </md>\n                        Or for our purposes\n                        <md> I R = V </md>\n                    </p>\n                </theorem>\n\n                <theorem>\n                    <title>Kirchoffs Current Law</title>\n                    <p> The sum of the currents in a network meeting at a point is zero.\n                        <md> \\sum_{k=1}^n I_k = 0 </md>\n                    </p>\n                </theorem>\n\n                <example>\n                    <title> Kirchoff's Current Law </title>\n                    <p> For the circuit below <m> I_1 + I_2 = I_3 </m>.</p>\n                    <image xml:id=\"worksheet-kirchoff-law\" width=\"40%\">\n                        <latex-image>\n                        \\begin{circuitikz}\n                        \\draw (0,0)\n                        to[R, i=$I_1$, *-o](2,2);\n                        \\draw (0,0)\n                        to[R, i=$I_2$, *-o](2,-2);\n                        \\draw (-3, 0)\n                        to[R, i=$I_3$, o-*](0,0);\n                        \\end{circuitikz}\n                        </latex-image>\n                    </image>\n                </example>\n\n                <theorem>\n                    <title> Kirchoffs Voltage Law </title>\n                    <p> The sum of the voltages around any closed circuit (or subcircuit) is zero.\n                        <md> \\sum_{k=1}^n V_k = 0 </md>\n                    </p>\n                </theorem>\n\n                <p> Kirchoffs Current Law and Kirkoffs Voltage Law combined with Ohms Law gives for any circuit of resistors and sources a linear system that may (or may not) determine the currents.\n                </p>\n            </introduction>\n<page>\n</page>\n\n<page>\n            <sidebyside width=\"45%\" margins=\"0%\">\n                <exercise workspace=\"1.5in\">\n                    <statement>\n                    <p>For the simple network pictured, calculuate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                    <image xml:id=\"worksheet-simple-network\">\n                        <latex-image>\n                        \\begin{circuitikz}\n                        \\draw (0,0)\n                        to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                        to[short](2,3)\n                        to[R, R=$4\\quad \\mbox{ohm}$] (3, 3)\n                        to[short](4,3)\n                        to[R, R=$3\\quad \\mbox{ohm}$](4,0)\n                        to[short](3,0)\n                        to[R, R=$3\\quad \\mbox{ohm}$](2,0)\n                        to[short](0,0);\n                        \\end{circuitikz}\n                        </latex-image>\n                    </image>\n                   </statement>\n                </exercise>\n\n                <exercise workspace=\"2in\">\n                    <statement>\n                    <p> Compare it with a parallel circuit network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                    <image xml:id=\"worksheet-parallel-circuit\">\n                        <latex-image>\n                        \\begin{circuitikz}\n                        \\draw(0,0)\n                        to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                        to[short](5,3)\n                        to[R, R=$4\\quad \\mbox{ohm}$](6,3)\n                        to[short](7,3)\n                        to[R, R=$3\\quad \\mbox{ohm}$](7,0)\n                        to[short](6,0)\n                        to[R, R=$3\\quad \\mbox{ohm}$](5,0)\n                        to[short](0,0);\n                        \\draw(4,0)\n                        to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                        \\end{circuitikz}\n                        </latex-image>\n                    </image>\n                    </statement>\n                </exercise>\n            </sidebyside>\n\n            <exercise workspace=\"1in\">\n                <statement>\n                <p> Now for a more complicated network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                <image xml:id=\"worksheet-complicated-network\">\n                    <latex-image>\n                    \\begin{circuitikz}\n                    \\draw(0,0)\n                    to[V, v=$11 \\quad \\mbox{volt}$](0, 3)\n                    to[short](5,3)\n                    to[R, R=$4 \\quad \\mbox{ohm}$](6,3)\n                    to[short](9,3)\n                    to[R, R=$4 \\quad \\mbox{ohm}$](10,3)\n                    to[short](11,3)\n                    to[R, R=$3 \\quad \\mbox{ohm}$](11, 0)\n                    to[short](10,0)\n                    to[R, R=$2\\quad \\mbox{ohm}$](9,0)\n                    to[short](6,0)\n                    to[R, R=$2\\quad \\mbox{ohm}$](5,0)\n                    to[short](0,0);\n                    \\draw(4,0)\n                    to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                    \\draw(8,0)\n                    to[R, R=$1\\quad \\mbox{ohm}$](8,3);\n                    \\end{circuitikz}\n                    </latex-image>\n                </image>\n                </statement>\n            </exercise>\n</page>\n\n<page>\n            <exercise workspace=\"3in\">\n                <statement>\n                    <p> Now generalize these ideas to a context outside of electrical circuits. Consider the network of streets given in the diagram (with one-way directions as indicated).</p>\n\n                    <image xml:id=\"worksheet-street-network\" width=\"65%\">\n                        <latex-image>\n                        <![CDATA[\n                        \\begin{tikzpicture}[>=stealth]\n                        \\draw[->, very thick] (0,0) -- (10, 0) node[midway, below]{East Bound Winooski Ave};\n                        \\draw[<-, very thick] (0, 1) -- (10, 1) node[midway, above]{West Bound Winooski Ave};\n                            \\draw[<-, very thick] (0, 4) -- (10, 4) node[midway, above]{Shelburne St};\n                            \\draw[<-, very thick] (1, -1) -- (1, 5) node[midway, above, sloped]{Willow};\n                            \\draw[->, very thick] (9, -1) -- (9, 5) node[midway, above, sloped]{Jay};\n                            \\end{tikzpicture}\n                        ]]>\n                        </latex-image>\n                    </image>\n\n                    <p>A traffic engineer counts the hourly flow of cars into and out of this network at the entrances.  They get (EB = East Bound; WB = West Bound): </p>\n\n                    <table>\n                        <title>Estimated hourly traffic flow for the road network</title>\n                        <tabular>\n                            <row>\n                                <cell>\n                                </cell>\n                                <cell>\n                                    EB Winooski\n                                </cell>\n                                <cell>\n                                    WB Winooski\n                                </cell>\n                                <cell>\n                                    Shelburne St\n                                </cell>\n                                <cell>\n                                    Willow\n                                </cell>\n                                <cell>\n                                    Jay\n                                </cell>\n                            </row>\n                            <row>\n                                <cell>\n                                    into\n                                </cell>\n                                <cell>\n                                    50\n                                </cell>\n                                <cell>\n                                    400\n                                </cell>\n                                <cell>\n                                    0\n                                </cell>\n                                <cell>\n                                    10\n                                </cell>\n                                <cell>\n                                    50\n                                </cell>\n                            </row>\n                            <row>\n                                <cell>\n                                    out of\n                                </cell>\n                                <cell>\n                                    55\n                                </cell>\n                                <cell>\n                                    390\n                                </cell>\n                                <cell>\n                                    20\n                                </cell>\n                                <cell>\n                                    15\n                                </cell>\n                                <cell>\n                                    30\n                                </cell>\n                            </row>\n                        </tabular>\n                    </table>\n\n                    <p> Use a variable for each segment inside of the network and set up a system of linear equations restricting the flow. Solve the system.  Note that you should not get a unique solution as traffic should be able to flow through the network in various ways. </p>\n                </statement>\n            </exercise>\n</page>\n        </worksheet>\n\n        <worksheet margin=\"1cm\">\n            <introduction>\n                <p>This is a mock one-page worksheet for testing purposes. We have specified an overall margin just slightly less than the default.</p>\n            </introduction>\n\n<page>\n            <sidebyside width=\"45%\" margins=\"0%\">\n                <exercise workspace=\"1in\">\n                    <statement>\n                        <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                    </statement>\n                </exercise>\n\n                <exercise workspace=\"1.8in\">\n                    <statement>\n                        <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                    </statement>\n                </exercise>\n            </sidebyside>\n\n            <p>A two-line paragraph interspersed to check on spacing, breaks and all that.</p>\n\n            <exercise workspace=\"1.5in\">\n                <title>A full-width exercise</title>\n                <statement>\n                    <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                    <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                </statement>\n            </exercise>\n\n            <p>Another two-line paragraph interspersed to check on spacing, breaks and all that.</p>\n\n            <sidebyside width=\"30%\" margins=\"0%\">\n                <exercise>\n                    <statement>\n                        <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                    </statement>\n                </exercise>\n\n                <exercise workspace=\"1in\">\n                    <!-- <title>The Tallest</title> -->\n                    <statement>\n                        <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                    </statement>\n                </exercise>\n\n                <exercise workspace=\"1in\">\n                    <statement>\n                        <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                    </statement>\n                </exercise>\n            </sidebyside>\n\n            <activity>\n                <title>A Mock Activity</title>\n\n                <statement>\n                    <p>The problem, as we see it.</p>\n                </statement>\n                <hint>\n                    <p>A worksheet could have hints, no?  But no spacing. Note row below has widths set to balance the heights.</p>\n                </hint>\n            </activity>\n\n            <sidebyside widths=\"25% 40% 25%\" margins=\"0%\">\n                <exercise workspace=\"0.5in\">\n                    <statement>\n                        <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                    </statement>\n                </exercise>\n\n                <exercise workspace=\"0.5in\">\n                    <!-- <title>Balanced Heights</title> -->\n                    <statement>\n                        <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                    </statement>\n                </exercise>\n\n                <exercise workspace=\"0.5in\">\n                    <statement>\n                        <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                    </statement>\n                </exercise>\n            </sidebyside>\n</page>\n        </worksheet>\n\n\n\n        <worksheet courseid=\"MAT-150\" series=\"Activity\" seriescode=\"13\">\n          <title>Dot products and projection</title>\n<page>\n            <sidebyside width=\"45%\" margins=\"0%\">\n                <exercise>\n                    <introduction>\n                        <p>Let\n<m>{\\vec v}_1 = (-4,1)</m>,\n<m>{\\vec v}_2 = (2,2)</m>,\n<m>{\\vec v}_3 = (1,2,3)</m>,\n<m>{\\vec v}_4 = (-2,1,0)</m>.\n                         Find the values of the following expressions:</p>\n                    </introduction>\n\n<task workspace=\"1in\">\n<m>{\\vec v}_1 \\cdot {\\vec v}_2 = <fillin/></m>\n</task>\n<task workspace=\"1.0in\">\n<m>{\\vec v}_3 \\cdot {\\vec v}_4 = <fillin/></m>\n</task>\n<task workspace=\"1in\">\n<m>\\lVert{\\vec v}_1\\rVert = <fillin/></m>\n</task>\n<task workspace=\"1in\">\n<m>\\lVert{\\vec v}_4\\rVert = <fillin/></m>\n</task>\n<task workspace=\"1in\">\n<p>\nAre any of these vectors perpendicular to each other?\n<fillin/>\n</p>\n</task>\n                </exercise>\n\n                <exercise workspace=\"3in\">\n                    <statement>\n                        <p>The vectors <m>\\vec a = (3,9)</m> and <m>\\vec u = (4,2)</m>\nare pictured below.  Derive the formula for projection on a line and use it to find the\nprojection of <m>\\vec a</m> on the line spanned by <m>\\vec u</m>.\nAlso compute the length of the residual vector.</p>\n<image width=\"100%\" source=\"images/projection1.png\">\n                    <description>two vectors...</description>\n                </image>\n                    </statement>\n                </exercise>\n            </sidebyside>\n</page>\n\n<page>\n          <sidebyside width=\"48%\" margins=\"0%\">\n            <exercise>\n                <introduction>\n                    <p>Consider the vector equation\n<md>\nm \\begin{bmatrix}2 \\\\ 5\\end{bmatrix} = \\begin{bmatrix}3 \\\\ 7\\end{bmatrix}\n</md>.\n</p>\n                </introduction>\n<task workspace=\"1in\">\n<p>Check that there is no solution <m>m</m> that makes the equation true.</p>\n</task>\n\n<task workspace=\"2in\">\n<p>Use projection to find the best approximation <m>\\hat m</m>.</p>\n</task>\n\n<task workspace=\"1.0in\">\n<p>Compute <m>\\hat m \\begin{bmatrix}2 \\\\ 5\\end{bmatrix} </m>.</p>\n</task>\n\n<task workspace=\"1.5in\">\n<p>Compute the residual vector.</p>\n</task>\n\n<task workspace=\"2.5in\">\n<p>Compute the length of the residual vector and explain what it means.</p>\n</task>\n            </exercise>\n\n            <exercise>\n     <introduction>\n                    <p>Consider the system of equations\n<md>\n<mrow>\n3t \\amp =5\n</mrow>\n<mrow>\n2t \\amp = 9\n</mrow>\n</md>.\n</p>\n    </introduction>\n<task workspace=\"2in\">\n<p>Write the system in vector form.</p>\n</task>\n\n<task workspace=\"3.9in\">\n<p>Find the best estimate, <m>\\hat t</m>, of <m>t</m> using projection.</p>\n</task>\n\n<task workspace=\"2in\">\n<p>Compute the length of the residual vector.</p>\n</task>\n            </exercise>\n          </sidebyside>\n</page>\n        </worksheet>\n\n\n\n        <backmatter>\n            <!-- need an index to provoke error warnings above -->\n            <index>\n                <title>Index</title>\n                <index-list />\n            </index>\n        </backmatter>\n    </article>\n\n</pretext>\n"
  },
  {
    "path": "examples/fonts/README.md",
    "content": "Characters, Fonts, and Languages\n================================\n\nThe `fonts-and-charcters.xml` document here is mostly\nfor testing the use of the `xelatex` LaTeX engine on\nthe output of `xsl/pretext-latex.html`.  It should also\nrender well in HTML formats.  With the `pdflatex` engine\nit will produce numerous errors (partly by design).\n"
  },
  {
    "path": "examples/fonts/fonts-and-characters.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!--\nTo process this file, at the command-line issue:\n\nxsltproc /path/to/mathbook/xsl/pretext-html.xsl /path/to/mathbook/examples/fonts-and-characters.xml\n\nthen find  \"fonts-and-characters.html\"  in the current working directory\nand use a web browser to view.  For PDF/print, issue:\n\nxsltproc -o fonts.tex /path/to/mathbook/xsl/pretext-latex.xsl /path/to/mathbook/examples/fonts-and-characters.xml\n\nand apply  xelatex  to  \"fonts.tex\"  in the current working directory.\n(pdflatex *will not* give satisfactory results)\n-->\n\n<pretext>\n\n    <docinfo>\n        <!-- Graphics requiring a  xelatex  engine are included        -->\n        <!-- here.  In particular, we load PSTricks, with extensions,  -->\n        <!-- because our first ever test example seemed to require it. -->\n        <latex-image-preamble>\n        \\usepackage{pstricks-add}\n        </latex-image-preamble>\n    </docinfo>\n\n    <article xml:id=\"fonts-and-characters\">\n        <title>Characters, Fonts, and Languages in <pretext/></title>\n\n        <section xml:id=\"introduction\">\n            <title>Introduction</title>\n\n            <p>This is a sample <pretext/> document to demonstrate and test different fonts used for different languages.  For PDF output, and best results, process with <c>xelatex</c> (or <c>lualatex</c>, unsupported).  If processed with <c>pdflatex</c>,  be prepared for errors, and maybe try running with the command-line option <c>-interaction batchmode</c> or <c>-interaction nonstopmode</c>.  Commentary here, and in the original source file, should help you track down what might be missing in your system if the <c>xelatex</c> results are not satisfactory.  You can also compare PDF output with the HTML output, which should work well for many different characters tested here.</p>\n\n            <p><ol>\n                <li>Your source XML file should always have <cd>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;</cd> as the first line of the file to specify that your file contains Unicode characters.</li>\n\n                <li>You will need to determine how to make your operating system, keyboard and editor cooperate to create the Unicode characters you need.  The <url href=\"http://www.cs.tut.fi/~jkorpela/fui.html8\">Full Unicode Input utility</url> can be useful for generating short snippets or you can copy/paste from the source of this document.</li>\n\n                <li>Generating variants of HTML for web browsers should work smoothly.  You can test your system and browser for font support by viewing samples at Alan Wood’s <url href=\"http://www.alanwood.net/unicode/unicode_samples.html\">Unicode Resources</url>.</li>\n            </ol></p>\n\n            <p>Not finding what you are looking for?  Send us a request.  Even better, send us a snippet of text that I can use as a sample.  If you know of any subleties in the use of <latex /> for your desired font, please include those hints.</p>\n        </section>\n\n\n        <section xml:id=\"examples\">\n            <title>Language Examples</title>\n\n            <p>This next sections contain examples from various languages.  The characters should render in HTML, but without any special support for subtle variations of how a language is used (<eg /> date formats).  For <latex /> output, the <c>polyglossia</c> package may handle details like hyphenation.  Here we mostly test characters and fonts.  Improvements from those knowledgeable about the use of particular languages within  <latex /> are especially welcome, as are requests for particular languages.</p>\n\n            <list>\n                <title>Supported Languages</title>\n                <ol>\n                    <li>Greek (modern), 2016-07-25</li>\n                    <li>Korean, 2016-12-08</li>\n                    <li>Hungarian (Magyar), 2016-07-25</li>\n                    <li>Spanish, 2016-07-25</li>\n                    <li>Vietnamese, 2016-07-25</li>\n                </ol>\n            </list>\n        </section>\n\n\n<!-- \n            <paragraphs>\n                <title>(Ancient) Greek</title>\n\n                KDC's original: (EZ?) <p>ὁ δὴ ΕΖ ἤτοι πρῶτός ἐστιν ἢ οὔ.</p>\n\n                Homer, Iliad (\"Agamemnon\", \"Hom. Od. 9.1\", \"denarius\"), http://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0133&redirect=true\n                <p>μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος οὐλομένην, ἣ μυρί᾽ Ἀχαιοῖς ἄλγε᾽ ἔθηκε, πολλὰς δ᾽ ἰφθίμους ψυχὰς Ἄϊδι προΐαψεν ἡρώων, αὐτοὺς δὲ ἑλώρια τεῦχε κύνεσσιν οἰωνοῖσί τε πᾶσι, Διὸς δ᾽ ἐτελείετο βουλή, ἐξ οὗ δὴ τὰ πρῶτα διαστήτην ἐρίσαντε Ἀτρεΐδης τε ἄναξ ἀνδρῶν καὶ δῖος Ἀχιλλεύς.</p>\n            </paragraphs>\n -->\n\n        <section xml:lang=\"el\">\n            <title>Greek (Modern)</title>\n\n            <p><ul>\n                <li>Language code: <c>el</c></li>\n                <li>Font: <c>CMU Serif</c> (Computer Modern Unicode)</li>\n                <li>Source: Opening lines of the Odyssey</li>\n            </ul></p>\n\n            <p>ἄνδρα μοι ἔννεπε, μοῦσα, πολύτροπον, ὃς μάλα πολλὰ πλάγχθη, ἐπεὶ Τροίης ἱερὸν πτολίεθρον ἔπερσεν: πολλῶν δ᾽ ἀνθρώπων ἴδεν ἄστεα καὶ νόον ἔγνω, πολλὰ δ᾽ ὅ γ᾽ ἐν πόντῳ πάθεν ἄλγεα ὃν κατὰ θυμόν, ἀρνύμενος ἥν τε ψυχὴν καὶ νόστον ἑταίρων. ἀλλ᾽ οὐδ᾽ ὣς ἑτάρους ἐρρύσατο, ἱέμενός περ: αὐτῶν γὰρ σφετέρῃσιν ἀτασθαλίῃσιν ὄλοντο, νήπιοι, οἳ κατὰ βοῦς Ὑπερίονος Ἠελίοιο ἤσθιον: αὐτὰρ ὁ τοῖσιν ἀφείλετο νόστιμον ἦμαρ. τῶν ἁμόθεν γε, θεά, θύγατερ Διός, εἰπὲ καὶ ἡμῖν. ἔνθ᾽ ἄλλοι μὲν πάντες, ὅσοι φύγον αἰπὺν ὄλεθρον, οἴκοι ἔσαν, πόλεμόν τε πεφευγότες ἠδὲ θάλασσαν: τὸν δ᾽ οἶον νόστου κεχρημένον ἠδὲ γυναικὸς νύμφη πότνι᾽ ἔρυκε Καλυψὼ δῖα θεάων ἐν σπέσσι γλαφυροῖσι, λιλαιομένη πόσιν εἶναι. ἀλλ᾽ ὅτε δὴ ἔτος ἦλθε περιπλομένων ἐνιαυτῶν, τῷ οἱ ἐπεκλώσαντο θεοὶ οἶκόνδε νέεσθαι εἰς Ἰθάκην, οὐδ᾽ ἔνθα πεφυγμένος ἦεν ἀέθλων καὶ μετὰ οἷσι φίλοισι. θεοὶ δ᾽ ἐλέαιρον ἅπαντες νόσφι Ποσειδάωνος: ὁ δ᾽ ἀσπερχὲς μενέαινεν ἀντιθέῳ Ὀδυσῆι πάρος ἣν γαῖαν ἱκέσθαι. ἀλλ᾽ ὁ μὲν Αἰθίοπας μετεκίαθε τηλόθ᾽ ἐόντας, Αἰθίοπας τοὶ διχθὰ δεδαίαται, ἔσχατοι ἀνδρῶν, οἱ μὲν δυσομένου Ὑπερίονος οἱ δ᾽ ἀνιόντος, ἀντιόων ταύρων τε καὶ ἀρνειῶν ἑκατόμβης. ἔνθ᾽ ὅ γ᾽ ἐτέρπετο δαιτὶ παρήμενος: οἱ δὲ δὴ ἄλλοι Ζηνὸς ἐνὶ μεγάροισιν Ὀλυμπίου ἁθρόοι ἦσαν. τοῖσι δὲ μύθων ἦρχε πατὴρ ἀνδρῶν τε θεῶν τε: μνήσατο γὰρ κατὰ θυμὸν ἀμύμονος Αἰγίσθοιο, τόν ῥ᾽ Ἀγαμεμνονίδης τηλεκλυτὸς ἔκταν᾽ Ὀρέστης: τοῦ ὅ γ᾽ ἐπιμνησθεὶς ἔπε᾽ ἀθανάτοισι μετηύδα: ὢ πόποι, οἷον δή νυ θεοὺς βροτοὶ αἰτιόωνται: ἐξ ἡμέων γάρ φασι κάκ᾽ ἔμμεναι, οἱ δὲ καὶ αὐτοὶ σφῇσιν ἀτασθαλίῃσιν ὑπὲρ μόρον ἄλγε᾽ ἔχουσιν, ὡς καὶ νῦν Αἴγισθος ὑπὲρ μόρον Ἀτρεΐδαο γῆμ᾽ ἄλοχον μνηστήν, τὸν δ᾽ ἔκτανε νοστήσαντα, εἰδὼς αἰπὺν ὄλεθρον, ἐπεὶ πρό οἱ εἴπομεν ἡμεῖς, Ἑρμείαν πέμψαντες, ἐύσκοπον ἀργεϊφόντην, μήτ᾽ αὐτὸν κτείνειν μήτε μνάασθαι ἄκοιτιν: ἐκ γὰρ Ὀρέσταο τίσις ἔσσεται Ἀτρεΐδαο, ὁππότ᾽ ἂν ἡβήσῃ τε καὶ ἧς ἱμείρεται αἴης. ὣς ἔφαθ᾽ Ἑρμείας, ἀλλ᾽ οὐ φρένας Αἰγίσθοιο πεῖθ᾽ ἀγαθὰ φρονέων: νῦν δ᾽ ἁθρόα πάντ᾽ ἀπέτισεν.</p>\n\n            <p>τὸν δ᾽ ἠμείβετ᾽ ἔπειτα θεά, γλαυκῶπις Ἀθήνη: ὦ πάτερ ἡμέτερε Κρονίδη, ὕπατε κρειόντων, καὶ λίην κεῖνός γε ἐοικότι κεῖται ὀλέθρῳ: ὡς ἀπόλοιτο καὶ ἄλλος, ὅτις τοιαῦτά γε ῥέζοι: ἀλλά μοι ἀμφ᾽ Ὀδυσῆι δαΐφρονι δαίεται ἦτορ, δυσμόρῳ, ὃς δὴ δηθὰ φίλων ἄπο πήματα πάσχει νήσῳ ἐν ἀμφιρύτῃ, ὅθι τ᾽ ὀμφαλός ἐστι θαλάσσης. νῆσος δενδρήεσσα, θεὰ δ᾽ ἐν δώματα ναίει, Ἄτλαντος θυγάτηρ ὀλοόφρονος, ὅς τε θαλάσσης πάσης βένθεα οἶδεν, ἔχει δέ τε κίονας αὐτὸς μακράς, αἳ γαῖάν τε καὶ οὐρανὸν ἀμφὶς ἔχουσιν. τοῦ θυγάτηρ δύστηνον ὀδυρόμενον κατερύκει, αἰεὶ δὲ μαλακοῖσι καὶ αἱμυλίοισι λόγοισιν θέλγει, ὅπως Ἰθάκης ἐπιλήσεται: αὐτὰρ Ὀδυσσεύς, ἱέμενος καὶ καπνὸν ἀποθρῴσκοντα νοῆσαι ἧς γαίης, θανέειν ἱμείρεται. οὐδέ νυ σοί περ ἐντρέπεται φίλον ἦτορ, Ὀλύμπιε. οὔ νύ τ᾽ Ὀδυσσεὺς Ἀργείων παρὰ νηυσὶ χαρίζετο ἱερὰ ῥέζων Τροίῃ ἐν εὐρείῃ; τί νύ οἱ τόσον ὠδύσαο, Ζεῦ; τὴν δ᾽ ἀπαμειβόμενος προσέφη νεφεληγερέτα Ζεύς: τέκνον ἐμόν, ποῖόν σε ἔπος φύγεν ἕρκος ὀδόντων. πῶς ἂν ἔπειτ᾽ Ὀδυσῆος ἐγὼ θείοιο λαθοίμην, ὃς περὶ μὲν νόον ἐστὶ βροτῶν, περὶ δ᾽ ἱρὰ θεοῖσιν ἀθανάτοισιν ἔδωκε, τοὶ οὐρανὸν εὐρὺν ἔχουσιν; ἀλλὰ Ποσειδάων γαιήοχος ἀσκελὲς αἰεὶ Κύκλωπος κεχόλωται, ὃν ὀφθαλμοῦ ἀλάωσεν, ἀντίθεον Πολύφημον, ὅου κράτος ἐστὶ μέγιστον πᾶσιν Κυκλώπεσσι: Θόωσα δέ μιν τέκε νύμφη, Φόρκυνος θυγάτηρ ἁλὸς ἀτρυγέτοιο μέδοντος, ἐν σπέσσι γλαφυροῖσι Ποσειδάωνι μιγεῖσα. ἐκ τοῦ δὴ Ὀδυσῆα Ποσειδάων ἐνοσίχθων οὔ τι κατακτείνει, πλάζει δ᾽ ἀπὸ πατρίδος αἴης. ἀλλ᾽ ἄγεθ᾽, ἡμεῖς οἵδε περιφραζώμεθα πάντες νόστον, ὅπως ἔλθῃσι: Ποσειδάων δὲ μεθήσει ὃν χόλον: οὐ μὲν γὰρ τι δυνήσεται ἀντία πάντων ἀθανάτων ἀέκητι θεῶν ἐριδαινέμεν οἶος.</p>\n        </section>\n\n        <section xml:lang=\"ko-KR\">\n            <title>Korean</title>\n\n            <p><ul>\n                <li>Language code: <c>ko-KR</c></li>\n                <li>Font: <c>NanumMyeongjo</c></li>\n                <li>Source: <url href=\"https://ko.wikipedia.org/wiki/%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C\">Wikipedia Seoul entry</url>, accessed 2016-12-08.</li>\n            </ul></p>\n\n            <p>서울특별시(서울特別市)는 대한민국의 수도이자 최대 도시이다. 기원전 18년부터 475년까지 백제의 첫 수도인 위례성이었고, 고려시대에는 남경(南京)이었으며, 조선 건국 2년 후인 1394년 조선의 수도가 된 이후로 대한민국의 정부중앙청사, 청와대의 소재지가 되기까지 1,000년 이상 백제, 조선, 대한제국, 일제 강점기, 미 군정기, 대한민국의 정치·경제·사회·문화의 중심지 역할을 해왔다. 도시의 중앙으로 한강이 흐르고, 북한산, 관악산, 도봉산, 불암산, 인능산, 인왕산, 청계산 등 산으로 둘러싸인 분지 지형의 도시이다. 동서 간의 거리는 36.78km, 남북 간의 거리는 30.3km이며, 넓이는 605.25km2이다. 면적은 대한민국 국토의 0.6%에 불과하지만, 대한민국 인구의 1/5 정도 되는 약 990만여 명이 살고 있어서 인구밀도가 매우 높다. 1986년 아시안 게임과 1988년 하계 올림픽, 2002년 FIFA 월드컵, 2010년 G20 정상회의, 2012년 핵안보정상회의가 개최된 국제적인 도시이다. 시청과 정부서울청사가 소재하는 중구와 종로구의 세종대로를 중심으로 도심을 형성하며, 행정구역은 25개 구로 이루어진다. 2013년 예산은 20조 6287억 원으로 대한민국 지방자치단체 중 예산 규모가 가장 크다.</p>\n        </section>\n\n        <section xml:lang=\"hu-HU\">\n            <title>Hungarian (Magyar)</title>\n\n            <p><ul>\n                <li>Language code: <c>hu-HU</c></li>\n                <li>Font: <c>Latin Modern</c></li>\n                <li>Source: <url href=\"https://hu.wikipedia.org/wiki/Budapest\">Wikipedia Budapest entry</url>, accessed 2016-07-25.</li>\n            </ul></p>\n\n            <p>Budapest Magyarország fővárosa, egyben legnagyobb és legnépesebb városa, az Európai Unió kilencedik legnépesebb városa. Budapest az ország politikai, kulturális, kereskedelmi, ipari és közlekedési központja. Emellett Pest megye székhelye is, bár közigazgatásilag nem része annak. 2011-ben regisztrált lakónépessége meghaladta az 1,7 (elővárosokkal együtt pedig a 2,5) millió főt. A város lakossága 1989-ben volt a legnagyobb, az akkori lélekszám 2,1 millió fő volt, és az ezt követő szuburbanizáció után is megmaradt az ország legnépesebb városának. Területe mintegy 525 négyzetkilométer, ebben a tekintetben is első az ország települései között.</p>\n\n            <p>Budapest története a keltákig nyúlik vissza, mivel a város eredetileg kelta település volt. A rómaiak által létrehozott, a Danubius folyó jobb partján fekvő Aquincum és a bal parti Contra-Aquincum volt Pannonia provincia székhelye. A magyarok a 9. században érkeztek erre a területre. Az első általuk létrehozott települést a mongolok 1241 és 1242 között, a tatárjárás során teljesen kifosztották és elpusztították. A 15. században a helyreállított város lett a magyarországi reneszánsz humanizmus központja. Ezt követően százötven évnyi török hódoltság telepedett a városra és csak a 18-19. században tudott újra fejlődni, ezt fokozta, hogy a kiegyezést követően Bécs mellett az Osztrák–Magyar Monarchia fővárosa volt. 1873-ban egyesítették Budát, Pestet és Óbudát, ekkor jött létre Budapest. Ebben az időben épültek a város leghíresebb épületei, és ekkor nőtte ki magát világvárossá.</p>\n\n            <p>Budapest kedvelt idegenforgalmi célpont is, 2012-ben 4 821 600 turista kereste fel, ezzel az Euromonitor International felmérése szerint a világ 27. és Európa 7. leglátogatottabb városa. Budapesten több világörökségi helyszín is található, többek között a Duna-part látképe, a Budai Várnegyed, az Andrássy út, a Hősök tere és a Millenniumi Földalatti Vasút, amely a második legrégebbi a világon a londoni után. Turisztikailag jelentősek még a város Duna-hídjai, valamint gyógyfürdői, mivel Budapest a világ legtöbb gyógyfürdőjével rendelkező fővárosa. Itt található még a világ legnagyobb termálvizes barlangrendszere, Európa legnagyobb zsinagógája (a Dohány utcai), valamint a magyar Országház is, amely a világ harmadik legnagyobb parlamenti épülete, és a Szent Korona jelenlegi otthona.</p>\n\n            <p>Budapest Közép-Európa egyik pénzügyi központja és a világ 100. legnagyobb GDP-jét termelő városa. Az amerikai Forbes magazin szerint Budapest a 7. „legidillibb európai város”. A UCityGuides a világ 9. legszebb városának sorolja. A befolyásos amerikai Condé Nast Traveler utazási magazin által megkérdezett 1,3 millió személy véleménye alapján „Budapest a világ második legjobb városa”. A magyar főváros továbbá egyike Európa 10 legkedveltebb bevásárlóvárosának az Economist magazin kutatásai szerint, ugyanis itt található Közép- és Kelet-Európa legtöbb bevásárlóközpontja.</p>\n        </section>\n\n        <section xml:lang=\"ru-RU\">\n            <title>Russian</title>\n\n            <p><ul>\n                <li>Language code: <c>ru-RU</c></li>\n                <li>Font: <c>CMU Serif</c> (Computer Modern Unicode)</li>\n                <li>Source: <url href=\"https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0\">Wikipedia Moscow entry</url>, accessed 2016-12-09.</li>\n            </ul></p>\n\n            <p>Москва — столица Российской Федерации, город федерального значения, административный центр Центрального федерального округа и центр Московской области, в состав которой не входит. Крупнейший по численности населения город России и её субъект — 12 330 126 чел. (2016), самый населённый из городов, полностью расположенных в Европе, входит в первую десятку городов мира по численности населения. Центр Московской городской агломерации.</p>\n\n            <p>Историческая столица Великого княжества Московского, Русского царства, Российской империи (в 1728—1730 годах), Советской России и СССР. Город-герой. В Москве находятся федеральные органы государственной власти Российской Федерации (за исключением Конституционного суда), посольства иностранных государств, штаб-квартиры большинства крупнейших российских коммерческих организаций и общественных объединений.</p>\n\n            <p>Расположена на реке Москве в центре Восточно-Европейской равнины, в междуречье Оки и Волги. Как субъект федерации Москва граничит с Московской и Калужской областями.</p>\n\n            <p>Москва — важный туристический центр России. Московский Кремль, Красная площадь, Новодевичий монастырь и Церковь Вознесения в Коломенском входят в список Всемирного наследия ЮНЕСКО. Она является важнейшим транспортным узлом. Город обслуживают 5 аэропортов, 9 железнодорожных вокзалов, 3 речных порта (имеется речное сообщение с морями бассейнов Атлантического и Северного Ледовитого океанов). С 1935 года в Москве работает метрополитен.</p>\n\n        </section>\n\n        <section xml:lang=\"es-ES\">\n            <title>Spanish</title>\n\n            <p><ul>\n                <li>Language code: <c>es-ES</c></li>\n                <li>Font: <c>Latin Modern</c></li>\n                <li>Source: <url href=\"https://es.wikipedia.org/wiki/Madrid\">Wikipedia Madrid entry</url>, accessed 2016-07-25.</li>\n            </ul></p>\n\n            <p>Madrid es un municipio y ciudad de España. La localidad, con categoría histórica de villa, es la capital del Estado  y de la Comunidad de Madrid. También conocida como la Villa y Corte, es la ciudad más poblada del país, con 3 165 235 habitantes empadronados según datos del INE de 2014 mientras que, con la inclusión de su área metropolitana la cifra de población asciende a 6 543 031 habitantes, siendo por ello la tercera o cuarta área metropolitana de la Unión Europea, según la fuente, por detrás de las de París y Londres, y en algunas fuentes detrás también de la Región del Ruhr, así como la tercera ciudad más poblada de la Unión Europea, por detrás de Berlín y Londres. Madrid ocupa el puesto nº 38 en la lista Economist Intelligence Unit de ciudades con mejor calidad de vida del mundo.</p>\n\n            <p>Como capital del Estado, Madrid alberga las sedes del Gobierno, las Cortes Generales, ministerios, instituciones y organismos asociados, así como la residencia oficial de los reyes de España12 y del presidente del Gobierno. En el plano económico, es la cuarta ciudad más rica de Europa, tras Londres, París y Moscú. Para el 2009, el 50,1 % de los ingresos de las 5000 principales empresas españolas son generados por sociedades con sede social en Madrid, las cuales representan el 31,8 % de ellas. Es sede del 3.er mayor mercado de valores de Europa, y 2ª en el ámbito latinoamericano (Latibex) y de varias de las más grandes corporaciones del mundo. Es la 8.ª ciudad del mundo con mayor presencia de multinacionales, tras Pekín y por delante de Dubái, París y Nueva York.</p>\n\n            <p>En el plano internacional acoge la sede central de la Organización Mundial del Turismo (OMT), perteneciente a la ONU, la sede de la Organización Internacional de Comisiones de Valores (OICV), la sede de la Secretaría General Iberoamericana (SEGIB), la sede de la Organización de Estados Iberoamericanos para la Educación, la Ciencia y la Cultura (OEI), la Organización Iberoamericana de Juventud (OIJ), y la sede de Public Interest Oversight Board (PIOB). También alberga las principales instituciones internacionales reguladoras y difusoras del idioma español: la Comisión Permanente de la Asociación de Academias de la Lengua Española, y sedes centrales de la Real Academia Española (RAE), del Instituto Cervantes y de la Fundación del Español Urgente (Fundéu). Madrid organiza ferias como FITUR, Madrid Fusión, ARCO, SIMO TCI, el Salón del Automóvil y la Cibeles Madrid Fashion Week.</p>\n\n            <p>Es un influyente centro cultural y cuenta con museos de referencia internacional, entre los que destacan el Museo del Prado, el Museo Nacional Centro de Arte Reina Sofía, el Thyssen-Bornemisza y CaixaForum Madrid, que ocupan, respectivamente, el 12º, 18º, 67º y 80º puesto entre los museos más visitados del mundo.</p>\n\n            <p>Los orígenes de la ciudad son objeto de revisión tras recientes hallazgos de enterramientos visigodos así como de restos que se remontan a los carpetanos o periodo prerromano. Las excavaciones arqueológicas también arrojan restos que se atribuyen al Madrid romano. Estos hallazgos de época visigoda han venido a confirmar que el posterior asentamiento fortificado musulmán de Maǧrīţ (del siglo IX) se había asentado sobre un vicus visigodo del siglo VII llamado Matrice o matriz, arroyo. (AFI [maʤriːtˁ]),</p>\n\n            <p>No sería hasta el siglo XI cuando Madrid fue incorporada a la Corona de Castilla, tras su conquista por Alfonso VI de León y Castilla en 1083. Fue designada como sede de la Corte por el rey Felipe II en 1561, convirtiéndose en la primera capital permanente de la monarquía española. Desde el Renacimiento hasta la actualidad ha sido capital de España y sede del Gobierno y la administración del Estado salvo breves intervalos de tiempo: entre los años de 1601 y 1606 la capitalidad pasó a Valladolid; durante la Guerra de la Independencia Española, en que la capital se trasladó a Sevilla; en 1808 y en 1810 a Cádiz; durante la Guerra Civil, cuando el Gobierno republicano se trasladó primero a Valencia y después a Barcelona, durante la Guerra Civil el bando nacional se estableció en Burgos, y tras finalizar esta se estableció allí la capital hasta el 18 de octubre de 1939 que se volvió a trasladar a Madrid.</p>\n        </section>\n\n        <section xml:lang=\"vi-VN\">\n            <title>Vietnamese</title>\n\n            <p><ul>\n                <li>Language code: <c>vi-VN</c></li>\n                <li>Font: <c>Latin Modern</c></li>\n                <li>Source: <url href=\"https://vi.wikipedia.org/wiki/H%C3%A0_N%E1%BB%99i\">Wikipedia Hà Nội entry</url>, accessed 2016-07-25.</li>\n            </ul></p>\n\n            <p>Hà Nội là thủ đô của nước Cộng hoà Xã hội chủ nghĩa Việt Nam và cũng là kinh đô của rất nhiều vương triều Việt cổ. Do đó, lịch sử Hà Nội gắn liền với sự thăng trầm của lịch sử Việt Nam qua các thời kỳ.  Hà Nội là thành phố lớn nhất Việt Nam về diện tích với 3328,9 km2 sau đợt mở rộng hành chính năm 2008, đồng thời cũng là địa phương đứng thứ nhì về dân số với 7.500.000 người (năm 2015). Hiện nay, thủ đô Hà Nội và thành phố Hồ Chí Minh là đô thị loại đặc biệt của Việt Nam.</p>\n\n            <p>Hà Nội nằm giữa đồng bằng sông Hồng trù phú, nơi đây đã sớm trở thành 1 trung tâm chính trị, kinh tế và văn hóa ngay từ những buổi đầu của lịch sử Việt Nam. Năm 1010, Lý Công Uẩn, vị vua đầu tiên của nhà Lý, quyết định xây dựng kinh đô mới ở vùng đất này với cái tên Thăng Long. Trong suốt thời kỳ của các triều đại Lý, Trần, Lê, Mạc, kinh thành Thăng Long là trung tâm văn hóa, giáo dục và buôn bán của cả nước. Khi Tây Sơn rồi nhà Nguyễn lên nắm quyền trị vì, kinh đô được chuyển về Huế và Thăng Long bắt đầu mang tên Hà Nội từ năm 1831, dưới thời vua Minh Mạng. Năm 1902, Hà Nội trở thành thủ đô của Liên bang Đông Dương và được người Pháp xây dựng, quy hoạch lại, được coi là tiểu Paris của Phương Đông thời bấy giờ. Trải qua hai cuộc chiến tranh, Hà Nội là thủ đô của nước CHXHCN Việt Nam thống nhất và giữ vai trò này cho tới ngày nay.</p>\n\n            <p>Sau đợt mở rộng địa giới hành chính vào tháng 8 năm 2008, Hà Nội hiện nay gồm 12 quận, 1 thị xã và 17 huyện ngoại thành. Hiện nay, Hà Nội và Thành phố Hồ Chí Minh là hai trung tâm kinh tế - xã hội đặc biệt quan trọng của Việt Nam.</p>\n        </section>\n\n        <section xml:id=\"section-language-script\">\n            <title>General Language and Script Support</title>\n\n            <introduction>\n                <p>2016-12-08: this section is preliminary.</p>\n\n                <p>HTML output works well if your source includes Unicode characters.  Hyphenation is a non-issue, since text reflows and there is no flush-right support.</p>\n\n                <p>It is a different story for <latex />, <init>PDF</init>, and print.  So that is the focus in this sample document.  You may not recognize the next subsection, but an explanation follows.</p>\n            </introduction>\n\n            <subsection xml:lang=\"el\">\n                <title>ὁ δὴ ἤτοι πρῶτός ἐστιν ἢ οὔ</title>\n\n                <p>ὁ δὴ ἤτοι πρῶτός ἐστιν ἢ οὔ.</p>\n            </subsection>\n\n            <subsection>\n                <title>Languages, Scripts, Subdivisions</title>\n\n                <p>The previous subsection has an <c>xml:lang</c> attribute on the <c>subsection</c> element, whose value is <c>el</c> indicating the Modern Greek language.  So the entire subsection is being treated as characters from that language.  There is a title, but it is not being affected now, and so is empty.</p>\n\n                <p>The behavior should be entirely similar for <c>part</c>, <c>chapter</c>, <c>section</c>, and <c>subsubsection</c>.</p>\n            </subsection>\n\n            <subsection>\n                <title>Language and Script Examples</title>\n                <!-- Sample Unicode Documents: http://www.humancomp.org/unichtm/unichtm.htm -->\n                <!-- Pangrams:  http://kermitproject.org/utf8.html -->\n                <!-- Korean: http://wiki.ktug.org/wiki/wiki.php/polyglossia/samples -->\n\n                <p>Other elements have language support.  We are starting with <c>foreign</c>, which also italicizes the content.</p>\n\n                <list>\n                    <title>I Can Eat Glass</title>\n\n                    <introduction>\n                        <p>From the <url href=\"http://kermitproject.org/\">Kermit Project</url> a <url href=\"http://kermitproject.org/utf8.html#notes\">startling phrase</url> in many languages.</p>\n                    </introduction>\n\n                    <ul>\n                        <li>Modern Greek (monotonic), Italic: <foreign xml:lang=\"el\">Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα.</foreign></li>\n                        <!-- <li>Modern Greek (polytonic), Italic: <foreign xml:lang=\"el\">Μπορῶ νὰ φάω σπασμένα γυαλιὰ χωρὶς νὰ πάθω τίποτα.</foreign></li> -->\n                        <li>Korean, Italic: <foreign xml:lang=\"ko-KR\">나는 유리를 먹을 수 있어요. 그래도 아프지 않아요</foreign></li>\n                        <li>Hungarian, Italic: <foreign xml:lang=\"hu-HU\">Meg tudom enni az üveget, nem lesz tőle bajom.</foreign></li>\n                        <li>Russian, Italic: <foreign xml:lang=\"ru-RU\">Я могу есть стекло, оно мне не вредит.</foreign></li>\n                        <li>Spanish, Italic: <foreign xml:lang=\"es-ES\">Puedo comer vidrio, no me hace daño.</foreign></li>\n                        <li>Vietnamese, Italic: <foreign xml:lang=\"vi-VN\">Tôi có thể ăn thủy tinh mà không hại gì.</foreign></li>\n                    </ul>\n                </list>\n            </subsection>\n\n        </section>\n\n\n\n        <section>\n            <title>Font Tests</title>\n\n            <p>We place various blocks of Unicode characters here to determine the minimum configuration necessary to make them render.  Alan Wood’s <url href=\"http://www.alanwood.net/unicode/unicode_samples.html\">Unicode Resources</url> site has been helpful in formulating these tests.</p>\n\n            <!-- 2019-01-01 Claimed support, (default) Latin Modern fonts -->\n            <!-- \"Supported Unicode Blocks\"                               -->\n            <!--   0x0000 - 0x00FF ANSI                                   -->\n            <!--   0x0080 - 0x00FF Latin Supplement and C1 Controls       -->\n            <!--   0x0100 - 0x017F Latin Extended-A                       -->\n            <!--   0x1E00 - 0x1EFF Latin Extended Additional              -->\n\n\n            <paragraphs>\n                <title>Basic Latin, <c>U+0000</c><ndash /><c>U+007F</c></title>\n\n                <p>These 95 characters are the most basic, and will all render using <c>xelatex</c> with no special setup.  <c>U+0000</c> to <c>U+001F</c> are control codes and not used here.  <c>U+007F</c> is also a control code and so is excluded.  In the source we have authored each character by its escaped version using its Unicode number (in hexadecimal).  So, for example, capital-B is authored as <c>&amp;#x0042;</c>.</p>\n\n                <!-- ex &#x0000; - &#x001F; controls -->\n                <!-- ex &#x007F; control             -->\n                <!-- ex &#x0020; space, not visible  -->\n\n                <table>\n                    <title>Basic Latin, Regular</title>\n                <tabular>\n                    <row><cell />\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>002_</c></cell><cell>&#x0020;</cell><cell>&#x0021;</cell><cell>&#x0022;</cell><cell>&#x0023;</cell><cell>&#x0024;</cell><cell>&#x0025;</cell><cell>&#x0026;</cell><cell>&#x0027;</cell>\n                                                 <cell>&#x0028;</cell><cell>&#x0029;</cell><cell>&#x002A;</cell><cell>&#x002B;</cell><cell>&#x002C;</cell><cell>&#x002D;</cell><cell>&#x002E;</cell><cell>&#x002F;</cell></row>\n                    <row><cell><c>003_</c></cell><cell>&#x0030;</cell><cell>&#x0031;</cell><cell>&#x0032;</cell><cell>&#x0033;</cell><cell>&#x0034;</cell><cell>&#x0035;</cell><cell>&#x0036;</cell><cell>&#x0037;</cell>\n                                                 <cell>&#x0038;</cell><cell>&#x0039;</cell><cell>&#x003A;</cell><cell>&#x003B;</cell><cell>&#x003C;</cell><cell>&#x003D;</cell><cell>&#x003E;</cell><cell>&#x003F;</cell></row>\n                    <row><cell><c>004_</c></cell><cell>&#x0040;</cell><cell>&#x0041;</cell><cell>&#x0042;</cell><cell>&#x0043;</cell><cell>&#x0044;</cell><cell>&#x0045;</cell><cell>&#x0046;</cell><cell>&#x0047;</cell>\n                                                 <cell>&#x0048;</cell><cell>&#x0049;</cell><cell>&#x004A;</cell><cell>&#x004B;</cell><cell>&#x004C;</cell><cell>&#x004D;</cell><cell>&#x004E;</cell><cell>&#x004F;</cell></row>\n                    <row><cell><c>005_</c></cell><cell>&#x0050;</cell><cell>&#x0051;</cell><cell>&#x0052;</cell><cell>&#x0053;</cell><cell>&#x0054;</cell><cell>&#x0055;</cell><cell>&#x0056;</cell><cell>&#x0057;</cell>\n                                                 <cell>&#x0058;</cell><cell>&#x0059;</cell><cell>&#x005A;</cell><cell>&#x005B;</cell><cell>&#x005C;</cell><cell>&#x005D;</cell><cell>&#x005E;</cell><cell>&#x005F;</cell></row>\n                    <row><cell><c>006_</c></cell><cell>&#x0060;</cell><cell>&#x0061;</cell><cell>&#x0062;</cell><cell>&#x0063;</cell><cell>&#x0064;</cell><cell>&#x0065;</cell><cell>&#x0066;</cell><cell>&#x0067;</cell>\n                                                 <cell>&#x0068;</cell><cell>&#x0069;</cell><cell>&#x006A;</cell><cell>&#x006B;</cell><cell>&#x006C;</cell><cell>&#x006D;</cell><cell>&#x006E;</cell><cell>&#x006F;</cell></row>\n                    <row><cell><c>007_</c></cell><cell>&#x0070;</cell><cell>&#x0071;</cell><cell>&#x0072;</cell><cell>&#x0073;</cell><cell>&#x0074;</cell><cell>&#x0075;</cell><cell>&#x0076;</cell><cell>&#x0077;</cell>\n                                                 <cell>&#x0078;</cell><cell>&#x0079;</cell><cell>&#x007A;</cell><cell>&#x007B;</cell><cell>&#x007C;</cell><cell>&#x007D;</cell><cell>&#x007E;</cell><cell>        </cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Monospace, Basic Latin, <c>U+0000</c><ndash /><c>U+007F</c></title>\n\n                <p>These are exactly the same characters as above, but now we wrap them in the <c>&lt;c&gt;</c> element intended for inline use.  This does not test all verbatim situations but is a good simple first test.</p>\n\n                <!-- ex &#x0000; - &#x001F; controls -->\n                <!-- ex &#x007F; control             -->\n                <table>\n                    <title>Basic Latin, Monospace</title>\n                    <tabular>\n                        <row><cell />\n                        <cell><c>0</c></cell>\n                        <cell><c>1</c></cell>\n                        <cell><c>2</c></cell>\n                        <cell><c>3</c></cell>\n                        <cell><c>4</c></cell>\n                        <cell><c>5</c></cell>\n                        <cell><c>6</c></cell>\n                        <cell><c>7</c></cell>\n                        <cell><c>8</c></cell>\n                        <cell><c>9</c></cell>\n                        <cell><c>A</c></cell>\n                        <cell><c>B</c></cell>\n                        <cell><c>C</c></cell>\n                        <cell><c>D</c></cell>\n                        <cell><c>E</c></cell>\n                        <cell><c>F</c></cell></row>\n                        <row><cell><c>002_</c></cell><cell><c>&#x0020;</c></cell><cell><c>&#x0021;</c></cell><cell><c>&#x0022;</c></cell><cell><c>&#x0023;</c></cell><cell><c>&#x0024;</c></cell><cell><c>&#x0025;</c></cell><cell><c>&#x0026;</c></cell><cell><c>&#x0027;</c></cell>\n                                                     <cell><c>&#x0028;</c></cell><cell><c>&#x0029;</c></cell><cell><c>&#x002A;</c></cell><cell><c>&#x002B;</c></cell><cell><c>&#x002C;</c></cell><cell><c>&#x002D;</c></cell><cell><c>&#x002E;</c></cell><cell><c>&#x002F;</c></cell></row>\n                        <row><cell><c>003_</c></cell><cell><c>&#x0030;</c></cell><cell><c>&#x0031;</c></cell><cell><c>&#x0032;</c></cell><cell><c>&#x0033;</c></cell><cell><c>&#x0034;</c></cell><cell><c>&#x0035;</c></cell><cell><c>&#x0036;</c></cell><cell><c>&#x0037;</c></cell>\n                                                     <cell><c>&#x0038;</c></cell><cell><c>&#x0039;</c></cell><cell><c>&#x003A;</c></cell><cell><c>&#x003B;</c></cell><cell><c>&#x003C;</c></cell><cell><c>&#x003D;</c></cell><cell><c>&#x003E;</c></cell><cell><c>&#x003F;</c></cell></row>\n                        <row><cell><c>004_</c></cell><cell><c>&#x0040;</c></cell><cell><c>&#x0041;</c></cell><cell><c>&#x0042;</c></cell><cell><c>&#x0043;</c></cell><cell><c>&#x0044;</c></cell><cell><c>&#x0045;</c></cell><cell><c>&#x0046;</c></cell><cell><c>&#x0047;</c></cell>\n                                                     <cell><c>&#x0048;</c></cell><cell><c>&#x0049;</c></cell><cell><c>&#x004A;</c></cell><cell><c>&#x004B;</c></cell><cell><c>&#x004C;</c></cell><cell><c>&#x004D;</c></cell><cell><c>&#x004E;</c></cell><cell><c>&#x004F;</c></cell></row>\n                        <row><cell><c>005_</c></cell><cell><c>&#x0050;</c></cell><cell><c>&#x0051;</c></cell><cell><c>&#x0052;</c></cell><cell><c>&#x0053;</c></cell><cell><c>&#x0054;</c></cell><cell><c>&#x0055;</c></cell><cell><c>&#x0056;</c></cell><cell><c>&#x0057;</c></cell>\n                                                     <cell><c>&#x0058;</c></cell><cell><c>&#x0059;</c></cell><cell><c>&#x005A;</c></cell><cell><c>&#x005B;</c></cell><cell><c>&#x005C;</c></cell><cell><c>&#x005D;</c></cell><cell><c>&#x005E;</c></cell><cell><c>&#x005F;</c></cell></row>\n                        <row><cell><c>006_</c></cell><cell><c>&#x0060;</c></cell><cell><c>&#x0061;</c></cell><cell><c>&#x0062;</c></cell><cell><c>&#x0063;</c></cell><cell><c>&#x0064;</c></cell><cell><c>&#x0065;</c></cell><cell><c>&#x0066;</c></cell><cell><c>&#x0067;</c></cell>\n                                                     <cell><c>&#x0068;</c></cell><cell><c>&#x0069;</c></cell><cell><c>&#x006A;</c></cell><cell><c>&#x006B;</c></cell><cell><c>&#x006C;</c></cell><cell><c>&#x006D;</c></cell><cell><c>&#x006E;</c></cell><cell><c>&#x006F;</c></cell></row>\n                        <row><cell><c>007_</c></cell><cell><c>&#x0070;</c></cell><cell><c>&#x0071;</c></cell><cell><c>&#x0072;</c></cell><cell><c>&#x0073;</c></cell><cell><c>&#x0074;</c></cell><cell><c>&#x0075;</c></cell><cell><c>&#x0076;</c></cell><cell><c>&#x0077;</c></cell>\n                                                     <cell><c>&#x0078;</c></cell><cell><c>&#x0079;</c></cell><cell><c>&#x007A;</c></cell><cell><c>&#x007B;</c></cell><cell><c>&#x007C;</c></cell><cell><c>&#x007D;</c></cell><cell><c>&#x007E;</c></cell><cell>               </cell></row>\n                    </tabular>\n                </table>\n                <p>Note that the single and double quotes are upright and dumb, not curly and smart: <c>\" ' \" ' \" '</c>.  The zero is distinguished from the capital <q>oh</q>: <c>0 O 0 O 0 O</c>.  And the numeral one is slightly different from the lower-case <q>ell</q>: <c>1 l 1 l 1 l</c>.  The hyphen should be short and not expanded into some other kind of dash: <c>- - -</c>.  These characters should all cut/paste out of a PDF into a text editor with no conversion to other characters.</p>\n\n                <p>Note also that we have again entered <em>all</em> these characters into the source with the <c>&amp;#x00NN;</c> XML notation.</p>\n\n            </paragraphs>\n\n            <paragraphs>\n                <title>Latin-1 Supplement, <c>U+0080</c><ndash /><c>U+00FF</c></title>\n\n                <p>These 94 characters will all render using either <c>pdflatex</c> or <c>xelatex</c> with no special setup.  <c>U+0080</c> to <c>U+009F</c> are control codes and not used here.  <c>U+00A0</c> (non-breaking space) and <c>U+00AD</c> (soft hyphen) are also excluded.  In the source we have authored each character by its escaped version using its Unicode number (in hexadecimal).  So, for example, a copyright symbol is authored as <c>&amp;#x00A9;</c>.</p>\n\n                <!-- ex &#x0080; - &#x009F; controls -->\n                <!-- ex &#x00A0; non-breaking space  -->\n                <!-- ex &#x00AD; soft hyphen         -->\n                <table>\n                    <title>Latin-1 Supplement, Regular</title>\n                <tabular>\n                    <row><cell />\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>00A_</c></cell><cell>&#x00A0;</cell><cell>&#x00A1;</cell><cell>&#x00A2;</cell><cell>&#x00A3;</cell><cell>&#x00A4;</cell><cell>&#x00A5;</cell><cell>&#x00A6;</cell><cell>&#x00A7;</cell>\n                                                 <cell>&#x00A8;</cell><cell>&#x00A9;</cell><cell>&#x00AA;</cell><cell>&#x00AB;</cell><cell>&#x00AC;</cell><cell>        </cell><cell>&#x00AE;</cell><cell>&#x00AF;</cell></row>\n                    <row><cell><c>00B_</c></cell><cell>&#x00B0;</cell><cell>&#x00B1;</cell><cell>&#x00B2;</cell><cell>&#x00B3;</cell><cell>&#x00B4;</cell><cell>&#x00B5;</cell><cell>&#x00B6;</cell><cell>&#x00B7;</cell>\n                                                 <cell>&#x00B8;</cell><cell>&#x00B9;</cell><cell>&#x00BA;</cell><cell>&#x00BB;</cell><cell>&#x00BC;</cell><cell>&#x00BD;</cell><cell>&#x00BE;</cell><cell>&#x00BF;</cell></row>\n                    <row><cell><c>00C_</c></cell><cell>&#x00C0;</cell><cell>&#x00C1;</cell><cell>&#x00C2;</cell><cell>&#x00C3;</cell><cell>&#x00C4;</cell><cell>&#x00C5;</cell><cell>&#x00C6;</cell><cell>&#x00C7;</cell>\n                                                 <cell>&#x00C8;</cell><cell>&#x00C9;</cell><cell>&#x00CA;</cell><cell>&#x00CB;</cell><cell>&#x00CC;</cell><cell>&#x00CD;</cell><cell>&#x00CE;</cell><cell>&#x00CF;</cell></row>\n                    <row><cell><c>00D_</c></cell><cell>&#x00D0;</cell><cell>&#x00D1;</cell><cell>&#x00D2;</cell><cell>&#x00D3;</cell><cell>&#x00D4;</cell><cell>&#x00D5;</cell><cell>&#x00D6;</cell><cell>&#x00D7;</cell>\n                                                 <cell>&#x00D8;</cell><cell>&#x00D9;</cell><cell>&#x00DA;</cell><cell>&#x00DB;</cell><cell>&#x00DC;</cell><cell>&#x00DD;</cell><cell>&#x00DE;</cell><cell>&#x00DF;</cell></row>\n                    <row><cell><c>00E_</c></cell><cell>&#x00E0;</cell><cell>&#x00E1;</cell><cell>&#x00E2;</cell><cell>&#x00E3;</cell><cell>&#x00E4;</cell><cell>&#x00E5;</cell><cell>&#x00E6;</cell><cell>&#x00E7;</cell>\n                                                 <cell>&#x00E8;</cell><cell>&#x00E9;</cell><cell>&#x00EA;</cell><cell>&#x00EB;</cell><cell>&#x00EC;</cell><cell>&#x00ED;</cell><cell>&#x00EE;</cell><cell>&#x00EF;</cell></row>\n                    <row><cell><c>00F_</c></cell><cell>&#x00F0;</cell><cell>&#x00F1;</cell><cell>&#x00F2;</cell><cell>&#x00F3;</cell><cell>&#x00F4;</cell><cell>&#x00F5;</cell><cell>&#x00F6;</cell><cell>&#x00F7;</cell>\n                                                 <cell>&#x00F8;</cell><cell>&#x00F9;</cell><cell>&#x00FA;</cell><cell>&#x00FB;</cell><cell>&#x00FC;</cell><cell>&#x00FD;</cell><cell>&#x00FE;</cell><cell>&#x00FF;</cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Monospace, Latin-1 Supplement, <c>U+0080</c><ndash /><c>U+00FF</c></title>\n\n                <p>The same 94 characters as above, wrapped in a <c>&lt;c&gt;</c> element as if being used inside a sentence.  These will all render with <c>xelatex</c> and none will render with <c>pdflatex</c> (so there is just blank space below).  If we improve the latter, then these will get duplicated into the sample article.</p>\n\n                <!-- ex &#x0080; - &#x009F; controls -->\n                <!-- ex &#x00A0; non-breaking space  -->\n                <!-- ex &#x00AD; soft hyphen         -->\n                <table>\n                    <title>Latin-1 Supplement, Monospace</title>\n                    <tabular>\n                        <row><cell />\n                        <cell><c>0</c></cell>\n                        <cell><c>1</c></cell>\n                        <cell><c>2</c></cell>\n                        <cell><c>3</c></cell>\n                        <cell><c>4</c></cell>\n                        <cell><c>5</c></cell>\n                        <cell><c>6</c></cell>\n                        <cell><c>7</c></cell>\n                        <cell><c>8</c></cell>\n                        <cell><c>9</c></cell>\n                        <cell><c>A</c></cell>\n                        <cell><c>B</c></cell>\n                        <cell><c>C</c></cell>\n                        <cell><c>D</c></cell>\n                        <cell><c>E</c></cell>\n                        <cell><c>F</c></cell></row>\n                        <row><cell><c>00A_</c></cell><cell><c>&#x00A0;</c></cell><cell><c>&#x00A1;</c></cell><cell><c>&#x00A2;</c></cell><cell><c>&#x00A3;</c></cell><cell><c>&#x00A4;</c></cell><cell><c>&#x00A5;</c></cell><cell><c>&#x00A6;</c></cell><cell><c>&#x00A7;</c></cell>\n                                                     <cell><c>&#x00A8;</c></cell><cell><c>&#x00A9;</c></cell><cell><c>&#x00AA;</c></cell><cell><c>&#x00AB;</c></cell><cell><c>&#x00AC;</c></cell><cell>               </cell><cell><c>&#x00AE;</c></cell><cell><c>&#x00AF;</c></cell></row>\n                        <row><cell><c>00B_</c></cell><cell><c>&#x00B0;</c></cell><cell><c>&#x00B1;</c></cell><cell><c>&#x00B2;</c></cell><cell><c>&#x00B3;</c></cell><cell><c>&#x00B4;</c></cell><cell><c>&#x00B5;</c></cell><cell><c>&#x00B6;</c></cell><cell><c>&#x00B7;</c></cell>\n                                                     <cell><c>&#x00B8;</c></cell><cell><c>&#x00B9;</c></cell><cell><c>&#x00BA;</c></cell><cell><c>&#x00BB;</c></cell><cell><c>&#x00BC;</c></cell><cell><c>&#x00BD;</c></cell><cell><c>&#x00BE;</c></cell><cell><c>&#x00BF;</c></cell></row>\n                        <row><cell><c>00C_</c></cell><cell><c>&#x00C0;</c></cell><cell><c>&#x00C1;</c></cell><cell><c>&#x00C2;</c></cell><cell><c>&#x00C3;</c></cell><cell><c>&#x00C4;</c></cell><cell><c>&#x00C5;</c></cell><cell><c>&#x00C6;</c></cell><cell><c>&#x00C7;</c></cell>\n                                                     <cell><c>&#x00C8;</c></cell><cell><c>&#x00C9;</c></cell><cell><c>&#x00CA;</c></cell><cell><c>&#x00CB;</c></cell><cell><c>&#x00CC;</c></cell><cell><c>&#x00CD;</c></cell><cell><c>&#x00CE;</c></cell><cell><c>&#x00CF;</c></cell></row>\n                        <row><cell><c>00D_</c></cell><cell><c>&#x00D0;</c></cell><cell><c>&#x00D1;</c></cell><cell><c>&#x00D2;</c></cell><cell><c>&#x00D3;</c></cell><cell><c>&#x00D4;</c></cell><cell><c>&#x00D5;</c></cell><cell><c>&#x00D6;</c></cell><cell><c>&#x00D7;</c></cell>\n                                                     <cell><c>&#x00D8;</c></cell><cell><c>&#x00D9;</c></cell><cell><c>&#x00DA;</c></cell><cell><c>&#x00DB;</c></cell><cell><c>&#x00DC;</c></cell><cell><c>&#x00DD;</c></cell><cell><c>&#x00DE;</c></cell><cell><c>&#x00DF;</c></cell></row>\n                        <row><cell><c>00E_</c></cell><cell><c>&#x00E0;</c></cell><cell><c>&#x00E1;</c></cell><cell><c>&#x00E2;</c></cell><cell><c>&#x00E3;</c></cell><cell><c>&#x00E4;</c></cell><cell><c>&#x00E5;</c></cell><cell><c>&#x00E6;</c></cell><cell><c>&#x00E7;</c></cell>\n                                                     <cell><c>&#x00E8;</c></cell><cell><c>&#x00E9;</c></cell><cell><c>&#x00EA;</c></cell><cell><c>&#x00EB;</c></cell><cell><c>&#x00EC;</c></cell><cell><c>&#x00ED;</c></cell><cell><c>&#x00EE;</c></cell><cell><c>&#x00EF;</c></cell></row>\n                        <row><cell><c>00F_</c></cell><cell><c>&#x00F0;</c></cell><cell><c>&#x00F1;</c></cell><cell><c>&#x00F2;</c></cell><cell><c>&#x00F3;</c></cell><cell><c>&#x00F4;</c></cell><cell><c>&#x00F5;</c></cell><cell><c>&#x00F6;</c></cell><cell><c>&#x00F7;</c></cell>\n                                                     <cell><c>&#x00F8;</c></cell><cell><c>&#x00F9;</c></cell><cell><c>&#x00FA;</c></cell><cell><c>&#x00FB;</c></cell><cell><c>&#x00FC;</c></cell><cell><c>&#x00FD;</c></cell><cell><c>&#x00FE;</c></cell><cell><c>&#x00FF;</c></cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Latin Extended-A, <c>U+0100</c><ndash /><c>U+017F</c></title>\n\n                <p>Good success rendering with <c>xelatex</c> and no extra setup, subject to glyphs actually being available in whatever font you use.  Our default font is Latin Modern.  About 25% of these are missing when rendered with <c>pdflatex</c>.</p>\n\n                <table>\n                    <title>Latin Extended-A</title>\n                <tabular>\n                    <row><cell />\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>010_</c></cell><cell>&#x0100;</cell><cell>&#x0101;</cell><cell>&#x0102;</cell><cell>&#x0103;</cell><cell>&#x0104;</cell><cell>&#x0105;</cell><cell>&#x0106;</cell><cell>&#x0107;</cell>\n                                                 <cell>&#x0108;</cell><cell>&#x0109;</cell><cell>&#x010A;</cell><cell>&#x010B;</cell><cell>&#x010C;</cell><cell>&#x010D;</cell><cell>&#x010E;</cell><cell>&#x010F;</cell></row>\n                    <row><cell><c>011_</c></cell><cell>&#x0110;</cell><cell>&#x0111;</cell><cell>&#x0112;</cell><cell>&#x0113;</cell><cell>&#x0114;</cell><cell>&#x0115;</cell><cell>&#x0116;</cell><cell>&#x0117;</cell>\n                                                 <cell>&#x0118;</cell><cell>&#x0119;</cell><cell>&#x011A;</cell><cell>&#x011B;</cell><cell>&#x011C;</cell><cell>&#x011D;</cell><cell>&#x011E;</cell><cell>&#x011F;</cell></row>\n                    <row><cell><c>012_</c></cell><cell>&#x0120;</cell><cell>&#x0121;</cell><cell>&#x0122;</cell><cell>&#x0123;</cell><cell>&#x0124;</cell><cell>&#x0125;</cell><cell>&#x0126;</cell><cell>&#x0127;</cell>\n                                                 <cell>&#x0128;</cell><cell>&#x0129;</cell><cell>&#x012A;</cell><cell>&#x012B;</cell><cell>&#x012C;</cell><cell>&#x012D;</cell><cell>&#x012E;</cell><cell>&#x012F;</cell></row>\n                    <row><cell><c>013_</c></cell><cell>&#x0130;</cell><cell>&#x0131;</cell><cell>&#x0132;</cell><cell>&#x0133;</cell><cell>&#x0134;</cell><cell>&#x0135;</cell><cell>&#x0136;</cell><cell>&#x0137;</cell>\n                                                 <cell>&#x0138;</cell><cell>&#x0139;</cell><cell>&#x013A;</cell><cell>&#x013B;</cell><cell>&#x013C;</cell><cell>&#x013D;</cell><cell>&#x013E;</cell><cell>&#x013F;</cell></row>\n                    <row><cell><c>014_</c></cell><cell>&#x0140;</cell><cell>&#x0141;</cell><cell>&#x0142;</cell><cell>&#x0143;</cell><cell>&#x0144;</cell><cell>&#x0145;</cell><cell>&#x0146;</cell><cell>&#x0147;</cell>\n                                                 <cell>&#x0148;</cell><cell>&#x0149;</cell><cell>&#x014A;</cell><cell>&#x014B;</cell><cell>&#x014C;</cell><cell>&#x014D;</cell><cell>&#x014E;</cell><cell>&#x014F;</cell></row>\n                    <row><cell><c>015_</c></cell><cell>&#x0150;</cell><cell>&#x0151;</cell><cell>&#x0152;</cell><cell>&#x0153;</cell><cell>&#x0154;</cell><cell>&#x0155;</cell><cell>&#x0156;</cell><cell>&#x0157;</cell>\n                                                 <cell>&#x0158;</cell><cell>&#x0159;</cell><cell>&#x015A;</cell><cell>&#x015B;</cell><cell>&#x015C;</cell><cell>&#x015D;</cell><cell>&#x015E;</cell><cell>&#x015F;</cell></row>\n                    <row><cell><c>016_</c></cell><cell>&#x0160;</cell><cell>&#x0161;</cell><cell>&#x0162;</cell><cell>&#x0163;</cell><cell>&#x0164;</cell><cell>&#x0165;</cell><cell>&#x0166;</cell><cell>&#x0167;</cell>\n                                                 <cell>&#x0168;</cell><cell>&#x0169;</cell><cell>&#x016A;</cell><cell>&#x016B;</cell><cell>&#x016C;</cell><cell>&#x016D;</cell><cell>&#x016E;</cell><cell>&#x016F;</cell></row>\n                    <row><cell><c>017_</c></cell><cell>&#x0170;</cell><cell>&#x0171;</cell><cell>&#x0172;</cell><cell>&#x0173;</cell><cell>&#x0174;</cell><cell>&#x0175;</cell><cell>&#x0176;</cell><cell>&#x0177;</cell>\n                                                 <cell>&#x0178;</cell><cell>&#x0179;</cell><cell>&#x017A;</cell><cell>&#x017B;</cell><cell>&#x017C;</cell><cell>&#x017D;</cell><cell>&#x017E;</cell><cell>&#x017F;</cell></row>\n                    </tabular>\n                </table>\n\n                <p>Rendered with <c>xelatex</c> and no special setup, with default latin Modern fonts, we seem to be missing only four characters:<ul>\n                    <li><c>U+0138</c> (LATIN SMALL LETTER KRA, Greenlandic, removed 1973)</li>\n                    <li><c>U+0149</c> (LATIN SMALL LETTER N PRECEDED BY APOSTROPHE,  Afrikaans, deprecated as of Unicode version 5.2.0)</li>\n                    <li><c>U+0166</c> (LATIN CAPITAL LETTER T WITH STROKE, Northern Sámi alphabet, used in northern parts of Norway, Sweden and Finland)</li>\n                    <li><c>U+0167</c> (LATIN SMALL LETTER T WITH STROKE, Northern Sámi alphabet, used in northern parts of Norway, Sweden and Finland)</li>\n                </ul></p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Latin Extended-B, <c>U+0180</c><ndash /><c>U+024F</c></title>\n\n                <p>Rendering with <c>xelatex</c> and no extra setup, with default latin Modern fonts, maybe 50% missing, and some constructions of accents are clearly wrong.  Almost none of these appear when rendered with <c>pdflatex</c>. (When processed with <c>lualatex</c> the incorrectly accented characters are not even visible, but we have not learned much about using fonts in LuaTeX.)  Latin Modern does not claim to support any of this range.</p>\n\n                <table>\n                    <title>Latin Extended-B</title>\n                <tabular>\n                    <row><cell />\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>018_</c></cell><cell>&#x0180;</cell><cell>&#x0181;</cell><cell>&#x0182;</cell><cell>&#x0183;</cell><cell>&#x0184;</cell><cell>&#x0185;</cell><cell>&#x0186;</cell><cell>&#x0187;</cell>\n                                                 <cell>&#x0188;</cell><cell>&#x0189;</cell><cell>&#x018A;</cell><cell>&#x018B;</cell><cell>&#x018C;</cell><cell>&#x018D;</cell><cell>&#x018E;</cell><cell>&#x018F;</cell></row>\n                    <row><cell><c>019_</c></cell><cell>&#x0190;</cell><cell>&#x0191;</cell><cell>&#x0192;</cell><cell>&#x0193;</cell><cell>&#x0194;</cell><cell>&#x0195;</cell><cell>&#x0196;</cell><cell>&#x0197;</cell>\n                                                 <cell>&#x0198;</cell><cell>&#x0199;</cell><cell>&#x019A;</cell><cell>&#x019B;</cell><cell>&#x019C;</cell><cell>&#x019D;</cell><cell>&#x019E;</cell><cell>&#x019F;</cell></row>\n                    <row><cell><c>01A_</c></cell><cell>&#x01A0;</cell><cell>&#x01A1;</cell><cell>&#x01A2;</cell><cell>&#x01A3;</cell><cell>&#x01A4;</cell><cell>&#x01A5;</cell><cell>&#x01A6;</cell><cell>&#x01A7;</cell>\n                                                 <cell>&#x01A8;</cell><cell>&#x01A9;</cell><cell>&#x01AA;</cell><cell>&#x01AB;</cell><cell>&#x01AC;</cell><cell>&#x01AD;</cell><cell>&#x01AE;</cell><cell>&#x01AF;</cell></row>\n                    <row><cell><c>01B_</c></cell><cell>&#x01B0;</cell><cell>&#x01B1;</cell><cell>&#x01B2;</cell><cell>&#x01B3;</cell><cell>&#x01B4;</cell><cell>&#x01B5;</cell><cell>&#x01B6;</cell><cell>&#x01B7;</cell>\n                                                 <cell>&#x01B8;</cell><cell>&#x01B9;</cell><cell>&#x01BA;</cell><cell>&#x01BB;</cell><cell>&#x01BC;</cell><cell>&#x01BD;</cell><cell>&#x01BE;</cell><cell>&#x01BF;</cell></row>\n                    <row><cell><c>01C_</c></cell><cell>&#x01C0;</cell><cell>&#x01C1;</cell><cell>&#x01C2;</cell><cell>&#x01C3;</cell><cell>&#x01C4;</cell><cell>&#x01C5;</cell><cell>&#x01C6;</cell><cell>&#x01C7;</cell>\n                                                 <cell>&#x01C8;</cell><cell>&#x01C9;</cell><cell>&#x01CA;</cell><cell>&#x01CB;</cell><cell>&#x01CC;</cell><cell>&#x01CD;</cell><cell>&#x01CE;</cell><cell>&#x01CF;</cell></row>\n                    <row><cell><c>01D_</c></cell><cell>&#x01D0;</cell><cell>&#x01D1;</cell><cell>&#x01D2;</cell><cell>&#x01D3;</cell><cell>&#x01D4;</cell><cell>&#x01D5;</cell><cell>&#x01D6;</cell><cell>&#x01D7;</cell>\n                                                 <cell>&#x01D8;</cell><cell>&#x01D9;</cell><cell>&#x01DA;</cell><cell>&#x01DB;</cell><cell>&#x01DC;</cell><cell>&#x01DD;</cell><cell>&#x01DE;</cell><cell>&#x01DF;</cell></row>\n                    <row><cell><c>01E_</c></cell><cell>&#x01E0;</cell><cell>&#x01E1;</cell><cell>&#x01E2;</cell><cell>&#x01E3;</cell><cell>&#x01E4;</cell><cell>&#x01E5;</cell><cell>&#x01E6;</cell><cell>&#x01E7;</cell>\n                                                 <cell>&#x01E8;</cell><cell>&#x01E9;</cell><cell>&#x01EA;</cell><cell>&#x01EB;</cell><cell>&#x01EC;</cell><cell>&#x01ED;</cell><cell>&#x01EE;</cell><cell>&#x01EF;</cell></row>\n                    <row><cell><c>01F_</c></cell><cell>&#x01F0;</cell><cell>&#x01F1;</cell><cell>&#x01F2;</cell><cell>&#x01F3;</cell><cell>&#x01F4;</cell><cell>&#x01F5;</cell><cell>&#x01F6;</cell><cell>&#x01F7;</cell>\n                                                 <cell>&#x01F8;</cell><cell>&#x01F9;</cell><cell>&#x01FA;</cell><cell>&#x01FB;</cell><cell>&#x01FC;</cell><cell>&#x01FD;</cell><cell>&#x01FE;</cell><cell>&#x01FF;</cell></row>\n                    <row><cell><c>020_</c></cell><cell>&#x0200;</cell><cell>&#x0201;</cell><cell>&#x0202;</cell><cell>&#x0203;</cell><cell>&#x0204;</cell><cell>&#x0205;</cell><cell>&#x0206;</cell><cell>&#x0207;</cell>\n                                                 <cell>&#x0208;</cell><cell>&#x0209;</cell><cell>&#x020A;</cell><cell>&#x020B;</cell><cell>&#x020C;</cell><cell>&#x020D;</cell><cell>&#x020E;</cell><cell>&#x020F;</cell></row>\n                    <row><cell><c>021_</c></cell><cell>&#x0210;</cell><cell>&#x0211;</cell><cell>&#x0212;</cell><cell>&#x0213;</cell><cell>&#x0214;</cell><cell>&#x0215;</cell><cell>&#x0216;</cell><cell>&#x0217;</cell>\n                                                 <cell>&#x0218;</cell><cell>&#x0219;</cell><cell>&#x021A;</cell><cell>&#x021B;</cell><cell>&#x021C;</cell><cell>&#x021D;</cell><cell>&#x021E;</cell><cell>&#x021F;</cell></row>\n                    <row><cell><c>022_</c></cell><cell>&#x0220;</cell><cell>&#x0221;</cell><cell>&#x0222;</cell><cell>&#x0223;</cell><cell>&#x0224;</cell><cell>&#x0225;</cell><cell>&#x0226;</cell><cell>&#x0227;</cell>\n                                                 <cell>&#x0228;</cell><cell>&#x0229;</cell><cell>&#x022A;</cell><cell>&#x022B;</cell><cell>&#x022C;</cell><cell>&#x022D;</cell><cell>&#x022E;</cell><cell>&#x022F;</cell></row>\n                    <row><cell><c>023_</c></cell><cell>&#x0230;</cell><cell>&#x0231;</cell><cell>&#x0232;</cell><cell>&#x0233;</cell><cell>&#x0234;</cell><cell>&#x0235;</cell><cell>&#x0236;</cell><cell>&#x0237;</cell>\n                                                 <cell>&#x0238;</cell><cell>&#x0239;</cell><cell>&#x023A;</cell><cell>&#x023B;</cell><cell>&#x023C;</cell><cell>&#x023D;</cell><cell>&#x023E;</cell><cell>&#x023F;</cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Latin Extended Additional, <c>U+1E00</c><ndash /><c>U+1EFF</c></title>\n\n                <p>Latin Modern, our default font, supports this range of 256 characters, which includes 90 Vietnamese characters.  Their documentation shows about 140 characters rendered correctly, which seems to jibe with the examples here that render properly.</p>\n\n                <table>\n                    <title>Latin Extended Additional</title>\n                <tabular>\n                    <row><cell />\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>1E0_</c></cell><cell>&#x1E00;</cell><cell>&#x1E01;</cell><cell>&#x1E02;</cell><cell>&#x1E03;</cell><cell>&#x1E04;</cell><cell>&#x1E05;</cell><cell>&#x1E06;</cell><cell>&#x1E07;</cell>\n                                                 <cell>&#x1E08;</cell><cell>&#x1E09;</cell><cell>&#x1E0A;</cell><cell>&#x1E0B;</cell><cell>&#x1E0C;</cell><cell>&#x1E0D;</cell><cell>&#x1E0E;</cell><cell>&#x1E0F;</cell></row>\n                    <row><cell><c>1E1_</c></cell><cell>&#x1E10;</cell><cell>&#x1E11;</cell><cell>&#x1E12;</cell><cell>&#x1E13;</cell><cell>&#x1E14;</cell><cell>&#x1E15;</cell><cell>&#x1E16;</cell><cell>&#x1E17;</cell>\n                                                 <cell>&#x1E18;</cell><cell>&#x1E19;</cell><cell>&#x1E1A;</cell><cell>&#x1E1B;</cell><cell>&#x1E1C;</cell><cell>&#x1E1D;</cell><cell>&#x1E1E;</cell><cell>&#x1E1F;</cell></row>\n                    <row><cell><c>1E2_</c></cell><cell>&#x1E20;</cell><cell>&#x1E21;</cell><cell>&#x1E22;</cell><cell>&#x1E23;</cell><cell>&#x1E24;</cell><cell>&#x1E25;</cell><cell>&#x1E26;</cell><cell>&#x1E27;</cell>\n                                                 <cell>&#x1E28;</cell><cell>&#x1E29;</cell><cell>&#x1E2A;</cell><cell>&#x1E2B;</cell><cell>&#x1E2C;</cell><cell>&#x1E2D;</cell><cell>&#x1E2E;</cell><cell>&#x1E2F;</cell></row>\n                    <row><cell><c>1E3_</c></cell><cell>&#x1E30;</cell><cell>&#x1E31;</cell><cell>&#x1E32;</cell><cell>&#x1E33;</cell><cell>&#x1E34;</cell><cell>&#x1E35;</cell><cell>&#x1E36;</cell><cell>&#x1E37;</cell>\n                                                 <cell>&#x1E38;</cell><cell>&#x1E39;</cell><cell>&#x1E3A;</cell><cell>&#x1E3B;</cell><cell>&#x1E3C;</cell><cell>&#x1E3D;</cell><cell>&#x1E3E;</cell><cell>&#x1E3F;</cell></row>\n                    <row><cell><c>1E4_</c></cell><cell>&#x1E40;</cell><cell>&#x1E41;</cell><cell>&#x1E42;</cell><cell>&#x1E43;</cell><cell>&#x1E44;</cell><cell>&#x1E45;</cell><cell>&#x1E46;</cell><cell>&#x1E47;</cell>\n                                                 <cell>&#x1E48;</cell><cell>&#x1E49;</cell><cell>&#x1E4A;</cell><cell>&#x1E4B;</cell><cell>&#x1E4C;</cell><cell>&#x1E4D;</cell><cell>&#x1E4E;</cell><cell>&#x1E4F;</cell></row>\n                    <row><cell><c>1E5_</c></cell><cell>&#x1E50;</cell><cell>&#x1E51;</cell><cell>&#x1E52;</cell><cell>&#x1E53;</cell><cell>&#x1E54;</cell><cell>&#x1E55;</cell><cell>&#x1E56;</cell><cell>&#x1E57;</cell>\n                                                 <cell>&#x1E58;</cell><cell>&#x1E59;</cell><cell>&#x1E5A;</cell><cell>&#x1E5B;</cell><cell>&#x1E5C;</cell><cell>&#x1E5D;</cell><cell>&#x1E5E;</cell><cell>&#x1E5F;</cell></row>\n                    <row><cell><c>1E6_</c></cell><cell>&#x1E60;</cell><cell>&#x1E61;</cell><cell>&#x1E62;</cell><cell>&#x1E63;</cell><cell>&#x1E64;</cell><cell>&#x1E65;</cell><cell>&#x1E66;</cell><cell>&#x1E67;</cell>\n                                                 <cell>&#x1E68;</cell><cell>&#x1E69;</cell><cell>&#x1E6A;</cell><cell>&#x1E6B;</cell><cell>&#x1E6C;</cell><cell>&#x1E6D;</cell><cell>&#x1E6E;</cell><cell>&#x1E6F;</cell></row>\n                    <row><cell><c>1E7_</c></cell><cell>&#x1E70;</cell><cell>&#x1E71;</cell><cell>&#x1E72;</cell><cell>&#x1E73;</cell><cell>&#x1E74;</cell><cell>&#x1E75;</cell><cell>&#x1E76;</cell><cell>&#x1E77;</cell>\n                                                 <cell>&#x1E78;</cell><cell>&#x1E79;</cell><cell>&#x1E7A;</cell><cell>&#x1E7B;</cell><cell>&#x1E7C;</cell><cell>&#x1E7D;</cell><cell>&#x1E7E;</cell><cell>&#x1E7F;</cell></row>\n                    <row><cell><c>1E8_</c></cell><cell>&#x1E80;</cell><cell>&#x1E81;</cell><cell>&#x1E82;</cell><cell>&#x1E83;</cell><cell>&#x1E84;</cell><cell>&#x1E85;</cell><cell>&#x1E86;</cell><cell>&#x1E87;</cell>\n                                                 <cell>&#x1E88;</cell><cell>&#x1E89;</cell><cell>&#x1E8A;</cell><cell>&#x1E8B;</cell><cell>&#x1E8C;</cell><cell>&#x1E8D;</cell><cell>&#x1E8E;</cell><cell>&#x1E8F;</cell></row>\n                    <row><cell><c>1E9_</c></cell><cell>&#x1E90;</cell><cell>&#x1E91;</cell><cell>&#x1E92;</cell><cell>&#x1E93;</cell><cell>&#x1E94;</cell><cell>&#x1E95;</cell><cell>&#x1E96;</cell><cell>&#x1E97;</cell>\n                                                 <cell>&#x1E98;</cell><cell>&#x1E99;</cell><cell>&#x1E9A;</cell><cell>&#x1E9B;</cell><cell>&#x1E9C;</cell><cell>&#x1E9D;</cell><cell>&#x1E9E;</cell><cell>&#x1E9F;</cell></row>\n                    <row><cell><c>1EA_</c></cell><cell>&#x1EA0;</cell><cell>&#x1EA1;</cell><cell>&#x1EA2;</cell><cell>&#x1EA3;</cell><cell>&#x1EA4;</cell><cell>&#x1EA5;</cell><cell>&#x1EA6;</cell><cell>&#x1EA7;</cell>\n                                                 <cell>&#x1EA8;</cell><cell>&#x1EA9;</cell><cell>&#x1EAA;</cell><cell>&#x1EAB;</cell><cell>&#x1EAC;</cell><cell>&#x1EAD;</cell><cell>&#x1EAE;</cell><cell>&#x1EAF;</cell></row>\n                    <row><cell><c>1EB_</c></cell><cell>&#x1EB0;</cell><cell>&#x1EB1;</cell><cell>&#x1EB2;</cell><cell>&#x1EB3;</cell><cell>&#x1EB4;</cell><cell>&#x1EB5;</cell><cell>&#x1EB6;</cell><cell>&#x1EB7;</cell>\n                                                 <cell>&#x1EB8;</cell><cell>&#x1EB9;</cell><cell>&#x1EBA;</cell><cell>&#x1EBB;</cell><cell>&#x1EBC;</cell><cell>&#x1EBD;</cell><cell>&#x1EBE;</cell><cell>&#x1EBF;</cell></row>\n                    <row><cell><c>1EC_</c></cell><cell>&#x1EC0;</cell><cell>&#x1EC1;</cell><cell>&#x1EC2;</cell><cell>&#x1EC3;</cell><cell>&#x1EC4;</cell><cell>&#x1EC5;</cell><cell>&#x1EC6;</cell><cell>&#x1EC7;</cell>\n                                                 <cell>&#x1EC8;</cell><cell>&#x1EC9;</cell><cell>&#x1ECA;</cell><cell>&#x1ECB;</cell><cell>&#x1ECC;</cell><cell>&#x1ECD;</cell><cell>&#x1ECE;</cell><cell>&#x1ECF;</cell></row>\n                    <row><cell><c>1ED_</c></cell><cell>&#x1ED0;</cell><cell>&#x1ED1;</cell><cell>&#x1ED2;</cell><cell>&#x1ED3;</cell><cell>&#x1ED4;</cell><cell>&#x1ED5;</cell><cell>&#x1ED6;</cell><cell>&#x1ED7;</cell>\n                                                 <cell>&#x1ED8;</cell><cell>&#x1ED9;</cell><cell>&#x1EDA;</cell><cell>&#x1EDB;</cell><cell>&#x1EDC;</cell><cell>&#x1EDD;</cell><cell>&#x1EDE;</cell><cell>&#x1EDF;</cell></row>\n                    <row><cell><c>1EE_</c></cell><cell>&#x1EE0;</cell><cell>&#x1EE1;</cell><cell>&#x1EE2;</cell><cell>&#x1EE3;</cell><cell>&#x1EE4;</cell><cell>&#x1EE5;</cell><cell>&#x1EE6;</cell><cell>&#x1EE7;</cell>\n                                                 <cell>&#x1EE8;</cell><cell>&#x1EE9;</cell><cell>&#x1EEA;</cell><cell>&#x1EEB;</cell><cell>&#x1EEC;</cell><cell>&#x1EED;</cell><cell>&#x1EEE;</cell><cell>&#x1EEF;</cell></row>\n                    <row><cell><c>1EF_</c></cell><cell>&#x1EF0;</cell><cell>&#x1EF1;</cell><cell>&#x1EF2;</cell><cell>&#x1EF3;</cell><cell>&#x1EF4;</cell><cell>&#x1EF5;</cell><cell>&#x1EF6;</cell><cell>&#x1EF7;</cell>\n                                                 <cell>&#x1EF8;</cell><cell>&#x1EF9;</cell><cell>&#x1EFA;</cell><cell>&#x1EFB;</cell><cell>&#x1EFC;</cell><cell>&#x1EFD;</cell><cell>&#x1EFE;</cell><cell>&#x1EFF;</cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n        </section>\n\n        <section>\n            <title>Graphics</title>\n\n            <introduction>\n                <p>Some graphics languages require the <c>xelatex</c> engine, which this document presumes.</p>\n            </introduction>\n\n            <subsection>\n                <title>PSTricks</title>\n                <idx>PSTricks</idx>\n\n               <p>PSTricks is a <latex /> package for drawing diagrams and pictures, dating back to the days before <init>PDF</init> when PostScript (<init>PS</init>) was king.  Given its history, it does not seem to work easily with the <c>pdflatex</c> engine.  But it will work easily with the <c>xelatex</c> engine.  So we test and document this approach here.</p>\n\n                <p>For the following we add<cd>\\usepackage{pstricks-add}</cd> to the <c>latex-image-preamble</c> portion of <c>docinfo</c>.  Your diagrams might be fine with simply the <c>pstricks</c> package.  Following comes from<cd>https://www.tug.org/PSTricks/main.cgi?file=Examples/polar#lemniscate</cd>accessed on 2018-02-05.</p>\n\n                <p>Note that the <c>width</c> attribute is respected for <init>HTML</init> output, but ignored for the <latex /> output.  This situation could change.</p>\n\n                <!-- 2018-02-05:  https://www.tug.org/PSTricks/main.cgi?file=Examples/polar#lemniscate-->\n                <!-- ~/mathbook/mathbook/script/mbx -v -f svg -c latex-image -d /tmp/f ~/mathbook/mathbook/examples/fonts/fonts-and-characters.xml -->\n                <figure>\n                    <caption>A Lemniscate</caption>\n                    <image xml:id=\"lemniscate-pstricks\" width=\"50%\">\n                        <latex-image>\n                        \\psset{unit=3cm,opacity=0.4}\n                        \\begin{pspicture}(-2,-1)(2,1)\n                          \\psgrid[gridcolor=lightgray,subgriddiv=0]\n                          \\psset{polarplot,plotpoints=500,linecolor=red,fillcolor=blue!30,fillstyle=solid,linewidth=2pt}\n                          \\psplot{-45}{45}{x dup add cos 3 mul sqrt}\n                          \\psplot[fillcolor=red!30,fillstyle=solid,linecolor=blue]{135}{225}{x dup add cos 3 mul sqrt}\n                        \\end{pspicture}\n                        </latex-image>\n                    </image>\n                </figure>\n            </subsection>\n        </section>\n    </article>\n</pretext>\n"
  },
  {
    "path": "examples/hello-world/README.md",
    "content": "# \"Hello, World\" Example\n\n`hello-world.xml` is a one-page article that has only a single paragraph with a single sentence.  Guess what it says?  For a more informative small example, see the `examples/minimal` directory.\n"
  },
  {
    "path": "examples/hello-world/hello-world.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016-2026 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is an absolute bare minumum example of PreTeXt. -->\n<!-- For a small, but more informative example, see the   -->\n<!-- \"minimal\" example in examples/minimal.               -->\n\n<pretext>\n   <article xml:id=\"hello-world\">\n      <title>A Small Hello to the World</title>\n      <p>Hello, World!</p>\n   </article>\n</pretext>\n"
  },
  {
    "path": "examples/hello-world/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Stub publication file that can be customized for testing -->\n<publication>\n    <common>\n    </common>\n\n    <html>\n    </html>\n\n    <latex>\n    </latex>\n</publication>\n"
  },
  {
    "path": "examples/humanities/README.md",
    "content": "# Humanities Example\n\n`source/main.ptx` is a small document that primarily illustrates (and tests) markup for music and poetry.\n\n`project.ptx` is a project configuration file for use with the PreTeXt-CLI.\n\n`codechat_config.yaml` is a CodeChat project configuration file, which will use the PreTeXt-CLI for processing.\n"
  },
  {
    "path": "examples/humanities/codechat_config.yaml",
    "content": "# .. Copyright (C) 2012-2020 Bryan A. Jones.\n#\n#  This file is part of the CodeChat System.\n#\n#  The CodeChat System is free software: you can redistribute it and/or\n#  modify it under the terms of the GNU General Public License as\n#  published by the Free Software Foundation, either version 3 of the\n#  License, or (at your option) any later version.\n#\n#  The CodeChat System is distributed in the hope that it will be\n#  useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n#  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n#  General Public License for more details.\n#\n#  You should have received a copy of the GNU General Public License\n#  along with the CodeChat System.  If not, see\n#  <http://www.gnu.org/licenses/>.\n#\n# ************************************************\n# |docname| - Configuration for a CodeChat project\n# ************************************************\n# This file defines the configuration for a CodeChat project. It contains a working `Sphinx <https://www.sphinx-doc.org/>`_ configuration.\n#\n# ``source_path``: optional; defaults to ``.`` (the current directory). A path to the root of the source tree. Relative paths are rooted in the directory containing this configuration file.\nsource_path: source\n\n# ``output_path``: required. A path to the root of the HTML output produced by this renderer. Relative paths are rooted in the directory containing this configuration file.\noutput_path: output/html\n\n# ``args``: required string or sequence of strings. This provides the arguments to invoke the renderer. These strings may optionally contain the following replacement values:\n#\n# - ``{project_path}``: an absolute path to the directory containing this file.\n# - ``{source_path}``: the ``source_path`` above, but as an absolute path.\n# - ``{output_path}``: the ``output_path`` above, but as an absolute path.\n#\n# The line below could also be written ``args: sphinx-build . _build``.\nargs: pretext build html\n\n# ``html_ext``: optional; defaults to ``.html``. The extension used by this renderer when generating HTML files.\n#html_ext: .html\n\n# ``project_type``: optional; defaults to ``general``. Define the project type, which enables special processing based on the type. Valid values are ``general`` (no special processing), ``Doxygen``, and ``PreTeXt``.\nproject_type: PreTeXt\n"
  },
  {
    "path": "examples/humanities/generated-assets/.gitkeep",
    "content": ""
  },
  {
    "path": "examples/humanities/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <target name=\"html\">\n      <format>html</format>\n      <source>source/hia.xml</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"latex\">\n      <format>latex</format>\n      <source>source/hia.xml</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/latex</output-dir>\n    </target>\n    <target name=\"pdf\">\n      <format>pdf</format>\n      <source>source/hia.xml</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/pdf</output-dir>\n    </target>\n  </targets>\n  <executables>\n      <latex>latex</latex>\n      <pdflatex>pdflatex</pdflatex>\n      <xelatex>xelatex</xelatex>\n      <pdfsvg>pdf2svg</pdfsvg>\n      <asy>asy</asy>\n      <sage>sage</sage>\n      <pdfpng>convert</pdfpng>\n      <pdfeps>pdftops</pdfeps>\n      <pdfcrop>pdf-crop-margins</pdfcrop>\n      <pageres>pageres</pageres>\n      <node>node</node>\n      <liblouis>file2brl</liblouis>\n    </executables>\n</project>\n"
  },
  {
    "path": "examples/humanities/publication/publication.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This is the publication file for a newly generated PreTeXt book.     -->\n<!-- By changing the values of attributes here, you can change how        -->\n<!-- the output looks and functions.  For the complete documentation      -->\n<!-- of publication-file options, see                                     -->\n<!-- https://pretextbook.org/doc/guide/html/publisher-file-reference.html -->\n\n\n\n<publication>\n  <!-- Set where external assets and generated assets will be   -->\n  <!-- stored or created.  Directories are relative to the main -->\n  <!-- source PreTeXt file                                      -->\n  <source>\n    <directories external=\"../assets\" generated=\"../generated-assets\"/>\n  </source>\n\n  <numbering>\n    <!-- the divisions element describes the numbering of divisions.  -->\n    <!-- @part-structure should be \"decorative\" or \"structural\",      -->\n    <!-- were the latter would restart numbering chapters within each -->\n    <!-- part (this only matters if your book has parts).             -->\n    <!-- The attribute @chapter-start give the number of the first    -->\n    <!-- chapter.  @level says how deep (chapter->section->subsection)-->\n    <!-- numbering should appear.                                     -->\n      <!-- For use with a book organized by parts\n    <divisions part-structure=\"decorative\" chapter-start=\"1\" level=\"3\"/>\n      -->\n    <!-- The next elements say how the levels deep to break up the    -->\n    <!-- numbering of the respective elements. Can't be more than the -->\n    <!-- @level on divisions above.                                   -->\n    <blocks level=\"2\"/>\n    <projects level=\"0\"/>\n    <equations level=\"1\"/>\n    <footnotes level=\"0\"/>\n  </numbering>\n\n    <!-- LaTeX specific options: set @print=\"yes\" to get pdf set up   -->\n    <!-- for printing; set @sides=\"two\" if the printing woudl be two- -->\n    <!-- sided.  The asymptote/@links set to \"yes\" would produce      -->\n    <!-- links the html version of asymptote graphics.                -->\n  <latex print=\"no\" sides=\"one\">\n    <asymptote links=\"no\"/>\n  </latex>\n  \n  <html>\n    <!-- Whether to knowl a particular elements is set here    -->\n    <!-- Lots of elements have this possibility; see the guide -->\n    <knowl remark=\"no\" example=\"no\" proof=\"yes\"/>\n    <!-- Specify the theme for the HTML.                       -->\n    <!-- See the guide for options                             -->\n    <css theme=\"default-modern\" colors=\"blue-red\"/>\n    <!-- Magic IDs identify HTML pages to analytics services   -->\n    <!-- Presence implies relevant Javascript will be added    -->\n    <!-- StatCounter requires both values to be set            -->\n    <!-- <analytics google-gst=\"UA-0123456-1\" statcounter-project=\"0123456\" statcounter-security=\"0123456\"/> -->\n    <!-- Google search, via masthead textbox is switched on    -->\n    <!-- and associated with a Google account via CX number    -->\n    <!-- <search google-cx=\"\"/> -->\n    <!-- ***************************************************** -->\n  </html>\n</publication>\n"
  },
  {
    "path": "examples/humanities/requirements.txt",
    "content": "pretextbook == 0.7.0\n"
  },
  {
    "path": "examples/humanities/source/hia.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:lang=\"en-US\">\n    <!-- May need lilyglyphs.sty from Debian/Ubuntu texlive-music -->\n    <docinfo>\n        <!-- this is the default, but supresses a warning -->\n        <cross-references text=\"type-global\" />\n    </docinfo>\n    <book xml:id=\"hia\">\n        <title>Humanities in Action</title>\n        <frontmatter xml:id=\"index\">\n            <bibinfo>\n                <author>\n                    <personname>Jahrme Risner</personname>\n                    <institution>University of Puget Sound</institution>\n                </author>\n                <date><today/></date>\n            </bibinfo>\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n            <preface>\n                <p>A collection of demonstrations leveraging the increased support for writing in the humanities.</p>\n            </preface>\n        </frontmatter>\n        <xi:include href=\"poetry.xml\"/>\n        <xi:include href=\"music.xml\"/>\n    </book>\n</pretext>\n"
  },
  {
    "path": "examples/humanities/source/music.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<chapter xml:id=\"music\">\n    <title>Music</title>\n    <section xml:id=\"symbols\">\n        <title>Musical Symbols</title>\n        <example>\n            <title>Accidentals</title>\n            <p>The accidentals are<ul>\n                <li><p><c>&lt;doublesharp/&gt;</c>: <doublesharp/></p></li>\n                <li><p><c>&lt;sharp/&gt;</c>: <sharp/></p></li>\n                <li><p><c>&lt;natural/&gt;</c>: <natural/></p></li>\n                <li><p><c>&lt;flat/&gt;</c>: <flat/></p></li>\n                <li><p><c>&lt;doubleflat/&gt;</c>: <doubleflat/></p></li>\n            </ul></p>\n        </example>\n    </section>\n    <section xml:id=\"scaledegs\">\n        <title>Scale Degrees</title>\n        <p>Scale degrees are created using the <c>&lt;scaledeg&gt;</c> tag which places a <q>diacritic circumflex</q> over the degree. The circumflex looks best when attached to single-digit numbers.</p>\n        <example>\n            <title>Scale Degrees</title>\n                <p>The scale degrees are<ul cols=\"2\">\n                <li><p><c>&lt;scaledeg&gt;0&lt;/scaledeg&gt;</c>: <scaledeg>0</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;1&lt;/scaledeg&gt;</c>: <scaledeg>1</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;2&lt;/scaledeg&gt;</c>: <scaledeg>2</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;3&lt;/scaledeg&gt;</c>: <scaledeg>3</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;4&lt;/scaledeg&gt;</c>: <scaledeg>4</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;5&lt;/scaledeg&gt;</c>: <scaledeg>5</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;6&lt;/scaledeg&gt;</c>: <scaledeg>6</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;7&lt;/scaledeg&gt;</c>: <scaledeg>7</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;8&lt;/scaledeg&gt;</c>: <scaledeg>8</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;9&lt;/scaledeg&gt;</c>: <scaledeg>9</scaledeg></p></li>\n                <li><p><c>&lt;scaledeg&gt;10&lt;/scaledeg&gt;</c>: <scaledeg>10</scaledeg></p></li>\n            </ul></p>\n        </example>\n    </section>\n    <section xml:id=\"time-signatures\">\n        <title>Time Signatures</title>\n        <p>Time signatures are formed with the <tage>timesignature</tage> element and the <attr>top</attr> and <attr>bottom</attr> attributes.  For example,<ul>\n            <li><c>&lt;timesignature top=\"2\" bottom=\"4\"/&gt;</c>: <timesignature top=\"2\"  bottom=\"4\"/></li>\n            <li><c>&lt;timesignature top=\"12\" bottom=\"8\"/&gt;</c>: <timesignature top=\"12\" bottom=\"8\"/></li>\n            <li><c>&lt;timesignature top=\"7\" bottom=\"8\"/&gt;</c>: <timesignature top=\"7\" bottom=\"8\"/></li>\n\n            <li><c>&lt;timesignature top=\"5\" bottom=\"24\"/&gt;</c>: <timesignature top=\"5\" bottom=\"24\"/></li>\n            <li><c>&lt;timesignature top=\"3+2+3\" bottom=\"8\"/&gt;</c>: <timesignature top=\"3+2+3\" bottom=\"8\"/></li>\n            <li><c>&lt;timesignature top=\"5\" bottom=\"8\"/&gt;&lt;ampersand/&gt;&lt;timesignature top=\"3\" bottom=\"8\"/&gt;</c>: <timesignature top=\"5\" bottom=\"8\"/>&amp;<timesignature top=\"3\" bottom=\"8\"/></li>\n        </ul></p>\n    </section>\n    <section xml:id=\"notes\">\n        <title>Notes</title>\n        <p>Notes are created using the <c>&lt;n&gt;</c> tag with a pitch class, <c>@pc</c>. Optional attributes include accidentals, <c>@acc</c>, and octaves, <c>@octave</c>. Please note, accidentals precede numeric pitch classes.</p>\n        <p>For example, <c>&lt;n pc=\"C\" acc=\"sharp\" octave=\"4\"/&gt;</c> results in <n pc=\"C\" acc=\"sharp\" octave=\"4\"/> while <c>&lt;n pc=\"5\" acc=\"flat\"/&gt;</c> results in <n pc=\"5\" acc=\"flat\"/>.</p>\n        <example>\n            <title>Alphabetic Pitch Classes</title>\n            <p>The alphabetic pitch classes are<ul cols=\"5\">\n                <li><p><n pc=\"A\" acc=\"doublesharp\" octave=\"2\"/></p></li>\n                <li><p><n pc=\"B\" acc=\"doublesharp\"/></p></li>\n                <li><p><n pc=\"C\" acc=\"doublesharp\" octave=\"3\"/></p></li>\n                <li><p><n pc=\"D\" acc=\"doublesharp\"/></p></li>\n                <li><p><n pc=\"E\" acc=\"doublesharp\" octave=\"4\"/></p></li>\n                <li><p><n pc=\"F\" acc=\"doublesharp\"/></p></li>\n                <li><p><n pc=\"G\" acc=\"doublesharp\" octave=\"5\"/></p></li>\n\n                <li><p><n pc=\"A\" acc=\"sharp\" octave=\"2\"/></p></li>\n                <li><p><n pc=\"B\" acc=\"sharp\"/></p></li>\n                <li><p><n pc=\"C\" acc=\"sharp\" octave=\"3\"/></p></li>\n                <li><p><n pc=\"D\" acc=\"sharp\"/></p></li>\n                <li><p><n pc=\"E\" acc=\"sharp\" octave=\"4\"/></p></li>\n                <li><p><n pc=\"F\" acc=\"sharp\"/></p></li>\n                <li><p><n pc=\"G\" acc=\"sharp\" octave=\"5\"/></p></li>\n\n                <li><p><n pc=\"A\" octave=\"2\"/></p></li>\n                <li><p><n pc=\"B\"/></p></li>\n                <li><p><n pc=\"C\" octave=\"3\"/></p></li>\n                <li><p><n pc=\"D\"/></p></li>\n                <li><p><n pc=\"E\" octave=\"4\"/></p></li>\n                <li><p><n pc=\"F\"/></p></li>\n                <li><p><n pc=\"G\" octave=\"5\"/></p></li>\n\n                <li><p><n pc=\"A\" acc=\"flat\" octave=\"2\"/></p></li>\n                <li><p><n pc=\"B\" acc=\"flat\"/></p></li>\n                <li><p><n pc=\"C\" acc=\"flat\" octave=\"3\"/></p></li>\n                <li><p><n pc=\"D\" acc=\"flat\"/></p></li>\n                <li><p><n pc=\"E\" acc=\"flat\" octave=\"4\"/></p></li>\n                <li><p><n pc=\"F\" acc=\"flat\"/></p></li>\n                <li><p><n pc=\"G\" acc=\"flat\" octave=\"5\"/></p></li>\n\n                <li><p><n pc=\"A\" acc=\"doubleflat\" octave=\"2\"/></p></li>\n                <li><p><n pc=\"B\" acc=\"doubleflat\"/></p></li>\n                <li><p><n pc=\"C\" acc=\"doubleflat\" octave=\"3\"/></p></li>\n                <li><p><n pc=\"D\" acc=\"doubleflat\"/></p></li>\n                <li><p><n pc=\"E\" acc=\"doubleflat\" octave=\"4\"/></p></li>\n                <li><p><n pc=\"F\" acc=\"doubleflat\"/></p></li>\n                <li><p><n pc=\"G\" acc=\"doubleflat\" octave=\"5\"/></p></li>\n            </ul></p>\n        </example>\n        <example>\n            <title>Numeric Pitch Classes</title>\n            <p>The numeric pitch classes are<ul cols=\"5\">\n                <li><p><n pc=\"1\" acc=\"doublesharp\" octave=\"5\"/></p></li>\n                <li><p><n pc=\"2\" acc=\"doublesharp\"/></p></li>\n                <li><p><n pc=\"3\" acc=\"sharp\" octave=\"4\"/></p></li>\n                <li><p><n pc=\"4\" acc=\"sharp\"/></p></li>\n                <li><p><n pc=\"5\" octave=\"3\"/></p></li>\n                <li><p><n pc=\"6\"/></p></li>\n                <li><p><n pc=\"7\" acc=\"flat\" octave=\"2\"/></p></li>\n                <li><p><n pc=\"8\" acc=\"flat\"/></p></li>\n                <li><p><n pc=\"9\" acc=\"doubleflat\" octave=\"1\"/></p></li>\n                <li><p><n pc=\"10\" acc=\"doubleflat\"/></p></li>\n            </ul></p>\n        </example>\n    </section>\n    <section xml:id=\"chords\">\n        <title>Chords</title>\n        <p>Chords are created using a combination of the <c>&lt;chord&gt;</c> and <c>&lt;alteration&gt;</c> tags. The <c>&lt;chord&gt;</c> tag can have any combination of the following attributes: <c>@root</c>, <c>@mode</c>, <c>@bps</c>, <c>@suspended</c>, <c>@parentheses</c>, and <c>@bass</c>. For alterations to chords, we place each alteration in an <c>&lt;alteration&gt;</c> tag, which are contained within the <c>&lt;chord&gt;</c> tag. To accommodate different styles of chord notation, the <c>&lt;chord&gt;</c> attribute <c>@parentheses</c> (<c>parentheses=\"yes|no\"</c>) will toggle the parentheses surrounding the alterations. With regard to the <q>mode</q> or <q>characteristic</q> of the chord, whatever text is entered will be used verbatim <em>except</em> in the cases of <c>augmented</c>, <c>major</c>, <c>minor</c>, <c>halfdiminished</c>, and <c>diminished</c>. In these cases, the standard chord symbol representation will be used (<chord mode=\"augmented\"/>, <chord mode=\"major\"/>, <chord mode=\"minor\"/>, <chord mode=\"halfdiminished\"/>, and <chord mode=\"diminished\"/> respectively).</p>\n        <p>For example, <c>&lt;chord root=\"C\" bps=\"4 3\"/&gt;</c> will result in <chord root=\"C\" bps=\"4 3\"/> while</p>\n        <pre>\n            &lt;chord root=\"B doublesharp\" mode=\"min major\" bps=\"6 5\"\n                   suspended=\"yes\" parentheses=\"yes\" bass=\"G\"&gt;\n                &lt;alteration&gt;&lt;sharp/&gt;9&lt;/alteration&gt;\n                &lt;alteration&gt;add 11&lt;/alteration&gt;\n            &lt;/chord&gt;\n        </pre>\n        <p>will result in <chord root=\"B doublesharp\" mode=\"min major\" bps=\"6 5\" suspended=\"yes\" parentheses=\"yes\" bass=\"G\"><alteration><sharp/>9</alteration><alteration>add 11</alteration></chord>.</p>\n        <example>\n            <title>Chords</title>\n            <p>Examples of chaords are<ul cols=\"4\">\n                <li><p><chord root=\"N.C.\"/></p></li>\n                <li><p><chord root=\"C\"><alteration>bass</alteration></chord></p></li>\n                <li><p><chord root=\"A\"/></p></li>\n                <li><p><chord root=\"B\" mode=\"ma\"/></p></li>\n                <li><p><chord root=\"C\" mode=\"maj\"/></p></li>\n                <li><p><chord root=\"D\" mode=\"major\"/></p></li>\n                <li><p><chord root=\"E\" mode=\"mi\"/></p></li>\n                <li><p><chord root=\"F\" mode=\"min\"/></p></li>\n                <li><p><chord root=\"G\" mode=\"minor\"/></p></li>\n                <li><p><chord root=\"A flat\" mode=\"aug\"/></p></li>\n                <li><p><chord root=\"B flat\" mode=\"augmented\"/></p></li>\n                <li><p><chord root=\"C flat\" mode=\"dim\"/></p></li>\n                <li><p><chord root=\"D flat\" mode=\"diminished\"/></p></li>\n                <li><p><chord root=\"E flat\" bps=\"6\"/></p></li>\n                <li><p><chord root=\"F flat\" bps=\"6 9\"/></p></li>\n                <li><p><chord root=\"G flat\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"A sharp\" mode=\"dom\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"B sharp\" mode=\"maj\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"C sharp\" mode=\"major\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"D sharp\" mode=\"m\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"E sharp\" mode=\"min\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"F sharp\" mode=\"minor\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"G sharp\" mode=\"aug\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"A doubleflat\" mode=\"augmented\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"B doubleflat\" mode=\"dim\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"C doubleflat\" mode=\"diminished\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"D doubleflat\" mode=\"halfdiminished\"/></p></li>\n                <li><p><chord root=\"E doubleflat\" mode=\"halfdiminished\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"F doubleflat\" mode=\"major\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"G doubleflat\" mode=\"min maj\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"A doublesharp\" mode=\"m M\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"B doublesharp\" mode=\"minor major\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"C doublesharp\" mode=\"major\" bps=\"7\"><alteration><sharp/>5</alteration></chord></p></li>\n                <li><p><chord root=\"D doublesharp\" mode=\"augmented major\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"E doublesharp\" mode=\"min\" bps=\"7\"><alteration>dim 5</alteration></chord></p></li>\n                <li><p><chord root=\"F doublesharp\" mode=\"dom\" bps=\"7\"><alteration>dim 5</alteration></chord></p></li>\n                <li><p><chord root=\"G doublesharp\" mode=\"ma\" bps=\"7\" suspended=\"yes\" bass=\"D doublesharp\"/></p></li>\n                <li><p><chord root=\"A natural\"><alteration>add 9</alteration><alteration>omit 3</alteration></chord></p></li>\n                <li><p><chord root=\"B natural\" bps=\"7\"><alteration><sharp/>11</alteration><alteration><flat/>9</alteration></chord></p></li>\n                <li><p><chord root=\"C natural\" bps=\"7\"><alteration>add 11</alteration><alteration>omit 5</alteration></chord></p></li>\n                <li><p><chord root=\"D natural\" mode=\"major\" bps=\"7\" bass=\"E\"><alteration><sharp/>5</alteration></chord></p></li>\n                <li><p><chord root=\"E natural\" mode=\"m\" bps=\"7\" suspended=\"yes\" parentheses=\"no\"><alteration>add 3</alteration></chord></p></li>\n                <li><p><chord root=\"F natural\" bass=\"B doubleflat\"/></p></li>\n                <li><p><chord root=\"G natural\" mode=\"augmented\"><alteration>add <sharp/>9</alteration><alteration>add <flat/>9</alteration></chord></p></li>\n            </ul></p>\n        </example>\n        <example>\n            <title>Chord Comparisons</title>\n            <p>While there are different ways to notate chords, some are clearer than others.<ul>\n                <li><p><chord root=\"F\" mode=\"maj\"/> vs <chord root=\"F\" mode=\"M\"/></p></li>\n                <li><p><chord root=\"C\" mode=\"min major\" bps=\"7\"/> vs <chord root=\"C\" mode=\"minor major\" bps=\"7\"/></p></li>\n                <li><p><chord root=\"C\" mode=\"major\" bps=\"7\"><alteration><sharp/>5</alteration></chord> vs <chord root=\"C\" mode=\"augmented major\" bps=\"7\"/> vs <chord root=\"C\" mode=\"aug maj\" bps=\"7\"/></p></li>\n            </ul></p>\n        </example>\n    </section>\n\n    <section xml:id=\"scores\">\n        <title>Scores</title>\n\n        <introduction>\n            <p>A score may be represented in several formats: <init>PDF</init> output from a scorewriter (not a scan of printed sheet music), an <init>XML</init> file in the MusicXML format, online within MuseScore, or in Lilypond syntax.  We plan to support various output options and conversions, but at this writing support is rudimentary, but evolving.</p>\n        </introduction>\n\n        <subsection>\n            <title><init>PDF</init> Source</title>\n\n            <p>Starting with a <init>PDF</init> that is <q>born digital</q> such as output from a <term>scorewriter</term> like Finale, it is possible to treat the score simply as we would any other image.  The <init>PDF</init> version will be incorporated into the <init>PDF</init> output when the <latex /> output is compiled, presuming the file is placed in the right location relative to the main <tex /> file.  For <init>HTML</init> output the utilities <c>pdfcrop</c> and <c>pdf2svg</c> will produce an <init>SVG</init> image that will work well.</p>\n\n            <p>This procedure will work best for very short scores, since it is treated as an indivisible image.  For <latex /> output, a longer score can lead to very poor page breaks, and large vertical gaps, especially in a preceding page.  Or worse, the score might be longer than a single page, for which there is no solution. The piece below is inadvisably long and will likely demonstrate this behavior, though it is shorter than a page.  Using scores authored, or converted to, Lilypond syntax should allow for better behavior of longer scores within a <latex /> document.</p>\n\n            <figure>\n                <caption>Allegretto in F, Rob Hutchinson</caption>\n                <image source=\"allegretto-in-F-hutchinson\" />\n            </figure>\n        </subsection>\n\n        <subsection>\n            <title>Embedded Interactive Musical Scores</title>\n\n            <p>A score hosted on <url href=\"http://musescore.com\">MuseScore</url> is easy to specify with two ID numbers: the user number and the score number (examine the source for details).  Then an embedded interactive player is nearly trivial to embed into <init>HTML</init> output.  Work continues on a process to realize the score within <latex /> output.</p>\n\n            <figure>\n                <caption><url href=\"https://musescore.com/user/141988/scores/3113841\">String Quartet 1</url> by <url href=\"https://musescore.com/user/141988\">Lily He</url></caption>\n\n                <score musescoreuser=\"141988\" musescore=\"3113841\" />\n            </figure>\n        </subsection>\n    </section>\n</chapter>\n"
  },
  {
    "path": "examples/humanities/source/poetry.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<chapter xml:id=\"poetry\">\n    <title>Poetry</title>\n    <introduction>\n        <p>A collection of public domain poetry from: <url href=\"http://www.publicdomainpoems.com/index.html\"><c>publicdomainpoems.com</c></url></p>\n    </introduction>\n    <section xml:id=\"yeats\">\n        <title>William Butler Yeats</title>\n        <poem>\n            <title>No Second Troy</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>Why should I blame her that she filled my days</line>\n                <line>With misery, or that she would of late</line>\n                <line>Have taught to ignorant men most violent ways,</line>\n                <line>Or hurled the little streets upon the great,</line>\n                <line>Had they but courage equal to desire?</line>\n                <line>What could have made her peaceful with a mind</line>\n                <line>That nobleness made simple as a fire,</line>\n                <line>With beauty like a tightened bow, a kind</line>\n                <line>That is not natural in an age like this,</line>\n                <line>Being high and solitary and most stern?</line>\n                <line>Why, what could she have done, being what she is?</line>\n                <line>Was there another Troy for her to burn?</line>\n            </stanza>\n        </poem>\n        <poem halign=\"center\">\n            <title>The Lake Isle of Innisfree</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>I will arise and go now, and go to Innisfree,</line>\n                <line>And a small cabin build there, of clay and wattles made:</line>\n                <line>Nine bean-rows will I have there, a hive for the honeybee,</line>\n                <line>And live alone in the bee-loud glade.</line>\n            </stanza>\n            <stanza>\n                <line>And I shall have some peace there, for peace comes dropping slow,</line>\n                <line>Dropping from the veils of the morning to where the cricket sings;</line>\n                <line>There midnight's all a glimmer, and noon a purple glow,</line>\n                <line>And evening full of the linnet's wings.</line>\n            </stanza>\n            <stanza>\n                <line>I will arise and go now, for always night and day</line>\n                <line>I hear lake water lapping with low sounds by the shore;</line>\n                <line>While I stand on the roadway, or on the pavements grey,</line>\n                <line>I hear it in the deep heart's core.</line>\n            </stanza>\n        </poem>\n        <poem halign=\"right\">\n            <title>He wishes for the clothes of Heaven</title>\n            <author halign=\"center\">William Butler Yeats</author>\n            <stanza>\n                <line>Had I the heavens' embroidered cloths,</line>\n                <line>Enwrought with golden and silver light,</line>\n                <line>The blue and the dim and the dark cloths</line>\n                <line>Of night and light and the half-light,</line>\n                <line>I would spread the cloths under your feet:</line>\n                <line>But I, being poor, have only my dreams;</line>\n                <line>I have spread my dreams under your feet;</line>\n                <line>Tread softly because you tread on my dreams.</line>\n            </stanza>\n        </poem>\n        <poem halign=\"center\">\n            <title>Easter 1916</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <title>I</title>\n                <line>I have met them at close of day</line>\n                <line>Coming with vivid faces</line>\n                <line>From counter or desk among grey</line>\n                <line>Eighteenth-century houses.</line>\n                <line>I have passed with a nod of the head</line>\n                <line>Or polite meaningless words,</line>\n                <line>Or have lingered awhile and said</line>\n                <line>Polite meaningless words,</line>\n                <line>And thought before I had done</line>\n                <line>Of a mocking tale or a gibe</line>\n                <line>To please a companion</line>\n                <line>Around the fire at the club,</line>\n                <line>Being certain that they and I</line>\n                <line>But lived where motley is worn:</line>\n                <line>All changed, changed utterly:</line>\n                <line>A terrible beauty is born.</line>\n            </stanza>\n            <stanza>\n                <title>II</title>\n                <line>That woman's days were spent</line>\n                <line>In ignorant good-will,</line>\n                <line>Her nights in argument</line>\n                <line>Until her voice grew shrill.</line>\n                <line>What voice more sweet than hers</line>\n                <line>When, young and beautiful,</line>\n                <line>She rode to harriers?</line>\n                <line>This man had kept a school</line>\n                <line>And rode our winged horse;</line>\n                <line>This other his helper and friend</line>\n                <line>Was coming into his force;</line>\n                <line>He might have won fame in the end,</line>\n                <line>So sensitive his nature seemed,</line>\n                <line>So daring and sweet his thought.</line>\n                <line>This other man I had dreamed</line>\n                <line>A drunken, vainglorious lout.</line>\n                <line>He had done most bitter wrong</line>\n                <line>To some who are near my heart,</line>\n                <line>Yet I number him in the song;</line>\n                <line>He, too, has resigned his part</line>\n                <line>In the casual comedy;</line>\n                <line>He, too, has been changed in his turn,</line>\n                <line>Transformed utterly:</line>\n                <line>A terribly beauty is born.</line>\n            </stanza>\n            <stanza>\n                <title>III</title>\n                <line>Hearts with one purpose alone</line>\n                <line>Through summer and winter seem</line>\n                <line>Enchanted to a stone</line>\n                <line>To trouble the living stream.</line>\n                <line>The horse that comes from the road,</line>\n                <line>The rider, the birds that range</line>\n                <line>From cloud to tumbling cloud,</line>\n                <line>Minute by minute they change;</line>\n                <line>A shadow of cloud on the stream</line>\n                <line>Changes minute by minute;</line>\n                <line>A horse-hoof slides on the brim,</line>\n                <line>And a horse plashed within it;</line>\n                <line>The long-legged moor-hens dive,</line>\n                <line>And hens to moor-cocks call;</line>\n                <line>Minute by minute they live:</line>\n                <line>The stone's in the midst of all.</line>\n            </stanza>\n            <stanza>\n                <title>IV</title>\n                <line>Too long a sacrifice</line>\n                <line>Can make a stone of the heart.</line>\n                <line>O when may it suffice?</line>\n                <line>That is Heaven's part, our part</line>\n                <line>To murmur name upon name,</line>\n                <line>As a mother names her child</line>\n                <line>When sleep at last has come</line>\n                <line>On limbs that had run wild.</line>\n                <line>What is it but nightfall?</line>\n                <line>No, no, not night but death;</line>\n                <line>Was it needless death after all?</line>\n                <line>For England may keep faith</line>\n                <line>For all that is done and said.</line>\n                <line>We know their dream; enough</line>\n                <line>To know they dreamed and are dead;</line>\n                <line>And what if excess of love</line>\n                <line>Bewildered them till they died?</line>\n                <line>I write it out in a verse -</line>\n                <line>MacDonagh and MacBride</line>\n                <line>And Connolly and Pearse</line>\n                <line>Now and in time to be,</line>\n                <line>Wherever green is worn,</line>\n                <line>Are changed, changed utterly:</line>\n                <line>A terrible beauty is born.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>An Irish Airman Foresees His Death</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line indent=\"1\">I know that I shall meet my fate</line>\n                <line indent=\"2\">Somewhere among the clouds above;</line>\n                <line indent=\"3\">Those that I fight I do not hate</line>\n                <line indent=\"4\">Those that I guard I do not love;</line>\n            </stanza>\n            <stanza>\n                <line indent=\"5\">My country is Kiltartan Cross,</line>\n                <line indent=\"6\">My countrymen Kiltartan's poor,</line>\n                <line indent=\"7\">No likely end could bring them loss</line>\n                <line indent=\"8\">Or leave them happier than before.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"8\">Nor law, nor duty bade me fight,</line>\n                <line indent=\"7\">Nor public man, nor cheering crowds,</line>\n                <line indent=\"6\">A lonely impulse of delight</line>\n                <line indent=\"5\">Drove to this tumult in the clouds;</line>\n            </stanza>\n            <stanza>\n                <line indent=\"4\">I balanced all, brought all to mind,</line>\n                <line indent=\"3\">The years to come seemed waste of breath,</line>\n                <line indent=\"2\">A waste of breath the years behind</line>\n                <line indent=\"1\">In balance with this life, this death.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Stolen Child</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>Where dips the rocky highland</line>\n                <line>Of Sleuth Wood in the lake,</line>\n                <line>There lies a leafy island</line>\n                <line>Where flapping herons wake</line>\n                <line>The drowsy water-rats;</line>\n                <line>There we've hid our faery vats,</line>\n                <line>Full of berries</line>\n                <line>And of reddest stolen cherries.</line>\n                <line>Come away, O human child!</line>\n                <line>To the waters and the wild</line>\n                <line>With a faery, hand in hand,</line>\n                <line>For the world's more full of weeping than you</line>\n                <line>can understand.</line>\n            </stanza>\n            <stanza>\n                <line>Where the wave of moonlight glosses</line>\n                <line>The dim grey sands with light,</line>\n                <line>Far off by furthest Rosses</line>\n                <line>We foot it all the night,</line>\n                <line>Weaving olden dances,</line>\n                <line>Mingling hands and mingling glances</line>\n                <line>Till the moon has taken flight;</line>\n                <line>To and fro we leap</line>\n                <line>And chase the frothy bubbles,</line>\n                <line>While the world is full of troubles</line>\n                <line>And is anxious in its sleep.</line>\n                <line>Come away, O human child!</line>\n                <line>To the waters and the wild</line>\n                <line>With a faery, hand in hand,</line>\n                <line>For the world's more full of weeping than you</line>\n                <line>can understand.</line>\n            </stanza>\n            <stanza>\n                <line>Where the wandering water gushes</line>\n                <line>From the hills above Glen-Car,</line>\n                <line>In pools among the rushes</line>\n                <line>That scarce could bathe a star,</line>\n                <line>We seek for slumbering trout</line>\n                <line>And whispering in their ears</line>\n                <line>Give them unquiet dreams;</line>\n                <line>Leaning softly out</line>\n                <line>From ferns that drop their tears</line>\n                <line>Over the young streams.</line>\n                <line>Come away, O human child!</line>\n                <line>To the waters and the wild</line>\n                <line>With a faery, hand in hand,</line>\n                <line>For the world's more full of weeping than you</line>\n                <line>can understand.</line>\n            </stanza>\n            <stanza>\n                <line>Away with us he's going,</line>\n                <line>The solemn-eyed:</line>\n                <line>He'll hear no more the lowing</line>\n                <line>Of the calves on the warm hillside</line>\n                <line>Or the kettle on the hob</line>\n                <line>Sing peace into his breast,</line>\n                <line>Or see the brown mice bob</line>\n                <line>Round and round the oatmeal-chest.</line>\n                <line>For he comes, the human child,</line>\n                <line>To the waters and the wild</line>\n                <line>With a faery, hand in hand,</line>\n                <line>From a world more full of weeping than he</line>\n                <line>can understand.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>When you are old</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>When you are old and grey and full of sleep,</line>\n                <line>And nodding by the fire, take down this book,</line>\n                <line>And slowly read, and dream of the soft look</line>\n                <line>Your eyes had once, and of their shadows deep;</line>\n            </stanza>\n            <stanza>\n                <line>How many loved your moments of glad grace,</line>\n                <line>And loved your beauty with love false or true,</line>\n                <line>But one man loved the pilgrim soul in you,</line>\n                <line>And loved the sorrows of your changing face;</line>\n            </stanza>\n            <stanza>\n                <line>And bending down beside the glowing bars,</line>\n                <line>Murmur, a little sadly, how Love fled</line>\n                <line>And paced upon the mountains overhead</line>\n                <line>And hid his face amid a crowd of stars.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Fiddler of Dooney</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>When I play on my fiddle in Dooney</line>\n                <line>Folk dance like a wave of the sea</line>\n                <line>My cousin is priest in Kilvarnet</line>\n                <line>My brother in Moharabuiee</line>\n            </stanza>\n            <stanza>\n                <line>I passed my brother and cousin:</line>\n                <line>They read in their books of prayer;</line>\n                <line>I read in my book of songs</line>\n                <line>I bought at the Sligo fair.</line>\n            </stanza>\n            <stanza>\n                <line>When we come at the end of time,</line>\n                <line>To Peter sitting in state,</line>\n                <line>He will smile on the three old spirits,</line>\n                <line>But call me first through the gate;</line>\n            </stanza>\n            <stanza>\n                <line>For the good are always the merry,</line>\n                <line>Save by an evil chance,</line>\n                <line>And the merry love the fiddle</line>\n                <line>And the merry love to dance:</line>\n            </stanza>\n            <stanza>\n                <line>And when the folk there spy me,</line>\n                <line>They will all come up to me,</line>\n                <line>With <sq>Here is the fiddler of Dooney!</sq></line>\n                <line>And dance like a wave of the sea.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Swift's Epitaph</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>Swift has sailed into his rest;</line>\n                <line>Savage indignation there</line>\n                <line>Cannot lacerate his breast.</line>\n                <line>Imitate him if you dare,</line>\n                <line>World-besotted traveller; he</line>\n                <line>Served human liberty.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Wild Swans At Coole</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>The trees are in their autumn beauty,</line>\n                <line>The woodland paths are dry,</line>\n                <line>Under the October twilight the water</line>\n                <line>Mirrors a still sky;</line>\n                <line>Upon the brimming water among the stones</line>\n                <line>Are nine-and-fifty swans.</line>\n            </stanza>\n            <stanza>\n                <line>The nineteenth autumn has come upon me</line>\n                <line>Since I first made my count;</line>\n                <line>I saw, before I had well finished,</line>\n                <line>All suddenly mount</line>\n                <line>And scatter wheeling in great broken rings</line>\n                <line>Upon their clamorous wings.</line>\n            </stanza>\n            <stanza>\n                <line>I have looked upon those brilliant creatures,</line>\n                <line>And now my heart is sore.</line>\n                <line>All's changed since I, hearing at twilight,</line>\n                <line>The first time on this shore,</line>\n                <line>The bell-beat of their wings above my head,</line>\n                <line>Trod with a lighter tread.</line>\n            </stanza>\n            <stanza>\n                <line>Unwearied still, lover by lover,</line>\n                <line>They paddle in the cold</line>\n                <line>Companionable streams or climb the air;</line>\n                <line>Their hearts have not grown old;</line>\n                <line>Passion or conquest, wander where they will,</line>\n                <line>attend upon them still.</line>\n            </stanza>\n            <stanza>\n                <line>But now they drift on the still water,</line>\n                <line>Mysterious, beautiful;</line>\n                <line>Among what rushes will they build,</line>\n                <line>By what lake's edge or pool</line>\n                <line>Delight men's eyes when I awake some day</line>\n                <line>To find they have flown away?</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>To A Friend Whose Work Has Come To Nothing</title>\n            <author>William Butler Yeats</author>\n            <stanza>\n                <line>Now all the truth is out,</line>\n                <line>Be secret and take defeat</line>\n                <line>From any brazen throat,</line>\n                <line>For how can you compete,</line>\n                <line>Being honour bred, with one</line>\n                <line>Who, were it proved he lies,</line>\n                <line>Were neither shamed in his own</line>\n                <line>Nor in his neighbours' eyes?</line>\n                <line>Bred to a harder thing</line>\n                <line>Than Triumph, turn away</line>\n                <line>And like a laughing string</line>\n                <line>Whereon mad fingers play</line>\n                <line>Amid a place of stone,</line>\n                <line>Be secret and exult,</line>\n                <line>Because of all things known</line>\n                <line>That is most difficult.</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"frost\">\n        <title>Robert Frost</title>\n        <poem>\n            <title>Fire and Ice</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>Some say the world will end in fire,</line>\n                <line>Some say in ice.</line>\n                <line>From what I've tasted of desire</line>\n                <line>I hold with those who favor fire.</line>\n                <line>But if it had to perish twice,</line>\n                <line>I think I know enough of hate</line>\n                <line>To say that for destruction ice</line>\n                <line>Is also great</line>\n                <line>And would suffice.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Oven Bird</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>There is a singer everyone has heard,</line>\n                <line>Loud, a mid-summer and a mid-wood bird,</line>\n                <line>Who makes the solid tree trunks sound again.</line>\n                <line>He says that leaves are old and that for flowers</line>\n                <line>Mid-summer is to spring as one to ten.</line>\n                <line>He says the early petal-fall is past</line>\n                <line>When pear and cherry bloom went down in showers</line>\n                <line>On sunny days a moment overcast;</line>\n                <line>And comes that other fall we name the fall.</line>\n                <line>He says the highway dust is over all.</line>\n                <line>The bird would cease and be as other birds</line>\n                <line>But that he knows in singing not to sing.</line>\n                <line>The question that he frames in all but words</line>\n                <line>Is what to make of a diminished thing.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Bond and Free</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>Love has earth to which she clings</line>\n                <line>With hills and circling arms about</line>\n                <line>Wall within wall to shut fear out.</line>\n                <line>But Thought has need of no such things,</line>\n                <line>For Thought has a pair of dauntless wings.</line>\n            </stanza>\n            <stanza>\n                <line>On snow and sand and turf, I see</line>\n                <line>Where Love has left a printed trace</line>\n                <line>With straining in the world's embrace.</line>\n                <line>And such is Love and glad to be.</line>\n                <line>But Thought has shaken his ankles free.</line>\n            </stanza>\n            <stanza>\n                <line>Thought cleaves the interstellar gloom</line>\n                <line>And sits in Sirius' disc all night,</line>\n                <line>Till day makes him retrace his flight,</line>\n                <line>With smell of burning on every plume,</line>\n                <line>Back past the sun to an earthly room.</line>\n            </stanza>\n            <stanza>\n                <line>His gains in heaven are what they are.</line>\n                <line>Yet some say Love by being thrall</line>\n                <line>And simply staying possesses all</line>\n                <line>In several beauty that Thought fares far</line>\n                <line>To find fused in another star.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Putting in the Seed</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>You come to fetch me from my work tonight</line>\n                <line>When supper's on the table, and we'll see</line>\n                <line>If I can leave off burying the white</line>\n                <line>Soft petals fallen from the apple tree.</line>\n                <line>(Soft petals, yes, but not so barren quite,</line>\n                <line>Mingled with these, smooth bean and wrinkled pea;)</line>\n                <line>And go along with you ere you lose sight</line>\n                <line>Of what you came for and become like me,</line>\n                <line>Slave to a springtime passion for the earth.</line>\n                <line>How Love burns through the Putting in the Seed</line>\n                <line>On through the watching for that early birth</line>\n                <line>When, just as the soil tarnishes with weed,</line>\n                <line>The sturdy seedling with arched body comes</line>\n                <line>Shouldering its way and shedding the earth crumbs.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Road Not Taken</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>Two roads diverged in a yellow wood,</line>\n                <line>And sorry I could not travel both</line>\n                <line>And be one traveler, long I stood</line>\n                <line>And looked down one as far as I could</line>\n                <line>To where it bent in the undergrowth;</line>\n            </stanza>\n            <stanza>\n                <line>Then took the other, as just as fair,</line>\n                <line>And having perhaps the better claim,</line>\n                <line>Because it was grassy and wanted wear;</line>\n                <line>Though as for that the passing there</line>\n                <line>Had worn them really about the same,</line>\n            </stanza>\n            <stanza>\n                <line>And both that morning equally lay</line>\n                <line>In leaves no step had trodden black.</line>\n                <line>Oh, I kept the first for another day!</line>\n                <line>Yet knowing how way leads on to way,</line>\n                <line>I doubted if I should ever come back.</line>\n            </stanza>\n            <stanza>\n                <line>I shall be telling this with a sigh</line>\n                <line>Somewhere ages and ages hence:</line>\n                <line>Two roads diverged in a wood, and I<mdash/></line>\n                <line>I took the one less traveled by,</line>\n                <line>And that has made all the difference.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Need of Being Versed in Country Things</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>The house had gone to bring again</line>\n                <line>To the midnight sky a sunset glow.</line>\n                <line>Now the chimney was all of the house that stood,</line>\n                <line>Like a pistil after the petals go.</line>\n            </stanza>\n            <stanza>\n                <line>The barn opposed across the way,</line>\n                <line>That would have joined the house in flame</line>\n                <line>Had it been the will of the wind, was left</line>\n                <line>To bear forsaken the place's name.</line>\n            </stanza>\n            <stanza>\n                <line>No more it opened with all one end</line>\n                <line>For teams that came by the stony road</line>\n                <line>To drum on the floor with scurrying hoofs</line>\n                <line>And brush the mow with the summer load.</line>\n            </stanza>\n            <stanza>\n                <line>The birds that came to it through the air</line>\n                <line>At broken windows flew out and in,</line>\n                <line>Their murmur more like the sigh we sigh</line>\n                <line>From too much dwelling on what has been.</line>\n            </stanza>\n            <stanza>\n                <line>Yet for them the lilac renewed its leaf,</line>\n                <line>And the aged elm, though touched with fire;</line>\n                <line>And the dry pump flung up an awkward arm;</line>\n                <line>And the fence post carried a strand of wire.</line>\n            </stanza>\n            <stanza>\n                <line>For them there was really nothing sad.</line>\n                <line>But though they rejoiced in the nest they kept,</line>\n                <line>One had to be versed in country things</line>\n                <line>Not to believe the phoebes wept.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Mending Wall</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>Something there is that doesn't love a wall,</line>\n                <line>That sends the frozen-ground-swell under it,</line>\n                <line>And spills the upper boulders in the sun;</line>\n                <line>And makes gaps even two can pass abreast.</line>\n                <line>The work of hunters is another thing:</line>\n                <line>I have come after them and made repair</line>\n                <line>Where they have left not one stone on a stone,</line>\n                <line>But they would have the rabbit out of hiding,</line>\n                <line>To please the yelping dogs. The gaps I mean,</line>\n                <line>No one has seen them made or heard them made,</line>\n                <line>But at spring mending-time we find them there.</line>\n                <line>I let my neighbor know beyond the hill;</line>\n                <line>And on a day we meet to walk the line</line>\n                <line>And set the wall between us once again.</line>\n                <line>We keep the wall between us as we go.</line>\n                <line>To each the boulders that have fallen to each.</line>\n                <line>And some are loaves and some so nearly balls</line>\n                <line>We have to use a spell to make them balance:</line>\n                <line><q/>Stay where you are until our backs are turned!<q/></line>\n                <line>We wear our fingers rough with handling them.</line>\n                <line>Oh, just another kind of outdoor game,</line>\n                <line>One on a side. It comes to little more:</line>\n                <line>There where it is we do not need the wall:</line>\n                <line>He is all pine and I am apple orchard.</line>\n                <line>My apple trees will never get across</line>\n                <line>And eat the cones under his pines, I tell him.</line>\n                <line>He only says, <q/>Good fences make good neighbors.<q/></line>\n                <line>Spring is the mischief in me, and I wonder</line>\n                <line>If I could put a notion in his head:</line>\n                <line><lq/>Why do they make good neighbors? Isn't it</line>\n                <line>Where there are cows? But here there are no cows.</line>\n                <line>Before I built a wall I'd ask to know</line>\n                <line>What I was walling in or walling out,</line>\n                <line>And to whom I was like to give offense.</line>\n                <line>Something there is that doesn't love a wall,</line>\n                <line>That wants it down.<rq/> I could say <q/>Elves<q/> to him,</line>\n                <line>But it's not elves exactly, and I'd rather</line>\n                <line>He said it for himself. I see him there</line>\n                <line>Bringing a stone grasped firmly by the top</line>\n                <line>In each hand, like an old-stone savage armed.</line>\n                <line>He moves in darkness as it seems to me,</line>\n                <line>Not of woods only and the shade of trees.</line>\n                <line>He will not go behind his father's saying,</line>\n                <line>And he likes having thought of it so well</line>\n                <line>He says again, <q/>Good fences make good neighbors.<q/></line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>After Apple-picking</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>My long two-pointed ladder's sticking through a tree</line>\n                <line>Toward heaven still,</line>\n                <line>And there's a barrel that I didn't fill</line>\n                <line>Beside it, and there may be two or three</line>\n                <line>Apples I didn't pick upon some bough.</line>\n                <line>But I am done with apple-picking now.</line>\n                <line>Essence of winter sleep is on the night,</line>\n                <line>The scent of apples: I am drowsing off.</line>\n                <line>I cannot rub the strangeness from my sight</line>\n                <line>I got from looking through a pane of glass</line>\n                <line>I skimmed this morning from the drinking trough</line>\n                <line>And held against the world of hoary grass.</line>\n                <line>It melted, and I let it fall and break.</line>\n                <line>But I was well</line>\n                <line>Upon my way to sleep before it fell,</line>\n                <line>And I could tell</line>\n                <line>What form my dreaming was about to take.</line>\n                <line>Magnified apples appear and disappear,</line>\n                <line>Stem end and blossom end,</line>\n                <line>And every fleck of russet showing clear.</line>\n                <line>My instep arch not only keeps the ache,</line>\n                <line>It keeps the pressure of a ladder-round.</line>\n                <line>I feel the ladder sway as the boughs bend.</line>\n                <line>And I keep hearing from the cellar bin</line>\n                <line>The rumbling sound</line>\n                <line>Of load on load of apples coming in.</line>\n                <line>For I have had too much</line>\n                <line>Of apple-picking: I am overtired</line>\n                <line>Of the great harvest I myself desired.</line>\n                <line>There were ten thousand thousand fruit to touch,</line>\n                <line>Cherish in hand, lift down, and not let fall.</line>\n                <line>For all</line>\n                <line>That struck the earth,</line>\n                <line>No matter if not bruised or spiked with stubble,</line>\n                <line>Went surely to the cider-apple heap</line>\n                <line>As of no worth.</line>\n                <line>One can see what will trouble</line>\n                <line>This sleep of mine, whatever sleep it is.</line>\n                <line>Were he not gone,</line>\n                <line>The woodchuck could say whether it's like his</line>\n                <line>Long sleep, as I describe its coming on,</line>\n                <line>Or just some human sleep.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Wood-pile</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>Out walking in the frozen swamp one gray day</line>\n                <line>I paused and said, <lq/>I will turn back from here.</line>\n                <line>No, I will go on farther<mdash/>and we shall see.<rq/></line>\n                <line>The hard snow held me, save where now and then</line>\n                <line>One foot went down. The view was all in lines</line>\n                <line>Straight up and down of tall slim trees</line>\n                <line>Too much alike to mark or name a place by</line>\n                <line>So as to say for certain I was here</line>\n                <line>Or somewhere else: I was just far from home.</line>\n                <line>A small bird flew before me. He was careful</line>\n                <line>To put a tree between us when he lighted,</line>\n                <line>And say no word to tell me who he was</line>\n                <line>Who was so foolish as to think what he thought.</line>\n                <line>He thought that I was after him for a feather<mdash/></line>\n                <line>The white one in his tail; like one who takes</line>\n                <line>Everything said as personal to himself.</line>\n                <line>One flight out sideways would have undeceived him.</line>\n                <line>And then there was a pile of wood for which</line>\n                <line>I forgot him and let his little fear</line>\n                <line>Carry him off the way I might have gone,</line>\n                <line>Without so much as wishing him good-night.</line>\n                <line>He went behind it to make his last stand.</line>\n                <line>It was a cord of maple, cut and split</line>\n                <line>And piled and measured, four by four by eight.</line>\n                <line>And not another like it could I see.</line>\n                <line>No runner tracks in this year's snow looped near it.</line>\n                <line>And it was older sure than this year's cutting,</line>\n                <line>Or even last year's or the year's before.</line>\n                <line>The wood was gray and the bark warping off it</line>\n                <line>And the pile somewhat sunken. Clematis</line>\n                <line>Had wound strings round and round it like a bundle.</line>\n                <line>What held it though on one side was a tree</line>\n                <line>Still growing, and on one a stake and prop,</line>\n                <line>These latter about to fall. I thought that only</line>\n                <line>Someone who lived in turning to fresh tasks</line>\n                <line>Could so forget his handiwork on which</line>\n                <line>He spent himself, the labor of his axe,</line>\n                <line>And leave it there far from a useful fireplace</line>\n                <line>To warm the frozen swamp as best it could</line>\n                <line>With the slow smokeless burning of decay.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Exposed Nest</title>\n            <author>Robert Frost</author>\n            <stanza>\n                <line>You were forever finding some new play.</line>\n                <line>So when I saw you down on hands and knees</line>\n                <line>In the meadow, busy with the new-cut hay,</line>\n                <line>Trying, I thought, to set it up on end,</line>\n                <line>I went to show you how to make it stay,</line>\n                <line>If that was your idea, against the breeze,</line>\n                <line>And, if you asked me, even help pretend</line>\n                <line>To make it root again and grow afresh.</line>\n                <line>But 'twas no make-believe with you to-day,</line>\n                <line>Nor was the grass itself your real concern,</line>\n                <line>Though I found your hand full of wilted fern,</line>\n                <line>Steel-bright June-grass, and blackening heads of clover.</line>\n                <line>'Twas a nest full of young birds on the ground</line>\n                <line>The cutter-bar had just gone champing over</line>\n                <line>(Miraculously without tasting flesh)</line>\n                <line>And left defenseless to the heat and light.</line>\n                <line>You wanted to restore them to their right</line>\n                <line>Of something interposed between their sight</line>\n                <line>And too much world at once-could means be found.</line>\n                <line>The way the nest-full every time we stirred</line>\n                <line>Stood up to us as to a mother-bird</line>\n                <line>Whose coming home has been too long deferred,</line>\n                <line>Made me ask would the mother-bird return</line>\n                <line>And care for them in such a change of scene</line>\n                <line>And might our meddling make her more afraid.</line>\n                <line>That was a thing we could not wait to learn.</line>\n                <line>We saw the risk we took in doing good,</line>\n                <line>But dared not spare to do the best we could</line>\n                <line>Though harm should come of it; so built the screen</line>\n                <line>You had begun, and gave them back their shade.</line>\n                <line>All this to prove we cared. Why is there then</line>\n                <line>No more to tell? We turned to other things.</line>\n                <line>I haven't any memory-have you?</line>\n                <line>Of ever coming to the place again</line>\n                <line>To see if the birds lived the first night through,</line>\n                <line>And so at last to learn to use their wings.</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"whitman\">\n        <title>Walt Whitman</title>\n        <poem>\n            <title>O Captain! My Captain</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>O Captain! my Captain! our fearful trip is done,</line>\n                <line>The ship has weather'd every rack, the prize we sought is won,</line>\n                <line>The port is near, the bells I hear, the people all exulting,</line>\n                <line>While follow eyes the steady keel, the vessel grim and daring;</line>\n                <line>But O heart! heart! heart!</line>\n                <line>O the bleeding drops of red,</line>\n                <line>Where on the deck my Captain lies,</line>\n                <line>Fallen cold and dead.</line>\n            </stanza>\n            <stanza>\n                <line>O Captain! my Captain! rise up and hear the bells;</line>\n                <line>Rise up<mdash/>for you the flag is flung<mdash/>for you the bugle trills,</line>\n                <line>For you bouquets and ribbon'd wreaths<mdash/>for you the shores a-crowding,</line>\n                <line>For you they call, the swaying mass, their eager faces turning;</line>\n                <line>Here Captain! dear father!</line>\n                <line>This arm beneath your head!</line>\n                <line>It is some dream that on the deck,</line>\n                <line>You've fallen cold and dead.</line>\n            </stanza>\n            <stanza>\n                <line>My Captain does not answer, his lips are pale and still,</line>\n                <line>My father does not feel my arm, he has no pulse nor will,</line>\n                <line>The ship is anchor'd safe and sound, its voyage closed and done,</line>\n                <line>From fearful trip the victor ship comes in with object won;</line>\n                <line>Exult O shores, and ring O bells!</line>\n                <line>But I with mournful tread,</line>\n                <line>Walk the deck my Captain lies,</line>\n                <line>Fallen cold and dead.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>I saw in Lousiana a live oak growing</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>I saw in Louisiana a live-oak growing,</line>\n                <line>All alone stood it and the moss hung down from the branches,</line>\n                <line>Without any companion it grew there uttering joyous leaves of dark green,</line>\n                <line>And its look, rude, unbending, lusty, made me think of myself,</line>\n                <line>But I wonder'd how it could utter joyous leaves standing alone there without its friend near, for I knew I could not,</line>\n                <line>And I broke off a twig with a certain number of leaves upon it, and twined around it a little moss,</line>\n                <line>And brought it away, and I have placed it in sight in my room,</line>\n                <line>It is not needed to remind me as of my own dear friends,</line>\n                <line>(For I believe lately I think of little else than of them,)</line>\n                <line>Yet it remains to me a curious token, it makes me think of manly love;</line>\n                <line>For all that, and though the live-oak glistens there in Louisiana solitary in a wide flat space,</line>\n                <line>Uttering joyous leaves all its life without a friend a lover near,</line>\n                <line>I know very well I could not.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Prairie Grass Dividing</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>The prairie-grass dividing, its special odor breathing,</line>\n                <line>I demand of it the spiritual corresponding,</line>\n                <line>Demand the most copious and close companionship of men,</line>\n                <line>Demand the blades to rise of words, acts, beings,</line>\n                <line>Those of the open atmosphere, coarse, sunlit, fresh, nutritious,</line>\n                <line>Those that go their own gait, erect, stepping with freedom and command, leading not following,</line>\n                <line>Those with a never-quell'd audacity, those with sweet and lusty flesh clear of taint,</line>\n                <line>Those that look carelessly in the faces of Presidents and governors, as to say Who are you? Those of earth-born passion, simple, never constrain'd, never obedient,</line>\n                <line>Those of inland America.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>A Farm Picture</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>Through the ample open door of the peaceful country barn,</line>\n                <line>A sunlit pasture field with cattle and horses feeding,</line>\n                <line>And haze and vista, and the far horizon fading away.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>1861</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>Arm'd year-year of the struggle,</line>\n                <line>No dainty rhymes or sentimental love verses for you terrible year,</line>\n                <line>Not you as some pale poetling seated at a desk lisping cadenzas piano,</line>\n                <line>But as a strong man erect, clothed in blue clothes, advancing, carrying a rifle on your shoulder,</line>\n                <line>With well-gristled body and sunburnt face and hands, with a knife in the belt at your side,</line>\n                <line>As I heard you shouting loud, your sonorous voice ringing across the continent,</line>\n                <line>Your masculine voice O year, as rising amid the great cities,</line>\n                <line>Amid the men of Manhattan I saw you as one of the workmen, the dwellers in Manhattan,</line>\n                <line>Or with large steps crossing the prairies out of Illinois and Indiana,</line>\n                <line>Rapidly crossing the West with springy gait and descending the Alleghanies,</line>\n                <line>Or down from the great lakes or in Pennsylvania, or on deck along the Ohio river,</line>\n                <line>Or southward along the Tennessee or Cumberland rivers, or at Chattanooga on the mountain top,</line>\n                <line>Saw I your gait and saw I your sinewy limbs clothed in blue, bearing weapons, robust year,</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Old Ireland</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>Far hence amid an isle of wondrous beauty,</line>\n                <line>Crouching over a grave an ancient sorrowful mother,</line>\n                <line>Once a queen, now lean and tatter'd seated on the ground,</line>\n                <line>Her old white hair drooping dishevel'd round her shoulders,</line>\n                <line>At her feet fallen an unused royal harp,</line>\n                <line>Long silent, she too long silent, mourning her shrouded hope and heir,</line>\n                <line>Of all the earth her heart most full of sorrow because most full of love.</line>\n            </stanza>\n            <stanza>\n                <line>Yet a word ancient mother,</line>\n                <line>You need crouch there no longer on the cold ground with forehead between your knees,</line>\n                <line>O you need not sit there veil'd in your old white hair so dishevel'd,</line>\n                <line>For know you the one you mourn is not in that grave,</line>\n                <line>It was an illusion, the son you love was not really dead,</line>\n                <line>The Lord is not dead, he is risen again young and strong in another country,</line>\n                <line>Even while you wept there by your fallen harp by the grave,</line>\n                <line>What you wept for was translated, pass'd from the grave,</line>\n                <line>The winds favor'd and the sea sail'd it,</line>\n                <line>And now with rosy and new blood,</line>\n                <line>Moves to-day in a new country.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Bivouac on a Mountain side</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>I see before me now a traveling army halting,</line>\n                <line>Below a fertile valley spread, with barns and the orchards of summer,</line>\n                <line>Behind, the terraced sides of a mountain, abrupt, in places rising high,</line>\n                <line>Broken, with rocks, with clinging cedars, with tall shapes dingily seen,</line>\n                <line>The numerous camp-fires scatter'd near and far, some away up on the mountain,</line>\n                <line>The shadowy forms of men and horses, looming, large-sized, flickering,</line>\n                <line>And over all the sky—the sky! far, far out of reach, studded, breaking out, the eternal stars.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>City of Orgies</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>City of orgies, walks and joys,</line>\n                <line>City whom that I have lived and sung in your midst will one day make</line>\n                <line>Not the pageants of you, not your shifting tableaus, your spectacles, repay me,</line>\n                <line>Not the interminable rows of your houses, nor the ships at the wharves,</line>\n                <line>Nor the processions in the streets, nor the bright windows with goods in them,</line>\n                <line>Nor to converse with learn'd persons, or bear my share in the soiree or feast;</line>\n                <line>Not those, but as I pass O Manhattan, your frequent and swift flash of eyes offering me love,</line>\n                <line>Offering response to my own<mdash/>these repay me,</line>\n                <line>Lovers, continual lovers, only repay me.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Out of the Rolling Ocean the Crowd</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>Out of the rolling ocean, the crowd, came a drop gently to me,</line>\n                <line>Whispering, I love you, before long I die,</line>\n                <line>I have travel'd a long way, merely to look on you, to touch you,</line>\n                <line>For I could not die till I once look'd on you,</line>\n                <line>For I fear'd I might afterward lose you.</line>\n            </stanza>\n            <stanza>\n                <line>Now we have met, we have look'd, we are safe,</line>\n                <line>Return in peace to the ocean, my love,</line>\n                <line>I too am part of that ocean, my love,-we are not so much separated,</line>\n                <line>Behold the great rondure<mdash/>the cohesion of all, how perfect!</line>\n                <line>But as for me, for you, the irresistible sea is to separate us,</line>\n                <line>As for an hour carrying us diverse-yet cannot carry us diverse forever;</line>\n                <line>Be not impatient<mdash/>a little space<mdash/>know you I salute the air, the ocean and the land,</line>\n                <line>Every day at sundown for your dear sake my love.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Shut Not Your Doors</title>\n            <author>Walt Whitman</author>\n            <stanza>\n                <line>Shut not your doors to me, proud libraries,</line>\n                <line>For that which was lacking on all your well-fill'd shelves, yet needed most, I bring</line>\n                <line>Forth from the war emerging, a book I have made,</line>\n                <line>The words of my book nothing, the drift of it every thing,</line>\n                <line>A book separate, not link'd with the rest nor felt by the intellect,</line>\n                <line>But you ye untold latencies will thrill to every page.</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"wilde\">\n        <title>Oscar Wilde</title>\n        <poem>\n            <title>Magdalen Walks</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>The little white clouds are racing over the sky,</line>\n                <line indent=\"1\">And the fields are strewn with the gold of the flower of March,</line>\n                <line indent=\"1\">The daffodil breaks under foot, and the tasselled larch</line>\n                <line>Sways and swings as the thrush goes hurrying by.</line>\n            </stanza>\n            <stanza>\n                <line>A delicate odour is borne on the wings of the morning breeze,</line>\n                <line indent=\"1\">The odour of deep wet grass, and of brown new-furrowed earth,</line>\n                <line indent=\"1\">The birds are singing for joy of the Spring's glad birth,</line>\n                <line>Hopping from branch to branch on the rocking trees.</line>\n            </stanza>\n            <stanza>\n                <line>And all the woods are alive with the murmur and sound of Spring,</line>\n                <line indent=\"1\">And the rose-bud breaks into pink on the climbing briar,</line>\n                <line indent=\"1\">And the crocus-bed is a quivering moon of fire</line>\n                <line>Girdled round with the belt of an amethyst ring.</line>\n            </stanza>\n            <stanza>\n                <line>And the plane to the pine-tree is whispering some tale of love</line>\n                <line indent=\"1\">Till it rustles with laughter and tosses its mantle of green,</line>\n                <line indent=\"1\">And the gloom of the wych-elm's hollow is lit with the iris sheen</line>\n                <line>Of the burnished rainbow throat and the silver breast of a dove.</line>\n            </stanza>\n            <stanza>\n                <line>See! the lark starts up from his bed in the meadow there,</line>\n                <line indent=\"1\">Breaking the gossamer threads and the nets of dew,</line>\n                <line indent=\"1\">And flashing adown the river, a flame of blue!</line>\n                <line>The kingfisher flies like an arrow, and wounds the air.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Sonnet to Liberty</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>Not that I love thy children, whose dull eyes</line>\n                <line>See nothing save their own unlovely woe,</line>\n                <line>Whose minds know nothing, nothing care to know,</line>\n                <line>But that the roar of thy Democracies,</line>\n                <line>Thy reigns of Terror, thy great Anarchies,</line>\n                <line>Mirror my wildest passions like the sea,</line>\n                <line>And give my rage a brother! Liberty!</line>\n                <line>For this sake only do thy dissonant cries</line>\n                <line>Delight my discreet soul, else might all kings</line>\n                <line>By bloody knout or treacherous cannonades</line>\n                <line>Rob nations of their rights inviolate</line>\n                <line>And I remain unmoved-and yet, and yet,</line>\n                <line>These Christs that die upon the barricades,</line>\n                <line>God knows it I am with them, in some things.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Grave of Shelley</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>Like burnt-out torches by a sick man's bed</line>\n                <line>Gaunt cypress-trees stand round the sun-bleached stone;</line>\n                <line>Here doth the little night-owl make her throne,</line>\n                <line>And the slight lizard show his jewelled head.</line>\n                <line>And, where the chaliced poppies flame to red,</line>\n                <line>In the still chamber of yon pyramid</line>\n                <line>Surely some Old-World Sphinx lurks darkly hid,</line>\n                <line>Grim warder of this pleasaunce of the dead.</line>\n            </stanza>\n            <stanza>\n                <line>Ah! sweet indeed to rest within the womb</line>\n                <line>Of Earth, great mother of eternal sleep,</line>\n                <line>But sweeter far for thee a restless tomb</line>\n                <line>In the blue cavern of an echoing deep,</line>\n                <line>Or where the tall ships founder in the gloom</line>\n                <line>Against the rocks of some wave-shattered steep</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Grave of Keats</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>Rid of the world's injustice, and his pain,</line>\n                <line indent=\"1\">He rests at last beneath God's veil of blue:</line>\n                <line indent=\"1\">Taken from life when life and love were new</line>\n                <line>The youngest of the martyrs here is lain,</line>\n                <line>Fair as Sebastian, and as early slain.</line>\n                <line indent=\"1\">No cypress shades his grave, no funeral yew,</line>\n                <line indent=\"1\">But gentle violets weeping with the dew</line>\n                <line>Weave on his bones an ever-blossoming chain.</line>\n                <line>O proudest heart that broke for misery!</line>\n                <line indent=\"1\">O sweetest lips since those of Mitylene!</line>\n                <line indent=\"1\">O poet-painter of our English Land!</line>\n                <line>Thy name was writ in water<mdash/>it shall stand:</line>\n                <line indent=\"1\">And tears like mine will keep thy memory green,</line>\n                <line indent=\"1\">As Isabella did her Basil-tree.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>A Vision</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>Two crownèd Kings, and One that stood alone</line>\n                <line indent=\"1\">With no green weight of laurels round his head,</line>\n                <line indent=\"1\">But with sad eyes as one uncomforted,</line>\n                <line>And wearied with man's never-ceasing moan</line>\n                <line>For sins no bleating victim can atone,</line>\n                <line indent=\"1\">And sweet long lips with tears and kisses fed.</line>\n                <line indent=\"1\">Girt was he in a garment black and red,</line>\n                <line>And at his feet I marked a broken stone</line>\n                <line indent=\"1\">Which sent up lilies, dove-like, to his knees.</line>\n                <line indent=\"1\">Now at their sight, my heart being lit with flame</line>\n                <line>I cried to Beatricé, <lq/>Who are these?<rq/></line>\n                <line>And she made answer, knowing well each name,</line>\n                <line indent=\"1\"><lq/>Æschylos first, the second Sophokles,</line>\n                <line indent=\"1\">And last (wide stream of tears!) Euripides.<rq/></line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>By the Arno</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line indent=\"1\">The oleander on the wall</line>\n                <line indent=\"1\">Grows crimson in the dawning light,</line>\n                <line indent=\"1\">Though the grey shadows of the night</line>\n                <line>Lie yet on Florence like a pall.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">The dew is bright upon the hill,</line>\n                <line indent=\"1\">And bright the blossoms overhead,</line>\n                <line indent=\"1\">But ah! the grasshoppers have fled,</line>\n                <line>The little Attic song is still.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">Only the leaves are gently stirred</line>\n                <line indent=\"1\">By the soft breathing of the gale,</line>\n                <line indent=\"1\">And in the almond-scented vale</line>\n                <line>The lonely nightingale is heard.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">The day will make thee silent soon,</line>\n                <line indent=\"1\">O nightingale sing on for love!</line>\n                <line indent=\"1\">While yet upon the shadowy grove</line>\n                <line>Splinter the arrows of the moon.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">Before across the silent lawn</line>\n                <line indent=\"1\">In sea-green mist the morning steals,</line>\n                <line indent=\"1\">And to love's frightened eyes reveals</line>\n                <line>The long white fingers of the dawn</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">Fast climbing up the eastern sky</line>\n                <line indent=\"1\">To grasp and slay the shuddering night,</line>\n                <line indent=\"1\">All careless of my heart's delight,</line>\n                <line>Or if the nightingale should die.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>At Verona</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>How steep the stairs within Kings' houses are</line>\n                <line indent=\"1\">For exile-wearied feet as mine to tread,</line>\n                <line indent=\"1\">And O how salt and bitter is the bread</line>\n                <line>Which falls from this Hound's table, better far</line>\n                <line>That I had died in the red ways of war,</line>\n                <line indent=\"1\">Or that the gate of Florence bare my head,</line>\n                <line indent=\"1\">Than to live thus, by all things comraded</line>\n                <line>Which seek the essence of my soul to mar.</line>\n            </stanza>\n            <stanza>\n                <line><lq/>Curse God and die: what better hope than this?</line>\n                <line indent=\"1\">He hath forgotten thee in all the bliss</line>\n                <line indent=\"1\">Of his gold city, and eternal day<rq/></line>\n                <line>Nay peace: behind my prison's blinded bars</line>\n                <line indent=\"1\">I do possess what none can take away,</line>\n                <line indent=\"1\">My love, and all the glory of the stars.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Greece</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>The sea was sapphire coloured, and the sky</line>\n                <line>Burned like a heated opal through the air;</line>\n                <line>We hoisted sail; the wind was blowing fair</line>\n                <line>For the blue lands that to the eastward lie.</line>\n                <line>From the steep prow I marked with quickening eye</line>\n                <line>Zakynthos, every olive grove and creek,</line>\n                <line>Ithaca's cliff, Lycaon's snowy peak,</line>\n                <line>And all the flower-strewn hills of Arcady.</line>\n                <line>The flapping of the sail against the mast,</line>\n                <line>The ripple of the water on the side,</line>\n                <line>The ripple of girls' laughter at the stern,</line>\n                <line>The only sounds: when 'gan the West to burn,</line>\n                <line>And a red sun upon the seas to ride,</line>\n                <line>I stood upon the soil of Greece at last!</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Apologia</title>\n            <author>Oscar Wilde</author>\n            <stanza>\n                <line>Is it thy will that I should wax and wane,</line>\n                <line indent=\"1\">Barter my cloth of gold for hodden grey,</line>\n                <line>And at thy pleasure weave that web of pain</line>\n                <line indent=\"1\">Whose brightest threads are each a wasted day?</line>\n            </stanza>\n            <stanza>\n                <line>Is it thy will-Love that I love so well<mdash/></line>\n                <line indent=\"1\">That my Soul's House should be a tortured spot</line>\n                <line>Wherein, like evil paramours, must dwell</line>\n                <line indent=\"1\">The quenchless flame, the worm that dieth not?</line>\n            </stanza>\n            <stanza>\n                <line>Nay, if it be thy will I shall endure,</line>\n                <line indent=\"1\">And sell ambition at the common mart,</line>\n                <line>And let dull failure be my vestiture,</line>\n                <line indent=\"1\">And sorrow dig its grave within my heart.</line>\n            </stanza>\n            <stanza>\n                <line>Perchance it may be better so-at least</line>\n                <line indent=\"1\">I have not made my heart a heart of stone,</line>\n                <line>Nor starved my boyhood of its goodly feast,</line>\n                <line indent=\"1\">Nor walked where Beauty is a thing unknown.</line>\n            </stanza>\n            <stanza>\n                <line>Many a man hath done so; sought to fence</line>\n                <line indent=\"1\">In straitened bonds the soul that should be free,</line>\n                <line>Trodden the dusty road of common sense,</line>\n                <line indent=\"1\">While all the forest sang of liberty,</line>\n            </stanza>\n            <stanza>\n                <line>Not marking how the spotted hawk in flight</line>\n                <line indent=\"1\">Passed on wide pinion through the lofty air,</line>\n                <line>To where the steep untrodden mountain height</line>\n                <line indent=\"1\">Caught the last tresses of the Sun God's hair.</line>\n            </stanza>\n            <stanza>\n                <line>Or how the little flower he trod upon,</line>\n                <line indent=\"1\">The daisy, that white-feathered shield of gold,</line>\n                <line>Followed with wistful eyes the wandering sun</line>\n                <line indent=\"1\">Content if once its leaves were aureoled.</line>\n            </stanza>\n            <stanza>\n                <line>But surely it is something to have been</line>\n                <line indent=\"1\">The best belovèd for a little while,</line>\n                <line>To have walked hand in hand with Love, and seen</line>\n                <line indent=\"1\">His purple wings flit once across thy smile.</line>\n            </stanza>\n            <stanza>\n                <line>Ay! though the gorgèd asp of passion feed</line>\n                <line indent=\"1\">On my boy's heart, yet have I burst the bars,</line>\n                <line>Stood face to face with Beauty, known indeed</line>\n                <line indent=\"1\">The Love which moves the Sun and all the stars!</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"tennyson\">\n        <title>Alfred Tennyson</title>\n        <poem halign=\"center\">\n            <title>The Deserted house</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <title>1</title>\n                <line>Life and Thought have gone away</line>\n                <line>Side by side,</line>\n                <line>Leaving door and windows wide:</line>\n                <line>Careless tenants they!</line>\n            </stanza>\n            <stanza>\n                <title>2</title>\n                <line>All within is dark as night:</line>\n                <line>In the windows is no light;</line>\n                <line>And no murmur at the door,</line>\n                <line>So frequent on its hinge before.</line>\n            </stanza>\n            <stanza>\n                <title>3</title>\n                <line>Close the door, the shutters close,</line>\n                <line>Or thro' the windows we shall see</line>\n                <line>The nakedness and vacancy</line>\n                <line>Of the dark deserted house.</line>\n            </stanza>\n            <stanza>\n                <title>4</title>\n                <line>Come away: no more of mirth</line>\n                <line>Is here or merry-making sound.</line>\n                <line>The house was builded of the earth,</line>\n                <line>And shall fall again to ground.</line>\n            </stanza>\n            <stanza>\n                <title>5</title>\n                <line>Come away: for Life and Thought</line>\n                <line>Here no longer dwell;</line>\n                <line>But in a city glorious<mdash/></line>\n                <line>A great and distant city<mdash/>have bought</line>\n                <line>A mansion incorruptible.</line>\n                <line>Would they could have stayed with us!</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Ulysses</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <line>It little profits that an idle king,</line>\n                <line>By this still hearth, among these barren crags,</line>\n                <line>Match'd with an aged wife, I mete and dole</line>\n                <line>Unequal laws unto a savage race,</line>\n                <line>That hoard, and sleep, and feed, and know not me.</line>\n            </stanza>\n            <stanza>\n                <line>I cannot rest from travel: I will drink</line>\n                <line>Life to the lees; all times I have enjoy'd</line>\n                <line>Greatly, have suffer'd greatly, both with those</line>\n                <line>That loved me, and alone; on shore, and when</line>\n                <line>Thro' scudding drifts the rainy Hyades</line>\n                <line>Vext the dim sea: I am become a name;</line>\n                <line>For always roaming with a hungry heart</line>\n                <line>Much have I seen and known; cities of men</line>\n                <line>And manners, climates, councils, governments,</line>\n                <line>Myself not least, but honour'd of them all;</line>\n                <line>And drunk delight of battle with my peers,</line>\n                <line>Far on the ringing plains of windy Troy,</line>\n                <line>I am a part of all that I have met;</line>\n                <line>Yet all experience is an arch wherethro'</line>\n                <line>Gleams that untravell'd world, whose margin fades</line>\n                <line>For ever and for ever when I move.</line>\n                <line>How dull it is to pause, to make an end,</line>\n                <line>To rust unburnish'd, not to shine in use!</line>\n                <line>As tho' to breathe were life. Life piled on life</line>\n                <line>Were all too little, and of one to me</line>\n                <line>Little remains: but every hour is saved</line>\n                <line>From that eternal silence, something more,</line>\n                <line>A bringer of new things; and vile it were</line>\n                <line>For some three suns to store and hoard myself,</line>\n                <line>And this gray spirit yearning in desire</line>\n                <line>To follow knowledge like a sinking star,</line>\n                <line>Beyond the utmost bound of human thought.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">This is my son, mine own Telemachus,</line>\n                <line>To whom I leave the scepter and the isle<mdash/></line>\n                <line>Well-loved of me, discerning to fulfil</line>\n                <line>This labour, by slow prudence to make mild</line>\n                <line>A rugged people, and thro' soft degrees</line>\n                <line>Subdue them to the useful and the good.</line>\n                <line>Most blameless is he, centred in the sphere</line>\n                <line>Of common duties, decent not to fail</line>\n                <line>In offices of tenderness, and pay</line>\n                <line>Meet adoration to my household gods,</line>\n                <line>When I am gone. He works his work, I mine.</line>\n            </stanza>\n            <stanza>\n                <line indent=\"1\">There lies the port; the vessel puffs her sail:</line>\n                <line>There gloom the dark broad seas. My mariners,</line>\n                <line>Souls that have toil'd, and wrought, and thought with me</line>\n                <line>That ever with a frolic welcome took</line>\n                <line>The thunder and the sunshine, and opposed</line>\n                <line>Free hearts, free foreheads-you and I are old;</line>\n                <line>Old age hath yet his honour and his toil;</line>\n                <line>Death closes all: but something ere the end,</line>\n                <line>Some work of noble note, may yet be done,</line>\n                <line>Not unbecoming men that strove with Gods.</line>\n                <line>The lights begin to twinkle from the rocks:</line>\n                <line>The long day wanes: the slow moon climbs: the deep</line>\n                <line>Moans round with many voices. Come, my friends,</line>\n                <line>'Tis not too late to seek a newer world.</line>\n                <line>Push off, and sitting well in order smite</line>\n                <line>The sounding furrows; for my purpose holds</line>\n                <line>To sail beyond the sunset, and the baths</line>\n                <line>Of all the western stars, until I die.</line>\n                <line>It may be that the gulfs will wash us down:</line>\n                <line>It may be we shall touch the Happy Isles,</line>\n                <line>And see the great Achilles, whom we knew.</line>\n                <line>Tho' much is taken, much abides; and tho'</line>\n                <line>We are not now that strength which in old days</line>\n                <line>Moved earth and heaven; that which we are, we are;</line>\n                <line>One equal temper of heroic hearts,</line>\n                <line>Made weak by time and fate, but strong in will</line>\n                <line>To strive, to seek, to find, and not to yield.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Locksley Hall</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <line>Comrades, leave me here a little, while as yet 'tis early morn:</line>\n                <line>Leave me here, and when you want me, sound upon the bugle horn.</line>\n            </stanza>\n            <stanza>\n                <line>'Tis the place, and all around it, as of old, the curlews call,</line>\n                <line>Dreary gleams about the moorland flying over Locksley Hall;</line>\n            </stanza>\n            <stanza>\n                <line>Locksley Hall, that in the distance overlooks the sandy tracts,</line>\n                <line>And the hollow ocean-ridges roaring into cataracts.</line>\n            </stanza>\n            <stanza>\n                <line>Many a night from yonder ivied casement, ere I went to rest,</line>\n                <line>Did I look on great Orion sloping slowly to the West.</line>\n            </stanza>\n            <stanza>\n                <line>Many a night I saw the Pleiads, rising thro' the mellow shade,</line>\n                <line>Glitter like a swarm of fire-flies tangled in a silver braid.</line>\n            </stanza>\n            <stanza>\n                <line>Here about the beach I wander'd, nourishing a youth sublime</line>\n                <line>With the fairy tales of science, and the long result of Time;</line>\n            </stanza>\n            <stanza>\n                <line>When the centuries behind me like a fruitful land reposed;</line>\n                <line>When I clung to all the present for the promise that it closed:</line>\n            </stanza>\n            <stanza>\n                <line>When I dipt into the future far as human eye could see;</line>\n                <line>Saw the Vision of the world, and all the wonder that would be.<mdash/></line>\n            </stanza>\n            <stanza>\n                <line>In the Spring a fuller crimson comes upon the robin's breast;</line>\n                <line>In the Spring the wanton lapwing gets himself another crest;</line>\n            </stanza>\n            <stanza>\n                <line>In the Spring a livelier iris changes on the burnish'd dove;</line>\n                <line>In the Spring a young man's fancy lightly turns to thoughts of love.</line>\n            </stanza>\n            <stanza>\n                <line>Then her cheek was pale and thinner than should be for one so young,</line>\n                <line>And her eyes on all my motions with a mute observance hung.</line>\n            </stanza>\n            <stanza>\n                <line>And I said, <lsq/>My cousin Amy, speak, and speak the truth to me,</line>\n                <line>Trust me, cousin, all the current of my being sets to thee.<rsq/></line>\n            </stanza>\n            <stanza>\n                <line>On her pallid cheek and forehead came a colour and a light,</line>\n                <line>As I have seen the rosy red flushing in the northern night.</line>\n            </stanza>\n            <stanza>\n                <line>And she turn'd-her bosom shaken with a sudden storm of sighs<mdash/></line>\n                <line>All the spirit deeply dawning in the dark of hazel eyes<mdash/></line>\n            </stanza>\n            <stanza>\n                <line>Saying, <sq>I have hid my feelings, fearing they should do me wrong</sq>;</line>\n                <line>Saying, <sq>Dost thou love me, cousin?</sq> weeping, <sq>I have loved thee long</sq>.</line>\n            </stanza>\n            <stanza>\n                <line>Love took up the glass of Time, and turn'd it in his glowing hands;</line>\n                <line>Every moment, lightly shaken, ran itself in golden sands.</line>\n            </stanza>\n            <stanza>\n                <line>Love took up the harp of Life, and smote on all the chords with might;</line>\n                <line>Smote the chord of Self, that, trembling, pass'd in music out of sight.</line>\n            </stanza>\n            <stanza>\n                <line>Many a morning on the moorland did we hear the copses ring,</line>\n                <line>And her whisper throng'd my pulses with the fulness of the Spring.</line>\n            </stanza>\n            <stanza>\n                <line>Many an evening by the waters did we watch the stately ships,</line>\n                <line>And our spirits rush'd together at the touching of the lips.</line>\n            </stanza>\n            <stanza>\n                <line>O my cousin, shallow-hearted! O my Amy, mine no more!</line>\n                <line>O the dreary, dreary moorland! O the barren, barren shore!</line>\n            </stanza>\n            <stanza>\n                <line>Falser than all fancy fathoms, falser than all songs have sung,</line>\n                <line>Puppet to a father's threat, and servile to a shrewish tongue!</line>\n            </stanza>\n            <stanza>\n                <line>Is it well to wish thee happy?-having known me-to decline</line>\n                <line>On a range of lower feelings and a narrower heart than mine!</line>\n            </stanza>\n            <stanza>\n                <line>Yet it shall be: thou shalt lower to his level day by day,</line>\n                <line>What is fine within thee growing coarse to sympathise with clay.</line>\n            </stanza>\n            <stanza>\n                <line>As the husband is, the wife is: thou art mated with a clown,</line>\n                <line>And the grossness of his nature will have weight to drag thee down.</line>\n            </stanza>\n            <stanza>\n                <line>He will hold thee, when his passion shall have spent its novel force,</line>\n                <line>Something better than his dog, a little dearer than his horse.</line>\n            </stanza>\n            <stanza>\n                <line>What is this? his eyes are heavy: think not they are glazed with wine.</line>\n                <line>Go to him: it is thy duty: kiss him: take his hand in thine.</line>\n            </stanza>\n            <stanza>\n                <line>It may be my lord is weary, that his brain is overwrought:</line>\n                <line>Soothe him with thy finer fancies, touch him with thy lighter thought.</line>\n            </stanza>\n            <stanza>\n                <line>He will answer to the purpose, easy things to understand<mdash/></line>\n                <line>Better thou wert dead before me, tho' I slew thee with my hand!</line>\n            </stanza>\n            <stanza>\n                <line>Better thou and I were lying, hidden from the heart's disgrace,</line>\n                <line>Roll'd in one another's arms, and silent in a last embrace.</line>\n            </stanza>\n            <stanza>\n                <line>Cursed be the social wants that sin against the strength of youth!</line>\n                <line>Cursed be the social lies that warp us from the living truth!</line>\n            </stanza>\n            <stanza>\n                <line>Cursed be the sickly forms that err from honest Nature's rule!</line>\n                <line>Cursed be the gold that gilds the straiten'd forehead of the fool!</line>\n            </stanza>\n            <stanza>\n                <line>Well-'tis well that I should bluster!-Hadst thou less unworthy proved<mdash/></line>\n                <line>Would to God-for I had loved thee more than ever wife was loved.</line>\n            </stanza>\n            <stanza>\n                <line>Am I mad, that I should cherish that which bears but bitter fruit?</line>\n                <line>I will pluck it from my bosom, tho' my heart be at the root.</line>\n            </stanza>\n            <stanza>\n                <line>Never, tho' my mortal summers to such length of years should come</line>\n                <line>As the many-winter'd crow that leads the clanging rookery home.</line>\n            </stanza>\n            <stanza>\n                <line>Where is comfort? in division of the records of the mind?</line>\n                <line>Can I part her from herself, and love her, as I knew her, kind?</line>\n            </stanza>\n            <stanza>\n                <line>I remember one that perish'd: sweetly did she speak and move:</line>\n                <line>Such a one do I remember, whom to look at was to love.</line>\n            </stanza>\n            <stanza>\n                <line>Can I think of her as dead, and love her for the love she bore?</line>\n                <line>No-she never loved me truly: love is love for evermore.</line>\n            </stanza>\n            <stanza>\n                <line>Comfort? comfort scorn'd of devils! this is truth the poet sings,</line>\n                <line>That a sorrow's crown of sorrow is remembering happier things.</line>\n            </stanza>\n            <stanza>\n                <line>Drug thy memories, lest thou learn it, lest thy heart be put to proof,</line>\n                <line>In the dead unhappy night, and when the rain is on the roof.</line>\n            </stanza>\n            <stanza>\n                <line>Like a dog, he hunts in dreams, and thou art staring at the wall,</line>\n                <line>Where the dying night-lamp flickers, and the shadows rise and fall.</line>\n            </stanza>\n            <stanza>\n                <line>Then a hand shall pass before thee, pointing to his drunken sleep,</line>\n                <line>To thy widow'd marriage-pillows, to the tears that thou wilt weep.</line>\n            </stanza>\n            <stanza>\n                <line>Thou shalt hear the <sq>Never, never,</sq> whisper'd by the phantom years,</line>\n                <line>And a song from out the distance in the ringing of thine ears;</line>\n            </stanza>\n            <stanza>\n                <line>And an eye shall vex thee, looking ancient kindness on thy pain.</line>\n                <line>Turn thee, turn thee on thy pillow: get thee to thy rest again.</line>\n            </stanza>\n            <stanza>\n                <line>Nay, but Nature brings thee solace; for a tender voice will cry,</line>\n                <line>'Tis a purer life than thine; a lip to drain thy trouble dry.</line>\n            </stanza>\n            <stanza>\n                <line>Baby lips will laugh me down: my latest rival brings thee rest.</line>\n                <line>Baby fingers, waxen touches, press me from the mother's breast.</line>\n            </stanza>\n            <stanza>\n                <line>O, the child too clothes the father with a dearness not his due.</line>\n                <line>Half is thine and half is his: it will be worthy of the two.</line>\n            </stanza>\n            <stanza>\n                <line>O, I see thee old and formal, fitted to thy petty part,</line>\n                <line>With a little hoard of maxims preaching down a daughter's heart.</line>\n            </stanza>\n            <stanza>\n                <line><lsq/>They were dangerous guides the feelings-she herself was not exempt<mdash/></line>\n                <line>Truly, she herself had suffer'd<rsq/><mdash/>Perish in thy self-contempt!</line>\n            </stanza>\n            <stanza>\n                <line>Overlive it-lower yet-be happy! wherefore should I care,</line>\n                <line>I myself must mix with action, lest I wither by despair.</line>\n            </stanza>\n            <stanza>\n                <line>What is that which I should turn to, lighting upon days like these?</line>\n                <line>Every door is barr'd with gold, and opens but to golden keys.</line>\n            </stanza>\n            <stanza>\n                <line>Every gate is throng'd with suitors, all the markets overflow.</line>\n                <line>I have but an angry fancy: what is that which I should do?</line>\n            </stanza>\n            <stanza>\n                <line>I had been content to perish, falling on the foeman's ground,</line>\n                <line>When the ranks are roll'd in vapour, and the winds are laid with sound.</line>\n            </stanza>\n            <stanza>\n                <line>But the jingling of the guinea helps the hurt that Honour feels,</line>\n                <line>And the nations do but murmur, snarling at each other's heels.</line>\n            </stanza>\n            <stanza>\n                <line>Can I but relive in sadness? I will turn that earlier page.</line>\n                <line>Hide me from my deep emotion, O thou wondrous Mother-Age!</line>\n            </stanza>\n            <stanza>\n                <line>Make me feel the wild pulsation that I felt before the strife,</line>\n                <line>When I heard my days before me, and the tumult of my life;</line>\n            </stanza>\n            <stanza>\n                <line>Yearning for the large excitement that the coming years would yield,</line>\n                <line>Eager-hearted as a boy when first he leaves his father's field,</line>\n            </stanza>\n            <stanza>\n                <line>And at night along the dusky highway near and nearer drawn,</line>\n                <line>Sees in heaven the light of London flaring like a dreary dawn;</line>\n            </stanza>\n            <stanza>\n                <line>And his spirit leaps within him to be gone before him then,</line>\n                <line>Underneath the light he looks at, in among the throngs of men;</line>\n            </stanza>\n            <stanza>\n                <line>Men, my brothers, men the workers, ever reaping something new:</line>\n                <line>That which they have done but earnest of the things that they shall do:</line>\n            </stanza>\n            <stanza>\n                <line>For I dipt into the future, far as human eye could see,</line>\n                <line>Saw the vision of the world, and all the wonder that would be;</line>\n            </stanza>\n            <stanza>\n                <line>Saw the heavens fill with commerce, argosies of magic sails,</line>\n                <line>Pilots of the purple twilight, dropping down with costly bales;</line>\n            </stanza>\n            <stanza>\n                <line>Heard the heavens fill with shouting, and there rain'd a ghastly dew</line>\n                <line>From the nations' airy navies grappling in the central blue;</line>\n            </stanza>\n            <stanza>\n                <line>Far along the world-wide whisper of the south-wind rushing warm,</line>\n                <line>With the standards of the peoples plunging thro' the thunder-storm;</line>\n            </stanza>\n            <stanza>\n                <line>Till the war-drum throbbed no longer, and the battle-flags were furl'd</line>\n                <line>In the Parliament of man, the Federation of the world.</line>\n            </stanza>\n            <stanza>\n                <line>There the common sense of most shall hold a fretful realm in awe,</line>\n                <line>And the kindly earth shall slumber, lapt in universal law.</line>\n            </stanza>\n            <stanza>\n                <line>So I triumph'd, ere my passion sweeping thro' me left me dry,</line>\n                <line>Left me with the palsied heart, and left me with the jaundiced eye;</line>\n            </stanza>\n            <stanza>\n                <line>Eye, to which all order festers, all things here are out of joint,</line>\n                <line>Science moves, but slowly slowly, creeping on from point to point:</line>\n            </stanza>\n            <stanza>\n                <line>Slowly comes a hungry people, as a lion, creeping nigher,</line>\n                <line>Glares at one that nods and winks behind a slowly-dying fire.</line>\n            </stanza>\n            <stanza>\n                <line>Yet I doubt not thro' the ages one increasing purpose runs,</line>\n                <line>And the thoughts of men are widen'd with the process of the suns.</line>\n            </stanza>\n            <stanza>\n                <line>What is that to him that reaps not harvest of his youthful joys,</line>\n                <line>Tho' the deep heart of existence beat for ever like a boy's?</line>\n            </stanza>\n            <stanza>\n                <line>Knowledge comes, but wisdom lingers, and I linger on the shore,</line>\n                <line>And the individual withers, and the world is more and more.</line>\n            </stanza>\n            <stanza>\n                <line>Knowledge comes, but wisdom lingers, and he bears a laden breast,</line>\n                <line>Full of sad experience, moving toward the stillness of his rest.</line>\n            </stanza>\n            <stanza>\n                <line>Hark, my merry comrades call me, sounding on the bugle-horn,</line>\n                <line>They to whom my foolish passion were a target for their scorn:</line>\n            </stanza>\n            <stanza>\n                <line>Shall it not be scorn to me to harp on such a moulder'd string?</line>\n                <line>I am shamed thro' all my nature to have loved so slight a thing.</line>\n            </stanza>\n            <stanza>\n                <line>Weakness to be wroth with weakness! woman's pleasure, woman's pain</line>\n                <line>Nature made them blinder motions bounded in a shallower brain:</line>\n            </stanza>\n            <stanza>\n                <line>Woman is the lesser man, and all thy passions, match'd with mine,</line>\n                <line>Are as moonlight unto sunlight, and as water unto wine<mdash/></line>\n            </stanza>\n            <stanza>\n                <line>Here at least, where nature sickens, nothing. Ah, for some retreat</line>\n                <line>Deep in yonder shining Orient, where my life began to beat;</line>\n            </stanza>\n            <stanza>\n                <line>Where in wild Mahratta-battle fell my father evil-starr'd;<mdash/></line>\n                <line>I was left a trampled orphan, and a selfish uncle's ward.</line>\n            </stanza>\n            <stanza>\n                <line>Or to burst all links of habit-there to wander far away,</line>\n                <line>On from island unto island at the gateways of the day.</line>\n            </stanza>\n            <stanza>\n                <line>Larger constellations burning, mellow moons and happy skies,</line>\n                <line>Breadths of tropic shade and palms in cluster, knots of Paradise.</line>\n            </stanza>\n            <stanza>\n                <line>Never comes the trader, never floats an European flag,</line>\n                <line>Slides the bird o'er lustrous woodland, swings the trailer from the crag;</line>\n            </stanza>\n            <stanza>\n                <line>Droops the heavy-blossom'd bower, hangs the heavy-fruited tree<mdash/></line>\n                <line>Summer isles of Eden lying in dark-purple spheres of sea.</line>\n            </stanza>\n            <stanza>\n                <line>There methinks would be enjoyment more than in this march of mind,</line>\n                <line>In the steamship, in the railway, in the thoughts that shake mankind.</line>\n            </stanza>\n            <stanza>\n                <line>There the passions cramp'd no longer shall have scope and breathing-space;</line>\n                <line>I will take some savage woman, she shall rear my dusky race.</line>\n            </stanza>\n            <stanza>\n                <line>Iron-jointed, supple-sinew'd, they shall dive, and they shall run,</line>\n                <line>Catch the wild goat by the hair, and hurl their lances in the sun;</line>\n            </stanza>\n            <stanza>\n                <line>Whistle back the parrot's call, and leap the rainbows of the brooks.</line>\n                <line>Not with blinded eyesight poring over miserable books<mdash/></line>\n            </stanza>\n            <stanza>\n                <line>Fool, again the dream, the fancy! but I know my words are wild,</line>\n                <line>But I count the gray barbarian lower than the Christian child.</line>\n            </stanza>\n            <stanza>\n                <line>I, to herd with narrow foreheads, vacant of our glorious gains,</line>\n                <line>Like a beast with lower pleasures, like a beast with lower pains!</line>\n            </stanza>\n            <stanza>\n                <line>Mated with a squalid savage-what to me were sun or clime?</line>\n                <line>I the heir of all the ages, in the foremost files of time<mdash/></line>\n            </stanza>\n            <stanza>\n                <line>I that rather held it better men should perish one by one,</line>\n                <line>Than that earth should stand at gaze like Joshua's moon in Ajalon!</line>\n            </stanza>\n            <stanza>\n                <line>Not in vain the distance beacons. Forward, forward let us range.</line>\n                <line>Let the great world spin for ever down the ringing grooves of change.</line>\n            </stanza>\n            <stanza>\n                <line>Thro' the shadow of the globe we sweep into the younger day:</line>\n                <line>Better fifty years of Europe than a cycle of Cathay.</line>\n            </stanza>\n            <stanza>\n                <line>Mother-Age (for mine I knew not) help me as when life begun:</line>\n                <line>Rift the hills, and roll the waters, flash the lightnings, weigh the Sun<mdash/></line>\n            </stanza>\n            <stanza>\n                <line>O, I see the crescent promise of my spirit hath not set.</line>\n                <line>Ancient founts of inspiration well thro' all my fancy yet.</line>\n            </stanza>\n            <stanza>\n                <line>Howsoever these things be, a long farewell to Locksley Hall!</line>\n                <line>Now for me the woods may wither, now for me the roof-tree fall.</line>\n            </stanza>\n            <stanza>\n                <line>Comes a vapour from the margin, blackening over heath and holt,</line>\n                <line>Cramming all the blast before it, in its breast a thunderbolt.</line>\n            </stanza>\n            <stanza>\n                <line>Let it fall on Locksley Hall, with rain or hail, or fire or snow;</line>\n                <line>For the mighty wind arises, roaring seaward, and I go. </line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Tithonos</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <line>The woods decay, the woods decay and fall,</line>\n                <line>The vapours weep their burthen to the ground,</line>\n                <line>Man comes and tills the field and lies beneath,</line>\n                <line>And after many a summer dies the swan.</line>\n                <line>Me only cruel immortality</line>\n                <line>Consumes; I wither slowly in thine arms,</line>\n                <line>Here at the quiet limit of the world,</line>\n                <line>A white-hair'd shadow roaming like a dream</line>\n                <line>The ever-silent spaces of the East,</line>\n                <line>Far-folded mists, and gleaming halls of morn.</line>\n                <line>Alas! for this gray shadow, once a man<mdash/></line>\n                <line>So glorious in his beauty and thy choice,</line>\n                <line>Who madest him thy chosen, that he seem'd</line>\n                <line>To his great heart none other than a God!</line>\n                <line>I ask'd thee, <q>Give me immortality.</q></line>\n                <line>Then didst thou grant mine asking with a smile,</line>\n                <line>Like wealthy men who care not how they give.</line>\n                <line>But thy strong Hours indignant work'd their wills,</line>\n                <line>And beat me down and marr'd and wasted me,</line>\n                <line>And tho' they could not end me left me maim'd</line>\n                <line>To dwell in presence of immortal youth,</line>\n                <line>Immortal age beside immortal youth,</line>\n                <line>And all I was in ashes. Can thy love</line>\n                <line>Thy beauty, make amends, tho' even now,</line>\n                <line>Close over us, the silver star, thy guide,</line>\n                <line>Shines in those tremulous eyes that fill with tears</line>\n                <line>To hear me? Let me go: take back thy gift:</line>\n                <line>Why should a man desire in any way</line>\n                <line>To vary from the kindly race of men,</line>\n                <line>Or pass beyond the goal of ordinance</line>\n                <line>Where all should pause, as if most meet for all?</line>\n            </stanza>\n            <stanza>\n                <line>A soft air fans the cloud apart; there comes</line>\n                <line>A glimpse of that dark world where I was born.</line>\n                <line>Once more the old mysterious glimmer steals</line>\n                <line>From any pure brows, and from thy shoulders pure,</line>\n                <line>And bosom beating with a heart renew'd.</line>\n                <line>Thy cheek begins to redden thro' the gloom,</line>\n                <line>Thy sweet eyes brighten slowly close to mine,</line>\n                <line>Ere yet they blind the stars, and the wild team</line>\n                <line>Which love thee, yearning for thy yoke, arise,</line>\n                <line>And shake the darkness from their loosen'd manes,</line>\n                <line>And beat the twilight into flakes of fire.</line>\n                <line>Lo! ever thus thou growest beautiful</line>\n                <line>In silence, then before thine answer given</line>\n                <line>Departest, and thy tears are on my cheek.</line>\n            </stanza>\n            <stanza>\n                <line>Why wilt thou ever scare me with thy tears,</line>\n                <line>And make me tremble lest a saying learnt,</line>\n                <line>In days far-off, on that dark earth, be true?</line>\n                <line><q>The Gods themselves cannot recall their gifts.</q></line>\n            </stanza>\n            <stanza>\n                <line>Ay me! ay me! with what another heart</line>\n                <line>In days far-off, and with what other eyes</line>\n                <line>I used to watch {if I be he that watch'd}</line>\n                <line>The lucid outline forming round thee; saw</line>\n                <line>The dim curls kindle into sunny rings;</line>\n                <line>Changed with thy mystic change, and felt my blood</line>\n                <line>Glow with the glow that slowly crimson'd all</line>\n                <line>Thy presence and thy portals, while I lay,</line>\n                <line>Mouth, forehead, eyelids, growing dewy-warm</line>\n                <line>With kisses balmier than half-opening buds</line>\n                <line>Of April, and could hear the lips that kiss'd</line>\n                <line>Whispering I knew now what of wild and sweet,</line>\n                <line>Like that strange song I heard Apollo sing,</line>\n                <line>While Ilion like a mist rose into towers.</line>\n            </stanza>\n            <stanza>\n                <line>Yet hold me not for ever in thine East;</line>\n                <line>How can my nature longer mix with thine?</line>\n                <line>Coldly thy rosy shadows bathe me, cold</line>\n                <line>Are all thy lights, and cold my wrinkled feet</line>\n                <line>Upon thy glimmering thresholds, when the steam</line>\n                <line>Floats up from those dim fields about the homes</line>\n                <line>Of happy men that have the power to die,</line>\n                <line>And grassy barrows of the happier dead.</line>\n                <line>Release me, and restore me to the ground;</line>\n                <line>Thou seest all things, thou wilt see my grave:</line>\n                <line>Thou wilt renew thy beauty morn by morn;</line>\n                <line>I earth in earth forget these empty courts,</line>\n                <line>And thee returning on thy silver wheels. </line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Break, Break, Break</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <line>Break, break, break,</line>\n                <line>On thy cold gray stones, O Sea!</line>\n                <line>And I would that my tongue could utter</line>\n                <line>The thoughts that arise in me.</line>\n            </stanza>\n            <stanza>\n                <line>O well for the fisherman's boy,</line>\n                <line>That he shouts with his sister at play!</line>\n                <line>O well for the sailor lad,</line>\n                <line>That he sings in his boat on the bay!</line>\n            </stanza>\n            <stanza>\n                <line>And the stately ships go on</line>\n                <line>To their haven under the hill:</line>\n                <line>But O for the touch of a vanish'd hand,</line>\n                <line>And the sound of a voice that is still!</line>\n            </stanza>\n            <stanza>\n                <line>Break, break, break,</line>\n                <line>At the foot of thy crags, O Sea!</line>\n                <line>But the tender grace of a day that is dead</line>\n                <line>Will never come back to me.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>In the Valley of Cauteretz</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <line>All along the valley, stream that flashest white,</line>\n                <line>Deepening thy voice with the deepening of the night,</line>\n                <line>All along the valley, where thy waters flow,</line>\n                <line>I walked with one I loved two and thirty years ago.</line>\n                <line>All along the valley while I walked to-day,</line>\n                <line>The two and thirty years were a mist that rolls away;</line>\n                <line>For all along the valley, down thy rocky bed,</line>\n                <line>Thy living voice to me was as the voice of the dead,</line>\n                <line>And all along the valley, by rock and cave and tree,</line>\n                <line>The voice of the dead was a living voice to me.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Crossing the Bar</title>\n            <author>Alfred Tennyson</author>\n            <stanza>\n                <line>Sunset and evening star,</line>\n                <line indent=\"1\">And one clear call for me!</line>\n                <line>And may there be no moaning of the bar,</line>\n                <line indent=\"1\">When I put out to sea,</line>\n            </stanza>\n            <stanza>\n                <line>But such a tide as moving seems asleep,</line>\n                <line indent=\"1\">Too full for sound and foam,</line>\n                <line>When that which drew from out the boundless deep</line>\n                <line indent=\"1\">Turns again home.</line>\n            </stanza>\n            <stanza>\n                <line>Twilight and evening bell,</line>\n                <line indent=\"1\">And after that the dark!</line>\n                <line>And may there be no sadness of farewell,</line>\n                <line indent=\"1\">When I embark;</line>\n            </stanza>\n            <stanza>\n                <line>For though from out our bourne of Time and Place</line>\n                <line indent=\"1\">The flood may bear me far,</line>\n                <line>I hope to see my Pilot face to face</line>\n                <line indent=\"1\">When I have crossed the bar.</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"lawrence\">\n        <title>David Herbert Richards Lawrence</title>\n        <poem>\n            <title>Self Pity</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>I never saw a wild thing</line>\n                <line>sorry for itself.</line>\n                <line>A small bird will drop frozen dead from a bough</line>\n                <line>without ever having felt sorry for itself.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>At the Window</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>The pine-trees bend to listen to the autumn wind as it mutters</line>\n                <line>Something which sets the black poplars ashake with hysterical laughter;</line>\n                <line>While slowly the house of day is closing its eastern shutters.</line>\n            </stanza>\n            <stanza>\n                <line>Further down the valley the clustered tombstones recede,</line>\n                <line>Winding about their dimness the mist's grey cerements, after</line>\n                <line>The street lamps in the darkness have suddenly started to bleed.</line>\n            </stanza>\n            <stanza>\n                <line>The leaves fly over the window and utter a word as they pass</line>\n                <line>To the face that leans from the darkness, intent, with two dark-filled eyes</line>\n                <line>That watch for ever earnestly from behind the window glass.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>From A College Window</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>The glimmer of the limes, sun-heavy, sleeping,</line>\n                <line>Goes trembling past me up the College wall.</line>\n                <line>Below, the lawn, in soft blue shade is keeping</line>\n                <line>The diasy-froth quiescent, softly in thrall.</line>\n            </stanza>\n            <stanza>\n                <line>Beyond the leaves that overhang the street,</line>\n                <line>Along the flagged, clean pavement summer-white,</line>\n                <line>Passes the world with shadows at their feet</line>\n                <line>Going left and right.</line>\n            </stanza>\n            <stanza>\n                <line>Romoste, although I hear the beggar's cough,</line>\n                <line>See the woman's twinkling fingers tend him a coin,</line>\n                <line>I sit absolved, assured I am better off</line>\n                <line>Beyond a world I never want to join.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Gloire de Dijon</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>When she rises in the morning</line>\n                <line>I linger to watch her;</line>\n                <line>She spreads the bath-cloth underneath the window</line>\n                <line>And the sunbeams catch her</line>\n                <line>Glistening white on the shoulders,</line>\n                <line>While down her sides the mellow</line>\n                <line>Golden shadow glows as</line>\n                <line>She stoops to the sponge, and her swung breasts</line>\n                <line>Sway like full-blown yellow</line>\n                <line>Gloire de Dijon roses.</line>\n            </stanza>\n            <stanza>\n                <line>She drips herself with water, and her shoulders</line>\n                <line>Glisten as silver, they crumple up</line>\n                <line>Like wet and falling roses, and I listen</line>\n                <line>For the sluicing of their rain-dishevelled petals.</line>\n                <line>In the window full of sunlight</line>\n                <line>Concentrates her golden shadow</line>\n                <line>Fold on fold, until it glows as</line>\n                <line>Mellow as the glory roses.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Patience</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>A wind comes from the north</line>\n                <line>Blowing little flocks of birds</line>\n                <line>Like spray across the town,</line>\n                <line>And a train, roaring forth,</line>\n                <line>Rushes stampeding down</line>\n                <line>With cries and flying curds</line>\n                <line>Of steam, out of the darkening north.</line>\n            </stanza>\n            <stanza>\n                <line>Whither I turn and set</line>\n                <line>Like a needle steadfastly,</line>\n                <line>Waiting ever to get</line>\n                <line>The news that she is free;</line>\n                <line>But ever fixed, as yet,</line>\n                <line>To the lode of her agony.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Piano</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>Softly, in the dusk, a woman is singing to me;</line>\n                <line>Taking me back down the vista of years, till I see</line>\n                <line>A child sitting under the piano, in the boom of the tingling strings</line>\n                <line>And pressing the small, poised feet of a mother who smiles as she sings.</line>\n            </stanza>\n            <stanza>\n                <line>In spite of myself, the insidious mastery of song</line>\n                <line>Betrays me back, till the heart of me weeps to belong</line>\n                <line>to the old Sunday evenings at home, with the winter outside</line>\n                <line>And hymns in the cosy parlour, the tinkling piano our guide.</line>\n            </stanza>\n            <stanza>\n                <line>So now it is vain for the singer to burst into clamour</line>\n                <line>With the great black piano appassionato. The glamour</line>\n                <line>Of childish days is upon me, my manhood is cast</line>\n                <line>Down in the flood of remembrance, I weep like a child for the past.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Piccadilly Circus at Night</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>When into the night the yellow light is roused like dust above the towns,</line>\n                <line>Or like a mist the moon has kissed from off a pool in the midst of the downs,</line>\n            </stanza>\n            <stanza>\n                <line>Our faces flower for a little hour pale and uncertain along the street,</line>\n                <line>Daisies that waken all mistaken white-spread in expectancy to meet</line>\n            </stanza>\n            <stanza>\n                <line>The luminous mist which the poor things wist was dawn arriving across the sky,</line>\n                <line>When dawn is far behind the star the dust-lit town has driven so high.</line>\n            </stanza>\n            <stanza>\n                <line>All the birds are folded in a silent ball of sleep,</line>\n                <line>All the flowers are faded from the asphalt isle in the sea,</line>\n                <line>Only we hard-faced creatures go round and round, and keep</line>\n                <line>The shores of this innermost ocean alive and illusory.</line>\n            </stanza>\n            <stanza>\n                <line>Wanton sparrows that twittered when morning looked in at their eyes</line>\n                <line>And the Cyprian's pavement-roses are gone, and now it is we</line>\n                <line>Flowers of illusion who shine in our gauds, make a Paradise</line>\n                <line>On the shores of this ceaseless ocean, gay birds of the town-dark sea.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>A White Blossom</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>A tiny moon as white and small as a single jasmine flower</line>\n                <line>Leans all alone above my window, on night's wintry bower,</line>\n                <line>Liquid as lime-tree blossom, soft as brilliant water or rain</line>\n                <line>She shines, the one white love of my youth, which all sin cannot stain.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>A Winter's Tale</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>Yesterday the fields were only gray with scattered snow,</line>\n                <line>And now the longest grass-leaves hardly emerge;</line>\n                <line>Yet her deep footsteps mark the snow, and go</line>\n                <line>On towards the pines at the hills' white verge.</line>\n            </stanza>\n            <stanza>\n                <line>I cannot see her, since the mist's white scarf</line>\n                <line>Obscures the dark wood and the dull orange sky;</line>\n                <line>But she's waiting, I know, impatient and cold, half</line>\n                <line>Sobs struggling into her frosty sigh.</line>\n            </stanza>\n            <stanza>\n                <line>Why does she come so promptly, when she must know</line>\n                <line>That she's only the nearer to the inevitable farewell;</line>\n                <line>The hill is steep, on the snow my steps are slow<mdash/></line>\n                <line>Why does she come, when she knows what I have to tell?</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Wild Common</title>\n            <author>D. H. Lawrence</author>\n            <stanza>\n                <line>The quick sparks on the gorse bushes are leaping,</line>\n                <line>Little jets of sunlight-texture imitating flame;</line>\n                <line>Above them, exultant, the pee-wits are sweeping:</line>\n                <line>They are lords of the desolate wastes of sadness their screamings proclaim.</line>\n            </stanza>\n            <stanza>\n                <line>Rabbits, handfuls of brown earth, lie</line>\n                <line>Low-rounded on the mournful grass they have bitten down to the quick.</line>\n                <line>Are they asleep?<mdash/>Are they alive?<mdash/>Now see, when I</line>\n                <line>Move my arms the hill bursts and heaves under their spurting kick.</line>\n            </stanza>\n            <stanza>\n                <line>The common flaunts bravely; but below, from the rushes</line>\n                <line>Crowds of glittering king-cups surge to challenge the blossoming bushes;</line>\n                <line>There the lazy streamlet pushes</line>\n                <line>Its curious course mildly; here it wakes again, leaps, laughs, and gushes.</line>\n            </stanza>\n            <stanza>\n                <line>Into a deep pond, an old sheep-dip,</line>\n                <line>Dark, overgrown with willows, cool, with the brook ebbing through so slow,</line>\n                <line>Naked on the steep, soft lip</line>\n                <line>Of the bank I stand watching my own white shadow quivering to and fro.</line>\n            </stanza>\n            <stanza>\n                <line>What if the gorse flowers shrivelled and kissing were lost?</line>\n                <line>Without the pulsing waters, where were the marigolds and the songs of the brook?</line>\n                <line>If my veins and my breasts with love embossed</line>\n                <line>Withered, my insolent soul would be gone like flowers that the hot wind took.</line>\n            </stanza>\n            <stanza>\n                <line>So my soul like a passionate woman turns,</line>\n                <line>Filled with remorseful terror to the man she scorned, and her love</line>\n                <line>For myself in my own eyes' laughter burns,</line>\n                <line>Runs ecstatic over the pliant folds rippling down to my belly from the breast-lights above.</line>\n            </stanza>\n            <stanza>\n                <line>Over my sunlit skin the warm, clinging air,</line>\n                <line>Rich with the songs of seven larks singing at once, goes kissing me glad.</line>\n                <line>And the soul of the wind and my blood compare</line>\n                <line>Their wandering happiness, and the wind, wasted in liberty, drifts on and is sad.</line>\n            </stanza>\n            <stanza>\n                <line>Oh but the water loves me and folds me,</line>\n                <line>Plays with me, sways me, lifts me and sinks me as though it were living blood,</line>\n                <line>Blood of a heaving woman who holds me,</line>\n                <line>Owning my supple body a rare glad thing, supremely good.</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"keats\">\n        <title>John Keats</title>\n        <poem>\n            <title>Ode on a Grecian Urn</title>\n            <author>John Keats</author>\n            <stanza>\n                <line>Thou still unravished bride of quietness!</line>\n                <line>Thou foster-child of silence and slow time,</line>\n                <line>Sylvan historian, who canst thus express</line>\n                <line>A flow'ry tale more sweetly than our rhyme:</line>\n                <line>What leaf-fringed legend haunts about thy shape</line>\n                <line>Of deities or mortals, or of both,</line>\n                <line>In Tempe or the dales of Arcady?</line>\n                <line>What men or gods are these? What maidens loth?</line>\n                <line>What mad pursuit? What struggle to escape?</line>\n                <line>What pipes and timbrels? What wild ecstasy?</line>\n            </stanza>\n            <stanza>\n                <line>Heard melodies are sweet, but those unheard</line>\n                <line>Are sweeter; therefore, ye soft pipes, play on;</line>\n                <line>Not to the sensual ear, but, more endeared,</line>\n                <line>Pipe to the spirit ditties of no tone:</line>\n                <line>Fair youth, beneath the trees, thou canst not leave</line>\n                <line>Thy song, nor ever can those trees be bare;</line>\n                <line>Bold Lover, never, never canst thou kiss,</line>\n                <line>Though winning near the goal yet, do not grieve;</line>\n                <line>She cannot fade, though thou hast not thy bliss,</line>\n                <line>For ever wilt thou love, and she be fair!</line>\n            </stanza>\n            <stanza>\n                <line>Ah, happy, happy boughs! that cannot shed</line>\n                <line>Your leaves, nor ever bid the Spring adieu;</line>\n                <line>And, happy melodist, unwearied,</line>\n                <line>For ever piping songs for ever new;</line>\n                <line>More happy love! more happy, happy love!</line>\n                <line>For ever warm and still to be enjoyed,</line>\n                <line>For ever panting and for ever young;</line>\n                <line>All breathing human passion far above,</line>\n                <line>That leaves a heart high-sorrowful and cloyed,</line>\n                <line>A burning forehead, and a parching tongue.</line>\n            </stanza>\n            <stanza>\n                <line>Who are these coming to the sacrifice?</line>\n                <line>To what green altar, O mysterious priest,</line>\n                <line>Lead'st thou that heifer lowing at the skies,</line>\n                <line>And all her silken flanks with garlands drest?</line>\n                <line>What little town by river or sea-shore,</line>\n                <line>Or mountain-built with peaceful citadel,</line>\n                <line>Is emptied of its folk, this pious morn?</line>\n                <line>And, little town, thy streets for evermore</line>\n                <line>Will silent be; and not a soul to tell</line>\n                <line>Why thou art desolate, can e'er return.</line>\n            </stanza>\n            <stanza>\n                <line>O Attic shape! Fair attitude! with brede</line>\n                <line>Of marble men and maidens overwrought,</line>\n                <line>With forest branches and the trodden weed;</line>\n                <line>Thou, silent form, dost tease us out of thought</line>\n                <line>As doth eternity: Cold pastoral!</line>\n                <line>When old age shall this generation waste,</line>\n                <line>Thou shalt remain, in midst of other woe</line>\n                <line>Than ours, a friend to man, to whom thou sayst,</line>\n                <line>\"Beauty is truth, truth beauty,\" that is all</line>\n                <line>Ye know on earth, and all ye need to know.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Bright Star, Would I were Stedfast as Thou Art<mdash/></title>\n            <author>John Keats</author>\n            <stanza>\n                <line>Bright star, would I were stedfast as thou art<mdash/></line>\n                <line>Not in lone splendour hung aloft the night</line>\n                <line>And watching, with eternal lids apart,</line>\n                <line>Like nature's patient, sleepless Eremite,</line>\n                <line>The moving waters at their priestlike task</line>\n                <line>Of pure ablution round earth's human shores,</line>\n                <line>Or gazing on the new soft-fallen mask</line>\n                <line>Of snow upon the mountains and the moors<mdash/></line>\n                <line>No<mdash/>yet still stedfast, still unchangeable,</line>\n                <line>Pillow'd upon my fair love's ripening breast,</line>\n                <line>To feel for ever its soft fall and swell,</line>\n                <line>Awake for ever in a sweet unrest,</line>\n                <line>Still, still to hear her tender-taken breath,</line>\n                <line>And so live ever<mdash/>or else swoon to death.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>On the Sea</title>\n            <author>John Keats</author>\n            <stanza>\n                <line>It keeps eternal whisperings around</line>\n                <line>Desolate shores, and with its mighty swell</line>\n                <line>Gluts twice ten thousand caverns, till the spell</line>\n                <line>Of Hecate leaves them their old shadowy sound.</line>\n                <line>Often 'tis in such gentle temper found,</line>\n                <line>That scarcely will the very smallest shell</line>\n                <line>Be moved for days from whence it sometime fell,</line>\n                <line>When last the winds of heaven were unbound.</line>\n                <line>Oh ye! who have your eye-balls vexed and tired,</line>\n                <line>Feast them upon the wideness of the Sea;</line>\n                <line>Oh ye! whose ears are dinned with uproar rude,</line>\n                <line>Or fed too much with cloying melody,</line>\n                <line>Sit ye near some old cavern's mouth, and brood</line>\n                <line>Until ye start, as if the sea-nymphs choired!</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>To Autumn</title>\n            <author>John Keats</author>\n            <stanza>\n                <title>I</title>\n                <line>Season of mists and mellow fruitfulness,</line>\n                <line indent=\"1\">Close bosom-friend of the maturing sun;</line>\n                <line>Conspiring with him how to load and bless</line>\n                <line indent=\"1\">With fruit the vines that round the thatch-eaves run;</line>\n                <line>To bend with apples the moss'd cottage-trees,</line>\n                <line indent=\"1\">And fill all fruit with ripeness to the core;</line>\n                <line indent=\"2\">To swell the gourd, and plump the hazel shells</line>\n                <line>With a sweet kernel; to set budding more,</line>\n                <line indent=\"1\">And still more, later flowers for the bees,</line>\n                <line indent=\"1\">Until they think warm days will never cease,</line>\n                <line indent=\"2\">For summer has o'er-brimm'd their clammy cells.</line>\n            </stanza>\n            <stanza>\n                <title>II</title>\n                <line>Who hath not seen thee oft amid thy store?</line>\n                <line indent=\"1\">Sometimes whoever seeks abroad may find</line>\n                <line>Thee sitting careless on a granary floor,</line>\n                <line indent=\"1\">Thy hair soft-lifted by the winnowing wind;</line>\n                <line>Or on a half-reap'd furrow sound asleep,</line>\n                <line indent=\"1\">Drows'd with the fume of poppies, while thy hook</line>\n                <line indent=\"2\">Spares the next swath and all its twined flowers:</line>\n                <line>And sometimes like a gleaner thou dost keep</line>\n                <line indent=\"1\">Steady thy laden head across a brook;</line>\n                <line indent=\"1\">Or by a cyder-press, with patient look,</line>\n                <line indent=\"2\">Thou watchest the last oozings hours by hours.</line>\n            </stanza>\n            <stanza>\n                <title>III</title>\n                <line>Where are the songs of spring? Ay, where are they?</line>\n                <line indent=\"1\">Think not of them, thou hast thy music too,<mdash/></line>\n                <line>While barred clouds bloom the soft-dying day,</line>\n                <line indent=\"1\">And touch the stubble-plains with rosy hue;</line>\n                <line>Then in a wailful choir the small gnats mourn</line>\n                <line indent=\"1\">Among the river sallows, borne aloft</line>\n                <line indent=\"2\">Or sinking as the light wind lives or dies;</line>\n                <line>And full-grown lambs loud bleat from hilly bourn;</line>\n                <line indent=\"1\">Hedge-crickets sing; and now with treble soft</line>\n                <line indent=\"1\">The red-breast whistles from a garden-croft;</line>\n                <line indent=\"2\">And gathering swallows twitter in the skies.</line>\n            </stanza>\n        </poem>\n        <poem halign=\"center\">\n            <title>Ode to a Nightingale</title>\n            <author>John Keats</author>\n            <stanza>\n                <title>1.</title>\n                <line>My heart aches, and a drowsy numbness pains</line>\n                <line>My sense, as though of hemlock I had drunk,</line>\n                <line>Or emptied some dull opiate to the drains</line>\n                <line>One minute past, and Lethe-wards had sunk:</line>\n                <line>'Tis not through envy of thy happy lot,</line>\n                <line>But being too happy in thine happiness,</line>\n                <line>That thou, light-winged Dryad of the trees,</line>\n                <line>In some melodious plot</line>\n                <line>Of beechen green, and shadows numberless,</line>\n                <line>Singest of summer in full-throated ease.</line>\n            </stanza>\n            <stanza>\n                <title>2.</title>\n                <line>O, for a draught of vintage! that hath been</line>\n                <line>Cool''d a long age in the deep-delved earth,</line>\n                <line>Tasting of Flora and the country green,</line>\n                <line>Dance, and Provencal song, and sunburnt mirth!</line>\n                <line>O for a beaker full of the warm South,</line>\n                <line>Full of the true, the blushful Hippocrene,</line>\n                <line>With beaded bubbles winking at the brim,</line>\n                <line>And purple-stained mouth;</line>\n                <line>That I might drink, and leave the world unseen,</line>\n                <line>And with thee fade away into the forest dim:</line>\n            </stanza>\n            <stanza>\n                <title>3.</title>\n                <line>Fade far away, dissolve, and quite forget</line>\n                <line>What thou among the leaves hast never known,</line>\n                <line>The weariness, the fever, and the fret</line>\n                <line>Here, where men sit and hear each other groan;</line>\n                <line>Where palsy shakes a few, sad, last gray hairs,</line>\n                <line>Where youth grows pale, and spectre-thin, and dies;</line>\n                <line>Where but to think is to be full of sorrow</line>\n                <line>And leaden-eyed despairs,</line>\n                <line>Where Beauty cannot keep her lustrous eyes,</line>\n                <line>Or new Love pine at them beyond to-morrow.</line>\n            </stanza>\n            <stanza>\n                <title>4.</title>\n                <line>Away! away! for I will fly to thee,</line>\n                <line>Not charioted by Bacchus and his pards,</line>\n                <line>But on the viewless wings of Poesy,</line>\n                <line>Though the dull brain perplexes and retards:</line>\n                <line>Already with thee! tender is the night,</line>\n                <line>And haply the Queen-Moon is on her throne,</line>\n                <line>Cluster'd around by all her starry Fays;</line>\n                <line>But here there is no light,</line>\n                <line>Save what from heaven is with the breezes blown</line>\n                <line>Through verdurous glooms and winding mossy ways.</line>\n            </stanza>\n            <stanza>\n                <title>5.</title>\n                <line>I cannot see what flowers are at my feet,</line>\n                <line>Nor what soft incense hangs upon the boughs,</line>\n                <line>But, in embalmed darkness, guess each sweet</line>\n                <line>Wherewith the seasonable month endows</line>\n                <line>The grass, the thicket, and the fruit-tree wild;</line>\n                <line>White hawthorn, and the pastoral eglantine;</line>\n                <line>Fast fading violets cover'd up in leaves;</line>\n                <line>And mid-May's eldest child,</line>\n                <line>The coming musk-rose, full of dewy wine,</line>\n                <line>The murmurous haunt of flies on summer eves.</line>\n            </stanza>\n            <stanza>\n                <title>6.</title>\n                <line>Darkling I listen; and, for many a time</line>\n                <line>I have been half in love with easeful Death,</line>\n                <line>Call'd him soft names in many a mused rhyme,</line>\n                <line>To take into the air my quiet breath;</line>\n                <line>Now more than ever seems it rich to die,</line>\n                <line>To cease upon the midnight with no pain,</line>\n                <line>While thou art pouring forth thy soul abroad</line>\n                <line>In such an ecstasy!</line>\n                <line>Still wouldst thou sing, and I have ears in vain</line>\n                <line>To thy high requiem become a sod.</line>\n            </stanza>\n            <stanza>\n                <title>7.</title>\n                <line>Thou wast not born for death, immortal Bird!</line>\n                <line>No hungry generations tread thee down;</line>\n                <line>The voice I hear this passing night was heard</line>\n                <line>In ancient days by emperor and clown:</line>\n                <line>Perhaps the self-same song that found a path</line>\n                <line>Through the sad heart of Ruth, when, sick for home,</line>\n                <line>She stood in tears amid the alien corn;</line>\n                <line>The same that oft-times hath</line>\n                <line>Charm'd magic casements, opening on the foam</line>\n                <line>Of perilous seas, in faery lands forlorn.</line>\n            </stanza>\n            <stanza>\n                <title>8.</title>\n                <line>Forlorn! the very word is like a bell</line>\n                <line>To toll me back from thee to my sole self!</line>\n                <line>Adieu! the fancy cannot cheat so well</line>\n                <line>As she is fam'd to do, deceiving elf.</line>\n                <line>Adieu! adieu! thy plaintive anthem fades</line>\n                <line>Past the near meadows, over the still stream,</line>\n                <line>Up the hill-side; and now 'tis buried deep</line>\n                <line>In the next valley-glades:</line>\n                <line>Was it a vision, or a waking dream?</line>\n                <line>Fled is that music: do I wake or sleep?</line>\n            </stanza>\n        </poem>\n    </section>\n    <section xml:id=\"shelley\">\n        <title>Percy Shelley</title>\n        <poem halign=\"center\">\n            <title>Ode to the West Wind</title>\n            <author>Percy Shelley</author>\n            <stanza>\n                <title>I</title>\n                <line>O wild West Wind, thou breath of Autumn's being,</line>\n                <line>Thou, from whose unseen presence the leaves dead</line>\n                <line>Are driven, like ghosts from an enchanter fleeing,</line>\n                <line><nbsp/></line>\n                <line>Yellow, and black, and pale, and hectic red,</line>\n                <line>Pestilence-stricken multitudes: O thou,</line>\n                <line>Who chariotest to their dark wintry bed</line>\n                <line><nbsp/></line>\n                <line>The wingéd seeds, where they lie cold and low,</line>\n                <line>Each like a corpse within its grave, until</line>\n                <line>Thine azure sister of the Spring shall blow</line>\n                <line><nbsp/></line>\n                <line>Her clarion o'er the dreaming earth, and fill</line>\n                <line>(Driving sweet buds like flocks to feed in air)</line>\n                <line>With living hues and odours plain and hill:</line>\n                <line><nbsp/></line>\n                <line>Wild Spirit, which art moving everywhere;</line>\n                <line>Destroyer and preserver; hear, oh, hear!</line>\n            </stanza>\n            <stanza>\n                <title>II</title>\n                <line>Thou on whose stream, 'mid the steep sky's commotion,</line>\n                <line>Loose clouds like earth's decaying leaves are shed,</line>\n                <line>Shook from the tangled boughs of Heaven and Ocean,</line>\n                <line><nbsp/></line>\n                <line>Angels of rain and lightning: there are spread</line>\n                <line>On the blue surface of thine aery surge,</line>\n                <line>Like the bright hair uplifted from the head</line>\n                <line><nbsp/></line>\n                <line>Of some fierce Maenad, even from the dim verge</line>\n                <line>Of the horizon to the zenith's height,</line>\n                <line>The locks of the approaching storm. Thou dirge</line>\n                <line><nbsp/></line>\n                <line>Of the dying year, to which this closing night</line>\n                <line>Will be the dome of a vast sepulchre,</line>\n                <line>Vaulted with all thy congregated might</line>\n                <line><nbsp/></line>\n                <line>Of vapors, from whose solid atmosphere</line>\n                <line>Black rain, and fire, and hail will burst: oh, hear!</line>\n            </stanza>\n            <stanza>\n                <title>III</title>\n                <line>Thou who didst waken from his summer dreams</line>\n                <line>The blue Mediterranean, where he lay,</line>\n                <line>Lulled by the coil of his crystalline streams,</line>\n                <line><nbsp/></line>\n                <line>Beside a pumice isle in Baiae's bay,</line>\n                <line>And saw in sleep old palaces and towers</line>\n                <line>Quivering within the wave's intenser day,</line>\n                <line><nbsp/></line>\n                <line>All overgrown with azure moss and flowers</line>\n                <line>So sweet, the sense faints picturing them! Thou</line>\n                <line>For whose path the Atlantic's level powers</line>\n                <line><nbsp/></line>\n                <line>Cleave themselves into chasms, while far below</line>\n                <line>The sea-blooms and the oozy woods which wear</line>\n                <line>The sapless foliage of the ocean, know</line>\n                <line><nbsp/></line>\n                <line>Thy voice, and suddenly grow gray with fear,</line>\n                <line>And tremble and despoil themselves: oh, hear!</line>\n            </stanza>\n            <stanza>\n                <title>IV</title>\n                <line>If I were a dead leaf thou mightest bear;</line>\n                <line>If I were a swift cloud to fly with thee;</line>\n                <line>A wave to pant beneath thy power, and share</line>\n                <line><nbsp/></line>\n                <line>The impulse of thy strength, only less free</line>\n                <line>Than thou, O uncontrollable! If even</line>\n                <line>I were as in my boyhood, and could be</line>\n                <line><nbsp/></line>\n                <line>The comrade of thy wanderings over Heaven,</line>\n                <line>As then, when to outstrip thy skiey speed</line>\n                <line>Scarce seemed a vision; I would ne'er have striven</line>\n                <line><nbsp/></line>\n                <line>As thus with thee in prayer in my sore need.</line>\n                <line>Oh, lift me as a wave, a leaf, a cloud!</line>\n                <line>I fall upon the thorns of life! I bleed!</line>\n                <line><nbsp/></line>\n                <line>A heavy weight of hours has chained and bowed</line>\n                <line>One too like thee: tameless, and swift, and proud.</line>\n            </stanza>\n            <stanza>\n                <title>V</title>\n                <line>Make me thy lyre, even as the forest is:</line>\n                <line>What if my leaves are falling like its own!</line>\n                <line>The tumult of thy mighty harmonies</line>\n                <line><nbsp/></line>\n                <line>Will take from both a deep, autumnal tone,</line>\n                <line>Sweet though in sadness. Be thou, Spirit fierce,</line>\n                <line>My spirit! Be thou me, impetuous one!</line>\n                <line><nbsp/></line>\n                <line>Drive my dead thoughts over the universe</line>\n                <line>Like withered leaves to quicken a new birth!</line>\n                <line>And, by the incantation of this verse,</line>\n                <line><nbsp/></line>\n                <line>Scatter, as from an unextinguished hearth</line>\n                <line>Ashes and sparks, my words among mankind!</line>\n                <line>Be through my lips to unawakened earth</line>\n                <line><nbsp/></line>\n                <line>The trumpet of a prophecy! O Wind,</line>\n                <line>If Winter comes, can Spring be far behind?</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Ozymandias</title>\n            <author>Percy Shelley</author>\n            <stanza>\n                <line>I met a traveller from an antique land</line>\n                <line>Who said: Two vast and trunkless legs of stone</line>\n                <line>Stand in the desert. Near them on the sand,</line>\n                <line>Half sunk, a shatter'd visage lies, whose frown</line>\n                <line>And wrinkled lip and sneer of cold command</line>\n                <line>Tell that its sculptor well those passions read</line>\n                <line>Which yet survive, stamp'd on these lifeless things,</line>\n                <line>The hand that mock'd them and the heart that fed.</line>\n                <line>And on the pedestal these words appear:</line>\n                <line><lq/>My name is Ozymandias, king of kings:</line>\n                <line>Look on my works, ye Mighty, and despair!<rq/></line>\n                <line>Nothing beside remains: round the decay</line>\n                <line>Of that colossal wreck, boundless and bare,</line>\n                <line>The lone and level sands stretch far away.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>The Indian Serenade</title>\n            <author>Percy Shelley</author>\n            <stanza>\n                <line>I arise from dreams of thee</line>\n                <line>In the first sweet sleep of night,</line>\n                <line>When the winds are breathing low,</line>\n                <line>And the stars are shining bright</line>\n                <line>I arise from dreams of thee,</line>\n                <line>And a spirit in my feet</line>\n                <line>Hath led me—who knows how?</line>\n                <line>To thy chamber window, Sweet!</line>\n            </stanza>\n            <stanza>\n                <line>The wandering airs they faint</line>\n                <line>On the dark, the silent stream—</line>\n                <line>The champak odors fail</line>\n                <line>Like sweet thoughts in a dream;</line>\n                <line>The nightingale's complaint,</line>\n                <line>It dies upon her heart;</line>\n                <line>As I must on thine,</line>\n                <line>Oh, beloved as thou art!</line>\n            </stanza>\n            <stanza>\n                <line>O lift me from the grass!</line>\n                <line>die! I faint! I fail!</line>\n                <line>Let thy love in kisses rain</line>\n                <line>On my lips and eyelids pale.</line>\n                <line>My cheek is cold and white, alas!</line>\n                <line>My heart beats loud and fast;—</line>\n                <line>Oh! press it to thine own again,</line>\n                <line>Where it will break at last.</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Ode to a Skylark</title>\n            <author>Percy Shelley</author>\n            <stanza>\n                <line>Hail to thee, blithe spirit<mdash/></line>\n                <line indent=\"2\">Bird thou never wert<mdash/></line>\n                <line indent=\"1\">That from heaven or near it</line>\n                <line indent=\"2\">Pourest thy full heart</line>\n                <line>In profuse strains of unpremeditated art.</line>\n            </stanza>\n            <stanza>\n                <line>Higher still and higher</line>\n                <line indent=\"2\">From the earth thou springest,</line>\n                <line indent=\"1\">Like a cloud of fire;</line>\n                <line indent=\"2\">The blue deep thou wingest,</line>\n                <line>And singing still dost soar and soaring ever singest.</line>\n            </stanza>\n            <stanza>\n                <line>In the golden lightning</line>\n                <line indent=\"2\">Of the sunken sun,</line>\n                <line indent=\"1\">O'er which clouds are brightening,</line>\n                <line indent=\"2\">Thou dost float and run,</line>\n                <line>Like an unbodied joy whose race is just begun.</line>\n            </stanza>\n            <stanza>\n                <line>The pale purple even</line>\n                <line indent=\"2\">Melts around thy flight;</line>\n                <line indent=\"1\">Like a star of heaven,</line>\n                <line indent=\"2\">In the broad daylight</line>\n                <line>Thou art unseen, but yet I hear thy shrill delight.</line>\n            </stanza>\n            <stanza>\n                <line>All the earth and air</line>\n                <line indent=\"2\">With thy voice is loud,</line>\n                <line indent=\"1\">As, when night is bare,</line>\n                <line indent=\"2\">From one lonely cloud</line>\n                <line>The moon rains out her beams, and heaven is overflowed.</line>\n            </stanza>\n            <stanza>\n                <line>What thou art we know not;</line>\n                <line indent=\"2\">What is most like thee?</line>\n                <line indent=\"1\">From rainbow-clouds there flow not</line>\n                <line indent=\"2\">Drops so bright to see</line>\n                <line>As from thy presence showers a rain of melody:</line>\n            </stanza>\n            <stanza>\n                <line>Like a poet hidden</line>\n                <line indent=\"2\">In the light of thought;</line>\n                <line indent=\"1\">Singing hymns unbidden,</line>\n                <line indent=\"2\">Till the world is wrought</line>\n                <line>To sympathy with hopes and fears it heeded not.</line>\n            </stanza>\n            <stanza>\n                <line>Teach us, sprite or bird,</line>\n                <line indent=\"2\">What sweet thoughts are thine:</line>\n                <line indent=\"1\">I have never heard</line>\n                <line indent=\"2\">Praise of love or wine</line>\n                <line>That panted forth a flood of rapture so divine.</line>\n            </stanza>\n            <stanza>\n                <line>Chorus hymeneal</line>\n                <line indent=\"2\">Or triumphal chaunt,</line>\n                <line indent=\"1\">Matched with thine, would be all</line>\n                <line indent=\"2\">But an empty vaunt<mdash/></line>\n                <line>A thing wherein we feel there is some hidden want.</line>\n            </stanza>\n            <stanza>\n                <line>What objects are the fountains</line>\n                <line indent=\"2\">Of thy happy strain?</line>\n                <line indent=\"1\">What fields, or waves, or mountains?</line>\n                <line indent=\"2\">What shapes of sky or plain?</line>\n                <line>What love of thine own kind? what ignorance of pain?</line>\n            </stanza>\n            <stanza>\n                <line>Teach me half the gladness</line>\n                <line indent=\"2\">That thy brain must know,</line>\n                <line indent=\"1\">Such harmonious madness</line>\n                <line indent=\"2\">From my lips would flow,</line>\n                <line>The world should listen then, as I am listening now!</line>\n            </stanza>\n        </poem>\n        <poem>\n            <title>Love's Philosophy</title>\n            <author>Percy Shelley</author>\n            <stanza>\n                <line>The Fountains mingle with the Rivers</line>\n                <line>And the Rivers with the Oceans,</line>\n                <line>The winds of Heaven mix forever</line>\n                <line>With a sweet emotion;</line>\n                <line>Nothing in the world is single;</line>\n                <line>All things by a law divine</line>\n                <line>In one spirit meet and mingle.</line>\n                <line>Why not I with thine?</line>\n            </stanza>\n            <stanza>\n                <line>See the mountains kiss high Heaven</line>\n                <line>And the waves clasp one another;</line>\n                <line>No sister-flower would be forgiven</line>\n                <line>If it disdained its brother,</line>\n                <line>And the sunlight clasps the earth</line>\n                <line>And the moonbeams kiss the sea:</line>\n                <line>What is all this sweet work worth</line>\n                <line>If thou kiss not me?</line>\n            </stanza>\n        </poem>\n    </section>\n    <conclusion>\n        <poem>\n            <title>Mouse Tail</title>\n            <author halign=\"center\">Lewis Carroll</author>\n            <stanza>\n                <line indent=\"0\"><lsq/>Fury said to a mouse,</line>\n                <line indent=\"1\">That he met in the</line>\n                <line indent=\"2\">house, <lq/>Let us</line>\n                <line indent=\"3\">both go to law:</line>\n                <line indent=\"4\"><em>I</em> will prosecute</line>\n                <line indent=\"5\"><em>you</em>.<mdash/>Come, I'll</line>\n                <line indent=\"6\">take no denial;</line>\n                <line indent=\"7\">We must have</line>\n                <line indent=\"6\">a trial: For</line>\n                <line indent=\"5\">really this</line>\n                <line indent=\"4\">morning I've</line>\n                <line indent=\"3\">nothing to do.<rq/></line>\n                <line indent=\"4\">Said the mouse</line>\n                <line indent=\"7\">to the cur,</line>\n                <line indent=\"9\"><lq/>Such a trial,</line>\n                <line indent=\"11\">dear Sir, With</line>\n                <line indent=\"13\">no jury or</line>\n                <line indent=\"14\">judge,would</line>\n                <line indent=\"13\">be wasting</line>\n                <line indent=\"11\">our breath.<rq/></line>\n                <line indent=\"11\"><lq/>I'll be</line>\n                <line indent=\"10\">judge, I'll</line>\n                <line indent=\"9\">be jury,<rq/></line>\n                <line indent=\"7\">Said cunning</line>\n                <line indent=\"6\">old Fury:</line>\n                <line indent=\"5\"><lq/>I'll try</line>\n                <line indent=\"5\">the whole</line>\n                <line indent=\"7\">cause, and</line>\n                <line indent=\"9\">condemn</line>\n                <line indent=\"10\">you</line>\n                <line indent=\"11\">to</line>\n                <line indent=\"12\">death.<rq/><rsq/></line>\n            </stanza>\n        </poem>\n    </conclusion>\n</chapter>\n"
  },
  {
    "path": "examples/letter/README.md",
    "content": "# Sample Letter\n\nLetters convert only to LaTeX.  See the XML source for instructions on customizing letterhead.  Be aware that the two PNG files need to be available when you process the LaTeX source to make a PDF.\n"
  },
  {
    "path": "examples/letter/sample-letter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- A sample letter -->\n<!-- (1) This example assumes 8.5 x 11 paper       -->\n<!-- (2) Requires customizing graphics files       -->\n<!-- (3) Conversion to LaTeX only                  -->\n<!-- (4) Many elements are optional                -->\n<!-- (5) pdflatex is superior for graphics formats -->\n<!-- (6) xelatex is superior for Unicode support   -->\n\n<!-- Copy sample letterhead graphic to the directory where you will compile LaTeX -->\n<!--                                                                              -->\n<!-- $ xsltproc -o letter.tex                                                     -->\n<!--      /path/to/mathbook/xsl/pretext-latex.xsl  /path/to/this-source-file.xml  -->\n<!--                                                                              -->\n<!-- Look in current working directory for \"letter.tex\"                           -->\n\n<pretext>\n    <!-- The docinfo element is like metadata, it mostly      -->\n    <!-- migrates various places, or gets used multiple times -->\n    <docinfo>\n        <!-- To customize your letter as letterhead, you can place scanned images   -->\n        <!-- anywhere on the page. PDF images seem to lead to the smallest files.   -->\n        <!-- pdflatex will automatically convert EPS files to PDF and leave         -->\n        <!-- the conversion behind, so you can harvest those, if desired            -->\n        <!--                                                                        -->\n        <!-- (llx, lly) is for placement:                                           -->\n        <!-- it is the desired lower-left corner of the image on the page, where    -->\n        <!-- (0, 0) is in the lower-left corner of the page and units are           -->\n        <!-- \"true\" points (72.27 points to the inch)                               -->\n        <!-- Specify a width, there is no provision for changing the aspect ratio   -->\n        <!--                                                                        -->\n        <!-- Graphics files need to live in the same directory as the source        -->\n        <!-- (or down a relative path), or can go into (any) directory of your      -->\n        <!-- personal texmf tree (be sure to run texhash or mktexlsr to index them) -->\n        \n        <!-- Example footer -->\n        <!-- Designed at 300dpi, 5 inches wide, 7/12 inches high, with a 60pt font  -->\n        <!-- Centered at 1.75 inch indent, equal to 126 points                      -->\n        <!-- 18 points gives a quarter-inch bottom margin                           -->\n        <!--   (1) where a laser printer may not print                              -->\n        <!--   (2) contained within 1-inch bottom margin, with 1/6 inch separation  -->\n        <logo source=\"letterhead-300dpi-1500x175.png\" llx=\"126\" lly= \"18\" width=\"5.0in\" />\n        <!-- This variant will print the footer on every page,  -->\n        <!-- but page numbers should move to a running header   -->\n        <!-- <logo source=\"letterhead-300dpi-1500x175.png\" pages=\"all\" llx=\"126\" lly= \"18\" width=\"5.0in\" /> -->\n\n    </docinfo>\n\n    <!-- The letter element is the container          -->\n    <!-- for the content of the letter.               -->\n    <!-- The xml:id will be the base of the resulting -->\n    <!-- LaTeX file, here john-public-job.tex         -->\n    <letter xml:id=\"john-public-job\">\n\n        <frontmatter>\n            <to>\n                <line>Jane Doe</line>\n                <line>Big State University</line>\n            </to>\n            <from>\n                <line>Department of Mathematics</line>\n                <line>and Computer Science</line>\n                <line>University of Puget Sound</line>\n            </from>\n            <date><today /></date>\n            <salutation>Dear Professor Doe,</salutation>\n        </frontmatter>\n\n        <p>It is a pleasure to write as part of John Q. Public's application for a position in your organization.  I have known John for a very long time now.  I am confident that he will work out very well in your department.</p>\n\n        <p>Of course, John has been a valued member of our department.  So much so, that I have every confidence he will work splendidly for you.  If I can provide more specific details, do not hesitate to contact me at your earliest convenience.</p>\n\n        <backmatter>\n            <closing>Sincerely,</closing>\n            <!-- Include a PDF or PNG scanned image of your         -->\n            <!-- signature, or remove/comment-out the next line     -->\n            <!-- By default the height is 24 points, about 1/3 inch -->\n            <!-- Or supply a length, with TeX units (in, cm, pt)    -->\n            <graphic-signature source=\"signature-300dpi-400x100.png\" height=\"0.33in\"/>\n            <signature>\n                <line>John Z. Smith</line>\n                <line>Associate Professor</line>\n            </signature>\n        </backmatter>\n\n    </letter>\n\n</pretext>\n"
  },
  {
    "path": "examples/memo/README.md",
    "content": "# Sample Memo\n\nLetters convert only to LaTeX.  See the XML source for instructions on customizing masthead.  Be aware that a PNG and a PDF graphics file each need to be available when you process the LaTeX source to make a PDF.\n"
  },
  {
    "path": "examples/memo/sample-memo.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- A sample memo -->\n<!-- (1) This example assumes 8.5 x 11 paper       -->\n<!-- (2) Requires customizing graphics files       -->\n<!-- (3) Conversion to LaTeX only                  -->\n<!-- (4) Many elements are optional                -->\n<!-- (5) pdflatex is superior for graphics formats -->\n<!-- (6) xelatex is superior for Unicode support   -->\n<!-- (7) no cc, typist in backmatter, send request -->\n<!-- (8) no running title on later pages yet       -->\n\n<!-- Copy sample graphics (masthead, intitals) to the directory where you compile LaTeX -->\n<!--                                                                                    -->\n<!-- $ xsltproc -o memo.tex                                                             -->\n<!--      /path/to/mathbook/xsl/mathbook-latex.xsl  /path/to/this-source-file.xml       -->\n<!--                                                                                    -->\n<!-- Look in current working directory for \"memo.tex\"                                   -->\n\n<pretext>\n    <!-- The docinfo element is like metadata, it mostly      -->\n    <!-- migrates various places, or gets used multiple times -->\n    <docinfo>\n        <!-- To customize your memo for your place, you can put scanned images      -->\n        <!-- anywhere on the page. PDF images seem to lead to the smallest files.   -->\n        <!-- pdflatex will automatically convert EPS files to PDF and leave         -->\n        <!-- the conversion behind, so you can harvest those, if desired            -->\n        <!--                                                                        -->\n        <!-- (llx, lly) is for placement:                                           -->\n        <!-- it is the desired lower-left corner of the image on the page, where    -->\n        <!-- (0, 0) is in the lower-left corner of the page and units are           -->\n        <!-- \"true\" points (72.27 points to the inch)                               -->\n        <!-- Specify a width, there is no provision for changing the aspect ratio   -->\n        <!--                                                                        -->\n        <!-- Graphics files need to live in the same directory as the source        -->\n        <!-- (or down a relative path), or can go into (any) directory of your      -->\n        <!-- personal texmf tree (be sure to run texhash or mktexlsr to index them) -->\n        \n        <!-- Example masthead -->\n        <!-- Designed at 300dpi, 4 inches wide, 5/12 inches high, with a 88px font  -->\n        <!-- Designed to be set flush left at similar margin to remainder           -->\n        <!-- (90, 720) will align on to/from info and subsequent paragraphs         -->\n        <logo source=\"fictional-masthead.png\" llx=\"90\" lly=\"720\" width=\"4.0in\" />\n    </docinfo>\n\n    <!-- specify base of output tex filename in xml:id on memo element -->\n    <memo xml:id=\"organization-memo\">\n        <!-- title not printed, but does migrate to internal PDF title -->\n        <title>The Organization</title>\n\n        <frontmatter>\n            <!-- A graphics file with scanned initials can be placed anywhere                 -->\n            <!-- Ideal is just after sender's name, or after comma prefixing title            -->\n            <!-- The size of the printed initials is determined by scaling the height         -->\n            <!-- Small amounts of negative space (0.75ex) precede, and follow, its placement, -->\n            <!-- so you may need to insert extra horizontal LaTeX space directly (\\, or \\ )   -->\n            <to>The Provost</to>\n            <from>Professor Michael Smith,<initial source=\"ms-initials.pdf\"/> Department of Institutional Organization</from>\n            <subject>Organizational Evaluation</subject>\n            <date><today /></date>\n        </frontmatter>\n\n        <p>It appears this place could be much better run.</p>\n\n        <paragraphs>\n            <!-- title is optional, either way \"paragraphs\" provides vertical separation -->\n            <title>Conclusion</title>\n\n            <p>In summary, I hope something will be done.</p>\n\n            <p>And for the sake of all of us who toil and labor here daily, I hope it is done soon.  Real soon.  Promptly.  Expeditiously.</p>\n            <p>Thank-you for your attention.</p>\n\n        </paragraphs>\n\n    </memo>\n\n</pretext>\n"
  },
  {
    "path": "examples/minimal/README.md",
    "content": "# Minimal Example\n\n`source/main.ptx` is a one-page article that might be your first exercise in setting up PreTeXt.\nLook at the top of the file for instructions on processing the file into a variety of output formats\nusing `xsltproc` or the PreTeXt-CLI.\n\n`project.ptx` is a project configuration file for use with the PreTeXt-CLI.\n\n`codechat_config.yaml` is a CodeChat project configuration file, which will use the PreTeXt-CLI for processing.\n"
  },
  {
    "path": "examples/minimal/assets/.keep",
    "content": ""
  },
  {
    "path": "examples/minimal/codechat_config.yaml",
    "content": "# .. Copyright (C) 2012-2020 Bryan A. Jones.\n#\n#  This file is part of the CodeChat System.\n#\n#  The CodeChat System is free software: you can redistribute it and/or\n#  modify it under the terms of the GNU General Public License as\n#  published by the Free Software Foundation, either version 3 of the\n#  License, or (at your option) any later version.\n#\n#  The CodeChat System is distributed in the hope that it will be\n#  useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n#  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n#  General Public License for more details.\n#\n#  You should have received a copy of the GNU General Public License\n#  along with the CodeChat System.  If not, see\n#  <http://www.gnu.org/licenses/>.\n#\n# ************************************************\n# |docname| - Configuration for a CodeChat project\n# ************************************************\n# This file defines the configuration for a CodeChat project. It contains a working `Sphinx <https://www.sphinx-doc.org/>`_ configuration.\n#\n# ``source_path``: optional; defaults to ``.`` (the current directory). A path to the root of the source tree. Relative paths are rooted in the directory containing this configuration file.\nsource_path: source\n\n# ``output_path``: required. A path to the root of the HTML output produced by this renderer. Relative paths are rooted in the directory containing this configuration file.\noutput_path: output/html\n\n# ``args``: required string or sequence of strings. This provides the arguments to invoke the renderer. These strings may optionally contain the following replacement values:\n#\n# - ``{project_path}``: an absolute path to the directory containing this file.\n# - ``{source_path}``: the ``source_path`` above, but as an absolute path.\n# - ``{output_path}``: the ``output_path`` above, but as an absolute path.\n#\n# The line below could also be written ``args: sphinx-build . _build``.\nargs: pretext build html\n\n# ``html_ext``: optional; defaults to ``.html``. The extension used by this renderer when generating HTML files.\n#html_ext: .html\n\n# ``project_type``: optional; defaults to ``general``. Define the project type, which enables special processing based on the type. Valid values are ``general`` (no special processing), ``Doxygen``, and ``PreTeXt``.\nproject_type: PreTeXt\n"
  },
  {
    "path": "examples/minimal/generated-assets/.keep",
    "content": ""
  },
  {
    "path": "examples/minimal/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <target name=\"html\">\n      <format>html</format>\n      <source>source/main.ptx</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"latex\">\n      <format>latex</format>\n      <source>source/main.ptx</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/latex</output-dir>\n    </target>\n    <target name=\"pdf\">\n      <format>pdf</format>\n      <source>source/main.ptx</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/pdf</output-dir>\n    </target>\n  </targets>\n  <executables>\n      <latex>latex</latex>\n      <pdflatex>pdflatex</pdflatex>\n      <xelatex>xelatex</xelatex>\n      <asy>asy</asy>\n      <sage>sage</sage>\n      <pdfpng>convert</pdfpng>\n      <pdfeps>pdftops</pdfeps>\n      <pdfcrop>pdf-crop-margins</pdfcrop>\n      <pageres>pageres</pageres>\n      <node>node</node>\n      <liblouis>file2brl</liblouis>\n    </executables>\n</project>\n"
  },
  {
    "path": "examples/minimal/publication/publication.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<publication>\n    <!-- directories are relative to the main source PreTeXt file -->\n    <source>\n        <directories external=\"../assets\" generated=\"../generated-assets\"/>\n    </source>\n</publication>\n"
  },
  {
    "path": "examples/minimal/requirements.txt",
    "content": "pretextbook == 0.7.0\n"
  },
  {
    "path": "examples/minimal/source/main.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- To process this file with PreTeXt-CLI do                                                     -->\n<!--                                                                                              -->\n<!-- (1) HTML:                                                                                    -->\n<!--     pretext build html                                                                       -->\n<!--                                                                                              -->\n<!-- (2) LaTeX:                                                                                   -->\n<!--     pretext build latex                                                                      -->\n<!--                                                                                              -->\n<!-- (3) PDF:                                                                                     -->\n<!--     pretext build pdf                                                                        -->\n\n\n<!-- To process this file with xsltproc do                                                        -->\n<!--                                                                                              -->\n<!-- (1) LaTeX/PDF:                                                                               -->\n<!--     xsltproc -o minimal.tex PATH_TO/mathbook/xsl/pretext-latex.xsl source/main.ptx           -->\n<!--     pdflatex minimal.tex                                                                     -->\n<!--     xelatex minimal.tex                                                                      -->\n<!--                                                                                              -->\n<!-- (2) HTML:                                                                                    -->\n<!--     xsltproc PATH_TO/mathbook/xsl/pretext-html.xsl source/main.ptx                           -->\n<!--     <browser>  minimal.html                                                                  -->\n<!--                                                                                              -->\n<!-- (3) CoCalc worksheet (parameter causes a single file for output)                             -->\n<!--     REMOVE the \"X\" in the double dash (which is not legal in an XML comment)                 -->\n<!--     xsltproc -X-stringparam chunk.level 0 PATH_TO/mathbook/xsl/pretext-smc.xsl source/main.ptx   -->\n<!--     <CoCalc> minimal.sagews                                                                  -->\n<!--                                                                                              -->\n<!-- (4) Sage doctesting                                                                          -->\n<!--     REMOVE the \"X\" in the double dash (which is not legal in an XML comment)                 -->\n<!--     xsltproc -X-stringparam chunk.level 0 PATH_TO/mathbook/xsl/pretext-sage-doctest.xsl source/main.ptx  -->\n<!--     <read further instructions in> minimal.py                                                -->\n\n<pretext>\n\n    <docinfo>\n        <macros>\n        \\newcommand{\\doubler}[1]{2#1}\n        </macros>\n    </docinfo>\n\n    <article xml:id=\"minimal\">\n        <title>A Minimal Article</title>\n\n        <frontmatter>\n\n            <bibinfo>\n                <author>\n                    <personname>Robert A. Beezer</personname>\n                    <institution>University of Puget Sound</institution>\n                </author>\n                <date><today /></date>\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n\n            <abstract>\n                <p>This is a very short article, but it still exercises some advanced features of MathBook XML.</p>\n            </abstract>\n\n        </frontmatter>\n\n        <introduction>\n            <p>This is a short paragraph to introduce the article (but it is not the abstract).  It is optional, in case it would be preferable to have the first section be titled an <q>Introduction.</q></p>\n        </introduction>\n\n        <section xml:id=\"section-textual\">\n            <title>Just Some Text</title>\n\n            <p>Now a single paragraph inside a titled section of the article.</p>\n        </section>\n\n        <section xml:id=\"section-interesting\">\n            <title>A Bit More Interesting</title>\n\n            <p>The previous section (<xref ref=\"section-textual\" />) was a bit boring.</p>\n\n            <p>This paragraph has some inline math, a Diophantine equation, <m>x^2 + \\doubler{y^2} = z^2</m>.  And some display math about infinite series: <md>\\sum_{n=1}^\\infty\\,\\frac{1}{n^2} = \\frac{\\pi^2}{6}.</md>  Look at the XML source to see how <latex /> macros are employed universally across all possible output formats.</p>\n        </section>\n\n        <section xml:id=\"section-computation\">\n            <title>Computation</title>\n\n            <p>The following is a chunk of Sage code.  Your output format will dictate what you see next.  In print, you will see expected output.  In HTML you will have an executable, and editable, Sage Cell to work with.  In a SageMathCloud worksheet, you will be able to execute and edit the code with all the other features of SageMathCloud.  Note that if you include the expected output in your source, then you can test the example to verify that the behavior of Sage has not changed.</p> \n\n            <sage>\n                <input>\n                A = matrix(4,5, srange(20))\n                A.rref()\n                </input>\n                <output>\n                [ 1  0 -1 -2 -3]\n                [ 0  1  2  3  4]\n                [ 0  0  0  0  0]\n                [ 0  0  0  0  0]\n                </output>\n            </sage>\n        </section>\n\n    </article>\n\n</pretext>\n"
  },
  {
    "path": "examples/pug/.gitignore",
    "content": "*.html\n*.xml\nnode_modules/\nknowl/\n"
  },
  {
    "path": "examples/pug/authors-guide/windows.pug",
    "content": "doctype xml\n\nchapter(xml:id=\"windows-install-notes\")\n    title Windows Installation Notes\n    introduction\n        p.\n            This document explains the best known way to install the\n            MathBook XML toolchain in a Windows environment. It has been\n            tested on Windows 7, 8, and 10. We assume that none of the\n            listed tools or equivalents have been previously installed.\n            That may complicate matters. This is especially true if you use\n            Cygwin, or if you have already installed Python on your\n            machine. MathBook XML compatibility with existing Python installations\n            is addressed elsewhere in this document (future version?).\n    section(xml:id=\"setup\")\n        title Setup\n        introduction\n            p.\n                In this section, we do some initial setup,\n                establish notation, and issue warnings. Some of the steps in\n                this process are dangerous. Typos could lead to an unstable\n                system, or possibly even to unrecoverable system errors.\n                Double-check everything.\n\n        subsection(xml:id=\"notation\")\n            title Notation\n\n            p.\n                Strings enclosed in <c><less />angle brackets<greater\n                /></c> are variables whose values you should substitute in\n                typed expressions. <c><less />username<greater /></c>, for\n                example, should be replaced with your Windows username\n                (mine is <c>drosoff</c>, e.g.). Throughout this\n                installation process it is very important to pay attention\n                to the direction of slashes <c>/</c> and backslashes\n                <c>\\</c>.\n\n        subsection(xml:id=\"initial-windows-setup\")\n            title Initial Windows setup\n\n            p.\n                It is easier to see what is happening if your Windows file\n                browser is not set up to hide file extensions from you.\n                Disable the <q>hide file extensions</q> behavior before\n                proceeding. In Windows 7/8, this can be done through the\n                Control Panel. In Windows 10, there is a checkbox somewhere\n                in the ribbon for it.\n\n            ol(xml:id=\"initial-windows-setup-steps\")\n                li: p <em>On Windows 7 or 8</em>:\n                    ol\n                        li: p.\n                                Open the Start Menu and type <q>Control Panel</q>. Select the <c>Control\n                                Panel</c> entry from the popup list.\n                        li: p.\n                                Type <q>Folder Options</q> into the search\n                                box in the Control Panel window. Select\n                                <c>Folder Options</c> when it\n                                appears.\n                        li: p.\n                                Select the View tab.\n                        li: p.\n                                Uncheck the box for <q>Hide extensions for known file types</q>.\n                        li: p.\n                                Click OK until there are no more OKs to click.\n                li: p.\n                        <em>On Windows 10</em>: Coming soon.\n\n        subsection(xml:id=\"a-word-on-path-names\")\n            title A word on path names\n\n            p.\n                An appallingly large fraction of the difficulties of using\n                GNU/Linux-based utilities with Windows come from the\n                differences in formatting path names. Windows path names\n                begin with a drive letter (usually <q>C</q>) and a colon.\n                Like all path names, they describe a path in a rooted tree.\n                The root directory (folder) in Windows is called <q>\\</q>,\n                backslash. Note the direction carefully. Children of the\n                root node are either subdirectories or files in the root\n                directory (leaves). The path to my downloads folder is:\n            pre C:\\Users\\drosoff\\Downloads\\\n            p.\n                The trailing backslash is often unnecessary, but it is an\n                easy way to see immediately if a path name refers to a file\n                or to a directory. Windows path names are not case-sensitive.\n            p.\n                Linux/Mac OS X path names are quite similar, but lack drive\n                letters, start with an explicit reference to the root, use\n                forward slashes, and are case-sensitive. A path to a\n                typical Linux user's download folder might be\n            pre /home/typical.username/Downloads\n            p.\n                Again, Linux/Mac OS X pathnames are case-sensitive. The Git\n                Bash shell for Windows is an emulation of a Linux\n                environment, and the utilities within it expect path names\n                that follow Linux conventions. So we conform to this\n                expectation as follows.\n            ol\n                li: p Remove the colon, but keep the drive letter.\n                li: p All backslashes <q>\\</q> become slashes <q>/</q>.\n                li: p Add an initial slash preceding the drive letter.\n            p The path name to my Windows download folder becomes\n            pre /c/users/drosoff/Downloads\n            p.\n                Even though Git Bash is pretending to be a Linux shell,\n                path names are still the underlying Windows path names, and\n                therefore are not case sensitive. You can verify this using\n                tab-completion.\n            p.\n                Path names that begin with the drive letter (Windows) or\n                the root <c>/</c> (Linux/Mac OS X) are called\n                <term>absolute path names</term>. Their referents do not\n                depend on the location from which the path name is invoked.\n                <term>Relative path names</term>, on the other hand, begin\n                in the so-called <term>current working directory</term>. A\n                relative pathname might look something like this:\n            pre ../../examples/sample-article/sample-article.xml\n            p.\n                The symbol <c>..</c> is a shortcut for the parent of the\n                current directory. Thus, the relative path name above means\n                blockquote\n                    from where we are, ascend two levels, then descend into the\n                    <c>examples</c> and <c>sample-article</c> subdirectories,\n                    and find the file <c>sample-article.xml</c>.\n            p.\n                Path names that contain spaces are <term>evil</term>, and\n                should be avoided in many cases. Unfortunately, all Windows\n                default program installation locations contain at least one\n                space (directory name <q>Program Files</q>). This does not\n                appear to cause problems, except when installing ImageMagick\n                (<xref ref=\"installing-imagemagick\" autoname=\"yes\"/>). To be\n                extra careful, you could always choose an installation location\n                that is free of space characters.\n\n        subsection(xml:id=\"do-i-have-64-bit-windows\")\n            title Do I have 64-bit Windows?\n            p Find out on Windows 7:\n            ol\n                li: p.\n                        Open the start menu and type <q>Computer</q>.\n                        Right-click the <c>Computer</c> item in the popup\n                        menu.\n                li: p Select <c>Properties</c> from the drop-down menu.\n                li: p.\n                        Read in the right-hand side of the pane to find the <q>System</q> heading.\n                li: p.\n                        From the <q>System type</q> entry, read whether you have a 32- or a 64-bit OS.\n\n        conclusion\n            p.\n               Now you are ready to begin installing the various pieces\n               of the MathBook XML puzzle. The first one,\n               <c>xsltproc</c> (<xref ref=\"installing-xsltproc\" autoname=\"yes\" />),\n               is the most annoying. You might want\n               to go get a snack or another cup of coffee.\n\n\n    section(xml:id=\"installing-xsltproc\")\n        title Installing xsltproc\n\n        subsection(xml:id=\"download-and-install-executables-and-linked-libraries\")\n            p.\n                This is the most annoying part of the installation. Obtain four\n                zip archives from <url href=\"ftp://ftp.zlatkovic.com/libxml/\">\n                Igor Zlatkovic's FTP site</url> that hosts the most recent\n                Libxml binaries for Windows. At the time of this writing, the\n                64-bit binaries were considered experimental. I have had no\n                trouble using the 32-bit binaries on my 64-bit Windows 7\n                system, so I suggest that all <pretext/> users download the most\n                recent 32-bit version of the following libraries:\n\n            ol(xml:id=\"list-zip-files-xsltproc\")\n                li: p.\n                        <c>iconv</c> (filename something like\n                        <c>iconv-1.9.2.win32.zip</c>)\n                li: p.\n                        <c>libxml2</c> (filename something like\n                        <c>libxml2-2.7.8.win32.zip</c>)\n                li: p.\n                        <c>libxslt</c> (filename something like\n                        <c>libxslt-1.1.26.win32.zip</c>)\n                li: p.\n                        <c>zlib</c> (filename something like\n                        <c>zlib-1.2.5.win32.zip</c>)\n\n            p.\n                We only need a handful of files from these archives. So the\n                simplest thing is to leave them in your Downloads folder and\n                grab what we need. Create a new folder <c>C:\\xsltproc</c> (it\n                can be anywhere, as long as it's a new location). We'll call\n                this location <c><less />xsltproc<greater /></c> in case you\n                named your folder something different.\n\n            p.\n                Extract the following files from the four zip archives you\n                downloaded above into <c><less />xsltproc<greater /></c>:\n\n            ol(xml:id=\"list-extracted-files-from-zips-xsltproc\")\n                li: p From <c>iconv-*.win32.zip</c>:\n                    ol\n                        li: p: pre iconv-*.win32\\bin\\iconv.dll\n                li: p From <c>libxml2-*.win32.zip</c>:\n                    ol\n                        li: p: pre libxml2-*.win32\\bin\\libxml2.dll\n                        li: p: pre libxml2-*.win32\\bin\\xmllint.exe\n                li: p From <c>libxslt-*.win32.zip</c>:\n                    ol\n                        li: p: pre libxslt-*.win32\\bin\\libexslt.dll\n                        li: p: pre libxslt-*.win32\\bin\\libxslt.dll\n                        li: p: pre libxslt-*.win32\\bin\\xsltproc.exe\n                li: p From <c>zlib-*.win32.zip</c>:\n                    ol\n                        li: p: pre zlib-*.win32\\bin\\zlib1.dll\n\n        subsection(xml:id=\"change-path-environment-variable-xsltproc\")\n            title Change PATH envronment variable\n            p.u\n                <em>Note: if you prefer not to meddle with this, it can be\n                avoided. See <xref ref=\"installing-git\" autoname=\"yes\" />.\n                </em>\n\n            p.\n                Now, we need to make sure your system can find these files when\n                we need them.\n            ol(xml:id=\"steps-change-path-environment-variable-xsltproc\")\n                li: p.\n                        Open the Start menu and start typing <q>Edit\n                        the system environment variables</q>. Select this\n                        option when it becomes visible.\n                li: p.\n                        Click the Environment Variables button near the bottom\n                        of the dialog.\n                li\n                    p.\n                        In the bottom part of the dialog labeled <q>System environment variables</q>, look for a\n                        variable named <c>PATH</c>. You may need to\n                        scroll.\n\n                    ol\n                        li: p.\n                            If you don't find one, create it using the New...\n                            button. Make sure to use all capital letters.\n                            (This really shouldn't happen. Make sure you are\n                            editing the <em>system</em> environment variables,\n                            not the <em>user</em> environment variables.)\n                        li: p.\n                            If you do find the <c>PATH</c> variable, select it\n                            and click the Edit... button.\n\n                li: p.\n                        Regardless of which of steps 1 and 2 you followed, now\n                        you should see a dialog with two text fields. Your\n                        variable name should be <c>PATH</c>.\n                li: p.\n                        If you created this variable, populate the second field\n                        with the full path name of <c><less />xsltproc<greater\n                        /></c>, the location where you put the seven files from\n                        Igor's zip archives. For me this looks like\n                        <c>C:\\xsltproc</c>.\n                li: p.\n                        If you are editing the <c>PATH</c> variable, place the\n                        cursor in the existing value and press the End key, so\n                        that the cursor moves to the back of the line. The\n                        <c>PATH</c> string is a <c>;</c>-delimited list of full\n                        path names, so append the string <c><less\n                        />xsltproc<greater />;</c> (note the semicolon) to the\n                        existing value. If you named\n                        <less />xsltproc<greater /> as we suggested above, then\n                        the last part of your <c>PATH</c> variable is now\n                        <c>C:\\xsltproc;</c>.\n                li: p.\n                        Click OK to save changes.\n\n    section(xml:id=\"installing-git\")\n        title Installing git\n        p.\n            In this section we install the <c>git</c> version control system\n            and some tools to interact with it, including a fairly full-\n            featured emulation of the <c>bash</c> command line shell. I\n            strongly recommend you use the Git Bash shell or another\n            <c>bash</c> emulation, so that you can use Linux commands\n            referenced elsewhere.\n        ol(xml:id=\"steps-install-git\")\n            li: p.\n                Visit the official <c>git</c> <url href=\"https://git-\n                scm.com/download/win\">download page</url> (download starts\n                automatically) and obtain the latest binary for your system.\n            li: p.\n                Find the installer in your Download location and run it.\n            li: p.\n                Choose whatever location you like for the <c>git</c>\n                installation folder. I recommend you use the default.\n            li: p.\n                At the <q>Adjusting your PATH environment</q> dialog, select\n                either of the first two items. I recommend the second, <q>Add\n                git executable to Windows PATH</q>. If you are apprehensive\n                about adding <c>git</c> to the Windows PATH, select the first\n                option. I do not recommend the third option.\n            li: p.\n                Accept the default options for all the remaining prompts.\n        subsection(xml:id=\"changing-path-with-bashrc\")\n            title Changing the path with .bashrc\n            p.\n                In <xref ref=\"change-path-environment-variable-xsltproc\" autoname=\"yes\" />,\n                we promised that you could avoid messing with the\n                Windows environment variables. If you install something else later\n                that wants to use <c>xsltproc</c>, then this might not be the best\n                idea. But if you are only going to use it from within Git Bash, then\n                this will work fine.\n            p.\n                From the Git Bash command prompt, enter this line of text and\n                hit Enter. Don't make any typos. You should substitute your\n                value of <c><less />xsltproc<greater /></c> where indicated, but\n                make sure to conform to the conventions at the end of\n                <xref ref=\"a-word-on-path-names\" autoname=\"yes\" />\n                regarding Windows path names in Git Bash. (I warned you this was\n                going to be annoying.)\n            pre echo \"export PATH=/c/xsltproc:$PATH\" <greater /><greater /> ~/.bashrc\n            p.\n                You may get a message from Git Bash the next time you run it\n                about <c>.bash_profile</c>, which you may safely ignore.\n    section(xml:id=\"installing-anaconda\")\n        title Installing Anaconda\n        p.\n            Anaconda is a well-regulated development environment for Python\n            under Windows, and I recommend it for users who do not already have\n            Python installed. The essential <c>pretext</c> script has <url\n            href=\"https://github.com/rbeezer/mathbook/pull/252\">recently been\n            updated</url> to support both Python 2 and Python 3. Therefore I\n            make no recommendation about which Python version to choose, except\n            to say that as of <today /> support for Python 3 should be regarded\n            as experimental.\n        p.\n            If you already have a working Python installation, skip to\n            <xref ref=\"installing-imagemagick\" autoname=\"yes\" />.\n        p.\n            You have some choice with your Anaconda installation. It actually\n            supports the installation of several independent Pythons side-by-\n            side (since both 2.7 and 3.x are in active use, this is more\n            reasonable than it seems). If you don't need Python for anything\n            else or are simply a minimalist, Miniconda is also an option.\n            Miniconda installs no packages, but these can be installed via the\n            <c>conda</c> utility at the command line later.\n\n        p.\n            Download either Miniconda, Python 2.7, or Python 3.5 from the\n            <url href=\"https://www.continuum.io/downloads\">Anaconda download\n            page</url>. Run the installer and accept all the default suggestions.\n\n        conclusion\n            p.\n                Congratulations, you have successfully installed Python.\n\n            p.\n                If you don't care about images, you can stop here. Much of the\n                <pretext/> functionality is already present. However, to use the\n                <c>pretext</c> script to create SVG images from sources like PDF/PNG\n                images, Sage, Asymptote, or Ti<em>k</em>Z, you need to install\n                ImageMagick and Ghostscript using the directions in\n                <xref ref =\"installing-imagemagick\" autoname=\"yes\" /> and\n                <xref ref =\"installing-ghostscript\" autoname=\"yes\" />.\n\n    section(xml:id=\"installing-imagemagick\")\n        title Installing ImageMagick\n        p.\n            Visit the\n            <url href=\"http://www.imagemagick.org/script/binary-releases.php\">ImageMagick \n            downloads page</url> and grab a binary. If\n            you have a <xref ref=\"do-i-have-64-bit-windows\">64-bit Windows\n            installation</xref>, use the recommended version. If you have a\n            32-bit installation, find the version whose filename is obtained\n            from that of the recommended version by substituting <c>x86</c> for\n            <c>x64</c>. For example, if the recommended version's filename is:\n\n        pre ImageMagick-7.0.1-6-Q16-x64-dll.exe\n        p then a good choice for a 32-bit Windows would be\n        pre ImageMagick-7.0.1-6-Q16-x86-dll.exe\n        ol(xml:id=\"installing-imagemagick-steps\")\n            li: p Run the installer from your download location.\n            li: p Accept the license agreement.\n            li\n                p.\n                    Choose a default installation location that has no spaces in its\n                    folder name. The default choice <q>Program Files</q> causes problems\n                    because of path name issues. I chose\n                pre c:\\ImageMagick-7.0.1-Q16\\\n                p.\n                    It matters because the ImageMagick utility <c>convert</c> is used by\n                    the <c>pretext</c> script to convert your images into different formats.\n                    The <c>pretext</c> script will have a lot of trouble with path names that contain\n                    spaces.\n            li\n                p.\n                    When confronted with <q>Select additional tasks</q>, make\n                    sure that the boxes for <q>Add application directory to your\n                    system path</q> and <q>Install legacy utilities</q> are\n                    checked.\n            li: p If you like, carry out the procedure to verify your installation.\n        conclusion\n            p.\n                Congratulations, you have installed ImageMagick.\n\n    section(xml:id=\"installing-ghostscript\")\n        title Installing Ghostscript\n        p.\n            Visit the <url href=\"http://www.ghostscript.com/download/gsdnld.html\">\n            Ghostscript download area</url> and download the most current\n            binary for either <xref ref=\"do-i-have-64-bit-windows\">\n            64-bit or 32-bit Windows</xref>. Run the installer and accept all the\n            default options.\n\n        conclusion\n            p.\n                Congratulations, you have successfully installed Ghostscript.\n\n    section(xml:id=\"whats-missing\")\n        title What's missing\n        p.\n            Development of a Windows-compatible <c>pretext</c> script\n            (<xref ref=\"pretext-script\" autoname=\"yes\" />) is continuing.\n            If you need help with <c>pretext</c> now, contact Dave Rosoff.\n\n    conclusion\n        p.\n            If you find any problems or bugs, please let us know at the\n            MathBook XML Support group in Google Groups, or email\n            <c>drosoff</c> AT <c>collegeofidaho</c> DOT <c>edu</c>.\n"
  },
  {
    "path": "examples/pug/build.sh",
    "content": "#!/usr/bin/env bash\n# for pug, install node.js and then run npm install (will read packages.json)\n./node_modules/.bin/pug --pretty --extension xml pug.pug\nxsltproc ../../xsl/pretext-html.xsl pug.xml\n\n"
  },
  {
    "path": "examples/pug/package.json",
    "content": "{\n  \"name\": \"mathbookxml-pug-demo\",\n  \"version\": \"1.0.0\",\n  \"description\": \"using the pug template engine to write the clunky xml\",\n  \"dependencies\": {\n    \"pug\": \"^1.11.0\"\n  },\n  \"devDependencies\": {},\n  \"author\": \"Harald Schilly\",\n  \"license\": \"GPL-3.0\"\n}\n"
  },
  {
    "path": "examples/pug/pug-include.pug",
    "content": "- var name = \"content of variable <q>name</q>\"\n\nintroduction\n    p.\n        Besides these basics, Pug also offers #[q true] includes.\n        This means, just write the text and don't think about additional overheads,\n        like that it also has to be an XML document.\n\n    p.\n        This makes it easy to divide your document into smaller parts,\n        while PreTeXt will see the #[q full] XML file later on.\n\nsubsection\n\n    title Variables and Code\n\n    p.\n        You can use variables like that: !{name}.\n        They are pre-processed by Pug and inserted via string interpolation.\n\n    p\n        | You could even go ahead and include some code in your template,\n        | or use #[q mixins] as macros.\n        | E.g. below here, this variable is inserted several times in a for loop:\n        ul\n            - for (var x = 1; x <= 5; x++)\n                li This is iteration #{x}, inserting variable name: !{name}\n\n"
  },
  {
    "path": "examples/pug/pug.pug",
    "content": "doctype xml\n\nmathbook\n\n    // Pug code can contain comments, they will show up as XML comments.\n    docinfo\n        macros\n            | \\newcommand{\\doubler}[1]{2#1}\n\n    article(xml:id=\"pug\")\n        title Pug meets PreTeXt\n\n        frontmatter\n            titlepage\n                author\n                    personname Harald Schilly\n\n                date\n                    today/\n\n            abstract: p.\n                This is a very short demo, how writing PreTeXt\n                can be simplified by using Pug #[xref(ref=\"biblio-pug\")/].\n\n        introduction\n          p.\n              Wouldn't it be nice, if you do not have to deal with verbose XML tags?\n              Write paragraphs that do stand more out and aren't cluttered by too much overhead?\n              What if, you can start writing in version control (Git) friendly multiple line documents?\n              You are finally able to limit yourself to 80 character line lengths and\n              make the source of your documents look more like a tidy\n              Python #[xref(ref=\"biblio-python\")/] program.\n          p.\n              Additionally, all this works well together with Pug's include statement,\n              mixin #[q macros] and much more.\n          p.\n              ... and yes, inline XML tags do just <q>work</q>, too!\n\n        section(xml:id=\"section-textual\")\n            title Some Demo Text\n\n            p.\n                This is just copied from the minimal demo.\n                The interesting thing to see here is the source of this in the #[c pug.pug] file.\n\n            p.\n                Now a single paragraph inside a titled section of the article.\n                Which has some text on a second line.\n                ... and a bit of #[em emphasizing].\n\n            p.\n                The code to accomplish this looks like this:\n\n                pre.\n                    section(xml:id=\"section-textual\")\n                      title Some Demo Text\n\n                      p.\n                        This is just copied from the minimal demo.\n                        The interesting thing to see here is the source of this in the \\#[c pug.pug] file.\n\n                      p.\n                        Now a single paragraph inside a titled section of the article.\n                        Which has some text on a second line.\n                        ... and a bit of \\#[em emphasizing].\n\n        section(xml:id=\"section-interesting\")\n            title A Bit More Interesting\n\n            p The previous section (#[xref(ref=\"section-textual\" text=\"type-global\")/]) was a bit boring.\n\n            p\n                | This paragraph has some inline math, a Diophantine equation, \n                m x^2 + \\doubler{y^2} = z^2\n                | , and some display math about infinite series: #[me \\sum_{n=1}^\\infty\\,\\frac{1}{n^2} = \\frac{\\pi^2}{6}].\n                | Look at the Pug source to see how #[latex/] macros are employed universally across all possible output formats.\n\n            p\n                | We could even write a formula\n                me \\int_0^\\infty 3 x^2 + 1 \\mathrm{d}x\n                | inside a p-tag text on its separate line prefixed by #[c me] only!\n            p   This looks like that:\n            pre.\n                p\n                  | We could even write a formula\n                  me \\int_0^\\infty 3 x^2 + 1 \\mathrm{d}x\n                  | inside a p-tag text on its separate line prefixed by \\#[c me] only!\n\n        section(xml:id=\"section-computation\")\n            title Computation\n\n            p.\n                The following is a chunk of Sage code.\n                Your output format will dictate what you see next.\n                In print, you will see expected output.\n                In HTML you will have an executable, and editable, Sage Cell to work with.\n                In a SageMathCloud worksheet, you will be able to execute and edit the code with all the other features of SageMathCloud.\n                Note that if you include the expected output in your source,\n                then you can test the example to verify that the behavior of Sage has not changed.\n\n            sage\n                input.\n                    A = matrix(4,5, srange(20))\n                    A.rref()\n                output.\n                    [ 1  0 -1 -2 -3]\n                    [ 0  1  2  3  4]\n                    [ 0  0  0  0  0]\n                    [ 0  0  0  0  0]\n\n        section(xml:id=\"section-pug\")\n            title Pug\n\n            include ./pug-include.pug\n\n        section(xml:id=\"section-gotchas\")\n            title Some gotchas\n\n            p.\n                Here are some pitfalls that it's helpful to be aware of if you want to use Pug more seriously:\n\n            paragraphs\n                title The case keyword\n\n                p\n                    | For Pug #[c case] is a keyword, used in program control.\n                    | For example like this:\n                pre.\n                    - var friends = 3\n                    case friends\n                      when 0\n                        - break\n                      when 1\n                        p you have very few friends\n                      default\n                        p you have #{friends} friends\n                p This produces:\n\n                - var friends = 3\n                case friends\n                    when 0\n                        - break\n                    when 1\n                        p you have very few friends\n                    default\n                        p you have #{friends} friends\n\n                p\n                    | Unfortunately, #[c case] is also a tag used by PreTeXt,\n                    | for a case of a proof, so the following Pug code will throw an error\n                pre.\n                    proof\n                      case: p\n                        | First case.\n                      case: p\n                        | Second case.\n                p\n                    | To work around this issue you could use a different keyword,\n                    | such as #[c proofcase] and use a simple script\n                    | to change all instances of #[c proofcase] to #[c case] in the XML Pug produces.\n\n            paragraphs\n                title Braces in inline tags\n\n                p\n                    | The Pug way of typing inline math is to use \\#[m f\\in R[x],g \\in R[y]].\n                    | But Pug will interpret the first instance of ] in this snippet as the end of the tag, producing #[m f\\in R[x], g\\in R[y]].\n                    | There a few ways to avoid this\n                    ol\n                        li\n                            p Define #[latex/] macros for these characters, just like #[c \\lt] and #[c \\gt]:\n                            pre.\n                                \\newcommand{\\lb}{[}\n                                \\newcommand{\\rb}{]}\n                            p And use these whenever needed (as a bonus you can use #[c \\left] and #[c \\right] in these macros too).\n                        li\n                            p\n                                | Only use non-inline tags for math containing ].\n                                | For example\n                            pre.\n                                p\n                                    | It would be annoying but doable to write: let\n                                    m f \\in K[x]\n                                    |  and\n                                    m g \\in K[y]\n                                    |  so that\n                                    m fg \\in K[x,y]\n                                    | .\n                        li\n                            | Use only XML style inline tags for math &lt;m&gt; f\\in R[x] &lt;/m&gt; (or at least for math containing the ] character.\n\n        backmatter\n            references\n                title References\n                biblio(type=\"raw\" xml:id=\"biblio-pug\").\n                    The magic behind all this is provided by the #[url(href=\"https://pugjs.org/\") Pug Template Engine].\n                biblio(type=\"raw\" xml:id=\"biblio-python\").\n                    Python Programming Language.\n"
  },
  {
    "path": "examples/sample-article/bibliography.xml",
    "content": "<!-- 2024-07-26: this is from a quasi-experiment addition in February 2020  -->\n<!-- at e8977a78cb10f3c86aefc6c44a3017517174e604.  This file can be used    -->\n<!-- to test/refine that new feature.                                       -->\n\n<pretext-biblios>\n\n    <biblio type=\"raw\" xml:id=\"biblio-judson-AATA\">Tom Judson, <title>Abstract Algebra: Theory and Applications</title>.\n    <note xml:id=\"note-judson-AATA\"><p>Another online, open-source offering.</p></note>\n    </biblio>\n\n    <biblio type=\"raw\" xml:id=\"bar\">Tom Judson, <title>Abstract Algebra: Theory and Applications</title>.\n    <note xml:id=\"note-judson-AATA-bar\"><p>Another online, open-source offering.</p></note>\n    </biblio>\n\n    <biblio type=\"raw\" xml:id=\"biblio-lay-article\">David C. Lay, <title>Subspaces and Echelon Forms</title>. <journal>The College Mathematics Journal</journal>, January 1993, <volume>24</volume> <number>1</number>, 57<ndash />62.</biblio>\n\n    <biblio type=\"raw\" xml:id=\"foo\">David C. Lay, <title>Subspaces and Echelon Forms</title>. <journal>The College Mathematics Journal</journal>, January 1993, <volume>24</volume> <number>1</number>, 57<ndash />62.</biblio>\n\n</pretext-biblios>\n"
  },
  {
    "path": "examples/sample-article/customizations-one.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- The \"pi\" namespace is necessary for the \"internal\" -->\n<!-- markup at the outer level of this file.            -->\n\n<pi:customizations xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">\n    <custom name=\"plural-animal\">alligators</custom>\n    <custom name=\"an-emotional-style\"><em>feeling</em>, since it is more fun</custom>\n    <!-- testing use of whitespace, also \"p\" are not  -->\n    <!-- needed here but want more structure to test -->\n    <custom name=\"color-list\">\n        <ul>\n            <li><p>Red</p></li>\n            <li><p>Blue</p></li>\n            <li><p>Green</p></li>\n        </ul>\n    </custom>\n    <custom name=\"xref-to-result\"><xref ref=\"theorem-FTC\"/></custom>\n    <!-- exposes a bug, same substitution in both files -->\n    <custom name=\"a-URL\"><url href=\"http://example.com\" visual=\"example.com\"/></custom>\n</pi:customizations>\n"
  },
  {
    "path": "examples/sample-article/customizations-two.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- The \"pi\" namespace is necessary for the \"internal\" -->\n<!-- markup at the outer level of this file.            -->\n\n<pi:customizations xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">\n    <custom name=\"plural-animal\">mice</custom>\n    <custom name=\"an-emotional-style\"><alert>shouting</alert>, because we are often <alert>ANGRY</alert></custom>\n    <!-- testing use of whitespace, also \"p\" are not  -->\n    <!-- needed here but want more structure to test -->\n    <custom name=\"color-list\">\n        <ul>\n            <li><p>Crimson</p></li>\n            <li><p>Navy</p></li>\n            <li><p>Emerald</p></li>\n        </ul>\n    </custom>\n    <custom name=\"xref-to-result\"><xref ref=\"corollary-FTC-derivative\"/></custom>\n    <!-- exposes a bug, same substitution in both files -->\n    <custom name=\"a-URL\"><url href=\"http://example.com\" visual=\"example.com\"/></custom>\n</pi:customizations>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-contour-sbs.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmpir68p_cf/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.13.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='285pt' height='288pt' viewBox='0 -288 285 288'>\n<g id='page1'>\n<g transform='scale(1 -1)'>\n<path d='M0 .003906H284.965V287.664H0Z' fill='#fff'/>\n<image x='27.930299' y='27.441898' width='200' height='200' transform='scale(1.20515,.936925)' xlink:href='data:image/jpeg;base64,\n/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy\nMjIyMjIyMjL/wAARCADIAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW\nV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC\nAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq\n8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCzfZufGUK9QuT+tdbr77RHEOoUD9K5TSl+1eNnPULgfrXS6u3m6oR2FfAY6DxGZQpI6vEPEexwFOmuyM1YjjpTvKNZ+ta3PpjbILQyY74rMsvFmoXM4R9PZQT3Wv0ahwdOVJTuj8Yhha9SHtIpW9TfZCrA+9a2ryeT4Vc/3v8A\nCqEx3xRsV2s2Mj0qXxbL5HhaNe5BNfned4P6vj40L31PtvD2m6uYkPw7hzCr4+8c16DrL7LBvpXI+ALfZZRcdhXSeJZdlg/0r7CiuWifpmZS9rmNvM8y0VPtXjSRuuCBXR67J5l4VHrWH4JTzdeu5+uGJ/IVrXH77UpCexxXxsqLxeaqkj5nxLxPs6cKS7L8iqIjil8o\n1j6v4jurCYxwWLOBxnGai0vxNfXs6pJYFQT3FfpEeDp+y57o/I1hK7p+0sreqNtF2zpn1qx41l8rw7Gg7qTQ6g3MQAwSelVfH0mLa0g9dox9TX5vmGF9jmcaK6M/RfDSHtMY5djd8BwbLKPjsK3fE8uywf6VT8HQ7LGP6U3xnNssZOe1fZx92ifdVX7XMfmcX4Gj8zWb\nqf0Zj+VaWpN5t6wHaq3gGPbY3Vx6hj+ZqwmHmlkIzgk4r43C4Z47NXTR8f4m4q1eNJEQiOKDEa5/UfFV7azFItPZgD6Vb0bXrvUZlSayKA98YxX6PLg6caXO2j8wlhK8aftGlb1Rr2a4vUHrVf4gOS1rAO5QVoWyZ1OMCsjxo/m+IrWH0cZ/AV+a1KChmvs10P1Pwyhz\nVJVOx3XhCLZYp9Kr+NZtljJz2rV8OR7LBPpXL/EC42WUvPY19rP3aJ9bhl7XMfmZngGPbptxP6gn8zRVrwtH9n8KO3QnAor80xK9riJy8z5ri/MOTMpRMjwapm8SXM3o/wDIVrai+NRZqo/D+M/6VcHvuOasXzb7xsdq9GdWX9pOcehj4mVE5xp9h/mqw+dVb6jNAkjX\nlY0B9lFV8GkINfWLOcYo2uz8h5EToTcXSL75qHx9JtsbW39Qo/M1a0pN14M+tZnjiTzdbtbf0cD8q+UlVnisyjKe5+t+GmGSrOqdp4Mg8uxj47U/xjN5djJz2q54Zi8uwTjtWB49uNllLz2Nfcy92ifW0l7bMfmYfgCP9zdT+u45+pqeV9t5IfepPBUXkeHZJD3UCqsx\n33DketfCYetJZhKpHdM+I8SaqqYtR7Fgyo33kRj7jNAlRPuoq/QYqvg0hBxX1rzrGKNrs/LuRFyxBuL9D2BrK8bSGXXrW364cD8hW7oCbroH3rmtYc3fjSNeoUk18rhpyxGZc8tz9n8NsOoU51fJnpvhqLy7BPpXO+PrjZZS89jXW6Onl2C/SvPviJPmFo8/eOK+3rPl\non0mWx9rmN/Mm8Hw+T4Ykb1AFV45NkjfU1p6Sn2bwsnbd/hWP952I9a+Gy6vOGMnVhvc/NvEKqquYMtGSNuWjQn3UUecqg7FVfoMVXwaa2cV9XUzrGclm2fnvIjV0SMzX+89M1zWqubvxqg6hcn9a63QQFjeT0Un9K5DTwbrxjM/ULgfrXzGWt1swlOR+5eHtBUcDUq+\nTPW9JTy7BfpXnfxDmynl5+8wH616TbDy7AfSvKPG0nnapBD/AHpBX2eMly0We5kkefGuXY6Gwj8nwpGP73+FFTTgW+g2yf7GaK/OKV5OUu7Z+YcWV1PMptszPBkX2bw3LKepAFRookZ5WIAzkk1e02P7P4SQDgt/hVFEjmtWhckKwxxX0PDtKjiMxnKu9Lh4h4l1cx5e\nhA+p6ZE217pM1PBNa3YP2eZX9hWFP4K06eUu0z5rU03SbTSFPkszNjGTX6dicLk0KLcZanw1WOGUL05Ny9DV0dM6nt+lc7rj/a/Gka9QpJrqdCXM8s/ZQT+VcnZZvPGUz9QuB+tfk+DjGpmc3HZH7R4c0nTwNSs+zPWdGTy7BfpXn/xEnzC0efvHbXo9qvl2A+leUeN5\nfO1OCH+9KP8AGvsMXLkos+gyWPPjufsb+mr9k8Jp2Lf4VnxoiRGWVgq9STWper5Og2sY/u5NZc1vFe2nkSkgeor5/hOhh6+KnPEPS5+Rcb4n2uaSTeiIG1XS1babtM1ZjaC5jLwSK4HpXPt4I05pd5mfNbVnZW+l27RwEnPUmv0TH4bJ6dBypy1sfKVo4dRXspNvzRsa\nANssrf3QT+lcnZA3XjKZuoXA/Wut0z9zpV1OePkNcx4QjNxrlzMecyYFfluURU8bOa2P3LgWk6OTzqPqj1q1Hl2A+leUeN5fO1OCH+9IK9YlPl2H4V4/rLfavFtvH1wxNfVZjPkoN+R7GQq9eVTsmdZd/wCjaFaxDglay8Q28IeaRUX1NaeunYLeMdFUD9KyL6wg1O3W\nOVmXA7V5XBuHwtWcp4l2R+KcVV/bZpPmelyMatpZbb9rTNWcRSw+ZE4dfUVz6eCNNWXf5z5rcjhhsbTyIc49T3r7jNsPlFLDSlSld2PArRoK3sZNvzRr6YfL0i6k9ENcx4QjM+uXMp5zJxXRzn7J4VmY8FuKyvh7BvJlP8Tk/rX5rkEOavOfmfvfC1N4fIXJ9bHpsp8u\nw/CvH9Zb7V4tt4+uCTXreqP5dg30ryWwX7Z42J6hcD9a+hzepyYeT8j0ciXKqlXsmdXrjbUggHZQP0oqHW3zqY9BmivByTCUamG5qj1ufg3EGIlVzCpLzLM6iDQbaP8A2M1goxArc119kcUC9lA/SslICR0rjyXD1qt500d/FmJjVzGb7DN5pruSMVP5B9KiljK817eK\noYqnSblc+Zi4tm3ZAW2jXEvQ7K5XwfGbjWrmY85krpdQl+z+FZW6Fv8ACsr4eW+5PNx99i35mvM4ehzVZz8z+g+Gqaw+RuS62PS5j5Vh+FeP6y32vxbbx9cEmvWtWk8qwb6V5NpiG+8aseoUgV9DnFTkw8n5HbkS5Y1ar6JnW65hLaKP+6gH6VhqxArU12Xzbzy16Zqi\nsBx0r5rJcLXnDmpo/CuIcRGrj5y8yPeaaSWYL6mpzAfSo9m2ZPrXp46jiadJud7HjU+WUkjWv2Fp4XlPQtxWP8PbfcDL/eYt+tW/GE/2fwyid2BNXfAFr5dlFx2Fc3DdO/NPuz+h8sgsNkS8zsNVfyrBvpXklgpvPGrHqFwP1r0/xJN5Vg/0rznwVH5+v3VyeQHJ/KvU\nz6ryYaR0ZR+6wlaq+xv+IHBuMDsaylc4q3qTme+YDoDUIgOOlePk+ErypXpo/n/N68auMnLzI95pEzJMq+9TGA+lJbpi8Qe9dOZUsRSotz2OPDKM6sY+ZY8XTfZfDKIOMgmrPw/tfLsouOwrI8fynyLW2HfaMfU113g638uxj47U+Gqf7rm7s/omEfq+SU4dzQ8Ry+XY\nP9K838GIZ/EdzOeQH/lXbeM7jy7GTntXKeAYttpc3R7hjn6mt+I6nLh2u5WDfsMrq1WW9Xfdek+9FQzkz3Tt2BxRXnZfg67oJxWh/PWOrRqYicvMu6q/m6qQegrA1ybWY2xp8fydiO9at8/+nu1IJyO9fQcJZnQwFD343ZePqt42dVpPV7nLWE3il5wJlIXPNdTLuMca\nvjzDgNj1oNw3rRaKbi8Qdga9HiPiOjiMLKFOCTZlFvFVopRUfQd4wm+zeGYoh1YE1peArXy7KPjsK5/x7LuntLNT3UY/U13HhK38qxTjtXzXDdK1Lm7n9C8n1bJadPuT+J5/KsH57V574Hj87WLu6PZmOfpXW+N7ryrGTntXPeBIfL0i4uCMFhn8zV8SVbUHHuOg/YZR\nVqdyxKwl1GRj2OK53WbjxAkzCyjwnbFbLvtupD6mpBcH1r2uF83w+AwyjOKbP55q1XHEyqOKlq9zndJl8SyTj7UMJnnNdKw33cSDk55xUbXBx1qxpMZuL9WPQGlxTxDRxWGcKcUjTDReLxcEopa9DP8AH0p8u0tB32jH1rsfCFv5VinHauC8UyfbPFcEIOQrZx9K9P0G\nLyrBeO1eVw7S5cOn3P6Dxy9hltGj5GN41ufKsZOe1cx4Di2aZc3J6sCQfqau/EO6K2kig8kYFP8ADsP2Xwr0wWx/KuTiWp7ih3ZniJfVsjnLuVozvllfq2TjNcxqdz4mE7C2jwmeK6COTazfU1MLhvWvquHM6w+BwsYSgmz+eVVdOrKbipX7mNokmvPKv24Yj75roLRP\nN1RAOgqs1wSOtaOgx7rhpmHA5/KvM4uz6ljKHJTikd2WUni8fC0Utehz3jCT7T4mtrcHIVv5V6V4eh8qwX6V5Yx+3+NWPXZ/U/8A1q9e09PKsB9KyyKl7PDR9D99zj93hqNFdEcP8QbvZZyAHnFReGovsnhRmxgtgVm+PpzLcRwg8tIB+tbyx/Z/DMEfTIzXj8R1LyjD\nuzkzqf1bIWlu7mZHvFs7xKGlxkD3oqOGUqoor7LKc6w2GwkaTgnY/ni7Td0mE7ebcMw9aTYac8kNnbGedsL/ADrIbxlpCSbPmJrhyrhXE18PGcVub8tbEScoRbNQqcVo6FHvux9aoWd7bajAZIM4HrWtoQ2NPKeign9K8HiXLamAhyz3Z6WRUpVMwhTa1ucv4gk+3eMY\no+oVi1eqaJF5Vgv0ryjTFN94vnk6hSAK9fgHk2A+letk1L2eHivI/ec8fJTpUF0SPPPiHdf6O8YPLcCrehxCy8LKSMb/AOgrn/GUxutYt7cc7pBn8K6W/wD9G0e1t14JUZ/GvB4gm6lWFJdWcHEVdYLIku5inLuzepp2w0XN3a6bbiS4YjPQCspfGWkNJsG7NfWYDhPF\nVKCnFH4FGnWrXnCLaNNlOK2vD6hd0n90E1lRTw3lr50Odp9a1NPb7Pot1MePlIFfKcSYCeCkqUt2e7wtSdbMoQaOTts33jOR+oTj9a9fs18mwH0ryjwZD9p1e4uDzukOPwr1i4bybA/Svo8sp+zoJeR+259L97CiuiSPKvHU/n30NuD9+QV0jAWnh63j6ZXNcjqRN/4v\ngiHIUk11euNh4bYdFABH0r5fOm6+LhSieVxliVhMnhT7r8zFVSefWn7DTL7U7LSkH2hjnGcCs6HxhpM8mxN2a+0wvCWKlSUkj8JjSrVFzwg2jRdSBW9pxEGk3E3TEZrIdo5bZZY/usOM1fvZPsnhORjwW4r4viDBSwteNCW7PquCqLr5lFW2Oc8KRm61+5nPP7zAr1xz\n5Nh+Fea/Dy13J5xH32LfnXoerSeTYN9K+twUOSij9fzuXPjFTXTQ8n19/tvim2hHOGLV12sMILOGEfwoBXJaTGdQ8aO3VUIFdJq8n2jUtg6LXyGYxliswjSieH4gYpYbL6dFdjLVDiiodQ1vT9LbZOxLDriivuaHCGLlTTSPxOFDEVFzQg2i6yw3EHlTIGX0qj/YGj7t\n32UZqcE4pcmuTDcR4qhSUIOyM4ucPhk0SKsFrB5dvGEX2rUiP2Lw7czHgsuKx4wZJlU+tXvFk4svDSxjgsCa+SzrMKuY4mEajvqfccCYD2+Yqb1sZXgS3M97LcEffkJr1K9fybA/SuI+H9l5dnGSOcV1XiKcQ2D89q+ww0fZ0T9RzaftsfyroeWyZ1Dxoi9Qn9TXVa82\nLqNOycfkK53wfF9r8SXFywyqv+grY1iTzLw/WvicdV58xTX2T5/xGrKGGhh10SIJ4ba8iCXEYcCqS6Do6NuFqM1YBOKMmvtaPEuLpU1GL0PxaMpxVoyaXqSMUjiEMKBV6ACrutSCw8JkZwX/AKCqVmnm3Sg9qZ4+m22lvZr1YAYHvXx2ZYypmOOh7R31P0bw6wHtcd7V\n9Cz8PLQi3SRhy3Jrudcm8mwbntWN4MtPJsY+O1SeMLoQ2MnPavtKa5KJ+g4uX1nMbeZwXhuP7d4vmmPIRgP61varLu1Mse1Z3gGHKXN43fc2frU98++8Yivhp1m8yc19k+V8S66bjQXSw26s7K+x9piDn1qtFoekwtvS1XIqbJoLGvt48T4uEOVPQ/IoyqRXLGTt6kzE\nSNHCgAXOAB2FHjab7NoUFspwzDp7mpdKi828BPrWV41l+067bWg5AcAj6V8ZiMTPH5lGU9T9U8NcCvbuu+h1fgaz8qxj47CtTxVciGxfntU3hq3ENinHaud8fXvlWUnPY19q/con2Ub4nMfmYHgSLzL27vGHdjn9Kvzyf6fIx9ad4Nt/svh2SVurADNVJW3XDketfDYe\nu1mMqy6M+I8SsQqmJVNPRBdabp96xeeAMx60UZNFfdQ4oxkVZM/MYzqxVoyf3ljyAvUgfU0eRkcEH6Vy194c1u4nLR321Sf71aeiaRe6e4e7uy+O2c5r6Krw/l1Olze0Rc6NONPmVVN9jVtY/wDTo1qn48m33FpZKepUY/U1saTH5+p7/wCFe9c3qkh1PxoqjlUJNflK\npxqZq1DaJ+t+GmGcYzxMulz0Twla+TYpx2qh43vBDYyc9jXR6TEILBfpXnXxBuy48hTy7Bfzr7Ks/Z0T6nAR+s5hd9x3gaDyNInu2GCwP5mlYNcTu/bPFX7WP7B4UiQDDOM1QaOSSxaOF9khHBr5fh/BwzDMJyqOyufmviFj3XzD2aeiH+SBwWA+poMHGRyPauSuPDOu\nSzlhfkLn+9W9o+n3OnRN9qufMYjGM5r9KxWQ5dRouaqJnwtWjThDmjVUn2NXSYt2ohfpWH4ok+3eK4IFOVVs4+ldNoi7XnuT0QEg/SuU0tTqPi6eY8hDtFflWCpxq5lJx2R+zeHWHdHBVMTLsz1TQYBDYLx2rjPiFelbV0U8ngV30CiCwH0ryfxjObzWLe2HO6TJ/Cvs\ncXP2dFn0GTw9rjXUey1Nzw/CNP8ACu4jBfiqccTSsXI5PNamoj7NpFrbDj5Rn8ayb23nuLDyrWURv3Oa+e4Wy+nj8VOdZ2Vz8l43xzxOZuN9ETeSo6sv50jwYXPauRPhfXGn3G/O3P8AerptPtZbCzKTz+Y596/QcwyPL8PQc1UTaR8lWpQppOFRSfZGvoCf6Q7novNc\nqxOo+NGPUR/1NdZYn7Lo11ctwSpx+Nc54MgN3q09yed0hx+FfmGUU1Vxs5rZH7jwNQeGymdeW7X5nqtgnk2A+leYePbkz3Mdup5dwK9RuGEFge3FeQaiTqPi+GIchDk19XmNT2VBs9nIo3ryrPpdnVgCw8N28Q4LDNZkUBYZNaWuMFlhtx0QAY+lYur2d3e26pZziPA5\n5xXk8IZZSxs5VK0rI/FuK8Y8Vmkk5WV9y35K/wB5fzorkYvC+tibc9+duf71FfosuHcuj/y8R4UsPST0rJ/I6rzj60x5SRTvLPpUZT94o96/OcVXxMKbcmzCEU2kbmnKLTTLi5bghDz7muV8Kwm+1+4uSM5fAP0rodfuBYeFyM4L1D8PbErbpIw+ZvmNefw9SdSrKq+5\n/QXDtBYHJHLrLQ9BciCw/CvINekOoeKLeAcgNuNeqa5OILBue1eXeHIf7S8WTTtyqNjP0r384rqlh5PyO3JF7OFTES6JnU6ziGyhgH8CAVjJIQKv61P594VHrVERH0r5vJqdaMOaHU/CeIMSsRjpz8x3nH1pjSM5Cg9aUxmiFM3KL716WNr4mFJ8zZ5FGCnNRXU1rhxp\n3hmZ+hcYrF8AWhmla4YZMjls1Y8cXP2fR4bVDhnHT3NbngaxEFjHx2FYcN0ebmqvqz+hsuorA5GorRyOn1KQQWB7cV5HAp1PxoO4j/qa9I8V3YgsX57VwngWDzb26v3HG4sD+gr0s+r+zw8joyu2HwdXEPsbevyAzhAeF4FZiykCpr+U3F42OQDUIiPpXjZRTr06V4H8\n/wCb11Xxc5+Y7zj60zJmkVPU0pjNS6fHvvVWunMcRiIUnzs5MLSVWtGHdljxPcDT/DAjHBcZp/w+sDHaRsw5Iyax/Hc/m3trYKe6qR/Ou78KWggsU4xxWnDdC1LnfU/ohU1gsmp0luy14guBBYPz2rzPwnF9u8T3F0wyqtjPsK6/xzfCCxk57GsLwPbfZtHmu3GGYfqa\n14ir8tBxXXQrDSWEyurXfXQsavLvvifeqolIomYz3DN2zSeUfSuPK4V6dJch/POPqqtiJz7scZj60UwxkCiu6dfFJ6tnIlEytJ8TS6jMsZsWUE9cVveWHvY0X1qMPFEP3caJ9Bir2iw+ddmd/urz+Fetxdm+DqYfkw8bNnoYHDrF42EKUbJv1Mjx3Pua009D1wpH6mu0\n8I2YgsU47V55dOdX8Z+qxnP4mvWtNiFvYDtxXm5Bh/Z4dNn9A5klhsDSwy7HO+Nr4QWMnOOK5zwPbm30q4vnGGcE59zUfj+8M0i2ynJkcLitiCEWHhiGIDBcZNefxHWuo0l1Zz5jW+oZHKXWRn7gxluHBIGTxXN3vjJraYxx2DsAeuDXRQSbExQyWzHLQRk/7tfa8PYz\nLcJhYxrRuz+fIVYe0cq0Oa/mZ2ja7JqrhXs2jB746VtWMXnaoijoKrmVIlIjRUHsMVp6OnkwT3j/AMKkj+leFxjmuFrUlTw0bXPSybC/XMxhGnGyvsc14rm/tDxPb2qHKo2fwFemeH7cW9gvGOK8u0ONtT8Uz3B5CttFeuoBb2HpgUsloexw8UfvOdNUqVLDR6JHB/EH\nUClq6KfmPAFN8PwDTfCu/GGcYrD8VznUNet7RTkF8kewrp9TUW2lW9sOMIM/jXhcQVvaVYUvM4OI6/1DIuVbyMlpFtrV7l1LHrgdzXNz+NpIpiiae5HrtNdRHKAm0gEehppS1Jz9njz/ALtfoeS47LMLhowqQu7H4FSqUoturDm+ZV0jVW1SNme2MQAzmtnRYg9+8h+6\ngyfwqg8yqm1FCj0UYrThI0/Qbi4bhmXAP1r5HjHMsPiXGlho2ue5w1gvrmZw5Y2V9jlZmOq+NCeqxn9Sa9b06MW9gPYV5d4ItTd6hNdsM75CR9K9Tu3FvYHtxXdllH2NBLyP2/PJfvIYeP2UkeY+PbszzpaqcmRwuK2Qn9n+GoIV4ZxmuWuSdV8YxxjlYzk/Wuq15wsk\ncI6IAPyr5jOqntsXCl0PJ4zxP1LJo0I7tfmZF1cpp1l5zRmQnoBXON43l87YunPjP9011YlVk2uoYehFM2WoORbx5/3a/TsszHKsPh4wnC7sfhVGpSin7WnzP1I9PvTqFoZXgMWPWipJJdwEaADPAAFFfLZzneFeJ/dR0FGhKpeUI6EDZ6etbquthoE854JXaKyXi/fI\nnctTvGl19k0SG0Q4dx09zXyWZ0JrFxw73ufc8A4H61j1K2iKHgi1N3qEt2wzvckfSvU7txbWB7YFcn4F00W9lGcY4rX8VXotrF+ccV9vh4KlRP07Mp/WcdyR2Wh5tdFtW8YRxD5ljOT9a6zXZBGiW69EULWB4It/tF/dalIOASwJ9ulaFy5vL12/hBr4zEQnj8xVKGtj\n5zxFzCOHowwkXsimoOKdzT3uLKE7ZLmNSO2afFJa3BxDOjn0Br62PDuMjC/Kz8Xbdr2K4BaRV9TWtrdwNN8MNzhpP5VTgi3X0aD1qn46uDLPa6ah6kKR+pr43FUJSx0aD6M/S/DrAqvi3Va0Rc+H2nnyhMy/M53H8a7zWrgW9g3OOKzfCdiLaxTjGBVDxxqIt7GT5scV\n9zBeyon32Ik8ZmNl3OM0OI6r4ukmPKRnGf510WuziW5Kj1qj4Jtvsukz38gw75Ofc07BuJXmY4Gep9K+LjRqZjmLjTV7HyXiRmUYzjhYvbQgAOKXmnNd2EZ2tdRA/WpYzBcAmGVXx6GvrXw9i4Qu0fkbbWrRDAnmXKrU/jW6+yaJFaocM46e5qbS4PN1IKB0rE8TTHU/\nFENqhyiNk/QdK+N9i6uYKm/sn6z4bYJSqSxMlov0Or8CacILKM7ewrZ8UXgt7F+ccVa0G2FtYLxjArjPiBqRS3aNT8zfKPrX3UmqVE+wpp43MfmZPgi3NzqlzqDjgMSCfatHVJvOuzjnBqbQLcaV4X3nhpBiqqICGllYKDySTXxWDwtXMsfJ01ex8J4jZoqmKWHjsiEA\n0pzSm809Tg3cWfrUyiKWMvE6uvqDX1lTIMXThzSWh+YttboNPi867UdcUVe0KMG5klYfKnJ/CivzrHVJKs0tbH6Fw7lLxGD9pbdkenRG81JT/CtYHiGY6t4ritkyY4zn8uBXU2u3TtHnum4O3APua5jwhatqOsz3rjO58A+wr3sA547MJYiZ9hwHl6wOXzxUt7fmenaH\nbC2sF4xgVw/xA1EiEwofmc7R+NehTMLWwPbAryHVXbWPFUNuvzKjbjX1WOqqjQbPcyaHtcTKvPZanRaPbjS/Co4w0g/SqsSh7d0LFS46itTWmEFtHbL0RQtYqsQK+W4fxbw+IeJa1Z+PcaY14zMZO+xiXXguC6lLtePyfU1paXodto/zrK0jDpk1b8w00lpGCjvX3GL4\nyxDouJ808RiKsfZyloa2jRh7mS6f7iAn8q5eMtrPjF5D8yRnH411GoTLpPhqR84aQYH0rM8Aae0pNy4+aRt3NfEZPGWKxc8RM/c+EMEstyiVaW8v1PR7KMWtgO2BXl3ji8N5fRWaHPmOAR7V6bqs4tbBucYFeUafG2teMC/VIjj8a+jzSuqFBs9XJIWnPFT2irnTzINP\n8P29svBZcn8azpIFubJoC5TPcVf16YPOEXovArLVyBXg8NY14Obr21Z+I8UYuWLzGdS+zMGXwPbyy72vH6+pra07TLfSISI3Z2Ixk1N5hpIwZ5lTsTzX12YcY4idBxZ4zrYjEWpyldGvpmLWxub1+MKcZrmPDEDan4gnvG5G/ap+lbfiy7Gm+H0t0+/IM4H6Vb8BaX5N\npGzDkjJNfH5DSdarPES6s/euH8IsryS/WR2rEW1h6YFeRa9K2q+JoLVeVDbjXpviS8FrYPzjArzjwhbnUNeuL+QZRWOCfQV7WdYlUcO2d2TpUaVTFy6I6PWSILe3tF4CKAayb2yTULQQmUpj0qzq03m3pOe9VQ5Fedwzj3l6dRLVn4NnuKliMwnWT6nP/wDCC23m+Y12\n559TW/bWsOm2vkwszE9SaUyGpLSI3N0q9ga+izbjDEVcO4NnEp4jFzjTnK5oPINM8Nzztw7jAorK8dXW2G30yI8thSB79aK+Iy7Be3pOrLqz+kOGcqo4XLqcKmjLHjO8Nno0NnGf3kg6e5rX8C6WLayjJHaiivW4apx9jzdWccoqhk1ONPRM1/FN+LWxfnGBXBeCrb7V\nqFzqkoyoJIJ9B0ooquJKklQaXUdB+xyirUhuaF/M13dsRyAajEB9KKK3yXAUZ4dSaP51xtac60pS3uBhI7U6yhMl8q0UVjn2HhQoXgaZaufEwjLuip45uTNcW2lxnqQpH867bwlp4tbFOMYFFFacO04xw8Wj+iMwXscuo04bWKPjfVBbWMnzYwK5/wAE2htdNn1CUYd8\nkZ9TRRXJxLUlyKPRsyxM3h8jnOnuwmZrq4Z+2eKXyD6UUV6eVZfQlQi2j+c69WUqjk92I0JAq1o8Hm32PQ0UV5nENCFCl7h6OSRVTG04y2uYniWc6t4nhtE5jjbJHsOlem6DaC1sF4xgUUV6eR04ww0bdj+gM5/d4elSjtY47x/qhS3aJD8zfKB7mjw9arpHhrzG4eQU\nUV43Ec25Rg9mzkzupLDZDenpe5S2tM5c96f5B9KKK9/L8uoOim0fzvUqScm2NaIgVpaDEN7zN91Mk/hRRXz/ABFRjRilA93hqCq5hTjI5hmbW/GDNyyRH9aKKK9zLqUY4eKR/QeYVZUpxhDRJI//2Q=='/>\n<g stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'>\n<path d='M33.6602 25.7109H274.691'/>\n<path d='M33.6602 25.7109V31.3789'/>\n<path d='M81.8672 25.7109V31.3789'/>\n<path d='M130.07 25.7109V31.3789'/>\n<path d='M178.277 25.7109V31.3789'/>\n<path d='M226.484 25.7109V31.3789'/>\n<path d='M274.691 25.7109V31.3789'/>\n<path d='M57.7617 25.7109V28.5469'/>\n<path d='M105.969 25.7109V28.5469'/>\n<path d='M154.176 25.7109V28.5469'/>\n<path d='M202.383 25.7109V28.5469'/>\n<path d='M250.586 25.7109V28.5469'/>\n<path d='M33.6602 213.098H274.691'/>\n<path d='M33.6602 213.098V207.426'/>\n<path d='M81.8672 213.098V207.426'/>\n<path d='M130.07 213.098V207.426'/>\n<path d='M178.277 213.098V207.426'/>\n<path d='M226.484 213.098V207.426'/>\n<path d='M274.691 213.098V207.426'/>\n<path d='M57.7617 213.098V210.262'/>\n<path d='M105.969 213.098V210.262'/>\n<path d='M154.176 213.098V210.262'/>\n<path d='M202.383 213.098V210.262'/>\n<path d='M250.586 213.098V210.262'/>\n<path d='M33.6602 25.7109V213.098'/>\n<path d='M33.6602 25.7109H39.3281'/>\n<path d='M33.6602 119.402H39.3281'/>\n<path d='M33.6602 213.098H39.3281'/>\n<path d='M33.6602 53.9141H36.4961'/>\n<path d='M33.6602 70.4141H36.4961'/>\n<path d='M33.6602 82.1172H36.4961'/>\n<path d='M33.6602 91.1992H36.4961'/>\n<path d='M33.6602 98.6172H36.4961'/>\n<path d='M33.6602 104.891H36.4961'/>\n<path d='M33.6602 110.324H36.4961'/>\n<path d='M33.6602 115.117H36.4961'/>\n<path d='M33.6602 147.605H36.4961'/>\n<path d='M33.6602 164.105H36.4961'/>\n<path d='M33.6602 175.813H36.4961'/>\n<path d='M33.6602 184.891H36.4961'/>\n<path d='M33.6602 192.309H36.4961'/>\n<path d='M33.6602 198.582H36.4961'/>\n<path d='M33.6602 204.016H36.4961'/>\n<path d='M33.6602 208.809H36.4961'/>\n<path d='M274.691 25.7109V213.098'/>\n<path d='M274.691 25.7109H269.02'/>\n<path d='M274.691 119.402H269.02'/>\n<path d='M274.691 213.098H269.02'/>\n<path d='M274.691 53.9141H271.855'/>\n<path d='M274.691 70.4141H271.855'/>\n<path d='M274.691 82.1172H271.855'/>\n<path d='M274.691 91.1992H271.855'/>\n<path d='M274.691 98.6172H271.855'/>\n<path d='M274.691 104.891H271.855'/>\n<path d='M274.691 110.324H271.855'/>\n<path d='M274.691 115.117H271.855'/>\n<path d='M274.691 147.605H271.855'/>\n<path d='M274.691 164.105H271.855'/>\n<path d='M274.691 175.813H271.855'/>\n<path d='M274.691 184.891H271.855'/>\n<path d='M274.691 192.309H271.855'/>\n<path d='M274.691 198.582H271.855'/>\n<path d='M274.691 204.016H271.855'/>\n<path d='M274.691 208.809H271.855'/>\n</g>\n<image x='4575.261656' y='26.575619' width='32761' height='1' transform='scale(.007357,9.07976)' xlink:href='data:image/jpeg;base64,\n/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy\nMjIyMjIyMjL/wAARCAABf/kDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW\nV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC\nAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq\n8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5/ooooAKKKKAClFFFABRRRTGFFFFABS0UUAFFFFAwooopgFFFFAwpaKKACiiigAooopgLRRRQMKKKKAClFFFABRRRTAKKKKACiiigApRRRQMKKKKACiiigApaKKBhRRRTAKKKKACiiigYUtFFABRRRTAKKKKAFooooGFFFFAB\nRRRTAKKKKBi0UUUAFFFFABSiiigAooopjCiiigApaKKACiiigYUUUUwCiiigYUtFFABRRRQAUUUUwFooooAKKKKACiiigYUUUUwFooooAKKKKAClFFFAwooopgFFFFABS0UUDCiiigAooooAKKKKBhS0UUAFFFFMAooooAWiiigYUUUUAFFFFMAooooGLRRRQAUUUUAF\nKKKKYwooooAKKKKACiiigApRRRQMKKKKYBRRRQAUtFFABRRRQAUUUUwFooooGFFFFABRRRQMKKKKYC0UUUAFFFFAwpRRRQAUUUUwCiiigAooooGFKKKKACiiimAUUUUDAUtFFABRRRQAUUUUAFFFFAwFLRRQAUUUUwCiiigYtFFFABRRRQAUooopjCiiigAooooAKKKK\nAClFFFMAooooAKKKKBgKWiigAooooAKKKKYBRRRQMBS0UUAFFFFAwooooAWiiimAUUUUDCiiigAooopgFFFFAgooooAKUUUUwCiiigAooopgFFFFABRRRQAUUUUAFFFFABRRRTAKKKKACiiigAooopgFFFFABSiiimAUUUUAFFFFAgooopgFFFFABRRRQAUUUUwCiiig\nAooooAKKKKYBRRRQAUUUUAFKKKKYBRRRQAUUUUwCiiigAooooAKKKKACiiigQUUUUwCiiigAooooAKKKKYAKWiigAooopgFFFFABRRRQAUUUUwCiiigAooooAKKKKYBRRRQAUUUUAFFFFMAooooEApaKKACiiimAUUUUAFFFFMAooooAKKKKACiiigAooooAKKKKYBRR\nRQAUUUUAFFFFMAFLRRQAUUUUwCiiigAooooAKKKKYBRRRQAUUUUAFFFFMAooooAKKKKACiiimAUUUUAApaKKACiiimAUUUUAFFFFMAooooAKKKKACiiigAooooAKKKKYgooooAKKKKAFooopgFFFFABRRRTAKKKKACiiigAooopgFFFFABRRRQAUUUUwCiiigAooooAK\nKKKYC0UUUAFFFFAgooopgFFFFABRRRTAKKKKACiiigAooooAKKKKACiiimAUUUUAFFFFAC0UUUwCiiigAooopgFFFFABRRRQIDSUUUwCiiigAooopiCiiigQUUUUAFFFFMAooopiEooooAKKKKACiiimIKKKKBBRRRQAUUUUwCiiimAUUUUAJRRRQIKKKKYBRRRQIKKK\nKYBRRRQIKKKKYBSUUUAFFFFMQUUUUAFFFFAgooopgFFFFMQUUUUAFFFFABSUUUxBRRRQAUUUUCCiiimAUUUUwCiiigAooooEBpKKKYBRRRQIKKKKYBRRRQAUUUUCCiiimAUUUUxBRRRQAGkoooEFFFFMAooooAKKKKBBRRRTAKKKKYBRRRQISiiigQUUUUwCiiigAooo\npgFFFFABRRRTEFJRRQAUUUUwCiiigQUUUUCCiiimAUUUUwCiiigQUUUUAFJRRTAKKKKBBRRRQIKKKKYBRRRTAKKKKBBRRRQAGkoopgFFFFAgooopgFFFFABRRRQIKKKKYBRRRTAKKKKBAaSiigAooopiCiiigAooooEFFFFMAooopgFFFFAhKKKKACiiimIKKKKACiii\nmAUUUUCCiiimAUlFFAgooopgFFFFABRRRQAUUUUxBRRRTAKKKKBBRRRQAUlFFMQUUUUAFFFFABRRRTEFFFFMAooooAKKKKBAaSiimIKKKKACiiimAUUUUCCiiigApaKKACiiigAooooEApaKKACiiigAooopALRRRQACloooAKKKKBBRRRSAWiiigAooooEFLRRQAUUU\nUgFooooAKKKKBBS0UUAFFFFIAooooEApaKKACiiigAooopALRRRQIBS0UUAFFFFABRRRQIWiiigAooooAKWiikIKKKKAFooooAKKKKACloopCCiiigAooooABS0UUAFLRRSAKKKKACiiigQCloooAKKKKBBRRRSAWiiigAooooEFLRRQAUUUUgFooooAKKKKBBS0UUAF\nFFFIAooooEApaKKACloooAKKKKQBRRRQIBS0UUAFFFFABRRRSELRRRQAUUUUAFLRRQIKKKKAFooooAKKKKACloopAFFFFABRRRQIBS0UUAFLRRSEFFFFABRRRQACloooAKKKKQgooooAWiiigAFLRRQIKKKKACiiikAtFFFABRRRQIKWiigAooopAFFFFAgFLRRQAUtF\nFABRRRSEFFFFAAKWiigAooooAKKKKQhaKKKAAUtFFABRRRQAUUUUgFooooAKKKKBBS0UUAFFFFAC0UUUCCiiigApaKKQgooooAKKKKAAUtFFABRRRSEFFFFAC0UUUAApaKKBBRRRSAKKKKAFooooAKKKKBBS0UUgCiiigBaKKKBBRRRQAUtFFABRRRSEFFFFAAKWiigA\nooooAKKKKQC0UUUAApaKKBBRRRQAUUUUgFooooEFFFFABS0UUAFFFFIBaKKKBBRRRQAUtFFAgooooAKKKKAAUtFFABS0UUgCiiigQUUUUAApaKKBBRRRSAKKKKAFooooEFFFFABS0UUgCiiigBaKKKBBRRRQAUtFFIAooooAKKKKAAUtFFABS0UUCCiiikAUUUUAApaK\nKBBRRRQAUUUUgFooooEApaKKACiiigAooopALRRRQIKKKKACloooAKKKKQgooooABS0UUAFLRRQAUUUUCCiiigAFLRRQAUUUUhBRRRQAtFFFAgFLRRQAUUUUgCiiigBaKKKACiiigApaKKQgooooAKKKKAAUtFFAgpaKKQBRRRQAUUUUAApaKKBBRRRQAUUUUgFooooE\nApaKKACiiigAooopALRRRQIKKKKACloooAKKKKQhaKKKACiiigApaKKBBRRRSAKKKKAAUtFFABRRRQIKKKKAFooooABS0UUAFFFFIAooooELRRRQAUUUUAFLRRSEFFFFAC0UUUAFFFFAgpaKKACiiigAooopAApaKKBBS0UUAFFFFABRRRSEApaKKACiiigAooooAWii\nikIKKKKACloooAKKKKBC0UUUgCiiigApaKKBBRRRQAUUUUgFFFFFABS0UUAFFFFAgooopAKKKKKACiiigQUUUUALRRRQAUUUUAFLRRQIKKKKQC0UUUAFFFFAgpaKKACiiigAooopAKKKKKBBS0UUAFFFFABRRRSEKKKKKACiiigAooooELRRRSAUUUUUAFFFFABRRRQI\nWiiikAUUUUAFLRRQAUUUUAFFFFIBRRRRQIKWiigAooooAKKKKQhRRRRQAUUUUCCiiigBaKKKQCiiiigAooooEFFFFAC0UUUAFFFFAgpaKKACiiikAtFFFABRRRQIKWiigAooooAKKKKQhRRRRQAUUUUAFFFFAhaKKKQCiiiigAooooAKKKKAFooopAFFFFAgpaKKACii\nigBaKKKQgooooAKWiigAooooAKKKKQhRRRRQAUUUUCCiiigBaKKKQCiiiigAooooAKKKKBC0UUUgCiiigQUtFFABRRRQAtFFFAgooooAKWiigAooopAFFFFAhRRRRQAUtFFABRRRQAUUUUgFFFFFABRRRQIKKKKAFooopAFFFFAgpaKKACiiigBaKKKQgooooAKWiigA\nooooAKKKKQhRRRRQAUtFFABRRRQIKKKKQCiiiigQUUUUAFFFFABRRRQMKKKKACkoopAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACkoopAFFFFABRRRQMKKKKQBRRRQAUUUUAFFFFIAooooAKKKKACiiikAUUUUAIaKKKACiiikAUU\nUUAFFFFIAooooAKKKKACiiigAooooGFFFFIAooooAKKKKACiiikAhooooAKKKKQBRRRQAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFFFFABRRRSAKKKKBiGiiigAooopAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiikAUUUUAFFFFABRRRSAQ0UUUAFFFFIAooooA\nKKKKACiiikMKKKKACiiigAooopAFFFFABRRRQAUUUUgEooooAKKKKACiiikAUUUUAFFFFIAooooAKKKKACiiigAooooAKKKKQBRRRQMKKKKAEooopAFFFFABRRRSAKKKKACiiigAooopAFFFFABRRRQAUUUUgCiiigAooooAKDRRSASiiigAooooAKKKKQBRRRQAUUUU\ngCiiigAooooAKKKKACiiigAooopAFFFFABQaKKQCUUUUAFFFFABRRRSAKKKKACiiigAooopAFFFFAwooooAKKKKQBRRRQAUlFFABRRRSAKKKKACiiigAooopAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiikAUlFFAwooopAFFFFABRRRQAUUUUgCiiigAooooAKKK\nKQBRRRQAUUUUAFFFFIAooooAKSiigAooopAFFFFABRRRQAUUUUhhRRRQAUUUUgCiiigAooooAKKKKACiiigAooopAFJRRQAUUUUgCiiigAooooAKKKKQBRRRQAUUUUAFFFFIAooooGFFFFABRRRSAKKKKACkoooAKKKKQBRRRQAUUUUAFFFFIAooooAKKKKQBRRRQAUU\nUUAFFFFABRRRQAlFFFIAooooAKKKKQBRRRQMKKKKACiiikAUUUUAFFFFABRRRSAKKKKACiiigAooopAJRRRQAUUUUAFFFFIAooooAKKKKQBRRRQAUUUUAFFFFIYUUUUAFFFFABRRRQAUUUUAJRRRSAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACiiigAooopAFFFFABR\nRRQAUUUUhiUUUUAFFFFABRRRSAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACiiigAoNFFACUUUUAFFFFIAooooAKKKKQBRRRQAUUUUAFFFFIYUUUUAFFFFABRRRSAKKKKACg0UUAJRRRSAKKKKACiiigAooopAFFFFABRRRSAKKKKACiiigAooopAFFFFABRRRQAUGiig\nBKKKKACiiikAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACg0UUAJRRRSAKKKKBhRRRQAUUUUgCiiigAooopAFFFFABRRRQAUUUUgCiiigAooooAKDRRQAlFFFABRRRSAKKKKACiiikAUUUUAFFFFABRRRSGFFFFABRRRQAUUUUgCkoooAKKKKACii\nikAUUUUAFFFFABRRRSAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACkoooGFFFFABRRRQAUUUUgCiiigAooopAFFFFABRRRQAUUUUgCiiigAooooAKKKKQBSUUUAFFFFABRRRSAKKKKACiiigYUUUUgCiiigAooopAFFFFABRRRQAUUUUgCiiigApKKKACiiigAooooAKK\nKKQBRRRQAUUUUgCiiigAooooAKKKKQwooooAKKKKAEooopAFFFFABRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUUUUgCiiigAooooAKKKKACiiigYUUUUgClFFFABRRRQMKKKKACiiigAooooGFFFFAC0UUUAFFFFABRRRQMKKKKAFooooAKKKKBhRRRQAUUUUALRRRSG\nFFFFABRRRQAUUUUDCiiigApaKKBhRRRSAKKKKACiiigYUtFFABRRRQAUUUUDCiiigApaKKACiiigYUUUUgCiiigAooooAKUUUUDCiiigAooooAKKKKBhSiiigAooopAFFFFAwooooAKUUUUAFFFFAwooooAKKKKBhRRRQAUUUUgFooooGFFFFABRRRQAUUUUDFooooAK\nKKKACiiigYUUUUgFooooAKKKKACiiigYUUUUAFFFFABS0UUDCiiigAooopAFFFFAwpaKKACiiigAooooGFFFFABS0UUDCiiigAooopAFFFFAwooooAKUUUUAFFFFAwooooAKKKKAClFFFAwooooAKKKKACiiigApRRRQMKKKKACiiigAooooGFFFFIAooooAWiiigYUU\nUUAFFFFABRRRQMWiiigAooooGFFFFIAooooAWiiigYUUUUAFFFFABRRRQMKKKKACloooAKKKKBhRRRSAKKKKACloooAKKKKBhRRRQAUUUUAFLRRQMKKKKACiiikAUUUUDCiiigApRRRQAUUUUDCiiigAooooGFKKKKACiiikAUUUUDCiiigAooooAKKKKBi0UUUAFFFF\nABRRRSGFFFFAC0UUUAFFFFABRRRQMKKKKAFooooAKKKKBhRRRSAKKKKACiiigYUtFFABRRRQAUUUUDCiiigApaKKBhRRRSAKKKKACiiigYUtFFABRRRQAUUUUDCiiigAooooAKUUUUDCiiigAooooAKKKKAClFFFAwooooAKKKKACiiikMKUUUUAFFFFABRRRQMKKKKA\nCiiigAooooGLRRRQAUUUUhhRRRQAUUUUALRRRQMKKKKACiiigAooooGLRRRQAUUUUgCiiigYUUUUAFFFFABS0UUAFFFFAwooooAKKKKACloopDCiiigAooooAKKKKBhS0UUAFFFFABRRRQMKKKKACiiikMKUUUUAFFFFABRRRQMKKKKAClFFFABRRRQMKKKKACiiigAp\nRRRSGFFFFABRRRQAUUUUAFFFFAwooooAWiiigAooooGFFFFIAooooAWiiigYUUUUAFFFFABRRRQMWiiigAooooGFFFFIAooooAKKKKBhS0UUAFFFFABRRRQMKKKKACloooAKKKKBhRRRQAUUUUAFLRRQAUUUUDCiiigAooooAKKKKQwpRRRQAUUUUAFFFFAwooooAKUU\nUUAFFFFAwooopAFFFFAwpRRRQAUUUUAFFFFAwooooAKKKKACiiigYtFFFIAooooAKKKKBhRRRQAtFFFABRRRQAUUUUDCiiigAooopAFLRRQMKKKKACiiigAooooGFLRRQAUUUUAFFFFAwooopAFLRRQMKKKKACiiigAooooGFFFFABSiiigAooooGFFFFIAooooAKUUU\nUDCiiigAooooAKKKKAClFFFAwooooAKKKKQBRRRQMKKKKACiiigBaKKKBhRRRQAUUUUAFFFFAxaKKKQBRRRQMKKKKACiiigBaKKKBhRRRQAUUUUAFFFFAwooooAKWiigAooooGFFFFABRRRQAUtFFABRRRQMKKKKACiiikAUtFFAwooooAKKKKACiiigYUUUUAFKKKKA\nCiiigYUUUUgCiiigYUooooAKKKKACiiigYUUUUAFKKKKACiiigYUUUUgCiiigAooooGFFFFAC0UUUAFFFFABRRRQMKKKKAFooopAFFFFAwooooAKKKKAFooooGFFFFABRRRQAUUUUDCiiikAUtFFAwooooAKKKKACiiigYUtFFABRRRQAUUUUhhRRRQAUlFFMAooooAK\nKKKBiUUUUAFFFFMApDRRQAUUUUAJRRRQAUUUUxhSGiigAooooAKKKKBhSUUUAFIaKKYBRRRQAUUUUDCkoooAKKKKYBRRRQMSiiigAooooAKQ0UUwCiiigYlFFFABRRRQAUhoooGFFFFABRRRQMKSiimAUhoooAKKKKACiiigYUlFFMAooooAKKKKAEooooAKSiimAUUU\nUDCiiigBKKKKACiiimMKQ0UUAFFFFABRRRQMKSiimAUhoooAKKKKACiiigYUlFFABRRRTAKKKKBiUUUUAFJRRQAUUUUwCiiigYlFFFABRRRQAUhoopjCiiigAooooGFJRRQAUhoooAKKKKACiiigApKKKYBRRRQMKKKKAEooooAKSiimMKKKKACiiigBKKKKACiiimMK\nQ0UUAFFFFACUUUUDCiiimAUhoooAKKKKACiiigYUlFFMAooooAKKKKBiUUUUAFJRRQAUUUUxhRRRQAlFFFABRRRQAUhoopjCiiigBKKKKACiiigApDRRTAKKKKACiiigYGkoooAKQ0UUDCiiigAooooADSUUUxhRRRQAUUUUAJRRRQAUUUUxhSGiigAooooASiiigYUU\nUUwCkNFFABRRRQAUUUUDA0lFFMApDRRQAUUUUDCiiigANJRRTAKKKKBhRRRQAlFFFABRRRQAUhoopgFFFFACUUUUDCiiigApDRRTGFFFFABRRRQAGkoooAKQ0UUxhRRRQAUUUUABpKKKBhRRRQAUUUUAJRRRQAGkoopjCiiigAooooASiiigYUUUUwCkNFFABRRRQMKK\nKKAA0lFFMApDRRQAUUUUDCiiigANJRRTAKKKKACiiigBKKKKAA0lFFMYUUUUAFFFFACUUUUDCiiigApDRRTGFFFFACUUUUAFFFFABSGiimAUUUUDCiiigANJRRQMKKKKYBRRRQAlFFFAAaSiigAooooGFFFFACUUUUDCiiimAUlFFABRRRQMSiiigAooopgFJRRQAUUU\nUAFFFFAAaSiimMKKKKACiiigBKKKKBgaSiimAUUUUAFFFFACUUUUDCiiimAUlFFABRRRQMSiiigAooooAKSiimAUUUUDCiiigANJRRQAUlFFMYUUUUAFFFFAwNJRRQAUUUUwCiiigBKKKKBhRRRQAUlFFABRRRQAlFFFABRRRTAKSiigYUUUUAFFFFAAaSiimMKSiigA\nooooAKKKKBgaSiigAooopgFFFFACUUUUDA0lFFABRRRQAUUUUxiUUUUAFFFFABSUUUAFFFFMYUUUUABpKKKACkoooGFFFFMAooooGBpKKKACiiigAooopgJRRRQAGkoooAKKKKBhRRRTASiiigAooooGFJRRQAUUUUAFFFFAAaSiigYUlFFMAooooAKKKKBgaSiigAoo\nopgFFFFACUUUUDA0lFFABRRRTAKKKKBiUUUUAFFFFABSUUUDCiiimAlFFFABRRRQAUlFFAwooopgFFFFAAaSiigAooooAKKKKYxKKKKAA0lFFABRRRQMKKKKYCUUUUAFFFFAwpKKKACiiimAlFFFABRRRQMKSiigAooooAKKKKBgaSiigApKKKYBRRRQAUUUUDA0lFFA\nBRRRTAKKKKBiUUUUAFFFFABSUUUxhRRRQAlFFFABRRRQAUlFFABRRRTGFFFFAAaSiigApKKKBhRRRTAKKKKAA0lFFABRRRQMKKKKYCUUUUAFFFFAwpKKKACiiimAlFFFABRRRQMKSiigAooopgFFFFAwNJRRQAUlFFABRRRQMKKKKAA0lFFABRRRTAKKKKBiUUUUABpK\nKKACiiimAUUUUAJRRRQAUUUUDCkoopgFFFFABRRRQMDSUUUAFJRRQMKKKKYBRRRQAGkoooAKKKKACiiimMSiiigANJRRQMKKKKACiiimAlFFFABRRRQAUtFFABRRRQAtFFFAgooooAKWiigAooopiFooooAKKKKBBS0UUAFFFFAC0UUUCAUtFFABRRRQAUUUUxC0UUUA\nApaKKACiiigAooooAWiiigQCloooAKKKKBBRRRQAtFFFAAKWiigQUtFFABRRRQAUUUUCAUtFFMApaKKACiiigQUUUUAApaKKBBS0UUAFFFFABRRRQIBS0UUwCloooAKKKKBC0UUUAFFFFABS0UUAFFFFAC0UUUCCiiimAUtFFAgooooAWiiigAooooEFLRRQAUUUUALR\nRRQIBS0UUwCiiigAooooELRRRQACloooEFFFFABRRRQAtFFFAgFLRRTAKKKKACiiigQtFFFAAKWiigApaKKACiiigAooooEApaKKYBS0UUCCiiigAooooABS0UUCCloooAKKKKAFooooEFFFFABS0UUwCiiigQtFFFABRRRQIKWiigAooooAWiiigQUUUUAFLRRTAKKK\nKBC0UUUAApaKKACiiigAooooAWiiigQCloooAKKKKBBRRRQAtFFFAAKWiigQUUUUAFFFFAC0UUUCFFFFFMApaKKACiiigQUUUUAKKKKKBBS0UUAFFFFABRRRQIUUUUUwCloooAKKKKBBRRRQAoooooAKWiigAooooAWiiigQUUUUwCloooEFFFFAC0UUUAFFFFAgpaKK\nACiiigBaKKKBBRRRTAKWiigAooooELRRRQAoooooEFFFFABRRRQAtFFFMQoooooAKKKKACiiigQtFFFACiiiigAooooAKKKKAFooopiFFFFFABS0UUCCiiigAooooAUUUUUCCloooAKKKKACiiimIUUUUUAFLRRQAUUUUCCiiigBRRRRQIKWiigAooooAWiiimIKKKKA\nCloooAKKKKBC0UUUAFFFFABS0UUAFFFFAC0UUUCCiiigApaKKBBRRRQAtFFFACiiiigQUUUUAFFFFMBaKKKBCiiiigAooooAKKKKBC0UUUAKKKKKBBRRRQAUUUUALRRRTEKKKKKACloooAKKKKBBRRRQAoooooAKWiigAooooEFFFFMBRRRRQAUtFFAgooooAKKKKAFF\nFFFAgpaKKACiiigBaKKKYgooooAKWiigAooooELRRRQAUUUUCCloooAKKKKAFooopiCiiigApaKKACiiigQtFFFACiiiigAooooAKKKKBC0UUUwFFFFFABRRRQIKKKKAFooooAUUUUUCCloooAKKKKACiiimIUUUUUAFLRRQAUUUUCCiiigBRRRRQIKWiigAooooAKKK\nKYhRRRRQAUtFFABRRRQIWiiigAooooAKWiigAooooELRRRQAUUUUAFLRRQIKKKKAFooooAKKKKBBS0UUwCiiigBaKKKBCiiiigAooooAKKKKBC0UUUAKKKKKBBRRRTAKKKKAFooooEKKKKKACiiigAooooELRRRQAoooooAKWiimAUUUUCCiiigBRRRRQAUtFFAgoooo\nAKKKKAFFFFFAgpaKKACiiimAUUUUCFFFFFABS0UUAFFFFAhaKKKACiiigQUtFFABRRRTAWiiigQUUUUAFLRRQAUUUUCFooooAKKKKACloooAKKKKYhaKKKAFFFFFABRRRQIKKKKAFooooAUUUUUCCiiigAooopgLRRRQIUUUUUAFFFFABRRRQIWiiigBRRRRQIKWiigA\nooopgFFFFAhRRRRQAUtFFABRRRQIKKKKAFFFFFABS0UUAFFFFAgooooAUUUUUAFLRRQIKKKKAFooooAKKKKBBS0UUwCiiigBaKKKBBRRRQAUtFFABRRRQIWiiigAooooEFLRRTAKKKKAFooooEKKKKKACiiigAooooELRRRQAoooooAKKKKYBRRRQIWiiigBRRRRQAUU\nUUCCiiigBaKKKAFFFFFAgpaKKACiiimAUUUUCFFFFFABRRRQB//Z'/>\n<g stroke='#000' fill='none'>\n<g stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'>\n<path d='M33.6602 250.379H274.691'/>\n<path d='M33.6602 250.379V241.301'/>\n<path d='M81.8672 250.379V241.301'/>\n<path d='M130.07 250.379V241.301'/>\n<path d='M178.277 250.379V241.301'/>\n<path d='M226.484 250.379V241.301'/>\n<path d='M274.691 250.379V241.301'/>\n</g>\n<g stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'>\n<path d='M48.1719 250.379V241.301'/>\n<path d='M56.6602 250.379V241.301'/>\n<path d='M62.6836 250.379V241.301'/>\n<path d='M67.3555 250.379V241.301'/>\n<path d='M71.1719 250.379V241.301'/>\n<path d='M74.3984 250.379V241.301'/>\n<path d='M77.1953 250.379V241.301'/>\n<path d='M79.6602 250.379V241.301'/>\n<path d='M96.3789 250.379V241.301'/>\n<path d='M104.867 250.379V241.301'/>\n<path d='M110.891 250.379V241.301'/>\n<path d='M115.563 250.379V241.301'/>\n<path d='M119.379 250.379V241.301'/>\n<path d='M122.605 250.379V241.301'/>\n<path d='M125.402 250.379V241.301'/>\n<path d='M127.867 250.379V241.301'/>\n<path d='M144.586 250.379V241.301'/>\n<path d='M153.07 250.379V241.301'/>\n<path d='M159.094 250.379V241.301'/>\n<path d='M163.766 250.379V241.301'/>\n<path d='M167.586 250.379V241.301'/>\n<path d='M170.813 250.379V241.301'/>\n<path d='M173.605 250.379V241.301'/>\n<path d='M176.074 250.379V241.301'/>\n<path d='M192.789 250.379V241.301'/>\n<path d='M201.277 250.379V241.301'/>\n<path d='M207.301 250.379V241.301'/>\n<path d='M211.973 250.379V241.301'/>\n<path d='M215.789 250.379V241.301'/>\n<path d='M219.016 250.379V241.301'/>\n<path d='M221.813 250.379V241.301'/>\n<path d='M224.277 250.379V241.301'/>\n<path d='M240.996 250.379V241.301'/>\n<path d='M249.484 250.379V241.301'/>\n<path d='M255.508 250.379V241.301'/>\n<path d='M260.18 250.379V241.301'/>\n<path d='M263.996 250.379V241.301'/>\n<path d='M267.223 250.379V241.301'/>\n<path d='M270.02 250.379V241.301'/>\n<path d='M272.484 250.379V241.301'/>\n</g>\n<path d='M33.6602 241.301V250.379H274.691V241.301H33.6602Z' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n</g>\n<path d='M36.0391 15.5156C36.0391 16.5039 35.9805 17.4688 35.5508 18.375C35.0625 19.3672 34.2031 19.625 33.6211 19.625C32.9297 19.625 32.082 19.2813 31.6406 18.293C31.3086 17.5391 31.1875 16.8008 31.1875 15.5156C31.1875 14.3594 31.2734 13.4883 31.7031 12.6406C32.1641 11.7344 32.9883 11.4492 33.6094 11.4492C34.6445 11.4492 35.2422 12.0703 35.5859 12.7617C36.0156 13.6563 36.0391 14.8242 36.0391 15.5156ZM33.6094 11.6875C33.2266 11.6875 32.4531 11.9023 32.2266 13.2031C32.0938 13.918 32.0938 14.8242 32.0938 15.6563C32.0938 16.6328 32.0938 17.5156 32.2852 18.2188C32.4883 19.0195 33.0938 19.3906 33.6094 19.3906C34.0625 19.3906 34.7539 19.1133 34.9805 18.0898C35.1328 17.4102 35.1328 16.4688 35.1328 15.6563C35.1328 14.8594 35.1328 13.9531 35.0039 13.2266C34.7773 11.9141 34.0273 11.6875 33.6094 11.6875'/>\n<path d='M81.2461 13.7031H80.9844C80.9453 13.5 80.8516 12.8438 80.7344 12.6523C80.6484 12.5469 79.9688 12.5469 79.6133 12.5469H77.4063C77.7266 12.8203 78.457 13.582 78.7656 13.8672C80.5781 15.5391 81.2461 16.1563 81.2461 17.3398C81.2461 18.7109 80.1602 19.625 78.7773 19.625C77.3945 19.625 76.5859 18.4453 76.5859 17.4219C76.5859 16.8125 77.1094 16.8125 77.1445 16.8125C77.3945 16.8125 77.7031 16.9922 77.7031 17.375C77.7031 17.707 77.4766 17.9336 77.1445 17.9336C77.0391 17.9336 77.0117 17.9336 76.9766 17.9219C77.2031 18.7344 77.8477 19.2813 78.6211 19.2813C79.6367 19.2813 80.2578 18.4336 80.2578 17.3398C80.2578 16.3242 79.6719 15.4453 78.9922 14.6797L76.5859 11.9844V11.6992H80.9336L81.2461 13.7031'/>\n<path d='M87.2422 15.5156C87.2422 16.5039 87.1797 17.4688 86.75 18.375C86.2617 19.3672 85.4063 19.625 84.8203 19.625C84.1289 19.625 83.2813 19.2813 82.8438 18.293C82.5078 17.5391 82.3906 16.8008 82.3906 15.5156C82.3906 14.3594 82.4727 13.4883 82.9023 12.6406C83.3672 11.7344 84.1875 11.4492 84.8086 11.4492C85.8438 11.4492 86.4414 12.0703 86.7891 12.7617C87.2188 13.6563 87.2422 14.8242 87.2422 15.5156ZM84.8086 11.6875C84.4258 11.6875 83.6523 11.9023 83.4258 13.2031C83.2969 13.918 83.2969 14.8242 83.2969 15.6563C83.2969 16.6328 83.2969 17.5156 83.4844 18.2188C83.6875 19.0195 84.2969 19.3906 84.8086 19.3906C85.2617 19.3906 85.9531 19.1133 86.1797 18.0898C86.3359 17.4102 86.3359 16.4688 86.3359 15.6563C86.3359 14.8594 86.3359 13.9531 86.2031 13.2266C85.9766 11.9141 85.2266 11.6875 84.8086 11.6875'/>\n<path d='M128.504 19.4609C128.504 19.6875 128.504 19.7461 128.336 19.7461C128.242 19.7461 128.203 19.7461 128.109 19.6016L124.523 14.0352V13.6914H127.656V12.6055C127.656 12.1641 127.633 12.0469 126.762 12.0469H126.523V11.6992C126.797 11.7227 127.742 11.7227 128.074 11.7227S129.359 11.7227 129.637 11.6992V12.0469H129.398C128.539 12.0469 128.504 12.1641 128.504 12.6055V13.6914H129.707V14.0352H128.504V19.4609ZM127.719 18.5313V14.0352H124.82L127.719 18.5313Z'/>\n<path d='M135.441 15.5156C135.441 16.5039 135.383 17.4688 134.953 18.375C134.465 19.3672 133.605 19.625 133.02 19.625C132.328 19.625 131.484 19.2813 131.043 18.293C130.707 17.5391 130.59 16.8008 130.59 15.5156C130.59 14.3594 130.672 13.4883 131.102 12.6406C131.566 11.7344 132.391 11.4492 133.008 11.4492C134.047 11.4492 134.641 12.0703 134.988 12.7617C135.418 13.6563 135.441 14.8242 135.441 15.5156ZM133.008 11.6875C132.629 11.6875 131.852 11.9023 131.629 13.2031C131.496 13.918 131.496 14.8242 131.496 15.6563C131.496 16.6328 131.496 17.5156 131.688 18.2188C131.887 19.0195 132.496 19.3906 133.008 19.3906C133.461 19.3906 134.152 19.1133 134.379 18.0898C134.535 17.4102 134.535 16.4688 134.535 15.6563C134.535 14.8594 134.535 13.9531 134.402 13.2266C134.176 11.9141 133.426 11.6875 133.008 11.6875'/>\n<path d='M173.867 15.8477C173.867 18.8633 175.332 19.3398 175.977 19.3398C176.406 19.3398 176.836 19.2109 177.063 18.8516C176.918 18.8516 176.465 18.8516 176.465 18.3633C176.465 18.1016 176.645 17.875 176.953 17.875C177.254 17.875 177.453 18.0547 177.453 18.3984C177.453 19.0195 177.004 19.625 175.965 19.625C174.465 19.625 172.891 18.0898 172.891 15.4688C172.891 12.1875 174.32 11.4492 175.332 11.4492C176.633 11.4492 177.742 12.582 177.742 14.1328C177.742 15.7188 176.633 16.7773 175.438 16.7773C174.379 16.7773 173.984 15.8594 173.867 15.5273V15.8477ZM175.332 11.7734C174.582 11.7734 174.223 12.4375 174.117 12.6875C174.008 13 173.891 13.582 173.891 14.418C173.891 15.3594 174.32 16.5391 175.391 16.5391C176.047 16.5391 176.395 16.0977 176.57 15.6953C176.762 15.25 176.762 14.6563 176.762 14.1445C176.762 13.5352 176.762 13 176.535 12.5469C176.238 11.9727 175.809 11.7734 175.332 11.7734'/>\n<path d='M183.641 15.5156C183.641 16.5039 183.582 17.4688 183.152 18.375C182.664 19.3672 181.805 19.625 181.219 19.625C180.531 19.625 179.684 19.2813 179.242 18.293C178.906 17.5391 178.789 16.8008 178.789 15.5156C178.789 14.3594 178.871 13.4883 179.301 12.6406C179.766 11.7344 180.59 11.4492 181.207 11.4492C182.246 11.4492 182.844 12.0703 183.188 12.7617C183.617 13.6563 183.641 14.8242 183.641 15.5156ZM181.207 11.6875C180.828 11.6875 180.051 11.9023 179.828 13.2031C179.695 13.918 179.695 14.8242 179.695 15.6563C179.695 16.6328 179.695 17.5156 179.887 18.2188C180.09 19.0195 180.695 19.3906 181.207 19.3906C181.66 19.3906 182.352 19.1133 182.578 18.0898C182.734 17.4102 182.734 16.4688 182.734 15.6563C182.734 14.8594 182.734 13.9531 182.602 13.2266C182.379 11.9141 181.629 11.6875 181.207 11.6875'/>\n<path d='M224.152 16.0039C224.746 16.3242 225.617 16.875 225.617 17.875C225.617 18.9141 224.617 19.625 223.52 19.625C222.34 19.625 221.41 18.7578 221.41 17.6719C221.41 17.2656 221.531 16.8594 221.863 16.457C221.996 16.3008 222.008 16.2891 222.84 15.7031C221.684 15.168 221.09 14.3711 221.09 13.5C221.09 12.2344 222.293 11.4492 223.508 11.4492C224.832 11.4492 225.941 12.4258 225.941 13.6797C225.941 14.8945 225.082 15.4297 224.152 16.0039ZM222.531 17.0781C222.379 17.1836 221.898 17.4922 221.898 18.0781C221.898 18.8516 222.711 19.3398 223.508 19.3398C224.367 19.3398 225.129 18.7227 225.129 17.8633C225.129 17.1367 224.605 16.5508 223.914 16.1719L222.531 17.0781ZM223.09 15.5391L224.535 14.5977C224.844 14.3945 225.391 14.0234 225.391 13.2969C225.391 12.3906 224.473 11.7734 223.52 11.7734C222.508 11.7734 221.637 12.5117 221.637 13.5C221.637 14.4297 222.316 15.1797 223.09 15.5391'/>\n<path d='M231.84 15.5156C231.84 16.5039 231.781 17.4688 231.352 18.375C230.863 19.3672 230.004 19.625 229.422 19.625C228.73 19.625 227.883 19.2813 227.441 18.293C227.109 17.5391 226.988 16.8008 226.988 15.5156C226.988 14.3594 227.07 13.4883 227.504 12.6406C227.965 11.7344 228.789 11.4492 229.406 11.4492C230.445 11.4492 231.043 12.0703 231.387 12.7617C231.816 13.6563 231.84 14.8242 231.84 15.5156ZM229.406 11.6875C229.027 11.6875 228.254 11.9023 228.027 13.2031C227.895 13.918 227.895 14.8242 227.895 15.6563C227.895 16.6328 227.895 17.5156 228.086 18.2188C228.289 19.0195 228.895 19.3906 229.406 19.3906C229.859 19.3906 230.555 19.1133 230.781 18.0898C230.934 17.4102 230.934 16.4688 230.934 15.6563C230.934 14.8594 230.934 13.9531 230.805 13.2266C230.578 11.9141 229.828 11.6875 229.406 11.6875'/>\n<path d='M269.332 19.3398C269.332 19.6172 269.332 19.625 269.094 19.625C268.809 19.3047 268.215 18.8633 266.984 18.8633V18.5195C267.258 18.5195 267.855 18.5195 268.512 18.8281V12.6172C268.512 12.1875 268.477 12.0469 267.426 12.0469H267.055V11.6992C267.379 11.7227 268.535 11.7227 268.93 11.7227C269.32 11.7227 270.465 11.7227 270.789 11.6992V12.0469H270.418C269.367 12.0469 269.332 12.1875 269.332 12.6172V19.3398'/>\n<path d='M277.141 15.5156C277.141 16.5039 277.082 17.4688 276.652 18.375C276.164 19.3672 275.305 19.625 274.719 19.625C274.031 19.625 273.184 19.2813 272.742 18.293C272.406 17.5391 272.289 16.8008 272.289 15.5156C272.289 14.3594 272.371 13.4883 272.801 12.6406C273.266 11.7344 274.09 11.4492 274.707 11.4492C275.746 11.4492 276.344 12.0703 276.688 12.7617C277.117 13.6563 277.141 14.8242 277.141 15.5156ZM274.707 11.6875C274.328 11.6875 273.551 11.9023 273.328 13.2031C273.195 13.918 273.195 14.8242 273.195 15.6563C273.195 16.6328 273.195 17.5156 273.387 18.2188C273.59 19.0195 274.195 19.3906 274.707 19.3906C275.16 19.3906 275.852 19.1133 276.078 18.0898C276.234 17.4102 276.234 16.4688 276.234 15.6563C276.234 14.8594 276.234 13.9531 276.102 13.2266C275.879 11.9141 275.129 11.6875 274.707 11.6875'/>\n<path d='M282.941 15.5156C282.941 16.5039 282.883 17.4688 282.453 18.375C281.965 19.3672 281.105 19.625 280.52 19.625C279.828 19.625 278.984 19.2813 278.543 18.293C278.207 17.5391 278.09 16.8008 278.09 15.5156C278.09 14.3594 278.172 13.4883 278.602 12.6406C279.066 11.7344 279.891 11.4492 280.508 11.4492C281.547 11.4492 282.141 12.0703 282.488 12.7617C282.918 13.6563 282.941 14.8242 282.941 15.5156ZM280.508 11.6875C280.129 11.6875 279.352 11.9023 279.129 13.2031C278.996 13.918 278.996 14.8242 278.996 15.6563C278.996 16.6328 278.996 17.5156 279.188 18.2188C279.387 19.0195 279.996 19.3906 280.508 19.3906C280.961 19.3906 281.652 19.1133 281.879 18.0898C282.035 17.4102 282.035 16.4688 282.035 15.6563C282.035 14.8594 282.035 13.9531 281.902 13.2266C281.676 11.9141 280.926 11.6875 280.508 11.6875'/>\n<path d='M156.449 6.36328C156.07 6.29297 155.926 6.00781 155.926 5.78125C155.926 5.49219 156.152 5.39844 156.32 5.39844C156.676 5.39844 156.926 5.70703 156.926 6.03125C156.926 6.53125 156.355 6.75781 155.855 6.75781C155.129 6.75781 154.723 6.04297 154.613 5.81641C154.34 6.71094 153.602 6.75781 153.387 6.75781C152.172 6.75781 151.527 5.19531 151.527 4.93359C151.527 4.88672 151.574 4.82813 151.656 4.82813C151.754 4.82813 151.777 4.89844 151.801 4.94531C152.207 6.26953 153.004 6.51953 153.352 6.51953C153.887 6.51953 153.996 6.01563 153.996 5.73047C153.996 5.46875 153.922 5.19531 153.781 4.625L153.375 2.99219C153.195 2.27344 152.852 1.61719 152.219 1.61719C152.16 1.61719 151.859 1.61719 151.609 1.77344C152.039 1.85938 152.133 2.21484 152.133 2.35938C152.133 2.59766 151.957 2.73828 151.73 2.73828C151.445 2.73828 151.133 2.48828 151.133 2.10938C151.133 1.60938 151.695 1.38281 152.207 1.38281C152.777 1.38281 153.184 1.83594 153.434 2.32031C153.625 1.61719 154.223 1.38281 154.664 1.38281C155.879 1.38281 156.523 2.94141 156.523 3.20313C156.523 3.26563 156.473 3.3125 156.402 3.3125C156.297 3.3125 156.281 3.25 156.246 3.15625C155.926 2.10938 155.234 1.61719 154.699 1.61719C154.281 1.61719 154.055 1.92969 154.055 2.41797C154.055 2.67969 154.102 2.87109 154.293 3.65625L154.711 5.27734C154.891 5.99219 155.293 6.51953 155.844 6.51953C155.867 6.51953 156.199 6.51953 156.449 6.36328'/>\n<path d='M16.1328 28.6406C16.1328 28.9141 16.1328 28.9258 15.8945 28.9258C15.6094 28.6055 15.0117 28.1641 13.7852 28.1641V27.8203C14.0586 27.8203 14.6563 27.8203 15.3125 28.1289V21.918C15.3125 21.4883 15.2734 21.3438 14.2266 21.3438H13.8555V21C14.1797 21.0234 15.3359 21.0234 15.7266 21.0234C16.1211 21.0234 17.2656 21.0234 17.5859 21V21.3438H17.2188C16.168 21.3438 16.1328 21.4883 16.1328 21.918V28.6406'/>\n<path d='M23.9414 24.8125C23.9414 25.8047 23.8828 26.7695 23.4531 27.6758C22.9609 28.6641 22.1055 28.9258 21.5195 28.9258C20.8281 28.9258 19.9844 28.582 19.543 27.5938C19.207 26.8398 19.0898 26.1016 19.0898 24.8125C19.0898 23.6563 19.1719 22.7891 19.6016 21.9414C20.0664 21.0352 20.8906 20.75 21.5078 20.75C22.5469 20.75 23.1406 21.3711 23.4883 22.0625C23.918 22.9531 23.9414 24.125 23.9414 24.8125ZM21.5078 20.9883C21.125 20.9883 20.3516 21.2031 20.125 22.5C19.9961 23.2188 19.9961 24.125 19.9961 24.957C19.9961 25.9336 19.9961 26.8164 20.1875 27.5195C20.3867 28.3203 20.9961 28.6875 21.5078 28.6875C21.9609 28.6875 22.6523 28.4141 22.8789 27.3906C23.0352 26.7109 23.0352 25.7695 23.0352 24.957C23.0352 24.1602 23.0352 23.2539 22.9023 22.5273C22.6758 21.2148 21.9258 20.9883 21.5078 20.9883'/>\n<path d='M28.2852 27.8359C28.2852 28.6875 28.1992 29.2031 27.9375 29.7109C27.5859 30.4102 26.9453 30.5859 26.5078 30.5859C25.5039 30.5859 25.1406 29.8359 25.0273 29.6172C24.7422 29.0352 24.7266 28.25 24.7266 27.8359C24.7266 27.3125 24.75 26.5078 25.1328 25.8711C25.4961 25.2852 26.0859 25.1328 26.5078 25.1328C26.8867 25.1328 27.5703 25.25 27.9688 26.0391C28.2617 26.6094 28.2852 27.3203 28.2852 27.8359ZM26.5078 25.3555C26.2344 25.3555 25.6875 25.4844 25.5195 26.3164C25.4336 26.7695 25.4336 27.5156 25.4336 27.9297C25.4336 28.4766 25.4336 29.0352 25.5195 29.4727C25.6875 30.2813 26.3086 30.3633 26.5078 30.3633C26.7773 30.3633 27.3242 30.2266 27.4844 29.5039C27.5781 29.0664 27.5781 28.4688 27.5781 27.9297C27.5781 27.4609 27.5781 26.7461 27.4844 26.3008C27.3164 25.4688 26.7695 25.3555 26.5078 25.3555'/>\n<path d='M16.1328 122.34C16.1328 122.617 16.1328 122.629 15.8945 122.629C15.6094 122.305 15.0117 121.863 13.7852 121.863V121.52C14.0586 121.52 14.6563 121.52 15.3125 121.828V115.617C15.3125 115.188 15.2734 115.047 14.2266 115.047H13.8555V114.699C14.1797 114.723 15.3359 114.723 15.7266 114.723C16.1211 114.723 17.2656 114.723 17.5859 114.699V115.047H17.2188C16.168 115.047 16.1328 115.188 16.1328 115.617V122.34'/>\n<path d='M23.9414 118.516C23.9414 119.504 23.8828 120.469 23.4531 121.375C22.9609 122.367 22.1055 122.629 21.5195 122.629C20.8281 122.629 19.9844 122.281 19.543 121.293C19.207 120.539 19.0898 119.801 19.0898 118.516C19.0898 117.359 19.1719 116.488 19.6016 115.641C20.0664 114.734 20.8906 114.449 21.5078 114.449C22.5469 114.449 23.1406 115.07 23.4883 115.762C23.918 116.656 23.9414 117.824 23.9414 118.516ZM21.5078 114.688C21.125 114.688 20.3516 114.902 20.125 116.203C19.9961 116.918 19.9961 117.824 19.9961 118.656C19.9961 119.633 19.9961 120.516 20.1875 121.219C20.3867 122.02 20.9961 122.391 21.5078 122.391C21.9609 122.391 22.6523 122.113 22.8789 121.09C23.0352 120.41 23.0352 119.469 23.0352 118.656C23.0352 117.859 23.0352 116.953 22.9023 116.227C22.6758 114.914 21.9258 114.688 21.5078 114.688'/>\n<path d='M26.8945 124.063C26.8945 124.277 26.8789 124.285 26.6641 124.285C26.3398 123.969 25.918 123.777 25.1641 123.777V123.516C25.3789 123.516 25.8047 123.516 26.2656 123.727V119.652C26.2656 119.359 26.2422 119.262 25.4883 119.262H25.2109V119C25.5352 119.023 26.2188 119.023 26.5781 119.023C26.9336 119.023 27.625 119.023 27.9531 119V119.262H27.6719C26.918 119.262 26.8945 119.359 26.8945 119.652V124.063'/>\n<path d='M16.1328 216.039C16.1328 216.316 16.1328 216.328 15.8945 216.328C15.6094 216.004 15.0117 215.563 13.7852 215.563V215.219C14.0586 215.219 14.6563 215.219 15.3125 215.527V209.316C15.3125 208.891 15.2734 208.746 14.2266 208.746H13.8555V208.398C14.1797 208.422 15.3359 208.422 15.7266 208.422C16.1211 208.422 17.2656 208.422 17.5859 208.398V208.746H17.2188C16.168 208.746 16.1328 208.891 16.1328 209.316V216.039'/>\n<path d='M23.9414 212.215C23.9414 213.203 23.8828 214.168 23.4531 215.074C22.9609 216.066 22.1055 216.328 21.5195 216.328C20.8281 216.328 19.9844 215.98 19.543 214.992C19.207 214.242 19.0898 213.504 19.0898 212.215C19.0898 211.059 19.1719 210.188 19.6016 209.344C20.0664 208.438 20.8906 208.148 21.5078 208.148C22.5469 208.148 23.1406 208.77 23.4883 209.461C23.918 210.355 23.9414 211.523 23.9414 212.215ZM21.5078 208.387C21.125 208.387 20.3516 208.602 20.125 209.902C19.9961 210.617 19.9961 211.523 19.9961 212.359C19.9961 213.336 19.9961 214.219 20.1875 214.922C20.3867 215.719 20.9961 216.09 21.5078 216.09C21.9609 216.09 22.6523 215.813 22.8789 214.789C23.0352 214.109 23.0352 213.168 23.0352 212.359C23.0352 211.559 23.0352 210.652 22.9023 209.926C22.6758 208.613 21.9258 208.387 21.5078 208.387'/>\n<path d='M26.6406 214.32C26.7695 214.441 27.1016 214.703 27.2305 214.813C27.7227 215.266 28.1914 215.703 28.1914 216.426C28.1914 217.371 27.3945 217.984 26.4023 217.984C25.4492 217.984 24.8203 217.262 24.8203 216.555C24.8203 216.164 25.1328 216.109 25.2422 216.109C25.4102 216.109 25.6563 216.227 25.6563 216.531C25.6563 216.945 25.2578 216.945 25.1641 216.945C25.3945 217.523 25.9258 217.723 26.3164 217.723C27.0547 217.723 27.4375 217.094 27.4375 216.426C27.4375 215.602 26.8555 214.996 25.918 214.035L24.918 213.004C24.8203 212.914 24.8203 212.898 24.8203 212.699H27.9609L28.1914 214.121H27.9453C27.9219 213.965 27.8555 213.566 27.7617 213.414C27.7148 213.352 27.1094 213.352 26.9844 213.352H25.5703L26.6406 214.32'/>\n<path d='M4.63281 116.664C4.3125 116.215 3.84766 115.805 3.26563 115.805C3.12109 115.805 2.54688 115.832 2.37109 116.379C2.40625 116.367 2.46484 116.367 2.48828 116.367C2.84766 116.367 3.08594 116.676 3.08594 116.953C3.08594 117.227 2.85938 117.32 2.67969 117.32C2.48828 117.32 2.07031 117.18 2.07031 116.594C2.07031 115.984 2.58594 115.57 3.26563 115.57C4.45703 115.57 5.66016 116.664 5.99219 117.988L7.16406 122.637C7.17188 122.695 7.19922 122.77 7.19922 122.84C7.19922 123.02 7.05469 123.137 6.875 123.137C6.76953 123.137 6.51953 123.09 6.42188 122.734L5.53906 119.227C5.48047 119.012 5.48047 118.988 5.38672 118.859C5.14844 118.523 4.75391 118.117 4.18359 118.117C3.51563 118.117 3.45313 118.773 3.45313 119.098C3.45313 119.777 3.77734 120.695 4.09766 121.551C4.23047 121.898 4.30078 122.066 4.30078 122.305C4.30078 122.805 3.94531 123.258 3.35938 123.258C2.26172 123.258 1.82031 121.527 1.82031 121.434C1.82031 121.387 1.87109 121.328 1.95313 121.328C2.0625 121.328 2.07031 121.371 2.12109 121.539C2.40625 122.543 2.85938 123.02 3.32422 123.02C3.42969 123.02 3.63281 123.02 3.63281 122.625C3.63281 122.316 3.50391 121.969 3.32422 121.516C2.73828 119.953 2.73828 119.563 2.73828 119.273C2.73828 118.145 3.55078 117.883 4.14844 117.883C4.49219 117.883 4.92188 117.988 5.33984 118.43L5.35156 118.418C5.17188 117.715 5.05078 117.246 4.63281 116.664'/>\n<path d='M25.5313 267.242C25.5313 267.516 25.5313 267.527 25.2969 267.527C25.0078 267.203 24.4141 266.766 23.1836 266.766V266.418C23.4609 266.418 24.0547 266.418 24.7109 266.727V260.516C24.7109 260.09 24.6758 259.945 23.625 259.945H23.2578V259.602C23.5781 259.621 24.7344 259.621 25.1289 259.621S26.6641 259.621 26.9883 259.602V259.945H26.6172C25.5703 259.945 25.5313 260.09 25.5313 260.516V267.242'/>\n<path d='M33.3398 263.414C33.3398 264.406 33.2813 265.367 32.8516 266.273C32.3633 267.266 31.5039 267.527 30.9219 267.527C30.2305 267.527 29.3828 267.18 28.9414 266.191C28.6094 265.441 28.4883 264.703 28.4883 263.414C28.4883 262.258 28.5703 261.387 29 260.543C29.4648 259.637 30.2891 259.352 30.9063 259.352C31.9453 259.352 32.543 259.969 32.8867 260.66C33.3164 261.555 33.3398 262.723 33.3398 263.414ZM30.9063 259.59C30.5273 259.59 29.75 259.805 29.5273 261.102C29.3945 261.816 29.3945 262.723 29.3945 263.559C29.3945 264.535 29.3945 265.418 29.5859 266.121C29.7891 266.918 30.3945 267.289 30.9063 267.289C31.3594 267.289 32.0547 267.016 32.2813 265.988C32.4336 265.309 32.4336 264.367 32.4336 263.559C32.4336 262.758 32.4336 261.852 32.3047 261.129C32.0781 259.813 31.3281 259.59 30.9063 259.59'/>\n<path d='M39.3555 265.805C39.4844 265.805 39.6563 265.805 39.6563 265.988C39.6563 266.168 39.4844 266.168 39.3555 266.168H34.8008C34.6719 266.168 34.5 266.168 34.5 265.988C34.5 265.805 34.6719 265.805 34.8008 265.805H39.3555'/>\n<path d='M42.4102 266.656C43.0391 266.656 43.4375 266.195 43.4375 265.359C43.4375 264.367 42.8711 264.07 42.4492 264.07C42.0117 264.07 41.418 264.23 41.1406 264.652C41.4258 264.652 41.625 264.836 41.625 265.098C41.625 265.352 41.4414 265.535 41.1875 265.535C40.9727 265.535 40.75 265.398 40.75 265.082C40.75 264.328 41.5625 263.832 42.4648 263.832C43.5234 263.832 44.2617 264.563 44.2617 265.359C44.2617 266.02 43.7383 266.621 42.9258 266.797C43.5547 267.02 44.0234 267.563 44.0234 268.195C44.0234 268.832 43.3086 269.285 42.4844 269.285C41.6328 269.285 40.9883 268.824 40.9883 268.219C40.9883 267.926 41.1875 267.797 41.3945 267.797C41.6406 267.797 41.7969 267.973 41.7969 268.203C41.7969 268.496 41.543 268.609 41.3672 268.617C41.7031 269.055 42.3164 269.078 42.457 269.078C42.6641 269.078 43.2695 269.016 43.2695 268.195C43.2695 267.641 43.0391 267.305 42.9258 267.18C42.6875 266.934 42.5078 266.918 42.0234 266.883C41.8711 266.879 41.8047 266.867 41.8047 266.766C41.8047 266.656 41.8789 266.656 42.0117 266.656H42.4102'/>\n<path d='M73.7344 267.242C73.7344 267.516 73.7344 267.527 73.4961 267.527C73.207 267.203 72.6133 266.766 71.3828 266.766V266.418C71.6602 266.418 72.2539 266.418 72.9102 266.727V260.516C72.9102 260.09 72.875 259.945 71.8281 259.945H71.457V259.602C71.7773 259.621 72.9336 259.621 73.3281 259.621C73.7227 259.621 74.8672 259.621 75.1875 259.602V259.945H74.8164C73.7695 259.945 73.7344 260.09 73.7344 260.516V267.242'/>\n<path d='M81.5391 263.414C81.5391 264.406 81.4805 265.367 81.0508 266.273C80.5625 267.266 79.7031 267.527 79.1211 267.527C78.4297 267.527 77.582 267.18 77.1406 266.191C76.8086 265.441 76.6875 264.703 76.6875 263.414C76.6875 262.258 76.7734 261.387 77.2031 260.543C77.6641 259.637 78.4883 259.352 79.1094 259.352C80.1445 259.352 80.7422 259.969 81.0859 260.66C81.5156 261.555 81.5391 262.723 81.5391 263.414ZM79.1094 259.59C78.7266 259.59 77.9531 259.805 77.7266 261.102C77.5938 261.816 77.5938 262.723 77.5938 263.559C77.5938 264.535 77.5938 265.418 77.7852 266.121C77.9883 266.918 78.5938 267.289 79.1094 267.289C79.5625 267.289 80.2539 267.016 80.4805 265.988C80.6328 265.309 80.6328 264.367 80.6328 263.559C80.6328 262.758 80.6328 261.852 80.5039 261.129C80.2773 259.813 79.5273 259.59 79.1094 259.59'/>\n<path d='M87.6563 265.805C87.7813 265.805 87.957 265.805 87.957 265.988C87.957 266.168 87.7813 266.168 87.6563 266.168H83.1016C82.9727 266.168 82.8008 266.168 82.8008 265.988C82.8008 265.805 82.9727 265.805 83.1016 265.805H87.6563'/>\n<path d='M90.8398 265.621C90.9688 265.742 91.3008 266.004 91.4297 266.113C91.9219 266.566 92.3906 267.004 92.3906 267.727C92.3906 268.672 91.5938 269.285 90.6016 269.285C89.6484 269.285 89.0234 268.563 89.0234 267.855C89.0234 267.465 89.332 267.41 89.4414 267.41C89.6094 267.41 89.8555 267.527 89.8555 267.828C89.8555 268.242 89.457 268.242 89.3633 268.242C89.5938 268.824 90.125 269.023 90.5156 269.023C91.2539 269.023 91.6367 268.395 91.6367 267.727C91.6367 266.898 91.0547 266.297 90.1172 265.336L89.1172 264.301C89.0234 264.215 89.0234 264.199 89.0234 264H92.1602L92.3906 265.422H92.1445C92.1211 265.266 92.0547 264.867 91.9609 264.715C91.9141 264.652 91.3086 264.652 91.1836 264.652H89.7695L90.8398 265.621'/>\n<path d='M122.031 267.242C122.031 267.516 122.031 267.527 121.797 267.527C121.508 267.203 120.914 266.766 119.684 266.766V266.418C119.961 266.418 120.555 266.418 121.211 266.727V260.516C121.211 260.09 121.176 259.945 120.129 259.945H119.758V259.602C120.078 259.621 121.234 259.621 121.629 259.621C122.023 259.621 123.164 259.621 123.488 259.602V259.945H123.117C122.07 259.945 122.031 260.09 122.031 260.516V267.242'/>\n<path d='M129.742 263.414C129.742 264.406 129.68 265.367 129.254 266.273C128.762 267.266 127.906 267.527 127.32 267.527C126.629 267.527 125.781 267.18 125.344 266.191C125.008 265.441 124.891 264.703 124.891 263.414C124.891 262.258 124.973 261.387 125.402 260.543C125.867 259.637 126.688 259.352 127.309 259.352C128.344 259.352 128.941 259.969 129.289 260.66C129.719 261.555 129.742 262.723 129.742 263.414ZM127.309 259.59C126.926 259.59 126.152 259.805 125.926 261.102C125.797 261.816 125.797 262.723 125.797 263.559C125.797 264.535 125.797 265.418 125.984 266.121C126.188 266.918 126.797 267.289 127.309 267.289C127.762 267.289 128.453 267.016 128.68 265.988C128.836 265.309 128.836 264.367 128.836 263.559C128.836 262.758 128.836 261.852 128.703 261.129C128.477 259.813 127.727 259.59 127.309 259.59'/>\n<path d='M135.855 265.805C135.984 265.805 136.156 265.805 136.156 265.988C136.156 266.168 135.984 266.168 135.855 266.168H131.301C131.172 266.168 131 266.168 131 265.988C131 265.805 131.172 265.805 131.301 265.805H135.855'/>\n<path d='M139.297 269.063C139.297 269.277 139.281 269.285 139.066 269.285C138.738 268.969 138.316 268.777 137.563 268.777V268.516C137.777 268.516 138.207 268.516 138.668 268.727V264.652C138.668 264.359 138.645 264.262 137.891 264.262H137.609V264C137.938 264.023 138.621 264.023 138.977 264.023C139.336 264.023 140.027 264.023 140.352 264V264.262H140.074C139.32 264.262 139.297 264.359 139.297 264.652V269.063'/>\n<path d='M173.531 267.242C173.531 267.516 173.531 267.527 173.297 267.527C173.008 267.203 172.414 266.766 171.184 266.766V266.418C171.461 266.418 172.055 266.418 172.711 266.727V260.516C172.711 260.09 172.676 259.945 171.629 259.945H171.258V259.602C171.578 259.621 172.734 259.621 173.129 259.621C173.523 259.621 174.664 259.621 174.988 259.602V259.945H174.617C173.57 259.945 173.531 260.09 173.531 260.516V267.242'/>\n<path d='M181.242 263.414C181.242 264.406 181.18 265.367 180.754 266.273C180.262 267.266 179.406 267.527 178.82 267.527C178.129 267.527 177.281 267.18 176.844 266.191C176.508 265.441 176.391 264.703 176.391 263.414C176.391 262.258 176.473 261.387 176.902 260.543C177.367 259.637 178.188 259.352 178.809 259.352C179.844 259.352 180.441 259.969 180.789 260.66C181.219 261.555 181.242 262.723 181.242 263.414ZM178.809 259.59C178.426 259.59 177.652 259.805 177.426 261.102C177.297 261.816 177.297 262.723 177.297 263.559C177.297 264.535 177.297 265.418 177.484 266.121C177.688 266.918 178.297 267.289 178.809 267.289C179.262 267.289 179.953 267.016 180.18 265.988C180.336 265.309 180.336 264.367 180.336 263.559C180.336 262.758 180.336 261.852 180.203 261.129C179.977 259.813 179.227 259.59 178.809 259.59'/>\n<path d='M185.688 266.535C185.688 267.387 185.598 267.902 185.336 268.41C184.988 269.109 184.344 269.285 183.906 269.285C182.906 269.285 182.539 268.539 182.43 268.316C182.141 267.734 182.129 266.949 182.129 266.535C182.129 266.012 182.148 265.207 182.531 264.57C182.898 263.984 183.484 263.832 183.906 263.832C184.289 263.832 184.969 263.953 185.367 264.738C185.664 265.313 185.688 266.02 185.688 266.535ZM183.906 264.055C183.637 264.055 183.09 264.184 182.922 265.016C182.832 265.469 182.832 266.219 182.832 266.629C182.832 267.18 182.832 267.734 182.922 268.172C183.09 268.984 183.707 269.063 183.906 269.063C184.176 269.063 184.727 268.926 184.883 268.203C184.977 267.766 184.977 267.172 184.977 266.629C184.977 266.16 184.977 265.445 184.883 265.004C184.719 264.168 184.168 264.055 183.906 264.055'/>\n<path d='M221.734 267.242C221.734 267.516 221.734 267.527 221.496 267.527C221.207 267.203 220.613 266.766 219.383 266.766V266.418C219.66 266.418 220.254 266.418 220.91 266.727V260.516C220.91 260.09 220.875 259.945 219.828 259.945H219.457V259.602C219.777 259.621 220.934 259.621 221.328 259.621C221.723 259.621 222.867 259.621 223.188 259.602V259.945H222.816C221.77 259.945 221.734 260.09 221.734 260.516V267.242'/>\n<path d='M229.441 263.414C229.441 264.406 229.383 265.367 228.953 266.273C228.465 267.266 227.605 267.527 227.02 267.527C226.328 267.527 225.484 267.18 225.043 266.191C224.707 265.441 224.59 264.703 224.59 263.414C224.59 262.258 224.672 261.387 225.102 260.543C225.566 259.637 226.391 259.352 227.008 259.352C228.047 259.352 228.641 259.969 228.988 260.66C229.418 261.555 229.441 262.723 229.441 263.414ZM227.008 259.59C226.629 259.59 225.852 259.805 225.629 261.102C225.496 261.816 225.496 262.723 225.496 263.559C225.496 264.535 225.496 265.418 225.688 266.121C225.887 266.918 226.496 267.289 227.008 267.289C227.461 267.289 228.152 267.016 228.379 265.988C228.535 265.309 228.535 264.367 228.535 263.559C228.535 262.758 228.535 261.852 228.402 261.129C228.176 259.813 227.426 259.59 227.008 259.59'/>\n<path d='M232.496 269.063C232.496 269.277 232.48 269.285 232.266 269.285C231.938 268.969 231.516 268.777 230.762 268.777V268.516C230.977 268.516 231.406 268.516 231.867 268.727V264.652C231.867 264.359 231.844 264.262 231.09 264.262H230.813V264C231.137 264.023 231.82 264.023 232.18 264.023C232.535 264.023 233.227 264.023 233.551 264V264.262H233.273C232.52 264.262 232.496 264.359 232.496 264.652V269.063'/>\n<path d='M269.934 267.242C269.934 267.516 269.934 267.527 269.695 267.527C269.406 267.203 268.813 266.766 267.586 266.766V266.418C267.859 266.418 268.453 266.418 269.109 266.727V260.516C269.109 260.09 269.074 259.945 268.027 259.945H267.656V259.602C267.977 259.621 269.133 259.621 269.527 259.621C269.922 259.621 271.066 259.621 271.387 259.602V259.945H271.016C269.969 259.945 269.934 260.09 269.934 260.516V267.242'/>\n<path d='M277.641 263.414C277.641 264.406 277.582 265.367 277.152 266.273C276.664 267.266 275.805 267.527 275.219 267.527C274.531 267.527 273.684 267.18 273.242 266.191C272.906 265.441 272.789 264.703 272.789 263.414C272.789 262.258 272.871 261.387 273.301 260.543C273.766 259.637 274.59 259.352 275.207 259.352C276.246 259.352 276.844 259.969 277.188 260.66C277.617 261.555 277.641 262.723 277.641 263.414ZM275.207 259.59C274.828 259.59 274.051 259.805 273.828 261.102C273.695 261.816 273.695 262.723 273.695 263.559C273.695 264.535 273.695 265.418 273.887 266.121C274.09 266.918 274.695 267.289 275.207 267.289C275.66 267.289 276.352 267.016 276.578 265.988C276.734 265.309 276.734 264.367 276.734 263.559C276.734 262.758 276.734 261.852 276.602 261.129C276.379 259.813 275.629 259.59 275.207 259.59'/>\n<path d='M280.441 265.621C280.57 265.742 280.902 266.004 281.031 266.113C281.523 266.566 281.992 267.004 281.992 267.727C281.992 268.672 281.195 269.285 280.203 269.285C279.246 269.285 278.621 268.563 278.621 267.855C278.621 267.465 278.93 267.41 279.043 267.41C279.211 267.41 279.457 267.527 279.457 267.828C279.457 268.242 279.059 268.242 278.965 268.242C279.195 268.824 279.727 269.023 280.117 269.023C280.855 269.023 281.234 268.395 281.234 267.727C281.234 266.898 280.656 266.297 279.719 265.336L278.719 264.301C278.621 264.215 278.621 264.199 278.621 264H281.762L281.992 265.422H281.742C281.719 265.266 281.656 264.867 281.563 264.715C281.516 264.652 280.91 264.652 280.781 264.652H279.367L280.441 265.621'/>\n<path d='M142.418 281.992C142.656 281.992 142.75 281.992 142.75 282.219C142.75 282.34 142.656 282.34 142.441 282.34H141.477C141.703 283.566 141.867 284.414 141.965 284.793C142.035 285.078 142.285 285.352 142.594 285.352C142.844 285.352 143.094 285.246 143.215 285.141C142.75 285.09 142.609 284.746 142.609 284.543C142.609 284.305 142.785 284.16 143.012 284.16C143.254 284.16 143.609 284.363 143.609 284.816C143.609 285.316 143.109 285.594 142.582 285.594C142.07 285.594 141.57 285.211 141.332 284.746C141.117 284.328 140.996 283.898 140.723 282.34H139.926C139.699 282.34 139.578 282.34 139.578 282.121C139.578 281.992 139.652 281.992 139.891 281.992H140.652C140.438 280.883 139.949 278.188 139.676 276.914C139.473 275.879 139.293 275.008 138.695 275.008C138.66 275.008 138.316 275.008 138.102 275.234C138.711 275.281 138.711 275.805 138.711 275.816C138.711 276.055 138.531 276.199 138.305 276.199C138.066 276.199 137.707 275.996 137.707 275.543C137.707 275.031 138.234 274.77 138.695 274.77C139.914 274.77 140.414 276.949 140.547 277.547C140.758 278.465 141.344 281.633 141.402 281.992H142.418'/>\n<path d='M147.973 274.305C147.973 274.34 147.973 274.363 147.773 274.566C146.578 275.77 145.914 277.734 145.914 280.168C145.914 282.48 146.473 284.473 147.855 285.879C147.973 285.984 147.973 286.008 147.973 286.047C147.973 286.117 147.914 286.141 147.867 286.141C147.715 286.141 146.734 285.281 146.148 284.113C145.543 282.91 145.27 281.633 145.27 280.168C145.27 279.109 145.434 277.688 146.055 276.414C146.758 274.984 147.734 274.207 147.867 274.207C147.914 274.207 147.973 274.23 147.973 274.305'/>\n<path d='M154.352 282.063C153.969 281.992 153.828 281.707 153.828 281.48C153.828 281.195 154.051 281.098 154.219 281.098C154.578 281.098 154.828 281.406 154.828 281.73C154.828 282.23 154.254 282.457 153.754 282.457C153.027 282.457 152.621 281.742 152.516 281.516C152.242 282.41 151.504 282.457 151.289 282.457C150.07 282.457 149.426 280.895 149.426 280.633C149.426 280.586 149.477 280.527 149.559 280.527C149.652 280.527 149.68 280.598 149.703 280.645C150.105 281.969 150.906 282.219 151.254 282.219C151.789 282.219 151.895 281.719 151.895 281.43C151.895 281.168 151.824 280.895 151.68 280.324L151.273 278.691C151.094 277.977 150.75 277.32 150.117 277.32C150.059 277.32 149.762 277.32 149.512 277.473C149.938 277.559 150.035 277.914 150.035 278.059C150.035 278.297 149.855 278.438 149.629 278.438C149.344 278.438 149.035 278.188 149.035 277.809C149.035 277.309 149.594 277.082 150.105 277.082C150.68 277.082 151.086 277.535 151.336 278.023C151.523 277.32 152.121 277.082 152.563 277.082C153.777 277.082 154.422 278.641 154.422 278.906C154.422 278.965 154.371 279.012 154.305 279.012C154.195 279.012 154.184 278.953 154.148 278.855C153.828 277.809 153.133 277.32 152.598 277.32C152.18 277.32 151.953 277.629 151.953 278.117C151.953 278.379 152.004 278.57 152.191 279.359L152.609 280.977C152.789 281.695 153.195 282.219 153.742 282.219C153.766 282.219 154.102 282.219 154.352 282.063'/>\n<path d='M157.625 277.152C157.625 277.844 157.398 278.355 156.91 278.355C156.527 278.355 156.34 278.047 156.34 277.785S156.516 277.199 156.922 277.199C157.078 277.199 157.207 277.246 157.313 277.355C157.34 277.379 157.352 277.379 157.363 277.379C157.387 277.379 157.387 277.215 157.387 277.152C157.387 276.758 157.313 275.984 156.621 275.211C156.492 275.066 156.492 275.043 156.492 275.02C156.492 274.961 156.551 274.898 156.609 274.898C156.707 274.898 157.625 275.781 157.625 277.152'/>\n<path d='M163.734 275.867C163.414 275.414 162.949 275.008 162.363 275.008C162.223 275.008 161.648 275.031 161.469 275.578C161.508 275.566 161.566 275.566 161.59 275.566C161.945 275.566 162.188 275.879 162.188 276.152C162.188 276.426 161.961 276.52 161.781 276.52C161.59 276.52 161.172 276.379 161.172 275.793C161.172 275.188 161.684 274.77 162.363 274.77C163.555 274.77 164.762 275.867 165.094 277.188L166.262 281.84C166.273 281.898 166.297 281.969 166.297 282.039C166.297 282.219 166.156 282.34 165.977 282.34C165.867 282.34 165.617 282.289 165.523 281.934L164.641 278.43C164.582 278.215 164.582 278.188 164.484 278.059C164.246 277.727 163.855 277.32 163.281 277.32C162.613 277.32 162.555 277.977 162.555 278.297C162.555 278.977 162.879 279.895 163.199 280.754C163.328 281.098 163.402 281.266 163.402 281.504C163.402 282.004 163.043 282.457 162.461 282.457C161.363 282.457 160.922 280.727 160.922 280.633C160.922 280.586 160.969 280.527 161.055 280.527C161.16 280.527 161.172 280.574 161.219 280.742C161.508 281.742 161.961 282.219 162.422 282.219C162.531 282.219 162.734 282.219 162.734 281.824C162.734 281.516 162.602 281.168 162.422 280.719C161.84 279.156 161.84 278.762 161.84 278.477C161.84 277.344 162.648 277.082 163.246 277.082C163.594 277.082 164.023 277.188 164.438 277.629L164.449 277.617C164.273 276.914 164.152 276.449 163.734 275.867'/>\n<path d='M170.063 280.168C170.063 281.074 169.941 282.551 169.273 283.934C168.57 285.367 167.594 286.141 167.465 286.141C167.414 286.141 167.355 286.117 167.355 286.047C167.355 286.008 167.355 285.984 167.559 285.781C168.75 284.578 169.418 282.613 169.418 280.18C169.418 277.867 168.859 275.879 167.477 274.469C167.355 274.363 167.355 274.34 167.355 274.305C167.355 274.23 167.414 274.207 167.465 274.207C167.617 274.207 168.594 275.066 169.18 276.234C169.789 277.449 170.063 278.738 170.063 280.168'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-contour.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.9.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='285pt' height='288pt' viewBox='0 -288 285 288'>\n<g id='page1'>\n<g transform='matrix(1 0 0 -1 0 0)'>\n<path d='M0 0H284.965V287.656H0Z' fill='#fff'/>\n<image x='0' y='0' width='200' height='200' transform='matrix(1.20527 0 0 .9371 33.6357 25.681)' xlink:href='data:image/jpeg;base64,\n/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy\nMjIyMjIyMjL/wAARCADIAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW\nV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC\nAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq\n8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCzff6T4yhXqFyf1rrdffaI4h1CgfpXKaUpuvGzHqFwP1rpdXbzdUwegr4HHQeIzKFJHV4h4j2OAp0l2RmrEcdKd5R9Kz9Z1ufTG2QWhkx3xmsyy8WahczBH09lBP8Adr9FocHTlSU7o/GIYWvUh7SKVvVG+yFWB961tXk8nwq/\n+1/hVCY74o2K7WbBI9Kk8Wy+R4WjXuQTX55neD+r4+FC99Ufb+HtN1cx9CL4dw5hV/7xzXoGsvssG+lcl4At9llF9BXSeJZdlg/Pavr6K5aJ+lZk/a5jbzPMdFT7V40kbrggV0muyeZeFR61h+CU83XrufrhifyFa1x++1KQnscV8bOi8XmypI+a8S8T7OnTpLsvyKoi\nOOlL5R9Kx9X8R3VhMY4LFnA74qLS/E19ezhJLAqCfSv0iPB0/Zc90fkawld0/aWVvVG2i7Z0z61Y8ay+V4diUd1JodQbmIAckiqvj6TFtaQeu0fma/N8wwqo5pGj2Z+i+GkPaYxy7G74Dg2WUX0FbvieXy7F/pVPwdDssU+lN8ZzbLGTntX2cfdon3VX97mXzOL8DR+Z\nrN1P6Mx/IVpai3nXrAdqreAY9tjdXHqCfzNWEw80sh5wScV8bhcM8dmzpo+P8TcVavGkv6sRCI+lBiPpXP6j4qvbWYpFp7MAfSrmja9d6jMEmsigPfGMV+jy4OnGlzuSPzCWErxp+0aVvVGtZri9QetV/iA5LWkA7lRV+2QHU41FZHjR/O8RWsPo4B/AV+a1KChmvs10\nufqfhlDmqSqPp/kd34Qi2WMfHaq/jWbZYyfStXw5HssE+lcv8QLjZZS89jX2s/don1uGXtcy+ZmeAY9mm3E/qCfzNFWvC0f2fwq7dCcCivzTEr2uInLzPmuLsw5MylEyPBq+d4kuZj2f+QrW1F8aizVR8AR5+1XBHXcasXzb7tsV6M6sv7Sc49DHxLqJzjT7WH+arD5l\nVvqM0CSNeVjQH2UVXwaCDX1izrGKNrs/IuREyEz3SL71D4+k22Nrb+oAx9TVrSk3Xgz61meOJPN1u1g9HA/IV8rKrPFZlGU9z9a8NMMlWlV/rQ7PwZB5djHx2qTxjN5djJ9KueGYvLsU+lYHj242WUnPY19xL3aJ9bSXtsy+ZheAI/3N1P67jn6mrEr7byQ+9SeCovI8\nOySHuoFVpjvuGI9a+FoVpLMJVIbpnxHiTVU8Yo9icyo33kRj7gGgSov3EVfoAKr4NIQa+slnWMUbXZ+X8iLliDcX6HsDWV42k83XrW3HOHA/IVu6Am66B965rWHN340ReoUk18thpyxGZc8tz9m8NsOqdOdbyf5HpvhqLy7BPpXOePrjZZS89jXXaOnl2C/SvPfiJPmF\no/7x2/nX21Z8tE+jy2Ptcxv5k/g+HyfDEjeoAqvHJskb6mtPSU+zeFk7bv8ACsflnYjua+Gy6vOGMnVhvdn5v4hVVVzBloyRty0aE+6ijzlQHYqr9Biq+DTWzivq6mdYzkabZ+fciNTRIzNfhz0Brm9Vc3fjVB1C5P611mggLE8n91Sf0rkNPH2rxjM/ULgfrXzOWt18\nwlUkfuPh9QVHAVKvkz1zSU8uwX6V518Q5sp5f95gPzNelWw8uwH0ryfxvJ52qW8P96Uf419li5ctFnuZJHnxzl2OisI/J8KRD+9/hRU04FvoNsn+xmivzileTlLu2fl/FteM8zm2zL8GRG28NyynqQBTEUSM8rEAZySavabH9n8JIBwW/wAKooqTWrQvkBhjivoeHaVH\nEZjOVd6XH4h4l1My5ehA+p6ZE21rpM1PBNa3a5gmV/pWFP4K06eUu0z1qadpNppCkwszHHU1+nYnC5NCi3GWp8PUjhlC9OTcvQ1NHTOp7fpXPa4/2vxpGnUKSa6jQlzPLP2UE5+grlLLN54zmfqFwP1r8owcY1MznKOy/wAz9n8OaTp4GpWfZnrOjJ5dgv0rz/4iT5ha\nPP3jt/OvR7VfLsB9K8o8by+dqcEP96UcfrX1+LlyUWe/ksefHc/bU3tMX7J4TTsW/wAKoRoiRGWVgq9ya1L1fJ0G1jH93JrLmt4r208iUkA9xXz/AApQw9fFTniHpc/I+N8T7XNJJvREDarpattN0masxtBcxl4JFcD0rn28Eaa0u8zPmtqzsrfS7cxwEnPUmv0TH4bJ\n6eHcqctbHytaOHUV7KTb80a+gDbLK390E/pXKWQ+1eMpm6hcD9a63TP3Ol3U54+Q/rXMeEIzca5czHnMmBX5blEVPHVJrY/ceBqTo5POo+q/M9atR5dgPpXlHjeXztTgh/vSD/GvWJT5dh+FeP6y32rxbbx9cMTX1WYz5KDfkexkKviJ1H0TZ1d3/o2g2sQ4JWszEVvC\nHmkVF9TWnrp2C3jHRVUfpWRfWEGp26xysy47ivK4Ow+FqzlPEuyPxTiqv7bNJ8z0uRjVtLLbftaZqziKWHzInDr6isBPBGmrLv8AOetuOGGxtPIhzj3719vm2HyilhpSpSu7HgVo0Fb2Mm35o19MPl6RdSHshrl/CEZn1y5mPOZOK6Sci08KzMeC3FZPw9g3kyn+Nyc/\njX5tkEOavOfmfvfC1N4fIXJ7tI9OlPl2H4V4/rJ+1+LbeLrgk163qj+XYN9K8ksFN542PcLj+dfQ5vU5MPJ+R6ORLlVWq+iZ1muNtWCBeygfpRUOtPnUx6DNFeDkuFo1MNzVHrc/B+IMRKrmFSXmWZ1EGg20f+xmsFGIFbeuvsjigXsoGPwrKSAkdK5Mmw9aredNHdxZ\niY1sxm+wzeaa7kjFT+QfSopIyte1iqGKp0nKVz5mLi2bdkBb6Ncy9DsxXK+D4/tGtXMx5zJXSX8ot/CsrdC3+FZfw8t9y+b/AHmLfma83h6HNVnPzP6C4bprD5FKS62PS5j5Vh+FePaw32vxbbx9cEmvW9Wk8qwb6V5NpiG98aseoUgfrX0OcVPZ4eT8juyJcsatZ9Ez\nrdcwltFGP4UA/SsNWIFamuy+beeWvrVFYDjpXzWS4WvOHNTR+FcQ4iNXH1JeZHvNNJLMF9TU5gPpUWwrKn1r0sdRxNOk3O9jxqXLKSRr3zi08LynoW4rH+HtvuHmn+Ji35mrfjCf7P4ZRO7AmrngC18uyi47Cubhunfmn3Z/Q+WQWGyFW62/I7HVX8qwb6V5JYKbzxqx\n6hcD9a9P8STeVYP9K848FR+fr91cnkK5P5V6ufVeTDS9Doyj91g61Z9joPEDg3GB2NZSucVb1JzPfMB0BqEQH0rxsnwleVK9NH4BnFeNXGTl5ke80iZkmVfepjAfSkt0xeRj1NdOZUsRSotzvY4sMozqxj5k/i6b7L4ZRBxuBNWfh/a+XZRcdhWT4/lIgtbb12jH1Ndd\n4Ot/LsU47U+Gqf7rm7s/oiEVh8kpwXX/ACNDxHL5dg/PavNvBief4jubg8gP/Ku38Z3Hl2MnPauU8AxbbS5uj3BOfqa34jqcuHa7l4N+wyqtVfUt6s+69J96KhnJnunPYGivPy/B13QTgtD+esdWjUxE5d2XdVfzdVOegrA1ybWY2xp8fydiO9at8/8Ap7tSCcgda9/h\nLM6GAoe/FNmmPrN46dVpS1e5y1hN4pecCZSE711Eu4xxq+PMOA2PWlNwfWi1U3F4g7A16PEfEdHE4WUKcEmzGLeKrRioKOvQd4wm+zeGYoh1YE1o+ArXy7KPjsKwPHsu6e0s1PdR/jXceErfyrFOO1fNcN0rUubuf0JyfVslpU+5P4nn8qxfntXnngePztYu7o9mJz9K\n63xvdeVYyc9q5/wJD5ekT3BGCwJ/M1fElW1Bx7lUH7DKKtTuWJWEupSE9jiud1m48QJMwso8J2xWy77bmQ+pqQXB9a9rhfN8PgMMozgmz+ea1VxxMqjipXb3Od0mXxLJOPtQwmec10jDfdxIOuRmmNcHHWrGkxm4vlY9AaXFPENHFYZwpxSNcNF4vFwSilqtjO8fSny7\nS0HU7Rj6muy8IW/lWKcdq4LxTJ9s8WQQg5CtnHsOK9P0GLyrBfpXlcO0uXDpn9BY5ewyyjR8jG8a3PlWMnPauY8BxbNMubk9WBI/E1d+Id0VtJFB5IwKf4dh+y+FemC2P5VycS1PcUO7MsRL6tkU5d/8itGd8srgZbJwDXManc+JhORbR4TPGK6COQqzfU1MLg+tfVcO\nZ3hsDhYwlBNn89Ks6dWU3FSv3MbRJNeeUG+GI++a6C1TzdTQAcCqzXBI61o6DHuuGmYdOfwFeZxdntLGUOSnFI7sspPF4+naKWq0RzvjCT7T4mtrdeQrfoK9L8PQ+VYJ9K8sY/b/ABqx67P6n/61evaenlWA+lZZHS9nho+h++5x+6w1GiuiRw/xBu9lnKAecGovDUX2\nTwozYwWwKzfH05luI4QfvSAfrW8sf2fwzBH0yM15HEdS8oQ7s5M6n9WyBpbyuZce8WzvEoaXGQPeimQylVAor7HKc6w2GwkKUoJ2P55u03on6iTsZbhmHrSbDT3khs7YzzthayG8ZaQkmz5ia4cq4VxNfDxnFbm7jWxEnKEWzUKmtHQo992PrVCzvbbUYDJBnA9a1dCG\nxp5T0UE/pXg8S5bUwEFGe7PRyKlKpmEKbWtzl/EEn27xjFGOQrFq9V0SLyrBfpXk+mKb7xfPL1CkAV7BAPJsB9K9bJqXs8PFeR+8Z4+SnSoLoked/EO6/wBHaMHlvlH41c0OIWXhZSeN/wDQVz3jKY3WsW9uOd0gz+FdLf8A+jaPa268EqM/jXhcQTdSrCkurOHiKusF\nkKXe5jHLyM3qadsNFzd2umwCS4bAPQVlL4y0hpNg3Zr6vAcJ4qpQU0j8CVOtWvOEW0abKcVteH1C7pP7oLVlRTw3lr50OdvvWpp7fZ9Eupjx8pAr5TiTL54KSpS3Z7vC1J1syhBrZnJ22b7xnI/UJxn8a9fs18mwH0ryfwZD9p1e4uDzukOPw4r1m4bybD8K+jyyn7Og\nl5H7bn0v3sKK6JI8q8dT+ffwwA/fkA/rXSMBaeHrePpld1chqRN/4vgjHIUk11muNh4bYfwgAj6V8xnTdfFwoxPK4yxKwmTQp9WvzMVVJ5p+w0y+1Ky0pB9oY7sdBWdD4w0meTYm7NfZ4XhLFSoqSR+FRpV6i54QbRoupANb2nEQaVcTdMRmsh2jlthLH91hkVfvZPsn\nhSRjwW4/Svi8/wAFLC140Jbto+p4KouvmUVbY5zwnGbrX7mc8jzMCvXHPk2H4V5r8PLXcnmkcuxb8zXoerSeTYN9K+twUOSij9ezuXPjFTXSyPJtff7b4ptoeuG3f5/Ouv1hhDZwwj+FAK5LSUOoeNHbqqECuj1eT7RqRQdBXyOYxlisxhRieJx/ilhsvp0F2/MzFQ4o\nqHUNb0/S22TsSw64or7ihwhi5U00j8TjQxFRc0INoussNxB5UyBl9DVH+wNH3bvswzU4JxS5NcmG4jxVCkoQdkjOMpw+CTXzHqsFrCY7eMIvoK1Ij9i8O3MzcFlx+dZEYMkyr71e8WTiy8NLGOCwJr5POswq5jiYRqO+p9xwJgHXzFTetjJ8CW5nvZbgjl5Ca9SvXENg\nfpXE/D+y8uzjJHauq8RTiGxfntX1+Gj7OifqObT9tj+RdGeWyZ1DxpGvUJz+ZrqtebF1GmeE4/IVzvg+L7X4kuLlhlVfr7CtjWJPMvD9a+Kx1XnzFP8AlPn/ABGrKGGhh10SIJ4ba8iCXEYcCqS6DpCNuFqM1OCaXJr7SjxLi6VNRi9D8WjKpBWjJpepIxRIhDCgVegA\nq7rUgsPCZGcF/wCgqlZp5t0oPao/H0220trNerADH1r4/MsZUzHHw9o76n6N4dYD2uO9q+ha+HloRbpIRy3zH8a7nXJhDYN9KxvBloIbGPjsKk8YXQhsZOe1fZ01yUT9AxcvrOY2Xc4Lw3H9u8XzTHkIwXP61varLu1Mt6VneAYSUubxu+45+vSp75994xFfDzrN5k5r\n7J8t4l103Cgulhl1Z2V8P9IiDmq8Wh6TC25LVc1Nk0Fjivto8T4uEOVPQ/I4yqRXLGTS9SViJHjhQALnAA7Uvjab7NoUNspwzDp7nipdKi828B9DWV41l+065bWi8hXAP4V8bXxM8wzKMp6n6n4a4FfWHXfT9Dq/A1n5VlHx2Faniq5ENi/PapvDNuIbFOO1c74+vfKs\npRntX2j9yifZRvicy+ZgeA4vMvbu8Yd2P9BV+eT/AE+Rj607wbB9l8OySt1YAVUlbdcOR618PQxDWYyrLoz4nxKxCqYlU09gutN0+9bfPAGbuaKMmivuYcUYyKsmz8wjOrFWjJpepY8gL1IH1NL5GRkYP0rlb7w5rdxOWjvtqn/arT0XSL3T333d2Xx2znNfRVeH8up0\neb2iNJ0acafMqqb7amrbR/6fGtU/Hk2+4tLJT1KjH862NJj8/U938K1zWqSHU/GaqOVjJNflPs41M1ahtE/WvDTDOMZ4mXS56L4StRDYpx2qh43vBDYyc9q6LSYhBYL7CvO/iDdmQeQp5dgv5mvsqz5KJ9RgI/Wcxu+47wNB5GkT3bjBYE59zSsGuJ3ftnir9rH9g8Kx\nIBhnGaoNHJJYtHA+yQjg18vw/g4ZhmE5VHZXPzbxCx7r5j7NPRD/ACQOCwH40GDjI5+lclP4Z1yWcsL8hc/3q3tH0+506JvtVz5jEYxmv0nFZDl1Gi5qomfC1aNOEOaNVSfZXNTSYt2ohfpWJ4ol+3eK4LdTkK2cew4rpdEXa89yeiAkfhXK6Wp1HxdPN94IcCvyzBU4\n1cyk47I/ZvDrDujgqmJl2Z6poMAhsF47VxnxCvStq6KeTwK76BRBYD6V5N4xnN5rNvbDnMgJ/CvsMXP2dFn0GTw9rjXUey1N3w/CNP8ACu4jBfiqccTSsXI5PNamoj7NpFrbDj5Rn8ayb23nuLHyrWURv35xXz/C2X08fipzrOyufk3G+OeJzSUb6Im8lR1ZfzpHgwM1\nyJ8L660+46gduf71dNp9tLYWZSefzHP6V9/mGR5fh8O5qonZHyValCmk4VFJ9ka+gJ/pLuRwvP5VyrE6j40Y9RH/AFP/ANaussT9l0a6uW4JU4P1rm/BkBu9WnujzukOPwr8xyimquNnNbLQ/cOBqDw2Uzry3a/M9WsEENgPpXmHj25M9zHbqeXcDFeo3DCCwPbAryDU\nSdR8YQxdQhya+rzGp7Og35Hs5FG+IlWfS7OrAFh4bt4gMFlzWZFAWXJrS1xtssMA6IAPyFYurWd3e2ypaTiPA55xXlcIZZRxs5VK0rI/FuK8Y8Vmk05WV9y35K/3l/OiuRh8L62J9z3525/vUV+iS4dy1ae1R4csPRW1ZfczqvOPrTHlJGKd5Z9KjKfvFHvX5ziq+KhT\nbk2c8IptI3NOUWml3Fy3BCHn61yvhWE32v3Fy3OXwPwrodfuBYeFyM4L81B8PbErbrIw5b5j9TXBw/SdSrOq+5/QXDtBYHI3LZy0PQnIgsPwryDXpDqHii3gHIDbjXqmuTiCwbntXl3hyH+0vFk07cojYz9Oa97OK6pYeT8jtyRezhVxMuiZ1Os4hsoYB/AgFYySECr+\ntT+feFB61RER9K+byenWjDngtz8J4gxKxGOnPzHecfWmNIznaOppTGfSiFM3SL716WNr4mFJ8zZ5FGCnNRXU1rhxp3hqZ84LjFYngC0M0rXLDJkctVnxzc/Z9HhtUOGcdPc1t+BrEQWMfHasOHKN+aq+rP6Gy6isDkSitHI6jUpBBYHtxXkcCnU/GnqI+PzNekeK7sQW\nL89q4TwLB5t7dagw/iLA/oK9PPq/s8PI3yu2HwdbEPt+Zt6/IDOEU8LwKzFlIHWpr+U3F22OQDUIiPpXjZRTr06d4H4Dm9dV8XOfmO84+tMyZpFT1NKYzUunx771VxXTmOIxEKT527HJhaSqVow7sseJ7gaf4YEY4LjNO+H1gY7SNmHJGTWR47n829tbBT3VSP1Nd14U\ntBBYpxjir4bo2pc766n9DKmsFk1Okt5FvxBcCCwfntXmfhOL7d4nnumGVVsZ9hXX+Ob4QWMnPY1heB7b7No8144wzD9TWvEVfloOK66FYaSwmVVa766FjV5d98T71VEpHeiZjPcM3bNJ5R9K48rhXp0lyH894+qq2InPuxxmPrRTDGQKK7p18Unq2cdomVpPiaXUZlja\nxZAT1wRW95Ye9jjX1qMPFED5caJ9Bir2iw+ddmd/urz+Ar1uLs3wdTD8mGjZs9HA0Fi8bCFKPKm15mP47n3Naaeh5OFI/U12vhGzEFinHavPLpzq/jP1WM5/E161psQt7Be2BXnZBh/ZYdNn9AZklhsDRwy7XOc8bXwgsZOccVzvge3NvpVxfOMM4Jz9ai8f3hmkW2U5\nMjha2IIRYeGIYgMFxk153Eda6jSXVnPmNX6hkUpdZGeGBMtw4JAyeK5y98ZNbTFEsHYA9cGuhgk2JinMlsxy0EZP+7X2vD2My3CYWMa0bs/nyFWHtJSrQ5r+djN0bXZNVcK9o0YPcjpW1YxedqaKOgquZUiUiNFQewxWno6eTBPeP/CpIP8AKvC4xzXC1qSp4aNrnpZN\nhVjMxhGnGyutNzmfFc32/wAT29ohyqN09hXpnh+3FvYJxjAry7Q421PxTPcnkK20V68gFvYemBSybD+xw8V5H7znT9lSpYWPRI4P4g6gUtXRTyeB9ab4fgGm+Fd+MM4xWF4rnOoa9b2inOX3EewrqNTUW2lW9sOMIM/jXh8QVfaVYUe7ODiOv9QyLlW8tTJaRba1e4dS\n2OcDua5ufxs8U2xNPcj/AHTXTxygJtIBHoaQpak5MEef92v0LJcdleFwsYVIXdj8CpVKUW3VhzfOxV0jVX1SMs9sYgBnNbOixB795D91Bk/hVB5lVNqKFHoBitOEjT9BuLhuGZcD8a+R4wzLD4nlpYaNrnu8NYL65mcOWNlfY5SZjqvjQnqsZ/ma9c06MW9gOOgry3wR\nam71Ca7YZ3yEg+1eqXbi3sD24ruyyiqOHS8j9tzyX7yGHj9lJHmHj27M86WqnJkcLj+dbQQaf4bghXhnGa5a4J1XxjHGOVjOT9a6nXnCyRwj7qAD8q+Zzqp7bFwpdNzyuM8T9SyaNCO7X5mTdXKadZecYzIT0ArnD43l87YunP1/umurEqsm11DD0IzTNlqDkQR5/wB2\nv0zLMxyrD4eMJwu0j8Lo1KMU/a0+Z+tiPT706haGZ4fK+tFSSS7gI0AGeAAKK+YznO8K8T+6joTGhKo3KCsiu2enrW8rrYaBPOeCV2isl4v3yJ3Jp3jS6+yaHDaIcO46e54r5LMqE1i44d73PueAcD9ax6lbRGf4ItTd6hLdsM73JBPpXql24trA9sCuT8C6aLexjO3G\nAK1/FV6LaxfnHFfbYeCpUT9OzKf1nH8kdloea3RbVvGEcQ5WM5P1rrddkWNEt16IoXiuf8EW5uL661KQcAlgT7dK0bl2u712/hBr43EQnj8xVKGtj5zxEzCOHoQwkXsv+HKag4p3NPe4soTtkuY1PpmnxSWtwcQzo59Aa+sjw7jIwvys/GG3a9n9xXALSKvqa1tbuBpv\nhhucGT+VU4It19Gg9apeOrgyz2umoepCkfqa+NxVCUsfGg+j1P0rw6wKr4t1WtEXfh9p58oTOPmc7j+Nd5rVwLewbtgVm+E7EW1inHQVQ8caiLexk5xgGvuoL2VE++xEnjMxsu5xmhxHVfF8kx5SM4z+protdnEtyVHTNUfBNt9l0me/kGHfJz7mnYNxK8rHj1NfFRo1\nMxzFxpq9tD5LxIzKMZxwkXtp9xAAaXmnNd2KHD3UQPpmpYzBcKTDKr49DX1r4exkIXadj8kba1aZDAnmXKrU/jW6+yaJFaocO46e54qbS4PN1IKB0rD8TTHU/FMNqnKI2SPYcCvjfYurmCpv7J+seG+CUqksTJaL9DrPAmnCCyjOOwrZ8UXgt7B+cYFWdBthbWC8YwK4\n34gakUt3jQ/M3yj6mvupNUqJ9hTTxuY38zJ8EW5udUudQccBiRn26Vo6nN512cHODU2gW40rwvvIw0gx+FVUQEGWVgoPJJNfF4TC1cyx8nTV7HwviLmiqYpYeOyIQDSnNKbzT1ODdxZ+tTKIpYy0Tq49Qa+rqZBi6cOaSdj8xba3QmnxeddgdcUVf0KMG5kkI+VOT+FF\nfneOqSVZpdD9B4cyl4jB+0tuyLTojeairfwrWD4hmOreLIrZMmOM5x9OBXU2u3TtHnum4bbgH3Ncx4QtW1HWZ71hnc+AfYV7uAc8dmE8RM+w4Dy9YHL54uW7X5np2h2wtrBeMYFcP8QNRIiaFG+ZztH1NehTMLWw9OK8h1WRtY8Vw26/MqNuP9K+qx1VUaDfke3k0Pa4\nqVee0bs6LR7caX4VHGGkH6VViUPbuhYqXGMitPW2WC2jtV6IoGPesZWIFfLcP4t4fESxLWrPyDjTGvGZlJ32MS68FwXUxka7fk9MmtLS9DttH+ZZGkYdMmrfmGmkl2CjvX3GL4yxDouJ8y8RiKsfZyloa2jRh7mS6cfIgzz7Vy8ZbWfGLyH5kjP6muo1CZdJ8NSPnDSD\nA+lZfgDT2kY3Ug+aRt1fEZPGWKxc8TPufufCGCWW5RKvLeX6npFlGLWwHbAry7xxeG8vorNDnzHwR7V6bqs4tbA84wK8n0+Jta8YF+qRHH419JmldUMO35HqZJD354qe0U2dRMg0/wAP29svBZcn8azpIEubMwFyme4q/r0wecIvReAPYVlq5ArwOGsa8FN17as/EuKM\nXLFZjOpfZmDL4Ht5Zd7Xj/ma2tP0230iEiN2diOpqbzDSRgzzKnqea+uzDjHEToOJ4zrYjEWpyldGvpmLWxub5+MKcZrmPDEDan4gnvGGRv2r9BW34suxpvh5LdOHkGcfyq14B0vybRGYckZNfIZDSdarPES6s/euH8IsryS/WR2zEW1h6YFeRa9K2q+J4LVeVVtxr03\nxJeC1sX5xgV5x4QtzqGvXF/IMorHBPoK9rOsSqOHkzuydKjRq4uXRM6LWSIILe0XoigH696yr2yTULQQmUp7irOrTebek571VDmvN4ZzB5enUS1Z+DZ7ipYjMJ1k+pgf8INbeb5hu3PPqa3ra1h0218mEliepNKZDUlpEbm6VewNfRZtxhiKuHcG9ziU8Ri5xpzlc0Hk\nGmeG5524eQYFFZXjq62w2+mRH5mwpA9+tFfE5dgvb0nVl1Z/SHDOVUcLltOFTRk/jS8Nno0NnGf3kg6e5rY8C6WLayjJHaiivW4bpxVHm6s45xWHyalCnszX8U362ti/OMCuC8FW32rULnU5RlQSwJ9B0ooquJKko0Gl1HSfsMnq1Ybs0L+Zru8YjkA1GIDjpRRXVkmW\n0amHUmfzpjK86laUpbtsDCR2p1lCZL1FxRRXPxBhYYeheBtlq9pioRl3RU8c3JluLbTIz1IUgfrXbeEtPFrYpxjAooq+HqcY4eLXU/obMF7HLqNKG1ih431Rbaxk+bGAawPBNobXTZtQlGHfJBPqaKK4+JKkuRQ6NmWLm8NkU5093/kLMzXVwz9s8UeQfSiivXyrLKE8\nPGTP50r1pSqOT3YjQkCrWjwebe49DRRXk8RYeGHpe4elkcVVx1OMtrmH4lnOreJ4bNOY42yR7DpXp2g2gtbBeMYFFFelklKMMNG3Y/fs5/d4ejSjtZHG+P8AVClu0SH5m+UfU0vh61XSPDXmNw8gxn2oorxuIpuU4QezZyZ5VlhcgvS63KW1ppC570/yD6UUV9Hl+VUH\nQi2fzxUqycm2NaIgdK0tBiG95X+6mSfwoor53iOhGglGHU97hmmq2Y04y7nLuza34wZuWSI/qaKKK9vL6MY4eKR/QGY1pUZxpw2UUf/Z'/>\n<path d='M33.6367 25.6797H274.688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 25.6797V31.3516' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M81.8477 25.6797V31.3516' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M130.059 25.6797V31.3516' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M178.27 25.6797V31.3516' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M226.48 25.6797V31.3516' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 25.6797V31.3516' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M57.7422 25.6797V28.5156' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M105.953 25.6797V28.5156' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M154.164 25.6797V28.5156' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M202.371 25.6797V28.5156' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M250.586 25.6797V28.5156' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 213.102H274.688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 213.102V207.43' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M81.8477 213.102V207.43' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M130.059 213.102V207.43' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M178.27 213.102V207.43' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M226.48 213.102V207.43' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 213.102V207.43' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M57.7422 213.102V210.266' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M105.953 213.102V210.266' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M154.164 213.102V210.266' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M202.371 213.102V210.266' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M250.586 213.102V210.266' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 25.6797V213.102' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 25.6797H39.3047' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 119.391H39.3047' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 213.102H39.3047' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 53.8906H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 70.3906H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 82.1016H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 91.1797H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 98.6016H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 104.875H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 110.309H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 115.102H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 147.602H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 164.102H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 175.809H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 184.891H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 192.313H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 198.586H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 204.02H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 208.813H36.4688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 25.6797V213.102' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 25.6797H269.02' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 119.391H269.02' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 213.102H269.02' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 53.8906H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 70.3906H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 82.1016H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 91.1797H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 98.6016H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 104.875H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 110.309H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 115.102H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 147.602H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 164.102H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 175.809H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 184.891H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 192.313H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 198.586H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 204.02H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 208.813H271.855' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<image x='0' y='0' width='32761' height='1' transform='matrix(.007358 0 0 9.08142 33.6357 241.31058)' xlink:href='data:image/jpeg;base64,\n/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy\nMjIyMjIyMjL/wAARCAABf/kDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVW\nV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC\nAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq\n8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5/ooooAKKKKAClFFFABRRRTGFFFFABS0UUAFFFFAwooopgFFFFAwpaKKACiiigAooopgLRRRQMKKKKAClFFFABRRRTAKKKKACiiigApRRRQMKKKKACiiigApaKKBhRRRTAKKKKACiiigYUtFFABRRRTAKKKKAFooooGFFFFAB\nRRRTAKKKKBi0UUUAFFFFABSiiigAooopjCiiigApaKKACiiigYUUUUwCiiigYUtFFABRRRQAUUUUwFooooAKKKKACiiigYUUUUwFooooAKKKKAClFFFAwooopgFFFFABS0UUDCiiigAooooAKKKKBhS0UUAFFFFMAooooAWiiigYUUUUAFFFFMAooooGLRRRQAUUUUAF\nKKKKYwooooAKKKKACiiigApRRRQMKKKKYBRRRQAUtFFABRRRQAUUUUwFooooGFFFFABRRRQMKKKKYC0UUUAFFFFAwpRRRQAUUUUwCiiigAooooGFKKKKACiiimAUUUUDAUtFFABRRRQAUUUUAFFFFAwFLRRQAUUUUwCiiigYtFFFABRRRQAUooopjCiiigAooooAKKKK\nAClFFFMAooooAKKKKBgKWiigAooooAKKKKYBRRRQMBS0UUAFFFFAwooooAWiiimAUUUUDCiiigAooopgFFFFAgooooAKUUUUwCiiigAooopgFFFFABRRRQAUUUUAFFFFABRRRTAKKKKACiiigAooopgFFFFABSiiimAUUUUAFFFFAgooopgFFFFABRRRQAUUUUwCiiig\nAooooAKKKKYBRRRQAUUUUAFKKKKYBRRRQAUUUUwCiiigAooooAKKKKACiiigQUUUUwCiiigAooooAKKKKYAKWiigAooopgFFFFABRRRQAUUUUwCiiigAooooAKKKKYBRRRQAUUUUAFFFFMAooooEApaKKACiiimAUUUUAFFFFMAooooAKKKKACiiigAooooAKKKKYBRR\nRQAUUUUAFFFFMAFLRRQAUUUUwCiiigAooooAKKKKYBRRRQAUUUUAFFFFMAooooAKKKKACiiimAUUUUAApaKKACiiimAUUUUAFFFFMAooooAKKKKACiiigAooooAKKKKYgooooAKKKKAFooopgFFFFABRRRTAKKKKACiiigAooopgFFFFABRRRQAUUUUwCiiigAooooAK\nKKKYC0UUUAFFFFAgooopgFFFFABRRRTAKKKKACiiigAooooAKKKKACiiimAUUUUAFFFFAC0UUUwCiiigAooopgFFFFABRRRQIDSUUUwCiiigAooopiCiiigQUUUUwCiiigAooopiEooooAKKKKACiiimIKKKKBBRRRQAUUUUwCiiimAUUUUAJRRRQIKKKKYBRRRQIKKK\nKYBRRRQIKKKKYBSUUUAFFFFMQUUUUAFFFFAgooopgFFFFMQUUUUAFFFFABSUUUxBRRRQAUUUUCCiiimAUUUUwCiiigAooooEBpKKKYBRRRQIKKKKYBRRRQAUUUUxBRRRQAUUUUxBRRRQAGkoooEFFFFMAooooAKKKKBBRRRTAKKKKYBRRRQISiiigQUUUUwCiiigAooo\npgFFFFABRRRTEFJRRQAUUUUwCiiigQUUUUCCiiimAUUUUwCiiigQUUUUAFJRRTAKKKKBBRRRQIKKKKYBRRRTAKKKKBBRRRQAGkoopgFFFFAgooopgFFFFABRRRTEFFFFABRRRTAKKKKBAaSiigAooopiCiiigAooooEFFFFMAooopgFFFFAhKKKKACiiimIKKKKACiii\nmAUUUUCCiiimAUlFFAgooopgFFFFABRRRQAUUUUxBRRRTAKKKKBBRRRQAUlFFMQUUUUAFFFFABRRRTEFFFFMAooooAKKKKBAaSiimIKKKKACiiimAUUUUCCiiigApaKKACiiigAooooEApaKKACiiigAooopALRRRQACloooAKKKKBBRRRSAWiiigAooooEFLRRQAUUU\nUgFooooAKKKKBBS0UUAFFFFIAooooEApaKKACiiigAooopALRRRQIBS0UUAFFFFABRRRQIWiiigAooooAKWiikIKKKKAFooooAKKKKACloopCCiiigAooooABS0UUAFLRRSAKKKKBBRRRQACloooAKKKKBBRRRSAWiiigAooooEFLRRQAUUUUgFooooAKKKKBBS0UUAF\nFFFIAooooEApaKKACloooAKKKKQBRRRQIBS0UUAFFFFABRRRSELRRRQAUUUUAFLRRQIKKKKAFooooAKKKKACloopAFFFFAgooooABS0UUAFLRRSEFFFFABRRRQACloooAKKKKQgooooAWiiigAFLRRQIKKKKACiiikAtFFFABRRRQIKWiigAooopAFFFFAgFLRRQAUtF\nFABRRRSEFFFFAAKWiigAooooAKKKKQhaKKKAAUtFFABRRRQAUUUUgFooooAKKKKBBS0UUAFFFFAC0UUUCCiiigApaKKQgooooAKKKKAAUtFFABRRRSEFFFFAC0UUUAApaKKBBRRRSAKKKKAFooooAKKKKBBS0UUAFFFFIBaKKKBBRRRQAUtFFABRRRSEFFFFAAKWiigA\nooooAKKKKQC0UUUAApaKKBBRRRQAUUUUgFooooEFFFFABS0UUAFFFFIBaKKKBBRRRQAUtFFAgooooAKKKKAAUtFFABS0UUgCiiigQUUUUAApaKKBBRRRSAKKKKAFooooEFFFFABS0UUgCiiigBaKKKBBRRRQAUtFFABRRRSAKKKKAAUtFFABS0UUCCiiikAUUUUAApaK\nKBBRRRQAUUUUgFooooEApaKKACiiigAooopALRRRQIKKKKACloooAKKKKQgooooABS0UUAFLRRQAUUUUCCiiigAFLRRQAUUUUhBRRRQAtFFFAgFLRRQAUUUUgCiiigBaKKKACiiigApaKKQgooooAKKKKAAUtFFAgpaKKACiiikAUUUUAApaKKBBRRRQAUUUUgFooooE\nApaKKACiiigAooopALRRRQIKKKKACloooAKKKKQhaKKKACiiigApaKKBBRRRSAKKKKAAUtFFABRRRQIKKKKAFooooABS0UUAFFFFIAooooELRRRQAUUUUAFLRRSEFFFFAC0UUUAFFFFAgpaKKACiiigAooopAApaKKBBS0UUAFFFFABRRRSEApaKKACiiigAooooAWii\nikIKKKKACloooAKKKKBC0UUUgCiiigApaKKBBRRRQAUUUUgFFFFFABS0UUAFFFFAgooopAKKKKKACiiigQUUUUALRRRQAUUUUAFLRRQIKKKKQC0UUUAFFFFAgpaKKACiiigAooopAKKKKKBBS0UUAFFFFABRRRSEKKKKKACiiigAooooELRRRSAUUUUUAFFFFABRRRQI\nWiiikAUUUUAFLRRQAUUUUAFFFFIBRRRRQIKWiigAooooAKKKKQhRRRRQAUUUUCCiiigBaKKKQCiiiigAooooEFFFFAC0UUUAFFFFAgpaKKACiiikAtFFFABRRRQIKWiigAooooAKKKKQhRRRRQAUUUUAFFFFAhaKKKQCiiiigAooooAKKKKAFooopAFFFFAgpaKKACii\nigBaKKKQgooooAKWiigAooooAKKKKQhRRRRQAUUUUCCiiigBaKKKQCiiiigAooooAKKKKBC0UUUgCiiigQUtFFABRRRQAtFFFAgooooAKWiigAooopAFFFFAhRRRRQAUtFFABRRRQAUUUUgFFFFFABRRRQIKKKKAFooopAFFFFAgpaKKACiiigBaKKKQgooooAKWiigA\nooooAKKKKQhRRRRQAUtFFABRRRQIKKKKQCiiiigQUUUUAFFFFABRRRQMKKKKACkoopAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACkoopAFFFFABRRRQMKKKKQBRRRQAUUUUAFFFFIAooooAKKKKACiiikAUUUUAIaKKKACiiikAUU\nUUAFFFFIAooooAKKKKACiiigAooooGFFFFIAooooAKKKKACiiikAhooooAKKKKQBRRRQAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFFFFABRRRSAKKKKBiGiiigAooopAFFFFABRRRSAKKKKACiiigAooooAKKKKACiiikAUUUUAFFFFABRRRSAQ0UUUAFFFFIAooooA\nKKKKACiiikAUUUUDCiiigAooopAFFFFABRRRQAUUUUgEooooAKKKKACiiikAUUUUAFFFFIAooooAKKKKACiiigAooooAKKKKQBRRRQMKDRRQAlFFFIAooooAKKKKQBRRRQAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFFFFABQaKKQCUUUUAFFFFABRRRSAKKKKACiii\nkAUUUUAFFFFABRRRQAUUUUAFFFFIAooooAKDRRQAlFFFIAooooAKKKKQBRRRQAUUUUAFFFFIAooooGFFFFABRRRSAKKKKACkoooAKKKKQBRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUUUUAFFFFABRRRQAUUUUgCkoooGFFFFIAooooAKKKKACiiikAUUUUAFFFFABRR\nRSAKKKKACiiigAooopAFFFFABSUUUAFFFFIAooooAKKKKQBRRRQMKKKKACiiikAUUUUAFFFFABRRRQAUUUUAFFFFIApKKKACiiikAUUUUAFFFFABRRRSAKKKKACiiigAooopAFFFFAwooooAKKKKQBRRRQAUlFFABRRRSAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACi\niigAooooAKKKKAEooopAFFFFABRRRSAKKKKBhRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUUUUAFFFFIBKKKKACiiigAooopAFFFFABRRRSAKKKKACiiigAooopDCiiigAooooAKKKKACiiigBKKKKQBRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUUUUAFFFFIAooooAK\nKKKACiiikMSiiigAooooAKKKKQBRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUUUUAFBoooASiiigAooopAFFFFABRRRSAKKKKACiiigAooopDCiiigAooooAKKKKQBRRRQAUGiigBKKKKQBRRRQAUUUUAFFFFIAooooAKKKKQBRRRQAUUUUAFFFFIAooooAKKKKACg0UU\nAJRRRQAUUUUgCiiigAooopAFFFFABRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUGiigBKKKKQBRRRQMKKKKACiiikAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFFFFABQaKKAEooooAKKKKQBRRRQAUUUUgCiiigAooooAKKKKQwooooAKKKKACiiikAUlFFABRRRQAUU\nUUgCiiigAooooAKKKKQBRRRQAUUUUgCiiigAooooAKKKKQBRRRQAUlFFAwooooAKKKKACiiikAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFFFFABRRRSAKSiigAooooAKKKKQBRRRQAUUUUDCiiikAUUUUAFFFFIAooooAKKKKACiiikAUUUUAFJRRQAUUUUAFFFFABR\nRRSAKKKKACiiikAUUUUAFFFFABRRRSAKKKKBhRRRQAlFFFIAooooAKKKKACiiikAUUUUAFFFFABRRRSAKKKKACiiikAUUUUAFFFFABRRRQAUUUUDCiiikAUooooAKKKKBhRRRQAUUUUAFFFFAwooooAWiiigAooooAKKKKBhRRRQAtFFFABRRRQMKKKKACiiigBaKKKQ\nwooooAKKKKACiiigYUUUUAFLRRQAUUUUhhRRRQAUUUUDCloooAKKKKACiiigYUUUUAFLRRQAUUUUDCiiikAUUUUAFFFFABSiiigYUUUUAFFFFABRRRQMKUUUUAFFFFIAooooGFFFFABSiiigAooooGFFFFABRRRQAUUUUDCiiikAtFFFAwooooAKKKKACiiigYtFFFAB\nRRRQAUUUUDCiiikAtFFFABRRRQAUUUUDCiiigAooooAKWiigYUUUUAFFFFIAooooGFLRRQAUUUUAFFFFAwooooAKWiigAooooGFFFFIAooooGFFFFABSiiigAooooGFFFFABRRRQAUooooGFFFFABRRRQAUUUUAFKKKKBhRRRQAUUUUAFFFFAwooopAFFFFAC0UUUDCi\niigAooooAKKKKBi0UUUAFFFFABRRRSGFFFFAC0UUUDCiiigAooooAKKKKBhRRRQAUtFFABRRRQMKKKKQBRRRQAUtFFABRRRQMKKKKACiiigApaKKBhRRRQAUUUUgCiiigYUUUUAFKKKKACiiigYUUUUAFFFFABSiiigYUUUUgCiiigYUUUUAFFFFABRRRQMWiiigAooo\noAKKKKQwooooAWiiigAooooAKKKKBhRRRQAtFFFABRRRQMKKKKQBRRRQAUUUUDCloooAKKKKACiiigYUUUUAFLRRQAUUUUhhRRRQAUUUUDCloooAKKKKACiiigYUUUUAFFFFABSiiigYUUUUAFFFFABRRRQAUooooGFFFFABRRRQAUUUUhhSiiigAooooAKKKKBhRRRQ\nAUUUUAFFFFAxaKKKACiiikAUUUUDCiiigBaKKKBhRRRQAUUUUAFFFFAxaKKKACiiikAUUUUDCiiigAooooAKWiigAooooGFFFFABRRRQAUtFFIYUUUUAFFFFABRRRQMKWiigAooooAKKKKBhRRRQAUUUUhhSiiigAooooAKKKKBhRRRQAUooooAKKKKBhRRRQAUUUUAF\nKKKKQwooooAKKKKACiiigAooooGFFFFAC0UUUAFFFFAwooopAFFFFAC0UUUDCiiigAooooAKKKKBi0UUUAFFFFAwooopAFFFFABRRRQMKWiigAooooAKKKKBhRRRQAUtFFABRRRQMKKKKACiiigApaKKACiiigYUUUUAFFFFABRRRSGFKKKKACiiigAooooGFFFFABSi\niigAooooGFFFFIAooooGFKKKKACiiigAooooGFFFFABRRRQAUUUUDFooopAFFFFABRRRQMKKKKAFooooAKKKKACiiigYUUUUAFFFFIApaKKBhRRRQAUUUUAFFFFAwpaKKACiiigAooooGFFFFIApaKKBhRRRQAUUUUAFFFFAwooooAKUUUUAFFFFAwooopAFFFFABSii\nigYUUUUAFFFFABRRRQAUooooGFFFFABRRRSAKKKKBhRRRQAUUUUALRRRQMKKKKACiiigAooooGLRRRSAKKKKBhRRRQAUUUUALRRRQMKKKKACiiigAooooGFFFFABS0UUAFFFFAwooooAKKKKACloooAKKKKBhRRRQAUUUUgCloooGFFFFABRRRQAUUUUDCiiigApRRRQ\nAUUUUDCiiikAUUUUDClFFFABRRRQAUUUUDCiiigApRRRQAUUUUDCiiikAUUUUAFFFFAwooooAWiiigAooooAKKKKBhRRRQAtFFFIAooooGFFFFABRRRQAtFFFAwooooAKKKKACiiigYUUUUgCloooGFFFFABRRRQAUUUUDCloooAKKKKACiiikMKKKKACkoopgFFFFAB\nRRRQMSiiigAooopgFIaKKACiiigBKKKKACiiimMKQ0UUAFFFFABRRRQMKSiigApDRRTAKKKKACiiigYUlFFABRRRTAKKKKBiUUUUAFFFFABSGiimAUUUUDEooooAKKKKACkNFFAwooooAKKKKBhSUUUwCkNFFABRRRQAUUUUDCkoopgFFFFABRRRQAlFFFABSUUUwCii\nigYUUUUAJRRRQAUUUUxhSGiigAooooAKKKKBhSUUUwCkNFFABRRRQAUUUUDCkoooAKKKKYBRRRQMSiiigApKKKACiiimAUUUUDEooooAKKKKACkNFFMYUUUUAFFFFAwpKKKACkNFFABRRRQAUUUUAFJRRTAKKKKBhRRRQAlFFFABSUUUxhRRRQAUUUUAJRRRQAUUUUxh\nSGiigAooooASiiigYUUUUwCkNFFABRRRQAUUUUDCkoopgFFFFABRRRQMSiiigANJRRQAUUUUxhRRRQAlFFFABRRRQAUhoopjCiiigBKKKKACiiigApDRRTAKKKKACiiigYGkoooAKQ0UUDCiiigAooooADSUUUxhRRRQAUUUUAJRRRQAUUUUxhSGiigAooooASiiigYU\nUUUwCkNFFABRRRQAUUUUDA0lFFMApDRRQAUUUUDCiiigANJRRTAKKKKBhRRRQAlFFFABRRRQAUhoopgFFFFACUUUUDCiiigApDRRTGFFFFABRRRQAGkoooAKQ0UUxhRRRQAUUUUABpKKKBhRRRQAUUUUAJRRRQAGkoopjCiiigAooooASiiigYUUUUwCkNFFABRRRQMK\nKKKAA0lFFMApDRRQAUUUUDCiiigANJRRTAKKKKACiiigBKKKKAA0lFFMYUUUUAFFFFACUUUUDCiiigApDRRTGFFFFACUUUUAFFFFABSGiimAUUUUDCiiigANJRRQMKKKKYBRRRQAlFFFAAaSiigYUUUUAFFFFACUUUUDCiiimAUlFFABRRRQMSiiigAooopgFJRRQAUU\nUUAFFFFAAaSiimMKKKKACiiigBKKKKBgaSiimAUUUUAFFFFACUUUUDCiiimAUlFFABRRRQMSiiigAooooAKSiimAUUUUDCiiigANJRRQMKSiimAUUUUAFFFFAwNJRRQAUUUUwCiiigBKKKKBhRRRQAUlFFABRRRQAlFFFABRRRTAKSiigYUUUUAFFFFAAaSiimMKSiig\nAooooAKKKKBgaSiigAooopgFFFFACUUUUDA0lFFABRRRQAUUUUxiUUUUAFFFFABSUUUAFFFFMYUUUUABpKKKACkoooGFFFFMAooooGBpKKKACiiigAooopgJRRRQAGkoooAKKKKBhRRRTASiiigAooooGFJRRQAUUUUAFFFFAAaSiigYUlFFMAooooAKKKKBgaSiigAo\noopgFFFFACUUUUDA0lFFABRRRTAKKKKBiUUUUAFFFFABSUUUDCiiimAlFFFABRRRQAUlFFAwooopgFFFFAAaSiigAooooAKKKKYxKKKKAA0lFFABRRRQMKKKKYCUUUUAFFFFAwpKKKACiiimAlFFFABRRRQMKSiigAooooAKKKKBgaSiigApKKKYBRRRQAUUUUDA0lFF\nABRRRTAKKKKBiUUUUAFFFFABSUUUxhRRRQAlFFFABRRRQAUlFFABRRRTGFFFFAAaSiigApKKKBhRRRTAKKKKAA0lFFABRRRQMKKKKYCUUUUAFFFFAwpKKKACiiimAlFFFABRRRQMKSiigAooopgFFFFAwNJRRQAUlFFABRRRQMKKKKAA0lFFABRRRTAKKKKBiUUUUABp\nKKKACiiimAUUUUAJRRRQAUUUUDCkoopgFFFFABRRRQMDSUUUAFJRRQMKKKKYBRRRQAGkoooAKKKKACiiimMSiiigANJRRQMKKKKACiiimAlFFFABRRRQAUtFFABRRRQAtFFFAgooooAKWiigAooopiFooooAKKKKBBS0UUAFFFFAC0UUUCAUtFFABRRRQAUUUUxC0UUU\nAApaKKACiiigAooooAWiiigQCloooAKKKKBBRRRQAtFFFAAKWiigQUtFFABRRRQAUUUUCAUtFFMApaKKACiiigQUUUUAApaKKBBS0UUAFFFFABRRRQIBS0UUwCloooAKKKKBC0UUUAFFFFABS0UUAFFFFAC0UUUCCiiimAUtFFAgooooAWiiigAooooEFLRRQAUUUUAL\nRRRQIBS0UUwCiiigAooooELRRRQACloooEFFFFABRRRQAtFFFAgFLRRTAKKKKACiiigQtFFFAAKWiigApaKKACiiigAooooEApaKKYBS0UUCCiiigAooooABS0UUCCloooAKKKKAFooooEFFFFABS0UUwCiiigQtFFFABRRRQIKWiigAooooAWiiigQUUUUAFLRRTAKK\nKKBC0UUUAApaKKACiiigAooooAWiiigQCloooAKKKKBBRRRQAtFFFAAKWiigQUUUUAFFFFAC0UUUCFFFFFMApaKKACiiigQUUUUAKKKKKBBS0UUAFFFFABRRRQIUUUUUwCloooAKKKKBBRRRQAoooooAKWiigAooooAWiiigQUUUUwCloooEFFFFAC0UUUAFFFFAgpaK\nKACiiigBaKKKBBRRRTAKWiigAooooELRRRQAoooooEFFFFABRRRQAtFFFMQoooooAKKKKACiiigQtFFFACiiiigAooooAKKKKAFooopiFFFFFABS0UUCCiiigAooooAUUUUUCCloooAKKKKACiiimIUUUUUAFLRRQAUUUUCCiiigBRRRRQIKWiigAooooAWiiimIKKKK\nACloooAKKKKBC0UUUAFFFFABS0UUAFFFFAC0UUUCCiiigApaKKBBRRRQAtFFFACiiiigQUUUUAFFFFAC0UUUxCiiiigAooooAKKKKBC0UUUAKKKKKBBRRRQAUUUUALRRRTEKKKKKACloooAKKKKBBRRRQAoooooAKWiigAooooEFFFFMBRRRRQAUtFFAgooooAKKKKAF\nFFFFAgpaKKACiiigBaKKKYgooooAKWiigAooooELRRRQAUUUUCCloooAKKKKAFooopiCiiigApaKKACiiigQtFFFACiiiigAooooAKKKKBC0UUUwFFFFFABRRRQIKKKKAFooooAUUUUUCCloooAKKKKACiiimIUUUUUAFLRRQAUUUUCCiiigBRRRRQIKWiigAooooAKK\nKKYhRRRRQAUtFFABRRRQIWiiigAooooAKWiigAooooELRRRQAUUUUAFLRRQIKKKKAFooooAKKKKBBS0UUwCiiigBaKKKBCiiiigAooooAKKKKBC0UUUAKKKKKBBRRRTAKKKKAFooooEKKKKKACiiigAooooELRRRQAoooooAKWiimAUUUUCCiiigBRRRRQAUtFFAgooo\noAKKKKAFFFFFAgpaKKACiiimAUUUUCFFFFFABS0UUAFFFFAhaKKKACiiigQUtFFABRRRTAWiiigQUUUUAFLRRQAUUUUCFooooAKKKKACloooAKKKKYhaKKKAFFFFFABRRRQIKKKKAFooooAUUUUUCCiiigAooopgLRRRQIUUUUUAFFFFABRRRQIWiiigBRRRRQIKWiig\nAooopgFFFFAhRRRRQAUtFFABRRRQIKKKKAFFFFFABS0UUAFFFFAgooooAUUUUUAFLRRQIKKKKAFooooAKKKKBBS0UUwCiiigBaKKKBBRRRQAUtFFABRRRQIWiiigAooooEFLRRTAKKKKAFooooEKKKKKACiiigAooooELRRRQAoooooAKKKKYBRRRQIWiiigBRRRRQAU\nUUUCCiiigBaKKKAFFFFFAgpaKKACiiimAUUUUCFFFFFABRRRQB//2Q=='/>\n<path d='M33.6367 250.391H274.688' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 250.391V241.309' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M81.8477 250.391V241.309' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M130.059 250.391V241.309' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M178.27 250.391V241.309' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M226.48 250.391V241.309' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M274.688 250.391V241.309' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M48.1484 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M56.6367 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M62.6602 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M67.332 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M71.1523 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M74.3789 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M77.1758 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M79.6406 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M96.3594 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M104.848 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M110.871 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M115.547 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M119.363 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M122.59 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M125.387 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M127.852 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M144.57 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M153.059 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M159.082 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M163.754 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M167.574 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M170.801 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M173.598 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M176.063 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M192.781 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M201.27 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M207.293 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M211.965 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M215.781 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M219.012 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M221.809 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M224.273 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M240.992 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M249.48 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M255.504 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M260.176 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M263.992 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M267.223 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M270.016 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M272.484 250.391V241.309' stroke='#000' fill='none' stroke-width='.25' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M33.6367 241.309V250.391H274.688V241.309H33.6367Z' stroke='#000' fill='none' stroke-width='.5' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/>\n<path d='M36.0592 15.54723C36.0592 16.53941 35.99951 17.50754 35.5692 18.41629C35.0792 19.40848 34.21826 19.67129 33.63263 19.67129C32.9392 19.67129 32.09045 19.32473 31.64826 18.33254C31.313572 17.57942 31.193885 16.83817 31.193885 15.54723C31.193885 14.38754 31.277635 13.51504 31.70795 12.66629C32.1742 11.757853 32.9992 11.470978 33.62076 11.470978C34.66076 11.470978 35.25826 12.09254 35.60513 12.78598C36.03545 13.68223 36.0592 14.85379 36.0592 15.54723ZM33.62076 11.71004C33.23826 11.71004 32.46107 11.92504 32.23388 13.22817C32.10263 13.94535 32.10263 14.85379 32.10263 15.69067C32.10263 16.67098 32.10263 17.55535 32.29388 18.26066C32.49701 19.0616 33.1067 19.43223 33.62076 19.43223C34.07482 19.43223 34.76826 19.15723 34.99545 18.12942C35.15076 17.44785 35.15076 16.50348 35.15076 15.69067C35.15076 14.88973 35.15076 13.98129 35.0192 13.25192C34.79232 11.937228 34.0392 11.71004 33.62076 11.71004Z'/>\n<path d='M81.2429 13.73035H80.9801C80.9441 13.52692 80.8485 12.86942 80.7288 12.678165C80.6454 12.570665 79.9638 12.570665 79.6054 12.570665H77.3938C77.7166 12.84567 78.4457 13.61067 78.7566 13.89754C80.5735 15.57098 81.2429 16.19285 81.2429 17.37629C81.2429 18.75098 80.1551 19.67129 78.7685 19.67129S76.5688 18.48785 76.5688 17.45973C76.5688 16.85035 77.0951 16.85035 77.1307 16.85035C77.3819 16.85035 77.6926 17.02942 77.6926 17.41192C77.6926 17.74692 77.4654 17.97379 77.1307 17.97379C77.0232 17.97379 76.9994 17.97379 76.9635 17.96192C77.1907 18.77473 77.836 19.32473 78.6132 19.32473C79.6291 19.32473 80.2507 18.47598 80.2507 17.37629C80.2507 16.36004 79.6651 15.47535 78.9838 14.71035L76.5688 12.00879V11.721915H80.9322L81.2429 13.73035Z'/>\n<path d='M87.1894 15.54723C87.1894 16.53941 87.1297 17.50754 86.6994 18.41629C86.2094 19.40848 85.3485 19.67129 84.7629 19.67129C84.0694 19.67129 83.2207 19.32473 82.7785 18.33254C82.4438 17.57942 82.3241 16.83817 82.3241 15.54723C82.3241 14.38754 82.4079 13.51504 82.8382 12.66629C83.3044 11.757853 84.1294 11.470978 84.751 11.470978C85.791 11.470978 86.3885 12.09254 86.7354 12.78598C87.1657 13.68223 87.1894 14.85379 87.1894 15.54723ZM84.751 11.71004C84.3685 11.71004 83.5913 11.92504 83.3641 13.22817C83.2329 13.94535 83.2329 14.85379 83.2329 15.69067C83.2329 16.67098 83.2329 17.55535 83.4241 18.26066C83.6272 19.0616 84.2369 19.43223 84.751 19.43223C85.2051 19.43223 85.8985 19.15723 86.1257 18.12942C86.281 17.44785 86.281 16.50348 86.281 15.69067C86.281 14.88973 86.281 13.98129 86.1494 13.25192C85.9226 11.937228 85.1694 11.71004 84.751 11.71004Z'/>\n<path d='M128.5115 19.5041C128.5115 19.73129 128.5115 19.79098 128.3443 19.79098C128.2486 19.79098 128.2127 19.79098 128.1171 19.64754L124.519 14.06504V13.71817H127.6627V12.630353C127.6627 12.188165 127.639 12.068478 126.7661 12.068478H126.5271V11.721915C126.8021 11.745978 127.7465 11.745978 128.0812 11.745978C128.4158 11.745978 129.3724 11.745978 129.6471 11.721915V12.068478H129.408C128.5474 12.068478 128.5115 12.188165 128.5115 12.630353V13.71817H129.719V14.06504H128.5115V19.5041ZM127.7227 18.5716V14.06504H124.8177L127.7227 18.5716Z'/>\n<path d='M135.4019 15.54723C135.4019 16.53941 135.3429 17.50754 134.9119 18.41629C134.4219 19.40848 133.5609 19.67129 132.9759 19.67129C132.2819 19.67129 131.4339 19.32473 130.9909 18.33254C130.6567 17.57942 130.537 16.83817 130.537 15.54723C130.537 14.38754 130.6208 13.51504 131.0509 12.66629C131.5169 11.757853 132.3419 11.470978 132.9639 11.470978C134.0039 11.470978 134.6009 12.09254 134.9479 12.78598C135.3789 13.68223 135.4019 14.85379 135.4019 15.54723ZM132.9639 11.71004C132.5809 11.71004 131.8039 11.92504 131.5769 13.22817C131.4459 13.94535 131.4459 14.85379 131.4459 15.69067C131.4459 16.67098 131.4459 17.55535 131.6369 18.26066C131.8399 19.0616 132.4499 19.43223 132.9639 19.43223C133.4179 19.43223 134.1109 19.15723 134.3389 18.12942C134.4939 17.44785 134.4939 16.50348 134.4939 15.69067C134.4939 14.88973 134.4939 13.98129 134.3619 13.25192C134.1359 11.937228 133.3819 11.71004 132.9639 11.71004Z'/>\n<path d='M173.8679 15.88192C173.8679 18.90629 175.3379 19.38442 175.9839 19.38442C176.4139 19.38442 176.8439 19.25285 177.0709 18.89441C176.9279 18.89441 176.4739 18.89441 176.4739 18.4041C176.4739 18.14129 176.6529 17.9141 176.9639 17.9141C177.2629 17.9141 177.4659 18.09348 177.4659 18.44004C177.4659 19.0616 177.0119 19.67129 175.9719 19.67129C174.4659 19.67129 172.8869 18.12942 172.8869 15.49942C172.8869 12.211915 174.3219 11.470978 175.3379 11.470978C176.6409 11.470978 177.7529 12.606603 177.7529 14.16067C177.7529 15.75035 176.6409 16.81441 175.4459 16.81441C174.3819 16.81441 173.9869 15.89379 173.8679 15.5591V15.88192ZM175.3379 11.79379C174.5849 11.79379 174.2259 12.463165 174.1189 12.714103C174.0109 13.02504 173.8919 13.61067 173.8919 14.44754C173.8919 15.39192 174.3219 16.57535 175.3979 16.57535C176.0549 16.57535 176.4019 16.13285 176.5809 15.7266C176.7729 15.2841 176.7729 14.6866 176.7729 14.17254C176.7729 13.56285 176.7729 13.02504 176.5459 12.570665C176.2459 11.996915 175.8159 11.79379 175.3379 11.79379Z'/>\n<path d='M183.6039 15.54723C183.6039 16.53941 183.5439 17.50754 183.1139 18.41629C182.6239 19.40848 181.7629 19.67129 181.1769 19.67129C180.4839 19.67129 179.6349 19.32473 179.1929 18.33254C178.8579 17.57942 178.7379 16.83817 178.7379 15.54723C178.7379 14.38754 178.8219 13.51504 179.2519 12.66629C179.7189 11.757853 180.5439 11.470978 181.1649 11.470978C182.2049 11.470978 182.8029 12.09254 183.1499 12.78598C183.5799 13.68223 183.6039 14.85379 183.6039 15.54723ZM181.1649 11.71004C180.7829 11.71004 180.0059 11.92504 179.7779 13.22817C179.6469 13.94535 179.6469 14.85379 179.6469 15.69067C179.6469 16.67098 179.6469 17.55535 179.8379 18.26066C180.0409 19.0616 180.6509 19.43223 181.1649 19.43223C181.6189 19.43223 182.3129 19.15723 182.5399 18.12942C182.6949 17.44785 182.6949 16.50348 182.6949 15.69067C182.6949 14.88973 182.6949 13.98129 182.5639 13.25192C182.3369 11.937228 181.5839 11.71004 181.1649 11.71004Z'/>\n<path d='M224.1609 16.03723C224.7589 16.36004 225.6309 16.91004 225.6309 17.9141C225.6309 18.9541 224.6269 19.67129 223.5269 19.67129C222.3439 19.67129 221.4109 18.79879 221.4109 17.71098C221.4109 17.30442 221.5309 16.89817 221.8659 16.4916C221.9969 16.33629 222.0089 16.3241 222.8459 15.73848C221.6859 15.20067 221.0889 14.39973 221.0889 13.52692C221.0889 12.259728 222.2959 11.470978 223.5149 11.470978C224.8419 11.470978 225.9539 12.450978 225.9539 13.70629C225.9539 14.92567 225.0929 15.46348 224.1609 16.03723ZM222.5349 17.11316C222.3799 17.22066 221.9019 17.5316 221.9019 18.11723C221.9019 18.89441 222.7149 19.38442 223.5149 19.38442C224.3759 19.38442 225.1409 18.76285 225.1409 17.90223C225.1409 17.17285 224.6149 16.58723 223.9219 16.20473L222.5349 17.11316ZM223.0969 15.57098L224.5439 14.6266C224.8539 14.42348 225.4039 14.05285 225.4039 13.32379C225.4039 12.415353 224.4839 11.79379 223.5269 11.79379C222.5109 11.79379 221.6389 12.534728 221.6389 13.52692C221.6389 14.45942 222.3199 15.21254 223.0969 15.57098Z'/>\n<path d='M231.8049 15.54723C231.8049 16.53941 231.7449 17.50754 231.3149 18.41629C230.8249 19.40848 229.9639 19.67129 229.3779 19.67129C228.6849 19.67129 227.8359 19.32473 227.3939 18.33254C227.0589 17.57942 226.9399 16.83817 226.9399 15.54723C226.9399 14.38754 227.0229 13.51504 227.4539 12.66629C227.9199 11.757853 228.7449 11.470978 229.3659 11.470978C230.4059 11.470978 231.0039 12.09254 231.3509 12.78598C231.7809 13.68223 231.8049 14.85379 231.8049 15.54723ZM229.3659 11.71004C228.9839 11.71004 228.2069 11.92504 227.9799 13.22817C227.8479 13.94535 227.8479 14.85379 227.8479 15.69067C227.8479 16.67098 227.8479 17.55535 228.0399 18.26066C228.2429 19.0616 228.8519 19.43223 229.3659 19.43223C229.8199 19.43223 230.5139 19.15723 230.7409 18.12942C230.8959 17.44785 230.8959 16.50348 230.8959 15.69067C230.8959 14.88973 230.8959 13.98129 230.7649 13.25192C230.5379 11.937228 229.7849 11.71004 229.3659 11.71004Z'/>\n<path d='M269.3249 19.38442C269.3249 19.65942 269.3249 19.67129 269.0859 19.67129C268.7999 19.34848 268.2019 18.90629 266.9699 18.90629V18.55973C267.2449 18.55973 267.8429 18.55973 268.4999 18.87035V12.642228C268.4999 12.211915 268.4649 12.068478 267.4129 12.068478H267.0419V11.721915C267.3649 11.745978 268.5249 11.745978 268.9189 11.745978C269.3139 11.745978 270.4609 11.745978 270.7839 11.721915V12.068478H270.4129C269.3609 12.068478 269.3249 12.211915 269.3249 12.642228V19.38442Z'/>\n<path d='M277.0889 15.54723C277.0889 16.53941 277.0289 17.50754 276.5989 18.41629C276.1089 19.40848 275.2479 19.67129 274.6619 19.67129C273.9689 19.67129 273.1199 19.32473 272.6779 18.33254C272.3429 17.57942 272.2239 16.83817 272.2239 15.54723C272.2239 14.38754 272.3069 13.51504 272.7379 12.66629C273.2039 11.757853 274.0289 11.470978 274.6499 11.470978C275.6899 11.470978 276.2879 12.09254 276.6349 12.78598C277.0649 13.68223 277.0889 14.85379 277.0889 15.54723ZM274.6499 11.71004C274.2679 11.71004 273.4909 11.92504 273.2639 13.22817C273.1319 13.94535 273.1319 14.85379 273.1319 15.69067C273.1319 16.67098 273.1319 17.55535 273.3239 18.26066C273.5269 19.0616 274.1359 19.43223 274.6499 19.43223C275.1039 19.43223 275.7979 19.15723 276.0249 18.12942C276.1799 17.44785 276.1799 16.50348 276.1799 15.69067C276.1799 14.88973 276.1799 13.98129 276.0489 13.25192C275.8219 11.937228 275.0689 11.71004 274.6499 11.71004Z'/>\n<path d='M282.9399 15.54723C282.9399 16.53941 282.8799 17.50754 282.4499 18.41629C281.9599 19.40848 281.0989 19.67129 280.5129 19.67129C279.8199 19.67129 278.9709 19.32473 278.5289 18.33254C278.1939 17.57942 278.0739 16.83817 278.0739 15.54723C278.0739 14.38754 278.1579 13.51504 278.5889 12.66629C279.0549 11.757853 279.8799 11.470978 280.5009 11.470978C281.5409 11.470978 282.1389 12.09254 282.4859 12.78598C282.9159 13.68223 282.9399 14.85379 282.9399 15.54723ZM280.5009 11.71004C280.1189 11.71004 279.3419 11.92504 279.1139 13.22817C278.9829 13.94535 278.9829 14.85379 278.9829 15.69067C278.9829 16.67098 278.9829 17.55535 279.1739 18.26066C279.3779 19.0616 279.9869 19.43223 280.5009 19.43223C280.9549 19.43223 281.6489 19.15723 281.8759 18.12942C282.0309 17.44785 282.0309 16.50348 282.0309 15.69067C282.0309 14.88973 282.0309 13.98129 281.8999 13.25192C281.6729 11.937228 280.9199 11.71004 280.5009 11.71004Z'/>\n<path d='M156.49717 6.37017C156.11467 6.29861 155.97124 6.01173 155.97124 5.78455C155.97124 5.49767 156.19842 5.40205 156.36561 5.40205C156.72436 5.40205 156.9753 5.71267 156.9753 6.03548C156.9753 6.53767 156.40155 6.76486 155.89936 6.76486C155.1703 6.76486 154.76374 6.04736 154.65624 5.82048C154.38124 6.71705 153.63999 6.76486 153.42498 6.76486C152.20561 6.76486 151.559985 5.19861 151.559985 4.9358C151.559985 4.88798 151.607798 4.8283 151.691548 4.8283C151.787173 4.8283 151.811235 4.89986 151.83499 4.94767C152.24155 6.27455 153.04249 6.5258 153.38905 6.5258C153.92717 6.5258 154.03467 6.02361 154.03467 5.73673C154.03467 5.47361 153.9628 5.19861 153.81936 4.62486L153.41311 2.98736C153.23374 2.269859 152.88717 1.612671 152.25342 1.612671C152.19374 1.612671 151.89499 1.612671 151.643735 1.767984C152.07405 1.851734 152.16967 2.210171 152.16967 2.353609C152.16967 2.59267 151.99061 2.73611 151.763423 2.73611C151.476548 2.73611 151.16561 2.485171 151.16561 2.102671C151.16561 1.600484 151.727485 1.373296 152.24155 1.373296C152.8153 1.373296 153.22186 1.827671 153.4728 2.317671C153.66405 1.612671 154.26186 1.373296 154.70405 1.373296C155.92342 1.373296 156.56873 2.93955 156.56873 3.20236C156.56873 3.26205 156.52092 3.30986 156.44936 3.30986C156.34186 3.30986 156.32967 3.25017 156.29405 3.15455C155.97124 2.102671 155.2778 1.612671 154.73999 1.612671C154.32155 1.612671 154.09436 1.923296 154.09436 2.413296C154.09436 2.67642 154.14217 2.86767 154.33342 3.65673L154.75186 5.28236C154.93124 5.99955 155.33749 6.5258 155.88749 6.5258C155.91155 6.5258 156.24624 6.5258 156.49717 6.37017Z'/>\n<path d='M16.15168 28.60547C16.15168 28.88047 16.15168 28.89234 15.91261 28.89234C15.62574 28.56953 15.02793 28.12734 13.79667 28.12734V27.78078C14.07167 27.78078 14.66917 27.78078 15.32667 28.09141V21.863281C15.32667 21.432968 15.29105 21.289531 14.23886 21.289531H13.86855V20.942968C14.19105 20.967031 15.35074 20.967031 15.74511 20.967031C16.1398 20.967031 17.2873 20.967031 17.61011 20.942968V21.289531H17.23949C16.18761 21.289531 16.15168 21.432968 16.15168 21.863281V28.60547Z'/>\n<path d='M23.9151 24.76828C23.9151 25.76047 23.8554 26.72859 23.4251 27.63734C22.9351 28.62953 22.07418 28.89234 21.48855 28.89234C20.79511 28.89234 19.94636 28.54578 19.50417 27.55359C19.16949 26.80047 19.0498 26.05922 19.0498 24.76828C19.0498 23.60859 19.13355 22.73609 19.56386 21.887343C20.03011 20.978906 20.85511 20.692031 21.47667 20.692031C22.51667 20.692031 23.1142 21.313593 23.461 22.00703C23.8914 22.90328 23.9151 24.07484 23.9151 24.76828ZM21.47667 20.931093C21.09417 20.931093 20.31699 21.146093 20.0898 22.44922C19.95855 23.16641 19.95855 24.07484 19.95855 24.91172C19.95855 25.89203 19.95855 26.77641 20.1498 27.48172C20.35292 28.28266 20.96261 28.65328 21.47667 28.65328C21.93074 28.65328 22.62417 28.37828 22.8514 27.35047C23.0067 26.66891 23.0067 25.72453 23.0067 24.91172C23.0067 24.11078 23.0067 23.20234 22.8751 22.47297C22.64824 21.158281 21.89511 20.931093 21.47667 20.931093Z'/>\n<path d='M28.31135 27.82277C28.31135 28.67527 28.22354 29.1934 27.96072 29.7034C27.6101 30.40465 26.96479 30.57996 26.52635 30.57996C25.52229 30.57996 25.155723 29.8309 25.04416 29.60777C24.757285 29.0259 24.741348 28.23715 24.741348 27.82277C24.741348 27.29683 24.76541 26.49215 25.14791 25.854647C25.51447 25.26496 26.10416 25.11371 26.52635 25.11371C26.90885 25.11371 27.59416 25.233085 27.9926 26.021835C28.28729 26.59558 28.31135 27.30496 28.31135 27.82277ZM26.52635 25.336522C26.25541 25.336522 25.70572 25.464022 25.53822 26.3009C25.45072 26.75496 25.45072 27.50402 25.45072 27.9184C25.45072 28.4684 25.45072 29.0259 25.53822 29.46433C25.70572 30.27715 26.32729 30.35683 26.52635 30.35683C26.79729 30.35683 27.34729 30.22121 27.50666 29.49621C27.60228 29.05777 27.60228 28.46027 27.60228 27.9184C27.60228 27.4484 27.60228 26.73121 27.50666 26.28496C27.33916 25.448085 26.78947 25.336522 26.52635 25.336522Z'/>\n<path d='M16.15168 122.31567C16.15168 122.59067 16.15168 122.60255 15.91261 122.60255C15.62574 122.27974 15.02793 121.83755 13.79667 121.83755V121.49099C14.07167 121.49099 14.66917 121.49099 15.32667 121.80161V115.573486C15.32667 115.143173 15.29105 114.999736 14.23886 114.999736H13.86855V114.653173C14.19105 114.677236 15.35074 114.677236 15.74511 114.677236C16.1398 114.677236 17.2873 114.677236 17.61011 114.653173V114.999736H17.23949C16.18761 114.999736 16.15168 115.143173 16.15168 115.573486V122.31567Z'/>\n<path d='M23.9151 118.47849C23.9151 119.47067 23.8554 120.4388 23.4251 121.34755C22.9351 122.33974 22.07418 122.60255 21.48855 122.60255C20.79511 122.60255 19.94636 122.25599 19.50417 121.2638C19.16949 120.51067 19.0498 119.76942 19.0498 118.47849C19.0498 117.3188 19.13355 116.4463 19.56386 115.597548C20.03011 114.689111 20.85511 114.402236 21.47667 114.402236C22.51667 114.402236 23.1142 115.023798 23.461 115.71724C23.8914 116.61349 23.9151 117.78505 23.9151 118.47849ZM21.47667 114.641298C21.09417 114.641298 20.31699 114.856298 20.0898 116.15942C19.95855 116.87661 19.95855 117.78505 19.95855 118.62192C19.95855 119.60224 19.95855 120.48661 20.1498 121.19192C20.35292 121.99286 20.96261 122.36349 21.47667 122.36349C21.93074 122.36349 22.62417 122.08849 22.8514 121.06067C23.0067 120.37911 23.0067 119.43474 23.0067 118.62192C23.0067 117.82099 23.0067 116.91255 22.8751 116.18317C22.64824 114.868486 21.89511 114.641298 21.47667 114.641298Z'/>\n<path d='M26.91697 124.06704C26.91697 124.28204 26.90104 124.29016 26.68572 124.29016C26.35916 123.97141 25.93666 123.78016 25.179785 123.78016V123.51704C25.394785 123.51704 25.8251 123.51704 26.28729 123.73235V119.64454C26.28729 119.34954 26.26354 119.253915 25.50635 119.253915H25.227598V118.991102C25.55416 119.014852 26.23947 119.014852 26.59822 119.014852C26.95666 119.014852 27.64979 119.014852 27.97666 118.991102V119.253915H27.6976C26.94072 119.253915 26.91697 119.34954 26.91697 119.64454V124.06704Z'/>\n<path d='M16.15168 216.02549C16.15168 216.30049 16.15168 216.31236 15.91261 216.31236C15.62574 215.98955 15.02793 215.54736 13.79667 215.54736V215.2008C14.07167 215.2008 14.66917 215.2008 15.32667 215.51142V209.283299C15.32667 208.852986 15.29105 208.709549 14.23886 208.709549H13.86855V208.362986C14.19105 208.387049 15.35074 208.387049 15.74511 208.387049C16.1398 208.387049 17.2873 208.387049 17.61011 208.362986V208.709549H17.23949C16.18761 208.709549 16.15168 208.852986 16.15168 209.283299V216.02549Z'/>\n<path d='M23.9151 212.1883C23.9151 213.18049 23.8554 214.14861 23.4251 215.05736C22.9351 216.04955 22.07418 216.31236 21.48855 216.31236C20.79511 216.31236 19.94636 215.9658 19.50417 214.97361C19.16949 214.22049 19.0498 213.47924 19.0498 212.1883C19.0498 211.02861 19.13355 210.15611 19.56386 209.307361C20.03011 208.398924 20.85511 208.112049 21.47667 208.112049C22.51667 208.112049 23.1142 208.733611 23.461 209.42705C23.8914 210.3233 23.9151 211.49486 23.9151 212.1883ZM21.47667 208.351111C21.09417 208.351111 20.31699 208.566111 20.0898 209.86924C19.95855 210.58642 19.95855 211.49486 19.95855 212.33174C19.95855 213.31205 19.95855 214.19642 20.1498 214.90174C20.35292 215.70267 20.96261 216.0733 21.47667 216.0733C21.93074 216.0733 22.62417 215.7983 22.8514 214.77049C23.0067 214.08892 23.0067 213.14455 23.0067 212.33174C23.0067 211.5308 23.0067 210.62236 22.8751 209.89299C22.64824 208.578299 21.89511 208.351111 21.47667 208.351111Z'/>\n<path d='M26.66197 214.32692C26.78947 214.4463 27.12416 214.70942 27.25166 214.82098C27.74541 215.27505 28.21572 215.71348 28.21572 216.43848C28.21572 217.38661 27.41885 218.00036 26.42291 218.00036C25.46666 218.00036 24.836973 217.27505 24.836973 216.56598C24.836973 216.17536 25.14791 216.11973 25.259473 216.11973C25.42666 216.11973 25.67385 216.23911 25.67385 216.54192C25.67385 216.9563 25.27541 216.9563 25.179785 216.9563C25.410723 217.53817 25.94479 217.73723 26.3351 217.73723C27.07635 217.73723 27.45885 217.10786 27.45885 216.43848C27.45885 215.60973 26.87697 215.00411 25.93666 214.04005L24.932598 213.00411C24.836973 212.916297 24.836973 212.90036 24.836973 212.701297H27.98447L28.21572 214.12755H27.96854C27.94479 213.96817 27.88104 213.569735 27.78541 213.418485C27.7376 213.354735 27.13197 213.354735 27.00447 213.354735H25.58604L26.66197 214.32692Z'/>\n<path d='M4.63383 116.64024C4.31102 116.18587 3.84477 115.7793 3.25883 115.7793C3.11539 115.7793 2.54164 115.80336 2.362269 116.35337C2.398207 116.34118 2.457894 116.34118 2.481957 116.34118C2.84071 116.34118 3.07977 116.65212 3.07977 116.92712C3.07977 117.202115 2.85258 117.29774 2.67321 117.29774C2.481957 117.29774 2.063519 117.154303 2.063519 116.56837C2.063519 115.95868 2.57758 115.54024 3.25883 115.54024C4.45446 115.54024 5.66164 116.64024 5.99633 117.967115L7.16789 122.62899C7.17977 122.68899 7.20383 122.76055 7.20383 122.83243C7.20383 123.0118 7.06039 123.13118 6.88102 123.13118C6.77352 123.13118 6.52258 123.08336 6.42696 122.72462L5.54227 119.21024C5.48258 118.99524 5.48258 118.971178 5.38664 118.839615C5.14758 118.504928 4.75321 118.098678 4.17946 118.098678C3.51008 118.098678 3.45008 118.755865 3.45008 119.07868C3.45008 119.76024 3.77289 120.68055 4.09571 121.54118C4.22727 121.88805 4.29883 122.05524 4.29883 122.2943C4.29883 122.79649 3.94039 123.25086 3.35446 123.25086C2.254769 123.25086 1.812582 121.51743 1.812582 121.4218C1.812582 121.37399 1.860394 121.3143 1.944144 121.3143C2.051644 121.3143 2.063519 121.36212 2.111332 121.5293C2.398207 122.53337 2.85258 123.0118 3.31883 123.0118C3.42633 123.0118 3.62946 123.0118 3.62946 122.61711C3.62946 122.30649 3.49821 121.95961 3.31883 121.50555C2.73289 119.9393 2.73289 119.54493 2.73289 119.25805C2.73289 118.122428 3.54602 117.859303 4.14352 117.859303C4.49039 117.859303 4.92071 117.967115 5.33883 118.409303L5.35102 118.397428C5.17164 117.692115 5.05196 117.225865 4.63383 116.64024Z'/>\n<path d='M25.5607 267.30949C25.5607 267.58449 25.5607 267.59636 25.32164 267.59636C25.03476 267.27355 24.43695 266.83136 23.2057 266.83136V266.4848C23.4807 266.4848 24.0782 266.4848 24.7357 266.79543V260.567302C24.7357 260.136989 24.70007 259.993552 23.64789 259.993552H23.27757V259.646989C23.60007 259.671052 24.75976 259.671052 25.15414 259.671052C25.54882 259.671052 26.69632 259.671052 27.01914 259.646989V259.993552H26.64851C25.59664 259.993552 25.5607 260.136989 25.5607 260.567302V267.30949Z'/>\n<path d='M33.3241 263.4723C33.3241 264.46449 33.2644 265.43261 32.8341 266.34136C32.3441 267.33355 31.4832 267.59636 30.89757 267.59636C30.20414 267.59636 29.35539 267.2498 28.9132 266.25761C28.57851 265.50449 28.45882 264.76324 28.45882 263.4723C28.45882 262.31261 28.54257 261.44011 28.97289 260.591364C29.43914 259.682927 30.26414 259.396052 30.8857 259.396052C31.9257 259.396052 32.5232 260.017614 32.8701 260.71105C33.3004 261.6073 33.3241 262.77886 33.3241 263.4723ZM30.8857 259.635114C30.5032 259.635114 29.72601 259.850114 29.49882 261.15324C29.36757 261.87043 29.36757 262.77886 29.36757 263.61574C29.36757 264.59605 29.36757 265.48043 29.55882 266.18574C29.76195 266.98668 30.37164 267.3573 30.8857 267.3573C31.33976 267.3573 32.0332 267.0823 32.2604 266.05449C32.4157 265.37293 32.4157 264.42855 32.4157 263.61574C32.4157 262.8148 32.4157 261.90636 32.2841 261.17699C32.05726 259.862302 31.30414 259.635114 30.8857 259.635114Z'/>\n<path d='M39.39381 265.79397C39.52131 265.79397 39.69662 265.79397 39.69662 265.97741C39.69662 266.16053 39.52131 266.16053 39.39381 266.16053H34.82787C34.700371 266.16053 34.525058 266.16053 34.525058 265.97741C34.525058 265.79397 34.700371 265.79397 34.82787 265.79397H39.39381Z'/>\n<path d='M42.42683 266.64678C43.05652 266.64678 43.45496 266.1846 43.45496 265.34772C43.45496 264.351785 42.88902 264.056785 42.46683 264.056785C42.02839 264.056785 41.43089 264.21616 41.151832 264.63866C41.43871 264.63866 41.63808 264.821785 41.63808 265.08491C41.63808 265.33991 41.45464 265.52303 41.199645 265.52303C40.984645 265.52303 40.76152 265.38772 40.76152 265.06897C40.76152 264.311785 41.57433 263.818035 42.48277 263.818035C43.54246 263.818035 44.28339 264.550847 44.28339 265.34772C44.28339 266.00928 43.75746 266.61491 42.94496 266.79022C43.57433 267.01335 44.04433 267.55491 44.04433 268.19241S43.32746 269.28428 42.49871 269.28428C41.64589 269.28428 41.000582 268.8221 41.000582 268.21647C41.000582 267.92147 41.199645 267.79397 41.406832 267.79397C41.65402 267.79397 41.81339 267.96928 41.81339 268.20053C41.81339 268.49522 41.55839 268.60678 41.383082 268.61491C41.71777 269.05303 42.33121 269.0771 42.47464 269.0771C42.68183 269.0771 43.28746 269.01335 43.28746 268.19241C43.28746 267.6346 43.05652 267.29991 42.94496 267.17272C42.70589 266.92553 42.52246 266.9096 42.03652 266.87772C41.88496 266.86991 41.82121 266.86178 41.82121 266.75835C41.82121 266.64678 41.89308 266.64678 42.02839 266.64678H42.42683Z'/>\n<path d='M73.77171 267.30949C73.77171 267.58449 73.77171 267.59636 73.53264 267.59636C73.24577 267.27355 72.64796 266.83136 71.41671 266.83136V266.4848C71.69171 266.4848 72.28921 266.4848 72.94671 266.79543V260.567302C72.94671 260.136989 72.91108 259.993552 71.85889 259.993552H71.48858V259.646989C71.81108 259.671052 72.97077 259.671052 73.36514 259.671052C73.75983 259.671052 74.90733 259.671052 75.23014 259.646989V259.993552H74.85952C73.80764 259.993552 73.77171 260.136989 73.77171 260.567302V267.30949Z'/>\n<path d='M81.53511 263.4723C81.53511 264.46449 81.47541 265.43261 81.04511 266.34136C80.55511 267.33355 79.69421 267.59636 79.10858 267.59636C78.41514 267.59636 77.56639 267.2498 77.12421 266.25761C76.78952 265.50449 76.66983 264.76324 76.66983 263.4723C76.66983 262.31261 76.75358 261.44011 77.18389 260.591364C77.65014 259.682927 78.47514 259.396052 79.09671 259.396052C80.13671 259.396052 80.73421 260.017614 81.08111 260.71105C81.51141 261.6073 81.53511 262.77886 81.53511 263.4723ZM79.09671 259.635114C78.71421 259.635114 77.93702 259.850114 77.70983 261.15324C77.57858 261.87043 77.57858 262.77886 77.57858 263.61574C77.57858 264.59605 77.57858 265.48043 77.76983 266.18574C77.97296 266.98668 78.58264 267.3573 79.09671 267.3573C79.55077 267.3573 80.24421 267.0823 80.47141 266.05449C80.62671 265.37293 80.62671 264.42855 80.62671 263.61574C80.62671 262.8148 80.62671 261.90636 80.49511 261.17699C80.26827 259.862302 79.51514 259.635114 79.09671 259.635114Z'/>\n<path d='M87.60521 265.79397C87.73271 265.79397 87.90802 265.79397 87.90802 265.97741C87.90802 266.16053 87.73271 266.16053 87.60521 266.16053H83.03927C82.911771 266.16053 82.736459 266.16053 82.736459 265.97741C82.736459 265.79397 82.911771 265.79397 83.03927 265.79397H87.60521Z'/>\n<path d='M90.86834 265.61085C90.99584 265.73022 91.33052 265.99335 91.45802 266.10491C91.95177 266.55897 92.42209 266.99741 92.42209 267.72241C92.42209 268.67053 91.62521 269.28428 90.62927 269.28428C89.67302 269.28428 89.043336 268.55897 89.043336 267.84991C89.043336 267.45928 89.354274 267.40366 89.465836 267.40366C89.63302 267.40366 89.88021 267.52303 89.88021 267.82585C89.88021 268.24022 89.481774 268.24022 89.386149 268.24022C89.617086 268.8221 90.15115 269.02116 90.54146 269.02116C91.28271 269.02116 91.66521 268.39178 91.66521 267.72241C91.66521 266.89366 91.08334 266.28803 90.14302 265.32397L89.138961 264.288035C89.043336 264.200222 89.043336 264.184285 89.043336 263.985222H92.19084L92.42209 265.41147H92.1749C92.15115 265.2521 92.0874 264.85366 91.99177 264.70241C91.94396 264.63866 91.33834 264.63866 91.21084 264.63866H89.7924L90.86834 265.61085Z'/>\n<path d='M121.98265 267.30949C121.98265 267.58449 121.98265 267.59636 121.74358 267.59636C121.45671 267.27355 120.8589 266.83136 119.62765 266.83136V266.4848C119.90265 266.4848 120.50015 266.4848 121.15765 266.79543V260.567302C121.15765 260.136989 121.12202 259.993552 120.06983 259.993552H119.69952V259.646989C120.02202 259.671052 121.18171 259.671052 121.57608 259.671052C121.97077 259.671052 123.11827 259.671052 123.44108 259.646989V259.993552H123.07046C122.01858 259.993552 121.98265 260.136989 121.98265 260.567302V267.30949Z'/>\n<path d='M129.74605 263.4723C129.74605 264.46449 129.68635 265.43261 129.25605 266.34136C128.76605 267.33355 127.90515 267.59636 127.31952 267.59636C126.62608 267.59636 125.77733 267.2498 125.33515 266.25761C125.00046 265.50449 124.88077 264.76324 124.88077 263.4723C124.88077 262.31261 124.96452 261.44011 125.39483 260.591364C125.86108 259.682927 126.68608 259.396052 127.30765 259.396052C128.34765 259.396052 128.94515 260.017614 129.29205 260.71105C129.72235 261.6073 129.74605 262.77886 129.74605 263.4723ZM127.30765 259.635114C126.92515 259.635114 126.14796 259.850114 125.92077 261.15324C125.78952 261.87043 125.78952 262.77886 125.78952 263.61574C125.78952 264.59605 125.78952 265.48043 125.98077 266.18574C126.1839 266.98668 126.79358 267.3573 127.30765 267.3573C127.76171 267.3573 128.45515 267.0823 128.68235 266.05449C128.83765 265.37293 128.83765 264.42855 128.83765 263.61574C128.83765 262.8148 128.83765 261.90636 128.70605 261.17699C128.47921 259.862302 127.72608 259.635114 127.30765 259.635114Z'/>\n<path d='M135.81615 265.79397C135.94365 265.79397 136.11896 265.79397 136.11896 265.97741C136.11896 266.16053 135.94365 266.16053 135.81615 266.16053H131.25021C131.122711 266.16053 130.947399 266.16053 130.947399 265.97741C130.947399 265.79397 131.122711 265.79397 131.25021 265.79397H135.81615Z'/>\n<path d='M139.33428 269.06116C139.33428 269.27616 139.31834 269.28428 139.10303 269.28428C138.77646 268.96553 138.35396 268.77428 137.597089 268.77428V268.51116C137.812089 268.51116 138.2424 268.51116 138.70459 268.72647V264.63866C138.70459 264.34366 138.68084 264.248035 137.92365 264.248035H137.644901V263.985222C137.97146 264.008972 138.65678 264.008972 139.01553 264.008972C139.37396 264.008972 140.06709 264.008972 140.39396 263.985222V264.248035H140.1149C139.35803 264.248035 139.33428 264.34366 139.33428 264.63866V269.06116Z'/>\n<path d='M173.48698 267.30949C173.48698 267.58449 173.48698 267.59636 173.24792 267.59636C172.96104 267.27355 172.36323 266.83136 171.13198 266.83136V266.4848C171.40698 266.4848 172.00448 266.4848 172.66198 266.79543V260.567302C172.66198 260.136989 172.62635 259.993552 171.57417 259.993552H171.20385V259.646989C171.52635 259.671052 172.68604 259.671052 173.08042 259.671052C173.4751 259.671052 174.6226 259.671052 174.94542 259.646989V259.993552H174.57479C173.52292 259.993552 173.48698 260.136989 173.48698 260.567302V267.30949Z'/>\n<path d='M181.25039 263.4723C181.25039 264.46449 181.19069 265.43261 180.76039 266.34136C180.27039 267.33355 179.40948 267.59636 178.82385 267.59636C178.13042 267.59636 177.28167 267.2498 176.83948 266.25761C176.50479 265.50449 176.3851 264.76324 176.3851 263.4723C176.3851 262.31261 176.46885 261.44011 176.89917 260.591364C177.36542 259.682927 178.19042 259.396052 178.81198 259.396052C179.85198 259.396052 180.44949 260.017614 180.79639 260.71105C181.22669 261.6073 181.25039 262.77886 181.25039 263.4723ZM178.81198 259.635114C178.42948 259.635114 177.65229 259.850114 177.4251 261.15324C177.29385 261.87043 177.29385 262.77886 177.29385 263.61574C177.29385 264.59605 177.29385 265.48043 177.4851 266.18574C177.68823 266.98668 178.29792 267.3573 178.81198 267.3573C179.26604 267.3573 179.95948 267.0823 180.18669 266.05449C180.34199 265.37293 180.34199 264.42855 180.34199 263.61574C180.34199 262.8148 180.34199 261.90636 180.21039 261.17699C179.98354 259.862302 179.23042 259.635114 178.81198 259.635114Z'/>\n<path d='M185.64665 266.5271C185.64665 267.3796 185.55884 267.89772 185.29603 268.40772C184.9454 269.10897 184.30009 269.28428 183.86165 269.28428C182.85759 269.28428 182.491026 268.53522 182.379463 268.3121C182.092588 267.73022 182.076651 266.94147 182.076651 266.5271C182.076651 266.00116 182.100713 265.19647 182.483213 264.558972C182.84978 263.969285 183.43946 263.818035 183.86165 263.818035C184.24415 263.818035 184.92946 263.93741 185.3279 264.72616C185.62259 265.29991 185.64665 266.00928 185.64665 266.5271ZM183.86165 264.040847C183.59071 264.040847 183.04103 264.168347 182.87353 265.00522C182.78603 265.45928 182.78603 266.20835 182.78603 266.62272C182.78603 267.17272 182.78603 267.73022 182.87353 268.16866C183.04103 268.98147 183.66259 269.06116 183.86165 269.06116C184.13259 269.06116 184.68259 268.92553 184.84196 268.20053C184.93759 267.7621 184.93759 267.1646 184.93759 266.62272C184.93759 266.15272 184.93759 265.43553 184.84196 264.98928C184.67446 264.15241 184.12478 264.040847 183.86165 264.040847Z'/>\n<path d='M221.6968 267.30949C221.6968 267.58449 221.6968 267.59636 221.45774 267.59636C221.17086 267.27355 220.57305 266.83136 219.3418 266.83136V266.4848C219.6168 266.4848 220.2143 266.4848 220.8718 266.79543V260.567302C220.8718 260.136989 220.83618 259.993552 219.78399 259.993552H219.41368V259.646989C219.73618 259.671052 220.89586 259.671052 221.29024 259.671052C221.68493 259.671052 222.83243 259.671052 223.15524 259.646989V259.993552H222.78461C221.73274 259.993552 221.6968 260.136989 221.6968 260.567302V267.30949Z'/>\n<path d='M229.46019 263.4723C229.46019 264.46449 229.40059 265.43261 228.97019 266.34136C228.48019 267.33355 227.6193 267.59636 227.03368 267.59636C226.34024 267.59636 225.49149 267.2498 225.0493 266.25761C224.71461 265.50449 224.59493 264.76324 224.59493 263.4723C224.59493 262.31261 224.67868 261.44011 225.10899 260.591364C225.57524 259.682927 226.40024 259.396052 227.0218 259.396052C228.0618 259.396052 228.65929 260.017614 229.00619 260.71105C229.43649 261.6073 229.46019 262.77886 229.46019 263.4723ZM227.0218 259.635114C226.6393 259.635114 225.86211 259.850114 225.63493 261.15324C225.50368 261.87043 225.50368 262.77886 225.50368 263.61574C225.50368 264.59605 225.50368 265.48043 225.69493 266.18574C225.89805 266.98668 226.50774 267.3573 227.0218 267.3573C227.47586 267.3573 228.1693 267.0823 228.39649 266.05449C228.55179 265.37293 228.55179 264.42855 228.55179 263.61574C228.55179 262.8148 228.55179 261.90636 228.42019 261.17699C228.19336 259.862302 227.44024 259.635114 227.0218 259.635114Z'/>\n<path d='M232.46249 269.06116C232.46249 269.27616 232.44655 269.28428 232.23124 269.28428C231.90468 268.96553 231.48218 268.77428 230.725303 268.77428V268.51116C230.940303 268.51116 231.37062 268.51116 231.8328 268.72647V264.63866C231.8328 264.34366 231.80905 264.248035 231.05187 264.248035H230.773115V263.985222C231.09968 264.008972 231.78499 264.008972 232.14374 264.008972C232.50218 264.008972 233.1953 264.008972 233.52218 263.985222V264.248035H233.24312C232.48624 264.248035 232.46249 264.34366 232.46249 264.63866V269.06116Z'/>\n<path d='M269.9078 267.30949C269.9078 267.58449 269.9078 267.59636 269.66874 267.59636C269.38186 267.27355 268.78405 266.83136 267.5528 266.83136V266.4848C267.8278 266.4848 268.4253 266.4848 269.0828 266.79543V260.567302C269.0828 260.136989 269.04717 259.993552 267.99499 259.993552H267.62467V259.646989C267.94717 259.671052 269.10686 259.671052 269.50124 259.671052C269.89592 259.671052 271.04342 259.671052 271.36624 259.646989V259.993552H270.99561C269.94374 259.993552 269.9078 260.136989 269.9078 260.567302V267.30949Z'/>\n<path d='M277.67119 263.4723C277.67119 264.46449 277.61159 265.43261 277.18119 266.34136C276.69119 267.33355 275.8303 267.59636 275.24467 267.59636C274.55124 267.59636 273.70249 267.2498 273.2603 266.25761C272.92561 265.50449 272.80592 264.76324 272.80592 263.4723C272.80592 262.31261 272.88967 261.44011 273.31999 260.591364C273.78624 259.682927 274.61124 259.396052 275.2328 259.396052C276.2728 259.396052 276.87029 260.017614 277.21719 260.71105C277.64749 261.6073 277.67119 262.77886 277.67119 263.4723ZM275.2328 259.635114C274.8503 259.635114 274.07311 259.850114 273.84592 261.15324C273.71467 261.87043 273.71467 262.77886 273.71467 263.61574C273.71467 264.59605 273.71467 265.48043 273.90592 266.18574C274.10905 266.98668 274.71874 267.3573 275.2328 267.3573C275.68686 267.3573 276.3803 267.0823 276.60749 266.05449C276.76279 265.37293 276.76279 264.42855 276.76279 263.61574C276.76279 262.8148 276.76279 261.90636 276.63119 261.17699C276.40436 259.862302 275.65124 259.635114 275.2328 259.635114Z'/>\n<path d='M280.41849 265.61085C280.54599 265.73022 280.88068 265.99335 281.00818 266.10491C281.50193 266.55897 281.97224 266.99741 281.97224 267.72241C281.97224 268.67053 281.17536 269.28428 280.17943 269.28428C279.22318 269.28428 278.593489 268.55897 278.593489 267.84991C278.593489 267.45928 278.904427 267.40366 279.015989 267.40366C279.18318 267.40366 279.43036 267.52303 279.43036 267.82585C279.43036 268.24022 279.031927 268.24022 278.936302 268.24022C279.167239 268.8221 279.7013 269.02116 280.09161 269.02116C280.83286 269.02116 281.21536 268.39178 281.21536 267.72241C281.21536 266.89366 280.63349 266.28803 279.69318 265.32397L278.689114 264.288035C278.593489 264.200222 278.593489 264.184285 278.593489 263.985222H281.74099L281.97224 265.41147H281.72505C281.7013 265.2521 281.63755 264.85366 281.54193 264.70241C281.49411 264.63866 280.88849 264.63866 280.76099 264.63866H279.34255L280.41849 265.61085Z'/>\n<path d='M142.39687 281.99785C142.63594 281.99785 142.73156 281.99785 142.73156 282.22504C142.73156 282.34441 142.63594 282.34441 142.42062 282.34441H141.4525C141.67969 283.57566 141.84687 284.42441 141.9425 284.80691C142.01437 285.09379 142.26531 285.36879 142.57625 285.36879C142.82719 285.36879 143.07812 285.26129 143.19781 285.15379C142.73156 285.10597 142.58812 284.7591 142.58812 284.55597C142.58812 284.31691 142.7675 284.17347 142.99469 284.17347C143.23375 284.17347 143.59219 284.3766 143.59219 284.83097C143.59219 285.33285 143.09031 285.60785 142.56406 285.60785C142.05031 285.60785 141.54812 285.22535 141.30906 284.7591C141.09375 284.34066 140.97437 283.91035 140.69937 282.34441H139.89844C139.67125 282.34441 139.55187 282.34441 139.55187 282.12941C139.55187 281.99785 139.62344 281.99785 139.8625 281.99785H140.6275C140.4125 280.88597 139.92219 278.18441 139.6475 276.905348C139.44406 275.86535 139.265 274.99254 138.66719 274.99254C138.63125 274.99254 138.28469 274.99254 138.06937 275.21972C138.67906 275.26754 138.67906 275.79347 138.67906 275.80566C138.67906 276.04472 138.49969 276.18816 138.27281 276.18816C138.033437 276.18816 137.675 275.98472 137.675 275.53066C137.675 275.0166 138.20094 274.75347 138.66719 274.75347C139.88656 274.75347 140.38844 276.941285 140.52 277.538785C140.73531 278.45941 141.32094 281.6391 141.38062 281.99785H142.39687Z'/>\n<path d='M147.99757 274.28754C147.99757 274.32316 147.99757 274.34722 147.79445 274.55035C146.59914 275.75785 145.92945 277.730035 145.92945 280.16879C145.92945 282.48785 146.49132 284.4841 147.8782 285.89472C147.99757 286.00222 147.99757 286.02629 147.99757 286.06222C147.99757 286.13379 147.93789 286.15785 147.89007 286.15785C147.73476 286.15785 146.75445 285.29722 146.16882 284.12566C145.55914 282.91816 145.28414 281.6391 145.28414 280.16879C145.28414 279.10472 145.45132 277.682223 146.07289 276.40316C146.7782 274.96879 147.75851 274.1916 147.89007 274.1916C147.93789 274.1916 147.99757 274.21566 147.99757 274.28754Z'/>\n<path d='M154.33075 282.06941C153.94825 281.99785 153.80481 281.71097 153.80481 281.48379C153.80481 281.19691 154.032 281.10129 154.19919 281.10129C154.55794 281.10129 154.80888 281.41191 154.80888 281.73472C154.80888 282.23691 154.23513 282.4641 153.73294 282.4641C153.00388 282.4641 152.59731 281.7466 152.48981 281.51972C152.21481 282.41629 151.47356 282.4641 151.25856 282.4641C150.03919 282.4641 149.393563 280.89785 149.393563 280.63504C149.393563 280.58722 149.441376 280.52754 149.525126 280.52754C149.620751 280.52754 149.644813 280.5991 149.66856 280.64691C150.07513 281.97379 150.87606 282.22504 151.22263 282.22504C151.76075 282.22504 151.86825 281.72285 151.86825 281.43597C151.86825 281.17285 151.79638 280.89785 151.65294 280.3241L151.24669 278.6866C151.06731 277.969098 150.72075 277.31191 150.087 277.31191C150.02731 277.31191 149.72856 277.31191 149.477313 277.467223C149.90763 277.550973 150.00325 277.90941 150.00325 278.052848C150.00325 278.29191 149.82419 278.43535 149.597001 278.43535C149.310126 278.43535 148.999188 278.18441 148.999188 277.80191C148.999188 277.299723 149.561063 277.072535 150.07513 277.072535C150.64888 277.072535 151.05544 277.52691 151.30638 278.01691C151.49763 277.31191 152.09544 277.072535 152.53763 277.072535C153.757 277.072535 154.40231 278.63879 154.40231 278.9016C154.40231 278.96129 154.3545 279.0091 154.28294 279.0091C154.17544 279.0091 154.16325 278.94941 154.12763 278.85379C153.80481 277.80191 153.11138 277.31191 152.57356 277.31191C152.15513 277.31191 151.92794 277.622535 151.92794 278.112535C151.92794 278.37566 151.97575 278.56691 152.167 279.35597L152.58544 280.9816C152.76481 281.69879 153.17106 282.22504 153.72106 282.22504C153.74513 282.22504 154.07981 282.22504 154.33075 282.06941Z'/>\n<path d='M157.64474 277.14441C157.64474 277.837848 157.41786 278.35191 156.92755 278.35191C156.54505 278.35191 156.3538 278.040973 156.3538 277.777848C156.3538 277.515035 156.53317 277.192223 156.93942 277.192223C157.09505 277.192223 157.2263 277.240035 157.33411 277.347535C157.35786 277.371598 157.37005 277.371598 157.38192 277.371598C157.40567 277.371598 157.40567 277.204098 157.40567 277.14441C157.40567 276.750035 157.33411 275.97285 156.64067 275.19597C156.50911 275.05254 156.50911 275.02847 156.50911 275.00472C156.50911 274.94472 156.56911 274.88504 156.6288 274.88504C156.72442 274.88504 157.64474 275.76972 157.64474 277.14441Z'/>\n<path d='M163.70481 275.85347C163.38201 275.3991 162.91571 274.99254 162.32981 274.99254C162.18641 274.99254 161.61261 275.0166 161.43321 275.5666C161.46921 275.55441 161.52891 275.55441 161.55291 275.55441C161.91171 275.55441 162.15071 275.86535 162.15071 276.14035C162.15071 276.415348 161.92361 276.510973 161.74421 276.510973C161.55291 276.510973 161.13451 276.367535 161.13451 275.7816C161.13451 275.17191 161.64861 274.75347 162.32981 274.75347C163.52541 274.75347 164.73261 275.85347 165.06731 277.180348L166.23891 281.84222C166.25071 281.90222 166.27481 281.97379 166.27481 282.04566C166.27481 282.22504 166.13141 282.34441 165.95201 282.34441C165.84451 282.34441 165.59361 282.2966 165.49791 281.93785L164.61321 278.42347C164.55361 278.20847 164.55361 278.18441 164.45761 278.052848C164.21861 277.71816 163.82421 277.31191 163.25041 277.31191C162.58111 277.31191 162.52111 277.969098 162.52111 278.29191C162.52111 278.97347 162.84391 279.89379 163.16671 280.75441C163.29821 281.10129 163.36981 281.26847 163.36981 281.50754C163.36981 282.00972 163.01141 282.4641 162.42541 282.4641C161.32571 282.4641 160.88361 280.73066 160.88361 280.63504C160.88361 280.58722 160.93141 280.52754 161.01511 280.52754C161.12261 280.52754 161.13451 280.57535 161.18231 280.74254C161.46921 281.7466 161.92361 282.22504 162.38981 282.22504C162.49731 282.22504 162.70041 282.22504 162.70041 281.83035C162.70041 281.51972 162.56921 281.17285 162.38981 280.71879C161.80391 279.15254 161.80391 278.75816 161.80391 278.47129C161.80391 277.33566 162.61701 277.072535 163.21451 277.072535C163.56141 277.072535 163.99171 277.180348 164.40981 277.622535L164.42201 277.61066C164.24261 276.905348 164.12291 276.439098 163.70481 275.85347Z'/>\n<path d='M170.06829 280.16879C170.06829 281.07722 169.94891 282.55972 169.27954 283.94629C168.57422 285.38066 167.59391 286.15785 167.462348 286.15785C167.414535 286.15785 167.354848 286.13379 167.354848 286.06222C167.354848 286.02629 167.354848 286.00222 167.557973 285.7991C168.7536 284.59191 169.42297 282.61941 169.42297 280.18066C169.42297 277.861598 168.8611 275.86535 167.474223 274.45472C167.354848 274.34722 167.354848 274.32316 167.354848 274.28754C167.354848 274.21566 167.414535 274.1916 167.462348 274.1916C167.61766 274.1916 168.59797 275.05254 169.18391 276.224098C169.7936 277.44316 170.06829 278.73441 170.06829 280.16879Z'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-lever-integral.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.9.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='199.9996pt' height='68.609pt' viewBox='56.6594 68.903 199.9996 68.609'>\n<defs>\n<path id='g3-48' d='M3.897385-2.542466C3.897385-3.395268 3.809714-3.913325 3.5467-4.423412C3.196015-5.124782 2.550436-5.300125 2.11208-5.300125C1.107846-5.300125 .74122-4.550934 .629639-4.327771C.342715-3.745953 .326775-2.956912 .326775-2.542466C.326775-2.016438 .350685-1.211457 .73325-.573848C1.099875 .01594 1.689664 .167372 2.11208 .167372C2.494645 .167372 3.180075 .047821 3.57858-.74122C3.873474-1.315068 3.897385-2.024408 3.897385-2.542466ZM2.11208-.055791C1.841096-.055791 1.291158-.183313 1.123786-1.020174C1.036115-1.474471 1.036115-2.223661 1.036115-2.638107C1.036115-3.188045 1.036115-3.745953 1.123786-4.184309C1.291158-4.99726 1.912827-5.076961 2.11208-5.076961C2.383064-5.076961 2.933001-4.941469 3.092403-4.216189C3.188045-3.777833 3.188045-3.180075 3.188045-2.638107C3.188045-2.16787 3.188045-1.45056 3.092403-1.004234C2.925031-.167372 2.375093-.055791 2.11208-.055791Z'/>\n<path id='g3-49' d='M2.502615-5.076961C2.502615-5.292154 2.486675-5.300125 2.271482-5.300125C1.944707-4.98132 1.522291-4.790037 .765131-4.790037V-4.527024C.980324-4.527024 1.41071-4.527024 1.872976-4.742217V-.653549C1.872976-.358655 1.849066-.263014 1.091905-.263014H.812951V0C1.139726-.02391 1.825156-.02391 2.183811-.02391S3.235866-.02391 3.56264 0V-.263014H3.283686C2.526526-.263014 2.502615-.358655 2.502615-.653549V-5.076961Z'/>\n<path id='g1-82' d='M3.251806 10.520548C3.096389 12.481196 2.666002 13.019178 1.984558 13.019178C1.829141 13.019178 1.470486 12.983313 1.219427 12.76812C1.566127 12.720299 1.661768 12.44533 1.661768 12.277958C1.661768 11.931258 1.398755 11.775841 1.171606 11.775841C.932503 11.775841 .669489 11.931258 .669489 12.289913C.669489 12.863761 1.267248 13.282192 1.984558 13.282192C3.120299 13.282192 3.694147 12.242092 3.957161 11.166127C4.112578 10.544458 4.542964 7.065504 4.638605 5.738481L4.865753 2.761644C5.033126 .561893 5.439601 .263014 5.977584 .263014C6.097136 .263014 6.467746 .286924 6.73076 .514072C6.38406 .561893 6.288418 .836862 6.288418 1.004234C6.288418 1.350934 6.551432 1.506351 6.77858 1.506351C7.017684 1.506351 7.280697 1.350934 7.280697 .992279C7.280697 .418431 6.682939 0 5.965629 0C4.829888 0 4.363636 1.159651 4.160399 2.068244C4.016936 2.725778 3.58655 6.097136 3.478954 7.543711L3.251806 10.520548Z'/>\n<path id='g4-22' d='M5.033126-6.659029V-7.005729H.812951V-6.659029H5.033126Z'/>\n<path id='g4-40' d='M3.88543 2.905106C3.88543 2.86924 3.88543 2.84533 3.682192 2.642092C2.486675 1.43462 1.817186-.537983 1.817186-2.976837C1.817186-5.296139 2.379078-7.292653 3.765878-8.703362C3.88543-8.810959 3.88543-8.834869 3.88543-8.870735C3.88543-8.942466 3.825654-8.966376 3.777833-8.966376C3.622416-8.966376 2.642092-8.105604 2.056289-6.933998C1.446575-5.726526 1.171606-4.447323 1.171606-2.976837C1.171606-1.912827 1.338979-.490162 1.960648 .789041C2.666002 2.223661 3.646326 3.000747 3.777833 3.000747C3.825654 3.000747 3.88543 2.976837 3.88543 2.905106Z'/>\n<path id='g4-41' d='M3.371357-2.976837C3.371357-3.88543 3.251806-5.36787 2.582316-6.75467C1.876961-8.18929 .896638-8.966376 .765131-8.966376C.71731-8.966376 .657534-8.942466 .657534-8.870735C.657534-8.834869 .657534-8.810959 .860772-8.607721C2.056289-7.400249 2.725778-5.427646 2.725778-2.988792C2.725778-.669489 2.163885 1.327024 .777086 2.737733C.657534 2.84533 .657534 2.86924 .657534 2.905106C.657534 2.976837 .71731 3.000747 .765131 3.000747C.920548 3.000747 1.900872 2.139975 2.486675 .968369C3.096389-.251059 3.371357-1.542217 3.371357-2.976837Z'/>\n<path id='g4-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>\n<path id='g2-14' d='M3.108344-5.212453C1.578082-4.841843 .478207-3.251806 .478207-1.853051C.478207-.573848 1.338979 .143462 2.295392 .143462C3.706102 .143462 4.662516-1.793275 4.662516-3.383313C4.662516-4.459278 4.160399-5.116812 3.861519-5.511333C3.419178-6.073225 2.701868-6.993773 2.701868-7.567621C2.701868-7.770859 2.857285-8.129514 3.383313-8.129514C3.753923-8.129514 3.981071-7.998007 4.339726-7.79477C4.447323-7.723039 4.722291-7.567621 4.877709-7.567621C5.128767-7.567621 5.308095-7.81868 5.308095-8.009963C5.308095-8.237111 5.128767-8.272976 4.710336-8.368618C4.148443-8.488169 3.981071-8.488169 3.777833-8.488169S2.402989-8.488169 2.402989-7.268742C2.402989-6.682939 2.701868-6.001494 3.108344-5.212453ZM3.239851-4.985305C3.694147-4.040847 3.873474-3.682192 3.873474-2.905106C3.873474-1.972603 3.371357-.095641 2.307347-.095641C1.841096-.095641 1.171606-.406476 1.171606-1.518306C1.171606-2.295392 1.613948-4.554919 3.239851-4.985305Z'/>\n<path id='g2-77' d='M10.855293-7.292653C10.962889-7.699128 10.9868-7.81868 11.835616-7.81868C12.062765-7.81868 12.170361-7.81868 12.170361-8.045828C12.170361-8.16538 12.086675-8.16538 11.859527-8.16538H10.424907C10.126027-8.16538 10.114072-8.153425 9.982565-7.962142L5.618929-1.06401L4.722291-7.902366C4.686426-8.16538 4.674471-8.16538 4.363636-8.16538H2.881196C2.654047-8.16538 2.546451-8.16538 2.546451-7.938232C2.546451-7.81868 2.654047-7.81868 2.833375-7.81868C3.56264-7.81868 3.56264-7.723039 3.56264-7.591532C3.56264-7.567621 3.56264-7.49589 3.514819-7.316563L1.984558-1.219427C1.841096-.645579 1.566127-.382565 .765131-.3467C.729265-.3467 .585803-.334745 .585803-.131507C.585803 0 .6934 0 .74122 0C.980324 0 1.590037-.02391 1.829141-.02391H2.402989C2.570361-.02391 2.773599 0 2.940971 0C3.024658 0 3.156164 0 3.156164-.227148C3.156164-.334745 3.036613-.3467 2.988792-.3467C2.594271-.358655 2.211706-.430386 2.211706-.860772C2.211706-.980324 2.211706-.992279 2.259527-1.159651L3.90934-7.746949H3.921295L4.913574-.32279C4.94944-.035866 4.961395 0 5.068991 0C5.200498 0 5.260274-.095641 5.32005-.203238L10.126027-7.806725H10.137983L8.404483-.884682C8.296887-.466252 8.272976-.3467 7.436115-.3467C7.208966-.3467 7.089415-.3467 7.089415-.131507C7.089415 0 7.197011 0 7.268742 0C7.47198 0 7.711083-.02391 7.914321-.02391H9.325031C9.528269-.02391 9.779328 0 9.982565 0C10.078207 0 10.209714 0 10.209714-.227148C10.209714-.3467 10.102117-.3467 9.92279-.3467C9.193524-.3467 9.193524-.442341 9.193524-.561893C9.193524-.573848 9.193524-.657534 9.217435-.753176L10.855293-7.292653Z'/>\n<path id='g2-88' d='M5.678705-4.853798L4.554919-7.47198C4.710336-7.758904 5.068991-7.806725 5.212453-7.81868C5.284184-7.81868 5.415691-7.830635 5.415691-8.033873C5.415691-8.16538 5.308095-8.16538 5.236364-8.16538C5.033126-8.16538 4.794022-8.141469 4.590785-8.141469H3.897385C3.16812-8.141469 2.642092-8.16538 2.630137-8.16538C2.534496-8.16538 2.414944-8.16538 2.414944-7.938232C2.414944-7.81868 2.52254-7.81868 2.677958-7.81868C3.371357-7.81868 3.419178-7.699128 3.53873-7.412204L4.961395-4.088667L2.367123-1.315068C1.936737-.848817 1.422665-.394521 .537983-.3467C.394521-.334745 .298879-.334745 .298879-.119552C.298879-.083686 .310834 0 .442341 0C.609714 0 .789041-.02391 .956413-.02391H1.518306C1.900872-.02391 2.319303 0 2.689913 0C2.773599 0 2.917061 0 2.917061-.215193C2.917061-.334745 2.833375-.3467 2.761644-.3467C2.52254-.37061 2.367123-.502117 2.367123-.6934C2.367123-.896638 2.510585-1.0401 2.857285-1.398755L3.921295-2.558406C4.184309-2.833375 4.817933-3.526775 5.080946-3.789788L6.336239-.848817C6.348194-.824907 6.396015-.705355 6.396015-.6934C6.396015-.585803 6.133001-.37061 5.750436-.3467C5.678705-.3467 5.547198-.334745 5.547198-.119552C5.547198 0 5.66675 0 5.726526 0C5.929763 0 6.168867-.02391 6.372105-.02391H7.687173C7.902366-.02391 8.129514 0 8.332752 0C8.416438 0 8.547945 0 8.547945-.227148C8.547945-.3467 8.428394-.3467 8.320797-.3467C7.603487-.358655 7.579577-.418431 7.376339-.860772L5.798257-4.566874L7.316563-6.192777C7.436115-6.312329 7.711083-6.611208 7.81868-6.73076C8.332752-7.268742 8.810959-7.758904 9.779328-7.81868C9.898879-7.830635 10.018431-7.830635 10.018431-8.033873C10.018431-8.16538 9.910834-8.16538 9.863014-8.16538C9.695641-8.16538 9.516314-8.141469 9.348941-8.141469H8.799004C8.416438-8.141469 7.998007-8.16538 7.627397-8.16538C7.543711-8.16538 7.400249-8.16538 7.400249-7.950187C7.400249-7.830635 7.483935-7.81868 7.555666-7.81868C7.746949-7.79477 7.950187-7.699128 7.950187-7.47198L7.938232-7.44807C7.926276-7.364384 7.902366-7.244832 7.770859-7.10137L5.678705-4.853798Z'/>\n<path id='g2-100' d='M6.01345-7.998007C6.025405-8.045828 6.049315-8.117559 6.049315-8.177335C6.049315-8.296887 5.929763-8.296887 5.905853-8.296887C5.893898-8.296887 5.308095-8.249066 5.248319-8.237111C5.045081-8.225156 4.865753-8.201245 4.65056-8.18929C4.351681-8.16538 4.267995-8.153425 4.267995-7.938232C4.267995-7.81868 4.363636-7.81868 4.531009-7.81868C5.116812-7.81868 5.128767-7.711083 5.128767-7.591532C5.128767-7.519801 5.104857-7.424159 5.092902-7.388294L4.363636-4.483188C4.23213-4.794022 3.90934-5.272229 3.287671-5.272229C1.936737-5.272229 .478207-3.526775 .478207-1.75741C.478207-.573848 1.171606 .119552 1.984558 .119552C2.642092 .119552 3.203985-.394521 3.53873-.789041C3.658281-.083686 4.220174 .119552 4.578829 .119552S5.224408-.095641 5.439601-.526027C5.630884-.932503 5.798257-1.661768 5.798257-1.709589C5.798257-1.769365 5.750436-1.817186 5.678705-1.817186C5.571108-1.817186 5.559153-1.75741 5.511333-1.578082C5.332005-.872727 5.104857-.119552 4.614695-.119552C4.267995-.119552 4.244085-.430386 4.244085-.669489C4.244085-.71731 4.244085-.968369 4.327771-1.303113L6.01345-7.998007ZM3.598506-1.422665C3.53873-1.219427 3.53873-1.195517 3.371357-.968369C3.108344-.633624 2.582316-.119552 2.020423-.119552C1.530262-.119552 1.255293-.561893 1.255293-1.267248C1.255293-1.924782 1.625903-3.263761 1.853051-3.765878C2.259527-4.60274 2.82142-5.033126 3.287671-5.033126C4.076712-5.033126 4.23213-4.052802 4.23213-3.957161C4.23213-3.945205 4.196264-3.789788 4.184309-3.765878L3.598506-1.422665Z'/>\n<path id='g2-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>\n<path id='g2-120' d='M5.66675-4.877709C5.284184-4.805978 5.140722-4.519054 5.140722-4.291905C5.140722-4.004981 5.36787-3.90934 5.535243-3.90934C5.893898-3.90934 6.144956-4.220174 6.144956-4.542964C6.144956-5.045081 5.571108-5.272229 5.068991-5.272229C4.339726-5.272229 3.93325-4.554919 3.825654-4.327771C3.550685-5.224408 2.809465-5.272229 2.594271-5.272229C1.374844-5.272229 .729265-3.706102 .729265-3.443088C.729265-3.395268 .777086-3.335492 .860772-3.335492C.956413-3.335492 .980324-3.407223 1.004234-3.455044C1.41071-4.782067 2.211706-5.033126 2.558406-5.033126C3.096389-5.033126 3.203985-4.531009 3.203985-4.244085C3.203985-3.981071 3.132254-3.706102 2.988792-3.132254L2.582316-1.494396C2.402989-.777086 2.056289-.119552 1.422665-.119552C1.362889-.119552 1.06401-.119552 .812951-.274969C1.243337-.358655 1.338979-.71731 1.338979-.860772C1.338979-1.099875 1.159651-1.243337 .932503-1.243337C.645579-1.243337 .334745-.992279 .334745-.609714C.334745-.107597 .896638 .119552 1.41071 .119552C1.984558 .119552 2.391034-.334745 2.642092-.824907C2.833375-.119552 3.431133 .119552 3.873474 .119552C5.092902 .119552 5.738481-1.446575 5.738481-1.709589C5.738481-1.769365 5.69066-1.817186 5.618929-1.817186C5.511333-1.817186 5.499377-1.75741 5.463512-1.661768C5.140722-.609714 4.447323-.119552 3.90934-.119552C3.490909-.119552 3.263761-.430386 3.263761-.920548C3.263761-1.183562 3.311582-1.374844 3.502864-2.163885L3.921295-3.789788C4.100623-4.507098 4.507098-5.033126 5.057036-5.033126C5.080946-5.033126 5.415691-5.033126 5.66675-4.877709Z'/>\n<path id='g0-94' d='M5.676235-17.202215L2.627428-13.831176L2.924872-13.533731L5.676235-16.210733L8.427598-13.533731L8.725043-13.831176L5.676235-17.202215Z'/>\n</defs>\n<g id='page1'>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0 68.8666L 200.75 68.8666L 200.75 0L 0 0L 0 68.8666Z' fill='#ffffff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 77.326 15.1011L 192.938 15.1011' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<circle cx='77.326' cy='15.1011' fill='#ff0000' r='2.13396'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<circle cx='192.938' cy='15.1011' fill='#003f00' r='4.26791'/>\n</g>\n<g fill='#f00'>\n<use x='128.580719' y='79.583809' xlink:href='#g2-109'/>\n</g>\n<g fill='#004000'>\n<use x='242.594148' y='78.507842' xlink:href='#g2-77'/>\n</g>\n<g fill='#00f'>\n<use x='214.40191' y='102.535536' xlink:href='#g0-94'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 69.296 22.8086L 8.28094 22.8086' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 76.8241 22.8086L 69.296 20.7915L 69.296 24.8258L 76.8241 22.8086Z' fill='#ff0000'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 76.8241 22.8086L 69.296 20.7915L 69.296 24.8258L 76.8241 22.8086Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752813 22.8086L 8.28094 24.8258L 8.28094 20.7915L 0.752813 22.8086Z' fill='#ff0000'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752813 22.8086L 8.28094 24.8258L 8.28094 20.7915L 0.752813 22.8086Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 26.5727L 0.250937 19.0446' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 77.326 26.5727L 77.326 19.0446' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#f00'>\n<use x='91.980756' y='87.979829' xlink:href='#g2-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 156.005 34.3699L 8.28094 34.3699' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 163.533 34.3699L 156.005 32.3527L 156.005 36.387L 163.533 34.3699Z' fill='#0000ff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 163.533 34.3699L 156.005 32.3527L 156.005 36.387L 163.533 34.3699Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 34.3699L 8.28094 36.387L 8.28094 32.3527L 0.752812 34.3699Z' fill='#0000ff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 34.3699L 8.28094 36.387L 8.28094 32.3527L 0.752812 34.3699Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 38.1339L 0.250937 30.6058' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 164.035 38.1339L 164.035 30.6058' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#00f'>\n<use x='98.296808' y='118.282956' xlink:href='#g4-22'/>\n<use x='97.572093' y='118.282956' xlink:href='#g2-120'/>\n<use x='107.545009' y='118.282956' xlink:href='#g4-61'/>\n<use x='119.97049' y='108.652338' xlink:href='#g1-82'/>\n<use x='127.940618' y='111.807179' xlink:href='#g3-49'/>\n<use x='125.615991' y='122.434122' xlink:href='#g3-48'/>\n<use x='136.657928' y='118.282956' xlink:href='#g2-120'/>\n<use x='143.310015' y='118.282956' xlink:href='#g2-14'/>\n<use x='148.942971' y='118.282956' xlink:href='#g4-40'/>\n<use x='153.495296' y='118.282956' xlink:href='#g2-120'/>\n<use x='160.147384' y='118.282956' xlink:href='#g4-41'/>\n<use x='166.692207' y='118.282956' xlink:href='#g2-100'/>\n<use x='172.7749' y='118.282956' xlink:href='#g2-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 184.908 55.5655L 8.28094 55.5655' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.437 55.5655L 184.908 53.5484L 184.908 57.5827L 192.437 55.5655Z' fill='#003f00'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.437 55.5655L 184.908 53.5484L 184.908 57.5827L 192.437 55.5655Z' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 55.5655L 8.28094 57.5827L 8.28094 53.5484L 0.752812 55.5655Z' fill='#003f00'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 55.5655L 8.28094 57.5827L 8.28094 53.5484L 0.752812 55.5655Z' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 59.3296L 0.250937 51.8014' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.938 59.3296L 192.938 51.8014' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#004000'>\n<use x='147.569569' y='135.956791' xlink:href='#g2-88'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-lever-sbs.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmp6st7zvse/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.13.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='200pt' height='64.79724pt' viewBox='56.659449 68.91932 200 64.79724'>\n<defs>\n<path id='g2-22' d='M5.033126-6.659029V-7.005729H.812951V-6.659029H5.033126Z'/>\n<path id='g0-94' d='M5.676235-17.202215L2.627428-13.831176L2.924872-13.533731L5.676235-16.210733L8.427598-13.533731L8.725043-13.831176L5.676235-17.202215Z'/>\n<path id='g1-77' d='M10.855293-7.292653C10.962889-7.699128 10.9868-7.81868 11.835616-7.81868C12.062765-7.81868 12.170361-7.81868 12.170361-8.045828C12.170361-8.16538 12.086675-8.16538 11.859527-8.16538H10.424907C10.126027-8.16538 10.114072-8.153425 9.982565-7.962142L5.618929-1.06401L4.722291-7.902366C4.686426-8.16538 4.674471-8.16538 4.363636-8.16538H2.881196C2.654047-8.16538 2.546451-8.16538 2.546451-7.938232C2.546451-7.81868 2.654047-7.81868 2.833375-7.81868C3.56264-7.81868 3.56264-7.723039 3.56264-7.591532C3.56264-7.567621 3.56264-7.49589 3.514819-7.316563L1.984558-1.219427C1.841096-.645579 1.566127-.382565 .765131-.3467C.729265-.3467 .585803-.334745 .585803-.131507C.585803 0 .6934 0 .74122 0C.980324 0 1.590037-.02391 1.829141-.02391H2.402989C2.570361-.02391 2.773599 0 2.940971 0C3.024658 0 3.156164 0 3.156164-.227148C3.156164-.334745 3.036613-.3467 2.988792-.3467C2.594271-.358655 2.211706-.430386 2.211706-.860772C2.211706-.980324 2.211706-.992279 2.259527-1.159651L3.90934-7.746949H3.921295L4.913574-.32279C4.94944-.035866 4.961395 0 5.068991 0C5.200498 0 5.260274-.095641 5.32005-.203238L10.126027-7.806725H10.137983L8.404483-.884682C8.296887-.466252 8.272976-.3467 7.436115-.3467C7.208966-.3467 7.089415-.3467 7.089415-.131507C7.089415 0 7.197011 0 7.268742 0C7.47198 0 7.711083-.02391 7.914321-.02391H9.325031C9.528269-.02391 9.779328 0 9.982565 0C10.078207 0 10.209714 0 10.209714-.227148C10.209714-.3467 10.102117-.3467 9.92279-.3467C9.193524-.3467 9.193524-.442341 9.193524-.561893C9.193524-.573848 9.193524-.657534 9.217435-.753176L10.855293-7.292653Z'/>\n<path id='g1-88' d='M5.678705-4.853798L4.554919-7.47198C4.710336-7.758904 5.068991-7.806725 5.212453-7.81868C5.284184-7.81868 5.415691-7.830635 5.415691-8.033873C5.415691-8.16538 5.308095-8.16538 5.236364-8.16538C5.033126-8.16538 4.794022-8.141469 4.590785-8.141469H3.897385C3.16812-8.141469 2.642092-8.16538 2.630137-8.16538C2.534496-8.16538 2.414944-8.16538 2.414944-7.938232C2.414944-7.81868 2.52254-7.81868 2.677958-7.81868C3.371357-7.81868 3.419178-7.699128 3.53873-7.412204L4.961395-4.088667L2.367123-1.315068C1.936737-.848817 1.422665-.394521 .537983-.3467C.394521-.334745 .298879-.334745 .298879-.119552C.298879-.083686 .310834 0 .442341 0C.609714 0 .789041-.02391 .956413-.02391H1.518306C1.900872-.02391 2.319303 0 2.689913 0C2.773599 0 2.917061 0 2.917061-.215193C2.917061-.334745 2.833375-.3467 2.761644-.3467C2.52254-.37061 2.367123-.502117 2.367123-.6934C2.367123-.896638 2.510585-1.0401 2.857285-1.398755L3.921295-2.558406C4.184309-2.833375 4.817933-3.526775 5.080946-3.789788L6.336239-.848817C6.348194-.824907 6.396015-.705355 6.396015-.6934C6.396015-.585803 6.133001-.37061 5.750436-.3467C5.678705-.3467 5.547198-.334745 5.547198-.119552C5.547198 0 5.66675 0 5.726526 0C5.929763 0 6.168867-.02391 6.372105-.02391H7.687173C7.902366-.02391 8.129514 0 8.332752 0C8.416438 0 8.547945 0 8.547945-.227148C8.547945-.3467 8.428394-.3467 8.320797-.3467C7.603487-.358655 7.579577-.418431 7.376339-.860772L5.798257-4.566874L7.316563-6.192777C7.436115-6.312329 7.711083-6.611208 7.81868-6.73076C8.332752-7.268742 8.810959-7.758904 9.779328-7.81868C9.898879-7.830635 10.018431-7.830635 10.018431-8.033873C10.018431-8.16538 9.910834-8.16538 9.863014-8.16538C9.695641-8.16538 9.516314-8.141469 9.348941-8.141469H8.799004C8.416438-8.141469 7.998007-8.16538 7.627397-8.16538C7.543711-8.16538 7.400249-8.16538 7.400249-7.950187C7.400249-7.830635 7.483935-7.81868 7.555666-7.81868C7.746949-7.79477 7.950187-7.699128 7.950187-7.47198L7.938232-7.44807C7.926276-7.364384 7.902366-7.244832 7.770859-7.10137L5.678705-4.853798Z'/>\n<path id='g1-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>\n<path id='g1-120' d='M5.66675-4.877709C5.284184-4.805978 5.140722-4.519054 5.140722-4.291905C5.140722-4.004981 5.36787-3.90934 5.535243-3.90934C5.893898-3.90934 6.144956-4.220174 6.144956-4.542964C6.144956-5.045081 5.571108-5.272229 5.068991-5.272229C4.339726-5.272229 3.93325-4.554919 3.825654-4.327771C3.550685-5.224408 2.809465-5.272229 2.594271-5.272229C1.374844-5.272229 .729265-3.706102 .729265-3.443088C.729265-3.395268 .777086-3.335492 .860772-3.335492C.956413-3.335492 .980324-3.407223 1.004234-3.455044C1.41071-4.782067 2.211706-5.033126 2.558406-5.033126C3.096389-5.033126 3.203985-4.531009 3.203985-4.244085C3.203985-3.981071 3.132254-3.706102 2.988792-3.132254L2.582316-1.494396C2.402989-.777086 2.056289-.119552 1.422665-.119552C1.362889-.119552 1.06401-.119552 .812951-.274969C1.243337-.358655 1.338979-.71731 1.338979-.860772C1.338979-1.099875 1.159651-1.243337 .932503-1.243337C.645579-1.243337 .334745-.992279 .334745-.609714C.334745-.107597 .896638 .119552 1.41071 .119552C1.984558 .119552 2.391034-.334745 2.642092-.824907C2.833375-.119552 3.431133 .119552 3.873474 .119552C5.092902 .119552 5.738481-1.446575 5.738481-1.709589C5.738481-1.769365 5.69066-1.817186 5.618929-1.817186C5.511333-1.817186 5.499377-1.75741 5.463512-1.661768C5.140722-.609714 4.447323-.119552 3.90934-.119552C3.490909-.119552 3.263761-.430386 3.263761-.920548C3.263761-1.183562 3.311582-1.374844 3.502864-2.163885L3.921295-3.789788C4.100623-4.507098 4.507098-5.033126 5.057036-5.033126C5.080946-5.033126 5.415691-5.033126 5.66675-4.877709Z'/>\n</defs>\n<g id='page1'>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0 65.0402L 200.75 65.0402L 200.75 0L 0 0L 0 65.0402Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 77.326 15.1175L 192.938 15.1175' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<circle cx='77.326' cy='15.1175' fill='#ff0000' r='2.13396'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<circle cx='192.938' cy='15.1175' fill='#004000' r='4.26791'/>\n</g>\n<g fill='#f00'>\n<use x='128.580719' y='79.603434' xlink:href='#g1-109'/>\n</g>\n<g fill='#004000'>\n<use x='242.594148' y='78.524199' xlink:href='#g1-77'/>\n</g>\n<g fill='#00f'>\n<use x='214.40191' y='102.522584' xlink:href='#g0-94'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 69.296 22.825L 8.28094 22.825' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 76.8241 22.825L 69.296 20.8079L 69.296 24.8422L 76.8241 22.825Z' fill='#ff0000'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 76.8241 22.825L 69.296 20.8079L 69.296 24.8422L 76.8241 22.825Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.752813 22.825L 8.28094 24.8422L 8.28094 20.8079L 0.752813 22.825Z' fill='#ff0000'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.752813 22.825L 8.28094 24.8422L 8.28094 20.8079L 0.752813 22.825Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.250937 26.5891L 0.250937 19.061' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 77.326 26.5891L 77.326 19.061' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#f00'>\n<use x='91.980756' y='88.001628' xlink:href='#g1-120'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 156.005 34.3863L 8.28094 34.3863' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 163.533 34.3863L 156.005 32.3691L 156.005 36.4034L 163.533 34.3863Z' fill='#0000ff'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 163.533 34.3863L 156.005 32.3691L 156.005 36.4034L 163.533 34.3863Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.752812 34.3863L 8.28094 36.4034L 8.28094 32.3691L 0.752812 34.3863Z' fill='#0000ff'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.752812 34.3863L 8.28094 36.4034L 8.28094 32.3691L 0.752812 34.3863Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.250937 38.1503L 0.250937 30.6222' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 164.035 38.1503L 164.035 30.6222' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#00f'>\n<use x='135.898203' y='113.467001' xlink:href='#g2-22'/>\n<use x='135.173489' y='113.467001' xlink:href='#g1-120'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 184.908 51.7282L 8.28094 51.7282' fill='none' stroke='#004000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 192.437 51.7282L 184.908 49.711L 184.908 53.7453L 192.437 51.7282Z' fill='#004000'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 192.437 51.7282L 184.908 49.711L 184.908 53.7453L 192.437 51.7282Z' fill='none' stroke='#004000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.752812 51.7282L 8.28094 53.7453L 8.28094 49.711L 0.752812 51.7282Z' fill='#004000'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.752812 51.7282L 8.28094 53.7453L 8.28094 49.711L 0.752812 51.7282Z' fill='none' stroke='#004000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 0.250937 55.4922L 0.250937 47.9641' fill='none' stroke='#004000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 68.9193)scale(.996264)'>\n<path d='M 192.938 55.4922L 192.938 47.9641' fill='none' stroke='#004000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#004000'>\n<use x='147.569569' y='132.161043' xlink:href='#g1-88'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-lever-solo.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.9.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='199.9996pt' height='64.77pt' viewBox='56.6594 68.903 199.9996 64.77'>\n<defs>\n<path id='g2-22' d='M5.033126-6.659029V-7.005729H.812951V-6.659029H5.033126Z'/>\n<path id='g1-77' d='M10.855293-7.292653C10.962889-7.699128 10.9868-7.81868 11.835616-7.81868C12.062765-7.81868 12.170361-7.81868 12.170361-8.045828C12.170361-8.16538 12.086675-8.16538 11.859527-8.16538H10.424907C10.126027-8.16538 10.114072-8.153425 9.982565-7.962142L5.618929-1.06401L4.722291-7.902366C4.686426-8.16538 4.674471-8.16538 4.363636-8.16538H2.881196C2.654047-8.16538 2.546451-8.16538 2.546451-7.938232C2.546451-7.81868 2.654047-7.81868 2.833375-7.81868C3.56264-7.81868 3.56264-7.723039 3.56264-7.591532C3.56264-7.567621 3.56264-7.49589 3.514819-7.316563L1.984558-1.219427C1.841096-.645579 1.566127-.382565 .765131-.3467C.729265-.3467 .585803-.334745 .585803-.131507C.585803 0 .6934 0 .74122 0C.980324 0 1.590037-.02391 1.829141-.02391H2.402989C2.570361-.02391 2.773599 0 2.940971 0C3.024658 0 3.156164 0 3.156164-.227148C3.156164-.334745 3.036613-.3467 2.988792-.3467C2.594271-.358655 2.211706-.430386 2.211706-.860772C2.211706-.980324 2.211706-.992279 2.259527-1.159651L3.90934-7.746949H3.921295L4.913574-.32279C4.94944-.035866 4.961395 0 5.068991 0C5.200498 0 5.260274-.095641 5.32005-.203238L10.126027-7.806725H10.137983L8.404483-.884682C8.296887-.466252 8.272976-.3467 7.436115-.3467C7.208966-.3467 7.089415-.3467 7.089415-.131507C7.089415 0 7.197011 0 7.268742 0C7.47198 0 7.711083-.02391 7.914321-.02391H9.325031C9.528269-.02391 9.779328 0 9.982565 0C10.078207 0 10.209714 0 10.209714-.227148C10.209714-.3467 10.102117-.3467 9.92279-.3467C9.193524-.3467 9.193524-.442341 9.193524-.561893C9.193524-.573848 9.193524-.657534 9.217435-.753176L10.855293-7.292653Z'/>\n<path id='g1-88' d='M5.678705-4.853798L4.554919-7.47198C4.710336-7.758904 5.068991-7.806725 5.212453-7.81868C5.284184-7.81868 5.415691-7.830635 5.415691-8.033873C5.415691-8.16538 5.308095-8.16538 5.236364-8.16538C5.033126-8.16538 4.794022-8.141469 4.590785-8.141469H3.897385C3.16812-8.141469 2.642092-8.16538 2.630137-8.16538C2.534496-8.16538 2.414944-8.16538 2.414944-7.938232C2.414944-7.81868 2.52254-7.81868 2.677958-7.81868C3.371357-7.81868 3.419178-7.699128 3.53873-7.412204L4.961395-4.088667L2.367123-1.315068C1.936737-.848817 1.422665-.394521 .537983-.3467C.394521-.334745 .298879-.334745 .298879-.119552C.298879-.083686 .310834 0 .442341 0C.609714 0 .789041-.02391 .956413-.02391H1.518306C1.900872-.02391 2.319303 0 2.689913 0C2.773599 0 2.917061 0 2.917061-.215193C2.917061-.334745 2.833375-.3467 2.761644-.3467C2.52254-.37061 2.367123-.502117 2.367123-.6934C2.367123-.896638 2.510585-1.0401 2.857285-1.398755L3.921295-2.558406C4.184309-2.833375 4.817933-3.526775 5.080946-3.789788L6.336239-.848817C6.348194-.824907 6.396015-.705355 6.396015-.6934C6.396015-.585803 6.133001-.37061 5.750436-.3467C5.678705-.3467 5.547198-.334745 5.547198-.119552C5.547198 0 5.66675 0 5.726526 0C5.929763 0 6.168867-.02391 6.372105-.02391H7.687173C7.902366-.02391 8.129514 0 8.332752 0C8.416438 0 8.547945 0 8.547945-.227148C8.547945-.3467 8.428394-.3467 8.320797-.3467C7.603487-.358655 7.579577-.418431 7.376339-.860772L5.798257-4.566874L7.316563-6.192777C7.436115-6.312329 7.711083-6.611208 7.81868-6.73076C8.332752-7.268742 8.810959-7.758904 9.779328-7.81868C9.898879-7.830635 10.018431-7.830635 10.018431-8.033873C10.018431-8.16538 9.910834-8.16538 9.863014-8.16538C9.695641-8.16538 9.516314-8.141469 9.348941-8.141469H8.799004C8.416438-8.141469 7.998007-8.16538 7.627397-8.16538C7.543711-8.16538 7.400249-8.16538 7.400249-7.950187C7.400249-7.830635 7.483935-7.81868 7.555666-7.81868C7.746949-7.79477 7.950187-7.699128 7.950187-7.47198L7.938232-7.44807C7.926276-7.364384 7.902366-7.244832 7.770859-7.10137L5.678705-4.853798Z'/>\n<path id='g1-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>\n<path id='g1-120' d='M5.66675-4.877709C5.284184-4.805978 5.140722-4.519054 5.140722-4.291905C5.140722-4.004981 5.36787-3.90934 5.535243-3.90934C5.893898-3.90934 6.144956-4.220174 6.144956-4.542964C6.144956-5.045081 5.571108-5.272229 5.068991-5.272229C4.339726-5.272229 3.93325-4.554919 3.825654-4.327771C3.550685-5.224408 2.809465-5.272229 2.594271-5.272229C1.374844-5.272229 .729265-3.706102 .729265-3.443088C.729265-3.395268 .777086-3.335492 .860772-3.335492C.956413-3.335492 .980324-3.407223 1.004234-3.455044C1.41071-4.782067 2.211706-5.033126 2.558406-5.033126C3.096389-5.033126 3.203985-4.531009 3.203985-4.244085C3.203985-3.981071 3.132254-3.706102 2.988792-3.132254L2.582316-1.494396C2.402989-.777086 2.056289-.119552 1.422665-.119552C1.362889-.119552 1.06401-.119552 .812951-.274969C1.243337-.358655 1.338979-.71731 1.338979-.860772C1.338979-1.099875 1.159651-1.243337 .932503-1.243337C.645579-1.243337 .334745-.992279 .334745-.609714C.334745-.107597 .896638 .119552 1.41071 .119552C1.984558 .119552 2.391034-.334745 2.642092-.824907C2.833375-.119552 3.431133 .119552 3.873474 .119552C5.092902 .119552 5.738481-1.446575 5.738481-1.709589C5.738481-1.769365 5.69066-1.817186 5.618929-1.817186C5.511333-1.817186 5.499377-1.75741 5.463512-1.661768C5.140722-.609714 4.447323-.119552 3.90934-.119552C3.490909-.119552 3.263761-.430386 3.263761-.920548C3.263761-1.183562 3.311582-1.374844 3.502864-2.163885L3.921295-3.789788C4.100623-4.507098 4.507098-5.033126 5.057036-5.033126C5.080946-5.033126 5.415691-5.033126 5.66675-4.877709Z'/>\n<path id='g0-94' d='M5.676235-17.202215L2.627428-13.831176L2.924872-13.533731L5.676235-16.210733L8.427598-13.533731L8.725043-13.831176L5.676235-17.202215Z'/>\n</defs>\n<g id='page1'>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0 65.0129L 200.75 65.0129L 200.75 0L 0 0L 0 65.0129Z' fill='#ffffff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 77.326 15.1011L 192.938 15.1011' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<circle cx='77.326' cy='15.1011' fill='#ff0000' r='2.13396'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<circle cx='192.938' cy='15.1011' fill='#003f00' r='4.26791'/>\n</g>\n<g fill='#f00'>\n<use x='128.580719' y='79.583809' xlink:href='#g1-109'/>\n</g>\n<g fill='#004000'>\n<use x='242.594148' y='78.507842' xlink:href='#g1-77'/>\n</g>\n<g fill='#00f'>\n<use x='214.40191' y='102.53552' xlink:href='#g0-94'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 69.296 22.8086L 8.28094 22.8086' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 76.8241 22.8086L 69.296 20.7915L 69.296 24.8258L 76.8241 22.8086Z' fill='#ff0000'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 76.8241 22.8086L 69.296 20.7915L 69.296 24.8258L 76.8241 22.8086Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752813 22.8086L 8.28094 24.8258L 8.28094 20.7915L 0.752813 22.8086Z' fill='#ff0000'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752813 22.8086L 8.28094 24.8258L 8.28094 20.7915L 0.752813 22.8086Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 26.5727L 0.250937 19.0446' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 77.326 26.5727L 77.326 19.0446' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#f00'>\n<use x='91.980756' y='87.979814' xlink:href='#g1-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 156.005 34.3699L 8.28094 34.3699' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 163.533 34.3699L 156.005 32.3527L 156.005 36.387L 163.533 34.3699Z' fill='#0000ff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 163.533 34.3699L 156.005 32.3527L 156.005 36.387L 163.533 34.3699Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 34.3699L 8.28094 36.387L 8.28094 32.3527L 0.752812 34.3699Z' fill='#0000ff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 34.3699L 8.28094 36.387L 8.28094 32.3527L 0.752812 34.3699Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 38.1339L 0.250937 30.6058' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 164.035 38.1339L 164.035 30.6058' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#00f'>\n<use x='135.898203' y='113.423402' xlink:href='#g2-22'/>\n<use x='135.173489' y='113.423402' xlink:href='#g1-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 184.908 51.7118L 8.28094 51.7118' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.437 51.7118L 184.908 49.6946L 184.908 53.7289L 192.437 51.7118Z' fill='#003f00'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.437 51.7118L 184.908 49.6946L 184.908 53.7289L 192.437 51.7118Z' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 51.7118L 8.28094 53.7289L 8.28094 49.6946L 0.752812 51.7118Z' fill='#003f00'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 51.7118L 8.28094 53.7289L 8.28094 49.6946L 0.752812 51.7118Z' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 55.4758L 0.250937 47.9477' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.938 55.4758L 192.938 47.9477' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#004000'>\n<use x='147.569569' y='132.117429' xlink:href='#g1-88'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-lever.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.9.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='199.9996pt' height='64.77pt' viewBox='56.6594 68.903 199.9996 64.77'>\n<defs>\n<path id='g2-22' d='M5.033126-6.659029V-7.005729H.812951V-6.659029H5.033126Z'/>\n<path id='g1-77' d='M10.855293-7.292653C10.962889-7.699128 10.9868-7.81868 11.835616-7.81868C12.062765-7.81868 12.170361-7.81868 12.170361-8.045828C12.170361-8.16538 12.086675-8.16538 11.859527-8.16538H10.424907C10.126027-8.16538 10.114072-8.153425 9.982565-7.962142L5.618929-1.06401L4.722291-7.902366C4.686426-8.16538 4.674471-8.16538 4.363636-8.16538H2.881196C2.654047-8.16538 2.546451-8.16538 2.546451-7.938232C2.546451-7.81868 2.654047-7.81868 2.833375-7.81868C3.56264-7.81868 3.56264-7.723039 3.56264-7.591532C3.56264-7.567621 3.56264-7.49589 3.514819-7.316563L1.984558-1.219427C1.841096-.645579 1.566127-.382565 .765131-.3467C.729265-.3467 .585803-.334745 .585803-.131507C.585803 0 .6934 0 .74122 0C.980324 0 1.590037-.02391 1.829141-.02391H2.402989C2.570361-.02391 2.773599 0 2.940971 0C3.024658 0 3.156164 0 3.156164-.227148C3.156164-.334745 3.036613-.3467 2.988792-.3467C2.594271-.358655 2.211706-.430386 2.211706-.860772C2.211706-.980324 2.211706-.992279 2.259527-1.159651L3.90934-7.746949H3.921295L4.913574-.32279C4.94944-.035866 4.961395 0 5.068991 0C5.200498 0 5.260274-.095641 5.32005-.203238L10.126027-7.806725H10.137983L8.404483-.884682C8.296887-.466252 8.272976-.3467 7.436115-.3467C7.208966-.3467 7.089415-.3467 7.089415-.131507C7.089415 0 7.197011 0 7.268742 0C7.47198 0 7.711083-.02391 7.914321-.02391H9.325031C9.528269-.02391 9.779328 0 9.982565 0C10.078207 0 10.209714 0 10.209714-.227148C10.209714-.3467 10.102117-.3467 9.92279-.3467C9.193524-.3467 9.193524-.442341 9.193524-.561893C9.193524-.573848 9.193524-.657534 9.217435-.753176L10.855293-7.292653Z'/>\n<path id='g1-88' d='M5.678705-4.853798L4.554919-7.47198C4.710336-7.758904 5.068991-7.806725 5.212453-7.81868C5.284184-7.81868 5.415691-7.830635 5.415691-8.033873C5.415691-8.16538 5.308095-8.16538 5.236364-8.16538C5.033126-8.16538 4.794022-8.141469 4.590785-8.141469H3.897385C3.16812-8.141469 2.642092-8.16538 2.630137-8.16538C2.534496-8.16538 2.414944-8.16538 2.414944-7.938232C2.414944-7.81868 2.52254-7.81868 2.677958-7.81868C3.371357-7.81868 3.419178-7.699128 3.53873-7.412204L4.961395-4.088667L2.367123-1.315068C1.936737-.848817 1.422665-.394521 .537983-.3467C.394521-.334745 .298879-.334745 .298879-.119552C.298879-.083686 .310834 0 .442341 0C.609714 0 .789041-.02391 .956413-.02391H1.518306C1.900872-.02391 2.319303 0 2.689913 0C2.773599 0 2.917061 0 2.917061-.215193C2.917061-.334745 2.833375-.3467 2.761644-.3467C2.52254-.37061 2.367123-.502117 2.367123-.6934C2.367123-.896638 2.510585-1.0401 2.857285-1.398755L3.921295-2.558406C4.184309-2.833375 4.817933-3.526775 5.080946-3.789788L6.336239-.848817C6.348194-.824907 6.396015-.705355 6.396015-.6934C6.396015-.585803 6.133001-.37061 5.750436-.3467C5.678705-.3467 5.547198-.334745 5.547198-.119552C5.547198 0 5.66675 0 5.726526 0C5.929763 0 6.168867-.02391 6.372105-.02391H7.687173C7.902366-.02391 8.129514 0 8.332752 0C8.416438 0 8.547945 0 8.547945-.227148C8.547945-.3467 8.428394-.3467 8.320797-.3467C7.603487-.358655 7.579577-.418431 7.376339-.860772L5.798257-4.566874L7.316563-6.192777C7.436115-6.312329 7.711083-6.611208 7.81868-6.73076C8.332752-7.268742 8.810959-7.758904 9.779328-7.81868C9.898879-7.830635 10.018431-7.830635 10.018431-8.033873C10.018431-8.16538 9.910834-8.16538 9.863014-8.16538C9.695641-8.16538 9.516314-8.141469 9.348941-8.141469H8.799004C8.416438-8.141469 7.998007-8.16538 7.627397-8.16538C7.543711-8.16538 7.400249-8.16538 7.400249-7.950187C7.400249-7.830635 7.483935-7.81868 7.555666-7.81868C7.746949-7.79477 7.950187-7.699128 7.950187-7.47198L7.938232-7.44807C7.926276-7.364384 7.902366-7.244832 7.770859-7.10137L5.678705-4.853798Z'/>\n<path id='g1-109' d='M2.462765-3.502864C2.486675-3.574595 2.785554-4.172354 3.227895-4.554919C3.53873-4.841843 3.945205-5.033126 4.411457-5.033126C4.889664-5.033126 5.057036-4.674471 5.057036-4.196264C5.057036-4.124533 5.057036-3.88543 4.913574-3.323537L4.614695-2.092154C4.519054-1.733499 4.291905-.848817 4.267995-.71731C4.220174-.537983 4.148443-.227148 4.148443-.179328C4.148443-.011955 4.27995 .119552 4.459278 .119552C4.817933 .119552 4.877709-.155417 4.985305-.585803L5.702615-3.443088C5.726526-3.53873 6.348194-5.033126 7.663263-5.033126C8.141469-5.033126 8.308842-4.674471 8.308842-4.196264C8.308842-3.526775 7.84259-2.223661 7.579577-1.506351C7.47198-1.219427 7.412204-1.06401 7.412204-.848817C7.412204-.310834 7.782814 .119552 8.356663 .119552C9.468493 .119552 9.886924-1.637858 9.886924-1.709589C9.886924-1.769365 9.839103-1.817186 9.767372-1.817186C9.659776-1.817186 9.647821-1.78132 9.588045-1.578082C9.313076-.621669 8.870735-.119552 8.392528-.119552C8.272976-.119552 8.081694-.131507 8.081694-.514072C8.081694-.824907 8.225156-1.207472 8.272976-1.338979C8.488169-1.912827 9.026152-3.323537 9.026152-4.016936C9.026152-4.734247 8.607721-5.272229 7.699128-5.272229C6.898132-5.272229 6.252553-4.817933 5.774346-4.112578C5.738481-4.758157 5.34396-5.272229 4.447323-5.272229C3.383313-5.272229 2.82142-4.519054 2.606227-4.220174C2.570361-4.901619 2.080199-5.272229 1.554172-5.272229C1.207472-5.272229 .932503-5.104857 .705355-4.65056C.490162-4.220174 .32279-3.490909 .32279-3.443088S.37061-3.335492 .454296-3.335492C.549938-3.335492 .561893-3.347447 .633624-3.622416C.812951-4.327771 1.0401-5.033126 1.518306-5.033126C1.793275-5.033126 1.888917-4.841843 1.888917-4.483188C1.888917-4.220174 1.769365-3.753923 1.685679-3.383313L1.350934-2.092154C1.303113-1.865006 1.171606-1.327024 1.111831-1.111831C1.028144-.800996 .896638-.239103 .896638-.179328C.896638-.011955 1.028144 .119552 1.207472 .119552C1.350934 .119552 1.518306 .047821 1.613948-.131507C1.637858-.191283 1.745455-.609714 1.80523-.848817L2.068244-1.924782L2.462765-3.502864Z'/>\n<path id='g1-120' d='M5.66675-4.877709C5.284184-4.805978 5.140722-4.519054 5.140722-4.291905C5.140722-4.004981 5.36787-3.90934 5.535243-3.90934C5.893898-3.90934 6.144956-4.220174 6.144956-4.542964C6.144956-5.045081 5.571108-5.272229 5.068991-5.272229C4.339726-5.272229 3.93325-4.554919 3.825654-4.327771C3.550685-5.224408 2.809465-5.272229 2.594271-5.272229C1.374844-5.272229 .729265-3.706102 .729265-3.443088C.729265-3.395268 .777086-3.335492 .860772-3.335492C.956413-3.335492 .980324-3.407223 1.004234-3.455044C1.41071-4.782067 2.211706-5.033126 2.558406-5.033126C3.096389-5.033126 3.203985-4.531009 3.203985-4.244085C3.203985-3.981071 3.132254-3.706102 2.988792-3.132254L2.582316-1.494396C2.402989-.777086 2.056289-.119552 1.422665-.119552C1.362889-.119552 1.06401-.119552 .812951-.274969C1.243337-.358655 1.338979-.71731 1.338979-.860772C1.338979-1.099875 1.159651-1.243337 .932503-1.243337C.645579-1.243337 .334745-.992279 .334745-.609714C.334745-.107597 .896638 .119552 1.41071 .119552C1.984558 .119552 2.391034-.334745 2.642092-.824907C2.833375-.119552 3.431133 .119552 3.873474 .119552C5.092902 .119552 5.738481-1.446575 5.738481-1.709589C5.738481-1.769365 5.69066-1.817186 5.618929-1.817186C5.511333-1.817186 5.499377-1.75741 5.463512-1.661768C5.140722-.609714 4.447323-.119552 3.90934-.119552C3.490909-.119552 3.263761-.430386 3.263761-.920548C3.263761-1.183562 3.311582-1.374844 3.502864-2.163885L3.921295-3.789788C4.100623-4.507098 4.507098-5.033126 5.057036-5.033126C5.080946-5.033126 5.415691-5.033126 5.66675-4.877709Z'/>\n<path id='g0-94' d='M5.676235-17.202215L2.627428-13.831176L2.924872-13.533731L5.676235-16.210733L8.427598-13.533731L8.725043-13.831176L5.676235-17.202215Z'/>\n</defs>\n<g id='page1'>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0 65.0129L 200.75 65.0129L 200.75 0L 0 0L 0 65.0129Z' fill='#ffffff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 77.326 15.1011L 192.938 15.1011' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<circle cx='77.326' cy='15.1011' fill='#ff0000' r='2.13396'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<circle cx='192.938' cy='15.1011' fill='#003f00' r='4.26791'/>\n</g>\n<g fill='#f00'>\n<use x='128.580719' y='79.583809' xlink:href='#g1-109'/>\n</g>\n<g fill='#004000'>\n<use x='242.594148' y='78.507842' xlink:href='#g1-77'/>\n</g>\n<g fill='#00f'>\n<use x='214.40191' y='102.53552' xlink:href='#g0-94'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 69.296 22.8086L 8.28094 22.8086' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 76.8241 22.8086L 69.296 20.7915L 69.296 24.8258L 76.8241 22.8086Z' fill='#ff0000'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 76.8241 22.8086L 69.296 20.7915L 69.296 24.8258L 76.8241 22.8086Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752813 22.8086L 8.28094 24.8258L 8.28094 20.7915L 0.752813 22.8086Z' fill='#ff0000'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752813 22.8086L 8.28094 24.8258L 8.28094 20.7915L 0.752813 22.8086Z' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 26.5727L 0.250937 19.0446' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 77.326 26.5727L 77.326 19.0446' fill='none' stroke='#ff0000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#f00'>\n<use x='91.980756' y='87.979814' xlink:href='#g1-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 156.005 34.3699L 8.28094 34.3699' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 163.533 34.3699L 156.005 32.3527L 156.005 36.387L 163.533 34.3699Z' fill='#0000ff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 163.533 34.3699L 156.005 32.3527L 156.005 36.387L 163.533 34.3699Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 34.3699L 8.28094 36.387L 8.28094 32.3527L 0.752812 34.3699Z' fill='#0000ff'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 34.3699L 8.28094 36.387L 8.28094 32.3527L 0.752812 34.3699Z' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 38.1339L 0.250937 30.6058' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 164.035 38.1339L 164.035 30.6058' fill='none' stroke='#0000ff' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#00f'>\n<use x='135.898203' y='113.423402' xlink:href='#g2-22'/>\n<use x='135.173489' y='113.423402' xlink:href='#g1-120'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 184.908 51.7118L 8.28094 51.7118' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.437 51.7118L 184.908 49.6946L 184.908 53.7289L 192.437 51.7118Z' fill='#003f00'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.437 51.7118L 184.908 49.6946L 184.908 53.7289L 192.437 51.7118Z' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 51.7118L 8.28094 53.7289L 8.28094 49.6946L 0.752812 51.7118Z' fill='#003f00'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.752812 51.7118L 8.28094 53.7289L 8.28094 49.6946L 0.752812 51.7118Z' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 0.250937 55.4758L 0.250937 47.9477' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='matrix(0.996264 0 0 0.996264 56.6594 68.903)'>\n<path d='M 192.938 55.4758L 192.938 47.9477' fill='none' stroke='#003f00' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g fill='#004000'>\n<use x='147.569569' y='132.117429' xlink:href='#g1-88'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-surface.html",
    "content": "<!DOCTYPE html>\n\n<!-- Use the following line to embed this file within another web page:\n\n<iframe src=\"workspace_1.html\" width=\"206\" height=\"295\" frameborder=\"0\"></iframe>\n\n-->\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"user-scalable=no\"/>\n<style>\nbody {margin: 0;}\n</style>\n\n<script\nsrc=\"https://vectorgraphics.github.io/asymptote/base/webgl/asygl-1.00.js\">\n</script>\n\n<script>\n\ncanvasWidth=206;\ncanvasHeight=295;\nabsolute=false;\n\nb=[-102.9226,-147.3891,-1782.07];\nB=[102.9226,147.3891,-1342.983];\northographic=true;\nangle=0;\nZoom0=1;\nviewportmargin=[0.5,0.5];\nzoomFactor=1.05;\nzoomPinchFactor=10;\nzoomPinchCap=100;\nzoomStep=0.1;\nshiftHoldDistance=20;\nshiftWaitTime=200;\nvibrateTime=25;\n\nLights=[new Light(\ndirection=[0.6666667,0.6666667,0.3333333],\ncolor=[1,1,1]),\n];\n\nBackground=[1,1,1,1];\nMaterials=[];\n\nMaterials.push(new Material(\ndiffuse=[0.4943537,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[82.46176,-84.83226,-1634.826],\n[69.21756,-67.23685,-1662.136],\n[34.60878,-50.49134,-1680.215],\n[-1.421085e-14,-40.67884,-1676.131],\n[86.38851,-85.76357,-1636.975],\n[72.51363,-67.4988,-1665.656],\n[36.25682,-50.20531,-1684.699],\n[-7.105427e-15,-40.23692,-1680.551],\n[90.31526,-86.62027,-1639.093],\n[75.80971,-67.69018,-1669.146],\n[37.90485,-49.85471,-1689.157],\n[-2.131628e-14,-39.73791,-1684.947],\n[94.24202,-87.41602,-1641.186],\n[79.10578,-67.82392,-1672.613],\n[39.55289,-49.45136,-1693.593],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,0,[-2.842171e-14,-87.41602,-1689.871],[94.24202,-39.19223,-1634.826],[\n[181,0,255,255],\n[207,0,255,255],\n[68,0,255,255],\n[48,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.401114,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[70.68151,-81.80085,-1628.279],\n[59.32933,-66.22641,-1651.483],\n[29.66467,-51.14387,-1666.675],\n[-1.421085e-14,-41.82284,-1662.796],\n[74.60826,-82.89503,-1630.496],\n[62.62541,-66.6424,-1655.067],\n[31.3127,-50.99881,-1671.219],\n[-1.421085e-14,-41.50558,-1667.268],\n[78.53501,-83.90095,-1632.677],\n[65.92148,-66.9749,-1658.616],\n[32.96074,-50.77736,-1675.73],\n[-1.421085e-14,-41.12076,-1671.711],\n[82.46176,-84.83226,-1634.826],\n[69.21756,-67.23685,-1662.136],\n[34.60878,-50.49134,-1680.215],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,1,[-2.842171e-14,-87.41602,-1689.871],[94.24202,-39.19223,-1628.279],[\n[153,0,255,255],\n[181,0,255,255],\n[48,0,255,255],\n[27,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1146422,0.2820464,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-1.421085e-14,-40.67884,-1676.131],\n[-34.60878,-30.86634,-1672.048],\n[-69.21756,-27.98686,-1645.802],\n[-82.46176,-27.45114,-1610.946],\n[-7.105427e-15,-40.23692,-1680.551],\n[-36.25682,-30.26853,-1676.402],\n[-72.51363,-27.62524,-1649.062],\n[-86.38851,-27.47083,-1612.716],\n[-2.131628e-14,-39.73791,-1684.947],\n[-37.90485,-29.6211,-1680.737],\n[-75.80971,-27.22294,-1652.306],\n[-90.31526,-27.45961,-1614.473],\n[-2.842171e-14,-39.19223,-1689.323],\n[-39.55289,-28.93311,-1685.054],\n[-79.10578,-26.78743,-1655.536],\n[-94.24202,-27.42315,-1616.22]\n],0,2,[-94.24202,-87.41602,-1689.871],[94.24202,-27.32135,-1610.946],[\n[48,0,255,255],\n[68,0,255,255],\n[0,139,255,255],\n[0,149,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.7820464,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[63.1135,24.24896,-1620.795],\n[38.6414,19.77446,-1649.164],\n[-2.182439,9.017438,-1662.436],\n[-34.15678,-8.891789,-1655.544],\n[66.11891,25.40367,-1623.57],\n[40.48147,21.15645,-1653.106],\n[-2.286364,10.32752,-1666.827],\n[-35.78329,-8.027699,-1659.437],\n[69.12431,26.55838,-1626.345],\n[42.32153,22.549,-1657.044],\n[-2.39029,11.65875,-1671.209],\n[-37.40981,-7.132706,-1663.318],\n[72.12972,27.71309,-1629.119],\n[44.1616,23.95019,-1660.979],\n[-2.494216,13.00725,-1675.585],\n[-39.03632,-6.212466,-1667.188]\n],0,3,[-94.24202,-87.41602,-1689.871],[94.24202,27.71309,-1610.946],[\n[0,255,127,255],\n[0,255,127,255],\n[0,139,255,255],\n[0,149,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.2976881,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[58.90126,-78.18906,-1621.491],\n[49.44111,-64.66705,-1640.601],\n[24.72056,-51.29406,-1652.927],\n[-1.776357e-14,-42.52263,-1649.277],\n[62.82801,-79.52423,-1623.808],\n[52.73719,-65.31097,-1644.28],\n[26.36859,-51.35759,-1657.557],\n[-1.421085e-14,-42.38982,-1653.825],\n[66.75476,-80.70667,-1626.062],\n[56.03326,-65.81043,-1647.899],\n[28.01663,-51.28893,-1662.132],\n[-1.421085e-14,-42.1401,-1658.325],\n[70.68151,-81.80085,-1628.279],\n[59.32933,-66.22641,-1651.483],\n[29.66467,-51.14387,-1666.675],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,4,[-94.24202,-87.41602,-1689.871],[94.24202,27.71309,-1610.946],[\n[121,0,255,255],\n[153,0,255,255],\n[27,0,255,255],\n[2,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.07420266,0.3039066,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-1.421085e-14,-41.82284,-1662.796],\n[-29.66467,-32.50181,-1658.917],\n[-59.32933,-28.94229,-1635.967],\n[-70.68151,-27.29371,-1605.596],\n[-1.421085e-14,-41.50558,-1667.268],\n[-31.3127,-32.01234,-1663.317],\n[-62.62541,-28.66944,-1639.264],\n[-74.60826,-27.38086,-1607.394],\n[-1.421085e-14,-41.12076,-1671.711],\n[-32.96074,-31.46415,-1667.693],\n[-65.92148,-28.34849,-1642.542],\n[-78.53501,-27.43145,-1609.177],\n[-1.421085e-14,-40.67884,-1676.131],\n[-34.60878,-30.86634,-1672.048],\n[-69.21756,-27.98686,-1645.802],\n[-82.46176,-27.45114,-1610.946]\n],0,5,[-94.24202,-87.41602,-1689.871],[94.24202,27.71309,-1605.596],[\n[27,0,255,255],\n[48,0,255,255],\n[0,149,255,255],\n[0,161,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8039066,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[54.09729,20.78482,-1612.471],\n[33.1212,15.66215,-1637.323],\n[-1.870662,5.154461,-1649.235],\n[-29.27724,-11.38569,-1643.822],\n[57.10269,21.93953,-1615.246],\n[34.96127,17.02107,-1641.275],\n[-1.974587,6.418403,-1653.645],\n[-30.90375,-10.58907,-1647.744],\n[60.1081,23.09425,-1618.021],\n[36.80133,18.39248,-1645.222],\n[-2.078513,7.707351,-1658.045],\n[-32.53027,-9.755879,-1651.65],\n[63.1135,24.24896,-1620.795],\n[38.6414,19.77446,-1649.164],\n[-2.182439,9.017438,-1662.436],\n[-34.15678,-8.891789,-1655.544]\n],0,6,[-94.24202,-87.41602,-1689.871],[94.24202,27.71309,-1605.596],[\n[0,255,127,255],\n[0,255,127,255],\n[0,149,255,255],\n[0,161,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.02937586,0.3281703,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-1.776357e-14,-42.52263,-1649.277],\n[-24.72056,-33.75121,-1645.626],\n[-49.44111,-29.58135,-1626],\n[-58.90126,-26.89587,-1600.145],\n[-1.421085e-14,-42.38982,-1653.825],\n[-26.36859,-33.42204,-1650.093],\n[-52.73719,-29.43987,-1629.352],\n[-62.82801,-27.08285,-1601.984],\n[-1.421085e-14,-42.1401,-1658.325],\n[-28.01663,-32.99128,-1654.517],\n[-56.03326,-29.21513,-1632.669],\n[-66.75476,-27.20656,-1603.798],\n[-1.421085e-14,-41.82284,-1662.796],\n[-29.66467,-32.50181,-1658.917],\n[-59.32933,-28.94229,-1635.967],\n[-70.68151,-27.29371,-1605.596]\n],0,7,[-94.24202,-87.41602,-1689.871],[94.24202,27.71309,-1600.145],[\n[2,0,255,255],\n[27,0,255,255],\n[0,161,255,255],\n[0,174,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.204868,0.02422555,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[47.12101,-73.78713,-1614.374],\n[39.55289,-62.36039,-1629.408],\n[19.77644,-50.76035,-1638.894],\n[-1.421085e-14,-42.61768,-1635.505],\n[51.04776,-75.36597,-1616.792],\n[42.84896,-63.23477,-1633.183],\n[21.42448,-51.03479,-1643.612],\n[-1.065814e-14,-42.67136,-1640.131],\n[54.97451,-76.85389,-1619.173],\n[46.14504,-64.02314,-1636.922],\n[23.07252,-51.23052,-1648.297],\n[-1.776357e-14,-42.65545,-1644.728],\n[58.90126,-78.18906,-1621.491],\n[49.44111,-64.66705,-1640.601],\n[24.72056,-51.29406,-1652.927],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,8,[-94.24202,-87.41602,-1689.871],[94.24202,27.71309,-1600.145],[\n[85,0,255,255],\n[121,0,255,255],\n[2,0,255,255],\n[0,24,255,255],\n]));\n\nP.push(new BezierPatch([\n[-34.15678,-8.891789,-1655.544],\n[-66.13112,-26.80102,-1648.651],\n[-89.25597,-51.86245,-1621.595],\n[-89.25597,-74.97205,-1593.726],\n[-35.78329,-8.027699,-1659.437],\n[-69.28022,-26.38292,-1652.048],\n[-93.50625,-52.26445,-1623.547],\n[-93.50625,-76.16314,-1594.222],\n[-37.40981,-7.132706,-1663.318],\n[-72.42933,-25.92416,-1655.427],\n[-97.75654,-52.61683,-1625.479],\n[-97.75654,-77.29713,-1594.694],\n[-39.03632,-6.212466,-1667.188],\n[-75.57843,-25.43218,-1658.792],\n[-102.0068,-52.92866,-1627.394],\n[-102.0068,-78.38447,-1595.146]\n],0,2,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1593.726],[\n[0,149,255,255],\n[0,139,255,255],\n[68,0,255,255],\n[48,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8281703,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[45.08107,17.32068,-1604.147],\n[27.601,11.63207,-1625.448],\n[-1.558885,1.455926,-1635.965],\n[-24.3977,-13.6392,-1632],\n[48.08648,18.4754,-1606.922],\n[29.44107,12.95684,-1629.414],\n[-1.66281,2.651586,-1640.404],\n[-26.02421,-12.94239,-1635.963],\n[51.09188,19.63011,-1609.696],\n[31.28113,14.30324,-1633.371],\n[-1.766736,3.89052,-1644.824],\n[-27.65073,-12.18232,-1639.9],\n[54.09729,20.78482,-1612.471],\n[33.1212,15.66215,-1637.323],\n[-1.870662,5.154461,-1649.235],\n[-29.27724,-11.38569,-1643.822]\n],0,9,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1593.726],[\n[0,255,127,255],\n[0,255,127,255],\n[0,161,255,255],\n[0,174,255,255],\n]));\n\nP.push(new BezierPatch([\n[-29.27724,-11.38569,-1643.822],\n[-56.68382,-27.92585,-1638.409],\n[-76.50512,-50.49847,-1615.672],\n[-76.50512,-71.21702,-1592.163],\n[-30.90375,-10.58907,-1647.744],\n[-59.83292,-27.59653,-1641.842],\n[-80.7554,-51.00881,-1617.67],\n[-80.7554,-72.53276,-1592.711],\n[-32.53027,-9.755879,-1651.65],\n[-62.98202,-27.21911,-1645.255],\n[-85.00569,-51.46044,-1619.643],\n[-85.00569,-73.78095,-1593.23],\n[-34.15678,-8.891789,-1655.544],\n[-66.13112,-26.80102,-1648.651],\n[-89.25597,-51.86245,-1621.595],\n[-89.25597,-74.97205,-1593.726]\n],0,5,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1592.163],[\n[0,161,255,255],\n[0,149,255,255],\n[48,0,255,255],\n[27,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.002861285,0.3799023,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-1.421085e-14,-42.61768,-1635.505],\n[-19.77644,-34.47501,-1632.117],\n[-39.55289,-29.78971,-1615.854],\n[-47.12101,-26.17075,-1594.558],\n[-1.065814e-14,-42.67136,-1640.131],\n[-21.42448,-34.30793,-1636.651],\n[-42.84896,-29.78105,-1619.261],\n[-51.04776,-26.45866,-1596.44],\n[-1.776357e-14,-42.65545,-1644.728],\n[-23.07252,-34.08037,-1641.16],\n[-46.14504,-29.72283,-1622.648],\n[-54.97451,-26.7089,-1598.305],\n[-1.776357e-14,-42.52263,-1649.277],\n[-24.72056,-33.75121,-1645.626],\n[-49.44111,-29.58135,-1626],\n[-58.90126,-26.89587,-1600.145]\n],0,10,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1592.163],[\n[0,24,255,255],\n[2,0,255,255],\n[0,174,255,255],\n[0,189,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1247139,0.08053564,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[35.34076,-68.22912,-1606.776],\n[29.66467,-58.96032,-1617.761],\n[14.83233,-49.226,-1624.444],\n[-7.105427e-15,-41.8279,-1621.366],\n[39.26751,-70.5385,-1609.498],\n[32.96074,-60.52564,-1621.823],\n[16.48037,-50.13276,-1629.425],\n[-7.105427e-15,-42.44071,-1626.224],\n[43.19426,-72.20828,-1611.955],\n[36.25682,-61.48602,-1625.634],\n[18.12841,-50.48591,-1634.176],\n[-7.105427e-15,-42.56399,-1630.879],\n[47.12101,-73.78713,-1614.374],\n[39.55289,-62.36039,-1629.408],\n[19.77644,-50.76035,-1638.894],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,11,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1592.163],[\n[42,0,255,255],\n[85,0,255,255],\n[0,24,255,255],\n[0,57,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8556768,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[36.06486,13.85655,-1595.823],\n[22.0808,7.713913,-1613.526],\n[-1.247108,-2.018738,-1622.602],\n[-19.51816,-15.56541,-1620.042],\n[39.07026,15.01126,-1598.598],\n[23.92087,9.004164,-1617.506],\n[-1.351033,-0.8921183,-1627.069],\n[-21.14467,-14.96954,-1624.047],\n[42.07567,16.16597,-1601.372],\n[25.76093,10.3073,-1621.481],\n[-1.454959,0.2602664,-1631.526],\n[-22.77119,-14.336,-1628.037],\n[45.08107,17.32068,-1604.147],\n[27.601,11.63207,-1625.448],\n[-1.558885,1.455926,-1635.965],\n[-24.3977,-13.6392,-1632]\n],0,12,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1592.163],[\n[0,255,127,255],\n[0,255,127,255],\n[0,174,255,255],\n[0,189,255,255],\n]));\n\nP.push(new BezierPatch([\n[-24.3977,-13.6392,-1632],\n[-47.23652,-28.73432,-1628.035],\n[-63.75426,-48.74842,-1609.589],\n[-63.75426,-67.01778,-1590.416],\n[-26.02421,-12.94239,-1635.963],\n[-50.38562,-28.53637,-1631.523],\n[-68.00455,-49.41907,-1611.653],\n[-68.00455,-68.51797,-1591.04],\n[-27.65073,-12.18232,-1639.9],\n[-53.53472,-28.25516,-1634.976],\n[-72.25483,-49.98812,-1613.675],\n[-72.25483,-69.90127,-1591.616],\n[-29.27724,-11.38569,-1643.822],\n[-56.68382,-27.92585,-1638.409],\n[-76.50512,-50.49847,-1615.672],\n[-76.50512,-71.21702,-1592.163]\n],0,7,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1590.416],[\n[0,174,255,255],\n[0,161,255,255],\n[27,0,255,255],\n[2,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.4682588,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-7.105427e-15,-41.8279,-1621.366],\n[-14.83233,-34.42979,-1618.287],\n[-29.66467,-29.36789,-1605.446],\n[-35.34076,-24.96677,-1588.772],\n[-7.105427e-15,-42.44071,-1626.224],\n[-16.48037,-34.74867,-1623.023],\n[-32.96074,-29.75745,-1609.019],\n[-39.26751,-25.55727,-1590.779],\n[-7.105427e-15,-42.56399,-1630.879],\n[-18.12841,-34.64208,-1627.583],\n[-36.25682,-29.79837,-1612.447],\n[-43.19426,-25.88285,-1592.676],\n[-1.421085e-14,-42.61768,-1635.505],\n[-19.77644,-34.47501,-1632.117],\n[-39.55289,-29.78971,-1615.854],\n[-47.12101,-26.17075,-1594.558]\n],0,13,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1588.772],[\n[0,57,255,255],\n[0,24,255,255],\n[0,189,255,255],\n[0,207,255,255],\n]));\n\nP.push(new BezierPatch([\n[-19.51816,-15.56541,-1620.042],\n[-37.78921,-29.11208,-1617.482],\n[-51.00341,-46.47278,-1603.287],\n[-51.00341,-62.21379,-1588.417],\n[-21.14467,-14.96954,-1624.047],\n[-40.93831,-29.04696,-1621.025],\n[-55.2537,-47.30552,-1605.418],\n[-55.2537,-63.90049,-1589.119],\n[-22.77119,-14.336,-1628.037],\n[-44.08742,-28.93227,-1624.548],\n[-59.50398,-48.07777,-1607.525],\n[-59.50398,-65.51758,-1589.791],\n[-24.3977,-13.6392,-1632],\n[-47.23652,-28.73432,-1628.035],\n[-63.75426,-48.74842,-1609.589],\n[-63.75426,-67.01778,-1590.416]\n],0,10,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1588.417],[\n[0,189,255,255],\n[0,174,255,255],\n[2,0,255,255],\n[0,24,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.04139325,0.1641615,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[23.5605,-60.76738,-1598.385],\n[19.77644,-53.75973,-1605.364],\n[9.888222,-46.0439,-1609.309],\n[-7.105427e-15,-39.58106,-1606.62],\n[27.48725,-62.97074,-1601.064],\n[23.07252,-55.22477,-1609.384],\n[11.53626,-46.85889,-1614.252],\n[-7.105427e-15,-40.11273,-1611.445],\n[31.41401,-65.91973,-1604.053],\n[26.36859,-57.39501,-1613.698],\n[13.1843,-48.31925,-1619.463],\n[-7.105427e-15,-41.21508,-1616.507],\n[35.34076,-68.22912,-1606.776],\n[29.66467,-58.96032,-1617.761],\n[14.83233,-49.226,-1624.444],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,14,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1588.417],[\n[0,11,255,255],\n[42,0,255,255],\n[0,57,255,255],\n[0,98,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8877232,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[27.04864,10.39241,-1587.499],\n[16.5606,3.959538,-1601.536],\n[-0.9353308,-5.165848,-1609.103],\n[-14.63862,-17.01276,-1607.885],\n[30.05405,11.54712,-1590.273],\n[18.40067,5.146295,-1605.559],\n[-1.039256,-4.246214,-1613.656],\n[-16.26513,-16.71949,-1612.016],\n[33.05945,12.70184,-1593.048],\n[20.24073,6.423663,-1609.545],\n[-1.143182,-3.145358,-1618.135],\n[-17.89165,-16.16128,-1616.037],\n[36.06486,13.85655,-1595.823],\n[22.0808,7.713913,-1613.526],\n[-1.247108,-2.018738,-1622.602],\n[-19.51816,-15.56541,-1620.042]\n],0,15,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1587.499],[\n[0,255,127,255],\n[0,255,127,255],\n[0,189,255,255],\n[0,207,255,255],\n]));\n\nP.push(new BezierPatch([\n[-14.63862,-17.01276,-1607.885],\n[-28.34191,-28.85968,-1606.667],\n[-38.25256,-43.42812,-1596.664],\n[-38.25256,-56.52498,-1586.049],\n[-16.26513,-16.71949,-1612.016],\n[-31.49101,-29.19277,-1610.376],\n[-42.50284,-44.74681,-1598.998],\n[-42.50284,-58.77081,-1586.984],\n[-17.89165,-16.16128,-1616.037],\n[-34.64011,-29.17721,-1613.939],\n[-46.75313,-45.64004,-1601.155],\n[-46.75313,-60.5271,-1587.715],\n[-19.51816,-15.56541,-1620.042],\n[-37.78921,-29.11208,-1617.482],\n[-51.00341,-46.47278,-1603.287],\n[-51.00341,-62.21379,-1588.417]\n],0,13,[-102.0068,-87.41602,-1689.871],[94.24202,27.71309,-1586.049],[\n[0,207,255,255],\n[0,189,255,255],\n[0,24,255,255],\n[0,57,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.1474897,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[34.15678,129.6385,-1597.894],\n[2.182439,140.0376,-1607.912],\n[-38.6414,139.6779,-1599.266],\n[-63.1135,130.2754,-1576.672],\n[35.78329,132.7034,-1600.872],\n[2.286364,143.4292,-1611.436],\n[-40.48147,142.9648,-1602.415],\n[-66.11891,133.1146,-1578.746],\n[37.40981,135.6938,-1603.88],\n[2.39029,146.7422,-1614.994],\n[-42.32153,146.171,-1605.599],\n[-69.12431,135.873,-1580.853],\n[39.03632,138.6231,-1606.914],\n[2.494216,149.9909,-1618.578],\n[-44.1616,149.3112,-1608.809],\n[-72.12972,138.5655,-1582.988]\n],0,16,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1576.672],[\n[255,74,0,255],\n[255,48,0,255],\n[255,0,0,255],\n[255,27,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.5797727,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-7.105427e-15,-39.58106,-1606.62],\n[-9.888222,-33.11822,-1603.93],\n[-19.77644,-27.90837,-1594.606],\n[-23.5605,-22.97423,-1582.657],\n[-7.105427e-15,-40.11273,-1611.445],\n[-11.53626,-33.36657,-1608.637],\n[-23.07252,-28.24013,-1598.155],\n[-27.48725,-23.52082,-1584.647],\n[-7.105427e-15,-41.21508,-1616.507],\n[-13.1843,-34.11091,-1613.551],\n[-26.36859,-28.97834,-1601.873],\n[-31.41401,-24.37626,-1586.764],\n[-7.105427e-15,-41.8279,-1621.366],\n[-14.83233,-34.42979,-1618.287],\n[-29.66467,-29.36789,-1605.446],\n[-35.34076,-24.96677,-1588.772]\n],0,17,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1576.672],[\n[0,98,255,255],\n[0,57,255,255],\n[0,207,255,255],\n[0,229,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.3481612,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[11.78025,-49.33234,-1588.341],\n[9.888222,-44.80126,-1591.403],\n[4.944111,-39.42277,-1592.743],\n[-3.552714e-15,-34.2932,-1590.608],\n[15.707,-57.10629,-1593.338],\n[13.1843,-51.53488,-1597.616],\n[6.592148,-45.05931,-1599.692],\n[-3.552714e-15,-39.08841,-1597.207],\n[19.63375,-58.56402,-1595.706],\n[16.48037,-52.2947,-1601.343],\n[8.240185,-45.22892,-1604.366],\n[-5.329071e-15,-39.0494,-1601.795],\n[23.5605,-60.76738,-1598.385],\n[19.77644,-53.75973,-1605.364],\n[9.888222,-46.0439,-1609.309],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,18,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1576.672],[\n[0,88,255,255],\n[0,11,255,255],\n[0,98,255,255],\n[0,157,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.9268656,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[18.03243,6.928274,-1579.174],\n[11.0404,0.4748556,-1589.433],\n[-0.6235539,-7.773571,-1595.379],\n[-9.75908,-17.67156,-1595.399],\n[21.03783,8.082986,-1581.949],\n[12.88047,1.676633,-1593.451],\n[-0.7274795,-6.823896,-1599.92],\n[-11.38559,-17.33437,-1599.512],\n[24.04324,9.237698,-1584.724],\n[14.72053,2.77278,-1597.512],\n[-0.8314052,-6.085483,-1604.549],\n[-13.01211,-17.30603,-1603.754],\n[27.04864,10.39241,-1587.499],\n[16.5606,3.959538,-1601.536],\n[-0.9353308,-5.165848,-1609.103],\n[-14.63862,-17.01276,-1607.885]\n],0,19,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1576.672],[\n[0,255,127,255],\n[0,255,127,255],\n[0,207,255,255],\n[0,229,255,255],\n]));\n\nP.push(new BezierPatch([\n[-9.75908,-17.67156,-1595.399],\n[-18.89461,-27.56955,-1595.42],\n[-25.50171,-39.11711,-1589.515],\n[-25.50171,-49.37912,-1583.075],\n[-11.38559,-17.33437,-1599.512],\n[-22.04371,-27.84485,-1599.105],\n[-29.75199,-40.36527,-1591.82],\n[-29.75199,-51.5438,-1583.976],\n[-13.01211,-17.30603,-1603.754],\n[-25.19281,-28.52659,-1602.958],\n[-34.00227,-42.10942,-1594.33],\n[-34.00227,-54.27916,-1585.115],\n[-14.63862,-17.01276,-1607.885],\n[-28.34191,-28.85968,-1606.667],\n[-38.25256,-43.42812,-1596.664],\n[-38.25256,-56.52498,-1586.049]\n],0,17,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1576.672],[\n[0,229,255,255],\n[0,207,255,255],\n[0,57,255,255],\n[0,98,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.2574393,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[29.27724,120.2062,-1589.06],\n[1.870662,129.6123,-1597.441],\n[-33.1212,129.5602,-1589.924],\n[-54.09729,121.5009,-1570.558],\n[30.90375,123.434,-1591.969],\n[1.974587,133.1757,-1600.895],\n[-34.96127,133.0233,-1593],\n[-57.10269,124.5163,-1572.558],\n[32.53027,126.5735,-1594.916],\n[2.078513,136.6459,-1604.387],\n[-36.80133,136.391,-1596.116],\n[-60.1081,127.4363,-1574.598],\n[34.15678,129.6385,-1597.894],\n[2.182439,140.0376,-1607.912],\n[-38.6414,139.6779,-1599.266],\n[-63.1135,130.2754,-1576.672]\n],0,20,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1570.558],[\n[255,102,0,255],\n[255,74,0,255],\n[255,27,0,255],\n[255,58,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.7249352,0.9945827,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-3.552714e-15,-34.2932,-1590.608],\n[-4.944111,-29.16364,-1588.474],\n[-9.888222,-24.28301,-1582.864],\n[-11.78025,-19.33591,-1575.858],\n[-3.552714e-15,-39.08841,-1597.207],\n[-6.592148,-33.11751,-1594.723],\n[-13.1843,-27.65128,-1587.677],\n[-15.707,-22.18991,-1578.807],\n[-5.329071e-15,-39.0494,-1601.795],\n[-8.240185,-32.86987,-1599.223],\n[-16.48037,-27.5766,-1591.057],\n[-19.63375,-22.42764,-1580.668],\n[-7.105427e-15,-39.58106,-1606.62],\n[-9.888222,-33.11822,-1603.93],\n[-19.77644,-27.90837,-1594.606],\n[-23.5605,-22.97423,-1582.657]\n],0,21,[-102.0068,-87.41602,-1689.871],[94.24202,146.8874,-1570.558],[\n[0,157,255,255],\n[0,98,255,255],\n[0,229,255,255],\n[0,255,250,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.7425607,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[54.09729,-121.5009,-1554.494],\n[75.07337,-113.4416,-1573.86],\n[82.03369,-97.37529,-1605.075],\n[70.68151,-81.80085,-1628.279],\n[57.10269,-124.5163,-1552.494],\n[79.24412,-116.0093,-1572.936],\n[86.59112,-99.14766,-1605.926],\n[74.60826,-82.89503,-1630.496],\n[60.1081,-127.4363,-1550.454],\n[83.41486,-118.4815,-1571.972],\n[91.14854,-100.827,-1606.737],\n[78.53501,-83.90095,-1632.677],\n[63.1135,-130.2754,-1548.38],\n[87.5856,-120.873,-1570.974],\n[95.70597,-102.4277,-1607.516],\n[82.46176,-84.83226,-1634.826]\n],0,22,[-102.0068,-130.2754,-1689.871],[94.24202,146.8874,-1548.38],[\n[197,0,255,255],\n[228,0,255,255],\n[181,0,255,255],\n[153,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.6205173,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[45.08107,-112.0981,-1560.347],\n[62.56115,-105.3821,-1576.486],\n[68.36141,-91.71107,-1602.38],\n[58.90126,-78.18906,-1621.491],\n[48.08648,-115.3744,-1558.455],\n[66.73189,-108.2107,-1575.67],\n[72.91883,-93.7375,-1603.336],\n[62.82801,-79.52423,-1623.808],\n[51.09188,-118.4854,-1556.495],\n[70.90263,-110.8739,-1574.785],\n[77.47626,-95.60292,-1604.225],\n[66.75476,-80.70667,-1626.062],\n[54.09729,-121.5009,-1554.494],\n[75.07337,-113.4416,-1573.86],\n[82.03369,-97.37529,-1605.075],\n[70.68151,-81.80085,-1628.279]\n],0,23,[-102.0068,-130.2754,-1689.871],[94.24202,146.8874,-1548.38],[\n[163,0,255,255],\n[197,0,255,255],\n[153,0,255,255],\n[121,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.8525103,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[63.1135,-130.2754,-1548.38],\n[87.5856,-120.873,-1570.974],\n[95.70597,-102.4277,-1607.516],\n[82.46176,-84.83226,-1634.826],\n[66.11891,-133.1146,-1546.306],\n[91.75635,-123.2644,-1569.976],\n[100.2634,-104.0283,-1608.294],\n[86.38851,-85.76357,-1636.975],\n[69.12431,-135.873,-1544.199],\n[95.92709,-125.5751,-1568.945],\n[104.8208,-105.5504,-1609.04],\n[90.31526,-86.62027,-1639.093],\n[72.12972,-138.5655,-1542.064],\n[100.0978,-127.8198,-1567.886],\n[109.3783,-107.0081,-1609.76],\n[94.24202,-87.41602,-1641.186]\n],0,24,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[228,0,255,255],\n[255,0,255,255],\n[207,0,255,255],\n[181,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.4824126,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[36.06486,-101.8401,-1565.844],\n[50.04892,-96.4673,-1578.755],\n[54.68913,-85.21387,-1599.339],\n[47.12101,-73.78713,-1614.374],\n[39.07026,-105.3802,-1564.062],\n[54.21966,-99.55962,-1578.049],\n[59.24655,-87.49718,-1600.402],\n[51.04776,-75.36597,-1616.792],\n[42.07567,-108.8218,-1562.239],\n[58.3904,-102.5535,-1577.302],\n[63.80398,-89.68463,-1601.425],\n[54.97451,-76.85389,-1619.173],\n[45.08107,-112.0981,-1560.347],\n[62.56115,-105.3821,-1576.486],\n[68.36141,-91.71107,-1602.38],\n[58.90126,-78.18906,-1621.491]\n],0,25,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[123,0,255,255],\n[163,0,255,255],\n[121,0,255,255],\n[85,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.3214558,0,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[27.04864,-90.33081,-1570.82],\n[37.53669,-86.30118,-1580.503],\n[41.01684,-77.49791,-1595.79],\n[35.34076,-68.22912,-1606.776],\n[30.05405,-94.6616,-1569.367],\n[41.70743,-90.18423,-1580.126],\n[45.57427,-80.55137,-1597.174],\n[39.26751,-70.5385,-1609.498],\n[33.05945,-98.30008,-1567.626],\n[45.87817,-93.37498,-1579.461],\n[50.1317,-82.93055,-1598.276],\n[43.19426,-72.20828,-1611.955],\n[36.06486,-101.8401,-1565.844],\n[50.04892,-96.4673,-1578.755],\n[54.68913,-85.21387,-1599.339],\n[47.12101,-73.78713,-1614.374]\n],0,26,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[77,0,255,255],\n[123,0,255,255],\n[85,0,255,255],\n[42,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1358157,0.01125439,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[18.03243,-76.7609,-1574.939],\n[25.02446,-74.07448,-1581.394],\n[27.34456,-67.77502,-1591.406],\n[23.5605,-60.76738,-1598.385],\n[21.03783,-80.97692,-1573.438],\n[29.1952,-77.84277,-1580.969],\n[31.90199,-70.71671,-1592.743],\n[27.48725,-62.97074,-1601.064],\n[24.04324,-86.00002,-1572.273],\n[33.36594,-82.41812,-1580.88],\n[36.45942,-74.44445,-1594.407],\n[31.41401,-65.91973,-1604.053],\n[27.04864,-90.33081,-1570.82],\n[37.53669,-86.30118,-1580.503],\n[41.01684,-77.49791,-1595.79],\n[35.34076,-68.22912,-1606.776]\n],0,27,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[19,0,255,255],\n[77,0,255,255],\n[42,0,255,255],\n[0,11,255,255],\n]));\n\nP.push(new BezierPatch([\n[-4.87954,-16.68457,-1582.229],\n[-9.447303,-24.11361,-1583.271],\n[-12.75085,-32.16309,-1581.266],\n[-12.75085,-39.19223,-1578.836],\n[-6.506053,-18.65479,-1587.302],\n[-12.5964,-27.4254,-1588.22],\n[-17.00114,-37.11677,-1585.113],\n[-17.00114,-45.62045,-1581.511],\n[-8.132567,-18.00875,-1591.287],\n[-15.74551,-27.29426,-1591.735],\n[-21.25142,-37.86894,-1587.211],\n[-21.25142,-47.21444,-1582.175],\n[-9.75908,-17.67156,-1595.399],\n[-18.89461,-27.56955,-1595.42],\n[-25.50171,-39.11711,-1589.515],\n[-25.50171,-49.37912,-1583.075]\n],0,21,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[0,255,250,255],\n[0,229,255,255],\n[0,98,255,255],\n[0,157,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.3794827,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[24.3977,110.1935,-1580.467],\n[1.558885,118.5753,-1587.225],\n[-27.601,118.8142,-1580.843],\n[-45.08107,112.0981,-1564.705],\n[26.02421,113.6623,-1583.276],\n[1.66281,122.3927,-1590.573],\n[-29.44107,122.5382,-1583.811],\n[-48.08648,115.3744,-1566.597],\n[27.65073,116.9784,-1586.15],\n[1.766736,126.049,-1593.988],\n[-31.28113,126.097,-1586.848],\n[-51.09188,118.4854,-1568.557],\n[29.27724,120.2062,-1589.06],\n[1.870662,129.6123,-1597.441],\n[-33.1212,129.5602,-1589.924],\n[-54.09729,121.5009,-1570.558]\n],0,28,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[255,134,0,255],\n[255,102,0,255],\n[255,58,0,255],\n[255,92,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.9743248,0.7445445,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[9.016214,3.464137,-1570.85],\n[5.5202,-2.446948,-1577.097],\n[-0.3117769,-9.255537,-1581.187],\n[-4.87954,-16.68457,-1582.229],\n[12.02162,4.618849,-1573.625],\n[7.360267,-2.034331,-1581.443],\n[-0.4157026,-9.884183,-1586.385],\n[-6.506053,-18.65479,-1587.302],\n[15.02702,5.773561,-1576.4],\n[9.200333,-0.7269223,-1585.416],\n[-0.5196282,-8.723247,-1590.838],\n[-8.132567,-18.00875,-1591.287],\n[18.03243,6.928274,-1579.174],\n[11.0404,0.4748556,-1589.433],\n[-0.6235539,-7.773571,-1595.379],\n[-9.75908,-17.67156,-1595.399]\n],0,29,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[0,255,127,255],\n[0,255,127,255],\n[0,229,255,255],\n[0,255,250,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.01873188,0.1600412,1,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[9.016214,-58.89033,-1577.268],\n[12.51223,-57.54712,-1580.495],\n[13.67228,-53.86343,-1585.279],\n[11.78025,-49.33234,-1588.341],\n[12.02162,-69.13591,-1578.276],\n[16.68297,-67.34496,-1582.58],\n[18.22971,-62.6777,-1589.06],\n[15.707,-57.10629,-1593.338],\n[15.02702,-72.54487,-1576.44],\n[20.85372,-70.30619,-1581.819],\n[22.78714,-64.83333,-1590.07],\n[19.63375,-58.56402,-1595.706],\n[18.03243,-76.7609,-1574.939],\n[25.02446,-74.07448,-1581.394],\n[27.34456,-67.77502,-1591.406],\n[23.5605,-60.76738,-1598.385]\n],0,30,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[0,63,255,255],\n[19,0,255,255],\n[0,11,255,255],\n[0,88,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.5175874,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[19.51816,99.39069,-1572.203],\n[1.247108,106.7052,-1577.356],\n[-22.0808,107.213,-1572.119],\n[-36.06486,101.8401,-1559.208],\n[21.14467,103.1032,-1574.911],\n[1.351033,110.7795,-1580.597],\n[-23.92087,111.2008,-1574.977],\n[-39.07026,105.3802,-1560.99],\n[22.77119,106.7247,-1577.657],\n[1.454959,114.7579,-1583.878],\n[-25.76093,115.0901,-1577.876],\n[-42.07567,108.8218,-1562.813],\n[24.3977,110.1935,-1580.467],\n[1.558885,118.5753,-1587.225],\n[-27.601,118.8142,-1580.843],\n[-45.08107,112.0981,-1564.705]\n],0,31,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[255,170,0,255],\n[255,134,0,255],\n[255,92,0,255],\n[255,132,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.7403098,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[3.926751,-27.46824,-1575.719],\n[3.296074,-25.36022,-1576.491],\n[1.648037,-22.68274,-1576.569],\n[-3.552714e-15,-19.86856,-1575.398],\n[7.853501,-41.5584,-1583.344],\n[6.592148,-38.06764,-1585.19],\n[3.296074,-33.78622,-1585.794],\n[-2.664535e-15,-29.498,-1584.009],\n[11.78025,-49.33234,-1588.341],\n[9.888222,-44.80126,-1591.403],\n[4.944111,-39.42277,-1592.743],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,32,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[0,255,127,255],\n[0,88,255,255],\n[0,157,255,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-46.22138,-1576.406],\n[-9.447303,-52.2302,-1573.552],\n[-4.87954,-55.73323,-1572.96],\n[-17.00114,-45.62045,-1581.511],\n[-17.00114,-54.12413,-1577.91],\n[-12.5964,-61.44013,-1573.814],\n[-6.506053,-65.64081,-1572.83],\n[-21.25142,-47.21444,-1582.175],\n[-21.25142,-56.55995,-1577.138],\n[-15.74551,-64.67626,-1571.591],\n[-8.132567,-69.23217,-1570.071],\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-59.64114,-1576.636],\n[-18.89461,-68.61761,-1569.661],\n[-9.75908,-73.56916,-1567.623]\n],0,18,[-102.0068,-138.5655,-1689.871],[101.4598,146.8874,-1542.064],[\n[0,157,255,255],\n[0,98,255,255],\n[0,11,255,255],\n[0,88,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.5056463,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[89.25597,74.97205,-1531.326],\n[89.25597,98.08165,-1559.195],\n[66.13112,119.2394,-1587.876],\n[34.15678,129.6385,-1597.894],\n[93.50625,76.16314,-1530.831],\n[93.50625,100.0618,-1560.156],\n[69.28022,121.9777,-1590.307],\n[35.78329,132.7034,-1600.872],\n[97.75654,77.29713,-1530.359],\n[97.75654,101.9774,-1561.144],\n[72.42933,124.6454,-1592.767],\n[37.40981,135.6938,-1603.88],\n[102.0068,78.38447,-1529.906],\n[102.0068,103.8403,-1562.154],\n[75.57843,127.2554,-1595.251],\n[39.03632,138.6231,-1606.914]\n],0,33,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1529.906],[\n[255,207,0,255],\n[255,187,0,255],\n[255,48,0,255],\n[255,74,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.9040135,0.7445445,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-3.552714e-15,-19.86856,-1575.398],\n[-1.648037,-17.05439,-1574.227],\n[-3.296074,-14.10354,-1571.806],\n[-3.926751,-11.01164,-1568.87],\n[-2.664535e-15,-29.498,-1584.009],\n[-3.296074,-25.20977,-1582.225],\n[-6.592148,-20.91475,-1578.052],\n[-7.853501,-16.48191,-1572.909],\n[-3.552714e-15,-34.2932,-1590.608],\n[-4.944111,-29.16364,-1588.474],\n[-9.888222,-24.28301,-1582.864],\n[-11.78025,-19.33591,-1575.858]\n],0,34,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1529.906],[\n[0,255,127,255],\n[0,157,255,255],\n[0,255,250,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.6487868,0.7499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[3.005405,-31.56253,-1572.406],\n[4.170743,-31.11479,-1573.482],\n[4.557427,-29.57625,-1574.947],\n[3.926751,-27.46824,-1575.719],\n[6.01081,-48.64474,-1576.259],\n[8.341486,-47.74927,-1578.411],\n[9.114854,-45.04916,-1581.499],\n[7.853501,-41.5584,-1583.344],\n[9.016214,-58.89033,-1577.268],\n[12.51223,-57.54712,-1580.495],\n[13.67228,-53.86343,-1585.279],\n[11.78025,-49.33234,-1588.341]\n],0,35,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1529.906],[\n[0,255,127,255],\n[0,63,255,255],\n[0,88,255,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-1.626513,-10.12786,-1570.994],\n[-3.149101,-14.04707,-1571.942],\n[-4.250284,-18.05421,-1571.824],\n[-4.250284,-21.50157,-1571.474],\n[-3.253027,-14.71435,-1577.156],\n[-6.298202,-20.80181,-1578.323],\n[-8.500569,-27.2094,-1577.419],\n[-8.500569,-32.76402,-1576.161],\n[-4.87954,-16.68457,-1582.229],\n[-9.447303,-24.11361,-1583.271],\n[-12.75085,-32.16309,-1581.266],\n[-12.75085,-39.19223,-1578.836]\n],0,34,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1529.906],[\n[0,255,127,255],\n[0,255,250,255],\n[0,157,255,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-59.64114,-1576.636],\n[-18.89461,-68.61761,-1569.661],\n[-9.75908,-73.56916,-1567.623],\n[-29.75199,-51.5438,-1583.976],\n[-29.75199,-62.72232,-1576.133],\n[-22.04371,-72.55896,-1567.731],\n[-11.38559,-77.90615,-1565.175],\n[-34.00227,-54.27916,-1585.115],\n[-34.00227,-66.44889,-1575.899],\n[-25.19281,-77.20551,-1566.095],\n[-13.01211,-82.98877,-1563.037],\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-69.62185,-1575.434],\n[-28.34191,-81.24714,-1564.207],\n[-14.63862,-87.43179,-1560.632]\n],0,14,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1529.906],[\n[0,98,255,255],\n[0,57,255,255],\n[42,0,255,255],\n[0,11,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.2179536,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[82.46176,27.45114,-1514.106],\n[95.70597,26.91541,-1548.961],\n[87.5856,28.72345,-1592.427],\n[63.1135,24.24896,-1620.795],\n[86.38851,27.47083,-1512.336],\n[100.2634,27.31642,-1548.682],\n[91.75635,29.65089,-1594.034],\n[66.11891,25.40367,-1623.57],\n[90.31526,27.45961,-1510.579],\n[104.8208,27.69628,-1548.411],\n[95.92709,30.56776,-1595.645],\n[69.12431,26.55838,-1626.345],\n[94.24202,27.42315,-1508.832],\n[109.3783,28.05887,-1548.148],\n[100.0978,31.476,-1597.26],\n[72.12972,27.71309,-1629.119]\n],0,36,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[106,255,0,255],\n[116,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-4.87954,-55.73323,-1572.96],\n[-0.3117769,-59.23627,-1572.369],\n[5.5202,-60.23354,-1574.04],\n[9.016214,-58.89033,-1577.268],\n[-6.506053,-65.64081,-1572.83],\n[-0.4157026,-69.84149,-1571.846],\n[7.360267,-70.92686,-1573.973],\n[12.02162,-69.13591,-1578.276],\n[-8.132567,-69.23217,-1570.071],\n[-0.5196282,-73.78807,-1568.552],\n[9.200333,-74.78355,-1571.06],\n[15.02702,-72.54487,-1576.44],\n[-9.75908,-73.56916,-1567.623],\n[-0.6235539,-78.5207,-1565.585],\n[11.0404,-79.44732,-1568.484],\n[18.03243,-76.7609,-1574.939]\n],0,30,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,88,255,255],\n[0,11,255,255],\n[19,0,255,255],\n[0,63,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,1,0.6195254,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[3.005405,1.154712,-1565.301],\n[1.840067,-2.377389,-1568.033],\n[-0.1039256,-6.208659,-1570.046],\n[-1.626513,-10.12786,-1570.994],\n[6.01081,2.309425,-1568.076],\n[3.680133,-2.859564,-1572.751],\n[-0.2078513,-8.62689,-1575.989],\n[-3.253027,-14.71435,-1577.156],\n[9.016214,3.464137,-1570.85],\n[5.5202,-2.446948,-1577.097],\n[-0.3117769,-9.255537,-1581.187],\n[-4.87954,-16.68457,-1582.229]\n],0,37,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[0,255,127,255],\n[0,255,250,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.598886,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[76.50512,71.21702,-1532.889],\n[76.50512,91.93556,-1556.398],\n[56.68382,110.8,-1580.678],\n[29.27724,120.2062,-1589.06],\n[80.7554,72.53276,-1532.341],\n[80.7554,94.05671,-1557.3],\n[59.83292,113.6923,-1583.044],\n[30.90375,123.434,-1591.969],\n[85.00569,73.78095,-1531.822],\n[85.00569,96.10147,-1558.234],\n[62.98202,116.5012,-1585.446],\n[32.53027,126.5735,-1594.916],\n[89.25597,74.97205,-1531.326],\n[89.25597,98.08165,-1559.195],\n[66.13112,119.2394,-1587.876],\n[34.15678,129.6385,-1597.894]\n],0,38,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[255,228,0,255],\n[255,207,0,255],\n[255,74,0,255],\n[255,102,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1960934,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[70.68151,27.29371,-1519.456],\n[82.03369,25.64513,-1549.828],\n[75.07337,25.90749,-1587.619],\n[54.09729,20.78482,-1612.471],\n[74.60826,27.38086,-1517.658],\n[86.59112,26.09227,-1549.529],\n[79.24412,26.858,-1589.217],\n[57.10269,21.93953,-1615.246],\n[78.53501,27.43145,-1515.876],\n[91.14854,26.51441,-1549.241],\n[83.41486,27.79601,-1590.82],\n[60.1081,23.09425,-1618.021],\n[82.46176,27.45114,-1514.106],\n[95.70597,26.91541,-1548.961],\n[87.5856,28.72345,-1592.427],\n[63.1135,24.24896,-1620.795]\n],0,39,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[94,255,0,255],\n[106,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-4.250284,-21.50157,-1571.474],\n[-4.250284,-24.94894,-1571.124],\n[-3.149101,-27.83653,-1570.54],\n[-1.626513,-29.60187,-1570.592],\n[-8.500569,-32.76402,-1576.161],\n[-8.500569,-38.31863,-1574.902],\n[-6.298202,-43.02026,-1573.289],\n[-3.253027,-45.82566,-1573.09],\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-46.22138,-1576.406],\n[-9.447303,-52.2302,-1573.552],\n[-4.87954,-55.73323,-1572.96]\n],0,32,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[0,157,255,255],\n[0,88,255,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-69.62185,-1575.434],\n[-28.34191,-81.24714,-1564.207],\n[-14.63862,-87.43179,-1560.632],\n[-42.50284,-58.77081,-1586.984],\n[-42.50284,-72.79481,-1574.969],\n[-31.49101,-85.28877,-1562.318],\n[-16.26513,-91.87481,-1558.228],\n[-46.75313,-60.5271,-1587.715],\n[-46.75313,-75.41416,-1574.274],\n[-34.64011,-88.72546,-1560.178],\n[-17.89165,-95.67822,-1555.558],\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-77.95481,-1573.547],\n[-37.78921,-92.07615,-1558.003],\n[-19.51816,-99.39069,-1552.849]\n],0,11,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,57,255,255],\n[0,24,255,255],\n[85,0,255,255],\n[42,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.6785442,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[14.63862,87.43179,-1564.42],\n[0.9353308,93.61644,-1567.994],\n[-16.5606,94.36044,-1563.915],\n[-27.04864,90.33081,-1554.232],\n[16.26513,91.87481,-1566.824],\n[1.039256,98.46084,-1570.914],\n[-18.40067,99.13897,-1566.444],\n[-30.05405,94.6616,-1555.685],\n[17.89165,95.67822,-1569.495],\n[1.143182,102.631,-1574.115],\n[-20.24073,103.2252,-1569.261],\n[-33.05945,98.30008,-1557.426],\n[19.51816,99.39069,-1572.203],\n[1.247108,106.7052,-1577.356],\n[-22.0808,107.213,-1572.119],\n[-36.06486,101.8401,-1559.208]\n],0,40,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[255,213,0,255],\n[255,170,0,255],\n[255,132,0,255],\n[255,178,0,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-1.626513,-29.60187,-1570.592],\n[-0.1039256,-31.3672,-1570.643],\n[1.840067,-32.01027,-1571.33],\n[3.005405,-31.56253,-1572.406],\n[-3.253027,-45.82566,-1573.09],\n[-0.2078513,-48.63106,-1572.891],\n[3.680133,-49.54021,-1574.107],\n[6.01081,-48.64474,-1576.259],\n[-4.87954,-55.73323,-1572.96],\n[-0.3117769,-59.23627,-1572.369],\n[5.5202,-60.23354,-1574.04],\n[9.016214,-58.89033,-1577.268]\n],0,35,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[0,88,255,255],\n[0,63,255,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1718297,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[58.90126,26.89587,-1524.907],\n[68.36141,24.2104,-1550.762],\n[62.56115,23.0093,-1582.846],\n[45.08107,17.32068,-1604.147],\n[62.82801,27.08285,-1523.068],\n[72.91883,24.72583,-1550.435],\n[66.73189,23.99396,-1584.43],\n[48.08648,18.4754,-1606.922],\n[66.75476,27.20656,-1521.254],\n[77.47626,25.19798,-1550.126],\n[70.90263,24.95697,-1586.022],\n[51.09188,19.63011,-1609.696],\n[70.68151,27.29371,-1519.456],\n[82.03369,25.64513,-1549.828],\n[75.07337,25.90749,-1587.619],\n[54.09729,20.78482,-1612.471]\n],0,41,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[81,255,0,255],\n[94,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1443232,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[47.12101,26.17075,-1530.494],\n[54.68913,22.5518,-1551.79],\n[50.04892,19.99918,-1578.12],\n[36.06486,13.85655,-1595.823],\n[51.04776,26.45866,-1528.613],\n[59.24655,23.13627,-1551.434],\n[54.21966,21.01836,-1579.689],\n[39.07026,15.01126,-1598.598],\n[54.97451,26.7089,-1526.747],\n[63.80398,23.69497,-1551.089],\n[58.3904,22.02465,-1581.263],\n[42.07567,16.16597,-1601.372],\n[58.90126,26.89587,-1524.907],\n[68.36141,24.2104,-1550.762],\n[62.56115,23.0093,-1582.846],\n[45.08107,17.32068,-1604.147]\n],0,42,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[66,255,0,255],\n[81,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-77.95481,-1573.547],\n[-37.78921,-92.07615,-1558.003],\n[-19.51816,-99.39069,-1552.849],\n[-55.2537,-63.90049,-1589.119],\n[-55.2537,-80.49546,-1572.819],\n[-40.93831,-95.42684,-1555.827],\n[-21.14467,-103.1032,-1550.141],\n[-59.50398,-65.51758,-1589.791],\n[-59.50398,-82.9574,-1572.058],\n[-44.08742,-98.69152,-1553.616],\n[-22.77119,-106.7247,-1547.395],\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-85.28714,-1571.243],\n[-47.23652,-101.8117,-1551.344],\n[-24.3977,-110.1935,-1544.585]\n],0,8,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,24,255,255],\n[2,0,255,255],\n[121,0,255,255],\n[85,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[1,0.7023119,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[63.75426,67.01778,-1534.636],\n[63.75426,85.28714,-1553.809],\n[47.23652,101.8117,-1573.708],\n[24.3977,110.1935,-1580.467],\n[68.00455,68.51797,-1534.012],\n[68.00455,87.61688,-1554.625],\n[50.38562,104.932,-1575.98],\n[26.02421,113.6623,-1583.276],\n[72.25483,69.90127,-1533.436],\n[72.25483,89.81442,-1555.495],\n[53.53472,107.9077,-1578.312],\n[27.65073,116.9784,-1586.15],\n[76.50512,71.21702,-1532.889],\n[76.50512,91.93556,-1556.398],\n[56.68382,110.8,-1580.678],\n[29.27724,120.2062,-1589.06]\n],0,43,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[255,253,0,255],\n[255,228,0,255],\n[255,102,0,255],\n[255,134,0,255],\n]));\n\nP.push(new BezierPatch([\n[-9.75908,-73.56916,-1567.623],\n[-0.6235539,-78.5207,-1565.585],\n[11.0404,-79.44732,-1568.484],\n[18.03243,-76.7609,-1574.939],\n[-11.38559,-77.90615,-1565.175],\n[-0.7274795,-83.25334,-1562.618],\n[12.88047,-84.11108,-1565.907],\n[21.03783,-80.97692,-1573.438],\n[-13.01211,-82.98877,-1563.037],\n[-0.8314052,-88.77203,-1559.978],\n[14.72053,-89.58191,-1563.666],\n[24.04324,-86.00002,-1572.273],\n[-14.63862,-87.43179,-1560.632],\n[-0.9353308,-93.61644,-1557.058],\n[16.5606,-94.36044,-1561.137],\n[27.04864,-90.33081,-1570.82]\n],0,27,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,11,255,255],\n[42,0,255,255],\n[77,0,255,255],\n[19,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.9743248,0.7446208,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-11.78025,-19.33591,-1575.858],\n[-13.67228,-14.3888,-1568.852],\n[-12.51223,-9.375221,-1560.449],\n[-9.016214,-3.464137,-1554.202],\n[-15.707,-22.18991,-1578.807],\n[-18.22971,-16.72854,-1569.938],\n[-16.68297,-11.27203,-1559.245],\n[-12.02162,-4.618849,-1551.427],\n[-19.63375,-22.42764,-1580.668],\n[-22.78714,-17.27869,-1570.28],\n[-20.85372,-12.27404,-1557.669],\n[-15.02702,-5.773561,-1548.652],\n[-23.5605,-22.97423,-1582.657],\n[-27.34456,-18.0401,-1570.709],\n[-25.02446,-13.38169,-1556.137],\n[-18.03243,-6.928274,-1545.878]\n],0,44,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,250,255],\n[0,229,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.1122768,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[35.34076,24.96677,-1536.28],\n[41.01684,20.56564,-1552.955],\n[37.53669,16.82528,-1573.462],\n[27.04864,10.39241,-1587.499],\n[39.26751,25.55727,-1534.273],\n[45.57427,21.3571,-1552.513],\n[41.70743,17.94795,-1574.987],\n[30.05405,11.54712,-1590.273],\n[43.19426,25.88285,-1532.376],\n[50.1317,21.96733,-1552.146],\n[45.87817,18.98001,-1576.551],\n[33.05945,12.70184,-1593.048],\n[47.12101,26.17075,-1530.494],\n[54.68913,22.5518,-1551.79],\n[50.04892,19.99918,-1578.12],\n[36.06486,13.85655,-1595.823]\n],0,45,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[48,255,0,255],\n[66,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,1,0.6195636,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-3.926751,-11.01164,-1568.87],\n[-4.557427,-7.919748,-1565.934],\n[-4.170743,-4.686814,-1562.483],\n[-3.005405,-1.154712,-1559.751],\n[-7.853501,-16.48191,-1572.909],\n[-9.114854,-12.04907,-1567.765],\n[-8.341486,-7.478414,-1561.652],\n[-6.01081,-2.309425,-1556.977],\n[-11.78025,-19.33591,-1575.858],\n[-13.67228,-14.3888,-1568.852],\n[-12.51223,-9.375221,-1560.449],\n[-9.016214,-3.464137,-1554.202]\n],0,46,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[0,255,250,255],\n[0,255,128,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.9268656,0.7500381,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-23.5605,-22.97423,-1582.657],\n[-27.34456,-18.0401,-1570.709],\n[-25.02446,-13.38169,-1556.137],\n[-18.03243,-6.928274,-1545.878],\n[-27.48725,-23.52082,-1584.647],\n[-31.90199,-18.80151,-1571.138],\n[-29.1952,-14.48934,-1554.605],\n[-21.03783,-8.082986,-1543.103],\n[-31.41401,-24.37626,-1586.764],\n[-36.45942,-19.77419,-1571.656],\n[-33.36594,-15.70262,-1553.116],\n[-24.04324,-9.237698,-1540.328],\n[-35.34076,-24.96677,-1588.772],\n[-41.01684,-20.56564,-1572.098],\n[-37.53669,-16.82528,-1551.591],\n[-27.04864,-10.39241,-1537.554]\n],0,47,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,229,255,255],\n[0,207,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.07313444,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[23.5605,22.97423,-1542.395],\n[27.34456,18.0401,-1554.343],\n[25.02446,13.38169,-1568.916],\n[18.03243,6.928274,-1579.174],\n[27.48725,23.52082,-1540.406],\n[31.90199,18.80151,-1553.914],\n[29.1952,14.48934,-1570.448],\n[21.03783,8.082986,-1581.949],\n[31.41401,24.37626,-1538.288],\n[36.45942,19.77419,-1553.396],\n[33.36594,15.70262,-1571.936],\n[24.04324,9.237698,-1584.724],\n[35.34076,24.96677,-1536.28],\n[41.01684,20.56564,-1552.955],\n[37.53669,16.82528,-1573.462],\n[27.04864,10.39241,-1587.499]\n],0,48,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[26,255,0,255],\n[48,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,1,0.3803601,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[3.926751,11.01164,-1556.182],\n[4.557427,7.919748,-1559.118],\n[4.170743,4.686814,-1562.569],\n[3.005405,1.154712,-1565.301],\n[7.853501,16.48191,-1552.144],\n[9.114854,12.04907,-1557.287],\n[8.341486,7.478414,-1563.4],\n[6.01081,2.309425,-1568.076],\n[11.78025,19.33591,-1549.194],\n[13.67228,14.3888,-1556.2],\n[12.51223,9.375221,-1564.604],\n[9.016214,3.464137,-1570.85]\n],0,49,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[0,255,5,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8877232,0.7500381,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-35.34076,-24.96677,-1588.772],\n[-41.01684,-20.56564,-1572.098],\n[-37.53669,-16.82528,-1551.591],\n[-27.04864,-10.39241,-1537.554],\n[-39.26751,-25.55727,-1590.779],\n[-45.57427,-21.3571,-1572.54],\n[-41.70743,-17.94795,-1550.065],\n[-30.05405,-11.54712,-1534.779],\n[-43.19426,-25.88285,-1592.676],\n[-50.1317,-21.96733,-1572.906],\n[-45.87817,-18.98001,-1548.501],\n[-33.05945,-12.70184,-1532.004],\n[-47.12101,-26.17075,-1594.558],\n[-54.68913,-22.5518,-1573.262],\n[-50.04892,-19.99918,-1546.932],\n[-36.06486,-13.85655,-1529.229]\n],0,50,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,207,255,255],\n[0,189,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.02567526,1,0.2553792,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[11.78025,19.33591,-1549.194],\n[13.67228,14.3888,-1556.2],\n[12.51223,9.375221,-1564.604],\n[9.016214,3.464137,-1570.85],\n[15.707,22.18991,-1546.245],\n[18.22971,16.72854,-1555.114],\n[16.68297,11.27203,-1565.807],\n[12.02162,4.618849,-1573.625],\n[19.63375,22.42764,-1544.384],\n[22.78714,17.27869,-1554.773],\n[20.85372,12.27404,-1567.383],\n[15.02702,5.773561,-1576.4],\n[23.5605,22.97423,-1542.395],\n[27.34456,18.0401,-1554.343],\n[25.02446,13.38169,-1568.916],\n[18.03243,6.928274,-1579.174]\n],0,51,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,5,255],\n[26,255,0,255],\n[0,255,127,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.9887456,0.8641843,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[9.75908,73.56916,-1557.429],\n[0.6235539,78.5207,-1559.467],\n[-11.0404,79.44732,-1556.569],\n[-18.03243,76.7609,-1550.113],\n[11.38559,77.90615,-1559.878],\n[0.7274795,83.25334,-1562.434],\n[-12.88047,84.11108,-1559.145],\n[-21.03783,80.97692,-1551.614],\n[13.01211,82.98877,-1562.016],\n[0.8314052,88.77203,-1565.074],\n[-14.72053,89.58191,-1561.386],\n[-24.04324,86.00002,-1552.779],\n[14.63862,87.43179,-1564.42],\n[0.9353308,93.61644,-1567.994],\n[-16.5606,94.36044,-1563.915],\n[-27.04864,90.33081,-1554.232]\n],0,52,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[244,255,0,255],\n[255,213,0,255],\n[255,178,0,255],\n[255,236,0,255],\n]));\n\nP.push(new BezierPatch([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-85.28714,-1571.243],\n[-47.23652,-101.8117,-1551.344],\n[-24.3977,-110.1935,-1544.585],\n[-68.00455,-68.51797,-1591.04],\n[-68.00455,-87.61688,-1570.427],\n[-50.38562,-104.932,-1549.072],\n[-26.02421,-113.6623,-1541.776],\n[-72.25483,-69.90127,-1591.616],\n[-72.25483,-89.81442,-1569.557],\n[-53.53472,-107.9077,-1546.741],\n[-27.65073,-116.9784,-1538.903],\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-91.93556,-1568.655],\n[-56.68382,-110.8,-1544.374],\n[-29.27724,-120.2062,-1535.993]\n],0,4,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[2,0,255,255],\n[27,0,255,255],\n[153,0,255,255],\n[121,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.9757745,0.795132,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[51.00341,62.21379,-1536.636],\n[51.00341,77.95481,-1551.505],\n[37.78921,92.07615,-1567.049],\n[19.51816,99.39069,-1572.203],\n[55.2537,63.90049,-1535.934],\n[55.2537,80.49546,-1552.233],\n[40.93831,95.42684,-1569.225],\n[21.14467,103.1032,-1574.911],\n[59.50398,65.51758,-1535.261],\n[59.50398,82.9574,-1552.994],\n[44.08742,98.69152,-1571.437],\n[22.77119,106.7247,-1577.657],\n[63.75426,67.01778,-1534.636],\n[63.75426,85.28714,-1553.809],\n[47.23652,101.8117,-1573.708],\n[24.3977,110.1935,-1580.467]\n],0,53,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[231,255,0,255],\n[255,253,0,255],\n[255,134,0,255],\n[255,170,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8556768,0.7500381,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-47.12101,-26.17075,-1594.558],\n[-54.68913,-22.5518,-1573.262],\n[-50.04892,-19.99918,-1546.932],\n[-36.06486,-13.85655,-1529.229],\n[-51.04776,-26.45866,-1596.44],\n[-59.24655,-23.13627,-1573.618],\n[-54.21966,-21.01836,-1545.363],\n[-39.07026,-15.01126,-1526.455],\n[-54.97451,-26.7089,-1598.305],\n[-63.80398,-23.69497,-1573.963],\n[-58.3904,-22.02465,-1543.789],\n[-42.07567,-16.16597,-1523.68],\n[-58.90126,-26.89587,-1600.145],\n[-68.36141,-24.2104,-1574.29],\n[-62.56115,-23.0093,-1542.206],\n[-45.08107,-17.32068,-1520.905]\n],0,54,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,189,255,255],\n[0,174,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8281703,0.7500381,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-58.90126,-26.89587,-1600.145],\n[-68.36141,-24.2104,-1574.29],\n[-62.56115,-23.0093,-1542.206],\n[-45.08107,-17.32068,-1520.905],\n[-62.82801,-27.08285,-1601.984],\n[-72.91883,-24.72583,-1574.617],\n[-66.73189,-23.99396,-1540.623],\n[-48.08648,-18.4754,-1518.13],\n[-66.75476,-27.20656,-1603.798],\n[-77.47626,-25.19798,-1574.926],\n[-70.90263,-24.95697,-1539.03],\n[-51.09188,-19.63011,-1515.356],\n[-70.68151,-27.29371,-1605.596],\n[-82.03369,-25.64513,-1575.225],\n[-75.07337,-25.90749,-1537.433],\n[-54.09729,-20.78482,-1512.581]\n],0,55,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,174,255,255],\n[0,161,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.3512132,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[1.626513,29.60187,-1554.46],\n[0.1039256,31.3672,-1554.409],\n[-1.840067,32.01027,-1553.722],\n[-3.005405,31.56253,-1552.646],\n[3.253027,45.82566,-1551.962],\n[0.2078513,48.63106,-1552.161],\n[-3.680133,49.54021,-1550.945],\n[-6.01081,48.64474,-1548.793],\n[4.87954,55.73323,-1552.092],\n[0.3117769,59.23627,-1552.684],\n[-5.5202,60.23354,-1551.012],\n[-9.016214,58.89033,-1547.784]\n],0,56,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[167,255,0,255],\n[192,255,0,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-14.63862,-87.43179,-1560.632],\n[-0.9353308,-93.61644,-1557.058],\n[16.5606,-94.36044,-1561.137],\n[27.04864,-90.33081,-1570.82],\n[-16.26513,-91.87481,-1558.228],\n[-1.039256,-98.46084,-1554.138],\n[18.40067,-99.13897,-1558.608],\n[30.05405,-94.6616,-1569.367],\n[-17.89165,-95.67822,-1555.558],\n[-1.143182,-102.631,-1550.937],\n[20.24073,-103.2252,-1555.791],\n[33.05945,-98.30008,-1567.626],\n[-19.51816,-99.39069,-1552.849],\n[-1.247108,-106.7052,-1547.696],\n[22.0808,-107.213,-1552.933],\n[36.06486,-101.8401,-1565.844]\n],0,26,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[42,0,255,255],\n[85,0,255,255],\n[123,0,255,255],\n[77,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.9194643,0.8752861,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[38.25256,56.52498,-1539.003],\n[38.25256,69.62185,-1549.618],\n[28.34191,81.24714,-1560.846],\n[14.63862,87.43179,-1564.42],\n[42.50284,58.77081,-1538.068],\n[42.50284,72.79481,-1550.083],\n[31.49101,85.28877,-1562.734],\n[16.26513,91.87481,-1566.824],\n[46.75313,60.5271,-1537.338],\n[46.75313,75.41416,-1550.778],\n[34.64011,88.72546,-1564.874],\n[17.89165,95.67822,-1569.495],\n[51.00341,62.21379,-1536.636],\n[51.00341,77.95481,-1551.505],\n[37.78921,92.07615,-1567.049],\n[19.51816,99.39069,-1572.203]\n],0,57,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[198,255,0,255],\n[231,255,0,255],\n[255,170,0,255],\n[255,213,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.2596902,1,0.2499619,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[4.250284,21.50157,-1553.578],\n[4.250284,24.94894,-1553.929],\n[3.149101,27.83653,-1554.512],\n[1.626513,29.60187,-1554.46],\n[8.500569,32.76402,-1548.891],\n[8.500569,38.31863,-1550.15],\n[6.298202,43.02026,-1551.763],\n[3.253027,45.82566,-1551.962],\n[12.75085,39.19223,-1546.216],\n[12.75085,46.22138,-1548.646],\n[9.447303,52.2302,-1551.501],\n[4.87954,55.73323,-1552.092]\n],0,58,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1508.832],[\n[0,255,127,255],\n[98,255,0,255],\n[167,255,0,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.8039066,0.7500381,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-70.68151,-27.29371,-1605.596],\n[-82.03369,-25.64513,-1575.225],\n[-75.07337,-25.90749,-1537.433],\n[-54.09729,-20.78482,-1512.581],\n[-74.60826,-27.38086,-1607.394],\n[-86.59112,-26.09227,-1575.523],\n[-79.24412,-26.858,-1535.835],\n[-57.10269,-21.93953,-1509.806],\n[-78.53501,-27.43145,-1609.177],\n[-91.14854,-26.51441,-1575.811],\n[-83.41486,-27.79601,-1534.233],\n[-60.1081,-23.09425,-1507.032],\n[-82.46176,-27.45114,-1610.946],\n[-95.70597,-26.91541,-1576.091],\n[-87.5856,-28.72345,-1532.626],\n[-63.1135,-24.24896,-1504.257]\n],0,59,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1504.257],[\n[0,161,255,255],\n[0,149,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nP.push(new BezierPatch([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-91.93556,-1568.655],\n[-56.68382,-110.8,-1544.374],\n[-29.27724,-120.2062,-1535.993],\n[-80.7554,-72.53276,-1592.711],\n[-80.7554,-94.05671,-1567.752],\n[-59.83292,-113.6923,-1542.008],\n[-30.90375,-123.434,-1533.083],\n[-85.00569,-73.78095,-1593.23],\n[-85.00569,-96.10147,-1566.818],\n[-62.98202,-116.5012,-1539.607],\n[-32.53027,-126.5735,-1530.136],\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-98.08165,-1565.857],\n[-66.13112,-119.2394,-1537.176],\n[-34.15678,-129.6385,-1527.158]\n],0,1,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1504.257],[\n[27,0,255,255],\n[48,0,255,255],\n[181,0,255,255],\n[153,0,255,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-3.005405,-1.154712,-1559.751],\n[-1.840067,2.377389,-1557.019],\n[0.1039256,6.208659,-1555.006],\n[1.626513,10.12786,-1554.058],\n[-6.01081,-2.309425,-1556.977],\n[-3.680133,2.859564,-1552.301],\n[0.2078513,8.62689,-1549.063],\n[3.253027,14.71435,-1547.896],\n[-9.016214,-3.464137,-1554.202],\n[-5.5202,2.446948,-1547.955],\n[0.3117769,9.255537,-1543.865],\n[4.87954,16.68457,-1542.823]\n],0,49,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1504.257],[\n[0,255,127,255],\n[0,255,127,255],\n[0,255,5,255],\n[0,255,127,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.8399588,0.9812681,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[4.87954,55.73323,-1552.092],\n[0.3117769,59.23627,-1552.684],\n[-5.5202,60.23354,-1551.012],\n[-9.016214,58.89033,-1547.784],\n[6.506053,65.64081,-1552.222],\n[0.4157026,69.84149,-1553.207],\n[-7.360267,70.92686,-1551.08],\n[-12.02162,69.13591,-1546.776],\n[8.132567,69.23217,-1554.981],\n[0.5196282,73.78807,-1556.5],\n[-9.200333,74.78355,-1553.992],\n[-15.02702,72.54487,-1548.613],\n[9.75908,73.56916,-1557.429],\n[0.6235539,78.5207,-1559.467],\n[-11.0404,79.44732,-1556.569],\n[-18.03243,76.7609,-1550.113]\n],0,60,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1504.257],[\n[167,255,0,255],\n[244,255,0,255],\n[255,236,0,255],\n[192,255,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0.7820464,0.7500381,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[-82.46176,-27.45114,-1610.946],\n[-95.70597,-26.91541,-1576.091],\n[-87.5856,-28.72345,-1532.626],\n[-63.1135,-24.24896,-1504.257],\n[-86.38851,-27.47083,-1612.716],\n[-100.2634,-27.31642,-1576.37],\n[-91.75635,-29.65089,-1531.018],\n[-66.11891,-25.40367,-1501.482],\n[-90.31526,-27.45961,-1614.473],\n[-104.8208,-27.69628,-1576.641],\n[-95.92709,-30.56776,-1529.407],\n[-69.12431,-26.55838,-1498.707],\n[-94.24202,-27.42315,-1616.22],\n[-109.3783,-28.05887,-1576.904],\n[-100.0978,-31.476,-1527.792],\n[-72.12972,-27.71309,-1495.933]\n],0,61,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,149,255,255],\n[0,139,255,255],\n[0,255,128,255],\n[0,255,128,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.8358386,0.9586067,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[25.50171,49.37912,-1541.977],\n[25.50171,59.64114,-1548.417],\n[18.89461,68.61761,-1555.391],\n[9.75908,73.56916,-1557.429],\n[29.75199,51.5438,-1541.076],\n[29.75199,62.72232,-1548.919],\n[22.04371,72.55896,-1557.321],\n[11.38559,77.90615,-1559.878],\n[34.00227,54.27916,-1539.938],\n[34.00227,66.44889,-1549.154],\n[25.19281,77.20551,-1558.958],\n[13.01211,82.98877,-1562.016],\n[38.25256,56.52498,-1539.003],\n[38.25256,69.62185,-1549.618],\n[28.34191,81.24714,-1560.846],\n[14.63862,87.43179,-1564.42]\n],0,62,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1495.933],[\n[157,255,0,255],\n[198,255,0,255],\n[255,213,0,255],\n[244,255,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.09598657,1,0.2553792,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[1.626513,10.12786,-1554.058],\n[3.149101,14.04707,-1553.11],\n[4.250284,18.05421,-1553.228],\n[4.250284,21.50157,-1553.578],\n[3.253027,14.71435,-1547.896],\n[6.298202,20.80181,-1546.729],\n[8.500569,27.2094,-1547.633],\n[8.500569,32.76402,-1548.891],\n[4.87954,16.68457,-1542.823],\n[9.447303,24.11361,-1541.781],\n[12.75085,32.16309,-1543.786],\n[12.75085,39.19223,-1546.216]\n],0,63,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,255,127,255],\n[0,255,5,255],\n[98,255,0,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-3.005405,31.56253,-1552.646],\n[-4.170743,31.11479,-1551.571],\n[-4.557427,29.57625,-1550.105],\n[-3.926751,27.46824,-1549.333],\n[-6.01081,48.64474,-1548.793],\n[-8.341486,47.74927,-1546.641],\n[-9.114854,45.04916,-1543.554],\n[-7.853501,41.5584,-1541.708],\n[-9.016214,58.89033,-1547.784],\n[-12.51223,57.54712,-1544.557],\n[-13.67228,53.86343,-1539.773],\n[-11.78025,49.33234,-1536.711]\n],0,56,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,255,127,255],\n[192,255,0,255],\n[167,255,0,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-3.552714e-15,19.86856,-1549.654],\n[1.648037,17.05439,-1550.825],\n[3.296074,14.10354,-1553.246],\n[3.926751,11.01164,-1556.182],\n[-2.664535e-15,29.498,-1541.043],\n[3.296074,25.20977,-1542.828],\n[6.592148,20.91475,-1547.001],\n[7.853501,16.48191,-1552.144],\n[-3.552714e-15,34.2932,-1534.444],\n[4.944111,29.16364,-1536.579],\n[9.888222,24.28301,-1542.188],\n[11.78025,19.33591,-1549.194]\n],0,63,[-102.0068,-138.5655,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,255,127,255],\n[98,255,0,255],\n[0,255,5,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-98.08165,-1565.857],\n[-66.13112,-119.2394,-1537.176],\n[-34.15678,-129.6385,-1527.158],\n[-93.50625,-76.16314,-1594.222],\n[-93.50625,-100.0618,-1564.896],\n[-69.28022,-121.9777,-1534.745],\n[-35.78329,-132.7034,-1524.181],\n[-97.75654,-77.29713,-1594.694],\n[-97.75654,-101.9774,-1563.908],\n[-72.42933,-124.6454,-1532.286],\n[-37.40981,-135.6938,-1521.172],\n[-102.0068,-78.38447,-1595.146],\n[-102.0068,-103.8403,-1562.898],\n[-75.57843,-127.2554,-1529.802],\n[-39.03632,-138.6231,-1518.138]\n],0,0,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[48,0,255,255],\n[68,0,255,255],\n[207,0,255,255],\n[181,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.6518388,1,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[12.75085,39.19223,-1546.216],\n[12.75085,46.22138,-1548.646],\n[9.447303,52.2302,-1551.501],\n[4.87954,55.73323,-1552.092],\n[17.00114,45.62045,-1543.541],\n[17.00114,54.12413,-1547.142],\n[12.5964,61.44013,-1551.238],\n[6.506053,65.64081,-1552.222],\n[21.25142,47.21444,-1542.878],\n[21.25142,56.55995,-1547.914],\n[15.74551,64.67626,-1553.461],\n[8.132567,69.23217,-1554.981],\n[25.50171,49.37912,-1541.977],\n[25.50171,59.64114,-1548.417],\n[18.89461,68.61761,-1555.391],\n[9.75908,73.56916,-1557.429]\n],0,64,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[98,255,0,255],\n[157,255,0,255],\n[244,255,0,255],\n[167,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[-3.926751,27.46824,-1549.333],\n[-3.296074,25.36022,-1548.561],\n[-1.648037,22.68274,-1548.483],\n[-3.552714e-15,19.86856,-1549.654],\n[-7.853501,41.5584,-1541.708],\n[-6.592148,38.06764,-1539.862],\n[-3.296074,33.78622,-1539.259],\n[-2.664535e-15,29.498,-1541.043],\n[-11.78025,49.33234,-1536.711],\n[-9.888222,44.80126,-1533.649],\n[-4.944111,39.42277,-1532.309],\n[-3.552714e-15,34.2932,-1534.444]\n],0,58,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,255,127,255],\n[167,255,0,255],\n[98,255,0,255],\n[0,255,127,255],\n]));\n\nP.push(new BezierPatch([\n[-19.51816,-99.39069,-1552.849],\n[-1.247108,-106.7052,-1547.696],\n[22.0808,-107.213,-1552.933],\n[36.06486,-101.8401,-1565.844],\n[-21.14467,-103.1032,-1550.141],\n[-1.351033,-110.7795,-1544.455],\n[23.92087,-111.2008,-1550.075],\n[39.07026,-105.3802,-1564.062],\n[-22.77119,-106.7247,-1547.395],\n[-1.454959,-114.7579,-1541.175],\n[25.76093,-115.0901,-1547.177],\n[42.07567,-108.8218,-1562.239],\n[-24.3977,-110.1935,-1544.585],\n[-1.558885,-118.5753,-1537.827],\n[27.601,-118.8142,-1544.209],\n[45.08107,-112.0981,-1560.347]\n],0,25,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[85,0,255,255],\n[121,0,255,255],\n[163,0,255,255],\n[123,0,255,255],\n]));\n\nP.push(new BezierPatch([\n[-9.016214,58.89033,-1547.784],\n[-12.51223,57.54712,-1544.557],\n[-13.67228,53.86343,-1539.773],\n[-11.78025,49.33234,-1536.711],\n[-12.02162,69.13591,-1546.776],\n[-16.68297,67.34496,-1542.472],\n[-18.22971,62.6777,-1535.992],\n[-15.707,57.10629,-1531.714],\n[-15.02702,72.54487,-1548.613],\n[-20.85372,70.30619,-1543.233],\n[-22.78714,64.83333,-1534.983],\n[-19.63375,58.56402,-1529.346],\n[-18.03243,76.7609,-1550.113],\n[-25.02446,74.07448,-1543.658],\n[-27.34456,67.77502,-1533.646],\n[-23.5605,60.76738,-1526.667]\n],0,60,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[192,255,0,255],\n[255,236,0,255],\n[244,255,0,255],\n[167,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-9.016214,-3.464137,-1554.202],\n[-5.5202,2.446948,-1547.955],\n[0.3117769,9.255537,-1543.865],\n[4.87954,16.68457,-1542.823],\n[-12.02162,-4.618849,-1551.427],\n[-7.360267,2.034331,-1543.61],\n[0.4157026,9.884183,-1538.667],\n[6.506053,18.65479,-1537.75],\n[-15.02702,-5.773561,-1548.652],\n[-9.200333,0.7269223,-1539.636],\n[0.5196282,8.723247,-1534.214],\n[8.132567,18.00875,-1533.766],\n[-18.03243,-6.928274,-1545.878],\n[-11.0404,-0.4748556,-1535.619],\n[0.6235539,7.773571,-1529.673],\n[9.75908,17.67156,-1529.653]\n],0,51,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,255,127,255],\n[0,255,127,255],\n[26,255,0,255],\n[0,255,5,255],\n]));\n\nP.push(new BezierPatch([\n[-24.3977,-110.1935,-1544.585],\n[-1.558885,-118.5753,-1537.827],\n[27.601,-118.8142,-1544.209],\n[45.08107,-112.0981,-1560.347],\n[-26.02421,-113.6623,-1541.776],\n[-1.66281,-122.3927,-1534.479],\n[29.44107,-122.5382,-1541.241],\n[48.08648,-115.3744,-1558.455],\n[-27.65073,-116.9784,-1538.903],\n[-1.766736,-126.049,-1531.065],\n[31.28113,-126.097,-1538.205],\n[51.09188,-118.4854,-1556.495],\n[-29.27724,-120.2062,-1535.993],\n[-1.870662,-129.6123,-1527.611],\n[33.1212,-129.5602,-1535.128],\n[54.09729,-121.5009,-1554.494]\n],0,23,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[121,0,255,255],\n[153,0,255,255],\n[197,0,255,255],\n[163,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.2750649,1,0.005417366,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[4.87954,16.68457,-1542.823],\n[9.447303,24.11361,-1541.781],\n[12.75085,32.16309,-1543.786],\n[12.75085,39.19223,-1546.216],\n[6.506053,18.65479,-1537.75],\n[12.5964,27.4254,-1536.833],\n[17.00114,37.11677,-1539.94],\n[17.00114,45.62045,-1543.541],\n[8.132567,18.00875,-1533.766],\n[15.74551,27.29426,-1533.317],\n[21.25142,37.86894,-1537.842],\n[21.25142,47.21444,-1542.878],\n[9.75908,17.67156,-1529.653],\n[18.89461,27.56955,-1529.632],\n[25.50171,39.11711,-1535.537],\n[25.50171,49.37912,-1541.977]\n],0,65,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[0,255,5,255],\n[26,255,0,255],\n[157,255,0,255],\n[98,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-18.03243,76.7609,-1550.113],\n[-25.02446,74.07448,-1543.658],\n[-27.34456,67.77502,-1533.646],\n[-23.5605,60.76738,-1526.667],\n[-21.03783,80.97692,-1551.614],\n[-29.1952,77.84277,-1544.083],\n[-31.90199,70.71671,-1532.309],\n[-27.48725,62.97074,-1523.988],\n[-24.04324,86.00002,-1552.779],\n[-33.36594,82.41812,-1544.172],\n[-36.45942,74.44445,-1530.645],\n[-31.41401,65.91973,-1520.999],\n[-27.04864,90.33081,-1554.232],\n[-37.53669,86.30118,-1544.549],\n[-41.01684,77.49791,-1529.262],\n[-35.34076,68.22912,-1518.277]\n],0,52,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[255,236,0,255],\n[255,178,0,255],\n[255,213,0,255],\n[244,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-27.04864,90.33081,-1554.232],\n[-37.53669,86.30118,-1544.549],\n[-41.01684,77.49791,-1529.262],\n[-35.34076,68.22912,-1518.277],\n[-30.05405,94.6616,-1555.685],\n[-41.70743,90.18423,-1544.926],\n[-45.57427,80.55137,-1527.879],\n[-39.26751,70.5385,-1515.554],\n[-33.05945,98.30008,-1557.426],\n[-45.87817,93.37498,-1545.591],\n[-50.1317,82.93055,-1526.776],\n[-43.19426,72.20828,-1513.097],\n[-36.06486,101.8401,-1559.208],\n[-50.04892,96.4673,-1546.297],\n[-54.68913,85.21387,-1525.713],\n[-47.12101,73.78713,-1510.678]\n],0,40,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[255,178,0,255],\n[255,132,0,255],\n[255,170,0,255],\n[255,213,0,255],\n]));\n\nP.push(new BezierPatch([\n[-36.06486,101.8401,-1559.208],\n[-50.04892,96.4673,-1546.297],\n[-54.68913,85.21387,-1525.713],\n[-47.12101,73.78713,-1510.678],\n[-39.07026,105.3802,-1560.99],\n[-54.21966,99.55962,-1547.004],\n[-59.24655,87.49718,-1524.65],\n[-51.04776,75.36597,-1508.26],\n[-42.07567,108.8218,-1562.813],\n[-58.3904,102.5535,-1547.751],\n[-63.80398,89.68463,-1523.628],\n[-54.97451,76.85389,-1505.879],\n[-45.08107,112.0981,-1564.705],\n[-62.56115,105.3821,-1548.567],\n[-68.36141,91.71107,-1522.672],\n[-58.90126,78.18906,-1503.561]\n],0,31,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1495.933],[\n[255,132,0,255],\n[255,92,0,255],\n[255,134,0,255],\n[255,170,0,255],\n]));\n\nP.push(new BezierPatch([\n[-63.1135,130.2754,-1576.672],\n[-87.5856,120.873,-1554.078],\n[-95.70597,102.4277,-1517.537],\n[-82.46176,84.83226,-1490.226],\n[-66.11891,133.1146,-1578.746],\n[-91.75635,123.2644,-1555.076],\n[-100.2634,104.0283,-1516.758],\n[-86.38851,85.76357,-1488.077],\n[-69.12431,135.873,-1580.853],\n[-95.92709,125.5751,-1556.108],\n[-104.8208,105.5504,-1516.012],\n[-90.31526,86.62027,-1485.959],\n[-72.12972,138.5655,-1582.988],\n[-100.0978,127.8198,-1557.166],\n[-109.3783,107.0081,-1515.293],\n[-94.24202,87.41602,-1483.866]\n],0,16,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[255,27,0,255],\n[255,0,0,255],\n[255,48,0,255],\n[255,74,0,255],\n]));\n\nP.push(new BezierPatch([\n[-45.08107,112.0981,-1564.705],\n[-62.56115,105.3821,-1548.567],\n[-68.36141,91.71107,-1522.672],\n[-58.90126,78.18906,-1503.561],\n[-48.08648,115.3744,-1566.597],\n[-66.73189,108.2107,-1549.383],\n[-72.91883,93.7375,-1521.716],\n[-62.82801,79.52423,-1501.244],\n[-51.09188,118.4854,-1568.557],\n[-70.90263,110.8739,-1550.267],\n[-77.47626,95.60292,-1520.827],\n[-66.75476,80.70667,-1498.99],\n[-54.09729,121.5009,-1570.558],\n[-75.07337,113.4416,-1551.192],\n[-82.03369,97.37529,-1519.977],\n[-70.68151,81.80085,-1496.773]\n],0,28,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[255,92,0,255],\n[255,58,0,255],\n[255,102,0,255],\n[255,134,0,255],\n]));\n\nP.push(new BezierPatch([\n[-54.09729,121.5009,-1570.558],\n[-75.07337,113.4416,-1551.192],\n[-82.03369,97.37529,-1519.977],\n[-70.68151,81.80085,-1496.773],\n[-57.10269,124.5163,-1572.558],\n[-79.24412,116.0093,-1552.116],\n[-86.59112,99.14766,-1519.127],\n[-74.60826,82.89503,-1494.556],\n[-60.1081,127.4363,-1574.598],\n[-83.41486,118.4815,-1553.08],\n[-91.14854,100.827,-1518.315],\n[-78.53501,83.90095,-1492.376],\n[-63.1135,130.2754,-1576.672],\n[-87.5856,120.873,-1554.078],\n[-95.70597,102.4277,-1517.537],\n[-82.46176,84.83226,-1490.226]\n],0,20,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[255,58,0,255],\n[255,27,0,255],\n[255,74,0,255],\n[255,102,0,255],\n]));\n\nP.push(new BezierPatch([\n[-3.552714e-15,34.2932,-1534.444],\n[4.944111,29.16364,-1536.579],\n[9.888222,24.28301,-1542.188],\n[11.78025,19.33591,-1549.194],\n[-3.552714e-15,39.08841,-1527.845],\n[6.592148,33.11751,-1530.33],\n[13.1843,27.65128,-1537.375],\n[15.707,22.18991,-1546.245],\n[-5.329071e-15,39.0494,-1523.257],\n[8.240185,32.86987,-1525.829],\n[16.48037,27.5766,-1533.995],\n[19.63375,22.42764,-1544.384],\n[-7.105427e-15,39.58106,-1518.432],\n[9.888222,33.11822,-1521.122],\n[19.77644,27.90837,-1530.446],\n[23.5605,22.97423,-1542.395]\n],0,65,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[98,255,0,255],\n[157,255,0,255],\n[26,255,0,255],\n[0,255,5,255],\n]));\n\nP.push(new BezierPatch([\n[-29.27724,-120.2062,-1535.993],\n[-1.870662,-129.6123,-1527.611],\n[33.1212,-129.5602,-1535.128],\n[54.09729,-121.5009,-1554.494],\n[-30.90375,-123.434,-1533.083],\n[-1.974587,-133.1757,-1524.158],\n[34.96127,-133.0233,-1532.052],\n[57.10269,-124.5163,-1552.494],\n[-32.53027,-126.5735,-1530.136],\n[-2.078513,-136.6459,-1520.666],\n[36.80133,-136.391,-1528.936],\n[60.1081,-127.4363,-1550.454],\n[-34.15678,-129.6385,-1527.158],\n[-2.182439,-140.0376,-1517.141],\n[38.6414,-139.6779,-1525.786],\n[63.1135,-130.2754,-1548.38]\n],0,22,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[153,0,255,255],\n[181,0,255,255],\n[228,0,255,255],\n[197,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.4202274,1,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[9.75908,17.67156,-1529.653],\n[18.89461,27.56955,-1529.632],\n[25.50171,39.11711,-1535.537],\n[25.50171,49.37912,-1541.977],\n[11.38559,17.33437,-1525.54],\n[22.04371,27.84485,-1525.948],\n[29.75199,40.36527,-1533.233],\n[29.75199,51.5438,-1541.076],\n[13.01211,17.30603,-1521.298],\n[25.19281,28.52659,-1522.094],\n[34.00227,42.10942,-1530.722],\n[34.00227,54.27916,-1539.938],\n[14.63862,17.01276,-1517.167],\n[28.34191,28.85968,-1518.385],\n[38.25256,43.42812,-1528.388],\n[38.25256,56.52498,-1539.003]\n],0,66,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[26,255,0,255],\n[48,255,0,255],\n[198,255,0,255],\n[157,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-18.03243,-6.928274,-1545.878],\n[-11.0404,-0.4748556,-1535.619],\n[0.6235539,7.773571,-1529.673],\n[9.75908,17.67156,-1529.653],\n[-21.03783,-8.082986,-1543.103],\n[-12.88047,-1.676633,-1531.601],\n[0.7274795,6.823896,-1525.132],\n[11.38559,17.33437,-1525.54],\n[-24.04324,-9.237698,-1540.328],\n[-14.72053,-2.77278,-1527.54],\n[0.8314052,6.085483,-1520.503],\n[13.01211,17.30603,-1521.298],\n[-27.04864,-10.39241,-1537.554],\n[-16.5606,-3.959538,-1523.517],\n[0.9353308,5.165848,-1515.949],\n[14.63862,17.01276,-1517.167]\n],0,48,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[0,255,127,255],\n[0,255,127,255],\n[48,255,0,255],\n[26,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-11.78025,49.33234,-1536.711],\n[-9.888222,44.80126,-1533.649],\n[-4.944111,39.42277,-1532.309],\n[-3.552714e-15,34.2932,-1534.444],\n[-15.707,57.10629,-1531.714],\n[-13.1843,51.53488,-1527.436],\n[-6.592148,45.05931,-1525.36],\n[-3.552714e-15,39.08841,-1527.845],\n[-19.63375,58.56402,-1529.346],\n[-16.48037,52.2947,-1523.709],\n[-8.240185,45.22892,-1520.686],\n[-5.329071e-15,39.0494,-1523.257],\n[-23.5605,60.76738,-1526.667],\n[-19.77644,53.75973,-1519.688],\n[-9.888222,46.0439,-1515.743],\n[-7.105427e-15,39.58106,-1518.432]\n],0,64,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[167,255,0,255],\n[244,255,0,255],\n[157,255,0,255],\n[98,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-7.105427e-15,39.58106,-1518.432],\n[9.888222,33.11822,-1521.122],\n[19.77644,27.90837,-1530.446],\n[23.5605,22.97423,-1542.395],\n[-7.105427e-15,40.11273,-1513.608],\n[11.53626,33.36657,-1516.415],\n[23.07252,28.24013,-1526.898],\n[27.48725,23.52082,-1540.406],\n[-7.105427e-15,41.21508,-1508.545],\n[13.1843,34.11091,-1511.502],\n[26.36859,28.97834,-1523.179],\n[31.41401,24.37626,-1538.288],\n[-7.105427e-15,41.8279,-1503.687],\n[14.83233,34.42979,-1506.765],\n[29.66467,29.36789,-1519.606],\n[35.34076,24.96677,-1536.28]\n],0,66,[-102.0068,-138.6231,-1689.871],[102.0068,146.8874,-1483.866],[\n[157,255,0,255],\n[198,255,0,255],\n[48,255,0,255],\n[26,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-34.15678,-129.6385,-1527.158],\n[-2.182439,-140.0376,-1517.141],\n[38.6414,-139.6779,-1525.786],\n[63.1135,-130.2754,-1548.38],\n[-35.78329,-132.7034,-1524.181],\n[-2.286364,-143.4292,-1513.616],\n[40.48147,-142.9648,-1522.637],\n[66.11891,-133.1146,-1546.306],\n[-37.40981,-135.6938,-1521.172],\n[-2.39029,-146.7422,-1510.058],\n[42.32153,-146.171,-1519.454],\n[69.12431,-135.873,-1544.199],\n[-39.03632,-138.6231,-1518.138],\n[-2.494216,-149.9909,-1506.474],\n[44.1616,-149.3112,-1516.243],\n[72.12972,-138.5655,-1542.064]\n],0,24,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1483.866],[\n[181,0,255,255],\n[207,0,255,255],\n[255,0,255,255],\n[228,0,255,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.5317412,1,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[14.63862,17.01276,-1517.167],\n[28.34191,28.85968,-1518.385],\n[38.25256,43.42812,-1528.388],\n[38.25256,56.52498,-1539.003],\n[16.26513,16.71949,-1513.036],\n[31.49101,29.19277,-1514.676],\n[42.50284,44.74681,-1526.054],\n[42.50284,58.77081,-1538.068],\n[17.89165,16.16128,-1509.015],\n[34.64011,29.17721,-1511.113],\n[46.75313,45.64004,-1523.897],\n[46.75313,60.5271,-1537.338],\n[19.51816,15.56541,-1505.01],\n[37.78921,29.11208,-1507.57],\n[51.00341,46.47278,-1521.766],\n[51.00341,62.21379,-1536.636]\n],0,67,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1483.866],[\n[48,255,0,255],\n[66,255,0,255],\n[231,255,0,255],\n[198,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-27.04864,-10.39241,-1537.554],\n[-16.5606,-3.959538,-1523.517],\n[0.9353308,5.165848,-1515.949],\n[14.63862,17.01276,-1517.167],\n[-30.05405,-11.54712,-1534.779],\n[-18.40067,-5.146295,-1519.493],\n[1.039256,4.246214,-1511.396],\n[16.26513,16.71949,-1513.036],\n[-33.05945,-12.70184,-1532.004],\n[-20.24073,-6.423663,-1515.507],\n[1.143182,3.145358,-1506.918],\n[17.89165,16.16128,-1509.015],\n[-36.06486,-13.85655,-1529.229],\n[-22.0808,-7.713913,-1511.526],\n[1.247108,2.018738,-1502.45],\n[19.51816,15.56541,-1505.01]\n],0,45,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1483.866],[\n[0,255,127,255],\n[0,255,127,255],\n[66,255,0,255],\n[48,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-23.5605,60.76738,-1526.667],\n[-19.77644,53.75973,-1519.688],\n[-9.888222,46.0439,-1515.743],\n[-7.105427e-15,39.58106,-1518.432],\n[-27.48725,62.97074,-1523.988],\n[-23.07252,55.22477,-1515.668],\n[-11.53626,46.85889,-1510.8],\n[-7.105427e-15,40.11273,-1513.608],\n[-31.41401,65.91973,-1520.999],\n[-26.36859,57.39501,-1511.354],\n[-13.1843,48.31925,-1505.589],\n[-7.105427e-15,41.21508,-1508.545],\n[-35.34076,68.22912,-1518.277],\n[-29.66467,58.96032,-1507.291],\n[-14.83233,49.226,-1500.608],\n[-7.105427e-15,41.8279,-1503.687]\n],0,62,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1483.866],[\n[244,255,0,255],\n[255,213,0,255],\n[198,255,0,255],\n[157,255,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.6200976,0.9971387,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[19.51816,15.56541,-1505.01],\n[37.78921,29.11208,-1507.57],\n[51.00341,46.47278,-1521.766],\n[51.00341,62.21379,-1536.636],\n[21.14467,14.96954,-1501.005],\n[40.93831,29.04696,-1504.027],\n[55.2537,47.30552,-1519.634],\n[55.2537,63.90049,-1535.934],\n[22.77119,14.336,-1497.015],\n[44.08742,28.93227,-1500.504],\n[59.50398,48.07777,-1517.528],\n[59.50398,65.51758,-1535.261],\n[24.3977,13.6392,-1493.052],\n[47.23652,28.73432,-1497.017],\n[63.75426,48.74842,-1515.464],\n[63.75426,67.01778,-1534.636]\n],0,68,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1483.866],[\n[66,255,0,255],\n[81,255,0,255],\n[255,253,0,255],\n[231,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-7.105427e-15,41.8279,-1503.687],\n[14.83233,34.42979,-1506.765],\n[29.66467,29.36789,-1519.606],\n[35.34076,24.96677,-1536.28],\n[-7.105427e-15,42.44071,-1498.828],\n[16.48037,34.74867,-1502.029],\n[32.96074,29.75745,-1516.033],\n[39.26751,25.55727,-1534.273],\n[-7.105427e-15,42.56399,-1494.173],\n[18.12841,34.64208,-1497.47],\n[36.25682,29.79837,-1512.605],\n[43.19426,25.88285,-1532.376],\n[-1.421085e-14,42.61768,-1489.547],\n[19.77644,34.47501,-1492.936],\n[39.55289,29.78971,-1509.198],\n[47.12101,26.17075,-1530.494]\n],0,67,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1483.866],[\n[198,255,0,255],\n[231,255,0,255],\n[66,255,0,255],\n[48,255,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.6718297,0.9706241,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[24.3977,13.6392,-1493.052],\n[47.23652,28.73432,-1497.017],\n[63.75426,48.74842,-1515.464],\n[63.75426,67.01778,-1534.636],\n[26.02421,12.94239,-1489.089],\n[50.38562,28.53637,-1493.529],\n[68.00455,49.41907,-1513.399],\n[68.00455,68.51797,-1534.012],\n[27.65073,12.18232,-1485.152],\n[53.53472,28.25516,-1490.076],\n[72.25483,49.98812,-1511.378],\n[72.25483,69.90127,-1533.436],\n[29.27724,11.38569,-1481.23],\n[56.68382,27.92585,-1486.643],\n[76.50512,50.49847,-1509.38],\n[76.50512,71.21702,-1532.889]\n],0,69,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1481.23],[\n[81,255,0,255],\n[94,255,0,255],\n[255,228,0,255],\n[255,253,0,255],\n]));\n\nP.push(new BezierPatch([\n[-36.06486,-13.85655,-1529.229],\n[-22.0808,-7.713913,-1511.526],\n[1.247108,2.018738,-1502.45],\n[19.51816,15.56541,-1505.01],\n[-39.07026,-15.01126,-1526.455],\n[-23.92087,-9.004164,-1507.546],\n[1.351033,0.8921183,-1497.983],\n[21.14467,14.96954,-1501.005],\n[-42.07567,-16.16597,-1523.68],\n[-25.76093,-10.3073,-1503.571],\n[1.454959,-0.2602664,-1493.526],\n[22.77119,14.336,-1497.015],\n[-45.08107,-17.32068,-1520.905],\n[-27.601,-11.63207,-1499.605],\n[1.558885,-1.455926,-1489.087],\n[24.3977,13.6392,-1493.052]\n],0,42,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1481.23],[\n[0,255,127,255],\n[0,255,127,255],\n[81,255,0,255],\n[66,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-35.34076,68.22912,-1518.277],\n[-29.66467,58.96032,-1507.291],\n[-14.83233,49.226,-1500.608],\n[-7.105427e-15,41.8279,-1503.687],\n[-39.26751,70.5385,-1515.554],\n[-32.96074,60.52564,-1503.229],\n[-16.48037,50.13276,-1495.627],\n[-7.105427e-15,42.44071,-1498.828],\n[-43.19426,72.20828,-1513.097],\n[-36.25682,61.48602,-1499.418],\n[-18.12841,50.48591,-1490.876],\n[-7.105427e-15,42.56399,-1494.173],\n[-47.12101,73.78713,-1510.678],\n[-39.55289,62.36039,-1495.644],\n[-19.77644,50.76035,-1486.158],\n[-1.421085e-14,42.61768,-1489.547]\n],0,57,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1481.23],[\n[255,213,0,255],\n[255,170,0,255],\n[231,255,0,255],\n[198,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-1.421085e-14,42.61768,-1489.547],\n[19.77644,34.47501,-1492.936],\n[39.55289,29.78971,-1509.198],\n[47.12101,26.17075,-1530.494],\n[-1.065814e-14,42.67136,-1484.921],\n[21.42448,34.30793,-1488.401],\n[42.84896,29.78105,-1505.791],\n[51.04776,26.45866,-1528.613],\n[-1.776357e-14,42.65545,-1480.324],\n[23.07252,34.08037,-1483.893],\n[46.14504,29.72283,-1502.404],\n[54.97451,26.7089,-1526.747],\n[-1.776357e-14,42.52263,-1475.776],\n[24.72056,33.75121,-1479.426],\n[49.44111,29.58135,-1499.052],\n[58.90126,26.89587,-1524.907]\n],0,68,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1475.776],[\n[231,255,0,255],\n[255,253,0,255],\n[81,255,0,255],\n[66,255,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.6960934,0.9257973,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[29.27724,11.38569,-1481.23],\n[56.68382,27.92585,-1486.643],\n[76.50512,50.49847,-1509.38],\n[76.50512,71.21702,-1532.889],\n[30.90375,10.58907,-1477.309],\n[59.83292,27.59653,-1483.21],\n[80.7554,51.00881,-1507.383],\n[80.7554,72.53276,-1532.341],\n[32.53027,9.755879,-1473.402],\n[62.98202,27.21911,-1479.797],\n[85.00569,51.46044,-1505.41],\n[85.00569,73.78095,-1531.822],\n[34.15678,8.891789,-1469.508],\n[66.13112,26.80102,-1476.401],\n[89.25597,51.86245,-1503.457],\n[89.25597,74.97205,-1531.326]\n],0,70,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1469.508],[\n[94,255,0,255],\n[106,255,0,255],\n[255,207,0,255],\n[255,228,0,255],\n]));\n\nP.push(new BezierPatch([\n[-45.08107,-17.32068,-1520.905],\n[-27.601,-11.63207,-1499.605],\n[1.558885,-1.455926,-1489.087],\n[24.3977,13.6392,-1493.052],\n[-48.08648,-18.4754,-1518.13],\n[-29.44107,-12.95684,-1495.638],\n[1.66281,-2.651586,-1484.649],\n[26.02421,12.94239,-1489.089],\n[-51.09188,-19.63011,-1515.356],\n[-31.28113,-14.30324,-1491.681],\n[1.766736,-3.89052,-1480.228],\n[27.65073,12.18232,-1485.152],\n[-54.09729,-20.78482,-1512.581],\n[-33.1212,-15.66215,-1487.729],\n[1.870662,-5.154461,-1475.817],\n[29.27724,11.38569,-1481.23]\n],0,41,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1469.508],[\n[0,255,127,255],\n[0,255,127,255],\n[94,255,0,255],\n[81,255,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0.7179536,0.8853579,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[34.15678,8.891789,-1469.508],\n[66.13112,26.80102,-1476.401],\n[89.25597,51.86245,-1503.457],\n[89.25597,74.97205,-1531.326],\n[35.78329,8.027699,-1465.615],\n[69.28022,26.38292,-1473.005],\n[93.50625,52.26445,-1501.505],\n[93.50625,76.16314,-1530.831],\n[37.40981,7.132706,-1461.734],\n[72.42933,25.92416,-1469.625],\n[97.75654,52.61683,-1499.573],\n[97.75654,77.29713,-1530.359],\n[39.03632,6.212466,-1457.864],\n[75.57843,25.43218,-1466.26],\n[102.0068,52.92866,-1497.658],\n[102.0068,78.38447,-1529.906]\n],0,71,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1457.864],[\n[106,255,0,255],\n[116,255,0,255],\n[255,187,0,255],\n[255,207,0,255],\n]));\n\nP.push(new BezierPatch([\n[-47.12101,73.78713,-1510.678],\n[-39.55289,62.36039,-1495.644],\n[-19.77644,50.76035,-1486.158],\n[-1.421085e-14,42.61768,-1489.547],\n[-51.04776,75.36597,-1508.26],\n[-42.84896,63.23477,-1491.869],\n[-21.42448,51.03479,-1481.44],\n[-1.065814e-14,42.67136,-1484.921],\n[-54.97451,76.85389,-1505.879],\n[-46.14504,64.02314,-1488.13],\n[-23.07252,51.23052,-1476.755],\n[-1.776357e-14,42.65545,-1480.324],\n[-58.90126,78.18906,-1503.561],\n[-49.44111,64.66705,-1484.451],\n[-24.72056,51.29406,-1472.125],\n[-1.776357e-14,42.52263,-1475.776]\n],0,53,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1457.864],[\n[255,170,0,255],\n[255,134,0,255],\n[255,253,0,255],\n[231,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-1.776357e-14,42.52263,-1475.776],\n[24.72056,33.75121,-1479.426],\n[49.44111,29.58135,-1499.052],\n[58.90126,26.89587,-1524.907],\n[-1.421085e-14,42.38982,-1471.227],\n[26.36859,33.42204,-1474.959],\n[52.73719,29.43987,-1495.7],\n[62.82801,27.08285,-1523.068],\n[-1.421085e-14,42.1401,-1466.728],\n[28.01663,32.99128,-1470.535],\n[56.03326,29.21513,-1492.383],\n[66.75476,27.20656,-1521.254],\n[-1.421085e-14,41.82284,-1462.256],\n[29.66467,32.50181,-1466.135],\n[59.32933,28.94229,-1489.085],\n[70.68151,27.29371,-1519.456]\n],0,69,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1457.864],[\n[255,253,0,255],\n[255,228,0,255],\n[94,255,0,255],\n[81,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-54.09729,-20.78482,-1512.581],\n[-33.1212,-15.66215,-1487.729],\n[1.870662,-5.154461,-1475.817],\n[29.27724,11.38569,-1481.23],\n[-57.10269,-21.93953,-1509.806],\n[-34.96127,-17.02107,-1483.777],\n[1.974587,-6.418403,-1471.407],\n[30.90375,10.58907,-1477.309],\n[-60.1081,-23.09425,-1507.032],\n[-36.80133,-18.39248,-1479.831],\n[2.078513,-7.707351,-1467.007],\n[32.53027,9.755879,-1473.402],\n[-63.1135,-24.24896,-1504.257],\n[-38.6414,-19.77446,-1475.888],\n[2.182439,-9.017438,-1462.616],\n[34.15678,8.891789,-1469.508]\n],0,39,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1457.864],[\n[0,255,127,255],\n[0,255,127,255],\n[106,255,0,255],\n[94,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-1.421085e-14,41.82284,-1462.256],\n[29.66467,32.50181,-1466.135],\n[59.32933,28.94229,-1489.085],\n[70.68151,27.29371,-1519.456],\n[-1.421085e-14,41.50558,-1457.784],\n[31.3127,32.01234,-1461.735],\n[62.62541,28.66944,-1485.788],\n[74.60826,27.38086,-1517.658],\n[-1.421085e-14,41.12076,-1453.341],\n[32.96074,31.46415,-1457.359],\n[65.92148,28.34849,-1482.511],\n[78.53501,27.43145,-1515.876],\n[-1.421085e-14,40.67884,-1448.921],\n[34.60878,30.86634,-1453.005],\n[69.21756,27.98686,-1479.25],\n[82.46176,27.45114,-1514.106]\n],0,70,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1448.921],[\n[255,228,0,255],\n[255,207,0,255],\n[106,255,0,255],\n[94,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-58.90126,78.18906,-1503.561],\n[-49.44111,64.66705,-1484.451],\n[-24.72056,51.29406,-1472.125],\n[-1.776357e-14,42.52263,-1475.776],\n[-62.82801,79.52423,-1501.244],\n[-52.73719,65.31097,-1480.772],\n[-26.36859,51.35759,-1467.495],\n[-1.421085e-14,42.38982,-1471.227],\n[-66.75476,80.70667,-1498.99],\n[-56.03326,65.81043,-1477.153],\n[-28.01663,51.28893,-1462.92],\n[-1.421085e-14,42.1401,-1466.728],\n[-70.68151,81.80085,-1496.773],\n[-59.32933,66.22641,-1473.569],\n[-29.66467,51.14387,-1458.377],\n[-1.421085e-14,41.82284,-1462.256]\n],0,43,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1448.921],[\n[255,134,0,255],\n[255,102,0,255],\n[255,228,0,255],\n[255,253,0,255],\n]));\n\nP.push(new BezierPatch([\n[-63.1135,-24.24896,-1504.257],\n[-38.6414,-19.77446,-1475.888],\n[2.182439,-9.017438,-1462.616],\n[34.15678,8.891789,-1469.508],\n[-66.11891,-25.40367,-1501.482],\n[-40.48147,-21.15645,-1471.946],\n[2.286364,-10.32752,-1458.225],\n[35.78329,8.027699,-1465.615],\n[-69.12431,-26.55838,-1498.707],\n[-42.32153,-22.549,-1468.008],\n[2.39029,-11.65875,-1453.843],\n[37.40981,7.132706,-1461.734],\n[-72.12972,-27.71309,-1495.933],\n[-44.1616,-23.95019,-1464.073],\n[2.494216,-13.00725,-1449.468],\n[39.03632,6.212466,-1457.864]\n],0,36,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1448.921],[\n[0,255,127,255],\n[0,255,127,255],\n[116,255,0,255],\n[106,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-1.421085e-14,40.67884,-1448.921],\n[34.60878,30.86634,-1453.005],\n[69.21756,27.98686,-1479.25],\n[82.46176,27.45114,-1514.106],\n[-7.105427e-15,40.23692,-1444.501],\n[36.25682,30.26853,-1448.65],\n[72.51363,27.62524,-1475.99],\n[86.38851,27.47083,-1512.336],\n[-2.131628e-14,39.73791,-1440.105],\n[37.90485,29.6211,-1444.316],\n[75.80971,27.22294,-1472.746],\n[90.31526,27.45961,-1510.579],\n[-2.842171e-14,39.19223,-1435.729],\n[39.55289,28.93311,-1439.998],\n[79.10578,26.78743,-1469.517],\n[94.24202,27.42315,-1508.832]\n],0,71,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1435.729],[\n[255,207,0,255],\n[255,187,0,255],\n[116,255,0,255],\n[106,255,0,255],\n]));\n\nP.push(new BezierPatch([\n[-70.68151,81.80085,-1496.773],\n[-59.32933,66.22641,-1473.569],\n[-29.66467,51.14387,-1458.377],\n[-1.421085e-14,41.82284,-1462.256],\n[-74.60826,82.89503,-1494.556],\n[-62.62541,66.6424,-1469.985],\n[-31.3127,50.99881,-1453.834],\n[-1.421085e-14,41.50558,-1457.784],\n[-78.53501,83.90095,-1492.376],\n[-65.92148,66.9749,-1466.436],\n[-32.96074,50.77736,-1449.322],\n[-1.421085e-14,41.12076,-1453.341],\n[-82.46176,84.83226,-1490.226],\n[-69.21756,67.23685,-1462.916],\n[-34.60878,50.49134,-1444.838],\n[-1.421085e-14,40.67884,-1448.921]\n],0,38,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1435.729],[\n[255,102,0,255],\n[255,74,0,255],\n[255,207,0,255],\n[255,228,0,255],\n]));\n\nP.push(new BezierPatch([\n[-82.46176,84.83226,-1490.226],\n[-69.21756,67.23685,-1462.916],\n[-34.60878,50.49134,-1444.838],\n[-1.421085e-14,40.67884,-1448.921],\n[-86.38851,85.76357,-1488.077],\n[-72.51363,67.4988,-1459.396],\n[-36.25682,50.20531,-1440.353],\n[-7.105427e-15,40.23692,-1444.501],\n[-90.31526,86.62027,-1485.959],\n[-75.80971,67.69018,-1455.906],\n[-37.90485,49.85471,-1435.895],\n[-2.131628e-14,39.73791,-1440.105],\n[-94.24202,87.41602,-1483.866],\n[-79.10578,67.82392,-1452.439],\n[-39.55289,49.45136,-1431.459],\n[-2.842171e-14,39.19223,-1435.729]\n],0,33,[-102.0068,-146.8874,-1689.871],[102.0068,146.8874,-1435.182],[\n[255,74,0,255],\n[255,48,0,255],\n[255,187,0,255],\n[255,207,0,255],\n]));\n\nMaterials.push(new Material(\ndiffuse=[0,0,0,1],\nemissive=[0,0,0,1],\nspecular=[0,0,0,1],\nshininess=1,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[69.21756,-67.23685,-1662.136],\n[34.60878,-50.49134,-1680.215],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-84.83226,-1676.706],[82.46176,-40.67884,-1634.826]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-40.67884,-1676.131],[-1.421085e-14,-40.67884,-1676.131]));\n\nP.push(new BezierCurve([\n[94.24202,-87.41602,-1641.186],\n[79.10578,-67.82392,-1672.613],\n[39.55289,-49.45136,-1693.593],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,72,[-2.842171e-14,-87.41602,-1689.874],[94.24202,-39.19223,-1641.186]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,-39.19223,-1689.323],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,72,[-2.842171e-14,-39.19223,-1689.323],[-2.842171e-14,-39.19223,-1689.323]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[86.38851,-85.76357,-1636.975],\n[90.31526,-86.62027,-1639.093],\n[94.24202,-87.41602,-1641.186]\n],0,72,[82.46176,-87.41602,-1641.186],[94.24202,-84.83226,-1634.826]));\n\nP.push(new BezierCurve([\n[94.24202,-87.41602,-1641.186],\n[94.24202,-87.41602,-1641.186]\n],0,72,[94.24202,-87.41602,-1641.186],[94.24202,-87.41602,-1641.186]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-7.105427e-15,-40.23692,-1680.551],\n[-2.131628e-14,-39.73791,-1684.947],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,72,[-2.842171e-14,-40.67884,-1689.323],[-1.227432e-14,-39.19223,-1676.131]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,-39.19223,-1689.323],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,72,[-2.842171e-14,-39.19223,-1689.323],[-2.842171e-14,-39.19223,-1689.323]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[59.32933,-66.22641,-1651.483],\n[29.66467,-51.14387,-1666.675],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.421085e-14,-81.80085,-1663.4],[70.68151,-41.82284,-1628.279]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.421085e-14,-41.82284,-1662.796],[-1.421085e-14,-41.82284,-1662.796]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[69.21756,-67.23685,-1662.136],\n[34.60878,-50.49134,-1680.215],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-84.83226,-1676.706],[82.46176,-40.67884,-1634.826]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-40.67884,-1676.131],[-1.421085e-14,-40.67884,-1676.131]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[74.60826,-82.89503,-1630.496],\n[78.53501,-83.90095,-1632.677],\n[82.46176,-84.83226,-1634.826]\n],0,72,[70.68151,-84.83226,-1634.826],[82.46176,-81.80085,-1628.279]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[82.46176,-84.83226,-1634.826]\n],0,72,[82.46176,-84.83226,-1634.826],[82.46176,-84.83226,-1634.826]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-1.421085e-14,-41.50558,-1667.268],\n[-1.421085e-14,-41.12076,-1671.711],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-41.82284,-1676.131],[-1.421085e-14,-40.67884,-1662.796]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-40.67884,-1676.131],[-1.421085e-14,-40.67884,-1676.131]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-34.60878,-30.86634,-1672.048],\n[-69.21756,-27.98686,-1645.802],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-40.67884,-1676.131],[-1.421085e-14,-27.45114,-1610.946]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-27.45114,-1610.946],[-82.46176,-27.45114,-1610.946]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,-39.19223,-1689.323],\n[-39.55289,-28.93311,-1685.054],\n[-79.10578,-26.78743,-1655.536],\n[-94.24202,-27.42315,-1616.22]\n],0,72,[-94.24202,-39.19223,-1689.323],[-2.842171e-14,-27.32105,-1616.22]));\n\nP.push(new BezierCurve([\n[-94.24202,-27.42315,-1616.22],\n[-94.24202,-27.42315,-1616.22]\n],0,72,[-94.24202,-27.42315,-1616.22],[-94.24202,-27.42315,-1616.22]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-7.105427e-15,-40.23692,-1680.551],\n[-2.131628e-14,-39.73791,-1684.947],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,72,[-2.842171e-14,-40.67884,-1689.323],[-1.227432e-14,-39.19223,-1676.131]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,-39.19223,-1689.323],\n[-2.842171e-14,-39.19223,-1689.323]\n],0,72,[-2.842171e-14,-39.19223,-1689.323],[-2.842171e-14,-39.19223,-1689.323]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-86.38851,-27.47083,-1612.716],\n[-90.31526,-27.45961,-1614.473],\n[-94.24202,-27.42315,-1616.22]\n],0,72,[-94.24202,-27.46074,-1616.22],[-82.46176,-27.42315,-1610.946]));\n\nP.push(new BezierCurve([\n[-94.24202,-27.42315,-1616.22],\n[-94.24202,-27.42315,-1616.22]\n],0,72,[-94.24202,-27.42315,-1616.22],[-94.24202,-27.42315,-1616.22]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[38.6414,19.77446,-1649.164],\n[-2.182439,9.017438,-1662.436],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-8.891789,-1657.337],[63.1135,24.24896,-1620.795]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-8.891789,-1655.544],[-34.15678,-8.891789,-1655.544]));\n\nP.push(new BezierCurve([\n[72.12972,27.71309,-1629.119],\n[44.1616,23.95019,-1660.979],\n[-2.494216,13.00725,-1675.585],\n[-39.03632,-6.212466,-1667.188]\n],0,72,[-39.03632,-6.212466,-1669.523],[72.12972,27.71309,-1629.119]));\n\nP.push(new BezierCurve([\n[-39.03632,-6.212466,-1667.188],\n[-39.03632,-6.212466,-1667.188]\n],0,72,[-39.03632,-6.212466,-1667.188],[-39.03632,-6.212466,-1667.188]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[66.11891,25.40367,-1623.57],\n[69.12431,26.55838,-1626.345],\n[72.12972,27.71309,-1629.119]\n],0,72,[63.1135,24.24896,-1629.119],[72.12972,27.71309,-1620.795]));\n\nP.push(new BezierCurve([\n[72.12972,27.71309,-1629.119],\n[72.12972,27.71309,-1629.119]\n],0,72,[72.12972,27.71309,-1629.119],[72.12972,27.71309,-1629.119]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-35.78329,-8.027699,-1659.437],\n[-37.40981,-7.132706,-1663.318],\n[-39.03632,-6.212466,-1667.188]\n],0,72,[-39.03632,-8.891789,-1667.188],[-34.15678,-6.212466,-1655.544]));\n\nP.push(new BezierCurve([\n[-39.03632,-6.212466,-1667.188],\n[-39.03632,-6.212466,-1667.188]\n],0,72,[-39.03632,-6.212466,-1667.188],[-39.03632,-6.212466,-1667.188]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[49.44111,-64.66705,-1640.601],\n[24.72056,-51.29406,-1652.927],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-78.18906,-1649.917],[58.90126,-42.52263,-1621.491]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-42.52263,-1649.277],[-1.776357e-14,-42.52263,-1649.277]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[59.32933,-66.22641,-1651.483],\n[29.66467,-51.14387,-1666.675],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.421085e-14,-81.80085,-1663.4],[70.68151,-41.82284,-1628.279]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.421085e-14,-41.82284,-1662.796],[-1.421085e-14,-41.82284,-1662.796]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[62.82801,-79.52423,-1623.808],\n[66.75476,-80.70667,-1626.062],\n[70.68151,-81.80085,-1628.279]\n],0,72,[58.90126,-81.80085,-1628.279],[70.68151,-78.18906,-1621.491]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[70.68151,-81.80085,-1628.279]\n],0,72,[70.68151,-81.80085,-1628.279],[70.68151,-81.80085,-1628.279]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-1.421085e-14,-42.38982,-1653.825],\n[-1.421085e-14,-42.1401,-1658.325],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.776357e-14,-42.52263,-1662.796],[-1.421085e-14,-41.82284,-1649.277]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.421085e-14,-41.82284,-1662.796],[-1.421085e-14,-41.82284,-1662.796]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-29.66467,-32.50181,-1658.917],\n[-59.32933,-28.94229,-1635.967],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-41.82284,-1662.796],[-1.421085e-14,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-27.29371,-1605.596],[-70.68151,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-34.60878,-30.86634,-1672.048],\n[-69.21756,-27.98686,-1645.802],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-40.67884,-1676.131],[-1.421085e-14,-27.45114,-1610.946]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-27.45114,-1610.946],[-82.46176,-27.45114,-1610.946]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-1.421085e-14,-41.50558,-1667.268],\n[-1.421085e-14,-41.12076,-1671.711],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-41.82284,-1676.131],[-1.421085e-14,-40.67884,-1662.796]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-40.67884,-1676.131],\n[-1.421085e-14,-40.67884,-1676.131]\n],0,72,[-1.421085e-14,-40.67884,-1676.131],[-1.421085e-14,-40.67884,-1676.131]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-74.60826,-27.38086,-1607.394],\n[-78.53501,-27.43145,-1609.177],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-27.45114,-1610.946],[-70.68151,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-27.45114,-1610.946],[-82.46176,-27.45114,-1610.946]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[33.1212,15.66215,-1637.323],\n[-1.870662,5.154461,-1649.235],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-11.38569,-1645.108],[54.09729,20.78482,-1612.471]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-11.38569,-1643.822],[-29.27724,-11.38569,-1643.822]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[38.6414,19.77446,-1649.164],\n[-2.182439,9.017438,-1662.436],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-8.891789,-1657.337],[63.1135,24.24896,-1620.795]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-8.891789,-1655.544],[-34.15678,-8.891789,-1655.544]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[57.10269,21.93953,-1615.246],\n[60.1081,23.09425,-1618.021],\n[63.1135,24.24896,-1620.795]\n],0,72,[54.09729,20.78482,-1620.795],[63.1135,24.24896,-1612.471]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[63.1135,24.24896,-1620.795]\n],0,72,[63.1135,24.24896,-1620.795],[63.1135,24.24896,-1620.795]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-30.90375,-10.58907,-1647.744],\n[-32.53027,-9.755879,-1651.65],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-11.38569,-1655.544],[-29.27724,-8.891789,-1643.822]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-8.891789,-1655.544],[-34.15678,-8.891789,-1655.544]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-24.72056,-33.75121,-1645.626],\n[-49.44111,-29.58135,-1626],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-42.52263,-1649.277],[-1.776357e-14,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-26.89587,-1600.145],[-58.90126,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-29.66467,-32.50181,-1658.917],\n[-59.32933,-28.94229,-1635.967],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-41.82284,-1662.796],[-1.421085e-14,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-27.29371,-1605.596],[-70.68151,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-1.421085e-14,-42.38982,-1653.825],\n[-1.421085e-14,-42.1401,-1658.325],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.776357e-14,-42.52263,-1662.796],[-1.421085e-14,-41.82284,-1649.277]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-41.82284,-1662.796],\n[-1.421085e-14,-41.82284,-1662.796]\n],0,72,[-1.421085e-14,-41.82284,-1662.796],[-1.421085e-14,-41.82284,-1662.796]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-62.82801,-27.08285,-1601.984],\n[-66.75476,-27.20656,-1603.798],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-27.29371,-1605.596],[-58.90126,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-27.29371,-1605.596],[-70.68151,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[39.55289,-62.36039,-1629.408],\n[19.77644,-50.76035,-1638.894],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-73.78713,-1636.192],[47.12101,-42.61768,-1614.374]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-42.61768,-1635.505],[-1.421085e-14,-42.61768,-1635.505]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[49.44111,-64.66705,-1640.601],\n[24.72056,-51.29406,-1652.927],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-78.18906,-1649.917],[58.90126,-42.52263,-1621.491]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-42.52263,-1649.277],[-1.776357e-14,-42.52263,-1649.277]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[51.04776,-75.36597,-1616.792],\n[54.97451,-76.85389,-1619.173],\n[58.90126,-78.18906,-1621.491]\n],0,72,[47.12101,-78.18906,-1621.491],[58.90126,-73.78713,-1614.374]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[58.90126,-78.18906,-1621.491]\n],0,72,[58.90126,-78.18906,-1621.491],[58.90126,-78.18906,-1621.491]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-1.065814e-14,-42.67136,-1640.131],\n[-1.776357e-14,-42.65545,-1644.728],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-42.64644,-1649.277],[-1.321609e-14,-42.52263,-1635.505]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-42.52263,-1649.277],[-1.776357e-14,-42.52263,-1649.277]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-66.13112,-26.80102,-1648.651],\n[-89.25597,-51.86245,-1621.595],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1655.544],[-34.15678,-8.891789,-1593.726]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1593.726],[-89.25597,-74.97205,-1593.726]));\n\nP.push(new BezierCurve([\n[-39.03632,-6.212466,-1667.188],\n[-75.57843,-25.43218,-1658.792],\n[-102.0068,-52.92866,-1627.394],\n[-102.0068,-78.38447,-1595.146]\n],0,72,[-102.0068,-78.38447,-1667.188],[-39.03632,-6.212466,-1595.146]));\n\nP.push(new BezierCurve([\n[-102.0068,-78.38447,-1595.146],\n[-102.0068,-78.38447,-1595.146]\n],0,72,[-102.0068,-78.38447,-1595.146],[-102.0068,-78.38447,-1595.146]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-35.78329,-8.027699,-1659.437],\n[-37.40981,-7.132706,-1663.318],\n[-39.03632,-6.212466,-1667.188]\n],0,72,[-39.03632,-8.891789,-1667.188],[-34.15678,-6.212466,-1655.544]));\n\nP.push(new BezierCurve([\n[-39.03632,-6.212466,-1667.188],\n[-39.03632,-6.212466,-1667.188]\n],0,72,[-39.03632,-6.212466,-1667.188],[-39.03632,-6.212466,-1667.188]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-93.50625,-76.16314,-1594.222],\n[-97.75654,-77.29713,-1594.694],\n[-102.0068,-78.38447,-1595.146]\n],0,72,[-102.0068,-78.38447,-1595.146],[-89.25597,-74.97205,-1593.726]));\n\nP.push(new BezierCurve([\n[-102.0068,-78.38447,-1595.146],\n[-102.0068,-78.38447,-1595.146]\n],0,72,[-102.0068,-78.38447,-1595.146],[-102.0068,-78.38447,-1595.146]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[27.601,11.63207,-1625.448],\n[-1.558885,1.455926,-1635.965],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-13.6392,-1632.824],[45.08107,17.32068,-1604.147]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-13.6392,-1632],[-24.3977,-13.6392,-1632]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[33.1212,15.66215,-1637.323],\n[-1.870662,5.154461,-1649.235],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-11.38569,-1645.108],[54.09729,20.78482,-1612.471]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-11.38569,-1643.822],[-29.27724,-11.38569,-1643.822]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[48.08648,18.4754,-1606.922],\n[51.09188,19.63011,-1609.696],\n[54.09729,20.78482,-1612.471]\n],0,72,[45.08107,17.32068,-1612.471],[54.09729,20.78482,-1604.147]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[54.09729,20.78482,-1612.471]\n],0,72,[54.09729,20.78482,-1612.471],[54.09729,20.78482,-1612.471]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-26.02421,-12.94239,-1635.963],\n[-27.65073,-12.18232,-1639.9],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-13.6392,-1643.822],[-24.3977,-11.38569,-1632]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-11.38569,-1643.822],[-29.27724,-11.38569,-1643.822]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-56.68382,-27.92585,-1638.409],\n[-76.50512,-50.49847,-1615.672],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1643.822],[-29.27724,-11.38569,-1592.163]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1592.163],[-76.50512,-71.21702,-1592.163]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-66.13112,-26.80102,-1648.651],\n[-89.25597,-51.86245,-1621.595],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1655.544],[-34.15678,-8.891789,-1593.726]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1593.726],[-89.25597,-74.97205,-1593.726]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-30.90375,-10.58907,-1647.744],\n[-32.53027,-9.755879,-1651.65],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-11.38569,-1655.544],[-29.27724,-8.891789,-1643.822]));\n\nP.push(new BezierCurve([\n[-34.15678,-8.891789,-1655.544],\n[-34.15678,-8.891789,-1655.544]\n],0,72,[-34.15678,-8.891789,-1655.544],[-34.15678,-8.891789,-1655.544]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-80.7554,-72.53276,-1592.711],\n[-85.00569,-73.78095,-1593.23],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1593.726],[-76.50512,-71.21702,-1592.163]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1593.726],[-89.25597,-74.97205,-1593.726]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-19.77644,-34.47501,-1632.117],\n[-39.55289,-29.78971,-1615.854],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-42.61768,-1635.505],[-1.421085e-14,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-26.17075,-1594.558],[-47.12101,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-24.72056,-33.75121,-1645.626],\n[-49.44111,-29.58135,-1626],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-42.52263,-1649.277],[-1.776357e-14,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-26.89587,-1600.145],[-58.90126,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-1.065814e-14,-42.67136,-1640.131],\n[-1.776357e-14,-42.65545,-1644.728],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-42.64644,-1649.277],[-1.321609e-14,-42.52263,-1635.505]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,-42.52263,-1649.277],\n[-1.776357e-14,-42.52263,-1649.277]\n],0,72,[-1.776357e-14,-42.52263,-1649.277],[-1.776357e-14,-42.52263,-1649.277]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-51.04776,-26.45866,-1596.44],\n[-54.97451,-26.7089,-1598.305],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-26.89587,-1600.145],[-47.12101,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-26.89587,-1600.145],[-58.90126,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[29.66467,-58.96032,-1617.761],\n[14.83233,-49.226,-1624.444],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-68.22912,-1622.117],[35.34076,-41.8279,-1606.776]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-41.8279,-1621.366],[-7.105427e-15,-41.8279,-1621.366]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[39.55289,-62.36039,-1629.408],\n[19.77644,-50.76035,-1638.894],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-73.78713,-1636.192],[47.12101,-42.61768,-1614.374]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-42.61768,-1635.505],[-1.421085e-14,-42.61768,-1635.505]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[39.26751,-70.5385,-1609.498],\n[43.19426,-72.20828,-1611.955],\n[47.12101,-73.78713,-1614.374]\n],0,72,[35.34076,-73.78713,-1614.374],[47.12101,-68.22912,-1606.776]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[47.12101,-73.78713,-1614.374]\n],0,72,[47.12101,-73.78713,-1614.374],[47.12101,-73.78713,-1614.374]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-7.105427e-15,-42.44071,-1626.224],\n[-7.105427e-15,-42.56399,-1630.879],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-42.61768,-1635.505],[-7.105427e-15,-41.8279,-1621.366]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-42.61768,-1635.505],[-1.421085e-14,-42.61768,-1635.505]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[22.0808,7.713913,-1613.526],\n[-1.247108,-2.018738,-1622.602],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-15.56541,-1620.469],[36.06486,13.85655,-1595.823]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-15.56541,-1620.042],[-19.51816,-15.56541,-1620.042]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[27.601,11.63207,-1625.448],\n[-1.558885,1.455926,-1635.965],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-13.6392,-1632.824],[45.08107,17.32068,-1604.147]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-13.6392,-1632],[-24.3977,-13.6392,-1632]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[39.07026,15.01126,-1598.598],\n[42.07567,16.16597,-1601.372],\n[45.08107,17.32068,-1604.147]\n],0,72,[36.06486,13.85655,-1604.147],[45.08107,17.32068,-1595.823]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[45.08107,17.32068,-1604.147]\n],0,72,[45.08107,17.32068,-1604.147],[45.08107,17.32068,-1604.147]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-21.14467,-14.96954,-1624.047],\n[-22.77119,-14.336,-1628.037],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-15.56541,-1632],[-19.51816,-13.6392,-1620.042]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-13.6392,-1632],[-24.3977,-13.6392,-1632]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-47.23652,-28.73432,-1628.035],\n[-63.75426,-48.74842,-1609.589],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1632],[-24.3977,-13.6392,-1590.416]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1590.416],[-63.75426,-67.01778,-1590.416]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-56.68382,-27.92585,-1638.409],\n[-76.50512,-50.49847,-1615.672],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1643.822],[-29.27724,-11.38569,-1592.163]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1592.163],[-76.50512,-71.21702,-1592.163]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-26.02421,-12.94239,-1635.963],\n[-27.65073,-12.18232,-1639.9],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-13.6392,-1643.822],[-24.3977,-11.38569,-1632]));\n\nP.push(new BezierCurve([\n[-29.27724,-11.38569,-1643.822],\n[-29.27724,-11.38569,-1643.822]\n],0,72,[-29.27724,-11.38569,-1643.822],[-29.27724,-11.38569,-1643.822]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-68.00455,-68.51797,-1591.04],\n[-72.25483,-69.90127,-1591.616],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1592.163],[-63.75426,-67.01778,-1590.416]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1592.163],[-76.50512,-71.21702,-1592.163]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-14.83233,-34.42979,-1618.287],\n[-29.66467,-29.36789,-1605.446],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-41.8279,-1621.366],[-7.105427e-15,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-24.96677,-1588.772],[-35.34076,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-19.77644,-34.47501,-1632.117],\n[-39.55289,-29.78971,-1615.854],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-42.61768,-1635.505],[-1.421085e-14,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-26.17075,-1594.558],[-47.12101,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-7.105427e-15,-42.44071,-1626.224],\n[-7.105427e-15,-42.56399,-1630.879],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-42.61768,-1635.505],[-7.105427e-15,-41.8279,-1621.366]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,-42.61768,-1635.505],\n[-1.421085e-14,-42.61768,-1635.505]\n],0,72,[-1.421085e-14,-42.61768,-1635.505],[-1.421085e-14,-42.61768,-1635.505]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-39.26751,-25.55727,-1590.779],\n[-43.19426,-25.88285,-1592.676],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-26.17075,-1594.558],[-35.34076,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-26.17075,-1594.558],[-47.12101,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-37.78921,-29.11208,-1617.482],\n[-51.00341,-46.47278,-1603.287],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1620.042],[-19.51816,-15.56541,-1588.417]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1588.417],[-51.00341,-62.21379,-1588.417]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-47.23652,-28.73432,-1628.035],\n[-63.75426,-48.74842,-1609.589],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1632],[-24.3977,-13.6392,-1590.416]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1590.416],[-63.75426,-67.01778,-1590.416]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-21.14467,-14.96954,-1624.047],\n[-22.77119,-14.336,-1628.037],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-15.56541,-1632],[-19.51816,-13.6392,-1620.042]));\n\nP.push(new BezierCurve([\n[-24.3977,-13.6392,-1632],\n[-24.3977,-13.6392,-1632]\n],0,72,[-24.3977,-13.6392,-1632],[-24.3977,-13.6392,-1632]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-55.2537,-63.90049,-1589.119],\n[-59.50398,-65.51758,-1589.791],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1590.416],[-51.00341,-62.21379,-1588.417]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1590.416],[-63.75426,-67.01778,-1590.416]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[19.77644,-53.75973,-1605.364],\n[9.888222,-46.0439,-1609.309],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-60.76738,-1607.47],[23.5605,-39.58106,-1598.385]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-39.58106,-1606.62],[-7.105427e-15,-39.58106,-1606.62]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[29.66467,-58.96032,-1617.761],\n[14.83233,-49.226,-1624.444],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-68.22912,-1622.117],[35.34076,-41.8279,-1606.776]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-41.8279,-1621.366],[-7.105427e-15,-41.8279,-1621.366]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[27.48725,-62.97074,-1601.064],\n[31.41401,-65.91973,-1604.053],\n[35.34076,-68.22912,-1606.776]\n],0,72,[23.5605,-68.22912,-1606.776],[35.34076,-60.76738,-1598.385]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[35.34076,-68.22912,-1606.776]\n],0,72,[35.34076,-68.22912,-1606.776],[35.34076,-68.22912,-1606.776]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-7.105427e-15,-40.11273,-1611.445],\n[-7.105427e-15,-41.21508,-1616.507],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-41.8279,-1621.366],[-7.105427e-15,-39.58106,-1606.62]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-41.8279,-1621.366],[-7.105427e-15,-41.8279,-1621.366]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[16.5606,3.959538,-1601.536],\n[-0.9353308,-5.165848,-1609.103],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.01276,-1608.012],[27.04864,10.39241,-1587.499]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.01276,-1607.885],[-14.63862,-17.01276,-1607.885]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[22.0808,7.713913,-1613.526],\n[-1.247108,-2.018738,-1622.602],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-15.56541,-1620.469],[36.06486,13.85655,-1595.823]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-15.56541,-1620.042],[-19.51816,-15.56541,-1620.042]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[30.05405,11.54712,-1590.273],\n[33.05945,12.70184,-1593.048],\n[36.06486,13.85655,-1595.823]\n],0,72,[27.04864,10.39241,-1595.823],[36.06486,13.85655,-1587.499]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[36.06486,13.85655,-1595.823]\n],0,72,[36.06486,13.85655,-1595.823],[36.06486,13.85655,-1595.823]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-16.26513,-16.71949,-1612.016],\n[-17.89165,-16.16128,-1616.037],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-17.01276,-1620.042],[-14.63862,-15.56541,-1607.885]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-15.56541,-1620.042],[-19.51816,-15.56541,-1620.042]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-28.34191,-28.85968,-1606.667],\n[-38.25256,-43.42812,-1596.664],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1607.885],[-14.63862,-17.01276,-1586.049]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1586.049],[-38.25256,-56.52498,-1586.049]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-37.78921,-29.11208,-1617.482],\n[-51.00341,-46.47278,-1603.287],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1620.042],[-19.51816,-15.56541,-1588.417]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1588.417],[-51.00341,-62.21379,-1588.417]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-16.26513,-16.71949,-1612.016],\n[-17.89165,-16.16128,-1616.037],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-17.01276,-1620.042],[-14.63862,-15.56541,-1607.885]));\n\nP.push(new BezierCurve([\n[-19.51816,-15.56541,-1620.042],\n[-19.51816,-15.56541,-1620.042]\n],0,72,[-19.51816,-15.56541,-1620.042],[-19.51816,-15.56541,-1620.042]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-42.50284,-58.77081,-1586.984],\n[-46.75313,-60.5271,-1587.715],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1588.417],[-38.25256,-56.52498,-1586.049]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1588.417],[-51.00341,-62.21379,-1588.417]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[2.182439,140.0376,-1607.912],\n[-38.6414,139.6779,-1599.266],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,129.6385,-1602.023],[34.15678,137.3829,-1576.672]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,130.2754,-1576.672],[-63.1135,130.2754,-1576.672]));\n\nP.push(new BezierCurve([\n[39.03632,138.6231,-1606.914],\n[2.494216,149.9909,-1618.578],\n[-44.1616,149.3112,-1608.809],\n[-72.12972,138.5655,-1582.988]\n],0,72,[-72.12972,138.5655,-1611.789],[39.03632,146.8891,-1582.988]));\n\nP.push(new BezierCurve([\n[-72.12972,138.5655,-1582.988],\n[-72.12972,138.5655,-1582.988]\n],0,72,[-72.12972,138.5655,-1582.988],[-72.12972,138.5655,-1582.988]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[35.78329,132.7034,-1600.872],\n[37.40981,135.6938,-1603.88],\n[39.03632,138.6231,-1606.914]\n],0,72,[34.15678,129.6385,-1606.914],[39.03632,138.6231,-1597.894]));\n\nP.push(new BezierCurve([\n[39.03632,138.6231,-1606.914],\n[39.03632,138.6231,-1606.914]\n],0,72,[39.03632,138.6231,-1606.914],[39.03632,138.6231,-1606.914]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-66.11891,133.1146,-1578.746],\n[-69.12431,135.873,-1580.853],\n[-72.12972,138.5655,-1582.988]\n],0,72,[-72.12972,130.2754,-1582.988],[-63.1135,138.5655,-1576.672]));\n\nP.push(new BezierCurve([\n[-72.12972,138.5655,-1582.988],\n[-72.12972,138.5655,-1582.988]\n],0,72,[-72.12972,138.5655,-1582.988],[-72.12972,138.5655,-1582.988]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-9.888222,-33.11822,-1603.93],\n[-19.77644,-27.90837,-1594.606],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-39.58106,-1606.62],[-7.105427e-15,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-22.97423,-1582.657],[-23.5605,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-14.83233,-34.42979,-1618.287],\n[-29.66467,-29.36789,-1605.446],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-41.8279,-1621.366],[-7.105427e-15,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-24.96677,-1588.772],[-35.34076,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-7.105427e-15,-40.11273,-1611.445],\n[-7.105427e-15,-41.21508,-1616.507],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-41.8279,-1621.366],[-7.105427e-15,-39.58106,-1606.62]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-41.8279,-1621.366],\n[-7.105427e-15,-41.8279,-1621.366]\n],0,72,[-7.105427e-15,-41.8279,-1621.366],[-7.105427e-15,-41.8279,-1621.366]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-27.48725,-23.52082,-1584.647],\n[-31.41401,-24.37626,-1586.764],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-24.96677,-1588.772],[-23.5605,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-24.96677,-1588.772],[-35.34076,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[9.888222,-44.80126,-1591.403],\n[4.944111,-39.42277,-1592.743],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-49.33234,-1591.65],[11.78025,-34.2932,-1588.341]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-34.2932,-1590.608],[-3.552714e-15,-34.2932,-1590.608]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[19.77644,-53.75973,-1605.364],\n[9.888222,-46.0439,-1609.309],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-60.76738,-1607.47],[23.5605,-39.58106,-1598.385]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-39.58106,-1606.62],[-7.105427e-15,-39.58106,-1606.62]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[15.707,-57.10629,-1593.338],\n[19.63375,-58.56402,-1595.706],\n[23.5605,-60.76738,-1598.385]\n],0,72,[11.78025,-60.76738,-1598.385],[23.5605,-49.33234,-1588.341]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[23.5605,-60.76738,-1598.385]\n],0,72,[23.5605,-60.76738,-1598.385],[23.5605,-60.76738,-1598.385]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-3.552714e-15,-39.08841,-1597.207],\n[-5.329071e-15,-39.0494,-1601.795],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-39.58106,-1606.62],[-3.552714e-15,-34.2932,-1590.608]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-39.58106,-1606.62],[-7.105427e-15,-39.58106,-1606.62]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[11.0404,0.4748556,-1589.433],\n[-0.6235539,-7.773571,-1595.379],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-17.67156,-1595.399],[18.03243,6.928274,-1579.174]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-17.67156,-1595.399],[-9.75908,-17.67156,-1595.399]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[16.5606,3.959538,-1601.536],\n[-0.9353308,-5.165848,-1609.103],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.01276,-1608.012],[27.04864,10.39241,-1587.499]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.01276,-1607.885],[-14.63862,-17.01276,-1607.885]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[21.03783,8.082986,-1581.949],\n[24.04324,9.237698,-1584.724],\n[27.04864,10.39241,-1587.499]\n],0,72,[18.03243,6.928274,-1587.499],[27.04864,10.39241,-1579.174]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[27.04864,10.39241,-1587.499]\n],0,72,[27.04864,10.39241,-1587.499],[27.04864,10.39241,-1587.499]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-11.38559,-17.33437,-1599.512],\n[-13.01211,-17.30603,-1603.754],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.67156,-1607.885],[-9.75908,-17.01276,-1595.399]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.01276,-1607.885],[-14.63862,-17.01276,-1607.885]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-18.89461,-27.56955,-1595.42],\n[-25.50171,-39.11711,-1589.515],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1595.399],[-9.75908,-17.67156,-1583.075]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1583.075],[-25.50171,-49.37912,-1583.075]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-28.34191,-28.85968,-1606.667],\n[-38.25256,-43.42812,-1596.664],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1607.885],[-14.63862,-17.01276,-1586.049]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1586.049],[-38.25256,-56.52498,-1586.049]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-11.38559,-17.33437,-1599.512],\n[-13.01211,-17.30603,-1603.754],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.67156,-1607.885],[-9.75908,-17.01276,-1595.399]));\n\nP.push(new BezierCurve([\n[-14.63862,-17.01276,-1607.885],\n[-14.63862,-17.01276,-1607.885]\n],0,72,[-14.63862,-17.01276,-1607.885],[-14.63862,-17.01276,-1607.885]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-29.75199,-51.5438,-1583.976],\n[-34.00227,-54.27916,-1585.115],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1586.049],[-25.50171,-49.37912,-1583.075]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1586.049],[-38.25256,-56.52498,-1586.049]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[1.870662,129.6123,-1597.441],\n[-33.1212,129.5602,-1589.924],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,120.2062,-1592.452],[29.27724,127.4114,-1570.558]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,121.5009,-1570.558],[-54.09729,121.5009,-1570.558]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[2.182439,140.0376,-1607.912],\n[-38.6414,139.6779,-1599.266],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,129.6385,-1602.023],[34.15678,137.3829,-1576.672]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,130.2754,-1576.672],[-63.1135,130.2754,-1576.672]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[30.90375,123.434,-1591.969],\n[32.53027,126.5735,-1594.916],\n[34.15678,129.6385,-1597.894]\n],0,72,[29.27724,120.2062,-1597.894],[34.15678,129.6385,-1589.06]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[34.15678,129.6385,-1597.894]\n],0,72,[34.15678,129.6385,-1597.894],[34.15678,129.6385,-1597.894]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-57.10269,124.5163,-1572.558],\n[-60.1081,127.4363,-1574.598],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,121.5009,-1576.672],[-54.09729,130.2754,-1570.558]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,130.2754,-1576.672],[-63.1135,130.2754,-1576.672]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-4.944111,-29.16364,-1588.474],\n[-9.888222,-24.28301,-1582.864],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-34.2932,-1590.608],[-3.552714e-15,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-19.33591,-1575.858],[-11.78025,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-9.888222,-33.11822,-1603.93],\n[-19.77644,-27.90837,-1594.606],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-39.58106,-1606.62],[-7.105427e-15,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-22.97423,-1582.657],[-23.5605,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-3.552714e-15,-39.08841,-1597.207],\n[-5.329071e-15,-39.0494,-1601.795],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-39.58106,-1606.62],[-3.552714e-15,-34.2932,-1590.608]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,-39.58106,-1606.62],\n[-7.105427e-15,-39.58106,-1606.62]\n],0,72,[-7.105427e-15,-39.58106,-1606.62],[-7.105427e-15,-39.58106,-1606.62]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-15.707,-22.18991,-1578.807],\n[-19.63375,-22.42764,-1580.668],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-22.97423,-1582.657],[-11.78025,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-22.97423,-1582.657],[-23.5605,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[75.07337,-113.4416,-1573.86],\n[82.03369,-97.37529,-1605.075],\n[70.68151,-81.80085,-1628.279]\n],0,72,[54.09729,-121.5009,-1628.279],[76.09503,-81.80085,-1554.494]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[70.68151,-81.80085,-1628.279]\n],0,72,[70.68151,-81.80085,-1628.279],[70.68151,-81.80085,-1628.279]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[87.5856,-120.873,-1570.974],\n[95.70597,-102.4277,-1607.516],\n[82.46176,-84.83226,-1634.826]\n],0,72,[63.1135,-130.2754,-1634.826],[88.77753,-84.83226,-1548.38]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[82.46176,-84.83226,-1634.826]\n],0,72,[82.46176,-84.83226,-1634.826],[82.46176,-84.83226,-1634.826]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[57.10269,-124.5163,-1552.494],\n[60.1081,-127.4363,-1550.454],\n[63.1135,-130.2754,-1548.38]\n],0,72,[54.09729,-130.2754,-1554.494],[63.1135,-121.5009,-1548.38]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[63.1135,-130.2754,-1548.38]\n],0,72,[63.1135,-130.2754,-1548.38],[63.1135,-130.2754,-1548.38]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[74.60826,-82.89503,-1630.496],\n[78.53501,-83.90095,-1632.677],\n[82.46176,-84.83226,-1634.826]\n],0,72,[70.68151,-84.83226,-1634.826],[82.46176,-81.80085,-1628.279]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[82.46176,-84.83226,-1634.826]\n],0,72,[82.46176,-84.83226,-1634.826],[82.46176,-84.83226,-1634.826]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[62.56115,-105.3821,-1576.486],\n[68.36141,-91.71107,-1602.38],\n[58.90126,-78.18906,-1621.491]\n],0,72,[45.08107,-112.0981,-1621.491],[63.41252,-78.18906,-1560.347]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[58.90126,-78.18906,-1621.491]\n],0,72,[58.90126,-78.18906,-1621.491],[58.90126,-78.18906,-1621.491]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[75.07337,-113.4416,-1573.86],\n[82.03369,-97.37529,-1605.075],\n[70.68151,-81.80085,-1628.279]\n],0,72,[54.09729,-121.5009,-1628.279],[76.09503,-81.80085,-1554.494]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[70.68151,-81.80085,-1628.279]\n],0,72,[70.68151,-81.80085,-1628.279],[70.68151,-81.80085,-1628.279]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[48.08648,-115.3744,-1558.455],\n[51.09188,-118.4854,-1556.495],\n[54.09729,-121.5009,-1554.494]\n],0,72,[45.08107,-121.5009,-1560.347],[54.09729,-112.0981,-1554.494]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[54.09729,-121.5009,-1554.494]\n],0,72,[54.09729,-121.5009,-1554.494],[54.09729,-121.5009,-1554.494]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[62.82801,-79.52423,-1623.808],\n[66.75476,-80.70667,-1626.062],\n[70.68151,-81.80085,-1628.279]\n],0,72,[58.90126,-81.80085,-1628.279],[70.68151,-78.18906,-1621.491]));\n\nP.push(new BezierCurve([\n[70.68151,-81.80085,-1628.279],\n[70.68151,-81.80085,-1628.279]\n],0,72,[70.68151,-81.80085,-1628.279],[70.68151,-81.80085,-1628.279]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[87.5856,-120.873,-1570.974],\n[95.70597,-102.4277,-1607.516],\n[82.46176,-84.83226,-1634.826]\n],0,72,[63.1135,-130.2754,-1634.826],[88.77753,-84.83226,-1548.38]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[82.46176,-84.83226,-1634.826]\n],0,72,[82.46176,-84.83226,-1634.826],[82.46176,-84.83226,-1634.826]));\n\nP.push(new BezierCurve([\n[72.12972,-138.5655,-1542.064],\n[100.0978,-127.8198,-1567.886],\n[109.3783,-107.0081,-1609.76],\n[94.24202,-87.41602,-1641.186]\n],0,72,[72.12972,-138.5655,-1641.186],[101.46,-87.41602,-1542.064]));\n\nP.push(new BezierCurve([\n[94.24202,-87.41602,-1641.186],\n[94.24202,-87.41602,-1641.186]\n],0,72,[94.24202,-87.41602,-1641.186],[94.24202,-87.41602,-1641.186]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[66.11891,-133.1146,-1546.306],\n[69.12431,-135.873,-1544.199],\n[72.12972,-138.5655,-1542.064]\n],0,72,[63.1135,-138.5655,-1548.38],[72.12972,-130.2754,-1542.064]));\n\nP.push(new BezierCurve([\n[72.12972,-138.5655,-1542.064],\n[72.12972,-138.5655,-1542.064]\n],0,72,[72.12972,-138.5655,-1542.064],[72.12972,-138.5655,-1542.064]));\n\nP.push(new BezierCurve([\n[82.46176,-84.83226,-1634.826],\n[86.38851,-85.76357,-1636.975],\n[90.31526,-86.62027,-1639.093],\n[94.24202,-87.41602,-1641.186]\n],0,72,[82.46176,-87.41602,-1641.186],[94.24202,-84.83226,-1634.826]));\n\nP.push(new BezierCurve([\n[94.24202,-87.41602,-1641.186],\n[94.24202,-87.41602,-1641.186]\n],0,72,[94.24202,-87.41602,-1641.186],[94.24202,-87.41602,-1641.186]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[50.04892,-96.4673,-1578.755],\n[54.68913,-85.21387,-1599.339],\n[47.12101,-73.78713,-1614.374]\n],0,72,[36.06486,-101.8401,-1614.374],[50.73002,-73.78713,-1565.844]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[47.12101,-73.78713,-1614.374]\n],0,72,[47.12101,-73.78713,-1614.374],[47.12101,-73.78713,-1614.374]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[62.56115,-105.3821,-1576.486],\n[68.36141,-91.71107,-1602.38],\n[58.90126,-78.18906,-1621.491]\n],0,72,[45.08107,-112.0981,-1621.491],[63.41252,-78.18906,-1560.347]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[58.90126,-78.18906,-1621.491]\n],0,72,[58.90126,-78.18906,-1621.491],[58.90126,-78.18906,-1621.491]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[39.07026,-105.3802,-1564.062],\n[42.07567,-108.8218,-1562.239],\n[45.08107,-112.0981,-1560.347]\n],0,72,[36.06486,-112.0981,-1565.844],[45.08107,-101.8401,-1560.347]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[45.08107,-112.0981,-1560.347]\n],0,72,[45.08107,-112.0981,-1560.347],[45.08107,-112.0981,-1560.347]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[51.04776,-75.36597,-1616.792],\n[54.97451,-76.85389,-1619.173],\n[58.90126,-78.18906,-1621.491]\n],0,72,[47.12101,-78.18906,-1621.491],[58.90126,-73.78713,-1614.374]));\n\nP.push(new BezierCurve([\n[58.90126,-78.18906,-1621.491],\n[58.90126,-78.18906,-1621.491]\n],0,72,[58.90126,-78.18906,-1621.491],[58.90126,-78.18906,-1621.491]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[37.53669,-86.30118,-1580.503],\n[41.01684,-77.49791,-1595.79],\n[35.34076,-68.22912,-1606.776]\n],0,72,[27.04864,-90.33081,-1606.776],[38.04751,-68.22912,-1570.82]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[35.34076,-68.22912,-1606.776]\n],0,72,[35.34076,-68.22912,-1606.776],[35.34076,-68.22912,-1606.776]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[50.04892,-96.4673,-1578.755],\n[54.68913,-85.21387,-1599.339],\n[47.12101,-73.78713,-1614.374]\n],0,72,[36.06486,-101.8401,-1614.374],[50.73002,-73.78713,-1565.844]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[47.12101,-73.78713,-1614.374]\n],0,72,[47.12101,-73.78713,-1614.374],[47.12101,-73.78713,-1614.374]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[30.05405,-94.6616,-1569.367],\n[33.05945,-98.30008,-1567.626],\n[36.06486,-101.8401,-1565.844]\n],0,72,[27.04864,-101.8401,-1570.82],[36.06486,-90.33081,-1565.844]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[36.06486,-101.8401,-1565.844]\n],0,72,[36.06486,-101.8401,-1565.844],[36.06486,-101.8401,-1565.844]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[39.26751,-70.5385,-1609.498],\n[43.19426,-72.20828,-1611.955],\n[47.12101,-73.78713,-1614.374]\n],0,72,[35.34076,-73.78713,-1614.374],[47.12101,-68.22912,-1606.776]));\n\nP.push(new BezierCurve([\n[47.12101,-73.78713,-1614.374],\n[47.12101,-73.78713,-1614.374]\n],0,72,[47.12101,-73.78713,-1614.374],[47.12101,-73.78713,-1614.374]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[25.02446,-74.07448,-1581.394],\n[27.34456,-67.77502,-1591.406],\n[23.5605,-60.76738,-1598.385]\n],0,72,[18.03243,-76.7609,-1598.385],[25.36501,-60.76738,-1574.939]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[23.5605,-60.76738,-1598.385]\n],0,72,[23.5605,-60.76738,-1598.385],[23.5605,-60.76738,-1598.385]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[37.53669,-86.30118,-1580.503],\n[41.01684,-77.49791,-1595.79],\n[35.34076,-68.22912,-1606.776]\n],0,72,[27.04864,-90.33081,-1606.776],[38.04751,-68.22912,-1570.82]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[35.34076,-68.22912,-1606.776]\n],0,72,[35.34076,-68.22912,-1606.776],[35.34076,-68.22912,-1606.776]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[21.03783,-80.97692,-1573.438],\n[24.04324,-86.00002,-1572.273],\n[27.04864,-90.33081,-1570.82]\n],0,72,[18.03243,-90.33081,-1574.939],[27.04864,-76.7609,-1570.82]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[27.04864,-90.33081,-1570.82]\n],0,72,[27.04864,-90.33081,-1570.82],[27.04864,-90.33081,-1570.82]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[27.48725,-62.97074,-1601.064],\n[31.41401,-65.91973,-1604.053],\n[35.34076,-68.22912,-1606.776]\n],0,72,[23.5605,-68.22912,-1606.776],[35.34076,-60.76738,-1598.385]));\n\nP.push(new BezierCurve([\n[35.34076,-68.22912,-1606.776],\n[35.34076,-68.22912,-1606.776]\n],0,72,[35.34076,-68.22912,-1606.776],[35.34076,-68.22912,-1606.776]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-9.447303,-24.11361,-1583.271],\n[-12.75085,-32.16309,-1581.266],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1582.511],[-4.87954,-16.68457,-1578.836]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1578.836],[-12.75085,-39.19223,-1578.836]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-18.89461,-27.56955,-1595.42],\n[-25.50171,-39.11711,-1589.515],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1595.399],[-9.75908,-17.67156,-1583.075]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1583.075],[-25.50171,-49.37912,-1583.075]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-6.506053,-18.65479,-1587.302],\n[-8.132567,-18.00875,-1591.287],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-18.04823,-1595.399],[-4.87954,-16.68457,-1582.229]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-17.67156,-1595.399],[-9.75908,-17.67156,-1595.399]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-17.00114,-45.62045,-1581.511],\n[-21.25142,-47.21444,-1582.175],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1583.075],[-12.75085,-39.19223,-1578.836]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1583.075],[-25.50171,-49.37912,-1583.075]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[1.558885,118.5753,-1587.225],\n[-27.601,118.8142,-1580.843],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,110.1935,-1583.134],[24.3977,116.8361,-1564.705]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,112.0981,-1564.705],[-45.08107,112.0981,-1564.705]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[1.870662,129.6123,-1597.441],\n[-33.1212,129.5602,-1589.924],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,120.2062,-1592.452],[29.27724,127.4114,-1570.558]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,121.5009,-1570.558],[-54.09729,121.5009,-1570.558]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[26.02421,113.6623,-1583.276],\n[27.65073,116.9784,-1586.15],\n[29.27724,120.2062,-1589.06]\n],0,72,[24.3977,110.1935,-1589.06],[29.27724,120.2062,-1580.467]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[29.27724,120.2062,-1589.06]\n],0,72,[29.27724,120.2062,-1589.06],[29.27724,120.2062,-1589.06]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-48.08648,115.3744,-1566.597],\n[-51.09188,118.4854,-1568.557],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,112.0981,-1570.558],[-45.08107,121.5009,-1564.705]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,121.5009,-1570.558],[-54.09729,121.5009,-1570.558]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[5.5202,-2.446948,-1577.097],\n[-0.3117769,-9.255537,-1581.187],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[9.016214,3.464137,-1570.85]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[-4.87954,-16.68457,-1582.229]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[11.0404,0.4748556,-1589.433],\n[-0.6235539,-7.773571,-1595.379],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-17.67156,-1595.399],[18.03243,6.928274,-1579.174]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-17.67156,-1595.399],[-9.75908,-17.67156,-1595.399]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[12.02162,4.618849,-1573.625],\n[15.02702,5.773561,-1576.4],\n[18.03243,6.928274,-1579.174]\n],0,72,[9.016214,3.464137,-1579.174],[18.03243,6.928274,-1570.85]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[18.03243,6.928274,-1579.174]\n],0,72,[18.03243,6.928274,-1579.174],[18.03243,6.928274,-1579.174]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-6.506053,-18.65479,-1587.302],\n[-8.132567,-18.00875,-1591.287],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-18.04823,-1595.399],[-4.87954,-16.68457,-1582.229]));\n\nP.push(new BezierCurve([\n[-9.75908,-17.67156,-1595.399],\n[-9.75908,-17.67156,-1595.399]\n],0,72,[-9.75908,-17.67156,-1595.399],[-9.75908,-17.67156,-1595.399]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[12.51223,-57.54712,-1580.495],\n[13.67228,-53.86343,-1585.279],\n[11.78025,-49.33234,-1588.341]\n],0,72,[9.016214,-58.89033,-1588.341],[12.6825,-49.33234,-1577.268]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[11.78025,-49.33234,-1588.341]\n],0,72,[11.78025,-49.33234,-1588.341],[11.78025,-49.33234,-1588.341]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[25.02446,-74.07448,-1581.394],\n[27.34456,-67.77502,-1591.406],\n[23.5605,-60.76738,-1598.385]\n],0,72,[18.03243,-76.7609,-1598.385],[25.36501,-60.76738,-1574.939]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[23.5605,-60.76738,-1598.385]\n],0,72,[23.5605,-60.76738,-1598.385],[23.5605,-60.76738,-1598.385]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[12.02162,-69.13591,-1578.276],\n[15.02702,-72.54487,-1576.44],\n[18.03243,-76.7609,-1574.939]\n],0,72,[9.016214,-76.7609,-1577.557],[18.03243,-58.89033,-1574.939]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[18.03243,-76.7609,-1574.939]\n],0,72,[18.03243,-76.7609,-1574.939],[18.03243,-76.7609,-1574.939]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[15.707,-57.10629,-1593.338],\n[19.63375,-58.56402,-1595.706],\n[23.5605,-60.76738,-1598.385]\n],0,72,[11.78025,-60.76738,-1598.385],[23.5605,-49.33234,-1588.341]));\n\nP.push(new BezierCurve([\n[23.5605,-60.76738,-1598.385],\n[23.5605,-60.76738,-1598.385]\n],0,72,[23.5605,-60.76738,-1598.385],[23.5605,-60.76738,-1598.385]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[1.247108,106.7052,-1577.356],\n[-22.0808,107.213,-1572.119],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,99.39069,-1574.163],[19.51816,105.438,-1559.208]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,101.8401,-1559.208],[-36.06486,101.8401,-1559.208]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[1.558885,118.5753,-1587.225],\n[-27.601,118.8142,-1580.843],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,110.1935,-1583.134],[24.3977,116.8361,-1564.705]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,112.0981,-1564.705],[-45.08107,112.0981,-1564.705]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[21.14467,103.1032,-1574.911],\n[22.77119,106.7247,-1577.657],\n[24.3977,110.1935,-1580.467]\n],0,72,[19.51816,99.39069,-1580.467],[24.3977,110.1935,-1572.203]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[24.3977,110.1935,-1580.467]\n],0,72,[24.3977,110.1935,-1580.467],[24.3977,110.1935,-1580.467]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-39.07026,105.3802,-1560.99],\n[-42.07567,108.8218,-1562.813],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,101.8401,-1564.705],[-36.06486,112.0981,-1559.208]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,112.0981,-1564.705],[-45.08107,112.0981,-1564.705]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[9.888222,-44.80126,-1591.403],\n[4.944111,-39.42277,-1592.743],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-49.33234,-1591.65],[11.78025,-34.2932,-1588.341]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-34.2932,-1590.608],[-3.552714e-15,-34.2932,-1590.608]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.926751,-27.46824,-1575.719],\n[7.853501,-41.5584,-1583.344],\n[11.78025,-49.33234,-1588.341]\n],0,72,[0,-49.33234,-1588.341],[11.78025,0,-1562.526]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[11.78025,-49.33234,-1588.341]\n],0,72,[11.78025,-49.33234,-1588.341],[11.78025,-49.33234,-1588.341]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.552714e-15,-19.86856,-1575.398],\n[-2.664535e-15,-29.498,-1584.009],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-34.2932,-1590.608],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-34.2932,-1590.608],[-3.552714e-15,-34.2932,-1590.608]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-46.22138,-1576.406],\n[-9.447303,-52.2302,-1573.552],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-12.75085,-55.73323,-1578.836],[-4.87954,-39.19223,-1572.96]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-4.87954,-55.73323,-1572.96],[-4.87954,-55.73323,-1572.96]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-59.64114,-1576.636],\n[-18.89461,-68.61761,-1569.661],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-25.50171,-73.56916,-1583.075],[-9.75908,-49.37912,-1567.623]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-9.75908,-73.56916,-1567.623],[-9.75908,-73.56916,-1567.623]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-17.00114,-45.62045,-1581.511],\n[-21.25142,-47.21444,-1582.175],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1583.075],[-12.75085,-39.19223,-1578.836]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-49.37912,-1583.075]\n],0,72,[-25.50171,-49.37912,-1583.075],[-25.50171,-49.37912,-1583.075]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-6.506053,-65.64081,-1572.83],\n[-8.132567,-69.23217,-1570.071],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-9.75908,-73.56916,-1572.96],[-4.87954,-55.73323,-1567.623]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-9.75908,-73.56916,-1567.623],[-9.75908,-73.56916,-1567.623]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[89.25597,98.08165,-1559.195],\n[66.13112,119.2394,-1587.876],\n[34.15678,129.6385,-1597.894]\n],0,72,[34.15678,74.97205,-1597.894],[89.25597,129.6385,-1531.326]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[34.15678,129.6385,-1597.894]\n],0,72,[34.15678,129.6385,-1597.894],[34.15678,129.6385,-1597.894]));\n\nP.push(new BezierCurve([\n[102.0068,78.38447,-1529.906],\n[102.0068,103.8403,-1562.154],\n[75.57843,127.2554,-1595.251],\n[39.03632,138.6231,-1606.914]\n],0,72,[39.03632,78.38447,-1606.914],[102.0068,138.6231,-1529.906]));\n\nP.push(new BezierCurve([\n[39.03632,138.6231,-1606.914],\n[39.03632,138.6231,-1606.914]\n],0,72,[39.03632,138.6231,-1606.914],[39.03632,138.6231,-1606.914]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[93.50625,76.16314,-1530.831],\n[97.75654,77.29713,-1530.359],\n[102.0068,78.38447,-1529.906]\n],0,72,[89.25597,74.97205,-1531.326],[102.0068,78.38447,-1529.906]));\n\nP.push(new BezierCurve([\n[102.0068,78.38447,-1529.906],\n[102.0068,78.38447,-1529.906]\n],0,72,[102.0068,78.38447,-1529.906],[102.0068,78.38447,-1529.906]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[35.78329,132.7034,-1600.872],\n[37.40981,135.6938,-1603.88],\n[39.03632,138.6231,-1606.914]\n],0,72,[34.15678,129.6385,-1606.914],[39.03632,138.6231,-1597.894]));\n\nP.push(new BezierCurve([\n[39.03632,138.6231,-1606.914],\n[39.03632,138.6231,-1606.914]\n],0,72,[39.03632,138.6231,-1606.914],[39.03632,138.6231,-1606.914]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-4.944111,-29.16364,-1588.474],\n[-9.888222,-24.28301,-1582.864],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-34.2932,-1590.608],[-3.552714e-15,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-19.33591,-1575.858],[-11.78025,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.552714e-15,-19.86856,-1575.398],\n[-2.664535e-15,-29.498,-1584.009],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-34.2932,-1590.608],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,-34.2932,-1590.608],\n[-3.552714e-15,-34.2932,-1590.608]\n],0,72,[-3.552714e-15,-34.2932,-1590.608],[-3.552714e-15,-34.2932,-1590.608]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.926751,-11.01164,-1568.87],\n[-7.853501,-16.48191,-1572.909],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-19.33591,-1575.858],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-19.33591,-1575.858],[-11.78025,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[12.51223,-57.54712,-1580.495],\n[13.67228,-53.86343,-1585.279],\n[11.78025,-49.33234,-1588.341]\n],0,72,[9.016214,-58.89033,-1588.341],[12.6825,-49.33234,-1577.268]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[11.78025,-49.33234,-1588.341]\n],0,72,[11.78025,-49.33234,-1588.341],[11.78025,-49.33234,-1588.341]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.005405,-31.56253,-1572.406],\n[6.01081,-48.64474,-1576.259],\n[9.016214,-58.89033,-1577.268]\n],0,72,[0,-58.89033,-1577.268],[9.016214,0,-1562.526]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[9.016214,-58.89033,-1577.268]\n],0,72,[9.016214,-58.89033,-1577.268],[9.016214,-58.89033,-1577.268]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.926751,-27.46824,-1575.719],\n[7.853501,-41.5584,-1583.344],\n[11.78025,-49.33234,-1588.341]\n],0,72,[0,-49.33234,-1588.341],[11.78025,0,-1562.526]));\n\nP.push(new BezierCurve([\n[11.78025,-49.33234,-1588.341],\n[11.78025,-49.33234,-1588.341]\n],0,72,[11.78025,-49.33234,-1588.341],[11.78025,-49.33234,-1588.341]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-9.447303,-24.11361,-1583.271],\n[-12.75085,-32.16309,-1581.266],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1582.511],[-4.87954,-16.68457,-1578.836]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1578.836],[-12.75085,-39.19223,-1578.836]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-1.626513,-10.12786,-1570.994],\n[-3.253027,-14.71435,-1577.156],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[-4.87954,-16.68457,-1582.229]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-4.250284,-21.50157,-1571.474],\n[-8.500569,-32.76402,-1576.161],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1578.836],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1578.836],[-12.75085,-39.19223,-1578.836]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-25.50171,-59.64114,-1576.636],\n[-18.89461,-68.61761,-1569.661],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-25.50171,-73.56916,-1583.075],[-9.75908,-49.37912,-1567.623]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-9.75908,-73.56916,-1567.623],[-9.75908,-73.56916,-1567.623]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-69.62185,-1575.434],\n[-28.34191,-81.24714,-1564.207],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-38.25256,-87.43179,-1586.049],[-14.63862,-56.52498,-1560.632]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-14.63862,-87.43179,-1560.632],[-14.63862,-87.43179,-1560.632]));\n\nP.push(new BezierCurve([\n[-25.50171,-49.37912,-1583.075],\n[-29.75199,-51.5438,-1583.976],\n[-34.00227,-54.27916,-1585.115],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1586.049],[-25.50171,-49.37912,-1583.075]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-56.52498,-1586.049]\n],0,72,[-38.25256,-56.52498,-1586.049],[-38.25256,-56.52498,-1586.049]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-11.38559,-77.90615,-1565.175],\n[-13.01211,-82.98877,-1563.037],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-14.63862,-87.43179,-1567.623],[-9.75908,-73.56916,-1560.632]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-14.63862,-87.43179,-1560.632],[-14.63862,-87.43179,-1560.632]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[95.70597,26.91541,-1548.961],\n[87.5856,28.72345,-1592.427],\n[63.1135,24.24896,-1620.795]\n],0,72,[63.1135,24.24896,-1620.795],[88.77753,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[63.1135,24.24896,-1620.795]\n],0,72,[63.1135,24.24896,-1620.795],[63.1135,24.24896,-1620.795]));\n\nP.push(new BezierCurve([\n[94.24202,27.42315,-1508.832],\n[109.3783,28.05887,-1548.148],\n[100.0978,31.476,-1597.26],\n[72.12972,27.71309,-1629.119]\n],0,72,[72.12972,27.42315,-1629.119],[101.46,29.45295,-1508.832]));\n\nP.push(new BezierCurve([\n[72.12972,27.71309,-1629.119],\n[72.12972,27.71309,-1629.119]\n],0,72,[72.12972,27.71309,-1629.119],[72.12972,27.71309,-1629.119]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[86.38851,27.47083,-1512.336],\n[90.31526,27.45961,-1510.579],\n[94.24202,27.42315,-1508.832]\n],0,72,[82.46176,27.42315,-1514.106],[94.24202,27.46074,-1508.832]));\n\nP.push(new BezierCurve([\n[94.24202,27.42315,-1508.832],\n[94.24202,27.42315,-1508.832]\n],0,72,[94.24202,27.42315,-1508.832],[94.24202,27.42315,-1508.832]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[66.11891,25.40367,-1623.57],\n[69.12431,26.55838,-1626.345],\n[72.12972,27.71309,-1629.119]\n],0,72,[63.1135,24.24896,-1629.119],[72.12972,27.71309,-1620.795]));\n\nP.push(new BezierCurve([\n[72.12972,27.71309,-1629.119],\n[72.12972,27.71309,-1629.119]\n],0,72,[72.12972,27.71309,-1629.119],[72.12972,27.71309,-1629.119]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-0.3117769,-59.23627,-1572.369],\n[5.5202,-60.23354,-1574.04],\n[9.016214,-58.89033,-1577.268]\n],0,72,[-4.87954,-59.46464,-1577.268],[9.016214,-55.73323,-1572.842]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[9.016214,-58.89033,-1577.268]\n],0,72,[9.016214,-58.89033,-1577.268],[9.016214,-58.89033,-1577.268]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-0.6235539,-78.5207,-1565.585],\n[11.0404,-79.44732,-1568.484],\n[18.03243,-76.7609,-1574.939]\n],0,72,[-9.75908,-78.23846,-1574.939],[18.03243,-73.56916,-1566.979]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[18.03243,-76.7609,-1574.939]\n],0,72,[18.03243,-76.7609,-1574.939],[18.03243,-76.7609,-1574.939]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-6.506053,-65.64081,-1572.83],\n[-8.132567,-69.23217,-1570.071],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-9.75908,-73.56916,-1572.96],[-4.87954,-55.73323,-1567.623]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-9.75908,-73.56916,-1567.623]\n],0,72,[-9.75908,-73.56916,-1567.623],[-9.75908,-73.56916,-1567.623]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[12.02162,-69.13591,-1578.276],\n[15.02702,-72.54487,-1576.44],\n[18.03243,-76.7609,-1574.939]\n],0,72,[9.016214,-76.7609,-1577.557],[18.03243,-58.89033,-1574.939]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[18.03243,-76.7609,-1574.939]\n],0,72,[18.03243,-76.7609,-1574.939],[18.03243,-76.7609,-1574.939]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[5.5202,-2.446948,-1577.097],\n[-0.3117769,-9.255537,-1581.187],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[9.016214,3.464137,-1570.85]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[-4.87954,-16.68457,-1582.229]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.005405,1.154712,-1565.301],\n[6.01081,2.309425,-1568.076],\n[9.016214,3.464137,-1570.85]\n],0,72,[0,0,-1570.85],[9.016214,3.464137,-1562.526]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[9.016214,3.464137,-1570.85]\n],0,72,[9.016214,3.464137,-1570.85],[9.016214,3.464137,-1570.85]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-1.626513,-10.12786,-1570.994],\n[-3.253027,-14.71435,-1577.156],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-4.87954,-16.68457,-1582.229],\n[-4.87954,-16.68457,-1582.229]\n],0,72,[-4.87954,-16.68457,-1582.229],[-4.87954,-16.68457,-1582.229]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[76.50512,91.93556,-1556.398],\n[56.68382,110.8,-1580.678],\n[29.27724,120.2062,-1589.06]\n],0,72,[29.27724,71.21702,-1589.06],[76.50512,120.2062,-1532.889]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[29.27724,120.2062,-1589.06]\n],0,72,[29.27724,120.2062,-1589.06],[29.27724,120.2062,-1589.06]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[89.25597,98.08165,-1559.195],\n[66.13112,119.2394,-1587.876],\n[34.15678,129.6385,-1597.894]\n],0,72,[34.15678,74.97205,-1597.894],[89.25597,129.6385,-1531.326]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[34.15678,129.6385,-1597.894]\n],0,72,[34.15678,129.6385,-1597.894],[34.15678,129.6385,-1597.894]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[80.7554,72.53276,-1532.341],\n[85.00569,73.78095,-1531.822],\n[89.25597,74.97205,-1531.326]\n],0,72,[76.50512,71.21702,-1532.889],[89.25597,74.97205,-1531.326]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[89.25597,74.97205,-1531.326]\n],0,72,[89.25597,74.97205,-1531.326],[89.25597,74.97205,-1531.326]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[30.90375,123.434,-1591.969],\n[32.53027,126.5735,-1594.916],\n[34.15678,129.6385,-1597.894]\n],0,72,[29.27724,120.2062,-1597.894],[34.15678,129.6385,-1589.06]));\n\nP.push(new BezierCurve([\n[34.15678,129.6385,-1597.894],\n[34.15678,129.6385,-1597.894]\n],0,72,[34.15678,129.6385,-1597.894],[34.15678,129.6385,-1597.894]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[82.03369,25.64513,-1549.828],\n[75.07337,25.90749,-1587.619],\n[54.09729,20.78482,-1612.471]\n],0,72,[54.09729,20.78482,-1612.471],[76.09503,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[54.09729,20.78482,-1612.471]\n],0,72,[54.09729,20.78482,-1612.471],[54.09729,20.78482,-1612.471]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[95.70597,26.91541,-1548.961],\n[87.5856,28.72345,-1592.427],\n[63.1135,24.24896,-1620.795]\n],0,72,[63.1135,24.24896,-1620.795],[88.77753,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[63.1135,24.24896,-1620.795]\n],0,72,[63.1135,24.24896,-1620.795],[63.1135,24.24896,-1620.795]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[74.60826,27.38086,-1517.658],\n[78.53501,27.43145,-1515.876],\n[82.46176,27.45114,-1514.106]\n],0,72,[70.68151,27.29371,-1519.456],[82.46176,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[82.46176,27.45114,-1514.106]\n],0,72,[82.46176,27.45114,-1514.106],[82.46176,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[57.10269,21.93953,-1615.246],\n[60.1081,23.09425,-1618.021],\n[63.1135,24.24896,-1620.795]\n],0,72,[54.09729,20.78482,-1620.795],[63.1135,24.24896,-1612.471]));\n\nP.push(new BezierCurve([\n[63.1135,24.24896,-1620.795],\n[63.1135,24.24896,-1620.795]\n],0,72,[63.1135,24.24896,-1620.795],[63.1135,24.24896,-1620.795]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-46.22138,-1576.406],\n[-9.447303,-52.2302,-1573.552],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-12.75085,-55.73323,-1578.836],[-4.87954,-39.19223,-1572.96]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-4.87954,-55.73323,-1572.96],[-4.87954,-55.73323,-1572.96]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-4.250284,-21.50157,-1571.474],\n[-8.500569,-32.76402,-1576.161],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1578.836],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-12.75085,-39.19223,-1578.836],\n[-12.75085,-39.19223,-1578.836]\n],0,72,[-12.75085,-39.19223,-1578.836],[-12.75085,-39.19223,-1578.836]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-1.626513,-29.60187,-1570.592],\n[-3.253027,-45.82566,-1573.09],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-4.87954,-55.73323,-1572.965],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-4.87954,-55.73323,-1572.96],[-4.87954,-55.73323,-1572.96]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-38.25256,-69.62185,-1575.434],\n[-28.34191,-81.24714,-1564.207],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-38.25256,-87.43179,-1586.049],[-14.63862,-56.52498,-1560.632]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-14.63862,-87.43179,-1560.632],[-14.63862,-87.43179,-1560.632]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-77.95481,-1573.547],\n[-37.78921,-92.07615,-1558.003],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-51.00341,-99.39069,-1588.417],[-19.51816,-62.21379,-1552.849]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-19.51816,-99.39069,-1552.849],[-19.51816,-99.39069,-1552.849]));\n\nP.push(new BezierCurve([\n[-38.25256,-56.52498,-1586.049],\n[-42.50284,-58.77081,-1586.984],\n[-46.75313,-60.5271,-1587.715],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1588.417],[-38.25256,-56.52498,-1586.049]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-62.21379,-1588.417]\n],0,72,[-51.00341,-62.21379,-1588.417],[-51.00341,-62.21379,-1588.417]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-16.26513,-91.87481,-1558.228],\n[-17.89165,-95.67822,-1555.558],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-19.51816,-99.39069,-1560.632],[-14.63862,-87.43179,-1552.849]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-19.51816,-99.39069,-1552.849],[-19.51816,-99.39069,-1552.849]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[0.9353308,93.61644,-1567.994],\n[-16.5606,94.36044,-1563.915],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,87.43179,-1565.699],[14.63862,92.83394,-1554.232]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,90.33081,-1554.232],[-27.04864,90.33081,-1554.232]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[1.247108,106.7052,-1577.356],\n[-22.0808,107.213,-1572.119],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,99.39069,-1574.163],[19.51816,105.438,-1559.208]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,101.8401,-1559.208],[-36.06486,101.8401,-1559.208]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[16.26513,91.87481,-1566.824],\n[17.89165,95.67822,-1569.495],\n[19.51816,99.39069,-1572.203]\n],0,72,[14.63862,87.43179,-1572.203],[19.51816,99.39069,-1564.42]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[19.51816,99.39069,-1572.203]\n],0,72,[19.51816,99.39069,-1572.203],[19.51816,99.39069,-1572.203]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-30.05405,94.6616,-1555.685],\n[-33.05945,98.30008,-1557.426],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,90.33081,-1559.208],[-27.04864,101.8401,-1554.232]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,101.8401,-1559.208],[-36.06486,101.8401,-1559.208]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-0.3117769,-59.23627,-1572.369],\n[5.5202,-60.23354,-1574.04],\n[9.016214,-58.89033,-1577.268]\n],0,72,[-4.87954,-59.46464,-1577.268],[9.016214,-55.73323,-1572.842]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[9.016214,-58.89033,-1577.268]\n],0,72,[9.016214,-58.89033,-1577.268],[9.016214,-58.89033,-1577.268]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-1.626513,-29.60187,-1570.592],\n[-3.253027,-45.82566,-1573.09],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-4.87954,-55.73323,-1572.965],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-4.87954,-55.73323,-1572.96],\n[-4.87954,-55.73323,-1572.96]\n],0,72,[-4.87954,-55.73323,-1572.96],[-4.87954,-55.73323,-1572.96]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.005405,-31.56253,-1572.406],\n[6.01081,-48.64474,-1576.259],\n[9.016214,-58.89033,-1577.268]\n],0,72,[0,-58.89033,-1577.268],[9.016214,0,-1562.526]));\n\nP.push(new BezierCurve([\n[9.016214,-58.89033,-1577.268],\n[9.016214,-58.89033,-1577.268]\n],0,72,[9.016214,-58.89033,-1577.268],[9.016214,-58.89033,-1577.268]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[68.36141,24.2104,-1550.762],\n[62.56115,23.0093,-1582.846],\n[45.08107,17.32068,-1604.147]\n],0,72,[45.08107,17.32068,-1604.147],[63.41252,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[45.08107,17.32068,-1604.147]\n],0,72,[45.08107,17.32068,-1604.147],[45.08107,17.32068,-1604.147]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[82.03369,25.64513,-1549.828],\n[75.07337,25.90749,-1587.619],\n[54.09729,20.78482,-1612.471]\n],0,72,[54.09729,20.78482,-1612.471],[76.09503,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[54.09729,20.78482,-1612.471]\n],0,72,[54.09729,20.78482,-1612.471],[54.09729,20.78482,-1612.471]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[62.82801,27.08285,-1523.068],\n[66.75476,27.20656,-1521.254],\n[70.68151,27.29371,-1519.456]\n],0,72,[58.90126,26.89587,-1524.907],[70.68151,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[70.68151,27.29371,-1519.456]\n],0,72,[70.68151,27.29371,-1519.456],[70.68151,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[48.08648,18.4754,-1606.922],\n[51.09188,19.63011,-1609.696],\n[54.09729,20.78482,-1612.471]\n],0,72,[45.08107,17.32068,-1612.471],[54.09729,20.78482,-1604.147]));\n\nP.push(new BezierCurve([\n[54.09729,20.78482,-1612.471],\n[54.09729,20.78482,-1612.471]\n],0,72,[54.09729,20.78482,-1612.471],[54.09729,20.78482,-1612.471]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[54.68913,22.5518,-1551.79],\n[50.04892,19.99918,-1578.12],\n[36.06486,13.85655,-1595.823]\n],0,72,[36.06486,13.85655,-1595.823],[50.73002,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[36.06486,13.85655,-1595.823]\n],0,72,[36.06486,13.85655,-1595.823],[36.06486,13.85655,-1595.823]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[68.36141,24.2104,-1550.762],\n[62.56115,23.0093,-1582.846],\n[45.08107,17.32068,-1604.147]\n],0,72,[45.08107,17.32068,-1604.147],[63.41252,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[45.08107,17.32068,-1604.147]\n],0,72,[45.08107,17.32068,-1604.147],[45.08107,17.32068,-1604.147]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[51.04776,26.45866,-1528.613],\n[54.97451,26.7089,-1526.747],\n[58.90126,26.89587,-1524.907]\n],0,72,[47.12101,26.17075,-1530.494],[58.90126,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[58.90126,26.89587,-1524.907]\n],0,72,[58.90126,26.89587,-1524.907],[58.90126,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[39.07026,15.01126,-1598.598],\n[42.07567,16.16597,-1601.372],\n[45.08107,17.32068,-1604.147]\n],0,72,[36.06486,13.85655,-1604.147],[45.08107,17.32068,-1595.823]));\n\nP.push(new BezierCurve([\n[45.08107,17.32068,-1604.147],\n[45.08107,17.32068,-1604.147]\n],0,72,[45.08107,17.32068,-1604.147],[45.08107,17.32068,-1604.147]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-51.00341,-77.95481,-1573.547],\n[-37.78921,-92.07615,-1558.003],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-51.00341,-99.39069,-1588.417],[-19.51816,-62.21379,-1552.849]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-19.51816,-99.39069,-1552.849],[-19.51816,-99.39069,-1552.849]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-85.28714,-1571.243],\n[-47.23652,-101.8117,-1551.344],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-63.75426,-110.1935,-1590.416],[-24.3977,-67.01778,-1544.585]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-24.3977,-110.1935,-1544.585],[-24.3977,-110.1935,-1544.585]));\n\nP.push(new BezierCurve([\n[-51.00341,-62.21379,-1588.417],\n[-55.2537,-63.90049,-1589.119],\n[-59.50398,-65.51758,-1589.791],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1590.416],[-51.00341,-62.21379,-1588.417]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-67.01778,-1590.416]\n],0,72,[-63.75426,-67.01778,-1590.416],[-63.75426,-67.01778,-1590.416]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-21.14467,-103.1032,-1550.141],\n[-22.77119,-106.7247,-1547.395],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-24.3977,-110.1935,-1552.849],[-19.51816,-99.39069,-1544.585]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-24.3977,-110.1935,-1544.585],[-24.3977,-110.1935,-1544.585]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[63.75426,85.28714,-1553.809],\n[47.23652,101.8117,-1573.708],\n[24.3977,110.1935,-1580.467]\n],0,72,[24.3977,67.01778,-1580.467],[63.75426,110.1935,-1534.636]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[24.3977,110.1935,-1580.467]\n],0,72,[24.3977,110.1935,-1580.467],[24.3977,110.1935,-1580.467]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[76.50512,91.93556,-1556.398],\n[56.68382,110.8,-1580.678],\n[29.27724,120.2062,-1589.06]\n],0,72,[29.27724,71.21702,-1589.06],[76.50512,120.2062,-1532.889]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[29.27724,120.2062,-1589.06]\n],0,72,[29.27724,120.2062,-1589.06],[29.27724,120.2062,-1589.06]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[68.00455,68.51797,-1534.012],\n[72.25483,69.90127,-1533.436],\n[76.50512,71.21702,-1532.889]\n],0,72,[63.75426,67.01778,-1534.636],[76.50512,71.21702,-1532.889]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[76.50512,71.21702,-1532.889]\n],0,72,[76.50512,71.21702,-1532.889],[76.50512,71.21702,-1532.889]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[26.02421,113.6623,-1583.276],\n[27.65073,116.9784,-1586.15],\n[29.27724,120.2062,-1589.06]\n],0,72,[24.3977,110.1935,-1589.06],[29.27724,120.2062,-1580.467]));\n\nP.push(new BezierCurve([\n[29.27724,120.2062,-1589.06],\n[29.27724,120.2062,-1589.06]\n],0,72,[29.27724,120.2062,-1589.06],[29.27724,120.2062,-1589.06]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-0.6235539,-78.5207,-1565.585],\n[11.0404,-79.44732,-1568.484],\n[18.03243,-76.7609,-1574.939]\n],0,72,[-9.75908,-78.23846,-1574.939],[18.03243,-73.56916,-1566.979]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[18.03243,-76.7609,-1574.939]\n],0,72,[18.03243,-76.7609,-1574.939],[18.03243,-76.7609,-1574.939]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-0.9353308,-93.61644,-1557.058],\n[16.5606,-94.36044,-1561.137],\n[27.04864,-90.33081,-1570.82]\n],0,72,[-14.63862,-92.83394,-1570.82],[27.04864,-87.43179,-1559.353]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[27.04864,-90.33081,-1570.82]\n],0,72,[27.04864,-90.33081,-1570.82],[27.04864,-90.33081,-1570.82]));\n\nP.push(new BezierCurve([\n[-9.75908,-73.56916,-1567.623],\n[-11.38559,-77.90615,-1565.175],\n[-13.01211,-82.98877,-1563.037],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-14.63862,-87.43179,-1567.623],[-9.75908,-73.56916,-1560.632]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-14.63862,-87.43179,-1560.632]\n],0,72,[-14.63862,-87.43179,-1560.632],[-14.63862,-87.43179,-1560.632]));\n\nP.push(new BezierCurve([\n[18.03243,-76.7609,-1574.939],\n[21.03783,-80.97692,-1573.438],\n[24.04324,-86.00002,-1572.273],\n[27.04864,-90.33081,-1570.82]\n],0,72,[18.03243,-90.33081,-1574.939],[27.04864,-76.7609,-1570.82]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[27.04864,-90.33081,-1570.82]\n],0,72,[27.04864,-90.33081,-1570.82],[27.04864,-90.33081,-1570.82]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-13.67228,-14.3888,-1568.852],\n[-12.51223,-9.375221,-1560.449],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-12.6825,-19.33591,-1575.858],[-9.016214,-3.464137,-1554.202]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-9.016214,-3.464137,-1554.202],[-9.016214,-3.464137,-1554.202]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-27.34456,-18.0401,-1570.709],\n[-25.02446,-13.38169,-1556.137],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-25.36501,-22.97423,-1582.657],[-18.03243,-6.928274,-1545.878]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-18.03243,-6.928274,-1545.878],[-18.03243,-6.928274,-1545.878]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-15.707,-22.18991,-1578.807],\n[-19.63375,-22.42764,-1580.668],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-22.97423,-1582.657],[-11.78025,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-23.5605,-22.97423,-1582.657]\n],0,72,[-23.5605,-22.97423,-1582.657],[-23.5605,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-12.02162,-4.618849,-1551.427],\n[-15.02702,-5.773561,-1548.652],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-18.03243,-6.928274,-1554.202],[-9.016214,-3.464137,-1545.878]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-18.03243,-6.928274,-1545.878],[-18.03243,-6.928274,-1545.878]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[41.01684,20.56564,-1552.955],\n[37.53669,16.82528,-1573.462],\n[27.04864,10.39241,-1587.499]\n],0,72,[27.04864,10.39241,-1587.499],[38.04751,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[27.04864,10.39241,-1587.499]\n],0,72,[27.04864,10.39241,-1587.499],[27.04864,10.39241,-1587.499]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[54.68913,22.5518,-1551.79],\n[50.04892,19.99918,-1578.12],\n[36.06486,13.85655,-1595.823]\n],0,72,[36.06486,13.85655,-1595.823],[50.73002,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[36.06486,13.85655,-1595.823]\n],0,72,[36.06486,13.85655,-1595.823],[36.06486,13.85655,-1595.823]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[39.26751,25.55727,-1534.273],\n[43.19426,25.88285,-1532.376],\n[47.12101,26.17075,-1530.494]\n],0,72,[35.34076,24.96677,-1536.28],[47.12101,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[47.12101,26.17075,-1530.494]\n],0,72,[47.12101,26.17075,-1530.494],[47.12101,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[30.05405,11.54712,-1590.273],\n[33.05945,12.70184,-1593.048],\n[36.06486,13.85655,-1595.823]\n],0,72,[27.04864,10.39241,-1595.823],[36.06486,13.85655,-1587.499]));\n\nP.push(new BezierCurve([\n[36.06486,13.85655,-1595.823],\n[36.06486,13.85655,-1595.823]\n],0,72,[36.06486,13.85655,-1595.823],[36.06486,13.85655,-1595.823]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-13.67228,-14.3888,-1568.852],\n[-12.51223,-9.375221,-1560.449],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-12.6825,-19.33591,-1575.858],[-9.016214,-3.464137,-1554.202]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-9.016214,-3.464137,-1554.202],[-9.016214,-3.464137,-1554.202]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.926751,-11.01164,-1568.87],\n[-7.853501,-16.48191,-1572.909],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-19.33591,-1575.858],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-11.78025,-19.33591,-1575.858],\n[-11.78025,-19.33591,-1575.858]\n],0,72,[-11.78025,-19.33591,-1575.858],[-11.78025,-19.33591,-1575.858]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.005405,-1.154712,-1559.751],\n[-6.01081,-2.309425,-1556.977],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-9.016214,-3.464137,-1562.526],[0,0,-1554.202]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-9.016214,-3.464137,-1554.202],[-9.016214,-3.464137,-1554.202]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-27.34456,-18.0401,-1570.709],\n[-25.02446,-13.38169,-1556.137],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-25.36501,-22.97423,-1582.657],[-18.03243,-6.928274,-1545.878]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-18.03243,-6.928274,-1545.878],[-18.03243,-6.928274,-1545.878]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-41.01684,-20.56564,-1572.098],\n[-37.53669,-16.82528,-1551.591],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-38.04751,-24.96677,-1588.772],[-27.04864,-10.39241,-1537.554]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-27.04864,-10.39241,-1537.554],[-27.04864,-10.39241,-1537.554]));\n\nP.push(new BezierCurve([\n[-23.5605,-22.97423,-1582.657],\n[-27.48725,-23.52082,-1584.647],\n[-31.41401,-24.37626,-1586.764],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-24.96677,-1588.772],[-23.5605,-22.97423,-1582.657]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-35.34076,-24.96677,-1588.772]\n],0,72,[-35.34076,-24.96677,-1588.772],[-35.34076,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-21.03783,-8.082986,-1543.103],\n[-24.04324,-9.237698,-1540.328],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-27.04864,-10.39241,-1545.878],[-18.03243,-6.928274,-1537.554]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-27.04864,-10.39241,-1537.554],[-27.04864,-10.39241,-1537.554]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[27.34456,18.0401,-1554.343],\n[25.02446,13.38169,-1568.916],\n[18.03243,6.928274,-1579.174]\n],0,72,[18.03243,6.928274,-1579.174],[25.36501,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[18.03243,6.928274,-1579.174]\n],0,72,[18.03243,6.928274,-1579.174],[18.03243,6.928274,-1579.174]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[41.01684,20.56564,-1552.955],\n[37.53669,16.82528,-1573.462],\n[27.04864,10.39241,-1587.499]\n],0,72,[27.04864,10.39241,-1587.499],[38.04751,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[27.04864,10.39241,-1587.499]\n],0,72,[27.04864,10.39241,-1587.499],[27.04864,10.39241,-1587.499]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[27.48725,23.52082,-1540.406],\n[31.41401,24.37626,-1538.288],\n[35.34076,24.96677,-1536.28]\n],0,72,[23.5605,22.97423,-1542.395],[35.34076,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[35.34076,24.96677,-1536.28]\n],0,72,[35.34076,24.96677,-1536.28],[35.34076,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[21.03783,8.082986,-1581.949],\n[24.04324,9.237698,-1584.724],\n[27.04864,10.39241,-1587.499]\n],0,72,[18.03243,6.928274,-1587.499],[27.04864,10.39241,-1579.174]));\n\nP.push(new BezierCurve([\n[27.04864,10.39241,-1587.499],\n[27.04864,10.39241,-1587.499]\n],0,72,[27.04864,10.39241,-1587.499],[27.04864,10.39241,-1587.499]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[13.67228,14.3888,-1556.2],\n[12.51223,9.375221,-1564.604],\n[9.016214,3.464137,-1570.85]\n],0,72,[9.016214,3.464137,-1570.85],[12.6825,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[9.016214,3.464137,-1570.85]\n],0,72,[9.016214,3.464137,-1570.85],[9.016214,3.464137,-1570.85]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.926751,11.01164,-1556.182],\n[7.853501,16.48191,-1552.144],\n[11.78025,19.33591,-1549.194]\n],0,72,[0,0,-1562.526],[11.78025,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[11.78025,19.33591,-1549.194]\n],0,72,[11.78025,19.33591,-1549.194],[11.78025,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.005405,1.154712,-1565.301],\n[6.01081,2.309425,-1568.076],\n[9.016214,3.464137,-1570.85]\n],0,72,[0,0,-1570.85],[9.016214,3.464137,-1562.526]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[9.016214,3.464137,-1570.85]\n],0,72,[9.016214,3.464137,-1570.85],[9.016214,3.464137,-1570.85]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-41.01684,-20.56564,-1572.098],\n[-37.53669,-16.82528,-1551.591],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-38.04751,-24.96677,-1588.772],[-27.04864,-10.39241,-1537.554]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-27.04864,-10.39241,-1537.554],[-27.04864,-10.39241,-1537.554]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-54.68913,-22.5518,-1573.262],\n[-50.04892,-19.99918,-1546.932],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-50.73002,-26.17075,-1594.558],[-36.06486,-13.85655,-1529.229]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-36.06486,-13.85655,-1529.229],[-36.06486,-13.85655,-1529.229]));\n\nP.push(new BezierCurve([\n[-35.34076,-24.96677,-1588.772],\n[-39.26751,-25.55727,-1590.779],\n[-43.19426,-25.88285,-1592.676],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-26.17075,-1594.558],[-35.34076,-24.96677,-1588.772]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-47.12101,-26.17075,-1594.558]\n],0,72,[-47.12101,-26.17075,-1594.558],[-47.12101,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-30.05405,-11.54712,-1534.779],\n[-33.05945,-12.70184,-1532.004],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-36.06486,-13.85655,-1537.554],[-27.04864,-10.39241,-1529.229]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-36.06486,-13.85655,-1529.229],[-36.06486,-13.85655,-1529.229]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[13.67228,14.3888,-1556.2],\n[12.51223,9.375221,-1564.604],\n[9.016214,3.464137,-1570.85]\n],0,72,[9.016214,3.464137,-1570.85],[12.6825,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[9.016214,3.464137,-1570.85]\n],0,72,[9.016214,3.464137,-1570.85],[9.016214,3.464137,-1570.85]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[27.34456,18.0401,-1554.343],\n[25.02446,13.38169,-1568.916],\n[18.03243,6.928274,-1579.174]\n],0,72,[18.03243,6.928274,-1579.174],[25.36501,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[18.03243,6.928274,-1579.174]\n],0,72,[18.03243,6.928274,-1579.174],[18.03243,6.928274,-1579.174]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[15.707,22.18991,-1546.245],\n[19.63375,22.42764,-1544.384],\n[23.5605,22.97423,-1542.395]\n],0,72,[11.78025,19.33591,-1549.194],[23.5605,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[23.5605,22.97423,-1542.395]\n],0,72,[23.5605,22.97423,-1542.395],[23.5605,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[9.016214,3.464137,-1570.85],\n[12.02162,4.618849,-1573.625],\n[15.02702,5.773561,-1576.4],\n[18.03243,6.928274,-1579.174]\n],0,72,[9.016214,3.464137,-1579.174],[18.03243,6.928274,-1570.85]));\n\nP.push(new BezierCurve([\n[18.03243,6.928274,-1579.174],\n[18.03243,6.928274,-1579.174]\n],0,72,[18.03243,6.928274,-1579.174],[18.03243,6.928274,-1579.174]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[0.6235539,78.5207,-1559.467],\n[-11.0404,79.44732,-1556.569],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,73.56916,-1558.073],[9.75908,78.23846,-1550.113]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,76.7609,-1550.113],[-18.03243,76.7609,-1550.113]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[0.9353308,93.61644,-1567.994],\n[-16.5606,94.36044,-1563.915],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,87.43179,-1565.699],[14.63862,92.83394,-1554.232]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,90.33081,-1554.232],[-27.04864,90.33081,-1554.232]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[11.38559,77.90615,-1559.878],\n[13.01211,82.98877,-1562.016],\n[14.63862,87.43179,-1564.42]\n],0,72,[9.75908,73.56916,-1564.42],[14.63862,87.43179,-1557.429]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[14.63862,87.43179,-1564.42]\n],0,72,[14.63862,87.43179,-1564.42],[14.63862,87.43179,-1564.42]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-21.03783,80.97692,-1551.614],\n[-24.04324,86.00002,-1552.779],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,76.7609,-1554.232],[-18.03243,90.33081,-1550.113]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,90.33081,-1554.232],[-27.04864,90.33081,-1554.232]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-63.75426,-85.28714,-1571.243],\n[-47.23652,-101.8117,-1551.344],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-63.75426,-110.1935,-1590.416],[-24.3977,-67.01778,-1544.585]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-24.3977,-110.1935,-1544.585],[-24.3977,-110.1935,-1544.585]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-91.93556,-1568.655],\n[-56.68382,-110.8,-1544.374],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-76.50512,-120.2062,-1592.163],[-29.27724,-71.21702,-1535.993]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-29.27724,-120.2062,-1535.993],[-29.27724,-120.2062,-1535.993]));\n\nP.push(new BezierCurve([\n[-63.75426,-67.01778,-1590.416],\n[-68.00455,-68.51797,-1591.04],\n[-72.25483,-69.90127,-1591.616],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1592.163],[-63.75426,-67.01778,-1590.416]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-71.21702,-1592.163]\n],0,72,[-76.50512,-71.21702,-1592.163],[-76.50512,-71.21702,-1592.163]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-26.02421,-113.6623,-1541.776],\n[-27.65073,-116.9784,-1538.903],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-29.27724,-120.2062,-1544.585],[-24.3977,-110.1935,-1535.993]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-29.27724,-120.2062,-1535.993],[-29.27724,-120.2062,-1535.993]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[51.00341,77.95481,-1551.505],\n[37.78921,92.07615,-1567.049],\n[19.51816,99.39069,-1572.203]\n],0,72,[19.51816,62.21379,-1572.203],[51.00341,99.39069,-1536.636]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[19.51816,99.39069,-1572.203]\n],0,72,[19.51816,99.39069,-1572.203],[19.51816,99.39069,-1572.203]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[63.75426,85.28714,-1553.809],\n[47.23652,101.8117,-1573.708],\n[24.3977,110.1935,-1580.467]\n],0,72,[24.3977,67.01778,-1580.467],[63.75426,110.1935,-1534.636]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[24.3977,110.1935,-1580.467]\n],0,72,[24.3977,110.1935,-1580.467],[24.3977,110.1935,-1580.467]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[55.2537,63.90049,-1535.934],\n[59.50398,65.51758,-1535.261],\n[63.75426,67.01778,-1534.636]\n],0,72,[51.00341,62.21379,-1536.636],[63.75426,67.01778,-1534.636]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[63.75426,67.01778,-1534.636]\n],0,72,[63.75426,67.01778,-1534.636],[63.75426,67.01778,-1534.636]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[21.14467,103.1032,-1574.911],\n[22.77119,106.7247,-1577.657],\n[24.3977,110.1935,-1580.467]\n],0,72,[19.51816,99.39069,-1580.467],[24.3977,110.1935,-1572.203]));\n\nP.push(new BezierCurve([\n[24.3977,110.1935,-1580.467],\n[24.3977,110.1935,-1580.467]\n],0,72,[24.3977,110.1935,-1580.467],[24.3977,110.1935,-1580.467]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-54.68913,-22.5518,-1573.262],\n[-50.04892,-19.99918,-1546.932],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-50.73002,-26.17075,-1594.558],[-36.06486,-13.85655,-1529.229]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-36.06486,-13.85655,-1529.229],[-36.06486,-13.85655,-1529.229]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-68.36141,-24.2104,-1574.29],\n[-62.56115,-23.0093,-1542.206],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-63.41252,-26.89587,-1600.145],[-45.08107,-17.32068,-1520.905]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-45.08107,-17.32068,-1520.905],[-45.08107,-17.32068,-1520.905]));\n\nP.push(new BezierCurve([\n[-47.12101,-26.17075,-1594.558],\n[-51.04776,-26.45866,-1596.44],\n[-54.97451,-26.7089,-1598.305],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-26.89587,-1600.145],[-47.12101,-26.17075,-1594.558]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-58.90126,-26.89587,-1600.145]\n],0,72,[-58.90126,-26.89587,-1600.145],[-58.90126,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-39.07026,-15.01126,-1526.455],\n[-42.07567,-16.16597,-1523.68],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-45.08107,-17.32068,-1529.229],[-36.06486,-13.85655,-1520.905]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-45.08107,-17.32068,-1520.905],[-45.08107,-17.32068,-1520.905]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-68.36141,-24.2104,-1574.29],\n[-62.56115,-23.0093,-1542.206],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-63.41252,-26.89587,-1600.145],[-45.08107,-17.32068,-1520.905]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-45.08107,-17.32068,-1520.905],[-45.08107,-17.32068,-1520.905]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-82.03369,-25.64513,-1575.225],\n[-75.07337,-25.90749,-1537.433],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-76.09503,-27.29371,-1605.596],[-54.09729,-20.78482,-1512.581]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-54.09729,-20.78482,-1512.581],[-54.09729,-20.78482,-1512.581]));\n\nP.push(new BezierCurve([\n[-58.90126,-26.89587,-1600.145],\n[-62.82801,-27.08285,-1601.984],\n[-66.75476,-27.20656,-1603.798],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-27.29371,-1605.596],[-58.90126,-26.89587,-1600.145]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-70.68151,-27.29371,-1605.596]\n],0,72,[-70.68151,-27.29371,-1605.596],[-70.68151,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-48.08648,-18.4754,-1518.13],\n[-51.09188,-19.63011,-1515.356],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-54.09729,-20.78482,-1520.905],[-45.08107,-17.32068,-1512.581]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-54.09729,-20.78482,-1512.581],[-54.09729,-20.78482,-1512.581]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[0.3117769,59.23627,-1552.684],\n[-5.5202,60.23354,-1551.012],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,55.73323,-1552.21],[4.87954,59.46464,-1547.784]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,58.89033,-1547.784],[-9.016214,58.89033,-1547.784]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[1.626513,29.60187,-1554.46],\n[3.253027,45.82566,-1551.962],\n[4.87954,55.73323,-1552.092]\n],0,72,[0,0,-1562.526],[4.87954,55.73323,-1552.087]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[4.87954,55.73323,-1552.092]\n],0,72,[4.87954,55.73323,-1552.092],[4.87954,55.73323,-1552.092]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.005405,31.56253,-1552.646],\n[-6.01081,48.64474,-1548.793],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,0,-1562.526],[0,58.89033,-1547.784]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,58.89033,-1547.784],[-9.016214,58.89033,-1547.784]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-0.9353308,-93.61644,-1557.058],\n[16.5606,-94.36044,-1561.137],\n[27.04864,-90.33081,-1570.82]\n],0,72,[-14.63862,-92.83394,-1570.82],[27.04864,-87.43179,-1559.353]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[27.04864,-90.33081,-1570.82]\n],0,72,[27.04864,-90.33081,-1570.82],[27.04864,-90.33081,-1570.82]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-1.247108,-106.7052,-1547.696],\n[22.0808,-107.213,-1552.933],\n[36.06486,-101.8401,-1565.844]\n],0,72,[-19.51816,-105.438,-1565.844],[36.06486,-99.39069,-1550.889]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[36.06486,-101.8401,-1565.844]\n],0,72,[36.06486,-101.8401,-1565.844],[36.06486,-101.8401,-1565.844]));\n\nP.push(new BezierCurve([\n[-14.63862,-87.43179,-1560.632],\n[-16.26513,-91.87481,-1558.228],\n[-17.89165,-95.67822,-1555.558],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-19.51816,-99.39069,-1560.632],[-14.63862,-87.43179,-1552.849]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-19.51816,-99.39069,-1552.849]\n],0,72,[-19.51816,-99.39069,-1552.849],[-19.51816,-99.39069,-1552.849]));\n\nP.push(new BezierCurve([\n[27.04864,-90.33081,-1570.82],\n[30.05405,-94.6616,-1569.367],\n[33.05945,-98.30008,-1567.626],\n[36.06486,-101.8401,-1565.844]\n],0,72,[27.04864,-101.8401,-1570.82],[36.06486,-90.33081,-1565.844]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[36.06486,-101.8401,-1565.844]\n],0,72,[36.06486,-101.8401,-1565.844],[36.06486,-101.8401,-1565.844]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[38.25256,69.62185,-1549.618],\n[28.34191,81.24714,-1560.846],\n[14.63862,87.43179,-1564.42]\n],0,72,[14.63862,56.52498,-1564.42],[38.25256,87.43179,-1539.003]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[14.63862,87.43179,-1564.42]\n],0,72,[14.63862,87.43179,-1564.42],[14.63862,87.43179,-1564.42]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[51.00341,77.95481,-1551.505],\n[37.78921,92.07615,-1567.049],\n[19.51816,99.39069,-1572.203]\n],0,72,[19.51816,62.21379,-1572.203],[51.00341,99.39069,-1536.636]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[19.51816,99.39069,-1572.203]\n],0,72,[19.51816,99.39069,-1572.203],[19.51816,99.39069,-1572.203]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[42.50284,58.77081,-1538.068],\n[46.75313,60.5271,-1537.338],\n[51.00341,62.21379,-1536.636]\n],0,72,[38.25256,56.52498,-1539.003],[51.00341,62.21379,-1536.636]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[51.00341,62.21379,-1536.636]\n],0,72,[51.00341,62.21379,-1536.636],[51.00341,62.21379,-1536.636]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[16.26513,91.87481,-1566.824],\n[17.89165,95.67822,-1569.495],\n[19.51816,99.39069,-1572.203]\n],0,72,[14.63862,87.43179,-1572.203],[19.51816,99.39069,-1564.42]));\n\nP.push(new BezierCurve([\n[19.51816,99.39069,-1572.203],\n[19.51816,99.39069,-1572.203]\n],0,72,[19.51816,99.39069,-1572.203],[19.51816,99.39069,-1572.203]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[12.75085,46.22138,-1548.646],\n[9.447303,52.2302,-1551.501],\n[4.87954,55.73323,-1552.092]\n],0,72,[4.87954,39.19223,-1552.092],[12.75085,55.73323,-1546.216]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[4.87954,55.73323,-1552.092]\n],0,72,[4.87954,55.73323,-1552.092],[4.87954,55.73323,-1552.092]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[4.250284,21.50157,-1553.578],\n[8.500569,32.76402,-1548.891],\n[12.75085,39.19223,-1546.216]\n],0,72,[0,0,-1562.526],[12.75085,39.19223,-1546.216]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[12.75085,39.19223,-1546.216]\n],0,72,[12.75085,39.19223,-1546.216],[12.75085,39.19223,-1546.216]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[1.626513,29.60187,-1554.46],\n[3.253027,45.82566,-1551.962],\n[4.87954,55.73323,-1552.092]\n],0,72,[0,0,-1562.526],[4.87954,55.73323,-1552.087]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[4.87954,55.73323,-1552.092]\n],0,72,[4.87954,55.73323,-1552.092],[4.87954,55.73323,-1552.092]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-82.03369,-25.64513,-1575.225],\n[-75.07337,-25.90749,-1537.433],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-76.09503,-27.29371,-1605.596],[-54.09729,-20.78482,-1512.581]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-54.09729,-20.78482,-1512.581],[-54.09729,-20.78482,-1512.581]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-95.70597,-26.91541,-1576.091],\n[-87.5856,-28.72345,-1532.626],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-88.77753,-27.45114,-1610.946],[-63.1135,-24.24896,-1504.257]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-63.1135,-24.24896,-1504.257],[-63.1135,-24.24896,-1504.257]));\n\nP.push(new BezierCurve([\n[-70.68151,-27.29371,-1605.596],\n[-74.60826,-27.38086,-1607.394],\n[-78.53501,-27.43145,-1609.177],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-27.45114,-1610.946],[-70.68151,-27.29371,-1605.596]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-82.46176,-27.45114,-1610.946]\n],0,72,[-82.46176,-27.45114,-1610.946],[-82.46176,-27.45114,-1610.946]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-57.10269,-21.93953,-1509.806],\n[-60.1081,-23.09425,-1507.032],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-63.1135,-24.24896,-1512.581],[-54.09729,-20.78482,-1504.257]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-63.1135,-24.24896,-1504.257],[-63.1135,-24.24896,-1504.257]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-76.50512,-91.93556,-1568.655],\n[-56.68382,-110.8,-1544.374],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-76.50512,-120.2062,-1592.163],[-29.27724,-71.21702,-1535.993]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-29.27724,-120.2062,-1535.993],[-29.27724,-120.2062,-1535.993]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-98.08165,-1565.857],\n[-66.13112,-119.2394,-1537.176],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-89.25597,-129.6385,-1593.726],[-34.15678,-74.97205,-1527.158]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-34.15678,-129.6385,-1527.158],[-34.15678,-129.6385,-1527.158]));\n\nP.push(new BezierCurve([\n[-76.50512,-71.21702,-1592.163],\n[-80.7554,-72.53276,-1592.711],\n[-85.00569,-73.78095,-1593.23],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1593.726],[-76.50512,-71.21702,-1592.163]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-74.97205,-1593.726]\n],0,72,[-89.25597,-74.97205,-1593.726],[-89.25597,-74.97205,-1593.726]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-30.90375,-123.434,-1533.083],\n[-32.53027,-126.5735,-1530.136],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-34.15678,-129.6385,-1535.993],[-29.27724,-120.2062,-1527.158]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-34.15678,-129.6385,-1527.158],[-34.15678,-129.6385,-1527.158]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-5.5202,2.446948,-1547.955],\n[0.3117769,9.255537,-1543.865],\n[4.87954,16.68457,-1542.823]\n],0,72,[-9.016214,-3.464137,-1554.202],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[4.87954,16.68457,-1542.823]\n],0,72,[4.87954,16.68457,-1542.823],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.005405,-1.154712,-1559.751],\n[-6.01081,-2.309425,-1556.977],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-9.016214,-3.464137,-1562.526],[0,0,-1554.202]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-9.016214,-3.464137,-1554.202]\n],0,72,[-9.016214,-3.464137,-1554.202],[-9.016214,-3.464137,-1554.202]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[1.626513,10.12786,-1554.058],\n[3.253027,14.71435,-1547.896],\n[4.87954,16.68457,-1542.823]\n],0,72,[0,0,-1562.526],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[4.87954,16.68457,-1542.823]\n],0,72,[4.87954,16.68457,-1542.823],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[0.3117769,59.23627,-1552.684],\n[-5.5202,60.23354,-1551.012],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,55.73323,-1552.21],[4.87954,59.46464,-1547.784]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,58.89033,-1547.784],[-9.016214,58.89033,-1547.784]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[0.6235539,78.5207,-1559.467],\n[-11.0404,79.44732,-1556.569],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,73.56916,-1558.073],[9.75908,78.23846,-1550.113]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,76.7609,-1550.113],[-18.03243,76.7609,-1550.113]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[6.506053,65.64081,-1552.222],\n[8.132567,69.23217,-1554.981],\n[9.75908,73.56916,-1557.429]\n],0,72,[4.87954,55.73323,-1557.429],[9.75908,73.56916,-1552.092]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[9.75908,73.56916,-1557.429]\n],0,72,[9.75908,73.56916,-1557.429],[9.75908,73.56916,-1557.429]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-12.02162,69.13591,-1546.776],\n[-15.02702,72.54487,-1548.613],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,58.89033,-1550.113],[-9.016214,76.7609,-1547.495]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,76.7609,-1550.113],[-18.03243,76.7609,-1550.113]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-95.70597,-26.91541,-1576.091],\n[-87.5856,-28.72345,-1532.626],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-88.77753,-27.45114,-1610.946],[-63.1135,-24.24896,-1504.257]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-63.1135,-24.24896,-1504.257],[-63.1135,-24.24896,-1504.257]));\n\nP.push(new BezierCurve([\n[-94.24202,-27.42315,-1616.22],\n[-109.3783,-28.05887,-1576.904],\n[-100.0978,-31.476,-1527.792],\n[-72.12972,-27.71309,-1495.933]\n],0,72,[-101.46,-29.45295,-1616.22],[-72.12972,-27.42315,-1495.933]));\n\nP.push(new BezierCurve([\n[-72.12972,-27.71309,-1495.933],\n[-72.12972,-27.71309,-1495.933]\n],0,72,[-72.12972,-27.71309,-1495.933],[-72.12972,-27.71309,-1495.933]));\n\nP.push(new BezierCurve([\n[-82.46176,-27.45114,-1610.946],\n[-86.38851,-27.47083,-1612.716],\n[-90.31526,-27.45961,-1614.473],\n[-94.24202,-27.42315,-1616.22]\n],0,72,[-94.24202,-27.46074,-1616.22],[-82.46176,-27.42315,-1610.946]));\n\nP.push(new BezierCurve([\n[-94.24202,-27.42315,-1616.22],\n[-94.24202,-27.42315,-1616.22]\n],0,72,[-94.24202,-27.42315,-1616.22],[-94.24202,-27.42315,-1616.22]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-66.11891,-25.40367,-1501.482],\n[-69.12431,-26.55838,-1498.707],\n[-72.12972,-27.71309,-1495.933]\n],0,72,[-72.12972,-27.71309,-1504.257],[-63.1135,-24.24896,-1495.933]));\n\nP.push(new BezierCurve([\n[-72.12972,-27.71309,-1495.933],\n[-72.12972,-27.71309,-1495.933]\n],0,72,[-72.12972,-27.71309,-1495.933],[-72.12972,-27.71309,-1495.933]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[25.50171,59.64114,-1548.417],\n[18.89461,68.61761,-1555.391],\n[9.75908,73.56916,-1557.429]\n],0,72,[9.75908,49.37912,-1557.429],[25.50171,73.56916,-1541.977]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[9.75908,73.56916,-1557.429]\n],0,72,[9.75908,73.56916,-1557.429],[9.75908,73.56916,-1557.429]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[38.25256,69.62185,-1549.618],\n[28.34191,81.24714,-1560.846],\n[14.63862,87.43179,-1564.42]\n],0,72,[14.63862,56.52498,-1564.42],[38.25256,87.43179,-1539.003]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[14.63862,87.43179,-1564.42]\n],0,72,[14.63862,87.43179,-1564.42],[14.63862,87.43179,-1564.42]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[29.75199,51.5438,-1541.076],\n[34.00227,54.27916,-1539.938],\n[38.25256,56.52498,-1539.003]\n],0,72,[25.50171,49.37912,-1541.977],[38.25256,56.52498,-1539.003]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[38.25256,56.52498,-1539.003]\n],0,72,[38.25256,56.52498,-1539.003],[38.25256,56.52498,-1539.003]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[11.38559,77.90615,-1559.878],\n[13.01211,82.98877,-1562.016],\n[14.63862,87.43179,-1564.42]\n],0,72,[9.75908,73.56916,-1564.42],[14.63862,87.43179,-1557.429]));\n\nP.push(new BezierCurve([\n[14.63862,87.43179,-1564.42],\n[14.63862,87.43179,-1564.42]\n],0,72,[14.63862,87.43179,-1564.42],[14.63862,87.43179,-1564.42]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[9.447303,24.11361,-1541.781],\n[12.75085,32.16309,-1543.786],\n[12.75085,39.19223,-1546.216]\n],0,72,[4.87954,16.68457,-1546.216],[12.75085,39.19223,-1542.541]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[12.75085,39.19223,-1546.216]\n],0,72,[12.75085,39.19223,-1546.216],[12.75085,39.19223,-1546.216]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[1.626513,10.12786,-1554.058],\n[3.253027,14.71435,-1547.896],\n[4.87954,16.68457,-1542.823]\n],0,72,[0,0,-1562.526],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[4.87954,16.68457,-1542.823]\n],0,72,[4.87954,16.68457,-1542.823],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[4.250284,21.50157,-1553.578],\n[8.500569,32.76402,-1548.891],\n[12.75085,39.19223,-1546.216]\n],0,72,[0,0,-1562.526],[12.75085,39.19223,-1546.216]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[12.75085,39.19223,-1546.216]\n],0,72,[12.75085,39.19223,-1546.216],[12.75085,39.19223,-1546.216]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-12.51223,57.54712,-1544.557],\n[-13.67228,53.86343,-1539.773],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-12.6825,49.33234,-1547.784],[-9.016214,58.89033,-1536.711]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-11.78025,49.33234,-1536.711],[-11.78025,49.33234,-1536.711]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.005405,31.56253,-1552.646],\n[-6.01081,48.64474,-1548.793],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,0,-1562.526],[0,58.89033,-1547.784]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-9.016214,58.89033,-1547.784]\n],0,72,[-9.016214,58.89033,-1547.784],[-9.016214,58.89033,-1547.784]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.926751,27.46824,-1549.333],\n[-7.853501,41.5584,-1541.708],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-11.78025,0,-1562.526],[0,49.33234,-1536.711]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-11.78025,49.33234,-1536.711],[-11.78025,49.33234,-1536.711]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[4.944111,29.16364,-1536.579],\n[9.888222,24.28301,-1542.188],\n[11.78025,19.33591,-1549.194]\n],0,72,[-3.552714e-15,19.33591,-1549.194],[11.78025,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[11.78025,19.33591,-1549.194]\n],0,72,[11.78025,19.33591,-1549.194],[11.78025,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.552714e-15,19.86856,-1549.654],\n[-2.664535e-15,29.498,-1541.043],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-3.552714e-15,0,-1562.526],[0,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-3.552714e-15,34.2932,-1534.444],[-3.552714e-15,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[3.926751,11.01164,-1556.182],\n[7.853501,16.48191,-1552.144],\n[11.78025,19.33591,-1549.194]\n],0,72,[0,0,-1562.526],[11.78025,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[11.78025,19.33591,-1549.194]\n],0,72,[11.78025,19.33591,-1549.194],[11.78025,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-89.25597,-98.08165,-1565.857],\n[-66.13112,-119.2394,-1537.176],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-89.25597,-129.6385,-1593.726],[-34.15678,-74.97205,-1527.158]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-34.15678,-129.6385,-1527.158],[-34.15678,-129.6385,-1527.158]));\n\nP.push(new BezierCurve([\n[-102.0068,-78.38447,-1595.146],\n[-102.0068,-103.8403,-1562.898],\n[-75.57843,-127.2554,-1529.802],\n[-39.03632,-138.6231,-1518.138]\n],0,72,[-102.0068,-138.6231,-1595.146],[-39.03632,-78.38447,-1518.138]));\n\nP.push(new BezierCurve([\n[-39.03632,-138.6231,-1518.138],\n[-39.03632,-138.6231,-1518.138]\n],0,72,[-39.03632,-138.6231,-1518.138],[-39.03632,-138.6231,-1518.138]));\n\nP.push(new BezierCurve([\n[-89.25597,-74.97205,-1593.726],\n[-93.50625,-76.16314,-1594.222],\n[-97.75654,-77.29713,-1594.694],\n[-102.0068,-78.38447,-1595.146]\n],0,72,[-102.0068,-78.38447,-1595.146],[-89.25597,-74.97205,-1593.726]));\n\nP.push(new BezierCurve([\n[-102.0068,-78.38447,-1595.146],\n[-102.0068,-78.38447,-1595.146]\n],0,72,[-102.0068,-78.38447,-1595.146],[-102.0068,-78.38447,-1595.146]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-35.78329,-132.7034,-1524.181],\n[-37.40981,-135.6938,-1521.172],\n[-39.03632,-138.6231,-1518.138]\n],0,72,[-39.03632,-138.6231,-1527.158],[-34.15678,-129.6385,-1518.138]));\n\nP.push(new BezierCurve([\n[-39.03632,-138.6231,-1518.138],\n[-39.03632,-138.6231,-1518.138]\n],0,72,[-39.03632,-138.6231,-1518.138],[-39.03632,-138.6231,-1518.138]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[12.75085,46.22138,-1548.646],\n[9.447303,52.2302,-1551.501],\n[4.87954,55.73323,-1552.092]\n],0,72,[4.87954,39.19223,-1552.092],[12.75085,55.73323,-1546.216]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[4.87954,55.73323,-1552.092]\n],0,72,[4.87954,55.73323,-1552.092],[4.87954,55.73323,-1552.092]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[25.50171,59.64114,-1548.417],\n[18.89461,68.61761,-1555.391],\n[9.75908,73.56916,-1557.429]\n],0,72,[9.75908,49.37912,-1557.429],[25.50171,73.56916,-1541.977]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[9.75908,73.56916,-1557.429]\n],0,72,[9.75908,73.56916,-1557.429],[9.75908,73.56916,-1557.429]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[17.00114,45.62045,-1543.541],\n[21.25142,47.21444,-1542.878],\n[25.50171,49.37912,-1541.977]\n],0,72,[12.75085,39.19223,-1546.216],[25.50171,49.37912,-1541.977]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[25.50171,49.37912,-1541.977]\n],0,72,[25.50171,49.37912,-1541.977],[25.50171,49.37912,-1541.977]));\n\nP.push(new BezierCurve([\n[4.87954,55.73323,-1552.092],\n[6.506053,65.64081,-1552.222],\n[8.132567,69.23217,-1554.981],\n[9.75908,73.56916,-1557.429]\n],0,72,[4.87954,55.73323,-1557.429],[9.75908,73.56916,-1552.092]));\n\nP.push(new BezierCurve([\n[9.75908,73.56916,-1557.429],\n[9.75908,73.56916,-1557.429]\n],0,72,[9.75908,73.56916,-1557.429],[9.75908,73.56916,-1557.429]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[0,0,-1562.526]\n],0,72,[0,0,-1562.526],[0,0,-1562.526]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-9.888222,44.80126,-1533.649],\n[-4.944111,39.42277,-1532.309],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-11.78025,34.2932,-1536.711],[-3.552714e-15,49.33234,-1533.402]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-3.552714e-15,34.2932,-1534.444],[-3.552714e-15,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.926751,27.46824,-1549.333],\n[-7.853501,41.5584,-1541.708],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-11.78025,0,-1562.526],[0,49.33234,-1536.711]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-11.78025,49.33234,-1536.711],[-11.78025,49.33234,-1536.711]));\n\nP.push(new BezierCurve([\n[0,0,-1562.526],\n[-3.552714e-15,19.86856,-1549.654],\n[-2.664535e-15,29.498,-1541.043],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-3.552714e-15,0,-1562.526],[0,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-3.552714e-15,34.2932,-1534.444],[-3.552714e-15,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-1.247108,-106.7052,-1547.696],\n[22.0808,-107.213,-1552.933],\n[36.06486,-101.8401,-1565.844]\n],0,72,[-19.51816,-105.438,-1565.844],[36.06486,-99.39069,-1550.889]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[36.06486,-101.8401,-1565.844]\n],0,72,[36.06486,-101.8401,-1565.844],[36.06486,-101.8401,-1565.844]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-1.558885,-118.5753,-1537.827],\n[27.601,-118.8142,-1544.209],\n[45.08107,-112.0981,-1560.347]\n],0,72,[-24.3977,-116.8361,-1560.347],[45.08107,-110.1935,-1541.918]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[45.08107,-112.0981,-1560.347]\n],0,72,[45.08107,-112.0981,-1560.347],[45.08107,-112.0981,-1560.347]));\n\nP.push(new BezierCurve([\n[-19.51816,-99.39069,-1552.849],\n[-21.14467,-103.1032,-1550.141],\n[-22.77119,-106.7247,-1547.395],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-24.3977,-110.1935,-1552.849],[-19.51816,-99.39069,-1544.585]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-24.3977,-110.1935,-1544.585]\n],0,72,[-24.3977,-110.1935,-1544.585],[-24.3977,-110.1935,-1544.585]));\n\nP.push(new BezierCurve([\n[36.06486,-101.8401,-1565.844],\n[39.07026,-105.3802,-1564.062],\n[42.07567,-108.8218,-1562.239],\n[45.08107,-112.0981,-1560.347]\n],0,72,[36.06486,-112.0981,-1565.844],[45.08107,-101.8401,-1560.347]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[45.08107,-112.0981,-1560.347]\n],0,72,[45.08107,-112.0981,-1560.347],[45.08107,-112.0981,-1560.347]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-12.51223,57.54712,-1544.557],\n[-13.67228,53.86343,-1539.773],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-12.6825,49.33234,-1547.784],[-9.016214,58.89033,-1536.711]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-11.78025,49.33234,-1536.711]\n],0,72,[-11.78025,49.33234,-1536.711],[-11.78025,49.33234,-1536.711]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-25.02446,74.07448,-1543.658],\n[-27.34456,67.77502,-1533.646],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-25.36501,60.76738,-1550.113],[-18.03243,76.7609,-1526.667]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-23.5605,60.76738,-1526.667],[-23.5605,60.76738,-1526.667]));\n\nP.push(new BezierCurve([\n[-9.016214,58.89033,-1547.784],\n[-12.02162,69.13591,-1546.776],\n[-15.02702,72.54487,-1548.613],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,58.89033,-1550.113],[-9.016214,76.7609,-1547.495]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-18.03243,76.7609,-1550.113]\n],0,72,[-18.03243,76.7609,-1550.113],[-18.03243,76.7609,-1550.113]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-15.707,57.10629,-1531.714],\n[-19.63375,58.56402,-1529.346],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-23.5605,49.33234,-1536.711],[-11.78025,60.76738,-1526.667]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-23.5605,60.76738,-1526.667],[-23.5605,60.76738,-1526.667]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-5.5202,2.446948,-1547.955],\n[0.3117769,9.255537,-1543.865],\n[4.87954,16.68457,-1542.823]\n],0,72,[-9.016214,-3.464137,-1554.202],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[4.87954,16.68457,-1542.823]\n],0,72,[4.87954,16.68457,-1542.823],[4.87954,16.68457,-1542.823]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-11.0404,-0.4748556,-1535.619],\n[0.6235539,7.773571,-1529.673],\n[9.75908,17.67156,-1529.653]\n],0,72,[-18.03243,-6.928274,-1545.878],[9.75908,17.67156,-1529.653]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[9.75908,17.67156,-1529.653]\n],0,72,[9.75908,17.67156,-1529.653],[9.75908,17.67156,-1529.653]));\n\nP.push(new BezierCurve([\n[-9.016214,-3.464137,-1554.202],\n[-12.02162,-4.618849,-1551.427],\n[-15.02702,-5.773561,-1548.652],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-18.03243,-6.928274,-1554.202],[-9.016214,-3.464137,-1545.878]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-18.03243,-6.928274,-1545.878]\n],0,72,[-18.03243,-6.928274,-1545.878],[-18.03243,-6.928274,-1545.878]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[6.506053,18.65479,-1537.75],\n[8.132567,18.00875,-1533.766],\n[9.75908,17.67156,-1529.653]\n],0,72,[4.87954,16.68457,-1542.823],[9.75908,18.04823,-1529.653]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[9.75908,17.67156,-1529.653]\n],0,72,[9.75908,17.67156,-1529.653],[9.75908,17.67156,-1529.653]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-1.558885,-118.5753,-1537.827],\n[27.601,-118.8142,-1544.209],\n[45.08107,-112.0981,-1560.347]\n],0,72,[-24.3977,-116.8361,-1560.347],[45.08107,-110.1935,-1541.918]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[45.08107,-112.0981,-1560.347]\n],0,72,[45.08107,-112.0981,-1560.347],[45.08107,-112.0981,-1560.347]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-1.870662,-129.6123,-1527.611],\n[33.1212,-129.5602,-1535.128],\n[54.09729,-121.5009,-1554.494]\n],0,72,[-29.27724,-127.4114,-1554.494],[54.09729,-120.2062,-1532.601]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[54.09729,-121.5009,-1554.494]\n],0,72,[54.09729,-121.5009,-1554.494],[54.09729,-121.5009,-1554.494]));\n\nP.push(new BezierCurve([\n[-24.3977,-110.1935,-1544.585],\n[-26.02421,-113.6623,-1541.776],\n[-27.65073,-116.9784,-1538.903],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-29.27724,-120.2062,-1544.585],[-24.3977,-110.1935,-1535.993]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-29.27724,-120.2062,-1535.993]\n],0,72,[-29.27724,-120.2062,-1535.993],[-29.27724,-120.2062,-1535.993]));\n\nP.push(new BezierCurve([\n[45.08107,-112.0981,-1560.347],\n[48.08648,-115.3744,-1558.455],\n[51.09188,-118.4854,-1556.495],\n[54.09729,-121.5009,-1554.494]\n],0,72,[45.08107,-121.5009,-1560.347],[54.09729,-112.0981,-1554.494]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[54.09729,-121.5009,-1554.494]\n],0,72,[54.09729,-121.5009,-1554.494],[54.09729,-121.5009,-1554.494]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[9.447303,24.11361,-1541.781],\n[12.75085,32.16309,-1543.786],\n[12.75085,39.19223,-1546.216]\n],0,72,[4.87954,16.68457,-1546.216],[12.75085,39.19223,-1542.541]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[12.75085,39.19223,-1546.216]\n],0,72,[12.75085,39.19223,-1546.216],[12.75085,39.19223,-1546.216]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[18.89461,27.56955,-1529.632],\n[25.50171,39.11711,-1535.537],\n[25.50171,49.37912,-1541.977]\n],0,72,[9.75908,17.67156,-1541.977],[25.50171,49.37912,-1529.653]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[25.50171,49.37912,-1541.977]\n],0,72,[25.50171,49.37912,-1541.977],[25.50171,49.37912,-1541.977]));\n\nP.push(new BezierCurve([\n[4.87954,16.68457,-1542.823],\n[6.506053,18.65479,-1537.75],\n[8.132567,18.00875,-1533.766],\n[9.75908,17.67156,-1529.653]\n],0,72,[4.87954,16.68457,-1542.823],[9.75908,18.04823,-1529.653]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[9.75908,17.67156,-1529.653]\n],0,72,[9.75908,17.67156,-1529.653],[9.75908,17.67156,-1529.653]));\n\nP.push(new BezierCurve([\n[12.75085,39.19223,-1546.216],\n[17.00114,45.62045,-1543.541],\n[21.25142,47.21444,-1542.878],\n[25.50171,49.37912,-1541.977]\n],0,72,[12.75085,39.19223,-1546.216],[25.50171,49.37912,-1541.977]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[25.50171,49.37912,-1541.977]\n],0,72,[25.50171,49.37912,-1541.977],[25.50171,49.37912,-1541.977]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-25.02446,74.07448,-1543.658],\n[-27.34456,67.77502,-1533.646],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-25.36501,60.76738,-1550.113],[-18.03243,76.7609,-1526.667]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-23.5605,60.76738,-1526.667],[-23.5605,60.76738,-1526.667]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-37.53669,86.30118,-1544.549],\n[-41.01684,77.49791,-1529.262],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-38.04751,68.22912,-1554.232],[-27.04864,90.33081,-1518.277]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-35.34076,68.22912,-1518.277],[-35.34076,68.22912,-1518.277]));\n\nP.push(new BezierCurve([\n[-18.03243,76.7609,-1550.113],\n[-21.03783,80.97692,-1551.614],\n[-24.04324,86.00002,-1552.779],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,76.7609,-1554.232],[-18.03243,90.33081,-1550.113]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-27.04864,90.33081,-1554.232]\n],0,72,[-27.04864,90.33081,-1554.232],[-27.04864,90.33081,-1554.232]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-27.48725,62.97074,-1523.988],\n[-31.41401,65.91973,-1520.999],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-35.34076,60.76738,-1526.667],[-23.5605,68.22912,-1518.277]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-35.34076,68.22912,-1518.277],[-35.34076,68.22912,-1518.277]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-37.53669,86.30118,-1544.549],\n[-41.01684,77.49791,-1529.262],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-38.04751,68.22912,-1554.232],[-27.04864,90.33081,-1518.277]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-35.34076,68.22912,-1518.277],[-35.34076,68.22912,-1518.277]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-50.04892,96.4673,-1546.297],\n[-54.68913,85.21387,-1525.713],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-50.73002,73.78713,-1559.208],[-36.06486,101.8401,-1510.678]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-47.12101,73.78713,-1510.678],[-47.12101,73.78713,-1510.678]));\n\nP.push(new BezierCurve([\n[-27.04864,90.33081,-1554.232],\n[-30.05405,94.6616,-1555.685],\n[-33.05945,98.30008,-1557.426],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,90.33081,-1559.208],[-27.04864,101.8401,-1554.232]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-36.06486,101.8401,-1559.208]\n],0,72,[-36.06486,101.8401,-1559.208],[-36.06486,101.8401,-1559.208]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-39.26751,70.5385,-1515.554],\n[-43.19426,72.20828,-1513.097],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-47.12101,68.22912,-1518.277],[-35.34076,73.78713,-1510.678]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-47.12101,73.78713,-1510.678],[-47.12101,73.78713,-1510.678]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-50.04892,96.4673,-1546.297],\n[-54.68913,85.21387,-1525.713],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-50.73002,73.78713,-1559.208],[-36.06486,101.8401,-1510.678]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-47.12101,73.78713,-1510.678],[-47.12101,73.78713,-1510.678]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-62.56115,105.3821,-1548.567],\n[-68.36141,91.71107,-1522.672],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-63.41252,78.18906,-1564.705],[-45.08107,112.0981,-1503.561]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-58.90126,78.18906,-1503.561],[-58.90126,78.18906,-1503.561]));\n\nP.push(new BezierCurve([\n[-36.06486,101.8401,-1559.208],\n[-39.07026,105.3802,-1560.99],\n[-42.07567,108.8218,-1562.813],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,101.8401,-1564.705],[-36.06486,112.0981,-1559.208]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-45.08107,112.0981,-1564.705]\n],0,72,[-45.08107,112.0981,-1564.705],[-45.08107,112.0981,-1564.705]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-51.04776,75.36597,-1508.26],\n[-54.97451,76.85389,-1505.879],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-58.90126,73.78713,-1510.678],[-47.12101,78.18906,-1503.561]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-58.90126,78.18906,-1503.561],[-58.90126,78.18906,-1503.561]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-87.5856,120.873,-1554.078],\n[-95.70597,102.4277,-1517.537],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-88.77753,84.83226,-1576.672],[-63.1135,130.2754,-1490.226]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-82.46176,84.83226,-1490.226],[-82.46176,84.83226,-1490.226]));\n\nP.push(new BezierCurve([\n[-72.12972,138.5655,-1582.988],\n[-100.0978,127.8198,-1557.166],\n[-109.3783,107.0081,-1515.293],\n[-94.24202,87.41602,-1483.866]\n],0,72,[-101.46,87.41602,-1582.988],[-72.12972,138.5655,-1483.866]));\n\nP.push(new BezierCurve([\n[-94.24202,87.41602,-1483.866],\n[-94.24202,87.41602,-1483.866]\n],0,72,[-94.24202,87.41602,-1483.866],[-94.24202,87.41602,-1483.866]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-66.11891,133.1146,-1578.746],\n[-69.12431,135.873,-1580.853],\n[-72.12972,138.5655,-1582.988]\n],0,72,[-72.12972,130.2754,-1582.988],[-63.1135,138.5655,-1576.672]));\n\nP.push(new BezierCurve([\n[-72.12972,138.5655,-1582.988],\n[-72.12972,138.5655,-1582.988]\n],0,72,[-72.12972,138.5655,-1582.988],[-72.12972,138.5655,-1582.988]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-86.38851,85.76357,-1488.077],\n[-90.31526,86.62027,-1485.959],\n[-94.24202,87.41602,-1483.866]\n],0,72,[-94.24202,84.83226,-1490.226],[-82.46176,87.41602,-1483.866]));\n\nP.push(new BezierCurve([\n[-94.24202,87.41602,-1483.866],\n[-94.24202,87.41602,-1483.866]\n],0,72,[-94.24202,87.41602,-1483.866],[-94.24202,87.41602,-1483.866]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-62.56115,105.3821,-1548.567],\n[-68.36141,91.71107,-1522.672],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-63.41252,78.18906,-1564.705],[-45.08107,112.0981,-1503.561]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-58.90126,78.18906,-1503.561],[-58.90126,78.18906,-1503.561]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-75.07337,113.4416,-1551.192],\n[-82.03369,97.37529,-1519.977],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-76.09503,81.80085,-1570.558],[-54.09729,121.5009,-1496.773]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-70.68151,81.80085,-1496.773],[-70.68151,81.80085,-1496.773]));\n\nP.push(new BezierCurve([\n[-45.08107,112.0981,-1564.705],\n[-48.08648,115.3744,-1566.597],\n[-51.09188,118.4854,-1568.557],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,112.0981,-1570.558],[-45.08107,121.5009,-1564.705]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-54.09729,121.5009,-1570.558]\n],0,72,[-54.09729,121.5009,-1570.558],[-54.09729,121.5009,-1570.558]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-62.82801,79.52423,-1501.244],\n[-66.75476,80.70667,-1498.99],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-70.68151,78.18906,-1503.561],[-58.90126,81.80085,-1496.773]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-70.68151,81.80085,-1496.773],[-70.68151,81.80085,-1496.773]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-75.07337,113.4416,-1551.192],\n[-82.03369,97.37529,-1519.977],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-76.09503,81.80085,-1570.558],[-54.09729,121.5009,-1496.773]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-70.68151,81.80085,-1496.773],[-70.68151,81.80085,-1496.773]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-87.5856,120.873,-1554.078],\n[-95.70597,102.4277,-1517.537],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-88.77753,84.83226,-1576.672],[-63.1135,130.2754,-1490.226]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-82.46176,84.83226,-1490.226],[-82.46176,84.83226,-1490.226]));\n\nP.push(new BezierCurve([\n[-54.09729,121.5009,-1570.558],\n[-57.10269,124.5163,-1572.558],\n[-60.1081,127.4363,-1574.598],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,121.5009,-1576.672],[-54.09729,130.2754,-1570.558]));\n\nP.push(new BezierCurve([\n[-63.1135,130.2754,-1576.672],\n[-63.1135,130.2754,-1576.672]\n],0,72,[-63.1135,130.2754,-1576.672],[-63.1135,130.2754,-1576.672]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-74.60826,82.89503,-1494.556],\n[-78.53501,83.90095,-1492.376],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-82.46176,81.80085,-1496.773],[-70.68151,84.83226,-1490.226]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-82.46176,84.83226,-1490.226],[-82.46176,84.83226,-1490.226]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[4.944111,29.16364,-1536.579],\n[9.888222,24.28301,-1542.188],\n[11.78025,19.33591,-1549.194]\n],0,72,[-3.552714e-15,19.33591,-1549.194],[11.78025,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[11.78025,19.33591,-1549.194]\n],0,72,[11.78025,19.33591,-1549.194],[11.78025,19.33591,-1549.194]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[9.888222,33.11822,-1521.122],\n[19.77644,27.90837,-1530.446],\n[23.5605,22.97423,-1542.395]\n],0,72,[-7.105427e-15,22.97423,-1542.395],[23.5605,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[23.5605,22.97423,-1542.395]\n],0,72,[23.5605,22.97423,-1542.395],[23.5605,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[-3.552714e-15,39.08841,-1527.845],\n[-5.329071e-15,39.0494,-1523.257],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-7.105427e-15,34.2932,-1534.444],[-3.552714e-15,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-7.105427e-15,39.58106,-1518.432],[-7.105427e-15,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[11.78025,19.33591,-1549.194],\n[15.707,22.18991,-1546.245],\n[19.63375,22.42764,-1544.384],\n[23.5605,22.97423,-1542.395]\n],0,72,[11.78025,19.33591,-1549.194],[23.5605,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[23.5605,22.97423,-1542.395]\n],0,72,[23.5605,22.97423,-1542.395],[23.5605,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-1.870662,-129.6123,-1527.611],\n[33.1212,-129.5602,-1535.128],\n[54.09729,-121.5009,-1554.494]\n],0,72,[-29.27724,-127.4114,-1554.494],[54.09729,-120.2062,-1532.601]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[54.09729,-121.5009,-1554.494]\n],0,72,[54.09729,-121.5009,-1554.494],[54.09729,-121.5009,-1554.494]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-2.182439,-140.0376,-1517.141],\n[38.6414,-139.6779,-1525.786],\n[63.1135,-130.2754,-1548.38]\n],0,72,[-34.15678,-137.3829,-1548.38],[63.1135,-129.6385,-1523.029]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[63.1135,-130.2754,-1548.38]\n],0,72,[63.1135,-130.2754,-1548.38],[63.1135,-130.2754,-1548.38]));\n\nP.push(new BezierCurve([\n[-29.27724,-120.2062,-1535.993],\n[-30.90375,-123.434,-1533.083],\n[-32.53027,-126.5735,-1530.136],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-34.15678,-129.6385,-1535.993],[-29.27724,-120.2062,-1527.158]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-34.15678,-129.6385,-1527.158]\n],0,72,[-34.15678,-129.6385,-1527.158],[-34.15678,-129.6385,-1527.158]));\n\nP.push(new BezierCurve([\n[54.09729,-121.5009,-1554.494],\n[57.10269,-124.5163,-1552.494],\n[60.1081,-127.4363,-1550.454],\n[63.1135,-130.2754,-1548.38]\n],0,72,[54.09729,-130.2754,-1554.494],[63.1135,-121.5009,-1548.38]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[63.1135,-130.2754,-1548.38]\n],0,72,[63.1135,-130.2754,-1548.38],[63.1135,-130.2754,-1548.38]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[18.89461,27.56955,-1529.632],\n[25.50171,39.11711,-1535.537],\n[25.50171,49.37912,-1541.977]\n],0,72,[9.75908,17.67156,-1541.977],[25.50171,49.37912,-1529.653]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[25.50171,49.37912,-1541.977]\n],0,72,[25.50171,49.37912,-1541.977],[25.50171,49.37912,-1541.977]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[28.34191,28.85968,-1518.385],\n[38.25256,43.42812,-1528.388],\n[38.25256,56.52498,-1539.003]\n],0,72,[14.63862,17.01276,-1539.003],[38.25256,56.52498,-1517.167]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[38.25256,56.52498,-1539.003]\n],0,72,[38.25256,56.52498,-1539.003],[38.25256,56.52498,-1539.003]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[11.38559,17.33437,-1525.54],\n[13.01211,17.30603,-1521.298],\n[14.63862,17.01276,-1517.167]\n],0,72,[9.75908,17.01276,-1529.653],[14.63862,17.67156,-1517.167]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[14.63862,17.01276,-1517.167]\n],0,72,[14.63862,17.01276,-1517.167],[14.63862,17.01276,-1517.167]));\n\nP.push(new BezierCurve([\n[25.50171,49.37912,-1541.977],\n[29.75199,51.5438,-1541.076],\n[34.00227,54.27916,-1539.938],\n[38.25256,56.52498,-1539.003]\n],0,72,[25.50171,49.37912,-1541.977],[38.25256,56.52498,-1539.003]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[38.25256,56.52498,-1539.003]\n],0,72,[38.25256,56.52498,-1539.003],[38.25256,56.52498,-1539.003]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-11.0404,-0.4748556,-1535.619],\n[0.6235539,7.773571,-1529.673],\n[9.75908,17.67156,-1529.653]\n],0,72,[-18.03243,-6.928274,-1545.878],[9.75908,17.67156,-1529.653]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[9.75908,17.67156,-1529.653]\n],0,72,[9.75908,17.67156,-1529.653],[9.75908,17.67156,-1529.653]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-16.5606,-3.959538,-1523.517],\n[0.9353308,5.165848,-1515.949],\n[14.63862,17.01276,-1517.167]\n],0,72,[-27.04864,-10.39241,-1537.554],[14.63862,17.01276,-1517.04]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[14.63862,17.01276,-1517.167]\n],0,72,[14.63862,17.01276,-1517.167],[14.63862,17.01276,-1517.167]));\n\nP.push(new BezierCurve([\n[-18.03243,-6.928274,-1545.878],\n[-21.03783,-8.082986,-1543.103],\n[-24.04324,-9.237698,-1540.328],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-27.04864,-10.39241,-1545.878],[-18.03243,-6.928274,-1537.554]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-27.04864,-10.39241,-1537.554]\n],0,72,[-27.04864,-10.39241,-1537.554],[-27.04864,-10.39241,-1537.554]));\n\nP.push(new BezierCurve([\n[9.75908,17.67156,-1529.653],\n[11.38559,17.33437,-1525.54],\n[13.01211,17.30603,-1521.298],\n[14.63862,17.01276,-1517.167]\n],0,72,[9.75908,17.01276,-1529.653],[14.63862,17.67156,-1517.167]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[14.63862,17.01276,-1517.167]\n],0,72,[14.63862,17.01276,-1517.167],[14.63862,17.01276,-1517.167]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-9.888222,44.80126,-1533.649],\n[-4.944111,39.42277,-1532.309],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-11.78025,34.2932,-1536.711],[-3.552714e-15,49.33234,-1533.402]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[-3.552714e-15,34.2932,-1534.444]\n],0,72,[-3.552714e-15,34.2932,-1534.444],[-3.552714e-15,34.2932,-1534.444]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-19.77644,53.75973,-1519.688],\n[-9.888222,46.0439,-1515.743],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-23.5605,39.58106,-1526.667],[-7.105427e-15,60.76738,-1517.582]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-7.105427e-15,39.58106,-1518.432],[-7.105427e-15,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[-11.78025,49.33234,-1536.711],\n[-15.707,57.10629,-1531.714],\n[-19.63375,58.56402,-1529.346],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-23.5605,49.33234,-1536.711],[-11.78025,60.76738,-1526.667]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-23.5605,60.76738,-1526.667]\n],0,72,[-23.5605,60.76738,-1526.667],[-23.5605,60.76738,-1526.667]));\n\nP.push(new BezierCurve([\n[-3.552714e-15,34.2932,-1534.444],\n[-3.552714e-15,39.08841,-1527.845],\n[-5.329071e-15,39.0494,-1523.257],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-7.105427e-15,34.2932,-1534.444],[-3.552714e-15,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-7.105427e-15,39.58106,-1518.432],[-7.105427e-15,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[9.888222,33.11822,-1521.122],\n[19.77644,27.90837,-1530.446],\n[23.5605,22.97423,-1542.395]\n],0,72,[-7.105427e-15,22.97423,-1542.395],[23.5605,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[23.5605,22.97423,-1542.395]\n],0,72,[23.5605,22.97423,-1542.395],[23.5605,22.97423,-1542.395]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[14.83233,34.42979,-1506.765],\n[29.66467,29.36789,-1519.606],\n[35.34076,24.96677,-1536.28]\n],0,72,[-7.105427e-15,24.96677,-1536.28],[35.34076,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[35.34076,24.96677,-1536.28]\n],0,72,[35.34076,24.96677,-1536.28],[35.34076,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[-7.105427e-15,40.11273,-1513.608],\n[-7.105427e-15,41.21508,-1508.545],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-7.105427e-15,39.58106,-1518.432],[-7.105427e-15,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-7.105427e-15,41.8279,-1503.687],[-7.105427e-15,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[23.5605,22.97423,-1542.395],\n[27.48725,23.52082,-1540.406],\n[31.41401,24.37626,-1538.288],\n[35.34076,24.96677,-1536.28]\n],0,72,[23.5605,22.97423,-1542.395],[35.34076,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[35.34076,24.96677,-1536.28]\n],0,72,[35.34076,24.96677,-1536.28],[35.34076,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-2.182439,-140.0376,-1517.141],\n[38.6414,-139.6779,-1525.786],\n[63.1135,-130.2754,-1548.38]\n],0,72,[-34.15678,-137.3829,-1548.38],[63.1135,-129.6385,-1523.029]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[63.1135,-130.2754,-1548.38]\n],0,72,[63.1135,-130.2754,-1548.38],[63.1135,-130.2754,-1548.38]));\n\nP.push(new BezierCurve([\n[-39.03632,-138.6231,-1518.138],\n[-2.494216,-149.9909,-1506.474],\n[44.1616,-149.3112,-1516.243],\n[72.12972,-138.5655,-1542.064]\n],0,72,[-39.03632,-146.8891,-1542.064],[72.12972,-138.5655,-1513.263]));\n\nP.push(new BezierCurve([\n[72.12972,-138.5655,-1542.064],\n[72.12972,-138.5655,-1542.064]\n],0,72,[72.12972,-138.5655,-1542.064],[72.12972,-138.5655,-1542.064]));\n\nP.push(new BezierCurve([\n[-34.15678,-129.6385,-1527.158],\n[-35.78329,-132.7034,-1524.181],\n[-37.40981,-135.6938,-1521.172],\n[-39.03632,-138.6231,-1518.138]\n],0,72,[-39.03632,-138.6231,-1527.158],[-34.15678,-129.6385,-1518.138]));\n\nP.push(new BezierCurve([\n[-39.03632,-138.6231,-1518.138],\n[-39.03632,-138.6231,-1518.138]\n],0,72,[-39.03632,-138.6231,-1518.138],[-39.03632,-138.6231,-1518.138]));\n\nP.push(new BezierCurve([\n[63.1135,-130.2754,-1548.38],\n[66.11891,-133.1146,-1546.306],\n[69.12431,-135.873,-1544.199],\n[72.12972,-138.5655,-1542.064]\n],0,72,[63.1135,-138.5655,-1548.38],[72.12972,-130.2754,-1542.064]));\n\nP.push(new BezierCurve([\n[72.12972,-138.5655,-1542.064],\n[72.12972,-138.5655,-1542.064]\n],0,72,[72.12972,-138.5655,-1542.064],[72.12972,-138.5655,-1542.064]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[28.34191,28.85968,-1518.385],\n[38.25256,43.42812,-1528.388],\n[38.25256,56.52498,-1539.003]\n],0,72,[14.63862,17.01276,-1539.003],[38.25256,56.52498,-1517.167]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[38.25256,56.52498,-1539.003]\n],0,72,[38.25256,56.52498,-1539.003],[38.25256,56.52498,-1539.003]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[37.78921,29.11208,-1507.57],\n[51.00341,46.47278,-1521.766],\n[51.00341,62.21379,-1536.636]\n],0,72,[19.51816,15.56541,-1536.636],[51.00341,62.21379,-1505.01]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[51.00341,62.21379,-1536.636]\n],0,72,[51.00341,62.21379,-1536.636],[51.00341,62.21379,-1536.636]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[16.26513,16.71949,-1513.036],\n[17.89165,16.16128,-1509.015],\n[19.51816,15.56541,-1505.01]\n],0,72,[14.63862,15.56541,-1517.167],[19.51816,17.01276,-1505.01]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[19.51816,15.56541,-1505.01]\n],0,72,[19.51816,15.56541,-1505.01],[19.51816,15.56541,-1505.01]));\n\nP.push(new BezierCurve([\n[38.25256,56.52498,-1539.003],\n[42.50284,58.77081,-1538.068],\n[46.75313,60.5271,-1537.338],\n[51.00341,62.21379,-1536.636]\n],0,72,[38.25256,56.52498,-1539.003],[51.00341,62.21379,-1536.636]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[51.00341,62.21379,-1536.636]\n],0,72,[51.00341,62.21379,-1536.636],[51.00341,62.21379,-1536.636]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-16.5606,-3.959538,-1523.517],\n[0.9353308,5.165848,-1515.949],\n[14.63862,17.01276,-1517.167]\n],0,72,[-27.04864,-10.39241,-1537.554],[14.63862,17.01276,-1517.04]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[14.63862,17.01276,-1517.167]\n],0,72,[14.63862,17.01276,-1517.167],[14.63862,17.01276,-1517.167]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-22.0808,-7.713913,-1511.526],\n[1.247108,2.018738,-1502.45],\n[19.51816,15.56541,-1505.01]\n],0,72,[-36.06486,-13.85655,-1529.229],[19.51816,15.56541,-1504.584]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[19.51816,15.56541,-1505.01]\n],0,72,[19.51816,15.56541,-1505.01],[19.51816,15.56541,-1505.01]));\n\nP.push(new BezierCurve([\n[-27.04864,-10.39241,-1537.554],\n[-30.05405,-11.54712,-1534.779],\n[-33.05945,-12.70184,-1532.004],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-36.06486,-13.85655,-1537.554],[-27.04864,-10.39241,-1529.229]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-36.06486,-13.85655,-1529.229]\n],0,72,[-36.06486,-13.85655,-1529.229],[-36.06486,-13.85655,-1529.229]));\n\nP.push(new BezierCurve([\n[14.63862,17.01276,-1517.167],\n[16.26513,16.71949,-1513.036],\n[17.89165,16.16128,-1509.015],\n[19.51816,15.56541,-1505.01]\n],0,72,[14.63862,15.56541,-1517.167],[19.51816,17.01276,-1505.01]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[19.51816,15.56541,-1505.01]\n],0,72,[19.51816,15.56541,-1505.01],[19.51816,15.56541,-1505.01]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-19.77644,53.75973,-1519.688],\n[-9.888222,46.0439,-1515.743],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-23.5605,39.58106,-1526.667],[-7.105427e-15,60.76738,-1517.582]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[-7.105427e-15,39.58106,-1518.432]\n],0,72,[-7.105427e-15,39.58106,-1518.432],[-7.105427e-15,39.58106,-1518.432]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-29.66467,58.96032,-1507.291],\n[-14.83233,49.226,-1500.608],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-35.34076,41.8279,-1518.277],[-7.105427e-15,68.22912,-1502.935]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-7.105427e-15,41.8279,-1503.687],[-7.105427e-15,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[-23.5605,60.76738,-1526.667],\n[-27.48725,62.97074,-1523.988],\n[-31.41401,65.91973,-1520.999],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-35.34076,60.76738,-1526.667],[-23.5605,68.22912,-1518.277]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-35.34076,68.22912,-1518.277]\n],0,72,[-35.34076,68.22912,-1518.277],[-35.34076,68.22912,-1518.277]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,39.58106,-1518.432],\n[-7.105427e-15,40.11273,-1513.608],\n[-7.105427e-15,41.21508,-1508.545],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-7.105427e-15,39.58106,-1518.432],[-7.105427e-15,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-7.105427e-15,41.8279,-1503.687],[-7.105427e-15,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[37.78921,29.11208,-1507.57],\n[51.00341,46.47278,-1521.766],\n[51.00341,62.21379,-1536.636]\n],0,72,[19.51816,15.56541,-1536.636],[51.00341,62.21379,-1505.01]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[51.00341,62.21379,-1536.636]\n],0,72,[51.00341,62.21379,-1536.636],[51.00341,62.21379,-1536.636]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[47.23652,28.73432,-1497.017],\n[63.75426,48.74842,-1515.464],\n[63.75426,67.01778,-1534.636]\n],0,72,[24.3977,13.6392,-1534.636],[63.75426,67.01778,-1493.052]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[63.75426,67.01778,-1534.636]\n],0,72,[63.75426,67.01778,-1534.636],[63.75426,67.01778,-1534.636]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[21.14467,14.96954,-1501.005],\n[22.77119,14.336,-1497.015],\n[24.3977,13.6392,-1493.052]\n],0,72,[19.51816,13.6392,-1505.01],[24.3977,15.56541,-1493.052]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[24.3977,13.6392,-1493.052]\n],0,72,[24.3977,13.6392,-1493.052],[24.3977,13.6392,-1493.052]));\n\nP.push(new BezierCurve([\n[51.00341,62.21379,-1536.636],\n[55.2537,63.90049,-1535.934],\n[59.50398,65.51758,-1535.261],\n[63.75426,67.01778,-1534.636]\n],0,72,[51.00341,62.21379,-1536.636],[63.75426,67.01778,-1534.636]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[63.75426,67.01778,-1534.636]\n],0,72,[63.75426,67.01778,-1534.636],[63.75426,67.01778,-1534.636]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[14.83233,34.42979,-1506.765],\n[29.66467,29.36789,-1519.606],\n[35.34076,24.96677,-1536.28]\n],0,72,[-7.105427e-15,24.96677,-1536.28],[35.34076,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[35.34076,24.96677,-1536.28]\n],0,72,[35.34076,24.96677,-1536.28],[35.34076,24.96677,-1536.28]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[19.77644,34.47501,-1492.936],\n[39.55289,29.78971,-1509.198],\n[47.12101,26.17075,-1530.494]\n],0,72,[-1.421085e-14,26.17075,-1530.494],[47.12101,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[47.12101,26.17075,-1530.494]\n],0,72,[47.12101,26.17075,-1530.494],[47.12101,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[-7.105427e-15,42.44071,-1498.828],\n[-7.105427e-15,42.56399,-1494.173],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-1.421085e-14,41.8279,-1503.687],[-7.105427e-15,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-1.421085e-14,42.61768,-1489.547],[-1.421085e-14,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[35.34076,24.96677,-1536.28],\n[39.26751,25.55727,-1534.273],\n[43.19426,25.88285,-1532.376],\n[47.12101,26.17075,-1530.494]\n],0,72,[35.34076,24.96677,-1536.28],[47.12101,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[47.12101,26.17075,-1530.494]\n],0,72,[47.12101,26.17075,-1530.494],[47.12101,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[47.23652,28.73432,-1497.017],\n[63.75426,48.74842,-1515.464],\n[63.75426,67.01778,-1534.636]\n],0,72,[24.3977,13.6392,-1534.636],[63.75426,67.01778,-1493.052]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[63.75426,67.01778,-1534.636]\n],0,72,[63.75426,67.01778,-1534.636],[63.75426,67.01778,-1534.636]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[56.68382,27.92585,-1486.643],\n[76.50512,50.49847,-1509.38],\n[76.50512,71.21702,-1532.889]\n],0,72,[29.27724,11.38569,-1532.889],[76.50512,71.21702,-1481.23]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[76.50512,71.21702,-1532.889]\n],0,72,[76.50512,71.21702,-1532.889],[76.50512,71.21702,-1532.889]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[26.02421,12.94239,-1489.089],\n[27.65073,12.18232,-1485.152],\n[29.27724,11.38569,-1481.23]\n],0,72,[24.3977,11.38569,-1493.052],[29.27724,13.6392,-1481.23]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[29.27724,11.38569,-1481.23]\n],0,72,[29.27724,11.38569,-1481.23],[29.27724,11.38569,-1481.23]));\n\nP.push(new BezierCurve([\n[63.75426,67.01778,-1534.636],\n[68.00455,68.51797,-1534.012],\n[72.25483,69.90127,-1533.436],\n[76.50512,71.21702,-1532.889]\n],0,72,[63.75426,67.01778,-1534.636],[76.50512,71.21702,-1532.889]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[76.50512,71.21702,-1532.889]\n],0,72,[76.50512,71.21702,-1532.889],[76.50512,71.21702,-1532.889]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-22.0808,-7.713913,-1511.526],\n[1.247108,2.018738,-1502.45],\n[19.51816,15.56541,-1505.01]\n],0,72,[-36.06486,-13.85655,-1529.229],[19.51816,15.56541,-1504.584]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[19.51816,15.56541,-1505.01]\n],0,72,[19.51816,15.56541,-1505.01],[19.51816,15.56541,-1505.01]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-27.601,-11.63207,-1499.605],\n[1.558885,-1.455926,-1489.087],\n[24.3977,13.6392,-1493.052]\n],0,72,[-45.08107,-17.32068,-1520.905],[24.3977,13.6392,-1492.228]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[24.3977,13.6392,-1493.052]\n],0,72,[24.3977,13.6392,-1493.052],[24.3977,13.6392,-1493.052]));\n\nP.push(new BezierCurve([\n[-36.06486,-13.85655,-1529.229],\n[-39.07026,-15.01126,-1526.455],\n[-42.07567,-16.16597,-1523.68],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-45.08107,-17.32068,-1529.229],[-36.06486,-13.85655,-1520.905]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-45.08107,-17.32068,-1520.905]\n],0,72,[-45.08107,-17.32068,-1520.905],[-45.08107,-17.32068,-1520.905]));\n\nP.push(new BezierCurve([\n[19.51816,15.56541,-1505.01],\n[21.14467,14.96954,-1501.005],\n[22.77119,14.336,-1497.015],\n[24.3977,13.6392,-1493.052]\n],0,72,[19.51816,13.6392,-1505.01],[24.3977,15.56541,-1493.052]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[24.3977,13.6392,-1493.052]\n],0,72,[24.3977,13.6392,-1493.052],[24.3977,13.6392,-1493.052]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-29.66467,58.96032,-1507.291],\n[-14.83233,49.226,-1500.608],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-35.34076,41.8279,-1518.277],[-7.105427e-15,68.22912,-1502.935]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[-7.105427e-15,41.8279,-1503.687]\n],0,72,[-7.105427e-15,41.8279,-1503.687],[-7.105427e-15,41.8279,-1503.687]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-39.55289,62.36039,-1495.644],\n[-19.77644,50.76035,-1486.158],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-47.12101,42.61768,-1510.678],[-1.421085e-14,73.78713,-1488.86]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-1.421085e-14,42.61768,-1489.547],[-1.421085e-14,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[-35.34076,68.22912,-1518.277],\n[-39.26751,70.5385,-1515.554],\n[-43.19426,72.20828,-1513.097],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-47.12101,68.22912,-1518.277],[-35.34076,73.78713,-1510.678]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-47.12101,73.78713,-1510.678]\n],0,72,[-47.12101,73.78713,-1510.678],[-47.12101,73.78713,-1510.678]));\n\nP.push(new BezierCurve([\n[-7.105427e-15,41.8279,-1503.687],\n[-7.105427e-15,42.44071,-1498.828],\n[-7.105427e-15,42.56399,-1494.173],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-1.421085e-14,41.8279,-1503.687],[-7.105427e-15,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-1.421085e-14,42.61768,-1489.547],[-1.421085e-14,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[19.77644,34.47501,-1492.936],\n[39.55289,29.78971,-1509.198],\n[47.12101,26.17075,-1530.494]\n],0,72,[-1.421085e-14,26.17075,-1530.494],[47.12101,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[47.12101,26.17075,-1530.494]\n],0,72,[47.12101,26.17075,-1530.494],[47.12101,26.17075,-1530.494]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[24.72056,33.75121,-1479.426],\n[49.44111,29.58135,-1499.052],\n[58.90126,26.89587,-1524.907]\n],0,72,[-1.776357e-14,26.89587,-1524.907],[58.90126,42.52263,-1475.776]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[58.90126,26.89587,-1524.907]\n],0,72,[58.90126,26.89587,-1524.907],[58.90126,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[-1.065814e-14,42.67136,-1484.921],\n[-1.776357e-14,42.65545,-1480.324],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-1.776357e-14,42.52263,-1489.547],[-1.321609e-14,42.64644,-1475.776]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-1.776357e-14,42.52263,-1475.776],[-1.776357e-14,42.52263,-1475.776]));\n\nP.push(new BezierCurve([\n[47.12101,26.17075,-1530.494],\n[51.04776,26.45866,-1528.613],\n[54.97451,26.7089,-1526.747],\n[58.90126,26.89587,-1524.907]\n],0,72,[47.12101,26.17075,-1530.494],[58.90126,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[58.90126,26.89587,-1524.907]\n],0,72,[58.90126,26.89587,-1524.907],[58.90126,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[56.68382,27.92585,-1486.643],\n[76.50512,50.49847,-1509.38],\n[76.50512,71.21702,-1532.889]\n],0,72,[29.27724,11.38569,-1532.889],[76.50512,71.21702,-1481.23]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[76.50512,71.21702,-1532.889]\n],0,72,[76.50512,71.21702,-1532.889],[76.50512,71.21702,-1532.889]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[66.13112,26.80102,-1476.401],\n[89.25597,51.86245,-1503.457],\n[89.25597,74.97205,-1531.326]\n],0,72,[34.15678,8.891789,-1531.326],[89.25597,74.97205,-1469.508]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[89.25597,74.97205,-1531.326]\n],0,72,[89.25597,74.97205,-1531.326],[89.25597,74.97205,-1531.326]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[30.90375,10.58907,-1477.309],\n[32.53027,9.755879,-1473.402],\n[34.15678,8.891789,-1469.508]\n],0,72,[29.27724,8.891789,-1481.23],[34.15678,11.38569,-1469.508]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[34.15678,8.891789,-1469.508]\n],0,72,[34.15678,8.891789,-1469.508],[34.15678,8.891789,-1469.508]));\n\nP.push(new BezierCurve([\n[76.50512,71.21702,-1532.889],\n[80.7554,72.53276,-1532.341],\n[85.00569,73.78095,-1531.822],\n[89.25597,74.97205,-1531.326]\n],0,72,[76.50512,71.21702,-1532.889],[89.25597,74.97205,-1531.326]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[89.25597,74.97205,-1531.326]\n],0,72,[89.25597,74.97205,-1531.326],[89.25597,74.97205,-1531.326]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-27.601,-11.63207,-1499.605],\n[1.558885,-1.455926,-1489.087],\n[24.3977,13.6392,-1493.052]\n],0,72,[-45.08107,-17.32068,-1520.905],[24.3977,13.6392,-1492.228]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[24.3977,13.6392,-1493.052]\n],0,72,[24.3977,13.6392,-1493.052],[24.3977,13.6392,-1493.052]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-33.1212,-15.66215,-1487.729],\n[1.870662,-5.154461,-1475.817],\n[29.27724,11.38569,-1481.23]\n],0,72,[-54.09729,-20.78482,-1512.581],[29.27724,11.38569,-1479.945]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[29.27724,11.38569,-1481.23]\n],0,72,[29.27724,11.38569,-1481.23],[29.27724,11.38569,-1481.23]));\n\nP.push(new BezierCurve([\n[-45.08107,-17.32068,-1520.905],\n[-48.08648,-18.4754,-1518.13],\n[-51.09188,-19.63011,-1515.356],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-54.09729,-20.78482,-1520.905],[-45.08107,-17.32068,-1512.581]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-54.09729,-20.78482,-1512.581]\n],0,72,[-54.09729,-20.78482,-1512.581],[-54.09729,-20.78482,-1512.581]));\n\nP.push(new BezierCurve([\n[24.3977,13.6392,-1493.052],\n[26.02421,12.94239,-1489.089],\n[27.65073,12.18232,-1485.152],\n[29.27724,11.38569,-1481.23]\n],0,72,[24.3977,11.38569,-1493.052],[29.27724,13.6392,-1481.23]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[29.27724,11.38569,-1481.23]\n],0,72,[29.27724,11.38569,-1481.23],[29.27724,11.38569,-1481.23]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[66.13112,26.80102,-1476.401],\n[89.25597,51.86245,-1503.457],\n[89.25597,74.97205,-1531.326]\n],0,72,[34.15678,8.891789,-1531.326],[89.25597,74.97205,-1469.508]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[89.25597,74.97205,-1531.326]\n],0,72,[89.25597,74.97205,-1531.326],[89.25597,74.97205,-1531.326]));\n\nP.push(new BezierCurve([\n[39.03632,6.212466,-1457.864],\n[75.57843,25.43218,-1466.26],\n[102.0068,52.92866,-1497.658],\n[102.0068,78.38447,-1529.906]\n],0,72,[39.03632,6.212466,-1529.906],[102.0068,78.38447,-1457.864]));\n\nP.push(new BezierCurve([\n[102.0068,78.38447,-1529.906],\n[102.0068,78.38447,-1529.906]\n],0,72,[102.0068,78.38447,-1529.906],[102.0068,78.38447,-1529.906]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[35.78329,8.027699,-1465.615],\n[37.40981,7.132706,-1461.734],\n[39.03632,6.212466,-1457.864]\n],0,72,[34.15678,6.212466,-1469.508],[39.03632,8.891789,-1457.864]));\n\nP.push(new BezierCurve([\n[39.03632,6.212466,-1457.864],\n[39.03632,6.212466,-1457.864]\n],0,72,[39.03632,6.212466,-1457.864],[39.03632,6.212466,-1457.864]));\n\nP.push(new BezierCurve([\n[89.25597,74.97205,-1531.326],\n[93.50625,76.16314,-1530.831],\n[97.75654,77.29713,-1530.359],\n[102.0068,78.38447,-1529.906]\n],0,72,[89.25597,74.97205,-1531.326],[102.0068,78.38447,-1529.906]));\n\nP.push(new BezierCurve([\n[102.0068,78.38447,-1529.906],\n[102.0068,78.38447,-1529.906]\n],0,72,[102.0068,78.38447,-1529.906],[102.0068,78.38447,-1529.906]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-39.55289,62.36039,-1495.644],\n[-19.77644,50.76035,-1486.158],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-47.12101,42.61768,-1510.678],[-1.421085e-14,73.78713,-1488.86]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[-1.421085e-14,42.61768,-1489.547]\n],0,72,[-1.421085e-14,42.61768,-1489.547],[-1.421085e-14,42.61768,-1489.547]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-49.44111,64.66705,-1484.451],\n[-24.72056,51.29406,-1472.125],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-58.90126,42.52263,-1503.561],[-1.776357e-14,78.18906,-1475.136]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-1.776357e-14,42.52263,-1475.776],[-1.776357e-14,42.52263,-1475.776]));\n\nP.push(new BezierCurve([\n[-47.12101,73.78713,-1510.678],\n[-51.04776,75.36597,-1508.26],\n[-54.97451,76.85389,-1505.879],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-58.90126,73.78713,-1510.678],[-47.12101,78.18906,-1503.561]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-58.90126,78.18906,-1503.561]\n],0,72,[-58.90126,78.18906,-1503.561],[-58.90126,78.18906,-1503.561]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,42.61768,-1489.547],\n[-1.065814e-14,42.67136,-1484.921],\n[-1.776357e-14,42.65545,-1480.324],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-1.776357e-14,42.52263,-1489.547],[-1.321609e-14,42.64644,-1475.776]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-1.776357e-14,42.52263,-1475.776],[-1.776357e-14,42.52263,-1475.776]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[24.72056,33.75121,-1479.426],\n[49.44111,29.58135,-1499.052],\n[58.90126,26.89587,-1524.907]\n],0,72,[-1.776357e-14,26.89587,-1524.907],[58.90126,42.52263,-1475.776]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[58.90126,26.89587,-1524.907]\n],0,72,[58.90126,26.89587,-1524.907],[58.90126,26.89587,-1524.907]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[29.66467,32.50181,-1466.135],\n[59.32933,28.94229,-1489.085],\n[70.68151,27.29371,-1519.456]\n],0,72,[-1.421085e-14,27.29371,-1519.456],[70.68151,41.82284,-1462.256]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[70.68151,27.29371,-1519.456]\n],0,72,[70.68151,27.29371,-1519.456],[70.68151,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[-1.421085e-14,42.38982,-1471.227],\n[-1.421085e-14,42.1401,-1466.728],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-1.776357e-14,41.82284,-1475.776],[-1.421085e-14,42.52263,-1462.256]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-1.421085e-14,41.82284,-1462.256],[-1.421085e-14,41.82284,-1462.256]));\n\nP.push(new BezierCurve([\n[58.90126,26.89587,-1524.907],\n[62.82801,27.08285,-1523.068],\n[66.75476,27.20656,-1521.254],\n[70.68151,27.29371,-1519.456]\n],0,72,[58.90126,26.89587,-1524.907],[70.68151,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[70.68151,27.29371,-1519.456]\n],0,72,[70.68151,27.29371,-1519.456],[70.68151,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-33.1212,-15.66215,-1487.729],\n[1.870662,-5.154461,-1475.817],\n[29.27724,11.38569,-1481.23]\n],0,72,[-54.09729,-20.78482,-1512.581],[29.27724,11.38569,-1479.945]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[29.27724,11.38569,-1481.23]\n],0,72,[29.27724,11.38569,-1481.23],[29.27724,11.38569,-1481.23]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-38.6414,-19.77446,-1475.888],\n[2.182439,-9.017438,-1462.616],\n[34.15678,8.891789,-1469.508]\n],0,72,[-63.1135,-24.24896,-1504.257],[34.15678,8.891789,-1467.715]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[34.15678,8.891789,-1469.508]\n],0,72,[34.15678,8.891789,-1469.508],[34.15678,8.891789,-1469.508]));\n\nP.push(new BezierCurve([\n[-54.09729,-20.78482,-1512.581],\n[-57.10269,-21.93953,-1509.806],\n[-60.1081,-23.09425,-1507.032],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-63.1135,-24.24896,-1512.581],[-54.09729,-20.78482,-1504.257]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-63.1135,-24.24896,-1504.257]\n],0,72,[-63.1135,-24.24896,-1504.257],[-63.1135,-24.24896,-1504.257]));\n\nP.push(new BezierCurve([\n[29.27724,11.38569,-1481.23],\n[30.90375,10.58907,-1477.309],\n[32.53027,9.755879,-1473.402],\n[34.15678,8.891789,-1469.508]\n],0,72,[29.27724,8.891789,-1481.23],[34.15678,11.38569,-1469.508]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[34.15678,8.891789,-1469.508]\n],0,72,[34.15678,8.891789,-1469.508],[34.15678,8.891789,-1469.508]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[29.66467,32.50181,-1466.135],\n[59.32933,28.94229,-1489.085],\n[70.68151,27.29371,-1519.456]\n],0,72,[-1.421085e-14,27.29371,-1519.456],[70.68151,41.82284,-1462.256]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[70.68151,27.29371,-1519.456]\n],0,72,[70.68151,27.29371,-1519.456],[70.68151,27.29371,-1519.456]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[34.60878,30.86634,-1453.005],\n[69.21756,27.98686,-1479.25],\n[82.46176,27.45114,-1514.106]\n],0,72,[-1.421085e-14,27.45114,-1514.106],[82.46176,40.67884,-1448.921]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[82.46176,27.45114,-1514.106]\n],0,72,[82.46176,27.45114,-1514.106],[82.46176,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[-1.421085e-14,41.50558,-1457.784],\n[-1.421085e-14,41.12076,-1453.341],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-1.421085e-14,40.67884,-1462.256],[-1.421085e-14,41.82284,-1448.921]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-1.421085e-14,40.67884,-1448.921],[-1.421085e-14,40.67884,-1448.921]));\n\nP.push(new BezierCurve([\n[70.68151,27.29371,-1519.456],\n[74.60826,27.38086,-1517.658],\n[78.53501,27.43145,-1515.876],\n[82.46176,27.45114,-1514.106]\n],0,72,[70.68151,27.29371,-1519.456],[82.46176,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[82.46176,27.45114,-1514.106]\n],0,72,[82.46176,27.45114,-1514.106],[82.46176,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-49.44111,64.66705,-1484.451],\n[-24.72056,51.29406,-1472.125],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-58.90126,42.52263,-1503.561],[-1.776357e-14,78.18906,-1475.136]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[-1.776357e-14,42.52263,-1475.776]\n],0,72,[-1.776357e-14,42.52263,-1475.776],[-1.776357e-14,42.52263,-1475.776]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-59.32933,66.22641,-1473.569],\n[-29.66467,51.14387,-1458.377],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-70.68151,41.82284,-1496.773],[-1.421085e-14,81.80085,-1461.652]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-1.421085e-14,41.82284,-1462.256],[-1.421085e-14,41.82284,-1462.256]));\n\nP.push(new BezierCurve([\n[-58.90126,78.18906,-1503.561],\n[-62.82801,79.52423,-1501.244],\n[-66.75476,80.70667,-1498.99],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-70.68151,78.18906,-1503.561],[-58.90126,81.80085,-1496.773]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-70.68151,81.80085,-1496.773]\n],0,72,[-70.68151,81.80085,-1496.773],[-70.68151,81.80085,-1496.773]));\n\nP.push(new BezierCurve([\n[-1.776357e-14,42.52263,-1475.776],\n[-1.421085e-14,42.38982,-1471.227],\n[-1.421085e-14,42.1401,-1466.728],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-1.776357e-14,41.82284,-1475.776],[-1.421085e-14,42.52263,-1462.256]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-1.421085e-14,41.82284,-1462.256],[-1.421085e-14,41.82284,-1462.256]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-38.6414,-19.77446,-1475.888],\n[2.182439,-9.017438,-1462.616],\n[34.15678,8.891789,-1469.508]\n],0,72,[-63.1135,-24.24896,-1504.257],[34.15678,8.891789,-1467.715]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[34.15678,8.891789,-1469.508]\n],0,72,[34.15678,8.891789,-1469.508],[34.15678,8.891789,-1469.508]));\n\nP.push(new BezierCurve([\n[-72.12972,-27.71309,-1495.933],\n[-44.1616,-23.95019,-1464.073],\n[2.494216,-13.00725,-1449.468],\n[39.03632,6.212466,-1457.864]\n],0,72,[-72.12972,-27.71309,-1495.933],[39.03632,6.212466,-1455.529]));\n\nP.push(new BezierCurve([\n[39.03632,6.212466,-1457.864],\n[39.03632,6.212466,-1457.864]\n],0,72,[39.03632,6.212466,-1457.864],[39.03632,6.212466,-1457.864]));\n\nP.push(new BezierCurve([\n[-63.1135,-24.24896,-1504.257],\n[-66.11891,-25.40367,-1501.482],\n[-69.12431,-26.55838,-1498.707],\n[-72.12972,-27.71309,-1495.933]\n],0,72,[-72.12972,-27.71309,-1504.257],[-63.1135,-24.24896,-1495.933]));\n\nP.push(new BezierCurve([\n[-72.12972,-27.71309,-1495.933],\n[-72.12972,-27.71309,-1495.933]\n],0,72,[-72.12972,-27.71309,-1495.933],[-72.12972,-27.71309,-1495.933]));\n\nP.push(new BezierCurve([\n[34.15678,8.891789,-1469.508],\n[35.78329,8.027699,-1465.615],\n[37.40981,7.132706,-1461.734],\n[39.03632,6.212466,-1457.864]\n],0,72,[34.15678,6.212466,-1469.508],[39.03632,8.891789,-1457.864]));\n\nP.push(new BezierCurve([\n[39.03632,6.212466,-1457.864],\n[39.03632,6.212466,-1457.864]\n],0,72,[39.03632,6.212466,-1457.864],[39.03632,6.212466,-1457.864]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[34.60878,30.86634,-1453.005],\n[69.21756,27.98686,-1479.25],\n[82.46176,27.45114,-1514.106]\n],0,72,[-1.421085e-14,27.45114,-1514.106],[82.46176,40.67884,-1448.921]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[82.46176,27.45114,-1514.106]\n],0,72,[82.46176,27.45114,-1514.106],[82.46176,27.45114,-1514.106]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,39.19223,-1435.729],\n[39.55289,28.93311,-1439.998],\n[79.10578,26.78743,-1469.517],\n[94.24202,27.42315,-1508.832]\n],0,72,[-2.842171e-14,27.32105,-1508.832],[94.24202,39.19223,-1435.729]));\n\nP.push(new BezierCurve([\n[94.24202,27.42315,-1508.832],\n[94.24202,27.42315,-1508.832]\n],0,72,[94.24202,27.42315,-1508.832],[94.24202,27.42315,-1508.832]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[-7.105427e-15,40.23692,-1444.501],\n[-2.131628e-14,39.73791,-1440.105],\n[-2.842171e-14,39.19223,-1435.729]\n],0,72,[-2.842171e-14,39.19223,-1448.921],[-1.227432e-14,40.67884,-1435.729]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,39.19223,-1435.729],\n[-2.842171e-14,39.19223,-1435.729]\n],0,72,[-2.842171e-14,39.19223,-1435.729],[-2.842171e-14,39.19223,-1435.729]));\n\nP.push(new BezierCurve([\n[82.46176,27.45114,-1514.106],\n[86.38851,27.47083,-1512.336],\n[90.31526,27.45961,-1510.579],\n[94.24202,27.42315,-1508.832]\n],0,72,[82.46176,27.42315,-1514.106],[94.24202,27.46074,-1508.832]));\n\nP.push(new BezierCurve([\n[94.24202,27.42315,-1508.832],\n[94.24202,27.42315,-1508.832]\n],0,72,[94.24202,27.42315,-1508.832],[94.24202,27.42315,-1508.832]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-59.32933,66.22641,-1473.569],\n[-29.66467,51.14387,-1458.377],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-70.68151,41.82284,-1496.773],[-1.421085e-14,81.80085,-1461.652]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[-1.421085e-14,41.82284,-1462.256]\n],0,72,[-1.421085e-14,41.82284,-1462.256],[-1.421085e-14,41.82284,-1462.256]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-69.21756,67.23685,-1462.916],\n[-34.60878,50.49134,-1444.838],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-82.46176,40.67884,-1490.226],[-1.421085e-14,84.83226,-1448.346]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-1.421085e-14,40.67884,-1448.921],[-1.421085e-14,40.67884,-1448.921]));\n\nP.push(new BezierCurve([\n[-70.68151,81.80085,-1496.773],\n[-74.60826,82.89503,-1494.556],\n[-78.53501,83.90095,-1492.376],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-82.46176,81.80085,-1496.773],[-70.68151,84.83226,-1490.226]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-82.46176,84.83226,-1490.226]\n],0,72,[-82.46176,84.83226,-1490.226],[-82.46176,84.83226,-1490.226]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,41.82284,-1462.256],\n[-1.421085e-14,41.50558,-1457.784],\n[-1.421085e-14,41.12076,-1453.341],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-1.421085e-14,40.67884,-1462.256],[-1.421085e-14,41.82284,-1448.921]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-1.421085e-14,40.67884,-1448.921],[-1.421085e-14,40.67884,-1448.921]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-69.21756,67.23685,-1462.916],\n[-34.60878,50.49134,-1444.838],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-82.46176,40.67884,-1490.226],[-1.421085e-14,84.83226,-1448.346]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[-1.421085e-14,40.67884,-1448.921]\n],0,72,[-1.421085e-14,40.67884,-1448.921],[-1.421085e-14,40.67884,-1448.921]));\n\nP.push(new BezierCurve([\n[-94.24202,87.41602,-1483.866],\n[-79.10578,67.82392,-1452.439],\n[-39.55289,49.45136,-1431.459],\n[-2.842171e-14,39.19223,-1435.729]\n],0,72,[-94.24202,39.19223,-1483.866],[-2.842171e-14,87.41602,-1435.178]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,39.19223,-1435.729],\n[-2.842171e-14,39.19223,-1435.729]\n],0,72,[-2.842171e-14,39.19223,-1435.729],[-2.842171e-14,39.19223,-1435.729]));\n\nP.push(new BezierCurve([\n[-82.46176,84.83226,-1490.226],\n[-86.38851,85.76357,-1488.077],\n[-90.31526,86.62027,-1485.959],\n[-94.24202,87.41602,-1483.866]\n],0,72,[-94.24202,84.83226,-1490.226],[-82.46176,87.41602,-1483.866]));\n\nP.push(new BezierCurve([\n[-94.24202,87.41602,-1483.866],\n[-94.24202,87.41602,-1483.866]\n],0,72,[-94.24202,87.41602,-1483.866],[-94.24202,87.41602,-1483.866]));\n\nP.push(new BezierCurve([\n[-1.421085e-14,40.67884,-1448.921],\n[-7.105427e-15,40.23692,-1444.501],\n[-2.131628e-14,39.73791,-1440.105],\n[-2.842171e-14,39.19223,-1435.729]\n],0,72,[-2.842171e-14,39.19223,-1448.921],[-1.227432e-14,40.67884,-1435.729]));\n\nP.push(new BezierCurve([\n[-2.842171e-14,39.19223,-1435.729],\n[-2.842171e-14,39.19223,-1435.729]\n],0,72,[-2.842171e-14,39.19223,-1435.729],[-2.842171e-14,39.19223,-1435.729]));\n\n</script>\n</head>\n\n<body style=\"overflow: hidden;\" onload=\"webGLStart();\">\n<canvas id=\"Asymptote\" width=\"206\" height=\"295\" style=\"border: none;\">\n</canvas>\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/asymptote/asymptote-workcone.html",
    "content": "<!DOCTYPE html>\n\n<!-- Use the following line to embed this file within another web page:\n\n<iframe src=\"workspace_1.html\" width=\"139\" height=\"151\" frameborder=\"0\"></iframe>\n\n-->\n\n<html lang=\"\">\n\n<head>\n<title>workspace_1</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"user-scalable=no\"/>\n<style>\nbody {margin: 0;}\n</style>\n\n<script\nsrc=\"https://vectorgraphics.github.io/asymptote/base/webgl/asygl-1.00.js\">\n</script>\n\n<script>\n\ncanvasWidth=139;\ncanvasHeight=151;\nabsolute=false;\n\nb=[-69.4183,-75.41125,-3382.091];\nB=[69.4183,75.41125,-3127.286];\northographic=true;\nangle=0;\nZoom0=1;\nviewportmargin=[0.5,0.5];\nzoomFactor=1.05;\nzoomPinchFactor=10;\nzoomPinchCap=100;\nzoomStep=0.1;\nshiftHoldDistance=20;\nshiftWaitTime=200;\nvibrateTime=25;\n\nLights=[new Light(\ndirection=[0.4477358,0.4972609,0.7431448],\ncolor=[1,1,1]),\n];\n\nBackground=[1,1,1,1];\nMaterials=[];\n\nMaterials.push(new Material(\ndiffuse=[0.5,0.5,1,0.5],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[0,-3.702783,-3270.177],\n[0,-27.30432,-3265.014],\n[0,-50.90585,-3259.851],\n[0,-74.50738,-3254.688],\n[-14.86639,-3.702783,-3270.177],\n[-9.910924,-27.30432,-3265.014],\n[-4.955462,-50.90585,-3259.851],\n[0,-74.50738,-3254.688],\n[-26.91797,-5.684052,-3258.289],\n[-17.94532,-28.62516,-3257.089],\n[-8.972658,-51.56627,-3255.889],\n[0,-74.50738,-3254.688],\n[-26.91797,-8.128071,-3243.625],\n[-17.94532,-30.25451,-3247.313],\n[-8.972658,-52.38095,-3251.001],\n[0,-74.50738,-3254.688]\n],0,0,[-26.91797,-74.50738,-3270.177],[0,-3.702783,-3243.625]));\n\nP.push(new BezierPatch([\n[26.91797,-8.128071,-3243.625],\n[17.94532,-30.25451,-3247.313],\n[8.972658,-52.38095,-3251.001],\n[0,-74.50738,-3254.688],\n[26.91797,-5.684052,-3258.289],\n[17.94532,-28.62516,-3257.089],\n[8.972658,-51.56627,-3255.889],\n[0,-74.50738,-3254.688],\n[14.86639,-3.702783,-3270.177],\n[9.910924,-27.30432,-3265.014],\n[4.955462,-50.90585,-3259.851],\n[0,-74.50738,-3254.688],\n[0,-3.702783,-3270.177],\n[0,-27.30432,-3265.014],\n[0,-50.90585,-3259.851],\n[0,-74.50738,-3254.688]\n],0,0,[-26.91797,-74.50738,-3270.177],[26.91797,-3.702783,-3243.625]));\n\nP.push(new BezierPatch([\n[0,-12.55336,-3217.073],\n[0,-33.2047,-3229.612],\n[0,-53.85604,-3242.15],\n[0,-74.50738,-3254.688],\n[14.86639,-12.55336,-3217.073],\n[9.910924,-33.2047,-3229.612],\n[4.955462,-53.85604,-3242.15],\n[0,-74.50738,-3254.688],\n[26.91797,-10.57209,-3228.961],\n[17.94532,-31.88385,-3237.537],\n[8.972658,-53.19562,-3246.113],\n[0,-74.50738,-3254.688],\n[26.91797,-8.128071,-3243.625],\n[17.94532,-30.25451,-3247.313],\n[8.972658,-52.38095,-3251.001],\n[0,-74.50738,-3254.688]\n],0,0,[-26.91797,-74.50738,-3270.177],[26.91797,-3.702783,-3217.073]));\n\nP.push(new BezierPatch([\n[-26.91797,-8.128071,-3243.625],\n[-17.94532,-30.25451,-3247.313],\n[-8.972658,-52.38095,-3251.001],\n[0,-74.50738,-3254.688],\n[-26.91797,-10.57209,-3228.961],\n[-17.94532,-31.88385,-3237.537],\n[-8.972658,-53.19562,-3246.113],\n[0,-74.50738,-3254.688],\n[-14.86639,-12.55336,-3217.073],\n[-9.910924,-33.2047,-3229.612],\n[-4.955462,-53.85604,-3242.15],\n[0,-74.50738,-3254.688],\n[0,-12.55336,-3217.073],\n[0,-33.2047,-3229.612],\n[0,-53.85604,-3242.15],\n[0,-74.50738,-3254.688]\n],0,0,[-26.91797,-74.50738,-3270.177],[26.91797,-3.702783,-3217.073]));\n\nP.push(new BezierPatch([\n[7.928661e-15,0.6321923,-3271.125],\n[9.351754e-15,14.14136,-3274.072],\n[1.077485e-14,27.65053,-3277.018],\n[1.219794e-14,41.1597,-3279.964],\n[-5.014383,0.6321923,-3271.125],\n[-5.9144,14.14136,-3274.072],\n[-6.814417,27.65053,-3277.018],\n[-7.714435,41.1597,-3279.964],\n[-9.940424,0.4151973,-3269.823],\n[-11.7246,13.88542,-3272.536],\n[-13.50878,27.35564,-3275.249],\n[-15.29296,40.82586,-3277.961],\n[-14.28301,0.003017627,-3267.35],\n[-16.84662,13.39926,-3269.619],\n[-19.41024,26.7955,-3271.888],\n[-21.97386,40.19174,-3274.157]\n],0,0,[-26.91797,-74.50738,-3279.964],[26.91797,41.1597,-3217.073]));\n\nP.push(new BezierPatch([\n[14.28301,0.003017627,-3267.35],\n[16.84662,13.39926,-3269.619],\n[19.41024,26.7955,-3271.888],\n[21.97386,40.19174,-3274.157],\n[9.940424,0.4151973,-3269.823],\n[11.7246,13.88542,-3272.536],\n[13.50878,27.35564,-3275.249],\n[15.29296,40.82586,-3277.961],\n[5.014383,0.6321923,-3271.125],\n[5.9144,14.14136,-3274.072],\n[6.814417,27.65053,-3277.018],\n[7.714435,41.1597,-3279.964],\n[7.928661e-15,0.6321923,-3271.125],\n[9.351754e-15,14.14136,-3274.072],\n[1.077485e-14,27.65053,-3277.018],\n[1.219794e-14,41.1597,-3279.964]\n],0,0,[-26.91797,-74.50738,-3279.964],[26.91797,41.1597,-3217.073]));\n\nP.push(new BezierPatch([\n[-14.28301,0.003017627,-3267.35],\n[-16.84662,13.39926,-3269.619],\n[-19.41024,26.7955,-3271.888],\n[-21.97386,40.19174,-3274.157],\n[-18.62559,-0.4091621,-3264.877],\n[-21.96864,12.9131,-3266.702],\n[-25.3117,26.23536,-3268.527],\n[-28.65475,39.55761,-3270.352],\n[-22.2317,-1.002003,-3261.32],\n[-26.22201,12.21385,-3262.507],\n[-30.21231,25.4297,-3263.693],\n[-34.20262,38.64555,-3264.88],\n[-24.73889,-1.71592,-3257.037],\n[-29.17921,11.37179,-3257.454],\n[-33.61952,24.45951,-3257.872],\n[-38.05983,37.54722,-3258.29]\n],0,0,[-38.05983,-74.50738,-3279.964],[26.91797,41.1597,-3217.073]));\n\nP.push(new BezierPatch([\n[24.73889,-1.71592,-3257.037],\n[29.17921,11.37179,-3257.454],\n[33.61952,24.45951,-3257.872],\n[38.05983,37.54722,-3258.29],\n[22.2317,-1.002003,-3261.32],\n[26.22201,12.21385,-3262.507],\n[30.21231,25.4297,-3263.693],\n[34.20262,38.64555,-3264.88],\n[18.62559,-0.4091621,-3264.877],\n[21.96864,12.9131,-3266.702],\n[25.3117,26.23536,-3268.527],\n[28.65475,39.55761,-3270.352],\n[14.28301,0.003017627,-3267.35],\n[16.84662,13.39926,-3269.619],\n[19.41024,26.7955,-3271.888],\n[21.97386,40.19174,-3274.157]\n],0,0,[-38.05983,-74.50738,-3279.964],[38.05983,41.1597,-3217.073]));\n\nP.push(new BezierPatch([\n[-24.73889,-1.71592,-3257.037],\n[-29.17921,11.37179,-3257.454],\n[-33.61952,24.45951,-3257.872],\n[-38.05983,37.54722,-3258.29],\n[-27.24608,-2.429836,-3252.753],\n[-32.13641,10.52974,-3252.402],\n[-37.02673,23.48931,-3252.051],\n[-41.91705,36.44889,-3251.7],\n[-28.56601,-3.239672,-3247.894],\n[-33.69325,9.574547,-3246.671],\n[-38.82048,22.38877,-3245.447],\n[-43.94771,35.20298,-3244.224],\n[-28.56601,-4.064031,-3242.948],\n[-33.69325,8.602226,-3240.837],\n[-38.82048,21.26848,-3238.726],\n[-43.94771,33.93474,-3236.615]\n],0,0,[-43.94771,-74.50738,-3279.964],[38.05983,41.1597,-3217.073]));\n\nP.push(new BezierPatch([\n[28.56601,-4.064031,-3242.948],\n[33.69325,8.602226,-3240.837],\n[38.82048,21.26848,-3238.726],\n[43.94771,33.93474,-3236.615],\n[28.56601,-3.239672,-3247.894],\n[33.69325,9.574547,-3246.671],\n[38.82048,22.38877,-3245.447],\n[43.94771,35.20298,-3244.224],\n[27.24608,-2.429836,-3252.753],\n[32.13641,10.52974,-3252.402],\n[37.02673,23.48931,-3252.051],\n[41.91705,36.44889,-3251.7],\n[24.73889,-1.71592,-3257.037],\n[29.17921,11.37179,-3257.454],\n[33.61952,24.45951,-3257.872],\n[38.05983,37.54722,-3258.29]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3217.073]));\n\nP.push(new BezierPatch([\n[-28.56601,-4.064031,-3242.948],\n[-33.69325,8.602226,-3240.837],\n[-38.82048,21.26848,-3238.726],\n[-43.94771,33.93474,-3236.615],\n[-28.56601,-4.888391,-3238.002],\n[-33.69325,7.629904,-3235.003],\n[-38.82048,20.1482,-3232.004],\n[-43.94771,32.66649,-3229.005],\n[-27.24608,-5.698227,-3233.143],\n[-32.13641,6.674713,-3229.272],\n[-37.02673,19.04765,-3225.401],\n[-41.91705,31.42059,-3221.53],\n[-24.73889,-6.412143,-3228.859],\n[-29.17921,5.832658,-3224.219],\n[-33.61952,18.07746,-3219.58],\n[-38.05983,30.32226,-3214.94]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3214.94]));\n\nP.push(new BezierPatch([\n[24.73889,-6.412143,-3228.859],\n[29.17921,5.832658,-3224.219],\n[33.61952,18.07746,-3219.58],\n[38.05983,30.32226,-3214.94],\n[27.24608,-5.698227,-3233.143],\n[32.13641,6.674713,-3229.272],\n[37.02673,19.04765,-3225.401],\n[41.91705,31.42059,-3221.53],\n[28.56601,-4.888391,-3238.002],\n[33.69325,7.629904,-3235.003],\n[38.82048,20.1482,-3232.004],\n[43.94771,32.66649,-3229.005],\n[28.56601,-4.064031,-3242.948],\n[33.69325,8.602226,-3240.837],\n[38.82048,21.26848,-3238.726],\n[43.94771,33.93474,-3236.615]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3214.94]));\n\nP.push(new BezierPatch([\n[-24.73889,-6.412143,-3228.859],\n[-29.17921,5.832658,-3224.219],\n[-33.61952,18.07746,-3219.58],\n[-38.05983,30.32226,-3214.94],\n[-22.2317,-7.126059,-3224.576],\n[-26.22201,4.990603,-3219.167],\n[-30.21231,17.10726,-3213.758],\n[-34.20262,29.22393,-3208.35],\n[-18.62559,-7.7189,-3221.019],\n[-21.96864,4.291354,-3214.972],\n[-25.3117,16.30161,-3208.925],\n[-28.65475,28.31186,-3202.877],\n[-14.28301,-8.13108,-3218.546],\n[-16.84662,3.805194,-3212.055],\n[-19.41024,15.74147,-3205.564],\n[-21.97386,27.67774,-3199.073]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3199.073]));\n\nP.push(new BezierPatch([\n[14.28301,-8.13108,-3218.546],\n[16.84662,3.805194,-3212.055],\n[19.41024,15.74147,-3205.564],\n[21.97386,27.67774,-3199.073],\n[18.62559,-7.7189,-3221.019],\n[21.96864,4.291354,-3214.972],\n[25.3117,16.30161,-3208.925],\n[28.65475,28.31186,-3202.877],\n[22.2317,-7.126059,-3224.576],\n[26.22201,4.990603,-3219.167],\n[30.21231,17.10726,-3213.758],\n[34.20262,29.22393,-3208.35],\n[24.73889,-6.412143,-3228.859],\n[29.17921,5.832658,-3224.219],\n[33.61952,18.07746,-3219.58],\n[38.05983,30.32226,-3214.94]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3199.073]));\n\nP.push(new BezierPatch([\n[-2.378598e-14,-8.760255,-3214.771],\n[-2.805526e-14,3.06309,-3207.602],\n[-3.232454e-14,14.88643,-3200.433],\n[-3.659382e-14,26.70978,-3193.265],\n[5.014383,-8.760255,-3214.771],\n[5.9144,3.06309,-3207.602],\n[6.814417,14.88643,-3200.433],\n[7.714435,26.70978,-3193.265],\n[9.940424,-8.54326,-3216.072],\n[11.7246,3.319033,-3209.138],\n[13.50878,15.18133,-3202.203],\n[15.29296,27.04362,-3195.268],\n[14.28301,-8.13108,-3218.546],\n[16.84662,3.805194,-3212.055],\n[19.41024,15.74147,-3205.564],\n[21.97386,27.67774,-3199.073]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3193.265]));\n\nP.push(new BezierPatch([\n[-14.28301,-8.13108,-3218.546],\n[-16.84662,3.805194,-3212.055],\n[-19.41024,15.74147,-3205.564],\n[-21.97386,27.67774,-3199.073],\n[-9.940424,-8.54326,-3216.072],\n[-11.7246,3.319033,-3209.138],\n[-13.50878,15.18133,-3202.203],\n[-15.29296,27.04362,-3195.268],\n[-5.014383,-8.760255,-3214.771],\n[-5.9144,3.06309,-3207.602],\n[-6.814417,14.88643,-3200.433],\n[-7.714435,26.70978,-3193.265],\n[-2.378598e-14,-8.760255,-3214.771],\n[-2.805526e-14,3.06309,-3207.602],\n[-3.232454e-14,14.88643,-3200.433],\n[-3.659382e-14,26.70978,-3193.265]\n],0,0,[-43.94771,-74.50738,-3279.964],[43.94771,41.1597,-3193.265]));\n\nMaterials.push(new Material(\ndiffuse=[1,1,1,0.5],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[1.219794e-14,41.09196,-3279.976],\n[1.321444e-14,50.72524,-3282.083],\n[1.423093e-14,60.35852,-3284.19],\n[1.524743e-14,69.9918,-3286.298],\n[-7.714435,41.09196,-3279.976],\n[-8.357304,50.72524,-3282.083],\n[-9.000174,60.35852,-3284.19],\n[-9.643043,69.9918,-3286.298],\n[-15.29296,40.75813,-3277.973],\n[-16.56737,50.36359,-3279.913],\n[-17.84179,59.96904,-3281.853],\n[-19.1162,69.5745,-3283.794],\n[-21.97386,40.124,-3274.168],\n[-23.80501,49.67662,-3275.791],\n[-25.63617,59.22923,-3277.415],\n[-27.46732,68.78185,-3279.038]\n],0,1,[-43.94771,-74.50738,-3286.298],[43.94771,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[21.97386,40.124,-3274.168],\n[23.80501,49.67662,-3275.791],\n[25.63617,59.22923,-3277.415],\n[27.46732,68.78185,-3279.038],\n[15.29296,40.75813,-3277.973],\n[16.56737,50.36359,-3279.913],\n[17.84179,59.96904,-3281.853],\n[19.1162,69.5745,-3283.794],\n[7.714435,41.09196,-3279.976],\n[8.357304,50.72524,-3282.083],\n[9.000174,60.35852,-3284.19],\n[9.643043,69.9918,-3286.298],\n[1.219794e-14,41.09196,-3279.976],\n[1.321444e-14,50.72524,-3282.083],\n[1.423093e-14,60.35852,-3284.19],\n[1.524743e-14,69.9918,-3286.298]\n],0,1,[-43.94771,-74.50738,-3286.298],[43.94771,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[-21.97386,40.124,-3274.168],\n[-23.80501,49.67662,-3275.791],\n[-25.63617,59.22923,-3277.415],\n[-27.46732,68.78185,-3279.038],\n[-28.65475,39.48988,-3270.363],\n[-31.04265,48.98965,-3271.67],\n[-33.43054,58.48943,-3272.976],\n[-35.81844,67.9892,-3274.282],\n[-34.20262,38.57782,-3264.891],\n[-37.05284,48.00158,-3265.741],\n[-39.90305,57.42535,-3266.591],\n[-42.75327,66.84912,-3267.442],\n[-38.05983,37.47948,-3258.301],\n[-41.23149,46.81172,-3258.602],\n[-44.40314,56.14396,-3258.903],\n[-47.57479,65.4762,-3259.204]\n],0,1,[-47.57479,-74.50738,-3286.298],[43.94771,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[38.05983,37.47948,-3258.301],\n[41.23149,46.81172,-3258.602],\n[44.40314,56.14396,-3258.903],\n[47.57479,65.4762,-3259.204],\n[34.20262,38.57782,-3264.891],\n[37.05284,48.00158,-3265.741],\n[39.90305,57.42535,-3266.591],\n[42.75327,66.84912,-3267.442],\n[28.65475,39.48988,-3270.363],\n[31.04265,48.98965,-3271.67],\n[33.43054,58.48943,-3272.976],\n[35.81844,67.9892,-3274.282],\n[21.97386,40.124,-3274.168],\n[23.80501,49.67662,-3275.791],\n[25.63617,59.22923,-3277.415],\n[27.46732,68.78185,-3279.038]\n],0,1,[-47.57479,-74.50738,-3286.298],[47.57479,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[-38.05983,37.47948,-3258.301],\n[-41.23149,46.81172,-3258.602],\n[-44.40314,56.14396,-3258.903],\n[-47.57479,65.4762,-3259.204],\n[-41.91705,36.38115,-3251.711],\n[-45.41014,45.62186,-3251.463],\n[-48.90323,54.86258,-3251.215],\n[-52.39632,64.10329,-3250.967],\n[-43.94771,35.13525,-3244.235],\n[-47.61002,44.27214,-3243.364],\n[-51.27233,53.40902,-3242.493],\n[-54.93464,62.54591,-3241.622],\n[-43.94771,33.86701,-3236.626],\n[-47.61002,42.8982,-3235.121],\n[-51.27233,51.9294,-3233.616],\n[-54.93464,60.9606,-3232.11]\n],0,1,[-54.93464,-74.50738,-3286.298],[47.57479,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[43.94771,33.86701,-3236.626],\n[47.61002,42.8982,-3235.121],\n[51.27233,51.9294,-3233.616],\n[54.93464,60.9606,-3232.11],\n[43.94771,35.13525,-3244.235],\n[47.61002,44.27214,-3243.364],\n[51.27233,53.40902,-3242.493],\n[54.93464,62.54591,-3241.622],\n[41.91705,36.38115,-3251.711],\n[45.41014,45.62186,-3251.463],\n[48.90323,54.86258,-3251.215],\n[52.39632,64.10329,-3250.967],\n[38.05983,37.47948,-3258.301],\n[41.23149,46.81172,-3258.602],\n[44.40314,56.14396,-3258.903],\n[47.57479,65.4762,-3259.204]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[-43.94771,33.86701,-3236.626],\n[-47.61002,42.8982,-3235.121],\n[-51.27233,51.9294,-3233.616],\n[-54.93464,60.9606,-3232.11],\n[-43.94771,32.59876,-3229.017],\n[-47.61002,41.52427,-3226.877],\n[-51.27233,50.44978,-3224.738],\n[-54.93464,59.3753,-3222.599],\n[-41.91705,31.35286,-3221.541],\n[-45.41014,40.17455,-3218.779],\n[-48.90323,48.99623,-3216.017],\n[-52.39632,57.81792,-3213.254],\n[-38.05983,30.25453,-3214.951],\n[-41.23149,38.98468,-3211.64],\n[-44.40314,47.71484,-3208.328],\n[-47.57479,56.445,-3205.017]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[38.05983,30.25453,-3214.951],\n[41.23149,38.98468,-3211.64],\n[44.40314,47.71484,-3208.328],\n[47.57479,56.445,-3205.017],\n[41.91705,31.35286,-3221.541],\n[45.41014,40.17455,-3218.779],\n[48.90323,48.99623,-3216.017],\n[52.39632,57.81792,-3213.254],\n[43.94771,32.59876,-3229.017],\n[47.61002,41.52427,-3226.877],\n[51.27233,50.44978,-3224.738],\n[54.93464,59.3753,-3222.599],\n[43.94771,33.86701,-3236.626],\n[47.61002,42.8982,-3235.121],\n[51.27233,51.9294,-3233.616],\n[54.93464,60.9606,-3232.11]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3193.265]));\n\nP.push(new BezierPatch([\n[21.97386,27.61001,-3199.084],\n[23.80501,36.11979,-3194.45],\n[25.63617,44.62957,-3189.817],\n[27.46732,53.13935,-3185.183],\n[28.65475,28.24413,-3202.889],\n[31.04265,36.80676,-3198.572],\n[33.43054,45.36938,-3194.255],\n[35.81844,53.93201,-3189.939],\n[34.20262,29.15619,-3208.361],\n[37.05284,37.79482,-3204.501],\n[39.90305,46.43346,-3200.64],\n[42.75327,55.07209,-3196.779],\n[38.05983,30.25453,-3214.951],\n[41.23149,38.98468,-3211.64],\n[44.40314,47.71484,-3208.328],\n[47.57479,56.445,-3205.017]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3185.183]));\n\nP.push(new BezierPatch([\n[-38.05983,30.25453,-3214.951],\n[-41.23149,38.98468,-3211.64],\n[-44.40314,47.71484,-3208.328],\n[-47.57479,56.445,-3205.017],\n[-34.20262,29.15619,-3208.361],\n[-37.05284,37.79482,-3204.501],\n[-39.90305,46.43346,-3200.64],\n[-42.75327,55.07209,-3196.779],\n[-28.65475,28.24413,-3202.889],\n[-31.04265,36.80676,-3198.572],\n[-33.43054,45.36938,-3194.255],\n[-35.81844,53.93201,-3189.939],\n[-21.97386,27.61001,-3199.084],\n[-23.80501,36.11979,-3194.45],\n[-25.63617,44.62957,-3189.817],\n[-27.46732,53.13935,-3185.183]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3185.183]));\n\nP.push(new BezierPatch([\n[-3.659382e-14,26.64205,-3193.276],\n[-3.964331e-14,35.07117,-3188.159],\n[-4.269279e-14,43.50028,-3183.041],\n[-4.574228e-14,51.9294,-3177.923],\n[7.714435,26.64205,-3193.276],\n[8.357304,35.07117,-3188.159],\n[9.000174,43.50028,-3183.041],\n[9.643043,51.9294,-3177.923],\n[15.29296,26.97588,-3195.279],\n[16.56737,35.43282,-3190.329],\n[17.84179,43.88976,-3185.378],\n[19.1162,52.3467,-3180.427],\n[21.97386,27.61001,-3199.084],\n[23.80501,36.11979,-3194.45],\n[25.63617,44.62957,-3189.817],\n[27.46732,53.13935,-3185.183]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3177.923]));\n\nP.push(new BezierPatch([\n[-21.97386,27.61001,-3199.084],\n[-23.80501,36.11979,-3194.45],\n[-25.63617,44.62957,-3189.817],\n[-27.46732,53.13935,-3185.183],\n[-15.29296,26.97588,-3195.279],\n[-16.56737,35.43282,-3190.329],\n[-17.84179,43.88976,-3185.378],\n[-19.1162,52.3467,-3180.427],\n[-7.714435,26.64205,-3193.276],\n[-8.357304,35.07117,-3188.159],\n[-9.000174,43.50028,-3183.041],\n[-9.643043,51.9294,-3177.923],\n[-3.659382e-14,26.64205,-3193.276],\n[-3.964331e-14,35.07117,-3188.159],\n[-4.269279e-14,43.50028,-3183.041],\n[-4.574228e-14,51.9294,-3177.923]\n],0,1,[-54.93464,-74.50738,-3286.298],[54.93464,69.9918,-3177.923]));\n\nMaterials.push(new Material(\ndiffuse=[0,0,0,1],\nemissive=[0,0,0,1],\nspecular=[0,0,0,1],\nshininess=1,\nmetallic=0,\nfresnel0=0.04\n));\n\ncylinder([-68.6683,-74.50738,-3254.688],0.25,137.3366,0,2,\n[1.570796,0],true);\n\nsphere([-68.6683,-74.50738,-3254.688],0.25,0,2,\n[1.570796,3.141593]);\n\nsphere([68.6683,-74.50738,-3254.688],0.25,0,2,\n[1.570796,0]);\n\ncylinder([0,-74.50738,-3254.688],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-74.50738,-3254.688],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-70.47996,-3254.017],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-66.45253,-3253.346],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-66.45253,-3253.346],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-62.4251,-3252.675],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-58.39768,-3252.003],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-58.39768,-3252.003],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-54.37025,-3251.332],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-50.34282,-3250.661],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-50.34282,-3250.661],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-46.3154,-3249.99],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-42.28797,-3249.319],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-42.28797,-3249.319],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-38.26054,-3248.647],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-34.23312,-3247.976],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-34.23312,-3247.976],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-30.20569,-3247.305],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-26.17826,-3246.634],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-26.17826,-3246.634],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-22.15084,-3245.962],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-18.12341,-3245.291],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-18.12341,-3245.291],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-14.09598,-3244.62],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-10.06856,-3243.949],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-10.06856,-3243.949],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-6.041132,-3243.277],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-2.013705,-3242.606],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-2.013705,-3242.606],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,2.013722,-3241.935],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,6.041148,-3241.264],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,6.041148,-3241.264],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,10.06857,-3240.592],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,14.096,-3239.921],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,14.096,-3239.921],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,18.12343,-3239.25],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,22.15085,-3238.579],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,22.15085,-3238.579],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,26.17828,-3237.907],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,30.20571,-3237.236],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,30.20571,-3237.236],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,34.23313,-3236.565],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,38.26056,-3235.894],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,38.26056,-3235.894],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,42.28799,-3235.223],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,46.31541,-3234.551],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,46.31541,-3234.551],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,50.34284,-3233.88],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,54.37027,-3233.209],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,54.37027,-3233.209],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,58.39769,-3232.538],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,62.42512,-3231.866],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,62.42512,-3231.866],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,66.45255,-3231.195],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,70.47997,-3230.524],0.25,4.08298,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,70.47997,-3230.524],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,74.5074,-3229.853],0.25,0,2,\n[1.405648,1.570796]);\n\nMaterials.push(new Material(\ndiffuse=[0,0,1,0.5],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[7.471239e-15,-3.702783,-3270.177],\n[7.623713e-15,-2.257791,-3270.493],\n[7.776187e-15,-0.8127996,-3270.809],\n[7.928661e-15,0.6321923,-3271.125],\n[-4.725091,-3.702783,-3270.177],\n[-4.821522,-2.257791,-3270.493],\n[-4.917952,-0.8127996,-3270.809],\n[-5.014383,0.6321923,-3271.125],\n[-9.366938,-3.907259,-3268.95],\n[-9.5581,-2.46644,-3269.241],\n[-9.749262,-1.025622,-3269.532],\n[-9.940424,0.4151973,-3269.823],\n[-13.45899,-4.295659,-3266.62],\n[-13.73366,-2.862767,-3266.863],\n[-14.00833,-1.429875,-3267.107],\n[-14.28301,0.003017627,-3267.35]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[13.45899,-4.295659,-3266.62],\n[13.73366,-2.862767,-3266.863],\n[14.00833,-1.429875,-3267.107],\n[14.28301,0.003017627,-3267.35],\n[9.366938,-3.907259,-3268.95],\n[9.5581,-2.46644,-3269.241],\n[9.749262,-1.025622,-3269.532],\n[9.940424,0.4151973,-3269.823],\n[4.725091,-3.702783,-3270.177],\n[4.821522,-2.257791,-3270.493],\n[4.917952,-0.8127996,-3270.809],\n[5.014383,0.6321923,-3271.125],\n[7.471239e-15,-3.702783,-3270.177],\n[7.623713e-15,-2.257791,-3270.493],\n[7.776187e-15,-0.8127996,-3270.809],\n[7.928661e-15,0.6321923,-3271.125]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-13.45899,-4.295659,-3266.62],\n[-13.73366,-2.862767,-3266.863],\n[-14.00833,-1.429875,-3267.107],\n[-14.28301,0.003017627,-3267.35],\n[-17.55104,-4.68406,-3264.289],\n[-17.90922,-3.259094,-3264.485],\n[-18.2674,-1.834128,-3264.681],\n[-18.62559,-0.4091621,-3264.877],\n[-20.9491,-5.242698,-3260.937],\n[-21.37664,-3.829133,-3261.065],\n[-21.80417,-2.415568,-3261.192],\n[-22.2317,-1.002003,-3261.32],\n[-23.31165,-5.915427,-3256.901],\n[-23.7874,-4.515591,-3256.946],\n[-24.26314,-3.115755,-3256.991],\n[-24.73889,-1.71592,-3257.037]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[23.31165,-5.915427,-3256.901],\n[23.7874,-4.515591,-3256.946],\n[24.26314,-3.115755,-3256.991],\n[24.73889,-1.71592,-3257.037],\n[20.9491,-5.242698,-3260.937],\n[21.37664,-3.829133,-3261.065],\n[21.80417,-2.415568,-3261.192],\n[22.2317,-1.002003,-3261.32],\n[17.55104,-4.68406,-3264.289],\n[17.90922,-3.259094,-3264.485],\n[18.2674,-1.834128,-3264.681],\n[18.62559,-0.4091621,-3264.877],\n[13.45899,-4.295659,-3266.62],\n[13.73366,-2.862767,-3266.863],\n[14.00833,-1.429875,-3267.107],\n[14.28301,0.003017627,-3267.35]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[7.9286612706e-15,0.632192283168,-3271.1252033],\n[5.2857741804e-15,-0.933215572927,-3261.73275616],\n[2.6428870902e-15,-2.49862342902,-3252.34030903],\n[0,-4.06403128512,-3242.94786189],\n[-5.01438256709,0.632192283168,-3271.1252033],\n[-3.34292171139,-0.933215572927,-3261.73275616],\n[-1.6714608557,-2.49862342902,-3252.34030903],\n[0,-4.06403128512,-3242.94786189],\n[-9.94042369014,0.415197334865,-3269.82323361],\n[-6.62694912676,-1.0778788718,-3260.86477637],\n[-3.31347456338,-2.57095507846,-3251.90631913],\n[0,-4.06403128512,-3242.94786189],\n[-14.2830063775,0.00301762686938,-3267.35015536],\n[-9.52200425169,-1.35266534379,-3259.21605754],\n[-4.76100212585,-2.70834831445,-3251.08195971],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[14.2830063775,0.00301762686938,-3267.35015536],\n[9.52200425169,-1.35266534379,-3259.21605754],\n[4.76100212585,-2.70834831445,-3251.08195971],\n[0,-4.06403128512,-3242.94786189],\n[9.94042369014,0.415197334865,-3269.82323361],\n[6.62694912676,-1.0778788718,-3260.86477637],\n[3.31347456338,-2.57095507846,-3251.90631913],\n[0,-4.06403128512,-3242.94786189],\n[5.01438256709,0.632192283168,-3271.1252033],\n[3.34292171139,-0.933215572927,-3261.73275616],\n[1.6714608557,-2.49862342902,-3252.34030903],\n[0,-4.06403128512,-3242.94786189],\n[7.9286612706e-15,0.632192283168,-3271.1252033],\n[5.2857741804e-15,-0.933215572927,-3261.73275616],\n[2.6428870902e-15,-2.49862342902,-3252.34030903],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-14.2830063775,0.00301762686938,-3267.35015536],\n[-9.52200425169,-1.35266534379,-3259.21605754],\n[-4.76100212585,-2.70834831445,-3251.08195971],\n[0,-4.06403128512,-3242.94786189],\n[-18.6255890649,-0.409162081126,-3264.87707711],\n[-12.4170593766,-1.62745181579,-3257.5673387],\n[-6.20852968831,-2.84574155045,-3250.2576003],\n[0,-4.06403128512,-3242.94786189],\n[-22.2317014472,-1.00200330488,-3261.32002977],\n[-14.8211342981,-2.02267929829,-3255.19597381],\n[-7.41056714906,-3.0433552917,-3249.07191785],\n[0,-4.06403128512,-3242.94786189],\n[-24.7388927307,-1.71591950097,-3257.03653259],\n[-16.4925951538,-2.49862342902,-3252.34030903],\n[-8.24629757691,-3.28132735707,-3247.64408546],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[24.7388927307,-1.71591950097,-3257.03653259],\n[16.4925951538,-2.49862342902,-3252.34030903],\n[8.24629757691,-3.28132735707,-3247.64408546],\n[0,-4.06403128512,-3242.94786189],\n[22.2317014472,-1.00200330488,-3261.32002977],\n[14.8211342981,-2.02267929829,-3255.19597381],\n[7.41056714906,-3.0433552917,-3249.07191785],\n[0,-4.06403128512,-3242.94786189],\n[18.6255890649,-0.409162081126,-3264.87707711],\n[12.4170593766,-1.62745181579,-3257.5673387],\n[6.20852968831,-2.84574155045,-3250.2576003],\n[0,-4.06403128512,-3242.94786189],\n[14.2830063775,0.00301762686938,-3267.35015536],\n[9.52200425169,-1.35266534379,-3259.21605754],\n[4.76100212585,-2.70834831445,-3251.08195971],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-23.31165,-5.915427,-3256.901],\n[-23.7874,-4.515591,-3256.946],\n[-24.26314,-3.115755,-3256.991],\n[-24.73889,-1.71592,-3257.037],\n[-25.67419,-6.588156,-3252.865],\n[-26.19816,-5.202049,-3252.827],\n[-26.72212,-3.815942,-3252.79],\n[-27.24608,-2.429836,-3252.753],\n[-26.91797,-7.351271,-3248.286],\n[-27.46732,-5.980738,-3248.155],\n[-28.01667,-4.610205,-3248.025],\n[-28.56601,-3.239672,-3247.894],\n[-26.91797,-8.128071,-3243.625],\n[-27.46732,-6.773391,-3243.399],\n[-28.01667,-5.418711,-3243.174],\n[-28.56601,-4.064031,-3242.948]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[26.91797,-8.128071,-3243.625],\n[27.46732,-6.773391,-3243.399],\n[28.01667,-5.418711,-3243.174],\n[28.56601,-4.064031,-3242.948],\n[26.91797,-7.351271,-3248.286],\n[27.46732,-5.980738,-3248.155],\n[28.01667,-4.610205,-3248.025],\n[28.56601,-3.239672,-3247.894],\n[25.67419,-6.588156,-3252.865],\n[26.19816,-5.202049,-3252.827],\n[26.72212,-3.815942,-3252.79],\n[27.24608,-2.429836,-3252.753],\n[23.31165,-5.915427,-3256.901],\n[23.7874,-4.515591,-3256.946],\n[24.26314,-3.115755,-3256.991],\n[24.73889,-1.71592,-3257.037]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-24.7388927307,-1.71591950097,-3257.03653259],\n[-16.4925951538,-2.49862342902,-3252.34030903],\n[-8.24629757691,-3.28132735707,-3247.64408546],\n[0,-4.06403128512,-3242.94786189],\n[-27.2460840143,-2.42983569707,-3252.75303542],\n[-18.1640560095,-2.97456755975,-3249.48464424],\n[-9.08202800476,-3.51929942244,-3246.21625307],\n[0,-4.06403128512,-3242.94786189],\n[-28.5660127551,-3.23967186913,-3247.89401838],\n[-19.0440085034,-3.51445834112,-3246.24529955],\n[-9.52200425169,-3.78924481312,-3244.59658072],\n[0,-4.06403128512,-3242.94786189],\n[-28.5660127551,-4.06403128512,-3242.94786189],\n[-19.0440085034,-4.06403128512,-3242.94786189],\n[-9.52200425169,-4.06403128512,-3242.94786189],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[28.5660127551,-4.06403128512,-3242.94786189],\n[19.0440085034,-4.06403128512,-3242.94786189],\n[9.52200425169,-4.06403128512,-3242.94786189],\n[0,-4.06403128512,-3242.94786189],\n[28.5660127551,-3.23967186913,-3247.89401838],\n[19.0440085034,-3.51445834112,-3246.24529955],\n[9.52200425169,-3.78924481312,-3244.59658072],\n[0,-4.06403128512,-3242.94786189],\n[27.2460840143,-2.42983569707,-3252.75303542],\n[18.1640560095,-2.97456755975,-3249.48464424],\n[9.08202800476,-3.51929942244,-3246.21625307],\n[0,-4.06403128512,-3242.94786189],\n[24.7388927307,-1.71591950097,-3257.03653259],\n[16.4925951538,-2.49862342902,-3252.34030903],\n[8.24629757691,-3.28132735707,-3247.64408546],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-28.5660127551,-4.06403128512,-3242.94786189],\n[-19.0440085034,-4.06403128512,-3242.94786189],\n[-9.52200425169,-4.06403128512,-3242.94786189],\n[0,-4.06403128512,-3242.94786189],\n[-28.5660127551,-4.88839070111,-3238.00170539],\n[-19.0440085034,-4.61360422911,-3239.65042423],\n[-9.52200425169,-4.33881775711,-3241.29914306],\n[0,-4.06403128512,-3242.94786189],\n[-27.2460840143,-5.69822687316,-3233.14268836],\n[-18.1640560095,-5.15349501048,-3236.41107954],\n[-9.08202800476,-4.6087631478,-3239.67947071],\n[0,-4.06403128512,-3242.94786189],\n[-24.7388927307,-6.41214306926,-3228.85919118],\n[-16.4925951538,-5.62943914121,-3233.55541475],\n[-8.24629757691,-4.84673521316,-3238.25163832],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[24.7388927307,-6.41214306926,-3228.85919118],\n[16.4925951538,-5.62943914121,-3233.55541475],\n[8.24629757691,-4.84673521316,-3238.25163832],\n[0,-4.06403128512,-3242.94786189],\n[27.2460840143,-5.69822687316,-3233.14268836],\n[18.1640560095,-5.15349501048,-3236.41107954],\n[9.08202800476,-4.6087631478,-3239.67947071],\n[0,-4.06403128512,-3242.94786189],\n[28.5660127551,-4.88839070111,-3238.00170539],\n[19.0440085034,-4.61360422911,-3239.65042423],\n[9.52200425169,-4.33881775711,-3241.29914306],\n[0,-4.06403128512,-3242.94786189],\n[28.5660127551,-4.06403128512,-3242.94786189],\n[19.0440085034,-4.06403128512,-3242.94786189],\n[9.52200425169,-4.06403128512,-3242.94786189],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-26.91797,-8.128071,-3243.625],\n[-27.46732,-6.773391,-3243.399],\n[-28.01667,-5.418711,-3243.174],\n[-28.56601,-4.064031,-3242.948],\n[-26.91797,-8.904871,-3238.964],\n[-27.46732,-7.566044,-3238.644],\n[-28.01667,-6.227218,-3238.323],\n[-28.56601,-4.888391,-3238.002],\n[-25.67419,-9.667986,-3234.386],\n[-26.19816,-8.344733,-3233.971],\n[-26.72212,-7.02148,-3233.557],\n[-27.24608,-5.698227,-3233.143],\n[-23.31165,-10.34071,-3230.349],\n[-23.7874,-9.031191,-3229.853],\n[-24.26314,-7.721667,-3229.356],\n[-24.73889,-6.412143,-3228.859]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[23.31165,-10.34071,-3230.349],\n[23.7874,-9.031191,-3229.853],\n[24.26314,-7.721667,-3229.356],\n[24.73889,-6.412143,-3228.859],\n[25.67419,-9.667986,-3234.386],\n[26.19816,-8.344733,-3233.971],\n[26.72212,-7.02148,-3233.557],\n[27.24608,-5.698227,-3233.143],\n[26.91797,-8.904871,-3238.964],\n[27.46732,-7.566044,-3238.644],\n[28.01667,-6.227218,-3238.323],\n[28.56601,-4.888391,-3238.002],\n[26.91797,-8.128071,-3243.625],\n[27.46732,-6.773391,-3243.399],\n[28.01667,-5.418711,-3243.174],\n[28.56601,-4.064031,-3242.948]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[14.2830063775,-8.1310801971,-3218.54556842],\n[9.52200425169,-6.77539722644,-3226.67966624],\n[4.76100212585,-5.41971425578,-3234.81376407],\n[0,-4.06403128512,-3242.94786189],\n[18.6255890649,-7.71890048911,-3221.01864667],\n[12.4170593766,-6.50061075444,-3228.32838507],\n[6.20852968831,-5.28232101978,-3235.63812348],\n[0,-4.06403128512,-3242.94786189],\n[22.2317014472,-7.12605926536,-3224.57569401],\n[14.8211342981,-6.10538327194,-3230.69974997],\n[7.41056714906,-5.08470727853,-3236.82380593],\n[0,-4.06403128512,-3242.94786189],\n[24.7388927307,-6.41214306926,-3228.85919118],\n[16.4925951538,-5.62943914121,-3233.55541475],\n[8.24629757691,-4.84673521316,-3238.25163832],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-24.7388927307,-6.41214306926,-3228.85919118],\n[-16.4925951538,-5.62943914121,-3233.55541475],\n[-8.24629757691,-4.84673521316,-3238.25163832],\n[0,-4.06403128512,-3242.94786189],\n[-22.2317014472,-7.12605926536,-3224.57569401],\n[-14.8211342981,-6.10538327194,-3230.69974997],\n[-7.41056714906,-5.08470727853,-3236.82380593],\n[0,-4.06403128512,-3242.94786189],\n[-18.6255890649,-7.71890048911,-3221.01864667],\n[-12.4170593766,-6.50061075444,-3228.32838507],\n[-6.20852968831,-5.28232101978,-3235.63812348],\n[0,-4.06403128512,-3242.94786189],\n[-14.2830063775,-8.1310801971,-3218.54556842],\n[-9.52200425169,-6.77539722644,-3226.67966624],\n[-4.76100212585,-5.41971425578,-3234.81376407],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-2.37859838118e-14,-8.7602548534,-3214.77052048],\n[-1.58573225412e-14,-7.19484699731,-3224.16296762],\n[-7.9286612706e-15,-5.62943914121,-3233.55541475],\n[0,-4.06403128512,-3242.94786189],\n[5.01438256709,-8.7602548534,-3214.77052048],\n[3.34292171139,-7.19484699731,-3224.16296762],\n[1.6714608557,-5.62943914121,-3233.55541475],\n[0,-4.06403128512,-3242.94786189],\n[9.94042369014,-8.5432599051,-3216.07249017],\n[6.62694912676,-7.05018369844,-3225.03094741],\n[3.31347456338,-5.55710749178,-3233.98940465],\n[0,-4.06403128512,-3242.94786189],\n[14.2830063775,-8.1310801971,-3218.54556842],\n[9.52200425169,-6.77539722644,-3226.67966624],\n[4.76100212585,-5.41971425578,-3234.81376407],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-14.2830063775,-8.1310801971,-3218.54556842],\n[-9.52200425169,-6.77539722644,-3226.67966624],\n[-4.76100212585,-5.41971425578,-3234.81376407],\n[0,-4.06403128512,-3242.94786189],\n[-9.94042369014,-8.5432599051,-3216.07249017],\n[-6.62694912676,-7.05018369844,-3225.03094741],\n[-3.31347456338,-5.55710749178,-3233.98940465],\n[0,-4.06403128512,-3242.94786189],\n[-5.01438256709,-8.7602548534,-3214.77052048],\n[-3.34292171139,-7.19484699731,-3224.16296762],\n[-1.6714608557,-5.62943914121,-3233.55541475],\n[0,-4.06403128512,-3242.94786189],\n[-2.37859838118e-14,-8.7602548534,-3214.77052048],\n[-1.58573225412e-14,-7.19484699731,-3224.16296762],\n[-7.9286612706e-15,-5.62943914121,-3233.55541475],\n[0,-4.06403128512,-3242.94786189]\n],0,3,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[13.45899,-11.96048,-3220.631],\n[13.73366,-10.68401,-3219.936],\n[14.00833,-9.407548,-3219.241],\n[14.28301,-8.13108,-3218.546],\n[17.55104,-11.57208,-3222.961],\n[17.90922,-10.28769,-3222.314],\n[18.2674,-9.003294,-3221.666],\n[18.62559,-7.7189,-3221.019],\n[20.9491,-11.01344,-3226.313],\n[21.37664,-9.717649,-3225.734],\n[21.80417,-8.421854,-3225.155],\n[22.2317,-7.126059,-3224.576],\n[23.31165,-10.34071,-3230.349],\n[23.7874,-9.031191,-3229.853],\n[24.26314,-7.721667,-3229.356],\n[24.73889,-6.412143,-3228.859]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-23.31165,-10.34071,-3230.349],\n[-23.7874,-9.031191,-3229.853],\n[-24.26314,-7.721667,-3229.356],\n[-24.73889,-6.412143,-3228.859],\n[-20.9491,-11.01344,-3226.313],\n[-21.37664,-9.717649,-3225.734],\n[-21.80417,-8.421854,-3225.155],\n[-22.2317,-7.126059,-3224.576],\n[-17.55104,-11.57208,-3222.961],\n[-17.90922,-10.28769,-3222.314],\n[-18.2674,-9.003294,-3221.666],\n[-18.62559,-7.7189,-3221.019],\n[-13.45899,-11.96048,-3220.631],\n[-13.73366,-10.68401,-3219.936],\n[-14.00833,-9.407548,-3219.241],\n[-14.28301,-8.13108,-3218.546]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-13.45899,-11.96048,-3220.631],\n[-13.73366,-10.68401,-3219.936],\n[-14.00833,-9.407548,-3219.241],\n[-14.28301,-8.13108,-3218.546],\n[-9.366938,-12.34888,-3218.3],\n[-9.5581,-11.08034,-3217.558],\n[-9.749262,-9.811801,-3216.815],\n[-9.940424,-8.54326,-3216.072],\n[-4.725091,-12.55336,-3217.073],\n[-4.821522,-11.28899,-3216.306],\n[-4.917952,-10.02462,-3215.538],\n[-5.014383,-8.760255,-3214.771],\n[-2.241372e-14,-12.55336,-3217.073],\n[-2.287114e-14,-11.28899,-3216.306],\n[-2.332856e-14,-10.02462,-3215.538],\n[-2.378598e-14,-8.760255,-3214.771]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-2.241372e-14,-12.55336,-3217.073],\n[-2.287114e-14,-11.28899,-3216.306],\n[-2.332856e-14,-10.02462,-3215.538],\n[-2.378598e-14,-8.760255,-3214.771],\n[4.725091,-12.55336,-3217.073],\n[4.821522,-11.28899,-3216.306],\n[4.917952,-10.02462,-3215.538],\n[5.014383,-8.760255,-3214.771],\n[9.366938,-12.34888,-3218.3],\n[9.5581,-11.08034,-3217.558],\n[9.749262,-9.811801,-3216.815],\n[9.940424,-8.54326,-3216.072],\n[13.45899,-11.96048,-3220.631],\n[13.73366,-10.68401,-3219.936],\n[14.00833,-9.407548,-3219.241],\n[14.28301,-8.13108,-3218.546]\n],0,3,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\ntube([[28.56601,-4.064031,-3242.948],\n[28.56601,-1.470379,-3258.51],\n[15.77657,0.6321923,-3271.125],\n[0,0.6321923,-3271.125]\n],0.25,0,2,[-2.688821e-17,-4.31063,-3271.413],[28.81601,0.9198905,-3242.907],true);\n\ntube([[0,0.6321923,-3271.125],\n[-15.77657,0.6321923,-3271.125],\n[-28.56601,-1.470379,-3258.51],\n[-28.56601,-4.064031,-3242.948]\n],0.25,0,2,[-28.81601,-4.31063,-3271.413],[1.125946e-16,0.9198905,-3242.907],true);\n\ntube([[-28.56601,-4.064031,-3242.948],\n[-28.56601,-6.657684,-3227.386],\n[-15.77657,-8.760255,-3214.771],\n[0,-8.760255,-3214.771]\n],0.25,0,2,[-28.81601,-9.047953,-3242.989],[2.688821e-17,-3.817433,-3214.483],true);\n\ntube([[0,-8.760255,-3214.771],\n[15.77657,-8.760255,-3214.771],\n[28.56601,-6.657684,-3227.386],\n[28.56601,-4.064031,-3242.948]\n],0.25,0,2,[-1.125946e-16,-9.047953,-3242.989],[28.81601,-3.817433,-3214.483],true);\n\ntube([[26.91797,-8.128071,-3243.625],\n[26.91797,-5.684052,-3258.289],\n[14.86639,-3.702783,-3270.177],\n[0,-3.702783,-3270.177]\n],0.25,0,2,[-1.430605e-16,-8.374669,-3270.465],[27.16797,-3.415085,-3243.584],true);\n\ntube([[0,-3.702783,-3270.177],\n[-14.86639,-3.702783,-3270.177],\n[-26.91797,-5.684052,-3258.289],\n[-26.91797,-8.128071,-3243.625]\n],0.25,0,2,[-27.16797,-8.374669,-3270.465],[5.974407e-17,-3.415085,-3243.584],true);\n\ntube([[-26.91797,-8.128071,-3243.625],\n[-26.91797,-10.57209,-3228.961],\n[-14.86639,-12.55336,-3217.073],\n[0,-12.55336,-3217.073]\n],0.25,0,2,[-27.16797,-12.84106,-3243.666],[2.305556e-16,-7.881472,-3216.786],true);\n\ntube([[0,-12.55336,-3217.073],\n[14.86639,-12.55336,-3217.073],\n[26.91797,-10.57209,-3228.961],\n[26.91797,-8.128071,-3243.625]\n],0.25,0,2,[-5.974407e-17,-12.84106,-3243.666],[27.16797,-7.881472,-3216.786],true);\n\nMaterials.push(new Material(\ndiffuse=[0,0,0,1],\nemissive=[1,0,0,1],\nspecular=[0,0,0,1],\nshininess=1,\nmetallic=0,\nfresnel0=0.04\n));\n\ncylinder([27.46732,-14.41794,-3244.674],0.25,60.9183,0,4,\n[1.735945,-1.570796],true);\n\nsphere([27.46732,-14.41794,-3244.674],0.25,0,4,\n[1.405648,1.570796]);\n\nsphere([27.46732,-74.50738,-3254.688],0.25,0,4,\n[1.735945,-1.570796]);\n\nMaterials.push(new Material(\ndiffuse=[1,0,0,1],\nemissive=[0,0,0,1],\nspecular=[0.75,0.75,0.75,1],\nshininess=0.7,\nmetallic=0,\nfresnel0=0.04\n));\n\nP.push(new BezierPatch([\n[29.4769389,-14.4179439458,-3244.673514],\n[29.4769389,-14.6004074054,-3243.57873324],\n[28.5772018521,-14.7483232649,-3242.69123808],\n[27.4673199568,-14.7483232649,-3242.69123808],\n[29.4769389,-14.2354804861,-3245.76829476],\n[28.7370176365,-14.4179439458,-3244.673514],\n[27.4673199568,-14.6266809585,-3243.42109192],\n[26.3574380615,-14.7483232649,-3242.69123808],\n[28.5772018521,-14.0875646266,-3246.65578991],\n[27.4673199568,-14.209206933,-3245.92593608],\n[26.1976222771,-14.4179439458,-3244.673514],\n[25.4577010136,-14.6004074054,-3243.57873324],\n[27.4673199568,-14.0875646266,-3246.65578991],\n[26.3574380615,-14.0875646266,-3246.65578991],\n[25.4577010136,-14.2354804861,-3245.76829476],\n[25.4577010136,-14.4179439458,-3244.673514]\n],0,5,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[27.46732,-14.08756,-3246.656],\n[27.46732,-11.73171,-3245.584],\n[27.46732,-9.375848,-3244.512],\n[27.46732,-7.01999,-3243.441],\n[26.35744,-14.08756,-3246.656],\n[26.7274,-11.73171,-3245.584],\n[27.09736,-9.375848,-3244.512],\n[27.46732,-7.01999,-3243.441],\n[25.4577,-14.23548,-3245.768],\n[26.12757,-11.83032,-3244.992],\n[26.79745,-9.425153,-3244.216],\n[27.46732,-7.01999,-3243.441],\n[25.4577,-14.41794,-3244.674],\n[26.12757,-11.95196,-3244.263],\n[26.79745,-9.485974,-3243.852],\n[27.46732,-7.01999,-3243.441]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[29.47694,-14.41794,-3244.674],\n[28.80707,-11.95196,-3244.263],\n[28.13719,-9.485974,-3243.852],\n[27.46732,-7.01999,-3243.441],\n[29.47694,-14.23548,-3245.768],\n[28.80707,-11.83032,-3244.992],\n[28.13719,-9.425153,-3244.216],\n[27.46732,-7.01999,-3243.441],\n[28.5772,-14.08756,-3246.656],\n[28.20724,-11.73171,-3245.584],\n[27.83728,-9.375848,-3244.512],\n[27.46732,-7.01999,-3243.441],\n[27.46732,-14.08756,-3246.656],\n[27.46732,-11.73171,-3245.584],\n[27.46732,-9.375848,-3244.512],\n[27.46732,-7.01999,-3243.441]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[27.46732,-14.74832,-3242.691],\n[27.46732,-12.17221,-3242.941],\n[27.46732,-9.596101,-3243.191],\n[27.46732,-7.01999,-3243.441],\n[28.5772,-14.74832,-3242.691],\n[28.20724,-12.17221,-3242.941],\n[27.83728,-9.596101,-3243.191],\n[27.46732,-7.01999,-3243.441],\n[29.47694,-14.60041,-3243.579],\n[28.80707,-12.0736,-3243.533],\n[28.13719,-9.546795,-3243.487],\n[27.46732,-7.01999,-3243.441],\n[29.47694,-14.41794,-3244.674],\n[28.80707,-11.95196,-3244.263],\n[28.13719,-9.485974,-3243.852],\n[27.46732,-7.01999,-3243.441]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[25.4577,-14.41794,-3244.674],\n[26.12757,-11.95196,-3244.263],\n[26.79745,-9.485974,-3243.852],\n[27.46732,-7.01999,-3243.441],\n[25.4577,-14.60041,-3243.579],\n[26.12757,-12.0736,-3243.533],\n[26.79745,-9.546795,-3243.487],\n[27.46732,-7.01999,-3243.441],\n[26.35744,-14.74832,-3242.691],\n[26.7274,-12.17221,-3242.941],\n[27.09736,-9.596101,-3243.191],\n[27.46732,-7.01999,-3243.441],\n[27.46732,-14.74832,-3242.691],\n[27.46732,-12.17221,-3242.941],\n[27.46732,-9.596101,-3243.191],\n[27.46732,-7.01999,-3243.441]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[36.3694899927,-38.3450708827,-3249.04392133],\n[36.5283459927,-38.4565308827,-3249.04392133],\n[36.6872019927,-38.5679908827,-3249.04392133],\n[36.8460579927,-38.6794508827,-3249.04392133],\n[35.9882499927,-38.4169508827,-3249.04392133],\n[36.2306086593,-38.6646948827,-3249.04392133],\n[36.547967326,-38.8488948827,-3249.04392133],\n[36.8460579927,-39.0013268827,-3249.04392133],\n[35.8460499927,-38.7028868827,-3249.04392133],\n[36.008895326,-39.0113948827,-3249.04392133],\n[36.3217406593,-39.1928148827,-3249.04392133],\n[36.5960499927,-39.3106988827,-3249.04392133],\n[35.8460499927,-38.9294588827,-3249.04392133],\n[35.8460499927,-39.2153948827,-3249.04392133],\n[36.0710499927,-39.3106988827,-3249.04392133],\n[36.2382459927,-39.3106988827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[31.4460567927,-39.7763348827,-3249.04392133],\n[31.4460567927,-39.8232068827,-3249.04392133],\n[31.5377227927,-39.7721668827,-3249.04392133],\n[31.4944947927,-39.8825708827,-3249.04392133],\n[31.5787388927,-39.8314048827,-3249.04392133],\n[31.6293887927,-39.7679988827,-3249.04392133],\n[31.5773067927,-39.8825708827,-3249.04392133],\n[31.6726203927,-39.8825708827,-3249.04392133],\n[31.6976175927,-39.8122628827,-3249.04392133],\n[31.7210547927,-39.7638308827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[31.5304311927,-42.9357068827,-3249.04392133],\n[31.3715775927,-42.8242468827,-3249.04392133],\n[31.2127239927,-42.7127868827,-3249.04392133],\n[31.0538703927,-42.6013268827,-3249.04392133],\n[31.9585539927,-42.8513312827,-3249.04392133],\n[31.7019579927,-42.6035875494,-3249.04392133],\n[31.3859863927,-42.3881350161,-3249.04392133],\n[31.0538703927,-42.2200784827,-3249.04392133],\n[32.0538699927,-42.4935140827,-3249.04392133],\n[31.9135919927,-42.2443834161,-3249.04392133],\n[31.6545627927,-42.0598351494,-3249.04392133],\n[31.3632447927,-41.9700788827,-3249.04392133],\n[32.0538699927,-42.3513284827,-3249.04392133],\n[32.0538699927,-42.1122668827,-3249.04392133],\n[31.8757431927,-41.9700788827,-3249.04392133],\n[31.6491831927,-41.9700788827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[36.4413699927,-41.5044548827,-3249.04392133],\n[36.4413699927,-41.4450788827,-3249.04392133],\n[36.3497059927,-41.5206028827,-3249.04392133],\n[36.3929379927,-41.3966348827,-3249.04392133],\n[36.3097319927,-41.4459868827,-3249.04392133],\n[36.2580419927,-41.5367508827,-3249.04392133],\n[36.3226179927,-41.3966348827,-3249.04392133],\n[36.2148099927,-41.3966348827,-3249.04392133],\n[36.2023059927,-41.4575708827,-3249.04392133],\n[36.1663779927,-41.5528988827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[36.3694899927,-38.3450708827,-3249.04392133],\n[36.5283459927,-38.4565308827,-3249.04392133],\n[36.4156978672,-38.274994852,-3249.04392133],\n[36.6872019927,-38.5679908827,-3249.04392133],\n[36.6245106719,-38.3548271061,-3249.04392133],\n[36.4619057417,-38.2049188213,-3249.04392133],\n[36.8460579927,-38.6794508827,-3249.04392133],\n[36.8460579927,-38.4337326094,-3249.04392133],\n[36.7079408352,-38.2540500804,-3249.04392133],\n[36.5081136161,-38.1348427905,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[36.5081136161,-38.1348427905,-3249.04392133],\n[36.4619057417,-38.2049188213,-3249.04392133],\n[36.4156978672,-38.274994852,-3249.04392133],\n[36.3694899927,-38.3450708827,-3249.04392133],\n[36.301328785,-38.0114849245,-3249.04392133],\n[36.2407171876,-38.0711202439,-3249.04392133],\n[36.1801055901,-38.1307555633,-3249.04392133],\n[36.1194939927,-38.1903908827,-3249.04392133],\n[36.028461822,-37.9528868827,-3249.04392133],\n[35.9473458789,-38.0320548827,-3249.04392133],\n[35.8662299358,-38.1112228827,-3249.04392133],\n[35.7851139927,-38.1903908827,-3249.04392133],\n[35.7741819927,-37.9528868827,-3249.04392133],\n[35.7700139927,-38.0320548827,-3249.04392133],\n[35.7658459927,-38.1112228827,-3249.04392133],\n[35.7616779927,-38.1903908827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[31.9200813927,-38.7661733827,-3249.04392133],\n[31.9857841902,-38.8147980609,-3249.04392133],\n[32.0514869877,-38.863422739,-3249.04392133],\n[32.1171897853,-38.9120474172,-3249.04392133],\n[31.6069950927,-39.1892228827,-3249.04392133],\n[31.7271949079,-39.1690953829,-3249.04392133],\n[31.8473947231,-39.148967883,-3249.04392133],\n[31.9675945383,-39.1288403831,-3249.04392133],\n[31.4460567927,-39.6450848827,-3249.04392133],\n[31.574053063,-39.5658587567,-3249.04392133],\n[31.7020493334,-39.4866326308,-3249.04392133],\n[31.8300456037,-39.4074065048,-3249.04392133],\n[31.4460567927,-39.7763348827,-3249.04392133],\n[31.5377227927,-39.7721668827,-3249.04392133],\n[31.6293887927,-39.7679988827,-3249.04392133],\n[31.7210547927,-39.7638308827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[32.1171897853,-38.9120474172,-3249.04392133],\n[32.0514869877,-38.863422739,-3249.04392133],\n[31.9857841902,-38.8147980609,-3249.04392133],\n[31.9200813927,-38.7661733827,-3249.04392133],\n[32.5230585982,-38.3238635976,-3249.04392133],\n[32.4264282963,-38.3302836927,-3249.04392133],\n[32.3297979945,-38.3367037877,-3249.04392133],\n[32.2331676927,-38.3431238827,-3249.04392133],\n[33.0176001024,-38.1903908827,-3249.04392133],\n[32.9112007325,-38.1112228827,-3249.04392133],\n[32.8048013626,-38.0320548827,-3249.04392133],\n[32.6984019927,-37.9528868827,-3249.04392133],\n[33.2710539927,-38.1903908827,-3249.04392133],\n[33.2830339927,-38.1112228827,-3249.04392133],\n[33.2950139927,-38.0320548827,-3249.04392133],\n[33.3069939927,-37.9528868827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[31.5304311927,-42.9357068827,-3249.04392133],\n[31.3715775927,-42.8242468827,-3249.04392133],\n[31.4837885195,-43.0064410329,-3249.04392133],\n[31.2127239927,-42.7127868827,-3249.04392133],\n[31.2749257889,-42.9269533243,-3249.04392133],\n[31.4371458464,-43.077175183,-3249.04392133],\n[31.0538703927,-42.6013268827,-3249.04392133],\n[31.0538703927,-42.8484085003,-3249.04392133],\n[31.1904666509,-43.0287168815,-3249.04392133],\n[31.3905031732,-43.1479093331,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[31.3905031732,-43.1479093331,-3249.04392133],\n[31.4371458464,-43.077175183,-3249.04392133],\n[31.4837885195,-43.0064410329,-3249.04392133],\n[31.5304311927,-42.9357068827,-3249.04392133],\n[31.5952667094,-43.2699183922,-3249.04392133],\n[31.6569888705,-43.2100768757,-3249.04392133],\n[31.7187110316,-43.1502353592,-3249.04392133],\n[31.7804331927,-43.0903938427,-3249.04392133],\n[31.8665042182,-43.3278889627,-3249.04392133],\n[31.9372914764,-43.2487239227,-3249.04392133],\n[32.0080787345,-43.1695588827,-3249.04392133],\n[32.0788659927,-43.0903938427,-3249.04392133],\n[32.1257499927,-43.3278889627,-3249.04392133],\n[32.1299139927,-43.2487239227,-3249.04392133],\n[32.1340779927,-43.1695588827,-3249.04392133],\n[32.1382419927,-43.0903938427,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[34.5819939927,-43.3278889627,-3249.04392133],\n[34.5939739927,-43.2487239227,-3249.04392133],\n[34.6059539927,-43.1695588827,-3249.04392133],\n[34.6179339927,-43.0903938427,-3249.04392133],\n[35.7976179927,-43.3278889627,-3249.04392133],\n[35.5830339927,-43.2487239227,-3249.04392133],\n[35.3684499927,-43.1695588827,-3249.04392133],\n[35.1538659927,-43.0903938427,-3249.04392133],\n[36.4413699927,-41.7669548827,-3249.04392133],\n[36.2429299927,-42.0450788827,-3249.04392133],\n[36.0444899927,-42.3232028827,-3249.04392133],\n[35.8460499927,-42.6013268827,-3249.04392133],\n[36.4413699927,-41.5044548827,-3249.04392133],\n[36.3497059927,-41.5206028827,-3249.04392133],\n[36.2580419927,-41.5367508827,-3249.04392133],\n[36.1663779927,-41.5528988827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[34.6288659927,-39.4310108827,-3249.04392133],\n[34.5970939927,-39.2518468827,-3249.04392133],\n[34.5653219927,-39.0726828827,-3249.04392133],\n[34.5335499927,-38.8935188827,-3249.04392133],\n[34.8085539927,-38.7153908827,-3249.04392133],\n[34.7528259927,-38.6992468827,-3249.04392133],\n[34.6970979927,-38.6831028827,-3249.04392133],\n[34.6413699927,-38.6669588827,-3249.04392133],\n[35.2132419927,-38.1903908827,-3249.04392133],\n[35.1575139927,-38.1112228827,-3249.04392133],\n[35.1017859927,-38.0320548827,-3249.04392133],\n[35.0460579927,-37.9528868827,-3249.04392133],\n[35.7616779927,-38.1903908827,-3249.04392133],\n[35.7658459927,-38.1112228827,-3249.04392133],\n[35.7700139927,-38.0320548827,-3249.04392133],\n[35.7741819927,-37.9528868827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[34.5335499927,-38.8935188827,-3249.04392133],\n[34.3273019927,-38.9216428827,-3249.04392133],\n[34.1210539927,-38.9497668827,-3249.04392133],\n[33.9148059927,-38.9778908827,-3249.04392133],\n[34.2601179927,-37.9997708827,-3249.04392133],\n[34.1450139927,-38.2304988827,-3249.04392133],\n[34.0299099927,-38.4612268827,-3249.04392133],\n[33.9148059927,-38.6919548827,-3249.04392133],\n[33.5210499927,-37.9528868827,-3249.04392133],\n[33.6163659927,-38.0320548827,-3249.04392133],\n[33.7116819927,-38.1112228827,-3249.04392133],\n[33.8069979927,-38.1903908827,-3249.04392133],\n[33.3069939927,-37.9528868827,-3249.04392133],\n[33.2950139927,-38.0320548827,-3249.04392133],\n[33.2830339927,-38.1112228827,-3249.04392133],\n[33.2710539927,-38.1903908827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[33.2944899927,-41.7185108827,-3249.04392133],\n[33.3142819927,-41.9414300827,-3249.04392133],\n[33.3340739927,-42.1643492827,-3249.04392133],\n[33.3538659927,-42.3872684827,-3249.04392133],\n[33.1148019927,-42.4341440827,-3249.04392133],\n[33.1111579927,-42.5810188827,-3249.04392133],\n[33.1075139927,-42.7278936827,-3249.04392133],\n[33.1038699927,-42.8747684827,-3249.04392133],\n[32.7694899927,-43.0903938427,-3249.04392133],\n[32.7455339927,-43.1695588827,-3249.04392133],\n[32.7215779927,-43.2487239227,-3249.04392133],\n[32.6976219927,-43.3278889627,-3249.04392133],\n[32.1382419927,-43.0903938427,-3249.04392133],\n[32.1340779927,-43.1695588827,-3249.04392133],\n[32.1299139927,-43.2487239227,-3249.04392133],\n[32.1257499927,-43.3278889627,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[33.3538659927,-42.3872684827,-3249.04392133],\n[33.5606379927,-42.3554960827,-3249.04392133],\n[33.7674099927,-42.3237236827,-3249.04392133],\n[33.9741819927,-42.2919512827,-3249.04392133],\n[33.5444979927,-43.0903938427,-3249.04392133],\n[33.6877259927,-42.9867463227,-3249.04392133],\n[33.8309539927,-42.8830988027,-3249.04392133],\n[33.9741819927,-42.7794512827,-3249.04392133],\n[34.1413659927,-43.3278889627,-3249.04392133],\n[34.1611579927,-43.2487239227,-3249.04392133],\n[34.1809499927,-43.1695588827,-3249.04392133],\n[34.2007419927,-43.0903938427,-3249.04392133],\n[34.5819939927,-43.3278889627,-3249.04392133],\n[34.5939739927,-43.2487239227,-3249.04392133],\n[34.6059539927,-43.1695588827,-3249.04392133],\n[34.6179339927,-43.0903938427,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[34.6288659927,-39.4310108827,-3249.04392133],\n[34.3189699927,-39.6492428827,-3249.04392133],\n[34.0090739927,-39.8674748827,-3249.04392133],\n[33.6991779927,-40.0857068827,-3249.04392133],\n[34.5970939927,-39.2518468827,-3249.04392133],\n[34.3457086593,-39.3391762161,-3249.04392133],\n[34.094323326,-39.4265055494,-3249.04392133],\n[33.8429379927,-39.5138348827,-3249.04392133],\n[34.5653219927,-39.0726828827,-3249.04392133],\n[34.348483326,-39.1285855494,-3249.04392133],\n[34.1316446593,-39.1844882161,-3249.04392133],\n[33.9148059927,-39.2403908827,-3249.04392133],\n[34.5335499927,-38.8935188827,-3249.04392133],\n[34.3273019927,-38.9216428827,-3249.04392133],\n[34.1210539927,-38.9497668827,-3249.04392133],\n[33.9148059927,-38.9778908827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[33.2944899927,-41.7185108827,-3249.04392133],\n[33.6002219927,-41.4961188827,-3249.04392133],\n[33.9059539927,-41.2737268827,-3249.04392133],\n[34.2116859927,-41.0513348827,-3249.04392133],\n[33.3142819927,-41.9414300827,-3249.04392133],\n[33.5498726593,-41.9072316827,-3249.04392133],\n[33.785463326,-41.8730332827,-3249.04392133],\n[34.0210539927,-41.8388348827,-3249.04392133],\n[33.3340739927,-42.1643492827,-3249.04392133],\n[33.547443326,-42.1193832827,-3249.04392133],\n[33.7608126593,-42.0744172827,-3249.04392133],\n[33.9741819927,-42.0294512827,-3249.04392133],\n[33.3538659927,-42.3872684827,-3249.04392133],\n[33.5606379927,-42.3554960827,-3249.04392133],\n[33.7674099927,-42.3237236827,-3249.04392133],\n[33.9741819927,-42.2919512827,-3249.04392133]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[34.21169,-41.05133,-3249.044],\n[34.62887,-39.43101,-3249.044],\n[33.69918,-40.08571,-3249.044],\n[33.29449,-41.71851,-3249.044]\n],0,4,[33.29449,-41.71851,-3249.044],[34.62887,-39.43101,-3249.044]));\n\ncylinder([0,-6.773391,-3243.399],0.25,27.46732,0,4,\n[1.570796,0],true);\n\nsphere([0,-6.773391,-3243.399],0.25,0,4,\n[1.570796,3.141593]);\n\nsphere([27.46732,-6.773391,-3243.399],0.25,0,4,\n[1.570796,0]);\n\nP.push(new BezierPatch([\n[15.6711571784,1.80690947981,-3243.39942185],\n[15.8180331784,1.69596947981,-3243.39942185],\n[15.9649091784,1.58502947981,-3243.39942185],\n[16.1117851784,1.47408947981,-3243.39942185],\n[15.3008491784,1.73658947981,-3243.39942185],\n[15.5274105117,1.47686947981,-3243.39942185],\n[15.8294958451,1.28069347981,-3243.39942185],\n[16.1117851784,1.11628547981,-3243.39942185],\n[15.1102171784,1.47408947981,-3243.39942185],\n[15.2654278451,1.15360547981,-3243.39942185],\n[15.5716865117,0.960209479814,-3243.39942185],\n[15.8383531784,0.830349479814,-3243.39942185],\n[15.1102171784,1.21158947981,-3243.39942185],\n[15.1102171784,0.925653479814,-3243.39942185],\n[15.3367891784,0.830349479814,-3243.39942185],\n[15.5039731784,0.830349479814,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[11.3555347784,0.364713479814,-3243.39942185],\n[11.3555347784,0.317841479814,-3243.39942185],\n[11.4586599784,0.424613479814,-3243.39942185],\n[11.4039739784,0.258477479814,-3243.39942185],\n[11.4879574784,0.308732479814,-3243.39942185],\n[11.5617851784,0.484513479814,-3243.39942185],\n[11.4867847784,0.258477479814,-3243.39942185],\n[11.5820983784,0.258477479814,-3243.39942185],\n[11.5945975784,0.269409479814,-3243.39942185],\n[11.6649103784,0.544413479814,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[11.9274103784,-2.88996852019,-3243.39942185],\n[11.9274103784,-3.05559060019,-3243.39942185],\n[12.1737659784,-2.88163572019,-3243.39942185],\n[12.0586603784,-3.18684060019,-3243.39942185],\n[12.2469413784,-3.08176430019,-3243.39942185],\n[12.4201215784,-2.87330292019,-3243.39942185],\n[12.2383531784,-3.18684060019,-3243.39942185],\n[12.3680371784,-3.18684060019,-3243.39942185],\n[12.5945971784,-3.10403292019,-3243.39942185],\n[12.6664771784,-2.86497012019,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[15.6711571784,1.80690947981,-3243.39942185],\n[15.8180331784,1.69596947981,-3243.39942185],\n[15.7185411727,1.87219934536,-3243.39942185],\n[15.9649091784,1.58502947981,-3243.39942185],\n[15.913282117,1.77930298085,-3243.39942185],\n[15.765925167,1.93748921091,-3243.39942185],\n[16.1117851784,1.47408947981,-3243.39942185],\n[16.1117851784,1.67904302115,-3243.39942185],\n[16.0047689387,1.87000007707,-3243.39942185],\n[15.8133091612,2.00277907646,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[15.8133091612,2.00277907646,-3243.39942185],\n[15.765925167,1.93748921091,-3243.39942185],\n[15.7185411727,1.87219934536,-3243.39942185],\n[15.6711571784,1.80690947981,-3243.39942185],\n[15.6486178686,2.11699390185,-3243.39942185],\n[15.6045709718,2.04956842784,-3243.39942185],\n[15.5605240751,1.98214295383,-3243.39942185],\n[15.5164771784,1.91471747981,-3243.39942185],\n[15.4214449104,2.18816147981,-3243.39942185],\n[15.3890583331,2.10899347981,-3243.39942185],\n[15.3566717557,2.02982547981,-3243.39942185],\n[15.3242851784,1.95065747981,-3243.39942185],\n[15.1461571784,2.18816147981,-3243.39942185],\n[15.1419931784,2.10899347981,-3243.39942185],\n[15.1378291784,2.02982547981,-3243.39942185],\n[15.1336651784,1.95065747981,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[14.1930331784,1.54440947981,-3243.39942185],\n[14.0024091784,1.44544947981,-3243.39942185],\n[13.8117851784,1.34648947981,-3243.39942185],\n[13.6211611784,1.24752947981,-3243.39942185],\n[14.3352211784,1.67565347981,-3243.39942185],\n[14.2638691784,1.77513347981,-3243.39942185],\n[14.1925171784,1.87461347981,-3243.39942185],\n[14.1211651784,1.97409347981,-3243.39942185],\n[14.6461651784,1.95065747981,-3243.39942185],\n[14.6539771784,2.02982547981,-3243.39942185],\n[14.6617891784,2.10899347981,-3243.39942185],\n[14.6696011784,2.18816147981,-3243.39942185],\n[15.1336651784,1.95065747981,-3243.39942185],\n[15.1378291784,2.02982547981,-3243.39942185],\n[15.1419931784,2.10899347981,-3243.39942185],\n[15.1461571784,2.18816147981,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[13.5367891784,0.591285479814,-3243.39942185],\n[13.5727171784,0.699093479814,-3243.39942185],\n[13.5649131784,0.810033479814,-3243.39942185],\n[13.8946051784,1.28346947981,-3243.39942185],\n[13.7180361784,1.08945847981,-3243.39942185],\n[13.5930371784,1.02878147981,-3243.39942185],\n[14.1930331784,1.54440947981,-3243.39942185],\n[14.0024091784,1.44544947981,-3243.39942185],\n[13.8117851784,1.34648947981,-3243.39942185],\n[13.6211611784,1.24752947981,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[11.7367867784,1.56940547981,-3243.39942185],\n[11.5336603784,1.13972147981,-3243.39942185],\n[11.7128279784,1.22774147981,-3243.39942185],\n[11.3555347784,0.424089479814,-3243.39942185],\n[11.5349623784,0.733600479814,-3243.39942185],\n[11.6888691784,0.886077479814,-3243.39942185],\n[11.3555347784,0.364713479814,-3243.39942185],\n[11.4586599784,0.424613479814,-3243.39942185],\n[11.5617851784,0.484513479814,-3243.39942185],\n[11.6649103784,0.544413479814,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[12.1430347784,-1.95871572019,-3243.39942185],\n[12.0586603784,-2.26965852019,-3243.39942185],\n[12.3175155784,-2.26080052019,-3243.39942185],\n[11.9274103784,-2.82903012019,-3243.39942185],\n[12.2245471784,-2.63371922019,-3243.39942185],\n[12.4919963784,-2.56288532019,-3243.39942185],\n[11.9274103784,-2.88996852019,-3243.39942185],\n[12.1737659784,-2.88163572019,-3243.39942185],\n[12.4201215784,-2.87330292019,-3243.39942185],\n[12.6664771784,-2.86497012019,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[12.5836651784,2.18816147981,-3243.39942185],\n[12.5716851784,2.10899347981,-3243.39942185],\n[12.5597051784,2.02982547981,-3243.39942185],\n[12.5477251784,1.95065747981,-3243.39942185],\n[12.1180375784,2.18816147981,-3243.39942185],\n[12.1024123784,2.10899347981,-3243.39942185],\n[12.0867871784,2.02982547981,-3243.39942185],\n[12.0711619784,1.95065747981,-3243.39942185],\n[11.8805347784,1.83190547981,-3243.39942185],\n[11.8685559784,1.64076147981,-3243.39942185],\n[11.8565771784,1.44961747981,-3243.39942185],\n[11.8445983784,1.25847347981,-3243.39942185],\n[11.7367867784,1.56940547981,-3243.39942185],\n[11.7128279784,1.22774147981,-3243.39942185],\n[11.6888691784,0.886077479814,-3243.39942185],\n[11.6649103784,0.544413479814,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[12.3805411784,-0.982154520186,-3243.39942185],\n[12.6586651784,-0.886842520186,-3243.39942185],\n[12.9367891784,-0.791530520186,-3243.39942185],\n[13.2149131784,-0.696218520186,-3243.39942185],\n[12.3336571784,-1.20871452019,-3243.39942185],\n[12.6034491784,-1.12902652019,-3243.39942185],\n[12.8732411784,-1.04933852019,-3243.39942185],\n[13.1430331784,-0.969650520186,-3243.39942185],\n[12.2024119784,-1.74465852019,-3243.39942185],\n[12.3690803784,-2.08632332019,-3243.39942185],\n[12.5357487784,-2.42798812019,-3243.39942185],\n[12.7024171784,-2.76965292019,-3243.39942185],\n[12.1430347784,-1.95871572019,-3243.39942185],\n[12.3175155784,-2.26080052019,-3243.39942185],\n[12.4919963784,-2.56288532019,-3243.39942185],\n[12.6664771784,-2.86497012019,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[13.6211611784,1.24752947981,-3243.39942185],\n[13.3862651784,1.29909347981,-3243.39942185],\n[13.1513691784,1.35065747981,-3243.39942185],\n[12.9164731784,1.40222147981,-3243.39942185],\n[13.5367891784,1.87877747981,-3243.39942185],\n[13.3300171784,1.83502947981,-3243.39942185],\n[13.1232451784,1.79128147981,-3243.39942185],\n[12.9164731784,1.74753347981,-3243.39942185],\n[13.0602211784,2.18816147981,-3243.39942185],\n[12.9847011784,2.10899347981,-3243.39942185],\n[12.9091811784,2.02982547981,-3243.39942185],\n[12.8336611784,1.95065747981,-3243.39942185],\n[12.5836651784,2.18816147981,-3243.39942185],\n[12.5716851784,2.10899347981,-3243.39942185],\n[12.5597051784,2.02982547981,-3243.39942185],\n[12.5477251784,1.95065747981,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[12.7149091784,0.305349479814,-3243.39942185],\n[12.9451171784,0.229825479814,-3243.39942185],\n[13.1753251784,0.154301479814,-3243.39942185],\n[13.4055331784,0.0787774798143,-3243.39942185],\n[12.6034531784,-0.123818520186,-3243.39942185],\n[12.8510211784,-0.143786520186,-3243.39942185],\n[13.0985891784,-0.163754520186,-3243.39942185],\n[13.3461571784,-0.183722520186,-3243.39942185],\n[12.4919971784,-0.552986520186,-3243.39942185],\n[12.7527611784,-0.513230520186,-3243.39942185],\n[13.0135251784,-0.473474520186,-3243.39942185],\n[13.2742891784,-0.433718520186,-3243.39942185],\n[12.3805411784,-0.982154520186,-3243.39942185],\n[12.6586651784,-0.886842520186,-3243.39942185],\n[12.9367891784,-0.791530520186,-3243.39942185],\n[13.2149131784,-0.696218520186,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[13.5367891784,0.591285479814,-3243.39942185],\n[13.2628291784,0.495973479814,-3243.39942185],\n[12.9888691784,0.400661479814,-3243.39942185],\n[12.7149091784,0.305349479814,-3243.39942185],\n[13.5649131784,0.810033479814,-3243.39942185],\n[13.3091825117,0.765241479814,-3243.39942185],\n[13.0534518451,0.720449479814,-3243.39942185],\n[12.7977211784,0.675657479814,-3243.39942185],\n[13.5930371784,1.02878147981,-3243.39942185],\n[13.3675158451,1.06576147981,-3243.39942185],\n[13.1419945117,1.10274147981,-3243.39942185],\n[12.9164731784,1.13972147981,-3243.39942185],\n[13.6211611784,1.24752947981,-3243.39942185],\n[13.3862651784,1.29909347981,-3243.39942185],\n[13.1513691784,1.35065747981,-3243.39942185],\n[12.9164731784,1.40222147981,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[12.7149091784,0.305349479814,-3243.39942185],\n[12.9451171784,0.229825479814,-3243.39942185],\n[12.9888691784,0.400661479814,-3243.39942185],\n[13.1753251784,0.154301479814,-3243.39942185],\n[13.2222031784,0.328263479814,-3243.39942185],\n[13.2628291784,0.495973479814,-3243.39942185],\n[13.4055331784,0.0787774798143,-3243.39942185],\n[13.4539771784,0.245973479814,-3243.39942185],\n[13.5008491784,0.436593479814,-3243.39942185],\n[13.5367891784,0.591285479814,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\ncylinder([0,60.9606,-3232.11],0.25,54.93464,0,4,\n[1.570796,0],true);\n\nsphere([0,60.9606,-3232.11],0.25,0,4,\n[1.570796,3.141593]);\n\nsphere([54.93464,60.9606,-3232.11],0.25,0,4,\n[1.570796,0]);\n\nP.push(new BezierPatch([\n[28.4618451568,72.4502836572,-3232.11042289],\n[27.2660123568,70.5945516572,-3232.11042289],\n[27.3654923618,70.5945516572,-3232.11042289],\n[26.0701795568,68.7388196572,-3232.11042289],\n[26.1696595618,68.7388196572,-3232.11042289],\n[26.2691395667,68.7388196572,-3232.11042289],\n[24.8743467568,66.8830876572,-3232.11042289],\n[24.9738267618,66.8830876572,-3232.11042289],\n[25.0733067667,66.8830876572,-3232.11042289],\n[25.1727867717,66.8830876572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[27.1149771568,64.8924676572,-3232.11042289],\n[27.0358091568,64.8924676572,-3232.11042289],\n[27.0358091568,64.7773628292,-3232.11042289],\n[26.9566411568,64.8924676572,-3232.11042289],\n[26.9566411568,64.7773628292,-3232.11042289],\n[26.9566411568,64.6622580012,-3232.11042289],\n[26.8774731568,64.8924676572,-3232.11042289],\n[26.8774731568,64.7773628292,-3232.11042289],\n[26.8774731568,64.6622580012,-3232.11042289],\n[26.8774731568,64.5471531732,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[29.9884131568,64.5471531732,-3232.11042289],\n[29.9884131568,64.6622580012,-3232.11042289],\n[29.9087251568,64.6622580012,-3232.11042289],\n[29.9884131568,64.7773628292,-3232.11042289],\n[29.9087251568,64.7773628292,-3232.11042289],\n[29.8290371568,64.7773628292,-3232.11042289],\n[29.9884131568,64.8924676572,-3232.11042289],\n[29.9087251568,64.8924676572,-3232.11042289],\n[29.8290371568,64.8924676572,-3232.11042289],\n[29.7493491568,64.8924676572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[28.8556,66.53778,-3232.11],\n[30.06029,66.53778,-3232.11],\n[30.06029,66.88309,-3232.11],\n[28.8556,66.88309,-3232.11]\n],0,4,[28.8556,66.53778,-3232.11],[30.06029,66.88309,-3232.11]));\n\nP.push(new BezierPatch([\n[28.8556011568,72.3080956572,-3232.11042289],\n[28.8556011568,72.5330956572,-3232.11042289],\n[28.7243491568,72.3554916572,-3232.11042289],\n[28.8556011568,72.5940316572,-3232.11042289],\n[28.7104171568,72.5429906572,-3232.11042289],\n[28.5930971568,72.4028876572,-3232.11042289],\n[28.6884171568,72.5940316572,-3232.11042289],\n[28.5931011568,72.5940316572,-3232.11042289],\n[28.5571611568,72.5940316572,-3232.11042289],\n[28.4618451568,72.4502836572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[25.1727867717,66.8830876572,-3232.11042289],\n[25.0733067667,66.8830876572,-3232.11042289],\n[25.0733067667,66.7679836572,-3232.11042289],\n[24.9738267618,66.8830876572,-3232.11042289],\n[24.9738267618,66.7679836572,-3232.11042289],\n[24.9738267618,66.6528796572,-3232.11042289],\n[24.8743467568,66.8830876572,-3232.11042289],\n[24.8743467568,66.7679836572,-3232.11042289],\n[24.8743467568,66.6528796572,-3232.11042289],\n[24.8743467568,66.5377756572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[27.8882181568,65.0076999072,-3232.11042289],\n[27.9964669631,64.8619599355,-3232.11042289],\n[28.1047157695,64.7162199638,-3232.11042289],\n[28.2129645758,64.5704799922,-3232.11042289],\n[27.7735701568,64.9225447572,-3232.11042289],\n[27.7809656978,64.8050068023,-3232.11042289],\n[27.7883612388,64.6874688474,-3232.11042289],\n[27.7957567798,64.5699308925,-3232.11042289],\n[27.5501331568,64.8924676572,-3232.11042289],\n[27.4017679357,64.7838645195,-3232.11042289],\n[27.2534027146,64.6752613818,-3232.11042289],\n[27.1050374935,64.5666582441,-3232.11042289],\n[27.1149771568,64.8924676572,-3232.11042289],\n[27.0358091568,64.7773628292,-3232.11042289],\n[26.9566411568,64.6622580012,-3232.11042289],\n[26.8774731568,64.5471531732,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[28.2129645758,64.5704799922,-3232.11042289],\n[28.1047157695,64.7162199638,-3232.11042289],\n[27.9964669631,64.8619599355,-3232.11042289],\n[27.8882181568,65.0076999072,-3232.11042289],\n[28.2970786047,64.5705906972,-3232.11042289],\n[28.1990077887,64.7446788172,-3232.11042289],\n[28.1009369728,64.9187669372,-3232.11042289],\n[28.0028661568,65.0928550572,-3232.11042289],\n[28.3700751214,64.5705906972,-3232.11042289],\n[28.2496251332,64.7914232172,-3232.11042289],\n[28.129175145,65.0122557372,-3232.11042289],\n[28.0087251568,65.2330882572,-3232.11042289],\n[28.4259171568,64.5705906972,-3232.11042289],\n[28.2868531568,64.8648606172,-3232.11042289],\n[28.1477891568,65.1591305372,-3232.11042289],\n[28.0087251568,65.4534004572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[29.2294266568,64.5676610067,-3232.11042289],\n[29.2305222619,64.6852556023,-3232.11042289],\n[29.231617867,64.8028501979,-3232.11042289],\n[29.2327134722,64.9204447935,-3232.11042289],\n[29.5438791568,64.5647313162,-3232.11042289],\n[29.4820814021,64.6766934916,-3232.11042289],\n[29.4202836475,64.788655667,-3232.11042289],\n[29.3584858928,64.9006178424,-3232.11042289],\n[29.8509111568,64.5588719352,-3232.11042289],\n[29.742633556,64.6700705092,-3232.11042289],\n[29.6343559552,64.7812690832,-3232.11042289],\n[29.5260783545,64.8924676572,-3232.11042289],\n[29.9884131568,64.5471531732,-3232.11042289],\n[29.9087251568,64.6622580012,-3232.11042289],\n[29.8290371568,64.7773628292,-3232.11042289],\n[29.7493491568,64.8924676572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[29.2327134722,64.9204447935,-3232.11042289],\n[29.231617867,64.8028501979,-3232.11042289],\n[29.2305222619,64.6852556023,-3232.11042289],\n[29.2294266568,64.5676610067,-3232.11042289],\n[28.8752606042,64.976794194,-3232.11042289],\n[28.888498455,64.8413930284,-3232.11042289],\n[28.9017363059,64.7059918628,-3232.11042289],\n[28.9149741568,64.5705906972,-3232.11042289],\n[28.8556011568,65.127460447,-3232.11042289],\n[28.7681011568,64.9418371971,-3232.11042289],\n[28.6806011568,64.7562139471,-3232.11042289],\n[28.5931011568,64.5705906972,-3232.11042289],\n[28.8556011568,65.4534004572,-3232.11042289],\n[28.7123731568,65.1591305372,-3232.11042289],\n[28.5691451568,64.8648606172,-3232.11042289],\n[28.4259171568,64.5705906972,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[28.06966,66.88309,-3232.11],\n[25.17279,66.88309,-3232.11],\n[24.87435,66.53778,-3232.11],\n[28.00873,66.53778,-3232.11]\n],0,4,[24.87435,66.53778,-3232.11],[28.06966,66.88309,-3232.11]));\n\nP.push(new BezierPatch([\n[28.0087251568,65.4534004572,-3232.11042289],\n[28.1477891568,65.1591305372,-3232.11042289],\n[28.2910171568,65.4534004572,-3232.11042289],\n[28.2868531568,64.8648606172,-3232.11042289],\n[28.4300811568,65.1591305372,-3232.11042289],\n[28.5733091568,65.4534004572,-3232.11042289],\n[28.4259171568,64.5705906972,-3232.11042289],\n[28.5691451568,64.8648606172,-3232.11042289],\n[28.7123731568,65.1591305372,-3232.11042289],\n[28.8556011568,65.4534004572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[28.00873,66.53778,-3232.11],\n[28.00873,65.4534,-3232.11],\n[28.8556,65.4534,-3232.11],\n[28.8556,66.53778,-3232.11]\n],0,4,[28.00873,65.4534,-3232.11],[28.8556,66.53778,-3232.11]));\n\nP.push(new BezierPatch([\n[28.06966,66.88309,-3232.11],\n[28.00873,66.53778,-3232.11],\n[28.8556,66.53778,-3232.11],\n[28.8556,66.88309,-3232.11]\n],0,4,[28.00873,66.53778,-3232.11],[28.8556,66.88309,-3232.11]));\n\nP.push(new BezierPatch([\n[28.06966,71.37684,-3232.11],\n[28.8556,72.3081,-3232.11],\n[28.46185,72.45028,-3232.11],\n[27.90125,71.50139,-3232.11]\n],0,4,[27.90125,71.37684,-3232.11],[28.8556,72.45028,-3232.11]));\n\nP.push(new BezierPatch([\n[27.9012455021,71.5013895435,-3232.11042289],\n[26.9917592537,69.9619555814,-3232.11042289],\n[27.9573840537,71.4598715814,-3232.11042289],\n[26.0822730052,68.4225216193,-3232.11042289],\n[27.0478978052,69.9204376193,-3232.11042289],\n[28.0135226052,71.4183536193,-3232.11042289],\n[25.1727867568,66.8830876572,-3232.11042289],\n[26.1384115568,68.3810036572,-3232.11042289],\n[27.1040363568,69.8789196572,-3232.11042289],\n[28.0696611568,71.3768356572,-3232.11042289]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[28.06966,71.37684,-3232.11],\n[28.06966,66.88309,-3232.11],\n[28.8556,66.88309,-3232.11],\n[28.8556,72.3081,-3232.11]\n],0,4,[28.06966,66.88309,-3232.11],[28.8556,72.3081,-3232.11]));\n\ncylinder([54.93464,53.31605,-3233.385],0.25,129.5866,0,4,\n[1.735945,-1.570796],true);\n\nsphere([54.93464,53.31605,-3233.385],0.25,0,4,\n[1.405648,1.570796]);\n\nsphere([54.93464,-74.50738,-3254.688],0.25,0,4,\n[1.735945,-1.570796]);\n\nP.push(new BezierPatch([\n[56.9442588568,53.3160498276,-3233.38451504],\n[56.9442588568,53.133586368,-3232.28973428],\n[56.0445218089,52.9856705085,-3231.40223912],\n[54.9346399136,52.9856705085,-3231.40223912],\n[56.9442588568,53.4985132872,-3234.47929579],\n[56.2043375933,53.3160498276,-3233.38451504],\n[54.9346399136,53.1073128149,-3232.13209296],\n[53.8247580183,52.9856705085,-3231.40223912],\n[56.0445218089,53.6464291467,-3235.36679095],\n[54.9346399136,53.5247868403,-3234.63693711],\n[53.6649422339,53.3160498276,-3233.38451504],\n[52.9250209704,53.133586368,-3232.28973428],\n[54.9346399136,53.6464291467,-3235.36679095],\n[53.8247580183,53.6464291467,-3235.36679095],\n[52.9250209704,53.4985132872,-3234.47929579],\n[52.9250209704,53.3160498276,-3233.38451504]\n],0,5,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[54.93464,53.64643,-3235.367],\n[54.93464,56.00229,-3234.295],\n[54.93464,58.35815,-3233.223],\n[54.93464,60.714,-3232.152],\n[53.82476,53.64643,-3235.367],\n[54.19472,56.00229,-3234.295],\n[54.56468,58.35815,-3233.223],\n[54.93464,60.714,-3232.152],\n[52.92502,53.49851,-3234.479],\n[53.59489,55.90368,-3233.703],\n[54.26477,58.30884,-3232.927],\n[54.93464,60.714,-3232.152],\n[52.92502,53.31605,-3233.385],\n[53.59489,55.78203,-3232.974],\n[54.26477,58.24802,-3232.563],\n[54.93464,60.714,-3232.152]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[56.94426,53.31605,-3233.385],\n[56.27439,55.78203,-3232.974],\n[55.60451,58.24802,-3232.563],\n[54.93464,60.714,-3232.152],\n[56.94426,53.49851,-3234.479],\n[56.27439,55.90368,-3233.703],\n[55.60451,58.30884,-3232.927],\n[54.93464,60.714,-3232.152],\n[56.04452,53.64643,-3235.367],\n[55.67456,56.00229,-3234.295],\n[55.3046,58.35815,-3233.223],\n[54.93464,60.714,-3232.152],\n[54.93464,53.64643,-3235.367],\n[54.93464,56.00229,-3234.295],\n[54.93464,58.35815,-3233.223],\n[54.93464,60.714,-3232.152]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[54.93464,52.98567,-3231.402],\n[54.93464,55.56178,-3231.652],\n[54.93464,58.13789,-3231.902],\n[54.93464,60.714,-3232.152],\n[56.04452,52.98567,-3231.402],\n[55.67456,55.56178,-3231.652],\n[55.3046,58.13789,-3231.902],\n[54.93464,60.714,-3232.152],\n[56.94426,53.13359,-3232.29],\n[56.27439,55.66039,-3232.244],\n[55.60451,58.1872,-3232.198],\n[54.93464,60.714,-3232.152],\n[56.94426,53.31605,-3233.385],\n[56.27439,55.78203,-3232.974],\n[55.60451,58.24802,-3232.563],\n[54.93464,60.714,-3232.152]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[52.92502,53.31605,-3233.385],\n[53.59489,55.78203,-3232.974],\n[54.26477,58.24802,-3232.563],\n[54.93464,60.714,-3232.152],\n[52.92502,53.13359,-3232.29],\n[53.59489,55.66039,-3232.244],\n[54.26477,58.1872,-3232.198],\n[54.93464,60.714,-3232.152],\n[53.82476,52.98567,-3231.402],\n[54.19472,55.56178,-3231.652],\n[54.56468,58.13789,-3231.902],\n[54.93464,60.714,-3232.152],\n[54.93464,52.98567,-3231.402],\n[54.93464,55.56178,-3231.652],\n[54.93464,58.13789,-3231.902],\n[54.93464,60.714,-3232.152]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[65.730688012,-10.8028350529,-3243.39942185],\n[65.8952313245,-10.7432827673,-3243.39942185],\n[66.059774637,-10.6837304817,-3243.39942185],\n[66.2243179495,-10.6241781961,-3243.39942185],\n[65.9021479495,-10.8438017686,-3243.39942185],\n[66.0095379495,-10.7969822044,-3243.39942185],\n[66.1169279495,-10.7501626402,-3243.39942185],\n[66.2243179495,-10.7033430761,-3243.39942185],\n[66.0696289495,-10.8616728361,-3243.39942185],\n[66.1211919495,-10.8352845427,-3243.39942185],\n[66.1727549495,-10.8088962494,-3243.39942185],\n[66.2243179495,-10.7825079561,-3243.39942185],\n[66.2243179495,-10.8616728361,-3243.39942185],\n[66.2243179495,-10.8616728361,-3243.39942185],\n[66.2243179495,-10.8616728361,-3243.39942185],\n[66.2243179495,-10.8616728361,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[58.9633699495,-10.2663612361,-3243.39942185],\n[58.8399343495,-10.2663612361,-3243.39942185],\n[58.8399343495,-10.3814660641,-3243.39942185],\n[58.7164987495,-10.2663612361,-3243.39942185],\n[58.7164987495,-10.3814660641,-3243.39942185],\n[58.7164987495,-10.4965708921,-3243.39942185],\n[58.5930631495,-10.2663612361,-3243.39942185],\n[58.5930631495,-10.3814660641,-3243.39942185],\n[58.5930631495,-10.4965708921,-3243.39942185],\n[58.5930631495,-10.6116757201,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[62.3243179495,-10.6116757201,-3243.39942185],\n[62.3243179495,-10.4965708921,-3243.39942185],\n[62.2008779495,-10.4965708921,-3243.39942185],\n[62.3243179495,-10.3814660641,-3243.39942185],\n[62.2008779495,-10.3814660641,-3243.39942185],\n[62.0774379495,-10.3814660641,-3243.39942185],\n[62.3243179495,-10.2663612361,-3243.39942185],\n[62.2008779495,-10.2663612361,-3243.39942185],\n[62.0774379495,-10.2663612361,-3243.39942185],\n[61.9539979495,-10.2663612361,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[60.6321259495,-2.68510923605,-3243.39942185],\n[60.4373339495,-2.95125723605,-3243.39942185],\n[60.2425419495,-3.21740523605,-3243.39942185],\n[60.0477499495,-3.48355323605,-3243.39942185],\n[60.3446299495,-3.00698523605,-3243.39942185],\n[60.0269219495,-3.26896523605,-3243.39942185],\n[59.7092139495,-3.53094523605,-3243.39942185],\n[59.3915059495,-3.79292523605,-3243.39942185],\n[59.7493099495,-3.44761323605,-3243.39942185],\n[59.4316019495,-3.56271723605,-3243.39942185],\n[59.1138939495,-3.67782123605,-3243.39942185],\n[58.7961859495,-3.79292523605,-3243.39942185],\n[58.5211903495,-3.44761323605,-3243.39942185],\n[58.5211903495,-3.56271723605,-3243.39942185],\n[58.5211903495,-3.67782123605,-3243.39942185],\n[58.5211903495,-3.79292523605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[59.8987249495,-10.1409721861,-3243.39942185],\n[59.9939874697,-10.2901076598,-3243.39942185],\n[60.08924999,-10.4392431336,-3243.39942185],\n[60.1845125103,-10.5883786074,-3243.39942185],\n[59.7586849495,-10.2304248361,-3243.39942185],\n[59.7320276404,-10.3499536579,-3243.39942185],\n[59.7053703314,-10.4694824798,-3243.39942185],\n[59.6787130224,-10.5890113016,-3243.39942185],\n[59.4875899495,-10.2663612361,-3243.39942185],\n[59.2772196549,-10.3750724633,-3243.39942185],\n[59.0668493603,-10.4837836906,-3243.39942185],\n[58.8564790657,-10.5924949179,-3243.39942185],\n[58.9633699495,-10.2663612361,-3243.39942185],\n[58.8399343495,-10.3814660641,-3243.39942185],\n[58.7164987495,-10.4965708921,-3243.39942185],\n[58.5930631495,-10.6116757201,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[60.1845125103,-10.5883786074,-3243.39942185],\n[60.08924999,-10.4392431336,-3243.39942185],\n[59.9939874697,-10.2901076598,-3243.39942185],\n[59.8987249495,-10.1409721861,-3243.39942185],\n[60.2967626503,-10.5882381961,-3243.39942185],\n[60.2107634167,-10.4093319761,-3243.39942185],\n[60.1247641831,-10.2304257561,-3243.39942185],\n[60.0387649495,-10.0515195361,-3243.39942185],\n[60.393428006,-10.5882381961,-3243.39942185],\n[60.2782019872,-10.3616756761,-3243.39942185],\n[60.1629759683,-10.1351131561,-3243.39942185],\n[60.0477499495,-9.90855063605,-3243.39942185],\n[60.4649419495,-10.5882381961,-3243.39942185],\n[60.3258779495,-10.2903206761,-3243.39942185],\n[60.1868139495,-9.99240315605,-3243.39942185],\n[60.0477499495,-9.69448563605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[61.4215804495,-10.5911678866,-3243.39942185],\n[61.4224767707,-10.4763191063,-3243.39942185],\n[61.423373092,-10.361470326,-3243.39942185],\n[61.4242694132,-10.2466215458,-3243.39942185],\n[61.7969719495,-10.5940975771,-3243.39942185],\n[61.7190518866,-10.4827975795,-3243.39942185],\n[61.6411318238,-10.371497582,-3243.39942185],\n[61.563211761,-10.2601975844,-3243.39942185],\n[62.1633799495,-10.5999569581,-3243.39942185],\n[62.0212191913,-10.4887583841,-3243.39942185],\n[61.8790584332,-10.3775598101,-3243.39942185],\n[61.736897675,-10.2663612361,-3243.39942185],\n[62.3243179495,-10.6116757201,-3243.39942185],\n[62.2008779495,-10.4965708921,-3243.39942185],\n[62.0774379495,-10.3814660641,-3243.39942185],\n[61.9539979495,-10.2663612361,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[61.4242694132,-10.2466215458,-3243.39942185],\n[61.423373092,-10.361470326,-3243.39942185],\n[61.4224767707,-10.4763191063,-3243.39942185],\n[61.4215804495,-10.5911678866,-3243.39942185],\n[60.8922266682,-10.1946357186,-3243.39942185],\n[60.9435474286,-10.3258365444,-3243.39942185],\n[60.9948681891,-10.4570373703,-3243.39942185],\n[61.0461889495,-10.5882381961,-3243.39942185],\n[60.8696299495,-10.0339618224,-3243.39942185],\n[60.8003579495,-10.2187206136,-3243.39942185],\n[60.7310859495,-10.4034794048,-3243.39942185],\n[60.6618139495,-10.5882381961,-3243.39942185],\n[60.8696299495,-9.69448563605,-3243.39942185],\n[60.7347339495,-9.99240315605,-3243.39942185],\n[60.5998379495,-10.2903206761,-3243.39942185],\n[60.4649419495,-10.5882381961,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[60.8696299495,-2.97104523605,-3243.39942185],\n[60.8696299495,-2.69605323605,-3243.39942185],\n[60.5956699495,-3.14188123605,-3243.39942185],\n[60.8696299495,-2.68510923605,-3243.39942185],\n[60.5758779495,-2.97782123605,-3243.39942185],\n[60.3217099495,-3.31271723605,-3243.39942185],\n[60.6321259495,-2.68510923605,-3243.39942185],\n[60.4373339495,-2.95125723605,-3243.39942185],\n[60.2425419495,-3.21740523605,-3243.39942185],\n[60.0477499495,-3.48355323605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[60.0477499495,-9.69448563605,-3243.39942185],\n[60.1868139495,-9.99240315605,-3243.39942185],\n[60.3217099495,-9.69448563605,-3243.39942185],\n[60.3258779495,-10.2903206761,-3243.39942185],\n[60.4607739495,-9.99240315605,-3243.39942185],\n[60.5956699495,-9.69448563605,-3243.39942185],\n[60.4649419495,-10.5882381961,-3243.39942185],\n[60.5998379495,-10.2903206761,-3243.39942185],\n[60.7347339495,-9.99240315605,-3243.39942185],\n[60.8696299495,-9.69448563605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[60.86963,-9.694486,-3243.399],\n[60.86963,-2.971045,-3243.399],\n[60.04775,-3.483553,-3243.399],\n[60.04775,-9.694486,-3243.399]\n],0,4,[60.04775,-9.694486,-3243.399],[60.86963,-2.971045,-3243.399]));\n\nP.push(new BezierPatch([\n[64.3180699495,-9.66948843605,-3243.39942185],\n[64.4930699495,-9.48303003605,-3243.39942185],\n[64.6680699495,-9.29657163605,-3243.39942185],\n[64.8430699495,-9.11011323605,-3243.39942185],\n[64.6661179495,-10.3491739261,-3243.39942185],\n[64.8001019495,-10.3689668961,-3243.39942185],\n[64.9340859495,-10.3887598661,-3243.39942185],\n[65.0680699495,-10.4085528361,-3243.39942185],\n[65.2163081995,-10.6799349061,-3243.39942185],\n[65.4252274495,-10.6613493361,-3243.39942185],\n[65.6341466995,-10.6427637661,-3243.39942185],\n[65.8430659495,-10.6241781961,-3243.39942185],\n[65.730688012,-10.8028350529,-3243.39942185],\n[65.8952313245,-10.7432827673,-3243.39942185],\n[66.059774637,-10.6837304817,-3243.39942185],\n[66.2243179495,-10.6241781961,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[67.6196299495,-9.08510523605,-3243.39942185],\n[67.8144219495,-9.24031723605,-3243.39942185],\n[68.0092139495,-9.39552923605,-3243.39942185],\n[68.2040059495,-9.55074123605,-3243.39942185],\n[67.3930699495,-10.3976112361,-3243.39942185],\n[67.5482779495,-10.3455284361,-3243.39942185],\n[67.7034859495,-10.2934456361,-3243.39942185],\n[67.8586939495,-10.2413628361,-3243.39942185],\n[66.6430699495,-10.6241781961,-3243.39942185],\n[66.8493179495,-10.7033430761,-3243.39942185],\n[67.0555659495,-10.7825079561,-3243.39942185],\n[67.2618139495,-10.8616728361,-3243.39942185],\n[66.2243179495,-10.6241781961,-3243.39942185],\n[66.2243179495,-10.7033430761,-3243.39942185],\n[66.2243179495,-10.7825079561,-3243.39942185],\n[66.2243179495,-10.8616728361,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[63.8055619495,-6.79760523605,-3243.39942185],\n[64.1076459495,-6.74969323605,-3243.39942185],\n[64.4097299495,-6.70178123605,-3243.39942185],\n[64.7118139495,-6.65386923605,-3243.39942185],\n[63.8055619495,-7.95386523605,-3243.39942185],\n[64.1076459495,-7.79865723605,-3243.39942185],\n[64.4097299495,-7.64344923605,-3243.39942185],\n[64.7118139495,-7.48824123605,-3243.39942185],\n[63.8883739495,-8.82417723605,-3243.39942185],\n[64.1628539495,-8.68094923605,-3243.39942185],\n[64.4373339495,-8.53772123605,-3243.39942185],\n[64.7118139495,-8.39449323605,-3243.39942185],\n[64.3180699495,-9.66948843605,-3243.39942185],\n[64.4930699495,-9.48303003605,-3243.39942185],\n[64.6680699495,-9.29657163605,-3243.39942185],\n[64.8430699495,-9.11011323605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[67.7508739495,-6.65386923605,-3243.39942185],\n[68.0529579495,-6.70178123605,-3243.39942185],\n[68.3550419495,-6.74969323605,-3243.39942185],\n[68.6571259495,-6.79760523605,-3243.39942185],\n[67.7508739495,-7.45230123605,-3243.39942185],\n[68.0529579495,-7.46428123605,-3243.39942185],\n[68.3550419495,-7.47626123605,-3243.39942185],\n[68.6571259495,-7.48824123605,-3243.39942185],\n[67.7508739495,-8.35855323605,-3243.39942185],\n[68.0451459495,-8.45803323605,-3243.39942185],\n[68.3394179495,-8.55751323605,-3243.39942185],\n[68.6336899495,-8.65699323605,-3243.39942185],\n[67.6196299495,-9.08510523605,-3243.39942185],\n[67.8144219495,-9.24031723605,-3243.39942185],\n[68.0092139495,-9.39552923605,-3243.39942185],\n[68.2040059495,-9.55074123605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[64.2586939495,-4.01948523605,-3243.39942185],\n[64.4732739495,-4.04344523605,-3243.39942185],\n[64.6878539495,-4.06740523605,-3243.39942185],\n[64.9024339495,-4.09136523605,-3243.39942185],\n[63.9243139495,-4.77104523605,-3243.39942185],\n[64.1868139495,-4.77886123605,-3243.39942185],\n[64.4493139495,-4.78667723605,-3243.39942185],\n[64.7118139495,-4.79449323605,-3243.39942185],\n[63.8055619495,-5.51011323605,-3243.39942185],\n[64.1076459495,-5.56584123605,-3243.39942185],\n[64.4097299495,-5.62156923605,-3243.39942185],\n[64.7118139495,-5.67729723605,-3243.39942185],\n[63.8055619495,-6.79760523605,-3243.39942185],\n[64.1076459495,-6.74969323605,-3243.39942185],\n[64.4097299495,-6.70178123605,-3243.39942185],\n[64.7118139495,-6.65386923605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[67.5961939495,-4.22260923605,-3243.39942185],\n[67.7868179495,-4.12729723605,-3243.39942185],\n[67.9774419495,-4.03198523605,-3243.39942185],\n[68.1680659495,-3.93667323605,-3243.39942185],\n[67.7508739495,-4.90230123605,-3243.39942185],\n[68.0331659495,-4.88250923605,-3243.39942185],\n[68.3154579495,-4.86271723605,-3243.39942185],\n[68.5977499495,-4.84292523605,-3243.39942185],\n[67.7508739495,-5.84292123605,-3243.39942185],\n[68.0529579495,-5.83094523605,-3243.39942185],\n[68.3550419495,-5.81896923605,-3243.39942185],\n[68.6571259495,-5.80699323605,-3243.39942185],\n[67.7508739495,-6.65386923605,-3243.39942185],\n[68.0529579495,-6.70178123605,-3243.39942185],\n[68.3550419495,-6.74969323605,-3243.39942185],\n[68.6571259495,-6.79760523605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[66.2368099495,-2.68510923605,-3243.39942185],\n[66.2326459495,-2.76427723605,-3243.39942185],\n[66.2284819495,-2.84344523605,-3243.39942185],\n[66.2243179495,-2.92261323605,-3243.39942185],\n[65.5461979495,-2.68510923605,-3243.39942185],\n[65.6014019495,-2.76427723605,-3243.39942185],\n[65.6566059495,-2.84344523605,-3243.39942185],\n[65.7118099495,-2.92261323605,-3243.39942185],\n[64.6993099495,-3.03042123605,-3243.39942185],\n[64.8342059495,-3.11792123605,-3243.39942185],\n[64.9691019495,-3.20542123605,-3243.39942185],\n[65.1039979495,-3.29292123605,-3243.39942185],\n[64.2586939495,-4.01948523605,-3243.39942185],\n[64.4732739495,-4.04344523605,-3243.39942185],\n[64.6878539495,-4.06740523605,-3243.39942185],\n[64.9024339495,-4.09136523605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[66.2243179495,-2.92261323605,-3243.39942185],\n[66.2284819495,-2.84344523605,-3243.39942185],\n[66.2326459495,-2.76427723605,-3243.39942185],\n[66.2368099495,-2.68510923605,-3243.39942185],\n[66.6774379495,-2.92261323605,-3243.39942185],\n[66.7253579495,-2.84344523605,-3243.39942185],\n[66.7732779495,-2.76427723605,-3243.39942185],\n[66.8211979495,-2.68510923605,-3243.39942185],\n[67.3696339495,-3.19760523605,-3243.39942185],\n[67.4727579495,-3.11375323605,-3243.39942185],\n[67.5758819495,-3.02990123605,-3243.39942185],\n[67.6790059495,-2.94604923605,-3243.39942185],\n[67.5961939495,-4.22260923605,-3243.39942185],\n[67.7868179495,-4.12729723605,-3243.39942185],\n[67.9774419495,-4.03198523605,-3243.39942185],\n[68.1680659495,-3.93667323605,-3243.39942185]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\ncylinder([-43.94771,26.22245,-3237.9],0.25,102.1193,0,4,\n[1.735945,-1.570796],true);\n\nsphere([-43.94771,26.22245,-3237.9],0.25,0,4,\n[1.405648,1.570796]);\n\nsphere([-43.94771,-74.50738,-3254.688],0.25,0,4,\n[1.735945,-1.570796]);\n\nP.push(new BezierPatch([\n[-41.9380929876,26.2224523183,-3237.90011462],\n[-41.9380929876,26.0399888586,-3236.80533386],\n[-42.8378300356,25.8920729991,-3235.91783871],\n[-43.9477119309,25.8920729991,-3235.91783871],\n[-41.9380929876,26.4049157779,-3238.99489538],\n[-42.6780142512,26.2224523183,-3237.90011462],\n[-43.9477119309,26.0137153055,-3236.64769255],\n[-45.0575938262,25.8920729991,-3235.91783871],\n[-42.8378300356,26.5528316374,-3239.88239054],\n[-43.9477119309,26.431189331,-3239.1525367],\n[-45.2174096106,26.2224523183,-3237.90011462],\n[-45.9573308741,26.0399888586,-3236.80533386],\n[-43.9477119309,26.5528316374,-3239.88239054],\n[-45.0575938262,26.5528316374,-3239.88239054],\n[-45.9573308741,26.4049157779,-3238.99489538],\n[-45.9573308741,26.2224523183,-3237.90011462]\n],0,5,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-43.94771,26.55283,-3239.882],\n[-43.94771,28.90869,-3238.811],\n[-43.94771,31.26455,-3237.739],\n[-43.94771,33.62041,-3236.667],\n[-45.05759,26.55283,-3239.882],\n[-44.68763,28.90869,-3238.811],\n[-44.31767,31.26455,-3237.739],\n[-43.94771,33.62041,-3236.667],\n[-45.95733,26.40492,-3238.995],\n[-45.28746,28.81008,-3238.219],\n[-44.61758,31.21524,-3237.443],\n[-43.94771,33.62041,-3236.667],\n[-45.95733,26.22245,-3237.9],\n[-45.28746,28.68844,-3237.489],\n[-44.61758,31.15442,-3237.078],\n[-43.94771,33.62041,-3236.667]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-41.93809,26.22245,-3237.9],\n[-42.60797,28.68844,-3237.489],\n[-43.27784,31.15442,-3237.078],\n[-43.94771,33.62041,-3236.667],\n[-41.93809,26.40492,-3238.995],\n[-42.60797,28.81008,-3238.219],\n[-43.27784,31.21524,-3237.443],\n[-43.94771,33.62041,-3236.667],\n[-42.83783,26.55283,-3239.882],\n[-43.20779,28.90869,-3238.811],\n[-43.57775,31.26455,-3237.739],\n[-43.94771,33.62041,-3236.667],\n[-43.94771,26.55283,-3239.882],\n[-43.94771,28.90869,-3238.811],\n[-43.94771,31.26455,-3237.739],\n[-43.94771,33.62041,-3236.667]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-43.94771,25.89207,-3235.918],\n[-43.94771,28.46818,-3236.168],\n[-43.94771,31.0443,-3236.417],\n[-43.94771,33.62041,-3236.667],\n[-42.83783,25.89207,-3235.918],\n[-43.20779,28.46818,-3236.168],\n[-43.57775,31.0443,-3236.417],\n[-43.94771,33.62041,-3236.667],\n[-41.93809,26.03999,-3236.805],\n[-42.60797,28.56679,-3236.759],\n[-43.27784,31.0936,-3236.713],\n[-43.94771,33.62041,-3236.667],\n[-41.93809,26.22245,-3237.9],\n[-42.60797,28.68844,-3237.489],\n[-43.27784,31.15442,-3237.078],\n[-43.94771,33.62041,-3236.667]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\nP.push(new BezierPatch([\n[-45.95733,26.22245,-3237.9],\n[-45.28746,28.68844,-3237.489],\n[-44.61758,31.15442,-3237.078],\n[-43.94771,33.62041,-3236.667],\n[-45.95733,26.03999,-3236.805],\n[-45.28746,28.56679,-3236.759],\n[-44.61758,31.0936,-3236.713],\n[-43.94771,33.62041,-3236.667],\n[-45.05759,25.89207,-3235.918],\n[-44.68763,28.46818,-3236.168],\n[-44.31767,31.0443,-3236.417],\n[-43.94771,33.62041,-3236.667],\n[-43.94771,25.89207,-3235.918],\n[-43.94771,28.46818,-3236.168],\n[-43.94771,31.0443,-3236.417],\n[-43.94771,33.62041,-3236.667]\n],0,5,[-68.9183,-74.75741,-3286.298],[68.9183,74.75742,-3177.923]));\n\ncylinder([-40.19771,33.86701,-3236.626],0.25,7.5,0,4,\n[1.570796,3.141593],true);\n\nsphere([-40.19771,33.86701,-3236.626],0.25,0,4,\n[1.570796,0]);\n\nsphere([-47.69771,33.86701,-3236.626],0.25,0,4,\n[1.570796,3.141593]);\n\nP.push(new BezierPatch([\n[-49.1639491792,-16.3596909282,-3245.65722164],\n[-49.4120943667,-16.2765367407,-3245.65722164],\n[-49.4316562417,-16.4124086157,-3245.65722164],\n[-49.6803573667,-16.2319079907,-3245.65722164],\n[-49.6886803511,-16.3490257563,-3245.65722164],\n[-49.6993633042,-16.4651263032,-3245.65722164],\n[-49.9545783667,-16.2319079907,-3245.65722164],\n[-49.9587423667,-16.3272199907,-3245.65722164],\n[-49.9629063667,-16.4225319907,-3245.65722164],\n[-49.9670703667,-16.5178439907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-51.6108303667,-19.4022239907,-3245.65722164],\n[-51.2019743667,-19.7079519907,-3245.65722164],\n[-50.7931183667,-20.0136799907,-3245.65722164],\n[-50.3842623667,-20.3194079907,-3245.65722164],\n[-51.6108303667,-19.4022239907,-3245.65722164],\n[-51.2945077001,-19.6576026574,-3245.65722164],\n[-51.0182890334,-19.8655893241,-3245.65722164],\n[-50.4675943667,-20.2641999907,-3245.65722164],\n[-51.6108303667,-19.4022239907,-3245.65722164],\n[-51.3870410334,-19.6072533241,-3245.65722164],\n[-51.2434597001,-19.7174986574,-3245.65722164],\n[-50.5509263667,-20.2089919907,-3245.65722164],\n[-51.6108303667,-19.4022239907,-3245.65722164],\n[-51.4795743667,-19.5569039907,-3245.65722164],\n[-51.4686303667,-19.5694079907,-3245.65722164],\n[-50.6342583667,-20.1537839907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-47.8561383667,-17.9834759907,-3245.65722164],\n[-48.0191583667,-17.9876399907,-3245.65722164],\n[-48.1821783667,-17.9918039907,-3245.65722164],\n[-48.3451983667,-17.9959679907,-3245.65722164],\n[-47.8561383667,-17.2053449907,-3245.65722164],\n[-48.0191583667,-17.1824299907,-3245.65722164],\n[-48.1821783667,-17.1595149907,-3245.65722164],\n[-48.3451983667,-17.1365999907,-3245.65722164],\n[-48.4195136167,-16.6091534907,-3245.65722164],\n[-48.6489098667,-16.5787169907,-3245.65722164],\n[-48.8783061167,-16.5482804907,-3245.65722164],\n[-49.1077023667,-16.5178439907,-3245.65722164],\n[-49.1639491792,-16.3596909282,-3245.65722164],\n[-49.4316562417,-16.4124086157,-3245.65722164],\n[-49.6993633042,-16.4651263032,-3245.65722164],\n[-49.9670703667,-16.5178439907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-51.5748903667,-17.7803519907,-3245.65722164],\n[-51.7379099667,-17.9157679907,-3245.65722164],\n[-51.9009295667,-18.0511839907,-3245.65722164],\n[-52.0639491667,-18.1865999907,-3245.65722164],\n[-51.5748903667,-17.0069039907,-3245.65722164],\n[-51.7379099667,-17.0386759907,-3245.65722164],\n[-51.9009295667,-17.0704479907,-3245.65722164],\n[-52.0639491667,-17.1022199907,-3245.65722164],\n[-50.7655143667,-16.5178439907,-3245.65722164],\n[-50.8884303667,-16.4225319907,-3245.65722164],\n[-51.0113463667,-16.3272199907,-3245.65722164],\n[-51.1342623667,-16.2319079907,-3245.65722164],\n[-49.9670703667,-16.5178439907,-3245.65722164],\n[-49.9629063667,-16.4225319907,-3245.65722164],\n[-49.9587423667,-16.3272199907,-3245.65722164],\n[-49.9545783667,-16.2319079907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-51.8373855667,-22.3584719907,-3245.65722164],\n[-52.0201979667,-22.3584719907,-3245.65722164],\n[-52.2030103667,-22.3584719907,-3245.65722164],\n[-52.3858227667,-22.3584719907,-3245.65722164],\n[-51.8373855667,-21.4287839907,-3245.65722164],\n[-52.0201979667,-21.4485759907,-3245.65722164],\n[-52.2030103667,-21.4683679907,-3245.65722164],\n[-52.3858227667,-21.4881599907,-3245.65722164],\n[-51.1576983667,-20.6772239907,-3245.65722164],\n[-51.3686355667,-20.6813919907,-3245.65722164],\n[-51.5795727667,-20.6855599907,-3245.65722164],\n[-51.7905099667,-20.6897279907,-3245.65722164],\n[-50.3842623667,-20.3194079907,-3245.65722164],\n[-50.4675943667,-20.2641999907,-3245.65722164],\n[-50.5509263667,-20.2089919907,-3245.65722164],\n[-50.6342583667,-20.1537839907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-49.3233303667,-19.8553439907,-3245.65722164],\n[-49.4024943667,-19.7996159907,-3245.65722164],\n[-49.4816583667,-19.7438879907,-3245.65722164],\n[-49.5608223667,-19.6881599907,-3245.65722164],\n[-48.7264503667,-19.5334679907,-3245.65722164],\n[-48.7743663667,-19.4579479907,-3245.65722164],\n[-48.8222823667,-19.3824279907,-3245.65722164],\n[-48.8701983667,-19.3069079907,-3245.65722164],\n[-47.8561383667,-18.9850319907,-3245.65722164],\n[-48.0191583667,-18.8975319907,-3245.65722164],\n[-48.1821783667,-18.8100319907,-3245.65722164],\n[-48.3451983667,-18.7225319907,-3245.65722164],\n[-47.8561383667,-17.9834759907,-3245.65722164],\n[-48.0191583667,-17.9876399907,-3245.65722164],\n[-48.1821783667,-17.9918039907,-3245.65722164],\n[-48.3451983667,-17.9959679907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-50.9436303667,-18.7819079907,-3245.65722164],\n[-51.1660303667,-18.9886799907,-3245.65722164],\n[-51.3884303667,-19.1954519907,-3245.65722164],\n[-51.6108303667,-19.4022239907,-3245.65722164],\n[-51.0983223667,-18.6756599907,-3245.65722164],\n[-51.3806139667,-18.7829519907,-3245.65722164],\n[-51.6629055667,-18.8902439907,-3245.65722164],\n[-51.9451971667,-18.9975359907,-3245.65722164],\n[-51.5748903667,-18.3647279907,-3245.65722164],\n[-51.7379099667,-18.4402479907,-3245.65722164],\n[-51.9009295667,-18.5157679907,-3245.65722164],\n[-52.0639491667,-18.5912879907,-3245.65722164],\n[-51.5748903667,-17.7803519907,-3245.65722164],\n[-51.7379099667,-17.9157679907,-3245.65722164],\n[-51.9009295667,-18.0511839907,-3245.65722164],\n[-52.0639491667,-18.1865999907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-49.9545783667,-24.0866019507,-3245.65722164],\n[-49.9587423667,-24.1938918307,-3245.65722164],\n[-49.9629063667,-24.3011817107,-3245.65722164],\n[-49.9670703667,-24.4084715907,-3245.65722164],\n[-50.9670783667,-24.0866019507,-3245.65722164],\n[-51.0389503667,-24.1938918307,-3245.65722164],\n[-51.1108223667,-24.3011817107,-3245.65722164],\n[-51.1826943667,-24.4084715907,-3245.65722164],\n[-51.8373855667,-23.3475371907,-3245.65722164],\n[-52.0201979667,-23.4392047907,-3245.65722164],\n[-52.2030103667,-23.5308723907,-3245.65722164],\n[-52.3858227667,-23.6225399907,-3245.65722164],\n[-51.8373855667,-22.3584719907,-3245.65722164],\n[-52.0201979667,-22.3584719907,-3245.65722164],\n[-52.2030103667,-22.3584719907,-3245.65722164],\n[-52.3858227667,-22.3584719907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-48.0826983667,-22.5615959907,-3245.65722164],\n[-47.8998863667,-22.4345119907,-3245.65722164],\n[-47.7170743667,-22.3074279907,-3245.65722164],\n[-47.5342623667,-22.1803439907,-3245.65722164],\n[-48.0826983667,-23.4678515907,-3245.65722164],\n[-47.8998863667,-23.4558715907,-3245.65722164],\n[-47.7170743667,-23.4438915907,-3245.65722164],\n[-47.5342623667,-23.4319115907,-3245.65722164],\n[-49.0014423667,-24.0866019507,-3245.65722164],\n[-48.8821743667,-24.1938918307,-3245.65722164],\n[-48.7629063667,-24.3011817107,-3245.65722164],\n[-48.6436383667,-24.4084715907,-3245.65722164],\n[-49.9545783667,-24.0866019507,-3245.65722164],\n[-49.9587423667,-24.1938918307,-3245.65722164],\n[-49.9629063667,-24.3011817107,-3245.65722164],\n[-49.9670703667,-24.4084715907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-49.56082,-19.68816,-3245.657],\n[-50.94363,-18.78191,-3245.657],\n[-51.61083,-19.40222,-3245.657],\n[-50.38426,-20.31941,-3245.657]\n],0,4,[-51.61083,-20.31941,-3245.657],[-49.56082,-18.78191,-3245.657]));\n\nP.push(new BezierPatch([\n[-49.3233303667,-19.8553439907,-3245.65722164],\n[-49.4024943667,-19.7996159907,-3245.65722164],\n[-49.6769743667,-20.0100319907,-3245.65722164],\n[-49.4816583667,-19.7438879907,-3245.65722164],\n[-49.7561383667,-19.9543039907,-3245.65722164],\n[-50.0306183667,-20.1647199907,-3245.65722164],\n[-49.5608223667,-19.6881599907,-3245.65722164],\n[-49.8353023667,-19.8985759907,-3245.65722164],\n[-50.1097823667,-20.1089919907,-3245.65722164],\n[-50.3842623667,-20.3194079907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-48.9405063667,-21.2615999907,-3245.65722164],\n[-49.0681143667,-20.7928479907,-3245.65722164],\n[-49.1957223667,-20.3240959907,-3245.65722164],\n[-49.3233303667,-19.8553439907,-3245.65722164],\n[-48.6311343667,-21.4647239907,-3245.65722164],\n[-48.5514463667,-21.1188919907,-3245.65722164],\n[-48.4717583667,-20.7730599907,-3245.65722164],\n[-48.3920703667,-20.4272279907,-3245.65722164],\n[-48.0826983667,-21.8334719907,-3245.65722164],\n[-47.8998863667,-21.5433679907,-3245.65722164],\n[-47.7170743667,-21.2532639907,-3245.65722164],\n[-47.5342623667,-20.9631599907,-3245.65722164],\n[-48.0826983667,-22.5615959907,-3245.65722164],\n[-47.8998863667,-22.4345119907,-3245.65722164],\n[-47.7170743667,-22.3074279907,-3245.65722164],\n[-47.5342623667,-22.1803439907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\nP.push(new BezierPatch([\n[-49.3233303667,-19.8553439907,-3245.65722164],\n[-49.6769743667,-20.0100319907,-3245.65722164],\n[-49.1957223667,-20.3240959907,-3245.65722164],\n[-50.0306183667,-20.1647199907,-3245.65722164],\n[-49.5493663667,-20.4787839907,-3245.65722164],\n[-49.0681143667,-20.7928479907,-3245.65722164],\n[-50.3842623667,-20.3194079907,-3245.65722164],\n[-49.9030103667,-20.6334719907,-3245.65722164],\n[-49.4217583667,-20.9475359907,-3245.65722164],\n[-48.9405063667,-21.2615999907,-3245.65722164]\n],0,4,[-68.918299892,-74.7574070254,-3286.2976179],[68.918299892,74.757423708,-3177.92322787]));\n\n</script>\n</head>\n\n<body style=\"overflow: hidden;\" onload=\"webGLStart();\">\n<canvas id=\"Asymptote\" width=\"139\" height=\"151\" style=\"border: none;\">\n</canvas>\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/dynamic_subs/dynamic_substitutions.xml",
    "content": "<xml>\n  <dynamic-substitution id=\"dynamic-fitb-simple-formula\">\n    <eval-subst obj=\"x1\">-5</eval-subst>\n    <eval-subst obj=\"x2\">-2</eval-subst>\n    <eval-subst obj=\"x3\">2</eval-subst>\n    <eval-subst obj=\"y0\">5</eval-subst>\n    <eval-subst obj=\"cubic\">-\\frac{1}{4} \\left(x+5\\right) \\left(x+2\\right) \\left(x-2\\right)</eval-subst>\n    <eval-subst obj=\"base_cubic\">\\left(x+5\\right) \\left(x+2\\right) \\left(x-2\\right)</eval-subst>\n    <eval-subst obj=\"base_yint\">-20</eval-subst>\n    <eval-subst obj=\"A\">-\\frac{1}{4}</eval-subst>\n  </dynamic-substitution>\n  <dynamic-substitution id=\"function-decomposition\">\n    <eval-subst obj=\"composition\">4 \\left(-x-3\\right)^{3}+5</eval-subst>\n    <eval-subst obj=\"outerFormula\">4 x^{3}+5</eval-subst>\n    <eval-subst obj=\"innerFormula\">-1 x-3</eval-subst>\n  </dynamic-substitution>\n</xml>"
  },
  {
    "path": "examples/sample-article/gen/prefigure/prefigure-fibonacci-a-annotations.xml",
    "content": "<diagram>\n  <annotations>\n    <annotation id=\"prefigure-fibonacci-a-figure\" speech2=\"The set of Fibonacci tiles consists of two tiles denoted by L and S.\">\n      <grouped>prefigure-fibonacci-a-figure</grouped>\n      <position>1</position>\n      <children>\n        <active>prefigure-fibonacci-a-top</active>\n        <active>prefigure-fibonacci-a-arrows</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-a-top</active>\n        <active>prefigure-fibonacci-a-arrows</active>\n      </components>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-top\" speech2=\"The ratio of the lengths of the tiles is the golden ratio so one tile L is long and the other S is short\">\n      <grouped>prefigure-fibonacci-a-top</grouped>\n      <position>1</position>\n      <children>\n        <active>prefigure-fibonacci-a-top-L</active>\n        <active>prefigure-fibonacci-a-top-S</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-a-top-L</active>\n        <active>prefigure-fibonacci-a-top-S</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-a-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-top-L\" speech2=\"The long tile L\">\n      <active>prefigure-fibonacci-a-top-L</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-top</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-top-S\" speech2=\"The short tile S\">\n      <active>prefigure-fibonacci-a-top-S</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-top</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-arrows\" speech2=\"A process called deflation replaces each tile by a new set of tiles\">\n      <grouped>prefigure-fibonacci-a-arrows</grouped>\n      <position>2</position>\n      <children>\n        <active>prefigure-fibonacci-a-left-deflate</active>\n        <active>prefigure-fibonacci-a-right-deflate</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-a-left-deflate</active>\n        <active>prefigure-fibonacci-a-right-deflate</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-a-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-left-deflate\" speech2=\"A long tile is replaced by a long and a short tile\">\n      <grouped>prefigure-fibonacci-a-left-deflate</grouped>\n      <position>1</position>\n      <components>\n        <passive>prefigure-fibonacci-a-left-arrow</passive>\n        <passive>prefigure-fibonacci-a-top-L</passive>\n        <active>prefigure-fibonacci-a-bottom-L</active>\n      </components>\n      <children>\n        <active>prefigure-fibonacci-a-bottom-L</active>\n      </children>\n      <parents>\n        <grouped>prefigure-fibonacci-a-arrows</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-left-arrow\">\n      <passive>prefigure-fibonacci-a-left-arrow</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-left-deflate</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-top-L\">\n      <passive>prefigure-fibonacci-a-top-L</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-left-deflate</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-bottom-L\" speech2=\"The length of the new tiles is scaled by the reciprocal of the golden ratio\">\n      <grouped>prefigure-fibonacci-a-bottom-L</grouped>\n      <position>1</position>\n      <children>\n        <active>prefigure-fibonacci-a-bottom-LL</active>\n        <active>prefigure-fibonacci-a-bottom-LS</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-a-bottom-LL</active>\n        <active>prefigure-fibonacci-a-bottom-LS</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-a-left-deflate</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-bottom-LL\" speech2=\"The new long tile is on the left\">\n      <active>prefigure-fibonacci-a-bottom-LL</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-bottom-L</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-bottom-LS\" speech2=\"The new short tile is on the right\">\n      <active>prefigure-fibonacci-a-bottom-LS</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-bottom-L</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-right-deflate\" speech2=\"A short tile is replaced by a single long tile\">\n      <grouped>prefigure-fibonacci-a-right-deflate</grouped>\n      <position>2</position>\n      <components>\n        <passive>prefigure-fibonacci-a-right-arrow</passive>\n        <passive>prefigure-fibonacci-a-top-S</passive>\n        <active>prefigure-fibonacci-a-bottom-S</active>\n      </components>\n      <children>\n        <active>prefigure-fibonacci-a-bottom-S</active>\n      </children>\n      <parents>\n        <grouped>prefigure-fibonacci-a-arrows</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-right-arrow\">\n      <passive>prefigure-fibonacci-a-right-arrow</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-right-deflate</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-top-S\">\n      <passive>prefigure-fibonacci-a-top-S</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-right-deflate</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-a-bottom-S\" speech2=\"The length of the new tile is again scaled by the reciprocal of the golden ratio\">\n      <active>prefigure-fibonacci-a-bottom-S</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-a-right-deflate</grouped>\n      </parents>\n    </annotation>\n  </annotations>\n</diagram>\n"
  },
  {
    "path": "examples/sample-article/gen/prefigure/prefigure-fibonacci-b-annotations.xml",
    "content": "<diagram>\n  <annotations>\n    <annotation id=\"prefigure-fibonacci-b-figure\" speech2=\"A Fibonacci tiling is a horizontal sequence of tiles obtained by deflating the tiles in another Fibonacci tiling.  We will explain why these tilings are aperiodic.\">\n      <grouped>prefigure-fibonacci-b-figure</grouped>\n      <position>1</position>\n      <components>\n        <passive>prefigure-fibonacci-b-down-arrows</passive>\n        <passive>prefigure-fibonacci-b-top-down-arrow</passive>\n        <active>prefigure-fibonacci-b-tiling-row_0</active>\n        <active>prefigure-fibonacci-b-tiling-row_1</active>\n        <active>prefigure-fibonacci-b-tiling-row_2</active>\n        <active>prefigure-fibonacci-b-bottom-tilings</active>\n        <active>prefigure-fibonacci-b-periodic-0</active>\n        <active>prefigure-fibonacci-b-periodic-1</active>\n        <active>prefigure-fibonacci-b-periodic-2</active>\n      </components>\n      <children>\n        <active>prefigure-fibonacci-b-tiling-row_0</active>\n        <active>prefigure-fibonacci-b-tiling-row_1</active>\n        <active>prefigure-fibonacci-b-tiling-row_2</active>\n        <active>prefigure-fibonacci-b-bottom-tilings</active>\n        <active>prefigure-fibonacci-b-periodic-0</active>\n        <active>prefigure-fibonacci-b-periodic-1</active>\n        <active>prefigure-fibonacci-b-periodic-2</active>\n      </children>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-down-arrows\">\n      <passive>prefigure-fibonacci-b-down-arrows</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-top-down-arrow\">\n      <passive>prefigure-fibonacci-b-top-down-arrow</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_0\" speech2=\"We begin with this Fibonacci tiling\">\n      <active>prefigure-fibonacci-b-tiling-row_0</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_1\" speech2=\"Our first Fibonacci tiling is obtained by deflating this second tiling\">\n      <grouped>prefigure-fibonacci-b-tiling-row_1</grouped>\n      <position>2</position>\n      <components>\n        <passive>prefigure-fibonacci-b-down-arrow-row_0</passive>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-down-arrow-row_0\">\n      <passive>prefigure-fibonacci-b-down-arrow-row_0</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-tiling-row_1</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_2\" speech2=\"The second tiling is obtained by deflating this third tiling, so we see that there is an infinite hierarchy of tilings.\">\n      <grouped>prefigure-fibonacci-b-tiling-row_2</grouped>\n      <position>3</position>\n      <components>\n        <passive>prefigure-fibonacci-b-down-arrow-row_1</passive>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-down-arrow-row_1\">\n      <passive>prefigure-fibonacci-b-down-arrow-row_1</passive>\n      <position>0</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-tiling-row_2</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-bottom-tilings\" speech2=\"Beginning with one tiling, the tiling above is uniquely determined.\">\n      <grouped>prefigure-fibonacci-b-bottom-tilings</grouped>\n      <position>4</position>\n      <children>\n        <active>prefigure-fibonacci-b-tiling-row_0</active>\n        <active>prefigure-fibonacci-b-tiling-row_1</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-b-tiling-row_0</active>\n        <active>prefigure-fibonacci-b-tiling-row_1</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_0\" speech2=\"Consider this Fibonacci tiling.\">\n      <active>prefigure-fibonacci-b-tiling-row_0</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-bottom-tilings</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_1\" speech2=\"By inverting the deflation rules, we can uniquely determine the tiling above.\">\n      <active>prefigure-fibonacci-b-tiling-row_1</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-bottom-tilings</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-periodic-0\" speech2=\"Suppose that a Fibonacci tiling is periodic under a horizontal translation.\">\n      <grouped>prefigure-fibonacci-b-periodic-0</grouped>\n      <position>5</position>\n      <children>\n        <active>prefigure-fibonacci-b-tiling-row_0</active>\n        <active>prefigure-fibonacci-b-right-arrow-row_0</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-b-tiling-row_0</active>\n        <active>prefigure-fibonacci-b-right-arrow-row_0</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_0\" speech2=\"For example, suppose this Fibonacci tiling is periodic.\">\n      <active>prefigure-fibonacci-b-tiling-row_0</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-periodic-0</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-right-arrow-row_0\" speech2=\"And that this horizontal translation leaves the tiling unchanged.\">\n      <active>prefigure-fibonacci-b-right-arrow-row_0</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-periodic-0</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-periodic-1\" speech2=\"Because the inflated tiling above is unique, it must also be periodic under the same translation.\">\n      <grouped>prefigure-fibonacci-b-periodic-1</grouped>\n      <position>6</position>\n      <children>\n        <active>prefigure-fibonacci-b-tiling-row_1</active>\n        <active>prefigure-fibonacci-b-right-arrow-row_1</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-b-tiling-row_1</active>\n        <active>prefigure-fibonacci-b-right-arrow-row_1</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_1\" speech2=\"This Fibonacci tiling is also periodic.\">\n      <active>prefigure-fibonacci-b-tiling-row_1</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-periodic-1</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-right-arrow-row_1\" speech2=\"The same horizontal translation leaves the tiling unchanged.\">\n      <active>prefigure-fibonacci-b-right-arrow-row_1</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-periodic-1</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-periodic-2\" speech2=\"Consequently, every tiling in the hierarchy is periodic by this translation.  This is not possible, which means the original tiling cannot be periodic.\">\n      <grouped>prefigure-fibonacci-b-periodic-2</grouped>\n      <position>7</position>\n      <children>\n        <active>prefigure-fibonacci-b-tiling-row_2</active>\n        <active>prefigure-fibonacci-b-right-arrow-row_2</active>\n      </children>\n      <components>\n        <active>prefigure-fibonacci-b-tiling-row_2</active>\n        <active>prefigure-fibonacci-b-right-arrow-row_2</active>\n      </components>\n      <parents>\n        <grouped>prefigure-fibonacci-b-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-tiling-row_2\" speech2=\"The size of the tiles grows exponentially as we move up in the hierarchy.\">\n      <active>prefigure-fibonacci-b-tiling-row_2</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-periodic-2</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-fibonacci-b-right-arrow-row_2\" speech2=\"Eventually the tiles are longer than the translation.\">\n      <active>prefigure-fibonacci-b-right-arrow-row_2</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-fibonacci-b-periodic-2</grouped>\n      </parents>\n    </annotation>\n  </annotations>\n</diagram>\n"
  },
  {
    "path": "examples/sample-article/gen/prefigure/prefigure-tangent-annotations.xml",
    "content": "<diagram>\n  <annotations>\n    <annotation id=\"prefigure-tangent-figure\" speech2=\"The graph of a function and its tangent line at the point a equals 1\">\n      <grouped>prefigure-tangent-figure</grouped>\n      <position>1</position>\n      <children>\n        <active>prefigure-tangent-grid-axes</active>\n        <active>prefigure-tangent-graph-tangent</active>\n      </children>\n      <components>\n        <active>prefigure-tangent-grid-axes</active>\n        <active>prefigure-tangent-graph-tangent</active>\n      </components>\n    </annotation>\n    <annotation id=\"prefigure-tangent-grid-axes\" speech2=\"The coordinate grid and axes\">\n      <grouped>prefigure-tangent-grid-axes</grouped>\n      <position>1</position>\n      <children>\n        <active>prefigure-tangent-grid</active>\n        <active>prefigure-tangent-axes</active>\n      </children>\n      <components>\n        <active>prefigure-tangent-grid</active>\n        <active>prefigure-tangent-axes</active>\n      </components>\n      <parents>\n        <grouped>prefigure-tangent-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-tangent-grid\" speech2=\"The coordinate grid\">\n      <active>prefigure-tangent-grid</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-tangent-grid-axes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-tangent-axes\" speech2=\"The coordinate axes\">\n      <active>prefigure-tangent-axes</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-tangent-grid-axes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-tangent-graph-tangent\" speech2=\"The graph and its tangent line\">\n      <grouped>prefigure-tangent-graph-tangent</grouped>\n      <position>2</position>\n      <children>\n        <active>prefigure-tangent-graph</active>\n        <active>prefigure-tangent-point</active>\n        <active>prefigure-tangent-tangent</active>\n      </children>\n      <components>\n        <active>prefigure-tangent-graph</active>\n        <active>prefigure-tangent-point</active>\n        <active>prefigure-tangent-tangent</active>\n      </components>\n      <parents>\n        <grouped>prefigure-tangent-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-tangent-graph\" speech2=\"The graph of the function f\" sonify=\"yes\">\n      <active>prefigure-tangent-graph</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-tangent-graph-tangent</grouped>\n      </parents>\n      <sonification>\n        <ACTIVE>prefigure-tangent-graph</ACTIVE>\n      </sonification>\n    </annotation>\n    <annotation id=\"prefigure-tangent-point\" speech2=\"The point a comma f of a\">\n      <active>prefigure-tangent-point</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-tangent-graph-tangent</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-tangent-tangent\" speech2=\"The tangent line to the graph of f at the point\">\n      <active>prefigure-tangent-tangent</active>\n      <position>3</position>\n      <parents>\n        <grouped>prefigure-tangent-graph-tangent</grouped>\n      </parents>\n    </annotation>\n  </annotations>\n</diagram>\n"
  },
  {
    "path": "examples/sample-article/gen/prefigure/prefigure-worksheet-vectors-annotations.xml",
    "content": "<diagram>\n  <annotations>\n    <annotation id=\"prefigure-worksheet-vectors-figure\" speech2=\"Two vectors labeled a and b in the coordinate plane\">\n      <grouped>prefigure-worksheet-vectors-figure</grouped>\n      <position>1</position>\n      <children>\n        <active>prefigure-worksheet-vectors-grid</active>\n        <active>prefigure-worksheet-vectors-axes</active>\n        <active>prefigure-worksheet-vectors-vector-a</active>\n        <active>prefigure-worksheet-vectors-vector-b</active>\n      </children>\n      <components>\n        <active>prefigure-worksheet-vectors-grid</active>\n        <active>prefigure-worksheet-vectors-axes</active>\n        <active>prefigure-worksheet-vectors-vector-a</active>\n        <active>prefigure-worksheet-vectors-vector-b</active>\n      </components>\n    </annotation>\n    <annotation id=\"prefigure-worksheet-vectors-grid\" speech2=\"A one by one grid\">\n      <active>prefigure-worksheet-vectors-grid</active>\n      <position>1</position>\n      <parents>\n        <grouped>prefigure-worksheet-vectors-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-worksheet-vectors-axes\" speech2=\"A set of labeled axes\">\n      <active>prefigure-worksheet-vectors-axes</active>\n      <position>2</position>\n      <parents>\n        <grouped>prefigure-worksheet-vectors-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-worksheet-vectors-vector-a\" speech2=\"The vector a\">\n      <active>prefigure-worksheet-vectors-vector-a</active>\n      <position>3</position>\n      <parents>\n        <grouped>prefigure-worksheet-vectors-figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"prefigure-worksheet-vectors-vector-b\" speech2=\"The vector b\">\n      <active>prefigure-worksheet-vectors-vector-b</active>\n      <position>4</position>\n      <parents>\n        <grouped>prefigure-worksheet-vectors-figure</grouped>\n      </parents>\n    </annotation>\n  </annotations>\n</diagram>\n"
  },
  {
    "path": "examples/sample-article/gen/problems/mom-2168.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<myopenmath xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" id=\"2168\">\n<statement>\n<image width=\"50%\" pi:generated=\"problems/images/mom-2168-1.png\"/>\n<p>\nFind the equation of the line in the form <m>\\displaystyle{y}={m}{x}+{b}.</m></p>\n<p>\nAnswer: <m>\\displaystyle{y}=</m> <input type=\"text\" style=\"width:13ch\" name=\"qn0\" id=\"qn0\" value=\"\" autocomplete=\"off\" aria-label=\"Question 1\" class=\"text\"/>\n</p>\n<p>  \n\n</p>\n</statement>\n<solution>\n<p><ul><li><m>\\displaystyle{y}=-{2}{x}-{6}</m></li></ul></p>\n</solution>\n</myopenmath>"
  },
  {
    "path": "examples/sample-article/gen/problems/mom-2572.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<myopenmath xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" id=\"2572\">\n<statement>\n<p>\nTry to evaluate <m>\\displaystyle-{\\left(-{100}\\right)}^{{-{1}{/}{2}}}</m> without using a calculator. Enter your answer as an integer or reduced fraction (no decimals). Enter DNE if the number is not real.\n</p>\n<p>\nThe value is <input type=\"text\" style=\"width:25ch\" name=\"qn0\" id=\"qn0\" value=\"\" autocomplete=\"off\" aria-label=\"Question 1\" class=\"text\"/>   \n</p>\n</statement>\n<solution>\n<p><ul><li>DNE</li></ul></p>\n</solution>\n</myopenmath>"
  },
  {
    "path": "examples/sample-article/gen/problems/mom-7492.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<myopenmath xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" id=\"7492\">\n<statement>\n<p>\nYou wish to determine if there is a  linear correlation between the two variables at a significance level of <m>\\displaystyle\\alpha={0.001}</m>.\nYou have the following bivariate data set.\n</p><tabular> <row><cell>x</cell><cell>y</cell></row><row><cell>34.3</cell><cell>86.5</cell></row><row><cell>42</cell><cell>45.6</cell></row><row><cell>35.5</cell><cell>46.7</cell></row><row><cell>42.2</cell><cell>48</cell></row><row><cell>0.7</cell><cell>138.9</cell></row><row><cell>78.6</cell><cell>-64.7</cell></row><row><cell>43.5</cell><cell>50.6</cell></row><row><cell>68.2</cell><cell>-45</cell></row><row><cell>50.2</cell><cell>17.4</cell></row><row><cell>39.1</cell><cell>64.9</cell></row><row><cell>78.3</cell><cell>-105.8</cell></row><row><cell>30.2</cell><cell>47.5</cell></row><row><cell>52.7</cell><cell>19.4</cell></row><row><cell>40.8</cell><cell>51</cell></row><row><cell>21.5</cell><cell>72.1</cell></row><row><cell>57</cell><cell>30.6</cell></row><row><cell>67</cell><cell>-40.2</cell></row><row><cell>58.3</cell><cell>-9.7</cell></row><row><cell>30.8</cell><cell>90.9</cell></row><row><cell>45.5</cell><cell>34.3</cell></row><row><cell>3.3</cell><cell>168.3</cell></row><row><cell>43</cell><cell>23.1</cell></row><row><cell>34.8</cell><cell>29.2</cell></row><row><cell>30.9</cell><cell>104.8</cell></row><row><cell>13.1</cell><cell>101.6</cell></row><row><cell>60.9</cell><cell>-68.9</cell></row><row><cell>30.9</cell><cell>64.2</cell></row><row><cell>41.4</cell><cell>60.3</cell></row><row><cell>35.3</cell><cell>20.8</cell></row><row><cell>49.8</cell><cell>38.7</cell></row><row><cell>39</cell><cell>59.5</cell></row><row><cell>31.9</cell><cell>92.5</cell></row><row><cell>18.9</cell><cell>113.9</cell></row><row><cell>53.6</cell><cell>17.6</cell></row><row><cell>59</cell><cell>-40.4</cell></row></tabular><p>\ndownload link provided here:  <url href=\"denied:data:text/csv;charset=UTF-8,%22x%22%2C%22y%22%0A34.3%2C86.5%0A42%2C45.6%0A35.5%2C46.7%0A42.2%2C48%0A0.7%2C138.9%0A78.6%2C-64.7%0A43.5%2C50.6%0A68.2%2C-45%0A50.2%2C17.4%0A39.1%2C64.9%0A78.3%2C-105.8%0A30.2%2C47.5%0A52.7%2C19.4%0A40.8%2C51%0A21.5%2C72.1%0A57%2C30.6%0A67%2C-40.2%0A58.3%2C-9.7%0A30.8%2C90.9%0A45.5%2C34.3%0A3.3%2C168.3%0A43%2C23.1%0A34.8%2C29.2%0A30.9%2C104.8%0A13.1%2C101.6%0A60.9%2C-68.9%0A30.9%2C64.2%0A41.4%2C60.3%0A35.3%2C20.8%0A49.8%2C38.7%0A39%2C59.5%0A31.9%2C92.5%0A18.9%2C113.9%0A53.6%2C17.6%0A59%2C-40.4\">Download CSV</url></p>\n<p>\nWhat is the correlation coefficient for this data set? </p>\n<p>\n       <em>r</em> = <input type=\"text\" style=\"width:13ch\" name=\"qn1000\" id=\"qn1000\" value=\"\" autocomplete=\"off\" aria-label=\"Question 1 Part 1 of 3\" class=\"text\"/> </p>\n<p>\n(report answer accurate to at least 3 decimal places)</p>\n<p>\nTo find the p-value for a correlation coefficient, you need to convert to a <em>t</em>-score:\n  <m>\\displaystyle{t}={r}\\cdot\\sqrt{{\\frac{{{n}-{2}}}{{{1}-{r}^{{2}}}}}}</m>\nThis <em>t</em>-score is from a <em>t</em>-distribution with <m>\\displaystyle{n}-{2}</m> degrees of freedom.</p>\n<p>\nWhat is the p-value for this correlation coefficient? </p>\n<p>\n       p-value = <input type=\"text\" style=\"width:15.4ch\" name=\"qn1001\" id=\"qn1001\" value=\"\" autocomplete=\"off\" aria-label=\"Question 1 Part 2 of 3\" class=\"text\"/> </p>\n<p>\n(report answer accurate to at least 4 decimal places)</p>\n<p>\nYour final conclusion is that... </p>\n<p><ol style=\"list-style-type:upper-alpha\"><li>There is sufficient sample evidence to support the claim that there is a statistically significant  correlation between the two variables.</li> \n<li>There is insufficient sample evidence to support the claim the there is a  correlation between the two variables.</li> \n</ol></p>\n\n\n</statement>\n<solution>\n<p><ul><li>-0.928</li><li>0</li><li>A: There is sufficient sample evidence to support the claim that there is a statistically significant  correlation between the two variables.</li></ul></p>\n</solution>\n</myopenmath>"
  },
  {
    "path": "examples/sample-article/gen/problems/mom-930582.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<myopenmath xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" id=\"930582\">\n<statement>\n<p>The right circular conical tank shown has height 4.00 m and top radius <m>\\displaystyle{1.40}</m> m. It is filled with water to a height of <m>\\displaystyle{3.50}</m> m. The cross section is a right triangle with height 4.00 m and top side <m>\\displaystyle{1.40}</m> m. Inside is another right triangle with height <m>\\displaystyle{3.50}</m> m.</p>\n<image width=\"40%\" pi:generated=\"problems/images/mom-930582-1\"/> <image width=\"40%\" pi:generated=\"problems/images/mom-930582-2\"/>\n<p>What is the volume of water? <input type=\"text\" style=\"width:5.8ch\" name=\"qn1000\" id=\"qn1000\" value=\"\" autocomplete=\"off\" aria-label=\"Question 1 Part 1 of 2\" class=\"text\"/> m</p>\n<p>How much water must be added to fill the tank? <input type=\"text\" style=\"width:5.8ch\" name=\"qn1001\" id=\"qn1001\" value=\"\" autocomplete=\"off\" aria-label=\"Question 1 Part 2 of 2\" class=\"text\"/> <m>\\displaystyle\\text{m}^{{3}}</m></p>\n\n</statement>\n<solution>\n<p><ul><li>5.55</li><li>2.66</li></ul></p>\n</solution>\n</myopenmath>"
  },
  {
    "path": "examples/sample-article/gen/qrcode/airborne-midnight-1-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=UYPoMjR6-Ao</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-side-by-side-gallery.html#airborne-midnight-1</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/audio-bach-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/audio-bach.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-audio.html#audio-bach</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/audio-organ-finale-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/audio-organ-finale.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-audio.html#audio-organ-finale</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/audio-piano-trill-two-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/audio-piano-trill-two.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-audio.html#audio-piano-trill-two</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/audio-piano-trill-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/audio-piano-trill.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-audio.html#audio-piano-trill</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/bareilles-love-song-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=qi7Yh16dA0w\\&amp;start=60\\&amp;end=120</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#bareilles-love-song</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-best-format-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-best-format.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-best-format</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-frame-one-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-frame-one.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-frame-one</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-margins-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-margins.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-margins</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-mp4-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-mp4.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-mp4</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-ogg-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-ogg.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-ogg</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-subtitles-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-subtitles.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-subtitles</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-two-subtitles-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-two-subtitles.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-two-subtitles</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/big-buck-bunny-webm-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/big-buck-bunny-webm.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#big-buck-bunny-webm</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/calcplot3d-full-application-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/calcplot3d-full-application.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#calcplot3d-full-application</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/calcplot3d-intersection-planes-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/calcplot3d-intersection-planes.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#calcplot3d-intersection-planes</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/calcplot3d-probability-wavefunction-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/calcplot3d-probability-wavefunction.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#calcplot3d-probability-wavefunction</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/desmos-natural-log-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/desmos-natural-log.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#desmos-natural-log</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/drone-flight-clip-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=VsHMjWORFvI\\&amp;start=54\\&amp;end=72</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#drone-flight-clip</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/drone-flight-full-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=VsHMjWORFvI</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#drone-flight-full</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/drone-flight-sbs-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=VsHMjWORFvI</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#drone-flight-sbs</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-SAS-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-SAS.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#geogebra-SAS</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-SAS-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-astroid-original-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-astroid-original.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#geogebra-astroid-original</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-astroid-original-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-astroid-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-astroid.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#geogebra-astroid</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-astroid-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-cycloid-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-cycloid.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#geogebra-cycloid</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-cycloid-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-right-triangle-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-right-triangle.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#geogebra-right-triangle</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-right-triangle-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-seed-head-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-seed-head.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#geogebra-seed-head</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-seed-head-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/geogebra-train-distance-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/geogebra-train-distance.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#geogebra-train-distance</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/geogebra-train-distance-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ggb_3d-direction-vector_interactive-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ggb_3d-direction-vector_interactive.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#ggb_3d-direction-vector_interactive</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/ggb_3d-direction-vector_interactive-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-animation-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-animation.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-animation</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-animation-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-archimedian-spiral-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-archimedian-spiral.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-archimedian-spiral</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-archimedian-spiral-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-bspline-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-bspline.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-bspline</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-bspline-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-circuitjs-attribute-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-circuitjs-attribute.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-circuitjs-attribute</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-circuitjs-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-circuitjs.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-circuitjs</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-d3-collision-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-d3-collision.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-d3-collision</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-d3-collision-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-d3-graph-layout-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-d3-graph-layout.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-d3-graph-layout</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-d3-graph-layout-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-d3-welsh-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-d3-welsh.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-d3-welsh</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-d3-welsh-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-doenetml-example-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-doenetml-example.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-doenetml-example</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-doenetml-example-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-eigenvectors-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-eigenvectors.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-eigenvectors</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-eigenvectors-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-fermats-spiral-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-fermats-spiral.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-fermats-spiral</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-fermats-spiral-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-infinity-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-infinity.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-infinity</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-infinity-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-circuitjs-big-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-circuitjs-big.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-circuitjs-big</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-circuitjs-small-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-circuitjs-small.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-circuitjs-small</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-desmos-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-desmos.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-desmos</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-grow-one-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-grow-one.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-grow-one</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-grow-one-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-grow-three-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-grow-three.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-grow-three</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-grow-three-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-grow-two-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-grow-two.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-grow-two</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-grow-two-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-map-medium-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-map-medium.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-map-medium</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-map-tall-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-map-tall.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-map-tall</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-layout-map-wide-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-layout-map-wide.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-layout-map-wide</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-map-california-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-map-california.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-map-california</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-numerical-integral-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-numerical-integral.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-numerical-integral</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-numerical-integral-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-oscillating-secant-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-oscillating-secant.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-oscillating-secant</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-oscillating-secant-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-phet-fourier-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-phet-fourier.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-server.html#interactive-phet-fourier</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-piecewise-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-piecewise.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-piecewise</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-piecewise-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-quadratic-tangent-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-quadratic-tangent.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-quadratic-tangent</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-quadratic-tangent-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-sage-jupyter-iframe-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-sage-jupyter-iframe.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-sage-jupyter-iframe</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-simple-eigenvector-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-simple-eigenvector.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-simple-eigenvector</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-simple-eigenvector-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-simple-js-script-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-simple-js-script.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-simple-js-script</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-simple-js-script-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-slopes-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-slopes.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-slopes</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-slopes-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-threejs-catenoid-surface-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-threejs-catenoid-surface.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-threejs-catenoid-surface</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-threejs-catenoid-surface-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/interactive-threejs-saddle-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/interactive-threejs-saddle.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#interactive-threejs-saddle</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/interactive-threejs-saddle-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/js-module-test-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/js-module-test.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#js-module-test</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/js-module-test-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/kinematics-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/kinematics.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-authored.html#kinematics</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/sample-article/html/kinematics-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/led-zeppelin-kashmir-generic-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=hAzdgU_kpGo</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#led-zeppelin-kashmir-generic</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/led-zeppelin-kashmir-solo-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=hAzdgU_kpGo</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#led-zeppelin-kashmir-solo</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/led-zeppelin-kashmir-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=hAzdgU_kpGo</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#led-zeppelin-kashmir</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/minelli-newyork-newyork-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=5-pyc_z7WbY\\&amp;start=16\\&amp;end=35</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#minelli-newyork-newyork</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-1-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#pre-roll-countdown-1</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-10-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-10</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-11-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-11</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-12-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-12</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-13-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-13</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-14-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-14</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-2-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U\\&amp;start=2\\&amp;end=4</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#pre-roll-countdown-2</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-3-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#pre-roll-countdown-3</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-4-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#pre-roll-countdown-4</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-5-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U\\&amp;start=2\\&amp;end=4</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#pre-roll-countdown-5</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-6-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#pre-roll-countdown-6</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-7-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-7</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-8-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-8</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/pre-roll-countdown-9-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=Srmdij0CU1U</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#pre-roll-countdown-9</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/section-video-5-5-2-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://vimeo.com/27246366</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#section-video-5-5-2</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-1-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-1.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-1</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-10-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-10.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-10</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-11-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-11.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-11</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-12-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-12.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-12</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-13-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-13.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-13</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-14-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-14.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-14</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-2-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-2.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-2</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-3-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-3.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-3</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-4-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-4.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-4</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-5-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-5.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-5</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-6-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-6.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-6</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-7-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-7.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-7</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-8-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-8.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-8</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-9-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-9.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-atomic-items.html#ups-promo-9</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-frame-one-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-frame-one.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-frame-one</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-generic-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-generic.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-generic</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-preview-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-preview.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-preview</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-sbs-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-sbs.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#ups-promo-sbs</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/ups-promo-side-by-side-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/sample-article/html/ups-promo-side-by-side.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-side-by-side-gallery.html#ups-promo-side-by-side</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/vimeo-move-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://vimeo.com/27246366</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#vimeo-move</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/yt-list-vars-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-interactive-code.html#yt-list-vars</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/zeppelin-playlist-named-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/playlist?list=PLGRecdYLYDNdX5NEkS3KH-ZtCqc2f8lJ_</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#zeppelin-playlist-named</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/qrcode/zeppelin-playlist-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch_videos?video_ids=6tlSx0jkuLM,FeJkDewhTEw</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/sample-article/html/section-video.html#zeppelin-playlist</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-article/gen/sageplot/sageplot-implicit-surface.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<title></title>\n<meta charset=\"utf-8\">\n<meta name=viewport content=\"width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0\">\n<style>\n\n    body { margin: 0px; overflow: hidden; }\n\n    #menu-container { position: absolute; bottom: 30px; right: 40px; cursor: default; }\n\n    #menu-message { position: absolute; bottom: 0px; right: 0px; white-space: nowrap;\n                    display: none; background-color: #F5F5F5; padding: 10px; }\n\n    #menu-content { position: absolute; bottom: 0px; right: 0px;\n                    display: none; background-color: #F5F5F5; border-bottom: 1px solid black;\n                    border-right: 1px solid black; border-left: 1px solid black; }\n\n    #menu-content div { border-top: 1px solid black; padding: 10px; white-space: nowrap; }\n\n    #menu-content div:hover { background-color: #FEFEFE; }\n\n    .dark-theme #menu-container { color: white; }\n\n    .dark-theme #menu-message { background-color: #181818; }\n\n    .dark-theme #menu-content { background-color: #181818; border-color: white; }\n\n    .dark-theme #menu-content div { border-color: white; }\n\n    .dark-theme #menu-content div:hover { background-color: #303030; }\n\n</style>\n\n</head>\n\n<body>\n\n<script src=\"https://cdn.jsdelivr.net/gh/sagemath/threejs-sage@r122/build/three.min.js\"></script>\n            \n<script>\n\n    var options = {\"animate\": false, \"animationControls\": true, \"aspectRatio\": [1.0, 1.0, 1.0], \"autoScaling\": [false, false, false], \"autoPlay\": true, \"axes\": false, \"axesLabels\": false, \"axesLabelsStyle\": null, \"decimals\": 2, \"delay\": 20, \"frame\": false, \"loop\": true, \"projection\": \"perspective\", \"theme\": \"light\", \"viewpoint\": false};\n    var animate = options.animate;\n\n    if ( options.theme === 'dark' )\n        document.body.className = 'dark-theme';\n\n    var scene = new THREE.Scene();\n\n    var renderer = new THREE.WebGLRenderer( { antialias: true, preserveDrawingBuffer: true } );\n    renderer.setPixelRatio( window.devicePixelRatio );\n    renderer.setSize( window.innerWidth, window.innerHeight );\n    renderer.setClearColor( options.theme === 'dark' ? 0 : 0xffffff, 1 );\n    document.body.appendChild( renderer.domElement );\n\n    var b = [{\"x\":-4.77, \"y\":-4.77, \"z\":-4.77}, {\"x\":4.77, \"y\":4.77, \"z\":4.77}]; // bounds\n\n    if ( b[0].x === b[1].x ) {\n        b[0].x -= 1;\n        b[1].x += 1;\n    }\n    if ( b[0].y === b[1].y ) {\n        b[0].y -= 1;\n        b[1].y += 1;\n    }\n    if ( b[0].z === b[1].z ) {\n        b[0].z -= 1;\n        b[1].z += 1;\n    }\n\n    var rxRange = Math.sqrt( Math.pow( b[1].z - b[0].z, 2 )\n                            + Math.pow( b[1].y - b[0].y, 2 ) );\n    var ryRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 )\n                            + Math.pow( b[1].z - b[0].z, 2 ) );\n    var rzRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 )\n                            + Math.pow( b[1].y - b[0].y, 2 ) );\n    var xRange = b[1].x - b[0].x;\n    var yRange = b[1].y - b[0].y;\n    var zRange = b[1].z - b[0].z;\n\n    var ar = options.aspectRatio;\n    var a = [ ar[0], ar[1], ar[2] ]; // aspect multipliers\n\n    var autoScaling = options.autoScaling;\n    var autoAspect = 2.5;\n    if ( xRange > autoAspect * rxRange && autoScaling[0] ) a[0] = autoAspect * rxRange / xRange;\n    if ( yRange > autoAspect * ryRange && autoScaling[1] ) a[1] = autoAspect * ryRange / yRange;\n    if ( zRange > autoAspect * rzRange && autoScaling[2] ) a[2] = autoAspect * rzRange / zRange;\n\n    // Distance from (xMid,yMid,zMid) to any corner of the bounding box, after applying aspectRatio\n    var midToCorner = Math.sqrt( a[0]*a[0]*xRange*xRange + a[1]*a[1]*yRange*yRange + a[2]*a[2]*zRange*zRange ) / 2;\n\n    var xMid = ( b[0].x + b[1].x ) / 2;\n    var yMid = ( b[0].y + b[1].y ) / 2;\n    var zMid = ( b[0].z + b[1].z ) / 2;\n\n    var box = new THREE.Geometry();\n    box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) );\n    box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) );\n    var boxMesh = new THREE.Line( box );\n    var boxColor = options.theme === 'dark' ? 'white' : 'black';\n    if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, boxColor ) );\n\n    if ( options.axesLabels ) {\n\n        var d = options.decimals; // decimals\n        var offsetRatio = 0.1;\n        var al = options.axesLabels;\n        var als = options.axesLabelsStyle || [{}, {}, {}];\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var xm = xMid.toFixed(d);\n        if ( /^-0.?0*$/.test(xm) ) xm = xm.substr(1);\n        addLabel( al[0] + '=' + xm, a[0]*xMid, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n        addLabel( ( b[0].x ).toFixed(d), a[0]*b[0].x, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n        addLabel( ( b[1].x ).toFixed(d), a[0]*b[1].x, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n\n        var offset = offsetRatio * a[0]*( b[1].x - b[0].x );\n        var ym = yMid.toFixed(d);\n        if ( /^-0.?0*$/.test(ym) ) ym = ym.substr(1);\n        addLabel( al[1] + '=' + ym, a[0]*b[1].x+offset, a[1]*yMid, a[2]*b[0].z, als[1] );\n        addLabel( ( b[0].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[0].y, a[2]*b[0].z, als[1] );\n        addLabel( ( b[1].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[1].y, a[2]*b[0].z, als[1] );\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var zm = zMid.toFixed(d);\n        if ( /^-0.?0*$/.test(zm) ) zm = zm.substr(1);\n        addLabel( al[2] + '=' + zm, a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*zMid, als[2] );\n        addLabel( ( b[0].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[0].z, als[2] );\n        addLabel( ( b[1].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[1].z, als[2] );\n\n    }\n\n    function addLabel( text, x, y, z, style ) {\n\n        var color = style.color || 'black';\n        var fontSize = style.fontSize || 14;\n        var fontFamily = style.fontFamily || 'monospace';\n        var fontStyle = style.fontStyle || 'normal';\n        var fontWeight = style.fontWeight || 'normal';\n        var opacity = style.opacity || 1;\n\n        if ( options.theme === 'dark' )\n            if ( color === 'black' || color === '#000000' )\n                color = 'white';\n\n        if ( Array.isArray( fontStyle ) ) {\n            fontFamily = fontFamily.map( function( f ) {\n                // Need to put quotes around fonts that have whitespace in their names.\n                return /\\s/.test( f ) ? '\"' + f + '\"' : f;\n            }).join(', ');\n        }\n\n        var canvas = document.createElement( 'canvas' );\n        var context = canvas.getContext( '2d' );\n        var pixelRatio = Math.round( window.devicePixelRatio );\n\n        // For example: italic bold 20px \"Times New Roman\", Georgia, serif\n        var font = [fontStyle, fontWeight, fontSize + 'px', fontFamily].join(' ');\n\n        context.font = font;\n        var width = context.measureText( text ).width;\n        var height = fontSize;\n\n        // The dimensions of the canvas's underlying image data need to be powers\n        // of two in order for the resulting texture to support mipmapping.\n        canvas.width = THREE.MathUtils.ceilPowerOfTwo( width * pixelRatio );\n        canvas.height = THREE.MathUtils.ceilPowerOfTwo( height * pixelRatio );\n\n        // Re-compute the unscaled dimensions after the power of two conversion.\n        width = canvas.width / pixelRatio;\n        height = canvas.height / pixelRatio;\n\n        canvas.style.width = width + 'px';\n        canvas.style.height = height + 'px';\n\n        context.scale( pixelRatio, pixelRatio );\n        context.fillStyle = color;\n        context.font = font; // Must be set again after measureText.\n        context.textAlign = 'center';\n        context.textBaseline = 'middle';\n        context.fillText( text, width/2, height/2 );\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var materialOptions = { map: texture, sizeAttenuation: false, depthWrite: false };\n        if ( opacity < 1 ) {\n            // Setting opacity=1 would cause the texture's alpha component to be\n            // discarded, giving the text a black background instead of the\n            // background being transparent.\n            materialOptions.opacity = opacity;\n        }\n        var sprite = new THREE.Sprite( new THREE.SpriteMaterial( materialOptions ) );\n        sprite.position.set( x, y, z );\n\n        // Scaling factor, chosen somewhat arbitrarily so that the size of the text\n        // is consistent with previously generated plots.\n        var scale = 1/625;\n        if ( options.projection === 'orthographic' ) {\n            scale = midToCorner/256; // Needs to scale along with the plot itself.\n        }\n        sprite.scale.set( scale * width, scale * height, 1 );\n\n        scene.add( sprite );\n\n        return sprite;\n\n    }\n\n    if ( options.axes ) scene.add( new THREE.AxesHelper( Math.min( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ) );\n\n    var camera = createCamera();\n    camera.up.set( 0, 0, 1 );\n    camera.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n\n    // camera is positioned so that the line from the camera to the center\n    // of the bounding sphere of the objects makes an angle of 60 degrees with x-axis\n    // and an angle of 30 degrees with z-axis and the field of view of the camera looking\n    // at the center has an angle of 45 degrees.\n    const sin8 = Math.sin(Math.PI / 8);\n    const sin5 = Math.sin(Math.PI / 5);\n    const cos5 = Math.cos(Math.PI / 5);\n    const sin3 = Math.sin(Math.PI / 3);\n    const cos3 = Math.cos(Math.PI / 3);\n    var r = midToCorner / sin8;\n    var offset = new THREE.Vector3( r * sin3 * cos5, r * sin3 * sin5, r * cos3 );\n\n    if ( options.viewpoint ) {\n\n        var aa = options.viewpoint;\n        var axis = new THREE.Vector3( aa[0][0], aa[0][1], aa[0][2] ).normalize();\n        var angle = aa[1] * Math.PI / 180;\n        var q = new THREE.Quaternion().setFromAxisAngle( axis, angle ).inverse();\n\n        offset.set( 0, 0, offset.length() );\n        offset.applyQuaternion( q );\n\n    }\n\n    camera.position.add( offset );\n\n    function createCamera() {\n\n        var aspect = window.innerWidth / window.innerHeight;\n\n        // Scale the near and far clipping planes along with the overall plot size.\n        var nearClip = 0.01 * midToCorner;\n        var farClip = 100 * midToCorner;\n\n        if ( options.projection === 'orthographic' ) {\n            var camera = new THREE.OrthographicCamera( -1, 1, 1, -1, -farClip, farClip );\n            updateCameraAspect( camera, aspect );\n            return camera;\n        }\n\n        return new THREE.PerspectiveCamera( 45, aspect, nearClip, farClip );\n\n    }\n\n    function updateCameraAspect( camera, aspect ) {\n\n        if ( camera.isPerspectiveCamera ) {\n            camera.aspect = aspect;\n        } else if ( camera.isOrthographicCamera ) {\n            // Fit the camera frustum to the bounding box's diagonal so that the entire plot fits\n            // within at the default zoom level and camera position.\n            if ( aspect > 1 ) { // Wide window\n                camera.top = midToCorner;\n                camera.right = midToCorner * aspect;\n            } else { // Tall or square window\n                camera.top = midToCorner / aspect;\n                camera.right = midToCorner;\n            }\n            camera.bottom = -camera.top;\n            camera.left = -camera.right;\n        }\n\n        camera.updateProjectionMatrix();\n\n    }\n\n    var lights = [{\"x\":-5, \"y\":3, \"z\":0, \"color\":\"#7f7f7f\", \"parent\":\"camera\"}];\n    for ( var i=0 ; i < lights.length ; i++ ) {\n        var light = new THREE.DirectionalLight( lights[i].color, 1 );\n        light.position.set( a[0]*lights[i].x, a[1]*lights[i].y, a[2]*lights[i].z );\n        if ( lights[i].parent === 'camera' ) {\n            light.target.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n            scene.add( light.target );\n            camera.add( light );\n        } else scene.add( light );\n    }\n    scene.add( camera );\n\n    var ambient = {\"color\":\"#7f7f7f\"};\n    scene.add( new THREE.AmbientLight( ambient.color, 1 ) );\n\n    var controls = new THREE.OrbitControls( camera, renderer.domElement );\n    controls.target.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n    controls.addEventListener( 'change', function() { if ( !animate ) render(); } );\n\n    window.addEventListener( 'resize', function() {\n\n        renderer.setSize( window.innerWidth, window.innerHeight );\n        updateCameraAspect( camera, window.innerWidth / window.innerHeight );\n        if ( window.rescaleFatLines ) rescaleFatLines();\n        if ( !animate ) render();\n\n    } );\n\n    var texts = [];\n    for ( var i=0 ; i < texts.length ; i++ ) addText( texts[i] );\n\n    function addText( json ) {\n        var sprite = addLabel( json.text, a[0]*json.x, a[1]*json.y, a[2]*json.z, json );\n        sprite.userData = json;\n    }\n\n    var points = [];\n    for ( var i=0 ; i < points.length ; i++ ) addPoint( points[i] );\n\n    function addPoint( json ) {\n\n        var geometry = new THREE.Geometry();\n        var v = json.point;\n        geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n\n        var canvas = document.createElement( 'canvas' );\n        canvas.width = 128;\n        canvas.height = 128;\n\n        var context = canvas.getContext( '2d' );\n        context.arc( 64, 64, 64, 0, 2 * Math.PI );\n        context.fillStyle = json.color;\n        context.fill();\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var transparent = json.opacity < 1 ? true : false;\n        var size = camera.isOrthographicCamera ? json.size : json.size/100;\n        var material = new THREE.PointsMaterial( { size: size, map: texture,\n                                                   transparent: transparent, opacity: json.opacity,\n                                                   alphaTest: .1 } );\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var mesh = new THREE.Points( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    var lines = [];\n    for ( var i=0 ; i < lines.length ; i++ ) addLine( lines[i] );\n\n    function addLine( json ) {\n\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.points.length ; i++ ) {\n            var v = json.points[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n        }\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var transparent = json.opacity < 1 ? true : false;\n        var materialOptions = { color: json.color, linewidth: json.linewidth,\n                                transparent: transparent, opacity: json.opacity };\n\n        var mesh;\n        if ( json.linewidth > 1 && window.createFatLineStrip ) {\n            mesh = createFatLineStrip( geometry, materialOptions );\n        } else {\n            var material = new THREE.LineBasicMaterial( materialOptions );\n            mesh = new THREE.Line( geometry, material );\n        }\n\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    var surfaces = [{\"vertices\": [{\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106075, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106075, \"z\": -0.2920408163265309}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106075, \"z\": -0.2920408163265309}, {\"x\": 4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.621353422274137, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106088, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.621353422274137, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.607948680550935, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.621353422274137, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.621353422274137, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106088, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.71495695850207, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.77, \"y\": -0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": 4.77, \"y\": -0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.77, \"y\": -0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.71495695850207, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.71495695850207, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": -0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": 4.77, \"y\": -0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.77, \"y\": -0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.77, \"y\": -0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": 4.77, \"y\": -0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.77, \"y\": -0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.621353422274137, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.621353422274137, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.71495695850207, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": 4.77, \"y\": -0.37820216523786776, \"z\": -0.2920408163265309}, {\"x\": 4.71495695850207, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": -0.43019727952888864}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": 4.71495695850207, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": -0.37820216523786776, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": -0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": 4.77, \"y\": -0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": 4.77, \"y\": -0.3782021652378704, \"z\": 0.29204081632653}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.77, \"y\": -0.3782021652378704, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.77, \"y\": -0.3782021652378704, \"z\": 0.29204081632653}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": -0.43019727952888864}, {\"x\": 4.77, \"y\": -0.0973469387755106, \"z\": -0.36518630742796887}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": -0.43019727952888864}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": -0.44395351863686106}, {\"x\": 4.77, \"y\": -0.0973469387755106, \"z\": -0.36518630742796887}, {\"x\": 4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": 4.77, \"y\": -0.0973469387755106, \"z\": 0.36518630742796976}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": 4.77, \"y\": -0.0973469387755106, \"z\": 0.36518630742796976}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": 0.44395351863686106}, {\"x\": 4.77, \"y\": -0.0973469387755106, \"z\": -0.36518630742796887}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": -0.44395351863686106}, {\"x\": 4.77, \"y\": 0.0973469387755097, \"z\": -0.36518630742796887}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": -0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": -0.44395351863686106}, {\"x\": 4.77, \"y\": 0.0973469387755097, \"z\": -0.36518630742796887}, {\"x\": 4.77, \"y\": -0.0973469387755106, \"z\": 0.36518630742796976}, {\"x\": 4.77, \"y\": 0.0973469387755097, \"z\": 0.36518630742796976}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": 0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": 0.44395351863686106}, {\"x\": 4.77, \"y\": 0.0973469387755097, \"z\": 0.36518630742796976}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": 0.44395351863686106}, {\"x\": 4.77, \"y\": 0.0973469387755097, \"z\": -0.36518630742796887}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": -0.44395351863686106}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": -0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": -0.43019727952888864}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": 4.77, \"y\": 0.0973469387755097, \"z\": 0.36518630742796976}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": 0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": 0.44395351863686106}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": 0.43019727952888953}, {\"x\": 4.77, \"y\": 0.37820216523786865, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": 0.37820216523786865, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": -0.43019727952888864}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.77, \"y\": 0.37820216523786865, \"z\": -0.2920408163265309}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": 0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": 4.77, \"y\": 0.3782021652378713, \"z\": 0.29204081632653}, {\"x\": 4.77, \"y\": 0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": 4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": 4.77, \"y\": 0.3782021652378713, \"z\": 0.29204081632653}, {\"x\": 4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": 0.43019727952888953}, {\"x\": 4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.77, \"y\": 0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": 4.77, \"y\": 0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": 0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.77, \"y\": 0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": 4.77, \"y\": 0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.77, \"y\": 0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.77, \"y\": 0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": 4.77, \"y\": 0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.77, \"y\": 0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.621353422274137, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.621353422274137, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.621353422274137, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.575306122448978, \"y\": 0.795428495510607, \"z\": -0.2920408163265309}, {\"x\": 4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.795428495510607, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.7954284955106079, \"z\": 0.29204081632653}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": 0.7954284955106079, \"z\": 0.29204081632653}, {\"x\": 4.621353422274137, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.621353422274137, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.703584222470438, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.621353422274137, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.7954284955106079, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": 0.0973469387755097}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": 0.0973469387755097}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 4.607948680550935, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281128936}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281128936}, {\"x\": 4.380612244897959, \"y\": -1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.395950504331303, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.9519757177321932, \"z\": 0.0973469387755097}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.481313440430451, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106075, \"z\": -0.2920408163265309}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.54536619207102, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106075, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": -0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106088, \"z\": 0.29204081632653}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106088, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": -0.7954284955106088, \"z\": 0.29204081632653}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.545366192071022, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": -0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": -0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": -0.43019727952888864}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": -0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": 4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": -0.43019727952888864}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": -0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": -0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": 0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": 0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": -0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": -0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": -0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": -0.0973469387755106, \"z\": 0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": 0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": 0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": -0.44395351863686106}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": -0.43019727952888864}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": -0.43019727952888864}, {\"x\": 4.575306122448978, \"y\": 0.0973469387755097, \"z\": 0.44395351863686106}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": 0.43019727952888953}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": 0.43019727952888953}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": -0.43019727952888864}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177615, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.575306122448978, \"y\": 0.29204081632653, \"z\": 0.43019727952888953}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177615, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": -0.3995601435005378}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.575306122448978, \"y\": 0.795428495510607, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": -0.3444331709299755}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.795428495510607, \"z\": -0.2920408163265309}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.575306122448978, \"y\": 0.795428495510607, \"z\": -0.2920408163265309}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": 0.7954284955106079, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.575306122448978, \"y\": 0.7954284955106079, \"z\": 0.29204081632653}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.575306122448978, \"y\": 0.6814285714285715, \"z\": 0.3444331709299764}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": -0.20914525481651314}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": -0.0973469387755106}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.575306122448978, \"y\": 0.9519757177321928, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.575306122448978, \"y\": 0.8761224489795918, \"z\": 0.20914525481651314}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.545366192071022, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.481313440430451, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": 4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 4.395950504331303, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": -0.945620686818347}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": -0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": -0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": -0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": -1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": -1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": -0.2920408163265309}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": -0.2920408163265309}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": 0.0973469387755097}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": 0.29204081632653}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": -1.9744923503409644, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": 0.29204081632653}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.9744923503409644, \"z\": 0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.9744923503409644, \"z\": 0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": 0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": -0.945620686818347}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 4.23894872812145, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": 0.9456206868183461}, {\"x\": 4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": 0.8785477031549869}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": 0.9456206868183461}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": -0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": -0.7991386773965101}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": -0.7991386773965101}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281128936}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281128936}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 4.311977606472134, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.2477294290111, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": 0.8785477031549869}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": -0.7292457982088569}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": -0.7991386773965101}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": -0.7292457982088569}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": -1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281128936}, {\"x\": 4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": 4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.37679661682505, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 4.252149808350072, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": 0.729245798208856}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": -0.7292457982088569}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": 0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": 0.729245798208856}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": -0.4867346938775512}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": 4.349345780289346, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": 4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": 4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": 4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": 4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": 4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": 4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": 4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177615, \"z\": 0.4867346938775512}, {\"x\": 4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177615, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.32975822299177615, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": -0.729245798208856}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": -0.6814285714285715}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": -0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": -0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": 0.729245798208856}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": -0.729245798208856}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": 4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": 4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.329066432365572, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 4.329066432365572, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.329066432365572, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": 0.729245798208856}, {\"x\": 4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": 0.7991386773965097}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": 0.729245798208856}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": -0.8785477031549878}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": -0.8761224489795918}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": -0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": 4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 4.37679661682505, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 4.329066432365572, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 4.329066432365572, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 4.329066432365572, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": 0.7991386773965097}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": 0.7991386773965097}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.252149808350072, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": -0.9456206868183461}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": -0.8785477031549878}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": -0.9456206868183461}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 4.311977606472134, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 4.2477294290111, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.186921537428002, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": 0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": -0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": -0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": -0.2920408163265309}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": -0.2920408163265309}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": -0.0973469387755106}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": 0.0973469387755097}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": 0.29204081632653}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": 0.29204081632653}, {\"x\": 4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": 0.4867346938775512}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": 0.4867346938775512}, {\"x\": 4.23894872812145, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": 0.8761224489795918}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": 0.8761224489795918}, {\"x\": 4.221074505394631, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": 0.9456206868183461}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -1.7527765226084187}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": -1.6548979591836734}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": -1.6548979591836734}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 4.169139467370989, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.169139467370989, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -0.9338379607725766}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 0.9338379607725766}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": 1.070816326530612}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": 1.070816326530612}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": 1.070816326530612}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 4.169139467370988, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 4.042838529184804, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.169139467370988, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -1.7527765226084187}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 4.169139467370989, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 4.169139467370989, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 4.169139467370989, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -0.9338379607725766}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -0.9338379607725766}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -0.40044277616697865}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 0.40044277616697865}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": 0.4867346938775512}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": 0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": 0.4867346938775512}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": 0.8761224489795918}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 0.9338379607725766}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": 0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 4.060015200176016, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 4.169139467370988, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 4.169139467370988, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 4.169139467370988, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 4.0752499579201285, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 4.0752499579201285, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 4.103179600794151, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 4.0752499579201285, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404076, \"z\": -1.6548979591836734}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404076, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 4.075249957920127, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -0.40044277616697865}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -0.40044277616697865}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": -0.2920408163265309}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": -0.2920408163265309}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": 0.0973469387755097}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": 0.29204081632653}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 0.40044277616697865}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": 0.29204081632653}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 4.0752499579201285, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 4.0752499579201285, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 4.1649814842174475, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 4.0752499579201285, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": -0.945620686818347}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": -0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": -0.945620686818347}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": -0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": -0.2920408163265309}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": -0.2920408163265309}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": 0.29204081632653}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": -1.9614800278928324, \"z\": 0.0973469387755097}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": -1.9744923503409644, \"z\": 0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": -1.9658731394524436, \"z\": 0.29204081632653}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9744923503409644, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -1.9744923503409644, \"z\": 0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": 0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": 0.9456206868183461}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.98282616556906, \"z\": 0.8761224489795918}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 4.178387136434949, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": 1.389922351837285}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 4.089646806944719, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 3.9912244897959184, \"y\": -1.7520685343636804, \"z\": -1.2655102040816328}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.7520685343636804, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": -0.945620686818347}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": 0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": 0.8785477031549869}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.8495918367346937, \"z\": 0.9456206868183461}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 4.152039851393804, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 4.069662769787541, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": 1.389922351837285}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": -0.8785477031549878}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": -0.8761224489795918}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": -0.7991386773965101}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": 0.9943201938925501}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6503891731762956, \"z\": 0.8761224489795918}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": -1.6548979591836734, \"z\": 0.8785477031549869}, {\"x\": 4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": -0.7991386773965101}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": -0.7991386773965101}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": -0.7292457982088569}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 4.185918367346938, \"y\": -1.4602040816326531, \"z\": 0.7991386773965088}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": 0.729245798208856}, {\"x\": 4.119471427603557, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": 0.9943201938925501}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": -0.7292457982088569}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": -0.7292457982088569}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": -0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": 0.729245798208856}, {\"x\": 4.185918367346938, \"y\": -1.119708681429104, \"z\": 0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": 0.729245798208856}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 4.185918367346938, \"y\": -1.2655102040816328, \"z\": 0.729245798208856}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122816, \"z\": -0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122816, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 4.185918367346938, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.153776672808485, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.185918367346938, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": -0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": 0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": 4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": 4.185918367346938, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 4.185918367346938, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": 4.185918367346938, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": 0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": 0.4867346938775512}, {\"x\": 4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 4.185918367346938, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.185918367346938, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122811, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 4.185918367346938, \"y\": 0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122811, \"z\": 0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": -0.729245798208856}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": -0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": -0.729245798208856}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": -0.729245798208856}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": -0.6658550950639146}, {\"x\": 4.185918367346938, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": 0.6814285714285715}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 4.153776672808485, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.1197086814291035, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": 0.729245798208856}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": 0.729245798208856}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": -0.729245798208856}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": 0.7991386773965097}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": 0.7991386773965097}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 4.185918367346938, \"y\": 1.2655102040816324, \"z\": 0.729245798208856}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": -1.1688955968360588}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": -0.8785477031549878}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": -0.8785477031549878}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": -0.8785477031549878}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": -0.7991386773965101}, {\"x\": 4.185918367346938, \"y\": 1.4602040816326527, \"z\": 0.7991386773965097}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": 0.8761224489795918}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.6503891731762952, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.7520685343636808, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.7520685343636808, \"z\": -1.2655102040816328}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": -1.1688955968360588}, {\"x\": 3.9912244897959184, \"y\": 1.7520685343636808, \"z\": -1.2655102040816328}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": -0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": -0.8785477031549878}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": -0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": 0.9456206868183461}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.654897959183673, \"z\": 0.8785477031549869}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": 1.389922351837285}, {\"x\": 3.9912244897959184, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": -1.6121254278475705}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": -0.9456206868183461}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": -0.8761224489795918}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": -0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": -0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": -0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": -0.2920408163265309}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": -0.2920408163265309}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": -0.0973469387755106}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": 1.9614800278928328, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": 0.29204081632653}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.9658731394524427, \"z\": 0.29204081632653}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": 0.4867346938775512}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.974492350340964, \"z\": 0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.9859474869329654, \"z\": 0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": 0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": 0.9456206868183461}, {\"x\": 4.185918367346938, \"y\": 1.982826165569059, \"z\": 0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.185918367346938, \"y\": 1.8495918367346933, \"z\": 0.9456206868183461}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 4.152039851393804, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": 1.389922351837285}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": 1.389922351837285}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 4.069662769787541, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": 1.6121254278475696}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -1.739966300419244}, {\"x\": 4.075249957920127, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340408, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340408, \"z\": -1.6548979591836734}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": -1.6121254278475705}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340408, \"z\": -1.6548979591836734}, {\"x\": 4.075249957920127, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 4.075249957920127, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -0.4004427761669742}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": 4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 0.4004427761669742}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 0.4004427761669742}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 4.135721983457609, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 4.149347688183665, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 4.1653325611187455, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.17787168563402, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 4.178387136434949, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": 1.6121254278475696}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340407, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": 1.6121254278475696}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 4.089646806944719, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340407, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 4.075249957920127, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -1.739966300419244}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 4.075249957920127, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 4.075249957920127, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": -0.8761224489795918}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -0.9338379607725744}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": -0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -0.4004427761669742}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 0.4004427761669742}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 4.006904388098048, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 4.053831664284884, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 0.933837960772574}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 0.933837960772574}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 4.169139467370986, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 4.1649814842174475, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 4.169139467370986, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 4.169139467370986, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 1.7527765226084178}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": -1.6548979591836734}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.1031796007941495, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": -1.2655102040816328}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": -1.2655102040816328}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": -1.070816326530612}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": -1.070816326530612}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -0.9338379607725744}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 0.933837960772574}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": 1.070816326530612}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.169139467370986, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 4.169139467370986, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 1.7527765226084178}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 4.042838529184804, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.715252452998223, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.9549440234958784, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9549440234958784, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.715252452998223, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": 3.9549440234958784, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.95494402349588, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": 1.2655102040816324}, {\"x\": 3.95494402349588, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": 1.2655102040816324}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -2.6579385766336396, \"z\": 1.4602040816326527}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -1.885651417717281}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": -1.8495918367346937}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -1.7527765226084187}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -1.7527765226084187}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -1.7527765226084187}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": -1.8495918367346937}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 3.9549440234958784, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.9549440234958784, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155784, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": -1.070816326530612}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -0.9338379607725766}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": -1.070816326530612}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -0.7219553232558233}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 0.7219553232558242}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 0.9338379607725766}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 0.9338379607725766}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.95494402349588, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.95494402349588, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -2.5063087935854873, \"z\": 1.070816326530612}, {\"x\": 3.95494402349588, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.9912244897959184, \"y\": -2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": 1.654897959183673}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.8679567161651285, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.8679567161651285, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 3.8679567161651285, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 3.955437311208218, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.598158085188902, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 3.8679567161651285, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -1.885651417717281}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -1.7527765226084187}, {\"x\": 3.8679567161651303, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": -0.9338379607725766}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -0.7219553232558233}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -0.7219553232558233}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -0.40044277616697865}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": -0.4867346938775512}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 0.40044277616697865}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 0.40044277616697865}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.255219153108234, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": 0.4867346938775512}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 0.7219553232558242}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.9432770286032213, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.4017783632936816, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 0.9338379607725766}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 1.739966300419244}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.8679567161651285, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": -2.433673469387755, \"z\": 1.7527765226084178}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": 3.8679567161651285, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.796530612244897, \"y\": -2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404076, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404076, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 3.796530612244897, \"y\": -2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -1.739966300419244}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404076, \"z\": -1.6548979591836734}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": -0.40044277616697865}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": -0.2920408163265309}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": -0.0973469387755106}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": -0.2920408163265309}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": 0.0973469387755097}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": -0.0973469387755106}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": 0.29204081632653}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.917715248887717, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": -2.19917993850911, \"z\": 0.0973469387755097}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.954320077569493, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.217532252878446, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 0.40044277616697865}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": 1.7971396198285872}, {\"x\": 3.796530612244897, \"y\": -2.137069963708494, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.137069963708494, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.137069963708494, \"z\": 1.8495918367346933}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": -2.1018036663404063, \"z\": 1.654897959183673}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": -2.238979591836735, \"z\": 1.739966300419244}, {\"x\": 3.8689639812968473, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.137069963708494, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664685, \"z\": -1.6548979591836734}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": 3.928500807922104, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664685, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": -1.6121254278475705}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664685, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.928500807922104, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": 1.389922351837285}, {\"x\": 3.928500807922102, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 3.928500807922102, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 3.928500807922102, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -1.9148231489671512, \"z\": 1.4602040816326527}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": 3.955797600447351, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": 1.7971396198285872}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.928500807922104, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -1.7520685343636804, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": 3.869990353467376, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": 3.9912244897959184, \"y\": -1.7520685343636804, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": -1.3899223518372863}, {\"x\": 3.928500807922104, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": -1.7520685343636804, \"z\": -1.2655102040816328}, {\"x\": 3.869990353467376, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": 3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.928500807922102, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -1.75206853436368, \"z\": 1.2655102040816324}, {\"x\": 3.928500807922102, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": -1.8495918367346937, \"z\": 1.389922351837285}, {\"x\": 3.928500807922102, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.869990353467376, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": -1.0905934974850293}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": -1.0905934974850293}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": -1.0905934974850293}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": -1.1688955968360597}, {\"x\": 3.869990353467376, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": 0.9943201938925501}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": 1.0905934974850293}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": 3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": 3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": -1.0905934974850293}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": -0.9943201938925501}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": 1.070816326530612}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": -1.4602040816326531, \"z\": 0.9943201938925501}, {\"x\": 3.8392858210507015, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": 1.0905934974850293}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": -0.8581460463946731}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.9912244897959184, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122816, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122816, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122816, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122816, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.9912244897959184, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.9912244897959184, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": -0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.9295473614178444, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": -0.4083405958745221, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": -0.45414145408469686}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": -0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": 3.9912244897959184, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": 0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": -0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": -0.3308140015881378}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": 3.9912244897959184, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": 0.3308140015881378}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": 0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": 0.3658381728549145}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": -0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": 0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 3.9912244897959184, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": 0.3658381728549145}, {\"x\": 3.9912244897959184, \"y\": 0.408340595874523, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": 3.9295473614178444, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.9912244897959184, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.9912244897959184, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122811, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122811, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122811, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.9912244897959184, \"y\": 0.9441344647122811, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.9912244897959184, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": 3.9912244897959184, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.92865691001702, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.869990353467374, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": -1.1688955968360588}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": -1.1688955968360588}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.869990353467374, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": -1.1688955968360588}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.869990353467374, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": -0.9943201938925497}, {\"x\": 3.9912244897959184, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.8392858210506997, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": -1.4602040816326531}, {\"x\": 3.869990353467374, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": 3.9912244897959184, \"y\": 1.7520685343636808, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": 3.869990353467374, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": -1.4602040816326531}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 3.869990353467374, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.7520685343636808, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": -1.1688955968360588}, {\"x\": 3.9912244897959184, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": 3.9912244897959184, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": 1.389922351837285}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.869990353467376, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": 1.389922351837285}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664694, \"z\": -1.6548979591836734}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": -1.6121254278475705}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": -1.6121254278475705}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": -1.6121254278475705}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664694, \"z\": -1.6548979591836734}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": 3.9912244897959184, \"y\": 1.8495918367346933, \"z\": 1.389922351837285}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": 1.6121254278475696}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.928500807922102, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": 1.6121254278475696}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": -1.8961941451561803}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340408, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -1.739966300419244}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -1.739966300419244}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340408, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": -1.6121254278475705}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -0.4004427761669742}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.9912244897959184, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 0.4004427761669742}, {\"x\": 3.9912244897959184, \"y\": 2.0442857142857136, \"z\": 1.6121254278475696}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340407, \"z\": 1.654897959183673}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 3.955797600447351, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.101803666340407, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": 1.8961941451561808}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": -1.8961941451561803}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -1.739966300419244}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -0.9338379607725744}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -0.7219553232558216}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": -0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -0.4004427761669742}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": -0.4004427761669742}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 0.4004427761669742}, {\"x\": 3.954320077569495, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 0.7219553232558207}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 0.7219553232558207}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.312519264166151, \"z\": 0.6814285714285715}, {\"x\": 3.9912244897959184, \"y\": 2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 0.933837960772574}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 1.7527765226084178}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": 2.238979591836734, \"z\": 1.739966300419244}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": 1.8961941451561808}, {\"x\": 3.8689639812968473, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": 1.8961941451561808}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044064, \"z\": -1.8495918367346937}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044064, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -1.752776522608419}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044064, \"z\": -1.8495918367346937}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": -1.6548979591836734}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9549440234958784, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.9549440234958784, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": 3.9549440234958784, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": -1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -0.9338379607725744}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": -0.9338379607725744}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -0.7219553232558216}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 0.7219553232558207}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 0.933837960772574}, {\"x\": 3.943277028603223, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.95494402349588, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.506308793585487, \"z\": 1.070816326530612}, {\"x\": 3.9912244897959184, \"y\": 2.6097168055155793, \"z\": 1.2655102040816324}, {\"x\": 3.95494402349588, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": 2.598158085188903, \"z\": 1.654897959183673}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.9912244897959184, \"y\": 2.433673469387754, \"z\": 1.7527765226084178}, {\"x\": 3.8679567161651303, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.590109225563309}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.9549440234958784, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": -1.332418723540898}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.9549440234958784, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": 3.95494402349588, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.95494402349588, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.3324187235408989}, {\"x\": 3.95494402349588, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.6283673469387754, \"z\": 1.5901092255633076}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.9912244897959184, \"y\": 2.657938576633639, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.955437311208218, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -2.727699276494856, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.68389711205783, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.715252452998223, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -2.727699276494856, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.715252452998223, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -2.7351561436487692, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -2.727699276494856, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.715252452998223, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -2.7351561436487692, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -2.7351561436487692, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.675967697816729, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -1.885651417717281}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": -1.8495918367346937}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -1.885651417717281}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -1.885651417717281}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -0.7219553232558233}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 0.7219553232558242}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 0.7219553232558242}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.6018367346938778, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.593486562062995, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.6018367346938778, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -1.885651417717281}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": -2.0391916426281154}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": -0.7219553232558233}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": -2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -2.350083975346631, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 0.7219553232558242}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 0.7219553232558242}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": 3.796530612244897, \"y\": -2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.7360536727332985, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": -1.8961941451561803}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": -2.0391916426281154}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.796530612244897, \"y\": -2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.7360536727332985, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": -2.137069963708494, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": 1.7971396198285872}, {\"x\": 3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.796530612244897, \"y\": -2.137069963708494, \"z\": 1.8495918367346933}, {\"x\": 3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": 3.796530612244897, \"y\": -2.238979591836735, \"z\": 1.8961941451561808}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": 3.7360536727332985, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664685, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": -1.7306734078276862}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": -1.7306734078276862}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664685, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": -1.7306734078276862}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": -1.7971396198285863}, {\"x\": 3.7360536727332985, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664685, \"z\": -1.6548979591836734}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": -2.044285714285714, \"z\": 1.7971396198285872}, {\"x\": 3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": -1.7306734078276862}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": -1.4083501182263611}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": -1.4083501182263611}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": 1.4083501182263607}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": -1.4083501182263611}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": -1.4083501182263611}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": -1.121529087594256}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": -1.0905934974850293}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": -1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": 1.0905934974850293}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": 1.0905934974850293}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": 1.4083501182263607}, {\"x\": 3.796530612244897, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": -1.121529087594256}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": -1.0905934974850293}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": -1.121529087594256}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": 1.0905934974850293}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": 3.796530612244897, \"y\": -1.4422319811119375, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": -1.4602040816326531, \"z\": 1.0905934974850293}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": 3.6018367346938778, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.6018367346938778, \"y\": -1.2394967442432097, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.6018367346938778, \"y\": -1.2394967442432097, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": 3.6018367346938778, \"y\": -1.2394967442432097, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": 3.796530612244897, \"y\": -1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2394967442432097, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.796530612244897, \"y\": -0.9458049237769575, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": -1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.6970767574190173, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": -0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.796530612244897, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": 3.6938503544733585, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.6018367346938778, \"y\": -0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.6938503544733585, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.6938503544733585, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": 0.1616789029021657}, {\"x\": 3.6018367346938778, \"y\": -0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": -0.3308140015881378}, {\"x\": 3.6938503544733585, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.6938503544733585, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 3.6938503544733585, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": 0.1616789029021657}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.74400462574577, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": 0.3308140015881378}, {\"x\": 3.74400462574577, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": 0.3308140015881378}, {\"x\": 3.6938503544733567, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": -0.3308140015881378}, {\"x\": 3.744004625745772, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": 3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 3.744004625745772, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": -0.3308140015881378}, {\"x\": 3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.744004625745772, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 3.744004625745772, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 3.74400462574577, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.74400462574577, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 3.74400462574577, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 3.74400462574577, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": 3.74400462574577, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": -0.0973469387755106, \"z\": 0.3308140015881378}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": 3.74400462574577, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": 3.744004625745772, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": -0.1616789029021648}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.744004625745772, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": 0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": 0.1616789029021648}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 3.6099262348569425, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 3.74400462574577, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 3.74400462574577, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": 0.3658381728549145}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": 0.3658381728549145}, {\"x\": 3.74400462574577, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": -0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": 0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": 0.1616789029021648}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.4575919005668032, \"z\": 0.29204081632653}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.6018367346938778, \"y\": 0.4575919005668032, \"z\": 0.29204081632653}, {\"x\": 3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": 0.3658381728549145}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": 0.29204081632653, \"z\": 0.3658381728549145}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.796530612244897, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.796530612244897, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": -0.52858725390288}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6970767574190173, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": 0.6814285714285715, \"z\": 0.52858725390288}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.796530612244897, \"y\": 0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.796530612244897, \"y\": 1.070816326530612, \"z\": 0.7605805625756599}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": 3.796530612244897, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": 3.796530612244897, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": 3.796530612244897, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": -1.4083501182263602}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": 3.796530612244897, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": 3.796530612244897, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.7026914198282928, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.7026914198282928, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": -1.4083501182263602}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": 3.796530612244897, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": 3.7026914198282928, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664694, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.7026914198282928, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 3.7026914198282928, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664694, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": 3.796530612244897, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 3.7026914198282945, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": -1.8961941451561803}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": -1.8961941451561803}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": -2.0391916426281154}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": -1.8961941451561803}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": -1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.7360536727332985, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": 1.8961941451561808}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": 1.8961941451561808}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": -1.8961941451561803}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": -2.0391916426281154}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": -2.0391916426281154}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -2.0044762663080546}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -0.7219553232558216}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -0.7219553232558216}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129346, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 0.7219553232558207}, {\"x\": 3.796530612244897, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": 3.796530612244897, \"y\": 2.238979591836734, \"z\": 1.8961941451561808}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 2.004476266308054}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044064, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044064, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -1.8856514177172818}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -2.0044762663080546}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044064, \"z\": -1.8495918367346937}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -0.7219553232558216}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": -0.7219553232558216}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 0.7219553232558207}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": 3.796530612244897, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.796530612244897, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.796530612244897, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 2.004476266308054}, {\"x\": 3.796530612244897, \"y\": 2.433673469387754, \"z\": 1.8856514177172814}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.741822685119792}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948558, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948558, \"z\": -1.6548979591836734}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948558, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": -1.1491112725402783}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.149111272540278}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.796530612244897, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.796530612244897, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.727699276494856, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.727699276494856, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.727699276494856, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -2.7351561436487692, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -2.7351561436487692, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -2.7346206939334308, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -2.7351561436487692, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.7346206939334308, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.7346206939334308, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": 3.5516926207380717, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.5516926207380717, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.6018367346938778, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": 3.6018367346938778, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": 3.5516926207380735, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.5516926207380735, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": -2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.5516926207380735, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": 3.5516926207380717, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": 3.5960109220398255, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 3.5516926207380717, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": 3.5516926207380717, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 3.5960109220398255, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": -2.0391916426281154}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -2.0044762663080538}, {\"x\": 3.5516926207380717, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": -2.0391916426281154}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.422793915058648, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": 3.422793915058648, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": 3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.422793915058648, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478096, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.4765357374478096, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": 3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.4765357374478096, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": 3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": 3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 3.5516926207380735, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": 3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.5516926207380735, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.5960109220398255, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": 3.5031275539105433, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 3.5960109220398255, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.5960109220398255, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 3.5031275539105433, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": -2.0391916426281154}, {\"x\": 3.5960109220398255, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": 3.422793915058648, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": 3.422793915058648, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": 3.422793915058648, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478096, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478096, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478096, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": 3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": 3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": 3.5031275539105433, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": 3.454897421828843, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": 3.5031275539105433, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": 3.454897421828843, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": -1.7306734078276862}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": 3.454897421828841, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 3.454897421828841, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.454897421828841, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": -1.9478138816155823, \"z\": 1.8495918367346933}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": 3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.454897421828843, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 3.454897421828843, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": -1.7306734078276862}, {\"x\": 3.454897421828843, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": 3.416241110153626, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.416241110153626, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": -1.4083501182263611}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": 1.4083501182263607}, {\"x\": 3.416241110153628, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.416241110153628, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": 3.416241110153628, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.454897421828841, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": -1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.454897421828841, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.416241110153626, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.416241110153626, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": -1.4083501182263611}, {\"x\": 3.416241110153626, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": -1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": 3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": 3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": 1.4083501182263607}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.416241110153628, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.6548979591836734, \"z\": 1.4083501182263607}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.416241110153628, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": -1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": 3.6018367346938778, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.6018367346938778, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2394967442432097, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": 3.6018367346938778, \"y\": -1.2394967442432097, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": -0.6814285714285715}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.513919135822416, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.6018367346938778, \"y\": -1.0164203111768901, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.477274572737077, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": -0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.4611875268660572, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": -0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": -0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": 0.1616789029021657}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": 0.1616789029021657}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.588692541278112, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.6018367346938778, \"y\": -0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": -0.2920408163265309, \"z\": 0.1616789029021657}, {\"x\": 3.6018367346938778, \"y\": -0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": -0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745972, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.1286377041745963, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": 0.1616789029021648}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": -0.1616789029021648}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.457591900566805, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": -0.1616789029021648}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.4575919005668032, \"z\": 0.29204081632653}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.29204081632653, \"z\": 0.1616789029021648}, {\"x\": 3.6018367346938778, \"y\": 0.4575919005668032, \"z\": 0.29204081632653}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.5679762759725726, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 0.4575919005668032, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": -0.3047179675997418}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4870002154134543, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.4867346938775512, \"z\": 0.3047179675997418}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.588692541278112, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": -0.42873977766976346}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.6814285714285715, \"z\": 0.42873977766976257}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.4611875268660572, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": 0.6814285714285715}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.477274572737077, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 1.0164203111768897, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": 3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": -0.7241012012667607}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": 3.527497955149613, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.513919135822416, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": 3.527497955149613, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": 3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": 3.527497955149613, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.527497955149613, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.527497955149613, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": 3.6018367346938778, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": 3.416241110153626, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": -1.4083501182263602}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.416241110153626, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": -1.4083501182263602}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": 3.6018367346938778, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": 3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": 3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.416241110153626, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.416241110153626, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": 3.416241110153626, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": -1.4083501182263602}, {\"x\": 3.6018367346938778, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": 3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": 3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": -1.7306734078276849}, {\"x\": 3.6018367346938778, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": 3.503127553910545, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.503127553910545, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.503127553910545, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 3.454897421828841, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.503127553910545, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": 3.5960109220398255, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.5960109220398255, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": -2.0391916426281154}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": 3.5031275539105433, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": -2.0391916426281154}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": 0.29204081632653}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.32042311144275093}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": 3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 3.503127553910545, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": 2.0442857142857136, \"z\": 1.9535878705455003}, {\"x\": 3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.503127553910545, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.5960109220398255, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 3.5960109220398255, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.5960109220398255, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -2.0044762663080546}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": -2.0391916426281154}, {\"x\": 3.5960109220398255, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -2.0044762663080546}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.4765357374478096, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.32042311144275093}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.422793915058646, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.32042311144275093}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": 3.6018367346938778, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": 3.6018367346938778, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 2.004476266308054}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": 3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -2.0044762663080546}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -2.0044762663080546}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339243}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.6018367346938778, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.6018367346938778, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 2.004476266308054}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 2.004476266308054}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": 2.433673469387754, \"z\": 2.004476266308054}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.5516926207380735, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948558, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948558, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948558, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339243}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": -1.1331206635656605}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": 3.6018367346938778, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.6018367346938778, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.6018367346938778, \"y\": 2.6283673469387754, \"z\": 1.8635323261518293}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.3466606140748247, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.3466606140748247, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.7346206939334308, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.7346206939334308, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -2.7346206939334308, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": 3.3466606140748247, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": 3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": 3.3466606140748247, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.3466606140748247, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": 3.3811538099429015, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.3811538099429015, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.3811538099428997, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": 3.3811538099428997, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": 3.3811538099428997, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": 3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.268050175572222, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.302037432549012, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.302037432549012, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.302037432549012, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.302037432549012, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": 3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.3811538099429015, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": 3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": 3.3811538099429015, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.3811538099428997, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": 3.3811538099428997, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.3811538099428997, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 3.302037432549012, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.302037432549012, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": 3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.3541170367075743, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.251070581660718, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": 3.3648610552102163, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": 3.3150412079180196, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": 3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": 3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": 3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": 3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": 3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": 3.292061636718831, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.373385822979534, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": 3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.292061636718831, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.2601534137276413, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302913}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": 3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302913}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": 3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.36674633592686}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": 3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 3.2723002981270337, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.36674633592686}, {\"x\": 3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": 0.29204081632653}, {\"x\": 3.4071428571428566, \"y\": 2.2071069151970404, \"z\": 0.0973469387755097}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.32042311144275093}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": 0.29204081632653}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.2317575143625774, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": 3.364861055210218, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": 3.364861055210218, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 3.364861055210218, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": 3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": 3.364861055210218, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": 3.3020374325490103, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 3.3020374325490103, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": 3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.32042311144275093}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.3541170367075743, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.364861055210218, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": 3.364861055210218, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": 3.3020374325490103, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.3466606140748247, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": 3.3020374325490103, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": 3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": 3.3466606140748247, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339243}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339243}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.381153809942898, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": 3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": 3.302037432549012, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": 3.3466606140748247, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.3466606140748247, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": 3.3466606140748247, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339243}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.268050175572222, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": 3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.132777109647341, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.132777109647341, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": 3.132777109647341, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.103054647596932, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.021007134594104, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": 3.132777109647341, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": 3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": 3.132777109647341, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.132777109647341, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.154043496011993, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.154043496011993, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.154043496011991, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": 3.154043496011991, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": 3.154043496011991, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.1327771096473427, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": 3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.2496131659313527, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.2496131659313527, \"z\": -2.6283673469387754}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": 3.017755102040816, \"y\": -2.2496131659313527, \"z\": -2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 3.154043496011993, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": 3.154043496011993, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.154043496011991, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": 3.154043496011991, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.154043496011991, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": 3.179943335025481, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": 3.179943335025481, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.102468696075248, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 3.179943335025481, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": 3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.179943335025481, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.179943335025481, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 3.0229181735722728, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115548, \"z\": -2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.531741399534515}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115548, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.531741399534515}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": 3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115544, \"z\": 2.6283673469387754}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534516}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115544, \"z\": 2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 3.1667268074338883, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 3.0432295123839292, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115544, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.531741399534515}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": 3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": 3.034532948343119, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": 3.034532948343119, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.034532948343119, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.034532948343119, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422453, \"z\": 1.2655102040816324}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 3.195024108589977, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422453, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 3.195024108589977, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422453, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": 3.195024108589977, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": 3.1485832311202664, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 3.0574700229616774, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534516}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": 3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": 3.034532948343119, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.034532948343119, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.0660274308773205, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 3.03452909240713, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.0660274308773188, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.0660274308773188, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 3.0660274308773188, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.0332399519463724, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.195024108589977, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.065464125433053, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": 3.195024108589977, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.195024108589977, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": 3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": 3.0660274308773205, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 3.0954688110212736, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 3.0954688110212736, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 3.0954688110212736, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 3.069297143096094, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 3.069297143096094, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 3.069297143096094, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 3.095468811021272, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": 3.0660274308773188, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 3.095468811021272, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 3.095468811021272, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 3.0660274308773188, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.0660274308773188, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": 3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": 3.0954688110212736, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.0954688110212736, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": 3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": 3.069297143096094, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.069297143096094, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.069297143096094, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": 3.095468811021272, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.095468811021272, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 3.1889390734557175, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.1889390734557175, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.1889390734557175, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.095468811021272, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": 3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": 3.1889390734557193, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": 3.1889390734557175, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": 3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.1889390734557175, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": 3.1889390734557175, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": 3.1889390734557193, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": 3.1889390734557193, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.1889390734557193, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": 3.1889390734557193, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.1889390734557193, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.1889390734557193, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 3.1889390734557175, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 3.0692971430960947, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 3.0954688110212736, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 3.1519359625094765, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.1950241085899815, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302913}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.1950241085899815, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.1950241085899815, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 3.03452909240713, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 3.03452909240713, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 3.03452909240713, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 3.034529092407128, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 3.0401096533648424, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 3.034529092407128, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 3.034529092407128, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 3.1869113564161324, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": 3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": 3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.531741399534514}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302913}, {\"x\": 3.1950241085899815, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302913}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": 3.1950241085899815, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 3.1950241085899815, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": 3.03452909240713, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 3.03452909240713, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 3.03452909240713, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.0350635495856553, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": 3.034529092407128, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.034529092407128, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 3.034529092407128, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.034532948343121, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": 3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": 3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": 3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.531741399534514}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.36674633592686}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.36674633592686}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 3.1485832311202655, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.12887365311325}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": 3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": 3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": 3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.0574700229616774, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.36674633592686}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.195911008852586, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": 3.1582847766066813, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": 3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": 3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 3.1667268074338883, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": 3.0432295123839292, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": 3.1240548354532143, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": 3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 3.179943335025481, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.0229181735722728, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": 3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.132777109647341, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": 3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": 3.132777109647341, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.1540434960119894, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.1327771096473427, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.1327771096473427, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.1327771096473427, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": 3.102468696075249, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": 3.132777109647341, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": 3.132777109647341, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": 3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 3.1327771096473427, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": 3.1327771096473427, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": 3.1327771096473427, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 3.103054647596932, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 3.021007134594104, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239193, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239193, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239193, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.947355348469025, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.947355348469025, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": 2.947355348469025, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8933666355853207, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": 2.947355348469025, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": 3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": 2.947355348469025, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 2.947355348469025, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.561204122915182, \"z\": 2.6283673469387754}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": 2.8230612244897957, \"y\": -2.561204122915182, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": 3.017755102040816, \"y\": -2.2496131659313527, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.2496131659313527, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": 2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": 2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 2.8706723300761823, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": 3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.141882770242269}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.8739321799239175, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115548, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115548, \"z\": -2.6283673469387754}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115548, \"z\": -2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.531741399534515}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": 3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.141882770242269}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.141882770242269}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115544, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534516}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": 3.017755102040816, \"y\": -1.9609249413115544, \"z\": 2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.531741399534515}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.0716420006705674}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422453, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": -1.6795520734422453, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -1.6837146864228636, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534516}, {\"x\": 3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534516}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": 2.9111187256747106, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.0716420006705674}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": 2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": 2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 2.8330795420162653, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.1030546475969323}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.531741399534514}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.531741399534514}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 2.8393277044720273, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 2.840115562147383, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 2.8330795420162636, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.1030546475969323}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.531741399534514}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422703}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422703}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": 2.9793378197671583, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": 3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": 2.8487324211049394, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422703}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": 3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 2.8827330805167612, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8246881103707153, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": 2.9548434799859136, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": 3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": 2.8739321799239184, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.947355348469025, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": 2.947355348469025, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": 2.8706723300761805, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": 2.9244500586297484, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": 2.947355348469025, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": 2.947355348469025, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": 2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": 2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239175, \"z\": -2.238979591836735}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239175, \"z\": -2.238979591836735}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239175, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.8933666355853207, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.634965598753447, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": 2.634965598753447, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.742519341842536, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.634965598753447, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.634965598753447, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.742519341842536, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.742519341842536, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.634965598753447, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": 2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239193, \"z\": 2.238979591836734}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8739321799239193, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": 2.742519341842536, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.742519341842536, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.742519341842536, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.7985112186748093, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": 2.7503592217755104, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.7503592217755104, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 2.750359221775512, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.750359221775512, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": 2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.7503592217755104, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": 2.7503592217755104, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": 2.7503592217755104, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.750359221775512, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.750359221775512, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.8230612244897957, \"y\": -2.561204122915182, \"z\": 2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.565518955089131, \"z\": 2.8230612244897957}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.7655653965786, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.561204122915182, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": 2.6283673469387754, \"y\": -2.565518955089131, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": 2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": 2.721921783072272, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": 2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952623}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": 2.721921783072272, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": 2.7219217830722737, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": 2.7219217830722737, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 2.7219217830722737, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.7471822828790575, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.3466606140748256}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": 2.721921783072272, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.721921783072272, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 2.721921783072272, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": 2.721921783072272, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.141882770242269}, {\"x\": 2.7219217830722737, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 2.7219217830722737, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": 2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.720203693033617, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.3466606140748256}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.141882770242269}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.141882770242269}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 2.7037771413752525, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.7065516666173766, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": 2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.7276992764948567, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.7276992764948567, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.7276992764948567, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.0716420006705674}, {\"x\": 2.816799927822559, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.816799927822559, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.816799927822559, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 2.797292796187869, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": 2.8167999278225606, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": 2.8167999278225606, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": 2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 2.7276992764948558, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.6404106843265387, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.7276992764948558, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": 2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": 2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.6838971120578297, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 2.7276992764948567, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 2.7276992764948567, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 2.7276992764948567, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.750359221775511}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.0716420006705674}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.816799927822559, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.0716420006705674}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.816799927822559, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.8167999278225606, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.8167999278225606, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": 2.8167999278225606, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": 2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755095}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.804231895872636, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 2.7276992764948558, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 2.7276992764948558, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 2.7276992764948558, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.590109225563309, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.6838971120578288, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": -1.590109225563309, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408917, \"z\": -3.991224489795918}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.954944023495885}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408917, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.954944023495885}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.750359221775511}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755095}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": 3.2124489795918363}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": 3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 2.719715136064118, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 2.7346206939334303, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 2.7351561436487684, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 2.675967697816728, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.675967697816728, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.675967697816728, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.7152524529982225, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 2.675967697816728, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 2.657938576633641, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.954944023495885}, {\"x\": 2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": 2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": 2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": 2.675967697816728, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": 2.6847084755086295, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 2.675967697816728, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.9549440234958824}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": -3.6018367346938773}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": -3.6018367346938773}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.9549440234958824}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 2.6847084755086295, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.675967697816728, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 2.657938576633641, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": 2.816799927822556, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": 2.816799927822556, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": 2.816799927822556, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.88796062953503}, {\"x\": 2.816799927822557, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.816799927822557, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 2.6499629538810714, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.7197151360641163, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 2.7346206939334294, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 2.7351561436487684, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": 2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.657938576633639, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.1030546475969323}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.1030546475969323}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.816799927822556, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": 2.816799927822556, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.797292796187869, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": 2.797292796187869, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": 2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119257}, {\"x\": 2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.816799927822557, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.88796062953503}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.816799927822557, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": 2.816799927822557, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": 2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.804231895872636, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 2.7837362240728876, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 2.7590433150549076, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.63420098978186}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.6838971120578297, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.1030546475969323}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": 2.797292796187869, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.797292796187869, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 2.797292796187869, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422703}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422703}, {\"x\": 2.797292796187869, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": 2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119257}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119257}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.7829886192710145, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": 2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 2.6404106843265387, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.63420098978186}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 2.721921783072272, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.721921783072272, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422703}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": 2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": 2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 2.7037771413752525, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": 2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": 2.7065516666173783, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 2.721921783072272, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 2.721921783072272, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.721921783072272, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": 2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": 2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": 2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": 2.720203693033617, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": 2.7503592217755104, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.7503592217755104, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": 2.7471822828790584, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.742519341842536, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": 2.742519341842536, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.7985112186748093, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.7503592217755104, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 2.7503592217755104, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.7503592217755104, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": 2.7985112186748093, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.7503592217755104, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.750359221775512, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": 2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": 2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": 2.7655653965786, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.742519341842536, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239175, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239175, \"z\": -2.238979591836735}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": 2.742519341842536, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239175, \"z\": -2.238979591836735}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": 2.7985112186748093, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": 2.7985112186748093, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": 2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": 2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": 2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": 2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.5218638123950896, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.5218638123950896, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254813, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254813, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254813, \"z\": -2.238979591836735}, {\"x\": 2.531741399534516, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.531741399534516, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": 2.531741399534516, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.531741399534514, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": 1.8495918367346933}, {\"x\": 2.531741399534514, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254818, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.1024686960752494, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1024686960752494, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254818, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.433673469387754, \"y\": -3.1024686960752494, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": -2.6283673469387754}, {\"x\": 2.5218638123950896, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.5218638123950896, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": -2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.5218638123950896, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.2496131659313527}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.531741399534516, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.531741399534516, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.531741399534514, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.531741399534514, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": 2.531741399534514, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": 2.6283673469387754}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.5218638123950914, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.5655189550891313, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": -3.017755102040816}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": -3.017755102040816}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": 2.443119458785766, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.443119458785766, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.443119458785768, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.443119458785768, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.443119458785768, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.6283673469387754, \"y\": -2.565518955089131, \"z\": 2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": 3.017755102040816}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.561204122915181, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.565518955089131, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.5358051065569835, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": -3.2124489795918363}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.5358051065569835, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": -3.2124489795918363}, {\"x\": 2.5358051065569835, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.443119458785766, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.409979912896136, \"z\": -1.4602040816326531}, {\"x\": 2.443119458785766, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": -2.409979912896136, \"z\": -1.4602040816326531}, {\"x\": 2.443119458785766, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": -2.4099799128961332, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.443119458785768, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.4099799128961332, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": 2.443119458785768, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": -2.4099799128961332, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": 3.2124489795918363}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.540579012497636, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -3.5516926207380743}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.5358051065569835, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.3466606140748256}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.3466606140748256}, {\"x\": 2.5358051065569835, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.3466606140748256}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.5358051065569835, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -1.4632450125373793}, {\"x\": 2.433673469387754, \"y\": -2.0607034251405953, \"z\": -1.4602040816326531}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.0607034251405953, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.0607034251405953, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": -2.060703425140596, \"z\": 1.4602040816326527}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.060703425140596, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 1.4632450125373788}, {\"x\": 2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.5358051065569827, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 3.5516926207380735}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.5041107551044037, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.5041107551044037, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -3.5516926207380743}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.3466606140748256}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -1.4632450125373793}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 2.616530358567796, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": 2.616530358567796, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.616530358567797, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 2.616530358567797, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": 2.616530358567797, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 2.4384991725727216, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 1.4632450125373788}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": 2.616530358567797, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 1.4632450125373788}, {\"x\": 2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 3.5516926207380735}, {\"x\": 2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 3.5516926207380735}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080546, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080546, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.9852629033447378, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080546, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -4.103179600794151}, {\"x\": 2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.75277652260842, \"z\": -3.991224489795918}, {\"x\": 2.5041107551044037, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": 2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": 2.5041107551044037, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.433673469387754, \"y\": -1.75277652260842, \"z\": -3.991224489795918}, {\"x\": 2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.5041107551044037, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.616530358567796, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.616530358567796, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.616530358567796, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": 2.6283673469387754, \"y\": -1.8420913507602745, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": 2.616530358567797, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.616530358567797, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": 2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": 2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": 2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": 2.598158085188903, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.752776522608419, \"z\": 3.9912244897959184}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.598158085188903, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": 2.598158085188903, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.5041107551044055, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": 2.598158085188903, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 4.1031796007941495}, {\"x\": 2.433673469387754, \"y\": -1.752776522608419, \"z\": 3.9912244897959184}, {\"x\": 2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": 2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -4.103179600794151}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -4.103179600794151}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.750359221775511}, {\"x\": 2.570682668660644, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 2.570682668660644, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -2.4431194587857648}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.570682668660644, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": 2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 2.443119458785765}, {\"x\": 2.5706826686606457, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 2.443119458785765}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4939631397489888, \"z\": 2.6283673469387754}, {\"x\": 2.5706826686606457, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755095}, {\"x\": 2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": 2.6283673469387754, \"y\": -1.590109225563309, \"z\": 3.9912244897959184}, {\"x\": 2.598158085188903, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.590109225563309, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 4.1031796007941495}, {\"x\": 2.598158085188903, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.590109225563309, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 4.1031796007941495}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 4.169139467370988}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 4.1031796007941495}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408917, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408917, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408917, \"z\": -3.991224489795918}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.954944023495885}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.750359221775511}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.570682668660644, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.750359221775511}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.570682668660644, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -2.4431194587857648}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 2.443119458785765}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.5706826686606457, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 2.5706826686606457, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755095}, {\"x\": 2.5706826686606457, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": 3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2913378290848603, \"z\": 3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": 2.6097168055155793, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 2.6097168055155793, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": -1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6097168055155793, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 4.169139467370988}, {\"x\": 2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.954944023495885}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.609716805515582, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -3.1540434960119907}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": 3.017755102040816}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.6117385178884858, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": 2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.6097168055155793, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 2.6097168055155793, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.506308793585487, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.506308793585487, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.6097168055155793, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.506308793585487, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -3.1540434960119907}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": 3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725744, \"z\": 3.9912244897959184}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725744, \"z\": 3.9912244897959184}, {\"x\": 2.506308793585487, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.506308793585487, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.5934865620629948, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.506308793585487, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725744, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558225, \"z\": -3.7965306122448976}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": -3.6018367346938773}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558225, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": -3.6018367346938773}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": 3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.4472601851032154, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558207, \"z\": 3.796530612244897}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558207, \"z\": 3.796530612244897}, {\"x\": 2.501399812028329, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558207, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": -3.7965306122448976}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": -3.7965306122448976}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523152, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": -3.7965306122448976}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523152, \"z\": -3.6018367346938773}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523152, \"z\": -3.6018367346938773}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": 3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": 3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": 3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.5063087935854886, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.433673469387754, \"y\": 0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.5063087935854886, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.5063087935854886, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -3.1540434960119903}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": 3.2124489795918363}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": 3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.4472601851032154, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.501399812028329, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.506308793585487, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 0.933837960772574, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.506308793585487, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.506308793585487, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.506308793585487, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.433673469387754, \"y\": 0.933837960772574, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.5063087935854886, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 2.5063087935854886, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.9549440234958824}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.9549440234958824}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.5063087935854886, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": -3.6018367346938773}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": -3.6018367346938773}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -3.1540434960119903}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -3.1540434960119903}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -2.870672330076182}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 2.8706723300761805}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": 3.017755102040816}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": 3.017755102040816}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.469610641413591, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.5539263102654886, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.5934865620629948, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.506308793585487, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.506308793585487, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": 2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -4.169139467370988}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.9549440234958824}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -2.870672330076182}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -2.870672330076182}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -2.4431194587857656}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 2.443119458785766}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 2.5237133976702326, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": 2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 4.169139467370986}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.5981580851889055, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -4.169139467370988}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": 2.5981580851889055, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -2.4431194587857656}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -2.4431194587857656}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.88796062953503}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.88796062953503}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 2.443119458785766}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": 2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": 2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": 2.598158085188903, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.598158085188903, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": 2.598158085188903, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 4.169139467370986}, {\"x\": 2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.5981580851889055, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -3.8679567161651294}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -3.8679567161651294}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -3.8679567161651294}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082217}, {\"x\": 2.5981580851889055, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -1.5961613478166208}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -1.5961613478166208}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": 2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.6165303585677986, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119257}, {\"x\": 2.6165303585677986, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.6165303585677986, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.88796062953503}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 1.6661991406828598, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.88796062953503}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.63420098978186}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": 2.598158085188903, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": 2.598158085188903, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": 2.598158085188903, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -3.8679567161651294}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -3.551692620738075}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -3.551692620738075}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -1.4632450125373793}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -1.5961613478166208}, {\"x\": 2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -1.4632450125373793}, {\"x\": 2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119257}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.6165303585677986, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119257}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 2.6165303585677986, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": 2.433673469387754, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.63420098978186}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.63420098978186}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.5041107551044055, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -3.551692620738075}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -3.302037432549012}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -3.302037432549012}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -3.302037432549012}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -1.4632450125373793}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.060703425140596, \"z\": -1.4602040816326531}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": 2.060703425140596, \"z\": -1.4602040816326531}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": 2.0607034251405967, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.0607034251405967, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": 2.4384991725727216, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": 2.433673469387754, \"y\": 2.0607034251405967, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": 2.433673469387754, \"y\": 2.141963735944099, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.141963735944099, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.141963735944099, \"z\": 3.4071428571428566}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": 2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.141963735944099, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -3.302037432549012}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": 2.409979912896138, \"z\": -1.4602040816326531}, {\"x\": 2.443119458785765, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.409979912896138, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.443119458785765, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.409979912896138, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.443119458785766, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.433673469387754, \"y\": 2.4099799128961354, \"z\": 1.4602040816326527}, {\"x\": 2.443119458785766, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.443119458785766, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.4099799128961354, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": 3.2124489795918363}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": 2.5358051065569835, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": -3.017755102040816}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": -3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.443119458785765, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.443119458785765, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.443119458785765, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": 2.443119458785766, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.443119458785766, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": 3.017755102040816}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": 2.540579012497637, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": 2.561204122915181, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.5218638123950896, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": 2.5218638123950896, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.531741399534516, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.531741399534516, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.531741399534516, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": 2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": 2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.5218638123950914, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.5218638123950914, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.5218638123950914, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": 2.5655189550891313, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.433673469387754, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": 2.5218638123950896, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.5218638123950896, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": 2.5218638123950896, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": -2.238979591836735}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": 2.531741399534516, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": 2.531741399534516, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": 2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": 2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.5218638123950914, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.5218638123950914, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.302037432549011, \"z\": -2.433673469387755}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -3.302037432549011, \"z\": -2.433673469387755}, {\"x\": 2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -3.302037432549011, \"z\": -2.433673469387755}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": -2.238979591836735}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -3.31504120791802, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": -2.238979591836735}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -1.9221094207050804}, {\"x\": 2.238979591836734, \"y\": -3.31504120791802, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": 2.238979591836734}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -3.3020374325490125, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": 2.238979591836734}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.238979591836734, \"y\": -3.3020374325490125, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.238979591836734, \"y\": -3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254813, \"z\": -2.238979591836735}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -3.102468696075249, \"z\": -2.433673469387755}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254813, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": -2.044285714285714}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254813, \"z\": -2.238979591836735}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -1.9221094207050804}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -1.9221094207050804}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.1485832311202673, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -3.1485832311202673, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.238979591836734, \"y\": -3.1485832311202673, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -3.0574700229616782, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254818, \"z\": 2.238979591836734}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.3667463359268606, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -3.1667268074338892, \"z\": 2.0442857142857136}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254818, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1024686960752494, \"z\": 2.433673469387754}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.3940297843629086, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -3.1799433350254818, \"z\": 2.238979591836734}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.132777109647343, \"z\": 2.6283673469387754}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.3159769654657607, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.1024686960752494, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.238979591836734, \"y\": -3.132777109647343, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": -2.8230612244897957}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": -2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.238979591836734, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.238979591836734, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.238979591836734, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.238979591836734, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": 2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": 2.8230612244897957}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.3509404110304484, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.9473553484690274, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.433673469387754, \"y\": -2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.323038073049136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": -3.017755102040816}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -3.179943335025481}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -1.5377059421436696}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": 3.017755102040816}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.521863812395091, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 3.179943335025481}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -3.179943335025481}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -3.102468696075248}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.409979912896136, \"z\": -1.4602040816326531}, {\"x\": 2.3837065716516275, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.433673469387754, \"y\": -2.409979912896136, \"z\": -1.4602040816326531}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": -1.46385547795929}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -1.5377059421436696}, {\"x\": 2.433673469387754, \"y\": -2.409979912896136, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.3837065716516275, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.4099799128961332, \"z\": 1.4602040816326527}, {\"x\": 2.3837065716516292, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.3837065716516292, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.4099799128961332, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.3837065716516292, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 3.179943335025481}, {\"x\": 2.433673469387754, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 3.179943335025481}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": 2.433673469387754, \"y\": -2.31597696546576, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -3.5516926207380743}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -3.5960109220398273}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -3.5516926207380743}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -3.302037432549011}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": -3.4071428571428566}, {\"x\": 2.3837065716516275, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.0607034251405953, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -1.4632450125373793}, {\"x\": 2.3837065716516275, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -1.4632450125373793}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -1.4632450125373793}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.3837065716516275, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": -2.0607034251405953, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 1.4352054093163318}, {\"x\": 2.3837065716516292, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.060703425140596, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": -2.060703425140596, \"z\": 1.4602040816326527}, {\"x\": 2.3837065716516292, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.433673469387754, \"y\": -2.060703425140596, \"z\": 1.4602040816326527}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 1.4632450125373788}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 1.4632450125373788}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": 2.433673469387754, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 3.5516926207380735}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": 2.433673469387754, \"y\": -2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -3.8689639812968455}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -3.5516926207380743}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -3.5960109220398273}, {\"x\": 2.238979591836734, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080555, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -3.5516926207380743}, {\"x\": 2.238979591836734, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -1.7213297629589528}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986093, \"z\": -1.6548979591836734}, {\"x\": 2.3446738921774406, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986093, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.3446738921774406, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986093, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": -1.4632450125373793}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.3446738921774415, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.3446738921774415, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 1.4632450125373788}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.3446738921774415, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 1.7213297629589537}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": 2.433673469387754, \"y\": -2.044285714285714, \"z\": 3.5516926207380735}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080546, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080546, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -2.0044762663080546, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.433673469387754, \"y\": -1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -4.103179600794151}, {\"x\": 2.433673469387754, \"y\": -1.75277652260842, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -4.103179600794151}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -3.8689639812968455}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.75277652260842, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -3.8679567161651276}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": 2.3446738921774406, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -1.7213297629589528}, {\"x\": 2.3446738921774406, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.3446738921774406, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": -1.59616134781662}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536404, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": 2.3446738921774415, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 1.7213297629589537}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.3446738921774415, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 1.7213297629589537}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": -1.8045583714536408, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": 2.433673469387754, \"y\": -1.6884840828722916, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.433673469387754, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": 2.433673469387754, \"y\": -1.752776522608419, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192436, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.433673469387754, \"y\": -1.752776522608419, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.752776522608419, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192436, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 4.1031796007941495}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.433673469387754, \"y\": -1.752776522608419, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -4.103179600794151}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -2.4431194587857648}, {\"x\": 2.4099799128961408, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.4099799128961408, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.4099799128961408, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.433673469387754, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": 2.409979912896138, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.5377059421436692, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": -1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.409979912896138, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 2.443119458785765}, {\"x\": 2.433673469387754, \"y\": -1.6548979591836734, \"z\": 4.1031796007941495}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 4.169139467370988}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 4.169139467370988}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -2.8706723300761805}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -2.721921783072273}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952623, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -2.4431194587857648}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.4099799128961408, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": -2.4431194587857648}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.4099799128961408, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.409979912896138, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.409979912896138, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 2.443119458785765}, {\"x\": 2.409979912896138, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": -1.2924468513952614, \"z\": 2.8230612244897957}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": -1.4602040816326531, \"z\": 4.169139467370988}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -4.138158775582058}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -3.1540434960119907}, {\"x\": 2.3116129663671403, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.3116129663671403, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.3116129663671403, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": -2.8230612244897957}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": -3.017755102040816}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": -2.8706723300761805}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -2.721921783072273}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.3116129663671385, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 2.8706723300761805}, {\"x\": 2.381508906173603, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": -1.1723507171838912, \"z\": 3.017755102040816}, {\"x\": 2.3116129663671385, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.433673469387754, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": 2.3116129663671403, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": -3.2124489795918363}, {\"x\": 2.3116129663671403, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": -3.1540434960119907}, {\"x\": 2.3116129663671403, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": 2.3116129663671385, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 3.1540434960119894}, {\"x\": 2.3116129663671385, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": -1.0186157017853277, \"z\": 3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725744, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.4017783632936824, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.4017783632936824, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.433673469387754, \"y\": -0.9338379607725744, \"z\": 3.9912244897959184}, {\"x\": 2.4017783632936824, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.433673469387754, \"y\": -1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.312519264166153, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558225, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558225, \"z\": -3.7965306122448976}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.4017783632936833, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.312519264166153, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558225, \"z\": -3.7965306122448976}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": -3.6018367346938773}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": -3.6018367346938773}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": -3.4071428571428566}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": 3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.321741079183064, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -0.8483137488517443, \"z\": 3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558207, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558207, \"z\": 3.796530612244897}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.433673469387754, \"y\": -0.7219553232558207, \"z\": 3.796530612244897}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": -0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.4017783632936824, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.4017783632936824, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.312519264166151, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.312519264166151, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.4017783632936824, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.312519264166151, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.312519264166153, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.312519264166153, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.312519264166153, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": 2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.4179508688336258, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.3500839753466316, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.3500839753466316, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.312519264166151, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.3500839753466316, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.312519264166151, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.312519264166151, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.238979591836734, \"y\": -0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.954320077569496}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.954320077569496}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.4227939150586466}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.422793915058646}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.422793915058646}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.275627489380624, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.349241610541185, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.3500839753466316, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.3500839753466316, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.954320077569495}, {\"x\": 2.238979591836734, \"y\": -0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.3500839753466316, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.255219153108235, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.917715248887721}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.954320077569496}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.917715248887721}, {\"x\": 2.3099977184129328, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.4227939150586466}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.4765357374478087}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.4227939150586466}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.422793915058646}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": 2.307344192049789, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.954320077569495}, {\"x\": 2.3099977184129346, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.9177152488877205}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.954320077569495}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.917715248887721}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.917715248887721}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.917715248887721}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.4765357374478087}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.4765357374478087}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.4765357374478087}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.4765357374478096}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.4765357374478096}, {\"x\": 2.2874723994551607, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.9177152488877205}, {\"x\": 2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.9177152488877205}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.9177152488877205}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.9543200775694958}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.917715248887721}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.9543200775694958}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.4765357374478087}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.422793915058647}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.4765357374478087}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.422793915058646}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.4765357374478096}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.422793915058646}, {\"x\": 2.2874723994551607, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.9177152488877205}, {\"x\": 2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.954320077569495}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.9177152488877205}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.9543200775694958}, {\"x\": 2.238979591836734, \"y\": 0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.422793915058647}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.422793915058647}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 3.3541170367075726}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.422793915058646}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.954320077569495}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.954320077569495}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.3099977184129328, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.238979591836734, \"y\": 0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.312519264166153, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 2.312519264166153, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.312519264166153, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 3.3541170367075726}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.275627489380624, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.349241610541185, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.3500839753466316, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.255219153108235, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.312519264166153, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.4017783632936833, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.312519264166153, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": -3.7965306122448976}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.4017783632936833, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.4017783632936833, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.312519264166153, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523152, \"z\": -3.6018367346938773}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": -3.7965306122448976}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523152, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": -3.4071428571428566}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523152, \"z\": -3.6018367346938773}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": -3.2124489795918363}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": 3.2124489795918363}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": 3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 0.8483137488517434, \"z\": 3.4071428571428566}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": 3.796530612244897}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.4179508688336258, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 0.7162227893523161, \"z\": 3.6018367346938778}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 0.7219553232558216, \"z\": 3.796530612244897}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.4017783632936833, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.433673469387754, \"y\": 0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.4017783632936833, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.4017783632936833, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 0.9338379607725731, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.943277028603224}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": -3.381153809942899}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": -3.2124489795918363}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": -3.017755102040816}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -3.1540434960119903}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -3.1540434960119903}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": 3.017755102040816}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": 3.017755102040816}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.321741079183064, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 1.0186157017853272, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.381153809942898}, {\"x\": 2.433673469387754, \"y\": 0.8761224489795918, \"z\": 3.943277028603223}, {\"x\": 2.433673469387754, \"y\": 0.933837960772574, \"z\": 3.9912244897959184}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 0.933837960772574, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.4017783632936824, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 0.933837960772574, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": -3.1540434960119903}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": -3.017755102040816}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -2.870672330076182}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -2.870672330076182}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -2.7219217830722737}, {\"x\": 2.238979591836734, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.188738909370766, \"z\": 2.8230612244897957}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 2.8706723300761805}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 2.8706723300761805}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.238979591836734, \"y\": 1.188738909370766, \"z\": 2.8230612244897957}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 2.3116129663671385, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.1723507171838916, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": 2.433673469387754, \"y\": 1.070816326530612, \"z\": 4.060015200176018}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -4.169139467370988}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -4.169139467370988}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": -2.870672330076182}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -2.7219217830722737}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -2.7219217830722737}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.409979912896138, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -2.4431194587857656}, {\"x\": 2.409979912896138, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": -2.6283673469387754}, {\"x\": 2.409979912896138, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -2.383706571651628}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": 2.4099799128961363, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 2.443119458785766}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.4099799128961363, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 2.443119458785766}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 1.3890184017174825, \"z\": 2.6283673469387754}, {\"x\": 2.381508906173602, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2924468513952618, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 2.8706723300761805}, {\"x\": 2.433673469387754, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 4.169139467370986}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 4.169139467370986}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -4.169139467370988}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": -2.4431194587857656}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.409979912896138, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -2.383706571651628}, {\"x\": 2.409979912896138, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -2.383706571651628}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 1.9942298409750503}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.4099799128961363, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.4099799128961363, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": 2.4099799128961363, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 2.443119458785766}, {\"x\": 2.433673469387754, \"y\": 1.4602040816326527, \"z\": 4.169139467370986}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": 2.238979591836734, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -3.8679567161651294}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084204, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -1.5961613478166208}, {\"x\": 2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": 2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 1.9942298409750503}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": 2.238979591836734, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.238979591836734, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": 2.433673469387754, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": 2.433673469387754, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -3.8679567161651294}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -3.5960109220398278}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -3.551692620738075}, {\"x\": 2.433673469387754, \"y\": 2.004476266308056, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -3.5960109220398278}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": 2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": 2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -1.5961613478166208}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": -1.5961613478166208}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -1.4632450125373793}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": 2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": 2.433673469387754, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": 2.433673469387754, \"y\": 1.8856514177172814, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": 3.796530612244897}, {\"x\": 2.433673469387754, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -3.5960109220398278}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -3.551692620738075}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -3.5960109220398278}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -3.302037432549012}, {\"x\": 2.433673469387754, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": 2.433673469387754, \"y\": 2.060703425140596, \"z\": -1.4602040816326531}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.433673469387754, \"y\": 2.060703425140596, \"z\": -1.4602040816326531}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -1.4632450125373793}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": -1.4632450125373793}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.433673469387754, \"y\": 2.060703425140596, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.0607034251405967, \"z\": 1.4602040816326527}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.0607034251405967, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.141963735944099, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 3.364861055210218}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": 2.433673469387754, \"y\": 2.141963735944099, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": 2.433673469387754, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -3.302037432549012}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -3.1799433350254818}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -3.1799433350254818}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.409979912896138, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": 2.433673469387754, \"y\": 2.409979912896138, \"z\": -1.4602040816326531}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.4099799128961354, \"z\": 1.4602040816326527}, {\"x\": 2.433673469387754, \"y\": 2.4099799128961354, \"z\": 1.4602040816326527}, {\"x\": 2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.433673469387754, \"y\": 2.4099799128961354, \"z\": 1.4602040816326527}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 3.364861055210218}, {\"x\": 2.433673469387754, \"y\": 2.3159769654657607, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": 2.433673469387754, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -3.1024686960752494}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -3.1799433350254818}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": -3.017755102040816}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.433673469387754, \"y\": 2.5218638123950914, \"z\": 3.017755102040816}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": 2.433673469387754, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -2.9244500586297493}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": -2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": -1.5395263404348967}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.742519341842538, \"z\": 2.8230612244897957}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.433673469387754, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": 2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -2.747182282879059}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.238979591836734, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.238979591836734, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.238979591836734, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": 2.238979591836734, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.433673469387754, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.433673469387754, \"y\": 2.8230612244897957, \"z\": 2.7471822828790584}, {\"x\": 2.323038073049136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.433673469387754, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -2.5405790124976364}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": 2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": -2.238979591836735}, {\"x\": 2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": -2.238979591836735}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -1.9221094207050808}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.3159769654657607, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.3159769654657607, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.3159769654657607, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.102468696075249, \"z\": 2.433673469387754}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.433673469387754, \"y\": 3.017755102040816, \"z\": 2.540579012497637}, {\"x\": 2.3509404110304484, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": -2.433673469387755}, {\"x\": 2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": 2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -1.9221094207050808}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.364861055210218, \"z\": 2.238979591836734}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.364861055210218, \"z\": 2.238979591836734}, {\"x\": 2.3667463359268606, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.3159769654657607, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.364861055210218, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.3940297843629086, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 2.3159769654657607, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.141963735944098, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380743, \"z\": -2.433673469387755}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380743, \"z\": -2.433673469387755}, {\"x\": 2.141963735944098, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380743, \"z\": -2.433673469387755}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -3.5031275539105446, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 2.0442857142857136, \"y\": -3.5031275539105446, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380752, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380752, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.141963735944098, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.238979591836734, \"y\": -3.302037432549011, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.141963735944098, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.302037432549011, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": -2.238979591836735}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.141963735944098, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -3.302037432549011, \"z\": -2.433673469387755}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -3.31504120791802, \"z\": -2.044285714285714}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": -2.238979591836735}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -1.9221094207050804}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.31504120791802, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -1.9221094207050804}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": 1.8495918367346933}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.238979591836734, \"y\": -3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": 1.8495918367346933}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": 2.238979591836734}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.132874205507422, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -3.3020374325490125, \"z\": 2.433673469387754}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.1954708055841623, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -3.364861055210217, \"z\": 2.238979591836734}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.141963735944099, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.3020374325490125, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": -2.8230612244897957}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.238979591836734, \"y\": -3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": -2.8230612244897957}, {\"x\": 2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": -1.9221094207050804}, {\"x\": 2.238979591836734, \"y\": -3.1485832311202673, \"z\": -1.8495918367346937}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -3.1485832311202673, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -3.1485832311202673, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.128873653113251, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -3.148583231120267, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.238979591836734, \"y\": -3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.238979591836734, \"y\": -3.132777109647343, \"z\": 2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.047861477719281, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": 2.8230612244897957}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.047861477719281, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.047861477719281, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.1502848506354892, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.132777109647343, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.047861477719281, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": 2.8230612244897957}, {\"x\": 2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": -2.8230612244897957}, {\"x\": 2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.238979591836734, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.071642000670561, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.238979591836734, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 2.238979591836734, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.071642000670561, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": 2.0716420006705745, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.0716420006705745, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0716420006705745, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 2.238979591836734, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": 2.8230612244897957}, {\"x\": 2.047861477719281, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.047861477719281, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8933666355853216, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.071642000670561, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.81679992782256, \"z\": -1.6548979591836734}, {\"x\": 2.071642000670561, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": -2.81679992782256, \"z\": -1.6548979591836734}, {\"x\": 2.071642000670561, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.0716420006705745, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.0716420006705745, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.0442857142857136, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.238979591836734, \"y\": -2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.238979591836734, \"y\": -2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -3.179943335025481}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -3.179943335025481}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": 2.238979591836734, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 3.179943335025481}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 3.179943335025481}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 3.1667268074338875}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -3.315041207918019}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -3.179943335025481}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -3.179943335025481}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": -1.5377059421436696}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -1.6286195757585573}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 3.1667268074338875}, {\"x\": 2.238979591836734, \"y\": -2.433673469387755, \"z\": 3.179943335025481}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 3.1667268074338875}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 2.238979591836734, \"y\": -2.394029784362908, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -3.5960109220398273}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -3.5960109220398273}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -3.315041207918019}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -1.6286195757585573}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -1.6286195757585573}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 2.238979591836734, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.1328742055074206, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 2.0442857142857136, \"y\": -2.1328742055074206, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 2.238979591836734, \"y\": -2.195470805584161, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -3.8689639812968455}, {\"x\": 2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": 2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -3.5960109220398273}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -3.5960109220398273}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": 2.0522421081796853, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986093, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -1.7213297629589528}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -1.7213297629589528}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -1.7213297629589528}, {\"x\": 2.0522421081796853, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 2.0522421081796853, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": -1.5838294508678001}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986093, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 1.5838294508678006}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 1.7213297629589537}, {\"x\": 2.1202080227536655, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 1.7213297629589537}, {\"x\": 2.238979591836734, \"y\": -1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 1.8556096731587344}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 2.238979591836734, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": 2.238979591836734, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 2.238979591836734, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": 2.1370699637084947, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.1370699637084947, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.1018036663404036, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.1018036663404036, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -3.9557976004473527}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 2.1018036663404036, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -3.8689639812968455}, {\"x\": 2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -2.1202080227536655}, {\"x\": 2.0442857142857136, \"y\": -1.705007767136888, \"z\": -2.044285714285714}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.0522421081796853, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 2.0522421081796853, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.705007767136888, \"z\": -2.044285714285714}, {\"x\": 2.0522421081796853, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": -1.7213297629589528}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 1.7213297629589537}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 1.8556096731587344}, {\"x\": 2.0442857142857136, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 1.8556096731587344}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.238979591836734, \"y\": -1.7483477235022775, \"z\": 1.8495918367346933}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 2.1370699637084947, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192436, \"z\": 3.9912244897959184}, {\"x\": 2.101803666340407, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192436, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.1370699637084947, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": -1.7399663004192436, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.101803666340407, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.1018036663404036, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": 2.1018036663404036, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -3.9557976004473527}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": 2.060703425140593, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": 2.060703425140593, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -2.1202080227536655}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.159492601764309, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": 2.060703425140596, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.060703425140596, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 2.060703425140596, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 2.101803666340407, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": 2.101803666340407, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": 2.101803666340407, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 2.238979591836734, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -2.721921783072273}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -2.721921783072273}, {\"x\": 2.060703425140593, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": 2.060703425140593, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 2.060703425140593, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": 2.238979591836734, \"y\": -1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": 2.060703425140596, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.060703425140596, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": 2.238979591836734, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": 2.238979591836734, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -2.721921783072273}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": -2.721921783072273}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.238979591836734, \"y\": -1.1887389093707665, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 2.238979591836734, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.238979591836734, \"y\": -0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.238979591836734, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": -3.2124489795918363}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": -0.73431025758551, \"z\": 3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 3.1582847766066813}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 3.1582847766066813}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.2019579742553432, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": 2.238979591836734, \"y\": -0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.238979591836734, \"y\": -0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 2.238979591836734, \"y\": -0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.954320077569496}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.4227939150586466}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 3.1582847766066813}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 2.1117200669275036, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": -0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.422793915058646}, {\"x\": 2.238979591836734, \"y\": -0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.954320077569495}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.238979591836734, \"y\": -0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.238979591836734, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -4.128049628240754}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 2.1991799385091113, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -4.128049628240754}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": 2.1991799385091113, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.917715248887721}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.954320077569496}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.917715248887721}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.4227939150586466}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.4765357374478087}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": -3.4227939150586466}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": -3.2124489795918363}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -3.2144014086541044}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": -3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": 3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.422793915058646}, {\"x\": 2.2317575143625774, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.954320077569495}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.9177152488877205}, {\"x\": 2.1991799385091104, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.2920408163265309, \"z\": 3.954320077569495}, {\"x\": 2.1991799385091104, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": 2.1991799385091104, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 2.2175322528784465, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 2.1991799385091104, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": 2.1991799385091113, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -4.128049628240754}, {\"x\": 2.1991799385091113, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": 2.1991799385091113, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": 2.1991799385091113, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": 2.1991799385091113, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.917715248887721}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.917715248887721}, {\"x\": 2.1991799385091113, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.917715248887721}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.4765357374478087}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.4765357374478087}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": -3.4765357374478087}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -3.2144014086541044}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -3.2144014086541044}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.4765357374478096}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": 2.2071069151970404, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.4765357374478096}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.9177152488877205}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.9177152488877205}, {\"x\": 2.1991799385091104, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": 2.1991799385091104, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": -0.0973469387755106, \"z\": 3.9177152488877205}, {\"x\": 2.1991799385091104, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": 2.1991799385091104, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": 2.1991799385091104, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": 2.1991799385091104, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 2.1991799385091113, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": 2.1991799385091113, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 2.1991799385091113, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.9543200775694958}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.917715248887721}, {\"x\": 2.1991799385091113, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.9543200775694958}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.4765357374478087}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.422793915058647}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": -3.4765357374478087}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 2.2071069151970404, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -3.1959110088525855}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": 3.2124489795918363}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": 3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.422793915058646}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.4765357374478096}, {\"x\": 2.2071069151970395, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.422793915058646}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.9177152488877205}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.954320077569495}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": 2.1991799385091104, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.0973469387755097, \"z\": 3.9177152488877205}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": 2.1991799385091104, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.238979591836734, \"y\": 0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.40044277616697066, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.9543200775694958}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": -3.422793915058647}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": -3.4071428571428566}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -3.1959110088525855}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -3.1959110088525855}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 3.3541170367075726}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 3.3541170367075726}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 2.0638147894904026, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 2.2317575143625774, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.32042311144275093, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.422793915058646}, {\"x\": 2.238979591836734, \"y\": 0.29204081632653, \"z\": 3.954320077569495}, {\"x\": 2.238979591836734, \"y\": 0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 2.2175322528784465, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.4004427761669742, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -4.006904388098049}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": -3.3541170367075734}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 3.3541170367075726}, {\"x\": 2.1117200669275036, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -4.053831664284883}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": -3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": -3.2124489795918363}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.2019579742553432, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.7343102575855092, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 3.2510705816607164}, {\"x\": 2.238979591836734, \"y\": 0.6814285714285715, \"z\": 4.053831664284884}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": -3.1240548354532156}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": -3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": 3.017755102040816}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.9999662005822554, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": 2.238979591836734, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": -2.954843479985914}, {\"x\": 2.238979591836734, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.238979591836734, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": 2.0442857142857136, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -2.7219217830722737}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": 2.238979591836734, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.141882770242269, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": 2.238979591836734, \"y\": 1.188738909370766, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": 2.0442857142857136, \"y\": 1.141882770242269, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 2.0442857142857136, \"y\": 1.141882770242269, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.188738909370766, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 2.9548434799859136}, {\"x\": 2.0442857142857136, \"y\": 1.141882770242269, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": -2.7219217830722737}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -2.438499172572721}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.060703425140594, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -2.438499172572721}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -2.383706571651628}, {\"x\": 2.060703425140594, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.0607034251405967, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": 2.0607034251405967, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": 2.0607034251405967, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -3.955797600447352}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -2.438499172572721}, {\"x\": 2.060703425140594, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": -2.433673469387755}, {\"x\": 2.060703425140594, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": -2.383706571651628}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.060703425140594, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": 2.1594926017643106, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.1594926017643106, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.1594926017643115, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 1.9942298409750503}, {\"x\": 2.1594926017643115, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 2.1202080227536673}, {\"x\": 2.1594926017643115, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": 2.0607034251405967, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 2.0607034251405967, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475696, \"z\": 3.9912244897959184}, {\"x\": 2.101803666340407, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475696, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": 2.101803666340407, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475696, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 2.238979591836734, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -3.955797600447352}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": 2.1370699637084956, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -3.955797600447352}, {\"x\": 2.1370699637084956, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.1370699637084956, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.238979591836734, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": 2.1370699637084956, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -3.7360536727332994}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 2.1594926017643106, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": -1.8495918367346937}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": -1.9942298409750503}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": 2.1594926017643106, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 1.8556096731587344}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.1594926017643115, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 1.7483477235022784, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 1.9942298409750503}, {\"x\": 2.1594926017643115, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.1594926017643115, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 2.1202080227536673}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 3.7360536727332985}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.1370699637084947, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.101803666340407, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 2.101803666340407, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": 2.1370699637084947, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 2.1370699637084947, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.101803666340407, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": 2.238979591836734, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -3.8689639812968464}, {\"x\": 2.1370699637084956, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -3.7360536727332994}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.1370699637084956, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -3.7360536727332994}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -3.5960109220398278}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": 2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": -1.7213297629589532}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": -1.8495918367346937}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.1202080227536673, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.1202080227536673, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 1.7050077671368893}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 2.1202080227536673, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 2.052242108179687, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 1.8556096731587344}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": 2.1370699637084947, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 3.7360536727332985}, {\"x\": 2.1370699637084947, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.1370699637084947, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": 2.238979591836734, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": 2.238979591836734, \"y\": 1.896194145156179, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -3.5960109220398278}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": 2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 2.0442857142857136, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": 2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": -1.5838294508678001}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.1202080227536673, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": 2.1202080227536673, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 1.7050077671368893}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 3.364861055210218}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 3.364861055210218}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": 2.238979591836734, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": 2.238979591836734, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -3.1799433350254818}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": -1.5336588298838576}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 3.364861055210218}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": 2.238979591836734, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": 3.2124489795918363}, {\"x\": 2.238979591836734, \"y\": 2.238979591836734, \"z\": 3.364861055210218}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -3.1799433350254818}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.238979591836734, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.0442857142857136, \"y\": 2.8167999278225606, \"z\": -1.6548979591836734}, {\"x\": 2.071642000670561, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.8167999278225606, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.071642000670561, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.8167999278225606, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.0716420006705745, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": 2.0716420006705745, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 2.0716420006705745, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.238979591836734, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.238979591836734, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.047861477719281, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -2.873932179923919}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": 2.047861477719281, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.071642000670561, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.071642000670561, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 2.071642000670561, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": 2.238979591836734, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": 2.0716420006705745, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": 2.238979591836734, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": 2.0716420006705745, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.238979591836734, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.0478614777192803, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.0478614777192803, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.238979591836734, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": 2.0478614777192803, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.238979591836734, \"y\": 2.8230612244897957, \"z\": 2.8739321799239184}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 2.047861477719281, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -2.720203693033618}, {\"x\": 2.047861477719281, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": -2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -1.9221094207050808}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.238979591836734, \"y\": 3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": 2.0478614777192803, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.1327771096473427, \"z\": 2.6283673469387754}, {\"x\": 2.0478614777192803, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.238979591836734, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": 2.0478614777192803, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.141963735944098, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -2.5358051065569844}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": -2.433673469387755}, {\"x\": 2.141963735944098, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.238979591836734, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": 2.141963735944098, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": -1.9221094207050808}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": 2.128873653113251, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": 2.238979591836734, \"y\": 3.364861055210218, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.238979591836734, \"y\": 3.364861055210218, \"z\": 2.238979591836734}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.364861055210218, \"z\": 2.238979591836734}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.141963735944099, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.141963735944099, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.141963735944099, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.302037432549012, \"z\": 2.433673469387754}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.238979591836734, \"y\": 3.2124489795918363, \"z\": 2.5358051065569835}, {\"x\": 2.1502848506354892, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": -2.433673469387755}, {\"x\": 2.141963735944098, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.141963735944098, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.141963735944098, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": 2.0442857142857136}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.132874205507422, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": 2.141963735944099, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": 2.1954708055841623, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 2.141963735944099, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.504110755104405}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -3.867956716165129, \"z\": -2.433673469387755}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.867956716165129, \"z\": -2.433673469387755}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -3.868963981296847, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.867956716165129, \"z\": -2.433673469387755}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.1370699637084947}, {\"x\": 1.8495918367346933, \"y\": -3.868963981296847, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.1370699637084956}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -3.8689639812968464, \"z\": 2.238979591836734}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.8689639812968464, \"z\": 2.238979591836734}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -3.86795671616513, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.8689639812968464, \"z\": 2.238979591836734}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.5041107551044055}, {\"x\": 1.8495918367346933, \"y\": -3.86795671616513, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -2.640410684326539}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.504110755104405}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.1370699637084947}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.1370699637084947}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -1.9478138816155819}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727332994, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727332994, \"z\": 2.0442857142857136}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.1370699637084956}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727332994, \"z\": 2.0442857142857136}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": 1.896194145156179, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": 2.004476266308056, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.5041107551044055}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.5041107551044055}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 2.004476266308056, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -2.640410684326539}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380743, \"z\": -2.433673469387755}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380743, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": 2.004476266308054, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380743, \"z\": -2.433673469387755}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -3.5031275539105446, \"z\": -2.044285714285714}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -1.9478138816155819}, {\"x\": 1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -1.9478138816155819}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.5031275539105446, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.8927343946808346, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.0442857142857136, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.8927343946808346, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": 1.8927343946808346, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": 1.953587870545502, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380752, \"z\": 2.433673469387754}, {\"x\": 2.004476266308056, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 2.039191642628116, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.004476266308056, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380752, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.5516926207380752, \"z\": 2.433673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 2.004476266308056, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 2.004476266308056, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": 1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8927343946808346, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": 1.8495918367346933}, {\"x\": 1.8927343946808346, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8927343946808346, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.2723002981270355, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.0442857142857136, \"y\": -3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 2.0442857142857136, \"y\": -3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 2.0442857142857136, \"y\": -3.0210071345941043, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.0442857142857136, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": 2.0442857142857136, \"y\": -2.81679992782256, \"z\": -1.6548979591836734}, {\"x\": 1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 2.0442857142857136, \"y\": -2.81679992782256, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 2.0442857142857136, \"y\": -2.81679992782256, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": 1.8879606295350282, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 1.8879606295350282, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 1.8879606295350282, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 2.0442857142857136, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.5317413995345146, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.5317413995345146, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -3.057470022961678}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -3.057470022961678}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 1.8495918367346933, \"y\": -2.5317413995345146, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": 1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": 1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": 1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 1.9190280802005297, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": 1.8879606295350282, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 1.9190280802005297, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 1.9190280802005297, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 1.8879606295350282, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": 1.9190280802005297, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": 1.8495918367346933, \"y\": -2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": 2.0442857142857136, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 3.1667268074338875}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": -3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -3.315041207918019}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -3.1485832311202664}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -3.057470022961678}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": 1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -1.6286195757585573}, {\"x\": 1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -1.6286195757585573}, {\"x\": 1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": 1.9190280802005297, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 1.9190280802005297, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": 3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 3.1667268074338875}, {\"x\": 2.0442857142857136, \"y\": -2.433673469387755, \"z\": 3.1667268074338875}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": 2.0442857142857136, \"y\": -2.3667463359268597, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -2.1288736531132506, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -3.2723002981270346}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -2.1288736531132506, \"z\": -3.2124489795918363}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.1288736531132506, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.132874205507421, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -3.315041207918019}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": -2.1288736531132506, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.8495918367346933, \"y\": -2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.8556096731587344, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 1.8556096731587344, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.8556096731587344, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": -1.6286195757585573}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": 1.8495918367346933, \"y\": -2.0522421081796867, \"z\": 1.8495918367346933}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": 1.9942298409750503, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": 2.0442857142857136, \"y\": -2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.0522421081796867, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.12887365311325, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.1328742055074206, \"z\": 3.4071428571428566}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 2.0442857142857136, \"y\": -2.1328742055074206, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": 1.8495918367346933, \"y\": -2.12887365311325, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": 1.8495918367346933, \"y\": -2.12887365311325, \"z\": 3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -2.1328742055074206, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -3.454897421828842}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": -3.4071428571428566}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455016, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -3.2723002981270346}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.8495918367346933, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": 1.8556096731587326, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 1.8556096731587344, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.8556096731587344, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 1.8556096731587326, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.8556096731587326, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": 1.8556096731587344, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": 1.8495918367346933, \"y\": -1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 1.8556096731587344}, {\"x\": 1.8556096731587326, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 1.8556096731587344}, {\"x\": 2.0442857142857136, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 3.454897421828841}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 3.454897421828841}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 3.454897421828841}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": 3.4071428571428566}, {\"x\": 1.9621576060290247, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -3.9557976004473527}, {\"x\": 1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -3.7026914198282936}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285854, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -3.454897421828842}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -2.3446738921774406}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589528, \"z\": -2.238979591836735}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 1.8556096731587326, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.705007767136888, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -2.1202080227536655}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.8556096731587326, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -2.1202080227536655}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -2.1202080227536655}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589528, \"z\": -2.238979591836735}, {\"x\": 1.8556096731587326, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": 2.0442857142857136, \"y\": -1.705007767136888, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 1.8556096731587344}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589532, \"z\": 2.238979591836734}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 2.052242108179687}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": 1.8556096731587344, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": 2.0442857142857136, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589532, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 3.454897421828841}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276853, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 1.9139688830664694, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 3.7026914198282928}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 3.7026914198282928}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 3.7026914198282928}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276853, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276853, \"z\": 3.6018367346938778}, {\"x\": 1.9478138816155814, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 1.9139688830664694, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 1.9148231489671517, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 1.9148231489671517, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -3.928500807922102}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": -3.7965306122448976}, {\"x\": 1.9148231489671517, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475723, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -3.9557976004473527}, {\"x\": 1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -3.7026914198282936}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -2.6165303585677973}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -2.3446738921774406}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": -2.1202080227536655}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 1.9307686943986084, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": 1.8495918367346933, \"y\": -1.5961613478166208, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.5961613478166208, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.5961613478166208, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 2.616530358567797}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": 2.0442857142857136, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 2.616530358567797}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 3.7026914198282928}, {\"x\": 1.9139688830664694, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": 1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": 3.796530612244897}, {\"x\": 1.9139688830664694, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 1.9148231489671517, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -4.08964680694472}, {\"x\": 1.9148231489671517, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -3.928500807922102}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -2.6165303585677973}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 2.616530358567797}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 2.616530358567797}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": 2.0442857142857136, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": 1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": 1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 2.0442857142857136, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 1.8495918367346933, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": 1.8495918367346933, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": 1.8495918367346933, \"y\": -1.225403464299267, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.225403464299267, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 2.0442857142857136, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.9828261655690511, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": 1.9828261655690511, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 1.982826165569059, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.982826165569059, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 2.0442857142857136, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 1.982826165569059, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.9828261655690511, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.9859474869329627, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.9828261655690511, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.9828261655690511, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.9859474869329627, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 1.9828261655690511, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.982826165569059, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.982826165569059, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.9859474869329627, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.9744923503409613, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.9859474869329627, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.9859474869329627, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.9744923503409613, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 1.9859474869329627, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 3.1582847766066813}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 3.1582847766066813}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -4.238948728121449}, {\"x\": 1.9744923503409613, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": 1.9744923503409613, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -4.238948728121449}, {\"x\": 1.9744923503409613, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 1.9744923503409613, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 3.1582847766066813}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 1.9658731394524427, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": 1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 1.9658731394524427, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": 1.9658731394524427, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.9658731394524427, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": 1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -4.238948728121449}, {\"x\": 1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": 1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": 1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": 1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": 1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -3.2144014086541044}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": -3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": -3.1959110088525855}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 3.195911008852584}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 2.0442857142857136, \"y\": -0.11322807683796032, \"z\": 3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": 1.9614800278928328, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": 1.9658731394524427, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": -0.2920408163265309, \"z\": 4.135721983457609}, {\"x\": 1.9614800278928328, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": 1.9614800278928328, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": 1.9658731394524427, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": 1.9614800278928328, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": 1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": 1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": 1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": 1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": 1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -4.128049628240754}, {\"x\": 1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -3.2144014086541044}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": -3.2144014086541044}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": 2.041939729129485, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": 1.9614800278928328, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": 1.9614800278928328, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": 1.9614800278928328, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": 1.9614800278928328, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": 1.9614800278928328, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": 1.9614800278928328, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -4.238948728121449}, {\"x\": 1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": 1.9658731394524418, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": 1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -4.238948728121449}, {\"x\": 1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": 1.9658731394524418, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": 1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": -3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -3.1959110088525855}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -3.1959110088525855}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": 3.2124489795918363}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": 2.041939729129485, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.11322807683796121, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 1.9658731394524427, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": 1.9614800278928328, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": 1.9658731394524427, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": 1.9658731394524427, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": 1.9614800278928328, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": 1.9658731394524427, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.9658731394524418, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -4.238948728121449}, {\"x\": 1.9744923503409613, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.9658731394524418, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.9658731394524418, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": 1.9744923503409613, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": 1.9658731394524418, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": -3.1959110088525855}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.9658731394524427, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": 0.29204081632653, \"z\": 4.135721983457609}, {\"x\": 1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": 1.9658731394524427, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": 1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.9744923503409613, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.9859474869329627, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.9744923503409613, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.9744923503409613, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 1.9859474869329627, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -4.149347688183664}, {\"x\": 1.9744923503409613, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": 1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.9859474869329627, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.9828261655690511, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.9859474869329627, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.9859474869329627, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.9828261655690511, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": 1.9859474869329627, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 1.982826165569059, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": 1.982826165569059, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.982826165569059, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.982826165569059, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": 1.9828261655690511, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.9828261655690511, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.9828261655690511, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.982826165569059, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 2.0442857142857136, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 1.982826165569059, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": 2.0442857142857136, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 2.0442857142857136, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -2.7972927961878704}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -2.7972927961878704}, {\"x\": 2.0442857142857136, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": 2.0442857142857136, \"y\": 1.141882770242269, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 2.79729279618787}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.141882770242269, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 1.8495918367346933, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -2.7972927961878704}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -2.7972927961878704}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -2.6165303585677977}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -2.438499172572721}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -2.6165303585677977}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 2.79729279618787}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.8495918367346933, \"y\": 1.389922351837285, \"z\": 3.9912244897959184}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.389922351837285, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.389922351837285, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 2.0442857142857136, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": 1.8495918367346933, \"y\": 1.582667582257292, \"z\": -3.7965306122448976}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -3.955797600447352}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -3.955797600447352}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.582667582257292, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -3.7026914198282936}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -2.6165303585677977}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": -2.438499172572721}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -2.6165303585677977}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -2.3446738921774415}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -2.3446738921774415}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 2.1202080227536673}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 1.8495918367346933, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475696, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": 1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": 2.0442857142857136, \"y\": 1.6121254278475696, \"z\": 3.9912244897959184}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -3.955797600447352}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -3.7026914198282936}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -3.7026914198282936}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -3.7360536727332994}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -3.7360536727332994}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -3.454897421828842}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -2.3446738921774415}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": 1.8556096731587326, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": -2.1202080227536664}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": -2.238979591836735}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 1.8556096731587326, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 1.8556096731587344, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 1.8556096731587344}, {\"x\": 1.8556096731587344, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": 1.8556096731587344, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 1.7050077671368893, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 2.1202080227536673}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276849, \"z\": 3.6018367346938778}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 3.7360536727332985}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 3.7360536727332985}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 3.7360536727332985}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276849, \"z\": 3.6018367346938778}, {\"x\": 1.9139688830664676, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": 2.0442857142857136, \"y\": 1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -3.7360536727332994}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -3.454897421828842}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -3.454897421828842}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -3.272300298127035}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 1.8556096731587326, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587326, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": -1.8495918367346937}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587326, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": -1.855609673158734}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587326, \"z\": -2.044285714285714}, {\"x\": 1.8556096731587326, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 1.7050077671368893}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 1.8556096731587344, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 1.8556096731587344, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 1.8556096731587344}, {\"x\": 1.8556096731587344, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 1.8556096731587344, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": 1.9621576060290247, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": 1.9621576060290247, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 1.9621576060290247, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": 1.9478138816155814, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 1.8495918367346933, \"z\": 3.7360536727332985}, {\"x\": 2.0442857142857136, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -3.503127553910544}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -3.272300298127035}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -3.272300298127035}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 1.962157606029023, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": 1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 2.0442857142857136, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": -1.7050077671368884}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 2.1594926017643115, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 1.7050077671368893}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.9621576060290247, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 1.9621576060290247, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": 1.9621576060290247, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": 2.0442857142857136, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -1.6884840828722911}, {\"x\": 1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": 1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": 1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": 1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": 1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": 1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": 1.9221094207050813, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": 2.0442857142857136, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": 2.0442857142857136, \"y\": 2.3667463359268606, \"z\": 3.2124489795918363}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": -3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -1.6884840828722911}, {\"x\": 1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": 1.8879606295350282, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 1.8879606295350282, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": 1.8879606295350282, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.8879606295350282, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": 2.0442857142857136, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.8167999278225606, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": 2.0442857142857136, \"y\": 2.8167999278225606, \"z\": -1.6548979591836734}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": 1.8879606295350282, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": 2.0442857142857136, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": 1.8879606295350282, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 2.0442857142857136, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": 2.0442857142857136, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": -1.6563899354841012}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 2.0442857142857136, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -2.8246881103707158}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -2.782988619271015}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -2.782988619271015}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 2.0442857142857136, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": 2.0442857142857136, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -2.782988619271015}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": -2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": 1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.8927343946808346, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 2.0442857142857136, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": 1.8927343946808346, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 2.0442857142857136, \"y\": 3.3466606140748265, \"z\": 2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 2.0442857142857136, \"y\": 3.2124489795918363, \"z\": 2.7065516666173783}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -2.5714389526432937}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": -2.433673469387755}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": -2.433673469387755}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 1.953587870545502, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": -2.044285714285714}, {\"x\": 1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": -1.9621576060290238}, {\"x\": 1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": 1.8927343946808346, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": 1.8927343946808346, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 3.503127553910545, \"z\": 2.0442857142857136}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.0442857142857136, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 2.0442857142857136, \"y\": 3.4071428571428566, \"z\": 2.5714389526432937}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 1.8495918367346933, \"y\": 3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.137069963708494}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.953587870545502, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": 1.953587870545502, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": 1.9535878705455003, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": 2.039191642628116, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 1.8856514177172814, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8856514177172814, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": 1.8495918367346933, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.8856514177172814, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 2.004476266308054, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 1.8856514177172814, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 1.8635323261518293, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651285, \"z\": -2.433673469387755}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651285, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.8856514177172805, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.137069963708494}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.8856514177172814, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.8961941451561808, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": 1.8856514177172814, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.7527765226084195, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": 1.7527765226084195, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.5981580851889055}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082226, \"z\": -2.6283673469387754}, {\"x\": 1.7527765226084195, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.504110755104405}, {\"x\": 1.8495918367346933, \"y\": -3.867956716165129, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.504110755104405}, {\"x\": 1.7527765226084195, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.504110755104405}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082226, \"z\": -2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.867956716165129, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -3.868963981296847, \"z\": -2.238979591836735}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.7527765226084195, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -3.867956716165129, \"z\": -2.433673469387755}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473527, \"z\": -2.044285714285714}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.1370699637084947}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.868963981296847, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.1370699637084947}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -1.913968883066468}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473527, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.1370699637084956}, {\"x\": 1.8495918367346933, \"y\": -3.8689639812968464, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.1370699637084956}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.1370699637084956}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.8689639812968464, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -3.86795671616513, \"z\": 2.433673469387754}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.739966300419245, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -3.8689639812968464, \"z\": 2.238979591836734}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.5981580851889055}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082217, \"z\": 2.6283673469387754}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.5981580851889055}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.5041107551044055}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.7527765226084204, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.86795671616513, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.5041107551044055}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082217, \"z\": 2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -2.640410684326539}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -2.640410684326539}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -2.640410684326539}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.504110755104405}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": -2.1370699637084947}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -1.913968883066468}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.702691419828294, \"z\": -1.8495918367346937}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -1.913968883066468}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -1.9478138816155819}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -1.9478138816155819}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.654897959183673, \"y\": -3.702691419828294, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727332994, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": 1.7971396198285863, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.7360536727332994, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.1370699637084956}, {\"x\": 1.8495918367346933, \"y\": -3.7965306122448976, \"z\": 2.5041107551044055}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.741822685119792, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -2.640410684326539}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": -1.9478138816155819}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": 1.8495918367346933, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.8495918367346933, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.8495918367346933, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.8495918367346933, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.7293108759814766, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.8495918367346933, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.8495918367346933, \"y\": -2.5317413995345146, \"z\": -3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -3.057470022961678}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.5317413995345146, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": -2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.8495918367346933, \"y\": -2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.8495918367346933, \"y\": -2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -3.057470022961678}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -3.1485832311202664}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -3.057470022961678}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -2.839327704472028}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.654897959183673, \"y\": -2.344673892177441, \"z\": -1.8495918367346937}, {\"x\": 1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.344673892177441, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.344673892177441, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.654897959183673, \"y\": -2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 2.8393277044720273}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 2.8393277044720273}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 1.8111137614555455, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.1288736531132506, \"z\": -3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -3.2723002981270346}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -3.1485832311202664}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.1288736531132506, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -3.1485832311202664}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -2.839327704472028}, {\"x\": 1.654897959183673, \"y\": -2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -2.839327704472028}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.8167999278225575}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.654897959183673, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": 1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": 1.8495918367346933, \"y\": -2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.0522421081796867, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": -2.1202080227536664, \"z\": 2.0442857142857136}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 1.9307686943986102}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": 1.7213297629589537, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": 1.8495918367346933, \"y\": -2.0522421081796867, \"z\": 1.8495918367346933}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.1202080227536664, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.1594926017643106}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.816799927822556}, {\"x\": 1.654897959183673, \"y\": -2.071642000670575, \"z\": 2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.071642000670575, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 2.8393277044720273}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -2.071642000670575, \"z\": 2.8230612244897957}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.12887365311325, \"z\": 3.2124489795918363}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.238979591836735, \"z\": 3.1485832311202655}, {\"x\": 1.8495918367346933, \"y\": -2.12887365311325, \"z\": 3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -2.12887365311325, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": -3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -3.454897421828842}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -3.2723002981270346}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -3.2723002981270346}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.8167999278225575}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": -2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.8167999278225575}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005293, \"z\": -2.433673469387755}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": -2.6283673469387754}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005293, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750499, \"z\": -2.238979591836735}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005293, \"z\": -2.433673469387755}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750499, \"z\": -2.238979591836735}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": -1.855609673158734}, {\"x\": 1.8495918367346933, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.1594926017643106}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.1594926017643106}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 2.052242108179687}, {\"x\": 1.7050077671368875, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": -1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": 2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.816799927822556}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": 2.6283673469387754}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": 3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": 3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": -1.892734394680835, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 3.454897421828841}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -3.7026914198282936}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -3.454897421828842}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -3.454897421828842}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -2.3446738921774406}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589528, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -2.3446738921774406}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.7483477235022766, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": -2.052242108179686}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589528, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 2.052242108179687}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589532, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589532, \"z\": 2.238979591836734}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": 1.8495918367346933, \"y\": -1.7213297629589532, \"z\": 2.238979591836734}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.7483477235022784, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.6884840828722911, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 1.707286038289305, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276853, \"z\": 3.6018367346938778}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.8495918367346937, \"z\": 3.454897421828841}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276853, \"z\": 3.6018367346938778}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": -1.7306734078276853, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 3.7026914198282928}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": -3.7965306122448976}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -3.928500807922102}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -3.7026914198282936}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -3.7026914198282936}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.4162411101536243}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.1950241085899824}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": -3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.1950241085899824}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -2.6165303585677973}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -2.6165303585677973}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.8045583714536395, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": -2.3446738921774406}, {\"x\": 1.8495918367346933, \"y\": -1.59616134781662, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.5961613478166208, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.5961613478166208, \"z\": 2.433673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 2.616530358567797}, {\"x\": 1.8495918367346933, \"y\": -1.5961613478166208, \"z\": 2.433673469387754}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.1950241085899824}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": 3.2124489795918363}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": 3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.4162411101536243}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 1.745603685755567, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": 3.796530612244897}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.6548979591836734, \"z\": 3.7026914198282928}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": 3.796530612244897}, {\"x\": 1.767106084717308, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.767106084717308, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": -1.5826675822572924, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 1.767106084717308, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.869990353467377}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -3.928500807922102}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.7671060847173088, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.1950241085899824}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.0654641254330546}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": -2.6165303585677973}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 2.616530358567797}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": 2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": 1.8495918367346933, \"y\": -1.4495557837119253, \"z\": 2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.1950241085899824}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.0654641254330546}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.1950241085899824}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.4162411101536243}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263602, \"z\": 3.6018367346938778}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 1.767106084717308, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263602, \"z\": 3.6018367346938778}, {\"x\": 1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": 1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.4602040816326531, \"z\": 3.928500807922102}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.767106084717308, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": 1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.869990353467377}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.0654641254330546}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": 1.8495918367346933, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.225403464299267, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": -1.225403464299267, \"z\": 2.8230612244897957}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": -1.225403464299267, \"z\": 2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360588, \"z\": 3.9912244897959184}, {\"x\": 1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360588, \"z\": 3.9912244897959184}, {\"x\": 1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -3.0345329483431205}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -3.0345329483431205}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.8495918367346933, \"y\": -0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -3.0345329483431205}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -3.0345329483431205}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": 3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.8495918367346933, \"y\": -0.718020165399893, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -4.238948728121449}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -4.238948728121449}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -4.238948728121449}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": -3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -4.238948728121449}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -4.238948728121449}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -4.238948728121449}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -4.221074505394631}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.8495918367346933, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.7053734553594042, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.8495918367346933, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": 1.8495918367346933, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.8699903534673767}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.0654641254330546}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": -2.8230612244897957}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": -2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -2.7972927961878704}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": 2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 2.79729279618787}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2254034642992666, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.0654641254330546}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.8495918367346933, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.8699903534673767}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.8699903534673767}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": 1.8495918367346933, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.1950241085899815}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.0654641254330546}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.1950241085899815}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": -2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": -2.7972927961878704}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": -2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -2.6165303585677977}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": 2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 2.79729279618787}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4495557837119257, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 2.79729279618787}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.6795520734422444, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.1950241085899815}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": 3.6018367346938778}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": 3.6018367346938778}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.389922351837285, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.752068534363679, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": 1.8495918367346933, \"y\": 1.389922351837285, \"z\": 3.9912244897959184}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.582667582257292, \"z\": -3.7965306122448976}, {\"x\": 1.8495918367346933, \"y\": 1.582667582257292, \"z\": -3.7965306122448976}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -3.7026914198282936}, {\"x\": 1.8495918367346933, \"y\": 1.582667582257292, \"z\": -3.7965306122448976}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.4162411101536243}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": -3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.1950241085899815}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": -3.2124489795918363}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": -2.6165303585677977}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -2.3446738921774415}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 1.746928636823296, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.1950241085899815}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": 3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.1950241085899815}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.6837146864228645, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.4162411101536243}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.767106084717308, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": 1.8495918367346933, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -3.7026914198282936}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -3.454897421828842}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": -2.238979591836735}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": -2.3446738921774415}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": -2.238979591836735}, {\"x\": 1.7483477235022766, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.7483477235022766, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 1.7483477235022766, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.8045583714536413, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 1.702255670347114, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 1.6928706177103967, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276849, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.745603685755567, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": 1.8495918367346933, \"y\": 1.7306734078276849, \"z\": 3.6018367346938778}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -3.454897421828842}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -3.272300298127035}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.816799927822557}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": -2.6283673469387754}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": -2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": -2.433673469387755}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 1.7483477235022766, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": -2.433673469387755}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587326, \"z\": -2.044285714285714}, {\"x\": 1.7050077671368875, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.1594926017643106}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587326, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.1594926017643106}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.1594926017643106}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.7483477235022766, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587326, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 1.7050077671368875, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.7050077671368893, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": 1.7050077671368893, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.1594926017643115}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.7050077671368893, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.7483477235022784, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6884840828722911, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.816799927822556}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": 2.6283673469387754}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.816799927822556}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.666199140682858, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 1.707286038289305, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.7601702049111214, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.8295121945867887, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": 1.8495918367346933, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -3.272300298127035}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -2.839327704472028}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.816799927822557}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.1594926017643106}, {\"x\": 1.7050077671368875, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -1.9307686943986102}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -1.9307686943986102}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": -1.855609673158734}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": 1.7050077671368875, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536673, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 1.9307686943986102}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536673, \"z\": 2.0442857142857136}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.7050077671368893, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536673, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": 1.7050077671368893, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 1.7050077671368893, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.1594926017643115}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536673, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.816799927822556}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 2.8393277044720273}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": 2.8230612244897957}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 2.8393277044720273}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.6563899354841016, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.8185672665461032, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.0442857142857136, \"z\": 3.2723002981270337}, {\"x\": 1.8495918367346933, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -3.1485832311202664}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -2.839327704472028}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -2.839327704472028}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -1.9307686943986102}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": -1.8495918367346937}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": -1.8495918367346937}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": -1.7483477235022775}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -1.6884840828722911}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": 1.7213297629589537, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 2.8393277044720273}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": 1.7607217066702479, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": -3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": -3.017755102040816}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": -3.017755102040816}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": -1.6884840828722911}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.8111137614555455, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": 1.8495918367346933, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": 1.8495918367346933, \"y\": 2.531741399534514, \"z\": 3.017755102040816}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -2.980412428906882}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.8495918367346933, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -2.9111187256747106}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -2.782988619271015}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -2.782988619271015}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": 1.8495918367346933, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -2.782988619271015}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.8495918367346933, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -2.7276992764948567}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.8495918367346933, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 1.8495918367346933, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 2.7276992764948567}, {\"x\": 1.8495918367346933, \"y\": 3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.8495918367346933, \"y\": 3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.137069963708494}, {\"x\": 1.7971396198285872, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": 1.7971396198285872, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.7971396198285872, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": 1.8495918367346933}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": 1.7306734078276858, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": 1.8495918367346933}, {\"x\": 1.8495918367346933, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": 1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.8495918367346933, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.8495918367346933, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 2.7276992764948567}, {\"x\": 1.8495918367346933, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651285, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651285, \"z\": -2.433673469387755}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.504110755104405}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651285, \"z\": -2.433673469387755}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.1018036663404067}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.7971396198285872, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": 1.7971396198285872, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": -2.137069963708494}, {\"x\": 1.7971396198285872, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": 2.0442857142857136}, {\"x\": 1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.101803666340407}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.101803666340407}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.101803666340407}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": 1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": 2.0442857142857136}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.598158085188903}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.8495918367346933, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": 1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.1018036663404067}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.101803666340407}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.739966300419244, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 1.7527765226084178, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.598158085188903}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.5901092255633147, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.5901092255633147, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.654897959183673, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370987, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370987, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370987, \"z\": -2.433673469387755}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -1.9148231489671508}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": 1.590109225563313, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.5981580851889055}, {\"x\": 1.590109225563313, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.590109225563313, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.5901092255633147, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082226, \"z\": -2.6283673469387754}, {\"x\": 1.5901092255633147, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -2.7152524529982225}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.5901092255633147, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082226, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.598158085188906}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473527, \"z\": -2.044285714285714}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -1.9148231489671508}, {\"x\": 1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": -1.8495918367346937}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -1.9148231489671508}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -1.913968883066468}, {\"x\": 1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473527, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -1.913968883066468}, {\"x\": 1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.582667582257292, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": 1.8495918367346933}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.582667582257292, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": 1.8495918367346933}, {\"x\": 1.582667582257292, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": 1.6121254278475714, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": 1.654897959183673, \"y\": -3.991224489795918, \"z\": 2.5981580851889055}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082217, \"z\": 2.6283673469387754}, {\"x\": 1.590109225563313, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082217, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.590109225563313, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.9554373112082217, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -2.6838971120578305}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -2.7152524529982225}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -2.735156143648769}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": -1.913968883066468}, {\"x\": 1.654897959183673, \"y\": -3.702691419828294, \"z\": -1.8495918367346937}, {\"x\": 1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.702691419828294, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.702691419828294, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -1.6900228178543633}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.582667582257292, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": 1.582667582257292, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.582667582257292, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -2.735156143648769}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -2.735156143648769}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -2.73462069393343}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536287, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -1.6900228178543633}, {\"x\": 1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -1.6900228178543633}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -1.6900228178543633}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": -1.8064325161378627}, {\"x\": 1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536287, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -2.73462069393343}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -2.73462069393343}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.468848735730293, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.468848735730293, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.468848735730293, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.468848735730293, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.4602040816326527, \"y\": -3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.468848735730293, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.4602040816326527, \"y\": -3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.468848735730293, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.4602040816326527, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": 1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.654897959183673, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.654897959183673, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": -2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": 2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": 2.6283673469387754}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857665, \"z\": -2.433673469387755}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857665, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.409979912896136}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": 1.4602040816326527, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": 1.463245012537378, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.463245012537378, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677973, \"z\": -1.8495918367346937}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677973, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677973, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677977, \"z\": 1.8495918367346933}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4632450125373788, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677977, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.438499172572721, \"z\": 2.0442857142857136}, {\"x\": 1.4632450125373788, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677977, \"z\": 1.8495918367346933}, {\"x\": 1.4632450125373788, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.438499172572721, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.060703425140594}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.409979912896138}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857656, \"z\": 2.433673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857656, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857656, \"z\": 2.433673469387754}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.645826276783799, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -2.839327704472028}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -2.8401155621473837}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.409979912896136}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": -2.238979591836735}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.409979912896136}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": 1.463245012537378, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": -2.238979591836735}, {\"x\": 1.463245012537378, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.463245012537378, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.344673892177441, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.463245012537378, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": -1.8045583714536404}, {\"x\": 1.654897959183673, \"y\": -2.344673892177441, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 1.8045583714536413}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": -2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": -2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.5961613478166203, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": 1.4632450125373788, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.060703425140594}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.060703425140594}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.4632450125373788, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 1.4632450125373788, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.409979912896138}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": 2.238979591836734}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 2.8393277044720273}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 2.8393277044720273}, {\"x\": 1.6438641987022304, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -2.839327704472028}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.8167999278225575}, {\"x\": 1.654897959183673, \"y\": -2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.5838294508677988, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": -1.9307686943986093}, {\"x\": 1.654897959183673, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 1.9307686943986102}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.1202080227536664, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": -2.1202080227536664, \"z\": 2.0442857142857136}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.1594926017643106}, {\"x\": 1.654897959183673, \"y\": -2.1202080227536664, \"z\": 2.0442857142857136}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.5838294508678006, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 1.5377059421436696, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.816799927822556}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.071642000670575, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.816799927822556}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.238979591836735, \"z\": 2.8393277044720273}, {\"x\": 1.654897959183673, \"y\": -2.071642000670575, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.8167999278225575}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": -2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005293, \"z\": -2.433673469387755}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005293, \"z\": -2.433673469387755}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750499, \"z\": -2.238979591836735}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005293, \"z\": -2.433673469387755}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": -2.15949260176431}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750499, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.1594926017643106}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6286195757585569, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": 2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -2.044285714285714, \"z\": 2.816799927822556}, {\"x\": 1.654897959183673, \"y\": -1.8879606295350286, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": -3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.1950241085899824}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": 3.2124489795918363}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.1950241085899824}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4688487357302904, \"z\": 3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.4162411101536243}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.869990353467377}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.4162411101536243}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.4162411101536243}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.0654641254330546}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": -3.1950241085899824}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.0654641254330546}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.1950241085899824}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.0654641254330546}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.1950241085899824}, {\"x\": 1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263602, \"z\": 3.6018367346938778}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.4602040816326531, \"z\": 3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263602, \"z\": 3.6018367346938778}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": -1.4083501182263602, \"z\": 3.6018367346938778}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.869990353467377}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": -3.6018367346938773}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": -3.6018367346938773}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.381096535527291}, {\"x\": 1.4602040816326527, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.381096535527291}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": -3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.0654641254330546}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.0654641254330546}, {\"x\": 1.4602040816326527, \"y\": -1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": -1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": 3.6018367346938778}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": 3.6018367346938778}, {\"x\": 1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360588, \"z\": 3.9912244897959184}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360588, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.2655102040816328, \"z\": 3.869990353467374}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": -1.1688955968360588, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.6503891731762996, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.6503891731762996, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.6503891731762996, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.381096535527291}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -3.0345329483431205}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.5369895975108232, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": 1.6503891731762952, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.6503891731762952, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.6503891731762996, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.6503891731762996, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": -3.0345329483431205}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.6503891731762952, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.6503891731762952, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.6503891731762952, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.654897959183673, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": 1.654897959183673, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.654897959183673, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": 1.654897959183673, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": 1.5054467943168568, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -3.0401096533648433}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.654897959183673, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": 1.5054467943168568, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -3.0401096533648433}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -3.0401096533648433}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.654897959183673, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965088, \"z\": 4.185918367346938}, {\"x\": 1.6503891731762952, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965088, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.6503891731762952, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965088, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.654897959183673, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.6503891731762996, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": -3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": 3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 3.034532948343121}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.6503891731762952, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.6503891731762952, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.6503891731762952, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": 1.654897959183673, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -4.069157344525445}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.8699903534673767}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.8699903534673767}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": 1.1215290875942552, \"z\": -3.6018367346938773}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": 1.1215290875942552, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.1215290875942552, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.3810965355272913}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.0654641254330546}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": -3.041185736862001}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.0654641254330546}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.0654641254330546}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.5369895975108232, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": 3.796530612244897}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": 3.796530612244897}, {\"x\": 1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": 1.654897959183673, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.8699903534673767}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": -3.7965306122448976}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": -3.6018367346938773}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.1950241085899815}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": -3.0654641254330546}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.1950241085899815}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.0654641254330546}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.1950241085899815}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.0654641254330546}, {\"x\": 1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.4162411101536243}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.4162411101536243}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": 3.6018367346938778}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.5703876267368324, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.4083501182263598, \"z\": 3.6018367346938778}, {\"x\": 1.6171069999677972, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.2655102040816324, \"z\": 3.869990353467376}, {\"x\": 1.654897959183673, \"y\": 1.318444214824975, \"z\": 3.796530612244897}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.4162411101536243}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": -3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": -3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": -3.1950241085899815}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": -3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.1950241085899815}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": 3.2124489795918363}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": 3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4688487357302913, \"z\": 3.2124489795918363}, {\"x\": 1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.4602040816326527, \"z\": 3.4162411101536243}, {\"x\": 1.654897959183673, \"y\": 1.4632669838721934, \"z\": 3.4071428571428566}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": -2.6283673469387754}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.816799927822557}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": -2.433673469387755}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": -2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": -2.433673469387755}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.1594926017643106}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.1594926017643115}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 1.9942298409750503, \"z\": 2.238979591836734}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": 2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 1.9190280802005297, \"z\": 2.433673469387754}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 1.8879606295350282, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.816799927822556}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -2.839327704472028}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.816799927822557}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.816799927822557}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": -2.1594926017643106}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -1.9307686943986102}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536673, \"z\": 2.0442857142857136}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.1594926017643115}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.1202080227536673, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.1594926017643115}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.6286195757585569, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 1.6070504222982613, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": 2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0442857142857136, \"z\": 2.816799927822556}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": 2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.0716420006705745, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 2.8393277044720273}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -2.839327704472028}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -2.839327704472028}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.4099799128961332}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": -2.238979591836735}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.0607034251405953}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": -2.238979591836735}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.0607034251405953}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": -1.8495918367346937}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": -1.9307686943986102}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": -1.8495918367346937}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 1.9307686943986102}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 1.9307686943986102}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.0607034251405967}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": 2.238979591836734}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.5838294508678006, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.4099799128961354}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": 2.238979591836734}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.4099799128961354}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.5336588298838567, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 1.5377059421436696, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.5794750681935676, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.238979591836734, \"z\": 2.8393277044720273}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.645826276783799, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.645826276783799, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -2.8401155621473837}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.645826276783799, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.645826276783799, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785768, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785768, \"z\": -2.433673469387755}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.4099799128961332}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785768, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.0607034251405953}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": -1.8495918367346937}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": -1.8495918367346937}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": -1.8045583714536408}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": 1.5961613478166203, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": 1.4632450125373788, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.0607034251405967}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.4099799128961354}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785766, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785766, \"z\": 2.433673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.6458262767837972, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.6458262767837972, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.6438641987022304, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -2.8330795420162644}, {\"x\": 1.645826276783799, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": -2.8230612244897957}, {\"x\": 1.645826276783799, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": 1.6458262767837972, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.6458262767837972, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.6458262767837972, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.6458262767837972, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.6283673469387754, \"z\": 2.8330795420162636}, {\"x\": 1.654897959183673, \"y\": 2.798511218674803, \"z\": 2.8230612244897957}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -2.8214744840347086}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.654897959183673, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -2.8042318958726367}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.468848735730293, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.468848735730293, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": 1.468848735730293, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.4602040816326527, \"y\": 3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.4688487357302913, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.1950241085899815, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.1950241085899815, \"z\": 1.654897959183673}, {\"x\": 1.4688487357302913, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.4602040816326527, \"y\": 3.1950241085899815, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": 1.654897959183673, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -2.7346206939334303}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.468848735730293, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": 1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.468848735730293, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4688487357302913, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4688487357302913, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4688487357302913, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": 1.4688487357302913, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.654897959183673, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -2.7346206939334303}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -2.7346206939334303}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -2.735156143648769}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": 3.416241110153628, \"z\": -1.6548979591836734}, {\"x\": 1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.4602040816326527, \"y\": 3.416241110153628, \"z\": -1.6548979591836734}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -1.6900228178543633}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -1.6900228178543633}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": -1.7456036857555661}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.416241110153628, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": 3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": 1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -2.7276992764948567}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -2.735156143648769}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -2.735156143648769}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -2.7152524529982225}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -1.9139688830664676}, {\"x\": 1.5826675822572938, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": 1.5826675822572938, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": 1.5826675822572938, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -1.6900228178543633}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": -1.8064325161378632}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.582667582257292, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.654897959183673, \"y\": 3.7026914198282945, \"z\": 1.8495918367346933}, {\"x\": 1.582667582257292, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.654897959183673, \"y\": 3.6018367346938778, \"z\": 2.7276992764948567}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.5901092255633067, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": 1.5901092255633067, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.1018036663404067}, {\"x\": 1.6121254278475714, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": 1.6121254278475714, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -1.9148231489671512}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.6121254278475714, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.5826675822572938, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": 1.5826675822572938, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": -1.9139688830664676}, {\"x\": 1.5826675822572938, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": 1.582667582257292, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 1.9148231489671517}, {\"x\": 1.6121254278475696, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 1.9148231489671517}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 1.9148231489671517}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 1.9139688830664676}, {\"x\": 1.582667582257292, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": 1.654897959183673, \"y\": 3.955797600447351, \"z\": 2.0442857142857136}, {\"x\": 1.6121254278475696, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.101803666340407}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.598158085188903}, {\"x\": 1.5901092255633076, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.5901092255633076, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.654897959183673, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": 1.5901092255633076, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": 1.654897959183673, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.5901092255633067, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.5901092255633067, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": 1.5901092255633067, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370988, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370988, \"z\": -2.433673469387755}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370988, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.1018036663404067}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.6121254278475714, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": -2.1018036663404067}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.6121254278475714, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -1.9148231489671512}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 1.9148231489671517}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.6121254278475696, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": 1.6121254278475696, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.101803666340407}, {\"x\": 1.6121254278475696, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370986, \"z\": 2.433673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.598158085188903}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.5901092255633076, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 3.9912244897959184, \"z\": 2.598158085188903}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.654897959183673, \"y\": 4.103179600794151, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370986, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.5901092255633076, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370987, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370987, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -1.9148231489671508}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": -2.044285714285714}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -2.657938576633641}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": -1.9148231489671508}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": -1.8495918367346937}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": 1.318444214824976, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.318444214824976, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.318444214824976, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.318444214824976, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673767, \"z\": 1.654897959183673}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673767, \"z\": 1.654897959183673}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.3899223518372859, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.928500807922103, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 1.9148231489671508}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": 2.6283673469387754}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": 2.6283673469387754}, {\"x\": 1.3324187235408935, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.4602040816326527, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -2.7152524529982225}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -2.735156143648769}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -2.68470847550863}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -2.735156143648769}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -1.6900228178543633}, {\"x\": 1.4083501182263616, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": 1.318444214824976, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": -1.7671060847173075}, {\"x\": 1.4083501182263616, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": 1.4083501182263616, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.318444214824976, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.4083501182263616, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": 1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 1.767106084717308}, {\"x\": 1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": 1.4602040816326527, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -2.735156143648769}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -2.68470847550863}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -2.73462069393343}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -2.68470847550863}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -2.73462069393343}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": -1.6900228178543633}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536287, \"z\": -1.6548979591836734}, {\"x\": 1.4083501182263616, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536287, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.4083501182263616, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536287, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": 1.4602040816326527, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.2655102040816324, \"y\": -3.2680501755722235, \"z\": -2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -2.73462069393343}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2680501755722235, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": -3.268050175572224, \"z\": 2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.268050175572224, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.268050175572224, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": -3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": -3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.4602040816326527, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.2655102040816324, \"y\": -2.870672330076183, \"z\": -2.433673469387755}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -2.870672330076183, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.2655102040816324, \"y\": -2.8706723300761814, \"z\": 2.433673469387754}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.8706723300761814, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.8706723300761814, \"z\": 2.433673469387754}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": -2.6283673469387754}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": -2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.2655102040816324, \"y\": -2.721921783072274, \"z\": -2.238979591836735}, {\"x\": 1.3274996967782577, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.3274996967782577, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.3274996967782577, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.3274996967782577, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.721921783072274, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": -2.044285714285714}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -2.721921783072274, \"z\": -2.238979591836735}, {\"x\": 1.4495557837119248, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": -1.8495918367346937}, {\"x\": 1.4495557837119248, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4495557837119248, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4495557837119257, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.4495557837119257, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4495557837119257, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": 2.0442857142857136}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.2924468513952618, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.4602040816326527, \"y\": -2.7503592217755126, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857665, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857665, \"z\": -2.433673469387755}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.409979912896136}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857665, \"z\": -2.433673469387755}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.3890184017174834, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.3274996967782577, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.3274996967782577, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": 1.4495557837119248, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677973, \"z\": -1.8495918367346937}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4495557837119248, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": 1.4495557837119248, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677973, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4495557837119257, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677977, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677977, \"z\": 1.8495918367346933}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.438499172572721, \"z\": 2.0442857142857136}, {\"x\": 1.4495557837119257, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": -2.6165303585677977, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": -2.438499172572721, \"z\": 2.0442857142857136}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.060703425140594}, {\"x\": 1.4602040816326527, \"y\": -2.438499172572721, \"z\": 2.0442857142857136}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.3287840802874076, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.409979912896138}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857656, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.409979912896138}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": -2.4431194587857656, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.409979912896136}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": -2.238979591836735}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.060703425140594}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": 2.238979591836734}, {\"x\": 1.435205409316331, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -2.433673469387755, \"z\": 2.409979912896138}, {\"x\": 1.4602040816326527, \"y\": -2.383706571651628, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": -3.6018367346938773}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": -3.6018367346938773}, {\"x\": 1.450979478785027, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.381096535527291}, {\"x\": 1.450979478785027, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": 3.6018367346938778}, {\"x\": 1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": -1.1215290875942556, \"z\": 3.6018367346938778}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": -3.6018367346938773}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.450979478785027, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": 1.450979478785027, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": -3.381096535527291}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.450979478785027, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.450979478785027, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": 3.6018367346938778}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": 3.6018367346938778}, {\"x\": 1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.2947595218317742, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.3171898310556536, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -3.0954688110212736}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -3.0954688110212736}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -3.0954688110212736}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -3.069297143096095}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -3.069297143096095}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -3.069297143096095}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -3.069297143096095}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 3.0692971430960947}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.4467491042151668, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129114, \"z\": -4.380612244897959}, {\"x\": 1.4467491042151668, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -3.0401096533648433}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -3.069297143096095}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -3.069297143096095}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -3.0401096533648433}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 3.0692971430960947}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 3.0692971430960947}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 3.0954688110212736}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.446749104215166, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": 1.446749104215166, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.4602040816326527, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": 1.446749104215166, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": 1.4602040816326527, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.4467491042151668, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": 1.4467491042151668, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.4467491042151668, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": -3.0401096533648433}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 3.0954688110212736}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 3.0954688110212736}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.446749104215166, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.446749104215166, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": -3.0660274308773205}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.4602040816326527, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": -3.1110078206182297}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.3171898310556536, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965088, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965088, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.4602040816326527, \"y\": 0.7991386773965088, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": 4.185918367346938}, {\"x\": 1.4602040816326527, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": -3.991224489795918}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": -3.6018367346938773}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": -3.6018367346938773}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.3810965355272913}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.3810965355272913}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": -3.1869113564161333}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": -3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": 3.2124489795918363}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": 3.2124489795918363}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": 0.9212666058406169, \"z\": 3.2124489795918363}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4380150543669252, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": 3.6018367346938778}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.3124825110471106, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": 3.6018367346938778}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": 1.2947595218317742, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 0.8761224489795918, \"z\": 4.119471427603555}, {\"x\": 1.4602040816326527, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.8392858210507}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": 1.1215290875942552, \"z\": -3.6018367346938773}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": 1.4602040816326527, \"y\": 1.1215290875942552, \"z\": -3.6018367346938773}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.1215290875942552, \"z\": -3.6018367346938773}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": -3.3810965355272913}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.3810965355272913}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": 1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.4602040816326527, \"y\": 1.086520338454675, \"z\": 3.4071428571428566}, {\"x\": 1.4602040816326527, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": 3.796530612244897}, {\"x\": 1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": 1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 1.070816326530612, \"z\": 3.8392858210506997}, {\"x\": 1.4602040816326527, \"y\": 1.0905934974850284, \"z\": 3.796530612244897}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": -2.238979591836735}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.4099799128961332}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.0607034251405953}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": 2.238979591836734}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.0607034251405967}, {\"x\": 1.4602040816326527, \"y\": 2.3837065716516292, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.4099799128961354}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785768, \"z\": -2.433673469387755}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.4099799128961332}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785768, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.4099799128961332}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3274996967782577, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": -2.0607034251405953}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.3274996967782577, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": -1.8495918367346937}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": 1.4495557837119248, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4495557837119248, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": 1.4495557837119257, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": 1.4495557837119257, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4495557837119257, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.0607034251405967}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.0607034251405967}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785766, \"z\": 2.433673469387754}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.433673469387754, \"z\": 2.4099799128961354}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785766, \"z\": 2.433673469387754}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 2.443119458785766, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": -2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -2.570682668660644}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": -2.238979591836735}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.3274996967782577, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3274996967782577, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.3890184017174834, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": 1.3274996967782577, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": -2.238979591836735}, {\"x\": 1.3274996967782577, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.4495557837119248, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": 1.4495557837119248, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2655102040816324, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": 1.4495557837119248, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2655102040816324, \"y\": 2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4495557837119257, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": 1.4495557837119257, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.4495557837119257, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": 1.3287840802874076, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.750359221775512, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -2.649962953881072}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": 1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": -1.746928636823296}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.2924468513952618, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -2.6920119836726912}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": -1.6837146864228636}, {\"x\": 1.4602040816326527, \"y\": 3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.4602040816326527, \"y\": 3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.2655102040816324, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": 3.195024108589977, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.4602040816326527, \"y\": 3.1950241085899815, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.2655102040816324, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.1950241085899815, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": 1.2655102040816324, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572224, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572224, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -2.7346206939334303}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572224, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": 1.2913378290848607, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": 3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -2.7346206939334303}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -2.735156143648769}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -2.735156143648769}, {\"x\": 1.4602040816326527, \"y\": 3.416241110153628, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -1.6900228178543633}, {\"x\": 1.4083501182263607, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": 1.4083501182263607, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": 3.416241110153628, \"z\": -1.6548979591836734}, {\"x\": 1.4083501182263607, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": 1.4602040816326527, \"y\": 3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.4083501182263598, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.4602040816326527, \"y\": 3.4162411101536243, \"z\": 1.654897959183673}, {\"x\": 1.4083501182263598, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": 1.4602040816326527, \"y\": 3.4071428571428566, \"z\": 2.7346206939334294}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -2.735156143648769}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -2.7152524529982225}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -1.6900228178543633}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.4083501182263607, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": -1.6900228178543633}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.4083501182263607, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -1.6171069999677967}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.4083501182263598, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": 1.4083501182263598, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.4083501182263598, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": 1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": 1.4083501182263598, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.4602040816326527, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": -2.6283673469387754}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -2.7152524529982225}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -2.6097168055155793}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -1.9148231489671512}, {\"x\": 1.3899223518372859, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": 1.3899223518372859, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -1.75206853436368}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.3899223518372859, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": -1.8495918367346937}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": 1.318444214824976, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -1.6171069999677967}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.2655102040816324, \"y\": 3.869990353467376, \"z\": 1.654897959183673}, {\"x\": 1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 1.752068534363679}, {\"x\": 1.389922351837285, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 1.752068534363679}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.2655102040816324, \"y\": 3.869990353467376, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 1.752068534363679}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": 1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.869990353467376, \"z\": 1.654897959183673}, {\"x\": 1.4602040816326527, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": 1.389922351837285, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 1.9148231489671517}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": 2.6283673469387754}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": 1.4602040816326527, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -2.6579385766336396}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -2.6097168055155793}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -2.6097168055155793}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370988, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": -2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370988, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -1.9148231489671512}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.3899223518372859, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": -1.9148231489671512}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.3899223518372859, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -1.75206853436368}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 1.752068534363679}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.389922351837285, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": 1.389922351837285, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 1.9148231489671517}, {\"x\": 1.389922351837285, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370986, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370986, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 4.169139467370986, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.3324187235408989, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": 1.4602040816326527, \"y\": 3.9912244897959184, \"z\": 2.657938576633639}, {\"x\": 1.4602040816326527, \"y\": 4.042838529184804, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -4.069157344525446, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.069157344525446, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": -1.8495918367346937}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": -4.069157344525446, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -4.069662769787542, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": 1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": 1.2655102040816324, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": -2.6283673469387754}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -2.60971680551558}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.8392858210507, \"z\": 1.4602040816326527}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673767, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": -3.8392858210507, \"z\": 1.4602040816326527}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.1688955968360597, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.8699903534673767, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": 2.6283673469387754}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": 1.2655102040816324, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": 1.2655102040816324, \"y\": -3.954944023495883, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.13312066356566, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -2.68470847550863}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.13312066356566, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -2.6759676978167293}, {\"x\": 1.13312066356566, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": 1.13312066356566, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.121529087594256, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": 1.121529087594256, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": 1.121529087594256, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 1.121529087594256, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": 1.1215290875942552, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.1215290875942552, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": 1.0905934974850284, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.1331206635656592, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": 1.1331206635656592, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.7965306122448976, \"z\": 2.675967697816728}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": 1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -2.68470847550863}, {\"x\": 1.200776037633923, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.13312066356566, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.200776037633923, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -2.68470847550863}, {\"x\": 1.200776037633923, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.13312066356566, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.200776037633923, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.121529087594256, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 1.121529087594256, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.1215290875942552, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.1215290875942552, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.1215290875942552, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": 1.1215290875942552, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": 1.1331206635656592, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.2007760376339238, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.1331206635656592, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.1331206635656592, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.2007760376339238, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.1331206635656592, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.200776037633923, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2680501755722235, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2680501755722235, \"z\": -2.6283673469387754}, {\"x\": 1.200776037633923, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.2655102040816324, \"y\": -3.2680501755722235, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.2007760376339238, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.268050175572224, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2007760376339238, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.2007760376339238, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.2655102040816324, \"y\": -3.268050175572224, \"z\": 2.6283673469387754}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.2655102040816324, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": 1.1723507171838916, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.1723507171838916, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.2655102040816324, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -2.870672330076183, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.188738909370767, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.188738909370767, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.188738909370767, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.1723507171838925, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.2655102040816324, \"y\": -2.870672330076183, \"z\": -2.433673469387755}, {\"x\": 1.141882770242269, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.188738909370767, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": 1.141882770242269, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.2254034642992657, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.141882770242269, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.2254034642992657, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2254034642992657, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2254034642992666, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.2254034642992666, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.1418827702422698, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.2254034642992666, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": 1.1418827702422698, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.1418827702422698, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": 1.1723507171838916, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.8706723300761814, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.1723507171838916, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": 1.1723507171838916, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2655102040816324, \"y\": -2.8706723300761814, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.188738909370767, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.721921783072274, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.721921783072274, \"z\": -2.238979591836735}, {\"x\": 1.141882770242269, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": -2.044285714285714}, {\"x\": 1.188738909370767, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.141882770242269, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": -2.721921783072274, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": -2.044285714285714}, {\"x\": 1.2254034642992657, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": -1.8495918367346937}, {\"x\": 1.141882770242269, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.2254034642992657, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": -2.044285714285714}, {\"x\": 1.2254034642992657, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2254034642992666, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.1418827702422698, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": 2.0442857142857136}, {\"x\": 1.2254034642992666, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.1418827702422698, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": 2.0442857142857136}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.1418827702422698, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -2.7037771413752534, \"z\": 2.0442857142857136}, {\"x\": 1.188738909370766, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.2655102040816324, \"y\": -2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": -3.6018367346938773}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": 3.6018367346938778}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": -0.9022370237751978, \"z\": 3.6018367346938778}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": -0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": 1.23949674424321, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": 1.1197086814291026, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.1197086814291026, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.1197086814291053, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": -0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.1197086814291026, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": 1.1197086814291026, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": 1.1197086814291026, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.1197086814291026, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -3.0954688110212736}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.0941001297932065, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": -3.0954688110212736}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -3.069297143096095}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -3.069297143096095}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.1256981743039267, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755759, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.1256981743039276, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": 1.2655102040816324, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": -3.069297143096095}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -3.069297143096095}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -3.069297143096095}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": 1.0855588375885548, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 3.0692971430960947}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 3.0692971430960947}, {\"x\": 1.2655102040816324, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": -3.069297143096095}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 1.192661188086805, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": 1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.0855588375885548, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 3.0692971430960947}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 3.0954688110212736}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 3.0954688110212736}, {\"x\": 1.2655102040816324, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.1256981743039276, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 3.0954688110212736}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.2655102040816324, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": 1.2655102040816324, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.1197086814291053, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.1197086814291053, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": -3.1519359625094774}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": 1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.2655102040816324, \"y\": 0.6134940481131901, \"z\": 3.2124489795918363}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 1.1197086814291026, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.1197086814291026, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.0941001297932065, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": 1.1197086814291053, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.1197086814291053, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": -3.2601534137276422}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.2655102040816324, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": 1.1197086814291026, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.1197086814291026, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": 1.1197086814291026, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": 1.2655102040816324, \"y\": 0.7292457982088552, \"z\": 4.185918367346938}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.928656910017021}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": -3.6018367346938773}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": -3.527497955149615}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": -3.6018367346938773}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": 3.6018367346938778}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": 3.6018367346938778}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": 1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.9022370237751973, \"z\": 3.6018367346938778}, {\"x\": 1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 0.8761224489795918, \"z\": 3.92865691001702}, {\"x\": 1.2655102040816324, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": -2.238979591836735}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": -2.238979591836735}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": 1.2254034642992657, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2254034642992657, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.2254034642992666, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": 1.2254034642992666, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.2254034642992666, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.7219217830722737, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.1723507171838925, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.1723507171838925, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.1723507171838925, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -2.381508906173601}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.2254034642992657, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.2254034642992657, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.2254034642992657, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": -1.8252647780196942}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2254034642992666, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": 1.2254034642992666, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.2254034642992666, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": 1.1418827702422698, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": 1.1723507171838916, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8230612244897957, \"z\": 2.381508906173602}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 1.188738909370767, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.1723507171838916, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.1723507171838925, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -2.523713397670233}, {\"x\": 1.1723507171838925, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": 1.2655102040816324, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.2655102040816324, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.2655102040816324, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.2655102040816324, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.1723507171838916, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": 1.1723507171838916, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": 1.1723507171838916, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.2655102040816324, \"y\": 3.017755102040816, \"z\": 2.5237133976702326}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572224, \"z\": -2.6283673469387754}, {\"x\": 1.2007760376339238, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.2007760376339238, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572224, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.2007760376339238, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": 1.200776037633923, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.2655102040816324, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.2655102040816324, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.200776037633923, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": 1.2007760376339238, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.2007760376339238, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.599213468193166}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": -1.5689161791726045}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": 1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.200776037633923, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": 1.200776037633923, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.200776037633923, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": 1.200776037633923, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.599213468193166}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.599213468193166}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -1.6171069999677967}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 1.0905934974850284, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": 1.0905934974850284, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": 1.121529087594256, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": 1.13312066356566, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": -2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": -2.6283673469387754}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": -2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -2.6097168055155793}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -2.6097168055155793}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -1.75206853436368}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": 3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": -1.6171069999677967}, {\"x\": 1.0905934974850293, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": 1.0905934974850284, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.869990353467376, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 1.2655102040816324, \"y\": 3.869990353467376, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": 1.0905934974850284, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": 1.2655102040816324, \"y\": 3.869990353467376, \"z\": 1.654897959183673}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 1.752068534363679}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": 1.149111272540278, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": 1.2655102040816324, \"y\": 3.95494402349588, \"z\": 2.6283673469387754}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -2.6097168055155793}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -1.75206853436368}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": -1.75206853436368}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 1.752068534363679}, {\"x\": 1.1688955968360597, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": 1.2655102040816324, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": 1.2655102040816324, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 0.9338379607725749, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": 0.9338379607725749, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.9338379607725749, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.060015200176017, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.069157344525446, \"z\": -1.6548979591836734}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -4.069157344525446, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": 0.8785477031549851, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": 0.9456206868183417, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.178387136434948, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": 1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": 0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": 0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": 0.9338379607725749, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": 0.9338379607725749, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": 1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": 0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": 0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": 0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": 1.070816326530612, \"y\": -3.8392858210507, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": 0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.8392858210507, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": 0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": 0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": 0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": 0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": 0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.2394967442432097}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": 0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": 0.9022370237751973, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 0.9022370237751973, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": 0.9097096916008818, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.2394967442432097}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": 0.9022370237751973, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": 0.9022370237751973, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.9022370237751973, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 0.9212666058406187, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 0.9212666058406187, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": 0.9212666058406187, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.9212666058406169, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 0.9212666058406169, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": 1.0186157017853272, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.0186157017853272, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.9999662005822563, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.9999662005822563, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.9999662005822563, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.0186157017853281, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": 0.9999662005822563, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.9212666058406187, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.9212666058406187, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": 0.9212666058406169, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 0.9212666058406169, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 0.9212666058406169, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": 0.9999662005822554, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 1.0186157017853272, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 1.0186157017853272, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 0.9999662005822554, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.9999662005822554, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": 1.0186157017853272, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 0.9999662005822563, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 0.9999662005822563, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.9999662005822554, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.9999662005822554, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.9999662005822554, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": 0.9441344647122802, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 0.9441344647122802, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": 0.9458049237769561, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 0.9441344647122802, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 0.9458049237769561, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.9458049237769561, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": 0.945804923776957, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": 0.945804923776957, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": 0.9441344647122811, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 0.945804923776957, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 0.9441344647122811, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 0.9441344647122802, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": 0.9441344647122802, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 0.9458049237769561, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 0.9441344647122802, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.9458049237769561, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.9458049237769561, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568806, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568815, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.9422078649997756, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.945804923776957, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 1.0164203111768897, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.945804923776957, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 0.9441344647122811, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.945804923776957, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 0.9441344647122811, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": 0.9441344647122811, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 0.9808647805441781, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 1.0571624829228217, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": 0.9808647805441773, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": 0.9519757177321901, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.2091452548165087, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.2091452548165087, \"z\": -4.575306122448979}, {\"x\": 0.9519757177321901, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": -0.2091452548165087, \"z\": -4.575306122448979}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 1.0313247278751607, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 0.9519757177321928, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 0.9519757177321928, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": 0.9519757177321928, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": 0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.9519757177321901, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": 0.9519757177321901, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": 0.9519757177321901, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.9519757177321901, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": 0.9519757177321901, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": 0.9519757177321901, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.2549243264049497}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.2549243264049497}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": 0.9728400163275843, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 0.9519757177321928, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": 0.9519757177321928, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": 1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": 0.9519757177321928, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": 0.9519757177321928, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": 0.9519757177321928, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": 0.9519757177321928, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": 0.9519757177321901, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": 0.9519757177321901, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 0.9519757177321901, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.2549243264049497}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": 1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": 0.9728400163275843, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 0.946326475466293, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.9519757177321928, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": 0.9519757177321928, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": 1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": 1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.0313247278751598, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": 0.9458049237769561, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.9458049237769561, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.9458049237769561, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 1.0571624829228217, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.9808647805441781, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 1.0164203111768897, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 1.0164203111768897, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.0164203111768897, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": 0.945804923776957, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 1.0164203111768897, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.945804923776957, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 0.945804923776957, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": 1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": 0.9458049237769561, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": 0.9458049237769561, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 0.9458049237769561, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": 1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.9812857644568806, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.9812857644568815, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": 0.9422078649997756, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": 1.0164203111768897, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": 0.945804923776957, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 1.0164203111768897, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": 0.945804923776957, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": 0.945804923776957, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": 0.9441344647122802, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": 1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 0.9999662005822563, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 0.9999662005822563, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.9999662005822563, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 0.9999662005822554, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 0.9999662005822554, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 1.0186157017853281, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.0186157017853281, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 1.0186157017853281, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 0.9999662005822563, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": 0.9999662005822563, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 0.9999662005822563, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 0.9212666058406178, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 0.9212666058406178, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": 0.9212666058406178, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.9212666058406169, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": 0.9212666058406169, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.9999662005822554, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": 1.0186157017853272, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": 0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": 0.9999662005822554, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.0186157017853272, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.0186157017853281, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": 1.0186157017853281, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": 0.9212666058406178, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.9212666058406178, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.9212666058406169, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 0.9212666058406169, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 0.9212666058406169, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 1.0186157017853272, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": 1.0186157017853272, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": 1.0186157017853272, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.599213468193166}, {\"x\": 0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": 0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": 0.9022370237751973, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": 1.2655102040816324}, {\"x\": 0.9022370237751973, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": 1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.599213468193166}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": 0.9022370237751973, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": 0.9022370237751973, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": 0.9022370237751973, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": 0.9022370237751973, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": 0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": 0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": 0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": 0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": 0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": 0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": 1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": 0.9097096916008818, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": 1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": 0.933837960772574, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": 0.933837960772574, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": 1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": 0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": 0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.933837960772574, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.933837960772574, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.933837960772574, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": 1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": 1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": 0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": 0.6814285714285715, \"y\": -4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": 0.6814285714285715, \"y\": -4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": 0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": 0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": 0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": 0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": 0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": 0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": 0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.8581460463946735, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.9458049237769575}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.9458049237769561}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.9458049237769561}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": 0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.7428396042774166, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": 0.8581460463946726, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": 0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": 0.7219553232558216, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": 0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": 0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 0.7219553232558216, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 0.7162227893523179, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": 0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 0.7162227893523179, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": 0.7162227893523179, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": 0.7162227893523179, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.2394967442432097}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.9458049237769575}, {\"x\": 0.7605805625756599, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768901}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.9458049237769575}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.9458049237769561}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": 0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.7219553232558216, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 0.7162227893523152, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": 0.7219553232558216, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 0.7219553232558216, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": 0.7162227893523152, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": 0.7219553232558216, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.7162227893523179, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.7162227893523179, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.2394967442432097}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768901}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": 0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": 0.7162227893523152, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 0.8483137488517434, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.7162227893523152, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 0.7162227893523152, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.8483137488517434, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.7162227893523152, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.7343102575855092, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.8483137488517434, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.8483137488517434, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.7343102575855092, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.7343102575855092, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.8483137488517434, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -3.0345329483431205, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.7343102575855092, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.7343102575855092, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.7343102575855092, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.7180201653998912, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": 0.8456872343534609, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710305, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710305, \"z\": -0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.8037675752901734, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.7156039891700656, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": 0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": 0.8577858910710292, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.795428495510607, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.795428495510607, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.795428495510607, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": 0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": 0.8761224489795918, \"y\": -0.2091452548165087, \"z\": -4.575306122448979}, {\"x\": 0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": 0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.2091452548165087, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": 0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": 0.7475661485296605, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": 0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.795428495510607, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": 0.795428495510607, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.2549243264049497}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.2549243264049497}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": 0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": 0.7954284955106052, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": 0.7954284955106052, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.2549243264049497}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 0.7954284955106079, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": 0.7954284955106079, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": 0.7954284955106079, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": 0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.7954284955106052, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": 0.7954284955106052, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.7954284955106052, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485825, \"z\": -0.8761224489795918}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485825, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485825, \"z\": -0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": 0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": 0.7954284955106079, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.7954284955106079, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.8577858910710292, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": 0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": 0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": 0.8592489315814662, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": 0.7156039891700656, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.8037675752901734, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": 0.7180201653998912, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.7180201653998912, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": 0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.7180201653998912, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.7180201653998912, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": 0.7180201653998912, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": 0.7343102575855092, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.8456872343534609, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.7343102575855092, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": 0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": 0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": 0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.7343102575855092, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": 0.8483137488517434, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.7343102575855092, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.8483137488517434, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.7162227893523179, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": 0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.7162227893523179, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": 0.7162227893523179, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": 0.7162227893523179, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.527497955149613, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.8483137488517434, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": 0.8483137488517434, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8483137488517434, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": 0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": 0.8483137488517434, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": 0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": 0.7162227893523179, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": 0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 0.7162227893523179, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": 0.7241012012667598, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": 0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": 0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": 0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": 0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": 0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": 0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": 0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": 0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": 0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.7605805625756599, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": 0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": 0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": 0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": 0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.729245798208856, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": 0.729245798208856, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": 0.729245798208856, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": 0.729245798208856, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.7292457982088552, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": 0.7292457982088552, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.7428396042774166, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.7991386773965088, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": 0.7991386773965088, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": 0.8581460463946726, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": 0.7292457982088552, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": 0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": 0.7991386773965088, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": 0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": 0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": 0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.729245798208856, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.7991386773965097, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": 0.729245798208856, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.7292457982088552, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": 0.7292457982088552, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.7991386773965088, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.7292457982088552, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": 0.7991386773965088, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": 0.7991386773965088, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": 0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": 0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.32975822299176816}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.3297582229917735}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": 0.6814285714285715, \"y\": -4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409622}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.32975822299176816}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289351, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.32975822299176816}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289351, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170784}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289344, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289344, \"z\": 0.29204081632653}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.3297582229917735}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289344, \"z\": 0.29204081632653}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": 0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409622}, {\"x\": 0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": 0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": 0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170784}, {\"x\": 0.4867346938775512, \"y\": -4.1538537386464816, \"z\": 0.29204081632653}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.1538537386464816, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": 0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": 0.6039490278188708, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": 0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.9458049237769575}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.5641070518077909, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.9458049237769561}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": 0.6473129612835891, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.9458049237769561}, {\"x\": 0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.9458049237769575}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768901}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.9458049237769575}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": 0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.9458049237769561}, {\"x\": 0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768901}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768906}, {\"x\": 0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6121407162901225, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": 0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": 0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885543, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885543, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885543, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": 0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710305, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710305, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710305, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.7149569585020705}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.6583817681815631, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.5806009233985119, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": -0.20099187561523113, \"z\": -4.77}, {\"x\": 0.565011656618811, \"y\": -0.0973469387755106, \"z\": -4.77}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.4867346938775512, \"y\": -0.20099187561523113, \"z\": -4.77}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.7149569585020705}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.7149569585020705}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": 0.5650116566188101, \"y\": -0.0973469387755106, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": -0.20099187561523024, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.5650116566188101, \"y\": -0.0973469387755106, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": 0.565011656618811, \"y\": -0.0973469387755106, \"z\": -4.77}, {\"x\": 0.565011656618811, \"y\": 0.0973469387755097, \"z\": -4.77}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": 0.565011656618811, \"y\": -0.0973469387755106, \"z\": -4.77}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": 0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": 0.565011656618811, \"y\": 0.0973469387755097, \"z\": 4.77}, {\"x\": 0.5650116566188101, \"y\": -0.0973469387755106, \"z\": 4.77}, {\"x\": 0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": 0.565011656618811, \"y\": 0.0973469387755097, \"z\": 4.77}, {\"x\": 0.565011656618811, \"y\": 0.0973469387755097, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": 0.20099187561523202, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.565011656618811, \"y\": 0.0973469387755097, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": 0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": 0.4867346938775512, \"y\": 0.20099187561523202, \"z\": 4.77}, {\"x\": 0.565011656618811, \"y\": 0.0973469387755097, \"z\": 4.77}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": 0.4867346938775512, \"y\": 0.20099187561523202, \"z\": 4.77}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": 0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": 0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485825, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485825, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485825, \"z\": -0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": 0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": 0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": 0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.6583817681815631, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.5806009233985119, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": 0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": 0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8577858910710292, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117905}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117905}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117905}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": 0.5142367384699122, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": 0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": 0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": 0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.6121407162901225, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": 0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": 0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": 0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": 0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": 0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": 0.5641070518077909, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": 0.6473129612835891, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": 0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": 0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": 0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": 0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": -0.2920408163265309}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.3297582229917744}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": -0.2920408163265309}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": 0.29204081632653}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.3297582229917717}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.3297582229917717}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": 0.49148027534245653, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": 0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": 0.5541864225367323, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": 0.6039490278188708, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": 0.6658550950639137, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": 0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.3297582229917744}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.3297582229917717}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.49100664360773916, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.49658751218672137, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4988136748735901, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": 0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": -0.7954284955106052}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.3272169650333687, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -4.77, \"z\": -0.3782021652378704}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.3272169650333687, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": 0.3272169650333687, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": 0.3272169650333687, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": 0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": 0.36518630742796976, \"y\": -4.77, \"z\": -0.0973469387755106}, {\"x\": 0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": 0.36518630742796976, \"y\": -4.77, \"z\": -0.0973469387755106}, {\"x\": 0.36518630742796976, \"y\": -4.77, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": 0.36518630742796976, \"y\": -4.77, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": 0.36518630742796976, \"y\": -4.77, \"z\": 0.0973469387755097}, {\"x\": 0.36518630742796976, \"y\": -4.77, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": 0.3272169650333696, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": 0.43019727952888864, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": 0.3272169650333696, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -4.77, \"z\": 0.3782021652378713}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.77, \"z\": 0.3782021652378713}, {\"x\": 0.3272169650333696, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.3272169650333696, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": 0.43019727952888864, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": 0.7954284955106052}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": -1.070816326530612}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": -0.7954284955106052}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.32975822299176816}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": 0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.43019727952888864, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.43019727952888864, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.3297582229917735}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.3297582229917735}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.43019727952888864, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": 0.7954284955106052}, {\"x\": 0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": 0.7954284955106052}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409622}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": -1.9658731394524414}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409622}, {\"x\": 0.29204081632653, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.32975822299176816}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289351, \"z\": -0.2920408163265309}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289351, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289351, \"z\": -0.2920408163265309}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170784}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289344, \"z\": 0.29204081632653}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170784}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4811844423093108, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.4853893386207453, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.349345780289344, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.3297582229917735}, {\"x\": 0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": 0.29204081632653, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": 0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": 0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409622}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": -1.9658731394524414}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409622}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": 0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -4.1538537386464816, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170784}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -4.1538537386464816, \"z\": 0.29204081632653}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -4.1538537386464816, \"z\": 0.29204081632653}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": 0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": 0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": 0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": 2.2175322528784465}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": 0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": 2.2175322528784465}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": 0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": 0.29204081632653, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": 2.2175322528784465}, {\"x\": 0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.9543200775694958, \"z\": 2.238979591836734}, {\"x\": 0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.29204081632653, \"y\": -3.9543200775694958, \"z\": 2.238979591836734}, {\"x\": 0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.349241610541185}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -0.457591900566805}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": -0.0973469387755106}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 0.457591900566805}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 0.457591900566805}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": 0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.29204081632653, \"y\": -3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.349241610541185}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": -0.4867346938775512}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": -0.4867346938775512}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -0.457591900566805}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 0.457591900566805}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": 0.4867346938775512}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": 0.4287397776697617, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": 0.29204081632653, \"y\": -3.422793915058647, \"z\": 2.238979591836734}, {\"x\": 0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.422793915058647, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.422793915058647, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": 0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.41712188457264165, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": 1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.29204081632653, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.4397775949160865, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.4397775949160865, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885543, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885543, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885543, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.43977759491608737, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": 0.43977759491608737, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": 0.43977759491608737, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": -0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": -0.6814285714285715}, {\"x\": 0.4397775949160865, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.4397775949160865, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": 0.4397775949160865, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": 0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.43977759491608737, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.43977759491608737, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.32975822299177704, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.32975822299177704, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.32975822299177704, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.408340595874523, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.408340595874523, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.408340595874523, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": 0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.7149569585020705}, {\"x\": 0.29204081632653, \"y\": -0.3272169650333687, \"z\": -4.77}, {\"x\": 0.37820216523786865, \"y\": -0.2920408163265309, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.7149569585020705}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.3272169650333687, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.3272169650333687, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.32975822299177704, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.32975822299177704, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.4575919005668059, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": 0.4575919005668059, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": -1.070816326530612}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": 0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.408340595874523, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.408340595874523, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": 0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": 0.37820216523786776, \"y\": -0.2920408163265309, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.37820216523786776, \"y\": -0.2920408163265309, \"z\": 4.77}, {\"x\": 0.29204081632653, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.37820216523786865, \"y\": -0.2920408163265309, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": -0.20099187561523113, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.7149569585020705}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": 0.4575919005668059, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.4575919005668059, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.4575919005668059, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": 0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": 0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": 0.4867346938775512, \"y\": -0.20099187561523024, \"z\": 4.77}, {\"x\": 0.37820216523786776, \"y\": -0.2920408163265309, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 1.1615312016755768}, {\"x\": 0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.4867346938775512, \"y\": 0.20099187561523202, \"z\": -4.77}, {\"x\": 0.3782021652378713, \"y\": 0.29204081632653, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": 0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 1.1615312016755768}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": 0.4575919005668032, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.4575919005668032, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": 0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": 0.4575919005668032, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": 0.4867346938775512, \"y\": 0.20099187561523202, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": 0.3782021652378713, \"y\": 0.29204081632653, \"z\": 4.77}, {\"x\": 0.3782021652378713, \"y\": 0.29204081632653, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": 0.3782021652378713, \"y\": 0.29204081632653, \"z\": -4.77}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": -4.77}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": -4.77}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.32975822299177615, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.32975822299177615, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.32975822299177615, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": 0.4575919005668032, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.4575919005668032, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": 0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.349345780289344}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.32975822299177526, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.32975822299177526, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888953, \"z\": 4.575306122448978}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": 4.77}, {\"x\": 0.3782021652378713, \"y\": 0.29204081632653, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888953, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": 4.77}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": 0.32975822299177615, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.32975822299177615, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": 0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178453}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": 0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": 0.32975822299177526, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.349345780289344}, {\"x\": 0.32975822299177526, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.32975822299177526, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": 0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": 0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": 0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.4397775949160865, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": 0.4397775949160865, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117905}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": 0.43977759491608737, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.43977759491608737, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.43977759491608737, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": 0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.4397775949160865, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.4397775949160865, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117905}, {\"x\": 0.4397775949160865, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.43977759491608737, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.43977759491608737, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.095468811021272, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.095468811021272, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": 1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": 0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": 0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 2.2317575143625765}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 2.2317575143625765}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 2.2317575143625765}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": 0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.29204081632653, \"y\": 3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -0.4575919005668041}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 0.4575919005668032}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.41712188457264165, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 2.2317575143625765}, {\"x\": 0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": 0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.29204081632653, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": 0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.349241610541185}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -0.4575919005668041}, {\"x\": 0.3658381728549154, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -0.4575919005668041}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.3658381728549154, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.3658381728549154, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": 0.0973469387755097}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 0.4575919005668032}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": 0.42873977766976257, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": 0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.40044277616697865, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.29204081632653, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": 0.40044277616697865, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.40044277616697865, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.3658381728549154, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": 0.3658381728549154, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": 0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.3658381728549145, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": 0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": 0.29204081632653, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": 0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": 0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": 0.40044277616697865, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.40044277616697865, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": 0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": 0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": 0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": 0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": 0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.3297582229917744}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": -0.2920408163265309}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": 0.29204081632653}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.4867346938775512, \"y\": 4.349345780289346, \"z\": 0.29204081632653}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.3297582229917717}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": 0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": 0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": -0.7954284955106088}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": -0.7954284955106088}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.3297582229917744}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.3297582229917744}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": 0.4853893386207453, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": 0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.4811844423093108, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": 0.43019727952888953, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.3297582229917717}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": 0.43019727952888953, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": 0.7954284955106079}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": -0.7954284955106088}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.77, \"z\": -0.3782021652378704}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.77, \"z\": -0.3782021652378704}, {\"x\": 0.3272169650333687, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.3272169650333687, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": 0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": 0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": 0.3272169650333687, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": 0.3272169650333687, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": 0.36518630742796976, \"y\": 4.77, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": 0.36518630742796976, \"y\": 4.77, \"z\": -0.0973469387755106}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": 0.36518630742796976, \"y\": 4.77, \"z\": -0.0973469387755106}, {\"x\": 0.36518630742796976, \"y\": 4.77, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": 0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": 0.36518630742796976, \"y\": 4.77, \"z\": 0.0973469387755097}, {\"x\": 0.43019727952888953, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": 0.36518630742796976, \"y\": 4.77, \"z\": 0.0973469387755097}, {\"x\": 0.3272169650333696, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": 0.43019727952888953, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.3272169650333696, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 4.77, \"z\": 0.3782021652378713}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.3272169650333696, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.43019727952888953, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": 0.3272169650333696, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": 0.6814285714285715}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": 0.6814285714285715}, {\"x\": 0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": 0.3444331709299764, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": 0.7954284955106079}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": -0.7954284955106052}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": -0.7954284955106052}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.20099187561523202, \"y\": -4.77, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -4.77, \"z\": -0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": 0.20099187561523202, \"y\": -4.77, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": 0.20099187561523202, \"y\": -4.77, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.77, \"z\": -0.3782021652378704}, {\"x\": 0.29204081632653, \"y\": -4.77, \"z\": 0.3782021652378713}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.20099187561523202, \"y\": -4.77, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -4.77, \"z\": 0.565011656618811}, {\"x\": 0.20099187561523202, \"y\": -4.77, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -4.77, \"z\": 0.565011656618811}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": 0.7954284955106052}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.26021254281129025, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.26021254281129025, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": -1.070816326530612}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": -0.7954284955106052}, {\"x\": 0.29204081632653, \"y\": -4.575306122448979, \"z\": 0.7954284955106052}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.20914525481651047, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.481313440430452, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.260212542811292, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.260212542811292, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -4.427949220756399, \"z\": 1.2655102040816324}, {\"x\": 0.260212542811292, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": -1.9658731394524414}, {\"x\": 0.29204081632653, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": -1.9658731394524414}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.26021254281129025, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.26021254281129025, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": 0.26021254281129025, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.29204081632653, \"y\": -4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.260212542811292, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.260212542811292, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.29204081632653, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": -1.9658731394524414}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": -1.9658731394524414}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.29204081632653, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": 2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.29204081632653, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.29204081632653, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.0973469387755097, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": 0.0973469387755097, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.29204081632653, \"y\": -3.991224489795918, \"z\": 2.2175322528784465}, {\"x\": 0.29204081632653, \"y\": -3.9543200775694958, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.29204081632653, \"y\": -3.9543200775694958, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.9543200775694958, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.29204081632653, \"y\": -3.9543200775694958, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -0.457591900566805}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -0.12863770417459808}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 0.12863770417459808}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 0.12863770417459808}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.744004625745771, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 0.457591900566805}, {\"x\": 0.29204081632653, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": 0.29204081632653, \"y\": -3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": -3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": 0.29204081632653, \"y\": -3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.29204081632653, \"y\": -3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": -0.4867346938775512}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -0.457591900566805}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": -0.457591900566805}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -0.12863770417459808}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 0.12863770417459808}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 0.457591900566805}, {\"x\": 0.1616789029021648, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.588692541278113, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -3.461187526866058, \"z\": 0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.422793915058647, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": 0.29204081632653, \"y\": -3.422793915058647, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": -3.6018367346938773, \"z\": 2.307344192049788}, {\"x\": 0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": 0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.29204081632653, \"y\": -3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": -3.2144014086541044, \"z\": 2.0442857142857136}, {\"x\": 0.11322807683796032, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.2144014086541044, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.11322807683796032, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.2144014086541044, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.29204081632653, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.028145870740262, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -3.028145870740262, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -3.028145870740262, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.29204081632653, \"y\": -3.1889390734557184, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -3.095468811021273, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.11322807683796032, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.11322807683796032, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.11322807683796032, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.29204081632653, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": -0.6814285714285715}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": -1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.2212806987113609, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": -0.942207864999776, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": -0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.29204081632653, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.22011473203170695, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.22011473203170695, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": -1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.29204081632653, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.22011473203170784, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.29204081632653, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": 0.22011473203170784, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.3272169650333687, \"z\": -4.77}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": -0.36518630742796887, \"z\": -4.77}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": -0.36518630742796887, \"z\": -4.77}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.22011473203170695, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": 0.22011473203170695, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.22011473203170695, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -3.7440046257457724}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -3.7440046257457724}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": -1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": 1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.43977759491608825, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.22011473203170784, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.22011473203170784, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.22011473203170784, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": 0.0973469387755097, \"y\": -0.36518630742796887, \"z\": 4.77}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.12863770417459897, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -3.7440046257457724}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.12863770417459897, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": -1.125698174303928}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 1.1256981743039276}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.29204081632653, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.12863770417459897, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 0.12863770417459897, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.12863770417459897, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 0.12863770417459897, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": 0.12863770417459897, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": 0.12863770417459897, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 1.1615312016755768}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 1.1615312016755768}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": 0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": 0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.12863770417459897, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.12863770417459897, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": 0.12863770417459897, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021639, \"z\": -3.6018367346938773}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 1.1615312016755768}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": 0.29204081632653, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": 0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.29204081632653, \"y\": 0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": -4.77}, {\"x\": 0.0973469387755097, \"y\": 0.36518630742796976, \"z\": -4.77}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": 0.36518630742796976, \"z\": -4.77}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": 0.22011473203170695, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.22011473203170695, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.22011473203170695, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.29204081632653, \"y\": 0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.29204081632653, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.22011473203170784, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.22011473203170784, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.349345780289344}, {\"x\": 0.22011473203170784, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.349345780289344}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.4853893386207453, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888953, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888953, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.43019727952888953, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": 4.77}, {\"x\": 0.29204081632653, \"y\": 0.3272169650333696, \"z\": 4.77}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": 0.36518630742796976, \"z\": 4.77}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.349345780289342}, {\"x\": 0.22011473203170695, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.22011473203170695, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": 0.22011473203170784, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.22011473203170784, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": 0.29204081632653, \"y\": 0.4867346938775512, \"z\": 4.349345780289344}, {\"x\": 0.29204081632653, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.29204081632653, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": -0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": -0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.0571624829228226, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.29204081632653, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 0.8761224489795918, \"z\": 0.7602302438602813}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": -0.45011908359255326}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.070816326530612, \"z\": 0.45011908359255326}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.2212806987113609, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.11322807683796388, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.11322807683796388, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -2.0419397291294845}, {\"x\": 0.11322807683796388, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 3.095468811021272, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 3.095468811021272, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 3.095468811021272, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.1889390734557175, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": 2.0442857142857136}, {\"x\": 0.11322807683796032, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.195911008852586, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.11322807683796032, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.11322807683796388, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -2.063814789490403}, {\"x\": 0.11322807683796388, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -2.0419397291294845}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": -1.0313247278751603}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 1.0313247278751598}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.11322807683796032, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.11322807683796032, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.11322807683796032, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": 0.29204081632653, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 2.2317575143625765}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.29204081632653, \"y\": 3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.4227939150586497, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": -0.7475661485296596}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": 0.1616789029021657, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -0.4575919005668041}, {\"x\": 0.1616789029021657, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": 0.1616789029021657, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -0.1286377041745963}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 0.1286377041745972}, {\"x\": 0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 0.4575919005668032}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 0.4575919005668032}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": 0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 0.7475661485296596}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": 0.29204081632653, \"y\": 3.4071428571428566, \"z\": 2.2317575143625765}, {\"x\": 0.29204081632653, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": 0.29204081632653, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.29204081632653, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": -0.4575919005668041}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.1616789029021657, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -0.1286377041745963}, {\"x\": 0.1616789029021657, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -0.1286377041745963}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733567, \"z\": -0.2920408163265309}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 0.1286377041745972}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.29204081632653, \"y\": 3.74400462574577, \"z\": 0.0973469387755097}, {\"x\": 0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 0.4575919005668032}, {\"x\": 0.29204081632653, \"y\": 3.6018367346938778, \"z\": 2.307344192049788}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": 0.29204081632653, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": 0.0973469387755097, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": 0.29204081632653, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": 0.29204081632653, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": 0.29204081632653, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.0973469387755097, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": 0.0973469387755097, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.0973469387755097, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": 0.29204081632653, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.29204081632653, \"y\": 3.796530612244897, \"z\": 2.3099977184129328}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": 0.29204081632653, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": 0.29204081632653, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.29204081632653, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.26021254281129025, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": 0.26021254281129025, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.260212542811292, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.260212542811292, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.260212542811292, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": 0.29204081632653, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.29204081632653, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": 0.26021254281129025, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.26021254281129025, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": 0.26021254281129025, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": -0.8761224489795918}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": -0.7954284955106088}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": 0.7954284955106079}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.545366192071022, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.260212542811292, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 4.380612244897959, \"z\": 1.4467491042151668}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.29204081632653, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.260212542811292, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": -0.7954284955106088}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.77, \"z\": -0.565011656618811}, {\"x\": 0.20099187561523202, \"y\": 4.77, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 4.77, \"z\": -0.565011656618811}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": -0.4867346938775512}, {\"x\": 0.20099187561523202, \"y\": 4.77, \"z\": -0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.77, \"z\": -0.3782021652378704}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.77, \"z\": 0.3782021652378713}, {\"x\": 0.20099187561523202, \"y\": 4.77, \"z\": 0.4867346938775512}, {\"x\": 0.20099187561523202, \"y\": 4.77, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 4.77, \"z\": 0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.20099187561523202, \"y\": 4.77, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.29204081632653, \"y\": 4.714956958502071, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": 0.6814285714285715}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": 0.7954284955106079}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.575306122448978, \"z\": 0.7954284955106079}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.29204081632653, \"y\": 4.621353422274137, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.77, \"z\": -0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": -4.77, \"z\": -0.5650116566188101}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.77, \"z\": -0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.77, \"z\": 0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": -4.77, \"z\": 0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.77, \"z\": 0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.0973469387755097, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.0973469387755097, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -4.1280496282407535, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": -4.1280496282407535, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.1280496282407535, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.1280496282407535, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": -0.0973469387755106, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.0973469387755097, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": 0.0973469387755097, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": -0.0973469387755106, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.0973469387755097, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.0973469387755097, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": 0.0973469387755097, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -0.12863770417459808}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -0.12863770417459897}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -0.12863770417459808}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 0.12863770417459985}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 0.12863770417459808}, {\"x\": 0.0973469387755097, \"y\": -3.6099262348569434, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 0.12863770417459985}, {\"x\": 0.0973469387755097, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -0.12863770417459808}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -0.12863770417459897}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": -0.12863770417459808}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 0.12863770417459985}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 0.12863770417459808}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 0.12863770417459985}, {\"x\": 0.0973469387755097, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.4870002154134547, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.0973469387755106, \"y\": -3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": -3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.0973469387755097, \"y\": -3.3733858229795346, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": -0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.2144014086541044, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.0973469387755097, \"y\": -3.2144014086541044, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": -3.028145870740262, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -3.028145870740262, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -3.028145870740262, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": -0.5142367384699131, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": -0.36518630742796887, \"z\": -4.77}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": -0.36518630742796887, \"z\": -4.77}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": -0.36518630742796887, \"z\": -4.77}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -3.7440046257457724}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -3.744004625745772}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": -0.36518630742796887, \"z\": 4.77}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": -0.36518630742796887, \"z\": 4.77}, {\"x\": -0.0973469387755106, \"y\": -0.36518630742796887, \"z\": 4.77}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -3.7440046257457724}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -3.744004625745772}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.0973469387755097, \"y\": 0.36518630742796976, \"z\": -4.77}, {\"x\": -0.0973469387755106, \"y\": 0.36518630742796976, \"z\": -4.77}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": 0.36518630742796976, \"z\": -4.77}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": 0.0973469387755097, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": 0.0973469387755097, \"y\": 0.36518630742796976, \"z\": 4.77}, {\"x\": 0.0973469387755097, \"y\": 0.36518630742796976, \"z\": 4.77}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": 0.36518630742796976, \"z\": 4.77}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": 0.0973469387755097, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": 0.0973469387755097, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": 0.0973469387755097, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": 0.0973469387755097, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -2.0419397291294845}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -2.0419397291294845}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -2.0419397291294845}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -2.0419397291294845}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.0973469387755097, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -0.1286377041745972}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -0.1286377041745963}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -0.1286377041745972}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 0.1286377041745972}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 0.12863770417459808}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 0.1286377041745972}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.0973469387755097, \"y\": 3.4071428571428566, \"z\": 2.2071069151970395}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -0.1286377041745972}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": -0.1286377041745963}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -0.1286377041745972}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 0.1286377041745972}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 0.12863770417459808}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 0.1286377041745972}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": 0.0973469387755097, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": 0.0973469387755097, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.0973469387755097, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": -0.0973469387755106, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": 0.0973469387755097, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": 0.0973469387755097, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": 0.0973469387755097, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": 0.0973469387755097, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": 0.0973469387755097, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": 0.0973469387755097, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": 0.0973469387755097, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": 0.0973469387755097, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": 0.0973469387755097, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.77, \"z\": -0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": 4.77, \"z\": -0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.77, \"z\": -0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.77, \"z\": 0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": 4.77, \"z\": 0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.77, \"z\": 0.565011656618811}, {\"x\": 0.0973469387755097, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": 0.0973469387755097, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": 0.0973469387755097, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": -0.7954284955106043}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.77, \"z\": -0.5650116566188101}, {\"x\": -0.20099187561523113, \"y\": -4.77, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -4.77, \"z\": -0.5650116566188101}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": -0.20099187561523113, \"y\": -4.77, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.77, \"z\": -0.37820216523786776}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.77, \"z\": 0.37820216523786776}, {\"x\": -0.20099187561523113, \"y\": -4.77, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.20099187561523113, \"y\": -4.77, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -4.77, \"z\": 0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": -0.20099187561523113, \"y\": -4.77, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": 0.7954284955106043}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": 0.7954284955106043}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.703584222470437, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.607948680550934, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": -0.9519757177321906}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": -0.7954284955106043}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": 0.7954284955106043}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.575306122448979, \"z\": 0.9519757177321901}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.20914525481650958, \"y\": -4.575306122448979, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.395950504331305, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": -1.9658731394524418}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.26021254281128936, \"y\": -4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": -0.0973469387755106, \"y\": -4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": -4.1280496282407535, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": -1.9658731394524418}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -4.1280496282407535, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": -1.961480027892831}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": -0.0973469387755106, \"y\": -4.185918367346939, \"z\": 1.961480027892831}, {\"x\": -0.0973469387755106, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": -0.0973469387755106, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": 2.2175322528784482}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": 2.2175322528784482}, {\"x\": -0.0973469387755106, \"y\": -4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": -0.0973469387755106, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.9177152488877187, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": -2.1991799385091104}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": 2.2175322528784482}, {\"x\": -0.0973469387755106, \"y\": -3.991224489795918, \"z\": 2.1991799385091113}, {\"x\": -0.0973469387755106, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569496, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": 2.2175322528784482}, {\"x\": -0.0973469387755106, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569496, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.0973469387755106, \"y\": -3.917715248887721, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": -2.2910171122765006}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -0.45759190056680676}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -0.12863770417459897}, {\"x\": -0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -0.12863770417459897}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -3.6099262348569434, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.1616789029021639, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 0.12863770417459985}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": -0.1616789029021639, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.609926234856944, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.1616789029021639, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 0.4575919005668059}, {\"x\": -0.0973469387755106, \"y\": -3.7965306122448976, \"z\": 2.291017112276501}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -2.28747239945516}, {\"x\": -0.2920408163265309, \"y\": -3.422793915058649, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.422793915058649, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478114, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": -0.4867346938775512}, {\"x\": -0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -0.45759190056680676}, {\"x\": -0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": -0.4867346938775512}, {\"x\": -0.1616789029021648, \"y\": -3.6018367346938773, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": -0.12863770417459897}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 0.12863770417459985}, {\"x\": -0.1616789029021639, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 0.4575919005668059}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.1616789029021639, \"y\": -3.6018367346938773, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 0.4575919005668059}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -3.5679762759725735, \"z\": 0.29204081632653}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": 0.4867346938775512}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.487000215413455, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": 0.4867346938775512}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.2920408163265309, \"y\": -3.4227939150586466, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.2920408163265309, \"y\": -3.4227939150586466, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.2920408163265309, \"y\": -3.4227939150586466, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.0973469387755106, \"y\": -3.4765357374478087, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.4227939150586466, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.6018367346938773, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.18449366418755098, \"y\": -3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -3.373385822979535, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": -3.2549243264049497, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.1132280768379621, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.1132280768379621, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": -3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.1132280768379621, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.0973469387755106, \"y\": -3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.2920408163265309, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.11322807683796476, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669913, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.0973469387755106, \"y\": -3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -3.069297143096095, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -3.035063549585656, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.1132280768379621, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": -3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.1132280768379621, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": -1.1926611880868054, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.9812857644568811, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.22128069871136002, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": -0.981285764456882, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": -0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": -0.8037675752901738, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.18602170050117817, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.18602170050117817, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.18602170050117817, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.0973469387755106, \"y\": -0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": -0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.36518630742796887, \"z\": -4.77}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": -4.77}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": -4.77}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -3.744004625745772}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.18602170050117817, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.18602170050117817, \"y\": -0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": -0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": -0.18602170050117905, \"y\": -0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.0973469387755106, \"y\": -0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": -0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": -0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.22011473203170606, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.4811844423093117, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": -0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": -0.36518630742796887, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": -0.36518630742796887, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.12863770417459985, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.12863770417459985, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -3.744004625745772}, {\"x\": -0.12863770417459985, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": -1.157390907839856}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": -0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": -0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": -0.2920408163265309, \"z\": 3.744004625745772}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.12863770417459808, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -0.12863770417459985, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -3.609926234856944}, {\"x\": -0.12863770417459808, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -0.12863770417459808, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": -0.12863770417459985, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": -0.12863770417459808, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": -1.1926611880868054}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 1.1615312016755759}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": -0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": -0.0973469387755106, \"z\": 3.6099262348569425}, {\"x\": -0.1286377041745972, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.12863770417459808, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -3.6099262348569434}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": -0.12863770417459808, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": -1.1926611880868054}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 1.192661188086805}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 1.1615312016755759}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 1.1615312016755759}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021657, \"z\": 3.6018367346938778}, {\"x\": -0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021657, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.1286377041745963, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.0973469387755106, \"y\": 0.0973469387755097, \"z\": 3.6099262348569425}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": -0.0973469387755106, \"y\": 0.36518630742796976, \"z\": -4.77}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": -4.77}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": -4.77}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686017, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": -4.380612244897959}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881387, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -3.744004625745771}, {\"x\": -0.18602170050117817, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": -1.070816326530612}, {\"x\": -0.18602170050117817, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": -1.157390907839856}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.18602170050117817, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": 1.070816326530612}, {\"x\": -0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 1.157390907839856}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": 0.29204081632653, \"z\": 3.74400462574577}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.0973469387755106, \"y\": 0.3308140015881378, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": 0.42646590685371244, \"z\": 3.9912244897959184}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.0973469387755106, \"y\": 0.47573962080386245, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.4811844423093108, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": 0.44395351863686106, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.0973469387755106, \"y\": 0.36518630742796976, \"z\": 4.77}, {\"x\": -0.0973469387755106, \"y\": 0.36518630742796976, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": -1.0855588375885552}, {\"x\": -0.18602170050117817, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.18602170050117817, \"y\": 0.4867346938775512, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.18602170050117905, \"y\": 0.4867346938775512, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 0.4867346938775512, \"z\": 1.0855588375885548}, {\"x\": -0.0973469387755106, \"y\": 0.5142367384699122, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.22011473203170606, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": -0.9728400163275848}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.0973469387755106, \"y\": 0.8037675752901734, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 0.6814285714285715, \"z\": 0.9728400163275843}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": -0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.0973469387755106, \"y\": 0.9812857644568815, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 0.8761224489795918, \"z\": 0.8055285443575411}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": -0.5301851594903004}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755759, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 1.192661188086805, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.1615312016755768, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.22128069871136002, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 1.070816326530612, \"z\": 0.5301851594903004}, {\"x\": -0.0973469387755106, \"y\": 1.0942327361177941, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.11322807683796565, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.11322807683796565, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.1476921577619885, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 3.0692971430960947, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 3.0281458707402624, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 3.0350635495856553, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": -0.11322807683796121, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.11322807683796121, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 3.096499982669912, \"z\": 1.8495918367346933}, {\"x\": -0.11322807683796121, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.11322807683796565, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.11322807683796565, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.11322807683796565, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -2.041939729129484}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": -0.9463264754662934}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.373385822979534, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.25492432640495, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 0.946326475466293}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 3.2124489795918363, \"z\": 2.041939729129485}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.11322807683796121, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.11322807683796121, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.214401408654105, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058648, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058648, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058648, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -2.207106915197039}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058648, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": -0.6174073136717411}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -0.457591900566805}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -0.457591900566805}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -0.1286377041745972}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 0.12863770417459808}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 0.457591900566805}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.5679762759725726, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 0.6174073136717402}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 3.4870002154134543, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": -0.18449366418755098, \"y\": 3.4071428571428566, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.0973469387755106, \"y\": 3.4071428571428566, \"z\": 2.2071069151970404}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.0973469387755106, \"y\": 3.4765357374478096, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -2.28747239945516}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -0.457591900566805}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": -0.1286377041745972}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 0.12863770417459808}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 0.12863770417459808}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.0973469387755106, \"y\": 3.6099262348569425, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.1616789029021648, \"y\": 3.6018367346938778, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 0.457591900566805}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.0973469387755106, \"y\": 3.6018367346938778, \"z\": 2.2874723994551607}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.0973469387755106, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": -2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": -0.0973469387755106, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.0973469387755106, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": -0.0973469387755106, \"y\": 3.917715248887717, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.0973469387755106, \"y\": 3.9177152488877205, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": -0.0973469387755106, \"y\": 3.796530612244897, \"z\": 2.291017112276501}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": -2.19917993850911}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": -0.0973469387755106, \"y\": 4.128049628240754, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.0973469387755106, \"y\": 3.9912244897959184, \"z\": 2.1991799385091104}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": -1.9614800278928324}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": -0.26021254281128936, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.26021254281128936, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": -0.26021254281128936, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.26021254281129114, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.26021254281129114, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 4.323452700958596, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": -0.0973469387755106, \"y\": 4.241360859156938, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": -0.0973469387755106, \"y\": 4.185918367346938, \"z\": 1.9614800278928328}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": -1.5054467943168572}, {\"x\": -0.26021254281128936, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.26021254281128936, \"y\": 4.380612244897959, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": -1.4602040816326531}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": -0.7954284955106079}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": 0.795428495510607}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.527270396890964, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.26021254281129114, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.26021254281129114, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.457997957939996, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.26021254281129114, \"y\": 4.380612244897959, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.380612244897959, \"z\": 1.5054467943168568}, {\"x\": -0.0973469387755106, \"y\": 4.395950504331303, \"z\": 1.4602040816326527}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": -0.9519757177321932}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": -0.7954284955106079}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": -0.7954284955106079}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": -0.8761224489795918}, {\"x\": -0.20099187561523113, \"y\": 4.77, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 4.77, \"z\": -0.565011656618811}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.20099187561523113, \"y\": 4.77, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": -0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": -0.20099187561523113, \"y\": 4.77, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.77, \"z\": -0.37820216523786776}, {\"x\": -0.2920408163265309, \"y\": 4.77, \"z\": 0.37820216523786865}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.20099187561523113, \"y\": 4.77, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 4.77, \"z\": 0.565011656618811}, {\"x\": -0.20099187561523113, \"y\": 4.77, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 4.77, \"z\": 0.565011656618811}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": 0.795428495510607}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.703584222470438, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.20914525481651314, \"y\": 4.575306122448978, \"z\": 0.8761224489795918}, {\"x\": -0.0973469387755106, \"y\": 4.575306122448978, \"z\": 0.9519757177321928}, {\"x\": -0.0973469387755106, \"y\": 4.607948680550935, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": -0.7954284955106043}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": -0.6814285714285715}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.77, \"z\": -0.37820216523786776}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.7149569585020705, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.77, \"z\": -0.37820216523786776}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": -0.2920408163265309}, {\"x\": -0.36518630742796887, \"y\": -4.77, \"z\": -0.0973469387755106}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": -0.36518630742796887, \"y\": -4.77, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": -0.36518630742796887, \"y\": -4.77, \"z\": -0.0973469387755106}, {\"x\": -0.36518630742796887, \"y\": -4.77, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": -0.36518630742796887, \"y\": -4.77, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": -0.36518630742796887, \"y\": -4.77, \"z\": 0.0973469387755097}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -4.77, \"z\": 0.37820216523786776}, {\"x\": -0.2920408163265309, \"y\": -4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": -0.32721696503336783, \"y\": -4.77, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": 0.7954284955106043}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": -0.7954284955106043}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": -0.7954284955106043}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.3297582229917717}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.3297582229917717}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": -0.4867346938775512}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": -0.2920408163265309}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686017, \"y\": -4.575306122448979, \"z\": 0.0973469387755097}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.32975822299176993}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.43019727952888775, \"y\": -4.575306122448979, \"z\": 0.29204081632653}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.3995601435005369, \"y\": -4.575306122448979, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.575306122448979, \"z\": 0.7954284955106043}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.3444331709299746, \"y\": -4.575306122448979, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.545366192071021, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": -1.9658731394524418}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409617}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": -1.9658731394524418}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121448, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.3297582229917717}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.3493457802893465, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": -0.4867346938775512, \"y\": -4.3493457802893465, \"z\": -0.2920408163265309}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -4.349345780289348, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170695}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -4.349345780289348, \"z\": 0.29204081632653}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": -4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.4853893386207462, \"y\": -4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.32975822299176993}, {\"x\": -0.4867346938775512, \"y\": -4.349345780289348, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.4398842856519041, \"y\": -4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.376796616825051, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -4.311977606472133, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": -0.2920408163265309, \"y\": -4.238948728121449, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": -0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": -1.9658731394524418}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409617}, {\"x\": -0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": -1.9658731394524418}, {\"x\": -0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170695}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170695}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.47573962080386245, \"y\": -4.185918367346939, \"z\": 0.0973469387755097}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": -0.2920408163265309, \"y\": -4.185918367346939, \"z\": 1.9658731394524418}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": 2.2175322528784482}, {\"x\": -0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -4.135721983457607, \"z\": 2.0442857142857136}, {\"x\": -0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": -0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.400442776166976, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569494, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": -2.2175322528784465}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": -3.991224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.454141454084696, \"y\": -3.991224489795918, \"z\": 0.29204081632653}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": -0.2920408163265309, \"y\": -3.991224489795918, \"z\": 2.2175322528784482}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569496, \"z\": 2.238979591836734}, {\"x\": -0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569496, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": -0.40044277616697066, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.954320077569496, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": -2.309997718412933}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.3492416105411844}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -0.45759190056680676}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -0.45759190056680676}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": -0.4867346938775512}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": -0.2920408163265309}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": 0.29204081632653}, {\"x\": -0.3308140015881387, \"y\": -3.7965306122448976, \"z\": 0.0973469387755097}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": 0.29204081632653}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 0.4575919005668059}, {\"x\": -0.2920408163265309, \"y\": -3.6938503544733594, \"z\": 0.29204081632653}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": -0.36583817285491627, \"y\": -3.7965306122448976, \"z\": 0.29204081632653}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": -3.7965306122448976, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": -0.2920408163265309, \"y\": -3.7965306122448976, \"z\": 2.3099977184129328}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": -0.2920408163265309, \"y\": -3.422793915058649, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.422793915058649, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -2.307344192049788}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.3492416105411844}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.2920408163265309, \"y\": -3.422793915058649, \"z\": -2.238979591836735}, {\"x\": -0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": -0.4867346938775512}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": -0.6814285714285715}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": -0.6814285714285715}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": -0.45759190056680676}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 0.4575919005668059}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": 0.6814285714285715}, {\"x\": -0.3047179675997409, \"y\": -3.6018367346938773, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.588692541278114, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.42873977766976257, \"y\": -3.6018367346938773, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.2920408163265309, \"y\": -3.461187526866059, \"z\": 0.6814285714285715}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.2920408163265309, \"y\": -3.4227939150586466, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.2920408163265309, \"y\": -3.4227939150586466, \"z\": 2.238979591836734}, {\"x\": -0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": -0.2920408163265309, \"y\": -3.6018367346938773, \"z\": 2.307344192049789}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": -0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.32042311144275626, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.41712188457264077, \"y\": -3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.2920408163265309, \"y\": -3.3198437498916915, \"z\": 0.8761224489795918}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": -0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.2920408163265309, \"y\": -3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.32042311144275093, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.2920408163265309, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.2920408163265309, \"y\": -3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.095468811021273, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": -3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.188939073455719, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -3.0401096533648433, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -3.034529092407129, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.2920408163265309, \"y\": -3.1959110088525855, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": -3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.43977759491608737, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.43977759491608737, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.43977759491608737, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.1256981743039272, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.43977759491608825, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.125698174303928, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.43977759491608825, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.658381768181564}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.43977759491608737, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.43977759491608737, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": -0.43977759491608825, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.43977759491608825, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.43977759491608825, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -1.057162482922822, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.658381768181564}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": -0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": -0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.3297582229917735, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": -0.3297582229917735, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": -0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": -4.185918367346939}, {\"x\": -0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.4470282492193096, \"y\": -0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.2920408163265309, \"y\": -0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.4083405958745221, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.4083405958745221, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": -0.4914802753424574, \"z\": 4.185918367346938}, {\"x\": -0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.37820216523786776, \"y\": -0.2920408163265309, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.37820216523786776, \"y\": -0.2920408163265309, \"z\": -4.77}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": -4.77}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.3297582229917735, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.3297582229917735, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.3297582229917735, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.40834059587452387, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.45759190056680676, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.45759190056680676, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.45759190056680676, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.2920408163265309, \"y\": -0.43977759491608737, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": -0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.4083405958745221, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.4083405958745221, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": -0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.4083405958745221, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": -0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.3297582229917717, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": -0.37820216523786776, \"y\": -0.2920408163265309, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": -0.32721696503336783, \"z\": 4.77}, {\"x\": -0.37820216523786776, \"y\": -0.2920408163265309, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.4867346938775512, \"y\": -0.20099187561523113, \"z\": -4.77}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -3.6938503544733594}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.45759190056680676, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": -0.45759190056680676, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": -1.1256981743039272}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": -0.45011908359255237, \"y\": -0.2920408163265309, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 1.1256981743039267}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": -0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": -0.457591900566805, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.1616789029021648, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": -0.2920408163265309, \"z\": 3.6938503544733585}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": -0.37820216523786776, \"y\": -0.2920408163265309, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": -0.20099187561523113, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -3.5679762759725735}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": -1.1615312016755768}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 1.1615312016755759}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 1.1615312016755759}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 1.1615312016755759}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": -0.0973469387755106, \"z\": 3.5679762759725726}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.3782021652378704, \"y\": 0.29204081632653, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": 0.20099187561523202, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": -0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021648, \"z\": -3.6018367346938773}, {\"x\": -0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -3.5679762759725735}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": -1.1615312016755768}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 1.1615312016755759}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021657, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": -0.4575919005668041, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021657, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": -0.2920408163265309, \"y\": 0.0973469387755097, \"z\": 3.5679762759725726}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": -0.2920408163265309, \"y\": 0.1616789029021657, \"z\": 3.6018367346938778}, {\"x\": -0.4575919005668041, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.4867346938775512, \"y\": 0.20099187561523202, \"z\": 4.77}, {\"x\": -0.3782021652378704, \"y\": 0.29204081632653, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": -4.77}, {\"x\": -0.3782021652378704, \"y\": 0.29204081632653, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.3297582229917717, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888775, \"z\": -4.575306122448979}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": -4.380612244897959}, {\"x\": -0.3297582229917717, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -3.6938503544733585}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.457591900566805, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": -1.125698174303928}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": -1.070816326530612}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.45011908359255326, \"y\": 0.29204081632653, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 1.1256981743039276}, {\"x\": -0.2920408163265309, \"y\": 0.4397775949160865, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.4575919005668041, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -0.4575919005668041, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.29204081632653, \"z\": 3.6938503544733567}, {\"x\": -0.4575919005668041, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.3658381728549154, \"z\": 3.796530612244897}, {\"x\": -0.2920408163265309, \"y\": 0.454141454084696, \"z\": 3.9912244897959184}, {\"x\": -0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.3297582229917735, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.3297582229917735, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.3297582229917735, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4853893386207462, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.3782021652378704, \"y\": 0.29204081632653, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.3782021652378704, \"y\": 0.29204081632653, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.2920408163265309, \"y\": 0.3272169650333687, \"z\": 4.77}, {\"x\": -0.2920408163265309, \"y\": 0.43019727952888864, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": -0.3297582229917717, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.3297582229917717, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.3493457802893465}, {\"x\": -0.3297582229917717, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -4.153853738646481}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.40834059587452387, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": -1.0523727482479384}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 1.0523727482479384}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.153853738646481}, {\"x\": -0.408340595874523, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.3297582229917735, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.4867346938775512, \"z\": 4.349345780289346}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.2920408163265309, \"y\": 0.49148027534245653, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.3297582229917735, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": -0.9368815072154524}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": -0.8761224489795918}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": -0.4470282492193096, \"y\": 0.6814285714285715, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.6814285714285715, \"z\": 0.9368815072154524}, {\"x\": -0.2920408163265309, \"y\": 0.7580033534209107, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": -0.7602302438602804}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": -0.6814285714285715}, {\"x\": -0.43977759491608737, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.43977759491608737, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.43977759491608737, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.43977759491608825, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.43977759491608825, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 1.0571624829228217, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.45124493311485736, \"y\": 0.8761224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 0.8761224489795918, \"z\": 0.7602302438602804}, {\"x\": -0.2920408163265309, \"y\": 0.9422078649997756, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": -0.45011908359255237}, {\"x\": -0.43977759491608737, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.43977759491608737, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039267, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": -0.43977759491608825, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": -0.43977759491608825, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.157390907839856, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": -0.43977759491608825, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 1.070816326530612, \"z\": 0.45011908359255237}, {\"x\": -0.2920408163265309, \"y\": 1.1256981743039276, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852586, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": -1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.1889390734557193, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.0954688110212736, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 3.0401096533648424, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 3.03452909240713, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 3.085838856657901, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.2920408163265309, \"y\": 3.195911008852584, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": -0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -2.0638147894904035}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": -1.0313247278751612}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 3.3198437498916906, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 1.0313247278751607}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.34654327648152616, \"y\": 3.2124489795918363, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.2920408163265309, \"y\": 3.2124489795918363, \"z\": 2.0638147894904026}, {\"x\": -0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": -0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058648, \"z\": -2.238979591836735}, {\"x\": -0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.3492416105411844}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.32042311144275626, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058648, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -2.231757514362576}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": -0.7475661485296614}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": -0.6814285714285715}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -0.457591900566805}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 0.457591900566805}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.588692541278112, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4611875268660572, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 0.7475661485296605}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.41712188457264077, \"y\": 3.4071428571428566, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 3.4071428571428566, \"z\": 2.2317575143625774}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": -0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.32042311144275093, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.422793915058646, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -2.307344192049788}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.3492416105411844}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.3492416105411844}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": -0.6814285714285715}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": -0.457591900566805}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": -0.36583817285491627, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": -0.36583817285491627, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.36583817285491627, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": -0.2920408163265309}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": -0.36583817285491627, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.744004625745772, \"z\": 0.0973469387755097}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 0.457591900566805}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.6938503544733585, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 0.457591900566805}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.3047179675997418, \"y\": 3.6018367346938778, \"z\": 0.4867346938775512}, {\"x\": -0.42873977766976346, \"y\": 3.6018367346938778, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 3.6018367346938778, \"z\": 2.307344192049789}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.40044277616697954, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": -2.309997718412933}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569493, \"z\": -2.238979591836735}, {\"x\": -0.40044277616697954, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": -0.4867346938775512}, {\"x\": -0.36583817285491627, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": -0.36583817285491627, \"y\": 3.796530612244897, \"z\": -0.2920408163265309}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": -0.3308140015881378, \"y\": 3.796530612244897, \"z\": 0.0973469387755097}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.3658381728549154, \"y\": 3.796530612244897, \"z\": 0.29204081632653}, {\"x\": -0.4366992025822123, \"y\": 3.796530612244897, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": -0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.2920408163265309, \"y\": 3.954320077569495, \"z\": 2.238979591836734}, {\"x\": -0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": -0.2920408163265309, \"y\": 3.796530612244897, \"z\": 2.3099977184129346}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.40044277616697954, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -0.40044277616697954, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": -2.217532252878446}, {\"x\": -0.40044277616697954, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457607, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": -0.2920408163265309}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.42646590685371244, \"y\": 3.9912244897959184, \"z\": 0.0973469387755097}, {\"x\": -0.454141454084696, \"y\": 3.9912244897959184, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 3.9912244897959184, \"z\": 2.2175322528784465}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.135721983457609, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.4004427761669742, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": -1.9658731394524436}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.32975822299176993}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289347, \"z\": -0.2920408163265309}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289347, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289347, \"z\": -0.2920408163265309}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289349, \"z\": 0.29204081632653}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.47573962080386245, \"y\": 4.185918367346938, \"z\": 0.0973469387755097}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289349, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.32975822299176727}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.37679661682505, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 4.311977606472134, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": -0.2920408163265309, \"y\": 4.23894872812145, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.2920408163265309, \"y\": 4.185918367346938, \"z\": 1.9658731394524427}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": -1.4467491042151663}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": -1.2655102040816328}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": -0.7954284955106079}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.32975822299176993}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": -0.2920408163265309}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": -0.4811844423093117, \"y\": 4.380612244897959, \"z\": 0.0973469387755097}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.32975822299176727}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.32975822299176727}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.4853893386207462, \"y\": 4.380612244897959, \"z\": 0.29204081632653}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": 0.795428495510607}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": 0.795428495510607}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.54536619207102, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.481313440430451, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.4398842856519041, \"y\": 4.380612244897959, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.380612244897959, \"z\": 1.446749104215166}, {\"x\": -0.2920408163265309, \"y\": 4.427949220756398, \"z\": 1.2655102040816324}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": -0.7954284955106079}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": -0.4867346938775512}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": -0.6814285714285715}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274137, \"z\": -0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": -0.4867346938775512}, {\"x\": -0.32721696503336783, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": -0.2920408163265309, \"y\": 4.77, \"z\": -0.37820216523786776}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": -0.4867346938775512}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.32721696503336783, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": -0.4867346938775512}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": -0.32721696503336783, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": -0.2920408163265309}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": -0.32721696503336783, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": -0.32721696503336783, \"y\": 4.77, \"z\": -0.2920408163265309}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": -0.36518630742796887, \"y\": 4.77, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": -0.36518630742796887, \"y\": 4.77, \"z\": -0.0973469387755106}, {\"x\": -0.36518630742796887, \"y\": 4.77, \"z\": -0.0973469387755106}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": -0.36518630742796887, \"y\": 4.77, \"z\": 0.0973469387755097}, {\"x\": -0.44395351863686106, \"y\": 4.575306122448978, \"z\": 0.0973469387755097}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": -0.36518630742796887, \"y\": 4.77, \"z\": 0.0973469387755097}, {\"x\": -0.36518630742796887, \"y\": 4.77, \"z\": 0.0973469387755097}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": -0.3272169650333687, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": -0.2920408163265309, \"y\": 4.77, \"z\": 0.37820216523786865}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.77, \"z\": 0.37820216523786865}, {\"x\": -0.3272169650333687, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.3272169650333687, \"y\": 4.77, \"z\": 0.29204081632653}, {\"x\": -0.43019727952888864, \"y\": 4.575306122448978, \"z\": 0.29204081632653}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.3995601435005378, \"y\": 4.575306122448978, \"z\": 0.4867346938775512}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.71495695850207, \"z\": 0.4867346938775512}, {\"x\": -0.3444331709299755, \"y\": 4.575306122448978, \"z\": 0.6814285714285715}, {\"x\": -0.2920408163265309, \"y\": 4.575306122448978, \"z\": 0.795428495510607}, {\"x\": -0.2920408163265309, \"y\": 4.621353422274135, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.3297582229917717}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.32975822299176993}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409617}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409617}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.3493457802893465, \"z\": -0.2920408163265309}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": -0.3297582229917717}, {\"x\": -0.4867346938775512, \"y\": -4.3493457802893465, \"z\": -0.2920408163265309}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -4.3493457802893465, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.349345780289348, \"z\": 0.29204081632653}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170695}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.32975822299176993}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.349345780289348, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 0.32975822299176993}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.49100664360774005, \"y\": -4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": -0.49658751218672226, \"y\": -4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": -0.49881367487359096, \"y\": -4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.4901958243359097, \"y\": -4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": -0.4867346938775512, \"y\": -4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409617}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -4.1493476881836635, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -1.9744923503409617}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": -1.070816326530612}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": -0.8761224489795918}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": -0.6814285714285715}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": -0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": -0.22011473203170606}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 0.22011473203170695}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": -0.4867346938775512, \"y\": -4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": -4.185918367346939, \"z\": 0.29204081632653}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": -4.185918367346939, \"z\": 0.4867346938775512}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": -4.185918367346939, \"z\": 0.6814285714285715}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": -4.185918367346939, \"z\": 0.8761224489795918}, {\"x\": -0.6658550950639137, \"y\": -4.185918367346939, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": -0.4867346938775512, \"y\": -4.185918367346939, \"z\": 1.9744923503409613}, {\"x\": -0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": -0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.149347688183664, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": -0.4867346938775512, \"y\": -4.006904388098049, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -2.2552191531082344}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.945804923776957}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.945804923776957}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": -0.8761224489795918}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": -0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": -0.40834059587452387}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 0.40834059587452387}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": -0.4867346938775512, \"y\": -3.929547361417846, \"z\": 0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": -3.991224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": -3.991224489795918, \"z\": 0.6814285714285715}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": -3.991224489795918, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.945804923776957}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": -0.4867346938775512, \"y\": -3.991224489795918, \"z\": 2.255219153108235}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -2.3500839753466307}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.3492416105411844}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.3492416105411844}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.945804923776957}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": -0.8761224489795918}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": -0.5806009233985128}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 0.5806009233985119}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": -0.4867346938775512, \"y\": -3.697076757419018, \"z\": 0.6814285714285715}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.5285872539028809, \"y\": -3.7965306122448976, \"z\": 0.6814285714285715}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": -3.7965306122448976, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.945804923776957}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768897}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.945804923776957}, {\"x\": -0.4867346938775512, \"y\": -3.7965306122448976, \"z\": 2.3500839753466316}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -2.3492416105411844}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": -0.7524789173421436}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 0.7524789173421427}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768897}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768897}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.5684860966195995, \"y\": -3.6018367346938773, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": -3.4772745727370777, \"z\": 0.8761224489795918}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.4867346938775512, \"y\": -3.6018367346938773, \"z\": 2.349241610541185}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.4867346938775512, \"y\": -3.354117036707575, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": -0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.6121407162901233, \"y\": -3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": -3.2920616367188305, \"z\": 1.070816326530612}, {\"x\": -0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": -3.3541170367075734, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.4867346938775512, \"y\": -3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.06602743087732, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.613494048113191, \"y\": -3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": -3.151935962509477, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.6134940481131901, \"y\": -3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.1519359625094774, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": -3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.4867346938775512, \"y\": -3.1582847766066826, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": -3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.0855588375885552, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.658381768181564}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193096}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.070816326530612, \"z\": 0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.5142367384699122, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.9808647805441786, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.658381768181564}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": -0.658381768181564}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193096}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.6564586276474706, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.4867346938775512, \"y\": -0.8592489315814666, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.658381768181564, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.4867346938775512, \"y\": -0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.4867346938775512, \"y\": -0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.658381768181564, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": -0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": -0.49100664360774005, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.6583817681815631, \"y\": -0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.658381768181564, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.658381768181564, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.658381768181564, \"y\": -0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 0.9808647805441781}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": -0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.5806009233985128, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": -0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": -0.4867346938775512, \"y\": -0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.565011656618811, \"y\": -0.0973469387755106, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": -0.20099187561523113, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.565011656618811, \"y\": -0.0973469387755106, \"z\": -4.77}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -4.71495695850207}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -3.588692541278114}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": -1.057162482922822}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 1.0571624829228217}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": -0.22128069871136002, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 3.588692541278112}, {\"x\": -0.4867346938775512, \"y\": -0.20099187561523113, \"z\": 4.77}, {\"x\": -0.5650116566188101, \"y\": -0.0973469387755106, \"z\": 4.77}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": -0.4867346938775512, \"y\": -0.20099187561523113, \"z\": 4.77}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": -0.4867346938775512, \"y\": -0.2920408163265309, \"z\": 4.71495695850207}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": -0.565011656618811, \"y\": 0.0973469387755097, \"z\": -4.77}, {\"x\": -0.565011656618811, \"y\": -0.0973469387755106, \"z\": -4.77}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.565011656618811, \"y\": 0.0973469387755097, \"z\": -4.77}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -3.487000215413455}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": -1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 1.0942327361177941}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": -0.0973469387755106, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": -0.4867346938775512, \"y\": -0.0973469387755106, \"z\": 3.4870002154134543}, {\"x\": -0.6174073136717411, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": -0.5650116566188101, \"y\": -0.0973469387755106, \"z\": 4.77}, {\"x\": -0.565011656618811, \"y\": 0.0973469387755097, \"z\": 4.77}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.5650116566188101, \"y\": -0.0973469387755106, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.20099187561523202, \"z\": -4.77}, {\"x\": -0.565011656618811, \"y\": 0.0973469387755097, \"z\": -4.77}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.4867346938775512, \"y\": 0.20099187561523202, \"z\": -4.77}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -3.4870002154134547}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": -1.0942327361177941}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": -0.5301851594903004, \"y\": 0.0973469387755097, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 1.0942327361177941}, {\"x\": -0.4867346938775512, \"y\": 0.2212806987113609, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.6174073136717402, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": -0.4867346938775512, \"y\": 0.0973469387755097, \"z\": 3.4870002154134543}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": -0.565011656618811, \"y\": 0.0973469387755097, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.20099187561523202, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.565011656618811, \"y\": 0.0973469387755097, \"z\": 4.77}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -4.714956958502071}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005369, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997409, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -3.588692541278113}, {\"x\": -0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": -1.0571624829228226}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": -0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.658381768181564, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.658381768181564, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 1.0571624829228226}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 3.588692541278112}, {\"x\": -0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.3047179675997418, \"z\": 3.6018367346938778}, {\"x\": -0.4867346938775512, \"y\": 0.4366992025822123, \"z\": 3.796530612244897}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": -0.4867346938775512, \"y\": 0.3995601435005378, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": -0.4867346938775512, \"y\": 0.29204081632653, \"z\": 4.714956958502071}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -3.9295473614178458}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": -0.9808647805441786}, {\"x\": -0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.6583817681815631, \"y\": 0.4867346938775512, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.658381768181564, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.658381768181564, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.658381768181564, \"y\": 0.4867346938775512, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 0.9808647805441773}, {\"x\": -0.4867346938775512, \"y\": 0.6564586276474706, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 3.9295473614178444}, {\"x\": -0.5806009233985128, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.5033419068383234, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.5166404986114888, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.4867346938775512, \"y\": 0.49100664360773916, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": -0.4867346938775512, \"y\": 0.4867346938775512, \"z\": 4.394187194212272}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": -0.8577858910710296}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.4867346938775512, \"y\": 0.8592489315814662, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 0.6814285714285715, \"z\": 0.8577858910710292}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": -0.6583817681815631}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": -0.4867346938775512}, {\"x\": -0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.5142367384699131, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.5142367384699131, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": -0.5142367384699131, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 1.0523727482479384, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.6564586276474706, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 0.8761224489795918, \"z\": 0.6583817681815631}, {\"x\": -0.4867346938775512, \"y\": 0.9808647805441781, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": -0.18602170050117817}, {\"x\": -0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699131, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": -0.5142367384699122, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699131, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": -0.0973469387755106}, {\"x\": -0.5142367384699131, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -0.4867346938775512, \"y\": 1.070816326530612, \"z\": 0.18602170050117905}, {\"x\": -0.4867346938775512, \"y\": 1.0855588375885548, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 3.158284776606683, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773188, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.1519359625094765, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.0660274308773205, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 3.0337113375801845, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 3.063513038149698, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.4867346938775512, \"y\": 3.1582847766066813, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": -0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -2.111720066927503}, {\"x\": -0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": -1.1717373779687774}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.613494048113191, \"y\": 3.2124489795918363, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 3.292061636718831, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 1.1717373779687774}, {\"x\": -0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6134940481131901, \"y\": 3.2124489795918363, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.4867346938775512, \"y\": 3.2124489795918363, \"z\": 2.1117200669275036}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": 3.3541170367075743, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -2.2756274893806228}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.3492416105411844}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.3492416105411844}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": -0.9391042978687452}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.477274572737077, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 0.9391042978687452}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6121407162901233, \"y\": 3.4071428571428566, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 3.4071428571428566, \"z\": 2.275627489380624}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -2.3492416105411844}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": -0.7524789173421427}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6970767574190173, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 0.7524789173421427}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": -0.5684860966195995, \"y\": 3.6018367346938778, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": -0.4867346938775512, \"y\": 3.6018367346938778, \"z\": 2.349241610541185}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -2.350083975346631}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": -0.8761224489795918}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": -0.5806009233985128}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9295473614178444, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 0.5806009233985119}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.52858725390288, \"y\": 3.796530612244897, \"z\": 0.6814285714285715}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.6357526251757779, \"y\": 3.796530612244897, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": -0.4867346938775512, \"y\": 3.796530612244897, \"z\": 2.3500839753466316}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -2.255219153108234}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": -0.8761224489795918}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": -0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": -0.408340595874523}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.153853738646481, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 0.408340595874523}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.5033419068383234, \"y\": 3.9912244897959184, \"z\": 0.4867346938775512}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": -0.5641070518077917, \"y\": 3.9912244897959184, \"z\": 0.6814285714285715}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.64731296128359, \"y\": 3.9912244897959184, \"z\": 0.8761224489795918}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": -0.4867346938775512, \"y\": 4.149347688183665, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": -0.4867346938775512, \"y\": 4.006904388098048, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": -0.4867346938775512, \"y\": 3.9912244897959184, \"z\": 2.255219153108235}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -1.974492350340964}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": -1.070816326530612}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": -0.8761224489795918}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": -0.6814285714285715}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.32975822299176993}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289347, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.32975822299176993}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": -0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": -0.22011473203170606}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289347, \"z\": -0.2920408163265309}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 0.22011473203170695}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289349, \"z\": 0.29204081632653}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289349, \"z\": 0.29204081632653}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.32975822299176727}, {\"x\": -0.4867346938775512, \"y\": 4.349345780289349, \"z\": 0.29204081632653}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4914802753424574, \"y\": 4.185918367346938, \"z\": 0.29204081632653}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.5166404986114888, \"y\": 4.185918367346938, \"z\": 0.4867346938775512}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.5541864225367332, \"y\": 4.185918367346938, \"z\": 0.6814285714285715}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.6039490278188717, \"y\": 4.185918367346938, \"z\": 0.8761224489795918}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.6658550950639146, \"y\": 4.185918367346938, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": -0.4867346938775512, \"y\": 4.360480135612924, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 4.329066432365574, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 4.2877058899000975, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": -0.4867346938775512, \"y\": 4.2330006538847655, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": -0.4867346938775512, \"y\": 4.185918367346938, \"z\": 1.974492350340964}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -1.0941001297932074}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": -1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": -1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": -0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": -0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": -0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": -0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": -0.32975822299176993}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": -0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 0.32975822299176727}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.49100664360774005, \"y\": 4.380612244897959, \"z\": 0.4867346938775512}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.394187194212272, \"z\": 0.4867346938775512}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.49658751218672226, \"y\": 4.380612244897959, \"z\": 0.6814285714285715}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.4867346938775512, \"y\": 4.399446565262508, \"z\": 0.6814285714285715}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.49881367487359096, \"y\": 4.380612244897959, \"z\": 0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.395027279654958, \"z\": 0.8761224489795918}, {\"x\": -0.4901958243359097, \"y\": 4.380612244897959, \"z\": 1.070816326530612}, {\"x\": -0.4867346938775512, \"y\": 4.380612244897959, \"z\": 1.0941001297932065}, {\"x\": -0.4867346938775512, \"y\": 4.383244743124472, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": -1.4602040816326531}, {\"x\": -0.729245798208856, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": -0.729245798208856, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": -0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": -0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.252149808350071, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.247729429011101, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": -0.6814285714285715, \"y\": -4.22107450539463, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.9859474869329623}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.7991386773965088, \"y\": -4.185918367346939, \"z\": -1.4602040816326531}, {\"x\": -0.729245798208856, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": -0.729245798208856, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": -1.1197086814291062}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": -0.729245798208856, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.729245798208856, \"y\": -4.185918367346939, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.153776672808484, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.1197086814291053}, {\"x\": -0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": -0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": -0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.7292457982088552, \"y\": -4.185918367346939, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965079, \"y\": -4.185918367346939, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": -0.6814285714285715, \"y\": -4.185918367346939, \"z\": 1.9859474869329627}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -4.165332561118745, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.6814285714285715, \"y\": -4.053831664284883, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": -0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": -0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -2.3125192641661516}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": -0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.858146046394674, \"y\": -3.991224489795918, \"z\": -1.2655102040816328}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.945804923776957}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": -0.9441344647122807}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.945804923776957}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.945804923776957}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 0.9441344647122802}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": -3.991224489795918, \"z\": 1.070816326530612}, {\"x\": -0.8581460463946731, \"y\": -3.991224489795918, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -0.7219553232558225, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.7219553232558225, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.6814285714285715, \"y\": -3.991224489795918, \"z\": 2.312519264166153}, {\"x\": -0.7219553232558225, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": -0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": -0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": -0.7162227893523188, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": -0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -0.7162227893523188, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -2.4161028275299516}, {\"x\": -0.7219553232558242, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": -0.945804923776957}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.945804923776957}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768897}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 0.945804923776957}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": -3.7965306122448976, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": -0.7162227893523161, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -0.7219553232558225, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": -3.7965306122448976, \"z\": 2.4161028275299516}, {\"x\": -0.7162227893523161, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -0.7162227893523161, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": -0.7219553232558225, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": -0.7162227893523161, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.7162227893523188, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": -0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.7162227893523188, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.7162227893523188, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -2.4179508688336253}, {\"x\": -0.7162227893523188, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.8223873118885221, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.8223873118885221, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.8223873118885221, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": -1.0164203111768906}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 1.0164203111768897}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": -0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.7241012012667598, \"y\": -3.6018367346938773, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": -3.5139191358224178, \"z\": 1.070816326530612}, {\"x\": -0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.7162227893523161, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": -3.6018367346938773, \"z\": 2.4179508688336258}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": -0.7162227893523161, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": -0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.848313748851746, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607177, \"z\": -2.238979591836735}, {\"x\": -0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.8223873118885221, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8223873118885221, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.8223873118885221, \"y\": -3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": -0.8223873118885212, \"y\": -3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.6814285714285715, \"y\": -3.2601534137276422, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.73431025758551, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.73431025758551, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.73431025758551, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": -3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": -3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.8483137488517443, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -2.201957974255343}, {\"x\": -0.7343102575855109, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.186911356416133, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8761224489795918, \"y\": -3.186911356416133, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.186911356416133, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.6814285714285715, \"y\": -3.1110078206182297, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": -3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -0.73431025758551, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.73431025758551, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": -3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.73431025758551, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.7180201653998921, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8456872343534618, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193096}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": -0.9728400163275848, \"z\": 0.0973469387755097}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": -0.4470282492193096}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.7580033534209107, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.8577858910710296, \"z\": 0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.7156039891700665, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": -0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.7156039891700665, \"y\": -0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": -0.5641070518077917, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": -0.5541864225367332, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": -0.49658751218672226, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": -0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -0.7524789173421436, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976257, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": -0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": -0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": -0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -0.7524789173421427, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.42873977766976346, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": -0.7954284955106075, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": -0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": -0.3444331709299755, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": -0.7954284955106075, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481650958, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": -0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481650958, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -4.621353422274135}, {\"x\": -0.7954284955106043, \"y\": -0.2920408163265309, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481650958, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -3.461187526866059}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": -0.9422078649997756}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 0.9422078649997756}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.7602302438602804, \"y\": -0.2920408163265309, \"z\": 0.8761224489795918}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": -0.7475661485296614, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 3.4611875268660572}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -0.7954284955106075, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.7954284955106075, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.7954284955106075, \"y\": -0.2920408163265309, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.6814285714285715, \"y\": -0.2920408163265309, \"z\": 4.621353422274135}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -4.703584222470437}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -3.373385822979535}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.25492432640495}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": -0.9812857644568811}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 0.9812857644568806}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.8055285443575411, \"y\": -0.0973469387755106, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 3.373385822979534}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.6814285714285715, \"y\": -0.0973469387755106, \"z\": 4.703584222470438}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": -0.7954284955106061, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": -0.7954284955106061, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -4.703584222470437}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": -0.7954284955106061, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": -0.7475661485296605, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -0.7475661485296605, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": -3.4071428571428566}, {\"x\": -0.7475661485296605, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.25492432640495}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -3.3733858229795346}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": -0.981285764456882}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 0.9812857644568815}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": -0.8055285443575411, \"y\": 0.0973469387755097, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 3.373385822979534}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -0.6814285714285715, \"y\": 0.18449366418755098, \"z\": 3.4071428571428566}, {\"x\": -0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.7954284955106088, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": -0.7954284955106088, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": -0.6814285714285715, \"y\": 0.0973469387755097, \"z\": 4.703584222470438}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -4.621353422274135}, {\"x\": -0.7954284955106061, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.7954284955106061, \"y\": 0.29204081632653, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299746, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.7524789173421436, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.7524789173421436, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.7524789173421436, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -0.7475661485296605, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.4287397776697617, \"z\": -3.6018367346938773}, {\"x\": -0.7475661485296605, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -3.461187526866058}, {\"x\": -0.7475661485296605, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": -0.942207864999776}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": -0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": -0.8761224489795918}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": -0.7602302438602813, \"y\": 0.29204081632653, \"z\": 0.8761224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 0.9422078649997756}, {\"x\": -0.6814285714285715, \"y\": 0.45124493311485736, \"z\": 0.8761224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": -0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 3.4611875268660572}, {\"x\": -0.7475661485296596, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": -0.6814285714285715, \"y\": 0.42873977766976257, \"z\": 3.6018367346938778}, {\"x\": -0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.7954284955106088, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.7954284955106088, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -0.7954284955106088, \"y\": 0.29204081632653, \"z\": 4.575306122448978}, {\"x\": -0.6814285714285715, \"y\": 0.29204081632653, \"z\": 4.621353422274137}, {\"x\": -0.6814285714285715, \"y\": 0.3444331709299764, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.7524789173421436, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -3.697076757419018}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.6814285714285715, \"y\": 0.5285872539028809, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.7524789173421436, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": -0.8592489315814666}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 0.8592489315814662}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.8577858910710296, \"y\": 0.4867346938775512, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 3.6970767574190173}, {\"x\": -0.7524789173421427, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.52858725390288, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": 0.5641070518077909, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": 0.5541864225367323, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -0.6814285714285715, \"y\": 0.49658751218672137, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": -0.6814285714285715, \"y\": 0.4867346938775512, \"z\": 4.399446565262508}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": -0.7156039891700665}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": -0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710292, \"z\": -0.4867346938775512}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": -0.8592489315814666, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.8577858910710301, \"z\": 0.4867346938775512}, {\"x\": -0.7156039891700665, \"y\": 0.6814285714285715, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.6814285714285715, \"z\": 0.7156039891700656}, {\"x\": -0.6814285714285715, \"y\": 0.7156039891700656, \"z\": 0.6814285714285715}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": -0.4470282492193105}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": -0.2920408163265309}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": -0.0973469387755106}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.8037675752901738, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.9728400163275843, \"z\": 0.0973469387755097}, {\"x\": -0.7580033534209107, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -0.6814285714285715, \"y\": 0.8761224489795918, \"z\": 0.4470282492193096}, {\"x\": -0.6814285714285715, \"y\": 0.9368815072154524, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.718020165399893, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.718020165399893, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.718020165399893, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": -0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.718020165399893, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": -2.044285714285714}, {\"x\": -0.718020165399893, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.718020165399893, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 3.11100782061823, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": -0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 3.0332399519463733, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.7180201653998921, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 3.0269186386768423, \"z\": 1.8495918367346933}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8456872343534618, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.0965193740945613, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": -0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.7343102575855109, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.251070581660718, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -2.2019579742553423}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.8223873118885221, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": -1.3171898310556531}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.8223873118885221, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": -0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.2601534137276413, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 1.3171898310556536}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.6814285714285715, \"y\": 3.2124489795918363, \"z\": 2.2019579742553432}, {\"x\": -0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -0.8483137488517443, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.8483137488517443, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.8483137488517443, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.73431025758551, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.2510705816607164, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.8483137488517443, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.7162227893523188, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.7162227893523188, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -2.345385009156189}, {\"x\": -0.848313748851746, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.8223873118885221, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": -1.1374649718875958}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.8223873118885221, \"y\": 3.4071428571428566, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.513919135822416, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 1.1374649718875958}, {\"x\": -0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.8223873118885212, \"y\": 3.4071428571428566, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": -0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -0.8483137488517443, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": 3.4071428571428566, \"z\": 2.345385009156189}, {\"x\": -0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.8483137488517443, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -0.7162227893523188, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": -0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -0.7162227893523188, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -0.7162227893523188, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -2.4179508688336253}, {\"x\": -0.7162227893523188, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": -1.0164203111768901}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 1.0164203111768897}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.7241012012667607, \"y\": 3.6018367346938778, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": 3.6018367346938778, \"z\": 2.4179508688336258}, {\"x\": -0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": -0.7162227893523161, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": -0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": -0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -0.7219553232558233, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": -0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": -0.9458049237769575}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 0.945804923776957}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": -0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.7605805625756608, \"y\": 3.796530612244897, \"z\": 1.070816326530612}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": -0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": -0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": -0.6814285714285715, \"y\": 3.796530612244897, \"z\": 2.4161028275299516}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": -0.7219553232558207, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -2.3125192641661507}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284882, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": -0.7991386773965101, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.7991386773965101, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": -0.7991386773965101, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.7292457982088569, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": -0.7292457982088569, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": -0.7292457982088569, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": -1.2655102040816328}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": -0.9441344647122807}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": -1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 0.9441344647122802}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": -0.729245798208856, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": -0.6814285714285715, \"y\": 4.153776672808485, \"z\": 1.070816326530612}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": -0.729245798208856, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": -0.7428396042774175, \"y\": 3.9912244897959184, \"z\": 1.070816326530612}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.729245798208856, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.8581460463946731, \"y\": 3.9912244897959184, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.729245798208856, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": -0.6814285714285715, \"y\": 4.1653325611187455, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": -0.6814285714285715, \"y\": 4.053831664284884, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.6814285714285715, \"y\": 3.9912244897959184, \"z\": 2.312519264166151}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.9859474869329654}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": -0.7991386773965101, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": -0.7991386773965101, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.7292457982088569, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.7991386773965101, \"y\": 4.185918367346938, \"z\": -1.4602040816326531}, {\"x\": -0.7292457982088569, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": -1.4602040816326531}, {\"x\": -0.7292457982088569, \"y\": 4.185918367346938, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": -1.119708681429104}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": -1.2655102040816328}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.1197086814291035}, {\"x\": -0.729245798208856, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.729245798208856, \"y\": 4.185918367346938, \"z\": 1.2655102040816324}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 4.230004574477569, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.7991386773965092, \"y\": 4.185918367346938, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.252149808350072, \"z\": 1.4602040816326527}, {\"x\": -0.6814285714285715, \"y\": 4.2477294290111, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": -0.6814285714285715, \"y\": 4.221074505394631, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.6814285714285715, \"y\": 4.185918367346938, \"z\": 1.9859474869329654}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.9456206868183421, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": -0.9456206868183421, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": -0.9456206868183421, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -4.1869215374280015, \"z\": 1.654897959183673}, {\"x\": -0.9456206868183425, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": -0.9456206868183425, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": -0.9338379607725753, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -4.060015200176018, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": -1.070816326530612, \"y\": -4.060015200176018, \"z\": -2.433673469387755}, {\"x\": -0.9338379607725753, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -4.060015200176018, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -4.060015200176018, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": -0.9456206868183421, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.9828261655690507}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": -0.9456206868183421, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -0.9456206868183421, \"y\": -4.185918367346939, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": -0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": -1.6503891731762992}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": -0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.6503891731762996}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -0.9456206868183425, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -0.8785477031549855, \"y\": -4.185918367346939, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": -0.9456206868183425, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.185918367346939, \"z\": 1.9828261655690511}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -0.9456206868183425, \"y\": -4.185918367346939, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -4.1783871364349485, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -4.1778716856340194, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.1783871364349485, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.1783871364349485, \"z\": 2.0442857142857136}, {\"x\": -0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -0.9338379607725753, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": -0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": -0.9338379607725753, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": -0.9338379607725753, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.9432770286032217, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -2.401778363293682}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": -1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": -1.2947595218317738}, {\"x\": -1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": -0.994320193892551, \"y\": -3.991224489795918, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.9286569100170223, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.928656910017021, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 1.2947595218317742}, {\"x\": -0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": -0.9943201938925501, \"y\": -3.991224489795918, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.991224489795918, \"z\": 2.4017783632936833}, {\"x\": -0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": -0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": -0.9338379607725731, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.943277028603224, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -2.497975582184988}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": -0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": -1.2247688243977612}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": -0.9022370237751978, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": -0.9022370237751978, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 1.2247688243977608}, {\"x\": -0.9022370237751978, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": -0.9097096916008822, \"y\": -3.7965306122448976, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -0.9022370237751978, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": -0.8761224489795918, \"y\": -3.7965306122448976, \"z\": 2.4979755821849885}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -2.5013998120283287}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -0.9022370237751982, \"y\": -3.6018367346938773, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": -1.23949674424321}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 1.23949674424321}, {\"x\": -0.9022370237751978, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.9022370237751978, \"y\": -3.6018367346938773, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": -3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": -3.6018367346938773, \"z\": 2.501399812028329}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.018615701785329, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -0.8761224489795918, \"y\": -3.3811538099429006, \"z\": -2.433673469387755}, {\"x\": -1.018615701785329, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": -0.9212666058406183, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.9212666058406183, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.9212666058406178, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -0.9212666058406178, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -0.9212666058406178, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -1.0186157017853277, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -1.0186157017853277, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.8761224489795918, \"y\": -3.381153809942899, \"z\": 2.433673469387754}, {\"x\": -1.0186157017853277, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -0.8761224489795918, \"y\": -3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": -1.018615701785329, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -0.9999662005822567, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -1.018615701785329, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": -3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.9999662005822567, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.9212666058406183, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -0.9212666058406183, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.186911356416133, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.186911356416133, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -0.9212666058406183, \"y\": -3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.8761224489795918, \"y\": -3.186911356416133, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.9212666058406178, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -0.9212666058406178, \"y\": -3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": -3.1869113564161333, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.8761224489795918, \"y\": -3.03453294834312, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.9999662005822563, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -0.9999662005822563, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -0.9999662005822563, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": -1.0186157017853277, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.1240548354532156, \"z\": 2.238979591836734}, {\"x\": -1.0186157017853277, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": -3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -1.0186157017853277, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -0.9999662005822567, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.9999662005822567, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.9999662005822567, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -0.8761224489795918, \"y\": -2.9793378197671587, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -0.9999662005822563, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": -3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -0.9999662005822563, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -0.9441344647122807, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": -0.945804923776957, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": -0.9441344647122807, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": -0.945804923776957, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -0.945804923776957, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": -0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.942207864999776, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.942207864999776, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.0164203111768901, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": -0.9458049237769575, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": -1.0164203111768901, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": -0.9458049237769575, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.9441344647122816, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -0.9458049237769575, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -0.9441344647122816, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -0.9441344647122816, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -0.9441344647122807, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -0.9441344647122807, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188708, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.945804923776957, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -0.9441344647122807, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": -3.991224489795918}, {\"x\": -0.945804923776957, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -0.945804923776957, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.0164203111768906, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -0.9422078649997756, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -0.9812857644568811, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -0.981285764456882, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.942207864999776, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.942207864999776, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.942207864999776, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -0.942207864999776, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": -0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": -1.0164203111768901, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -1.0164203111768901, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.9458049237769575, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -1.0164203111768901, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": -0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.9458049237769575, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -0.9441344647122816, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -0.9458049237769575, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": -0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.9441344647122816, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -0.9441344647122816, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.64731296128359, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.6039490278188717, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": -0.49881367487359096, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -1.057162482922822, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -1.0571624829228226, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": -0.4470282492193105, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -0.9391042978687452, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.41712188457264077, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.8761224489795918, \"y\": -0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481650958, \"z\": -4.575306122448979}, {\"x\": -0.9519757177321906, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.9519757177321906, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481650958, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -0.9519757177321906, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -4.545366192071021}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -3.3198437498916915}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": -0.7580033534209107}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": -0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": -0.9368815072154524, \"y\": -0.2920408163265309, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 3.3198437498916906}, {\"x\": -1.0313247278751612, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.9519757177321932, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -0.8761224489795918, \"y\": -0.2920408163265309, \"z\": 4.54536619207102}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": -0.8761224489795918, \"y\": -0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.9519757177321932, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.9519757177321906, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": -0.9519757177321906, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": -0.9519757177321906, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -4.607948680550934}, {\"x\": -0.9519757177321906, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": -0.9519757177321906, \"y\": -0.0973469387755106, \"z\": -4.575306122448979}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -0.9519757177321906, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.25492432640495}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -3.25492432640495}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": -0.8037675752901738}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": -0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 0.8037675752901734}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": -0.9728400163275848, \"y\": -0.0973469387755106, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 3.25492432640495}, {\"x\": -0.9463264754662934, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -0.9519757177321932, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": -0.9519757177321932, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -0.9519757177321932, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": -0.9519757177321932, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": -0.9519757177321932, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": -0.0973469387755106, \"z\": 4.607948680550935}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": -0.9519757177321932, \"y\": -0.0973469387755106, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -4.607948680550934}, {\"x\": -0.9519757177321906, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": -0.9519757177321906, \"y\": 0.0973469387755097, \"z\": -4.575306122448979}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651047, \"z\": -4.575306122448979}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.25492432640495}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -3.25492432640495}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": -0.8037675752901738}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": -0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 0.8037675752901734}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.9728400163275848, \"y\": 0.0973469387755097, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 3.25492432640495}, {\"x\": -0.9463264754662934, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -0.9519757177321932, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -0.9519757177321932, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": -0.9519757177321932, \"y\": 0.0973469387755097, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.0973469387755097, \"z\": 4.607948680550935}, {\"x\": -0.8761224489795918, \"y\": 0.20914525481651314, \"z\": 4.575306122448978}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -4.545366192071021}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": -3.4071428571428566}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -3.3198437498916906}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": -0.7580033534209107}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": -0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": -0.6814285714285715}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -1.0523727482479384, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": -0.9368815072154524, \"y\": 0.29204081632653, \"z\": 0.6814285714285715}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 0.7580033534209107}, {\"x\": -0.8761224489795918, \"y\": 0.4470282492193096, \"z\": 0.6814285714285715}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 3.3198437498916906}, {\"x\": -1.0313247278751603, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -0.8761224489795918, \"y\": 0.41712188457264165, \"z\": 3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.8761224489795918, \"y\": 0.29204081632653, \"z\": 4.545366192071022}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -4.395027279654958}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188699, \"z\": -4.185918367346939}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": -3.991224489795918}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -0.945804923776957, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": -3.7965306122448976}, {\"x\": -0.945804923776957, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.945804923776957, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195986, \"z\": -3.6018367346938773}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -3.4772745727370777}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": -0.6564586276474706}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": -0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -1.057162482922822, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -0.942207864999776, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.942207864999776, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.942207864999776, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -1.0571624829228226, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.9808647805441786, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 0.6564586276474706}, {\"x\": -0.8761224489795918, \"y\": 0.6583817681815631, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.0164203111768901, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 3.477274572737077}, {\"x\": -0.9391042978687452, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": 0.5684860966195995, \"z\": 3.6018367346938778}, {\"x\": -1.0164203111768901, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -0.9458049237769575, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -1.0164203111768901, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": 0.6357526251757779, \"z\": 3.796530612244897}, {\"x\": -0.9458049237769575, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -0.9458049237769575, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -0.8761224489795918, \"y\": 0.6473129612835891, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.6039490278188708, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -0.8761224489795918, \"y\": 0.4988136748735901, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -0.8761224489795918, \"y\": 0.4867346938775512, \"z\": 4.395027279654958}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -0.945804923776957, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -0.945804923776957, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -0.945804923776957, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -1.0164203111768906, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": -0.45124493311485736}, {\"x\": -0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.9422078649997756, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602804, \"z\": -0.2920408163265309}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": -0.0973469387755106}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.942207864999776, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -0.981285764456882, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -0.942207864999776, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.8055285443575411, \"z\": 0.0973469387755097}, {\"x\": -0.942207864999776, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -0.8761224489795918, \"y\": 0.6814285714285715, \"z\": 0.45124493311485736}, {\"x\": -0.8761224489795918, \"y\": 0.7602302438602813, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": -1.0164203111768901, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -1.0164203111768901, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -0.9458049237769575, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -1.0164203111768901, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -0.9458049237769575, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": -0.9458049237769575, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -0.9441344647122807, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -0.9999662005822567, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -0.9999662005822567, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 2.9793378197671583, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 3.0035885360978902, \"z\": 2.0442857142857136}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.018615701785329, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": -0.9999662005822567, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -0.9999662005822567, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.018615701785329, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": -1.018615701785329, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.9999662005822567, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.124054835453216, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -2.0720397387159526}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": -1.7053734553594038}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": -0.9212666058406183, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343119, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.9212666058406183, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -0.9212666058406178, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.9212666058406178, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -0.9212666058406178, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.1869113564161324, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.034532948343121, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 1.7053734553594042}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 3.017755102040816, \"z\": 2.0720397387159526}, {\"x\": -0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.0186157017853277, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -1.0186157017853277, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -1.0186157017853277, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -0.9999662005822563, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.1240548354532143, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -1.0186157017853277, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": -1.018615701785329, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": -1.018615701785329, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -1.018615701785329, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.3811538099428997, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -2.3217410791830635}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -0.9212666058406183, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": -0.9212666058406183, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": -0.9212666058406183, \"y\": 3.2124489795918363, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": -1.4380150543669248}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.9212666058406178, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 1.4380150543669252}, {\"x\": -0.9212666058406178, \"y\": 3.2124489795918363, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.2124489795918363, \"z\": 2.321741079183064}, {\"x\": -0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": -1.0186157017853277, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.0186157017853277, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.381153809942898, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -2.447260185103216}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.5992134681931662}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": -1.3124825110471101}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149613, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": -0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.9022370237751978, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": -0.9022370237751978, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.527497955149615, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -0.9022370237751978, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 1.3124825110471106}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -0.8761224489795918, \"y\": 3.4071428571428566, \"z\": 2.4472601851032154}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -2.5013998120283287}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.5992134681931662}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.5992134681931662}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": -0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": -1.23949674424321}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": -0.9022370237751982, \"y\": 3.6018367346938778, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": -0.9022370237751978, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 1.23949674424321}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -0.9022370237751978, \"y\": 3.6018367346938778, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -0.8761224489795918, \"y\": 3.6018367346938778, \"z\": 2.501399812028329}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": -0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": -0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": -0.8761224489795918, \"y\": 3.9432770286032213, \"z\": -2.433673469387755}, {\"x\": -0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": -1.2247688243977608}, {\"x\": -0.8761224489795918, \"y\": 3.928656910017022, \"z\": -1.2655102040816328}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 1.2247688243977608}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": -1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": -0.9097096916008822, \"y\": 3.796530612244897, \"z\": 1.2655102040816324}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": -0.8761224489795918, \"y\": 3.92865691001702, \"z\": 1.2655102040816324}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": -0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": -0.9338379607725744, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -0.9338379607725744, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -0.8761224489795918, \"y\": 3.943277028603223, \"z\": 2.433673469387754}, {\"x\": -0.9338379607725744, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": -0.8761224489795918, \"y\": 3.796530612244897, \"z\": 2.4979755821849885}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": -1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": -0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -2.4017783632936816}, {\"x\": -0.9338379607725766, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": -1.2947595218317738}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603557, \"z\": -1.4602040816326531}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 1.2947595218317742}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": -0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": -0.9943201938925501, \"y\": 3.9912244897959184, \"z\": 1.4602040816326527}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": -0.8761224489795918, \"y\": 4.119471427603555, \"z\": 1.4602040816326527}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": -0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 4.17787168563402, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -0.9338379607725744, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 3.9912244897959184, \"z\": 2.4017783632936824}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -0.8761224489795918, \"y\": 4.106063999315799, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -0.9338379607725744, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.9828261655690587}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": -1.8495918367346937}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": -1.8495918367346937}, {\"x\": -0.8785477031549878, \"y\": 4.185918367346938, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": -1.6503891731762956}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428002, \"z\": -1.6548979591836734}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.650389173176297}, {\"x\": -0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -0.8785477031549869, \"y\": 4.185918367346938, \"z\": 1.654897959183673}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.186921537428001, \"z\": 1.654897959183673}, {\"x\": -0.9456206868183461, \"y\": 4.185918367346938, \"z\": 1.8495918367346933}, {\"x\": -0.8761224489795918, \"y\": 4.185918367346938, \"z\": 1.982826165569059}, {\"x\": -0.8761224489795918, \"y\": 4.1989527961478945, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": -1.070816326530612, \"y\": -4.060015200176018, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -2.6097168055155815}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -4.060015200176018, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -4.178387136434948, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.152039851393803, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.1783871364349485, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.1783871364349485, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -4.1783871364349485, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.070816326530612, \"y\": -4.060015200176019, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -2.6759676978167297}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.9549440234958846, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.9549440234958846, \"z\": -2.6283673469387754}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -1.2655102040816328, \"y\": -3.9549440234958846, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -2.6097168055155815}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -2.6097168055155815}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -2.506308793585488}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": -1.2655102040816328, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": -1.5573431561324957}, {\"x\": -1.2655102040816328, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.839285821050701, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.8392858210507006, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 1.5573431561324957}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": -1.1688955968360606, \"y\": -3.991224489795918, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.954944023495884, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.070816326530612, \"y\": -3.991224489795918, \"z\": 2.5063087935854886}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 2.6759676978167297}, {\"x\": -1.2655102040816328, \"y\": -3.954944023495884, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -2.6847084755086303}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -2.6759676978167297}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -2.6847084755086303}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -2.593486562062995}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": -1.121529087594257, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -1.121529087594257, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": -1.442231981111938}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": -1.1215290875942556, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": -1.1215290875942556, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 1.442231981111938}, {\"x\": -1.1215290875942556, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": -1.0905934974850289, \"y\": -3.7965306122448976, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.1215290875942556, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.7965306122448976, \"z\": 2.5934865620629948}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 2.6759676978167297}, {\"x\": -1.149111272540277, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 2.6759676978167297}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -2.6847084755086303}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -2.599213468193166}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.121529087594257, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": -1.0865203384546755, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.121529087594257, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": -1.121529087594257, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.0865203384546755, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": -1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.121529087594257, \"y\": -3.6018367346938773, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -1.1215290875942556, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": -1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 1.4220276204901063}, {\"x\": -1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.1215290875942556, \"y\": -3.6018367346938773, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.6018367346938773, \"z\": 2.599213468193166}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": -1.1331206635656597, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": -2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.0865203384546755, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.0865203384546755, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.0865203384546755, \"y\": -3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.070816326530612, \"y\": -3.38109653552729, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.086520338454675, \"y\": -3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.070816326530612, \"y\": -3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": 2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.070816326530612, \"y\": -3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.2007760376339234, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.172350717183893, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.070816326530612, \"y\": -3.154043496011992, \"z\": -2.433673469387755}, {\"x\": -1.172350717183893, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.070816326530612, \"y\": -3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": -3.041185736862001, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.1723507171838912, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.1723507171838912, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.070816326530612, \"y\": -3.1540434960119903, \"z\": 2.433673469387754}, {\"x\": -1.1723507171838912, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.070816326530612, \"y\": -3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.172350717183893, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.1887389093707674, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.172350717183893, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.1887389093707674, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.1418827702422703, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": -1.1887389093707674, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": -2.044285714285714}, {\"x\": -1.1418827702422703, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2254034642992662, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.1418827702422703, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2254034642992662, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.2254034642992662, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": -1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.225403464299267, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.225403464299267, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.1418827702422694, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": -1.225403464299267, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -2.8827330805167617, \"z\": 2.0442857142857136}, {\"x\": -1.1418827702422694, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.1887389093707665, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -1.1418827702422694, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.1887389093707665, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -1.1887389093707665, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.1723507171838912, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -2.954843479985914, \"z\": 2.238979591836734}, {\"x\": -1.1723507171838912, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": -3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.1723507171838912, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.2655102040816328, \"y\": -2.7219217830722733, \"z\": -2.238979591836735}, {\"x\": -1.1887389093707674, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.1887389093707674, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": -2.044285714285714}, {\"x\": -1.1418827702422703, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -2.7219217830722733, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": -2.044285714285714}, {\"x\": -1.1887389093707674, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.1418827702422703, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.2254034642992662, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.1418827702422703, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2254034642992662, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": -1.225403464299267, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.225403464299267, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": 2.0442857142857136}, {\"x\": -1.1418827702422694, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": 2.0442857142857136}, {\"x\": -1.225403464299267, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.1418827702422694, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -2.721921783072273, \"z\": 2.238979591836734}, {\"x\": -1.1887389093707665, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -2.721921783072273, \"z\": 2.238979591836734}, {\"x\": -1.1418827702422694, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.1887389093707665, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.721921783072273, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2247688243977612, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": -1.2247688243977612, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.2394967442432097, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.2394967442432097, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.1197086814291062, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.1197086814291062, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.2247688243977612, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.2247688243977612, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2247688243977612, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": -3.4071428571428566}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.23949674424321, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": 3.4071428571428566}, {\"x\": -1.2394967442432097, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.2394967442432097, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": 3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2394967442432097, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": -0.7241012012667607, \"z\": 3.6018367346938778}, {\"x\": -1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2247688243977608, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.7605805625756608, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": -0.7428396042774175, \"z\": 3.9912244897959184}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.1197086814291062, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.1197086814291062, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.1197086814291062, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.1197086814291062, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.1374649718875958, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6121407162901233, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.070816326530612, \"y\": -0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.119708681429104, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.6658550950639146, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -3.095468811021273}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -1.0942327361177941, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": -0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": -1.1717373779687774, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": -0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.070816326530612, \"y\": -0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -4.481313440430451}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -3.188939073455719}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -3.095468811021273}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -3.095468811021273}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -3.0692971430960947}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.0855588375885543, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": -1.0855588375885543, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": -0.43977759491608737}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.0855588375885543, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -1.0855588375885543, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": -1.1256981743039272, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 0.4397775949160865}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -1.125698174303928, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": -0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 3.1889390734557193}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": -1.070816326530612, \"y\": -0.2920408163265309, \"z\": 4.481313440430451}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -3.1476921577619885}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -3.0692971430960947}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -3.0692971430960947}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -3.0692971430960947}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": -1.0855588375885543, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": -0.5142367384699122}, {\"x\": -1.0855588375885543, \"y\": -0.0973469387755106, \"z\": -0.4867346938775512}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -1.157390907839856, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": -1.0855588375885552, \"y\": -0.0973469387755106, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 3.069297143096094}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": -1.070816326530612, \"y\": -0.0973469387755106, \"z\": 4.527270396890964}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -4.527270396890964}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -3.1476921577619885}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -3.0692971430960947}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -3.0692971430960947}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": -0.5142367384699122}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": -0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": -0.4867346938775512}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -1.1926611880868054, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.157390907839856, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": -1.0855588375885552, \"y\": 0.0973469387755097, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 0.5142367384699122}, {\"x\": -1.070816326530612, \"y\": 0.18602170050117817, \"z\": 0.4867346938775512}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 3.1476921577619885}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 3.069297143096094}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 3.069297143096094}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 3.095468811021272}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -1.070816326530612, \"y\": 0.0973469387755097, \"z\": 4.527270396890964}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -4.481313440430452}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": -3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -3.1889390734557184}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": -0.43977759491608825}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255237, \"z\": -0.2920408163265309}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.1615312016755768, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.125698174303928, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 0.43977759491608737}, {\"x\": -1.070816326530612, \"y\": 0.45011908359255326, \"z\": 0.29204081632653}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 3.1889390734557175}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 3.095468811021272}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.070816326530612, \"y\": 0.34654327648152616, \"z\": 3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.070816326530612, \"y\": 0.29204081632653, \"z\": 4.481313440430451}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -4.383244743124472}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": -4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": -4.380612244897959}, {\"x\": -1.1197086814291062, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": -4.185918367346939}, {\"x\": -1.1197086814291062, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": -3.4071428571428566}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -3.2920616367188305}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": -0.22128069871136002}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": -0.0973469387755106}, {\"x\": -1.0942327361177941, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 0.2212806987113609}, {\"x\": -1.070816326530612, \"y\": 0.5301851594903004, \"z\": 0.0973469387755097}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 3.292061636718831}, {\"x\": -1.1717373779687774, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.070816326530612, \"y\": 0.6121407162901225, \"z\": 3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.119708681429104, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.070816326530612, \"y\": 0.6658550950639137, \"z\": 4.185918367346938}, {\"x\": -1.119708681429104, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.0941001297932074, \"y\": 0.4867346938775512, \"z\": 4.380612244897959}, {\"x\": -1.070816326530612, \"y\": 0.4867346938775512, \"z\": 4.383244743124472}, {\"x\": -1.070816326530612, \"y\": 0.4901958243359097, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.1197086814291062, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.1197086814291062, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -4.153776672808484}, {\"x\": -1.1197086814291062, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2247688243977612, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": -3.991224489795918}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756608, \"z\": -3.7965306122448976}, {\"x\": -1.2247688243977612, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.2247688243977612, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": -3.6018367346938773}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": -3.5139191358224173}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 3.513919135822416}, {\"x\": -1.1374649718875958, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": 0.7241012012667598, \"z\": 3.6018367346938778}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -1.070816326530612, \"y\": 0.7605805625756599, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.2655102040816328, \"y\": 0.729245798208856, \"z\": 4.185918367346938}, {\"x\": -1.119708681429104, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": 0.6814285714285715, \"z\": 4.153776672808485}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.729245798208856, \"z\": 4.185918367346938}, {\"x\": -1.070816326530612, \"y\": 0.7428396042774166, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.729245798208856, \"z\": 4.185918367346938}, {\"x\": -1.119708681429104, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.729245798208856, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": -1.2247688243977612, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.2247688243977612, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.2247688243977612, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.23949674424321, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -1.2247688243977608, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.1887389093707674, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": -2.238979591836735}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": -2.238979591836735}, {\"x\": -1.1887389093707674, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": -2.238979591836735}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": 1.8495918367346933}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": 1.8495918367346933}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": 1.8495918367346933}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.172350717183893, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.1887389093707674, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.1887389093707674, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.172350717183893, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.172350717183893, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.1887389093707674, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859145, \"z\": -2.238979591836735}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": -2.044285714285714}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.2254034642992662, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 2.9095523304704836, \"z\": 1.8495918367346933}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.1418827702422703, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 2.8827330805167612, \"z\": 2.0442857142857136}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.1723507171838912, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.1723507171838912, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.1723507171838912, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.1887389093707665, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 2.9548434799859136, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.1723507171838912, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.172350717183893, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": -1.172350717183893, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.172350717183893, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.154043496011993, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -2.311612966367139}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": -1.6825150350723068}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.2655102040816328, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.2655102040816328, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.2655102040816328, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.0411857368620003, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 1.6825150350723073}, {\"x\": -1.2655102040816328, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.017755102040816, \"z\": 2.3116129663671385}, {\"x\": -1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": -1.1723507171838912, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.1723507171838912, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.1540434960119894, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": -2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -2.4696106414135905}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": -1.0865203384546755, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": -1.5369895975108223}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272895, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.0865203384546755, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.3810965355272913, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 1.5369895975108232}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.070816326530612, \"y\": 3.2124489795918363, \"z\": 2.469610641413591}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.5992134681931662}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -2.5539263102654877}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.5992134681931662}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.0865203384546755, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.0865203384546755, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.0865203384546755, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": -1.4509794787850279}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -1.0865203384546755, \"y\": 3.4071428571428566, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -1.1215290875942556, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.1215290875942556, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 1.4509794787850279}, {\"x\": -1.1215290875942556, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": -1.086520338454675, \"y\": 3.4071428571428566, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.1215290875942556, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.4071428571428566, \"z\": 2.5539263102654886}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.2007760376339234, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -2.5992134681931662}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": -1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": -1.4220276204901063}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -1.121529087594256, \"y\": 3.6018367346938778, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": -1.1215290875942556, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 1.4220276204901063}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.1215290875942556, \"y\": 3.6018367346938778, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.6018367346938778, \"z\": 2.599213468193166}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": -1.1331206635656605, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": -2.6283673469387754}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -2.593486562062995}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -1.7520685343636808}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467376, \"z\": -1.6548979591836734}, {\"x\": -1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467376, \"z\": -1.6548979591836734}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": -1.442231981111938}, {\"x\": -1.070816326530612, \"y\": 3.8392858210507015, \"z\": -1.4602040816326531}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 1.442231981111938}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467374, \"z\": 1.654897959183673}, {\"x\": -1.1688955968360588, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": -1.1688955968360588, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.1688955968360588, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": -1.0905934974850289, \"y\": 3.796530612244897, \"z\": 1.4602040816326527}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": 3.8392858210506997, \"z\": 1.4602040816326527}, {\"x\": -1.1688955968360588, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467374, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 1.7520685343636808}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": 2.6283673469387754}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": 2.6283673469387754}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": -1.070816326530612, \"y\": 3.796530612244897, \"z\": 2.5934865620629948}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": -1.1491112725402783, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -2.5063087935854873}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.070816326530612, \"y\": 4.060015200176016, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -1.7520685343636808}, {\"x\": -1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.1688955968360597, \"y\": 3.9912244897959184, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": -1.5573431561324957}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": -1.6548979591836734}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 1.5573431561324957}, {\"x\": -1.1688955968360588, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 1.7520685343636808}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.1688955968360588, \"y\": 3.9912244897959184, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 1.7520685343636808}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.069157344525445, \"z\": 1.654897959183673}, {\"x\": -1.070816326530612, \"y\": 4.152039851393804, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 4.178387136434949, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.153253017617557, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": -1.070816326530612, \"y\": 4.060015200176018, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.070816326530612, \"y\": 3.9912244897959184, \"z\": 2.506308793585487}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.3324187235408926, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -2.6097168055155815}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.3324187235408926, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -2.6097168055155815}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582057, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 1.9148231489671517}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.15466939180144, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -4.18024588722862, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": -1.332418723540893, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.332418723540893, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.332418723540893, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.3324187235408926, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -2.6759676978167297}, {\"x\": -1.2655102040816328, \"y\": -3.9549440234958846, \"z\": -2.6283673469387754}, {\"x\": -1.3324187235408926, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -2.6759676978167297}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -2.715252452998222}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -2.6759676978167297}, {\"x\": -1.3324187235408926, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.9549440234958846, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -2.6097168055155815}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221027, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": -1.3184442148249755, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.2655102040816328, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221027, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": -1.7520685343636795}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221027, \"z\": -1.8495918367346937}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -3.8699903534673776, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": -1.3184442148249755, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": -1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -3.869990353467377, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 1.752068534363679}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": -1.3899223518372854, \"y\": -3.991224489795918, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 1.9148231489671517}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -3.991224489795918, \"z\": 2.60971680551558}, {\"x\": -1.2655102040816328, \"y\": -3.954944023495884, \"z\": 2.6283673469387754}, {\"x\": -1.332418723540893, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.954944023495884, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.332418723540893, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.954944023495884, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 2.6759676978167297}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 2.6759676978167297}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -2.6759676978167297}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -2.715252452998222}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -2.6847084755086303}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -2.715252452998222}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -2.7351561436487684}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -2.6847084755086303}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -1.6900228178543641}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.3184442148249755, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": -1.4083501182263602, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -1.6900228178543641}, {\"x\": -1.3184442148249755, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": -1.3184442148249755, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.4083501182263602, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": -1.6171069999677967}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.3184442148249755, \"y\": -3.7965306122448976, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": -1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": -1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 1.6171069999677972}, {\"x\": -1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": -1.318444214824975, \"y\": -3.7965306122448976, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": -1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.2655102040816328, \"y\": -3.7965306122448976, \"z\": 2.6759676978167297}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -2.6847084755086303}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -2.7351561436487684}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -2.7351561436487684}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -1.6900228178543641}, {\"x\": -1.4083501182263602, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.4162411101536274, \"z\": -1.6548979591836734}, {\"x\": -1.4083501182263602, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": -3.4162411101536274, \"z\": -1.6548979591836734}, {\"x\": -1.4083501182263602, \"y\": -3.6018367346938773, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": -1.5703876267368315}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": -3.416241110153625, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.416241110153625, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 1.5703876267368324}, {\"x\": -1.4083501182263598, \"y\": -3.6018367346938773, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": -1.4602040816326531, \"y\": -3.416241110153625, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.6018367346938773, \"z\": 2.6847084755086295}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.2913378290848603, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": -2.6283673469387754}, {\"x\": -1.2913378290848603, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.2655102040816328, \"y\": -3.268050175572223, \"z\": 2.6283673469387754}, {\"x\": -1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.2655102040816328, \"y\": -3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.2913378290848603, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2913378290848603, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.2913378290848603, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2913378290848603, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.4602040816326531, \"y\": -3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.4602040816326531, \"y\": -3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": -3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330532, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.2655102040816328, \"y\": -3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.2913378290848607, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 2.6920119836726917}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": -2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": -3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 2.6920119836726917}, {\"x\": -1.378448672172775, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 2.6920119836726917}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": -2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -2.5706826686606443}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -2.5706826686606443}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": -2.7219217830722733, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -2.7219217830722733, \"z\": -2.238979591836735}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.2924468513952627, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -2.7219217830722733, \"z\": -2.238979591836735}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": -2.044285714285714}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": -2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": -2.044285714285714}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4495557837119244, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4495557837119244, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": -2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.4495557837119244, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4495557837119253, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -2.79729279618787, \"z\": 1.8495918367346933}, {\"x\": -1.4495557837119253, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": 2.0442857142857136}, {\"x\": -1.4495557837119253, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": -2.721921783072273, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.703777141375253, \"z\": 2.0442857142857136}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.721921783072273, \"z\": 2.238979591836734}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2655102040816328, \"y\": -2.721921783072273, \"z\": 2.238979591836734}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": -2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.2924468513952614, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.440264013426905, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -2.5706826686606443}, {\"x\": -1.4602040816326531, \"y\": -2.443119458785765, \"z\": -2.433673469387755}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.409979912896139}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.443119458785765, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.409979912896139}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.389018401717483, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677964, \"z\": -1.8495918367346937}, {\"x\": -1.4495557837119244, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677964, \"z\": -1.8495918367346937}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4495557837119244, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677964, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677973, \"z\": 1.8495918367346933}, {\"x\": -1.4495557837119253, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4495557837119253, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": 2.0442857142857136}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677973, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": 2.0442857142857136}, {\"x\": -1.4495557837119253, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.0607034251405913}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.0607034251405913}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3287840802874071, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.4431194587857648, \"z\": 2.433673469387754}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.4099799128961408}, {\"x\": -1.4602040816326531, \"y\": -2.4431194587857648, \"z\": 2.433673469387754}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.3274996967782569, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.3890184017174825, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.4431194587857648, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.409979912896139}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": -2.238979591836735}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.0607034251405913}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": 2.238979591836734}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.4352054093163318, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.4099799128961408}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594257, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594257, \"z\": -3.6018367346938773}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594257, \"z\": -3.6018367346938773}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": 3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": 3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": 3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.4602040816326531, \"y\": -0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": -3.7965306122448976}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": 3.2124489795918363}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": 3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.4509794787850279, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4220276204901063, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": -0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.442231981111938, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.9097096916008822, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.4602040816326531, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.858146046394674, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": -3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": -3.4071428571428566}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": 3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8223873118885221, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": -0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.2947595218317738, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.8581460463946731, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.2655102040816328, \"y\": -0.7292457982088569, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.3171898310556531, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": -0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.4467491042151663, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.4467491042151663, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.4467491042151663, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -3.095468811021273}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -3.095468811021273}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": -0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": -0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.4467491042151663, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -4.427949220756398}, {\"x\": -1.4467491042151663, \"y\": -0.2920408163265309, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": -3.095468811021273}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 3.0954688110212736}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": 4.380612244897959}, {\"x\": -1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": 4.380612244897959}, {\"x\": -1.446749104215166, \"y\": -0.2920408163265309, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.2655102040816328, \"y\": -0.2920408163265309, \"z\": 4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -4.457997957939996}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": -3.0692971430960947}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 3.0692971430960947}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 3.069297143096094}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 3.069297143096094}, {\"x\": -1.2655102040816328, \"y\": -0.0973469387755106, \"z\": 4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": -4.380612244897959}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -4.457997957939996}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": -3.0692971430960947}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -3.0401096533648424}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 3.069297143096094}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 3.095468811021272}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 3.095468811021272}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": -1.2655102040816328, \"y\": 0.0973469387755097, \"z\": 4.457997957939996}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -4.427949220756398}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": -3.095468811021273}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -3.0401096533648424}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -3.0401096533648424}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 3.095468811021272}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.4467491042151663, \"y\": 0.29204081632653, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.29204081632653, \"z\": 4.427949220756398}, {\"x\": -1.2655102040816328, \"y\": 0.4398842856519041, \"z\": 4.380612244897959}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -4.360480135612924}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": -3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": -3.151935962509477}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 3.1519359625094765}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.2655102040816328, \"y\": 0.613494048113191, \"z\": 3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": 0.4867346938775512, \"z\": 4.360480135612924}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.2655102040816328, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.7292457982088552, \"z\": -4.185918367346939}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946735, \"z\": -3.991224489795918}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": -3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": -3.2601534137276413}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 3.2601534137276413}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.3171898310556531, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.8223873118885212, \"z\": 3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.8581460463946726, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.729245798208856, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.2655102040816328, \"y\": 0.729245798208856, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.2655102040816328, \"y\": 0.6814285714285715, \"z\": 4.230004574477569}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.4602040816326531, \"y\": 0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.4602040816326531, \"y\": 0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.9286569100170223}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": -3.7965306122448976}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": -3.6018367346938773}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": -3.527497955149613}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.4380150543669248, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.527497955149613}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.3124825110471101, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.9022370237751982, \"z\": 3.6018367346938778}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.9097096916008818, \"z\": 3.796530612244897}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.2655102040816328, \"y\": 0.8761224489795918, \"z\": 3.928656910017022}, {\"x\": -1.2947595218317738, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": -3.6018367346938773}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": -3.6018367346938773}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454676, \"z\": 3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454676, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4509794787850279, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.4220276204901063, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -1.442231981111938, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.409979912896136}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": -2.238979591836735}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.060703425140596}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.060703425140596}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": 2.238979591836734}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.409979912896138}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -2.5706826686606448}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785766, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785766, \"z\": -2.433673469387755}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.409979912896136}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785766, \"z\": -2.433673469387755}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.060703425140596}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.060703425140596}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4495557837119244, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567796, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": -1.4495557837119244, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4495557837119244, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567796, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4495557837119253, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": -1.4495557837119253, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.060703425140596}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.409979912896138}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785765, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.409979912896138}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4352054093163318, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785765, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": -2.6283673469387754}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -2.5706826686606448}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": -2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": -2.238979591836735}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.389018401717483, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": -2.238979591836735}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.4495557837119244, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": -2.044285714285714}, {\"x\": -1.4495557837119244, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4495557837119244, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4495557837119253, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": 1.8495918367346933}, {\"x\": -1.4495557837119253, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4495557837119253, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 2.797292796187869, \"z\": 1.8495918367346933}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": 2.238979591836734}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3287840802874071, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 2.7037771413752525, \"z\": 2.0442857142857136}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 2.721921783072272, \"z\": 2.238979591836734}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.3274996967782569, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.3890184017174825, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -1.2924468513952627, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761823, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -2.3815089061736017}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": -1.8252647780196938}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 1.8252647780196938}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.2655102040816328, \"y\": 2.8230612244897957, \"z\": 2.381508906173603}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 2.8706723300761805, \"z\": 2.433673469387754}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.2924468513952614, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.440264013426905, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -2.5237133976702335}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": -1.6795520734422449}, {\"x\": -1.2655102040816328, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.2655102040816328, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4602040816326531, \"y\": 3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": 3.065464125433053, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.2655102040816328, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": 3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.4602040816326531, \"y\": 3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.0654641254330546, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 1.6795520734422444}, {\"x\": -1.4602040816326531, \"y\": 3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2913378290848603, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.017755102040816, \"z\": 2.5237133976702335}, {\"x\": -1.2913378290848603, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2913378290848603, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": -1.378448672172775, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": -1.2913378290848603, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": -2.6283673469387754}, {\"x\": -1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.2913378290848607, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -2.611738517888486}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": -1.6040579289593229}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 1.6040579289593229}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.2655102040816328, \"y\": 3.2124489795918363, \"z\": 2.6117385178884858}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": -1.2913378290848603, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.2913378290848603, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.268050175572222, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -2.6619233613533577}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -2.7351561436487692}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -1.6900228178543637}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": -1.6548979591836734}, {\"x\": -1.4083501182263611, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.4083501182263611, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": -1.568916179172605}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.4083501182263602, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": 1.654897959183673}, {\"x\": -1.4083501182263602, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 1.5689161791726045}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4083501182263602, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": -1.2655102040816328, \"y\": 3.4071428571428566, \"z\": 2.6619233613533577}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -2.68470847550863}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -2.7351561436487692}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -2.7351561436487692}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -2.715252452998223}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -1.6900228178543637}, {\"x\": -1.4083501182263611, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": -1.3184442148249755, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.4083501182263611, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": -1.4083501182263611, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.3184442148249755, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": -1.5703876267368324}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.4083501182263611, \"y\": 3.6018367346938778, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": -1.4083501182263602, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 1.5703876267368324}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.4083501182263602, \"y\": 3.6018367346938778, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": -1.2655102040816328, \"y\": 3.6018367346938778, \"z\": 2.6847084755086295}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -2.675967697816729}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -2.715252452998223}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": -2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -1.9148231489671508}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922104, \"z\": -1.8495918367346937}, {\"x\": -1.3899223518372863, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": -1.3184442148249755, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467376, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -1.7520685343636808}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.3184442148249755, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -1.7520685343636808}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -1.7520685343636808}, {\"x\": -1.3899223518372863, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.3899223518372863, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922104, \"z\": -1.8495918367346937}, {\"x\": -1.3184442148249755, \"y\": 3.796530612244897, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": -1.6171069999677972}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467376, \"z\": -1.6548979591836734}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 1.6171069999677972}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467374, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": -1.3899223518372854, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": -1.3899223518372854, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.3899223518372854, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 1.7520685343636808}, {\"x\": -1.318444214824975, \"y\": 3.796530612244897, \"z\": 1.654897959183673}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 1.7520685343636808}, {\"x\": -1.2655102040816328, \"y\": 3.869990353467374, \"z\": 1.654897959183673}, {\"x\": -1.3899223518372854, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 1.9148231489671508}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.2655102040816328, \"y\": 3.9549440234958784, \"z\": 2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": -1.2655102040816328, \"y\": 3.796530612244897, \"z\": 2.675967697816728}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -2.6097168055155784}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370989, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370989, \"z\": -2.433673469387755}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370989, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.3899223518372863, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -1.9148231489671508}, {\"x\": -1.3899223518372863, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.3899223518372863, \"y\": 3.9912244897959184, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": -1.7520685343636808}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": -1.8495918367346937}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 1.7520685343636808}, {\"x\": -1.3899223518372854, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 1.9148231489671508}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.3899223518372854, \"y\": 3.9912244897959184, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 1.9148231489671508}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.069662769787541, \"z\": 1.8495918367346933}, {\"x\": -1.2655102040816328, \"y\": 4.154669391801441, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.180245887228621, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 3.9912244897959184, \"z\": 2.6097168055155793}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.2655102040816328, \"y\": 4.138158775582058, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.332418723540898, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.5981580851889063}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.612125427847571, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.612125427847571, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.6121254278475718, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 1.9148231489671517}, {\"x\": -1.6121254278475718, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": -1.6121254278475718, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.08964680694472, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.164981484217447, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.6548979591836734, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -2.715252452998222}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -2.6579385766336405}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.5981580851889063}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.612125427847571, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221027, \"z\": -1.8495918367346937}, {\"x\": -1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221027, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": -1.9148231489671512}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": -2.044285714285714}, {\"x\": -1.612125427847571, \"y\": -3.991224489795918, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221027, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.5826675822572924, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.5826675822572924, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.5826675822572924, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.6121254278475718, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -3.9285008079221018, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 1.9148231489671517}, {\"x\": -1.6121254278475718, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": -1.6121254278475718, \"y\": -3.991224489795918, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": 2.6283673469387754}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": 2.6283673469387754}, {\"x\": -1.5901092255633151, \"y\": -3.991224489795918, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.4602040816326531, \"y\": -3.991224489795918, \"z\": 2.657938576633641}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -2.715252452998222}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282954, \"z\": -1.8495918367346937}, {\"x\": -1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282954, \"z\": -1.8495918367346937}, {\"x\": -1.5826675822572938, \"y\": -3.7965306122448976, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": -1.7671060847173083}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -1.6900228178543641}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.5826675822572924, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 1.7671060847173088}, {\"x\": -1.5826675822572924, \"y\": -3.7965306122448976, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -3.7965306122448976, \"z\": 2.7152524529982225}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.4602040816326531, \"y\": -3.4162411101536274, \"z\": -1.6548979591836734}, {\"x\": -1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.4602040816326531, \"y\": -3.4162411101536274, \"z\": -1.6548979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -1.6900228178543641}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": -1.6900228178543641}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.4602040816326531, \"y\": -3.4162411101536274, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.416241110153625, \"z\": 1.654897959183673}, {\"x\": -1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.416241110153625, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": -1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 1.6900228178543637}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.4602040816326531, \"y\": -3.6018367346938773, \"z\": 2.7351561436487684}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4688487357302926, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4688487357302926, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4632669838721943, \"y\": -3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4632669838721934, \"y\": -3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.4602040816326531, \"y\": -3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.4688487357302926, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.4688487357302926, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.4688487357302926, \"y\": -3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4602040816326531, \"y\": -3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.4688487357302904, \"y\": -3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": -3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.4602040816326531, \"y\": -3.2124489795918363, \"z\": 2.7197151360641163}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 2.6920119836726917}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 2.6920119836726917}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.4602040816326531, \"y\": -3.017755102040816, \"z\": 2.6920119836726917}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.6458262767837986, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.79851121867481, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.79851121867481, \"z\": -2.8230612244897957}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.6548979591836734, \"y\": -2.79851121867481, \"z\": -2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.6548979591836734, \"y\": -2.79851121867481, \"z\": -2.8230612244897957}, {\"x\": -1.6458262767837986, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": -2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -2.5706826686606443}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.4602040816326531, \"y\": -2.750359221775511, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.4602040816326531, \"y\": -2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.6548979591836734, \"y\": -2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.6548979591836734, \"y\": -2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.6458262767837986, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -1.6458262767837986, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.6458262767837986, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.443119458785765, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -2.5706826686606443}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.443119458785765, \"z\": -2.433673469387755}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.443119458785765, \"z\": -2.433673469387755}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.409979912896139}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677964, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": -2.044285714285714}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -1.5961613478166194, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677964, \"z\": -1.8495918367346937}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -1.5961613478166194, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677964, \"z\": -1.8495918367346937}, {\"x\": -1.5961613478166194, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677973, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677973, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.6165303585677973, \"z\": 1.8495918367346933}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": 2.0442857142857136}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.4384991725727203, \"z\": 2.0442857142857136}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.0607034251405913}, {\"x\": -1.4602040816326531, \"y\": -2.4431194587857648, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.4099799128961408}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4602040816326531, \"y\": -2.4431194587857648, \"z\": 2.433673469387754}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": -2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.6458262767837977, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -2.839327704472029}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -2.839327704472029}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.409979912896139}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": -2.238979591836735}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": -2.238979591836735}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": -2.0607034251405922}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774393, \"z\": -1.8495918367346937}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774393, \"z\": -1.8495918367346937}, {\"x\": -1.5961613478166194, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.5961613478166194, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.5961613478166194, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774393, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774406, \"z\": 1.8495918367346933}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774406, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -1.59616134781662, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.0607034251405913}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": 2.238979591836734}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.4632450125373784, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.4099799128961408}, {\"x\": -1.4602040816326531, \"y\": -2.383706571651627, \"z\": 2.238979591836734}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": -2.433673469387755, \"z\": 2.4099799128961408}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -1.4638554779592896, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -1.5395263404348958, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.64386419870223, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670565, \"z\": -2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.816799927822559}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670565, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.816799927822559}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -1.6286195757585564, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.6286195757585564, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.1594926017643097}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.6286195757585564, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.5336588298838567, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -1.6286195757585564, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": -2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.5838294508677992, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -1.5336588298838576, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -1.5377059421436692, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670566, \"z\": 2.8230612244897957}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.816799927822559}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670566, \"z\": 2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -1.5794750681935672, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670566, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.816799927822559}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6286195757585564, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -1.6286195757585564, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.1594926017643097}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005293, \"z\": 2.433673469387754}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005293, \"z\": 2.433673469387754}, {\"x\": -1.6286195757585573, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005293, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -1.6192610142681474, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.816799927822559}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.4162411101536265}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302935, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.195024108589978}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302935, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.195024108589979}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302926, \"z\": 3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302926, \"z\": 3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302926, \"z\": 3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.416241110153626}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.6171069999677967, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": -3.7965306122448976}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": -3.7965306122448976}, {\"x\": -1.6171069999677967, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263602, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": -3.7965306122448976}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263602, \"z\": -3.6018367346938773}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.4162411101536265}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263602, \"z\": -3.6018367346938773}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.195024108589978}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.0654641254330532}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.195024108589978}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.065464125433053}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.195024108589979}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.065464125433053}, {\"x\": -1.6528655750602166, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.416241110153626}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263611, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.416241110153626}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.6536890849290353, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263611, \"z\": 3.6018367346938778}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263611, \"z\": 3.6018367346938778}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.869990353467376}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": -1.6171069999677967, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.6171069999677967, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594257, \"z\": -3.6018367346938773}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.6171069999677967, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": -3.7965306122448976}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594257, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594257, \"z\": -3.6018367346938773}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": -3.4071428571428566}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.0654641254330532}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.0654641254330532}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.065464125433053}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": 3.4071428571428566}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -1.6040579289593229, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.568916179172605, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": -1.0865203384546755, \"z\": 3.4071428571428566}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.5703876267368324, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": -1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.869990353467376}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.869990353467376}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6171069999677972, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.0905934974850289, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.6503891731762992, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.4602040816326531, \"y\": -0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.6503891731762992, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": -1.6503891731762992, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": -3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": 3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.5369895975108223, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -0.9212666058406183, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4602040816326531, \"y\": -1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.4602040816326531, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6503891731762956, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6503891731762956, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.6503891731762956, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.5573431561324957, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.6503891731762956, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": -1.6503891731762992, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.6503891731762992, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.6503891731762992, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965088, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.4602040816326531, \"y\": -0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": -1.6503891731762956, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.6503891731762956, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": -0.7991386773965101, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.4602040816326531, \"y\": -0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": -1.4602040816326531, \"y\": -0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": -4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -4.376796616825051}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": -3.0401096533648433}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 3.0401096533648424}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": 4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": 4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.4602040816326531, \"y\": -0.2920408163265309, \"z\": 4.37679661682505}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": -1.4602040816326531, \"y\": -0.26021254281128936, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -4.395950504331305}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": -4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": -3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": -0.0973469387755106, \"z\": 4.395950504331303}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": -1.5054467943168572, \"y\": -0.0973469387755106, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -4.395950504331305}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": -4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": -4.380612244897959}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": -4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": -4.380612244897959}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": -3.0281458707402624}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -3.0401096533648424}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -3.0401096533648424}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 3.0281458707402624}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": -1.5054467943168572, \"y\": 0.0973469387755097, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.0973469387755097, \"z\": 4.395950504331303}, {\"x\": -1.4602040816326531, \"y\": 0.26021254281129025, \"z\": 4.380612244897959}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -4.376796616825051}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": -3.0401096533648424}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 3.0401096533648424}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.4602040816326531, \"y\": 0.29204081632653, \"z\": 4.37679661682505}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -4.329066432365574}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": -3.06602743087732}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 3.0660274308773205}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.4602040816326531, \"y\": 0.4867346938775512, \"z\": 4.329066432365574}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.6503891731762992, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -4.252149808350071}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965079, \"z\": -4.185918367346939}, {\"x\": -1.6503891731762992, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": -3.1110078206182292}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 3.11100782061823}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.6503891731762956, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.6503891731762956, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.4602040816326531, \"y\": 0.7991386773965097, \"z\": 4.185918367346938}, {\"x\": -1.6503891731762956, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.4602040816326531, \"y\": 0.6814285714285715, \"z\": 4.252149808350072}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.6503891731762992, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.5573431561324953, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.4602040816326531, \"y\": 0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -4.119471427603555}, {\"x\": -1.6503891731762992, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.4602040816326531, \"y\": 0.994320193892551, \"z\": -3.991224489795918}, {\"x\": -1.5573431561324953, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": -3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": -3.186911356416133}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 3.1869113564161324}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.4602040816326531, \"y\": 0.9212666058406178, \"z\": 3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": -1.6503891731762956, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.9943201938925501, \"z\": 3.9912244897959184}, {\"x\": -1.6503891731762956, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.4602040816326531, \"y\": 0.8761224489795918, \"z\": 4.119471427603557}, {\"x\": -1.6503891731762956, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": -1.5573431561324953, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.839285821050701}, {\"x\": -1.5573431561324953, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850284, \"z\": -3.7965306122448976}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": -3.6018367346938773}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": -3.6018367346938773}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454675, \"z\": -3.4071428571428566}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": -3.38109653552729}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.0654641254330532}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.065464125433053}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.065464125433053}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454676, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.3810965355272895}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454676, \"z\": 3.4071428571428566}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.5369895975108223, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": 1.086520338454676, \"z\": 3.4071428571428566}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 1.121529087594256, \"z\": 3.6018367346938778}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 1.0905934974850293, \"z\": 3.796530612244897}, {\"x\": -1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.4602040816326531, \"y\": 1.070816326530612, \"z\": 3.8392858210507015}, {\"x\": -1.5573431561324957, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": -3.7965306122448976}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263616, \"z\": -3.6018367346938773}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263616, \"z\": -3.6018367346938773}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.4162411101536287}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263616, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.4162411101536287}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.0654641254330532}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.195024108589977}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.0654641254330532}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.195024108589976}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.065464125433053}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.195024108589976}, {\"x\": -1.6040579289593229, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263607, \"z\": 3.6018367346938778}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.416241110153628}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263607, \"z\": 3.6018367346938778}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.5689161791726045, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263607, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.5703876267368315, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -1.6171069999677967, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.4162411101536287}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": -3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": -3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.195024108589977}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.195024108589976}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": 3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6528655750602166, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -1.6536890849290353, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.416241110153628}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.81679992782256}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.1594926017643097}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.159492601764309}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": 2.433673469387754}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": 2.433673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.8167999278225606}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -2.839327704472029}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": -2.8230612244897957}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.81679992782256}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": -2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.1594926017643097}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.1594926017643097}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -1.9307686943986093}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 1.9307686943986084}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.159492601764309}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -1.6286195757585573, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.5377059421436692, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -1.607050422298261, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -1.5377059421436692, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.5377059421436692, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.8167999278225606}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.8167999278225606}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6192610142681474, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -2.839327704472029}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.409979912896136}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": -2.238979591836735}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.409979912896136}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.5377059421436696, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.060703425140596}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": -2.238979591836735}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -1.9307686943986093}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774406, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -1.9307686943986093}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774406, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.5961613478166208, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": -1.5961613478166208, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.5961613478166208, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.060703425140596}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": 2.238979591836734}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.060703425140596}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.5838294508678001, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.409979912896138}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.3837065716516275, \"z\": 2.238979591836734}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.5336588298838576, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.5377059421436692, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -1.5377059421436692, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.5794750681935672, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 2.839327704472029}, {\"x\": -1.6475487438530667, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 2.839327704472029}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.6458262767837986, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6458262767837986, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.6458262767837986, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -2.5706826686606448}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785766, \"z\": -2.433673469387755}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -2.5706826686606448}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.46385547795929, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785766, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.409979912896136}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": -2.060703425140596}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567796, \"z\": -1.8495918367346937}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": -2.044285714285714}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567796, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.59616134781662, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567796, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.5961613478166208, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": -1.5961613478166208, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.5961613478166208, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 2.616530358567797, \"z\": 1.8495918367346933}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4632450125373793, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.4384991725727216, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.060703425140596}, {\"x\": -1.4602040816326531, \"y\": 2.433673469387754, \"z\": 2.409979912896138}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785765, \"z\": 2.433673469387754}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785765, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.443119458785765, \"z\": 2.433673469387754}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4638554779592896, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.5395263404348967, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.64386419870223, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.6458262767837986, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.6458262767837986, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": -2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -2.5706826686606448}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": -1.842091350760275}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 1.842091350760275}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.4602040816326531, \"y\": 2.6283673469387754, \"z\": 2.570682668660644}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": 2.6283673469387754}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.4602040816326531, \"y\": 2.7503592217755104, \"z\": 2.6283673469387754}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.4939631397489892, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.6458262767837977, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -2.6499629538810723}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": -1.7469286368232955}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 1.746928636823296}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.4602040816326531, \"y\": 2.8230612244897957, \"z\": 2.6499629538810714}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -2.6920119836726917}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.4602040816326531, \"y\": 3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.4688487357302926, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": 3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": -1.683714686422864}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.4602040816326531, \"y\": 3.195024108589979, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4688487357302926, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.4688487357302904, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.4688487357302904, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.1950241085899824, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.4688487357302904, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 1.6837146864228645}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.4602040816326531, \"y\": 3.017755102040816, \"z\": 2.692011983672691}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -2.7197151360641176}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.4688487357302926, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.4688487357302926, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4688487357302926, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": -1.6528655750602166}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4688487357302926, \"y\": 3.2124489795918363, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4688487357302904, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 1.6528655750602166}, {\"x\": -1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4688487357302904, \"y\": 3.2124489795918363, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.4602040816326531, \"y\": 3.2124489795918363, \"z\": 2.719715136064118}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -2.7346206939334308}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -2.7351561436487692}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -2.727699276494856}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -2.7351561436487692}, {\"x\": -1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -1.6900228178543637}, {\"x\": -1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -1.6900228178543637}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -1.6900228178543637}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.4632669838721943, \"y\": 3.4071428571428566, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": -1.6536890849290353}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": -1.6548979591836734}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 1.6536890849290353}, {\"x\": -1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": 1.654897959183673}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": 1.654897959183673}, {\"x\": -1.4632669838721934, \"y\": 3.4071428571428566, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.4602040816326531, \"y\": 3.416241110153626, \"z\": 1.654897959183673}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.4602040816326531, \"y\": 3.4071428571428566, \"z\": 2.7346206939334303}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 2.7276992764948558}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -2.7351561436487692}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -2.727699276494856}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -2.715252452998223}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -2.727699276494856}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -2.715252452998223}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": -1.5826675822572933, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.5826675822572933, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": -1.6900228178543637}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282928, \"z\": 1.8495918367346933}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 1.6900228178543637}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282928, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 1.9139688830664694}, {\"x\": -1.4602040816326531, \"y\": 3.6018367346938778, \"z\": 2.7351561436487684}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 2.7276992764948558}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 2.7276992764948558}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -2.715252452998223}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.1018036663404076}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": -1.5826675822572933, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922104, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -1.9148231489671508}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.5826675822572933, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -1.9148231489671508}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -1.9148231489671508}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": -1.5826675822572933, \"y\": 3.796530612244897, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": -1.7671060847173075}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922104, \"z\": -1.8495918367346937}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 1.767106084717308}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 1.9139688830664694}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447349, \"z\": 2.0442857142857136}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 1.9139688830664694}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 1.9148231489671508}, {\"x\": -1.5826675822572924, \"y\": 3.796530612244897, \"z\": 1.8495918367346933}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 1.9148231489671508}, {\"x\": -1.4602040816326531, \"y\": 3.928500807922102, \"z\": 1.8495918367346933}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447349, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.101803666340408}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.598158085188901}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.4602040816326531, \"y\": 3.796530612244897, \"z\": 2.7152524529982225}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -2.6579385766336405}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370989, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": -2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370989, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": -2.238979591836735}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.1018036663404076}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": -2.238979591836735}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": -2.238979591836735}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": -1.9148231489671508}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": -2.044285714285714}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 1.9148231489671508}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.101803666340408}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.6121254278475705, \"y\": 3.9912244897959184, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.101803666340408}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.089646806944719, \"z\": 2.0442857142857136}, {\"x\": -1.4602040816326531, \"y\": 4.1649814842174475, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 4.1031796007941495, \"z\": 2.433673469387754}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.1031796007941495, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.598158085188901}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.1031796007941495, \"z\": 2.433673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 4.169139467370988, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.1031796007941495, \"z\": 2.433673469387754}, {\"x\": -1.590109225563308, \"y\": 3.9912244897959184, \"z\": 2.6283673469387754}, {\"x\": -1.4602040816326531, \"y\": 3.9912244897959184, \"z\": 2.657938576633641}, {\"x\": -1.4602040816326531, \"y\": 4.042838529184806, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.5981580851889063}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -4.10317960079415, \"z\": -2.433673469387755}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": -1.6548979591836734, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -4.0752499579201285, \"z\": 2.238979591836734}, {\"x\": -1.7527765226084195, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -4.103179600794151, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.7527765226084195, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.8679567161651276, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.5041107551044033}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.8679567161651276, \"z\": -2.433673469387755}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -3.8679567161651276, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.5981580851889063}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.8679567161651276, \"z\": -2.433673469387755}, {\"x\": -1.752776522608419, \"y\": -3.991224489795918, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": -2.044285714285714}, {\"x\": -1.7971396198285858, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.137069963708497}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.137069963708497}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.137069963708497}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": -2.1018036663404054}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.7971396198285858, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.7971396198285854, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": -1.7971396198285854, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.868963981296845, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.1370699637084973}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.868963981296845, \"z\": 2.238979591836734}, {\"x\": -1.7971396198285854, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -3.868963981296845, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -3.9557976004473523, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.1018036663404054}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.7527765226084195, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.868963981296845, \"z\": 2.238979591836734}, {\"x\": -1.7399663004192445, \"y\": -3.991224489795918, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": 2.6283673469387754}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.5041107551044037}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.5041107551044037}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.5041107551044037}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.991224489795918, \"z\": 2.5981580851889063}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.7527765226084195, \"y\": -3.991224489795918, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.955437311208223, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -2.683897112057831}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.5041107551044033}, {\"x\": -1.8495918367346937, \"y\": -3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.137069963708497}, {\"x\": -1.7971396198285858, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.736053672733299, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282954, \"z\": -1.8495918367346937}, {\"x\": -1.730673407827687, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282954, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -1.8495918367346937, \"y\": -3.736053672733299, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": -1.9139688830664672}, {\"x\": -1.8495918367346937, \"y\": -3.736053672733299, \"z\": -2.044285714285714}, {\"x\": -1.7971396198285858, \"y\": -3.7965306122448976, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282954, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.730673407827687, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.7971396198285854, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -3.7026914198282936, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 1.9139688830664676}, {\"x\": -1.7971396198285854, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": -1.7971396198285854, \"y\": -3.7965306122448976, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.1370699637084973}, {\"x\": -1.8495918367346937, \"y\": -3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.5041107551044037}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.634200989781861, \"z\": 2.6283673469387754}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.8495918367346937, \"y\": -3.634200989781861, \"z\": 2.6283673469387754}, {\"x\": -1.7418226851197924, \"y\": -3.7965306122448976, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": -3.7965306122448976, \"z\": 2.6838971120578297}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -2.7276992764948567}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -1.730673407827687, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.730673407827687, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.730673407827687, \"y\": -3.6018367346938773, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": -1.8064325161378623}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 1.8064325161378632}, {\"x\": -1.7306734078276858, \"y\": -3.6018367346938773, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -3.6018367346938773, \"z\": 2.7276992764948567}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": -3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.6548979591836734, \"y\": -3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.7293108759814761, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.6548979591836734, \"y\": -2.79851121867481, \"z\": -2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.79851121867481, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": -2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6548979591836734, \"y\": -2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.657792896850136, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -3.0574700229616782}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": -3.017755102040816}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.6548979591836734, \"y\": -2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -3.0574700229616782}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -2.8401155621473846}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774393, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -1.9307686943986084}, {\"x\": -1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774393, \"z\": -1.8495918367346937}, {\"x\": -1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": -1.80455837145364}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774406, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.7213297629589528, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774406, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 1.8045583714536395}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.6548979591836734, \"y\": -2.3446738921774406, \"z\": 1.8495918367346933}, {\"x\": -1.7213297629589528, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 2.839327704472029}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.433673469387755, \"z\": 2.8401155621473846}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": -1.811113761455545, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 3.1485832311202664}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -3.2723002981270355}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.1288736531132515, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.1288736531132515, \"z\": -3.2124489795918363}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -1.8495918367346937, \"y\": -2.1288736531132515, \"z\": -3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670565, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -2.839327704472029}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670565, \"z\": -2.8230612244897957}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670565, \"z\": -2.8230612244897957}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.816799927822559}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.1594926017643097}, {\"x\": -1.7050077671368884, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -1.7050077671368884, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -1.855609673158733}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.7050077671368884, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.120208022753666, \"z\": -2.044285714285714}, {\"x\": -1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": -1.9307686943986084}, {\"x\": -1.721329762958952, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.8495918367346937, \"y\": -2.052242108179686, \"z\": 1.8495918367346933}, {\"x\": -1.7213297629589528, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -1.705007767136888, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -1.6548979591836734, \"y\": -2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.8495918367346937, \"y\": -2.052242108179686, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 1.9307686943986084}, {\"x\": -1.7213297629589528, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -2.052242108179686, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": -2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.705007767136888, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670566, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.816799927822559}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": -2.071642000670566, \"z\": 2.8230612244897957}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -2.238979591836735, \"z\": 2.839327704472029}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 3.1485832311202664}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 3.1485832311202664}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.7607217066702483, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": -1.8495918367346937, \"y\": -2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -3.454897421828843}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": -3.4071428571428566}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -3.2723002981270355}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": -3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.816799927822559}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -2.0522421081796858}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.748347723502277, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.7050077671368884, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.7050077671368884, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": -2.1594926017643097}, {\"x\": -1.7050077671368884, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -1.855609673158733}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": 2.0442857142857136}, {\"x\": -1.705007767136888, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.159492601764309}, {\"x\": -1.705007767136888, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005293, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.6884840828722916, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005293, \"z\": 2.433673469387754}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.9190280802005293, \"z\": 2.433673469387754}, {\"x\": -1.6884840828722916, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6884840828722916, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.816799927822559}, {\"x\": -1.6548979591836734, \"y\": -1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": -2.044285714285714, \"z\": 2.816799927822559}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.6744094922542563, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -1.6563899354841016, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -1.6744094922542563, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -1.6744094922542563, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.8185672665461041, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 3.454897421828843}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -3.7026914198282954}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276866, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276866, \"z\": -3.6018367346938773}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -3.454897421828843}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276866, \"z\": -3.6018367346938773}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.6928706177103972, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -1.6928706177103972, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -2.3446738921774393}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.748347723502277, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -1.6884840828722911, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -2.0522421081796858}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -1.8495918367346937, \"y\": -1.7213297629589528, \"z\": 2.238979591836734}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.7213297629589528, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.6884840828722916, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -1.7483477235022775, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -1.6884840828722916, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.6744094922542563, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6744094922542563, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -1.6744094922542563, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.6928706177103976, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -1.6928706177103976, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -1.6928706177103976, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 3.454897421828843}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276862, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 3.454897421828843}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.8295121945867878, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 3.7026914198282945}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276862, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -1.7671060847173083, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": -3.7965306122448976}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -3.7026914198282954}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": -3.7965306122448976}, {\"x\": -1.7671060847173083, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.7671060847173083, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -1.6900228178543641, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.4162411101536265}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.4162411101536265}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.6900228178543641, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -1.6900228178543641, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.8064325161378623, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302935, \"z\": -3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302935, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.195024108589978}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302935, \"z\": -3.2124489795918363}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.7469286368232955, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -1.7469286368232955, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.7469286368232955, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.5961613478166194, \"z\": -2.433673469387755}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -2.6165303585677964}, {\"x\": -1.8495918367346937, \"y\": -1.5961613478166194, \"z\": -2.433673469387755}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.80455837145364, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.5961613478166194, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -2.3446738921774393}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 2.616530358567796}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 2.616530358567796}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -1.7382703246295401, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -1.6928706177103976, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.6928706177103976, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.195024108589979}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302926, \"z\": 3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.195024108589979}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.6928706177103976, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302926, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": -1.4688487357302926, \"z\": 3.2124489795918363}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.416241110153626}, {\"x\": -1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -1.7456036857555666, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 3.7026914198282945}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 3.7026914198282945}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.8064325161378632, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 3.928500807922104}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372863, \"z\": -3.991224489795918}, {\"x\": -1.7671060847173083, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.7671060847173083, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372863, \"z\": -3.991224489795918}, {\"x\": -1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263602, \"z\": -3.6018367346938773}, {\"x\": -1.6900228178543641, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -1.7671060847173083, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": -3.7965306122448976}, {\"x\": -1.6900228178543641, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -1.6900228178543641, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263602, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.4162411101536265}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.195024108589978}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.0654641254330532}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": -3.195024108589978}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -1.7469286368232955, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.7469286368232955, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.7469286368232955, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -2.6165303585677964}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 2.616530358567796}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119244, \"z\": 2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119244, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -1.746928636823296, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.065464125433053}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.195024108589979}, {\"x\": -1.683714686422864, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.065464125433053}, {\"x\": -1.6548979591836734, \"y\": -1.4602040816326531, \"z\": 3.416241110153626}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263611, \"z\": 3.6018367346938778}, {\"x\": -1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263611, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": 3.796530612244897}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.6900228178543637, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": -1.4083501182263611, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 3.928500807922104}, {\"x\": -1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 3.928500807922104}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.869990353467376}, {\"x\": -1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -1.7671060847173075, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.3184442148249755, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.869990353467376}, {\"x\": -1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": -1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": -1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.752068534363679, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360606, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.0654641254330532}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": -3.0654641254330532}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": 2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.065464125433053}, {\"x\": -1.6795520734422449, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": -1.2655102040816328, \"z\": 3.869990353467376}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -1.7520685343636808, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -1.8495918367346937, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.8495918367346937, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.8495918367346937, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549855, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.6825150350723068, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6825150350723073, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.6548979591836734, \"y\": -1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.945620686818347, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.8495918367346937, \"y\": -0.945620686818347, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": -0.8785477031549878, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": -3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.7053734553594038, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": -0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": -0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -4.238948728121448}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": -1.6548979591836734, \"y\": -0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -4.311977606472133}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -4.238948728121448}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -4.238948728121448}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": -3.034529092407129}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 3.03452909240713}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": -1.6548979591836734, \"y\": -0.2920408163265309, \"z\": 4.311977606472134}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": -3.035063549585656}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 3.0350635495856553}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": -1.6548979591836734, \"y\": -0.0973469387755106, \"z\": 4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -4.323452700958596}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -4.238948728121448}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": -3.035063549585656}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 3.0350635495856553}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": -1.6548979591836734, \"y\": 0.0973469387755097, \"z\": 4.323452700958596}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -4.311977606472133}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -4.238948728121448}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -4.238948728121448}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": -3.034529092407129}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 3.03452909240713}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": 0.29204081632653, \"z\": 4.311977606472134}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -4.2877058899000975}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": -3.0337113375801845}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 3.0337113375801845}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": 0.4867346938775512, \"z\": 4.2877058899000975}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -4.247729429011101}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": -3.0332399519463733}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": 3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 3.0332399519463733}, {\"x\": -1.6548979591836734, \"y\": 0.6814285714285715, \"z\": 4.2477294290111}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -4.1869215374280015}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549851, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": -3.03453294834312}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 3.034532948343119}, {\"x\": -1.7053734553594038, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.6548979591836734, \"y\": 0.8785477031549869, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": -1.6548979591836734, \"y\": 0.8761224489795918, \"z\": 4.186921537428002}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -4.069157344525446}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": -3.991224489795918}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.0654641254330532}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": -3.0411857368620003}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -2.79729279618787}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 2.797292796187869}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": 2.8230612244897957}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": 2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.065464125433053}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 3.0411857368620003}, {\"x\": -1.6825150350723073, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.065464125433053}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.8699903534673776}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.6548979591836734, \"y\": 1.1688955968360597, \"z\": 3.9912244897959184}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.6548979591836734, \"y\": 1.070816326530612, \"z\": 4.069157344525445}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.8699903534673776}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263616, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": -3.7965306122448976}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.6900228178543633, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263616, \"z\": -3.6018367346938773}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263616, \"z\": -3.6018367346938773}, {\"x\": -1.6900228178543633, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.4162411101536287}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.0654641254330532}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.195024108589977}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": -3.0654641254330532}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -2.79729279618787}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -2.79729279618787}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.8252647780196942, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -2.6165303585677973}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": 2.6283673469387754}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": 2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.7469286368232955, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.8252647780196938, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -1.7469286368232955, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -1.7469286368232955, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.195024108589976}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.065464125433053}, {\"x\": -1.6795520734422449, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.195024108589976}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263607, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.416241110153628}, {\"x\": -1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.4083501182263607, \"z\": 3.6018367346938778}, {\"x\": -1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.7671060847173075, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": 3.9912244897959184}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.318444214824976, \"z\": 3.796530612244897}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -1.6548979591836734, \"y\": 1.2655102040816324, \"z\": 3.8699903534673776}, {\"x\": -1.7520685343636795, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": -3.7965306122448976}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.6900228178543633, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -1.767106084717308, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.4162411101536287}, {\"x\": -1.6900228178543633, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.6900228178543633, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -1.6900228178543633, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": -3.4071428571428566}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": -3.2124489795918363}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.195024108589977}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": -3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": -3.195024108589977}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -1.6837146864228636, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -1.746928636823296, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -2.6165303585677973}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -2.6165303585677973}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -2.344673892177441}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.842091350760275, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -1.7469286368232955, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -1.7469286368232955, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -1.7469286368232955, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.195024108589976}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": 3.2124489795918363}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.683714686422864, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.468848735730293, \"z\": 3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.416241110153628}, {\"x\": -1.6548979591836734, \"y\": 1.4632669838721943, \"z\": 3.4071428571428566}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.6548979591836734, \"y\": 1.4602040816326527, \"z\": 3.416241110153628}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -1.7671060847173075, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -1.6900228178543637, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.7671060847173075, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -1.8064325161378627, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -2.344673892177441}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -2.344673892177441}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": -1.8495918367346937, \"y\": 1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.7483477235022775, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": -1.8495918367346937, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": -1.7483477235022775, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.7483477235022775, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -1.6884840828722916, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.8045583714536404, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -1.6884840828722916, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -1.6884840828722916, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -1.7382703246295401, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -1.7022556703471134, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -1.6928706177103972, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.7077263579913158, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.7456036857555661, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.8064325161378632, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.81679992782256}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.81679992782256}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": -2.6283673469387754}, {\"x\": -1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.6884840828722911, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": -2.433673469387755}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": -2.044285714285714}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.1594926017643097}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.748347723502277, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.1594926017643097}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -1.855609673158733}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": -1.7483477235022775, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.159492601764309}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.159492601764309}, {\"x\": -1.7483477235022775, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.159492601764309}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": 2.433673469387754}, {\"x\": -1.6884840828722916, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -1.7483477235022775, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 1.9942298409750494, \"z\": 2.238979591836734}, {\"x\": -1.6884840828722916, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.6884840828722916, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.9190280802005288, \"z\": 2.433673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.8167999278225606}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 1.8879606295350273, \"z\": 2.6283673469387754}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.6661991406828585, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -1.6744094922542558, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -1.7072860382893054, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 3.2723002981270355}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.760170204911121, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.8295121945867878, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -3.1485832311202673}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -3.1485832311202673}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": -2.8230612244897957}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -2.839327704472029}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.81679992782256}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": -2.1594926017643097}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -1.855609673158733}, {\"x\": -1.7213297629589528, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.0522421081796853, \"z\": -1.8495918367346937}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.7213297629589528, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -1.855609673158733}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -1.9307686943986093}, {\"x\": -1.7213297629589528, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -1.9307686943986093}, {\"x\": -1.7213297629589528, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.8495918367346937, \"y\": 2.0522421081796853, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -1.7213297629589532, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 1.9307686943986084}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.7213297629589532, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 1.9307686943986084}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.8495918367346937, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": -1.7213297629589532, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -1.7050077671368884, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.1202080227536655, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.159492601764309}, {\"x\": -1.6548979591836734, \"y\": 2.0442857142857136, \"z\": 2.8167999278225606}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": 2.8230612244897957}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 2.839327704472029}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 2.071642000670561, \"z\": 2.8230612244897957}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.6563899354841012, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.7286757265816615, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.8185672665461041, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 3.2723002981270355}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -3.1485832311202673}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -2.839327704472029}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": -1.9307686943986093}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774406, \"z\": -1.8495918367346937}, {\"x\": -1.7213297629589528, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774406, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.7213297629589528, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774406, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -1.6884840828722916}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.7213297629589532, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": -1.7213297629589532, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.7213297629589532, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.3446738921774415, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 1.9307686943986084}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 2.839327704472029}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 2.238979591836734, \"z\": 2.839327704472029}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -1.7607217066702483, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": -3.017755102040816}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -2.840115562147385}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": -1.8045583714536404}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -1.6884840828722916}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -1.6884840828722916}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 1.8045583714536413}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": 3.017755102040816}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": 3.017755102040816}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.6548979591836734, \"y\": 2.433673469387754, \"z\": 2.8401155621473846}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.811113761455545, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -2.833079542016265}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748093, \"z\": -2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": -1.7382703246295401}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 1.7382703246295401}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.6548979591836734, \"y\": 2.7985112186748102, \"z\": 2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.6548979591836734, \"y\": 2.6283673469387754, \"z\": 2.8330795420162653}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.7293108759814761, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.7293108759814761, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -2.821474484034709}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": -1.7022556703471134}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 1.702255670347114}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 2.8230612244897957, \"z\": 2.8214744840347086}, {\"x\": -1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.657792896850136, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": -1.7293108759814761, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.7293108759814761, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.7293108759814761, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -2.804231895872637}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": -1.6928706177103972}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 1.6928706177103967}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": -1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.6548979591836734, \"y\": 3.017755102040816, \"z\": 2.804231895872636}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.7293108759814766, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -2.7837362240728885}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": -1.7077263579913158}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 1.7077263579913158}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.6548979591836734, \"y\": 3.2124489795918363, \"z\": 2.7837362240728876}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -2.7590433150549085}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -2.727699276494856}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -2.727699276494856}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": -1.7456036857555666}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 1.745603685755567}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": -1.6548979591836734, \"y\": 3.4071428571428566, \"z\": 2.7590433150549076}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 2.7276992764948558}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 2.7276992764948558}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -2.727699276494856}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.5041107551044055}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": -1.7971396198285867, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": -1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.7971396198285867, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -1.7971396198285867, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": -1.7306734078276858, \"y\": 3.6018367346938778, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": -1.8064325161378636}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282945, \"z\": -1.8495918367346937}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 1.8064325161378632}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282928, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 1.9139688830664694}, {\"x\": -1.7306734078276849, \"y\": 3.6018367346938778, \"z\": 1.8495918367346933}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 1.9139688830664694}, {\"x\": -1.6548979591836734, \"y\": 3.7026914198282928, \"z\": 1.8495918367346933}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": -1.6548979591836734, \"y\": 3.6018367346938778, \"z\": 2.7276992764948558}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -2.68389711205783}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.5041107551044055}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": -2.433673469387755}, {\"x\": -1.7527765226084187, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.5041107551044055}, {\"x\": -1.7527765226084187, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.7527765226084187, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": -2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": -2.6283673469387754}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.7527765226084187, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": -2.433673469387755}, {\"x\": -1.7971396198285867, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.1018036663404076}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.7971396198285867, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.1018036663404076}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.1018036663404076}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": -1.7971396198285867, \"y\": 3.796530612244897, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": -1.9139688830664685}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447351, \"z\": -2.044285714285714}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 1.9139688830664694}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447349, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": -1.7399663004192436, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": -1.7399663004192436, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.7399663004192436, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.101803666340408}, {\"x\": -1.7971396198285863, \"y\": 3.796530612244897, \"z\": 2.0442857142857136}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.101803666340408}, {\"x\": -1.6548979591836734, \"y\": 3.955797600447349, \"z\": 2.0442857142857136}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.7399663004192436, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.598158085188901}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.598158085188901}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.598158085188901}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": -1.741822685119792, \"y\": 3.796530612244897, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.796530612244897, \"z\": 2.6838971120578297}, {\"x\": -1.6548979591836734, \"y\": 3.955437311208218, \"z\": 2.6283673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.598158085188902}, {\"x\": -1.7527765226084187, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": -2.238979591836735}, {\"x\": -1.7527765226084187, \"y\": 3.9912244897959184, \"z\": -2.433673469387755}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 4.103179600794151, \"z\": -2.433673469387755}, {\"x\": -1.739966300419244, \"y\": 3.9912244897959184, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": -2.1018036663404076}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": -2.238979591836735}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.101803666340408}, {\"x\": -1.7399663004192436, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.1031796007941495, \"z\": 2.433673469387754}, {\"x\": -1.7399663004192436, \"y\": 3.9912244897959184, \"z\": 2.238979591836734}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 4.075249957920127, \"z\": 2.238979591836734}, {\"x\": -1.752776522608419, \"y\": 3.9912244897959184, \"z\": 2.433673469387754}, {\"x\": -1.6548979591836734, \"y\": 3.9912244897959184, \"z\": 2.598158085188901}, {\"x\": -1.6548979591836734, \"y\": 4.1031796007941495, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.8679567161651276, \"z\": -2.433673469387755}, {\"x\": -1.88565141771728, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.5041107551044033}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.88565141771728, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -3.8679567161651276, \"z\": -2.433673469387755}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -1.88565141771728, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.8689639812968455, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.137069963708497}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.868963981296845, \"z\": 2.238979591836734}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.1370699637084973}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -3.868963981296845, \"z\": 2.238979591836734}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.867956716165128, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.5041107551044037}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": -1.8635323261518297, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.5041107551044033}, {\"x\": -1.8635323261518297, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.63420098978186, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.5041107551044033}, {\"x\": -1.88565141771728, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -1.8635323261518297, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.88565141771728, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -1.8635323261518297, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.88565141771728, \"y\": -3.7965306122448976, \"z\": -2.433673469387755}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.736053672733299, \"z\": -2.044285714285714}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": -2.137069963708497}, {\"x\": -1.8495918367346937, \"y\": -3.736053672733299, \"z\": -2.044285714285714}, {\"x\": -1.9535878705455012, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -1.9535878705455012, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -3.736053672733299, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -1.9535878705455012, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.1370699637084973}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.1370699637084973}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -1.8961941451561795, \"y\": -3.7965306122448976, \"z\": 2.238979591836734}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -2.0044762663080555, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.634200989781861, \"z\": 2.6283673469387754}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.7965306122448976, \"z\": 2.5041107551044037}, {\"x\": -1.8495918367346937, \"y\": -3.634200989781861, \"z\": 2.6283673469387754}, {\"x\": -1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -2.0044762663080555, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -1.8856514177172805, \"y\": -3.7965306122448976, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.634200989781861, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.8635323261518297, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -2.6404106843265387}, {\"x\": -2.044285714285714, \"y\": -3.551692620738074, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.551692620738074, \"z\": -2.433673469387755}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.8635323261518297, \"y\": -3.6018367346938773, \"z\": -2.6283673469387754}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -3.551692620738074, \"z\": -2.433673469387755}, {\"x\": -2.004476266308055, \"y\": -3.6018367346938773, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": -1.9535878705455012, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": -1.9478138816155823}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -1.9535878705455012, \"y\": -3.6018367346938773, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -1.892734394680835, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.892734394680835, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": -1.892734394680835, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -3.454897421828842, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 1.9478138816155814}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": -1.9535878705455016, \"y\": -3.6018367346938773, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": -2.0044762663080555, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.5516926207380743, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": -2.0391916426281163, \"y\": -3.6018367346938773, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -3.5516926207380743, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.044285714285714, \"y\": -3.5516926207380743, \"z\": 2.433673469387754}, {\"x\": -2.0044762663080555, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.0044762663080555, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.0044762663080555, \"y\": -3.6018367346938773, \"z\": 2.433673469387754}, {\"x\": -1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.6018367346938773, \"z\": 2.6404106843265387}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.8635323261518302, \"y\": -3.6018367346938773, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -1.8927343946808364, \"y\": -3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.892734394680835, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.892734394680835, \"y\": -3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": 2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": 2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": -3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -1.8495918367346937, \"y\": -3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969323, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -1.8495918367346937, \"y\": -3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": -3.1030546475969327, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.8495918367346937, \"y\": -3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": -2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -1.8879606295350286, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": -1.8879606295350286, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -2.044285714285714, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": -2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -3.0574700229616782}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": -3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -3.0574700229616782}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -3.0574700229616782}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -2.9804124289068827}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": -1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -1.8879606295350273, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": -1.8879606295350286, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -1.9190280802005293, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -1.8879606295350286, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": -1.8879606295350286, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -1.9190280802005293, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8879606295350286, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": -1.8495918367346937, \"y\": -2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": 3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -1.9609249413115544, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.5317413995345155, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": -3.2124489795918363}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -3.0574700229616782}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": -1.6884840828722911}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": -1.9190280802005288, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -1.9190280802005293, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -1.9190280802005293, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -1.9190280802005293, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 1.6884840828722911}, {\"x\": -1.9190280802005293, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 3.1485832311202664}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 3.1485832311202664}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -1.8495918367346937, \"y\": -2.433673469387755, \"z\": 3.0574700229616774}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": -3.4071428571428566}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -3.2723002981270355}, {\"x\": -1.8495918367346937, \"y\": -2.1288736531132515, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -3.2723002981270355}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -3.2723002981270355}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": -3.4071428571428566}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.1288736531132515, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -3.148583231120267}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -1.855609673158733}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": -2.044285714285714, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": -2.0522421081796858, \"z\": -1.8495918367346937}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": -1.748347723502277}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -2.044285714285714, \"y\": -2.15949260176431, \"z\": 1.654897959183673}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.052242108179686, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -1.8495918367346937, \"y\": -2.052242108179686, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -2.044285714285714, \"y\": -2.15949260176431, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 1.7483477235022766}, {\"x\": -1.9942298409750494, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.15949260176431, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": -2.052242108179686, \"z\": 1.8495918367346933}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -1.8495918367346937, \"y\": -2.238979591836735, \"z\": 3.1485832311202664}, {\"x\": -1.8495918367346937, \"y\": -2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": 3.4071428571428566}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -1.9221094207050813, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": -3.6018367346938773}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -3.454897421828843}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -3.454897421828843}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -3.454897421828843}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": -3.6018367346938773}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -3.2723002981270355}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -2.0522421081796858}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": -2.044285714285714}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": -1.855609673158733}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -2.044285714285714, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -2.044285714285714, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 1.8556096731587326}, {\"x\": -1.855609673158733, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": -1.855609673158733, \"z\": 2.0442857142857136}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -1.8495918367346937, \"y\": -2.044285714285714, \"z\": 3.2723002981270337}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": 3.4071428571428566}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 3.454897421828843}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -1.9621576060290242, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8927343946808364, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 3.454897421828843}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285858, \"z\": -3.7965306122448976}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -3.7026914198282954}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276866, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -3.7026914198282954}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -3.7026914198282954}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285858, \"z\": -3.7965306122448976}, {\"x\": -1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276866, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -3.454897421828843}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -2.3446738921774393}, {\"x\": -1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -2.120208022753666}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": -2.0522421081796858}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -1.7213297629589528, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": -1.9307686943986093, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": -1.8495918367346937, \"y\": -1.7213297629589528, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 2.0522421081796853}, {\"x\": -1.855609673158733, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": -1.7213297629589528, \"z\": 2.238979591836734}, {\"x\": -1.9307686943986093, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": -1.8495918367346937, \"y\": -1.8495918367346937, \"z\": 3.454897421828843}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276862, \"z\": 3.6018367346938778}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 3.7026914198282945}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -1.9478138816155823, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.7306734078276862, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 3.7026914198282945}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -1.9148231489671512, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -1.612125427847571, \"z\": -3.991224489795918}, {\"x\": -1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -1.9148231489671512, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -2.044285714285714, \"y\": -1.612125427847571, \"z\": -3.991224489795918}, {\"x\": -1.9148231489671512, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -1.9139688830664676, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -3.7026914198282954}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.5961613478166194, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -2.6165303585677964}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -2.6165303585677964}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -2.3446738921774393}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": -2.3446738921774393}, {\"x\": -1.8495918367346937, \"y\": -1.5961613478166194, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": -1.5961613478166194, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -1.9307686943986084, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -2.120208022753666}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -1.9307686943986093, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -1.9307686943986093, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 2.3446738921774406}, {\"x\": -1.9307686943986093, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 2.616530358567796}, {\"x\": -1.8495918367346937, \"y\": -1.59616134781662, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": -1.8495918367346937, \"y\": -1.6548979591836734, \"z\": 3.7026914198282945}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": 3.796530612244897}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": -1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 3.928500807922104}, {\"x\": -1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -1.9139688830664685, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.5826675822572933, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 3.928500807922104}, {\"x\": -1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -2.044285714285714, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": -1.9148231489671512, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372863, \"z\": -3.991224489795918}, {\"x\": -1.9148231489671512, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -1.9148231489671512, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372863, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -3.9285008079221027}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -2.6165303585677964}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119253, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": -2.6165303585677964}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119244, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 2.616530358567796}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119244, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119244, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": -1.4495557837119244, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": -1.8495918367346937, \"y\": -1.4602040816326531, \"z\": 3.928500807922104}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": -1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -1.9148231489671508, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.3899223518372854, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -4.069662769787542}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": -2.797292796187869}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 2.797292796187869}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": -1.2254034642992662, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -1.8495918367346937, \"y\": -1.2655102040816328, \"z\": 4.069662769787541}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -1.8495918367346937, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": -1.9828261655690507, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.9828261655690507, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.9456206868183421, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.9828261655690507, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.8495918367346937, \"y\": -0.945620686818347, \"z\": 4.185918367346938}, {\"x\": -1.98282616556906, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -1.8495918367346937, \"y\": -0.945620686818347, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.8495918367346937, \"y\": -1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -1.8495918367346937, \"y\": -0.945620686818347, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.98282616556906, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.9859474869329623, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.9828261655690507, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.9859474869329623, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.9859474869329623, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.9828261655690507, \"y\": -0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -1.9859474869329623, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": -0.7180201653998921, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -1.98282616556906, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -1.98282616556906, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.98282616556906, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.98282616556906, \"y\": -0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.9744923503409617, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.9859474869329623, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.9744923503409617, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.9744923503409617, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.9859474869329623, \"y\": -0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -1.9744923503409617, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -3.158284776606683}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.9859474869329654, \"y\": -0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -4.238948728121448}, {\"x\": -1.9744923503409617, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": -1.9744923503409617, \"y\": -0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -3.158284776606683}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -3.158284776606683}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.9658731394524436, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": -1.9658731394524436, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": -1.974492350340964, \"y\": -0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -4.238948728121448}, {\"x\": -1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": -1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": -1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -4.238948728121448}, {\"x\": -1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": -1.9658731394524418, \"y\": -0.2920408163265309, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -4.1280496282407535}, {\"x\": -1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -3.214401408654105}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": -3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": -3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 3.195911008852586}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": 3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 3.085838856657901}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 3.195911008852586}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -1.9658731394524436, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": -1.9614800278928324, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": -1.9658731394524436, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": -1.9658731394524436, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": -1.9614800278928324, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.2920408163265309, \"z\": 4.23894872812145}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": -1.9658731394524436, \"y\": -0.2920408163265309, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": -1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": -1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": -1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -4.241360859156938}, {\"x\": -1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": -1.961480027892831, \"y\": -0.0973469387755106, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -4.1280496282407535}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": -1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -4.1280496282407535}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -3.214401408654105}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": -3.096499982669913}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 3.096499982669912}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": -0.0973469387755106, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": -1.9614800278928324, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": -1.9614800278928324, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": -1.9614800278928324, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": -1.9614800278928324, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": -1.9614800278928324, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": -0.0973469387755106, \"z\": 4.241360859156938}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": -1.9614800278928324, \"y\": -0.0973469387755106, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": -1.9658731394524414, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -4.238948728121448}, {\"x\": -1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": -1.9658731394524414, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -4.241360859156938}, {\"x\": -1.9658731394524414, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": -1.961480027892831, \"y\": 0.0973469387755097, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -1.9658731394524414, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": -3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": -3.2124489795918363}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": -3.096499982669912}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 3.096499982669912}, {\"x\": -2.041939729129484, \"y\": 0.0973469387755097, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": -1.9614800278928324, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": -1.9658731394524436, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -1.9614800278928324, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": -1.9614800278928324, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": -1.9658731394524436, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.0973469387755097, \"z\": 4.241360859156938}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": -1.9614800278928324, \"y\": 0.0973469387755097, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -4.238948728121448}, {\"x\": -1.9744923503409617, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.9658731394524414, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": -1.9744923503409617, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -4.238948728121448}, {\"x\": -1.9744923503409617, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.9658731394524414, \"y\": 0.29204081632653, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -1.9744923503409617, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": -3.085838856657901}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 3.085838856657901}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -1.9658731394524436, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": -1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -1.9658731394524436, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": -1.9658731394524436, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.29204081632653, \"z\": 4.23894872812145}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.9658731394524436, \"y\": 0.29204081632653, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.9859474869329623, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.9744923503409617, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -1.9859474869329623, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -4.2330006538847655}, {\"x\": -1.9859474869329623, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.9744923503409617, \"y\": 0.4867346938775512, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -1.9859474869329623, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": -3.063513038149698}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 3.063513038149698}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.4867346938775512, \"z\": 4.2330006538847655}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.974492350340964, \"y\": 0.4867346938775512, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.9828261655690507, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.9859474869329623, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -1.9828261655690507, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -4.22107450539463}, {\"x\": -1.9828261655690507, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.9859474869329623, \"y\": 0.6814285714285715, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -1.9828261655690507, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": -3.0269186386768423}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.7180201653998912, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 3.0269186386768423}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.98282616556906, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.98282616556906, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.6814285714285715, \"z\": 4.221074505394631}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.9859474869329654, \"y\": 0.6814285714285715, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -4.1989527961478945}, {\"x\": -1.9828261655690507, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": -1.9828261655690507, \"y\": 0.8761224489795918, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183417, \"z\": -4.185918367346939}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": -2.9793378197671587}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -2.882733080516762}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 2.9793378197671583}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -1.98282616556906, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.98282616556906, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -1.98282616556906, \"y\": 0.8761224489795918, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 0.8761224489795918, \"z\": 4.1989527961478945}, {\"x\": -1.8495918367346937, \"y\": 0.9456206868183461, \"z\": 4.185918367346938}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -4.152039851393803}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -2.882733080516762}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": -2.9095523304704836}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -2.882733080516762}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -2.79729279618787}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 2.797292796187869}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 2.797292796187869}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.2254034642992657, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 2.9095523304704836}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 1.070816326530612, \"z\": 4.152039851393804}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -4.069662769787542}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": -3.991224489795918}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": -2.79729279618787}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -2.43849917257272}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -2.6165303585677973}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -2.43849917257272}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 2.797292796187869}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4495557837119248, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 2.797292796187869}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -1.8495918367346937, \"y\": 1.3899223518372859, \"z\": 3.9912244897959184}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": -1.8495918367346937, \"y\": 1.2655102040816324, \"z\": 4.069662769787541}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -3.928500807922103}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": -3.7965306122448976}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -2.43849917257272}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": -2.6165303585677973}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.463245012537378, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -2.43849917257272}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -2.344673892177441}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.463245012537378, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": -2.433673469387755}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -2.120208022753666}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": -2.044285714285714, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.5961613478166203, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 2.616530358567797}, {\"x\": -2.044285714285714, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": 3.9912244897959184}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.5826675822572938, \"z\": 3.796530612244897}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -1.8495918367346937, \"y\": 1.4602040816326527, \"z\": 3.928500807922102}, {\"x\": -1.9148231489671508, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -3.7360536727333002}, {\"x\": -1.9478138816155819, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -3.7360536727333002}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -3.7360536727333002}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -3.702691419828294}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": -3.6018367346938773}, {\"x\": -1.9478138816155819, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": -2.344673892177441}, {\"x\": -1.8495918367346937, \"y\": 1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -2.120208022753666}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -2.120208022753666}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -1.9307686943986093, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.721329762958952, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -1.855609673158733}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": 2.0442857142857136}, {\"x\": -1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.8495918367346937, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": 2.0442857142857136}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -1.9307686943986102, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.7213297629589537, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 2.3446738921774415}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": -1.9478138816155823, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -1.9478138816155823, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -1.9478138816155823, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.7306734078276858, \"z\": 3.6018367346938778}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -1.8495918367346937, \"y\": 1.654897959183673, \"z\": 3.7026914198282945}, {\"x\": -1.913968883066468, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -1.9478138816155819, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -3.5031275539105446}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -3.5031275539105446}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -3.5031275539105446}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -3.4548974218288424}, {\"x\": -1.9478138816155819, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": -3.4071428571428566}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": -2.052242108179687}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": -2.044285714285714}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -1.855609673158733}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": -1.8495918367346937}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -1.855609673158733}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -1.855609673158733}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -1.855609673158733}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -1.705007767136888}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": 1.8495918367346933}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": 1.8495918367346933}, {\"x\": -1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -1.855609673158734, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 1.8556096731587344, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 2.052242108179687}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 3.2723002981270355}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -1.9478138816155823, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.8927343946808346, \"z\": 3.4071428571428566}, {\"x\": -1.9478138816155823, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -1.8495918367346937, \"y\": 1.8495918367346933, \"z\": 3.454897421828841}, {\"x\": -1.9478138816155823, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -3.5031275539105446}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": -1.9221094207050808, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -3.272300298127036}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": -3.2124489795918363}, {\"x\": -1.9221094207050808, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -3.1485832311202673}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": -1.855609673158733}, {\"x\": -1.8495918367346937, \"y\": 2.0522421081796853, \"z\": -1.8495918367346937}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -1.705007767136888}, {\"x\": -1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -1.705007767136888}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -1.855609673158733, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.0522421081796853, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": -2.044285714285714, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": -1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -1.8495918367346937, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -2.044285714285714, \"y\": 2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -1.8556096731587344, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 2.052242108179687, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 1.8556096731587344}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -1.9221094207050804, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.9221094207050804, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.9221094207050804, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.128873653113251, \"z\": 3.2124489795918363}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -1.8495918367346937, \"y\": 2.0442857142857136, \"z\": 3.2723002981270355}, {\"x\": -1.9621576060290238, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": -1.9221094207050808, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -1.9221094207050808, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": -1.9221094207050808, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -3.1485832311202673}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -3.1485832311202673}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -1.6884840828722916}, {\"x\": -1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": -1.748347723502277}, {\"x\": -1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": -1.9942298409750494, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": -1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": -1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 1.7483477235022784}, {\"x\": -1.9942298409750503, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268615, \"z\": 3.2124489795918363}, {\"x\": -1.9221094207050804, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268615, \"z\": 3.2124489795918363}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": -1.8495918367346937, \"y\": 2.238979591836734, \"z\": 3.1485832311202664}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": -1.9221094207050804, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268615, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -3.0574700229616782}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": -3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -1.6884840828722916}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": -1.6884840828722916}, {\"x\": -1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": -1.9190280802005288, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": -1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": -1.8879606295350286, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8879606295350286, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 1.6884840828722911}, {\"x\": -1.9190280802005297, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": -1.8495918367346937, \"y\": 2.531741399534516, \"z\": 3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": -1.8495918367346937, \"y\": 2.433673469387754, \"z\": 3.0574700229616774}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -2.9804124289068823}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -2.044285714285714, \"y\": 2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -2.044285714285714, \"y\": 2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": -1.6661991406828585}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.8879606295350273, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": -1.8879606295350286, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -1.8879606295350286, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -1.8879606295350286, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 1.666199140682858}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": 2.6283673469387754, \"z\": 2.980412428906882}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.9609249413115544, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -2.911118725674711}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": -1.6744094922542558}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 1.6744094922542558}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -1.8495918367346937, \"y\": 2.8230612244897957, \"z\": 2.9111187256747106}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -2.84873242110494}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": -1.7072860382893054}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 1.707286038289305}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -1.8495918367346937, \"y\": 3.103054647596932, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -1.8495918367346937, \"y\": 3.017755102040816, \"z\": 2.8487324211049394}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": -2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -2.7829886192710154}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": -1.760170204911121}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 1.7601702049111214}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": 2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -1.8495918367346937, \"y\": 3.2124489795918363, \"z\": 2.7829886192710145}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -2.7131724226785683}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380717, \"z\": -2.433673469387755}, {\"x\": -2.0044762663080538, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.0044762663080538, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": -2.6283673469387754}, {\"x\": -2.0044762663080538, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": -2.0044762663080538, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380717, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": -2.238979591836735}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380717, \"z\": -2.433673469387755}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": -2.044285714285714}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": -2.238979591836735}, {\"x\": -1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": -2.044285714285714}, {\"x\": -1.8927343946808364, \"y\": 3.4071428571428566, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": -1.8295121945867878}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828843, \"z\": -1.8495918367346937}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 1.8295121945867887}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": 2.0442857142857136}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": -1.892734394680835, \"y\": 3.4071428571428566, \"z\": 1.8495918367346933}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": -1.8495918367346937, \"y\": 3.454897421828841, \"z\": 1.8495918367346933}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": 2.238979591836734}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": 2.0442857142857136}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.4071428571428566, \"z\": 2.713172422678568}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": -1.9852629033447382, \"y\": 3.4071428571428566, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -2.640410684326539}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.5041107551044055}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": -2.6283673469387754}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": -2.6283673469387754}, {\"x\": -2.0044762663080538, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -2.0044762663080538, \"y\": 3.6018367346938778, \"z\": -2.433673469387755}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": -2.238979591836735}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": -1.9478138816155823}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727333002, \"z\": -2.044285714285714}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 1.9478138816155814}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": -1.8495918367346937, \"y\": 3.7360536727332985, \"z\": 2.0442857142857136}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -1.9535878705455012, \"y\": 3.6018367346938778, \"z\": 2.0442857142857136}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -2.0391916426281154, \"y\": 3.6018367346938778, \"z\": 2.238979591836734}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -1.8856514177172818, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.8856514177172818, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.8856514177172818, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -2.0044762663080546, \"y\": 3.6018367346938778, \"z\": 2.433673469387754}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.8635323261518302, \"y\": 3.6018367346938778, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.6018367346938778, \"z\": 2.6404106843265387}, {\"x\": -1.8495918367346937, \"y\": 3.6342009897818617, \"z\": 2.6283673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.5041107551044055}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": -2.433673469387755}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": -2.433673469387755}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": -1.885651417717281, \"y\": 3.796530612244897, \"z\": -2.433673469387755}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": -2.433673469387755}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": -2.1370699637084942}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": -2.238979591836735}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.1370699637084947}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": -1.8856514177172818, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": -1.8961941451561803, \"y\": 3.796530612244897, \"z\": 2.238979591836734}, {\"x\": -1.8856514177172818, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.8689639812968473, \"z\": 2.238979591836734}, {\"x\": -1.8856514177172818, \"y\": 3.796530612244897, \"z\": 2.433673469387754}, {\"x\": -1.8495918367346937, \"y\": 3.796530612244897, \"z\": 2.5041107551044055}, {\"x\": -1.8495918367346937, \"y\": 3.8679567161651303, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.551692620738074, \"z\": -2.433673469387755}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -3.551692620738074, \"z\": -2.433673469387755}, {\"x\": -2.1954708055841605, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -2.1954708055841605, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": -2.238979591836735}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.1954708055841605, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.5031275539105438, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.503127553910544, \"z\": 2.0442857142857136}, {\"x\": -2.195470805584161, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -3.5516926207380743, \"z\": 2.433673469387754}, {\"x\": -2.195470805584161, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -3.5960109220398273, \"z\": 2.238979591836734}, {\"x\": -2.141963735944098, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.195470805584161, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -3.5516926207380743, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.5516926207380743, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.141963735944098, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.1954708055841605, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.1419637359440973, \"y\": -3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.1954708055841605, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.1954708055841605, \"y\": -3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -2.1288736531132515, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": -1.9621576060290247}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.1288736531132515, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -2.1288736531132506, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.1288736531132506, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": 2.0442857142857136}, {\"x\": -2.1288736531132506, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -3.2723002981270346, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.195470805584161, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": 2.0442857142857136}, {\"x\": -2.132874205507421, \"y\": -3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.195470805584161, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.141963735944098, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.195470805584161, \"y\": -3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": 2.6283673469387754}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.141963735944098, \"y\": -3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -3.3466606140748256, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.1288736531132515, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.1288736531132515, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.1288736531132515, \"y\": -3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.1288736531132506, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.1288736531132506, \"y\": -3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.0478614777192807, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": 2.6283673469387754}, {\"x\": -2.150284850635489, \"y\": -3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.0478614777192807, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.0478614777192803, \"y\": -3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.071642000670566, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.071642000670566, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -2.071642000670566, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.0716420006705754, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": -2.0716420006705754, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.0478614777192807, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.0478614777192807, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.0478614777192807, \"y\": -3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.044285714285714, \"y\": -3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": -2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.071642000670566, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.071642000670566, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.0716420006705754, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": -2.0716420006705754, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.0716420006705754, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.816799927822557, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.044285714285714, \"y\": -2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.044285714285714, \"y\": -2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -3.17994333502548}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -1.5377059421436692}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": -2.044285714285714, \"y\": -2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 3.17994333502548}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -3.17994333502548}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -3.1667268074338883}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": -1.607050422298261}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -1.5377059421436692}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -1.5377059421436692}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 1.6070504222982613}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 3.17994333502548}, {\"x\": -2.044285714285714, \"y\": -2.433673469387755, \"z\": 3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 3.17994333502548}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": -2.044285714285714, \"y\": -2.36674633592686, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -3.596010922039827}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -3.3150412079180196}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.044285714285714, \"y\": -2.1594926017643097, \"z\": -1.6548979591836734}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": -1.6286195757585564}, {\"x\": -2.044285714285714, \"y\": -2.15949260176431, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.15949260176431, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 1.6286195757585569}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.044285714285714, \"y\": -2.15949260176431, \"z\": 1.654897959183673}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": -2.044285714285714, \"y\": -2.238979591836735, \"z\": 3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": -2.044285714285714, \"y\": -2.1328742055074215, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": -2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -3.596010922039827}, {\"x\": -2.238979591836735, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -3.5031275539105438}, {\"x\": -2.238979591836735, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": -2.0522421081796858, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -2.0522421081796858, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -1.721329762958952}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -2.0522421081796858, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -1.855609673158733, \"z\": -1.8495918367346937}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": -1.7050077671368884}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986093, \"z\": 1.654897959183673}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 1.721329762958952}, {\"x\": -2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 1.721329762958952}, {\"x\": -2.044285714285714, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986093, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 1.721329762958952}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 1.7050077671368875}, {\"x\": -2.120208022753666, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986093, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": -1.855609673158734, \"z\": 1.8495918367346933}, {\"x\": -2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": -2.044285714285714, \"y\": -2.044285714285714, \"z\": 3.5031275539105433}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": -1.9535878705455012, \"z\": 3.6018367346938778}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": -2.101803666340406, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": -2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285858, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.101803666340406, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.238979591836735, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": -2.101803666340406, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.1370699637084973, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285858, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -3.736053672733299}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -2.120208022753666}, {\"x\": -2.1594926017643092, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.1594926017643092, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -2.1594926017643092, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.0522421081796858, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": -2.044285714285714}, {\"x\": -2.0522421081796858, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": -1.855609673158733}, {\"x\": -2.0522421081796858, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -1.721329762958952}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 1.721329762958952}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": -2.1594926017643097, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 1.8556096731587326}, {\"x\": -2.052242108179687, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": -1.7050077671368884, \"z\": 2.0442857142857136}, {\"x\": -2.1594926017643097, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": -2.044285714285714, \"y\": -1.8495918367346937, \"z\": 3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": -2.101803666340408, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.101803666340408, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": -2.101803666340408, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.1370699637084942, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.7971396198285863, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": -2.101803666340408, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": -2.238979591836735, \"y\": -1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.101803666340406, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -2.044285714285714, \"y\": -1.612125427847571, \"z\": -3.991224489795918}, {\"x\": -2.101803666340406, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -2.101803666340406, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -1.612125427847571, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -3.955797600447352}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": -2.0607034251405927, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.0607034251405927, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.0607034251405927, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373784, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -2.120208022753666}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.1594926017643092, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": -2.120208022753666}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": -1.5838294508677992, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.1594926017643092, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": -2.1594926017643097, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.1594926017643097, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 2.1202080227536655}, {\"x\": -2.1594926017643097, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": -2.0607034251405953, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.5838294508678001, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": -1.4632450125373793, \"z\": 2.433673469387754}, {\"x\": -2.0607034251405953, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": -2.044285714285714, \"y\": -1.6548979591836734, \"z\": 3.955797600447351}, {\"x\": -2.044285714285714, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": -2.101803666340408, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": -2.101803666340408, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.6121254278475705, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -4.089646806944719}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -2.7219217830722733}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.0607034251405927, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": -2.4384991725727208}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.0607034251405927, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.0607034251405953, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.0607034251405953, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 2.4384991725727216}, {\"x\": -2.0607034251405953, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": -2.044285714285714, \"y\": -1.3287840802874071, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": -2.044285714285714, \"y\": -1.4602040816326531, \"z\": 4.089646806944719}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -4.15466939180144}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -2.7219217830722733}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": -2.703777141375253}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 2.7037771413752525}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.044285714285714, \"y\": -1.1418827702422703, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": -1.2655102040816328, \"z\": 4.154669391801441}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": -3.017755102040816}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": -2.8827330805167617}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": 3.017755102040816}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.044285714285714, \"y\": -1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.0720397387159526, \"y\": -0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": -0.8456872343534618, \"z\": 3.017755102040816}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.044285714285714, \"y\": -0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -3.158284776606683}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -3.158284776606683}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": -0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.044285714285714, \"y\": -0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.238979591836735, \"y\": -0.4004427761669769, \"z\": -3.991224489795918}, {\"x\": -2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.4004427761669769, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.954320077569494}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.4227939150586497}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -3.195911008852586}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": -3.158284776606683}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -3.195911008852586}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 3.195911008852586}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": -0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.422793915058648}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.954320077569493}, {\"x\": -2.238979591836735, \"y\": -0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.217532252878446, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -2.217532252878446, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.044285714285714, \"y\": -0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -2.1991799385091104, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -4.1280496282407535}, {\"x\": -2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": -2.1991799385091104, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -4.135721983457607}, {\"x\": -2.1991799385091104, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": -2.2175322528784465, \"y\": -0.2920408163265309, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.954320077569494}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.917715248887719}, {\"x\": -2.1991799385091104, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.954320077569494}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.4765357374478114}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.4227939150586497}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.4765357374478114}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -3.214401408654105}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -3.214401408654105}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": -3.4071428571428566}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": -3.195911008852586}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 3.195911008852586}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": 3.2124489795918363}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": -2.044285714285714, \"y\": -0.11322807683796476, \"z\": 3.2124489795918363}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.0638147894904035, \"y\": -0.2920408163265309, \"z\": 3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": -0.2920408163265309, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.422793915058648}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.422793915058648}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.9177152488877187}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.954320077569493}, {\"x\": -2.217532252878446, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": -2.19917993850911, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.9177152488877187}, {\"x\": -2.217532252878446, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": -2.217532252878446, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": -2.19917993850911, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -0.2920408163265309, \"z\": 4.135721983457607}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": -2.217532252878446, \"y\": -0.2920408163265309, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -4.1280496282407535}, {\"x\": -2.1991799385091104, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": -2.1991799385091104, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": -2.1991799385091104, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -4.1280496282407535}, {\"x\": -2.1991799385091104, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": -2.1991799385091104, \"y\": -0.0973469387755106, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.917715248887719}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.9177152488877187}, {\"x\": -2.1991799385091104, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.917715248887719}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.4765357374478114}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.4765357374478114}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.4765357374478114}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": -3.214401408654105}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 3.214401408654105}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": -0.0973469387755106, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.4765357374478114}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.917715248887717}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.9177152488877187}, {\"x\": -2.19917993850911, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": -2.19917993850911, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.917715248887717}, {\"x\": -2.19917993850911, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": -2.19917993850911, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": -2.19917993850911, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": -0.0973469387755106, \"z\": 4.128049628240754}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": -2.19917993850911, \"y\": -0.0973469387755106, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": -2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -2.1991799385091104, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": -2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -4.128049628240754}, {\"x\": -2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": -2.1991799385091104, \"y\": 0.0973469387755097, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.9177152488877187}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.954320077569494}, {\"x\": -2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.9177152488877187}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.4227939150586497}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.4765357374478114}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.4227939150586497}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": -3.2124489795918363}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": -3.214401408654105}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": -3.2124489795918363}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": 3.2124489795918363}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.11322807683796388, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 3.214401408654105}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -2.207106915197039, \"y\": 0.0973469387755097, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.4765357374478114}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.4227939150586497}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.4765357374478114}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.954320077569493}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.917715248887717}, {\"x\": -2.19917993850911, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": -2.217532252878446, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.954320077569493}, {\"x\": -2.19917993850911, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": -2.19917993850911, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -2.217532252878446, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 0.0973469387755097, \"z\": 4.128049628240754}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -2.19917993850911, \"y\": 0.0973469387755097, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.400442776166976, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.400442776166976, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -4.135721983457607}, {\"x\": -2.2175322528784465, \"y\": 0.29204081632653, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.954320077569494}, {\"x\": -2.238979591836735, \"y\": 0.400442776166976, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.4227939150586497}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": -3.4071428571428566}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": -3.195911008852586}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 3.195911008852586}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.063814789490403, \"y\": 0.29204081632653, \"z\": 3.2124489795918363}, {\"x\": -2.231757514362576, \"y\": 0.29204081632653, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.4227939150586497}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.954320077569493}, {\"x\": -2.217532252878446, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.217532252878446, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.238979591836735, \"y\": 0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.217532252878446, \"y\": 0.29204081632653, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.044285714285714, \"y\": 0.29204081632653, \"z\": 4.135721983457607}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -4.1493476881836635}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": -3.1582847766066826}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 3.158284776606683}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.111720066927503, \"y\": 0.4867346938775512, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.044285714285714, \"y\": 0.4867346938775512, \"z\": 4.149347688183665}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -4.165332561118745}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": -3.0965193740945613}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.8456872343534609, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 3.0965193740945613}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.201957974255343, \"y\": 0.6814285714285715, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 0.6814285714285715, \"z\": 4.1653325611187455}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -4.1778716856340194}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": -3.0035885360978902}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -2.882733080516762}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 3.0035885360978902}, {\"x\": -2.0720397387159526, \"y\": 0.8761224489795918, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 0.8761224489795918, \"z\": 4.17787168563402}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -4.178387136434948}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": -2.882733080516762}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -2.721921783072274}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -2.721921783072274}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.1418827702422698, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 2.8827330805167612}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 1.070816326530612, \"z\": 4.178387136434949}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -4.154669391801441}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -2.721921783072274}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": -2.7037771413752534}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -2.721921783072274}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -2.0607034251405913, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -2.43849917257272}, {\"x\": -2.0607034251405913, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": -2.6283673469387754}, {\"x\": -2.0607034251405913, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -2.3837065716516275}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": -2.060703425140596, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.060703425140596, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.3287840802874076, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 2.7037771413752525}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 1.2655102040816324, \"z\": 4.154669391801441}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -4.08964680694472}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": -3.991224489795918}, {\"x\": -2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": -2.43849917257272}, {\"x\": -2.044285714285714, \"y\": 1.463245012537378, \"z\": -2.433673469387755}, {\"x\": -2.0607034251405913, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -2.3837065716516275}, {\"x\": -2.0607034251405913, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.463245012537378, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -2.3837065716516275}, {\"x\": -2.044285714285714, \"y\": 1.463245012537378, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.463245012537378, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -2.120208022753666}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 1.5838294508677988, \"z\": -2.238979591836735}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.1594926017643106, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": -2.1594926017643106, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": -2.060703425140596, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.060703425140596, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 1.5838294508678006, \"z\": 2.238979591836734}, {\"x\": -2.060703425140596, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4632450125373788, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 2.4384991725727216}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": -2.1018036663404067, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.1018036663404067, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.044285714285714, \"y\": 1.6121254278475714, \"z\": 3.9912244897959184}, {\"x\": -2.1018036663404067, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": -2.044285714285714, \"y\": 1.4602040816326527, \"z\": 4.089646806944719}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -3.868963981296847}, {\"x\": -2.1370699637084947, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -3.868963981296847}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -3.868963981296847}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -3.9557976004473527}, {\"x\": -2.1018036663404054, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285863, \"z\": -3.7965306122448976}, {\"x\": -2.1370699637084947, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": -2.120208022753666}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -1.9942298409750494}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -1.9942298409750494}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -1.855609673158733}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.15949260176431, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -1.855609673158733}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -1.7213297629589528}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.0522421081796867, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": 1.8495918367346933}, {\"x\": -2.1594926017643106, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -2.1594926017643106, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.0522421081796867, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": 1.8495918367346933}, {\"x\": -2.0522421081796867, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -2.1594926017643106, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.7050077671368875, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 2.1202080227536655}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 3.7360536727333002}, {\"x\": -2.137069963708494, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.137069963708494, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": -2.238979591836735, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -2.137069963708494, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.1018036663404067, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.7971396198285872, \"z\": 3.796530612244897}, {\"x\": -2.1018036663404067, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.044285714285714, \"y\": 1.654897959183673, \"z\": 3.955797600447351}, {\"x\": -2.1018036663404067, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -3.868963981296847}, {\"x\": -2.238979591836735, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": -2.1370699637084947, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.1370699637084947, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -3.7360536727333002}, {\"x\": -2.1370699637084947, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -3.5960109220398273}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -3.5031275539105446}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -3.5960109220398273}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": -1.855609673158733}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": -1.8495918367346937}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -1.7213297629589528}, {\"x\": -2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -1.7213297629589528}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -1.705007767136888}, {\"x\": -2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -2.052242108179686, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -1.705007767136888}, {\"x\": -2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.1202080227536664, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": -2.0522421081796867, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -2.0522421081796867, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.1202080227536664, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": -2.1202080227536664, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -2.0522421081796867, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 1.8556096731587326, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 1.8556096731587326}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 3.7360536727333002}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.137069963708494, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.8495918367346933, \"z\": 3.7360536727333002}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.044285714285714, \"y\": 1.953587870545502, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.137069963708494, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -3.5960109220398273}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -3.5031275539105446}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -3.5960109220398273}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": -1.705007767136888}, {\"x\": -2.044285714285714, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": -2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.1202080227536655, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.159492601764309, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.1202080227536664, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": -2.044285714285714, \"y\": 2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": -2.1202080227536664, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": -2.1202080227536664, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.1594926017643106, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 1.7050077671368875}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 3.3648610552102163}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": -2.044285714285714, \"y\": 2.132874205507422, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": -2.044285714285714, \"y\": 2.0442857142857136, \"z\": 3.503127553910545}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -3.31504120791802}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -3.1799433350254813}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268606, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -3.1799433350254813}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": -1.6286195757585573}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 1.6286195757585569}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268615, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 3.3648610552102163}, {\"x\": -2.044285714285714, \"y\": 2.3667463359268615, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": -2.044285714285714, \"y\": 2.238979591836734, \"z\": 3.3150412079180196}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -3.1667268074338892}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -3.1799433350254813}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -3.1799433350254813}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": -1.607050422298261}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 1.6070504222982613}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": 2.433673469387754, \"z\": 3.1667268074338883}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -3.04322951238393}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.044285714285714, \"y\": 2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.071642000670566, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.071642000670566, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": 2.816799927822559, \"z\": -1.6548979591836734}, {\"x\": -2.071642000670566, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": -1.6192610142681474}, {\"x\": -2.044285714285714, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.0716420006705754, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 1.6192610142681474}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.044285714285714, \"y\": 2.816799927822556, \"z\": 1.654897959183673}, {\"x\": -2.0716420006705754, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.044285714285714, \"y\": 2.671475626954507, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": -2.044285714285714, \"y\": 2.6283673469387754, \"z\": 3.0432295123839292}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -2.9289463835870624}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.238979591836735, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.071642000670566, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": -1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -2.071642000670566, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": -2.0716420006705754, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.0716420006705754, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.0716420006705754, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 1.6563899354841016}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.044285714285714, \"y\": 2.8230612244897957, \"z\": 2.9289463835870624}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -2.8246881103707153}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": -2.6283673469387754}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": -2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": -2.8230612244897957}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.1288736531132515, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.1288736531132515, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": -1.7286757265816615}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 1.7286757265816615}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": 2.6283673469387754}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": 2.6283673469387754}, {\"x\": -2.0478614777192807, \"y\": 3.017755102040816, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.017755102040816, \"z\": 2.8246881103707153}, {\"x\": -2.044285714285714, \"y\": 3.021007134594104, \"z\": 2.8230612244897957}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -2.706551666617378}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.1419637359440973, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.1419637359440973, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.1419637359440973, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": -2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": -2.6283673469387754}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.1419637359440973, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.1288736531132515, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.1288736531132515, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": -2.1288736531132515, \"y\": 3.2124489795918363, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": -1.8185672665461041}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270355, \"z\": -1.8495918367346937}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 1.8185672665461032}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": -2.132874205507421, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.132874205507421, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.132874205507421, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.1288736531132506, \"y\": 3.2124489795918363, \"z\": 1.8495918367346933}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.044285714285714, \"y\": 3.2723002981270337, \"z\": 1.8495918367346933}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.132874205507421, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": 2.433673469387754}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": 2.433673469387754}, {\"x\": -2.150284850635489, \"y\": 3.2124489795918363, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.2124489795918363, \"z\": 2.7065516666173766}, {\"x\": -2.044285714285714, \"y\": 3.3466606140748247, \"z\": 2.6283673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -2.571438952643293}, {\"x\": -2.1419637359440973, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380717, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380717, \"z\": -2.433673469387755}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": -2.238979591836735}, {\"x\": -2.1419637359440973, \"y\": 3.4071428571428566, \"z\": -2.433673469387755}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380717, \"z\": -2.433673469387755}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": -2.238979591836735}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": -2.044285714285714}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": -2.238979591836735}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": -2.238979591836735}, {\"x\": -2.1328742055074215, \"y\": 3.4071428571428566, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": -1.9621576060290242}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": -2.044285714285714}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 1.9621576060290247}, {\"x\": -2.132874205507421, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": 2.0442857142857136}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": 2.238979591836734}, {\"x\": -2.132874205507421, \"y\": 3.4071428571428566, \"z\": 2.0442857142857136}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.044285714285714, \"y\": 3.5031275539105433, \"z\": 2.0442857142857136}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": 2.238979591836734}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": -2.195470805584161, \"y\": 3.4071428571428566, \"z\": 2.238979591836734}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 3.5960109220398255, \"z\": 2.238979591836734}, {\"x\": -2.141963735944098, \"y\": 3.4071428571428566, \"z\": 2.433673469387754}, {\"x\": -2.044285714285714, \"y\": 3.4071428571428566, \"z\": 2.571438952643293}, {\"x\": -2.044285714285714, \"y\": 3.5516926207380735, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.3940297843629077, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.3940297843629077, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.36674633592686, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.3940297843629077, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.36674633592686, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": 2.0442857142857136}, {\"x\": -2.3667463359268597, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.3667463359268597, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.315041207918019, \"z\": 2.0442857142857136}, {\"x\": -2.394029784362908, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.3667463359268597, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.394029784362908, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.31597696546576, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.394029784362908, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.302037432549011, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.31597696546576, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.3940297843629077, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.315976965465759, \"y\": -3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.3940297843629077, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.36674633592686, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.3940297843629077, \"y\": -3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.36674633592686, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.36674633592686, \"y\": -3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.433673469387755, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.057470022961678, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.433673469387755, \"y\": -3.057470022961678, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.3667463359268597, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.433673469387755, \"y\": -3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -3.1485832311202664, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.057470022961678, \"z\": 1.8495918367346933}, {\"x\": -2.3667463359268597, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.394029784362908, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": -2.3667463359268597, \"y\": -3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.394029784362908, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.31597696546576, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.394029784362908, \"y\": -3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": 2.6283673469387754}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.31597696546576, \"y\": -3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -3.1327771096473422, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.238979591836735, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.238979591836735, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.238979591836735, \"y\": -2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.839327704472028, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": 2.6283673469387754}, {\"x\": -2.3509404110304475, \"y\": -3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": 3.017755102040816}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": 2.8230612244897957}, {\"x\": -2.3230380730491356, \"y\": -2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -2.6349655987534484, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -3.1024686960752477}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -3.1024686960752477}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -3.17994333502548}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -1.5377059421436692}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -1.5377059421436692}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": 3.017755102040816}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": 3.017755102040816}, {\"x\": -2.249613165931353, \"y\": -2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.238979591836735, \"y\": -2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 3.17994333502548}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -3.3020374325490103}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -3.17994333502548}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -3.1024686960752477}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -3.17994333502548}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.383706571651627, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.409979912896139, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.383706571651627, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": -1.5377059421436692}, {\"x\": -2.383706571651627, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": -2.409979912896139, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.3837065716516275, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.4099799128961363, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.4099799128961363, \"z\": 1.4602040816326527}, {\"x\": -2.3837065716516275, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": -2.4099799128961363, \"z\": 1.4602040816326527}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 1.5377059421436696}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.238979591836735, \"y\": -2.433673469387755, \"z\": 3.17994333502548}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.238979591836735, \"y\": -2.3940297843629077, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -3.596010922039827}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -3.551692620738074}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -3.596010922039827}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -3.3020374325490103}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -3.3648610552102163}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.0607034251405922, \"z\": -1.4602040816326531}, {\"x\": -2.383706571651627, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.433673469387755, \"y\": -2.0607034251405922, \"z\": -1.4602040816326531}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -1.4632450125373784}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -1.4632450125373784}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": -1.5336588298838576}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.383706571651627, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.0607034251405922, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.433673469387755, \"y\": -2.060703425140592, \"z\": 1.4602040816326527}, {\"x\": -2.3837065716516275, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -2.3837065716516275, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.060703425140592, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 1.463245012537378}, {\"x\": -2.3837065716516275, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 1.463245012537378}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 1.463245012537378}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.238979591836735, \"y\": -2.238979591836735, \"z\": 3.3648610552102163}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 3.5516926207380717}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 3.5516926207380717}, {\"x\": -2.238979591836735, \"y\": -2.1954708055841605, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -3.867956716165127}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561795, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -2.004476266308055, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -3.596010922039827}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -3.551692620738074}, {\"x\": -2.433673469387755, \"y\": -2.004476266308055, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -2.0391916426281163, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -3.596010922039827}, {\"x\": -2.433673469387755, \"y\": -2.004476266308055, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -1.721329762958952}, {\"x\": -2.3446738921774393, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -2.3446738921774393, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.3446738921774393, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -1.5961613478166194}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -1.5961613478166194}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -1.4632450125373784}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": -1.5838294508677992}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986093, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.344673892177441, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986093, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 1.5838294508677988}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 1.463245012537378}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.238979591836735, \"y\": -1.9307686943986093, \"z\": 1.654897959183673}, {\"x\": -2.344673892177441, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 1.721329762958952}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 3.5516926207380717}, {\"x\": -2.238979591836735, \"y\": -2.044285714285714, \"z\": 3.5960109220398255}, {\"x\": -2.238979591836735, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 3.5516926207380717}, {\"x\": -2.238979591836735, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -2.039191642628115, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.885651417717281, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.433673469387755, \"y\": -1.885651417717281, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.238979591836735, \"y\": -1.8961941451561803, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": -2.238979591836735, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -3.867956716165127}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -1.7399663004192445, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -3.868963981296845}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -1.721329762958952}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.3446738921774393, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": -1.721329762958952}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.3446738921774393, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -1.5961613478166194}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.344673892177441, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -2.344673892177441, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 1.721329762958952}, {\"x\": -2.344673892177441, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": -1.748347723502277, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.238979591836735, \"y\": -1.8495918367346937, \"z\": 3.8689639812968473}, {\"x\": -2.238979591836735, \"y\": -1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.7527765226084187, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.238979591836735, \"y\": -1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.433673469387755, \"y\": -1.7527765226084187, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.238979591836735, \"y\": -1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -2.443119458785765}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.409979912896139, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": -2.409979912896139, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585564, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": -1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": -2.238979591836735, \"y\": -1.6286195757585573, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.4099799128961363, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.4099799128961363, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.5336588298838576, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.4099799128961363, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 2.443119458785766}, {\"x\": -2.238979591836735, \"y\": -1.6548979591836734, \"z\": 4.075249957920127}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 4.169139467370989}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -4.164981484217447}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.3815089061736012, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -2.7219217830722733}, {\"x\": -2.3815089061736012, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -2.7219217830722733}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.409979912896139, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -2.443119458785765}, {\"x\": -2.409979912896139, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.409979912896139, \"y\": -1.4602040816326531, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": -2.383706571651627}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 2.3837065716516275}, {\"x\": -2.4099799128961363, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 2.443119458785766}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.4099799128961363, \"y\": -1.4602040816326531, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 2.443119458785766}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": -1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.3274996967782569, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 2.8706723300761823}, {\"x\": -2.238979591836735, \"y\": -1.4602040816326531, \"z\": 4.1649814842174475}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 4.169139467370989}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 4.169139467370989}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -4.18024588722862}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": -3.017755102040816}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.3815089061736012, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.3815089061736012, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": -3.017755102040816}, {\"x\": -2.3815089061736012, \"y\": -1.2655102040816328, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": -2.7219217830722733}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 2.721921783072272}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 2.8706723300761823}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": 3.017755102040816}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 2.8706723300761823}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.3815089061736017, \"y\": -1.2655102040816328, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": -1.1887389093707674, \"z\": 2.8230612244897957}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 3.154043496011993}, {\"x\": -2.238979591836735, \"y\": -1.2655102040816328, \"z\": 4.180245887228621}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.4017783632936824, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725753, \"z\": -3.991224489795918}, {\"x\": -2.4017783632936824, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.4017783632936824, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725753, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": -3.2124489795918363}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": -3.2124489795918363}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 3.154043496011993}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": 3.2124489795918363}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 3.154043496011993}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.311612966367139, \"y\": -1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.238979591836735, \"y\": -0.9999662005822567, \"z\": 3.017755102040816}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.238979591836735, \"y\": -1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.312519264166152, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.4017783632936824, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.312519264166152, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.4017783632936824, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.4017783632936824, \"y\": -0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.312519264166152, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523188, \"z\": -3.6018367346938773}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523188, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523188, \"z\": -3.6018367346938773}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": -3.124054835453217}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.3217410791830635, \"y\": -0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.238979591836735, \"y\": -0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523196, \"z\": 3.6018367346938778}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523196, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523196, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.3125192641661507, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.3125192641661507, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.4017783632936816, \"y\": -0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.312519264166152, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.312519264166152, \"y\": -0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.345385009156189, \"y\": -0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.4179508688336253, \"y\": -0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.350083975346631, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.4161028275299516, \"y\": -0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.3125192641661507, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.350083975346631, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.350083975346631, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.3125192641661507, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.3125192641661507, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.3125192641661507, \"y\": -0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.4004427761669769, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": -0.4004427761669769, \"z\": -3.991224489795918}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.954320077569494}, {\"x\": -2.238979591836735, \"y\": -0.4004427761669769, \"z\": -3.991224489795918}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.3500839753466307, \"y\": -0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.4227939150586497}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.4227939150586497}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.422793915058648}, {\"x\": -2.238979591836735, \"y\": -0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.2756274893806228, \"y\": -0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.3492416105411844, \"y\": -0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.350083975346631, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.350083975346631, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.954320077569493}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.954320077569493}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.350083975346631, \"y\": -0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.255219153108234, \"y\": -0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.238979591836735, \"y\": -0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.954320077569494}, {\"x\": -2.2910171122765006, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.917715248887719}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.2910171122765006, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.954320077569494}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": -3.7965306122448976}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.2910171122765006, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": -2.2910171122765006, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.4765357374478114}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": -3.4227939150586497}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.4765357374478114}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.422793915058648}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.422793915058648}, {\"x\": -2.307344192049788, \"y\": -0.2920408163265309, \"z\": 3.6018367346938778}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.9177152488877187}, {\"x\": -2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -0.2920408163265309, \"z\": 3.954320077569493}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.9177152488877187}, {\"x\": -2.309997718412933, \"y\": -0.2920408163265309, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.917715248887719}, {\"x\": -2.2910171122765006, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.9177152488877187}, {\"x\": -2.2910171122765006, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": -2.2910171122765006, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.917715248887719}, {\"x\": -2.2910171122765006, \"y\": -0.0973469387755106, \"z\": -3.7965306122448976}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -2.2910171122765006, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": -2.2910171122765006, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.4765357374478114}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": -3.4765357374478114}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.4765357374478114}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.4765357374478114}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.4765357374478096}, {\"x\": -2.28747239945516, \"y\": -0.0973469387755106, \"z\": 3.6018367346938778}, {\"x\": -2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": -2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": -2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.917715248887717}, {\"x\": -2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": -0.0973469387755106, \"z\": 3.9177152488877187}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.917715248887717}, {\"x\": -2.291017112276501, \"y\": -0.0973469387755106, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.9177152488877187}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.954320077569494}, {\"x\": -2.2910171122765006, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.9177152488877187}, {\"x\": -2.2910171122765006, \"y\": 0.0973469387755097, \"z\": -3.7965306122448976}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.4227939150586497}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": -3.4765357374478114}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.4227939150586497}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.4765357374478114}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.4227939150586497}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.4765357374478114}, {\"x\": -2.28747239945516, \"y\": 0.0973469387755097, \"z\": 3.6018367346938778}, {\"x\": -2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.954320077569493}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.0973469387755097, \"z\": 3.917715248887717}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.954320077569493}, {\"x\": -2.291017112276501, \"y\": 0.0973469387755097, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.400442776166976, \"z\": -3.991224489795918}, {\"x\": -2.2552191531082344, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.954320077569494}, {\"x\": -2.2552191531082344, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.400442776166976, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.954320077569494}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.2552191531082344, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.3500839753466307, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.2552191531082344, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": -3.7965306122448976}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.3500839753466307, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.3500839753466307, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": -3.4227939150586497}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.4227939150586497}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.32042311144275626, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.4227939150586497}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.307344192049788, \"y\": 0.29204081632653, \"z\": 3.6018367346938778}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.350083975346631, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.29204081632653, \"z\": 3.954320077569493}, {\"x\": -2.238979591836735, \"y\": 0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.350083975346631, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.309997718412933, \"y\": 0.29204081632653, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 0.40044277616697954, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.312519264166152, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.2552191531082344, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.312519264166152, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -4.006904388098048}, {\"x\": -2.2552191531082344, \"y\": 0.4867346938775512, \"z\": -3.991224489795918}, {\"x\": -2.3500839753466307, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.312519264166152, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.312519264166152, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.3500839753466307, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.3500839753466307, \"y\": 0.4867346938775512, \"z\": -3.7965306122448976}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": -3.6018367346938773}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": -3.354117036707575}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 3.3541170367075743}, {\"x\": -2.2756274893806228, \"y\": 0.4867346938775512, \"z\": 3.4071428571428566}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.3492416105411844, \"y\": 0.4867346938775512, \"z\": 3.6018367346938778}, {\"x\": -2.350083975346631, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.350083975346631, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.350083975346631, \"y\": 0.4867346938775512, \"z\": 3.796530612244897}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.4867346938775512, \"z\": 4.006904388098048}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.255219153108234, \"y\": 0.4867346938775512, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.312519264166152, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -4.053831664284882}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.312519264166152, \"y\": 0.6814285714285715, \"z\": -3.991224489795918}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523179, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523179, \"z\": -3.6018367346938773}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523179, \"z\": -3.6018367346938773}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": -3.2510705816607177}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 0.7343102575855109, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 3.251070581660718}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523188, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.345385009156189, \"y\": 0.6814285714285715, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523188, \"z\": 3.6018367346938778}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523188, \"z\": 3.6018367346938778}, {\"x\": -2.4179508688336253, \"y\": 0.6814285714285715, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.4017783632936816, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.4017783632936816, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.4161028275299516, \"y\": 0.6814285714285715, \"z\": 3.796530612244897}, {\"x\": -2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.4017783632936816, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.6814285714285715, \"z\": 4.053831664284882}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.312519264166151, \"y\": 0.6814285714285715, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725749, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725749, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -4.106063999315799}, {\"x\": -2.4017783632936824, \"y\": 0.8761224489795918, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725749, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": -3.124054835453216}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": -3.2124489795918363}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": 3.2124489795918363}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 0.9999662005822563, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 3.124054835453216}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.3217410791830635, \"y\": 0.8761224489795918, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.4017783632936816, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.4017783632936816, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.4017783632936816, \"y\": 0.8761224489795918, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.238979591836735, \"y\": 0.8761224489795918, \"z\": 4.106063999315799}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -4.153253017617557}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -2.870672330076183}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -2.870672330076183}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -2.870672330076183}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": -2.9548434799859145}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": -3.017755102040816}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -2.721921783072274}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 2.8706723300761823}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": 3.017755102040816}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.188738909370767, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 2.9548434799859145}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.311612966367139, \"y\": 1.070816326530612, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 1.070816326530612, \"z\": 4.153253017617557}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -4.180245887228621}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -4.169139467370987}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -2.870672330076183}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": -2.721921783072274}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": -2.6283673469387754}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -2.443119458785766}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.4099799128961363, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -2.443119458785766}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.435205409316331, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -2.3837065716516275}, {\"x\": -2.4099799128961363, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.4099799128961337, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": -2.4099799128961337, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 2.443119458785768}, {\"x\": -2.4099799128961337, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4352054093163318, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 2.7219217830722737}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 1.3274996967782577, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.381508906173601, \"y\": 1.2655102040816324, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 2.8706723300761823}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 1.2655102040816324, \"z\": 4.180245887228621}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 4.169139467370988}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -4.164981484217447}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -4.169139467370987}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -4.169139467370987}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -2.443119458785766}, {\"x\": -2.4099799128961363, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.4099799128961363, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": -2.3837065716516275}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.4099799128961363, \"y\": 1.4602040816326527, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.6286195757585569, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": -2.4099799128961337, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 2.3837065716516292}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 1.5336588298838567, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.4099799128961337, \"y\": 1.4602040816326527, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 2.443119458785768}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 1.4602040816326527, \"z\": 4.1649814842174475}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 4.169139467370988}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 4.169139467370988}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084195, \"z\": -3.991224489795918}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084195, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -3.868963981296847}, {\"x\": -2.238979591836735, \"y\": 1.739966300419245, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": -1.9942298409750494}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -1.7213297629589528}, {\"x\": -2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": -1.8495918367346937}, {\"x\": -2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": -2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 1.7483477235022766, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 1.9942298409750494}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": -2.238979591836735, \"y\": 1.739966300419244, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": -2.238979591836735, \"y\": 1.654897959183673, \"z\": 4.0752499579201285}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.238979591836735, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -3.868963981296847}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.238979591836735, \"y\": 1.896194145156179, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": -3.6018367346938773}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -3.5516926207380743}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -3.5960109220398273}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -3.5516926207380743}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": -1.7213297629589528}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.3446738921774406, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986084, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -1.4632450125373784}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": -2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.3446738921774415, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.9307686943986102, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 1.7213297629589537}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": -2.238979591836735, \"y\": 2.039191642628116, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": -2.238979591836735, \"y\": 1.8961941451561808, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": 3.796530612244897}, {\"x\": -2.238979591836735, \"y\": 1.8495918367346933, \"z\": 3.8689639812968473}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -3.5516926207380743}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -3.5960109220398273}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -3.5516926207380743}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.383706571651627, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -1.4632450125373784}, {\"x\": -2.383706571651627, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -1.4632450125373784}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -1.4632450125373784}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": -1.5838294508677992}, {\"x\": -2.383706571651627, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": 1.4602040816326527}, {\"x\": -2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": 1.4602040816326527}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 1.5838294508678006}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 3.3648610552102163}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 3.3648610552102163}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": -2.238979591836735, \"y\": 2.1954708055841623, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": -2.238979591836735, \"y\": 2.0442857142857136, \"z\": 3.5960109220398273}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -3.364861055210217}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -3.1799433350254813}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.433673469387755, \"y\": 2.4099799128961408, \"z\": -1.4602040816326531}, {\"x\": -2.383706571651627, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": 2.4099799128961408, \"z\": -1.4602040816326531}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": -1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": -2.383706571651627, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.4099799128961408, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.433673469387755, \"y\": 2.409979912896138, \"z\": 1.4602040816326527}, {\"x\": -2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.409979912896138, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.3837065716516275, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 1.5336588298838567}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 3.3648610552102163}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": -2.238979591836735, \"y\": 2.3940297843629086, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.238979591836735, \"y\": 2.238979591836734, \"z\": 3.3648610552102163}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": -3.017755102040816}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -3.1799433350254813}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": -1.5377059421436692}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 1.5377059421436696}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": 3.017755102040816}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.238979591836735, \"y\": 2.433673469387754, \"z\": 3.179943335025481}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -3.0229181735722737}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": -2.8230612244897957}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": -3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": -3.017755102040816}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": -1.5794750681935672}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 1.5794750681935676}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": 2.8230612244897957}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": 2.8230612244897957}, {\"x\": -2.249613165931353, \"y\": 2.6283673469387754, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.6283673469387754, \"z\": 3.0229181735722728}, {\"x\": -2.238979591836735, \"y\": 2.634965598753449, \"z\": 3.017755102040816}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -2.8739321799239184}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": -2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": -2.8230612244897957}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.238979591836735, \"y\": 2.839327704472029, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": -1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.238979591836735, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 1.6475487438530667}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.238979591836735, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.238979591836735, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.238979591836735, \"y\": 2.8393277044720273, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": -2.3230380730491356, \"y\": 2.8230612244897957, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 2.8230612244897957, \"z\": 2.8739321799239175}, {\"x\": -2.238979591836735, \"y\": 2.8933666355853207, \"z\": 2.8230612244897957}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -2.7202036930336178}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": -2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": -2.6283673469387754}, {\"x\": -2.3940297843629077, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.3940297843629077, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.36674633592686, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.3940297843629077, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.36674633592686, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.36674633592686, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202664, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": -1.7607217066702483}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 1.7607217066702479}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.3667463359268597, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.3667463359268597, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338875, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338875, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.1485832311202655, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": -2.394029784362908, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.3667463359268597, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338875, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.394029784362908, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338875, \"z\": 2.0442857142857136}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.394029784362908, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.3509404110304475, \"y\": 3.017755102040816, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.017755102040816, \"z\": 2.720203693033617}, {\"x\": -2.238979591836735, \"y\": 3.132777109647341, \"z\": 2.6283673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -2.535805106556983}, {\"x\": -2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.3940297843629077, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.315976965465759, \"y\": 3.2124489795918363, \"z\": -2.433673469387755}, {\"x\": -2.3940297843629077, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": -2.433673469387755}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.36674633592686, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": -2.3940297843629077, \"y\": 3.2124489795918363, \"z\": -2.238979591836735}, {\"x\": -2.36674633592686, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": -2.238979591836735}, {\"x\": -2.36674633592686, \"y\": 3.2124489795918363, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": -1.9221094207050813}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": -2.044285714285714}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 1.9221094207050813}, {\"x\": -2.3667463359268597, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": -2.394029784362908, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.3667463359268597, \"y\": 3.2124489795918363, \"z\": 2.0442857142857136}, {\"x\": -2.394029784362908, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.238979591836735, \"y\": 3.3150412079180196, \"z\": 2.0442857142857136}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": 2.433673469387754}, {\"x\": -2.394029784362908, \"y\": 3.2124489795918363, \"z\": 2.238979591836734}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 3.3648610552102163, \"z\": 2.238979591836734}, {\"x\": -2.31597696546576, \"y\": 3.2124489795918363, \"z\": 2.433673469387754}, {\"x\": -2.238979591836735, \"y\": 3.2124489795918363, \"z\": 2.5358051065569827}, {\"x\": -2.238979591836735, \"y\": 3.3020374325490103, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.5218638123950905, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.5218638123950905, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.5218638123950905, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.1024686960752477, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": -2.433673469387755, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": -2.5317413995345155, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -3.166726807433889, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.0574700229616782, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.5317413995345155, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.057470022961678, \"z\": 1.8495918367346933}, {\"x\": -2.5317413995345146, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.5317413995345146, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.5317413995345146, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -3.057470022961678, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.057470022961678, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.1667268074338883, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.521863812395091, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.521863812395091, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.5218638123950905, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.5218638123950905, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.5218638123950905, \"y\": -3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": -2.5317413995345155, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.5317413995345155, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.5317413995345155, \"y\": -3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.5317413995345146, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -2.8401155621473837, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": -2.5317413995345146, \"y\": -3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.521863812395091, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": 2.6283673469387754}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": -2.521863812395091, \"y\": -3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -2.947355348469026, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": 2.8230612244897957}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": -2.565518955089131, \"y\": -2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -2.742519341842537, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -3.1024686960752477}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.443119458785765, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.443119458785765, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.443119458785765, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.443119458785766, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.443119458785766, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": 3.017755102040816}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.561204122915182, \"y\": -2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -2.5218638123950905, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -3.3020374325490103}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -3.1024686960752477}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": -1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": -2.409979912896139, \"z\": -1.4602040816326531}, {\"x\": -2.443119458785765, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.409979912896139, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.443119458785765, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.409979912896139, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.443119458785766, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.433673469387755, \"y\": -2.4099799128961363, \"z\": 1.4602040816326527}, {\"x\": -2.443119458785766, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.443119458785766, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.4099799128961363, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.433673469387755, \"z\": 3.102468696075248}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": -2.540579012497635, \"y\": -2.433673469387755, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.5714389526432924, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -3.551692620738074}, {\"x\": -2.5714389526432924, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.346660614074825}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.5714389526432924, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -3.3020374325490103}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.0607034251405922, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -1.4632450125373784}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": -2.0607034251405922, \"z\": -1.4602040816326531}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": -2.060703425140592, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.060703425140592, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 1.435205409316331}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.433673469387755, \"y\": -2.060703425140592, \"z\": 1.4602040816326527}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 1.463245012537378}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": 3.4071428571428566}, {\"x\": -2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.238979591836735, \"z\": 3.3020374325490103}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": -2.535805106556983, \"y\": -2.238979591836735, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -2.1419637359440973, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 3.5516926207380717}, {\"x\": -2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.5041107551044033, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -3.867956716165127}, {\"x\": -2.5041107551044033, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": -2.5041107551044033, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -1.88565141771728, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -2.004476266308055, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -3.551692620738074}, {\"x\": -2.5714389526432924, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -3.551692620738074}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.004476266308055, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -2.004476266308055, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.5714389526432924, \"y\": -2.044285714285714, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.346660614074825}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -1.4632450125373784}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -1.5961613478166194}, {\"x\": -2.6165303585677964, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": -1.4632450125373784}, {\"x\": -2.6165303585677964, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -2.6165303585677964, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.6165303585677964, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.6165303585677973, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -2.6165303585677973, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 1.463245012537378}, {\"x\": -2.4384991725727203, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": -2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.044285714285714, \"z\": 3.5516926207380717}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.571438952643293, \"y\": -2.044285714285714, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": -2.433673469387755, \"y\": -1.885651417717281, \"z\": 3.796530612244897}, {\"x\": -2.504110755104405, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -1.885651417717281, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -2.0044762663080538, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -1.885651417717281, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.885651417717281, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.504110755104405, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": -2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.5041107551044033, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -1.752776522608419, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -3.867956716165127}, {\"x\": -2.5041107551044033, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.5041107551044033, \"y\": -1.8495918367346937, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": -2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -1.5961613478166194}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6165303585677964, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": -1.5961613478166194}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": -1.80455837145364, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6165303585677964, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.6165303585677973, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -2.6165303585677973, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 1.5961613478166203}, {\"x\": -2.6165303585677973, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.8045583714536404, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": -2.433673469387755, \"y\": -1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": -2.504110755104405, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.7527765226084187, \"z\": 3.9912244897959184}, {\"x\": -2.5981580851889023, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.433673469387755, \"y\": -1.7527765226084187, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": -2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.8495918367346937, \"z\": 3.8679567161651303}, {\"x\": -2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.504110755104405, \"y\": -1.8495918367346937, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -1.7527765226084187, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.5981580851889023, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -4.10317960079415}, {\"x\": -2.5981580851889063, \"y\": -1.6548979591836734, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.7503592217755104}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -2.443119458785765}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -2.443119458785765}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436692, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": -1.9190280802005288}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 1.9190280802005288}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": -2.433673469387755, \"y\": -1.607050422298261, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 2.443119458785766}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.46385547795929, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": -2.5981580851889023, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633094, \"z\": 3.9912244897959184}, {\"x\": -2.5981580851889023, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633094, \"z\": 3.9912244897959184}, {\"x\": -2.5981580851889023, \"y\": -1.6548979591836734, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.433673469387755, \"y\": -1.6548979591836734, \"z\": 4.103179600794151}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 4.169139467370989}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.6097168055155815, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.6283673469387754, \"y\": -1.3324187235408926, \"z\": -3.991224489795918}, {\"x\": -2.6097168055155815, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -4.169139467370988}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.6097168055155815, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.3324187235408926, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.9549440234958846}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.7503592217755104}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": -2.443119458785765}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 2.443119458785766}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.5706826686606448, \"y\": -1.4602040816326531, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": -1.389018401717483, \"z\": 2.6283673469387754}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 2.8706723300761823}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": -2.6283673469387754, \"y\": -1.332418723540898, \"z\": 3.9912244897959184}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.332418723540898, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.332418723540898, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.433673469387755, \"y\": -1.4602040816326531, \"z\": 4.169139467370989}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.6097168055155815, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -4.138158775582057}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.9549440234958846}, {\"x\": -2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.9549440234958846}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.6097168055155815, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -2.6097168055155815, \"y\": -1.2655102040816328, \"z\": -3.991224489795918}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.5992134681931662, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": -2.5992134681931662, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.5992134681931662, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": -3.2124489795918363}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": -2.8706723300761823}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 2.8706723300761823}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": 3.017755102040816}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 3.154043496011993}, {\"x\": -2.433673469387755, \"y\": -1.172350717183893, \"z\": 3.017755102040816}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.5237133976702335, \"y\": -1.2655102040816328, \"z\": 3.017755102040816}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -2.611738517888486, \"y\": -1.2655102040816328, \"z\": 3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": -2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.5063087935854873, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.5063087935854873, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.2655102040816328, \"z\": 4.138158775582058}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.6097168055155784, \"y\": -1.2655102040816328, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725753, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725753, \"z\": -3.991224489795918}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725753, \"z\": -3.991224489795918}, {\"x\": -2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.5063087935854886, \"y\": -1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.5992134681931662, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.5992134681931662, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.5992134681931662, \"y\": -1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 3.154043496011993}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": 3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.433673469387755, \"y\": -1.018615701785329, \"z\": 3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": -1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": -1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.599213468193166, \"y\": -1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.5063087935854873, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.5063087935854873, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.593486562062995, \"y\": -1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.5063087935854873, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.5063087935854873, \"y\": -1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.433673469387755, \"y\": -0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523188, \"z\": -3.6018367346938773}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523188, \"z\": -3.6018367346938773}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523188, \"z\": -3.6018367346938773}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523196, \"z\": 3.6018367346938778}, {\"x\": -2.447260185103216, \"y\": -0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": -0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523196, \"z\": 3.6018367346938778}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.5013998120283287, \"y\": -0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -0.7162227893523196, \"z\": 3.6018367346938778}, {\"x\": -2.4979755821849885, \"y\": -0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": -0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.433673469387755, \"y\": -0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523179, \"z\": -3.6018367346938773}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558242, \"z\": -3.7965306122448976}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523179, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523179, \"z\": -3.6018367346938773}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523188, \"z\": 3.6018367346938778}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.848313748851746, \"z\": 3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523188, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 0.7162227893523188, \"z\": 3.6018367346938778}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.7219553232558233, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725749, \"z\": -3.991224489795918}, {\"x\": -2.506308793585488, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.506308793585488, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725749, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.943277028603222}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.506308793585488, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.506308793585488, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": -3.7965306122448976}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.5992134681931662, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": -3.6018367346938773}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.5992134681931662, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.5992134681931662, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": -3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": -3.3811538099429006}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": -3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": 3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.0186157017853281, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.3811538099428997}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.447260185103216, \"y\": 0.8761224489795918, \"z\": 3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.5013998120283287, \"y\": 0.8761224489795918, \"z\": 3.6018367346938778}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.8761224489795918, \"z\": 3.9432770286032213}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.5063087935854873, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.5063087935854873, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.4979755821849885, \"y\": 0.8761224489795918, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 0.9338379607725766, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.5063087935854873, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.506308793585488, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -4.060015200176018}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.954944023495883}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.506308793585488, \"y\": 1.070816326530612, \"z\": -3.991224489795918}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.5992134681931662, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.1331206635656592, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.1331206635656592, \"z\": -3.6018367346938773}, {\"x\": -2.5992134681931662, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.1331206635656592, \"z\": -3.6018367346938773}, {\"x\": -2.5992134681931662, \"y\": 1.070816326530612, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": -3.4071428571428566}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": -3.017755102040816}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": -3.154043496011992}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": -3.017755102040816}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -2.870672330076183}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": 3.017755102040816}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 2.8706723300761823}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.1723507171838925, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 3.154043496011991}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -2.4696106414135905, \"y\": 1.070816326530612, \"z\": 3.2124489795918363}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": -2.5539263102654877, \"y\": 1.070816326530612, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": -2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": -2.599213468193166, \"y\": 1.070816326530612, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -2.593486562062995, \"y\": 1.070816326530612, \"z\": 3.796530612244897}, {\"x\": -2.5063087935854873, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.5063087935854873, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.070816326530612, \"z\": 4.060015200176016}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.5063087935854873, \"y\": 1.070816326530612, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -4.169139467370987}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -4.138158775582058}, {\"x\": -2.60971680551558, \"y\": 1.2655102040816324, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.954944023495883}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": -2.870672330076183}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952636, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -2.443119458785766}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 2.443119458785768}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.3890184017174834, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 2.8706723300761823}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 2.8706723300761823}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 1.2924468513952627, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.523713397670233, \"y\": 1.2655102040816324, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6117385178884858, \"y\": 1.2655102040816324, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": -2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": -2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": -2.6097168055155793, \"y\": 1.2655102040816324, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.433673469387755, \"y\": 1.2655102040816324, \"z\": 4.138158775582058}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 4.169139467370988}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -4.169139467370987}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082226}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": -2.443119458785766}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.8879606295350282}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 1.6070504222982613, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 1.5377059421436696, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 2.443119458785768}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 2.443119458785768}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 1.4638554779592896, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.570682668660644, \"y\": 1.4602040816326527, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": -2.5981580851889023, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": -2.5981580851889023, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.433673469387755, \"y\": 1.4602040816326527, \"z\": 4.169139467370988}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -4.10317960079415}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084195, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082226}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": -2.5041107551044046, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082226}, {\"x\": -2.5041107551044046, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.5041107551044046, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.598158085188906, \"y\": 1.654897959183673, \"z\": -3.991224489795918}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084195, \"z\": -3.991224489795918}, {\"x\": -2.5041107551044046, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": -1.9190280802005297}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536395, \"z\": -1.6548979591836734}, {\"x\": -2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119248}, {\"x\": -2.6165303585677973, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.6165303585677973, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 1.8045583714536413, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.8879606295350282}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 1.6884840828722911, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 1.9190280802005297}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.504110755104405, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.5981580851889023, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.5981580851889023, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": -2.504110755104405, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.504110755104405, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.5981580851889023, \"y\": 1.654897959183673, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.654897959183673, \"z\": 4.103179600794151}, {\"x\": -2.433673469387755, \"y\": 1.7527765226084178, \"z\": 3.9912244897959184}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -3.867956716165129}, {\"x\": -2.5041107551044046, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.5041107551044046, \"y\": 1.8495918367346933, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": -3.6018367346938773}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": -3.7965306122448976}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -3.5516926207380743}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": -3.6018367346938773}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -1.4632450125373784}, {\"x\": -2.4384991725727208, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": -1.59616134781662}, {\"x\": -2.4384991725727208, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -2.4384991725727208, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": -2.616530358567797, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": -2.4384991725727208, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.6165303585677973, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119248}, {\"x\": -2.438499172572721, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -2.6165303585677973, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.6165303585677973, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -2.438499172572721, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 1.5961613478166203}, {\"x\": -2.6165303585677973, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": -2.504110755104405, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.6342009897818617}, {\"x\": -2.504110755104405, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 2.004476266308054, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": -2.504110755104405, \"y\": 1.8495918367346933, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 1.8495918367346933, \"z\": 3.8679567161651303}, {\"x\": -2.433673469387755, \"y\": 1.8856514177172805, \"z\": 3.796530612244897}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -3.5516926207380743}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": -3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": -3.4071428571428566}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": -1.4632450125373784}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": -1.4602040816326531}, {\"x\": -2.4384991725727208, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.4384991725727208, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.438499172572721, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": 1.4602040816326527}, {\"x\": -2.438499172572721, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.438499172572721, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.060703425140593, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 1.4632450125373788}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": -2.5714389526432937, \"y\": 2.0442857142857136, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.0442857142857136, \"z\": 3.5516926207380735}, {\"x\": -2.433673469387755, \"y\": 2.141963735944098, \"z\": 3.4071428571428566}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -3.302037432549011}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": -3.2124489795918363}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": -2.433673469387755, \"y\": 2.4099799128961408, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.4431194587857648, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.4431194587857648, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": 2.4099799128961408, \"z\": -1.4602040816326531}, {\"x\": -2.4431194587857648, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": -1.4352054093163318}, {\"x\": -2.433673469387755, \"y\": 2.409979912896138, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.4431194587857656, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.409979912896138, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 1.435205409316331}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.433673469387755, \"y\": 2.409979912896138, \"z\": 1.4602040816326527}, {\"x\": -2.4431194587857656, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": -2.5358051065569844, \"y\": 2.238979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.238979591836734, \"z\": 3.302037432549012}, {\"x\": -2.433673469387755, \"y\": 2.315976965465759, \"z\": 3.2124489795918363}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -3.102468696075249}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": -3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": -3.017755102040816}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": -2.4431194587857648, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": -1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.4431194587857648, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.4431194587857656, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.4431194587857656, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.4431194587857656, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 1.4638554779592896}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.561204122915182, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.561204122915182, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.561204122915182, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.5405790124976364, \"y\": 2.433673469387754, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.433673469387754, \"z\": 3.102468696075249}, {\"x\": -2.433673469387755, \"y\": 2.5218638123950896, \"z\": 3.017755102040816}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -2.9244500586297484}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.5612041229151816, \"y\": 2.6283673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": -2.8230612244897957}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.561204122915182}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": -1.5395263404348958}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 1.5395263404348967}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.561204122915182, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.561204122915182, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": -2.561204122915182, \"y\": 2.6283673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.6283673469387754, \"z\": 2.9244500586297484}, {\"x\": -2.433673469387755, \"y\": 2.742519341842536, \"z\": 2.8230612244897957}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -2.747182282879058}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.561204122915182}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.52186381239509, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.561204122915182}, {\"x\": -2.52186381239509, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.52186381239509, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": -2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": -2.6283673469387754}, {\"x\": -2.52186381239509, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115544}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.5317413995345155, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.5317413995345155, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": -1.64386419870223}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 1.6438641987022304}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 2.8401155621473846, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": -2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": -2.521863812395091, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.521863812395091, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.521863812395091, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": -2.565518955089131, \"y\": 2.8230612244897957, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 2.8230612244897957, \"z\": 2.7471822828790575}, {\"x\": -2.433673469387755, \"y\": 2.947355348469027, \"z\": 2.6283673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -2.540579012497635}, {\"x\": -2.52186381239509, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.52186381239509, \"y\": 3.017755102040816, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": -2.433673469387755}, {\"x\": -2.433673469387755, \"y\": 3.17994333502548, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": -2.5317413995345155, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115544}, {\"x\": -2.5317413995345155, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338883, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": -2.5317413995345155, \"y\": 3.017755102040816, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": -1.811113761455545}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": -1.8495918367346937}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 1.8111137614555455}, {\"x\": -2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": -2.531741399534514, \"y\": 3.017755102040816, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338875, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.0574700229616774, \"z\": 1.8495918367346933}, {\"x\": -2.433673469387755, \"y\": 3.1667268074338875, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.433673469387755, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": -2.521863812395091, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.521863812395091, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 3.179943335025481, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": -2.521863812395091, \"y\": 3.017755102040816, \"z\": 2.433673469387754}, {\"x\": -2.433673469387755, \"y\": 3.017755102040816, \"z\": 2.540579012497636}, {\"x\": -2.433673469387755, \"y\": 3.102468696075248, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": -2.238979591836735}, {\"x\": -2.6714756269545066, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": -2.6714756269545066, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": -2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.04322951238393, \"z\": 2.0442857142857136}, {\"x\": -2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -3.0229181735722737, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.742519341842537, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": -2.742519341842537, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.742519341842537, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6714756269545066, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.6349655987534484, \"y\": -3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.6714756269545066, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": -1.9609249413115548}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.6714756269545066, \"y\": -3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": -2.79851121867481, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.833079542016265, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.79851121867481, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -2.8330795420162644, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -2.9804124289068823, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.671475626954507, \"y\": -3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": -2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.634965598753449, \"y\": -3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.9244500586297493, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.742519341842537, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -2.5612041229151816}, {\"x\": -2.742519341842537, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.742519341842537, \"y\": -2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.79851121867481, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": -2.79851121867481, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": -2.79851121867481, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -2.79851121867481, \"y\": -2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.750359221775511, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -2.750359221775511, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.7503592217755126, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": -2.7503592217755126, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": -2.798511218674803, \"y\": -2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": -2.742519341842538, \"y\": -2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.7655653965786007, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": -2.750359221775511, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.750359221775511, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.5706826686606448, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.7503592217755126, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.7503592217755126, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.7503592217755126, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": 2.6283673469387754}, {\"x\": -2.7655653965786007, \"y\": -2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -2.947355348469026}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.7219217830722733, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -2.7219217830722733, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": -1.389018401717483}, {\"x\": -2.7219217830722733, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": -2.721921783072274, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": -2.721921783072274, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": -2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 1.3890184017174834}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.433673469387755, \"z\": 2.947355348469025}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": -2.747182282879058, \"y\": -2.433673469387755, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -2.3509404110304475, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.706551666617378, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.346660614074825}, {\"x\": -2.706551666617378, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": -2.706551666617378, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -3.1327771096473422}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.703777141375253, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -2.7219217830722733, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": -1.3274996967782569}, {\"x\": -2.703777141375253, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -2.703777141375253, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.7219217830722733, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.703777141375253, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.1418827702422698}, {\"x\": -2.721921783072274, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": -2.7037771413752534, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -2.721921783072274, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.1418827702422698}, {\"x\": -2.721921783072274, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -2.7037771413752534, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 1.3274996967782577}, {\"x\": -2.721921783072274, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.238979591836735, \"z\": 3.132777109647341}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": -2.7202036930336178, \"y\": -2.238979591836735, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -2.150284850635489, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.346660614074825}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447378, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -3.346660614074825}, {\"x\": -2.706551666617378, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.706551666617378, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.706551666617378, \"y\": -2.044285714285714, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": -2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -2.703777141375253, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": -1.3287840802874071}, {\"x\": -2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": -2.703777141375253, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": -2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": -2.7037771413752534, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.1418827702422698}, {\"x\": -2.79729279618787, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -2.7037771413752534, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": -2.7037771413752534, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -2.79729279618787, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 1.3287840802874076}, {\"x\": -2.7037771413752534, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -2.044285714285714, \"z\": 3.3466606140748247}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -2.7065516666173774, \"y\": -2.044285714285714, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.8635323261518302, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.7418226851197924, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -3.6342009897818603}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.727699276494857, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": -3.6018367346938773}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.727699276494857, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -2.727699276494857, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": -3.4071428571428566}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": -3.017755102040816}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": -3.2124489795918363}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": -3.017755102040816}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.071642000670565}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542563, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542563, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542563, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": -1.4495557837119244}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.797292796187869, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -2.79729279618787, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -2.79729279618787, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 1.4495557837119248}, {\"x\": -2.79729279618787, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.6661991406828585, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.7829886192710154, \"y\": -1.8495918367346937, \"z\": 3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -2.7131724226785683, \"y\": -1.8495918367346937, \"z\": 3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.727699276494856, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.8495918367346937, \"z\": 3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.727699276494856, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -2.640410684326539, \"y\": -1.8495918367346937, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633151, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -3.955437311208223}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.715252452998222, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.683897112057831, \"y\": -1.6548979591836734, \"z\": -3.7965306122448976}, {\"x\": -2.727699276494857, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -2.715252452998222, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -2.715252452998222, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -2.727699276494857, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -2.727699276494857, \"y\": -1.6548979591836734, \"z\": -3.6018367346938773}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": -3.4071428571428566}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": -3.2124489795918363}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": -3.017755102040816}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.6499629538810727, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.7503592217755104}, {\"x\": -2.6499629538810727, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.7503592217755104}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.7503592217755104}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348958, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.071642000670565}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": -1.8879606295350273}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 1.8879606295350273}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.8167999278225597, \"y\": -1.6548979591836734, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": -1.5794750681935672, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.6283673469387754, \"y\": -1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.6499629538810723, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": -2.821474484034709, \"y\": -1.6548979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.6499629538810723, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -2.6499629538810723, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -2.804231895872637, \"y\": -1.6548979591836734, \"z\": 3.017755102040816}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": -1.6548979591836734, \"z\": 3.2124489795918363}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": -1.6548979591836734, \"z\": 3.4071428571428566}, {\"x\": -2.727699276494856, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -2.727699276494856, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -2.7351561436487692, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -2.727699276494856, \"y\": -1.6548979591836734, \"z\": 3.6018367346938778}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.7351561436487692, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -2.7351561436487692, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.715252452998223, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633094, \"z\": 3.9912244897959184}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.6548979591836734, \"z\": 3.955437311208218}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633094, \"z\": 3.9912244897959184}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.715252452998223, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -2.6838971120578297, \"y\": -1.6548979591836734, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.5901092255633094, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -4.042838529184806}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.3324187235408926, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": -1.3324187235408926, \"z\": -3.991224489795918}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.9549440234958846}, {\"x\": -2.6283673469387754, \"y\": -1.3324187235408926, \"z\": -3.991224489795918}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": -3.991224489795918}, {\"x\": -2.715252452998222, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.715252452998222, \"y\": -1.4602040816326531, \"z\": -3.7965306122448976}, {\"x\": -2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -2.6847084755086303, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -2.7351561436487684, \"y\": -1.4602040816326531, \"z\": -3.6018367346938773}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -2.6847084755086303, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -2.6847084755086303, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": -3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": -3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848603, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.6499629538810727, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": -3.017755102040816}, {\"x\": -2.6499629538810727, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": -3.017755102040816}, {\"x\": -2.6499629538810727, \"y\": -1.4602040816326531, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": -2.7503592217755104}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 2.7503592217755104}, {\"x\": -2.6499629538810723, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.6499629538810723, \"y\": -1.4602040816326531, \"z\": 2.8230612244897957}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": -1.4602040816326531, \"z\": 3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": -1.3784486721727758, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": -1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": -1.4602040816326531, \"z\": 3.2124489795918363}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.7346206939334308, \"y\": -1.4602040816326531, \"z\": 3.4071428571428566}, {\"x\": -2.7351561436487692, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.7351561436487692, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -2.68470847550863, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -2.7351561436487692, \"y\": -1.4602040816326531, \"z\": 3.6018367346938778}, {\"x\": -2.715252452998223, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -2.68470847550863, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -2.68470847550863, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -2.715252452998223, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -2.675967697816729, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.332418723540898, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": -2.675967697816729, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.675967697816729, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -2.715252452998223, \"y\": -1.4602040816326531, \"z\": 3.796530612244897}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.6579385766336405, \"y\": -1.4602040816326531, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.4602040816326531, \"z\": 4.042838529184806}, {\"x\": -2.6283673469387754, \"y\": -1.332418723540898, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.9549440234958846}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6847084755086303, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": -2.6759676978167297, \"y\": -1.2655102040816328, \"z\": -3.7965306122448976}, {\"x\": -2.6847084755086303, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": -1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": -2.6847084755086303, \"y\": -1.2655102040816328, \"z\": -3.6018367346938773}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656597, \"z\": -3.6018367346938773}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": -3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.268050175572222}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": -2.68470847550863, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": -2.6619233613533577, \"y\": -1.2655102040816328, \"z\": 3.4071428571428566}, {\"x\": -2.68470847550863, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": -1.2007760376339234, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": -2.675967697816729, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": -2.68470847550863, \"y\": -1.2655102040816328, \"z\": 3.6018367346938778}, {\"x\": -2.675967697816729, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.1331206635656605, \"z\": 3.6018367346938778}, {\"x\": -2.675967697816729, \"y\": -1.2655102040816328, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": -1.2655102040816328, \"z\": 3.9549440234958784}, {\"x\": -2.6283673469387754, \"y\": -1.1491112725402783, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.954944023495883}, {\"x\": -2.6283673469387754, \"y\": 1.1331206635656592, \"z\": -3.6018367346938773}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540277, \"z\": -3.7965306122448976}, {\"x\": -2.6847084755086303, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.1331206635656592, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": -2.6847084755086303, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.1331206635656592, \"z\": -3.6018367346938773}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.6847084755086303, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": -2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.200776037633923, \"z\": 3.4071428571428566}, {\"x\": -2.68470847550863, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": -2.68470847550863, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.13312066356566, \"z\": 3.6018367346938778}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.68470847550863, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.149111272540278, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.954944023495883}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408944, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.954944023495883}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": -3.7965306122448976}, {\"x\": -2.6847084755086303, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -2.6847084755086303, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -2.6847084755086303, \"y\": 1.2655102040816324, \"z\": -3.6018367346938773}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.73462069393343, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": -3.268050175572224}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.73462069393343, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": -3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6920119836726912, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": -3.017755102040816}, {\"x\": -2.649962953881072, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -2.6920119836726912, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.649962953881072, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.6499629538810723, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.6499629538810723, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.440264013426905, \"z\": 2.8230612244897957}, {\"x\": -2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -2.6499629538810723, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.378448672172775, \"z\": 3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2913378290848607, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.268050175572222}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -2.7346206939334303, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.6619233613533577, \"y\": 1.2655102040816324, \"z\": 3.4071428571428566}, {\"x\": -2.68470847550863, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -2.7346206939334303, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -2.7346206939334303, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -2.68470847550863, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -2.735156143648769, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -2.68470847550863, \"y\": 1.2655102040816324, \"z\": 3.6018367346938778}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.735156143648769, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -2.735156143648769, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.2655102040816324, \"z\": 3.95494402349588}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -2.6759676978167293, \"y\": 1.2655102040816324, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.3324187235408989, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -4.042838529184806}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": -2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082226}, {\"x\": -2.6283673469387754, \"y\": 1.590109225563313, \"z\": -3.991224489795918}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.6579385766336405, \"y\": 1.4602040816326527, \"z\": -3.991224489795918}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": -3.7965306122448976}, {\"x\": -2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -2.7351561436487684, \"y\": 1.4602040816326527, \"z\": -3.6018367346938773}, {\"x\": -2.73462069393343, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -2.73462069393343, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -2.73462069393343, \"y\": 1.4602040816326527, \"z\": -3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": -3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -2.6920119836726912, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.6920119836726912, \"y\": 1.4602040816326527, \"z\": -3.017755102040816}, {\"x\": -2.649962953881072, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.649962953881072, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": -2.7503592217755126}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -2.649962953881072, \"y\": 1.4602040816326527, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.816799927822557, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": -2.816799927822557, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.8167999278225575, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.8879606295350282}, {\"x\": -2.8167999278225575, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": -2.8167999278225575, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.6192610142681474, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.5794750681935676, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.5395263404348967, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": -2.6499629538810723, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 2.750359221775512}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 1.4939631397489892, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": -2.6499629538810723, \"y\": 1.4602040816326527, \"z\": 2.8230612244897957}, {\"x\": -2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.692011983672691, \"y\": 1.4602040816326527, \"z\": 3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -2.7197151360641176, \"y\": 1.4602040816326527, \"z\": 3.2124489795918363}, {\"x\": -2.7346206939334303, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -2.7346206939334303, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -2.7346206939334303, \"y\": 1.4602040816326527, \"z\": 3.4071428571428566}, {\"x\": -2.735156143648769, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -2.735156143648769, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -2.735156143648769, \"y\": 1.4602040816326527, \"z\": 3.6018367346938778}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.7152524529982225, \"y\": 1.4602040816326527, \"z\": 3.796530612244897}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.6579385766336396, \"y\": 1.4602040816326527, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.4602040816326527, \"z\": 4.042838529184804}, {\"x\": -2.6283673469387754, \"y\": 1.5901092255633076, \"z\": 3.9912244897959184}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -3.9554373112082226}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": -3.7965306122448976}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.6838971120578305, \"y\": 1.654897959183673, \"z\": -3.7965306122448976}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": -3.6018367346938773}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": -3.4071428571428566}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.103054647596932}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": -3.2124489795918363}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": -2.816799927822557, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.816799927822557, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": -1.887960629535029}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.816799927822557, \"y\": 1.654897959183673, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": -1.4602040816326531}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119248}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119248}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 1.842091350760275, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 1.7382703246295401, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.8879606295350282}, {\"x\": -2.8167999278225575, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 1.8879606295350282}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 1.666199140682858, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -2.8167999278225575, \"y\": 1.654897959183673, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.8214744840347086, \"y\": 1.654897959183673, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.8042318958726367, \"y\": 1.654897959183673, \"z\": 3.017755102040816}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -2.7837362240728885, \"y\": 1.654897959183673, \"z\": 3.2124489795918363}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.7590433150549085, \"y\": 1.654897959183673, \"z\": 3.4071428571428566}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.6342009897818617}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.6342009897818617}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.7276992764948567, \"y\": 1.654897959183673, \"z\": 3.6018367346938778}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.68389711205783, \"y\": 1.654897959183673, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.654897959183673, \"z\": 3.955437311208218}, {\"x\": -2.6283673469387754, \"y\": 1.741822685119792, \"z\": 3.796530612244897}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -3.6342009897818617}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": -3.6018367346938773}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518302, \"z\": -3.6018367346938773}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": -3.4071428571428566}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.7131724226785683, \"y\": 1.8495918367346933, \"z\": -3.4071428571428566}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.103054647596932}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.103054647596932}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.703777141375253, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": -1.4495557837119253}, {\"x\": -2.703777141375253, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -2.703777141375253, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422694}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": -2.703777141375253, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": -2.7037771413752534, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -2.7037771413752534, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 1.4495557837119248}, {\"x\": -2.79729279618787, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -2.782988619271015, \"y\": 1.8495918367346933, \"z\": 3.2124489795918363}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": -2.713172422678568, \"y\": 1.8495918367346933, \"z\": 3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.9852629033447382, \"z\": 3.4071428571428566}, {\"x\": -2.640410684326539, \"y\": 1.8495918367346933, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 1.8495918367346933, \"z\": 3.6342009897818617}, {\"x\": -2.6283673469387754, \"y\": 1.8635323261518293, \"z\": 3.6018367346938778}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -3.3466606140748265}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": -3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": -3.2124489795918363}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": -2.721921783072273, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -2.703777141375253, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": -1.3287840802874071}, {\"x\": -2.721921783072273, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -2.721921783072273, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422694}, {\"x\": -2.703777141375253, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422694}, {\"x\": -2.721921783072273, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -2.7037771413752534, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": -2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -2.7037771413752534, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -2.7037771413752534, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 1.3287840802874076}, {\"x\": -2.7037771413752534, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": -2.7202036930336178, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.7202036930336178, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.7202036930336178, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": -2.706551666617378, \"y\": 2.0442857142857136, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.0442857142857136, \"z\": 3.3466606140748265}, {\"x\": -2.6283673469387754, \"y\": 2.1502848506354892, \"z\": 3.2124489795918363}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -3.1327771096473427}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": -2.720203693033618, \"y\": 2.238979591836734, \"z\": -3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": -3.017755102040816}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -2.721921783072273, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": -1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.721921783072273, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": -2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -2.7219217830722737, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 1.3274996967782569}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.7202036930336178, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.7202036930336178, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": -2.7202036930336178, \"y\": 2.238979591836734, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.238979591836734, \"z\": 3.1327771096473427}, {\"x\": -2.6283673469387754, \"y\": 2.3509404110304484, \"z\": 3.017755102040816}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -2.9473553484690274}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": -2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": -2.8230612244897957}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.5655189550891313}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": -1.4602040816326531}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": -1.3890184017174825}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.7503592217755126, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 1.3890184017174825}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.6283673469387754, \"y\": 2.570682668660644, \"z\": 1.4602040816326527}, {\"x\": -2.7503592217755126, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": -2.747182282879059, \"y\": 2.433673469387754, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.433673469387754, \"z\": 2.947355348469027}, {\"x\": -2.6283673469387754, \"y\": 2.5655189550891313, \"z\": 2.8230612244897957}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -2.7655653965786007}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.5655189550891313}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.5655189550891313}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.561204122915182}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.561204122915182}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": -2.6283673469387754}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": -2.79851121867481, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": -1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": -2.79851121867481, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.750359221775511, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": -2.7503592217755126, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.7503592217755126, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.7503592217755126, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.7503592217755126, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 1.4939631397489892}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": -2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": -2.7655653965786007, \"y\": 2.6283673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.6283673469387754, \"z\": 2.7655653965786}, {\"x\": -2.6283673469387754, \"y\": 2.7655653965786, \"z\": 2.6283673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -2.561204122915182}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.6349655987534484, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.6349655987534484, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.6349655987534484, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.742519341842537, \"y\": 2.8230612244897957, \"z\": -2.433673469387755}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": -2.433673469387755}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6349655987534484, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115544}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115544}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -2.79851121867481, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.79851121867481, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -2.79851121867481, \"y\": 2.8230612244897957, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": -1.6458262767837986}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162653, \"z\": -1.6548979591836734}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 1.645826276783799}, {\"x\": -2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": -2.798511218674803, \"y\": 2.8230612244897957, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.6283673469387754, \"y\": 2.8330795420162636, \"z\": 1.654897959183673}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 2.980412428906882, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": -2.742519341842538, \"y\": 2.8230612244897957, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 2.8230612244897957, \"z\": 2.561204122915181}, {\"x\": -2.6283673469387754, \"y\": 2.9244500586297484, \"z\": 2.433673469387754}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -2.249613165931353}, {\"x\": -2.6349655987534484, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": -2.6349655987534484, \"y\": 3.017755102040816, \"z\": -2.238979591836735}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": -2.238979591836735}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": -1.9609249413115544}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": -2.044285714285714}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 1.9609249413115553}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": -2.671475626954507, \"y\": 3.017755102040816, \"z\": 2.0442857142857136}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 3.0432295123839292, \"z\": 2.0442857142857136}, {\"x\": -2.634965598753449, \"y\": 3.017755102040816, \"z\": 2.238979591836734}, {\"x\": -2.6283673469387754, \"y\": 3.017755102040816, \"z\": 2.249613165931353}, {\"x\": -2.6283673469387754, \"y\": 3.0229181735722728, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -2.8230612244897957, \"y\": -2.911118725674711, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.8933666355853216, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.873932179923919, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.8933666355853216, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.947355348469026, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": -2.947355348469026, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -2.947355348469026, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879058, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.8933666355853207, \"y\": -2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.821474484034709, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": -2.6499629538810727, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.649962953881072, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -2.8933666355853216, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": -2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": -2.8933666355853216, \"y\": -2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -2.747182282879059, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.947355348469026, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -2.565518955089131}, {\"x\": -2.947355348469026, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.947355348469026, \"y\": -2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -2.8706723300761827, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": -2.8706723300761827, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": 2.6283673469387754}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": -3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": -2.947355348469027, \"y\": -2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.5612041229151816, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -2.742519341842537}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": -1.2924468513952627}, {\"x\": -2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -2.8706723300761823, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.3815089061736017, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": -2.8706723300761827, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": -2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": -2.8706723300761827, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -2.8706723300761827, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.381508906173601, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 1.2924468513952627}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.433673469387755, \"z\": 2.742519341842536}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -2.9244500586297484, \"y\": -2.433673469387755, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -2.3230380730491356, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -2.8933666355853207}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": -1.1887389093707674}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.1418827702422698}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 1.188738909370767}, {\"x\": -2.9548434799859145, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.1418827702422698}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.238979591836735, \"z\": 2.8933666355853207}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -2.8739321799239184, \"y\": -2.238979591836735, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -2.0478614777192807, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": -2.8487324211049403, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -2.8487324211049403, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -3.021007134594104}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": -3.017755102040816}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -2.8487324211049403, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -2.8487324211049403, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115544, \"z\": -2.6283673469387754}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": -2.8230612244897957}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115544, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.5317413995345155}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": -1.1418827702422703}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": -3.0035885360978902, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 1.1418827702422698}, {\"x\": -2.882733080516762, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534514}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115548, \"z\": 2.6283673469387754}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115548, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115548, \"z\": 2.6283673469387754}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": -2.044285714285714, \"z\": 2.8230612244897957}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.84873242110494, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": -2.84873242110494, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -2.044285714285714, \"z\": 3.021007134594104}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": -2.8246881103707153, \"y\": -2.044285714285714, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -3.1030546475969327}, {\"x\": -2.8487324211049403, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": -3.017755102040816}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8487324211049403, \"y\": -1.8495918367346937, \"z\": -3.017755102040816}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": -2.8230612244897957}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.5317413995345155}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.5317413995345155}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -2.9804124289068827, \"y\": -1.8495918367346937, \"z\": -2.6283673469387754}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.071642000670565}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.071642000670565}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -1.728675726581662, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.728675726581662, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542563, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542563, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -1.728675726581662, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542563, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.7469286368232955, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": -1.2254034642992662}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594033, \"z\": 0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594033, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -2.9793378197671587, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 1.2254034642992657}, {\"x\": -2.9095523304704836, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.8252647780196942, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -1.7022556703471134, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6563899354841012, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534514}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -2.9804124289068823, \"y\": -1.8495918367346937, \"z\": 2.6283673469387754}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.84873242110494, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": -2.911118725674711, \"y\": -1.8495918367346937, \"z\": 2.8230612244897957}, {\"x\": -2.84873242110494, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.84873242110494, \"y\": -1.8495918367346937, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.8495918367346937, \"z\": 3.103054647596932}, {\"x\": -2.8230612244897957, \"y\": -1.7293108759814761, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.79851121867481}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": -2.6283673469387754}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.840115562147385, \"y\": -1.6548979591836734, \"z\": -2.433673469387755}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": -2.433673469387755}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": -2.071642000670565}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.071642000670562}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": -2.839327704472029, \"y\": -1.6548979591836734, \"z\": 2.238979591836734}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": -2.8401155621473846, \"y\": -1.6548979591836734, \"z\": 2.433673469387754}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.64386419870223, \"z\": 2.433673469387754}, {\"x\": -2.833079542016265, \"y\": -1.6548979591836734, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": -1.6548979591836734, \"z\": 2.7985112186748093}, {\"x\": -2.8230612244897957, \"y\": -1.6458262767837986, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": -2.6283673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": -2.433673469387755}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.6475487438530667, \"z\": 2.238979591836734}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.6438641987022304, \"z\": 2.433673469387754}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.645826276783799, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": -2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.103054647596932}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": -3.017755102040816}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.798511218674803}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.5317413995345146}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": -2.6283673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": -2.0716420006705754}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": -1.2655102040816328}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8252647780196938, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 1.746928636823296, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 1.702255670347114, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 1.6744094922542558, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.0716420006705736}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 1.6563899354841016, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -2.839327704472028, \"y\": 1.654897959183673, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -2.8401155621473837, \"y\": 1.654897959183673, \"z\": 2.433673469387754}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.654897959183673, \"z\": 2.798511218674803}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -2.8330795420162644, \"y\": 1.654897959183673, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": -2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.657792896850136, \"z\": 2.8230612244897957}, {\"x\": -2.84873242110494, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.7293108759814766, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": -2.84873242110494, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.103054647596932}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": -2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -3.103054647596932}, {\"x\": -2.8487324211049394, \"y\": 1.8495918367346933, \"z\": -3.017755102040816}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -2.911118725674711, \"y\": 1.8495918367346933, \"z\": -2.8230612244897957}, {\"x\": -2.9804124289068823, \"y\": 1.8495918367346933, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.5317413995345146}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422694}, {\"x\": -2.8827330805167617, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": -1.2254034642992662}, {\"x\": -2.8827330805167617, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -2.8827330805167617, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -2.8827330805167617, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -2.9793378197671587, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -2.882733080516762, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -2.882733080516762, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 1.2254034642992666}, {\"x\": -2.9095523304704836, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.980412428906882, \"y\": 1.8495918367346933, \"z\": 2.6283673469387754}, {\"x\": -2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -2.9111187256747106, \"y\": 1.8495918367346933, \"z\": 2.8230612244897957}, {\"x\": -2.84873242110494, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.84873242110494, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -2.84873242110494, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 1.8495918367346933, \"z\": 3.103054647596932}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.84873242110494, \"y\": 1.8495918367346933, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -3.0210071345941043}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": -3.017755102040816}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": -3.017755102040816}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422694}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -2.8827330805167617, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": -1.1418827702422694}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -2.8827330805167617, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -2.882733080516762, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -3.0035885360978902, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -2.882733080516762, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 1.1418827702422698}, {\"x\": -2.882733080516762, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.9289463835870624, \"y\": 2.0442857142857136, \"z\": 2.8230612244897957}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -2.8246881103707158, \"y\": 2.0442857142857136, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.0442857142857136, \"z\": 3.021007134594104}, {\"x\": -2.8230612244897957, \"y\": 2.0478614777192803, \"z\": 3.017755102040816}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -2.8933666355853216}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": -2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": -2.8230612244897957}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173603, \"z\": -1.2655102040816328}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": -1.1887389093707665}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": -2.8706723300761814, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 1.188738909370766}, {\"x\": -2.954843479985914, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": -2.8230612244897957, \"y\": 2.381508906173602, \"z\": 1.2655102040816324}, {\"x\": -2.8706723300761814, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -2.8739321799239193, \"y\": 2.238979591836734, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.238979591836734, \"z\": 2.8933666355853207}, {\"x\": -2.8230612244897957, \"y\": 2.323038073049136, \"z\": 2.8230612244897957}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -2.742519341842538}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": -3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.5655189550891313}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": -2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.5655189550891313}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": -2.6283673469387754}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": -1.2924468513952614}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -2.8706723300761805, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -2.8706723300761814, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -2.8706723300761814, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8706723300761814, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 1.2924468513952618}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": -2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": -2.9244500586297493, \"y\": 2.433673469387754, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.433673469387754, \"z\": 2.742519341842538}, {\"x\": -2.8230612244897957, \"y\": 2.561204122915181, \"z\": 2.6283673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -2.5655189550891313}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": -2.893366635585321, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -2.893366635585321, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.893366635585321, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.947355348469026, \"y\": 2.6283673469387754, \"z\": -2.433673469387755}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790575, \"z\": -2.433673469387755}, {\"x\": -2.893366635585321, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": -1.440264013426905}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 1.440264013426905}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -2.8230612244897957, \"y\": 2.6499629538810714, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -2.8230612244897957, \"y\": 2.8214744840347086, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": -2.8933666355853216, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.8933666355853216, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -2.8933666355853216, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": -2.947355348469027, \"y\": 2.6283673469387754, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.6283673469387754, \"z\": 2.5655189550891313}, {\"x\": -2.8230612244897957, \"y\": 2.7471822828790584, \"z\": 2.433673469387754}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -2.3230380730491356}, {\"x\": -2.893366635585321, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.893366635585321, \"y\": 2.8230612244897957, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": -2.238979591836735}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": -1.657792896850136}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 1.657792896850136}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -2.8230612244897957, \"y\": 2.9111187256747106, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": -2.8933666355853216, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -2.8933666355853216, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.9289463835870624, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": -2.8933666355853216, \"y\": 2.8230612244897957, \"z\": 2.238979591836734}, {\"x\": -2.8230612244897957, \"y\": 2.8230612244897957, \"z\": 2.323038073049136}, {\"x\": -2.8230612244897957, \"y\": 2.8739321799239184, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.1030546475969327, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.1030546475969327, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": -3.1030546475969323, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": -3.1030546475969323, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.84873242110494, \"z\": 1.8495918367346933}, {\"x\": -3.0210071345941043, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.1030546475969323, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.8246881103707158, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.0210071345941043, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -3.1327771096473422, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.1327771096473422, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.1327771096473422, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -2.7202036930336178, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.1030546475969327, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.021007134594104, \"y\": -2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": -3.1030546475969327, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -3.1030546475969327, \"y\": -2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -2.804231895872637, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726917, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -2.6920119836726912, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.1030546475969323, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -2.8042318958726367, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.1030546475969323, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.0210071345941043, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.1030546475969323, \"y\": -2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": -3.132777109647343, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.0210071345941043, \"y\": -2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -2.720203693033618, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.132777109647343, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -3.1024686960752477, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": -3.1024686960752477, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.1024686960752477, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -3.1327771096473422, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -2.540579012497635, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.1327771096473422, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.1327771096473422, \"y\": -2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -2.523713397670233, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.132777109647343, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": -3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": -3.132777109647343, \"y\": -2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -2.5405790124976364, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -2.5218638123950905}, {\"x\": -3.1024686960752477, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -3.1024686960752477, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -3.1024686960752477, \"y\": -2.433673469387755, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": -3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": -1.172350717183893}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": 0.8761224489795918}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": 0.8761224489795918}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.154043496011992, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.311612966367139, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 1.1723507171838934}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.1799433350254813, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.433673469387755, \"z\": 2.5218638123950896}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.1799433350254813, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -3.102468696075249, \"y\": -2.433673469387755, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -2.6349655987534484}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": -2.6283673469387754}, {\"x\": -3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -3.17994333502548, \"y\": -2.238979591836735, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": -3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": -0.9999662005822567}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": -3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.124054835453216, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 0.9999662005822563}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": -3.1799433350254813, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": -3.1799433350254813, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -3.1799433350254813, \"y\": -2.238979591836735, \"z\": 2.433673469387754}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.238979591836735, \"z\": 2.634965598753449}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": -3.0229181735722737, \"y\": -2.238979591836735, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -2.671475626954507}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115544, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115544, \"z\": -2.6283673469387754}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.5317413995345155}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115544, \"z\": -2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": -2.6283673469387754}, {\"x\": -3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -3.1667268074338883, \"y\": -2.044285714285714, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": -0.8456872343534618}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.195911008852586, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -3.158284776606683, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 0.8456872343534609}, {\"x\": -3.0965193740945613, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": -3.1485832311202673, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.1485832311202673, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -3.1485832311202673, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534514}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115548, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534514}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -3.1667268074338892, \"y\": -2.044285714285714, \"z\": 2.433673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": -2.044285714285714, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -2.044285714285714, \"z\": 2.671475626954507}, {\"x\": -3.017755102040816, \"y\": -1.9609249413115548, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -2.5317413995345155}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -3.1485832311202664, \"y\": -1.8495918367346937, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.728675726581662, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": -1.728675726581662, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": -3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": -1.4602040816326531}, {\"x\": -3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": -3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": -1.2655102040816328}, {\"x\": -3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": -1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594038, \"z\": -0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": -0.7180201653998921}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -3.085838856657901, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594033, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 0.7180201653998912}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594033, \"z\": 0.8761224489795918}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.0269186386768423, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.7053734553594033, \"z\": 0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -1.6825150350723068, \"z\": 1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.0654641254330532, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": 1.2655102040816324}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -1.6795520734422449, \"z\": 1.2655102040816324}, {\"x\": -3.0654641254330532, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.195024108589978, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -3.0654641254330532, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.195024108589978, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.195024108589978, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": -1.683714686422864, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.6928706177103972, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -1.7072860382893054, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.1485832311202673, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": -3.1485832311202673, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": -1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": -3.1485832311202673, \"y\": -1.8495918367346937, \"z\": 2.238979591836734}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -1.7607217066702483, \"z\": 2.238979591836734}, {\"x\": -3.0574700229616782, \"y\": -1.8495918367346937, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": -1.8495918367346937, \"z\": 2.531741399534514}, {\"x\": -3.017755102040816, \"y\": -1.811113761455545, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.195024108589979, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.065464125433053, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -3.034529092407129, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.186911356416133, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": -3.186911356416133, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.186911356416133, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.03453294834312, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.186911356416133, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.0654641254330532, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.0411857368620003, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.0654641254330532, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.195024108589978, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.0654641254330532, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.195024108589978, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.1869113564161324, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -3.0401096533648424, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.06602743087732, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": -3.186911356416133, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": -3.1110078206182292, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -3.186911356416133, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -3.0692971430960947, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.1889390734557184, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.1889390734557184, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.1889390734557184, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.095468811021273, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -3.1889390734557184, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.151935962509477, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": -3.188939073455719, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.1889390734557184, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.1476921577619885, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.1889390734557184, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.188939073455719, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": -3.188939073455719, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.188939073455719, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.188939073455719, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -3.188939073455719, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.188939073455719, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.1476921577619885, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -3.095468811021273, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.1889390734557184, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -3.095468811021273, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -3.0954688110212736, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -3.069297143096095, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -3.095468811021273, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -3.095468811021273, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -3.095468811021273, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.1519359625094774, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302904}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.1110078206182297, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -3.0281458707402624, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -3.0401096533648433, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -3.0660274308773205, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.11100782061823, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.1869113564161333, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": -3.057470022961678, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.5317413995345146}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -3.057470022961678, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -3.057470022961678, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.1288736531132506}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302904}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": -1.4602040816326531}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": -1.2655102040816328}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": -1.070816326530612}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": -0.8761224489795918}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -3.035063549585656, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -3.034529092407129, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -3.0337113375801845, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -3.0332399519463733, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.03453294834312, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 1.7053734553594042, \"z\": 0.8761224489795918}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.0411857368620003, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 1.6825150350723073, \"z\": 1.070816326530612}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.0654641254330546, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 1.6795520734422444, \"z\": 1.2655102040816324}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": -3.1950241085899824, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.6837146864228645, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.6928706177103967, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 1.707286038289305, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.7286757265816615, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 1.7607217066702479, \"z\": 2.238979591836734}, {\"x\": -3.0574700229616782, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8111137614555455, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": -3.0574700229616782, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.5317413995345146}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -2.5317413995345146}, {\"x\": -3.057470022961678, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -3.057470022961678, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.3667463359268597}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.057470022961678, \"y\": 1.8495918367346933, \"z\": -2.433673469387755}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.1288736531132506}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": -0.718020165399893}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -3.096499982669912, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -3.085838856657901, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -3.063513038149698, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 0.7180201653998921}, {\"x\": -3.0269186386768423, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.1667268074338892, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -3.1667268074338892, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -3.1485832311202664, \"y\": 1.8495918367346933, \"z\": 2.238979591836734}, {\"x\": -3.0574700229616782, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": -3.0574700229616782, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.8495918367346933, \"z\": 2.531741399534514}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.0574700229616782, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.1667268074338892, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -3.0574700229616782, \"y\": 1.8495918367346933, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 1.9609249413115553, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -2.671475626954507}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": -2.6283673469387754}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -3.1667268074338883, \"y\": 2.0442857142857136, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.3667463359268597}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": -3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.3667463359268597}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": -0.8761224489795918}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": -0.8456872343534618}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.1959110088525855, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.1582847766066826, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 0.8456872343534609}, {\"x\": -3.0965193740945613, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.017755102040816, \"y\": 2.0720397387159526, \"z\": 0.8761224489795918}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": -3.1667268074338892, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -3.1799433350254818, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": -3.1667268074338892, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -3.1667268074338892, \"y\": 2.0442857142857136, \"z\": 2.433673469387754}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.1799433350254818, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -3.1799433350254818, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.0442857142857136, \"z\": 2.671475626954507}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -3.04322951238393, \"y\": 2.0442857142857136, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -2.634965598753449}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": -2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": -2.6283673469387754}, {\"x\": -3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.179943335025481, \"y\": 2.238979591836734, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": -1.070816326530612}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": -0.9999662005822563}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 0.9999662005822554}, {\"x\": -3.1240548354532156, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": -3.017755102040816, \"y\": 2.3116129663671385, \"z\": 1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": -3.1799433350254818, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -3.1024686960752494, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.1799433350254818, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -3.1024686960752494, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -3.1024686960752494, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -3.1799433350254818, \"y\": 2.238979591836734, \"z\": 2.433673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -3.0229181735722737, \"y\": 2.238979591836734, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.238979591836734, \"z\": 2.634965598753449}, {\"x\": -3.017755102040816, \"y\": 2.249613165931353, \"z\": 2.6283673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -2.521863812395091}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.102468696075248, \"y\": 2.433673469387754, \"z\": -2.433673469387755}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.017755102040816, \"y\": 2.540579012497636, \"z\": -2.433673469387755}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": -1.1723507171838912}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702335, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 1.1723507171838916}, {\"x\": -3.1540434960119903, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.017755102040816, \"y\": 2.5237133976702326, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": -3.132777109647343, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.1024686960752494, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.1024686960752494, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.132777109647343, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.132777109647343, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": -3.1024686960752494, \"y\": 2.433673469387754, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.433673469387754, \"z\": 2.5218638123950914}, {\"x\": -3.017755102040816, \"y\": 2.540579012497637, \"z\": 2.433673469387754}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -2.3509404110304475}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.1327771096473422, \"y\": 2.6283673469387754, \"z\": -2.238979591836735}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": -2.238979591836735}, {\"x\": -3.1030546475969327, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": -3.1030546475969327, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.1030546475969327, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": -1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 1.378448672172775}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.017755102040816, \"y\": 2.692011983672691, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.1030546475969323, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -3.1030546475969323, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.804231895872636, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.1030546475969323, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.132777109647343, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.132777109647343, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": -3.132777109647343, \"y\": 2.6283673469387754, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.6283673469387754, \"z\": 2.3509404110304484}, {\"x\": -3.017755102040816, \"y\": 2.720203693033617, \"z\": 2.238979591836734}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -2.0478614777192807}, {\"x\": -3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.1030546475969327, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": -3.021007134594104, \"y\": 2.8230612244897957, \"z\": -2.044285714285714}, {\"x\": -3.1030546475969327, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": -2.044285714285714}, {\"x\": -3.1030546475969327, \"y\": 2.8230612244897957, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": -1.7293108759814761}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": -1.8495918367346937}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 1.7293108759814766}, {\"x\": -3.1030546475969323, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": -3.1030546475969323, \"y\": 2.8230612244897957, \"z\": 1.8495918367346933}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 2.8487324211049394, \"z\": 1.8495918367346933}, {\"x\": -3.0210071345941043, \"y\": 2.8230612244897957, \"z\": 2.0442857142857136}, {\"x\": -3.017755102040816, \"y\": 2.8230612244897957, \"z\": 2.047861477719281}, {\"x\": -3.017755102040816, \"y\": 2.8246881103707153, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.3466606140748256, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.3466606140748256, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.3466606140748256, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728885, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": -3.2680501755722227, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.2680501755722227, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": -1.4602040816326531}, {\"x\": -3.2680501755722227, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": -3.268050175572224, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.268050175572224, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.7197151360641176, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -2.7829886192710154, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.706551666617378, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": -3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.3466606140748256, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.535805106556983, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.3466606140748256, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.3466606140748256, \"y\": -2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": -3.2680501755722227, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.2680501755722227, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.611738517888486, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": -1.070816326530612}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": -3.268050175572224, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.268050175572224, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -2.4696106414135905, \"z\": 1.070816326530612}, {\"x\": -3.268050175572224, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": -3.302037432549011, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": -3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.3466606140748265, \"y\": -2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -2.5358051065569844, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": -3.302037432549011, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": -3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": -3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -2.315976965465759}, {\"x\": -3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -3.3020374325490103, \"y\": -2.433673469387755, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": -3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": -1.018615701785329}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.381153809942901, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.3217410791830635, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 1.0186157017853281}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": -3.302037432549011, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -3.364861055210217, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": -3.302037432549011, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -3.302037432549011, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": -3.364861055210217, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.433673469387755, \"z\": 2.315976965465759}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": -3.302037432549011, \"y\": -2.433673469387755, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": -3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -2.3940297843629077}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.3648610552102163, \"y\": -2.238979591836735, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": -0.7343102575855109}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": -0.6814285714285715}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -2.0638147894904035, \"z\": -0.2920408163265309}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": -3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -2.063814789490403, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.354117036707575, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -2.111720066927503, \"z\": 0.4867346938775512}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.2510705816607177, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.201957974255343, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 0.7343102575855109}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": -3.364861055210217, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -3.3150412079180205, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.364861055210217, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -3.364861055210217, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": -3.3150412079180205, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.238979591836735, \"z\": 2.3940297843629086}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": -3.364861055210217, \"y\": -2.238979591836735, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -2.36674633592686}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": -3.3150412079180196, \"y\": -2.044285714285714, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": -0.11322807683796476}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.041939729129484, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 0.11322807683796388}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -3.3150412079180205, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.3150412079180205, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": -3.3150412079180205, \"y\": -2.044285714285714, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -2.044285714285714, \"z\": 2.3667463359268615}, {\"x\": -3.2124489795918363, \"y\": -1.9221094207050804, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": -2.1288736531132515}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": -3.2124489795918363, \"y\": -1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -1.760170204911121, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.2723002981270355, \"y\": -1.8495918367346937, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": -1.8495918367346937, \"z\": 2.128873653113251}, {\"x\": -3.2124489795918363, \"y\": -1.8185672665461041, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": -1.4688487357302926}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": -1.070816326530612}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.5369895975108223, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": -3.2124489795918363, \"y\": -1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": -1.6548979591836734, \"z\": 1.468848735730293}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": -0.9212666058406183}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": -0.6814285714285715}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.3171898310556531, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4602040816326531, \"z\": 0.9212666058406178}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": -1.4380150543669248, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.3810965355272895, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": -0.613494048113191}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": -1.2655102040816328, \"z\": 0.613494048113191}, {\"x\": -3.2601534137276413, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751612, \"z\": -0.2920408163265309}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -0.9463264754662934, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.0313247278751603, \"z\": 0.29204081632653}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": -1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2920616367188305, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.3198437498916915, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.3733858229795346, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.3733858229795346, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.3733858229795346, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.25492432640495, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.3733858229795346, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.3733858229795346, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.373385822979535, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.3733858229795346, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.373385822979535, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": -3.373385822979535, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.3198437498916915, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": -3.373385822979535, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": -3.3198437498916915, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.373385822979535, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.3198437498916915, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.373385822979535, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.373385822979535, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.3733858229795346, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.3198437498916915, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.3198437498916915, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.3198437498916915, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751607, \"z\": -0.2920408163265309}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": -0.0973469387755106}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.25492432640495, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 0.946326475466293, \"z\": 0.0973469387755097}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.3198437498916906, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 1.0313247278751598, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": -0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": 1.070816326530612, \"z\": 0.34654327648152616}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -3.2920616367188305, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.1717373779687774, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669243, \"z\": -0.8761224489795918}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": -0.6134940481131901}, {\"x\": -3.2124489795918363, \"y\": 1.2655102040816324, \"z\": 0.6134940481131901}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": -3.2601534137276422, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.3171898310556536, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 1.4380150543669252, \"z\": 0.8761224489795918}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302904}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302904}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": -1.2655102040816328}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": -0.9212666058406178}, {\"x\": -3.2124489795918363, \"y\": 1.4602040816326527, \"z\": 0.9212666058406169}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": -3.3810965355272913, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.5369895975108232, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.6040579289593229, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": -3.2124489795918363, \"y\": 1.6528655750602166, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.2723002981270346, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.1288736531132506}, {\"x\": -3.2723002981270346, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": -3.2723002981270346, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302904}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": -1.4688487357302904}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": -3.2124489795918363, \"y\": 1.654897959183673, \"z\": 1.4688487357302904}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 1.7077263579913158, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.272300298127035, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.7601702049111214, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.8185672665461032, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.272300298127035, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.315041207918019, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.3667463359268597}, {\"x\": -3.315041207918019, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.315041207918019, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.2723002981270346, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": -2.1288736531132506}, {\"x\": -3.2723002981270346, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -3.2723002981270346, \"y\": 1.8495918367346933, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.041939729129485, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.272300298127035, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": -3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.8495918367346933, \"z\": 2.128873653113251}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": -3.272300298127035, \"y\": 1.8495918367346933, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 1.9221094207050813, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": -3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.3667463359268597}, {\"x\": -3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": -3.315041207918019, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -2.3667463359268597}, {\"x\": -3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -3.315041207918019, \"y\": 2.0442857142857136, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": -3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": -0.6814285714285715}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": -0.1132280768379621}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 0.11322807683796121}, {\"x\": -3.214401408654105, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625765, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.3204231114427518}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.3204231114427518}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625765, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625765, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.0638147894904026, \"z\": 0.29204081632653}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.1117200669275036, \"z\": 0.4867346938775512}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.2019579742553432, \"z\": 0.6814285714285715}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": -3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -3.3648610552102176, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": -3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": -3.3648610552102176, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.0442857142857136, \"z\": 2.3667463359268606}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": -3.3150412079180196, \"y\": 2.0442857142857136, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": -3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -2.394029784362908}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.3648610552102163, \"y\": 2.238979591836734, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": -0.8761224489795918}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": -0.73431025758551}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.3204231114427518}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.3541170367075734, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 0.7343102575855092}, {\"x\": -3.2510705816607164, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.2124489795918363, \"y\": 2.321741079183064, \"z\": 0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": -3.3648610552102176, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -3.3020374325490125, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.3648610552102176, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -3.3648610552102176, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.3020374325490125, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.238979591836734, \"z\": 2.3940297843629086}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.3648610552102176, \"y\": 2.238979591836734, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -2.31597696546576}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": -3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.3466606140748256, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": -3.3466606140748256, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.3466606140748256, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.302037432549011, \"y\": 2.433673469387754, \"z\": -2.238979591836735}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569827, \"z\": -2.238979591836735}, {\"x\": -3.3466606140748256, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.2680501755722227, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.2680501755722227, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": -3.2680501755722227, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": -1.0186157017853277}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 1.0186157017853272}, {\"x\": -3.381153809942899, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": -3.268050175572224, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.469610641413591, \"z\": 1.070816326530612}, {\"x\": -3.2124489795918363, \"y\": 2.6117385178884858, \"z\": 1.2655102040816324}, {\"x\": -3.268050175572224, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.3020374325490125, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.3020374325490125, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.3020374325490125, \"y\": 2.433673469387754, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.433673469387754, \"z\": 2.3159769654657607}, {\"x\": -3.2124489795918363, \"y\": 2.5358051065569835, \"z\": 2.238979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -2.150284850635489}, {\"x\": -3.3466606140748256, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.3466606140748256, \"y\": 2.6283673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173766, \"z\": -2.044285714285714}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.2680501755722227, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": -1.2913378290848603}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.2124489795918363, \"y\": 2.719715136064118, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.2680501755722227, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.268050175572224, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.268050175572224, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 1.2913378290848607}, {\"x\": -3.268050175572224, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.7197151360641163, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 2.7837362240728876, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 2.7829886192710145, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.3466606140748265, \"y\": 2.6283673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.2124489795918363, \"y\": 2.6283673469387754, \"z\": 2.1502848506354892}, {\"x\": -3.2124489795918363, \"y\": 2.7065516666173783, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.727699276494857, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -2.727699276494857, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -2.727699276494857, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -2.6847084755086303, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.6018367346938773, \"y\": -2.6847084755086303, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": -3.6018367346938773, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -2.73462069393343, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -2.7590433150549085, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.4071428571428566, \"y\": -2.7131724226785683, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.5516926207380735, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": -3.5516926207380735, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.5516926207380735, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -2.004476266308055}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -2.004476266308055}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.447260185103216, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": -3.6018367346938773, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.5539263102654877, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.2007760376339238}, {\"x\": -3.6018367346938773, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.5516926207380743, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": -3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": -2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.4071428571428566, \"y\": -2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": -3.5516926207380743, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": -3.596010922039827, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": -3.5516926207380735, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -3.596010922039827, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -2.1419637359440973}, {\"x\": -3.596010922039827, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -3.5516926207380735, \"y\": -2.433673469387755, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -2.004476266308055}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": -2.0391916426281163}, {\"x\": -3.596010922039827, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -2.004476266308055}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": -0.848313748851746}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": -3.4227939150586493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": -3.4227939150586493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": -0.4867346938775512}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.4227939150586493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": -3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.2756274893806228, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 0.848313748851746}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": -3.5516926207380743, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": -3.5516926207380743, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -3.5516926207380743, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": -3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.433673469387755, \"z\": 2.141963735944098}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": -3.5516926207380743, \"y\": -2.433673469387755, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": -3.596010922039827, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -2.1954708055841605}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.596010922039827, \"y\": -2.238979591836735, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": -2.0391916426281163}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": -2.0391916426281163}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": -0.32042311144275626}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": -3.4227939150586493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.4227939150586493, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": -0.2920408163265309}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": -3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.4765357374478114, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -2.207106915197039, \"z\": 0.0973469387755097}, {\"x\": -3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.4227939150586497, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.231757514362576, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 0.32042311144275626}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": -3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.238979591836735, \"z\": 2.1954708055841623}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.5960109220398273, \"y\": -2.238979591836735, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": -2.1328742055074215}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": -3.4548974218288433, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": -3.4548974218288433, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.4548974218288433, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": -3.5031275539105438, \"y\": -2.044285714285714, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290242, \"z\": -2.044285714285714}, {\"x\": -3.4548974218288433, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": -1.730673407827687}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155819, \"z\": 1.8495918367346933}, {\"x\": -3.4548974218288424, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": -3.4548974218288424, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.4548974218288424, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155819, \"z\": 1.8495918367346933}, {\"x\": -3.503127553910545, \"y\": -2.044285714285714, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -2.044285714285714, \"z\": 2.132874205507422}, {\"x\": -3.4071428571428566, \"y\": -1.9621576060290238, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": -1.8927343946808364}, {\"x\": -3.4548974218288433, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": -1.730673407827687}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.4548974218288433, \"y\": -1.8495918367346937, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": -1.730673407827687}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867874, \"z\": -1.8495918367346937}, {\"x\": -3.4162411101536274, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": -3.4162411101536274, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543641, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543641, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555666, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.4162411101536274, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543641, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": -1.4083501182263602}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": 1.4083501182263616}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": -3.4162411101536287, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": -3.4162411101536287, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.4548974218288424, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": -3.4548974218288424, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.7456036857555661, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.4548974218288424, \"y\": -1.8495918367346937, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.8495918367346937, \"z\": 1.8927343946808346}, {\"x\": -3.4071428571428566, \"y\": -1.8295121945867878, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": -1.4632669838721943}, {\"x\": -3.4162411101536274, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": -1.4083501182263602}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.4162411101536274, \"y\": -1.6548979591836734, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": -1.4083501182263602}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": -1.121529087594257}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": -3.4071428571428566, \"y\": -1.568916179172605, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": -1.121529087594257}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": -3.4162411101536287, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": 1.4083501182263616}, {\"x\": -3.4162411101536287, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.4162411101536287, \"y\": -1.6548979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": -1.6548979591836734, \"z\": 1.4632669838721943}, {\"x\": -3.4071428571428566, \"y\": -1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": -1.121529087594257}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": -1.0865203384546764}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": -1.121529087594257}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.312482511047111, \"z\": -0.8761224489795918}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.3124825110471101, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": -3.4071428571428566, \"y\": -1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": -1.4602040816326531, \"z\": 1.086520338454676}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": -0.8223873118885221}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": -1.2655102040816328, \"z\": 0.8223873118885212}, {\"x\": -3.527497955149613, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": -1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.5139191358224173, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": -0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296614, \"z\": -0.2920408163265309}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.461187526866058, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.461187526866058, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.461187526866058, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": 0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": -0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4772745727370777, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.5886925412781134, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.487000215413455, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.487000215413455, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.461187526866059, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.5886925412781134, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717411, \"z\": -0.0973469387755106}, {\"x\": -3.487000215413455, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.487000215413455, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": -0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": -0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.461187526866058, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.461187526866058, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.588692541278113, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.588692541278113, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.461187526866058, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.588692541278113, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.6018367346938773, \"y\": -0.45759190056680676, \"z\": -0.2920408163265309}, {\"x\": -3.5886925412781134, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": -3.5886925412781134, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.45759190056680676, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.5886925412781134, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.487000215413455, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.5886925412781134, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.487000215413455, \"y\": -0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.457591900566805, \"z\": 0.29204081632653}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": 0.1616789029021648}, {\"x\": -3.6018367346938773, \"y\": -0.457591900566805, \"z\": 0.29204081632653}, {\"x\": -3.588692541278113, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -3.588692541278113, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.4870002154134547, \"y\": -0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -3.588692541278113, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.457591900566805, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459985, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459808, \"z\": 0.0973469387755097}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459985, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459808, \"z\": 0.0973469387755097}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": -0.2920408163265309, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459808, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": 0.1616789029021648}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": -0.1616789029021639}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": 0.1616789029021639}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.588692541278114, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668059, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668059, \"z\": -0.2920408163265309}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": -0.1616789029021639}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668059, \"z\": -0.2920408163265309}, {\"x\": -3.588692541278114, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -3.588692541278114, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": -0.0973469387755106}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.4870002154134547, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": 0.1616789029021639}, {\"x\": -3.588692541278113, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": 0.1616789029021639}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.588692541278113, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.5679762759725735, \"y\": 0.29204081632653, \"z\": 0.0973469387755097}, {\"x\": -3.4870002154134547, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.588692541278113, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.588692541278113, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.588692541278114, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.461187526866059, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.588692541278114, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.461187526866059, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.461187526866059, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.588692541278114, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4870002154134547, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.487000215413455, \"y\": 0.4867346938775512, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": -0.0973469387755106}, {\"x\": -3.4870002154134547, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.6174073136717402, \"z\": 0.0973469387755097}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.4870002154134547, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.4870002154134547, \"y\": 0.4867346938775512, \"z\": 0.0973469387755097}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.588692541278113, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.588692541278113, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": -3.461187526866059, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.461187526866059, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.461187526866059, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296605, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": -0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": 0.6814285714285715, \"z\": 0.18449366418755098}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.461187526866058, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.7475661485296596, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": 0.5684860966195986}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": -0.41712188457264077}, {\"x\": -3.4071428571428566, \"y\": 0.8761224489795918, \"z\": 0.41712188457264165}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": 0.5684860966195986}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": 0.5684860966195986}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.4772745727370777, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 0.9391042978687452, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": -0.6121407162901233}, {\"x\": -3.4071428571428566, \"y\": 1.070816326530612, \"z\": 0.6121407162901225}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.5139191358224173, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.1374649718875958, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": -1.070816326530612}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": -0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": 1.2655102040816324, \"z\": 0.8223873118885212}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": -3.527497955149615, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.3124825110471106, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": -3.4071428571428566, \"y\": 1.4509794787850279, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": -1.4083501182263598}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": -1.086520338454675}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": -3.4071428571428566, \"y\": 1.4602040816326527, \"z\": 1.086520338454675}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 1.5689161791726045, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.6536890849290353, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": -1.7306734078276858}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": -1.4632669838721934}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": -1.4083501182263598}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.654897959183673, \"z\": 1.4632669838721934}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.4162411101536243, \"y\": 1.654897959183673, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 1.745603685755567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.8295121945867887, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.5031275539105438, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": -3.5031275539105438, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.5031275539105438, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": -1.892734394680835}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": -1.7306734078276858}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": -3.503127553910544, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.8495918367346933, \"z\": 1.8927343946808346}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": -3.454897421828842, \"y\": 1.8495918367346933, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 1.9621576060290247, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": -3.503127553910544, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": -3.5031275539105438, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": -2.132874205507421}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -3.5031275539105438, \"y\": 2.0442857142857136, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": -2.0391916426281163}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": -3.4227939150586466, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625774, \"z\": -0.2920408163265309}, {\"x\": -3.4227939150586466, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.4227939150586466, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625765, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.2071069151970395, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.422793915058647, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625765, \"z\": 0.29204081632653}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.4071428571428566, \"y\": 2.2317575143625765, \"z\": 0.29204081632653}, {\"x\": -3.422793915058647, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.3204231114427518}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.503127553910544, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": -3.503127553910544, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -3.503127553910544, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.0442857142857136, \"z\": 2.132874205507422}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": -3.503127553910544, \"y\": 2.0442857142857136, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": -3.5516926207380743, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -3.5516926207380743, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -2.195470805584161}, {\"x\": -3.5516926207380743, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": -2.0391916426281163}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.5516926207380743, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": -2.0391916426281163}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.4227939150586466, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": -0.32042311144275093}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.4227939150586466, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": -3.4227939150586466, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.422793915058647, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.4765357374478087, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.422793915058647, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 0.3204231114427518}, {\"x\": -3.422793915058647, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.275627489380624, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": -3.4071428571428566, \"y\": 2.345385009156189, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -3.551692620738075, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.551692620738075, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.238979591836734, \"z\": 2.1954708055841623}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.5960109220398273, \"y\": 2.238979591836734, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -2.141963735944098}, {\"x\": -3.5516926207380743, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.5516926207380743, \"y\": 2.433673469387754, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.4071428571428566, \"y\": 2.571438952643293, \"z\": -2.044285714285714}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": -0.8483137488517443}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 0.8483137488517434}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": -3.4071428571428566, \"y\": 2.4472601851032154, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.1331206635656592}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": -3.4071428571428566, \"y\": 2.5539263102654886, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.1331206635656592}, {\"x\": -3.551692620738075, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.551692620738075, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.551692620738075, \"y\": 2.433673469387754, \"z\": 2.0442857142857136}, {\"x\": -3.4071428571428566, \"y\": 2.433673469387754, \"z\": 2.141963735944098}, {\"x\": -3.4071428571428566, \"y\": 2.5714389526432937, \"z\": 2.0442857142857136}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": -1.6548979591836734}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334303, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": -1.2007760376339234}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.1331206635656592}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.200776037633923}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.1331206635656592}, {\"x\": -3.4071428571428566, \"y\": 2.6619233613533577, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 2.7346206939334294, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 2.7590433150549076, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.4071428571428566, \"y\": 2.713172422678568, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": -3.4071428571428566, \"y\": 2.6283673469387754, \"z\": 1.9852629033447382}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.6342009897818603, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6342009897818603, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.6342009897818603, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -2.727699276494857, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.727699276494857, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.715252452998222, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -2.6847084755086303, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.715252452998222, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -2.6847084755086303, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.715252452998222, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -2.6847084755086303, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.149111272540277}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": -2.6847084755086303, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": -3.6018367346938773, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -2.68470847550863, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -2.735156143648769, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": -3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.640410684326539, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6342009897818603, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -2.004476266308055}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6342009897818603, \"y\": -2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.6018367346938773, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5992134681931662, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -0.7219553232558242}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -0.7219553232558242}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 0.7219553232558251}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.5013998120283287, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.5934865620629957, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.7965306122448976, \"y\": -2.5934865620629957, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.13312066356566}, {\"x\": -3.7965306122448976, \"y\": -2.5934865620629957, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": -3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.7965306122448976, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": -3.6342009897818617, \"y\": -2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": -2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -2.004476266308055}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": -2.0391916426281163}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": -1.8961941451561795}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": -2.0391916426281163}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -0.7219553232558242}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": -0.7162227893523188}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -0.7219553232558242}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -2.28747239945516, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 0.7219553232558251}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.4179508688336253, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 0.7162227893523179}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -2.433673469387755, \"z\": 2.004476266308054}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": 1.896194145156179}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": -1.8961941451561795}, {\"x\": -3.7965306122448976, \"y\": -2.137069963708497, \"z\": -1.8495918367346937}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": -1.8961941451561795}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": -2.0391916426281163}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": -1.8961941451561795}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.137069963708497, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": -1.7971396198285858}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.7965306122448976, \"y\": -2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": -3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": 1.896194145156179}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": 1.896194145156179}, {\"x\": -3.6018367346938773, \"y\": -2.238979591836735, \"z\": 2.039191642628116}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": -1.9535878705455012}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": -1.7971396198285858}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664672, \"z\": -1.6548979591836734}, {\"x\": -3.7026914198282954, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": -1.7971396198285858}, {\"x\": -3.7026914198282954, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.7026914198282954, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": -1.730673407827687}, {\"x\": -3.736053672733299, \"y\": -2.044285714285714, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": -1.730673407827687}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155823, \"z\": -1.8495918367346937}, {\"x\": -3.7026914198282954, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664672, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155819, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": -3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.7360536727333002, \"y\": -2.044285714285714, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -2.044285714285714, \"z\": 1.953587870545502}, {\"x\": -3.6018367346938773, \"y\": -1.9478138816155819, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": -1.730673407827687}, {\"x\": -3.7026914198282954, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.7026914198282954, \"y\": -1.8495918367346937, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173083, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173083, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543641, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378623, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543641, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173083, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": -1.4083501182263602}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543641, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": 1.4083501182263616}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": 1.4083501182263616}, {\"x\": -3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": -3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -1.6900228178543633, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.7026914198282945, \"y\": -1.8495918367346937, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": -1.8495918367346937, \"z\": 1.7306734078276858}, {\"x\": -3.6018367346938773, \"y\": -1.8064325161378627, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": -1.4083501182263602}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": -1.121529087594257}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368315, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": 1.0905934974850284}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": 1.4083501182263616}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": -3.6018367346938773, \"y\": -1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": -1.6548979591836734, \"z\": 1.4083501182263616}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": -1.121529087594257}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": 1.0905934974850284}, {\"x\": -3.6018367346938773, \"y\": -1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": -1.4602040816326531, \"z\": 1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": -0.9022370237751982}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": -3.6018367346938773, \"y\": -1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": -1.2655102040816328, \"z\": 0.9022370237751982}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": -1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": -1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": -0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": -0.7524789173421436, \"z\": 0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.6018367346938773, \"y\": -0.8761224489795918, \"z\": 0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": -0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.697076757419018, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.6018367346938773, \"y\": -0.45759190056680676, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.45759190056680676, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": -3.6018367346938773, \"y\": -0.45759190056680676, \"z\": -0.2920408163265309}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": -3.6018367346938773, \"y\": -0.457591900566805, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": 0.1616789029021648}, {\"x\": -3.6938503544733585, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -3.6938503544733585, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.6018367346938773, \"y\": -0.457591900566805, \"z\": 0.29204081632653}, {\"x\": -3.6938503544733585, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": -0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": -0.3308140015881387}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": -3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": -0.3308140015881387}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459985, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": -0.1616789029021648}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459985, \"z\": -0.0973469387755106}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.6938503544733594, \"y\": -0.2920408163265309, \"z\": -0.2920408163265309}, {\"x\": -3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459808, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459985, \"z\": -0.0973469387755106}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459808, \"z\": 0.0973469387755097}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": 0.1616789029021648}, {\"x\": -3.6018367346938773, \"y\": -0.12863770417459808, \"z\": 0.0973469387755097}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": -0.2920408163265309, \"z\": 0.1616789029021648}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.6938503544733585, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -3.6938503544733585, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.744004625745771, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -3.744004625745771, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": -3.6938503544733585, \"y\": -0.2920408163265309, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": 0.3308140015881387}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": -3.744004625745771, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": -3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": -0.3308140015881387}, {\"x\": -3.7440046257457724, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": -3.744004625745772, \"y\": -0.0973469387755106, \"z\": -0.2920408163265309}, {\"x\": -3.7440046257457724, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.7440046257457724, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.609926234856944, \"y\": -0.0973469387755106, \"z\": -0.0973469387755106}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.6099262348569434, \"y\": -0.0973469387755106, \"z\": 0.0973469387755097}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.744004625745771, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.744004625745771, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -3.744004625745771, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -3.744004625745771, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": 0.3308140015881387}, {\"x\": -3.744004625745771, \"y\": -0.0973469387755106, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": 0.3308140015881387}, {\"x\": -3.744004625745771, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.7440046257457724, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": -3.6938503544733594, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -3.7440046257457724, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": -0.1616789029021639}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": -0.0973469387755106}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": -0.1616789029021639}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.6938503544733594, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -3.6938503544733594, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.7440046257457724, \"y\": 0.0973469387755097, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": 0.0973469387755097}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.609926234856944, \"y\": 0.0973469387755097, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": -0.0973469387755106}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": 0.1616789029021639}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.12863770417459897, \"z\": 0.0973469387755097}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.6099262348569434, \"y\": 0.0973469387755097, \"z\": 0.0973469387755097}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.744004625745771, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": -3.744004625745771, \"y\": 0.0973469387755097, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.6938503544733594, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668059, \"z\": -0.2920408163265309}, {\"x\": -3.6938503544733594, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.6938503544733594, \"y\": 0.29204081632653, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668059, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": -0.1616789029021639}, {\"x\": -3.6018367346938773, \"y\": 0.29204081632653, \"z\": 0.1616789029021639}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.6938503544733585, \"y\": 0.29204081632653, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.4575919005668041, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": -0.3047179675997409}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.6018367346938773, \"y\": 0.4867346938775512, \"z\": 0.3047179675997409}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": -0.42873977766976257}, {\"x\": -3.6018367346938773, \"y\": 0.6814285714285715, \"z\": 0.4287397776697617}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.697076757419018, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.7524789173421427, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": 0.5684860966195986}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": 0.5684860966195986}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": -0.5684860966195995}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.6018367346938773, \"y\": 0.8761224489795918, \"z\": 0.5684860966195986}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": 1.0164203111768906, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": -0.7241012012667598}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": 1.070816326530612, \"z\": 0.7241012012667598}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.6018367346938773, \"y\": 1.23949674424321, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": -0.9022370237751978}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.6018367346938773, \"y\": 1.2655102040816324, \"z\": 0.9022370237751973}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.6018367346938773, \"y\": 1.4220276204901063, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": -1.4083501182263598}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": -1.4083501182263598}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": -1.121529087594256}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.6018367346938773, \"y\": 1.4602040816326527, \"z\": 1.121529087594256}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.6018367346938773, \"y\": 1.5703876267368324, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": -1.7306734078276858}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": -1.4083501182263598}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": -1.4083501182263598}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.6018367346938773, \"y\": 1.654897959183673, \"z\": 1.4083501182263598}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.7965306122448976, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.6900228178543637, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.8064325161378632, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": -1.7971396198285854}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": -1.7306734078276858}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": -3.7360536727332994, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.8495918367346933, \"z\": 1.7306734078276858}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.7026914198282936, \"y\": 1.8495918367346933, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 1.9478138816155814, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.7360536727332994, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": -2.0391916426281163}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": -1.9535878705455012}, {\"x\": -3.7360536727332985, \"y\": 2.0442857142857136, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": -1.7971396198285854}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.7360536727332994, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084956, \"z\": 1.8495918367346933}, {\"x\": -3.7360536727332994, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084956, \"z\": 1.8495918367346933}, {\"x\": -3.7360536727332994, \"y\": 2.0442857142857136, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.6018367346938773, \"y\": 2.0442857142857136, \"z\": 1.953587870545502}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": -2.0391916426281163}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -0.7219553232558225}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049789, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 2.2874723994551607, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 2.307344192049788, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.349241610541185, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 0.7219553232558216}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": -3.6018367346938773, \"y\": 2.4179508688336258, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 0.7219553232558216}, {\"x\": -3.6018367346938773, \"y\": 2.238979591836734, \"z\": 2.039191642628116}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 1.8856514177172805}, {\"x\": -3.6342009897818603, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -1.8856514177172805}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044037, \"z\": -1.8495918367346937}, {\"x\": -3.6342009897818603, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -2.0044762663080555}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -1.8856514177172805}, {\"x\": -3.6342009897818603, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044037, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.149111272540278}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -0.7219553232558225}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": -0.7162227893523161}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 0.7219553232558216}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 0.7162227893523161}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 0.7219553232558216}, {\"x\": -3.6018367346938773, \"y\": 2.501399812028329, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.1331206635656592}, {\"x\": -3.6018367346938773, \"y\": 2.599213468193166, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": -3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 1.8856514177172805}, {\"x\": -3.6018367346938773, \"y\": 2.433673469387754, \"z\": 2.004476266308056}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.8635323261518302}, {\"x\": -3.6342009897818603, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.6342009897818603, \"y\": 2.6283673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": -1.8495918367346937}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.7965306122448976, \"y\": 2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.149111272540278}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": -1.1331206635656597}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.1331206635656592}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.6018367346938773, \"y\": 2.6847084755086295, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 2.7351561436487684, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.7276992764948567, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.6342009897818617, \"y\": 2.6283673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.6018367346938773, \"y\": 2.6283673469387754, \"z\": 1.8635323261518302}, {\"x\": -3.6018367346938773, \"y\": 2.6404106843265387, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.955437311208223, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.955437311208223, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.955437311208223, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.683897112057831, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.715252452998222, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.9549440234958846, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.715252452998222, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.149111272540277}, {\"x\": -3.9549440234958846, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.954944023495883, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.954944023495883, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.3324187235408926}, {\"x\": -3.954944023495883, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.6759676978167293, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.5901092255633147}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.9554373112082226, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.5901092255633147}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.6838971120578305, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.9554373112082226, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.8679567161651276, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.8679567161651276, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -1.752776522608419}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.8679567161651276, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.955437311208223, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.5041107551044033, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.955437311208223, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.955437311208223, \"y\": -2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.9549440234958846, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155815, \"z\": -1.2655102040816328}, {\"x\": -3.9549440234958846, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": -1.149111272540277}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.9549440234958846, \"y\": -2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155815, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155815, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -0.9338379607725753}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": -0.8761224489795918}, {\"x\": -3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -0.9338379607725753}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.593486562062995, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -0.7219553232558242}, {\"x\": -3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.9432770286032217, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 0.7219553232558251}, {\"x\": -3.9432770286032217, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 0.9338379607725749}, {\"x\": -3.9432770286032217, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.497975582184988, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.5934865620629957, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.954944023495883, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -2.5934865620629957, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -2.5934865620629957, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": 1.070816326530612}, {\"x\": -3.954944023495883, \"y\": -2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.3324187235408926}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.5901092255633147}, {\"x\": -3.9554373112082226, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": -3.867956716165129, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 1.7527765226084195}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.7965306122448976, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 1.7527765226084195}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 1.7527765226084195}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.9554373112082226, \"y\": -2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.504110755104405, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.867956716165129, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": -1.8961941451561795}, {\"x\": -3.8679567161651276, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -1.88565141771728}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.8679567161651276, \"y\": -2.433673469387755, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -1.752776522608419}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -1.739966300419245}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -1.752776522608419}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -0.9338379607725753}, {\"x\": -3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.401778363293682, \"z\": -0.8761224489795918}, {\"x\": -3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": -0.7219553232558242}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.9432770286032213, \"y\": -2.433673469387755, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.401778363293682, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.401778363293682, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -0.400442776166976}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -0.400442776166976}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": -0.0973469387755106}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": -0.2920408163265309}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": -2.2910171122765006, \"z\": 0.0973469387755097}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 0.4004427761669769}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.309997718412933, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.3500839753466307, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 0.7219553232558251}, {\"x\": -3.9432770286032217, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 0.7219553232558251}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -2.416102827529951, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": 0.6814285714285715}, {\"x\": -3.9432770286032217, \"y\": -2.433673469387755, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 0.9338379607725749}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 1.7527765226084195}, {\"x\": -3.867956716165129, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -3.868963981296847, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -3.867956716165129, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -3.867956716165129, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": 1.896194145156179}, {\"x\": -3.868963981296847, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.433673469387755, \"z\": 1.8856514177172805}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": 1.896194145156179}, {\"x\": -3.867956716165129, \"y\": -2.433673469387755, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": -1.8961941451561795}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.137069963708497, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -1.739966300419245}, {\"x\": -3.991224489795918, \"y\": -2.1018036663404054, \"z\": -1.6548979591836734}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -1.739966300419245}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": -1.7971396198285858}, {\"x\": -3.8689639812968455, \"y\": -2.238979591836735, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": -1.7971396198285858}, {\"x\": -3.7965306122448976, \"y\": -2.137069963708497, \"z\": -1.8495918367346937}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.1018036663404054, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": -1.612125427847571}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -0.400442776166976}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877187, \"y\": -2.238979591836735, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.954320077569494, \"y\": -2.238979591836735, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 0.4004427761669769}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -3.991224489795918, \"y\": -2.101803666340405, \"z\": 1.654897959183673}, {\"x\": -3.9557976004473527, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -3.868963981296847, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -3.868963981296847, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.9557976004473527, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -3.9557976004473527, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.101803666340405, \"z\": 1.654897959183673}, {\"x\": -3.868963981296847, \"y\": -2.238979591836735, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.238979591836735, \"z\": 1.896194145156179}, {\"x\": -3.7965306122448976, \"y\": -2.1370699637084947, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": -1.7971396198285858}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664672, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": -1.612125427847571}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": -1.612125427847571}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": -3.9557976004473523, \"y\": -2.044285714285714, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664672, \"z\": -1.6548979591836734}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": -1.3899223518372854}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.928500807922103, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -3.9557976004473527, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -3.9557976004473527, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": -3.928500807922103, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -3.928500807922103, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.9557976004473527, \"y\": -2.044285714285714, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -2.044285714285714, \"z\": 1.7971396198285863}, {\"x\": -3.7965306122448976, \"y\": -1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": -1.5826675822572938}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173083, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": -1.3899223518372854}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": -1.2655102040816328}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": -1.3899223518372854}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.9285008079221027, \"y\": -1.8495918367346937, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173083, \"z\": -1.4602040816326531}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": -1.1688955968360606}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": 1.2655102040816324}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.928500807922103, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -3.928500807922103, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": 1.2655102040816324}, {\"x\": -3.928500807922103, \"y\": -1.8495918367346937, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.8495918367346937, \"z\": 1.5826675822572938}, {\"x\": -3.7965306122448976, \"y\": -1.7671060847173075, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": -1.3184442148249755}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": -1.1688955968360606}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": -1.070816326530612}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": -1.1688955968360606}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": -1.2655102040816328}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": -0.994320193892551}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": 1.070816326530612}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": 1.0905934974850284}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": 1.0905934974850284}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": 1.0905934974850284}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": 1.070816326530612}, {\"x\": -3.8699903534673776, \"y\": -1.6548979591836734, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.6548979591836734, \"z\": 1.318444214824976}, {\"x\": -3.7965306122448976, \"y\": -1.6171069999677967, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": -1.0905934974850289}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": -0.994320193892551}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": -3.9286569100170223, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": -0.994320193892551}, {\"x\": -3.9286569100170223, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.9286569100170223, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.9286569100170223, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": -3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": -3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": -3.839285821050701, \"y\": -1.4602040816326531, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.4602040816326531, \"z\": 1.0905934974850284}, {\"x\": -3.7965306122448976, \"y\": -1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": -0.9097096916008822}, {\"x\": -3.9286569100170223, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": -0.8761224489795918}, {\"x\": -3.9286569100170223, \"y\": -1.2655102040816328, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.928656910017022, \"y\": -1.2655102040816328, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": -1.2655102040816328, \"z\": 0.9097096916008818}, {\"x\": -3.7965306122448976, \"y\": -1.2247688243977612, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.7965306122448976, \"y\": -0.945804923776957, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": -1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": -0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.9295473614178453, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": -0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.9295473614178458, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.9295473614178458, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": -0.5806009233985128, \"z\": 0.4867346938775512}, {\"x\": -3.9295473614178458, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.7965306122448976, \"y\": -0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.9295473614178453, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.9295473614178458, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": -0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": -3.9295473614178458, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": -0.3658381728549154}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": -0.3308140015881387}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": -0.3308140015881387}, {\"x\": -3.7965306122448976, \"y\": -0.2920408163265309, \"z\": 0.3658381728549154}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": 0.3308140015881387}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": 0.3308140015881387}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": -0.3308140015881387}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": -3.7965306122448976, \"y\": -0.0973469387755106, \"z\": 0.3308140015881387}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": -0.3308140015881378}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.7965306122448976, \"y\": 0.0973469387755097, \"z\": 0.3308140015881378}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": -0.3658381728549154}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -3.7965306122448976, \"y\": 0.29204081632653, \"z\": 0.3658381728549154}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": -0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": 0.4867346938775512, \"z\": 0.4366992025822123}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.9295473614178453, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.5806009233985119, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": -0.5285872539028809}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": 0.6814285714285715, \"z\": 0.5285872539028809}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": -0.6357526251757779}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.7965306122448976, \"y\": 0.8761224489795918, \"z\": 0.6357526251757779}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.7965306122448976, \"y\": 0.9458049237769561, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": -0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.7965306122448976, \"y\": 1.070816326530612, \"z\": 0.7605805625756608}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.7965306122448976, \"y\": 1.2247688243977608, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": -0.9943201938925501}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": -0.9097096916008822}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.2655102040816324, \"z\": 0.9097096916008818}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": -3.928656910017021, \"y\": 1.2655102040816324, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 1.442231981111938, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": -1.1688955968360606}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": -1.0905934974850289}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": -0.9943201938925501}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.4602040816326527, \"z\": 1.0905934974850284}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": -3.8392858210507, \"y\": 1.4602040816326527, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 1.6171069999677972, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": -3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": -1.2655102040816328}, {\"x\": -3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 1.7671060847173088, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": -1.318444214824975}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": -1.1688955968360606}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": -3.928500807922103, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": 1.3899223518372859}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.7965306122448976, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": 1.3899223518372859}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": 1.3899223518372859}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.654897959183673, \"z\": 1.318444214824975}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": -3.8699903534673767, \"y\": 1.654897959183673, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 1.767106084717308, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.928500807922103, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": -1.7971396198285854}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": -1.6121254278475718}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": -1.5826675822572924}, {\"x\": -3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -3.928500807922102, \"y\": 1.8495918367346933, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": 1.3899223518372859}, {\"x\": -3.928500807922103, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": 1.6121254278475714}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": 1.6121254278475714}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": 1.6121254278475714}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.8495918367346933, \"z\": 1.582667582257292}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.928500807922103, \"y\": 1.8495918367346933, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 1.9139688830664676, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.868963981296845, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.868963981296845, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404036, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -1.7399663004192445}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404036, \"z\": -1.6548979591836734}, {\"x\": -3.868963981296845, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404036, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084973, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": -1.7971396198285854}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": -1.6121254278475718}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404036, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -0.40044277616697155}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": -0.0973469387755106}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": 0.0973469387755097}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 0.40044277616697066}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": 1.6121254278475714}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404054, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084956, \"z\": 1.8495918367346933}, {\"x\": -3.8689639812968464, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 1.739966300419245}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084956, \"z\": 1.8495918367346933}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 1.739966300419245}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 1.739966300419245}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404054, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.0442857142857136, \"z\": 1.7971396198285863}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404054, \"z\": 1.654897959183673}, {\"x\": -3.9557976004473523, \"y\": 2.0442857142857136, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.1370699637084956, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.8689639812968464, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -1.8856514177172805}, {\"x\": -3.868963981296845, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": -1.8961941451561795}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.868963981296845, \"y\": 2.238979591836734, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -1.7399663004192445}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -1.7527765226084195}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -1.7399663004192445}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -0.9338379607725731}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -0.7219553232558225}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -0.7219553232558225}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": -0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -0.40044277616697155}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466307, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": -0.2920408163265309}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": -0.2920408163265309}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": -0.0973469387755106}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": -0.0973469387755106}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.9177152488877205, \"y\": 2.238979591836734, \"z\": 0.0973469387755097}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 2.291017112276501, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 0.40044277616697066}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.9543200775694958, \"y\": 2.238979591836734, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 0.40044277616697066}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.3099977184129328, \"z\": 0.29204081632653}, {\"x\": -3.7965306122448976, \"y\": 2.3500839753466316, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": 0.6814285714285715}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 0.7219553232558216}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4161028275299516, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": 0.6814285714285715}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 0.9338379607725731}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 1.739966300419245}, {\"x\": -3.8689639812968464, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -3.86795671616513, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -3.8689639812968464, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -3.8689639812968464, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 1.8856514177172805}, {\"x\": -3.86795671616513, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.238979591836734, \"z\": 1.896194145156179}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 1.8856514177172805}, {\"x\": -3.8689639812968464, \"y\": 2.238979591836734, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -1.8856514177172805}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044037, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -1.7527765226084195}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.955437311208223, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -1.7527765226084195}, {\"x\": -3.955437311208223, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.955437311208223, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.867956716165128, \"y\": 2.433673469387754, \"z\": -1.8495918367346937}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044037, \"z\": -1.8495918367346937}, {\"x\": -3.955437311208223, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -3.9549440234958846, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.149111272540278}, {\"x\": -3.9549440234958846, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.149111272540278}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": -1.070816326530612}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -0.9338379607725731}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": -1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": -1.070816326530612}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": -0.7219553232558225}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": -0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 0.7219553232558216}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 0.9338379607725731}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.943277028603224, \"y\": 2.433673469387754, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 0.9338379607725731}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": -3.7965306122448976, \"y\": 2.4979755821849885, \"z\": 0.8761224489795918}, {\"x\": -3.9549440234958824, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": -3.9549440234958824, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.5934865620629948, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": 1.070816326530612}, {\"x\": -3.9549440234958824, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.3324187235408944}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.590109225563313}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.955437311208222, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.86795671616513, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -3.86795671616513, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.955437311208222, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -3.955437311208222, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.86795671616513, \"y\": 2.433673469387754, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.433673469387754, \"z\": 1.8856514177172805}, {\"x\": -3.7965306122448976, \"y\": 2.5041107551044055, \"z\": 1.8495918367346933}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.7418226851197924}, {\"x\": -3.955437311208223, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.955437311208223, \"y\": 2.6283673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": -1.6548979591836734}, {\"x\": -3.9549440234958846, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.9549440234958846, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -3.7965306122448976, \"y\": 2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -3.9549440234958846, \"y\": 2.6283673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": -1.149111272540278}, {\"x\": -3.7965306122448976, \"y\": 2.6759676978167297, \"z\": -1.2655102040816328}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.149111272540277}, {\"x\": -3.9549440234958824, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.3324187235408944}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.9549440234958824, \"y\": 2.6283673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.3324187235408944}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.675967697816728, \"z\": 1.2655102040816324}, {\"x\": -3.955437311208222, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.590109225563313}, {\"x\": -3.955437311208222, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.7152524529982225, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.955437311208222, \"y\": 2.6283673469387754, \"z\": 1.654897959183673}, {\"x\": -3.7965306122448976, \"y\": 2.6283673469387754, \"z\": 1.741822685119792}, {\"x\": -3.7965306122448976, \"y\": 2.6838971120578297, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.991224489795918, \"y\": -2.6579385766336405, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.3324187235408926}, {\"x\": -3.991224489795918, \"y\": -2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.5901092255633147}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -1.752776522608419}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.169139467370988, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155815, \"z\": -1.2655102040816328}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155815, \"z\": -1.2655102040816328}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -4.169139467370988, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": -1.070816326530612}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155815, \"z\": -1.2655102040816328}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -0.9338379607725753}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": 1.070816326530612}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 0.9338379607725749}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.506308793585488, \"z\": 1.070816326530612}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.3324187235408926}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.6097168055155806, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.3324187235408926}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.169139467370987, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.6283673469387754, \"z\": 1.5901092255633147}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -4.169139467370987, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -4.042838529184806, \"y\": -2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 1.7527765226084195}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -1.752776522608419}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -1.739966300419245}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -1.752776522608419}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": -1.6548979591836734}, {\"x\": -4.169139467370988, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -4.169139467370988, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -4.169139467370988, \"y\": -2.433673469387755, \"z\": -1.4602040816326531}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -4.18024588722862, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -4.138158775582057, \"y\": -2.433673469387755, \"z\": -1.2655102040816328}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -4.18024588722862, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -4.18024588722862, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.401778363293682, \"z\": -0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": -0.9338379607725753}, {\"x\": -3.991224489795918, \"y\": -2.401778363293682, \"z\": -0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": -0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.401778363293682, \"z\": -0.8761224489795918}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": -0.4867346938775512}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": -0.6814285714285715}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -0.400442776166976}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 0.4004427761669769}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": 0.6814285714285715}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.2552191531082344, \"z\": 0.4867346938775512}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.3125192641661516, \"z\": 0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 0.9338379607725749}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.4017783632936824, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 0.9338379607725749}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": -2.433673469387755, \"z\": 1.070816326530612}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -4.138158775582058, \"y\": -2.433673469387755, \"z\": 1.2655102040816324}, {\"x\": -4.169139467370987, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -4.169139467370987, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -4.169139467370987, \"y\": -2.433673469387755, \"z\": 1.4602040816326527}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.433673469387755, \"z\": 1.7527765226084195}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -4.10317960079415, \"y\": -2.433673469387755, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -1.739966300419245}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.1018036663404054, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": -2.1018036663404054, \"z\": -1.6548979591836734}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": -1.612125427847571}, {\"x\": -3.991224489795918, \"y\": -2.1018036663404054, \"z\": -1.6548979591836734}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": -1.6548979591836734}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": -1.4602040816326531}, {\"x\": -4.18024588722862, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -4.18024588722862, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -4.15466939180144, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -4.18024588722862, \"y\": -2.238979591836735, \"z\": -1.2655102040816328}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -4.15466939180144, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -4.15466939180144, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": -1.070816326530612}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": -0.8761224489795918}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": -0.6814285714285715}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": -0.400442776166976}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -4.1280496282407535, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": -4.1280496282407535, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": -0.0973469387755106}, {\"x\": -4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -4.1280496282407535, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": -2.1991799385091104, \"z\": 0.0973469387755097}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 0.4004427761669769}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 0.4004427761669769}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -4.006904388098048, \"y\": -2.238979591836735, \"z\": 0.4867346938775512}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -4.053831664284882, \"y\": -2.238979591836735, \"z\": 0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": -2.238979591836735, \"z\": 0.8761224489795918}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -4.153253017617557, \"y\": -2.238979591836735, \"z\": 1.070816326530612}, {\"x\": -4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -4.180245887228621, \"y\": -2.238979591836735, \"z\": 1.2655102040816324}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.101803666340405, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -4.164981484217447, \"y\": -2.238979591836735, \"z\": 1.4602040816326527}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -4.075249957920129, \"y\": -2.238979591836735, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.238979591836735, \"z\": 1.739966300419245}, {\"x\": -3.991224489795918, \"y\": -2.101803666340405, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": -1.612125427847571}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": -1.3899223518372854}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -4.089646806944719, \"y\": -2.044285714285714, \"z\": -1.4602040816326531}, {\"x\": -4.15466939180144, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -4.15466939180144, \"y\": -2.044285714285714, \"z\": -1.2655102040816328}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": -0.9456206868183421}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": -0.8761224489795918}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": -1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": -0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": -0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": -0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": -0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": -0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -4.1280496282407535, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.1280496282407535, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.1280496282407535, \"y\": -2.044285714285714, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524414, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.128049628240754, \"y\": -2.044285714285714, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524414, \"z\": 0.29204081632653}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524414, \"z\": 0.29204081632653}, {\"x\": -4.135721983457607, \"y\": -2.044285714285714, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": 0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": 0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": -2.044285714285714, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": 0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": 0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": -2.044285714285714, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": 0.9456206868183417}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": 0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": 0.9456206868183417}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": -2.044285714285714, \"z\": 0.8761224489795918}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -4.178387136434948, \"y\": -2.044285714285714, \"z\": 1.070816326530612}, {\"x\": -4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -4.154669391801441, \"y\": -2.044285714285714, \"z\": 1.2655102040816324}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -4.08964680694472, \"y\": -2.044285714285714, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -2.044285714285714, \"z\": 1.6121254278475714}, {\"x\": -3.991224489795918, \"y\": -1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": -1.3899223518372854}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": -1.2655102040816328}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": -1.1688955968360606}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": -1.2655102040816328}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -4.069662769787541, \"y\": -1.8495918367346937, \"z\": -1.2655102040816328}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": -0.9456206868183421}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": -0.8785477031549855}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": -0.9456206868183421}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": 0.9456206868183417}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -4.152039851393803, \"y\": -1.8495918367346937, \"z\": 1.070816326530612}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -4.069662769787542, \"y\": -1.8495918367346937, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.8495918367346937, \"z\": 1.3899223518372859}, {\"x\": -3.991224489795918, \"y\": -1.7520685343636795, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": -1.1688955968360606}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": -0.8785477031549855}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": -0.8785477031549855}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": -0.994320193892551}, {\"x\": -4.069157344525446, \"y\": -1.6548979591836734, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": -0.994320193892551}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": -1.070816326530612}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": 0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.069157344525445, \"y\": -1.6548979591836734, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.6548979591836734, \"z\": 1.1688955968360597}, {\"x\": -3.991224489795918, \"y\": -1.5573431561324953, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": -0.994320193892551}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": -0.7292457982088552}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": 0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": 0.7991386773965079}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": 0.7292457982088552}, {\"x\": -4.119471427603555, \"y\": -1.4602040816326531, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": -1.4602040816326531, \"z\": 0.994320193892551}, {\"x\": -3.991224489795918, \"y\": -1.2947595218317738, \"z\": 0.8761224489795918}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": -0.7292457982088552}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": -0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": -0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": -0.858146046394674}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": -0.7292457982088552}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": 0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": 0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": 0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": -1.2655102040816328, \"z\": 0.8581460463946735}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": -0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": -4.153776672808484, \"y\": -1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.991224489795918, \"y\": -0.9441344647122807, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.991224489795918, \"y\": -0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": -0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": -0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -3.991224489795918, \"y\": -0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": -0.454141454084696}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": -0.2920408163265309, \"z\": 0.454141454084696}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": -4.153853738646481, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": -0.42646590685371244}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": -3.991224489795918, \"y\": -0.0973469387755106, \"z\": 0.42646590685371244}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": -0.42646590685371244}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -3.991224489795918, \"y\": 0.0973469387755097, \"z\": 0.42646590685371244}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": -0.454141454084696}, {\"x\": -3.991224489795918, \"y\": 0.29204081632653, \"z\": 0.454141454084696}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -4.153853738646481, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.40834059587452387, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": -0.5033419068383234}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -3.991224489795918, \"y\": 0.4867346938775512, \"z\": 0.5033419068383234}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": -0.5641070518077917}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -3.991224489795918, \"y\": 0.6814285714285715, \"z\": 0.5641070518077909}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": 0.6039490278188699}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": -0.64731296128359}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": 0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -3.991224489795918, \"y\": 0.8761224489795918, \"z\": 0.6473129612835891}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": 0.6039490278188699}, {\"x\": -3.991224489795918, \"y\": 0.9441344647122802, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": -0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": -0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": -0.7428396042774175}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": 0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": 0.7292457982088552}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": 0.6814285714285715}, {\"x\": -4.153776672808484, \"y\": 1.070816326530612, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": 0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": 1.070816326530612, \"z\": 0.7428396042774166}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": 0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": -0.9943201938925501}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": -0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": -0.7991386773965079}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": -0.8581460463946731}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": -0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -3.991224489795918, \"y\": 1.2655102040816324, \"z\": 0.8581460463946726}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": 0.7292457982088552}, {\"x\": -3.991224489795918, \"y\": 1.2947595218317742, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": -1.1688955968360606}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": -0.8785477031549855}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": -0.9943201938925501}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": -0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": 0.8785477031549851}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": 0.8785477031549851}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": 0.8785477031549851}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.4602040816326527, \"z\": 0.9943201938925501}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.119471427603555, \"y\": 1.4602040816326527, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 1.5573431561324957, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": -1.2655102040816328}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": -1.1688955968360606}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": -1.1688955968360606}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": -0.8785477031549855}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": -0.9456206868183421}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": -0.8785477031549855}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": 0.9456206868183417}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": 0.8785477031549851}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": 0.9456206868183417}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.654897959183673, \"z\": 1.1688955968360597}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -4.069157344525445, \"y\": 1.654897959183673, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 1.752068534363679, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": 1.3899223518372859}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": -1.6121254278475718}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671517, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": -1.3899223518372854}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -4.15466939180144, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -4.069662769787541, \"y\": 1.8495918367346933, \"z\": -1.2655102040816328}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.15466939180144, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -4.15466939180144, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": -0.9456206868183421}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690493, \"z\": -0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": -0.9456206868183421}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": -1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690493, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": -0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690493, \"z\": -0.8761224489795918}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": -0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": -0.6814285714285715}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": -0.4867346938775512}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": 0.29204081632653}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": 0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": 0.29204081632653}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": 0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": 0.4867346938775512}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690511, \"z\": 0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690511, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": 0.9456206868183417}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690511, \"z\": 0.8761224489795918}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -4.152039851393803, \"y\": 1.8495918367346933, \"z\": 1.070816326530612}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.8495918367346933, \"z\": 1.3899223518372859}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -4.069662769787542, \"y\": 1.8495918367346933, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 1.9148231489671508, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": 1.6121254278475714}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404036, \"z\": -1.6548979591836734}, {\"x\": -4.075249957920129, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -1.7399663004192445}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": -1.6121254278475718}, {\"x\": -4.075249957920129, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404036, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": -1.6121254278475718}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -4.075249957920129, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -4.075249957920129, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": -1.4602040816326531}, {\"x\": -4.15466939180144, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -4.15466939180144, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -4.18024588722862, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -4.15466939180144, \"y\": 2.0442857142857136, \"z\": -1.2655102040816328}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -4.18024588722862, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -4.18024588722862, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": -1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": -0.8761224489795918}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": -0.6814285714285715}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -0.40044277616697155}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -0.40044277616697155}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": -0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": -0.0973469387755106}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": -0.2920408163265309}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": -0.2920408163265309}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": -0.0973469387755106}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": 0.0973469387755097}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": -0.0973469387755106}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": -0.0973469387755106}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": 0.0973469387755097}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -4.128049628240754, \"y\": 2.0442857142857136, \"z\": 0.0973469387755097}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -3.991224489795918, \"y\": 2.1991799385091113, \"z\": 0.0973469387755097}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 0.40044277616697066}, {\"x\": -3.991224489795918, \"y\": 2.2175322528784465, \"z\": 0.29204081632653}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.135721983457607, \"y\": 2.0442857142857136, \"z\": 0.29204081632653}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.149347688183664, \"y\": 2.0442857142857136, \"z\": 0.4867346938775512}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.165332561118745, \"y\": 2.0442857142857136, \"z\": 0.6814285714285715}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.1778716856340194, \"y\": 2.0442857142857136, \"z\": 0.8761224489795918}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -4.178387136434948, \"y\": 2.0442857142857136, \"z\": 1.070816326530612}, {\"x\": -4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -4.154669391801441, \"y\": 2.0442857142857136, \"z\": 1.2655102040816324}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404054, \"z\": 1.654897959183673}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.0442857142857136, \"z\": 1.6121254278475714}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404054, \"z\": 1.654897959183673}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -4.08964680694472, \"y\": 2.0442857142857136, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.1018036663404054, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 1.739966300419245}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -1.7399663004192445}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -1.7527765226084195}, {\"x\": -4.075249957920129, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -1.7399663004192445}, {\"x\": -4.075249957920129, \"y\": 2.238979591836734, \"z\": -1.6548979591836734}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": -1.4602040816326531}, {\"x\": -4.18024588722862, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.18024588722862, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -4.18024588722862, \"y\": 2.238979591836734, \"z\": -1.2655102040816328}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -0.9338379607725731}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -0.9338379607725731}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": -1.070816326530612}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": -0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": -0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": -0.6814285714285715}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": -0.6814285714285715}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": -0.40044277616697155}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": -0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 0.40044277616697066}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": 0.6814285714285715}, {\"x\": -4.006904388098049, \"y\": 2.238979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.255219153108235, \"z\": 0.4867346938775512}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": 0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": 0.8761224489795918}, {\"x\": -4.053831664284883, \"y\": 2.238979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -3.991224489795918, \"y\": 2.312519264166153, \"z\": 0.6814285714285715}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": 0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 0.9338379607725731}, {\"x\": -3.991224489795918, \"y\": 2.4017783632936833, \"z\": 0.8761224489795918}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -4.106063999315799, \"y\": 2.238979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -4.153253017617557, \"y\": 2.238979591836734, \"z\": 1.070816326530612}, {\"x\": -4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -4.180245887228621, \"y\": 2.238979591836734, \"z\": 1.2655102040816324}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.164981484217447, \"y\": 2.238979591836734, \"z\": 1.4602040816326527}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.238979591836734, \"z\": 1.739966300419245}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -4.0752499579201285, \"y\": 2.238979591836734, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -1.7527765226084195}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889063, \"z\": -1.6548979591836734}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.10317960079415, \"y\": 2.433673469387754, \"z\": -1.6548979591836734}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": -1.4602040816326531}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": -1.070816326530612}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": -1.2655102040816328}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": -1.2655102040816328}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": -0.9338379607725731}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": -1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 0.9338379607725731}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": 1.070816326530612}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": 1.2655102040816324}, {\"x\": -4.060015200176018, \"y\": 2.433673469387754, \"z\": 1.070816326530612}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -3.991224489795918, \"y\": 2.5063087935854886, \"z\": 1.070816326530612}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": 1.2655102040816324}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.3324187235408944}, {\"x\": -3.991224489795918, \"y\": 2.60971680551558, \"z\": 1.2655102040816324}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.138158775582058, \"y\": 2.433673469387754, \"z\": 1.2655102040816324}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.590109225563313}, {\"x\": -4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.590109225563313}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.169139467370988, \"y\": 2.433673469387754, \"z\": 1.4602040816326527}, {\"x\": -4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -4.103179600794151, \"y\": 2.433673469387754, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.433673469387754, \"z\": 1.7527765226084204}, {\"x\": -3.991224489795918, \"y\": 2.5981580851889055, \"z\": 1.654897959183673}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.5901092255633151}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": -1.3324187235408926}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": -1.4602040816326531}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.3324187235408944}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -4.042838529184806, \"y\": 2.6283673469387754, \"z\": 1.4602040816326527}, {\"x\": -3.991224489795918, \"y\": 2.6283673469387754, \"z\": 1.590109225563313}, {\"x\": -3.991224489795918, \"y\": 2.657938576633641, \"z\": 1.4602040816326527}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": -0.8761224489795918}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": -0.9456206868183421}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": -0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": -0.8761224489795918}, {\"x\": -4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": -0.4867346938775512}, {\"x\": -4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": -0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": -0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.238948728121449, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -4.238948728121449, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524414, \"z\": 0.29204081632653}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": -1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.238948728121448, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524414, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": 0.4867346938775512}, {\"x\": -4.238948728121448, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": -1.9658731394524414, \"z\": 0.29204081632653}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -4.238948728121448, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": 0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9744923503409622, \"z\": 0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": 0.8761224489795918}, {\"x\": -4.22107450539463, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9859474869329623, \"z\": 0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -4.22107450539463, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.9828261655690507, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": 0.9456206868183417}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": -0.9456206868183421}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": -0.8785477031549855}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": -0.9456206868183421}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": -0.8761224489795918}, {\"x\": -4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.221074505394631, \"y\": -1.8495918367346937, \"z\": -0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": -0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -4.238948728121449, \"y\": -1.8495918367346937, \"z\": -0.2920408163265309}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": -1.8495918367346937, \"z\": 0.0973469387755097}, {\"x\": -4.238948728121448, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.238948728121448, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -4.238948728121448, \"y\": -1.8495918367346937, \"z\": 0.29204081632653}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.2330006538847655, \"y\": -1.8495918367346937, \"z\": 0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.22107450539463, \"y\": -1.8495918367346937, \"z\": 0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.8495918367346937, \"z\": 0.9456206868183417}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.1989527961478945, \"y\": -1.8495918367346937, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": -0.8785477031549855}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": -0.8761224489795918}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": -0.6814285714285715}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": -0.4867346938775512}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281129025}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": -0.2920408163265309}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.323452700958596, \"y\": -1.6548979591836734, \"z\": 0.0973469387755097}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -4.311977606472133, \"y\": -1.6548979591836734, \"z\": 0.29204081632653}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": -1.6548979591836734, \"z\": 0.4867346938775512}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": 0.7991386773965079}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": 0.7991386773965079}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": -1.6548979591836734, \"z\": 0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": -1.6548979591836734, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.6548979591836734, \"z\": 0.8785477031549851}, {\"x\": -4.185918367346939, \"y\": -1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": -0.7292457982088552}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": -0.7991386773965088}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": -0.6814285714285715}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": -0.2920408163265309}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": -0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": -1.4602040816326531, \"z\": 0.29204081632653}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": -1.4602040816326531, \"z\": 0.4867346938775512}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": 0.7292457982088552}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.4602040816326531, \"z\": 0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": 0.7292457982088552}, {\"x\": -4.252149808350071, \"y\": -1.4602040816326531, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": -0.7292457982088552}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": -0.6814285714285715}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": -0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": -0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": -0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": -1.2655102040816328, \"z\": 0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": -1.2655102040816328, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.2655102040816328, \"z\": 0.7292457982088552}, {\"x\": -4.185918367346939, \"y\": -1.1197086814291062, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.185918367346939, \"y\": -1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.185918367346939, \"y\": -0.8761224489795918, \"z\": 0.6039490278188708}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": -0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917717, \"z\": -0.4867346938775512}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917717, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.185918367346939, \"y\": -0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": -0.4914802753424574}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": -4.3493457802893465, \"y\": -0.2920408163265309, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.2920408163265309, \"z\": 0.49148027534245653}, {\"x\": -4.185918367346939, \"y\": -0.22011473203170606, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": -0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": -0.0973469387755106, \"z\": 0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": -4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": -0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": -4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -4.185918367346939, \"y\": 0.0973469387755097, \"z\": 0.47573962080386245}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": -4.185918367346939, \"y\": 0.22011473203170695, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": -0.4914802753424574}, {\"x\": -4.349345780289344, \"y\": 0.29204081632653, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177704, \"z\": 0.4867346938775512}, {\"x\": -4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177704, \"z\": 0.4867346938775512}, {\"x\": -4.349345780289342, \"y\": 0.29204081632653, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.185918367346939, \"y\": 0.29204081632653, \"z\": 0.49148027534245653}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": -0.5166404986114888}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.185918367346939, \"y\": 0.4867346938775512, \"z\": 0.5166404986114888}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": -0.5541864225367332}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.185918367346939, \"y\": 0.6814285714285715, \"z\": 0.5541864225367323}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": 0.6039490278188699}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": 0.6039490278188699}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": -0.6039490278188717}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": 0.8761224489795918, \"z\": 0.6039490278188699}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": -0.7292457982088552}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": -0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.070816326530612, \"z\": 0.6658550950639137}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.1197086814291053, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": 0.7292457982088552}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": -0.7292457982088552}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": -0.7991386773965079}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": -0.7292457982088552}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": -0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": -0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": -4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -4.360480135612924, \"y\": 1.2655102040816324, \"z\": 0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.2655102040816324, \"z\": 0.7292457982088552}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -4.230004574477569, \"y\": 1.2655102040816324, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": -0.8785477031549855}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": -0.7991386773965079}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": -0.7991386773965079}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": -0.6814285714285715}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": -0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": -0.2920408163265309}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -4.376796616825051, \"y\": 1.4602040816326527, \"z\": 0.29204081632653}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -4.329066432365574, \"y\": 1.4602040816326527, \"z\": 0.4867346938775512}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.4602040816326527, \"z\": 0.7991386773965079}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -4.252149808350071, \"y\": 1.4602040816326527, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.6503891731762996, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": 0.8785477031549851}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": -0.8785477031549855}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": -0.9456206868183421}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": -0.8785477031549855}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": -0.8761224489795918}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": -0.6814285714285715}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": -0.4867346938775512}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": -0.2920408163265309}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -4.323452700958596, \"y\": 1.654897959183673, \"z\": 0.0973469387755097}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -4.311977606472133, \"y\": 1.654897959183673, \"z\": 0.29204081632653}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -4.2877058899000975, \"y\": 1.654897959183673, \"z\": 0.4867346938775512}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -4.247729429011101, \"y\": 1.654897959183673, \"z\": 0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": 0.9456206868183417}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.654897959183673, \"z\": 0.8785477031549851}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": 0.9456206868183417}, {\"x\": -4.1869215374280015, \"y\": 1.654897959183673, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": -0.9456206868183421}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690493, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690493, \"z\": -0.8761224489795918}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": -0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": -0.8761224489795918}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690493, \"z\": -0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": -0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": -0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": -0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": -0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": -0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": -0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": -0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": -0.2920408163265309}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": -0.2920408163265309}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": -0.0973469387755106}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": -0.0973469387755106}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": 0.29204081632653}, {\"x\": -4.241360859156938, \"y\": 1.8495918367346933, \"z\": 0.0973469387755097}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": 1.961480027892831, \"z\": 0.0973469387755097}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": 0.29204081632653}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": 0.4867346938775512}, {\"x\": -4.238948728121449, \"y\": 1.8495918367346933, \"z\": 0.29204081632653}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9658731394524418, \"z\": 0.29204081632653}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": 0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": 0.6814285714285715}, {\"x\": -4.2330006538847655, \"y\": 1.8495918367346933, \"z\": 0.4867346938775512}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -4.185918367346939, \"y\": 1.9744923503409613, \"z\": 0.4867346938775512}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": 0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690511, \"z\": 0.8761224489795918}, {\"x\": -4.22107450539463, \"y\": 1.8495918367346933, \"z\": 0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.9859474869329627, \"z\": 0.6814285714285715}, {\"x\": -4.1989527961478945, \"y\": 1.8495918367346933, \"z\": 0.8761224489795918}, {\"x\": -4.185918367346939, \"y\": 1.8495918367346933, \"z\": 0.9456206868183417}, {\"x\": -4.185918367346939, \"y\": 1.9828261655690511, \"z\": 0.8761224489795918}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.5054467943168572, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": -0.2920408163265309}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281129025}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": -0.26021254281129025}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4602040816326531, \"z\": 0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -4.395950504331305, \"y\": -1.4602040816326531, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": -1.4467491042151663, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": -0.4398842856519041}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": -0.2920408163265309}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": -1.2655102040816328, \"z\": 0.0973469387755097}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.481313440430452, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.2655102040816328, \"z\": 0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.481313440430452, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.427949220756398, \"y\": -1.2655102040816328, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": -1.0941001297932074, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": -0.20914525481650958}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": -0.0973469387755106}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.481313440430451, \"y\": -1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.527270396890964, \"y\": -1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.481313440430452, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.481313440430452, \"y\": -1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.383244743124472, \"y\": -1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106043, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106043, \"z\": -0.2920408163265309}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": -0.20914525481650958}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106043, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.545366192071021, \"y\": -0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.395027279654958, \"y\": -0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.399446565262508, \"y\": -0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917717, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917717, \"z\": -0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917717, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": -0.43019727952888775}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": -4.394187194212272, \"y\": -0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.380612244897959, \"y\": -0.3297582229917735, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": -0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": -0.43019727952888775}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": -0.43019727952888775}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": -0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": -4.380612244897959, \"y\": -0.2920408163265309, \"z\": 0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": 0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": -0.4811844423093117}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": -0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": -0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": -0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": -4.380612244897959, \"y\": -0.0973469387755106, \"z\": 0.4811844423093108}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": 0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": 0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": 0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": -0.4811844423093117}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": -0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": -0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": -0.43019727952888775}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.380612244897959, \"y\": 0.0973469387755097, \"z\": 0.4811844423093108}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": 0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": 0.44395351863686017}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": 0.43019727952888864}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177526, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": -0.4853893386207462}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": -0.43019727952888775}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177704, \"z\": 0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177704, \"z\": 0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.380612244897959, \"y\": 0.29204081632653, \"z\": 0.4853893386207453}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": 0.43019727952888864}, {\"x\": -4.380612244897959, \"y\": 0.32975822299177704, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": -0.49100664360774005}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.4867346938775512, \"z\": 0.49100664360773916}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.394187194212272, \"y\": 0.4867346938775512, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": -0.49658751218672226}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106035, \"z\": -0.2920408163265309}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": -0.4867346938775512}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106035, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": -0.2091452548165087}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.6814285714285715, \"z\": 0.49658751218672137}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.399446565262508, \"y\": 0.6814285714285715, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": -0.49881367487359096}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": -0.4867346938775512}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": -0.2091452548165087}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": -0.2091452548165087}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.54536619207102, \"y\": 0.8761224489795918, \"z\": -0.2920408163265309}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": 0.0973469387755097}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.481313440430452, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.545366192071021, \"y\": 0.8761224489795918, \"z\": 0.29204081632653}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.481313440430452, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.481313440430452, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 0.8761224489795918, \"z\": 0.4988136748735901}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.395027279654958, \"y\": 0.8761224489795918, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": -0.4901958243359097}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": -0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": -0.4867346938775512}, {\"x\": -4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.481313440430451, \"y\": 1.070816326530612, \"z\": -0.2920408163265309}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -4.527270396890964, \"y\": 1.070816326530612, \"z\": 0.0973469387755097}, {\"x\": -4.481313440430452, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -4.481313440430452, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.481313440430452, \"y\": 1.070816326530612, \"z\": 0.29204081632653}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.383244743124472, \"y\": 1.070816326530612, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.070816326530612, \"z\": 0.4901958243359097}, {\"x\": -4.380612244897959, \"y\": 1.0941001297932065, \"z\": 0.4867346938775512}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": -0.4398842856519041}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": -4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": -4.380612244897959, \"y\": 1.446749104215166, \"z\": -0.2920408163265309}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": -0.2920408163265309}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -4.457997957939996, \"y\": 1.2655102040816324, \"z\": 0.0973469387755097}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.427949220756398, \"y\": 1.2655102040816324, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.2655102040816324, \"z\": 0.4398842856519041}, {\"x\": -4.380612244897959, \"y\": 1.4467491042151668, \"z\": 0.29204081632653}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": -0.26021254281129025}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": -0.0973469387755106}, {\"x\": -4.395950504331305, \"y\": 1.4602040816326527, \"z\": 0.0973469387755097}, {\"x\": -4.380612244897959, \"y\": 1.4602040816326527, \"z\": 0.26021254281129114}, {\"x\": -4.380612244897959, \"y\": 1.5054467943168568, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": -0.20914525481650958}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": 0.0973469387755097}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.9519757177321906, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106043, \"z\": -0.2920408163265309}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": -0.20914525481650958}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106043, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": -0.20914525481650958}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.607948680550934, \"y\": -0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": -0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.77, \"y\": -0.5650116566188101, \"z\": -0.0973469387755106}, {\"x\": -4.77, \"y\": -0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": -0.5650116566188101, \"z\": -0.0973469387755106}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.77, \"y\": -0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": -4.77, \"y\": -0.5650116566188101, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.77, \"y\": -0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": -4.77, \"y\": -0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": -4.77, \"y\": -0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.77, \"y\": -0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.703584222470437, \"y\": -0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.621353422274135, \"y\": -0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": -0.37820216523786776, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": -0.37820216523786776, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": -0.43019727952888775}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.7149569585020705, \"y\": -0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": -0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": -4.77, \"y\": -0.37820216523786776, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": -0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": -4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": -0.3782021652378704, \"z\": 0.29204081632653}, {\"x\": -4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": -4.77, \"y\": -0.3782021652378704, \"z\": 0.29204081632653}, {\"x\": -4.714956958502071, \"y\": -0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": -4.575306122448979, \"y\": -0.4867346938775512, \"z\": 0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": -0.43019727952888775}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": -0.44395351863686017}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": -0.32721696503336783}, {\"x\": -4.77, \"y\": -0.0973469387755106, \"z\": -0.36518630742796887}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": -0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": -0.2920408163265309, \"z\": 0.43019727952888864}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": 0.44395351863686017}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": -4.77, \"y\": -0.2920408163265309, \"z\": 0.3272169650333687}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": 0.44395351863686017}, {\"x\": -4.77, \"y\": -0.0973469387755106, \"z\": 0.36518630742796976}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": -0.44395351863686017}, {\"x\": -4.77, \"y\": -0.0973469387755106, \"z\": -0.36518630742796887}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": -0.44395351863686017}, {\"x\": -4.77, \"y\": -0.0973469387755106, \"z\": -0.36518630742796887}, {\"x\": -4.77, \"y\": 0.0973469387755097, \"z\": -0.36518630742796887}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": -0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": -0.0973469387755106, \"z\": 0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": 0.44395351863686017}, {\"x\": -4.77, \"y\": -0.0973469387755106, \"z\": 0.36518630742796976}, {\"x\": -4.77, \"y\": -0.0973469387755106, \"z\": 0.36518630742796976}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": 0.44395351863686017}, {\"x\": -4.77, \"y\": 0.0973469387755097, \"z\": 0.36518630742796976}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": -0.44395351863686017}, {\"x\": -4.77, \"y\": 0.0973469387755097, \"z\": -0.36518630742796887}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": -0.43019727952888775}, {\"x\": -4.77, \"y\": 0.0973469387755097, \"z\": -0.36518630742796887}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": -0.43019727952888775}, {\"x\": -4.575306122448979, \"y\": 0.0973469387755097, \"z\": 0.44395351863686017}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": 0.43019727952888864}, {\"x\": -4.77, \"y\": 0.0973469387755097, \"z\": 0.36518630742796976}, {\"x\": -4.77, \"y\": 0.0973469387755097, \"z\": 0.36518630742796976}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": 0.43019727952888864}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": -4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": -4.77, \"y\": 0.37820216523786865, \"z\": -0.2920408163265309}, {\"x\": -4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": -0.43019727952888775}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": -0.3272169650333687}, {\"x\": -4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": 0.37820216523786865, \"z\": -0.2920408163265309}, {\"x\": -4.77, \"y\": 0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": -4.77, \"y\": 0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": -4.77, \"y\": 0.3782021652378713, \"z\": 0.29204081632653}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": 0.3782021652378713, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": 0.3782021652378713, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.77, \"y\": 0.29204081632653, \"z\": 0.3272169650333696}, {\"x\": -4.575306122448979, \"y\": 0.29204081632653, \"z\": 0.43019727952888864}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": -0.3995601435005369}, {\"x\": -4.77, \"y\": 0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": -4.77, \"y\": 0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.77, \"y\": 0.4867346938775512, \"z\": -0.20099187561523113}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.71495695850207, \"y\": 0.4867346938775512, \"z\": -0.2920408163265309}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.77, \"y\": 0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": -4.77, \"y\": 0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.77, \"y\": 0.565011656618811, \"z\": -0.0973469387755106}, {\"x\": -4.77, \"y\": 0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": -4.77, \"y\": 0.4867346938775512, \"z\": 0.20099187561523202}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.77, \"y\": 0.565011656618811, \"z\": 0.0973469387755097}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.4867346938775512, \"z\": 0.3995601435005378}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.714956958502071, \"y\": 0.4867346938775512, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": -0.3444331709299746}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106035, \"z\": -0.2920408163265309}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106035, \"z\": -0.2920408163265309}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": -0.2091452548165087}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106035, \"z\": -0.2920408163265309}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": -0.2920408163265309}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.703584222470437, \"y\": 0.6814285714285715, \"z\": 0.0973469387755097}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.621353422274135, \"y\": 0.6814285714285715, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.6814285714285715, \"z\": 0.3444331709299746}, {\"x\": -4.575306122448979, \"y\": 0.7954284955106052, \"z\": 0.29204081632653}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": -0.2091452548165087}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": -0.0973469387755106}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": 0.0973469387755097}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": -0.0973469387755106}, {\"x\": -4.607948680550934, \"y\": 0.8761224489795918, \"z\": 0.0973469387755097}, {\"x\": -4.575306122448979, \"y\": 0.8761224489795918, \"z\": 0.20914525481651047}, {\"x\": -4.575306122448979, \"y\": 0.9519757177321901, \"z\": 0.0973469387755097}], \"faces\": [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20], [21, 22, 23], [24, 25, 26], [27, 28, 29], [30, 31, 32], [33, 34, 35], [36, 37, 38], [39, 40, 41], [42, 43, 44], [45, 46, 47], [48, 49, 50], [51, 52, 53], [54, 55, 56], [57, 58, 59], [60, 61, 62], [63, 64, 65], [66, 67, 68], [69, 70, 71], [72, 73, 74], [75, 76, 77], [78, 79, 80], [81, 82, 83], [84, 85, 86], [87, 88, 89], [90, 91, 92], [93, 94, 95], [96, 97, 98], [99, 100, 101], [102, 103, 104], [105, 106, 107], [108, 109, 110], [111, 112, 113], [114, 115, 116], [117, 118, 119], [120, 121, 122], [123, 124, 125], [126, 127, 128], [129, 130, 131], [132, 133, 134], [135, 136, 137], [138, 139, 140], [141, 142, 143], [144, 145, 146], [147, 148, 149], [150, 151, 152], [153, 154, 155], [156, 157, 158], [159, 160, 161], [162, 163, 164], [165, 166, 167], [168, 169, 170], [171, 172, 173], [174, 175, 176], [177, 178, 179], [180, 181, 182], [183, 184, 185], [186, 187, 188], [189, 190, 191], [192, 193, 194], [195, 196, 197], [198, 199, 200], [201, 202, 203], [204, 205, 206], [207, 208, 209], [210, 211, 212], [213, 214, 215], [216, 217, 218], [219, 220, 221], [222, 223, 224], [225, 226, 227], [228, 229, 230], [231, 232, 233], [234, 235, 236], [237, 238, 239], [240, 241, 242], [243, 244, 245], [246, 247, 248], [249, 250, 251], [252, 253, 254], [255, 256, 257], [258, 259, 260], [261, 262, 263], [264, 265, 266], [267, 268, 269], [270, 271, 272], [273, 274, 275], [276, 277, 278], [279, 280, 281], [282, 283, 284], [285, 286, 287], [288, 289, 290], [291, 292, 293], [294, 295, 296], [297, 298, 299], [300, 301, 302], [303, 304, 305], [306, 307, 308], [309, 310, 311], [312, 313, 314], [315, 316, 317], [318, 319, 320], [321, 322, 323], [324, 325, 326], [327, 328, 329], [330, 331, 332], [333, 334, 335], [336, 337, 338], [339, 340, 341], [342, 343, 344], [345, 346, 347], [348, 349, 350], [351, 352, 353], [354, 355, 356], [357, 358, 359], [360, 361, 362], [363, 364, 365], [366, 367, 368], [369, 370, 371], [372, 373, 374], [375, 376, 377], [378, 379, 380], [381, 382, 383], [384, 385, 386], [387, 388, 389], [390, 391, 392], [393, 394, 395], [396, 397, 398], [399, 400, 401], [402, 403, 404], [405, 406, 407], [408, 409, 410], [411, 412, 413], [414, 415, 416], [417, 418, 419], [420, 421, 422], [423, 424, 425], [426, 427, 428], [429, 430, 431], [432, 433, 434], [435, 436, 437], [438, 439, 440], [441, 442, 443], [444, 445, 446], [447, 448, 449], [450, 451, 452], [453, 454, 455], [456, 457, 458], [459, 460, 461], [462, 463, 464], [465, 466, 467], [468, 469, 470], [471, 472, 473], [474, 475, 476], [477, 478, 479], [480, 481, 482], [483, 484, 485], [486, 487, 488], [489, 490, 491], [492, 493, 494], [495, 496, 497], [498, 499, 500], [501, 502, 503], [504, 505, 506], [507, 508, 509], [510, 511, 512], [513, 514, 515], [516, 517, 518], [519, 520, 521], [522, 523, 524], [525, 526, 527], [528, 529, 530], [531, 532, 533], [534, 535, 536], [537, 538, 539], [540, 541, 542], [543, 544, 545], [546, 547, 548], [549, 550, 551], [552, 553, 554], [555, 556, 557], [558, 559, 560], [561, 562, 563], [564, 565, 566], [567, 568, 569], [570, 571, 572], [573, 574, 575], [576, 577, 578], [579, 580, 581], [582, 583, 584], [585, 586, 587], [588, 589, 590], [591, 592, 593], [594, 595, 596], [597, 598, 599], [600, 601, 602], [603, 604, 605], [606, 607, 608], [609, 610, 611], [612, 613, 614], [615, 616, 617], [618, 619, 620], [621, 622, 623], [624, 625, 626], [627, 628, 629], [630, 631, 632], [633, 634, 635], [636, 637, 638], [639, 640, 641], [642, 643, 644], [645, 646, 647], [648, 649, 650], [651, 652, 653], [654, 655, 656], [657, 658, 659], [660, 661, 662], [663, 664, 665], [666, 667, 668], [669, 670, 671], [672, 673, 674], [675, 676, 677], [678, 679, 680], [681, 682, 683], [684, 685, 686], [687, 688, 689], [690, 691, 692], [693, 694, 695], [696, 697, 698], [699, 700, 701], [702, 703, 704], [705, 706, 707], [708, 709, 710], [711, 712, 713], [714, 715, 716], [717, 718, 719], [720, 721, 722], [723, 724, 725], [726, 727, 728], [729, 730, 731], [732, 733, 734], [735, 736, 737], [738, 739, 740], [741, 742, 743], [744, 745, 746], [747, 748, 749], [750, 751, 752], [753, 754, 755], [756, 757, 758], [759, 760, 761], [762, 763, 764], [765, 766, 767], [768, 769, 770], [771, 772, 773], [774, 775, 776], [777, 778, 779], [780, 781, 782], [783, 784, 785], [786, 787, 788], [789, 790, 791], [792, 793, 794], [795, 796, 797], [798, 799, 800], [801, 802, 803], [804, 805, 806], [807, 808, 809], [810, 811, 812], [813, 814, 815], [816, 817, 818], [819, 820, 821], [822, 823, 824], [825, 826, 827], [828, 829, 830], [831, 832, 833], [834, 835, 836], [837, 838, 839], [840, 841, 842], [843, 844, 845], [846, 847, 848], [849, 850, 851], [852, 853, 854], [855, 856, 857], [858, 859, 860], [861, 862, 863], [864, 865, 866], [867, 868, 869], [870, 871, 872], [873, 874, 875], [876, 877, 878], [879, 880, 881], [882, 883, 884], [885, 886, 887], [888, 889, 890], [891, 892, 893], [894, 895, 896], [897, 898, 899], [900, 901, 902], [903, 904, 905], [906, 907, 908], [909, 910, 911], [912, 913, 914], [915, 916, 917], [918, 919, 920], [921, 922, 923], [924, 925, 926], [927, 928, 929], [930, 931, 932], [933, 934, 935], [936, 937, 938], [939, 940, 941], [942, 943, 944], [945, 946, 947], [948, 949, 950], [951, 952, 953], [954, 955, 956], [957, 958, 959], [960, 961, 962], [963, 964, 965], [966, 967, 968], [969, 970, 971], [972, 973, 974], [975, 976, 977], [978, 979, 980], [981, 982, 983], [984, 985, 986], [987, 988, 989], [990, 991, 992], [993, 994, 995], [996, 997, 998], [999, 1000, 1001], [1002, 1003, 1004], [1005, 1006, 1007], [1008, 1009, 1010], [1011, 1012, 1013], [1014, 1015, 1016], [1017, 1018, 1019], [1020, 1021, 1022], [1023, 1024, 1025], [1026, 1027, 1028], [1029, 1030, 1031], [1032, 1033, 1034], [1035, 1036, 1037], [1038, 1039, 1040], [1041, 1042, 1043], [1044, 1045, 1046], [1047, 1048, 1049], [1050, 1051, 1052], [1053, 1054, 1055], [1056, 1057, 1058], [1059, 1060, 1061], [1062, 1063, 1064], [1065, 1066, 1067], [1068, 1069, 1070], [1071, 1072, 1073], [1074, 1075, 1076], [1077, 1078, 1079], [1080, 1081, 1082], [1083, 1084, 1085], [1086, 1087, 1088], [1089, 1090, 1091], [1092, 1093, 1094], [1095, 1096, 1097], [1098, 1099, 1100], [1101, 1102, 1103], [1104, 1105, 1106], [1107, 1108, 1109], [1110, 1111, 1112], [1113, 1114, 1115], [1116, 1117, 1118], [1119, 1120, 1121], [1122, 1123, 1124], [1125, 1126, 1127], [1128, 1129, 1130], [1131, 1132, 1133], [1134, 1135, 1136], [1137, 1138, 1139], [1140, 1141, 1142], [1143, 1144, 1145], [1146, 1147, 1148], [1149, 1150, 1151], [1152, 1153, 1154], [1155, 1156, 1157], [1158, 1159, 1160], [1161, 1162, 1163], [1164, 1165, 1166], [1167, 1168, 1169], [1170, 1171, 1172], [1173, 1174, 1175], [1176, 1177, 1178], [1179, 1180, 1181], [1182, 1183, 1184], [1185, 1186, 1187], [1188, 1189, 1190], [1191, 1192, 1193], [1194, 1195, 1196], [1197, 1198, 1199], [1200, 1201, 1202], [1203, 1204, 1205], [1206, 1207, 1208], [1209, 1210, 1211], [1212, 1213, 1214], [1215, 1216, 1217], [1218, 1219, 1220], [1221, 1222, 1223], [1224, 1225, 1226], [1227, 1228, 1229], [1230, 1231, 1232], [1233, 1234, 1235], [1236, 1237, 1238], [1239, 1240, 1241], [1242, 1243, 1244], [1245, 1246, 1247], [1248, 1249, 1250], [1251, 1252, 1253], [1254, 1255, 1256], [1257, 1258, 1259], [1260, 1261, 1262], [1263, 1264, 1265], [1266, 1267, 1268], [1269, 1270, 1271], [1272, 1273, 1274], [1275, 1276, 1277], [1278, 1279, 1280], [1281, 1282, 1283], [1284, 1285, 1286], [1287, 1288, 1289], [1290, 1291, 1292], [1293, 1294, 1295], [1296, 1297, 1298], [1299, 1300, 1301], [1302, 1303, 1304], [1305, 1306, 1307], [1308, 1309, 1310], [1311, 1312, 1313], [1314, 1315, 1316], [1317, 1318, 1319], [1320, 1321, 1322], [1323, 1324, 1325], [1326, 1327, 1328], [1329, 1330, 1331], [1332, 1333, 1334], [1335, 1336, 1337], [1338, 1339, 1340], [1341, 1342, 1343], [1344, 1345, 1346], [1347, 1348, 1349], [1350, 1351, 1352], [1353, 1354, 1355], [1356, 1357, 1358], [1359, 1360, 1361], [1362, 1363, 1364], [1365, 1366, 1367], [1368, 1369, 1370], [1371, 1372, 1373], [1374, 1375, 1376], [1377, 1378, 1379], [1380, 1381, 1382], [1383, 1384, 1385], [1386, 1387, 1388], [1389, 1390, 1391], [1392, 1393, 1394], [1395, 1396, 1397], [1398, 1399, 1400], [1401, 1402, 1403], [1404, 1405, 1406], [1407, 1408, 1409], [1410, 1411, 1412], [1413, 1414, 1415], [1416, 1417, 1418], [1419, 1420, 1421], [1422, 1423, 1424], [1425, 1426, 1427], [1428, 1429, 1430], [1431, 1432, 1433], [1434, 1435, 1436], [1437, 1438, 1439], [1440, 1441, 1442], [1443, 1444, 1445], [1446, 1447, 1448], [1449, 1450, 1451], [1452, 1453, 1454], [1455, 1456, 1457], [1458, 1459, 1460], [1461, 1462, 1463], [1464, 1465, 1466], [1467, 1468, 1469], [1470, 1471, 1472], [1473, 1474, 1475], [1476, 1477, 1478], [1479, 1480, 1481], [1482, 1483, 1484], [1485, 1486, 1487], [1488, 1489, 1490], [1491, 1492, 1493], [1494, 1495, 1496], [1497, 1498, 1499], [1500, 1501, 1502], [1503, 1504, 1505], [1506, 1507, 1508], [1509, 1510, 1511], [1512, 1513, 1514], [1515, 1516, 1517], [1518, 1519, 1520], [1521, 1522, 1523], [1524, 1525, 1526], [1527, 1528, 1529], [1530, 1531, 1532], [1533, 1534, 1535], [1536, 1537, 1538], [1539, 1540, 1541], [1542, 1543, 1544], [1545, 1546, 1547], [1548, 1549, 1550], [1551, 1552, 1553], [1554, 1555, 1556], [1557, 1558, 1559], [1560, 1561, 1562], [1563, 1564, 1565], [1566, 1567, 1568], [1569, 1570, 1571], [1572, 1573, 1574], [1575, 1576, 1577], [1578, 1579, 1580], [1581, 1582, 1583], [1584, 1585, 1586], [1587, 1588, 1589], [1590, 1591, 1592], [1593, 1594, 1595], [1596, 1597, 1598], [1599, 1600, 1601], [1602, 1603, 1604], [1605, 1606, 1607], [1608, 1609, 1610], [1611, 1612, 1613], [1614, 1615, 1616], [1617, 1618, 1619], [1620, 1621, 1622], [1623, 1624, 1625], [1626, 1627, 1628], [1629, 1630, 1631], [1632, 1633, 1634], [1635, 1636, 1637], [1638, 1639, 1640], [1641, 1642, 1643], [1644, 1645, 1646], [1647, 1648, 1649], [1650, 1651, 1652], [1653, 1654, 1655], [1656, 1657, 1658], [1659, 1660, 1661], [1662, 1663, 1664], [1665, 1666, 1667], [1668, 1669, 1670], [1671, 1672, 1673], [1674, 1675, 1676], [1677, 1678, 1679], [1680, 1681, 1682], [1683, 1684, 1685], [1686, 1687, 1688], [1689, 1690, 1691], [1692, 1693, 1694], [1695, 1696, 1697], [1698, 1699, 1700], [1701, 1702, 1703], [1704, 1705, 1706], [1707, 1708, 1709], [1710, 1711, 1712], [1713, 1714, 1715], [1716, 1717, 1718], [1719, 1720, 1721], [1722, 1723, 1724], [1725, 1726, 1727], [1728, 1729, 1730], [1731, 1732, 1733], [1734, 1735, 1736], [1737, 1738, 1739], [1740, 1741, 1742], [1743, 1744, 1745], [1746, 1747, 1748], [1749, 1750, 1751], [1752, 1753, 1754], [1755, 1756, 1757], [1758, 1759, 1760], [1761, 1762, 1763], [1764, 1765, 1766], [1767, 1768, 1769], [1770, 1771, 1772], [1773, 1774, 1775], [1776, 1777, 1778], [1779, 1780, 1781], [1782, 1783, 1784], [1785, 1786, 1787], [1788, 1789, 1790], [1791, 1792, 1793], [1794, 1795, 1796], [1797, 1798, 1799], [1800, 1801, 1802], [1803, 1804, 1805], [1806, 1807, 1808], [1809, 1810, 1811], [1812, 1813, 1814], [1815, 1816, 1817], [1818, 1819, 1820], [1821, 1822, 1823], [1824, 1825, 1826], [1827, 1828, 1829], [1830, 1831, 1832], [1833, 1834, 1835], [1836, 1837, 1838], [1839, 1840, 1841], [1842, 1843, 1844], [1845, 1846, 1847], [1848, 1849, 1850], [1851, 1852, 1853], [1854, 1855, 1856], [1857, 1858, 1859], [1860, 1861, 1862], [1863, 1864, 1865], [1866, 1867, 1868], [1869, 1870, 1871], [1872, 1873, 1874], [1875, 1876, 1877], [1878, 1879, 1880], [1881, 1882, 1883], [1884, 1885, 1886], [1887, 1888, 1889], [1890, 1891, 1892], [1893, 1894, 1895], [1896, 1897, 1898], [1899, 1900, 1901], [1902, 1903, 1904], [1905, 1906, 1907], [1908, 1909, 1910], [1911, 1912, 1913], [1914, 1915, 1916], [1917, 1918, 1919], [1920, 1921, 1922], [1923, 1924, 1925], [1926, 1927, 1928], [1929, 1930, 1931], [1932, 1933, 1934], [1935, 1936, 1937], [1938, 1939, 1940], [1941, 1942, 1943], [1944, 1945, 1946], [1947, 1948, 1949], [1950, 1951, 1952], [1953, 1954, 1955], [1956, 1957, 1958], [1959, 1960, 1961], [1962, 1963, 1964], [1965, 1966, 1967], [1968, 1969, 1970], [1971, 1972, 1973], [1974, 1975, 1976], [1977, 1978, 1979], [1980, 1981, 1982], [1983, 1984, 1985], [1986, 1987, 1988], [1989, 1990, 1991], [1992, 1993, 1994], [1995, 1996, 1997], [1998, 1999, 2000], [2001, 2002, 2003], [2004, 2005, 2006], [2007, 2008, 2009], [2010, 2011, 2012], [2013, 2014, 2015], [2016, 2017, 2018], [2019, 2020, 2021], [2022, 2023, 2024], [2025, 2026, 2027], [2028, 2029, 2030], [2031, 2032, 2033], [2034, 2035, 2036], [2037, 2038, 2039], [2040, 2041, 2042], [2043, 2044, 2045], [2046, 2047, 2048], [2049, 2050, 2051], [2052, 2053, 2054], [2055, 2056, 2057], [2058, 2059, 2060], [2061, 2062, 2063], [2064, 2065, 2066], [2067, 2068, 2069], [2070, 2071, 2072], [2073, 2074, 2075], [2076, 2077, 2078], [2079, 2080, 2081], [2082, 2083, 2084], [2085, 2086, 2087], [2088, 2089, 2090], [2091, 2092, 2093], [2094, 2095, 2096], [2097, 2098, 2099], [2100, 2101, 2102], [2103, 2104, 2105], [2106, 2107, 2108], [2109, 2110, 2111], [2112, 2113, 2114], [2115, 2116, 2117], [2118, 2119, 2120], [2121, 2122, 2123], [2124, 2125, 2126], [2127, 2128, 2129], [2130, 2131, 2132], [2133, 2134, 2135], [2136, 2137, 2138], [2139, 2140, 2141], [2142, 2143, 2144], [2145, 2146, 2147], [2148, 2149, 2150], [2151, 2152, 2153], [2154, 2155, 2156], [2157, 2158, 2159], [2160, 2161, 2162], [2163, 2164, 2165], [2166, 2167, 2168], [2169, 2170, 2171], [2172, 2173, 2174], [2175, 2176, 2177], [2178, 2179, 2180], [2181, 2182, 2183], [2184, 2185, 2186], [2187, 2188, 2189], [2190, 2191, 2192], [2193, 2194, 2195], [2196, 2197, 2198], [2199, 2200, 2201], [2202, 2203, 2204], [2205, 2206, 2207], [2208, 2209, 2210], [2211, 2212, 2213], [2214, 2215, 2216], [2217, 2218, 2219], [2220, 2221, 2222], [2223, 2224, 2225], [2226, 2227, 2228], [2229, 2230, 2231], [2232, 2233, 2234], [2235, 2236, 2237], [2238, 2239, 2240], [2241, 2242, 2243], [2244, 2245, 2246], [2247, 2248, 2249], [2250, 2251, 2252], [2253, 2254, 2255], [2256, 2257, 2258], [2259, 2260, 2261], [2262, 2263, 2264], [2265, 2266, 2267], [2268, 2269, 2270], [2271, 2272, 2273], [2274, 2275, 2276], [2277, 2278, 2279], [2280, 2281, 2282], [2283, 2284, 2285], [2286, 2287, 2288], [2289, 2290, 2291], [2292, 2293, 2294], [2295, 2296, 2297], [2298, 2299, 2300], [2301, 2302, 2303], [2304, 2305, 2306], [2307, 2308, 2309], [2310, 2311, 2312], [2313, 2314, 2315], [2316, 2317, 2318], [2319, 2320, 2321], [2322, 2323, 2324], [2325, 2326, 2327], [2328, 2329, 2330], [2331, 2332, 2333], [2334, 2335, 2336], [2337, 2338, 2339], [2340, 2341, 2342], [2343, 2344, 2345], [2346, 2347, 2348], [2349, 2350, 2351], [2352, 2353, 2354], [2355, 2356, 2357], [2358, 2359, 2360], [2361, 2362, 2363], [2364, 2365, 2366], [2367, 2368, 2369], [2370, 2371, 2372], [2373, 2374, 2375], [2376, 2377, 2378], [2379, 2380, 2381], [2382, 2383, 2384], [2385, 2386, 2387], [2388, 2389, 2390], [2391, 2392, 2393], [2394, 2395, 2396], [2397, 2398, 2399], [2400, 2401, 2402], [2403, 2404, 2405], [2406, 2407, 2408], [2409, 2410, 2411], [2412, 2413, 2414], [2415, 2416, 2417], [2418, 2419, 2420], [2421, 2422, 2423], [2424, 2425, 2426], [2427, 2428, 2429], [2430, 2431, 2432], [2433, 2434, 2435], [2436, 2437, 2438], [2439, 2440, 2441], [2442, 2443, 2444], [2445, 2446, 2447], [2448, 2449, 2450], [2451, 2452, 2453], [2454, 2455, 2456], [2457, 2458, 2459], [2460, 2461, 2462], [2463, 2464, 2465], [2466, 2467, 2468], [2469, 2470, 2471], [2472, 2473, 2474], [2475, 2476, 2477], [2478, 2479, 2480], [2481, 2482, 2483], [2484, 2485, 2486], [2487, 2488, 2489], [2490, 2491, 2492], [2493, 2494, 2495], [2496, 2497, 2498], [2499, 2500, 2501], [2502, 2503, 2504], [2505, 2506, 2507], [2508, 2509, 2510], [2511, 2512, 2513], [2514, 2515, 2516], [2517, 2518, 2519], [2520, 2521, 2522], [2523, 2524, 2525], [2526, 2527, 2528], [2529, 2530, 2531], [2532, 2533, 2534], [2535, 2536, 2537], [2538, 2539, 2540], [2541, 2542, 2543], [2544, 2545, 2546], [2547, 2548, 2549], [2550, 2551, 2552], [2553, 2554, 2555], [2556, 2557, 2558], [2559, 2560, 2561], [2562, 2563, 2564], [2565, 2566, 2567], [2568, 2569, 2570], [2571, 2572, 2573], [2574, 2575, 2576], [2577, 2578, 2579], [2580, 2581, 2582], [2583, 2584, 2585], [2586, 2587, 2588], [2589, 2590, 2591], [2592, 2593, 2594], [2595, 2596, 2597], [2598, 2599, 2600], [2601, 2602, 2603], [2604, 2605, 2606], [2607, 2608, 2609], [2610, 2611, 2612], [2613, 2614, 2615], [2616, 2617, 2618], [2619, 2620, 2621], [2622, 2623, 2624], [2625, 2626, 2627], [2628, 2629, 2630], [2631, 2632, 2633], [2634, 2635, 2636], [2637, 2638, 2639], [2640, 2641, 2642], [2643, 2644, 2645], [2646, 2647, 2648], [2649, 2650, 2651], [2652, 2653, 2654], [2655, 2656, 2657], [2658, 2659, 2660], [2661, 2662, 2663], [2664, 2665, 2666], [2667, 2668, 2669], [2670, 2671, 2672], [2673, 2674, 2675], [2676, 2677, 2678], [2679, 2680, 2681], [2682, 2683, 2684], [2685, 2686, 2687], [2688, 2689, 2690], [2691, 2692, 2693], [2694, 2695, 2696], [2697, 2698, 2699], [2700, 2701, 2702], [2703, 2704, 2705], [2706, 2707, 2708], [2709, 2710, 2711], [2712, 2713, 2714], [2715, 2716, 2717], [2718, 2719, 2720], [2721, 2722, 2723], [2724, 2725, 2726], [2727, 2728, 2729], [2730, 2731, 2732], [2733, 2734, 2735], [2736, 2737, 2738], [2739, 2740, 2741], [2742, 2743, 2744], [2745, 2746, 2747], [2748, 2749, 2750], [2751, 2752, 2753], [2754, 2755, 2756], [2757, 2758, 2759], [2760, 2761, 2762], [2763, 2764, 2765], [2766, 2767, 2768], [2769, 2770, 2771], [2772, 2773, 2774], [2775, 2776, 2777], [2778, 2779, 2780], [2781, 2782, 2783], [2784, 2785, 2786], [2787, 2788, 2789], [2790, 2791, 2792], [2793, 2794, 2795], [2796, 2797, 2798], [2799, 2800, 2801], [2802, 2803, 2804], [2805, 2806, 2807], [2808, 2809, 2810], [2811, 2812, 2813], [2814, 2815, 2816], [2817, 2818, 2819], [2820, 2821, 2822], [2823, 2824, 2825], [2826, 2827, 2828], [2829, 2830, 2831], [2832, 2833, 2834], [2835, 2836, 2837], [2838, 2839, 2840], [2841, 2842, 2843], [2844, 2845, 2846], [2847, 2848, 2849], [2850, 2851, 2852], [2853, 2854, 2855], [2856, 2857, 2858], [2859, 2860, 2861], [2862, 2863, 2864], [2865, 2866, 2867], [2868, 2869, 2870], [2871, 2872, 2873], [2874, 2875, 2876], [2877, 2878, 2879], [2880, 2881, 2882], [2883, 2884, 2885], [2886, 2887, 2888], [2889, 2890, 2891], [2892, 2893, 2894], [2895, 2896, 2897], [2898, 2899, 2900], [2901, 2902, 2903], [2904, 2905, 2906], [2907, 2908, 2909], [2910, 2911, 2912], [2913, 2914, 2915], [2916, 2917, 2918], [2919, 2920, 2921], [2922, 2923, 2924], [2925, 2926, 2927], [2928, 2929, 2930], [2931, 2932, 2933], [2934, 2935, 2936], [2937, 2938, 2939], [2940, 2941, 2942], [2943, 2944, 2945], [2946, 2947, 2948], [2949, 2950, 2951], [2952, 2953, 2954], [2955, 2956, 2957], [2958, 2959, 2960], [2961, 2962, 2963], [2964, 2965, 2966], [2967, 2968, 2969], [2970, 2971, 2972], [2973, 2974, 2975], [2976, 2977, 2978], [2979, 2980, 2981], [2982, 2983, 2984], [2985, 2986, 2987], [2988, 2989, 2990], [2991, 2992, 2993], [2994, 2995, 2996], [2997, 2998, 2999], [3000, 3001, 3002], [3003, 3004, 3005], [3006, 3007, 3008], [3009, 3010, 3011], [3012, 3013, 3014], [3015, 3016, 3017], [3018, 3019, 3020], [3021, 3022, 3023], [3024, 3025, 3026], [3027, 3028, 3029], [3030, 3031, 3032], [3033, 3034, 3035], [3036, 3037, 3038], [3039, 3040, 3041], [3042, 3043, 3044], [3045, 3046, 3047], [3048, 3049, 3050], [3051, 3052, 3053], [3054, 3055, 3056], [3057, 3058, 3059], [3060, 3061, 3062], [3063, 3064, 3065], [3066, 3067, 3068], [3069, 3070, 3071], [3072, 3073, 3074], [3075, 3076, 3077], [3078, 3079, 3080], [3081, 3082, 3083], [3084, 3085, 3086], [3087, 3088, 3089], [3090, 3091, 3092], [3093, 3094, 3095], [3096, 3097, 3098], [3099, 3100, 3101], [3102, 3103, 3104], [3105, 3106, 3107], [3108, 3109, 3110], [3111, 3112, 3113], [3114, 3115, 3116], [3117, 3118, 3119], [3120, 3121, 3122], [3123, 3124, 3125], [3126, 3127, 3128], [3129, 3130, 3131], [3132, 3133, 3134], [3135, 3136, 3137], [3138, 3139, 3140], [3141, 3142, 3143], [3144, 3145, 3146], [3147, 3148, 3149], [3150, 3151, 3152], [3153, 3154, 3155], [3156, 3157, 3158], [3159, 3160, 3161], [3162, 3163, 3164], [3165, 3166, 3167], [3168, 3169, 3170], [3171, 3172, 3173], [3174, 3175, 3176], [3177, 3178, 3179], [3180, 3181, 3182], [3183, 3184, 3185], [3186, 3187, 3188], [3189, 3190, 3191], [3192, 3193, 3194], [3195, 3196, 3197], [3198, 3199, 3200], [3201, 3202, 3203], [3204, 3205, 3206], [3207, 3208, 3209], [3210, 3211, 3212], [3213, 3214, 3215], [3216, 3217, 3218], [3219, 3220, 3221], [3222, 3223, 3224], [3225, 3226, 3227], [3228, 3229, 3230], [3231, 3232, 3233], [3234, 3235, 3236], [3237, 3238, 3239], [3240, 3241, 3242], [3243, 3244, 3245], [3246, 3247, 3248], [3249, 3250, 3251], [3252, 3253, 3254], [3255, 3256, 3257], [3258, 3259, 3260], [3261, 3262, 3263], [3264, 3265, 3266], [3267, 3268, 3269], [3270, 3271, 3272], [3273, 3274, 3275], [3276, 3277, 3278], [3279, 3280, 3281], [3282, 3283, 3284], [3285, 3286, 3287], [3288, 3289, 3290], [3291, 3292, 3293], [3294, 3295, 3296], [3297, 3298, 3299], [3300, 3301, 3302], [3303, 3304, 3305], [3306, 3307, 3308], [3309, 3310, 3311], [3312, 3313, 3314], [3315, 3316, 3317], [3318, 3319, 3320], [3321, 3322, 3323], [3324, 3325, 3326], [3327, 3328, 3329], [3330, 3331, 3332], [3333, 3334, 3335], [3336, 3337, 3338], [3339, 3340, 3341], [3342, 3343, 3344], [3345, 3346, 3347], [3348, 3349, 3350], [3351, 3352, 3353], [3354, 3355, 3356], [3357, 3358, 3359], [3360, 3361, 3362], [3363, 3364, 3365], [3366, 3367, 3368], [3369, 3370, 3371], [3372, 3373, 3374], [3375, 3376, 3377], [3378, 3379, 3380], [3381, 3382, 3383], [3384, 3385, 3386], [3387, 3388, 3389], [3390, 3391, 3392], [3393, 3394, 3395], [3396, 3397, 3398], [3399, 3400, 3401], [3402, 3403, 3404], [3405, 3406, 3407], [3408, 3409, 3410], [3411, 3412, 3413], [3414, 3415, 3416], [3417, 3418, 3419], [3420, 3421, 3422], [3423, 3424, 3425], [3426, 3427, 3428], [3429, 3430, 3431], [3432, 3433, 3434], [3435, 3436, 3437], [3438, 3439, 3440], [3441, 3442, 3443], [3444, 3445, 3446], [3447, 3448, 3449], [3450, 3451, 3452], [3453, 3454, 3455], [3456, 3457, 3458], [3459, 3460, 3461], [3462, 3463, 3464], [3465, 3466, 3467], [3468, 3469, 3470], [3471, 3472, 3473], [3474, 3475, 3476], [3477, 3478, 3479], [3480, 3481, 3482], [3483, 3484, 3485], [3486, 3487, 3488], [3489, 3490, 3491], [3492, 3493, 3494], [3495, 3496, 3497], [3498, 3499, 3500], [3501, 3502, 3503], [3504, 3505, 3506], [3507, 3508, 3509], [3510, 3511, 3512], [3513, 3514, 3515], [3516, 3517, 3518], [3519, 3520, 3521], [3522, 3523, 3524], [3525, 3526, 3527], [3528, 3529, 3530], [3531, 3532, 3533], [3534, 3535, 3536], [3537, 3538, 3539], [3540, 3541, 3542], [3543, 3544, 3545], [3546, 3547, 3548], [3549, 3550, 3551], [3552, 3553, 3554], [3555, 3556, 3557], [3558, 3559, 3560], [3561, 3562, 3563], [3564, 3565, 3566], [3567, 3568, 3569], [3570, 3571, 3572], [3573, 3574, 3575], [3576, 3577, 3578], [3579, 3580, 3581], [3582, 3583, 3584], [3585, 3586, 3587], [3588, 3589, 3590], [3591, 3592, 3593], [3594, 3595, 3596], [3597, 3598, 3599], [3600, 3601, 3602], [3603, 3604, 3605], [3606, 3607, 3608], [3609, 3610, 3611], [3612, 3613, 3614], [3615, 3616, 3617], [3618, 3619, 3620], [3621, 3622, 3623], [3624, 3625, 3626], [3627, 3628, 3629], [3630, 3631, 3632], [3633, 3634, 3635], [3636, 3637, 3638], [3639, 3640, 3641], [3642, 3643, 3644], [3645, 3646, 3647], [3648, 3649, 3650], [3651, 3652, 3653], [3654, 3655, 3656], [3657, 3658, 3659], [3660, 3661, 3662], [3663, 3664, 3665], [3666, 3667, 3668], [3669, 3670, 3671], [3672, 3673, 3674], [3675, 3676, 3677], [3678, 3679, 3680], [3681, 3682, 3683], [3684, 3685, 3686], [3687, 3688, 3689], [3690, 3691, 3692], [3693, 3694, 3695], [3696, 3697, 3698], [3699, 3700, 3701], [3702, 3703, 3704], [3705, 3706, 3707], [3708, 3709, 3710], [3711, 3712, 3713], [3714, 3715, 3716], [3717, 3718, 3719], [3720, 3721, 3722], [3723, 3724, 3725], [3726, 3727, 3728], [3729, 3730, 3731], [3732, 3733, 3734], [3735, 3736, 3737], [3738, 3739, 3740], [3741, 3742, 3743], [3744, 3745, 3746], [3747, 3748, 3749], [3750, 3751, 3752], [3753, 3754, 3755], [3756, 3757, 3758], [3759, 3760, 3761], [3762, 3763, 3764], [3765, 3766, 3767], [3768, 3769, 3770], [3771, 3772, 3773], [3774, 3775, 3776], [3777, 3778, 3779], [3780, 3781, 3782], [3783, 3784, 3785], [3786, 3787, 3788], [3789, 3790, 3791], [3792, 3793, 3794], [3795, 3796, 3797], [3798, 3799, 3800], [3801, 3802, 3803], [3804, 3805, 3806], [3807, 3808, 3809], [3810, 3811, 3812], [3813, 3814, 3815], [3816, 3817, 3818], [3819, 3820, 3821], [3822, 3823, 3824], [3825, 3826, 3827], [3828, 3829, 3830], [3831, 3832, 3833], [3834, 3835, 3836], [3837, 3838, 3839], [3840, 3841, 3842], [3843, 3844, 3845], [3846, 3847, 3848], [3849, 3850, 3851], [3852, 3853, 3854], [3855, 3856, 3857], [3858, 3859, 3860], [3861, 3862, 3863], [3864, 3865, 3866], [3867, 3868, 3869], [3870, 3871, 3872], [3873, 3874, 3875], [3876, 3877, 3878], [3879, 3880, 3881], [3882, 3883, 3884], [3885, 3886, 3887], [3888, 3889, 3890], [3891, 3892, 3893], [3894, 3895, 3896], [3897, 3898, 3899], [3900, 3901, 3902], [3903, 3904, 3905], [3906, 3907, 3908], [3909, 3910, 3911], [3912, 3913, 3914], [3915, 3916, 3917], [3918, 3919, 3920], [3921, 3922, 3923], [3924, 3925, 3926], [3927, 3928, 3929], [3930, 3931, 3932], [3933, 3934, 3935], [3936, 3937, 3938], [3939, 3940, 3941], [3942, 3943, 3944], [3945, 3946, 3947], [3948, 3949, 3950], [3951, 3952, 3953], [3954, 3955, 3956], [3957, 3958, 3959], [3960, 3961, 3962], [3963, 3964, 3965], [3966, 3967, 3968], [3969, 3970, 3971], [3972, 3973, 3974], [3975, 3976, 3977], [3978, 3979, 3980], [3981, 3982, 3983], [3984, 3985, 3986], [3987, 3988, 3989], [3990, 3991, 3992], [3993, 3994, 3995], [3996, 3997, 3998], [3999, 4000, 4001], [4002, 4003, 4004], [4005, 4006, 4007], [4008, 4009, 4010], [4011, 4012, 4013], [4014, 4015, 4016], [4017, 4018, 4019], [4020, 4021, 4022], [4023, 4024, 4025], [4026, 4027, 4028], [4029, 4030, 4031], [4032, 4033, 4034], [4035, 4036, 4037], [4038, 4039, 4040], [4041, 4042, 4043], [4044, 4045, 4046], [4047, 4048, 4049], [4050, 4051, 4052], [4053, 4054, 4055], [4056, 4057, 4058], [4059, 4060, 4061], [4062, 4063, 4064], [4065, 4066, 4067], [4068, 4069, 4070], [4071, 4072, 4073], [4074, 4075, 4076], [4077, 4078, 4079], [4080, 4081, 4082], [4083, 4084, 4085], [4086, 4087, 4088], [4089, 4090, 4091], [4092, 4093, 4094], [4095, 4096, 4097], [4098, 4099, 4100], [4101, 4102, 4103], [4104, 4105, 4106], [4107, 4108, 4109], [4110, 4111, 4112], [4113, 4114, 4115], [4116, 4117, 4118], [4119, 4120, 4121], [4122, 4123, 4124], [4125, 4126, 4127], [4128, 4129, 4130], [4131, 4132, 4133], [4134, 4135, 4136], [4137, 4138, 4139], [4140, 4141, 4142], [4143, 4144, 4145], [4146, 4147, 4148], [4149, 4150, 4151], [4152, 4153, 4154], [4155, 4156, 4157], [4158, 4159, 4160], [4161, 4162, 4163], [4164, 4165, 4166], [4167, 4168, 4169], [4170, 4171, 4172], [4173, 4174, 4175], [4176, 4177, 4178], [4179, 4180, 4181], [4182, 4183, 4184], [4185, 4186, 4187], [4188, 4189, 4190], [4191, 4192, 4193], [4194, 4195, 4196], [4197, 4198, 4199], [4200, 4201, 4202], [4203, 4204, 4205], [4206, 4207, 4208], [4209, 4210, 4211], [4212, 4213, 4214], [4215, 4216, 4217], [4218, 4219, 4220], [4221, 4222, 4223], [4224, 4225, 4226], [4227, 4228, 4229], [4230, 4231, 4232], [4233, 4234, 4235], [4236, 4237, 4238], [4239, 4240, 4241], [4242, 4243, 4244], [4245, 4246, 4247], [4248, 4249, 4250], [4251, 4252, 4253], [4254, 4255, 4256], [4257, 4258, 4259], [4260, 4261, 4262], [4263, 4264, 4265], [4266, 4267, 4268], [4269, 4270, 4271], [4272, 4273, 4274], [4275, 4276, 4277], [4278, 4279, 4280], [4281, 4282, 4283], [4284, 4285, 4286], [4287, 4288, 4289], [4290, 4291, 4292], [4293, 4294, 4295], [4296, 4297, 4298], [4299, 4300, 4301], [4302, 4303, 4304], [4305, 4306, 4307], [4308, 4309, 4310], [4311, 4312, 4313], [4314, 4315, 4316], [4317, 4318, 4319], [4320, 4321, 4322], [4323, 4324, 4325], [4326, 4327, 4328], [4329, 4330, 4331], [4332, 4333, 4334], [4335, 4336, 4337], [4338, 4339, 4340], [4341, 4342, 4343], [4344, 4345, 4346], [4347, 4348, 4349], [4350, 4351, 4352], [4353, 4354, 4355], [4356, 4357, 4358], [4359, 4360, 4361], [4362, 4363, 4364], [4365, 4366, 4367], [4368, 4369, 4370], [4371, 4372, 4373], [4374, 4375, 4376], [4377, 4378, 4379], [4380, 4381, 4382], [4383, 4384, 4385], [4386, 4387, 4388], [4389, 4390, 4391], [4392, 4393, 4394], [4395, 4396, 4397], [4398, 4399, 4400], [4401, 4402, 4403], [4404, 4405, 4406], [4407, 4408, 4409], [4410, 4411, 4412], [4413, 4414, 4415], [4416, 4417, 4418], [4419, 4420, 4421], [4422, 4423, 4424], [4425, 4426, 4427], [4428, 4429, 4430], [4431, 4432, 4433], [4434, 4435, 4436], [4437, 4438, 4439], [4440, 4441, 4442], [4443, 4444, 4445], [4446, 4447, 4448], [4449, 4450, 4451], [4452, 4453, 4454], [4455, 4456, 4457], [4458, 4459, 4460], [4461, 4462, 4463], [4464, 4465, 4466], [4467, 4468, 4469], [4470, 4471, 4472], [4473, 4474, 4475], [4476, 4477, 4478], [4479, 4480, 4481], [4482, 4483, 4484], [4485, 4486, 4487], [4488, 4489, 4490], [4491, 4492, 4493], [4494, 4495, 4496], [4497, 4498, 4499], [4500, 4501, 4502], [4503, 4504, 4505], [4506, 4507, 4508], [4509, 4510, 4511], [4512, 4513, 4514], [4515, 4516, 4517], [4518, 4519, 4520], [4521, 4522, 4523], [4524, 4525, 4526], [4527, 4528, 4529], [4530, 4531, 4532], [4533, 4534, 4535], [4536, 4537, 4538], [4539, 4540, 4541], [4542, 4543, 4544], [4545, 4546, 4547], [4548, 4549, 4550], [4551, 4552, 4553], [4554, 4555, 4556], [4557, 4558, 4559], [4560, 4561, 4562], [4563, 4564, 4565], [4566, 4567, 4568], [4569, 4570, 4571], [4572, 4573, 4574], [4575, 4576, 4577], [4578, 4579, 4580], [4581, 4582, 4583], [4584, 4585, 4586], [4587, 4588, 4589], [4590, 4591, 4592], [4593, 4594, 4595], [4596, 4597, 4598], [4599, 4600, 4601], [4602, 4603, 4604], [4605, 4606, 4607], [4608, 4609, 4610], [4611, 4612, 4613], [4614, 4615, 4616], [4617, 4618, 4619], [4620, 4621, 4622], [4623, 4624, 4625], [4626, 4627, 4628], [4629, 4630, 4631], [4632, 4633, 4634], [4635, 4636, 4637], [4638, 4639, 4640], [4641, 4642, 4643], [4644, 4645, 4646], [4647, 4648, 4649], [4650, 4651, 4652], [4653, 4654, 4655], [4656, 4657, 4658], [4659, 4660, 4661], [4662, 4663, 4664], [4665, 4666, 4667], [4668, 4669, 4670], [4671, 4672, 4673], [4674, 4675, 4676], [4677, 4678, 4679], [4680, 4681, 4682], [4683, 4684, 4685], [4686, 4687, 4688], [4689, 4690, 4691], [4692, 4693, 4694], [4695, 4696, 4697], [4698, 4699, 4700], [4701, 4702, 4703], [4704, 4705, 4706], [4707, 4708, 4709], [4710, 4711, 4712], [4713, 4714, 4715], [4716, 4717, 4718], [4719, 4720, 4721], [4722, 4723, 4724], [4725, 4726, 4727], [4728, 4729, 4730], [4731, 4732, 4733], [4734, 4735, 4736], [4737, 4738, 4739], [4740, 4741, 4742], [4743, 4744, 4745], [4746, 4747, 4748], [4749, 4750, 4751], [4752, 4753, 4754], [4755, 4756, 4757], [4758, 4759, 4760], [4761, 4762, 4763], [4764, 4765, 4766], [4767, 4768, 4769], [4770, 4771, 4772], [4773, 4774, 4775], [4776, 4777, 4778], [4779, 4780, 4781], [4782, 4783, 4784], [4785, 4786, 4787], [4788, 4789, 4790], [4791, 4792, 4793], [4794, 4795, 4796], [4797, 4798, 4799], [4800, 4801, 4802], [4803, 4804, 4805], [4806, 4807, 4808], [4809, 4810, 4811], [4812, 4813, 4814], [4815, 4816, 4817], [4818, 4819, 4820], [4821, 4822, 4823], [4824, 4825, 4826], [4827, 4828, 4829], [4830, 4831, 4832], [4833, 4834, 4835], [4836, 4837, 4838], [4839, 4840, 4841], [4842, 4843, 4844], [4845, 4846, 4847], [4848, 4849, 4850], [4851, 4852, 4853], [4854, 4855, 4856], [4857, 4858, 4859], [4860, 4861, 4862], [4863, 4864, 4865], [4866, 4867, 4868], [4869, 4870, 4871], [4872, 4873, 4874], [4875, 4876, 4877], [4878, 4879, 4880], [4881, 4882, 4883], [4884, 4885, 4886], [4887, 4888, 4889], [4890, 4891, 4892], [4893, 4894, 4895], [4896, 4897, 4898], [4899, 4900, 4901], [4902, 4903, 4904], [4905, 4906, 4907], [4908, 4909, 4910], [4911, 4912, 4913], [4914, 4915, 4916], [4917, 4918, 4919], [4920, 4921, 4922], [4923, 4924, 4925], [4926, 4927, 4928], [4929, 4930, 4931], [4932, 4933, 4934], [4935, 4936, 4937], [4938, 4939, 4940], [4941, 4942, 4943], [4944, 4945, 4946], [4947, 4948, 4949], [4950, 4951, 4952], [4953, 4954, 4955], [4956, 4957, 4958], [4959, 4960, 4961], [4962, 4963, 4964], [4965, 4966, 4967], [4968, 4969, 4970], [4971, 4972, 4973], [4974, 4975, 4976], [4977, 4978, 4979], [4980, 4981, 4982], [4983, 4984, 4985], [4986, 4987, 4988], [4989, 4990, 4991], [4992, 4993, 4994], [4995, 4996, 4997], [4998, 4999, 5000], [5001, 5002, 5003], [5004, 5005, 5006], [5007, 5008, 5009], [5010, 5011, 5012], [5013, 5014, 5015], [5016, 5017, 5018], [5019, 5020, 5021], [5022, 5023, 5024], [5025, 5026, 5027], [5028, 5029, 5030], [5031, 5032, 5033], [5034, 5035, 5036], [5037, 5038, 5039], [5040, 5041, 5042], [5043, 5044, 5045], [5046, 5047, 5048], [5049, 5050, 5051], [5052, 5053, 5054], [5055, 5056, 5057], [5058, 5059, 5060], [5061, 5062, 5063], [5064, 5065, 5066], [5067, 5068, 5069], [5070, 5071, 5072], [5073, 5074, 5075], [5076, 5077, 5078], [5079, 5080, 5081], [5082, 5083, 5084], [5085, 5086, 5087], [5088, 5089, 5090], [5091, 5092, 5093], [5094, 5095, 5096], [5097, 5098, 5099], [5100, 5101, 5102], [5103, 5104, 5105], [5106, 5107, 5108], [5109, 5110, 5111], [5112, 5113, 5114], [5115, 5116, 5117], [5118, 5119, 5120], [5121, 5122, 5123], [5124, 5125, 5126], [5127, 5128, 5129], [5130, 5131, 5132], [5133, 5134, 5135], [5136, 5137, 5138], [5139, 5140, 5141], [5142, 5143, 5144], [5145, 5146, 5147], [5148, 5149, 5150], [5151, 5152, 5153], [5154, 5155, 5156], [5157, 5158, 5159], [5160, 5161, 5162], [5163, 5164, 5165], [5166, 5167, 5168], [5169, 5170, 5171], [5172, 5173, 5174], [5175, 5176, 5177], [5178, 5179, 5180], [5181, 5182, 5183], [5184, 5185, 5186], [5187, 5188, 5189], [5190, 5191, 5192], [5193, 5194, 5195], [5196, 5197, 5198], [5199, 5200, 5201], [5202, 5203, 5204], [5205, 5206, 5207], [5208, 5209, 5210], [5211, 5212, 5213], [5214, 5215, 5216], [5217, 5218, 5219], [5220, 5221, 5222], [5223, 5224, 5225], [5226, 5227, 5228], [5229, 5230, 5231], [5232, 5233, 5234], [5235, 5236, 5237], [5238, 5239, 5240], [5241, 5242, 5243], [5244, 5245, 5246], [5247, 5248, 5249], [5250, 5251, 5252], [5253, 5254, 5255], [5256, 5257, 5258], [5259, 5260, 5261], [5262, 5263, 5264], [5265, 5266, 5267], [5268, 5269, 5270], [5271, 5272, 5273], [5274, 5275, 5276], [5277, 5278, 5279], [5280, 5281, 5282], [5283, 5284, 5285], [5286, 5287, 5288], [5289, 5290, 5291], [5292, 5293, 5294], [5295, 5296, 5297], [5298, 5299, 5300], [5301, 5302, 5303], [5304, 5305, 5306], [5307, 5308, 5309], [5310, 5311, 5312], [5313, 5314, 5315], [5316, 5317, 5318], [5319, 5320, 5321], [5322, 5323, 5324], [5325, 5326, 5327], [5328, 5329, 5330], [5331, 5332, 5333], [5334, 5335, 5336], [5337, 5338, 5339], [5340, 5341, 5342], [5343, 5344, 5345], [5346, 5347, 5348], [5349, 5350, 5351], [5352, 5353, 5354], [5355, 5356, 5357], [5358, 5359, 5360], [5361, 5362, 5363], [5364, 5365, 5366], [5367, 5368, 5369], [5370, 5371, 5372], [5373, 5374, 5375], [5376, 5377, 5378], [5379, 5380, 5381], [5382, 5383, 5384], [5385, 5386, 5387], [5388, 5389, 5390], [5391, 5392, 5393], [5394, 5395, 5396], [5397, 5398, 5399], [5400, 5401, 5402], [5403, 5404, 5405], [5406, 5407, 5408], [5409, 5410, 5411], [5412, 5413, 5414], [5415, 5416, 5417], [5418, 5419, 5420], [5421, 5422, 5423], [5424, 5425, 5426], [5427, 5428, 5429], [5430, 5431, 5432], [5433, 5434, 5435], [5436, 5437, 5438], [5439, 5440, 5441], [5442, 5443, 5444], [5445, 5446, 5447], [5448, 5449, 5450], [5451, 5452, 5453], [5454, 5455, 5456], [5457, 5458, 5459], [5460, 5461, 5462], [5463, 5464, 5465], [5466, 5467, 5468], [5469, 5470, 5471], [5472, 5473, 5474], [5475, 5476, 5477], [5478, 5479, 5480], [5481, 5482, 5483], [5484, 5485, 5486], [5487, 5488, 5489], [5490, 5491, 5492], [5493, 5494, 5495], [5496, 5497, 5498], [5499, 5500, 5501], [5502, 5503, 5504], [5505, 5506, 5507], [5508, 5509, 5510], [5511, 5512, 5513], [5514, 5515, 5516], [5517, 5518, 5519], [5520, 5521, 5522], [5523, 5524, 5525], [5526, 5527, 5528], [5529, 5530, 5531], [5532, 5533, 5534], [5535, 5536, 5537], [5538, 5539, 5540], [5541, 5542, 5543], [5544, 5545, 5546], [5547, 5548, 5549], [5550, 5551, 5552], [5553, 5554, 5555], [5556, 5557, 5558], [5559, 5560, 5561], [5562, 5563, 5564], [5565, 5566, 5567], [5568, 5569, 5570], [5571, 5572, 5573], [5574, 5575, 5576], [5577, 5578, 5579], [5580, 5581, 5582], [5583, 5584, 5585], [5586, 5587, 5588], [5589, 5590, 5591], [5592, 5593, 5594], [5595, 5596, 5597], [5598, 5599, 5600], [5601, 5602, 5603], [5604, 5605, 5606], [5607, 5608, 5609], [5610, 5611, 5612], [5613, 5614, 5615], [5616, 5617, 5618], [5619, 5620, 5621], [5622, 5623, 5624], [5625, 5626, 5627], [5628, 5629, 5630], [5631, 5632, 5633], [5634, 5635, 5636], [5637, 5638, 5639], [5640, 5641, 5642], [5643, 5644, 5645], [5646, 5647, 5648], [5649, 5650, 5651], [5652, 5653, 5654], [5655, 5656, 5657], [5658, 5659, 5660], [5661, 5662, 5663], [5664, 5665, 5666], [5667, 5668, 5669], [5670, 5671, 5672], [5673, 5674, 5675], [5676, 5677, 5678], [5679, 5680, 5681], [5682, 5683, 5684], [5685, 5686, 5687], [5688, 5689, 5690], [5691, 5692, 5693], [5694, 5695, 5696], [5697, 5698, 5699], [5700, 5701, 5702], [5703, 5704, 5705], [5706, 5707, 5708], [5709, 5710, 5711], [5712, 5713, 5714], [5715, 5716, 5717], [5718, 5719, 5720], [5721, 5722, 5723], [5724, 5725, 5726], [5727, 5728, 5729], [5730, 5731, 5732], [5733, 5734, 5735], [5736, 5737, 5738], [5739, 5740, 5741], [5742, 5743, 5744], [5745, 5746, 5747], [5748, 5749, 5750], [5751, 5752, 5753], [5754, 5755, 5756], [5757, 5758, 5759], [5760, 5761, 5762], [5763, 5764, 5765], [5766, 5767, 5768], [5769, 5770, 5771], [5772, 5773, 5774], [5775, 5776, 5777], [5778, 5779, 5780], [5781, 5782, 5783], [5784, 5785, 5786], [5787, 5788, 5789], [5790, 5791, 5792], [5793, 5794, 5795], [5796, 5797, 5798], [5799, 5800, 5801], [5802, 5803, 5804], [5805, 5806, 5807], [5808, 5809, 5810], [5811, 5812, 5813], [5814, 5815, 5816], [5817, 5818, 5819], [5820, 5821, 5822], [5823, 5824, 5825], [5826, 5827, 5828], [5829, 5830, 5831], [5832, 5833, 5834], [5835, 5836, 5837], [5838, 5839, 5840], [5841, 5842, 5843], [5844, 5845, 5846], [5847, 5848, 5849], [5850, 5851, 5852], [5853, 5854, 5855], [5856, 5857, 5858], [5859, 5860, 5861], [5862, 5863, 5864], [5865, 5866, 5867], [5868, 5869, 5870], [5871, 5872, 5873], [5874, 5875, 5876], [5877, 5878, 5879], [5880, 5881, 5882], [5883, 5884, 5885], [5886, 5887, 5888], [5889, 5890, 5891], [5892, 5893, 5894], [5895, 5896, 5897], [5898, 5899, 5900], [5901, 5902, 5903], [5904, 5905, 5906], [5907, 5908, 5909], [5910, 5911, 5912], [5913, 5914, 5915], [5916, 5917, 5918], [5919, 5920, 5921], [5922, 5923, 5924], [5925, 5926, 5927], [5928, 5929, 5930], [5931, 5932, 5933], [5934, 5935, 5936], [5937, 5938, 5939], [5940, 5941, 5942], [5943, 5944, 5945], [5946, 5947, 5948], [5949, 5950, 5951], [5952, 5953, 5954], [5955, 5956, 5957], [5958, 5959, 5960], [5961, 5962, 5963], [5964, 5965, 5966], [5967, 5968, 5969], [5970, 5971, 5972], [5973, 5974, 5975], [5976, 5977, 5978], [5979, 5980, 5981], [5982, 5983, 5984], [5985, 5986, 5987], [5988, 5989, 5990], [5991, 5992, 5993], [5994, 5995, 5996], [5997, 5998, 5999], [6000, 6001, 6002], [6003, 6004, 6005], [6006, 6007, 6008], [6009, 6010, 6011], [6012, 6013, 6014], [6015, 6016, 6017], [6018, 6019, 6020], [6021, 6022, 6023], [6024, 6025, 6026], [6027, 6028, 6029], [6030, 6031, 6032], [6033, 6034, 6035], [6036, 6037, 6038], [6039, 6040, 6041], [6042, 6043, 6044], [6045, 6046, 6047], [6048, 6049, 6050], [6051, 6052, 6053], [6054, 6055, 6056], [6057, 6058, 6059], [6060, 6061, 6062], [6063, 6064, 6065], [6066, 6067, 6068], [6069, 6070, 6071], [6072, 6073, 6074], [6075, 6076, 6077], [6078, 6079, 6080], [6081, 6082, 6083], [6084, 6085, 6086], [6087, 6088, 6089], [6090, 6091, 6092], [6093, 6094, 6095], [6096, 6097, 6098], [6099, 6100, 6101], [6102, 6103, 6104], [6105, 6106, 6107], [6108, 6109, 6110], [6111, 6112, 6113], [6114, 6115, 6116], [6117, 6118, 6119], [6120, 6121, 6122], [6123, 6124, 6125], [6126, 6127, 6128], [6129, 6130, 6131], [6132, 6133, 6134], [6135, 6136, 6137], [6138, 6139, 6140], [6141, 6142, 6143], [6144, 6145, 6146], [6147, 6148, 6149], [6150, 6151, 6152], [6153, 6154, 6155], [6156, 6157, 6158], [6159, 6160, 6161], [6162, 6163, 6164], [6165, 6166, 6167], [6168, 6169, 6170], [6171, 6172, 6173], [6174, 6175, 6176], [6177, 6178, 6179], [6180, 6181, 6182], [6183, 6184, 6185], [6186, 6187, 6188], [6189, 6190, 6191], [6192, 6193, 6194], [6195, 6196, 6197], [6198, 6199, 6200], [6201, 6202, 6203], [6204, 6205, 6206], [6207, 6208, 6209], [6210, 6211, 6212], [6213, 6214, 6215], [6216, 6217, 6218], [6219, 6220, 6221], [6222, 6223, 6224], [6225, 6226, 6227], [6228, 6229, 6230], [6231, 6232, 6233], [6234, 6235, 6236], [6237, 6238, 6239], [6240, 6241, 6242], [6243, 6244, 6245], [6246, 6247, 6248], [6249, 6250, 6251], [6252, 6253, 6254], [6255, 6256, 6257], [6258, 6259, 6260], [6261, 6262, 6263], [6264, 6265, 6266], [6267, 6268, 6269], [6270, 6271, 6272], [6273, 6274, 6275], [6276, 6277, 6278], [6279, 6280, 6281], [6282, 6283, 6284], [6285, 6286, 6287], [6288, 6289, 6290], [6291, 6292, 6293], [6294, 6295, 6296], [6297, 6298, 6299], [6300, 6301, 6302], [6303, 6304, 6305], [6306, 6307, 6308], [6309, 6310, 6311], [6312, 6313, 6314], [6315, 6316, 6317], [6318, 6319, 6320], [6321, 6322, 6323], [6324, 6325, 6326], [6327, 6328, 6329], [6330, 6331, 6332], [6333, 6334, 6335], [6336, 6337, 6338], [6339, 6340, 6341], [6342, 6343, 6344], [6345, 6346, 6347], [6348, 6349, 6350], [6351, 6352, 6353], [6354, 6355, 6356], [6357, 6358, 6359], [6360, 6361, 6362], [6363, 6364, 6365], [6366, 6367, 6368], [6369, 6370, 6371], [6372, 6373, 6374], [6375, 6376, 6377], [6378, 6379, 6380], [6381, 6382, 6383], [6384, 6385, 6386], [6387, 6388, 6389], [6390, 6391, 6392], [6393, 6394, 6395], [6396, 6397, 6398], [6399, 6400, 6401], [6402, 6403, 6404], [6405, 6406, 6407], [6408, 6409, 6410], [6411, 6412, 6413], [6414, 6415, 6416], [6417, 6418, 6419], [6420, 6421, 6422], [6423, 6424, 6425], [6426, 6427, 6428], [6429, 6430, 6431], [6432, 6433, 6434], [6435, 6436, 6437], [6438, 6439, 6440], [6441, 6442, 6443], [6444, 6445, 6446], [6447, 6448, 6449], [6450, 6451, 6452], [6453, 6454, 6455], [6456, 6457, 6458], [6459, 6460, 6461], [6462, 6463, 6464], [6465, 6466, 6467], [6468, 6469, 6470], [6471, 6472, 6473], [6474, 6475, 6476], [6477, 6478, 6479], [6480, 6481, 6482], [6483, 6484, 6485], [6486, 6487, 6488], [6489, 6490, 6491], [6492, 6493, 6494], [6495, 6496, 6497], [6498, 6499, 6500], [6501, 6502, 6503], [6504, 6505, 6506], [6507, 6508, 6509], [6510, 6511, 6512], [6513, 6514, 6515], [6516, 6517, 6518], [6519, 6520, 6521], [6522, 6523, 6524], [6525, 6526, 6527], [6528, 6529, 6530], [6531, 6532, 6533], [6534, 6535, 6536], [6537, 6538, 6539], [6540, 6541, 6542], [6543, 6544, 6545], [6546, 6547, 6548], [6549, 6550, 6551], [6552, 6553, 6554], [6555, 6556, 6557], [6558, 6559, 6560], [6561, 6562, 6563], [6564, 6565, 6566], [6567, 6568, 6569], [6570, 6571, 6572], [6573, 6574, 6575], [6576, 6577, 6578], [6579, 6580, 6581], [6582, 6583, 6584], [6585, 6586, 6587], [6588, 6589, 6590], [6591, 6592, 6593], [6594, 6595, 6596], [6597, 6598, 6599], [6600, 6601, 6602], [6603, 6604, 6605], [6606, 6607, 6608], [6609, 6610, 6611], [6612, 6613, 6614], [6615, 6616, 6617], [6618, 6619, 6620], [6621, 6622, 6623], [6624, 6625, 6626], [6627, 6628, 6629], [6630, 6631, 6632], [6633, 6634, 6635], [6636, 6637, 6638], [6639, 6640, 6641], [6642, 6643, 6644], [6645, 6646, 6647], [6648, 6649, 6650], [6651, 6652, 6653], [6654, 6655, 6656], [6657, 6658, 6659], [6660, 6661, 6662], [6663, 6664, 6665], [6666, 6667, 6668], [6669, 6670, 6671], [6672, 6673, 6674], [6675, 6676, 6677], [6678, 6679, 6680], [6681, 6682, 6683], [6684, 6685, 6686], [6687, 6688, 6689], [6690, 6691, 6692], [6693, 6694, 6695], [6696, 6697, 6698], [6699, 6700, 6701], [6702, 6703, 6704], [6705, 6706, 6707], [6708, 6709, 6710], [6711, 6712, 6713], [6714, 6715, 6716], [6717, 6718, 6719], [6720, 6721, 6722], [6723, 6724, 6725], [6726, 6727, 6728], [6729, 6730, 6731], [6732, 6733, 6734], [6735, 6736, 6737], [6738, 6739, 6740], [6741, 6742, 6743], [6744, 6745, 6746], [6747, 6748, 6749], [6750, 6751, 6752], [6753, 6754, 6755], [6756, 6757, 6758], [6759, 6760, 6761], [6762, 6763, 6764], [6765, 6766, 6767], [6768, 6769, 6770], [6771, 6772, 6773], [6774, 6775, 6776], [6777, 6778, 6779], [6780, 6781, 6782], [6783, 6784, 6785], [6786, 6787, 6788], [6789, 6790, 6791], [6792, 6793, 6794], [6795, 6796, 6797], [6798, 6799, 6800], [6801, 6802, 6803], [6804, 6805, 6806], [6807, 6808, 6809], [6810, 6811, 6812], [6813, 6814, 6815], [6816, 6817, 6818], [6819, 6820, 6821], [6822, 6823, 6824], [6825, 6826, 6827], [6828, 6829, 6830], [6831, 6832, 6833], [6834, 6835, 6836], [6837, 6838, 6839], [6840, 6841, 6842], [6843, 6844, 6845], [6846, 6847, 6848], [6849, 6850, 6851], [6852, 6853, 6854], [6855, 6856, 6857], [6858, 6859, 6860], [6861, 6862, 6863], [6864, 6865, 6866], [6867, 6868, 6869], [6870, 6871, 6872], [6873, 6874, 6875], [6876, 6877, 6878], [6879, 6880, 6881], [6882, 6883, 6884], [6885, 6886, 6887], [6888, 6889, 6890], [6891, 6892, 6893], [6894, 6895, 6896], [6897, 6898, 6899], [6900, 6901, 6902], [6903, 6904, 6905], [6906, 6907, 6908], [6909, 6910, 6911], [6912, 6913, 6914], [6915, 6916, 6917], [6918, 6919, 6920], [6921, 6922, 6923], [6924, 6925, 6926], [6927, 6928, 6929], [6930, 6931, 6932], [6933, 6934, 6935], [6936, 6937, 6938], [6939, 6940, 6941], [6942, 6943, 6944], [6945, 6946, 6947], [6948, 6949, 6950], [6951, 6952, 6953], [6954, 6955, 6956], [6957, 6958, 6959], [6960, 6961, 6962], [6963, 6964, 6965], [6966, 6967, 6968], [6969, 6970, 6971], [6972, 6973, 6974], [6975, 6976, 6977], [6978, 6979, 6980], [6981, 6982, 6983], [6984, 6985, 6986], [6987, 6988, 6989], [6990, 6991, 6992], [6993, 6994, 6995], [6996, 6997, 6998], [6999, 7000, 7001], [7002, 7003, 7004], [7005, 7006, 7007], [7008, 7009, 7010], [7011, 7012, 7013], [7014, 7015, 7016], [7017, 7018, 7019], [7020, 7021, 7022], [7023, 7024, 7025], [7026, 7027, 7028], [7029, 7030, 7031], [7032, 7033, 7034], [7035, 7036, 7037], [7038, 7039, 7040], [7041, 7042, 7043], [7044, 7045, 7046], [7047, 7048, 7049], [7050, 7051, 7052], [7053, 7054, 7055], [7056, 7057, 7058], [7059, 7060, 7061], [7062, 7063, 7064], [7065, 7066, 7067], [7068, 7069, 7070], [7071, 7072, 7073], [7074, 7075, 7076], [7077, 7078, 7079], [7080, 7081, 7082], [7083, 7084, 7085], [7086, 7087, 7088], [7089, 7090, 7091], [7092, 7093, 7094], [7095, 7096, 7097], [7098, 7099, 7100], [7101, 7102, 7103], [7104, 7105, 7106], [7107, 7108, 7109], [7110, 7111, 7112], [7113, 7114, 7115], [7116, 7117, 7118], [7119, 7120, 7121], [7122, 7123, 7124], [7125, 7126, 7127], [7128, 7129, 7130], [7131, 7132, 7133], [7134, 7135, 7136], [7137, 7138, 7139], [7140, 7141, 7142], [7143, 7144, 7145], [7146, 7147, 7148], [7149, 7150, 7151], [7152, 7153, 7154], [7155, 7156, 7157], [7158, 7159, 7160], [7161, 7162, 7163], [7164, 7165, 7166], [7167, 7168, 7169], [7170, 7171, 7172], [7173, 7174, 7175], [7176, 7177, 7178], [7179, 7180, 7181], [7182, 7183, 7184], [7185, 7186, 7187], [7188, 7189, 7190], [7191, 7192, 7193], [7194, 7195, 7196], [7197, 7198, 7199], [7200, 7201, 7202], [7203, 7204, 7205], [7206, 7207, 7208], [7209, 7210, 7211], [7212, 7213, 7214], [7215, 7216, 7217], [7218, 7219, 7220], [7221, 7222, 7223], [7224, 7225, 7226], [7227, 7228, 7229], [7230, 7231, 7232], [7233, 7234, 7235], [7236, 7237, 7238], [7239, 7240, 7241], [7242, 7243, 7244], [7245, 7246, 7247], [7248, 7249, 7250], [7251, 7252, 7253], [7254, 7255, 7256], [7257, 7258, 7259], [7260, 7261, 7262], [7263, 7264, 7265], [7266, 7267, 7268], [7269, 7270, 7271], [7272, 7273, 7274], [7275, 7276, 7277], [7278, 7279, 7280], [7281, 7282, 7283], [7284, 7285, 7286], [7287, 7288, 7289], [7290, 7291, 7292], [7293, 7294, 7295], [7296, 7297, 7298], [7299, 7300, 7301], [7302, 7303, 7304], [7305, 7306, 7307], [7308, 7309, 7310], [7311, 7312, 7313], [7314, 7315, 7316], [7317, 7318, 7319], [7320, 7321, 7322], [7323, 7324, 7325], [7326, 7327, 7328], [7329, 7330, 7331], [7332, 7333, 7334], [7335, 7336, 7337], [7338, 7339, 7340], [7341, 7342, 7343], [7344, 7345, 7346], [7347, 7348, 7349], [7350, 7351, 7352], [7353, 7354, 7355], [7356, 7357, 7358], [7359, 7360, 7361], [7362, 7363, 7364], [7365, 7366, 7367], [7368, 7369, 7370], [7371, 7372, 7373], [7374, 7375, 7376], [7377, 7378, 7379], [7380, 7381, 7382], [7383, 7384, 7385], [7386, 7387, 7388], [7389, 7390, 7391], [7392, 7393, 7394], [7395, 7396, 7397], [7398, 7399, 7400], [7401, 7402, 7403], [7404, 7405, 7406], [7407, 7408, 7409], [7410, 7411, 7412], [7413, 7414, 7415], [7416, 7417, 7418], [7419, 7420, 7421], [7422, 7423, 7424], [7425, 7426, 7427], [7428, 7429, 7430], [7431, 7432, 7433], [7434, 7435, 7436], [7437, 7438, 7439], [7440, 7441, 7442], [7443, 7444, 7445], [7446, 7447, 7448], [7449, 7450, 7451], [7452, 7453, 7454], [7455, 7456, 7457], [7458, 7459, 7460], [7461, 7462, 7463], [7464, 7465, 7466], [7467, 7468, 7469], [7470, 7471, 7472], [7473, 7474, 7475], [7476, 7477, 7478], [7479, 7480, 7481], [7482, 7483, 7484], [7485, 7486, 7487], [7488, 7489, 7490], [7491, 7492, 7493], [7494, 7495, 7496], [7497, 7498, 7499], [7500, 7501, 7502], [7503, 7504, 7505], [7506, 7507, 7508], [7509, 7510, 7511], [7512, 7513, 7514], [7515, 7516, 7517], [7518, 7519, 7520], [7521, 7522, 7523], [7524, 7525, 7526], [7527, 7528, 7529], [7530, 7531, 7532], [7533, 7534, 7535], [7536, 7537, 7538], [7539, 7540, 7541], [7542, 7543, 7544], [7545, 7546, 7547], [7548, 7549, 7550], [7551, 7552, 7553], [7554, 7555, 7556], [7557, 7558, 7559], [7560, 7561, 7562], [7563, 7564, 7565], [7566, 7567, 7568], [7569, 7570, 7571], [7572, 7573, 7574], [7575, 7576, 7577], [7578, 7579, 7580], [7581, 7582, 7583], [7584, 7585, 7586], [7587, 7588, 7589], [7590, 7591, 7592], [7593, 7594, 7595], [7596, 7597, 7598], [7599, 7600, 7601], [7602, 7603, 7604], [7605, 7606, 7607], [7608, 7609, 7610], [7611, 7612, 7613], [7614, 7615, 7616], [7617, 7618, 7619], [7620, 7621, 7622], [7623, 7624, 7625], [7626, 7627, 7628], [7629, 7630, 7631], [7632, 7633, 7634], [7635, 7636, 7637], [7638, 7639, 7640], [7641, 7642, 7643], [7644, 7645, 7646], [7647, 7648, 7649], [7650, 7651, 7652], [7653, 7654, 7655], [7656, 7657, 7658], [7659, 7660, 7661], [7662, 7663, 7664], [7665, 7666, 7667], [7668, 7669, 7670], [7671, 7672, 7673], [7674, 7675, 7676], [7677, 7678, 7679], [7680, 7681, 7682], [7683, 7684, 7685], [7686, 7687, 7688], [7689, 7690, 7691], [7692, 7693, 7694], [7695, 7696, 7697], [7698, 7699, 7700], [7701, 7702, 7703], [7704, 7705, 7706], [7707, 7708, 7709], [7710, 7711, 7712], [7713, 7714, 7715], [7716, 7717, 7718], [7719, 7720, 7721], [7722, 7723, 7724], [7725, 7726, 7727], [7728, 7729, 7730], [7731, 7732, 7733], [7734, 7735, 7736], [7737, 7738, 7739], [7740, 7741, 7742], [7743, 7744, 7745], [7746, 7747, 7748], [7749, 7750, 7751], [7752, 7753, 7754], [7755, 7756, 7757], [7758, 7759, 7760], [7761, 7762, 7763], [7764, 7765, 7766], [7767, 7768, 7769], [7770, 7771, 7772], [7773, 7774, 7775], [7776, 7777, 7778], [7779, 7780, 7781], [7782, 7783, 7784], [7785, 7786, 7787], [7788, 7789, 7790], [7791, 7792, 7793], [7794, 7795, 7796], [7797, 7798, 7799], [7800, 7801, 7802], [7803, 7804, 7805], [7806, 7807, 7808], [7809, 7810, 7811], [7812, 7813, 7814], [7815, 7816, 7817], [7818, 7819, 7820], [7821, 7822, 7823], [7824, 7825, 7826], [7827, 7828, 7829], [7830, 7831, 7832], [7833, 7834, 7835], [7836, 7837, 7838], [7839, 7840, 7841], [7842, 7843, 7844], [7845, 7846, 7847], [7848, 7849, 7850], [7851, 7852, 7853], [7854, 7855, 7856], [7857, 7858, 7859], [7860, 7861, 7862], [7863, 7864, 7865], [7866, 7867, 7868], [7869, 7870, 7871], [7872, 7873, 7874], [7875, 7876, 7877], [7878, 7879, 7880], [7881, 7882, 7883], [7884, 7885, 7886], [7887, 7888, 7889], [7890, 7891, 7892], [7893, 7894, 7895], [7896, 7897, 7898], [7899, 7900, 7901], [7902, 7903, 7904], [7905, 7906, 7907], [7908, 7909, 7910], [7911, 7912, 7913], [7914, 7915, 7916], [7917, 7918, 7919], [7920, 7921, 7922], [7923, 7924, 7925], [7926, 7927, 7928], [7929, 7930, 7931], [7932, 7933, 7934], [7935, 7936, 7937], [7938, 7939, 7940], [7941, 7942, 7943], [7944, 7945, 7946], [7947, 7948, 7949], [7950, 7951, 7952], [7953, 7954, 7955], [7956, 7957, 7958], [7959, 7960, 7961], [7962, 7963, 7964], [7965, 7966, 7967], [7968, 7969, 7970], [7971, 7972, 7973], [7974, 7975, 7976], [7977, 7978, 7979], [7980, 7981, 7982], [7983, 7984, 7985], [7986, 7987, 7988], [7989, 7990, 7991], [7992, 7993, 7994], [7995, 7996, 7997], [7998, 7999, 8000], [8001, 8002, 8003], [8004, 8005, 8006], [8007, 8008, 8009], [8010, 8011, 8012], [8013, 8014, 8015], [8016, 8017, 8018], [8019, 8020, 8021], [8022, 8023, 8024], [8025, 8026, 8027], [8028, 8029, 8030], [8031, 8032, 8033], [8034, 8035, 8036], [8037, 8038, 8039], [8040, 8041, 8042], [8043, 8044, 8045], [8046, 8047, 8048], [8049, 8050, 8051], [8052, 8053, 8054], [8055, 8056, 8057], [8058, 8059, 8060], [8061, 8062, 8063], [8064, 8065, 8066], [8067, 8068, 8069], [8070, 8071, 8072], [8073, 8074, 8075], [8076, 8077, 8078], [8079, 8080, 8081], [8082, 8083, 8084], [8085, 8086, 8087], [8088, 8089, 8090], [8091, 8092, 8093], [8094, 8095, 8096], [8097, 8098, 8099], [8100, 8101, 8102], [8103, 8104, 8105], [8106, 8107, 8108], [8109, 8110, 8111], [8112, 8113, 8114], [8115, 8116, 8117], [8118, 8119, 8120], [8121, 8122, 8123], [8124, 8125, 8126], [8127, 8128, 8129], [8130, 8131, 8132], [8133, 8134, 8135], [8136, 8137, 8138], [8139, 8140, 8141], [8142, 8143, 8144], [8145, 8146, 8147], [8148, 8149, 8150], [8151, 8152, 8153], [8154, 8155, 8156], [8157, 8158, 8159], [8160, 8161, 8162], [8163, 8164, 8165], [8166, 8167, 8168], [8169, 8170, 8171], [8172, 8173, 8174], [8175, 8176, 8177], [8178, 8179, 8180], [8181, 8182, 8183], [8184, 8185, 8186], [8187, 8188, 8189], [8190, 8191, 8192], [8193, 8194, 8195], [8196, 8197, 8198], [8199, 8200, 8201], [8202, 8203, 8204], [8205, 8206, 8207], [8208, 8209, 8210], [8211, 8212, 8213], [8214, 8215, 8216], [8217, 8218, 8219], [8220, 8221, 8222], [8223, 8224, 8225], [8226, 8227, 8228], [8229, 8230, 8231], [8232, 8233, 8234], [8235, 8236, 8237], [8238, 8239, 8240], [8241, 8242, 8243], [8244, 8245, 8246], [8247, 8248, 8249], [8250, 8251, 8252], [8253, 8254, 8255], [8256, 8257, 8258], [8259, 8260, 8261], [8262, 8263, 8264], [8265, 8266, 8267], [8268, 8269, 8270], [8271, 8272, 8273], [8274, 8275, 8276], [8277, 8278, 8279], [8280, 8281, 8282], [8283, 8284, 8285], [8286, 8287, 8288], [8289, 8290, 8291], [8292, 8293, 8294], [8295, 8296, 8297], [8298, 8299, 8300], [8301, 8302, 8303], [8304, 8305, 8306], [8307, 8308, 8309], [8310, 8311, 8312], [8313, 8314, 8315], [8316, 8317, 8318], [8319, 8320, 8321], [8322, 8323, 8324], [8325, 8326, 8327], [8328, 8329, 8330], [8331, 8332, 8333], [8334, 8335, 8336], [8337, 8338, 8339], [8340, 8341, 8342], [8343, 8344, 8345], [8346, 8347, 8348], [8349, 8350, 8351], [8352, 8353, 8354], [8355, 8356, 8357], [8358, 8359, 8360], [8361, 8362, 8363], [8364, 8365, 8366], [8367, 8368, 8369], [8370, 8371, 8372], [8373, 8374, 8375], [8376, 8377, 8378], [8379, 8380, 8381], [8382, 8383, 8384], [8385, 8386, 8387], [8388, 8389, 8390], [8391, 8392, 8393], [8394, 8395, 8396], [8397, 8398, 8399], [8400, 8401, 8402], [8403, 8404, 8405], [8406, 8407, 8408], [8409, 8410, 8411], [8412, 8413, 8414], [8415, 8416, 8417], [8418, 8419, 8420], [8421, 8422, 8423], [8424, 8425, 8426], [8427, 8428, 8429], [8430, 8431, 8432], [8433, 8434, 8435], [8436, 8437, 8438], [8439, 8440, 8441], [8442, 8443, 8444], [8445, 8446, 8447], [8448, 8449, 8450], [8451, 8452, 8453], [8454, 8455, 8456], [8457, 8458, 8459], [8460, 8461, 8462], [8463, 8464, 8465], [8466, 8467, 8468], [8469, 8470, 8471], [8472, 8473, 8474], [8475, 8476, 8477], [8478, 8479, 8480], [8481, 8482, 8483], [8484, 8485, 8486], [8487, 8488, 8489], [8490, 8491, 8492], [8493, 8494, 8495], [8496, 8497, 8498], [8499, 8500, 8501], [8502, 8503, 8504], [8505, 8506, 8507], [8508, 8509, 8510], [8511, 8512, 8513], [8514, 8515, 8516], [8517, 8518, 8519], [8520, 8521, 8522], [8523, 8524, 8525], [8526, 8527, 8528], [8529, 8530, 8531], [8532, 8533, 8534], [8535, 8536, 8537], [8538, 8539, 8540], [8541, 8542, 8543], [8544, 8545, 8546], [8547, 8548, 8549], [8550, 8551, 8552], [8553, 8554, 8555], [8556, 8557, 8558], [8559, 8560, 8561], [8562, 8563, 8564], [8565, 8566, 8567], [8568, 8569, 8570], [8571, 8572, 8573], [8574, 8575, 8576], [8577, 8578, 8579], [8580, 8581, 8582], [8583, 8584, 8585], [8586, 8587, 8588], [8589, 8590, 8591], [8592, 8593, 8594], [8595, 8596, 8597], [8598, 8599, 8600], [8601, 8602, 8603], [8604, 8605, 8606], [8607, 8608, 8609], [8610, 8611, 8612], [8613, 8614, 8615], [8616, 8617, 8618], [8619, 8620, 8621], [8622, 8623, 8624], [8625, 8626, 8627], [8628, 8629, 8630], [8631, 8632, 8633], [8634, 8635, 8636], [8637, 8638, 8639], [8640, 8641, 8642], [8643, 8644, 8645], [8646, 8647, 8648], [8649, 8650, 8651], [8652, 8653, 8654], [8655, 8656, 8657], [8658, 8659, 8660], [8661, 8662, 8663], [8664, 8665, 8666], [8667, 8668, 8669], [8670, 8671, 8672], [8673, 8674, 8675], [8676, 8677, 8678], [8679, 8680, 8681], [8682, 8683, 8684], [8685, 8686, 8687], [8688, 8689, 8690], [8691, 8692, 8693], [8694, 8695, 8696], [8697, 8698, 8699], [8700, 8701, 8702], [8703, 8704, 8705], [8706, 8707, 8708], [8709, 8710, 8711], [8712, 8713, 8714], [8715, 8716, 8717], [8718, 8719, 8720], [8721, 8722, 8723], [8724, 8725, 8726], [8727, 8728, 8729], [8730, 8731, 8732], [8733, 8734, 8735], [8736, 8737, 8738], [8739, 8740, 8741], [8742, 8743, 8744], [8745, 8746, 8747], [8748, 8749, 8750], [8751, 8752, 8753], [8754, 8755, 8756], [8757, 8758, 8759], [8760, 8761, 8762], [8763, 8764, 8765], [8766, 8767, 8768], [8769, 8770, 8771], [8772, 8773, 8774], [8775, 8776, 8777], [8778, 8779, 8780], [8781, 8782, 8783], [8784, 8785, 8786], [8787, 8788, 8789], [8790, 8791, 8792], [8793, 8794, 8795], [8796, 8797, 8798], [8799, 8800, 8801], [8802, 8803, 8804], [8805, 8806, 8807], [8808, 8809, 8810], [8811, 8812, 8813], [8814, 8815, 8816], [8817, 8818, 8819], [8820, 8821, 8822], [8823, 8824, 8825], [8826, 8827, 8828], [8829, 8830, 8831], [8832, 8833, 8834], [8835, 8836, 8837], [8838, 8839, 8840], [8841, 8842, 8843], [8844, 8845, 8846], [8847, 8848, 8849], [8850, 8851, 8852], [8853, 8854, 8855], [8856, 8857, 8858], [8859, 8860, 8861], [8862, 8863, 8864], [8865, 8866, 8867], [8868, 8869, 8870], [8871, 8872, 8873], [8874, 8875, 8876], [8877, 8878, 8879], [8880, 8881, 8882], [8883, 8884, 8885], [8886, 8887, 8888], [8889, 8890, 8891], [8892, 8893, 8894], [8895, 8896, 8897], [8898, 8899, 8900], [8901, 8902, 8903], [8904, 8905, 8906], [8907, 8908, 8909], [8910, 8911, 8912], [8913, 8914, 8915], [8916, 8917, 8918], [8919, 8920, 8921], [8922, 8923, 8924], [8925, 8926, 8927], [8928, 8929, 8930], [8931, 8932, 8933], [8934, 8935, 8936], [8937, 8938, 8939], [8940, 8941, 8942], [8943, 8944, 8945], [8946, 8947, 8948], [8949, 8950, 8951], [8952, 8953, 8954], [8955, 8956, 8957], [8958, 8959, 8960], [8961, 8962, 8963], [8964, 8965, 8966], [8967, 8968, 8969], [8970, 8971, 8972], [8973, 8974, 8975], [8976, 8977, 8978], [8979, 8980, 8981], [8982, 8983, 8984], [8985, 8986, 8987], [8988, 8989, 8990], [8991, 8992, 8993], [8994, 8995, 8996], [8997, 8998, 8999], [9000, 9001, 9002], [9003, 9004, 9005], [9006, 9007, 9008], [9009, 9010, 9011], [9012, 9013, 9014], [9015, 9016, 9017], [9018, 9019, 9020], [9021, 9022, 9023], [9024, 9025, 9026], [9027, 9028, 9029], [9030, 9031, 9032], [9033, 9034, 9035], [9036, 9037, 9038], [9039, 9040, 9041], [9042, 9043, 9044], [9045, 9046, 9047], [9048, 9049, 9050], [9051, 9052, 9053], [9054, 9055, 9056], [9057, 9058, 9059], [9060, 9061, 9062], [9063, 9064, 9065], [9066, 9067, 9068], [9069, 9070, 9071], [9072, 9073, 9074], [9075, 9076, 9077], [9078, 9079, 9080], [9081, 9082, 9083], [9084, 9085, 9086], [9087, 9088, 9089], [9090, 9091, 9092], [9093, 9094, 9095], [9096, 9097, 9098], [9099, 9100, 9101], [9102, 9103, 9104], [9105, 9106, 9107], [9108, 9109, 9110], [9111, 9112, 9113], [9114, 9115, 9116], [9117, 9118, 9119], [9120, 9121, 9122], [9123, 9124, 9125], [9126, 9127, 9128], [9129, 9130, 9131], [9132, 9133, 9134], [9135, 9136, 9137], [9138, 9139, 9140], [9141, 9142, 9143], [9144, 9145, 9146], [9147, 9148, 9149], [9150, 9151, 9152], [9153, 9154, 9155], [9156, 9157, 9158], [9159, 9160, 9161], [9162, 9163, 9164], [9165, 9166, 9167], [9168, 9169, 9170], [9171, 9172, 9173], [9174, 9175, 9176], [9177, 9178, 9179], [9180, 9181, 9182], [9183, 9184, 9185], [9186, 9187, 9188], [9189, 9190, 9191], [9192, 9193, 9194], [9195, 9196, 9197], [9198, 9199, 9200], [9201, 9202, 9203], [9204, 9205, 9206], [9207, 9208, 9209], [9210, 9211, 9212], [9213, 9214, 9215], [9216, 9217, 9218], [9219, 9220, 9221], [9222, 9223, 9224], [9225, 9226, 9227], [9228, 9229, 9230], [9231, 9232, 9233], [9234, 9235, 9236], [9237, 9238, 9239], [9240, 9241, 9242], [9243, 9244, 9245], [9246, 9247, 9248], [9249, 9250, 9251], [9252, 9253, 9254], [9255, 9256, 9257], [9258, 9259, 9260], [9261, 9262, 9263], [9264, 9265, 9266], [9267, 9268, 9269], [9270, 9271, 9272], [9273, 9274, 9275], [9276, 9277, 9278], [9279, 9280, 9281], [9282, 9283, 9284], [9285, 9286, 9287], [9288, 9289, 9290], [9291, 9292, 9293], [9294, 9295, 9296], [9297, 9298, 9299], [9300, 9301, 9302], [9303, 9304, 9305], [9306, 9307, 9308], [9309, 9310, 9311], [9312, 9313, 9314], [9315, 9316, 9317], [9318, 9319, 9320], [9321, 9322, 9323], [9324, 9325, 9326], [9327, 9328, 9329], [9330, 9331, 9332], [9333, 9334, 9335], [9336, 9337, 9338], [9339, 9340, 9341], [9342, 9343, 9344], [9345, 9346, 9347], [9348, 9349, 9350], [9351, 9352, 9353], [9354, 9355, 9356], [9357, 9358, 9359], [9360, 9361, 9362], [9363, 9364, 9365], [9366, 9367, 9368], [9369, 9370, 9371], [9372, 9373, 9374], [9375, 9376, 9377], [9378, 9379, 9380], [9381, 9382, 9383], [9384, 9385, 9386], [9387, 9388, 9389], [9390, 9391, 9392], [9393, 9394, 9395], [9396, 9397, 9398], [9399, 9400, 9401], [9402, 9403, 9404], [9405, 9406, 9407], [9408, 9409, 9410], [9411, 9412, 9413], [9414, 9415, 9416], [9417, 9418, 9419], [9420, 9421, 9422], [9423, 9424, 9425], [9426, 9427, 9428], [9429, 9430, 9431], [9432, 9433, 9434], [9435, 9436, 9437], [9438, 9439, 9440], [9441, 9442, 9443], [9444, 9445, 9446], [9447, 9448, 9449], [9450, 9451, 9452], [9453, 9454, 9455], [9456, 9457, 9458], [9459, 9460, 9461], [9462, 9463, 9464], [9465, 9466, 9467], [9468, 9469, 9470], [9471, 9472, 9473], [9474, 9475, 9476], [9477, 9478, 9479], [9480, 9481, 9482], [9483, 9484, 9485], [9486, 9487, 9488], [9489, 9490, 9491], [9492, 9493, 9494], [9495, 9496, 9497], [9498, 9499, 9500], [9501, 9502, 9503], [9504, 9505, 9506], [9507, 9508, 9509], [9510, 9511, 9512], [9513, 9514, 9515], [9516, 9517, 9518], [9519, 9520, 9521], [9522, 9523, 9524], [9525, 9526, 9527], [9528, 9529, 9530], [9531, 9532, 9533], [9534, 9535, 9536], [9537, 9538, 9539], [9540, 9541, 9542], [9543, 9544, 9545], [9546, 9547, 9548], [9549, 9550, 9551], [9552, 9553, 9554], [9555, 9556, 9557], [9558, 9559, 9560], [9561, 9562, 9563], [9564, 9565, 9566], [9567, 9568, 9569], [9570, 9571, 9572], [9573, 9574, 9575], [9576, 9577, 9578], [9579, 9580, 9581], [9582, 9583, 9584], [9585, 9586, 9587], [9588, 9589, 9590], [9591, 9592, 9593], [9594, 9595, 9596], [9597, 9598, 9599], [9600, 9601, 9602], [9603, 9604, 9605], [9606, 9607, 9608], [9609, 9610, 9611], [9612, 9613, 9614], [9615, 9616, 9617], [9618, 9619, 9620], [9621, 9622, 9623], [9624, 9625, 9626], [9627, 9628, 9629], [9630, 9631, 9632], [9633, 9634, 9635], [9636, 9637, 9638], [9639, 9640, 9641], [9642, 9643, 9644], [9645, 9646, 9647], [9648, 9649, 9650], [9651, 9652, 9653], [9654, 9655, 9656], [9657, 9658, 9659], [9660, 9661, 9662], [9663, 9664, 9665], [9666, 9667, 9668], [9669, 9670, 9671], [9672, 9673, 9674], [9675, 9676, 9677], [9678, 9679, 9680], [9681, 9682, 9683], [9684, 9685, 9686], [9687, 9688, 9689], [9690, 9691, 9692], [9693, 9694, 9695], [9696, 9697, 9698], [9699, 9700, 9701], [9702, 9703, 9704], [9705, 9706, 9707], [9708, 9709, 9710], [9711, 9712, 9713], [9714, 9715, 9716], [9717, 9718, 9719], [9720, 9721, 9722], [9723, 9724, 9725], [9726, 9727, 9728], [9729, 9730, 9731], [9732, 9733, 9734], [9735, 9736, 9737], [9738, 9739, 9740], [9741, 9742, 9743], [9744, 9745, 9746], [9747, 9748, 9749], [9750, 9751, 9752], [9753, 9754, 9755], [9756, 9757, 9758], [9759, 9760, 9761], [9762, 9763, 9764], [9765, 9766, 9767], [9768, 9769, 9770], [9771, 9772, 9773], [9774, 9775, 9776], [9777, 9778, 9779], [9780, 9781, 9782], [9783, 9784, 9785], [9786, 9787, 9788], [9789, 9790, 9791], [9792, 9793, 9794], [9795, 9796, 9797], [9798, 9799, 9800], [9801, 9802, 9803], [9804, 9805, 9806], [9807, 9808, 9809], [9810, 9811, 9812], [9813, 9814, 9815], [9816, 9817, 9818], [9819, 9820, 9821], [9822, 9823, 9824], [9825, 9826, 9827], [9828, 9829, 9830], [9831, 9832, 9833], [9834, 9835, 9836], [9837, 9838, 9839], [9840, 9841, 9842], [9843, 9844, 9845], [9846, 9847, 9848], [9849, 9850, 9851], [9852, 9853, 9854], [9855, 9856, 9857], [9858, 9859, 9860], [9861, 9862, 9863], [9864, 9865, 9866], [9867, 9868, 9869], [9870, 9871, 9872], [9873, 9874, 9875], [9876, 9877, 9878], [9879, 9880, 9881], [9882, 9883, 9884], [9885, 9886, 9887], [9888, 9889, 9890], [9891, 9892, 9893], [9894, 9895, 9896], [9897, 9898, 9899], [9900, 9901, 9902], [9903, 9904, 9905], [9906, 9907, 9908], [9909, 9910, 9911], [9912, 9913, 9914], [9915, 9916, 9917], [9918, 9919, 9920], [9921, 9922, 9923], [9924, 9925, 9926], [9927, 9928, 9929], [9930, 9931, 9932], [9933, 9934, 9935], [9936, 9937, 9938], [9939, 9940, 9941], [9942, 9943, 9944], [9945, 9946, 9947], [9948, 9949, 9950], [9951, 9952, 9953], [9954, 9955, 9956], [9957, 9958, 9959], [9960, 9961, 9962], [9963, 9964, 9965], [9966, 9967, 9968], [9969, 9970, 9971], [9972, 9973, 9974], [9975, 9976, 9977], [9978, 9979, 9980], [9981, 9982, 9983], [9984, 9985, 9986], [9987, 9988, 9989], [9990, 9991, 9992], [9993, 9994, 9995], [9996, 9997, 9998], [9999, 10000, 10001], [10002, 10003, 10004], [10005, 10006, 10007], [10008, 10009, 10010], [10011, 10012, 10013], [10014, 10015, 10016], [10017, 10018, 10019], [10020, 10021, 10022], [10023, 10024, 10025], [10026, 10027, 10028], [10029, 10030, 10031], [10032, 10033, 10034], [10035, 10036, 10037], [10038, 10039, 10040], [10041, 10042, 10043], [10044, 10045, 10046], [10047, 10048, 10049], [10050, 10051, 10052], [10053, 10054, 10055], [10056, 10057, 10058], [10059, 10060, 10061], [10062, 10063, 10064], [10065, 10066, 10067], [10068, 10069, 10070], [10071, 10072, 10073], [10074, 10075, 10076], [10077, 10078, 10079], [10080, 10081, 10082], [10083, 10084, 10085], [10086, 10087, 10088], [10089, 10090, 10091], [10092, 10093, 10094], [10095, 10096, 10097], [10098, 10099, 10100], [10101, 10102, 10103], [10104, 10105, 10106], [10107, 10108, 10109], [10110, 10111, 10112], [10113, 10114, 10115], [10116, 10117, 10118], [10119, 10120, 10121], [10122, 10123, 10124], [10125, 10126, 10127], [10128, 10129, 10130], [10131, 10132, 10133], [10134, 10135, 10136], [10137, 10138, 10139], [10140, 10141, 10142], [10143, 10144, 10145], [10146, 10147, 10148], [10149, 10150, 10151], [10152, 10153, 10154], [10155, 10156, 10157], [10158, 10159, 10160], [10161, 10162, 10163], [10164, 10165, 10166], [10167, 10168, 10169], [10170, 10171, 10172], [10173, 10174, 10175], [10176, 10177, 10178], [10179, 10180, 10181], [10182, 10183, 10184], [10185, 10186, 10187], [10188, 10189, 10190], [10191, 10192, 10193], [10194, 10195, 10196], [10197, 10198, 10199], [10200, 10201, 10202], [10203, 10204, 10205], [10206, 10207, 10208], [10209, 10210, 10211], [10212, 10213, 10214], [10215, 10216, 10217], [10218, 10219, 10220], [10221, 10222, 10223], [10224, 10225, 10226], [10227, 10228, 10229], [10230, 10231, 10232], [10233, 10234, 10235], [10236, 10237, 10238], [10239, 10240, 10241], [10242, 10243, 10244], [10245, 10246, 10247], [10248, 10249, 10250], [10251, 10252, 10253], [10254, 10255, 10256], [10257, 10258, 10259], [10260, 10261, 10262], [10263, 10264, 10265], [10266, 10267, 10268], [10269, 10270, 10271], [10272, 10273, 10274], [10275, 10276, 10277], [10278, 10279, 10280], [10281, 10282, 10283], [10284, 10285, 10286], [10287, 10288, 10289], [10290, 10291, 10292], [10293, 10294, 10295], [10296, 10297, 10298], [10299, 10300, 10301], [10302, 10303, 10304], [10305, 10306, 10307], [10308, 10309, 10310], [10311, 10312, 10313], [10314, 10315, 10316], [10317, 10318, 10319], [10320, 10321, 10322], [10323, 10324, 10325], [10326, 10327, 10328], [10329, 10330, 10331], [10332, 10333, 10334], [10335, 10336, 10337], [10338, 10339, 10340], [10341, 10342, 10343], [10344, 10345, 10346], [10347, 10348, 10349], [10350, 10351, 10352], [10353, 10354, 10355], [10356, 10357, 10358], [10359, 10360, 10361], [10362, 10363, 10364], [10365, 10366, 10367], [10368, 10369, 10370], [10371, 10372, 10373], [10374, 10375, 10376], [10377, 10378, 10379], [10380, 10381, 10382], [10383, 10384, 10385], [10386, 10387, 10388], [10389, 10390, 10391], [10392, 10393, 10394], [10395, 10396, 10397], [10398, 10399, 10400], [10401, 10402, 10403], [10404, 10405, 10406], [10407, 10408, 10409], [10410, 10411, 10412], [10413, 10414, 10415], [10416, 10417, 10418], [10419, 10420, 10421], [10422, 10423, 10424], [10425, 10426, 10427], [10428, 10429, 10430], [10431, 10432, 10433], [10434, 10435, 10436], [10437, 10438, 10439], [10440, 10441, 10442], [10443, 10444, 10445], [10446, 10447, 10448], [10449, 10450, 10451], [10452, 10453, 10454], [10455, 10456, 10457], [10458, 10459, 10460], [10461, 10462, 10463], [10464, 10465, 10466], [10467, 10468, 10469], [10470, 10471, 10472], [10473, 10474, 10475], [10476, 10477, 10478], [10479, 10480, 10481], [10482, 10483, 10484], [10485, 10486, 10487], [10488, 10489, 10490], [10491, 10492, 10493], [10494, 10495, 10496], [10497, 10498, 10499], [10500, 10501, 10502], [10503, 10504, 10505], [10506, 10507, 10508], [10509, 10510, 10511], [10512, 10513, 10514], [10515, 10516, 10517], [10518, 10519, 10520], [10521, 10522, 10523], [10524, 10525, 10526], [10527, 10528, 10529], [10530, 10531, 10532], [10533, 10534, 10535], [10536, 10537, 10538], [10539, 10540, 10541], [10542, 10543, 10544], [10545, 10546, 10547], [10548, 10549, 10550], [10551, 10552, 10553], [10554, 10555, 10556], [10557, 10558, 10559], [10560, 10561, 10562], [10563, 10564, 10565], [10566, 10567, 10568], [10569, 10570, 10571], [10572, 10573, 10574], [10575, 10576, 10577], [10578, 10579, 10580], [10581, 10582, 10583], [10584, 10585, 10586], [10587, 10588, 10589], [10590, 10591, 10592], [10593, 10594, 10595], [10596, 10597, 10598], [10599, 10600, 10601], [10602, 10603, 10604], [10605, 10606, 10607], [10608, 10609, 10610], [10611, 10612, 10613], [10614, 10615, 10616], [10617, 10618, 10619], [10620, 10621, 10622], [10623, 10624, 10625], [10626, 10627, 10628], [10629, 10630, 10631], [10632, 10633, 10634], [10635, 10636, 10637], [10638, 10639, 10640], [10641, 10642, 10643], [10644, 10645, 10646], [10647, 10648, 10649], [10650, 10651, 10652], [10653, 10654, 10655], [10656, 10657, 10658], [10659, 10660, 10661], [10662, 10663, 10664], [10665, 10666, 10667], [10668, 10669, 10670], [10671, 10672, 10673], [10674, 10675, 10676], [10677, 10678, 10679], [10680, 10681, 10682], [10683, 10684, 10685], [10686, 10687, 10688], [10689, 10690, 10691], [10692, 10693, 10694], [10695, 10696, 10697], [10698, 10699, 10700], [10701, 10702, 10703], [10704, 10705, 10706], [10707, 10708, 10709], [10710, 10711, 10712], [10713, 10714, 10715], [10716, 10717, 10718], [10719, 10720, 10721], [10722, 10723, 10724], [10725, 10726, 10727], [10728, 10729, 10730], [10731, 10732, 10733], [10734, 10735, 10736], [10737, 10738, 10739], [10740, 10741, 10742], [10743, 10744, 10745], [10746, 10747, 10748], [10749, 10750, 10751], [10752, 10753, 10754], [10755, 10756, 10757], [10758, 10759, 10760], [10761, 10762, 10763], [10764, 10765, 10766], [10767, 10768, 10769], [10770, 10771, 10772], [10773, 10774, 10775], [10776, 10777, 10778], [10779, 10780, 10781], [10782, 10783, 10784], [10785, 10786, 10787], [10788, 10789, 10790], [10791, 10792, 10793], [10794, 10795, 10796], [10797, 10798, 10799], [10800, 10801, 10802], [10803, 10804, 10805], [10806, 10807, 10808], [10809, 10810, 10811], [10812, 10813, 10814], [10815, 10816, 10817], [10818, 10819, 10820], [10821, 10822, 10823], [10824, 10825, 10826], [10827, 10828, 10829], [10830, 10831, 10832], [10833, 10834, 10835], [10836, 10837, 10838], [10839, 10840, 10841], [10842, 10843, 10844], [10845, 10846, 10847], [10848, 10849, 10850], [10851, 10852, 10853], [10854, 10855, 10856], [10857, 10858, 10859], [10860, 10861, 10862], [10863, 10864, 10865], [10866, 10867, 10868], [10869, 10870, 10871], [10872, 10873, 10874], [10875, 10876, 10877], [10878, 10879, 10880], [10881, 10882, 10883], [10884, 10885, 10886], [10887, 10888, 10889], [10890, 10891, 10892], [10893, 10894, 10895], [10896, 10897, 10898], [10899, 10900, 10901], [10902, 10903, 10904], [10905, 10906, 10907], [10908, 10909, 10910], [10911, 10912, 10913], [10914, 10915, 10916], [10917, 10918, 10919], [10920, 10921, 10922], [10923, 10924, 10925], [10926, 10927, 10928], [10929, 10930, 10931], [10932, 10933, 10934], [10935, 10936, 10937], [10938, 10939, 10940], [10941, 10942, 10943], [10944, 10945, 10946], [10947, 10948, 10949], [10950, 10951, 10952], [10953, 10954, 10955], [10956, 10957, 10958], [10959, 10960, 10961], [10962, 10963, 10964], [10965, 10966, 10967], [10968, 10969, 10970], [10971, 10972, 10973], [10974, 10975, 10976], [10977, 10978, 10979], [10980, 10981, 10982], [10983, 10984, 10985], [10986, 10987, 10988], [10989, 10990, 10991], [10992, 10993, 10994], [10995, 10996, 10997], [10998, 10999, 11000], [11001, 11002, 11003], [11004, 11005, 11006], [11007, 11008, 11009], [11010, 11011, 11012], [11013, 11014, 11015], [11016, 11017, 11018], [11019, 11020, 11021], [11022, 11023, 11024], [11025, 11026, 11027], [11028, 11029, 11030], [11031, 11032, 11033], [11034, 11035, 11036], [11037, 11038, 11039], [11040, 11041, 11042], [11043, 11044, 11045], [11046, 11047, 11048], [11049, 11050, 11051], [11052, 11053, 11054], [11055, 11056, 11057], [11058, 11059, 11060], [11061, 11062, 11063], [11064, 11065, 11066], [11067, 11068, 11069], [11070, 11071, 11072], [11073, 11074, 11075], [11076, 11077, 11078], [11079, 11080, 11081], [11082, 11083, 11084], [11085, 11086, 11087], [11088, 11089, 11090], [11091, 11092, 11093], [11094, 11095, 11096], [11097, 11098, 11099], [11100, 11101, 11102], [11103, 11104, 11105], [11106, 11107, 11108], [11109, 11110, 11111], [11112, 11113, 11114], [11115, 11116, 11117], [11118, 11119, 11120], [11121, 11122, 11123], [11124, 11125, 11126], [11127, 11128, 11129], [11130, 11131, 11132], [11133, 11134, 11135], [11136, 11137, 11138], [11139, 11140, 11141], [11142, 11143, 11144], [11145, 11146, 11147], [11148, 11149, 11150], [11151, 11152, 11153], [11154, 11155, 11156], [11157, 11158, 11159], [11160, 11161, 11162], [11163, 11164, 11165], [11166, 11167, 11168], [11169, 11170, 11171], [11172, 11173, 11174], [11175, 11176, 11177], [11178, 11179, 11180], [11181, 11182, 11183], [11184, 11185, 11186], [11187, 11188, 11189], [11190, 11191, 11192], [11193, 11194, 11195], [11196, 11197, 11198], [11199, 11200, 11201], [11202, 11203, 11204], [11205, 11206, 11207], [11208, 11209, 11210], [11211, 11212, 11213], [11214, 11215, 11216], [11217, 11218, 11219], [11220, 11221, 11222], [11223, 11224, 11225], [11226, 11227, 11228], [11229, 11230, 11231], [11232, 11233, 11234], [11235, 11236, 11237], [11238, 11239, 11240], [11241, 11242, 11243], [11244, 11245, 11246], [11247, 11248, 11249], [11250, 11251, 11252], [11253, 11254, 11255], [11256, 11257, 11258], [11259, 11260, 11261], [11262, 11263, 11264], [11265, 11266, 11267], [11268, 11269, 11270], [11271, 11272, 11273], [11274, 11275, 11276], [11277, 11278, 11279], [11280, 11281, 11282], [11283, 11284, 11285], [11286, 11287, 11288], [11289, 11290, 11291], [11292, 11293, 11294], [11295, 11296, 11297], [11298, 11299, 11300], [11301, 11302, 11303], [11304, 11305, 11306], [11307, 11308, 11309], [11310, 11311, 11312], [11313, 11314, 11315], [11316, 11317, 11318], [11319, 11320, 11321], [11322, 11323, 11324], [11325, 11326, 11327], [11328, 11329, 11330], [11331, 11332, 11333], [11334, 11335, 11336], [11337, 11338, 11339], [11340, 11341, 11342], [11343, 11344, 11345], [11346, 11347, 11348], [11349, 11350, 11351], [11352, 11353, 11354], [11355, 11356, 11357], [11358, 11359, 11360], [11361, 11362, 11363], [11364, 11365, 11366], [11367, 11368, 11369], [11370, 11371, 11372], [11373, 11374, 11375], [11376, 11377, 11378], [11379, 11380, 11381], [11382, 11383, 11384], [11385, 11386, 11387], [11388, 11389, 11390], [11391, 11392, 11393], [11394, 11395, 11396], [11397, 11398, 11399], [11400, 11401, 11402], [11403, 11404, 11405], [11406, 11407, 11408], [11409, 11410, 11411], [11412, 11413, 11414], [11415, 11416, 11417], [11418, 11419, 11420], [11421, 11422, 11423], [11424, 11425, 11426], [11427, 11428, 11429], [11430, 11431, 11432], [11433, 11434, 11435], [11436, 11437, 11438], [11439, 11440, 11441], [11442, 11443, 11444], [11445, 11446, 11447], [11448, 11449, 11450], [11451, 11452, 11453], [11454, 11455, 11456], [11457, 11458, 11459], [11460, 11461, 11462], [11463, 11464, 11465], [11466, 11467, 11468], [11469, 11470, 11471], [11472, 11473, 11474], [11475, 11476, 11477], [11478, 11479, 11480], [11481, 11482, 11483], [11484, 11485, 11486], [11487, 11488, 11489], [11490, 11491, 11492], [11493, 11494, 11495], [11496, 11497, 11498], [11499, 11500, 11501], [11502, 11503, 11504], [11505, 11506, 11507], [11508, 11509, 11510], [11511, 11512, 11513], [11514, 11515, 11516], [11517, 11518, 11519], [11520, 11521, 11522], [11523, 11524, 11525], [11526, 11527, 11528], [11529, 11530, 11531], [11532, 11533, 11534], [11535, 11536, 11537], [11538, 11539, 11540], [11541, 11542, 11543], [11544, 11545, 11546], [11547, 11548, 11549], [11550, 11551, 11552], [11553, 11554, 11555], [11556, 11557, 11558], [11559, 11560, 11561], [11562, 11563, 11564], [11565, 11566, 11567], [11568, 11569, 11570], [11571, 11572, 11573], [11574, 11575, 11576], [11577, 11578, 11579], [11580, 11581, 11582], [11583, 11584, 11585], [11586, 11587, 11588], [11589, 11590, 11591], [11592, 11593, 11594], [11595, 11596, 11597], [11598, 11599, 11600], [11601, 11602, 11603], [11604, 11605, 11606], [11607, 11608, 11609], [11610, 11611, 11612], [11613, 11614, 11615], [11616, 11617, 11618], [11619, 11620, 11621], [11622, 11623, 11624], [11625, 11626, 11627], [11628, 11629, 11630], [11631, 11632, 11633], [11634, 11635, 11636], [11637, 11638, 11639], [11640, 11641, 11642], [11643, 11644, 11645], [11646, 11647, 11648], [11649, 11650, 11651], [11652, 11653, 11654], [11655, 11656, 11657], [11658, 11659, 11660], [11661, 11662, 11663], [11664, 11665, 11666], [11667, 11668, 11669], [11670, 11671, 11672], [11673, 11674, 11675], [11676, 11677, 11678], [11679, 11680, 11681], [11682, 11683, 11684], [11685, 11686, 11687], [11688, 11689, 11690], [11691, 11692, 11693], [11694, 11695, 11696], [11697, 11698, 11699], [11700, 11701, 11702], [11703, 11704, 11705], [11706, 11707, 11708], [11709, 11710, 11711], [11712, 11713, 11714], [11715, 11716, 11717], [11718, 11719, 11720], [11721, 11722, 11723], [11724, 11725, 11726], [11727, 11728, 11729], [11730, 11731, 11732], [11733, 11734, 11735], [11736, 11737, 11738], [11739, 11740, 11741], [11742, 11743, 11744], [11745, 11746, 11747], [11748, 11749, 11750], [11751, 11752, 11753], [11754, 11755, 11756], [11757, 11758, 11759], [11760, 11761, 11762], [11763, 11764, 11765], [11766, 11767, 11768], [11769, 11770, 11771], [11772, 11773, 11774], [11775, 11776, 11777], [11778, 11779, 11780], [11781, 11782, 11783], [11784, 11785, 11786], [11787, 11788, 11789], [11790, 11791, 11792], [11793, 11794, 11795], [11796, 11797, 11798], [11799, 11800, 11801], [11802, 11803, 11804], [11805, 11806, 11807], [11808, 11809, 11810], [11811, 11812, 11813], [11814, 11815, 11816], [11817, 11818, 11819], [11820, 11821, 11822], [11823, 11824, 11825], [11826, 11827, 11828], [11829, 11830, 11831], [11832, 11833, 11834], [11835, 11836, 11837], [11838, 11839, 11840], [11841, 11842, 11843], [11844, 11845, 11846], [11847, 11848, 11849], [11850, 11851, 11852], [11853, 11854, 11855], [11856, 11857, 11858], [11859, 11860, 11861], [11862, 11863, 11864], [11865, 11866, 11867], [11868, 11869, 11870], [11871, 11872, 11873], [11874, 11875, 11876], [11877, 11878, 11879], [11880, 11881, 11882], [11883, 11884, 11885], [11886, 11887, 11888], [11889, 11890, 11891], [11892, 11893, 11894], [11895, 11896, 11897], [11898, 11899, 11900], [11901, 11902, 11903], [11904, 11905, 11906], [11907, 11908, 11909], [11910, 11911, 11912], [11913, 11914, 11915], [11916, 11917, 11918], [11919, 11920, 11921], [11922, 11923, 11924], [11925, 11926, 11927], [11928, 11929, 11930], [11931, 11932, 11933], [11934, 11935, 11936], [11937, 11938, 11939], [11940, 11941, 11942], [11943, 11944, 11945], [11946, 11947, 11948], [11949, 11950, 11951], [11952, 11953, 11954], [11955, 11956, 11957], [11958, 11959, 11960], [11961, 11962, 11963], [11964, 11965, 11966], [11967, 11968, 11969], [11970, 11971, 11972], [11973, 11974, 11975], [11976, 11977, 11978], [11979, 11980, 11981], [11982, 11983, 11984], [11985, 11986, 11987], [11988, 11989, 11990], [11991, 11992, 11993], [11994, 11995, 11996], [11997, 11998, 11999], [12000, 12001, 12002], [12003, 12004, 12005], [12006, 12007, 12008], [12009, 12010, 12011], [12012, 12013, 12014], [12015, 12016, 12017], [12018, 12019, 12020], [12021, 12022, 12023], [12024, 12025, 12026], [12027, 12028, 12029], [12030, 12031, 12032], [12033, 12034, 12035], [12036, 12037, 12038], [12039, 12040, 12041], [12042, 12043, 12044], [12045, 12046, 12047], [12048, 12049, 12050], [12051, 12052, 12053], [12054, 12055, 12056], [12057, 12058, 12059], [12060, 12061, 12062], [12063, 12064, 12065], [12066, 12067, 12068], [12069, 12070, 12071], [12072, 12073, 12074], [12075, 12076, 12077], [12078, 12079, 12080], [12081, 12082, 12083], [12084, 12085, 12086], [12087, 12088, 12089], [12090, 12091, 12092], [12093, 12094, 12095], [12096, 12097, 12098], [12099, 12100, 12101], [12102, 12103, 12104], [12105, 12106, 12107], [12108, 12109, 12110], [12111, 12112, 12113], [12114, 12115, 12116], [12117, 12118, 12119], [12120, 12121, 12122], [12123, 12124, 12125], [12126, 12127, 12128], [12129, 12130, 12131], [12132, 12133, 12134], [12135, 12136, 12137], [12138, 12139, 12140], [12141, 12142, 12143], [12144, 12145, 12146], [12147, 12148, 12149], [12150, 12151, 12152], [12153, 12154, 12155], [12156, 12157, 12158], [12159, 12160, 12161], [12162, 12163, 12164], [12165, 12166, 12167], [12168, 12169, 12170], [12171, 12172, 12173], [12174, 12175, 12176], [12177, 12178, 12179], [12180, 12181, 12182], [12183, 12184, 12185], [12186, 12187, 12188], [12189, 12190, 12191], [12192, 12193, 12194], [12195, 12196, 12197], [12198, 12199, 12200], [12201, 12202, 12203], [12204, 12205, 12206], [12207, 12208, 12209], [12210, 12211, 12212], [12213, 12214, 12215], [12216, 12217, 12218], [12219, 12220, 12221], [12222, 12223, 12224], [12225, 12226, 12227], [12228, 12229, 12230], [12231, 12232, 12233], [12234, 12235, 12236], [12237, 12238, 12239], [12240, 12241, 12242], [12243, 12244, 12245], [12246, 12247, 12248], [12249, 12250, 12251], [12252, 12253, 12254], [12255, 12256, 12257], [12258, 12259, 12260], [12261, 12262, 12263], [12264, 12265, 12266], [12267, 12268, 12269], [12270, 12271, 12272], [12273, 12274, 12275], [12276, 12277, 12278], [12279, 12280, 12281], [12282, 12283, 12284], [12285, 12286, 12287], [12288, 12289, 12290], [12291, 12292, 12293], [12294, 12295, 12296], [12297, 12298, 12299], [12300, 12301, 12302], [12303, 12304, 12305], [12306, 12307, 12308], [12309, 12310, 12311], [12312, 12313, 12314], [12315, 12316, 12317], [12318, 12319, 12320], [12321, 12322, 12323], [12324, 12325, 12326], [12327, 12328, 12329], [12330, 12331, 12332], [12333, 12334, 12335], [12336, 12337, 12338], [12339, 12340, 12341], [12342, 12343, 12344], [12345, 12346, 12347], [12348, 12349, 12350], [12351, 12352, 12353], [12354, 12355, 12356], [12357, 12358, 12359], [12360, 12361, 12362], [12363, 12364, 12365], [12366, 12367, 12368], [12369, 12370, 12371], [12372, 12373, 12374], [12375, 12376, 12377], [12378, 12379, 12380], [12381, 12382, 12383], [12384, 12385, 12386], [12387, 12388, 12389], [12390, 12391, 12392], [12393, 12394, 12395], [12396, 12397, 12398], [12399, 12400, 12401], [12402, 12403, 12404], [12405, 12406, 12407], [12408, 12409, 12410], [12411, 12412, 12413], [12414, 12415, 12416], [12417, 12418, 12419], [12420, 12421, 12422], [12423, 12424, 12425], [12426, 12427, 12428], [12429, 12430, 12431], [12432, 12433, 12434], [12435, 12436, 12437], [12438, 12439, 12440], [12441, 12442, 12443], [12444, 12445, 12446], [12447, 12448, 12449], [12450, 12451, 12452], [12453, 12454, 12455], [12456, 12457, 12458], [12459, 12460, 12461], [12462, 12463, 12464], [12465, 12466, 12467], [12468, 12469, 12470], [12471, 12472, 12473], [12474, 12475, 12476], [12477, 12478, 12479], [12480, 12481, 12482], [12483, 12484, 12485], [12486, 12487, 12488], [12489, 12490, 12491], [12492, 12493, 12494], [12495, 12496, 12497], [12498, 12499, 12500], [12501, 12502, 12503], [12504, 12505, 12506], [12507, 12508, 12509], [12510, 12511, 12512], [12513, 12514, 12515], [12516, 12517, 12518], [12519, 12520, 12521], [12522, 12523, 12524], [12525, 12526, 12527], [12528, 12529, 12530], [12531, 12532, 12533], [12534, 12535, 12536], [12537, 12538, 12539], [12540, 12541, 12542], [12543, 12544, 12545], [12546, 12547, 12548], [12549, 12550, 12551], [12552, 12553, 12554], [12555, 12556, 12557], [12558, 12559, 12560], [12561, 12562, 12563], [12564, 12565, 12566], [12567, 12568, 12569], [12570, 12571, 12572], [12573, 12574, 12575], [12576, 12577, 12578], [12579, 12580, 12581], [12582, 12583, 12584], [12585, 12586, 12587], [12588, 12589, 12590], [12591, 12592, 12593], [12594, 12595, 12596], [12597, 12598, 12599], [12600, 12601, 12602], [12603, 12604, 12605], [12606, 12607, 12608], [12609, 12610, 12611], [12612, 12613, 12614], [12615, 12616, 12617], [12618, 12619, 12620], [12621, 12622, 12623], [12624, 12625, 12626], [12627, 12628, 12629], [12630, 12631, 12632], [12633, 12634, 12635], [12636, 12637, 12638], [12639, 12640, 12641], [12642, 12643, 12644], [12645, 12646, 12647], [12648, 12649, 12650], [12651, 12652, 12653], [12654, 12655, 12656], [12657, 12658, 12659], [12660, 12661, 12662], [12663, 12664, 12665], [12666, 12667, 12668], [12669, 12670, 12671], [12672, 12673, 12674], [12675, 12676, 12677], [12678, 12679, 12680], [12681, 12682, 12683], [12684, 12685, 12686], [12687, 12688, 12689], [12690, 12691, 12692], [12693, 12694, 12695], [12696, 12697, 12698], [12699, 12700, 12701], [12702, 12703, 12704], [12705, 12706, 12707], [12708, 12709, 12710], [12711, 12712, 12713], [12714, 12715, 12716], [12717, 12718, 12719], [12720, 12721, 12722], [12723, 12724, 12725], [12726, 12727, 12728], [12729, 12730, 12731], [12732, 12733, 12734], [12735, 12736, 12737], [12738, 12739, 12740], [12741, 12742, 12743], [12744, 12745, 12746], [12747, 12748, 12749], [12750, 12751, 12752], [12753, 12754, 12755], [12756, 12757, 12758], [12759, 12760, 12761], [12762, 12763, 12764], [12765, 12766, 12767], [12768, 12769, 12770], [12771, 12772, 12773], [12774, 12775, 12776], [12777, 12778, 12779], [12780, 12781, 12782], [12783, 12784, 12785], [12786, 12787, 12788], [12789, 12790, 12791], [12792, 12793, 12794], [12795, 12796, 12797], [12798, 12799, 12800], [12801, 12802, 12803], [12804, 12805, 12806], [12807, 12808, 12809], [12810, 12811, 12812], [12813, 12814, 12815], [12816, 12817, 12818], [12819, 12820, 12821], [12822, 12823, 12824], [12825, 12826, 12827], [12828, 12829, 12830], [12831, 12832, 12833], [12834, 12835, 12836], [12837, 12838, 12839], [12840, 12841, 12842], [12843, 12844, 12845], [12846, 12847, 12848], [12849, 12850, 12851], [12852, 12853, 12854], [12855, 12856, 12857], [12858, 12859, 12860], [12861, 12862, 12863], [12864, 12865, 12866], [12867, 12868, 12869], [12870, 12871, 12872], [12873, 12874, 12875], [12876, 12877, 12878], [12879, 12880, 12881], [12882, 12883, 12884], [12885, 12886, 12887], [12888, 12889, 12890], [12891, 12892, 12893], [12894, 12895, 12896], [12897, 12898, 12899], [12900, 12901, 12902], [12903, 12904, 12905], [12906, 12907, 12908], [12909, 12910, 12911], [12912, 12913, 12914], [12915, 12916, 12917], [12918, 12919, 12920], [12921, 12922, 12923], [12924, 12925, 12926], [12927, 12928, 12929], [12930, 12931, 12932], [12933, 12934, 12935], [12936, 12937, 12938], [12939, 12940, 12941], [12942, 12943, 12944], [12945, 12946, 12947], [12948, 12949, 12950], [12951, 12952, 12953], [12954, 12955, 12956], [12957, 12958, 12959], [12960, 12961, 12962], [12963, 12964, 12965], [12966, 12967, 12968], [12969, 12970, 12971], [12972, 12973, 12974], [12975, 12976, 12977], [12978, 12979, 12980], [12981, 12982, 12983], [12984, 12985, 12986], [12987, 12988, 12989], [12990, 12991, 12992], [12993, 12994, 12995], [12996, 12997, 12998], [12999, 13000, 13001], [13002, 13003, 13004], [13005, 13006, 13007], [13008, 13009, 13010], [13011, 13012, 13013], [13014, 13015, 13016], [13017, 13018, 13019], [13020, 13021, 13022], [13023, 13024, 13025], [13026, 13027, 13028], [13029, 13030, 13031], [13032, 13033, 13034], [13035, 13036, 13037], [13038, 13039, 13040], [13041, 13042, 13043], [13044, 13045, 13046], [13047, 13048, 13049], [13050, 13051, 13052], [13053, 13054, 13055], [13056, 13057, 13058], [13059, 13060, 13061], [13062, 13063, 13064], [13065, 13066, 13067], [13068, 13069, 13070], [13071, 13072, 13073], [13074, 13075, 13076], [13077, 13078, 13079], [13080, 13081, 13082], [13083, 13084, 13085], [13086, 13087, 13088], [13089, 13090, 13091], [13092, 13093, 13094], [13095, 13096, 13097], [13098, 13099, 13100], [13101, 13102, 13103], [13104, 13105, 13106], [13107, 13108, 13109], [13110, 13111, 13112], [13113, 13114, 13115], [13116, 13117, 13118], [13119, 13120, 13121], [13122, 13123, 13124], [13125, 13126, 13127], [13128, 13129, 13130], [13131, 13132, 13133], [13134, 13135, 13136], [13137, 13138, 13139], [13140, 13141, 13142], [13143, 13144, 13145], [13146, 13147, 13148], [13149, 13150, 13151], [13152, 13153, 13154], [13155, 13156, 13157], [13158, 13159, 13160], [13161, 13162, 13163], [13164, 13165, 13166], [13167, 13168, 13169], [13170, 13171, 13172], [13173, 13174, 13175], [13176, 13177, 13178], [13179, 13180, 13181], [13182, 13183, 13184], [13185, 13186, 13187], [13188, 13189, 13190], [13191, 13192, 13193], [13194, 13195, 13196], [13197, 13198, 13199], [13200, 13201, 13202], [13203, 13204, 13205], [13206, 13207, 13208], [13209, 13210, 13211], [13212, 13213, 13214], [13215, 13216, 13217], [13218, 13219, 13220], [13221, 13222, 13223], [13224, 13225, 13226], [13227, 13228, 13229], [13230, 13231, 13232], [13233, 13234, 13235], [13236, 13237, 13238], [13239, 13240, 13241], [13242, 13243, 13244], [13245, 13246, 13247], [13248, 13249, 13250], [13251, 13252, 13253], [13254, 13255, 13256], [13257, 13258, 13259], [13260, 13261, 13262], [13263, 13264, 13265], [13266, 13267, 13268], [13269, 13270, 13271], [13272, 13273, 13274], [13275, 13276, 13277], [13278, 13279, 13280], [13281, 13282, 13283], [13284, 13285, 13286], [13287, 13288, 13289], [13290, 13291, 13292], [13293, 13294, 13295], [13296, 13297, 13298], [13299, 13300, 13301], [13302, 13303, 13304], [13305, 13306, 13307], [13308, 13309, 13310], [13311, 13312, 13313], [13314, 13315, 13316], [13317, 13318, 13319], [13320, 13321, 13322], [13323, 13324, 13325], [13326, 13327, 13328], [13329, 13330, 13331], [13332, 13333, 13334], [13335, 13336, 13337], [13338, 13339, 13340], [13341, 13342, 13343], [13344, 13345, 13346], [13347, 13348, 13349], [13350, 13351, 13352], [13353, 13354, 13355], [13356, 13357, 13358], [13359, 13360, 13361], [13362, 13363, 13364], [13365, 13366, 13367], [13368, 13369, 13370], [13371, 13372, 13373], [13374, 13375, 13376], [13377, 13378, 13379], [13380, 13381, 13382], [13383, 13384, 13385], [13386, 13387, 13388], [13389, 13390, 13391], [13392, 13393, 13394], [13395, 13396, 13397], [13398, 13399, 13400], [13401, 13402, 13403], [13404, 13405, 13406], [13407, 13408, 13409], [13410, 13411, 13412], [13413, 13414, 13415], [13416, 13417, 13418], [13419, 13420, 13421], [13422, 13423, 13424], [13425, 13426, 13427], [13428, 13429, 13430], [13431, 13432, 13433], [13434, 13435, 13436], [13437, 13438, 13439], [13440, 13441, 13442], [13443, 13444, 13445], [13446, 13447, 13448], [13449, 13450, 13451], [13452, 13453, 13454], [13455, 13456, 13457], [13458, 13459, 13460], [13461, 13462, 13463], [13464, 13465, 13466], [13467, 13468, 13469], [13470, 13471, 13472], [13473, 13474, 13475], [13476, 13477, 13478], [13479, 13480, 13481], [13482, 13483, 13484], [13485, 13486, 13487], [13488, 13489, 13490], [13491, 13492, 13493], [13494, 13495, 13496], [13497, 13498, 13499], [13500, 13501, 13502], [13503, 13504, 13505], [13506, 13507, 13508], [13509, 13510, 13511], [13512, 13513, 13514], [13515, 13516, 13517], [13518, 13519, 13520], [13521, 13522, 13523], [13524, 13525, 13526], [13527, 13528, 13529], [13530, 13531, 13532], [13533, 13534, 13535], [13536, 13537, 13538], [13539, 13540, 13541], [13542, 13543, 13544], [13545, 13546, 13547], [13548, 13549, 13550], [13551, 13552, 13553], [13554, 13555, 13556], [13557, 13558, 13559], [13560, 13561, 13562], [13563, 13564, 13565], [13566, 13567, 13568], [13569, 13570, 13571], [13572, 13573, 13574], [13575, 13576, 13577], [13578, 13579, 13580], [13581, 13582, 13583], [13584, 13585, 13586], [13587, 13588, 13589], [13590, 13591, 13592], [13593, 13594, 13595], [13596, 13597, 13598], [13599, 13600, 13601], [13602, 13603, 13604], [13605, 13606, 13607], [13608, 13609, 13610], [13611, 13612, 13613], [13614, 13615, 13616], [13617, 13618, 13619], [13620, 13621, 13622], [13623, 13624, 13625], [13626, 13627, 13628], [13629, 13630, 13631], [13632, 13633, 13634], [13635, 13636, 13637], [13638, 13639, 13640], [13641, 13642, 13643], [13644, 13645, 13646], [13647, 13648, 13649], [13650, 13651, 13652], [13653, 13654, 13655], [13656, 13657, 13658], [13659, 13660, 13661], [13662, 13663, 13664], [13665, 13666, 13667], [13668, 13669, 13670], [13671, 13672, 13673], [13674, 13675, 13676], [13677, 13678, 13679], [13680, 13681, 13682], [13683, 13684, 13685], [13686, 13687, 13688], [13689, 13690, 13691], [13692, 13693, 13694], [13695, 13696, 13697], [13698, 13699, 13700], [13701, 13702, 13703], [13704, 13705, 13706], [13707, 13708, 13709], [13710, 13711, 13712], [13713, 13714, 13715], [13716, 13717, 13718], [13719, 13720, 13721], [13722, 13723, 13724], [13725, 13726, 13727], [13728, 13729, 13730], [13731, 13732, 13733], [13734, 13735, 13736], [13737, 13738, 13739], [13740, 13741, 13742], [13743, 13744, 13745], [13746, 13747, 13748], [13749, 13750, 13751], [13752, 13753, 13754], [13755, 13756, 13757], [13758, 13759, 13760], [13761, 13762, 13763], [13764, 13765, 13766], [13767, 13768, 13769], [13770, 13771, 13772], [13773, 13774, 13775], [13776, 13777, 13778], [13779, 13780, 13781], [13782, 13783, 13784], [13785, 13786, 13787], [13788, 13789, 13790], [13791, 13792, 13793], [13794, 13795, 13796], [13797, 13798, 13799], [13800, 13801, 13802], [13803, 13804, 13805], [13806, 13807, 13808], [13809, 13810, 13811], [13812, 13813, 13814], [13815, 13816, 13817], [13818, 13819, 13820], [13821, 13822, 13823], [13824, 13825, 13826], [13827, 13828, 13829], [13830, 13831, 13832], [13833, 13834, 13835], [13836, 13837, 13838], [13839, 13840, 13841], [13842, 13843, 13844], [13845, 13846, 13847], [13848, 13849, 13850], [13851, 13852, 13853], [13854, 13855, 13856], [13857, 13858, 13859], [13860, 13861, 13862], [13863, 13864, 13865], [13866, 13867, 13868], [13869, 13870, 13871], [13872, 13873, 13874], [13875, 13876, 13877], [13878, 13879, 13880], [13881, 13882, 13883], [13884, 13885, 13886], [13887, 13888, 13889], [13890, 13891, 13892], [13893, 13894, 13895], [13896, 13897, 13898], [13899, 13900, 13901], [13902, 13903, 13904], [13905, 13906, 13907], [13908, 13909, 13910], [13911, 13912, 13913], [13914, 13915, 13916], [13917, 13918, 13919], [13920, 13921, 13922], [13923, 13924, 13925], [13926, 13927, 13928], [13929, 13930, 13931], [13932, 13933, 13934], [13935, 13936, 13937], [13938, 13939, 13940], [13941, 13942, 13943], [13944, 13945, 13946], [13947, 13948, 13949], [13950, 13951, 13952], [13953, 13954, 13955], [13956, 13957, 13958], [13959, 13960, 13961], [13962, 13963, 13964], [13965, 13966, 13967], [13968, 13969, 13970], [13971, 13972, 13973], [13974, 13975, 13976], [13977, 13978, 13979], [13980, 13981, 13982], [13983, 13984, 13985], [13986, 13987, 13988], [13989, 13990, 13991], [13992, 13993, 13994], [13995, 13996, 13997], [13998, 13999, 14000], [14001, 14002, 14003], [14004, 14005, 14006], [14007, 14008, 14009], [14010, 14011, 14012], [14013, 14014, 14015], [14016, 14017, 14018], [14019, 14020, 14021], [14022, 14023, 14024], [14025, 14026, 14027], [14028, 14029, 14030], [14031, 14032, 14033], [14034, 14035, 14036], [14037, 14038, 14039], [14040, 14041, 14042], [14043, 14044, 14045], [14046, 14047, 14048], [14049, 14050, 14051], [14052, 14053, 14054], [14055, 14056, 14057], [14058, 14059, 14060], [14061, 14062, 14063], [14064, 14065, 14066], [14067, 14068, 14069], [14070, 14071, 14072], [14073, 14074, 14075], [14076, 14077, 14078], [14079, 14080, 14081], [14082, 14083, 14084], [14085, 14086, 14087], [14088, 14089, 14090], [14091, 14092, 14093], [14094, 14095, 14096], [14097, 14098, 14099], [14100, 14101, 14102], [14103, 14104, 14105], [14106, 14107, 14108], [14109, 14110, 14111], [14112, 14113, 14114], [14115, 14116, 14117], [14118, 14119, 14120], [14121, 14122, 14123], [14124, 14125, 14126], [14127, 14128, 14129], [14130, 14131, 14132], [14133, 14134, 14135], [14136, 14137, 14138], [14139, 14140, 14141], [14142, 14143, 14144], [14145, 14146, 14147], [14148, 14149, 14150], [14151, 14152, 14153], [14154, 14155, 14156], [14157, 14158, 14159], [14160, 14161, 14162], [14163, 14164, 14165], [14166, 14167, 14168], [14169, 14170, 14171], [14172, 14173, 14174], [14175, 14176, 14177], [14178, 14179, 14180], [14181, 14182, 14183], [14184, 14185, 14186], [14187, 14188, 14189], [14190, 14191, 14192], [14193, 14194, 14195], [14196, 14197, 14198], [14199, 14200, 14201], [14202, 14203, 14204], [14205, 14206, 14207], [14208, 14209, 14210], [14211, 14212, 14213], [14214, 14215, 14216], [14217, 14218, 14219], [14220, 14221, 14222], [14223, 14224, 14225], [14226, 14227, 14228], [14229, 14230, 14231], [14232, 14233, 14234], [14235, 14236, 14237], [14238, 14239, 14240], [14241, 14242, 14243], [14244, 14245, 14246], [14247, 14248, 14249], [14250, 14251, 14252], [14253, 14254, 14255], [14256, 14257, 14258], [14259, 14260, 14261], [14262, 14263, 14264], [14265, 14266, 14267], [14268, 14269, 14270], [14271, 14272, 14273], [14274, 14275, 14276], [14277, 14278, 14279], [14280, 14281, 14282], [14283, 14284, 14285], [14286, 14287, 14288], [14289, 14290, 14291], [14292, 14293, 14294], [14295, 14296, 14297], [14298, 14299, 14300], [14301, 14302, 14303], [14304, 14305, 14306], [14307, 14308, 14309], [14310, 14311, 14312], [14313, 14314, 14315], [14316, 14317, 14318], [14319, 14320, 14321], [14322, 14323, 14324], [14325, 14326, 14327], [14328, 14329, 14330], [14331, 14332, 14333], [14334, 14335, 14336], [14337, 14338, 14339], [14340, 14341, 14342], [14343, 14344, 14345], [14346, 14347, 14348], [14349, 14350, 14351], [14352, 14353, 14354], [14355, 14356, 14357], [14358, 14359, 14360], [14361, 14362, 14363], [14364, 14365, 14366], [14367, 14368, 14369], [14370, 14371, 14372], [14373, 14374, 14375], [14376, 14377, 14378], [14379, 14380, 14381], [14382, 14383, 14384], [14385, 14386, 14387], [14388, 14389, 14390], [14391, 14392, 14393], [14394, 14395, 14396], [14397, 14398, 14399], [14400, 14401, 14402], [14403, 14404, 14405], [14406, 14407, 14408], [14409, 14410, 14411], [14412, 14413, 14414], [14415, 14416, 14417], [14418, 14419, 14420], [14421, 14422, 14423], [14424, 14425, 14426], [14427, 14428, 14429], [14430, 14431, 14432], [14433, 14434, 14435], [14436, 14437, 14438], [14439, 14440, 14441], [14442, 14443, 14444], [14445, 14446, 14447], [14448, 14449, 14450], [14451, 14452, 14453], [14454, 14455, 14456], [14457, 14458, 14459], [14460, 14461, 14462], [14463, 14464, 14465], [14466, 14467, 14468], [14469, 14470, 14471], [14472, 14473, 14474], [14475, 14476, 14477], [14478, 14479, 14480], [14481, 14482, 14483], [14484, 14485, 14486], [14487, 14488, 14489], [14490, 14491, 14492], [14493, 14494, 14495], [14496, 14497, 14498], [14499, 14500, 14501], [14502, 14503, 14504], [14505, 14506, 14507], [14508, 14509, 14510], [14511, 14512, 14513], [14514, 14515, 14516], [14517, 14518, 14519], [14520, 14521, 14522], [14523, 14524, 14525], [14526, 14527, 14528], [14529, 14530, 14531], [14532, 14533, 14534], [14535, 14536, 14537], [14538, 14539, 14540], [14541, 14542, 14543], [14544, 14545, 14546], [14547, 14548, 14549], [14550, 14551, 14552], [14553, 14554, 14555], [14556, 14557, 14558], [14559, 14560, 14561], [14562, 14563, 14564], [14565, 14566, 14567], [14568, 14569, 14570], [14571, 14572, 14573], [14574, 14575, 14576], [14577, 14578, 14579], [14580, 14581, 14582], [14583, 14584, 14585], [14586, 14587, 14588], [14589, 14590, 14591], [14592, 14593, 14594], [14595, 14596, 14597], [14598, 14599, 14600], [14601, 14602, 14603], [14604, 14605, 14606], [14607, 14608, 14609], [14610, 14611, 14612], [14613, 14614, 14615], [14616, 14617, 14618], [14619, 14620, 14621], [14622, 14623, 14624], [14625, 14626, 14627], [14628, 14629, 14630], [14631, 14632, 14633], [14634, 14635, 14636], [14637, 14638, 14639], [14640, 14641, 14642], [14643, 14644, 14645], [14646, 14647, 14648], [14649, 14650, 14651], [14652, 14653, 14654], [14655, 14656, 14657], [14658, 14659, 14660], [14661, 14662, 14663], [14664, 14665, 14666], [14667, 14668, 14669], [14670, 14671, 14672], [14673, 14674, 14675], [14676, 14677, 14678], [14679, 14680, 14681], [14682, 14683, 14684], [14685, 14686, 14687], [14688, 14689, 14690], [14691, 14692, 14693], [14694, 14695, 14696], [14697, 14698, 14699], [14700, 14701, 14702], [14703, 14704, 14705], [14706, 14707, 14708], [14709, 14710, 14711], [14712, 14713, 14714], [14715, 14716, 14717], [14718, 14719, 14720], [14721, 14722, 14723], [14724, 14725, 14726], [14727, 14728, 14729], [14730, 14731, 14732], [14733, 14734, 14735], [14736, 14737, 14738], [14739, 14740, 14741], [14742, 14743, 14744], [14745, 14746, 14747], [14748, 14749, 14750], [14751, 14752, 14753], [14754, 14755, 14756], [14757, 14758, 14759], [14760, 14761, 14762], [14763, 14764, 14765], [14766, 14767, 14768], [14769, 14770, 14771], [14772, 14773, 14774], [14775, 14776, 14777], [14778, 14779, 14780], [14781, 14782, 14783], [14784, 14785, 14786], [14787, 14788, 14789], [14790, 14791, 14792], [14793, 14794, 14795], [14796, 14797, 14798], [14799, 14800, 14801], [14802, 14803, 14804], [14805, 14806, 14807], [14808, 14809, 14810], [14811, 14812, 14813], [14814, 14815, 14816], [14817, 14818, 14819], [14820, 14821, 14822], [14823, 14824, 14825], [14826, 14827, 14828], [14829, 14830, 14831], [14832, 14833, 14834], [14835, 14836, 14837], [14838, 14839, 14840], [14841, 14842, 14843], [14844, 14845, 14846], [14847, 14848, 14849], [14850, 14851, 14852], [14853, 14854, 14855], [14856, 14857, 14858], [14859, 14860, 14861], [14862, 14863, 14864], [14865, 14866, 14867], [14868, 14869, 14870], [14871, 14872, 14873], [14874, 14875, 14876], [14877, 14878, 14879], [14880, 14881, 14882], [14883, 14884, 14885], [14886, 14887, 14888], [14889, 14890, 14891], [14892, 14893, 14894], [14895, 14896, 14897], [14898, 14899, 14900], [14901, 14902, 14903], [14904, 14905, 14906], [14907, 14908, 14909], [14910, 14911, 14912], [14913, 14914, 14915], [14916, 14917, 14918], [14919, 14920, 14921], [14922, 14923, 14924], [14925, 14926, 14927], [14928, 14929, 14930], [14931, 14932, 14933], [14934, 14935, 14936], [14937, 14938, 14939], [14940, 14941, 14942], [14943, 14944, 14945], [14946, 14947, 14948], [14949, 14950, 14951], [14952, 14953, 14954], [14955, 14956, 14957], [14958, 14959, 14960], [14961, 14962, 14963], [14964, 14965, 14966], [14967, 14968, 14969], [14970, 14971, 14972], [14973, 14974, 14975], [14976, 14977, 14978], [14979, 14980, 14981], [14982, 14983, 14984], [14985, 14986, 14987], [14988, 14989, 14990], [14991, 14992, 14993], [14994, 14995, 14996], [14997, 14998, 14999], [15000, 15001, 15002], [15003, 15004, 15005], [15006, 15007, 15008], [15009, 15010, 15011], [15012, 15013, 15014], [15015, 15016, 15017], [15018, 15019, 15020], [15021, 15022, 15023], [15024, 15025, 15026], [15027, 15028, 15029], [15030, 15031, 15032], [15033, 15034, 15035], [15036, 15037, 15038], [15039, 15040, 15041], [15042, 15043, 15044], [15045, 15046, 15047], [15048, 15049, 15050], [15051, 15052, 15053], [15054, 15055, 15056], [15057, 15058, 15059], [15060, 15061, 15062], [15063, 15064, 15065], [15066, 15067, 15068], [15069, 15070, 15071], [15072, 15073, 15074], [15075, 15076, 15077], [15078, 15079, 15080], [15081, 15082, 15083], [15084, 15085, 15086], [15087, 15088, 15089], [15090, 15091, 15092], [15093, 15094, 15095], [15096, 15097, 15098], [15099, 15100, 15101], [15102, 15103, 15104], [15105, 15106, 15107], [15108, 15109, 15110], [15111, 15112, 15113], [15114, 15115, 15116], [15117, 15118, 15119], [15120, 15121, 15122], [15123, 15124, 15125], [15126, 15127, 15128], [15129, 15130, 15131], [15132, 15133, 15134], [15135, 15136, 15137], [15138, 15139, 15140], [15141, 15142, 15143], [15144, 15145, 15146], [15147, 15148, 15149], [15150, 15151, 15152], [15153, 15154, 15155], [15156, 15157, 15158], [15159, 15160, 15161], [15162, 15163, 15164], [15165, 15166, 15167], [15168, 15169, 15170], [15171, 15172, 15173], [15174, 15175, 15176], [15177, 15178, 15179], [15180, 15181, 15182], [15183, 15184, 15185], [15186, 15187, 15188], [15189, 15190, 15191], [15192, 15193, 15194], [15195, 15196, 15197], [15198, 15199, 15200], [15201, 15202, 15203], [15204, 15205, 15206], [15207, 15208, 15209], [15210, 15211, 15212], [15213, 15214, 15215], [15216, 15217, 15218], [15219, 15220, 15221], [15222, 15223, 15224], [15225, 15226, 15227], [15228, 15229, 15230], [15231, 15232, 15233], [15234, 15235, 15236], [15237, 15238, 15239], [15240, 15241, 15242], [15243, 15244, 15245], [15246, 15247, 15248], [15249, 15250, 15251], [15252, 15253, 15254], [15255, 15256, 15257], [15258, 15259, 15260], [15261, 15262, 15263], [15264, 15265, 15266], [15267, 15268, 15269], [15270, 15271, 15272], [15273, 15274, 15275], [15276, 15277, 15278], [15279, 15280, 15281], [15282, 15283, 15284], [15285, 15286, 15287], [15288, 15289, 15290], [15291, 15292, 15293], [15294, 15295, 15296], [15297, 15298, 15299], [15300, 15301, 15302], [15303, 15304, 15305], [15306, 15307, 15308], [15309, 15310, 15311], [15312, 15313, 15314], [15315, 15316, 15317], [15318, 15319, 15320], [15321, 15322, 15323], [15324, 15325, 15326], [15327, 15328, 15329], [15330, 15331, 15332], [15333, 15334, 15335], [15336, 15337, 15338], [15339, 15340, 15341], [15342, 15343, 15344], [15345, 15346, 15347], [15348, 15349, 15350], [15351, 15352, 15353], [15354, 15355, 15356], [15357, 15358, 15359], [15360, 15361, 15362], [15363, 15364, 15365], [15366, 15367, 15368], [15369, 15370, 15371], [15372, 15373, 15374], [15375, 15376, 15377], [15378, 15379, 15380], [15381, 15382, 15383], [15384, 15385, 15386], [15387, 15388, 15389], [15390, 15391, 15392], [15393, 15394, 15395], [15396, 15397, 15398], [15399, 15400, 15401], [15402, 15403, 15404], [15405, 15406, 15407], [15408, 15409, 15410], [15411, 15412, 15413], [15414, 15415, 15416], [15417, 15418, 15419], [15420, 15421, 15422], [15423, 15424, 15425], [15426, 15427, 15428], [15429, 15430, 15431], [15432, 15433, 15434], [15435, 15436, 15437], [15438, 15439, 15440], [15441, 15442, 15443], [15444, 15445, 15446], [15447, 15448, 15449], [15450, 15451, 15452], [15453, 15454, 15455], [15456, 15457, 15458], [15459, 15460, 15461], [15462, 15463, 15464], [15465, 15466, 15467], [15468, 15469, 15470], [15471, 15472, 15473], [15474, 15475, 15476], [15477, 15478, 15479], [15480, 15481, 15482], [15483, 15484, 15485], [15486, 15487, 15488], [15489, 15490, 15491], [15492, 15493, 15494], [15495, 15496, 15497], [15498, 15499, 15500], [15501, 15502, 15503], [15504, 15505, 15506], [15507, 15508, 15509], [15510, 15511, 15512], [15513, 15514, 15515], [15516, 15517, 15518], [15519, 15520, 15521], [15522, 15523, 15524], [15525, 15526, 15527], [15528, 15529, 15530], [15531, 15532, 15533], [15534, 15535, 15536], [15537, 15538, 15539], [15540, 15541, 15542], [15543, 15544, 15545], [15546, 15547, 15548], [15549, 15550, 15551], [15552, 15553, 15554], [15555, 15556, 15557], [15558, 15559, 15560], [15561, 15562, 15563], [15564, 15565, 15566], [15567, 15568, 15569], [15570, 15571, 15572], [15573, 15574, 15575], [15576, 15577, 15578], [15579, 15580, 15581], [15582, 15583, 15584], [15585, 15586, 15587], [15588, 15589, 15590], [15591, 15592, 15593], [15594, 15595, 15596], [15597, 15598, 15599], [15600, 15601, 15602], [15603, 15604, 15605], [15606, 15607, 15608], [15609, 15610, 15611], [15612, 15613, 15614], [15615, 15616, 15617], [15618, 15619, 15620], [15621, 15622, 15623], [15624, 15625, 15626], [15627, 15628, 15629], [15630, 15631, 15632], [15633, 15634, 15635], [15636, 15637, 15638], [15639, 15640, 15641], [15642, 15643, 15644], [15645, 15646, 15647], [15648, 15649, 15650], [15651, 15652, 15653], [15654, 15655, 15656], [15657, 15658, 15659], [15660, 15661, 15662], [15663, 15664, 15665], [15666, 15667, 15668], [15669, 15670, 15671], [15672, 15673, 15674], [15675, 15676, 15677], [15678, 15679, 15680], [15681, 15682, 15683], [15684, 15685, 15686], [15687, 15688, 15689], [15690, 15691, 15692], [15693, 15694, 15695], [15696, 15697, 15698], [15699, 15700, 15701], [15702, 15703, 15704], [15705, 15706, 15707], [15708, 15709, 15710], [15711, 15712, 15713], [15714, 15715, 15716], [15717, 15718, 15719], [15720, 15721, 15722], [15723, 15724, 15725], [15726, 15727, 15728], [15729, 15730, 15731], [15732, 15733, 15734], [15735, 15736, 15737], [15738, 15739, 15740], [15741, 15742, 15743], [15744, 15745, 15746], [15747, 15748, 15749], [15750, 15751, 15752], [15753, 15754, 15755], [15756, 15757, 15758], [15759, 15760, 15761], [15762, 15763, 15764], [15765, 15766, 15767], [15768, 15769, 15770], [15771, 15772, 15773], [15774, 15775, 15776], [15777, 15778, 15779], [15780, 15781, 15782], [15783, 15784, 15785], [15786, 15787, 15788], [15789, 15790, 15791], [15792, 15793, 15794], [15795, 15796, 15797], [15798, 15799, 15800], [15801, 15802, 15803], [15804, 15805, 15806], [15807, 15808, 15809], [15810, 15811, 15812], [15813, 15814, 15815], [15816, 15817, 15818], [15819, 15820, 15821], [15822, 15823, 15824], [15825, 15826, 15827], [15828, 15829, 15830], [15831, 15832, 15833], [15834, 15835, 15836], [15837, 15838, 15839], [15840, 15841, 15842], [15843, 15844, 15845], [15846, 15847, 15848], [15849, 15850, 15851], [15852, 15853, 15854], [15855, 15856, 15857], [15858, 15859, 15860], [15861, 15862, 15863], [15864, 15865, 15866], [15867, 15868, 15869], [15870, 15871, 15872], [15873, 15874, 15875], [15876, 15877, 15878], [15879, 15880, 15881], [15882, 15883, 15884], [15885, 15886, 15887], [15888, 15889, 15890], [15891, 15892, 15893], [15894, 15895, 15896], [15897, 15898, 15899], [15900, 15901, 15902], [15903, 15904, 15905], [15906, 15907, 15908], [15909, 15910, 15911], [15912, 15913, 15914], [15915, 15916, 15917], [15918, 15919, 15920], [15921, 15922, 15923], [15924, 15925, 15926], [15927, 15928, 15929], [15930, 15931, 15932], [15933, 15934, 15935], [15936, 15937, 15938], [15939, 15940, 15941], [15942, 15943, 15944], [15945, 15946, 15947], [15948, 15949, 15950], [15951, 15952, 15953], [15954, 15955, 15956], [15957, 15958, 15959], [15960, 15961, 15962], [15963, 15964, 15965], [15966, 15967, 15968], [15969, 15970, 15971], [15972, 15973, 15974], [15975, 15976, 15977], [15978, 15979, 15980], [15981, 15982, 15983], [15984, 15985, 15986], [15987, 15988, 15989], [15990, 15991, 15992], [15993, 15994, 15995], [15996, 15997, 15998], [15999, 16000, 16001], [16002, 16003, 16004], [16005, 16006, 16007], [16008, 16009, 16010], [16011, 16012, 16013], [16014, 16015, 16016], [16017, 16018, 16019], [16020, 16021, 16022], [16023, 16024, 16025], [16026, 16027, 16028], [16029, 16030, 16031], [16032, 16033, 16034], [16035, 16036, 16037], [16038, 16039, 16040], [16041, 16042, 16043], [16044, 16045, 16046], [16047, 16048, 16049], [16050, 16051, 16052], [16053, 16054, 16055], [16056, 16057, 16058], [16059, 16060, 16061], [16062, 16063, 16064], [16065, 16066, 16067], [16068, 16069, 16070], [16071, 16072, 16073], [16074, 16075, 16076], [16077, 16078, 16079], [16080, 16081, 16082], [16083, 16084, 16085], [16086, 16087, 16088], [16089, 16090, 16091], [16092, 16093, 16094], [16095, 16096, 16097], [16098, 16099, 16100], [16101, 16102, 16103], [16104, 16105, 16106], [16107, 16108, 16109], [16110, 16111, 16112], [16113, 16114, 16115], [16116, 16117, 16118], [16119, 16120, 16121], [16122, 16123, 16124], [16125, 16126, 16127], [16128, 16129, 16130], [16131, 16132, 16133], [16134, 16135, 16136], [16137, 16138, 16139], [16140, 16141, 16142], [16143, 16144, 16145], [16146, 16147, 16148], [16149, 16150, 16151], [16152, 16153, 16154], [16155, 16156, 16157], [16158, 16159, 16160], [16161, 16162, 16163], [16164, 16165, 16166], [16167, 16168, 16169], [16170, 16171, 16172], [16173, 16174, 16175], [16176, 16177, 16178], [16179, 16180, 16181], [16182, 16183, 16184], [16185, 16186, 16187], [16188, 16189, 16190], [16191, 16192, 16193], [16194, 16195, 16196], [16197, 16198, 16199], [16200, 16201, 16202], [16203, 16204, 16205], [16206, 16207, 16208], [16209, 16210, 16211], [16212, 16213, 16214], [16215, 16216, 16217], [16218, 16219, 16220], [16221, 16222, 16223], [16224, 16225, 16226], [16227, 16228, 16229], [16230, 16231, 16232], [16233, 16234, 16235], [16236, 16237, 16238], [16239, 16240, 16241], [16242, 16243, 16244], [16245, 16246, 16247], [16248, 16249, 16250], [16251, 16252, 16253], [16254, 16255, 16256], [16257, 16258, 16259], [16260, 16261, 16262], [16263, 16264, 16265], [16266, 16267, 16268], [16269, 16270, 16271], [16272, 16273, 16274], [16275, 16276, 16277], [16278, 16279, 16280], [16281, 16282, 16283], [16284, 16285, 16286], [16287, 16288, 16289], [16290, 16291, 16292], [16293, 16294, 16295], [16296, 16297, 16298], [16299, 16300, 16301], [16302, 16303, 16304], [16305, 16306, 16307], [16308, 16309, 16310], [16311, 16312, 16313], [16314, 16315, 16316], [16317, 16318, 16319], [16320, 16321, 16322], [16323, 16324, 16325], [16326, 16327, 16328], [16329, 16330, 16331], [16332, 16333, 16334], [16335, 16336, 16337], [16338, 16339, 16340], [16341, 16342, 16343], [16344, 16345, 16346], [16347, 16348, 16349], [16350, 16351, 16352], [16353, 16354, 16355], [16356, 16357, 16358], [16359, 16360, 16361], [16362, 16363, 16364], [16365, 16366, 16367], [16368, 16369, 16370], [16371, 16372, 16373], [16374, 16375, 16376], [16377, 16378, 16379], [16380, 16381, 16382], [16383, 16384, 16385], [16386, 16387, 16388], [16389, 16390, 16391], [16392, 16393, 16394], [16395, 16396, 16397], [16398, 16399, 16400], [16401, 16402, 16403], [16404, 16405, 16406], [16407, 16408, 16409], [16410, 16411, 16412], [16413, 16414, 16415], [16416, 16417, 16418], [16419, 16420, 16421], [16422, 16423, 16424], [16425, 16426, 16427], [16428, 16429, 16430], [16431, 16432, 16433], [16434, 16435, 16436], [16437, 16438, 16439], [16440, 16441, 16442], [16443, 16444, 16445], [16446, 16447, 16448], [16449, 16450, 16451], [16452, 16453, 16454], [16455, 16456, 16457], [16458, 16459, 16460], [16461, 16462, 16463], [16464, 16465, 16466], [16467, 16468, 16469], [16470, 16471, 16472], [16473, 16474, 16475], [16476, 16477, 16478], [16479, 16480, 16481], [16482, 16483, 16484], [16485, 16486, 16487], [16488, 16489, 16490], [16491, 16492, 16493], [16494, 16495, 16496], [16497, 16498, 16499], [16500, 16501, 16502], [16503, 16504, 16505], [16506, 16507, 16508], [16509, 16510, 16511], [16512, 16513, 16514], [16515, 16516, 16517], [16518, 16519, 16520], [16521, 16522, 16523], [16524, 16525, 16526], [16527, 16528, 16529], [16530, 16531, 16532], [16533, 16534, 16535], [16536, 16537, 16538], [16539, 16540, 16541], [16542, 16543, 16544], [16545, 16546, 16547], [16548, 16549, 16550], [16551, 16552, 16553], [16554, 16555, 16556], [16557, 16558, 16559], [16560, 16561, 16562], [16563, 16564, 16565], [16566, 16567, 16568], [16569, 16570, 16571], [16572, 16573, 16574], [16575, 16576, 16577], [16578, 16579, 16580], [16581, 16582, 16583], [16584, 16585, 16586], [16587, 16588, 16589], [16590, 16591, 16592], [16593, 16594, 16595], [16596, 16597, 16598], [16599, 16600, 16601], [16602, 16603, 16604], [16605, 16606, 16607], [16608, 16609, 16610], [16611, 16612, 16613], [16614, 16615, 16616], [16617, 16618, 16619], [16620, 16621, 16622], [16623, 16624, 16625], [16626, 16627, 16628], [16629, 16630, 16631], [16632, 16633, 16634], [16635, 16636, 16637], [16638, 16639, 16640], [16641, 16642, 16643], [16644, 16645, 16646], [16647, 16648, 16649], [16650, 16651, 16652], [16653, 16654, 16655], [16656, 16657, 16658], [16659, 16660, 16661], [16662, 16663, 16664], [16665, 16666, 16667], [16668, 16669, 16670], [16671, 16672, 16673], [16674, 16675, 16676], [16677, 16678, 16679], [16680, 16681, 16682], [16683, 16684, 16685], [16686, 16687, 16688], [16689, 16690, 16691], [16692, 16693, 16694], [16695, 16696, 16697], [16698, 16699, 16700], [16701, 16702, 16703], [16704, 16705, 16706], [16707, 16708, 16709], [16710, 16711, 16712], [16713, 16714, 16715], [16716, 16717, 16718], [16719, 16720, 16721], [16722, 16723, 16724], [16725, 16726, 16727], [16728, 16729, 16730], [16731, 16732, 16733], [16734, 16735, 16736], [16737, 16738, 16739], [16740, 16741, 16742], [16743, 16744, 16745], [16746, 16747, 16748], [16749, 16750, 16751], [16752, 16753, 16754], [16755, 16756, 16757], [16758, 16759, 16760], [16761, 16762, 16763], [16764, 16765, 16766], [16767, 16768, 16769], [16770, 16771, 16772], [16773, 16774, 16775], [16776, 16777, 16778], [16779, 16780, 16781], [16782, 16783, 16784], [16785, 16786, 16787], [16788, 16789, 16790], [16791, 16792, 16793], [16794, 16795, 16796], [16797, 16798, 16799], [16800, 16801, 16802], [16803, 16804, 16805], [16806, 16807, 16808], [16809, 16810, 16811], [16812, 16813, 16814], [16815, 16816, 16817], [16818, 16819, 16820], [16821, 16822, 16823], [16824, 16825, 16826], [16827, 16828, 16829], [16830, 16831, 16832], [16833, 16834, 16835], [16836, 16837, 16838], [16839, 16840, 16841], [16842, 16843, 16844], [16845, 16846, 16847], [16848, 16849, 16850], [16851, 16852, 16853], [16854, 16855, 16856], [16857, 16858, 16859], [16860, 16861, 16862], [16863, 16864, 16865], [16866, 16867, 16868], [16869, 16870, 16871], [16872, 16873, 16874], [16875, 16876, 16877], [16878, 16879, 16880], [16881, 16882, 16883], [16884, 16885, 16886], [16887, 16888, 16889], [16890, 16891, 16892], [16893, 16894, 16895], [16896, 16897, 16898], [16899, 16900, 16901], [16902, 16903, 16904], [16905, 16906, 16907], [16908, 16909, 16910], [16911, 16912, 16913], [16914, 16915, 16916], [16917, 16918, 16919], [16920, 16921, 16922], [16923, 16924, 16925], [16926, 16927, 16928], [16929, 16930, 16931], [16932, 16933, 16934], [16935, 16936, 16937], [16938, 16939, 16940], [16941, 16942, 16943], [16944, 16945, 16946], [16947, 16948, 16949], [16950, 16951, 16952], [16953, 16954, 16955], [16956, 16957, 16958], [16959, 16960, 16961], [16962, 16963, 16964], [16965, 16966, 16967], [16968, 16969, 16970], [16971, 16972, 16973], [16974, 16975, 16976], [16977, 16978, 16979], [16980, 16981, 16982], [16983, 16984, 16985], [16986, 16987, 16988], [16989, 16990, 16991], [16992, 16993, 16994], [16995, 16996, 16997], [16998, 16999, 17000], [17001, 17002, 17003], [17004, 17005, 17006], [17007, 17008, 17009], [17010, 17011, 17012], [17013, 17014, 17015], [17016, 17017, 17018], [17019, 17020, 17021], [17022, 17023, 17024], [17025, 17026, 17027], [17028, 17029, 17030], [17031, 17032, 17033], [17034, 17035, 17036], [17037, 17038, 17039], [17040, 17041, 17042], [17043, 17044, 17045], [17046, 17047, 17048], [17049, 17050, 17051], [17052, 17053, 17054], [17055, 17056, 17057], [17058, 17059, 17060], [17061, 17062, 17063], [17064, 17065, 17066], [17067, 17068, 17069], [17070, 17071, 17072], [17073, 17074, 17075], [17076, 17077, 17078], [17079, 17080, 17081], [17082, 17083, 17084], [17085, 17086, 17087], [17088, 17089, 17090], [17091, 17092, 17093], [17094, 17095, 17096], [17097, 17098, 17099], [17100, 17101, 17102], [17103, 17104, 17105], [17106, 17107, 17108], [17109, 17110, 17111], [17112, 17113, 17114], [17115, 17116, 17117], [17118, 17119, 17120], [17121, 17122, 17123], [17124, 17125, 17126], [17127, 17128, 17129], [17130, 17131, 17132], [17133, 17134, 17135], [17136, 17137, 17138], [17139, 17140, 17141], [17142, 17143, 17144], [17145, 17146, 17147], [17148, 17149, 17150], [17151, 17152, 17153], [17154, 17155, 17156], [17157, 17158, 17159], [17160, 17161, 17162], [17163, 17164, 17165], [17166, 17167, 17168], [17169, 17170, 17171], [17172, 17173, 17174], [17175, 17176, 17177], [17178, 17179, 17180], [17181, 17182, 17183], [17184, 17185, 17186], [17187, 17188, 17189], [17190, 17191, 17192], [17193, 17194, 17195], [17196, 17197, 17198], [17199, 17200, 17201], [17202, 17203, 17204], [17205, 17206, 17207], [17208, 17209, 17210], [17211, 17212, 17213], [17214, 17215, 17216], [17217, 17218, 17219], [17220, 17221, 17222], [17223, 17224, 17225], [17226, 17227, 17228], [17229, 17230, 17231], [17232, 17233, 17234], [17235, 17236, 17237], [17238, 17239, 17240], [17241, 17242, 17243], [17244, 17245, 17246], [17247, 17248, 17249], [17250, 17251, 17252], [17253, 17254, 17255], [17256, 17257, 17258], [17259, 17260, 17261], [17262, 17263, 17264], [17265, 17266, 17267], [17268, 17269, 17270], [17271, 17272, 17273], [17274, 17275, 17276], [17277, 17278, 17279], [17280, 17281, 17282], [17283, 17284, 17285], [17286, 17287, 17288], [17289, 17290, 17291], [17292, 17293, 17294], [17295, 17296, 17297], [17298, 17299, 17300], [17301, 17302, 17303], [17304, 17305, 17306], [17307, 17308, 17309], [17310, 17311, 17312], [17313, 17314, 17315], [17316, 17317, 17318], [17319, 17320, 17321], [17322, 17323, 17324], [17325, 17326, 17327], [17328, 17329, 17330], [17331, 17332, 17333], [17334, 17335, 17336], [17337, 17338, 17339], [17340, 17341, 17342], [17343, 17344, 17345], [17346, 17347, 17348], [17349, 17350, 17351], [17352, 17353, 17354], [17355, 17356, 17357], [17358, 17359, 17360], [17361, 17362, 17363], [17364, 17365, 17366], [17367, 17368, 17369], [17370, 17371, 17372], [17373, 17374, 17375], [17376, 17377, 17378], [17379, 17380, 17381], [17382, 17383, 17384], [17385, 17386, 17387], [17388, 17389, 17390], [17391, 17392, 17393], [17394, 17395, 17396], [17397, 17398, 17399], [17400, 17401, 17402], [17403, 17404, 17405], [17406, 17407, 17408], [17409, 17410, 17411], [17412, 17413, 17414], [17415, 17416, 17417], [17418, 17419, 17420], [17421, 17422, 17423], [17424, 17425, 17426], [17427, 17428, 17429], [17430, 17431, 17432], [17433, 17434, 17435], [17436, 17437, 17438], [17439, 17440, 17441], [17442, 17443, 17444], [17445, 17446, 17447], [17448, 17449, 17450], [17451, 17452, 17453], [17454, 17455, 17456], [17457, 17458, 17459], [17460, 17461, 17462], [17463, 17464, 17465], [17466, 17467, 17468], [17469, 17470, 17471], [17472, 17473, 17474], [17475, 17476, 17477], [17478, 17479, 17480], [17481, 17482, 17483], [17484, 17485, 17486], [17487, 17488, 17489], [17490, 17491, 17492], [17493, 17494, 17495], [17496, 17497, 17498], [17499, 17500, 17501], [17502, 17503, 17504], [17505, 17506, 17507], [17508, 17509, 17510], [17511, 17512, 17513], [17514, 17515, 17516], [17517, 17518, 17519], [17520, 17521, 17522], [17523, 17524, 17525], [17526, 17527, 17528], [17529, 17530, 17531], [17532, 17533, 17534], [17535, 17536, 17537], [17538, 17539, 17540], [17541, 17542, 17543], [17544, 17545, 17546], [17547, 17548, 17549], [17550, 17551, 17552], [17553, 17554, 17555], [17556, 17557, 17558], [17559, 17560, 17561], [17562, 17563, 17564], [17565, 17566, 17567], [17568, 17569, 17570], [17571, 17572, 17573], [17574, 17575, 17576], [17577, 17578, 17579], [17580, 17581, 17582], [17583, 17584, 17585], [17586, 17587, 17588], [17589, 17590, 17591], [17592, 17593, 17594], [17595, 17596, 17597], [17598, 17599, 17600], [17601, 17602, 17603], [17604, 17605, 17606], [17607, 17608, 17609], [17610, 17611, 17612], [17613, 17614, 17615], [17616, 17617, 17618], [17619, 17620, 17621], [17622, 17623, 17624], [17625, 17626, 17627], [17628, 17629, 17630], [17631, 17632, 17633], [17634, 17635, 17636], [17637, 17638, 17639], [17640, 17641, 17642], [17643, 17644, 17645], [17646, 17647, 17648], [17649, 17650, 17651], [17652, 17653, 17654], [17655, 17656, 17657], [17658, 17659, 17660], [17661, 17662, 17663], [17664, 17665, 17666], [17667, 17668, 17669], [17670, 17671, 17672], [17673, 17674, 17675], [17676, 17677, 17678], [17679, 17680, 17681], [17682, 17683, 17684], [17685, 17686, 17687], [17688, 17689, 17690], [17691, 17692, 17693], [17694, 17695, 17696], [17697, 17698, 17699], [17700, 17701, 17702], [17703, 17704, 17705], [17706, 17707, 17708], [17709, 17710, 17711], [17712, 17713, 17714], [17715, 17716, 17717], [17718, 17719, 17720], [17721, 17722, 17723], [17724, 17725, 17726], [17727, 17728, 17729], [17730, 17731, 17732], [17733, 17734, 17735], [17736, 17737, 17738], [17739, 17740, 17741], [17742, 17743, 17744], [17745, 17746, 17747], [17748, 17749, 17750], [17751, 17752, 17753], [17754, 17755, 17756], [17757, 17758, 17759], [17760, 17761, 17762], [17763, 17764, 17765], [17766, 17767, 17768], [17769, 17770, 17771], [17772, 17773, 17774], [17775, 17776, 17777], [17778, 17779, 17780], [17781, 17782, 17783], [17784, 17785, 17786], [17787, 17788, 17789], [17790, 17791, 17792], [17793, 17794, 17795], [17796, 17797, 17798], [17799, 17800, 17801], [17802, 17803, 17804], [17805, 17806, 17807], [17808, 17809, 17810], [17811, 17812, 17813], [17814, 17815, 17816], [17817, 17818, 17819], [17820, 17821, 17822], [17823, 17824, 17825], [17826, 17827, 17828], [17829, 17830, 17831], [17832, 17833, 17834], [17835, 17836, 17837], [17838, 17839, 17840], [17841, 17842, 17843], [17844, 17845, 17846], [17847, 17848, 17849], [17850, 17851, 17852], [17853, 17854, 17855], [17856, 17857, 17858], [17859, 17860, 17861], [17862, 17863, 17864], [17865, 17866, 17867], [17868, 17869, 17870], [17871, 17872, 17873], [17874, 17875, 17876], [17877, 17878, 17879], [17880, 17881, 17882], [17883, 17884, 17885], [17886, 17887, 17888], [17889, 17890, 17891], [17892, 17893, 17894], [17895, 17896, 17897], [17898, 17899, 17900], [17901, 17902, 17903], [17904, 17905, 17906], [17907, 17908, 17909], [17910, 17911, 17912], [17913, 17914, 17915], [17916, 17917, 17918], [17919, 17920, 17921], [17922, 17923, 17924], [17925, 17926, 17927], [17928, 17929, 17930], [17931, 17932, 17933], [17934, 17935, 17936], [17937, 17938, 17939], [17940, 17941, 17942], [17943, 17944, 17945], [17946, 17947, 17948], [17949, 17950, 17951], [17952, 17953, 17954], [17955, 17956, 17957], [17958, 17959, 17960], [17961, 17962, 17963], [17964, 17965, 17966], [17967, 17968, 17969], [17970, 17971, 17972], [17973, 17974, 17975], [17976, 17977, 17978], [17979, 17980, 17981], [17982, 17983, 17984], [17985, 17986, 17987], [17988, 17989, 17990], [17991, 17992, 17993], [17994, 17995, 17996], [17997, 17998, 17999], [18000, 18001, 18002], [18003, 18004, 18005], [18006, 18007, 18008], [18009, 18010, 18011], [18012, 18013, 18014], [18015, 18016, 18017], [18018, 18019, 18020], [18021, 18022, 18023], [18024, 18025, 18026], [18027, 18028, 18029], [18030, 18031, 18032], [18033, 18034, 18035], [18036, 18037, 18038], [18039, 18040, 18041], [18042, 18043, 18044], [18045, 18046, 18047], [18048, 18049, 18050], [18051, 18052, 18053], [18054, 18055, 18056], [18057, 18058, 18059], [18060, 18061, 18062], [18063, 18064, 18065], [18066, 18067, 18068], [18069, 18070, 18071], [18072, 18073, 18074], [18075, 18076, 18077], [18078, 18079, 18080], [18081, 18082, 18083], [18084, 18085, 18086], [18087, 18088, 18089], [18090, 18091, 18092], [18093, 18094, 18095], [18096, 18097, 18098], [18099, 18100, 18101], [18102, 18103, 18104], [18105, 18106, 18107], [18108, 18109, 18110], [18111, 18112, 18113], [18114, 18115, 18116], [18117, 18118, 18119], [18120, 18121, 18122], [18123, 18124, 18125], [18126, 18127, 18128], [18129, 18130, 18131], [18132, 18133, 18134], [18135, 18136, 18137], [18138, 18139, 18140], [18141, 18142, 18143], [18144, 18145, 18146], [18147, 18148, 18149], [18150, 18151, 18152], [18153, 18154, 18155], [18156, 18157, 18158], [18159, 18160, 18161], [18162, 18163, 18164], [18165, 18166, 18167], [18168, 18169, 18170], [18171, 18172, 18173], [18174, 18175, 18176], [18177, 18178, 18179], [18180, 18181, 18182], [18183, 18184, 18185], [18186, 18187, 18188], [18189, 18190, 18191], [18192, 18193, 18194], [18195, 18196, 18197], [18198, 18199, 18200], [18201, 18202, 18203], [18204, 18205, 18206], [18207, 18208, 18209], [18210, 18211, 18212], [18213, 18214, 18215], [18216, 18217, 18218], [18219, 18220, 18221], [18222, 18223, 18224], [18225, 18226, 18227], [18228, 18229, 18230], [18231, 18232, 18233], [18234, 18235, 18236], [18237, 18238, 18239], [18240, 18241, 18242], [18243, 18244, 18245], [18246, 18247, 18248], [18249, 18250, 18251], [18252, 18253, 18254], [18255, 18256, 18257], [18258, 18259, 18260], [18261, 18262, 18263], [18264, 18265, 18266], [18267, 18268, 18269], [18270, 18271, 18272], [18273, 18274, 18275], [18276, 18277, 18278], [18279, 18280, 18281], [18282, 18283, 18284], [18285, 18286, 18287], [18288, 18289, 18290], [18291, 18292, 18293], [18294, 18295, 18296], [18297, 18298, 18299], [18300, 18301, 18302], [18303, 18304, 18305], [18306, 18307, 18308], [18309, 18310, 18311], [18312, 18313, 18314], [18315, 18316, 18317], [18318, 18319, 18320], [18321, 18322, 18323], [18324, 18325, 18326], [18327, 18328, 18329], [18330, 18331, 18332], [18333, 18334, 18335], [18336, 18337, 18338], [18339, 18340, 18341], [18342, 18343, 18344], [18345, 18346, 18347], [18348, 18349, 18350], [18351, 18352, 18353], [18354, 18355, 18356], [18357, 18358, 18359], [18360, 18361, 18362], [18363, 18364, 18365], [18366, 18367, 18368], [18369, 18370, 18371], [18372, 18373, 18374], [18375, 18376, 18377], [18378, 18379, 18380], [18381, 18382, 18383], [18384, 18385, 18386], [18387, 18388, 18389], [18390, 18391, 18392], [18393, 18394, 18395], [18396, 18397, 18398], [18399, 18400, 18401], [18402, 18403, 18404], [18405, 18406, 18407], [18408, 18409, 18410], [18411, 18412, 18413], [18414, 18415, 18416], [18417, 18418, 18419], [18420, 18421, 18422], [18423, 18424, 18425], [18426, 18427, 18428], [18429, 18430, 18431], [18432, 18433, 18434], [18435, 18436, 18437], [18438, 18439, 18440], [18441, 18442, 18443], [18444, 18445, 18446], [18447, 18448, 18449], [18450, 18451, 18452], [18453, 18454, 18455], [18456, 18457, 18458], [18459, 18460, 18461], [18462, 18463, 18464], [18465, 18466, 18467], [18468, 18469, 18470], [18471, 18472, 18473], [18474, 18475, 18476], [18477, 18478, 18479], [18480, 18481, 18482], [18483, 18484, 18485], [18486, 18487, 18488], [18489, 18490, 18491], [18492, 18493, 18494], [18495, 18496, 18497], [18498, 18499, 18500], [18501, 18502, 18503], [18504, 18505, 18506], [18507, 18508, 18509], [18510, 18511, 18512], [18513, 18514, 18515], [18516, 18517, 18518], [18519, 18520, 18521], [18522, 18523, 18524], [18525, 18526, 18527], [18528, 18529, 18530], [18531, 18532, 18533], [18534, 18535, 18536], [18537, 18538, 18539], [18540, 18541, 18542], [18543, 18544, 18545], [18546, 18547, 18548], [18549, 18550, 18551], [18552, 18553, 18554], [18555, 18556, 18557], [18558, 18559, 18560], [18561, 18562, 18563], [18564, 18565, 18566], [18567, 18568, 18569], [18570, 18571, 18572], [18573, 18574, 18575], [18576, 18577, 18578], [18579, 18580, 18581], [18582, 18583, 18584], [18585, 18586, 18587], [18588, 18589, 18590], [18591, 18592, 18593], [18594, 18595, 18596], [18597, 18598, 18599], [18600, 18601, 18602], [18603, 18604, 18605], [18606, 18607, 18608], [18609, 18610, 18611], [18612, 18613, 18614], [18615, 18616, 18617], [18618, 18619, 18620], [18621, 18622, 18623], [18624, 18625, 18626], [18627, 18628, 18629], [18630, 18631, 18632], [18633, 18634, 18635], [18636, 18637, 18638], [18639, 18640, 18641], [18642, 18643, 18644], [18645, 18646, 18647], [18648, 18649, 18650], [18651, 18652, 18653], [18654, 18655, 18656], [18657, 18658, 18659], [18660, 18661, 18662], [18663, 18664, 18665], [18666, 18667, 18668], [18669, 18670, 18671], [18672, 18673, 18674], [18675, 18676, 18677], [18678, 18679, 18680], [18681, 18682, 18683], [18684, 18685, 18686], [18687, 18688, 18689], [18690, 18691, 18692], [18693, 18694, 18695], [18696, 18697, 18698], [18699, 18700, 18701], [18702, 18703, 18704], [18705, 18706, 18707], [18708, 18709, 18710], [18711, 18712, 18713], [18714, 18715, 18716], [18717, 18718, 18719], [18720, 18721, 18722], [18723, 18724, 18725], [18726, 18727, 18728], [18729, 18730, 18731], [18732, 18733, 18734], [18735, 18736, 18737], [18738, 18739, 18740], [18741, 18742, 18743], [18744, 18745, 18746], [18747, 18748, 18749], [18750, 18751, 18752], [18753, 18754, 18755], [18756, 18757, 18758], [18759, 18760, 18761], [18762, 18763, 18764], [18765, 18766, 18767], [18768, 18769, 18770], [18771, 18772, 18773], [18774, 18775, 18776], [18777, 18778, 18779], [18780, 18781, 18782], [18783, 18784, 18785], [18786, 18787, 18788], [18789, 18790, 18791], [18792, 18793, 18794], [18795, 18796, 18797], [18798, 18799, 18800], [18801, 18802, 18803], [18804, 18805, 18806], [18807, 18808, 18809], [18810, 18811, 18812], [18813, 18814, 18815], [18816, 18817, 18818], [18819, 18820, 18821], [18822, 18823, 18824], [18825, 18826, 18827], [18828, 18829, 18830], [18831, 18832, 18833], [18834, 18835, 18836], [18837, 18838, 18839], [18840, 18841, 18842], [18843, 18844, 18845], [18846, 18847, 18848], [18849, 18850, 18851], [18852, 18853, 18854], [18855, 18856, 18857], [18858, 18859, 18860], [18861, 18862, 18863], [18864, 18865, 18866], [18867, 18868, 18869], [18870, 18871, 18872], [18873, 18874, 18875], [18876, 18877, 18878], [18879, 18880, 18881], [18882, 18883, 18884], [18885, 18886, 18887], [18888, 18889, 18890], [18891, 18892, 18893], [18894, 18895, 18896], [18897, 18898, 18899], [18900, 18901, 18902], [18903, 18904, 18905], [18906, 18907, 18908], [18909, 18910, 18911], [18912, 18913, 18914], [18915, 18916, 18917], [18918, 18919, 18920], [18921, 18922, 18923], [18924, 18925, 18926], [18927, 18928, 18929], [18930, 18931, 18932], [18933, 18934, 18935], [18936, 18937, 18938], [18939, 18940, 18941], [18942, 18943, 18944], [18945, 18946, 18947], [18948, 18949, 18950], [18951, 18952, 18953], [18954, 18955, 18956], [18957, 18958, 18959], [18960, 18961, 18962], [18963, 18964, 18965], [18966, 18967, 18968], [18969, 18970, 18971], [18972, 18973, 18974], [18975, 18976, 18977], [18978, 18979, 18980], [18981, 18982, 18983], [18984, 18985, 18986], [18987, 18988, 18989], [18990, 18991, 18992], [18993, 18994, 18995], [18996, 18997, 18998], [18999, 19000, 19001], [19002, 19003, 19004], [19005, 19006, 19007], [19008, 19009, 19010], [19011, 19012, 19013], [19014, 19015, 19016], [19017, 19018, 19019], [19020, 19021, 19022], [19023, 19024, 19025], [19026, 19027, 19028], [19029, 19030, 19031], [19032, 19033, 19034], [19035, 19036, 19037], [19038, 19039, 19040], [19041, 19042, 19043], [19044, 19045, 19046], [19047, 19048, 19049], [19050, 19051, 19052], [19053, 19054, 19055], [19056, 19057, 19058], [19059, 19060, 19061], [19062, 19063, 19064], [19065, 19066, 19067], [19068, 19069, 19070], [19071, 19072, 19073], [19074, 19075, 19076], [19077, 19078, 19079], [19080, 19081, 19082], [19083, 19084, 19085], [19086, 19087, 19088], [19089, 19090, 19091], [19092, 19093, 19094], [19095, 19096, 19097], [19098, 19099, 19100], [19101, 19102, 19103], [19104, 19105, 19106], [19107, 19108, 19109], [19110, 19111, 19112], [19113, 19114, 19115], [19116, 19117, 19118], [19119, 19120, 19121], [19122, 19123, 19124], [19125, 19126, 19127], [19128, 19129, 19130], [19131, 19132, 19133], [19134, 19135, 19136], [19137, 19138, 19139], [19140, 19141, 19142], [19143, 19144, 19145], [19146, 19147, 19148], [19149, 19150, 19151], [19152, 19153, 19154], [19155, 19156, 19157], [19158, 19159, 19160], [19161, 19162, 19163], [19164, 19165, 19166], [19167, 19168, 19169], [19170, 19171, 19172], [19173, 19174, 19175], [19176, 19177, 19178], [19179, 19180, 19181], [19182, 19183, 19184], [19185, 19186, 19187], [19188, 19189, 19190], [19191, 19192, 19193], [19194, 19195, 19196], [19197, 19198, 19199], [19200, 19201, 19202], [19203, 19204, 19205], [19206, 19207, 19208], [19209, 19210, 19211], [19212, 19213, 19214], [19215, 19216, 19217], [19218, 19219, 19220], [19221, 19222, 19223], [19224, 19225, 19226], [19227, 19228, 19229], [19230, 19231, 19232], [19233, 19234, 19235], [19236, 19237, 19238], [19239, 19240, 19241], [19242, 19243, 19244], [19245, 19246, 19247], [19248, 19249, 19250], [19251, 19252, 19253], [19254, 19255, 19256], [19257, 19258, 19259], [19260, 19261, 19262], [19263, 19264, 19265], [19266, 19267, 19268], [19269, 19270, 19271], [19272, 19273, 19274], [19275, 19276, 19277], [19278, 19279, 19280], [19281, 19282, 19283], [19284, 19285, 19286], [19287, 19288, 19289], [19290, 19291, 19292], [19293, 19294, 19295], [19296, 19297, 19298], [19299, 19300, 19301], [19302, 19303, 19304], [19305, 19306, 19307], [19308, 19309, 19310], [19311, 19312, 19313], [19314, 19315, 19316], [19317, 19318, 19319], [19320, 19321, 19322], [19323, 19324, 19325], [19326, 19327, 19328], [19329, 19330, 19331], [19332, 19333, 19334], [19335, 19336, 19337], [19338, 19339, 19340], [19341, 19342, 19343], [19344, 19345, 19346], [19347, 19348, 19349], [19350, 19351, 19352], [19353, 19354, 19355], [19356, 19357, 19358], [19359, 19360, 19361], [19362, 19363, 19364], [19365, 19366, 19367], [19368, 19369, 19370], [19371, 19372, 19373], [19374, 19375, 19376], [19377, 19378, 19379], [19380, 19381, 19382], [19383, 19384, 19385], [19386, 19387, 19388], [19389, 19390, 19391], [19392, 19393, 19394], [19395, 19396, 19397], [19398, 19399, 19400], [19401, 19402, 19403], [19404, 19405, 19406], [19407, 19408, 19409], [19410, 19411, 19412], [19413, 19414, 19415], [19416, 19417, 19418], [19419, 19420, 19421], [19422, 19423, 19424], [19425, 19426, 19427], [19428, 19429, 19430], [19431, 19432, 19433], [19434, 19435, 19436], [19437, 19438, 19439], [19440, 19441, 19442], [19443, 19444, 19445], [19446, 19447, 19448], [19449, 19450, 19451], [19452, 19453, 19454], [19455, 19456, 19457], [19458, 19459, 19460], [19461, 19462, 19463], [19464, 19465, 19466], [19467, 19468, 19469], [19470, 19471, 19472], [19473, 19474, 19475], [19476, 19477, 19478], [19479, 19480, 19481], [19482, 19483, 19484], [19485, 19486, 19487], [19488, 19489, 19490], [19491, 19492, 19493], [19494, 19495, 19496], [19497, 19498, 19499], [19500, 19501, 19502], [19503, 19504, 19505], [19506, 19507, 19508], [19509, 19510, 19511], [19512, 19513, 19514], [19515, 19516, 19517], [19518, 19519, 19520], [19521, 19522, 19523], [19524, 19525, 19526], [19527, 19528, 19529], [19530, 19531, 19532], [19533, 19534, 19535], [19536, 19537, 19538], [19539, 19540, 19541], [19542, 19543, 19544], [19545, 19546, 19547], [19548, 19549, 19550], [19551, 19552, 19553], [19554, 19555, 19556], [19557, 19558, 19559], [19560, 19561, 19562], [19563, 19564, 19565], [19566, 19567, 19568], [19569, 19570, 19571], [19572, 19573, 19574], [19575, 19576, 19577], [19578, 19579, 19580], [19581, 19582, 19583], [19584, 19585, 19586], [19587, 19588, 19589], [19590, 19591, 19592], [19593, 19594, 19595], [19596, 19597, 19598], [19599, 19600, 19601], [19602, 19603, 19604], [19605, 19606, 19607], [19608, 19609, 19610], [19611, 19612, 19613], [19614, 19615, 19616], [19617, 19618, 19619], [19620, 19621, 19622], [19623, 19624, 19625], [19626, 19627, 19628], [19629, 19630, 19631], [19632, 19633, 19634], [19635, 19636, 19637], [19638, 19639, 19640], [19641, 19642, 19643], [19644, 19645, 19646], [19647, 19648, 19649], [19650, 19651, 19652], [19653, 19654, 19655], [19656, 19657, 19658], [19659, 19660, 19661], [19662, 19663, 19664], [19665, 19666, 19667], [19668, 19669, 19670], [19671, 19672, 19673], [19674, 19675, 19676], [19677, 19678, 19679], [19680, 19681, 19682], [19683, 19684, 19685], [19686, 19687, 19688], [19689, 19690, 19691], [19692, 19693, 19694], [19695, 19696, 19697], [19698, 19699, 19700], [19701, 19702, 19703], [19704, 19705, 19706], [19707, 19708, 19709], [19710, 19711, 19712], [19713, 19714, 19715], [19716, 19717, 19718], [19719, 19720, 19721], [19722, 19723, 19724], [19725, 19726, 19727], [19728, 19729, 19730], [19731, 19732, 19733], [19734, 19735, 19736], [19737, 19738, 19739], [19740, 19741, 19742], [19743, 19744, 19745], [19746, 19747, 19748], [19749, 19750, 19751], [19752, 19753, 19754], [19755, 19756, 19757], [19758, 19759, 19760], [19761, 19762, 19763], [19764, 19765, 19766], [19767, 19768, 19769], [19770, 19771, 19772], [19773, 19774, 19775], [19776, 19777, 19778], [19779, 19780, 19781], [19782, 19783, 19784], [19785, 19786, 19787], [19788, 19789, 19790], [19791, 19792, 19793], [19794, 19795, 19796], [19797, 19798, 19799], [19800, 19801, 19802], [19803, 19804, 19805], [19806, 19807, 19808], [19809, 19810, 19811], [19812, 19813, 19814], [19815, 19816, 19817], [19818, 19819, 19820], [19821, 19822, 19823], [19824, 19825, 19826], [19827, 19828, 19829], [19830, 19831, 19832], [19833, 19834, 19835], [19836, 19837, 19838], [19839, 19840, 19841], [19842, 19843, 19844], [19845, 19846, 19847], [19848, 19849, 19850], [19851, 19852, 19853], [19854, 19855, 19856], [19857, 19858, 19859], [19860, 19861, 19862], [19863, 19864, 19865], [19866, 19867, 19868], [19869, 19870, 19871], [19872, 19873, 19874], [19875, 19876, 19877], [19878, 19879, 19880], [19881, 19882, 19883], [19884, 19885, 19886], [19887, 19888, 19889], [19890, 19891, 19892], [19893, 19894, 19895], [19896, 19897, 19898], [19899, 19900, 19901], [19902, 19903, 19904], [19905, 19906, 19907], [19908, 19909, 19910], [19911, 19912, 19913], [19914, 19915, 19916], [19917, 19918, 19919], [19920, 19921, 19922], [19923, 19924, 19925], [19926, 19927, 19928], [19929, 19930, 19931], [19932, 19933, 19934], [19935, 19936, 19937], [19938, 19939, 19940], [19941, 19942, 19943], [19944, 19945, 19946], [19947, 19948, 19949], [19950, 19951, 19952], [19953, 19954, 19955], [19956, 19957, 19958], [19959, 19960, 19961], [19962, 19963, 19964], [19965, 19966, 19967], [19968, 19969, 19970], [19971, 19972, 19973], [19974, 19975, 19976], [19977, 19978, 19979], [19980, 19981, 19982], [19983, 19984, 19985], [19986, 19987, 19988], [19989, 19990, 19991], [19992, 19993, 19994], [19995, 19996, 19997], [19998, 19999, 20000], [20001, 20002, 20003], [20004, 20005, 20006], [20007, 20008, 20009], [20010, 20011, 20012], [20013, 20014, 20015], [20016, 20017, 20018], [20019, 20020, 20021], [20022, 20023, 20024], [20025, 20026, 20027], [20028, 20029, 20030], [20031, 20032, 20033], [20034, 20035, 20036], [20037, 20038, 20039], [20040, 20041, 20042], [20043, 20044, 20045], [20046, 20047, 20048], [20049, 20050, 20051], [20052, 20053, 20054], [20055, 20056, 20057], [20058, 20059, 20060], [20061, 20062, 20063], [20064, 20065, 20066], [20067, 20068, 20069], [20070, 20071, 20072], [20073, 20074, 20075], [20076, 20077, 20078], [20079, 20080, 20081], [20082, 20083, 20084], [20085, 20086, 20087], [20088, 20089, 20090], [20091, 20092, 20093], [20094, 20095, 20096], [20097, 20098, 20099], [20100, 20101, 20102], [20103, 20104, 20105], [20106, 20107, 20108], [20109, 20110, 20111], [20112, 20113, 20114], [20115, 20116, 20117], [20118, 20119, 20120], [20121, 20122, 20123], [20124, 20125, 20126], [20127, 20128, 20129], [20130, 20131, 20132], [20133, 20134, 20135], [20136, 20137, 20138], [20139, 20140, 20141], [20142, 20143, 20144], [20145, 20146, 20147], [20148, 20149, 20150], [20151, 20152, 20153], [20154, 20155, 20156], [20157, 20158, 20159], [20160, 20161, 20162], [20163, 20164, 20165], [20166, 20167, 20168], [20169, 20170, 20171], [20172, 20173, 20174], [20175, 20176, 20177], [20178, 20179, 20180], [20181, 20182, 20183], [20184, 20185, 20186], [20187, 20188, 20189], [20190, 20191, 20192], [20193, 20194, 20195], [20196, 20197, 20198], [20199, 20200, 20201], [20202, 20203, 20204], [20205, 20206, 20207], [20208, 20209, 20210], [20211, 20212, 20213], [20214, 20215, 20216], [20217, 20218, 20219], [20220, 20221, 20222], [20223, 20224, 20225], [20226, 20227, 20228], [20229, 20230, 20231], [20232, 20233, 20234], [20235, 20236, 20237], [20238, 20239, 20240], [20241, 20242, 20243], [20244, 20245, 20246], [20247, 20248, 20249], [20250, 20251, 20252], [20253, 20254, 20255], [20256, 20257, 20258], [20259, 20260, 20261], [20262, 20263, 20264], [20265, 20266, 20267], [20268, 20269, 20270], [20271, 20272, 20273], [20274, 20275, 20276], [20277, 20278, 20279], [20280, 20281, 20282], [20283, 20284, 20285], [20286, 20287, 20288], [20289, 20290, 20291], [20292, 20293, 20294], [20295, 20296, 20297], [20298, 20299, 20300], [20301, 20302, 20303], [20304, 20305, 20306], [20307, 20308, 20309], [20310, 20311, 20312], [20313, 20314, 20315], [20316, 20317, 20318], [20319, 20320, 20321], [20322, 20323, 20324], [20325, 20326, 20327], [20328, 20329, 20330], [20331, 20332, 20333], [20334, 20335, 20336], [20337, 20338, 20339], [20340, 20341, 20342], [20343, 20344, 20345], [20346, 20347, 20348], [20349, 20350, 20351], [20352, 20353, 20354], [20355, 20356, 20357], [20358, 20359, 20360], [20361, 20362, 20363], [20364, 20365, 20366], [20367, 20368, 20369], [20370, 20371, 20372], [20373, 20374, 20375], [20376, 20377, 20378], [20379, 20380, 20381], [20382, 20383, 20384], [20385, 20386, 20387], [20388, 20389, 20390], [20391, 20392, 20393], [20394, 20395, 20396], [20397, 20398, 20399], [20400, 20401, 20402], [20403, 20404, 20405], [20406, 20407, 20408], [20409, 20410, 20411], [20412, 20413, 20414], [20415, 20416, 20417], [20418, 20419, 20420], [20421, 20422, 20423], [20424, 20425, 20426], [20427, 20428, 20429], [20430, 20431, 20432], [20433, 20434, 20435], [20436, 20437, 20438], [20439, 20440, 20441], [20442, 20443, 20444], [20445, 20446, 20447], [20448, 20449, 20450], [20451, 20452, 20453], [20454, 20455, 20456], [20457, 20458, 20459], [20460, 20461, 20462], [20463, 20464, 20465], [20466, 20467, 20468], [20469, 20470, 20471], [20472, 20473, 20474], [20475, 20476, 20477], [20478, 20479, 20480], [20481, 20482, 20483], [20484, 20485, 20486], [20487, 20488, 20489], [20490, 20491, 20492], [20493, 20494, 20495], [20496, 20497, 20498], [20499, 20500, 20501], [20502, 20503, 20504], [20505, 20506, 20507], [20508, 20509, 20510], [20511, 20512, 20513], [20514, 20515, 20516], [20517, 20518, 20519], [20520, 20521, 20522], [20523, 20524, 20525], [20526, 20527, 20528], [20529, 20530, 20531], [20532, 20533, 20534], [20535, 20536, 20537], [20538, 20539, 20540], [20541, 20542, 20543], [20544, 20545, 20546], [20547, 20548, 20549], [20550, 20551, 20552], [20553, 20554, 20555], [20556, 20557, 20558], [20559, 20560, 20561], [20562, 20563, 20564], [20565, 20566, 20567], [20568, 20569, 20570], [20571, 20572, 20573], [20574, 20575, 20576], [20577, 20578, 20579], [20580, 20581, 20582], [20583, 20584, 20585], [20586, 20587, 20588], [20589, 20590, 20591], [20592, 20593, 20594], [20595, 20596, 20597], [20598, 20599, 20600], [20601, 20602, 20603], [20604, 20605, 20606], [20607, 20608, 20609], [20610, 20611, 20612], [20613, 20614, 20615], [20616, 20617, 20618], [20619, 20620, 20621], [20622, 20623, 20624], [20625, 20626, 20627], [20628, 20629, 20630], [20631, 20632, 20633], [20634, 20635, 20636], [20637, 20638, 20639], [20640, 20641, 20642], [20643, 20644, 20645], [20646, 20647, 20648], [20649, 20650, 20651], [20652, 20653, 20654], [20655, 20656, 20657], [20658, 20659, 20660], [20661, 20662, 20663], [20664, 20665, 20666], [20667, 20668, 20669], [20670, 20671, 20672], [20673, 20674, 20675], [20676, 20677, 20678], [20679, 20680, 20681], [20682, 20683, 20684], [20685, 20686, 20687], [20688, 20689, 20690], [20691, 20692, 20693], [20694, 20695, 20696], [20697, 20698, 20699], [20700, 20701, 20702], [20703, 20704, 20705], [20706, 20707, 20708], [20709, 20710, 20711], [20712, 20713, 20714], [20715, 20716, 20717], [20718, 20719, 20720], [20721, 20722, 20723], [20724, 20725, 20726], [20727, 20728, 20729], [20730, 20731, 20732], [20733, 20734, 20735], [20736, 20737, 20738], [20739, 20740, 20741], [20742, 20743, 20744], [20745, 20746, 20747], [20748, 20749, 20750], [20751, 20752, 20753], [20754, 20755, 20756], [20757, 20758, 20759], [20760, 20761, 20762], [20763, 20764, 20765], [20766, 20767, 20768], [20769, 20770, 20771], [20772, 20773, 20774], [20775, 20776, 20777], [20778, 20779, 20780], [20781, 20782, 20783], [20784, 20785, 20786], [20787, 20788, 20789], [20790, 20791, 20792], [20793, 20794, 20795], [20796, 20797, 20798], [20799, 20800, 20801], [20802, 20803, 20804], [20805, 20806, 20807], [20808, 20809, 20810], [20811, 20812, 20813], [20814, 20815, 20816], [20817, 20818, 20819], [20820, 20821, 20822], [20823, 20824, 20825], [20826, 20827, 20828], [20829, 20830, 20831], [20832, 20833, 20834], [20835, 20836, 20837], [20838, 20839, 20840], [20841, 20842, 20843], [20844, 20845, 20846], [20847, 20848, 20849], [20850, 20851, 20852], [20853, 20854, 20855], [20856, 20857, 20858], [20859, 20860, 20861], [20862, 20863, 20864], [20865, 20866, 20867], [20868, 20869, 20870], [20871, 20872, 20873], [20874, 20875, 20876], [20877, 20878, 20879], [20880, 20881, 20882], [20883, 20884, 20885], [20886, 20887, 20888], [20889, 20890, 20891], [20892, 20893, 20894], [20895, 20896, 20897], [20898, 20899, 20900], [20901, 20902, 20903], [20904, 20905, 20906], [20907, 20908, 20909], [20910, 20911, 20912], [20913, 20914, 20915], [20916, 20917, 20918], [20919, 20920, 20921], [20922, 20923, 20924], [20925, 20926, 20927], [20928, 20929, 20930], [20931, 20932, 20933], [20934, 20935, 20936], [20937, 20938, 20939], [20940, 20941, 20942], [20943, 20944, 20945], [20946, 20947, 20948], [20949, 20950, 20951], [20952, 20953, 20954], [20955, 20956, 20957], [20958, 20959, 20960], [20961, 20962, 20963], [20964, 20965, 20966], [20967, 20968, 20969], [20970, 20971, 20972], [20973, 20974, 20975], [20976, 20977, 20978], [20979, 20980, 20981], [20982, 20983, 20984], [20985, 20986, 20987], [20988, 20989, 20990], [20991, 20992, 20993], [20994, 20995, 20996], [20997, 20998, 20999], [21000, 21001, 21002], [21003, 21004, 21005], [21006, 21007, 21008], [21009, 21010, 21011], [21012, 21013, 21014], [21015, 21016, 21017], [21018, 21019, 21020], [21021, 21022, 21023], [21024, 21025, 21026], [21027, 21028, 21029], [21030, 21031, 21032], [21033, 21034, 21035], [21036, 21037, 21038], [21039, 21040, 21041], [21042, 21043, 21044], [21045, 21046, 21047], [21048, 21049, 21050], [21051, 21052, 21053], [21054, 21055, 21056], [21057, 21058, 21059], [21060, 21061, 21062], [21063, 21064, 21065], [21066, 21067, 21068], [21069, 21070, 21071], [21072, 21073, 21074], [21075, 21076, 21077], [21078, 21079, 21080], [21081, 21082, 21083], [21084, 21085, 21086], [21087, 21088, 21089], [21090, 21091, 21092], [21093, 21094, 21095], [21096, 21097, 21098], [21099, 21100, 21101], [21102, 21103, 21104], [21105, 21106, 21107], [21108, 21109, 21110], [21111, 21112, 21113], [21114, 21115, 21116], [21117, 21118, 21119], [21120, 21121, 21122], [21123, 21124, 21125], [21126, 21127, 21128], [21129, 21130, 21131], [21132, 21133, 21134], [21135, 21136, 21137], [21138, 21139, 21140], [21141, 21142, 21143], [21144, 21145, 21146], [21147, 21148, 21149], [21150, 21151, 21152], [21153, 21154, 21155], [21156, 21157, 21158], [21159, 21160, 21161], [21162, 21163, 21164], [21165, 21166, 21167], [21168, 21169, 21170], [21171, 21172, 21173], [21174, 21175, 21176], [21177, 21178, 21179], [21180, 21181, 21182], [21183, 21184, 21185], [21186, 21187, 21188], [21189, 21190, 21191], [21192, 21193, 21194], [21195, 21196, 21197], [21198, 21199, 21200], [21201, 21202, 21203], [21204, 21205, 21206], [21207, 21208, 21209], [21210, 21211, 21212], [21213, 21214, 21215], [21216, 21217, 21218], [21219, 21220, 21221], [21222, 21223, 21224], [21225, 21226, 21227], [21228, 21229, 21230], [21231, 21232, 21233], [21234, 21235, 21236], [21237, 21238, 21239], [21240, 21241, 21242], [21243, 21244, 21245], [21246, 21247, 21248], [21249, 21250, 21251], [21252, 21253, 21254], [21255, 21256, 21257], [21258, 21259, 21260], [21261, 21262, 21263], [21264, 21265, 21266], [21267, 21268, 21269], [21270, 21271, 21272], [21273, 21274, 21275], [21276, 21277, 21278], [21279, 21280, 21281], [21282, 21283, 21284], [21285, 21286, 21287], [21288, 21289, 21290], [21291, 21292, 21293], [21294, 21295, 21296], [21297, 21298, 21299], [21300, 21301, 21302], [21303, 21304, 21305], [21306, 21307, 21308], [21309, 21310, 21311], [21312, 21313, 21314], [21315, 21316, 21317], [21318, 21319, 21320], [21321, 21322, 21323], [21324, 21325, 21326], [21327, 21328, 21329], [21330, 21331, 21332], [21333, 21334, 21335], [21336, 21337, 21338], [21339, 21340, 21341], [21342, 21343, 21344], [21345, 21346, 21347], [21348, 21349, 21350], [21351, 21352, 21353], [21354, 21355, 21356], [21357, 21358, 21359], [21360, 21361, 21362], [21363, 21364, 21365], [21366, 21367, 21368], [21369, 21370, 21371], [21372, 21373, 21374], [21375, 21376, 21377], [21378, 21379, 21380], [21381, 21382, 21383], [21384, 21385, 21386], [21387, 21388, 21389], [21390, 21391, 21392], [21393, 21394, 21395], [21396, 21397, 21398], [21399, 21400, 21401], [21402, 21403, 21404], [21405, 21406, 21407], [21408, 21409, 21410], [21411, 21412, 21413], [21414, 21415, 21416], [21417, 21418, 21419], [21420, 21421, 21422], [21423, 21424, 21425], [21426, 21427, 21428], [21429, 21430, 21431], [21432, 21433, 21434], [21435, 21436, 21437], [21438, 21439, 21440], [21441, 21442, 21443], [21444, 21445, 21446], [21447, 21448, 21449], [21450, 21451, 21452], [21453, 21454, 21455], [21456, 21457, 21458], [21459, 21460, 21461], [21462, 21463, 21464], [21465, 21466, 21467], [21468, 21469, 21470], [21471, 21472, 21473], [21474, 21475, 21476], [21477, 21478, 21479], [21480, 21481, 21482], [21483, 21484, 21485], [21486, 21487, 21488], [21489, 21490, 21491], [21492, 21493, 21494], [21495, 21496, 21497], [21498, 21499, 21500], [21501, 21502, 21503], [21504, 21505, 21506], [21507, 21508, 21509], [21510, 21511, 21512], [21513, 21514, 21515], [21516, 21517, 21518], [21519, 21520, 21521], [21522, 21523, 21524], [21525, 21526, 21527], [21528, 21529, 21530], [21531, 21532, 21533], [21534, 21535, 21536], [21537, 21538, 21539], [21540, 21541, 21542], [21543, 21544, 21545], [21546, 21547, 21548], [21549, 21550, 21551], [21552, 21553, 21554], [21555, 21556, 21557], [21558, 21559, 21560], [21561, 21562, 21563], [21564, 21565, 21566], [21567, 21568, 21569], [21570, 21571, 21572], [21573, 21574, 21575], [21576, 21577, 21578], [21579, 21580, 21581], [21582, 21583, 21584], [21585, 21586, 21587], [21588, 21589, 21590], [21591, 21592, 21593], [21594, 21595, 21596], [21597, 21598, 21599], [21600, 21601, 21602], [21603, 21604, 21605], [21606, 21607, 21608], [21609, 21610, 21611], [21612, 21613, 21614], [21615, 21616, 21617], [21618, 21619, 21620], [21621, 21622, 21623], [21624, 21625, 21626], [21627, 21628, 21629], [21630, 21631, 21632], [21633, 21634, 21635], [21636, 21637, 21638], [21639, 21640, 21641], [21642, 21643, 21644], [21645, 21646, 21647], [21648, 21649, 21650], [21651, 21652, 21653], [21654, 21655, 21656], [21657, 21658, 21659], [21660, 21661, 21662], [21663, 21664, 21665], [21666, 21667, 21668], [21669, 21670, 21671], [21672, 21673, 21674], [21675, 21676, 21677], [21678, 21679, 21680], [21681, 21682, 21683], [21684, 21685, 21686], [21687, 21688, 21689], [21690, 21691, 21692], [21693, 21694, 21695], [21696, 21697, 21698], [21699, 21700, 21701], [21702, 21703, 21704], [21705, 21706, 21707], [21708, 21709, 21710], [21711, 21712, 21713], [21714, 21715, 21716], [21717, 21718, 21719], [21720, 21721, 21722], [21723, 21724, 21725], [21726, 21727, 21728], [21729, 21730, 21731], [21732, 21733, 21734], [21735, 21736, 21737], [21738, 21739, 21740], [21741, 21742, 21743], [21744, 21745, 21746], [21747, 21748, 21749], [21750, 21751, 21752], [21753, 21754, 21755], [21756, 21757, 21758], [21759, 21760, 21761], [21762, 21763, 21764], [21765, 21766, 21767], [21768, 21769, 21770], [21771, 21772, 21773], [21774, 21775, 21776], [21777, 21778, 21779], [21780, 21781, 21782], [21783, 21784, 21785], [21786, 21787, 21788], [21789, 21790, 21791], [21792, 21793, 21794], [21795, 21796, 21797], [21798, 21799, 21800], [21801, 21802, 21803], [21804, 21805, 21806], [21807, 21808, 21809], [21810, 21811, 21812], [21813, 21814, 21815], [21816, 21817, 21818], [21819, 21820, 21821], [21822, 21823, 21824], [21825, 21826, 21827], [21828, 21829, 21830], [21831, 21832, 21833], [21834, 21835, 21836], [21837, 21838, 21839], [21840, 21841, 21842], [21843, 21844, 21845], [21846, 21847, 21848], [21849, 21850, 21851], [21852, 21853, 21854], [21855, 21856, 21857], [21858, 21859, 21860], [21861, 21862, 21863], [21864, 21865, 21866], [21867, 21868, 21869], [21870, 21871, 21872], [21873, 21874, 21875], [21876, 21877, 21878], [21879, 21880, 21881], [21882, 21883, 21884], [21885, 21886, 21887], [21888, 21889, 21890], [21891, 21892, 21893], [21894, 21895, 21896], [21897, 21898, 21899], [21900, 21901, 21902], [21903, 21904, 21905], [21906, 21907, 21908], [21909, 21910, 21911], [21912, 21913, 21914], [21915, 21916, 21917], [21918, 21919, 21920], [21921, 21922, 21923], [21924, 21925, 21926], [21927, 21928, 21929], [21930, 21931, 21932], [21933, 21934, 21935], [21936, 21937, 21938], [21939, 21940, 21941], [21942, 21943, 21944], [21945, 21946, 21947], [21948, 21949, 21950], [21951, 21952, 21953], [21954, 21955, 21956], [21957, 21958, 21959], [21960, 21961, 21962], [21963, 21964, 21965], [21966, 21967, 21968], [21969, 21970, 21971], [21972, 21973, 21974], [21975, 21976, 21977], [21978, 21979, 21980], [21981, 21982, 21983], [21984, 21985, 21986], [21987, 21988, 21989], [21990, 21991, 21992], [21993, 21994, 21995], [21996, 21997, 21998], [21999, 22000, 22001], [22002, 22003, 22004], [22005, 22006, 22007], [22008, 22009, 22010], [22011, 22012, 22013], [22014, 22015, 22016], [22017, 22018, 22019], [22020, 22021, 22022], [22023, 22024, 22025], [22026, 22027, 22028], [22029, 22030, 22031], [22032, 22033, 22034], [22035, 22036, 22037], [22038, 22039, 22040], [22041, 22042, 22043], [22044, 22045, 22046], [22047, 22048, 22049], [22050, 22051, 22052], [22053, 22054, 22055], [22056, 22057, 22058], [22059, 22060, 22061], [22062, 22063, 22064], [22065, 22066, 22067], [22068, 22069, 22070], [22071, 22072, 22073], [22074, 22075, 22076], [22077, 22078, 22079], [22080, 22081, 22082], [22083, 22084, 22085], [22086, 22087, 22088], [22089, 22090, 22091], [22092, 22093, 22094], [22095, 22096, 22097], [22098, 22099, 22100], [22101, 22102, 22103], [22104, 22105, 22106], [22107, 22108, 22109], [22110, 22111, 22112], [22113, 22114, 22115], [22116, 22117, 22118], [22119, 22120, 22121], [22122, 22123, 22124], [22125, 22126, 22127], [22128, 22129, 22130], [22131, 22132, 22133], [22134, 22135, 22136], [22137, 22138, 22139], [22140, 22141, 22142], [22143, 22144, 22145], [22146, 22147, 22148], [22149, 22150, 22151], [22152, 22153, 22154], [22155, 22156, 22157], [22158, 22159, 22160], [22161, 22162, 22163], [22164, 22165, 22166], [22167, 22168, 22169], [22170, 22171, 22172], [22173, 22174, 22175], [22176, 22177, 22178], [22179, 22180, 22181], [22182, 22183, 22184], [22185, 22186, 22187], [22188, 22189, 22190], [22191, 22192, 22193], [22194, 22195, 22196], [22197, 22198, 22199], [22200, 22201, 22202], [22203, 22204, 22205], [22206, 22207, 22208], [22209, 22210, 22211], [22212, 22213, 22214], [22215, 22216, 22217], [22218, 22219, 22220], [22221, 22222, 22223], [22224, 22225, 22226], [22227, 22228, 22229], [22230, 22231, 22232], [22233, 22234, 22235], [22236, 22237, 22238], [22239, 22240, 22241], [22242, 22243, 22244], [22245, 22246, 22247], [22248, 22249, 22250], [22251, 22252, 22253], [22254, 22255, 22256], [22257, 22258, 22259], [22260, 22261, 22262], [22263, 22264, 22265], [22266, 22267, 22268], [22269, 22270, 22271], [22272, 22273, 22274], [22275, 22276, 22277], [22278, 22279, 22280], [22281, 22282, 22283], [22284, 22285, 22286], [22287, 22288, 22289], [22290, 22291, 22292], [22293, 22294, 22295], [22296, 22297, 22298], [22299, 22300, 22301], [22302, 22303, 22304], [22305, 22306, 22307], [22308, 22309, 22310], [22311, 22312, 22313], [22314, 22315, 22316], [22317, 22318, 22319], [22320, 22321, 22322], [22323, 22324, 22325], [22326, 22327, 22328], [22329, 22330, 22331], [22332, 22333, 22334], [22335, 22336, 22337], [22338, 22339, 22340], [22341, 22342, 22343], [22344, 22345, 22346], [22347, 22348, 22349], [22350, 22351, 22352], [22353, 22354, 22355], [22356, 22357, 22358], [22359, 22360, 22361], [22362, 22363, 22364], [22365, 22366, 22367], [22368, 22369, 22370], [22371, 22372, 22373], [22374, 22375, 22376], [22377, 22378, 22379], [22380, 22381, 22382], [22383, 22384, 22385], [22386, 22387, 22388], [22389, 22390, 22391], [22392, 22393, 22394], [22395, 22396, 22397], [22398, 22399, 22400], [22401, 22402, 22403], [22404, 22405, 22406], [22407, 22408, 22409], [22410, 22411, 22412], [22413, 22414, 22415], [22416, 22417, 22418], [22419, 22420, 22421], [22422, 22423, 22424], [22425, 22426, 22427], [22428, 22429, 22430], [22431, 22432, 22433], [22434, 22435, 22436], [22437, 22438, 22439], [22440, 22441, 22442], [22443, 22444, 22445], [22446, 22447, 22448], [22449, 22450, 22451], [22452, 22453, 22454], [22455, 22456, 22457], [22458, 22459, 22460], [22461, 22462, 22463], [22464, 22465, 22466], [22467, 22468, 22469], [22470, 22471, 22472], [22473, 22474, 22475], [22476, 22477, 22478], [22479, 22480, 22481], [22482, 22483, 22484], [22485, 22486, 22487], [22488, 22489, 22490], [22491, 22492, 22493], [22494, 22495, 22496], [22497, 22498, 22499], [22500, 22501, 22502], [22503, 22504, 22505], [22506, 22507, 22508], [22509, 22510, 22511], [22512, 22513, 22514], [22515, 22516, 22517], [22518, 22519, 22520], [22521, 22522, 22523], [22524, 22525, 22526], [22527, 22528, 22529], [22530, 22531, 22532], [22533, 22534, 22535], [22536, 22537, 22538], [22539, 22540, 22541], [22542, 22543, 22544], [22545, 22546, 22547], [22548, 22549, 22550], [22551, 22552, 22553], [22554, 22555, 22556], [22557, 22558, 22559], [22560, 22561, 22562], [22563, 22564, 22565], [22566, 22567, 22568], [22569, 22570, 22571], [22572, 22573, 22574], [22575, 22576, 22577], [22578, 22579, 22580], [22581, 22582, 22583], [22584, 22585, 22586], [22587, 22588, 22589], [22590, 22591, 22592], [22593, 22594, 22595], [22596, 22597, 22598], [22599, 22600, 22601], [22602, 22603, 22604], [22605, 22606, 22607], [22608, 22609, 22610], [22611, 22612, 22613], [22614, 22615, 22616], [22617, 22618, 22619], [22620, 22621, 22622], [22623, 22624, 22625], [22626, 22627, 22628], [22629, 22630, 22631], [22632, 22633, 22634], [22635, 22636, 22637], [22638, 22639, 22640], [22641, 22642, 22643], [22644, 22645, 22646], [22647, 22648, 22649], [22650, 22651, 22652], [22653, 22654, 22655], [22656, 22657, 22658], [22659, 22660, 22661], [22662, 22663, 22664], [22665, 22666, 22667], [22668, 22669, 22670], [22671, 22672, 22673], [22674, 22675, 22676], [22677, 22678, 22679], [22680, 22681, 22682], [22683, 22684, 22685], [22686, 22687, 22688], [22689, 22690, 22691], [22692, 22693, 22694], [22695, 22696, 22697], [22698, 22699, 22700], [22701, 22702, 22703], [22704, 22705, 22706], [22707, 22708, 22709], [22710, 22711, 22712], [22713, 22714, 22715], [22716, 22717, 22718], [22719, 22720, 22721], [22722, 22723, 22724], [22725, 22726, 22727], [22728, 22729, 22730], [22731, 22732, 22733], [22734, 22735, 22736], [22737, 22738, 22739], [22740, 22741, 22742], [22743, 22744, 22745], [22746, 22747, 22748], [22749, 22750, 22751], [22752, 22753, 22754], [22755, 22756, 22757], [22758, 22759, 22760], [22761, 22762, 22763], [22764, 22765, 22766], [22767, 22768, 22769], [22770, 22771, 22772], [22773, 22774, 22775], [22776, 22777, 22778], [22779, 22780, 22781], [22782, 22783, 22784], [22785, 22786, 22787], [22788, 22789, 22790], [22791, 22792, 22793], [22794, 22795, 22796], [22797, 22798, 22799], [22800, 22801, 22802], [22803, 22804, 22805], [22806, 22807, 22808], [22809, 22810, 22811], [22812, 22813, 22814], [22815, 22816, 22817], [22818, 22819, 22820], [22821, 22822, 22823], [22824, 22825, 22826], [22827, 22828, 22829], [22830, 22831, 22832], [22833, 22834, 22835], [22836, 22837, 22838], [22839, 22840, 22841], [22842, 22843, 22844], [22845, 22846, 22847], [22848, 22849, 22850], [22851, 22852, 22853], [22854, 22855, 22856], [22857, 22858, 22859], [22860, 22861, 22862], [22863, 22864, 22865], [22866, 22867, 22868], [22869, 22870, 22871], [22872, 22873, 22874], [22875, 22876, 22877], [22878, 22879, 22880], [22881, 22882, 22883], [22884, 22885, 22886], [22887, 22888, 22889], [22890, 22891, 22892], [22893, 22894, 22895], [22896, 22897, 22898], [22899, 22900, 22901], [22902, 22903, 22904], [22905, 22906, 22907], [22908, 22909, 22910], [22911, 22912, 22913], [22914, 22915, 22916], [22917, 22918, 22919], [22920, 22921, 22922], [22923, 22924, 22925], [22926, 22927, 22928], [22929, 22930, 22931], [22932, 22933, 22934], [22935, 22936, 22937], [22938, 22939, 22940], [22941, 22942, 22943], [22944, 22945, 22946], [22947, 22948, 22949], [22950, 22951, 22952], [22953, 22954, 22955], [22956, 22957, 22958], [22959, 22960, 22961], [22962, 22963, 22964], [22965, 22966, 22967], [22968, 22969, 22970], [22971, 22972, 22973], [22974, 22975, 22976], [22977, 22978, 22979], [22980, 22981, 22982], [22983, 22984, 22985], [22986, 22987, 22988], [22989, 22990, 22991], [22992, 22993, 22994], [22995, 22996, 22997], [22998, 22999, 23000], [23001, 23002, 23003], [23004, 23005, 23006], [23007, 23008, 23009], [23010, 23011, 23012], [23013, 23014, 23015], [23016, 23017, 23018], [23019, 23020, 23021], [23022, 23023, 23024], [23025, 23026, 23027], [23028, 23029, 23030], [23031, 23032, 23033], [23034, 23035, 23036], [23037, 23038, 23039], [23040, 23041, 23042], [23043, 23044, 23045], [23046, 23047, 23048], [23049, 23050, 23051], [23052, 23053, 23054], [23055, 23056, 23057], [23058, 23059, 23060], [23061, 23062, 23063], [23064, 23065, 23066], [23067, 23068, 23069], [23070, 23071, 23072], [23073, 23074, 23075], [23076, 23077, 23078], [23079, 23080, 23081], [23082, 23083, 23084], [23085, 23086, 23087], [23088, 23089, 23090], [23091, 23092, 23093], [23094, 23095, 23096], [23097, 23098, 23099], [23100, 23101, 23102], [23103, 23104, 23105], [23106, 23107, 23108], [23109, 23110, 23111], [23112, 23113, 23114], [23115, 23116, 23117], [23118, 23119, 23120], [23121, 23122, 23123], [23124, 23125, 23126], [23127, 23128, 23129], [23130, 23131, 23132], [23133, 23134, 23135], [23136, 23137, 23138], [23139, 23140, 23141], [23142, 23143, 23144], [23145, 23146, 23147], [23148, 23149, 23150], [23151, 23152, 23153], [23154, 23155, 23156], [23157, 23158, 23159], [23160, 23161, 23162], [23163, 23164, 23165], [23166, 23167, 23168], [23169, 23170, 23171], [23172, 23173, 23174], [23175, 23176, 23177], [23178, 23179, 23180], [23181, 23182, 23183], [23184, 23185, 23186], [23187, 23188, 23189], [23190, 23191, 23192], [23193, 23194, 23195], [23196, 23197, 23198], [23199, 23200, 23201], [23202, 23203, 23204], [23205, 23206, 23207], [23208, 23209, 23210], [23211, 23212, 23213], [23214, 23215, 23216], [23217, 23218, 23219], [23220, 23221, 23222], [23223, 23224, 23225], [23226, 23227, 23228], [23229, 23230, 23231], [23232, 23233, 23234], [23235, 23236, 23237], [23238, 23239, 23240], [23241, 23242, 23243], [23244, 23245, 23246], [23247, 23248, 23249], [23250, 23251, 23252], [23253, 23254, 23255], [23256, 23257, 23258], [23259, 23260, 23261], [23262, 23263, 23264], [23265, 23266, 23267], [23268, 23269, 23270], [23271, 23272, 23273], [23274, 23275, 23276], [23277, 23278, 23279], [23280, 23281, 23282], [23283, 23284, 23285], [23286, 23287, 23288], [23289, 23290, 23291], [23292, 23293, 23294], [23295, 23296, 23297], [23298, 23299, 23300], [23301, 23302, 23303], [23304, 23305, 23306], [23307, 23308, 23309], [23310, 23311, 23312], [23313, 23314, 23315], [23316, 23317, 23318], [23319, 23320, 23321], [23322, 23323, 23324], [23325, 23326, 23327], [23328, 23329, 23330], [23331, 23332, 23333], [23334, 23335, 23336], [23337, 23338, 23339], [23340, 23341, 23342], [23343, 23344, 23345], [23346, 23347, 23348], [23349, 23350, 23351], [23352, 23353, 23354], [23355, 23356, 23357], [23358, 23359, 23360], [23361, 23362, 23363], [23364, 23365, 23366], [23367, 23368, 23369], [23370, 23371, 23372], [23373, 23374, 23375], [23376, 23377, 23378], [23379, 23380, 23381], [23382, 23383, 23384], [23385, 23386, 23387], [23388, 23389, 23390], [23391, 23392, 23393], [23394, 23395, 23396], [23397, 23398, 23399], [23400, 23401, 23402], [23403, 23404, 23405], [23406, 23407, 23408], [23409, 23410, 23411], [23412, 23413, 23414], [23415, 23416, 23417], [23418, 23419, 23420], [23421, 23422, 23423], [23424, 23425, 23426], [23427, 23428, 23429], [23430, 23431, 23432], [23433, 23434, 23435], [23436, 23437, 23438], [23439, 23440, 23441], [23442, 23443, 23444], [23445, 23446, 23447], [23448, 23449, 23450], [23451, 23452, 23453], [23454, 23455, 23456], [23457, 23458, 23459], [23460, 23461, 23462], [23463, 23464, 23465], [23466, 23467, 23468], [23469, 23470, 23471], [23472, 23473, 23474], [23475, 23476, 23477], [23478, 23479, 23480], [23481, 23482, 23483], [23484, 23485, 23486], [23487, 23488, 23489], [23490, 23491, 23492], [23493, 23494, 23495], [23496, 23497, 23498], [23499, 23500, 23501], [23502, 23503, 23504], [23505, 23506, 23507], [23508, 23509, 23510], [23511, 23512, 23513], [23514, 23515, 23516], [23517, 23518, 23519], [23520, 23521, 23522], [23523, 23524, 23525], [23526, 23527, 23528], [23529, 23530, 23531], [23532, 23533, 23534], [23535, 23536, 23537], [23538, 23539, 23540], [23541, 23542, 23543], [23544, 23545, 23546], [23547, 23548, 23549], [23550, 23551, 23552], [23553, 23554, 23555], [23556, 23557, 23558], [23559, 23560, 23561], [23562, 23563, 23564], [23565, 23566, 23567], [23568, 23569, 23570], [23571, 23572, 23573], [23574, 23575, 23576], [23577, 23578, 23579], [23580, 23581, 23582], [23583, 23584, 23585], [23586, 23587, 23588], [23589, 23590, 23591], [23592, 23593, 23594], [23595, 23596, 23597], [23598, 23599, 23600], [23601, 23602, 23603], [23604, 23605, 23606], [23607, 23608, 23609], [23610, 23611, 23612], [23613, 23614, 23615], [23616, 23617, 23618], [23619, 23620, 23621], [23622, 23623, 23624], [23625, 23626, 23627], [23628, 23629, 23630], [23631, 23632, 23633], [23634, 23635, 23636], [23637, 23638, 23639], [23640, 23641, 23642], [23643, 23644, 23645], [23646, 23647, 23648], [23649, 23650, 23651], [23652, 23653, 23654], [23655, 23656, 23657], [23658, 23659, 23660], [23661, 23662, 23663], [23664, 23665, 23666], [23667, 23668, 23669], [23670, 23671, 23672], [23673, 23674, 23675], [23676, 23677, 23678], [23679, 23680, 23681], [23682, 23683, 23684], [23685, 23686, 23687], [23688, 23689, 23690], [23691, 23692, 23693], [23694, 23695, 23696], [23697, 23698, 23699], [23700, 23701, 23702], [23703, 23704, 23705], [23706, 23707, 23708], [23709, 23710, 23711], [23712, 23713, 23714], [23715, 23716, 23717], [23718, 23719, 23720], [23721, 23722, 23723], [23724, 23725, 23726], [23727, 23728, 23729], [23730, 23731, 23732], [23733, 23734, 23735], [23736, 23737, 23738], [23739, 23740, 23741], [23742, 23743, 23744], [23745, 23746, 23747], [23748, 23749, 23750], [23751, 23752, 23753], [23754, 23755, 23756], [23757, 23758, 23759], [23760, 23761, 23762], [23763, 23764, 23765], [23766, 23767, 23768], [23769, 23770, 23771], [23772, 23773, 23774], [23775, 23776, 23777], [23778, 23779, 23780], [23781, 23782, 23783], [23784, 23785, 23786], [23787, 23788, 23789], [23790, 23791, 23792], [23793, 23794, 23795], [23796, 23797, 23798], [23799, 23800, 23801], [23802, 23803, 23804], [23805, 23806, 23807], [23808, 23809, 23810], [23811, 23812, 23813], [23814, 23815, 23816], [23817, 23818, 23819], [23820, 23821, 23822], [23823, 23824, 23825], [23826, 23827, 23828], [23829, 23830, 23831], [23832, 23833, 23834], [23835, 23836, 23837], [23838, 23839, 23840], [23841, 23842, 23843], [23844, 23845, 23846], [23847, 23848, 23849], [23850, 23851, 23852], [23853, 23854, 23855], [23856, 23857, 23858], [23859, 23860, 23861], [23862, 23863, 23864], [23865, 23866, 23867], [23868, 23869, 23870], [23871, 23872, 23873], [23874, 23875, 23876], [23877, 23878, 23879], [23880, 23881, 23882], [23883, 23884, 23885], [23886, 23887, 23888], [23889, 23890, 23891], [23892, 23893, 23894], [23895, 23896, 23897], [23898, 23899, 23900], [23901, 23902, 23903], [23904, 23905, 23906], [23907, 23908, 23909], [23910, 23911, 23912], [23913, 23914, 23915], [23916, 23917, 23918], [23919, 23920, 23921], [23922, 23923, 23924], [23925, 23926, 23927], [23928, 23929, 23930], [23931, 23932, 23933], [23934, 23935, 23936], [23937, 23938, 23939], [23940, 23941, 23942], [23943, 23944, 23945], [23946, 23947, 23948], [23949, 23950, 23951], [23952, 23953, 23954], [23955, 23956, 23957], [23958, 23959, 23960], [23961, 23962, 23963], [23964, 23965, 23966], [23967, 23968, 23969], [23970, 23971, 23972], [23973, 23974, 23975], [23976, 23977, 23978], [23979, 23980, 23981], [23982, 23983, 23984], [23985, 23986, 23987], [23988, 23989, 23990], [23991, 23992, 23993], [23994, 23995, 23996], [23997, 23998, 23999], [24000, 24001, 24002], [24003, 24004, 24005], [24006, 24007, 24008], [24009, 24010, 24011], [24012, 24013, 24014], [24015, 24016, 24017], [24018, 24019, 24020], [24021, 24022, 24023], [24024, 24025, 24026], [24027, 24028, 24029], [24030, 24031, 24032], [24033, 24034, 24035], [24036, 24037, 24038], [24039, 24040, 24041], [24042, 24043, 24044], [24045, 24046, 24047], [24048, 24049, 24050], [24051, 24052, 24053], [24054, 24055, 24056], [24057, 24058, 24059], [24060, 24061, 24062], [24063, 24064, 24065], [24066, 24067, 24068], [24069, 24070, 24071], [24072, 24073, 24074], [24075, 24076, 24077], [24078, 24079, 24080], [24081, 24082, 24083], [24084, 24085, 24086], [24087, 24088, 24089], [24090, 24091, 24092], [24093, 24094, 24095], [24096, 24097, 24098], [24099, 24100, 24101], [24102, 24103, 24104], [24105, 24106, 24107], [24108, 24109, 24110], [24111, 24112, 24113], [24114, 24115, 24116], [24117, 24118, 24119], [24120, 24121, 24122], [24123, 24124, 24125], [24126, 24127, 24128], [24129, 24130, 24131], [24132, 24133, 24134], [24135, 24136, 24137], [24138, 24139, 24140], [24141, 24142, 24143], [24144, 24145, 24146], [24147, 24148, 24149], [24150, 24151, 24152], [24153, 24154, 24155], [24156, 24157, 24158], [24159, 24160, 24161], [24162, 24163, 24164], [24165, 24166, 24167], [24168, 24169, 24170], [24171, 24172, 24173], [24174, 24175, 24176], [24177, 24178, 24179], [24180, 24181, 24182], [24183, 24184, 24185], [24186, 24187, 24188], [24189, 24190, 24191], [24192, 24193, 24194], [24195, 24196, 24197], [24198, 24199, 24200], [24201, 24202, 24203], [24204, 24205, 24206], [24207, 24208, 24209], [24210, 24211, 24212], [24213, 24214, 24215], [24216, 24217, 24218], [24219, 24220, 24221], [24222, 24223, 24224], [24225, 24226, 24227], [24228, 24229, 24230], [24231, 24232, 24233], [24234, 24235, 24236], [24237, 24238, 24239], [24240, 24241, 24242], [24243, 24244, 24245], [24246, 24247, 24248], [24249, 24250, 24251], [24252, 24253, 24254], [24255, 24256, 24257], [24258, 24259, 24260], [24261, 24262, 24263], [24264, 24265, 24266], [24267, 24268, 24269], [24270, 24271, 24272], [24273, 24274, 24275], [24276, 24277, 24278], [24279, 24280, 24281], [24282, 24283, 24284], [24285, 24286, 24287], [24288, 24289, 24290], [24291, 24292, 24293], [24294, 24295, 24296], [24297, 24298, 24299], [24300, 24301, 24302], [24303, 24304, 24305], [24306, 24307, 24308], [24309, 24310, 24311], [24312, 24313, 24314], [24315, 24316, 24317], [24318, 24319, 24320], [24321, 24322, 24323], [24324, 24325, 24326], [24327, 24328, 24329], [24330, 24331, 24332], [24333, 24334, 24335], [24336, 24337, 24338], [24339, 24340, 24341], [24342, 24343, 24344], [24345, 24346, 24347], [24348, 24349, 24350], [24351, 24352, 24353], [24354, 24355, 24356], [24357, 24358, 24359], [24360, 24361, 24362], [24363, 24364, 24365], [24366, 24367, 24368], [24369, 24370, 24371], [24372, 24373, 24374], [24375, 24376, 24377], [24378, 24379, 24380], [24381, 24382, 24383], [24384, 24385, 24386], [24387, 24388, 24389], [24390, 24391, 24392], [24393, 24394, 24395], [24396, 24397, 24398], [24399, 24400, 24401], [24402, 24403, 24404], [24405, 24406, 24407], [24408, 24409, 24410], [24411, 24412, 24413], [24414, 24415, 24416], [24417, 24418, 24419], [24420, 24421, 24422], [24423, 24424, 24425], [24426, 24427, 24428], [24429, 24430, 24431], [24432, 24433, 24434], [24435, 24436, 24437], [24438, 24439, 24440], [24441, 24442, 24443], [24444, 24445, 24446], [24447, 24448, 24449], [24450, 24451, 24452], [24453, 24454, 24455], [24456, 24457, 24458], [24459, 24460, 24461], [24462, 24463, 24464], [24465, 24466, 24467], [24468, 24469, 24470], [24471, 24472, 24473], [24474, 24475, 24476], [24477, 24478, 24479], [24480, 24481, 24482], [24483, 24484, 24485], [24486, 24487, 24488], [24489, 24490, 24491], [24492, 24493, 24494], [24495, 24496, 24497], [24498, 24499, 24500], [24501, 24502, 24503], [24504, 24505, 24506], [24507, 24508, 24509], [24510, 24511, 24512], [24513, 24514, 24515], [24516, 24517, 24518], [24519, 24520, 24521], [24522, 24523, 24524], [24525, 24526, 24527], [24528, 24529, 24530], [24531, 24532, 24533], [24534, 24535, 24536], [24537, 24538, 24539], [24540, 24541, 24542], [24543, 24544, 24545], [24546, 24547, 24548], [24549, 24550, 24551], [24552, 24553, 24554], [24555, 24556, 24557], [24558, 24559, 24560], [24561, 24562, 24563], [24564, 24565, 24566], [24567, 24568, 24569], [24570, 24571, 24572], [24573, 24574, 24575], [24576, 24577, 24578], [24579, 24580, 24581], [24582, 24583, 24584], [24585, 24586, 24587], [24588, 24589, 24590], [24591, 24592, 24593], [24594, 24595, 24596], [24597, 24598, 24599], [24600, 24601, 24602], [24603, 24604, 24605], [24606, 24607, 24608], [24609, 24610, 24611], [24612, 24613, 24614], [24615, 24616, 24617], [24618, 24619, 24620], [24621, 24622, 24623], [24624, 24625, 24626], [24627, 24628, 24629], [24630, 24631, 24632], [24633, 24634, 24635], [24636, 24637, 24638], [24639, 24640, 24641], [24642, 24643, 24644], [24645, 24646, 24647], [24648, 24649, 24650], [24651, 24652, 24653], [24654, 24655, 24656], [24657, 24658, 24659], [24660, 24661, 24662], [24663, 24664, 24665], [24666, 24667, 24668], [24669, 24670, 24671], [24672, 24673, 24674], [24675, 24676, 24677], [24678, 24679, 24680], [24681, 24682, 24683], [24684, 24685, 24686], [24687, 24688, 24689], [24690, 24691, 24692], [24693, 24694, 24695], [24696, 24697, 24698], [24699, 24700, 24701], [24702, 24703, 24704], [24705, 24706, 24707], [24708, 24709, 24710], [24711, 24712, 24713], [24714, 24715, 24716], [24717, 24718, 24719], [24720, 24721, 24722], [24723, 24724, 24725], [24726, 24727, 24728], [24729, 24730, 24731], [24732, 24733, 24734], [24735, 24736, 24737], [24738, 24739, 24740], [24741, 24742, 24743], [24744, 24745, 24746], [24747, 24748, 24749], [24750, 24751, 24752], [24753, 24754, 24755], [24756, 24757, 24758], [24759, 24760, 24761], [24762, 24763, 24764], [24765, 24766, 24767], [24768, 24769, 24770], [24771, 24772, 24773], [24774, 24775, 24776], [24777, 24778, 24779], [24780, 24781, 24782], [24783, 24784, 24785], [24786, 24787, 24788], [24789, 24790, 24791], [24792, 24793, 24794], [24795, 24796, 24797], [24798, 24799, 24800], [24801, 24802, 24803], [24804, 24805, 24806], [24807, 24808, 24809], [24810, 24811, 24812], [24813, 24814, 24815], [24816, 24817, 24818], [24819, 24820, 24821], [24822, 24823, 24824], [24825, 24826, 24827], [24828, 24829, 24830], [24831, 24832, 24833], [24834, 24835, 24836], [24837, 24838, 24839], [24840, 24841, 24842], [24843, 24844, 24845], [24846, 24847, 24848], [24849, 24850, 24851], [24852, 24853, 24854], [24855, 24856, 24857], [24858, 24859, 24860], [24861, 24862, 24863], [24864, 24865, 24866], [24867, 24868, 24869], [24870, 24871, 24872], [24873, 24874, 24875], [24876, 24877, 24878], [24879, 24880, 24881], [24882, 24883, 24884], [24885, 24886, 24887], [24888, 24889, 24890], [24891, 24892, 24893], [24894, 24895, 24896], [24897, 24898, 24899], [24900, 24901, 24902], [24903, 24904, 24905], [24906, 24907, 24908], [24909, 24910, 24911], [24912, 24913, 24914], [24915, 24916, 24917], [24918, 24919, 24920], [24921, 24922, 24923], [24924, 24925, 24926], [24927, 24928, 24929], [24930, 24931, 24932], [24933, 24934, 24935], [24936, 24937, 24938], [24939, 24940, 24941], [24942, 24943, 24944], [24945, 24946, 24947], [24948, 24949, 24950], [24951, 24952, 24953], [24954, 24955, 24956], [24957, 24958, 24959], [24960, 24961, 24962], [24963, 24964, 24965], [24966, 24967, 24968], [24969, 24970, 24971], [24972, 24973, 24974], [24975, 24976, 24977], [24978, 24979, 24980], [24981, 24982, 24983], [24984, 24985, 24986], [24987, 24988, 24989], [24990, 24991, 24992], [24993, 24994, 24995], [24996, 24997, 24998], [24999, 25000, 25001], [25002, 25003, 25004], [25005, 25006, 25007], [25008, 25009, 25010], [25011, 25012, 25013], [25014, 25015, 25016], [25017, 25018, 25019], [25020, 25021, 25022], [25023, 25024, 25025], [25026, 25027, 25028], [25029, 25030, 25031], [25032, 25033, 25034], [25035, 25036, 25037], [25038, 25039, 25040], [25041, 25042, 25043], [25044, 25045, 25046], [25047, 25048, 25049], [25050, 25051, 25052], [25053, 25054, 25055], [25056, 25057, 25058], [25059, 25060, 25061], [25062, 25063, 25064], [25065, 25066, 25067], [25068, 25069, 25070], [25071, 25072, 25073], [25074, 25075, 25076], [25077, 25078, 25079], [25080, 25081, 25082], [25083, 25084, 25085], [25086, 25087, 25088], [25089, 25090, 25091], [25092, 25093, 25094], [25095, 25096, 25097], [25098, 25099, 25100], [25101, 25102, 25103], [25104, 25105, 25106], [25107, 25108, 25109], [25110, 25111, 25112], [25113, 25114, 25115], [25116, 25117, 25118], [25119, 25120, 25121], [25122, 25123, 25124], [25125, 25126, 25127], [25128, 25129, 25130], [25131, 25132, 25133], [25134, 25135, 25136], [25137, 25138, 25139], [25140, 25141, 25142], [25143, 25144, 25145], [25146, 25147, 25148], [25149, 25150, 25151], [25152, 25153, 25154], [25155, 25156, 25157], [25158, 25159, 25160], [25161, 25162, 25163], [25164, 25165, 25166], [25167, 25168, 25169], [25170, 25171, 25172], [25173, 25174, 25175], [25176, 25177, 25178], [25179, 25180, 25181], [25182, 25183, 25184], [25185, 25186, 25187], [25188, 25189, 25190], [25191, 25192, 25193], [25194, 25195, 25196], [25197, 25198, 25199], [25200, 25201, 25202], [25203, 25204, 25205], [25206, 25207, 25208], [25209, 25210, 25211], [25212, 25213, 25214], [25215, 25216, 25217], [25218, 25219, 25220], [25221, 25222, 25223], [25224, 25225, 25226], [25227, 25228, 25229], [25230, 25231, 25232], [25233, 25234, 25235], [25236, 25237, 25238], [25239, 25240, 25241], [25242, 25243, 25244], [25245, 25246, 25247], [25248, 25249, 25250], [25251, 25252, 25253], [25254, 25255, 25256], [25257, 25258, 25259], [25260, 25261, 25262], [25263, 25264, 25265], [25266, 25267, 25268], [25269, 25270, 25271], [25272, 25273, 25274], [25275, 25276, 25277], [25278, 25279, 25280], [25281, 25282, 25283], [25284, 25285, 25286], [25287, 25288, 25289], [25290, 25291, 25292], [25293, 25294, 25295], [25296, 25297, 25298], [25299, 25300, 25301], [25302, 25303, 25304], [25305, 25306, 25307], [25308, 25309, 25310], [25311, 25312, 25313], [25314, 25315, 25316], [25317, 25318, 25319], [25320, 25321, 25322], [25323, 25324, 25325], [25326, 25327, 25328], [25329, 25330, 25331], [25332, 25333, 25334], [25335, 25336, 25337], [25338, 25339, 25340], [25341, 25342, 25343], [25344, 25345, 25346], [25347, 25348, 25349], [25350, 25351, 25352], [25353, 25354, 25355], [25356, 25357, 25358], [25359, 25360, 25361], [25362, 25363, 25364], [25365, 25366, 25367], [25368, 25369, 25370], [25371, 25372, 25373], [25374, 25375, 25376], [25377, 25378, 25379], [25380, 25381, 25382], [25383, 25384, 25385], [25386, 25387, 25388], [25389, 25390, 25391], [25392, 25393, 25394], [25395, 25396, 25397], [25398, 25399, 25400], [25401, 25402, 25403], [25404, 25405, 25406], [25407, 25408, 25409], [25410, 25411, 25412], [25413, 25414, 25415], [25416, 25417, 25418], [25419, 25420, 25421], [25422, 25423, 25424], [25425, 25426, 25427], [25428, 25429, 25430], [25431, 25432, 25433], [25434, 25435, 25436], [25437, 25438, 25439], [25440, 25441, 25442], [25443, 25444, 25445], [25446, 25447, 25448], [25449, 25450, 25451], [25452, 25453, 25454], [25455, 25456, 25457], [25458, 25459, 25460], [25461, 25462, 25463], [25464, 25465, 25466], [25467, 25468, 25469], [25470, 25471, 25472], [25473, 25474, 25475], [25476, 25477, 25478], [25479, 25480, 25481], [25482, 25483, 25484], [25485, 25486, 25487], [25488, 25489, 25490], [25491, 25492, 25493], [25494, 25495, 25496], [25497, 25498, 25499], [25500, 25501, 25502], [25503, 25504, 25505], [25506, 25507, 25508], [25509, 25510, 25511], [25512, 25513, 25514], [25515, 25516, 25517], [25518, 25519, 25520], [25521, 25522, 25523], [25524, 25525, 25526], [25527, 25528, 25529], [25530, 25531, 25532], [25533, 25534, 25535], [25536, 25537, 25538], [25539, 25540, 25541], [25542, 25543, 25544], [25545, 25546, 25547], [25548, 25549, 25550], [25551, 25552, 25553], [25554, 25555, 25556], [25557, 25558, 25559], [25560, 25561, 25562], [25563, 25564, 25565], [25566, 25567, 25568], [25569, 25570, 25571], [25572, 25573, 25574], [25575, 25576, 25577], [25578, 25579, 25580], [25581, 25582, 25583], [25584, 25585, 25586], [25587, 25588, 25589], [25590, 25591, 25592], [25593, 25594, 25595], [25596, 25597, 25598], [25599, 25600, 25601], [25602, 25603, 25604], [25605, 25606, 25607], [25608, 25609, 25610], [25611, 25612, 25613], [25614, 25615, 25616], [25617, 25618, 25619], [25620, 25621, 25622], [25623, 25624, 25625], [25626, 25627, 25628], [25629, 25630, 25631], [25632, 25633, 25634], [25635, 25636, 25637], [25638, 25639, 25640], [25641, 25642, 25643], [25644, 25645, 25646], [25647, 25648, 25649], [25650, 25651, 25652], [25653, 25654, 25655], [25656, 25657, 25658], [25659, 25660, 25661], [25662, 25663, 25664], [25665, 25666, 25667], [25668, 25669, 25670], [25671, 25672, 25673], [25674, 25675, 25676], [25677, 25678, 25679], [25680, 25681, 25682], [25683, 25684, 25685], [25686, 25687, 25688], [25689, 25690, 25691], [25692, 25693, 25694], [25695, 25696, 25697], [25698, 25699, 25700], [25701, 25702, 25703], [25704, 25705, 25706], [25707, 25708, 25709], [25710, 25711, 25712], [25713, 25714, 25715], [25716, 25717, 25718], [25719, 25720, 25721], [25722, 25723, 25724], [25725, 25726, 25727], [25728, 25729, 25730], [25731, 25732, 25733], [25734, 25735, 25736], [25737, 25738, 25739], [25740, 25741, 25742], [25743, 25744, 25745], [25746, 25747, 25748], [25749, 25750, 25751], [25752, 25753, 25754], [25755, 25756, 25757], [25758, 25759, 25760], [25761, 25762, 25763], [25764, 25765, 25766], [25767, 25768, 25769], [25770, 25771, 25772], [25773, 25774, 25775], [25776, 25777, 25778], [25779, 25780, 25781], [25782, 25783, 25784], [25785, 25786, 25787], [25788, 25789, 25790], [25791, 25792, 25793], [25794, 25795, 25796], [25797, 25798, 25799], [25800, 25801, 25802], [25803, 25804, 25805], [25806, 25807, 25808], [25809, 25810, 25811], [25812, 25813, 25814], [25815, 25816, 25817], [25818, 25819, 25820], [25821, 25822, 25823], [25824, 25825, 25826], [25827, 25828, 25829], [25830, 25831, 25832], [25833, 25834, 25835], [25836, 25837, 25838], [25839, 25840, 25841], [25842, 25843, 25844], [25845, 25846, 25847], [25848, 25849, 25850], [25851, 25852, 25853], [25854, 25855, 25856], [25857, 25858, 25859], [25860, 25861, 25862], [25863, 25864, 25865], [25866, 25867, 25868], [25869, 25870, 25871], [25872, 25873, 25874], [25875, 25876, 25877], [25878, 25879, 25880], [25881, 25882, 25883], [25884, 25885, 25886], [25887, 25888, 25889], [25890, 25891, 25892], [25893, 25894, 25895], [25896, 25897, 25898], [25899, 25900, 25901], [25902, 25903, 25904], [25905, 25906, 25907], [25908, 25909, 25910], [25911, 25912, 25913], [25914, 25915, 25916], [25917, 25918, 25919], [25920, 25921, 25922], [25923, 25924, 25925], [25926, 25927, 25928], [25929, 25930, 25931], [25932, 25933, 25934], [25935, 25936, 25937], [25938, 25939, 25940], [25941, 25942, 25943], [25944, 25945, 25946], [25947, 25948, 25949], [25950, 25951, 25952], [25953, 25954, 25955], [25956, 25957, 25958], [25959, 25960, 25961], [25962, 25963, 25964], [25965, 25966, 25967], [25968, 25969, 25970], [25971, 25972, 25973], [25974, 25975, 25976], [25977, 25978, 25979], [25980, 25981, 25982], [25983, 25984, 25985], [25986, 25987, 25988], [25989, 25990, 25991], [25992, 25993, 25994], [25995, 25996, 25997], [25998, 25999, 26000], [26001, 26002, 26003], [26004, 26005, 26006], [26007, 26008, 26009], [26010, 26011, 26012], [26013, 26014, 26015], [26016, 26017, 26018], [26019, 26020, 26021], [26022, 26023, 26024], [26025, 26026, 26027], [26028, 26029, 26030], [26031, 26032, 26033], [26034, 26035, 26036], [26037, 26038, 26039], [26040, 26041, 26042], [26043, 26044, 26045], [26046, 26047, 26048], [26049, 26050, 26051], [26052, 26053, 26054], [26055, 26056, 26057], [26058, 26059, 26060], [26061, 26062, 26063], [26064, 26065, 26066], [26067, 26068, 26069], [26070, 26071, 26072], [26073, 26074, 26075], [26076, 26077, 26078], [26079, 26080, 26081], [26082, 26083, 26084], [26085, 26086, 26087], [26088, 26089, 26090], [26091, 26092, 26093], [26094, 26095, 26096], [26097, 26098, 26099], [26100, 26101, 26102], [26103, 26104, 26105], [26106, 26107, 26108], [26109, 26110, 26111], [26112, 26113, 26114], [26115, 26116, 26117], [26118, 26119, 26120], [26121, 26122, 26123], [26124, 26125, 26126], [26127, 26128, 26129], [26130, 26131, 26132], [26133, 26134, 26135], [26136, 26137, 26138], [26139, 26140, 26141], [26142, 26143, 26144], [26145, 26146, 26147], [26148, 26149, 26150], [26151, 26152, 26153], [26154, 26155, 26156], [26157, 26158, 26159], [26160, 26161, 26162], [26163, 26164, 26165], [26166, 26167, 26168], [26169, 26170, 26171], [26172, 26173, 26174], [26175, 26176, 26177], [26178, 26179, 26180], [26181, 26182, 26183], [26184, 26185, 26186], [26187, 26188, 26189], [26190, 26191, 26192], [26193, 26194, 26195], [26196, 26197, 26198], [26199, 26200, 26201], [26202, 26203, 26204], [26205, 26206, 26207], [26208, 26209, 26210], [26211, 26212, 26213], [26214, 26215, 26216], [26217, 26218, 26219], [26220, 26221, 26222], [26223, 26224, 26225], [26226, 26227, 26228], [26229, 26230, 26231], [26232, 26233, 26234], [26235, 26236, 26237], [26238, 26239, 26240], [26241, 26242, 26243], [26244, 26245, 26246], [26247, 26248, 26249], [26250, 26251, 26252], [26253, 26254, 26255], [26256, 26257, 26258], [26259, 26260, 26261], [26262, 26263, 26264], [26265, 26266, 26267], [26268, 26269, 26270], [26271, 26272, 26273], [26274, 26275, 26276], [26277, 26278, 26279], [26280, 26281, 26282], [26283, 26284, 26285], [26286, 26287, 26288], [26289, 26290, 26291], [26292, 26293, 26294], [26295, 26296, 26297], [26298, 26299, 26300], [26301, 26302, 26303], [26304, 26305, 26306], [26307, 26308, 26309], [26310, 26311, 26312], [26313, 26314, 26315], [26316, 26317, 26318], [26319, 26320, 26321], [26322, 26323, 26324], [26325, 26326, 26327], [26328, 26329, 26330], [26331, 26332, 26333], [26334, 26335, 26336], [26337, 26338, 26339], [26340, 26341, 26342], [26343, 26344, 26345], [26346, 26347, 26348], [26349, 26350, 26351], [26352, 26353, 26354], [26355, 26356, 26357], [26358, 26359, 26360], [26361, 26362, 26363], [26364, 26365, 26366], [26367, 26368, 26369], [26370, 26371, 26372], [26373, 26374, 26375], [26376, 26377, 26378], [26379, 26380, 26381], [26382, 26383, 26384], [26385, 26386, 26387], [26388, 26389, 26390], [26391, 26392, 26393], [26394, 26395, 26396], [26397, 26398, 26399], [26400, 26401, 26402], [26403, 26404, 26405], [26406, 26407, 26408], [26409, 26410, 26411], [26412, 26413, 26414], [26415, 26416, 26417], [26418, 26419, 26420], [26421, 26422, 26423], [26424, 26425, 26426], [26427, 26428, 26429], [26430, 26431, 26432], [26433, 26434, 26435], [26436, 26437, 26438], [26439, 26440, 26441], [26442, 26443, 26444], [26445, 26446, 26447], [26448, 26449, 26450], [26451, 26452, 26453], [26454, 26455, 26456], [26457, 26458, 26459], [26460, 26461, 26462], [26463, 26464, 26465], [26466, 26467, 26468], [26469, 26470, 26471], [26472, 26473, 26474], [26475, 26476, 26477], [26478, 26479, 26480], [26481, 26482, 26483], [26484, 26485, 26486], [26487, 26488, 26489], [26490, 26491, 26492], [26493, 26494, 26495], [26496, 26497, 26498], [26499, 26500, 26501], [26502, 26503, 26504], [26505, 26506, 26507], [26508, 26509, 26510], [26511, 26512, 26513], [26514, 26515, 26516], [26517, 26518, 26519], [26520, 26521, 26522], [26523, 26524, 26525], [26526, 26527, 26528], [26529, 26530, 26531], [26532, 26533, 26534], [26535, 26536, 26537], [26538, 26539, 26540], [26541, 26542, 26543], [26544, 26545, 26546], [26547, 26548, 26549], [26550, 26551, 26552], [26553, 26554, 26555], [26556, 26557, 26558], [26559, 26560, 26561], [26562, 26563, 26564], [26565, 26566, 26567], [26568, 26569, 26570], [26571, 26572, 26573], [26574, 26575, 26576], [26577, 26578, 26579], [26580, 26581, 26582], [26583, 26584, 26585], [26586, 26587, 26588], [26589, 26590, 26591], [26592, 26593, 26594], [26595, 26596, 26597], [26598, 26599, 26600], [26601, 26602, 26603], [26604, 26605, 26606], [26607, 26608, 26609], [26610, 26611, 26612], [26613, 26614, 26615], [26616, 26617, 26618], [26619, 26620, 26621], [26622, 26623, 26624], [26625, 26626, 26627], [26628, 26629, 26630], [26631, 26632, 26633], [26634, 26635, 26636], [26637, 26638, 26639], [26640, 26641, 26642], [26643, 26644, 26645], [26646, 26647, 26648], [26649, 26650, 26651], [26652, 26653, 26654], [26655, 26656, 26657], [26658, 26659, 26660], [26661, 26662, 26663], [26664, 26665, 26666], [26667, 26668, 26669], [26670, 26671, 26672], [26673, 26674, 26675], [26676, 26677, 26678], [26679, 26680, 26681], [26682, 26683, 26684], [26685, 26686, 26687], [26688, 26689, 26690], [26691, 26692, 26693], [26694, 26695, 26696], [26697, 26698, 26699], [26700, 26701, 26702], [26703, 26704, 26705], [26706, 26707, 26708], [26709, 26710, 26711], [26712, 26713, 26714], [26715, 26716, 26717], [26718, 26719, 26720], [26721, 26722, 26723], [26724, 26725, 26726], [26727, 26728, 26729], [26730, 26731, 26732], [26733, 26734, 26735], [26736, 26737, 26738], [26739, 26740, 26741], [26742, 26743, 26744], [26745, 26746, 26747], [26748, 26749, 26750], [26751, 26752, 26753], [26754, 26755, 26756], [26757, 26758, 26759], [26760, 26761, 26762], [26763, 26764, 26765], [26766, 26767, 26768], [26769, 26770, 26771], [26772, 26773, 26774], [26775, 26776, 26777], [26778, 26779, 26780], [26781, 26782, 26783], [26784, 26785, 26786], [26787, 26788, 26789], [26790, 26791, 26792], [26793, 26794, 26795], [26796, 26797, 26798], [26799, 26800, 26801], [26802, 26803, 26804], [26805, 26806, 26807], [26808, 26809, 26810], [26811, 26812, 26813], [26814, 26815, 26816], [26817, 26818, 26819], [26820, 26821, 26822], [26823, 26824, 26825], [26826, 26827, 26828], [26829, 26830, 26831], [26832, 26833, 26834], [26835, 26836, 26837], [26838, 26839, 26840], [26841, 26842, 26843], [26844, 26845, 26846], [26847, 26848, 26849], [26850, 26851, 26852], [26853, 26854, 26855], [26856, 26857, 26858], [26859, 26860, 26861], [26862, 26863, 26864], [26865, 26866, 26867], [26868, 26869, 26870], [26871, 26872, 26873], [26874, 26875, 26876], [26877, 26878, 26879], [26880, 26881, 26882], [26883, 26884, 26885], [26886, 26887, 26888], [26889, 26890, 26891], [26892, 26893, 26894], [26895, 26896, 26897], [26898, 26899, 26900], [26901, 26902, 26903], [26904, 26905, 26906], [26907, 26908, 26909], [26910, 26911, 26912], [26913, 26914, 26915], [26916, 26917, 26918], [26919, 26920, 26921], [26922, 26923, 26924], [26925, 26926, 26927], [26928, 26929, 26930], [26931, 26932, 26933], [26934, 26935, 26936], [26937, 26938, 26939], [26940, 26941, 26942], [26943, 26944, 26945], [26946, 26947, 26948], [26949, 26950, 26951], [26952, 26953, 26954], [26955, 26956, 26957], [26958, 26959, 26960], [26961, 26962, 26963], [26964, 26965, 26966], [26967, 26968, 26969], [26970, 26971, 26972], [26973, 26974, 26975], [26976, 26977, 26978], [26979, 26980, 26981], [26982, 26983, 26984], [26985, 26986, 26987], [26988, 26989, 26990], [26991, 26992, 26993], [26994, 26995, 26996], [26997, 26998, 26999], [27000, 27001, 27002], [27003, 27004, 27005], [27006, 27007, 27008], [27009, 27010, 27011], [27012, 27013, 27014], [27015, 27016, 27017], [27018, 27019, 27020], [27021, 27022, 27023], [27024, 27025, 27026], [27027, 27028, 27029], [27030, 27031, 27032], [27033, 27034, 27035], [27036, 27037, 27038], [27039, 27040, 27041], [27042, 27043, 27044], [27045, 27046, 27047], [27048, 27049, 27050], [27051, 27052, 27053], [27054, 27055, 27056], [27057, 27058, 27059], [27060, 27061, 27062], [27063, 27064, 27065], [27066, 27067, 27068], [27069, 27070, 27071], [27072, 27073, 27074], [27075, 27076, 27077], [27078, 27079, 27080], [27081, 27082, 27083], [27084, 27085, 27086], [27087, 27088, 27089], [27090, 27091, 27092], [27093, 27094, 27095], [27096, 27097, 27098], [27099, 27100, 27101], [27102, 27103, 27104], [27105, 27106, 27107], [27108, 27109, 27110], [27111, 27112, 27113], [27114, 27115, 27116], [27117, 27118, 27119], [27120, 27121, 27122], [27123, 27124, 27125], [27126, 27127, 27128], [27129, 27130, 27131], [27132, 27133, 27134], [27135, 27136, 27137], [27138, 27139, 27140], [27141, 27142, 27143], [27144, 27145, 27146], [27147, 27148, 27149], [27150, 27151, 27152], [27153, 27154, 27155], [27156, 27157, 27158], [27159, 27160, 27161], [27162, 27163, 27164], [27165, 27166, 27167], [27168, 27169, 27170], [27171, 27172, 27173], [27174, 27175, 27176], [27177, 27178, 27179], [27180, 27181, 27182], [27183, 27184, 27185], [27186, 27187, 27188], [27189, 27190, 27191], [27192, 27193, 27194], [27195, 27196, 27197], [27198, 27199, 27200], [27201, 27202, 27203], [27204, 27205, 27206], [27207, 27208, 27209], [27210, 27211, 27212], [27213, 27214, 27215], [27216, 27217, 27218], [27219, 27220, 27221], [27222, 27223, 27224], [27225, 27226, 27227], [27228, 27229, 27230], [27231, 27232, 27233], [27234, 27235, 27236], [27237, 27238, 27239], [27240, 27241, 27242], [27243, 27244, 27245], [27246, 27247, 27248], [27249, 27250, 27251], [27252, 27253, 27254], [27255, 27256, 27257], [27258, 27259, 27260], [27261, 27262, 27263], [27264, 27265, 27266], [27267, 27268, 27269], [27270, 27271, 27272], [27273, 27274, 27275], [27276, 27277, 27278], [27279, 27280, 27281], [27282, 27283, 27284], [27285, 27286, 27287], [27288, 27289, 27290], [27291, 27292, 27293], [27294, 27295, 27296], [27297, 27298, 27299], [27300, 27301, 27302], [27303, 27304, 27305], [27306, 27307, 27308], [27309, 27310, 27311], [27312, 27313, 27314], [27315, 27316, 27317], [27318, 27319, 27320], [27321, 27322, 27323], [27324, 27325, 27326], [27327, 27328, 27329], [27330, 27331, 27332], [27333, 27334, 27335], [27336, 27337, 27338], [27339, 27340, 27341], [27342, 27343, 27344], [27345, 27346, 27347], [27348, 27349, 27350], [27351, 27352, 27353], [27354, 27355, 27356], [27357, 27358, 27359], [27360, 27361, 27362], [27363, 27364, 27365], [27366, 27367, 27368], [27369, 27370, 27371], [27372, 27373, 27374], [27375, 27376, 27377], [27378, 27379, 27380], [27381, 27382, 27383], [27384, 27385, 27386], [27387, 27388, 27389], [27390, 27391, 27392], [27393, 27394, 27395], [27396, 27397, 27398], [27399, 27400, 27401], [27402, 27403, 27404], [27405, 27406, 27407], [27408, 27409, 27410], [27411, 27412, 27413], [27414, 27415, 27416], [27417, 27418, 27419], [27420, 27421, 27422], [27423, 27424, 27425], [27426, 27427, 27428], [27429, 27430, 27431], [27432, 27433, 27434], [27435, 27436, 27437], [27438, 27439, 27440], [27441, 27442, 27443], [27444, 27445, 27446], [27447, 27448, 27449], [27450, 27451, 27452], [27453, 27454, 27455], [27456, 27457, 27458], [27459, 27460, 27461], [27462, 27463, 27464], [27465, 27466, 27467], [27468, 27469, 27470], [27471, 27472, 27473], [27474, 27475, 27476], [27477, 27478, 27479], [27480, 27481, 27482], [27483, 27484, 27485], [27486, 27487, 27488], [27489, 27490, 27491], [27492, 27493, 27494], [27495, 27496, 27497], [27498, 27499, 27500], [27501, 27502, 27503], [27504, 27505, 27506], [27507, 27508, 27509], [27510, 27511, 27512], [27513, 27514, 27515], [27516, 27517, 27518], [27519, 27520, 27521], [27522, 27523, 27524], [27525, 27526, 27527], [27528, 27529, 27530], [27531, 27532, 27533], [27534, 27535, 27536], [27537, 27538, 27539], [27540, 27541, 27542], [27543, 27544, 27545], [27546, 27547, 27548], [27549, 27550, 27551], [27552, 27553, 27554], [27555, 27556, 27557], [27558, 27559, 27560], [27561, 27562, 27563], [27564, 27565, 27566], [27567, 27568, 27569], [27570, 27571, 27572], [27573, 27574, 27575], [27576, 27577, 27578], [27579, 27580, 27581], [27582, 27583, 27584], [27585, 27586, 27587], [27588, 27589, 27590], [27591, 27592, 27593], [27594, 27595, 27596], [27597, 27598, 27599], [27600, 27601, 27602], [27603, 27604, 27605], [27606, 27607, 27608], [27609, 27610, 27611], [27612, 27613, 27614], [27615, 27616, 27617], [27618, 27619, 27620], [27621, 27622, 27623], [27624, 27625, 27626], [27627, 27628, 27629], [27630, 27631, 27632], [27633, 27634, 27635], [27636, 27637, 27638], [27639, 27640, 27641], [27642, 27643, 27644], [27645, 27646, 27647], [27648, 27649, 27650], [27651, 27652, 27653], [27654, 27655, 27656], [27657, 27658, 27659], [27660, 27661, 27662], [27663, 27664, 27665], [27666, 27667, 27668], [27669, 27670, 27671], [27672, 27673, 27674], [27675, 27676, 27677], [27678, 27679, 27680], [27681, 27682, 27683], [27684, 27685, 27686], [27687, 27688, 27689], [27690, 27691, 27692], [27693, 27694, 27695], [27696, 27697, 27698], [27699, 27700, 27701], [27702, 27703, 27704], [27705, 27706, 27707], [27708, 27709, 27710], [27711, 27712, 27713], [27714, 27715, 27716], [27717, 27718, 27719], [27720, 27721, 27722], [27723, 27724, 27725], [27726, 27727, 27728], [27729, 27730, 27731], [27732, 27733, 27734], [27735, 27736, 27737], [27738, 27739, 27740], [27741, 27742, 27743], [27744, 27745, 27746], [27747, 27748, 27749], [27750, 27751, 27752], [27753, 27754, 27755], [27756, 27757, 27758], [27759, 27760, 27761], [27762, 27763, 27764], [27765, 27766, 27767], [27768, 27769, 27770], [27771, 27772, 27773], [27774, 27775, 27776], [27777, 27778, 27779], [27780, 27781, 27782], [27783, 27784, 27785], [27786, 27787, 27788], [27789, 27790, 27791], [27792, 27793, 27794], [27795, 27796, 27797], [27798, 27799, 27800], [27801, 27802, 27803], [27804, 27805, 27806], [27807, 27808, 27809], [27810, 27811, 27812], [27813, 27814, 27815], [27816, 27817, 27818], [27819, 27820, 27821], [27822, 27823, 27824], [27825, 27826, 27827], [27828, 27829, 27830], [27831, 27832, 27833], [27834, 27835, 27836], [27837, 27838, 27839], [27840, 27841, 27842], [27843, 27844, 27845], [27846, 27847, 27848], [27849, 27850, 27851], [27852, 27853, 27854], [27855, 27856, 27857], [27858, 27859, 27860], [27861, 27862, 27863], [27864, 27865, 27866], [27867, 27868, 27869], [27870, 27871, 27872], [27873, 27874, 27875], [27876, 27877, 27878], [27879, 27880, 27881], [27882, 27883, 27884], [27885, 27886, 27887], [27888, 27889, 27890], [27891, 27892, 27893], [27894, 27895, 27896], [27897, 27898, 27899], [27900, 27901, 27902], [27903, 27904, 27905], [27906, 27907, 27908], [27909, 27910, 27911], [27912, 27913, 27914], [27915, 27916, 27917], [27918, 27919, 27920], [27921, 27922, 27923], [27924, 27925, 27926], [27927, 27928, 27929], [27930, 27931, 27932], [27933, 27934, 27935], [27936, 27937, 27938], [27939, 27940, 27941], [27942, 27943, 27944], [27945, 27946, 27947], [27948, 27949, 27950], [27951, 27952, 27953], [27954, 27955, 27956], [27957, 27958, 27959], [27960, 27961, 27962], [27963, 27964, 27965], [27966, 27967, 27968], [27969, 27970, 27971], [27972, 27973, 27974], [27975, 27976, 27977], [27978, 27979, 27980], [27981, 27982, 27983], [27984, 27985, 27986], [27987, 27988, 27989], [27990, 27991, 27992], [27993, 27994, 27995], [27996, 27997, 27998], [27999, 28000, 28001], [28002, 28003, 28004], [28005, 28006, 28007], [28008, 28009, 28010], [28011, 28012, 28013], [28014, 28015, 28016], [28017, 28018, 28019], [28020, 28021, 28022], [28023, 28024, 28025], [28026, 28027, 28028], [28029, 28030, 28031], [28032, 28033, 28034], [28035, 28036, 28037], [28038, 28039, 28040], [28041, 28042, 28043], [28044, 28045, 28046], [28047, 28048, 28049], [28050, 28051, 28052], [28053, 28054, 28055], [28056, 28057, 28058], [28059, 28060, 28061], [28062, 28063, 28064], [28065, 28066, 28067], [28068, 28069, 28070], [28071, 28072, 28073], [28074, 28075, 28076], [28077, 28078, 28079], [28080, 28081, 28082], [28083, 28084, 28085], [28086, 28087, 28088], [28089, 28090, 28091], [28092, 28093, 28094], [28095, 28096, 28097], [28098, 28099, 28100], [28101, 28102, 28103], [28104, 28105, 28106], [28107, 28108, 28109], [28110, 28111, 28112], [28113, 28114, 28115], [28116, 28117, 28118], [28119, 28120, 28121], [28122, 28123, 28124], [28125, 28126, 28127], [28128, 28129, 28130], [28131, 28132, 28133], [28134, 28135, 28136], [28137, 28138, 28139], [28140, 28141, 28142], [28143, 28144, 28145], [28146, 28147, 28148], [28149, 28150, 28151], [28152, 28153, 28154], [28155, 28156, 28157], [28158, 28159, 28160], [28161, 28162, 28163], [28164, 28165, 28166], [28167, 28168, 28169], [28170, 28171, 28172], [28173, 28174, 28175], [28176, 28177, 28178], [28179, 28180, 28181], [28182, 28183, 28184], [28185, 28186, 28187], [28188, 28189, 28190], [28191, 28192, 28193], [28194, 28195, 28196], [28197, 28198, 28199], [28200, 28201, 28202], [28203, 28204, 28205], [28206, 28207, 28208], [28209, 28210, 28211], [28212, 28213, 28214], [28215, 28216, 28217], [28218, 28219, 28220], [28221, 28222, 28223], [28224, 28225, 28226], [28227, 28228, 28229], [28230, 28231, 28232], [28233, 28234, 28235], [28236, 28237, 28238], [28239, 28240, 28241], [28242, 28243, 28244], [28245, 28246, 28247], [28248, 28249, 28250], [28251, 28252, 28253], [28254, 28255, 28256], [28257, 28258, 28259], [28260, 28261, 28262], [28263, 28264, 28265], [28266, 28267, 28268], [28269, 28270, 28271], [28272, 28273, 28274], [28275, 28276, 28277], [28278, 28279, 28280], [28281, 28282, 28283], [28284, 28285, 28286], [28287, 28288, 28289], [28290, 28291, 28292], [28293, 28294, 28295], [28296, 28297, 28298], [28299, 28300, 28301], [28302, 28303, 28304], [28305, 28306, 28307], [28308, 28309, 28310], [28311, 28312, 28313], [28314, 28315, 28316], [28317, 28318, 28319], [28320, 28321, 28322], [28323, 28324, 28325], [28326, 28327, 28328], [28329, 28330, 28331], [28332, 28333, 28334], [28335, 28336, 28337], [28338, 28339, 28340], [28341, 28342, 28343], [28344, 28345, 28346], [28347, 28348, 28349], [28350, 28351, 28352], [28353, 28354, 28355], [28356, 28357, 28358], [28359, 28360, 28361], [28362, 28363, 28364], [28365, 28366, 28367], [28368, 28369, 28370], [28371, 28372, 28373], [28374, 28375, 28376], [28377, 28378, 28379], [28380, 28381, 28382], [28383, 28384, 28385], [28386, 28387, 28388], [28389, 28390, 28391], [28392, 28393, 28394], [28395, 28396, 28397], [28398, 28399, 28400], [28401, 28402, 28403], [28404, 28405, 28406], [28407, 28408, 28409], [28410, 28411, 28412], [28413, 28414, 28415], [28416, 28417, 28418], [28419, 28420, 28421], [28422, 28423, 28424], [28425, 28426, 28427], [28428, 28429, 28430], [28431, 28432, 28433], [28434, 28435, 28436], [28437, 28438, 28439], [28440, 28441, 28442], [28443, 28444, 28445], [28446, 28447, 28448], [28449, 28450, 28451], [28452, 28453, 28454], [28455, 28456, 28457], [28458, 28459, 28460], [28461, 28462, 28463], [28464, 28465, 28466], [28467, 28468, 28469], [28470, 28471, 28472], [28473, 28474, 28475], [28476, 28477, 28478], [28479, 28480, 28481], [28482, 28483, 28484], [28485, 28486, 28487], [28488, 28489, 28490], [28491, 28492, 28493], [28494, 28495, 28496], [28497, 28498, 28499], [28500, 28501, 28502], [28503, 28504, 28505], [28506, 28507, 28508], [28509, 28510, 28511], [28512, 28513, 28514], [28515, 28516, 28517], [28518, 28519, 28520], [28521, 28522, 28523], [28524, 28525, 28526], [28527, 28528, 28529], [28530, 28531, 28532], [28533, 28534, 28535], [28536, 28537, 28538], [28539, 28540, 28541], [28542, 28543, 28544], [28545, 28546, 28547], [28548, 28549, 28550], [28551, 28552, 28553], [28554, 28555, 28556], [28557, 28558, 28559], [28560, 28561, 28562], [28563, 28564, 28565], [28566, 28567, 28568], [28569, 28570, 28571], [28572, 28573, 28574], [28575, 28576, 28577], [28578, 28579, 28580], [28581, 28582, 28583], [28584, 28585, 28586], [28587, 28588, 28589], [28590, 28591, 28592], [28593, 28594, 28595], [28596, 28597, 28598], [28599, 28600, 28601], [28602, 28603, 28604], [28605, 28606, 28607], [28608, 28609, 28610], [28611, 28612, 28613], [28614, 28615, 28616], [28617, 28618, 28619], [28620, 28621, 28622], [28623, 28624, 28625], [28626, 28627, 28628], [28629, 28630, 28631], [28632, 28633, 28634], [28635, 28636, 28637], [28638, 28639, 28640], [28641, 28642, 28643], [28644, 28645, 28646], [28647, 28648, 28649], [28650, 28651, 28652], [28653, 28654, 28655], [28656, 28657, 28658], [28659, 28660, 28661], [28662, 28663, 28664], [28665, 28666, 28667], [28668, 28669, 28670], [28671, 28672, 28673], [28674, 28675, 28676], [28677, 28678, 28679], [28680, 28681, 28682], [28683, 28684, 28685], [28686, 28687, 28688], [28689, 28690, 28691], [28692, 28693, 28694], [28695, 28696, 28697], [28698, 28699, 28700], [28701, 28702, 28703], [28704, 28705, 28706], [28707, 28708, 28709], [28710, 28711, 28712], [28713, 28714, 28715], [28716, 28717, 28718], [28719, 28720, 28721], [28722, 28723, 28724], [28725, 28726, 28727], [28728, 28729, 28730], [28731, 28732, 28733], [28734, 28735, 28736], [28737, 28738, 28739], [28740, 28741, 28742], [28743, 28744, 28745], [28746, 28747, 28748], [28749, 28750, 28751], [28752, 28753, 28754], [28755, 28756, 28757], [28758, 28759, 28760], [28761, 28762, 28763], [28764, 28765, 28766], [28767, 28768, 28769], [28770, 28771, 28772], [28773, 28774, 28775], [28776, 28777, 28778], [28779, 28780, 28781], [28782, 28783, 28784], [28785, 28786, 28787], [28788, 28789, 28790], [28791, 28792, 28793], [28794, 28795, 28796], [28797, 28798, 28799], [28800, 28801, 28802], [28803, 28804, 28805], [28806, 28807, 28808], [28809, 28810, 28811], [28812, 28813, 28814], [28815, 28816, 28817], [28818, 28819, 28820], [28821, 28822, 28823], [28824, 28825, 28826], [28827, 28828, 28829], [28830, 28831, 28832], [28833, 28834, 28835], [28836, 28837, 28838], [28839, 28840, 28841], [28842, 28843, 28844], [28845, 28846, 28847], [28848, 28849, 28850], [28851, 28852, 28853], [28854, 28855, 28856], [28857, 28858, 28859], [28860, 28861, 28862], [28863, 28864, 28865], [28866, 28867, 28868], [28869, 28870, 28871], [28872, 28873, 28874], [28875, 28876, 28877], [28878, 28879, 28880], [28881, 28882, 28883], [28884, 28885, 28886], [28887, 28888, 28889], [28890, 28891, 28892], [28893, 28894, 28895], [28896, 28897, 28898], [28899, 28900, 28901], [28902, 28903, 28904], [28905, 28906, 28907], [28908, 28909, 28910], [28911, 28912, 28913], [28914, 28915, 28916], [28917, 28918, 28919], [28920, 28921, 28922], [28923, 28924, 28925], [28926, 28927, 28928], [28929, 28930, 28931], [28932, 28933, 28934], [28935, 28936, 28937], [28938, 28939, 28940], [28941, 28942, 28943], [28944, 28945, 28946], [28947, 28948, 28949], [28950, 28951, 28952], [28953, 28954, 28955], [28956, 28957, 28958], [28959, 28960, 28961], [28962, 28963, 28964], [28965, 28966, 28967], [28968, 28969, 28970], [28971, 28972, 28973], [28974, 28975, 28976], [28977, 28978, 28979], [28980, 28981, 28982], [28983, 28984, 28985], [28986, 28987, 28988], [28989, 28990, 28991], [28992, 28993, 28994], [28995, 28996, 28997], [28998, 28999, 29000], [29001, 29002, 29003], [29004, 29005, 29006], [29007, 29008, 29009], [29010, 29011, 29012], [29013, 29014, 29015], [29016, 29017, 29018], [29019, 29020, 29021], [29022, 29023, 29024], [29025, 29026, 29027], [29028, 29029, 29030], [29031, 29032, 29033], [29034, 29035, 29036], [29037, 29038, 29039], [29040, 29041, 29042], [29043, 29044, 29045], [29046, 29047, 29048], [29049, 29050, 29051], [29052, 29053, 29054], [29055, 29056, 29057], [29058, 29059, 29060], [29061, 29062, 29063], [29064, 29065, 29066], [29067, 29068, 29069], [29070, 29071, 29072], [29073, 29074, 29075], [29076, 29077, 29078], [29079, 29080, 29081], [29082, 29083, 29084], [29085, 29086, 29087], [29088, 29089, 29090], [29091, 29092, 29093], [29094, 29095, 29096], [29097, 29098, 29099], [29100, 29101, 29102], [29103, 29104, 29105], [29106, 29107, 29108], [29109, 29110, 29111], [29112, 29113, 29114], [29115, 29116, 29117], [29118, 29119, 29120], [29121, 29122, 29123], [29124, 29125, 29126], [29127, 29128, 29129], [29130, 29131, 29132], [29133, 29134, 29135], [29136, 29137, 29138], [29139, 29140, 29141], [29142, 29143, 29144], [29145, 29146, 29147], [29148, 29149, 29150], [29151, 29152, 29153], [29154, 29155, 29156], [29157, 29158, 29159], [29160, 29161, 29162], [29163, 29164, 29165], [29166, 29167, 29168], [29169, 29170, 29171], [29172, 29173, 29174], [29175, 29176, 29177], [29178, 29179, 29180], [29181, 29182, 29183], [29184, 29185, 29186], [29187, 29188, 29189], [29190, 29191, 29192], [29193, 29194, 29195], [29196, 29197, 29198], [29199, 29200, 29201], [29202, 29203, 29204], [29205, 29206, 29207], [29208, 29209, 29210], [29211, 29212, 29213], [29214, 29215, 29216], [29217, 29218, 29219], [29220, 29221, 29222], [29223, 29224, 29225], [29226, 29227, 29228], [29229, 29230, 29231], [29232, 29233, 29234], [29235, 29236, 29237], [29238, 29239, 29240], [29241, 29242, 29243], [29244, 29245, 29246], [29247, 29248, 29249], [29250, 29251, 29252], [29253, 29254, 29255], [29256, 29257, 29258], [29259, 29260, 29261], [29262, 29263, 29264], [29265, 29266, 29267], [29268, 29269, 29270], [29271, 29272, 29273], [29274, 29275, 29276], [29277, 29278, 29279], [29280, 29281, 29282], [29283, 29284, 29285], [29286, 29287, 29288], [29289, 29290, 29291], [29292, 29293, 29294], [29295, 29296, 29297], [29298, 29299, 29300], [29301, 29302, 29303], [29304, 29305, 29306], [29307, 29308, 29309], [29310, 29311, 29312], [29313, 29314, 29315], [29316, 29317, 29318], [29319, 29320, 29321], [29322, 29323, 29324], [29325, 29326, 29327], [29328, 29329, 29330], [29331, 29332, 29333], [29334, 29335, 29336], [29337, 29338, 29339], [29340, 29341, 29342], [29343, 29344, 29345], [29346, 29347, 29348], [29349, 29350, 29351], [29352, 29353, 29354], [29355, 29356, 29357], [29358, 29359, 29360], [29361, 29362, 29363], [29364, 29365, 29366], [29367, 29368, 29369], [29370, 29371, 29372], [29373, 29374, 29375], [29376, 29377, 29378], [29379, 29380, 29381], [29382, 29383, 29384], [29385, 29386, 29387], [29388, 29389, 29390], [29391, 29392, 29393], [29394, 29395, 29396], [29397, 29398, 29399], [29400, 29401, 29402], [29403, 29404, 29405], [29406, 29407, 29408], [29409, 29410, 29411], [29412, 29413, 29414], [29415, 29416, 29417], [29418, 29419, 29420], [29421, 29422, 29423], [29424, 29425, 29426], [29427, 29428, 29429], [29430, 29431, 29432], [29433, 29434, 29435], [29436, 29437, 29438], [29439, 29440, 29441], [29442, 29443, 29444], [29445, 29446, 29447], [29448, 29449, 29450], [29451, 29452, 29453], [29454, 29455, 29456], [29457, 29458, 29459], [29460, 29461, 29462], [29463, 29464, 29465], [29466, 29467, 29468], [29469, 29470, 29471], [29472, 29473, 29474], [29475, 29476, 29477], [29478, 29479, 29480], [29481, 29482, 29483], [29484, 29485, 29486], [29487, 29488, 29489], [29490, 29491, 29492], [29493, 29494, 29495], [29496, 29497, 29498], [29499, 29500, 29501], [29502, 29503, 29504], [29505, 29506, 29507], [29508, 29509, 29510], [29511, 29512, 29513], [29514, 29515, 29516], [29517, 29518, 29519], [29520, 29521, 29522], [29523, 29524, 29525], [29526, 29527, 29528], [29529, 29530, 29531], [29532, 29533, 29534], [29535, 29536, 29537], [29538, 29539, 29540], [29541, 29542, 29543], [29544, 29545, 29546], [29547, 29548, 29549], [29550, 29551, 29552], [29553, 29554, 29555], [29556, 29557, 29558], [29559, 29560, 29561], [29562, 29563, 29564], [29565, 29566, 29567], [29568, 29569, 29570], [29571, 29572, 29573], [29574, 29575, 29576], [29577, 29578, 29579], [29580, 29581, 29582], [29583, 29584, 29585], [29586, 29587, 29588], [29589, 29590, 29591], [29592, 29593, 29594], [29595, 29596, 29597], [29598, 29599, 29600], [29601, 29602, 29603], [29604, 29605, 29606], [29607, 29608, 29609], [29610, 29611, 29612], [29613, 29614, 29615], [29616, 29617, 29618], [29619, 29620, 29621], [29622, 29623, 29624], [29625, 29626, 29627], [29628, 29629, 29630], [29631, 29632, 29633], [29634, 29635, 29636], [29637, 29638, 29639], [29640, 29641, 29642], [29643, 29644, 29645], [29646, 29647, 29648], [29649, 29650, 29651], [29652, 29653, 29654], [29655, 29656, 29657], [29658, 29659, 29660], [29661, 29662, 29663], [29664, 29665, 29666], [29667, 29668, 29669], [29670, 29671, 29672], [29673, 29674, 29675], [29676, 29677, 29678], [29679, 29680, 29681], [29682, 29683, 29684], [29685, 29686, 29687], [29688, 29689, 29690], [29691, 29692, 29693], [29694, 29695, 29696], [29697, 29698, 29699], [29700, 29701, 29702], [29703, 29704, 29705], [29706, 29707, 29708], [29709, 29710, 29711], [29712, 29713, 29714], [29715, 29716, 29717], [29718, 29719, 29720], [29721, 29722, 29723], [29724, 29725, 29726], [29727, 29728, 29729], [29730, 29731, 29732], [29733, 29734, 29735], [29736, 29737, 29738], [29739, 29740, 29741], [29742, 29743, 29744], [29745, 29746, 29747], [29748, 29749, 29750], [29751, 29752, 29753], [29754, 29755, 29756], [29757, 29758, 29759], [29760, 29761, 29762], [29763, 29764, 29765], [29766, 29767, 29768], [29769, 29770, 29771], [29772, 29773, 29774], [29775, 29776, 29777], [29778, 29779, 29780], [29781, 29782, 29783], [29784, 29785, 29786], [29787, 29788, 29789], [29790, 29791, 29792], [29793, 29794, 29795], [29796, 29797, 29798], [29799, 29800, 29801], [29802, 29803, 29804], [29805, 29806, 29807], [29808, 29809, 29810], [29811, 29812, 29813], [29814, 29815, 29816], [29817, 29818, 29819], [29820, 29821, 29822], [29823, 29824, 29825], [29826, 29827, 29828], [29829, 29830, 29831], [29832, 29833, 29834], [29835, 29836, 29837], [29838, 29839, 29840], [29841, 29842, 29843], [29844, 29845, 29846], [29847, 29848, 29849], [29850, 29851, 29852], [29853, 29854, 29855], [29856, 29857, 29858], [29859, 29860, 29861], [29862, 29863, 29864], [29865, 29866, 29867], [29868, 29869, 29870], [29871, 29872, 29873], [29874, 29875, 29876], [29877, 29878, 29879], [29880, 29881, 29882], [29883, 29884, 29885], [29886, 29887, 29888], [29889, 29890, 29891], [29892, 29893, 29894], [29895, 29896, 29897], [29898, 29899, 29900], [29901, 29902, 29903], [29904, 29905, 29906], [29907, 29908, 29909], [29910, 29911, 29912], [29913, 29914, 29915], [29916, 29917, 29918], [29919, 29920, 29921], [29922, 29923, 29924], [29925, 29926, 29927], [29928, 29929, 29930], [29931, 29932, 29933], [29934, 29935, 29936], [29937, 29938, 29939], [29940, 29941, 29942], [29943, 29944, 29945], [29946, 29947, 29948], [29949, 29950, 29951], [29952, 29953, 29954], [29955, 29956, 29957], [29958, 29959, 29960], [29961, 29962, 29963], [29964, 29965, 29966], [29967, 29968, 29969], [29970, 29971, 29972], [29973, 29974, 29975], [29976, 29977, 29978], [29979, 29980, 29981], [29982, 29983, 29984], [29985, 29986, 29987], [29988, 29989, 29990], [29991, 29992, 29993], [29994, 29995, 29996], [29997, 29998, 29999], [30000, 30001, 30002], [30003, 30004, 30005], [30006, 30007, 30008], [30009, 30010, 30011], [30012, 30013, 30014], [30015, 30016, 30017], [30018, 30019, 30020], [30021, 30022, 30023], [30024, 30025, 30026], [30027, 30028, 30029], [30030, 30031, 30032], [30033, 30034, 30035], [30036, 30037, 30038], [30039, 30040, 30041], [30042, 30043, 30044], [30045, 30046, 30047], [30048, 30049, 30050], [30051, 30052, 30053], [30054, 30055, 30056], [30057, 30058, 30059], [30060, 30061, 30062], [30063, 30064, 30065], [30066, 30067, 30068], [30069, 30070, 30071], [30072, 30073, 30074], [30075, 30076, 30077], [30078, 30079, 30080], [30081, 30082, 30083], [30084, 30085, 30086], [30087, 30088, 30089], [30090, 30091, 30092], [30093, 30094, 30095], [30096, 30097, 30098], [30099, 30100, 30101], [30102, 30103, 30104], [30105, 30106, 30107], [30108, 30109, 30110], [30111, 30112, 30113], [30114, 30115, 30116], [30117, 30118, 30119], [30120, 30121, 30122], [30123, 30124, 30125], [30126, 30127, 30128], [30129, 30130, 30131], [30132, 30133, 30134], [30135, 30136, 30137], [30138, 30139, 30140], [30141, 30142, 30143], [30144, 30145, 30146], [30147, 30148, 30149], [30150, 30151, 30152], [30153, 30154, 30155], [30156, 30157, 30158], [30159, 30160, 30161], [30162, 30163, 30164], [30165, 30166, 30167], [30168, 30169, 30170], [30171, 30172, 30173], [30174, 30175, 30176], [30177, 30178, 30179], [30180, 30181, 30182], [30183, 30184, 30185], [30186, 30187, 30188], [30189, 30190, 30191], [30192, 30193, 30194], [30195, 30196, 30197], [30198, 30199, 30200], [30201, 30202, 30203], [30204, 30205, 30206], [30207, 30208, 30209], [30210, 30211, 30212], [30213, 30214, 30215], [30216, 30217, 30218], [30219, 30220, 30221], [30222, 30223, 30224], [30225, 30226, 30227], [30228, 30229, 30230], [30231, 30232, 30233], [30234, 30235, 30236], [30237, 30238, 30239], [30240, 30241, 30242], [30243, 30244, 30245], [30246, 30247, 30248], [30249, 30250, 30251], [30252, 30253, 30254], [30255, 30256, 30257], [30258, 30259, 30260], [30261, 30262, 30263], [30264, 30265, 30266], [30267, 30268, 30269], [30270, 30271, 30272], [30273, 30274, 30275], [30276, 30277, 30278], [30279, 30280, 30281], [30282, 30283, 30284], [30285, 30286, 30287], [30288, 30289, 30290], [30291, 30292, 30293], [30294, 30295, 30296], [30297, 30298, 30299], [30300, 30301, 30302], [30303, 30304, 30305], [30306, 30307, 30308], [30309, 30310, 30311], [30312, 30313, 30314], [30315, 30316, 30317], [30318, 30319, 30320], [30321, 30322, 30323], [30324, 30325, 30326], [30327, 30328, 30329], [30330, 30331, 30332], [30333, 30334, 30335], [30336, 30337, 30338], [30339, 30340, 30341], [30342, 30343, 30344], [30345, 30346, 30347], [30348, 30349, 30350], [30351, 30352, 30353], [30354, 30355, 30356], [30357, 30358, 30359], [30360, 30361, 30362], [30363, 30364, 30365], [30366, 30367, 30368], [30369, 30370, 30371], [30372, 30373, 30374], [30375, 30376, 30377], [30378, 30379, 30380], [30381, 30382, 30383], [30384, 30385, 30386], [30387, 30388, 30389], [30390, 30391, 30392], [30393, 30394, 30395], [30396, 30397, 30398], [30399, 30400, 30401], [30402, 30403, 30404], [30405, 30406, 30407], [30408, 30409, 30410], [30411, 30412, 30413], [30414, 30415, 30416], [30417, 30418, 30419], [30420, 30421, 30422], [30423, 30424, 30425], [30426, 30427, 30428], [30429, 30430, 30431], [30432, 30433, 30434], [30435, 30436, 30437], [30438, 30439, 30440], [30441, 30442, 30443], [30444, 30445, 30446], [30447, 30448, 30449], [30450, 30451, 30452], [30453, 30454, 30455], [30456, 30457, 30458], [30459, 30460, 30461], [30462, 30463, 30464], [30465, 30466, 30467], [30468, 30469, 30470], [30471, 30472, 30473], [30474, 30475, 30476], [30477, 30478, 30479], [30480, 30481, 30482], [30483, 30484, 30485], [30486, 30487, 30488], [30489, 30490, 30491], [30492, 30493, 30494], [30495, 30496, 30497], [30498, 30499, 30500], [30501, 30502, 30503], [30504, 30505, 30506], [30507, 30508, 30509], [30510, 30511, 30512], [30513, 30514, 30515], [30516, 30517, 30518], [30519, 30520, 30521], [30522, 30523, 30524], [30525, 30526, 30527], [30528, 30529, 30530], [30531, 30532, 30533], [30534, 30535, 30536], [30537, 30538, 30539], [30540, 30541, 30542], [30543, 30544, 30545], [30546, 30547, 30548], [30549, 30550, 30551], [30552, 30553, 30554], [30555, 30556, 30557], [30558, 30559, 30560], [30561, 30562, 30563], [30564, 30565, 30566], [30567, 30568, 30569], [30570, 30571, 30572], [30573, 30574, 30575], [30576, 30577, 30578], [30579, 30580, 30581], [30582, 30583, 30584], [30585, 30586, 30587], [30588, 30589, 30590], [30591, 30592, 30593], [30594, 30595, 30596], [30597, 30598, 30599], [30600, 30601, 30602], [30603, 30604, 30605], [30606, 30607, 30608], [30609, 30610, 30611], [30612, 30613, 30614], [30615, 30616, 30617], [30618, 30619, 30620], [30621, 30622, 30623], [30624, 30625, 30626], [30627, 30628, 30629], [30630, 30631, 30632], [30633, 30634, 30635], [30636, 30637, 30638], [30639, 30640, 30641], [30642, 30643, 30644], [30645, 30646, 30647], [30648, 30649, 30650], [30651, 30652, 30653], [30654, 30655, 30656], [30657, 30658, 30659], [30660, 30661, 30662], [30663, 30664, 30665], [30666, 30667, 30668], [30669, 30670, 30671], [30672, 30673, 30674], [30675, 30676, 30677], [30678, 30679, 30680], [30681, 30682, 30683], [30684, 30685, 30686], [30687, 30688, 30689], [30690, 30691, 30692], [30693, 30694, 30695], [30696, 30697, 30698], [30699, 30700, 30701], [30702, 30703, 30704], [30705, 30706, 30707], [30708, 30709, 30710], [30711, 30712, 30713], [30714, 30715, 30716], [30717, 30718, 30719], [30720, 30721, 30722], [30723, 30724, 30725], [30726, 30727, 30728], [30729, 30730, 30731], [30732, 30733, 30734], [30735, 30736, 30737], [30738, 30739, 30740], [30741, 30742, 30743], [30744, 30745, 30746], [30747, 30748, 30749], [30750, 30751, 30752], [30753, 30754, 30755], [30756, 30757, 30758], [30759, 30760, 30761], [30762, 30763, 30764], [30765, 30766, 30767], [30768, 30769, 30770], [30771, 30772, 30773], [30774, 30775, 30776], [30777, 30778, 30779], [30780, 30781, 30782], [30783, 30784, 30785], [30786, 30787, 30788], [30789, 30790, 30791], [30792, 30793, 30794], [30795, 30796, 30797], [30798, 30799, 30800], [30801, 30802, 30803], [30804, 30805, 30806], [30807, 30808, 30809], [30810, 30811, 30812], [30813, 30814, 30815], [30816, 30817, 30818], [30819, 30820, 30821], [30822, 30823, 30824], [30825, 30826, 30827], [30828, 30829, 30830], [30831, 30832, 30833], [30834, 30835, 30836], [30837, 30838, 30839], [30840, 30841, 30842], [30843, 30844, 30845], [30846, 30847, 30848], [30849, 30850, 30851], [30852, 30853, 30854], [30855, 30856, 30857], [30858, 30859, 30860], [30861, 30862, 30863], [30864, 30865, 30866], [30867, 30868, 30869], [30870, 30871, 30872], [30873, 30874, 30875], [30876, 30877, 30878], [30879, 30880, 30881], [30882, 30883, 30884], [30885, 30886, 30887], [30888, 30889, 30890], [30891, 30892, 30893], [30894, 30895, 30896], [30897, 30898, 30899], [30900, 30901, 30902], [30903, 30904, 30905], [30906, 30907, 30908], [30909, 30910, 30911], [30912, 30913, 30914], [30915, 30916, 30917], [30918, 30919, 30920], [30921, 30922, 30923], [30924, 30925, 30926], [30927, 30928, 30929], [30930, 30931, 30932], [30933, 30934, 30935], [30936, 30937, 30938], [30939, 30940, 30941], [30942, 30943, 30944], [30945, 30946, 30947], [30948, 30949, 30950], [30951, 30952, 30953], [30954, 30955, 30956], [30957, 30958, 30959], [30960, 30961, 30962], [30963, 30964, 30965], [30966, 30967, 30968], [30969, 30970, 30971], [30972, 30973, 30974], [30975, 30976, 30977], [30978, 30979, 30980], [30981, 30982, 30983], [30984, 30985, 30986], [30987, 30988, 30989], [30990, 30991, 30992], [30993, 30994, 30995], [30996, 30997, 30998], [30999, 31000, 31001], [31002, 31003, 31004], [31005, 31006, 31007], [31008, 31009, 31010], [31011, 31012, 31013], [31014, 31015, 31016], [31017, 31018, 31019], [31020, 31021, 31022], [31023, 31024, 31025], [31026, 31027, 31028], [31029, 31030, 31031], [31032, 31033, 31034], [31035, 31036, 31037], [31038, 31039, 31040], [31041, 31042, 31043], [31044, 31045, 31046], [31047, 31048, 31049], [31050, 31051, 31052], [31053, 31054, 31055], [31056, 31057, 31058], [31059, 31060, 31061], [31062, 31063, 31064], [31065, 31066, 31067], [31068, 31069, 31070], [31071, 31072, 31073], [31074, 31075, 31076], [31077, 31078, 31079], [31080, 31081, 31082], [31083, 31084, 31085], [31086, 31087, 31088], [31089, 31090, 31091], [31092, 31093, 31094], [31095, 31096, 31097], [31098, 31099, 31100], [31101, 31102, 31103], [31104, 31105, 31106], [31107, 31108, 31109], [31110, 31111, 31112], [31113, 31114, 31115], [31116, 31117, 31118], [31119, 31120, 31121], [31122, 31123, 31124], [31125, 31126, 31127], [31128, 31129, 31130], [31131, 31132, 31133], [31134, 31135, 31136], [31137, 31138, 31139], [31140, 31141, 31142], [31143, 31144, 31145], [31146, 31147, 31148], [31149, 31150, 31151], [31152, 31153, 31154], [31155, 31156, 31157], [31158, 31159, 31160], [31161, 31162, 31163], [31164, 31165, 31166], [31167, 31168, 31169], [31170, 31171, 31172], [31173, 31174, 31175], [31176, 31177, 31178], [31179, 31180, 31181], [31182, 31183, 31184], [31185, 31186, 31187], [31188, 31189, 31190], [31191, 31192, 31193], [31194, 31195, 31196], [31197, 31198, 31199], [31200, 31201, 31202], [31203, 31204, 31205], [31206, 31207, 31208], [31209, 31210, 31211], [31212, 31213, 31214], [31215, 31216, 31217], [31218, 31219, 31220], [31221, 31222, 31223], [31224, 31225, 31226], [31227, 31228, 31229], [31230, 31231, 31232], [31233, 31234, 31235], [31236, 31237, 31238], [31239, 31240, 31241], [31242, 31243, 31244], [31245, 31246, 31247], [31248, 31249, 31250], [31251, 31252, 31253], [31254, 31255, 31256], [31257, 31258, 31259], [31260, 31261, 31262], [31263, 31264, 31265], [31266, 31267, 31268], [31269, 31270, 31271], [31272, 31273, 31274], [31275, 31276, 31277], [31278, 31279, 31280], [31281, 31282, 31283], [31284, 31285, 31286], [31287, 31288, 31289], [31290, 31291, 31292], [31293, 31294, 31295], [31296, 31297, 31298], [31299, 31300, 31301], [31302, 31303, 31304], [31305, 31306, 31307], [31308, 31309, 31310], [31311, 31312, 31313], [31314, 31315, 31316], [31317, 31318, 31319], [31320, 31321, 31322], [31323, 31324, 31325], [31326, 31327, 31328], [31329, 31330, 31331], [31332, 31333, 31334], [31335, 31336, 31337], [31338, 31339, 31340], [31341, 31342, 31343], [31344, 31345, 31346], [31347, 31348, 31349], [31350, 31351, 31352], [31353, 31354, 31355], [31356, 31357, 31358], [31359, 31360, 31361], [31362, 31363, 31364], [31365, 31366, 31367], [31368, 31369, 31370], [31371, 31372, 31373], [31374, 31375, 31376], [31377, 31378, 31379], [31380, 31381, 31382], [31383, 31384, 31385], [31386, 31387, 31388], [31389, 31390, 31391], [31392, 31393, 31394], [31395, 31396, 31397], [31398, 31399, 31400], [31401, 31402, 31403], [31404, 31405, 31406], [31407, 31408, 31409], [31410, 31411, 31412], [31413, 31414, 31415], [31416, 31417, 31418], [31419, 31420, 31421], [31422, 31423, 31424], [31425, 31426, 31427], [31428, 31429, 31430], [31431, 31432, 31433], [31434, 31435, 31436], [31437, 31438, 31439], [31440, 31441, 31442], [31443, 31444, 31445], [31446, 31447, 31448], [31449, 31450, 31451], [31452, 31453, 31454], [31455, 31456, 31457], [31458, 31459, 31460], [31461, 31462, 31463], [31464, 31465, 31466], [31467, 31468, 31469], [31470, 31471, 31472], [31473, 31474, 31475], [31476, 31477, 31478], [31479, 31480, 31481], [31482, 31483, 31484], [31485, 31486, 31487], [31488, 31489, 31490], [31491, 31492, 31493], [31494, 31495, 31496], [31497, 31498, 31499], [31500, 31501, 31502], [31503, 31504, 31505], [31506, 31507, 31508], [31509, 31510, 31511], [31512, 31513, 31514], [31515, 31516, 31517], [31518, 31519, 31520], [31521, 31522, 31523], [31524, 31525, 31526], [31527, 31528, 31529], [31530, 31531, 31532], [31533, 31534, 31535], [31536, 31537, 31538], [31539, 31540, 31541], [31542, 31543, 31544], [31545, 31546, 31547], [31548, 31549, 31550], [31551, 31552, 31553], [31554, 31555, 31556], [31557, 31558, 31559], [31560, 31561, 31562], [31563, 31564, 31565], [31566, 31567, 31568], [31569, 31570, 31571], [31572, 31573, 31574], [31575, 31576, 31577], [31578, 31579, 31580], [31581, 31582, 31583], [31584, 31585, 31586], [31587, 31588, 31589], [31590, 31591, 31592], [31593, 31594, 31595], [31596, 31597, 31598], [31599, 31600, 31601], [31602, 31603, 31604], [31605, 31606, 31607], [31608, 31609, 31610], [31611, 31612, 31613], [31614, 31615, 31616], [31617, 31618, 31619], [31620, 31621, 31622], [31623, 31624, 31625], [31626, 31627, 31628], [31629, 31630, 31631], [31632, 31633, 31634], [31635, 31636, 31637], [31638, 31639, 31640], [31641, 31642, 31643], [31644, 31645, 31646], [31647, 31648, 31649], [31650, 31651, 31652], [31653, 31654, 31655], [31656, 31657, 31658], [31659, 31660, 31661], [31662, 31663, 31664], [31665, 31666, 31667], [31668, 31669, 31670], [31671, 31672, 31673], [31674, 31675, 31676], [31677, 31678, 31679], [31680, 31681, 31682], [31683, 31684, 31685], [31686, 31687, 31688], [31689, 31690, 31691], [31692, 31693, 31694], [31695, 31696, 31697], [31698, 31699, 31700], [31701, 31702, 31703], [31704, 31705, 31706], [31707, 31708, 31709], [31710, 31711, 31712], [31713, 31714, 31715], [31716, 31717, 31718], [31719, 31720, 31721], [31722, 31723, 31724], [31725, 31726, 31727], [31728, 31729, 31730], [31731, 31732, 31733], [31734, 31735, 31736], [31737, 31738, 31739], [31740, 31741, 31742], [31743, 31744, 31745], [31746, 31747, 31748], [31749, 31750, 31751], [31752, 31753, 31754], [31755, 31756, 31757], [31758, 31759, 31760], [31761, 31762, 31763], [31764, 31765, 31766], [31767, 31768, 31769], [31770, 31771, 31772], [31773, 31774, 31775], [31776, 31777, 31778], [31779, 31780, 31781], [31782, 31783, 31784], [31785, 31786, 31787], [31788, 31789, 31790], [31791, 31792, 31793], [31794, 31795, 31796], [31797, 31798, 31799], [31800, 31801, 31802], [31803, 31804, 31805], [31806, 31807, 31808], [31809, 31810, 31811], [31812, 31813, 31814], [31815, 31816, 31817], [31818, 31819, 31820], [31821, 31822, 31823], [31824, 31825, 31826], [31827, 31828, 31829], [31830, 31831, 31832], [31833, 31834, 31835], [31836, 31837, 31838], [31839, 31840, 31841], [31842, 31843, 31844], [31845, 31846, 31847], [31848, 31849, 31850], [31851, 31852, 31853], [31854, 31855, 31856], [31857, 31858, 31859], [31860, 31861, 31862], [31863, 31864, 31865], [31866, 31867, 31868], [31869, 31870, 31871], [31872, 31873, 31874], [31875, 31876, 31877], [31878, 31879, 31880], [31881, 31882, 31883], [31884, 31885, 31886], [31887, 31888, 31889], [31890, 31891, 31892], [31893, 31894, 31895], [31896, 31897, 31898], [31899, 31900, 31901], [31902, 31903, 31904], [31905, 31906, 31907], [31908, 31909, 31910], [31911, 31912, 31913], [31914, 31915, 31916], [31917, 31918, 31919], [31920, 31921, 31922], [31923, 31924, 31925], [31926, 31927, 31928], [31929, 31930, 31931], [31932, 31933, 31934], [31935, 31936, 31937], [31938, 31939, 31940], [31941, 31942, 31943], [31944, 31945, 31946], [31947, 31948, 31949], [31950, 31951, 31952], [31953, 31954, 31955], [31956, 31957, 31958], [31959, 31960, 31961], [31962, 31963, 31964], [31965, 31966, 31967], [31968, 31969, 31970], [31971, 31972, 31973], [31974, 31975, 31976], [31977, 31978, 31979], [31980, 31981, 31982], [31983, 31984, 31985], [31986, 31987, 31988], [31989, 31990, 31991], [31992, 31993, 31994], [31995, 31996, 31997], [31998, 31999, 32000], [32001, 32002, 32003], [32004, 32005, 32006], [32007, 32008, 32009], [32010, 32011, 32012], [32013, 32014, 32015], [32016, 32017, 32018], [32019, 32020, 32021], [32022, 32023, 32024], [32025, 32026, 32027], [32028, 32029, 32030], [32031, 32032, 32033], [32034, 32035, 32036], [32037, 32038, 32039], [32040, 32041, 32042], [32043, 32044, 32045], [32046, 32047, 32048], [32049, 32050, 32051], [32052, 32053, 32054], [32055, 32056, 32057], [32058, 32059, 32060], [32061, 32062, 32063], [32064, 32065, 32066], [32067, 32068, 32069], [32070, 32071, 32072], [32073, 32074, 32075], [32076, 32077, 32078], [32079, 32080, 32081], [32082, 32083, 32084], [32085, 32086, 32087], [32088, 32089, 32090], [32091, 32092, 32093], [32094, 32095, 32096], [32097, 32098, 32099], [32100, 32101, 32102], [32103, 32104, 32105], [32106, 32107, 32108], [32109, 32110, 32111], [32112, 32113, 32114], [32115, 32116, 32117], [32118, 32119, 32120], [32121, 32122, 32123], [32124, 32125, 32126], [32127, 32128, 32129], [32130, 32131, 32132], [32133, 32134, 32135], [32136, 32137, 32138], [32139, 32140, 32141], [32142, 32143, 32144], [32145, 32146, 32147], [32148, 32149, 32150], [32151, 32152, 32153], [32154, 32155, 32156], [32157, 32158, 32159], [32160, 32161, 32162], [32163, 32164, 32165], [32166, 32167, 32168], [32169, 32170, 32171], [32172, 32173, 32174], [32175, 32176, 32177], [32178, 32179, 32180], [32181, 32182, 32183], [32184, 32185, 32186], [32187, 32188, 32189], [32190, 32191, 32192], [32193, 32194, 32195], [32196, 32197, 32198], [32199, 32200, 32201], [32202, 32203, 32204], [32205, 32206, 32207], [32208, 32209, 32210], [32211, 32212, 32213], [32214, 32215, 32216], [32217, 32218, 32219], [32220, 32221, 32222], [32223, 32224, 32225], [32226, 32227, 32228], [32229, 32230, 32231], [32232, 32233, 32234], [32235, 32236, 32237], [32238, 32239, 32240], [32241, 32242, 32243], [32244, 32245, 32246], [32247, 32248, 32249], [32250, 32251, 32252], [32253, 32254, 32255], [32256, 32257, 32258], [32259, 32260, 32261], [32262, 32263, 32264], [32265, 32266, 32267], [32268, 32269, 32270], [32271, 32272, 32273], [32274, 32275, 32276], [32277, 32278, 32279], [32280, 32281, 32282], [32283, 32284, 32285], [32286, 32287, 32288], [32289, 32290, 32291], [32292, 32293, 32294], [32295, 32296, 32297], [32298, 32299, 32300], [32301, 32302, 32303], [32304, 32305, 32306], [32307, 32308, 32309], [32310, 32311, 32312], [32313, 32314, 32315], [32316, 32317, 32318], [32319, 32320, 32321], [32322, 32323, 32324], [32325, 32326, 32327], [32328, 32329, 32330], [32331, 32332, 32333], [32334, 32335, 32336], [32337, 32338, 32339], [32340, 32341, 32342], [32343, 32344, 32345], [32346, 32347, 32348], [32349, 32350, 32351], [32352, 32353, 32354], [32355, 32356, 32357], [32358, 32359, 32360], [32361, 32362, 32363], [32364, 32365, 32366], [32367, 32368, 32369], [32370, 32371, 32372], [32373, 32374, 32375], [32376, 32377, 32378], [32379, 32380, 32381], [32382, 32383, 32384], [32385, 32386, 32387], [32388, 32389, 32390], [32391, 32392, 32393], [32394, 32395, 32396], [32397, 32398, 32399], [32400, 32401, 32402], [32403, 32404, 32405], [32406, 32407, 32408], [32409, 32410, 32411], [32412, 32413, 32414], [32415, 32416, 32417], [32418, 32419, 32420], [32421, 32422, 32423], [32424, 32425, 32426], [32427, 32428, 32429], [32430, 32431, 32432], [32433, 32434, 32435], [32436, 32437, 32438], [32439, 32440, 32441], [32442, 32443, 32444], [32445, 32446, 32447], [32448, 32449, 32450], [32451, 32452, 32453], [32454, 32455, 32456], [32457, 32458, 32459], [32460, 32461, 32462], [32463, 32464, 32465], [32466, 32467, 32468], [32469, 32470, 32471], [32472, 32473, 32474], [32475, 32476, 32477], [32478, 32479, 32480], [32481, 32482, 32483], [32484, 32485, 32486], [32487, 32488, 32489], [32490, 32491, 32492], [32493, 32494, 32495], [32496, 32497, 32498], [32499, 32500, 32501], [32502, 32503, 32504], [32505, 32506, 32507], [32508, 32509, 32510], [32511, 32512, 32513], [32514, 32515, 32516], [32517, 32518, 32519], [32520, 32521, 32522], [32523, 32524, 32525], [32526, 32527, 32528], [32529, 32530, 32531], [32532, 32533, 32534], [32535, 32536, 32537], [32538, 32539, 32540], [32541, 32542, 32543], [32544, 32545, 32546], [32547, 32548, 32549], [32550, 32551, 32552], [32553, 32554, 32555], [32556, 32557, 32558], [32559, 32560, 32561], [32562, 32563, 32564], [32565, 32566, 32567], [32568, 32569, 32570], [32571, 32572, 32573], [32574, 32575, 32576], [32577, 32578, 32579], [32580, 32581, 32582], [32583, 32584, 32585], [32586, 32587, 32588], [32589, 32590, 32591], [32592, 32593, 32594], [32595, 32596, 32597], [32598, 32599, 32600], [32601, 32602, 32603], [32604, 32605, 32606], [32607, 32608, 32609], [32610, 32611, 32612], [32613, 32614, 32615], [32616, 32617, 32618], [32619, 32620, 32621], [32622, 32623, 32624], [32625, 32626, 32627], [32628, 32629, 32630], [32631, 32632, 32633], [32634, 32635, 32636], [32637, 32638, 32639], [32640, 32641, 32642], [32643, 32644, 32645], [32646, 32647, 32648], [32649, 32650, 32651], [32652, 32653, 32654], [32655, 32656, 32657], [32658, 32659, 32660], [32661, 32662, 32663], [32664, 32665, 32666], [32667, 32668, 32669], [32670, 32671, 32672], [32673, 32674, 32675], [32676, 32677, 32678], [32679, 32680, 32681], [32682, 32683, 32684], [32685, 32686, 32687], [32688, 32689, 32690], [32691, 32692, 32693], [32694, 32695, 32696], [32697, 32698, 32699], [32700, 32701, 32702], [32703, 32704, 32705], [32706, 32707, 32708], [32709, 32710, 32711], [32712, 32713, 32714], [32715, 32716, 32717], [32718, 32719, 32720], [32721, 32722, 32723], [32724, 32725, 32726], [32727, 32728, 32729], [32730, 32731, 32732], [32733, 32734, 32735], [32736, 32737, 32738], [32739, 32740, 32741], [32742, 32743, 32744], [32745, 32746, 32747], [32748, 32749, 32750], [32751, 32752, 32753], [32754, 32755, 32756], [32757, 32758, 32759], [32760, 32761, 32762], [32763, 32764, 32765], [32766, 32767, 32768], [32769, 32770, 32771], [32772, 32773, 32774], [32775, 32776, 32777], [32778, 32779, 32780], [32781, 32782, 32783], [32784, 32785, 32786], [32787, 32788, 32789], [32790, 32791, 32792], [32793, 32794, 32795], [32796, 32797, 32798], [32799, 32800, 32801], [32802, 32803, 32804], [32805, 32806, 32807], [32808, 32809, 32810], [32811, 32812, 32813], [32814, 32815, 32816], [32817, 32818, 32819], [32820, 32821, 32822], [32823, 32824, 32825], [32826, 32827, 32828], [32829, 32830, 32831], [32832, 32833, 32834], [32835, 32836, 32837], [32838, 32839, 32840], [32841, 32842, 32843], [32844, 32845, 32846], [32847, 32848, 32849], [32850, 32851, 32852], [32853, 32854, 32855], [32856, 32857, 32858], [32859, 32860, 32861], [32862, 32863, 32864], [32865, 32866, 32867], [32868, 32869, 32870], [32871, 32872, 32873], [32874, 32875, 32876], [32877, 32878, 32879], [32880, 32881, 32882], [32883, 32884, 32885], [32886, 32887, 32888], [32889, 32890, 32891], [32892, 32893, 32894], [32895, 32896, 32897], [32898, 32899, 32900], [32901, 32902, 32903], [32904, 32905, 32906], [32907, 32908, 32909], [32910, 32911, 32912], [32913, 32914, 32915], [32916, 32917, 32918], [32919, 32920, 32921], [32922, 32923, 32924], [32925, 32926, 32927], [32928, 32929, 32930], [32931, 32932, 32933], [32934, 32935, 32936], [32937, 32938, 32939], [32940, 32941, 32942], [32943, 32944, 32945], [32946, 32947, 32948], [32949, 32950, 32951], [32952, 32953, 32954], [32955, 32956, 32957], [32958, 32959, 32960], [32961, 32962, 32963], [32964, 32965, 32966], [32967, 32968, 32969], [32970, 32971, 32972], [32973, 32974, 32975], [32976, 32977, 32978], [32979, 32980, 32981], [32982, 32983, 32984], [32985, 32986, 32987], [32988, 32989, 32990], [32991, 32992, 32993], [32994, 32995, 32996], [32997, 32998, 32999], [33000, 33001, 33002], [33003, 33004, 33005], [33006, 33007, 33008], [33009, 33010, 33011], [33012, 33013, 33014], [33015, 33016, 33017], [33018, 33019, 33020], [33021, 33022, 33023], [33024, 33025, 33026], [33027, 33028, 33029], [33030, 33031, 33032], [33033, 33034, 33035], [33036, 33037, 33038], [33039, 33040, 33041], [33042, 33043, 33044], [33045, 33046, 33047], [33048, 33049, 33050], [33051, 33052, 33053], [33054, 33055, 33056], [33057, 33058, 33059], [33060, 33061, 33062], [33063, 33064, 33065], [33066, 33067, 33068], [33069, 33070, 33071], [33072, 33073, 33074], [33075, 33076, 33077], [33078, 33079, 33080], [33081, 33082, 33083], [33084, 33085, 33086], [33087, 33088, 33089], [33090, 33091, 33092], [33093, 33094, 33095], [33096, 33097, 33098], [33099, 33100, 33101], [33102, 33103, 33104], [33105, 33106, 33107], [33108, 33109, 33110], [33111, 33112, 33113], [33114, 33115, 33116], [33117, 33118, 33119], [33120, 33121, 33122], [33123, 33124, 33125], [33126, 33127, 33128], [33129, 33130, 33131], [33132, 33133, 33134], [33135, 33136, 33137], [33138, 33139, 33140], [33141, 33142, 33143], [33144, 33145, 33146], [33147, 33148, 33149], [33150, 33151, 33152], [33153, 33154, 33155], [33156, 33157, 33158], [33159, 33160, 33161], [33162, 33163, 33164], [33165, 33166, 33167], [33168, 33169, 33170], [33171, 33172, 33173], [33174, 33175, 33176], [33177, 33178, 33179], [33180, 33181, 33182], [33183, 33184, 33185], [33186, 33187, 33188], [33189, 33190, 33191], [33192, 33193, 33194], [33195, 33196, 33197], [33198, 33199, 33200], [33201, 33202, 33203], [33204, 33205, 33206], [33207, 33208, 33209], [33210, 33211, 33212], [33213, 33214, 33215], [33216, 33217, 33218], [33219, 33220, 33221], [33222, 33223, 33224], [33225, 33226, 33227], [33228, 33229, 33230], [33231, 33232, 33233], [33234, 33235, 33236], [33237, 33238, 33239], [33240, 33241, 33242], [33243, 33244, 33245], [33246, 33247, 33248], [33249, 33250, 33251], [33252, 33253, 33254], [33255, 33256, 33257], [33258, 33259, 33260], [33261, 33262, 33263], [33264, 33265, 33266], [33267, 33268, 33269], [33270, 33271, 33272], [33273, 33274, 33275], [33276, 33277, 33278], [33279, 33280, 33281], [33282, 33283, 33284], [33285, 33286, 33287], [33288, 33289, 33290], [33291, 33292, 33293], [33294, 33295, 33296], [33297, 33298, 33299], [33300, 33301, 33302], [33303, 33304, 33305], [33306, 33307, 33308], [33309, 33310, 33311], [33312, 33313, 33314], [33315, 33316, 33317], [33318, 33319, 33320], [33321, 33322, 33323], [33324, 33325, 33326], [33327, 33328, 33329], [33330, 33331, 33332], [33333, 33334, 33335], [33336, 33337, 33338], [33339, 33340, 33341], [33342, 33343, 33344], [33345, 33346, 33347], [33348, 33349, 33350], [33351, 33352, 33353], [33354, 33355, 33356], [33357, 33358, 33359], [33360, 33361, 33362], [33363, 33364, 33365], [33366, 33367, 33368], [33369, 33370, 33371], [33372, 33373, 33374], [33375, 33376, 33377], [33378, 33379, 33380], [33381, 33382, 33383], [33384, 33385, 33386], [33387, 33388, 33389], [33390, 33391, 33392], [33393, 33394, 33395], [33396, 33397, 33398], [33399, 33400, 33401], [33402, 33403, 33404], [33405, 33406, 33407], [33408, 33409, 33410], [33411, 33412, 33413], [33414, 33415, 33416], [33417, 33418, 33419], [33420, 33421, 33422], [33423, 33424, 33425], [33426, 33427, 33428], [33429, 33430, 33431], [33432, 33433, 33434], [33435, 33436, 33437], [33438, 33439, 33440], [33441, 33442, 33443], [33444, 33445, 33446], [33447, 33448, 33449], [33450, 33451, 33452], [33453, 33454, 33455], [33456, 33457, 33458], [33459, 33460, 33461], [33462, 33463, 33464], [33465, 33466, 33467], [33468, 33469, 33470], [33471, 33472, 33473], [33474, 33475, 33476], [33477, 33478, 33479], [33480, 33481, 33482], [33483, 33484, 33485], [33486, 33487, 33488], [33489, 33490, 33491], [33492, 33493, 33494], [33495, 33496, 33497], [33498, 33499, 33500], [33501, 33502, 33503], [33504, 33505, 33506], [33507, 33508, 33509], [33510, 33511, 33512], [33513, 33514, 33515], [33516, 33517, 33518], [33519, 33520, 33521], [33522, 33523, 33524], [33525, 33526, 33527], [33528, 33529, 33530], [33531, 33532, 33533], [33534, 33535, 33536], [33537, 33538, 33539], [33540, 33541, 33542], [33543, 33544, 33545], [33546, 33547, 33548], [33549, 33550, 33551], [33552, 33553, 33554], [33555, 33556, 33557], [33558, 33559, 33560], [33561, 33562, 33563], [33564, 33565, 33566], [33567, 33568, 33569], [33570, 33571, 33572], [33573, 33574, 33575], [33576, 33577, 33578], [33579, 33580, 33581], [33582, 33583, 33584], [33585, 33586, 33587], [33588, 33589, 33590], [33591, 33592, 33593], [33594, 33595, 33596], [33597, 33598, 33599], [33600, 33601, 33602], [33603, 33604, 33605], [33606, 33607, 33608], [33609, 33610, 33611], [33612, 33613, 33614], [33615, 33616, 33617], [33618, 33619, 33620], [33621, 33622, 33623], [33624, 33625, 33626], [33627, 33628, 33629], [33630, 33631, 33632], [33633, 33634, 33635], [33636, 33637, 33638], [33639, 33640, 33641], [33642, 33643, 33644], [33645, 33646, 33647], [33648, 33649, 33650], [33651, 33652, 33653], [33654, 33655, 33656], [33657, 33658, 33659], [33660, 33661, 33662], [33663, 33664, 33665], [33666, 33667, 33668], [33669, 33670, 33671], [33672, 33673, 33674], [33675, 33676, 33677], [33678, 33679, 33680], [33681, 33682, 33683], [33684, 33685, 33686], [33687, 33688, 33689], [33690, 33691, 33692], [33693, 33694, 33695], [33696, 33697, 33698], [33699, 33700, 33701], [33702, 33703, 33704], [33705, 33706, 33707], [33708, 33709, 33710], [33711, 33712, 33713], [33714, 33715, 33716], [33717, 33718, 33719], [33720, 33721, 33722], [33723, 33724, 33725], [33726, 33727, 33728], [33729, 33730, 33731], [33732, 33733, 33734], [33735, 33736, 33737], [33738, 33739, 33740], [33741, 33742, 33743], [33744, 33745, 33746], [33747, 33748, 33749], [33750, 33751, 33752], [33753, 33754, 33755], [33756, 33757, 33758], [33759, 33760, 33761], [33762, 33763, 33764], [33765, 33766, 33767], [33768, 33769, 33770], [33771, 33772, 33773], [33774, 33775, 33776], [33777, 33778, 33779], [33780, 33781, 33782], [33783, 33784, 33785], [33786, 33787, 33788], [33789, 33790, 33791], [33792, 33793, 33794], [33795, 33796, 33797], [33798, 33799, 33800], [33801, 33802, 33803], [33804, 33805, 33806], [33807, 33808, 33809], [33810, 33811, 33812], [33813, 33814, 33815], [33816, 33817, 33818], [33819, 33820, 33821], [33822, 33823, 33824], [33825, 33826, 33827], [33828, 33829, 33830], [33831, 33832, 33833], [33834, 33835, 33836], [33837, 33838, 33839], [33840, 33841, 33842], [33843, 33844, 33845], [33846, 33847, 33848], [33849, 33850, 33851], [33852, 33853, 33854], [33855, 33856, 33857], [33858, 33859, 33860], [33861, 33862, 33863], [33864, 33865, 33866], [33867, 33868, 33869], [33870, 33871, 33872], [33873, 33874, 33875], [33876, 33877, 33878], [33879, 33880, 33881], [33882, 33883, 33884], [33885, 33886, 33887], [33888, 33889, 33890], [33891, 33892, 33893], [33894, 33895, 33896], [33897, 33898, 33899], [33900, 33901, 33902], [33903, 33904, 33905], [33906, 33907, 33908], [33909, 33910, 33911], [33912, 33913, 33914], [33915, 33916, 33917], [33918, 33919, 33920], [33921, 33922, 33923], [33924, 33925, 33926], [33927, 33928, 33929], [33930, 33931, 33932], [33933, 33934, 33935], [33936, 33937, 33938], [33939, 33940, 33941], [33942, 33943, 33944], [33945, 33946, 33947], [33948, 33949, 33950], [33951, 33952, 33953], [33954, 33955, 33956], [33957, 33958, 33959], [33960, 33961, 33962], [33963, 33964, 33965], [33966, 33967, 33968], [33969, 33970, 33971], [33972, 33973, 33974], [33975, 33976, 33977], [33978, 33979, 33980], [33981, 33982, 33983], [33984, 33985, 33986], [33987, 33988, 33989], [33990, 33991, 33992], [33993, 33994, 33995], [33996, 33997, 33998], [33999, 34000, 34001], [34002, 34003, 34004], [34005, 34006, 34007], [34008, 34009, 34010], [34011, 34012, 34013], [34014, 34015, 34016], [34017, 34018, 34019], [34020, 34021, 34022], [34023, 34024, 34025], [34026, 34027, 34028], [34029, 34030, 34031], [34032, 34033, 34034], [34035, 34036, 34037], [34038, 34039, 34040], [34041, 34042, 34043], [34044, 34045, 34046], [34047, 34048, 34049], [34050, 34051, 34052], [34053, 34054, 34055], [34056, 34057, 34058], [34059, 34060, 34061], [34062, 34063, 34064], [34065, 34066, 34067], [34068, 34069, 34070], [34071, 34072, 34073], [34074, 34075, 34076], [34077, 34078, 34079], [34080, 34081, 34082], [34083, 34084, 34085], [34086, 34087, 34088], [34089, 34090, 34091], [34092, 34093, 34094], [34095, 34096, 34097], [34098, 34099, 34100], [34101, 34102, 34103], [34104, 34105, 34106], [34107, 34108, 34109], [34110, 34111, 34112], [34113, 34114, 34115], [34116, 34117, 34118], [34119, 34120, 34121], [34122, 34123, 34124], [34125, 34126, 34127], [34128, 34129, 34130], [34131, 34132, 34133], [34134, 34135, 34136], [34137, 34138, 34139], [34140, 34141, 34142], [34143, 34144, 34145], [34146, 34147, 34148], [34149, 34150, 34151], [34152, 34153, 34154], [34155, 34156, 34157], [34158, 34159, 34160], [34161, 34162, 34163], [34164, 34165, 34166], [34167, 34168, 34169], [34170, 34171, 34172], [34173, 34174, 34175], [34176, 34177, 34178], [34179, 34180, 34181], [34182, 34183, 34184], [34185, 34186, 34187], [34188, 34189, 34190], [34191, 34192, 34193], [34194, 34195, 34196], [34197, 34198, 34199], [34200, 34201, 34202], [34203, 34204, 34205], [34206, 34207, 34208], [34209, 34210, 34211], [34212, 34213, 34214], [34215, 34216, 34217], [34218, 34219, 34220], [34221, 34222, 34223], [34224, 34225, 34226], [34227, 34228, 34229], [34230, 34231, 34232], [34233, 34234, 34235], [34236, 34237, 34238], [34239, 34240, 34241], [34242, 34243, 34244], [34245, 34246, 34247], [34248, 34249, 34250], [34251, 34252, 34253], [34254, 34255, 34256], [34257, 34258, 34259], [34260, 34261, 34262], [34263, 34264, 34265], [34266, 34267, 34268], [34269, 34270, 34271], [34272, 34273, 34274], [34275, 34276, 34277], [34278, 34279, 34280], [34281, 34282, 34283], [34284, 34285, 34286], [34287, 34288, 34289], [34290, 34291, 34292], [34293, 34294, 34295], [34296, 34297, 34298], [34299, 34300, 34301], [34302, 34303, 34304], [34305, 34306, 34307], [34308, 34309, 34310], [34311, 34312, 34313], [34314, 34315, 34316], [34317, 34318, 34319], [34320, 34321, 34322], [34323, 34324, 34325], [34326, 34327, 34328], [34329, 34330, 34331], [34332, 34333, 34334], [34335, 34336, 34337], [34338, 34339, 34340], [34341, 34342, 34343], [34344, 34345, 34346], [34347, 34348, 34349], [34350, 34351, 34352], [34353, 34354, 34355], [34356, 34357, 34358], [34359, 34360, 34361], [34362, 34363, 34364], [34365, 34366, 34367], [34368, 34369, 34370], [34371, 34372, 34373], [34374, 34375, 34376], [34377, 34378, 34379], [34380, 34381, 34382], [34383, 34384, 34385], [34386, 34387, 34388], [34389, 34390, 34391], [34392, 34393, 34394], [34395, 34396, 34397], [34398, 34399, 34400], [34401, 34402, 34403], [34404, 34405, 34406], [34407, 34408, 34409], [34410, 34411, 34412], [34413, 34414, 34415], [34416, 34417, 34418], [34419, 34420, 34421], [34422, 34423, 34424], [34425, 34426, 34427], [34428, 34429, 34430], [34431, 34432, 34433], [34434, 34435, 34436], [34437, 34438, 34439], [34440, 34441, 34442], [34443, 34444, 34445], [34446, 34447, 34448], [34449, 34450, 34451], [34452, 34453, 34454], [34455, 34456, 34457], [34458, 34459, 34460], [34461, 34462, 34463], [34464, 34465, 34466], [34467, 34468, 34469], [34470, 34471, 34472], [34473, 34474, 34475], [34476, 34477, 34478], [34479, 34480, 34481], [34482, 34483, 34484], [34485, 34486, 34487], [34488, 34489, 34490], [34491, 34492, 34493], [34494, 34495, 34496], [34497, 34498, 34499], [34500, 34501, 34502], [34503, 34504, 34505], [34506, 34507, 34508], [34509, 34510, 34511], [34512, 34513, 34514], [34515, 34516, 34517], [34518, 34519, 34520], [34521, 34522, 34523], [34524, 34525, 34526], [34527, 34528, 34529], [34530, 34531, 34532], [34533, 34534, 34535], [34536, 34537, 34538], [34539, 34540, 34541], [34542, 34543, 34544], [34545, 34546, 34547], [34548, 34549, 34550], [34551, 34552, 34553], [34554, 34555, 34556], [34557, 34558, 34559], [34560, 34561, 34562], [34563, 34564, 34565], [34566, 34567, 34568], [34569, 34570, 34571], [34572, 34573, 34574], [34575, 34576, 34577], [34578, 34579, 34580], [34581, 34582, 34583], [34584, 34585, 34586], [34587, 34588, 34589], [34590, 34591, 34592], [34593, 34594, 34595], [34596, 34597, 34598], [34599, 34600, 34601], [34602, 34603, 34604], [34605, 34606, 34607], [34608, 34609, 34610], [34611, 34612, 34613], [34614, 34615, 34616], [34617, 34618, 34619], [34620, 34621, 34622], [34623, 34624, 34625], [34626, 34627, 34628], [34629, 34630, 34631], [34632, 34633, 34634], [34635, 34636, 34637], [34638, 34639, 34640], [34641, 34642, 34643], [34644, 34645, 34646], [34647, 34648, 34649], [34650, 34651, 34652], [34653, 34654, 34655], [34656, 34657, 34658], [34659, 34660, 34661], [34662, 34663, 34664], [34665, 34666, 34667], [34668, 34669, 34670], [34671, 34672, 34673], [34674, 34675, 34676], [34677, 34678, 34679], [34680, 34681, 34682], [34683, 34684, 34685], [34686, 34687, 34688], [34689, 34690, 34691], [34692, 34693, 34694], [34695, 34696, 34697], [34698, 34699, 34700], [34701, 34702, 34703], [34704, 34705, 34706], [34707, 34708, 34709], [34710, 34711, 34712], [34713, 34714, 34715], [34716, 34717, 34718], [34719, 34720, 34721], [34722, 34723, 34724], [34725, 34726, 34727], [34728, 34729, 34730], [34731, 34732, 34733], [34734, 34735, 34736], [34737, 34738, 34739], [34740, 34741, 34742], [34743, 34744, 34745], [34746, 34747, 34748], [34749, 34750, 34751], [34752, 34753, 34754], [34755, 34756, 34757], [34758, 34759, 34760], [34761, 34762, 34763], [34764, 34765, 34766], [34767, 34768, 34769], [34770, 34771, 34772], [34773, 34774, 34775], [34776, 34777, 34778], [34779, 34780, 34781], [34782, 34783, 34784], [34785, 34786, 34787], [34788, 34789, 34790], [34791, 34792, 34793], [34794, 34795, 34796], [34797, 34798, 34799], [34800, 34801, 34802], [34803, 34804, 34805], [34806, 34807, 34808], [34809, 34810, 34811], [34812, 34813, 34814], [34815, 34816, 34817], [34818, 34819, 34820], [34821, 34822, 34823], [34824, 34825, 34826], [34827, 34828, 34829], [34830, 34831, 34832], [34833, 34834, 34835], [34836, 34837, 34838], [34839, 34840, 34841], [34842, 34843, 34844], [34845, 34846, 34847], [34848, 34849, 34850], [34851, 34852, 34853], [34854, 34855, 34856], [34857, 34858, 34859], [34860, 34861, 34862], [34863, 34864, 34865], [34866, 34867, 34868], [34869, 34870, 34871], [34872, 34873, 34874], [34875, 34876, 34877], [34878, 34879, 34880], [34881, 34882, 34883], [34884, 34885, 34886], [34887, 34888, 34889], [34890, 34891, 34892], [34893, 34894, 34895], [34896, 34897, 34898], [34899, 34900, 34901], [34902, 34903, 34904], [34905, 34906, 34907], [34908, 34909, 34910], [34911, 34912, 34913], [34914, 34915, 34916], [34917, 34918, 34919], [34920, 34921, 34922], [34923, 34924, 34925], [34926, 34927, 34928], [34929, 34930, 34931], [34932, 34933, 34934], [34935, 34936, 34937], [34938, 34939, 34940], [34941, 34942, 34943], [34944, 34945, 34946], [34947, 34948, 34949], [34950, 34951, 34952], [34953, 34954, 34955], [34956, 34957, 34958], [34959, 34960, 34961], [34962, 34963, 34964], [34965, 34966, 34967], [34968, 34969, 34970], [34971, 34972, 34973], [34974, 34975, 34976], [34977, 34978, 34979], [34980, 34981, 34982], [34983, 34984, 34985], [34986, 34987, 34988], [34989, 34990, 34991], [34992, 34993, 34994], [34995, 34996, 34997], [34998, 34999, 35000], [35001, 35002, 35003], [35004, 35005, 35006], [35007, 35008, 35009], [35010, 35011, 35012], [35013, 35014, 35015], [35016, 35017, 35018], [35019, 35020, 35021], [35022, 35023, 35024], [35025, 35026, 35027], [35028, 35029, 35030], [35031, 35032, 35033], [35034, 35035, 35036], [35037, 35038, 35039], [35040, 35041, 35042], [35043, 35044, 35045], [35046, 35047, 35048], [35049, 35050, 35051], [35052, 35053, 35054], [35055, 35056, 35057], [35058, 35059, 35060], [35061, 35062, 35063], [35064, 35065, 35066], [35067, 35068, 35069], [35070, 35071, 35072], [35073, 35074, 35075], [35076, 35077, 35078], [35079, 35080, 35081], [35082, 35083, 35084], [35085, 35086, 35087], [35088, 35089, 35090], [35091, 35092, 35093], [35094, 35095, 35096], [35097, 35098, 35099], [35100, 35101, 35102], [35103, 35104, 35105], [35106, 35107, 35108], [35109, 35110, 35111], [35112, 35113, 35114], [35115, 35116, 35117], [35118, 35119, 35120], [35121, 35122, 35123], [35124, 35125, 35126], [35127, 35128, 35129], [35130, 35131, 35132], [35133, 35134, 35135], [35136, 35137, 35138], [35139, 35140, 35141], [35142, 35143, 35144], [35145, 35146, 35147], [35148, 35149, 35150], [35151, 35152, 35153], [35154, 35155, 35156], [35157, 35158, 35159], [35160, 35161, 35162], [35163, 35164, 35165], [35166, 35167, 35168], [35169, 35170, 35171], [35172, 35173, 35174], [35175, 35176, 35177], [35178, 35179, 35180], [35181, 35182, 35183], [35184, 35185, 35186], [35187, 35188, 35189], [35190, 35191, 35192], [35193, 35194, 35195], [35196, 35197, 35198], [35199, 35200, 35201], [35202, 35203, 35204], [35205, 35206, 35207], [35208, 35209, 35210], [35211, 35212, 35213], [35214, 35215, 35216], [35217, 35218, 35219], [35220, 35221, 35222], [35223, 35224, 35225], [35226, 35227, 35228], [35229, 35230, 35231], [35232, 35233, 35234], [35235, 35236, 35237], [35238, 35239, 35240], [35241, 35242, 35243], [35244, 35245, 35246], [35247, 35248, 35249], [35250, 35251, 35252], [35253, 35254, 35255], [35256, 35257, 35258], [35259, 35260, 35261], [35262, 35263, 35264], [35265, 35266, 35267], [35268, 35269, 35270], [35271, 35272, 35273], [35274, 35275, 35276], [35277, 35278, 35279], [35280, 35281, 35282], [35283, 35284, 35285], [35286, 35287, 35288], [35289, 35290, 35291], [35292, 35293, 35294], [35295, 35296, 35297], [35298, 35299, 35300], [35301, 35302, 35303], [35304, 35305, 35306], [35307, 35308, 35309], [35310, 35311, 35312], [35313, 35314, 35315], [35316, 35317, 35318], [35319, 35320, 35321], [35322, 35323, 35324], [35325, 35326, 35327], [35328, 35329, 35330], [35331, 35332, 35333], [35334, 35335, 35336], [35337, 35338, 35339], [35340, 35341, 35342], [35343, 35344, 35345], [35346, 35347, 35348], [35349, 35350, 35351], [35352, 35353, 35354], [35355, 35356, 35357], [35358, 35359, 35360], [35361, 35362, 35363], [35364, 35365, 35366], [35367, 35368, 35369], [35370, 35371, 35372], [35373, 35374, 35375], [35376, 35377, 35378], [35379, 35380, 35381], [35382, 35383, 35384], [35385, 35386, 35387], [35388, 35389, 35390], [35391, 35392, 35393], [35394, 35395, 35396], [35397, 35398, 35399], [35400, 35401, 35402], [35403, 35404, 35405], [35406, 35407, 35408], [35409, 35410, 35411], [35412, 35413, 35414], [35415, 35416, 35417], [35418, 35419, 35420], [35421, 35422, 35423], [35424, 35425, 35426], [35427, 35428, 35429], [35430, 35431, 35432], [35433, 35434, 35435], [35436, 35437, 35438], [35439, 35440, 35441], [35442, 35443, 35444], [35445, 35446, 35447], [35448, 35449, 35450], [35451, 35452, 35453], [35454, 35455, 35456], [35457, 35458, 35459], [35460, 35461, 35462], [35463, 35464, 35465], [35466, 35467, 35468], [35469, 35470, 35471], [35472, 35473, 35474], [35475, 35476, 35477], [35478, 35479, 35480], [35481, 35482, 35483], [35484, 35485, 35486], [35487, 35488, 35489], [35490, 35491, 35492], [35493, 35494, 35495], [35496, 35497, 35498], [35499, 35500, 35501], [35502, 35503, 35504], [35505, 35506, 35507], [35508, 35509, 35510], [35511, 35512, 35513], [35514, 35515, 35516], [35517, 35518, 35519], [35520, 35521, 35522], [35523, 35524, 35525], [35526, 35527, 35528], [35529, 35530, 35531], [35532, 35533, 35534], [35535, 35536, 35537], [35538, 35539, 35540], [35541, 35542, 35543], [35544, 35545, 35546], [35547, 35548, 35549], [35550, 35551, 35552], [35553, 35554, 35555], [35556, 35557, 35558], [35559, 35560, 35561], [35562, 35563, 35564], [35565, 35566, 35567], [35568, 35569, 35570], [35571, 35572, 35573], [35574, 35575, 35576], [35577, 35578, 35579], [35580, 35581, 35582], [35583, 35584, 35585], [35586, 35587, 35588], [35589, 35590, 35591], [35592, 35593, 35594], [35595, 35596, 35597], [35598, 35599, 35600], [35601, 35602, 35603], [35604, 35605, 35606], [35607, 35608, 35609], [35610, 35611, 35612], [35613, 35614, 35615], [35616, 35617, 35618], [35619, 35620, 35621], [35622, 35623, 35624], [35625, 35626, 35627], [35628, 35629, 35630], [35631, 35632, 35633], [35634, 35635, 35636], [35637, 35638, 35639], [35640, 35641, 35642], [35643, 35644, 35645], [35646, 35647, 35648], [35649, 35650, 35651], [35652, 35653, 35654], [35655, 35656, 35657], [35658, 35659, 35660], [35661, 35662, 35663], [35664, 35665, 35666], [35667, 35668, 35669], [35670, 35671, 35672], [35673, 35674, 35675], [35676, 35677, 35678], [35679, 35680, 35681], [35682, 35683, 35684], [35685, 35686, 35687], [35688, 35689, 35690], [35691, 35692, 35693], [35694, 35695, 35696], [35697, 35698, 35699], [35700, 35701, 35702], [35703, 35704, 35705], [35706, 35707, 35708], [35709, 35710, 35711], [35712, 35713, 35714], [35715, 35716, 35717], [35718, 35719, 35720], [35721, 35722, 35723], [35724, 35725, 35726], [35727, 35728, 35729], [35730, 35731, 35732], [35733, 35734, 35735], [35736, 35737, 35738], [35739, 35740, 35741], [35742, 35743, 35744], [35745, 35746, 35747], [35748, 35749, 35750], [35751, 35752, 35753], [35754, 35755, 35756], [35757, 35758, 35759], [35760, 35761, 35762], [35763, 35764, 35765], [35766, 35767, 35768], [35769, 35770, 35771], [35772, 35773, 35774], [35775, 35776, 35777], [35778, 35779, 35780], [35781, 35782, 35783], [35784, 35785, 35786], [35787, 35788, 35789], [35790, 35791, 35792], [35793, 35794, 35795], [35796, 35797, 35798], [35799, 35800, 35801], [35802, 35803, 35804], [35805, 35806, 35807], [35808, 35809, 35810], [35811, 35812, 35813], [35814, 35815, 35816], [35817, 35818, 35819], [35820, 35821, 35822], [35823, 35824, 35825], [35826, 35827, 35828], [35829, 35830, 35831], [35832, 35833, 35834], [35835, 35836, 35837], [35838, 35839, 35840], [35841, 35842, 35843], [35844, 35845, 35846], [35847, 35848, 35849], [35850, 35851, 35852], [35853, 35854, 35855], [35856, 35857, 35858], [35859, 35860, 35861], [35862, 35863, 35864], [35865, 35866, 35867], [35868, 35869, 35870], [35871, 35872, 35873], [35874, 35875, 35876], [35877, 35878, 35879], [35880, 35881, 35882], [35883, 35884, 35885], [35886, 35887, 35888], [35889, 35890, 35891], [35892, 35893, 35894], [35895, 35896, 35897], [35898, 35899, 35900], [35901, 35902, 35903], [35904, 35905, 35906], [35907, 35908, 35909], [35910, 35911, 35912], [35913, 35914, 35915], [35916, 35917, 35918], [35919, 35920, 35921], [35922, 35923, 35924], [35925, 35926, 35927], [35928, 35929, 35930], [35931, 35932, 35933], [35934, 35935, 35936], [35937, 35938, 35939], [35940, 35941, 35942], [35943, 35944, 35945], [35946, 35947, 35948], [35949, 35950, 35951], [35952, 35953, 35954], [35955, 35956, 35957], [35958, 35959, 35960], [35961, 35962, 35963], [35964, 35965, 35966], [35967, 35968, 35969], [35970, 35971, 35972], [35973, 35974, 35975], [35976, 35977, 35978], [35979, 35980, 35981], [35982, 35983, 35984], [35985, 35986, 35987], [35988, 35989, 35990], [35991, 35992, 35993], [35994, 35995, 35996], [35997, 35998, 35999], [36000, 36001, 36002], [36003, 36004, 36005], [36006, 36007, 36008], [36009, 36010, 36011], [36012, 36013, 36014], [36015, 36016, 36017], [36018, 36019, 36020], [36021, 36022, 36023], [36024, 36025, 36026], [36027, 36028, 36029], [36030, 36031, 36032], [36033, 36034, 36035], [36036, 36037, 36038], [36039, 36040, 36041], [36042, 36043, 36044], [36045, 36046, 36047], [36048, 36049, 36050], [36051, 36052, 36053], [36054, 36055, 36056], [36057, 36058, 36059], [36060, 36061, 36062], [36063, 36064, 36065], [36066, 36067, 36068], [36069, 36070, 36071], [36072, 36073, 36074], [36075, 36076, 36077], [36078, 36079, 36080], [36081, 36082, 36083], [36084, 36085, 36086], [36087, 36088, 36089], [36090, 36091, 36092], [36093, 36094, 36095], [36096, 36097, 36098], [36099, 36100, 36101], [36102, 36103, 36104], [36105, 36106, 36107], [36108, 36109, 36110], [36111, 36112, 36113], [36114, 36115, 36116], [36117, 36118, 36119], [36120, 36121, 36122], [36123, 36124, 36125], [36126, 36127, 36128], [36129, 36130, 36131], [36132, 36133, 36134], [36135, 36136, 36137], [36138, 36139, 36140], [36141, 36142, 36143], [36144, 36145, 36146], [36147, 36148, 36149], [36150, 36151, 36152], [36153, 36154, 36155], [36156, 36157, 36158], [36159, 36160, 36161], [36162, 36163, 36164], [36165, 36166, 36167], [36168, 36169, 36170], [36171, 36172, 36173], [36174, 36175, 36176], [36177, 36178, 36179], [36180, 36181, 36182], [36183, 36184, 36185], [36186, 36187, 36188], [36189, 36190, 36191], [36192, 36193, 36194], [36195, 36196, 36197], [36198, 36199, 36200], [36201, 36202, 36203], [36204, 36205, 36206], [36207, 36208, 36209], [36210, 36211, 36212], [36213, 36214, 36215], [36216, 36217, 36218], [36219, 36220, 36221], [36222, 36223, 36224], [36225, 36226, 36227], [36228, 36229, 36230], [36231, 36232, 36233], [36234, 36235, 36236], [36237, 36238, 36239], [36240, 36241, 36242], [36243, 36244, 36245], [36246, 36247, 36248], [36249, 36250, 36251], [36252, 36253, 36254], [36255, 36256, 36257], [36258, 36259, 36260], [36261, 36262, 36263], [36264, 36265, 36266], [36267, 36268, 36269], [36270, 36271, 36272], [36273, 36274, 36275], [36276, 36277, 36278], [36279, 36280, 36281], [36282, 36283, 36284], [36285, 36286, 36287], [36288, 36289, 36290], [36291, 36292, 36293], [36294, 36295, 36296], [36297, 36298, 36299], [36300, 36301, 36302], [36303, 36304, 36305], [36306, 36307, 36308], [36309, 36310, 36311], [36312, 36313, 36314], [36315, 36316, 36317], [36318, 36319, 36320], [36321, 36322, 36323], [36324, 36325, 36326], [36327, 36328, 36329], [36330, 36331, 36332], [36333, 36334, 36335], [36336, 36337, 36338], [36339, 36340, 36341], [36342, 36343, 36344], [36345, 36346, 36347], [36348, 36349, 36350], [36351, 36352, 36353], [36354, 36355, 36356], [36357, 36358, 36359], [36360, 36361, 36362], [36363, 36364, 36365], [36366, 36367, 36368], [36369, 36370, 36371], [36372, 36373, 36374], [36375, 36376, 36377], [36378, 36379, 36380], [36381, 36382, 36383], [36384, 36385, 36386], [36387, 36388, 36389], [36390, 36391, 36392], [36393, 36394, 36395], [36396, 36397, 36398], [36399, 36400, 36401], [36402, 36403, 36404], [36405, 36406, 36407], [36408, 36409, 36410], [36411, 36412, 36413], [36414, 36415, 36416], [36417, 36418, 36419], [36420, 36421, 36422], [36423, 36424, 36425], [36426, 36427, 36428], [36429, 36430, 36431], [36432, 36433, 36434], [36435, 36436, 36437], [36438, 36439, 36440], [36441, 36442, 36443], [36444, 36445, 36446], [36447, 36448, 36449], [36450, 36451, 36452], [36453, 36454, 36455], [36456, 36457, 36458], [36459, 36460, 36461], [36462, 36463, 36464], [36465, 36466, 36467], [36468, 36469, 36470], [36471, 36472, 36473], [36474, 36475, 36476], [36477, 36478, 36479], [36480, 36481, 36482], [36483, 36484, 36485], [36486, 36487, 36488], [36489, 36490, 36491], [36492, 36493, 36494], [36495, 36496, 36497], [36498, 36499, 36500], [36501, 36502, 36503], [36504, 36505, 36506], [36507, 36508, 36509], [36510, 36511, 36512], [36513, 36514, 36515], [36516, 36517, 36518], [36519, 36520, 36521], [36522, 36523, 36524], [36525, 36526, 36527], [36528, 36529, 36530], [36531, 36532, 36533], [36534, 36535, 36536], [36537, 36538, 36539], [36540, 36541, 36542], [36543, 36544, 36545], [36546, 36547, 36548], [36549, 36550, 36551], [36552, 36553, 36554], [36555, 36556, 36557], [36558, 36559, 36560], [36561, 36562, 36563], [36564, 36565, 36566], [36567, 36568, 36569], [36570, 36571, 36572], [36573, 36574, 36575], [36576, 36577, 36578], [36579, 36580, 36581], [36582, 36583, 36584], [36585, 36586, 36587], [36588, 36589, 36590], [36591, 36592, 36593], [36594, 36595, 36596], [36597, 36598, 36599], [36600, 36601, 36602], [36603, 36604, 36605], [36606, 36607, 36608], [36609, 36610, 36611], [36612, 36613, 36614], [36615, 36616, 36617], [36618, 36619, 36620], [36621, 36622, 36623], [36624, 36625, 36626], [36627, 36628, 36629], [36630, 36631, 36632], [36633, 36634, 36635], [36636, 36637, 36638], [36639, 36640, 36641], [36642, 36643, 36644], [36645, 36646, 36647], [36648, 36649, 36650], [36651, 36652, 36653], [36654, 36655, 36656], [36657, 36658, 36659], [36660, 36661, 36662], [36663, 36664, 36665], [36666, 36667, 36668], [36669, 36670, 36671], [36672, 36673, 36674], [36675, 36676, 36677], [36678, 36679, 36680], [36681, 36682, 36683], [36684, 36685, 36686], [36687, 36688, 36689], [36690, 36691, 36692], [36693, 36694, 36695], [36696, 36697, 36698], [36699, 36700, 36701], [36702, 36703, 36704], [36705, 36706, 36707], [36708, 36709, 36710], [36711, 36712, 36713], [36714, 36715, 36716], [36717, 36718, 36719], [36720, 36721, 36722], [36723, 36724, 36725], [36726, 36727, 36728], [36729, 36730, 36731], [36732, 36733, 36734], [36735, 36736, 36737], [36738, 36739, 36740], [36741, 36742, 36743], [36744, 36745, 36746], [36747, 36748, 36749], [36750, 36751, 36752], [36753, 36754, 36755], [36756, 36757, 36758], [36759, 36760, 36761], [36762, 36763, 36764], [36765, 36766, 36767], [36768, 36769, 36770], [36771, 36772, 36773], [36774, 36775, 36776], [36777, 36778, 36779], [36780, 36781, 36782], [36783, 36784, 36785], [36786, 36787, 36788], [36789, 36790, 36791], [36792, 36793, 36794], [36795, 36796, 36797], [36798, 36799, 36800], [36801, 36802, 36803], [36804, 36805, 36806], [36807, 36808, 36809], [36810, 36811, 36812], [36813, 36814, 36815], [36816, 36817, 36818], [36819, 36820, 36821], [36822, 36823, 36824], [36825, 36826, 36827], [36828, 36829, 36830], [36831, 36832, 36833], [36834, 36835, 36836], [36837, 36838, 36839], [36840, 36841, 36842], [36843, 36844, 36845], [36846, 36847, 36848], [36849, 36850, 36851], [36852, 36853, 36854], [36855, 36856, 36857], [36858, 36859, 36860], [36861, 36862, 36863], [36864, 36865, 36866], [36867, 36868, 36869], [36870, 36871, 36872], [36873, 36874, 36875], [36876, 36877, 36878], [36879, 36880, 36881], [36882, 36883, 36884], [36885, 36886, 36887], [36888, 36889, 36890], [36891, 36892, 36893], [36894, 36895, 36896], [36897, 36898, 36899], [36900, 36901, 36902], [36903, 36904, 36905], [36906, 36907, 36908], [36909, 36910, 36911], [36912, 36913, 36914], [36915, 36916, 36917], [36918, 36919, 36920], [36921, 36922, 36923], [36924, 36925, 36926], [36927, 36928, 36929], [36930, 36931, 36932], [36933, 36934, 36935], [36936, 36937, 36938], [36939, 36940, 36941], [36942, 36943, 36944], [36945, 36946, 36947], [36948, 36949, 36950], [36951, 36952, 36953], [36954, 36955, 36956], [36957, 36958, 36959], [36960, 36961, 36962], [36963, 36964, 36965], [36966, 36967, 36968], [36969, 36970, 36971], [36972, 36973, 36974], [36975, 36976, 36977], [36978, 36979, 36980], [36981, 36982, 36983], [36984, 36985, 36986], [36987, 36988, 36989], [36990, 36991, 36992], [36993, 36994, 36995], [36996, 36997, 36998], [36999, 37000, 37001], [37002, 37003, 37004], [37005, 37006, 37007], [37008, 37009, 37010], [37011, 37012, 37013], [37014, 37015, 37016], [37017, 37018, 37019], [37020, 37021, 37022], [37023, 37024, 37025], [37026, 37027, 37028], [37029, 37030, 37031], [37032, 37033, 37034], [37035, 37036, 37037], [37038, 37039, 37040], [37041, 37042, 37043], [37044, 37045, 37046], [37047, 37048, 37049], [37050, 37051, 37052], [37053, 37054, 37055], [37056, 37057, 37058], [37059, 37060, 37061], [37062, 37063, 37064], [37065, 37066, 37067], [37068, 37069, 37070], [37071, 37072, 37073], [37074, 37075, 37076], [37077, 37078, 37079], [37080, 37081, 37082], [37083, 37084, 37085], [37086, 37087, 37088], [37089, 37090, 37091], [37092, 37093, 37094], [37095, 37096, 37097], [37098, 37099, 37100], [37101, 37102, 37103], [37104, 37105, 37106], [37107, 37108, 37109], [37110, 37111, 37112], [37113, 37114, 37115], [37116, 37117, 37118], [37119, 37120, 37121], [37122, 37123, 37124], [37125, 37126, 37127], [37128, 37129, 37130], [37131, 37132, 37133], [37134, 37135, 37136], [37137, 37138, 37139], [37140, 37141, 37142], [37143, 37144, 37145], [37146, 37147, 37148], [37149, 37150, 37151], [37152, 37153, 37154], [37155, 37156, 37157], [37158, 37159, 37160], [37161, 37162, 37163], [37164, 37165, 37166], [37167, 37168, 37169], [37170, 37171, 37172], [37173, 37174, 37175], [37176, 37177, 37178], [37179, 37180, 37181], [37182, 37183, 37184], [37185, 37186, 37187], [37188, 37189, 37190], [37191, 37192, 37193], [37194, 37195, 37196], [37197, 37198, 37199], [37200, 37201, 37202], [37203, 37204, 37205], [37206, 37207, 37208], [37209, 37210, 37211], [37212, 37213, 37214], [37215, 37216, 37217], [37218, 37219, 37220], [37221, 37222, 37223], [37224, 37225, 37226], [37227, 37228, 37229], [37230, 37231, 37232], [37233, 37234, 37235], [37236, 37237, 37238], [37239, 37240, 37241], [37242, 37243, 37244], [37245, 37246, 37247], [37248, 37249, 37250], [37251, 37252, 37253], [37254, 37255, 37256], [37257, 37258, 37259], [37260, 37261, 37262], [37263, 37264, 37265], [37266, 37267, 37268], [37269, 37270, 37271], [37272, 37273, 37274], [37275, 37276, 37277], [37278, 37279, 37280], [37281, 37282, 37283], [37284, 37285, 37286], [37287, 37288, 37289], [37290, 37291, 37292], [37293, 37294, 37295], [37296, 37297, 37298], [37299, 37300, 37301], [37302, 37303, 37304], [37305, 37306, 37307], [37308, 37309, 37310], [37311, 37312, 37313], [37314, 37315, 37316], [37317, 37318, 37319], [37320, 37321, 37322], [37323, 37324, 37325], [37326, 37327, 37328], [37329, 37330, 37331], [37332, 37333, 37334], [37335, 37336, 37337], [37338, 37339, 37340], [37341, 37342, 37343], [37344, 37345, 37346], [37347, 37348, 37349], [37350, 37351, 37352], [37353, 37354, 37355], [37356, 37357, 37358], [37359, 37360, 37361], [37362, 37363, 37364], [37365, 37366, 37367], [37368, 37369, 37370], [37371, 37372, 37373], [37374, 37375, 37376], [37377, 37378, 37379], [37380, 37381, 37382], [37383, 37384, 37385], [37386, 37387, 37388], [37389, 37390, 37391], [37392, 37393, 37394], [37395, 37396, 37397], [37398, 37399, 37400], [37401, 37402, 37403], [37404, 37405, 37406], [37407, 37408, 37409], [37410, 37411, 37412], [37413, 37414, 37415], [37416, 37417, 37418], [37419, 37420, 37421], [37422, 37423, 37424], [37425, 37426, 37427], [37428, 37429, 37430], [37431, 37432, 37433], [37434, 37435, 37436], [37437, 37438, 37439], [37440, 37441, 37442], [37443, 37444, 37445], [37446, 37447, 37448], [37449, 37450, 37451], [37452, 37453, 37454], [37455, 37456, 37457], [37458, 37459, 37460], [37461, 37462, 37463], [37464, 37465, 37466], [37467, 37468, 37469], [37470, 37471, 37472], [37473, 37474, 37475], [37476, 37477, 37478], [37479, 37480, 37481], [37482, 37483, 37484], [37485, 37486, 37487], [37488, 37489, 37490], [37491, 37492, 37493], [37494, 37495, 37496], [37497, 37498, 37499], [37500, 37501, 37502], [37503, 37504, 37505], [37506, 37507, 37508], [37509, 37510, 37511], [37512, 37513, 37514], [37515, 37516, 37517], [37518, 37519, 37520], [37521, 37522, 37523], [37524, 37525, 37526], [37527, 37528, 37529], [37530, 37531, 37532], [37533, 37534, 37535], [37536, 37537, 37538], [37539, 37540, 37541], [37542, 37543, 37544], [37545, 37546, 37547], [37548, 37549, 37550], [37551, 37552, 37553], [37554, 37555, 37556], [37557, 37558, 37559], [37560, 37561, 37562], [37563, 37564, 37565], [37566, 37567, 37568], [37569, 37570, 37571], [37572, 37573, 37574], [37575, 37576, 37577], [37578, 37579, 37580], [37581, 37582, 37583], [37584, 37585, 37586], [37587, 37588, 37589], [37590, 37591, 37592], [37593, 37594, 37595], [37596, 37597, 37598], [37599, 37600, 37601], [37602, 37603, 37604], [37605, 37606, 37607], [37608, 37609, 37610], [37611, 37612, 37613], [37614, 37615, 37616], [37617, 37618, 37619], [37620, 37621, 37622], [37623, 37624, 37625], [37626, 37627, 37628], [37629, 37630, 37631], [37632, 37633, 37634], [37635, 37636, 37637], [37638, 37639, 37640], [37641, 37642, 37643], [37644, 37645, 37646], [37647, 37648, 37649], [37650, 37651, 37652], [37653, 37654, 37655], [37656, 37657, 37658], [37659, 37660, 37661], [37662, 37663, 37664], [37665, 37666, 37667], [37668, 37669, 37670], [37671, 37672, 37673], [37674, 37675, 37676], [37677, 37678, 37679], [37680, 37681, 37682], [37683, 37684, 37685], [37686, 37687, 37688], [37689, 37690, 37691], [37692, 37693, 37694], [37695, 37696, 37697], [37698, 37699, 37700], [37701, 37702, 37703], [37704, 37705, 37706], [37707, 37708, 37709], [37710, 37711, 37712], [37713, 37714, 37715], [37716, 37717, 37718], [37719, 37720, 37721], [37722, 37723, 37724], [37725, 37726, 37727], [37728, 37729, 37730], [37731, 37732, 37733], [37734, 37735, 37736], [37737, 37738, 37739], [37740, 37741, 37742], [37743, 37744, 37745], [37746, 37747, 37748], [37749, 37750, 37751], [37752, 37753, 37754], [37755, 37756, 37757], [37758, 37759, 37760], [37761, 37762, 37763], [37764, 37765, 37766], [37767, 37768, 37769], [37770, 37771, 37772], [37773, 37774, 37775], [37776, 37777, 37778], [37779, 37780, 37781], [37782, 37783, 37784], [37785, 37786, 37787], [37788, 37789, 37790], [37791, 37792, 37793], [37794, 37795, 37796], [37797, 37798, 37799], [37800, 37801, 37802], [37803, 37804, 37805], [37806, 37807, 37808], [37809, 37810, 37811], [37812, 37813, 37814], [37815, 37816, 37817], [37818, 37819, 37820], [37821, 37822, 37823], [37824, 37825, 37826], [37827, 37828, 37829], [37830, 37831, 37832], [37833, 37834, 37835], [37836, 37837, 37838], [37839, 37840, 37841], [37842, 37843, 37844], [37845, 37846, 37847], [37848, 37849, 37850], [37851, 37852, 37853], [37854, 37855, 37856], [37857, 37858, 37859], [37860, 37861, 37862], [37863, 37864, 37865], [37866, 37867, 37868], [37869, 37870, 37871], [37872, 37873, 37874], [37875, 37876, 37877], [37878, 37879, 37880], [37881, 37882, 37883], [37884, 37885, 37886], [37887, 37888, 37889], [37890, 37891, 37892], [37893, 37894, 37895], [37896, 37897, 37898], [37899, 37900, 37901], [37902, 37903, 37904], [37905, 37906, 37907], [37908, 37909, 37910], [37911, 37912, 37913], [37914, 37915, 37916], [37917, 37918, 37919], [37920, 37921, 37922], [37923, 37924, 37925], [37926, 37927, 37928], [37929, 37930, 37931], [37932, 37933, 37934], [37935, 37936, 37937], [37938, 37939, 37940], [37941, 37942, 37943], [37944, 37945, 37946], [37947, 37948, 37949], [37950, 37951, 37952], [37953, 37954, 37955], [37956, 37957, 37958], [37959, 37960, 37961], [37962, 37963, 37964], [37965, 37966, 37967], [37968, 37969, 37970], [37971, 37972, 37973], [37974, 37975, 37976], [37977, 37978, 37979], [37980, 37981, 37982], [37983, 37984, 37985], [37986, 37987, 37988], [37989, 37990, 37991], [37992, 37993, 37994], [37995, 37996, 37997], [37998, 37999, 38000], [38001, 38002, 38003], [38004, 38005, 38006], [38007, 38008, 38009], [38010, 38011, 38012], [38013, 38014, 38015], [38016, 38017, 38018], [38019, 38020, 38021], [38022, 38023, 38024], [38025, 38026, 38027], [38028, 38029, 38030], [38031, 38032, 38033], [38034, 38035, 38036], [38037, 38038, 38039], [38040, 38041, 38042], [38043, 38044, 38045], [38046, 38047, 38048], [38049, 38050, 38051], [38052, 38053, 38054], [38055, 38056, 38057], [38058, 38059, 38060], [38061, 38062, 38063], [38064, 38065, 38066], [38067, 38068, 38069], [38070, 38071, 38072], [38073, 38074, 38075], [38076, 38077, 38078], [38079, 38080, 38081], [38082, 38083, 38084], [38085, 38086, 38087], [38088, 38089, 38090], [38091, 38092, 38093], [38094, 38095, 38096], [38097, 38098, 38099], [38100, 38101, 38102], [38103, 38104, 38105], [38106, 38107, 38108], [38109, 38110, 38111], [38112, 38113, 38114], [38115, 38116, 38117], [38118, 38119, 38120], [38121, 38122, 38123], [38124, 38125, 38126], [38127, 38128, 38129], [38130, 38131, 38132], [38133, 38134, 38135], [38136, 38137, 38138], [38139, 38140, 38141], [38142, 38143, 38144], [38145, 38146, 38147], [38148, 38149, 38150], [38151, 38152, 38153], [38154, 38155, 38156], [38157, 38158, 38159], [38160, 38161, 38162], [38163, 38164, 38165], [38166, 38167, 38168], [38169, 38170, 38171], [38172, 38173, 38174], [38175, 38176, 38177], [38178, 38179, 38180], [38181, 38182, 38183], [38184, 38185, 38186], [38187, 38188, 38189], [38190, 38191, 38192], [38193, 38194, 38195], [38196, 38197, 38198], [38199, 38200, 38201], [38202, 38203, 38204], [38205, 38206, 38207], [38208, 38209, 38210], [38211, 38212, 38213], [38214, 38215, 38216], [38217, 38218, 38219], [38220, 38221, 38222], [38223, 38224, 38225], [38226, 38227, 38228], [38229, 38230, 38231], [38232, 38233, 38234], [38235, 38236, 38237], [38238, 38239, 38240], [38241, 38242, 38243], [38244, 38245, 38246], [38247, 38248, 38249], [38250, 38251, 38252], [38253, 38254, 38255], [38256, 38257, 38258], [38259, 38260, 38261], [38262, 38263, 38264], [38265, 38266, 38267], [38268, 38269, 38270], [38271, 38272, 38273], [38274, 38275, 38276], [38277, 38278, 38279], [38280, 38281, 38282], [38283, 38284, 38285], [38286, 38287, 38288], [38289, 38290, 38291], [38292, 38293, 38294], [38295, 38296, 38297], [38298, 38299, 38300], [38301, 38302, 38303], [38304, 38305, 38306], [38307, 38308, 38309], [38310, 38311, 38312], [38313, 38314, 38315], [38316, 38317, 38318], [38319, 38320, 38321], [38322, 38323, 38324], [38325, 38326, 38327], [38328, 38329, 38330], [38331, 38332, 38333], [38334, 38335, 38336], [38337, 38338, 38339], [38340, 38341, 38342], [38343, 38344, 38345], [38346, 38347, 38348], [38349, 38350, 38351], [38352, 38353, 38354], [38355, 38356, 38357], [38358, 38359, 38360], [38361, 38362, 38363], [38364, 38365, 38366], [38367, 38368, 38369], [38370, 38371, 38372], [38373, 38374, 38375], [38376, 38377, 38378], [38379, 38380, 38381], [38382, 38383, 38384], [38385, 38386, 38387], [38388, 38389, 38390], [38391, 38392, 38393], [38394, 38395, 38396], [38397, 38398, 38399], [38400, 38401, 38402], [38403, 38404, 38405], [38406, 38407, 38408], [38409, 38410, 38411], [38412, 38413, 38414], [38415, 38416, 38417], [38418, 38419, 38420], [38421, 38422, 38423], [38424, 38425, 38426], [38427, 38428, 38429], [38430, 38431, 38432], [38433, 38434, 38435], [38436, 38437, 38438], [38439, 38440, 38441], [38442, 38443, 38444], [38445, 38446, 38447], [38448, 38449, 38450], [38451, 38452, 38453], [38454, 38455, 38456], [38457, 38458, 38459], [38460, 38461, 38462], [38463, 38464, 38465], [38466, 38467, 38468], [38469, 38470, 38471], [38472, 38473, 38474], [38475, 38476, 38477], [38478, 38479, 38480], [38481, 38482, 38483], [38484, 38485, 38486], [38487, 38488, 38489], [38490, 38491, 38492], [38493, 38494, 38495], [38496, 38497, 38498], [38499, 38500, 38501], [38502, 38503, 38504], [38505, 38506, 38507], [38508, 38509, 38510], [38511, 38512, 38513], [38514, 38515, 38516], [38517, 38518, 38519], [38520, 38521, 38522], [38523, 38524, 38525], [38526, 38527, 38528], [38529, 38530, 38531], [38532, 38533, 38534], [38535, 38536, 38537], [38538, 38539, 38540], [38541, 38542, 38543], [38544, 38545, 38546], [38547, 38548, 38549], [38550, 38551, 38552], [38553, 38554, 38555], [38556, 38557, 38558], [38559, 38560, 38561], [38562, 38563, 38564], [38565, 38566, 38567], [38568, 38569, 38570], [38571, 38572, 38573], [38574, 38575, 38576], [38577, 38578, 38579], [38580, 38581, 38582], [38583, 38584, 38585], [38586, 38587, 38588], [38589, 38590, 38591], [38592, 38593, 38594], [38595, 38596, 38597], [38598, 38599, 38600], [38601, 38602, 38603], [38604, 38605, 38606], [38607, 38608, 38609], [38610, 38611, 38612], [38613, 38614, 38615], [38616, 38617, 38618], [38619, 38620, 38621], [38622, 38623, 38624], [38625, 38626, 38627], [38628, 38629, 38630], [38631, 38632, 38633], [38634, 38635, 38636], [38637, 38638, 38639], [38640, 38641, 38642], [38643, 38644, 38645], [38646, 38647, 38648], [38649, 38650, 38651], [38652, 38653, 38654], [38655, 38656, 38657], [38658, 38659, 38660], [38661, 38662, 38663], [38664, 38665, 38666], [38667, 38668, 38669], [38670, 38671, 38672], [38673, 38674, 38675], [38676, 38677, 38678], [38679, 38680, 38681], [38682, 38683, 38684], [38685, 38686, 38687], [38688, 38689, 38690], [38691, 38692, 38693], [38694, 38695, 38696], [38697, 38698, 38699], [38700, 38701, 38702], [38703, 38704, 38705], [38706, 38707, 38708], [38709, 38710, 38711], [38712, 38713, 38714], [38715, 38716, 38717], [38718, 38719, 38720], [38721, 38722, 38723], [38724, 38725, 38726], [38727, 38728, 38729], [38730, 38731, 38732], [38733, 38734, 38735], [38736, 38737, 38738], [38739, 38740, 38741], [38742, 38743, 38744], [38745, 38746, 38747], [38748, 38749, 38750], [38751, 38752, 38753], [38754, 38755, 38756], [38757, 38758, 38759], [38760, 38761, 38762], [38763, 38764, 38765], [38766, 38767, 38768], [38769, 38770, 38771], [38772, 38773, 38774], [38775, 38776, 38777], [38778, 38779, 38780], [38781, 38782, 38783], [38784, 38785, 38786], [38787, 38788, 38789], [38790, 38791, 38792], [38793, 38794, 38795], [38796, 38797, 38798], [38799, 38800, 38801], [38802, 38803, 38804], [38805, 38806, 38807], [38808, 38809, 38810], [38811, 38812, 38813], [38814, 38815, 38816], [38817, 38818, 38819], [38820, 38821, 38822], [38823, 38824, 38825], [38826, 38827, 38828], [38829, 38830, 38831], [38832, 38833, 38834], [38835, 38836, 38837], [38838, 38839, 38840], [38841, 38842, 38843], [38844, 38845, 38846], [38847, 38848, 38849], [38850, 38851, 38852], [38853, 38854, 38855], [38856, 38857, 38858], [38859, 38860, 38861], [38862, 38863, 38864], [38865, 38866, 38867], [38868, 38869, 38870], [38871, 38872, 38873], [38874, 38875, 38876], [38877, 38878, 38879], [38880, 38881, 38882], [38883, 38884, 38885], [38886, 38887, 38888], [38889, 38890, 38891], [38892, 38893, 38894], [38895, 38896, 38897], [38898, 38899, 38900], [38901, 38902, 38903], [38904, 38905, 38906], [38907, 38908, 38909], [38910, 38911, 38912], [38913, 38914, 38915], [38916, 38917, 38918], [38919, 38920, 38921], [38922, 38923, 38924], [38925, 38926, 38927], [38928, 38929, 38930], [38931, 38932, 38933], [38934, 38935, 38936], [38937, 38938, 38939], [38940, 38941, 38942], [38943, 38944, 38945], [38946, 38947, 38948], [38949, 38950, 38951], [38952, 38953, 38954], [38955, 38956, 38957], [38958, 38959, 38960], [38961, 38962, 38963], [38964, 38965, 38966], [38967, 38968, 38969], [38970, 38971, 38972], [38973, 38974, 38975], [38976, 38977, 38978], [38979, 38980, 38981], [38982, 38983, 38984], [38985, 38986, 38987], [38988, 38989, 38990], [38991, 38992, 38993], [38994, 38995, 38996], [38997, 38998, 38999], [39000, 39001, 39002], [39003, 39004, 39005], [39006, 39007, 39008], [39009, 39010, 39011], [39012, 39013, 39014], [39015, 39016, 39017], [39018, 39019, 39020], [39021, 39022, 39023], [39024, 39025, 39026], [39027, 39028, 39029], [39030, 39031, 39032], [39033, 39034, 39035], [39036, 39037, 39038], [39039, 39040, 39041], [39042, 39043, 39044], [39045, 39046, 39047], [39048, 39049, 39050], [39051, 39052, 39053], [39054, 39055, 39056], [39057, 39058, 39059], [39060, 39061, 39062], [39063, 39064, 39065], [39066, 39067, 39068], [39069, 39070, 39071], [39072, 39073, 39074], [39075, 39076, 39077], [39078, 39079, 39080], [39081, 39082, 39083], [39084, 39085, 39086], [39087, 39088, 39089], [39090, 39091, 39092], [39093, 39094, 39095], [39096, 39097, 39098], [39099, 39100, 39101], [39102, 39103, 39104], [39105, 39106, 39107], [39108, 39109, 39110], [39111, 39112, 39113], [39114, 39115, 39116], [39117, 39118, 39119], [39120, 39121, 39122], [39123, 39124, 39125], [39126, 39127, 39128], [39129, 39130, 39131], [39132, 39133, 39134], [39135, 39136, 39137], [39138, 39139, 39140], [39141, 39142, 39143], [39144, 39145, 39146], [39147, 39148, 39149], [39150, 39151, 39152], [39153, 39154, 39155], [39156, 39157, 39158], [39159, 39160, 39161], [39162, 39163, 39164], [39165, 39166, 39167], [39168, 39169, 39170], [39171, 39172, 39173], [39174, 39175, 39176], [39177, 39178, 39179], [39180, 39181, 39182], [39183, 39184, 39185], [39186, 39187, 39188], [39189, 39190, 39191], [39192, 39193, 39194], [39195, 39196, 39197], [39198, 39199, 39200], [39201, 39202, 39203], [39204, 39205, 39206], [39207, 39208, 39209], [39210, 39211, 39212], [39213, 39214, 39215], [39216, 39217, 39218], [39219, 39220, 39221], [39222, 39223, 39224], [39225, 39226, 39227], [39228, 39229, 39230], [39231, 39232, 39233], [39234, 39235, 39236], [39237, 39238, 39239], [39240, 39241, 39242], [39243, 39244, 39245], [39246, 39247, 39248], [39249, 39250, 39251], [39252, 39253, 39254], [39255, 39256, 39257], [39258, 39259, 39260], [39261, 39262, 39263], [39264, 39265, 39266], [39267, 39268, 39269], [39270, 39271, 39272], [39273, 39274, 39275], [39276, 39277, 39278], [39279, 39280, 39281], [39282, 39283, 39284], [39285, 39286, 39287], [39288, 39289, 39290], [39291, 39292, 39293], [39294, 39295, 39296], [39297, 39298, 39299], [39300, 39301, 39302], [39303, 39304, 39305], [39306, 39307, 39308], [39309, 39310, 39311], [39312, 39313, 39314], [39315, 39316, 39317], [39318, 39319, 39320], [39321, 39322, 39323], [39324, 39325, 39326], [39327, 39328, 39329], [39330, 39331, 39332], [39333, 39334, 39335], [39336, 39337, 39338], [39339, 39340, 39341], [39342, 39343, 39344], [39345, 39346, 39347], [39348, 39349, 39350], [39351, 39352, 39353], [39354, 39355, 39356], [39357, 39358, 39359], [39360, 39361, 39362], [39363, 39364, 39365], [39366, 39367, 39368], [39369, 39370, 39371], [39372, 39373, 39374], [39375, 39376, 39377], [39378, 39379, 39380], [39381, 39382, 39383], [39384, 39385, 39386], [39387, 39388, 39389], [39390, 39391, 39392], [39393, 39394, 39395], [39396, 39397, 39398], [39399, 39400, 39401], [39402, 39403, 39404], [39405, 39406, 39407], [39408, 39409, 39410], [39411, 39412, 39413], [39414, 39415, 39416], [39417, 39418, 39419], [39420, 39421, 39422], [39423, 39424, 39425], [39426, 39427, 39428], [39429, 39430, 39431], [39432, 39433, 39434], [39435, 39436, 39437], [39438, 39439, 39440], [39441, 39442, 39443], [39444, 39445, 39446], [39447, 39448, 39449], [39450, 39451, 39452], [39453, 39454, 39455], [39456, 39457, 39458], [39459, 39460, 39461], [39462, 39463, 39464], [39465, 39466, 39467], [39468, 39469, 39470], [39471, 39472, 39473], [39474, 39475, 39476], [39477, 39478, 39479], [39480, 39481, 39482], [39483, 39484, 39485], [39486, 39487, 39488], [39489, 39490, 39491], [39492, 39493, 39494], [39495, 39496, 39497], [39498, 39499, 39500], [39501, 39502, 39503], [39504, 39505, 39506], [39507, 39508, 39509], [39510, 39511, 39512], [39513, 39514, 39515], [39516, 39517, 39518], [39519, 39520, 39521], [39522, 39523, 39524], [39525, 39526, 39527], [39528, 39529, 39530], [39531, 39532, 39533], [39534, 39535, 39536], [39537, 39538, 39539], [39540, 39541, 39542], [39543, 39544, 39545], [39546, 39547, 39548], [39549, 39550, 39551], [39552, 39553, 39554], [39555, 39556, 39557], [39558, 39559, 39560], [39561, 39562, 39563], [39564, 39565, 39566], [39567, 39568, 39569], [39570, 39571, 39572], [39573, 39574, 39575], [39576, 39577, 39578], [39579, 39580, 39581], [39582, 39583, 39584], [39585, 39586, 39587], [39588, 39589, 39590], [39591, 39592, 39593], [39594, 39595, 39596], [39597, 39598, 39599], [39600, 39601, 39602], [39603, 39604, 39605], [39606, 39607, 39608], [39609, 39610, 39611], [39612, 39613, 39614], [39615, 39616, 39617], [39618, 39619, 39620], [39621, 39622, 39623], [39624, 39625, 39626], [39627, 39628, 39629], [39630, 39631, 39632], [39633, 39634, 39635], [39636, 39637, 39638], [39639, 39640, 39641], [39642, 39643, 39644], [39645, 39646, 39647], [39648, 39649, 39650], [39651, 39652, 39653], [39654, 39655, 39656], [39657, 39658, 39659], [39660, 39661, 39662], [39663, 39664, 39665], [39666, 39667, 39668], [39669, 39670, 39671], [39672, 39673, 39674], [39675, 39676, 39677], [39678, 39679, 39680], [39681, 39682, 39683], [39684, 39685, 39686], [39687, 39688, 39689], [39690, 39691, 39692], [39693, 39694, 39695], [39696, 39697, 39698], [39699, 39700, 39701], [39702, 39703, 39704], [39705, 39706, 39707], [39708, 39709, 39710], [39711, 39712, 39713], [39714, 39715, 39716], [39717, 39718, 39719], [39720, 39721, 39722], [39723, 39724, 39725], [39726, 39727, 39728], [39729, 39730, 39731], [39732, 39733, 39734], [39735, 39736, 39737], [39738, 39739, 39740], [39741, 39742, 39743], [39744, 39745, 39746], [39747, 39748, 39749], [39750, 39751, 39752], [39753, 39754, 39755], [39756, 39757, 39758], [39759, 39760, 39761], [39762, 39763, 39764], [39765, 39766, 39767], [39768, 39769, 39770], [39771, 39772, 39773], [39774, 39775, 39776], [39777, 39778, 39779], [39780, 39781, 39782], [39783, 39784, 39785], [39786, 39787, 39788], [39789, 39790, 39791], [39792, 39793, 39794], [39795, 39796, 39797], [39798, 39799, 39800], [39801, 39802, 39803], [39804, 39805, 39806], [39807, 39808, 39809], [39810, 39811, 39812], [39813, 39814, 39815], [39816, 39817, 39818], [39819, 39820, 39821], [39822, 39823, 39824], [39825, 39826, 39827], [39828, 39829, 39830], [39831, 39832, 39833], [39834, 39835, 39836], [39837, 39838, 39839], [39840, 39841, 39842], [39843, 39844, 39845], [39846, 39847, 39848], [39849, 39850, 39851], [39852, 39853, 39854], [39855, 39856, 39857], [39858, 39859, 39860], [39861, 39862, 39863], [39864, 39865, 39866], [39867, 39868, 39869], [39870, 39871, 39872], [39873, 39874, 39875], [39876, 39877, 39878], [39879, 39880, 39881], [39882, 39883, 39884], [39885, 39886, 39887], [39888, 39889, 39890], [39891, 39892, 39893], [39894, 39895, 39896], [39897, 39898, 39899], [39900, 39901, 39902], [39903, 39904, 39905], [39906, 39907, 39908], [39909, 39910, 39911], [39912, 39913, 39914], [39915, 39916, 39917], [39918, 39919, 39920], [39921, 39922, 39923], [39924, 39925, 39926], [39927, 39928, 39929], [39930, 39931, 39932], [39933, 39934, 39935], [39936, 39937, 39938], [39939, 39940, 39941], [39942, 39943, 39944], [39945, 39946, 39947], [39948, 39949, 39950], [39951, 39952, 39953], [39954, 39955, 39956], [39957, 39958, 39959], [39960, 39961, 39962], [39963, 39964, 39965], [39966, 39967, 39968], [39969, 39970, 39971], [39972, 39973, 39974], [39975, 39976, 39977], [39978, 39979, 39980], [39981, 39982, 39983], [39984, 39985, 39986], [39987, 39988, 39989], [39990, 39991, 39992], [39993, 39994, 39995], [39996, 39997, 39998], [39999, 40000, 40001], [40002, 40003, 40004], [40005, 40006, 40007], [40008, 40009, 40010], [40011, 40012, 40013], [40014, 40015, 40016], [40017, 40018, 40019], [40020, 40021, 40022], [40023, 40024, 40025], [40026, 40027, 40028], [40029, 40030, 40031], [40032, 40033, 40034], [40035, 40036, 40037], [40038, 40039, 40040], [40041, 40042, 40043], [40044, 40045, 40046], [40047, 40048, 40049], [40050, 40051, 40052], [40053, 40054, 40055], [40056, 40057, 40058], [40059, 40060, 40061], [40062, 40063, 40064], [40065, 40066, 40067], [40068, 40069, 40070], [40071, 40072, 40073], [40074, 40075, 40076], [40077, 40078, 40079], [40080, 40081, 40082], [40083, 40084, 40085], [40086, 40087, 40088], [40089, 40090, 40091], [40092, 40093, 40094], [40095, 40096, 40097], [40098, 40099, 40100], [40101, 40102, 40103], [40104, 40105, 40106], [40107, 40108, 40109], [40110, 40111, 40112], [40113, 40114, 40115], [40116, 40117, 40118], [40119, 40120, 40121], [40122, 40123, 40124], [40125, 40126, 40127], [40128, 40129, 40130], [40131, 40132, 40133], [40134, 40135, 40136], [40137, 40138, 40139], [40140, 40141, 40142], [40143, 40144, 40145], [40146, 40147, 40148], [40149, 40150, 40151], [40152, 40153, 40154], [40155, 40156, 40157], [40158, 40159, 40160], [40161, 40162, 40163], [40164, 40165, 40166], [40167, 40168, 40169], [40170, 40171, 40172], [40173, 40174, 40175], [40176, 40177, 40178], [40179, 40180, 40181], [40182, 40183, 40184], [40185, 40186, 40187], [40188, 40189, 40190], [40191, 40192, 40193], [40194, 40195, 40196], [40197, 40198, 40199], [40200, 40201, 40202], [40203, 40204, 40205], [40206, 40207, 40208], [40209, 40210, 40211], [40212, 40213, 40214], [40215, 40216, 40217], [40218, 40219, 40220], [40221, 40222, 40223], [40224, 40225, 40226], [40227, 40228, 40229], [40230, 40231, 40232], [40233, 40234, 40235], [40236, 40237, 40238], [40239, 40240, 40241], [40242, 40243, 40244], [40245, 40246, 40247], [40248, 40249, 40250], [40251, 40252, 40253], [40254, 40255, 40256], [40257, 40258, 40259], [40260, 40261, 40262], [40263, 40264, 40265], [40266, 40267, 40268], [40269, 40270, 40271], [40272, 40273, 40274], [40275, 40276, 40277], [40278, 40279, 40280], [40281, 40282, 40283], [40284, 40285, 40286], [40287, 40288, 40289], [40290, 40291, 40292], [40293, 40294, 40295], [40296, 40297, 40298], [40299, 40300, 40301], [40302, 40303, 40304], [40305, 40306, 40307], [40308, 40309, 40310], [40311, 40312, 40313], [40314, 40315, 40316], [40317, 40318, 40319], [40320, 40321, 40322], [40323, 40324, 40325], [40326, 40327, 40328], [40329, 40330, 40331], [40332, 40333, 40334], [40335, 40336, 40337], [40338, 40339, 40340], [40341, 40342, 40343], [40344, 40345, 40346], [40347, 40348, 40349], [40350, 40351, 40352], [40353, 40354, 40355], [40356, 40357, 40358], [40359, 40360, 40361], [40362, 40363, 40364], [40365, 40366, 40367], [40368, 40369, 40370], [40371, 40372, 40373], [40374, 40375, 40376], [40377, 40378, 40379], [40380, 40381, 40382], [40383, 40384, 40385], [40386, 40387, 40388], [40389, 40390, 40391], [40392, 40393, 40394], [40395, 40396, 40397], [40398, 40399, 40400], [40401, 40402, 40403], [40404, 40405, 40406], [40407, 40408, 40409], [40410, 40411, 40412], [40413, 40414, 40415], [40416, 40417, 40418], [40419, 40420, 40421], [40422, 40423, 40424], [40425, 40426, 40427], [40428, 40429, 40430], [40431, 40432, 40433], [40434, 40435, 40436], [40437, 40438, 40439], [40440, 40441, 40442], [40443, 40444, 40445], [40446, 40447, 40448], [40449, 40450, 40451], [40452, 40453, 40454], [40455, 40456, 40457], [40458, 40459, 40460], [40461, 40462, 40463], [40464, 40465, 40466], [40467, 40468, 40469], [40470, 40471, 40472], [40473, 40474, 40475], [40476, 40477, 40478], [40479, 40480, 40481], [40482, 40483, 40484], [40485, 40486, 40487], [40488, 40489, 40490], [40491, 40492, 40493], [40494, 40495, 40496], [40497, 40498, 40499], [40500, 40501, 40502], [40503, 40504, 40505], [40506, 40507, 40508], [40509, 40510, 40511], [40512, 40513, 40514], [40515, 40516, 40517], [40518, 40519, 40520], [40521, 40522, 40523], [40524, 40525, 40526], [40527, 40528, 40529], [40530, 40531, 40532], [40533, 40534, 40535], [40536, 40537, 40538], [40539, 40540, 40541], [40542, 40543, 40544], [40545, 40546, 40547], [40548, 40549, 40550], [40551, 40552, 40553], [40554, 40555, 40556], [40557, 40558, 40559], [40560, 40561, 40562], [40563, 40564, 40565], [40566, 40567, 40568], [40569, 40570, 40571], [40572, 40573, 40574], [40575, 40576, 40577], [40578, 40579, 40580], [40581, 40582, 40583], [40584, 40585, 40586], [40587, 40588, 40589], [40590, 40591, 40592], [40593, 40594, 40595], [40596, 40597, 40598], [40599, 40600, 40601], [40602, 40603, 40604], [40605, 40606, 40607], [40608, 40609, 40610], [40611, 40612, 40613], [40614, 40615, 40616], [40617, 40618, 40619], [40620, 40621, 40622], [40623, 40624, 40625], [40626, 40627, 40628], [40629, 40630, 40631], [40632, 40633, 40634], [40635, 40636, 40637], [40638, 40639, 40640], [40641, 40642, 40643], [40644, 40645, 40646], [40647, 40648, 40649], [40650, 40651, 40652], [40653, 40654, 40655], [40656, 40657, 40658], [40659, 40660, 40661], [40662, 40663, 40664], [40665, 40666, 40667], [40668, 40669, 40670], [40671, 40672, 40673], [40674, 40675, 40676], [40677, 40678, 40679], [40680, 40681, 40682], [40683, 40684, 40685], [40686, 40687, 40688], [40689, 40690, 40691], [40692, 40693, 40694], [40695, 40696, 40697], [40698, 40699, 40700], [40701, 40702, 40703], [40704, 40705, 40706], [40707, 40708, 40709], [40710, 40711, 40712], [40713, 40714, 40715], [40716, 40717, 40718], [40719, 40720, 40721], [40722, 40723, 40724], [40725, 40726, 40727], [40728, 40729, 40730], [40731, 40732, 40733], [40734, 40735, 40736], [40737, 40738, 40739], [40740, 40741, 40742], [40743, 40744, 40745], [40746, 40747, 40748], [40749, 40750, 40751], [40752, 40753, 40754], [40755, 40756, 40757], [40758, 40759, 40760], [40761, 40762, 40763], [40764, 40765, 40766], [40767, 40768, 40769], [40770, 40771, 40772], [40773, 40774, 40775], [40776, 40777, 40778], [40779, 40780, 40781], [40782, 40783, 40784], [40785, 40786, 40787], [40788, 40789, 40790], [40791, 40792, 40793], [40794, 40795, 40796], [40797, 40798, 40799], [40800, 40801, 40802], [40803, 40804, 40805], [40806, 40807, 40808], [40809, 40810, 40811], [40812, 40813, 40814], [40815, 40816, 40817], [40818, 40819, 40820], [40821, 40822, 40823], [40824, 40825, 40826], [40827, 40828, 40829], [40830, 40831, 40832], [40833, 40834, 40835], [40836, 40837, 40838], [40839, 40840, 40841], [40842, 40843, 40844], [40845, 40846, 40847], [40848, 40849, 40850], [40851, 40852, 40853], [40854, 40855, 40856], [40857, 40858, 40859], [40860, 40861, 40862], [40863, 40864, 40865], [40866, 40867, 40868], [40869, 40870, 40871], [40872, 40873, 40874], [40875, 40876, 40877], [40878, 40879, 40880], [40881, 40882, 40883], [40884, 40885, 40886], [40887, 40888, 40889], [40890, 40891, 40892], [40893, 40894, 40895], [40896, 40897, 40898], [40899, 40900, 40901], [40902, 40903, 40904], [40905, 40906, 40907], [40908, 40909, 40910], [40911, 40912, 40913], [40914, 40915, 40916], [40917, 40918, 40919], [40920, 40921, 40922], [40923, 40924, 40925], [40926, 40927, 40928], [40929, 40930, 40931], [40932, 40933, 40934], [40935, 40936, 40937], [40938, 40939, 40940], [40941, 40942, 40943], [40944, 40945, 40946], [40947, 40948, 40949], [40950, 40951, 40952], [40953, 40954, 40955], [40956, 40957, 40958], [40959, 40960, 40961], [40962, 40963, 40964], [40965, 40966, 40967], [40968, 40969, 40970], [40971, 40972, 40973], [40974, 40975, 40976], [40977, 40978, 40979], [40980, 40981, 40982], [40983, 40984, 40985], [40986, 40987, 40988], [40989, 40990, 40991], [40992, 40993, 40994], [40995, 40996, 40997], [40998, 40999, 41000], [41001, 41002, 41003], [41004, 41005, 41006], [41007, 41008, 41009], [41010, 41011, 41012], [41013, 41014, 41015], [41016, 41017, 41018], [41019, 41020, 41021], [41022, 41023, 41024], [41025, 41026, 41027], [41028, 41029, 41030], [41031, 41032, 41033], [41034, 41035, 41036], [41037, 41038, 41039], [41040, 41041, 41042], [41043, 41044, 41045], [41046, 41047, 41048], [41049, 41050, 41051], [41052, 41053, 41054], [41055, 41056, 41057], [41058, 41059, 41060], [41061, 41062, 41063], [41064, 41065, 41066], [41067, 41068, 41069], [41070, 41071, 41072], [41073, 41074, 41075], [41076, 41077, 41078], [41079, 41080, 41081], [41082, 41083, 41084], [41085, 41086, 41087], [41088, 41089, 41090], [41091, 41092, 41093], [41094, 41095, 41096], [41097, 41098, 41099], [41100, 41101, 41102], [41103, 41104, 41105], [41106, 41107, 41108], [41109, 41110, 41111], [41112, 41113, 41114], [41115, 41116, 41117], [41118, 41119, 41120], [41121, 41122, 41123], [41124, 41125, 41126], [41127, 41128, 41129], [41130, 41131, 41132], [41133, 41134, 41135], [41136, 41137, 41138], [41139, 41140, 41141], [41142, 41143, 41144], [41145, 41146, 41147], [41148, 41149, 41150], [41151, 41152, 41153], [41154, 41155, 41156], [41157, 41158, 41159], [41160, 41161, 41162], [41163, 41164, 41165], [41166, 41167, 41168], [41169, 41170, 41171], [41172, 41173, 41174], [41175, 41176, 41177], [41178, 41179, 41180], [41181, 41182, 41183], [41184, 41185, 41186], [41187, 41188, 41189], [41190, 41191, 41192], [41193, 41194, 41195], [41196, 41197, 41198], [41199, 41200, 41201], [41202, 41203, 41204], [41205, 41206, 41207], [41208, 41209, 41210], [41211, 41212, 41213], [41214, 41215, 41216], [41217, 41218, 41219], [41220, 41221, 41222], [41223, 41224, 41225], [41226, 41227, 41228], [41229, 41230, 41231], [41232, 41233, 41234], [41235, 41236, 41237], [41238, 41239, 41240], [41241, 41242, 41243], [41244, 41245, 41246], [41247, 41248, 41249], [41250, 41251, 41252], [41253, 41254, 41255], [41256, 41257, 41258], [41259, 41260, 41261], [41262, 41263, 41264], [41265, 41266, 41267], [41268, 41269, 41270], [41271, 41272, 41273], [41274, 41275, 41276], [41277, 41278, 41279], [41280, 41281, 41282], [41283, 41284, 41285], [41286, 41287, 41288], [41289, 41290, 41291], [41292, 41293, 41294], [41295, 41296, 41297], [41298, 41299, 41300], [41301, 41302, 41303], [41304, 41305, 41306], [41307, 41308, 41309], [41310, 41311, 41312], [41313, 41314, 41315], [41316, 41317, 41318], [41319, 41320, 41321], [41322, 41323, 41324], [41325, 41326, 41327], [41328, 41329, 41330], [41331, 41332, 41333], [41334, 41335, 41336], [41337, 41338, 41339], [41340, 41341, 41342], [41343, 41344, 41345], [41346, 41347, 41348], [41349, 41350, 41351], [41352, 41353, 41354], [41355, 41356, 41357], [41358, 41359, 41360], [41361, 41362, 41363], [41364, 41365, 41366], [41367, 41368, 41369], [41370, 41371, 41372], [41373, 41374, 41375], [41376, 41377, 41378], [41379, 41380, 41381], [41382, 41383, 41384], [41385, 41386, 41387], [41388, 41389, 41390], [41391, 41392, 41393], [41394, 41395, 41396], [41397, 41398, 41399], [41400, 41401, 41402], [41403, 41404, 41405], [41406, 41407, 41408], [41409, 41410, 41411], [41412, 41413, 41414], [41415, 41416, 41417], [41418, 41419, 41420], [41421, 41422, 41423], [41424, 41425, 41426], [41427, 41428, 41429], [41430, 41431, 41432], [41433, 41434, 41435], [41436, 41437, 41438], [41439, 41440, 41441], [41442, 41443, 41444], [41445, 41446, 41447], [41448, 41449, 41450], [41451, 41452, 41453], [41454, 41455, 41456], [41457, 41458, 41459], [41460, 41461, 41462], [41463, 41464, 41465], [41466, 41467, 41468], [41469, 41470, 41471], [41472, 41473, 41474], [41475, 41476, 41477], [41478, 41479, 41480], [41481, 41482, 41483], [41484, 41485, 41486], [41487, 41488, 41489], [41490, 41491, 41492], [41493, 41494, 41495], [41496, 41497, 41498], [41499, 41500, 41501], [41502, 41503, 41504], [41505, 41506, 41507], [41508, 41509, 41510], [41511, 41512, 41513], [41514, 41515, 41516], [41517, 41518, 41519], [41520, 41521, 41522], [41523, 41524, 41525], [41526, 41527, 41528], [41529, 41530, 41531], [41532, 41533, 41534], [41535, 41536, 41537], [41538, 41539, 41540], [41541, 41542, 41543], [41544, 41545, 41546], [41547, 41548, 41549], [41550, 41551, 41552], [41553, 41554, 41555], [41556, 41557, 41558], [41559, 41560, 41561], [41562, 41563, 41564], [41565, 41566, 41567], [41568, 41569, 41570], [41571, 41572, 41573], [41574, 41575, 41576], [41577, 41578, 41579], [41580, 41581, 41582], [41583, 41584, 41585], [41586, 41587, 41588], [41589, 41590, 41591], [41592, 41593, 41594], [41595, 41596, 41597], [41598, 41599, 41600], [41601, 41602, 41603], [41604, 41605, 41606], [41607, 41608, 41609], [41610, 41611, 41612], [41613, 41614, 41615], [41616, 41617, 41618], [41619, 41620, 41621], [41622, 41623, 41624], [41625, 41626, 41627], [41628, 41629, 41630], [41631, 41632, 41633], [41634, 41635, 41636], [41637, 41638, 41639], [41640, 41641, 41642], [41643, 41644, 41645], [41646, 41647, 41648], [41649, 41650, 41651], [41652, 41653, 41654], [41655, 41656, 41657], [41658, 41659, 41660], [41661, 41662, 41663], [41664, 41665, 41666], [41667, 41668, 41669], [41670, 41671, 41672], [41673, 41674, 41675], [41676, 41677, 41678], [41679, 41680, 41681], [41682, 41683, 41684], [41685, 41686, 41687], [41688, 41689, 41690], [41691, 41692, 41693], [41694, 41695, 41696], [41697, 41698, 41699], [41700, 41701, 41702], [41703, 41704, 41705], [41706, 41707, 41708], [41709, 41710, 41711], [41712, 41713, 41714], [41715, 41716, 41717], [41718, 41719, 41720], [41721, 41722, 41723], [41724, 41725, 41726], [41727, 41728, 41729], [41730, 41731, 41732], [41733, 41734, 41735], [41736, 41737, 41738], [41739, 41740, 41741], [41742, 41743, 41744], [41745, 41746, 41747], [41748, 41749, 41750], [41751, 41752, 41753], [41754, 41755, 41756], [41757, 41758, 41759], [41760, 41761, 41762], [41763, 41764, 41765], [41766, 41767, 41768], [41769, 41770, 41771], [41772, 41773, 41774], [41775, 41776, 41777], [41778, 41779, 41780], [41781, 41782, 41783], [41784, 41785, 41786], [41787, 41788, 41789], [41790, 41791, 41792], [41793, 41794, 41795], [41796, 41797, 41798], [41799, 41800, 41801], [41802, 41803, 41804], [41805, 41806, 41807], [41808, 41809, 41810], [41811, 41812, 41813], [41814, 41815, 41816], [41817, 41818, 41819], [41820, 41821, 41822], [41823, 41824, 41825], [41826, 41827, 41828], [41829, 41830, 41831], [41832, 41833, 41834], [41835, 41836, 41837], [41838, 41839, 41840], [41841, 41842, 41843], [41844, 41845, 41846], [41847, 41848, 41849], [41850, 41851, 41852], [41853, 41854, 41855], [41856, 41857, 41858], [41859, 41860, 41861], [41862, 41863, 41864], [41865, 41866, 41867], [41868, 41869, 41870], [41871, 41872, 41873], [41874, 41875, 41876], [41877, 41878, 41879], [41880, 41881, 41882], [41883, 41884, 41885], [41886, 41887, 41888], [41889, 41890, 41891], [41892, 41893, 41894], [41895, 41896, 41897], [41898, 41899, 41900], [41901, 41902, 41903], [41904, 41905, 41906], [41907, 41908, 41909], [41910, 41911, 41912], [41913, 41914, 41915], [41916, 41917, 41918], [41919, 41920, 41921], [41922, 41923, 41924], [41925, 41926, 41927], [41928, 41929, 41930], [41931, 41932, 41933], [41934, 41935, 41936], [41937, 41938, 41939], [41940, 41941, 41942], [41943, 41944, 41945], [41946, 41947, 41948], [41949, 41950, 41951], [41952, 41953, 41954], [41955, 41956, 41957], [41958, 41959, 41960], [41961, 41962, 41963], [41964, 41965, 41966], [41967, 41968, 41969], [41970, 41971, 41972], [41973, 41974, 41975], [41976, 41977, 41978], [41979, 41980, 41981], [41982, 41983, 41984], [41985, 41986, 41987], [41988, 41989, 41990], [41991, 41992, 41993], [41994, 41995, 41996], [41997, 41998, 41999], [42000, 42001, 42002], [42003, 42004, 42005], [42006, 42007, 42008], [42009, 42010, 42011], [42012, 42013, 42014], [42015, 42016, 42017], [42018, 42019, 42020], [42021, 42022, 42023], [42024, 42025, 42026], [42027, 42028, 42029], [42030, 42031, 42032], [42033, 42034, 42035], [42036, 42037, 42038], [42039, 42040, 42041], [42042, 42043, 42044], [42045, 42046, 42047], [42048, 42049, 42050], [42051, 42052, 42053], [42054, 42055, 42056], [42057, 42058, 42059], [42060, 42061, 42062], [42063, 42064, 42065], [42066, 42067, 42068], [42069, 42070, 42071], [42072, 42073, 42074], [42075, 42076, 42077], [42078, 42079, 42080], [42081, 42082, 42083], [42084, 42085, 42086], [42087, 42088, 42089], [42090, 42091, 42092], [42093, 42094, 42095], [42096, 42097, 42098], [42099, 42100, 42101], [42102, 42103, 42104], [42105, 42106, 42107], [42108, 42109, 42110], [42111, 42112, 42113], [42114, 42115, 42116], [42117, 42118, 42119], [42120, 42121, 42122], [42123, 42124, 42125], [42126, 42127, 42128], [42129, 42130, 42131], [42132, 42133, 42134], [42135, 42136, 42137], [42138, 42139, 42140], [42141, 42142, 42143], [42144, 42145, 42146], [42147, 42148, 42149], [42150, 42151, 42152], [42153, 42154, 42155], [42156, 42157, 42158], [42159, 42160, 42161], [42162, 42163, 42164], [42165, 42166, 42167], [42168, 42169, 42170], [42171, 42172, 42173], [42174, 42175, 42176], [42177, 42178, 42179], [42180, 42181, 42182], [42183, 42184, 42185], [42186, 42187, 42188], [42189, 42190, 42191], [42192, 42193, 42194], [42195, 42196, 42197], [42198, 42199, 42200], [42201, 42202, 42203], [42204, 42205, 42206], [42207, 42208, 42209], [42210, 42211, 42212], [42213, 42214, 42215], [42216, 42217, 42218], [42219, 42220, 42221], [42222, 42223, 42224], [42225, 42226, 42227], [42228, 42229, 42230], [42231, 42232, 42233], [42234, 42235, 42236], [42237, 42238, 42239], [42240, 42241, 42242], [42243, 42244, 42245], [42246, 42247, 42248], [42249, 42250, 42251], [42252, 42253, 42254], [42255, 42256, 42257], [42258, 42259, 42260], [42261, 42262, 42263], [42264, 42265, 42266], [42267, 42268, 42269], [42270, 42271, 42272], [42273, 42274, 42275], [42276, 42277, 42278], [42279, 42280, 42281], [42282, 42283, 42284], [42285, 42286, 42287], [42288, 42289, 42290], [42291, 42292, 42293], [42294, 42295, 42296], [42297, 42298, 42299], [42300, 42301, 42302], [42303, 42304, 42305], [42306, 42307, 42308], [42309, 42310, 42311], [42312, 42313, 42314], [42315, 42316, 42317], [42318, 42319, 42320], [42321, 42322, 42323], [42324, 42325, 42326], [42327, 42328, 42329], [42330, 42331, 42332], [42333, 42334, 42335], [42336, 42337, 42338], [42339, 42340, 42341], [42342, 42343, 42344], [42345, 42346, 42347], [42348, 42349, 42350], [42351, 42352, 42353], [42354, 42355, 42356], [42357, 42358, 42359], [42360, 42361, 42362], [42363, 42364, 42365], [42366, 42367, 42368], [42369, 42370, 42371], [42372, 42373, 42374], [42375, 42376, 42377], [42378, 42379, 42380], [42381, 42382, 42383], [42384, 42385, 42386], [42387, 42388, 42389], [42390, 42391, 42392], [42393, 42394, 42395], [42396, 42397, 42398], [42399, 42400, 42401], [42402, 42403, 42404], [42405, 42406, 42407], [42408, 42409, 42410], [42411, 42412, 42413], [42414, 42415, 42416], [42417, 42418, 42419], [42420, 42421, 42422], [42423, 42424, 42425], [42426, 42427, 42428], [42429, 42430, 42431], [42432, 42433, 42434], [42435, 42436, 42437], [42438, 42439, 42440], [42441, 42442, 42443], [42444, 42445, 42446], [42447, 42448, 42449], [42450, 42451, 42452], [42453, 42454, 42455], [42456, 42457, 42458], [42459, 42460, 42461], [42462, 42463, 42464], [42465, 42466, 42467], [42468, 42469, 42470], [42471, 42472, 42473], [42474, 42475, 42476], [42477, 42478, 42479], [42480, 42481, 42482], [42483, 42484, 42485], [42486, 42487, 42488], [42489, 42490, 42491], [42492, 42493, 42494], [42495, 42496, 42497], [42498, 42499, 42500], [42501, 42502, 42503], [42504, 42505, 42506], [42507, 42508, 42509], [42510, 42511, 42512], [42513, 42514, 42515], [42516, 42517, 42518], [42519, 42520, 42521], [42522, 42523, 42524], [42525, 42526, 42527], [42528, 42529, 42530], [42531, 42532, 42533], [42534, 42535, 42536], [42537, 42538, 42539], [42540, 42541, 42542], [42543, 42544, 42545], [42546, 42547, 42548], [42549, 42550, 42551], [42552, 42553, 42554], [42555, 42556, 42557], [42558, 42559, 42560], [42561, 42562, 42563], [42564, 42565, 42566], [42567, 42568, 42569], [42570, 42571, 42572], [42573, 42574, 42575], [42576, 42577, 42578], [42579, 42580, 42581], [42582, 42583, 42584], [42585, 42586, 42587], [42588, 42589, 42590], [42591, 42592, 42593], [42594, 42595, 42596], [42597, 42598, 42599], [42600, 42601, 42602], [42603, 42604, 42605], [42606, 42607, 42608], [42609, 42610, 42611], [42612, 42613, 42614], [42615, 42616, 42617], [42618, 42619, 42620], [42621, 42622, 42623], [42624, 42625, 42626], [42627, 42628, 42629], [42630, 42631, 42632], [42633, 42634, 42635], [42636, 42637, 42638], [42639, 42640, 42641], [42642, 42643, 42644], [42645, 42646, 42647], [42648, 42649, 42650], [42651, 42652, 42653], [42654, 42655, 42656], [42657, 42658, 42659], [42660, 42661, 42662], [42663, 42664, 42665], [42666, 42667, 42668], [42669, 42670, 42671], [42672, 42673, 42674], [42675, 42676, 42677], [42678, 42679, 42680], [42681, 42682, 42683], [42684, 42685, 42686], [42687, 42688, 42689], [42690, 42691, 42692], [42693, 42694, 42695], [42696, 42697, 42698], [42699, 42700, 42701], [42702, 42703, 42704], [42705, 42706, 42707], [42708, 42709, 42710], [42711, 42712, 42713], [42714, 42715, 42716], [42717, 42718, 42719], [42720, 42721, 42722], [42723, 42724, 42725], [42726, 42727, 42728], [42729, 42730, 42731], [42732, 42733, 42734], [42735, 42736, 42737], [42738, 42739, 42740], [42741, 42742, 42743], [42744, 42745, 42746], [42747, 42748, 42749], [42750, 42751, 42752], [42753, 42754, 42755], [42756, 42757, 42758], [42759, 42760, 42761], [42762, 42763, 42764], [42765, 42766, 42767], [42768, 42769, 42770], [42771, 42772, 42773], [42774, 42775, 42776], [42777, 42778, 42779], [42780, 42781, 42782], [42783, 42784, 42785], [42786, 42787, 42788], [42789, 42790, 42791], [42792, 42793, 42794], [42795, 42796, 42797], [42798, 42799, 42800], [42801, 42802, 42803], [42804, 42805, 42806], [42807, 42808, 42809], [42810, 42811, 42812], [42813, 42814, 42815], [42816, 42817, 42818], [42819, 42820, 42821], [42822, 42823, 42824], [42825, 42826, 42827], [42828, 42829, 42830], [42831, 42832, 42833], [42834, 42835, 42836], [42837, 42838, 42839], [42840, 42841, 42842], [42843, 42844, 42845], [42846, 42847, 42848], [42849, 42850, 42851], [42852, 42853, 42854], [42855, 42856, 42857], [42858, 42859, 42860], [42861, 42862, 42863], [42864, 42865, 42866], [42867, 42868, 42869], [42870, 42871, 42872], [42873, 42874, 42875], [42876, 42877, 42878], [42879, 42880, 42881], [42882, 42883, 42884], [42885, 42886, 42887], [42888, 42889, 42890], [42891, 42892, 42893], [42894, 42895, 42896], [42897, 42898, 42899], [42900, 42901, 42902], [42903, 42904, 42905], [42906, 42907, 42908], [42909, 42910, 42911], [42912, 42913, 42914], [42915, 42916, 42917], [42918, 42919, 42920], [42921, 42922, 42923], [42924, 42925, 42926], [42927, 42928, 42929], [42930, 42931, 42932], [42933, 42934, 42935], [42936, 42937, 42938], [42939, 42940, 42941], [42942, 42943, 42944], [42945, 42946, 42947], [42948, 42949, 42950], [42951, 42952, 42953], [42954, 42955, 42956], [42957, 42958, 42959], [42960, 42961, 42962], [42963, 42964, 42965], [42966, 42967, 42968], [42969, 42970, 42971], [42972, 42973, 42974], [42975, 42976, 42977], [42978, 42979, 42980], [42981, 42982, 42983], [42984, 42985, 42986], [42987, 42988, 42989], [42990, 42991, 42992], [42993, 42994, 42995], [42996, 42997, 42998], [42999, 43000, 43001], [43002, 43003, 43004], [43005, 43006, 43007], [43008, 43009, 43010], [43011, 43012, 43013], [43014, 43015, 43016], [43017, 43018, 43019], [43020, 43021, 43022], [43023, 43024, 43025], [43026, 43027, 43028], [43029, 43030, 43031], [43032, 43033, 43034], [43035, 43036, 43037], [43038, 43039, 43040], [43041, 43042, 43043], [43044, 43045, 43046], [43047, 43048, 43049], [43050, 43051, 43052], [43053, 43054, 43055], [43056, 43057, 43058], [43059, 43060, 43061], [43062, 43063, 43064], [43065, 43066, 43067], [43068, 43069, 43070], [43071, 43072, 43073], [43074, 43075, 43076], [43077, 43078, 43079], [43080, 43081, 43082], [43083, 43084, 43085], [43086, 43087, 43088], [43089, 43090, 43091], [43092, 43093, 43094], [43095, 43096, 43097], [43098, 43099, 43100], [43101, 43102, 43103], [43104, 43105, 43106], [43107, 43108, 43109], [43110, 43111, 43112], [43113, 43114, 43115], [43116, 43117, 43118], [43119, 43120, 43121], [43122, 43123, 43124], [43125, 43126, 43127], [43128, 43129, 43130], [43131, 43132, 43133], [43134, 43135, 43136], [43137, 43138, 43139], [43140, 43141, 43142], [43143, 43144, 43145], [43146, 43147, 43148], [43149, 43150, 43151], [43152, 43153, 43154], [43155, 43156, 43157], [43158, 43159, 43160], [43161, 43162, 43163], [43164, 43165, 43166], [43167, 43168, 43169], [43170, 43171, 43172], [43173, 43174, 43175], [43176, 43177, 43178], [43179, 43180, 43181], [43182, 43183, 43184], [43185, 43186, 43187], [43188, 43189, 43190], [43191, 43192, 43193], [43194, 43195, 43196], [43197, 43198, 43199], [43200, 43201, 43202], [43203, 43204, 43205], [43206, 43207, 43208], [43209, 43210, 43211], [43212, 43213, 43214], [43215, 43216, 43217], [43218, 43219, 43220], [43221, 43222, 43223], [43224, 43225, 43226], [43227, 43228, 43229], [43230, 43231, 43232], [43233, 43234, 43235], [43236, 43237, 43238], [43239, 43240, 43241], [43242, 43243, 43244], [43245, 43246, 43247], [43248, 43249, 43250], [43251, 43252, 43253], [43254, 43255, 43256], [43257, 43258, 43259], [43260, 43261, 43262], [43263, 43264, 43265], [43266, 43267, 43268], [43269, 43270, 43271], [43272, 43273, 43274], [43275, 43276, 43277], [43278, 43279, 43280], [43281, 43282, 43283], [43284, 43285, 43286], [43287, 43288, 43289], [43290, 43291, 43292], [43293, 43294, 43295], [43296, 43297, 43298], [43299, 43300, 43301], [43302, 43303, 43304], [43305, 43306, 43307], [43308, 43309, 43310], [43311, 43312, 43313], [43314, 43315, 43316], [43317, 43318, 43319], [43320, 43321, 43322], [43323, 43324, 43325], [43326, 43327, 43328], [43329, 43330, 43331], [43332, 43333, 43334], [43335, 43336, 43337], [43338, 43339, 43340], [43341, 43342, 43343], [43344, 43345, 43346], [43347, 43348, 43349], [43350, 43351, 43352], [43353, 43354, 43355], [43356, 43357, 43358], [43359, 43360, 43361], [43362, 43363, 43364], [43365, 43366, 43367], [43368, 43369, 43370], [43371, 43372, 43373], [43374, 43375, 43376], [43377, 43378, 43379], [43380, 43381, 43382], [43383, 43384, 43385], [43386, 43387, 43388], [43389, 43390, 43391], [43392, 43393, 43394], [43395, 43396, 43397], [43398, 43399, 43400], [43401, 43402, 43403], [43404, 43405, 43406], [43407, 43408, 43409], [43410, 43411, 43412], [43413, 43414, 43415], [43416, 43417, 43418], [43419, 43420, 43421], [43422, 43423, 43424], [43425, 43426, 43427], [43428, 43429, 43430], [43431, 43432, 43433], [43434, 43435, 43436], [43437, 43438, 43439], [43440, 43441, 43442], [43443, 43444, 43445], [43446, 43447, 43448], [43449, 43450, 43451], [43452, 43453, 43454], [43455, 43456, 43457], [43458, 43459, 43460], [43461, 43462, 43463], [43464, 43465, 43466], [43467, 43468, 43469], [43470, 43471, 43472], [43473, 43474, 43475], [43476, 43477, 43478], [43479, 43480, 43481], [43482, 43483, 43484], [43485, 43486, 43487], [43488, 43489, 43490], [43491, 43492, 43493], [43494, 43495, 43496], [43497, 43498, 43499], [43500, 43501, 43502], [43503, 43504, 43505], [43506, 43507, 43508], [43509, 43510, 43511], [43512, 43513, 43514], [43515, 43516, 43517], [43518, 43519, 43520], [43521, 43522, 43523], [43524, 43525, 43526], [43527, 43528, 43529], [43530, 43531, 43532], [43533, 43534, 43535], [43536, 43537, 43538], [43539, 43540, 43541], [43542, 43543, 43544], [43545, 43546, 43547], [43548, 43549, 43550], [43551, 43552, 43553], [43554, 43555, 43556], [43557, 43558, 43559], [43560, 43561, 43562], [43563, 43564, 43565], [43566, 43567, 43568], [43569, 43570, 43571], [43572, 43573, 43574], [43575, 43576, 43577], [43578, 43579, 43580], [43581, 43582, 43583], [43584, 43585, 43586], [43587, 43588, 43589], [43590, 43591, 43592], [43593, 43594, 43595], [43596, 43597, 43598], [43599, 43600, 43601], [43602, 43603, 43604], [43605, 43606, 43607], [43608, 43609, 43610], [43611, 43612, 43613], [43614, 43615, 43616], [43617, 43618, 43619], [43620, 43621, 43622], [43623, 43624, 43625], [43626, 43627, 43628], [43629, 43630, 43631], [43632, 43633, 43634], [43635, 43636, 43637], [43638, 43639, 43640], [43641, 43642, 43643], [43644, 43645, 43646], [43647, 43648, 43649], [43650, 43651, 43652], [43653, 43654, 43655], [43656, 43657, 43658], [43659, 43660, 43661], [43662, 43663, 43664], [43665, 43666, 43667], [43668, 43669, 43670], [43671, 43672, 43673], [43674, 43675, 43676], [43677, 43678, 43679], [43680, 43681, 43682], [43683, 43684, 43685], [43686, 43687, 43688], [43689, 43690, 43691], [43692, 43693, 43694], [43695, 43696, 43697], [43698, 43699, 43700], [43701, 43702, 43703], [43704, 43705, 43706], [43707, 43708, 43709], [43710, 43711, 43712], [43713, 43714, 43715], [43716, 43717, 43718], [43719, 43720, 43721], [43722, 43723, 43724], [43725, 43726, 43727], [43728, 43729, 43730], [43731, 43732, 43733], [43734, 43735, 43736], [43737, 43738, 43739], [43740, 43741, 43742], [43743, 43744, 43745], [43746, 43747, 43748], [43749, 43750, 43751], [43752, 43753, 43754], [43755, 43756, 43757], [43758, 43759, 43760], [43761, 43762, 43763], [43764, 43765, 43766], [43767, 43768, 43769], [43770, 43771, 43772], [43773, 43774, 43775], [43776, 43777, 43778], [43779, 43780, 43781], [43782, 43783, 43784], [43785, 43786, 43787], [43788, 43789, 43790], [43791, 43792, 43793], [43794, 43795, 43796], [43797, 43798, 43799], [43800, 43801, 43802], [43803, 43804, 43805], [43806, 43807, 43808], [43809, 43810, 43811], [43812, 43813, 43814], [43815, 43816, 43817], [43818, 43819, 43820], [43821, 43822, 43823], [43824, 43825, 43826], [43827, 43828, 43829], [43830, 43831, 43832], [43833, 43834, 43835], [43836, 43837, 43838], [43839, 43840, 43841], [43842, 43843, 43844], [43845, 43846, 43847], [43848, 43849, 43850], [43851, 43852, 43853], [43854, 43855, 43856], [43857, 43858, 43859], [43860, 43861, 43862], [43863, 43864, 43865], [43866, 43867, 43868], [43869, 43870, 43871], [43872, 43873, 43874], [43875, 43876, 43877], [43878, 43879, 43880], [43881, 43882, 43883], [43884, 43885, 43886], [43887, 43888, 43889], [43890, 43891, 43892], [43893, 43894, 43895], [43896, 43897, 43898], [43899, 43900, 43901], [43902, 43903, 43904], [43905, 43906, 43907], [43908, 43909, 43910], [43911, 43912, 43913], [43914, 43915, 43916], [43917, 43918, 43919], [43920, 43921, 43922], [43923, 43924, 43925], [43926, 43927, 43928], [43929, 43930, 43931], [43932, 43933, 43934], [43935, 43936, 43937], [43938, 43939, 43940], [43941, 43942, 43943], [43944, 43945, 43946], [43947, 43948, 43949], [43950, 43951, 43952], [43953, 43954, 43955], [43956, 43957, 43958], [43959, 43960, 43961], [43962, 43963, 43964], [43965, 43966, 43967], [43968, 43969, 43970], [43971, 43972, 43973], [43974, 43975, 43976], [43977, 43978, 43979], [43980, 43981, 43982], [43983, 43984, 43985], [43986, 43987, 43988], [43989, 43990, 43991], [43992, 43993, 43994], [43995, 43996, 43997], [43998, 43999, 44000], [44001, 44002, 44003], [44004, 44005, 44006], [44007, 44008, 44009], [44010, 44011, 44012], [44013, 44014, 44015], [44016, 44017, 44018], [44019, 44020, 44021], [44022, 44023, 44024], [44025, 44026, 44027], [44028, 44029, 44030], [44031, 44032, 44033], [44034, 44035, 44036], [44037, 44038, 44039], [44040, 44041, 44042], [44043, 44044, 44045], [44046, 44047, 44048], [44049, 44050, 44051], [44052, 44053, 44054], [44055, 44056, 44057], [44058, 44059, 44060], [44061, 44062, 44063], [44064, 44065, 44066], [44067, 44068, 44069], [44070, 44071, 44072], [44073, 44074, 44075], [44076, 44077, 44078], [44079, 44080, 44081], [44082, 44083, 44084], [44085, 44086, 44087], [44088, 44089, 44090], [44091, 44092, 44093], [44094, 44095, 44096], [44097, 44098, 44099], [44100, 44101, 44102], [44103, 44104, 44105], [44106, 44107, 44108], [44109, 44110, 44111], [44112, 44113, 44114], [44115, 44116, 44117], [44118, 44119, 44120], [44121, 44122, 44123], [44124, 44125, 44126], [44127, 44128, 44129], [44130, 44131, 44132], [44133, 44134, 44135], [44136, 44137, 44138], [44139, 44140, 44141], [44142, 44143, 44144], [44145, 44146, 44147], [44148, 44149, 44150], [44151, 44152, 44153], [44154, 44155, 44156], [44157, 44158, 44159], [44160, 44161, 44162], [44163, 44164, 44165], [44166, 44167, 44168], [44169, 44170, 44171], [44172, 44173, 44174], [44175, 44176, 44177], [44178, 44179, 44180], [44181, 44182, 44183], [44184, 44185, 44186], [44187, 44188, 44189], [44190, 44191, 44192], [44193, 44194, 44195], [44196, 44197, 44198], [44199, 44200, 44201], [44202, 44203, 44204], [44205, 44206, 44207], [44208, 44209, 44210], [44211, 44212, 44213], [44214, 44215, 44216], [44217, 44218, 44219], [44220, 44221, 44222], [44223, 44224, 44225], [44226, 44227, 44228], [44229, 44230, 44231], [44232, 44233, 44234], [44235, 44236, 44237], [44238, 44239, 44240], [44241, 44242, 44243], [44244, 44245, 44246], [44247, 44248, 44249], [44250, 44251, 44252], [44253, 44254, 44255], [44256, 44257, 44258], [44259, 44260, 44261], [44262, 44263, 44264], [44265, 44266, 44267], [44268, 44269, 44270], [44271, 44272, 44273], [44274, 44275, 44276], [44277, 44278, 44279], [44280, 44281, 44282], [44283, 44284, 44285], [44286, 44287, 44288], [44289, 44290, 44291], [44292, 44293, 44294], [44295, 44296, 44297], [44298, 44299, 44300], [44301, 44302, 44303], [44304, 44305, 44306], [44307, 44308, 44309], [44310, 44311, 44312], [44313, 44314, 44315], [44316, 44317, 44318], [44319, 44320, 44321], [44322, 44323, 44324], [44325, 44326, 44327], [44328, 44329, 44330], [44331, 44332, 44333], [44334, 44335, 44336], [44337, 44338, 44339], [44340, 44341, 44342], [44343, 44344, 44345], [44346, 44347, 44348], [44349, 44350, 44351], [44352, 44353, 44354], [44355, 44356, 44357], [44358, 44359, 44360], [44361, 44362, 44363], [44364, 44365, 44366], [44367, 44368, 44369], [44370, 44371, 44372], [44373, 44374, 44375], [44376, 44377, 44378], [44379, 44380, 44381], [44382, 44383, 44384], [44385, 44386, 44387], [44388, 44389, 44390], [44391, 44392, 44393], [44394, 44395, 44396], [44397, 44398, 44399], [44400, 44401, 44402], [44403, 44404, 44405], [44406, 44407, 44408], [44409, 44410, 44411], [44412, 44413, 44414], [44415, 44416, 44417], [44418, 44419, 44420], [44421, 44422, 44423], [44424, 44425, 44426], [44427, 44428, 44429], [44430, 44431, 44432], [44433, 44434, 44435], [44436, 44437, 44438], [44439, 44440, 44441], [44442, 44443, 44444], [44445, 44446, 44447], [44448, 44449, 44450], [44451, 44452, 44453], [44454, 44455, 44456], [44457, 44458, 44459], [44460, 44461, 44462], [44463, 44464, 44465], [44466, 44467, 44468], [44469, 44470, 44471], [44472, 44473, 44474], [44475, 44476, 44477], [44478, 44479, 44480], [44481, 44482, 44483], [44484, 44485, 44486], [44487, 44488, 44489], [44490, 44491, 44492], [44493, 44494, 44495], [44496, 44497, 44498], [44499, 44500, 44501], [44502, 44503, 44504], [44505, 44506, 44507], [44508, 44509, 44510], [44511, 44512, 44513], [44514, 44515, 44516], [44517, 44518, 44519], [44520, 44521, 44522], [44523, 44524, 44525], [44526, 44527, 44528], [44529, 44530, 44531], [44532, 44533, 44534], [44535, 44536, 44537], [44538, 44539, 44540], [44541, 44542, 44543], [44544, 44545, 44546], [44547, 44548, 44549], [44550, 44551, 44552], [44553, 44554, 44555], [44556, 44557, 44558], [44559, 44560, 44561], [44562, 44563, 44564], [44565, 44566, 44567], [44568, 44569, 44570], [44571, 44572, 44573], [44574, 44575, 44576], [44577, 44578, 44579], [44580, 44581, 44582], [44583, 44584, 44585], [44586, 44587, 44588], [44589, 44590, 44591], [44592, 44593, 44594], [44595, 44596, 44597], [44598, 44599, 44600], [44601, 44602, 44603], [44604, 44605, 44606], [44607, 44608, 44609], [44610, 44611, 44612], [44613, 44614, 44615], [44616, 44617, 44618], [44619, 44620, 44621], [44622, 44623, 44624], [44625, 44626, 44627], [44628, 44629, 44630], [44631, 44632, 44633], [44634, 44635, 44636], [44637, 44638, 44639], [44640, 44641, 44642], [44643, 44644, 44645], [44646, 44647, 44648], [44649, 44650, 44651], [44652, 44653, 44654], [44655, 44656, 44657], [44658, 44659, 44660], [44661, 44662, 44663], [44664, 44665, 44666], [44667, 44668, 44669], [44670, 44671, 44672], [44673, 44674, 44675], [44676, 44677, 44678], [44679, 44680, 44681], [44682, 44683, 44684], [44685, 44686, 44687], [44688, 44689, 44690], [44691, 44692, 44693], [44694, 44695, 44696], [44697, 44698, 44699], [44700, 44701, 44702], [44703, 44704, 44705], [44706, 44707, 44708], [44709, 44710, 44711], [44712, 44713, 44714], [44715, 44716, 44717], [44718, 44719, 44720], [44721, 44722, 44723], [44724, 44725, 44726], [44727, 44728, 44729], [44730, 44731, 44732], [44733, 44734, 44735], [44736, 44737, 44738], [44739, 44740, 44741], [44742, 44743, 44744], [44745, 44746, 44747], [44748, 44749, 44750], [44751, 44752, 44753], [44754, 44755, 44756], [44757, 44758, 44759], [44760, 44761, 44762], [44763, 44764, 44765], [44766, 44767, 44768], [44769, 44770, 44771], [44772, 44773, 44774], [44775, 44776, 44777], [44778, 44779, 44780], [44781, 44782, 44783], [44784, 44785, 44786], [44787, 44788, 44789], [44790, 44791, 44792], [44793, 44794, 44795], [44796, 44797, 44798], [44799, 44800, 44801], [44802, 44803, 44804], [44805, 44806, 44807], [44808, 44809, 44810], [44811, 44812, 44813], [44814, 44815, 44816], [44817, 44818, 44819], [44820, 44821, 44822], [44823, 44824, 44825], [44826, 44827, 44828], [44829, 44830, 44831], [44832, 44833, 44834], [44835, 44836, 44837], [44838, 44839, 44840], [44841, 44842, 44843], [44844, 44845, 44846], [44847, 44848, 44849], [44850, 44851, 44852], [44853, 44854, 44855], [44856, 44857, 44858], [44859, 44860, 44861], [44862, 44863, 44864], [44865, 44866, 44867], [44868, 44869, 44870], [44871, 44872, 44873], [44874, 44875, 44876], [44877, 44878, 44879], [44880, 44881, 44882], [44883, 44884, 44885], [44886, 44887, 44888], [44889, 44890, 44891], [44892, 44893, 44894], [44895, 44896, 44897], [44898, 44899, 44900], [44901, 44902, 44903], [44904, 44905, 44906], [44907, 44908, 44909], [44910, 44911, 44912], [44913, 44914, 44915], [44916, 44917, 44918], [44919, 44920, 44921], [44922, 44923, 44924], [44925, 44926, 44927], [44928, 44929, 44930], [44931, 44932, 44933], [44934, 44935, 44936], [44937, 44938, 44939], [44940, 44941, 44942], [44943, 44944, 44945], [44946, 44947, 44948], [44949, 44950, 44951], [44952, 44953, 44954], [44955, 44956, 44957], [44958, 44959, 44960], [44961, 44962, 44963], [44964, 44965, 44966], [44967, 44968, 44969], [44970, 44971, 44972], [44973, 44974, 44975], [44976, 44977, 44978], [44979, 44980, 44981], [44982, 44983, 44984], [44985, 44986, 44987], [44988, 44989, 44990], [44991, 44992, 44993], [44994, 44995, 44996], [44997, 44998, 44999], [45000, 45001, 45002], [45003, 45004, 45005], [45006, 45007, 45008], [45009, 45010, 45011], [45012, 45013, 45014], [45015, 45016, 45017], [45018, 45019, 45020], [45021, 45022, 45023], [45024, 45025, 45026], [45027, 45028, 45029], [45030, 45031, 45032], [45033, 45034, 45035], [45036, 45037, 45038], [45039, 45040, 45041], [45042, 45043, 45044], [45045, 45046, 45047], [45048, 45049, 45050], [45051, 45052, 45053], [45054, 45055, 45056], [45057, 45058, 45059], [45060, 45061, 45062], [45063, 45064, 45065], [45066, 45067, 45068], [45069, 45070, 45071], [45072, 45073, 45074], [45075, 45076, 45077], [45078, 45079, 45080], [45081, 45082, 45083], [45084, 45085, 45086], [45087, 45088, 45089], [45090, 45091, 45092], [45093, 45094, 45095], [45096, 45097, 45098], [45099, 45100, 45101], [45102, 45103, 45104], [45105, 45106, 45107], [45108, 45109, 45110], [45111, 45112, 45113], [45114, 45115, 45116], [45117, 45118, 45119], [45120, 45121, 45122], [45123, 45124, 45125], [45126, 45127, 45128], [45129, 45130, 45131], [45132, 45133, 45134], [45135, 45136, 45137], [45138, 45139, 45140], [45141, 45142, 45143], [45144, 45145, 45146], [45147, 45148, 45149], [45150, 45151, 45152], [45153, 45154, 45155], [45156, 45157, 45158], [45159, 45160, 45161], [45162, 45163, 45164], [45165, 45166, 45167], [45168, 45169, 45170], [45171, 45172, 45173], [45174, 45175, 45176], [45177, 45178, 45179], [45180, 45181, 45182], [45183, 45184, 45185], [45186, 45187, 45188], [45189, 45190, 45191], [45192, 45193, 45194], [45195, 45196, 45197], [45198, 45199, 45200], [45201, 45202, 45203], [45204, 45205, 45206], [45207, 45208, 45209], [45210, 45211, 45212], [45213, 45214, 45215], [45216, 45217, 45218], [45219, 45220, 45221], [45222, 45223, 45224], [45225, 45226, 45227], [45228, 45229, 45230], [45231, 45232, 45233], [45234, 45235, 45236], [45237, 45238, 45239], [45240, 45241, 45242], [45243, 45244, 45245], [45246, 45247, 45248], [45249, 45250, 45251], [45252, 45253, 45254], [45255, 45256, 45257], [45258, 45259, 45260], [45261, 45262, 45263], [45264, 45265, 45266], [45267, 45268, 45269], [45270, 45271, 45272], [45273, 45274, 45275], [45276, 45277, 45278], [45279, 45280, 45281], [45282, 45283, 45284], [45285, 45286, 45287], [45288, 45289, 45290], [45291, 45292, 45293], [45294, 45295, 45296], [45297, 45298, 45299], [45300, 45301, 45302], [45303, 45304, 45305], [45306, 45307, 45308], [45309, 45310, 45311], [45312, 45313, 45314], [45315, 45316, 45317], [45318, 45319, 45320], [45321, 45322, 45323], [45324, 45325, 45326], [45327, 45328, 45329], [45330, 45331, 45332], [45333, 45334, 45335], [45336, 45337, 45338], [45339, 45340, 45341], [45342, 45343, 45344], [45345, 45346, 45347], [45348, 45349, 45350], [45351, 45352, 45353], [45354, 45355, 45356], [45357, 45358, 45359], [45360, 45361, 45362], [45363, 45364, 45365], [45366, 45367, 45368], [45369, 45370, 45371], [45372, 45373, 45374], [45375, 45376, 45377], [45378, 45379, 45380], [45381, 45382, 45383], [45384, 45385, 45386], [45387, 45388, 45389], [45390, 45391, 45392], [45393, 45394, 45395], [45396, 45397, 45398], [45399, 45400, 45401], [45402, 45403, 45404], [45405, 45406, 45407], [45408, 45409, 45410], [45411, 45412, 45413], [45414, 45415, 45416], [45417, 45418, 45419], [45420, 45421, 45422], [45423, 45424, 45425], [45426, 45427, 45428], [45429, 45430, 45431], [45432, 45433, 45434], [45435, 45436, 45437], [45438, 45439, 45440], [45441, 45442, 45443], [45444, 45445, 45446], [45447, 45448, 45449], [45450, 45451, 45452], [45453, 45454, 45455], [45456, 45457, 45458], [45459, 45460, 45461], [45462, 45463, 45464], [45465, 45466, 45467], [45468, 45469, 45470], [45471, 45472, 45473], [45474, 45475, 45476], [45477, 45478, 45479], [45480, 45481, 45482], [45483, 45484, 45485], [45486, 45487, 45488], [45489, 45490, 45491], [45492, 45493, 45494], [45495, 45496, 45497], [45498, 45499, 45500], [45501, 45502, 45503], [45504, 45505, 45506], [45507, 45508, 45509], [45510, 45511, 45512], [45513, 45514, 45515], [45516, 45517, 45518], [45519, 45520, 45521], [45522, 45523, 45524], [45525, 45526, 45527], [45528, 45529, 45530], [45531, 45532, 45533], [45534, 45535, 45536], [45537, 45538, 45539], [45540, 45541, 45542], [45543, 45544, 45545], [45546, 45547, 45548], [45549, 45550, 45551], [45552, 45553, 45554], [45555, 45556, 45557], [45558, 45559, 45560], [45561, 45562, 45563], [45564, 45565, 45566], [45567, 45568, 45569], [45570, 45571, 45572], [45573, 45574, 45575], [45576, 45577, 45578], [45579, 45580, 45581], [45582, 45583, 45584], [45585, 45586, 45587], [45588, 45589, 45590], [45591, 45592, 45593], [45594, 45595, 45596], [45597, 45598, 45599], [45600, 45601, 45602], [45603, 45604, 45605], [45606, 45607, 45608], [45609, 45610, 45611], [45612, 45613, 45614], [45615, 45616, 45617], [45618, 45619, 45620], [45621, 45622, 45623], [45624, 45625, 45626], [45627, 45628, 45629], [45630, 45631, 45632], [45633, 45634, 45635], [45636, 45637, 45638], [45639, 45640, 45641], [45642, 45643, 45644], [45645, 45646, 45647], [45648, 45649, 45650], [45651, 45652, 45653], [45654, 45655, 45656], [45657, 45658, 45659], [45660, 45661, 45662], [45663, 45664, 45665], [45666, 45667, 45668], [45669, 45670, 45671], [45672, 45673, 45674], [45675, 45676, 45677], [45678, 45679, 45680], [45681, 45682, 45683], [45684, 45685, 45686], [45687, 45688, 45689], [45690, 45691, 45692], [45693, 45694, 45695], [45696, 45697, 45698], [45699, 45700, 45701], [45702, 45703, 45704], [45705, 45706, 45707], [45708, 45709, 45710], [45711, 45712, 45713], [45714, 45715, 45716], [45717, 45718, 45719], [45720, 45721, 45722], [45723, 45724, 45725], [45726, 45727, 45728], [45729, 45730, 45731], [45732, 45733, 45734], [45735, 45736, 45737], [45738, 45739, 45740], [45741, 45742, 45743], [45744, 45745, 45746], [45747, 45748, 45749], [45750, 45751, 45752], [45753, 45754, 45755], [45756, 45757, 45758], [45759, 45760, 45761], [45762, 45763, 45764], [45765, 45766, 45767], [45768, 45769, 45770], [45771, 45772, 45773], [45774, 45775, 45776], [45777, 45778, 45779], [45780, 45781, 45782], [45783, 45784, 45785], [45786, 45787, 45788], [45789, 45790, 45791], [45792, 45793, 45794], [45795, 45796, 45797], [45798, 45799, 45800], [45801, 45802, 45803], [45804, 45805, 45806], [45807, 45808, 45809], [45810, 45811, 45812], [45813, 45814, 45815], [45816, 45817, 45818], [45819, 45820, 45821], [45822, 45823, 45824], [45825, 45826, 45827], [45828, 45829, 45830], [45831, 45832, 45833], [45834, 45835, 45836], [45837, 45838, 45839], [45840, 45841, 45842], [45843, 45844, 45845], [45846, 45847, 45848], [45849, 45850, 45851], [45852, 45853, 45854], [45855, 45856, 45857], [45858, 45859, 45860], [45861, 45862, 45863], [45864, 45865, 45866], [45867, 45868, 45869], [45870, 45871, 45872], [45873, 45874, 45875], [45876, 45877, 45878], [45879, 45880, 45881], [45882, 45883, 45884], [45885, 45886, 45887], [45888, 45889, 45890], [45891, 45892, 45893], [45894, 45895, 45896], [45897, 45898, 45899], [45900, 45901, 45902], [45903, 45904, 45905], [45906, 45907, 45908], [45909, 45910, 45911], [45912, 45913, 45914], [45915, 45916, 45917], [45918, 45919, 45920], [45921, 45922, 45923], [45924, 45925, 45926], [45927, 45928, 45929], [45930, 45931, 45932], [45933, 45934, 45935], [45936, 45937, 45938], [45939, 45940, 45941], [45942, 45943, 45944], [45945, 45946, 45947], [45948, 45949, 45950], [45951, 45952, 45953], [45954, 45955, 45956], [45957, 45958, 45959], [45960, 45961, 45962], [45963, 45964, 45965], [45966, 45967, 45968], [45969, 45970, 45971], [45972, 45973, 45974], [45975, 45976, 45977], [45978, 45979, 45980], [45981, 45982, 45983], [45984, 45985, 45986], [45987, 45988, 45989], [45990, 45991, 45992], [45993, 45994, 45995], [45996, 45997, 45998], [45999, 46000, 46001], [46002, 46003, 46004], [46005, 46006, 46007], [46008, 46009, 46010], [46011, 46012, 46013], [46014, 46015, 46016], [46017, 46018, 46019], [46020, 46021, 46022], [46023, 46024, 46025], [46026, 46027, 46028], [46029, 46030, 46031], [46032, 46033, 46034], [46035, 46036, 46037], [46038, 46039, 46040], [46041, 46042, 46043], [46044, 46045, 46046], [46047, 46048, 46049], [46050, 46051, 46052], [46053, 46054, 46055], [46056, 46057, 46058], [46059, 46060, 46061], [46062, 46063, 46064], [46065, 46066, 46067], [46068, 46069, 46070], [46071, 46072, 46073], [46074, 46075, 46076], [46077, 46078, 46079], [46080, 46081, 46082], [46083, 46084, 46085], [46086, 46087, 46088], [46089, 46090, 46091], [46092, 46093, 46094], [46095, 46096, 46097], [46098, 46099, 46100], [46101, 46102, 46103], [46104, 46105, 46106], [46107, 46108, 46109], [46110, 46111, 46112], [46113, 46114, 46115], [46116, 46117, 46118], [46119, 46120, 46121], [46122, 46123, 46124], [46125, 46126, 46127], [46128, 46129, 46130], [46131, 46132, 46133], [46134, 46135, 46136], [46137, 46138, 46139], [46140, 46141, 46142], [46143, 46144, 46145], [46146, 46147, 46148], [46149, 46150, 46151], [46152, 46153, 46154], [46155, 46156, 46157], [46158, 46159, 46160], [46161, 46162, 46163], [46164, 46165, 46166], [46167, 46168, 46169], [46170, 46171, 46172], [46173, 46174, 46175], [46176, 46177, 46178], [46179, 46180, 46181], [46182, 46183, 46184], [46185, 46186, 46187], [46188, 46189, 46190], [46191, 46192, 46193], [46194, 46195, 46196], [46197, 46198, 46199], [46200, 46201, 46202], [46203, 46204, 46205], [46206, 46207, 46208], [46209, 46210, 46211], [46212, 46213, 46214], [46215, 46216, 46217], [46218, 46219, 46220], [46221, 46222, 46223], [46224, 46225, 46226], [46227, 46228, 46229], [46230, 46231, 46232], [46233, 46234, 46235], [46236, 46237, 46238], [46239, 46240, 46241], [46242, 46243, 46244], [46245, 46246, 46247], [46248, 46249, 46250], [46251, 46252, 46253], [46254, 46255, 46256], [46257, 46258, 46259], [46260, 46261, 46262], [46263, 46264, 46265], [46266, 46267, 46268], [46269, 46270, 46271], [46272, 46273, 46274], [46275, 46276, 46277], [46278, 46279, 46280], [46281, 46282, 46283], [46284, 46285, 46286], [46287, 46288, 46289], [46290, 46291, 46292], [46293, 46294, 46295], [46296, 46297, 46298], [46299, 46300, 46301], [46302, 46303, 46304], [46305, 46306, 46307], [46308, 46309, 46310], [46311, 46312, 46313], [46314, 46315, 46316], [46317, 46318, 46319], [46320, 46321, 46322], [46323, 46324, 46325], [46326, 46327, 46328], [46329, 46330, 46331], [46332, 46333, 46334], [46335, 46336, 46337], [46338, 46339, 46340], [46341, 46342, 46343], [46344, 46345, 46346], [46347, 46348, 46349], [46350, 46351, 46352], [46353, 46354, 46355], [46356, 46357, 46358], [46359, 46360, 46361], [46362, 46363, 46364], [46365, 46366, 46367], [46368, 46369, 46370], [46371, 46372, 46373], [46374, 46375, 46376], [46377, 46378, 46379], [46380, 46381, 46382], [46383, 46384, 46385], [46386, 46387, 46388], [46389, 46390, 46391], [46392, 46393, 46394], [46395, 46396, 46397], [46398, 46399, 46400], [46401, 46402, 46403], [46404, 46405, 46406], [46407, 46408, 46409], [46410, 46411, 46412], [46413, 46414, 46415], [46416, 46417, 46418], [46419, 46420, 46421], [46422, 46423, 46424], [46425, 46426, 46427], [46428, 46429, 46430], [46431, 46432, 46433], [46434, 46435, 46436], [46437, 46438, 46439], [46440, 46441, 46442], [46443, 46444, 46445], [46446, 46447, 46448], [46449, 46450, 46451], [46452, 46453, 46454], [46455, 46456, 46457], [46458, 46459, 46460], [46461, 46462, 46463], [46464, 46465, 46466], [46467, 46468, 46469], [46470, 46471, 46472], [46473, 46474, 46475], [46476, 46477, 46478], [46479, 46480, 46481], [46482, 46483, 46484], [46485, 46486, 46487], [46488, 46489, 46490], [46491, 46492, 46493], [46494, 46495, 46496], [46497, 46498, 46499], [46500, 46501, 46502], [46503, 46504, 46505], [46506, 46507, 46508], [46509, 46510, 46511], [46512, 46513, 46514], [46515, 46516, 46517], [46518, 46519, 46520], [46521, 46522, 46523], [46524, 46525, 46526], [46527, 46528, 46529], [46530, 46531, 46532], [46533, 46534, 46535], [46536, 46537, 46538], [46539, 46540, 46541], [46542, 46543, 46544], [46545, 46546, 46547], [46548, 46549, 46550], [46551, 46552, 46553], [46554, 46555, 46556], [46557, 46558, 46559], [46560, 46561, 46562], [46563, 46564, 46565], [46566, 46567, 46568], [46569, 46570, 46571], [46572, 46573, 46574], [46575, 46576, 46577], [46578, 46579, 46580], [46581, 46582, 46583], [46584, 46585, 46586], [46587, 46588, 46589], [46590, 46591, 46592], [46593, 46594, 46595], [46596, 46597, 46598], [46599, 46600, 46601], [46602, 46603, 46604], [46605, 46606, 46607], [46608, 46609, 46610], [46611, 46612, 46613], [46614, 46615, 46616], [46617, 46618, 46619], [46620, 46621, 46622], [46623, 46624, 46625], [46626, 46627, 46628], [46629, 46630, 46631], [46632, 46633, 46634], [46635, 46636, 46637], [46638, 46639, 46640], [46641, 46642, 46643], [46644, 46645, 46646], [46647, 46648, 46649], [46650, 46651, 46652], [46653, 46654, 46655], [46656, 46657, 46658], [46659, 46660, 46661], [46662, 46663, 46664], [46665, 46666, 46667], [46668, 46669, 46670], [46671, 46672, 46673], [46674, 46675, 46676], [46677, 46678, 46679], [46680, 46681, 46682], [46683, 46684, 46685], [46686, 46687, 46688], [46689, 46690, 46691], [46692, 46693, 46694], [46695, 46696, 46697], [46698, 46699, 46700], [46701, 46702, 46703], [46704, 46705, 46706], [46707, 46708, 46709], [46710, 46711, 46712], [46713, 46714, 46715], [46716, 46717, 46718], [46719, 46720, 46721], [46722, 46723, 46724], [46725, 46726, 46727], [46728, 46729, 46730], [46731, 46732, 46733], [46734, 46735, 46736], [46737, 46738, 46739], [46740, 46741, 46742], [46743, 46744, 46745], [46746, 46747, 46748], [46749, 46750, 46751], [46752, 46753, 46754], [46755, 46756, 46757], [46758, 46759, 46760], [46761, 46762, 46763], [46764, 46765, 46766], [46767, 46768, 46769], [46770, 46771, 46772], [46773, 46774, 46775], [46776, 46777, 46778], [46779, 46780, 46781], [46782, 46783, 46784], [46785, 46786, 46787], [46788, 46789, 46790], [46791, 46792, 46793], [46794, 46795, 46796], [46797, 46798, 46799], [46800, 46801, 46802], [46803, 46804, 46805], [46806, 46807, 46808], [46809, 46810, 46811], [46812, 46813, 46814], [46815, 46816, 46817], [46818, 46819, 46820], [46821, 46822, 46823], [46824, 46825, 46826], [46827, 46828, 46829], [46830, 46831, 46832], [46833, 46834, 46835], [46836, 46837, 46838], [46839, 46840, 46841], [46842, 46843, 46844], [46845, 46846, 46847], [46848, 46849, 46850], [46851, 46852, 46853], [46854, 46855, 46856], [46857, 46858, 46859], [46860, 46861, 46862], [46863, 46864, 46865], [46866, 46867, 46868], [46869, 46870, 46871], [46872, 46873, 46874], [46875, 46876, 46877], [46878, 46879, 46880], [46881, 46882, 46883], [46884, 46885, 46886], [46887, 46888, 46889], [46890, 46891, 46892], [46893, 46894, 46895], [46896, 46897, 46898], [46899, 46900, 46901], [46902, 46903, 46904], [46905, 46906, 46907], [46908, 46909, 46910], [46911, 46912, 46913], [46914, 46915, 46916], [46917, 46918, 46919], [46920, 46921, 46922], [46923, 46924, 46925], [46926, 46927, 46928], [46929, 46930, 46931], [46932, 46933, 46934], [46935, 46936, 46937], [46938, 46939, 46940], [46941, 46942, 46943], [46944, 46945, 46946], [46947, 46948, 46949], [46950, 46951, 46952], [46953, 46954, 46955], [46956, 46957, 46958], [46959, 46960, 46961], [46962, 46963, 46964], [46965, 46966, 46967], [46968, 46969, 46970], [46971, 46972, 46973], [46974, 46975, 46976], [46977, 46978, 46979], [46980, 46981, 46982], [46983, 46984, 46985], [46986, 46987, 46988], [46989, 46990, 46991], [46992, 46993, 46994], [46995, 46996, 46997], [46998, 46999, 47000], [47001, 47002, 47003], [47004, 47005, 47006], [47007, 47008, 47009], [47010, 47011, 47012], [47013, 47014, 47015], [47016, 47017, 47018], [47019, 47020, 47021], [47022, 47023, 47024], [47025, 47026, 47027], [47028, 47029, 47030], [47031, 47032, 47033], [47034, 47035, 47036], [47037, 47038, 47039], [47040, 47041, 47042], [47043, 47044, 47045], [47046, 47047, 47048], [47049, 47050, 47051], [47052, 47053, 47054], [47055, 47056, 47057], [47058, 47059, 47060], [47061, 47062, 47063], [47064, 47065, 47066], [47067, 47068, 47069], [47070, 47071, 47072], [47073, 47074, 47075], [47076, 47077, 47078], [47079, 47080, 47081], [47082, 47083, 47084], [47085, 47086, 47087], [47088, 47089, 47090], [47091, 47092, 47093], [47094, 47095, 47096], [47097, 47098, 47099], [47100, 47101, 47102], [47103, 47104, 47105], [47106, 47107, 47108], [47109, 47110, 47111], [47112, 47113, 47114], [47115, 47116, 47117], [47118, 47119, 47120], [47121, 47122, 47123], [47124, 47125, 47126], [47127, 47128, 47129], [47130, 47131, 47132], [47133, 47134, 47135], [47136, 47137, 47138], [47139, 47140, 47141], [47142, 47143, 47144], [47145, 47146, 47147], [47148, 47149, 47150], [47151, 47152, 47153], [47154, 47155, 47156], [47157, 47158, 47159], [47160, 47161, 47162], [47163, 47164, 47165], [47166, 47167, 47168], [47169, 47170, 47171], [47172, 47173, 47174], [47175, 47176, 47177], [47178, 47179, 47180], [47181, 47182, 47183], [47184, 47185, 47186], [47187, 47188, 47189], [47190, 47191, 47192], [47193, 47194, 47195], [47196, 47197, 47198], [47199, 47200, 47201], [47202, 47203, 47204], [47205, 47206, 47207], [47208, 47209, 47210], [47211, 47212, 47213], [47214, 47215, 47216], [47217, 47218, 47219], [47220, 47221, 47222], [47223, 47224, 47225], [47226, 47227, 47228], [47229, 47230, 47231], [47232, 47233, 47234], [47235, 47236, 47237], [47238, 47239, 47240], [47241, 47242, 47243], [47244, 47245, 47246], [47247, 47248, 47249], [47250, 47251, 47252], [47253, 47254, 47255], [47256, 47257, 47258], [47259, 47260, 47261], [47262, 47263, 47264], [47265, 47266, 47267], [47268, 47269, 47270], [47271, 47272, 47273], [47274, 47275, 47276], [47277, 47278, 47279], [47280, 47281, 47282], [47283, 47284, 47285], [47286, 47287, 47288], [47289, 47290, 47291], [47292, 47293, 47294], [47295, 47296, 47297], [47298, 47299, 47300], [47301, 47302, 47303], [47304, 47305, 47306], [47307, 47308, 47309], [47310, 47311, 47312], [47313, 47314, 47315], [47316, 47317, 47318], [47319, 47320, 47321], [47322, 47323, 47324], [47325, 47326, 47327], [47328, 47329, 47330], [47331, 47332, 47333], [47334, 47335, 47336], [47337, 47338, 47339], [47340, 47341, 47342], [47343, 47344, 47345], [47346, 47347, 47348], [47349, 47350, 47351], [47352, 47353, 47354], [47355, 47356, 47357], [47358, 47359, 47360], [47361, 47362, 47363], [47364, 47365, 47366], [47367, 47368, 47369], [47370, 47371, 47372], [47373, 47374, 47375], [47376, 47377, 47378], [47379, 47380, 47381], [47382, 47383, 47384], [47385, 47386, 47387], [47388, 47389, 47390], [47391, 47392, 47393], [47394, 47395, 47396], [47397, 47398, 47399], [47400, 47401, 47402], [47403, 47404, 47405], [47406, 47407, 47408], [47409, 47410, 47411], [47412, 47413, 47414], [47415, 47416, 47417], [47418, 47419, 47420], [47421, 47422, 47423], [47424, 47425, 47426], [47427, 47428, 47429], [47430, 47431, 47432], [47433, 47434, 47435], [47436, 47437, 47438], [47439, 47440, 47441], [47442, 47443, 47444], [47445, 47446, 47447], [47448, 47449, 47450], [47451, 47452, 47453], [47454, 47455, 47456], [47457, 47458, 47459], [47460, 47461, 47462], [47463, 47464, 47465], [47466, 47467, 47468], [47469, 47470, 47471], [47472, 47473, 47474], [47475, 47476, 47477], [47478, 47479, 47480], [47481, 47482, 47483], [47484, 47485, 47486], [47487, 47488, 47489], [47490, 47491, 47492], [47493, 47494, 47495], [47496, 47497, 47498], [47499, 47500, 47501], [47502, 47503, 47504], [47505, 47506, 47507], [47508, 47509, 47510], [47511, 47512, 47513], [47514, 47515, 47516], [47517, 47518, 47519], [47520, 47521, 47522], [47523, 47524, 47525], [47526, 47527, 47528], [47529, 47530, 47531], [47532, 47533, 47534], [47535, 47536, 47537], [47538, 47539, 47540], [47541, 47542, 47543], [47544, 47545, 47546], [47547, 47548, 47549], [47550, 47551, 47552], [47553, 47554, 47555], [47556, 47557, 47558], [47559, 47560, 47561], [47562, 47563, 47564], [47565, 47566, 47567], [47568, 47569, 47570], [47571, 47572, 47573], [47574, 47575, 47576], [47577, 47578, 47579], [47580, 47581, 47582], [47583, 47584, 47585], [47586, 47587, 47588], [47589, 47590, 47591], [47592, 47593, 47594], [47595, 47596, 47597], [47598, 47599, 47600], [47601, 47602, 47603], [47604, 47605, 47606], [47607, 47608, 47609], [47610, 47611, 47612], [47613, 47614, 47615], [47616, 47617, 47618], [47619, 47620, 47621], [47622, 47623, 47624], [47625, 47626, 47627], [47628, 47629, 47630], [47631, 47632, 47633], [47634, 47635, 47636], [47637, 47638, 47639], [47640, 47641, 47642], [47643, 47644, 47645], [47646, 47647, 47648], [47649, 47650, 47651], [47652, 47653, 47654], [47655, 47656, 47657], [47658, 47659, 47660], [47661, 47662, 47663], [47664, 47665, 47666], [47667, 47668, 47669], [47670, 47671, 47672], [47673, 47674, 47675], [47676, 47677, 47678], [47679, 47680, 47681], [47682, 47683, 47684], [47685, 47686, 47687], [47688, 47689, 47690], [47691, 47692, 47693], [47694, 47695, 47696], [47697, 47698, 47699], [47700, 47701, 47702], [47703, 47704, 47705], [47706, 47707, 47708], [47709, 47710, 47711], [47712, 47713, 47714], [47715, 47716, 47717], [47718, 47719, 47720], [47721, 47722, 47723], [47724, 47725, 47726], [47727, 47728, 47729], [47730, 47731, 47732], [47733, 47734, 47735], [47736, 47737, 47738], [47739, 47740, 47741], [47742, 47743, 47744], [47745, 47746, 47747], [47748, 47749, 47750], [47751, 47752, 47753], [47754, 47755, 47756], [47757, 47758, 47759], [47760, 47761, 47762], [47763, 47764, 47765], [47766, 47767, 47768], [47769, 47770, 47771], [47772, 47773, 47774], [47775, 47776, 47777], [47778, 47779, 47780], [47781, 47782, 47783], [47784, 47785, 47786], [47787, 47788, 47789], [47790, 47791, 47792], [47793, 47794, 47795], [47796, 47797, 47798], [47799, 47800, 47801], [47802, 47803, 47804], [47805, 47806, 47807], [47808, 47809, 47810], [47811, 47812, 47813], [47814, 47815, 47816], [47817, 47818, 47819], [47820, 47821, 47822], [47823, 47824, 47825], [47826, 47827, 47828], [47829, 47830, 47831], [47832, 47833, 47834], [47835, 47836, 47837], [47838, 47839, 47840], [47841, 47842, 47843], [47844, 47845, 47846], [47847, 47848, 47849], [47850, 47851, 47852], [47853, 47854, 47855], [47856, 47857, 47858], [47859, 47860, 47861], [47862, 47863, 47864], [47865, 47866, 47867], [47868, 47869, 47870], [47871, 47872, 47873], [47874, 47875, 47876], [47877, 47878, 47879], [47880, 47881, 47882], [47883, 47884, 47885], [47886, 47887, 47888], [47889, 47890, 47891], [47892, 47893, 47894], [47895, 47896, 47897], [47898, 47899, 47900], [47901, 47902, 47903], [47904, 47905, 47906], [47907, 47908, 47909], [47910, 47911, 47912], [47913, 47914, 47915], [47916, 47917, 47918], [47919, 47920, 47921], [47922, 47923, 47924], [47925, 47926, 47927], [47928, 47929, 47930], [47931, 47932, 47933], [47934, 47935, 47936], [47937, 47938, 47939], [47940, 47941, 47942], [47943, 47944, 47945], [47946, 47947, 47948], [47949, 47950, 47951], [47952, 47953, 47954], [47955, 47956, 47957], [47958, 47959, 47960], [47961, 47962, 47963], [47964, 47965, 47966], [47967, 47968, 47969], [47970, 47971, 47972], [47973, 47974, 47975], [47976, 47977, 47978], [47979, 47980, 47981], [47982, 47983, 47984], [47985, 47986, 47987], [47988, 47989, 47990], [47991, 47992, 47993], [47994, 47995, 47996], [47997, 47998, 47999], [48000, 48001, 48002], [48003, 48004, 48005], [48006, 48007, 48008], [48009, 48010, 48011], [48012, 48013, 48014], [48015, 48016, 48017], [48018, 48019, 48020], [48021, 48022, 48023], [48024, 48025, 48026], [48027, 48028, 48029], [48030, 48031, 48032], [48033, 48034, 48035], [48036, 48037, 48038], [48039, 48040, 48041], [48042, 48043, 48044], [48045, 48046, 48047], [48048, 48049, 48050], [48051, 48052, 48053], [48054, 48055, 48056], [48057, 48058, 48059], [48060, 48061, 48062], [48063, 48064, 48065], [48066, 48067, 48068], [48069, 48070, 48071], [48072, 48073, 48074], [48075, 48076, 48077], [48078, 48079, 48080], [48081, 48082, 48083], [48084, 48085, 48086], [48087, 48088, 48089], [48090, 48091, 48092], [48093, 48094, 48095], [48096, 48097, 48098], [48099, 48100, 48101], [48102, 48103, 48104], [48105, 48106, 48107], [48108, 48109, 48110], [48111, 48112, 48113], [48114, 48115, 48116], [48117, 48118, 48119], [48120, 48121, 48122], [48123, 48124, 48125], [48126, 48127, 48128], [48129, 48130, 48131], [48132, 48133, 48134], [48135, 48136, 48137], [48138, 48139, 48140], [48141, 48142, 48143], [48144, 48145, 48146], [48147, 48148, 48149], [48150, 48151, 48152], [48153, 48154, 48155], [48156, 48157, 48158], [48159, 48160, 48161], [48162, 48163, 48164], [48165, 48166, 48167], [48168, 48169, 48170], [48171, 48172, 48173], [48174, 48175, 48176], [48177, 48178, 48179], [48180, 48181, 48182], [48183, 48184, 48185], [48186, 48187, 48188], [48189, 48190, 48191], [48192, 48193, 48194], [48195, 48196, 48197], [48198, 48199, 48200], [48201, 48202, 48203], [48204, 48205, 48206], [48207, 48208, 48209], [48210, 48211, 48212], [48213, 48214, 48215], [48216, 48217, 48218], [48219, 48220, 48221], [48222, 48223, 48224], [48225, 48226, 48227], [48228, 48229, 48230], [48231, 48232, 48233], [48234, 48235, 48236], [48237, 48238, 48239], [48240, 48241, 48242], [48243, 48244, 48245], [48246, 48247, 48248], [48249, 48250, 48251], [48252, 48253, 48254], [48255, 48256, 48257], [48258, 48259, 48260], [48261, 48262, 48263], [48264, 48265, 48266], [48267, 48268, 48269], [48270, 48271, 48272], [48273, 48274, 48275], [48276, 48277, 48278], [48279, 48280, 48281], [48282, 48283, 48284], [48285, 48286, 48287], [48288, 48289, 48290], [48291, 48292, 48293], [48294, 48295, 48296], [48297, 48298, 48299], [48300, 48301, 48302], [48303, 48304, 48305], [48306, 48307, 48308], [48309, 48310, 48311], [48312, 48313, 48314], [48315, 48316, 48317], [48318, 48319, 48320], [48321, 48322, 48323], [48324, 48325, 48326], [48327, 48328, 48329], [48330, 48331, 48332], [48333, 48334, 48335], [48336, 48337, 48338], [48339, 48340, 48341], [48342, 48343, 48344], [48345, 48346, 48347], [48348, 48349, 48350], [48351, 48352, 48353], [48354, 48355, 48356], [48357, 48358, 48359], [48360, 48361, 48362], [48363, 48364, 48365], [48366, 48367, 48368], [48369, 48370, 48371], [48372, 48373, 48374], [48375, 48376, 48377], [48378, 48379, 48380], [48381, 48382, 48383], [48384, 48385, 48386], [48387, 48388, 48389], [48390, 48391, 48392], [48393, 48394, 48395], [48396, 48397, 48398], [48399, 48400, 48401], [48402, 48403, 48404], [48405, 48406, 48407], [48408, 48409, 48410], [48411, 48412, 48413], [48414, 48415, 48416], [48417, 48418, 48419], [48420, 48421, 48422], [48423, 48424, 48425], [48426, 48427, 48428], [48429, 48430, 48431], [48432, 48433, 48434], [48435, 48436, 48437], [48438, 48439, 48440], [48441, 48442, 48443], [48444, 48445, 48446], [48447, 48448, 48449], [48450, 48451, 48452], [48453, 48454, 48455], [48456, 48457, 48458], [48459, 48460, 48461], [48462, 48463, 48464], [48465, 48466, 48467], [48468, 48469, 48470], [48471, 48472, 48473], [48474, 48475, 48476], [48477, 48478, 48479], [48480, 48481, 48482], [48483, 48484, 48485], [48486, 48487, 48488], [48489, 48490, 48491], [48492, 48493, 48494], [48495, 48496, 48497], [48498, 48499, 48500], [48501, 48502, 48503], [48504, 48505, 48506], [48507, 48508, 48509], [48510, 48511, 48512], [48513, 48514, 48515], [48516, 48517, 48518], [48519, 48520, 48521], [48522, 48523, 48524], [48525, 48526, 48527], [48528, 48529, 48530], [48531, 48532, 48533], [48534, 48535, 48536], [48537, 48538, 48539], [48540, 48541, 48542], [48543, 48544, 48545], [48546, 48547, 48548], [48549, 48550, 48551], [48552, 48553, 48554], [48555, 48556, 48557], [48558, 48559, 48560], [48561, 48562, 48563], [48564, 48565, 48566], [48567, 48568, 48569], [48570, 48571, 48572], [48573, 48574, 48575], [48576, 48577, 48578], [48579, 48580, 48581], [48582, 48583, 48584], [48585, 48586, 48587], [48588, 48589, 48590], [48591, 48592, 48593], [48594, 48595, 48596], [48597, 48598, 48599], [48600, 48601, 48602], [48603, 48604, 48605], [48606, 48607, 48608], [48609, 48610, 48611], [48612, 48613, 48614], [48615, 48616, 48617], [48618, 48619, 48620], [48621, 48622, 48623], [48624, 48625, 48626], [48627, 48628, 48629], [48630, 48631, 48632], [48633, 48634, 48635], [48636, 48637, 48638], [48639, 48640, 48641], [48642, 48643, 48644], [48645, 48646, 48647], [48648, 48649, 48650], [48651, 48652, 48653], [48654, 48655, 48656], [48657, 48658, 48659], [48660, 48661, 48662], [48663, 48664, 48665], [48666, 48667, 48668], [48669, 48670, 48671], [48672, 48673, 48674], [48675, 48676, 48677], [48678, 48679, 48680], [48681, 48682, 48683], [48684, 48685, 48686], [48687, 48688, 48689], [48690, 48691, 48692], [48693, 48694, 48695], [48696, 48697, 48698], [48699, 48700, 48701], [48702, 48703, 48704], [48705, 48706, 48707], [48708, 48709, 48710], [48711, 48712, 48713], [48714, 48715, 48716], [48717, 48718, 48719], [48720, 48721, 48722], [48723, 48724, 48725], [48726, 48727, 48728], [48729, 48730, 48731], [48732, 48733, 48734], [48735, 48736, 48737], [48738, 48739, 48740], [48741, 48742, 48743], [48744, 48745, 48746], [48747, 48748, 48749], [48750, 48751, 48752], [48753, 48754, 48755], [48756, 48757, 48758], [48759, 48760, 48761], [48762, 48763, 48764], [48765, 48766, 48767], [48768, 48769, 48770], [48771, 48772, 48773], [48774, 48775, 48776], [48777, 48778, 48779], [48780, 48781, 48782], [48783, 48784, 48785], [48786, 48787, 48788], [48789, 48790, 48791], [48792, 48793, 48794], [48795, 48796, 48797], [48798, 48799, 48800], [48801, 48802, 48803], [48804, 48805, 48806], [48807, 48808, 48809], [48810, 48811, 48812], [48813, 48814, 48815], [48816, 48817, 48818], [48819, 48820, 48821], [48822, 48823, 48824], [48825, 48826, 48827], [48828, 48829, 48830], [48831, 48832, 48833], [48834, 48835, 48836], [48837, 48838, 48839], [48840, 48841, 48842], [48843, 48844, 48845], [48846, 48847, 48848], [48849, 48850, 48851], [48852, 48853, 48854], [48855, 48856, 48857], [48858, 48859, 48860], [48861, 48862, 48863], [48864, 48865, 48866], [48867, 48868, 48869], [48870, 48871, 48872], [48873, 48874, 48875], [48876, 48877, 48878], [48879, 48880, 48881], [48882, 48883, 48884], [48885, 48886, 48887], [48888, 48889, 48890], [48891, 48892, 48893], [48894, 48895, 48896], [48897, 48898, 48899], [48900, 48901, 48902], [48903, 48904, 48905], [48906, 48907, 48908], [48909, 48910, 48911], [48912, 48913, 48914], [48915, 48916, 48917], [48918, 48919, 48920], [48921, 48922, 48923], [48924, 48925, 48926], [48927, 48928, 48929], [48930, 48931, 48932], [48933, 48934, 48935], [48936, 48937, 48938], [48939, 48940, 48941], [48942, 48943, 48944], [48945, 48946, 48947], [48948, 48949, 48950], [48951, 48952, 48953], [48954, 48955, 48956], [48957, 48958, 48959], [48960, 48961, 48962], [48963, 48964, 48965], [48966, 48967, 48968], [48969, 48970, 48971], [48972, 48973, 48974], [48975, 48976, 48977], [48978, 48979, 48980], [48981, 48982, 48983], [48984, 48985, 48986], [48987, 48988, 48989], [48990, 48991, 48992], [48993, 48994, 48995], [48996, 48997, 48998], [48999, 49000, 49001], [49002, 49003, 49004], [49005, 49006, 49007], [49008, 49009, 49010], [49011, 49012, 49013], [49014, 49015, 49016], [49017, 49018, 49019], [49020, 49021, 49022], [49023, 49024, 49025], [49026, 49027, 49028], [49029, 49030, 49031], [49032, 49033, 49034], [49035, 49036, 49037], [49038, 49039, 49040], [49041, 49042, 49043], [49044, 49045, 49046], [49047, 49048, 49049], [49050, 49051, 49052], [49053, 49054, 49055], [49056, 49057, 49058], [49059, 49060, 49061], [49062, 49063, 49064], [49065, 49066, 49067], [49068, 49069, 49070], [49071, 49072, 49073], [49074, 49075, 49076], [49077, 49078, 49079], [49080, 49081, 49082], [49083, 49084, 49085], [49086, 49087, 49088], [49089, 49090, 49091], [49092, 49093, 49094], [49095, 49096, 49097], [49098, 49099, 49100], [49101, 49102, 49103], [49104, 49105, 49106], [49107, 49108, 49109], [49110, 49111, 49112], [49113, 49114, 49115], [49116, 49117, 49118], [49119, 49120, 49121], [49122, 49123, 49124], [49125, 49126, 49127], [49128, 49129, 49130], [49131, 49132, 49133], [49134, 49135, 49136], [49137, 49138, 49139], [49140, 49141, 49142], [49143, 49144, 49145], [49146, 49147, 49148], [49149, 49150, 49151], [49152, 49153, 49154], [49155, 49156, 49157], [49158, 49159, 49160], [49161, 49162, 49163], [49164, 49165, 49166], [49167, 49168, 49169], [49170, 49171, 49172], [49173, 49174, 49175], [49176, 49177, 49178], [49179, 49180, 49181], [49182, 49183, 49184], [49185, 49186, 49187], [49188, 49189, 49190], [49191, 49192, 49193], [49194, 49195, 49196], [49197, 49198, 49199], [49200, 49201, 49202], [49203, 49204, 49205], [49206, 49207, 49208], [49209, 49210, 49211], [49212, 49213, 49214], [49215, 49216, 49217], [49218, 49219, 49220], [49221, 49222, 49223], [49224, 49225, 49226], [49227, 49228, 49229], [49230, 49231, 49232], [49233, 49234, 49235], [49236, 49237, 49238], [49239, 49240, 49241], [49242, 49243, 49244], [49245, 49246, 49247], [49248, 49249, 49250], [49251, 49252, 49253], [49254, 49255, 49256], [49257, 49258, 49259], [49260, 49261, 49262], [49263, 49264, 49265], [49266, 49267, 49268], [49269, 49270, 49271], [49272, 49273, 49274], [49275, 49276, 49277], [49278, 49279, 49280], [49281, 49282, 49283], [49284, 49285, 49286], [49287, 49288, 49289], [49290, 49291, 49292], [49293, 49294, 49295], [49296, 49297, 49298], [49299, 49300, 49301], [49302, 49303, 49304], [49305, 49306, 49307], [49308, 49309, 49310], [49311, 49312, 49313], [49314, 49315, 49316], [49317, 49318, 49319], [49320, 49321, 49322], [49323, 49324, 49325], [49326, 49327, 49328], [49329, 49330, 49331], [49332, 49333, 49334], [49335, 49336, 49337], [49338, 49339, 49340], [49341, 49342, 49343], [49344, 49345, 49346], [49347, 49348, 49349], [49350, 49351, 49352], [49353, 49354, 49355], [49356, 49357, 49358], [49359, 49360, 49361], [49362, 49363, 49364], [49365, 49366, 49367], [49368, 49369, 49370], [49371, 49372, 49373], [49374, 49375, 49376], [49377, 49378, 49379], [49380, 49381, 49382], [49383, 49384, 49385], [49386, 49387, 49388], [49389, 49390, 49391], [49392, 49393, 49394], [49395, 49396, 49397], [49398, 49399, 49400], [49401, 49402, 49403], [49404, 49405, 49406], [49407, 49408, 49409], [49410, 49411, 49412], [49413, 49414, 49415], [49416, 49417, 49418], [49419, 49420, 49421], [49422, 49423, 49424], [49425, 49426, 49427], [49428, 49429, 49430], [49431, 49432, 49433], [49434, 49435, 49436], [49437, 49438, 49439], [49440, 49441, 49442], [49443, 49444, 49445], [49446, 49447, 49448], [49449, 49450, 49451], [49452, 49453, 49454], [49455, 49456, 49457], [49458, 49459, 49460], [49461, 49462, 49463], [49464, 49465, 49466], [49467, 49468, 49469], [49470, 49471, 49472], [49473, 49474, 49475], [49476, 49477, 49478], [49479, 49480, 49481], [49482, 49483, 49484], [49485, 49486, 49487], [49488, 49489, 49490], [49491, 49492, 49493], [49494, 49495, 49496], [49497, 49498, 49499], [49500, 49501, 49502], [49503, 49504, 49505], [49506, 49507, 49508], [49509, 49510, 49511], [49512, 49513, 49514], [49515, 49516, 49517], [49518, 49519, 49520], [49521, 49522, 49523], [49524, 49525, 49526], [49527, 49528, 49529], [49530, 49531, 49532], [49533, 49534, 49535], [49536, 49537, 49538], [49539, 49540, 49541], [49542, 49543, 49544], [49545, 49546, 49547], [49548, 49549, 49550], [49551, 49552, 49553], [49554, 49555, 49556], [49557, 49558, 49559], [49560, 49561, 49562], [49563, 49564, 49565], [49566, 49567, 49568], [49569, 49570, 49571], [49572, 49573, 49574], [49575, 49576, 49577], [49578, 49579, 49580], [49581, 49582, 49583], [49584, 49585, 49586], [49587, 49588, 49589], [49590, 49591, 49592], [49593, 49594, 49595], [49596, 49597, 49598], [49599, 49600, 49601], [49602, 49603, 49604], [49605, 49606, 49607], [49608, 49609, 49610], [49611, 49612, 49613], [49614, 49615, 49616], [49617, 49618, 49619], [49620, 49621, 49622], [49623, 49624, 49625], [49626, 49627, 49628], [49629, 49630, 49631], [49632, 49633, 49634], [49635, 49636, 49637], [49638, 49639, 49640], [49641, 49642, 49643], [49644, 49645, 49646], [49647, 49648, 49649], [49650, 49651, 49652], [49653, 49654, 49655], [49656, 49657, 49658], [49659, 49660, 49661], [49662, 49663, 49664], [49665, 49666, 49667], [49668, 49669, 49670], [49671, 49672, 49673], [49674, 49675, 49676], [49677, 49678, 49679], [49680, 49681, 49682], [49683, 49684, 49685], [49686, 49687, 49688], [49689, 49690, 49691], [49692, 49693, 49694], [49695, 49696, 49697], [49698, 49699, 49700], [49701, 49702, 49703], [49704, 49705, 49706], [49707, 49708, 49709], [49710, 49711, 49712], [49713, 49714, 49715], [49716, 49717, 49718], [49719, 49720, 49721], [49722, 49723, 49724], [49725, 49726, 49727], [49728, 49729, 49730], [49731, 49732, 49733], [49734, 49735, 49736], [49737, 49738, 49739], [49740, 49741, 49742], [49743, 49744, 49745], [49746, 49747, 49748], [49749, 49750, 49751], [49752, 49753, 49754], [49755, 49756, 49757], [49758, 49759, 49760], [49761, 49762, 49763], [49764, 49765, 49766], [49767, 49768, 49769], [49770, 49771, 49772], [49773, 49774, 49775], [49776, 49777, 49778], [49779, 49780, 49781], [49782, 49783, 49784], [49785, 49786, 49787], [49788, 49789, 49790], [49791, 49792, 49793], [49794, 49795, 49796], [49797, 49798, 49799], [49800, 49801, 49802], [49803, 49804, 49805], [49806, 49807, 49808], [49809, 49810, 49811], [49812, 49813, 49814], [49815, 49816, 49817], [49818, 49819, 49820], [49821, 49822, 49823], [49824, 49825, 49826], [49827, 49828, 49829], [49830, 49831, 49832], [49833, 49834, 49835], [49836, 49837, 49838], [49839, 49840, 49841], [49842, 49843, 49844], [49845, 49846, 49847], [49848, 49849, 49850], [49851, 49852, 49853], [49854, 49855, 49856], [49857, 49858, 49859], [49860, 49861, 49862], [49863, 49864, 49865], [49866, 49867, 49868], [49869, 49870, 49871], [49872, 49873, 49874], [49875, 49876, 49877], [49878, 49879, 49880], [49881, 49882, 49883], [49884, 49885, 49886], [49887, 49888, 49889], [49890, 49891, 49892], [49893, 49894, 49895], [49896, 49897, 49898], [49899, 49900, 49901], [49902, 49903, 49904], [49905, 49906, 49907], [49908, 49909, 49910], [49911, 49912, 49913], [49914, 49915, 49916], [49917, 49918, 49919], [49920, 49921, 49922], [49923, 49924, 49925], [49926, 49927, 49928], [49929, 49930, 49931], [49932, 49933, 49934], [49935, 49936, 49937], [49938, 49939, 49940], [49941, 49942, 49943], [49944, 49945, 49946], [49947, 49948, 49949], [49950, 49951, 49952], [49953, 49954, 49955], [49956, 49957, 49958], [49959, 49960, 49961], [49962, 49963, 49964], [49965, 49966, 49967], [49968, 49969, 49970], [49971, 49972, 49973], [49974, 49975, 49976], [49977, 49978, 49979], [49980, 49981, 49982], [49983, 49984, 49985], [49986, 49987, 49988], [49989, 49990, 49991], [49992, 49993, 49994], [49995, 49996, 49997], [49998, 49999, 50000], [50001, 50002, 50003], [50004, 50005, 50006], [50007, 50008, 50009], [50010, 50011, 50012], [50013, 50014, 50015], [50016, 50017, 50018], [50019, 50020, 50021], [50022, 50023, 50024], [50025, 50026, 50027], [50028, 50029, 50030], [50031, 50032, 50033], [50034, 50035, 50036], [50037, 50038, 50039], [50040, 50041, 50042], [50043, 50044, 50045], [50046, 50047, 50048], [50049, 50050, 50051], [50052, 50053, 50054], [50055, 50056, 50057], [50058, 50059, 50060], [50061, 50062, 50063], [50064, 50065, 50066], [50067, 50068, 50069], [50070, 50071, 50072], [50073, 50074, 50075], [50076, 50077, 50078], [50079, 50080, 50081], [50082, 50083, 50084], [50085, 50086, 50087], [50088, 50089, 50090], [50091, 50092, 50093], [50094, 50095, 50096], [50097, 50098, 50099], [50100, 50101, 50102], [50103, 50104, 50105], [50106, 50107, 50108], [50109, 50110, 50111], [50112, 50113, 50114], [50115, 50116, 50117], [50118, 50119, 50120], [50121, 50122, 50123], [50124, 50125, 50126], [50127, 50128, 50129], [50130, 50131, 50132], [50133, 50134, 50135], [50136, 50137, 50138], [50139, 50140, 50141], [50142, 50143, 50144], [50145, 50146, 50147], [50148, 50149, 50150], [50151, 50152, 50153], [50154, 50155, 50156], [50157, 50158, 50159], [50160, 50161, 50162], [50163, 50164, 50165], [50166, 50167, 50168], [50169, 50170, 50171], [50172, 50173, 50174], [50175, 50176, 50177], [50178, 50179, 50180], [50181, 50182, 50183], [50184, 50185, 50186], [50187, 50188, 50189], [50190, 50191, 50192], [50193, 50194, 50195], [50196, 50197, 50198], [50199, 50200, 50201], [50202, 50203, 50204], [50205, 50206, 50207], [50208, 50209, 50210], [50211, 50212, 50213], [50214, 50215, 50216], [50217, 50218, 50219], [50220, 50221, 50222], [50223, 50224, 50225], [50226, 50227, 50228], [50229, 50230, 50231], [50232, 50233, 50234], [50235, 50236, 50237], [50238, 50239, 50240], [50241, 50242, 50243], [50244, 50245, 50246], [50247, 50248, 50249], [50250, 50251, 50252], [50253, 50254, 50255], [50256, 50257, 50258], [50259, 50260, 50261], [50262, 50263, 50264], [50265, 50266, 50267], [50268, 50269, 50270], [50271, 50272, 50273], [50274, 50275, 50276], [50277, 50278, 50279], [50280, 50281, 50282], [50283, 50284, 50285], [50286, 50287, 50288], [50289, 50290, 50291], [50292, 50293, 50294], [50295, 50296, 50297], [50298, 50299, 50300], [50301, 50302, 50303], [50304, 50305, 50306], [50307, 50308, 50309], [50310, 50311, 50312], [50313, 50314, 50315], [50316, 50317, 50318], [50319, 50320, 50321], [50322, 50323, 50324], [50325, 50326, 50327], [50328, 50329, 50330], [50331, 50332, 50333], [50334, 50335, 50336], [50337, 50338, 50339], [50340, 50341, 50342], [50343, 50344, 50345], [50346, 50347, 50348], [50349, 50350, 50351], [50352, 50353, 50354], [50355, 50356, 50357], [50358, 50359, 50360], [50361, 50362, 50363], [50364, 50365, 50366], [50367, 50368, 50369], [50370, 50371, 50372], [50373, 50374, 50375], [50376, 50377, 50378], [50379, 50380, 50381], [50382, 50383, 50384], [50385, 50386, 50387], [50388, 50389, 50390], [50391, 50392, 50393], [50394, 50395, 50396], [50397, 50398, 50399], [50400, 50401, 50402], [50403, 50404, 50405], [50406, 50407, 50408], [50409, 50410, 50411], [50412, 50413, 50414], [50415, 50416, 50417], [50418, 50419, 50420], [50421, 50422, 50423], [50424, 50425, 50426], [50427, 50428, 50429], [50430, 50431, 50432], [50433, 50434, 50435], [50436, 50437, 50438], [50439, 50440, 50441], [50442, 50443, 50444], [50445, 50446, 50447], [50448, 50449, 50450], [50451, 50452, 50453], [50454, 50455, 50456], [50457, 50458, 50459], [50460, 50461, 50462], [50463, 50464, 50465], [50466, 50467, 50468], [50469, 50470, 50471], [50472, 50473, 50474], [50475, 50476, 50477], [50478, 50479, 50480], [50481, 50482, 50483], [50484, 50485, 50486], [50487, 50488, 50489], [50490, 50491, 50492], [50493, 50494, 50495], [50496, 50497, 50498], [50499, 50500, 50501], [50502, 50503, 50504], [50505, 50506, 50507], [50508, 50509, 50510], [50511, 50512, 50513], [50514, 50515, 50516], [50517, 50518, 50519], [50520, 50521, 50522], [50523, 50524, 50525], [50526, 50527, 50528], [50529, 50530, 50531], [50532, 50533, 50534], [50535, 50536, 50537], [50538, 50539, 50540], [50541, 50542, 50543], [50544, 50545, 50546], [50547, 50548, 50549], [50550, 50551, 50552], [50553, 50554, 50555], [50556, 50557, 50558], [50559, 50560, 50561], [50562, 50563, 50564], [50565, 50566, 50567], [50568, 50569, 50570], [50571, 50572, 50573], [50574, 50575, 50576], [50577, 50578, 50579], [50580, 50581, 50582], [50583, 50584, 50585], [50586, 50587, 50588], [50589, 50590, 50591], [50592, 50593, 50594], [50595, 50596, 50597], [50598, 50599, 50600], [50601, 50602, 50603], [50604, 50605, 50606], [50607, 50608, 50609], [50610, 50611, 50612], [50613, 50614, 50615], [50616, 50617, 50618], [50619, 50620, 50621], [50622, 50623, 50624], [50625, 50626, 50627], [50628, 50629, 50630], [50631, 50632, 50633], [50634, 50635, 50636], [50637, 50638, 50639], [50640, 50641, 50642], [50643, 50644, 50645], [50646, 50647, 50648], [50649, 50650, 50651], [50652, 50653, 50654], [50655, 50656, 50657], [50658, 50659, 50660], [50661, 50662, 50663], [50664, 50665, 50666], [50667, 50668, 50669], [50670, 50671, 50672], [50673, 50674, 50675], [50676, 50677, 50678], [50679, 50680, 50681], [50682, 50683, 50684], [50685, 50686, 50687], [50688, 50689, 50690], [50691, 50692, 50693], [50694, 50695, 50696], [50697, 50698, 50699], [50700, 50701, 50702], [50703, 50704, 50705], [50706, 50707, 50708], [50709, 50710, 50711], [50712, 50713, 50714], [50715, 50716, 50717], [50718, 50719, 50720], [50721, 50722, 50723], [50724, 50725, 50726], [50727, 50728, 50729], [50730, 50731, 50732], [50733, 50734, 50735], [50736, 50737, 50738], [50739, 50740, 50741], [50742, 50743, 50744], [50745, 50746, 50747], [50748, 50749, 50750], [50751, 50752, 50753], [50754, 50755, 50756], [50757, 50758, 50759], [50760, 50761, 50762], [50763, 50764, 50765], [50766, 50767, 50768], [50769, 50770, 50771], [50772, 50773, 50774], [50775, 50776, 50777], [50778, 50779, 50780], [50781, 50782, 50783], [50784, 50785, 50786], [50787, 50788, 50789], [50790, 50791, 50792], [50793, 50794, 50795], [50796, 50797, 50798], [50799, 50800, 50801], [50802, 50803, 50804], [50805, 50806, 50807], [50808, 50809, 50810], [50811, 50812, 50813], [50814, 50815, 50816], [50817, 50818, 50819], [50820, 50821, 50822], [50823, 50824, 50825], [50826, 50827, 50828], [50829, 50830, 50831], [50832, 50833, 50834], [50835, 50836, 50837], [50838, 50839, 50840], [50841, 50842, 50843], [50844, 50845, 50846], [50847, 50848, 50849], [50850, 50851, 50852], [50853, 50854, 50855], [50856, 50857, 50858], [50859, 50860, 50861], [50862, 50863, 50864], [50865, 50866, 50867], [50868, 50869, 50870], [50871, 50872, 50873], [50874, 50875, 50876], [50877, 50878, 50879], [50880, 50881, 50882], [50883, 50884, 50885], [50886, 50887, 50888], [50889, 50890, 50891], [50892, 50893, 50894], [50895, 50896, 50897], [50898, 50899, 50900], [50901, 50902, 50903], [50904, 50905, 50906], [50907, 50908, 50909], [50910, 50911, 50912], [50913, 50914, 50915], [50916, 50917, 50918], [50919, 50920, 50921], [50922, 50923, 50924], [50925, 50926, 50927], [50928, 50929, 50930], [50931, 50932, 50933], [50934, 50935, 50936], [50937, 50938, 50939], [50940, 50941, 50942], [50943, 50944, 50945], [50946, 50947, 50948], [50949, 50950, 50951], [50952, 50953, 50954], [50955, 50956, 50957], [50958, 50959, 50960], [50961, 50962, 50963], [50964, 50965, 50966], [50967, 50968, 50969], [50970, 50971, 50972], [50973, 50974, 50975], [50976, 50977, 50978], [50979, 50980, 50981], [50982, 50983, 50984], [50985, 50986, 50987], [50988, 50989, 50990], [50991, 50992, 50993], [50994, 50995, 50996], [50997, 50998, 50999], [51000, 51001, 51002], [51003, 51004, 51005], [51006, 51007, 51008], [51009, 51010, 51011], [51012, 51013, 51014], [51015, 51016, 51017], [51018, 51019, 51020], [51021, 51022, 51023], [51024, 51025, 51026], [51027, 51028, 51029], [51030, 51031, 51032], [51033, 51034, 51035], [51036, 51037, 51038], [51039, 51040, 51041], [51042, 51043, 51044], [51045, 51046, 51047], [51048, 51049, 51050], [51051, 51052, 51053], [51054, 51055, 51056], [51057, 51058, 51059], [51060, 51061, 51062], [51063, 51064, 51065], [51066, 51067, 51068], [51069, 51070, 51071], [51072, 51073, 51074], [51075, 51076, 51077], [51078, 51079, 51080], [51081, 51082, 51083], [51084, 51085, 51086], [51087, 51088, 51089], [51090, 51091, 51092], [51093, 51094, 51095], [51096, 51097, 51098], [51099, 51100, 51101], [51102, 51103, 51104], [51105, 51106, 51107], [51108, 51109, 51110], [51111, 51112, 51113], [51114, 51115, 51116], [51117, 51118, 51119], [51120, 51121, 51122], [51123, 51124, 51125], [51126, 51127, 51128], [51129, 51130, 51131], [51132, 51133, 51134], [51135, 51136, 51137], [51138, 51139, 51140], [51141, 51142, 51143], [51144, 51145, 51146], [51147, 51148, 51149], [51150, 51151, 51152], [51153, 51154, 51155], [51156, 51157, 51158], [51159, 51160, 51161], [51162, 51163, 51164], [51165, 51166, 51167], [51168, 51169, 51170], [51171, 51172, 51173], [51174, 51175, 51176], [51177, 51178, 51179], [51180, 51181, 51182], [51183, 51184, 51185], [51186, 51187, 51188], [51189, 51190, 51191], [51192, 51193, 51194], [51195, 51196, 51197], [51198, 51199, 51200], [51201, 51202, 51203], [51204, 51205, 51206], [51207, 51208, 51209], [51210, 51211, 51212], [51213, 51214, 51215], [51216, 51217, 51218], [51219, 51220, 51221], [51222, 51223, 51224], [51225, 51226, 51227], [51228, 51229, 51230], [51231, 51232, 51233], [51234, 51235, 51236], [51237, 51238, 51239], [51240, 51241, 51242], [51243, 51244, 51245], [51246, 51247, 51248], [51249, 51250, 51251], [51252, 51253, 51254], [51255, 51256, 51257], [51258, 51259, 51260], [51261, 51262, 51263], [51264, 51265, 51266], [51267, 51268, 51269], [51270, 51271, 51272], [51273, 51274, 51275], [51276, 51277, 51278], [51279, 51280, 51281], [51282, 51283, 51284], [51285, 51286, 51287], [51288, 51289, 51290], [51291, 51292, 51293], [51294, 51295, 51296], [51297, 51298, 51299], [51300, 51301, 51302], [51303, 51304, 51305], [51306, 51307, 51308], [51309, 51310, 51311], [51312, 51313, 51314], [51315, 51316, 51317], [51318, 51319, 51320], [51321, 51322, 51323], [51324, 51325, 51326], [51327, 51328, 51329], [51330, 51331, 51332], [51333, 51334, 51335], [51336, 51337, 51338], [51339, 51340, 51341], [51342, 51343, 51344], [51345, 51346, 51347], [51348, 51349, 51350], [51351, 51352, 51353], [51354, 51355, 51356], [51357, 51358, 51359], [51360, 51361, 51362], [51363, 51364, 51365], [51366, 51367, 51368], [51369, 51370, 51371], [51372, 51373, 51374], [51375, 51376, 51377], [51378, 51379, 51380], [51381, 51382, 51383], [51384, 51385, 51386], [51387, 51388, 51389], [51390, 51391, 51392], [51393, 51394, 51395], [51396, 51397, 51398], [51399, 51400, 51401], [51402, 51403, 51404], [51405, 51406, 51407], [51408, 51409, 51410], [51411, 51412, 51413], [51414, 51415, 51416], [51417, 51418, 51419], [51420, 51421, 51422], [51423, 51424, 51425], [51426, 51427, 51428], [51429, 51430, 51431], [51432, 51433, 51434], [51435, 51436, 51437], [51438, 51439, 51440], [51441, 51442, 51443], [51444, 51445, 51446], [51447, 51448, 51449], [51450, 51451, 51452], [51453, 51454, 51455], [51456, 51457, 51458], [51459, 51460, 51461], [51462, 51463, 51464], [51465, 51466, 51467], [51468, 51469, 51470], [51471, 51472, 51473], [51474, 51475, 51476], [51477, 51478, 51479], [51480, 51481, 51482], [51483, 51484, 51485], [51486, 51487, 51488], [51489, 51490, 51491], [51492, 51493, 51494], [51495, 51496, 51497], [51498, 51499, 51500], [51501, 51502, 51503], [51504, 51505, 51506], [51507, 51508, 51509], [51510, 51511, 51512], [51513, 51514, 51515], [51516, 51517, 51518], [51519, 51520, 51521], [51522, 51523, 51524], [51525, 51526, 51527], [51528, 51529, 51530], [51531, 51532, 51533], [51534, 51535, 51536], [51537, 51538, 51539], [51540, 51541, 51542], [51543, 51544, 51545], [51546, 51547, 51548], [51549, 51550, 51551], [51552, 51553, 51554], [51555, 51556, 51557], [51558, 51559, 51560], [51561, 51562, 51563], [51564, 51565, 51566], [51567, 51568, 51569], [51570, 51571, 51572], [51573, 51574, 51575], [51576, 51577, 51578], [51579, 51580, 51581], [51582, 51583, 51584], [51585, 51586, 51587], [51588, 51589, 51590], [51591, 51592, 51593], [51594, 51595, 51596], [51597, 51598, 51599], [51600, 51601, 51602], [51603, 51604, 51605], [51606, 51607, 51608], [51609, 51610, 51611], [51612, 51613, 51614], [51615, 51616, 51617], [51618, 51619, 51620], [51621, 51622, 51623], [51624, 51625, 51626], [51627, 51628, 51629], [51630, 51631, 51632], [51633, 51634, 51635], [51636, 51637, 51638], [51639, 51640, 51641], [51642, 51643, 51644], [51645, 51646, 51647], [51648, 51649, 51650], [51651, 51652, 51653], [51654, 51655, 51656], [51657, 51658, 51659], [51660, 51661, 51662], [51663, 51664, 51665], [51666, 51667, 51668], [51669, 51670, 51671], [51672, 51673, 51674], [51675, 51676, 51677], [51678, 51679, 51680], [51681, 51682, 51683], [51684, 51685, 51686], [51687, 51688, 51689], [51690, 51691, 51692], [51693, 51694, 51695], [51696, 51697, 51698], [51699, 51700, 51701], [51702, 51703, 51704], [51705, 51706, 51707], [51708, 51709, 51710], [51711, 51712, 51713], [51714, 51715, 51716], [51717, 51718, 51719], [51720, 51721, 51722], [51723, 51724, 51725], [51726, 51727, 51728], [51729, 51730, 51731], [51732, 51733, 51734], [51735, 51736, 51737], [51738, 51739, 51740], [51741, 51742, 51743], [51744, 51745, 51746], [51747, 51748, 51749], [51750, 51751, 51752], [51753, 51754, 51755], [51756, 51757, 51758], [51759, 51760, 51761], [51762, 51763, 51764], [51765, 51766, 51767], [51768, 51769, 51770], [51771, 51772, 51773], [51774, 51775, 51776], [51777, 51778, 51779], [51780, 51781, 51782], [51783, 51784, 51785], [51786, 51787, 51788], [51789, 51790, 51791], [51792, 51793, 51794], [51795, 51796, 51797], [51798, 51799, 51800], [51801, 51802, 51803], [51804, 51805, 51806], [51807, 51808, 51809], [51810, 51811, 51812], [51813, 51814, 51815], [51816, 51817, 51818], [51819, 51820, 51821], [51822, 51823, 51824], [51825, 51826, 51827], [51828, 51829, 51830], [51831, 51832, 51833], [51834, 51835, 51836], [51837, 51838, 51839], [51840, 51841, 51842], [51843, 51844, 51845], [51846, 51847, 51848], [51849, 51850, 51851], [51852, 51853, 51854], [51855, 51856, 51857], [51858, 51859, 51860], [51861, 51862, 51863], [51864, 51865, 51866], [51867, 51868, 51869], [51870, 51871, 51872], [51873, 51874, 51875], [51876, 51877, 51878], [51879, 51880, 51881], [51882, 51883, 51884], [51885, 51886, 51887], [51888, 51889, 51890], [51891, 51892, 51893], [51894, 51895, 51896], [51897, 51898, 51899], [51900, 51901, 51902], [51903, 51904, 51905], [51906, 51907, 51908], [51909, 51910, 51911], [51912, 51913, 51914], [51915, 51916, 51917], [51918, 51919, 51920], [51921, 51922, 51923], [51924, 51925, 51926], [51927, 51928, 51929], [51930, 51931, 51932], [51933, 51934, 51935], [51936, 51937, 51938], [51939, 51940, 51941], [51942, 51943, 51944], [51945, 51946, 51947], [51948, 51949, 51950], [51951, 51952, 51953], [51954, 51955, 51956], [51957, 51958, 51959], [51960, 51961, 51962], [51963, 51964, 51965], [51966, 51967, 51968], [51969, 51970, 51971], [51972, 51973, 51974], [51975, 51976, 51977], [51978, 51979, 51980], [51981, 51982, 51983], [51984, 51985, 51986], [51987, 51988, 51989], [51990, 51991, 51992], [51993, 51994, 51995], [51996, 51997, 51998], [51999, 52000, 52001], [52002, 52003, 52004], [52005, 52006, 52007], [52008, 52009, 52010], [52011, 52012, 52013], [52014, 52015, 52016], [52017, 52018, 52019], [52020, 52021, 52022], [52023, 52024, 52025], [52026, 52027, 52028], [52029, 52030, 52031], [52032, 52033, 52034], [52035, 52036, 52037], [52038, 52039, 52040], [52041, 52042, 52043], [52044, 52045, 52046], [52047, 52048, 52049], [52050, 52051, 52052], [52053, 52054, 52055], [52056, 52057, 52058], [52059, 52060, 52061], [52062, 52063, 52064], [52065, 52066, 52067], [52068, 52069, 52070], [52071, 52072, 52073], [52074, 52075, 52076], [52077, 52078, 52079], [52080, 52081, 52082], [52083, 52084, 52085], [52086, 52087, 52088], [52089, 52090, 52091], [52092, 52093, 52094], [52095, 52096, 52097], [52098, 52099, 52100], [52101, 52102, 52103], [52104, 52105, 52106], [52107, 52108, 52109], [52110, 52111, 52112], [52113, 52114, 52115], [52116, 52117, 52118], [52119, 52120, 52121], [52122, 52123, 52124], [52125, 52126, 52127], [52128, 52129, 52130], [52131, 52132, 52133], [52134, 52135, 52136], [52137, 52138, 52139], [52140, 52141, 52142], [52143, 52144, 52145], [52146, 52147, 52148], [52149, 52150, 52151], [52152, 52153, 52154], [52155, 52156, 52157], [52158, 52159, 52160], [52161, 52162, 52163], [52164, 52165, 52166], [52167, 52168, 52169], [52170, 52171, 52172], [52173, 52174, 52175], [52176, 52177, 52178], [52179, 52180, 52181], [52182, 52183, 52184], [52185, 52186, 52187], [52188, 52189, 52190], [52191, 52192, 52193], [52194, 52195, 52196], [52197, 52198, 52199], [52200, 52201, 52202], [52203, 52204, 52205], [52206, 52207, 52208], [52209, 52210, 52211], [52212, 52213, 52214], [52215, 52216, 52217], [52218, 52219, 52220], [52221, 52222, 52223], [52224, 52225, 52226], [52227, 52228, 52229], [52230, 52231, 52232], [52233, 52234, 52235], [52236, 52237, 52238], [52239, 52240, 52241], [52242, 52243, 52244], [52245, 52246, 52247], [52248, 52249, 52250], [52251, 52252, 52253], [52254, 52255, 52256], [52257, 52258, 52259], [52260, 52261, 52262], [52263, 52264, 52265], [52266, 52267, 52268], [52269, 52270, 52271], [52272, 52273, 52274], [52275, 52276, 52277], [52278, 52279, 52280], [52281, 52282, 52283], [52284, 52285, 52286], [52287, 52288, 52289], [52290, 52291, 52292], [52293, 52294, 52295], [52296, 52297, 52298], [52299, 52300, 52301], [52302, 52303, 52304], [52305, 52306, 52307], [52308, 52309, 52310], [52311, 52312, 52313], [52314, 52315, 52316], [52317, 52318, 52319], [52320, 52321, 52322], [52323, 52324, 52325], [52326, 52327, 52328], [52329, 52330, 52331], [52332, 52333, 52334], [52335, 52336, 52337], [52338, 52339, 52340], [52341, 52342, 52343], [52344, 52345, 52346], [52347, 52348, 52349], [52350, 52351, 52352], [52353, 52354, 52355], [52356, 52357, 52358], [52359, 52360, 52361], [52362, 52363, 52364], [52365, 52366, 52367], [52368, 52369, 52370], [52371, 52372, 52373], [52374, 52375, 52376], [52377, 52378, 52379], [52380, 52381, 52382], [52383, 52384, 52385], [52386, 52387, 52388], [52389, 52390, 52391], [52392, 52393, 52394], [52395, 52396, 52397], [52398, 52399, 52400], [52401, 52402, 52403], [52404, 52405, 52406], [52407, 52408, 52409], [52410, 52411, 52412], [52413, 52414, 52415], [52416, 52417, 52418], [52419, 52420, 52421], [52422, 52423, 52424], [52425, 52426, 52427], [52428, 52429, 52430], [52431, 52432, 52433], [52434, 52435, 52436], [52437, 52438, 52439], [52440, 52441, 52442], [52443, 52444, 52445], [52446, 52447, 52448], [52449, 52450, 52451], [52452, 52453, 52454], [52455, 52456, 52457], [52458, 52459, 52460], [52461, 52462, 52463], [52464, 52465, 52466], [52467, 52468, 52469], [52470, 52471, 52472], [52473, 52474, 52475], [52476, 52477, 52478], [52479, 52480, 52481], [52482, 52483, 52484], [52485, 52486, 52487], [52488, 52489, 52490], [52491, 52492, 52493], [52494, 52495, 52496], [52497, 52498, 52499], [52500, 52501, 52502], [52503, 52504, 52505], [52506, 52507, 52508], [52509, 52510, 52511], [52512, 52513, 52514], [52515, 52516, 52517], [52518, 52519, 52520], [52521, 52522, 52523], [52524, 52525, 52526], [52527, 52528, 52529], [52530, 52531, 52532], [52533, 52534, 52535], [52536, 52537, 52538], [52539, 52540, 52541], [52542, 52543, 52544], [52545, 52546, 52547], [52548, 52549, 52550], [52551, 52552, 52553], [52554, 52555, 52556], [52557, 52558, 52559], [52560, 52561, 52562], [52563, 52564, 52565], [52566, 52567, 52568], [52569, 52570, 52571], [52572, 52573, 52574], [52575, 52576, 52577], [52578, 52579, 52580], [52581, 52582, 52583], [52584, 52585, 52586], [52587, 52588, 52589], [52590, 52591, 52592], [52593, 52594, 52595], [52596, 52597, 52598], [52599, 52600, 52601], [52602, 52603, 52604], [52605, 52606, 52607], [52608, 52609, 52610], [52611, 52612, 52613], [52614, 52615, 52616], [52617, 52618, 52619], [52620, 52621, 52622], [52623, 52624, 52625], [52626, 52627, 52628], [52629, 52630, 52631], [52632, 52633, 52634], [52635, 52636, 52637], [52638, 52639, 52640], [52641, 52642, 52643], [52644, 52645, 52646], [52647, 52648, 52649], [52650, 52651, 52652], [52653, 52654, 52655], [52656, 52657, 52658], [52659, 52660, 52661], [52662, 52663, 52664], [52665, 52666, 52667], [52668, 52669, 52670], [52671, 52672, 52673], [52674, 52675, 52676], [52677, 52678, 52679], [52680, 52681, 52682], [52683, 52684, 52685], [52686, 52687, 52688], [52689, 52690, 52691], [52692, 52693, 52694], [52695, 52696, 52697], [52698, 52699, 52700], [52701, 52702, 52703], [52704, 52705, 52706], [52707, 52708, 52709], [52710, 52711, 52712], [52713, 52714, 52715], [52716, 52717, 52718], [52719, 52720, 52721], [52722, 52723, 52724], [52725, 52726, 52727], [52728, 52729, 52730], [52731, 52732, 52733], [52734, 52735, 52736], [52737, 52738, 52739], [52740, 52741, 52742], [52743, 52744, 52745], [52746, 52747, 52748], [52749, 52750, 52751], [52752, 52753, 52754], [52755, 52756, 52757], [52758, 52759, 52760], [52761, 52762, 52763], [52764, 52765, 52766], [52767, 52768, 52769], [52770, 52771, 52772], [52773, 52774, 52775], [52776, 52777, 52778], [52779, 52780, 52781], [52782, 52783, 52784], [52785, 52786, 52787], [52788, 52789, 52790], [52791, 52792, 52793], [52794, 52795, 52796], [52797, 52798, 52799], [52800, 52801, 52802], [52803, 52804, 52805], [52806, 52807, 52808], [52809, 52810, 52811], [52812, 52813, 52814], [52815, 52816, 52817], [52818, 52819, 52820], [52821, 52822, 52823], [52824, 52825, 52826], [52827, 52828, 52829], [52830, 52831, 52832], [52833, 52834, 52835], [52836, 52837, 52838], [52839, 52840, 52841], [52842, 52843, 52844], [52845, 52846, 52847], [52848, 52849, 52850], [52851, 52852, 52853], [52854, 52855, 52856], [52857, 52858, 52859], [52860, 52861, 52862], [52863, 52864, 52865], [52866, 52867, 52868], [52869, 52870, 52871], [52872, 52873, 52874], [52875, 52876, 52877], [52878, 52879, 52880], [52881, 52882, 52883], [52884, 52885, 52886], [52887, 52888, 52889], [52890, 52891, 52892], [52893, 52894, 52895], [52896, 52897, 52898], [52899, 52900, 52901], [52902, 52903, 52904], [52905, 52906, 52907], [52908, 52909, 52910], [52911, 52912, 52913], [52914, 52915, 52916], [52917, 52918, 52919], [52920, 52921, 52922], [52923, 52924, 52925], [52926, 52927, 52928], [52929, 52930, 52931], [52932, 52933, 52934], [52935, 52936, 52937], [52938, 52939, 52940], [52941, 52942, 52943], [52944, 52945, 52946], [52947, 52948, 52949], [52950, 52951, 52952], [52953, 52954, 52955], [52956, 52957, 52958], [52959, 52960, 52961], [52962, 52963, 52964], [52965, 52966, 52967], [52968, 52969, 52970], [52971, 52972, 52973], [52974, 52975, 52976], [52977, 52978, 52979], [52980, 52981, 52982], [52983, 52984, 52985], [52986, 52987, 52988], [52989, 52990, 52991], [52992, 52993, 52994], [52995, 52996, 52997], [52998, 52999, 53000], [53001, 53002, 53003], [53004, 53005, 53006], [53007, 53008, 53009], [53010, 53011, 53012], [53013, 53014, 53015], [53016, 53017, 53018], [53019, 53020, 53021], [53022, 53023, 53024], [53025, 53026, 53027], [53028, 53029, 53030], [53031, 53032, 53033], [53034, 53035, 53036], [53037, 53038, 53039], [53040, 53041, 53042], [53043, 53044, 53045], [53046, 53047, 53048], [53049, 53050, 53051], [53052, 53053, 53054], [53055, 53056, 53057], [53058, 53059, 53060], [53061, 53062, 53063], [53064, 53065, 53066], [53067, 53068, 53069], [53070, 53071, 53072], [53073, 53074, 53075], [53076, 53077, 53078], [53079, 53080, 53081], [53082, 53083, 53084], [53085, 53086, 53087], [53088, 53089, 53090], [53091, 53092, 53093], [53094, 53095, 53096], [53097, 53098, 53099], [53100, 53101, 53102], [53103, 53104, 53105], [53106, 53107, 53108], [53109, 53110, 53111], [53112, 53113, 53114], [53115, 53116, 53117], [53118, 53119, 53120], [53121, 53122, 53123], [53124, 53125, 53126], [53127, 53128, 53129], [53130, 53131, 53132], [53133, 53134, 53135], [53136, 53137, 53138], [53139, 53140, 53141], [53142, 53143, 53144], [53145, 53146, 53147], [53148, 53149, 53150], [53151, 53152, 53153], [53154, 53155, 53156], [53157, 53158, 53159], [53160, 53161, 53162], [53163, 53164, 53165], [53166, 53167, 53168], [53169, 53170, 53171], [53172, 53173, 53174], [53175, 53176, 53177], [53178, 53179, 53180], [53181, 53182, 53183], [53184, 53185, 53186], [53187, 53188, 53189], [53190, 53191, 53192], [53193, 53194, 53195], [53196, 53197, 53198], [53199, 53200, 53201], [53202, 53203, 53204], [53205, 53206, 53207], [53208, 53209, 53210], [53211, 53212, 53213], [53214, 53215, 53216], [53217, 53218, 53219], [53220, 53221, 53222], [53223, 53224, 53225], [53226, 53227, 53228], [53229, 53230, 53231], [53232, 53233, 53234], [53235, 53236, 53237], [53238, 53239, 53240], [53241, 53242, 53243], [53244, 53245, 53246], [53247, 53248, 53249], [53250, 53251, 53252], [53253, 53254, 53255], [53256, 53257, 53258], [53259, 53260, 53261], [53262, 53263, 53264], [53265, 53266, 53267], [53268, 53269, 53270], [53271, 53272, 53273], [53274, 53275, 53276], [53277, 53278, 53279], [53280, 53281, 53282], [53283, 53284, 53285], [53286, 53287, 53288], [53289, 53290, 53291], [53292, 53293, 53294], [53295, 53296, 53297], [53298, 53299, 53300], [53301, 53302, 53303], [53304, 53305, 53306], [53307, 53308, 53309], [53310, 53311, 53312], [53313, 53314, 53315], [53316, 53317, 53318], [53319, 53320, 53321], [53322, 53323, 53324], [53325, 53326, 53327], [53328, 53329, 53330], [53331, 53332, 53333], [53334, 53335, 53336], [53337, 53338, 53339], [53340, 53341, 53342], [53343, 53344, 53345], [53346, 53347, 53348], [53349, 53350, 53351], [53352, 53353, 53354], [53355, 53356, 53357], [53358, 53359, 53360], [53361, 53362, 53363], [53364, 53365, 53366], [53367, 53368, 53369], [53370, 53371, 53372], [53373, 53374, 53375], [53376, 53377, 53378], [53379, 53380, 53381], [53382, 53383, 53384], [53385, 53386, 53387], [53388, 53389, 53390], [53391, 53392, 53393], [53394, 53395, 53396], [53397, 53398, 53399], [53400, 53401, 53402], [53403, 53404, 53405], [53406, 53407, 53408], [53409, 53410, 53411], [53412, 53413, 53414], [53415, 53416, 53417], [53418, 53419, 53420], [53421, 53422, 53423], [53424, 53425, 53426], [53427, 53428, 53429], [53430, 53431, 53432], [53433, 53434, 53435], [53436, 53437, 53438], [53439, 53440, 53441], [53442, 53443, 53444], [53445, 53446, 53447], [53448, 53449, 53450], [53451, 53452, 53453], [53454, 53455, 53456], [53457, 53458, 53459], [53460, 53461, 53462], [53463, 53464, 53465], [53466, 53467, 53468], [53469, 53470, 53471], [53472, 53473, 53474], [53475, 53476, 53477], [53478, 53479, 53480], [53481, 53482, 53483], [53484, 53485, 53486], [53487, 53488, 53489], [53490, 53491, 53492], [53493, 53494, 53495], [53496, 53497, 53498], [53499, 53500, 53501], [53502, 53503, 53504], [53505, 53506, 53507], [53508, 53509, 53510], [53511, 53512, 53513], [53514, 53515, 53516], [53517, 53518, 53519], [53520, 53521, 53522], [53523, 53524, 53525], [53526, 53527, 53528], [53529, 53530, 53531], [53532, 53533, 53534], [53535, 53536, 53537], [53538, 53539, 53540], [53541, 53542, 53543], [53544, 53545, 53546], [53547, 53548, 53549], [53550, 53551, 53552], [53553, 53554, 53555], [53556, 53557, 53558], [53559, 53560, 53561], [53562, 53563, 53564], [53565, 53566, 53567], [53568, 53569, 53570], [53571, 53572, 53573], [53574, 53575, 53576], [53577, 53578, 53579], [53580, 53581, 53582], [53583, 53584, 53585], [53586, 53587, 53588], [53589, 53590, 53591], [53592, 53593, 53594], [53595, 53596, 53597], [53598, 53599, 53600], [53601, 53602, 53603], [53604, 53605, 53606], [53607, 53608, 53609], [53610, 53611, 53612], [53613, 53614, 53615], [53616, 53617, 53618], [53619, 53620, 53621], [53622, 53623, 53624], [53625, 53626, 53627], [53628, 53629, 53630], [53631, 53632, 53633], [53634, 53635, 53636], [53637, 53638, 53639], [53640, 53641, 53642], [53643, 53644, 53645], [53646, 53647, 53648], [53649, 53650, 53651], [53652, 53653, 53654], [53655, 53656, 53657], [53658, 53659, 53660], [53661, 53662, 53663], [53664, 53665, 53666], [53667, 53668, 53669], [53670, 53671, 53672], [53673, 53674, 53675], [53676, 53677, 53678], [53679, 53680, 53681], [53682, 53683, 53684], [53685, 53686, 53687], [53688, 53689, 53690], [53691, 53692, 53693], [53694, 53695, 53696], [53697, 53698, 53699], [53700, 53701, 53702], [53703, 53704, 53705], [53706, 53707, 53708], [53709, 53710, 53711], [53712, 53713, 53714], [53715, 53716, 53717], [53718, 53719, 53720], [53721, 53722, 53723], [53724, 53725, 53726], [53727, 53728, 53729], [53730, 53731, 53732], [53733, 53734, 53735], [53736, 53737, 53738], [53739, 53740, 53741], [53742, 53743, 53744], [53745, 53746, 53747], [53748, 53749, 53750], [53751, 53752, 53753], [53754, 53755, 53756], [53757, 53758, 53759], [53760, 53761, 53762], [53763, 53764, 53765], [53766, 53767, 53768], [53769, 53770, 53771], [53772, 53773, 53774], [53775, 53776, 53777], [53778, 53779, 53780], [53781, 53782, 53783], [53784, 53785, 53786], [53787, 53788, 53789], [53790, 53791, 53792], [53793, 53794, 53795], [53796, 53797, 53798], [53799, 53800, 53801], [53802, 53803, 53804], [53805, 53806, 53807], [53808, 53809, 53810], [53811, 53812, 53813], [53814, 53815, 53816], [53817, 53818, 53819], [53820, 53821, 53822], [53823, 53824, 53825], [53826, 53827, 53828], [53829, 53830, 53831], [53832, 53833, 53834], [53835, 53836, 53837], [53838, 53839, 53840], [53841, 53842, 53843], [53844, 53845, 53846], [53847, 53848, 53849], [53850, 53851, 53852], [53853, 53854, 53855], [53856, 53857, 53858], [53859, 53860, 53861], [53862, 53863, 53864], [53865, 53866, 53867], [53868, 53869, 53870], [53871, 53872, 53873], [53874, 53875, 53876], [53877, 53878, 53879], [53880, 53881, 53882], [53883, 53884, 53885], [53886, 53887, 53888], [53889, 53890, 53891], [53892, 53893, 53894], [53895, 53896, 53897], [53898, 53899, 53900], [53901, 53902, 53903], [53904, 53905, 53906], [53907, 53908, 53909], [53910, 53911, 53912], [53913, 53914, 53915], [53916, 53917, 53918], [53919, 53920, 53921], [53922, 53923, 53924], [53925, 53926, 53927], [53928, 53929, 53930], [53931, 53932, 53933], [53934, 53935, 53936], [53937, 53938, 53939], [53940, 53941, 53942], [53943, 53944, 53945], [53946, 53947, 53948], [53949, 53950, 53951], [53952, 53953, 53954], [53955, 53956, 53957], [53958, 53959, 53960], [53961, 53962, 53963], [53964, 53965, 53966], [53967, 53968, 53969], [53970, 53971, 53972], [53973, 53974, 53975], [53976, 53977, 53978], [53979, 53980, 53981], [53982, 53983, 53984], [53985, 53986, 53987], [53988, 53989, 53990], [53991, 53992, 53993], [53994, 53995, 53996], [53997, 53998, 53999], [54000, 54001, 54002], [54003, 54004, 54005], [54006, 54007, 54008], [54009, 54010, 54011], [54012, 54013, 54014], [54015, 54016, 54017], [54018, 54019, 54020], [54021, 54022, 54023], [54024, 54025, 54026], [54027, 54028, 54029], [54030, 54031, 54032], [54033, 54034, 54035], [54036, 54037, 54038], [54039, 54040, 54041], [54042, 54043, 54044], [54045, 54046, 54047], [54048, 54049, 54050], [54051, 54052, 54053], [54054, 54055, 54056], [54057, 54058, 54059], [54060, 54061, 54062], [54063, 54064, 54065], [54066, 54067, 54068], [54069, 54070, 54071], [54072, 54073, 54074], [54075, 54076, 54077], [54078, 54079, 54080], [54081, 54082, 54083], [54084, 54085, 54086], [54087, 54088, 54089], [54090, 54091, 54092], [54093, 54094, 54095], [54096, 54097, 54098], [54099, 54100, 54101], [54102, 54103, 54104], [54105, 54106, 54107], [54108, 54109, 54110], [54111, 54112, 54113], [54114, 54115, 54116], [54117, 54118, 54119], [54120, 54121, 54122], [54123, 54124, 54125], [54126, 54127, 54128], [54129, 54130, 54131], [54132, 54133, 54134], [54135, 54136, 54137], [54138, 54139, 54140], [54141, 54142, 54143], [54144, 54145, 54146], [54147, 54148, 54149], [54150, 54151, 54152], [54153, 54154, 54155], [54156, 54157, 54158], [54159, 54160, 54161], [54162, 54163, 54164], [54165, 54166, 54167], [54168, 54169, 54170], [54171, 54172, 54173], [54174, 54175, 54176], [54177, 54178, 54179], [54180, 54181, 54182], [54183, 54184, 54185], [54186, 54187, 54188], [54189, 54190, 54191], [54192, 54193, 54194], [54195, 54196, 54197], [54198, 54199, 54200], [54201, 54202, 54203], [54204, 54205, 54206], [54207, 54208, 54209], [54210, 54211, 54212], [54213, 54214, 54215], [54216, 54217, 54218], [54219, 54220, 54221], [54222, 54223, 54224], [54225, 54226, 54227], [54228, 54229, 54230], [54231, 54232, 54233], [54234, 54235, 54236], [54237, 54238, 54239], [54240, 54241, 54242], [54243, 54244, 54245], [54246, 54247, 54248], [54249, 54250, 54251], [54252, 54253, 54254], [54255, 54256, 54257], [54258, 54259, 54260], [54261, 54262, 54263], [54264, 54265, 54266], [54267, 54268, 54269], [54270, 54271, 54272], [54273, 54274, 54275], [54276, 54277, 54278], [54279, 54280, 54281], [54282, 54283, 54284], [54285, 54286, 54287], [54288, 54289, 54290], [54291, 54292, 54293], [54294, 54295, 54296], [54297, 54298, 54299], [54300, 54301, 54302], [54303, 54304, 54305], [54306, 54307, 54308], [54309, 54310, 54311], [54312, 54313, 54314], [54315, 54316, 54317], [54318, 54319, 54320], [54321, 54322, 54323], [54324, 54325, 54326], [54327, 54328, 54329], [54330, 54331, 54332], [54333, 54334, 54335], [54336, 54337, 54338], [54339, 54340, 54341], [54342, 54343, 54344], [54345, 54346, 54347], [54348, 54349, 54350], [54351, 54352, 54353], [54354, 54355, 54356], [54357, 54358, 54359], [54360, 54361, 54362], [54363, 54364, 54365], [54366, 54367, 54368], [54369, 54370, 54371], [54372, 54373, 54374], [54375, 54376, 54377], [54378, 54379, 54380], [54381, 54382, 54383], [54384, 54385, 54386], [54387, 54388, 54389], [54390, 54391, 54392], [54393, 54394, 54395], [54396, 54397, 54398], [54399, 54400, 54401], [54402, 54403, 54404], [54405, 54406, 54407], [54408, 54409, 54410], [54411, 54412, 54413], [54414, 54415, 54416], [54417, 54418, 54419], [54420, 54421, 54422], [54423, 54424, 54425], [54426, 54427, 54428], [54429, 54430, 54431], [54432, 54433, 54434], [54435, 54436, 54437], [54438, 54439, 54440], [54441, 54442, 54443], [54444, 54445, 54446], [54447, 54448, 54449], [54450, 54451, 54452], [54453, 54454, 54455], [54456, 54457, 54458], [54459, 54460, 54461], [54462, 54463, 54464], [54465, 54466, 54467], [54468, 54469, 54470], [54471, 54472, 54473], [54474, 54475, 54476], [54477, 54478, 54479], [54480, 54481, 54482], [54483, 54484, 54485], [54486, 54487, 54488], [54489, 54490, 54491], [54492, 54493, 54494], [54495, 54496, 54497], [54498, 54499, 54500], [54501, 54502, 54503], [54504, 54505, 54506], [54507, 54508, 54509], [54510, 54511, 54512], [54513, 54514, 54515], [54516, 54517, 54518], [54519, 54520, 54521], [54522, 54523, 54524], [54525, 54526, 54527], [54528, 54529, 54530], [54531, 54532, 54533], [54534, 54535, 54536], [54537, 54538, 54539], [54540, 54541, 54542], [54543, 54544, 54545], [54546, 54547, 54548], [54549, 54550, 54551], [54552, 54553, 54554], [54555, 54556, 54557], [54558, 54559, 54560], [54561, 54562, 54563], [54564, 54565, 54566], [54567, 54568, 54569], [54570, 54571, 54572], [54573, 54574, 54575], [54576, 54577, 54578], [54579, 54580, 54581], [54582, 54583, 54584], [54585, 54586, 54587], [54588, 54589, 54590], [54591, 54592, 54593], [54594, 54595, 54596], [54597, 54598, 54599], [54600, 54601, 54602], [54603, 54604, 54605], [54606, 54607, 54608], [54609, 54610, 54611], [54612, 54613, 54614], [54615, 54616, 54617], [54618, 54619, 54620], [54621, 54622, 54623], [54624, 54625, 54626], [54627, 54628, 54629], [54630, 54631, 54632], [54633, 54634, 54635], [54636, 54637, 54638], [54639, 54640, 54641], [54642, 54643, 54644], [54645, 54646, 54647], [54648, 54649, 54650], [54651, 54652, 54653], [54654, 54655, 54656], [54657, 54658, 54659], [54660, 54661, 54662], [54663, 54664, 54665], [54666, 54667, 54668], [54669, 54670, 54671], [54672, 54673, 54674], [54675, 54676, 54677], [54678, 54679, 54680], [54681, 54682, 54683], [54684, 54685, 54686], [54687, 54688, 54689], [54690, 54691, 54692], [54693, 54694, 54695], [54696, 54697, 54698], [54699, 54700, 54701], [54702, 54703, 54704], [54705, 54706, 54707], [54708, 54709, 54710], [54711, 54712, 54713], [54714, 54715, 54716], [54717, 54718, 54719], [54720, 54721, 54722], [54723, 54724, 54725], [54726, 54727, 54728], [54729, 54730, 54731], [54732, 54733, 54734], [54735, 54736, 54737], [54738, 54739, 54740], [54741, 54742, 54743], [54744, 54745, 54746], [54747, 54748, 54749], [54750, 54751, 54752], [54753, 54754, 54755], [54756, 54757, 54758], [54759, 54760, 54761], [54762, 54763, 54764], [54765, 54766, 54767], [54768, 54769, 54770], [54771, 54772, 54773], [54774, 54775, 54776], [54777, 54778, 54779], [54780, 54781, 54782], [54783, 54784, 54785], [54786, 54787, 54788], [54789, 54790, 54791], [54792, 54793, 54794], [54795, 54796, 54797], [54798, 54799, 54800], [54801, 54802, 54803], [54804, 54805, 54806], [54807, 54808, 54809], [54810, 54811, 54812], [54813, 54814, 54815], [54816, 54817, 54818], [54819, 54820, 54821], [54822, 54823, 54824], [54825, 54826, 54827], [54828, 54829, 54830], [54831, 54832, 54833], [54834, 54835, 54836], [54837, 54838, 54839], [54840, 54841, 54842], [54843, 54844, 54845], [54846, 54847, 54848], [54849, 54850, 54851], [54852, 54853, 54854], [54855, 54856, 54857], [54858, 54859, 54860], [54861, 54862, 54863], [54864, 54865, 54866], [54867, 54868, 54869], [54870, 54871, 54872], [54873, 54874, 54875], [54876, 54877, 54878], [54879, 54880, 54881], [54882, 54883, 54884], [54885, 54886, 54887], [54888, 54889, 54890], [54891, 54892, 54893], [54894, 54895, 54896], [54897, 54898, 54899], [54900, 54901, 54902], [54903, 54904, 54905], [54906, 54907, 54908], [54909, 54910, 54911], [54912, 54913, 54914], [54915, 54916, 54917], [54918, 54919, 54920], [54921, 54922, 54923], [54924, 54925, 54926], [54927, 54928, 54929], [54930, 54931, 54932], [54933, 54934, 54935], [54936, 54937, 54938], [54939, 54940, 54941], [54942, 54943, 54944], [54945, 54946, 54947], [54948, 54949, 54950], [54951, 54952, 54953], [54954, 54955, 54956], [54957, 54958, 54959], [54960, 54961, 54962], [54963, 54964, 54965], [54966, 54967, 54968], [54969, 54970, 54971], [54972, 54973, 54974], [54975, 54976, 54977], [54978, 54979, 54980], [54981, 54982, 54983], [54984, 54985, 54986], [54987, 54988, 54989], [54990, 54991, 54992], [54993, 54994, 54995], [54996, 54997, 54998], [54999, 55000, 55001], [55002, 55003, 55004], [55005, 55006, 55007], [55008, 55009, 55010], [55011, 55012, 55013], [55014, 55015, 55016], [55017, 55018, 55019], [55020, 55021, 55022], [55023, 55024, 55025], [55026, 55027, 55028], [55029, 55030, 55031], [55032, 55033, 55034], [55035, 55036, 55037], [55038, 55039, 55040], [55041, 55042, 55043], [55044, 55045, 55046], [55047, 55048, 55049], [55050, 55051, 55052], [55053, 55054, 55055], [55056, 55057, 55058], [55059, 55060, 55061], [55062, 55063, 55064], [55065, 55066, 55067], [55068, 55069, 55070], [55071, 55072, 55073], [55074, 55075, 55076], [55077, 55078, 55079], [55080, 55081, 55082], [55083, 55084, 55085], [55086, 55087, 55088], [55089, 55090, 55091], [55092, 55093, 55094], [55095, 55096, 55097], [55098, 55099, 55100], [55101, 55102, 55103], [55104, 55105, 55106], [55107, 55108, 55109], [55110, 55111, 55112], [55113, 55114, 55115], [55116, 55117, 55118], [55119, 55120, 55121], [55122, 55123, 55124], [55125, 55126, 55127], [55128, 55129, 55130], [55131, 55132, 55133], [55134, 55135, 55136], [55137, 55138, 55139], [55140, 55141, 55142], [55143, 55144, 55145], [55146, 55147, 55148], [55149, 55150, 55151], [55152, 55153, 55154], [55155, 55156, 55157], [55158, 55159, 55160], [55161, 55162, 55163], [55164, 55165, 55166], [55167, 55168, 55169], [55170, 55171, 55172], [55173, 55174, 55175], [55176, 55177, 55178], [55179, 55180, 55181], [55182, 55183, 55184], [55185, 55186, 55187], [55188, 55189, 55190], [55191, 55192, 55193], [55194, 55195, 55196], [55197, 55198, 55199], [55200, 55201, 55202], [55203, 55204, 55205], [55206, 55207, 55208], [55209, 55210, 55211], [55212, 55213, 55214], [55215, 55216, 55217], [55218, 55219, 55220], [55221, 55222, 55223], [55224, 55225, 55226], [55227, 55228, 55229], [55230, 55231, 55232], [55233, 55234, 55235], [55236, 55237, 55238], [55239, 55240, 55241], [55242, 55243, 55244], [55245, 55246, 55247], [55248, 55249, 55250], [55251, 55252, 55253], [55254, 55255, 55256], [55257, 55258, 55259], [55260, 55261, 55262], [55263, 55264, 55265], [55266, 55267, 55268], [55269, 55270, 55271], [55272, 55273, 55274], [55275, 55276, 55277], [55278, 55279, 55280], [55281, 55282, 55283], [55284, 55285, 55286], [55287, 55288, 55289], [55290, 55291, 55292], [55293, 55294, 55295], [55296, 55297, 55298], [55299, 55300, 55301], [55302, 55303, 55304], [55305, 55306, 55307], [55308, 55309, 55310], [55311, 55312, 55313], [55314, 55315, 55316], [55317, 55318, 55319], [55320, 55321, 55322], [55323, 55324, 55325], [55326, 55327, 55328], [55329, 55330, 55331], [55332, 55333, 55334], [55335, 55336, 55337], [55338, 55339, 55340], [55341, 55342, 55343], [55344, 55345, 55346], [55347, 55348, 55349], [55350, 55351, 55352], [55353, 55354, 55355], [55356, 55357, 55358], [55359, 55360, 55361], [55362, 55363, 55364], [55365, 55366, 55367], [55368, 55369, 55370], [55371, 55372, 55373], [55374, 55375, 55376], [55377, 55378, 55379], [55380, 55381, 55382], [55383, 55384, 55385], [55386, 55387, 55388], [55389, 55390, 55391], [55392, 55393, 55394], [55395, 55396, 55397], [55398, 55399, 55400], [55401, 55402, 55403], [55404, 55405, 55406], [55407, 55408, 55409], [55410, 55411, 55412], [55413, 55414, 55415], [55416, 55417, 55418], [55419, 55420, 55421], [55422, 55423, 55424], [55425, 55426, 55427], [55428, 55429, 55430], [55431, 55432, 55433], [55434, 55435, 55436], [55437, 55438, 55439], [55440, 55441, 55442], [55443, 55444, 55445], [55446, 55447, 55448], [55449, 55450, 55451], [55452, 55453, 55454], [55455, 55456, 55457], [55458, 55459, 55460], [55461, 55462, 55463], [55464, 55465, 55466], [55467, 55468, 55469], [55470, 55471, 55472], [55473, 55474, 55475], [55476, 55477, 55478], [55479, 55480, 55481], [55482, 55483, 55484], [55485, 55486, 55487], [55488, 55489, 55490], [55491, 55492, 55493], [55494, 55495, 55496], [55497, 55498, 55499], [55500, 55501, 55502], [55503, 55504, 55505], [55506, 55507, 55508], [55509, 55510, 55511], [55512, 55513, 55514], [55515, 55516, 55517], [55518, 55519, 55520], [55521, 55522, 55523], [55524, 55525, 55526], [55527, 55528, 55529], [55530, 55531, 55532], [55533, 55534, 55535], [55536, 55537, 55538], [55539, 55540, 55541], [55542, 55543, 55544], [55545, 55546, 55547], [55548, 55549, 55550], [55551, 55552, 55553], [55554, 55555, 55556], [55557, 55558, 55559], [55560, 55561, 55562], [55563, 55564, 55565], [55566, 55567, 55568], [55569, 55570, 55571], [55572, 55573, 55574], [55575, 55576, 55577], [55578, 55579, 55580], [55581, 55582, 55583], [55584, 55585, 55586], [55587, 55588, 55589], [55590, 55591, 55592], [55593, 55594, 55595], [55596, 55597, 55598], [55599, 55600, 55601], [55602, 55603, 55604], [55605, 55606, 55607], [55608, 55609, 55610], [55611, 55612, 55613], [55614, 55615, 55616], [55617, 55618, 55619], [55620, 55621, 55622], [55623, 55624, 55625], [55626, 55627, 55628], [55629, 55630, 55631], [55632, 55633, 55634], [55635, 55636, 55637], [55638, 55639, 55640], [55641, 55642, 55643], [55644, 55645, 55646], [55647, 55648, 55649], [55650, 55651, 55652], [55653, 55654, 55655], [55656, 55657, 55658], [55659, 55660, 55661], [55662, 55663, 55664], [55665, 55666, 55667], [55668, 55669, 55670], [55671, 55672, 55673], [55674, 55675, 55676], [55677, 55678, 55679], [55680, 55681, 55682], [55683, 55684, 55685], [55686, 55687, 55688], [55689, 55690, 55691], [55692, 55693, 55694], [55695, 55696, 55697], [55698, 55699, 55700], [55701, 55702, 55703], [55704, 55705, 55706], [55707, 55708, 55709], [55710, 55711, 55712], [55713, 55714, 55715], [55716, 55717, 55718], [55719, 55720, 55721], [55722, 55723, 55724], [55725, 55726, 55727], [55728, 55729, 55730], [55731, 55732, 55733], [55734, 55735, 55736], [55737, 55738, 55739], [55740, 55741, 55742], [55743, 55744, 55745], [55746, 55747, 55748], [55749, 55750, 55751], [55752, 55753, 55754], [55755, 55756, 55757], [55758, 55759, 55760], [55761, 55762, 55763], [55764, 55765, 55766], [55767, 55768, 55769], [55770, 55771, 55772], [55773, 55774, 55775], [55776, 55777, 55778], [55779, 55780, 55781], [55782, 55783, 55784], [55785, 55786, 55787], [55788, 55789, 55790], [55791, 55792, 55793], [55794, 55795, 55796], [55797, 55798, 55799], [55800, 55801, 55802], [55803, 55804, 55805], [55806, 55807, 55808], [55809, 55810, 55811], [55812, 55813, 55814], [55815, 55816, 55817], [55818, 55819, 55820], [55821, 55822, 55823], [55824, 55825, 55826], [55827, 55828, 55829], [55830, 55831, 55832], [55833, 55834, 55835], [55836, 55837, 55838], [55839, 55840, 55841], [55842, 55843, 55844], [55845, 55846, 55847], [55848, 55849, 55850], [55851, 55852, 55853], [55854, 55855, 55856], [55857, 55858, 55859], [55860, 55861, 55862], [55863, 55864, 55865], [55866, 55867, 55868], [55869, 55870, 55871], [55872, 55873, 55874], [55875, 55876, 55877], [55878, 55879, 55880], [55881, 55882, 55883], [55884, 55885, 55886], [55887, 55888, 55889], [55890, 55891, 55892], [55893, 55894, 55895], [55896, 55897, 55898], [55899, 55900, 55901], [55902, 55903, 55904], [55905, 55906, 55907], [55908, 55909, 55910], [55911, 55912, 55913], [55914, 55915, 55916], [55917, 55918, 55919], [55920, 55921, 55922], [55923, 55924, 55925], [55926, 55927, 55928], [55929, 55930, 55931], [55932, 55933, 55934], [55935, 55936, 55937], [55938, 55939, 55940], [55941, 55942, 55943], [55944, 55945, 55946], [55947, 55948, 55949], [55950, 55951, 55952], [55953, 55954, 55955], [55956, 55957, 55958], [55959, 55960, 55961], [55962, 55963, 55964], [55965, 55966, 55967], [55968, 55969, 55970], [55971, 55972, 55973], [55974, 55975, 55976], [55977, 55978, 55979], [55980, 55981, 55982], [55983, 55984, 55985], [55986, 55987, 55988], [55989, 55990, 55991], [55992, 55993, 55994], [55995, 55996, 55997], [55998, 55999, 56000], [56001, 56002, 56003], [56004, 56005, 56006], [56007, 56008, 56009], [56010, 56011, 56012], [56013, 56014, 56015], [56016, 56017, 56018], [56019, 56020, 56021], [56022, 56023, 56024], [56025, 56026, 56027], [56028, 56029, 56030], [56031, 56032, 56033], [56034, 56035, 56036], [56037, 56038, 56039], [56040, 56041, 56042], [56043, 56044, 56045], [56046, 56047, 56048], [56049, 56050, 56051], [56052, 56053, 56054], [56055, 56056, 56057], [56058, 56059, 56060], [56061, 56062, 56063], [56064, 56065, 56066], [56067, 56068, 56069], [56070, 56071, 56072], [56073, 56074, 56075], [56076, 56077, 56078], [56079, 56080, 56081], [56082, 56083, 56084], [56085, 56086, 56087], [56088, 56089, 56090], [56091, 56092, 56093], [56094, 56095, 56096], [56097, 56098, 56099], [56100, 56101, 56102], [56103, 56104, 56105], [56106, 56107, 56108], [56109, 56110, 56111], [56112, 56113, 56114], [56115, 56116, 56117], [56118, 56119, 56120], [56121, 56122, 56123], [56124, 56125, 56126], [56127, 56128, 56129], [56130, 56131, 56132], [56133, 56134, 56135], [56136, 56137, 56138], [56139, 56140, 56141], [56142, 56143, 56144], [56145, 56146, 56147], [56148, 56149, 56150], [56151, 56152, 56153], [56154, 56155, 56156], [56157, 56158, 56159], [56160, 56161, 56162], [56163, 56164, 56165], [56166, 56167, 56168], [56169, 56170, 56171], [56172, 56173, 56174], [56175, 56176, 56177], [56178, 56179, 56180], [56181, 56182, 56183], [56184, 56185, 56186], [56187, 56188, 56189], [56190, 56191, 56192], [56193, 56194, 56195], [56196, 56197, 56198], [56199, 56200, 56201], [56202, 56203, 56204], [56205, 56206, 56207], [56208, 56209, 56210], [56211, 56212, 56213], [56214, 56215, 56216], [56217, 56218, 56219], [56220, 56221, 56222], [56223, 56224, 56225], [56226, 56227, 56228], [56229, 56230, 56231], [56232, 56233, 56234], [56235, 56236, 56237], [56238, 56239, 56240], [56241, 56242, 56243], [56244, 56245, 56246], [56247, 56248, 56249], [56250, 56251, 56252], [56253, 56254, 56255], [56256, 56257, 56258], [56259, 56260, 56261], [56262, 56263, 56264], [56265, 56266, 56267], [56268, 56269, 56270], [56271, 56272, 56273], [56274, 56275, 56276], [56277, 56278, 56279], [56280, 56281, 56282], [56283, 56284, 56285], [56286, 56287, 56288], [56289, 56290, 56291], [56292, 56293, 56294], [56295, 56296, 56297], [56298, 56299, 56300], [56301, 56302, 56303], [56304, 56305, 56306], [56307, 56308, 56309], [56310, 56311, 56312], [56313, 56314, 56315], [56316, 56317, 56318], [56319, 56320, 56321], [56322, 56323, 56324], [56325, 56326, 56327], [56328, 56329, 56330], [56331, 56332, 56333], [56334, 56335, 56336], [56337, 56338, 56339], [56340, 56341, 56342], [56343, 56344, 56345], [56346, 56347, 56348], [56349, 56350, 56351], [56352, 56353, 56354], [56355, 56356, 56357], [56358, 56359, 56360], [56361, 56362, 56363], [56364, 56365, 56366], [56367, 56368, 56369], [56370, 56371, 56372], [56373, 56374, 56375], [56376, 56377, 56378], [56379, 56380, 56381], [56382, 56383, 56384], [56385, 56386, 56387], [56388, 56389, 56390], [56391, 56392, 56393], [56394, 56395, 56396], [56397, 56398, 56399], [56400, 56401, 56402], [56403, 56404, 56405], [56406, 56407, 56408], [56409, 56410, 56411], [56412, 56413, 56414], [56415, 56416, 56417], [56418, 56419, 56420], [56421, 56422, 56423], [56424, 56425, 56426], [56427, 56428, 56429], [56430, 56431, 56432], [56433, 56434, 56435], [56436, 56437, 56438], [56439, 56440, 56441], [56442, 56443, 56444], [56445, 56446, 56447], [56448, 56449, 56450], [56451, 56452, 56453], [56454, 56455, 56456], [56457, 56458, 56459], [56460, 56461, 56462], [56463, 56464, 56465], [56466, 56467, 56468], [56469, 56470, 56471], [56472, 56473, 56474], [56475, 56476, 56477], [56478, 56479, 56480], [56481, 56482, 56483], [56484, 56485, 56486], [56487, 56488, 56489], [56490, 56491, 56492], [56493, 56494, 56495], [56496, 56497, 56498], [56499, 56500, 56501], [56502, 56503, 56504], [56505, 56506, 56507], [56508, 56509, 56510], [56511, 56512, 56513], [56514, 56515, 56516], [56517, 56518, 56519], [56520, 56521, 56522], [56523, 56524, 56525], [56526, 56527, 56528], [56529, 56530, 56531], [56532, 56533, 56534], [56535, 56536, 56537], [56538, 56539, 56540], [56541, 56542, 56543], [56544, 56545, 56546], [56547, 56548, 56549], [56550, 56551, 56552], [56553, 56554, 56555], [56556, 56557, 56558], [56559, 56560, 56561], [56562, 56563, 56564], [56565, 56566, 56567], [56568, 56569, 56570], [56571, 56572, 56573], [56574, 56575, 56576], [56577, 56578, 56579], [56580, 56581, 56582], [56583, 56584, 56585], [56586, 56587, 56588], [56589, 56590, 56591], [56592, 56593, 56594], [56595, 56596, 56597], [56598, 56599, 56600], [56601, 56602, 56603], [56604, 56605, 56606], [56607, 56608, 56609], [56610, 56611, 56612], [56613, 56614, 56615], [56616, 56617, 56618], [56619, 56620, 56621], [56622, 56623, 56624], [56625, 56626, 56627], [56628, 56629, 56630], [56631, 56632, 56633], [56634, 56635, 56636], [56637, 56638, 56639], [56640, 56641, 56642], [56643, 56644, 56645], [56646, 56647, 56648], [56649, 56650, 56651], [56652, 56653, 56654], [56655, 56656, 56657], [56658, 56659, 56660], [56661, 56662, 56663], [56664, 56665, 56666], [56667, 56668, 56669], [56670, 56671, 56672], [56673, 56674, 56675], [56676, 56677, 56678], [56679, 56680, 56681], [56682, 56683, 56684], [56685, 56686, 56687], [56688, 56689, 56690], [56691, 56692, 56693], [56694, 56695, 56696], [56697, 56698, 56699], [56700, 56701, 56702], [56703, 56704, 56705], [56706, 56707, 56708], [56709, 56710, 56711], [56712, 56713, 56714], [56715, 56716, 56717], [56718, 56719, 56720], [56721, 56722, 56723], [56724, 56725, 56726], [56727, 56728, 56729], [56730, 56731, 56732], [56733, 56734, 56735], [56736, 56737, 56738], [56739, 56740, 56741], [56742, 56743, 56744], [56745, 56746, 56747], [56748, 56749, 56750], [56751, 56752, 56753], [56754, 56755, 56756], [56757, 56758, 56759], [56760, 56761, 56762], [56763, 56764, 56765], [56766, 56767, 56768], [56769, 56770, 56771], [56772, 56773, 56774], [56775, 56776, 56777], [56778, 56779, 56780], [56781, 56782, 56783], [56784, 56785, 56786], [56787, 56788, 56789], [56790, 56791, 56792], [56793, 56794, 56795], [56796, 56797, 56798], [56799, 56800, 56801], [56802, 56803, 56804], [56805, 56806, 56807], [56808, 56809, 56810], [56811, 56812, 56813], [56814, 56815, 56816], [56817, 56818, 56819], [56820, 56821, 56822], [56823, 56824, 56825], [56826, 56827, 56828], [56829, 56830, 56831], [56832, 56833, 56834], [56835, 56836, 56837], [56838, 56839, 56840], [56841, 56842, 56843], [56844, 56845, 56846], [56847, 56848, 56849], [56850, 56851, 56852], [56853, 56854, 56855], [56856, 56857, 56858], [56859, 56860, 56861], [56862, 56863, 56864], [56865, 56866, 56867], [56868, 56869, 56870], [56871, 56872, 56873], [56874, 56875, 56876], [56877, 56878, 56879], [56880, 56881, 56882], [56883, 56884, 56885], [56886, 56887, 56888], [56889, 56890, 56891], [56892, 56893, 56894], [56895, 56896, 56897], [56898, 56899, 56900], [56901, 56902, 56903], [56904, 56905, 56906], [56907, 56908, 56909], [56910, 56911, 56912], [56913, 56914, 56915], [56916, 56917, 56918], [56919, 56920, 56921], [56922, 56923, 56924], [56925, 56926, 56927], [56928, 56929, 56930], [56931, 56932, 56933], [56934, 56935, 56936], [56937, 56938, 56939], [56940, 56941, 56942], [56943, 56944, 56945], [56946, 56947, 56948], [56949, 56950, 56951], [56952, 56953, 56954], [56955, 56956, 56957], [56958, 56959, 56960], [56961, 56962, 56963], [56964, 56965, 56966], [56967, 56968, 56969], [56970, 56971, 56972], [56973, 56974, 56975], [56976, 56977, 56978], [56979, 56980, 56981], [56982, 56983, 56984], [56985, 56986, 56987], [56988, 56989, 56990], [56991, 56992, 56993], [56994, 56995, 56996], [56997, 56998, 56999], [57000, 57001, 57002], [57003, 57004, 57005], [57006, 57007, 57008], [57009, 57010, 57011], [57012, 57013, 57014], [57015, 57016, 57017], [57018, 57019, 57020], [57021, 57022, 57023], [57024, 57025, 57026], [57027, 57028, 57029], [57030, 57031, 57032], [57033, 57034, 57035], [57036, 57037, 57038], [57039, 57040, 57041], [57042, 57043, 57044], [57045, 57046, 57047], [57048, 57049, 57050], [57051, 57052, 57053], [57054, 57055, 57056], [57057, 57058, 57059], [57060, 57061, 57062], [57063, 57064, 57065], [57066, 57067, 57068], [57069, 57070, 57071], [57072, 57073, 57074], [57075, 57076, 57077], [57078, 57079, 57080], [57081, 57082, 57083], [57084, 57085, 57086], [57087, 57088, 57089], [57090, 57091, 57092], [57093, 57094, 57095], [57096, 57097, 57098], [57099, 57100, 57101], [57102, 57103, 57104], [57105, 57106, 57107], [57108, 57109, 57110], [57111, 57112, 57113], [57114, 57115, 57116], [57117, 57118, 57119], [57120, 57121, 57122], [57123, 57124, 57125], [57126, 57127, 57128], [57129, 57130, 57131], [57132, 57133, 57134], [57135, 57136, 57137], [57138, 57139, 57140], [57141, 57142, 57143], [57144, 57145, 57146], [57147, 57148, 57149], [57150, 57151, 57152], [57153, 57154, 57155], [57156, 57157, 57158], [57159, 57160, 57161], [57162, 57163, 57164], [57165, 57166, 57167], [57168, 57169, 57170], [57171, 57172, 57173], [57174, 57175, 57176], [57177, 57178, 57179], [57180, 57181, 57182], [57183, 57184, 57185], [57186, 57187, 57188], [57189, 57190, 57191], [57192, 57193, 57194], [57195, 57196, 57197], [57198, 57199, 57200], [57201, 57202, 57203], [57204, 57205, 57206], [57207, 57208, 57209], [57210, 57211, 57212], [57213, 57214, 57215], [57216, 57217, 57218], [57219, 57220, 57221], [57222, 57223, 57224], [57225, 57226, 57227], [57228, 57229, 57230], [57231, 57232, 57233], [57234, 57235, 57236], [57237, 57238, 57239], [57240, 57241, 57242], [57243, 57244, 57245], [57246, 57247, 57248], [57249, 57250, 57251], [57252, 57253, 57254], [57255, 57256, 57257], [57258, 57259, 57260], [57261, 57262, 57263], [57264, 57265, 57266], [57267, 57268, 57269], [57270, 57271, 57272], [57273, 57274, 57275], [57276, 57277, 57278], [57279, 57280, 57281], [57282, 57283, 57284], [57285, 57286, 57287], [57288, 57289, 57290], [57291, 57292, 57293], [57294, 57295, 57296], [57297, 57298, 57299], [57300, 57301, 57302], [57303, 57304, 57305], [57306, 57307, 57308], [57309, 57310, 57311], [57312, 57313, 57314], [57315, 57316, 57317], [57318, 57319, 57320], [57321, 57322, 57323], [57324, 57325, 57326], [57327, 57328, 57329], [57330, 57331, 57332], [57333, 57334, 57335], [57336, 57337, 57338], [57339, 57340, 57341], [57342, 57343, 57344], [57345, 57346, 57347], [57348, 57349, 57350], [57351, 57352, 57353], [57354, 57355, 57356], [57357, 57358, 57359], [57360, 57361, 57362], [57363, 57364, 57365], [57366, 57367, 57368], [57369, 57370, 57371], [57372, 57373, 57374], [57375, 57376, 57377], [57378, 57379, 57380], [57381, 57382, 57383], [57384, 57385, 57386], [57387, 57388, 57389], [57390, 57391, 57392], [57393, 57394, 57395], [57396, 57397, 57398], [57399, 57400, 57401], [57402, 57403, 57404], [57405, 57406, 57407], [57408, 57409, 57410], [57411, 57412, 57413], [57414, 57415, 57416], [57417, 57418, 57419], [57420, 57421, 57422], [57423, 57424, 57425], [57426, 57427, 57428], [57429, 57430, 57431], [57432, 57433, 57434], [57435, 57436, 57437], [57438, 57439, 57440], [57441, 57442, 57443], [57444, 57445, 57446], [57447, 57448, 57449], [57450, 57451, 57452], [57453, 57454, 57455], [57456, 57457, 57458], [57459, 57460, 57461], [57462, 57463, 57464], [57465, 57466, 57467], [57468, 57469, 57470], [57471, 57472, 57473], [57474, 57475, 57476], [57477, 57478, 57479], [57480, 57481, 57482], [57483, 57484, 57485], [57486, 57487, 57488], [57489, 57490, 57491], [57492, 57493, 57494], [57495, 57496, 57497], [57498, 57499, 57500], [57501, 57502, 57503], [57504, 57505, 57506], [57507, 57508, 57509], [57510, 57511, 57512], [57513, 57514, 57515], [57516, 57517, 57518], [57519, 57520, 57521], [57522, 57523, 57524], [57525, 57526, 57527], [57528, 57529, 57530], [57531, 57532, 57533], [57534, 57535, 57536], [57537, 57538, 57539], [57540, 57541, 57542], [57543, 57544, 57545], [57546, 57547, 57548], [57549, 57550, 57551], [57552, 57553, 57554], [57555, 57556, 57557], [57558, 57559, 57560], [57561, 57562, 57563], [57564, 57565, 57566], [57567, 57568, 57569], [57570, 57571, 57572], [57573, 57574, 57575], [57576, 57577, 57578], [57579, 57580, 57581], [57582, 57583, 57584], [57585, 57586, 57587], [57588, 57589, 57590], [57591, 57592, 57593], [57594, 57595, 57596], [57597, 57598, 57599], [57600, 57601, 57602], [57603, 57604, 57605], [57606, 57607, 57608], [57609, 57610, 57611], [57612, 57613, 57614], [57615, 57616, 57617], [57618, 57619, 57620], [57621, 57622, 57623], [57624, 57625, 57626], [57627, 57628, 57629], [57630, 57631, 57632], [57633, 57634, 57635], [57636, 57637, 57638], [57639, 57640, 57641], [57642, 57643, 57644], [57645, 57646, 57647], [57648, 57649, 57650], [57651, 57652, 57653], [57654, 57655, 57656], [57657, 57658, 57659], [57660, 57661, 57662], [57663, 57664, 57665], [57666, 57667, 57668], [57669, 57670, 57671], [57672, 57673, 57674], [57675, 57676, 57677], [57678, 57679, 57680], [57681, 57682, 57683], [57684, 57685, 57686], [57687, 57688, 57689], [57690, 57691, 57692], [57693, 57694, 57695], [57696, 57697, 57698], [57699, 57700, 57701], [57702, 57703, 57704], [57705, 57706, 57707], [57708, 57709, 57710], [57711, 57712, 57713], [57714, 57715, 57716], [57717, 57718, 57719], [57720, 57721, 57722], [57723, 57724, 57725], [57726, 57727, 57728], [57729, 57730, 57731], [57732, 57733, 57734], [57735, 57736, 57737], [57738, 57739, 57740], [57741, 57742, 57743], [57744, 57745, 57746], [57747, 57748, 57749], [57750, 57751, 57752], [57753, 57754, 57755], [57756, 57757, 57758], [57759, 57760, 57761], [57762, 57763, 57764], [57765, 57766, 57767], [57768, 57769, 57770], [57771, 57772, 57773], [57774, 57775, 57776], [57777, 57778, 57779], [57780, 57781, 57782], [57783, 57784, 57785], [57786, 57787, 57788], [57789, 57790, 57791], [57792, 57793, 57794], [57795, 57796, 57797], [57798, 57799, 57800], [57801, 57802, 57803], [57804, 57805, 57806], [57807, 57808, 57809], [57810, 57811, 57812], [57813, 57814, 57815], [57816, 57817, 57818], [57819, 57820, 57821], [57822, 57823, 57824], [57825, 57826, 57827], [57828, 57829, 57830], [57831, 57832, 57833], [57834, 57835, 57836], [57837, 57838, 57839], [57840, 57841, 57842], [57843, 57844, 57845], [57846, 57847, 57848], [57849, 57850, 57851], [57852, 57853, 57854], [57855, 57856, 57857], [57858, 57859, 57860], [57861, 57862, 57863], [57864, 57865, 57866], [57867, 57868, 57869], [57870, 57871, 57872], [57873, 57874, 57875], [57876, 57877, 57878], [57879, 57880, 57881], [57882, 57883, 57884], [57885, 57886, 57887], [57888, 57889, 57890], [57891, 57892, 57893], [57894, 57895, 57896], [57897, 57898, 57899], [57900, 57901, 57902], [57903, 57904, 57905], [57906, 57907, 57908], [57909, 57910, 57911], [57912, 57913, 57914], [57915, 57916, 57917], [57918, 57919, 57920], [57921, 57922, 57923], [57924, 57925, 57926], [57927, 57928, 57929], [57930, 57931, 57932], [57933, 57934, 57935], [57936, 57937, 57938], [57939, 57940, 57941], [57942, 57943, 57944], [57945, 57946, 57947], [57948, 57949, 57950], [57951, 57952, 57953], [57954, 57955, 57956], [57957, 57958, 57959], [57960, 57961, 57962], [57963, 57964, 57965], [57966, 57967, 57968], [57969, 57970, 57971], [57972, 57973, 57974], [57975, 57976, 57977], [57978, 57979, 57980], [57981, 57982, 57983], [57984, 57985, 57986], [57987, 57988, 57989], [57990, 57991, 57992], [57993, 57994, 57995], [57996, 57997, 57998], [57999, 58000, 58001], [58002, 58003, 58004], [58005, 58006, 58007], [58008, 58009, 58010], [58011, 58012, 58013], [58014, 58015, 58016], [58017, 58018, 58019], [58020, 58021, 58022], [58023, 58024, 58025], [58026, 58027, 58028], [58029, 58030, 58031], [58032, 58033, 58034], [58035, 58036, 58037], [58038, 58039, 58040], [58041, 58042, 58043], [58044, 58045, 58046], [58047, 58048, 58049], [58050, 58051, 58052], [58053, 58054, 58055], [58056, 58057, 58058], [58059, 58060, 58061], [58062, 58063, 58064], [58065, 58066, 58067], [58068, 58069, 58070], [58071, 58072, 58073], [58074, 58075, 58076], [58077, 58078, 58079], [58080, 58081, 58082], [58083, 58084, 58085], [58086, 58087, 58088], [58089, 58090, 58091], [58092, 58093, 58094], [58095, 58096, 58097], [58098, 58099, 58100], [58101, 58102, 58103], [58104, 58105, 58106], [58107, 58108, 58109], [58110, 58111, 58112], [58113, 58114, 58115], [58116, 58117, 58118], [58119, 58120, 58121], [58122, 58123, 58124], [58125, 58126, 58127], [58128, 58129, 58130], [58131, 58132, 58133], [58134, 58135, 58136], [58137, 58138, 58139], [58140, 58141, 58142], [58143, 58144, 58145], [58146, 58147, 58148], [58149, 58150, 58151], [58152, 58153, 58154], [58155, 58156, 58157], [58158, 58159, 58160], [58161, 58162, 58163], [58164, 58165, 58166], [58167, 58168, 58169], [58170, 58171, 58172], [58173, 58174, 58175], [58176, 58177, 58178], [58179, 58180, 58181], [58182, 58183, 58184], [58185, 58186, 58187], [58188, 58189, 58190], [58191, 58192, 58193], [58194, 58195, 58196], [58197, 58198, 58199], [58200, 58201, 58202], [58203, 58204, 58205], [58206, 58207, 58208], [58209, 58210, 58211], [58212, 58213, 58214], [58215, 58216, 58217], [58218, 58219, 58220], [58221, 58222, 58223], [58224, 58225, 58226], [58227, 58228, 58229], [58230, 58231, 58232], [58233, 58234, 58235], [58236, 58237, 58238], [58239, 58240, 58241], [58242, 58243, 58244], [58245, 58246, 58247], [58248, 58249, 58250], [58251, 58252, 58253], [58254, 58255, 58256], [58257, 58258, 58259], [58260, 58261, 58262], [58263, 58264, 58265], [58266, 58267, 58268], [58269, 58270, 58271], [58272, 58273, 58274], [58275, 58276, 58277], [58278, 58279, 58280], [58281, 58282, 58283], [58284, 58285, 58286], [58287, 58288, 58289], [58290, 58291, 58292], [58293, 58294, 58295], [58296, 58297, 58298], [58299, 58300, 58301], [58302, 58303, 58304], [58305, 58306, 58307], [58308, 58309, 58310], [58311, 58312, 58313], [58314, 58315, 58316], [58317, 58318, 58319], [58320, 58321, 58322], [58323, 58324, 58325], [58326, 58327, 58328], [58329, 58330, 58331], [58332, 58333, 58334], [58335, 58336, 58337], [58338, 58339, 58340], [58341, 58342, 58343], [58344, 58345, 58346], [58347, 58348, 58349], [58350, 58351, 58352], [58353, 58354, 58355], [58356, 58357, 58358], [58359, 58360, 58361], [58362, 58363, 58364], [58365, 58366, 58367], [58368, 58369, 58370], [58371, 58372, 58373], [58374, 58375, 58376], [58377, 58378, 58379], [58380, 58381, 58382], [58383, 58384, 58385], [58386, 58387, 58388], [58389, 58390, 58391], [58392, 58393, 58394], [58395, 58396, 58397], [58398, 58399, 58400], [58401, 58402, 58403], [58404, 58405, 58406], [58407, 58408, 58409], [58410, 58411, 58412], [58413, 58414, 58415], [58416, 58417, 58418], [58419, 58420, 58421], [58422, 58423, 58424], [58425, 58426, 58427], [58428, 58429, 58430], [58431, 58432, 58433], [58434, 58435, 58436], [58437, 58438, 58439], [58440, 58441, 58442], [58443, 58444, 58445], [58446, 58447, 58448], [58449, 58450, 58451], [58452, 58453, 58454], [58455, 58456, 58457], [58458, 58459, 58460], [58461, 58462, 58463], [58464, 58465, 58466], [58467, 58468, 58469], [58470, 58471, 58472], [58473, 58474, 58475], [58476, 58477, 58478], [58479, 58480, 58481], [58482, 58483, 58484], [58485, 58486, 58487], [58488, 58489, 58490], [58491, 58492, 58493], [58494, 58495, 58496], [58497, 58498, 58499], [58500, 58501, 58502], [58503, 58504, 58505], [58506, 58507, 58508], [58509, 58510, 58511], [58512, 58513, 58514], [58515, 58516, 58517], [58518, 58519, 58520], [58521, 58522, 58523], [58524, 58525, 58526], [58527, 58528, 58529], [58530, 58531, 58532], [58533, 58534, 58535], [58536, 58537, 58538], [58539, 58540, 58541], [58542, 58543, 58544], [58545, 58546, 58547], [58548, 58549, 58550], [58551, 58552, 58553], [58554, 58555, 58556], [58557, 58558, 58559], [58560, 58561, 58562], [58563, 58564, 58565], [58566, 58567, 58568], [58569, 58570, 58571], [58572, 58573, 58574], [58575, 58576, 58577], [58578, 58579, 58580], [58581, 58582, 58583], [58584, 58585, 58586], [58587, 58588, 58589], [58590, 58591, 58592], [58593, 58594, 58595], [58596, 58597, 58598], [58599, 58600, 58601], [58602, 58603, 58604], [58605, 58606, 58607], [58608, 58609, 58610], [58611, 58612, 58613], [58614, 58615, 58616], [58617, 58618, 58619], [58620, 58621, 58622], [58623, 58624, 58625], [58626, 58627, 58628], [58629, 58630, 58631], [58632, 58633, 58634], [58635, 58636, 58637], [58638, 58639, 58640], [58641, 58642, 58643], [58644, 58645, 58646], [58647, 58648, 58649], [58650, 58651, 58652], [58653, 58654, 58655], [58656, 58657, 58658], [58659, 58660, 58661], [58662, 58663, 58664], [58665, 58666, 58667], [58668, 58669, 58670], [58671, 58672, 58673], [58674, 58675, 58676], [58677, 58678, 58679], [58680, 58681, 58682], [58683, 58684, 58685], [58686, 58687, 58688], [58689, 58690, 58691], [58692, 58693, 58694], [58695, 58696, 58697], [58698, 58699, 58700], [58701, 58702, 58703], [58704, 58705, 58706], [58707, 58708, 58709], [58710, 58711, 58712], [58713, 58714, 58715], [58716, 58717, 58718], [58719, 58720, 58721], [58722, 58723, 58724], [58725, 58726, 58727], [58728, 58729, 58730], [58731, 58732, 58733], [58734, 58735, 58736], [58737, 58738, 58739], [58740, 58741, 58742], [58743, 58744, 58745], [58746, 58747, 58748], [58749, 58750, 58751], [58752, 58753, 58754], [58755, 58756, 58757], [58758, 58759, 58760], [58761, 58762, 58763], [58764, 58765, 58766], [58767, 58768, 58769], [58770, 58771, 58772], [58773, 58774, 58775], [58776, 58777, 58778], [58779, 58780, 58781], [58782, 58783, 58784], [58785, 58786, 58787], [58788, 58789, 58790], [58791, 58792, 58793], [58794, 58795, 58796], [58797, 58798, 58799], [58800, 58801, 58802], [58803, 58804, 58805], [58806, 58807, 58808], [58809, 58810, 58811], [58812, 58813, 58814], [58815, 58816, 58817], [58818, 58819, 58820], [58821, 58822, 58823], [58824, 58825, 58826], [58827, 58828, 58829], [58830, 58831, 58832], [58833, 58834, 58835], [58836, 58837, 58838], [58839, 58840, 58841], [58842, 58843, 58844], [58845, 58846, 58847], [58848, 58849, 58850], [58851, 58852, 58853], [58854, 58855, 58856], [58857, 58858, 58859], [58860, 58861, 58862], [58863, 58864, 58865], [58866, 58867, 58868], [58869, 58870, 58871], [58872, 58873, 58874], [58875, 58876, 58877], [58878, 58879, 58880], [58881, 58882, 58883], [58884, 58885, 58886], [58887, 58888, 58889], [58890, 58891, 58892], [58893, 58894, 58895], [58896, 58897, 58898], [58899, 58900, 58901], [58902, 58903, 58904], [58905, 58906, 58907], [58908, 58909, 58910], [58911, 58912, 58913], [58914, 58915, 58916], [58917, 58918, 58919], [58920, 58921, 58922], [58923, 58924, 58925], [58926, 58927, 58928], [58929, 58930, 58931], [58932, 58933, 58934], [58935, 58936, 58937], [58938, 58939, 58940], [58941, 58942, 58943], [58944, 58945, 58946], [58947, 58948, 58949], [58950, 58951, 58952], [58953, 58954, 58955], [58956, 58957, 58958], [58959, 58960, 58961], [58962, 58963, 58964], [58965, 58966, 58967], [58968, 58969, 58970], [58971, 58972, 58973], [58974, 58975, 58976], [58977, 58978, 58979], [58980, 58981, 58982], [58983, 58984, 58985], [58986, 58987, 58988], [58989, 58990, 58991], [58992, 58993, 58994], [58995, 58996, 58997], [58998, 58999, 59000], [59001, 59002, 59003], [59004, 59005, 59006], [59007, 59008, 59009], [59010, 59011, 59012], [59013, 59014, 59015], [59016, 59017, 59018], [59019, 59020, 59021], [59022, 59023, 59024], [59025, 59026, 59027], [59028, 59029, 59030], [59031, 59032, 59033], [59034, 59035, 59036], [59037, 59038, 59039], [59040, 59041, 59042], [59043, 59044, 59045], [59046, 59047, 59048], [59049, 59050, 59051], [59052, 59053, 59054], [59055, 59056, 59057], [59058, 59059, 59060], [59061, 59062, 59063], [59064, 59065, 59066], [59067, 59068, 59069], [59070, 59071, 59072], [59073, 59074, 59075], [59076, 59077, 59078], [59079, 59080, 59081], [59082, 59083, 59084], [59085, 59086, 59087], [59088, 59089, 59090], [59091, 59092, 59093], [59094, 59095, 59096], [59097, 59098, 59099], [59100, 59101, 59102], [59103, 59104, 59105], [59106, 59107, 59108], [59109, 59110, 59111], [59112, 59113, 59114], [59115, 59116, 59117], [59118, 59119, 59120], [59121, 59122, 59123], [59124, 59125, 59126], [59127, 59128, 59129], [59130, 59131, 59132], [59133, 59134, 59135], [59136, 59137, 59138], [59139, 59140, 59141], [59142, 59143, 59144], [59145, 59146, 59147], [59148, 59149, 59150], [59151, 59152, 59153], [59154, 59155, 59156], [59157, 59158, 59159], [59160, 59161, 59162], [59163, 59164, 59165], [59166, 59167, 59168], [59169, 59170, 59171], [59172, 59173, 59174], [59175, 59176, 59177], [59178, 59179, 59180], [59181, 59182, 59183], [59184, 59185, 59186], [59187, 59188, 59189], [59190, 59191, 59192], [59193, 59194, 59195], [59196, 59197, 59198], [59199, 59200, 59201], [59202, 59203, 59204], [59205, 59206, 59207], [59208, 59209, 59210], [59211, 59212, 59213], [59214, 59215, 59216], [59217, 59218, 59219], [59220, 59221, 59222], [59223, 59224, 59225], [59226, 59227, 59228], [59229, 59230, 59231], [59232, 59233, 59234], [59235, 59236, 59237], [59238, 59239, 59240], [59241, 59242, 59243], [59244, 59245, 59246], [59247, 59248, 59249], [59250, 59251, 59252], [59253, 59254, 59255], [59256, 59257, 59258], [59259, 59260, 59261], [59262, 59263, 59264], [59265, 59266, 59267], [59268, 59269, 59270], [59271, 59272, 59273], [59274, 59275, 59276], [59277, 59278, 59279], [59280, 59281, 59282], [59283, 59284, 59285], [59286, 59287, 59288], [59289, 59290, 59291], [59292, 59293, 59294], [59295, 59296, 59297], [59298, 59299, 59300], [59301, 59302, 59303], [59304, 59305, 59306], [59307, 59308, 59309], [59310, 59311, 59312], [59313, 59314, 59315], [59316, 59317, 59318], [59319, 59320, 59321], [59322, 59323, 59324], [59325, 59326, 59327], [59328, 59329, 59330], [59331, 59332, 59333], [59334, 59335, 59336], [59337, 59338, 59339], [59340, 59341, 59342], [59343, 59344, 59345], [59346, 59347, 59348], [59349, 59350, 59351], [59352, 59353, 59354], [59355, 59356, 59357], [59358, 59359, 59360], [59361, 59362, 59363], [59364, 59365, 59366], [59367, 59368, 59369], [59370, 59371, 59372], [59373, 59374, 59375], [59376, 59377, 59378], [59379, 59380, 59381], [59382, 59383, 59384], [59385, 59386, 59387], [59388, 59389, 59390], [59391, 59392, 59393], [59394, 59395, 59396], [59397, 59398, 59399], [59400, 59401, 59402], [59403, 59404, 59405], [59406, 59407, 59408], [59409, 59410, 59411], [59412, 59413, 59414], [59415, 59416, 59417], [59418, 59419, 59420], [59421, 59422, 59423], [59424, 59425, 59426], [59427, 59428, 59429], [59430, 59431, 59432], [59433, 59434, 59435], [59436, 59437, 59438], [59439, 59440, 59441], [59442, 59443, 59444], [59445, 59446, 59447], [59448, 59449, 59450], [59451, 59452, 59453], [59454, 59455, 59456], [59457, 59458, 59459], [59460, 59461, 59462], [59463, 59464, 59465], [59466, 59467, 59468], [59469, 59470, 59471], [59472, 59473, 59474], [59475, 59476, 59477], [59478, 59479, 59480], [59481, 59482, 59483], [59484, 59485, 59486], [59487, 59488, 59489], [59490, 59491, 59492], [59493, 59494, 59495], [59496, 59497, 59498], [59499, 59500, 59501], [59502, 59503, 59504], [59505, 59506, 59507], [59508, 59509, 59510], [59511, 59512, 59513], [59514, 59515, 59516], [59517, 59518, 59519], [59520, 59521, 59522], [59523, 59524, 59525], [59526, 59527, 59528], [59529, 59530, 59531], [59532, 59533, 59534], [59535, 59536, 59537], [59538, 59539, 59540], [59541, 59542, 59543], [59544, 59545, 59546], [59547, 59548, 59549], [59550, 59551, 59552], [59553, 59554, 59555], [59556, 59557, 59558], [59559, 59560, 59561], [59562, 59563, 59564], [59565, 59566, 59567], [59568, 59569, 59570], [59571, 59572, 59573], [59574, 59575, 59576], [59577, 59578, 59579], [59580, 59581, 59582], [59583, 59584, 59585], [59586, 59587, 59588], [59589, 59590, 59591], [59592, 59593, 59594], [59595, 59596, 59597], [59598, 59599, 59600], [59601, 59602, 59603], [59604, 59605, 59606], [59607, 59608, 59609], [59610, 59611, 59612], [59613, 59614, 59615], [59616, 59617, 59618], [59619, 59620, 59621], [59622, 59623, 59624], [59625, 59626, 59627], [59628, 59629, 59630], [59631, 59632, 59633], [59634, 59635, 59636], [59637, 59638, 59639], [59640, 59641, 59642], [59643, 59644, 59645], [59646, 59647, 59648], [59649, 59650, 59651], [59652, 59653, 59654], [59655, 59656, 59657], [59658, 59659, 59660], [59661, 59662, 59663], [59664, 59665, 59666], [59667, 59668, 59669], [59670, 59671, 59672], [59673, 59674, 59675], [59676, 59677, 59678], [59679, 59680, 59681], [59682, 59683, 59684], [59685, 59686, 59687], [59688, 59689, 59690], [59691, 59692, 59693], [59694, 59695, 59696], [59697, 59698, 59699], [59700, 59701, 59702], [59703, 59704, 59705], [59706, 59707, 59708], [59709, 59710, 59711], [59712, 59713, 59714], [59715, 59716, 59717], [59718, 59719, 59720], [59721, 59722, 59723], [59724, 59725, 59726], [59727, 59728, 59729], [59730, 59731, 59732], [59733, 59734, 59735], [59736, 59737, 59738], [59739, 59740, 59741], [59742, 59743, 59744], [59745, 59746, 59747], [59748, 59749, 59750], [59751, 59752, 59753], [59754, 59755, 59756], [59757, 59758, 59759], [59760, 59761, 59762], [59763, 59764, 59765], [59766, 59767, 59768], [59769, 59770, 59771], [59772, 59773, 59774], [59775, 59776, 59777], [59778, 59779, 59780], [59781, 59782, 59783], [59784, 59785, 59786], [59787, 59788, 59789], [59790, 59791, 59792], [59793, 59794, 59795], [59796, 59797, 59798], [59799, 59800, 59801], [59802, 59803, 59804], [59805, 59806, 59807], [59808, 59809, 59810], [59811, 59812, 59813], [59814, 59815, 59816], [59817, 59818, 59819], [59820, 59821, 59822], [59823, 59824, 59825], [59826, 59827, 59828], [59829, 59830, 59831], [59832, 59833, 59834], [59835, 59836, 59837], [59838, 59839, 59840], [59841, 59842, 59843], [59844, 59845, 59846], [59847, 59848, 59849], [59850, 59851, 59852], [59853, 59854, 59855], [59856, 59857, 59858], [59859, 59860, 59861], [59862, 59863, 59864], [59865, 59866, 59867], [59868, 59869, 59870], [59871, 59872, 59873], [59874, 59875, 59876], [59877, 59878, 59879], [59880, 59881, 59882], [59883, 59884, 59885], [59886, 59887, 59888], [59889, 59890, 59891], [59892, 59893, 59894], [59895, 59896, 59897], [59898, 59899, 59900], [59901, 59902, 59903], [59904, 59905, 59906], [59907, 59908, 59909], [59910, 59911, 59912], [59913, 59914, 59915], [59916, 59917, 59918], [59919, 59920, 59921], [59922, 59923, 59924], [59925, 59926, 59927], [59928, 59929, 59930], [59931, 59932, 59933], [59934, 59935, 59936], [59937, 59938, 59939], [59940, 59941, 59942], [59943, 59944, 59945], [59946, 59947, 59948], [59949, 59950, 59951], [59952, 59953, 59954], [59955, 59956, 59957], [59958, 59959, 59960], [59961, 59962, 59963], [59964, 59965, 59966], [59967, 59968, 59969], [59970, 59971, 59972], [59973, 59974, 59975], [59976, 59977, 59978], [59979, 59980, 59981], [59982, 59983, 59984], [59985, 59986, 59987], [59988, 59989, 59990], [59991, 59992, 59993], [59994, 59995, 59996], [59997, 59998, 59999], [60000, 60001, 60002], [60003, 60004, 60005], [60006, 60007, 60008], [60009, 60010, 60011], [60012, 60013, 60014], [60015, 60016, 60017], [60018, 60019, 60020], [60021, 60022, 60023], [60024, 60025, 60026], [60027, 60028, 60029], [60030, 60031, 60032], [60033, 60034, 60035], [60036, 60037, 60038], [60039, 60040, 60041], [60042, 60043, 60044], [60045, 60046, 60047], [60048, 60049, 60050], [60051, 60052, 60053], [60054, 60055, 60056], [60057, 60058, 60059], [60060, 60061, 60062], [60063, 60064, 60065], [60066, 60067, 60068], [60069, 60070, 60071], [60072, 60073, 60074], [60075, 60076, 60077], [60078, 60079, 60080], [60081, 60082, 60083], [60084, 60085, 60086], [60087, 60088, 60089], [60090, 60091, 60092], [60093, 60094, 60095], [60096, 60097, 60098], [60099, 60100, 60101], [60102, 60103, 60104], [60105, 60106, 60107], [60108, 60109, 60110], [60111, 60112, 60113], [60114, 60115, 60116], [60117, 60118, 60119], [60120, 60121, 60122], [60123, 60124, 60125], [60126, 60127, 60128], [60129, 60130, 60131], [60132, 60133, 60134], [60135, 60136, 60137], [60138, 60139, 60140], [60141, 60142, 60143], [60144, 60145, 60146], [60147, 60148, 60149], [60150, 60151, 60152], [60153, 60154, 60155], [60156, 60157, 60158], [60159, 60160, 60161], [60162, 60163, 60164], [60165, 60166, 60167], [60168, 60169, 60170], [60171, 60172, 60173], [60174, 60175, 60176], [60177, 60178, 60179], [60180, 60181, 60182], [60183, 60184, 60185], [60186, 60187, 60188], [60189, 60190, 60191], [60192, 60193, 60194], [60195, 60196, 60197], [60198, 60199, 60200], [60201, 60202, 60203], [60204, 60205, 60206], [60207, 60208, 60209], [60210, 60211, 60212], [60213, 60214, 60215], [60216, 60217, 60218], [60219, 60220, 60221], [60222, 60223, 60224], [60225, 60226, 60227], [60228, 60229, 60230], [60231, 60232, 60233], [60234, 60235, 60236], [60237, 60238, 60239], [60240, 60241, 60242], [60243, 60244, 60245], [60246, 60247, 60248], [60249, 60250, 60251], [60252, 60253, 60254], [60255, 60256, 60257], [60258, 60259, 60260], [60261, 60262, 60263], [60264, 60265, 60266], [60267, 60268, 60269], [60270, 60271, 60272], [60273, 60274, 60275], [60276, 60277, 60278], [60279, 60280, 60281], [60282, 60283, 60284], [60285, 60286, 60287], [60288, 60289, 60290], [60291, 60292, 60293], [60294, 60295, 60296], [60297, 60298, 60299], [60300, 60301, 60302], [60303, 60304, 60305], [60306, 60307, 60308], [60309, 60310, 60311], [60312, 60313, 60314], [60315, 60316, 60317], [60318, 60319, 60320], [60321, 60322, 60323], [60324, 60325, 60326], [60327, 60328, 60329], [60330, 60331, 60332], [60333, 60334, 60335], [60336, 60337, 60338], [60339, 60340, 60341], [60342, 60343, 60344], [60345, 60346, 60347], [60348, 60349, 60350], [60351, 60352, 60353], [60354, 60355, 60356], [60357, 60358, 60359], [60360, 60361, 60362], [60363, 60364, 60365], [60366, 60367, 60368], [60369, 60370, 60371], [60372, 60373, 60374], [60375, 60376, 60377], [60378, 60379, 60380], [60381, 60382, 60383], [60384, 60385, 60386], [60387, 60388, 60389], [60390, 60391, 60392], [60393, 60394, 60395], [60396, 60397, 60398], [60399, 60400, 60401], [60402, 60403, 60404], [60405, 60406, 60407], [60408, 60409, 60410], [60411, 60412, 60413], [60414, 60415, 60416], [60417, 60418, 60419], [60420, 60421, 60422], [60423, 60424, 60425], [60426, 60427, 60428], [60429, 60430, 60431], [60432, 60433, 60434], [60435, 60436, 60437], [60438, 60439, 60440], [60441, 60442, 60443], [60444, 60445, 60446], [60447, 60448, 60449], [60450, 60451, 60452], [60453, 60454, 60455], [60456, 60457, 60458], [60459, 60460, 60461], [60462, 60463, 60464], [60465, 60466, 60467], [60468, 60469, 60470], [60471, 60472, 60473], [60474, 60475, 60476], [60477, 60478, 60479], [60480, 60481, 60482], [60483, 60484, 60485], [60486, 60487, 60488], [60489, 60490, 60491], [60492, 60493, 60494], [60495, 60496, 60497], [60498, 60499, 60500], [60501, 60502, 60503], [60504, 60505, 60506], [60507, 60508, 60509], [60510, 60511, 60512], [60513, 60514, 60515], [60516, 60517, 60518], [60519, 60520, 60521], [60522, 60523, 60524], [60525, 60526, 60527], [60528, 60529, 60530], [60531, 60532, 60533], [60534, 60535, 60536], [60537, 60538, 60539], [60540, 60541, 60542], [60543, 60544, 60545], [60546, 60547, 60548], [60549, 60550, 60551], [60552, 60553, 60554], [60555, 60556, 60557], [60558, 60559, 60560], [60561, 60562, 60563], [60564, 60565, 60566], [60567, 60568, 60569], [60570, 60571, 60572], [60573, 60574, 60575], [60576, 60577, 60578], [60579, 60580, 60581], [60582, 60583, 60584], [60585, 60586, 60587], [60588, 60589, 60590], [60591, 60592, 60593], [60594, 60595, 60596], [60597, 60598, 60599], [60600, 60601, 60602], [60603, 60604, 60605], [60606, 60607, 60608], [60609, 60610, 60611], [60612, 60613, 60614], [60615, 60616, 60617], [60618, 60619, 60620], [60621, 60622, 60623], [60624, 60625, 60626], [60627, 60628, 60629], [60630, 60631, 60632], [60633, 60634, 60635], [60636, 60637, 60638], [60639, 60640, 60641], [60642, 60643, 60644], [60645, 60646, 60647], [60648, 60649, 60650], [60651, 60652, 60653], [60654, 60655, 60656], [60657, 60658, 60659], [60660, 60661, 60662], [60663, 60664, 60665], [60666, 60667, 60668], [60669, 60670, 60671], [60672, 60673, 60674], [60675, 60676, 60677], [60678, 60679, 60680], [60681, 60682, 60683], [60684, 60685, 60686], [60687, 60688, 60689], [60690, 60691, 60692], [60693, 60694, 60695], [60696, 60697, 60698], [60699, 60700, 60701], [60702, 60703, 60704], [60705, 60706, 60707], [60708, 60709, 60710], [60711, 60712, 60713], [60714, 60715, 60716], [60717, 60718, 60719], [60720, 60721, 60722], [60723, 60724, 60725], [60726, 60727, 60728], [60729, 60730, 60731], [60732, 60733, 60734], [60735, 60736, 60737], [60738, 60739, 60740], [60741, 60742, 60743], [60744, 60745, 60746], [60747, 60748, 60749], [60750, 60751, 60752], [60753, 60754, 60755], [60756, 60757, 60758], [60759, 60760, 60761], [60762, 60763, 60764], [60765, 60766, 60767], [60768, 60769, 60770], [60771, 60772, 60773], [60774, 60775, 60776], [60777, 60778, 60779], [60780, 60781, 60782], [60783, 60784, 60785], [60786, 60787, 60788], [60789, 60790, 60791], [60792, 60793, 60794], [60795, 60796, 60797], [60798, 60799, 60800], [60801, 60802, 60803], [60804, 60805, 60806], [60807, 60808, 60809], [60810, 60811, 60812], [60813, 60814, 60815], [60816, 60817, 60818], [60819, 60820, 60821], [60822, 60823, 60824], [60825, 60826, 60827], [60828, 60829, 60830], [60831, 60832, 60833], [60834, 60835, 60836], [60837, 60838, 60839], [60840, 60841, 60842], [60843, 60844, 60845], [60846, 60847, 60848], [60849, 60850, 60851], [60852, 60853, 60854], [60855, 60856, 60857], [60858, 60859, 60860], [60861, 60862, 60863], [60864, 60865, 60866], [60867, 60868, 60869], [60870, 60871, 60872], [60873, 60874, 60875], [60876, 60877, 60878], [60879, 60880, 60881], [60882, 60883, 60884], [60885, 60886, 60887], [60888, 60889, 60890], [60891, 60892, 60893], [60894, 60895, 60896], [60897, 60898, 60899], [60900, 60901, 60902], [60903, 60904, 60905], [60906, 60907, 60908], [60909, 60910, 60911], [60912, 60913, 60914], [60915, 60916, 60917], [60918, 60919, 60920], [60921, 60922, 60923], [60924, 60925, 60926], [60927, 60928, 60929], [60930, 60931, 60932], [60933, 60934, 60935], [60936, 60937, 60938], [60939, 60940, 60941], [60942, 60943, 60944], [60945, 60946, 60947], [60948, 60949, 60950], [60951, 60952, 60953], [60954, 60955, 60956], [60957, 60958, 60959], [60960, 60961, 60962], [60963, 60964, 60965], [60966, 60967, 60968], [60969, 60970, 60971], [60972, 60973, 60974], [60975, 60976, 60977], [60978, 60979, 60980], [60981, 60982, 60983], [60984, 60985, 60986], [60987, 60988, 60989], [60990, 60991, 60992], [60993, 60994, 60995], [60996, 60997, 60998], [60999, 61000, 61001], [61002, 61003, 61004], [61005, 61006, 61007], [61008, 61009, 61010], [61011, 61012, 61013], [61014, 61015, 61016], [61017, 61018, 61019], [61020, 61021, 61022], [61023, 61024, 61025], [61026, 61027, 61028], [61029, 61030, 61031], [61032, 61033, 61034], [61035, 61036, 61037], [61038, 61039, 61040], [61041, 61042, 61043], [61044, 61045, 61046], [61047, 61048, 61049], [61050, 61051, 61052], [61053, 61054, 61055], [61056, 61057, 61058], [61059, 61060, 61061], [61062, 61063, 61064], [61065, 61066, 61067], [61068, 61069, 61070], [61071, 61072, 61073], [61074, 61075, 61076], [61077, 61078, 61079], [61080, 61081, 61082], [61083, 61084, 61085], [61086, 61087, 61088], [61089, 61090, 61091], [61092, 61093, 61094], [61095, 61096, 61097], [61098, 61099, 61100], [61101, 61102, 61103], [61104, 61105, 61106], [61107, 61108, 61109], [61110, 61111, 61112], [61113, 61114, 61115], [61116, 61117, 61118], [61119, 61120, 61121], [61122, 61123, 61124], [61125, 61126, 61127], [61128, 61129, 61130], [61131, 61132, 61133], [61134, 61135, 61136], [61137, 61138, 61139], [61140, 61141, 61142], [61143, 61144, 61145], [61146, 61147, 61148], [61149, 61150, 61151], [61152, 61153, 61154], [61155, 61156, 61157], [61158, 61159, 61160], [61161, 61162, 61163], [61164, 61165, 61166], [61167, 61168, 61169], [61170, 61171, 61172], [61173, 61174, 61175], [61176, 61177, 61178], [61179, 61180, 61181], [61182, 61183, 61184], [61185, 61186, 61187], [61188, 61189, 61190], [61191, 61192, 61193], [61194, 61195, 61196], [61197, 61198, 61199], [61200, 61201, 61202], [61203, 61204, 61205], [61206, 61207, 61208], [61209, 61210, 61211], [61212, 61213, 61214], [61215, 61216, 61217], [61218, 61219, 61220], [61221, 61222, 61223], [61224, 61225, 61226], [61227, 61228, 61229], [61230, 61231, 61232], [61233, 61234, 61235], [61236, 61237, 61238], [61239, 61240, 61241], [61242, 61243, 61244], [61245, 61246, 61247], [61248, 61249, 61250], [61251, 61252, 61253], [61254, 61255, 61256], [61257, 61258, 61259], [61260, 61261, 61262], [61263, 61264, 61265], [61266, 61267, 61268], [61269, 61270, 61271], [61272, 61273, 61274], [61275, 61276, 61277], [61278, 61279, 61280], [61281, 61282, 61283], [61284, 61285, 61286], [61287, 61288, 61289], [61290, 61291, 61292], [61293, 61294, 61295], [61296, 61297, 61298], [61299, 61300, 61301], [61302, 61303, 61304], [61305, 61306, 61307], [61308, 61309, 61310], [61311, 61312, 61313], [61314, 61315, 61316], [61317, 61318, 61319], [61320, 61321, 61322], [61323, 61324, 61325], [61326, 61327, 61328], [61329, 61330, 61331], [61332, 61333, 61334], [61335, 61336, 61337], [61338, 61339, 61340], [61341, 61342, 61343], [61344, 61345, 61346], [61347, 61348, 61349], [61350, 61351, 61352], [61353, 61354, 61355], [61356, 61357, 61358], [61359, 61360, 61361], [61362, 61363, 61364], [61365, 61366, 61367], [61368, 61369, 61370], [61371, 61372, 61373], [61374, 61375, 61376], [61377, 61378, 61379], [61380, 61381, 61382], [61383, 61384, 61385], [61386, 61387, 61388], [61389, 61390, 61391], [61392, 61393, 61394], [61395, 61396, 61397], [61398, 61399, 61400], [61401, 61402, 61403], [61404, 61405, 61406], [61407, 61408, 61409], [61410, 61411, 61412], [61413, 61414, 61415], [61416, 61417, 61418], [61419, 61420, 61421], [61422, 61423, 61424], [61425, 61426, 61427], [61428, 61429, 61430], [61431, 61432, 61433], [61434, 61435, 61436], [61437, 61438, 61439], [61440, 61441, 61442], [61443, 61444, 61445], [61446, 61447, 61448], [61449, 61450, 61451], [61452, 61453, 61454], [61455, 61456, 61457], [61458, 61459, 61460], [61461, 61462, 61463], [61464, 61465, 61466], [61467, 61468, 61469], [61470, 61471, 61472], [61473, 61474, 61475], [61476, 61477, 61478], [61479, 61480, 61481], [61482, 61483, 61484], [61485, 61486, 61487], [61488, 61489, 61490], [61491, 61492, 61493], [61494, 61495, 61496], [61497, 61498, 61499], [61500, 61501, 61502], [61503, 61504, 61505], [61506, 61507, 61508], [61509, 61510, 61511], [61512, 61513, 61514], [61515, 61516, 61517], [61518, 61519, 61520], [61521, 61522, 61523], [61524, 61525, 61526], [61527, 61528, 61529], [61530, 61531, 61532], [61533, 61534, 61535], [61536, 61537, 61538], [61539, 61540, 61541], [61542, 61543, 61544], [61545, 61546, 61547], [61548, 61549, 61550], [61551, 61552, 61553], [61554, 61555, 61556], [61557, 61558, 61559], [61560, 61561, 61562], [61563, 61564, 61565], [61566, 61567, 61568], [61569, 61570, 61571], [61572, 61573, 61574], [61575, 61576, 61577], [61578, 61579, 61580], [61581, 61582, 61583], [61584, 61585, 61586], [61587, 61588, 61589], [61590, 61591, 61592], [61593, 61594, 61595], [61596, 61597, 61598], [61599, 61600, 61601], [61602, 61603, 61604], [61605, 61606, 61607], [61608, 61609, 61610], [61611, 61612, 61613], [61614, 61615, 61616], [61617, 61618, 61619], [61620, 61621, 61622], [61623, 61624, 61625], [61626, 61627, 61628], [61629, 61630, 61631], [61632, 61633, 61634], [61635, 61636, 61637], [61638, 61639, 61640], [61641, 61642, 61643], [61644, 61645, 61646], [61647, 61648, 61649], [61650, 61651, 61652], [61653, 61654, 61655], [61656, 61657, 61658], [61659, 61660, 61661], [61662, 61663, 61664], [61665, 61666, 61667], [61668, 61669, 61670], [61671, 61672, 61673], [61674, 61675, 61676], [61677, 61678, 61679], [61680, 61681, 61682], [61683, 61684, 61685], [61686, 61687, 61688], [61689, 61690, 61691], [61692, 61693, 61694], [61695, 61696, 61697], [61698, 61699, 61700], [61701, 61702, 61703], [61704, 61705, 61706], [61707, 61708, 61709], [61710, 61711, 61712], [61713, 61714, 61715], [61716, 61717, 61718], [61719, 61720, 61721], [61722, 61723, 61724], [61725, 61726, 61727], [61728, 61729, 61730], [61731, 61732, 61733], [61734, 61735, 61736], [61737, 61738, 61739], [61740, 61741, 61742], [61743, 61744, 61745], [61746, 61747, 61748], [61749, 61750, 61751], [61752, 61753, 61754], [61755, 61756, 61757], [61758, 61759, 61760], [61761, 61762, 61763], [61764, 61765, 61766], [61767, 61768, 61769], [61770, 61771, 61772], [61773, 61774, 61775], [61776, 61777, 61778], [61779, 61780, 61781], [61782, 61783, 61784], [61785, 61786, 61787], [61788, 61789, 61790], [61791, 61792, 61793], [61794, 61795, 61796], [61797, 61798, 61799], [61800, 61801, 61802], [61803, 61804, 61805], [61806, 61807, 61808], [61809, 61810, 61811], [61812, 61813, 61814], [61815, 61816, 61817], [61818, 61819, 61820], [61821, 61822, 61823], [61824, 61825, 61826], [61827, 61828, 61829], [61830, 61831, 61832], [61833, 61834, 61835], [61836, 61837, 61838], [61839, 61840, 61841], [61842, 61843, 61844], [61845, 61846, 61847], [61848, 61849, 61850], [61851, 61852, 61853], [61854, 61855, 61856], [61857, 61858, 61859], [61860, 61861, 61862], [61863, 61864, 61865], [61866, 61867, 61868], [61869, 61870, 61871], [61872, 61873, 61874], [61875, 61876, 61877], [61878, 61879, 61880], [61881, 61882, 61883], [61884, 61885, 61886], [61887, 61888, 61889], [61890, 61891, 61892], [61893, 61894, 61895], [61896, 61897, 61898], [61899, 61900, 61901], [61902, 61903, 61904], [61905, 61906, 61907], [61908, 61909, 61910], [61911, 61912, 61913], [61914, 61915, 61916], [61917, 61918, 61919], [61920, 61921, 61922], [61923, 61924, 61925], [61926, 61927, 61928], [61929, 61930, 61931], [61932, 61933, 61934], [61935, 61936, 61937], [61938, 61939, 61940], [61941, 61942, 61943], [61944, 61945, 61946], [61947, 61948, 61949], [61950, 61951, 61952], [61953, 61954, 61955], [61956, 61957, 61958], [61959, 61960, 61961], [61962, 61963, 61964], [61965, 61966, 61967], [61968, 61969, 61970], [61971, 61972, 61973], [61974, 61975, 61976], [61977, 61978, 61979], [61980, 61981, 61982], [61983, 61984, 61985], [61986, 61987, 61988], [61989, 61990, 61991], [61992, 61993, 61994], [61995, 61996, 61997], [61998, 61999, 62000], [62001, 62002, 62003], [62004, 62005, 62006], [62007, 62008, 62009], [62010, 62011, 62012], [62013, 62014, 62015], [62016, 62017, 62018], [62019, 62020, 62021], [62022, 62023, 62024], [62025, 62026, 62027], [62028, 62029, 62030], [62031, 62032, 62033], [62034, 62035, 62036], [62037, 62038, 62039], [62040, 62041, 62042], [62043, 62044, 62045], [62046, 62047, 62048], [62049, 62050, 62051], [62052, 62053, 62054], [62055, 62056, 62057], [62058, 62059, 62060], [62061, 62062, 62063], [62064, 62065, 62066], [62067, 62068, 62069], [62070, 62071, 62072], [62073, 62074, 62075], [62076, 62077, 62078], [62079, 62080, 62081], [62082, 62083, 62084], [62085, 62086, 62087], [62088, 62089, 62090], [62091, 62092, 62093], [62094, 62095, 62096], [62097, 62098, 62099], [62100, 62101, 62102], [62103, 62104, 62105], [62106, 62107, 62108], [62109, 62110, 62111], [62112, 62113, 62114], [62115, 62116, 62117], [62118, 62119, 62120], [62121, 62122, 62123], [62124, 62125, 62126], [62127, 62128, 62129], [62130, 62131, 62132], [62133, 62134, 62135], [62136, 62137, 62138], [62139, 62140, 62141], [62142, 62143, 62144], [62145, 62146, 62147], [62148, 62149, 62150], [62151, 62152, 62153], [62154, 62155, 62156], [62157, 62158, 62159], [62160, 62161, 62162], [62163, 62164, 62165], [62166, 62167, 62168], [62169, 62170, 62171], [62172, 62173, 62174], [62175, 62176, 62177], [62178, 62179, 62180], [62181, 62182, 62183], [62184, 62185, 62186], [62187, 62188, 62189], [62190, 62191, 62192], [62193, 62194, 62195], [62196, 62197, 62198], [62199, 62200, 62201], [62202, 62203, 62204], [62205, 62206, 62207], [62208, 62209, 62210], [62211, 62212, 62213], [62214, 62215, 62216], [62217, 62218, 62219], [62220, 62221, 62222], [62223, 62224, 62225], [62226, 62227, 62228], [62229, 62230, 62231], [62232, 62233, 62234], [62235, 62236, 62237], [62238, 62239, 62240], [62241, 62242, 62243], [62244, 62245, 62246], [62247, 62248, 62249], [62250, 62251, 62252], [62253, 62254, 62255], [62256, 62257, 62258], [62259, 62260, 62261], [62262, 62263, 62264], [62265, 62266, 62267], [62268, 62269, 62270], [62271, 62272, 62273], [62274, 62275, 62276], [62277, 62278, 62279], [62280, 62281, 62282], [62283, 62284, 62285], [62286, 62287, 62288], [62289, 62290, 62291], [62292, 62293, 62294], [62295, 62296, 62297], [62298, 62299, 62300], [62301, 62302, 62303], [62304, 62305, 62306], [62307, 62308, 62309], [62310, 62311, 62312], [62313, 62314, 62315], [62316, 62317, 62318], [62319, 62320, 62321], [62322, 62323, 62324], [62325, 62326, 62327], [62328, 62329, 62330], [62331, 62332, 62333], [62334, 62335, 62336], [62337, 62338, 62339], [62340, 62341, 62342], [62343, 62344, 62345], [62346, 62347, 62348], [62349, 62350, 62351], [62352, 62353, 62354], [62355, 62356, 62357], [62358, 62359, 62360], [62361, 62362, 62363], [62364, 62365, 62366], [62367, 62368, 62369], [62370, 62371, 62372], [62373, 62374, 62375], [62376, 62377, 62378], [62379, 62380, 62381], [62382, 62383, 62384], [62385, 62386, 62387], [62388, 62389, 62390], [62391, 62392, 62393], [62394, 62395, 62396], [62397, 62398, 62399], [62400, 62401, 62402], [62403, 62404, 62405], [62406, 62407, 62408], [62409, 62410, 62411], [62412, 62413, 62414], [62415, 62416, 62417], [62418, 62419, 62420], [62421, 62422, 62423], [62424, 62425, 62426], [62427, 62428, 62429], [62430, 62431, 62432], [62433, 62434, 62435], [62436, 62437, 62438], [62439, 62440, 62441], [62442, 62443, 62444], [62445, 62446, 62447], [62448, 62449, 62450], [62451, 62452, 62453], [62454, 62455, 62456], [62457, 62458, 62459], [62460, 62461, 62462], [62463, 62464, 62465], [62466, 62467, 62468], [62469, 62470, 62471], [62472, 62473, 62474], [62475, 62476, 62477], [62478, 62479, 62480], [62481, 62482, 62483], [62484, 62485, 62486], [62487, 62488, 62489], [62490, 62491, 62492], [62493, 62494, 62495], [62496, 62497, 62498], [62499, 62500, 62501], [62502, 62503, 62504], [62505, 62506, 62507], [62508, 62509, 62510], [62511, 62512, 62513], [62514, 62515, 62516], [62517, 62518, 62519], [62520, 62521, 62522], [62523, 62524, 62525], [62526, 62527, 62528], [62529, 62530, 62531], [62532, 62533, 62534], [62535, 62536, 62537], [62538, 62539, 62540], [62541, 62542, 62543], [62544, 62545, 62546], [62547, 62548, 62549], [62550, 62551, 62552], [62553, 62554, 62555], [62556, 62557, 62558], [62559, 62560, 62561], [62562, 62563, 62564], [62565, 62566, 62567], [62568, 62569, 62570], [62571, 62572, 62573], [62574, 62575, 62576], [62577, 62578, 62579], [62580, 62581, 62582], [62583, 62584, 62585], [62586, 62587, 62588], [62589, 62590, 62591], [62592, 62593, 62594], [62595, 62596, 62597], [62598, 62599, 62600], [62601, 62602, 62603], [62604, 62605, 62606], [62607, 62608, 62609], [62610, 62611, 62612], [62613, 62614, 62615], [62616, 62617, 62618], [62619, 62620, 62621], [62622, 62623, 62624], [62625, 62626, 62627], [62628, 62629, 62630], [62631, 62632, 62633], [62634, 62635, 62636], [62637, 62638, 62639], [62640, 62641, 62642], [62643, 62644, 62645], [62646, 62647, 62648], [62649, 62650, 62651], [62652, 62653, 62654], [62655, 62656, 62657], [62658, 62659, 62660], [62661, 62662, 62663], [62664, 62665, 62666], [62667, 62668, 62669], [62670, 62671, 62672], [62673, 62674, 62675], [62676, 62677, 62678], [62679, 62680, 62681], [62682, 62683, 62684], [62685, 62686, 62687], [62688, 62689, 62690], [62691, 62692, 62693], [62694, 62695, 62696], [62697, 62698, 62699], [62700, 62701, 62702], [62703, 62704, 62705], [62706, 62707, 62708], [62709, 62710, 62711], [62712, 62713, 62714], [62715, 62716, 62717], [62718, 62719, 62720], [62721, 62722, 62723], [62724, 62725, 62726], [62727, 62728, 62729], [62730, 62731, 62732], [62733, 62734, 62735], [62736, 62737, 62738], [62739, 62740, 62741], [62742, 62743, 62744], [62745, 62746, 62747], [62748, 62749, 62750], [62751, 62752, 62753], [62754, 62755, 62756], [62757, 62758, 62759], [62760, 62761, 62762], [62763, 62764, 62765], [62766, 62767, 62768], [62769, 62770, 62771], [62772, 62773, 62774], [62775, 62776, 62777], [62778, 62779, 62780], [62781, 62782, 62783], [62784, 62785, 62786], [62787, 62788, 62789], [62790, 62791, 62792], [62793, 62794, 62795], [62796, 62797, 62798], [62799, 62800, 62801], [62802, 62803, 62804], [62805, 62806, 62807], [62808, 62809, 62810], [62811, 62812, 62813], [62814, 62815, 62816], [62817, 62818, 62819], [62820, 62821, 62822], [62823, 62824, 62825], [62826, 62827, 62828], [62829, 62830, 62831], [62832, 62833, 62834], [62835, 62836, 62837], [62838, 62839, 62840], [62841, 62842, 62843], [62844, 62845, 62846], [62847, 62848, 62849], [62850, 62851, 62852], [62853, 62854, 62855], [62856, 62857, 62858], [62859, 62860, 62861], [62862, 62863, 62864], [62865, 62866, 62867], [62868, 62869, 62870], [62871, 62872, 62873], [62874, 62875, 62876], [62877, 62878, 62879], [62880, 62881, 62882], [62883, 62884, 62885], [62886, 62887, 62888], [62889, 62890, 62891], [62892, 62893, 62894], [62895, 62896, 62897], [62898, 62899, 62900], [62901, 62902, 62903], [62904, 62905, 62906], [62907, 62908, 62909], [62910, 62911, 62912], [62913, 62914, 62915], [62916, 62917, 62918], [62919, 62920, 62921], [62922, 62923, 62924], [62925, 62926, 62927], [62928, 62929, 62930], [62931, 62932, 62933], [62934, 62935, 62936], [62937, 62938, 62939], [62940, 62941, 62942], [62943, 62944, 62945], [62946, 62947, 62948], [62949, 62950, 62951], [62952, 62953, 62954], [62955, 62956, 62957], [62958, 62959, 62960], [62961, 62962, 62963], [62964, 62965, 62966], [62967, 62968, 62969], [62970, 62971, 62972], [62973, 62974, 62975], [62976, 62977, 62978], [62979, 62980, 62981], [62982, 62983, 62984], [62985, 62986, 62987], [62988, 62989, 62990], [62991, 62992, 62993], [62994, 62995, 62996], [62997, 62998, 62999], [63000, 63001, 63002], [63003, 63004, 63005], [63006, 63007, 63008], [63009, 63010, 63011], [63012, 63013, 63014], [63015, 63016, 63017], [63018, 63019, 63020], [63021, 63022, 63023], [63024, 63025, 63026], [63027, 63028, 63029], [63030, 63031, 63032], [63033, 63034, 63035], [63036, 63037, 63038], [63039, 63040, 63041], [63042, 63043, 63044], [63045, 63046, 63047], [63048, 63049, 63050], [63051, 63052, 63053], [63054, 63055, 63056], [63057, 63058, 63059], [63060, 63061, 63062], [63063, 63064, 63065], [63066, 63067, 63068], [63069, 63070, 63071], [63072, 63073, 63074], [63075, 63076, 63077], [63078, 63079, 63080], [63081, 63082, 63083], [63084, 63085, 63086], [63087, 63088, 63089], [63090, 63091, 63092], [63093, 63094, 63095], [63096, 63097, 63098], [63099, 63100, 63101], [63102, 63103, 63104], [63105, 63106, 63107], [63108, 63109, 63110], [63111, 63112, 63113], [63114, 63115, 63116], [63117, 63118, 63119], [63120, 63121, 63122], [63123, 63124, 63125], [63126, 63127, 63128], [63129, 63130, 63131], [63132, 63133, 63134], [63135, 63136, 63137], [63138, 63139, 63140], [63141, 63142, 63143], [63144, 63145, 63146], [63147, 63148, 63149], [63150, 63151, 63152], [63153, 63154, 63155], [63156, 63157, 63158], [63159, 63160, 63161], [63162, 63163, 63164], [63165, 63166, 63167], [63168, 63169, 63170], [63171, 63172, 63173], [63174, 63175, 63176], [63177, 63178, 63179], [63180, 63181, 63182], [63183, 63184, 63185], [63186, 63187, 63188], [63189, 63190, 63191], [63192, 63193, 63194], [63195, 63196, 63197], [63198, 63199, 63200], [63201, 63202, 63203], [63204, 63205, 63206], [63207, 63208, 63209], [63210, 63211, 63212], [63213, 63214, 63215], [63216, 63217, 63218], [63219, 63220, 63221], [63222, 63223, 63224], [63225, 63226, 63227], [63228, 63229, 63230], [63231, 63232, 63233], [63234, 63235, 63236], [63237, 63238, 63239], [63240, 63241, 63242], [63243, 63244, 63245], [63246, 63247, 63248], [63249, 63250, 63251], [63252, 63253, 63254], [63255, 63256, 63257], [63258, 63259, 63260], [63261, 63262, 63263], [63264, 63265, 63266], [63267, 63268, 63269], [63270, 63271, 63272], [63273, 63274, 63275], [63276, 63277, 63278], [63279, 63280, 63281], [63282, 63283, 63284], [63285, 63286, 63287], [63288, 63289, 63290], [63291, 63292, 63293], [63294, 63295, 63296], [63297, 63298, 63299], [63300, 63301, 63302], [63303, 63304, 63305], [63306, 63307, 63308], [63309, 63310, 63311], [63312, 63313, 63314], [63315, 63316, 63317], [63318, 63319, 63320], [63321, 63322, 63323], [63324, 63325, 63326], [63327, 63328, 63329], [63330, 63331, 63332], [63333, 63334, 63335], [63336, 63337, 63338], [63339, 63340, 63341], [63342, 63343, 63344], [63345, 63346, 63347], [63348, 63349, 63350], [63351, 63352, 63353], [63354, 63355, 63356], [63357, 63358, 63359], [63360, 63361, 63362], [63363, 63364, 63365], [63366, 63367, 63368], [63369, 63370, 63371], [63372, 63373, 63374], [63375, 63376, 63377], [63378, 63379, 63380], [63381, 63382, 63383], [63384, 63385, 63386], [63387, 63388, 63389], [63390, 63391, 63392], [63393, 63394, 63395], [63396, 63397, 63398], [63399, 63400, 63401], [63402, 63403, 63404], [63405, 63406, 63407], [63408, 63409, 63410], [63411, 63412, 63413], [63414, 63415, 63416], [63417, 63418, 63419], [63420, 63421, 63422], [63423, 63424, 63425], [63426, 63427, 63428], [63429, 63430, 63431], [63432, 63433, 63434], [63435, 63436, 63437], [63438, 63439, 63440], [63441, 63442, 63443], [63444, 63445, 63446], [63447, 63448, 63449], [63450, 63451, 63452], [63453, 63454, 63455], [63456, 63457, 63458], [63459, 63460, 63461], [63462, 63463, 63464], [63465, 63466, 63467], [63468, 63469, 63470], [63471, 63472, 63473], [63474, 63475, 63476], [63477, 63478, 63479], [63480, 63481, 63482], [63483, 63484, 63485], [63486, 63487, 63488], [63489, 63490, 63491], [63492, 63493, 63494], [63495, 63496, 63497], [63498, 63499, 63500], [63501, 63502, 63503], [63504, 63505, 63506], [63507, 63508, 63509], [63510, 63511, 63512], [63513, 63514, 63515], [63516, 63517, 63518], [63519, 63520, 63521], [63522, 63523, 63524], [63525, 63526, 63527], [63528, 63529, 63530], [63531, 63532, 63533], [63534, 63535, 63536], [63537, 63538, 63539], [63540, 63541, 63542], [63543, 63544, 63545], [63546, 63547, 63548], [63549, 63550, 63551], [63552, 63553, 63554], [63555, 63556, 63557], [63558, 63559, 63560], [63561, 63562, 63563], [63564, 63565, 63566], [63567, 63568, 63569], [63570, 63571, 63572], [63573, 63574, 63575], [63576, 63577, 63578], [63579, 63580, 63581], [63582, 63583, 63584], [63585, 63586, 63587], [63588, 63589, 63590], [63591, 63592, 63593], [63594, 63595, 63596], [63597, 63598, 63599], [63600, 63601, 63602], [63603, 63604, 63605], [63606, 63607, 63608], [63609, 63610, 63611], [63612, 63613, 63614], [63615, 63616, 63617], [63618, 63619, 63620], [63621, 63622, 63623], [63624, 63625, 63626], [63627, 63628, 63629], [63630, 63631, 63632], [63633, 63634, 63635], [63636, 63637, 63638], [63639, 63640, 63641], [63642, 63643, 63644], [63645, 63646, 63647], [63648, 63649, 63650], [63651, 63652, 63653], [63654, 63655, 63656], [63657, 63658, 63659], [63660, 63661, 63662], [63663, 63664, 63665], [63666, 63667, 63668], [63669, 63670, 63671], [63672, 63673, 63674], [63675, 63676, 63677], [63678, 63679, 63680], [63681, 63682, 63683], [63684, 63685, 63686], [63687, 63688, 63689], [63690, 63691, 63692], [63693, 63694, 63695], [63696, 63697, 63698], [63699, 63700, 63701], [63702, 63703, 63704], [63705, 63706, 63707], [63708, 63709, 63710], [63711, 63712, 63713], [63714, 63715, 63716], [63717, 63718, 63719], [63720, 63721, 63722], [63723, 63724, 63725], [63726, 63727, 63728], [63729, 63730, 63731], [63732, 63733, 63734], [63735, 63736, 63737], [63738, 63739, 63740], [63741, 63742, 63743], [63744, 63745, 63746], [63747, 63748, 63749], [63750, 63751, 63752], [63753, 63754, 63755], [63756, 63757, 63758], [63759, 63760, 63761], [63762, 63763, 63764], [63765, 63766, 63767], [63768, 63769, 63770], [63771, 63772, 63773], [63774, 63775, 63776], [63777, 63778, 63779], [63780, 63781, 63782], [63783, 63784, 63785], [63786, 63787, 63788], [63789, 63790, 63791], [63792, 63793, 63794], [63795, 63796, 63797], [63798, 63799, 63800], [63801, 63802, 63803], [63804, 63805, 63806], [63807, 63808, 63809], [63810, 63811, 63812], [63813, 63814, 63815], [63816, 63817, 63818], [63819, 63820, 63821], [63822, 63823, 63824], [63825, 63826, 63827], [63828, 63829, 63830], [63831, 63832, 63833], [63834, 63835, 63836], [63837, 63838, 63839], [63840, 63841, 63842], [63843, 63844, 63845], [63846, 63847, 63848], [63849, 63850, 63851], [63852, 63853, 63854], [63855, 63856, 63857], [63858, 63859, 63860], [63861, 63862, 63863], [63864, 63865, 63866], [63867, 63868, 63869], [63870, 63871, 63872], [63873, 63874, 63875], [63876, 63877, 63878], [63879, 63880, 63881], [63882, 63883, 63884], [63885, 63886, 63887], [63888, 63889, 63890], [63891, 63892, 63893], [63894, 63895, 63896], [63897, 63898, 63899], [63900, 63901, 63902], [63903, 63904, 63905], [63906, 63907, 63908], [63909, 63910, 63911], [63912, 63913, 63914], [63915, 63916, 63917], [63918, 63919, 63920], [63921, 63922, 63923], [63924, 63925, 63926], [63927, 63928, 63929], [63930, 63931, 63932], [63933, 63934, 63935], [63936, 63937, 63938], [63939, 63940, 63941], [63942, 63943, 63944], [63945, 63946, 63947], [63948, 63949, 63950], [63951, 63952, 63953], [63954, 63955, 63956], [63957, 63958, 63959], [63960, 63961, 63962], [63963, 63964, 63965], [63966, 63967, 63968], [63969, 63970, 63971], [63972, 63973, 63974], [63975, 63976, 63977], [63978, 63979, 63980], [63981, 63982, 63983], [63984, 63985, 63986], [63987, 63988, 63989], [63990, 63991, 63992], [63993, 63994, 63995], [63996, 63997, 63998], [63999, 64000, 64001], [64002, 64003, 64004], [64005, 64006, 64007], [64008, 64009, 64010], [64011, 64012, 64013], [64014, 64015, 64016], [64017, 64018, 64019], [64020, 64021, 64022], [64023, 64024, 64025], [64026, 64027, 64028], [64029, 64030, 64031], [64032, 64033, 64034], [64035, 64036, 64037], [64038, 64039, 64040], [64041, 64042, 64043], [64044, 64045, 64046], [64047, 64048, 64049], [64050, 64051, 64052], [64053, 64054, 64055], [64056, 64057, 64058], [64059, 64060, 64061], [64062, 64063, 64064], [64065, 64066, 64067], [64068, 64069, 64070], [64071, 64072, 64073], [64074, 64075, 64076], [64077, 64078, 64079], [64080, 64081, 64082], [64083, 64084, 64085], [64086, 64087, 64088], [64089, 64090, 64091], [64092, 64093, 64094], [64095, 64096, 64097], [64098, 64099, 64100], [64101, 64102, 64103], [64104, 64105, 64106], [64107, 64108, 64109], [64110, 64111, 64112], [64113, 64114, 64115], [64116, 64117, 64118], [64119, 64120, 64121], [64122, 64123, 64124], [64125, 64126, 64127], [64128, 64129, 64130], [64131, 64132, 64133], [64134, 64135, 64136], [64137, 64138, 64139], [64140, 64141, 64142], [64143, 64144, 64145], [64146, 64147, 64148], [64149, 64150, 64151], [64152, 64153, 64154], [64155, 64156, 64157], [64158, 64159, 64160], [64161, 64162, 64163], [64164, 64165, 64166], [64167, 64168, 64169], [64170, 64171, 64172], [64173, 64174, 64175], [64176, 64177, 64178], [64179, 64180, 64181], [64182, 64183, 64184], [64185, 64186, 64187], [64188, 64189, 64190], [64191, 64192, 64193], [64194, 64195, 64196], [64197, 64198, 64199], [64200, 64201, 64202], [64203, 64204, 64205], [64206, 64207, 64208], [64209, 64210, 64211], [64212, 64213, 64214], [64215, 64216, 64217], [64218, 64219, 64220], [64221, 64222, 64223], [64224, 64225, 64226], [64227, 64228, 64229], [64230, 64231, 64232], [64233, 64234, 64235], [64236, 64237, 64238], [64239, 64240, 64241], [64242, 64243, 64244], [64245, 64246, 64247], [64248, 64249, 64250], [64251, 64252, 64253], [64254, 64255, 64256], [64257, 64258, 64259], [64260, 64261, 64262], [64263, 64264, 64265], [64266, 64267, 64268], [64269, 64270, 64271], [64272, 64273, 64274], [64275, 64276, 64277], [64278, 64279, 64280], [64281, 64282, 64283], [64284, 64285, 64286], [64287, 64288, 64289], [64290, 64291, 64292], [64293, 64294, 64295], [64296, 64297, 64298], [64299, 64300, 64301], [64302, 64303, 64304], [64305, 64306, 64307], [64308, 64309, 64310], [64311, 64312, 64313], [64314, 64315, 64316], [64317, 64318, 64319], [64320, 64321, 64322], [64323, 64324, 64325], [64326, 64327, 64328], [64329, 64330, 64331], [64332, 64333, 64334], [64335, 64336, 64337], [64338, 64339, 64340], [64341, 64342, 64343], [64344, 64345, 64346], [64347, 64348, 64349], [64350, 64351, 64352], [64353, 64354, 64355], [64356, 64357, 64358], [64359, 64360, 64361], [64362, 64363, 64364], [64365, 64366, 64367], [64368, 64369, 64370], [64371, 64372, 64373], [64374, 64375, 64376], [64377, 64378, 64379], [64380, 64381, 64382], [64383, 64384, 64385], [64386, 64387, 64388], [64389, 64390, 64391], [64392, 64393, 64394], [64395, 64396, 64397], [64398, 64399, 64400], [64401, 64402, 64403], [64404, 64405, 64406], [64407, 64408, 64409], [64410, 64411, 64412], [64413, 64414, 64415], [64416, 64417, 64418], [64419, 64420, 64421], [64422, 64423, 64424], [64425, 64426, 64427], [64428, 64429, 64430], [64431, 64432, 64433], [64434, 64435, 64436], [64437, 64438, 64439], [64440, 64441, 64442], [64443, 64444, 64445], [64446, 64447, 64448], [64449, 64450, 64451], [64452, 64453, 64454], [64455, 64456, 64457], [64458, 64459, 64460], [64461, 64462, 64463], [64464, 64465, 64466], [64467, 64468, 64469], [64470, 64471, 64472], [64473, 64474, 64475], [64476, 64477, 64478], [64479, 64480, 64481], [64482, 64483, 64484], [64485, 64486, 64487], [64488, 64489, 64490], [64491, 64492, 64493], [64494, 64495, 64496], [64497, 64498, 64499], [64500, 64501, 64502], [64503, 64504, 64505], [64506, 64507, 64508], [64509, 64510, 64511], [64512, 64513, 64514], [64515, 64516, 64517], [64518, 64519, 64520], [64521, 64522, 64523], [64524, 64525, 64526], [64527, 64528, 64529], [64530, 64531, 64532], [64533, 64534, 64535], [64536, 64537, 64538], [64539, 64540, 64541], [64542, 64543, 64544], [64545, 64546, 64547], [64548, 64549, 64550], [64551, 64552, 64553], [64554, 64555, 64556], [64557, 64558, 64559], [64560, 64561, 64562], [64563, 64564, 64565], [64566, 64567, 64568], [64569, 64570, 64571], [64572, 64573, 64574], [64575, 64576, 64577], [64578, 64579, 64580], [64581, 64582, 64583], [64584, 64585, 64586], [64587, 64588, 64589], [64590, 64591, 64592], [64593, 64594, 64595], [64596, 64597, 64598], [64599, 64600, 64601], [64602, 64603, 64604], [64605, 64606, 64607], [64608, 64609, 64610], [64611, 64612, 64613], [64614, 64615, 64616], [64617, 64618, 64619], [64620, 64621, 64622], [64623, 64624, 64625], [64626, 64627, 64628], [64629, 64630, 64631], [64632, 64633, 64634], [64635, 64636, 64637], [64638, 64639, 64640], [64641, 64642, 64643], [64644, 64645, 64646], [64647, 64648, 64649], [64650, 64651, 64652], [64653, 64654, 64655], [64656, 64657, 64658], [64659, 64660, 64661], [64662, 64663, 64664], [64665, 64666, 64667], [64668, 64669, 64670], [64671, 64672, 64673], [64674, 64675, 64676], [64677, 64678, 64679], [64680, 64681, 64682], [64683, 64684, 64685], [64686, 64687, 64688], [64689, 64690, 64691], [64692, 64693, 64694], [64695, 64696, 64697], [64698, 64699, 64700], [64701, 64702, 64703], [64704, 64705, 64706], [64707, 64708, 64709], [64710, 64711, 64712], [64713, 64714, 64715], [64716, 64717, 64718], [64719, 64720, 64721], [64722, 64723, 64724], [64725, 64726, 64727], [64728, 64729, 64730], [64731, 64732, 64733], [64734, 64735, 64736], [64737, 64738, 64739], [64740, 64741, 64742], [64743, 64744, 64745], [64746, 64747, 64748], [64749, 64750, 64751], [64752, 64753, 64754], [64755, 64756, 64757], [64758, 64759, 64760], [64761, 64762, 64763], [64764, 64765, 64766], [64767, 64768, 64769], [64770, 64771, 64772], [64773, 64774, 64775], [64776, 64777, 64778], [64779, 64780, 64781], [64782, 64783, 64784], [64785, 64786, 64787], [64788, 64789, 64790], [64791, 64792, 64793], [64794, 64795, 64796], [64797, 64798, 64799], [64800, 64801, 64802], [64803, 64804, 64805], [64806, 64807, 64808], [64809, 64810, 64811], [64812, 64813, 64814], [64815, 64816, 64817], [64818, 64819, 64820], [64821, 64822, 64823], [64824, 64825, 64826], [64827, 64828, 64829], [64830, 64831, 64832], [64833, 64834, 64835], [64836, 64837, 64838], [64839, 64840, 64841], [64842, 64843, 64844], [64845, 64846, 64847], [64848, 64849, 64850], [64851, 64852, 64853], [64854, 64855, 64856], [64857, 64858, 64859], [64860, 64861, 64862], [64863, 64864, 64865], [64866, 64867, 64868], [64869, 64870, 64871], [64872, 64873, 64874], [64875, 64876, 64877], [64878, 64879, 64880], [64881, 64882, 64883], [64884, 64885, 64886], [64887, 64888, 64889], [64890, 64891, 64892], [64893, 64894, 64895], [64896, 64897, 64898], [64899, 64900, 64901], [64902, 64903, 64904], [64905, 64906, 64907], [64908, 64909, 64910], [64911, 64912, 64913], [64914, 64915, 64916], [64917, 64918, 64919], [64920, 64921, 64922], [64923, 64924, 64925], [64926, 64927, 64928], [64929, 64930, 64931], [64932, 64933, 64934], [64935, 64936, 64937], [64938, 64939, 64940], [64941, 64942, 64943], [64944, 64945, 64946], [64947, 64948, 64949], [64950, 64951, 64952], [64953, 64954, 64955], [64956, 64957, 64958], [64959, 64960, 64961], [64962, 64963, 64964], [64965, 64966, 64967], [64968, 64969, 64970], [64971, 64972, 64973], [64974, 64975, 64976], [64977, 64978, 64979], [64980, 64981, 64982], [64983, 64984, 64985], [64986, 64987, 64988], [64989, 64990, 64991], [64992, 64993, 64994], [64995, 64996, 64997], [64998, 64999, 65000], [65001, 65002, 65003], [65004, 65005, 65006], [65007, 65008, 65009], [65010, 65011, 65012], [65013, 65014, 65015], [65016, 65017, 65018], [65019, 65020, 65021], [65022, 65023, 65024], [65025, 65026, 65027], [65028, 65029, 65030], [65031, 65032, 65033], [65034, 65035, 65036], [65037, 65038, 65039], [65040, 65041, 65042], [65043, 65044, 65045], [65046, 65047, 65048], [65049, 65050, 65051], [65052, 65053, 65054], [65055, 65056, 65057], [65058, 65059, 65060], [65061, 65062, 65063], [65064, 65065, 65066], [65067, 65068, 65069], [65070, 65071, 65072], [65073, 65074, 65075], [65076, 65077, 65078], [65079, 65080, 65081], [65082, 65083, 65084], [65085, 65086, 65087], [65088, 65089, 65090], [65091, 65092, 65093], [65094, 65095, 65096], [65097, 65098, 65099], [65100, 65101, 65102], [65103, 65104, 65105], [65106, 65107, 65108], [65109, 65110, 65111], [65112, 65113, 65114], [65115, 65116, 65117], [65118, 65119, 65120], [65121, 65122, 65123], [65124, 65125, 65126], [65127, 65128, 65129], [65130, 65131, 65132], [65133, 65134, 65135], [65136, 65137, 65138], [65139, 65140, 65141], [65142, 65143, 65144], [65145, 65146, 65147], [65148, 65149, 65150], [65151, 65152, 65153], [65154, 65155, 65156], [65157, 65158, 65159], [65160, 65161, 65162], [65163, 65164, 65165], [65166, 65167, 65168], [65169, 65170, 65171], [65172, 65173, 65174], [65175, 65176, 65177], [65178, 65179, 65180], [65181, 65182, 65183], [65184, 65185, 65186], [65187, 65188, 65189], [65190, 65191, 65192], [65193, 65194, 65195], [65196, 65197, 65198], [65199, 65200, 65201], [65202, 65203, 65204], [65205, 65206, 65207], [65208, 65209, 65210], [65211, 65212, 65213], [65214, 65215, 65216], [65217, 65218, 65219], [65220, 65221, 65222], [65223, 65224, 65225], [65226, 65227, 65228], [65229, 65230, 65231], [65232, 65233, 65234], [65235, 65236, 65237], [65238, 65239, 65240], [65241, 65242, 65243], [65244, 65245, 65246], [65247, 65248, 65249], [65250, 65251, 65252], [65253, 65254, 65255], [65256, 65257, 65258], [65259, 65260, 65261], [65262, 65263, 65264], [65265, 65266, 65267], [65268, 65269, 65270], [65271, 65272, 65273], [65274, 65275, 65276], [65277, 65278, 65279], [65280, 65281, 65282], [65283, 65284, 65285], [65286, 65287, 65288], [65289, 65290, 65291], [65292, 65293, 65294], [65295, 65296, 65297], [65298, 65299, 65300], [65301, 65302, 65303], [65304, 65305, 65306], [65307, 65308, 65309], [65310, 65311, 65312], [65313, 65314, 65315], [65316, 65317, 65318], [65319, 65320, 65321], [65322, 65323, 65324], [65325, 65326, 65327], [65328, 65329, 65330], [65331, 65332, 65333], [65334, 65335, 65336], [65337, 65338, 65339], [65340, 65341, 65342], [65343, 65344, 65345], [65346, 65347, 65348], [65349, 65350, 65351], [65352, 65353, 65354], [65355, 65356, 65357], [65358, 65359, 65360], [65361, 65362, 65363], [65364, 65365, 65366], [65367, 65368, 65369], [65370, 65371, 65372], [65373, 65374, 65375], [65376, 65377, 65378], [65379, 65380, 65381], [65382, 65383, 65384], [65385, 65386, 65387], [65388, 65389, 65390], [65391, 65392, 65393], [65394, 65395, 65396], [65397, 65398, 65399], [65400, 65401, 65402], [65403, 65404, 65405], [65406, 65407, 65408], [65409, 65410, 65411], [65412, 65413, 65414], [65415, 65416, 65417], [65418, 65419, 65420], [65421, 65422, 65423], [65424, 65425, 65426], [65427, 65428, 65429], [65430, 65431, 65432], [65433, 65434, 65435], [65436, 65437, 65438], [65439, 65440, 65441], [65442, 65443, 65444], [65445, 65446, 65447], [65448, 65449, 65450], [65451, 65452, 65453], [65454, 65455, 65456], [65457, 65458, 65459], [65460, 65461, 65462], [65463, 65464, 65465], [65466, 65467, 65468], [65469, 65470, 65471], [65472, 65473, 65474], [65475, 65476, 65477], [65478, 65479, 65480], [65481, 65482, 65483], [65484, 65485, 65486], [65487, 65488, 65489], [65490, 65491, 65492], [65493, 65494, 65495], [65496, 65497, 65498], [65499, 65500, 65501], [65502, 65503, 65504], [65505, 65506, 65507], [65508, 65509, 65510], [65511, 65512, 65513], [65514, 65515, 65516], [65517, 65518, 65519], [65520, 65521, 65522], [65523, 65524, 65525], [65526, 65527, 65528], [65529, 65530, 65531], [65532, 65533, 65534], [65535, 65536, 65537], [65538, 65539, 65540], [65541, 65542, 65543], [65544, 65545, 65546], [65547, 65548, 65549], [65550, 65551, 65552], [65553, 65554, 65555], [65556, 65557, 65558], [65559, 65560, 65561], [65562, 65563, 65564], [65565, 65566, 65567], [65568, 65569, 65570], [65571, 65572, 65573], [65574, 65575, 65576], [65577, 65578, 65579], [65580, 65581, 65582], [65583, 65584, 65585], [65586, 65587, 65588], [65589, 65590, 65591], [65592, 65593, 65594], [65595, 65596, 65597], [65598, 65599, 65600], [65601, 65602, 65603], [65604, 65605, 65606], [65607, 65608, 65609], [65610, 65611, 65612], [65613, 65614, 65615], [65616, 65617, 65618], [65619, 65620, 65621], [65622, 65623, 65624], [65625, 65626, 65627], [65628, 65629, 65630], [65631, 65632, 65633], [65634, 65635, 65636], [65637, 65638, 65639], [65640, 65641, 65642], [65643, 65644, 65645], [65646, 65647, 65648], [65649, 65650, 65651], [65652, 65653, 65654], [65655, 65656, 65657], [65658, 65659, 65660], [65661, 65662, 65663], [65664, 65665, 65666], [65667, 65668, 65669], [65670, 65671, 65672], [65673, 65674, 65675], [65676, 65677, 65678], [65679, 65680, 65681], [65682, 65683, 65684], [65685, 65686, 65687], [65688, 65689, 65690], [65691, 65692, 65693], [65694, 65695, 65696], [65697, 65698, 65699], [65700, 65701, 65702], [65703, 65704, 65705], [65706, 65707, 65708], [65709, 65710, 65711], [65712, 65713, 65714], [65715, 65716, 65717], [65718, 65719, 65720], [65721, 65722, 65723], [65724, 65725, 65726], [65727, 65728, 65729], [65730, 65731, 65732], [65733, 65734, 65735], [65736, 65737, 65738], [65739, 65740, 65741], [65742, 65743, 65744], [65745, 65746, 65747], [65748, 65749, 65750], [65751, 65752, 65753], [65754, 65755, 65756], [65757, 65758, 65759], [65760, 65761, 65762], [65763, 65764, 65765], [65766, 65767, 65768], [65769, 65770, 65771], [65772, 65773, 65774], [65775, 65776, 65777], [65778, 65779, 65780], [65781, 65782, 65783], [65784, 65785, 65786], [65787, 65788, 65789], [65790, 65791, 65792], [65793, 65794, 65795], [65796, 65797, 65798], [65799, 65800, 65801], [65802, 65803, 65804], [65805, 65806, 65807], [65808, 65809, 65810], [65811, 65812, 65813], [65814, 65815, 65816], [65817, 65818, 65819], [65820, 65821, 65822], [65823, 65824, 65825], [65826, 65827, 65828], [65829, 65830, 65831], [65832, 65833, 65834], [65835, 65836, 65837], [65838, 65839, 65840], [65841, 65842, 65843], [65844, 65845, 65846], [65847, 65848, 65849], [65850, 65851, 65852], [65853, 65854, 65855], [65856, 65857, 65858], [65859, 65860, 65861], [65862, 65863, 65864], [65865, 65866, 65867], [65868, 65869, 65870], [65871, 65872, 65873], [65874, 65875, 65876], [65877, 65878, 65879], [65880, 65881, 65882], [65883, 65884, 65885], [65886, 65887, 65888], [65889, 65890, 65891], [65892, 65893, 65894], [65895, 65896, 65897], [65898, 65899, 65900], [65901, 65902, 65903], [65904, 65905, 65906], [65907, 65908, 65909], [65910, 65911, 65912], [65913, 65914, 65915], [65916, 65917, 65918], [65919, 65920, 65921], [65922, 65923, 65924], [65925, 65926, 65927], [65928, 65929, 65930], [65931, 65932, 65933], [65934, 65935, 65936], [65937, 65938, 65939], [65940, 65941, 65942], [65943, 65944, 65945], [65946, 65947, 65948], [65949, 65950, 65951], [65952, 65953, 65954], [65955, 65956, 65957], [65958, 65959, 65960], [65961, 65962, 65963], [65964, 65965, 65966], [65967, 65968, 65969], [65970, 65971, 65972], [65973, 65974, 65975], [65976, 65977, 65978], [65979, 65980, 65981], [65982, 65983, 65984], [65985, 65986, 65987], [65988, 65989, 65990], [65991, 65992, 65993], [65994, 65995, 65996], [65997, 65998, 65999], [66000, 66001, 66002], [66003, 66004, 66005], [66006, 66007, 66008], [66009, 66010, 66011], [66012, 66013, 66014], [66015, 66016, 66017], [66018, 66019, 66020], [66021, 66022, 66023], [66024, 66025, 66026], [66027, 66028, 66029], [66030, 66031, 66032], [66033, 66034, 66035], [66036, 66037, 66038], [66039, 66040, 66041], [66042, 66043, 66044], [66045, 66046, 66047], [66048, 66049, 66050], [66051, 66052, 66053], [66054, 66055, 66056], [66057, 66058, 66059], [66060, 66061, 66062], [66063, 66064, 66065], [66066, 66067, 66068], [66069, 66070, 66071], [66072, 66073, 66074], [66075, 66076, 66077], [66078, 66079, 66080], [66081, 66082, 66083], [66084, 66085, 66086], [66087, 66088, 66089], [66090, 66091, 66092], [66093, 66094, 66095], [66096, 66097, 66098], [66099, 66100, 66101], [66102, 66103, 66104], [66105, 66106, 66107], [66108, 66109, 66110], [66111, 66112, 66113], [66114, 66115, 66116], [66117, 66118, 66119], [66120, 66121, 66122], [66123, 66124, 66125], [66126, 66127, 66128], [66129, 66130, 66131], [66132, 66133, 66134], [66135, 66136, 66137], [66138, 66139, 66140], [66141, 66142, 66143], [66144, 66145, 66146], [66147, 66148, 66149], [66150, 66151, 66152], [66153, 66154, 66155], [66156, 66157, 66158], [66159, 66160, 66161], [66162, 66163, 66164], [66165, 66166, 66167], [66168, 66169, 66170], [66171, 66172, 66173], [66174, 66175, 66176], [66177, 66178, 66179], [66180, 66181, 66182], [66183, 66184, 66185], [66186, 66187, 66188], [66189, 66190, 66191], [66192, 66193, 66194], [66195, 66196, 66197], [66198, 66199, 66200], [66201, 66202, 66203], [66204, 66205, 66206], [66207, 66208, 66209], [66210, 66211, 66212], [66213, 66214, 66215], [66216, 66217, 66218], [66219, 66220, 66221], [66222, 66223, 66224], [66225, 66226, 66227], [66228, 66229, 66230], [66231, 66232, 66233], [66234, 66235, 66236], [66237, 66238, 66239], [66240, 66241, 66242], [66243, 66244, 66245], [66246, 66247, 66248], [66249, 66250, 66251], [66252, 66253, 66254], [66255, 66256, 66257], [66258, 66259, 66260], [66261, 66262, 66263], [66264, 66265, 66266], [66267, 66268, 66269], [66270, 66271, 66272], [66273, 66274, 66275], [66276, 66277, 66278], [66279, 66280, 66281], [66282, 66283, 66284], [66285, 66286, 66287], [66288, 66289, 66290], [66291, 66292, 66293], [66294, 66295, 66296], [66297, 66298, 66299], [66300, 66301, 66302], [66303, 66304, 66305], [66306, 66307, 66308], [66309, 66310, 66311], [66312, 66313, 66314], [66315, 66316, 66317], [66318, 66319, 66320], [66321, 66322, 66323], [66324, 66325, 66326], [66327, 66328, 66329], [66330, 66331, 66332], [66333, 66334, 66335], [66336, 66337, 66338], [66339, 66340, 66341], [66342, 66343, 66344], [66345, 66346, 66347], [66348, 66349, 66350], [66351, 66352, 66353], [66354, 66355, 66356], [66357, 66358, 66359], [66360, 66361, 66362], [66363, 66364, 66365], [66366, 66367, 66368], [66369, 66370, 66371], [66372, 66373, 66374], [66375, 66376, 66377], [66378, 66379, 66380], [66381, 66382, 66383], [66384, 66385, 66386], [66387, 66388, 66389], [66390, 66391, 66392], [66393, 66394, 66395], [66396, 66397, 66398], [66399, 66400, 66401], [66402, 66403, 66404], [66405, 66406, 66407], [66408, 66409, 66410], [66411, 66412, 66413], [66414, 66415, 66416], [66417, 66418, 66419], [66420, 66421, 66422], [66423, 66424, 66425], [66426, 66427, 66428], [66429, 66430, 66431], [66432, 66433, 66434], [66435, 66436, 66437], [66438, 66439, 66440], [66441, 66442, 66443], [66444, 66445, 66446], [66447, 66448, 66449], [66450, 66451, 66452], [66453, 66454, 66455], [66456, 66457, 66458], [66459, 66460, 66461], [66462, 66463, 66464], [66465, 66466, 66467], [66468, 66469, 66470], [66471, 66472, 66473], [66474, 66475, 66476], [66477, 66478, 66479], [66480, 66481, 66482], [66483, 66484, 66485], [66486, 66487, 66488], [66489, 66490, 66491], [66492, 66493, 66494], [66495, 66496, 66497], [66498, 66499, 66500], [66501, 66502, 66503], [66504, 66505, 66506], [66507, 66508, 66509], [66510, 66511, 66512], [66513, 66514, 66515], [66516, 66517, 66518], [66519, 66520, 66521], [66522, 66523, 66524], [66525, 66526, 66527], [66528, 66529, 66530], [66531, 66532, 66533], [66534, 66535, 66536], [66537, 66538, 66539], [66540, 66541, 66542], [66543, 66544, 66545], [66546, 66547, 66548], [66549, 66550, 66551], [66552, 66553, 66554], [66555, 66556, 66557], [66558, 66559, 66560], [66561, 66562, 66563], [66564, 66565, 66566], [66567, 66568, 66569], [66570, 66571, 66572], [66573, 66574, 66575], [66576, 66577, 66578], [66579, 66580, 66581], [66582, 66583, 66584], [66585, 66586, 66587], [66588, 66589, 66590], [66591, 66592, 66593], [66594, 66595, 66596], [66597, 66598, 66599], [66600, 66601, 66602], [66603, 66604, 66605], [66606, 66607, 66608], [66609, 66610, 66611], [66612, 66613, 66614], [66615, 66616, 66617], [66618, 66619, 66620], [66621, 66622, 66623], [66624, 66625, 66626], [66627, 66628, 66629], [66630, 66631, 66632], [66633, 66634, 66635], [66636, 66637, 66638], [66639, 66640, 66641], [66642, 66643, 66644], [66645, 66646, 66647], [66648, 66649, 66650], [66651, 66652, 66653], [66654, 66655, 66656], [66657, 66658, 66659], [66660, 66661, 66662], [66663, 66664, 66665], [66666, 66667, 66668], [66669, 66670, 66671], [66672, 66673, 66674], [66675, 66676, 66677], [66678, 66679, 66680], [66681, 66682, 66683], [66684, 66685, 66686], [66687, 66688, 66689], [66690, 66691, 66692], [66693, 66694, 66695], [66696, 66697, 66698], [66699, 66700, 66701], [66702, 66703, 66704], [66705, 66706, 66707], [66708, 66709, 66710], [66711, 66712, 66713], [66714, 66715, 66716], [66717, 66718, 66719], [66720, 66721, 66722], [66723, 66724, 66725], [66726, 66727, 66728], [66729, 66730, 66731], [66732, 66733, 66734], [66735, 66736, 66737], [66738, 66739, 66740], [66741, 66742, 66743], [66744, 66745, 66746], [66747, 66748, 66749], [66750, 66751, 66752], [66753, 66754, 66755], [66756, 66757, 66758], [66759, 66760, 66761], [66762, 66763, 66764], [66765, 66766, 66767], [66768, 66769, 66770], [66771, 66772, 66773], [66774, 66775, 66776], [66777, 66778, 66779], [66780, 66781, 66782], [66783, 66784, 66785], [66786, 66787, 66788], [66789, 66790, 66791], [66792, 66793, 66794], [66795, 66796, 66797], [66798, 66799, 66800], [66801, 66802, 66803], [66804, 66805, 66806], [66807, 66808, 66809], [66810, 66811, 66812], [66813, 66814, 66815], [66816, 66817, 66818], [66819, 66820, 66821], [66822, 66823, 66824], [66825, 66826, 66827], [66828, 66829, 66830], [66831, 66832, 66833], [66834, 66835, 66836], [66837, 66838, 66839], [66840, 66841, 66842], [66843, 66844, 66845], [66846, 66847, 66848], [66849, 66850, 66851], [66852, 66853, 66854], [66855, 66856, 66857], [66858, 66859, 66860], [66861, 66862, 66863], [66864, 66865, 66866], [66867, 66868, 66869], [66870, 66871, 66872], [66873, 66874, 66875], [66876, 66877, 66878], [66879, 66880, 66881], [66882, 66883, 66884], [66885, 66886, 66887], [66888, 66889, 66890], [66891, 66892, 66893], [66894, 66895, 66896], [66897, 66898, 66899], [66900, 66901, 66902], [66903, 66904, 66905], [66906, 66907, 66908], [66909, 66910, 66911], [66912, 66913, 66914], [66915, 66916, 66917], [66918, 66919, 66920], [66921, 66922, 66923], [66924, 66925, 66926], [66927, 66928, 66929], [66930, 66931, 66932], [66933, 66934, 66935], [66936, 66937, 66938], [66939, 66940, 66941], [66942, 66943, 66944], [66945, 66946, 66947], [66948, 66949, 66950], [66951, 66952, 66953], [66954, 66955, 66956], [66957, 66958, 66959], [66960, 66961, 66962], [66963, 66964, 66965], [66966, 66967, 66968], [66969, 66970, 66971], [66972, 66973, 66974], [66975, 66976, 66977], [66978, 66979, 66980], [66981, 66982, 66983], [66984, 66985, 66986], [66987, 66988, 66989], [66990, 66991, 66992], [66993, 66994, 66995], [66996, 66997, 66998], [66999, 67000, 67001], [67002, 67003, 67004], [67005, 67006, 67007], [67008, 67009, 67010], [67011, 67012, 67013], [67014, 67015, 67016], [67017, 67018, 67019], [67020, 67021, 67022], [67023, 67024, 67025], [67026, 67027, 67028], [67029, 67030, 67031], [67032, 67033, 67034], [67035, 67036, 67037], [67038, 67039, 67040], [67041, 67042, 67043], [67044, 67045, 67046], [67047, 67048, 67049], [67050, 67051, 67052], [67053, 67054, 67055], [67056, 67057, 67058], [67059, 67060, 67061], [67062, 67063, 67064], [67065, 67066, 67067], [67068, 67069, 67070], [67071, 67072, 67073], [67074, 67075, 67076], [67077, 67078, 67079], [67080, 67081, 67082], [67083, 67084, 67085], [67086, 67087, 67088], [67089, 67090, 67091], [67092, 67093, 67094], [67095, 67096, 67097], [67098, 67099, 67100], [67101, 67102, 67103], [67104, 67105, 67106], [67107, 67108, 67109], [67110, 67111, 67112], [67113, 67114, 67115], [67116, 67117, 67118], [67119, 67120, 67121], [67122, 67123, 67124], [67125, 67126, 67127], [67128, 67129, 67130], [67131, 67132, 67133], [67134, 67135, 67136], [67137, 67138, 67139], [67140, 67141, 67142], [67143, 67144, 67145], [67146, 67147, 67148], [67149, 67150, 67151], [67152, 67153, 67154], [67155, 67156, 67157], [67158, 67159, 67160], [67161, 67162, 67163], [67164, 67165, 67166], [67167, 67168, 67169], [67170, 67171, 67172], [67173, 67174, 67175], [67176, 67177, 67178], [67179, 67180, 67181], [67182, 67183, 67184], [67185, 67186, 67187], [67188, 67189, 67190], [67191, 67192, 67193], [67194, 67195, 67196], [67197, 67198, 67199], [67200, 67201, 67202], [67203, 67204, 67205], [67206, 67207, 67208], [67209, 67210, 67211], [67212, 67213, 67214], [67215, 67216, 67217], [67218, 67219, 67220], [67221, 67222, 67223], [67224, 67225, 67226], [67227, 67228, 67229], [67230, 67231, 67232], [67233, 67234, 67235], [67236, 67237, 67238], [67239, 67240, 67241], [67242, 67243, 67244], [67245, 67246, 67247], [67248, 67249, 67250], [67251, 67252, 67253], [67254, 67255, 67256], [67257, 67258, 67259], [67260, 67261, 67262], [67263, 67264, 67265], [67266, 67267, 67268], [67269, 67270, 67271], [67272, 67273, 67274], [67275, 67276, 67277], [67278, 67279, 67280], [67281, 67282, 67283], [67284, 67285, 67286], [67287, 67288, 67289], [67290, 67291, 67292], [67293, 67294, 67295], [67296, 67297, 67298], [67299, 67300, 67301], [67302, 67303, 67304], [67305, 67306, 67307], [67308, 67309, 67310], [67311, 67312, 67313], [67314, 67315, 67316], [67317, 67318, 67319], [67320, 67321, 67322], [67323, 67324, 67325], [67326, 67327, 67328], [67329, 67330, 67331], [67332, 67333, 67334], [67335, 67336, 67337], [67338, 67339, 67340], [67341, 67342, 67343], [67344, 67345, 67346], [67347, 67348, 67349], [67350, 67351, 67352], [67353, 67354, 67355], [67356, 67357, 67358], [67359, 67360, 67361], [67362, 67363, 67364], [67365, 67366, 67367], [67368, 67369, 67370], [67371, 67372, 67373], [67374, 67375, 67376], [67377, 67378, 67379], [67380, 67381, 67382], [67383, 67384, 67385], [67386, 67387, 67388], [67389, 67390, 67391], [67392, 67393, 67394], [67395, 67396, 67397], [67398, 67399, 67400], [67401, 67402, 67403], [67404, 67405, 67406], [67407, 67408, 67409], [67410, 67411, 67412], [67413, 67414, 67415], [67416, 67417, 67418], [67419, 67420, 67421], [67422, 67423, 67424], [67425, 67426, 67427], [67428, 67429, 67430], [67431, 67432, 67433], [67434, 67435, 67436], [67437, 67438, 67439], [67440, 67441, 67442], [67443, 67444, 67445], [67446, 67447, 67448], [67449, 67450, 67451], [67452, 67453, 67454], [67455, 67456, 67457], [67458, 67459, 67460], [67461, 67462, 67463], [67464, 67465, 67466], [67467, 67468, 67469], [67470, 67471, 67472], [67473, 67474, 67475], [67476, 67477, 67478], [67479, 67480, 67481], [67482, 67483, 67484], [67485, 67486, 67487], [67488, 67489, 67490], [67491, 67492, 67493], [67494, 67495, 67496], [67497, 67498, 67499], [67500, 67501, 67502], [67503, 67504, 67505], [67506, 67507, 67508], [67509, 67510, 67511], [67512, 67513, 67514], [67515, 67516, 67517], [67518, 67519, 67520], [67521, 67522, 67523], [67524, 67525, 67526], [67527, 67528, 67529], [67530, 67531, 67532], [67533, 67534, 67535], [67536, 67537, 67538], [67539, 67540, 67541], [67542, 67543, 67544], [67545, 67546, 67547], [67548, 67549, 67550], [67551, 67552, 67553], [67554, 67555, 67556], [67557, 67558, 67559], [67560, 67561, 67562], [67563, 67564, 67565], [67566, 67567, 67568], [67569, 67570, 67571], [67572, 67573, 67574], [67575, 67576, 67577], [67578, 67579, 67580], [67581, 67582, 67583], [67584, 67585, 67586], [67587, 67588, 67589], [67590, 67591, 67592], [67593, 67594, 67595], [67596, 67597, 67598], [67599, 67600, 67601], [67602, 67603, 67604], [67605, 67606, 67607], [67608, 67609, 67610], [67611, 67612, 67613], [67614, 67615, 67616], [67617, 67618, 67619], [67620, 67621, 67622], [67623, 67624, 67625], [67626, 67627, 67628], [67629, 67630, 67631], [67632, 67633, 67634], [67635, 67636, 67637], [67638, 67639, 67640], [67641, 67642, 67643], [67644, 67645, 67646], [67647, 67648, 67649], [67650, 67651, 67652], [67653, 67654, 67655], [67656, 67657, 67658], [67659, 67660, 67661], [67662, 67663, 67664], [67665, 67666, 67667], [67668, 67669, 67670], [67671, 67672, 67673], [67674, 67675, 67676], [67677, 67678, 67679], [67680, 67681, 67682], [67683, 67684, 67685], [67686, 67687, 67688], [67689, 67690, 67691], [67692, 67693, 67694], [67695, 67696, 67697], [67698, 67699, 67700], [67701, 67702, 67703], [67704, 67705, 67706], [67707, 67708, 67709], [67710, 67711, 67712], [67713, 67714, 67715], [67716, 67717, 67718], [67719, 67720, 67721], [67722, 67723, 67724], [67725, 67726, 67727], [67728, 67729, 67730], [67731, 67732, 67733], [67734, 67735, 67736], [67737, 67738, 67739], [67740, 67741, 67742], [67743, 67744, 67745], [67746, 67747, 67748], [67749, 67750, 67751], [67752, 67753, 67754], [67755, 67756, 67757], [67758, 67759, 67760], [67761, 67762, 67763], [67764, 67765, 67766], [67767, 67768, 67769], [67770, 67771, 67772], [67773, 67774, 67775], [67776, 67777, 67778], [67779, 67780, 67781], [67782, 67783, 67784], [67785, 67786, 67787], [67788, 67789, 67790], [67791, 67792, 67793], [67794, 67795, 67796], [67797, 67798, 67799], [67800, 67801, 67802], [67803, 67804, 67805], [67806, 67807, 67808], [67809, 67810, 67811], [67812, 67813, 67814], [67815, 67816, 67817], [67818, 67819, 67820], [67821, 67822, 67823], [67824, 67825, 67826], [67827, 67828, 67829], [67830, 67831, 67832], [67833, 67834, 67835], [67836, 67837, 67838], [67839, 67840, 67841], [67842, 67843, 67844], [67845, 67846, 67847], [67848, 67849, 67850], [67851, 67852, 67853], [67854, 67855, 67856], [67857, 67858, 67859], [67860, 67861, 67862], [67863, 67864, 67865], [67866, 67867, 67868], [67869, 67870, 67871], [67872, 67873, 67874], [67875, 67876, 67877], [67878, 67879, 67880], [67881, 67882, 67883], [67884, 67885, 67886], [67887, 67888, 67889], [67890, 67891, 67892], [67893, 67894, 67895], [67896, 67897, 67898], [67899, 67900, 67901], [67902, 67903, 67904], [67905, 67906, 67907], [67908, 67909, 67910], [67911, 67912, 67913], [67914, 67915, 67916], [67917, 67918, 67919], [67920, 67921, 67922], [67923, 67924, 67925], [67926, 67927, 67928], [67929, 67930, 67931], [67932, 67933, 67934], [67935, 67936, 67937], [67938, 67939, 67940], [67941, 67942, 67943], [67944, 67945, 67946], [67947, 67948, 67949], [67950, 67951, 67952], [67953, 67954, 67955], [67956, 67957, 67958], [67959, 67960, 67961], [67962, 67963, 67964], [67965, 67966, 67967], [67968, 67969, 67970], [67971, 67972, 67973], [67974, 67975, 67976], [67977, 67978, 67979], [67980, 67981, 67982], [67983, 67984, 67985], [67986, 67987, 67988], [67989, 67990, 67991], [67992, 67993, 67994], [67995, 67996, 67997], [67998, 67999, 68000], [68001, 68002, 68003], [68004, 68005, 68006], [68007, 68008, 68009], [68010, 68011, 68012], [68013, 68014, 68015], [68016, 68017, 68018], [68019, 68020, 68021], [68022, 68023, 68024], [68025, 68026, 68027], [68028, 68029, 68030], [68031, 68032, 68033], [68034, 68035, 68036], [68037, 68038, 68039], [68040, 68041, 68042], [68043, 68044, 68045], [68046, 68047, 68048], [68049, 68050, 68051], [68052, 68053, 68054], [68055, 68056, 68057], [68058, 68059, 68060], [68061, 68062, 68063], [68064, 68065, 68066], [68067, 68068, 68069], [68070, 68071, 68072], [68073, 68074, 68075], [68076, 68077, 68078], [68079, 68080, 68081], [68082, 68083, 68084], [68085, 68086, 68087], [68088, 68089, 68090], [68091, 68092, 68093], [68094, 68095, 68096], [68097, 68098, 68099], [68100, 68101, 68102], [68103, 68104, 68105], [68106, 68107, 68108], [68109, 68110, 68111], [68112, 68113, 68114], [68115, 68116, 68117], [68118, 68119, 68120], [68121, 68122, 68123], [68124, 68125, 68126], [68127, 68128, 68129], [68130, 68131, 68132], [68133, 68134, 68135], [68136, 68137, 68138], [68139, 68140, 68141], [68142, 68143, 68144], [68145, 68146, 68147], [68148, 68149, 68150], [68151, 68152, 68153], [68154, 68155, 68156], [68157, 68158, 68159], [68160, 68161, 68162], [68163, 68164, 68165], [68166, 68167, 68168], [68169, 68170, 68171], [68172, 68173, 68174], [68175, 68176, 68177], [68178, 68179, 68180], [68181, 68182, 68183], [68184, 68185, 68186], [68187, 68188, 68189], [68190, 68191, 68192], [68193, 68194, 68195], [68196, 68197, 68198], [68199, 68200, 68201], [68202, 68203, 68204], [68205, 68206, 68207], [68208, 68209, 68210], [68211, 68212, 68213], [68214, 68215, 68216], [68217, 68218, 68219], [68220, 68221, 68222], [68223, 68224, 68225], [68226, 68227, 68228], [68229, 68230, 68231], [68232, 68233, 68234], [68235, 68236, 68237], [68238, 68239, 68240], [68241, 68242, 68243], [68244, 68245, 68246], [68247, 68248, 68249], [68250, 68251, 68252], [68253, 68254, 68255], [68256, 68257, 68258], [68259, 68260, 68261], [68262, 68263, 68264], [68265, 68266, 68267], [68268, 68269, 68270], [68271, 68272, 68273], [68274, 68275, 68276], [68277, 68278, 68279], [68280, 68281, 68282], [68283, 68284, 68285], [68286, 68287, 68288], [68289, 68290, 68291], [68292, 68293, 68294], [68295, 68296, 68297], [68298, 68299, 68300], [68301, 68302, 68303], [68304, 68305, 68306], [68307, 68308, 68309], [68310, 68311, 68312], [68313, 68314, 68315], [68316, 68317, 68318], [68319, 68320, 68321], [68322, 68323, 68324], [68325, 68326, 68327], [68328, 68329, 68330], [68331, 68332, 68333], [68334, 68335, 68336], [68337, 68338, 68339], [68340, 68341, 68342], [68343, 68344, 68345], [68346, 68347, 68348], [68349, 68350, 68351], [68352, 68353, 68354], [68355, 68356, 68357], [68358, 68359, 68360], [68361, 68362, 68363], [68364, 68365, 68366], [68367, 68368, 68369], [68370, 68371, 68372], [68373, 68374, 68375], [68376, 68377, 68378], [68379, 68380, 68381], [68382, 68383, 68384], [68385, 68386, 68387], [68388, 68389, 68390], [68391, 68392, 68393], [68394, 68395, 68396], [68397, 68398, 68399], [68400, 68401, 68402], [68403, 68404, 68405], [68406, 68407, 68408], [68409, 68410, 68411], [68412, 68413, 68414], [68415, 68416, 68417], [68418, 68419, 68420], [68421, 68422, 68423], [68424, 68425, 68426], [68427, 68428, 68429], [68430, 68431, 68432], [68433, 68434, 68435], [68436, 68437, 68438], [68439, 68440, 68441], [68442, 68443, 68444], [68445, 68446, 68447], [68448, 68449, 68450], [68451, 68452, 68453], [68454, 68455, 68456], [68457, 68458, 68459], [68460, 68461, 68462], [68463, 68464, 68465], [68466, 68467, 68468], [68469, 68470, 68471], [68472, 68473, 68474], [68475, 68476, 68477], [68478, 68479, 68480], [68481, 68482, 68483], [68484, 68485, 68486], [68487, 68488, 68489], [68490, 68491, 68492], [68493, 68494, 68495], [68496, 68497, 68498], [68499, 68500, 68501], [68502, 68503, 68504], [68505, 68506, 68507], [68508, 68509, 68510], [68511, 68512, 68513], [68514, 68515, 68516], [68517, 68518, 68519], [68520, 68521, 68522], [68523, 68524, 68525], [68526, 68527, 68528], [68529, 68530, 68531], [68532, 68533, 68534], [68535, 68536, 68537], [68538, 68539, 68540], [68541, 68542, 68543], [68544, 68545, 68546], [68547, 68548, 68549], [68550, 68551, 68552], [68553, 68554, 68555], [68556, 68557, 68558], [68559, 68560, 68561], [68562, 68563, 68564], [68565, 68566, 68567], [68568, 68569, 68570], [68571, 68572, 68573], [68574, 68575, 68576], [68577, 68578, 68579], [68580, 68581, 68582], [68583, 68584, 68585], [68586, 68587, 68588], [68589, 68590, 68591], [68592, 68593, 68594], [68595, 68596, 68597], [68598, 68599, 68600], [68601, 68602, 68603], [68604, 68605, 68606], [68607, 68608, 68609], [68610, 68611, 68612], [68613, 68614, 68615], [68616, 68617, 68618], [68619, 68620, 68621], [68622, 68623, 68624], [68625, 68626, 68627], [68628, 68629, 68630], [68631, 68632, 68633], [68634, 68635, 68636], [68637, 68638, 68639], [68640, 68641, 68642], [68643, 68644, 68645], [68646, 68647, 68648], [68649, 68650, 68651], [68652, 68653, 68654], [68655, 68656, 68657], [68658, 68659, 68660], [68661, 68662, 68663], [68664, 68665, 68666], [68667, 68668, 68669], [68670, 68671, 68672], [68673, 68674, 68675], [68676, 68677, 68678], [68679, 68680, 68681], [68682, 68683, 68684], [68685, 68686, 68687], [68688, 68689, 68690], [68691, 68692, 68693], [68694, 68695, 68696], [68697, 68698, 68699], [68700, 68701, 68702], [68703, 68704, 68705], [68706, 68707, 68708], [68709, 68710, 68711], [68712, 68713, 68714], [68715, 68716, 68717], [68718, 68719, 68720], [68721, 68722, 68723], [68724, 68725, 68726], [68727, 68728, 68729], [68730, 68731, 68732], [68733, 68734, 68735], [68736, 68737, 68738], [68739, 68740, 68741], [68742, 68743, 68744], [68745, 68746, 68747], [68748, 68749, 68750], [68751, 68752, 68753], [68754, 68755, 68756], [68757, 68758, 68759], [68760, 68761, 68762], [68763, 68764, 68765], [68766, 68767, 68768], [68769, 68770, 68771], [68772, 68773, 68774], [68775, 68776, 68777], [68778, 68779, 68780], [68781, 68782, 68783], [68784, 68785, 68786], [68787, 68788, 68789], [68790, 68791, 68792], [68793, 68794, 68795], [68796, 68797, 68798], [68799, 68800, 68801], [68802, 68803, 68804], [68805, 68806, 68807], [68808, 68809, 68810], [68811, 68812, 68813], [68814, 68815, 68816], [68817, 68818, 68819], [68820, 68821, 68822], [68823, 68824, 68825], [68826, 68827, 68828], [68829, 68830, 68831], [68832, 68833, 68834], [68835, 68836, 68837], [68838, 68839, 68840], [68841, 68842, 68843], [68844, 68845, 68846], [68847, 68848, 68849], [68850, 68851, 68852], [68853, 68854, 68855], [68856, 68857, 68858], [68859, 68860, 68861], [68862, 68863, 68864], [68865, 68866, 68867], [68868, 68869, 68870], [68871, 68872, 68873], [68874, 68875, 68876], [68877, 68878, 68879], [68880, 68881, 68882], [68883, 68884, 68885], [68886, 68887, 68888], [68889, 68890, 68891], [68892, 68893, 68894], [68895, 68896, 68897], [68898, 68899, 68900], [68901, 68902, 68903], [68904, 68905, 68906], [68907, 68908, 68909], [68910, 68911, 68912], [68913, 68914, 68915], [68916, 68917, 68918], [68919, 68920, 68921], [68922, 68923, 68924], [68925, 68926, 68927], [68928, 68929, 68930], [68931, 68932, 68933], [68934, 68935, 68936], [68937, 68938, 68939], [68940, 68941, 68942], [68943, 68944, 68945], [68946, 68947, 68948], [68949, 68950, 68951], [68952, 68953, 68954], [68955, 68956, 68957], [68958, 68959, 68960], [68961, 68962, 68963], [68964, 68965, 68966], [68967, 68968, 68969], [68970, 68971, 68972], [68973, 68974, 68975], [68976, 68977, 68978], [68979, 68980, 68981], [68982, 68983, 68984], [68985, 68986, 68987], [68988, 68989, 68990], [68991, 68992, 68993], [68994, 68995, 68996], [68997, 68998, 68999], [69000, 69001, 69002], [69003, 69004, 69005], [69006, 69007, 69008], [69009, 69010, 69011], [69012, 69013, 69014], [69015, 69016, 69017], [69018, 69019, 69020], [69021, 69022, 69023], [69024, 69025, 69026], [69027, 69028, 69029], [69030, 69031, 69032], [69033, 69034, 69035], [69036, 69037, 69038], [69039, 69040, 69041], [69042, 69043, 69044], [69045, 69046, 69047], [69048, 69049, 69050], [69051, 69052, 69053], [69054, 69055, 69056], [69057, 69058, 69059], [69060, 69061, 69062], [69063, 69064, 69065], [69066, 69067, 69068], [69069, 69070, 69071], [69072, 69073, 69074], [69075, 69076, 69077], [69078, 69079, 69080], [69081, 69082, 69083], [69084, 69085, 69086], [69087, 69088, 69089], [69090, 69091, 69092], [69093, 69094, 69095], [69096, 69097, 69098], [69099, 69100, 69101], [69102, 69103, 69104], [69105, 69106, 69107], [69108, 69109, 69110], [69111, 69112, 69113], [69114, 69115, 69116], [69117, 69118, 69119], [69120, 69121, 69122], [69123, 69124, 69125], [69126, 69127, 69128], [69129, 69130, 69131], [69132, 69133, 69134], [69135, 69136, 69137], [69138, 69139, 69140], [69141, 69142, 69143], [69144, 69145, 69146], [69147, 69148, 69149], [69150, 69151, 69152], [69153, 69154, 69155], [69156, 69157, 69158], [69159, 69160, 69161], [69162, 69163, 69164], [69165, 69166, 69167], [69168, 69169, 69170], [69171, 69172, 69173], [69174, 69175, 69176], [69177, 69178, 69179], [69180, 69181, 69182], [69183, 69184, 69185], [69186, 69187, 69188], [69189, 69190, 69191], [69192, 69193, 69194], [69195, 69196, 69197], [69198, 69199, 69200], [69201, 69202, 69203], [69204, 69205, 69206], [69207, 69208, 69209], [69210, 69211, 69212], [69213, 69214, 69215], [69216, 69217, 69218], [69219, 69220, 69221], [69222, 69223, 69224], [69225, 69226, 69227], [69228, 69229, 69230], [69231, 69232, 69233], [69234, 69235, 69236], [69237, 69238, 69239], [69240, 69241, 69242], [69243, 69244, 69245], [69246, 69247, 69248], [69249, 69250, 69251], [69252, 69253, 69254], [69255, 69256, 69257], [69258, 69259, 69260], [69261, 69262, 69263], [69264, 69265, 69266], [69267, 69268, 69269], [69270, 69271, 69272], [69273, 69274, 69275], [69276, 69277, 69278], [69279, 69280, 69281], [69282, 69283, 69284], [69285, 69286, 69287], [69288, 69289, 69290], [69291, 69292, 69293], [69294, 69295, 69296], [69297, 69298, 69299], [69300, 69301, 69302], [69303, 69304, 69305], [69306, 69307, 69308], [69309, 69310, 69311], [69312, 69313, 69314], [69315, 69316, 69317], [69318, 69319, 69320], [69321, 69322, 69323], [69324, 69325, 69326], [69327, 69328, 69329], [69330, 69331, 69332], [69333, 69334, 69335], [69336, 69337, 69338], [69339, 69340, 69341], [69342, 69343, 69344], [69345, 69346, 69347], [69348, 69349, 69350], [69351, 69352, 69353], [69354, 69355, 69356], [69357, 69358, 69359], [69360, 69361, 69362], [69363, 69364, 69365], [69366, 69367, 69368], [69369, 69370, 69371], [69372, 69373, 69374], [69375, 69376, 69377], [69378, 69379, 69380], [69381, 69382, 69383], [69384, 69385, 69386], [69387, 69388, 69389], [69390, 69391, 69392], [69393, 69394, 69395], [69396, 69397, 69398], [69399, 69400, 69401], [69402, 69403, 69404], [69405, 69406, 69407], [69408, 69409, 69410], [69411, 69412, 69413], [69414, 69415, 69416], [69417, 69418, 69419], [69420, 69421, 69422], [69423, 69424, 69425], [69426, 69427, 69428], [69429, 69430, 69431], [69432, 69433, 69434], [69435, 69436, 69437], [69438, 69439, 69440], [69441, 69442, 69443], [69444, 69445, 69446], [69447, 69448, 69449], [69450, 69451, 69452], [69453, 69454, 69455], [69456, 69457, 69458], [69459, 69460, 69461], [69462, 69463, 69464], [69465, 69466, 69467], [69468, 69469, 69470], [69471, 69472, 69473], [69474, 69475, 69476], [69477, 69478, 69479], [69480, 69481, 69482], [69483, 69484, 69485], [69486, 69487, 69488], [69489, 69490, 69491], [69492, 69493, 69494], [69495, 69496, 69497], [69498, 69499, 69500], [69501, 69502, 69503], [69504, 69505, 69506], [69507, 69508, 69509], [69510, 69511, 69512], [69513, 69514, 69515], [69516, 69517, 69518], [69519, 69520, 69521], [69522, 69523, 69524], [69525, 69526, 69527], [69528, 69529, 69530], [69531, 69532, 69533], [69534, 69535, 69536], [69537, 69538, 69539], [69540, 69541, 69542], [69543, 69544, 69545], [69546, 69547, 69548], [69549, 69550, 69551], [69552, 69553, 69554], [69555, 69556, 69557], [69558, 69559, 69560], [69561, 69562, 69563], [69564, 69565, 69566], [69567, 69568, 69569], [69570, 69571, 69572], [69573, 69574, 69575], [69576, 69577, 69578], [69579, 69580, 69581], [69582, 69583, 69584], [69585, 69586, 69587], [69588, 69589, 69590], [69591, 69592, 69593], [69594, 69595, 69596], [69597, 69598, 69599], [69600, 69601, 69602], [69603, 69604, 69605], [69606, 69607, 69608], [69609, 69610, 69611], [69612, 69613, 69614], [69615, 69616, 69617], [69618, 69619, 69620], [69621, 69622, 69623], [69624, 69625, 69626], [69627, 69628, 69629], [69630, 69631, 69632], [69633, 69634, 69635], [69636, 69637, 69638], [69639, 69640, 69641], [69642, 69643, 69644], [69645, 69646, 69647], [69648, 69649, 69650], [69651, 69652, 69653], [69654, 69655, 69656], [69657, 69658, 69659], [69660, 69661, 69662], [69663, 69664, 69665], [69666, 69667, 69668], [69669, 69670, 69671], [69672, 69673, 69674], [69675, 69676, 69677], [69678, 69679, 69680], [69681, 69682, 69683], [69684, 69685, 69686], [69687, 69688, 69689], [69690, 69691, 69692], [69693, 69694, 69695], [69696, 69697, 69698], [69699, 69700, 69701], [69702, 69703, 69704], [69705, 69706, 69707], [69708, 69709, 69710], [69711, 69712, 69713], [69714, 69715, 69716], [69717, 69718, 69719], [69720, 69721, 69722], [69723, 69724, 69725], [69726, 69727, 69728], [69729, 69730, 69731], [69732, 69733, 69734], [69735, 69736, 69737], [69738, 69739, 69740], [69741, 69742, 69743], [69744, 69745, 69746], [69747, 69748, 69749], [69750, 69751, 69752], [69753, 69754, 69755], [69756, 69757, 69758], [69759, 69760, 69761], [69762, 69763, 69764], [69765, 69766, 69767], [69768, 69769, 69770], [69771, 69772, 69773], [69774, 69775, 69776], [69777, 69778, 69779], [69780, 69781, 69782], [69783, 69784, 69785], [69786, 69787, 69788], [69789, 69790, 69791], [69792, 69793, 69794], [69795, 69796, 69797], [69798, 69799, 69800], [69801, 69802, 69803], [69804, 69805, 69806], [69807, 69808, 69809], [69810, 69811, 69812], [69813, 69814, 69815], [69816, 69817, 69818], [69819, 69820, 69821], [69822, 69823, 69824], [69825, 69826, 69827], [69828, 69829, 69830], [69831, 69832, 69833], [69834, 69835, 69836], [69837, 69838, 69839], [69840, 69841, 69842], [69843, 69844, 69845], [69846, 69847, 69848], [69849, 69850, 69851], [69852, 69853, 69854], [69855, 69856, 69857], [69858, 69859, 69860], [69861, 69862, 69863], [69864, 69865, 69866], [69867, 69868, 69869], [69870, 69871, 69872], [69873, 69874, 69875], [69876, 69877, 69878], [69879, 69880, 69881], [69882, 69883, 69884], [69885, 69886, 69887], [69888, 69889, 69890], [69891, 69892, 69893], [69894, 69895, 69896], [69897, 69898, 69899], [69900, 69901, 69902], [69903, 69904, 69905], [69906, 69907, 69908], [69909, 69910, 69911], [69912, 69913, 69914], [69915, 69916, 69917], [69918, 69919, 69920], [69921, 69922, 69923], [69924, 69925, 69926], [69927, 69928, 69929], [69930, 69931, 69932], [69933, 69934, 69935], [69936, 69937, 69938], [69939, 69940, 69941], [69942, 69943, 69944], [69945, 69946, 69947], [69948, 69949, 69950], [69951, 69952, 69953], [69954, 69955, 69956], [69957, 69958, 69959], [69960, 69961, 69962], [69963, 69964, 69965], [69966, 69967, 69968], [69969, 69970, 69971], [69972, 69973, 69974], [69975, 69976, 69977], [69978, 69979, 69980], [69981, 69982, 69983], [69984, 69985, 69986], [69987, 69988, 69989], [69990, 69991, 69992], [69993, 69994, 69995], [69996, 69997, 69998], [69999, 70000, 70001], [70002, 70003, 70004], [70005, 70006, 70007], [70008, 70009, 70010], [70011, 70012, 70013], [70014, 70015, 70016], [70017, 70018, 70019], [70020, 70021, 70022], [70023, 70024, 70025], [70026, 70027, 70028], [70029, 70030, 70031], [70032, 70033, 70034], [70035, 70036, 70037], [70038, 70039, 70040], [70041, 70042, 70043], [70044, 70045, 70046], [70047, 70048, 70049], [70050, 70051, 70052], [70053, 70054, 70055], [70056, 70057, 70058], [70059, 70060, 70061], [70062, 70063, 70064], [70065, 70066, 70067], [70068, 70069, 70070], [70071, 70072, 70073], [70074, 70075, 70076], [70077, 70078, 70079], [70080, 70081, 70082], [70083, 70084, 70085], [70086, 70087, 70088], [70089, 70090, 70091], [70092, 70093, 70094], [70095, 70096, 70097], [70098, 70099, 70100], [70101, 70102, 70103], [70104, 70105, 70106], [70107, 70108, 70109], [70110, 70111, 70112], [70113, 70114, 70115], [70116, 70117, 70118], [70119, 70120, 70121], [70122, 70123, 70124], [70125, 70126, 70127], [70128, 70129, 70130], [70131, 70132, 70133], [70134, 70135, 70136], [70137, 70138, 70139], [70140, 70141, 70142], [70143, 70144, 70145], [70146, 70147, 70148], [70149, 70150, 70151], [70152, 70153, 70154], [70155, 70156, 70157], [70158, 70159, 70160], [70161, 70162, 70163], [70164, 70165, 70166], [70167, 70168, 70169], [70170, 70171, 70172], [70173, 70174, 70175], [70176, 70177, 70178], [70179, 70180, 70181], [70182, 70183, 70184], [70185, 70186, 70187], [70188, 70189, 70190], [70191, 70192, 70193], [70194, 70195, 70196], [70197, 70198, 70199], [70200, 70201, 70202], [70203, 70204, 70205], [70206, 70207, 70208], [70209, 70210, 70211], [70212, 70213, 70214], [70215, 70216, 70217], [70218, 70219, 70220], [70221, 70222, 70223], [70224, 70225, 70226], [70227, 70228, 70229], [70230, 70231, 70232], [70233, 70234, 70235], [70236, 70237, 70238], [70239, 70240, 70241], [70242, 70243, 70244], [70245, 70246, 70247], [70248, 70249, 70250], [70251, 70252, 70253], [70254, 70255, 70256], [70257, 70258, 70259], [70260, 70261, 70262], [70263, 70264, 70265], [70266, 70267, 70268], [70269, 70270, 70271], [70272, 70273, 70274], [70275, 70276, 70277], [70278, 70279, 70280], [70281, 70282, 70283], [70284, 70285, 70286], [70287, 70288, 70289], [70290, 70291, 70292], [70293, 70294, 70295], [70296, 70297, 70298], [70299, 70300, 70301], [70302, 70303, 70304], [70305, 70306, 70307], [70308, 70309, 70310], [70311, 70312, 70313], [70314, 70315, 70316], [70317, 70318, 70319], [70320, 70321, 70322], [70323, 70324, 70325], [70326, 70327, 70328], [70329, 70330, 70331], [70332, 70333, 70334], [70335, 70336, 70337], [70338, 70339, 70340], [70341, 70342, 70343], [70344, 70345, 70346], [70347, 70348, 70349], [70350, 70351, 70352], [70353, 70354, 70355], [70356, 70357, 70358], [70359, 70360, 70361], [70362, 70363, 70364], [70365, 70366, 70367], [70368, 70369, 70370], [70371, 70372, 70373], [70374, 70375, 70376], [70377, 70378, 70379], [70380, 70381, 70382], [70383, 70384, 70385], [70386, 70387, 70388], [70389, 70390, 70391], [70392, 70393, 70394], [70395, 70396, 70397], [70398, 70399, 70400], [70401, 70402, 70403], [70404, 70405, 70406], [70407, 70408, 70409], [70410, 70411, 70412], [70413, 70414, 70415], [70416, 70417, 70418], [70419, 70420, 70421], [70422, 70423, 70424], [70425, 70426, 70427], [70428, 70429, 70430], [70431, 70432, 70433], [70434, 70435, 70436], [70437, 70438, 70439], [70440, 70441, 70442], [70443, 70444, 70445], [70446, 70447, 70448], [70449, 70450, 70451], [70452, 70453, 70454], [70455, 70456, 70457], [70458, 70459, 70460], [70461, 70462, 70463], [70464, 70465, 70466], [70467, 70468, 70469], [70470, 70471, 70472], [70473, 70474, 70475], [70476, 70477, 70478], [70479, 70480, 70481], [70482, 70483, 70484], [70485, 70486, 70487], [70488, 70489, 70490], [70491, 70492, 70493], [70494, 70495, 70496], [70497, 70498, 70499], [70500, 70501, 70502], [70503, 70504, 70505], [70506, 70507, 70508], [70509, 70510, 70511], [70512, 70513, 70514], [70515, 70516, 70517], [70518, 70519, 70520], [70521, 70522, 70523], [70524, 70525, 70526], [70527, 70528, 70529], [70530, 70531, 70532], [70533, 70534, 70535], [70536, 70537, 70538], [70539, 70540, 70541], [70542, 70543, 70544], [70545, 70546, 70547], [70548, 70549, 70550], [70551, 70552, 70553], [70554, 70555, 70556], [70557, 70558, 70559], [70560, 70561, 70562], [70563, 70564, 70565], [70566, 70567, 70568], [70569, 70570, 70571], [70572, 70573, 70574], [70575, 70576, 70577], [70578, 70579, 70580], [70581, 70582, 70583], [70584, 70585, 70586], [70587, 70588, 70589], [70590, 70591, 70592], [70593, 70594, 70595], [70596, 70597, 70598], [70599, 70600, 70601], [70602, 70603, 70604], [70605, 70606, 70607], [70608, 70609, 70610], [70611, 70612, 70613], [70614, 70615, 70616], [70617, 70618, 70619], [70620, 70621, 70622], [70623, 70624, 70625], [70626, 70627, 70628], [70629, 70630, 70631], [70632, 70633, 70634], [70635, 70636, 70637], [70638, 70639, 70640], [70641, 70642, 70643], [70644, 70645, 70646], [70647, 70648, 70649], [70650, 70651, 70652], [70653, 70654, 70655], [70656, 70657, 70658], [70659, 70660, 70661], [70662, 70663, 70664], [70665, 70666, 70667], [70668, 70669, 70670], [70671, 70672, 70673], [70674, 70675, 70676], [70677, 70678, 70679], [70680, 70681, 70682], [70683, 70684, 70685], [70686, 70687, 70688], [70689, 70690, 70691], [70692, 70693, 70694], [70695, 70696, 70697], [70698, 70699, 70700], [70701, 70702, 70703], [70704, 70705, 70706], [70707, 70708, 70709], [70710, 70711, 70712], [70713, 70714, 70715], [70716, 70717, 70718], [70719, 70720, 70721], [70722, 70723, 70724], [70725, 70726, 70727], [70728, 70729, 70730], [70731, 70732, 70733], [70734, 70735, 70736], [70737, 70738, 70739], [70740, 70741, 70742], [70743, 70744, 70745], [70746, 70747, 70748], [70749, 70750, 70751], [70752, 70753, 70754], [70755, 70756, 70757], [70758, 70759, 70760], [70761, 70762, 70763], [70764, 70765, 70766], [70767, 70768, 70769], [70770, 70771, 70772], [70773, 70774, 70775], [70776, 70777, 70778], [70779, 70780, 70781], [70782, 70783, 70784], [70785, 70786, 70787], [70788, 70789, 70790], [70791, 70792, 70793], [70794, 70795, 70796], [70797, 70798, 70799], [70800, 70801, 70802], [70803, 70804, 70805], [70806, 70807, 70808], [70809, 70810, 70811], [70812, 70813, 70814], [70815, 70816, 70817], [70818, 70819, 70820], [70821, 70822, 70823], [70824, 70825, 70826], [70827, 70828, 70829], [70830, 70831, 70832], [70833, 70834, 70835], [70836, 70837, 70838], [70839, 70840, 70841], [70842, 70843, 70844], [70845, 70846, 70847], [70848, 70849, 70850], [70851, 70852, 70853], [70854, 70855, 70856], [70857, 70858, 70859], [70860, 70861, 70862], [70863, 70864, 70865], [70866, 70867, 70868], [70869, 70870, 70871], [70872, 70873, 70874], [70875, 70876, 70877], [70878, 70879, 70880], [70881, 70882, 70883], [70884, 70885, 70886], [70887, 70888, 70889], [70890, 70891, 70892], [70893, 70894, 70895], [70896, 70897, 70898], [70899, 70900, 70901], [70902, 70903, 70904], [70905, 70906, 70907], [70908, 70909, 70910], [70911, 70912, 70913], [70914, 70915, 70916], [70917, 70918, 70919], [70920, 70921, 70922], [70923, 70924, 70925], [70926, 70927, 70928], [70929, 70930, 70931], [70932, 70933, 70934], [70935, 70936, 70937], [70938, 70939, 70940], [70941, 70942, 70943], [70944, 70945, 70946], [70947, 70948, 70949], [70950, 70951, 70952], [70953, 70954, 70955], [70956, 70957, 70958], [70959, 70960, 70961], [70962, 70963, 70964], [70965, 70966, 70967], [70968, 70969, 70970], [70971, 70972, 70973], [70974, 70975, 70976], [70977, 70978, 70979], [70980, 70981, 70982], [70983, 70984, 70985], [70986, 70987, 70988], [70989, 70990, 70991], [70992, 70993, 70994], [70995, 70996, 70997], [70998, 70999, 71000], [71001, 71002, 71003], [71004, 71005, 71006], [71007, 71008, 71009], [71010, 71011, 71012], [71013, 71014, 71015], [71016, 71017, 71018], [71019, 71020, 71021], [71022, 71023, 71024], [71025, 71026, 71027], [71028, 71029, 71030], [71031, 71032, 71033], [71034, 71035, 71036], [71037, 71038, 71039], [71040, 71041, 71042], [71043, 71044, 71045], [71046, 71047, 71048], [71049, 71050, 71051], [71052, 71053, 71054], [71055, 71056, 71057], [71058, 71059, 71060], [71061, 71062, 71063], [71064, 71065, 71066], [71067, 71068, 71069], [71070, 71071, 71072], [71073, 71074, 71075], [71076, 71077, 71078], [71079, 71080, 71081], [71082, 71083, 71084], [71085, 71086, 71087], [71088, 71089, 71090], [71091, 71092, 71093], [71094, 71095, 71096], [71097, 71098, 71099], [71100, 71101, 71102], [71103, 71104, 71105], [71106, 71107, 71108], [71109, 71110, 71111], [71112, 71113, 71114], [71115, 71116, 71117], [71118, 71119, 71120], [71121, 71122, 71123], [71124, 71125, 71126], [71127, 71128, 71129], [71130, 71131, 71132], [71133, 71134, 71135], [71136, 71137, 71138], [71139, 71140, 71141], [71142, 71143, 71144], [71145, 71146, 71147], [71148, 71149, 71150], [71151, 71152, 71153], [71154, 71155, 71156], [71157, 71158, 71159], [71160, 71161, 71162], [71163, 71164, 71165], [71166, 71167, 71168], [71169, 71170, 71171], [71172, 71173, 71174], [71175, 71176, 71177], [71178, 71179, 71180], [71181, 71182, 71183], [71184, 71185, 71186], [71187, 71188, 71189], [71190, 71191, 71192], [71193, 71194, 71195], [71196, 71197, 71198], [71199, 71200, 71201], [71202, 71203, 71204], [71205, 71206, 71207], [71208, 71209, 71210], [71211, 71212, 71213], [71214, 71215, 71216], [71217, 71218, 71219], [71220, 71221, 71222], [71223, 71224, 71225], [71226, 71227, 71228], [71229, 71230, 71231], [71232, 71233, 71234], [71235, 71236, 71237], [71238, 71239, 71240], [71241, 71242, 71243], [71244, 71245, 71246], [71247, 71248, 71249], [71250, 71251, 71252], [71253, 71254, 71255], [71256, 71257, 71258], [71259, 71260, 71261], [71262, 71263, 71264], [71265, 71266, 71267], [71268, 71269, 71270], [71271, 71272, 71273], [71274, 71275, 71276], [71277, 71278, 71279], [71280, 71281, 71282], [71283, 71284, 71285], [71286, 71287, 71288], [71289, 71290, 71291], [71292, 71293, 71294], [71295, 71296, 71297], [71298, 71299, 71300], [71301, 71302, 71303], [71304, 71305, 71306], [71307, 71308, 71309], [71310, 71311, 71312], [71313, 71314, 71315], [71316, 71317, 71318], [71319, 71320, 71321], [71322, 71323, 71324], [71325, 71326, 71327], [71328, 71329, 71330], [71331, 71332, 71333], [71334, 71335, 71336], [71337, 71338, 71339], [71340, 71341, 71342], [71343, 71344, 71345], [71346, 71347, 71348], [71349, 71350, 71351], [71352, 71353, 71354], [71355, 71356, 71357], [71358, 71359, 71360], [71361, 71362, 71363], [71364, 71365, 71366], [71367, 71368, 71369], [71370, 71371, 71372], [71373, 71374, 71375], [71376, 71377, 71378], [71379, 71380, 71381], [71382, 71383, 71384], [71385, 71386, 71387], [71388, 71389, 71390], [71391, 71392, 71393], [71394, 71395, 71396], [71397, 71398, 71399], [71400, 71401, 71402], [71403, 71404, 71405], [71406, 71407, 71408], [71409, 71410, 71411], [71412, 71413, 71414], [71415, 71416, 71417], [71418, 71419, 71420], [71421, 71422, 71423], [71424, 71425, 71426], [71427, 71428, 71429], [71430, 71431, 71432], [71433, 71434, 71435], [71436, 71437, 71438], [71439, 71440, 71441], [71442, 71443, 71444], [71445, 71446, 71447], [71448, 71449, 71450], [71451, 71452, 71453], [71454, 71455, 71456], [71457, 71458, 71459], [71460, 71461, 71462], [71463, 71464, 71465], [71466, 71467, 71468], [71469, 71470, 71471], [71472, 71473, 71474], [71475, 71476, 71477], [71478, 71479, 71480], [71481, 71482, 71483], [71484, 71485, 71486], [71487, 71488, 71489], [71490, 71491, 71492], [71493, 71494, 71495], [71496, 71497, 71498], [71499, 71500, 71501], [71502, 71503, 71504], [71505, 71506, 71507], [71508, 71509, 71510], [71511, 71512, 71513], [71514, 71515, 71516], [71517, 71518, 71519], [71520, 71521, 71522], [71523, 71524, 71525], [71526, 71527, 71528], [71529, 71530, 71531], [71532, 71533, 71534], [71535, 71536, 71537], [71538, 71539, 71540], [71541, 71542, 71543], [71544, 71545, 71546], [71547, 71548, 71549], [71550, 71551, 71552], [71553, 71554, 71555], [71556, 71557, 71558], [71559, 71560, 71561], [71562, 71563, 71564], [71565, 71566, 71567], [71568, 71569, 71570], [71571, 71572, 71573], [71574, 71575, 71576], [71577, 71578, 71579], [71580, 71581, 71582], [71583, 71584, 71585], [71586, 71587, 71588], [71589, 71590, 71591], [71592, 71593, 71594], [71595, 71596, 71597], [71598, 71599, 71600], [71601, 71602, 71603], [71604, 71605, 71606], [71607, 71608, 71609], [71610, 71611, 71612], [71613, 71614, 71615], [71616, 71617, 71618], [71619, 71620, 71621], [71622, 71623, 71624], [71625, 71626, 71627], [71628, 71629, 71630], [71631, 71632, 71633], [71634, 71635, 71636], [71637, 71638, 71639], [71640, 71641, 71642], [71643, 71644, 71645], [71646, 71647, 71648], [71649, 71650, 71651], [71652, 71653, 71654], [71655, 71656, 71657], [71658, 71659, 71660], [71661, 71662, 71663], [71664, 71665, 71666], [71667, 71668, 71669], [71670, 71671, 71672], [71673, 71674, 71675], [71676, 71677, 71678], [71679, 71680, 71681], [71682, 71683, 71684], [71685, 71686, 71687], [71688, 71689, 71690], [71691, 71692, 71693], [71694, 71695, 71696], [71697, 71698, 71699], [71700, 71701, 71702], [71703, 71704, 71705], [71706, 71707, 71708], [71709, 71710, 71711], [71712, 71713, 71714], [71715, 71716, 71717], [71718, 71719, 71720], [71721, 71722, 71723], [71724, 71725, 71726], [71727, 71728, 71729], [71730, 71731, 71732], [71733, 71734, 71735], [71736, 71737, 71738], [71739, 71740, 71741], [71742, 71743, 71744], [71745, 71746, 71747], [71748, 71749, 71750], [71751, 71752, 71753], [71754, 71755, 71756], [71757, 71758, 71759], [71760, 71761, 71762], [71763, 71764, 71765], [71766, 71767, 71768], [71769, 71770, 71771], [71772, 71773, 71774], [71775, 71776, 71777], [71778, 71779, 71780], [71781, 71782, 71783], [71784, 71785, 71786], [71787, 71788, 71789], [71790, 71791, 71792], [71793, 71794, 71795], [71796, 71797, 71798], [71799, 71800, 71801], [71802, 71803, 71804], [71805, 71806, 71807], [71808, 71809, 71810], [71811, 71812, 71813], [71814, 71815, 71816], [71817, 71818, 71819], [71820, 71821, 71822], [71823, 71824, 71825], [71826, 71827, 71828], [71829, 71830, 71831], [71832, 71833, 71834], [71835, 71836, 71837], [71838, 71839, 71840], [71841, 71842, 71843], [71844, 71845, 71846], [71847, 71848, 71849], [71850, 71851, 71852], [71853, 71854, 71855], [71856, 71857, 71858], [71859, 71860, 71861], [71862, 71863, 71864], [71865, 71866, 71867], [71868, 71869, 71870], [71871, 71872, 71873], [71874, 71875, 71876], [71877, 71878, 71879], [71880, 71881, 71882], [71883, 71884, 71885], [71886, 71887, 71888], [71889, 71890, 71891], [71892, 71893, 71894], [71895, 71896, 71897], [71898, 71899, 71900], [71901, 71902, 71903], [71904, 71905, 71906], [71907, 71908, 71909], [71910, 71911, 71912], [71913, 71914, 71915], [71916, 71917, 71918], [71919, 71920, 71921], [71922, 71923, 71924], [71925, 71926, 71927], [71928, 71929, 71930], [71931, 71932, 71933], [71934, 71935, 71936], [71937, 71938, 71939], [71940, 71941, 71942], [71943, 71944, 71945], [71946, 71947, 71948], [71949, 71950, 71951], [71952, 71953, 71954], [71955, 71956, 71957], [71958, 71959, 71960], [71961, 71962, 71963], [71964, 71965, 71966], [71967, 71968, 71969], [71970, 71971, 71972], [71973, 71974, 71975], [71976, 71977, 71978], [71979, 71980, 71981], [71982, 71983, 71984], [71985, 71986, 71987], [71988, 71989, 71990], [71991, 71992, 71993], [71994, 71995, 71996], [71997, 71998, 71999], [72000, 72001, 72002], [72003, 72004, 72005], [72006, 72007, 72008], [72009, 72010, 72011], [72012, 72013, 72014], [72015, 72016, 72017], [72018, 72019, 72020], [72021, 72022, 72023], [72024, 72025, 72026], [72027, 72028, 72029], [72030, 72031, 72032], [72033, 72034, 72035], [72036, 72037, 72038], [72039, 72040, 72041], [72042, 72043, 72044], [72045, 72046, 72047], [72048, 72049, 72050], [72051, 72052, 72053], [72054, 72055, 72056], [72057, 72058, 72059], [72060, 72061, 72062], [72063, 72064, 72065], [72066, 72067, 72068], [72069, 72070, 72071], [72072, 72073, 72074], [72075, 72076, 72077], [72078, 72079, 72080], [72081, 72082, 72083], [72084, 72085, 72086], [72087, 72088, 72089], [72090, 72091, 72092], [72093, 72094, 72095], [72096, 72097, 72098], [72099, 72100, 72101], [72102, 72103, 72104], [72105, 72106, 72107], [72108, 72109, 72110], [72111, 72112, 72113], [72114, 72115, 72116], [72117, 72118, 72119], [72120, 72121, 72122], [72123, 72124, 72125], [72126, 72127, 72128], [72129, 72130, 72131], [72132, 72133, 72134], [72135, 72136, 72137], [72138, 72139, 72140], [72141, 72142, 72143], [72144, 72145, 72146], [72147, 72148, 72149], [72150, 72151, 72152], [72153, 72154, 72155], [72156, 72157, 72158], [72159, 72160, 72161], [72162, 72163, 72164], [72165, 72166, 72167], [72168, 72169, 72170], [72171, 72172, 72173], [72174, 72175, 72176], [72177, 72178, 72179], [72180, 72181, 72182], [72183, 72184, 72185], [72186, 72187, 72188], [72189, 72190, 72191], [72192, 72193, 72194], [72195, 72196, 72197], [72198, 72199, 72200], [72201, 72202, 72203], [72204, 72205, 72206], [72207, 72208, 72209], [72210, 72211, 72212], [72213, 72214, 72215], [72216, 72217, 72218], [72219, 72220, 72221], [72222, 72223, 72224], [72225, 72226, 72227], [72228, 72229, 72230], [72231, 72232, 72233], [72234, 72235, 72236], [72237, 72238, 72239], [72240, 72241, 72242], [72243, 72244, 72245], [72246, 72247, 72248], [72249, 72250, 72251], [72252, 72253, 72254], [72255, 72256, 72257], [72258, 72259, 72260], [72261, 72262, 72263], [72264, 72265, 72266], [72267, 72268, 72269], [72270, 72271, 72272], [72273, 72274, 72275], [72276, 72277, 72278], [72279, 72280, 72281], [72282, 72283, 72284], [72285, 72286, 72287], [72288, 72289, 72290], [72291, 72292, 72293], [72294, 72295, 72296], [72297, 72298, 72299], [72300, 72301, 72302], [72303, 72304, 72305], [72306, 72307, 72308], [72309, 72310, 72311], [72312, 72313, 72314], [72315, 72316, 72317], [72318, 72319, 72320], [72321, 72322, 72323], [72324, 72325, 72326], [72327, 72328, 72329], [72330, 72331, 72332], [72333, 72334, 72335], [72336, 72337, 72338], [72339, 72340, 72341], [72342, 72343, 72344], [72345, 72346, 72347], [72348, 72349, 72350], [72351, 72352, 72353], [72354, 72355, 72356], [72357, 72358, 72359], [72360, 72361, 72362], [72363, 72364, 72365], [72366, 72367, 72368], [72369, 72370, 72371], [72372, 72373, 72374], [72375, 72376, 72377], [72378, 72379, 72380], [72381, 72382, 72383], [72384, 72385, 72386], [72387, 72388, 72389], [72390, 72391, 72392], [72393, 72394, 72395], [72396, 72397, 72398], [72399, 72400, 72401], [72402, 72403, 72404], [72405, 72406, 72407], [72408, 72409, 72410], [72411, 72412, 72413], [72414, 72415, 72416], [72417, 72418, 72419], [72420, 72421, 72422], [72423, 72424, 72425], [72426, 72427, 72428], [72429, 72430, 72431], [72432, 72433, 72434], [72435, 72436, 72437], [72438, 72439, 72440], [72441, 72442, 72443], [72444, 72445, 72446], [72447, 72448, 72449], [72450, 72451, 72452], [72453, 72454, 72455], [72456, 72457, 72458], [72459, 72460, 72461], [72462, 72463, 72464], [72465, 72466, 72467], [72468, 72469, 72470], [72471, 72472, 72473], [72474, 72475, 72476], [72477, 72478, 72479], [72480, 72481, 72482], [72483, 72484, 72485], [72486, 72487, 72488], [72489, 72490, 72491], [72492, 72493, 72494], [72495, 72496, 72497], [72498, 72499, 72500], [72501, 72502, 72503], [72504, 72505, 72506], [72507, 72508, 72509], [72510, 72511, 72512], [72513, 72514, 72515], [72516, 72517, 72518], [72519, 72520, 72521], [72522, 72523, 72524], [72525, 72526, 72527], [72528, 72529, 72530], [72531, 72532, 72533], [72534, 72535, 72536], [72537, 72538, 72539], [72540, 72541, 72542], [72543, 72544, 72545], [72546, 72547, 72548], [72549, 72550, 72551], [72552, 72553, 72554], [72555, 72556, 72557], [72558, 72559, 72560], [72561, 72562, 72563], [72564, 72565, 72566], [72567, 72568, 72569], [72570, 72571, 72572], [72573, 72574, 72575], [72576, 72577, 72578], [72579, 72580, 72581], [72582, 72583, 72584], [72585, 72586, 72587], [72588, 72589, 72590], [72591, 72592, 72593], [72594, 72595, 72596], [72597, 72598, 72599], [72600, 72601, 72602], [72603, 72604, 72605], [72606, 72607, 72608], [72609, 72610, 72611], [72612, 72613, 72614], [72615, 72616, 72617], [72618, 72619, 72620], [72621, 72622, 72623], [72624, 72625, 72626], [72627, 72628, 72629], [72630, 72631, 72632], [72633, 72634, 72635], [72636, 72637, 72638], [72639, 72640, 72641], [72642, 72643, 72644], [72645, 72646, 72647], [72648, 72649, 72650], [72651, 72652, 72653], [72654, 72655, 72656], [72657, 72658, 72659], [72660, 72661, 72662], [72663, 72664, 72665], [72666, 72667, 72668], [72669, 72670, 72671], [72672, 72673, 72674], [72675, 72676, 72677], [72678, 72679, 72680], [72681, 72682, 72683], [72684, 72685, 72686], [72687, 72688, 72689], [72690, 72691, 72692], [72693, 72694, 72695], [72696, 72697, 72698], [72699, 72700, 72701], [72702, 72703, 72704], [72705, 72706, 72707], [72708, 72709, 72710], [72711, 72712, 72713], [72714, 72715, 72716], [72717, 72718, 72719], [72720, 72721, 72722], [72723, 72724, 72725], [72726, 72727, 72728], [72729, 72730, 72731], [72732, 72733, 72734], [72735, 72736, 72737], [72738, 72739, 72740], [72741, 72742, 72743], [72744, 72745, 72746], [72747, 72748, 72749], [72750, 72751, 72752], [72753, 72754, 72755], [72756, 72757, 72758], [72759, 72760, 72761], [72762, 72763, 72764], [72765, 72766, 72767], [72768, 72769, 72770], [72771, 72772, 72773], [72774, 72775, 72776], [72777, 72778, 72779], [72780, 72781, 72782], [72783, 72784, 72785], [72786, 72787, 72788], [72789, 72790, 72791], [72792, 72793, 72794], [72795, 72796, 72797], [72798, 72799, 72800], [72801, 72802, 72803], [72804, 72805, 72806], [72807, 72808, 72809], [72810, 72811, 72812], [72813, 72814, 72815], [72816, 72817, 72818], [72819, 72820, 72821], [72822, 72823, 72824], [72825, 72826, 72827], [72828, 72829, 72830], [72831, 72832, 72833], [72834, 72835, 72836], [72837, 72838, 72839], [72840, 72841, 72842], [72843, 72844, 72845], [72846, 72847, 72848], [72849, 72850, 72851], [72852, 72853, 72854], [72855, 72856, 72857], [72858, 72859, 72860], [72861, 72862, 72863], [72864, 72865, 72866], [72867, 72868, 72869], [72870, 72871, 72872], [72873, 72874, 72875], [72876, 72877, 72878], [72879, 72880, 72881], [72882, 72883, 72884], [72885, 72886, 72887], [72888, 72889, 72890], [72891, 72892, 72893], [72894, 72895, 72896], [72897, 72898, 72899], [72900, 72901, 72902], [72903, 72904, 72905], [72906, 72907, 72908], [72909, 72910, 72911], [72912, 72913, 72914], [72915, 72916, 72917], [72918, 72919, 72920], [72921, 72922, 72923], [72924, 72925, 72926], [72927, 72928, 72929], [72930, 72931, 72932], [72933, 72934, 72935], [72936, 72937, 72938], [72939, 72940, 72941], [72942, 72943, 72944], [72945, 72946, 72947], [72948, 72949, 72950], [72951, 72952, 72953], [72954, 72955, 72956], [72957, 72958, 72959], [72960, 72961, 72962], [72963, 72964, 72965], [72966, 72967, 72968], [72969, 72970, 72971], [72972, 72973, 72974], [72975, 72976, 72977], [72978, 72979, 72980], [72981, 72982, 72983], [72984, 72985, 72986], [72987, 72988, 72989], [72990, 72991, 72992], [72993, 72994, 72995], [72996, 72997, 72998], [72999, 73000, 73001], [73002, 73003, 73004], [73005, 73006, 73007], [73008, 73009, 73010], [73011, 73012, 73013], [73014, 73015, 73016], [73017, 73018, 73019], [73020, 73021, 73022], [73023, 73024, 73025], [73026, 73027, 73028], [73029, 73030, 73031], [73032, 73033, 73034], [73035, 73036, 73037], [73038, 73039, 73040], [73041, 73042, 73043], [73044, 73045, 73046], [73047, 73048, 73049], [73050, 73051, 73052], [73053, 73054, 73055], [73056, 73057, 73058], [73059, 73060, 73061], [73062, 73063, 73064], [73065, 73066, 73067], [73068, 73069, 73070], [73071, 73072, 73073], [73074, 73075, 73076], [73077, 73078, 73079], [73080, 73081, 73082], [73083, 73084, 73085], [73086, 73087, 73088], [73089, 73090, 73091], [73092, 73093, 73094], [73095, 73096, 73097], [73098, 73099, 73100], [73101, 73102, 73103], [73104, 73105, 73106], [73107, 73108, 73109], [73110, 73111, 73112], [73113, 73114, 73115], [73116, 73117, 73118], [73119, 73120, 73121], [73122, 73123, 73124], [73125, 73126, 73127], [73128, 73129, 73130], [73131, 73132, 73133], [73134, 73135, 73136], [73137, 73138, 73139], [73140, 73141, 73142], [73143, 73144, 73145], [73146, 73147, 73148], [73149, 73150, 73151], [73152, 73153, 73154], [73155, 73156, 73157], [73158, 73159, 73160], [73161, 73162, 73163], [73164, 73165, 73166], [73167, 73168, 73169], [73170, 73171, 73172], [73173, 73174, 73175], [73176, 73177, 73178], [73179, 73180, 73181], [73182, 73183, 73184], [73185, 73186, 73187], [73188, 73189, 73190], [73191, 73192, 73193], [73194, 73195, 73196], [73197, 73198, 73199], [73200, 73201, 73202], [73203, 73204, 73205], [73206, 73207, 73208], [73209, 73210, 73211], [73212, 73213, 73214], [73215, 73216, 73217], [73218, 73219, 73220], [73221, 73222, 73223]], \"color\": \"#6666ff\", \"opacity\": 1.0}];\n    for ( var i=0 ; i < surfaces.length ; i++ ) addSurface( surfaces[i] );\n\n    function addSurface( json ) {\n\n        var useFaceColors = 'faceColors' in json ? true : false;\n\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.vertices.length ; i++ ) {\n            var v = json.vertices[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v.x, a[1]*v.y, a[2]*v.z ) );\n        }\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length - 2 ; j++ ) {\n                var face = new THREE.Face3( f[0], f[j+1], f[j+2] );\n                if ( useFaceColors ) face.color.set( json.faceColors[i] );\n                geometry.faces.push( face );\n            }\n        }\n        geometry.computeVertexNormals();\n\n        var side = json.singleSide ? THREE.FrontSide : THREE.DoubleSide;\n        var transparent = json.opacity < 1 ? true : false;\n        var depthWrite = 'depthWrite' in json ? json.depthWrite : !transparent;\n        var flatShading = json.useFlatShading ? json.useFlatShading : false;\n\n        var material = new THREE.MeshPhongMaterial( { side: side,\n                                     color: useFaceColors ? 'white' : json.color,\n                                     vertexColors: useFaceColors ? THREE.FaceColors : THREE.NoColors,\n                                     transparent: transparent, opacity: json.opacity,\n                                     shininess: 20, flatShading: flatShading,\n                                     depthWrite: depthWrite } );\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var mesh = new THREE.Mesh( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        if ( transparent && json.renderOrder ) mesh.renderOrder = json.renderOrder;\n        mesh.userData = json;\n        scene.add( mesh );\n\n        if ( json.showMeshGrid ) addSurfaceMeshGrid( json );\n\n    }\n\n    function addSurfaceMeshGrid( json ) {\n\n        var geometry = new THREE.Geometry();\n\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length ; j++ ) {\n                var k = j === f.length-1 ? 0 : j+1;\n                var v1 = json.vertices[f[j]];\n                var v2 = json.vertices[f[k]];\n                // vertices in opposite directions on neighboring faces\n                var nudge = f[j] < f[k] ? .0005*zRange : -.0005*zRange;\n                geometry.vertices.push( new THREE.Vector3( a[0]*v1.x, a[1]*v1.y, a[2]*(v1.z+nudge) ) );\n                geometry.vertices.push( new THREE.Vector3( a[0]*v2.x, a[1]*v2.y, a[2]*(v2.z+nudge) ) );\n            }\n        }\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var gridColor = options.theme === 'dark' ? 'white' : 'black';\n        var linewidth = json.linewidth || 1;\n        var materialOptions = { color: gridColor, linewidth: linewidth };\n\n        var mesh;\n        if ( linewidth > 1 && window.createFatLineSegments ) {\n            mesh = createFatLineSegments( geometry, materialOptions );\n        } else {\n            var material = new THREE.LineBasicMaterial( materialOptions );\n            mesh = new THREE.LineSegments( geometry, material );\n        }\n\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    function render() {\n\n        if ( window.updateAnimation ) animate = updateAnimation();\n        if ( animate ) requestAnimationFrame( render );\n\n        renderer.render( scene, camera );\n\n    }\n\n    render();\n    controls.update();\n    if ( !animate ) render();\n\n\n    // menu functions\n\n    function toggleMenu() {\n\n        var m = document.getElementById( 'menu-content' );\n        if ( m.style.display === 'block' ) m.style.display = 'none'\n        else m.style.display = 'block';\n\n    }\n\n\n    function saveAsPNG() {\n\n        var a = document.body.appendChild( document.createElement( 'a' ) );\n        a.href = renderer.domElement.toDataURL( 'image/png' );\n        a.download = 'screenshot';\n        a.click();\n\n    }\n\n    function saveAsHTML() {\n\n        toggleMenu(); // otherwise visible in output\n        event.stopPropagation();\n\n        var blob = new Blob( [ '<!DOCTYPE html>\\n' + document.documentElement.outerHTML ] );\n        var a = document.body.appendChild( document.createElement( 'a' ) );\n        a.href = window.URL.createObjectURL( blob );\n        a.download = suggestFilename();\n        a.click();\n\n        function suggestFilename() {\n            if ( !document.title ) {\n                return 'graphic.html';\n            } else if ( /\\.html?$/i.test( document.title ) ) {\n                return document.title; // already ends in .htm or .html\n            } else {\n                return document.title + '.html';\n            }\n        }\n\n    }\n\n    function getViewpoint() {\n\n        function roundTo( x, n ) { return +x.toFixed(n); }\n\n        var v = camera.quaternion.inverse();\n        var r = Math.sqrt( v.x*v.x + v.y*v.y + v.z*v.z );\n        var axis = [ roundTo( v.x / r, 4 ), roundTo( v.y / r, 4 ), roundTo( v.z / r, 4 ) ];\n        var angle = roundTo( 2 * Math.atan2( r, v.w ) * 180 / Math.PI, 2 );\n\n        var textArea = document.createElement( 'textarea' );\n        textArea.textContent = JSON.stringify( axis ) + ',' + angle;\n        textArea.style.csstext = 'position: absolute; top: -100%';\n        document.body.append( textArea );\n        textArea.select();\n        document.execCommand( 'copy' );\n\n        var m = document.getElementById( 'menu-message' );\n        m.innerHTML = 'Viewpoint copied to clipboard';\n        m.style.display = 'block';\n        setTimeout( function() { m.style.display = 'none'; }, 2000 );\n\n    }\n\n    function getCamera() {\n\n        function roundTo( x, n ) { return +x.toFixed(n); }\n\n        var pos = camera.position;\n        var pos_r = [ roundTo( pos.x, 4 ), roundTo( pos.y, 4 ), roundTo( pos.z, 4 ) ];\n   //     var up = camera.up; // up is always (0,0,1)\n        var textArea = document.createElement('textarea');\n        var cam_position = JSON.stringify(pos_r);\n        textArea.textContent = ',camera_position=' + cam_position;\n        textArea.style.csstext = 'position: absolute; top: -100%';\n        document.body.append( textArea );\n        textArea.select();\n        document.execCommand( 'copy' );\n\n        var m = document.getElementById( 'menu-message' );\n        m.innerHTML = 'Camera position '+ cam_position+' copied to clipboard';\n        m.style.display = 'block';\n        setTimeout( function() { m.style.display = 'none'; }, 2000 );\n\n    }\n\n</script>\n\n<div id=\"menu-container\" onclick=\"toggleMenu()\">&#x24d8;\n<div id=\"menu-message\"></div>\n<div id=\"menu-content\">\n<div onclick=\"saveAsPNG()\">Save as PNG</div>\n<div onclick=\"saveAsHTML()\">Save as HTML</div>\n<div onclick=\"getCamera()\">Get camera</div>\n<div onclick=\"getViewpoint()\">Get viewpoint</div>\n<div>Close Menu</div>\n</div></div>\n\n\n</body>\n</html>\n"
  },
  {
    "path": "examples/sample-article/gen/stack/stack-integration.ptx",
    "content": "<stack-static>\n    <statement><p><p>Find <me> \\int {{\\left(x-3\\right)}^6} d{x}</me> <fillin characters=\"20\" name=\"ans1\"/> </p></p></statement>\n    <solution><p><p>We can either do this question by inspection (i.e. spot the answer) or in a more formal manner by using the substitution <me> u = ({x}-{3}).</me> Then, since <m>\\frac{d}{d{x}}u=1</m> we have <me> \\int {{\\left(x-3\\right)}^6} d{x} = \\int u^{6} du = \\frac{u^{7}}{7}+c = {\\frac{{\\left(x-3\\right)}^7}{7}}+c.</me></p></p></solution>\n    <answer><p><m>\\frac{{\\left(x-3\\right)}^7}{7}+c</m></p></answer>\n</stack-static>"
  },
  {
    "path": "examples/sample-article/gen/stack/stack-matrix.ptx",
    "content": "<stack-static>\n    <statement><p><p>Type in <m>{\\left[\\begin{array}{cc} 1 &amp; 2 \\\\ 3 &amp; 4 \\end{array}\\right]}</m><br/></p><p><fillin characters=\"15\" name=\"ans1\"/></p><div/></p></statement>\n    <answer><p><m>\\left[\\begin{array}{cc} 1 &amp; 2 \\\\ 3 &amp; 4 \\end{array}\\right]</m></p></answer>\n</stack-static>"
  },
  {
    "path": "examples/sample-article/gen/stack/stack-mcq.ptx",
    "content": "<stack-static>\n    <statement><p><p>Differentiate <m>{\\sin \\left( 2\\cdot x \\right)}</m> with respect to <m>x</m>.</p><p/><ol marker=\"(1)\">\n<li><m>2\\cdot \\cos \\left( 2\\cdot x \\right)</m></li>\n<li><m>\\sin \\left( 2\\cdot x \\right)</m></li>\n<li><m>-\\frac{\\cos \\left( 2\\cdot x \\right)}{2}</m></li>\n<li><m>\\cos \\left( 2\\cdot x \\right)+c</m></li>\n<li>None of these</li>\n</ol><div/></p></statement>\n    <answer><p><m>(1)</m></p></answer>\n</stack-static>"
  },
  {
    "path": "examples/sample-article/gen/stack/stack-plot.ptx",
    "content": "<stack-static>\n    <statement><p><p>What is the function plotted here:</p>\n<div class=\"stack_plot\"><image alt=\"STACK auto-generated plot of (x-1)^2+2 with parameters [[x,-7,7],[y,-5,5],[box,false]]\" width=\"75%\" pi:generated=\"stack/images/stack-plot-render-0.pdf\" xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"/></div>\n<p><fillin characters=\"15\" name=\"ans1\"/> </p></p></statement>\n    <answer><p><m>{\\left(x-1\\right)}^2+2</m></p></answer>\n</stack-static>"
  },
  {
    "path": "examples/sample-article/gen/stack/stack-typesetting.ptx",
    "content": "<stack-static>\n    <statement><p><p class=\"HELM_exercise\">Exercise</p>\n<p> In triangle <m>OAB</m> the point <m>P</m> divides <m>AB</m> internally in the ratio <m>m:n</m>.</p>\n<p>If <m>\\overrightarrow{OA} = \\underline{a}</m> and <m>\\overrightarrow{OB} \n= \\underline{b}</m>, then find an expression for <m>\\overrightarrow{OP}</m> in terms of <m>\\underline{a}</m> and <m>\\underline{b}</m>.</p>\n<p>You might find it helpful to draw a diagram showing this triangle.</p>\n<p><m>\\overrightarrow{OP} = </m> <fillin characters=\"15\" name=\"ans1\"/>  </p></p></statement>\n    <solution><p><p>The figure below shows the triangle with the vector <m>\\overrightarrow{OP}</m> marked with a dotted line within.</p><p style=\"text-align: center;\"><image alt=\"A triangle OAB with vectors a and b marked on the edges OA and OB respectively. The point P is marked partway along the edge AB and a dotted line marks the vector OP through the middle of the triangle.\" class=\"img-responsive atto_image_button_text-bottom\" width=\"75%\" pi:generated=\"stack/images/stack-typesetting-9-1-4TriangleQuestionAns.pdf\" xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"/></p><p>From\n the diagram we can see <m>\\overrightarrow{OP} = \\overrightarrow{OA} + \n\\overrightarrow{AP}</m>.<nbsp/> We are told <m>\\overrightarrow{OA} = \n\\underline{a}</m> and so we need to find <m>\\overrightarrow{AP}</m>.<nbsp/> We know\n that <m>P</m> divides <m>\\overrightarrow{AB}</m> in the ratio <m>m:n</m> so \n<me>\\overrightarrow{AP} = \\frac{m}{m+n}\\left(\\overrightarrow{AB}\\right),</me>\n as <me>\\overrightarrow{AB} = \\underline{b} - \\underline{a}</me> we find \n<me>\\overrightarrow{AP} = \\frac{m}{m+n}\\left(\\underline{b} - \n\\underline{a}\\right)</me> and therefore, <me>\\overrightarrow{OP} = \n\\underline{a} + \\frac{m}{m+n}\\left(\\underline{b} - \n\\underline{a}\\right).</me></p><p>Note: You can arrive at an equivalent expression by starting from <m>\\overrightarrow{OP} = \\overrightarrow{OB} + \n\\overrightarrow{BP}</m>.</p><br/></p></solution>\n    <answer><p><m>\\frac{\\left(b-a\\right) m}{n+m}+a</m></p></answer>\n</stack-static>"
  },
  {
    "path": "examples/sample-article/gen/trace/python-hello-world-code-lens.js",
    "content": "if (allTraceData === undefined) {\n var allTraceData = {};\n }\n allTraceData[\"rs-python-hello-world-code-lens\"] = {\"code\": \"print('Hello, World!')\\n\\n\", \"trace\": [{\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"\"}, {\"line\": 1, \"event\": \"return\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"Hello, World!\\n\"}]}"
  },
  {
    "path": "examples/sample-article/media/code/asymptote/bezier-patch.js",
    "content": "webGLStart(p);\n"
  },
  {
    "path": "examples/sample-article/media/code/austin/animation.js",
    "content": "/* From David Austin, 2018-04-05 */\n\nvar dx = 4;\n\nvar reset = document.getElementById(\"reset\");\nreset.onclick = function() {\n    left.resetBaseTransform();\n    right.resetBaseTransform();\n    update();\n}\nvar compose = document.getElementById(\"compose\");\ncompose.onclick = function() {\n    var af = getCurrentTransform();\n    left.composeBaseTransform(af);\n    right.composeBaseTransform(af);\n    sliders[0].reset(1);\n    sliders[1].reset(0);\n    sliders[2].reset(0);\n    sliders[3].reset(0);\n    sliders[4].reset(1);\n    sliders[5].reset(0);\n    update();\n}\n\nvar getCurrentTransform = function() {\n    var matrix = [[1,0,0], [0,1,0], [0,0,1]];\n    matrix[0][0] = sliders[0].coordinate();\n    matrix[0][1] = sliders[1].coordinate();\n    matrix[0][2] = sliders[2].coordinate();\n    matrix[1][0] = sliders[3].coordinate();\n    matrix[1][1] = sliders[4].coordinate();\n    matrix[1][2] = sliders[5].coordinate();\n    var af = new AffineTransform();\n    af.matrix = matrix;\n    return af;\n}\n\nvar update = function() {\n    var af = getCurrentTransform();\n    left.woody.draw();\n    right.setDrawTransform(af);\n    right.woody.draw();\n}\n\nfunction Slider(id, xpos) {\n    this.slider = document.getElementById(id);\n    this.slider.id = id;\n    this.slider.ctx = this.slider.getContext(\"2d\");\n    this.slider.margin = 5;\n    this.deltaX = (this.slider.width - 2*this.slider.margin)/4.0;\n    this.slider.locationX = this.slider.margin + (2+xpos)*this.deltaX;\n    this.slider.locationY = this.slider.height/2.0;\n    this.slider.moving = false;\n    this.coordinate = function() {\n\tvar coord = (this.slider.locationX - this.slider.margin)/this.deltaX\n\t    - 2.0;\n\treturn coord\n    }\n    this.reset = function(xpos) {\n\tthis.slider.locationX = this.slider.margin + (2+xpos)*this.deltaX;\n\tthis.slider.draw();\n    }\n\t\n    this.slider.onmousedown = function(event) {\n\tvar x = event.offsetX;\n\tvar y = event.offsetY;\n\tif (Math.abs(x - this.locationX) <= dx\n\t    && Math.abs(y - this.locationY) <= dx) {\n\t    this.moving = true;\n\t} else return;\n\tif (x < this.margin || x > this.width - this.margin) return;\n\tthis.locationX = x;\n\tthis.draw();\n\tupdate();\n    }\n\t\n    this.slider.onmousemove = function(event) {\n\tif (!this.moving) return;\n\tvar x = event.offsetX;\n\tvar y = event.offsetY;\n\tif (x < this.margin || x > this.width - this.margin) return;\n\tthis.locationX = x;\n\tthis.draw();\n\tupdate();\n    }\n\t\n    this.slider.onmouseup = function(event) {\n\tif (!this.moving) return;\n\tthis.moving = false;\n\tvar x = event.offsetX;\n\tvar y = event.offsetY;\n\tif (x < this.margin || x > this.width - this.margin) return;\n\tthis.locationX = x;\n\tthis.draw();\n\tupdate();\n    }\n\t\n    this.slider.draw = function() {\n\tthis.ctx.clearRect(0,0,this.width, this.height);\n\tthis.ctx.beginPath();\n\tthis.ctx.moveTo(this.margin, this.locationY);\n\tthis.ctx.lineTo(this.width - this.margin, this.locationY);\n\tthis.ctx.stroke();\n\n\tvar deltaX = (this.width - 2*this.margin)/4.0;\n\tvar xtick = this.margin;\n\tvar tickheight = 5;\n\tvar fontsize = 12;\n\tthis.ctx.font = fontsize + \"px Arial\";\n\tthis.ctx.textAlign = \"center\";\n\t\n\tfor (var i = -2; i <= 2; i++) {\n\t    this.ctx.beginPath();\n\t    this.ctx.moveTo(xtick, this.locationY - tickheight);\n\t    this.ctx.lineTo(xtick, this.locationY + tickheight);\n\t    this.ctx.stroke();\n\t    this.ctx.fillText(i,xtick, this.locationY + fontsize + tickheight);\n\t    xtick += deltaX;\n\t}\n\n\tthis.ctx.font = \"14px Arial\";\n\tthis.ctx.textAlign = \"left\";\n\tthis.ctx.fillText(this.id, this.margin + 5, this.locationY - 10);\n\n\tthis.ctx.save();\n\tthis.ctx.lineWidth = 2;\n\tthis.ctx.moveTo(this.margin + 2*deltaX, this.locationY - tickheight);\n\tthis.ctx.lineTo(this.margin + 2*deltaX, this.locationY + tickheight);\n\tthis.ctx.stroke();\n\tthis.ctx.restore();\n\n\tvar x = this.locationX - dx;\n\tvar y = this.locationY - dx;\n\n\tthis.ctx.save();\n\tthis.ctx.fillStyle = \"red\"\n\tthis.ctx.fillRect(x, y, 2*dx, 2*dx);\n\tthis.ctx.strokeRect(x, y, 2*dx, 2*dx);\n\tthis.ctx.restore();\n    }\n}\n\nfunction AffineTransform() {\n    this.matrix = [[1,0,0], [0,1,0], [0,0,1]];\n    this.inverse = [[1,0,0], [0,1,0], [0,0,1]];\n    this.multiply = function(m, n) {\n\tvar newMatrix = [[0,0,0], [0,0,0], [0,0,0]];\n\tfor (var i = 0; i < 3; i++) {\n\t    for (var j = 0; j < 3; j++) {\n\t\tfor (var k = 0; k < 3; k++) {\n\t\t    newMatrix[i][j] += m[i][k] *\n\t\t\tn[k][j]\n\t\t}\n\t    }\n\t}\n\treturn newMatrix;\n    }\n    this.compose = function(af) {\n\tthis.matrix = this.multiply(this.matrix, af.matrix);\n    }\n    this.translate = function(tx, ty) {\n\tvar translate = [[1,0,tx], [0, 1, ty], [0,0,1]]\n\tvar inverseTranslate = [[1, 0, -tx], [0,1,-ty], [0,0,1]]\n\tthis.matrix = this.multiply(this.matrix,translate);\n\tthis.inverse = this.multiply(inverseTranslate, this.inverse);\n    }\n    this.scale = function(sx, sy) {\n\tvar scaling = [[sx, 0, 0], [0, sy, 0], [0,0,1]];\n\tvar inverseScaling = [[1.0/sx, 0, 0], [0, 1.0/sy, 0], [0,0,1]];\n\tthis.matrix = this.multiply(this.matrix, scaling);\n\tthis.inverse = this.multiply(inverseScaling, this.inverse);\n    }\n    this.actOnPoint = function(x, y) {\n\tvar newx = this.matrix[0][0] * x +\n\t    this.matrix[0][1] * y +\n\t    this.matrix[0][2];\n\tvar newy = this.matrix[1][0] * x + \n\t    this.matrix[1][1] * y +\n\t    this.matrix[1][2];\n\treturn [newx,newy];\n    }\n    this.inverseOnPoint = function(x,y) {\n\tvar newx = this.inverse[0][0]*x +\n\t    this.inverse[0][1] * y + this.inverse[0][2];\n\tvar newy = this.inverse[1][0]*x +\n\t    this.inverse[1][1] * y + this.inverse[1][2];\n\treturn [newx, newy];\n    }\n    this.clone = function() {\n\tvar tform = new AffineTransform();\n\tvar mat = [[1,0,0], [0,1,0], [0,0,1]];\n\tvar inv = [[1,0,0], [0,1,0], [0,0,1]];\n\tfor (var i = 0; i < 3; i++) {\n\t    for (var j = 0; j < 3; j++) {\n\t\tmat[i][j] = this.matrix[i][j];\n\t\tinv[i][j] = this.inverse[i][j];\n\t    }\n\t}\n\ttform.matrix = mat;\n\ttform.inverse = inv;\n\treturn tform;\n    }\n\t\t\t      \n}\n\nfunction Woody(id) {\n    this.woody = document.getElementById(id);\n    this.woody.ctx = this.woody.getContext(\"2d\");\n    var halfSize = this.woody.width/2.0\n    this.woody.transform = new AffineTransform();\n    this.woody.transform.translate(halfSize, halfSize);\n    this.woody.transform.scale(1, -1);\n\n    this.woody.baseTransform = new AffineTransform();\n    this.composeBaseTransform = function(af) {\n\tvar newaf = new AffineTransform();\n\tnewaf.compose(af);\n\tnewaf.compose(this.woody.baseTransform);\n\tthis.woody.baseTransform = newaf;\n//\tthis.woody.baseTransform.compose(af);\n    }\n    this.resetBaseTransform = function() {\n\tthis.woody.baseTransform = new AffineTransform();\n    }\n\n    var scale = halfSize/4;\n    this.woody.transform.scale(scale, scale);\n\n    this.woody.drawTransform = new AffineTransform();\n    this.setDrawTransform = function(af) {\n\tthis.woody.drawTransform = af;\n    }\n    this.woody.move = function(x, y) {\n\tvar point = this.transform.actOnPoint(x, y);\n\tthis.ctx.moveTo(point[0], point[1]);\n    }\n    this.woody.line = function(x, y) {\n\tvar point = this.transform.actOnPoint(x, y);\n\tthis.ctx.lineTo(point[0], point[1]);\n    }\n\n    this.woody.draw = function() {\n\tthis.ctx.clearRect(0,0,this.width, this.height);\n\n\tthis.ctx.beginPath();\n\tfor (var i = -4; i <= 4; i++) {\n\t    this.move(-4, i);\n\t    this.line(4, i);\n\t    this.move(i, -4);\n\t    this.line(i, 4);\n\t}\n\tthis.ctx.strokeStyle = \"lightgray\";\n\tthis.ctx.stroke();\n\n\tthis.ctx.strokeStyle = \"black\";\n\tthis.ctx.beginPath();\n\tthis.move(-4, 0);\n\tthis.line(4, 0);\n\tthis.move(0, -4);\n\tthis.line(0, 4);\n\tthis.ctx.stroke();\n\n\tvar defTransform = this.transform.clone();\n\tvar drawTransformClone = this.drawTransform.clone();\n\tdrawTransformClone.compose(this.baseTransform);\n\t\n\tthis.transform.compose(drawTransformClone);\n\tthis.ctx.save();\n\tthis.ctx.lineWidth = 2;\n\tthis.ctx.strokeStyle = \"blue\"\n\n\tthis.transform.translate(0,2);\n\tthis.transform.scale(0.5, 0.5);\n\n\t// right arm\n\tthis.ctx.beginPath();\n\tthis.move(0, -1);\n\tthis.line(0, -3);\n\n\tthis.move(1,-1)\n\tthis.line(-1,-3);\n\n\tthis.move(0, -3);\n\tthis.line(1,-4);\n\n\tthis.move(0, -3);\n\tthis.line(-1,-4);\n\n\tvar N = 100;\n\tvar dangle = 2*Math.PI/N;\n\tvar angle = 0;\n\tthis.transform.scale(0.5,1);\n\tthis.move(1,0);\n\tfor (var i = 0; i < N; i++) {\n\t    angle += dangle;\n\t    this.line(Math.cos(angle), Math.sin(angle));\n\t}\n\tthis.ctx.closePath();\n\n\tthis.ctx.stroke();\n\n\tthis.ctx.restore();\n\tthis.transform = defTransform;\n\n\tthis.ctx.strokeRect(0,0,this.width, this.height);\n    }\n}\n\nsliders = [new Slider(\"a\",1), new Slider(\"b\",0), new Slider(\"c\",0),\n\t   new Slider(\"d\",0), new Slider(\"e\",1), new Slider(\"f\",0)];\nfor (var i = 0; i < sliders.length; i++) {\n    sliders[i].slider.draw();\n}\n\nvar left = new Woody(\"left\");\nvar right = new Woody(\"right\");\nleft.woody.draw();\nright.woody.draw();\n\n\n\n"
  },
  {
    "path": "examples/sample-article/media/code/austin/eigenvectors.js",
    "content": "/* From David Austin, 2018-04-05 */\n\nvar matrix = new Canvas(\"sliders\", [0,0, 2,2]);\nvar canvas = new Canvas(\"eigenvectors\", [-4,-4,4,4]);\n\nmatrix.margins = [20,5,20,5];\nmatrix.setUpCoordinates();\ncanvas.margins = [5,5,5,5];\ncanvas.setUpCoordinates();\n\nvar dx = 0.05;\nvar mkslider = function(xr, y) {\n    var s = new Slider(xr, y, [-2,2], update);\n    s.ticks = [-2,1,2]\n    s.labels = [-2,1,2]\n    s.point.style = \"box\";\n    s.point.fillColor = \"blue\"\n    s.point.size = 4;\n    matrix.addPlotable(s);\n    matrix.addMoveable(s);\n    return s;\n}\n\nvar update = function() {\n    var ma = a.coordinate();\n    var mb = b.coordinate();\n    var mc = c.coordinate();\n    var md = d.coordinate();\n    var x = v.head[0];\n    var y = v.head[1];\n    Av.head = [ma*x + mb*y, mc*x + md*y];\n    matrix.draw();\n    canvas.draw();\n}\n\nvar a = mkslider([dx, 1-2*dx], 1.5);\nvar b = mkslider([1+2*dx, 2-dx], 1.5);\nvar c = mkslider([dx, 1-2*dx], 0.5);\nvar d = mkslider([1+2*dx, 2-dx], 0.5);\na.init(1);\nb.init(0);\nc.init(0);\nd.init(1);\n\nvar grid = new Grid([-4,1,4], [-4,1,4]);\ncanvas.addPlotable(grid);\n\nvar axes = new Axes();\ncanvas.addPlotable(axes);\n\nvar v = new Vector([1,0]);\nv.move = function(p) {\n    v.head = p;\n    update();\n}\nv.fillColor = \"red\";\n\nvar Av = new Vector([1,0]);\nAv.fillColor = \"gray\";\ncanvas.addPlotable(Av);\ncanvas.addPlotable(v);\ncanvas.addMoveable(v);\n\nupdate();\n\n\n"
  },
  {
    "path": "examples/sample-article/media/code/austin/figures.js",
    "content": "/* From David Austin, 2018-04-05 */\n\nfunction Canvas(id, bbox) {\n    this.id = id\n    var element = document.getElementById(id);\n    this.elem = element;\n    this.ctx = element.getContext(\"2d\");\n\n    this.plotables = []\n    element.moveables = []\n    element.moving = null;\n    element.container = this;\n\n    this.addPlotable = function(p) {\n\tif (!Array.isArray(p)) {\n\t    var p = [p];\n\t}\n\tfor (i in p) {\n\t    this.plotables.push(p[i]);\n\t    p[i].setContext(this.transform, this.ctx, this.bbox);\n\t}\n    }\n    this.addMoveable = function(m) {\n\tif (!Array.isArray(m)) {\n\t    m = [m];\n\t}\n\tfor (i in m) {\n\t    element.moveables.push(m[i]);\n\t}\n    }\n\n    this.resetPlotables = function() {\n\tfor (var i = 0; i < this.plotables.length; i++) {\n\t    this.plotables[i].setContext(this.transform, this.ctx, this.bbox);\n\t}\n    }\n\n    this.draw = function() {\n\tthis.ctx.clearRect(0,0,element.width,element.height);\n\tfor (i in this.plotables) {\n\t    var p = this.plotables[i];\n\t    p.draw();\n\t}\n    }\n\n    this.margins = [0,0,0,0]\n    this.transform = new AffineTransform();\n\n    this.setUpCoordinates = function(bbox) {\n\tthis.transform = new AffineTransform();\n\tvar sx = (element.width-this.margins[0]-this.margins[2]) /\n\t    (this.bbox[2] - this.bbox[0]);\n\tvar sy = (element.height-this.margins[1]-this.margins[3]) /\n\t    (this.bbox[3] - this.bbox[1]);\n\tthis.transform.translate([this.margins[0],\n\t\t\t\t  element.height-this.margins[1]]);\n\tthis.transform.scale([sx, -sy]);\n\tthis.transform.translate([-this.bbox[0], -this.bbox[1]]);\n    }\n\n    this.bbox = bbox;\n    this.setUpCoordinates(bbox);\n\n    element.onmousedown = function(event) {\n\tvar x = event.offsetX;\n\tvar y = event.offsetY;\n\tfor (i in this.moveables) {\n\t    if (this.moveables[i].hit(x,y)) {\n\t\tthis.moving = this.moveables[i];\n\t\tvar p = this.container.transform.inverseTransformPoint([x,y]);\n\t\tthis.moving.move(p);\n\t\treturn;\n\t    }\n\t}\n\n    }\n    element.onmousemove = function(event) {\n\tif (this.moving == null) return;\n\tvar x = event.offsetX;\n\tvar y = event.offsetY;\n\tvar p = this.container.transform.inverseTransformPoint([x,y]);\n\tthis.moving.move(p);\n\n    }\n    element.onmouseup = function(event) {\n\tif (this.moving == null) return;\n\tvar x = event.offsetX;\n\tvar y = event.offsetY;\n\tvar p = this.container.transform.inverseTransformPoint([x,y]);\n\tthis.moving.move(p);\n\tthis.moving = null;\n\n    }\n    element.onmouseout = function(event) {\n\tthis.moving = null;\n    }\n}\n\nfunction AffineTransform() {\n    this.matrix = [[1,0,0], [0,1,0], [0,0,1]]\n    this.inverse = [[1,0,0], [0,1,0], [0,0,1]]\n    var multiply = function(m1, m2) {\n\tr = [[0,0,0], [0,0,0], [0,0,0]]\n\tfor (var i = 0; i < m1.length; i++) {\n\t    for (var j = 0; j < m2[0].length; j++) {\n\t\tfor (var k = 0; k < m2.length; k++) {\n\t\t    r[i][j] += m1[i][k] * m2[k][j]\n\t\t}\n\t    }\n\t}\n\treturn r;\n    }\n    var multiplyVector = function(m, v) {\n\tvar p = [0, 0, 0];\n\tfor (var i = 0; i < m.length; i++) {\n\t    for (var j = 0; j < v.length; j++) {\n\t\tp[i] += m[i][j] * v[j];\n\t    }\n\t}\n\treturn p.slice(0, v.length);\n    }\n    this.printMatrix = function() {\n\tconsole.log(this.matrix[0]);\n\tconsole.log(this.matrix[1]);\n    }\n    this.compose = function(transform) {\n\tthis.matrix = multiply(this.matrix, transform.matrix);\n\tthis.inverse = multiply(transform.inverse, this.inverse);\n    }\n    this.scale = function(s) {\n\tvar sx = s[0];\n\tvar sy = s[0];\n\tif (s.length == 2) sy = s[1];\n\tvar af = new AffineTransform();\n\taf.matrix = [[sx, 0, 0], [0, sy, 0], [0,0,1]];\n\taf.inverse = [[1.0/sx, 0, 0], [0, 1.0/sy, 0], [0,0,1]];\n\tthis.compose(af);\n    }\n    this.translate = function(t) {\n\tvar tx = t[0];\n\tvar ty = t[1];\n\tvar af = new AffineTransform();\n\taf.matrix = [[1, 0, tx], [0, 1, ty], [0,0,1]];\n\taf.inverse = [[1, 0, -tx], [0, 1.0, -ty], [0,0,1]];\n\tthis.compose(af);\n    }\n    this.rotate = function(angle) {\n\tvar af = new AffineTransform();\n\taf.matrix = [[Math.cos(angle), -Math.sin(angle), 0],\n\t\t     [Math.sin(angle), Math.cos(angle), 0],\n\t\t     [0,0,1]];\n\taf.inverse = [[Math.cos(angle), Math.sin(angle), 0],\n\t\t     [-Math.sin(angle), Math.cos(angle), 0],\n\t\t     [0,0,1]];\n\tthis.compose(af);\n    }\n    this.rotateDeg = function(angle) {\n\tthis.rotate(angle * Math.PI / 180.0);\n    }\n    this.transformPoint = function(p) {\n\tp = p.slice(0);\n\tp.push(1);\n\tp = multiplyVector(this.matrix, p)\n\treturn p.slice(0,2);\n    }\n    this.inverseTransformPoint = function(p) {\n\tp = p.slice(0);\n\tp.push(1);\n\tp = multiplyVector(this.inverse, p);\n\treturn p.slice(0,2);\n    }\n}\n\nfunction Plotable() {\n    this.fillColor = \"black\";\n    this.strokeColor = \"black\";\n    this.lineWidth = 1;\n    this.lineDash = null;\n    this.transform = null;\n    this.ctx = null;\n    this.bbox = null;\n    this.fontsize = 14;\n    this.font = this.fontsize + \"px Arial\";\n    this.setContext = function(t, c, b) {\n\tthis.transform = t;\n\tthis.ctx = c;\n\tthis.bbox = b;\n    }\n    this.moveTo = function(p) {\n\tp = this.transform.transformPoint(p);\n\tthis.ctx.moveTo(p[0], p[1]);\n    }\n    this.lineTo = function(p) {\n\tp = this.transform.transformPoint(p);\n\tthis.ctx.lineTo(p[0], p[1]);\n    }\n    this.textAt = function(s, p, offset, align) {\n\tthis.ctx.save();\n\tp = this.transform.transformPoint(p);\n\tthis.ctx.translate(p[0], p[1]);\n\tthis.ctx.translate(offset[0], offset[1]);\n\tthis.ctx.font = this.font;\n\tthis.ctx.textAlign = align;\n\tthis.ctx.fillText(s, 0, 0);\n\tthis.ctx.restore();\n    }\n    this.fill = function() {\n\tif (this.fillColor != null) {\n\t    this.ctx.fillStyle = this.fillColor;\n\t    this.ctx.fill();\n\t}\n    }\n    this.stroke = function() {\n\tif (this.strokeColor != null) {\n\t    this.ctx.lineWidth = this.lineWidth;\n\t    this.ctx.strokeStyle = this.strokeColor;\n\t    if (this.lineDash != null) this.ctx.setLineDash(this.lineDash);\n\t    this.ctx.stroke();\n\t}\n    }\n}\n\nfunction Label(s, p) {\n    this.s = s;\n    this.p = p;\n    this.offset = [0,0];\n    this.align = \"center\"\n    this.font = \"italic 14px arial\";\n    this.draw = function() {\n\tthis.ctx.save();\n\tp = this.transform.transformPoint(this.p);\n\tthis.ctx.translate(p[0], p[1]);\n\tthis.ctx.translate(this.offset[0], -this.offset[1]);\n\tthis.ctx.font = this.font;\n\tthis.ctx.textAlign = this.align;\n\tthis.ctx.fillText(s, 0, 0);\n\tthis.ctx.restore();\n    }\n}\nLabel.prototype = new Plotable();\n\nfunction Grid(rx, ry) {\n    this.rx = rx;\n    this.ry = ry;\n    this.strokeColor = \"lightgray\";\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.strokeStyle = this.strokeColor;\n\tthis.ctx.lineWidth = this.lineWidth;\n\tthis.ctx.beginPath();\n\tfor (var x = this.rx[0]; x <= this.rx[2]; x += this.rx[1]) {\n\t    this.moveTo([x, this.bbox[1]]);\n\t    this.lineTo([x, this.bbox[3]]);\n\t}\n\tfor (var y = this.ry[0]; y <= this.ry[2]; y += this.ry[1]) {\n\t    this.moveTo([this.bbox[0], y]);\n\t    this.lineTo([this.bbox[2], y]);\n\t}\n\tthis.ctx.stroke();\n\tthis.ctx.restore();\n    }\n}\n\nGrid.prototype = new Plotable();\n\nfunction TGrid(a1, a2) {\n    this.a1 = a1;\n    this.a2 = a2;\n    this.strokeColor = \"lightgray\";\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.strokeStyle = this.strokeColor;\n\tthis.ctx.lineWidth = this.lineWidth;\n\n\tthis.ctx.beginPath()\n\tthis.moveTo([this.bbox[0], this.bbox[1]]);\n\tthis.lineTo([this.bbox[2], this.bbox[1]]);\n\tthis.lineTo([this.bbox[2], this.bbox[3]]);\n\tthis.lineTo([this.bbox[0], this.bbox[3]]);\n\tthis.ctx.closePath();\n\tthis.ctx.clip();\n\n\tthis.ctx.beginPath();\n\tvar num = 100;\n\tfor (var i = -num; i <= num; i++) {\n\t    this.moveTo(vadd(smult(i, this.a1), smult(-num,this.a2)));\n\t    this.lineTo(vadd(smult(i, this.a1), smult(num,this.a2)));\n\t}\n\tfor (var i = -num; i <= num; i++) {\n\t    this.moveTo(vadd(smult(i, this.a2), smult(-num,this.a1)));\n\t    this.lineTo(vadd(smult(i, this.a2), smult(num,this.a1)));\n\t}\n\n\tthis.ctx.stroke();\n\tthis.ctx.restore();\n    }\n}\nTGrid.prototype = new Plotable();\n\nfunction Axes() {\n    this.ticks = null;\n    this.labels = null;\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.strokeStyle = this.strokeColor;\n\tthis.ctx.beginPath();\n\tthis.moveTo([this.bbox[0], 0]);\n\tthis.lineTo([this.bbox[2], 0]);\n\tthis.moveTo([0, this.bbox[1]]);\n\tthis.lineTo([0, this.bbox[3]]);\n\tthis.ctx.stroke();\n\n\tif (this.ticks != null) {\n\t    if (this.ticks[0] != null) this.drawHTicks();\n\t    if (this.ticks[1] != null) this.drawVTicks();\n\t}\n\tif (this.labels != null) {\n\t    if (this.labels[0] != null) this.drawHLabels();\n\t    if (this.labels[1] != null) this.drawVLabels();\n\t}\n\tthis.ctx.restore();\n    }\n\n    var ticksize = 4;\n    this.drawHTicks = function() {\n\tfor (var x = this.ticks[0][0]; x <= this.ticks[0][2];\n\t     x += this.ticks[0][1]) {\n\t    if (Math.abs(x) < 1e-10) continue;\n\t    this.ctx.save();\n\t    var p = this.transform.transformPoint([x, 0]);\n\t    this.ctx.translate(p[0], p[1]);\n\t    this.ctx.lineWidth = 2;\n\t    this.ctx.beginPath();\n\t    this.ctx.moveTo(0, -ticksize);\n\t    this.ctx.lineTo(0, ticksize);\n\t    this.ctx.stroke();\n\t    this.ctx.restore();\n\t}\n    }\n    this.drawVTicks = function() {\n\tfor (var y = this.ticks[1][0]; y <= this.ticks[1][2];\n\t     y += this.ticks[1][1]) {\n\t    if (Math.abs(y) < 1e-10) continue;\n\t    this.ctx.save();\n\t    var p = this.transform.transformPoint([0, y]);\n\t    this.ctx.translate(p[0], p[1]);\n\t    this.ctx.lineWidth = 2;\n\t    this.ctx.beginPath();\n\t    this.ctx.moveTo(-ticksize,0);\n\t    this.ctx.lineTo(ticksize,0);\n\t    this.ctx.stroke();\n\t    this.ctx.restore();\n\t}\n    }\n    this.drawHLabels = function() {\n\tfor (var x = this.labels[0][0]; x <= this.labels[0][2];\n\t     x += this.labels[0][1]) {\n\t    if (Math.abs(x) < 1e-10) continue;\n\t    this.textAt(x, [x,0], [0, ticksize + this.fontsize], \"center\");\n\t}\n    }\n    this.drawVLabels = function() {\n\tfor (var y = this.labels[1][0]; y <= this.labels[1][2];\n\t     y += this.labels[1][1]) {\n\t    if (Math.abs(y) < 1e-10) continue;\n\t    this.textAt(y, [0,y], [-ticksize-2,this.fontsize/2.0-2], \"right\");\n\t}\n\n    }\n}\nAxes.prototype = new Plotable();\n\nfunction Slider(rx, y, sx, update) {\n    this.rx = rx; // coordinates in canvas\n    this.y = y;\n    this.sx = sx; // coordinates of slider\n    this.ratioPerPix = (sx[1]-sx[0])/(rx[1]-rx[0])\n    this.point = new Point([rx[0], y]);\n    this.update = update;\n    this.init = function(x) {\n\tthis.point.point = [this.toPix(x),this.y];\n    }\n    this.toPix = function(x) {\n\treturn (x-this.sx[0])/this.ratioPerPix + this.rx[0];\n    }\n    this.fromPix = function(x) {\n\treturn (x-this.rx[0])*this.ratioPerPix + this.sx[0];\n    }\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo([this.rx[0], this.y]);\n\tthis.lineTo([this.rx[1], this.y]);\n\tthis.stroke();\n\tif (this.ticks != null) this.drawTicks();\n\tif (this.labels != null) this.drawLabels();\n\tthis.point.ctx = this.ctx;\n\tthis.point.transform = this.transform;\n\tthis.point.draw();\n\tthis.ctx.restore();\n    }\n    this.hit = function(x, y) {\n\treturn this.point.hit(x,y);\n    }\n    this.move = function(p) {\n\tvar x = p[0];\n\tif (x < this.rx[0] || x > this.rx[1]) return;\n\tthis.point.point = [x, this.y]\n\tthis.update();\n    }\n    this.coordinate = function() {\n\treturn this.fromPix(this.point.point[0]);\n    }\n    var ticksize = 4;\n    this.drawTicks = function() {\n\tfor (var x = this.ticks[0]; x <= this.ticks[2];\n\t     x += this.ticks[1]) {\n\t    this.ctx.save();\n\t    var p = this.transform.transformPoint([this.toPix(x), this.y]);\n\t    this.ctx.translate(p[0], p[1]);\n\t    this.ctx.lineWidth = 2;\n\t    this.ctx.beginPath();\n\t    this.ctx.moveTo(0, -ticksize);\n\t    this.ctx.lineTo(0, ticksize);\n\t    this.ctx.stroke();\n\t    this.ctx.restore();\n\t}\n    }\n    this.drawLabels = function() {\n\tfor (var x = this.labels[0]; x <= this.labels[2];\n\t     x += this.labels[1]) {\n\t    this.textAt(x, [this.toPix(x),this.y],\n\t\t\t[0, ticksize + this.fontsize], \"center\");\n\t}\n    }\n}\nSlider.prototype = new Plotable();\n    \nfunction VSlider(x, ry, sy, update) {\n    this.x = x;\n    this.ry = ry; // coordinates in canvas\n    this.sy = sy; // coordinates of slider\n    this.ratioPerPix = (sy[1]-sy[0])/(ry[1]-ry[0])\n    this.point = new Point([x, ry[0]]);\n    this.update = update;\n    this.init = function(y) {\n\tthis.point.point = [this.x, this.toPix(y)];\n    }\n    this.toPix = function(y) {\n\treturn (y-this.sy[0])/this.ratioPerPix + this.ry[0];\n    }\n    this.fromPix = function(y) {\n\treturn (y-this.ry[0])*this.ratioPerPix + this.sy[0];\n    }\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo([this.x, this.ry[0]]);\n\tthis.lineTo([this.x, this.ry[1]]);\n\tthis.stroke();\n\tif (this.ticks != null) this.drawTicks();\n\tif (this.labels != null) this.drawLabels();\n\tthis.point.ctx = this.ctx;\n\tthis.point.transform = this.transform;\n\tthis.point.draw();\n\tthis.ctx.restore();\n    }\n    this.hit = function(x, y) {\n\treturn this.point.hit(x,y);\n    }\n    this.move = function(p) {\n\tvar y = p[1];\n\tif (y < this.ry[0] || y > this.ry[1]) return;\n\tthis.point.point = [this.x, y]\n\tthis.update();\n    }\n    this.coordinate = function() {\n\treturn this.fromPix(this.point.point[1]);\n    }\n    var ticksize = 4;\n    this.drawTicks = function() {\n\tfor (var y = this.ticks[0]; y <= this.ticks[2];\n\t     y += this.ticks[1]) {\n\t    this.ctx.save();\n\t    var p = this.transform.transformPoint([this.x, this.toPix(y)]);\n\t    this.ctx.translate(p[0], p[1]);\n\t    this.ctx.lineWidth = 2;\n\t    this.ctx.beginPath();\n\t    this.ctx.moveTo(-ticksize, 0);\n\t    this.ctx.lineTo(ticksize, 0);\n\t    this.ctx.stroke();\n\t    this.ctx.restore();\n\t}\n    }\n    this.drawLabels = function() {\n\tfor (var y = this.labels[0]; y <= this.labels[2];\n\t     y += this.labels[1]) {\n\t    this.textAt(y, [this.x, this.toPix(y)],\n\t\t\t[-10, 5], \"center\");\n\t}\n    }\n}\nVSlider.prototype = new Plotable();\n    \nfunction Function(f) {\n    this.f = f;\n    this.dx = 0.0001;\n    this.value = function(x) {\n\treturn this.f(x);\n    }\n    this.derivative = function(x) {\n\treturn (this.f(x+this.dx) - this.f(x-this.dx)) / (2*this.dx);\n    }\n    this.secondDerivative = function(x) {\n\treturn (this.f(x+this.dx) - 2*this.f(x) + this.f(x-this.dx))/\n\t    (this.dx*this.dx)\n    }\n    this.integral = function(x, a) {\n\tvar N = 64;\n\tvar h = (x - a)/N;\n\tvar x = a;\n\tvar sum = 0;\n\tfor (var i = 0; i < N/2; i++ ) {\n\t    sum += this.f(x) + 4*this.f(x+h) + this.f(x+2*h);\n\t    x += 2*h;\n\t}\n\treturn sum*h/3.0;\n    }\n}\nfunction Antiderivative(f, a) {\n    this.f = f;\n    this.a = a;\n    this.value = function(x) {\n\treturn this.f.integral(x, this.a);\n    }\n}\nAntiderivative.prototype = new Function();\n\nfunction Graph(f) {\n    this.f = f;\n    this.domain = null;\n    this.N = 100;\n    this.draw = function() {\n\tif (this.domain == null) {\n\t    this.domain = [this.bbox[0], this.bbox[2]];\n\t}\n\tvar x = this.domain[0];\n\tvar dx = (this.domain[1] - this.domain[0])/this.N;\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo([x, this.f.value(x)]);\n\tfor (var i = 0; i < this.N; i++) {\n\t    x += dx;\n\t    this.lineTo([x,this.f.value(x)]);\n\t}\n\tthis.ctx.lineWidth = this.lineWidth;\n\tthis.ctx.strokeStyle = this.strokeColor;\n\tif (this.lineDash != null) this.ctx.setLineDash(this.lineDash);\n\tthis.ctx.stroke();\n\tthis.ctx.restore();\n    }\n}\nGraph.prototype = new Plotable();\n\nfunction ParametricCurve(x, y, domain) {\n    this.x = x;\n    this.y = y;\n    this.N = 100;\n    this.domain = domain;\n    this.draw = function() {\n\tvar t = this.domain[0];\n\tvar dt = (this.domain[1]-this.domain[0])/this.N;\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo([this.x(t), this.y(t)]);\n\tfor (var i = 0; i < this.N; i++) {\n\t    t += dt\n\t    this.lineTo([this.x(t), this.y(t)]);\n\t}\n\tthis.stroke();\n\tthis.ctx.restore();\n    }\n}\nParametricCurve.prototype = new Plotable();\n\nfunction Rectangle(ll, dims) {\n    this.ll = ll;\n    this.dims = dims;\n    this.draw = function() {\n\tvar ur = vadd(this.ll, this.dims);\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo(this.ll);\n\tthis.lineTo([ur[0], this.ll[1]]);\n\tthis.lineTo(ur);\n\tthis.lineTo([this.ll[0], ur[1]]);\n\tthis.ctx.closePath();\n\tthis.fill();\n\tthis.stroke();\n\tthis.ctx.restore();\n    }\n}\nRectangle.prototype = new Plotable();\n\nfunction Polygon(points) {\n    this.points = points;\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo(this.points[0]);\n\tfor (var i = 1; i < this.points.length; i++) {\n\t    this.lineTo(this.points[i]);\n\t}\n\tthis.ctx.closePath();\n\tthis.fill();\n\tthis.stroke();\n\tthis.ctx.restore();\n    }\n}\nPolygon.prototype = new Plotable();\n\nfunction AreaBetweenCurves(f) {\n    this.f = f;\n    this.g = function(x) {return 0};\n    this.N = 100;\n    this.domain = null;\n    this.draw = function() {\n\tif (this.domain == null) {\n\t    this.domain = [this.bbox[0], this.bbox[2]];\n\t}\n\tif (this.domain[1] == this.domain[0]) return;\n\tvar x = this.domain[0];\n\tvar dx = (this.domain[1] - this.domain[0])/this.N;\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tthis.moveTo([x, this.f(x)]);\n\tfor (var i = 0; i < this.N; i++) {\n\t    x += dx;\n\t    this.lineTo([x,this.f(x)]);\n\t}\n\tthis.lineTo([x, this.g(x)]);\n\tfor (var i = 0; i < this.N; i++) {\n\t    x -= dx;\n\t    this.lineTo([x,this.g(x)]);\n\t}\n\tthis.ctx.closePath();\n\tif (this.fillColor != null) {\n\t    this.ctx.fillStyle = this.fillColor;\n\t    this.ctx.fill();\n\t}\n\tif (this.strokeColor != null) {\n\t    this.ctx.lineWidth = this.lineWidth;\n\t    this.ctx.strokeStyle = this.strokeColor;\n\t    this.ctx.stroke();\n\t}\n\tthis.ctx.restore();\n    }\n}\nAreaBetweenCurves.prototype = new Plotable();\n\nvar vadd = function(u,v) {\n    var r = []\n    for (var i = 0; i < u.length; i++) {\n\tr.push(u[i] + v[i]);\n    }\n    return r\n}\nvar vdiff = function(u,v) {\n    var r = []\n    for (var i = 0; i < u.length; i++) {\n\tr.push(u[i] - v[i]);\n    }\n    return r\n}\nvar smult = function(s,u) {\n    var r = []\n    for (var i = 0; i < u.length; i++) {\n\tr.push(s*u[i]);\n    }\n    return r\n}\nvar dot = function(u,v) {\n    var dot = 0;\n    for (var i = 0; i < u.length; i++) {\n\tdot += u[i]*v[i];\n    }\n    return dot;\n}\nvar length = function(u) {\n    return Math.sqrt(dot(u,u));\n}\nvar midpoint = function(u,v) {\n    return smult(0.5, vadd(u,v));\n}\n\nvar pointOnLine = function(p, t, q) {\n    d = vdiff(q, p);\n    return vadd(p, smult(t, d));\n}\nvar isInBbox = function(p, bbox) {\n    if (p[0] < bbox[0] || p[0] > bbox[2] || p[1] < bbox[1] || p[1] > bbox[3])\n\treturn false;\n    return true;\n}\nfunction Line(p0, p1) {\n    this.p0 = p0;\n    this.p1 = p1;\n    this.infinite = false;\n    this.draw = function() {\n\tvar t0 = 0;\n\tvar t1 = 1;\n\tif (this.infinite) {\n\t    while (isInBbox(pointOnLine(this.p0, t1, this.p1), this.bbox)) {\n\t\tt1++;\n\t    }\n\t    while (isInBbox(pointOnLine(this.p0, t0, this.p1), this.bbox)) {\n\t\tt0--;\n\t    }\n\t}\n\tthis.ctx.save();\n\tthis.ctx.lineWidth = this.lineWidth;\n\tthis.ctx.strokeStyle = this.strokeColor;\n\tif (this.lineDash != null) this.ctx.setLineDash(this.lineDash);\n\tthis.ctx.beginPath();\n\tthis.moveTo(pointOnLine(this.p0, t0, this.p1));\n\tthis.lineTo(pointOnLine(this.p0, t1, this.p1));\n\tthis.ctx.stroke();\n\tthis.ctx.restore();\n    }\n}\nLine.prototype = new Plotable();\n\nfunction Point(p) {\n    this.point = p;\n    this.size = 3;\n    this.style = \"circle\"\n    this.draw = function() {\n\tvar p = this.transform.transformPoint(this.point);\n\tthis.ctx.save();\n\tthis.ctx.translate(p[0], p[1]);\n\tthis.ctx.beginPath();\n\tif (this.style == \"circle\") {\n\t    this.ctx.arc(0,0,this.size, 0, 2*Math.PI);\n\t    this.ctx.closePath();\n\t} else if (this.style == \"box\") {\n\t    this.ctx.moveTo(-this.size, -this.size);\n\t    this.ctx.lineTo(this.size, -this.size);\n\t    this.ctx.lineTo(this.size, this.size);\n\t    this.ctx.lineTo(-this.size, this.size);\n\t    this.ctx.closePath();\n\t} else if (this.style == \"rect\") {\n\t    this.ctx.moveTo(-this.width, -this.height);\n\t    this.ctx.lineTo(this.width, -this.height);\n\t    this.ctx.lineTo(this.width, this.height);\n\t    this.ctx.lineTo(-this.width, this.height);\n\t    this.ctx.closePath();\n\t}\n\tif (this.fillColor != null) {\n\t    this.ctx.fillStyle = this.fillColor;\n\t    this.ctx.fill();\n\t}\n\tif (this.strokeColor != null) {\n\t    this.ctx.strokeStyle = this.strokeColor;\n\t    this.ctx.lineWidth = this.lineWidth;\n\t    this.ctx.stroke();\n\t}\n\tif (this.style == \"rect\" && this.centerLine) {\n\t    this.ctx.beginPath();\n\t    this.ctx.moveTo(0, this.height);\n\t    this.ctx.lineTo(0, -this.height);\n\t    this.ctx.stroke();\n\t}\n\tthis.ctx.restore();\n    }\n    this.hit = function(x,y) {\n\tvar p = this.transform.transformPoint(this.point);\n\tvar dx = x-p[0];\n\tvar dy = y-p[1]\n\tif (this.style == \"circle\") {\n\t    return Math.sqrt(dx*dx + dy*dy) <= this.size;\n\t} else if (this.style == \"box\") {\n\t    return Math.abs(dx) <= this.size && Math.abs(dy) <= this.size;\n\t} else if (this.style == \"rect\") {\n\t    return Math.abs(dx) <= this.width && Math.abs(dy) <= this.height;\n\t}\n\treturn false;\n\tif (this.fillColor != null) {\n\t    this.ctx.fillStyle = this.fillColor;\n\t    this.ctx.fill();\n\t}\n\tif (this.strokeColor != null) {\n\t    this.ctx.strokeStyle = this.strokeColor;\n\t    this.ctx.stroke();\n\t}\n    }\n}\nPoint.prototype = new Plotable();\n\nfunction Ellipse(center, a, b) {\n    this.center = center;\n    this.a = a;\n    this.b = b;\n    this.N = 100;\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\tvar theta = 0;\n\tvar dtheta = 2*Math.PI/this.N;\n\tthis.moveTo(vadd(this.center,\n\t\t    [this.a*Math.cos(theta) , this.b*Math.sin(theta)]))\n\tfor (var i = 0; i < this.N; i++) {\n\t    theta += dtheta;\n\t    this.lineTo(vadd(this.center,\n\t\t\t[this.a*Math.cos(theta) , this.b*Math.sin(theta)]))\n\t}\n\tthis.ctx.closePath();\n\tthis.fill();\n\tthis.stroke();\n\tthis.ctx.restore();\n    }\n}\nEllipse.prototype = new Plotable()\nfunction Circle(center, radius) {\n    this.center = center;\n    this.a = radius;\n    this.b = radius;\n}\nCircle.prototype = new Ellipse();\nfunction QuadTree(corners, depth) {\n    this.corners = corners;\n    this.depth = depth;\n    this.subdivide = function() {\n\tvar bottom = midpoint(this.corners[0], this.corners[1]);\n\tvar top = midpoint(this.corners[2], this.corners[3]);\n\tvar left = midpoint(this.corners[0], this.corners[3]);\n\tvar right = midpoint(this.corners[1], this.corners[2]);\n\tvar mid = midpoint(bottom, top);\n\tvar quad = []\n\tquad.push(new QuadTree([this.corners[0], bottom, mid, left],\n\t\t\t       this.depth-1));\n\tquad.push(new QuadTree([bottom, this.corners[1], right, mid],\n\t\t\t       this.depth-1));\n\tquad.push(new QuadTree([left, mid, top, this.corners[3]],\n\t\t\t       this.depth-1));\n\tquad.push(new QuadTree([mid, right, this.corners[2], top],\n\t\t\t       this.depth-1));\n\treturn quad;\n    }\n    this.intersects = function(ctx) {\n\tvar sign = ctx.g(this.corners[3]);\n\tfor (var i = 0; i < 4; i++) {\n\t    var nextsign = ctx.g(this.corners[i]);\n\t    if (sign * nextsign <= 0) return true;\n\t    sign = nextsign;\n\t}\n\treturn false;\n    }\n    this.findzero = function(p1, p2, ctx) {\n\tvar dx = p2[0] - p1[0];\n\tvar dy = p2[1] - p1[1];\n\tvar dt;\n\tvar nextp\n\tchange = 0.00001\n\tif (dx != 0) {\n\t    dx = change * Math.abs(dx) / dx;\n\t    dy = 0;\n\t    dt = dx\n\t} else {\n\t    dy = change * Math.abs(dy) / dy;\n\t    dx = 0;\n\t    dt = dy;\n\t}\n\tvar p = p1;\n\tvar diff = 1;\n\tvar N = 0;\n\twhile (Math.abs(diff) > 0.000001 && N < 50) {\n\t    var f = ctx.g(p);\n\t    if (f == 0) break;\n\t    var df = (ctx.g(vadd(p, [dx,dy]))-f)/dt;\n\t    diff = f/df;\n\t    if (dx != 0) {\n\t\tnextp = vdiff(p, [diff,0]);\n\t    } else {\n\t\tnextp = vdiff(p, [0, diff]);\n\t    }\n\t    N ++;\n\t    p = nextp;\n\t}\n\treturn p\n    }\n    this.draw = function(ctx) {\n\tvar corner = this.corners[3];\n\tvar sign = ctx.g(corner);\n\tvar lastZero = null;\n\tfor (var i = 0; i < 4; i++) {\n\t    var nextcorner = this.corners[i];\n\t    var nextsign = ctx.g(nextcorner);\n\t    if (sign == 0 && nextsign == 0) {\n\t\tctx.moveTo(corner);\n\t\tctx.lineTo(nextcorner);\n\t    } else if (sign * nextsign <= 0) {\n\t\tif (lastZero == null) {\n\t\t    lastZero = this.findzero(corner, nextcorner, ctx);\n\t\t} else {\n\t\t    var thisZero = this.findzero(corner, nextcorner, ctx);\n\t\t    ctx.moveTo(lastZero);\n\t\t    ctx.lineTo(thisZero);\n\t\t    lastZero = thisZero;\n\t\t}\n\t    }\n\t    corner = nextcorner;\n\t    sign = nextsign;\n\n\t}\n    }\n}\n\nfunction Implicit(f) {\n    this.initialdepth = 4;\n    this.depth = 8;\n    this.f = f;\n    this.box = null;\n    this.draw = function() {\n\tif (this.box == null) {\n\t    this.box = this.bbox;\n\t}\n\tthis.g = function(p) {\n\t    return this.f(p) - this.k;\n\t}\n\tthis.ctx.save();\n\tthis.ctx.lineWidth = this.lineWidth;\n\tthis.ctx.strokeStyle = this.strokeColor;\n\tthis.ctx.beginPath();\n\tvar root = new QuadTree([[this.box[0], this.box[1]],\n\t\t\t\t [this.box[2], this.box[1]],\n\t\t\t\t [this.box[2], this.box[2]],\n\t\t\t\t [this.box[0], this.box[2]]], this.depth);\n\tvar tree = [root]\n\tfor (var i = 0; i < this.initialdepth; i++) {\n\t    var newtree = []\n\t    for (var j = 0; j < tree.length; j++) {\n\t\tvar quad = tree[j].subdivide();\n\t\tnewtree = newtree.concat(tree[j].subdivide());\n\t    }\n\t    tree = newtree;\n\t}\n\twhile (tree.length > 0) {\n\t    var node = tree[0];\n\t    tree.splice(0, 1);\n\t    if (node.depth == 0) {\n\t\tnode.draw(this);\n\t    } else if (node.intersects(this)) {\n\t\ttree = tree.concat(node.subdivide());\n\t    }\n\n\t}\n\tthis.ctx.stroke();\n\tthis.ctx.restore();\n    }\n}\nImplicit.prototype = new Plotable();\n\nfunction Vector(head) {\n    this.head = head\n    this.tail = [0,0];\n    this.arrowWidth = 2;\n    this.sw = 5\n    this.hw = 2.5*this.sw; // was 3.6\n    this.A = 24*Math.PI/180.0;\n    this.B = 60*Math.PI/180.0; // was 60\n    this.draw = function() {\n\tthis.ctx.save();\n\tthis.ctx.beginPath();\n\n\tvar p0 = this.transform.transformPoint(this.tail);\n\tvar p1 = this.transform.transformPoint(this.head);\n\tvar dx = p1[0] - p0[0];\n\tvar dy = p1[1] - p0[1];\n\tvar L = Math.sqrt(dx*dx + dy*dy);\n\tvar xA = L - 0.5*this.hw/Math.tan(this.A);\n\tvar xB = xA + 0.5*(this.hw - this.sw)/Math.tan(this.B);\n\tthis.ctx.translate(p0[0], p0[1]);\n\tthis.ctx.rotate(Math.atan2(dy, dx));\n\n\tthis.ctx.moveTo(0, -0.5*this.sw);\n\tthis.ctx.lineTo(xB,-0.5*this.sw);\n\tthis.ctx.lineTo(xA,-0.5*this.hw);\n\tthis.ctx.lineTo(L, 0);\n\tthis.ctx.lineTo(xA, 0.5*this.hw);\n\tthis.ctx.lineTo(xB, 0.5*this.sw);\n\tthis.ctx.lineTo(0, 0.5*this.sw);\n\tthis.ctx.closePath();\n\tthis.fill();\n\tthis.stroke();\n\tthis.ctx.restore();\n    }\n\n    this.hit = function(x,y) {\n\tvar tail = this.transform.transformPoint(this.tail);\n\tvar head = this.transform.transformPoint(this.head);\n\tvar dy = head[1] - tail[1];\n\tvar dx = head[0] - tail[0];\n\tvar af = new AffineTransform();\n\taf.translate(tail);\n\taf.rotate(Math.atan2(dy, dx));\n\tvar p = af.inverseTransformPoint([x,y]);\n\tvar L = Math.sqrt(dx*dx + dy*dy);\n\tvar xA = L - 0.5*this.hw/Math.tan(this.A);\n\tvar maxY = Math.tan(this.A)*(L-p[0]);\n\tif (p[0] > L || p[0] < xA) return false;\n\tif (Math.abs(p[1]) > maxY) return false;\n\treturn true;\n    }\n}\nVector.prototype = new Plotable();\n\nvar getColor = function(r,g,b) {\n    return 'rgb(' + Math.floor(r) + ',' +\n        Math.floor(g) + ',' +\n\tMath.floor(b) + ')';\n}\n\nvar timer = null;\nvar startAnimation = function(update, interval) {\n    if (timer != null) return;\n    timer = setInterval(update, interval);\n}\nvar stopAnimation = function() {\n    if (timer != null) {\n\tclearTimeout(timer);\n    }\n    timer = null;\n}\n    \n\n\n\t\n"
  },
  {
    "path": "examples/sample-article/media/code/austin/simple-ev.js",
    "content": "/* From David Austin, 2018-04-05 */\n\nvar canvas = new Canvas(\"eigenvector\", [-4,-4,4,4]);\n\ncanvas.margins = [5,5,5,5];\ncanvas.setUpCoordinates();\n\nvar update = function() {\n    var ma = 1;\n    var mb = 2;\n    var mc = 2;\n    var md = 1;\n    var x = v.head[0];\n    var y = v.head[1];\n    Av.head = [ma*x + mb*y, mc*x + md*y];\n    canvas.draw();\n}\n\nvar grid = new Grid([-4,1,4], [-4,1,4]);\ncanvas.addPlotable(grid);\n\nvar axes = new Axes();\ncanvas.addPlotable(axes);\n\nvar v = new Vector([1,0]);\nv.move = function(p) {\n    v.head = p;\n    update();\n}\nv.fillColor = \"red\";\n\nvar Av = new Vector([1,0]);\nAv.fillColor = \"gray\";\ncanvas.addPlotable(Av);\ncanvas.addPlotable(v);\ncanvas.addMoveable(v);\n\nupdate();\n\n\n"
  },
  {
    "path": "examples/sample-article/media/code/d3/collision.js",
    "content": "/* Mike Bostock, GPL license, 2018-04-25 */\n/* https://bl.ocks.org/mbostock/3231298  */\n\nvar width = 480,\n    height = 480;\n\nvar nodes = d3.range(200).map(function() { return {radius: Math.random() * 12 + 4}; }),\n    root = nodes[0],\n    color = d3.scale.category10();\n\nroot.radius = 0;\nroot.fixed = true;\n\nvar force = d3.layout.force()\n    .gravity(0.05)\n    .charge(function(d, i) { return i ? 0 : -2000; })\n    .nodes(nodes)\n    .size([width, height]);\n\nforce.start();\n\nvar svg = d3.select(\"#d3-collision\").append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height)\n    .attr(\"display\", \"block\");\n\nsvg.selectAll(\"circle\")\n    .data(nodes.slice(1))\n  .enter().append(\"circle\")\n    .attr(\"r\", function(d) { return d.radius; })\n    .style(\"fill\", function(d, i) { return color(i % 3); });\n\nforce.on(\"tick\", function(e) {\n  var q = d3.geom.quadtree(nodes),\n      i = 0,\n      n = nodes.length;\n\n  while (++i < n) q.visit(collide(nodes[i]));\n\n  svg.selectAll(\"circle\")\n      .attr(\"cx\", function(d) { return d.x; })\n      .attr(\"cy\", function(d) { return d.y; });\n});\n\nsvg.on(\"mousemove\", function() {\n  var p1 = d3.mouse(this);\n  root.px = p1[0];\n  root.py = p1[1];\n  force.resume();\n});\n\nfunction collide(node) {\n  var r = node.radius + 16,\n      nx1 = node.x - r,\n      nx2 = node.x + r,\n      ny1 = node.y - r,\n      ny2 = node.y + r;\n  return function(quad, x1, y1, x2, y2) {\n    if (quad.point && (quad.point !== node)) {\n      var x = node.x - quad.point.x,\n          y = node.y - quad.point.y,\n          l = Math.sqrt(x * x + y * y),\n          r = node.radius + quad.point.radius;\n      if (l < r) {\n        l = (l - r) / l * .5;\n        node.x -= x *= l;\n        node.y -= y *= l;\n        quad.point.x += x;\n        quad.point.y += y;\n      }\n    }\n    return x1 > nx2 || x2 < nx1 || y1 > ny2 || y2 < ny1;\n  };\n}\n"
  },
  {
    "path": "examples/sample-article/media/code/d3/graph-layout.js",
    "content": "\n/* shimizu, GPL License, 2018-04-25                                  */\n/* https://bl.ocks.org/shimizu/raw/e6209de87cdddde38dadbb746feaf3a3/ */\n\n!(function(){\n    \"use strict\"\n\n    var width,height\n    var chartWidth, chartHeight\n    var margin\n    var svg = d3.select(\"#d3-graph-layout\").append(\"svg\")\n    var chartLayer = svg.append(\"g\").classed(\"chartLayer\", true)\n\n    main()\n\n    function main() {\n        setSize(data)\n\n        // Add more data when we have a larger canvas\n        var range = Math.pow(width, 1.3) / 50\n        var data = {\n            nodes:d3.range(0, range).map(function(d){ return {label: \"l\"+d ,r:~~d3.randomUniform(4, 16)()}}),\n            links:d3.range(0, range).map(function(){ return {source:~~d3.randomUniform(range)(), target:~~d3.randomUniform(range)()} })        \n        }\n\n        drawChart(data)\n    }\n\n    function setSize(data) {\n        // boundingRect provides true decimal values for dimensions.\n        // clientWidth/clientHeight are integer values that may have been rounded up\n        let boundingRect = document.querySelector(\"#d3-graph-layout\").getBoundingClientRect()\n        width = Math.floor(boundingRect.width)\n        height = Math.floor(boundingRect.height)\n\n        margin = {top:0, left:0, bottom:0, right:0 }\n\n\n        chartWidth = width - (margin.left+margin.right)\n        chartHeight = height - (margin.top+margin.bottom)\n\n        svg.attr(\"width\", width).attr(\"height\", height).attr(\"display\", \"block\")\n\n\n        chartLayer\n            .attr(\"width\", chartWidth)\n            .attr(\"height\", chartHeight)\n            .attr(\"transform\", \"translate(\"+[margin.left, margin.top]+\")\")\n\n\n    }\n\n    function drawChart(data) {\n\n        var simulation = d3.forceSimulation()\n            .force(\"link\", d3.forceLink().id(function(d) { return d.index }))\n            .force(\"collide\",d3.forceCollide( function(d){return d.r + 8 }).iterations(16) )\n            .force(\"charge\", d3.forceManyBody())\n            .force(\"center\", d3.forceCenter(chartWidth / 2, chartHeight / 2))\n            .force(\"y\", d3.forceY(0))\n            .force(\"x\", d3.forceX(0))\n\n        var link = svg.append(\"g\")\n            .attr(\"class\", \"links\")\n            .selectAll(\"line\")\n            .data(data.links)\n            .enter()\n            .append(\"line\")\n            .attr(\"stroke\", \"black\")\n\n        var node = svg.append(\"g\")\n            .attr(\"class\", \"nodes\")\n            .selectAll(\"circle\")\n            .data(data.nodes)\n            .enter().append(\"circle\")\n            .attr(\"r\", function(d){  return d.r })\n            .call(d3.drag()\n                .on(\"start\", dragstarted)\n                .on(\"drag\", dragged)\n                .on(\"end\", dragended));\n\n\n        var ticked = function() {\n            link\n                .attr(\"x1\", function(d) { return d.source.x; })\n                .attr(\"y1\", function(d) { return d.source.y; })\n                .attr(\"x2\", function(d) { return d.target.x; })\n                .attr(\"y2\", function(d) { return d.target.y; });\n\n            node\n                .attr(\"cx\", function(d) { return d.x; })\n                .attr(\"cy\", function(d) { return d.y; });\n        }\n\n        simulation\n            .nodes(data.nodes)\n            .on(\"tick\", ticked);\n\n        simulation.force(\"link\")\n            .links(data.links);\n\n\n\n        function dragstarted(d) {\n            if (!d3.event.active) simulation.alphaTarget(0.3).restart();\n            d.fx = d.x;\n            d.fy = d.y;\n        }\n\n        function dragged(d) {\n            d.fx = d3.event.x;\n            d.fy = d3.event.y;\n        }\n\n        function dragended(d) {\n            if (!d3.event.active) simulation.alphaTarget(0);\n            d.fx = null;\n            d.fy = null;\n        }\n\n    }\n}());\n"
  },
  {
    "path": "examples/sample-article/media/code/d3/mention_network.json",
    "content": "{\n    \"nodes\": [\n        {\n            \"twitter\": \"_Adam_Price\",\n            \"name\": \"Adam Price\",\n            \"id\": \"_Adam_Price\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"AlunDaviesAM\",\n            \"name\": \"Alun Davies\",\n            \"id\": \"AlunDaviesAM\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"AndrewRTDavies\",\n            \"name\": \"Andrew RT Davies\",\n            \"id\": \"AndrewRTDavies\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"AngelaBurnsAM\",\n            \"name\": \"Angela Burns\",\n            \"id\": \"AngelaBurnsAM\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"ann_jonesam\",\n            \"name\": \"Ann Jones\",\n            \"id\": \"ann_jonesam\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"bethanjenkins\",\n            \"name\": \"Bethan Jenkins\",\n            \"id\": \"bethanjenkins\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"Carl4AandD\",\n            \"name\": \"Carl Sargeant\",\n            \"id\": \"Carl4AandD\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"carolineUKIP\",\n            \"name\": \"Caroline Jones\",\n            \"id\": \"carolineUKIP\",\n            \"colour\": \"#70147a\",\n            \"party\": \"UKIP\"\n        },\n        {\n            \"twitter\": \"AMCarwyn\",\n            \"name\": \"Carwyn Jones\",\n            \"id\": \"AMCarwyn\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"ElisThomasD\",\n            \"name\": \"Dafydd Elis-Thomas\",\n            \"id\": \"ElisThomasD\",\n            \"colour\": \"#eeeeee\",\n            \"party\": \"Independent\"\n        },\n        {\n            \"twitter\": \"DaiLloydAM\",\n            \"name\": \"Dai Lloyd\",\n            \"id\": \"DaiLloydAM\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"DarrenMillarAM\",\n            \"name\": \"Darren Millar\",\n            \"id\": \"DarrenMillarAM\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"\",\n            \"name\": \"David Melding\",\n            \"id\": \"\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"DavidReesAM\",\n            \"name\": \"David Rees\",\n            \"id\": \"DavidReesAM\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"DavidRowlandsAM\",\n            \"name\": \"David Rowlands\",\n            \"id\": \"DavidRowlandsAM\",\n            \"colour\": \"#70147a\",\n            \"party\": \"UKIP\"\n        },\n        {\n            \"twitter\": \"Dawn_Bowden\",\n            \"name\": \"Dawn Bowden\",\n            \"id\": \"Dawn_Bowden\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"ElinCeredigion\",\n            \"name\": \"Elin Jones\",\n            \"id\": \"ElinCeredigion\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"Eluned_Morgan\",\n            \"name\": \"Eluned Morgan\",\n            \"id\": \"Eluned_Morgan\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"GarethBennettAM\",\n            \"name\": \"Gareth Bennett\",\n            \"id\": \"GarethBennettAM\",\n            \"colour\": \"#70147a\",\n            \"party\": \"UKIP\"\n        },\n        {\n            \"twitter\": \"hannahblythyn\",\n            \"name\": \"Hannah Blythyn\",\n            \"id\": \"hannahblythyn\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"hef4caerphilly\",\n            \"name\": \"Hefin David\",\n            \"id\": \"hef4caerphilly\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"huw4ogmore\",\n            \"name\": \"Huw Irranca-Davies\",\n            \"id\": \"huw4ogmore\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JaneHutt\",\n            \"name\": \"Jane Hutt\",\n            \"id\": \"JaneHutt\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JFinchSaunders\",\n            \"name\": \"Janet Finch-Saunders\",\n            \"id\": \"JFinchSaunders\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"JBryantWales\",\n            \"name\": \"Jayne Bryant\",\n            \"id\": \"JBryantWales\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JennyRathbone\",\n            \"name\": \"Jenny Rathbone\",\n            \"id\": \"JennyRathbone\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"Jeremy_Miles\",\n            \"name\": \"Jeremy Miles\",\n            \"id\": \"Jeremy_Miles\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JGriffithsLab\",\n            \"name\": \"John Griffiths\",\n            \"id\": \"JGriffithsLab\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JoyceWatsonam\",\n            \"name\": \"Joyce Watson\",\n            \"id\": \"JoyceWatsonam\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JulieJamesAM\",\n            \"name\": \"Julie James\",\n            \"id\": \"JulieJamesAM\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"JulieMorganLAB\",\n            \"name\": \"Julie Morgan\",\n            \"id\": \"JulieMorganLAB\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"KenSkatesAM\",\n            \"name\": \"Ken Skates\",\n            \"id\": \"KenSkatesAM\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"Kirsty_Williams\",\n            \"name\": \"Kirsty Williams\",\n            \"id\": \"Kirsty_Williams\",\n            \"colour\": \"#fdbb30\",\n            \"party\": \"Liberal Democrat\"\n        },\n        {\n            \"twitter\": \"LeanneWood\",\n            \"name\": \"Leanne Wood\",\n            \"id\": \"LeanneWood\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"Amanwy\",\n            \"name\": \"Lee Waters\",\n            \"id\": \"Amanwy\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"lesley4wrexham\",\n            \"name\": \"Lesley Griffiths\",\n            \"id\": \"lesley4wrexham\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"LlyrGruffydd\",\n            \"name\": \"Llyr Huws Gruffydd\",\n            \"id\": \"LlyrGruffydd\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"lynne_neagle\",\n            \"name\": \"Lynne Neagle\",\n            \"id\": \"lynne_neagle\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"MarkDrakeford\",\n            \"name\": \"Mark Drakeford\",\n            \"id\": \"MarkDrakeford\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"MarkIsherwoodAM\",\n            \"name\": \"Mark Isherwood\",\n            \"id\": \"MarkIsherwoodAM\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"MarkReckless\",\n            \"name\": \"Mark Reckless\",\n            \"id\": \"MarkReckless\",\n            \"colour\": \"#70147a\",\n            \"party\": \"UKIP\"\n        },\n        {\n            \"twitter\": \"MishBrownAM\",\n            \"name\": \"Michelle Brown\",\n            \"id\": \"MishBrownAM\",\n            \"colour\": \"#70147a\",\n            \"party\": \"UKIP\"\n        },\n        {\n            \"twitter\": \"MickAntoniw1\",\n            \"name\": \"Mick Antoniw\",\n            \"id\": \"MickAntoniw1\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"MikeHedgesAM\",\n            \"name\": \"Mike Hedges\",\n            \"id\": \"MikeHedgesAM\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"MohammadAsghar\",\n            \"name\": \"Mohammad Asghar\",\n            \"id\": \"MohammadAsghar\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"NathanGillMEP\",\n            \"name\": \"Nathan Gill\",\n            \"id\": \"NathanGillMEP\",\n            \"colour\": \"#eeeeee\",\n            \"party\": \"Independent\"\n        },\n        {\n            \"twitter\": \"NeilUKIP\",\n            \"name\": \"Neil Hamilton\",\n            \"id\": \"NeilUKIP\",\n            \"colour\": \"#70147a\",\n            \"party\": \"UKIP\"\n        },\n        {\n            \"twitter\": \"neiljmcevoy\",\n            \"name\": \"Neil McEvoy\",\n            \"id\": \"neiljmcevoy\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"NickRamsayAM\",\n            \"name\": \"Nick Ramsay\",\n            \"id\": \"NickRamsayAM\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"\",\n            \"name\": \"Paul Davies\",\n            \"id\": \"\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"RebeccaEvansAM\",\n            \"name\": \"Rebecca Evans\",\n            \"id\": \"RebeccaEvansAM\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"rhi4islwyn\",\n            \"name\": \"Rhianon Passmore\",\n            \"id\": \"rhi4islwyn\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"RhunapIorwerth\",\n            \"name\": \"Rhun Ap Iorwerth\",\n            \"id\": \"RhunapIorwerth\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"russ_george\",\n            \"name\": \"Russell George\",\n            \"id\": \"russ_george\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"siangwenfelin\",\n            \"name\": \"Sian Gwenllian\",\n            \"id\": \"siangwenfelin\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"SimonThomasAC\",\n            \"name\": \"Simon Thomas\",\n            \"id\": \"SimonThomasAC\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"steffanlewis\",\n            \"name\": \"Steffan Lewis\",\n            \"id\": \"steffanlewis\",\n            \"colour\": \"#008142\",\n            \"party\": \"Plaid Cymru\"\n        },\n        {\n            \"twitter\": \"suzydaviesam\",\n            \"name\": \"Suzy Davies\",\n            \"id\": \"suzydaviesam\",\n            \"colour\": \"#0087DC\",\n            \"party\": \"Conservative\"\n        },\n        {\n            \"twitter\": \"vaughangething\",\n            \"name\": \"Vaughan Gething\",\n            \"id\": \"vaughangething\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        },\n        {\n            \"twitter\": \"VikkiHowells\",\n            \"name\": \"Vikki Howells\",\n            \"id\": \"VikkiHowells\",\n            \"colour\": \"#dc241f\",\n            \"party\": \"Labour\"\n        }\n    ],\n    \"links\": [\n        {\n            \"value\": 34,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"AMCarwyn\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AlunDaviesAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"Amanwy\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"Amanwy\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Amanwy\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Amanwy\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Amanwy\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"Amanwy\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Amanwy\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 48,\n            \"source\": \"Amanwy\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"Amanwy\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"Amanwy\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Amanwy\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Amanwy\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"Amanwy\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"Amanwy\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"Amanwy\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Amanwy\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"Amanwy\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"Amanwy\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 30,\n            \"source\": \"Amanwy\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Amanwy\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"Amanwy\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"Amanwy\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 33,\n            \"source\": \"Amanwy\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Amanwy\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 35,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 48,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 30,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"MohammadAsghar\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 19,\n            \"source\": \"AndrewRTDavies\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 59,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 47,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"MohammadAsghar\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 29,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"AngelaBurnsAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Carl4AandD\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Carl4AandD\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"Carl4AandD\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Carl4AandD\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 36,\n            \"source\": \"Carl4AandD\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"Carl4AandD\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"DaiLloydAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"DaiLloydAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"DaiLloydAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 72,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 36,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"MohammadAsghar\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"DarrenMillarAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 26,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 56,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 19,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 29,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 42,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"DavidReesAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 39,\n            \"source\": \"DavidRowlandsAM\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 88,\n            \"source\": \"DavidRowlandsAM\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"DavidRowlandsAM\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"DavidRowlandsAM\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"Dawn_Bowden\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 82,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 46,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 32,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"ElinCeredigion\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"ElisThomasD\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"ElisThomasD\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ElisThomasD\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ElisThomasD\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 35,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Eluned_Morgan\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"GarethBennettAM\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"GarethBennettAM\",\n            \"target\": \"MishBrownAM\"\n        },\n        {\n            \"value\": 19,\n            \"source\": \"GarethBennettAM\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"GarethBennettAM\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"JBryantWales\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JBryantWales\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 40,\n            \"source\": \"JBryantWales\",\n            \"target\": \"JGriffithsLab\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"JBryantWales\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JBryantWales\",\n            \"target\": \"MohammadAsghar\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JBryantWales\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JBryantWales\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"JBryantWales\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"JBryantWales\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"JBryantWales\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 174,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 55,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"GarethBennettAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"JGriffithsLab\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 56,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"MohammadAsghar\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 26,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"JFinchSaunders\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 67,\n            \"source\": \"JGriffithsLab\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JaneHutt\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"JaneHutt\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"JaneHutt\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"JaneHutt\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JaneHutt\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"JaneHutt\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 36,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"JennyRathbone\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 35,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 87,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 30,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 39,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 50,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 28,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"Jeremy_Miles\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"JoyceWatsonam\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"JoyceWatsonam\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JoyceWatsonam\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JoyceWatsonam\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JoyceWatsonam\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JoyceWatsonam\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 61,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"Carl4AandD\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 37,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 57,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 32,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 44,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"JulieJamesAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"JulieMorganLAB\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 31,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 59,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 31,\n            \"source\": \"KenSkatesAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"Kirsty_Williams\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"Kirsty_Williams\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"Kirsty_Williams\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"LeanneWood\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"LeanneWood\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"LeanneWood\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"LeanneWood\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"LeanneWood\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"LeanneWood\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 37,\n            \"source\": \"LeanneWood\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 34,\n            \"source\": \"LeanneWood\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 74,\n            \"source\": \"LeanneWood\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"LeanneWood\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"LeanneWood\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 37,\n            \"source\": \"LeanneWood\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"LeanneWood\",\n            \"target\": \"steffanlewis\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 47,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 157,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 44,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 54,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"LlyrGruffydd\",\n            \"target\": \"steffanlewis\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MarkDrakeford\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 154,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 128,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 57,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"MarkIsherwoodAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 26,\n            \"source\": \"MarkReckless\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MarkReckless\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"MarkReckless\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MarkReckless\",\n            \"target\": \"DavidRowlandsAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MarkReckless\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MarkReckless\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MarkReckless\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"MarkReckless\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MarkReckless\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MarkReckless\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 47,\n            \"source\": \"MarkReckless\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"MarkReckless\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MarkReckless\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MarkReckless\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"MarkReckless\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MarkReckless\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MarkReckless\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 29,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 31,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"MickAntoniw1\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 53,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"MikeHedgesAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"MishBrownAM\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 19,\n            \"source\": \"MishBrownAM\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"MishBrownAM\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"MishBrownAM\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 37,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"MohammadAsghar\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"NathanGillMEP\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"NathanGillMEP\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 45,\n            \"source\": \"NathanGillMEP\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"NathanGillMEP\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"NathanGillMEP\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"DavidRowlandsAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"GarethBennettAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"MishBrownAM\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"carolineUKIP\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NeilUKIP\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 29,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 31,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"MohammadAsghar\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"NickRamsayAM\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 26,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 33,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 26,\n            \"source\": \"RebeccaEvansAM\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 68,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 36,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"RhunapIorwerth\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 31,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 51,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 19,\n            \"source\": \"SimonThomasAC\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 30,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"VikkiHowells\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 71,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 30,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"Kirsty_Williams\"\n        },\n        {\n            \"value\": 102,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 42,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 32,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"_Adam_Price\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 59,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"Carl4AandD\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JFinchSaunders\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 28,\n            \"source\": \"ann_jonesam\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 29,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 47,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"GarethBennettAM\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 41,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 25,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"bethanjenkins\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"DavidRowlandsAM\"\n        },\n        {\n            \"value\": 23,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"GarethBennettAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 36,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"MishBrownAM\"\n        },\n        {\n            \"value\": 77,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"NathanGillMEP\"\n        },\n        {\n            \"value\": 41,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"carolineUKIP\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"Carl4AandD\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 20,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 40,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"hannahblythyn\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 40,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 21,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 32,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"rhi4islwyn\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"hef4caerphilly\",\n            \"target\": \"steffanlewis\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"huw4ogmore\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 28,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"Carl4AandD\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"lesley4wrexham\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"lynne_neagle\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 41,\n            \"source\": \"neiljmcevoy\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"neiljmcevoy\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"neiljmcevoy\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"neiljmcevoy\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"MarkReckless\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"siangwenfelin\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"rhi4islwyn\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"russ_george\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 48,\n            \"source\": \"russ_george\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"russ_george\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 26,\n            \"source\": \"russ_george\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"russ_george\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"russ_george\",\n            \"target\": \"ElisThomasD\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"russ_george\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"russ_george\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"russ_george\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"russ_george\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"russ_george\",\n            \"target\": \"suzydaviesam\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"JGriffithsLab\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 150,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 24,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 43,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"RhunapIorwerth\"\n        },\n        {\n            \"value\": 37,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 48,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 15,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"neiljmcevoy\"\n        },\n        {\n            \"value\": 19,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"steffanlewis\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"siangwenfelin\",\n            \"target\": \"vaughangething\"\n        },\n        {\n            \"value\": 32,\n            \"source\": \"steffanlewis\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 61,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"AndrewRTDavies\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"AngelaBurnsAM\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"DaiLloydAM\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"DarrenMillarAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"ElinCeredigion\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 17,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"LeanneWood\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"LlyrGruffydd\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"MarkIsherwoodAM\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"MikeHedgesAM\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"NeilUKIP\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"NickRamsayAM\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"SimonThomasAC\"\n        },\n        {\n            \"value\": 11,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"_Adam_Price\"\n        },\n        {\n            \"value\": 58,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"bethanjenkins\"\n        },\n        {\n            \"value\": 10,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"russ_george\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"suzydaviesam\",\n            \"target\": \"steffanlewis\"\n        },\n        {\n            \"value\": 18,\n            \"source\": \"vaughangething\",\n            \"target\": \"AMCarwyn\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"vaughangething\",\n            \"target\": \"AlunDaviesAM\"\n        },\n        {\n            \"value\": 34,\n            \"source\": \"vaughangething\",\n            \"target\": \"Amanwy\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"vaughangething\",\n            \"target\": \"DavidReesAM\"\n        },\n        {\n            \"value\": 27,\n            \"source\": \"vaughangething\",\n            \"target\": \"Dawn_Bowden\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"vaughangething\",\n            \"target\": \"Eluned_Morgan\"\n        },\n        {\n            \"value\": 30,\n            \"source\": \"vaughangething\",\n            \"target\": \"JBryantWales\"\n        },\n        {\n            \"value\": 44,\n            \"source\": \"vaughangething\",\n            \"target\": \"JaneHutt\"\n        },\n        {\n            \"value\": 22,\n            \"source\": \"vaughangething\",\n            \"target\": \"JennyRathbone\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"vaughangething\",\n            \"target\": \"Jeremy_Miles\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"vaughangething\",\n            \"target\": \"JoyceWatsonam\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"vaughangething\",\n            \"target\": \"JulieJamesAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"vaughangething\",\n            \"target\": \"JulieMorganLAB\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"vaughangething\",\n            \"target\": \"KenSkatesAM\"\n        },\n        {\n            \"value\": 8,\n            \"source\": \"vaughangething\",\n            \"target\": \"MarkDrakeford\"\n        },\n        {\n            \"value\": 9,\n            \"source\": \"vaughangething\",\n            \"target\": \"MickAntoniw1\"\n        },\n        {\n            \"value\": 16,\n            \"source\": \"vaughangething\",\n            \"target\": \"RebeccaEvansAM\"\n        },\n        {\n            \"value\": 12,\n            \"source\": \"vaughangething\",\n            \"target\": \"VikkiHowells\"\n        },\n        {\n            \"value\": 14,\n            \"source\": \"vaughangething\",\n            \"target\": \"ann_jonesam\"\n        },\n        {\n            \"value\": 13,\n            \"source\": \"vaughangething\",\n            \"target\": \"hannahblythyn\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"vaughangething\",\n            \"target\": \"hef4caerphilly\"\n        },\n        {\n            \"value\": 7,\n            \"source\": \"vaughangething\",\n            \"target\": \"huw4ogmore\"\n        },\n        {\n            \"value\": 6,\n            \"source\": \"vaughangething\",\n            \"target\": \"lesley4wrexham\"\n        },\n        {\n            \"value\": 5,\n            \"source\": \"vaughangething\",\n            \"target\": \"lynne_neagle\"\n        }\n    ]\n}\n"
  },
  {
    "path": "examples/sample-article/media/code/d3/welsh.css",
    "content": "/* Michael Chorley, MIT License, 2018-04-25                      */\n/* https://bl.ocks.org/martinjc/7aa53c7bf3e411238ac8aef280bd6581 */\n\ntext {\n  font-family: \"HelveticaNeue-Light\", \"Helvetica Neue Light\", \"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", sans-serif;\n}\n\n.link {\n  fill: none;\n  stroke: #ddd;\n  stroke-width: 1px;\n}\n\n.node {\n  stroke: #000;\n  stroke-width: 1px;\n}\n"
  },
  {
    "path": "examples/sample-article/media/code/d3/welsh.js",
    "content": "/* Michael Chorley, MIT License, 2018-04-25                      */\n/* https://bl.ocks.org/martinjc/7aa53c7bf3e411238ac8aef280bd6581 */\n\n// dimensions\nvar width = 600;\nvar height = 1200;\n\nvar margin = {\n    top: 20,\n    bottom: 10,\n    left: 5,\n    right: 120,\n}\n\n// create an svg to draw in\nvar svg = d3.select(\"#d3-welsh\")\n    .append(\"svg\")\n    .attr(\"width\", width)\n    .attr(\"height\", height)\n    .append('g')\n    .attr('transform', 'translate(' + margin.top + ',' + margin.left + ')');\n\nwidth = width - margin.left - margin.right;\nheight = height - margin.top - margin.bottom;\n\nvar simulation = d3.forceSimulation()\n    // pull nodes together based on the links between them\n    .force(\"link\", d3.forceLink().id(function(d) {\n        return d.id;\n    })\n    .strength(0.025))\n    // push nodes apart to space them out\n    .force(\"charge\", d3.forceManyBody().strength(-300))\n    // add some collision detection so they don't overlap\n    .force(\"collide\", d3.forceCollide().radius(16))\n    // and draw them around the centre of the space\n    .force(\"center\", d3.forceCenter(width / 2, height / 2));\n\n// load the graph\n// maybe this file belongs in the data directory?\nd3.json(\"external/code/d3/mention_network.json\", function(error, graph) {\n    // set the nodes\n    var nodes = graph.nodes;\n    // links between nodes\n    var links = graph.links;\n    \n    // add the curved links to our graphic\n    var link = svg.selectAll(\".link\")\n        .data(links)\n        .enter()\n        .append(\"path\")\n        .attr(\"class\", \"link\")\n        .attr('stroke', function(d){\n            return \"#ddd\";\n        });\n\n    // add the nodes to the graphic\n    var node = svg.selectAll(\".node\")\n        .data(nodes)\n        .enter().append(\"g\")\n\n    // a circle to represent the node\n    node.append(\"circle\")\n        .attr(\"class\", \"node\")\n        .attr(\"r\", 8)\n        .attr(\"fill\", function(d) {\n            return d.colour;\n        })\n        .on(\"mouseover\", mouseOver(.2))\n        .on(\"mouseout\", mouseOut);\n\n    // hover text for the node\n    node.append(\"title\")\n        .text(function(d) {\n            return d.twitter;\n        });\n\n    // add a label to each node\n    node.append(\"text\")\n        .attr(\"dx\", 12)\n        .attr(\"dy\", \".35em\")\n        .text(function(d) {\n            return d.name;\n        })\n        .style(\"stroke\", \"black\")\n        .style(\"stroke-width\", 0.5)\n        .style(\"fill\", function(d) {\n            return d.colour;\n        });\n\n    // add the nodes to the simulation and\n    // tell it what to do on each tick\n    simulation\n        .nodes(nodes)\n        .on(\"tick\", ticked);\n\n    // add the links to the simulation\n    simulation\n        .force(\"link\")\n        .links(links);\n\n    // on each tick, update node and link positions\n    function ticked() {\n        link.attr(\"d\", positionLink);\n        node.attr(\"transform\", positionNode);\n    }\n\n    // links are drawn as curved paths between nodes,\n    // through the intermediate nodes\n    function positionLink(d) {\n        var offset = 30;\n\n        var midpoint_x = (d.source.x + d.target.x) / 2;\n        var midpoint_y = (d.source.y + d.target.y) / 2;\n\n        var dx = (d.target.x - d.source.x);\n        var dy = (d.target.y - d.source.y);\n\n        var normalise = Math.sqrt((dx * dx) + (dy * dy));\n\n        var offSetX = midpoint_x + offset*(dy/normalise);\n        var offSetY = midpoint_y - offset*(dx/normalise);\n\n        return \"M\" + d.source.x + \",\" + d.source.y +\n            \"S\" + offSetX + \",\" + offSetY +\n            \" \" + d.target.x + \",\" + d.target.y;\n    }\n\n    // move the node based on forces calculations\n    function positionNode(d) {\n        // keep the node within the boundaries of the svg\n        if (d.x < 0) {\n            d.x = 0\n        };\n        if (d.y < 0) {\n            d.y = 0\n        };\n        if (d.x > width) {\n            d.x = width\n        };\n        if (d.y > height) {\n            d.y = height\n        };\n        return \"translate(\" + d.x + \",\" + d.y + \")\";\n    }\n\n    // build a dictionary of nodes that are linked\n    var linkedByIndex = {};\n    links.forEach(function(d) {\n        linkedByIndex[d.source.index + \",\" + d.target.index] = 1;\n    });\n\n    // check the dictionary to see if nodes are linked\n    function isConnected(a, b) {\n        return linkedByIndex[a.index + \",\" + b.index] || linkedByIndex[b.index + \",\" + a.index] || a.index == b.index;\n    }\n\n    // fade nodes on hover\n    function mouseOver(opacity) {\n        return function(d) {\n            // check all other nodes to see if they're connected\n            // to this one. if so, keep the opacity at 1, otherwise\n            // fade\n            node.style(\"stroke-opacity\", function(o) {\n                thisOpacity = isConnected(d, o) ? 1 : opacity;\n                return thisOpacity;\n            });\n            node.style(\"fill-opacity\", function(o) {\n                thisOpacity = isConnected(d, o) ? 1 : opacity;\n                return thisOpacity;\n            });\n            // also style link accordingly\n            link.style(\"stroke-opacity\", function(o) {\n                return o.source === d || o.target === d ? 1 : opacity;\n            });\n            link.style(\"stroke\", function(o){\n                return o.source === d || o.target === d ? o.source.colour : \"#ddd\";\n            });\n        };\n    }\n\n    function mouseOut() {\n        node.style(\"stroke-opacity\", 1);\n        node.style(\"fill-opacity\", 1);\n        link.style(\"stroke-opacity\", 1);\n        link.style(\"stroke\", \"#ddd\");\n    }\n\n});\n"
  },
  {
    "path": "examples/sample-article/media/code/haynes/3d-direction-vector.js",
    "content": "var listeners = function(ggb) {\n\n    const tbody1 = document.getElementById('ggb_2__17_table1').getElementsByTagName('tbody')[0];\n    const a_to_b = document.getElementById('a_to_b');  // buttons\n    const b_to_a = document.getElementById('b_to_a');\n\n// update html (slate) when diagram changes\nfunction coordinates(){\n    return [[], xyz('A'), xyz('B')]\n}\n\nfunction cell(r,c) {\n    tbody1.getElementsByTagName('tr')[r].getElementsByTagName('td')[c].innerHTML= coordinates()[r][c];\n};\n\nfunction xyz(obj){\n   return [[], ggb.getXcoord(obj).toFixed(0), ggb.getYcoord(obj).toFixed(0),  ggb.getZcoord(obj).toFixed(0)]\n};\n\n\nvar updateSlate = function (){\n    for (let i = 1; i < 3; i++) {\n        for(let j=1; j < 4; j++)\n        cell(i,j)\n      }\n\n  // GGB booleans decide what to show, only one allowed at a time.;\n  info = document.getElementById('info');\n   if (ggb.getValue('showAB')==true) {\n        info.innerHTML = \"\\\\[\"  +  ggb.getValueString('textAB') + \"\\\\] \\\\[\"  +  ggb.getValueString('textABhat') + \"\\\\]\" ;\n  }\n\n  if (ggb.getValue('showBA')==true) {\n       info.innerHTML =  \"\\\\[ \" +  ggb.getValueString('textBA') +  \"\\\\] \\\\[\"  +  ggb.getValueString('textBAhat') + \"\\\\]\";\n  }\n\n  if (window.MathJax) {\n     MathJax.typesetPromise([info]).then(() => {});\n  }\n}\n\na_to_b.addEventListener('click',function () { ggb.evalCommand('RunClickScript(atob)' )});\nb_to_a.addEventListener('click',function () { ggb.evalCommand('RunClickScript(btoa)' )});\nggb.registerUpdateListener(updateSlate);\n\nupdateSlate();\ntbody1.getElementsByTagName('tr')[1].style.color='red';\ntbody1.getElementsByTagName('tr')[2].style.color='blue';\n\n}\n"
  },
  {
    "path": "examples/sample-article/media/code/jsxgraph/archimedian.js",
    "content": "/* http://jsxgraph.uni-bayreuth.de/wiki/index.php/Archimedean_spiral */\n/* Accessed January 2017                                             */\n\nvar board = JXG.JSXGraph.initBoard('jsxgraph-archimedian-spiral', {boundingbox: [-10, 10, 10, -10]});\nvar a = board.create('slider', [[1,8],[5,8],[0,1,4]], {name:'a'});\nvar b = board.create('slider', [[1,9],[5,9],[0,0.25,4]], {name:'b'});\n\nvar c = board.create('curve', \n                    [function(phi){ return a.Value()+b.Value()*phi; }, [0, 0], 0, 8*Math.PI],\n                    {curveType:'polar', strokewidth:4}\n);\nvar g = board.create('glider',  [c]);\nvar t = board.create('tangent', [g], {dash:2, strokeColor:'#a612a9'});\nvar n = board.create('normal',  [g], {dash:2, strokeColor:'#a612a9'});\n"
  },
  {
    "path": "examples/sample-article/media/code/jsxgraph/bspline.js",
    "content": "/* https://jsxgraph.uni-bayreuth.de/wiki/index.php/B-splines */\n/* Accessed August 2017                                      */\n\nvar brd = JXG.JSXGraph.initBoard('jsxgraph-bspline',\n{boundingbox:[-4,4,4,-4],keepaspectratio:true,axis:true});\n\nvar p = [], col = 'red';\np.push(brd.create('point',[2,1],{strokeColor:col,fillColor:col}));\np.push(brd.create('point',[0.75,2.5],{strokeColor:col,fillColor:col}));\np.push(brd.create('point',[-0.3,0.3],{strokeColor:col,fillColor:col}));\np.push(brd.create('point',[-3,1],{strokeColor:col,fillColor:col}));\np.push(brd.create('point',[-0.75,-2.5],{strokeColor:col,fillColor:col}));\np.push(brd.create('point',[1.5,-2.8],{strokeColor:col,fillColor:col}));\np.push(brd.create('point',[2,-0.5],{strokeColor:col,fillColor:col}));\n\nvar c = brd.create('curve', JXG.Math.Numerics.bspline(p,4), \n               {strokecolor:'blue', strokeOpacity:0.6, strokeWidth:5});\n\nvar addSegment = function() {\n   brd.suspendUpdate();\n   p.push(brd.create('point',[Math.random()*8-4,Math.random()*8-4],\n           {strokeColor:col,fillColor:col})); \n   brd.unsuspendUpdate();\n};\n\nvar removeSegment = function() {\n   brd.suspendUpdate();\n\n   if (p.length>2) {\n       brd.removeObject(p[p.length-1]);  // remove the last point from the list of objects\n       p.splice(p.length-1,1);           // remove the last point from the point array.\n   }\n   brd.unsuspendUpdate();\n};\n"
  },
  {
    "path": "examples/sample-article/media/code/jsxgraph/cts-not-diff-oscillate.jc",
    "content": "$board.setView([-2,2,2,-2], false);\npoint(0, 0) << id: 'OO',\n             name: 'OO',\n             fixed: true,\n             priv: true,\n             visible: false >>;\npoint(1, 0) << id: 'E1',\n             name: 'E1',\n             fixed: true,\n             priv: true,\n             visible: false >>;\npoint(0, 1) << id: 'E2',\n             name: 'E2',\n             fixed: true,\n             priv: true,\n             visible: false >>;\nxax = axis(OO, E1) << name: 'x' >>;\nyax = axis(OO, E2) << name: 'y' >>;\nxax.visible = false;\nyax.visible = false;\nf = function(x) {\n    return x*sin(1/x);\n};\nplot( function(x) {return f(x);} )\n    << strokeWidth: 2 >>;\nxax.visible = true;\nyax.visible = true;\npoint(0,0) << id: \"P\", size: 2, color: \"black\", label: false >>;\npoint(1,0) << id: \"Q\", size: 5, color: \"red\", label: false >>;\nQ.glide(xax);\npoint( function() { return Q.X(); }, function() { return f(Q.X()); } )\n    << id: \"R\", label: false, size: 2, color: \"black\" >>;\nline(P,R) << color: \"red\", strokeWidth: 1 >>;\n"
  },
  {
    "path": "examples/sample-article/media/code/jsxgraph/fermats-spiral.js",
    "content": "/* https://jsxgraph.uni-bayreuth.de/wiki/index.php/Fermat%27s_spiral */\n/* Accessed August 2017                                              */\n\nvar board = JXG.JSXGraph.initBoard('jsxgraph-fermats-spiral', {boundingbox: [-10, 10, 10, -10]});\nvar aa = board.create('slider', [[1,9], [5,9], [0,1,4]], {name:'a'});\nvar c1 = board.create('curve', \n                      [function(phi){ return  aa.Value()*Math.sqrt(phi); }, [0, 0], 0, 8*Math.PI],\n                      {curveType:'polar', strokewidth:4});\nvar c2 = board.create('curve', \n                      [function(phi){ return -aa.Value()*Math.sqrt(phi); }, [0, 0], 0, 8*Math.PI],\n                      {curveType:'polar', strokewidth:4});\n"
  },
  {
    "path": "examples/sample-article/media/code/jsxgraph/infinity.js",
    "content": "/* http://jsxgraph.uni-bayreuth.de/showcase/infinity.html */\n/* Accessed January 2017                                  */\n\nJXG.Options.renderer = 'canvas';\nvar board = JXG.JSXGraph.initBoard('jsxgraph-infinity', {\n        boundingbox: [-9, 8, 9, -10],\n        keepaspectreatio: true,\n        axis: false,\n        grid: false,\n        shownavigation: false\n    });\n\n// construction\nboard.suspendUpdate();\nvar S = board.create('slider', [[-5,-6],[5,-6],[0,0.85,1]], {\n    name:'Whirl'\n});\nvar hue = board.create('slider', [[-5,-7],[5,-7],[0,20.5,36]], {\n    name:'Colors'\n});\n\nvar points = new Array();\npoints[0] = board.create('point',[5, 5], {name:' '});\npoints[1] = board.create('point',[-5, 5], {name:' '});\npoints[2] = board.create('point',[-5, -5], {name:' '});\npoints[3] = board.create('point',[5, -5], {name:' '});\n\nfunction quadrangle(pt, n) {\n    var col;\n    var arr = new Array();\n    for(var i = 0; i < 4; i++) {\n        arr[i] = board.create('point',\n            [function(t) {\n                return function () {var x = pt[t].X();\n                        var x1 = pt[(t+1)%4].X();\n                        var s = S.Value();\n                        return x+(x1-x)*s;\n                 }}(i),\n            function(t) {\n                return function () {var y = pt[t].Y();\n                        var y1 = pt[(t+1)%4].Y();\n                        var s = S.Value();\n                        return y+(y1-y)*s;\n                 }}(i)\n            ],\n        {size:1, name: \"\", withLabel: false, visible: false});\n    }\n    col =  function(){return JXG.hsv2rgb(hue.Value()*n,0.7,0.9);};\n    board.create('polygon',pt, {fillColor:col});\n    if(n>0)\n        quadrangle(arr, --n);\n}\nquadrangle(points,30);\n\nboard.unsuspendUpdate();\n"
  },
  {
    "path": "examples/sample-article/media/code/jsxgraph/piecewise.js",
    "content": "/* From Lila Roberts (?), August 2017 */\n\nvar board_p3 = JXG.JSXGraph.initBoard('box_p3', {boundingbox: [-6, 8, 4, -8], axis: true,grid:true,showCopyright:false,showNavigation:false});\n\nvar board2_p3 = JXG.JSXGraph.initBoard('box2_p3', {boundingbox: [-6, 8, 4, -8],axis:true,grid:true,showCopyright:false,showNavigation:false});\nvar board3_p3 = JXG.JSXGraph.initBoard('box3_p3', {boundingbox: [-6, 8, 4, -8],axis:true,grid:true,showCopyright:false,showNavigation:false});\nboard_p3.renderer.container.style.backgroundColor = '#ffcc99';          // background color board\nboard2_p3.renderer.container.style.backgroundColor = '#ffcc99';\nboard3_p3.renderer.container.style.backgroundColor = '#ffcc99';\nvar xax1_p3 = board_p3.create('axis', [[0,0], [0,1]]);\nvar yax1_p3 = board_p3.create('axis', [[0,0], [1,0]]);\nvar xax2_p3 = board2_p3.create('axis', [[0,0], [0,1]]);\nvar yax2_p3 = board2_p3.create('axis',[[0,0],[1,0]]);\nvar xax3_p3 = board3_p3.create('axis',[[0,0], [0,1]]);\nvar yax3_p3 = board3_p3.create('axis',[[0,0],[1,0]]);\nboard_p3.create('ticks',[xax1_p3,[-6,-5,-4,-3,-2,-1,0,1,2,3,4]]);\nboard_p3.create('ticks',[yax1_p3,[-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]]);\nboard2_p3.create('axis', [[0,0], [0,1]]);\nboard2_p3.create('ticks',[xax2_p3,[-6,-5,-4,-3,-2,-1,0,1,2,3,4]]);\nboard2_p3.create('ticks',[yax2_p3,[-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]]);\nboard3_p3.create('axis',[[0,0],[0,1]]);\nboard3_p3.create('ticks',[xax3_p3,[-6,-5,-4,-3,-2,-1,0,1,2,3,4]]);\nboard3_p3.create('ticks',[yax3_p3,[-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]]);\n\nvar f_p3 = function(x) {\n    if (x >=-4 && x < 1) {\n        return -(x+2)*(x+2) + 2;\n    }\n    else if (x >= 1 && x <= 3) {\n        return x*x-x;\n    }\n    else {return -1000;\n    }\n};\n\nvar dfun_p3 = function(x) {\n    if (x>=-4 && x<0.7) {\n        return x;\n    }\n    else if (x> 1.3 && x <= 3) {\n        return x;\n    }\n    else {return -1000;\n    }\n};\n\ngraph_p3=board_p3.create('functiongraph',[f_p3,-4,3],{strokeColor:'#000000'});\nvar ep1_p3=board_p3.create('point',[-4,-2],{strokeColor:'#000000',fillColor:'#000000',name:''});\nvar ep2_p3=board_p3.create('point',[1,-7],{strokeColor:'#000000',fillColor:'#FFFFFF',name:''});\nvar ep3_p3=board_p3.create('point',[1,0],{strokeColor:'#000000',fillColor:'#FFFFFF',name:''});\nvar ep4_p3=board_p3.create('point',[3,6],{strokeColor:'#000000',fillColor:'#000000',name:''});\nep1_p3.setAttribute({fixed:true});\nep2_p3.setAttribute({fixed:true});\nep3_p3.setAttribute({fixed:true});\nep4_p3.setAttribute({fixed:true});\n\nvar s_p3 = board_p3.create('slider',[[-4.5,-7],[-1,-7],[-4,-4,3]]);\nvar tracepoint_p3=board_p3.create('point',[function() {return dfun_p3(s_p3.Value());},function() {return f_p3(s_p3.Value());}],{name:''});\n// domain:\nvar b2p1_p3 = board2_p3.create('point', [function(){return tracepoint_p3.X()},0], \n            {fixed: true, trace: true, strokeColor: '#ff0000', name: 'D'});\n// cosine:\nvar b2p2_p3 = board3_p3.create('point', [\n            0, function(){return tracepoint_p3.Y();}], \n            {fixed: true, trace: true, strokeColor: '#0000ff', fillColor:'#0000ff',name: 'R'});\n// Dependencies (only necessary if b2p1 or b2p2 is deleted)\n\nboard_p3.addChild(board2_p3);\nboard_p3.addChild(board3_p3);\n\nfunction clearTraces_p3() {\nJXG.JSXGraph.freeBoard(board_p3);\nJXG.JSXGraph.freeBoard(board2_p3);\nJXG.JSXGraph.freeBoard(board3_p3);\nboard_p3 = JXG.JSXGraph.initBoard('box_p3', {boundingbox: [-6, 8, 4, -8],axis: true,grid:true,showCopyright:false,showNavigation:false});\nboard2_p3 = JXG.JSXGraph.initBoard('box2_p3', {boundingbox: [-6, 8, 4, -8],axis:true,grid:true,showCopyright:false,showNavigation:false});\nboard3_p3 = JXG.JSXGraph.initBoard('box3_p3', {boundingbox: [-6, 8, 4, -8],axis:true,grid:true,showCopyright:false,showNavigation:false});\nxax1_p3 = board_p3.create('axis', [[0,0], [0,1]]);\nyax1_p3 = board_p3.create('axis', [[0,0], [1,0]]);\nxax2_p3 = board2_p3.create('axis', [[0,0], [0,1]]);\nyax2_p3 = board2_p3.create('axis',[[0,0],[1,0]]);\nxax3_p3 = board3_p3.create('axis',[[0,0], [0,1]]);\nyax3_p3 = board3_p3.create('axis',[[0,0],[1,0]]);\nboard_p3.create('ticks',[xax1_p3,[-6,-5,-4,-3,-2,-1,0,1,2,3,4]]);\nboard_p3.create('ticks',[yax1_p3,[-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]]);\nboard2_p3.create('axis', [[0,0], [0,1]]);\nboard2_p3.create('ticks',[xax2_p3,[-6,-5,-4,-3,-2,-1,0,1,2,3,4]]);\nboard2_p3.create('ticks',[yax2_p3,[-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]]);\nboard3_p3.create('axis',[[0,0],[0,1]]);\nboard3_p3.create('ticks',[xax3_p3,[-6,-5,-4,-3,-2,-1,0,1,2,3,4]]);\nboard3_p3.create('ticks',[yax3_p3,[-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8]]);\n\nf_p3 = function(x) {\n    if (x >=-4 && x < 1) {\n        return -(x+2)*(x+2) + 2;\n    }\n    else if (x >= 1 && x <= 3) {\n        return x*x-x;\n    }\n    else {return -1000;\n    }\n};\n\ndfun_p3 = function(x) {\n    if (x>=-4 && x<0.7) {\n        return x;\n    }\n    else if (x> 1.3 && x <= 3) {\n        return x;\n    }\n    else {return -1000;\n    }\n};\n\ngraph_p3=board_p3.create('functiongraph',[f_p3,-4,3],{strokeColor:'#000000'});\nep1_p3=board_p3.create('point',[-4,-2],{strokeColor:'#000000',fillColor:'#000000',name:''});\nep2_p3=board_p3.create('point',[1,-7],{strokeColor:'#000000',fillColor:'#FFFFFF',name:''});\nep3_p3=board_p3.create('point',[1,0],{strokeColor:'#000000',fillColor:'#FFFFFF',name:''});\nep4_p3=board_p3.create('point',[3,6],{strokeColor:'#000000',fillColor:'#000000',name:''});\nep1_p3.setAttribute({fixed:true});\nep2_p3.setAttribute({fixed:true});\nep3_p3.setAttribute({fixed:true});\nep4_p3.setAttribute({fixed:true});\ns_p3 = board_p3.create('slider',[[-4.5,-7],[-1,-7],[-4,-4,3]]);\ntracepoint_p3=board_p3.create('point',[function() {return dfun_p3(s_p3.Value());},function() {return f_p3(s_p3.Value());}],{name:''});// domain:\nb2p1_p3 = board2_p3.create('point', [function(){return tracepoint_p3.X()},0], \n             {fixed: true, trace: true, strokeColor: '#ff0000', name: 'D'});\n// cosine:\nb2p2_p3 = board3_p3.create('point', [\n             0, function(){return tracepoint_p3.Y();}], \n             {fixed: true, trace: true, strokeColor: '#0000ff', fillColor:'#0000ff',name: 'R'});\n// Dependencies (only necessary if b2p1 or b2p2 is deleted)\n\nboard_p3.addChild(board2_p3);\nboard_p3.addChild(board3_p3);\n}\n// Animation\nvar animated = false;\nfunction animate_p3(point, direction, count) {\n   if(animated) {\n      point.stopAnimation();\n      animated = false;\n   } else {\n      point.startAnimation(direction, count);\n      animated = true;\n   }\n}\n// Generic Hide/Show\nfunction toggle(id) {\n        var state = document.getElementById(id).style.display;\n            if (state == 'block') {\n                document.getElementById(id).style.display = 'none';\n            } else {\n                document.getElementById(id).style.display = 'block';\n            }\n        }\n"
  },
  {
    "path": "examples/sample-article/media/code/mcclure/slope.css",
    "content": "/* From Mark McClure, 2018-06-24              */\n/* https://marksmath.org/visualization/slope/ */\n/* Changes:  #h_info_container to 75% width   */\n\nbody {\n    margin: auto;\n    background: #F0F0F0;\n    font-family: sans-serif;\n}\n\nmain {\n/*   overflow: auto; */\n  border-bottom: 1px solid darkslategray;\n  padding-bottom: 20px;\n}\n\nh1 {\n\tpadding-left: 10px;\n\tborder-bottom: 1px solid darkslategray;\n}\n\n.p {\n\tpadding: 10px;\n}\n\n.em_display {\n\ttext-align: center;\n\tfont-style: italic;\n\tfont-weight: bold;\n\tpadding: 20px;\n}\n\t\n.svg_container {\n\tmargin: 0 auto;\n}\nsvg {\n\tbackground: white;\n\tborder: 1px solid darkslategray;\n\tmargin-top: 20px;\n\tmargin-bottom: 20px;\n}\n\n.function_radio_container {\n\tpadding-left: 30px;\n}\n\n#h_info_container {\n\twidth: 75%;\n    margin: 0 auto;\n}\n"
  },
  {
    "path": "examples/sample-article/media/code/mcclure/slope.js",
    "content": "/* From Mark McClure, 2018-06-24              */\n/* https://marksmath.org/visualization/slope/ */\n/* Changes:  body_width and SVG size          */\n\nvar body_width = 600;\n$(\"body\").css(\"width\", body_width);\nvar svg_width = 600, svg_height = 400, graph_padding = 20;\n$(\"#the_graph\").css(\"margin-left\", (body_width-svg_width)/2);\nvar svg = d3.select(\"#the_graph\")\n\t.attr(\"width\", svg_width)\n\t.attr(\"height\", svg_height);\n\n\n$(\"#f1\").prop('checked',true);\n\n\n// The action!\nsetup_scale_and_axes();\ndraw(\"first_time\");\n\n\n// The functions with global variables declared outside the scope of the function\nvar xmin, xmax, ymin, ymax, graph, f, fp;\nvar xScale, xScaleInverse, yScale, yScaleInverse, rScale, pts_to_path;\nfunction setup_scale_and_axes() {\n\t\"use strict\";\n\txmin = -2;\n\txmax = 2;\n\tymin = -0.5;\n\tymax = 2;\n\txScale = d3.scale.linear()\n\t\t.domain([xmin,xmax])\n\t\t.range([graph_padding, svg_width - graph_padding]);\n\tyScale = d3.scale.linear()\n\t\t.domain([ymin,ymax])\n\t\t.range([svg_height - graph_padding, graph_padding]);\n\txScaleInverse = d3.scale.linear()\n\t\t.range([xmin,xmax])\n\t\t.domain([graph_padding, svg_width - graph_padding]);\n\tyScaleInverse = d3.scale.linear()\n\t\t.range([ymin,ymax])\n\t\t.domain([svg_height - graph_padding, graph_padding]);\n\trScale = d3.scale.linear()\n\t\t.domain([0,xmax-xmin])\n\t\t.range([0, svg_width - graph_padding]);\n\tpts_to_path = d3.svg.line()\n\t\t.x(function(d) { return xScale(d[0]); })\n\t\t.y(function(d) { return yScale(d[1]); })\n\t\t.interpolate(\"linear\");\n\tsvg.append(\"g\").append(\"path\")\n\t\t.attr(\"d\", pts_to_path([[xmin,0],[xmax,0]]))\n\t\t.attr(\"stroke\", \"#333\")\n\t\t.attr(\"stroke-width\", 1)\n\t\t.attr(\"fill\", \"none\");\t\t\t\n\tsvg.append(\"g\").append(\"path\")\n\t\t.attr(\"d\", pts_to_path([[0,ymin],[0,ymax]]))\n\t\t.attr(\"stroke\", \"#333\")\n\t\t.attr(\"stroke-width\", 1)\n\t\t.attr(\"fill\", \"none\");\n\tvar x_ticks = [];\n\tfor(var i=xmin; i<=xmax; i=i+0.25){\n\t\tx_ticks.push([[i,0], [i,-0.05]])\n \t}\n\tsvg.append(\"g\")\n\t\t.selectAll(\"path\")\n\t\t.data(x_ticks)\n\t\t.enter().append(\"path\")\n\t\t.attr(\"d\", function(d) {return pts_to_path(d)})\n\t\t.attr(\"stroke\", \"black\")\n\t\t.attr(\"stroke-width\", 0.4)\n\t\t.attr(\"class\", \"ticks\");\n\tvar tick_labels = [-2,-1,1,2];\n\tsvg.append(\"g\")\n\t\t.selectAll(\"text\")\n\t\t.data(tick_labels)\n\t\t.enter().append(\"text\")\n\t\t.attr(\"text-anchor\", \"middle\")\n\t\t.attr(\"x\", function(d) {return xScale(d)})\n\t\t.attr(\"y\", yScale(0.14))\n\t\t.attr(\"dy\", \"0.35em\")\n\t\t.attr(\"font-size\", \"18px\")\n\t\t.text(function(d) {return d});\n\tvar y_ticks = [];\n\tfor(var i=ymin; i<=ymax; i=i+0.25){\n\t\ty_ticks.push([[-0.03,i], [0,i]])\n \t}\n\tsvg.append(\"g\")\n\t\t.selectAll(\"path\")\n\t\t.data(y_ticks)\n\t\t.enter().append(\"path\")\n\t\t.attr(\"d\", function(d) {return pts_to_path(d)})\n\t\t.attr(\"stroke\", \"black\")\n\t\t.attr(\"stroke-width\", 0.4)\n\t\t.attr(\"class\", \"ticks\");\n\tvar tick_labels = [-1,1,2,3];\n\tsvg.append(\"g\")\n\t\t.selectAll(\"text\")\n\t\t.data(tick_labels)\n\t\t.enter().append(\"text\")\n\t\t.attr(\"text-anchor\", \"middle\")\n\t\t.attr(\"x\", xScale(-0.07))\n\t\t.attr(\"y\", function(d) {return yScale(d)} )\n\t\t.attr(\"dy\", \"0.35em\") \n\t\t.attr(\"font-size\", \"18px\")\n\t\t.text(function(d) {return d});\n}\n\nfunction draw() {\n\t\"use strict\";\n\n\t// Get and define the function\n\tdefine_function();\n\tvar graph_points = [];\n\tvar dx = 0.01;\n\tvar x,y;\n\tfor(x = xmin; x<=xmax+dx; x=x+dx) {\n\t\ty = f(x);\n\t\tgraph_points.push([x,y]);\t\n\t}\n\tgraph = svg.append(\"g\")\n\t\t.attr(\"class\", \"graph\");\n\tgraph.append(\"path\")\n\t\t.attr(\"d\", pts_to_path(graph_points))\n\t\t.attr(\"stroke\", \"black\")\n\t\t.attr(\"stroke-width\", 3)\n\t\t.attr(\"fill\", \"none\");\n}\n\nfunction draw_transition() {\n\n\tsvg.selectAll(\"circle\").remove();\n\tsvg.selectAll(\".tangent_line_graph\")\n\t\t.style(\"opacity\",1)\n\t\t.transition().duration(400)\n\t\t.style(\"opacity\",0);\n\tsvg.selectAll(\".secant_line_graph\")\n\t\t.style(\"opacity\",1)\n\t\t.transition().duration(400)\n\t\t.style(\"opacity\",0);\n\twindow.setTimeout(\n\t\tfunction() {\n\t\t\tsvg.selectAll(\".tangent_line_graph\").remove();\n\t\t\tsvg.selectAll(\".secant_line_graph\").remove();\n\t\t}, 200\n\t);\n\tvar graph_points1 = [];\n\tvar graph_points2 = [];\n\tvar graph_points3 = [];\n\tvar dx = 0.01;\n\tvar f1 = f;\n\tdefine_function();\n\tvar f2 = f;\n\tvar x,y;\n\tfor(x = xmin; x<=xmax+dx; x=x+dx) {\n\t\ty = f1(x);\n\t\tgraph_points1.push([x,y]);\t\n\t}\n\tfor(x = xmin; x<=xmax+dx; x=x+dx) {\n\t\tgraph_points2.push([x,0]);\t\n\t}\n\tfor(x = xmin; x<=xmax+dx; x=x+dx) {\n\t\ty = f2(x);\n\t\tgraph_points3.push([x,y]);\t\n\t}\n\tsvg.selectAll(\".graph\").remove();\n\tsvg.append(\"g\")\n\t\t.attr(\"class\", \"graph\")\n\t\t.append(\"path\")\n\t\t.attr(\"stroke\", \"black\")\n\t\t.attr(\"stroke-width\", 3)\n\t\t.attr(\"fill\", \"none\")\n\t\t.attr(\"d\", pts_to_path(graph_points1))\t\n \t\t.transition().duration(600)\n\t\t.attr(\"d\", pts_to_path(graph_points2))\n \t\t.transition().duration(400)\n\t\t.attr(\"d\", pts_to_path(graph_points3));\n\n\twindow.setTimeout(function () {\n\t\tdraw_tangent_line(x0);\n\t\tif($(\"#show_secant_checkbox\").is(':checked')) {\n\t\t\tdraw_secant_line(x0,h)\n\t\t}\n\t}, 1000);\n\n\twindow.setTimeout(function () {\n\t\tadd_xh_marker(x0, h, f1, f2)\n\t}, 1000);\n}\n\nfunction define_function() {\n\tvar function_input = $(\"input:radio[name=function]:checked\").val();\n\tif(function_input == \"f1\"){\n\t\tf = function(x) {\n\t\t\treturn x*x;\n\t\t}\n\t\tfp = function(x) {\n\t\t\treturn 2*x;\n\t\t}\n\t}\n\telse if(function_input == \"f2\"){\n\t\tf = function(x) {\n\t\t\treturn Math.exp(x)/3;\n\t\t}\n\t\tfp = function(x) {\n\t\t\treturn Math.exp(x)/3;\n\t\t}\n\t}\n\telse if(function_input == \"f3\"){\n\t\tf = function(x) {\n\t\t\treturn Math.sin(2*x*x) + x/3;;\n\t\t}\n\t\tfp = function(x) {\n\t\t\treturn 4*x*Math.cos(2*x*x) + 1/3;\n\t\t}\n\t}\n\n}\n\n$(\".radio\").click(draw_transition);\n\nfunction add_xh_marker(x0_in, h, f1, f2) {\n\n\tsvg.selectAll(\"circle\").remove();\n\t\n\tvar h_active = $(\"#show_secant_checkbox\").is(':checked');\n\n\tif(f2) {\n\t\tvar ff = f2;\n\t}\n\telse {\n\t\tvar ff = f1;\n\t}\n\tx0=x0_in;\n\tx_marker_active = false;\n\tx_marker = svg.append(\"circle\")\n\t\t.attr(\"class\", \"x_marker\")\n\t\t.attr(\"cx\", function(d) { return xScale(x0)})\n\t\t.attr(\"cy\", function(d) {return yScale(ff(x0))})\n\t\t.attr(\"r\", function(d) {return rScale(0.02)})\n\t\t.attr(\"fill\", \"lightgreen\")\n\t\t.attr(\"stroke\", \"black\")\n\t\t.attr(\"stroke-width\", 1);\n\tif(h_active) {\n\t\th_marker = svg.append(\"circle\")\n\t\t\t.attr(\"class\", \"h_marker\")\n\t\t\t.attr(\"cx\", function(d) { return xScale(x0+h)})\n\t\t\t.attr(\"cy\", function(d) {return yScale(ff(x0+h))})\n\t\t\t.attr(\"r\", function(d) {return rScale(0.02)})\n\t\t\t.attr(\"fill\", \"red\")\n\t\t\t.attr(\"stroke\", \"black\")\n\t\t\t.attr(\"stroke-width\", 1);\n}\n// \tx_marker\n// \t\t.on(\"mouseenter\", function() {\n// \t\t\tx_marker.attr(\"fill\", \"black\")\n// \t\t})\n// \t\t.on(\"mouseleave\", function() {\n// \t\t\tif(x_marker_active == false) {\n// \t\t\t\tx_marker.attr(\"fill\", \"darkgreen\")\n// \t\t\t}\n// \t\t});\n\tsvg\n\t\t.on(\"mousedown\", function() {\n\t\t\tx_marker_active = true;\n\t\t\tx_marker.attr(\"fill\", \"darkgreen\");\n\t\t\tvar pos = d3.mouse(this);\n\t\t\tx0=xScaleInverse(pos[0]);\n\t\t\tx_marker\n\t\t\t\t.attr(\"cx\", pos[0])\n\t\t\t\t.attr(\"cy\", yScale(ff(x0)));\n//\t\t\th_marker.attr(\"fill\", \"black\");\n\t\t\tif($(\"#show_secant_checkbox\").is(':checked')) {\n\t\t\t\th_marker\n\t\t\t\t\t.attr(\"cx\", xScale(x0+h))\n\t\t\t\t\t.attr(\"cy\", yScale(ff(x0+h)));\n\t\t\t\tdraw_secant_line(x0,h);\n\t\t\t}\n\t\t\tdraw_tangent_line(x0);\n\t\t})\n\t\t.on(\"mouseup\", function() {\n\t\t\tx_marker_active = false;\n\t\t\tx_marker.attr(\"fill\", \"lightgreen\");\n//\t\t\th_marker.attr(\"fill\", \"lightred\");\n\t\t\tadd_xh_marker(x0, h, f);\n\t\t})\n\t\t.on(\"mousemove\", function() {\n\t\t\tif(x_marker_active == true){\n\t\t\t\tvar pos = d3.mouse(this);\n\t\t\t\tx0=xScaleInverse(pos[0]);\n\t\t\t\tx_marker\n\t\t\t\t\t.attr(\"cx\", pos[0])\n\t\t\t\t\t.attr(\"cy\", yScale(ff(x0)));\n\t\t\t\t$(\"#tangent_value_display\")\n\t\t\t\t\t.text(math.format(fp(x0,h),{notation: 'fixed', precision: 2}));\n\t\t\t\tif($(\"#show_secant_checkbox\").is(':checked')) {\n\t\t\t\t\t$(\"#secant_value_display\")\n\t\t\t\t\t\t.text(math.format(secant_slope(x0,h),{notation: 'fixed', precision: 2}));\n\t\t\t\t\th_marker\n\t\t\t\t\t\t.attr(\"cx\", xScale(x0+h))\n\t\t\t\t\t\t.attr(\"cy\", yScale(ff(x0+h)));\n\t\t\t\t\tdraw_secant_line(x0,h);\n\t\t\t\t}\n\t\t\t\tdraw_tangent_line(x0);\n\t\t\t}\n\t\t})\n}\n\nfunction tangent_line(x0, x) {\n\treturn f(x0) + fp(x0)*(x-x0);\n}\nfunction draw_tangent_line(x0) {\n\tsvg.selectAll(\".tangent_line_graph\").remove();\n\tvar tangent_line_points = [];\n\tvar dx = 0.1;\n\tvar x,y;\n\tfor(x = xmin; x<=xmax+dx; x=x+dx) {\n\t\ty = tangent_line(x0,x);\n\t\ttangent_line_points.push([x,y]);\t\n\t}\n\tgraph = svg.append(\"g\")\n\t\t.attr(\"class\", \"tangent_line_graph\");\n\tgraph.append(\"path\")\n\t\t.attr(\"d\", pts_to_path(tangent_line_points))\n\t\t.attr(\"stroke\", \"black\")\n\t\t.attr(\"stroke-width\", 1)\n\t\t.attr(\"fill\", \"none\");\n\n}\n\n\nfunction secant_slope(x0,h) {\n\tif(h != 0) {\n\t\treturn\t(f(x0+h)-f(x0))/h;\n\t}\n\telse {return \"error!\"}\n}\nfunction secant_line(x,x0,h) {\n\tif(h != 0) {\n\t\treturn f(x0) + ((f(x0+h)-f(x0))/h)*(x-x0)\n\t}\n}\nfunction draw_secant_line(x0,h) {\n\tif(h != 0) {\n\t\tsvg.selectAll(\".secant_line_graph\").remove();\n\t\tvar secant_line_points = [];\n\t\tvar dx = 0.1;\n\t\tvar x,y;\n\t\tfor(x = xmin; x<=xmax+dx; x=x+dx) {\n\t\t\ty = secant_line(x,x0,h);\n\t\t\tsecant_line_points.push([x,y]);\t\n\t\t}\n\t\tsvg.append(\"g\")\n\t\t\t.attr(\"class\", \"secant_line_graph\")\n\t\t\t.append(\"path\")\n\t\t\t.attr(\"d\", pts_to_path(secant_line_points))\n\t\t\t.attr(\"stroke\", \"black\")\n\t\t\t.attr(\"stroke-width\", 1)\n\t\t\t.attr(\"fill\", \"none\");\n\t}\n}\n\nvar x0 = 0.4;\nvar h = 0.3;\n$(\"#h_slider\")\n\t.val(h)\n\t.attr(\"disabled\", true)\n\t.on(\"input\", function(event) {\n\t\th = Number(this.value);\n\t\tdraw_secant_line(x0,h);\n\t\tadd_xh_marker(x0,h,f);\n\t\t$(\"#h_value_display\").text(h);\n\t\t$(\"#secant_value_display\")\n\t\t\t.text(math.format(secant_slope(x0,h),{notation: 'fixed', precision: 2}));\n\t});\n$(\"#h_value_display\").text();\n\n\n//$(\"#show_secant_checkbox\").is(':checked')\n$(\"#show_secant_checkbox\")\n\t.prop('checked', false)\n\t.on('click', function() {\n\t\tvar is_checked = $(\"#show_secant_checkbox\").is(':checked');\n\t\tif(is_checked) {\n\t\t\tdraw_secant_line(x0,h);\n\t\t\tadd_xh_marker(x0, h, f);\n\t\t\t$(\"#h_slider\").attr(\"disabled\", false);\n\t\t\t$(\"#h_value_display\").text(h);\n\t\t\t$(\".dimit\").fadeTo(400,1);\n\t\t\t$(\"#secant_value_display\")\n\t\t\t\t.text(math.format(secant_slope(x0,h),{notation: 'fixed', precision: 2}));\n\t\t}\n\t\telse {\n\t\t\tsvg.selectAll(\".secant_line_graph\").remove();\n\t\t\tsvg.selectAll(\".h_marker\").remove();\n\t\t\t$(\"#h_slider\").attr(\"disabled\", true);\n\t\t\t$(\"#h_value_display\").text(\"\");\n\t\t\t$(\".dimit\").fadeTo(300,0.2)\n\t\t\t$(\"#secant_value_display\").text(\"\");\n\t\t}\n\t});\n\ndraw_tangent_line(x0);\n$(\"#tangent_value_display\").text(math.format(fp(x0),{notation: 'fixed', precision: 2}));\n// draw_secant_line(x0,h);\nadd_xh_marker(x0, h, f);\n$(\".dimit\").fadeTo(0,0.2);\n"
  },
  {
    "path": "examples/sample-article/media/code/roesler/kinematics.js",
    "content": "/***************\n *  kinematics.js\n * \n *  a jsxgraph interactive demo for 1-dimensional kinematics with constant acceleration\n * \n *  in this example, a ball is thrown upward with an initial velocity of 30 m/s\n * \n *  the user can use the time slider in board_t to vary the vertical displacement, velocity \n *  and acceleration in the other boards\n * \n *  Rick Roesler\n *  San Diego, CA\n *  YourPhysicsCoach@gmail.com\n * \n ****************/\n\nconst displacement = (v0, a, t) => v0*t + 0.5*a*t*t;\nconst velocity = (v0, a, t) => v0 + a*t;\nconst acceleration = (v0, a, t) => a;\n\n// initialize the board; we'll create our own custom axes\nconst newboard = (name,title,yaxislabel,units,tmin,tmax,ymin,ymax,f) => {\n\tbrd = JXG.JSXGraph.initBoard(name, {boundingbox: [tmin, ymax, tmax, ymin], \n                      axis:false,\n                      grid:false,\n                      showCopyright:false,\n                      showNavigation:false\n                 });\n    \n    // add a title to the board in the upper right corner\n    brd.create('text',[5,ymax-0.05*(ymax-ymin),title]);\n    \n    // create the x-axis (time)\n    xaxis = brd.create('axis', [[-0.5, 0], [1,0]], {name:'t (s)', withLabel:true, label: {position: 'rt', offset: [-15, -15]}});\n\n    // R. Beezer, 2024-04-19: upgrading JSXGraph to 1.0.8 causes\n    // errors when trying to adjust tick marks,  So we comment-out\n    // the manipulations and live with the result, since we cannot\n    // find an adequate way to remove the defaults.  In particular\n    //\n    //       xaxis.removeTicks(xaxis.defaultTicks);\n    //\n    // as suggested by the JSXGraph wiki does not seem to work.\n    // The only downside is that there are some tickmarks\n    // with negative values\n\n    // remove default tickmarks\n    // R. Beezer, 2024-04-19: commented-out next line\n    //xaxis.removeAllTicks();\n  \n    // create custom tickmarks\n    // TODO - these values should not be hard-coded\n    // R. Beezer, 2024-04-19: commented-out next line\n    // brd.create('ticks',[xaxis,[1,2,3,4,5,6]], {drawLabels:true,label: {offset: [-3, -15]}});\n    \n    // create the y-axis\n    yaxis = brd.create('axis', [[0, 0], [0,1]], {name:yaxislabel + ' ' + units, withLabel:true, label: {position: 'rt', offset: [10, 0]}});\n    \n    // plot the function \n    brd.create('functiongraph',[t => f(initialVelocity,gravAcceleration,t),0,6],{strokeColor:'#000000'});\n    \n    // create a gliding point along the function curve\n    const x = brd.create('point',[() => time.Value(), () =>\tf(initialVelocity,gravAcceleration,time.Value())],{name:''});\n    \n    // create the vector\n    brd.create('arrow',[[-2,0],[-2,() => x.Y()]]);\n\n    // hide the left-most part of the x (t) axis; we should be able to use xaxis.setStraight(false,true), but it's not working\n\tbrd.create('polygon',[[-3,-0.5],[-3,0.5],[-0.5,0.5],[-0.5,-0.5],[-3,-0.5]],{color:'white', withLines:false, fillOpacity:1,vertices: {visible:false}});\n\n\treturn brd;\n}\n\n// initialize vertical velocity and gravitational acceleration (\"g\")\nconst initialVelocity = 30;\nconst gravAcceleration = -10;\n\n// create the time slider board; this will be the parent of the other boards\n// TODO - seems like all this should be delegated to a function\nconst board_t = JXG.JSXGraph.initBoard('box_t', {boundingbox:[-3, 1.5, 7, -1],axis:false,showCopyright:false,showNavigation:false});\n\n// add a title to the time slider\nboard_t.create('text',[5,0.9,'Time']);\n\n// create the custom t-axis\ntaxis = board_t.create('axis', [[-0.5, 0], [1,0]], {name:'t (s)',withLabel:true,label: {position: 'rt',offset: [-15, -15]}});\ntaxis.setStraight(false,true);\n// R. Beezer, 2024-04-19: commented-out next two lines\n// taxis.removeAllTicks();\n// board_t.create('ticks',[taxis,[1,2,3,4,5,6]], {drawLabels:true,label: {offset: [-3, -15]}});\n\n// create the actual slider; the 'time' variable will be used in the other boards\nconst time = board_t.create('slider',[[0,0],[6,0],[0,0,6]]);\n\n// create the displacement board\nconst board_s = newboard('box_s','Displacement','s','(m)',-3,7,-5,50,displacement);\nboard_t.addChild(board_s);\n\n// create the velocity board\nconst board_v = newboard('box_v','Velocity','v','(m &middot s<sup>-1)',-3,7,-35,35,velocity);\nboard_t.addChild(board_v);\n\n// create the acceleration board\nconst board_a = newboard('box_a','Acceleration','a','(m &middot s<sup>-2)',-3,7,-15,5,acceleration);\nboard_t.addChild(board_a);\n"
  },
  {
    "path": "examples/sample-article/media/code/splice/splice-resize.js",
    "content": "const bodyEl = document.body;\nbodyEl.style.background = 'red';\n\nconst growBtn = document.createElement('button');\ngrowBtn.textContent = 'Grow';\ndocument.currentScript.parentElement.appendChild(growBtn);\n\ngrowBtn.addEventListener('click', () => {\n  const currentHeight = bodyEl.clientHeight;\n  const newHeight = currentHeight + 100;\n  bodyEl.style.height = `${newHeight}px`;\n  window.parent.postMessage(\n    {\n      subject: 'lti.frameResize',\n      height: newHeight,\n    },\n    '*'\n  )\n});"
  },
  {
    "path": "examples/sample-article/media/code/threejs/catenoid.js",
    "content": "    var scene = new THREE.Scene();\n\n    var renderer = new THREE.WebGLRenderer( { antialias: true } );\n    renderer.setSize( window.innerWidth, window.innerHeight - 5 );\n    renderer.setClearColor( 0xfff000, 1 );\n    // RAB edit 2021-08-10\n    // document.body.appendChild( renderer.domElement );\n    var renderDiv = document.getElementById(\"threejs-catenoid-surface\");\n    renderDiv.appendChild( renderer.domElement );\n\n\n\n    var options = {\"aspect_ratio\": [1.0, 1.0, 1.0], \"decimals\": 2, \"frame\": true, \"axes\": false, \"axes_labels\": [\"x\", \"y\", \"z\"]};\n\n    // When animations are supported by the viewer, the value 'false'\n    // will be replaced with an option set in Python by the user\n    var animate = false; // options.animate;\n\n    var b = [{\"x\":-10.0676619958, \"y\":-10.0594971035, \"z\":-3.0}, {\"x\":10.0350156701, \"y\":10.0594971035, \"z\":3.0}]; // bounds\n\n    if ( b[0].x === b[1].x ) {\n        b[0].x -= 1;\n        b[1].x += 1;\n    }\n    if ( b[0].y === b[1].y ) {\n        b[0].y -= 1;\n        b[1].y += 1;\n    }\n    if ( b[0].z === b[1].z ) {\n        b[0].z -= 1;\n        b[1].z += 1;\n    }\n\n    var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 )\n                            + Math.pow( b[1].x - b[0].x, 2 ) );\n    var xRange = b[1].x - b[0].x;\n    var yRange = b[1].y - b[0].y;\n    var zRange = b[1].z - b[0].z;\n\n    var ar = options.aspect_ratio;\n    var a = [ ar[0], ar[1], ar[2] ]; // aspect multipliers\n    var autoAspect = 2.5;\n    if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange;\n\n    var xMid = ( b[0].x + b[1].x ) / 2;\n    var yMid = ( b[0].y + b[1].y ) / 2;\n    var zMid = ( b[0].z + b[1].z ) / 2;\n\n    var box = new THREE.Geometry();\n    box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) );\n    box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) );\n    var boxMesh = new THREE.LineSegments( box );\n    if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, 'black' ) );\n\n    if ( options.axes_labels ) {\n        var d = options.decimals; // decimals\n        var offsetRatio = 0.1;\n        var al = options.axes_labels;\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var xm = xMid.toFixed(d);\n        if ( /^-0.?0*$/.test(xm) ) xm = xm.substr(1);\n        addLabel( al[0] + '=' + xm, a[0]*xMid, a[1]*b[1].y+offset, a[2]*b[0].z );\n        addLabel( ( b[0].x ).toFixed(d), a[0]*b[0].x, a[1]*b[1].y+offset, a[2]*b[0].z );\n        addLabel( ( b[1].x ).toFixed(d), a[0]*b[1].x, a[1]*b[1].y+offset, a[2]*b[0].z );\n\n        var offset = offsetRatio * a[0]*( b[1].x - b[0].x );\n        var ym = yMid.toFixed(d);\n        if ( /^-0.?0*$/.test(ym) ) ym = ym.substr(1);\n        addLabel( al[1] + '=' + ym, a[0]*b[1].x+offset, a[1]*yMid, a[2]*b[0].z );\n        addLabel( ( b[0].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[0].y, a[2]*b[0].z );\n        addLabel( ( b[1].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[1].y, a[2]*b[0].z );\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var zm = zMid.toFixed(d);\n        if ( /^-0.?0*$/.test(zm) ) zm = zm.substr(1);\n        addLabel( al[2] + '=' + zm, a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*zMid );\n        addLabel( ( b[0].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[0].z );\n        addLabel( ( b[1].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[1].z );\n    }\n\n    function addLabel( text, x, y, z ) {\n        var fontsize = 14;\n\n        var canvas = document.createElement( 'canvas' );\n        canvas.width = 128;\n        canvas.height = 32; // powers of two\n\n        var context = canvas.getContext( '2d' );\n        context.fillStyle = 'black';\n        context.font = fontsize + 'px monospace';\n        context.textAlign = 'center';\n        context.textBaseline = 'middle';\n        context.fillText( text, .5*canvas.width, .5*canvas.height );\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var sprite = new THREE.Sprite( new THREE.SpriteMaterial( { map: texture } ) );\n        sprite.position.set( x, y, z );\n        sprite.scale.set( 1, .25 ); // ratio of width to height\n        scene.add( sprite );\n    }\n\n    if ( options.axes ) scene.add( new THREE.AxisHelper( Math.min( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ) );\n\n    var camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 0.1, 1000 );\n    camera.up.set( 0, 0, 1 );\n    camera.position.set( a[0]*(xMid+xRange), a[1]*(yMid+yRange), a[2]*(zMid+zRange) );\n\n    var lights = [{\"x\":-5, \"y\":3, \"z\":0, \"color\":\"#7f7f7f\", \"parent\":\"camera\"}];\n    for ( var i=0 ; i < lights.length ; i++ ) {\n        var light = new THREE.DirectionalLight( lights[i].color, 1 );\n        light.position.set( a[0]*lights[i].x, a[1]*lights[i].y, a[2]*lights[i].z );\n        if ( lights[i].parent === 'camera' ) {\n            light.target.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n            scene.add( light.target );\n            camera.add( light );\n        } else scene.add( light );\n    }\n    scene.add( camera );\n\n    var ambient = {\"color\":\"#7f7f7f\"};\n    scene.add( new THREE.AmbientLight( ambient.color, 1 ) );\n\n    var controls = new THREE.OrbitControls( camera, renderer.domElement );\n    controls.target.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n    controls.addEventListener( 'change', function() { if ( !animate ) render(); } );\n\n    window.addEventListener( 'resize', function() {\n\n        renderer.setSize( window.innerWidth, window.innerHeight );\n        camera.aspect = window.innerWidth / window.innerHeight;\n        camera.updateProjectionMatrix();\n        if ( !animate ) render();\n\n    } );\n\n    var texts = [];\n    for ( var i=0 ; i < texts.length ; i++ )\n        addLabel( texts[i].text, a[0]*texts[i].x, a[1]*texts[i].y, a[2]*texts[i].z );\n\n    var points = [];\n    for ( var i=0 ; i < points.length ; i++ ) addPoint( points[i] );\n\n    function addPoint( json ) {\n        var geometry = new THREE.Geometry();\n        var v = json.point;\n        geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n\n        var canvas = document.createElement( 'canvas' );\n        canvas.width = 128;\n        canvas.height = 128;\n\n        var context = canvas.getContext( '2d' );\n        context.arc( 64, 64, 64, 0, 2 * Math.PI );\n        context.fillStyle = json.color;\n        context.fill();\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var transparent = json.opacity < 1 ? true : false;\n        var material = new THREE.PointsMaterial( { size: json.size/100, map: texture,\n                                                   transparent: transparent, opacity: json.opacity,\n                                                   alphaTest: .1 } );\n\n        var c = geometry.center().multiplyScalar( -1 );\n        var mesh = new THREE.Points( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        scene.add( mesh );\n    }\n\n    var lines = [];\n    for ( var i=0 ; i < lines.length ; i++ ) addLine( lines[i] );\n\n    function addLine( json ) {\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.points.length - 1 ; i++ ) {\n            var v = json.points[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n            var v = json.points[i+1];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n        }\n\n        var transparent = json.opacity < 1 ? true : false;\n        var material = new THREE.LineBasicMaterial( { color: json.color, linewidth: json.linewidth,\n                                                      transparent: transparent, opacity: json.opacity } );\n\n        var c = geometry.center().multiplyScalar( -1 );\n        var mesh = new THREE.LineSegments( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        scene.add( mesh );\n    }\n\n    var surfaces = [{\"vertices\":[{\"x\":-10.0677,\"y\":-1.23293e-15,\"z\":-3},{\"x\":-9.93729,\"y\":-1.61497,\"z\":-3},{\"x\":-9.54954,\"y\":-3.18811,\"z\":-3},{\"x\":-8.91447,\"y\":-4.67868,\"z\":-3},{\"x\":-8.04852,\"y\":-6.04807,\"z\":-3},{\"x\":-6.97411,\"y\":-7.26082,\"z\":-3},{\"x\":-5.71908,\"y\":-8.28552,\"z\":-3},{\"x\":-4.31593,\"y\":-9.09563,\"z\":-3},{\"x\":-2.801,\"y\":-9.67017,\"z\":-3},{\"x\":-1.21352,\"y\":-9.99426,\"z\":-3},{\"x\":0.405384,\"y\":-10.0595,\"z\":-3},{\"x\":2.01379,\"y\":-9.8642,\"z\":-3},{\"x\":3.57004,\"y\":-9.41343,\"z\":-3},{\"x\":5.03383,\"y\":-8.71885,\"z\":-3},{\"x\":6.36725,\"y\":-7.79846,\"z\":-3},{\"x\":7.53575,\"y\":-6.67609,\"z\":-3},{\"x\":8.50909,\"y\":-5.38082,\"z\":-3},{\"x\":9.26204,\"y\":-3.94619,\"z\":-3},{\"x\":9.77511,\"y\":-2.40935,\"z\":-3},{\"x\":10.035,\"y\":-0.81011,\"z\":-3},{\"x\":10.035,\"y\":0.81011,\"z\":-3},{\"x\":9.77511,\"y\":2.40935,\"z\":-3},{\"x\":9.26204,\"y\":3.94619,\"z\":-3},{\"x\":8.50909,\"y\":5.38082,\"z\":-3},{\"x\":7.53575,\"y\":6.67609,\"z\":-3},{\"x\":6.36725,\"y\":7.79846,\"z\":-3},{\"x\":5.03383,\"y\":8.71885,\"z\":-3},{\"x\":3.57004,\"y\":9.41343,\"z\":-3},{\"x\":2.01379,\"y\":9.8642,\"z\":-3},{\"x\":0.405384,\"y\":10.0595,\"z\":-3},{\"x\":-1.21352,\"y\":9.99426,\"z\":-3},{\"x\":-2.801,\"y\":9.67017,\"z\":-3},{\"x\":-4.31593,\"y\":9.09563,\"z\":-3},{\"x\":-5.71908,\"y\":8.28552,\"z\":-3},{\"x\":-6.97411,\"y\":7.26082,\"z\":-3},{\"x\":-8.04852,\"y\":6.04807,\"z\":-3},{\"x\":-8.91447,\"y\":4.67868,\"z\":-3},{\"x\":-9.54954,\"y\":3.18811,\"z\":-3},{\"x\":-9.93729,\"y\":1.61497,\"z\":-3},{\"x\":-10.0677,\"y\":1.23293e-15,\"z\":-3},{\"x\":-8.63974,\"y\":-1.05806e-15,\"z\":-2.84615},{\"x\":-8.52786,\"y\":-1.38591,\"z\":-2.84615},{\"x\":-8.19511,\"y\":-2.73593,\"z\":-2.84615},{\"x\":-7.65011,\"y\":-4.01509,\"z\":-2.84615},{\"x\":-6.90698,\"y\":-5.19026,\"z\":-2.84615},{\"x\":-5.98496,\"y\":-6.231,\"z\":-2.84615},{\"x\":-4.90793,\"y\":-7.11037,\"z\":-2.84615},{\"x\":-3.70379,\"y\":-7.80558,\"z\":-2.84615},{\"x\":-2.40373,\"y\":-8.29863,\"z\":-2.84615},{\"x\":-1.04141,\"y\":-8.57675,\"z\":-2.84615},{\"x\":0.347887,\"y\":-8.63274,\"z\":-2.84615},{\"x\":1.72817,\"y\":-8.46514,\"z\":-2.84615},{\"x\":3.06369,\"y\":-8.0783,\"z\":-2.84615},{\"x\":4.31987,\"y\":-7.48224,\"z\":-2.84615},{\"x\":5.46417,\"y\":-6.69239,\"z\":-2.84615},{\"x\":6.46694,\"y\":-5.72921,\"z\":-2.84615},{\"x\":7.30222,\"y\":-4.61765,\"z\":-2.84615},{\"x\":7.94839,\"y\":-3.38649,\"z\":-2.84615},{\"x\":8.38869,\"y\":-2.06763,\"z\":-2.84615},{\"x\":8.61173,\"y\":-0.69521,\"z\":-2.84615},{\"x\":8.61173,\"y\":0.69521,\"z\":-2.84615},{\"x\":8.38869,\"y\":2.06763,\"z\":-2.84615},{\"x\":7.94839,\"y\":3.38649,\"z\":-2.84615},{\"x\":7.30222,\"y\":4.61765,\"z\":-2.84615},{\"x\":6.46694,\"y\":5.72921,\"z\":-2.84615},{\"x\":5.46417,\"y\":6.69239,\"z\":-2.84615},{\"x\":4.31987,\"y\":7.48224,\"z\":-2.84615},{\"x\":3.06369,\"y\":8.0783,\"z\":-2.84615},{\"x\":1.72817,\"y\":8.46514,\"z\":-2.84615},{\"x\":0.347887,\"y\":8.63274,\"z\":-2.84615},{\"x\":-1.04141,\"y\":8.57675,\"z\":-2.84615},{\"x\":-2.40373,\"y\":8.29863,\"z\":-2.84615},{\"x\":-3.70379,\"y\":7.80558,\"z\":-2.84615},{\"x\":-4.90793,\"y\":7.11037,\"z\":-2.84615},{\"x\":-5.98496,\"y\":6.231,\"z\":-2.84615},{\"x\":-6.90698,\"y\":5.19026,\"z\":-2.84615},{\"x\":-7.65011,\"y\":4.01509,\"z\":-2.84615},{\"x\":-8.19511,\"y\":2.73593,\"z\":-2.84615},{\"x\":-8.52786,\"y\":1.38591,\"z\":-2.84615},{\"x\":-8.63974,\"y\":1.05806e-15,\"z\":-2.84615},{\"x\":-7.41672,\"y\":-9.08286e-16,\"z\":-2.69231},{\"x\":-7.32067,\"y\":-1.18973,\"z\":-2.69231},{\"x\":-7.03503,\"y\":-2.34864,\"z\":-2.69231},{\"x\":-6.56718,\"y\":-3.44672,\"z\":-2.69231},{\"x\":-5.92924,\"y\":-4.45554,\"z\":-2.69231},{\"x\":-5.13774,\"y\":-5.34896,\"z\":-2.69231},{\"x\":-4.21318,\"y\":-6.10384,\"z\":-2.69231},{\"x\":-3.17949,\"y\":-6.70064,\"z\":-2.69231},{\"x\":-2.06346,\"y\":-7.12389,\"z\":-2.69231},{\"x\":-0.893987,\"y\":-7.36264,\"z\":-2.69231},{\"x\":0.298641,\"y\":-7.4107,\"z\":-2.69231},{\"x\":1.48353,\"y\":-7.26683,\"z\":-2.69231},{\"x\":2.63,\"y\":-6.93475,\"z\":-2.69231},{\"x\":3.70836,\"y\":-6.42307,\"z\":-2.69231},{\"x\":4.69067,\"y\":-5.74503,\"z\":-2.69231},{\"x\":5.55149,\"y\":-4.91819,\"z\":-2.69231},{\"x\":6.26854,\"y\":-3.96398,\"z\":-2.69231},{\"x\":6.82323,\"y\":-2.90711,\"z\":-2.69231},{\"x\":7.2012,\"y\":-1.77494,\"z\":-2.69231},{\"x\":7.39267,\"y\":-0.596798,\"z\":-2.69231},{\"x\":7.39267,\"y\":0.596798,\"z\":-2.69231},{\"x\":7.2012,\"y\":1.77494,\"z\":-2.69231},{\"x\":6.82323,\"y\":2.90711,\"z\":-2.69231},{\"x\":6.26854,\"y\":3.96398,\"z\":-2.69231},{\"x\":5.55149,\"y\":4.91819,\"z\":-2.69231},{\"x\":4.69067,\"y\":5.74503,\"z\":-2.69231},{\"x\":3.70836,\"y\":6.42307,\"z\":-2.69231},{\"x\":2.63,\"y\":6.93475,\"z\":-2.69231},{\"x\":1.48353,\"y\":7.26683,\"z\":-2.69231},{\"x\":0.298641,\"y\":7.4107,\"z\":-2.69231},{\"x\":-0.893987,\"y\":7.36264,\"z\":-2.69231},{\"x\":-2.06346,\"y\":7.12389,\"z\":-2.69231},{\"x\":-3.17949,\"y\":6.70064,\"z\":-2.69231},{\"x\":-4.21318,\"y\":6.10384,\"z\":-2.69231},{\"x\":-5.13774,\"y\":5.34896,\"z\":-2.69231},{\"x\":-5.92924,\"y\":4.45554,\"z\":-2.69231},{\"x\":-6.56718,\"y\":3.44672,\"z\":-2.69231},{\"x\":-7.03503,\"y\":2.34864,\"z\":-2.69231},{\"x\":-7.32067,\"y\":1.18973,\"z\":-2.69231},{\"x\":-7.41672,\"y\":9.08286e-16,\"z\":-2.69231},{\"x\":-6.36958,\"y\":-7.80049e-16,\"z\":-2.53846},{\"x\":-6.2871,\"y\":-1.02175,\"z\":-2.53846},{\"x\":-6.04178,\"y\":-2.01704,\"z\":-2.53846},{\"x\":-5.63999,\"y\":-2.96009,\"z\":-2.53846},{\"x\":-5.09212,\"y\":-3.82648,\"z\":-2.53846},{\"x\":-4.41237,\"y\":-4.59376,\"z\":-2.53846},{\"x\":-3.61834,\"y\":-5.24206,\"z\":-2.53846},{\"x\":-2.73059,\"y\":-5.7546,\"z\":-2.53846},{\"x\":-1.77213,\"y\":-6.1181,\"z\":-2.53846},{\"x\":-0.767768,\"y\":-6.32314,\"z\":-2.53846},{\"x\":0.256477,\"y\":-6.36442,\"z\":-2.53846},{\"x\":1.27408,\"y\":-6.24086,\"z\":-2.53846},{\"x\":2.25869,\"y\":-5.95566,\"z\":-2.53846},{\"x\":3.18479,\"y\":-5.51622,\"z\":-2.53846},{\"x\":4.02841,\"y\":-4.93391,\"z\":-2.53846},{\"x\":4.7677,\"y\":-4.22382,\"z\":-2.53846},{\"x\":5.38351,\"y\":-3.40432,\"z\":-2.53846},{\"x\":5.85989,\"y\":-2.49666,\"z\":-2.53846},{\"x\":6.18449,\"y\":-1.52434,\"z\":-2.53846},{\"x\":6.34893,\"y\":-0.512539,\"z\":-2.53846},{\"x\":6.34893,\"y\":0.512539,\"z\":-2.53846},{\"x\":6.18449,\"y\":1.52434,\"z\":-2.53846},{\"x\":5.85989,\"y\":2.49666,\"z\":-2.53846},{\"x\":5.38351,\"y\":3.40432,\"z\":-2.53846},{\"x\":4.7677,\"y\":4.22382,\"z\":-2.53846},{\"x\":4.02841,\"y\":4.93391,\"z\":-2.53846},{\"x\":3.18479,\"y\":5.51622,\"z\":-2.53846},{\"x\":2.25869,\"y\":5.95566,\"z\":-2.53846},{\"x\":1.27408,\"y\":6.24086,\"z\":-2.53846},{\"x\":0.256477,\"y\":6.36442,\"z\":-2.53846},{\"x\":-0.767768,\"y\":6.32314,\"z\":-2.53846},{\"x\":-1.77213,\"y\":6.1181,\"z\":-2.53846},{\"x\":-2.73059,\"y\":5.7546,\"z\":-2.53846},{\"x\":-3.61834,\"y\":5.24206,\"z\":-2.53846},{\"x\":-4.41237,\"y\":4.59376,\"z\":-2.53846},{\"x\":-5.09212,\"y\":3.82648,\"z\":-2.53846},{\"x\":-5.63999,\"y\":2.96009,\"z\":-2.53846},{\"x\":-6.04178,\"y\":2.01704,\"z\":-2.53846},{\"x\":-6.2871,\"y\":1.02175,\"z\":-2.53846},{\"x\":-6.36958,\"y\":7.80049e-16,\"z\":-2.53846},{\"x\":-5.47351,\"y\":-6.70311e-16,\"z\":-2.38462},{\"x\":-5.40263,\"y\":-0.878012,\"z\":-2.38462},{\"x\":-5.19182,\"y\":-1.73328,\"z\":-2.38462},{\"x\":-4.84655,\"y\":-2.54366,\"z\":-2.38462},{\"x\":-4.37575,\"y\":-3.28817,\"z\":-2.38462},{\"x\":-3.79163,\"y\":-3.94751,\"z\":-2.38462},{\"x\":-3.10931,\"y\":-4.50461,\"z\":-2.38462},{\"x\":-2.34645,\"y\":-4.94504,\"z\":-2.38462},{\"x\":-1.52282,\"y\":-5.2574,\"z\":-2.38462},{\"x\":-0.659758,\"y\":-5.4336,\"z\":-2.38462},{\"x\":0.220396,\"y\":-5.46907,\"z\":-2.38462},{\"x\":1.09484,\"y\":-5.36289,\"z\":-2.38462},{\"x\":1.94093,\"y\":-5.11782,\"z\":-2.38462},{\"x\":2.73675,\"y\":-4.74019,\"z\":-2.38462},{\"x\":3.46169,\"y\":-4.2398,\"z\":-2.38462},{\"x\":4.09698,\"y\":-3.62961,\"z\":-2.38462},{\"x\":4.62615,\"y\":-2.9254,\"z\":-2.38462},{\"x\":5.03551,\"y\":-2.14543,\"z\":-2.38462},{\"x\":5.31446,\"y\":-1.3099,\"z\":-2.38462},{\"x\":5.45576,\"y\":-0.440434,\"z\":-2.38462},{\"x\":5.45576,\"y\":0.440434,\"z\":-2.38462},{\"x\":5.31446,\"y\":1.3099,\"z\":-2.38462},{\"x\":5.03551,\"y\":2.14543,\"z\":-2.38462},{\"x\":4.62615,\"y\":2.9254,\"z\":-2.38462},{\"x\":4.09698,\"y\":3.62961,\"z\":-2.38462},{\"x\":3.46169,\"y\":4.2398,\"z\":-2.38462},{\"x\":2.73675,\"y\":4.74019,\"z\":-2.38462},{\"x\":1.94093,\"y\":5.11782,\"z\":-2.38462},{\"x\":1.09484,\"y\":5.36289,\"z\":-2.38462},{\"x\":0.220396,\"y\":5.46907,\"z\":-2.38462},{\"x\":-0.659758,\"y\":5.4336,\"z\":-2.38462},{\"x\":-1.52282,\"y\":5.2574,\"z\":-2.38462},{\"x\":-2.34645,\"y\":4.94504,\"z\":-2.38462},{\"x\":-3.10931,\"y\":4.50461,\"z\":-2.38462},{\"x\":-3.79163,\"y\":3.94751,\"z\":-2.38462},{\"x\":-4.37575,\"y\":3.28817,\"z\":-2.38462},{\"x\":-4.84655,\"y\":2.54366,\"z\":-2.38462},{\"x\":-5.19182,\"y\":1.73328,\"z\":-2.38462},{\"x\":-5.40263,\"y\":0.878012,\"z\":-2.38462},{\"x\":-5.47351,\"y\":6.70311e-16,\"z\":-2.38462},{\"x\":-4.70723,\"y\":-5.7647e-16,\"z\":-2.23077},{\"x\":-4.64628,\"y\":-0.755093,\"z\":-2.23077},{\"x\":-4.46498,\"y\":-1.49063,\"z\":-2.23077},{\"x\":-4.16805,\"y\":-2.18756,\"z\":-2.23077},{\"x\":-3.76316,\"y\":-2.82783,\"z\":-2.23077},{\"x\":-3.26082,\"y\":-3.39487,\"z\":-2.23077},{\"x\":-2.67401,\"y\":-3.87398,\"z\":-2.23077},{\"x\":-2.01796,\"y\":-4.25275,\"z\":-2.23077},{\"x\":-1.30963,\"y\":-4.52138,\"z\":-2.23077},{\"x\":-0.567394,\"y\":-4.67291,\"z\":-2.23077},{\"x\":0.189541,\"y\":-4.70342,\"z\":-2.23077},{\"x\":0.941568,\"y\":-4.6121,\"z\":-2.23077},{\"x\":1.66921,\"y\":-4.40134,\"z\":-2.23077},{\"x\":2.35362,\"y\":-4.07658,\"z\":-2.23077},{\"x\":2.97707,\"y\":-3.64625,\"z\":-2.23077},{\"x\":3.52342,\"y\":-3.12147,\"z\":-2.23077},{\"x\":3.97851,\"y\":-2.51586,\"z\":-2.23077},{\"x\":4.33056,\"y\":-1.84508,\"z\":-2.23077},{\"x\":4.57045,\"y\":-1.12651,\"z\":-2.23077},{\"x\":4.69197,\"y\":-0.378775,\"z\":-2.23077},{\"x\":4.69197,\"y\":0.378775,\"z\":-2.23077},{\"x\":4.57045,\"y\":1.12651,\"z\":-2.23077},{\"x\":4.33056,\"y\":1.84508,\"z\":-2.23077},{\"x\":3.97851,\"y\":2.51586,\"z\":-2.23077},{\"x\":3.52342,\"y\":3.12147,\"z\":-2.23077},{\"x\":2.97707,\"y\":3.64625,\"z\":-2.23077},{\"x\":2.35362,\"y\":4.07658,\"z\":-2.23077},{\"x\":1.66921,\"y\":4.40134,\"z\":-2.23077},{\"x\":0.941568,\"y\":4.6121,\"z\":-2.23077},{\"x\":0.189541,\"y\":4.70342,\"z\":-2.23077},{\"x\":-0.567394,\"y\":4.67291,\"z\":-2.23077},{\"x\":-1.30963,\"y\":4.52138,\"z\":-2.23077},{\"x\":-2.01796,\"y\":4.25275,\"z\":-2.23077},{\"x\":-2.67401,\"y\":3.87398,\"z\":-2.23077},{\"x\":-3.26082,\"y\":3.39487,\"z\":-2.23077},{\"x\":-3.76316,\"y\":2.82783,\"z\":-2.23077},{\"x\":-4.16805,\"y\":2.18756,\"z\":-2.23077},{\"x\":-4.46498,\"y\":1.49063,\"z\":-2.23077},{\"x\":-4.64628,\"y\":0.755093,\"z\":-2.23077},{\"x\":-4.70723,\"y\":5.7647e-16,\"z\":-2.23077},{\"x\":-4.0526,\"y\":-4.963e-16,\"z\":-2.07692},{\"x\":-4.00012,\"y\":-0.650082,\"z\":-2.07692},{\"x\":-3.84404,\"y\":-1.28333,\"z\":-2.07692},{\"x\":-3.5884,\"y\":-1.88334,\"z\":-2.07692},{\"x\":-3.23982,\"y\":-2.43457,\"z\":-2.07692},{\"x\":-2.80733,\"y\":-2.92274,\"z\":-2.07692},{\"x\":-2.30214,\"y\":-3.33522,\"z\":-2.07692},{\"x\":-1.73732,\"y\":-3.66132,\"z\":-2.07692},{\"x\":-1.1275,\"y\":-3.89259,\"z\":-2.07692},{\"x\":-0.488487,\"y\":-4.02305,\"z\":-2.07692},{\"x\":0.163182,\"y\":-4.04931,\"z\":-2.07692},{\"x\":0.810623,\"y\":-3.9707,\"z\":-2.07692},{\"x\":1.43707,\"y\":-3.78924,\"z\":-2.07692},{\"x\":2.0263,\"y\":-3.50965,\"z\":-2.07692},{\"x\":2.56305,\"y\":-3.13916,\"z\":-2.07692},{\"x\":3.03341,\"y\":-2.68737,\"z\":-2.07692},{\"x\":3.42521,\"y\":-2.16597,\"z\":-2.07692},{\"x\":3.72831,\"y\":-1.58848,\"z\":-2.07692},{\"x\":3.93484,\"y\":-0.96985,\"z\":-2.07692},{\"x\":4.03946,\"y\":-0.326099,\"z\":-2.07692},{\"x\":4.03946,\"y\":0.326099,\"z\":-2.07692},{\"x\":3.93484,\"y\":0.96985,\"z\":-2.07692},{\"x\":3.72831,\"y\":1.58848,\"z\":-2.07692},{\"x\":3.42521,\"y\":2.16597,\"z\":-2.07692},{\"x\":3.03341,\"y\":2.68737,\"z\":-2.07692},{\"x\":2.56305,\"y\":3.13916,\"z\":-2.07692},{\"x\":2.0263,\"y\":3.50965,\"z\":-2.07692},{\"x\":1.43707,\"y\":3.78924,\"z\":-2.07692},{\"x\":0.810623,\"y\":3.9707,\"z\":-2.07692},{\"x\":0.163182,\"y\":4.04931,\"z\":-2.07692},{\"x\":-0.488487,\"y\":4.02305,\"z\":-2.07692},{\"x\":-1.1275,\"y\":3.89259,\"z\":-2.07692},{\"x\":-1.73732,\"y\":3.66132,\"z\":-2.07692},{\"x\":-2.30214,\"y\":3.33522,\"z\":-2.07692},{\"x\":-2.80733,\"y\":2.92274,\"z\":-2.07692},{\"x\":-3.23982,\"y\":2.43457,\"z\":-2.07692},{\"x\":-3.5884,\"y\":1.88334,\"z\":-2.07692},{\"x\":-3.84404,\"y\":1.28333,\"z\":-2.07692},{\"x\":-4.00012,\"y\":0.650082,\"z\":-2.07692},{\"x\":-4.0526,\"y\":4.963e-16,\"z\":-2.07692},{\"x\":-3.49407,\"y\":-4.279e-16,\"z\":-1.92308},{\"x\":-3.44882,\"y\":-0.560488,\"z\":-1.92308},{\"x\":-3.31425,\"y\":-1.10646,\"z\":-1.92308},{\"x\":-3.09384,\"y\":-1.62377,\"z\":-1.92308},{\"x\":-2.79331,\"y\":-2.09903,\"z\":-1.92308},{\"x\":-2.42043,\"y\":-2.51993,\"z\":-1.92308},{\"x\":-1.98486,\"y\":-2.87556,\"z\":-1.92308},{\"x\":-1.49788,\"y\":-3.15672,\"z\":-1.92308},{\"x\":-0.972111,\"y\":-3.35612,\"z\":-1.92308},{\"x\":-0.421163,\"y\":-3.46859,\"z\":-1.92308},{\"x\":0.140692,\"y\":-3.49123,\"z\":-1.92308},{\"x\":0.698903,\"y\":-3.42345,\"z\":-1.92308},{\"x\":1.23901,\"y\":-3.26701,\"z\":-1.92308},{\"x\":1.74703,\"y\":-3.02595,\"z\":-1.92308},{\"x\":2.20981,\"y\":-2.70652,\"z\":-1.92308},{\"x\":2.61535,\"y\":-2.317,\"z\":-1.92308},{\"x\":2.95315,\"y\":-1.86746,\"z\":-1.92308},{\"x\":3.21447,\"y\":-1.36956,\"z\":-1.92308},{\"x\":3.39254,\"y\":-0.836185,\"z\":-1.92308},{\"x\":3.48274,\"y\":-0.281156,\"z\":-1.92308},{\"x\":3.48274,\"y\":0.281156,\"z\":-1.92308},{\"x\":3.39254,\"y\":0.836185,\"z\":-1.92308},{\"x\":3.21447,\"y\":1.36956,\"z\":-1.92308},{\"x\":2.95315,\"y\":1.86746,\"z\":-1.92308},{\"x\":2.61535,\"y\":2.317,\"z\":-1.92308},{\"x\":2.20981,\"y\":2.70652,\"z\":-1.92308},{\"x\":1.74703,\"y\":3.02595,\"z\":-1.92308},{\"x\":1.23901,\"y\":3.26701,\"z\":-1.92308},{\"x\":0.698903,\"y\":3.42345,\"z\":-1.92308},{\"x\":0.140692,\"y\":3.49123,\"z\":-1.92308},{\"x\":-0.421163,\"y\":3.46859,\"z\":-1.92308},{\"x\":-0.972111,\"y\":3.35612,\"z\":-1.92308},{\"x\":-1.49788,\"y\":3.15672,\"z\":-1.92308},{\"x\":-1.98486,\"y\":2.87556,\"z\":-1.92308},{\"x\":-2.42043,\"y\":2.51993,\"z\":-1.92308},{\"x\":-2.79331,\"y\":2.09903,\"z\":-1.92308},{\"x\":-3.09384,\"y\":1.62377,\"z\":-1.92308},{\"x\":-3.31425,\"y\":1.10646,\"z\":-1.92308},{\"x\":-3.44882,\"y\":0.560488,\"z\":-1.92308},{\"x\":-3.49407,\"y\":4.279e-16,\"z\":-1.92308},{\"x\":-3.0184,\"y\":-3.69648e-16,\"z\":-1.76923},{\"x\":-2.97931,\"y\":-0.484186,\"z\":-1.76923},{\"x\":-2.86306,\"y\":-0.955831,\"z\":-1.76923},{\"x\":-2.67266,\"y\":-1.40272,\"z\":-1.76923},{\"x\":-2.41304,\"y\":-1.81328,\"z\":-1.76923},{\"x\":-2.09092,\"y\":-2.17688,\"z\":-1.76923},{\"x\":-1.71465,\"y\":-2.4841,\"z\":-1.76923},{\"x\":-1.29397,\"y\":-2.72698,\"z\":-1.76923},{\"x\":-0.839772,\"y\":-2.89923,\"z\":-1.76923},{\"x\":-0.363828,\"y\":-2.99639,\"z\":-1.76923},{\"x\":0.121539,\"y\":-3.01595,\"z\":-1.76923},{\"x\":0.603758,\"y\":-2.9574,\"z\":-1.76923},{\"x\":1.07034,\"y\":-2.82225,\"z\":-1.76923},{\"x\":1.5092,\"y\":-2.61401,\"z\":-1.76923},{\"x\":1.90897,\"y\":-2.33807,\"z\":-1.76923},{\"x\":2.25931,\"y\":-2.00157,\"z\":-1.76923},{\"x\":2.55112,\"y\":-1.61323,\"z\":-1.76923},{\"x\":2.77687,\"y\":-1.18311,\"z\":-1.76923},{\"x\":2.93069,\"y\":-0.722351,\"z\":-1.76923},{\"x\":3.00861,\"y\":-0.24288,\"z\":-1.76923},{\"x\":3.00861,\"y\":0.24288,\"z\":-1.76923},{\"x\":2.93069,\"y\":0.722351,\"z\":-1.76923},{\"x\":2.77687,\"y\":1.18311,\"z\":-1.76923},{\"x\":2.55112,\"y\":1.61323,\"z\":-1.76923},{\"x\":2.25931,\"y\":2.00157,\"z\":-1.76923},{\"x\":1.90897,\"y\":2.33807,\"z\":-1.76923},{\"x\":1.5092,\"y\":2.61401,\"z\":-1.76923},{\"x\":1.07034,\"y\":2.82225,\"z\":-1.76923},{\"x\":0.603758,\"y\":2.9574,\"z\":-1.76923},{\"x\":0.121539,\"y\":3.01595,\"z\":-1.76923},{\"x\":-0.363828,\"y\":2.99639,\"z\":-1.76923},{\"x\":-0.839772,\"y\":2.89923,\"z\":-1.76923},{\"x\":-1.29397,\"y\":2.72698,\"z\":-1.76923},{\"x\":-1.71465,\"y\":2.4841,\"z\":-1.76923},{\"x\":-2.09092,\"y\":2.17688,\"z\":-1.76923},{\"x\":-2.41304,\"y\":1.81328,\"z\":-1.76923},{\"x\":-2.67266,\"y\":1.40272,\"z\":-1.76923},{\"x\":-2.86306,\"y\":0.955831,\"z\":-1.76923},{\"x\":-2.97931,\"y\":0.484186,\"z\":-1.76923},{\"x\":-3.0184,\"y\":3.69648e-16,\"z\":-1.76923},{\"x\":-2.61432,\"y\":-3.20162e-16,\"z\":-1.61538},{\"x\":-2.58046,\"y\":-0.419366,\"z\":-1.61538},{\"x\":-2.47978,\"y\":-0.827871,\"z\":-1.61538},{\"x\":-2.31486,\"y\":-1.21493,\"z\":-1.61538},{\"x\":-2.09,\"y\":-1.57053,\"z\":-1.61538},{\"x\":-1.811,\"y\":-1.88545,\"z\":-1.61538},{\"x\":-1.4851,\"y\":-2.15154,\"z\":-1.61538},{\"x\":-1.12074,\"y\":-2.36191,\"z\":-1.61538},{\"x\":-0.727349,\"y\":-2.5111,\"z\":-1.61538},{\"x\":-0.315121,\"y\":-2.59526,\"z\":-1.61538},{\"x\":0.105268,\"y\":-2.6122,\"z\":-1.61538},{\"x\":0.522931,\"y\":-2.56148,\"z\":-1.61538},{\"x\":0.92705,\"y\":-2.44443,\"z\":-1.61538},{\"x\":1.30716,\"y\":-2.26407,\"z\":-1.61538},{\"x\":1.65341,\"y\":-2.02506,\"z\":-1.61538},{\"x\":1.95685,\"y\":-1.73361,\"z\":-1.61538},{\"x\":2.2096,\"y\":-1.39726,\"z\":-1.61538},{\"x\":2.40512,\"y\":-1.02473,\"z\":-1.61538},{\"x\":2.53835,\"y\":-0.625647,\"z\":-1.61538},{\"x\":2.60584,\"y\":-0.210365,\"z\":-1.61538},{\"x\":2.60584,\"y\":0.210365,\"z\":-1.61538},{\"x\":2.53835,\"y\":0.625647,\"z\":-1.61538},{\"x\":2.40512,\"y\":1.02473,\"z\":-1.61538},{\"x\":2.2096,\"y\":1.39726,\"z\":-1.61538},{\"x\":1.95685,\"y\":1.73361,\"z\":-1.61538},{\"x\":1.65341,\"y\":2.02506,\"z\":-1.61538},{\"x\":1.30716,\"y\":2.26407,\"z\":-1.61538},{\"x\":0.92705,\"y\":2.44443,\"z\":-1.61538},{\"x\":0.522931,\"y\":2.56148,\"z\":-1.61538},{\"x\":0.105268,\"y\":2.6122,\"z\":-1.61538},{\"x\":-0.315121,\"y\":2.59526,\"z\":-1.61538},{\"x\":-0.727349,\"y\":2.5111,\"z\":-1.61538},{\"x\":-1.12074,\"y\":2.36191,\"z\":-1.61538},{\"x\":-1.4851,\"y\":2.15154,\"z\":-1.61538},{\"x\":-1.811,\"y\":1.88545,\"z\":-1.61538},{\"x\":-2.09,\"y\":1.57053,\"z\":-1.61538},{\"x\":-2.31486,\"y\":1.21493,\"z\":-1.61538},{\"x\":-2.47978,\"y\":0.827871,\"z\":-1.61538},{\"x\":-2.58046,\"y\":0.419366,\"z\":-1.61538},{\"x\":-2.61432,\"y\":3.20162e-16,\"z\":-1.61538},{\"x\":-2.27223,\"y\":-2.78268e-16,\"z\":-1.46154},{\"x\":-2.24281,\"y\":-0.364492,\"z\":-1.46154},{\"x\":-2.1553,\"y\":-0.719544,\"z\":-1.46154},{\"x\":-2.01196,\"y\":-1.05596,\"z\":-1.46154},{\"x\":-1.81652,\"y\":-1.36503,\"z\":-1.46154},{\"x\":-1.57403,\"y\":-1.63874,\"z\":-1.46154},{\"x\":-1.29078,\"y\":-1.87001,\"z\":-1.46154},{\"x\":-0.97409,\"y\":-2.05285,\"z\":-1.46154},{\"x\":-0.632175,\"y\":-2.18252,\"z\":-1.46154},{\"x\":-0.273888,\"y\":-2.25567,\"z\":-1.46154},{\"x\":0.0914936,\"y\":-2.27039,\"z\":-1.46154},{\"x\":0.454505,\"y\":-2.22631,\"z\":-1.46154},{\"x\":0.805745,\"y\":-2.12458,\"z\":-1.46154},{\"x\":1.13612,\"y\":-1.96781,\"z\":-1.46154},{\"x\":1.43706,\"y\":-1.76008,\"z\":-1.46154},{\"x\":1.70079,\"y\":-1.50677,\"z\":-1.46154},{\"x\":1.92047,\"y\":-1.21443,\"z\":-1.46154},{\"x\":2.09041,\"y\":-0.89064,\"z\":-1.46154},{\"x\":2.20621,\"y\":-0.543781,\"z\":-1.46154},{\"x\":2.26487,\"y\":-0.182839,\"z\":-1.46154},{\"x\":2.26487,\"y\":0.182839,\"z\":-1.46154},{\"x\":2.20621,\"y\":0.543781,\"z\":-1.46154},{\"x\":2.09041,\"y\":0.89064,\"z\":-1.46154},{\"x\":1.92047,\"y\":1.21443,\"z\":-1.46154},{\"x\":1.70079,\"y\":1.50677,\"z\":-1.46154},{\"x\":1.43706,\"y\":1.76008,\"z\":-1.46154},{\"x\":1.13612,\"y\":1.96781,\"z\":-1.46154},{\"x\":0.805745,\"y\":2.12458,\"z\":-1.46154},{\"x\":0.454505,\"y\":2.22631,\"z\":-1.46154},{\"x\":0.0914936,\"y\":2.27039,\"z\":-1.46154},{\"x\":-0.273888,\"y\":2.25567,\"z\":-1.46154},{\"x\":-0.632175,\"y\":2.18252,\"z\":-1.46154},{\"x\":-0.97409,\"y\":2.05285,\"z\":-1.46154},{\"x\":-1.29078,\"y\":1.87001,\"z\":-1.46154},{\"x\":-1.57403,\"y\":1.63874,\"z\":-1.46154},{\"x\":-1.81652,\"y\":1.36503,\"z\":-1.46154},{\"x\":-2.01196,\"y\":1.05596,\"z\":-1.46154},{\"x\":-2.1553,\"y\":0.719544,\"z\":-1.46154},{\"x\":-2.24281,\"y\":0.364492,\"z\":-1.46154},{\"x\":-2.27223,\"y\":2.78268e-16,\"z\":-1.46154},{\"x\":-1.98404,\"y\":-2.42974e-16,\"z\":-1.30769},{\"x\":-1.95834,\"y\":-0.318262,\"z\":-1.30769},{\"x\":-1.88193,\"y\":-0.628281,\"z\":-1.30769},{\"x\":-1.75678,\"y\":-0.922028,\"z\":-1.30769},{\"x\":-1.58612,\"y\":-1.19189,\"z\":-1.30769},{\"x\":-1.37439,\"y\":-1.43089,\"z\":-1.30769},{\"x\":-1.12706,\"y\":-1.63283,\"z\":-1.30769},{\"x\":-0.850542,\"y\":-1.79248,\"z\":-1.30769},{\"x\":-0.551994,\"y\":-1.9057,\"z\":-1.30769},{\"x\":-0.239149,\"y\":-1.96957,\"z\":-1.30769},{\"x\":0.0798891,\"y\":-1.98243,\"z\":-1.30769},{\"x\":0.396858,\"y\":-1.94394,\"z\":-1.30769},{\"x\":0.703549,\"y\":-1.85511,\"z\":-1.30769},{\"x\":0.992019,\"y\":-1.71823,\"z\":-1.30769},{\"x\":1.2548,\"y\":-1.53685,\"z\":-1.30769},{\"x\":1.48507,\"y\":-1.31566,\"z\":-1.30769},{\"x\":1.67689,\"y\":-1.0604,\"z\":-1.30769},{\"x\":1.82527,\"y\":-0.777676,\"z\":-1.30769},{\"x\":1.92638,\"y\":-0.474811,\"z\":-1.30769},{\"x\":1.9776,\"y\":-0.159649,\"z\":-1.30769},{\"x\":1.9776,\"y\":0.159649,\"z\":-1.30769},{\"x\":1.92638,\"y\":0.474811,\"z\":-1.30769},{\"x\":1.82527,\"y\":0.777676,\"z\":-1.30769},{\"x\":1.67689,\"y\":1.0604,\"z\":-1.30769},{\"x\":1.48507,\"y\":1.31566,\"z\":-1.30769},{\"x\":1.2548,\"y\":1.53685,\"z\":-1.30769},{\"x\":0.992019,\"y\":1.71823,\"z\":-1.30769},{\"x\":0.703549,\"y\":1.85511,\"z\":-1.30769},{\"x\":0.396858,\"y\":1.94394,\"z\":-1.30769},{\"x\":0.0798891,\"y\":1.98243,\"z\":-1.30769},{\"x\":-0.239149,\"y\":1.96957,\"z\":-1.30769},{\"x\":-0.551994,\"y\":1.9057,\"z\":-1.30769},{\"x\":-0.850542,\"y\":1.79248,\"z\":-1.30769},{\"x\":-1.12706,\"y\":1.63283,\"z\":-1.30769},{\"x\":-1.37439,\"y\":1.43089,\"z\":-1.30769},{\"x\":-1.58612,\"y\":1.19189,\"z\":-1.30769},{\"x\":-1.75678,\"y\":0.922028,\"z\":-1.30769},{\"x\":-1.88193,\"y\":0.628281,\"z\":-1.30769},{\"x\":-1.95834,\"y\":0.318262,\"z\":-1.30769},{\"x\":-1.98404,\"y\":2.42974e-16,\"z\":-1.30769},{\"x\":-1.74289,\"y\":-2.13443e-16,\"z\":-1.15385},{\"x\":-1.72032,\"y\":-0.27958,\"z\":-1.15385},{\"x\":-1.6532,\"y\":-0.551918,\"z\":-1.15385},{\"x\":-1.54325,\"y\":-0.809962,\"z\":-1.15385},{\"x\":-1.39334,\"y\":-1.04703,\"z\":-1.15385},{\"x\":-1.20734,\"y\":-1.25698,\"z\":-1.15385},{\"x\":-0.990076,\"y\":-1.43437,\"z\":-1.15385},{\"x\":-0.747165,\"y\":-1.57462,\"z\":-1.15385},{\"x\":-0.484903,\"y\":-1.67408,\"z\":-1.15385},{\"x\":-0.210082,\"y\":-1.73018,\"z\":-1.15385},{\"x\":0.0701792,\"y\":-1.74148,\"z\":-1.15385},{\"x\":0.348623,\"y\":-1.70767,\"z\":-1.15385},{\"x\":0.618038,\"y\":-1.62963,\"z\":-1.15385},{\"x\":0.871446,\"y\":-1.50939,\"z\":-1.15385},{\"x\":1.10228,\"y\":-1.35005,\"z\":-1.15385},{\"x\":1.30457,\"y\":-1.15575,\"z\":-1.15385},{\"x\":1.47308,\"y\":-0.931516,\"z\":-1.15385},{\"x\":1.60343,\"y\":-0.683156,\"z\":-1.15385},{\"x\":1.69225,\"y\":-0.417101,\"z\":-1.15385},{\"x\":1.73724,\"y\":-0.140245,\"z\":-1.15385},{\"x\":1.73724,\"y\":0.140245,\"z\":-1.15385},{\"x\":1.69225,\"y\":0.417101,\"z\":-1.15385},{\"x\":1.60343,\"y\":0.683156,\"z\":-1.15385},{\"x\":1.47308,\"y\":0.931516,\"z\":-1.15385},{\"x\":1.30457,\"y\":1.15575,\"z\":-1.15385},{\"x\":1.10228,\"y\":1.35005,\"z\":-1.15385},{\"x\":0.871446,\"y\":1.50939,\"z\":-1.15385},{\"x\":0.618038,\"y\":1.62963,\"z\":-1.15385},{\"x\":0.348623,\"y\":1.70767,\"z\":-1.15385},{\"x\":0.0701792,\"y\":1.74148,\"z\":-1.15385},{\"x\":-0.210082,\"y\":1.73018,\"z\":-1.15385},{\"x\":-0.484903,\"y\":1.67408,\"z\":-1.15385},{\"x\":-0.747165,\"y\":1.57462,\"z\":-1.15385},{\"x\":-0.990076,\"y\":1.43437,\"z\":-1.15385},{\"x\":-1.20734,\"y\":1.25698,\"z\":-1.15385},{\"x\":-1.39334,\"y\":1.04703,\"z\":-1.15385},{\"x\":-1.54325,\"y\":0.809962,\"z\":-1.15385},{\"x\":-1.6532,\"y\":0.551918,\"z\":-1.15385},{\"x\":-1.72032,\"y\":0.27958,\"z\":-1.15385},{\"x\":-1.74289,\"y\":2.13443e-16,\"z\":-1.15385},{\"x\":-1.54308,\"y\":-1.88973e-16,\"z\":-1},{\"x\":-1.5231,\"y\":-0.247528,\"z\":-1},{\"x\":-1.46367,\"y\":-0.488644,\"z\":-1},{\"x\":-1.36633,\"y\":-0.717105,\"z\":-1},{\"x\":-1.2336,\"y\":-0.926994,\"z\":-1},{\"x\":-1.06893,\"y\":-1.11287,\"z\":-1},{\"x\":-0.87657,\"y\":-1.26993,\"z\":-1},{\"x\":-0.661507,\"y\":-1.3941,\"z\":-1},{\"x\":-0.429312,\"y\":-1.48216,\"z\":-1},{\"x\":-0.185998,\"y\":-1.53183,\"z\":-1},{\"x\":0.0621336,\"y\":-1.54183,\"z\":-1},{\"x\":0.308656,\"y\":-1.5119,\"z\":-1},{\"x\":0.547184,\"y\":-1.44281,\"z\":-1},{\"x\":0.77154,\"y\":-1.33635,\"z\":-1},{\"x\":0.975914,\"y\":-1.19528,\"z\":-1},{\"x\":1.15501,\"y\":-1.02325,\"z\":-1},{\"x\":1.3042,\"y\":-0.824724,\"z\":-1},{\"x\":1.4196,\"y\":-0.604836,\"z\":-1},{\"x\":1.49824,\"y\":-0.369283,\"z\":-1},{\"x\":1.53808,\"y\":-0.124166,\"z\":-1},{\"x\":1.53808,\"y\":0.124166,\"z\":-1},{\"x\":1.49824,\"y\":0.369283,\"z\":-1},{\"x\":1.4196,\"y\":0.604836,\"z\":-1},{\"x\":1.3042,\"y\":0.824724,\"z\":-1},{\"x\":1.15501,\"y\":1.02325,\"z\":-1},{\"x\":0.975914,\"y\":1.19528,\"z\":-1},{\"x\":0.77154,\"y\":1.33635,\"z\":-1},{\"x\":0.547184,\"y\":1.44281,\"z\":-1},{\"x\":0.308656,\"y\":1.5119,\"z\":-1},{\"x\":0.0621336,\"y\":1.54183,\"z\":-1},{\"x\":-0.185998,\"y\":1.53183,\"z\":-1},{\"x\":-0.429312,\"y\":1.48216,\"z\":-1},{\"x\":-0.661507,\"y\":1.3941,\"z\":-1},{\"x\":-0.87657,\"y\":1.26993,\"z\":-1},{\"x\":-1.06893,\"y\":1.11287,\"z\":-1},{\"x\":-1.2336,\"y\":0.926994,\"z\":-1},{\"x\":-1.36633,\"y\":0.717105,\"z\":-1},{\"x\":-1.46367,\"y\":0.488644,\"z\":-1},{\"x\":-1.5231,\"y\":0.247528,\"z\":-1},{\"x\":-1.54308,\"y\":1.88973e-16,\"z\":-1},{\"x\":-1.37986,\"y\":-1.68985e-16,\"z\":-0.846154},{\"x\":-1.36199,\"y\":-0.221346,\"z\":-0.846154},{\"x\":-1.30885,\"y\":-0.436959,\"z\":-0.846154},{\"x\":-1.22181,\"y\":-0.641255,\"z\":-0.846154},{\"x\":-1.10312,\"y\":-0.828942,\"z\":-0.846154},{\"x\":-0.955865,\"y\":-0.995161,\"z\":-0.846154},{\"x\":-0.783852,\"y\":-1.13561,\"z\":-0.846154},{\"x\":-0.591537,\"y\":-1.24664,\"z\":-0.846154},{\"x\":-0.383902,\"y\":-1.32538,\"z\":-0.846154},{\"x\":-0.166324,\"y\":-1.3698,\"z\":-0.846154},{\"x\":0.0555615,\"y\":-1.37874,\"z\":-0.846154},{\"x\":0.276008,\"y\":-1.35198,\"z\":-0.846154},{\"x\":0.489306,\"y\":-1.2902,\"z\":-0.846154},{\"x\":0.689932,\"y\":-1.195,\"z\":-0.846154},{\"x\":0.872688,\"y\":-1.06885,\"z\":-0.846154},{\"x\":1.03284,\"y\":-0.915019,\"z\":-0.846154},{\"x\":1.16625,\"y\":-0.73749,\"z\":-0.846154},{\"x\":1.26945,\"y\":-0.540861,\"z\":-0.846154},{\"x\":1.33977,\"y\":-0.330223,\"z\":-0.846154},{\"x\":1.37539,\"y\":-0.111033,\"z\":-0.846154},{\"x\":1.37539,\"y\":0.111033,\"z\":-0.846154},{\"x\":1.33977,\"y\":0.330223,\"z\":-0.846154},{\"x\":1.26945,\"y\":0.540861,\"z\":-0.846154},{\"x\":1.16625,\"y\":0.73749,\"z\":-0.846154},{\"x\":1.03284,\"y\":0.915019,\"z\":-0.846154},{\"x\":0.872688,\"y\":1.06885,\"z\":-0.846154},{\"x\":0.689932,\"y\":1.195,\"z\":-0.846154},{\"x\":0.489306,\"y\":1.2902,\"z\":-0.846154},{\"x\":0.276008,\"y\":1.35198,\"z\":-0.846154},{\"x\":0.0555615,\"y\":1.37874,\"z\":-0.846154},{\"x\":-0.166324,\"y\":1.3698,\"z\":-0.846154},{\"x\":-0.383902,\"y\":1.32538,\"z\":-0.846154},{\"x\":-0.591537,\"y\":1.24664,\"z\":-0.846154},{\"x\":-0.783852,\"y\":1.13561,\"z\":-0.846154},{\"x\":-0.955865,\"y\":0.995161,\"z\":-0.846154},{\"x\":-1.10312,\"y\":0.828942,\"z\":-0.846154},{\"x\":-1.22181,\"y\":0.641255,\"z\":-0.846154},{\"x\":-1.30885,\"y\":0.436959,\"z\":-0.846154},{\"x\":-1.36199,\"y\":0.221346,\"z\":-0.846154},{\"x\":-1.37986,\"y\":1.68985e-16,\"z\":-0.846154},{\"x\":-1.24937,\"y\":-1.53004e-16,\"z\":-0.692308},{\"x\":-1.23319,\"y\":-0.200413,\"z\":-0.692308},{\"x\":-1.18507,\"y\":-0.395636,\"z\":-0.692308},{\"x\":-1.10626,\"y\":-0.580612,\"z\":-0.692308},{\"x\":-0.9988,\"y\":-0.75055,\"z\":-0.692308},{\"x\":-0.86547,\"y\":-0.901049,\"z\":-0.692308},{\"x\":-0.709724,\"y\":-1.02821,\"z\":-0.692308},{\"x\":-0.535596,\"y\":-1.12874,\"z\":-0.692308},{\"x\":-0.347597,\"y\":-1.20004,\"z\":-0.692308},{\"x\":-0.150595,\"y\":-1.24026,\"z\":-0.692308},{\"x\":0.0503071,\"y\":-1.24836,\"z\":-0.692308},{\"x\":0.249906,\"y\":-1.22412,\"z\":-0.692308},{\"x\":0.443033,\"y\":-1.16818,\"z\":-0.692308},{\"x\":0.624685,\"y\":-1.08199,\"z\":-0.692308},{\"x\":0.790159,\"y\":-0.967769,\"z\":-0.692308},{\"x\":0.935167,\"y\":-0.828486,\"z\":-0.692308},{\"x\":1.05596,\"y\":-0.667746,\"z\":-0.692308},{\"x\":1.1494,\"y\":-0.489712,\"z\":-0.692308},{\"x\":1.21307,\"y\":-0.298994,\"z\":-0.692308},{\"x\":1.24532,\"y\":-0.100533,\"z\":-0.692308},{\"x\":1.24532,\"y\":0.100533,\"z\":-0.692308},{\"x\":1.21307,\"y\":0.298994,\"z\":-0.692308},{\"x\":1.1494,\"y\":0.489712,\"z\":-0.692308},{\"x\":1.05596,\"y\":0.667746,\"z\":-0.692308},{\"x\":0.935167,\"y\":0.828486,\"z\":-0.692308},{\"x\":0.790159,\"y\":0.967769,\"z\":-0.692308},{\"x\":0.624685,\"y\":1.08199,\"z\":-0.692308},{\"x\":0.443033,\"y\":1.16818,\"z\":-0.692308},{\"x\":0.249906,\"y\":1.22412,\"z\":-0.692308},{\"x\":0.0503071,\"y\":1.24836,\"z\":-0.692308},{\"x\":-0.150595,\"y\":1.24026,\"z\":-0.692308},{\"x\":-0.347597,\"y\":1.20004,\"z\":-0.692308},{\"x\":-0.535596,\"y\":1.12874,\"z\":-0.692308},{\"x\":-0.709724,\"y\":1.02821,\"z\":-0.692308},{\"x\":-0.86547,\"y\":0.901049,\"z\":-0.692308},{\"x\":-0.9988,\"y\":0.75055,\"z\":-0.692308},{\"x\":-1.10626,\"y\":0.580612,\"z\":-0.692308},{\"x\":-1.18507,\"y\":0.395636,\"z\":-0.692308},{\"x\":-1.23319,\"y\":0.200413,\"z\":-0.692308},{\"x\":-1.24937,\"y\":1.53004e-16,\"z\":-0.692308},{\"x\":-1.14851,\"y\":-1.40652e-16,\"z\":-0.538462},{\"x\":-1.13363,\"y\":-0.184234,\"z\":-0.538462},{\"x\":-1.0894,\"y\":-0.363695,\"z\":-0.538462},{\"x\":-1.01695,\"y\":-0.533738,\"z\":-0.538462},{\"x\":-0.918166,\"y\":-0.689957,\"z\":-0.538462},{\"x\":-0.795599,\"y\":-0.828306,\"z\":-0.538462},{\"x\":-0.652426,\"y\":-0.945203,\"z\":-0.538462},{\"x\":-0.492356,\"y\":-1.03762,\"z\":-0.538462},{\"x\":-0.319535,\"y\":-1.10316,\"z\":-0.538462},{\"x\":-0.138437,\"y\":-1.14013,\"z\":-0.538462},{\"x\":0.0462457,\"y\":-1.14758,\"z\":-0.538462},{\"x\":0.229731,\"y\":-1.1253,\"z\":-0.538462},{\"x\":0.407266,\"y\":-1.07387,\"z\":-0.538462},{\"x\":0.574254,\"y\":-0.994636,\"z\":-0.538462},{\"x\":0.726368,\"y\":-0.889639,\"z\":-0.538462},{\"x\":0.85967,\"y\":-0.761601,\"z\":-0.538462},{\"x\":0.970707,\"y\":-0.613838,\"z\":-0.538462},{\"x\":1.0566,\"y\":-0.450176,\"z\":-0.538462},{\"x\":1.11513,\"y\":-0.274856,\"z\":-0.538462},{\"x\":1.14478,\"y\":-0.0924164,\"z\":-0.538462},{\"x\":1.14478,\"y\":0.0924164,\"z\":-0.538462},{\"x\":1.11513,\"y\":0.274856,\"z\":-0.538462},{\"x\":1.0566,\"y\":0.450176,\"z\":-0.538462},{\"x\":0.970707,\"y\":0.613838,\"z\":-0.538462},{\"x\":0.85967,\"y\":0.761601,\"z\":-0.538462},{\"x\":0.726368,\"y\":0.889639,\"z\":-0.538462},{\"x\":0.574254,\"y\":0.994636,\"z\":-0.538462},{\"x\":0.407266,\"y\":1.07387,\"z\":-0.538462},{\"x\":0.229731,\"y\":1.1253,\"z\":-0.538462},{\"x\":0.0462457,\"y\":1.14758,\"z\":-0.538462},{\"x\":-0.138437,\"y\":1.14013,\"z\":-0.538462},{\"x\":-0.319535,\"y\":1.10316,\"z\":-0.538462},{\"x\":-0.492356,\"y\":1.03762,\"z\":-0.538462},{\"x\":-0.652426,\"y\":0.945203,\"z\":-0.538462},{\"x\":-0.795599,\"y\":0.828306,\"z\":-0.538462},{\"x\":-0.918166,\"y\":0.689957,\"z\":-0.538462},{\"x\":-1.01695,\"y\":0.533738,\"z\":-0.538462},{\"x\":-1.0894,\"y\":0.363695,\"z\":-0.538462},{\"x\":-1.13363,\"y\":0.184234,\"z\":-0.538462},{\"x\":-1.14851,\"y\":1.40652e-16,\"z\":-0.538462},{\"x\":-1.07488,\"y\":-1.31635e-16,\"z\":-0.384615},{\"x\":-1.06096,\"y\":-0.172423,\"z\":-0.384615},{\"x\":-1.01956,\"y\":-0.34038,\"z\":-0.384615},{\"x\":-0.95176,\"y\":-0.499522,\"z\":-0.384615},{\"x\":-0.859306,\"y\":-0.645726,\"z\":-0.384615},{\"x\":-0.744596,\"y\":-0.775207,\"z\":-0.384615},{\"x\":-0.610602,\"y\":-0.88461,\"z\":-0.384615},{\"x\":-0.460793,\"y\":-0.971102,\"z\":-0.384615},{\"x\":-0.299051,\"y\":-1.03244,\"z\":-0.384615},{\"x\":-0.129563,\"y\":-1.06704,\"z\":-0.384615},{\"x\":0.0432811,\"y\":-1.07401,\"z\":-0.384615},{\"x\":0.215004,\"y\":-1.05316,\"z\":-0.384615},{\"x\":0.381158,\"y\":-1.00503,\"z\":-0.384615},{\"x\":0.53744,\"y\":-0.930874,\"z\":-0.384615},{\"x\":0.679803,\"y\":-0.832608,\"z\":-0.384615},{\"x\":0.80456,\"y\":-0.712778,\"z\":-0.384615},{\"x\":0.908479,\"y\":-0.574487,\"z\":-0.384615},{\"x\":0.988868,\"y\":-0.421317,\"z\":-0.384615},{\"x\":1.04365,\"y\":-0.257236,\"z\":-0.384615},{\"x\":1.0714,\"y\":-0.086492,\"z\":-0.384615},{\"x\":1.0714,\"y\":0.086492,\"z\":-0.384615},{\"x\":1.04365,\"y\":0.257236,\"z\":-0.384615},{\"x\":0.988868,\"y\":0.421317,\"z\":-0.384615},{\"x\":0.908479,\"y\":0.574487,\"z\":-0.384615},{\"x\":0.80456,\"y\":0.712778,\"z\":-0.384615},{\"x\":0.679803,\"y\":0.832608,\"z\":-0.384615},{\"x\":0.53744,\"y\":0.930874,\"z\":-0.384615},{\"x\":0.381158,\"y\":1.00503,\"z\":-0.384615},{\"x\":0.215004,\"y\":1.05316,\"z\":-0.384615},{\"x\":0.0432811,\"y\":1.07401,\"z\":-0.384615},{\"x\":-0.129563,\"y\":1.06704,\"z\":-0.384615},{\"x\":-0.299051,\"y\":1.03244,\"z\":-0.384615},{\"x\":-0.460793,\"y\":0.971102,\"z\":-0.384615},{\"x\":-0.610602,\"y\":0.88461,\"z\":-0.384615},{\"x\":-0.744596,\"y\":0.775207,\"z\":-0.384615},{\"x\":-0.859306,\"y\":0.645726,\"z\":-0.384615},{\"x\":-0.95176,\"y\":0.499522,\"z\":-0.384615},{\"x\":-1.01956,\"y\":0.34038,\"z\":-0.384615},{\"x\":-1.06096,\"y\":0.172423,\"z\":-0.384615},{\"x\":-1.07488,\"y\":1.31635e-16,\"z\":-0.384615},{\"x\":-1.02675,\"y\":-1.2574e-16,\"z\":-0.230769},{\"x\":-1.01345,\"y\":-0.164702,\"z\":-0.230769},{\"x\":-0.973906,\"y\":-0.325137,\"z\":-0.230769},{\"x\":-0.909138,\"y\":-0.477152,\"z\":-0.230769},{\"x\":-0.820824,\"y\":-0.616809,\"z\":-0.230769},{\"x\":-0.711252,\"y\":-0.740491,\"z\":-0.230769},{\"x\":-0.583258,\"y\":-0.844995,\"z\":-0.230769},{\"x\":-0.440158,\"y\":-0.927614,\"z\":-0.230769},{\"x\":-0.285659,\"y\":-0.986208,\"z\":-0.230769},{\"x\":-0.123761,\"y\":-1.01926,\"z\":-0.230769},{\"x\":0.0413429,\"y\":-1.02591,\"z\":-0.230769},{\"x\":0.205376,\"y\":-1.006,\"z\":-0.230769},{\"x\":0.364089,\"y\":-0.960024,\"z\":-0.230769},{\"x\":0.513373,\"y\":-0.889188,\"z\":-0.230769},{\"x\":0.649361,\"y\":-0.795322,\"z\":-0.230769},{\"x\":0.76853,\"y\":-0.680858,\"z\":-0.230769},{\"x\":0.867795,\"y\":-0.54876,\"z\":-0.230769},{\"x\":0.944585,\"y\":-0.40245,\"z\":-0.230769},{\"x\":0.99691,\"y\":-0.245716,\"z\":-0.230769},{\"x\":1.02342,\"y\":-0.0826187,\"z\":-0.230769},{\"x\":1.02342,\"y\":0.0826187,\"z\":-0.230769},{\"x\":0.99691,\"y\":0.245716,\"z\":-0.230769},{\"x\":0.944585,\"y\":0.40245,\"z\":-0.230769},{\"x\":0.867795,\"y\":0.54876,\"z\":-0.230769},{\"x\":0.76853,\"y\":0.680858,\"z\":-0.230769},{\"x\":0.649361,\"y\":0.795322,\"z\":-0.230769},{\"x\":0.513373,\"y\":0.889188,\"z\":-0.230769},{\"x\":0.364089,\"y\":0.960024,\"z\":-0.230769},{\"x\":0.205376,\"y\":1.006,\"z\":-0.230769},{\"x\":0.0413429,\"y\":1.02591,\"z\":-0.230769},{\"x\":-0.123761,\"y\":1.01926,\"z\":-0.230769},{\"x\":-0.285659,\"y\":0.986208,\"z\":-0.230769},{\"x\":-0.440158,\"y\":0.927614,\"z\":-0.230769},{\"x\":-0.583258,\"y\":0.844995,\"z\":-0.230769},{\"x\":-0.711252,\"y\":0.740491,\"z\":-0.230769},{\"x\":-0.820824,\"y\":0.616809,\"z\":-0.230769},{\"x\":-0.909138,\"y\":0.477152,\"z\":-0.230769},{\"x\":-0.973906,\"y\":0.325137,\"z\":-0.230769},{\"x\":-1.01345,\"y\":0.164702,\"z\":-0.230769},{\"x\":-1.02675,\"y\":1.2574e-16,\"z\":-0.230769},{\"x\":-1.00296,\"y\":-1.22827e-16,\"z\":-0.0769231},{\"x\":-0.989972,\"y\":-0.160886,\"z\":-0.0769231},{\"x\":-0.951344,\"y\":-0.317605,\"z\":-0.0769231},{\"x\":-0.888077,\"y\":-0.466099,\"z\":-0.0769231},{\"x\":-0.801809,\"y\":-0.60252,\"z\":-0.0769231},{\"x\":-0.694775,\"y\":-0.723337,\"z\":-0.0769231},{\"x\":-0.569746,\"y\":-0.82542,\"z\":-0.0769231},{\"x\":-0.429962,\"y\":-0.906125,\"z\":-0.0769231},{\"x\":-0.279041,\"y\":-0.963361,\"z\":-0.0769231},{\"x\":-0.120893,\"y\":-0.995647,\"z\":-0.0769231},{\"x\":0.0403851,\"y\":-1.00215,\"z\":-0.0769231},{\"x\":0.200618,\"y\":-0.982691,\"z\":-0.0769231},{\"x\":0.355655,\"y\":-0.937784,\"z\":-0.0769231},{\"x\":0.50148,\"y\":-0.868589,\"z\":-0.0769231},{\"x\":0.634317,\"y\":-0.776898,\"z\":-0.0769231},{\"x\":0.750726,\"y\":-0.665086,\"z\":-0.0769231},{\"x\":0.847692,\"y\":-0.536048,\"z\":-0.0769231},{\"x\":0.922703,\"y\":-0.393127,\"z\":-0.0769231},{\"x\":0.973816,\"y\":-0.240024,\"z\":-0.0769231},{\"x\":0.999708,\"y\":-0.0807048,\"z\":-0.0769231},{\"x\":0.999708,\"y\":0.0807048,\"z\":-0.0769231},{\"x\":0.973816,\"y\":0.240024,\"z\":-0.0769231},{\"x\":0.922703,\"y\":0.393127,\"z\":-0.0769231},{\"x\":0.847692,\"y\":0.536048,\"z\":-0.0769231},{\"x\":0.750726,\"y\":0.665086,\"z\":-0.0769231},{\"x\":0.634317,\"y\":0.776898,\"z\":-0.0769231},{\"x\":0.50148,\"y\":0.868589,\"z\":-0.0769231},{\"x\":0.355655,\"y\":0.937784,\"z\":-0.0769231},{\"x\":0.200618,\"y\":0.982691,\"z\":-0.0769231},{\"x\":0.0403851,\"y\":1.00215,\"z\":-0.0769231},{\"x\":-0.120893,\"y\":0.995647,\"z\":-0.0769231},{\"x\":-0.279041,\"y\":0.963361,\"z\":-0.0769231},{\"x\":-0.429962,\"y\":0.906125,\"z\":-0.0769231},{\"x\":-0.569746,\"y\":0.82542,\"z\":-0.0769231},{\"x\":-0.694775,\"y\":0.723337,\"z\":-0.0769231},{\"x\":-0.801809,\"y\":0.60252,\"z\":-0.0769231},{\"x\":-0.888077,\"y\":0.466099,\"z\":-0.0769231},{\"x\":-0.951344,\"y\":0.317605,\"z\":-0.0769231},{\"x\":-0.989972,\"y\":0.160886,\"z\":-0.0769231},{\"x\":-1.00296,\"y\":1.22827e-16,\"z\":-0.0769231},{\"x\":-1.00296,\"y\":-1.22827e-16,\"z\":0.0769231},{\"x\":-0.989972,\"y\":-0.160886,\"z\":0.0769231},{\"x\":-0.951344,\"y\":-0.317605,\"z\":0.0769231},{\"x\":-0.888077,\"y\":-0.466099,\"z\":0.0769231},{\"x\":-0.801809,\"y\":-0.60252,\"z\":0.0769231},{\"x\":-0.694775,\"y\":-0.723337,\"z\":0.0769231},{\"x\":-0.569746,\"y\":-0.82542,\"z\":0.0769231},{\"x\":-0.429962,\"y\":-0.906125,\"z\":0.0769231},{\"x\":-0.279041,\"y\":-0.963361,\"z\":0.0769231},{\"x\":-0.120893,\"y\":-0.995647,\"z\":0.0769231},{\"x\":0.0403851,\"y\":-1.00215,\"z\":0.0769231},{\"x\":0.200618,\"y\":-0.982691,\"z\":0.0769231},{\"x\":0.355655,\"y\":-0.937784,\"z\":0.0769231},{\"x\":0.50148,\"y\":-0.868589,\"z\":0.0769231},{\"x\":0.634317,\"y\":-0.776898,\"z\":0.0769231},{\"x\":0.750726,\"y\":-0.665086,\"z\":0.0769231},{\"x\":0.847692,\"y\":-0.536048,\"z\":0.0769231},{\"x\":0.922703,\"y\":-0.393127,\"z\":0.0769231},{\"x\":0.973816,\"y\":-0.240024,\"z\":0.0769231},{\"x\":0.999708,\"y\":-0.0807048,\"z\":0.0769231},{\"x\":0.999708,\"y\":0.0807048,\"z\":0.0769231},{\"x\":0.973816,\"y\":0.240024,\"z\":0.0769231},{\"x\":0.922703,\"y\":0.393127,\"z\":0.0769231},{\"x\":0.847692,\"y\":0.536048,\"z\":0.0769231},{\"x\":0.750726,\"y\":0.665086,\"z\":0.0769231},{\"x\":0.634317,\"y\":0.776898,\"z\":0.0769231},{\"x\":0.50148,\"y\":0.868589,\"z\":0.0769231},{\"x\":0.355655,\"y\":0.937784,\"z\":0.0769231},{\"x\":0.200618,\"y\":0.982691,\"z\":0.0769231},{\"x\":0.0403851,\"y\":1.00215,\"z\":0.0769231},{\"x\":-0.120893,\"y\":0.995647,\"z\":0.0769231},{\"x\":-0.279041,\"y\":0.963361,\"z\":0.0769231},{\"x\":-0.429962,\"y\":0.906125,\"z\":0.0769231},{\"x\":-0.569746,\"y\":0.82542,\"z\":0.0769231},{\"x\":-0.694775,\"y\":0.723337,\"z\":0.0769231},{\"x\":-0.801809,\"y\":0.60252,\"z\":0.0769231},{\"x\":-0.888077,\"y\":0.466099,\"z\":0.0769231},{\"x\":-0.951344,\"y\":0.317605,\"z\":0.0769231},{\"x\":-0.989972,\"y\":0.160886,\"z\":0.0769231},{\"x\":-1.00296,\"y\":1.22827e-16,\"z\":0.0769231},{\"x\":-1.02675,\"y\":-1.2574e-16,\"z\":0.230769},{\"x\":-1.01345,\"y\":-0.164702,\"z\":0.230769},{\"x\":-0.973906,\"y\":-0.325137,\"z\":0.230769},{\"x\":-0.909138,\"y\":-0.477152,\"z\":0.230769},{\"x\":-0.820824,\"y\":-0.616809,\"z\":0.230769},{\"x\":-0.711252,\"y\":-0.740491,\"z\":0.230769},{\"x\":-0.583258,\"y\":-0.844995,\"z\":0.230769},{\"x\":-0.440158,\"y\":-0.927614,\"z\":0.230769},{\"x\":-0.285659,\"y\":-0.986208,\"z\":0.230769},{\"x\":-0.123761,\"y\":-1.01926,\"z\":0.230769},{\"x\":0.0413429,\"y\":-1.02591,\"z\":0.230769},{\"x\":0.205376,\"y\":-1.006,\"z\":0.230769},{\"x\":0.364089,\"y\":-0.960024,\"z\":0.230769},{\"x\":0.513373,\"y\":-0.889188,\"z\":0.230769},{\"x\":0.649361,\"y\":-0.795322,\"z\":0.230769},{\"x\":0.76853,\"y\":-0.680858,\"z\":0.230769},{\"x\":0.867795,\"y\":-0.54876,\"z\":0.230769},{\"x\":0.944585,\"y\":-0.40245,\"z\":0.230769},{\"x\":0.99691,\"y\":-0.245716,\"z\":0.230769},{\"x\":1.02342,\"y\":-0.0826187,\"z\":0.230769},{\"x\":1.02342,\"y\":0.0826187,\"z\":0.230769},{\"x\":0.99691,\"y\":0.245716,\"z\":0.230769},{\"x\":0.944585,\"y\":0.40245,\"z\":0.230769},{\"x\":0.867795,\"y\":0.54876,\"z\":0.230769},{\"x\":0.76853,\"y\":0.680858,\"z\":0.230769},{\"x\":0.649361,\"y\":0.795322,\"z\":0.230769},{\"x\":0.513373,\"y\":0.889188,\"z\":0.230769},{\"x\":0.364089,\"y\":0.960024,\"z\":0.230769},{\"x\":0.205376,\"y\":1.006,\"z\":0.230769},{\"x\":0.0413429,\"y\":1.02591,\"z\":0.230769},{\"x\":-0.123761,\"y\":1.01926,\"z\":0.230769},{\"x\":-0.285659,\"y\":0.986208,\"z\":0.230769},{\"x\":-0.440158,\"y\":0.927614,\"z\":0.230769},{\"x\":-0.583258,\"y\":0.844995,\"z\":0.230769},{\"x\":-0.711252,\"y\":0.740491,\"z\":0.230769},{\"x\":-0.820824,\"y\":0.616809,\"z\":0.230769},{\"x\":-0.909138,\"y\":0.477152,\"z\":0.230769},{\"x\":-0.973906,\"y\":0.325137,\"z\":0.230769},{\"x\":-1.01345,\"y\":0.164702,\"z\":0.230769},{\"x\":-1.02675,\"y\":1.2574e-16,\"z\":0.230769},{\"x\":-1.07488,\"y\":-1.31635e-16,\"z\":0.384615},{\"x\":-1.06096,\"y\":-0.172423,\"z\":0.384615},{\"x\":-1.01956,\"y\":-0.34038,\"z\":0.384615},{\"x\":-0.95176,\"y\":-0.499522,\"z\":0.384615},{\"x\":-0.859306,\"y\":-0.645726,\"z\":0.384615},{\"x\":-0.744596,\"y\":-0.775207,\"z\":0.384615},{\"x\":-0.610602,\"y\":-0.88461,\"z\":0.384615},{\"x\":-0.460793,\"y\":-0.971102,\"z\":0.384615},{\"x\":-0.299051,\"y\":-1.03244,\"z\":0.384615},{\"x\":-0.129563,\"y\":-1.06704,\"z\":0.384615},{\"x\":0.0432811,\"y\":-1.07401,\"z\":0.384615},{\"x\":0.215004,\"y\":-1.05316,\"z\":0.384615},{\"x\":0.381158,\"y\":-1.00503,\"z\":0.384615},{\"x\":0.53744,\"y\":-0.930874,\"z\":0.384615},{\"x\":0.679803,\"y\":-0.832608,\"z\":0.384615},{\"x\":0.80456,\"y\":-0.712778,\"z\":0.384615},{\"x\":0.908479,\"y\":-0.574487,\"z\":0.384615},{\"x\":0.988868,\"y\":-0.421317,\"z\":0.384615},{\"x\":1.04365,\"y\":-0.257236,\"z\":0.384615},{\"x\":1.0714,\"y\":-0.086492,\"z\":0.384615},{\"x\":1.0714,\"y\":0.086492,\"z\":0.384615},{\"x\":1.04365,\"y\":0.257236,\"z\":0.384615},{\"x\":0.988868,\"y\":0.421317,\"z\":0.384615},{\"x\":0.908479,\"y\":0.574487,\"z\":0.384615},{\"x\":0.80456,\"y\":0.712778,\"z\":0.384615},{\"x\":0.679803,\"y\":0.832608,\"z\":0.384615},{\"x\":0.53744,\"y\":0.930874,\"z\":0.384615},{\"x\":0.381158,\"y\":1.00503,\"z\":0.384615},{\"x\":0.215004,\"y\":1.05316,\"z\":0.384615},{\"x\":0.0432811,\"y\":1.07401,\"z\":0.384615},{\"x\":-0.129563,\"y\":1.06704,\"z\":0.384615},{\"x\":-0.299051,\"y\":1.03244,\"z\":0.384615},{\"x\":-0.460793,\"y\":0.971102,\"z\":0.384615},{\"x\":-0.610602,\"y\":0.88461,\"z\":0.384615},{\"x\":-0.744596,\"y\":0.775207,\"z\":0.384615},{\"x\":-0.859306,\"y\":0.645726,\"z\":0.384615},{\"x\":-0.95176,\"y\":0.499522,\"z\":0.384615},{\"x\":-1.01956,\"y\":0.34038,\"z\":0.384615},{\"x\":-1.06096,\"y\":0.172423,\"z\":0.384615},{\"x\":-1.07488,\"y\":1.31635e-16,\"z\":0.384615},{\"x\":-1.14851,\"y\":-1.40652e-16,\"z\":0.538462},{\"x\":-1.13363,\"y\":-0.184234,\"z\":0.538462},{\"x\":-1.0894,\"y\":-0.363695,\"z\":0.538462},{\"x\":-1.01695,\"y\":-0.533738,\"z\":0.538462},{\"x\":-0.918166,\"y\":-0.689957,\"z\":0.538462},{\"x\":-0.795599,\"y\":-0.828306,\"z\":0.538462},{\"x\":-0.652426,\"y\":-0.945203,\"z\":0.538462},{\"x\":-0.492356,\"y\":-1.03762,\"z\":0.538462},{\"x\":-0.319535,\"y\":-1.10316,\"z\":0.538462},{\"x\":-0.138437,\"y\":-1.14013,\"z\":0.538462},{\"x\":0.0462457,\"y\":-1.14758,\"z\":0.538462},{\"x\":0.229731,\"y\":-1.1253,\"z\":0.538462},{\"x\":0.407266,\"y\":-1.07387,\"z\":0.538462},{\"x\":0.574254,\"y\":-0.994636,\"z\":0.538462},{\"x\":0.726368,\"y\":-0.889639,\"z\":0.538462},{\"x\":0.85967,\"y\":-0.761601,\"z\":0.538462},{\"x\":0.970707,\"y\":-0.613838,\"z\":0.538462},{\"x\":1.0566,\"y\":-0.450176,\"z\":0.538462},{\"x\":1.11513,\"y\":-0.274856,\"z\":0.538462},{\"x\":1.14478,\"y\":-0.0924164,\"z\":0.538462},{\"x\":1.14478,\"y\":0.0924164,\"z\":0.538462},{\"x\":1.11513,\"y\":0.274856,\"z\":0.538462},{\"x\":1.0566,\"y\":0.450176,\"z\":0.538462},{\"x\":0.970707,\"y\":0.613838,\"z\":0.538462},{\"x\":0.85967,\"y\":0.761601,\"z\":0.538462},{\"x\":0.726368,\"y\":0.889639,\"z\":0.538462},{\"x\":0.574254,\"y\":0.994636,\"z\":0.538462},{\"x\":0.407266,\"y\":1.07387,\"z\":0.538462},{\"x\":0.229731,\"y\":1.1253,\"z\":0.538462},{\"x\":0.0462457,\"y\":1.14758,\"z\":0.538462},{\"x\":-0.138437,\"y\":1.14013,\"z\":0.538462},{\"x\":-0.319535,\"y\":1.10316,\"z\":0.538462},{\"x\":-0.492356,\"y\":1.03762,\"z\":0.538462},{\"x\":-0.652426,\"y\":0.945203,\"z\":0.538462},{\"x\":-0.795599,\"y\":0.828306,\"z\":0.538462},{\"x\":-0.918166,\"y\":0.689957,\"z\":0.538462},{\"x\":-1.01695,\"y\":0.533738,\"z\":0.538462},{\"x\":-1.0894,\"y\":0.363695,\"z\":0.538462},{\"x\":-1.13363,\"y\":0.184234,\"z\":0.538462},{\"x\":-1.14851,\"y\":1.40652e-16,\"z\":0.538462},{\"x\":-1.24937,\"y\":-1.53004e-16,\"z\":0.692308},{\"x\":-1.23319,\"y\":-0.200413,\"z\":0.692308},{\"x\":-1.18507,\"y\":-0.395636,\"z\":0.692308},{\"x\":-1.10626,\"y\":-0.580612,\"z\":0.692308},{\"x\":-0.9988,\"y\":-0.75055,\"z\":0.692308},{\"x\":-0.86547,\"y\":-0.901049,\"z\":0.692308},{\"x\":-0.709724,\"y\":-1.02821,\"z\":0.692308},{\"x\":-0.535596,\"y\":-1.12874,\"z\":0.692308},{\"x\":-0.347597,\"y\":-1.20004,\"z\":0.692308},{\"x\":-0.150595,\"y\":-1.24026,\"z\":0.692308},{\"x\":0.0503071,\"y\":-1.24836,\"z\":0.692308},{\"x\":0.249906,\"y\":-1.22412,\"z\":0.692308},{\"x\":0.443033,\"y\":-1.16818,\"z\":0.692308},{\"x\":0.624685,\"y\":-1.08199,\"z\":0.692308},{\"x\":0.790159,\"y\":-0.967769,\"z\":0.692308},{\"x\":0.935167,\"y\":-0.828486,\"z\":0.692308},{\"x\":1.05596,\"y\":-0.667746,\"z\":0.692308},{\"x\":1.1494,\"y\":-0.489712,\"z\":0.692308},{\"x\":1.21307,\"y\":-0.298994,\"z\":0.692308},{\"x\":1.24532,\"y\":-0.100533,\"z\":0.692308},{\"x\":1.24532,\"y\":0.100533,\"z\":0.692308},{\"x\":1.21307,\"y\":0.298994,\"z\":0.692308},{\"x\":1.1494,\"y\":0.489712,\"z\":0.692308},{\"x\":1.05596,\"y\":0.667746,\"z\":0.692308},{\"x\":0.935167,\"y\":0.828486,\"z\":0.692308},{\"x\":0.790159,\"y\":0.967769,\"z\":0.692308},{\"x\":0.624685,\"y\":1.08199,\"z\":0.692308},{\"x\":0.443033,\"y\":1.16818,\"z\":0.692308},{\"x\":0.249906,\"y\":1.22412,\"z\":0.692308},{\"x\":0.0503071,\"y\":1.24836,\"z\":0.692308},{\"x\":-0.150595,\"y\":1.24026,\"z\":0.692308},{\"x\":-0.347597,\"y\":1.20004,\"z\":0.692308},{\"x\":-0.535596,\"y\":1.12874,\"z\":0.692308},{\"x\":-0.709724,\"y\":1.02821,\"z\":0.692308},{\"x\":-0.86547,\"y\":0.901049,\"z\":0.692308},{\"x\":-0.9988,\"y\":0.75055,\"z\":0.692308},{\"x\":-1.10626,\"y\":0.580612,\"z\":0.692308},{\"x\":-1.18507,\"y\":0.395636,\"z\":0.692308},{\"x\":-1.23319,\"y\":0.200413,\"z\":0.692308},{\"x\":-1.24937,\"y\":1.53004e-16,\"z\":0.692308},{\"x\":-1.37986,\"y\":-1.68985e-16,\"z\":0.846154},{\"x\":-1.36199,\"y\":-0.221346,\"z\":0.846154},{\"x\":-1.30885,\"y\":-0.436959,\"z\":0.846154},{\"x\":-1.22181,\"y\":-0.641255,\"z\":0.846154},{\"x\":-1.10312,\"y\":-0.828942,\"z\":0.846154},{\"x\":-0.955865,\"y\":-0.995161,\"z\":0.846154},{\"x\":-0.783852,\"y\":-1.13561,\"z\":0.846154},{\"x\":-0.591537,\"y\":-1.24664,\"z\":0.846154},{\"x\":-0.383902,\"y\":-1.32538,\"z\":0.846154},{\"x\":-0.166324,\"y\":-1.3698,\"z\":0.846154},{\"x\":0.0555615,\"y\":-1.37874,\"z\":0.846154},{\"x\":0.276008,\"y\":-1.35198,\"z\":0.846154},{\"x\":0.489306,\"y\":-1.2902,\"z\":0.846154},{\"x\":0.689932,\"y\":-1.195,\"z\":0.846154},{\"x\":0.872688,\"y\":-1.06885,\"z\":0.846154},{\"x\":1.03284,\"y\":-0.915019,\"z\":0.846154},{\"x\":1.16625,\"y\":-0.73749,\"z\":0.846154},{\"x\":1.26945,\"y\":-0.540861,\"z\":0.846154},{\"x\":1.33977,\"y\":-0.330223,\"z\":0.846154},{\"x\":1.37539,\"y\":-0.111033,\"z\":0.846154},{\"x\":1.37539,\"y\":0.111033,\"z\":0.846154},{\"x\":1.33977,\"y\":0.330223,\"z\":0.846154},{\"x\":1.26945,\"y\":0.540861,\"z\":0.846154},{\"x\":1.16625,\"y\":0.73749,\"z\":0.846154},{\"x\":1.03284,\"y\":0.915019,\"z\":0.846154},{\"x\":0.872688,\"y\":1.06885,\"z\":0.846154},{\"x\":0.689932,\"y\":1.195,\"z\":0.846154},{\"x\":0.489306,\"y\":1.2902,\"z\":0.846154},{\"x\":0.276008,\"y\":1.35198,\"z\":0.846154},{\"x\":0.0555615,\"y\":1.37874,\"z\":0.846154},{\"x\":-0.166324,\"y\":1.3698,\"z\":0.846154},{\"x\":-0.383902,\"y\":1.32538,\"z\":0.846154},{\"x\":-0.591537,\"y\":1.24664,\"z\":0.846154},{\"x\":-0.783852,\"y\":1.13561,\"z\":0.846154},{\"x\":-0.955865,\"y\":0.995161,\"z\":0.846154},{\"x\":-1.10312,\"y\":0.828942,\"z\":0.846154},{\"x\":-1.22181,\"y\":0.641255,\"z\":0.846154},{\"x\":-1.30885,\"y\":0.436959,\"z\":0.846154},{\"x\":-1.36199,\"y\":0.221346,\"z\":0.846154},{\"x\":-1.37986,\"y\":1.68985e-16,\"z\":0.846154},{\"x\":-1.54308,\"y\":-1.88973e-16,\"z\":1},{\"x\":-1.5231,\"y\":-0.247528,\"z\":1},{\"x\":-1.46367,\"y\":-0.488644,\"z\":1},{\"x\":-1.36633,\"y\":-0.717105,\"z\":1},{\"x\":-1.2336,\"y\":-0.926994,\"z\":1},{\"x\":-1.06893,\"y\":-1.11287,\"z\":1},{\"x\":-0.87657,\"y\":-1.26993,\"z\":1},{\"x\":-0.661507,\"y\":-1.3941,\"z\":1},{\"x\":-0.429312,\"y\":-1.48216,\"z\":1},{\"x\":-0.185998,\"y\":-1.53183,\"z\":1},{\"x\":0.0621336,\"y\":-1.54183,\"z\":1},{\"x\":0.308656,\"y\":-1.5119,\"z\":1},{\"x\":0.547184,\"y\":-1.44281,\"z\":1},{\"x\":0.77154,\"y\":-1.33635,\"z\":1},{\"x\":0.975914,\"y\":-1.19528,\"z\":1},{\"x\":1.15501,\"y\":-1.02325,\"z\":1},{\"x\":1.3042,\"y\":-0.824724,\"z\":1},{\"x\":1.4196,\"y\":-0.604836,\"z\":1},{\"x\":1.49824,\"y\":-0.369283,\"z\":1},{\"x\":1.53808,\"y\":-0.124166,\"z\":1},{\"x\":1.53808,\"y\":0.124166,\"z\":1},{\"x\":1.49824,\"y\":0.369283,\"z\":1},{\"x\":1.4196,\"y\":0.604836,\"z\":1},{\"x\":1.3042,\"y\":0.824724,\"z\":1},{\"x\":1.15501,\"y\":1.02325,\"z\":1},{\"x\":0.975914,\"y\":1.19528,\"z\":1},{\"x\":0.77154,\"y\":1.33635,\"z\":1},{\"x\":0.547184,\"y\":1.44281,\"z\":1},{\"x\":0.308656,\"y\":1.5119,\"z\":1},{\"x\":0.0621336,\"y\":1.54183,\"z\":1},{\"x\":-0.185998,\"y\":1.53183,\"z\":1},{\"x\":-0.429312,\"y\":1.48216,\"z\":1},{\"x\":-0.661507,\"y\":1.3941,\"z\":1},{\"x\":-0.87657,\"y\":1.26993,\"z\":1},{\"x\":-1.06893,\"y\":1.11287,\"z\":1},{\"x\":-1.2336,\"y\":0.926994,\"z\":1},{\"x\":-1.36633,\"y\":0.717105,\"z\":1},{\"x\":-1.46367,\"y\":0.488644,\"z\":1},{\"x\":-1.5231,\"y\":0.247528,\"z\":1},{\"x\":-1.54308,\"y\":1.88973e-16,\"z\":1},{\"x\":-1.74289,\"y\":-2.13443e-16,\"z\":1.15385},{\"x\":-1.72032,\"y\":-0.27958,\"z\":1.15385},{\"x\":-1.6532,\"y\":-0.551918,\"z\":1.15385},{\"x\":-1.54325,\"y\":-0.809962,\"z\":1.15385},{\"x\":-1.39334,\"y\":-1.04703,\"z\":1.15385},{\"x\":-1.20734,\"y\":-1.25698,\"z\":1.15385},{\"x\":-0.990076,\"y\":-1.43437,\"z\":1.15385},{\"x\":-0.747165,\"y\":-1.57462,\"z\":1.15385},{\"x\":-0.484903,\"y\":-1.67408,\"z\":1.15385},{\"x\":-0.210082,\"y\":-1.73018,\"z\":1.15385},{\"x\":0.0701792,\"y\":-1.74148,\"z\":1.15385},{\"x\":0.348623,\"y\":-1.70767,\"z\":1.15385},{\"x\":0.618038,\"y\":-1.62963,\"z\":1.15385},{\"x\":0.871446,\"y\":-1.50939,\"z\":1.15385},{\"x\":1.10228,\"y\":-1.35005,\"z\":1.15385},{\"x\":1.30457,\"y\":-1.15575,\"z\":1.15385},{\"x\":1.47308,\"y\":-0.931516,\"z\":1.15385},{\"x\":1.60343,\"y\":-0.683156,\"z\":1.15385},{\"x\":1.69225,\"y\":-0.417101,\"z\":1.15385},{\"x\":1.73724,\"y\":-0.140245,\"z\":1.15385},{\"x\":1.73724,\"y\":0.140245,\"z\":1.15385},{\"x\":1.69225,\"y\":0.417101,\"z\":1.15385},{\"x\":1.60343,\"y\":0.683156,\"z\":1.15385},{\"x\":1.47308,\"y\":0.931516,\"z\":1.15385},{\"x\":1.30457,\"y\":1.15575,\"z\":1.15385},{\"x\":1.10228,\"y\":1.35005,\"z\":1.15385},{\"x\":0.871446,\"y\":1.50939,\"z\":1.15385},{\"x\":0.618038,\"y\":1.62963,\"z\":1.15385},{\"x\":0.348623,\"y\":1.70767,\"z\":1.15385},{\"x\":0.0701792,\"y\":1.74148,\"z\":1.15385},{\"x\":-0.210082,\"y\":1.73018,\"z\":1.15385},{\"x\":-0.484903,\"y\":1.67408,\"z\":1.15385},{\"x\":-0.747165,\"y\":1.57462,\"z\":1.15385},{\"x\":-0.990076,\"y\":1.43437,\"z\":1.15385},{\"x\":-1.20734,\"y\":1.25698,\"z\":1.15385},{\"x\":-1.39334,\"y\":1.04703,\"z\":1.15385},{\"x\":-1.54325,\"y\":0.809962,\"z\":1.15385},{\"x\":-1.6532,\"y\":0.551918,\"z\":1.15385},{\"x\":-1.72032,\"y\":0.27958,\"z\":1.15385},{\"x\":-1.74289,\"y\":2.13443e-16,\"z\":1.15385},{\"x\":-1.98404,\"y\":-2.42974e-16,\"z\":1.30769},{\"x\":-1.95834,\"y\":-0.318262,\"z\":1.30769},{\"x\":-1.88193,\"y\":-0.628281,\"z\":1.30769},{\"x\":-1.75678,\"y\":-0.922028,\"z\":1.30769},{\"x\":-1.58612,\"y\":-1.19189,\"z\":1.30769},{\"x\":-1.37439,\"y\":-1.43089,\"z\":1.30769},{\"x\":-1.12706,\"y\":-1.63283,\"z\":1.30769},{\"x\":-0.850542,\"y\":-1.79248,\"z\":1.30769},{\"x\":-0.551994,\"y\":-1.9057,\"z\":1.30769},{\"x\":-0.239149,\"y\":-1.96957,\"z\":1.30769},{\"x\":0.0798891,\"y\":-1.98243,\"z\":1.30769},{\"x\":0.396858,\"y\":-1.94394,\"z\":1.30769},{\"x\":0.703549,\"y\":-1.85511,\"z\":1.30769},{\"x\":0.992019,\"y\":-1.71823,\"z\":1.30769},{\"x\":1.2548,\"y\":-1.53685,\"z\":1.30769},{\"x\":1.48507,\"y\":-1.31566,\"z\":1.30769},{\"x\":1.67689,\"y\":-1.0604,\"z\":1.30769},{\"x\":1.82527,\"y\":-0.777676,\"z\":1.30769},{\"x\":1.92638,\"y\":-0.474811,\"z\":1.30769},{\"x\":1.9776,\"y\":-0.159649,\"z\":1.30769},{\"x\":1.9776,\"y\":0.159649,\"z\":1.30769},{\"x\":1.92638,\"y\":0.474811,\"z\":1.30769},{\"x\":1.82527,\"y\":0.777676,\"z\":1.30769},{\"x\":1.67689,\"y\":1.0604,\"z\":1.30769},{\"x\":1.48507,\"y\":1.31566,\"z\":1.30769},{\"x\":1.2548,\"y\":1.53685,\"z\":1.30769},{\"x\":0.992019,\"y\":1.71823,\"z\":1.30769},{\"x\":0.703549,\"y\":1.85511,\"z\":1.30769},{\"x\":0.396858,\"y\":1.94394,\"z\":1.30769},{\"x\":0.0798891,\"y\":1.98243,\"z\":1.30769},{\"x\":-0.239149,\"y\":1.96957,\"z\":1.30769},{\"x\":-0.551994,\"y\":1.9057,\"z\":1.30769},{\"x\":-0.850542,\"y\":1.79248,\"z\":1.30769},{\"x\":-1.12706,\"y\":1.63283,\"z\":1.30769},{\"x\":-1.37439,\"y\":1.43089,\"z\":1.30769},{\"x\":-1.58612,\"y\":1.19189,\"z\":1.30769},{\"x\":-1.75678,\"y\":0.922028,\"z\":1.30769},{\"x\":-1.88193,\"y\":0.628281,\"z\":1.30769},{\"x\":-1.95834,\"y\":0.318262,\"z\":1.30769},{\"x\":-1.98404,\"y\":2.42974e-16,\"z\":1.30769},{\"x\":-2.27223,\"y\":-2.78268e-16,\"z\":1.46154},{\"x\":-2.24281,\"y\":-0.364492,\"z\":1.46154},{\"x\":-2.1553,\"y\":-0.719544,\"z\":1.46154},{\"x\":-2.01196,\"y\":-1.05596,\"z\":1.46154},{\"x\":-1.81652,\"y\":-1.36503,\"z\":1.46154},{\"x\":-1.57403,\"y\":-1.63874,\"z\":1.46154},{\"x\":-1.29078,\"y\":-1.87001,\"z\":1.46154},{\"x\":-0.97409,\"y\":-2.05285,\"z\":1.46154},{\"x\":-0.632175,\"y\":-2.18252,\"z\":1.46154},{\"x\":-0.273888,\"y\":-2.25567,\"z\":1.46154},{\"x\":0.0914936,\"y\":-2.27039,\"z\":1.46154},{\"x\":0.454505,\"y\":-2.22631,\"z\":1.46154},{\"x\":0.805745,\"y\":-2.12458,\"z\":1.46154},{\"x\":1.13612,\"y\":-1.96781,\"z\":1.46154},{\"x\":1.43706,\"y\":-1.76008,\"z\":1.46154},{\"x\":1.70079,\"y\":-1.50677,\"z\":1.46154},{\"x\":1.92047,\"y\":-1.21443,\"z\":1.46154},{\"x\":2.09041,\"y\":-0.89064,\"z\":1.46154},{\"x\":2.20621,\"y\":-0.543781,\"z\":1.46154},{\"x\":2.26487,\"y\":-0.182839,\"z\":1.46154},{\"x\":2.26487,\"y\":0.182839,\"z\":1.46154},{\"x\":2.20621,\"y\":0.543781,\"z\":1.46154},{\"x\":2.09041,\"y\":0.89064,\"z\":1.46154},{\"x\":1.92047,\"y\":1.21443,\"z\":1.46154},{\"x\":1.70079,\"y\":1.50677,\"z\":1.46154},{\"x\":1.43706,\"y\":1.76008,\"z\":1.46154},{\"x\":1.13612,\"y\":1.96781,\"z\":1.46154},{\"x\":0.805745,\"y\":2.12458,\"z\":1.46154},{\"x\":0.454505,\"y\":2.22631,\"z\":1.46154},{\"x\":0.0914936,\"y\":2.27039,\"z\":1.46154},{\"x\":-0.273888,\"y\":2.25567,\"z\":1.46154},{\"x\":-0.632175,\"y\":2.18252,\"z\":1.46154},{\"x\":-0.97409,\"y\":2.05285,\"z\":1.46154},{\"x\":-1.29078,\"y\":1.87001,\"z\":1.46154},{\"x\":-1.57403,\"y\":1.63874,\"z\":1.46154},{\"x\":-1.81652,\"y\":1.36503,\"z\":1.46154},{\"x\":-2.01196,\"y\":1.05596,\"z\":1.46154},{\"x\":-2.1553,\"y\":0.719544,\"z\":1.46154},{\"x\":-2.24281,\"y\":0.364492,\"z\":1.46154},{\"x\":-2.27223,\"y\":2.78268e-16,\"z\":1.46154},{\"x\":-2.61432,\"y\":-3.20162e-16,\"z\":1.61538},{\"x\":-2.58046,\"y\":-0.419366,\"z\":1.61538},{\"x\":-2.47978,\"y\":-0.827871,\"z\":1.61538},{\"x\":-2.31486,\"y\":-1.21493,\"z\":1.61538},{\"x\":-2.09,\"y\":-1.57053,\"z\":1.61538},{\"x\":-1.811,\"y\":-1.88545,\"z\":1.61538},{\"x\":-1.4851,\"y\":-2.15154,\"z\":1.61538},{\"x\":-1.12074,\"y\":-2.36191,\"z\":1.61538},{\"x\":-0.727349,\"y\":-2.5111,\"z\":1.61538},{\"x\":-0.315121,\"y\":-2.59526,\"z\":1.61538},{\"x\":0.105268,\"y\":-2.6122,\"z\":1.61538},{\"x\":0.522931,\"y\":-2.56148,\"z\":1.61538},{\"x\":0.92705,\"y\":-2.44443,\"z\":1.61538},{\"x\":1.30716,\"y\":-2.26407,\"z\":1.61538},{\"x\":1.65341,\"y\":-2.02506,\"z\":1.61538},{\"x\":1.95685,\"y\":-1.73361,\"z\":1.61538},{\"x\":2.2096,\"y\":-1.39726,\"z\":1.61538},{\"x\":2.40512,\"y\":-1.02473,\"z\":1.61538},{\"x\":2.53835,\"y\":-0.625647,\"z\":1.61538},{\"x\":2.60584,\"y\":-0.210365,\"z\":1.61538},{\"x\":2.60584,\"y\":0.210365,\"z\":1.61538},{\"x\":2.53835,\"y\":0.625647,\"z\":1.61538},{\"x\":2.40512,\"y\":1.02473,\"z\":1.61538},{\"x\":2.2096,\"y\":1.39726,\"z\":1.61538},{\"x\":1.95685,\"y\":1.73361,\"z\":1.61538},{\"x\":1.65341,\"y\":2.02506,\"z\":1.61538},{\"x\":1.30716,\"y\":2.26407,\"z\":1.61538},{\"x\":0.92705,\"y\":2.44443,\"z\":1.61538},{\"x\":0.522931,\"y\":2.56148,\"z\":1.61538},{\"x\":0.105268,\"y\":2.6122,\"z\":1.61538},{\"x\":-0.315121,\"y\":2.59526,\"z\":1.61538},{\"x\":-0.727349,\"y\":2.5111,\"z\":1.61538},{\"x\":-1.12074,\"y\":2.36191,\"z\":1.61538},{\"x\":-1.4851,\"y\":2.15154,\"z\":1.61538},{\"x\":-1.811,\"y\":1.88545,\"z\":1.61538},{\"x\":-2.09,\"y\":1.57053,\"z\":1.61538},{\"x\":-2.31486,\"y\":1.21493,\"z\":1.61538},{\"x\":-2.47978,\"y\":0.827871,\"z\":1.61538},{\"x\":-2.58046,\"y\":0.419366,\"z\":1.61538},{\"x\":-2.61432,\"y\":3.20162e-16,\"z\":1.61538},{\"x\":-3.0184,\"y\":-3.69648e-16,\"z\":1.76923},{\"x\":-2.97931,\"y\":-0.484186,\"z\":1.76923},{\"x\":-2.86306,\"y\":-0.955831,\"z\":1.76923},{\"x\":-2.67266,\"y\":-1.40272,\"z\":1.76923},{\"x\":-2.41304,\"y\":-1.81328,\"z\":1.76923},{\"x\":-2.09092,\"y\":-2.17688,\"z\":1.76923},{\"x\":-1.71465,\"y\":-2.4841,\"z\":1.76923},{\"x\":-1.29397,\"y\":-2.72698,\"z\":1.76923},{\"x\":-0.839772,\"y\":-2.89923,\"z\":1.76923},{\"x\":-0.363828,\"y\":-2.99639,\"z\":1.76923},{\"x\":0.121539,\"y\":-3.01595,\"z\":1.76923},{\"x\":0.603758,\"y\":-2.9574,\"z\":1.76923},{\"x\":1.07034,\"y\":-2.82225,\"z\":1.76923},{\"x\":1.5092,\"y\":-2.61401,\"z\":1.76923},{\"x\":1.90897,\"y\":-2.33807,\"z\":1.76923},{\"x\":2.25931,\"y\":-2.00157,\"z\":1.76923},{\"x\":2.55112,\"y\":-1.61323,\"z\":1.76923},{\"x\":2.77687,\"y\":-1.18311,\"z\":1.76923},{\"x\":2.93069,\"y\":-0.722351,\"z\":1.76923},{\"x\":3.00861,\"y\":-0.24288,\"z\":1.76923},{\"x\":3.00861,\"y\":0.24288,\"z\":1.76923},{\"x\":2.93069,\"y\":0.722351,\"z\":1.76923},{\"x\":2.77687,\"y\":1.18311,\"z\":1.76923},{\"x\":2.55112,\"y\":1.61323,\"z\":1.76923},{\"x\":2.25931,\"y\":2.00157,\"z\":1.76923},{\"x\":1.90897,\"y\":2.33807,\"z\":1.76923},{\"x\":1.5092,\"y\":2.61401,\"z\":1.76923},{\"x\":1.07034,\"y\":2.82225,\"z\":1.76923},{\"x\":0.603758,\"y\":2.9574,\"z\":1.76923},{\"x\":0.121539,\"y\":3.01595,\"z\":1.76923},{\"x\":-0.363828,\"y\":2.99639,\"z\":1.76923},{\"x\":-0.839772,\"y\":2.89923,\"z\":1.76923},{\"x\":-1.29397,\"y\":2.72698,\"z\":1.76923},{\"x\":-1.71465,\"y\":2.4841,\"z\":1.76923},{\"x\":-2.09092,\"y\":2.17688,\"z\":1.76923},{\"x\":-2.41304,\"y\":1.81328,\"z\":1.76923},{\"x\":-2.67266,\"y\":1.40272,\"z\":1.76923},{\"x\":-2.86306,\"y\":0.955831,\"z\":1.76923},{\"x\":-2.97931,\"y\":0.484186,\"z\":1.76923},{\"x\":-3.0184,\"y\":3.69648e-16,\"z\":1.76923},{\"x\":-3.49407,\"y\":-4.279e-16,\"z\":1.92308},{\"x\":-3.44882,\"y\":-0.560488,\"z\":1.92308},{\"x\":-3.31425,\"y\":-1.10646,\"z\":1.92308},{\"x\":-3.09384,\"y\":-1.62377,\"z\":1.92308},{\"x\":-2.79331,\"y\":-2.09903,\"z\":1.92308},{\"x\":-2.42043,\"y\":-2.51993,\"z\":1.92308},{\"x\":-1.98486,\"y\":-2.87556,\"z\":1.92308},{\"x\":-1.49788,\"y\":-3.15672,\"z\":1.92308},{\"x\":-0.972111,\"y\":-3.35612,\"z\":1.92308},{\"x\":-0.421163,\"y\":-3.46859,\"z\":1.92308},{\"x\":0.140692,\"y\":-3.49123,\"z\":1.92308},{\"x\":0.698903,\"y\":-3.42345,\"z\":1.92308},{\"x\":1.23901,\"y\":-3.26701,\"z\":1.92308},{\"x\":1.74703,\"y\":-3.02595,\"z\":1.92308},{\"x\":2.20981,\"y\":-2.70652,\"z\":1.92308},{\"x\":2.61535,\"y\":-2.317,\"z\":1.92308},{\"x\":2.95315,\"y\":-1.86746,\"z\":1.92308},{\"x\":3.21447,\"y\":-1.36956,\"z\":1.92308},{\"x\":3.39254,\"y\":-0.836185,\"z\":1.92308},{\"x\":3.48274,\"y\":-0.281156,\"z\":1.92308},{\"x\":3.48274,\"y\":0.281156,\"z\":1.92308},{\"x\":3.39254,\"y\":0.836185,\"z\":1.92308},{\"x\":3.21447,\"y\":1.36956,\"z\":1.92308},{\"x\":2.95315,\"y\":1.86746,\"z\":1.92308},{\"x\":2.61535,\"y\":2.317,\"z\":1.92308},{\"x\":2.20981,\"y\":2.70652,\"z\":1.92308},{\"x\":1.74703,\"y\":3.02595,\"z\":1.92308},{\"x\":1.23901,\"y\":3.26701,\"z\":1.92308},{\"x\":0.698903,\"y\":3.42345,\"z\":1.92308},{\"x\":0.140692,\"y\":3.49123,\"z\":1.92308},{\"x\":-0.421163,\"y\":3.46859,\"z\":1.92308},{\"x\":-0.972111,\"y\":3.35612,\"z\":1.92308},{\"x\":-1.49788,\"y\":3.15672,\"z\":1.92308},{\"x\":-1.98486,\"y\":2.87556,\"z\":1.92308},{\"x\":-2.42043,\"y\":2.51993,\"z\":1.92308},{\"x\":-2.79331,\"y\":2.09903,\"z\":1.92308},{\"x\":-3.09384,\"y\":1.62377,\"z\":1.92308},{\"x\":-3.31425,\"y\":1.10646,\"z\":1.92308},{\"x\":-3.44882,\"y\":0.560488,\"z\":1.92308},{\"x\":-3.49407,\"y\":4.279e-16,\"z\":1.92308},{\"x\":-4.0526,\"y\":-4.963e-16,\"z\":2.07692},{\"x\":-4.00012,\"y\":-0.650082,\"z\":2.07692},{\"x\":-3.84404,\"y\":-1.28333,\"z\":2.07692},{\"x\":-3.5884,\"y\":-1.88334,\"z\":2.07692},{\"x\":-3.23982,\"y\":-2.43457,\"z\":2.07692},{\"x\":-2.80733,\"y\":-2.92274,\"z\":2.07692},{\"x\":-2.30214,\"y\":-3.33522,\"z\":2.07692},{\"x\":-1.73732,\"y\":-3.66132,\"z\":2.07692},{\"x\":-1.1275,\"y\":-3.89259,\"z\":2.07692},{\"x\":-0.488487,\"y\":-4.02305,\"z\":2.07692},{\"x\":0.163182,\"y\":-4.04931,\"z\":2.07692},{\"x\":0.810623,\"y\":-3.9707,\"z\":2.07692},{\"x\":1.43707,\"y\":-3.78924,\"z\":2.07692},{\"x\":2.0263,\"y\":-3.50965,\"z\":2.07692},{\"x\":2.56305,\"y\":-3.13916,\"z\":2.07692},{\"x\":3.03341,\"y\":-2.68737,\"z\":2.07692},{\"x\":3.42521,\"y\":-2.16597,\"z\":2.07692},{\"x\":3.72831,\"y\":-1.58848,\"z\":2.07692},{\"x\":3.93484,\"y\":-0.96985,\"z\":2.07692},{\"x\":4.03946,\"y\":-0.326099,\"z\":2.07692},{\"x\":4.03946,\"y\":0.326099,\"z\":2.07692},{\"x\":3.93484,\"y\":0.96985,\"z\":2.07692},{\"x\":3.72831,\"y\":1.58848,\"z\":2.07692},{\"x\":3.42521,\"y\":2.16597,\"z\":2.07692},{\"x\":3.03341,\"y\":2.68737,\"z\":2.07692},{\"x\":2.56305,\"y\":3.13916,\"z\":2.07692},{\"x\":2.0263,\"y\":3.50965,\"z\":2.07692},{\"x\":1.43707,\"y\":3.78924,\"z\":2.07692},{\"x\":0.810623,\"y\":3.9707,\"z\":2.07692},{\"x\":0.163182,\"y\":4.04931,\"z\":2.07692},{\"x\":-0.488487,\"y\":4.02305,\"z\":2.07692},{\"x\":-1.1275,\"y\":3.89259,\"z\":2.07692},{\"x\":-1.73732,\"y\":3.66132,\"z\":2.07692},{\"x\":-2.30214,\"y\":3.33522,\"z\":2.07692},{\"x\":-2.80733,\"y\":2.92274,\"z\":2.07692},{\"x\":-3.23982,\"y\":2.43457,\"z\":2.07692},{\"x\":-3.5884,\"y\":1.88334,\"z\":2.07692},{\"x\":-3.84404,\"y\":1.28333,\"z\":2.07692},{\"x\":-4.00012,\"y\":0.650082,\"z\":2.07692},{\"x\":-4.0526,\"y\":4.963e-16,\"z\":2.07692},{\"x\":-4.70723,\"y\":-5.7647e-16,\"z\":2.23077},{\"x\":-4.64628,\"y\":-0.755093,\"z\":2.23077},{\"x\":-4.46498,\"y\":-1.49063,\"z\":2.23077},{\"x\":-4.16805,\"y\":-2.18756,\"z\":2.23077},{\"x\":-3.76316,\"y\":-2.82783,\"z\":2.23077},{\"x\":-3.26082,\"y\":-3.39487,\"z\":2.23077},{\"x\":-2.67401,\"y\":-3.87398,\"z\":2.23077},{\"x\":-2.01796,\"y\":-4.25275,\"z\":2.23077},{\"x\":-1.30963,\"y\":-4.52138,\"z\":2.23077},{\"x\":-0.567394,\"y\":-4.67291,\"z\":2.23077},{\"x\":0.189541,\"y\":-4.70342,\"z\":2.23077},{\"x\":0.941568,\"y\":-4.6121,\"z\":2.23077},{\"x\":1.66921,\"y\":-4.40134,\"z\":2.23077},{\"x\":2.35362,\"y\":-4.07658,\"z\":2.23077},{\"x\":2.97707,\"y\":-3.64625,\"z\":2.23077},{\"x\":3.52342,\"y\":-3.12147,\"z\":2.23077},{\"x\":3.97851,\"y\":-2.51586,\"z\":2.23077},{\"x\":4.33056,\"y\":-1.84508,\"z\":2.23077},{\"x\":4.57045,\"y\":-1.12651,\"z\":2.23077},{\"x\":4.69197,\"y\":-0.378775,\"z\":2.23077},{\"x\":4.69197,\"y\":0.378775,\"z\":2.23077},{\"x\":4.57045,\"y\":1.12651,\"z\":2.23077},{\"x\":4.33056,\"y\":1.84508,\"z\":2.23077},{\"x\":3.97851,\"y\":2.51586,\"z\":2.23077},{\"x\":3.52342,\"y\":3.12147,\"z\":2.23077},{\"x\":2.97707,\"y\":3.64625,\"z\":2.23077},{\"x\":2.35362,\"y\":4.07658,\"z\":2.23077},{\"x\":1.66921,\"y\":4.40134,\"z\":2.23077},{\"x\":0.941568,\"y\":4.6121,\"z\":2.23077},{\"x\":0.189541,\"y\":4.70342,\"z\":2.23077},{\"x\":-0.567394,\"y\":4.67291,\"z\":2.23077},{\"x\":-1.30963,\"y\":4.52138,\"z\":2.23077},{\"x\":-2.01796,\"y\":4.25275,\"z\":2.23077},{\"x\":-2.67401,\"y\":3.87398,\"z\":2.23077},{\"x\":-3.26082,\"y\":3.39487,\"z\":2.23077},{\"x\":-3.76316,\"y\":2.82783,\"z\":2.23077},{\"x\":-4.16805,\"y\":2.18756,\"z\":2.23077},{\"x\":-4.46498,\"y\":1.49063,\"z\":2.23077},{\"x\":-4.64628,\"y\":0.755093,\"z\":2.23077},{\"x\":-4.70723,\"y\":5.7647e-16,\"z\":2.23077},{\"x\":-5.47351,\"y\":-6.70311e-16,\"z\":2.38462},{\"x\":-5.40263,\"y\":-0.878012,\"z\":2.38462},{\"x\":-5.19182,\"y\":-1.73328,\"z\":2.38462},{\"x\":-4.84655,\"y\":-2.54366,\"z\":2.38462},{\"x\":-4.37575,\"y\":-3.28817,\"z\":2.38462},{\"x\":-3.79163,\"y\":-3.94751,\"z\":2.38462},{\"x\":-3.10931,\"y\":-4.50461,\"z\":2.38462},{\"x\":-2.34645,\"y\":-4.94504,\"z\":2.38462},{\"x\":-1.52282,\"y\":-5.2574,\"z\":2.38462},{\"x\":-0.659758,\"y\":-5.4336,\"z\":2.38462},{\"x\":0.220396,\"y\":-5.46907,\"z\":2.38462},{\"x\":1.09484,\"y\":-5.36289,\"z\":2.38462},{\"x\":1.94093,\"y\":-5.11782,\"z\":2.38462},{\"x\":2.73675,\"y\":-4.74019,\"z\":2.38462},{\"x\":3.46169,\"y\":-4.2398,\"z\":2.38462},{\"x\":4.09698,\"y\":-3.62961,\"z\":2.38462},{\"x\":4.62615,\"y\":-2.9254,\"z\":2.38462},{\"x\":5.03551,\"y\":-2.14543,\"z\":2.38462},{\"x\":5.31446,\"y\":-1.3099,\"z\":2.38462},{\"x\":5.45576,\"y\":-0.440434,\"z\":2.38462},{\"x\":5.45576,\"y\":0.440434,\"z\":2.38462},{\"x\":5.31446,\"y\":1.3099,\"z\":2.38462},{\"x\":5.03551,\"y\":2.14543,\"z\":2.38462},{\"x\":4.62615,\"y\":2.9254,\"z\":2.38462},{\"x\":4.09698,\"y\":3.62961,\"z\":2.38462},{\"x\":3.46169,\"y\":4.2398,\"z\":2.38462},{\"x\":2.73675,\"y\":4.74019,\"z\":2.38462},{\"x\":1.94093,\"y\":5.11782,\"z\":2.38462},{\"x\":1.09484,\"y\":5.36289,\"z\":2.38462},{\"x\":0.220396,\"y\":5.46907,\"z\":2.38462},{\"x\":-0.659758,\"y\":5.4336,\"z\":2.38462},{\"x\":-1.52282,\"y\":5.2574,\"z\":2.38462},{\"x\":-2.34645,\"y\":4.94504,\"z\":2.38462},{\"x\":-3.10931,\"y\":4.50461,\"z\":2.38462},{\"x\":-3.79163,\"y\":3.94751,\"z\":2.38462},{\"x\":-4.37575,\"y\":3.28817,\"z\":2.38462},{\"x\":-4.84655,\"y\":2.54366,\"z\":2.38462},{\"x\":-5.19182,\"y\":1.73328,\"z\":2.38462},{\"x\":-5.40263,\"y\":0.878012,\"z\":2.38462},{\"x\":-5.47351,\"y\":6.70311e-16,\"z\":2.38462},{\"x\":-6.36958,\"y\":-7.80049e-16,\"z\":2.53846},{\"x\":-6.2871,\"y\":-1.02175,\"z\":2.53846},{\"x\":-6.04178,\"y\":-2.01704,\"z\":2.53846},{\"x\":-5.63999,\"y\":-2.96009,\"z\":2.53846},{\"x\":-5.09212,\"y\":-3.82648,\"z\":2.53846},{\"x\":-4.41237,\"y\":-4.59376,\"z\":2.53846},{\"x\":-3.61834,\"y\":-5.24206,\"z\":2.53846},{\"x\":-2.73059,\"y\":-5.7546,\"z\":2.53846},{\"x\":-1.77213,\"y\":-6.1181,\"z\":2.53846},{\"x\":-0.767768,\"y\":-6.32314,\"z\":2.53846},{\"x\":0.256477,\"y\":-6.36442,\"z\":2.53846},{\"x\":1.27408,\"y\":-6.24086,\"z\":2.53846},{\"x\":2.25869,\"y\":-5.95566,\"z\":2.53846},{\"x\":3.18479,\"y\":-5.51622,\"z\":2.53846},{\"x\":4.02841,\"y\":-4.93391,\"z\":2.53846},{\"x\":4.7677,\"y\":-4.22382,\"z\":2.53846},{\"x\":5.38351,\"y\":-3.40432,\"z\":2.53846},{\"x\":5.85989,\"y\":-2.49666,\"z\":2.53846},{\"x\":6.18449,\"y\":-1.52434,\"z\":2.53846},{\"x\":6.34893,\"y\":-0.512539,\"z\":2.53846},{\"x\":6.34893,\"y\":0.512539,\"z\":2.53846},{\"x\":6.18449,\"y\":1.52434,\"z\":2.53846},{\"x\":5.85989,\"y\":2.49666,\"z\":2.53846},{\"x\":5.38351,\"y\":3.40432,\"z\":2.53846},{\"x\":4.7677,\"y\":4.22382,\"z\":2.53846},{\"x\":4.02841,\"y\":4.93391,\"z\":2.53846},{\"x\":3.18479,\"y\":5.51622,\"z\":2.53846},{\"x\":2.25869,\"y\":5.95566,\"z\":2.53846},{\"x\":1.27408,\"y\":6.24086,\"z\":2.53846},{\"x\":0.256477,\"y\":6.36442,\"z\":2.53846},{\"x\":-0.767768,\"y\":6.32314,\"z\":2.53846},{\"x\":-1.77213,\"y\":6.1181,\"z\":2.53846},{\"x\":-2.73059,\"y\":5.7546,\"z\":2.53846},{\"x\":-3.61834,\"y\":5.24206,\"z\":2.53846},{\"x\":-4.41237,\"y\":4.59376,\"z\":2.53846},{\"x\":-5.09212,\"y\":3.82648,\"z\":2.53846},{\"x\":-5.63999,\"y\":2.96009,\"z\":2.53846},{\"x\":-6.04178,\"y\":2.01704,\"z\":2.53846},{\"x\":-6.2871,\"y\":1.02175,\"z\":2.53846},{\"x\":-6.36958,\"y\":7.80049e-16,\"z\":2.53846},{\"x\":-7.41672,\"y\":-9.08286e-16,\"z\":2.69231},{\"x\":-7.32067,\"y\":-1.18973,\"z\":2.69231},{\"x\":-7.03503,\"y\":-2.34864,\"z\":2.69231},{\"x\":-6.56718,\"y\":-3.44672,\"z\":2.69231},{\"x\":-5.92924,\"y\":-4.45554,\"z\":2.69231},{\"x\":-5.13774,\"y\":-5.34896,\"z\":2.69231},{\"x\":-4.21318,\"y\":-6.10384,\"z\":2.69231},{\"x\":-3.17949,\"y\":-6.70064,\"z\":2.69231},{\"x\":-2.06346,\"y\":-7.12389,\"z\":2.69231},{\"x\":-0.893987,\"y\":-7.36264,\"z\":2.69231},{\"x\":0.298641,\"y\":-7.4107,\"z\":2.69231},{\"x\":1.48353,\"y\":-7.26683,\"z\":2.69231},{\"x\":2.63,\"y\":-6.93475,\"z\":2.69231},{\"x\":3.70836,\"y\":-6.42307,\"z\":2.69231},{\"x\":4.69067,\"y\":-5.74503,\"z\":2.69231},{\"x\":5.55149,\"y\":-4.91819,\"z\":2.69231},{\"x\":6.26854,\"y\":-3.96398,\"z\":2.69231},{\"x\":6.82323,\"y\":-2.90711,\"z\":2.69231},{\"x\":7.2012,\"y\":-1.77494,\"z\":2.69231},{\"x\":7.39267,\"y\":-0.596798,\"z\":2.69231},{\"x\":7.39267,\"y\":0.596798,\"z\":2.69231},{\"x\":7.2012,\"y\":1.77494,\"z\":2.69231},{\"x\":6.82323,\"y\":2.90711,\"z\":2.69231},{\"x\":6.26854,\"y\":3.96398,\"z\":2.69231},{\"x\":5.55149,\"y\":4.91819,\"z\":2.69231},{\"x\":4.69067,\"y\":5.74503,\"z\":2.69231},{\"x\":3.70836,\"y\":6.42307,\"z\":2.69231},{\"x\":2.63,\"y\":6.93475,\"z\":2.69231},{\"x\":1.48353,\"y\":7.26683,\"z\":2.69231},{\"x\":0.298641,\"y\":7.4107,\"z\":2.69231},{\"x\":-0.893987,\"y\":7.36264,\"z\":2.69231},{\"x\":-2.06346,\"y\":7.12389,\"z\":2.69231},{\"x\":-3.17949,\"y\":6.70064,\"z\":2.69231},{\"x\":-4.21318,\"y\":6.10384,\"z\":2.69231},{\"x\":-5.13774,\"y\":5.34896,\"z\":2.69231},{\"x\":-5.92924,\"y\":4.45554,\"z\":2.69231},{\"x\":-6.56718,\"y\":3.44672,\"z\":2.69231},{\"x\":-7.03503,\"y\":2.34864,\"z\":2.69231},{\"x\":-7.32067,\"y\":1.18973,\"z\":2.69231},{\"x\":-7.41672,\"y\":9.08286e-16,\"z\":2.69231},{\"x\":-8.63974,\"y\":-1.05806e-15,\"z\":2.84615},{\"x\":-8.52786,\"y\":-1.38591,\"z\":2.84615},{\"x\":-8.19511,\"y\":-2.73593,\"z\":2.84615},{\"x\":-7.65011,\"y\":-4.01509,\"z\":2.84615},{\"x\":-6.90698,\"y\":-5.19026,\"z\":2.84615},{\"x\":-5.98496,\"y\":-6.231,\"z\":2.84615},{\"x\":-4.90793,\"y\":-7.11037,\"z\":2.84615},{\"x\":-3.70379,\"y\":-7.80558,\"z\":2.84615},{\"x\":-2.40373,\"y\":-8.29863,\"z\":2.84615},{\"x\":-1.04141,\"y\":-8.57675,\"z\":2.84615},{\"x\":0.347887,\"y\":-8.63274,\"z\":2.84615},{\"x\":1.72817,\"y\":-8.46514,\"z\":2.84615},{\"x\":3.06369,\"y\":-8.0783,\"z\":2.84615},{\"x\":4.31987,\"y\":-7.48224,\"z\":2.84615},{\"x\":5.46417,\"y\":-6.69239,\"z\":2.84615},{\"x\":6.46694,\"y\":-5.72921,\"z\":2.84615},{\"x\":7.30222,\"y\":-4.61765,\"z\":2.84615},{\"x\":7.94839,\"y\":-3.38649,\"z\":2.84615},{\"x\":8.38869,\"y\":-2.06763,\"z\":2.84615},{\"x\":8.61173,\"y\":-0.69521,\"z\":2.84615},{\"x\":8.61173,\"y\":0.69521,\"z\":2.84615},{\"x\":8.38869,\"y\":2.06763,\"z\":2.84615},{\"x\":7.94839,\"y\":3.38649,\"z\":2.84615},{\"x\":7.30222,\"y\":4.61765,\"z\":2.84615},{\"x\":6.46694,\"y\":5.72921,\"z\":2.84615},{\"x\":5.46417,\"y\":6.69239,\"z\":2.84615},{\"x\":4.31987,\"y\":7.48224,\"z\":2.84615},{\"x\":3.06369,\"y\":8.0783,\"z\":2.84615},{\"x\":1.72817,\"y\":8.46514,\"z\":2.84615},{\"x\":0.347887,\"y\":8.63274,\"z\":2.84615},{\"x\":-1.04141,\"y\":8.57675,\"z\":2.84615},{\"x\":-2.40373,\"y\":8.29863,\"z\":2.84615},{\"x\":-3.70379,\"y\":7.80558,\"z\":2.84615},{\"x\":-4.90793,\"y\":7.11037,\"z\":2.84615},{\"x\":-5.98496,\"y\":6.231,\"z\":2.84615},{\"x\":-6.90698,\"y\":5.19026,\"z\":2.84615},{\"x\":-7.65011,\"y\":4.01509,\"z\":2.84615},{\"x\":-8.19511,\"y\":2.73593,\"z\":2.84615},{\"x\":-8.52786,\"y\":1.38591,\"z\":2.84615},{\"x\":-8.63974,\"y\":1.05806e-15,\"z\":2.84615},{\"x\":-10.0677,\"y\":-1.23293e-15,\"z\":3},{\"x\":-9.93729,\"y\":-1.61497,\"z\":3},{\"x\":-9.54954,\"y\":-3.18811,\"z\":3},{\"x\":-8.91447,\"y\":-4.67868,\"z\":3},{\"x\":-8.04852,\"y\":-6.04807,\"z\":3},{\"x\":-6.97411,\"y\":-7.26082,\"z\":3},{\"x\":-5.71908,\"y\":-8.28552,\"z\":3},{\"x\":-4.31593,\"y\":-9.09563,\"z\":3},{\"x\":-2.801,\"y\":-9.67017,\"z\":3},{\"x\":-1.21352,\"y\":-9.99426,\"z\":3},{\"x\":0.405384,\"y\":-10.0595,\"z\":3},{\"x\":2.01379,\"y\":-9.8642,\"z\":3},{\"x\":3.57004,\"y\":-9.41343,\"z\":3},{\"x\":5.03383,\"y\":-8.71885,\"z\":3},{\"x\":6.36725,\"y\":-7.79846,\"z\":3},{\"x\":7.53575,\"y\":-6.67609,\"z\":3},{\"x\":8.50909,\"y\":-5.38082,\"z\":3},{\"x\":9.26204,\"y\":-3.94619,\"z\":3},{\"x\":9.77511,\"y\":-2.40935,\"z\":3},{\"x\":10.035,\"y\":-0.81011,\"z\":3},{\"x\":10.035,\"y\":0.81011,\"z\":3},{\"x\":9.77511,\"y\":2.40935,\"z\":3},{\"x\":9.26204,\"y\":3.94619,\"z\":3},{\"x\":8.50909,\"y\":5.38082,\"z\":3},{\"x\":7.53575,\"y\":6.67609,\"z\":3},{\"x\":6.36725,\"y\":7.79846,\"z\":3},{\"x\":5.03383,\"y\":8.71885,\"z\":3},{\"x\":3.57004,\"y\":9.41343,\"z\":3},{\"x\":2.01379,\"y\":9.8642,\"z\":3},{\"x\":0.405384,\"y\":10.0595,\"z\":3},{\"x\":-1.21352,\"y\":9.99426,\"z\":3},{\"x\":-2.801,\"y\":9.67017,\"z\":3},{\"x\":-4.31593,\"y\":9.09563,\"z\":3},{\"x\":-5.71908,\"y\":8.28552,\"z\":3},{\"x\":-6.97411,\"y\":7.26082,\"z\":3},{\"x\":-8.04852,\"y\":6.04807,\"z\":3},{\"x\":-8.91447,\"y\":4.67868,\"z\":3},{\"x\":-9.54954,\"y\":3.18811,\"z\":3},{\"x\":-9.93729,\"y\":1.61497,\"z\":3},{\"x\":-10.0677,\"y\":1.23293e-15,\"z\":3}], \"faces\":[[0,1,41,40],[1,2,42,41],[2,3,43,42],[3,4,44,43],[4,5,45,44],[5,6,46,45],[6,7,47,46],[7,8,48,47],[8,9,49,48],[9,10,50,49],[10,11,51,50],[11,12,52,51],[12,13,53,52],[13,14,54,53],[14,15,55,54],[15,16,56,55],[16,17,57,56],[17,18,58,57],[18,19,59,58],[19,20,60,59],[20,21,61,60],[21,22,62,61],[22,23,63,62],[23,24,64,63],[24,25,65,64],[25,26,66,65],[26,27,67,66],[27,28,68,67],[28,29,69,68],[29,30,70,69],[30,31,71,70],[31,32,72,71],[32,33,73,72],[33,34,74,73],[34,35,75,74],[35,36,76,75],[36,37,77,76],[37,38,78,77],[38,39,79,78],[40,41,81,80],[41,42,82,81],[42,43,83,82],[43,44,84,83],[44,45,85,84],[45,46,86,85],[46,47,87,86],[47,48,88,87],[48,49,89,88],[49,50,90,89],[50,51,91,90],[51,52,92,91],[52,53,93,92],[53,54,94,93],[54,55,95,94],[55,56,96,95],[56,57,97,96],[57,58,98,97],[58,59,99,98],[59,60,100,99],[60,61,101,100],[61,62,102,101],[62,63,103,102],[63,64,104,103],[64,65,105,104],[65,66,106,105],[66,67,107,106],[67,68,108,107],[68,69,109,108],[69,70,110,109],[70,71,111,110],[71,72,112,111],[72,73,113,112],[73,74,114,113],[74,75,115,114],[75,76,116,115],[76,77,117,116],[77,78,118,117],[78,79,119,118],[80,81,121,120],[81,82,122,121],[82,83,123,122],[83,84,124,123],[84,85,125,124],[85,86,126,125],[86,87,127,126],[87,88,128,127],[88,89,129,128],[89,90,130,129],[90,91,131,130],[91,92,132,131],[92,93,133,132],[93,94,134,133],[94,95,135,134],[95,96,136,135],[96,97,137,136],[97,98,138,137],[98,99,139,138],[99,100,140,139],[100,101,141,140],[101,102,142,141],[102,103,143,142],[103,104,144,143],[104,105,145,144],[105,106,146,145],[106,107,147,146],[107,108,148,147],[108,109,149,148],[109,110,150,149],[110,111,151,150],[111,112,152,151],[112,113,153,152],[113,114,154,153],[114,115,155,154],[115,116,156,155],[116,117,157,156],[117,118,158,157],[118,119,159,158],[120,121,161,160],[121,122,162,161],[122,123,163,162],[123,124,164,163],[124,125,165,164],[125,126,166,165],[126,127,167,166],[127,128,168,167],[128,129,169,168],[129,130,170,169],[130,131,171,170],[131,132,172,171],[132,133,173,172],[133,134,174,173],[134,135,175,174],[135,136,176,175],[136,137,177,176],[137,138,178,177],[138,139,179,178],[139,140,180,179],[140,141,181,180],[141,142,182,181],[142,143,183,182],[143,144,184,183],[144,145,185,184],[145,146,186,185],[146,147,187,186],[147,148,188,187],[148,149,189,188],[149,150,190,189],[150,151,191,190],[151,152,192,191],[152,153,193,192],[153,154,194,193],[154,155,195,194],[155,156,196,195],[156,157,197,196],[157,158,198,197],[158,159,199,198],[160,161,201,200],[161,162,202,201],[162,163,203,202],[163,164,204,203],[164,165,205,204],[165,166,206,205],[166,167,207,206],[167,168,208,207],[168,169,209,208],[169,170,210,209],[170,171,211,210],[171,172,212,211],[172,173,213,212],[173,174,214,213],[174,175,215,214],[175,176,216,215],[176,177,217,216],[177,178,218,217],[178,179,219,218],[179,180,220,219],[180,181,221,220],[181,182,222,221],[182,183,223,222],[183,184,224,223],[184,185,225,224],[185,186,226,225],[186,187,227,226],[187,188,228,227],[188,189,229,228],[189,190,230,229],[190,191,231,230],[191,192,232,231],[192,193,233,232],[193,194,234,233],[194,195,235,234],[195,196,236,235],[196,197,237,236],[197,198,238,237],[198,199,239,238],[200,201,241,240],[201,202,242,241],[202,203,243,242],[203,204,244,243],[204,205,245,244],[205,206,246,245],[206,207,247,246],[207,208,248,247],[208,209,249,248],[209,210,250,249],[210,211,251,250],[211,212,252,251],[212,213,253,252],[213,214,254,253],[214,215,255,254],[215,216,256,255],[216,217,257,256],[217,218,258,257],[218,219,259,258],[219,220,260,259],[220,221,261,260],[221,222,262,261],[222,223,263,262],[223,224,264,263],[224,225,265,264],[225,226,266,265],[226,227,267,266],[227,228,268,267],[228,229,269,268],[229,230,270,269],[230,231,271,270],[231,232,272,271],[232,233,273,272],[233,234,274,273],[234,235,275,274],[235,236,276,275],[236,237,277,276],[237,238,278,277],[238,239,279,278],[240,241,281,280],[241,242,282,281],[242,243,283,282],[243,244,284,283],[244,245,285,284],[245,246,286,285],[246,247,287,286],[247,248,288,287],[248,249,289,288],[249,250,290,289],[250,251,291,290],[251,252,292,291],[252,253,293,292],[253,254,294,293],[254,255,295,294],[255,256,296,295],[256,257,297,296],[257,258,298,297],[258,259,299,298],[259,260,300,299],[260,261,301,300],[261,262,302,301],[262,263,303,302],[263,264,304,303],[264,265,305,304],[265,266,306,305],[266,267,307,306],[267,268,308,307],[268,269,309,308],[269,270,310,309],[270,271,311,310],[271,272,312,311],[272,273,313,312],[273,274,314,313],[274,275,315,314],[275,276,316,315],[276,277,317,316],[277,278,318,317],[278,279,319,318],[280,281,321,320],[281,282,322,321],[282,283,323,322],[283,284,324,323],[284,285,325,324],[285,286,326,325],[286,287,327,326],[287,288,328,327],[288,289,329,328],[289,290,330,329],[290,291,331,330],[291,292,332,331],[292,293,333,332],[293,294,334,333],[294,295,335,334],[295,296,336,335],[296,297,337,336],[297,298,338,337],[298,299,339,338],[299,300,340,339],[300,301,341,340],[301,302,342,341],[302,303,343,342],[303,304,344,343],[304,305,345,344],[305,306,346,345],[306,307,347,346],[307,308,348,347],[308,309,349,348],[309,310,350,349],[310,311,351,350],[311,312,352,351],[312,313,353,352],[313,314,354,353],[314,315,355,354],[315,316,356,355],[316,317,357,356],[317,318,358,357],[318,319,359,358],[320,321,361,360],[321,322,362,361],[322,323,363,362],[323,324,364,363],[324,325,365,364],[325,326,366,365],[326,327,367,366],[327,328,368,367],[328,329,369,368],[329,330,370,369],[330,331,371,370],[331,332,372,371],[332,333,373,372],[333,334,374,373],[334,335,375,374],[335,336,376,375],[336,337,377,376],[337,338,378,377],[338,339,379,378],[339,340,380,379],[340,341,381,380],[341,342,382,381],[342,343,383,382],[343,344,384,383],[344,345,385,384],[345,346,386,385],[346,347,387,386],[347,348,388,387],[348,349,389,388],[349,350,390,389],[350,351,391,390],[351,352,392,391],[352,353,393,392],[353,354,394,393],[354,355,395,394],[355,356,396,395],[356,357,397,396],[357,358,398,397],[358,359,399,398],[360,361,401,400],[361,362,402,401],[362,363,403,402],[363,364,404,403],[364,365,405,404],[365,366,406,405],[366,367,407,406],[367,368,408,407],[368,369,409,408],[369,370,410,409],[370,371,411,410],[371,372,412,411],[372,373,413,412],[373,374,414,413],[374,375,415,414],[375,376,416,415],[376,377,417,416],[377,378,418,417],[378,379,419,418],[379,380,420,419],[380,381,421,420],[381,382,422,421],[382,383,423,422],[383,384,424,423],[384,385,425,424],[385,386,426,425],[386,387,427,426],[387,388,428,427],[388,389,429,428],[389,390,430,429],[390,391,431,430],[391,392,432,431],[392,393,433,432],[393,394,434,433],[394,395,435,434],[395,396,436,435],[396,397,437,436],[397,398,438,437],[398,399,439,438],[400,401,441,440],[401,402,442,441],[402,403,443,442],[403,404,444,443],[404,405,445,444],[405,406,446,445],[406,407,447,446],[407,408,448,447],[408,409,449,448],[409,410,450,449],[410,411,451,450],[411,412,452,451],[412,413,453,452],[413,414,454,453],[414,415,455,454],[415,416,456,455],[416,417,457,456],[417,418,458,457],[418,419,459,458],[419,420,460,459],[420,421,461,460],[421,422,462,461],[422,423,463,462],[423,424,464,463],[424,425,465,464],[425,426,466,465],[426,427,467,466],[427,428,468,467],[428,429,469,468],[429,430,470,469],[430,431,471,470],[431,432,472,471],[432,433,473,472],[433,434,474,473],[434,435,475,474],[435,436,476,475],[436,437,477,476],[437,438,478,477],[438,439,479,478],[440,441,481,480],[441,442,482,481],[442,443,483,482],[443,444,484,483],[444,445,485,484],[445,446,486,485],[446,447,487,486],[447,448,488,487],[448,449,489,488],[449,450,490,489],[450,451,491,490],[451,452,492,491],[452,453,493,492],[453,454,494,493],[454,455,495,494],[455,456,496,495],[456,457,497,496],[457,458,498,497],[458,459,499,498],[459,460,500,499],[460,461,501,500],[461,462,502,501],[462,463,503,502],[463,464,504,503],[464,465,505,504],[465,466,506,505],[466,467,507,506],[467,468,508,507],[468,469,509,508],[469,470,510,509],[470,471,511,510],[471,472,512,511],[472,473,513,512],[473,474,514,513],[474,475,515,514],[475,476,516,515],[476,477,517,516],[477,478,518,517],[478,479,519,518],[480,481,521,520],[481,482,522,521],[482,483,523,522],[483,484,524,523],[484,485,525,524],[485,486,526,525],[486,487,527,526],[487,488,528,527],[488,489,529,528],[489,490,530,529],[490,491,531,530],[491,492,532,531],[492,493,533,532],[493,494,534,533],[494,495,535,534],[495,496,536,535],[496,497,537,536],[497,498,538,537],[498,499,539,538],[499,500,540,539],[500,501,541,540],[501,502,542,541],[502,503,543,542],[503,504,544,543],[504,505,545,544],[505,506,546,545],[506,507,547,546],[507,508,548,547],[508,509,549,548],[509,510,550,549],[510,511,551,550],[511,512,552,551],[512,513,553,552],[513,514,554,553],[514,515,555,554],[515,516,556,555],[516,517,557,556],[517,518,558,557],[518,519,559,558],[520,521,561,560],[521,522,562,561],[522,523,563,562],[523,524,564,563],[524,525,565,564],[525,526,566,565],[526,527,567,566],[527,528,568,567],[528,529,569,568],[529,530,570,569],[530,531,571,570],[531,532,572,571],[532,533,573,572],[533,534,574,573],[534,535,575,574],[535,536,576,575],[536,537,577,576],[537,538,578,577],[538,539,579,578],[539,540,580,579],[540,541,581,580],[541,542,582,581],[542,543,583,582],[543,544,584,583],[544,545,585,584],[545,546,586,585],[546,547,587,586],[547,548,588,587],[548,549,589,588],[549,550,590,589],[550,551,591,590],[551,552,592,591],[552,553,593,592],[553,554,594,593],[554,555,595,594],[555,556,596,595],[556,557,597,596],[557,558,598,597],[558,559,599,598],[560,561,601,600],[561,562,602,601],[562,563,603,602],[563,564,604,603],[564,565,605,604],[565,566,606,605],[566,567,607,606],[567,568,608,607],[568,569,609,608],[569,570,610,609],[570,571,611,610],[571,572,612,611],[572,573,613,612],[573,574,614,613],[574,575,615,614],[575,576,616,615],[576,577,617,616],[577,578,618,617],[578,579,619,618],[579,580,620,619],[580,581,621,620],[581,582,622,621],[582,583,623,622],[583,584,624,623],[584,585,625,624],[585,586,626,625],[586,587,627,626],[587,588,628,627],[588,589,629,628],[589,590,630,629],[590,591,631,630],[591,592,632,631],[592,593,633,632],[593,594,634,633],[594,595,635,634],[595,596,636,635],[596,597,637,636],[597,598,638,637],[598,599,639,638],[600,601,641,640],[601,602,642,641],[602,603,643,642],[603,604,644,643],[604,605,645,644],[605,606,646,645],[606,607,647,646],[607,608,648,647],[608,609,649,648],[609,610,650,649],[610,611,651,650],[611,612,652,651],[612,613,653,652],[613,614,654,653],[614,615,655,654],[615,616,656,655],[616,617,657,656],[617,618,658,657],[618,619,659,658],[619,620,660,659],[620,621,661,660],[621,622,662,661],[622,623,663,662],[623,624,664,663],[624,625,665,664],[625,626,666,665],[626,627,667,666],[627,628,668,667],[628,629,669,668],[629,630,670,669],[630,631,671,670],[631,632,672,671],[632,633,673,672],[633,634,674,673],[634,635,675,674],[635,636,676,675],[636,637,677,676],[637,638,678,677],[638,639,679,678],[640,641,681,680],[641,642,682,681],[642,643,683,682],[643,644,684,683],[644,645,685,684],[645,646,686,685],[646,647,687,686],[647,648,688,687],[648,649,689,688],[649,650,690,689],[650,651,691,690],[651,652,692,691],[652,653,693,692],[653,654,694,693],[654,655,695,694],[655,656,696,695],[656,657,697,696],[657,658,698,697],[658,659,699,698],[659,660,700,699],[660,661,701,700],[661,662,702,701],[662,663,703,702],[663,664,704,703],[664,665,705,704],[665,666,706,705],[666,667,707,706],[667,668,708,707],[668,669,709,708],[669,670,710,709],[670,671,711,710],[671,672,712,711],[672,673,713,712],[673,674,714,713],[674,675,715,714],[675,676,716,715],[676,677,717,716],[677,678,718,717],[678,679,719,718],[680,681,721,720],[681,682,722,721],[682,683,723,722],[683,684,724,723],[684,685,725,724],[685,686,726,725],[686,687,727,726],[687,688,728,727],[688,689,729,728],[689,690,730,729],[690,691,731,730],[691,692,732,731],[692,693,733,732],[693,694,734,733],[694,695,735,734],[695,696,736,735],[696,697,737,736],[697,698,738,737],[698,699,739,738],[699,700,740,739],[700,701,741,740],[701,702,742,741],[702,703,743,742],[703,704,744,743],[704,705,745,744],[705,706,746,745],[706,707,747,746],[707,708,748,747],[708,709,749,748],[709,710,750,749],[710,711,751,750],[711,712,752,751],[712,713,753,752],[713,714,754,753],[714,715,755,754],[715,716,756,755],[716,717,757,756],[717,718,758,757],[718,719,759,758],[720,721,761,760],[721,722,762,761],[722,723,763,762],[723,724,764,763],[724,725,765,764],[725,726,766,765],[726,727,767,766],[727,728,768,767],[728,729,769,768],[729,730,770,769],[730,731,771,770],[731,732,772,771],[732,733,773,772],[733,734,774,773],[734,735,775,774],[735,736,776,775],[736,737,777,776],[737,738,778,777],[738,739,779,778],[739,740,780,779],[740,741,781,780],[741,742,782,781],[742,743,783,782],[743,744,784,783],[744,745,785,784],[745,746,786,785],[746,747,787,786],[747,748,788,787],[748,749,789,788],[749,750,790,789],[750,751,791,790],[751,752,792,791],[752,753,793,792],[753,754,794,793],[754,755,795,794],[755,756,796,795],[756,757,797,796],[757,758,798,797],[758,759,799,798],[760,761,801,800],[761,762,802,801],[762,763,803,802],[763,764,804,803],[764,765,805,804],[765,766,806,805],[766,767,807,806],[767,768,808,807],[768,769,809,808],[769,770,810,809],[770,771,811,810],[771,772,812,811],[772,773,813,812],[773,774,814,813],[774,775,815,814],[775,776,816,815],[776,777,817,816],[777,778,818,817],[778,779,819,818],[779,780,820,819],[780,781,821,820],[781,782,822,821],[782,783,823,822],[783,784,824,823],[784,785,825,824],[785,786,826,825],[786,787,827,826],[787,788,828,827],[788,789,829,828],[789,790,830,829],[790,791,831,830],[791,792,832,831],[792,793,833,832],[793,794,834,833],[794,795,835,834],[795,796,836,835],[796,797,837,836],[797,798,838,837],[798,799,839,838],[800,801,841,840],[801,802,842,841],[802,803,843,842],[803,804,844,843],[804,805,845,844],[805,806,846,845],[806,807,847,846],[807,808,848,847],[808,809,849,848],[809,810,850,849],[810,811,851,850],[811,812,852,851],[812,813,853,852],[813,814,854,853],[814,815,855,854],[815,816,856,855],[816,817,857,856],[817,818,858,857],[818,819,859,858],[819,820,860,859],[820,821,861,860],[821,822,862,861],[822,823,863,862],[823,824,864,863],[824,825,865,864],[825,826,866,865],[826,827,867,866],[827,828,868,867],[828,829,869,868],[829,830,870,869],[830,831,871,870],[831,832,872,871],[832,833,873,872],[833,834,874,873],[834,835,875,874],[835,836,876,875],[836,837,877,876],[837,838,878,877],[838,839,879,878],[840,841,881,880],[841,842,882,881],[842,843,883,882],[843,844,884,883],[844,845,885,884],[845,846,886,885],[846,847,887,886],[847,848,888,887],[848,849,889,888],[849,850,890,889],[850,851,891,890],[851,852,892,891],[852,853,893,892],[853,854,894,893],[854,855,895,894],[855,856,896,895],[856,857,897,896],[857,858,898,897],[858,859,899,898],[859,860,900,899],[860,861,901,900],[861,862,902,901],[862,863,903,902],[863,864,904,903],[864,865,905,904],[865,866,906,905],[866,867,907,906],[867,868,908,907],[868,869,909,908],[869,870,910,909],[870,871,911,910],[871,872,912,911],[872,873,913,912],[873,874,914,913],[874,875,915,914],[875,876,916,915],[876,877,917,916],[877,878,918,917],[878,879,919,918],[880,881,921,920],[881,882,922,921],[882,883,923,922],[883,884,924,923],[884,885,925,924],[885,886,926,925],[886,887,927,926],[887,888,928,927],[888,889,929,928],[889,890,930,929],[890,891,931,930],[891,892,932,931],[892,893,933,932],[893,894,934,933],[894,895,935,934],[895,896,936,935],[896,897,937,936],[897,898,938,937],[898,899,939,938],[899,900,940,939],[900,901,941,940],[901,902,942,941],[902,903,943,942],[903,904,944,943],[904,905,945,944],[905,906,946,945],[906,907,947,946],[907,908,948,947],[908,909,949,948],[909,910,950,949],[910,911,951,950],[911,912,952,951],[912,913,953,952],[913,914,954,953],[914,915,955,954],[915,916,956,955],[916,917,957,956],[917,918,958,957],[918,919,959,958],[920,921,961,960],[921,922,962,961],[922,923,963,962],[923,924,964,963],[924,925,965,964],[925,926,966,965],[926,927,967,966],[927,928,968,967],[928,929,969,968],[929,930,970,969],[930,931,971,970],[931,932,972,971],[932,933,973,972],[933,934,974,973],[934,935,975,974],[935,936,976,975],[936,937,977,976],[937,938,978,977],[938,939,979,978],[939,940,980,979],[940,941,981,980],[941,942,982,981],[942,943,983,982],[943,944,984,983],[944,945,985,984],[945,946,986,985],[946,947,987,986],[947,948,988,987],[948,949,989,988],[949,950,990,989],[950,951,991,990],[951,952,992,991],[952,953,993,992],[953,954,994,993],[954,955,995,994],[955,956,996,995],[956,957,997,996],[957,958,998,997],[958,959,999,998],[960,961,1001,1000],[961,962,1002,1001],[962,963,1003,1002],[963,964,1004,1003],[964,965,1005,1004],[965,966,1006,1005],[966,967,1007,1006],[967,968,1008,1007],[968,969,1009,1008],[969,970,1010,1009],[970,971,1011,1010],[971,972,1012,1011],[972,973,1013,1012],[973,974,1014,1013],[974,975,1015,1014],[975,976,1016,1015],[976,977,1017,1016],[977,978,1018,1017],[978,979,1019,1018],[979,980,1020,1019],[980,981,1021,1020],[981,982,1022,1021],[982,983,1023,1022],[983,984,1024,1023],[984,985,1025,1024],[985,986,1026,1025],[986,987,1027,1026],[987,988,1028,1027],[988,989,1029,1028],[989,990,1030,1029],[990,991,1031,1030],[991,992,1032,1031],[992,993,1033,1032],[993,994,1034,1033],[994,995,1035,1034],[995,996,1036,1035],[996,997,1037,1036],[997,998,1038,1037],[998,999,1039,1038],[1000,1001,1041,1040],[1001,1002,1042,1041],[1002,1003,1043,1042],[1003,1004,1044,1043],[1004,1005,1045,1044],[1005,1006,1046,1045],[1006,1007,1047,1046],[1007,1008,1048,1047],[1008,1009,1049,1048],[1009,1010,1050,1049],[1010,1011,1051,1050],[1011,1012,1052,1051],[1012,1013,1053,1052],[1013,1014,1054,1053],[1014,1015,1055,1054],[1015,1016,1056,1055],[1016,1017,1057,1056],[1017,1018,1058,1057],[1018,1019,1059,1058],[1019,1020,1060,1059],[1020,1021,1061,1060],[1021,1022,1062,1061],[1022,1023,1063,1062],[1023,1024,1064,1063],[1024,1025,1065,1064],[1025,1026,1066,1065],[1026,1027,1067,1066],[1027,1028,1068,1067],[1028,1029,1069,1068],[1029,1030,1070,1069],[1030,1031,1071,1070],[1031,1032,1072,1071],[1032,1033,1073,1072],[1033,1034,1074,1073],[1034,1035,1075,1074],[1035,1036,1076,1075],[1036,1037,1077,1076],[1037,1038,1078,1077],[1038,1039,1079,1078],[1040,1041,1081,1080],[1041,1042,1082,1081],[1042,1043,1083,1082],[1043,1044,1084,1083],[1044,1045,1085,1084],[1045,1046,1086,1085],[1046,1047,1087,1086],[1047,1048,1088,1087],[1048,1049,1089,1088],[1049,1050,1090,1089],[1050,1051,1091,1090],[1051,1052,1092,1091],[1052,1053,1093,1092],[1053,1054,1094,1093],[1054,1055,1095,1094],[1055,1056,1096,1095],[1056,1057,1097,1096],[1057,1058,1098,1097],[1058,1059,1099,1098],[1059,1060,1100,1099],[1060,1061,1101,1100],[1061,1062,1102,1101],[1062,1063,1103,1102],[1063,1064,1104,1103],[1064,1065,1105,1104],[1065,1066,1106,1105],[1066,1067,1107,1106],[1067,1068,1108,1107],[1068,1069,1109,1108],[1069,1070,1110,1109],[1070,1071,1111,1110],[1071,1072,1112,1111],[1072,1073,1113,1112],[1073,1074,1114,1113],[1074,1075,1115,1114],[1075,1076,1116,1115],[1076,1077,1117,1116],[1077,1078,1118,1117],[1078,1079,1119,1118],[1080,1081,1121,1120],[1081,1082,1122,1121],[1082,1083,1123,1122],[1083,1084,1124,1123],[1084,1085,1125,1124],[1085,1086,1126,1125],[1086,1087,1127,1126],[1087,1088,1128,1127],[1088,1089,1129,1128],[1089,1090,1130,1129],[1090,1091,1131,1130],[1091,1092,1132,1131],[1092,1093,1133,1132],[1093,1094,1134,1133],[1094,1095,1135,1134],[1095,1096,1136,1135],[1096,1097,1137,1136],[1097,1098,1138,1137],[1098,1099,1139,1138],[1099,1100,1140,1139],[1100,1101,1141,1140],[1101,1102,1142,1141],[1102,1103,1143,1142],[1103,1104,1144,1143],[1104,1105,1145,1144],[1105,1106,1146,1145],[1106,1107,1147,1146],[1107,1108,1148,1147],[1108,1109,1149,1148],[1109,1110,1150,1149],[1110,1111,1151,1150],[1111,1112,1152,1151],[1112,1113,1153,1152],[1113,1114,1154,1153],[1114,1115,1155,1154],[1115,1116,1156,1155],[1116,1117,1157,1156],[1117,1118,1158,1157],[1118,1119,1159,1158],[1120,1121,1161,1160],[1121,1122,1162,1161],[1122,1123,1163,1162],[1123,1124,1164,1163],[1124,1125,1165,1164],[1125,1126,1166,1165],[1126,1127,1167,1166],[1127,1128,1168,1167],[1128,1129,1169,1168],[1129,1130,1170,1169],[1130,1131,1171,1170],[1131,1132,1172,1171],[1132,1133,1173,1172],[1133,1134,1174,1173],[1134,1135,1175,1174],[1135,1136,1176,1175],[1136,1137,1177,1176],[1137,1138,1178,1177],[1138,1139,1179,1178],[1139,1140,1180,1179],[1140,1141,1181,1180],[1141,1142,1182,1181],[1142,1143,1183,1182],[1143,1144,1184,1183],[1144,1145,1185,1184],[1145,1146,1186,1185],[1146,1147,1187,1186],[1147,1148,1188,1187],[1148,1149,1189,1188],[1149,1150,1190,1189],[1150,1151,1191,1190],[1151,1152,1192,1191],[1152,1153,1193,1192],[1153,1154,1194,1193],[1154,1155,1195,1194],[1155,1156,1196,1195],[1156,1157,1197,1196],[1157,1158,1198,1197],[1158,1159,1199,1198],[1160,1161,1201,1200],[1161,1162,1202,1201],[1162,1163,1203,1202],[1163,1164,1204,1203],[1164,1165,1205,1204],[1165,1166,1206,1205],[1166,1167,1207,1206],[1167,1168,1208,1207],[1168,1169,1209,1208],[1169,1170,1210,1209],[1170,1171,1211,1210],[1171,1172,1212,1211],[1172,1173,1213,1212],[1173,1174,1214,1213],[1174,1175,1215,1214],[1175,1176,1216,1215],[1176,1177,1217,1216],[1177,1178,1218,1217],[1178,1179,1219,1218],[1179,1180,1220,1219],[1180,1181,1221,1220],[1181,1182,1222,1221],[1182,1183,1223,1222],[1183,1184,1224,1223],[1184,1185,1225,1224],[1185,1186,1226,1225],[1186,1187,1227,1226],[1187,1188,1228,1227],[1188,1189,1229,1228],[1189,1190,1230,1229],[1190,1191,1231,1230],[1191,1192,1232,1231],[1192,1193,1233,1232],[1193,1194,1234,1233],[1194,1195,1235,1234],[1195,1196,1236,1235],[1196,1197,1237,1236],[1197,1198,1238,1237],[1198,1199,1239,1238],[1200,1201,1241,1240],[1201,1202,1242,1241],[1202,1203,1243,1242],[1203,1204,1244,1243],[1204,1205,1245,1244],[1205,1206,1246,1245],[1206,1207,1247,1246],[1207,1208,1248,1247],[1208,1209,1249,1248],[1209,1210,1250,1249],[1210,1211,1251,1250],[1211,1212,1252,1251],[1212,1213,1253,1252],[1213,1214,1254,1253],[1214,1215,1255,1254],[1215,1216,1256,1255],[1216,1217,1257,1256],[1217,1218,1258,1257],[1218,1219,1259,1258],[1219,1220,1260,1259],[1220,1221,1261,1260],[1221,1222,1262,1261],[1222,1223,1263,1262],[1223,1224,1264,1263],[1224,1225,1265,1264],[1225,1226,1266,1265],[1226,1227,1267,1266],[1227,1228,1268,1267],[1228,1229,1269,1268],[1229,1230,1270,1269],[1230,1231,1271,1270],[1231,1232,1272,1271],[1232,1233,1273,1272],[1233,1234,1274,1273],[1234,1235,1275,1274],[1235,1236,1276,1275],[1236,1237,1277,1276],[1237,1238,1278,1277],[1238,1239,1279,1278],[1240,1241,1281,1280],[1241,1242,1282,1281],[1242,1243,1283,1282],[1243,1244,1284,1283],[1244,1245,1285,1284],[1245,1246,1286,1285],[1246,1247,1287,1286],[1247,1248,1288,1287],[1248,1249,1289,1288],[1249,1250,1290,1289],[1250,1251,1291,1290],[1251,1252,1292,1291],[1252,1253,1293,1292],[1253,1254,1294,1293],[1254,1255,1295,1294],[1255,1256,1296,1295],[1256,1257,1297,1296],[1257,1258,1298,1297],[1258,1259,1299,1298],[1259,1260,1300,1299],[1260,1261,1301,1300],[1261,1262,1302,1301],[1262,1263,1303,1302],[1263,1264,1304,1303],[1264,1265,1305,1304],[1265,1266,1306,1305],[1266,1267,1307,1306],[1267,1268,1308,1307],[1268,1269,1309,1308],[1269,1270,1310,1309],[1270,1271,1311,1310],[1271,1272,1312,1311],[1272,1273,1313,1312],[1273,1274,1314,1313],[1274,1275,1315,1314],[1275,1276,1316,1315],[1276,1277,1317,1316],[1277,1278,1318,1317],[1278,1279,1319,1318],[1280,1281,1321,1320],[1281,1282,1322,1321],[1282,1283,1323,1322],[1283,1284,1324,1323],[1284,1285,1325,1324],[1285,1286,1326,1325],[1286,1287,1327,1326],[1287,1288,1328,1327],[1288,1289,1329,1328],[1289,1290,1330,1329],[1290,1291,1331,1330],[1291,1292,1332,1331],[1292,1293,1333,1332],[1293,1294,1334,1333],[1294,1295,1335,1334],[1295,1296,1336,1335],[1296,1297,1337,1336],[1297,1298,1338,1337],[1298,1299,1339,1338],[1299,1300,1340,1339],[1300,1301,1341,1340],[1301,1302,1342,1341],[1302,1303,1343,1342],[1303,1304,1344,1343],[1304,1305,1345,1344],[1305,1306,1346,1345],[1306,1307,1347,1346],[1307,1308,1348,1347],[1308,1309,1349,1348],[1309,1310,1350,1349],[1310,1311,1351,1350],[1311,1312,1352,1351],[1312,1313,1353,1352],[1313,1314,1354,1353],[1314,1315,1355,1354],[1315,1316,1356,1355],[1316,1317,1357,1356],[1317,1318,1358,1357],[1318,1319,1359,1358],[1320,1321,1361,1360],[1321,1322,1362,1361],[1322,1323,1363,1362],[1323,1324,1364,1363],[1324,1325,1365,1364],[1325,1326,1366,1365],[1326,1327,1367,1366],[1327,1328,1368,1367],[1328,1329,1369,1368],[1329,1330,1370,1369],[1330,1331,1371,1370],[1331,1332,1372,1371],[1332,1333,1373,1372],[1333,1334,1374,1373],[1334,1335,1375,1374],[1335,1336,1376,1375],[1336,1337,1377,1376],[1337,1338,1378,1377],[1338,1339,1379,1378],[1339,1340,1380,1379],[1340,1341,1381,1380],[1341,1342,1382,1381],[1342,1343,1383,1382],[1343,1344,1384,1383],[1344,1345,1385,1384],[1345,1346,1386,1385],[1346,1347,1387,1386],[1347,1348,1388,1387],[1348,1349,1389,1388],[1349,1350,1390,1389],[1350,1351,1391,1390],[1351,1352,1392,1391],[1352,1353,1393,1392],[1353,1354,1394,1393],[1354,1355,1395,1394],[1355,1356,1396,1395],[1356,1357,1397,1396],[1357,1358,1398,1397],[1358,1359,1399,1398],[1360,1361,1401,1400],[1361,1362,1402,1401],[1362,1363,1403,1402],[1363,1364,1404,1403],[1364,1365,1405,1404],[1365,1366,1406,1405],[1366,1367,1407,1406],[1367,1368,1408,1407],[1368,1369,1409,1408],[1369,1370,1410,1409],[1370,1371,1411,1410],[1371,1372,1412,1411],[1372,1373,1413,1412],[1373,1374,1414,1413],[1374,1375,1415,1414],[1375,1376,1416,1415],[1376,1377,1417,1416],[1377,1378,1418,1417],[1378,1379,1419,1418],[1379,1380,1420,1419],[1380,1381,1421,1420],[1381,1382,1422,1421],[1382,1383,1423,1422],[1383,1384,1424,1423],[1384,1385,1425,1424],[1385,1386,1426,1425],[1386,1387,1427,1426],[1387,1388,1428,1427],[1388,1389,1429,1428],[1389,1390,1430,1429],[1390,1391,1431,1430],[1391,1392,1432,1431],[1392,1393,1433,1432],[1393,1394,1434,1433],[1394,1395,1435,1434],[1395,1396,1436,1435],[1396,1397,1437,1436],[1397,1398,1438,1437],[1398,1399,1439,1438],[1400,1401,1441,1440],[1401,1402,1442,1441],[1402,1403,1443,1442],[1403,1404,1444,1443],[1404,1405,1445,1444],[1405,1406,1446,1445],[1406,1407,1447,1446],[1407,1408,1448,1447],[1408,1409,1449,1448],[1409,1410,1450,1449],[1410,1411,1451,1450],[1411,1412,1452,1451],[1412,1413,1453,1452],[1413,1414,1454,1453],[1414,1415,1455,1454],[1415,1416,1456,1455],[1416,1417,1457,1456],[1417,1418,1458,1457],[1418,1419,1459,1458],[1419,1420,1460,1459],[1420,1421,1461,1460],[1421,1422,1462,1461],[1422,1423,1463,1462],[1423,1424,1464,1463],[1424,1425,1465,1464],[1425,1426,1466,1465],[1426,1427,1467,1466],[1427,1428,1468,1467],[1428,1429,1469,1468],[1429,1430,1470,1469],[1430,1431,1471,1470],[1431,1432,1472,1471],[1432,1433,1473,1472],[1433,1434,1474,1473],[1434,1435,1475,1474],[1435,1436,1476,1475],[1436,1437,1477,1476],[1437,1438,1478,1477],[1438,1439,1479,1478],[1440,1441,1481,1480],[1441,1442,1482,1481],[1442,1443,1483,1482],[1443,1444,1484,1483],[1444,1445,1485,1484],[1445,1446,1486,1485],[1446,1447,1487,1486],[1447,1448,1488,1487],[1448,1449,1489,1488],[1449,1450,1490,1489],[1450,1451,1491,1490],[1451,1452,1492,1491],[1452,1453,1493,1492],[1453,1454,1494,1493],[1454,1455,1495,1494],[1455,1456,1496,1495],[1456,1457,1497,1496],[1457,1458,1498,1497],[1458,1459,1499,1498],[1459,1460,1500,1499],[1460,1461,1501,1500],[1461,1462,1502,1501],[1462,1463,1503,1502],[1463,1464,1504,1503],[1464,1465,1505,1504],[1465,1466,1506,1505],[1466,1467,1507,1506],[1467,1468,1508,1507],[1468,1469,1509,1508],[1469,1470,1510,1509],[1470,1471,1511,1510],[1471,1472,1512,1511],[1472,1473,1513,1512],[1473,1474,1514,1513],[1474,1475,1515,1514],[1475,1476,1516,1515],[1476,1477,1517,1516],[1477,1478,1518,1517],[1478,1479,1519,1518],[1480,1481,1521,1520],[1481,1482,1522,1521],[1482,1483,1523,1522],[1483,1484,1524,1523],[1484,1485,1525,1524],[1485,1486,1526,1525],[1486,1487,1527,1526],[1487,1488,1528,1527],[1488,1489,1529,1528],[1489,1490,1530,1529],[1490,1491,1531,1530],[1491,1492,1532,1531],[1492,1493,1533,1532],[1493,1494,1534,1533],[1494,1495,1535,1534],[1495,1496,1536,1535],[1496,1497,1537,1536],[1497,1498,1538,1537],[1498,1499,1539,1538],[1499,1500,1540,1539],[1500,1501,1541,1540],[1501,1502,1542,1541],[1502,1503,1543,1542],[1503,1504,1544,1543],[1504,1505,1545,1544],[1505,1506,1546,1545],[1506,1507,1547,1546],[1507,1508,1548,1547],[1508,1509,1549,1548],[1509,1510,1550,1549],[1510,1511,1551,1550],[1511,1512,1552,1551],[1512,1513,1553,1552],[1513,1514,1554,1553],[1514,1515,1555,1554],[1515,1516,1556,1555],[1516,1517,1557,1556],[1517,1518,1558,1557],[1518,1519,1559,1558],[1520,1521,1561,1560],[1521,1522,1562,1561],[1522,1523,1563,1562],[1523,1524,1564,1563],[1524,1525,1565,1564],[1525,1526,1566,1565],[1526,1527,1567,1566],[1527,1528,1568,1567],[1528,1529,1569,1568],[1529,1530,1570,1569],[1530,1531,1571,1570],[1531,1532,1572,1571],[1532,1533,1573,1572],[1533,1534,1574,1573],[1534,1535,1575,1574],[1535,1536,1576,1575],[1536,1537,1577,1576],[1537,1538,1578,1577],[1538,1539,1579,1578],[1539,1540,1580,1579],[1540,1541,1581,1580],[1541,1542,1582,1581],[1542,1543,1583,1582],[1543,1544,1584,1583],[1544,1545,1585,1584],[1545,1546,1586,1585],[1546,1547,1587,1586],[1547,1548,1588,1587],[1548,1549,1589,1588],[1549,1550,1590,1589],[1550,1551,1591,1590],[1551,1552,1592,1591],[1552,1553,1593,1592],[1553,1554,1594,1593],[1554,1555,1595,1594],[1555,1556,1596,1595],[1556,1557,1597,1596],[1557,1558,1598,1597],[1558,1559,1599,1598]], \"color\":\"#ffff00\", \"opacity\":1}];\n    for ( var i=0 ; i < surfaces.length ; i++ ) addSurface( surfaces[i] );\n\n    function addSurface( json ) {\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.vertices.length ; i++ ) {\n            var v = json.vertices[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v.x, a[1]*v.y, a[2]*v.z ) );\n        }\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length - 2 ; j++ ) {\n                geometry.faces.push( new THREE.Face3( f[0], f[j+1], f[j+2] ) );\n            }\n        }\n        geometry.computeVertexNormals();\n\n        var transparent = json.opacity < 1 ? true : false;\n        var material = new THREE.MeshPhongMaterial( {\n                                     color: json.color, side: THREE.DoubleSide,\n                                     transparent: transparent, opacity: json.opacity,\n                                     shininess: 20 } );\n\n        var c = geometry.center().multiplyScalar( -1 );\n        var mesh = new THREE.Mesh( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        scene.add( mesh );\n    }\n\n    var scratch = new THREE.Vector3();\n\n    function render() {\n\n        if ( animate ) requestAnimationFrame( render );\n        renderer.render( scene, camera );\n\n        for ( var i=0 ; i < scene.children.length ; i++ ) {\n            if ( scene.children[i].type === 'Sprite' ) {\n                var sprite = scene.children[i];\n                var adjust = scratch.addVectors( sprite.position, scene.position )\n                               .sub( camera.position ).length() / 5;\n                sprite.scale.set( adjust, .25*adjust ); // ratio of canvas width to height\n            }\n        }\n    }\n\n    render();\n    controls.update();\n    if ( !animate ) render();\n\n"
  },
  {
    "path": "examples/sample-article/media/code/threejs/saddle.js",
    "content": "    var options = {\"animate\": false, \"animationControls\": true, \"aspectRatio\": [1.0, 1.0, 1.0], \"autoPlay\": true, \"axes\": false, \"axesLabels\": [\"x\", \"y\", \"z\"], \"axesLabelsStyle\": null, \"decimals\": 2, \"delay\": 20, \"frame\": true, \"loop\": true, \"projection\": \"perspective\", \"theme\": \"light\", \"viewpoint\": false};\n    var animate = options.animate;\n\n    if ( options.theme === 'dark' )\n        document.body.className = 'dark-theme';\n\n    var scene = new THREE.Scene();\n\n    var renderer = new THREE.WebGLRenderer( { antialias: true, preserveDrawingBuffer: true } );\n    renderer.setPixelRatio( window.devicePixelRatio );\n    renderer.setSize( window.innerWidth, window.innerHeight );\n    renderer.setClearColor( options.theme === 'dark' ? 0 : 0xffffff, 1 );\n    // RAB edit 2022-01-10\n    // document.body.appendChild( renderer.domElement );\n    var renderDiv = document.getElementById(\"threejs-saddle\");\n    renderDiv.appendChild( renderer.domElement );\n    renderer.domElement.style.display = 'block'; // Prevents scroll bars\n\n    var b = [{\"x\":-1.0, \"y\":-1.0, \"z\":-0.9993425378040762}, {\"x\":1.0, \"y\":1.0, \"z\":0.9993425378040762}]; // bounds\n\n    if ( b[0].x === b[1].x ) {\n        b[0].x -= 1;\n        b[1].x += 1;\n    }\n    if ( b[0].y === b[1].y ) {\n        b[0].y -= 1;\n        b[1].y += 1;\n    }\n    if ( b[0].z === b[1].z ) {\n        b[0].z -= 1;\n        b[1].z += 1;\n    }\n\n    var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 )\n                            + Math.pow( b[1].y - b[0].y, 2 ) );\n    var xRange = b[1].x - b[0].x;\n    var yRange = b[1].y - b[0].y;\n    var zRange = b[1].z - b[0].z;\n\n    var ar = options.aspectRatio;\n    var a = [ ar[0], ar[1], ar[2] ]; // aspect multipliers\n    var autoAspect = 2.5;\n    if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange;\n\n    // Distance from (xMid,yMid,zMid) to any corner of the bounding box, after applying aspectRatio\n    var midToCorner = Math.sqrt( a[0]*a[0]*xRange*xRange + a[1]*a[1]*yRange*yRange + a[2]*a[2]*zRange*zRange ) / 2;\n\n    var xMid = ( b[0].x + b[1].x ) / 2;\n    var yMid = ( b[0].y + b[1].y ) / 2;\n    var zMid = ( b[0].z + b[1].z ) / 2;\n\n    var box = new THREE.Geometry();\n    box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) );\n    box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) );\n    var boxMesh = new THREE.Line( box );\n    var boxColor = options.theme === 'dark' ? 'white' : 'black';\n    if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, boxColor ) );\n\n    if ( options.axesLabels ) {\n\n        var d = options.decimals; // decimals\n        var offsetRatio = 0.1;\n        var al = options.axesLabels;\n        var als = options.axesLabelsStyle || [{}, {}, {}];\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var xm = xMid.toFixed(d);\n        if ( /^-0.?0*$/.test(xm) ) xm = xm.substr(1);\n        addLabel( al[0] + '=' + xm, a[0]*xMid, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n        addLabel( ( b[0].x ).toFixed(d), a[0]*b[0].x, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n        addLabel( ( b[1].x ).toFixed(d), a[0]*b[1].x, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n\n        var offset = offsetRatio * a[0]*( b[1].x - b[0].x );\n        var ym = yMid.toFixed(d);\n        if ( /^-0.?0*$/.test(ym) ) ym = ym.substr(1);\n        addLabel( al[1] + '=' + ym, a[0]*b[1].x+offset, a[1]*yMid, a[2]*b[0].z, als[1] );\n        addLabel( ( b[0].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[0].y, a[2]*b[0].z, als[1] );\n        addLabel( ( b[1].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[1].y, a[2]*b[0].z, als[1] );\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var zm = zMid.toFixed(d);\n        if ( /^-0.?0*$/.test(zm) ) zm = zm.substr(1);\n        addLabel( al[2] + '=' + zm, a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*zMid, als[2] );\n        addLabel( ( b[0].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[0].z, als[2] );\n        addLabel( ( b[1].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[1].z, als[2] );\n\n    }\n\n    function addLabel( text, x, y, z, style ) {\n\n        var color = style.color || 'black';\n        var fontSize = style.fontSize || 14;\n        var fontFamily = style.fontFamily || 'monospace';\n        var fontStyle = style.fontStyle || 'normal';\n        var fontWeight = style.fontWeight || 'normal';\n        var opacity = style.opacity || 1;\n\n        if ( options.theme === 'dark' )\n            if ( color === 'black' || color === '#000000' )\n                color = 'white';\n\n        if ( Array.isArray( fontStyle ) ) {\n            fontFamily = fontFamily.map( function( f ) {\n                // Need to put quotes around fonts that have whitespace in their names.\n                return /\\s/.test( f ) ? '\"' + f + '\"' : f;\n            }).join(', ');\n        }\n\n        var canvas = document.createElement( 'canvas' );\n        var context = canvas.getContext( '2d' );\n        var pixelRatio = Math.round( window.devicePixelRatio );\n\n        // For example: italic bold 20px \"Times New Roman\", Georgia, serif\n        var font = [fontStyle, fontWeight, fontSize + 'px', fontFamily].join(' ');\n\n        context.font = font;\n        var width = context.measureText( text ).width;\n        var height = fontSize;\n\n        // The dimensions of the canvas's underlying image data need to be powers\n        // of two in order for the resulting texture to support mipmapping.\n        canvas.width = THREE.MathUtils.ceilPowerOfTwo( width * pixelRatio );\n        canvas.height = THREE.MathUtils.ceilPowerOfTwo( height * pixelRatio );\n\n        // Re-compute the unscaled dimensions after the power of two conversion.\n        width = canvas.width / pixelRatio;\n        height = canvas.height / pixelRatio;\n\n        canvas.style.width = width + 'px';\n        canvas.style.height = height + 'px';\n\n        context.scale( pixelRatio, pixelRatio );\n        context.fillStyle = color;\n        context.font = font; // Must be set again after measureText.\n        context.textAlign = 'center';\n        context.textBaseline = 'middle';\n        context.fillText( text, width/2, height/2 );\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var materialOptions = { map: texture, sizeAttenuation: false, depthWrite: false };\n        if ( opacity < 1 ) {\n            // Setting opacity=1 would cause the texture's alpha component to be\n            // discarded, giving the text a black background instead of the\n            // background being transparent.\n            materialOptions.opacity = opacity;\n        }\n        var sprite = new THREE.Sprite( new THREE.SpriteMaterial( materialOptions ) );\n        sprite.position.set( x, y, z );\n\n        // Scaling factor, chosen somewhat arbitrarily so that the size of the text\n        // is consistent with previously generated plots.\n        var scale = 1/625;\n        if ( options.projection === 'orthographic' ) {\n            scale = midToCorner/256; // Needs to scale along with the plot itself.\n        }\n        sprite.scale.set( scale * width, scale * height, 1 );\n\n        scene.add( sprite );\n\n        return sprite;\n\n    }\n\n    if ( options.axes ) scene.add( new THREE.AxesHelper( Math.min( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ) );\n\n    var camera = createCamera();\n    camera.up.set( 0, 0, 1 );\n    camera.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n\n    var offset = new THREE.Vector3( a[0]*xRange, a[1]*yRange, a[2]*zRange );\n\n    if ( options.viewpoint ) {\n\n        var aa = options.viewpoint;\n        var axis = new THREE.Vector3( aa[0][0], aa[0][1], aa[0][2] ).normalize();\n        var angle = aa[1] * Math.PI / 180;\n        var q = new THREE.Quaternion().setFromAxisAngle( axis, angle ).inverse();\n\n        offset.set( 0, 0, offset.length() );\n        offset.applyQuaternion( q );\n\n    }\n\n    camera.position.add( offset );\n\n    function createCamera() {\n\n        var aspect = window.innerWidth / window.innerHeight;\n\n        // Scale the near and far clipping planes along with the overall plot size.\n        var nearClip = 0.01 * midToCorner;\n        var farClip = 100 * midToCorner;\n\n        if ( options.projection === 'orthographic' ) {\n            var camera = new THREE.OrthographicCamera( -1, 1, 1, -1, -farClip, farClip );\n            updateCameraAspect( camera, aspect );\n            return camera;\n        }\n\n        return new THREE.PerspectiveCamera( 45, aspect, nearClip, farClip );\n\n    }\n\n    function updateCameraAspect( camera, aspect ) {\n\n        if ( camera.isPerspectiveCamera ) {\n            camera.aspect = aspect;\n        } else if ( camera.isOrthographicCamera ) {\n            // Fit the camera frustum to the bounding box's diagonal so that the entire plot fits\n            // within at the default zoom level and camera position.\n            if ( aspect > 1 ) { // Wide window\n                camera.top = midToCorner;\n                camera.right = midToCorner * aspect;\n            } else { // Tall or square window\n                camera.top = midToCorner / aspect;\n                camera.right = midToCorner;\n            }\n            camera.bottom = -camera.top;\n            camera.left = -camera.right;\n        }\n\n        camera.updateProjectionMatrix();\n\n    }\n\n    var lights = [{\"x\":-5, \"y\":3, \"z\":0, \"color\":\"#7f7f7f\", \"parent\":\"camera\"}];\n    for ( var i=0 ; i < lights.length ; i++ ) {\n        var light = new THREE.DirectionalLight( lights[i].color, 1 );\n        light.position.set( a[0]*lights[i].x, a[1]*lights[i].y, a[2]*lights[i].z );\n        if ( lights[i].parent === 'camera' ) {\n            light.target.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n            scene.add( light.target );\n            camera.add( light );\n        } else scene.add( light );\n    }\n    scene.add( camera );\n\n    var ambient = {\"color\":\"#7f7f7f\"};\n    scene.add( new THREE.AmbientLight( ambient.color, 1 ) );\n\n    var controls = new THREE.OrbitControls( camera, renderer.domElement );\n    controls.target.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n    controls.addEventListener( 'change', function() { if ( !animate ) render(); } );\n\n    window.addEventListener( 'resize', function() {\n\n        renderer.setSize( window.innerWidth, window.innerHeight );\n        updateCameraAspect( camera, window.innerWidth / window.innerHeight );\n        if ( window.rescaleFatLines ) rescaleFatLines();\n        if ( !animate ) render();\n\n    } );\n\n    var texts = [];\n    for ( var i=0 ; i < texts.length ; i++ ) addText( texts[i] );\n\n    function addText( json ) {\n        var sprite = addLabel( json.text, a[0]*json.x, a[1]*json.y, a[2]*json.z, json );\n        sprite.userData = json;\n    }\n\n    var points = [];\n    for ( var i=0 ; i < points.length ; i++ ) addPoint( points[i] );\n\n    function addPoint( json ) {\n\n        var geometry = new THREE.Geometry();\n        var v = json.point;\n        geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n\n        var canvas = document.createElement( 'canvas' );\n        canvas.width = 128;\n        canvas.height = 128;\n\n        var context = canvas.getContext( '2d' );\n        context.arc( 64, 64, 64, 0, 2 * Math.PI );\n        context.fillStyle = json.color;\n        context.fill();\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var transparent = json.opacity < 1 ? true : false;\n        var size = camera.isOrthographicCamera ? json.size : json.size/100;\n        var material = new THREE.PointsMaterial( { size: size, map: texture,\n                                                   transparent: transparent, opacity: json.opacity,\n                                                   alphaTest: .1 } );\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var mesh = new THREE.Points( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    var lines = [];\n    for ( var i=0 ; i < lines.length ; i++ ) addLine( lines[i] );\n\n    function addLine( json ) {\n\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.points.length ; i++ ) {\n            var v = json.points[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n        }\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var transparent = json.opacity < 1 ? true : false;\n        var materialOptions = { color: json.color, linewidth: json.linewidth,\n                                transparent: transparent, opacity: json.opacity };\n\n        var mesh;\n        if ( json.linewidth > 1 && window.createFatLineStrip ) {\n            mesh = createFatLineStrip( geometry, materialOptions );\n        } else {\n            var material = new THREE.LineBasicMaterial( materialOptions );\n            mesh = new THREE.Line( geometry, material );\n        }\n\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    var surfaces = [{\"vertices\": [{\"x\": -1.0, \"y\": -1.0, \"z\": 0.0}, {\"x\": -1.0, \"y\": -0.9487179487179487, \"z\": 0.09993425378040766}, {\"x\": -0.9487179487179487, \"y\": -0.9487179487179487, \"z\": 0.0}, {\"x\": -0.9487179487179487, \"y\": -1.0, \"z\": -0.09993425378040766}, {\"x\": -1.0, \"y\": -0.8974358974358974, \"z\": 0.19460880999342556}, {\"x\": -0.9487179487179487, \"y\": -0.8974358974358974, \"z\": 0.0946745562130179}, {\"x\": -1.0, \"y\": -0.846153846153846, \"z\": 0.2840236686390535}, {\"x\": -0.9487179487179487, \"y\": -0.846153846153846, \"z\": 0.18408941485864583}, {\"x\": -1.0, \"y\": -0.7948717948717947, \"z\": 0.36817882971729154}, {\"x\": -0.9487179487179487, \"y\": -0.7948717948717947, \"z\": 0.2682445759368839}, {\"x\": -1.0, \"y\": -0.7435897435897434, \"z\": 0.44707429322813963}, {\"x\": -0.9487179487179487, \"y\": -0.7435897435897434, \"z\": 0.347140039447732}, {\"x\": -1.0, \"y\": -0.6923076923076921, \"z\": 0.520710059171598}, {\"x\": -0.9487179487179487, \"y\": -0.6923076923076921, \"z\": 0.4207758053911903}, {\"x\": -1.0, \"y\": -0.6410256410256407, \"z\": 0.5890861275476664}, {\"x\": -0.9487179487179487, \"y\": -0.6410256410256407, \"z\": 0.4891518737672587}, {\"x\": -1.0, \"y\": -0.5897435897435894, \"z\": 0.6522024983563448}, {\"x\": -0.9487179487179487, \"y\": -0.5897435897435894, \"z\": 0.5522682445759373}, {\"x\": -1.0, \"y\": -0.5384615384615381, \"z\": 0.7100591715976335}, {\"x\": -0.9487179487179487, \"y\": -0.5384615384615381, \"z\": 0.6101249178172259}, {\"x\": -1.0, \"y\": -0.48717948717948684, \"z\": 0.7626561472715322}, {\"x\": -0.9487179487179487, \"y\": -0.48717948717948684, \"z\": 0.6627218934911245}, {\"x\": -1.0, \"y\": -0.43589743589743557, \"z\": 0.8099934253780411}, {\"x\": -0.9487179487179487, \"y\": -0.43589743589743557, \"z\": 0.7100591715976334}, {\"x\": -1.0, \"y\": -0.3846153846153843, \"z\": 0.85207100591716}, {\"x\": -0.9487179487179487, \"y\": -0.3846153846153843, \"z\": 0.7521367521367524}, {\"x\": -1.0, \"y\": -0.33333333333333304, \"z\": 0.8888888888888891}, {\"x\": -0.9487179487179487, \"y\": -0.33333333333333304, \"z\": 0.7889546351084814}, {\"x\": -1.0, \"y\": -0.28205128205128177, \"z\": 0.9204470742932283}, {\"x\": -0.9487179487179487, \"y\": -0.28205128205128177, \"z\": 0.8205128205128206}, {\"x\": -1.0, \"y\": -0.2307692307692305, \"z\": 0.9467455621301777}, {\"x\": -0.9487179487179487, \"y\": -0.2307692307692305, \"z\": 0.84681130834977}, {\"x\": -1.0, \"y\": -0.17948717948717924, \"z\": 0.9677843523997371}, {\"x\": -0.9487179487179487, \"y\": -0.17948717948717924, \"z\": 0.8678500986193295}, {\"x\": -1.0, \"y\": -0.12820512820512797, \"z\": 0.9835634451019067}, {\"x\": -0.9487179487179487, \"y\": -0.12820512820512797, \"z\": 0.8836291913214991}, {\"x\": -1.0, \"y\": -0.07692307692307669, \"z\": 0.9940828402366865}, {\"x\": -0.9487179487179487, \"y\": -0.07692307692307669, \"z\": 0.8941485864562788}, {\"x\": -1.0, \"y\": -0.02564102564102541, \"z\": 0.9993425378040762}, {\"x\": -0.9487179487179487, \"y\": -0.02564102564102541, \"z\": 0.8994082840236686}, {\"x\": -1.0, \"y\": 0.02564102564102587, \"z\": 0.9993425378040762}, {\"x\": -0.9487179487179487, \"y\": 0.02564102564102587, \"z\": 0.8994082840236686}, {\"x\": -1.0, \"y\": 0.07692307692307715, \"z\": 0.9940828402366864}, {\"x\": -0.9487179487179487, \"y\": 0.07692307692307715, \"z\": 0.8941485864562787}, {\"x\": -1.0, \"y\": 0.12820512820512842, \"z\": 0.9835634451019066}, {\"x\": -0.9487179487179487, \"y\": 0.12820512820512842, \"z\": 0.883629191321499}, {\"x\": -1.0, \"y\": 0.17948717948717968, \"z\": 0.9677843523997369}, {\"x\": -0.9487179487179487, \"y\": 0.17948717948717968, \"z\": 0.8678500986193293}, {\"x\": -1.0, \"y\": 0.23076923076923095, \"z\": 0.9467455621301775}, {\"x\": -0.9487179487179487, \"y\": 0.23076923076923095, \"z\": 0.8468113083497698}, {\"x\": -1.0, \"y\": 0.2820512820512822, \"z\": 0.920447074293228}, {\"x\": -0.9487179487179487, \"y\": 0.2820512820512822, \"z\": 0.8205128205128204}, {\"x\": -1.0, \"y\": 0.3333333333333335, \"z\": 0.8888888888888888}, {\"x\": -0.9487179487179487, \"y\": 0.3333333333333335, \"z\": 0.7889546351084811}, {\"x\": -1.0, \"y\": 0.38461538461538475, \"z\": 0.8520710059171597}, {\"x\": -0.9487179487179487, \"y\": 0.38461538461538475, \"z\": 0.752136752136752}, {\"x\": -1.0, \"y\": 0.435897435897436, \"z\": 0.8099934253780406}, {\"x\": -0.9487179487179487, \"y\": 0.435897435897436, \"z\": 0.710059171597633}, {\"x\": -1.0, \"y\": 0.4871794871794873, \"z\": 0.7626561472715317}, {\"x\": -0.9487179487179487, \"y\": 0.4871794871794873, \"z\": 0.6627218934911241}, {\"x\": -1.0, \"y\": 0.5384615384615385, \"z\": 0.710059171597633}, {\"x\": -0.9487179487179487, \"y\": 0.5384615384615385, \"z\": 0.6101249178172254}, {\"x\": -1.0, \"y\": 0.5897435897435899, \"z\": 0.6522024983563444}, {\"x\": -0.9487179487179487, \"y\": 0.5897435897435899, \"z\": 0.5522682445759367}, {\"x\": -1.0, \"y\": 0.6410256410256412, \"z\": 0.5890861275476658}, {\"x\": -0.9487179487179487, \"y\": 0.6410256410256412, \"z\": 0.48915187376725816}, {\"x\": -1.0, \"y\": 0.6923076923076925, \"z\": 0.5207100591715974}, {\"x\": -0.9487179487179487, \"y\": 0.6923076923076925, \"z\": 0.4207758053911897}, {\"x\": -1.0, \"y\": 0.7435897435897438, \"z\": 0.44707429322813896}, {\"x\": -0.9487179487179487, \"y\": 0.7435897435897438, \"z\": 0.3471400394477313}, {\"x\": -1.0, \"y\": 0.7948717948717952, \"z\": 0.36817882971729077}, {\"x\": -0.9487179487179487, \"y\": 0.7948717948717952, \"z\": 0.2682445759368831}, {\"x\": -1.0, \"y\": 0.8461538461538465, \"z\": 0.2840236686390527}, {\"x\": -0.9487179487179487, \"y\": 0.8461538461538465, \"z\": 0.18408941485864505}, {\"x\": -1.0, \"y\": 0.8974358974358978, \"z\": 0.19460880999342467}, {\"x\": -0.9487179487179487, \"y\": 0.8974358974358978, \"z\": 0.09467455621301701}, {\"x\": -1.0, \"y\": 0.9487179487179491, \"z\": 0.09993425378040688}, {\"x\": -0.9487179487179487, \"y\": 0.9487179487179491, \"z\": -7.771561172376096e-16}, {\"x\": -1.0, \"y\": 1.0, \"z\": 0.0}, {\"x\": -0.9487179487179487, \"y\": 1.0, \"z\": -0.09993425378040766}, {\"x\": -0.8974358974358974, \"y\": -0.9487179487179487, \"z\": -0.0946745562130179}, {\"x\": -0.8974358974358974, \"y\": -1.0, \"z\": -0.19460880999342556}, {\"x\": -0.8974358974358974, \"y\": -0.8974358974358974, \"z\": 0.0}, {\"x\": -0.8974358974358974, \"y\": -0.846153846153846, \"z\": 0.08941485864562793}, {\"x\": -0.8974358974358974, \"y\": -0.7948717948717947, \"z\": 0.173570019723866}, {\"x\": -0.8974358974358974, \"y\": -0.7435897435897434, \"z\": 0.25246548323471407}, {\"x\": -0.8974358974358974, \"y\": -0.6923076923076921, \"z\": 0.3261012491781724}, {\"x\": -0.8974358974358974, \"y\": -0.6410256410256407, \"z\": 0.3944773175542408}, {\"x\": -0.8974358974358974, \"y\": -0.5897435897435894, \"z\": 0.4575936883629193}, {\"x\": -0.8974358974358974, \"y\": -0.5384615384615381, \"z\": 0.515450361604208}, {\"x\": -0.8974358974358974, \"y\": -0.48717948717948684, \"z\": 0.5680473372781066}, {\"x\": -0.8974358974358974, \"y\": -0.43589743589743557, \"z\": 0.6153846153846155}, {\"x\": -0.8974358974358974, \"y\": -0.3846153846153843, \"z\": 0.6574621959237344}, {\"x\": -0.8974358974358974, \"y\": -0.33333333333333304, \"z\": 0.6942800788954635}, {\"x\": -0.8974358974358974, \"y\": -0.28205128205128177, \"z\": 0.7258382642998027}, {\"x\": -0.8974358974358974, \"y\": -0.2307692307692305, \"z\": 0.7521367521367521}, {\"x\": -0.8974358974358974, \"y\": -0.17948717948717924, \"z\": 0.7731755424063116}, {\"x\": -0.8974358974358974, \"y\": -0.12820512820512797, \"z\": 0.7889546351084812}, {\"x\": -0.8974358974358974, \"y\": -0.07692307692307669, \"z\": 0.7994740302432609}, {\"x\": -0.8974358974358974, \"y\": -0.02564102564102541, \"z\": 0.8047337278106507}, {\"x\": -0.8974358974358974, \"y\": 0.02564102564102587, \"z\": 0.8047337278106507}, {\"x\": -0.8974358974358974, \"y\": 0.07692307692307715, \"z\": 0.7994740302432608}, {\"x\": -0.8974358974358974, \"y\": 0.12820512820512842, \"z\": 0.7889546351084811}, {\"x\": -0.8974358974358974, \"y\": 0.17948717948717968, \"z\": 0.7731755424063114}, {\"x\": -0.8974358974358974, \"y\": 0.23076923076923095, \"z\": 0.7521367521367519}, {\"x\": -0.8974358974358974, \"y\": 0.2820512820512822, \"z\": 0.7258382642998025}, {\"x\": -0.8974358974358974, \"y\": 0.3333333333333335, \"z\": 0.6942800788954633}, {\"x\": -0.8974358974358974, \"y\": 0.38461538461538475, \"z\": 0.6574621959237341}, {\"x\": -0.8974358974358974, \"y\": 0.435897435897436, \"z\": 0.6153846153846151}, {\"x\": -0.8974358974358974, \"y\": 0.4871794871794873, \"z\": 0.5680473372781062}, {\"x\": -0.8974358974358974, \"y\": 0.5384615384615385, \"z\": 0.5154503616042074}, {\"x\": -0.8974358974358974, \"y\": 0.5897435897435899, \"z\": 0.4575936883629188}, {\"x\": -0.8974358974358974, \"y\": 0.6410256410256412, \"z\": 0.39447731755424026}, {\"x\": -0.8974358974358974, \"y\": 0.6923076923076925, \"z\": 0.3261012491781718}, {\"x\": -0.8974358974358974, \"y\": 0.7435897435897438, \"z\": 0.2524654832347134}, {\"x\": -0.8974358974358974, \"y\": 0.7948717948717952, \"z\": 0.1735700197238652}, {\"x\": -0.8974358974358974, \"y\": 0.8461538461538465, \"z\": 0.08941485864562715}, {\"x\": -0.8974358974358974, \"y\": 0.8974358974358978, \"z\": -8.881784197001252e-16}, {\"x\": -0.8974358974358974, \"y\": 0.9487179487179491, \"z\": -0.09467455621301868}, {\"x\": -0.8974358974358974, \"y\": 1.0, \"z\": -0.19460880999342556}, {\"x\": -0.846153846153846, \"y\": -0.9487179487179487, \"z\": -0.18408941485864583}, {\"x\": -0.846153846153846, \"y\": -1.0, \"z\": -0.2840236686390535}, {\"x\": -0.846153846153846, \"y\": -0.8974358974358974, \"z\": -0.08941485864562793}, {\"x\": -0.846153846153846, \"y\": -0.846153846153846, \"z\": 0.0}, {\"x\": -0.846153846153846, \"y\": -0.7948717948717947, \"z\": 0.08415516107823806}, {\"x\": -0.846153846153846, \"y\": -0.7435897435897434, \"z\": 0.16305062458908615}, {\"x\": -0.846153846153846, \"y\": -0.6923076923076921, \"z\": 0.23668639053254448}, {\"x\": -0.846153846153846, \"y\": -0.6410256410256407, \"z\": 0.3050624589086129}, {\"x\": -0.846153846153846, \"y\": -0.5897435897435894, \"z\": 0.3681788297172914}, {\"x\": -0.846153846153846, \"y\": -0.5384615384615381, \"z\": 0.42603550295858006}, {\"x\": -0.846153846153846, \"y\": -0.48717948717948684, \"z\": 0.4786324786324787}, {\"x\": -0.846153846153846, \"y\": -0.43589743589743557, \"z\": 0.5259697567389876}, {\"x\": -0.846153846153846, \"y\": -0.3846153846153843, \"z\": 0.5680473372781065}, {\"x\": -0.846153846153846, \"y\": -0.33333333333333304, \"z\": 0.6048652202498356}, {\"x\": -0.846153846153846, \"y\": -0.28205128205128177, \"z\": 0.6364234056541748}, {\"x\": -0.846153846153846, \"y\": -0.2307692307692305, \"z\": 0.6627218934911242}, {\"x\": -0.846153846153846, \"y\": -0.17948717948717924, \"z\": 0.6837606837606837}, {\"x\": -0.846153846153846, \"y\": -0.12820512820512797, \"z\": 0.6995397764628533}, {\"x\": -0.846153846153846, \"y\": -0.07692307692307669, \"z\": 0.710059171597633}, {\"x\": -0.846153846153846, \"y\": -0.02564102564102541, \"z\": 0.7153188691650227}, {\"x\": -0.846153846153846, \"y\": 0.02564102564102587, \"z\": 0.7153188691650227}, {\"x\": -0.846153846153846, \"y\": 0.07692307692307715, \"z\": 0.7100591715976329}, {\"x\": -0.846153846153846, \"y\": 0.12820512820512842, \"z\": 0.6995397764628531}, {\"x\": -0.846153846153846, \"y\": 0.17948717948717968, \"z\": 0.6837606837606834}, {\"x\": -0.846153846153846, \"y\": 0.23076923076923095, \"z\": 0.662721893491124}, {\"x\": -0.846153846153846, \"y\": 0.2820512820512822, \"z\": 0.6364234056541745}, {\"x\": -0.846153846153846, \"y\": 0.3333333333333335, \"z\": 0.6048652202498352}, {\"x\": -0.846153846153846, \"y\": 0.38461538461538475, \"z\": 0.5680473372781062}, {\"x\": -0.846153846153846, \"y\": 0.435897435897436, \"z\": 0.5259697567389872}, {\"x\": -0.846153846153846, \"y\": 0.4871794871794873, \"z\": 0.47863247863247826}, {\"x\": -0.846153846153846, \"y\": 0.5384615384615385, \"z\": 0.42603550295857956}, {\"x\": -0.846153846153846, \"y\": 0.5897435897435899, \"z\": 0.3681788297172909}, {\"x\": -0.846153846153846, \"y\": 0.6410256410256412, \"z\": 0.30506245890861233}, {\"x\": -0.846153846153846, \"y\": 0.6923076923076925, \"z\": 0.23668639053254387}, {\"x\": -0.846153846153846, \"y\": 0.7435897435897438, \"z\": 0.16305062458908548}, {\"x\": -0.846153846153846, \"y\": 0.7948717948717952, \"z\": 0.08415516107823728}, {\"x\": -0.846153846153846, \"y\": 0.8461538461538465, \"z\": -7.771561172376096e-16}, {\"x\": -0.846153846153846, \"y\": 0.8974358974358978, \"z\": -0.08941485864562881}, {\"x\": -0.846153846153846, \"y\": 0.9487179487179491, \"z\": -0.1840894148586466}, {\"x\": -0.846153846153846, \"y\": 1.0, \"z\": -0.2840236686390535}, {\"x\": -0.7948717948717947, \"y\": -0.9487179487179487, \"z\": -0.2682445759368839}, {\"x\": -0.7948717948717947, \"y\": -1.0, \"z\": -0.36817882971729154}, {\"x\": -0.7948717948717947, \"y\": -0.8974358974358974, \"z\": -0.173570019723866}, {\"x\": -0.7948717948717947, \"y\": -0.846153846153846, \"z\": -0.08415516107823806}, {\"x\": -0.7948717948717947, \"y\": -0.7948717948717947, \"z\": 0.0}, {\"x\": -0.7948717948717947, \"y\": -0.7435897435897434, \"z\": 0.07889546351084809}, {\"x\": -0.7948717948717947, \"y\": -0.6923076923076921, \"z\": 0.15253122945430642}, {\"x\": -0.7948717948717947, \"y\": -0.6410256410256407, \"z\": 0.22090729783037483}, {\"x\": -0.7948717948717947, \"y\": -0.5897435897435894, \"z\": 0.2840236686390533}, {\"x\": -0.7948717948717947, \"y\": -0.5384615384615381, \"z\": 0.341880341880342}, {\"x\": -0.7948717948717947, \"y\": -0.48717948717948684, \"z\": 0.39447731755424065}, {\"x\": -0.7948717948717947, \"y\": -0.43589743589743557, \"z\": 0.44181459566074954}, {\"x\": -0.7948717948717947, \"y\": -0.3846153846153843, \"z\": 0.48389217619986846}, {\"x\": -0.7948717948717947, \"y\": -0.33333333333333304, \"z\": 0.5207100591715975}, {\"x\": -0.7948717948717947, \"y\": -0.28205128205128177, \"z\": 0.5522682445759367}, {\"x\": -0.7948717948717947, \"y\": -0.2307692307692305, \"z\": 0.5785667324128861}, {\"x\": -0.7948717948717947, \"y\": -0.17948717948717924, \"z\": 0.5996055226824456}, {\"x\": -0.7948717948717947, \"y\": -0.12820512820512797, \"z\": 0.6153846153846152}, {\"x\": -0.7948717948717947, \"y\": -0.07692307692307669, \"z\": 0.6259040105193949}, {\"x\": -0.7948717948717947, \"y\": -0.02564102564102541, \"z\": 0.6311637080867847}, {\"x\": -0.7948717948717947, \"y\": 0.02564102564102587, \"z\": 0.6311637080867847}, {\"x\": -0.7948717948717947, \"y\": 0.07692307692307715, \"z\": 0.6259040105193948}, {\"x\": -0.7948717948717947, \"y\": 0.12820512820512842, \"z\": 0.6153846153846151}, {\"x\": -0.7948717948717947, \"y\": 0.17948717948717968, \"z\": 0.5996055226824454}, {\"x\": -0.7948717948717947, \"y\": 0.23076923076923095, \"z\": 0.5785667324128859}, {\"x\": -0.7948717948717947, \"y\": 0.2820512820512822, \"z\": 0.5522682445759365}, {\"x\": -0.7948717948717947, \"y\": 0.3333333333333335, \"z\": 0.5207100591715972}, {\"x\": -0.7948717948717947, \"y\": 0.38461538461538475, \"z\": 0.48389217619986813}, {\"x\": -0.7948717948717947, \"y\": 0.435897435897436, \"z\": 0.4418145956607491}, {\"x\": -0.7948717948717947, \"y\": 0.4871794871794873, \"z\": 0.3944773175542402}, {\"x\": -0.7948717948717947, \"y\": 0.5384615384615385, \"z\": 0.3418803418803415}, {\"x\": -0.7948717948717947, \"y\": 0.5897435897435899, \"z\": 0.2840236686390528}, {\"x\": -0.7948717948717947, \"y\": 0.6410256410256412, \"z\": 0.22090729783037427}, {\"x\": -0.7948717948717947, \"y\": 0.6923076923076925, \"z\": 0.1525312294543058}, {\"x\": -0.7948717948717947, \"y\": 0.7435897435897438, \"z\": 0.07889546351084742}, {\"x\": -0.7948717948717947, \"y\": 0.7948717948717952, \"z\": -7.771561172376096e-16}, {\"x\": -0.7948717948717947, \"y\": 0.8461538461538465, \"z\": -0.08415516107823884}, {\"x\": -0.7948717948717947, \"y\": 0.8974358974358978, \"z\": -0.17357001972386688}, {\"x\": -0.7948717948717947, \"y\": 0.9487179487179491, \"z\": -0.26824457593688467}, {\"x\": -0.7948717948717947, \"y\": 1.0, \"z\": -0.36817882971729154}, {\"x\": -0.7435897435897434, \"y\": -0.9487179487179487, \"z\": -0.347140039447732}, {\"x\": -0.7435897435897434, \"y\": -1.0, \"z\": -0.44707429322813963}, {\"x\": -0.7435897435897434, \"y\": -0.8974358974358974, \"z\": -0.25246548323471407}, {\"x\": -0.7435897435897434, \"y\": -0.846153846153846, \"z\": -0.16305062458908615}, {\"x\": -0.7435897435897434, \"y\": -0.7948717948717947, \"z\": -0.07889546351084809}, {\"x\": -0.7435897435897434, \"y\": -0.7435897435897434, \"z\": 0.0}, {\"x\": -0.7435897435897434, \"y\": -0.6923076923076921, \"z\": 0.07363576594345833}, {\"x\": -0.7435897435897434, \"y\": -0.6410256410256407, \"z\": 0.14201183431952674}, {\"x\": -0.7435897435897434, \"y\": -0.5897435897435894, \"z\": 0.20512820512820523}, {\"x\": -0.7435897435897434, \"y\": -0.5384615384615381, \"z\": 0.2629848783694939}, {\"x\": -0.7435897435897434, \"y\": -0.48717948717948684, \"z\": 0.31558185404339256}, {\"x\": -0.7435897435897434, \"y\": -0.43589743589743557, \"z\": 0.36291913214990146}, {\"x\": -0.7435897435897434, \"y\": -0.3846153846153843, \"z\": 0.4049967126890204}, {\"x\": -0.7435897435897434, \"y\": -0.33333333333333304, \"z\": 0.44181459566074943}, {\"x\": -0.7435897435897434, \"y\": -0.28205128205128177, \"z\": 0.4733727810650887}, {\"x\": -0.7435897435897434, \"y\": -0.2307692307692305, \"z\": 0.499671268902038}, {\"x\": -0.7435897435897434, \"y\": -0.17948717948717924, \"z\": 0.5207100591715975}, {\"x\": -0.7435897435897434, \"y\": -0.12820512820512797, \"z\": 0.5364891518737671}, {\"x\": -0.7435897435897434, \"y\": -0.07692307692307669, \"z\": 0.5470085470085468}, {\"x\": -0.7435897435897434, \"y\": -0.02564102564102541, \"z\": 0.5522682445759366}, {\"x\": -0.7435897435897434, \"y\": 0.02564102564102587, \"z\": 0.5522682445759366}, {\"x\": -0.7435897435897434, \"y\": 0.07692307692307715, \"z\": 0.5470085470085467}, {\"x\": -0.7435897435897434, \"y\": 0.12820512820512842, \"z\": 0.536489151873767}, {\"x\": -0.7435897435897434, \"y\": 0.17948717948717968, \"z\": 0.5207100591715973}, {\"x\": -0.7435897435897434, \"y\": 0.23076923076923095, \"z\": 0.4996712689020378}, {\"x\": -0.7435897435897434, \"y\": 0.2820512820512822, \"z\": 0.4733727810650884}, {\"x\": -0.7435897435897434, \"y\": 0.3333333333333335, \"z\": 0.44181459566074915}, {\"x\": -0.7435897435897434, \"y\": 0.38461538461538475, \"z\": 0.40499671268902004}, {\"x\": -0.7435897435897434, \"y\": 0.435897435897436, \"z\": 0.362919132149901}, {\"x\": -0.7435897435897434, \"y\": 0.4871794871794873, \"z\": 0.3155818540433921}, {\"x\": -0.7435897435897434, \"y\": 0.5384615384615385, \"z\": 0.2629848783694934}, {\"x\": -0.7435897435897434, \"y\": 0.5897435897435899, \"z\": 0.20512820512820473}, {\"x\": -0.7435897435897434, \"y\": 0.6410256410256412, \"z\": 0.1420118343195262}, {\"x\": -0.7435897435897434, \"y\": 0.6923076923076925, \"z\": 0.07363576594345772}, {\"x\": -0.7435897435897434, \"y\": 0.7435897435897438, \"z\": -6.661338147750939e-16}, {\"x\": -0.7435897435897434, \"y\": 0.7948717948717952, \"z\": -0.07889546351084886}, {\"x\": -0.7435897435897434, \"y\": 0.8461538461538465, \"z\": -0.16305062458908692}, {\"x\": -0.7435897435897434, \"y\": 0.8974358974358978, \"z\": -0.25246548323471496}, {\"x\": -0.7435897435897434, \"y\": 0.9487179487179491, \"z\": -0.34714003944773275}, {\"x\": -0.7435897435897434, \"y\": 1.0, \"z\": -0.44707429322813963}, {\"x\": -0.6923076923076921, \"y\": -0.9487179487179487, \"z\": -0.4207758053911903}, {\"x\": -0.6923076923076921, \"y\": -1.0, \"z\": -0.520710059171598}, {\"x\": -0.6923076923076921, \"y\": -0.8974358974358974, \"z\": -0.3261012491781724}, {\"x\": -0.6923076923076921, \"y\": -0.846153846153846, \"z\": -0.23668639053254448}, {\"x\": -0.6923076923076921, \"y\": -0.7948717948717947, \"z\": -0.15253122945430642}, {\"x\": -0.6923076923076921, \"y\": -0.7435897435897434, \"z\": -0.07363576594345833}, {\"x\": -0.6923076923076921, \"y\": -0.6923076923076921, \"z\": 0.0}, {\"x\": -0.6923076923076921, \"y\": -0.6410256410256407, \"z\": 0.06837606837606841}, {\"x\": -0.6923076923076921, \"y\": -0.5897435897435894, \"z\": 0.1314924391847469}, {\"x\": -0.6923076923076921, \"y\": -0.5384615384615381, \"z\": 0.18934911242603558}, {\"x\": -0.6923076923076921, \"y\": -0.48717948717948684, \"z\": 0.24194608809993426}, {\"x\": -0.6923076923076921, \"y\": -0.43589743589743557, \"z\": 0.2892833662064431}, {\"x\": -0.6923076923076921, \"y\": -0.3846153846153843, \"z\": 0.33136094674556205}, {\"x\": -0.6923076923076921, \"y\": -0.33333333333333304, \"z\": 0.3681788297172911}, {\"x\": -0.6923076923076921, \"y\": -0.28205128205128177, \"z\": 0.39973701512163035}, {\"x\": -0.6923076923076921, \"y\": -0.2307692307692305, \"z\": 0.42603550295857967}, {\"x\": -0.6923076923076921, \"y\": -0.17948717948717924, \"z\": 0.44707429322813913}, {\"x\": -0.6923076923076921, \"y\": -0.12820512820512797, \"z\": 0.4628533859303087}, {\"x\": -0.6923076923076921, \"y\": -0.07692307692307669, \"z\": 0.47337278106508845}, {\"x\": -0.6923076923076921, \"y\": -0.02564102564102541, \"z\": 0.4786324786324783}, {\"x\": -0.6923076923076921, \"y\": 0.02564102564102587, \"z\": 0.4786324786324783}, {\"x\": -0.6923076923076921, \"y\": 0.07692307692307715, \"z\": 0.4733727810650884}, {\"x\": -0.6923076923076921, \"y\": 0.12820512820512842, \"z\": 0.4628533859303086}, {\"x\": -0.6923076923076921, \"y\": 0.17948717948717968, \"z\": 0.44707429322813896}, {\"x\": -0.6923076923076921, \"y\": 0.23076923076923095, \"z\": 0.42603550295857945}, {\"x\": -0.6923076923076921, \"y\": 0.2820512820512822, \"z\": 0.39973701512163007}, {\"x\": -0.6923076923076921, \"y\": 0.3333333333333335, \"z\": 0.3681788297172908}, {\"x\": -0.6923076923076921, \"y\": 0.38461538461538475, \"z\": 0.3313609467455617}, {\"x\": -0.6923076923076921, \"y\": 0.435897435897436, \"z\": 0.2892833662064427}, {\"x\": -0.6923076923076921, \"y\": 0.4871794871794873, \"z\": 0.24194608809993381}, {\"x\": -0.6923076923076921, \"y\": 0.5384615384615385, \"z\": 0.18934911242603508}, {\"x\": -0.6923076923076921, \"y\": 0.5897435897435899, \"z\": 0.1314924391847464}, {\"x\": -0.6923076923076921, \"y\": 0.6410256410256412, \"z\": 0.06837606837606786}, {\"x\": -0.6923076923076921, \"y\": 0.6923076923076925, \"z\": -6.106226635438361e-16}, {\"x\": -0.6923076923076921, \"y\": 0.7435897435897438, \"z\": -0.073635765943459}, {\"x\": -0.6923076923076921, \"y\": 0.7948717948717952, \"z\": -0.1525312294543072}, {\"x\": -0.6923076923076921, \"y\": 0.8461538461538465, \"z\": -0.23668639053254525}, {\"x\": -0.6923076923076921, \"y\": 0.8974358974358978, \"z\": -0.3261012491781733}, {\"x\": -0.6923076923076921, \"y\": 0.9487179487179491, \"z\": -0.4207758053911911}, {\"x\": -0.6923076923076921, \"y\": 1.0, \"z\": -0.520710059171598}, {\"x\": -0.6410256410256407, \"y\": -0.9487179487179487, \"z\": -0.4891518737672587}, {\"x\": -0.6410256410256407, \"y\": -1.0, \"z\": -0.5890861275476664}, {\"x\": -0.6410256410256407, \"y\": -0.8974358974358974, \"z\": -0.3944773175542408}, {\"x\": -0.6410256410256407, \"y\": -0.846153846153846, \"z\": -0.3050624589086129}, {\"x\": -0.6410256410256407, \"y\": -0.7948717948717947, \"z\": -0.22090729783037483}, {\"x\": -0.6410256410256407, \"y\": -0.7435897435897434, \"z\": -0.14201183431952674}, {\"x\": -0.6410256410256407, \"y\": -0.6923076923076921, \"z\": -0.06837606837606841}, {\"x\": -0.6410256410256407, \"y\": -0.6410256410256407, \"z\": 0.0}, {\"x\": -0.6410256410256407, \"y\": -0.5897435897435894, \"z\": 0.06311637080867849}, {\"x\": -0.6410256410256407, \"y\": -0.5384615384615381, \"z\": 0.12097304404996717}, {\"x\": -0.6410256410256407, \"y\": -0.48717948717948684, \"z\": 0.17357001972386585}, {\"x\": -0.6410256410256407, \"y\": -0.43589743589743557, \"z\": 0.2209072978303747}, {\"x\": -0.6410256410256407, \"y\": -0.3846153846153843, \"z\": 0.26298487836949364}, {\"x\": -0.6410256410256407, \"y\": -0.33333333333333304, \"z\": 0.29980276134122275}, {\"x\": -0.6410256410256407, \"y\": -0.28205128205128177, \"z\": 0.33136094674556194}, {\"x\": -0.6410256410256407, \"y\": -0.2307692307692305, \"z\": 0.35765943458251126}, {\"x\": -0.6410256410256407, \"y\": -0.17948717948717924, \"z\": 0.3786982248520707}, {\"x\": -0.6410256410256407, \"y\": -0.12820512820512797, \"z\": 0.3944773175542403}, {\"x\": -0.6410256410256407, \"y\": -0.07692307692307669, \"z\": 0.40499671268902004}, {\"x\": -0.6410256410256407, \"y\": -0.02564102564102541, \"z\": 0.4102564102564099}, {\"x\": -0.6410256410256407, \"y\": 0.02564102564102587, \"z\": 0.4102564102564099}, {\"x\": -0.6410256410256407, \"y\": 0.07692307692307715, \"z\": 0.40499671268902}, {\"x\": -0.6410256410256407, \"y\": 0.12820512820512842, \"z\": 0.3944773175542402}, {\"x\": -0.6410256410256407, \"y\": 0.17948717948717968, \"z\": 0.37869822485207055}, {\"x\": -0.6410256410256407, \"y\": 0.23076923076923095, \"z\": 0.35765943458251104}, {\"x\": -0.6410256410256407, \"y\": 0.2820512820512822, \"z\": 0.33136094674556166}, {\"x\": -0.6410256410256407, \"y\": 0.3333333333333335, \"z\": 0.2998027613412224}, {\"x\": -0.6410256410256407, \"y\": 0.38461538461538475, \"z\": 0.2629848783694933}, {\"x\": -0.6410256410256407, \"y\": 0.435897435897436, \"z\": 0.2209072978303743}, {\"x\": -0.6410256410256407, \"y\": 0.4871794871794873, \"z\": 0.1735700197238654}, {\"x\": -0.6410256410256407, \"y\": 0.5384615384615385, \"z\": 0.12097304404996667}, {\"x\": -0.6410256410256407, \"y\": 0.5897435897435899, \"z\": 0.06311637080867799}, {\"x\": -0.6410256410256407, \"y\": 0.6410256410256412, \"z\": -5.551115123125783e-16}, {\"x\": -0.6410256410256407, \"y\": 0.6923076923076925, \"z\": -0.06837606837606902}, {\"x\": -0.6410256410256407, \"y\": 0.7435897435897438, \"z\": -0.1420118343195274}, {\"x\": -0.6410256410256407, \"y\": 0.7948717948717952, \"z\": -0.2209072978303756}, {\"x\": -0.6410256410256407, \"y\": 0.8461538461538465, \"z\": -0.30506245890861367}, {\"x\": -0.6410256410256407, \"y\": 0.8974358974358978, \"z\": -0.3944773175542417}, {\"x\": -0.6410256410256407, \"y\": 0.9487179487179491, \"z\": -0.4891518737672595}, {\"x\": -0.6410256410256407, \"y\": 1.0, \"z\": -0.5890861275476664}, {\"x\": -0.5897435897435894, \"y\": -0.9487179487179487, \"z\": -0.5522682445759373}, {\"x\": -0.5897435897435894, \"y\": -1.0, \"z\": -0.6522024983563448}, {\"x\": -0.5897435897435894, \"y\": -0.8974358974358974, \"z\": -0.4575936883629193}, {\"x\": -0.5897435897435894, \"y\": -0.846153846153846, \"z\": -0.3681788297172914}, {\"x\": -0.5897435897435894, \"y\": -0.7948717948717947, \"z\": -0.2840236686390533}, {\"x\": -0.5897435897435894, \"y\": -0.7435897435897434, \"z\": -0.20512820512820523}, {\"x\": -0.5897435897435894, \"y\": -0.6923076923076921, \"z\": -0.1314924391847469}, {\"x\": -0.5897435897435894, \"y\": -0.6410256410256407, \"z\": -0.06311637080867849}, {\"x\": -0.5897435897435894, \"y\": -0.5897435897435894, \"z\": 0.0}, {\"x\": -0.5897435897435894, \"y\": -0.5384615384615381, \"z\": 0.05785667324128868}, {\"x\": -0.5897435897435894, \"y\": -0.48717948717948684, \"z\": 0.11045364891518736}, {\"x\": -0.5897435897435894, \"y\": -0.43589743589743557, \"z\": 0.1577909270216962}, {\"x\": -0.5897435897435894, \"y\": -0.3846153846153843, \"z\": 0.19986850756081515}, {\"x\": -0.5897435897435894, \"y\": -0.33333333333333304, \"z\": 0.23668639053254423}, {\"x\": -0.5897435897435894, \"y\": -0.28205128205128177, \"z\": 0.26824457593688344}, {\"x\": -0.5897435897435894, \"y\": -0.2307692307692305, \"z\": 0.29454306377383277}, {\"x\": -0.5897435897435894, \"y\": -0.17948717948717924, \"z\": 0.31558185404339223}, {\"x\": -0.5897435897435894, \"y\": -0.12820512820512797, \"z\": 0.3313609467455618}, {\"x\": -0.5897435897435894, \"y\": -0.07692307692307669, \"z\": 0.34188034188034155}, {\"x\": -0.5897435897435894, \"y\": -0.02564102564102541, \"z\": 0.3471400394477314}, {\"x\": -0.5897435897435894, \"y\": 0.02564102564102587, \"z\": 0.3471400394477314}, {\"x\": -0.5897435897435894, \"y\": 0.07692307692307715, \"z\": 0.3418803418803415}, {\"x\": -0.5897435897435894, \"y\": 0.12820512820512842, \"z\": 0.3313609467455617}, {\"x\": -0.5897435897435894, \"y\": 0.17948717948717968, \"z\": 0.31558185404339206}, {\"x\": -0.5897435897435894, \"y\": 0.23076923076923095, \"z\": 0.29454306377383255}, {\"x\": -0.5897435897435894, \"y\": 0.2820512820512822, \"z\": 0.26824457593688317}, {\"x\": -0.5897435897435894, \"y\": 0.3333333333333335, \"z\": 0.23668639053254392}, {\"x\": -0.5897435897435894, \"y\": 0.38461538461538475, \"z\": 0.1998685075608148}, {\"x\": -0.5897435897435894, \"y\": 0.435897435897436, \"z\": 0.1577909270216958}, {\"x\": -0.5897435897435894, \"y\": 0.4871794871794873, \"z\": 0.11045364891518691}, {\"x\": -0.5897435897435894, \"y\": 0.5384615384615385, \"z\": 0.05785667324128818}, {\"x\": -0.5897435897435894, \"y\": 0.5897435897435899, \"z\": -4.996003610813204e-16}, {\"x\": -0.5897435897435894, \"y\": 0.6410256410256412, \"z\": -0.06311637080867905}, {\"x\": -0.5897435897435894, \"y\": 0.6923076923076925, \"z\": -0.1314924391847475}, {\"x\": -0.5897435897435894, \"y\": 0.7435897435897438, \"z\": -0.2051282051282059}, {\"x\": -0.5897435897435894, \"y\": 0.7948717948717952, \"z\": -0.2840236686390541}, {\"x\": -0.5897435897435894, \"y\": 0.8461538461538465, \"z\": -0.36817882971729216}, {\"x\": -0.5897435897435894, \"y\": 0.8974358974358978, \"z\": -0.4575936883629202}, {\"x\": -0.5897435897435894, \"y\": 0.9487179487179491, \"z\": -0.5522682445759379}, {\"x\": -0.5897435897435894, \"y\": 1.0, \"z\": -0.6522024983563448}, {\"x\": -0.5384615384615381, \"y\": -0.9487179487179487, \"z\": -0.6101249178172259}, {\"x\": -0.5384615384615381, \"y\": -1.0, \"z\": -0.7100591715976335}, {\"x\": -0.5384615384615381, \"y\": -0.8974358974358974, \"z\": -0.515450361604208}, {\"x\": -0.5384615384615381, \"y\": -0.846153846153846, \"z\": -0.42603550295858006}, {\"x\": -0.5384615384615381, \"y\": -0.7948717948717947, \"z\": -0.341880341880342}, {\"x\": -0.5384615384615381, \"y\": -0.7435897435897434, \"z\": -0.2629848783694939}, {\"x\": -0.5384615384615381, \"y\": -0.6923076923076921, \"z\": -0.18934911242603558}, {\"x\": -0.5384615384615381, \"y\": -0.6410256410256407, \"z\": -0.12097304404996717}, {\"x\": -0.5384615384615381, \"y\": -0.5897435897435894, \"z\": -0.05785667324128868}, {\"x\": -0.5384615384615381, \"y\": -0.5384615384615381, \"z\": 0.0}, {\"x\": -0.5384615384615381, \"y\": -0.48717948717948684, \"z\": 0.05259697567389868}, {\"x\": -0.5384615384615381, \"y\": -0.43589743589743557, \"z\": 0.09993425378040752}, {\"x\": -0.5384615384615381, \"y\": -0.3846153846153843, \"z\": 0.14201183431952646}, {\"x\": -0.5384615384615381, \"y\": -0.33333333333333304, \"z\": 0.17882971729125555}, {\"x\": -0.5384615384615381, \"y\": -0.28205128205128177, \"z\": 0.21038790269559476}, {\"x\": -0.5384615384615381, \"y\": -0.2307692307692305, \"z\": 0.2366863905325441}, {\"x\": -0.5384615384615381, \"y\": -0.17948717948717924, \"z\": 0.25772518080210355}, {\"x\": -0.5384615384615381, \"y\": -0.12820512820512797, \"z\": 0.27350427350427314}, {\"x\": -0.5384615384615381, \"y\": -0.07692307692307669, \"z\": 0.2840236686390529}, {\"x\": -0.5384615384615381, \"y\": -0.02564102564102541, \"z\": 0.28928336620644274}, {\"x\": -0.5384615384615381, \"y\": 0.02564102564102587, \"z\": 0.28928336620644274}, {\"x\": -0.5384615384615381, \"y\": 0.07692307692307715, \"z\": 0.2840236686390528}, {\"x\": -0.5384615384615381, \"y\": 0.12820512820512842, \"z\": 0.27350427350427303}, {\"x\": -0.5384615384615381, \"y\": 0.17948717948717968, \"z\": 0.2577251808021034}, {\"x\": -0.5384615384615381, \"y\": 0.23076923076923095, \"z\": 0.2366863905325439}, {\"x\": -0.5384615384615381, \"y\": 0.2820512820512822, \"z\": 0.2103879026955945}, {\"x\": -0.5384615384615381, \"y\": 0.3333333333333335, \"z\": 0.17882971729125524}, {\"x\": -0.5384615384615381, \"y\": 0.38461538461538475, \"z\": 0.14201183431952613}, {\"x\": -0.5384615384615381, \"y\": 0.435897435897436, \"z\": 0.09993425378040713}, {\"x\": -0.5384615384615381, \"y\": 0.4871794871794873, \"z\": 0.05259697567389823}, {\"x\": -0.5384615384615381, \"y\": 0.5384615384615385, \"z\": -4.996003610813204e-16}, {\"x\": -0.5384615384615381, \"y\": 0.5897435897435899, \"z\": -0.05785667324128918}, {\"x\": -0.5384615384615381, \"y\": 0.6410256410256412, \"z\": -0.12097304404996773}, {\"x\": -0.5384615384615381, \"y\": 0.6923076923076925, \"z\": -0.1893491124260362}, {\"x\": -0.5384615384615381, \"y\": 0.7435897435897438, \"z\": -0.2629848783694946}, {\"x\": -0.5384615384615381, \"y\": 0.7948717948717952, \"z\": -0.3418803418803428}, {\"x\": -0.5384615384615381, \"y\": 0.8461538461538465, \"z\": -0.42603550295858084}, {\"x\": -0.5384615384615381, \"y\": 0.8974358974358978, \"z\": -0.5154503616042089}, {\"x\": -0.5384615384615381, \"y\": 0.9487179487179491, \"z\": -0.6101249178172267}, {\"x\": -0.5384615384615381, \"y\": 1.0, \"z\": -0.7100591715976335}, {\"x\": -0.48717948717948684, \"y\": -0.9487179487179487, \"z\": -0.6627218934911245}, {\"x\": -0.48717948717948684, \"y\": -1.0, \"z\": -0.7626561472715322}, {\"x\": -0.48717948717948684, \"y\": -0.8974358974358974, \"z\": -0.5680473372781066}, {\"x\": -0.48717948717948684, \"y\": -0.846153846153846, \"z\": -0.4786324786324787}, {\"x\": -0.48717948717948684, \"y\": -0.7948717948717947, \"z\": -0.39447731755424065}, {\"x\": -0.48717948717948684, \"y\": -0.7435897435897434, \"z\": -0.31558185404339256}, {\"x\": -0.48717948717948684, \"y\": -0.6923076923076921, \"z\": -0.24194608809993426}, {\"x\": -0.48717948717948684, \"y\": -0.6410256410256407, \"z\": -0.17357001972386585}, {\"x\": -0.48717948717948684, \"y\": -0.5897435897435894, \"z\": -0.11045364891518736}, {\"x\": -0.48717948717948684, \"y\": -0.5384615384615381, \"z\": -0.05259697567389868}, {\"x\": -0.48717948717948684, \"y\": -0.48717948717948684, \"z\": 0.0}, {\"x\": -0.48717948717948684, \"y\": -0.43589743589743557, \"z\": 0.04733727810650884}, {\"x\": -0.48717948717948684, \"y\": -0.3846153846153843, \"z\": 0.08941485864562779}, {\"x\": -0.48717948717948684, \"y\": -0.33333333333333304, \"z\": 0.12623274161735687}, {\"x\": -0.48717948717948684, \"y\": -0.28205128205128177, \"z\": 0.15779092702169606}, {\"x\": -0.48717948717948684, \"y\": -0.2307692307692305, \"z\": 0.1840894148586454}, {\"x\": -0.48717948717948684, \"y\": -0.17948717948717924, \"z\": 0.2051282051282049}, {\"x\": -0.48717948717948684, \"y\": -0.12820512820512797, \"z\": 0.2209072978303745}, {\"x\": -0.48717948717948684, \"y\": -0.07692307692307669, \"z\": 0.2314266929651542}, {\"x\": -0.48717948717948684, \"y\": -0.02564102564102541, \"z\": 0.23668639053254406}, {\"x\": -0.48717948717948684, \"y\": 0.02564102564102587, \"z\": 0.23668639053254403}, {\"x\": -0.48717948717948684, \"y\": 0.07692307692307715, \"z\": 0.23142669296515414}, {\"x\": -0.48717948717948684, \"y\": 0.12820512820512842, \"z\": 0.22090729783037436}, {\"x\": -0.48717948717948684, \"y\": 0.17948717948717968, \"z\": 0.20512820512820473}, {\"x\": -0.48717948717948684, \"y\": 0.23076923076923095, \"z\": 0.18408941485864522}, {\"x\": -0.48717948717948684, \"y\": 0.2820512820512822, \"z\": 0.15779092702169584}, {\"x\": -0.48717948717948684, \"y\": 0.3333333333333335, \"z\": 0.12623274161735656}, {\"x\": -0.48717948717948684, \"y\": 0.38461538461538475, \"z\": 0.08941485864562745}, {\"x\": -0.48717948717948684, \"y\": 0.435897435897436, \"z\": 0.04733727810650845}, {\"x\": -0.48717948717948684, \"y\": 0.4871794871794873, \"z\": -4.440892098500626e-16}, {\"x\": -0.48717948717948684, \"y\": 0.5384615384615385, \"z\": -0.05259697567389918}, {\"x\": -0.48717948717948684, \"y\": 0.5897435897435899, \"z\": -0.11045364891518786}, {\"x\": -0.48717948717948684, \"y\": 0.6410256410256412, \"z\": -0.1735700197238664}, {\"x\": -0.48717948717948684, \"y\": 0.6923076923076925, \"z\": -0.24194608809993487}, {\"x\": -0.48717948717948684, \"y\": 0.7435897435897438, \"z\": -0.31558185404339323}, {\"x\": -0.48717948717948684, \"y\": 0.7948717948717952, \"z\": -0.3944773175542414}, {\"x\": -0.48717948717948684, \"y\": 0.8461538461538465, \"z\": -0.4786324786324795}, {\"x\": -0.48717948717948684, \"y\": 0.8974358974358978, \"z\": -0.5680473372781075}, {\"x\": -0.48717948717948684, \"y\": 0.9487179487179491, \"z\": -0.6627218934911253}, {\"x\": -0.48717948717948684, \"y\": 1.0, \"z\": -0.7626561472715322}, {\"x\": -0.43589743589743557, \"y\": -0.9487179487179487, \"z\": -0.7100591715976334}, {\"x\": -0.43589743589743557, \"y\": -1.0, \"z\": -0.8099934253780411}, {\"x\": -0.43589743589743557, \"y\": -0.8974358974358974, \"z\": -0.6153846153846155}, {\"x\": -0.43589743589743557, \"y\": -0.846153846153846, \"z\": -0.5259697567389876}, {\"x\": -0.43589743589743557, \"y\": -0.7948717948717947, \"z\": -0.44181459566074954}, {\"x\": -0.43589743589743557, \"y\": -0.7435897435897434, \"z\": -0.36291913214990146}, {\"x\": -0.43589743589743557, \"y\": -0.6923076923076921, \"z\": -0.2892833662064431}, {\"x\": -0.43589743589743557, \"y\": -0.6410256410256407, \"z\": -0.2209072978303747}, {\"x\": -0.43589743589743557, \"y\": -0.5897435897435894, \"z\": -0.1577909270216962}, {\"x\": -0.43589743589743557, \"y\": -0.5384615384615381, \"z\": -0.09993425378040752}, {\"x\": -0.43589743589743557, \"y\": -0.48717948717948684, \"z\": -0.04733727810650884}, {\"x\": -0.43589743589743557, \"y\": -0.43589743589743557, \"z\": 0.0}, {\"x\": -0.43589743589743557, \"y\": -0.3846153846153843, \"z\": 0.04207758053911895}, {\"x\": -0.43589743589743557, \"y\": -0.33333333333333304, \"z\": 0.07889546351084803}, {\"x\": -0.43589743589743557, \"y\": -0.28205128205128177, \"z\": 0.11045364891518723}, {\"x\": -0.43589743589743557, \"y\": -0.2307692307692305, \"z\": 0.13675213675213657}, {\"x\": -0.43589743589743557, \"y\": -0.17948717948717924, \"z\": 0.15779092702169606}, {\"x\": -0.43589743589743557, \"y\": -0.12820512820512797, \"z\": 0.17357001972386565}, {\"x\": -0.43589743589743557, \"y\": -0.07692307692307669, \"z\": 0.18408941485864536}, {\"x\": -0.43589743589743557, \"y\": -0.02564102564102541, \"z\": 0.18934911242603522}, {\"x\": -0.43589743589743557, \"y\": 0.02564102564102587, \"z\": 0.1893491124260352}, {\"x\": -0.43589743589743557, \"y\": 0.07692307692307715, \"z\": 0.1840894148586453}, {\"x\": -0.43589743589743557, \"y\": 0.12820512820512842, \"z\": 0.17357001972386552}, {\"x\": -0.43589743589743557, \"y\": 0.17948717948717968, \"z\": 0.1577909270216959}, {\"x\": -0.43589743589743557, \"y\": 0.23076923076923095, \"z\": 0.13675213675213638}, {\"x\": -0.43589743589743557, \"y\": 0.2820512820512822, \"z\": 0.11045364891518698}, {\"x\": -0.43589743589743557, \"y\": 0.3333333333333335, \"z\": 0.07889546351084772}, {\"x\": -0.43589743589743557, \"y\": 0.38461538461538475, \"z\": 0.042077580539118614}, {\"x\": -0.43589743589743557, \"y\": 0.435897435897436, \"z\": -3.885780586188048e-16}, {\"x\": -0.43589743589743557, \"y\": 0.4871794871794873, \"z\": -0.047337278106509284}, {\"x\": -0.43589743589743557, \"y\": 0.5384615384615385, \"z\": -0.09993425378040802}, {\"x\": -0.43589743589743557, \"y\": 0.5897435897435899, \"z\": -0.1577909270216967}, {\"x\": -0.43589743589743557, \"y\": 0.6410256410256412, \"z\": -0.22090729783037524}, {\"x\": -0.43589743589743557, \"y\": 0.6923076923076925, \"z\": -0.2892833662064437}, {\"x\": -0.43589743589743557, \"y\": 0.7435897435897438, \"z\": -0.3629191321499021}, {\"x\": -0.43589743589743557, \"y\": 0.7948717948717952, \"z\": -0.4418145956607503}, {\"x\": -0.43589743589743557, \"y\": 0.8461538461538465, \"z\": -0.5259697567389884}, {\"x\": -0.43589743589743557, \"y\": 0.8974358974358978, \"z\": -0.6153846153846164}, {\"x\": -0.43589743589743557, \"y\": 0.9487179487179491, \"z\": -0.7100591715976342}, {\"x\": -0.43589743589743557, \"y\": 1.0, \"z\": -0.8099934253780411}, {\"x\": -0.3846153846153843, \"y\": -0.9487179487179487, \"z\": -0.7521367521367524}, {\"x\": -0.3846153846153843, \"y\": -1.0, \"z\": -0.85207100591716}, {\"x\": -0.3846153846153843, \"y\": -0.8974358974358974, \"z\": -0.6574621959237344}, {\"x\": -0.3846153846153843, \"y\": -0.846153846153846, \"z\": -0.5680473372781065}, {\"x\": -0.3846153846153843, \"y\": -0.7948717948717947, \"z\": -0.48389217619986846}, {\"x\": -0.3846153846153843, \"y\": -0.7435897435897434, \"z\": -0.4049967126890204}, {\"x\": -0.3846153846153843, \"y\": -0.6923076923076921, \"z\": -0.33136094674556205}, {\"x\": -0.3846153846153843, \"y\": -0.6410256410256407, \"z\": -0.26298487836949364}, {\"x\": -0.3846153846153843, \"y\": -0.5897435897435894, \"z\": -0.19986850756081515}, {\"x\": -0.3846153846153843, \"y\": -0.5384615384615381, \"z\": -0.14201183431952646}, {\"x\": -0.3846153846153843, \"y\": -0.48717948717948684, \"z\": -0.08941485864562779}, {\"x\": -0.3846153846153843, \"y\": -0.43589743589743557, \"z\": -0.04207758053911895}, {\"x\": -0.3846153846153843, \"y\": -0.3846153846153843, \"z\": 0.0}, {\"x\": -0.3846153846153843, \"y\": -0.33333333333333304, \"z\": 0.03681788297172908}, {\"x\": -0.3846153846153843, \"y\": -0.28205128205128177, \"z\": 0.06837606837606829}, {\"x\": -0.3846153846153843, \"y\": -0.2307692307692305, \"z\": 0.09467455621301762}, {\"x\": -0.3846153846153843, \"y\": -0.17948717948717924, \"z\": 0.1157133464825771}, {\"x\": -0.3846153846153843, \"y\": -0.12820512820512797, \"z\": 0.13149243918474668}, {\"x\": -0.3846153846153843, \"y\": -0.07692307692307669, \"z\": 0.1420118343195264}, {\"x\": -0.3846153846153843, \"y\": -0.02564102564102541, \"z\": 0.14727153188691627}, {\"x\": -0.3846153846153843, \"y\": 0.02564102564102587, \"z\": 0.14727153188691625}, {\"x\": -0.3846153846153843, \"y\": 0.07692307692307715, \"z\": 0.14201183431952635}, {\"x\": -0.3846153846153843, \"y\": 0.12820512820512842, \"z\": 0.13149243918474657}, {\"x\": -0.3846153846153843, \"y\": 0.17948717948717968, \"z\": 0.11571334648257695}, {\"x\": -0.3846153846153843, \"y\": 0.23076923076923095, \"z\": 0.09467455621301743}, {\"x\": -0.3846153846153843, \"y\": 0.2820512820512822, \"z\": 0.06837606837606804}, {\"x\": -0.3846153846153843, \"y\": 0.3333333333333335, \"z\": 0.03681788297172878}, {\"x\": -0.3846153846153843, \"y\": 0.38461538461538475, \"z\": -3.3306690738754696e-16}, {\"x\": -0.3846153846153843, \"y\": 0.435897435897436, \"z\": -0.042077580539119336}, {\"x\": -0.3846153846153843, \"y\": 0.4871794871794873, \"z\": -0.08941485864562823}, {\"x\": -0.3846153846153843, \"y\": 0.5384615384615385, \"z\": -0.14201183431952696}, {\"x\": -0.3846153846153843, \"y\": 0.5897435897435899, \"z\": -0.19986850756081564}, {\"x\": -0.3846153846153843, \"y\": 0.6410256410256412, \"z\": -0.2629848783694942}, {\"x\": -0.3846153846153843, \"y\": 0.6923076923076925, \"z\": -0.33136094674556266}, {\"x\": -0.3846153846153843, \"y\": 0.7435897435897438, \"z\": -0.40499671268902104}, {\"x\": -0.3846153846153843, \"y\": 0.7948717948717952, \"z\": -0.48389217619986924}, {\"x\": -0.3846153846153843, \"y\": 0.8461538461538465, \"z\": -0.5680473372781073}, {\"x\": -0.3846153846153843, \"y\": 0.8974358974358978, \"z\": -0.6574621959237353}, {\"x\": -0.3846153846153843, \"y\": 0.9487179487179491, \"z\": -0.7521367521367531}, {\"x\": -0.3846153846153843, \"y\": 1.0, \"z\": -0.85207100591716}, {\"x\": -0.33333333333333304, \"y\": -0.9487179487179487, \"z\": -0.7889546351084814}, {\"x\": -0.33333333333333304, \"y\": -1.0, \"z\": -0.8888888888888891}, {\"x\": -0.33333333333333304, \"y\": -0.8974358974358974, \"z\": -0.6942800788954635}, {\"x\": -0.33333333333333304, \"y\": -0.846153846153846, \"z\": -0.6048652202498356}, {\"x\": -0.33333333333333304, \"y\": -0.7948717948717947, \"z\": -0.5207100591715975}, {\"x\": -0.33333333333333304, \"y\": -0.7435897435897434, \"z\": -0.44181459566074943}, {\"x\": -0.33333333333333304, \"y\": -0.6923076923076921, \"z\": -0.3681788297172911}, {\"x\": -0.33333333333333304, \"y\": -0.6410256410256407, \"z\": -0.29980276134122275}, {\"x\": -0.33333333333333304, \"y\": -0.5897435897435894, \"z\": -0.23668639053254423}, {\"x\": -0.33333333333333304, \"y\": -0.5384615384615381, \"z\": -0.17882971729125555}, {\"x\": -0.33333333333333304, \"y\": -0.48717948717948684, \"z\": -0.12623274161735687}, {\"x\": -0.33333333333333304, \"y\": -0.43589743589743557, \"z\": -0.07889546351084803}, {\"x\": -0.33333333333333304, \"y\": -0.3846153846153843, \"z\": -0.03681788297172908}, {\"x\": -0.33333333333333304, \"y\": -0.33333333333333304, \"z\": 0.0}, {\"x\": -0.33333333333333304, \"y\": -0.28205128205128177, \"z\": 0.031558185404339203}, {\"x\": -0.33333333333333304, \"y\": -0.2307692307692305, \"z\": 0.05785667324128855}, {\"x\": -0.33333333333333304, \"y\": -0.17948717948717924, \"z\": 0.07889546351084802}, {\"x\": -0.33333333333333304, \"y\": -0.12820512820512797, \"z\": 0.09467455621301761}, {\"x\": -0.33333333333333304, \"y\": -0.07692307692307669, \"z\": 0.10519395134779734}, {\"x\": -0.33333333333333304, \"y\": -0.02564102564102541, \"z\": 0.11045364891518719}, {\"x\": -0.33333333333333304, \"y\": 0.02564102564102587, \"z\": 0.11045364891518716}, {\"x\": -0.33333333333333304, \"y\": 0.07692307692307715, \"z\": 0.10519395134779727}, {\"x\": -0.33333333333333304, \"y\": 0.12820512820512842, \"z\": 0.0946745562130175}, {\"x\": -0.33333333333333304, \"y\": 0.17948717948717968, \"z\": 0.07889546351084786}, {\"x\": -0.33333333333333304, \"y\": 0.23076923076923095, \"z\": 0.05785667324128834}, {\"x\": -0.33333333333333304, \"y\": 0.2820512820512822, \"z\": 0.031558185404338954}, {\"x\": -0.33333333333333304, \"y\": 0.3333333333333335, \"z\": -3.0531133177191805e-16}, {\"x\": -0.33333333333333304, \"y\": 0.38461538461538475, \"z\": -0.036817882971729415}, {\"x\": -0.33333333333333304, \"y\": 0.435897435897436, \"z\": -0.07889546351084842}, {\"x\": -0.33333333333333304, \"y\": 0.4871794871794873, \"z\": -0.1262327416173573}, {\"x\": -0.33333333333333304, \"y\": 0.5384615384615385, \"z\": -0.17882971729125605}, {\"x\": -0.33333333333333304, \"y\": 0.5897435897435899, \"z\": -0.23668639053254473}, {\"x\": -0.33333333333333304, \"y\": 0.6410256410256412, \"z\": -0.2998027613412233}, {\"x\": -0.33333333333333304, \"y\": 0.6923076923076925, \"z\": -0.36817882971729177}, {\"x\": -0.33333333333333304, \"y\": 0.7435897435897438, \"z\": -0.4418145956607501}, {\"x\": -0.33333333333333304, \"y\": 0.7948717948717952, \"z\": -0.5207100591715983}, {\"x\": -0.33333333333333304, \"y\": 0.8461538461538465, \"z\": -0.6048652202498364}, {\"x\": -0.33333333333333304, \"y\": 0.8974358974358978, \"z\": -0.6942800788954644}, {\"x\": -0.33333333333333304, \"y\": 0.9487179487179491, \"z\": -0.7889546351084822}, {\"x\": -0.33333333333333304, \"y\": 1.0, \"z\": -0.8888888888888891}, {\"x\": -0.28205128205128177, \"y\": -0.9487179487179487, \"z\": -0.8205128205128206}, {\"x\": -0.28205128205128177, \"y\": -1.0, \"z\": -0.9204470742932283}, {\"x\": -0.28205128205128177, \"y\": -0.8974358974358974, \"z\": -0.7258382642998027}, {\"x\": -0.28205128205128177, \"y\": -0.846153846153846, \"z\": -0.6364234056541748}, {\"x\": -0.28205128205128177, \"y\": -0.7948717948717947, \"z\": -0.5522682445759367}, {\"x\": -0.28205128205128177, \"y\": -0.7435897435897434, \"z\": -0.4733727810650887}, {\"x\": -0.28205128205128177, \"y\": -0.6923076923076921, \"z\": -0.39973701512163035}, {\"x\": -0.28205128205128177, \"y\": -0.6410256410256407, \"z\": -0.33136094674556194}, {\"x\": -0.28205128205128177, \"y\": -0.5897435897435894, \"z\": -0.26824457593688344}, {\"x\": -0.28205128205128177, \"y\": -0.5384615384615381, \"z\": -0.21038790269559476}, {\"x\": -0.28205128205128177, \"y\": -0.48717948717948684, \"z\": -0.15779092702169606}, {\"x\": -0.28205128205128177, \"y\": -0.43589743589743557, \"z\": -0.11045364891518723}, {\"x\": -0.28205128205128177, \"y\": -0.3846153846153843, \"z\": -0.06837606837606829}, {\"x\": -0.28205128205128177, \"y\": -0.33333333333333304, \"z\": -0.031558185404339203}, {\"x\": -0.28205128205128177, \"y\": -0.28205128205128177, \"z\": 0.0}, {\"x\": -0.28205128205128177, \"y\": -0.2307692307692305, \"z\": 0.026298487836949345}, {\"x\": -0.28205128205128177, \"y\": -0.17948717948717924, \"z\": 0.04733727810650881}, {\"x\": -0.28205128205128177, \"y\": -0.12820512820512797, \"z\": 0.06311637080867841}, {\"x\": -0.28205128205128177, \"y\": -0.07692307692307669, \"z\": 0.07363576594345814}, {\"x\": -0.28205128205128177, \"y\": -0.02564102564102541, \"z\": 0.07889546351084799}, {\"x\": -0.28205128205128177, \"y\": 0.02564102564102587, \"z\": 0.07889546351084796}, {\"x\": -0.28205128205128177, \"y\": 0.07692307692307715, \"z\": 0.07363576594345807}, {\"x\": -0.28205128205128177, \"y\": 0.12820512820512842, \"z\": 0.0631163708086783}, {\"x\": -0.28205128205128177, \"y\": 0.17948717948717968, \"z\": 0.04733727810650865}, {\"x\": -0.28205128205128177, \"y\": 0.23076923076923095, \"z\": 0.026298487836949137}, {\"x\": -0.28205128205128177, \"y\": 0.2820512820512822, \"z\": -2.498001805406602e-16}, {\"x\": -0.28205128205128177, \"y\": 0.3333333333333335, \"z\": -0.03155818540433951}, {\"x\": -0.28205128205128177, \"y\": 0.38461538461538475, \"z\": -0.06837606837606862}, {\"x\": -0.28205128205128177, \"y\": 0.435897435897436, \"z\": -0.11045364891518762}, {\"x\": -0.28205128205128177, \"y\": 0.4871794871794873, \"z\": -0.1577909270216965}, {\"x\": -0.28205128205128177, \"y\": 0.5384615384615385, \"z\": -0.21038790269559526}, {\"x\": -0.28205128205128177, \"y\": 0.5897435897435899, \"z\": -0.26824457593688394}, {\"x\": -0.28205128205128177, \"y\": 0.6410256410256412, \"z\": -0.3313609467455625}, {\"x\": -0.28205128205128177, \"y\": 0.6923076923076925, \"z\": -0.39973701512163096}, {\"x\": -0.28205128205128177, \"y\": 0.7435897435897438, \"z\": -0.47337278106508934}, {\"x\": -0.28205128205128177, \"y\": 0.7948717948717952, \"z\": -0.5522682445759375}, {\"x\": -0.28205128205128177, \"y\": 0.8461538461538465, \"z\": -0.6364234056541755}, {\"x\": -0.28205128205128177, \"y\": 0.8974358974358978, \"z\": -0.7258382642998036}, {\"x\": -0.28205128205128177, \"y\": 0.9487179487179491, \"z\": -0.8205128205128214}, {\"x\": -0.28205128205128177, \"y\": 1.0, \"z\": -0.9204470742932283}, {\"x\": -0.2307692307692305, \"y\": -0.9487179487179487, \"z\": -0.84681130834977}, {\"x\": -0.2307692307692305, \"y\": -1.0, \"z\": -0.9467455621301777}, {\"x\": -0.2307692307692305, \"y\": -0.8974358974358974, \"z\": -0.7521367521367521}, {\"x\": -0.2307692307692305, \"y\": -0.846153846153846, \"z\": -0.6627218934911242}, {\"x\": -0.2307692307692305, \"y\": -0.7948717948717947, \"z\": -0.5785667324128861}, {\"x\": -0.2307692307692305, \"y\": -0.7435897435897434, \"z\": -0.499671268902038}, {\"x\": -0.2307692307692305, \"y\": -0.6923076923076921, \"z\": -0.42603550295857967}, {\"x\": -0.2307692307692305, \"y\": -0.6410256410256407, \"z\": -0.35765943458251126}, {\"x\": -0.2307692307692305, \"y\": -0.5897435897435894, \"z\": -0.29454306377383277}, {\"x\": -0.2307692307692305, \"y\": -0.5384615384615381, \"z\": -0.2366863905325441}, {\"x\": -0.2307692307692305, \"y\": -0.48717948717948684, \"z\": -0.1840894148586454}, {\"x\": -0.2307692307692305, \"y\": -0.43589743589743557, \"z\": -0.13675213675213657}, {\"x\": -0.2307692307692305, \"y\": -0.3846153846153843, \"z\": -0.09467455621301762}, {\"x\": -0.2307692307692305, \"y\": -0.33333333333333304, \"z\": -0.05785667324128855}, {\"x\": -0.2307692307692305, \"y\": -0.28205128205128177, \"z\": -0.026298487836949345}, {\"x\": -0.2307692307692305, \"y\": -0.2307692307692305, \"z\": 0.0}, {\"x\": -0.2307692307692305, \"y\": -0.17948717948717924, \"z\": 0.021038790269559467}, {\"x\": -0.2307692307692305, \"y\": -0.12820512820512797, \"z\": 0.03681788297172906}, {\"x\": -0.2307692307692305, \"y\": -0.07692307692307669, \"z\": 0.047337278106508784}, {\"x\": -0.2307692307692305, \"y\": -0.02564102564102541, \"z\": 0.05259697567389864}, {\"x\": -0.2307692307692305, \"y\": 0.02564102564102587, \"z\": 0.052596975673898615}, {\"x\": -0.2307692307692305, \"y\": 0.07692307692307715, \"z\": 0.047337278106508715}, {\"x\": -0.2307692307692305, \"y\": 0.12820512820512842, \"z\": 0.036817882971728944}, {\"x\": -0.2307692307692305, \"y\": 0.17948717948717968, \"z\": 0.021038790269559307}, {\"x\": -0.2307692307692305, \"y\": 0.23076923076923095, \"z\": -2.0816681711721685e-16}, {\"x\": -0.2307692307692305, \"y\": 0.2820512820512822, \"z\": -0.026298487836949595}, {\"x\": -0.2307692307692305, \"y\": 0.3333333333333335, \"z\": -0.057856673241288854}, {\"x\": -0.2307692307692305, \"y\": 0.38461538461538475, \"z\": -0.09467455621301796}, {\"x\": -0.2307692307692305, \"y\": 0.435897435897436, \"z\": -0.13675213675213696}, {\"x\": -0.2307692307692305, \"y\": 0.4871794871794873, \"z\": -0.18408941485864586}, {\"x\": -0.2307692307692305, \"y\": 0.5384615384615385, \"z\": -0.2366863905325446}, {\"x\": -0.2307692307692305, \"y\": 0.5897435897435899, \"z\": -0.29454306377383327}, {\"x\": -0.2307692307692305, \"y\": 0.6410256410256412, \"z\": -0.3576594345825118}, {\"x\": -0.2307692307692305, \"y\": 0.6923076923076925, \"z\": -0.4260355029585803}, {\"x\": -0.2307692307692305, \"y\": 0.7435897435897438, \"z\": -0.49967126890203867}, {\"x\": -0.2307692307692305, \"y\": 0.7948717948717952, \"z\": -0.5785667324128869}, {\"x\": -0.2307692307692305, \"y\": 0.8461538461538465, \"z\": -0.662721893491125}, {\"x\": -0.2307692307692305, \"y\": 0.8974358974358978, \"z\": -0.752136752136753}, {\"x\": -0.2307692307692305, \"y\": 0.9487179487179491, \"z\": -0.8468113083497708}, {\"x\": -0.2307692307692305, \"y\": 1.0, \"z\": -0.9467455621301777}, {\"x\": -0.17948717948717924, \"y\": -0.9487179487179487, \"z\": -0.8678500986193295}, {\"x\": -0.17948717948717924, \"y\": -1.0, \"z\": -0.9677843523997371}, {\"x\": -0.17948717948717924, \"y\": -0.8974358974358974, \"z\": -0.7731755424063116}, {\"x\": -0.17948717948717924, \"y\": -0.846153846153846, \"z\": -0.6837606837606837}, {\"x\": -0.17948717948717924, \"y\": -0.7948717948717947, \"z\": -0.5996055226824456}, {\"x\": -0.17948717948717924, \"y\": -0.7435897435897434, \"z\": -0.5207100591715975}, {\"x\": -0.17948717948717924, \"y\": -0.6923076923076921, \"z\": -0.44707429322813913}, {\"x\": -0.17948717948717924, \"y\": -0.6410256410256407, \"z\": -0.3786982248520707}, {\"x\": -0.17948717948717924, \"y\": -0.5897435897435894, \"z\": -0.31558185404339223}, {\"x\": -0.17948717948717924, \"y\": -0.5384615384615381, \"z\": -0.25772518080210355}, {\"x\": -0.17948717948717924, \"y\": -0.48717948717948684, \"z\": -0.2051282051282049}, {\"x\": -0.17948717948717924, \"y\": -0.43589743589743557, \"z\": -0.15779092702169606}, {\"x\": -0.17948717948717924, \"y\": -0.3846153846153843, \"z\": -0.1157133464825771}, {\"x\": -0.17948717948717924, \"y\": -0.33333333333333304, \"z\": -0.07889546351084802}, {\"x\": -0.17948717948717924, \"y\": -0.28205128205128177, \"z\": -0.04733727810650881}, {\"x\": -0.17948717948717924, \"y\": -0.2307692307692305, \"z\": -0.021038790269559467}, {\"x\": -0.17948717948717924, \"y\": -0.17948717948717924, \"z\": 0.0}, {\"x\": -0.17948717948717924, \"y\": -0.12820512820512797, \"z\": 0.015779092702169595}, {\"x\": -0.17948717948717924, \"y\": -0.07692307692307669, \"z\": 0.02629848783694932}, {\"x\": -0.17948717948717924, \"y\": -0.02564102564102541, \"z\": 0.031558185404339176}, {\"x\": -0.17948717948717924, \"y\": 0.02564102564102587, \"z\": 0.03155818540433915}, {\"x\": -0.17948717948717924, \"y\": 0.07692307692307715, \"z\": 0.026298487836949252}, {\"x\": -0.17948717948717924, \"y\": 0.12820512820512842, \"z\": 0.01577909270216948}, {\"x\": -0.17948717948717924, \"y\": 0.17948717948717968, \"z\": -1.5959455978986625e-16}, {\"x\": -0.17948717948717924, \"y\": 0.23076923076923095, \"z\": -0.021038790269559675}, {\"x\": -0.17948717948717924, \"y\": 0.2820512820512822, \"z\": -0.04733727810650906}, {\"x\": -0.17948717948717924, \"y\": 0.3333333333333335, \"z\": -0.07889546351084832}, {\"x\": -0.17948717948717924, \"y\": 0.38461538461538475, \"z\": -0.11571334648257743}, {\"x\": -0.17948717948717924, \"y\": 0.435897435897436, \"z\": -0.15779092702169645}, {\"x\": -0.17948717948717924, \"y\": 0.4871794871794873, \"z\": -0.20512820512820534}, {\"x\": -0.17948717948717924, \"y\": 0.5384615384615385, \"z\": -0.25772518080210405}, {\"x\": -0.17948717948717924, \"y\": 0.5897435897435899, \"z\": -0.31558185404339273}, {\"x\": -0.17948717948717924, \"y\": 0.6410256410256412, \"z\": -0.3786982248520713}, {\"x\": -0.17948717948717924, \"y\": 0.6923076923076925, \"z\": -0.44707429322813974}, {\"x\": -0.17948717948717924, \"y\": 0.7435897435897438, \"z\": -0.5207100591715982}, {\"x\": -0.17948717948717924, \"y\": 0.7948717948717952, \"z\": -0.5996055226824464}, {\"x\": -0.17948717948717924, \"y\": 0.8461538461538465, \"z\": -0.6837606837606844}, {\"x\": -0.17948717948717924, \"y\": 0.8974358974358978, \"z\": -0.7731755424063125}, {\"x\": -0.17948717948717924, \"y\": 0.9487179487179491, \"z\": -0.8678500986193303}, {\"x\": -0.17948717948717924, \"y\": 1.0, \"z\": -0.9677843523997371}, {\"x\": -0.12820512820512797, \"y\": -0.9487179487179487, \"z\": -0.8836291913214991}, {\"x\": -0.12820512820512797, \"y\": -1.0, \"z\": -0.9835634451019067}, {\"x\": -0.12820512820512797, \"y\": -0.8974358974358974, \"z\": -0.7889546351084812}, {\"x\": -0.12820512820512797, \"y\": -0.846153846153846, \"z\": -0.6995397764628533}, {\"x\": -0.12820512820512797, \"y\": -0.7948717948717947, \"z\": -0.6153846153846152}, {\"x\": -0.12820512820512797, \"y\": -0.7435897435897434, \"z\": -0.5364891518737671}, {\"x\": -0.12820512820512797, \"y\": -0.6923076923076921, \"z\": -0.4628533859303087}, {\"x\": -0.12820512820512797, \"y\": -0.6410256410256407, \"z\": -0.3944773175542403}, {\"x\": -0.12820512820512797, \"y\": -0.5897435897435894, \"z\": -0.3313609467455618}, {\"x\": -0.12820512820512797, \"y\": -0.5384615384615381, \"z\": -0.27350427350427314}, {\"x\": -0.12820512820512797, \"y\": -0.48717948717948684, \"z\": -0.2209072978303745}, {\"x\": -0.12820512820512797, \"y\": -0.43589743589743557, \"z\": -0.17357001972386565}, {\"x\": -0.12820512820512797, \"y\": -0.3846153846153843, \"z\": -0.13149243918474668}, {\"x\": -0.12820512820512797, \"y\": -0.33333333333333304, \"z\": -0.09467455621301761}, {\"x\": -0.12820512820512797, \"y\": -0.28205128205128177, \"z\": -0.06311637080867841}, {\"x\": -0.12820512820512797, \"y\": -0.2307692307692305, \"z\": -0.03681788297172906}, {\"x\": -0.12820512820512797, \"y\": -0.17948717948717924, \"z\": -0.015779092702169595}, {\"x\": -0.12820512820512797, \"y\": -0.12820512820512797, \"z\": 0.0}, {\"x\": -0.12820512820512797, \"y\": -0.07692307692307669, \"z\": 0.010519395134779726}, {\"x\": -0.12820512820512797, \"y\": -0.02564102564102541, \"z\": 0.015779092702169577}, {\"x\": -0.12820512820512797, \"y\": 0.02564102564102587, \"z\": 0.015779092702169553}, {\"x\": -0.12820512820512797, \"y\": 0.07692307692307715, \"z\": 0.010519395134779657}, {\"x\": -0.12820512820512797, \"y\": 0.12820512820512842, \"z\": -1.1449174941446927e-16}, {\"x\": -0.12820512820512797, \"y\": 0.17948717948717968, \"z\": -0.015779092702169754}, {\"x\": -0.12820512820512797, \"y\": 0.23076923076923095, \"z\": -0.03681788297172927}, {\"x\": -0.12820512820512797, \"y\": 0.2820512820512822, \"z\": -0.06311637080867866}, {\"x\": -0.12820512820512797, \"y\": 0.3333333333333335, \"z\": -0.09467455621301792}, {\"x\": -0.12820512820512797, \"y\": 0.38461538461538475, \"z\": -0.131492439184747}, {\"x\": -0.12820512820512797, \"y\": 0.435897435897436, \"z\": -0.17357001972386604}, {\"x\": -0.12820512820512797, \"y\": 0.4871794871794873, \"z\": -0.22090729783037494}, {\"x\": -0.12820512820512797, \"y\": 0.5384615384615385, \"z\": -0.27350427350427364}, {\"x\": -0.12820512820512797, \"y\": 0.5897435897435899, \"z\": -0.3313609467455623}, {\"x\": -0.12820512820512797, \"y\": 0.6410256410256412, \"z\": -0.39447731755424087}, {\"x\": -0.12820512820512797, \"y\": 0.6923076923076925, \"z\": -0.46285338593030934}, {\"x\": -0.12820512820512797, \"y\": 0.7435897435897438, \"z\": -0.5364891518737678}, {\"x\": -0.12820512820512797, \"y\": 0.7948717948717952, \"z\": -0.615384615384616}, {\"x\": -0.12820512820512797, \"y\": 0.8461538461538465, \"z\": -0.699539776462854}, {\"x\": -0.12820512820512797, \"y\": 0.8974358974358978, \"z\": -0.7889546351084821}, {\"x\": -0.12820512820512797, \"y\": 0.9487179487179491, \"z\": -0.8836291913214999}, {\"x\": -0.12820512820512797, \"y\": 1.0, \"z\": -0.9835634451019067}, {\"x\": -0.07692307692307669, \"y\": -0.9487179487179487, \"z\": -0.8941485864562788}, {\"x\": -0.07692307692307669, \"y\": -1.0, \"z\": -0.9940828402366865}, {\"x\": -0.07692307692307669, \"y\": -0.8974358974358974, \"z\": -0.7994740302432609}, {\"x\": -0.07692307692307669, \"y\": -0.846153846153846, \"z\": -0.710059171597633}, {\"x\": -0.07692307692307669, \"y\": -0.7948717948717947, \"z\": -0.6259040105193949}, {\"x\": -0.07692307692307669, \"y\": -0.7435897435897434, \"z\": -0.5470085470085468}, {\"x\": -0.07692307692307669, \"y\": -0.6923076923076921, \"z\": -0.47337278106508845}, {\"x\": -0.07692307692307669, \"y\": -0.6410256410256407, \"z\": -0.40499671268902004}, {\"x\": -0.07692307692307669, \"y\": -0.5897435897435894, \"z\": -0.34188034188034155}, {\"x\": -0.07692307692307669, \"y\": -0.5384615384615381, \"z\": -0.2840236686390529}, {\"x\": -0.07692307692307669, \"y\": -0.48717948717948684, \"z\": -0.2314266929651542}, {\"x\": -0.07692307692307669, \"y\": -0.43589743589743557, \"z\": -0.18408941485864536}, {\"x\": -0.07692307692307669, \"y\": -0.3846153846153843, \"z\": -0.1420118343195264}, {\"x\": -0.07692307692307669, \"y\": -0.33333333333333304, \"z\": -0.10519395134779734}, {\"x\": -0.07692307692307669, \"y\": -0.28205128205128177, \"z\": -0.07363576594345814}, {\"x\": -0.07692307692307669, \"y\": -0.2307692307692305, \"z\": -0.047337278106508784}, {\"x\": -0.07692307692307669, \"y\": -0.17948717948717924, \"z\": -0.02629848783694932}, {\"x\": -0.07692307692307669, \"y\": -0.12820512820512797, \"z\": -0.010519395134779726}, {\"x\": -0.07692307692307669, \"y\": -0.07692307692307669, \"z\": 0.0}, {\"x\": -0.07692307692307669, \"y\": -0.02564102564102541, \"z\": 0.005259697567389851}, {\"x\": -0.07692307692307669, \"y\": 0.02564102564102587, \"z\": 0.005259697567389828}, {\"x\": -0.07692307692307669, \"y\": 0.07692307692307715, \"z\": -7.025630077706069e-17}, {\"x\": -0.07692307692307669, \"y\": 0.12820512820512842, \"z\": -0.010519395134779841}, {\"x\": -0.07692307692307669, \"y\": 0.17948717948717968, \"z\": -0.02629848783694948}, {\"x\": -0.07692307692307669, \"y\": 0.23076923076923095, \"z\": -0.04733727810650899}, {\"x\": -0.07692307692307669, \"y\": 0.2820512820512822, \"z\": -0.07363576594345839}, {\"x\": -0.07692307692307669, \"y\": 0.3333333333333335, \"z\": -0.10519395134779765}, {\"x\": -0.07692307692307669, \"y\": 0.38461538461538475, \"z\": -0.14201183431952674}, {\"x\": -0.07692307692307669, \"y\": 0.435897435897436, \"z\": -0.18408941485864574}, {\"x\": -0.07692307692307669, \"y\": 0.4871794871794873, \"z\": -0.23142669296515464}, {\"x\": -0.07692307692307669, \"y\": 0.5384615384615385, \"z\": -0.2840236686390534}, {\"x\": -0.07692307692307669, \"y\": 0.5897435897435899, \"z\": -0.34188034188034205}, {\"x\": -0.07692307692307669, \"y\": 0.6410256410256412, \"z\": -0.4049967126890206}, {\"x\": -0.07692307692307669, \"y\": 0.6923076923076925, \"z\": -0.47337278106508907}, {\"x\": -0.07692307692307669, \"y\": 0.7435897435897438, \"z\": -0.5470085470085475}, {\"x\": -0.07692307692307669, \"y\": 0.7948717948717952, \"z\": -0.6259040105193957}, {\"x\": -0.07692307692307669, \"y\": 0.8461538461538465, \"z\": -0.7100591715976338}, {\"x\": -0.07692307692307669, \"y\": 0.8974358974358978, \"z\": -0.7994740302432618}, {\"x\": -0.07692307692307669, \"y\": 0.9487179487179491, \"z\": -0.8941485864562796}, {\"x\": -0.07692307692307669, \"y\": 1.0, \"z\": -0.9940828402366865}, {\"x\": -0.02564102564102541, \"y\": -0.9487179487179487, \"z\": -0.8994082840236686}, {\"x\": -0.02564102564102541, \"y\": -1.0, \"z\": -0.9993425378040762}, {\"x\": -0.02564102564102541, \"y\": -0.8974358974358974, \"z\": -0.8047337278106507}, {\"x\": -0.02564102564102541, \"y\": -0.846153846153846, \"z\": -0.7153188691650227}, {\"x\": -0.02564102564102541, \"y\": -0.7948717948717947, \"z\": -0.6311637080867847}, {\"x\": -0.02564102564102541, \"y\": -0.7435897435897434, \"z\": -0.5522682445759366}, {\"x\": -0.02564102564102541, \"y\": -0.6923076923076921, \"z\": -0.4786324786324783}, {\"x\": -0.02564102564102541, \"y\": -0.6410256410256407, \"z\": -0.4102564102564099}, {\"x\": -0.02564102564102541, \"y\": -0.5897435897435894, \"z\": -0.3471400394477314}, {\"x\": -0.02564102564102541, \"y\": -0.5384615384615381, \"z\": -0.28928336620644274}, {\"x\": -0.02564102564102541, \"y\": -0.48717948717948684, \"z\": -0.23668639053254406}, {\"x\": -0.02564102564102541, \"y\": -0.43589743589743557, \"z\": -0.18934911242603522}, {\"x\": -0.02564102564102541, \"y\": -0.3846153846153843, \"z\": -0.14727153188691627}, {\"x\": -0.02564102564102541, \"y\": -0.33333333333333304, \"z\": -0.11045364891518719}, {\"x\": -0.02564102564102541, \"y\": -0.28205128205128177, \"z\": -0.07889546351084799}, {\"x\": -0.02564102564102541, \"y\": -0.2307692307692305, \"z\": -0.05259697567389864}, {\"x\": -0.02564102564102541, \"y\": -0.17948717948717924, \"z\": -0.031558185404339176}, {\"x\": -0.02564102564102541, \"y\": -0.12820512820512797, \"z\": -0.015779092702169577}, {\"x\": -0.02564102564102541, \"y\": -0.07692307692307669, \"z\": -0.005259697567389851}, {\"x\": -0.02564102564102541, \"y\": -0.02564102564102541, \"z\": 0.0}, {\"x\": -0.02564102564102541, \"y\": 0.02564102564102587, \"z\": -2.3527187142935446e-17}, {\"x\": -0.02564102564102541, \"y\": 0.07692307692307715, \"z\": -0.005259697567389921}, {\"x\": -0.02564102564102541, \"y\": 0.12820512820512842, \"z\": -0.015779092702169692}, {\"x\": -0.02564102564102541, \"y\": 0.17948717948717968, \"z\": -0.031558185404339335}, {\"x\": -0.02564102564102541, \"y\": 0.23076923076923095, \"z\": -0.05259697567389885}, {\"x\": -0.02564102564102541, \"y\": 0.2820512820512822, \"z\": -0.07889546351084824}, {\"x\": -0.02564102564102541, \"y\": 0.3333333333333335, \"z\": -0.1104536489151875}, {\"x\": -0.02564102564102541, \"y\": 0.38461538461538475, \"z\": -0.1472715318869166}, {\"x\": -0.02564102564102541, \"y\": 0.435897435897436, \"z\": -0.1893491124260356}, {\"x\": -0.02564102564102541, \"y\": 0.4871794871794873, \"z\": -0.2366863905325445}, {\"x\": -0.02564102564102541, \"y\": 0.5384615384615385, \"z\": -0.28928336620644324}, {\"x\": -0.02564102564102541, \"y\": 0.5897435897435899, \"z\": -0.3471400394477319}, {\"x\": -0.02564102564102541, \"y\": 0.6410256410256412, \"z\": -0.41025641025641046}, {\"x\": -0.02564102564102541, \"y\": 0.6923076923076925, \"z\": -0.47863247863247893}, {\"x\": -0.02564102564102541, \"y\": 0.7435897435897438, \"z\": -0.5522682445759373}, {\"x\": -0.02564102564102541, \"y\": 0.7948717948717952, \"z\": -0.6311637080867855}, {\"x\": -0.02564102564102541, \"y\": 0.8461538461538465, \"z\": -0.7153188691650235}, {\"x\": -0.02564102564102541, \"y\": 0.8974358974358978, \"z\": -0.8047337278106516}, {\"x\": -0.02564102564102541, \"y\": 0.9487179487179491, \"z\": -0.8994082840236693}, {\"x\": -0.02564102564102541, \"y\": 1.0, \"z\": -0.9993425378040762}, {\"x\": 0.02564102564102587, \"y\": -0.9487179487179487, \"z\": -0.8994082840236686}, {\"x\": 0.02564102564102587, \"y\": -1.0, \"z\": -0.9993425378040762}, {\"x\": 0.02564102564102587, \"y\": -0.8974358974358974, \"z\": -0.8047337278106507}, {\"x\": 0.02564102564102587, \"y\": -0.846153846153846, \"z\": -0.7153188691650227}, {\"x\": 0.02564102564102587, \"y\": -0.7948717948717947, \"z\": -0.6311637080867847}, {\"x\": 0.02564102564102587, \"y\": -0.7435897435897434, \"z\": -0.5522682445759366}, {\"x\": 0.02564102564102587, \"y\": -0.6923076923076921, \"z\": -0.4786324786324783}, {\"x\": 0.02564102564102587, \"y\": -0.6410256410256407, \"z\": -0.4102564102564099}, {\"x\": 0.02564102564102587, \"y\": -0.5897435897435894, \"z\": -0.3471400394477314}, {\"x\": 0.02564102564102587, \"y\": -0.5384615384615381, \"z\": -0.28928336620644274}, {\"x\": 0.02564102564102587, \"y\": -0.48717948717948684, \"z\": -0.23668639053254403}, {\"x\": 0.02564102564102587, \"y\": -0.43589743589743557, \"z\": -0.1893491124260352}, {\"x\": 0.02564102564102587, \"y\": -0.3846153846153843, \"z\": -0.14727153188691625}, {\"x\": 0.02564102564102587, \"y\": -0.33333333333333304, \"z\": -0.11045364891518716}, {\"x\": 0.02564102564102587, \"y\": -0.28205128205128177, \"z\": -0.07889546351084796}, {\"x\": 0.02564102564102587, \"y\": -0.2307692307692305, \"z\": -0.052596975673898615}, {\"x\": 0.02564102564102587, \"y\": -0.17948717948717924, \"z\": -0.03155818540433915}, {\"x\": 0.02564102564102587, \"y\": -0.12820512820512797, \"z\": -0.015779092702169553}, {\"x\": 0.02564102564102587, \"y\": -0.07692307692307669, \"z\": -0.005259697567389828}, {\"x\": 0.02564102564102587, \"y\": -0.02564102564102541, \"z\": 2.3527187142935446e-17}, {\"x\": 0.02564102564102587, \"y\": 0.02564102564102587, \"z\": 0.0}, {\"x\": 0.02564102564102587, \"y\": 0.07692307692307715, \"z\": -0.005259697567389898}, {\"x\": 0.02564102564102587, \"y\": 0.12820512820512842, \"z\": -0.015779092702169668}, {\"x\": 0.02564102564102587, \"y\": 0.17948717948717968, \"z\": -0.03155818540433931}, {\"x\": 0.02564102564102587, \"y\": 0.23076923076923095, \"z\": -0.05259697567389882}, {\"x\": 0.02564102564102587, \"y\": 0.2820512820512822, \"z\": -0.07889546351084821}, {\"x\": 0.02564102564102587, \"y\": 0.3333333333333335, \"z\": -0.11045364891518747}, {\"x\": 0.02564102564102587, \"y\": 0.38461538461538475, \"z\": -0.14727153188691658}, {\"x\": 0.02564102564102587, \"y\": 0.435897435897436, \"z\": -0.18934911242603558}, {\"x\": 0.02564102564102587, \"y\": 0.4871794871794873, \"z\": -0.23668639053254448}, {\"x\": 0.02564102564102587, \"y\": 0.5384615384615385, \"z\": -0.28928336620644324}, {\"x\": 0.02564102564102587, \"y\": 0.5897435897435899, \"z\": -0.3471400394477319}, {\"x\": 0.02564102564102587, \"y\": 0.6410256410256412, \"z\": -0.41025641025641046}, {\"x\": 0.02564102564102587, \"y\": 0.6923076923076925, \"z\": -0.47863247863247893}, {\"x\": 0.02564102564102587, \"y\": 0.7435897435897438, \"z\": -0.5522682445759373}, {\"x\": 0.02564102564102587, \"y\": 0.7948717948717952, \"z\": -0.6311637080867855}, {\"x\": 0.02564102564102587, \"y\": 0.8461538461538465, \"z\": -0.7153188691650235}, {\"x\": 0.02564102564102587, \"y\": 0.8974358974358978, \"z\": -0.8047337278106516}, {\"x\": 0.02564102564102587, \"y\": 0.9487179487179491, \"z\": -0.8994082840236693}, {\"x\": 0.02564102564102587, \"y\": 1.0, \"z\": -0.9993425378040762}, {\"x\": 0.07692307692307715, \"y\": -0.9487179487179487, \"z\": -0.8941485864562787}, {\"x\": 0.07692307692307715, \"y\": -1.0, \"z\": -0.9940828402366864}, {\"x\": 0.07692307692307715, \"y\": -0.8974358974358974, \"z\": -0.7994740302432608}, {\"x\": 0.07692307692307715, \"y\": -0.846153846153846, \"z\": -0.7100591715976329}, {\"x\": 0.07692307692307715, \"y\": -0.7948717948717947, \"z\": -0.6259040105193948}, {\"x\": 0.07692307692307715, \"y\": -0.7435897435897434, \"z\": -0.5470085470085467}, {\"x\": 0.07692307692307715, \"y\": -0.6923076923076921, \"z\": -0.4733727810650884}, {\"x\": 0.07692307692307715, \"y\": -0.6410256410256407, \"z\": -0.40499671268902}, {\"x\": 0.07692307692307715, \"y\": -0.5897435897435894, \"z\": -0.3418803418803415}, {\"x\": 0.07692307692307715, \"y\": -0.5384615384615381, \"z\": -0.2840236686390528}, {\"x\": 0.07692307692307715, \"y\": -0.48717948717948684, \"z\": -0.23142669296515414}, {\"x\": 0.07692307692307715, \"y\": -0.43589743589743557, \"z\": -0.1840894148586453}, {\"x\": 0.07692307692307715, \"y\": -0.3846153846153843, \"z\": -0.14201183431952635}, {\"x\": 0.07692307692307715, \"y\": -0.33333333333333304, \"z\": -0.10519395134779727}, {\"x\": 0.07692307692307715, \"y\": -0.28205128205128177, \"z\": -0.07363576594345807}, {\"x\": 0.07692307692307715, \"y\": -0.2307692307692305, \"z\": -0.047337278106508715}, {\"x\": 0.07692307692307715, \"y\": -0.17948717948717924, \"z\": -0.026298487836949252}, {\"x\": 0.07692307692307715, \"y\": -0.12820512820512797, \"z\": -0.010519395134779657}, {\"x\": 0.07692307692307715, \"y\": -0.07692307692307669, \"z\": 7.025630077706069e-17}, {\"x\": 0.07692307692307715, \"y\": -0.02564102564102541, \"z\": 0.005259697567389921}, {\"x\": 0.07692307692307715, \"y\": 0.02564102564102587, \"z\": 0.005259697567389898}, {\"x\": 0.07692307692307715, \"y\": 0.07692307692307715, \"z\": 0.0}, {\"x\": 0.07692307692307715, \"y\": 0.12820512820512842, \"z\": -0.010519395134779772}, {\"x\": 0.07692307692307715, \"y\": 0.17948717948717968, \"z\": -0.02629848783694941}, {\"x\": 0.07692307692307715, \"y\": 0.23076923076923095, \"z\": -0.04733727810650892}, {\"x\": 0.07692307692307715, \"y\": 0.2820512820512822, \"z\": -0.07363576594345832}, {\"x\": 0.07692307692307715, \"y\": 0.3333333333333335, \"z\": -0.10519395134779758}, {\"x\": 0.07692307692307715, \"y\": 0.38461538461538475, \"z\": -0.1420118343195267}, {\"x\": 0.07692307692307715, \"y\": 0.435897435897436, \"z\": -0.1840894148586457}, {\"x\": 0.07692307692307715, \"y\": 0.4871794871794873, \"z\": -0.23142669296515458}, {\"x\": 0.07692307692307715, \"y\": 0.5384615384615385, \"z\": -0.2840236686390533}, {\"x\": 0.07692307692307715, \"y\": 0.5897435897435899, \"z\": -0.341880341880342}, {\"x\": 0.07692307692307715, \"y\": 0.6410256410256412, \"z\": -0.40499671268902054}, {\"x\": 0.07692307692307715, \"y\": 0.6923076923076925, \"z\": -0.473372781065089}, {\"x\": 0.07692307692307715, \"y\": 0.7435897435897438, \"z\": -0.5470085470085474}, {\"x\": 0.07692307692307715, \"y\": 0.7948717948717952, \"z\": -0.6259040105193956}, {\"x\": 0.07692307692307715, \"y\": 0.8461538461538465, \"z\": -0.7100591715976337}, {\"x\": 0.07692307692307715, \"y\": 0.8974358974358978, \"z\": -0.7994740302432617}, {\"x\": 0.07692307692307715, \"y\": 0.9487179487179491, \"z\": -0.8941485864562795}, {\"x\": 0.07692307692307715, \"y\": 1.0, \"z\": -0.9940828402366864}, {\"x\": 0.12820512820512842, \"y\": -0.9487179487179487, \"z\": -0.883629191321499}, {\"x\": 0.12820512820512842, \"y\": -1.0, \"z\": -0.9835634451019066}, {\"x\": 0.12820512820512842, \"y\": -0.8974358974358974, \"z\": -0.7889546351084811}, {\"x\": 0.12820512820512842, \"y\": -0.846153846153846, \"z\": -0.6995397764628531}, {\"x\": 0.12820512820512842, \"y\": -0.7948717948717947, \"z\": -0.6153846153846151}, {\"x\": 0.12820512820512842, \"y\": -0.7435897435897434, \"z\": -0.536489151873767}, {\"x\": 0.12820512820512842, \"y\": -0.6923076923076921, \"z\": -0.4628533859303086}, {\"x\": 0.12820512820512842, \"y\": -0.6410256410256407, \"z\": -0.3944773175542402}, {\"x\": 0.12820512820512842, \"y\": -0.5897435897435894, \"z\": -0.3313609467455617}, {\"x\": 0.12820512820512842, \"y\": -0.5384615384615381, \"z\": -0.27350427350427303}, {\"x\": 0.12820512820512842, \"y\": -0.48717948717948684, \"z\": -0.22090729783037436}, {\"x\": 0.12820512820512842, \"y\": -0.43589743589743557, \"z\": -0.17357001972386552}, {\"x\": 0.12820512820512842, \"y\": -0.3846153846153843, \"z\": -0.13149243918474657}, {\"x\": 0.12820512820512842, \"y\": -0.33333333333333304, \"z\": -0.0946745562130175}, {\"x\": 0.12820512820512842, \"y\": -0.28205128205128177, \"z\": -0.0631163708086783}, {\"x\": 0.12820512820512842, \"y\": -0.2307692307692305, \"z\": -0.036817882971728944}, {\"x\": 0.12820512820512842, \"y\": -0.17948717948717924, \"z\": -0.01577909270216948}, {\"x\": 0.12820512820512842, \"y\": -0.12820512820512797, \"z\": 1.1449174941446927e-16}, {\"x\": 0.12820512820512842, \"y\": -0.07692307692307669, \"z\": 0.010519395134779841}, {\"x\": 0.12820512820512842, \"y\": -0.02564102564102541, \"z\": 0.015779092702169692}, {\"x\": 0.12820512820512842, \"y\": 0.02564102564102587, \"z\": 0.015779092702169668}, {\"x\": 0.12820512820512842, \"y\": 0.07692307692307715, \"z\": 0.010519395134779772}, {\"x\": 0.12820512820512842, \"y\": 0.12820512820512842, \"z\": 0.0}, {\"x\": 0.12820512820512842, \"y\": 0.17948717948717968, \"z\": -0.01577909270216964}, {\"x\": 0.12820512820512842, \"y\": 0.23076923076923095, \"z\": -0.03681788297172915}, {\"x\": 0.12820512820512842, \"y\": 0.2820512820512822, \"z\": -0.06311637080867855}, {\"x\": 0.12820512820512842, \"y\": 0.3333333333333335, \"z\": -0.0946745562130178}, {\"x\": 0.12820512820512842, \"y\": 0.38461538461538475, \"z\": -0.1314924391847469}, {\"x\": 0.12820512820512842, \"y\": 0.435897435897436, \"z\": -0.1735700197238659}, {\"x\": 0.12820512820512842, \"y\": 0.4871794871794873, \"z\": -0.2209072978303748}, {\"x\": 0.12820512820512842, \"y\": 0.5384615384615385, \"z\": -0.27350427350427353}, {\"x\": 0.12820512820512842, \"y\": 0.5897435897435899, \"z\": -0.3313609467455622}, {\"x\": 0.12820512820512842, \"y\": 0.6410256410256412, \"z\": -0.39447731755424076}, {\"x\": 0.12820512820512842, \"y\": 0.6923076923076925, \"z\": -0.4628533859303092}, {\"x\": 0.12820512820512842, \"y\": 0.7435897435897438, \"z\": -0.5364891518737677}, {\"x\": 0.12820512820512842, \"y\": 0.7948717948717952, \"z\": -0.6153846153846159}, {\"x\": 0.12820512820512842, \"y\": 0.8461538461538465, \"z\": -0.6995397764628539}, {\"x\": 0.12820512820512842, \"y\": 0.8974358974358978, \"z\": -0.788954635108482}, {\"x\": 0.12820512820512842, \"y\": 0.9487179487179491, \"z\": -0.8836291913214998}, {\"x\": 0.12820512820512842, \"y\": 1.0, \"z\": -0.9835634451019066}, {\"x\": 0.17948717948717968, \"y\": -0.9487179487179487, \"z\": -0.8678500986193293}, {\"x\": 0.17948717948717968, \"y\": -1.0, \"z\": -0.9677843523997369}, {\"x\": 0.17948717948717968, \"y\": -0.8974358974358974, \"z\": -0.7731755424063114}, {\"x\": 0.17948717948717968, \"y\": -0.846153846153846, \"z\": -0.6837606837606834}, {\"x\": 0.17948717948717968, \"y\": -0.7948717948717947, \"z\": -0.5996055226824454}, {\"x\": 0.17948717948717968, \"y\": -0.7435897435897434, \"z\": -0.5207100591715973}, {\"x\": 0.17948717948717968, \"y\": -0.6923076923076921, \"z\": -0.44707429322813896}, {\"x\": 0.17948717948717968, \"y\": -0.6410256410256407, \"z\": -0.37869822485207055}, {\"x\": 0.17948717948717968, \"y\": -0.5897435897435894, \"z\": -0.31558185404339206}, {\"x\": 0.17948717948717968, \"y\": -0.5384615384615381, \"z\": -0.2577251808021034}, {\"x\": 0.17948717948717968, \"y\": -0.48717948717948684, \"z\": -0.20512820512820473}, {\"x\": 0.17948717948717968, \"y\": -0.43589743589743557, \"z\": -0.1577909270216959}, {\"x\": 0.17948717948717968, \"y\": -0.3846153846153843, \"z\": -0.11571334648257695}, {\"x\": 0.17948717948717968, \"y\": -0.33333333333333304, \"z\": -0.07889546351084786}, {\"x\": 0.17948717948717968, \"y\": -0.28205128205128177, \"z\": -0.04733727810650865}, {\"x\": 0.17948717948717968, \"y\": -0.2307692307692305, \"z\": -0.021038790269559307}, {\"x\": 0.17948717948717968, \"y\": -0.17948717948717924, \"z\": 1.5959455978986625e-16}, {\"x\": 0.17948717948717968, \"y\": -0.12820512820512797, \"z\": 0.015779092702169754}, {\"x\": 0.17948717948717968, \"y\": -0.07692307692307669, \"z\": 0.02629848783694948}, {\"x\": 0.17948717948717968, \"y\": -0.02564102564102541, \"z\": 0.031558185404339335}, {\"x\": 0.17948717948717968, \"y\": 0.02564102564102587, \"z\": 0.03155818540433931}, {\"x\": 0.17948717948717968, \"y\": 0.07692307692307715, \"z\": 0.02629848783694941}, {\"x\": 0.17948717948717968, \"y\": 0.12820512820512842, \"z\": 0.01577909270216964}, {\"x\": 0.17948717948717968, \"y\": 0.17948717948717968, \"z\": 0.0}, {\"x\": 0.17948717948717968, \"y\": 0.23076923076923095, \"z\": -0.021038790269559515}, {\"x\": 0.17948717948717968, \"y\": 0.2820512820512822, \"z\": -0.0473372781065089}, {\"x\": 0.17948717948717968, \"y\": 0.3333333333333335, \"z\": -0.07889546351084817}, {\"x\": 0.17948717948717968, \"y\": 0.38461538461538475, \"z\": -0.11571334648257728}, {\"x\": 0.17948717948717968, \"y\": 0.435897435897436, \"z\": -0.15779092702169628}, {\"x\": 0.17948717948717968, \"y\": 0.4871794871794873, \"z\": -0.20512820512820518}, {\"x\": 0.17948717948717968, \"y\": 0.5384615384615385, \"z\": -0.2577251808021039}, {\"x\": 0.17948717948717968, \"y\": 0.5897435897435899, \"z\": -0.31558185404339256}, {\"x\": 0.17948717948717968, \"y\": 0.6410256410256412, \"z\": -0.3786982248520711}, {\"x\": 0.17948717948717968, \"y\": 0.6923076923076925, \"z\": -0.4470742932281396}, {\"x\": 0.17948717948717968, \"y\": 0.7435897435897438, \"z\": -0.520710059171598}, {\"x\": 0.17948717948717968, \"y\": 0.7948717948717952, \"z\": -0.5996055226824462}, {\"x\": 0.17948717948717968, \"y\": 0.8461538461538465, \"z\": -0.6837606837606842}, {\"x\": 0.17948717948717968, \"y\": 0.8974358974358978, \"z\": -0.7731755424063123}, {\"x\": 0.17948717948717968, \"y\": 0.9487179487179491, \"z\": -0.86785009861933}, {\"x\": 0.17948717948717968, \"y\": 1.0, \"z\": -0.9677843523997369}, {\"x\": 0.23076923076923095, \"y\": -0.9487179487179487, \"z\": -0.8468113083497698}, {\"x\": 0.23076923076923095, \"y\": -1.0, \"z\": -0.9467455621301775}, {\"x\": 0.23076923076923095, \"y\": -0.8974358974358974, \"z\": -0.7521367521367519}, {\"x\": 0.23076923076923095, \"y\": -0.846153846153846, \"z\": -0.662721893491124}, {\"x\": 0.23076923076923095, \"y\": -0.7948717948717947, \"z\": -0.5785667324128859}, {\"x\": 0.23076923076923095, \"y\": -0.7435897435897434, \"z\": -0.4996712689020378}, {\"x\": 0.23076923076923095, \"y\": -0.6923076923076921, \"z\": -0.42603550295857945}, {\"x\": 0.23076923076923095, \"y\": -0.6410256410256407, \"z\": -0.35765943458251104}, {\"x\": 0.23076923076923095, \"y\": -0.5897435897435894, \"z\": -0.29454306377383255}, {\"x\": 0.23076923076923095, \"y\": -0.5384615384615381, \"z\": -0.2366863905325439}, {\"x\": 0.23076923076923095, \"y\": -0.48717948717948684, \"z\": -0.18408941485864522}, {\"x\": 0.23076923076923095, \"y\": -0.43589743589743557, \"z\": -0.13675213675213638}, {\"x\": 0.23076923076923095, \"y\": -0.3846153846153843, \"z\": -0.09467455621301743}, {\"x\": 0.23076923076923095, \"y\": -0.33333333333333304, \"z\": -0.05785667324128834}, {\"x\": 0.23076923076923095, \"y\": -0.28205128205128177, \"z\": -0.026298487836949137}, {\"x\": 0.23076923076923095, \"y\": -0.2307692307692305, \"z\": 2.0816681711721685e-16}, {\"x\": 0.23076923076923095, \"y\": -0.17948717948717924, \"z\": 0.021038790269559675}, {\"x\": 0.23076923076923095, \"y\": -0.12820512820512797, \"z\": 0.03681788297172927}, {\"x\": 0.23076923076923095, \"y\": -0.07692307692307669, \"z\": 0.04733727810650899}, {\"x\": 0.23076923076923095, \"y\": -0.02564102564102541, \"z\": 0.05259697567389885}, {\"x\": 0.23076923076923095, \"y\": 0.02564102564102587, \"z\": 0.05259697567389882}, {\"x\": 0.23076923076923095, \"y\": 0.07692307692307715, \"z\": 0.04733727810650892}, {\"x\": 0.23076923076923095, \"y\": 0.12820512820512842, \"z\": 0.03681788297172915}, {\"x\": 0.23076923076923095, \"y\": 0.17948717948717968, \"z\": 0.021038790269559515}, {\"x\": 0.23076923076923095, \"y\": 0.23076923076923095, \"z\": 0.0}, {\"x\": 0.23076923076923095, \"y\": 0.2820512820512822, \"z\": -0.026298487836949387}, {\"x\": 0.23076923076923095, \"y\": 0.3333333333333335, \"z\": -0.057856673241288646}, {\"x\": 0.23076923076923095, \"y\": 0.38461538461538475, \"z\": -0.09467455621301776}, {\"x\": 0.23076923076923095, \"y\": 0.435897435897436, \"z\": -0.13675213675213677}, {\"x\": 0.23076923076923095, \"y\": 0.4871794871794873, \"z\": -0.18408941485864566}, {\"x\": 0.23076923076923095, \"y\": 0.5384615384615385, \"z\": -0.2366863905325444}, {\"x\": 0.23076923076923095, \"y\": 0.5897435897435899, \"z\": -0.29454306377383305}, {\"x\": 0.23076923076923095, \"y\": 0.6410256410256412, \"z\": -0.3576594345825116}, {\"x\": 0.23076923076923095, \"y\": 0.6923076923076925, \"z\": -0.42603550295858006}, {\"x\": 0.23076923076923095, \"y\": 0.7435897435897438, \"z\": -0.49967126890203845}, {\"x\": 0.23076923076923095, \"y\": 0.7948717948717952, \"z\": -0.5785667324128867}, {\"x\": 0.23076923076923095, \"y\": 0.8461538461538465, \"z\": -0.6627218934911248}, {\"x\": 0.23076923076923095, \"y\": 0.8974358974358978, \"z\": -0.7521367521367528}, {\"x\": 0.23076923076923095, \"y\": 0.9487179487179491, \"z\": -0.8468113083497706}, {\"x\": 0.23076923076923095, \"y\": 1.0, \"z\": -0.9467455621301775}, {\"x\": 0.2820512820512822, \"y\": -0.9487179487179487, \"z\": -0.8205128205128204}, {\"x\": 0.2820512820512822, \"y\": -1.0, \"z\": -0.920447074293228}, {\"x\": 0.2820512820512822, \"y\": -0.8974358974358974, \"z\": -0.7258382642998025}, {\"x\": 0.2820512820512822, \"y\": -0.846153846153846, \"z\": -0.6364234056541745}, {\"x\": 0.2820512820512822, \"y\": -0.7948717948717947, \"z\": -0.5522682445759365}, {\"x\": 0.2820512820512822, \"y\": -0.7435897435897434, \"z\": -0.4733727810650884}, {\"x\": 0.2820512820512822, \"y\": -0.6923076923076921, \"z\": -0.39973701512163007}, {\"x\": 0.2820512820512822, \"y\": -0.6410256410256407, \"z\": -0.33136094674556166}, {\"x\": 0.2820512820512822, \"y\": -0.5897435897435894, \"z\": -0.26824457593688317}, {\"x\": 0.2820512820512822, \"y\": -0.5384615384615381, \"z\": -0.2103879026955945}, {\"x\": 0.2820512820512822, \"y\": -0.48717948717948684, \"z\": -0.15779092702169584}, {\"x\": 0.2820512820512822, \"y\": -0.43589743589743557, \"z\": -0.11045364891518698}, {\"x\": 0.2820512820512822, \"y\": -0.3846153846153843, \"z\": -0.06837606837606804}, {\"x\": 0.2820512820512822, \"y\": -0.33333333333333304, \"z\": -0.031558185404338954}, {\"x\": 0.2820512820512822, \"y\": -0.28205128205128177, \"z\": 2.498001805406602e-16}, {\"x\": 0.2820512820512822, \"y\": -0.2307692307692305, \"z\": 0.026298487836949595}, {\"x\": 0.2820512820512822, \"y\": -0.17948717948717924, \"z\": 0.04733727810650906}, {\"x\": 0.2820512820512822, \"y\": -0.12820512820512797, \"z\": 0.06311637080867866}, {\"x\": 0.2820512820512822, \"y\": -0.07692307692307669, \"z\": 0.07363576594345839}, {\"x\": 0.2820512820512822, \"y\": -0.02564102564102541, \"z\": 0.07889546351084824}, {\"x\": 0.2820512820512822, \"y\": 0.02564102564102587, \"z\": 0.07889546351084821}, {\"x\": 0.2820512820512822, \"y\": 0.07692307692307715, \"z\": 0.07363576594345832}, {\"x\": 0.2820512820512822, \"y\": 0.12820512820512842, \"z\": 0.06311637080867855}, {\"x\": 0.2820512820512822, \"y\": 0.17948717948717968, \"z\": 0.0473372781065089}, {\"x\": 0.2820512820512822, \"y\": 0.23076923076923095, \"z\": 0.026298487836949387}, {\"x\": 0.2820512820512822, \"y\": 0.2820512820512822, \"z\": 0.0}, {\"x\": 0.2820512820512822, \"y\": 0.3333333333333335, \"z\": -0.03155818540433926}, {\"x\": 0.2820512820512822, \"y\": 0.38461538461538475, \"z\": -0.06837606837606837}, {\"x\": 0.2820512820512822, \"y\": 0.435897435897436, \"z\": -0.11045364891518737}, {\"x\": 0.2820512820512822, \"y\": 0.4871794871794873, \"z\": -0.15779092702169628}, {\"x\": 0.2820512820512822, \"y\": 0.5384615384615385, \"z\": -0.21038790269559499}, {\"x\": 0.2820512820512822, \"y\": 0.5897435897435899, \"z\": -0.26824457593688367}, {\"x\": 0.2820512820512822, \"y\": 0.6410256410256412, \"z\": -0.3313609467455622}, {\"x\": 0.2820512820512822, \"y\": 0.6923076923076925, \"z\": -0.3997370151216307}, {\"x\": 0.2820512820512822, \"y\": 0.7435897435897438, \"z\": -0.47337278106508907}, {\"x\": 0.2820512820512822, \"y\": 0.7948717948717952, \"z\": -0.5522682445759373}, {\"x\": 0.2820512820512822, \"y\": 0.8461538461538465, \"z\": -0.6364234056541753}, {\"x\": 0.2820512820512822, \"y\": 0.8974358974358978, \"z\": -0.7258382642998034}, {\"x\": 0.2820512820512822, \"y\": 0.9487179487179491, \"z\": -0.8205128205128212}, {\"x\": 0.2820512820512822, \"y\": 1.0, \"z\": -0.920447074293228}, {\"x\": 0.3333333333333335, \"y\": -0.9487179487179487, \"z\": -0.7889546351084811}, {\"x\": 0.3333333333333335, \"y\": -1.0, \"z\": -0.8888888888888888}, {\"x\": 0.3333333333333335, \"y\": -0.8974358974358974, \"z\": -0.6942800788954633}, {\"x\": 0.3333333333333335, \"y\": -0.846153846153846, \"z\": -0.6048652202498352}, {\"x\": 0.3333333333333335, \"y\": -0.7948717948717947, \"z\": -0.5207100591715972}, {\"x\": 0.3333333333333335, \"y\": -0.7435897435897434, \"z\": -0.44181459566074915}, {\"x\": 0.3333333333333335, \"y\": -0.6923076923076921, \"z\": -0.3681788297172908}, {\"x\": 0.3333333333333335, \"y\": -0.6410256410256407, \"z\": -0.2998027613412224}, {\"x\": 0.3333333333333335, \"y\": -0.5897435897435894, \"z\": -0.23668639053254392}, {\"x\": 0.3333333333333335, \"y\": -0.5384615384615381, \"z\": -0.17882971729125524}, {\"x\": 0.3333333333333335, \"y\": -0.48717948717948684, \"z\": -0.12623274161735656}, {\"x\": 0.3333333333333335, \"y\": -0.43589743589743557, \"z\": -0.07889546351084772}, {\"x\": 0.3333333333333335, \"y\": -0.3846153846153843, \"z\": -0.03681788297172878}, {\"x\": 0.3333333333333335, \"y\": -0.33333333333333304, \"z\": 3.0531133177191805e-16}, {\"x\": 0.3333333333333335, \"y\": -0.28205128205128177, \"z\": 0.03155818540433951}, {\"x\": 0.3333333333333335, \"y\": -0.2307692307692305, \"z\": 0.057856673241288854}, {\"x\": 0.3333333333333335, \"y\": -0.17948717948717924, \"z\": 0.07889546351084832}, {\"x\": 0.3333333333333335, \"y\": -0.12820512820512797, \"z\": 0.09467455621301792}, {\"x\": 0.3333333333333335, \"y\": -0.07692307692307669, \"z\": 0.10519395134779765}, {\"x\": 0.3333333333333335, \"y\": -0.02564102564102541, \"z\": 0.1104536489151875}, {\"x\": 0.3333333333333335, \"y\": 0.02564102564102587, \"z\": 0.11045364891518747}, {\"x\": 0.3333333333333335, \"y\": 0.07692307692307715, \"z\": 0.10519395134779758}, {\"x\": 0.3333333333333335, \"y\": 0.12820512820512842, \"z\": 0.0946745562130178}, {\"x\": 0.3333333333333335, \"y\": 0.17948717948717968, \"z\": 0.07889546351084817}, {\"x\": 0.3333333333333335, \"y\": 0.23076923076923095, \"z\": 0.057856673241288646}, {\"x\": 0.3333333333333335, \"y\": 0.2820512820512822, \"z\": 0.03155818540433926}, {\"x\": 0.3333333333333335, \"y\": 0.3333333333333335, \"z\": 0.0}, {\"x\": 0.3333333333333335, \"y\": 0.38461538461538475, \"z\": -0.03681788297172911}, {\"x\": 0.3333333333333335, \"y\": 0.435897435897436, \"z\": -0.07889546351084811}, {\"x\": 0.3333333333333335, \"y\": 0.4871794871794873, \"z\": -0.126232741617357}, {\"x\": 0.3333333333333335, \"y\": 0.5384615384615385, \"z\": -0.17882971729125574}, {\"x\": 0.3333333333333335, \"y\": 0.5897435897435899, \"z\": -0.23668639053254442}, {\"x\": 0.3333333333333335, \"y\": 0.6410256410256412, \"z\": -0.29980276134122297}, {\"x\": 0.3333333333333335, \"y\": 0.6923076923076925, \"z\": -0.36817882971729143}, {\"x\": 0.3333333333333335, \"y\": 0.7435897435897438, \"z\": -0.4418145956607498}, {\"x\": 0.3333333333333335, \"y\": 0.7948717948717952, \"z\": -0.5207100591715981}, {\"x\": 0.3333333333333335, \"y\": 0.8461538461538465, \"z\": -0.6048652202498361}, {\"x\": 0.3333333333333335, \"y\": 0.8974358974358978, \"z\": -0.6942800788954642}, {\"x\": 0.3333333333333335, \"y\": 0.9487179487179491, \"z\": -0.788954635108482}, {\"x\": 0.3333333333333335, \"y\": 1.0, \"z\": -0.8888888888888888}, {\"x\": 0.38461538461538475, \"y\": -0.9487179487179487, \"z\": -0.752136752136752}, {\"x\": 0.38461538461538475, \"y\": -1.0, \"z\": -0.8520710059171597}, {\"x\": 0.38461538461538475, \"y\": -0.8974358974358974, \"z\": -0.6574621959237341}, {\"x\": 0.38461538461538475, \"y\": -0.846153846153846, \"z\": -0.5680473372781062}, {\"x\": 0.38461538461538475, \"y\": -0.7948717948717947, \"z\": -0.48389217619986813}, {\"x\": 0.38461538461538475, \"y\": -0.7435897435897434, \"z\": -0.40499671268902004}, {\"x\": 0.38461538461538475, \"y\": -0.6923076923076921, \"z\": -0.3313609467455617}, {\"x\": 0.38461538461538475, \"y\": -0.6410256410256407, \"z\": -0.2629848783694933}, {\"x\": 0.38461538461538475, \"y\": -0.5897435897435894, \"z\": -0.1998685075608148}, {\"x\": 0.38461538461538475, \"y\": -0.5384615384615381, \"z\": -0.14201183431952613}, {\"x\": 0.38461538461538475, \"y\": -0.48717948717948684, \"z\": -0.08941485864562745}, {\"x\": 0.38461538461538475, \"y\": -0.43589743589743557, \"z\": -0.042077580539118614}, {\"x\": 0.38461538461538475, \"y\": -0.3846153846153843, \"z\": 3.3306690738754696e-16}, {\"x\": 0.38461538461538475, \"y\": -0.33333333333333304, \"z\": 0.036817882971729415}, {\"x\": 0.38461538461538475, \"y\": -0.28205128205128177, \"z\": 0.06837606837606862}, {\"x\": 0.38461538461538475, \"y\": -0.2307692307692305, \"z\": 0.09467455621301796}, {\"x\": 0.38461538461538475, \"y\": -0.17948717948717924, \"z\": 0.11571334648257743}, {\"x\": 0.38461538461538475, \"y\": -0.12820512820512797, \"z\": 0.131492439184747}, {\"x\": 0.38461538461538475, \"y\": -0.07692307692307669, \"z\": 0.14201183431952674}, {\"x\": 0.38461538461538475, \"y\": -0.02564102564102541, \"z\": 0.1472715318869166}, {\"x\": 0.38461538461538475, \"y\": 0.02564102564102587, \"z\": 0.14727153188691658}, {\"x\": 0.38461538461538475, \"y\": 0.07692307692307715, \"z\": 0.1420118343195267}, {\"x\": 0.38461538461538475, \"y\": 0.12820512820512842, \"z\": 0.1314924391847469}, {\"x\": 0.38461538461538475, \"y\": 0.17948717948717968, \"z\": 0.11571334648257728}, {\"x\": 0.38461538461538475, \"y\": 0.23076923076923095, \"z\": 0.09467455621301776}, {\"x\": 0.38461538461538475, \"y\": 0.2820512820512822, \"z\": 0.06837606837606837}, {\"x\": 0.38461538461538475, \"y\": 0.3333333333333335, \"z\": 0.03681788297172911}, {\"x\": 0.38461538461538475, \"y\": 0.38461538461538475, \"z\": 0.0}, {\"x\": 0.38461538461538475, \"y\": 0.435897435897436, \"z\": -0.042077580539119}, {\"x\": 0.38461538461538475, \"y\": 0.4871794871794873, \"z\": -0.0894148586456279}, {\"x\": 0.38461538461538475, \"y\": 0.5384615384615385, \"z\": -0.14201183431952663}, {\"x\": 0.38461538461538475, \"y\": 0.5897435897435899, \"z\": -0.1998685075608153}, {\"x\": 0.38461538461538475, \"y\": 0.6410256410256412, \"z\": -0.26298487836949386}, {\"x\": 0.38461538461538475, \"y\": 0.6923076923076925, \"z\": -0.3313609467455623}, {\"x\": 0.38461538461538475, \"y\": 0.7435897435897438, \"z\": -0.4049967126890207}, {\"x\": 0.38461538461538475, \"y\": 0.7948717948717952, \"z\": -0.4838921761998689}, {\"x\": 0.38461538461538475, \"y\": 0.8461538461538465, \"z\": -0.568047337278107}, {\"x\": 0.38461538461538475, \"y\": 0.8974358974358978, \"z\": -0.657462195923735}, {\"x\": 0.38461538461538475, \"y\": 0.9487179487179491, \"z\": -0.7521367521367528}, {\"x\": 0.38461538461538475, \"y\": 1.0, \"z\": -0.8520710059171597}, {\"x\": 0.435897435897436, \"y\": -0.9487179487179487, \"z\": -0.710059171597633}, {\"x\": 0.435897435897436, \"y\": -1.0, \"z\": -0.8099934253780406}, {\"x\": 0.435897435897436, \"y\": -0.8974358974358974, \"z\": -0.6153846153846151}, {\"x\": 0.435897435897436, \"y\": -0.846153846153846, \"z\": -0.5259697567389872}, {\"x\": 0.435897435897436, \"y\": -0.7948717948717947, \"z\": -0.4418145956607491}, {\"x\": 0.435897435897436, \"y\": -0.7435897435897434, \"z\": -0.362919132149901}, {\"x\": 0.435897435897436, \"y\": -0.6923076923076921, \"z\": -0.2892833662064427}, {\"x\": 0.435897435897436, \"y\": -0.6410256410256407, \"z\": -0.2209072978303743}, {\"x\": 0.435897435897436, \"y\": -0.5897435897435894, \"z\": -0.1577909270216958}, {\"x\": 0.435897435897436, \"y\": -0.5384615384615381, \"z\": -0.09993425378040713}, {\"x\": 0.435897435897436, \"y\": -0.48717948717948684, \"z\": -0.04733727810650845}, {\"x\": 0.435897435897436, \"y\": -0.43589743589743557, \"z\": 3.885780586188048e-16}, {\"x\": 0.435897435897436, \"y\": -0.3846153846153843, \"z\": 0.042077580539119336}, {\"x\": 0.435897435897436, \"y\": -0.33333333333333304, \"z\": 0.07889546351084842}, {\"x\": 0.435897435897436, \"y\": -0.28205128205128177, \"z\": 0.11045364891518762}, {\"x\": 0.435897435897436, \"y\": -0.2307692307692305, \"z\": 0.13675213675213696}, {\"x\": 0.435897435897436, \"y\": -0.17948717948717924, \"z\": 0.15779092702169645}, {\"x\": 0.435897435897436, \"y\": -0.12820512820512797, \"z\": 0.17357001972386604}, {\"x\": 0.435897435897436, \"y\": -0.07692307692307669, \"z\": 0.18408941485864574}, {\"x\": 0.435897435897436, \"y\": -0.02564102564102541, \"z\": 0.1893491124260356}, {\"x\": 0.435897435897436, \"y\": 0.02564102564102587, \"z\": 0.18934911242603558}, {\"x\": 0.435897435897436, \"y\": 0.07692307692307715, \"z\": 0.1840894148586457}, {\"x\": 0.435897435897436, \"y\": 0.12820512820512842, \"z\": 0.1735700197238659}, {\"x\": 0.435897435897436, \"y\": 0.17948717948717968, \"z\": 0.15779092702169628}, {\"x\": 0.435897435897436, \"y\": 0.23076923076923095, \"z\": 0.13675213675213677}, {\"x\": 0.435897435897436, \"y\": 0.2820512820512822, \"z\": 0.11045364891518737}, {\"x\": 0.435897435897436, \"y\": 0.3333333333333335, \"z\": 0.07889546351084811}, {\"x\": 0.435897435897436, \"y\": 0.38461538461538475, \"z\": 0.042077580539119}, {\"x\": 0.435897435897436, \"y\": 0.435897435897436, \"z\": 0.0}, {\"x\": 0.435897435897436, \"y\": 0.4871794871794873, \"z\": -0.047337278106508895}, {\"x\": 0.435897435897436, \"y\": 0.5384615384615385, \"z\": -0.09993425378040763}, {\"x\": 0.435897435897436, \"y\": 0.5897435897435899, \"z\": -0.1577909270216963}, {\"x\": 0.435897435897436, \"y\": 0.6410256410256412, \"z\": -0.22090729783037485}, {\"x\": 0.435897435897436, \"y\": 0.6923076923076925, \"z\": -0.28928336620644335}, {\"x\": 0.435897435897436, \"y\": 0.7435897435897438, \"z\": -0.3629191321499017}, {\"x\": 0.435897435897436, \"y\": 0.7948717948717952, \"z\": -0.4418145956607499}, {\"x\": 0.435897435897436, \"y\": 0.8461538461538465, \"z\": -0.5259697567389879}, {\"x\": 0.435897435897436, \"y\": 0.8974358974358978, \"z\": -0.615384615384616}, {\"x\": 0.435897435897436, \"y\": 0.9487179487179491, \"z\": -0.7100591715976338}, {\"x\": 0.435897435897436, \"y\": 1.0, \"z\": -0.8099934253780406}, {\"x\": 0.4871794871794873, \"y\": -0.9487179487179487, \"z\": -0.6627218934911241}, {\"x\": 0.4871794871794873, \"y\": -1.0, \"z\": -0.7626561472715317}, {\"x\": 0.4871794871794873, \"y\": -0.8974358974358974, \"z\": -0.5680473372781062}, {\"x\": 0.4871794871794873, \"y\": -0.846153846153846, \"z\": -0.47863247863247826}, {\"x\": 0.4871794871794873, \"y\": -0.7948717948717947, \"z\": -0.3944773175542402}, {\"x\": 0.4871794871794873, \"y\": -0.7435897435897434, \"z\": -0.3155818540433921}, {\"x\": 0.4871794871794873, \"y\": -0.6923076923076921, \"z\": -0.24194608809993381}, {\"x\": 0.4871794871794873, \"y\": -0.6410256410256407, \"z\": -0.1735700197238654}, {\"x\": 0.4871794871794873, \"y\": -0.5897435897435894, \"z\": -0.11045364891518691}, {\"x\": 0.4871794871794873, \"y\": -0.5384615384615381, \"z\": -0.05259697567389823}, {\"x\": 0.4871794871794873, \"y\": -0.48717948717948684, \"z\": 4.440892098500626e-16}, {\"x\": 0.4871794871794873, \"y\": -0.43589743589743557, \"z\": 0.047337278106509284}, {\"x\": 0.4871794871794873, \"y\": -0.3846153846153843, \"z\": 0.08941485864562823}, {\"x\": 0.4871794871794873, \"y\": -0.33333333333333304, \"z\": 0.1262327416173573}, {\"x\": 0.4871794871794873, \"y\": -0.28205128205128177, \"z\": 0.1577909270216965}, {\"x\": 0.4871794871794873, \"y\": -0.2307692307692305, \"z\": 0.18408941485864586}, {\"x\": 0.4871794871794873, \"y\": -0.17948717948717924, \"z\": 0.20512820512820534}, {\"x\": 0.4871794871794873, \"y\": -0.12820512820512797, \"z\": 0.22090729783037494}, {\"x\": 0.4871794871794873, \"y\": -0.07692307692307669, \"z\": 0.23142669296515464}, {\"x\": 0.4871794871794873, \"y\": -0.02564102564102541, \"z\": 0.2366863905325445}, {\"x\": 0.4871794871794873, \"y\": 0.02564102564102587, \"z\": 0.23668639053254448}, {\"x\": 0.4871794871794873, \"y\": 0.07692307692307715, \"z\": 0.23142669296515458}, {\"x\": 0.4871794871794873, \"y\": 0.12820512820512842, \"z\": 0.2209072978303748}, {\"x\": 0.4871794871794873, \"y\": 0.17948717948717968, \"z\": 0.20512820512820518}, {\"x\": 0.4871794871794873, \"y\": 0.23076923076923095, \"z\": 0.18408941485864566}, {\"x\": 0.4871794871794873, \"y\": 0.2820512820512822, \"z\": 0.15779092702169628}, {\"x\": 0.4871794871794873, \"y\": 0.3333333333333335, \"z\": 0.126232741617357}, {\"x\": 0.4871794871794873, \"y\": 0.38461538461538475, \"z\": 0.0894148586456279}, {\"x\": 0.4871794871794873, \"y\": 0.435897435897436, \"z\": 0.047337278106508895}, {\"x\": 0.4871794871794873, \"y\": 0.4871794871794873, \"z\": 0.0}, {\"x\": 0.4871794871794873, \"y\": 0.5384615384615385, \"z\": -0.05259697567389873}, {\"x\": 0.4871794871794873, \"y\": 0.5897435897435899, \"z\": -0.11045364891518741}, {\"x\": 0.4871794871794873, \"y\": 0.6410256410256412, \"z\": -0.17357001972386596}, {\"x\": 0.4871794871794873, \"y\": 0.6923076923076925, \"z\": -0.24194608809993443}, {\"x\": 0.4871794871794873, \"y\": 0.7435897435897438, \"z\": -0.3155818540433928}, {\"x\": 0.4871794871794873, \"y\": 0.7948717948717952, \"z\": -0.394477317554241}, {\"x\": 0.4871794871794873, \"y\": 0.8461538461538465, \"z\": -0.47863247863247904}, {\"x\": 0.4871794871794873, \"y\": 0.8974358974358978, \"z\": -0.5680473372781071}, {\"x\": 0.4871794871794873, \"y\": 0.9487179487179491, \"z\": -0.6627218934911249}, {\"x\": 0.4871794871794873, \"y\": 1.0, \"z\": -0.7626561472715317}, {\"x\": 0.5384615384615385, \"y\": -0.9487179487179487, \"z\": -0.6101249178172254}, {\"x\": 0.5384615384615385, \"y\": -1.0, \"z\": -0.710059171597633}, {\"x\": 0.5384615384615385, \"y\": -0.8974358974358974, \"z\": -0.5154503616042074}, {\"x\": 0.5384615384615385, \"y\": -0.846153846153846, \"z\": -0.42603550295857956}, {\"x\": 0.5384615384615385, \"y\": -0.7948717948717947, \"z\": -0.3418803418803415}, {\"x\": 0.5384615384615385, \"y\": -0.7435897435897434, \"z\": -0.2629848783694934}, {\"x\": 0.5384615384615385, \"y\": -0.6923076923076921, \"z\": -0.18934911242603508}, {\"x\": 0.5384615384615385, \"y\": -0.6410256410256407, \"z\": -0.12097304404996667}, {\"x\": 0.5384615384615385, \"y\": -0.5897435897435894, \"z\": -0.05785667324128818}, {\"x\": 0.5384615384615385, \"y\": -0.5384615384615381, \"z\": 4.996003610813204e-16}, {\"x\": 0.5384615384615385, \"y\": -0.48717948717948684, \"z\": 0.05259697567389918}, {\"x\": 0.5384615384615385, \"y\": -0.43589743589743557, \"z\": 0.09993425378040802}, {\"x\": 0.5384615384615385, \"y\": -0.3846153846153843, \"z\": 0.14201183431952696}, {\"x\": 0.5384615384615385, \"y\": -0.33333333333333304, \"z\": 0.17882971729125605}, {\"x\": 0.5384615384615385, \"y\": -0.28205128205128177, \"z\": 0.21038790269559526}, {\"x\": 0.5384615384615385, \"y\": -0.2307692307692305, \"z\": 0.2366863905325446}, {\"x\": 0.5384615384615385, \"y\": -0.17948717948717924, \"z\": 0.25772518080210405}, {\"x\": 0.5384615384615385, \"y\": -0.12820512820512797, \"z\": 0.27350427350427364}, {\"x\": 0.5384615384615385, \"y\": -0.07692307692307669, \"z\": 0.2840236686390534}, {\"x\": 0.5384615384615385, \"y\": -0.02564102564102541, \"z\": 0.28928336620644324}, {\"x\": 0.5384615384615385, \"y\": 0.02564102564102587, \"z\": 0.28928336620644324}, {\"x\": 0.5384615384615385, \"y\": 0.07692307692307715, \"z\": 0.2840236686390533}, {\"x\": 0.5384615384615385, \"y\": 0.12820512820512842, \"z\": 0.27350427350427353}, {\"x\": 0.5384615384615385, \"y\": 0.17948717948717968, \"z\": 0.2577251808021039}, {\"x\": 0.5384615384615385, \"y\": 0.23076923076923095, \"z\": 0.2366863905325444}, {\"x\": 0.5384615384615385, \"y\": 0.2820512820512822, \"z\": 0.21038790269559499}, {\"x\": 0.5384615384615385, \"y\": 0.3333333333333335, \"z\": 0.17882971729125574}, {\"x\": 0.5384615384615385, \"y\": 0.38461538461538475, \"z\": 0.14201183431952663}, {\"x\": 0.5384615384615385, \"y\": 0.435897435897436, \"z\": 0.09993425378040763}, {\"x\": 0.5384615384615385, \"y\": 0.4871794871794873, \"z\": 0.05259697567389873}, {\"x\": 0.5384615384615385, \"y\": 0.5384615384615385, \"z\": 0.0}, {\"x\": 0.5384615384615385, \"y\": 0.5897435897435899, \"z\": -0.05785667324128868}, {\"x\": 0.5384615384615385, \"y\": 0.6410256410256412, \"z\": -0.12097304404996723}, {\"x\": 0.5384615384615385, \"y\": 0.6923076923076925, \"z\": -0.1893491124260357}, {\"x\": 0.5384615384615385, \"y\": 0.7435897435897438, \"z\": -0.2629848783694941}, {\"x\": 0.5384615384615385, \"y\": 0.7948717948717952, \"z\": -0.3418803418803423}, {\"x\": 0.5384615384615385, \"y\": 0.8461538461538465, \"z\": -0.42603550295858034}, {\"x\": 0.5384615384615385, \"y\": 0.8974358974358978, \"z\": -0.5154503616042083}, {\"x\": 0.5384615384615385, \"y\": 0.9487179487179491, \"z\": -0.6101249178172261}, {\"x\": 0.5384615384615385, \"y\": 1.0, \"z\": -0.710059171597633}, {\"x\": 0.5897435897435899, \"y\": -0.9487179487179487, \"z\": -0.5522682445759367}, {\"x\": 0.5897435897435899, \"y\": -1.0, \"z\": -0.6522024983563444}, {\"x\": 0.5897435897435899, \"y\": -0.8974358974358974, \"z\": -0.4575936883629188}, {\"x\": 0.5897435897435899, \"y\": -0.846153846153846, \"z\": -0.3681788297172909}, {\"x\": 0.5897435897435899, \"y\": -0.7948717948717947, \"z\": -0.2840236686390528}, {\"x\": 0.5897435897435899, \"y\": -0.7435897435897434, \"z\": -0.20512820512820473}, {\"x\": 0.5897435897435899, \"y\": -0.6923076923076921, \"z\": -0.1314924391847464}, {\"x\": 0.5897435897435899, \"y\": -0.6410256410256407, \"z\": -0.06311637080867799}, {\"x\": 0.5897435897435899, \"y\": -0.5897435897435894, \"z\": 4.996003610813204e-16}, {\"x\": 0.5897435897435899, \"y\": -0.5384615384615381, \"z\": 0.05785667324128918}, {\"x\": 0.5897435897435899, \"y\": -0.48717948717948684, \"z\": 0.11045364891518786}, {\"x\": 0.5897435897435899, \"y\": -0.43589743589743557, \"z\": 0.1577909270216967}, {\"x\": 0.5897435897435899, \"y\": -0.3846153846153843, \"z\": 0.19986850756081564}, {\"x\": 0.5897435897435899, \"y\": -0.33333333333333304, \"z\": 0.23668639053254473}, {\"x\": 0.5897435897435899, \"y\": -0.28205128205128177, \"z\": 0.26824457593688394}, {\"x\": 0.5897435897435899, \"y\": -0.2307692307692305, \"z\": 0.29454306377383327}, {\"x\": 0.5897435897435899, \"y\": -0.17948717948717924, \"z\": 0.31558185404339273}, {\"x\": 0.5897435897435899, \"y\": -0.12820512820512797, \"z\": 0.3313609467455623}, {\"x\": 0.5897435897435899, \"y\": -0.07692307692307669, \"z\": 0.34188034188034205}, {\"x\": 0.5897435897435899, \"y\": -0.02564102564102541, \"z\": 0.3471400394477319}, {\"x\": 0.5897435897435899, \"y\": 0.02564102564102587, \"z\": 0.3471400394477319}, {\"x\": 0.5897435897435899, \"y\": 0.07692307692307715, \"z\": 0.341880341880342}, {\"x\": 0.5897435897435899, \"y\": 0.12820512820512842, \"z\": 0.3313609467455622}, {\"x\": 0.5897435897435899, \"y\": 0.17948717948717968, \"z\": 0.31558185404339256}, {\"x\": 0.5897435897435899, \"y\": 0.23076923076923095, \"z\": 0.29454306377383305}, {\"x\": 0.5897435897435899, \"y\": 0.2820512820512822, \"z\": 0.26824457593688367}, {\"x\": 0.5897435897435899, \"y\": 0.3333333333333335, \"z\": 0.23668639053254442}, {\"x\": 0.5897435897435899, \"y\": 0.38461538461538475, \"z\": 0.1998685075608153}, {\"x\": 0.5897435897435899, \"y\": 0.435897435897436, \"z\": 0.1577909270216963}, {\"x\": 0.5897435897435899, \"y\": 0.4871794871794873, \"z\": 0.11045364891518741}, {\"x\": 0.5897435897435899, \"y\": 0.5384615384615385, \"z\": 0.05785667324128868}, {\"x\": 0.5897435897435899, \"y\": 0.5897435897435899, \"z\": 0.0}, {\"x\": 0.5897435897435899, \"y\": 0.6410256410256412, \"z\": -0.06311637080867855}, {\"x\": 0.5897435897435899, \"y\": 0.6923076923076925, \"z\": -0.131492439184747}, {\"x\": 0.5897435897435899, \"y\": 0.7435897435897438, \"z\": -0.2051282051282054}, {\"x\": 0.5897435897435899, \"y\": 0.7948717948717952, \"z\": -0.2840236686390536}, {\"x\": 0.5897435897435899, \"y\": 0.8461538461538465, \"z\": -0.36817882971729166}, {\"x\": 0.5897435897435899, \"y\": 0.8974358974358978, \"z\": -0.4575936883629197}, {\"x\": 0.5897435897435899, \"y\": 0.9487179487179491, \"z\": -0.5522682445759375}, {\"x\": 0.5897435897435899, \"y\": 1.0, \"z\": -0.6522024983563444}, {\"x\": 0.6410256410256412, \"y\": -0.9487179487179487, \"z\": -0.48915187376725816}, {\"x\": 0.6410256410256412, \"y\": -1.0, \"z\": -0.5890861275476658}, {\"x\": 0.6410256410256412, \"y\": -0.8974358974358974, \"z\": -0.39447731755424026}, {\"x\": 0.6410256410256412, \"y\": -0.846153846153846, \"z\": -0.30506245890861233}, {\"x\": 0.6410256410256412, \"y\": -0.7948717948717947, \"z\": -0.22090729783037427}, {\"x\": 0.6410256410256412, \"y\": -0.7435897435897434, \"z\": -0.1420118343195262}, {\"x\": 0.6410256410256412, \"y\": -0.6923076923076921, \"z\": -0.06837606837606786}, {\"x\": 0.6410256410256412, \"y\": -0.6410256410256407, \"z\": 5.551115123125783e-16}, {\"x\": 0.6410256410256412, \"y\": -0.5897435897435894, \"z\": 0.06311637080867905}, {\"x\": 0.6410256410256412, \"y\": -0.5384615384615381, \"z\": 0.12097304404996773}, {\"x\": 0.6410256410256412, \"y\": -0.48717948717948684, \"z\": 0.1735700197238664}, {\"x\": 0.6410256410256412, \"y\": -0.43589743589743557, \"z\": 0.22090729783037524}, {\"x\": 0.6410256410256412, \"y\": -0.3846153846153843, \"z\": 0.2629848783694942}, {\"x\": 0.6410256410256412, \"y\": -0.33333333333333304, \"z\": 0.2998027613412233}, {\"x\": 0.6410256410256412, \"y\": -0.28205128205128177, \"z\": 0.3313609467455625}, {\"x\": 0.6410256410256412, \"y\": -0.2307692307692305, \"z\": 0.3576594345825118}, {\"x\": 0.6410256410256412, \"y\": -0.17948717948717924, \"z\": 0.3786982248520713}, {\"x\": 0.6410256410256412, \"y\": -0.12820512820512797, \"z\": 0.39447731755424087}, {\"x\": 0.6410256410256412, \"y\": -0.07692307692307669, \"z\": 0.4049967126890206}, {\"x\": 0.6410256410256412, \"y\": -0.02564102564102541, \"z\": 0.41025641025641046}, {\"x\": 0.6410256410256412, \"y\": 0.02564102564102587, \"z\": 0.41025641025641046}, {\"x\": 0.6410256410256412, \"y\": 0.07692307692307715, \"z\": 0.40499671268902054}, {\"x\": 0.6410256410256412, \"y\": 0.12820512820512842, \"z\": 0.39447731755424076}, {\"x\": 0.6410256410256412, \"y\": 0.17948717948717968, \"z\": 0.3786982248520711}, {\"x\": 0.6410256410256412, \"y\": 0.23076923076923095, \"z\": 0.3576594345825116}, {\"x\": 0.6410256410256412, \"y\": 0.2820512820512822, \"z\": 0.3313609467455622}, {\"x\": 0.6410256410256412, \"y\": 0.3333333333333335, \"z\": 0.29980276134122297}, {\"x\": 0.6410256410256412, \"y\": 0.38461538461538475, \"z\": 0.26298487836949386}, {\"x\": 0.6410256410256412, \"y\": 0.435897435897436, \"z\": 0.22090729783037485}, {\"x\": 0.6410256410256412, \"y\": 0.4871794871794873, \"z\": 0.17357001972386596}, {\"x\": 0.6410256410256412, \"y\": 0.5384615384615385, \"z\": 0.12097304404996723}, {\"x\": 0.6410256410256412, \"y\": 0.5897435897435899, \"z\": 0.06311637080867855}, {\"x\": 0.6410256410256412, \"y\": 0.6410256410256412, \"z\": 0.0}, {\"x\": 0.6410256410256412, \"y\": 0.6923076923076925, \"z\": -0.06837606837606847}, {\"x\": 0.6410256410256412, \"y\": 0.7435897435897438, \"z\": -0.14201183431952685}, {\"x\": 0.6410256410256412, \"y\": 0.7948717948717952, \"z\": -0.22090729783037505}, {\"x\": 0.6410256410256412, \"y\": 0.8461538461538465, \"z\": -0.3050624589086131}, {\"x\": 0.6410256410256412, \"y\": 0.8974358974358978, \"z\": -0.39447731755424115}, {\"x\": 0.6410256410256412, \"y\": 0.9487179487179491, \"z\": -0.48915187376725894}, {\"x\": 0.6410256410256412, \"y\": 1.0, \"z\": -0.5890861275476658}, {\"x\": 0.6923076923076925, \"y\": -0.9487179487179487, \"z\": -0.4207758053911897}, {\"x\": 0.6923076923076925, \"y\": -1.0, \"z\": -0.5207100591715974}, {\"x\": 0.6923076923076925, \"y\": -0.8974358974358974, \"z\": -0.3261012491781718}, {\"x\": 0.6923076923076925, \"y\": -0.846153846153846, \"z\": -0.23668639053254387}, {\"x\": 0.6923076923076925, \"y\": -0.7948717948717947, \"z\": -0.1525312294543058}, {\"x\": 0.6923076923076925, \"y\": -0.7435897435897434, \"z\": -0.07363576594345772}, {\"x\": 0.6923076923076925, \"y\": -0.6923076923076921, \"z\": 6.106226635438361e-16}, {\"x\": 0.6923076923076925, \"y\": -0.6410256410256407, \"z\": 0.06837606837606902}, {\"x\": 0.6923076923076925, \"y\": -0.5897435897435894, \"z\": 0.1314924391847475}, {\"x\": 0.6923076923076925, \"y\": -0.5384615384615381, \"z\": 0.1893491124260362}, {\"x\": 0.6923076923076925, \"y\": -0.48717948717948684, \"z\": 0.24194608809993487}, {\"x\": 0.6923076923076925, \"y\": -0.43589743589743557, \"z\": 0.2892833662064437}, {\"x\": 0.6923076923076925, \"y\": -0.3846153846153843, \"z\": 0.33136094674556266}, {\"x\": 0.6923076923076925, \"y\": -0.33333333333333304, \"z\": 0.36817882971729177}, {\"x\": 0.6923076923076925, \"y\": -0.28205128205128177, \"z\": 0.39973701512163096}, {\"x\": 0.6923076923076925, \"y\": -0.2307692307692305, \"z\": 0.4260355029585803}, {\"x\": 0.6923076923076925, \"y\": -0.17948717948717924, \"z\": 0.44707429322813974}, {\"x\": 0.6923076923076925, \"y\": -0.12820512820512797, \"z\": 0.46285338593030934}, {\"x\": 0.6923076923076925, \"y\": -0.07692307692307669, \"z\": 0.47337278106508907}, {\"x\": 0.6923076923076925, \"y\": -0.02564102564102541, \"z\": 0.47863247863247893}, {\"x\": 0.6923076923076925, \"y\": 0.02564102564102587, \"z\": 0.47863247863247893}, {\"x\": 0.6923076923076925, \"y\": 0.07692307692307715, \"z\": 0.473372781065089}, {\"x\": 0.6923076923076925, \"y\": 0.12820512820512842, \"z\": 0.4628533859303092}, {\"x\": 0.6923076923076925, \"y\": 0.17948717948717968, \"z\": 0.4470742932281396}, {\"x\": 0.6923076923076925, \"y\": 0.23076923076923095, \"z\": 0.42603550295858006}, {\"x\": 0.6923076923076925, \"y\": 0.2820512820512822, \"z\": 0.3997370151216307}, {\"x\": 0.6923076923076925, \"y\": 0.3333333333333335, \"z\": 0.36817882971729143}, {\"x\": 0.6923076923076925, \"y\": 0.38461538461538475, \"z\": 0.3313609467455623}, {\"x\": 0.6923076923076925, \"y\": 0.435897435897436, \"z\": 0.28928336620644335}, {\"x\": 0.6923076923076925, \"y\": 0.4871794871794873, \"z\": 0.24194608809993443}, {\"x\": 0.6923076923076925, \"y\": 0.5384615384615385, \"z\": 0.1893491124260357}, {\"x\": 0.6923076923076925, \"y\": 0.5897435897435899, \"z\": 0.131492439184747}, {\"x\": 0.6923076923076925, \"y\": 0.6410256410256412, \"z\": 0.06837606837606847}, {\"x\": 0.6923076923076925, \"y\": 0.6923076923076925, \"z\": 0.0}, {\"x\": 0.6923076923076925, \"y\": 0.7435897435897438, \"z\": -0.07363576594345839}, {\"x\": 0.6923076923076925, \"y\": 0.7948717948717952, \"z\": -0.15253122945430658}, {\"x\": 0.6923076923076925, \"y\": 0.8461538461538465, \"z\": -0.23668639053254464}, {\"x\": 0.6923076923076925, \"y\": 0.8974358974358978, \"z\": -0.3261012491781727}, {\"x\": 0.6923076923076925, \"y\": 0.9487179487179491, \"z\": -0.42077580539119047}, {\"x\": 0.6923076923076925, \"y\": 1.0, \"z\": -0.5207100591715974}, {\"x\": 0.7435897435897438, \"y\": -0.9487179487179487, \"z\": -0.3471400394477313}, {\"x\": 0.7435897435897438, \"y\": -1.0, \"z\": -0.44707429322813896}, {\"x\": 0.7435897435897438, \"y\": -0.8974358974358974, \"z\": -0.2524654832347134}, {\"x\": 0.7435897435897438, \"y\": -0.846153846153846, \"z\": -0.16305062458908548}, {\"x\": 0.7435897435897438, \"y\": -0.7948717948717947, \"z\": -0.07889546351084742}, {\"x\": 0.7435897435897438, \"y\": -0.7435897435897434, \"z\": 6.661338147750939e-16}, {\"x\": 0.7435897435897438, \"y\": -0.6923076923076921, \"z\": 0.073635765943459}, {\"x\": 0.7435897435897438, \"y\": -0.6410256410256407, \"z\": 0.1420118343195274}, {\"x\": 0.7435897435897438, \"y\": -0.5897435897435894, \"z\": 0.2051282051282059}, {\"x\": 0.7435897435897438, \"y\": -0.5384615384615381, \"z\": 0.2629848783694946}, {\"x\": 0.7435897435897438, \"y\": -0.48717948717948684, \"z\": 0.31558185404339323}, {\"x\": 0.7435897435897438, \"y\": -0.43589743589743557, \"z\": 0.3629191321499021}, {\"x\": 0.7435897435897438, \"y\": -0.3846153846153843, \"z\": 0.40499671268902104}, {\"x\": 0.7435897435897438, \"y\": -0.33333333333333304, \"z\": 0.4418145956607501}, {\"x\": 0.7435897435897438, \"y\": -0.28205128205128177, \"z\": 0.47337278106508934}, {\"x\": 0.7435897435897438, \"y\": -0.2307692307692305, \"z\": 0.49967126890203867}, {\"x\": 0.7435897435897438, \"y\": -0.17948717948717924, \"z\": 0.5207100591715982}, {\"x\": 0.7435897435897438, \"y\": -0.12820512820512797, \"z\": 0.5364891518737678}, {\"x\": 0.7435897435897438, \"y\": -0.07692307692307669, \"z\": 0.5470085470085475}, {\"x\": 0.7435897435897438, \"y\": -0.02564102564102541, \"z\": 0.5522682445759373}, {\"x\": 0.7435897435897438, \"y\": 0.02564102564102587, \"z\": 0.5522682445759373}, {\"x\": 0.7435897435897438, \"y\": 0.07692307692307715, \"z\": 0.5470085470085474}, {\"x\": 0.7435897435897438, \"y\": 0.12820512820512842, \"z\": 0.5364891518737677}, {\"x\": 0.7435897435897438, \"y\": 0.17948717948717968, \"z\": 0.520710059171598}, {\"x\": 0.7435897435897438, \"y\": 0.23076923076923095, \"z\": 0.49967126890203845}, {\"x\": 0.7435897435897438, \"y\": 0.2820512820512822, \"z\": 0.47337278106508907}, {\"x\": 0.7435897435897438, \"y\": 0.3333333333333335, \"z\": 0.4418145956607498}, {\"x\": 0.7435897435897438, \"y\": 0.38461538461538475, \"z\": 0.4049967126890207}, {\"x\": 0.7435897435897438, \"y\": 0.435897435897436, \"z\": 0.3629191321499017}, {\"x\": 0.7435897435897438, \"y\": 0.4871794871794873, \"z\": 0.3155818540433928}, {\"x\": 0.7435897435897438, \"y\": 0.5384615384615385, \"z\": 0.2629848783694941}, {\"x\": 0.7435897435897438, \"y\": 0.5897435897435899, \"z\": 0.2051282051282054}, {\"x\": 0.7435897435897438, \"y\": 0.6410256410256412, \"z\": 0.14201183431952685}, {\"x\": 0.7435897435897438, \"y\": 0.6923076923076925, \"z\": 0.07363576594345839}, {\"x\": 0.7435897435897438, \"y\": 0.7435897435897438, \"z\": 0.0}, {\"x\": 0.7435897435897438, \"y\": 0.7948717948717952, \"z\": -0.0788954635108482}, {\"x\": 0.7435897435897438, \"y\": 0.8461538461538465, \"z\": -0.16305062458908626}, {\"x\": 0.7435897435897438, \"y\": 0.8974358974358978, \"z\": -0.2524654832347143}, {\"x\": 0.7435897435897438, \"y\": 0.9487179487179491, \"z\": -0.3471400394477321}, {\"x\": 0.7435897435897438, \"y\": 1.0, \"z\": -0.44707429322813896}, {\"x\": 0.7948717948717952, \"y\": -0.9487179487179487, \"z\": -0.2682445759368831}, {\"x\": 0.7948717948717952, \"y\": -1.0, \"z\": -0.36817882971729077}, {\"x\": 0.7948717948717952, \"y\": -0.8974358974358974, \"z\": -0.1735700197238652}, {\"x\": 0.7948717948717952, \"y\": -0.846153846153846, \"z\": -0.08415516107823728}, {\"x\": 0.7948717948717952, \"y\": -0.7948717948717947, \"z\": 7.771561172376096e-16}, {\"x\": 0.7948717948717952, \"y\": -0.7435897435897434, \"z\": 0.07889546351084886}, {\"x\": 0.7948717948717952, \"y\": -0.6923076923076921, \"z\": 0.1525312294543072}, {\"x\": 0.7948717948717952, \"y\": -0.6410256410256407, \"z\": 0.2209072978303756}, {\"x\": 0.7948717948717952, \"y\": -0.5897435897435894, \"z\": 0.2840236686390541}, {\"x\": 0.7948717948717952, \"y\": -0.5384615384615381, \"z\": 0.3418803418803428}, {\"x\": 0.7948717948717952, \"y\": -0.48717948717948684, \"z\": 0.3944773175542414}, {\"x\": 0.7948717948717952, \"y\": -0.43589743589743557, \"z\": 0.4418145956607503}, {\"x\": 0.7948717948717952, \"y\": -0.3846153846153843, \"z\": 0.48389217619986924}, {\"x\": 0.7948717948717952, \"y\": -0.33333333333333304, \"z\": 0.5207100591715983}, {\"x\": 0.7948717948717952, \"y\": -0.28205128205128177, \"z\": 0.5522682445759375}, {\"x\": 0.7948717948717952, \"y\": -0.2307692307692305, \"z\": 0.5785667324128869}, {\"x\": 0.7948717948717952, \"y\": -0.17948717948717924, \"z\": 0.5996055226824464}, {\"x\": 0.7948717948717952, \"y\": -0.12820512820512797, \"z\": 0.615384615384616}, {\"x\": 0.7948717948717952, \"y\": -0.07692307692307669, \"z\": 0.6259040105193957}, {\"x\": 0.7948717948717952, \"y\": -0.02564102564102541, \"z\": 0.6311637080867855}, {\"x\": 0.7948717948717952, \"y\": 0.02564102564102587, \"z\": 0.6311637080867855}, {\"x\": 0.7948717948717952, \"y\": 0.07692307692307715, \"z\": 0.6259040105193956}, {\"x\": 0.7948717948717952, \"y\": 0.12820512820512842, \"z\": 0.6153846153846159}, {\"x\": 0.7948717948717952, \"y\": 0.17948717948717968, \"z\": 0.5996055226824462}, {\"x\": 0.7948717948717952, \"y\": 0.23076923076923095, \"z\": 0.5785667324128867}, {\"x\": 0.7948717948717952, \"y\": 0.2820512820512822, \"z\": 0.5522682445759373}, {\"x\": 0.7948717948717952, \"y\": 0.3333333333333335, \"z\": 0.5207100591715981}, {\"x\": 0.7948717948717952, \"y\": 0.38461538461538475, \"z\": 0.4838921761998689}, {\"x\": 0.7948717948717952, \"y\": 0.435897435897436, \"z\": 0.4418145956607499}, {\"x\": 0.7948717948717952, \"y\": 0.4871794871794873, \"z\": 0.394477317554241}, {\"x\": 0.7948717948717952, \"y\": 0.5384615384615385, \"z\": 0.3418803418803423}, {\"x\": 0.7948717948717952, \"y\": 0.5897435897435899, \"z\": 0.2840236686390536}, {\"x\": 0.7948717948717952, \"y\": 0.6410256410256412, \"z\": 0.22090729783037505}, {\"x\": 0.7948717948717952, \"y\": 0.6923076923076925, \"z\": 0.15253122945430658}, {\"x\": 0.7948717948717952, \"y\": 0.7435897435897438, \"z\": 0.0788954635108482}, {\"x\": 0.7948717948717952, \"y\": 0.7948717948717952, \"z\": 0.0}, {\"x\": 0.7948717948717952, \"y\": 0.8461538461538465, \"z\": -0.08415516107823806}, {\"x\": 0.7948717948717952, \"y\": 0.8974358974358978, \"z\": -0.1735700197238661}, {\"x\": 0.7948717948717952, \"y\": 0.9487179487179491, \"z\": -0.2682445759368839}, {\"x\": 0.7948717948717952, \"y\": 1.0, \"z\": -0.36817882971729077}, {\"x\": 0.8461538461538465, \"y\": -0.9487179487179487, \"z\": -0.18408941485864505}, {\"x\": 0.8461538461538465, \"y\": -1.0, \"z\": -0.2840236686390527}, {\"x\": 0.8461538461538465, \"y\": -0.8974358974358974, \"z\": -0.08941485864562715}, {\"x\": 0.8461538461538465, \"y\": -0.846153846153846, \"z\": 7.771561172376096e-16}, {\"x\": 0.8461538461538465, \"y\": -0.7948717948717947, \"z\": 0.08415516107823884}, {\"x\": 0.8461538461538465, \"y\": -0.7435897435897434, \"z\": 0.16305062458908692}, {\"x\": 0.8461538461538465, \"y\": -0.6923076923076921, \"z\": 0.23668639053254525}, {\"x\": 0.8461538461538465, \"y\": -0.6410256410256407, \"z\": 0.30506245890861367}, {\"x\": 0.8461538461538465, \"y\": -0.5897435897435894, \"z\": 0.36817882971729216}, {\"x\": 0.8461538461538465, \"y\": -0.5384615384615381, \"z\": 0.42603550295858084}, {\"x\": 0.8461538461538465, \"y\": -0.48717948717948684, \"z\": 0.4786324786324795}, {\"x\": 0.8461538461538465, \"y\": -0.43589743589743557, \"z\": 0.5259697567389884}, {\"x\": 0.8461538461538465, \"y\": -0.3846153846153843, \"z\": 0.5680473372781073}, {\"x\": 0.8461538461538465, \"y\": -0.33333333333333304, \"z\": 0.6048652202498364}, {\"x\": 0.8461538461538465, \"y\": -0.28205128205128177, \"z\": 0.6364234056541755}, {\"x\": 0.8461538461538465, \"y\": -0.2307692307692305, \"z\": 0.662721893491125}, {\"x\": 0.8461538461538465, \"y\": -0.17948717948717924, \"z\": 0.6837606837606844}, {\"x\": 0.8461538461538465, \"y\": -0.12820512820512797, \"z\": 0.699539776462854}, {\"x\": 0.8461538461538465, \"y\": -0.07692307692307669, \"z\": 0.7100591715976338}, {\"x\": 0.8461538461538465, \"y\": -0.02564102564102541, \"z\": 0.7153188691650235}, {\"x\": 0.8461538461538465, \"y\": 0.02564102564102587, \"z\": 0.7153188691650235}, {\"x\": 0.8461538461538465, \"y\": 0.07692307692307715, \"z\": 0.7100591715976337}, {\"x\": 0.8461538461538465, \"y\": 0.12820512820512842, \"z\": 0.6995397764628539}, {\"x\": 0.8461538461538465, \"y\": 0.17948717948717968, \"z\": 0.6837606837606842}, {\"x\": 0.8461538461538465, \"y\": 0.23076923076923095, \"z\": 0.6627218934911248}, {\"x\": 0.8461538461538465, \"y\": 0.2820512820512822, \"z\": 0.6364234056541753}, {\"x\": 0.8461538461538465, \"y\": 0.3333333333333335, \"z\": 0.6048652202498361}, {\"x\": 0.8461538461538465, \"y\": 0.38461538461538475, \"z\": 0.568047337278107}, {\"x\": 0.8461538461538465, \"y\": 0.435897435897436, \"z\": 0.5259697567389879}, {\"x\": 0.8461538461538465, \"y\": 0.4871794871794873, \"z\": 0.47863247863247904}, {\"x\": 0.8461538461538465, \"y\": 0.5384615384615385, \"z\": 0.42603550295858034}, {\"x\": 0.8461538461538465, \"y\": 0.5897435897435899, \"z\": 0.36817882971729166}, {\"x\": 0.8461538461538465, \"y\": 0.6410256410256412, \"z\": 0.3050624589086131}, {\"x\": 0.8461538461538465, \"y\": 0.6923076923076925, \"z\": 0.23668639053254464}, {\"x\": 0.8461538461538465, \"y\": 0.7435897435897438, \"z\": 0.16305062458908626}, {\"x\": 0.8461538461538465, \"y\": 0.7948717948717952, \"z\": 0.08415516107823806}, {\"x\": 0.8461538461538465, \"y\": 0.8461538461538465, \"z\": 0.0}, {\"x\": 0.8461538461538465, \"y\": 0.8974358974358978, \"z\": -0.08941485864562804}, {\"x\": 0.8461538461538465, \"y\": 0.9487179487179491, \"z\": -0.18408941485864583}, {\"x\": 0.8461538461538465, \"y\": 1.0, \"z\": -0.2840236686390527}, {\"x\": 0.8974358974358978, \"y\": -0.9487179487179487, \"z\": -0.09467455621301701}, {\"x\": 0.8974358974358978, \"y\": -1.0, \"z\": -0.19460880999342467}, {\"x\": 0.8974358974358978, \"y\": -0.8974358974358974, \"z\": 8.881784197001252e-16}, {\"x\": 0.8974358974358978, \"y\": -0.846153846153846, \"z\": 0.08941485864562881}, {\"x\": 0.8974358974358978, \"y\": -0.7948717948717947, \"z\": 0.17357001972386688}, {\"x\": 0.8974358974358978, \"y\": -0.7435897435897434, \"z\": 0.25246548323471496}, {\"x\": 0.8974358974358978, \"y\": -0.6923076923076921, \"z\": 0.3261012491781733}, {\"x\": 0.8974358974358978, \"y\": -0.6410256410256407, \"z\": 0.3944773175542417}, {\"x\": 0.8974358974358978, \"y\": -0.5897435897435894, \"z\": 0.4575936883629202}, {\"x\": 0.8974358974358978, \"y\": -0.5384615384615381, \"z\": 0.5154503616042089}, {\"x\": 0.8974358974358978, \"y\": -0.48717948717948684, \"z\": 0.5680473372781075}, {\"x\": 0.8974358974358978, \"y\": -0.43589743589743557, \"z\": 0.6153846153846164}, {\"x\": 0.8974358974358978, \"y\": -0.3846153846153843, \"z\": 0.6574621959237353}, {\"x\": 0.8974358974358978, \"y\": -0.33333333333333304, \"z\": 0.6942800788954644}, {\"x\": 0.8974358974358978, \"y\": -0.28205128205128177, \"z\": 0.7258382642998036}, {\"x\": 0.8974358974358978, \"y\": -0.2307692307692305, \"z\": 0.752136752136753}, {\"x\": 0.8974358974358978, \"y\": -0.17948717948717924, \"z\": 0.7731755424063125}, {\"x\": 0.8974358974358978, \"y\": -0.12820512820512797, \"z\": 0.7889546351084821}, {\"x\": 0.8974358974358978, \"y\": -0.07692307692307669, \"z\": 0.7994740302432618}, {\"x\": 0.8974358974358978, \"y\": -0.02564102564102541, \"z\": 0.8047337278106516}, {\"x\": 0.8974358974358978, \"y\": 0.02564102564102587, \"z\": 0.8047337278106516}, {\"x\": 0.8974358974358978, \"y\": 0.07692307692307715, \"z\": 0.7994740302432617}, {\"x\": 0.8974358974358978, \"y\": 0.12820512820512842, \"z\": 0.788954635108482}, {\"x\": 0.8974358974358978, \"y\": 0.17948717948717968, \"z\": 0.7731755424063123}, {\"x\": 0.8974358974358978, \"y\": 0.23076923076923095, \"z\": 0.7521367521367528}, {\"x\": 0.8974358974358978, \"y\": 0.2820512820512822, \"z\": 0.7258382642998034}, {\"x\": 0.8974358974358978, \"y\": 0.3333333333333335, \"z\": 0.6942800788954642}, {\"x\": 0.8974358974358978, \"y\": 0.38461538461538475, \"z\": 0.657462195923735}, {\"x\": 0.8974358974358978, \"y\": 0.435897435897436, \"z\": 0.615384615384616}, {\"x\": 0.8974358974358978, \"y\": 0.4871794871794873, \"z\": 0.5680473372781071}, {\"x\": 0.8974358974358978, \"y\": 0.5384615384615385, \"z\": 0.5154503616042083}, {\"x\": 0.8974358974358978, \"y\": 0.5897435897435899, \"z\": 0.4575936883629197}, {\"x\": 0.8974358974358978, \"y\": 0.6410256410256412, \"z\": 0.39447731755424115}, {\"x\": 0.8974358974358978, \"y\": 0.6923076923076925, \"z\": 0.3261012491781727}, {\"x\": 0.8974358974358978, \"y\": 0.7435897435897438, \"z\": 0.2524654832347143}, {\"x\": 0.8974358974358978, \"y\": 0.7948717948717952, \"z\": 0.1735700197238661}, {\"x\": 0.8974358974358978, \"y\": 0.8461538461538465, \"z\": 0.08941485864562804}, {\"x\": 0.8974358974358978, \"y\": 0.8974358974358978, \"z\": 0.0}, {\"x\": 0.8974358974358978, \"y\": 0.9487179487179491, \"z\": -0.09467455621301779}, {\"x\": 0.8974358974358978, \"y\": 1.0, \"z\": -0.19460880999342467}, {\"x\": 0.9487179487179491, \"y\": -0.9487179487179487, \"z\": 7.771561172376096e-16}, {\"x\": 0.9487179487179491, \"y\": -1.0, \"z\": -0.09993425378040688}, {\"x\": 0.9487179487179491, \"y\": -0.8974358974358974, \"z\": 0.09467455621301868}, {\"x\": 0.9487179487179491, \"y\": -0.846153846153846, \"z\": 0.1840894148586466}, {\"x\": 0.9487179487179491, \"y\": -0.7948717948717947, \"z\": 0.26824457593688467}, {\"x\": 0.9487179487179491, \"y\": -0.7435897435897434, \"z\": 0.34714003944773275}, {\"x\": 0.9487179487179491, \"y\": -0.6923076923076921, \"z\": 0.4207758053911911}, {\"x\": 0.9487179487179491, \"y\": -0.6410256410256407, \"z\": 0.4891518737672595}, {\"x\": 0.9487179487179491, \"y\": -0.5897435897435894, \"z\": 0.5522682445759379}, {\"x\": 0.9487179487179491, \"y\": -0.5384615384615381, \"z\": 0.6101249178172267}, {\"x\": 0.9487179487179491, \"y\": -0.48717948717948684, \"z\": 0.6627218934911253}, {\"x\": 0.9487179487179491, \"y\": -0.43589743589743557, \"z\": 0.7100591715976342}, {\"x\": 0.9487179487179491, \"y\": -0.3846153846153843, \"z\": 0.7521367521367531}, {\"x\": 0.9487179487179491, \"y\": -0.33333333333333304, \"z\": 0.7889546351084822}, {\"x\": 0.9487179487179491, \"y\": -0.28205128205128177, \"z\": 0.8205128205128214}, {\"x\": 0.9487179487179491, \"y\": -0.2307692307692305, \"z\": 0.8468113083497708}, {\"x\": 0.9487179487179491, \"y\": -0.17948717948717924, \"z\": 0.8678500986193303}, {\"x\": 0.9487179487179491, \"y\": -0.12820512820512797, \"z\": 0.8836291913214999}, {\"x\": 0.9487179487179491, \"y\": -0.07692307692307669, \"z\": 0.8941485864562796}, {\"x\": 0.9487179487179491, \"y\": -0.02564102564102541, \"z\": 0.8994082840236693}, {\"x\": 0.9487179487179491, \"y\": 0.02564102564102587, \"z\": 0.8994082840236693}, {\"x\": 0.9487179487179491, \"y\": 0.07692307692307715, \"z\": 0.8941485864562795}, {\"x\": 0.9487179487179491, \"y\": 0.12820512820512842, \"z\": 0.8836291913214998}, {\"x\": 0.9487179487179491, \"y\": 0.17948717948717968, \"z\": 0.86785009861933}, {\"x\": 0.9487179487179491, \"y\": 0.23076923076923095, \"z\": 0.8468113083497706}, {\"x\": 0.9487179487179491, \"y\": 0.2820512820512822, \"z\": 0.8205128205128212}, {\"x\": 0.9487179487179491, \"y\": 0.3333333333333335, \"z\": 0.788954635108482}, {\"x\": 0.9487179487179491, \"y\": 0.38461538461538475, \"z\": 0.7521367521367528}, {\"x\": 0.9487179487179491, \"y\": 0.435897435897436, \"z\": 0.7100591715976338}, {\"x\": 0.9487179487179491, \"y\": 0.4871794871794873, \"z\": 0.6627218934911249}, {\"x\": 0.9487179487179491, \"y\": 0.5384615384615385, \"z\": 0.6101249178172261}, {\"x\": 0.9487179487179491, \"y\": 0.5897435897435899, \"z\": 0.5522682445759375}, {\"x\": 0.9487179487179491, \"y\": 0.6410256410256412, \"z\": 0.48915187376725894}, {\"x\": 0.9487179487179491, \"y\": 0.6923076923076925, \"z\": 0.42077580539119047}, {\"x\": 0.9487179487179491, \"y\": 0.7435897435897438, \"z\": 0.3471400394477321}, {\"x\": 0.9487179487179491, \"y\": 0.7948717948717952, \"z\": 0.2682445759368839}, {\"x\": 0.9487179487179491, \"y\": 0.8461538461538465, \"z\": 0.18408941485864583}, {\"x\": 0.9487179487179491, \"y\": 0.8974358974358978, \"z\": 0.09467455621301779}, {\"x\": 0.9487179487179491, \"y\": 0.9487179487179491, \"z\": 0.0}, {\"x\": 0.9487179487179491, \"y\": 1.0, \"z\": -0.09993425378040688}, {\"x\": 1.0, \"y\": -0.9487179487179487, \"z\": 0.09993425378040766}, {\"x\": 1.0, \"y\": -1.0, \"z\": 0.0}, {\"x\": 1.0, \"y\": -0.8974358974358974, \"z\": 0.19460880999342556}, {\"x\": 1.0, \"y\": -0.846153846153846, \"z\": 0.2840236686390535}, {\"x\": 1.0, \"y\": -0.7948717948717947, \"z\": 0.36817882971729154}, {\"x\": 1.0, \"y\": -0.7435897435897434, \"z\": 0.44707429322813963}, {\"x\": 1.0, \"y\": -0.6923076923076921, \"z\": 0.520710059171598}, {\"x\": 1.0, \"y\": -0.6410256410256407, \"z\": 0.5890861275476664}, {\"x\": 1.0, \"y\": -0.5897435897435894, \"z\": 0.6522024983563448}, {\"x\": 1.0, \"y\": -0.5384615384615381, \"z\": 0.7100591715976335}, {\"x\": 1.0, \"y\": -0.48717948717948684, \"z\": 0.7626561472715322}, {\"x\": 1.0, \"y\": -0.43589743589743557, \"z\": 0.8099934253780411}, {\"x\": 1.0, \"y\": -0.3846153846153843, \"z\": 0.85207100591716}, {\"x\": 1.0, \"y\": -0.33333333333333304, \"z\": 0.8888888888888891}, {\"x\": 1.0, \"y\": -0.28205128205128177, \"z\": 0.9204470742932283}, {\"x\": 1.0, \"y\": -0.2307692307692305, \"z\": 0.9467455621301777}, {\"x\": 1.0, \"y\": -0.17948717948717924, \"z\": 0.9677843523997371}, {\"x\": 1.0, \"y\": -0.12820512820512797, \"z\": 0.9835634451019067}, {\"x\": 1.0, \"y\": -0.07692307692307669, \"z\": 0.9940828402366865}, {\"x\": 1.0, \"y\": -0.02564102564102541, \"z\": 0.9993425378040762}, {\"x\": 1.0, \"y\": 0.02564102564102587, \"z\": 0.9993425378040762}, {\"x\": 1.0, \"y\": 0.07692307692307715, \"z\": 0.9940828402366864}, {\"x\": 1.0, \"y\": 0.12820512820512842, \"z\": 0.9835634451019066}, {\"x\": 1.0, \"y\": 0.17948717948717968, \"z\": 0.9677843523997369}, {\"x\": 1.0, \"y\": 0.23076923076923095, \"z\": 0.9467455621301775}, {\"x\": 1.0, \"y\": 0.2820512820512822, \"z\": 0.920447074293228}, {\"x\": 1.0, \"y\": 0.3333333333333335, \"z\": 0.8888888888888888}, {\"x\": 1.0, \"y\": 0.38461538461538475, \"z\": 0.8520710059171597}, {\"x\": 1.0, \"y\": 0.435897435897436, \"z\": 0.8099934253780406}, {\"x\": 1.0, \"y\": 0.4871794871794873, \"z\": 0.7626561472715317}, {\"x\": 1.0, \"y\": 0.5384615384615385, \"z\": 0.710059171597633}, {\"x\": 1.0, \"y\": 0.5897435897435899, \"z\": 0.6522024983563444}, {\"x\": 1.0, \"y\": 0.6410256410256412, \"z\": 0.5890861275476658}, {\"x\": 1.0, \"y\": 0.6923076923076925, \"z\": 0.5207100591715974}, {\"x\": 1.0, \"y\": 0.7435897435897438, \"z\": 0.44707429322813896}, {\"x\": 1.0, \"y\": 0.7948717948717952, \"z\": 0.36817882971729077}, {\"x\": 1.0, \"y\": 0.8461538461538465, \"z\": 0.2840236686390527}, {\"x\": 1.0, \"y\": 0.8974358974358978, \"z\": 0.19460880999342467}, {\"x\": 1.0, \"y\": 0.9487179487179491, \"z\": 0.09993425378040688}, {\"x\": 1.0, \"y\": 1.0, \"z\": 0.0}], \"faces\": [[0, 1, 2, 3], [1, 4, 5, 2], [4, 6, 7, 5], [6, 8, 9, 7], [8, 10, 11, 9], [10, 12, 13, 11], [12, 14, 15, 13], [14, 16, 17, 15], [16, 18, 19, 17], [18, 20, 21, 19], [20, 22, 23, 21], [22, 24, 25, 23], [24, 26, 27, 25], [26, 28, 29, 27], [28, 30, 31, 29], [30, 32, 33, 31], [32, 34, 35, 33], [34, 36, 37, 35], [36, 38, 39, 37], [38, 40, 41, 39], [40, 42, 43, 41], [42, 44, 45, 43], [44, 46, 47, 45], [46, 48, 49, 47], [48, 50, 51, 49], [50, 52, 53, 51], [52, 54, 55, 53], [54, 56, 57, 55], [56, 58, 59, 57], [58, 60, 61, 59], [60, 62, 63, 61], [62, 64, 65, 63], [64, 66, 67, 65], [66, 68, 69, 67], [68, 70, 71, 69], [70, 72, 73, 71], [72, 74, 75, 73], [74, 76, 77, 75], [76, 78, 79, 77], [3, 2, 80, 81], [2, 5, 82, 80], [5, 7, 83, 82], [7, 9, 84, 83], [9, 11, 85, 84], [11, 13, 86, 85], [13, 15, 87, 86], [15, 17, 88, 87], [17, 19, 89, 88], [19, 21, 90, 89], [21, 23, 91, 90], [23, 25, 92, 91], [25, 27, 93, 92], [27, 29, 94, 93], [29, 31, 95, 94], [31, 33, 96, 95], [33, 35, 97, 96], [35, 37, 98, 97], [37, 39, 99, 98], [39, 41, 100, 99], [41, 43, 101, 100], [43, 45, 102, 101], [45, 47, 103, 102], [47, 49, 104, 103], [49, 51, 105, 104], [51, 53, 106, 105], [53, 55, 107, 106], [55, 57, 108, 107], [57, 59, 109, 108], [59, 61, 110, 109], [61, 63, 111, 110], [63, 65, 112, 111], [65, 67, 113, 112], [67, 69, 114, 113], [69, 71, 115, 114], [71, 73, 116, 115], [73, 75, 117, 116], [75, 77, 118, 117], [77, 79, 119, 118], [81, 80, 120, 121], [80, 82, 122, 120], [82, 83, 123, 122], [83, 84, 124, 123], [84, 85, 125, 124], [85, 86, 126, 125], [86, 87, 127, 126], [87, 88, 128, 127], [88, 89, 129, 128], [89, 90, 130, 129], [90, 91, 131, 130], [91, 92, 132, 131], [92, 93, 133, 132], [93, 94, 134, 133], [94, 95, 135, 134], [95, 96, 136, 135], [96, 97, 137, 136], [97, 98, 138, 137], [98, 99, 139, 138], [99, 100, 140, 139], [100, 101, 141, 140], [101, 102, 142, 141], [102, 103, 143, 142], [103, 104, 144, 143], [104, 105, 145, 144], [105, 106, 146, 145], [106, 107, 147, 146], [107, 108, 148, 147], [108, 109, 149, 148], [109, 110, 150, 149], [110, 111, 151, 150], [111, 112, 152, 151], [112, 113, 153, 152], [113, 114, 154, 153], [114, 115, 155, 154], [115, 116, 156, 155], [116, 117, 157, 156], [117, 118, 158, 157], [118, 119, 159, 158], [121, 120, 160, 161], [120, 122, 162, 160], [122, 123, 163, 162], [123, 124, 164, 163], [124, 125, 165, 164], [125, 126, 166, 165], [126, 127, 167, 166], [127, 128, 168, 167], [128, 129, 169, 168], [129, 130, 170, 169], [130, 131, 171, 170], [131, 132, 172, 171], [132, 133, 173, 172], [133, 134, 174, 173], [134, 135, 175, 174], [135, 136, 176, 175], [136, 137, 177, 176], [137, 138, 178, 177], [138, 139, 179, 178], [139, 140, 180, 179], [140, 141, 181, 180], [141, 142, 182, 181], [142, 143, 183, 182], [143, 144, 184, 183], [144, 145, 185, 184], [145, 146, 186, 185], [146, 147, 187, 186], [147, 148, 188, 187], [148, 149, 189, 188], [149, 150, 190, 189], [150, 151, 191, 190], [151, 152, 192, 191], [152, 153, 193, 192], [153, 154, 194, 193], [154, 155, 195, 194], [155, 156, 196, 195], [156, 157, 197, 196], [157, 158, 198, 197], [158, 159, 199, 198], [161, 160, 200, 201], [160, 162, 202, 200], [162, 163, 203, 202], [163, 164, 204, 203], [164, 165, 205, 204], [165, 166, 206, 205], [166, 167, 207, 206], [167, 168, 208, 207], [168, 169, 209, 208], [169, 170, 210, 209], [170, 171, 211, 210], [171, 172, 212, 211], [172, 173, 213, 212], [173, 174, 214, 213], [174, 175, 215, 214], [175, 176, 216, 215], [176, 177, 217, 216], [177, 178, 218, 217], [178, 179, 219, 218], [179, 180, 220, 219], [180, 181, 221, 220], [181, 182, 222, 221], [182, 183, 223, 222], [183, 184, 224, 223], [184, 185, 225, 224], [185, 186, 226, 225], [186, 187, 227, 226], [187, 188, 228, 227], [188, 189, 229, 228], [189, 190, 230, 229], [190, 191, 231, 230], [191, 192, 232, 231], [192, 193, 233, 232], [193, 194, 234, 233], [194, 195, 235, 234], [195, 196, 236, 235], [196, 197, 237, 236], [197, 198, 238, 237], [198, 199, 239, 238], [201, 200, 240, 241], [200, 202, 242, 240], [202, 203, 243, 242], [203, 204, 244, 243], [204, 205, 245, 244], [205, 206, 246, 245], [206, 207, 247, 246], [207, 208, 248, 247], [208, 209, 249, 248], [209, 210, 250, 249], [210, 211, 251, 250], [211, 212, 252, 251], [212, 213, 253, 252], [213, 214, 254, 253], [214, 215, 255, 254], [215, 216, 256, 255], [216, 217, 257, 256], [217, 218, 258, 257], [218, 219, 259, 258], [219, 220, 260, 259], [220, 221, 261, 260], [221, 222, 262, 261], [222, 223, 263, 262], [223, 224, 264, 263], [224, 225, 265, 264], [225, 226, 266, 265], [226, 227, 267, 266], [227, 228, 268, 267], [228, 229, 269, 268], [229, 230, 270, 269], [230, 231, 271, 270], [231, 232, 272, 271], [232, 233, 273, 272], [233, 234, 274, 273], [234, 235, 275, 274], [235, 236, 276, 275], [236, 237, 277, 276], [237, 238, 278, 277], [238, 239, 279, 278], [241, 240, 280, 281], [240, 242, 282, 280], [242, 243, 283, 282], [243, 244, 284, 283], [244, 245, 285, 284], [245, 246, 286, 285], [246, 247, 287, 286], [247, 248, 288, 287], [248, 249, 289, 288], [249, 250, 290, 289], [250, 251, 291, 290], [251, 252, 292, 291], [252, 253, 293, 292], [253, 254, 294, 293], [254, 255, 295, 294], [255, 256, 296, 295], [256, 257, 297, 296], [257, 258, 298, 297], [258, 259, 299, 298], [259, 260, 300, 299], [260, 261, 301, 300], [261, 262, 302, 301], [262, 263, 303, 302], [263, 264, 304, 303], [264, 265, 305, 304], [265, 266, 306, 305], [266, 267, 307, 306], [267, 268, 308, 307], [268, 269, 309, 308], [269, 270, 310, 309], [270, 271, 311, 310], [271, 272, 312, 311], [272, 273, 313, 312], [273, 274, 314, 313], [274, 275, 315, 314], [275, 276, 316, 315], [276, 277, 317, 316], [277, 278, 318, 317], [278, 279, 319, 318], [281, 280, 320, 321], [280, 282, 322, 320], [282, 283, 323, 322], [283, 284, 324, 323], [284, 285, 325, 324], [285, 286, 326, 325], [286, 287, 327, 326], [287, 288, 328, 327], [288, 289, 329, 328], [289, 290, 330, 329], [290, 291, 331, 330], [291, 292, 332, 331], [292, 293, 333, 332], [293, 294, 334, 333], [294, 295, 335, 334], [295, 296, 336, 335], [296, 297, 337, 336], [297, 298, 338, 337], [298, 299, 339, 338], [299, 300, 340, 339], [300, 301, 341, 340], [301, 302, 342, 341], [302, 303, 343, 342], [303, 304, 344, 343], [304, 305, 345, 344], [305, 306, 346, 345], [306, 307, 347, 346], [307, 308, 348, 347], [308, 309, 349, 348], [309, 310, 350, 349], [310, 311, 351, 350], [311, 312, 352, 351], [312, 313, 353, 352], [313, 314, 354, 353], [314, 315, 355, 354], [315, 316, 356, 355], [316, 317, 357, 356], [317, 318, 358, 357], [318, 319, 359, 358], [321, 320, 360, 361], [320, 322, 362, 360], [322, 323, 363, 362], [323, 324, 364, 363], [324, 325, 365, 364], [325, 326, 366, 365], [326, 327, 367, 366], [327, 328, 368, 367], [328, 329, 369, 368], [329, 330, 370, 369], [330, 331, 371, 370], [331, 332, 372, 371], [332, 333, 373, 372], [333, 334, 374, 373], [334, 335, 375, 374], [335, 336, 376, 375], [336, 337, 377, 376], [337, 338, 378, 377], [338, 339, 379, 378], [339, 340, 380, 379], [340, 341, 381, 380], [341, 342, 382, 381], [342, 343, 383, 382], [343, 344, 384, 383], [344, 345, 385, 384], [345, 346, 386, 385], [346, 347, 387, 386], [347, 348, 388, 387], [348, 349, 389, 388], [349, 350, 390, 389], [350, 351, 391, 390], [351, 352, 392, 391], [352, 353, 393, 392], [353, 354, 394, 393], [354, 355, 395, 394], [355, 356, 396, 395], [356, 357, 397, 396], [357, 358, 398, 397], [358, 359, 399, 398], [361, 360, 400, 401], [360, 362, 402, 400], [362, 363, 403, 402], [363, 364, 404, 403], [364, 365, 405, 404], [365, 366, 406, 405], [366, 367, 407, 406], [367, 368, 408, 407], [368, 369, 409, 408], [369, 370, 410, 409], [370, 371, 411, 410], [371, 372, 412, 411], [372, 373, 413, 412], [373, 374, 414, 413], [374, 375, 415, 414], [375, 376, 416, 415], [376, 377, 417, 416], [377, 378, 418, 417], [378, 379, 419, 418], [379, 380, 420, 419], [380, 381, 421, 420], [381, 382, 422, 421], [382, 383, 423, 422], [383, 384, 424, 423], [384, 385, 425, 424], [385, 386, 426, 425], [386, 387, 427, 426], [387, 388, 428, 427], [388, 389, 429, 428], [389, 390, 430, 429], [390, 391, 431, 430], [391, 392, 432, 431], [392, 393, 433, 432], [393, 394, 434, 433], [394, 395, 435, 434], [395, 396, 436, 435], [396, 397, 437, 436], [397, 398, 438, 437], [398, 399, 439, 438], [401, 400, 440, 441], [400, 402, 442, 440], [402, 403, 443, 442], [403, 404, 444, 443], [404, 405, 445, 444], [405, 406, 446, 445], [406, 407, 447, 446], [407, 408, 448, 447], [408, 409, 449, 448], [409, 410, 450, 449], [410, 411, 451, 450], [411, 412, 452, 451], [412, 413, 453, 452], [413, 414, 454, 453], [414, 415, 455, 454], [415, 416, 456, 455], [416, 417, 457, 456], [417, 418, 458, 457], [418, 419, 459, 458], [419, 420, 460, 459], [420, 421, 461, 460], [421, 422, 462, 461], [422, 423, 463, 462], [423, 424, 464, 463], [424, 425, 465, 464], [425, 426, 466, 465], [426, 427, 467, 466], [427, 428, 468, 467], [428, 429, 469, 468], [429, 430, 470, 469], [430, 431, 471, 470], [431, 432, 472, 471], [432, 433, 473, 472], [433, 434, 474, 473], [434, 435, 475, 474], [435, 436, 476, 475], [436, 437, 477, 476], [437, 438, 478, 477], [438, 439, 479, 478], [441, 440, 480, 481], [440, 442, 482, 480], [442, 443, 483, 482], [443, 444, 484, 483], [444, 445, 485, 484], [445, 446, 486, 485], [446, 447, 487, 486], [447, 448, 488, 487], [448, 449, 489, 488], [449, 450, 490, 489], [450, 451, 491, 490], [451, 452, 492, 491], [452, 453, 493, 492], [453, 454, 494, 493], [454, 455, 495, 494], [455, 456, 496, 495], [456, 457, 497, 496], [457, 458, 498, 497], [458, 459, 499, 498], [459, 460, 500, 499], [460, 461, 501, 500], [461, 462, 502, 501], [462, 463, 503, 502], [463, 464, 504, 503], [464, 465, 505, 504], [465, 466, 506, 505], [466, 467, 507, 506], [467, 468, 508, 507], [468, 469, 509, 508], [469, 470, 510, 509], [470, 471, 511, 510], [471, 472, 512, 511], [472, 473, 513, 512], [473, 474, 514, 513], [474, 475, 515, 514], [475, 476, 516, 515], [476, 477, 517, 516], [477, 478, 518, 517], [478, 479, 519, 518], [481, 480, 520, 521], [480, 482, 522, 520], [482, 483, 523, 522], [483, 484, 524, 523], [484, 485, 525, 524], [485, 486, 526, 525], [486, 487, 527, 526], [487, 488, 528, 527], [488, 489, 529, 528], [489, 490, 530, 529], [490, 491, 531, 530], [491, 492, 532, 531], [492, 493, 533, 532], [493, 494, 534, 533], [494, 495, 535, 534], [495, 496, 536, 535], [496, 497, 537, 536], [497, 498, 538, 537], [498, 499, 539, 538], [499, 500, 540, 539], [500, 501, 541, 540], [501, 502, 542, 541], [502, 503, 543, 542], [503, 504, 544, 543], [504, 505, 545, 544], [505, 506, 546, 545], [506, 507, 547, 546], [507, 508, 548, 547], [508, 509, 549, 548], [509, 510, 550, 549], [510, 511, 551, 550], [511, 512, 552, 551], [512, 513, 553, 552], [513, 514, 554, 553], [514, 515, 555, 554], [515, 516, 556, 555], [516, 517, 557, 556], [517, 518, 558, 557], [518, 519, 559, 558], [521, 520, 560, 561], [520, 522, 562, 560], [522, 523, 563, 562], [523, 524, 564, 563], [524, 525, 565, 564], [525, 526, 566, 565], [526, 527, 567, 566], [527, 528, 568, 567], [528, 529, 569, 568], [529, 530, 570, 569], [530, 531, 571, 570], [531, 532, 572, 571], [532, 533, 573, 572], [533, 534, 574, 573], [534, 535, 575, 574], [535, 536, 576, 575], [536, 537, 577, 576], [537, 538, 578, 577], [538, 539, 579, 578], [539, 540, 580, 579], [540, 541, 581, 580], [541, 542, 582, 581], [542, 543, 583, 582], [543, 544, 584, 583], [544, 545, 585, 584], [545, 546, 586, 585], [546, 547, 587, 586], [547, 548, 588, 587], [548, 549, 589, 588], [549, 550, 590, 589], [550, 551, 591, 590], [551, 552, 592, 591], [552, 553, 593, 592], [553, 554, 594, 593], [554, 555, 595, 594], [555, 556, 596, 595], [556, 557, 597, 596], [557, 558, 598, 597], [558, 559, 599, 598], [561, 560, 600, 601], [560, 562, 602, 600], [562, 563, 603, 602], [563, 564, 604, 603], [564, 565, 605, 604], [565, 566, 606, 605], [566, 567, 607, 606], [567, 568, 608, 607], [568, 569, 609, 608], [569, 570, 610, 609], [570, 571, 611, 610], [571, 572, 612, 611], [572, 573, 613, 612], [573, 574, 614, 613], [574, 575, 615, 614], [575, 576, 616, 615], [576, 577, 617, 616], [577, 578, 618, 617], [578, 579, 619, 618], [579, 580, 620, 619], [580, 581, 621, 620], [581, 582, 622, 621], [582, 583, 623, 622], [583, 584, 624, 623], [584, 585, 625, 624], [585, 586, 626, 625], [586, 587, 627, 626], [587, 588, 628, 627], [588, 589, 629, 628], [589, 590, 630, 629], [590, 591, 631, 630], [591, 592, 632, 631], [592, 593, 633, 632], [593, 594, 634, 633], [594, 595, 635, 634], [595, 596, 636, 635], [596, 597, 637, 636], [597, 598, 638, 637], [598, 599, 639, 638], [601, 600, 640, 641], [600, 602, 642, 640], [602, 603, 643, 642], [603, 604, 644, 643], [604, 605, 645, 644], [605, 606, 646, 645], [606, 607, 647, 646], [607, 608, 648, 647], [608, 609, 649, 648], [609, 610, 650, 649], [610, 611, 651, 650], [611, 612, 652, 651], [612, 613, 653, 652], [613, 614, 654, 653], [614, 615, 655, 654], [615, 616, 656, 655], [616, 617, 657, 656], [617, 618, 658, 657], [618, 619, 659, 658], [619, 620, 660, 659], [620, 621, 661, 660], [621, 622, 662, 661], [622, 623, 663, 662], [623, 624, 664, 663], [624, 625, 665, 664], [625, 626, 666, 665], [626, 627, 667, 666], [627, 628, 668, 667], [628, 629, 669, 668], [629, 630, 670, 669], [630, 631, 671, 670], [631, 632, 672, 671], [632, 633, 673, 672], [633, 634, 674, 673], [634, 635, 675, 674], [635, 636, 676, 675], [636, 637, 677, 676], [637, 638, 678, 677], [638, 639, 679, 678], [641, 640, 680, 681], [640, 642, 682, 680], [642, 643, 683, 682], [643, 644, 684, 683], [644, 645, 685, 684], [645, 646, 686, 685], [646, 647, 687, 686], [647, 648, 688, 687], [648, 649, 689, 688], [649, 650, 690, 689], [650, 651, 691, 690], [651, 652, 692, 691], [652, 653, 693, 692], [653, 654, 694, 693], [654, 655, 695, 694], [655, 656, 696, 695], [656, 657, 697, 696], [657, 658, 698, 697], [658, 659, 699, 698], [659, 660, 700, 699], [660, 661, 701, 700], [661, 662, 702, 701], [662, 663, 703, 702], [663, 664, 704, 703], [664, 665, 705, 704], [665, 666, 706, 705], [666, 667, 707, 706], [667, 668, 708, 707], [668, 669, 709, 708], [669, 670, 710, 709], [670, 671, 711, 710], [671, 672, 712, 711], [672, 673, 713, 712], [673, 674, 714, 713], [674, 675, 715, 714], [675, 676, 716, 715], [676, 677, 717, 716], [677, 678, 718, 717], [678, 679, 719, 718], [681, 680, 720, 721], [680, 682, 722, 720], [682, 683, 723, 722], [683, 684, 724, 723], [684, 685, 725, 724], [685, 686, 726, 725], [686, 687, 727, 726], [687, 688, 728, 727], [688, 689, 729, 728], [689, 690, 730, 729], [690, 691, 731, 730], [691, 692, 732, 731], [692, 693, 733, 732], [693, 694, 734, 733], [694, 695, 735, 734], [695, 696, 736, 735], [696, 697, 737, 736], [697, 698, 738, 737], [698, 699, 739, 738], [699, 700, 740, 739], [700, 701, 741, 740], [701, 702, 742, 741], [702, 703, 743, 742], [703, 704, 744, 743], [704, 705, 745, 744], [705, 706, 746, 745], [706, 707, 747, 746], [707, 708, 748, 747], [708, 709, 749, 748], [709, 710, 750, 749], [710, 711, 751, 750], [711, 712, 752, 751], [712, 713, 753, 752], [713, 714, 754, 753], [714, 715, 755, 754], [715, 716, 756, 755], [716, 717, 757, 756], [717, 718, 758, 757], [718, 719, 759, 758], [721, 720, 760, 761], [720, 722, 762, 760], [722, 723, 763, 762], [723, 724, 764, 763], [724, 725, 765, 764], [725, 726, 766, 765], [726, 727, 767, 766], [727, 728, 768, 767], [728, 729, 769, 768], [729, 730, 770, 769], [730, 731, 771, 770], [731, 732, 772, 771], [732, 733, 773, 772], [733, 734, 774, 773], [734, 735, 775, 774], [735, 736, 776, 775], [736, 737, 777, 776], [737, 738, 778, 777], [738, 739, 779, 778], [739, 740, 780, 779], [740, 741, 781, 780], [741, 742, 782, 781], [742, 743, 783, 782], [743, 744, 784, 783], [744, 745, 785, 784], [745, 746, 786, 785], [746, 747, 787, 786], [747, 748, 788, 787], [748, 749, 789, 788], [749, 750, 790, 789], [750, 751, 791, 790], [751, 752, 792, 791], [752, 753, 793, 792], [753, 754, 794, 793], [754, 755, 795, 794], [755, 756, 796, 795], [756, 757, 797, 796], [757, 758, 798, 797], [758, 759, 799, 798], [761, 760, 800, 801], [760, 762, 802, 800], [762, 763, 803, 802], [763, 764, 804, 803], [764, 765, 805, 804], [765, 766, 806, 805], [766, 767, 807, 806], [767, 768, 808, 807], [768, 769, 809, 808], [769, 770, 810, 809], [770, 771, 811, 810], [771, 772, 812, 811], [772, 773, 813, 812], [773, 774, 814, 813], [774, 775, 815, 814], [775, 776, 816, 815], [776, 777, 817, 816], [777, 778, 818, 817], [778, 779, 819, 818], [779, 780, 820, 819], [780, 781, 821, 820], [781, 782, 822, 821], [782, 783, 823, 822], [783, 784, 824, 823], [784, 785, 825, 824], [785, 786, 826, 825], [786, 787, 827, 826], [787, 788, 828, 827], [788, 789, 829, 828], [789, 790, 830, 829], [790, 791, 831, 830], [791, 792, 832, 831], [792, 793, 833, 832], [793, 794, 834, 833], [794, 795, 835, 834], [795, 796, 836, 835], [796, 797, 837, 836], [797, 798, 838, 837], [798, 799, 839, 838], [801, 800, 840, 841], [800, 802, 842, 840], [802, 803, 843, 842], [803, 804, 844, 843], [804, 805, 845, 844], [805, 806, 846, 845], [806, 807, 847, 846], [807, 808, 848, 847], [808, 809, 849, 848], [809, 810, 850, 849], [810, 811, 851, 850], [811, 812, 852, 851], [812, 813, 853, 852], [813, 814, 854, 853], [814, 815, 855, 854], [815, 816, 856, 855], [816, 817, 857, 856], [817, 818, 858, 857], [818, 819, 859, 858], [819, 820, 860, 859], [820, 821, 861, 860], [821, 822, 862, 861], [822, 823, 863, 862], [823, 824, 864, 863], [824, 825, 865, 864], [825, 826, 866, 865], [826, 827, 867, 866], [827, 828, 868, 867], [828, 829, 869, 868], [829, 830, 870, 869], [830, 831, 871, 870], [831, 832, 872, 871], [832, 833, 873, 872], [833, 834, 874, 873], [834, 835, 875, 874], [835, 836, 876, 875], [836, 837, 877, 876], [837, 838, 878, 877], [838, 839, 879, 878], [841, 840, 880, 881], [840, 842, 882, 880], [842, 843, 883, 882], [843, 844, 884, 883], [844, 845, 885, 884], [845, 846, 886, 885], [846, 847, 887, 886], [847, 848, 888, 887], [848, 849, 889, 888], [849, 850, 890, 889], [850, 851, 891, 890], [851, 852, 892, 891], [852, 853, 893, 892], [853, 854, 894, 893], [854, 855, 895, 894], [855, 856, 896, 895], [856, 857, 897, 896], [857, 858, 898, 897], [858, 859, 899, 898], [859, 860, 900, 899], [860, 861, 901, 900], [861, 862, 902, 901], [862, 863, 903, 902], [863, 864, 904, 903], [864, 865, 905, 904], [865, 866, 906, 905], [866, 867, 907, 906], [867, 868, 908, 907], [868, 869, 909, 908], [869, 870, 910, 909], [870, 871, 911, 910], [871, 872, 912, 911], [872, 873, 913, 912], [873, 874, 914, 913], [874, 875, 915, 914], [875, 876, 916, 915], [876, 877, 917, 916], [877, 878, 918, 917], [878, 879, 919, 918], [881, 880, 920, 921], [880, 882, 922, 920], [882, 883, 923, 922], [883, 884, 924, 923], [884, 885, 925, 924], [885, 886, 926, 925], [886, 887, 927, 926], [887, 888, 928, 927], [888, 889, 929, 928], [889, 890, 930, 929], [890, 891, 931, 930], [891, 892, 932, 931], [892, 893, 933, 932], [893, 894, 934, 933], [894, 895, 935, 934], [895, 896, 936, 935], [896, 897, 937, 936], [897, 898, 938, 937], [898, 899, 939, 938], [899, 900, 940, 939], [900, 901, 941, 940], [901, 902, 942, 941], [902, 903, 943, 942], [903, 904, 944, 943], [904, 905, 945, 944], [905, 906, 946, 945], [906, 907, 947, 946], [907, 908, 948, 947], [908, 909, 949, 948], [909, 910, 950, 949], [910, 911, 951, 950], [911, 912, 952, 951], [912, 913, 953, 952], [913, 914, 954, 953], [914, 915, 955, 954], [915, 916, 956, 955], [916, 917, 957, 956], [917, 918, 958, 957], [918, 919, 959, 958], [921, 920, 960, 961], [920, 922, 962, 960], [922, 923, 963, 962], [923, 924, 964, 963], [924, 925, 965, 964], [925, 926, 966, 965], [926, 927, 967, 966], [927, 928, 968, 967], [928, 929, 969, 968], [929, 930, 970, 969], [930, 931, 971, 970], [931, 932, 972, 971], [932, 933, 973, 972], [933, 934, 974, 973], [934, 935, 975, 974], [935, 936, 976, 975], [936, 937, 977, 976], [937, 938, 978, 977], [938, 939, 979, 978], [939, 940, 980, 979], [940, 941, 981, 980], [941, 942, 982, 981], [942, 943, 983, 982], [943, 944, 984, 983], [944, 945, 985, 984], [945, 946, 986, 985], [946, 947, 987, 986], [947, 948, 988, 987], [948, 949, 989, 988], [949, 950, 990, 989], [950, 951, 991, 990], [951, 952, 992, 991], [952, 953, 993, 992], [953, 954, 994, 993], [954, 955, 995, 994], [955, 956, 996, 995], [956, 957, 997, 996], [957, 958, 998, 997], [958, 959, 999, 998], [961, 960, 1000, 1001], [960, 962, 1002, 1000], [962, 963, 1003, 1002], [963, 964, 1004, 1003], [964, 965, 1005, 1004], [965, 966, 1006, 1005], [966, 967, 1007, 1006], [967, 968, 1008, 1007], [968, 969, 1009, 1008], [969, 970, 1010, 1009], [970, 971, 1011, 1010], [971, 972, 1012, 1011], [972, 973, 1013, 1012], [973, 974, 1014, 1013], [974, 975, 1015, 1014], [975, 976, 1016, 1015], [976, 977, 1017, 1016], [977, 978, 1018, 1017], [978, 979, 1019, 1018], [979, 980, 1020, 1019], [980, 981, 1021, 1020], [981, 982, 1022, 1021], [982, 983, 1023, 1022], [983, 984, 1024, 1023], [984, 985, 1025, 1024], [985, 986, 1026, 1025], [986, 987, 1027, 1026], [987, 988, 1028, 1027], [988, 989, 1029, 1028], [989, 990, 1030, 1029], [990, 991, 1031, 1030], [991, 992, 1032, 1031], [992, 993, 1033, 1032], [993, 994, 1034, 1033], [994, 995, 1035, 1034], [995, 996, 1036, 1035], [996, 997, 1037, 1036], [997, 998, 1038, 1037], [998, 999, 1039, 1038], [1001, 1000, 1040, 1041], [1000, 1002, 1042, 1040], [1002, 1003, 1043, 1042], [1003, 1004, 1044, 1043], [1004, 1005, 1045, 1044], [1005, 1006, 1046, 1045], [1006, 1007, 1047, 1046], [1007, 1008, 1048, 1047], [1008, 1009, 1049, 1048], [1009, 1010, 1050, 1049], [1010, 1011, 1051, 1050], [1011, 1012, 1052, 1051], [1012, 1013, 1053, 1052], [1013, 1014, 1054, 1053], [1014, 1015, 1055, 1054], [1015, 1016, 1056, 1055], [1016, 1017, 1057, 1056], [1017, 1018, 1058, 1057], [1018, 1019, 1059, 1058], [1019, 1020, 1060, 1059], [1020, 1021, 1061, 1060], [1021, 1022, 1062, 1061], [1022, 1023, 1063, 1062], [1023, 1024, 1064, 1063], [1024, 1025, 1065, 1064], [1025, 1026, 1066, 1065], [1026, 1027, 1067, 1066], [1027, 1028, 1068, 1067], [1028, 1029, 1069, 1068], [1029, 1030, 1070, 1069], [1030, 1031, 1071, 1070], [1031, 1032, 1072, 1071], [1032, 1033, 1073, 1072], [1033, 1034, 1074, 1073], [1034, 1035, 1075, 1074], [1035, 1036, 1076, 1075], [1036, 1037, 1077, 1076], [1037, 1038, 1078, 1077], [1038, 1039, 1079, 1078], [1041, 1040, 1080, 1081], [1040, 1042, 1082, 1080], [1042, 1043, 1083, 1082], [1043, 1044, 1084, 1083], [1044, 1045, 1085, 1084], [1045, 1046, 1086, 1085], [1046, 1047, 1087, 1086], [1047, 1048, 1088, 1087], [1048, 1049, 1089, 1088], [1049, 1050, 1090, 1089], [1050, 1051, 1091, 1090], [1051, 1052, 1092, 1091], [1052, 1053, 1093, 1092], [1053, 1054, 1094, 1093], [1054, 1055, 1095, 1094], [1055, 1056, 1096, 1095], [1056, 1057, 1097, 1096], [1057, 1058, 1098, 1097], [1058, 1059, 1099, 1098], [1059, 1060, 1100, 1099], [1060, 1061, 1101, 1100], [1061, 1062, 1102, 1101], [1062, 1063, 1103, 1102], [1063, 1064, 1104, 1103], [1064, 1065, 1105, 1104], [1065, 1066, 1106, 1105], [1066, 1067, 1107, 1106], [1067, 1068, 1108, 1107], [1068, 1069, 1109, 1108], [1069, 1070, 1110, 1109], [1070, 1071, 1111, 1110], [1071, 1072, 1112, 1111], [1072, 1073, 1113, 1112], [1073, 1074, 1114, 1113], [1074, 1075, 1115, 1114], [1075, 1076, 1116, 1115], [1076, 1077, 1117, 1116], [1077, 1078, 1118, 1117], [1078, 1079, 1119, 1118], [1081, 1080, 1120, 1121], [1080, 1082, 1122, 1120], [1082, 1083, 1123, 1122], [1083, 1084, 1124, 1123], [1084, 1085, 1125, 1124], [1085, 1086, 1126, 1125], [1086, 1087, 1127, 1126], [1087, 1088, 1128, 1127], [1088, 1089, 1129, 1128], [1089, 1090, 1130, 1129], [1090, 1091, 1131, 1130], [1091, 1092, 1132, 1131], [1092, 1093, 1133, 1132], [1093, 1094, 1134, 1133], [1094, 1095, 1135, 1134], [1095, 1096, 1136, 1135], [1096, 1097, 1137, 1136], [1097, 1098, 1138, 1137], [1098, 1099, 1139, 1138], [1099, 1100, 1140, 1139], [1100, 1101, 1141, 1140], [1101, 1102, 1142, 1141], [1102, 1103, 1143, 1142], [1103, 1104, 1144, 1143], [1104, 1105, 1145, 1144], [1105, 1106, 1146, 1145], [1106, 1107, 1147, 1146], [1107, 1108, 1148, 1147], [1108, 1109, 1149, 1148], [1109, 1110, 1150, 1149], [1110, 1111, 1151, 1150], [1111, 1112, 1152, 1151], [1112, 1113, 1153, 1152], [1113, 1114, 1154, 1153], [1114, 1115, 1155, 1154], [1115, 1116, 1156, 1155], [1116, 1117, 1157, 1156], [1117, 1118, 1158, 1157], [1118, 1119, 1159, 1158], [1121, 1120, 1160, 1161], [1120, 1122, 1162, 1160], [1122, 1123, 1163, 1162], [1123, 1124, 1164, 1163], [1124, 1125, 1165, 1164], [1125, 1126, 1166, 1165], [1126, 1127, 1167, 1166], [1127, 1128, 1168, 1167], [1128, 1129, 1169, 1168], [1129, 1130, 1170, 1169], [1130, 1131, 1171, 1170], [1131, 1132, 1172, 1171], [1132, 1133, 1173, 1172], [1133, 1134, 1174, 1173], [1134, 1135, 1175, 1174], [1135, 1136, 1176, 1175], [1136, 1137, 1177, 1176], [1137, 1138, 1178, 1177], [1138, 1139, 1179, 1178], [1139, 1140, 1180, 1179], [1140, 1141, 1181, 1180], [1141, 1142, 1182, 1181], [1142, 1143, 1183, 1182], [1143, 1144, 1184, 1183], [1144, 1145, 1185, 1184], [1145, 1146, 1186, 1185], [1146, 1147, 1187, 1186], [1147, 1148, 1188, 1187], [1148, 1149, 1189, 1188], [1149, 1150, 1190, 1189], [1150, 1151, 1191, 1190], [1151, 1152, 1192, 1191], [1152, 1153, 1193, 1192], [1153, 1154, 1194, 1193], [1154, 1155, 1195, 1194], [1155, 1156, 1196, 1195], [1156, 1157, 1197, 1196], [1157, 1158, 1198, 1197], [1158, 1159, 1199, 1198], [1161, 1160, 1200, 1201], [1160, 1162, 1202, 1200], [1162, 1163, 1203, 1202], [1163, 1164, 1204, 1203], [1164, 1165, 1205, 1204], [1165, 1166, 1206, 1205], [1166, 1167, 1207, 1206], [1167, 1168, 1208, 1207], [1168, 1169, 1209, 1208], [1169, 1170, 1210, 1209], [1170, 1171, 1211, 1210], [1171, 1172, 1212, 1211], [1172, 1173, 1213, 1212], [1173, 1174, 1214, 1213], [1174, 1175, 1215, 1214], [1175, 1176, 1216, 1215], [1176, 1177, 1217, 1216], [1177, 1178, 1218, 1217], [1178, 1179, 1219, 1218], [1179, 1180, 1220, 1219], [1180, 1181, 1221, 1220], [1181, 1182, 1222, 1221], [1182, 1183, 1223, 1222], [1183, 1184, 1224, 1223], [1184, 1185, 1225, 1224], [1185, 1186, 1226, 1225], [1186, 1187, 1227, 1226], [1187, 1188, 1228, 1227], [1188, 1189, 1229, 1228], [1189, 1190, 1230, 1229], [1190, 1191, 1231, 1230], [1191, 1192, 1232, 1231], [1192, 1193, 1233, 1232], [1193, 1194, 1234, 1233], [1194, 1195, 1235, 1234], [1195, 1196, 1236, 1235], [1196, 1197, 1237, 1236], [1197, 1198, 1238, 1237], [1198, 1199, 1239, 1238], [1201, 1200, 1240, 1241], [1200, 1202, 1242, 1240], [1202, 1203, 1243, 1242], [1203, 1204, 1244, 1243], [1204, 1205, 1245, 1244], [1205, 1206, 1246, 1245], [1206, 1207, 1247, 1246], [1207, 1208, 1248, 1247], [1208, 1209, 1249, 1248], [1209, 1210, 1250, 1249], [1210, 1211, 1251, 1250], [1211, 1212, 1252, 1251], [1212, 1213, 1253, 1252], [1213, 1214, 1254, 1253], [1214, 1215, 1255, 1254], [1215, 1216, 1256, 1255], [1216, 1217, 1257, 1256], [1217, 1218, 1258, 1257], [1218, 1219, 1259, 1258], [1219, 1220, 1260, 1259], [1220, 1221, 1261, 1260], [1221, 1222, 1262, 1261], [1222, 1223, 1263, 1262], [1223, 1224, 1264, 1263], [1224, 1225, 1265, 1264], [1225, 1226, 1266, 1265], [1226, 1227, 1267, 1266], [1227, 1228, 1268, 1267], [1228, 1229, 1269, 1268], [1229, 1230, 1270, 1269], [1230, 1231, 1271, 1270], [1231, 1232, 1272, 1271], [1232, 1233, 1273, 1272], [1233, 1234, 1274, 1273], [1234, 1235, 1275, 1274], [1235, 1236, 1276, 1275], [1236, 1237, 1277, 1276], [1237, 1238, 1278, 1277], [1238, 1239, 1279, 1278], [1241, 1240, 1280, 1281], [1240, 1242, 1282, 1280], [1242, 1243, 1283, 1282], [1243, 1244, 1284, 1283], [1244, 1245, 1285, 1284], [1245, 1246, 1286, 1285], [1246, 1247, 1287, 1286], [1247, 1248, 1288, 1287], [1248, 1249, 1289, 1288], [1249, 1250, 1290, 1289], [1250, 1251, 1291, 1290], [1251, 1252, 1292, 1291], [1252, 1253, 1293, 1292], [1253, 1254, 1294, 1293], [1254, 1255, 1295, 1294], [1255, 1256, 1296, 1295], [1256, 1257, 1297, 1296], [1257, 1258, 1298, 1297], [1258, 1259, 1299, 1298], [1259, 1260, 1300, 1299], [1260, 1261, 1301, 1300], [1261, 1262, 1302, 1301], [1262, 1263, 1303, 1302], [1263, 1264, 1304, 1303], [1264, 1265, 1305, 1304], [1265, 1266, 1306, 1305], [1266, 1267, 1307, 1306], [1267, 1268, 1308, 1307], [1268, 1269, 1309, 1308], [1269, 1270, 1310, 1309], [1270, 1271, 1311, 1310], [1271, 1272, 1312, 1311], [1272, 1273, 1313, 1312], [1273, 1274, 1314, 1313], [1274, 1275, 1315, 1314], [1275, 1276, 1316, 1315], [1276, 1277, 1317, 1316], [1277, 1278, 1318, 1317], [1278, 1279, 1319, 1318], [1281, 1280, 1320, 1321], [1280, 1282, 1322, 1320], [1282, 1283, 1323, 1322], [1283, 1284, 1324, 1323], [1284, 1285, 1325, 1324], [1285, 1286, 1326, 1325], [1286, 1287, 1327, 1326], [1287, 1288, 1328, 1327], [1288, 1289, 1329, 1328], [1289, 1290, 1330, 1329], [1290, 1291, 1331, 1330], [1291, 1292, 1332, 1331], [1292, 1293, 1333, 1332], [1293, 1294, 1334, 1333], [1294, 1295, 1335, 1334], [1295, 1296, 1336, 1335], [1296, 1297, 1337, 1336], [1297, 1298, 1338, 1337], [1298, 1299, 1339, 1338], [1299, 1300, 1340, 1339], [1300, 1301, 1341, 1340], [1301, 1302, 1342, 1341], [1302, 1303, 1343, 1342], [1303, 1304, 1344, 1343], [1304, 1305, 1345, 1344], [1305, 1306, 1346, 1345], [1306, 1307, 1347, 1346], [1307, 1308, 1348, 1347], [1308, 1309, 1349, 1348], [1309, 1310, 1350, 1349], [1310, 1311, 1351, 1350], [1311, 1312, 1352, 1351], [1312, 1313, 1353, 1352], [1313, 1314, 1354, 1353], [1314, 1315, 1355, 1354], [1315, 1316, 1356, 1355], [1316, 1317, 1357, 1356], [1317, 1318, 1358, 1357], [1318, 1319, 1359, 1358], [1321, 1320, 1360, 1361], [1320, 1322, 1362, 1360], [1322, 1323, 1363, 1362], [1323, 1324, 1364, 1363], [1324, 1325, 1365, 1364], [1325, 1326, 1366, 1365], [1326, 1327, 1367, 1366], [1327, 1328, 1368, 1367], [1328, 1329, 1369, 1368], [1329, 1330, 1370, 1369], [1330, 1331, 1371, 1370], [1331, 1332, 1372, 1371], [1332, 1333, 1373, 1372], [1333, 1334, 1374, 1373], [1334, 1335, 1375, 1374], [1335, 1336, 1376, 1375], [1336, 1337, 1377, 1376], [1337, 1338, 1378, 1377], [1338, 1339, 1379, 1378], [1339, 1340, 1380, 1379], [1340, 1341, 1381, 1380], [1341, 1342, 1382, 1381], [1342, 1343, 1383, 1382], [1343, 1344, 1384, 1383], [1344, 1345, 1385, 1384], [1345, 1346, 1386, 1385], [1346, 1347, 1387, 1386], [1347, 1348, 1388, 1387], [1348, 1349, 1389, 1388], [1349, 1350, 1390, 1389], [1350, 1351, 1391, 1390], [1351, 1352, 1392, 1391], [1352, 1353, 1393, 1392], [1353, 1354, 1394, 1393], [1354, 1355, 1395, 1394], [1355, 1356, 1396, 1395], [1356, 1357, 1397, 1396], [1357, 1358, 1398, 1397], [1358, 1359, 1399, 1398], [1361, 1360, 1400, 1401], [1360, 1362, 1402, 1400], [1362, 1363, 1403, 1402], [1363, 1364, 1404, 1403], [1364, 1365, 1405, 1404], [1365, 1366, 1406, 1405], [1366, 1367, 1407, 1406], [1367, 1368, 1408, 1407], [1368, 1369, 1409, 1408], [1369, 1370, 1410, 1409], [1370, 1371, 1411, 1410], [1371, 1372, 1412, 1411], [1372, 1373, 1413, 1412], [1373, 1374, 1414, 1413], [1374, 1375, 1415, 1414], [1375, 1376, 1416, 1415], [1376, 1377, 1417, 1416], [1377, 1378, 1418, 1417], [1378, 1379, 1419, 1418], [1379, 1380, 1420, 1419], [1380, 1381, 1421, 1420], [1381, 1382, 1422, 1421], [1382, 1383, 1423, 1422], [1383, 1384, 1424, 1423], [1384, 1385, 1425, 1424], [1385, 1386, 1426, 1425], [1386, 1387, 1427, 1426], [1387, 1388, 1428, 1427], [1388, 1389, 1429, 1428], [1389, 1390, 1430, 1429], [1390, 1391, 1431, 1430], [1391, 1392, 1432, 1431], [1392, 1393, 1433, 1432], [1393, 1394, 1434, 1433], [1394, 1395, 1435, 1434], [1395, 1396, 1436, 1435], [1396, 1397, 1437, 1436], [1397, 1398, 1438, 1437], [1398, 1399, 1439, 1438], [1401, 1400, 1440, 1441], [1400, 1402, 1442, 1440], [1402, 1403, 1443, 1442], [1403, 1404, 1444, 1443], [1404, 1405, 1445, 1444], [1405, 1406, 1446, 1445], [1406, 1407, 1447, 1446], [1407, 1408, 1448, 1447], [1408, 1409, 1449, 1448], [1409, 1410, 1450, 1449], [1410, 1411, 1451, 1450], [1411, 1412, 1452, 1451], [1412, 1413, 1453, 1452], [1413, 1414, 1454, 1453], [1414, 1415, 1455, 1454], [1415, 1416, 1456, 1455], [1416, 1417, 1457, 1456], [1417, 1418, 1458, 1457], [1418, 1419, 1459, 1458], [1419, 1420, 1460, 1459], [1420, 1421, 1461, 1460], [1421, 1422, 1462, 1461], [1422, 1423, 1463, 1462], [1423, 1424, 1464, 1463], [1424, 1425, 1465, 1464], [1425, 1426, 1466, 1465], [1426, 1427, 1467, 1466], [1427, 1428, 1468, 1467], [1428, 1429, 1469, 1468], [1429, 1430, 1470, 1469], [1430, 1431, 1471, 1470], [1431, 1432, 1472, 1471], [1432, 1433, 1473, 1472], [1433, 1434, 1474, 1473], [1434, 1435, 1475, 1474], [1435, 1436, 1476, 1475], [1436, 1437, 1477, 1476], [1437, 1438, 1478, 1477], [1438, 1439, 1479, 1478], [1441, 1440, 1480, 1481], [1440, 1442, 1482, 1480], [1442, 1443, 1483, 1482], [1443, 1444, 1484, 1483], [1444, 1445, 1485, 1484], [1445, 1446, 1486, 1485], [1446, 1447, 1487, 1486], [1447, 1448, 1488, 1487], [1448, 1449, 1489, 1488], [1449, 1450, 1490, 1489], [1450, 1451, 1491, 1490], [1451, 1452, 1492, 1491], [1452, 1453, 1493, 1492], [1453, 1454, 1494, 1493], [1454, 1455, 1495, 1494], [1455, 1456, 1496, 1495], [1456, 1457, 1497, 1496], [1457, 1458, 1498, 1497], [1458, 1459, 1499, 1498], [1459, 1460, 1500, 1499], [1460, 1461, 1501, 1500], [1461, 1462, 1502, 1501], [1462, 1463, 1503, 1502], [1463, 1464, 1504, 1503], [1464, 1465, 1505, 1504], [1465, 1466, 1506, 1505], [1466, 1467, 1507, 1506], [1467, 1468, 1508, 1507], [1468, 1469, 1509, 1508], [1469, 1470, 1510, 1509], [1470, 1471, 1511, 1510], [1471, 1472, 1512, 1511], [1472, 1473, 1513, 1512], [1473, 1474, 1514, 1513], [1474, 1475, 1515, 1514], [1475, 1476, 1516, 1515], [1476, 1477, 1517, 1516], [1477, 1478, 1518, 1517], [1478, 1479, 1519, 1518], [1481, 1480, 1520, 1521], [1480, 1482, 1522, 1520], [1482, 1483, 1523, 1522], [1483, 1484, 1524, 1523], [1484, 1485, 1525, 1524], [1485, 1486, 1526, 1525], [1486, 1487, 1527, 1526], [1487, 1488, 1528, 1527], [1488, 1489, 1529, 1528], [1489, 1490, 1530, 1529], [1490, 1491, 1531, 1530], [1491, 1492, 1532, 1531], [1492, 1493, 1533, 1532], [1493, 1494, 1534, 1533], [1494, 1495, 1535, 1534], [1495, 1496, 1536, 1535], [1496, 1497, 1537, 1536], [1497, 1498, 1538, 1537], [1498, 1499, 1539, 1538], [1499, 1500, 1540, 1539], [1500, 1501, 1541, 1540], [1501, 1502, 1542, 1541], [1502, 1503, 1543, 1542], [1503, 1504, 1544, 1543], [1504, 1505, 1545, 1544], [1505, 1506, 1546, 1545], [1506, 1507, 1547, 1546], [1507, 1508, 1548, 1547], [1508, 1509, 1549, 1548], [1509, 1510, 1550, 1549], [1510, 1511, 1551, 1550], [1511, 1512, 1552, 1551], [1512, 1513, 1553, 1552], [1513, 1514, 1554, 1553], [1514, 1515, 1555, 1554], [1515, 1516, 1556, 1555], [1516, 1517, 1557, 1556], [1517, 1518, 1558, 1557], [1518, 1519, 1559, 1558], [1521, 1520, 1560, 1561], [1520, 1522, 1562, 1560], [1522, 1523, 1563, 1562], [1523, 1524, 1564, 1563], [1524, 1525, 1565, 1564], [1525, 1526, 1566, 1565], [1526, 1527, 1567, 1566], [1527, 1528, 1568, 1567], [1528, 1529, 1569, 1568], [1529, 1530, 1570, 1569], [1530, 1531, 1571, 1570], [1531, 1532, 1572, 1571], [1532, 1533, 1573, 1572], [1533, 1534, 1574, 1573], [1534, 1535, 1575, 1574], [1535, 1536, 1576, 1575], [1536, 1537, 1577, 1576], [1537, 1538, 1578, 1577], [1538, 1539, 1579, 1578], [1539, 1540, 1580, 1579], [1540, 1541, 1581, 1580], [1541, 1542, 1582, 1581], [1542, 1543, 1583, 1582], [1543, 1544, 1584, 1583], [1544, 1545, 1585, 1584], [1545, 1546, 1586, 1585], [1546, 1547, 1587, 1586], [1547, 1548, 1588, 1587], [1548, 1549, 1589, 1588], [1549, 1550, 1590, 1589], [1550, 1551, 1591, 1590], [1551, 1552, 1592, 1591], [1552, 1553, 1593, 1592], [1553, 1554, 1594, 1593], [1554, 1555, 1595, 1594], [1555, 1556, 1596, 1595], [1556, 1557, 1597, 1596], [1557, 1558, 1598, 1597], [1558, 1559, 1599, 1598]], \"color\": \"#ffa500\", \"opacity\": 1.0, \"showMeshGrid\": true}];\n    for ( var i=0 ; i < surfaces.length ; i++ ) addSurface( surfaces[i] );\n\n    function addSurface( json ) {\n\n        var useFaceColors = 'faceColors' in json ? true : false;\n\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.vertices.length ; i++ ) {\n            var v = json.vertices[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v.x, a[1]*v.y, a[2]*v.z ) );\n        }\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length - 2 ; j++ ) {\n                var face = new THREE.Face3( f[0], f[j+1], f[j+2] );\n                if ( useFaceColors ) face.color.set( json.faceColors[i] );\n                geometry.faces.push( face );\n            }\n        }\n        geometry.computeVertexNormals();\n\n        var side = json.singleSide ? THREE.FrontSide : THREE.DoubleSide;\n        var transparent = json.opacity < 1 ? true : false;\n        var depthWrite = 'depthWrite' in json ? json.depthWrite : !transparent;\n        var flatShading = json.useFlatShading ? json.useFlatShading : false;\n\n        var material = new THREE.MeshPhongMaterial( { side: side,\n                                     color: useFaceColors ? 'white' : json.color,\n                                     vertexColors: useFaceColors ? THREE.FaceColors : THREE.NoColors,\n                                     transparent: transparent, opacity: json.opacity,\n                                     shininess: 20, flatShading: flatShading,\n                                     depthWrite: depthWrite } );\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var mesh = new THREE.Mesh( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        if ( transparent && json.renderOrder ) mesh.renderOrder = json.renderOrder;\n        mesh.userData = json;\n        scene.add( mesh );\n\n        if ( json.showMeshGrid ) addSurfaceMeshGrid( json );\n\n    }\n\n    function addSurfaceMeshGrid( json ) {\n\n        var geometry = new THREE.Geometry();\n\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length ; j++ ) {\n                var k = j === f.length-1 ? 0 : j+1;\n                var v1 = json.vertices[f[j]];\n                var v2 = json.vertices[f[k]];\n                // vertices in opposite directions on neighboring faces\n                var nudge = f[j] < f[k] ? .0005*zRange : -.0005*zRange;\n                geometry.vertices.push( new THREE.Vector3( a[0]*v1.x, a[1]*v1.y, a[2]*(v1.z+nudge) ) );\n                geometry.vertices.push( new THREE.Vector3( a[0]*v2.x, a[1]*v2.y, a[2]*(v2.z+nudge) ) );\n            }\n        }\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var gridColor = options.theme === 'dark' ? 'white' : 'black';\n        var linewidth = json.linewidth || 1;\n        var materialOptions = { color: gridColor, linewidth: linewidth };\n\n        var mesh;\n        if ( linewidth > 1 && window.createFatLineSegments ) {\n            mesh = createFatLineSegments( geometry, materialOptions );\n        } else {\n            var material = new THREE.LineBasicMaterial( materialOptions );\n            mesh = new THREE.LineSegments( geometry, material );\n        }\n\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    function render() {\n\n        if ( window.updateAnimation ) animate = updateAnimation();\n        if ( animate ) requestAnimationFrame( render );\n\n        renderer.render( scene, camera );\n\n    }\n\n    render();\n    controls.update();\n    if ( !animate ) render();\n\n\n    // menu functions\n\n    function toggleMenu() {\n\n        var m = document.getElementById( 'menu-content' );\n        if ( m.style.display === 'block' ) m.style.display = 'none'\n        else m.style.display = 'block';\n\n    }\n\n\n    function saveAsPNG() {\n\n        var a = document.body.appendChild( document.createElement( 'a' ) );\n        a.href = renderer.domElement.toDataURL( 'image/png' );\n        a.download = 'screenshot';\n        a.click();\n\n    }\n\n    function saveAsHTML() {\n\n        toggleMenu(); // otherwise visible in output\n        event.stopPropagation();\n\n        var blob = new Blob( [ '<!DOCTYPE html>\\n' + document.documentElement.outerHTML ] );\n        var a = document.body.appendChild( document.createElement( 'a' ) );\n        a.href = window.URL.createObjectURL( blob );\n        a.download = suggestFilename();\n        a.click();\n\n        function suggestFilename() {\n            if ( !document.title ) {\n                return 'graphic.html';\n            } else if ( /\\.html?$/i.test( document.title ) ) {\n                return document.title; // already ends in .htm or .html\n            } else {\n                return document.title + '.html';\n            }\n        }\n\n    }\n\n    function getViewpoint() {\n\n        function roundTo( x, n ) { return +x.toFixed(n); }\n\n        var v = camera.quaternion.inverse();\n        var r = Math.sqrt( v.x*v.x + v.y*v.y + v.z*v.z );\n        var axis = [ roundTo( v.x / r, 4 ), roundTo( v.y / r, 4 ), roundTo( v.z / r, 4 ) ];\n        var angle = roundTo( 2 * Math.atan2( r, v.w ) * 180 / Math.PI, 2 );\n\n        var textArea = document.createElement( 'textarea' );\n        textArea.textContent = JSON.stringify( axis ) + ',' + angle;\n        textArea.style.csstext = 'position: absolute; top: -100%';\n        document.body.append( textArea );\n        textArea.select();\n        document.execCommand( 'copy' );\n\n        var m = document.getElementById( 'menu-message' );\n        m.innerHTML = 'Viewpoint copied to clipboard';\n        m.style.display = 'block';\n        setTimeout( function() { m.style.display = 'none'; }, 2000 );\n\n    }\n\n    function getCamera() {\n\n        function roundTo( x, n ) { return +x.toFixed(n); }\n\n        var pos = camera.position;\n        var pos_r = [ roundTo( pos.x, 4 ), roundTo( pos.y, 4 ), roundTo( pos.z, 4 ) ];\n   //     var up = camera.up; // up is always (0,0,1)\n        var textArea = document.createElement('textarea');\n        var cam_position = JSON.stringify(pos_r);\n        textArea.textContent = ',camera_position=' + cam_position;\n        textArea.style.csstext = 'position: absolute; top: -100%';\n        document.body.append( textArea );\n        textArea.select();\n        document.execCommand( 'copy' );\n\n        var m = document.getElementById( 'menu-message' );\n        m.innerHTML = 'Camera position '+ cam_position+' copied to clipboard';\n        m.style.display = 'block';\n        setTimeout( function() { m.style.display = 'none'; }, 2000 );\n\n    }\n  "
  },
  {
    "path": "examples/sample-article/media/code/threejs/splines.js",
    "content": "\n// From: https://threejs.org/examples/webgl_geometry_extrude_splines.html\n// Minimal edits by RAB, 2019-05-15\n\n// The MIT License\n//\n// Copyright © 2010-2019 three.js authors\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nvar container, stats;\n\nvar camera, scene, renderer, splineCamera, cameraHelper, cameraEye;\n\nvar binormal = new THREE.Vector3();\nvar normal = new THREE.Vector3();\n\nvar pipeSpline = new THREE.CatmullRomCurve3( [\n    new THREE.Vector3( 0, 10, - 10 ), new THREE.Vector3( 10, 0, - 10 ),\n    new THREE.Vector3( 20, 0, 0 ), new THREE.Vector3( 30, 0, 10 ),\n    new THREE.Vector3( 30, 0, 20 ), new THREE.Vector3( 20, 0, 30 ),\n    new THREE.Vector3( 10, 0, 30 ), new THREE.Vector3( 0, 0, 30 ),\n    new THREE.Vector3( - 10, 10, 30 ), new THREE.Vector3( - 10, 20, 30 ),\n    new THREE.Vector3( 0, 30, 30 ), new THREE.Vector3( 10, 30, 30 ),\n    new THREE.Vector3( 20, 30, 15 ), new THREE.Vector3( 10, 30, 10 ),\n    new THREE.Vector3( 0, 30, 10 ), new THREE.Vector3( - 10, 20, 10 ),\n    new THREE.Vector3( - 10, 10, 10 ), new THREE.Vector3( 0, 0, 10 ),\n    new THREE.Vector3( 10, - 10, 10 ), new THREE.Vector3( 20, - 15, 10 ),\n    new THREE.Vector3( 30, - 15, 10 ), new THREE.Vector3( 40, - 15, 10 ),\n    new THREE.Vector3( 50, - 15, 10 ), new THREE.Vector3( 60, 0, 10 ),\n    new THREE.Vector3( 70, 0, 0 ), new THREE.Vector3( 80, 0, 0 ),\n    new THREE.Vector3( 90, 0, 0 ), new THREE.Vector3( 100, 0, 0 )\n] );\n\nvar sampleClosedSpline = new THREE.CatmullRomCurve3( [\n    new THREE.Vector3( 0, - 40, - 40 ),\n    new THREE.Vector3( 0, 40, - 40 ),\n    new THREE.Vector3( 0, 140, - 40 ),\n    new THREE.Vector3( 0, 40, 40 ),\n    new THREE.Vector3( 0, - 40, 40 )\n] );\n\nsampleClosedSpline.curveType = 'catmullrom';\nsampleClosedSpline.closed = true;\n\n// Keep a dictionary of Curve instances\nvar splines = {\n    GrannyKnot: new THREE.Curves.GrannyKnot(),\n    HeartCurve: new THREE.Curves.HeartCurve( 3.5 ),\n    VivianiCurve: new THREE.Curves.VivianiCurve( 70 ),\n    KnotCurve: new THREE.Curves.KnotCurve(),\n    HelixCurve: new THREE.Curves.HelixCurve(),\n    TrefoilKnot: new THREE.Curves.TrefoilKnot(),\n    TorusKnot: new THREE.Curves.TorusKnot( 20 ),\n    CinquefoilKnot: new THREE.Curves.CinquefoilKnot( 20 ),\n    TrefoilPolynomialKnot: new THREE.Curves.TrefoilPolynomialKnot( 14 ),\n    FigureEightPolynomialKnot: new THREE.Curves.FigureEightPolynomialKnot(),\n    DecoratedTorusKnot4a: new THREE.Curves.DecoratedTorusKnot4a(),\n    DecoratedTorusKnot4b: new THREE.Curves.DecoratedTorusKnot4b(),\n    DecoratedTorusKnot5a: new THREE.Curves.DecoratedTorusKnot5a(),\n    DecoratedTorusKnot5c: new THREE.Curves.DecoratedTorusKnot5c(),\n    PipeSpline: pipeSpline,\n    SampleClosedSpline: sampleClosedSpline\n};\n\nvar parent, tubeGeometry, mesh;\n\nvar params = {\n    spline: 'GrannyKnot',\n    scale: 4,\n    extrusionSegments: 100,\n    radiusSegments: 3,\n    closed: true,\n    animationView: false,\n    lookAhead: false,\n    cameraHelper: false,\n};\n\nvar material = new THREE.MeshLambertMaterial( { color: 0xff00ff } );\n\nvar wireframeMaterial = new THREE.MeshBasicMaterial( { color: 0x000000, opacity: 0.3, wireframe: true, transparent: true } );\n\nfunction addTube() {\n\n    if ( mesh !== undefined ) {\n\n        parent.remove( mesh );\n        mesh.geometry.dispose();\n\n    }\n\n    var extrudePath = splines[ params.spline ];\n\n    tubeGeometry = new THREE.TubeBufferGeometry( extrudePath, params.extrusionSegments, 2, params.radiusSegments, params.closed );\n\n    addGeometry( tubeGeometry );\n\n    setScale();\n\n}\n\nfunction setScale() {\n\n    mesh.scale.set( params.scale, params.scale, params.scale );\n\n}\n\n\nfunction addGeometry( geometry ) {\n\n    // 3D shape\n\n    mesh = new THREE.Mesh( geometry, material );\n    var wireframe = new THREE.Mesh( geometry, wireframeMaterial );\n    mesh.add( wireframe );\n\n    parent.add( mesh );\n\n}\n\nfunction animateCamera() {\n\n    cameraHelper.visible = params.cameraHelper;\n    cameraEye.visible = params.cameraHelper;\n\n}\n\ninit();\nanimate();\n\nfunction init() {\n\n    // RAB, 2019-05-15, renamed \"container\" id to \"three-js-splines\"\n    container = document.getElementById( 'threejs-splines' );\n\n    // camera\n\n    camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.01, 10000 );\n    camera.position.set( 0, 50, 500 );\n\n    // scene\n\n    scene = new THREE.Scene();\n    scene.background = new THREE.Color( 0xf0f0f0 );\n\n    // light\n\n    var light = new THREE.DirectionalLight( 0xffffff );\n    light.position.set( 0, 0, 1 );\n    scene.add( light );\n\n    // tube\n\n    parent = new THREE.Object3D();\n    scene.add( parent );\n\n    splineCamera = new THREE.PerspectiveCamera( 84, window.innerWidth / window.innerHeight, 0.01, 1000 );\n    parent.add( splineCamera );\n\n    cameraHelper = new THREE.CameraHelper( splineCamera );\n    scene.add( cameraHelper );\n\n    addTube();\n\n    // debug camera\n\n    cameraEye = new THREE.Mesh( new THREE.SphereBufferGeometry( 5 ), new THREE.MeshBasicMaterial( { color: 0xdddddd } ) );\n    parent.add( cameraEye );\n\n    cameraHelper.visible = params.cameraHelper;\n    cameraEye.visible = params.cameraHelper;\n\n    // renderer\n\n    renderer = new THREE.WebGLRenderer( { antialias: true } );\n    renderer.setPixelRatio( window.devicePixelRatio );\n    renderer.setSize( window.innerWidth, window.innerHeight );\n    container.appendChild( renderer.domElement );\n\n    // stats\n\n    // RAB, 2019-05-15, trash stats window\n    // requires  https://threejs.org/examples/js/libs/stats.min.js\n    //stats = new Stats();\n    //container.appendChild( stats.dom );\n\n    // dat.GUI\n\n    var gui = new dat.GUI( { width: 300 } );\n\n    var folderGeometry = gui.addFolder( 'Geometry' );\n    folderGeometry.add( params, 'spline', Object.keys( splines ) ).onChange( function () {\n\n        addTube();\n\n    } );\n    folderGeometry.add( params, 'scale', 2, 10 ).step( 2 ).onChange( function () {\n\n        setScale();\n\n    } );\n    folderGeometry.add( params, 'extrusionSegments', 50, 500 ).step( 50 ).onChange( function () {\n\n        addTube();\n\n    } );\n    folderGeometry.add( params, 'radiusSegments', 2, 12 ).step( 1 ).onChange( function () {\n\n        addTube();\n\n    } );\n    folderGeometry.add( params, 'closed' ).onChange( function () {\n\n        addTube();\n\n    } );\n    folderGeometry.open();\n\n    var folderCamera = gui.addFolder( 'Camera' );\n    folderCamera.add( params, 'animationView' ).onChange( function () {\n\n        animateCamera();\n\n    } );\n    folderCamera.add( params, 'lookAhead' ).onChange( function () {\n\n        animateCamera();\n\n    } );\n    folderCamera.add( params, 'cameraHelper' ).onChange( function () {\n\n        animateCamera();\n\n    } );\n    folderCamera.open();\n\n    var controls = new THREE.OrbitControls( camera, renderer.domElement );\n\n    window.addEventListener( 'resize', onWindowResize, false );\n\n    // RAB, 2019-05-15 open without controls on top of everything\n    gui.close()\n\n}\n\nfunction onWindowResize() {\n\n    camera.aspect = window.innerWidth / window.innerHeight;\n    camera.updateProjectionMatrix();\n\n    renderer.setSize( window.innerWidth, window.innerHeight );\n\n}\n\n//\n\nfunction animate() {\n\n    requestAnimationFrame( animate );\n\n    render();\n    // DBW, 2019-06-20, stats window was removed, don't update\n    //stats.update();\n\n}\n\nfunction render() {\n\n    // animate camera along spline\n\n    var time = Date.now();\n    var looptime = 20 * 1000;\n    var t = ( time % looptime ) / looptime;\n\n    var pos = tubeGeometry.parameters.path.getPointAt( t );\n    pos.multiplyScalar( params.scale );\n\n    // interpolation\n\n    var segments = tubeGeometry.tangents.length;\n    var pickt = t * segments;\n    var pick = Math.floor( pickt );\n    var pickNext = ( pick + 1 ) % segments;\n\n    binormal.subVectors( tubeGeometry.binormals[ pickNext ], tubeGeometry.binormals[ pick ] );\n    binormal.multiplyScalar( pickt - pick ).add( tubeGeometry.binormals[ pick ] );\n\n    var dir = tubeGeometry.parameters.path.getTangentAt( t );\n    var offset = 15;\n\n    normal.copy( binormal ).cross( dir );\n\n    // we move on a offset on its binormal\n\n    pos.add( normal.clone().multiplyScalar( offset ) );\n\n    splineCamera.position.copy( pos );\n    cameraEye.position.copy( pos );\n\n    // using arclength for stablization in look ahead\n\n    var lookAt = tubeGeometry.parameters.path.getPointAt( ( t + 30 / tubeGeometry.parameters.path.getLength() ) % 1 ).multiplyScalar( params.scale );\n\n    // camera orientation 2 - up orientation via normal\n\n    if ( ! params.lookAhead ) lookAt.copy( pos ).add( dir );\n    splineCamera.matrix.lookAt( splineCamera.position, lookAt, normal );\n    splineCamera.rotation.setFromRotationMatrix( splineCamera.matrix, splineCamera.rotation.order );\n\n    cameraHelper.update();\n\n    renderer.render( scene, params.animationView === true ? splineCamera : camera );\n\n}\n"
  },
  {
    "path": "examples/sample-article/media/favicon/README.md",
    "content": "This favicon is the test image from [https://realfavicongenerator.net/](RealFaviconGenerator).\n"
  },
  {
    "path": "examples/sample-article/media/iframe/sage-jupyter.html",
    "content": "<!DOCTYPE html>\n<html><head>\n<title></title>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0\">\n<style>\n\n    body { margin: 0px; overflow: hidden; }\n\n    #menu-container { position: absolute; bottom: 30px; right: 40px; cursor: default; }\n\n    #menu-message { position: absolute; bottom: 0px; right: 0px; white-space: nowrap;\n                    display: none; background-color: #F5F5F5; padding: 10px; }\n\n    #menu-content { position: absolute; bottom: 0px; right: 0px;\n                    display: none; background-color: #F5F5F5; border-bottom: 1px solid black;\n                    border-right: 1px solid black; border-left: 1px solid black; }\n\n    #menu-content div { border-top: 1px solid black; padding: 10px; white-space: nowrap; }\n\n    #menu-content div:hover { background-color: #FEFEFE; }\n\n    .dark-theme #menu-container { color: white; }\n\n    .dark-theme #menu-message { background-color: #181818; }\n\n    .dark-theme #menu-content { background-color: #181818; border-color: white; }\n\n    .dark-theme #menu-content div { border-color: white; }\n\n    .dark-theme #menu-content div:hover { background-color: #303030; }\n\n</style>\n\n</head>\n\n<body>\n\n<script src=\"/nbextensions/threejs-sage/r122/three.min.js\"></script>\n<script>\n  if ( !window.THREE ) document.write(' \\\n<script src=\"https://cdn.jsdelivr.net/gh/sagemath/threejs-sage@r122/build/three.min.js\"><\\/script> \\\n            ');\n</script> <script src=\"https://cdn.jsdelivr.net/gh/sagemath/threejs-sage@r122/build/three.min.js\"></script>             \n        \n<script>\n\n    var options = {\"animate\": false, \"animationControls\": true, \"aspectRatio\": [1.0, 1.0, 1.0], \"autoPlay\": true, \"axes\": false, \"axesLabels\": [\"x\", \"y\", \"z\"], \"axesLabelsStyle\": null, \"decimals\": 2, \"delay\": 20, \"frame\": true, \"loop\": true, \"projection\": \"perspective\", \"theme\": \"light\", \"viewpoint\": false};\n    var animate = options.animate;\n\n    if ( options.theme === 'dark' )\n        document.body.className = 'dark-theme';\n\n    var scene = new THREE.Scene();\n\n    var renderer = new THREE.WebGLRenderer( { antialias: true, preserveDrawingBuffer: true } );\n    renderer.setPixelRatio( window.devicePixelRatio );\n    renderer.setSize( window.innerWidth, window.innerHeight );\n    renderer.setClearColor( options.theme === 'dark' ? 0 : 0xffffff, 1 );\n    document.body.appendChild( renderer.domElement );\n\n    var b = [{\"x\":-1.0, \"y\":-1.0, \"z\":-0.9993425378040762}, {\"x\":1.0, \"y\":1.0, \"z\":0.9993425378040762}]; // bounds\n\n    if ( b[0].x === b[1].x ) {\n        b[0].x -= 1;\n        b[1].x += 1;\n    }\n    if ( b[0].y === b[1].y ) {\n        b[0].y -= 1;\n        b[1].y += 1;\n    }\n    if ( b[0].z === b[1].z ) {\n        b[0].z -= 1;\n        b[1].z += 1;\n    }\n\n    var rRange = Math.sqrt( Math.pow( b[1].x - b[0].x, 2 )\n                            + Math.pow( b[1].y - b[0].y, 2 ) );\n    var xRange = b[1].x - b[0].x;\n    var yRange = b[1].y - b[0].y;\n    var zRange = b[1].z - b[0].z;\n\n    var ar = options.aspectRatio;\n    var a = [ ar[0], ar[1], ar[2] ]; // aspect multipliers\n    var autoAspect = 2.5;\n    if ( zRange > autoAspect * rRange && a[2] === 1 ) a[2] = autoAspect * rRange / zRange;\n\n    // Distance from (xMid,yMid,zMid) to any corner of the bounding box, after applying aspectRatio\n    var midToCorner = Math.sqrt( a[0]*a[0]*xRange*xRange + a[1]*a[1]*yRange*yRange + a[2]*a[2]*zRange*zRange ) / 2;\n\n    var xMid = ( b[0].x + b[1].x ) / 2;\n    var yMid = ( b[0].y + b[1].y ) / 2;\n    var zMid = ( b[0].z + b[1].z ) / 2;\n\n    var box = new THREE.Geometry();\n    box.vertices.push( new THREE.Vector3( a[0]*b[0].x, a[1]*b[0].y, a[2]*b[0].z ) );\n    box.vertices.push( new THREE.Vector3( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) );\n    var boxMesh = new THREE.Line( box );\n    var boxColor = options.theme === 'dark' ? 'white' : 'black';\n    if ( options.frame ) scene.add( new THREE.BoxHelper( boxMesh, boxColor ) );\n\n    if ( options.axesLabels ) {\n\n        var d = options.decimals; // decimals\n        var offsetRatio = 0.1;\n        var al = options.axesLabels;\n        var als = options.axesLabelsStyle || [{}, {}, {}];\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var xm = xMid.toFixed(d);\n        if ( /^-0.?0*$/.test(xm) ) xm = xm.substr(1);\n        addLabel( al[0] + '=' + xm, a[0]*xMid, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n        addLabel( ( b[0].x ).toFixed(d), a[0]*b[0].x, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n        addLabel( ( b[1].x ).toFixed(d), a[0]*b[1].x, a[1]*b[1].y+offset, a[2]*b[0].z, als[0] );\n\n        var offset = offsetRatio * a[0]*( b[1].x - b[0].x );\n        var ym = yMid.toFixed(d);\n        if ( /^-0.?0*$/.test(ym) ) ym = ym.substr(1);\n        addLabel( al[1] + '=' + ym, a[0]*b[1].x+offset, a[1]*yMid, a[2]*b[0].z, als[1] );\n        addLabel( ( b[0].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[0].y, a[2]*b[0].z, als[1] );\n        addLabel( ( b[1].y ).toFixed(d), a[0]*b[1].x+offset, a[1]*b[1].y, a[2]*b[0].z, als[1] );\n\n        var offset = offsetRatio * a[1]*( b[1].y - b[0].y );\n        var zm = zMid.toFixed(d);\n        if ( /^-0.?0*$/.test(zm) ) zm = zm.substr(1);\n        addLabel( al[2] + '=' + zm, a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*zMid, als[2] );\n        addLabel( ( b[0].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[0].z, als[2] );\n        addLabel( ( b[1].z ).toFixed(d), a[0]*b[1].x, a[1]*b[0].y-offset, a[2]*b[1].z, als[2] );\n\n    }\n\n    function addLabel( text, x, y, z, style ) {\n\n        var color = style.color || 'black';\n        var fontSize = style.fontSize || 14;\n        var fontFamily = style.fontFamily || 'monospace';\n        var fontStyle = style.fontStyle || 'normal';\n        var fontWeight = style.fontWeight || 'normal';\n        var opacity = style.opacity || 1;\n\n        if ( options.theme === 'dark' )\n            if ( color === 'black' || color === '#000000' )\n                color = 'white';\n\n        if ( Array.isArray( fontStyle ) ) {\n            fontFamily = fontFamily.map( function( f ) {\n                // Need to put quotes around fonts that have whitespace in their names.\n                return /\\s/.test( f ) ? '\"' + f + '\"' : f;\n            }).join(', ');\n        }\n\n        var canvas = document.createElement( 'canvas' );\n        var context = canvas.getContext( '2d' );\n        var pixelRatio = Math.round( window.devicePixelRatio );\n\n        // For example: italic bold 20px \"Times New Roman\", Georgia, serif\n        var font = [fontStyle, fontWeight, fontSize + 'px', fontFamily].join(' ');\n\n        context.font = font;\n        var width = context.measureText( text ).width;\n        var height = fontSize;\n\n        // The dimensions of the canvas's underlying image data need to be powers\n        // of two in order for the resulting texture to support mipmapping.\n        canvas.width = THREE.MathUtils.ceilPowerOfTwo( width * pixelRatio );\n        canvas.height = THREE.MathUtils.ceilPowerOfTwo( height * pixelRatio );\n\n        // Re-compute the unscaled dimensions after the power of two conversion.\n        width = canvas.width / pixelRatio;\n        height = canvas.height / pixelRatio;\n\n        canvas.style.width = width + 'px';\n        canvas.style.height = height + 'px';\n\n        context.scale( pixelRatio, pixelRatio );\n        context.fillStyle = color;\n        context.font = font; // Must be set again after measureText.\n        context.textAlign = 'center';\n        context.textBaseline = 'middle';\n        context.fillText( text, width/2, height/2 );\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var materialOptions = { map: texture, sizeAttenuation: false, depthWrite: false };\n        if ( opacity < 1 ) {\n            // Setting opacity=1 would cause the texture's alpha component to be\n            // discarded, giving the text a black background instead of the\n            // background being transparent.\n            materialOptions.opacity = opacity;\n        }\n        var sprite = new THREE.Sprite( new THREE.SpriteMaterial( materialOptions ) );\n        sprite.position.set( x, y, z );\n\n        // Scaling factor, chosen somewhat arbitrarily so that the size of the text\n        // is consistent with previously generated plots.\n        var scale = 1/625;\n        if ( options.projection === 'orthographic' ) {\n            scale = midToCorner/256; // Needs to scale along with the plot itself.\n        }\n        sprite.scale.set( scale * width, scale * height, 1 );\n\n        scene.add( sprite );\n\n        return sprite;\n\n    }\n\n    if ( options.axes ) scene.add( new THREE.AxesHelper( Math.min( a[0]*b[1].x, a[1]*b[1].y, a[2]*b[1].z ) ) );\n\n    var camera = createCamera();\n    camera.up.set( 0, 0, 1 );\n    camera.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n\n    var offset = new THREE.Vector3( a[0]*xRange, a[1]*yRange, a[2]*zRange );\n\n    if ( options.viewpoint ) {\n\n        var aa = options.viewpoint;\n        var axis = new THREE.Vector3( aa[0][0], aa[0][1], aa[0][2] ).normalize();\n        var angle = aa[1] * Math.PI / 180;\n        var q = new THREE.Quaternion().setFromAxisAngle( axis, angle ).inverse();\n\n        offset.set( 0, 0, offset.length() );\n        offset.applyQuaternion( q );\n\n    }\n\n    camera.position.add( offset );\n\n    function createCamera() {\n\n        var aspect = window.innerWidth / window.innerHeight;\n\n        // Scale the near and far clipping planes along with the overall plot size.\n        var nearClip = 0.01 * midToCorner;\n        var farClip = 100 * midToCorner;\n\n        if ( options.projection === 'orthographic' ) {\n            var camera = new THREE.OrthographicCamera( -1, 1, 1, -1, -farClip, farClip );\n            updateCameraAspect( camera, aspect );\n            return camera;\n        }\n\n        return new THREE.PerspectiveCamera( 45, aspect, nearClip, farClip );\n\n    }\n\n    function updateCameraAspect( camera, aspect ) {\n\n        if ( camera.isPerspectiveCamera ) {\n            camera.aspect = aspect;\n        } else if ( camera.isOrthographicCamera ) {\n            // Fit the camera frustum to the bounding box's diagonal so that the entire plot fits\n            // within at the default zoom level and camera position.\n            if ( aspect > 1 ) { // Wide window\n                camera.top = midToCorner;\n                camera.right = midToCorner * aspect;\n            } else { // Tall or square window\n                camera.top = midToCorner / aspect;\n                camera.right = midToCorner;\n            }\n            camera.bottom = -camera.top;\n            camera.left = -camera.right;\n        }\n\n        camera.updateProjectionMatrix();\n\n    }\n\n    var lights = [{\"x\":-5, \"y\":3, \"z\":0, \"color\":\"#7f7f7f\", \"parent\":\"camera\"}];\n    for ( var i=0 ; i < lights.length ; i++ ) {\n        var light = new THREE.DirectionalLight( lights[i].color, 1 );\n        light.position.set( a[0]*lights[i].x, a[1]*lights[i].y, a[2]*lights[i].z );\n        if ( lights[i].parent === 'camera' ) {\n            light.target.position.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n            scene.add( light.target );\n            camera.add( light );\n        } else scene.add( light );\n    }\n    scene.add( camera );\n\n    var ambient = {\"color\":\"#7f7f7f\"};\n    scene.add( new THREE.AmbientLight( ambient.color, 1 ) );\n\n    var controls = new THREE.OrbitControls( camera, renderer.domElement );\n    controls.target.set( a[0]*xMid, a[1]*yMid, a[2]*zMid );\n    controls.addEventListener( 'change', function() { if ( !animate ) render(); } );\n\n    window.addEventListener( 'resize', function() {\n\n        renderer.setSize( window.innerWidth, window.innerHeight );\n        updateCameraAspect( camera, window.innerWidth / window.innerHeight );\n        if ( window.rescaleFatLines ) rescaleFatLines();\n        if ( !animate ) render();\n\n    } );\n\n    var texts = [];\n    for ( var i=0 ; i < texts.length ; i++ ) addText( texts[i] );\n\n    function addText( json ) {\n        var sprite = addLabel( json.text, a[0]*json.x, a[1]*json.y, a[2]*json.z, json );\n        sprite.userData = json;\n    }\n\n    var points = [];\n    for ( var i=0 ; i < points.length ; i++ ) addPoint( points[i] );\n\n    function addPoint( json ) {\n\n        var geometry = new THREE.Geometry();\n        var v = json.point;\n        geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n\n        var canvas = document.createElement( 'canvas' );\n        canvas.width = 128;\n        canvas.height = 128;\n\n        var context = canvas.getContext( '2d' );\n        context.arc( 64, 64, 64, 0, 2 * Math.PI );\n        context.fillStyle = json.color;\n        context.fill();\n\n        var texture = new THREE.Texture( canvas );\n        texture.needsUpdate = true;\n\n        var transparent = json.opacity < 1 ? true : false;\n        var size = camera.isOrthographicCamera ? json.size : json.size/100;\n        var material = new THREE.PointsMaterial( { size: size, map: texture,\n                                                   transparent: transparent, opacity: json.opacity,\n                                                   alphaTest: .1 } );\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var mesh = new THREE.Points( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    var lines = [];\n    for ( var i=0 ; i < lines.length ; i++ ) addLine( lines[i] );\n\n    function addLine( json ) {\n\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.points.length ; i++ ) {\n            var v = json.points[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v[0], a[1]*v[1], a[2]*v[2] ) );\n        }\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var transparent = json.opacity < 1 ? true : false;\n        var materialOptions = { color: json.color, linewidth: json.linewidth,\n                                transparent: transparent, opacity: json.opacity };\n\n        var mesh;\n        if ( json.linewidth > 1 && window.createFatLineStrip ) {\n            mesh = createFatLineStrip( geometry, materialOptions );\n        } else {\n            var material = new THREE.LineBasicMaterial( materialOptions );\n            mesh = new THREE.Line( geometry, material );\n        }\n\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    var surfaces = [{\"vertices\": [{\"x\": -1.0, \"y\": -1.0, \"z\": 0.0}, {\"x\": -1.0, \"y\": -0.9487179487179487, \"z\": 0.09993425378040766}, {\"x\": -0.9487179487179487, \"y\": -0.9487179487179487, \"z\": 0.0}, {\"x\": -0.9487179487179487, \"y\": -1.0, \"z\": -0.09993425378040766}, {\"x\": -1.0, \"y\": -0.8974358974358974, \"z\": 0.19460880999342556}, {\"x\": -0.9487179487179487, \"y\": -0.8974358974358974, \"z\": 0.0946745562130179}, {\"x\": -1.0, \"y\": -0.846153846153846, \"z\": 0.2840236686390535}, {\"x\": -0.9487179487179487, \"y\": -0.846153846153846, \"z\": 0.18408941485864583}, {\"x\": -1.0, \"y\": -0.7948717948717947, \"z\": 0.36817882971729154}, {\"x\": -0.9487179487179487, \"y\": -0.7948717948717947, \"z\": 0.2682445759368839}, {\"x\": -1.0, \"y\": -0.7435897435897434, \"z\": 0.44707429322813963}, {\"x\": -0.9487179487179487, \"y\": -0.7435897435897434, \"z\": 0.347140039447732}, {\"x\": -1.0, \"y\": -0.6923076923076921, \"z\": 0.520710059171598}, {\"x\": -0.9487179487179487, \"y\": -0.6923076923076921, \"z\": 0.4207758053911903}, {\"x\": -1.0, \"y\": -0.6410256410256407, \"z\": 0.5890861275476664}, {\"x\": -0.9487179487179487, \"y\": -0.6410256410256407, \"z\": 0.4891518737672587}, {\"x\": -1.0, \"y\": -0.5897435897435894, \"z\": 0.6522024983563448}, {\"x\": -0.9487179487179487, \"y\": -0.5897435897435894, \"z\": 0.5522682445759373}, {\"x\": -1.0, \"y\": -0.5384615384615381, \"z\": 0.7100591715976335}, {\"x\": -0.9487179487179487, \"y\": -0.5384615384615381, \"z\": 0.6101249178172259}, {\"x\": -1.0, \"y\": -0.48717948717948684, \"z\": 0.7626561472715322}, {\"x\": -0.9487179487179487, \"y\": -0.48717948717948684, \"z\": 0.6627218934911245}, {\"x\": -1.0, \"y\": -0.43589743589743557, \"z\": 0.8099934253780411}, {\"x\": -0.9487179487179487, \"y\": -0.43589743589743557, \"z\": 0.7100591715976334}, {\"x\": -1.0, \"y\": -0.3846153846153843, \"z\": 0.85207100591716}, {\"x\": -0.9487179487179487, \"y\": -0.3846153846153843, \"z\": 0.7521367521367524}, {\"x\": -1.0, \"y\": -0.33333333333333304, \"z\": 0.8888888888888891}, {\"x\": -0.9487179487179487, \"y\": -0.33333333333333304, \"z\": 0.7889546351084814}, {\"x\": -1.0, \"y\": -0.28205128205128177, \"z\": 0.9204470742932283}, {\"x\": -0.9487179487179487, \"y\": -0.28205128205128177, \"z\": 0.8205128205128206}, {\"x\": -1.0, \"y\": -0.2307692307692305, \"z\": 0.9467455621301777}, {\"x\": -0.9487179487179487, \"y\": -0.2307692307692305, \"z\": 0.84681130834977}, {\"x\": -1.0, \"y\": -0.17948717948717924, \"z\": 0.9677843523997371}, {\"x\": -0.9487179487179487, \"y\": -0.17948717948717924, \"z\": 0.8678500986193295}, {\"x\": -1.0, \"y\": -0.12820512820512797, \"z\": 0.9835634451019067}, {\"x\": -0.9487179487179487, \"y\": -0.12820512820512797, \"z\": 0.8836291913214991}, {\"x\": -1.0, \"y\": -0.07692307692307669, \"z\": 0.9940828402366865}, {\"x\": -0.9487179487179487, \"y\": -0.07692307692307669, \"z\": 0.8941485864562788}, {\"x\": -1.0, \"y\": -0.02564102564102541, \"z\": 0.9993425378040762}, {\"x\": -0.9487179487179487, \"y\": -0.02564102564102541, \"z\": 0.8994082840236686}, {\"x\": -1.0, \"y\": 0.02564102564102587, \"z\": 0.9993425378040762}, {\"x\": -0.9487179487179487, \"y\": 0.02564102564102587, \"z\": 0.8994082840236686}, {\"x\": -1.0, \"y\": 0.07692307692307715, \"z\": 0.9940828402366864}, {\"x\": -0.9487179487179487, \"y\": 0.07692307692307715, \"z\": 0.8941485864562787}, {\"x\": -1.0, \"y\": 0.12820512820512842, \"z\": 0.9835634451019066}, {\"x\": -0.9487179487179487, \"y\": 0.12820512820512842, \"z\": 0.883629191321499}, {\"x\": -1.0, \"y\": 0.17948717948717968, \"z\": 0.9677843523997369}, {\"x\": -0.9487179487179487, \"y\": 0.17948717948717968, \"z\": 0.8678500986193293}, {\"x\": -1.0, \"y\": 0.23076923076923095, \"z\": 0.9467455621301775}, {\"x\": -0.9487179487179487, \"y\": 0.23076923076923095, \"z\": 0.8468113083497698}, {\"x\": -1.0, \"y\": 0.2820512820512822, \"z\": 0.920447074293228}, {\"x\": -0.9487179487179487, \"y\": 0.2820512820512822, \"z\": 0.8205128205128204}, {\"x\": -1.0, \"y\": 0.3333333333333335, \"z\": 0.8888888888888888}, {\"x\": -0.9487179487179487, \"y\": 0.3333333333333335, \"z\": 0.7889546351084811}, {\"x\": -1.0, \"y\": 0.38461538461538475, \"z\": 0.8520710059171597}, {\"x\": -0.9487179487179487, \"y\": 0.38461538461538475, \"z\": 0.752136752136752}, {\"x\": -1.0, \"y\": 0.435897435897436, \"z\": 0.8099934253780406}, {\"x\": -0.9487179487179487, \"y\": 0.435897435897436, \"z\": 0.710059171597633}, {\"x\": -1.0, \"y\": 0.4871794871794873, \"z\": 0.7626561472715317}, {\"x\": -0.9487179487179487, \"y\": 0.4871794871794873, \"z\": 0.6627218934911241}, {\"x\": -1.0, \"y\": 0.5384615384615385, \"z\": 0.710059171597633}, {\"x\": -0.9487179487179487, \"y\": 0.5384615384615385, \"z\": 0.6101249178172254}, {\"x\": -1.0, \"y\": 0.5897435897435899, \"z\": 0.6522024983563444}, {\"x\": -0.9487179487179487, \"y\": 0.5897435897435899, \"z\": 0.5522682445759367}, {\"x\": -1.0, \"y\": 0.6410256410256412, \"z\": 0.5890861275476658}, {\"x\": -0.9487179487179487, \"y\": 0.6410256410256412, \"z\": 0.48915187376725816}, {\"x\": -1.0, \"y\": 0.6923076923076925, \"z\": 0.5207100591715974}, {\"x\": -0.9487179487179487, \"y\": 0.6923076923076925, \"z\": 0.4207758053911897}, {\"x\": -1.0, \"y\": 0.7435897435897438, \"z\": 0.44707429322813896}, {\"x\": -0.9487179487179487, \"y\": 0.7435897435897438, \"z\": 0.3471400394477313}, {\"x\": -1.0, \"y\": 0.7948717948717952, \"z\": 0.36817882971729077}, {\"x\": -0.9487179487179487, \"y\": 0.7948717948717952, \"z\": 0.2682445759368831}, {\"x\": -1.0, \"y\": 0.8461538461538465, \"z\": 0.2840236686390527}, {\"x\": -0.9487179487179487, \"y\": 0.8461538461538465, \"z\": 0.18408941485864505}, {\"x\": -1.0, \"y\": 0.8974358974358978, \"z\": 0.19460880999342467}, {\"x\": -0.9487179487179487, \"y\": 0.8974358974358978, \"z\": 0.09467455621301701}, {\"x\": -1.0, \"y\": 0.9487179487179491, \"z\": 0.09993425378040688}, {\"x\": -0.9487179487179487, \"y\": 0.9487179487179491, \"z\": -7.771561172376096e-16}, {\"x\": -1.0, \"y\": 1.0, \"z\": 0.0}, {\"x\": -0.9487179487179487, \"y\": 1.0, \"z\": -0.09993425378040766}, {\"x\": -0.8974358974358974, \"y\": -0.9487179487179487, \"z\": -0.0946745562130179}, {\"x\": -0.8974358974358974, \"y\": -1.0, \"z\": -0.19460880999342556}, {\"x\": -0.8974358974358974, \"y\": -0.8974358974358974, \"z\": 0.0}, {\"x\": -0.8974358974358974, \"y\": -0.846153846153846, \"z\": 0.08941485864562793}, {\"x\": -0.8974358974358974, \"y\": -0.7948717948717947, \"z\": 0.173570019723866}, {\"x\": -0.8974358974358974, \"y\": -0.7435897435897434, \"z\": 0.25246548323471407}, {\"x\": -0.8974358974358974, \"y\": -0.6923076923076921, \"z\": 0.3261012491781724}, {\"x\": -0.8974358974358974, \"y\": -0.6410256410256407, \"z\": 0.3944773175542408}, {\"x\": -0.8974358974358974, \"y\": -0.5897435897435894, \"z\": 0.4575936883629193}, {\"x\": -0.8974358974358974, \"y\": -0.5384615384615381, \"z\": 0.515450361604208}, {\"x\": -0.8974358974358974, \"y\": -0.48717948717948684, \"z\": 0.5680473372781066}, {\"x\": -0.8974358974358974, \"y\": -0.43589743589743557, \"z\": 0.6153846153846155}, {\"x\": -0.8974358974358974, \"y\": -0.3846153846153843, \"z\": 0.6574621959237344}, {\"x\": -0.8974358974358974, \"y\": -0.33333333333333304, \"z\": 0.6942800788954635}, {\"x\": -0.8974358974358974, \"y\": -0.28205128205128177, \"z\": 0.7258382642998027}, {\"x\": -0.8974358974358974, \"y\": -0.2307692307692305, \"z\": 0.7521367521367521}, {\"x\": -0.8974358974358974, \"y\": -0.17948717948717924, \"z\": 0.7731755424063116}, {\"x\": -0.8974358974358974, \"y\": -0.12820512820512797, \"z\": 0.7889546351084812}, {\"x\": -0.8974358974358974, \"y\": -0.07692307692307669, \"z\": 0.7994740302432609}, {\"x\": -0.8974358974358974, \"y\": -0.02564102564102541, \"z\": 0.8047337278106507}, {\"x\": -0.8974358974358974, \"y\": 0.02564102564102587, \"z\": 0.8047337278106507}, {\"x\": -0.8974358974358974, \"y\": 0.07692307692307715, \"z\": 0.7994740302432608}, {\"x\": -0.8974358974358974, \"y\": 0.12820512820512842, \"z\": 0.7889546351084811}, {\"x\": -0.8974358974358974, \"y\": 0.17948717948717968, \"z\": 0.7731755424063114}, {\"x\": -0.8974358974358974, \"y\": 0.23076923076923095, \"z\": 0.7521367521367519}, {\"x\": -0.8974358974358974, \"y\": 0.2820512820512822, \"z\": 0.7258382642998025}, {\"x\": -0.8974358974358974, \"y\": 0.3333333333333335, \"z\": 0.6942800788954633}, {\"x\": -0.8974358974358974, \"y\": 0.38461538461538475, \"z\": 0.6574621959237341}, {\"x\": -0.8974358974358974, \"y\": 0.435897435897436, \"z\": 0.6153846153846151}, {\"x\": -0.8974358974358974, \"y\": 0.4871794871794873, \"z\": 0.5680473372781062}, {\"x\": -0.8974358974358974, \"y\": 0.5384615384615385, \"z\": 0.5154503616042074}, {\"x\": -0.8974358974358974, \"y\": 0.5897435897435899, \"z\": 0.4575936883629188}, {\"x\": -0.8974358974358974, \"y\": 0.6410256410256412, \"z\": 0.39447731755424026}, {\"x\": -0.8974358974358974, \"y\": 0.6923076923076925, \"z\": 0.3261012491781718}, {\"x\": -0.8974358974358974, \"y\": 0.7435897435897438, \"z\": 0.2524654832347134}, {\"x\": -0.8974358974358974, \"y\": 0.7948717948717952, \"z\": 0.1735700197238652}, {\"x\": -0.8974358974358974, \"y\": 0.8461538461538465, \"z\": 0.08941485864562715}, {\"x\": -0.8974358974358974, \"y\": 0.8974358974358978, \"z\": -8.881784197001252e-16}, {\"x\": -0.8974358974358974, \"y\": 0.9487179487179491, \"z\": -0.09467455621301868}, {\"x\": -0.8974358974358974, \"y\": 1.0, \"z\": -0.19460880999342556}, {\"x\": -0.846153846153846, \"y\": -0.9487179487179487, \"z\": -0.18408941485864583}, {\"x\": -0.846153846153846, \"y\": -1.0, \"z\": -0.2840236686390535}, {\"x\": -0.846153846153846, \"y\": -0.8974358974358974, \"z\": -0.08941485864562793}, {\"x\": -0.846153846153846, \"y\": -0.846153846153846, \"z\": 0.0}, {\"x\": -0.846153846153846, \"y\": -0.7948717948717947, \"z\": 0.08415516107823806}, {\"x\": -0.846153846153846, \"y\": -0.7435897435897434, \"z\": 0.16305062458908615}, {\"x\": -0.846153846153846, \"y\": -0.6923076923076921, \"z\": 0.23668639053254448}, {\"x\": -0.846153846153846, \"y\": -0.6410256410256407, \"z\": 0.3050624589086129}, {\"x\": -0.846153846153846, \"y\": -0.5897435897435894, \"z\": 0.3681788297172914}, {\"x\": -0.846153846153846, \"y\": -0.5384615384615381, \"z\": 0.42603550295858006}, {\"x\": -0.846153846153846, \"y\": -0.48717948717948684, \"z\": 0.4786324786324787}, {\"x\": -0.846153846153846, \"y\": -0.43589743589743557, \"z\": 0.5259697567389876}, {\"x\": -0.846153846153846, \"y\": -0.3846153846153843, \"z\": 0.5680473372781065}, {\"x\": -0.846153846153846, \"y\": -0.33333333333333304, \"z\": 0.6048652202498356}, {\"x\": -0.846153846153846, \"y\": -0.28205128205128177, \"z\": 0.6364234056541748}, {\"x\": -0.846153846153846, \"y\": -0.2307692307692305, \"z\": 0.6627218934911242}, {\"x\": -0.846153846153846, \"y\": -0.17948717948717924, \"z\": 0.6837606837606837}, {\"x\": -0.846153846153846, \"y\": -0.12820512820512797, \"z\": 0.6995397764628533}, {\"x\": -0.846153846153846, \"y\": -0.07692307692307669, \"z\": 0.710059171597633}, {\"x\": -0.846153846153846, \"y\": -0.02564102564102541, \"z\": 0.7153188691650227}, {\"x\": -0.846153846153846, \"y\": 0.02564102564102587, \"z\": 0.7153188691650227}, {\"x\": -0.846153846153846, \"y\": 0.07692307692307715, \"z\": 0.7100591715976329}, {\"x\": -0.846153846153846, \"y\": 0.12820512820512842, \"z\": 0.6995397764628531}, {\"x\": -0.846153846153846, \"y\": 0.17948717948717968, \"z\": 0.6837606837606834}, {\"x\": -0.846153846153846, \"y\": 0.23076923076923095, \"z\": 0.662721893491124}, {\"x\": -0.846153846153846, \"y\": 0.2820512820512822, \"z\": 0.6364234056541745}, {\"x\": -0.846153846153846, \"y\": 0.3333333333333335, \"z\": 0.6048652202498352}, {\"x\": -0.846153846153846, \"y\": 0.38461538461538475, \"z\": 0.5680473372781062}, {\"x\": -0.846153846153846, \"y\": 0.435897435897436, \"z\": 0.5259697567389872}, {\"x\": -0.846153846153846, \"y\": 0.4871794871794873, \"z\": 0.47863247863247826}, {\"x\": -0.846153846153846, \"y\": 0.5384615384615385, \"z\": 0.42603550295857956}, {\"x\": -0.846153846153846, \"y\": 0.5897435897435899, \"z\": 0.3681788297172909}, {\"x\": -0.846153846153846, \"y\": 0.6410256410256412, \"z\": 0.30506245890861233}, {\"x\": -0.846153846153846, \"y\": 0.6923076923076925, \"z\": 0.23668639053254387}, {\"x\": -0.846153846153846, \"y\": 0.7435897435897438, \"z\": 0.16305062458908548}, {\"x\": -0.846153846153846, \"y\": 0.7948717948717952, \"z\": 0.08415516107823728}, {\"x\": -0.846153846153846, \"y\": 0.8461538461538465, \"z\": -7.771561172376096e-16}, {\"x\": -0.846153846153846, \"y\": 0.8974358974358978, \"z\": -0.08941485864562881}, {\"x\": -0.846153846153846, \"y\": 0.9487179487179491, \"z\": -0.1840894148586466}, {\"x\": -0.846153846153846, \"y\": 1.0, \"z\": -0.2840236686390535}, {\"x\": -0.7948717948717947, \"y\": -0.9487179487179487, \"z\": -0.2682445759368839}, {\"x\": -0.7948717948717947, \"y\": -1.0, \"z\": -0.36817882971729154}, {\"x\": -0.7948717948717947, \"y\": -0.8974358974358974, \"z\": -0.173570019723866}, {\"x\": -0.7948717948717947, \"y\": -0.846153846153846, \"z\": -0.08415516107823806}, {\"x\": -0.7948717948717947, \"y\": -0.7948717948717947, \"z\": 0.0}, {\"x\": -0.7948717948717947, \"y\": -0.7435897435897434, \"z\": 0.07889546351084809}, {\"x\": -0.7948717948717947, \"y\": -0.6923076923076921, \"z\": 0.15253122945430642}, {\"x\": -0.7948717948717947, \"y\": -0.6410256410256407, \"z\": 0.22090729783037483}, {\"x\": -0.7948717948717947, \"y\": -0.5897435897435894, \"z\": 0.2840236686390533}, {\"x\": -0.7948717948717947, \"y\": -0.5384615384615381, \"z\": 0.341880341880342}, {\"x\": -0.7948717948717947, \"y\": -0.48717948717948684, \"z\": 0.39447731755424065}, {\"x\": -0.7948717948717947, \"y\": -0.43589743589743557, \"z\": 0.44181459566074954}, {\"x\": -0.7948717948717947, \"y\": -0.3846153846153843, \"z\": 0.48389217619986846}, {\"x\": -0.7948717948717947, \"y\": -0.33333333333333304, \"z\": 0.5207100591715975}, {\"x\": -0.7948717948717947, \"y\": -0.28205128205128177, \"z\": 0.5522682445759367}, {\"x\": -0.7948717948717947, \"y\": -0.2307692307692305, \"z\": 0.5785667324128861}, {\"x\": -0.7948717948717947, \"y\": -0.17948717948717924, \"z\": 0.5996055226824456}, {\"x\": -0.7948717948717947, \"y\": -0.12820512820512797, \"z\": 0.6153846153846152}, {\"x\": -0.7948717948717947, \"y\": -0.07692307692307669, \"z\": 0.6259040105193949}, {\"x\": -0.7948717948717947, \"y\": -0.02564102564102541, \"z\": 0.6311637080867847}, {\"x\": -0.7948717948717947, \"y\": 0.02564102564102587, \"z\": 0.6311637080867847}, {\"x\": -0.7948717948717947, \"y\": 0.07692307692307715, \"z\": 0.6259040105193948}, {\"x\": -0.7948717948717947, \"y\": 0.12820512820512842, \"z\": 0.6153846153846151}, {\"x\": -0.7948717948717947, \"y\": 0.17948717948717968, \"z\": 0.5996055226824454}, {\"x\": -0.7948717948717947, \"y\": 0.23076923076923095, \"z\": 0.5785667324128859}, {\"x\": -0.7948717948717947, \"y\": 0.2820512820512822, \"z\": 0.5522682445759365}, {\"x\": -0.7948717948717947, \"y\": 0.3333333333333335, \"z\": 0.5207100591715972}, {\"x\": -0.7948717948717947, \"y\": 0.38461538461538475, \"z\": 0.48389217619986813}, {\"x\": -0.7948717948717947, \"y\": 0.435897435897436, \"z\": 0.4418145956607491}, {\"x\": -0.7948717948717947, \"y\": 0.4871794871794873, \"z\": 0.3944773175542402}, {\"x\": -0.7948717948717947, \"y\": 0.5384615384615385, \"z\": 0.3418803418803415}, {\"x\": -0.7948717948717947, \"y\": 0.5897435897435899, \"z\": 0.2840236686390528}, {\"x\": -0.7948717948717947, \"y\": 0.6410256410256412, \"z\": 0.22090729783037427}, {\"x\": -0.7948717948717947, \"y\": 0.6923076923076925, \"z\": 0.1525312294543058}, {\"x\": -0.7948717948717947, \"y\": 0.7435897435897438, \"z\": 0.07889546351084742}, {\"x\": -0.7948717948717947, \"y\": 0.7948717948717952, \"z\": -7.771561172376096e-16}, {\"x\": -0.7948717948717947, \"y\": 0.8461538461538465, \"z\": -0.08415516107823884}, {\"x\": -0.7948717948717947, \"y\": 0.8974358974358978, \"z\": -0.17357001972386688}, {\"x\": -0.7948717948717947, \"y\": 0.9487179487179491, \"z\": -0.26824457593688467}, {\"x\": -0.7948717948717947, \"y\": 1.0, \"z\": -0.36817882971729154}, {\"x\": -0.7435897435897434, \"y\": -0.9487179487179487, \"z\": -0.347140039447732}, {\"x\": -0.7435897435897434, \"y\": -1.0, \"z\": -0.44707429322813963}, {\"x\": -0.7435897435897434, \"y\": -0.8974358974358974, \"z\": -0.25246548323471407}, {\"x\": -0.7435897435897434, \"y\": -0.846153846153846, \"z\": -0.16305062458908615}, {\"x\": -0.7435897435897434, \"y\": -0.7948717948717947, \"z\": -0.07889546351084809}, {\"x\": -0.7435897435897434, \"y\": -0.7435897435897434, \"z\": 0.0}, {\"x\": -0.7435897435897434, \"y\": -0.6923076923076921, \"z\": 0.07363576594345833}, {\"x\": -0.7435897435897434, \"y\": -0.6410256410256407, \"z\": 0.14201183431952674}, {\"x\": -0.7435897435897434, \"y\": -0.5897435897435894, \"z\": 0.20512820512820523}, {\"x\": -0.7435897435897434, \"y\": -0.5384615384615381, \"z\": 0.2629848783694939}, {\"x\": -0.7435897435897434, \"y\": -0.48717948717948684, \"z\": 0.31558185404339256}, {\"x\": -0.7435897435897434, \"y\": -0.43589743589743557, \"z\": 0.36291913214990146}, {\"x\": -0.7435897435897434, \"y\": -0.3846153846153843, \"z\": 0.4049967126890204}, {\"x\": -0.7435897435897434, \"y\": -0.33333333333333304, \"z\": 0.44181459566074943}, {\"x\": -0.7435897435897434, \"y\": -0.28205128205128177, \"z\": 0.4733727810650887}, {\"x\": -0.7435897435897434, \"y\": -0.2307692307692305, \"z\": 0.499671268902038}, {\"x\": -0.7435897435897434, \"y\": -0.17948717948717924, \"z\": 0.5207100591715975}, {\"x\": -0.7435897435897434, \"y\": -0.12820512820512797, \"z\": 0.5364891518737671}, {\"x\": -0.7435897435897434, \"y\": -0.07692307692307669, \"z\": 0.5470085470085468}, {\"x\": -0.7435897435897434, \"y\": -0.02564102564102541, \"z\": 0.5522682445759366}, {\"x\": -0.7435897435897434, \"y\": 0.02564102564102587, \"z\": 0.5522682445759366}, {\"x\": -0.7435897435897434, \"y\": 0.07692307692307715, \"z\": 0.5470085470085467}, {\"x\": -0.7435897435897434, \"y\": 0.12820512820512842, \"z\": 0.536489151873767}, {\"x\": -0.7435897435897434, \"y\": 0.17948717948717968, \"z\": 0.5207100591715973}, {\"x\": -0.7435897435897434, \"y\": 0.23076923076923095, \"z\": 0.4996712689020378}, {\"x\": -0.7435897435897434, \"y\": 0.2820512820512822, \"z\": 0.4733727810650884}, {\"x\": -0.7435897435897434, \"y\": 0.3333333333333335, \"z\": 0.44181459566074915}, {\"x\": -0.7435897435897434, \"y\": 0.38461538461538475, \"z\": 0.40499671268902004}, {\"x\": -0.7435897435897434, \"y\": 0.435897435897436, \"z\": 0.362919132149901}, {\"x\": -0.7435897435897434, \"y\": 0.4871794871794873, \"z\": 0.3155818540433921}, {\"x\": -0.7435897435897434, \"y\": 0.5384615384615385, \"z\": 0.2629848783694934}, {\"x\": -0.7435897435897434, \"y\": 0.5897435897435899, \"z\": 0.20512820512820473}, {\"x\": -0.7435897435897434, \"y\": 0.6410256410256412, \"z\": 0.1420118343195262}, {\"x\": -0.7435897435897434, \"y\": 0.6923076923076925, \"z\": 0.07363576594345772}, {\"x\": -0.7435897435897434, \"y\": 0.7435897435897438, \"z\": -6.661338147750939e-16}, {\"x\": -0.7435897435897434, \"y\": 0.7948717948717952, \"z\": -0.07889546351084886}, {\"x\": -0.7435897435897434, \"y\": 0.8461538461538465, \"z\": -0.16305062458908692}, {\"x\": -0.7435897435897434, \"y\": 0.8974358974358978, \"z\": -0.25246548323471496}, {\"x\": -0.7435897435897434, \"y\": 0.9487179487179491, \"z\": -0.34714003944773275}, {\"x\": -0.7435897435897434, \"y\": 1.0, \"z\": -0.44707429322813963}, {\"x\": -0.6923076923076921, \"y\": -0.9487179487179487, \"z\": -0.4207758053911903}, {\"x\": -0.6923076923076921, \"y\": -1.0, \"z\": -0.520710059171598}, {\"x\": -0.6923076923076921, \"y\": -0.8974358974358974, \"z\": -0.3261012491781724}, {\"x\": -0.6923076923076921, \"y\": -0.846153846153846, \"z\": -0.23668639053254448}, {\"x\": -0.6923076923076921, \"y\": -0.7948717948717947, \"z\": -0.15253122945430642}, {\"x\": -0.6923076923076921, \"y\": -0.7435897435897434, \"z\": -0.07363576594345833}, {\"x\": -0.6923076923076921, \"y\": -0.6923076923076921, \"z\": 0.0}, {\"x\": -0.6923076923076921, \"y\": -0.6410256410256407, \"z\": 0.06837606837606841}, {\"x\": -0.6923076923076921, \"y\": -0.5897435897435894, \"z\": 0.1314924391847469}, {\"x\": -0.6923076923076921, \"y\": -0.5384615384615381, \"z\": 0.18934911242603558}, {\"x\": -0.6923076923076921, \"y\": -0.48717948717948684, \"z\": 0.24194608809993426}, {\"x\": -0.6923076923076921, \"y\": -0.43589743589743557, \"z\": 0.2892833662064431}, {\"x\": -0.6923076923076921, \"y\": -0.3846153846153843, \"z\": 0.33136094674556205}, {\"x\": -0.6923076923076921, \"y\": -0.33333333333333304, \"z\": 0.3681788297172911}, {\"x\": -0.6923076923076921, \"y\": -0.28205128205128177, \"z\": 0.39973701512163035}, {\"x\": -0.6923076923076921, \"y\": -0.2307692307692305, \"z\": 0.42603550295857967}, {\"x\": -0.6923076923076921, \"y\": -0.17948717948717924, \"z\": 0.44707429322813913}, {\"x\": -0.6923076923076921, \"y\": -0.12820512820512797, \"z\": 0.4628533859303087}, {\"x\": -0.6923076923076921, \"y\": -0.07692307692307669, \"z\": 0.47337278106508845}, {\"x\": -0.6923076923076921, \"y\": -0.02564102564102541, \"z\": 0.4786324786324783}, {\"x\": -0.6923076923076921, \"y\": 0.02564102564102587, \"z\": 0.4786324786324783}, {\"x\": -0.6923076923076921, \"y\": 0.07692307692307715, \"z\": 0.4733727810650884}, {\"x\": -0.6923076923076921, \"y\": 0.12820512820512842, \"z\": 0.4628533859303086}, {\"x\": -0.6923076923076921, \"y\": 0.17948717948717968, \"z\": 0.44707429322813896}, {\"x\": -0.6923076923076921, \"y\": 0.23076923076923095, \"z\": 0.42603550295857945}, {\"x\": -0.6923076923076921, \"y\": 0.2820512820512822, \"z\": 0.39973701512163007}, {\"x\": -0.6923076923076921, \"y\": 0.3333333333333335, \"z\": 0.3681788297172908}, {\"x\": -0.6923076923076921, \"y\": 0.38461538461538475, \"z\": 0.3313609467455617}, {\"x\": -0.6923076923076921, \"y\": 0.435897435897436, \"z\": 0.2892833662064427}, {\"x\": -0.6923076923076921, \"y\": 0.4871794871794873, \"z\": 0.24194608809993381}, {\"x\": -0.6923076923076921, \"y\": 0.5384615384615385, \"z\": 0.18934911242603508}, {\"x\": -0.6923076923076921, \"y\": 0.5897435897435899, \"z\": 0.1314924391847464}, {\"x\": -0.6923076923076921, \"y\": 0.6410256410256412, \"z\": 0.06837606837606786}, {\"x\": -0.6923076923076921, \"y\": 0.6923076923076925, \"z\": -6.106226635438361e-16}, {\"x\": -0.6923076923076921, \"y\": 0.7435897435897438, \"z\": -0.073635765943459}, {\"x\": -0.6923076923076921, \"y\": 0.7948717948717952, \"z\": -0.1525312294543072}, {\"x\": -0.6923076923076921, \"y\": 0.8461538461538465, \"z\": -0.23668639053254525}, {\"x\": -0.6923076923076921, \"y\": 0.8974358974358978, \"z\": -0.3261012491781733}, {\"x\": -0.6923076923076921, \"y\": 0.9487179487179491, \"z\": -0.4207758053911911}, {\"x\": -0.6923076923076921, \"y\": 1.0, \"z\": -0.520710059171598}, {\"x\": -0.6410256410256407, \"y\": -0.9487179487179487, \"z\": -0.4891518737672587}, {\"x\": -0.6410256410256407, \"y\": -1.0, \"z\": -0.5890861275476664}, {\"x\": -0.6410256410256407, \"y\": -0.8974358974358974, \"z\": -0.3944773175542408}, {\"x\": -0.6410256410256407, \"y\": -0.846153846153846, \"z\": -0.3050624589086129}, {\"x\": -0.6410256410256407, \"y\": -0.7948717948717947, \"z\": -0.22090729783037483}, {\"x\": -0.6410256410256407, \"y\": -0.7435897435897434, \"z\": -0.14201183431952674}, {\"x\": -0.6410256410256407, \"y\": -0.6923076923076921, \"z\": -0.06837606837606841}, {\"x\": -0.6410256410256407, \"y\": -0.6410256410256407, \"z\": 0.0}, {\"x\": -0.6410256410256407, \"y\": -0.5897435897435894, \"z\": 0.06311637080867849}, {\"x\": -0.6410256410256407, \"y\": -0.5384615384615381, \"z\": 0.12097304404996717}, {\"x\": -0.6410256410256407, \"y\": -0.48717948717948684, \"z\": 0.17357001972386585}, {\"x\": -0.6410256410256407, \"y\": -0.43589743589743557, \"z\": 0.2209072978303747}, {\"x\": -0.6410256410256407, \"y\": -0.3846153846153843, \"z\": 0.26298487836949364}, {\"x\": -0.6410256410256407, \"y\": -0.33333333333333304, \"z\": 0.29980276134122275}, {\"x\": -0.6410256410256407, \"y\": -0.28205128205128177, \"z\": 0.33136094674556194}, {\"x\": -0.6410256410256407, \"y\": -0.2307692307692305, \"z\": 0.35765943458251126}, {\"x\": -0.6410256410256407, \"y\": -0.17948717948717924, \"z\": 0.3786982248520707}, {\"x\": -0.6410256410256407, \"y\": -0.12820512820512797, \"z\": 0.3944773175542403}, {\"x\": -0.6410256410256407, \"y\": -0.07692307692307669, \"z\": 0.40499671268902004}, {\"x\": -0.6410256410256407, \"y\": -0.02564102564102541, \"z\": 0.4102564102564099}, {\"x\": -0.6410256410256407, \"y\": 0.02564102564102587, \"z\": 0.4102564102564099}, {\"x\": -0.6410256410256407, \"y\": 0.07692307692307715, \"z\": 0.40499671268902}, {\"x\": -0.6410256410256407, \"y\": 0.12820512820512842, \"z\": 0.3944773175542402}, {\"x\": -0.6410256410256407, \"y\": 0.17948717948717968, \"z\": 0.37869822485207055}, {\"x\": -0.6410256410256407, \"y\": 0.23076923076923095, \"z\": 0.35765943458251104}, {\"x\": -0.6410256410256407, \"y\": 0.2820512820512822, \"z\": 0.33136094674556166}, {\"x\": -0.6410256410256407, \"y\": 0.3333333333333335, \"z\": 0.2998027613412224}, {\"x\": -0.6410256410256407, \"y\": 0.38461538461538475, \"z\": 0.2629848783694933}, {\"x\": -0.6410256410256407, \"y\": 0.435897435897436, \"z\": 0.2209072978303743}, {\"x\": -0.6410256410256407, \"y\": 0.4871794871794873, \"z\": 0.1735700197238654}, {\"x\": -0.6410256410256407, \"y\": 0.5384615384615385, \"z\": 0.12097304404996667}, {\"x\": -0.6410256410256407, \"y\": 0.5897435897435899, \"z\": 0.06311637080867799}, {\"x\": -0.6410256410256407, \"y\": 0.6410256410256412, \"z\": -5.551115123125783e-16}, {\"x\": -0.6410256410256407, \"y\": 0.6923076923076925, \"z\": -0.06837606837606902}, {\"x\": -0.6410256410256407, \"y\": 0.7435897435897438, \"z\": -0.1420118343195274}, {\"x\": -0.6410256410256407, \"y\": 0.7948717948717952, \"z\": -0.2209072978303756}, {\"x\": -0.6410256410256407, \"y\": 0.8461538461538465, \"z\": -0.30506245890861367}, {\"x\": -0.6410256410256407, \"y\": 0.8974358974358978, \"z\": -0.3944773175542417}, {\"x\": -0.6410256410256407, \"y\": 0.9487179487179491, \"z\": -0.4891518737672595}, {\"x\": -0.6410256410256407, \"y\": 1.0, \"z\": -0.5890861275476664}, {\"x\": -0.5897435897435894, \"y\": -0.9487179487179487, \"z\": -0.5522682445759373}, {\"x\": -0.5897435897435894, \"y\": -1.0, \"z\": -0.6522024983563448}, {\"x\": -0.5897435897435894, \"y\": -0.8974358974358974, \"z\": -0.4575936883629193}, {\"x\": -0.5897435897435894, \"y\": -0.846153846153846, \"z\": -0.3681788297172914}, {\"x\": -0.5897435897435894, \"y\": -0.7948717948717947, \"z\": -0.2840236686390533}, {\"x\": -0.5897435897435894, \"y\": -0.7435897435897434, \"z\": -0.20512820512820523}, {\"x\": -0.5897435897435894, \"y\": -0.6923076923076921, \"z\": -0.1314924391847469}, {\"x\": -0.5897435897435894, \"y\": -0.6410256410256407, \"z\": -0.06311637080867849}, {\"x\": -0.5897435897435894, \"y\": -0.5897435897435894, \"z\": 0.0}, {\"x\": -0.5897435897435894, \"y\": -0.5384615384615381, \"z\": 0.05785667324128868}, {\"x\": -0.5897435897435894, \"y\": -0.48717948717948684, \"z\": 0.11045364891518736}, {\"x\": -0.5897435897435894, \"y\": -0.43589743589743557, \"z\": 0.1577909270216962}, {\"x\": -0.5897435897435894, \"y\": -0.3846153846153843, \"z\": 0.19986850756081515}, {\"x\": -0.5897435897435894, \"y\": -0.33333333333333304, \"z\": 0.23668639053254423}, {\"x\": -0.5897435897435894, \"y\": -0.28205128205128177, \"z\": 0.26824457593688344}, {\"x\": -0.5897435897435894, \"y\": -0.2307692307692305, \"z\": 0.29454306377383277}, {\"x\": -0.5897435897435894, \"y\": -0.17948717948717924, \"z\": 0.31558185404339223}, {\"x\": -0.5897435897435894, \"y\": -0.12820512820512797, \"z\": 0.3313609467455618}, {\"x\": -0.5897435897435894, \"y\": -0.07692307692307669, \"z\": 0.34188034188034155}, {\"x\": -0.5897435897435894, \"y\": -0.02564102564102541, \"z\": 0.3471400394477314}, {\"x\": -0.5897435897435894, \"y\": 0.02564102564102587, \"z\": 0.3471400394477314}, {\"x\": -0.5897435897435894, \"y\": 0.07692307692307715, \"z\": 0.3418803418803415}, {\"x\": -0.5897435897435894, \"y\": 0.12820512820512842, \"z\": 0.3313609467455617}, {\"x\": -0.5897435897435894, \"y\": 0.17948717948717968, \"z\": 0.31558185404339206}, {\"x\": -0.5897435897435894, \"y\": 0.23076923076923095, \"z\": 0.29454306377383255}, {\"x\": -0.5897435897435894, \"y\": 0.2820512820512822, \"z\": 0.26824457593688317}, {\"x\": -0.5897435897435894, \"y\": 0.3333333333333335, \"z\": 0.23668639053254392}, {\"x\": -0.5897435897435894, \"y\": 0.38461538461538475, \"z\": 0.1998685075608148}, {\"x\": -0.5897435897435894, \"y\": 0.435897435897436, \"z\": 0.1577909270216958}, {\"x\": -0.5897435897435894, \"y\": 0.4871794871794873, \"z\": 0.11045364891518691}, {\"x\": -0.5897435897435894, \"y\": 0.5384615384615385, \"z\": 0.05785667324128818}, {\"x\": -0.5897435897435894, \"y\": 0.5897435897435899, \"z\": -4.996003610813204e-16}, {\"x\": -0.5897435897435894, \"y\": 0.6410256410256412, \"z\": -0.06311637080867905}, {\"x\": -0.5897435897435894, \"y\": 0.6923076923076925, \"z\": -0.1314924391847475}, {\"x\": -0.5897435897435894, \"y\": 0.7435897435897438, \"z\": -0.2051282051282059}, {\"x\": -0.5897435897435894, \"y\": 0.7948717948717952, \"z\": -0.2840236686390541}, {\"x\": -0.5897435897435894, \"y\": 0.8461538461538465, \"z\": -0.36817882971729216}, {\"x\": -0.5897435897435894, \"y\": 0.8974358974358978, \"z\": -0.4575936883629202}, {\"x\": -0.5897435897435894, \"y\": 0.9487179487179491, \"z\": -0.5522682445759379}, {\"x\": -0.5897435897435894, \"y\": 1.0, \"z\": -0.6522024983563448}, {\"x\": -0.5384615384615381, \"y\": -0.9487179487179487, \"z\": -0.6101249178172259}, {\"x\": -0.5384615384615381, \"y\": -1.0, \"z\": -0.7100591715976335}, {\"x\": -0.5384615384615381, \"y\": -0.8974358974358974, \"z\": -0.515450361604208}, {\"x\": -0.5384615384615381, \"y\": -0.846153846153846, \"z\": -0.42603550295858006}, {\"x\": -0.5384615384615381, \"y\": -0.7948717948717947, \"z\": -0.341880341880342}, {\"x\": -0.5384615384615381, \"y\": -0.7435897435897434, \"z\": -0.2629848783694939}, {\"x\": -0.5384615384615381, \"y\": -0.6923076923076921, \"z\": -0.18934911242603558}, {\"x\": -0.5384615384615381, \"y\": -0.6410256410256407, \"z\": -0.12097304404996717}, {\"x\": -0.5384615384615381, \"y\": -0.5897435897435894, \"z\": -0.05785667324128868}, {\"x\": -0.5384615384615381, \"y\": -0.5384615384615381, \"z\": 0.0}, {\"x\": -0.5384615384615381, \"y\": -0.48717948717948684, \"z\": 0.05259697567389868}, {\"x\": -0.5384615384615381, \"y\": -0.43589743589743557, \"z\": 0.09993425378040752}, {\"x\": -0.5384615384615381, \"y\": -0.3846153846153843, \"z\": 0.14201183431952646}, {\"x\": -0.5384615384615381, \"y\": -0.33333333333333304, \"z\": 0.17882971729125555}, {\"x\": -0.5384615384615381, \"y\": -0.28205128205128177, \"z\": 0.21038790269559476}, {\"x\": -0.5384615384615381, \"y\": -0.2307692307692305, \"z\": 0.2366863905325441}, {\"x\": -0.5384615384615381, \"y\": -0.17948717948717924, \"z\": 0.25772518080210355}, {\"x\": -0.5384615384615381, \"y\": -0.12820512820512797, \"z\": 0.27350427350427314}, {\"x\": -0.5384615384615381, \"y\": -0.07692307692307669, \"z\": 0.2840236686390529}, {\"x\": -0.5384615384615381, \"y\": -0.02564102564102541, \"z\": 0.28928336620644274}, {\"x\": -0.5384615384615381, \"y\": 0.02564102564102587, \"z\": 0.28928336620644274}, {\"x\": -0.5384615384615381, \"y\": 0.07692307692307715, \"z\": 0.2840236686390528}, {\"x\": -0.5384615384615381, \"y\": 0.12820512820512842, \"z\": 0.27350427350427303}, {\"x\": -0.5384615384615381, \"y\": 0.17948717948717968, \"z\": 0.2577251808021034}, {\"x\": -0.5384615384615381, \"y\": 0.23076923076923095, \"z\": 0.2366863905325439}, {\"x\": -0.5384615384615381, \"y\": 0.2820512820512822, \"z\": 0.2103879026955945}, {\"x\": -0.5384615384615381, \"y\": 0.3333333333333335, \"z\": 0.17882971729125524}, {\"x\": -0.5384615384615381, \"y\": 0.38461538461538475, \"z\": 0.14201183431952613}, {\"x\": -0.5384615384615381, \"y\": 0.435897435897436, \"z\": 0.09993425378040713}, {\"x\": -0.5384615384615381, \"y\": 0.4871794871794873, \"z\": 0.05259697567389823}, {\"x\": -0.5384615384615381, \"y\": 0.5384615384615385, \"z\": -4.996003610813204e-16}, {\"x\": -0.5384615384615381, \"y\": 0.5897435897435899, \"z\": -0.05785667324128918}, {\"x\": -0.5384615384615381, \"y\": 0.6410256410256412, \"z\": -0.12097304404996773}, {\"x\": -0.5384615384615381, \"y\": 0.6923076923076925, \"z\": -0.1893491124260362}, {\"x\": -0.5384615384615381, \"y\": 0.7435897435897438, \"z\": -0.2629848783694946}, {\"x\": -0.5384615384615381, \"y\": 0.7948717948717952, \"z\": -0.3418803418803428}, {\"x\": -0.5384615384615381, \"y\": 0.8461538461538465, \"z\": -0.42603550295858084}, {\"x\": -0.5384615384615381, \"y\": 0.8974358974358978, \"z\": -0.5154503616042089}, {\"x\": -0.5384615384615381, \"y\": 0.9487179487179491, \"z\": -0.6101249178172267}, {\"x\": -0.5384615384615381, \"y\": 1.0, \"z\": -0.7100591715976335}, {\"x\": -0.48717948717948684, \"y\": -0.9487179487179487, \"z\": -0.6627218934911245}, {\"x\": -0.48717948717948684, \"y\": -1.0, \"z\": -0.7626561472715322}, {\"x\": -0.48717948717948684, \"y\": -0.8974358974358974, \"z\": -0.5680473372781066}, {\"x\": -0.48717948717948684, \"y\": -0.846153846153846, \"z\": -0.4786324786324787}, {\"x\": -0.48717948717948684, \"y\": -0.7948717948717947, \"z\": -0.39447731755424065}, {\"x\": -0.48717948717948684, \"y\": -0.7435897435897434, \"z\": -0.31558185404339256}, {\"x\": -0.48717948717948684, \"y\": -0.6923076923076921, \"z\": -0.24194608809993426}, {\"x\": -0.48717948717948684, \"y\": -0.6410256410256407, \"z\": -0.17357001972386585}, {\"x\": -0.48717948717948684, \"y\": -0.5897435897435894, \"z\": -0.11045364891518736}, {\"x\": -0.48717948717948684, \"y\": -0.5384615384615381, \"z\": -0.05259697567389868}, {\"x\": -0.48717948717948684, \"y\": -0.48717948717948684, \"z\": 0.0}, {\"x\": -0.48717948717948684, \"y\": -0.43589743589743557, \"z\": 0.04733727810650884}, {\"x\": -0.48717948717948684, \"y\": -0.3846153846153843, \"z\": 0.08941485864562779}, {\"x\": -0.48717948717948684, \"y\": -0.33333333333333304, \"z\": 0.12623274161735687}, {\"x\": -0.48717948717948684, \"y\": -0.28205128205128177, \"z\": 0.15779092702169606}, {\"x\": -0.48717948717948684, \"y\": -0.2307692307692305, \"z\": 0.1840894148586454}, {\"x\": -0.48717948717948684, \"y\": -0.17948717948717924, \"z\": 0.2051282051282049}, {\"x\": -0.48717948717948684, \"y\": -0.12820512820512797, \"z\": 0.2209072978303745}, {\"x\": -0.48717948717948684, \"y\": -0.07692307692307669, \"z\": 0.2314266929651542}, {\"x\": -0.48717948717948684, \"y\": -0.02564102564102541, \"z\": 0.23668639053254406}, {\"x\": -0.48717948717948684, \"y\": 0.02564102564102587, \"z\": 0.23668639053254403}, {\"x\": -0.48717948717948684, \"y\": 0.07692307692307715, \"z\": 0.23142669296515414}, {\"x\": -0.48717948717948684, \"y\": 0.12820512820512842, \"z\": 0.22090729783037436}, {\"x\": -0.48717948717948684, \"y\": 0.17948717948717968, \"z\": 0.20512820512820473}, {\"x\": -0.48717948717948684, \"y\": 0.23076923076923095, \"z\": 0.18408941485864522}, {\"x\": -0.48717948717948684, \"y\": 0.2820512820512822, \"z\": 0.15779092702169584}, {\"x\": -0.48717948717948684, \"y\": 0.3333333333333335, \"z\": 0.12623274161735656}, {\"x\": -0.48717948717948684, \"y\": 0.38461538461538475, \"z\": 0.08941485864562745}, {\"x\": -0.48717948717948684, \"y\": 0.435897435897436, \"z\": 0.04733727810650845}, {\"x\": -0.48717948717948684, \"y\": 0.4871794871794873, \"z\": -4.440892098500626e-16}, {\"x\": -0.48717948717948684, \"y\": 0.5384615384615385, \"z\": -0.05259697567389918}, {\"x\": -0.48717948717948684, \"y\": 0.5897435897435899, \"z\": -0.11045364891518786}, {\"x\": -0.48717948717948684, \"y\": 0.6410256410256412, \"z\": -0.1735700197238664}, {\"x\": -0.48717948717948684, \"y\": 0.6923076923076925, \"z\": -0.24194608809993487}, {\"x\": -0.48717948717948684, \"y\": 0.7435897435897438, \"z\": -0.31558185404339323}, {\"x\": -0.48717948717948684, \"y\": 0.7948717948717952, \"z\": -0.3944773175542414}, {\"x\": -0.48717948717948684, \"y\": 0.8461538461538465, \"z\": -0.4786324786324795}, {\"x\": -0.48717948717948684, \"y\": 0.8974358974358978, \"z\": -0.5680473372781075}, {\"x\": -0.48717948717948684, \"y\": 0.9487179487179491, \"z\": -0.6627218934911253}, {\"x\": -0.48717948717948684, \"y\": 1.0, \"z\": -0.7626561472715322}, {\"x\": -0.43589743589743557, \"y\": -0.9487179487179487, \"z\": -0.7100591715976334}, {\"x\": -0.43589743589743557, \"y\": -1.0, \"z\": -0.8099934253780411}, {\"x\": -0.43589743589743557, \"y\": -0.8974358974358974, \"z\": -0.6153846153846155}, {\"x\": -0.43589743589743557, \"y\": -0.846153846153846, \"z\": -0.5259697567389876}, {\"x\": -0.43589743589743557, \"y\": -0.7948717948717947, \"z\": -0.44181459566074954}, {\"x\": -0.43589743589743557, \"y\": -0.7435897435897434, \"z\": -0.36291913214990146}, {\"x\": -0.43589743589743557, \"y\": -0.6923076923076921, \"z\": -0.2892833662064431}, {\"x\": -0.43589743589743557, \"y\": -0.6410256410256407, \"z\": -0.2209072978303747}, {\"x\": -0.43589743589743557, \"y\": -0.5897435897435894, \"z\": -0.1577909270216962}, {\"x\": -0.43589743589743557, \"y\": -0.5384615384615381, \"z\": -0.09993425378040752}, {\"x\": -0.43589743589743557, \"y\": -0.48717948717948684, \"z\": -0.04733727810650884}, {\"x\": -0.43589743589743557, \"y\": -0.43589743589743557, \"z\": 0.0}, {\"x\": -0.43589743589743557, \"y\": -0.3846153846153843, \"z\": 0.04207758053911895}, {\"x\": -0.43589743589743557, \"y\": -0.33333333333333304, \"z\": 0.07889546351084803}, {\"x\": -0.43589743589743557, \"y\": -0.28205128205128177, \"z\": 0.11045364891518723}, {\"x\": -0.43589743589743557, \"y\": -0.2307692307692305, \"z\": 0.13675213675213657}, {\"x\": -0.43589743589743557, \"y\": -0.17948717948717924, \"z\": 0.15779092702169606}, {\"x\": -0.43589743589743557, \"y\": -0.12820512820512797, \"z\": 0.17357001972386565}, {\"x\": -0.43589743589743557, \"y\": -0.07692307692307669, \"z\": 0.18408941485864536}, {\"x\": -0.43589743589743557, \"y\": -0.02564102564102541, \"z\": 0.18934911242603522}, {\"x\": -0.43589743589743557, \"y\": 0.02564102564102587, \"z\": 0.1893491124260352}, {\"x\": -0.43589743589743557, \"y\": 0.07692307692307715, \"z\": 0.1840894148586453}, {\"x\": -0.43589743589743557, \"y\": 0.12820512820512842, \"z\": 0.17357001972386552}, {\"x\": -0.43589743589743557, \"y\": 0.17948717948717968, \"z\": 0.1577909270216959}, {\"x\": -0.43589743589743557, \"y\": 0.23076923076923095, \"z\": 0.13675213675213638}, {\"x\": -0.43589743589743557, \"y\": 0.2820512820512822, \"z\": 0.11045364891518698}, {\"x\": -0.43589743589743557, \"y\": 0.3333333333333335, \"z\": 0.07889546351084772}, {\"x\": -0.43589743589743557, \"y\": 0.38461538461538475, \"z\": 0.042077580539118614}, {\"x\": -0.43589743589743557, \"y\": 0.435897435897436, \"z\": -3.885780586188048e-16}, {\"x\": -0.43589743589743557, \"y\": 0.4871794871794873, \"z\": -0.047337278106509284}, {\"x\": -0.43589743589743557, \"y\": 0.5384615384615385, \"z\": -0.09993425378040802}, {\"x\": -0.43589743589743557, \"y\": 0.5897435897435899, \"z\": -0.1577909270216967}, {\"x\": -0.43589743589743557, \"y\": 0.6410256410256412, \"z\": -0.22090729783037524}, {\"x\": -0.43589743589743557, \"y\": 0.6923076923076925, \"z\": -0.2892833662064437}, {\"x\": -0.43589743589743557, \"y\": 0.7435897435897438, \"z\": -0.3629191321499021}, {\"x\": -0.43589743589743557, \"y\": 0.7948717948717952, \"z\": -0.4418145956607503}, {\"x\": -0.43589743589743557, \"y\": 0.8461538461538465, \"z\": -0.5259697567389884}, {\"x\": -0.43589743589743557, \"y\": 0.8974358974358978, \"z\": -0.6153846153846164}, {\"x\": -0.43589743589743557, \"y\": 0.9487179487179491, \"z\": -0.7100591715976342}, {\"x\": -0.43589743589743557, \"y\": 1.0, \"z\": -0.8099934253780411}, {\"x\": -0.3846153846153843, \"y\": -0.9487179487179487, \"z\": -0.7521367521367524}, {\"x\": -0.3846153846153843, \"y\": -1.0, \"z\": -0.85207100591716}, {\"x\": -0.3846153846153843, \"y\": -0.8974358974358974, \"z\": -0.6574621959237344}, {\"x\": -0.3846153846153843, \"y\": -0.846153846153846, \"z\": -0.5680473372781065}, {\"x\": -0.3846153846153843, \"y\": -0.7948717948717947, \"z\": -0.48389217619986846}, {\"x\": -0.3846153846153843, \"y\": -0.7435897435897434, \"z\": -0.4049967126890204}, {\"x\": -0.3846153846153843, \"y\": -0.6923076923076921, \"z\": -0.33136094674556205}, {\"x\": -0.3846153846153843, \"y\": -0.6410256410256407, \"z\": -0.26298487836949364}, {\"x\": -0.3846153846153843, \"y\": -0.5897435897435894, \"z\": -0.19986850756081515}, {\"x\": -0.3846153846153843, \"y\": -0.5384615384615381, \"z\": -0.14201183431952646}, {\"x\": -0.3846153846153843, \"y\": -0.48717948717948684, \"z\": -0.08941485864562779}, {\"x\": -0.3846153846153843, \"y\": -0.43589743589743557, \"z\": -0.04207758053911895}, {\"x\": -0.3846153846153843, \"y\": -0.3846153846153843, \"z\": 0.0}, {\"x\": -0.3846153846153843, \"y\": -0.33333333333333304, \"z\": 0.03681788297172908}, {\"x\": -0.3846153846153843, \"y\": -0.28205128205128177, \"z\": 0.06837606837606829}, {\"x\": -0.3846153846153843, \"y\": -0.2307692307692305, \"z\": 0.09467455621301762}, {\"x\": -0.3846153846153843, \"y\": -0.17948717948717924, \"z\": 0.1157133464825771}, {\"x\": -0.3846153846153843, \"y\": -0.12820512820512797, \"z\": 0.13149243918474668}, {\"x\": -0.3846153846153843, \"y\": -0.07692307692307669, \"z\": 0.1420118343195264}, {\"x\": -0.3846153846153843, \"y\": -0.02564102564102541, \"z\": 0.14727153188691627}, {\"x\": -0.3846153846153843, \"y\": 0.02564102564102587, \"z\": 0.14727153188691625}, {\"x\": -0.3846153846153843, \"y\": 0.07692307692307715, \"z\": 0.14201183431952635}, {\"x\": -0.3846153846153843, \"y\": 0.12820512820512842, \"z\": 0.13149243918474657}, {\"x\": -0.3846153846153843, \"y\": 0.17948717948717968, \"z\": 0.11571334648257695}, {\"x\": -0.3846153846153843, \"y\": 0.23076923076923095, \"z\": 0.09467455621301743}, {\"x\": -0.3846153846153843, \"y\": 0.2820512820512822, \"z\": 0.06837606837606804}, {\"x\": -0.3846153846153843, \"y\": 0.3333333333333335, \"z\": 0.03681788297172878}, {\"x\": -0.3846153846153843, \"y\": 0.38461538461538475, \"z\": -3.3306690738754696e-16}, {\"x\": -0.3846153846153843, \"y\": 0.435897435897436, \"z\": -0.042077580539119336}, {\"x\": -0.3846153846153843, \"y\": 0.4871794871794873, \"z\": -0.08941485864562823}, {\"x\": -0.3846153846153843, \"y\": 0.5384615384615385, \"z\": -0.14201183431952696}, {\"x\": -0.3846153846153843, \"y\": 0.5897435897435899, \"z\": -0.19986850756081564}, {\"x\": -0.3846153846153843, \"y\": 0.6410256410256412, \"z\": -0.2629848783694942}, {\"x\": -0.3846153846153843, \"y\": 0.6923076923076925, \"z\": -0.33136094674556266}, {\"x\": -0.3846153846153843, \"y\": 0.7435897435897438, \"z\": -0.40499671268902104}, {\"x\": -0.3846153846153843, \"y\": 0.7948717948717952, \"z\": -0.48389217619986924}, {\"x\": -0.3846153846153843, \"y\": 0.8461538461538465, \"z\": -0.5680473372781073}, {\"x\": -0.3846153846153843, \"y\": 0.8974358974358978, \"z\": -0.6574621959237353}, {\"x\": -0.3846153846153843, \"y\": 0.9487179487179491, \"z\": -0.7521367521367531}, {\"x\": -0.3846153846153843, \"y\": 1.0, \"z\": -0.85207100591716}, {\"x\": -0.33333333333333304, \"y\": -0.9487179487179487, \"z\": -0.7889546351084814}, {\"x\": -0.33333333333333304, \"y\": -1.0, \"z\": -0.8888888888888891}, {\"x\": -0.33333333333333304, \"y\": -0.8974358974358974, \"z\": -0.6942800788954635}, {\"x\": -0.33333333333333304, \"y\": -0.846153846153846, \"z\": -0.6048652202498356}, {\"x\": -0.33333333333333304, \"y\": -0.7948717948717947, \"z\": -0.5207100591715975}, {\"x\": -0.33333333333333304, \"y\": -0.7435897435897434, \"z\": -0.44181459566074943}, {\"x\": -0.33333333333333304, \"y\": -0.6923076923076921, \"z\": -0.3681788297172911}, {\"x\": -0.33333333333333304, \"y\": -0.6410256410256407, \"z\": -0.29980276134122275}, {\"x\": -0.33333333333333304, \"y\": -0.5897435897435894, \"z\": -0.23668639053254423}, {\"x\": -0.33333333333333304, \"y\": -0.5384615384615381, \"z\": -0.17882971729125555}, {\"x\": -0.33333333333333304, \"y\": -0.48717948717948684, \"z\": -0.12623274161735687}, {\"x\": -0.33333333333333304, \"y\": -0.43589743589743557, \"z\": -0.07889546351084803}, {\"x\": -0.33333333333333304, \"y\": -0.3846153846153843, \"z\": -0.03681788297172908}, {\"x\": -0.33333333333333304, \"y\": -0.33333333333333304, \"z\": 0.0}, {\"x\": -0.33333333333333304, \"y\": -0.28205128205128177, \"z\": 0.031558185404339203}, {\"x\": -0.33333333333333304, \"y\": -0.2307692307692305, \"z\": 0.05785667324128855}, {\"x\": -0.33333333333333304, \"y\": -0.17948717948717924, \"z\": 0.07889546351084802}, {\"x\": -0.33333333333333304, \"y\": -0.12820512820512797, \"z\": 0.09467455621301761}, {\"x\": -0.33333333333333304, \"y\": -0.07692307692307669, \"z\": 0.10519395134779734}, {\"x\": -0.33333333333333304, \"y\": -0.02564102564102541, \"z\": 0.11045364891518719}, {\"x\": -0.33333333333333304, \"y\": 0.02564102564102587, \"z\": 0.11045364891518716}, {\"x\": -0.33333333333333304, \"y\": 0.07692307692307715, \"z\": 0.10519395134779727}, {\"x\": -0.33333333333333304, \"y\": 0.12820512820512842, \"z\": 0.0946745562130175}, {\"x\": -0.33333333333333304, \"y\": 0.17948717948717968, \"z\": 0.07889546351084786}, {\"x\": -0.33333333333333304, \"y\": 0.23076923076923095, \"z\": 0.05785667324128834}, {\"x\": -0.33333333333333304, \"y\": 0.2820512820512822, \"z\": 0.031558185404338954}, {\"x\": -0.33333333333333304, \"y\": 0.3333333333333335, \"z\": -3.0531133177191805e-16}, {\"x\": -0.33333333333333304, \"y\": 0.38461538461538475, \"z\": -0.036817882971729415}, {\"x\": -0.33333333333333304, \"y\": 0.435897435897436, \"z\": -0.07889546351084842}, {\"x\": -0.33333333333333304, \"y\": 0.4871794871794873, \"z\": -0.1262327416173573}, {\"x\": -0.33333333333333304, \"y\": 0.5384615384615385, \"z\": -0.17882971729125605}, {\"x\": -0.33333333333333304, \"y\": 0.5897435897435899, \"z\": -0.23668639053254473}, {\"x\": -0.33333333333333304, \"y\": 0.6410256410256412, \"z\": -0.2998027613412233}, {\"x\": -0.33333333333333304, \"y\": 0.6923076923076925, \"z\": -0.36817882971729177}, {\"x\": -0.33333333333333304, \"y\": 0.7435897435897438, \"z\": -0.4418145956607501}, {\"x\": -0.33333333333333304, \"y\": 0.7948717948717952, \"z\": -0.5207100591715983}, {\"x\": -0.33333333333333304, \"y\": 0.8461538461538465, \"z\": -0.6048652202498364}, {\"x\": -0.33333333333333304, \"y\": 0.8974358974358978, \"z\": -0.6942800788954644}, {\"x\": -0.33333333333333304, \"y\": 0.9487179487179491, \"z\": -0.7889546351084822}, {\"x\": -0.33333333333333304, \"y\": 1.0, \"z\": -0.8888888888888891}, {\"x\": -0.28205128205128177, \"y\": -0.9487179487179487, \"z\": -0.8205128205128206}, {\"x\": -0.28205128205128177, \"y\": -1.0, \"z\": -0.9204470742932283}, {\"x\": -0.28205128205128177, \"y\": -0.8974358974358974, \"z\": -0.7258382642998027}, {\"x\": -0.28205128205128177, \"y\": -0.846153846153846, \"z\": -0.6364234056541748}, {\"x\": -0.28205128205128177, \"y\": -0.7948717948717947, \"z\": -0.5522682445759367}, {\"x\": -0.28205128205128177, \"y\": -0.7435897435897434, \"z\": -0.4733727810650887}, {\"x\": -0.28205128205128177, \"y\": -0.6923076923076921, \"z\": -0.39973701512163035}, {\"x\": -0.28205128205128177, \"y\": -0.6410256410256407, \"z\": -0.33136094674556194}, {\"x\": -0.28205128205128177, \"y\": -0.5897435897435894, \"z\": -0.26824457593688344}, {\"x\": -0.28205128205128177, \"y\": -0.5384615384615381, \"z\": -0.21038790269559476}, {\"x\": -0.28205128205128177, \"y\": -0.48717948717948684, \"z\": -0.15779092702169606}, {\"x\": -0.28205128205128177, \"y\": -0.43589743589743557, \"z\": -0.11045364891518723}, {\"x\": -0.28205128205128177, \"y\": -0.3846153846153843, \"z\": -0.06837606837606829}, {\"x\": -0.28205128205128177, \"y\": -0.33333333333333304, \"z\": -0.031558185404339203}, {\"x\": -0.28205128205128177, \"y\": -0.28205128205128177, \"z\": 0.0}, {\"x\": -0.28205128205128177, \"y\": -0.2307692307692305, \"z\": 0.026298487836949345}, {\"x\": -0.28205128205128177, \"y\": -0.17948717948717924, \"z\": 0.04733727810650881}, {\"x\": -0.28205128205128177, \"y\": -0.12820512820512797, \"z\": 0.06311637080867841}, {\"x\": -0.28205128205128177, \"y\": -0.07692307692307669, \"z\": 0.07363576594345814}, {\"x\": -0.28205128205128177, \"y\": -0.02564102564102541, \"z\": 0.07889546351084799}, {\"x\": -0.28205128205128177, \"y\": 0.02564102564102587, \"z\": 0.07889546351084796}, {\"x\": -0.28205128205128177, \"y\": 0.07692307692307715, \"z\": 0.07363576594345807}, {\"x\": -0.28205128205128177, \"y\": 0.12820512820512842, \"z\": 0.0631163708086783}, {\"x\": -0.28205128205128177, \"y\": 0.17948717948717968, \"z\": 0.04733727810650865}, {\"x\": -0.28205128205128177, \"y\": 0.23076923076923095, \"z\": 0.026298487836949137}, {\"x\": -0.28205128205128177, \"y\": 0.2820512820512822, \"z\": -2.498001805406602e-16}, {\"x\": -0.28205128205128177, \"y\": 0.3333333333333335, \"z\": -0.03155818540433951}, {\"x\": -0.28205128205128177, \"y\": 0.38461538461538475, \"z\": -0.06837606837606862}, {\"x\": -0.28205128205128177, \"y\": 0.435897435897436, \"z\": -0.11045364891518762}, {\"x\": -0.28205128205128177, \"y\": 0.4871794871794873, \"z\": -0.1577909270216965}, {\"x\": -0.28205128205128177, \"y\": 0.5384615384615385, \"z\": -0.21038790269559526}, {\"x\": -0.28205128205128177, \"y\": 0.5897435897435899, \"z\": -0.26824457593688394}, {\"x\": -0.28205128205128177, \"y\": 0.6410256410256412, \"z\": -0.3313609467455625}, {\"x\": -0.28205128205128177, \"y\": 0.6923076923076925, \"z\": -0.39973701512163096}, {\"x\": -0.28205128205128177, \"y\": 0.7435897435897438, \"z\": -0.47337278106508934}, {\"x\": -0.28205128205128177, \"y\": 0.7948717948717952, \"z\": -0.5522682445759375}, {\"x\": -0.28205128205128177, \"y\": 0.8461538461538465, \"z\": -0.6364234056541755}, {\"x\": -0.28205128205128177, \"y\": 0.8974358974358978, \"z\": -0.7258382642998036}, {\"x\": -0.28205128205128177, \"y\": 0.9487179487179491, \"z\": -0.8205128205128214}, {\"x\": -0.28205128205128177, \"y\": 1.0, \"z\": -0.9204470742932283}, {\"x\": -0.2307692307692305, \"y\": -0.9487179487179487, \"z\": -0.84681130834977}, {\"x\": -0.2307692307692305, \"y\": -1.0, \"z\": -0.9467455621301777}, {\"x\": -0.2307692307692305, \"y\": -0.8974358974358974, \"z\": -0.7521367521367521}, {\"x\": -0.2307692307692305, \"y\": -0.846153846153846, \"z\": -0.6627218934911242}, {\"x\": -0.2307692307692305, \"y\": -0.7948717948717947, \"z\": -0.5785667324128861}, {\"x\": -0.2307692307692305, \"y\": -0.7435897435897434, \"z\": -0.499671268902038}, {\"x\": -0.2307692307692305, \"y\": -0.6923076923076921, \"z\": -0.42603550295857967}, {\"x\": -0.2307692307692305, \"y\": -0.6410256410256407, \"z\": -0.35765943458251126}, {\"x\": -0.2307692307692305, \"y\": -0.5897435897435894, \"z\": -0.29454306377383277}, {\"x\": -0.2307692307692305, \"y\": -0.5384615384615381, \"z\": -0.2366863905325441}, {\"x\": -0.2307692307692305, \"y\": -0.48717948717948684, \"z\": -0.1840894148586454}, {\"x\": -0.2307692307692305, \"y\": -0.43589743589743557, \"z\": -0.13675213675213657}, {\"x\": -0.2307692307692305, \"y\": -0.3846153846153843, \"z\": -0.09467455621301762}, {\"x\": -0.2307692307692305, \"y\": -0.33333333333333304, \"z\": -0.05785667324128855}, {\"x\": -0.2307692307692305, \"y\": -0.28205128205128177, \"z\": -0.026298487836949345}, {\"x\": -0.2307692307692305, \"y\": -0.2307692307692305, \"z\": 0.0}, {\"x\": -0.2307692307692305, \"y\": -0.17948717948717924, \"z\": 0.021038790269559467}, {\"x\": -0.2307692307692305, \"y\": -0.12820512820512797, \"z\": 0.03681788297172906}, {\"x\": -0.2307692307692305, \"y\": -0.07692307692307669, \"z\": 0.047337278106508784}, {\"x\": -0.2307692307692305, \"y\": -0.02564102564102541, \"z\": 0.05259697567389864}, {\"x\": -0.2307692307692305, \"y\": 0.02564102564102587, \"z\": 0.052596975673898615}, {\"x\": -0.2307692307692305, \"y\": 0.07692307692307715, \"z\": 0.047337278106508715}, {\"x\": -0.2307692307692305, \"y\": 0.12820512820512842, \"z\": 0.036817882971728944}, {\"x\": -0.2307692307692305, \"y\": 0.17948717948717968, \"z\": 0.021038790269559307}, {\"x\": -0.2307692307692305, \"y\": 0.23076923076923095, \"z\": -2.0816681711721685e-16}, {\"x\": -0.2307692307692305, \"y\": 0.2820512820512822, \"z\": -0.026298487836949595}, {\"x\": -0.2307692307692305, \"y\": 0.3333333333333335, \"z\": -0.057856673241288854}, {\"x\": -0.2307692307692305, \"y\": 0.38461538461538475, \"z\": -0.09467455621301796}, {\"x\": -0.2307692307692305, \"y\": 0.435897435897436, \"z\": -0.13675213675213696}, {\"x\": -0.2307692307692305, \"y\": 0.4871794871794873, \"z\": -0.18408941485864586}, {\"x\": -0.2307692307692305, \"y\": 0.5384615384615385, \"z\": -0.2366863905325446}, {\"x\": -0.2307692307692305, \"y\": 0.5897435897435899, \"z\": -0.29454306377383327}, {\"x\": -0.2307692307692305, \"y\": 0.6410256410256412, \"z\": -0.3576594345825118}, {\"x\": -0.2307692307692305, \"y\": 0.6923076923076925, \"z\": -0.4260355029585803}, {\"x\": -0.2307692307692305, \"y\": 0.7435897435897438, \"z\": -0.49967126890203867}, {\"x\": -0.2307692307692305, \"y\": 0.7948717948717952, \"z\": -0.5785667324128869}, {\"x\": -0.2307692307692305, \"y\": 0.8461538461538465, \"z\": -0.662721893491125}, {\"x\": -0.2307692307692305, \"y\": 0.8974358974358978, \"z\": -0.752136752136753}, {\"x\": -0.2307692307692305, \"y\": 0.9487179487179491, \"z\": -0.8468113083497708}, {\"x\": -0.2307692307692305, \"y\": 1.0, \"z\": -0.9467455621301777}, {\"x\": -0.17948717948717924, \"y\": -0.9487179487179487, \"z\": -0.8678500986193295}, {\"x\": -0.17948717948717924, \"y\": -1.0, \"z\": -0.9677843523997371}, {\"x\": -0.17948717948717924, \"y\": -0.8974358974358974, \"z\": -0.7731755424063116}, {\"x\": -0.17948717948717924, \"y\": -0.846153846153846, \"z\": -0.6837606837606837}, {\"x\": -0.17948717948717924, \"y\": -0.7948717948717947, \"z\": -0.5996055226824456}, {\"x\": -0.17948717948717924, \"y\": -0.7435897435897434, \"z\": -0.5207100591715975}, {\"x\": -0.17948717948717924, \"y\": -0.6923076923076921, \"z\": -0.44707429322813913}, {\"x\": -0.17948717948717924, \"y\": -0.6410256410256407, \"z\": -0.3786982248520707}, {\"x\": -0.17948717948717924, \"y\": -0.5897435897435894, \"z\": -0.31558185404339223}, {\"x\": -0.17948717948717924, \"y\": -0.5384615384615381, \"z\": -0.25772518080210355}, {\"x\": -0.17948717948717924, \"y\": -0.48717948717948684, \"z\": -0.2051282051282049}, {\"x\": -0.17948717948717924, \"y\": -0.43589743589743557, \"z\": -0.15779092702169606}, {\"x\": -0.17948717948717924, \"y\": -0.3846153846153843, \"z\": -0.1157133464825771}, {\"x\": -0.17948717948717924, \"y\": -0.33333333333333304, \"z\": -0.07889546351084802}, {\"x\": -0.17948717948717924, \"y\": -0.28205128205128177, \"z\": -0.04733727810650881}, {\"x\": -0.17948717948717924, \"y\": -0.2307692307692305, \"z\": -0.021038790269559467}, {\"x\": -0.17948717948717924, \"y\": -0.17948717948717924, \"z\": 0.0}, {\"x\": -0.17948717948717924, \"y\": -0.12820512820512797, \"z\": 0.015779092702169595}, {\"x\": -0.17948717948717924, \"y\": -0.07692307692307669, \"z\": 0.02629848783694932}, {\"x\": -0.17948717948717924, \"y\": -0.02564102564102541, \"z\": 0.031558185404339176}, {\"x\": -0.17948717948717924, \"y\": 0.02564102564102587, \"z\": 0.03155818540433915}, {\"x\": -0.17948717948717924, \"y\": 0.07692307692307715, \"z\": 0.026298487836949252}, {\"x\": -0.17948717948717924, \"y\": 0.12820512820512842, \"z\": 0.01577909270216948}, {\"x\": -0.17948717948717924, \"y\": 0.17948717948717968, \"z\": -1.5959455978986625e-16}, {\"x\": -0.17948717948717924, \"y\": 0.23076923076923095, \"z\": -0.021038790269559675}, {\"x\": -0.17948717948717924, \"y\": 0.2820512820512822, \"z\": -0.04733727810650906}, {\"x\": -0.17948717948717924, \"y\": 0.3333333333333335, \"z\": -0.07889546351084832}, {\"x\": -0.17948717948717924, \"y\": 0.38461538461538475, \"z\": -0.11571334648257743}, {\"x\": -0.17948717948717924, \"y\": 0.435897435897436, \"z\": -0.15779092702169645}, {\"x\": -0.17948717948717924, \"y\": 0.4871794871794873, \"z\": -0.20512820512820534}, {\"x\": -0.17948717948717924, \"y\": 0.5384615384615385, \"z\": -0.25772518080210405}, {\"x\": -0.17948717948717924, \"y\": 0.5897435897435899, \"z\": -0.31558185404339273}, {\"x\": -0.17948717948717924, \"y\": 0.6410256410256412, \"z\": -0.3786982248520713}, {\"x\": -0.17948717948717924, \"y\": 0.6923076923076925, \"z\": -0.44707429322813974}, {\"x\": -0.17948717948717924, \"y\": 0.7435897435897438, \"z\": -0.5207100591715982}, {\"x\": -0.17948717948717924, \"y\": 0.7948717948717952, \"z\": -0.5996055226824464}, {\"x\": -0.17948717948717924, \"y\": 0.8461538461538465, \"z\": -0.6837606837606844}, {\"x\": -0.17948717948717924, \"y\": 0.8974358974358978, \"z\": -0.7731755424063125}, {\"x\": -0.17948717948717924, \"y\": 0.9487179487179491, \"z\": -0.8678500986193303}, {\"x\": -0.17948717948717924, \"y\": 1.0, \"z\": -0.9677843523997371}, {\"x\": -0.12820512820512797, \"y\": -0.9487179487179487, \"z\": -0.8836291913214991}, {\"x\": -0.12820512820512797, \"y\": -1.0, \"z\": -0.9835634451019067}, {\"x\": -0.12820512820512797, \"y\": -0.8974358974358974, \"z\": -0.7889546351084812}, {\"x\": -0.12820512820512797, \"y\": -0.846153846153846, \"z\": -0.6995397764628533}, {\"x\": -0.12820512820512797, \"y\": -0.7948717948717947, \"z\": -0.6153846153846152}, {\"x\": -0.12820512820512797, \"y\": -0.7435897435897434, \"z\": -0.5364891518737671}, {\"x\": -0.12820512820512797, \"y\": -0.6923076923076921, \"z\": -0.4628533859303087}, {\"x\": -0.12820512820512797, \"y\": -0.6410256410256407, \"z\": -0.3944773175542403}, {\"x\": -0.12820512820512797, \"y\": -0.5897435897435894, \"z\": -0.3313609467455618}, {\"x\": -0.12820512820512797, \"y\": -0.5384615384615381, \"z\": -0.27350427350427314}, {\"x\": -0.12820512820512797, \"y\": -0.48717948717948684, \"z\": -0.2209072978303745}, {\"x\": -0.12820512820512797, \"y\": -0.43589743589743557, \"z\": -0.17357001972386565}, {\"x\": -0.12820512820512797, \"y\": -0.3846153846153843, \"z\": -0.13149243918474668}, {\"x\": -0.12820512820512797, \"y\": -0.33333333333333304, \"z\": -0.09467455621301761}, {\"x\": -0.12820512820512797, \"y\": -0.28205128205128177, \"z\": -0.06311637080867841}, {\"x\": -0.12820512820512797, \"y\": -0.2307692307692305, \"z\": -0.03681788297172906}, {\"x\": -0.12820512820512797, \"y\": -0.17948717948717924, \"z\": -0.015779092702169595}, {\"x\": -0.12820512820512797, \"y\": -0.12820512820512797, \"z\": 0.0}, {\"x\": -0.12820512820512797, \"y\": -0.07692307692307669, \"z\": 0.010519395134779726}, {\"x\": -0.12820512820512797, \"y\": -0.02564102564102541, \"z\": 0.015779092702169577}, {\"x\": -0.12820512820512797, \"y\": 0.02564102564102587, \"z\": 0.015779092702169553}, {\"x\": -0.12820512820512797, \"y\": 0.07692307692307715, \"z\": 0.010519395134779657}, {\"x\": -0.12820512820512797, \"y\": 0.12820512820512842, \"z\": -1.1449174941446927e-16}, {\"x\": -0.12820512820512797, \"y\": 0.17948717948717968, \"z\": -0.015779092702169754}, {\"x\": -0.12820512820512797, \"y\": 0.23076923076923095, \"z\": -0.03681788297172927}, {\"x\": -0.12820512820512797, \"y\": 0.2820512820512822, \"z\": -0.06311637080867866}, {\"x\": -0.12820512820512797, \"y\": 0.3333333333333335, \"z\": -0.09467455621301792}, {\"x\": -0.12820512820512797, \"y\": 0.38461538461538475, \"z\": -0.131492439184747}, {\"x\": -0.12820512820512797, \"y\": 0.435897435897436, \"z\": -0.17357001972386604}, {\"x\": -0.12820512820512797, \"y\": 0.4871794871794873, \"z\": -0.22090729783037494}, {\"x\": -0.12820512820512797, \"y\": 0.5384615384615385, \"z\": -0.27350427350427364}, {\"x\": -0.12820512820512797, \"y\": 0.5897435897435899, \"z\": -0.3313609467455623}, {\"x\": -0.12820512820512797, \"y\": 0.6410256410256412, \"z\": -0.39447731755424087}, {\"x\": -0.12820512820512797, \"y\": 0.6923076923076925, \"z\": -0.46285338593030934}, {\"x\": -0.12820512820512797, \"y\": 0.7435897435897438, \"z\": -0.5364891518737678}, {\"x\": -0.12820512820512797, \"y\": 0.7948717948717952, \"z\": -0.615384615384616}, {\"x\": -0.12820512820512797, \"y\": 0.8461538461538465, \"z\": -0.699539776462854}, {\"x\": -0.12820512820512797, \"y\": 0.8974358974358978, \"z\": -0.7889546351084821}, {\"x\": -0.12820512820512797, \"y\": 0.9487179487179491, \"z\": -0.8836291913214999}, {\"x\": -0.12820512820512797, \"y\": 1.0, \"z\": -0.9835634451019067}, {\"x\": -0.07692307692307669, \"y\": -0.9487179487179487, \"z\": -0.8941485864562788}, {\"x\": -0.07692307692307669, \"y\": -1.0, \"z\": -0.9940828402366865}, {\"x\": -0.07692307692307669, \"y\": -0.8974358974358974, \"z\": -0.7994740302432609}, {\"x\": -0.07692307692307669, \"y\": -0.846153846153846, \"z\": -0.710059171597633}, {\"x\": -0.07692307692307669, \"y\": -0.7948717948717947, \"z\": -0.6259040105193949}, {\"x\": -0.07692307692307669, \"y\": -0.7435897435897434, \"z\": -0.5470085470085468}, {\"x\": -0.07692307692307669, \"y\": -0.6923076923076921, \"z\": -0.47337278106508845}, {\"x\": -0.07692307692307669, \"y\": -0.6410256410256407, \"z\": -0.40499671268902004}, {\"x\": -0.07692307692307669, \"y\": -0.5897435897435894, \"z\": -0.34188034188034155}, {\"x\": -0.07692307692307669, \"y\": -0.5384615384615381, \"z\": -0.2840236686390529}, {\"x\": -0.07692307692307669, \"y\": -0.48717948717948684, \"z\": -0.2314266929651542}, {\"x\": -0.07692307692307669, \"y\": -0.43589743589743557, \"z\": -0.18408941485864536}, {\"x\": -0.07692307692307669, \"y\": -0.3846153846153843, \"z\": -0.1420118343195264}, {\"x\": -0.07692307692307669, \"y\": -0.33333333333333304, \"z\": -0.10519395134779734}, {\"x\": -0.07692307692307669, \"y\": -0.28205128205128177, \"z\": -0.07363576594345814}, {\"x\": -0.07692307692307669, \"y\": -0.2307692307692305, \"z\": -0.047337278106508784}, {\"x\": -0.07692307692307669, \"y\": -0.17948717948717924, \"z\": -0.02629848783694932}, {\"x\": -0.07692307692307669, \"y\": -0.12820512820512797, \"z\": -0.010519395134779726}, {\"x\": -0.07692307692307669, \"y\": -0.07692307692307669, \"z\": 0.0}, {\"x\": -0.07692307692307669, \"y\": -0.02564102564102541, \"z\": 0.005259697567389851}, {\"x\": -0.07692307692307669, \"y\": 0.02564102564102587, \"z\": 0.005259697567389828}, {\"x\": -0.07692307692307669, \"y\": 0.07692307692307715, \"z\": -7.025630077706069e-17}, {\"x\": -0.07692307692307669, \"y\": 0.12820512820512842, \"z\": -0.010519395134779841}, {\"x\": -0.07692307692307669, \"y\": 0.17948717948717968, \"z\": -0.02629848783694948}, {\"x\": -0.07692307692307669, \"y\": 0.23076923076923095, \"z\": -0.04733727810650899}, {\"x\": -0.07692307692307669, \"y\": 0.2820512820512822, \"z\": -0.07363576594345839}, {\"x\": -0.07692307692307669, \"y\": 0.3333333333333335, \"z\": -0.10519395134779765}, {\"x\": -0.07692307692307669, \"y\": 0.38461538461538475, \"z\": -0.14201183431952674}, {\"x\": -0.07692307692307669, \"y\": 0.435897435897436, \"z\": -0.18408941485864574}, {\"x\": -0.07692307692307669, \"y\": 0.4871794871794873, \"z\": -0.23142669296515464}, {\"x\": -0.07692307692307669, \"y\": 0.5384615384615385, \"z\": -0.2840236686390534}, {\"x\": -0.07692307692307669, \"y\": 0.5897435897435899, \"z\": -0.34188034188034205}, {\"x\": -0.07692307692307669, \"y\": 0.6410256410256412, \"z\": -0.4049967126890206}, {\"x\": -0.07692307692307669, \"y\": 0.6923076923076925, \"z\": -0.47337278106508907}, {\"x\": -0.07692307692307669, \"y\": 0.7435897435897438, \"z\": -0.5470085470085475}, {\"x\": -0.07692307692307669, \"y\": 0.7948717948717952, \"z\": -0.6259040105193957}, {\"x\": -0.07692307692307669, \"y\": 0.8461538461538465, \"z\": -0.7100591715976338}, {\"x\": -0.07692307692307669, \"y\": 0.8974358974358978, \"z\": -0.7994740302432618}, {\"x\": -0.07692307692307669, \"y\": 0.9487179487179491, \"z\": -0.8941485864562796}, {\"x\": -0.07692307692307669, \"y\": 1.0, \"z\": -0.9940828402366865}, {\"x\": -0.02564102564102541, \"y\": -0.9487179487179487, \"z\": -0.8994082840236686}, {\"x\": -0.02564102564102541, \"y\": -1.0, \"z\": -0.9993425378040762}, {\"x\": -0.02564102564102541, \"y\": -0.8974358974358974, \"z\": -0.8047337278106507}, {\"x\": -0.02564102564102541, \"y\": -0.846153846153846, \"z\": -0.7153188691650227}, {\"x\": -0.02564102564102541, \"y\": -0.7948717948717947, \"z\": -0.6311637080867847}, {\"x\": -0.02564102564102541, \"y\": -0.7435897435897434, \"z\": -0.5522682445759366}, {\"x\": -0.02564102564102541, \"y\": -0.6923076923076921, \"z\": -0.4786324786324783}, {\"x\": -0.02564102564102541, \"y\": -0.6410256410256407, \"z\": -0.4102564102564099}, {\"x\": -0.02564102564102541, \"y\": -0.5897435897435894, \"z\": -0.3471400394477314}, {\"x\": -0.02564102564102541, \"y\": -0.5384615384615381, \"z\": -0.28928336620644274}, {\"x\": -0.02564102564102541, \"y\": -0.48717948717948684, \"z\": -0.23668639053254406}, {\"x\": -0.02564102564102541, \"y\": -0.43589743589743557, \"z\": -0.18934911242603522}, {\"x\": -0.02564102564102541, \"y\": -0.3846153846153843, \"z\": -0.14727153188691627}, {\"x\": -0.02564102564102541, \"y\": -0.33333333333333304, \"z\": -0.11045364891518719}, {\"x\": -0.02564102564102541, \"y\": -0.28205128205128177, \"z\": -0.07889546351084799}, {\"x\": -0.02564102564102541, \"y\": -0.2307692307692305, \"z\": -0.05259697567389864}, {\"x\": -0.02564102564102541, \"y\": -0.17948717948717924, \"z\": -0.031558185404339176}, {\"x\": -0.02564102564102541, \"y\": -0.12820512820512797, \"z\": -0.015779092702169577}, {\"x\": -0.02564102564102541, \"y\": -0.07692307692307669, \"z\": -0.005259697567389851}, {\"x\": -0.02564102564102541, \"y\": -0.02564102564102541, \"z\": 0.0}, {\"x\": -0.02564102564102541, \"y\": 0.02564102564102587, \"z\": -2.3527187142935446e-17}, {\"x\": -0.02564102564102541, \"y\": 0.07692307692307715, \"z\": -0.005259697567389921}, {\"x\": -0.02564102564102541, \"y\": 0.12820512820512842, \"z\": -0.015779092702169692}, {\"x\": -0.02564102564102541, \"y\": 0.17948717948717968, \"z\": -0.031558185404339335}, {\"x\": -0.02564102564102541, \"y\": 0.23076923076923095, \"z\": -0.05259697567389885}, {\"x\": -0.02564102564102541, \"y\": 0.2820512820512822, \"z\": -0.07889546351084824}, {\"x\": -0.02564102564102541, \"y\": 0.3333333333333335, \"z\": -0.1104536489151875}, {\"x\": -0.02564102564102541, \"y\": 0.38461538461538475, \"z\": -0.1472715318869166}, {\"x\": -0.02564102564102541, \"y\": 0.435897435897436, \"z\": -0.1893491124260356}, {\"x\": -0.02564102564102541, \"y\": 0.4871794871794873, \"z\": -0.2366863905325445}, {\"x\": -0.02564102564102541, \"y\": 0.5384615384615385, \"z\": -0.28928336620644324}, {\"x\": -0.02564102564102541, \"y\": 0.5897435897435899, \"z\": -0.3471400394477319}, {\"x\": -0.02564102564102541, \"y\": 0.6410256410256412, \"z\": -0.41025641025641046}, {\"x\": -0.02564102564102541, \"y\": 0.6923076923076925, \"z\": -0.47863247863247893}, {\"x\": -0.02564102564102541, \"y\": 0.7435897435897438, \"z\": -0.5522682445759373}, {\"x\": -0.02564102564102541, \"y\": 0.7948717948717952, \"z\": -0.6311637080867855}, {\"x\": -0.02564102564102541, \"y\": 0.8461538461538465, \"z\": -0.7153188691650235}, {\"x\": -0.02564102564102541, \"y\": 0.8974358974358978, \"z\": -0.8047337278106516}, {\"x\": -0.02564102564102541, \"y\": 0.9487179487179491, \"z\": -0.8994082840236693}, {\"x\": -0.02564102564102541, \"y\": 1.0, \"z\": -0.9993425378040762}, {\"x\": 0.02564102564102587, \"y\": -0.9487179487179487, \"z\": -0.8994082840236686}, {\"x\": 0.02564102564102587, \"y\": -1.0, \"z\": -0.9993425378040762}, {\"x\": 0.02564102564102587, \"y\": -0.8974358974358974, \"z\": -0.8047337278106507}, {\"x\": 0.02564102564102587, \"y\": -0.846153846153846, \"z\": -0.7153188691650227}, {\"x\": 0.02564102564102587, \"y\": -0.7948717948717947, \"z\": -0.6311637080867847}, {\"x\": 0.02564102564102587, \"y\": -0.7435897435897434, \"z\": -0.5522682445759366}, {\"x\": 0.02564102564102587, \"y\": -0.6923076923076921, \"z\": -0.4786324786324783}, {\"x\": 0.02564102564102587, \"y\": -0.6410256410256407, \"z\": -0.4102564102564099}, {\"x\": 0.02564102564102587, \"y\": -0.5897435897435894, \"z\": -0.3471400394477314}, {\"x\": 0.02564102564102587, \"y\": -0.5384615384615381, \"z\": -0.28928336620644274}, {\"x\": 0.02564102564102587, \"y\": -0.48717948717948684, \"z\": -0.23668639053254403}, {\"x\": 0.02564102564102587, \"y\": -0.43589743589743557, \"z\": -0.1893491124260352}, {\"x\": 0.02564102564102587, \"y\": -0.3846153846153843, \"z\": -0.14727153188691625}, {\"x\": 0.02564102564102587, \"y\": -0.33333333333333304, \"z\": -0.11045364891518716}, {\"x\": 0.02564102564102587, \"y\": -0.28205128205128177, \"z\": -0.07889546351084796}, {\"x\": 0.02564102564102587, \"y\": -0.2307692307692305, \"z\": -0.052596975673898615}, {\"x\": 0.02564102564102587, \"y\": -0.17948717948717924, \"z\": -0.03155818540433915}, {\"x\": 0.02564102564102587, \"y\": -0.12820512820512797, \"z\": -0.015779092702169553}, {\"x\": 0.02564102564102587, \"y\": -0.07692307692307669, \"z\": -0.005259697567389828}, {\"x\": 0.02564102564102587, \"y\": -0.02564102564102541, \"z\": 2.3527187142935446e-17}, {\"x\": 0.02564102564102587, \"y\": 0.02564102564102587, \"z\": 0.0}, {\"x\": 0.02564102564102587, \"y\": 0.07692307692307715, \"z\": -0.005259697567389898}, {\"x\": 0.02564102564102587, \"y\": 0.12820512820512842, \"z\": -0.015779092702169668}, {\"x\": 0.02564102564102587, \"y\": 0.17948717948717968, \"z\": -0.03155818540433931}, {\"x\": 0.02564102564102587, \"y\": 0.23076923076923095, \"z\": -0.05259697567389882}, {\"x\": 0.02564102564102587, \"y\": 0.2820512820512822, \"z\": -0.07889546351084821}, {\"x\": 0.02564102564102587, \"y\": 0.3333333333333335, \"z\": -0.11045364891518747}, {\"x\": 0.02564102564102587, \"y\": 0.38461538461538475, \"z\": -0.14727153188691658}, {\"x\": 0.02564102564102587, \"y\": 0.435897435897436, \"z\": -0.18934911242603558}, {\"x\": 0.02564102564102587, \"y\": 0.4871794871794873, \"z\": -0.23668639053254448}, {\"x\": 0.02564102564102587, \"y\": 0.5384615384615385, \"z\": -0.28928336620644324}, {\"x\": 0.02564102564102587, \"y\": 0.5897435897435899, \"z\": -0.3471400394477319}, {\"x\": 0.02564102564102587, \"y\": 0.6410256410256412, \"z\": -0.41025641025641046}, {\"x\": 0.02564102564102587, \"y\": 0.6923076923076925, \"z\": -0.47863247863247893}, {\"x\": 0.02564102564102587, \"y\": 0.7435897435897438, \"z\": -0.5522682445759373}, {\"x\": 0.02564102564102587, \"y\": 0.7948717948717952, \"z\": -0.6311637080867855}, {\"x\": 0.02564102564102587, \"y\": 0.8461538461538465, \"z\": -0.7153188691650235}, {\"x\": 0.02564102564102587, \"y\": 0.8974358974358978, \"z\": -0.8047337278106516}, {\"x\": 0.02564102564102587, \"y\": 0.9487179487179491, \"z\": -0.8994082840236693}, {\"x\": 0.02564102564102587, \"y\": 1.0, \"z\": -0.9993425378040762}, {\"x\": 0.07692307692307715, \"y\": -0.9487179487179487, \"z\": -0.8941485864562787}, {\"x\": 0.07692307692307715, \"y\": -1.0, \"z\": -0.9940828402366864}, {\"x\": 0.07692307692307715, \"y\": -0.8974358974358974, \"z\": -0.7994740302432608}, {\"x\": 0.07692307692307715, \"y\": -0.846153846153846, \"z\": -0.7100591715976329}, {\"x\": 0.07692307692307715, \"y\": -0.7948717948717947, \"z\": -0.6259040105193948}, {\"x\": 0.07692307692307715, \"y\": -0.7435897435897434, \"z\": -0.5470085470085467}, {\"x\": 0.07692307692307715, \"y\": -0.6923076923076921, \"z\": -0.4733727810650884}, {\"x\": 0.07692307692307715, \"y\": -0.6410256410256407, \"z\": -0.40499671268902}, {\"x\": 0.07692307692307715, \"y\": -0.5897435897435894, \"z\": -0.3418803418803415}, {\"x\": 0.07692307692307715, \"y\": -0.5384615384615381, \"z\": -0.2840236686390528}, {\"x\": 0.07692307692307715, \"y\": -0.48717948717948684, \"z\": -0.23142669296515414}, {\"x\": 0.07692307692307715, \"y\": -0.43589743589743557, \"z\": -0.1840894148586453}, {\"x\": 0.07692307692307715, \"y\": -0.3846153846153843, \"z\": -0.14201183431952635}, {\"x\": 0.07692307692307715, \"y\": -0.33333333333333304, \"z\": -0.10519395134779727}, {\"x\": 0.07692307692307715, \"y\": -0.28205128205128177, \"z\": -0.07363576594345807}, {\"x\": 0.07692307692307715, \"y\": -0.2307692307692305, \"z\": -0.047337278106508715}, {\"x\": 0.07692307692307715, \"y\": -0.17948717948717924, \"z\": -0.026298487836949252}, {\"x\": 0.07692307692307715, \"y\": -0.12820512820512797, \"z\": -0.010519395134779657}, {\"x\": 0.07692307692307715, \"y\": -0.07692307692307669, \"z\": 7.025630077706069e-17}, {\"x\": 0.07692307692307715, \"y\": -0.02564102564102541, \"z\": 0.005259697567389921}, {\"x\": 0.07692307692307715, \"y\": 0.02564102564102587, \"z\": 0.005259697567389898}, {\"x\": 0.07692307692307715, \"y\": 0.07692307692307715, \"z\": 0.0}, {\"x\": 0.07692307692307715, \"y\": 0.12820512820512842, \"z\": -0.010519395134779772}, {\"x\": 0.07692307692307715, \"y\": 0.17948717948717968, \"z\": -0.02629848783694941}, {\"x\": 0.07692307692307715, \"y\": 0.23076923076923095, \"z\": -0.04733727810650892}, {\"x\": 0.07692307692307715, \"y\": 0.2820512820512822, \"z\": -0.07363576594345832}, {\"x\": 0.07692307692307715, \"y\": 0.3333333333333335, \"z\": -0.10519395134779758}, {\"x\": 0.07692307692307715, \"y\": 0.38461538461538475, \"z\": -0.1420118343195267}, {\"x\": 0.07692307692307715, \"y\": 0.435897435897436, \"z\": -0.1840894148586457}, {\"x\": 0.07692307692307715, \"y\": 0.4871794871794873, \"z\": -0.23142669296515458}, {\"x\": 0.07692307692307715, \"y\": 0.5384615384615385, \"z\": -0.2840236686390533}, {\"x\": 0.07692307692307715, \"y\": 0.5897435897435899, \"z\": -0.341880341880342}, {\"x\": 0.07692307692307715, \"y\": 0.6410256410256412, \"z\": -0.40499671268902054}, {\"x\": 0.07692307692307715, \"y\": 0.6923076923076925, \"z\": -0.473372781065089}, {\"x\": 0.07692307692307715, \"y\": 0.7435897435897438, \"z\": -0.5470085470085474}, {\"x\": 0.07692307692307715, \"y\": 0.7948717948717952, \"z\": -0.6259040105193956}, {\"x\": 0.07692307692307715, \"y\": 0.8461538461538465, \"z\": -0.7100591715976337}, {\"x\": 0.07692307692307715, \"y\": 0.8974358974358978, \"z\": -0.7994740302432617}, {\"x\": 0.07692307692307715, \"y\": 0.9487179487179491, \"z\": -0.8941485864562795}, {\"x\": 0.07692307692307715, \"y\": 1.0, \"z\": -0.9940828402366864}, {\"x\": 0.12820512820512842, \"y\": -0.9487179487179487, \"z\": -0.883629191321499}, {\"x\": 0.12820512820512842, \"y\": -1.0, \"z\": -0.9835634451019066}, {\"x\": 0.12820512820512842, \"y\": -0.8974358974358974, \"z\": -0.7889546351084811}, {\"x\": 0.12820512820512842, \"y\": -0.846153846153846, \"z\": -0.6995397764628531}, {\"x\": 0.12820512820512842, \"y\": -0.7948717948717947, \"z\": -0.6153846153846151}, {\"x\": 0.12820512820512842, \"y\": -0.7435897435897434, \"z\": -0.536489151873767}, {\"x\": 0.12820512820512842, \"y\": -0.6923076923076921, \"z\": -0.4628533859303086}, {\"x\": 0.12820512820512842, \"y\": -0.6410256410256407, \"z\": -0.3944773175542402}, {\"x\": 0.12820512820512842, \"y\": -0.5897435897435894, \"z\": -0.3313609467455617}, {\"x\": 0.12820512820512842, \"y\": -0.5384615384615381, \"z\": -0.27350427350427303}, {\"x\": 0.12820512820512842, \"y\": -0.48717948717948684, \"z\": -0.22090729783037436}, {\"x\": 0.12820512820512842, \"y\": -0.43589743589743557, \"z\": -0.17357001972386552}, {\"x\": 0.12820512820512842, \"y\": -0.3846153846153843, \"z\": -0.13149243918474657}, {\"x\": 0.12820512820512842, \"y\": -0.33333333333333304, \"z\": -0.0946745562130175}, {\"x\": 0.12820512820512842, \"y\": -0.28205128205128177, \"z\": -0.0631163708086783}, {\"x\": 0.12820512820512842, \"y\": -0.2307692307692305, \"z\": -0.036817882971728944}, {\"x\": 0.12820512820512842, \"y\": -0.17948717948717924, \"z\": -0.01577909270216948}, {\"x\": 0.12820512820512842, \"y\": -0.12820512820512797, \"z\": 1.1449174941446927e-16}, {\"x\": 0.12820512820512842, \"y\": -0.07692307692307669, \"z\": 0.010519395134779841}, {\"x\": 0.12820512820512842, \"y\": -0.02564102564102541, \"z\": 0.015779092702169692}, {\"x\": 0.12820512820512842, \"y\": 0.02564102564102587, \"z\": 0.015779092702169668}, {\"x\": 0.12820512820512842, \"y\": 0.07692307692307715, \"z\": 0.010519395134779772}, {\"x\": 0.12820512820512842, \"y\": 0.12820512820512842, \"z\": 0.0}, {\"x\": 0.12820512820512842, \"y\": 0.17948717948717968, \"z\": -0.01577909270216964}, {\"x\": 0.12820512820512842, \"y\": 0.23076923076923095, \"z\": -0.03681788297172915}, {\"x\": 0.12820512820512842, \"y\": 0.2820512820512822, \"z\": -0.06311637080867855}, {\"x\": 0.12820512820512842, \"y\": 0.3333333333333335, \"z\": -0.0946745562130178}, {\"x\": 0.12820512820512842, \"y\": 0.38461538461538475, \"z\": -0.1314924391847469}, {\"x\": 0.12820512820512842, \"y\": 0.435897435897436, \"z\": -0.1735700197238659}, {\"x\": 0.12820512820512842, \"y\": 0.4871794871794873, \"z\": -0.2209072978303748}, {\"x\": 0.12820512820512842, \"y\": 0.5384615384615385, \"z\": -0.27350427350427353}, {\"x\": 0.12820512820512842, \"y\": 0.5897435897435899, \"z\": -0.3313609467455622}, {\"x\": 0.12820512820512842, \"y\": 0.6410256410256412, \"z\": -0.39447731755424076}, {\"x\": 0.12820512820512842, \"y\": 0.6923076923076925, \"z\": -0.4628533859303092}, {\"x\": 0.12820512820512842, \"y\": 0.7435897435897438, \"z\": -0.5364891518737677}, {\"x\": 0.12820512820512842, \"y\": 0.7948717948717952, \"z\": -0.6153846153846159}, {\"x\": 0.12820512820512842, \"y\": 0.8461538461538465, \"z\": -0.6995397764628539}, {\"x\": 0.12820512820512842, \"y\": 0.8974358974358978, \"z\": -0.788954635108482}, {\"x\": 0.12820512820512842, \"y\": 0.9487179487179491, \"z\": -0.8836291913214998}, {\"x\": 0.12820512820512842, \"y\": 1.0, \"z\": -0.9835634451019066}, {\"x\": 0.17948717948717968, \"y\": -0.9487179487179487, \"z\": -0.8678500986193293}, {\"x\": 0.17948717948717968, \"y\": -1.0, \"z\": -0.9677843523997369}, {\"x\": 0.17948717948717968, \"y\": -0.8974358974358974, \"z\": -0.7731755424063114}, {\"x\": 0.17948717948717968, \"y\": -0.846153846153846, \"z\": -0.6837606837606834}, {\"x\": 0.17948717948717968, \"y\": -0.7948717948717947, \"z\": -0.5996055226824454}, {\"x\": 0.17948717948717968, \"y\": -0.7435897435897434, \"z\": -0.5207100591715973}, {\"x\": 0.17948717948717968, \"y\": -0.6923076923076921, \"z\": -0.44707429322813896}, {\"x\": 0.17948717948717968, \"y\": -0.6410256410256407, \"z\": -0.37869822485207055}, {\"x\": 0.17948717948717968, \"y\": -0.5897435897435894, \"z\": -0.31558185404339206}, {\"x\": 0.17948717948717968, \"y\": -0.5384615384615381, \"z\": -0.2577251808021034}, {\"x\": 0.17948717948717968, \"y\": -0.48717948717948684, \"z\": -0.20512820512820473}, {\"x\": 0.17948717948717968, \"y\": -0.43589743589743557, \"z\": -0.1577909270216959}, {\"x\": 0.17948717948717968, \"y\": -0.3846153846153843, \"z\": -0.11571334648257695}, {\"x\": 0.17948717948717968, \"y\": -0.33333333333333304, \"z\": -0.07889546351084786}, {\"x\": 0.17948717948717968, \"y\": -0.28205128205128177, \"z\": -0.04733727810650865}, {\"x\": 0.17948717948717968, \"y\": -0.2307692307692305, \"z\": -0.021038790269559307}, {\"x\": 0.17948717948717968, \"y\": -0.17948717948717924, \"z\": 1.5959455978986625e-16}, {\"x\": 0.17948717948717968, \"y\": -0.12820512820512797, \"z\": 0.015779092702169754}, {\"x\": 0.17948717948717968, \"y\": -0.07692307692307669, \"z\": 0.02629848783694948}, {\"x\": 0.17948717948717968, \"y\": -0.02564102564102541, \"z\": 0.031558185404339335}, {\"x\": 0.17948717948717968, \"y\": 0.02564102564102587, \"z\": 0.03155818540433931}, {\"x\": 0.17948717948717968, \"y\": 0.07692307692307715, \"z\": 0.02629848783694941}, {\"x\": 0.17948717948717968, \"y\": 0.12820512820512842, \"z\": 0.01577909270216964}, {\"x\": 0.17948717948717968, \"y\": 0.17948717948717968, \"z\": 0.0}, {\"x\": 0.17948717948717968, \"y\": 0.23076923076923095, \"z\": -0.021038790269559515}, {\"x\": 0.17948717948717968, \"y\": 0.2820512820512822, \"z\": -0.0473372781065089}, {\"x\": 0.17948717948717968, \"y\": 0.3333333333333335, \"z\": -0.07889546351084817}, {\"x\": 0.17948717948717968, \"y\": 0.38461538461538475, \"z\": -0.11571334648257728}, {\"x\": 0.17948717948717968, \"y\": 0.435897435897436, \"z\": -0.15779092702169628}, {\"x\": 0.17948717948717968, \"y\": 0.4871794871794873, \"z\": -0.20512820512820518}, {\"x\": 0.17948717948717968, \"y\": 0.5384615384615385, \"z\": -0.2577251808021039}, {\"x\": 0.17948717948717968, \"y\": 0.5897435897435899, \"z\": -0.31558185404339256}, {\"x\": 0.17948717948717968, \"y\": 0.6410256410256412, \"z\": -0.3786982248520711}, {\"x\": 0.17948717948717968, \"y\": 0.6923076923076925, \"z\": -0.4470742932281396}, {\"x\": 0.17948717948717968, \"y\": 0.7435897435897438, \"z\": -0.520710059171598}, {\"x\": 0.17948717948717968, \"y\": 0.7948717948717952, \"z\": -0.5996055226824462}, {\"x\": 0.17948717948717968, \"y\": 0.8461538461538465, \"z\": -0.6837606837606842}, {\"x\": 0.17948717948717968, \"y\": 0.8974358974358978, \"z\": -0.7731755424063123}, {\"x\": 0.17948717948717968, \"y\": 0.9487179487179491, \"z\": -0.86785009861933}, {\"x\": 0.17948717948717968, \"y\": 1.0, \"z\": -0.9677843523997369}, {\"x\": 0.23076923076923095, \"y\": -0.9487179487179487, \"z\": -0.8468113083497698}, {\"x\": 0.23076923076923095, \"y\": -1.0, \"z\": -0.9467455621301775}, {\"x\": 0.23076923076923095, \"y\": -0.8974358974358974, \"z\": -0.7521367521367519}, {\"x\": 0.23076923076923095, \"y\": -0.846153846153846, \"z\": -0.662721893491124}, {\"x\": 0.23076923076923095, \"y\": -0.7948717948717947, \"z\": -0.5785667324128859}, {\"x\": 0.23076923076923095, \"y\": -0.7435897435897434, \"z\": -0.4996712689020378}, {\"x\": 0.23076923076923095, \"y\": -0.6923076923076921, \"z\": -0.42603550295857945}, {\"x\": 0.23076923076923095, \"y\": -0.6410256410256407, \"z\": -0.35765943458251104}, {\"x\": 0.23076923076923095, \"y\": -0.5897435897435894, \"z\": -0.29454306377383255}, {\"x\": 0.23076923076923095, \"y\": -0.5384615384615381, \"z\": -0.2366863905325439}, {\"x\": 0.23076923076923095, \"y\": -0.48717948717948684, \"z\": -0.18408941485864522}, {\"x\": 0.23076923076923095, \"y\": -0.43589743589743557, \"z\": -0.13675213675213638}, {\"x\": 0.23076923076923095, \"y\": -0.3846153846153843, \"z\": -0.09467455621301743}, {\"x\": 0.23076923076923095, \"y\": -0.33333333333333304, \"z\": -0.05785667324128834}, {\"x\": 0.23076923076923095, \"y\": -0.28205128205128177, \"z\": -0.026298487836949137}, {\"x\": 0.23076923076923095, \"y\": -0.2307692307692305, \"z\": 2.0816681711721685e-16}, {\"x\": 0.23076923076923095, \"y\": -0.17948717948717924, \"z\": 0.021038790269559675}, {\"x\": 0.23076923076923095, \"y\": -0.12820512820512797, \"z\": 0.03681788297172927}, {\"x\": 0.23076923076923095, \"y\": -0.07692307692307669, \"z\": 0.04733727810650899}, {\"x\": 0.23076923076923095, \"y\": -0.02564102564102541, \"z\": 0.05259697567389885}, {\"x\": 0.23076923076923095, \"y\": 0.02564102564102587, \"z\": 0.05259697567389882}, {\"x\": 0.23076923076923095, \"y\": 0.07692307692307715, \"z\": 0.04733727810650892}, {\"x\": 0.23076923076923095, \"y\": 0.12820512820512842, \"z\": 0.03681788297172915}, {\"x\": 0.23076923076923095, \"y\": 0.17948717948717968, \"z\": 0.021038790269559515}, {\"x\": 0.23076923076923095, \"y\": 0.23076923076923095, \"z\": 0.0}, {\"x\": 0.23076923076923095, \"y\": 0.2820512820512822, \"z\": -0.026298487836949387}, {\"x\": 0.23076923076923095, \"y\": 0.3333333333333335, \"z\": -0.057856673241288646}, {\"x\": 0.23076923076923095, \"y\": 0.38461538461538475, \"z\": -0.09467455621301776}, {\"x\": 0.23076923076923095, \"y\": 0.435897435897436, \"z\": -0.13675213675213677}, {\"x\": 0.23076923076923095, \"y\": 0.4871794871794873, \"z\": -0.18408941485864566}, {\"x\": 0.23076923076923095, \"y\": 0.5384615384615385, \"z\": -0.2366863905325444}, {\"x\": 0.23076923076923095, \"y\": 0.5897435897435899, \"z\": -0.29454306377383305}, {\"x\": 0.23076923076923095, \"y\": 0.6410256410256412, \"z\": -0.3576594345825116}, {\"x\": 0.23076923076923095, \"y\": 0.6923076923076925, \"z\": -0.42603550295858006}, {\"x\": 0.23076923076923095, \"y\": 0.7435897435897438, \"z\": -0.49967126890203845}, {\"x\": 0.23076923076923095, \"y\": 0.7948717948717952, \"z\": -0.5785667324128867}, {\"x\": 0.23076923076923095, \"y\": 0.8461538461538465, \"z\": -0.6627218934911248}, {\"x\": 0.23076923076923095, \"y\": 0.8974358974358978, \"z\": -0.7521367521367528}, {\"x\": 0.23076923076923095, \"y\": 0.9487179487179491, \"z\": -0.8468113083497706}, {\"x\": 0.23076923076923095, \"y\": 1.0, \"z\": -0.9467455621301775}, {\"x\": 0.2820512820512822, \"y\": -0.9487179487179487, \"z\": -0.8205128205128204}, {\"x\": 0.2820512820512822, \"y\": -1.0, \"z\": -0.920447074293228}, {\"x\": 0.2820512820512822, \"y\": -0.8974358974358974, \"z\": -0.7258382642998025}, {\"x\": 0.2820512820512822, \"y\": -0.846153846153846, \"z\": -0.6364234056541745}, {\"x\": 0.2820512820512822, \"y\": -0.7948717948717947, \"z\": -0.5522682445759365}, {\"x\": 0.2820512820512822, \"y\": -0.7435897435897434, \"z\": -0.4733727810650884}, {\"x\": 0.2820512820512822, \"y\": -0.6923076923076921, \"z\": -0.39973701512163007}, {\"x\": 0.2820512820512822, \"y\": -0.6410256410256407, \"z\": -0.33136094674556166}, {\"x\": 0.2820512820512822, \"y\": -0.5897435897435894, \"z\": -0.26824457593688317}, {\"x\": 0.2820512820512822, \"y\": -0.5384615384615381, \"z\": -0.2103879026955945}, {\"x\": 0.2820512820512822, \"y\": -0.48717948717948684, \"z\": -0.15779092702169584}, {\"x\": 0.2820512820512822, \"y\": -0.43589743589743557, \"z\": -0.11045364891518698}, {\"x\": 0.2820512820512822, \"y\": -0.3846153846153843, \"z\": -0.06837606837606804}, {\"x\": 0.2820512820512822, \"y\": -0.33333333333333304, \"z\": -0.031558185404338954}, {\"x\": 0.2820512820512822, \"y\": -0.28205128205128177, \"z\": 2.498001805406602e-16}, {\"x\": 0.2820512820512822, \"y\": -0.2307692307692305, \"z\": 0.026298487836949595}, {\"x\": 0.2820512820512822, \"y\": -0.17948717948717924, \"z\": 0.04733727810650906}, {\"x\": 0.2820512820512822, \"y\": -0.12820512820512797, \"z\": 0.06311637080867866}, {\"x\": 0.2820512820512822, \"y\": -0.07692307692307669, \"z\": 0.07363576594345839}, {\"x\": 0.2820512820512822, \"y\": -0.02564102564102541, \"z\": 0.07889546351084824}, {\"x\": 0.2820512820512822, \"y\": 0.02564102564102587, \"z\": 0.07889546351084821}, {\"x\": 0.2820512820512822, \"y\": 0.07692307692307715, \"z\": 0.07363576594345832}, {\"x\": 0.2820512820512822, \"y\": 0.12820512820512842, \"z\": 0.06311637080867855}, {\"x\": 0.2820512820512822, \"y\": 0.17948717948717968, \"z\": 0.0473372781065089}, {\"x\": 0.2820512820512822, \"y\": 0.23076923076923095, \"z\": 0.026298487836949387}, {\"x\": 0.2820512820512822, \"y\": 0.2820512820512822, \"z\": 0.0}, {\"x\": 0.2820512820512822, \"y\": 0.3333333333333335, \"z\": -0.03155818540433926}, {\"x\": 0.2820512820512822, \"y\": 0.38461538461538475, \"z\": -0.06837606837606837}, {\"x\": 0.2820512820512822, \"y\": 0.435897435897436, \"z\": -0.11045364891518737}, {\"x\": 0.2820512820512822, \"y\": 0.4871794871794873, \"z\": -0.15779092702169628}, {\"x\": 0.2820512820512822, \"y\": 0.5384615384615385, \"z\": -0.21038790269559499}, {\"x\": 0.2820512820512822, \"y\": 0.5897435897435899, \"z\": -0.26824457593688367}, {\"x\": 0.2820512820512822, \"y\": 0.6410256410256412, \"z\": -0.3313609467455622}, {\"x\": 0.2820512820512822, \"y\": 0.6923076923076925, \"z\": -0.3997370151216307}, {\"x\": 0.2820512820512822, \"y\": 0.7435897435897438, \"z\": -0.47337278106508907}, {\"x\": 0.2820512820512822, \"y\": 0.7948717948717952, \"z\": -0.5522682445759373}, {\"x\": 0.2820512820512822, \"y\": 0.8461538461538465, \"z\": -0.6364234056541753}, {\"x\": 0.2820512820512822, \"y\": 0.8974358974358978, \"z\": -0.7258382642998034}, {\"x\": 0.2820512820512822, \"y\": 0.9487179487179491, \"z\": -0.8205128205128212}, {\"x\": 0.2820512820512822, \"y\": 1.0, \"z\": -0.920447074293228}, {\"x\": 0.3333333333333335, \"y\": -0.9487179487179487, \"z\": -0.7889546351084811}, {\"x\": 0.3333333333333335, \"y\": -1.0, \"z\": -0.8888888888888888}, {\"x\": 0.3333333333333335, \"y\": -0.8974358974358974, \"z\": -0.6942800788954633}, {\"x\": 0.3333333333333335, \"y\": -0.846153846153846, \"z\": -0.6048652202498352}, {\"x\": 0.3333333333333335, \"y\": -0.7948717948717947, \"z\": -0.5207100591715972}, {\"x\": 0.3333333333333335, \"y\": -0.7435897435897434, \"z\": -0.44181459566074915}, {\"x\": 0.3333333333333335, \"y\": -0.6923076923076921, \"z\": -0.3681788297172908}, {\"x\": 0.3333333333333335, \"y\": -0.6410256410256407, \"z\": -0.2998027613412224}, {\"x\": 0.3333333333333335, \"y\": -0.5897435897435894, \"z\": -0.23668639053254392}, {\"x\": 0.3333333333333335, \"y\": -0.5384615384615381, \"z\": -0.17882971729125524}, {\"x\": 0.3333333333333335, \"y\": -0.48717948717948684, \"z\": -0.12623274161735656}, {\"x\": 0.3333333333333335, \"y\": -0.43589743589743557, \"z\": -0.07889546351084772}, {\"x\": 0.3333333333333335, \"y\": -0.3846153846153843, \"z\": -0.03681788297172878}, {\"x\": 0.3333333333333335, \"y\": -0.33333333333333304, \"z\": 3.0531133177191805e-16}, {\"x\": 0.3333333333333335, \"y\": -0.28205128205128177, \"z\": 0.03155818540433951}, {\"x\": 0.3333333333333335, \"y\": -0.2307692307692305, \"z\": 0.057856673241288854}, {\"x\": 0.3333333333333335, \"y\": -0.17948717948717924, \"z\": 0.07889546351084832}, {\"x\": 0.3333333333333335, \"y\": -0.12820512820512797, \"z\": 0.09467455621301792}, {\"x\": 0.3333333333333335, \"y\": -0.07692307692307669, \"z\": 0.10519395134779765}, {\"x\": 0.3333333333333335, \"y\": -0.02564102564102541, \"z\": 0.1104536489151875}, {\"x\": 0.3333333333333335, \"y\": 0.02564102564102587, \"z\": 0.11045364891518747}, {\"x\": 0.3333333333333335, \"y\": 0.07692307692307715, \"z\": 0.10519395134779758}, {\"x\": 0.3333333333333335, \"y\": 0.12820512820512842, \"z\": 0.0946745562130178}, {\"x\": 0.3333333333333335, \"y\": 0.17948717948717968, \"z\": 0.07889546351084817}, {\"x\": 0.3333333333333335, \"y\": 0.23076923076923095, \"z\": 0.057856673241288646}, {\"x\": 0.3333333333333335, \"y\": 0.2820512820512822, \"z\": 0.03155818540433926}, {\"x\": 0.3333333333333335, \"y\": 0.3333333333333335, \"z\": 0.0}, {\"x\": 0.3333333333333335, \"y\": 0.38461538461538475, \"z\": -0.03681788297172911}, {\"x\": 0.3333333333333335, \"y\": 0.435897435897436, \"z\": -0.07889546351084811}, {\"x\": 0.3333333333333335, \"y\": 0.4871794871794873, \"z\": -0.126232741617357}, {\"x\": 0.3333333333333335, \"y\": 0.5384615384615385, \"z\": -0.17882971729125574}, {\"x\": 0.3333333333333335, \"y\": 0.5897435897435899, \"z\": -0.23668639053254442}, {\"x\": 0.3333333333333335, \"y\": 0.6410256410256412, \"z\": -0.29980276134122297}, {\"x\": 0.3333333333333335, \"y\": 0.6923076923076925, \"z\": -0.36817882971729143}, {\"x\": 0.3333333333333335, \"y\": 0.7435897435897438, \"z\": -0.4418145956607498}, {\"x\": 0.3333333333333335, \"y\": 0.7948717948717952, \"z\": -0.5207100591715981}, {\"x\": 0.3333333333333335, \"y\": 0.8461538461538465, \"z\": -0.6048652202498361}, {\"x\": 0.3333333333333335, \"y\": 0.8974358974358978, \"z\": -0.6942800788954642}, {\"x\": 0.3333333333333335, \"y\": 0.9487179487179491, \"z\": -0.788954635108482}, {\"x\": 0.3333333333333335, \"y\": 1.0, \"z\": -0.8888888888888888}, {\"x\": 0.38461538461538475, \"y\": -0.9487179487179487, \"z\": -0.752136752136752}, {\"x\": 0.38461538461538475, \"y\": -1.0, \"z\": -0.8520710059171597}, {\"x\": 0.38461538461538475, \"y\": -0.8974358974358974, \"z\": -0.6574621959237341}, {\"x\": 0.38461538461538475, \"y\": -0.846153846153846, \"z\": -0.5680473372781062}, {\"x\": 0.38461538461538475, \"y\": -0.7948717948717947, \"z\": -0.48389217619986813}, {\"x\": 0.38461538461538475, \"y\": -0.7435897435897434, \"z\": -0.40499671268902004}, {\"x\": 0.38461538461538475, \"y\": -0.6923076923076921, \"z\": -0.3313609467455617}, {\"x\": 0.38461538461538475, \"y\": -0.6410256410256407, \"z\": -0.2629848783694933}, {\"x\": 0.38461538461538475, \"y\": -0.5897435897435894, \"z\": -0.1998685075608148}, {\"x\": 0.38461538461538475, \"y\": -0.5384615384615381, \"z\": -0.14201183431952613}, {\"x\": 0.38461538461538475, \"y\": -0.48717948717948684, \"z\": -0.08941485864562745}, {\"x\": 0.38461538461538475, \"y\": -0.43589743589743557, \"z\": -0.042077580539118614}, {\"x\": 0.38461538461538475, \"y\": -0.3846153846153843, \"z\": 3.3306690738754696e-16}, {\"x\": 0.38461538461538475, \"y\": -0.33333333333333304, \"z\": 0.036817882971729415}, {\"x\": 0.38461538461538475, \"y\": -0.28205128205128177, \"z\": 0.06837606837606862}, {\"x\": 0.38461538461538475, \"y\": -0.2307692307692305, \"z\": 0.09467455621301796}, {\"x\": 0.38461538461538475, \"y\": -0.17948717948717924, \"z\": 0.11571334648257743}, {\"x\": 0.38461538461538475, \"y\": -0.12820512820512797, \"z\": 0.131492439184747}, {\"x\": 0.38461538461538475, \"y\": -0.07692307692307669, \"z\": 0.14201183431952674}, {\"x\": 0.38461538461538475, \"y\": -0.02564102564102541, \"z\": 0.1472715318869166}, {\"x\": 0.38461538461538475, \"y\": 0.02564102564102587, \"z\": 0.14727153188691658}, {\"x\": 0.38461538461538475, \"y\": 0.07692307692307715, \"z\": 0.1420118343195267}, {\"x\": 0.38461538461538475, \"y\": 0.12820512820512842, \"z\": 0.1314924391847469}, {\"x\": 0.38461538461538475, \"y\": 0.17948717948717968, \"z\": 0.11571334648257728}, {\"x\": 0.38461538461538475, \"y\": 0.23076923076923095, \"z\": 0.09467455621301776}, {\"x\": 0.38461538461538475, \"y\": 0.2820512820512822, \"z\": 0.06837606837606837}, {\"x\": 0.38461538461538475, \"y\": 0.3333333333333335, \"z\": 0.03681788297172911}, {\"x\": 0.38461538461538475, \"y\": 0.38461538461538475, \"z\": 0.0}, {\"x\": 0.38461538461538475, \"y\": 0.435897435897436, \"z\": -0.042077580539119}, {\"x\": 0.38461538461538475, \"y\": 0.4871794871794873, \"z\": -0.0894148586456279}, {\"x\": 0.38461538461538475, \"y\": 0.5384615384615385, \"z\": -0.14201183431952663}, {\"x\": 0.38461538461538475, \"y\": 0.5897435897435899, \"z\": -0.1998685075608153}, {\"x\": 0.38461538461538475, \"y\": 0.6410256410256412, \"z\": -0.26298487836949386}, {\"x\": 0.38461538461538475, \"y\": 0.6923076923076925, \"z\": -0.3313609467455623}, {\"x\": 0.38461538461538475, \"y\": 0.7435897435897438, \"z\": -0.4049967126890207}, {\"x\": 0.38461538461538475, \"y\": 0.7948717948717952, \"z\": -0.4838921761998689}, {\"x\": 0.38461538461538475, \"y\": 0.8461538461538465, \"z\": -0.568047337278107}, {\"x\": 0.38461538461538475, \"y\": 0.8974358974358978, \"z\": -0.657462195923735}, {\"x\": 0.38461538461538475, \"y\": 0.9487179487179491, \"z\": -0.7521367521367528}, {\"x\": 0.38461538461538475, \"y\": 1.0, \"z\": -0.8520710059171597}, {\"x\": 0.435897435897436, \"y\": -0.9487179487179487, \"z\": -0.710059171597633}, {\"x\": 0.435897435897436, \"y\": -1.0, \"z\": -0.8099934253780406}, {\"x\": 0.435897435897436, \"y\": -0.8974358974358974, \"z\": -0.6153846153846151}, {\"x\": 0.435897435897436, \"y\": -0.846153846153846, \"z\": -0.5259697567389872}, {\"x\": 0.435897435897436, \"y\": -0.7948717948717947, \"z\": -0.4418145956607491}, {\"x\": 0.435897435897436, \"y\": -0.7435897435897434, \"z\": -0.362919132149901}, {\"x\": 0.435897435897436, \"y\": -0.6923076923076921, \"z\": -0.2892833662064427}, {\"x\": 0.435897435897436, \"y\": -0.6410256410256407, \"z\": -0.2209072978303743}, {\"x\": 0.435897435897436, \"y\": -0.5897435897435894, \"z\": -0.1577909270216958}, {\"x\": 0.435897435897436, \"y\": -0.5384615384615381, \"z\": -0.09993425378040713}, {\"x\": 0.435897435897436, \"y\": -0.48717948717948684, \"z\": -0.04733727810650845}, {\"x\": 0.435897435897436, \"y\": -0.43589743589743557, \"z\": 3.885780586188048e-16}, {\"x\": 0.435897435897436, \"y\": -0.3846153846153843, \"z\": 0.042077580539119336}, {\"x\": 0.435897435897436, \"y\": -0.33333333333333304, \"z\": 0.07889546351084842}, {\"x\": 0.435897435897436, \"y\": -0.28205128205128177, \"z\": 0.11045364891518762}, {\"x\": 0.435897435897436, \"y\": -0.2307692307692305, \"z\": 0.13675213675213696}, {\"x\": 0.435897435897436, \"y\": -0.17948717948717924, \"z\": 0.15779092702169645}, {\"x\": 0.435897435897436, \"y\": -0.12820512820512797, \"z\": 0.17357001972386604}, {\"x\": 0.435897435897436, \"y\": -0.07692307692307669, \"z\": 0.18408941485864574}, {\"x\": 0.435897435897436, \"y\": -0.02564102564102541, \"z\": 0.1893491124260356}, {\"x\": 0.435897435897436, \"y\": 0.02564102564102587, \"z\": 0.18934911242603558}, {\"x\": 0.435897435897436, \"y\": 0.07692307692307715, \"z\": 0.1840894148586457}, {\"x\": 0.435897435897436, \"y\": 0.12820512820512842, \"z\": 0.1735700197238659}, {\"x\": 0.435897435897436, \"y\": 0.17948717948717968, \"z\": 0.15779092702169628}, {\"x\": 0.435897435897436, \"y\": 0.23076923076923095, \"z\": 0.13675213675213677}, {\"x\": 0.435897435897436, \"y\": 0.2820512820512822, \"z\": 0.11045364891518737}, {\"x\": 0.435897435897436, \"y\": 0.3333333333333335, \"z\": 0.07889546351084811}, {\"x\": 0.435897435897436, \"y\": 0.38461538461538475, \"z\": 0.042077580539119}, {\"x\": 0.435897435897436, \"y\": 0.435897435897436, \"z\": 0.0}, {\"x\": 0.435897435897436, \"y\": 0.4871794871794873, \"z\": -0.047337278106508895}, {\"x\": 0.435897435897436, \"y\": 0.5384615384615385, \"z\": -0.09993425378040763}, {\"x\": 0.435897435897436, \"y\": 0.5897435897435899, \"z\": -0.1577909270216963}, {\"x\": 0.435897435897436, \"y\": 0.6410256410256412, \"z\": -0.22090729783037485}, {\"x\": 0.435897435897436, \"y\": 0.6923076923076925, \"z\": -0.28928336620644335}, {\"x\": 0.435897435897436, \"y\": 0.7435897435897438, \"z\": -0.3629191321499017}, {\"x\": 0.435897435897436, \"y\": 0.7948717948717952, \"z\": -0.4418145956607499}, {\"x\": 0.435897435897436, \"y\": 0.8461538461538465, \"z\": -0.5259697567389879}, {\"x\": 0.435897435897436, \"y\": 0.8974358974358978, \"z\": -0.615384615384616}, {\"x\": 0.435897435897436, \"y\": 0.9487179487179491, \"z\": -0.7100591715976338}, {\"x\": 0.435897435897436, \"y\": 1.0, \"z\": -0.8099934253780406}, {\"x\": 0.4871794871794873, \"y\": -0.9487179487179487, \"z\": -0.6627218934911241}, {\"x\": 0.4871794871794873, \"y\": -1.0, \"z\": -0.7626561472715317}, {\"x\": 0.4871794871794873, \"y\": -0.8974358974358974, \"z\": -0.5680473372781062}, {\"x\": 0.4871794871794873, \"y\": -0.846153846153846, \"z\": -0.47863247863247826}, {\"x\": 0.4871794871794873, \"y\": -0.7948717948717947, \"z\": -0.3944773175542402}, {\"x\": 0.4871794871794873, \"y\": -0.7435897435897434, \"z\": -0.3155818540433921}, {\"x\": 0.4871794871794873, \"y\": -0.6923076923076921, \"z\": -0.24194608809993381}, {\"x\": 0.4871794871794873, \"y\": -0.6410256410256407, \"z\": -0.1735700197238654}, {\"x\": 0.4871794871794873, \"y\": -0.5897435897435894, \"z\": -0.11045364891518691}, {\"x\": 0.4871794871794873, \"y\": -0.5384615384615381, \"z\": -0.05259697567389823}, {\"x\": 0.4871794871794873, \"y\": -0.48717948717948684, \"z\": 4.440892098500626e-16}, {\"x\": 0.4871794871794873, \"y\": -0.43589743589743557, \"z\": 0.047337278106509284}, {\"x\": 0.4871794871794873, \"y\": -0.3846153846153843, \"z\": 0.08941485864562823}, {\"x\": 0.4871794871794873, \"y\": -0.33333333333333304, \"z\": 0.1262327416173573}, {\"x\": 0.4871794871794873, \"y\": -0.28205128205128177, \"z\": 0.1577909270216965}, {\"x\": 0.4871794871794873, \"y\": -0.2307692307692305, \"z\": 0.18408941485864586}, {\"x\": 0.4871794871794873, \"y\": -0.17948717948717924, \"z\": 0.20512820512820534}, {\"x\": 0.4871794871794873, \"y\": -0.12820512820512797, \"z\": 0.22090729783037494}, {\"x\": 0.4871794871794873, \"y\": -0.07692307692307669, \"z\": 0.23142669296515464}, {\"x\": 0.4871794871794873, \"y\": -0.02564102564102541, \"z\": 0.2366863905325445}, {\"x\": 0.4871794871794873, \"y\": 0.02564102564102587, \"z\": 0.23668639053254448}, {\"x\": 0.4871794871794873, \"y\": 0.07692307692307715, \"z\": 0.23142669296515458}, {\"x\": 0.4871794871794873, \"y\": 0.12820512820512842, \"z\": 0.2209072978303748}, {\"x\": 0.4871794871794873, \"y\": 0.17948717948717968, \"z\": 0.20512820512820518}, {\"x\": 0.4871794871794873, \"y\": 0.23076923076923095, \"z\": 0.18408941485864566}, {\"x\": 0.4871794871794873, \"y\": 0.2820512820512822, \"z\": 0.15779092702169628}, {\"x\": 0.4871794871794873, \"y\": 0.3333333333333335, \"z\": 0.126232741617357}, {\"x\": 0.4871794871794873, \"y\": 0.38461538461538475, \"z\": 0.0894148586456279}, {\"x\": 0.4871794871794873, \"y\": 0.435897435897436, \"z\": 0.047337278106508895}, {\"x\": 0.4871794871794873, \"y\": 0.4871794871794873, \"z\": 0.0}, {\"x\": 0.4871794871794873, \"y\": 0.5384615384615385, \"z\": -0.05259697567389873}, {\"x\": 0.4871794871794873, \"y\": 0.5897435897435899, \"z\": -0.11045364891518741}, {\"x\": 0.4871794871794873, \"y\": 0.6410256410256412, \"z\": -0.17357001972386596}, {\"x\": 0.4871794871794873, \"y\": 0.6923076923076925, \"z\": -0.24194608809993443}, {\"x\": 0.4871794871794873, \"y\": 0.7435897435897438, \"z\": -0.3155818540433928}, {\"x\": 0.4871794871794873, \"y\": 0.7948717948717952, \"z\": -0.394477317554241}, {\"x\": 0.4871794871794873, \"y\": 0.8461538461538465, \"z\": -0.47863247863247904}, {\"x\": 0.4871794871794873, \"y\": 0.8974358974358978, \"z\": -0.5680473372781071}, {\"x\": 0.4871794871794873, \"y\": 0.9487179487179491, \"z\": -0.6627218934911249}, {\"x\": 0.4871794871794873, \"y\": 1.0, \"z\": -0.7626561472715317}, {\"x\": 0.5384615384615385, \"y\": -0.9487179487179487, \"z\": -0.6101249178172254}, {\"x\": 0.5384615384615385, \"y\": -1.0, \"z\": -0.710059171597633}, {\"x\": 0.5384615384615385, \"y\": -0.8974358974358974, \"z\": -0.5154503616042074}, {\"x\": 0.5384615384615385, \"y\": -0.846153846153846, \"z\": -0.42603550295857956}, {\"x\": 0.5384615384615385, \"y\": -0.7948717948717947, \"z\": -0.3418803418803415}, {\"x\": 0.5384615384615385, \"y\": -0.7435897435897434, \"z\": -0.2629848783694934}, {\"x\": 0.5384615384615385, \"y\": -0.6923076923076921, \"z\": -0.18934911242603508}, {\"x\": 0.5384615384615385, \"y\": -0.6410256410256407, \"z\": -0.12097304404996667}, {\"x\": 0.5384615384615385, \"y\": -0.5897435897435894, \"z\": -0.05785667324128818}, {\"x\": 0.5384615384615385, \"y\": -0.5384615384615381, \"z\": 4.996003610813204e-16}, {\"x\": 0.5384615384615385, \"y\": -0.48717948717948684, \"z\": 0.05259697567389918}, {\"x\": 0.5384615384615385, \"y\": -0.43589743589743557, \"z\": 0.09993425378040802}, {\"x\": 0.5384615384615385, \"y\": -0.3846153846153843, \"z\": 0.14201183431952696}, {\"x\": 0.5384615384615385, \"y\": -0.33333333333333304, \"z\": 0.17882971729125605}, {\"x\": 0.5384615384615385, \"y\": -0.28205128205128177, \"z\": 0.21038790269559526}, {\"x\": 0.5384615384615385, \"y\": -0.2307692307692305, \"z\": 0.2366863905325446}, {\"x\": 0.5384615384615385, \"y\": -0.17948717948717924, \"z\": 0.25772518080210405}, {\"x\": 0.5384615384615385, \"y\": -0.12820512820512797, \"z\": 0.27350427350427364}, {\"x\": 0.5384615384615385, \"y\": -0.07692307692307669, \"z\": 0.2840236686390534}, {\"x\": 0.5384615384615385, \"y\": -0.02564102564102541, \"z\": 0.28928336620644324}, {\"x\": 0.5384615384615385, \"y\": 0.02564102564102587, \"z\": 0.28928336620644324}, {\"x\": 0.5384615384615385, \"y\": 0.07692307692307715, \"z\": 0.2840236686390533}, {\"x\": 0.5384615384615385, \"y\": 0.12820512820512842, \"z\": 0.27350427350427353}, {\"x\": 0.5384615384615385, \"y\": 0.17948717948717968, \"z\": 0.2577251808021039}, {\"x\": 0.5384615384615385, \"y\": 0.23076923076923095, \"z\": 0.2366863905325444}, {\"x\": 0.5384615384615385, \"y\": 0.2820512820512822, \"z\": 0.21038790269559499}, {\"x\": 0.5384615384615385, \"y\": 0.3333333333333335, \"z\": 0.17882971729125574}, {\"x\": 0.5384615384615385, \"y\": 0.38461538461538475, \"z\": 0.14201183431952663}, {\"x\": 0.5384615384615385, \"y\": 0.435897435897436, \"z\": 0.09993425378040763}, {\"x\": 0.5384615384615385, \"y\": 0.4871794871794873, \"z\": 0.05259697567389873}, {\"x\": 0.5384615384615385, \"y\": 0.5384615384615385, \"z\": 0.0}, {\"x\": 0.5384615384615385, \"y\": 0.5897435897435899, \"z\": -0.05785667324128868}, {\"x\": 0.5384615384615385, \"y\": 0.6410256410256412, \"z\": -0.12097304404996723}, {\"x\": 0.5384615384615385, \"y\": 0.6923076923076925, \"z\": -0.1893491124260357}, {\"x\": 0.5384615384615385, \"y\": 0.7435897435897438, \"z\": -0.2629848783694941}, {\"x\": 0.5384615384615385, \"y\": 0.7948717948717952, \"z\": -0.3418803418803423}, {\"x\": 0.5384615384615385, \"y\": 0.8461538461538465, \"z\": -0.42603550295858034}, {\"x\": 0.5384615384615385, \"y\": 0.8974358974358978, \"z\": -0.5154503616042083}, {\"x\": 0.5384615384615385, \"y\": 0.9487179487179491, \"z\": -0.6101249178172261}, {\"x\": 0.5384615384615385, \"y\": 1.0, \"z\": -0.710059171597633}, {\"x\": 0.5897435897435899, \"y\": -0.9487179487179487, \"z\": -0.5522682445759367}, {\"x\": 0.5897435897435899, \"y\": -1.0, \"z\": -0.6522024983563444}, {\"x\": 0.5897435897435899, \"y\": -0.8974358974358974, \"z\": -0.4575936883629188}, {\"x\": 0.5897435897435899, \"y\": -0.846153846153846, \"z\": -0.3681788297172909}, {\"x\": 0.5897435897435899, \"y\": -0.7948717948717947, \"z\": -0.2840236686390528}, {\"x\": 0.5897435897435899, \"y\": -0.7435897435897434, \"z\": -0.20512820512820473}, {\"x\": 0.5897435897435899, \"y\": -0.6923076923076921, \"z\": -0.1314924391847464}, {\"x\": 0.5897435897435899, \"y\": -0.6410256410256407, \"z\": -0.06311637080867799}, {\"x\": 0.5897435897435899, \"y\": -0.5897435897435894, \"z\": 4.996003610813204e-16}, {\"x\": 0.5897435897435899, \"y\": -0.5384615384615381, \"z\": 0.05785667324128918}, {\"x\": 0.5897435897435899, \"y\": -0.48717948717948684, \"z\": 0.11045364891518786}, {\"x\": 0.5897435897435899, \"y\": -0.43589743589743557, \"z\": 0.1577909270216967}, {\"x\": 0.5897435897435899, \"y\": -0.3846153846153843, \"z\": 0.19986850756081564}, {\"x\": 0.5897435897435899, \"y\": -0.33333333333333304, \"z\": 0.23668639053254473}, {\"x\": 0.5897435897435899, \"y\": -0.28205128205128177, \"z\": 0.26824457593688394}, {\"x\": 0.5897435897435899, \"y\": -0.2307692307692305, \"z\": 0.29454306377383327}, {\"x\": 0.5897435897435899, \"y\": -0.17948717948717924, \"z\": 0.31558185404339273}, {\"x\": 0.5897435897435899, \"y\": -0.12820512820512797, \"z\": 0.3313609467455623}, {\"x\": 0.5897435897435899, \"y\": -0.07692307692307669, \"z\": 0.34188034188034205}, {\"x\": 0.5897435897435899, \"y\": -0.02564102564102541, \"z\": 0.3471400394477319}, {\"x\": 0.5897435897435899, \"y\": 0.02564102564102587, \"z\": 0.3471400394477319}, {\"x\": 0.5897435897435899, \"y\": 0.07692307692307715, \"z\": 0.341880341880342}, {\"x\": 0.5897435897435899, \"y\": 0.12820512820512842, \"z\": 0.3313609467455622}, {\"x\": 0.5897435897435899, \"y\": 0.17948717948717968, \"z\": 0.31558185404339256}, {\"x\": 0.5897435897435899, \"y\": 0.23076923076923095, \"z\": 0.29454306377383305}, {\"x\": 0.5897435897435899, \"y\": 0.2820512820512822, \"z\": 0.26824457593688367}, {\"x\": 0.5897435897435899, \"y\": 0.3333333333333335, \"z\": 0.23668639053254442}, {\"x\": 0.5897435897435899, \"y\": 0.38461538461538475, \"z\": 0.1998685075608153}, {\"x\": 0.5897435897435899, \"y\": 0.435897435897436, \"z\": 0.1577909270216963}, {\"x\": 0.5897435897435899, \"y\": 0.4871794871794873, \"z\": 0.11045364891518741}, {\"x\": 0.5897435897435899, \"y\": 0.5384615384615385, \"z\": 0.05785667324128868}, {\"x\": 0.5897435897435899, \"y\": 0.5897435897435899, \"z\": 0.0}, {\"x\": 0.5897435897435899, \"y\": 0.6410256410256412, \"z\": -0.06311637080867855}, {\"x\": 0.5897435897435899, \"y\": 0.6923076923076925, \"z\": -0.131492439184747}, {\"x\": 0.5897435897435899, \"y\": 0.7435897435897438, \"z\": -0.2051282051282054}, {\"x\": 0.5897435897435899, \"y\": 0.7948717948717952, \"z\": -0.2840236686390536}, {\"x\": 0.5897435897435899, \"y\": 0.8461538461538465, \"z\": -0.36817882971729166}, {\"x\": 0.5897435897435899, \"y\": 0.8974358974358978, \"z\": -0.4575936883629197}, {\"x\": 0.5897435897435899, \"y\": 0.9487179487179491, \"z\": -0.5522682445759375}, {\"x\": 0.5897435897435899, \"y\": 1.0, \"z\": -0.6522024983563444}, {\"x\": 0.6410256410256412, \"y\": -0.9487179487179487, \"z\": -0.48915187376725816}, {\"x\": 0.6410256410256412, \"y\": -1.0, \"z\": -0.5890861275476658}, {\"x\": 0.6410256410256412, \"y\": -0.8974358974358974, \"z\": -0.39447731755424026}, {\"x\": 0.6410256410256412, \"y\": -0.846153846153846, \"z\": -0.30506245890861233}, {\"x\": 0.6410256410256412, \"y\": -0.7948717948717947, \"z\": -0.22090729783037427}, {\"x\": 0.6410256410256412, \"y\": -0.7435897435897434, \"z\": -0.1420118343195262}, {\"x\": 0.6410256410256412, \"y\": -0.6923076923076921, \"z\": -0.06837606837606786}, {\"x\": 0.6410256410256412, \"y\": -0.6410256410256407, \"z\": 5.551115123125783e-16}, {\"x\": 0.6410256410256412, \"y\": -0.5897435897435894, \"z\": 0.06311637080867905}, {\"x\": 0.6410256410256412, \"y\": -0.5384615384615381, \"z\": 0.12097304404996773}, {\"x\": 0.6410256410256412, \"y\": -0.48717948717948684, \"z\": 0.1735700197238664}, {\"x\": 0.6410256410256412, \"y\": -0.43589743589743557, \"z\": 0.22090729783037524}, {\"x\": 0.6410256410256412, \"y\": -0.3846153846153843, \"z\": 0.2629848783694942}, {\"x\": 0.6410256410256412, \"y\": -0.33333333333333304, \"z\": 0.2998027613412233}, {\"x\": 0.6410256410256412, \"y\": -0.28205128205128177, \"z\": 0.3313609467455625}, {\"x\": 0.6410256410256412, \"y\": -0.2307692307692305, \"z\": 0.3576594345825118}, {\"x\": 0.6410256410256412, \"y\": -0.17948717948717924, \"z\": 0.3786982248520713}, {\"x\": 0.6410256410256412, \"y\": -0.12820512820512797, \"z\": 0.39447731755424087}, {\"x\": 0.6410256410256412, \"y\": -0.07692307692307669, \"z\": 0.4049967126890206}, {\"x\": 0.6410256410256412, \"y\": -0.02564102564102541, \"z\": 0.41025641025641046}, {\"x\": 0.6410256410256412, \"y\": 0.02564102564102587, \"z\": 0.41025641025641046}, {\"x\": 0.6410256410256412, \"y\": 0.07692307692307715, \"z\": 0.40499671268902054}, {\"x\": 0.6410256410256412, \"y\": 0.12820512820512842, \"z\": 0.39447731755424076}, {\"x\": 0.6410256410256412, \"y\": 0.17948717948717968, \"z\": 0.3786982248520711}, {\"x\": 0.6410256410256412, \"y\": 0.23076923076923095, \"z\": 0.3576594345825116}, {\"x\": 0.6410256410256412, \"y\": 0.2820512820512822, \"z\": 0.3313609467455622}, {\"x\": 0.6410256410256412, \"y\": 0.3333333333333335, \"z\": 0.29980276134122297}, {\"x\": 0.6410256410256412, \"y\": 0.38461538461538475, \"z\": 0.26298487836949386}, {\"x\": 0.6410256410256412, \"y\": 0.435897435897436, \"z\": 0.22090729783037485}, {\"x\": 0.6410256410256412, \"y\": 0.4871794871794873, \"z\": 0.17357001972386596}, {\"x\": 0.6410256410256412, \"y\": 0.5384615384615385, \"z\": 0.12097304404996723}, {\"x\": 0.6410256410256412, \"y\": 0.5897435897435899, \"z\": 0.06311637080867855}, {\"x\": 0.6410256410256412, \"y\": 0.6410256410256412, \"z\": 0.0}, {\"x\": 0.6410256410256412, \"y\": 0.6923076923076925, \"z\": -0.06837606837606847}, {\"x\": 0.6410256410256412, \"y\": 0.7435897435897438, \"z\": -0.14201183431952685}, {\"x\": 0.6410256410256412, \"y\": 0.7948717948717952, \"z\": -0.22090729783037505}, {\"x\": 0.6410256410256412, \"y\": 0.8461538461538465, \"z\": -0.3050624589086131}, {\"x\": 0.6410256410256412, \"y\": 0.8974358974358978, \"z\": -0.39447731755424115}, {\"x\": 0.6410256410256412, \"y\": 0.9487179487179491, \"z\": -0.48915187376725894}, {\"x\": 0.6410256410256412, \"y\": 1.0, \"z\": -0.5890861275476658}, {\"x\": 0.6923076923076925, \"y\": -0.9487179487179487, \"z\": -0.4207758053911897}, {\"x\": 0.6923076923076925, \"y\": -1.0, \"z\": -0.5207100591715974}, {\"x\": 0.6923076923076925, \"y\": -0.8974358974358974, \"z\": -0.3261012491781718}, {\"x\": 0.6923076923076925, \"y\": -0.846153846153846, \"z\": -0.23668639053254387}, {\"x\": 0.6923076923076925, \"y\": -0.7948717948717947, \"z\": -0.1525312294543058}, {\"x\": 0.6923076923076925, \"y\": -0.7435897435897434, \"z\": -0.07363576594345772}, {\"x\": 0.6923076923076925, \"y\": -0.6923076923076921, \"z\": 6.106226635438361e-16}, {\"x\": 0.6923076923076925, \"y\": -0.6410256410256407, \"z\": 0.06837606837606902}, {\"x\": 0.6923076923076925, \"y\": -0.5897435897435894, \"z\": 0.1314924391847475}, {\"x\": 0.6923076923076925, \"y\": -0.5384615384615381, \"z\": 0.1893491124260362}, {\"x\": 0.6923076923076925, \"y\": -0.48717948717948684, \"z\": 0.24194608809993487}, {\"x\": 0.6923076923076925, \"y\": -0.43589743589743557, \"z\": 0.2892833662064437}, {\"x\": 0.6923076923076925, \"y\": -0.3846153846153843, \"z\": 0.33136094674556266}, {\"x\": 0.6923076923076925, \"y\": -0.33333333333333304, \"z\": 0.36817882971729177}, {\"x\": 0.6923076923076925, \"y\": -0.28205128205128177, \"z\": 0.39973701512163096}, {\"x\": 0.6923076923076925, \"y\": -0.2307692307692305, \"z\": 0.4260355029585803}, {\"x\": 0.6923076923076925, \"y\": -0.17948717948717924, \"z\": 0.44707429322813974}, {\"x\": 0.6923076923076925, \"y\": -0.12820512820512797, \"z\": 0.46285338593030934}, {\"x\": 0.6923076923076925, \"y\": -0.07692307692307669, \"z\": 0.47337278106508907}, {\"x\": 0.6923076923076925, \"y\": -0.02564102564102541, \"z\": 0.47863247863247893}, {\"x\": 0.6923076923076925, \"y\": 0.02564102564102587, \"z\": 0.47863247863247893}, {\"x\": 0.6923076923076925, \"y\": 0.07692307692307715, \"z\": 0.473372781065089}, {\"x\": 0.6923076923076925, \"y\": 0.12820512820512842, \"z\": 0.4628533859303092}, {\"x\": 0.6923076923076925, \"y\": 0.17948717948717968, \"z\": 0.4470742932281396}, {\"x\": 0.6923076923076925, \"y\": 0.23076923076923095, \"z\": 0.42603550295858006}, {\"x\": 0.6923076923076925, \"y\": 0.2820512820512822, \"z\": 0.3997370151216307}, {\"x\": 0.6923076923076925, \"y\": 0.3333333333333335, \"z\": 0.36817882971729143}, {\"x\": 0.6923076923076925, \"y\": 0.38461538461538475, \"z\": 0.3313609467455623}, {\"x\": 0.6923076923076925, \"y\": 0.435897435897436, \"z\": 0.28928336620644335}, {\"x\": 0.6923076923076925, \"y\": 0.4871794871794873, \"z\": 0.24194608809993443}, {\"x\": 0.6923076923076925, \"y\": 0.5384615384615385, \"z\": 0.1893491124260357}, {\"x\": 0.6923076923076925, \"y\": 0.5897435897435899, \"z\": 0.131492439184747}, {\"x\": 0.6923076923076925, \"y\": 0.6410256410256412, \"z\": 0.06837606837606847}, {\"x\": 0.6923076923076925, \"y\": 0.6923076923076925, \"z\": 0.0}, {\"x\": 0.6923076923076925, \"y\": 0.7435897435897438, \"z\": -0.07363576594345839}, {\"x\": 0.6923076923076925, \"y\": 0.7948717948717952, \"z\": -0.15253122945430658}, {\"x\": 0.6923076923076925, \"y\": 0.8461538461538465, \"z\": -0.23668639053254464}, {\"x\": 0.6923076923076925, \"y\": 0.8974358974358978, \"z\": -0.3261012491781727}, {\"x\": 0.6923076923076925, \"y\": 0.9487179487179491, \"z\": -0.42077580539119047}, {\"x\": 0.6923076923076925, \"y\": 1.0, \"z\": -0.5207100591715974}, {\"x\": 0.7435897435897438, \"y\": -0.9487179487179487, \"z\": -0.3471400394477313}, {\"x\": 0.7435897435897438, \"y\": -1.0, \"z\": -0.44707429322813896}, {\"x\": 0.7435897435897438, \"y\": -0.8974358974358974, \"z\": -0.2524654832347134}, {\"x\": 0.7435897435897438, \"y\": -0.846153846153846, \"z\": -0.16305062458908548}, {\"x\": 0.7435897435897438, \"y\": -0.7948717948717947, \"z\": -0.07889546351084742}, {\"x\": 0.7435897435897438, \"y\": -0.7435897435897434, \"z\": 6.661338147750939e-16}, {\"x\": 0.7435897435897438, \"y\": -0.6923076923076921, \"z\": 0.073635765943459}, {\"x\": 0.7435897435897438, \"y\": -0.6410256410256407, \"z\": 0.1420118343195274}, {\"x\": 0.7435897435897438, \"y\": -0.5897435897435894, \"z\": 0.2051282051282059}, {\"x\": 0.7435897435897438, \"y\": -0.5384615384615381, \"z\": 0.2629848783694946}, {\"x\": 0.7435897435897438, \"y\": -0.48717948717948684, \"z\": 0.31558185404339323}, {\"x\": 0.7435897435897438, \"y\": -0.43589743589743557, \"z\": 0.3629191321499021}, {\"x\": 0.7435897435897438, \"y\": -0.3846153846153843, \"z\": 0.40499671268902104}, {\"x\": 0.7435897435897438, \"y\": -0.33333333333333304, \"z\": 0.4418145956607501}, {\"x\": 0.7435897435897438, \"y\": -0.28205128205128177, \"z\": 0.47337278106508934}, {\"x\": 0.7435897435897438, \"y\": -0.2307692307692305, \"z\": 0.49967126890203867}, {\"x\": 0.7435897435897438, \"y\": -0.17948717948717924, \"z\": 0.5207100591715982}, {\"x\": 0.7435897435897438, \"y\": -0.12820512820512797, \"z\": 0.5364891518737678}, {\"x\": 0.7435897435897438, \"y\": -0.07692307692307669, \"z\": 0.5470085470085475}, {\"x\": 0.7435897435897438, \"y\": -0.02564102564102541, \"z\": 0.5522682445759373}, {\"x\": 0.7435897435897438, \"y\": 0.02564102564102587, \"z\": 0.5522682445759373}, {\"x\": 0.7435897435897438, \"y\": 0.07692307692307715, \"z\": 0.5470085470085474}, {\"x\": 0.7435897435897438, \"y\": 0.12820512820512842, \"z\": 0.5364891518737677}, {\"x\": 0.7435897435897438, \"y\": 0.17948717948717968, \"z\": 0.520710059171598}, {\"x\": 0.7435897435897438, \"y\": 0.23076923076923095, \"z\": 0.49967126890203845}, {\"x\": 0.7435897435897438, \"y\": 0.2820512820512822, \"z\": 0.47337278106508907}, {\"x\": 0.7435897435897438, \"y\": 0.3333333333333335, \"z\": 0.4418145956607498}, {\"x\": 0.7435897435897438, \"y\": 0.38461538461538475, \"z\": 0.4049967126890207}, {\"x\": 0.7435897435897438, \"y\": 0.435897435897436, \"z\": 0.3629191321499017}, {\"x\": 0.7435897435897438, \"y\": 0.4871794871794873, \"z\": 0.3155818540433928}, {\"x\": 0.7435897435897438, \"y\": 0.5384615384615385, \"z\": 0.2629848783694941}, {\"x\": 0.7435897435897438, \"y\": 0.5897435897435899, \"z\": 0.2051282051282054}, {\"x\": 0.7435897435897438, \"y\": 0.6410256410256412, \"z\": 0.14201183431952685}, {\"x\": 0.7435897435897438, \"y\": 0.6923076923076925, \"z\": 0.07363576594345839}, {\"x\": 0.7435897435897438, \"y\": 0.7435897435897438, \"z\": 0.0}, {\"x\": 0.7435897435897438, \"y\": 0.7948717948717952, \"z\": -0.0788954635108482}, {\"x\": 0.7435897435897438, \"y\": 0.8461538461538465, \"z\": -0.16305062458908626}, {\"x\": 0.7435897435897438, \"y\": 0.8974358974358978, \"z\": -0.2524654832347143}, {\"x\": 0.7435897435897438, \"y\": 0.9487179487179491, \"z\": -0.3471400394477321}, {\"x\": 0.7435897435897438, \"y\": 1.0, \"z\": -0.44707429322813896}, {\"x\": 0.7948717948717952, \"y\": -0.9487179487179487, \"z\": -0.2682445759368831}, {\"x\": 0.7948717948717952, \"y\": -1.0, \"z\": -0.36817882971729077}, {\"x\": 0.7948717948717952, \"y\": -0.8974358974358974, \"z\": -0.1735700197238652}, {\"x\": 0.7948717948717952, \"y\": -0.846153846153846, \"z\": -0.08415516107823728}, {\"x\": 0.7948717948717952, \"y\": -0.7948717948717947, \"z\": 7.771561172376096e-16}, {\"x\": 0.7948717948717952, \"y\": -0.7435897435897434, \"z\": 0.07889546351084886}, {\"x\": 0.7948717948717952, \"y\": -0.6923076923076921, \"z\": 0.1525312294543072}, {\"x\": 0.7948717948717952, \"y\": -0.6410256410256407, \"z\": 0.2209072978303756}, {\"x\": 0.7948717948717952, \"y\": -0.5897435897435894, \"z\": 0.2840236686390541}, {\"x\": 0.7948717948717952, \"y\": -0.5384615384615381, \"z\": 0.3418803418803428}, {\"x\": 0.7948717948717952, \"y\": -0.48717948717948684, \"z\": 0.3944773175542414}, {\"x\": 0.7948717948717952, \"y\": -0.43589743589743557, \"z\": 0.4418145956607503}, {\"x\": 0.7948717948717952, \"y\": -0.3846153846153843, \"z\": 0.48389217619986924}, {\"x\": 0.7948717948717952, \"y\": -0.33333333333333304, \"z\": 0.5207100591715983}, {\"x\": 0.7948717948717952, \"y\": -0.28205128205128177, \"z\": 0.5522682445759375}, {\"x\": 0.7948717948717952, \"y\": -0.2307692307692305, \"z\": 0.5785667324128869}, {\"x\": 0.7948717948717952, \"y\": -0.17948717948717924, \"z\": 0.5996055226824464}, {\"x\": 0.7948717948717952, \"y\": -0.12820512820512797, \"z\": 0.615384615384616}, {\"x\": 0.7948717948717952, \"y\": -0.07692307692307669, \"z\": 0.6259040105193957}, {\"x\": 0.7948717948717952, \"y\": -0.02564102564102541, \"z\": 0.6311637080867855}, {\"x\": 0.7948717948717952, \"y\": 0.02564102564102587, \"z\": 0.6311637080867855}, {\"x\": 0.7948717948717952, \"y\": 0.07692307692307715, \"z\": 0.6259040105193956}, {\"x\": 0.7948717948717952, \"y\": 0.12820512820512842, \"z\": 0.6153846153846159}, {\"x\": 0.7948717948717952, \"y\": 0.17948717948717968, \"z\": 0.5996055226824462}, {\"x\": 0.7948717948717952, \"y\": 0.23076923076923095, \"z\": 0.5785667324128867}, {\"x\": 0.7948717948717952, \"y\": 0.2820512820512822, \"z\": 0.5522682445759373}, {\"x\": 0.7948717948717952, \"y\": 0.3333333333333335, \"z\": 0.5207100591715981}, {\"x\": 0.7948717948717952, \"y\": 0.38461538461538475, \"z\": 0.4838921761998689}, {\"x\": 0.7948717948717952, \"y\": 0.435897435897436, \"z\": 0.4418145956607499}, {\"x\": 0.7948717948717952, \"y\": 0.4871794871794873, \"z\": 0.394477317554241}, {\"x\": 0.7948717948717952, \"y\": 0.5384615384615385, \"z\": 0.3418803418803423}, {\"x\": 0.7948717948717952, \"y\": 0.5897435897435899, \"z\": 0.2840236686390536}, {\"x\": 0.7948717948717952, \"y\": 0.6410256410256412, \"z\": 0.22090729783037505}, {\"x\": 0.7948717948717952, \"y\": 0.6923076923076925, \"z\": 0.15253122945430658}, {\"x\": 0.7948717948717952, \"y\": 0.7435897435897438, \"z\": 0.0788954635108482}, {\"x\": 0.7948717948717952, \"y\": 0.7948717948717952, \"z\": 0.0}, {\"x\": 0.7948717948717952, \"y\": 0.8461538461538465, \"z\": -0.08415516107823806}, {\"x\": 0.7948717948717952, \"y\": 0.8974358974358978, \"z\": -0.1735700197238661}, {\"x\": 0.7948717948717952, \"y\": 0.9487179487179491, \"z\": -0.2682445759368839}, {\"x\": 0.7948717948717952, \"y\": 1.0, \"z\": -0.36817882971729077}, {\"x\": 0.8461538461538465, \"y\": -0.9487179487179487, \"z\": -0.18408941485864505}, {\"x\": 0.8461538461538465, \"y\": -1.0, \"z\": -0.2840236686390527}, {\"x\": 0.8461538461538465, \"y\": -0.8974358974358974, \"z\": -0.08941485864562715}, {\"x\": 0.8461538461538465, \"y\": -0.846153846153846, \"z\": 7.771561172376096e-16}, {\"x\": 0.8461538461538465, \"y\": -0.7948717948717947, \"z\": 0.08415516107823884}, {\"x\": 0.8461538461538465, \"y\": -0.7435897435897434, \"z\": 0.16305062458908692}, {\"x\": 0.8461538461538465, \"y\": -0.6923076923076921, \"z\": 0.23668639053254525}, {\"x\": 0.8461538461538465, \"y\": -0.6410256410256407, \"z\": 0.30506245890861367}, {\"x\": 0.8461538461538465, \"y\": -0.5897435897435894, \"z\": 0.36817882971729216}, {\"x\": 0.8461538461538465, \"y\": -0.5384615384615381, \"z\": 0.42603550295858084}, {\"x\": 0.8461538461538465, \"y\": -0.48717948717948684, \"z\": 0.4786324786324795}, {\"x\": 0.8461538461538465, \"y\": -0.43589743589743557, \"z\": 0.5259697567389884}, {\"x\": 0.8461538461538465, \"y\": -0.3846153846153843, \"z\": 0.5680473372781073}, {\"x\": 0.8461538461538465, \"y\": -0.33333333333333304, \"z\": 0.6048652202498364}, {\"x\": 0.8461538461538465, \"y\": -0.28205128205128177, \"z\": 0.6364234056541755}, {\"x\": 0.8461538461538465, \"y\": -0.2307692307692305, \"z\": 0.662721893491125}, {\"x\": 0.8461538461538465, \"y\": -0.17948717948717924, \"z\": 0.6837606837606844}, {\"x\": 0.8461538461538465, \"y\": -0.12820512820512797, \"z\": 0.699539776462854}, {\"x\": 0.8461538461538465, \"y\": -0.07692307692307669, \"z\": 0.7100591715976338}, {\"x\": 0.8461538461538465, \"y\": -0.02564102564102541, \"z\": 0.7153188691650235}, {\"x\": 0.8461538461538465, \"y\": 0.02564102564102587, \"z\": 0.7153188691650235}, {\"x\": 0.8461538461538465, \"y\": 0.07692307692307715, \"z\": 0.7100591715976337}, {\"x\": 0.8461538461538465, \"y\": 0.12820512820512842, \"z\": 0.6995397764628539}, {\"x\": 0.8461538461538465, \"y\": 0.17948717948717968, \"z\": 0.6837606837606842}, {\"x\": 0.8461538461538465, \"y\": 0.23076923076923095, \"z\": 0.6627218934911248}, {\"x\": 0.8461538461538465, \"y\": 0.2820512820512822, \"z\": 0.6364234056541753}, {\"x\": 0.8461538461538465, \"y\": 0.3333333333333335, \"z\": 0.6048652202498361}, {\"x\": 0.8461538461538465, \"y\": 0.38461538461538475, \"z\": 0.568047337278107}, {\"x\": 0.8461538461538465, \"y\": 0.435897435897436, \"z\": 0.5259697567389879}, {\"x\": 0.8461538461538465, \"y\": 0.4871794871794873, \"z\": 0.47863247863247904}, {\"x\": 0.8461538461538465, \"y\": 0.5384615384615385, \"z\": 0.42603550295858034}, {\"x\": 0.8461538461538465, \"y\": 0.5897435897435899, \"z\": 0.36817882971729166}, {\"x\": 0.8461538461538465, \"y\": 0.6410256410256412, \"z\": 0.3050624589086131}, {\"x\": 0.8461538461538465, \"y\": 0.6923076923076925, \"z\": 0.23668639053254464}, {\"x\": 0.8461538461538465, \"y\": 0.7435897435897438, \"z\": 0.16305062458908626}, {\"x\": 0.8461538461538465, \"y\": 0.7948717948717952, \"z\": 0.08415516107823806}, {\"x\": 0.8461538461538465, \"y\": 0.8461538461538465, \"z\": 0.0}, {\"x\": 0.8461538461538465, \"y\": 0.8974358974358978, \"z\": -0.08941485864562804}, {\"x\": 0.8461538461538465, \"y\": 0.9487179487179491, \"z\": -0.18408941485864583}, {\"x\": 0.8461538461538465, \"y\": 1.0, \"z\": -0.2840236686390527}, {\"x\": 0.8974358974358978, \"y\": -0.9487179487179487, \"z\": -0.09467455621301701}, {\"x\": 0.8974358974358978, \"y\": -1.0, \"z\": -0.19460880999342467}, {\"x\": 0.8974358974358978, \"y\": -0.8974358974358974, \"z\": 8.881784197001252e-16}, {\"x\": 0.8974358974358978, \"y\": -0.846153846153846, \"z\": 0.08941485864562881}, {\"x\": 0.8974358974358978, \"y\": -0.7948717948717947, \"z\": 0.17357001972386688}, {\"x\": 0.8974358974358978, \"y\": -0.7435897435897434, \"z\": 0.25246548323471496}, {\"x\": 0.8974358974358978, \"y\": -0.6923076923076921, \"z\": 0.3261012491781733}, {\"x\": 0.8974358974358978, \"y\": -0.6410256410256407, \"z\": 0.3944773175542417}, {\"x\": 0.8974358974358978, \"y\": -0.5897435897435894, \"z\": 0.4575936883629202}, {\"x\": 0.8974358974358978, \"y\": -0.5384615384615381, \"z\": 0.5154503616042089}, {\"x\": 0.8974358974358978, \"y\": -0.48717948717948684, \"z\": 0.5680473372781075}, {\"x\": 0.8974358974358978, \"y\": -0.43589743589743557, \"z\": 0.6153846153846164}, {\"x\": 0.8974358974358978, \"y\": -0.3846153846153843, \"z\": 0.6574621959237353}, {\"x\": 0.8974358974358978, \"y\": -0.33333333333333304, \"z\": 0.6942800788954644}, {\"x\": 0.8974358974358978, \"y\": -0.28205128205128177, \"z\": 0.7258382642998036}, {\"x\": 0.8974358974358978, \"y\": -0.2307692307692305, \"z\": 0.752136752136753}, {\"x\": 0.8974358974358978, \"y\": -0.17948717948717924, \"z\": 0.7731755424063125}, {\"x\": 0.8974358974358978, \"y\": -0.12820512820512797, \"z\": 0.7889546351084821}, {\"x\": 0.8974358974358978, \"y\": -0.07692307692307669, \"z\": 0.7994740302432618}, {\"x\": 0.8974358974358978, \"y\": -0.02564102564102541, \"z\": 0.8047337278106516}, {\"x\": 0.8974358974358978, \"y\": 0.02564102564102587, \"z\": 0.8047337278106516}, {\"x\": 0.8974358974358978, \"y\": 0.07692307692307715, \"z\": 0.7994740302432617}, {\"x\": 0.8974358974358978, \"y\": 0.12820512820512842, \"z\": 0.788954635108482}, {\"x\": 0.8974358974358978, \"y\": 0.17948717948717968, \"z\": 0.7731755424063123}, {\"x\": 0.8974358974358978, \"y\": 0.23076923076923095, \"z\": 0.7521367521367528}, {\"x\": 0.8974358974358978, \"y\": 0.2820512820512822, \"z\": 0.7258382642998034}, {\"x\": 0.8974358974358978, \"y\": 0.3333333333333335, \"z\": 0.6942800788954642}, {\"x\": 0.8974358974358978, \"y\": 0.38461538461538475, \"z\": 0.657462195923735}, {\"x\": 0.8974358974358978, \"y\": 0.435897435897436, \"z\": 0.615384615384616}, {\"x\": 0.8974358974358978, \"y\": 0.4871794871794873, \"z\": 0.5680473372781071}, {\"x\": 0.8974358974358978, \"y\": 0.5384615384615385, \"z\": 0.5154503616042083}, {\"x\": 0.8974358974358978, \"y\": 0.5897435897435899, \"z\": 0.4575936883629197}, {\"x\": 0.8974358974358978, \"y\": 0.6410256410256412, \"z\": 0.39447731755424115}, {\"x\": 0.8974358974358978, \"y\": 0.6923076923076925, \"z\": 0.3261012491781727}, {\"x\": 0.8974358974358978, \"y\": 0.7435897435897438, \"z\": 0.2524654832347143}, {\"x\": 0.8974358974358978, \"y\": 0.7948717948717952, \"z\": 0.1735700197238661}, {\"x\": 0.8974358974358978, \"y\": 0.8461538461538465, \"z\": 0.08941485864562804}, {\"x\": 0.8974358974358978, \"y\": 0.8974358974358978, \"z\": 0.0}, {\"x\": 0.8974358974358978, \"y\": 0.9487179487179491, \"z\": -0.09467455621301779}, {\"x\": 0.8974358974358978, \"y\": 1.0, \"z\": -0.19460880999342467}, {\"x\": 0.9487179487179491, \"y\": -0.9487179487179487, \"z\": 7.771561172376096e-16}, {\"x\": 0.9487179487179491, \"y\": -1.0, \"z\": -0.09993425378040688}, {\"x\": 0.9487179487179491, \"y\": -0.8974358974358974, \"z\": 0.09467455621301868}, {\"x\": 0.9487179487179491, \"y\": -0.846153846153846, \"z\": 0.1840894148586466}, {\"x\": 0.9487179487179491, \"y\": -0.7948717948717947, \"z\": 0.26824457593688467}, {\"x\": 0.9487179487179491, \"y\": -0.7435897435897434, \"z\": 0.34714003944773275}, {\"x\": 0.9487179487179491, \"y\": -0.6923076923076921, \"z\": 0.4207758053911911}, {\"x\": 0.9487179487179491, \"y\": -0.6410256410256407, \"z\": 0.4891518737672595}, {\"x\": 0.9487179487179491, \"y\": -0.5897435897435894, \"z\": 0.5522682445759379}, {\"x\": 0.9487179487179491, \"y\": -0.5384615384615381, \"z\": 0.6101249178172267}, {\"x\": 0.9487179487179491, \"y\": -0.48717948717948684, \"z\": 0.6627218934911253}, {\"x\": 0.9487179487179491, \"y\": -0.43589743589743557, \"z\": 0.7100591715976342}, {\"x\": 0.9487179487179491, \"y\": -0.3846153846153843, \"z\": 0.7521367521367531}, {\"x\": 0.9487179487179491, \"y\": -0.33333333333333304, \"z\": 0.7889546351084822}, {\"x\": 0.9487179487179491, \"y\": -0.28205128205128177, \"z\": 0.8205128205128214}, {\"x\": 0.9487179487179491, \"y\": -0.2307692307692305, \"z\": 0.8468113083497708}, {\"x\": 0.9487179487179491, \"y\": -0.17948717948717924, \"z\": 0.8678500986193303}, {\"x\": 0.9487179487179491, \"y\": -0.12820512820512797, \"z\": 0.8836291913214999}, {\"x\": 0.9487179487179491, \"y\": -0.07692307692307669, \"z\": 0.8941485864562796}, {\"x\": 0.9487179487179491, \"y\": -0.02564102564102541, \"z\": 0.8994082840236693}, {\"x\": 0.9487179487179491, \"y\": 0.02564102564102587, \"z\": 0.8994082840236693}, {\"x\": 0.9487179487179491, \"y\": 0.07692307692307715, \"z\": 0.8941485864562795}, {\"x\": 0.9487179487179491, \"y\": 0.12820512820512842, \"z\": 0.8836291913214998}, {\"x\": 0.9487179487179491, \"y\": 0.17948717948717968, \"z\": 0.86785009861933}, {\"x\": 0.9487179487179491, \"y\": 0.23076923076923095, \"z\": 0.8468113083497706}, {\"x\": 0.9487179487179491, \"y\": 0.2820512820512822, \"z\": 0.8205128205128212}, {\"x\": 0.9487179487179491, \"y\": 0.3333333333333335, \"z\": 0.788954635108482}, {\"x\": 0.9487179487179491, \"y\": 0.38461538461538475, \"z\": 0.7521367521367528}, {\"x\": 0.9487179487179491, \"y\": 0.435897435897436, \"z\": 0.7100591715976338}, {\"x\": 0.9487179487179491, \"y\": 0.4871794871794873, \"z\": 0.6627218934911249}, {\"x\": 0.9487179487179491, \"y\": 0.5384615384615385, \"z\": 0.6101249178172261}, {\"x\": 0.9487179487179491, \"y\": 0.5897435897435899, \"z\": 0.5522682445759375}, {\"x\": 0.9487179487179491, \"y\": 0.6410256410256412, \"z\": 0.48915187376725894}, {\"x\": 0.9487179487179491, \"y\": 0.6923076923076925, \"z\": 0.42077580539119047}, {\"x\": 0.9487179487179491, \"y\": 0.7435897435897438, \"z\": 0.3471400394477321}, {\"x\": 0.9487179487179491, \"y\": 0.7948717948717952, \"z\": 0.2682445759368839}, {\"x\": 0.9487179487179491, \"y\": 0.8461538461538465, \"z\": 0.18408941485864583}, {\"x\": 0.9487179487179491, \"y\": 0.8974358974358978, \"z\": 0.09467455621301779}, {\"x\": 0.9487179487179491, \"y\": 0.9487179487179491, \"z\": 0.0}, {\"x\": 0.9487179487179491, \"y\": 1.0, \"z\": -0.09993425378040688}, {\"x\": 1.0, \"y\": -0.9487179487179487, \"z\": 0.09993425378040766}, {\"x\": 1.0, \"y\": -1.0, \"z\": 0.0}, {\"x\": 1.0, \"y\": -0.8974358974358974, \"z\": 0.19460880999342556}, {\"x\": 1.0, \"y\": -0.846153846153846, \"z\": 0.2840236686390535}, {\"x\": 1.0, \"y\": -0.7948717948717947, \"z\": 0.36817882971729154}, {\"x\": 1.0, \"y\": -0.7435897435897434, \"z\": 0.44707429322813963}, {\"x\": 1.0, \"y\": -0.6923076923076921, \"z\": 0.520710059171598}, {\"x\": 1.0, \"y\": -0.6410256410256407, \"z\": 0.5890861275476664}, {\"x\": 1.0, \"y\": -0.5897435897435894, \"z\": 0.6522024983563448}, {\"x\": 1.0, \"y\": -0.5384615384615381, \"z\": 0.7100591715976335}, {\"x\": 1.0, \"y\": -0.48717948717948684, \"z\": 0.7626561472715322}, {\"x\": 1.0, \"y\": -0.43589743589743557, \"z\": 0.8099934253780411}, {\"x\": 1.0, \"y\": -0.3846153846153843, \"z\": 0.85207100591716}, {\"x\": 1.0, \"y\": -0.33333333333333304, \"z\": 0.8888888888888891}, {\"x\": 1.0, \"y\": -0.28205128205128177, \"z\": 0.9204470742932283}, {\"x\": 1.0, \"y\": -0.2307692307692305, \"z\": 0.9467455621301777}, {\"x\": 1.0, \"y\": -0.17948717948717924, \"z\": 0.9677843523997371}, {\"x\": 1.0, \"y\": -0.12820512820512797, \"z\": 0.9835634451019067}, {\"x\": 1.0, \"y\": -0.07692307692307669, \"z\": 0.9940828402366865}, {\"x\": 1.0, \"y\": -0.02564102564102541, \"z\": 0.9993425378040762}, {\"x\": 1.0, \"y\": 0.02564102564102587, \"z\": 0.9993425378040762}, {\"x\": 1.0, \"y\": 0.07692307692307715, \"z\": 0.9940828402366864}, {\"x\": 1.0, \"y\": 0.12820512820512842, \"z\": 0.9835634451019066}, {\"x\": 1.0, \"y\": 0.17948717948717968, \"z\": 0.9677843523997369}, {\"x\": 1.0, \"y\": 0.23076923076923095, \"z\": 0.9467455621301775}, {\"x\": 1.0, \"y\": 0.2820512820512822, \"z\": 0.920447074293228}, {\"x\": 1.0, \"y\": 0.3333333333333335, \"z\": 0.8888888888888888}, {\"x\": 1.0, \"y\": 0.38461538461538475, \"z\": 0.8520710059171597}, {\"x\": 1.0, \"y\": 0.435897435897436, \"z\": 0.8099934253780406}, {\"x\": 1.0, \"y\": 0.4871794871794873, \"z\": 0.7626561472715317}, {\"x\": 1.0, \"y\": 0.5384615384615385, \"z\": 0.710059171597633}, {\"x\": 1.0, \"y\": 0.5897435897435899, \"z\": 0.6522024983563444}, {\"x\": 1.0, \"y\": 0.6410256410256412, \"z\": 0.5890861275476658}, {\"x\": 1.0, \"y\": 0.6923076923076925, \"z\": 0.5207100591715974}, {\"x\": 1.0, \"y\": 0.7435897435897438, \"z\": 0.44707429322813896}, {\"x\": 1.0, \"y\": 0.7948717948717952, \"z\": 0.36817882971729077}, {\"x\": 1.0, \"y\": 0.8461538461538465, \"z\": 0.2840236686390527}, {\"x\": 1.0, \"y\": 0.8974358974358978, \"z\": 0.19460880999342467}, {\"x\": 1.0, \"y\": 0.9487179487179491, \"z\": 0.09993425378040688}, {\"x\": 1.0, \"y\": 1.0, \"z\": 0.0}], \"faces\": [[0, 1, 2, 3], [1, 4, 5, 2], [4, 6, 7, 5], [6, 8, 9, 7], [8, 10, 11, 9], [10, 12, 13, 11], [12, 14, 15, 13], [14, 16, 17, 15], [16, 18, 19, 17], [18, 20, 21, 19], [20, 22, 23, 21], [22, 24, 25, 23], [24, 26, 27, 25], [26, 28, 29, 27], [28, 30, 31, 29], [30, 32, 33, 31], [32, 34, 35, 33], [34, 36, 37, 35], [36, 38, 39, 37], [38, 40, 41, 39], [40, 42, 43, 41], [42, 44, 45, 43], [44, 46, 47, 45], [46, 48, 49, 47], [48, 50, 51, 49], [50, 52, 53, 51], [52, 54, 55, 53], [54, 56, 57, 55], [56, 58, 59, 57], [58, 60, 61, 59], [60, 62, 63, 61], [62, 64, 65, 63], [64, 66, 67, 65], [66, 68, 69, 67], [68, 70, 71, 69], [70, 72, 73, 71], [72, 74, 75, 73], [74, 76, 77, 75], [76, 78, 79, 77], [3, 2, 80, 81], [2, 5, 82, 80], [5, 7, 83, 82], [7, 9, 84, 83], [9, 11, 85, 84], [11, 13, 86, 85], [13, 15, 87, 86], [15, 17, 88, 87], [17, 19, 89, 88], [19, 21, 90, 89], [21, 23, 91, 90], [23, 25, 92, 91], [25, 27, 93, 92], [27, 29, 94, 93], [29, 31, 95, 94], [31, 33, 96, 95], [33, 35, 97, 96], [35, 37, 98, 97], [37, 39, 99, 98], [39, 41, 100, 99], [41, 43, 101, 100], [43, 45, 102, 101], [45, 47, 103, 102], [47, 49, 104, 103], [49, 51, 105, 104], [51, 53, 106, 105], [53, 55, 107, 106], [55, 57, 108, 107], [57, 59, 109, 108], [59, 61, 110, 109], [61, 63, 111, 110], [63, 65, 112, 111], [65, 67, 113, 112], [67, 69, 114, 113], [69, 71, 115, 114], [71, 73, 116, 115], [73, 75, 117, 116], [75, 77, 118, 117], [77, 79, 119, 118], [81, 80, 120, 121], [80, 82, 122, 120], [82, 83, 123, 122], [83, 84, 124, 123], [84, 85, 125, 124], [85, 86, 126, 125], [86, 87, 127, 126], [87, 88, 128, 127], [88, 89, 129, 128], [89, 90, 130, 129], [90, 91, 131, 130], [91, 92, 132, 131], [92, 93, 133, 132], [93, 94, 134, 133], [94, 95, 135, 134], [95, 96, 136, 135], [96, 97, 137, 136], [97, 98, 138, 137], [98, 99, 139, 138], [99, 100, 140, 139], [100, 101, 141, 140], [101, 102, 142, 141], [102, 103, 143, 142], [103, 104, 144, 143], [104, 105, 145, 144], [105, 106, 146, 145], [106, 107, 147, 146], [107, 108, 148, 147], [108, 109, 149, 148], [109, 110, 150, 149], [110, 111, 151, 150], [111, 112, 152, 151], [112, 113, 153, 152], [113, 114, 154, 153], [114, 115, 155, 154], [115, 116, 156, 155], [116, 117, 157, 156], [117, 118, 158, 157], [118, 119, 159, 158], [121, 120, 160, 161], [120, 122, 162, 160], [122, 123, 163, 162], [123, 124, 164, 163], [124, 125, 165, 164], [125, 126, 166, 165], [126, 127, 167, 166], [127, 128, 168, 167], [128, 129, 169, 168], [129, 130, 170, 169], [130, 131, 171, 170], [131, 132, 172, 171], [132, 133, 173, 172], [133, 134, 174, 173], [134, 135, 175, 174], [135, 136, 176, 175], [136, 137, 177, 176], [137, 138, 178, 177], [138, 139, 179, 178], [139, 140, 180, 179], [140, 141, 181, 180], [141, 142, 182, 181], [142, 143, 183, 182], [143, 144, 184, 183], [144, 145, 185, 184], [145, 146, 186, 185], [146, 147, 187, 186], [147, 148, 188, 187], [148, 149, 189, 188], [149, 150, 190, 189], [150, 151, 191, 190], [151, 152, 192, 191], [152, 153, 193, 192], [153, 154, 194, 193], [154, 155, 195, 194], [155, 156, 196, 195], [156, 157, 197, 196], [157, 158, 198, 197], [158, 159, 199, 198], [161, 160, 200, 201], [160, 162, 202, 200], [162, 163, 203, 202], [163, 164, 204, 203], [164, 165, 205, 204], [165, 166, 206, 205], [166, 167, 207, 206], [167, 168, 208, 207], [168, 169, 209, 208], [169, 170, 210, 209], [170, 171, 211, 210], [171, 172, 212, 211], [172, 173, 213, 212], [173, 174, 214, 213], [174, 175, 215, 214], [175, 176, 216, 215], [176, 177, 217, 216], [177, 178, 218, 217], [178, 179, 219, 218], [179, 180, 220, 219], [180, 181, 221, 220], [181, 182, 222, 221], [182, 183, 223, 222], [183, 184, 224, 223], [184, 185, 225, 224], [185, 186, 226, 225], [186, 187, 227, 226], [187, 188, 228, 227], [188, 189, 229, 228], [189, 190, 230, 229], [190, 191, 231, 230], [191, 192, 232, 231], [192, 193, 233, 232], [193, 194, 234, 233], [194, 195, 235, 234], [195, 196, 236, 235], [196, 197, 237, 236], [197, 198, 238, 237], [198, 199, 239, 238], [201, 200, 240, 241], [200, 202, 242, 240], [202, 203, 243, 242], [203, 204, 244, 243], [204, 205, 245, 244], [205, 206, 246, 245], [206, 207, 247, 246], [207, 208, 248, 247], [208, 209, 249, 248], [209, 210, 250, 249], [210, 211, 251, 250], [211, 212, 252, 251], [212, 213, 253, 252], [213, 214, 254, 253], [214, 215, 255, 254], [215, 216, 256, 255], [216, 217, 257, 256], [217, 218, 258, 257], [218, 219, 259, 258], [219, 220, 260, 259], [220, 221, 261, 260], [221, 222, 262, 261], [222, 223, 263, 262], [223, 224, 264, 263], [224, 225, 265, 264], [225, 226, 266, 265], [226, 227, 267, 266], [227, 228, 268, 267], [228, 229, 269, 268], [229, 230, 270, 269], [230, 231, 271, 270], [231, 232, 272, 271], [232, 233, 273, 272], [233, 234, 274, 273], [234, 235, 275, 274], [235, 236, 276, 275], [236, 237, 277, 276], [237, 238, 278, 277], [238, 239, 279, 278], [241, 240, 280, 281], [240, 242, 282, 280], [242, 243, 283, 282], [243, 244, 284, 283], [244, 245, 285, 284], [245, 246, 286, 285], [246, 247, 287, 286], [247, 248, 288, 287], [248, 249, 289, 288], [249, 250, 290, 289], [250, 251, 291, 290], [251, 252, 292, 291], [252, 253, 293, 292], [253, 254, 294, 293], [254, 255, 295, 294], [255, 256, 296, 295], [256, 257, 297, 296], [257, 258, 298, 297], [258, 259, 299, 298], [259, 260, 300, 299], [260, 261, 301, 300], [261, 262, 302, 301], [262, 263, 303, 302], [263, 264, 304, 303], [264, 265, 305, 304], [265, 266, 306, 305], [266, 267, 307, 306], [267, 268, 308, 307], [268, 269, 309, 308], [269, 270, 310, 309], [270, 271, 311, 310], [271, 272, 312, 311], [272, 273, 313, 312], [273, 274, 314, 313], [274, 275, 315, 314], [275, 276, 316, 315], [276, 277, 317, 316], [277, 278, 318, 317], [278, 279, 319, 318], [281, 280, 320, 321], [280, 282, 322, 320], [282, 283, 323, 322], [283, 284, 324, 323], [284, 285, 325, 324], [285, 286, 326, 325], [286, 287, 327, 326], [287, 288, 328, 327], [288, 289, 329, 328], [289, 290, 330, 329], [290, 291, 331, 330], [291, 292, 332, 331], [292, 293, 333, 332], [293, 294, 334, 333], [294, 295, 335, 334], [295, 296, 336, 335], [296, 297, 337, 336], [297, 298, 338, 337], [298, 299, 339, 338], [299, 300, 340, 339], [300, 301, 341, 340], [301, 302, 342, 341], [302, 303, 343, 342], [303, 304, 344, 343], [304, 305, 345, 344], [305, 306, 346, 345], [306, 307, 347, 346], [307, 308, 348, 347], [308, 309, 349, 348], [309, 310, 350, 349], [310, 311, 351, 350], [311, 312, 352, 351], [312, 313, 353, 352], [313, 314, 354, 353], [314, 315, 355, 354], [315, 316, 356, 355], [316, 317, 357, 356], [317, 318, 358, 357], [318, 319, 359, 358], [321, 320, 360, 361], [320, 322, 362, 360], [322, 323, 363, 362], [323, 324, 364, 363], [324, 325, 365, 364], [325, 326, 366, 365], [326, 327, 367, 366], [327, 328, 368, 367], [328, 329, 369, 368], [329, 330, 370, 369], [330, 331, 371, 370], [331, 332, 372, 371], [332, 333, 373, 372], [333, 334, 374, 373], [334, 335, 375, 374], [335, 336, 376, 375], [336, 337, 377, 376], [337, 338, 378, 377], [338, 339, 379, 378], [339, 340, 380, 379], [340, 341, 381, 380], [341, 342, 382, 381], [342, 343, 383, 382], [343, 344, 384, 383], [344, 345, 385, 384], [345, 346, 386, 385], [346, 347, 387, 386], [347, 348, 388, 387], [348, 349, 389, 388], [349, 350, 390, 389], [350, 351, 391, 390], [351, 352, 392, 391], [352, 353, 393, 392], [353, 354, 394, 393], [354, 355, 395, 394], [355, 356, 396, 395], [356, 357, 397, 396], [357, 358, 398, 397], [358, 359, 399, 398], [361, 360, 400, 401], [360, 362, 402, 400], [362, 363, 403, 402], [363, 364, 404, 403], [364, 365, 405, 404], [365, 366, 406, 405], [366, 367, 407, 406], [367, 368, 408, 407], [368, 369, 409, 408], [369, 370, 410, 409], [370, 371, 411, 410], [371, 372, 412, 411], [372, 373, 413, 412], [373, 374, 414, 413], [374, 375, 415, 414], [375, 376, 416, 415], [376, 377, 417, 416], [377, 378, 418, 417], [378, 379, 419, 418], [379, 380, 420, 419], [380, 381, 421, 420], [381, 382, 422, 421], [382, 383, 423, 422], [383, 384, 424, 423], [384, 385, 425, 424], [385, 386, 426, 425], [386, 387, 427, 426], [387, 388, 428, 427], [388, 389, 429, 428], [389, 390, 430, 429], [390, 391, 431, 430], [391, 392, 432, 431], [392, 393, 433, 432], [393, 394, 434, 433], [394, 395, 435, 434], [395, 396, 436, 435], [396, 397, 437, 436], [397, 398, 438, 437], [398, 399, 439, 438], [401, 400, 440, 441], [400, 402, 442, 440], [402, 403, 443, 442], [403, 404, 444, 443], [404, 405, 445, 444], [405, 406, 446, 445], [406, 407, 447, 446], [407, 408, 448, 447], [408, 409, 449, 448], [409, 410, 450, 449], [410, 411, 451, 450], [411, 412, 452, 451], [412, 413, 453, 452], [413, 414, 454, 453], [414, 415, 455, 454], [415, 416, 456, 455], [416, 417, 457, 456], [417, 418, 458, 457], [418, 419, 459, 458], [419, 420, 460, 459], [420, 421, 461, 460], [421, 422, 462, 461], [422, 423, 463, 462], [423, 424, 464, 463], [424, 425, 465, 464], [425, 426, 466, 465], [426, 427, 467, 466], [427, 428, 468, 467], [428, 429, 469, 468], [429, 430, 470, 469], [430, 431, 471, 470], [431, 432, 472, 471], [432, 433, 473, 472], [433, 434, 474, 473], [434, 435, 475, 474], [435, 436, 476, 475], [436, 437, 477, 476], [437, 438, 478, 477], [438, 439, 479, 478], [441, 440, 480, 481], [440, 442, 482, 480], [442, 443, 483, 482], [443, 444, 484, 483], [444, 445, 485, 484], [445, 446, 486, 485], [446, 447, 487, 486], [447, 448, 488, 487], [448, 449, 489, 488], [449, 450, 490, 489], [450, 451, 491, 490], [451, 452, 492, 491], [452, 453, 493, 492], [453, 454, 494, 493], [454, 455, 495, 494], [455, 456, 496, 495], [456, 457, 497, 496], [457, 458, 498, 497], [458, 459, 499, 498], [459, 460, 500, 499], [460, 461, 501, 500], [461, 462, 502, 501], [462, 463, 503, 502], [463, 464, 504, 503], [464, 465, 505, 504], [465, 466, 506, 505], [466, 467, 507, 506], [467, 468, 508, 507], [468, 469, 509, 508], [469, 470, 510, 509], [470, 471, 511, 510], [471, 472, 512, 511], [472, 473, 513, 512], [473, 474, 514, 513], [474, 475, 515, 514], [475, 476, 516, 515], [476, 477, 517, 516], [477, 478, 518, 517], [478, 479, 519, 518], [481, 480, 520, 521], [480, 482, 522, 520], [482, 483, 523, 522], [483, 484, 524, 523], [484, 485, 525, 524], [485, 486, 526, 525], [486, 487, 527, 526], [487, 488, 528, 527], [488, 489, 529, 528], [489, 490, 530, 529], [490, 491, 531, 530], [491, 492, 532, 531], [492, 493, 533, 532], [493, 494, 534, 533], [494, 495, 535, 534], [495, 496, 536, 535], [496, 497, 537, 536], [497, 498, 538, 537], [498, 499, 539, 538], [499, 500, 540, 539], [500, 501, 541, 540], [501, 502, 542, 541], [502, 503, 543, 542], [503, 504, 544, 543], [504, 505, 545, 544], [505, 506, 546, 545], [506, 507, 547, 546], [507, 508, 548, 547], [508, 509, 549, 548], [509, 510, 550, 549], [510, 511, 551, 550], [511, 512, 552, 551], [512, 513, 553, 552], [513, 514, 554, 553], [514, 515, 555, 554], [515, 516, 556, 555], [516, 517, 557, 556], [517, 518, 558, 557], [518, 519, 559, 558], [521, 520, 560, 561], [520, 522, 562, 560], [522, 523, 563, 562], [523, 524, 564, 563], [524, 525, 565, 564], [525, 526, 566, 565], [526, 527, 567, 566], [527, 528, 568, 567], [528, 529, 569, 568], [529, 530, 570, 569], [530, 531, 571, 570], [531, 532, 572, 571], [532, 533, 573, 572], [533, 534, 574, 573], [534, 535, 575, 574], [535, 536, 576, 575], [536, 537, 577, 576], [537, 538, 578, 577], [538, 539, 579, 578], [539, 540, 580, 579], [540, 541, 581, 580], [541, 542, 582, 581], [542, 543, 583, 582], [543, 544, 584, 583], [544, 545, 585, 584], [545, 546, 586, 585], [546, 547, 587, 586], [547, 548, 588, 587], [548, 549, 589, 588], [549, 550, 590, 589], [550, 551, 591, 590], [551, 552, 592, 591], [552, 553, 593, 592], [553, 554, 594, 593], [554, 555, 595, 594], [555, 556, 596, 595], [556, 557, 597, 596], [557, 558, 598, 597], [558, 559, 599, 598], [561, 560, 600, 601], [560, 562, 602, 600], [562, 563, 603, 602], [563, 564, 604, 603], [564, 565, 605, 604], [565, 566, 606, 605], [566, 567, 607, 606], [567, 568, 608, 607], [568, 569, 609, 608], [569, 570, 610, 609], [570, 571, 611, 610], [571, 572, 612, 611], [572, 573, 613, 612], [573, 574, 614, 613], [574, 575, 615, 614], [575, 576, 616, 615], [576, 577, 617, 616], [577, 578, 618, 617], [578, 579, 619, 618], [579, 580, 620, 619], [580, 581, 621, 620], [581, 582, 622, 621], [582, 583, 623, 622], [583, 584, 624, 623], [584, 585, 625, 624], [585, 586, 626, 625], [586, 587, 627, 626], [587, 588, 628, 627], [588, 589, 629, 628], [589, 590, 630, 629], [590, 591, 631, 630], [591, 592, 632, 631], [592, 593, 633, 632], [593, 594, 634, 633], [594, 595, 635, 634], [595, 596, 636, 635], [596, 597, 637, 636], [597, 598, 638, 637], [598, 599, 639, 638], [601, 600, 640, 641], [600, 602, 642, 640], [602, 603, 643, 642], [603, 604, 644, 643], [604, 605, 645, 644], [605, 606, 646, 645], [606, 607, 647, 646], [607, 608, 648, 647], [608, 609, 649, 648], [609, 610, 650, 649], [610, 611, 651, 650], [611, 612, 652, 651], [612, 613, 653, 652], [613, 614, 654, 653], [614, 615, 655, 654], [615, 616, 656, 655], [616, 617, 657, 656], [617, 618, 658, 657], [618, 619, 659, 658], [619, 620, 660, 659], [620, 621, 661, 660], [621, 622, 662, 661], [622, 623, 663, 662], [623, 624, 664, 663], [624, 625, 665, 664], [625, 626, 666, 665], [626, 627, 667, 666], [627, 628, 668, 667], [628, 629, 669, 668], [629, 630, 670, 669], [630, 631, 671, 670], [631, 632, 672, 671], [632, 633, 673, 672], [633, 634, 674, 673], [634, 635, 675, 674], [635, 636, 676, 675], [636, 637, 677, 676], [637, 638, 678, 677], [638, 639, 679, 678], [641, 640, 680, 681], [640, 642, 682, 680], [642, 643, 683, 682], [643, 644, 684, 683], [644, 645, 685, 684], [645, 646, 686, 685], [646, 647, 687, 686], [647, 648, 688, 687], [648, 649, 689, 688], [649, 650, 690, 689], [650, 651, 691, 690], [651, 652, 692, 691], [652, 653, 693, 692], [653, 654, 694, 693], [654, 655, 695, 694], [655, 656, 696, 695], [656, 657, 697, 696], [657, 658, 698, 697], [658, 659, 699, 698], [659, 660, 700, 699], [660, 661, 701, 700], [661, 662, 702, 701], [662, 663, 703, 702], [663, 664, 704, 703], [664, 665, 705, 704], [665, 666, 706, 705], [666, 667, 707, 706], [667, 668, 708, 707], [668, 669, 709, 708], [669, 670, 710, 709], [670, 671, 711, 710], [671, 672, 712, 711], [672, 673, 713, 712], [673, 674, 714, 713], [674, 675, 715, 714], [675, 676, 716, 715], [676, 677, 717, 716], [677, 678, 718, 717], [678, 679, 719, 718], [681, 680, 720, 721], [680, 682, 722, 720], [682, 683, 723, 722], [683, 684, 724, 723], [684, 685, 725, 724], [685, 686, 726, 725], [686, 687, 727, 726], [687, 688, 728, 727], [688, 689, 729, 728], [689, 690, 730, 729], [690, 691, 731, 730], [691, 692, 732, 731], [692, 693, 733, 732], [693, 694, 734, 733], [694, 695, 735, 734], [695, 696, 736, 735], [696, 697, 737, 736], [697, 698, 738, 737], [698, 699, 739, 738], [699, 700, 740, 739], [700, 701, 741, 740], [701, 702, 742, 741], [702, 703, 743, 742], [703, 704, 744, 743], [704, 705, 745, 744], [705, 706, 746, 745], [706, 707, 747, 746], [707, 708, 748, 747], [708, 709, 749, 748], [709, 710, 750, 749], [710, 711, 751, 750], [711, 712, 752, 751], [712, 713, 753, 752], [713, 714, 754, 753], [714, 715, 755, 754], [715, 716, 756, 755], [716, 717, 757, 756], [717, 718, 758, 757], [718, 719, 759, 758], [721, 720, 760, 761], [720, 722, 762, 760], [722, 723, 763, 762], [723, 724, 764, 763], [724, 725, 765, 764], [725, 726, 766, 765], [726, 727, 767, 766], [727, 728, 768, 767], [728, 729, 769, 768], [729, 730, 770, 769], [730, 731, 771, 770], [731, 732, 772, 771], [732, 733, 773, 772], [733, 734, 774, 773], [734, 735, 775, 774], [735, 736, 776, 775], [736, 737, 777, 776], [737, 738, 778, 777], [738, 739, 779, 778], [739, 740, 780, 779], [740, 741, 781, 780], [741, 742, 782, 781], [742, 743, 783, 782], [743, 744, 784, 783], [744, 745, 785, 784], [745, 746, 786, 785], [746, 747, 787, 786], [747, 748, 788, 787], [748, 749, 789, 788], [749, 750, 790, 789], [750, 751, 791, 790], [751, 752, 792, 791], [752, 753, 793, 792], [753, 754, 794, 793], [754, 755, 795, 794], [755, 756, 796, 795], [756, 757, 797, 796], [757, 758, 798, 797], [758, 759, 799, 798], [761, 760, 800, 801], [760, 762, 802, 800], [762, 763, 803, 802], [763, 764, 804, 803], [764, 765, 805, 804], [765, 766, 806, 805], [766, 767, 807, 806], [767, 768, 808, 807], [768, 769, 809, 808], [769, 770, 810, 809], [770, 771, 811, 810], [771, 772, 812, 811], [772, 773, 813, 812], [773, 774, 814, 813], [774, 775, 815, 814], [775, 776, 816, 815], [776, 777, 817, 816], [777, 778, 818, 817], [778, 779, 819, 818], [779, 780, 820, 819], [780, 781, 821, 820], [781, 782, 822, 821], [782, 783, 823, 822], [783, 784, 824, 823], [784, 785, 825, 824], [785, 786, 826, 825], [786, 787, 827, 826], [787, 788, 828, 827], [788, 789, 829, 828], [789, 790, 830, 829], [790, 791, 831, 830], [791, 792, 832, 831], [792, 793, 833, 832], [793, 794, 834, 833], [794, 795, 835, 834], [795, 796, 836, 835], [796, 797, 837, 836], [797, 798, 838, 837], [798, 799, 839, 838], [801, 800, 840, 841], [800, 802, 842, 840], [802, 803, 843, 842], [803, 804, 844, 843], [804, 805, 845, 844], [805, 806, 846, 845], [806, 807, 847, 846], [807, 808, 848, 847], [808, 809, 849, 848], [809, 810, 850, 849], [810, 811, 851, 850], [811, 812, 852, 851], [812, 813, 853, 852], [813, 814, 854, 853], [814, 815, 855, 854], [815, 816, 856, 855], [816, 817, 857, 856], [817, 818, 858, 857], [818, 819, 859, 858], [819, 820, 860, 859], [820, 821, 861, 860], [821, 822, 862, 861], [822, 823, 863, 862], [823, 824, 864, 863], [824, 825, 865, 864], [825, 826, 866, 865], [826, 827, 867, 866], [827, 828, 868, 867], [828, 829, 869, 868], [829, 830, 870, 869], [830, 831, 871, 870], [831, 832, 872, 871], [832, 833, 873, 872], [833, 834, 874, 873], [834, 835, 875, 874], [835, 836, 876, 875], [836, 837, 877, 876], [837, 838, 878, 877], [838, 839, 879, 878], [841, 840, 880, 881], [840, 842, 882, 880], [842, 843, 883, 882], [843, 844, 884, 883], [844, 845, 885, 884], [845, 846, 886, 885], [846, 847, 887, 886], [847, 848, 888, 887], [848, 849, 889, 888], [849, 850, 890, 889], [850, 851, 891, 890], [851, 852, 892, 891], [852, 853, 893, 892], [853, 854, 894, 893], [854, 855, 895, 894], [855, 856, 896, 895], [856, 857, 897, 896], [857, 858, 898, 897], [858, 859, 899, 898], [859, 860, 900, 899], [860, 861, 901, 900], [861, 862, 902, 901], [862, 863, 903, 902], [863, 864, 904, 903], [864, 865, 905, 904], [865, 866, 906, 905], [866, 867, 907, 906], [867, 868, 908, 907], [868, 869, 909, 908], [869, 870, 910, 909], [870, 871, 911, 910], [871, 872, 912, 911], [872, 873, 913, 912], [873, 874, 914, 913], [874, 875, 915, 914], [875, 876, 916, 915], [876, 877, 917, 916], [877, 878, 918, 917], [878, 879, 919, 918], [881, 880, 920, 921], [880, 882, 922, 920], [882, 883, 923, 922], [883, 884, 924, 923], [884, 885, 925, 924], [885, 886, 926, 925], [886, 887, 927, 926], [887, 888, 928, 927], [888, 889, 929, 928], [889, 890, 930, 929], [890, 891, 931, 930], [891, 892, 932, 931], [892, 893, 933, 932], [893, 894, 934, 933], [894, 895, 935, 934], [895, 896, 936, 935], [896, 897, 937, 936], [897, 898, 938, 937], [898, 899, 939, 938], [899, 900, 940, 939], [900, 901, 941, 940], [901, 902, 942, 941], [902, 903, 943, 942], [903, 904, 944, 943], [904, 905, 945, 944], [905, 906, 946, 945], [906, 907, 947, 946], [907, 908, 948, 947], [908, 909, 949, 948], [909, 910, 950, 949], [910, 911, 951, 950], [911, 912, 952, 951], [912, 913, 953, 952], [913, 914, 954, 953], [914, 915, 955, 954], [915, 916, 956, 955], [916, 917, 957, 956], [917, 918, 958, 957], [918, 919, 959, 958], [921, 920, 960, 961], [920, 922, 962, 960], [922, 923, 963, 962], [923, 924, 964, 963], [924, 925, 965, 964], [925, 926, 966, 965], [926, 927, 967, 966], [927, 928, 968, 967], [928, 929, 969, 968], [929, 930, 970, 969], [930, 931, 971, 970], [931, 932, 972, 971], [932, 933, 973, 972], [933, 934, 974, 973], [934, 935, 975, 974], [935, 936, 976, 975], [936, 937, 977, 976], [937, 938, 978, 977], [938, 939, 979, 978], [939, 940, 980, 979], [940, 941, 981, 980], [941, 942, 982, 981], [942, 943, 983, 982], [943, 944, 984, 983], [944, 945, 985, 984], [945, 946, 986, 985], [946, 947, 987, 986], [947, 948, 988, 987], [948, 949, 989, 988], [949, 950, 990, 989], [950, 951, 991, 990], [951, 952, 992, 991], [952, 953, 993, 992], [953, 954, 994, 993], [954, 955, 995, 994], [955, 956, 996, 995], [956, 957, 997, 996], [957, 958, 998, 997], [958, 959, 999, 998], [961, 960, 1000, 1001], [960, 962, 1002, 1000], [962, 963, 1003, 1002], [963, 964, 1004, 1003], [964, 965, 1005, 1004], [965, 966, 1006, 1005], [966, 967, 1007, 1006], [967, 968, 1008, 1007], [968, 969, 1009, 1008], [969, 970, 1010, 1009], [970, 971, 1011, 1010], [971, 972, 1012, 1011], [972, 973, 1013, 1012], [973, 974, 1014, 1013], [974, 975, 1015, 1014], [975, 976, 1016, 1015], [976, 977, 1017, 1016], [977, 978, 1018, 1017], [978, 979, 1019, 1018], [979, 980, 1020, 1019], [980, 981, 1021, 1020], [981, 982, 1022, 1021], [982, 983, 1023, 1022], [983, 984, 1024, 1023], [984, 985, 1025, 1024], [985, 986, 1026, 1025], [986, 987, 1027, 1026], [987, 988, 1028, 1027], [988, 989, 1029, 1028], [989, 990, 1030, 1029], [990, 991, 1031, 1030], [991, 992, 1032, 1031], [992, 993, 1033, 1032], [993, 994, 1034, 1033], [994, 995, 1035, 1034], [995, 996, 1036, 1035], [996, 997, 1037, 1036], [997, 998, 1038, 1037], [998, 999, 1039, 1038], [1001, 1000, 1040, 1041], [1000, 1002, 1042, 1040], [1002, 1003, 1043, 1042], [1003, 1004, 1044, 1043], [1004, 1005, 1045, 1044], [1005, 1006, 1046, 1045], [1006, 1007, 1047, 1046], [1007, 1008, 1048, 1047], [1008, 1009, 1049, 1048], [1009, 1010, 1050, 1049], [1010, 1011, 1051, 1050], [1011, 1012, 1052, 1051], [1012, 1013, 1053, 1052], [1013, 1014, 1054, 1053], [1014, 1015, 1055, 1054], [1015, 1016, 1056, 1055], [1016, 1017, 1057, 1056], [1017, 1018, 1058, 1057], [1018, 1019, 1059, 1058], [1019, 1020, 1060, 1059], [1020, 1021, 1061, 1060], [1021, 1022, 1062, 1061], [1022, 1023, 1063, 1062], [1023, 1024, 1064, 1063], [1024, 1025, 1065, 1064], [1025, 1026, 1066, 1065], [1026, 1027, 1067, 1066], [1027, 1028, 1068, 1067], [1028, 1029, 1069, 1068], [1029, 1030, 1070, 1069], [1030, 1031, 1071, 1070], [1031, 1032, 1072, 1071], [1032, 1033, 1073, 1072], [1033, 1034, 1074, 1073], [1034, 1035, 1075, 1074], [1035, 1036, 1076, 1075], [1036, 1037, 1077, 1076], [1037, 1038, 1078, 1077], [1038, 1039, 1079, 1078], [1041, 1040, 1080, 1081], [1040, 1042, 1082, 1080], [1042, 1043, 1083, 1082], [1043, 1044, 1084, 1083], [1044, 1045, 1085, 1084], [1045, 1046, 1086, 1085], [1046, 1047, 1087, 1086], [1047, 1048, 1088, 1087], [1048, 1049, 1089, 1088], [1049, 1050, 1090, 1089], [1050, 1051, 1091, 1090], [1051, 1052, 1092, 1091], [1052, 1053, 1093, 1092], [1053, 1054, 1094, 1093], [1054, 1055, 1095, 1094], [1055, 1056, 1096, 1095], [1056, 1057, 1097, 1096], [1057, 1058, 1098, 1097], [1058, 1059, 1099, 1098], [1059, 1060, 1100, 1099], [1060, 1061, 1101, 1100], [1061, 1062, 1102, 1101], [1062, 1063, 1103, 1102], [1063, 1064, 1104, 1103], [1064, 1065, 1105, 1104], [1065, 1066, 1106, 1105], [1066, 1067, 1107, 1106], [1067, 1068, 1108, 1107], [1068, 1069, 1109, 1108], [1069, 1070, 1110, 1109], [1070, 1071, 1111, 1110], [1071, 1072, 1112, 1111], [1072, 1073, 1113, 1112], [1073, 1074, 1114, 1113], [1074, 1075, 1115, 1114], [1075, 1076, 1116, 1115], [1076, 1077, 1117, 1116], [1077, 1078, 1118, 1117], [1078, 1079, 1119, 1118], [1081, 1080, 1120, 1121], [1080, 1082, 1122, 1120], [1082, 1083, 1123, 1122], [1083, 1084, 1124, 1123], [1084, 1085, 1125, 1124], [1085, 1086, 1126, 1125], [1086, 1087, 1127, 1126], [1087, 1088, 1128, 1127], [1088, 1089, 1129, 1128], [1089, 1090, 1130, 1129], [1090, 1091, 1131, 1130], [1091, 1092, 1132, 1131], [1092, 1093, 1133, 1132], [1093, 1094, 1134, 1133], [1094, 1095, 1135, 1134], [1095, 1096, 1136, 1135], [1096, 1097, 1137, 1136], [1097, 1098, 1138, 1137], [1098, 1099, 1139, 1138], [1099, 1100, 1140, 1139], [1100, 1101, 1141, 1140], [1101, 1102, 1142, 1141], [1102, 1103, 1143, 1142], [1103, 1104, 1144, 1143], [1104, 1105, 1145, 1144], [1105, 1106, 1146, 1145], [1106, 1107, 1147, 1146], [1107, 1108, 1148, 1147], [1108, 1109, 1149, 1148], [1109, 1110, 1150, 1149], [1110, 1111, 1151, 1150], [1111, 1112, 1152, 1151], [1112, 1113, 1153, 1152], [1113, 1114, 1154, 1153], [1114, 1115, 1155, 1154], [1115, 1116, 1156, 1155], [1116, 1117, 1157, 1156], [1117, 1118, 1158, 1157], [1118, 1119, 1159, 1158], [1121, 1120, 1160, 1161], [1120, 1122, 1162, 1160], [1122, 1123, 1163, 1162], [1123, 1124, 1164, 1163], [1124, 1125, 1165, 1164], [1125, 1126, 1166, 1165], [1126, 1127, 1167, 1166], [1127, 1128, 1168, 1167], [1128, 1129, 1169, 1168], [1129, 1130, 1170, 1169], [1130, 1131, 1171, 1170], [1131, 1132, 1172, 1171], [1132, 1133, 1173, 1172], [1133, 1134, 1174, 1173], [1134, 1135, 1175, 1174], [1135, 1136, 1176, 1175], [1136, 1137, 1177, 1176], [1137, 1138, 1178, 1177], [1138, 1139, 1179, 1178], [1139, 1140, 1180, 1179], [1140, 1141, 1181, 1180], [1141, 1142, 1182, 1181], [1142, 1143, 1183, 1182], [1143, 1144, 1184, 1183], [1144, 1145, 1185, 1184], [1145, 1146, 1186, 1185], [1146, 1147, 1187, 1186], [1147, 1148, 1188, 1187], [1148, 1149, 1189, 1188], [1149, 1150, 1190, 1189], [1150, 1151, 1191, 1190], [1151, 1152, 1192, 1191], [1152, 1153, 1193, 1192], [1153, 1154, 1194, 1193], [1154, 1155, 1195, 1194], [1155, 1156, 1196, 1195], [1156, 1157, 1197, 1196], [1157, 1158, 1198, 1197], [1158, 1159, 1199, 1198], [1161, 1160, 1200, 1201], [1160, 1162, 1202, 1200], [1162, 1163, 1203, 1202], [1163, 1164, 1204, 1203], [1164, 1165, 1205, 1204], [1165, 1166, 1206, 1205], [1166, 1167, 1207, 1206], [1167, 1168, 1208, 1207], [1168, 1169, 1209, 1208], [1169, 1170, 1210, 1209], [1170, 1171, 1211, 1210], [1171, 1172, 1212, 1211], [1172, 1173, 1213, 1212], [1173, 1174, 1214, 1213], [1174, 1175, 1215, 1214], [1175, 1176, 1216, 1215], [1176, 1177, 1217, 1216], [1177, 1178, 1218, 1217], [1178, 1179, 1219, 1218], [1179, 1180, 1220, 1219], [1180, 1181, 1221, 1220], [1181, 1182, 1222, 1221], [1182, 1183, 1223, 1222], [1183, 1184, 1224, 1223], [1184, 1185, 1225, 1224], [1185, 1186, 1226, 1225], [1186, 1187, 1227, 1226], [1187, 1188, 1228, 1227], [1188, 1189, 1229, 1228], [1189, 1190, 1230, 1229], [1190, 1191, 1231, 1230], [1191, 1192, 1232, 1231], [1192, 1193, 1233, 1232], [1193, 1194, 1234, 1233], [1194, 1195, 1235, 1234], [1195, 1196, 1236, 1235], [1196, 1197, 1237, 1236], [1197, 1198, 1238, 1237], [1198, 1199, 1239, 1238], [1201, 1200, 1240, 1241], [1200, 1202, 1242, 1240], [1202, 1203, 1243, 1242], [1203, 1204, 1244, 1243], [1204, 1205, 1245, 1244], [1205, 1206, 1246, 1245], [1206, 1207, 1247, 1246], [1207, 1208, 1248, 1247], [1208, 1209, 1249, 1248], [1209, 1210, 1250, 1249], [1210, 1211, 1251, 1250], [1211, 1212, 1252, 1251], [1212, 1213, 1253, 1252], [1213, 1214, 1254, 1253], [1214, 1215, 1255, 1254], [1215, 1216, 1256, 1255], [1216, 1217, 1257, 1256], [1217, 1218, 1258, 1257], [1218, 1219, 1259, 1258], [1219, 1220, 1260, 1259], [1220, 1221, 1261, 1260], [1221, 1222, 1262, 1261], [1222, 1223, 1263, 1262], [1223, 1224, 1264, 1263], [1224, 1225, 1265, 1264], [1225, 1226, 1266, 1265], [1226, 1227, 1267, 1266], [1227, 1228, 1268, 1267], [1228, 1229, 1269, 1268], [1229, 1230, 1270, 1269], [1230, 1231, 1271, 1270], [1231, 1232, 1272, 1271], [1232, 1233, 1273, 1272], [1233, 1234, 1274, 1273], [1234, 1235, 1275, 1274], [1235, 1236, 1276, 1275], [1236, 1237, 1277, 1276], [1237, 1238, 1278, 1277], [1238, 1239, 1279, 1278], [1241, 1240, 1280, 1281], [1240, 1242, 1282, 1280], [1242, 1243, 1283, 1282], [1243, 1244, 1284, 1283], [1244, 1245, 1285, 1284], [1245, 1246, 1286, 1285], [1246, 1247, 1287, 1286], [1247, 1248, 1288, 1287], [1248, 1249, 1289, 1288], [1249, 1250, 1290, 1289], [1250, 1251, 1291, 1290], [1251, 1252, 1292, 1291], [1252, 1253, 1293, 1292], [1253, 1254, 1294, 1293], [1254, 1255, 1295, 1294], [1255, 1256, 1296, 1295], [1256, 1257, 1297, 1296], [1257, 1258, 1298, 1297], [1258, 1259, 1299, 1298], [1259, 1260, 1300, 1299], [1260, 1261, 1301, 1300], [1261, 1262, 1302, 1301], [1262, 1263, 1303, 1302], [1263, 1264, 1304, 1303], [1264, 1265, 1305, 1304], [1265, 1266, 1306, 1305], [1266, 1267, 1307, 1306], [1267, 1268, 1308, 1307], [1268, 1269, 1309, 1308], [1269, 1270, 1310, 1309], [1270, 1271, 1311, 1310], [1271, 1272, 1312, 1311], [1272, 1273, 1313, 1312], [1273, 1274, 1314, 1313], [1274, 1275, 1315, 1314], [1275, 1276, 1316, 1315], [1276, 1277, 1317, 1316], [1277, 1278, 1318, 1317], [1278, 1279, 1319, 1318], [1281, 1280, 1320, 1321], [1280, 1282, 1322, 1320], [1282, 1283, 1323, 1322], [1283, 1284, 1324, 1323], [1284, 1285, 1325, 1324], [1285, 1286, 1326, 1325], [1286, 1287, 1327, 1326], [1287, 1288, 1328, 1327], [1288, 1289, 1329, 1328], [1289, 1290, 1330, 1329], [1290, 1291, 1331, 1330], [1291, 1292, 1332, 1331], [1292, 1293, 1333, 1332], [1293, 1294, 1334, 1333], [1294, 1295, 1335, 1334], [1295, 1296, 1336, 1335], [1296, 1297, 1337, 1336], [1297, 1298, 1338, 1337], [1298, 1299, 1339, 1338], [1299, 1300, 1340, 1339], [1300, 1301, 1341, 1340], [1301, 1302, 1342, 1341], [1302, 1303, 1343, 1342], [1303, 1304, 1344, 1343], [1304, 1305, 1345, 1344], [1305, 1306, 1346, 1345], [1306, 1307, 1347, 1346], [1307, 1308, 1348, 1347], [1308, 1309, 1349, 1348], [1309, 1310, 1350, 1349], [1310, 1311, 1351, 1350], [1311, 1312, 1352, 1351], [1312, 1313, 1353, 1352], [1313, 1314, 1354, 1353], [1314, 1315, 1355, 1354], [1315, 1316, 1356, 1355], [1316, 1317, 1357, 1356], [1317, 1318, 1358, 1357], [1318, 1319, 1359, 1358], [1321, 1320, 1360, 1361], [1320, 1322, 1362, 1360], [1322, 1323, 1363, 1362], [1323, 1324, 1364, 1363], [1324, 1325, 1365, 1364], [1325, 1326, 1366, 1365], [1326, 1327, 1367, 1366], [1327, 1328, 1368, 1367], [1328, 1329, 1369, 1368], [1329, 1330, 1370, 1369], [1330, 1331, 1371, 1370], [1331, 1332, 1372, 1371], [1332, 1333, 1373, 1372], [1333, 1334, 1374, 1373], [1334, 1335, 1375, 1374], [1335, 1336, 1376, 1375], [1336, 1337, 1377, 1376], [1337, 1338, 1378, 1377], [1338, 1339, 1379, 1378], [1339, 1340, 1380, 1379], [1340, 1341, 1381, 1380], [1341, 1342, 1382, 1381], [1342, 1343, 1383, 1382], [1343, 1344, 1384, 1383], [1344, 1345, 1385, 1384], [1345, 1346, 1386, 1385], [1346, 1347, 1387, 1386], [1347, 1348, 1388, 1387], [1348, 1349, 1389, 1388], [1349, 1350, 1390, 1389], [1350, 1351, 1391, 1390], [1351, 1352, 1392, 1391], [1352, 1353, 1393, 1392], [1353, 1354, 1394, 1393], [1354, 1355, 1395, 1394], [1355, 1356, 1396, 1395], [1356, 1357, 1397, 1396], [1357, 1358, 1398, 1397], [1358, 1359, 1399, 1398], [1361, 1360, 1400, 1401], [1360, 1362, 1402, 1400], [1362, 1363, 1403, 1402], [1363, 1364, 1404, 1403], [1364, 1365, 1405, 1404], [1365, 1366, 1406, 1405], [1366, 1367, 1407, 1406], [1367, 1368, 1408, 1407], [1368, 1369, 1409, 1408], [1369, 1370, 1410, 1409], [1370, 1371, 1411, 1410], [1371, 1372, 1412, 1411], [1372, 1373, 1413, 1412], [1373, 1374, 1414, 1413], [1374, 1375, 1415, 1414], [1375, 1376, 1416, 1415], [1376, 1377, 1417, 1416], [1377, 1378, 1418, 1417], [1378, 1379, 1419, 1418], [1379, 1380, 1420, 1419], [1380, 1381, 1421, 1420], [1381, 1382, 1422, 1421], [1382, 1383, 1423, 1422], [1383, 1384, 1424, 1423], [1384, 1385, 1425, 1424], [1385, 1386, 1426, 1425], [1386, 1387, 1427, 1426], [1387, 1388, 1428, 1427], [1388, 1389, 1429, 1428], [1389, 1390, 1430, 1429], [1390, 1391, 1431, 1430], [1391, 1392, 1432, 1431], [1392, 1393, 1433, 1432], [1393, 1394, 1434, 1433], [1394, 1395, 1435, 1434], [1395, 1396, 1436, 1435], [1396, 1397, 1437, 1436], [1397, 1398, 1438, 1437], [1398, 1399, 1439, 1438], [1401, 1400, 1440, 1441], [1400, 1402, 1442, 1440], [1402, 1403, 1443, 1442], [1403, 1404, 1444, 1443], [1404, 1405, 1445, 1444], [1405, 1406, 1446, 1445], [1406, 1407, 1447, 1446], [1407, 1408, 1448, 1447], [1408, 1409, 1449, 1448], [1409, 1410, 1450, 1449], [1410, 1411, 1451, 1450], [1411, 1412, 1452, 1451], [1412, 1413, 1453, 1452], [1413, 1414, 1454, 1453], [1414, 1415, 1455, 1454], [1415, 1416, 1456, 1455], [1416, 1417, 1457, 1456], [1417, 1418, 1458, 1457], [1418, 1419, 1459, 1458], [1419, 1420, 1460, 1459], [1420, 1421, 1461, 1460], [1421, 1422, 1462, 1461], [1422, 1423, 1463, 1462], [1423, 1424, 1464, 1463], [1424, 1425, 1465, 1464], [1425, 1426, 1466, 1465], [1426, 1427, 1467, 1466], [1427, 1428, 1468, 1467], [1428, 1429, 1469, 1468], [1429, 1430, 1470, 1469], [1430, 1431, 1471, 1470], [1431, 1432, 1472, 1471], [1432, 1433, 1473, 1472], [1433, 1434, 1474, 1473], [1434, 1435, 1475, 1474], [1435, 1436, 1476, 1475], [1436, 1437, 1477, 1476], [1437, 1438, 1478, 1477], [1438, 1439, 1479, 1478], [1441, 1440, 1480, 1481], [1440, 1442, 1482, 1480], [1442, 1443, 1483, 1482], [1443, 1444, 1484, 1483], [1444, 1445, 1485, 1484], [1445, 1446, 1486, 1485], [1446, 1447, 1487, 1486], [1447, 1448, 1488, 1487], [1448, 1449, 1489, 1488], [1449, 1450, 1490, 1489], [1450, 1451, 1491, 1490], [1451, 1452, 1492, 1491], [1452, 1453, 1493, 1492], [1453, 1454, 1494, 1493], [1454, 1455, 1495, 1494], [1455, 1456, 1496, 1495], [1456, 1457, 1497, 1496], [1457, 1458, 1498, 1497], [1458, 1459, 1499, 1498], [1459, 1460, 1500, 1499], [1460, 1461, 1501, 1500], [1461, 1462, 1502, 1501], [1462, 1463, 1503, 1502], [1463, 1464, 1504, 1503], [1464, 1465, 1505, 1504], [1465, 1466, 1506, 1505], [1466, 1467, 1507, 1506], [1467, 1468, 1508, 1507], [1468, 1469, 1509, 1508], [1469, 1470, 1510, 1509], [1470, 1471, 1511, 1510], [1471, 1472, 1512, 1511], [1472, 1473, 1513, 1512], [1473, 1474, 1514, 1513], [1474, 1475, 1515, 1514], [1475, 1476, 1516, 1515], [1476, 1477, 1517, 1516], [1477, 1478, 1518, 1517], [1478, 1479, 1519, 1518], [1481, 1480, 1520, 1521], [1480, 1482, 1522, 1520], [1482, 1483, 1523, 1522], [1483, 1484, 1524, 1523], [1484, 1485, 1525, 1524], [1485, 1486, 1526, 1525], [1486, 1487, 1527, 1526], [1487, 1488, 1528, 1527], [1488, 1489, 1529, 1528], [1489, 1490, 1530, 1529], [1490, 1491, 1531, 1530], [1491, 1492, 1532, 1531], [1492, 1493, 1533, 1532], [1493, 1494, 1534, 1533], [1494, 1495, 1535, 1534], [1495, 1496, 1536, 1535], [1496, 1497, 1537, 1536], [1497, 1498, 1538, 1537], [1498, 1499, 1539, 1538], [1499, 1500, 1540, 1539], [1500, 1501, 1541, 1540], [1501, 1502, 1542, 1541], [1502, 1503, 1543, 1542], [1503, 1504, 1544, 1543], [1504, 1505, 1545, 1544], [1505, 1506, 1546, 1545], [1506, 1507, 1547, 1546], [1507, 1508, 1548, 1547], [1508, 1509, 1549, 1548], [1509, 1510, 1550, 1549], [1510, 1511, 1551, 1550], [1511, 1512, 1552, 1551], [1512, 1513, 1553, 1552], [1513, 1514, 1554, 1553], [1514, 1515, 1555, 1554], [1515, 1516, 1556, 1555], [1516, 1517, 1557, 1556], [1517, 1518, 1558, 1557], [1518, 1519, 1559, 1558], [1521, 1520, 1560, 1561], [1520, 1522, 1562, 1560], [1522, 1523, 1563, 1562], [1523, 1524, 1564, 1563], [1524, 1525, 1565, 1564], [1525, 1526, 1566, 1565], [1526, 1527, 1567, 1566], [1527, 1528, 1568, 1567], [1528, 1529, 1569, 1568], [1529, 1530, 1570, 1569], [1530, 1531, 1571, 1570], [1531, 1532, 1572, 1571], [1532, 1533, 1573, 1572], [1533, 1534, 1574, 1573], [1534, 1535, 1575, 1574], [1535, 1536, 1576, 1575], [1536, 1537, 1577, 1576], [1537, 1538, 1578, 1577], [1538, 1539, 1579, 1578], [1539, 1540, 1580, 1579], [1540, 1541, 1581, 1580], [1541, 1542, 1582, 1581], [1542, 1543, 1583, 1582], [1543, 1544, 1584, 1583], [1544, 1545, 1585, 1584], [1545, 1546, 1586, 1585], [1546, 1547, 1587, 1586], [1547, 1548, 1588, 1587], [1548, 1549, 1589, 1588], [1549, 1550, 1590, 1589], [1550, 1551, 1591, 1590], [1551, 1552, 1592, 1591], [1552, 1553, 1593, 1592], [1553, 1554, 1594, 1593], [1554, 1555, 1595, 1594], [1555, 1556, 1596, 1595], [1556, 1557, 1597, 1596], [1557, 1558, 1598, 1597], [1558, 1559, 1599, 1598]], \"color\": \"#ffa500\", \"opacity\": 1.0, \"showMeshGrid\": true}];\n    for ( var i=0 ; i < surfaces.length ; i++ ) addSurface( surfaces[i] );\n\n    function addSurface( json ) {\n\n        var useFaceColors = 'faceColors' in json ? true : false;\n\n        var geometry = new THREE.Geometry();\n        for ( var i=0 ; i < json.vertices.length ; i++ ) {\n            var v = json.vertices[i];\n            geometry.vertices.push( new THREE.Vector3( a[0]*v.x, a[1]*v.y, a[2]*v.z ) );\n        }\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length - 2 ; j++ ) {\n                var face = new THREE.Face3( f[0], f[j+1], f[j+2] );\n                if ( useFaceColors ) face.color.set( json.faceColors[i] );\n                geometry.faces.push( face );\n            }\n        }\n        geometry.computeVertexNormals();\n\n        var side = json.singleSide ? THREE.FrontSide : THREE.DoubleSide;\n        var transparent = json.opacity < 1 ? true : false;\n        var depthWrite = 'depthWrite' in json ? json.depthWrite : !transparent;\n        var flatShading = json.useFlatShading ? json.useFlatShading : false;\n\n        var material = new THREE.MeshPhongMaterial( { side: side,\n                                     color: useFaceColors ? 'white' : json.color,\n                                     vertexColors: useFaceColors ? THREE.FaceColors : THREE.NoColors,\n                                     transparent: transparent, opacity: json.opacity,\n                                     shininess: 20, flatShading: flatShading,\n                                     depthWrite: depthWrite } );\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var mesh = new THREE.Mesh( geometry, material );\n        mesh.position.set( c.x, c.y, c.z );\n        if ( transparent && json.renderOrder ) mesh.renderOrder = json.renderOrder;\n        mesh.userData = json;\n        scene.add( mesh );\n\n        if ( json.showMeshGrid ) addSurfaceMeshGrid( json );\n\n    }\n\n    function addSurfaceMeshGrid( json ) {\n\n        var geometry = new THREE.Geometry();\n\n        for ( var i=0 ; i < json.faces.length ; i++ ) {\n            var f = json.faces[i];\n            for ( var j=0 ; j < f.length ; j++ ) {\n                var k = j === f.length-1 ? 0 : j+1;\n                var v1 = json.vertices[f[j]];\n                var v2 = json.vertices[f[k]];\n                // vertices in opposite directions on neighboring faces\n                var nudge = f[j] < f[k] ? .0005*zRange : -.0005*zRange;\n                geometry.vertices.push( new THREE.Vector3( a[0]*v1.x, a[1]*v1.y, a[2]*(v1.z+nudge) ) );\n                geometry.vertices.push( new THREE.Vector3( a[0]*v2.x, a[1]*v2.y, a[2]*(v2.z+nudge) ) );\n            }\n        }\n\n        var c = new THREE.Vector3();\n        geometry.computeBoundingBox();\n        geometry.boundingBox.getCenter( c );\n        geometry.translate( -c.x, -c.y, -c.z );\n\n        var gridColor = options.theme === 'dark' ? 'white' : 'black';\n        var linewidth = json.linewidth || 1;\n        var materialOptions = { color: gridColor, linewidth: linewidth };\n\n        var mesh;\n        if ( linewidth > 1 && window.createFatLineSegments ) {\n            mesh = createFatLineSegments( geometry, materialOptions );\n        } else {\n            var material = new THREE.LineBasicMaterial( materialOptions );\n            mesh = new THREE.LineSegments( geometry, material );\n        }\n\n        mesh.position.set( c.x, c.y, c.z );\n        mesh.userData = json;\n        scene.add( mesh );\n\n    }\n\n    function render() {\n\n        if ( window.updateAnimation ) animate = updateAnimation();\n        if ( animate ) requestAnimationFrame( render );\n\n        renderer.render( scene, camera );\n\n    }\n\n    render();\n    controls.update();\n    if ( !animate ) render();\n\n\n    // menu functions\n\n    function toggleMenu() {\n\n        var m = document.getElementById( 'menu-content' );\n        if ( m.style.display === 'block' ) m.style.display = 'none'\n        else m.style.display = 'block';\n\n    }\n\n\n    function saveAsPNG() {\n\n        var a = document.body.appendChild( document.createElement( 'a' ) );\n        a.href = renderer.domElement.toDataURL( 'image/png' );\n        a.download = 'screenshot';\n        a.click();\n\n    }\n\n    function saveAsHTML() {\n\n        toggleMenu(); // otherwise visible in output\n        event.stopPropagation();\n\n        var blob = new Blob( [ '<!DOCTYPE html>\\n' + document.documentElement.outerHTML ] );\n        var a = document.body.appendChild( document.createElement( 'a' ) );\n        a.href = window.URL.createObjectURL( blob );\n        a.download = suggestFilename();\n        a.click();\n\n        function suggestFilename() {\n            if ( !document.title ) {\n                return 'graphic.html';\n            } else if ( /\\.html?$/i.test( document.title ) ) {\n                return document.title; // already ends in .htm or .html\n            } else {\n                return document.title + '.html';\n            }\n        }\n\n    }\n\n    function getViewpoint() {\n\n        function roundTo( x, n ) { return +x.toFixed(n); }\n\n        var v = camera.quaternion.inverse();\n        var r = Math.sqrt( v.x*v.x + v.y*v.y + v.z*v.z );\n        var axis = [ roundTo( v.x / r, 4 ), roundTo( v.y / r, 4 ), roundTo( v.z / r, 4 ) ];\n        var angle = roundTo( 2 * Math.atan2( r, v.w ) * 180 / Math.PI, 2 );\n\n        var textArea = document.createElement( 'textarea' );\n        textArea.textContent = JSON.stringify( axis ) + ',' + angle;\n        textArea.style.csstext = 'position: absolute; top: -100%';\n        document.body.append( textArea );\n        textArea.select();\n        document.execCommand( 'copy' );\n\n        var m = document.getElementById( 'menu-message' );\n        m.innerHTML = 'Viewpoint copied to clipboard';\n        m.style.display = 'block';\n        setTimeout( function() { m.style.display = 'none'; }, 2000 );\n\n    }\n\n    function getCamera() {\n\n        function roundTo( x, n ) { return +x.toFixed(n); }\n\n        var pos = camera.position;\n        var pos_r = [ roundTo( pos.x, 4 ), roundTo( pos.y, 4 ), roundTo( pos.z, 4 ) ];\n   //     var up = camera.up; // up is always (0,0,1)\n        var textArea = document.createElement('textarea');\n        var cam_position = JSON.stringify(pos_r);\n        textArea.textContent = ',camera_position=' + cam_position;\n        textArea.style.csstext = 'position: absolute; top: -100%';\n        document.body.append( textArea );\n        textArea.select();\n        document.execCommand( 'copy' );\n\n        var m = document.getElementById( 'menu-message' );\n        m.innerHTML = 'Camera position '+ cam_position+' copied to clipboard';\n        m.style.display = 'block';\n        setTimeout( function() { m.style.display = 'none'; }, 2000 );\n\n    }\n                                       \n</script><canvas style=\"width: 2017px; height: 500px;\" tabindex=\"0\" width=\"2017\" height=\"500\"></canvas>\n\n<div id=\"menu-container\" onclick=\"toggleMenu()\">ⓘ\n<div id=\"menu-message\"></div>\n<div id=\"menu-content\" style=\"display: none;\">\n<div onclick=\"saveAsPNG()\">Save as PNG</div>\n<div onclick=\"saveAsHTML()\">Save as HTML</div>\n<div onclick=\"getCamera()\">Get camera</div>\n<div onclick=\"getViewpoint()\">Get viewpoint</div>\n<div>Close Menu</div>\n</div></div>\n\n\n\n</body></html>\n"
  },
  {
    "path": "examples/sample-article/media/images/complete-graph.tex",
    "content": "% A complete graph\n% Author: Quintin Jean-Noël\n% <http://moais.imag.fr/membres/jean-noel.quintin/>\n\\documentclass{article}\n\\usepackage{tikz}\n%%%<\n\\usepackage{verbatim}\n\\usepackage{verbatim}\n\\usepackage[active,tightpage]{preview}\n\\PreviewEnvironment{tikzpicture}\n\\setlength\\PreviewBorder{5pt}%\n%%%>\n\\begin{comment}\n:Title: A complete graph\n:Tags: Foreach;Graphs;To paths\n:Author: Jean-Noël Quintin\n:Slug: complete-graph\n\\end{comment}\n\\usetikzlibrary[topaths]\n% A counter, since TikZ is not clever enough (yet) to handle\n% arbitrary angle systems.\n\\newcount\\mycount\n\\begin{document}\n\\begin{tikzpicture}[transform shape]\n  %the multiplication with floats is not possible. Thus I split the loop in two.\n  \\foreach \\number in {1,...,8}{\n      % Computer angle:\n        \\mycount=\\number\n        \\advance\\mycount by -1\n  \\multiply\\mycount by 45\n        \\advance\\mycount by 0\n      \\node[draw,circle,inner sep=0.25cm] (N-\\number) at (\\the\\mycount:5.4cm) {};\n    }\n  \\foreach \\number in {9,...,16}{\n      % Computer angle:\n        \\mycount=\\number\n        \\advance\\mycount by -1\n  \\multiply\\mycount by 45\n        \\advance\\mycount by 22.5\n      \\node[draw,circle,inner sep=0.25cm] (N-\\number) at (\\the\\mycount:5.4cm) {};\n    }\n  \\foreach \\number in {1,...,15}{\n        \\mycount=\\number\n        \\advance\\mycount by 1\n  \\foreach \\numbera in {\\the\\mycount,...,16}{\n    \\path (N-\\number) edge[->,bend right=3] (N-\\numbera)  edge[<-,bend\n      left=3] (N-\\numbera);\n  }\n}\n\\end{tikzpicture}\n\\end{document}\n"
  },
  {
    "path": "examples/sample-article/media/pytutor/happy.json",
    "content": "{\"code\": \"# From \\\"Teaching with Python\\\" by John Zelle\\ndef happy():\\n    print(\\\"Happy Birthday to you!\\\")\\n\\ndef sing(P):\\n    happy()\\n    happy()\\n    print(\\\"Happy Birthday dear \\\" + P + \\\"!\\\")\\n    happy()\\n\\n# main\\nsing(\\\"Fred\\\")\\n\", \"trace\": [{\"ordered_globals\": [], \"stdout\": \"\", \"func_name\": \"<module>\", \"stack_to_render\": [], \"globals\": {}, \"heap\": {}, \"line\": 2, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\"], \"stdout\": \"\", \"func_name\": \"<module>\", \"stack_to_render\": [], \"globals\": {\"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null]}, \"line\": 5, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"\", \"func_name\": \"<module>\", \"stack_to_render\": [], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 12, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"\", \"func_name\": \"sing\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 5, \"event\": \"call\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"\", \"func_name\": \"sing\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 6, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 2, \"encoded_locals\": {}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f2\", \"ordered_varnames\": []}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 2, \"event\": \"call\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 2, \"encoded_locals\": {}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f2\", \"ordered_varnames\": []}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 3, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 2, \"encoded_locals\": {\"__return__\": null}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f2\", \"ordered_varnames\": [\"__return__\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 3, \"event\": \"return\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\n\", \"func_name\": \"sing\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 7, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 3, \"encoded_locals\": {}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f3\", \"ordered_varnames\": []}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 2, \"event\": \"call\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 3, \"encoded_locals\": {}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f3\", \"ordered_varnames\": []}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 3, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 3, \"encoded_locals\": {\"__return__\": null}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f3\", \"ordered_varnames\": [\"__return__\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 3, \"event\": \"return\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\n\", \"func_name\": \"sing\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 8, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\nHappy Birthday dear Fred!\\n\", \"func_name\": \"sing\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 9, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\nHappy Birthday dear Fred!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 4, \"encoded_locals\": {}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f4\", \"ordered_varnames\": []}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 2, \"event\": \"call\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\nHappy Birthday dear Fred!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 4, \"encoded_locals\": {}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f4\", \"ordered_varnames\": []}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 3, \"event\": \"step_line\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\nHappy Birthday dear Fred!\\nHappy Birthday to you!\\n\", \"func_name\": \"happy\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"P\": \"Fred\"}, \"is_highlighted\": false, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\"]}, {\"frame_id\": 4, \"encoded_locals\": {\"__return__\": null}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"happy\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"happy_f4\", \"ordered_varnames\": [\"__return__\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 3, \"event\": \"return\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\nHappy Birthday dear Fred!\\nHappy Birthday to you!\\n\", \"func_name\": \"sing\", \"stack_to_render\": [{\"frame_id\": 1, \"encoded_locals\": {\"__return__\": null, \"P\": \"Fred\"}, \"is_highlighted\": true, \"is_parent\": false, \"func_name\": \"sing\", \"is_zombie\": false, \"parent_frame_id_list\": [], \"unique_hash\": \"sing_f1\", \"ordered_varnames\": [\"P\", \"__return__\"]}], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 9, \"event\": \"return\"}, {\"ordered_globals\": [\"happy\", \"sing\"], \"stdout\": \"Happy Birthday to you!\\nHappy Birthday to you!\\nHappy Birthday dear Fred!\\nHappy Birthday to you!\\n\", \"func_name\": \"<module>\", \"stack_to_render\": [], \"globals\": {\"sing\": [\"REF\", 2], \"happy\": [\"REF\", 1]}, \"heap\": {\"1\": [\"FUNCTION\", \"happy()\", null], \"2\": [\"FUNCTION\", \"sing(P)\", null]}, \"line\": 12, \"event\": \"return\"}]}\n"
  },
  {
    "path": "examples/sample-article/media/stack/01_integration_with_feedback.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<quiz>\n<!-- question: 17332  -->\n  <question type=\"stack\">\n    <name>\n      <text>Integration</text>\n    </name>\n    <questiontext format=\"html\">\n      <text><![CDATA[<p>Find \\[ \\int {@p@} d{@v@}\\] [[input:ans1]] [[validation:ans1]]</p>]]></text>\n    </questiontext>\n    <generalfeedback format=\"html\">\n      <text><![CDATA[<p>We can either do this question by inspection (i.e. spot the answer) or in a more formal manner by using the substitution \\[ u = ({@v@}-{@a@}).\\] Then, since \\(\\frac{d}{d{@v@}}u=1\\) we have \\[ \\int {@p@} d{@v@} = \\int u^{@n@} du = \\frac{u^{@n+1@}}{@n+1@}+c = {@ta@}+c.\\]</p>]]></text>\n    </generalfeedback>\n    <defaultgrade>1</defaultgrade>\n    <penalty>0.1</penalty>\n    <hidden>0</hidden>\n    <idnumber></idnumber>\n    <stackversion>\n      <text>2025030700</text>\n    </stackversion>\n    <questionvariables>\n      <text>n:rand(5)+3;\n a:rand(5)+3;\n v:x\n p:(v-a)^n;\n ta:(v-a)^(n+1)/(n+1);</text>\n    </questionvariables>\n    <specificfeedback format=\"html\">\n      <text><![CDATA[<p>[[feedback:prt1]]</p>]]></text>\n    </specificfeedback>\n    <questionnote format=\"moodle_auto_format\">\n      <text>\\(\\int {@p@} d{@v@} = {@ta@}+c\\)</text>\n    </questionnote>\n    <questiondescription format=\"moodle_auto_format\">\n      <text></text>\n    </questiondescription>\n    <questionsimplify>1</questionsimplify>\n    <assumepositive>0</assumepositive>\n    <assumereal>0</assumereal>\n    <prtcorrect format=\"html\">\n      <text><![CDATA[Correct answer, well done.]]></text>\n    </prtcorrect>\n    <prtpartiallycorrect format=\"html\">\n      <text><![CDATA[Your answer is partially correct.]]></text>\n    </prtpartiallycorrect>\n    <prtincorrect format=\"html\">\n      <text><![CDATA[Incorrect answer.]]></text>\n    </prtincorrect>\n    <decimals>.</decimals>\n    <scientificnotation>*10</scientificnotation>\n    <multiplicationsign>dot</multiplicationsign>\n    <sqrtsign>1</sqrtsign>\n    <complexno>i</complexno>\n    <inversetrig>cos-1</inversetrig>\n    <logicsymbol>lang</logicsymbol>\n    <matrixparens>[</matrixparens>\n    <variantsselectionseed></variantsselectionseed>\n    <input>\n      <name>ans1</name>\n      <type>algebraic</type>\n      <tans>ta+c</tans>\n      <boxsize>20</boxsize>\n      <strictsyntax>1</strictsyntax>\n      <insertstars>0</insertstars>\n      <syntaxhint></syntaxhint>\n      <syntaxattribute>0</syntaxattribute>\n      <forbidwords>int</forbidwords>\n      <allowwords></allowwords>\n      <forbidfloat>1</forbidfloat>\n      <requirelowestterms>1</requirelowestterms>\n      <checkanswertype>1</checkanswertype>\n      <mustverify>1</mustverify>\n      <showvalidation>1</showvalidation>\n      <options></options>\n    </input>\n    <prt>\n      <name>prt1</name>\n      <value>1.0000000</value>\n      <autosimplify>1</autosimplify>\n      <feedbackstyle>1</feedbackstyle>\n      <feedbackvariables>\n        <text></text>\n      </feedbackvariables>\n      <node>\n        <name>0</name>\n        <description></description>\n        <answertest>Int</answertest>\n        <sans>ans1</sans>\n        <tans>ta</tans>\n        <testoptions>v</testoptions>\n        <quiet>0</quiet>\n        <truescoremode>=</truescoremode>\n        <truescore>1</truescore>\n        <truepenalty></truepenalty>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>1-0-T </trueanswernote>\n        <truefeedback format=\"html\">\n          <text></text>\n        </truefeedback>\n        <falsescoremode>=</falsescoremode>\n        <falsescore>0</falsescore>\n        <falsepenalty></falsepenalty>\n        <falsenextnode>-1</falsenextnode>\n        <falseanswernote>1-0-F </falseanswernote>\n        <falsefeedback format=\"html\">\n          <text></text>\n        </falsefeedback>\n      </node>\n    </prt>\n    <deployedseed>1001758021</deployedseed>\n    <deployedseed>165520961</deployedseed>\n    <deployedseed>1575780430</deployedseed>\n    <deployedseed>1893097548</deployedseed>\n    <deployedseed>196914510</deployedseed>\n    <deployedseed>119069312</deployedseed>\n    <deployedseed>2028726687</deployedseed>\n    <deployedseed>788370893</deployedseed>\n    <deployedseed>400217408</deployedseed>\n    <deployedseed>1304537090</deployedseed>\n    <deployedseed>1439331987</deployedseed>\n    <deployedseed>193373653</deployedseed>\n    <qtest>\n      <testcase>1</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ta+c</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>1.0000000</expectedscore>\n        <expectedpenalty>0.0000000</expectedpenalty>\n        <expectedanswernote>1-0-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>2</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ta</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>1-0-F</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>3</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ev(n*(v-a)^(n-1),simp)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>1-0-F</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>4</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>(v-a)^(n+1)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>1-0-F</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>5</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ev(float(ta),simp)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore></expectedscore>\n        <expectedpenalty></expectedpenalty>\n        <expectedanswernote>NULL</expectedanswernote>\n      </expected>\n    </qtest>\n  </question>\n\n</quiz>\n"
  },
  {
    "path": "examples/sample-article/media/stack/Adding-vectors-in-triangles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<quiz>\n  <question type=\"stack\">\n    <name>\n      <text>9.1.5.4 Adding vectors in triangles</text>\n    </name>\n    <questiontext format=\"html\">\n      <text><![CDATA[<p class=\"HELM_exercise\">Exercise</p>\n<p> In triangle \\(OAB\\) the point \\(P\\) divides \\(AB\\) internally in the ratio \\(m:n\\).</p>\n<p>If \\(\\overrightarrow{OA} = \\underline{a}\\) and \\(\\overrightarrow{OB} \n= \\underline{b}\\), then find an expression for \\(\\overrightarrow{OP}\\) in terms of \\(\\underline{a}\\) and \\(\\underline{b}\\).</p>\n<p>You might find it helpful to draw a diagram showing this triangle.</p>\n<p>\\(\\overrightarrow{OP} = \\) [[input:ans1]] [[validation:ans1]] [[feedback:prt1]]</p>]]></text>\n    </questiontext>\n    <generalfeedback format=\"html\">\n      <text><![CDATA[<p>The figure below shows the triangle with the vector \\(\\overrightarrow{OP}\\) marked with a dotted line within.</p><p style=\"text-align: center;\"><img src=\"@@PLUGINFILE@@/9-1-4TriangleQuestionAns.svg\" alt=\"A triangle OAB with vectors a and b marked on the edges OA and OB respectively. The point P is marked partway along the edge AB and a dotted line marks the vector OP through the middle of the triangle.\" class=\"img-responsive atto_image_button_text-bottom\" width=\"455\" height=\"306\"></p><p>From\n the diagram we can see \\(\\overrightarrow{OP} = \\overrightarrow{OA} + \n\\overrightarrow{AP}\\).&nbsp; We are told \\(\\overrightarrow{OA} = \n\\underline{a}\\) and so we need to find \\(\\overrightarrow{AP}\\).&nbsp; We know\n that \\(P\\) divides \\(\\overrightarrow{AB}\\) in the ratio \\(m:n\\) so \n\\[\\overrightarrow{AP} = \\frac{m}{m+n}\\left(\\overrightarrow{AB}\\right),\\]\n as \\[\\overrightarrow{AB} = \\underline{b} - \\underline{a}\\] we find \n\\[\\overrightarrow{AP} = \\frac{m}{m+n}\\left(\\underline{b} - \n\\underline{a}\\right)\\] and therefore, \\[\\overrightarrow{OP} = \n\\underline{a} + \\frac{m}{m+n}\\left(\\underline{b} - \n\\underline{a}\\right).\\]</p><p>Note: You can arrive at an equivalent expression by starting from \\(\\overrightarrow{OP} = \\overrightarrow{OB} + \n\\overrightarrow{BP}\\).</p><br>]]></text>\n<file name=\"9-1-4TriangleQuestionAns.svg\" path=\"/\" encoding=\"base64\">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzgiCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDEyMC40NjA1NiA4MC44MzEyMjMiCiAgIGhlaWdodD0iODAuODMxMjIzbW0iCiAgIHdpZHRoPSIxMjAuNDYwNTZtbSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzEuODI1NjcsLTU1LjI5NDQ3NCkiCiAgICAgaWQ9ImxheWVyMSI+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxMCIKICAgICAgIGQ9Ik0gMzguOTMxNTQ4LDEyNS4wMjA4MyBDIDExMC43NDcwMiw2MS41MjA4MzEgMTEwLjc0NzAyLDYxLjUyMDgzMSAxMTAuNzQ3MDIsNjEuNTIwODMxIHYgMCAwIGMgMzYuMjg1NzIsNjMuNDk5OTk5IDM2LjI4NTcyLDYzLjQ5OTk5OSAzNi4yODU3Miw2My40OTk5OTkgdiAwIDAgeiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNTI3OTE4MTYiCiAgICAgICBkPSJtIDc2LjYyNDk2Nyw5MS41ODE1NTMgLTEuNTg4MjAxLC0wLjY4ODgwNSAwLjAyMDMsLTAuMDYyMDIgMi40NzkyOTgsLTAuNzI1OTM3IGMgMC43NzY1MDksLTAuMzgwMjM4IDEuNTUxMDMxLC0wLjc2MDQ5MiAyLjMyNzU0LC0xLjE0MDczMSAtMC41NTY1ODEsMC42OTY5MjMgLTEuMTEzMTYyLDEuMzkzODQ4IC0xLjY2OTc0MywyLjA5MDc3MSBsIC0xLjM0NjMzNiwyLjM2NTMzNSAtMC4wNTM2NiwwLjAxMjUyIC0wLjE2OTE4OSwtMS44NTEwOSIKICAgICAgIGlkPSJwYXRoMTAxMSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjUyNzkxODE2IgogICAgICAgZD0ibSA5Ny40NTYzMzIsMTI1LjI3MTE1IC0wLjkzNDg0NSwtMS40NTcwMiAwLjA1MTQxLC0wLjA0MDIgMi40NjMxNjIsMC43Nzg5MyBjIDAuODU2NjUzLDAuMTE3MDMgMS43MTE2NjEsMC4yMzI5MyAyLjU2ODMxMSwwLjM0OTk2IC0wLjg1MDUzLDAuMjY4NDggLTEuNzAxMDU1LDAuNTM2OTggLTIuNTUxNTgyLDAuODA1NDYgbCAtMi40MzYwNjUsMS4yMTM2NyAtMC4wNTE1MiwtMC4wMTk1IDAuODkxMTE4LC0xLjYzMTI4IgogICAgICAgaWQ9InBhdGgxMDExLTMiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMyIKICAgICAgIGQ9Ik0gMzguOTMxNTQ4LDEyNS4wMjA4MyBDIDEzNC4wMzU2NywxMDIuNTYxNDIgMTM0LjAzNTY3LDEwMi41NjE0MiAxMzQuMDM1NjcsMTAyLjU2MTQyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC4yNjQ5OTk5OTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6Mi4xMTk5OTk5LCAxLjA1OTk5OTk1O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjUyNzkxODE2IgogICAgICAgZD0ibSA5NS4wODk2NTksMTExLjk0OTI4IC0xLjE5NzY0NCwtMS4yNSAwLjA0MjcyLC0wLjA0OTMgMi41NjY5OTQsMC4yOTA2IGMgMC44NjMxNjMsLTAuMDQ5OSAxLjcyNDUwNCwtMC4xMDA2MyAyLjU4NzY3LC0wLjE1MDU2IC0wLjc4MzAwMywwLjQyNzA4IC0xLjU2NjAwNSwwLjg1NDE1IC0yLjM0OTAwNSwxLjI4MTIzIGwgLTIuMTU3MTI1LDEuNjU5NTkgLTAuMDU0MywtMC4wMSAwLjU2MDY5NywtMS43NzIyMyIKICAgICAgIGlkPSJwYXRoMTAxMS02IiAvPgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODUzIgogICAgICAgeT0iMTI4LjA4NTY2IgogICAgICAgeD0iMzEuNTM3ODA0IgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjguNDY2NjY2MjJweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgICB5PSIxMjguMDg1NjYiCiAgICAgICAgIHg9IjMxLjUzNzgwNCIKICAgICAgICAgaWQ9InRzcGFuODUxIj5PPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgaWQ9InRleHQ4NTciCiAgICAgICB5PSI2MS4wMDEwMDciCiAgICAgICB4PSIxMDguMzc3OCIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxMC41ODMzMzMwMnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo4LjQ2NjY2NjIycHg7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgICAgIHk9IjYxLjAwMTAwNyIKICAgICAgICAgeD0iMTA4LjM3NzgiCiAgICAgICAgIGlkPSJ0c3Bhbjg1NSI+QTwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODYxIgogICAgICAgeT0iMTI3LjgxODM5IgogICAgICAgeD0iMTQ3LjI2NTUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo4LjQ2NjY2NjIycHg7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgICAgIHk9IjEyNy44MTgzOSIKICAgICAgICAgeD0iMTQ3LjI2NTUiCiAgICAgICAgIGlkPSJ0c3Bhbjg1OSI+QjwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODY1IgogICAgICAgeT0iMTAyLjgyODY5IgogICAgICAgeD0iMTM1LjM3MjAxIgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjguNDY2NjY2MjJweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgICB5PSIxMDIuODI4NjkiCiAgICAgICAgIHg9IjEzNS4zNzIwMSIKICAgICAgICAgaWQ9InRzcGFuODYzIj5QPC90c3Bhbj48L3RleHQ+CiAgICA8ZwogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MSIKICAgICAgIGlkPSJnMjYxOSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDMuMjYyNTA4OCwwLDAsMi43OTU4MDQ4LC01MzkuNzc2MywxMy43MDIxMjcpIj4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywxODcuMzE3MjksMjYuMzUzNDAxKSIKICAgICAgICAgaWQ9InVzZTI2MTciPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaWQ9InBhdGg4NzciCiAgICAgICAgICAgZD0iTSA0LjQ2ODc1LC00LjUzMTI1IEMgNC4yNjU2MjUsLTQuOTg0Mzc1IDMuOTA2MjUsLTUuMjk2ODc1IDMuMzc1LC01LjI5Njg3NSBjIC0xLjQwNjI1LDAgLTIuODkwNjI1LDEuNzUgLTIuODkwNjI1LDMuNTE1NjI1IDAsMS4xMjUgMC42NTYyNSwxLjkwNjI1IDEuNTkzNzUsMS45MDYyNSAwLjIzNDM3NSwwIDAuODQzNzUsLTAuMDQ2ODc1IDEuNTYyNSwtMC44OTA2MjUgMC4wOTM3NSwwLjUgMC41MTU2MjUsMC44OTA2MjUgMS4wOTM3NSwwLjg5MDYyNSAwLjQwNjI1LDAgMC42ODc1LC0wLjI2NTYyNSAwLjg3NSwtMC42NTYyNSAwLjIwMzEyNSwtMC40MjE4NzUgMC4zNTkzNzUsLTEuMTU2MjUgMC4zNTkzNzUsLTEuMTg3NSAwLC0wLjEyNSAtMC4wOTM3NSwtMC4xMjUgLTAuMTQwNjI1LC0wLjEyNSAtMC4xMDkzNzUsMCAtMC4xMjUsMC4wNjI1IC0wLjE3MTg3NSwwLjIxODc1IC0wLjIwMzEyNSwwLjc4MTI1IC0wLjQwNjI1LDEuNSAtMC45MDYyNSwxLjUgLTAuMzI4MTI1LDAgLTAuMzU5Mzc1LC0wLjMxMjUgLTAuMzU5Mzc1LC0wLjU2MjUgMCwtMC4yNjU2MjUgMC4wMzEyNSwtMC4zNTkzNzUgMC4xNTYyNSwtMC44OTA2MjUgMC4xNDA2MjUsLTAuNSAwLjE1NjI1LC0wLjYyNSAwLjI2NTYyNSwtMS4wNzgxMjUgMC4yMDMxMjUsLTAuNzY1NjI1IDAuMjUsLTAuOTg0Mzc1IDAuNDM3NSwtMS42NzE4NzUgMC4wNzgxMjUsLTAuMzQzNzUgMC4wNzgxMjUsLTAuMzU5Mzc1IDAuMDc4MTI1LC0wLjQwNjI1IDAsLTAuMjAzMTI1IC0wLjE0MDYyNSwtMC4zMjgxMjUgLTAuMzQzNzUsLTAuMzI4MTI1IC0wLjI5Njg3NSwwIC0wLjQ2ODc1LDAuMjY1NjI1IC0wLjUxNTYyNSwwLjUzMTI1IHogbSAtMC43NjU2MjUsMy4xMDkzNzUgYyAtMC4wNjI1LDAuMjAzMTI1IC0wLjA2MjUsMC4yMzQzNzUgLTAuMjUsMC40Mzc1IEMgMi45MjE4NzUsLTAuMzI4MTI1IDIuNDM3NSwtMC4xMjUgMi4wOTM3NSwtMC4xMjUgMS41LC0wLjEyNSAxLjMyODEyNSwtMC43OTY4NzUgMS4zMjgxMjUsLTEuMjY1NjI1IGMgMCwtMC41OTM3NSAwLjM5MDYyNSwtMi4wNzgxMjUgMC42NTYyNSwtMi42MjUgMC4zNzUsLTAuNzAzMTI1IDAuOTIxODc1LC0xLjE1NjI1IDEuNDA2MjUsLTEuMTU2MjUgMC43NjU2MjUsMCAwLjkzNzUsMC45ODQzNzUgMC45Mzc1LDEuMDYyNSAwLDAuMDc4MTI1IC0wLjAxNTYyNSwwLjE0MDYyNSAtMC4wMzEyNSwwLjIwMzEyNSB6IG0gMCwwIgogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuODkzNDgzMDQiCiAgICAgICBkPSJtIDcyLjE4ODkwNyw4OC43MTE5OTcgaCAyLjk4NTMzIHYgLTAuNTU1NTM2IGggLTIuOTg1MzMgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMjYyMSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjIwMjI4MjQzIgogICAgICAgZD0ibSA5OC41NDc1ODYsMTM1LjQ1MDYgaCAzLjY0NTczNCB2IDAuNjc1MSBoIC0zLjY0NTczNCB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNDg1IiAvPgogICAgPGcKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0iZzE0ODMiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgzLjc3OTQ0MzcsMCwwLDIuNjgzMDM3MywtMjc2LjA2MjI2LC0zNS4zNjcyOTIpIj4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMyw5OSw2My40MDcyKSIKICAgICAgICAgaWQ9InVzZTE0ODEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaWQ9InBhdGg5MDMiCiAgICAgICAgICAgZD0ibSAyLjg3NSwtOC4yMDMxMjUgYyAwLDAgMCwtMC4xMjUgLTAuMTU2MjUsLTAuMTI1IC0wLjI4MTI1LDAgLTEuMTU2MjUsMC4wOTM3NSAtMS40Njg3NSwwLjEyNSAtMC4wOTM3NSwwIC0wLjIzNDM3NSwwLjAxNTYyNSAtMC4yMzQzNzUsMC4yMzQzNzUgMCwwLjE0MDYyNSAwLjEwOTM3NSwwLjE0MDYyNSAwLjI5Njg3NSwwLjE0MDYyNSAwLjU3ODEyNSwwIDAuNTkzNzUsMC4wOTM3NSAwLjU5Mzc1LDAuMjAzMTI1IDAsMC4wOTM3NSAtMC4xMDkzNzUsMC41IC0wLjE3MTg3NSwwLjc1IEwgMC43NSwtMi45Njg3NSBDIDAuNjA5Mzc1LC0yLjM1OTM3NSAwLjU2MjUsLTIuMTcxODc1IDAuNTYyNSwtMS43NSBjIDAsMS4xNDA2MjUgMC42NDA2MjUsMS44NzUgMS41MzEyNSwxLjg3NSAxLjQwNjI1LDAgMi44OTA2MjUsLTEuNzgxMjUgMi44OTA2MjUsLTMuNTE1NjI1IDAsLTEuMDc4MTI1IC0wLjY0MDYyNSwtMS45MDYyNSAtMS41OTM3NSwtMS45MDYyNSAtMC41NjI1LDAgLTEuMDQ2ODc1LDAuMzQzNzUgLTEuNDA2MjUsMC43MTg3NSB6IE0gMS43MzQzNzUsLTMuNjU2MjUgYyAwLjA3ODEyNSwtMC4yNjU2MjUgMC4wNzgxMjUsLTAuMjk2ODc1IDAuMTg3NSwtMC40MjE4NzUgMC41OTM3NSwtMC43ODEyNSAxLjEyNSwtMC45Njg3NSAxLjQzNzUsLTAuOTY4NzUgMC40Mzc1LDAgMC43NSwwLjM1OTM3NSAwLjc1LDEuMTQwNjI1IDAsMC43MDMxMjUgLTAuMzkwNjI1LDIuMDc4MTI1IC0wLjYwOTM3NSwyLjUzMTI1IC0wLjM5MDYyNSwwLjgxMjUgLTAuOTM3NSwxLjI1IC0xLjQwNjI1LDEuMjUgLTAuNDA2MjUsMCAtMC44MTI1LC0wLjMyODEyNSAtMC44MTI1LC0xLjIxODc1IDAsLTAuMjM0Mzc1IDAsLTAuNDUzMTI1IDAuMTg3NSwtMS4yMTg3NSB6IG0gMCwwIgogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==</file>\n    </generalfeedback>\n    <defaultgrade>1</defaultgrade>\n    <penalty>0.1</penalty>\n    <hidden>0</hidden>\n    <idnumber/>\n    <stackversion>\n      <text>2021072200</text>\n    </stackversion>\n    <questionvariables>\n      <text>oa:a;\nob:b;\nab: ob-oa;\nap: ab*(m/(m+n));\nop: oa+ap;\nta: op;</text>\n    </questionvariables>\n    <specificfeedback format=\"html\">\n      <text/>\n<file name=\"9-1-4TriangleQuestionAns.svg\" path=\"/\" encoding=\"base64\">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzgiCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDEyMC40NjA1NiA4MC44MzEyMjMiCiAgIGhlaWdodD0iODAuODMxMjIzbW0iCiAgIHdpZHRoPSIxMjAuNDYwNTZtbSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzEuODI1NjcsLTU1LjI5NDQ3NCkiCiAgICAgaWQ9ImxheWVyMSI+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxMCIKICAgICAgIGQ9Ik0gMzguOTMxNTQ4LDEyNS4wMjA4MyBDIDExMC43NDcwMiw2MS41MjA4MzEgMTEwLjc0NzAyLDYxLjUyMDgzMSAxMTAuNzQ3MDIsNjEuNTIwODMxIHYgMCAwIGMgMzYuMjg1NzIsNjMuNDk5OTk5IDM2LjI4NTcyLDYzLjQ5OTk5OSAzNi4yODU3Miw2My40OTk5OTkgdiAwIDAgeiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNTI3OTE4MTYiCiAgICAgICBkPSJtIDc2LjYyNDk2Nyw5MS41ODE1NTMgLTEuNTg4MjAxLC0wLjY4ODgwNSAwLjAyMDMsLTAuMDYyMDIgMi40NzkyOTgsLTAuNzI1OTM3IGMgMC43NzY1MDksLTAuMzgwMjM4IDEuNTUxMDMxLC0wLjc2MDQ5MiAyLjMyNzU0LC0xLjE0MDczMSAtMC41NTY1ODEsMC42OTY5MjMgLTEuMTEzMTYyLDEuMzkzODQ4IC0xLjY2OTc0MywyLjA5MDc3MSBsIC0xLjM0NjMzNiwyLjM2NTMzNSAtMC4wNTM2NiwwLjAxMjUyIC0wLjE2OTE4OSwtMS44NTEwOSIKICAgICAgIGlkPSJwYXRoMTAxMSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjUyNzkxODE2IgogICAgICAgZD0ibSA5Ny40NTYzMzIsMTI1LjI3MTE1IC0wLjkzNDg0NSwtMS40NTcwMiAwLjA1MTQxLC0wLjA0MDIgMi40NjMxNjIsMC43Nzg5MyBjIDAuODU2NjUzLDAuMTE3MDMgMS43MTE2NjEsMC4yMzI5MyAyLjU2ODMxMSwwLjM0OTk2IC0wLjg1MDUzLDAuMjY4NDggLTEuNzAxMDU1LDAuNTM2OTggLTIuNTUxNTgyLDAuODA1NDYgbCAtMi40MzYwNjUsMS4yMTM2NyAtMC4wNTE1MiwtMC4wMTk1IDAuODkxMTE4LC0xLjYzMTI4IgogICAgICAgaWQ9InBhdGgxMDExLTMiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMyIKICAgICAgIGQ9Ik0gMzguOTMxNTQ4LDEyNS4wMjA4MyBDIDEzNC4wMzU2NywxMDIuNTYxNDIgMTM0LjAzNTY3LDEwMi41NjE0MiAxMzQuMDM1NjcsMTAyLjU2MTQyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC4yNjQ5OTk5OTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6Mi4xMTk5OTk5LCAxLjA1OTk5OTk1O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjUyNzkxODE2IgogICAgICAgZD0ibSA5NS4wODk2NTksMTExLjk0OTI4IC0xLjE5NzY0NCwtMS4yNSAwLjA0MjcyLC0wLjA0OTMgMi41NjY5OTQsMC4yOTA2IGMgMC44NjMxNjMsLTAuMDQ5OSAxLjcyNDUwNCwtMC4xMDA2MyAyLjU4NzY3LC0wLjE1MDU2IC0wLjc4MzAwMywwLjQyNzA4IC0xLjU2NjAwNSwwLjg1NDE1IC0yLjM0OTAwNSwxLjI4MTIzIGwgLTIuMTU3MTI1LDEuNjU5NTkgLTAuMDU0MywtMC4wMSAwLjU2MDY5NywtMS43NzIyMyIKICAgICAgIGlkPSJwYXRoMTAxMS02IiAvPgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODUzIgogICAgICAgeT0iMTI4LjA4NTY2IgogICAgICAgeD0iMzEuNTM3ODA0IgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjguNDY2NjY2MjJweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgICB5PSIxMjguMDg1NjYiCiAgICAgICAgIHg9IjMxLjUzNzgwNCIKICAgICAgICAgaWQ9InRzcGFuODUxIj5PPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgaWQ9InRleHQ4NTciCiAgICAgICB5PSI2MS4wMDEwMDciCiAgICAgICB4PSIxMDguMzc3OCIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxMC41ODMzMzMwMnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo4LjQ2NjY2NjIycHg7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgICAgIHk9IjYxLjAwMTAwNyIKICAgICAgICAgeD0iMTA4LjM3NzgiCiAgICAgICAgIGlkPSJ0c3Bhbjg1NSI+QTwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODYxIgogICAgICAgeT0iMTI3LjgxODM5IgogICAgICAgeD0iMTQ3LjI2NTUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo4LjQ2NjY2NjIycHg7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgICAgIHk9IjEyNy44MTgzOSIKICAgICAgICAgeD0iMTQ3LjI2NTUiCiAgICAgICAgIGlkPSJ0c3Bhbjg1OSI+QjwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODY1IgogICAgICAgeT0iMTAyLjgyODY5IgogICAgICAgeD0iMTM1LjM3MjAxIgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjguNDY2NjY2MjJweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgICB5PSIxMDIuODI4NjkiCiAgICAgICAgIHg9IjEzNS4zNzIwMSIKICAgICAgICAgaWQ9InRzcGFuODYzIj5QPC90c3Bhbj48L3RleHQ+CiAgICA8ZwogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MSIKICAgICAgIGlkPSJnMjYxOSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDMuMjYyNTA4OCwwLDAsMi43OTU4MDQ4LC01MzkuNzc2MywxMy43MDIxMjcpIj4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywxODcuMzE3MjksMjYuMzUzNDAxKSIKICAgICAgICAgaWQ9InVzZTI2MTciPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaWQ9InBhdGg4NzciCiAgICAgICAgICAgZD0iTSA0LjQ2ODc1LC00LjUzMTI1IEMgNC4yNjU2MjUsLTQuOTg0Mzc1IDMuOTA2MjUsLTUuMjk2ODc1IDMuMzc1LC01LjI5Njg3NSBjIC0xLjQwNjI1LDAgLTIuODkwNjI1LDEuNzUgLTIuODkwNjI1LDMuNTE1NjI1IDAsMS4xMjUgMC42NTYyNSwxLjkwNjI1IDEuNTkzNzUsMS45MDYyNSAwLjIzNDM3NSwwIDAuODQzNzUsLTAuMDQ2ODc1IDEuNTYyNSwtMC44OTA2MjUgMC4wOTM3NSwwLjUgMC41MTU2MjUsMC44OTA2MjUgMS4wOTM3NSwwLjg5MDYyNSAwLjQwNjI1LDAgMC42ODc1LC0wLjI2NTYyNSAwLjg3NSwtMC42NTYyNSAwLjIwMzEyNSwtMC40MjE4NzUgMC4zNTkzNzUsLTEuMTU2MjUgMC4zNTkzNzUsLTEuMTg3NSAwLC0wLjEyNSAtMC4wOTM3NSwtMC4xMjUgLTAuMTQwNjI1LC0wLjEyNSAtMC4xMDkzNzUsMCAtMC4xMjUsMC4wNjI1IC0wLjE3MTg3NSwwLjIxODc1IC0wLjIwMzEyNSwwLjc4MTI1IC0wLjQwNjI1LDEuNSAtMC45MDYyNSwxLjUgLTAuMzI4MTI1LDAgLTAuMzU5Mzc1LC0wLjMxMjUgLTAuMzU5Mzc1LC0wLjU2MjUgMCwtMC4yNjU2MjUgMC4wMzEyNSwtMC4zNTkzNzUgMC4xNTYyNSwtMC44OTA2MjUgMC4xNDA2MjUsLTAuNSAwLjE1NjI1LC0wLjYyNSAwLjI2NTYyNSwtMS4wNzgxMjUgMC4yMDMxMjUsLTAuNzY1NjI1IDAuMjUsLTAuOTg0Mzc1IDAuNDM3NSwtMS42NzE4NzUgMC4wNzgxMjUsLTAuMzQzNzUgMC4wNzgxMjUsLTAuMzU5Mzc1IDAuMDc4MTI1LC0wLjQwNjI1IDAsLTAuMjAzMTI1IC0wLjE0MDYyNSwtMC4zMjgxMjUgLTAuMzQzNzUsLTAuMzI4MTI1IC0wLjI5Njg3NSwwIC0wLjQ2ODc1LDAuMjY1NjI1IC0wLjUxNTYyNSwwLjUzMTI1IHogbSAtMC43NjU2MjUsMy4xMDkzNzUgYyAtMC4wNjI1LDAuMjAzMTI1IC0wLjA2MjUsMC4yMzQzNzUgLTAuMjUsMC40Mzc1IEMgMi45MjE4NzUsLTAuMzI4MTI1IDIuNDM3NSwtMC4xMjUgMi4wOTM3NSwtMC4xMjUgMS41LC0wLjEyNSAxLjMyODEyNSwtMC43OTY4NzUgMS4zMjgxMjUsLTEuMjY1NjI1IGMgMCwtMC41OTM3NSAwLjM5MDYyNSwtMi4wNzgxMjUgMC42NTYyNSwtMi42MjUgMC4zNzUsLTAuNzAzMTI1IDAuOTIxODc1LC0xLjE1NjI1IDEuNDA2MjUsLTEuMTU2MjUgMC43NjU2MjUsMCAwLjkzNzUsMC45ODQzNzUgMC45Mzc1LDEuMDYyNSAwLDAuMDc4MTI1IC0wLjAxNTYyNSwwLjE0MDYyNSAtMC4wMzEyNSwwLjIwMzEyNSB6IG0gMCwwIgogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuODkzNDgzMDQiCiAgICAgICBkPSJtIDcyLjE4ODkwNyw4OC43MTE5OTcgaCAyLjk4NTMzIHYgLTAuNTU1NTM2IGggLTIuOTg1MzMgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMjYyMSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjIwMjI4MjQzIgogICAgICAgZD0ibSA5OC41NDc1ODYsMTM1LjQ1MDYgaCAzLjY0NTczNCB2IDAuNjc1MSBoIC0zLjY0NTczNCB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNDg1IiAvPgogICAgPGcKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0iZzE0ODMiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgzLjc3OTQ0MzcsMCwwLDIuNjgzMDM3MywtMjc2LjA2MjI2LC0zNS4zNjcyOTIpIj4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMyw5OSw2My40MDcyKSIKICAgICAgICAgaWQ9InVzZTE0ODEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaWQ9InBhdGg5MDMiCiAgICAgICAgICAgZD0ibSAyLjg3NSwtOC4yMDMxMjUgYyAwLDAgMCwtMC4xMjUgLTAuMTU2MjUsLTAuMTI1IC0wLjI4MTI1LDAgLTEuMTU2MjUsMC4wOTM3NSAtMS40Njg3NSwwLjEyNSAtMC4wOTM3NSwwIC0wLjIzNDM3NSwwLjAxNTYyNSAtMC4yMzQzNzUsMC4yMzQzNzUgMCwwLjE0MDYyNSAwLjEwOTM3NSwwLjE0MDYyNSAwLjI5Njg3NSwwLjE0MDYyNSAwLjU3ODEyNSwwIDAuNTkzNzUsMC4wOTM3NSAwLjU5Mzc1LDAuMjAzMTI1IDAsMC4wOTM3NSAtMC4xMDkzNzUsMC41IC0wLjE3MTg3NSwwLjc1IEwgMC43NSwtMi45Njg3NSBDIDAuNjA5Mzc1LC0yLjM1OTM3NSAwLjU2MjUsLTIuMTcxODc1IDAuNTYyNSwtMS43NSBjIDAsMS4xNDA2MjUgMC42NDA2MjUsMS44NzUgMS41MzEyNSwxLjg3NSAxLjQwNjI1LDAgMi44OTA2MjUsLTEuNzgxMjUgMi44OTA2MjUsLTMuNTE1NjI1IDAsLTEuMDc4MTI1IC0wLjY0MDYyNSwtMS45MDYyNSAtMS41OTM3NSwtMS45MDYyNSAtMC41NjI1LDAgLTEuMDQ2ODc1LDAuMzQzNzUgLTEuNDA2MjUsMC43MTg3NSB6IE0gMS43MzQzNzUsLTMuNjU2MjUgYyAwLjA3ODEyNSwtMC4yNjU2MjUgMC4wNzgxMjUsLTAuMjk2ODc1IDAuMTg3NSwtMC40MjE4NzUgMC41OTM3NSwtMC43ODEyNSAxLjEyNSwtMC45Njg3NSAxLjQzNzUsLTAuOTY4NzUgMC40Mzc1LDAgMC43NSwwLjM1OTM3NSAwLjc1LDEuMTQwNjI1IDAsMC43MDMxMjUgLTAuMzkwNjI1LDIuMDc4MTI1IC0wLjYwOTM3NSwyLjUzMTI1IC0wLjM5MDYyNSwwLjgxMjUgLTAuOTM3NSwxLjI1IC0xLjQwNjI1LDEuMjUgLTAuNDA2MjUsMCAtMC44MTI1LC0wLjMyODEyNSAtMC44MTI1LC0xLjIxODc1IDAsLTAuMjM0Mzc1IDAsLTAuNDUzMTI1IDAuMTg3NSwtMS4yMTg3NSB6IG0gMCwwIgogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==</file>\n    </specificfeedback>\n    <questionnote format=\"moodle_auto_format\">\n      <text/>\n    </questionnote>\n    <questiondescription format=\"moodle_auto_format\">\n      <text/>\n    </questiondescription>\n    <questionsimplify>1</questionsimplify>\n    <assumepositive>0</assumepositive>\n    <assumereal>0</assumereal>\n    <prtcorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:green;\"><i class=\"fa fa-check\"></i></span> Correct answer, well done.]]></text>\n    </prtcorrect>\n    <prtpartiallycorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:orange;\"><i class=\"fa fa-adjust\"></i></span> Your answer is partially correct.]]></text>\n    </prtpartiallycorrect>\n    <prtincorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:red;\"><i class=\"fa fa-times\"></i></span> Incorrect answer.]]></text>\n    </prtincorrect>\n    <decimals>.</decimals>\n    <scientificnotation>*10</scientificnotation>\n    <multiplicationsign>none</multiplicationsign>\n    <sqrtsign>1</sqrtsign>\n    <complexno>i</complexno>\n    <inversetrig>cos-1</inversetrig>\n    <logicsymbol>lang</logicsymbol>\n    <matrixparens>[</matrixparens>\n    <isbroken>0</isbroken>\n    <variantsselectionseed/>\n    <input>\n      <name>ans1</name>\n      <type>algebraic</type>\n      <tans>ta</tans>\n      <boxsize>15</boxsize>\n      <strictsyntax>1</strictsyntax>\n      <insertstars>0</insertstars>\n      <syntaxhint/>\n      <syntaxattribute>0</syntaxattribute>\n      <forbidwords/>\n      <allowwords/>\n      <forbidfloat>1</forbidfloat>\n      <requirelowestterms>0</requirelowestterms>\n      <checkanswertype>0</checkanswertype>\n      <mustverify>1</mustverify>\n      <showvalidation>3</showvalidation>\n      <options/>\n    </input>\n    <prt>\n      <name>prt1</name>\n      <value>1.0000000</value>\n      <autosimplify>1</autosimplify>\n      <feedbackstyle>1</feedbackstyle>\n      <feedbackvariables>\n        <text/>\n      </feedbackvariables>\n      <node>\n        <name>0</name>\n        <description/>\n        <answertest>AlgEquiv</answertest>\n        <sans>ans1</sans>\n        <tans>ta</tans>\n        <testoptions/>\n        <quiet>0</quiet>\n        <truescoremode>=</truescoremode>\n        <truescore>1.0000000</truescore>\n        <truepenalty/>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-1-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text><![CDATA[<p></p><br><p></p>]]></text>\n<file name=\"9-1-4TriangleQuestionAns.svg\" path=\"/\" encoding=\"base64\">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzgiCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDEyMC40NjA1NiA4MC44MzEyMjMiCiAgIGhlaWdodD0iODAuODMxMjIzbW0iCiAgIHdpZHRoPSIxMjAuNDYwNTZtbSI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzEuODI1NjcsLTU1LjI5NDQ3NCkiCiAgICAgaWQ9ImxheWVyMSI+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgxMCIKICAgICAgIGQ9Ik0gMzguOTMxNTQ4LDEyNS4wMjA4MyBDIDExMC43NDcwMiw2MS41MjA4MzEgMTEwLjc0NzAyLDYxLjUyMDgzMSAxMTAuNzQ3MDIsNjEuNTIwODMxIHYgMCAwIGMgMzYuMjg1NzIsNjMuNDk5OTk5IDM2LjI4NTcyLDYzLjQ5OTk5OSAzNi4yODU3Miw2My40OTk5OTkgdiAwIDAgeiIKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzJweDtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2Utb3BhY2l0eToxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuNTI3OTE4MTYiCiAgICAgICBkPSJtIDc2LjYyNDk2Nyw5MS41ODE1NTMgLTEuNTg4MjAxLC0wLjY4ODgwNSAwLjAyMDMsLTAuMDYyMDIgMi40NzkyOTgsLTAuNzI1OTM3IGMgMC43NzY1MDksLTAuMzgwMjM4IDEuNTUxMDMxLC0wLjc2MDQ5MiAyLjMyNzU0LC0xLjE0MDczMSAtMC41NTY1ODEsMC42OTY5MjMgLTEuMTEzMTYyLDEuMzkzODQ4IC0xLjY2OTc0MywyLjA5MDc3MSBsIC0xLjM0NjMzNiwyLjM2NTMzNSAtMC4wNTM2NiwwLjAxMjUyIC0wLjE2OTE4OSwtMS44NTEwOSIKICAgICAgIGlkPSJwYXRoMTAxMSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjUyNzkxODE2IgogICAgICAgZD0ibSA5Ny40NTYzMzIsMTI1LjI3MTE1IC0wLjkzNDg0NSwtMS40NTcwMiAwLjA1MTQxLC0wLjA0MDIgMi40NjMxNjIsMC43Nzg5MyBjIDAuODU2NjUzLDAuMTE3MDMgMS43MTE2NjEsMC4yMzI5MyAyLjU2ODMxMSwwLjM0OTk2IC0wLjg1MDUzLDAuMjY4NDggLTEuNzAxMDU1LDAuNTM2OTggLTIuNTUxNTgyLDAuODA1NDYgbCAtMi40MzYwNjUsMS4yMTM2NyAtMC4wNTE1MiwtMC4wMTk1IDAuODkxMTE4LC0xLjYzMTI4IgogICAgICAgaWQ9InBhdGgxMDExLTMiIC8+CiAgICA8cGF0aAogICAgICAgaWQ9InBhdGgzMyIKICAgICAgIGQ9Ik0gMzguOTMxNTQ4LDEyNS4wMjA4MyBDIDEzNC4wMzU2NywxMDIuNTYxNDIgMTM0LjAzNTY3LDEwMi41NjE0MiAxMzQuMDM1NjcsMTAyLjU2MTQyIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDAwMDtzdHJva2Utd2lkdGg6MC4yNjQ5OTk5OTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1saW5lam9pbjptaXRlcjtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6Mi4xMTk5OTk5LCAxLjA1OTk5OTk1O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjUyNzkxODE2IgogICAgICAgZD0ibSA5NS4wODk2NTksMTExLjk0OTI4IC0xLjE5NzY0NCwtMS4yNSAwLjA0MjcyLC0wLjA0OTMgMi41NjY5OTQsMC4yOTA2IGMgMC44NjMxNjMsLTAuMDQ5OSAxLjcyNDUwNCwtMC4xMDA2MyAyLjU4NzY3LC0wLjE1MDU2IC0wLjc4MzAwMywwLjQyNzA4IC0xLjU2NjAwNSwwLjg1NDE1IC0yLjM0OTAwNSwxLjI4MTIzIGwgLTIuMTU3MTI1LDEuNjU5NTkgLTAuMDU0MywtMC4wMSAwLjU2MDY5NywtMS43NzIyMyIKICAgICAgIGlkPSJwYXRoMTAxMS02IiAvPgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODUzIgogICAgICAgeT0iMTI4LjA4NTY2IgogICAgICAgeD0iMzEuNTM3ODA0IgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjguNDY2NjY2MjJweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgICB5PSIxMjguMDg1NjYiCiAgICAgICAgIHg9IjMxLjUzNzgwNCIKICAgICAgICAgaWQ9InRzcGFuODUxIj5PPC90c3Bhbj48L3RleHQ+CiAgICA8dGV4dAogICAgICAgaWQ9InRleHQ4NTciCiAgICAgICB5PSI2MS4wMDEwMDciCiAgICAgICB4PSIxMDguMzc3OCIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxMC41ODMzMzMwMnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo4LjQ2NjY2NjIycHg7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgICAgIHk9IjYxLjAwMTAwNyIKICAgICAgICAgeD0iMTA4LjM3NzgiCiAgICAgICAgIGlkPSJ0c3Bhbjg1NSI+QTwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODYxIgogICAgICAgeT0iMTI3LjgxODM5IgogICAgICAgeD0iMTQ3LjI2NTUiCiAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7ZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHRzcGFuCiAgICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZTo4LjQ2NjY2NjIycHg7Zm9udC1mYW1pbHk6J1RlWCBHeXJlIFRlcm1lcyBNYXRoJzstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidUZVggR3lyZSBUZXJtZXMgTWF0aCwgTm9ybWFsJztmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtY2Fwczpub3JtYWw7Zm9udC12YXJpYW50LW51bWVyaWM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1hbGlnbjpzdGFydDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6c3RhcnQ7c3Ryb2tlLXdpZHRoOjAuMjY0NTgzMzIiCiAgICAgICAgIHk9IjEyNy44MTgzOSIKICAgICAgICAgeD0iMTQ3LjI2NTUiCiAgICAgICAgIGlkPSJ0c3Bhbjg1OSI+QjwvdHNwYW4+PC90ZXh0PgogICAgPHRleHQKICAgICAgIGlkPSJ0ZXh0ODY1IgogICAgICAgeT0iMTAyLjgyODY5IgogICAgICAgeD0iMTM1LjM3MjAxIgogICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjguNDY2NjY2MjJweDtsaW5lLWhlaWdodDoxLjI1O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7bGV0dGVyLXNwYWNpbmc6MHB4O3dvcmQtc3BhY2luZzowcHg7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMzMiIKICAgICAgIHhtbDpzcGFjZT0icHJlc2VydmUiPjx0c3BhbgogICAgICAgICBzdHlsZT0iZm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDpub3JtYWw7Zm9udC1zdHJldGNoOm5vcm1hbDtmb250LXNpemU6OC40NjY2NjYyMnB4O2ZvbnQtZmFtaWx5OidUZVggR3lyZSBUZXJtZXMgTWF0aCc7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonVGVYIEd5cmUgVGVybWVzIE1hdGgsIE5vcm1hbCc7Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1hbDtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO3RleHQtYWxpZ246c3RhcnQ7d3JpdGluZy1tb2RlOmxyLXRiO3RleHQtYW5jaG9yOnN0YXJ0O3N0cm9rZS13aWR0aDowLjI2NDU4MzMyIgogICAgICAgICB5PSIxMDIuODI4NjkiCiAgICAgICAgIHg9IjEzNS4zNzIwMSIKICAgICAgICAgaWQ9InRzcGFuODYzIj5QPC90c3Bhbj48L3RleHQ+CiAgICA8ZwogICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MSIKICAgICAgIGlkPSJnMjYxOSIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDMuMjYyNTA4OCwwLDAsMi43OTU4MDQ4LC01MzkuNzc2MywxMy43MDIxMjcpIj4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMywxODcuMzE3MjksMjYuMzUzNDAxKSIKICAgICAgICAgaWQ9InVzZTI2MTciPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaWQ9InBhdGg4NzciCiAgICAgICAgICAgZD0iTSA0LjQ2ODc1LC00LjUzMTI1IEMgNC4yNjU2MjUsLTQuOTg0Mzc1IDMuOTA2MjUsLTUuMjk2ODc1IDMuMzc1LC01LjI5Njg3NSBjIC0xLjQwNjI1LDAgLTIuODkwNjI1LDEuNzUgLTIuODkwNjI1LDMuNTE1NjI1IDAsMS4xMjUgMC42NTYyNSwxLjkwNjI1IDEuNTkzNzUsMS45MDYyNSAwLjIzNDM3NSwwIDAuODQzNzUsLTAuMDQ2ODc1IDEuNTYyNSwtMC44OTA2MjUgMC4wOTM3NSwwLjUgMC41MTU2MjUsMC44OTA2MjUgMS4wOTM3NSwwLjg5MDYyNSAwLjQwNjI1LDAgMC42ODc1LC0wLjI2NTYyNSAwLjg3NSwtMC42NTYyNSAwLjIwMzEyNSwtMC40MjE4NzUgMC4zNTkzNzUsLTEuMTU2MjUgMC4zNTkzNzUsLTEuMTg3NSAwLC0wLjEyNSAtMC4wOTM3NSwtMC4xMjUgLTAuMTQwNjI1LC0wLjEyNSAtMC4xMDkzNzUsMCAtMC4xMjUsMC4wNjI1IC0wLjE3MTg3NSwwLjIxODc1IC0wLjIwMzEyNSwwLjc4MTI1IC0wLjQwNjI1LDEuNSAtMC45MDYyNSwxLjUgLTAuMzI4MTI1LDAgLTAuMzU5Mzc1LC0wLjMxMjUgLTAuMzU5Mzc1LC0wLjU2MjUgMCwtMC4yNjU2MjUgMC4wMzEyNSwtMC4zNTkzNzUgMC4xNTYyNSwtMC44OTA2MjUgMC4xNDA2MjUsLTAuNSAwLjE1NjI1LC0wLjYyNSAwLjI2NTYyNSwtMS4wNzgxMjUgMC4yMDMxMjUsLTAuNzY1NjI1IDAuMjUsLTAuOTg0Mzc1IDAuNDM3NSwtMS42NzE4NzUgMC4wNzgxMjUsLTAuMzQzNzUgMC4wNzgxMjUsLTAuMzU5Mzc1IDAuMDc4MTI1LC0wLjQwNjI1IDAsLTAuMjAzMTI1IC0wLjE0MDYyNSwtMC4zMjgxMjUgLTAuMzQzNzUsLTAuMzI4MTI1IC0wLjI5Njg3NSwwIC0wLjQ2ODc1LDAuMjY1NjI1IC0wLjUxNTYyNSwwLjUzMTI1IHogbSAtMC43NjU2MjUsMy4xMDkzNzUgYyAtMC4wNjI1LDAuMjAzMTI1IC0wLjA2MjUsMC4yMzQzNzUgLTAuMjUsMC40Mzc1IEMgMi45MjE4NzUsLTAuMzI4MTI1IDIuNDM3NSwtMC4xMjUgMi4wOTM3NSwtMC4xMjUgMS41LC0wLjEyNSAxLjMyODEyNSwtMC43OTY4NzUgMS4zMjgxMjUsLTEuMjY1NjI1IGMgMCwtMC41OTM3NSAwLjM5MDYyNSwtMi4wNzgxMjUgMC42NTYyNSwtMi42MjUgMC4zNzUsLTAuNzAzMTI1IDAuOTIxODc1LC0xLjE1NjI1IDEuNDA2MjUsLTEuMTU2MjUgMC43NjU2MjUsMCAwLjkzNzUsMC45ODQzNzUgMC45Mzc1LDEuMDYyNSAwLDAuMDc4MTI1IC0wLjAxNTYyNSwwLjE0MDYyNSAtMC4wMzEyNSwwLjIwMzEyNSB6IG0gMCwwIgogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuODkzNDgzMDQiCiAgICAgICBkPSJtIDcyLjE4ODkwNyw4OC43MTE5OTcgaCAyLjk4NTMzIHYgLTAuNTU1NTM2IGggLTIuOTg1MzMgeiBtIDAsMCIKICAgICAgIGlkPSJwYXRoMjYyMSIgLz4KICAgIDxwYXRoCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjIwMjI4MjQzIgogICAgICAgZD0ibSA5OC41NDc1ODYsMTM1LjQ1MDYgaCAzLjY0NTczNCB2IDAuNjc1MSBoIC0zLjY0NTczNCB6IG0gMCwwIgogICAgICAgaWQ9InBhdGgxNDg1IiAvPgogICAgPGcKICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0iZzE0ODMiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgzLjc3OTQ0MzcsMCwwLDIuNjgzMDM3MywtMjc2LjA2MjI2LC0zNS4zNjcyOTIpIj4KICAgICAgPGcKICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yNjQ1ODMzMywwLDAsMC4yNjQ1ODMzMyw5OSw2My40MDcyKSIKICAgICAgICAgaWQ9InVzZTE0ODEiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgaWQ9InBhdGg5MDMiCiAgICAgICAgICAgZD0ibSAyLjg3NSwtOC4yMDMxMjUgYyAwLDAgMCwtMC4xMjUgLTAuMTU2MjUsLTAuMTI1IC0wLjI4MTI1LDAgLTEuMTU2MjUsMC4wOTM3NSAtMS40Njg3NSwwLjEyNSAtMC4wOTM3NSwwIC0wLjIzNDM3NSwwLjAxNTYyNSAtMC4yMzQzNzUsMC4yMzQzNzUgMCwwLjE0MDYyNSAwLjEwOTM3NSwwLjE0MDYyNSAwLjI5Njg3NSwwLjE0MDYyNSAwLjU3ODEyNSwwIDAuNTkzNzUsMC4wOTM3NSAwLjU5Mzc1LDAuMjAzMTI1IDAsMC4wOTM3NSAtMC4xMDkzNzUsMC41IC0wLjE3MTg3NSwwLjc1IEwgMC43NSwtMi45Njg3NSBDIDAuNjA5Mzc1LC0yLjM1OTM3NSAwLjU2MjUsLTIuMTcxODc1IDAuNTYyNSwtMS43NSBjIDAsMS4xNDA2MjUgMC42NDA2MjUsMS44NzUgMS41MzEyNSwxLjg3NSAxLjQwNjI1LDAgMi44OTA2MjUsLTEuNzgxMjUgMi44OTA2MjUsLTMuNTE1NjI1IDAsLTEuMDc4MTI1IC0wLjY0MDYyNSwtMS45MDYyNSAtMS41OTM3NSwtMS45MDYyNSAtMC41NjI1LDAgLTEuMDQ2ODc1LDAuMzQzNzUgLTEuNDA2MjUsMC43MTg3NSB6IE0gMS43MzQzNzUsLTMuNjU2MjUgYyAwLjA3ODEyNSwtMC4yNjU2MjUgMC4wNzgxMjUsLTAuMjk2ODc1IDAuMTg3NSwtMC40MjE4NzUgMC41OTM3NSwtMC43ODEyNSAxLjEyNSwtMC45Njg3NSAxLjQzNzUsLTAuOTY4NzUgMC40Mzc1LDAgMC43NSwwLjM1OTM3NSAwLjc1LDEuMTQwNjI1IDAsMC43MDMxMjUgLTAuMzkwNjI1LDIuMDc4MTI1IC0wLjYwOTM3NSwyLjUzMTI1IC0wLjM5MDYyNSwwLjgxMjUgLTAuOTM3NSwxLjI1IC0xLjQwNjI1LDEuMjUgLTAuNDA2MjUsMCAtMC44MTI1LC0wLjMyODEyNSAtMC44MTI1LC0xLjIxODc1IDAsLTAuMjM0Mzc1IDAsLTAuNDUzMTI1IDAuMTg3NSwtMS4yMTg3NSB6IG0gMCwwIgogICAgICAgICAgIHN0eWxlPSJzdHJva2U6bm9uZSIgLz4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KPC9zdmc+Cg==</file>\n        </truefeedback>\n        <falsescoremode>=</falsescoremode>\n        <falsescore>0.0000000</falsescore>\n        <falsepenalty/>\n        <falsenextnode>1</falsenextnode>\n        <falseanswernote>prt1-1-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text/>\n        </falsefeedback>\n      </node>\n      <node>\n        <name>1</name>\n        <description/>\n        <answertest>AlgEquiv</answertest>\n        <sans>ans1</sans>\n        <tans>-1*ta</tans>\n        <testoptions/>\n        <quiet>0</quiet>\n        <truescoremode>+</truescoremode>\n        <truescore>0.0000000</truescore>\n        <truepenalty/>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-2-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text><![CDATA[<p>Almost correct, the question asks for \\(\\overrightarrow{OP}\\) which is the vector pointing from \\(O\\) to \\(P\\).&nbsp; Check that your answer points in this direction.<br></p>]]></text>\n        </truefeedback>\n        <falsescoremode>-</falsescoremode>\n        <falsescore>0.0000000</falsescore>\n        <falsepenalty/>\n        <falsenextnode>2</falsenextnode>\n        <falseanswernote>prt1-2-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text/>\n        </falsefeedback>\n      </node>\n      <node>\n        <name>2</name>\n        <description/>\n        <answertest>AlgEquiv</answertest>\n        <sans>ans1</sans>\n        <tans>a+m/(n+m)*(a-b)</tans>\n        <testoptions/>\n        <quiet>0</quiet>\n        <truescoremode>+</truescoremode>\n        <truescore>0.0000000</truescore>\n        <truepenalty/>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-3-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text><![CDATA[<p>Almost correct, check the direction of the vector \\(\\overrightarrow{AB}\\), it looks like you may have used \\(\\overrightarrow{BA}\\) instead.<br></p>]]></text>\n        </truefeedback>\n        <falsescoremode>-</falsescoremode>\n        <falsescore>0.0000000</falsescore>\n        <falsepenalty/>\n        <falsenextnode>3</falsenextnode>\n        <falseanswernote>prt1-3-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text/>\n        </falsefeedback>\n      </node>\n      <node>\n        <name>3</name>\n        <description/>\n        <answertest>AlgEquiv</answertest>\n        <sans>ans1</sans>\n        <tans>b+n/(n+m)*(b-a)</tans>\n        <testoptions/>\n        <quiet>0</quiet>\n        <truescoremode>+</truescoremode>\n        <truescore>0.0000000</truescore>\n        <truepenalty/>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-4-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text><![CDATA[<p>Almost correct, check the direction of the vector \n\\(\\overrightarrow{BA}\\), it looks like you may have used \n\\(\\overrightarrow{AB}\\).<br></p>]]></text>\n        </truefeedback>\n        <falsescoremode>-</falsescoremode>\n        <falsescore>0.0000000</falsescore>\n        <falsepenalty/>\n        <falsenextnode>-1</falsenextnode>\n        <falseanswernote>prt1-4-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text/>\n        </falsefeedback>\n      </node>\n    </prt>\n    <qtest>\n      <testcase>1</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>ta</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>1.0000000</expectedscore>\n        <expectedpenalty>0.0000000</expectedpenalty>\n        <expectedanswernote>prt1-1-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>2</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>-ta</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>prt1-2-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>3</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>a+m/(n+m)*(a-b)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>prt1-3-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>4</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>b+n/(n+m)*(b-a)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>prt1-4-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>5</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>ta+1</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>prt1-4-F</expectedanswernote>\n      </expected>\n    </qtest>\n  </question>\n</quiz>\n"
  },
  {
    "path": "examples/sample-article/media/stack/Checkbox.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<quiz>\n  <question type=\"stack\">\n    <name>\n      <text>Checkbox</text>\n    </name>\n    <questiontext format=\"html\">\n      <text><![CDATA[<p>Differentiate {@p@} with respect to \\(x\\).</p><p>[[input:ans1]]</p><div>[[validation:ans1]]</div>]]></text>\n    </questiontext>\n    <generalfeedback format=\"html\">\n      <text/>\n    </generalfeedback>\n    <defaultgrade>1</defaultgrade>\n    <penalty>0.1</penalty>\n    <hidden>0</hidden>\n    <idnumber/>\n    <stackversion>\n      <text>2018080600</text>\n    </stackversion>\n    <questionvariables>\n      <text><![CDATA[/* Create a list of potential answers. */\np:sin(2*x);\nta:[[diff(p,x),true],[p,false],[int(p,x),false],[cos(2*x)+c,false]];\n/* The actual correct answer.    */\ntac:diff(p,x)\n/* Add in a \"None of these\" to the end of the list.  The Maxima value is the atom null. */\ntao:[null, false, \"None of these\"];\nta:append(ta,[tao]);]]></text>\n    </questionvariables>\n    <specificfeedback format=\"html\">\n      <text>[[feedback:prt1]]</text>\n    </specificfeedback>\n    <questionnote format=\"html\">\n      <text/>\n    </questionnote>\n    <questiondescription format=\"html\">\n      <text/>\n    </questiondescription>\n    <questionsimplify>1</questionsimplify>\n    <assumepositive>0</assumepositive>\n    <assumereal>0</assumereal>\n    <prtcorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:green;\"><i class=\"fa fa-check\"></i></span> Correct answer, well done.]]></text>\n    </prtcorrect>\n    <prtpartiallycorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:orange;\"><i class=\"fa fa-adjust\"></i></span> Your answer is partially correct.]]></text>\n    </prtpartiallycorrect>\n    <prtincorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:red;\"><i class=\"fa fa-times\"></i></span> Incorrect answer.]]></text>\n    </prtincorrect>\n    <decimals>.</decimals>\n    <scientificnotation>*10</scientificnotation>\n    <multiplicationsign>dot</multiplicationsign>\n    <sqrtsign>1</sqrtsign>\n    <complexno>i</complexno>\n    <inversetrig>cos-1</inversetrig>\n    <logicsymbol>lang</logicsymbol>\n    <matrixparens>[</matrixparens>\n    <isbroken>0</isbroken>\n    <variantsselectionseed/>\n    <input>\n      <name>ans1</name>\n      <type>checkbox</type>\n      <tans>ta</tans>\n      <boxsize>15</boxsize>\n      <strictsyntax>1</strictsyntax>\n      <insertstars>0</insertstars>\n      <syntaxhint/>\n      <syntaxattribute>0</syntaxattribute>\n      <forbidwords/>\n      <allowwords/>\n      <forbidfloat>1</forbidfloat>\n      <requirelowestterms>0</requirelowestterms>\n      <checkanswertype>0</checkanswertype>\n      <mustverify>1</mustverify>\n      <showvalidation>2</showvalidation>\n      <options/>\n    </input>\n    <prt>\n      <name>prt1</name>\n      <value>1.0000000</value>\n      <autosimplify>1</autosimplify>\n      <feedbackstyle>1</feedbackstyle>\n      <feedbackvariables>\n        <text><![CDATA[ansmod:apply(\"and\",maplist(lambda([ex],second(ATDiff(ex,diff(p,x),x))),ans1));]]></text>\n      </feedbackvariables>\n      <node>\n        <name>0</name>\n        <description/>\n        <answertest>AlgEquiv</answertest>\n        <sans>ansmod</sans>\n        <tans>true</tans>\n        <testoptions/>\n        <quiet>0</quiet>\n        <truescoremode>=</truescoremode>\n        <truescore>1.0000000</truescore>\n        <truepenalty/>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-1-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text/>\n        </truefeedback>\n        <falsescoremode>=</falsescoremode>\n        <falsescore>0.0000000</falsescore>\n        <falsepenalty/>\n        <falsenextnode>-1</falsenextnode>\n        <falseanswernote>prt1-1-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text/>\n        </falsefeedback>\n      </node>\n    </prt>\n    <qtest>\n      <testcase>1</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>[2*cos(2*x)]</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>1.0000000</expectedscore>\n        <expectedpenalty>0.0000000</expectedpenalty>\n        <expectedanswernote>prt1-1-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>2</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>[first(ta[1]),first(ta[3])]</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>prt1-1-F</expectedanswernote>\n      </expected>\n    </qtest>\n  </question>\n</quiz>\n"
  },
  {
    "path": "examples/sample-article/media/stack/Matrix.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<quiz>\n  <question type=\"stack\">\n    <name>\n      <text>Matrix</text>\n    </name>\n    <questiontext format=\"html\">\n      <text><![CDATA[<p>Type in {@M@}<br></p><p>[[input:ans1]]</p><div>[[validation:ans1]]</div>]]></text>\n    </questiontext>\n    <generalfeedback format=\"html\">\n      <text/>\n    </generalfeedback>\n    <defaultgrade>1</defaultgrade>\n    <penalty>0.1</penalty>\n    <hidden>0</hidden>\n    <idnumber/>\n    <stackversion>\n      <text>2018080600</text>\n    </stackversion>\n    <questionvariables>\n      <text>M:matrix([1,2],[3,4])</text>\n    </questionvariables>\n    <specificfeedback format=\"html\">\n      <text>[[feedback:prt1]]</text>\n    </specificfeedback>\n    <questionnote format=\"html\">\n      <text/>\n    </questionnote>\n    <questiondescription format=\"html\">\n      <text/>\n    </questiondescription>\n    <questionsimplify>1</questionsimplify>\n    <assumepositive>0</assumepositive>\n    <assumereal>0</assumereal>\n    <prtcorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:green;\"><i class=\"fa fa-check\"></i></span> Correct answer, well done.]]></text>\n    </prtcorrect>\n    <prtpartiallycorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:orange;\"><i class=\"fa fa-adjust\"></i></span> Your answer is partially correct.]]></text>\n    </prtpartiallycorrect>\n    <prtincorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:red;\"><i class=\"fa fa-times\"></i></span> Incorrect answer.]]></text>\n    </prtincorrect>\n    <decimals>.</decimals>\n    <scientificnotation>*10</scientificnotation>\n    <multiplicationsign>dot</multiplicationsign>\n    <sqrtsign>1</sqrtsign>\n    <complexno>i</complexno>\n    <inversetrig>cos-1</inversetrig>\n    <logicsymbol>lang</logicsymbol>\n    <matrixparens>[</matrixparens>\n    <isbroken>0</isbroken>\n    <variantsselectionseed/>\n    <input>\n      <name>ans1</name>\n      <type>matrix</type>\n      <tans>M</tans>\n      <boxsize>15</boxsize>\n      <strictsyntax>1</strictsyntax>\n      <insertstars>0</insertstars>\n      <syntaxhint/>\n      <syntaxattribute>0</syntaxattribute>\n      <forbidwords/>\n      <allowwords/>\n      <forbidfloat>1</forbidfloat>\n      <requirelowestterms>0</requirelowestterms>\n      <checkanswertype>1</checkanswertype>\n      <mustverify>1</mustverify>\n      <showvalidation>1</showvalidation>\n      <options/>\n    </input>\n    <prt>\n      <name>prt1</name>\n      <value>1.0000000</value>\n      <autosimplify>1</autosimplify>\n      <feedbackstyle>1</feedbackstyle>\n      <feedbackvariables>\n        <text/>\n      </feedbackvariables>\n      <node>\n        <name>0</name>\n        <description/>\n        <answertest>AlgEquiv</answertest>\n        <sans>ans1</sans>\n        <tans>M</tans>\n        <testoptions/>\n        <quiet>0</quiet>\n        <truescoremode>=</truescoremode>\n        <truescore>1.0000000</truescore>\n        <truepenalty/>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-1-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text/>\n        </truefeedback>\n        <falsescoremode>=</falsescoremode>\n        <falsescore>0.0000000</falsescore>\n        <falsepenalty/>\n        <falsenextnode>-1</falsenextnode>\n        <falseanswernote>prt1-1-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text/>\n        </falsefeedback>\n      </node>\n    </prt>\n    <qtest>\n      <testcase>1</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>M</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>1.0000000</expectedscore>\n        <expectedpenalty>0.0000000</expectedpenalty>\n        <expectedanswernote>prt1-1-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>2</testcase>\n      <description/>\n      <testinput>\n        <name>ans1</name>\n        <value>ev(2*M,simp)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>prt1-1-F</expectedanswernote>\n      </expected>\n    </qtest>\n  </question>\n</quiz>\n"
  },
  {
    "path": "examples/sample-article/media/stack/basic-plot.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<quiz>\n<!-- question: 206867  -->\n  <question type=\"stack\">\n    <name>\n      <text>Identify quadratic</text>\n    </name>\n    <questiontext format=\"html\">\n      <text><![CDATA[<p>What is the function plotted here:</p>\n{@plot1@}\n<p>[[input:ans1]] [[validation:ans1]]</p>]]></text>\n    </questiontext>\n    <generalfeedback format=\"html\">\n      <text></text>\n    </generalfeedback>\n    <defaultgrade>1</defaultgrade>\n    <penalty>0.1</penalty>\n    <hidden>0</hidden>\n    <idnumber></idnumber>\n    <stackversion>\n      <text>2025012100</text>\n    </stackversion>\n    <questionvariables>\n      <text><![CDATA[a: rand_with_prohib(-2, 2, [0]);\nb: rand_with_prohib(-2, 2, [0]);\nta1: (x-a)^2-b;\nplot1: plot(ta1,[x,-7,7],[y,-5,5],[box, false]);]]></text>\n    </questionvariables>\n    <specificfeedback format=\"html\">\n      <text>[[feedback:prt1]]</text>\n    </specificfeedback>\n    <questionnote format=\"html\">\n      <text></text>\n    </questionnote>\n    <questiondescription format=\"html\">\n      <text></text>\n    </questiondescription>\n    <questionsimplify>1</questionsimplify>\n    <assumepositive>0</assumepositive>\n    <assumereal>0</assumereal>\n    <prtcorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:green;\"><i class=\"fa fa-check\"></i></span> Correct answer, well done.]]></text>\n    </prtcorrect>\n    <prtpartiallycorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:orange;\"><i class=\"fa fa-adjust\"></i></span> Your answer is partially correct.]]></text>\n    </prtpartiallycorrect>\n    <prtincorrect format=\"html\">\n      <text><![CDATA[<span style=\"font-size: 1.5em; color:red;\"><i class=\"fa fa-times\"></i></span> Incorrect answer.]]></text>\n    </prtincorrect>\n    <decimals>.</decimals>\n    <scientificnotation>*10</scientificnotation>\n    <multiplicationsign>dot</multiplicationsign>\n    <sqrtsign>1</sqrtsign>\n    <complexno>i</complexno>\n    <inversetrig>cos-1</inversetrig>\n    <logicsymbol>lang</logicsymbol>\n    <matrixparens>[</matrixparens>\n    <isbroken>0</isbroken>\n    <variantsselectionseed></variantsselectionseed>\n    <input>\n      <name>ans1</name>\n      <type>algebraic</type>\n      <tans>ta1</tans>\n      <boxsize>15</boxsize>\n      <strictsyntax>1</strictsyntax>\n      <insertstars>0</insertstars>\n      <syntaxhint></syntaxhint>\n      <syntaxattribute>0</syntaxattribute>\n      <forbidwords></forbidwords>\n      <allowwords></allowwords>\n      <forbidfloat>1</forbidfloat>\n      <requirelowestterms>0</requirelowestterms>\n      <checkanswertype>0</checkanswertype>\n      <mustverify>1</mustverify>\n      <showvalidation>1</showvalidation>\n      <options></options>\n    </input>\n    <prt>\n      <name>prt1</name>\n      <value>1.0000000</value>\n      <autosimplify>1</autosimplify>\n      <feedbackstyle>1</feedbackstyle>\n      <feedbackvariables>\n        <text></text>\n      </feedbackvariables>\n      <node>\n        <name>0</name>\n        <description></description>\n        <answertest>AlgEquiv</answertest>\n        <sans>ans1</sans>\n        <tans>ta1</tans>\n        <testoptions></testoptions>\n        <quiet>0</quiet>\n        <truescoremode>=</truescoremode>\n        <truescore>1</truescore>\n        <truepenalty></truepenalty>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>prt1-1-T</trueanswernote>\n        <truefeedback format=\"html\">\n          <text></text>\n        </truefeedback>\n        <falsescoremode>=</falsescoremode>\n        <falsescore>0</falsescore>\n        <falsepenalty></falsepenalty>\n        <falsenextnode>-1</falsenextnode>\n        <falseanswernote>prt1-1-F</falseanswernote>\n        <falsefeedback format=\"html\">\n          <text></text>\n        </falsefeedback>\n      </node>\n    </prt>\n    <deployedseed>1564818949</deployedseed>\n    <deployedseed>1017944393</deployedseed>\n    <deployedseed>1004281449</deployedseed>\n    <deployedseed>1163477571</deployedseed>\n    <deployedseed>1441642357</deployedseed>\n  </question>\n\n</quiz>"
  },
  {
    "path": "examples/sample-article/media/video/BigBuckBunnyAcapella.vtt",
    "content": "﻿WEBVTT\nKind: captions\nLanguage: en\n\nNOTE Adapted from a SubRip file from\nNOTE https://sites.google.com/site/chrisfoo/subtitles\nNOTE Specifically\nNOTE https://sites.google.com/site/chrisfoo/subtitles/BigBuckBunnyAcapella.srt\n\n00:00:02.681 --> 00:00:11.178\nBun, bun, bun ♪\n\n00:00:17.162 --> 00:00:20.830\nAhh! I’m a bird. I like to fly and spread out my wings.\n\n00:00:20.830 --> 00:00:21.939\nOw!\n\n00:00:23.112 --> 00:00:23.965\n[Chuckles]\n\n00:00:24.215 --> 00:00:29.220\n[Snoring]\n\n00:00:29.470 --> 00:00:38.371\nBig bah bunny, big bah bunny ♪\n\n00:00:39.423 --> 00:00:42.663\nWhat? What’s that? Ooh, it’s morning.\n\n00:00:45.947 --> 00:00:48.526\nOh boy. Yay! I’m awake!\n\n00:00:48.776 --> 00:00:53.365\nOh boy. Hey, ahh...\n\n00:00:56.725 --> 00:01:00.144\nI like mornings. Oh man, I really have an itch on my butt.\n"
  },
  {
    "path": "examples/sample-article/privatesolutions.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- The \"pi\" namespace is necessary for the \"internal\" -->\n<!-- markup at the outer level of this file.            -->\n<pi:privatesolutions  xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">\n\n    <!-- \"exercise-essay\" is \"Essay Question: Compare and Contrast\" -->\n    <answer ref=\"exercise-essay\">\n        <p>A private answer.</p>\n    </answer>\n\n    <solution ref=\"exercise-essay\">\n        <p>A private solution.</p>\n    </solution>\n\n    <!-- The \"pi:privatessolutionsdivision\" is not necessary for a   -->\n    <!-- *single* file holding private solutions.  But if you choose -->\n    <!-- to spread your solutions across several files with the      -->\n    <!-- \"xi:include\" mechanism, hten you need each file to have a   -->\n    <!-- single overall (root) XML element.  So this element is only -->\n    <!-- meant to play that role.  It can be nested arbitrarily.     -->\n    <!-- We only use it here for testing purposes  - it is not       -->\n    <!-- necessary, nor is it harmful in this case.                  -->\n\n    <pi:privatessolutionsdivision>\n        <!-- \"inline-exercise\" is \"An Inline Exercise\" -->\n        <hint ref=\"inline-exercise\">\n            <p>A private hint.</p>\n        </hint>\n\n        <solution ref=\"inline-exercise\">\n            <p>First of two private solutions.</p>\n        </solution>\n\n        <solution ref=\"inline-exercise\">\n            <p>Second of two private solutions.</p>\n        </solution>\n    </pi:privatessolutionsdivision>\n\n    <!-- a terminal task in \"A very structured project\" -->\n    <answer ref=\"deep-terminal-task\">\n        <p>A private answer to a nested task.</p>\n    </answer>\n\n    <solution ref=\"deep-terminal-task\">\n        <p>A private solution to a nested task.</p>\n    </solution>\n</pi:privatesolutions>\n"
  },
  {
    "path": "examples/sample-article/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <target name=\"html\">\n      <format>html</format>\n      <source>sample-article.xml</source>\n      <publication>publication.xml</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"html-oscar\">\n      <format>html</format>\n      <source>sample-article.xml</source>\n      <publication>publication-oscarlevin.xml</publication>\n      <output-dir>output/oscar</output-dir>\n    </target>\n    <target name=\"latex\">\n      <format>latex</format>\n      <source>sample-article.xml</source>\n      <publication>publication.xml</publication>\n      <output-dir>output/latex</output-dir>\n    </target>\n    <target name=\"pdf\" pdf-method=\"xelatex\">\n      <format>pdf</format>\n      <source>sample-article.xml</source>\n      <publication>publication.xml</publication>\n      <output-dir>output/pdf</output-dir>\n    </target>\n    <target name=\"pdf-solutions\" pdf-method=\"xelatex\">\n      <format>pdf</format>\n      <source>sample-article.xml</source>\n      <publication>publication-solution-manual.xml</publication>\n      <output-dir>output/solutions</output-dir>\n    </target>\n  </targets>\n  <executables>\n      <latex>latex</latex>\n      <pdflatex>pdflatex</pdflatex>\n      <xelatex>xelatex</xelatex>\n      <asy>asy</asy>\n      <sage>sage</sage>\n      <pdfpng>convert</pdfpng>\n      <pdfeps>pdftops</pdfeps>\n      <pdfcrop>pdf-crop-margins</pdfcrop>\n      <pageres>pageres</pageres>\n      <node>node</node>\n      <liblouis>file2brl</liblouis>\n    </executables>\n</project>\n"
  },
  {
    "path": "examples/sample-article/publication-crc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <!-- we use customizations-one for the plain sample article -->\n    <source customizations=\"customizations-two.xml\">\n        <directories external=\"media\" generated=\"gen\"/>\n    </source>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- links below images to open full-size, must be elected -->\n        <asymptote links=\"yes\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version             -->\n        <!-- NB: URL is version hosted to demo oscarlevin style    -->\n        <baseurl href=\"https://pretextbook.org/examples/sample-article/oscar/\"/>\n        <!-- Several embedded calculators are available            -->\n        <!-- Use \"none\" to turn this off (or remove the element)   -->\n        <calculator model=\"geogebra-classic\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"article\", which is not    -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"derivatives\"/>\n        <!-- specify the style of the html by giving names to      -->\n        <!-- override defaults.  Ex: to use \"style_oscarlevin.css\" -->\n        <!-- put <css style=\"oscarlevin\"/>                         -->\n        <css style=\"default\" colors=\"bluegreen_grey\" toc=\"crc\" banner=\"crc\" navbar=\"crc\" shell=\"crc\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <!-- <search google-cx=\"\"/> -->\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-article/publication-oscarlevin.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <!-- we use customizations-one for the plain sample article -->\n    <source customizations=\"customizations-two.xml\">\n        <directories external=\"media\" generated=\"gen\"/>\n    </source>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- links below images to open full-size, must be elected -->\n        <asymptote links=\"yes\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version             -->\n        <!-- NB: URL is version hosted to demo oscarlevin style    -->\n        <baseurl href=\"https://pretextbook.org/examples/sample-article/oscar/\"/>\n        <!-- Several embedded calculators are available            -->\n        <!-- Use \"none\" to turn this off (or remove the element)   -->\n        <calculator model=\"geogebra-classic\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"article\", which is not    -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"derivatives\"/>\n        <!-- specify the style of the html by giving names to      -->\n        <!-- override defaults.  Ex: to use \"style_oscarlevin.css\" -->\n        <!-- put <css style=\"oscarlevin\"/>                         -->\n        <css style=\"oscarlevin\" colors=\"blue_red\" toc=\"default\" banner=\"default\" navbar=\"default\" shell=\"default\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <!-- <search google-cx=\"\"/> -->\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-article/publication-print.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Variant of  publication.xml  strictly for a print PDF. -->\n<!--   *  \"common\", \"source, \"stack\" sections should match. -->\n<!--   *  \"latex\" section should have minimal edits.        -->\n<!--   *  \"html\" section has been removed.                  -->\n<!-- Doing a diff might help sync-up edits.                 -->\n\n<publication>\n\n    <!-- Common Options -->\n    <common>\n        <!-- How deep to go for separate files, in HTML the -->\n        <!-- default for an article with sections is 1      -->\n        <chunking level=\"1\"/>\n        <!-- How deep to nest a Table of Contents, for an article   -->\n        <!-- with subsections in HTML, the default is 2, but in the -->\n        <!-- LateX conversion the default is no ToC at all.  So we  -->\n        <!-- let these conversion-specific defaults play out, and   -->\n        <!-- just leave this example as a comment.                  -->\n        <!-- <tableofcontents level=\"2\"/> -->\n        <!-- These \"exercise component visibility\" settings are the -->\n        <!-- defaults, but can be switched to \"no\" in order to hide -->\n        <!-- parts of an exercise, where born.                      -->\n        <exercise-inline hint=\"yes\"/>\n        <exercise-project answer=\"yes\"/>\n        <!-- fillin styles are \"underline\" (the default for text),  -->\n        <!-- \"box\", and \"shade\" (the default for math)              -->\n        <fillin textstyle=\"underline\" mathstyle=\"shade\"/>\n        <qrcode image=\"misc/ptx-logo-square.png\"/>\n        <!-- This is the minimum information to locate a     -->\n        <!-- Citation Stylesheet Language (CSL) style file   -->\n        <!-- in the CSL repository.  It is not expected to   -->\n        <!-- have the \".csl\" suffix.  Default is \"harvard1\". -->\n        <!-- Note: \"harvard1\" might be best first use.       -->\n        <!-- 2025-08-13: this is experimental and opt-in.    -->\n        <!--  -->\n        <!-- \"harvard1\" style available in CiteProcPy code?  -->\n        <!-- <citation-stylesheet-language style=\"harvard1\"/> -->\n        <!--  -->\n        <!-- numeric style, \". \" for suffix -->\n        <!-- <citation-stylesheet-language style=\"vancouver-brackets\"/> -->\n        <!--  -->\n        <!-- \"elsevier-with-titles\" is a \"numeric\" style, [6] -->\n        <!-- <citation-stylesheet-language style=\"elsevier-with-titles\"/> -->\n        <!--  -->\n        <!-- <citation-stylesheet-language style=\"taylor-and-francis-chicago-author-date\"/> -->\n        <!--  -->\n        <!-- 2025-06-03: \"chicago-fullnote\" uses footnotes/endnotes, and       -->\n        <!-- therefore should throw an error as an unsupported style, and halt -->\n        <!-- <citation-stylesheet-language style=\"chicago-fullnote-bibliography-with-ibid\"/> -->\n        <!-- If desired, defaults for mermaid theme and layout engine -->\n        <!-- can be specifed. These values can be overriden in a      -->\n        <!-- diagram using config: frontmatter                        -->\n        <!-- <mermaid theme=\"forest\" layout-engine=\"elk\"/> -->\n    </common>\n\n    <!-- we use customizations-two for the oscarlevin style example -->\n    <source customizations=\"customizations-one.xml\">\n        <directories external=\"media\" generated=\"gen\"/>\n        <!-- this is an example of placing @generated *outside* of revision control -->\n        <!-- <directories external=\"media\" generated=\"../../../altgen\"/> -->\n    </source>\n\n    <!-- Server to process STACK problems embedded in HTML -->\n    <stack server=\"https://stackapi-1-43834256136.europe-west1.run.app/\"/>\n\n    <!-- For an \"article\" with \"section\" we can only go 3 levels    -->\n    <!-- deep (section > subsection > subsubsection) and this is    -->\n    <!-- the default for divisions' levels.  For numbers on smaller -->\n    <!-- pieces of content, the default is XX.NN, i.e. level 1.     -->\n    <!-- Read the PreTeXt Guide for more on numbering and levels.   -->\n    <numbering>\n        <divisions level=\"3\"/>\n        <blocks    level=\"1\"/>\n        <projects  level=\"1\"/>\n        <equations level=\"1\"/>\n        <footnotes level=\"1\"/>\n    </numbering>\n\n    <!-- 10pt font is the default   -->\n    <!-- draft mode default is \"no\" -->\n    <!-- snapshot default is \"no\", but we elect to stress the supported package -->\n    <latex print=\"yes\" sides=\"two\" font-size=\"10\" draft=\"no\" snapshot=\"yes\">\n        <!-- these are the default alignments, given just as an example -->\n        <!-- Even if you set  @crop-marks  to something like \"letter\" or \"a4\"    -->\n        <!-- you may not see a change.  You need to use the  geometery  package  -->\n        <!-- to set a smaller (logical) page size.                               -->\n        <page right-alignment=\"flush\" bottom-alignment=\"ragged\" crop-marks=\"none\"/>\n        <!-- worksheets are formatted separately by default.   -->\n        <!-- change to \"no\" to format as regular sections.     -->\n        <worksheet formatted=\"yes\"/>\n        <asymptote links=\"yes\"/>\n        <insertions pagebreaks=\"quotations exercises-section-multiple pre-roll-countdown-8\"/>\n        <insertions pagebreaks=\"sidebyside-bully-pulpit sbsgroup-pagebreak-test\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-article/publication-solution-manual.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This publication file is intended to demonstrate the -->\n<!--                                                      -->\n<!-- source/@private-solutions                            -->\n<!--                                                      -->\n<!-- option.  Only.  The                                  -->\n<!--                                                      -->\n<!-- pretext-solution-manual-latex.xsl                    -->\n<!--                                                      -->\n<!-- stylesheet only produces LaTeX output, so there is   -->\n<!-- limited opportunity to demonstrate too many other    -->\n<!-- aspects of a publisher file.                         -->\n\n<publication>\n    <!-- Filename, relative to main source file, or absolute.  -->\n    <!-- IMPORTANT: read the documentation for advice on where -->\n    <!-- to locate this file, which is not what we have done   -->\n    <!-- here with this sample.                                -->\n    <source private-solutions=\"privatesolutions.xml\"> \n        <directories external=\"media\" generated=\"gen\"/>\n    </source>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-article/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <!-- Common Options -->\n    <common>\n        <!-- How deep to go for separate files, in HTML the -->\n        <!-- default for an article with sections is 1      -->\n        <chunking level=\"1\"/>\n        <!-- How deep to nest a Table of Contents, for an article   -->\n        <!-- with subsections in HTML, the default is 2, but in the -->\n        <!-- LateX conversion the default is no ToC at all.  So we  -->\n        <!-- let these conversion-specific defaults play out, and   -->\n        <!-- just leave this example as a comment.                  -->\n        <!-- <tableofcontents level=\"2\"/> -->\n        <!-- These \"exercise component visibility\" settings are the -->\n        <!-- defaults, but can be switched to \"no\" in order to hide -->\n        <!-- parts of an exercise, where born.                      -->\n        <exercise-inline hint=\"yes\"/>\n        <exercise-project answer=\"yes\"/>\n        <!-- fillin styles are \"underline\" (the default for text),  -->\n        <!-- \"box\", and \"shade\" (the default for math)              -->\n        <fillin textstyle=\"underline\" mathstyle=\"shade\"/>\n        <qrcode image=\"misc/ptx-logo-square.png\"/>\n        <!-- This is the minimum information to locate a     -->\n        <!-- Citation Stylesheet Language (CSL) style file   -->\n        <!-- in the CSL repository.  It is not expected to   -->\n        <!-- have the \".csl\" suffix.  Default is \"harvard1\". -->\n        <!-- Note: \"harvard1\" might be best first use.       -->\n        <!-- 2025-08-13: this is experimental and opt-in.    -->\n        <!--  -->\n        <!-- \"harvard1\" style available in CiteProcPy code?  -->\n        <!-- <citation-stylesheet-language style=\"harvard1\"/> -->\n        <!--  -->\n        <!-- numeric style, \". \" for suffix -->\n        <!-- <citation-stylesheet-language style=\"vancouver-brackets\"/> -->\n        <!--  -->\n        <!-- \"elsevier-with-titles\" is a \"numeric\" style, [6] -->\n        <!-- <citation-stylesheet-language style=\"elsevier-with-titles\"/> -->\n        <!--  -->\n        <!-- <citation-stylesheet-language style=\"taylor-and-francis-chicago-author-date\"/> -->\n        <!--  -->\n        <!-- 2025-06-03: \"chicago-fullnote\" uses footnotes/endnotes, and       -->\n        <!-- therefore should throw an error as an unsupported style, and halt -->\n        <!-- <citation-stylesheet-language style=\"chicago-fullnote-bibliography-with-ibid\"/> -->\n        <!-- If desired, defaults for mermaid theme and layout engine -->\n        <!-- can be specifed. These values can be overriden in a      -->\n        <!-- diagram using config: frontmatter                        -->\n        <!-- <mermaid theme=\"forest\" layout-engine=\"elk\"/> -->\n    </common>\n\n    <!-- we use customizations-two for the oscarlevin style example -->\n    <source customizations=\"customizations-one.xml\">\n        <directories external=\"media\" generated=\"gen\"/>\n        <!-- this is an example of placing @generated *outside* of revision control -->\n        <!-- <directories external=\"media\" generated=\"../../../altgen\"/> -->\n    </source>\n\n    <!-- Server to process STACK problems embedded in HTML -->\n    <stack server=\"https://stack-api.maths.ed.ac.uk\"/>\n\n    <!-- For an \"article\" with \"section\" we can only go 3 levels    -->\n    <!-- deep (section > subsection > subsubsection) and this is    -->\n    <!-- the default for divisions' levels.  For numbers on smaller -->\n    <!-- pieces of content, the default is XX.NN, i.e. level 1.     -->\n    <!-- Read the PreTeXt Guide for more on numbering and levels.   -->\n    <numbering>\n        <divisions level=\"3\"/>\n        <blocks    level=\"1\"/>\n        <projects  level=\"1\"/>\n        <equations level=\"1\"/>\n        <footnotes level=\"1\"/>\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <!-- favicon \"simple\" scheme expects -->\n    <!--     favicon/favicon-32x32.png   -->\n    <!--     favicon/favicon-16x16.png   -->\n    <!-- in external images directory    -->\n    <html favicon=\"simple\" embed-button=\"yes\">\n        <!-- links below images to open full-size, must be elected -->\n        <asymptote links=\"yes\"/>\n        <!-- Several embedded calculators are available            -->\n        <!-- Use \"none\" to turn this off (or remove the element)   -->\n        <calculator model=\"geogebra-classic\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version              -->\n        <baseurl href=\"https://pretextbook.org/examples/sample-article/html/\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"article\", which is not    -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"derivatives\"/>\n        <!-- Certain blocks may be electively knowled.  Defaults   -->\n        <!-- are variable.  We exercise two such switches here,    -->\n        <!-- the values are defaults so should make no discernable -->\n        <!-- difference.                                           -->\n        <knowl example=\"no\" remark=\"no\" proof=\"no\" example-solution=\"no\"/>\n        <!-- While testing themes, it can be useful to turn off    -->\n        <!-- all knowls. This next line attempts to do so.         -->\n        <!-- Uncomment it to activate it.                          -->\n        <!-- <knowl proof=\"no\" example=\"no\" example-solution=\"no\" exercise-inline=\"no\"/> -->\n        <!-- Specify the theme for the HTML.                       -->\n        <!-- See the guide for options                             -->\n        <css theme=\"default-modern\"/>\n        <!-- <css theme=\"default-modern\" palette=\"blue-red\"/> -->\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <!-- <search google-cx=\"\"/> -->\n        <!-- Request fewer tracking cookies for YouTube videos     -->\n        <!-- This is the default, here for documentation/testing   -->\n        <video privacy=\"yes\"/>\n        <!-- native search via Javascript library -->\n        <search variant=\"default\"/>\n        <!-- With a <feedback> element, in the HTML version, you get a button     -->\n        <!-- for reporting typos and errors.  You might link to a Google Docs     -->\n        <!-- spreadsheet or something similar.  Default is to get a button        -->\n        <!-- labeled \"Feedback\", which will be localized to your target language. -->\n        <!-- You can override this with some text of your choosing, but then you  -->\n        <!-- lose the localization feature.                                       -->\n        <!-- (The feedback element could be empty, we place text in a comment to  -->\n        <!-- suggest how the text can be changed/specified.)                      -->\n        <feedback href=\"http://example.com/not-implemented.html\"><!-- My Button Text --></feedback>\n        <!-- A \"portable\" build is meant to be a single file that is transportable -->\n        <!-- <platform portable=\"yes\"/> -->\n        <!-- Banner options, these default to \"yes\" but can be set to -->\n        <!-- \"no\" toremove the indicated element from the top banner  -->\n        <banner byline=\"yes\" subtitle=\"yes\"/>\n        <interactives resize-behavior=\"responsive\">\n            <javascript resize-behavior=\"fixed-height\"/>\n            <jsxgraph resize-behavior=\"fixed-height\"/>\n            <sage resize-behavior=\"fixed-height\"/>\n            <circuitjs resize-behavior=\"fixed-height\"/>\n            <d3 resize-behavior=\"fixed-height\"/>\n        </interactives>\n    </html>\n\n    <!-- 10pt font is the default   -->\n    <!-- draft mode default is \"no\" -->\n    <!-- snapshot default is \"no\", but we elect to stress the supported package -->\n    <latex print=\"no\" sides=\"one\" font-size=\"10\" draft=\"no\" snapshot=\"yes\">\n        <!-- these are the default alignments, given just as an example -->\n        <!-- Even if you set  @crop-marks  to something like \"letter\" or \"a4\"    -->\n        <!-- you may not see a change.  You need to use the  geometery  package  -->\n        <!-- to set a smaller (logical) page size.                               -->\n        <page right-alignment=\"flush\" bottom-alignment=\"ragged\" crop-marks=\"none\"/>\n        <!-- Uncomment this to experiment with a LaTeX OTF font              -->\n        <!-- commonly included in TeX distributions.  Be sure                -->\n        <!-- to use the  xelatex  engine (the default).                      -->\n        <!-- TeX Gyre Pagella: has slashed zeros that go the *opposite* way  -->\n        <!-- from the slashed zeros in our Inconsolata monospace font.       -->\n        <!-- TeX Gyre Pagella Math: with a \"french\" style, Greek letters     -->\n        <!-- *and* upper-case Latin letters will be upright in mathematics.  -->\n        <!--\n        <fonts>\n            <main regular=\"TeX Gyre Pagella\" options=\"Numbers={SlashedZero}\"/>\n            <math regular=\"TeX Gyre Pagella Math\" options=\"math-style=french\"/>\n        </fonts>\n        -->\n        <!-- worksheets are formatted separately by default.   -->\n        <!-- change to \"no\" to format as regular sections.     -->\n        <worksheet formatted=\"yes\"/>\n        <asymptote links=\"yes\"/>\n        <insertions pagebreaks=\"quotations exercises-section-multiple pre-roll-countdown-8\"/>\n        <insertions pagebreaks=\"sidebyside-bully-pulpit sbsgroup-pagebreak-test\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-article/sample-article.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Overall element for a Mathbook XML document; mandatory, always  -->\n<!-- Experiment with the \"xml:lang\" attribute to see localization    -->\n<!-- changes, the  xsl/localizations  directory has more information -->\n<pretext>\n<!-- <pretext xml:lang=\"ku-CKB\"> -->    <!-- an RTL language -->\n<!-- <pretext xml:lang=\"pt-BR\"> -->\n<!-- <pretext xml:lang=\"fr-FR\"> -->\n<!-- <pretext xml:lang=\"cs-CZ\"> -->\n<!-- <pretext xml:lang=\"af-ZA\"> -->\n\n    <!--\n    \"docinfo\" is like metadata, it is necessary technical\n    information which a reader mostly will never see.  LaTeX\n    macros and Web analytics project numbers are good examples.\n    If you are getting started, you do not need any of this initially.\n    So on a first reading, skip ahead to the article tag.\n    -->\n    <docinfo>\n        <!--\n        In the HTML version there is room for a picture or logo\n        in the upper left corner.  An image of a cover for a\n        physical version is a good choice to go here.  We use\n        16th Century Art Book Cover, 176x240 pixels, Public Domain, due to age\n        http://commons.wikimedia.org/wiki/File:Book_Cover_-_Google_Art_Project.jpg\n        -->\n        <brandlogo url=\"https://pretextbook.org\" source=\"misc/book-cover-google-art-project.jpg\"/>\n        <!--\n        LaTeX packages that are also implemented as MathJax extensions\n        may be specified here and any macros they have in common may be\n        used within mathematics.  See below in the \"Mathematics\" section\n        an example of the use of the \"\\cancelto{}{}\" macro from\n        the \"cancel\" package.\n        -->\n        <math-package latex-name=\"cancel\" mathjax-name=\"cancel\"/>\n        <!-- Superior bevelled/slanted fractions in LaTeX output (only) -->\n        <math-package latex-name=\"xfrac\" mathjax-name=\"\"/>\n        <!-- 2026-03-04: once we tested the \"extpfeil\" package but it     -->\n        <!-- is a bad actor in LaTeX files, loading \"amssymb\" and using   -->\n        <!-- \"calc\" with a redefined \\setlength (or something like that). -->\n        <!-- We tested this device here with an \"\\xmapsto\" macro in math. -->\n        <!--\n        TeX/LaTeX macros can be written in the usual way.\n        Whitespace and line breaks are irrelevant here.\n        These are \"write once, use everywhere\".\n        -->\n        <macros>\n        \\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4} % this comment will be stripped\n        \\newcommand{\\myequation}[2]{#1\\amp =#2} % testing alignment override\n        % comments anywhere get stripped, with or without faux % comment \\% characters\n        \\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\n        \\newcommand{\\testingescapedpercent}{ \\% } % just testing\n        % employed in a PreFigure linear algebra diagram\n        \\newcommand{\\bvec}{{\\mathbf b}}\n        \\newcommand{\\vvec}{{\\mathbf v}}\n        % employed in Valerio Monti sbsgroup operation tables\n        \\newcommand{\\class}[2][\\sim]{\\lbrack #2\\rbrack_{#1}}% Classe di equivalenza\n        </macros>\n        <prefigure-preamble xmlns=\"https://prefigure.org\">\n            <!-- employed in a PreFigure linear algebra diagram -->\n            <line stroke=\"blue\"/>\n        </prefigure-preamble>\n        <!-- We control the appearance of the text of cross-references here           -->\n        <!-- (these are the \"xref\" elements).  Because this changes the words         -->\n        <!-- that appear in your output, it is a decision with stays with the source. -->\n        <!-- Experiment here with different choices and a few different \"xref\"        -->\n        <!-- elements before you decide on a final choice.  We set this to 'global',  -->\n        <!-- not because we think it is a good choice, but for historical reasons.    -->\n        <!-- The default is 'type-global', which produces text like \"Theorem 5.2\",    -->\n        <!-- where \"Theorem\" will be translated into the document language            -->\n        <cross-references text=\"global\"/>\n        <!--\n        Extra packages, package options, and package settings for latex-based images.\n        Inserted in the preamble for LaTeX output.\n        Inserted in the preamble to each standalone latex-based image for HTML SVG output.\n        -->\n        <latex-image-preamble>\n        \\usepackage{pgfplots}               % loads tikz package\n        \\usepackage{smartdiagram}           % for a circular diagram\n        \\pgfplotsset{axis x line = middle,\n                     axis y line = middle}\n        \\usetikzlibrary{backgrounds}\n        \\usetikzlibrary{arrows,matrix}\n        \\usetikzlibrary{positioning}        % for Dave R's worksheet\n        \\usepackage{circuitikz}             % for Virgil P's worksheet\n        \\usepackage{nicematrix}             % for multi-run latex-image (label=\"latex-three-pass\")\n        \\usepackage{siunitx}                % swim speeds in shark attack image\n        </latex-image-preamble>\n        <!--\n        The Sage Notebook has its own interface and worksheet list.\n        To use the sorting features optimally, it helps to have subdivisions\n        begin with the same short prefix.  An \"initialism\" (nee acronym)\n        here will be used for that purpose if present.  This is only employed\n        for producing Sage notebook versions and in the title shown in the\n        browser. (If not present, you will get a harmless warning just for\n        Sage worksheet production.)\n        -->\n        <initialism>SA</initialism>\n        <!-- For various purposes, it is helpful to have a unique identifier    -->\n        <!-- for your entire document.  As of 2019-01-02 this will be used as   -->\n        <!-- the HTML id attribute on the body element of *every* page created  -->\n        <!-- by the HTML conversion.                                            -->\n        <!--                                                                    -->\n        <!--   * Start with a letter                                            -->\n        <!--   * No strange characters, just 52 Latin letters, and 10 digits    -->\n        <!--   * No spaces                                                      -->\n        <!--   * Use only a hyphen (-) to separate words                        -->\n        <!--                                                                    -->\n        <!-- Make it so there is a reasonable expectation of being unique.      -->\n        <!-- \"my-book\" is a poor choice, \"beezer-first-course-linear-algebra\"   -->\n        <!-- is better.  And maybe something in-between is best: \"beezer-FCLA\". -->\n        <document-id>pretext-SA</document-id>\n\n        <!-- If provided, the programs @language will be used for           -->\n        <!-- any programs or runestone interactives that lack @language     -->\n        <!-- <programs language=\"python\"/> -->\n        <!-- If provided, the parsons @language will be used for           -->\n        <!-- parsons problems that lack @language. If not provided,        -->\n        <!-- programs@language will be used.                               -->\n        <!-- <parsons language=\"natural\"/> -->\n\n        <!--\n        \"Names\" for various parts of a document are determined exactly\n        once for each language, ensuring consistency and saving you the\n        bother of always typing them in.  These can be found in the\n        files in the  xsl/localizations  directory.\n\n        You can make a document-specific, global override.  Here we\n        decide we have no need for any \"proposition\"s and repurpose\n        that environment as a \"Conundrum.\"\n\n        The specification of a language is optional, if you do not\n        have a multilingual project.  Otherwise you can supply an\n        @xml:lang attribute so the rename only applies for a specific\n        language.  See the localization file for more on language codes.\n        -->\n        <rename element=\"proposition\">Conundrum</rename>\n\n        <!-- Images in HTML output may carry a discreet list of links    -->\n        <!-- to \"archival\" versions of images in a variety of formats.   -->\n        <!-- Authors have complete freedom to do this as they choose,    -->\n        <!-- along with complete responsibility to provide the actual    -->\n        <!-- files, with proper filenames and suffices.  Search this     -->\n        <!-- source file for \"archive=\" to see particular examples.      -->\n        <!-- The following demonstrates a global specification, which    -->\n        <!-- we just use for testing - it just makes totally fake links. -->\n        <!--\n        <images>\n            <archive>One Two Three</archive>\n        </images>\n        -->\n\n        <!-- Demonstration of subtree specifications for archive formats -->\n        <!-- (Do not use in concert with above global test)              -->\n        <!-- Chapter on graphics, fake \"A B\" links throughout            -->\n        <!-- No other part of the @archive scheme is affected            -->\n        <!-- Two images, inside figures, within graphics chapter         -->\n        <!--   1) one has \"A B\" links turned off                         -->\n        <!--   2) single link \"exceptional\"                              -->\n        <!--\n        <images>\n            <archive from=\"graphics\">A B</archive>\n            <archive from=\"figure-asymptote-levers\"/>\n            <archive from=\"figure-asymptote-contour-plot\">exceptional</archive>\n        </images>\n        -->\n\n        <latex-output>\n            <!-- turn this on once it is easier to make   -->\n            <!-- standalone worksheets, uncomment to test -->\n            <!-- <worksheet top=\"3cm\" left=\"4cm\" margin=\"12cm\"/> -->\n        </latex-output>\n\n        <!-- A *source* directory for files necessary to build   -->\n        <!-- certain items completely.  For example, a data file -->\n        <!-- for an plot image. Illustrated here, search for the -->\n        <!-- use of the translation, \"external/\"                 -->\n        <directories data=\"numerical\"/>\n\n    </docinfo>\n\n    <!--\n    The article element is top-level for anything short of a book.\n    There is a book element, which is not demonstrated here.\n    The \"xml:id\" attribute will be used for the filename of the\n    HTML output.\n    -->\n    <article xml:id=\"derivatives\" label=\"derivatives\">\n        <title>Derivatives and Integrals</title>\n        <subtitle>An Annotated Discourse</subtitle>\n\n        <!--\n        The frontmatter contains a variety of items that precede\n        the actual content.  They should be placed in the proper order,\n        here the title material should precede a table of contents.\n        They differ from \"docinfo\" items in that they will be *content*\n        that a reader will actually see.\n        -->\n\n        <frontmatter xml:id=\"frontmatter\" label=\"frontmatter\">\n            <!--\n            Items typically on the main title page of a book,\n            but here as an article they are handled more compactly\n             -->\n\n             <bibinfo>\n             <!-- There can be several authors here -->\n                <author>\n                    <personname>Robert Beezer</personname>\n                    <!-- department here is one line, so unstructured -->\n                    <department>Department of Mathematics and Computer Science</department>\n                    <!-- institution uses two lines, so structured as such -->\n                    <institution>\n                        <line>University of Puget Sound</line>\n                        <line>Tacoma, Washington, USA</line>\n                    </institution>\n                    <email>beezer@pugetsound.edu</email>\n                    <support>Statement about support received by the first author.</support>\n                </author>\n\n                <author>\n                    <personname>A. Second Author</personname>\n                    <affiliation>\n                        <department>Department of Mathematics</department>\n                        <institution>University of Somewhere</institution>\n                        <location>Anytown, USA</location>\n                    </affiliation>\n                    <email>asauthor@example.edu</email>\n                    <support>Statement about support received by the second author.</support>\n                </author>\n\n                <!-- Can set date manually or use the \"today\" element -->\n                <date><today/></date>\n                <keywords>\n                <keyword>samples</keyword><keyword>PreTeXt</keyword><keyword>testing document</keyword>\n                </keywords>\n                <keywords authority=\"msc\" variant=\"2010\">\n                    <keyword primary=\"yes\">00-01</keyword>\n                    <keyword>00-02</keyword>\n                    <keyword primary=\"no\">00A99</keyword>\n                </keywords>\n                <support><p>This is an example of a statement describing funding support for the current document.</p></support>\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n\n            <abstract>\n                <p>This is a sample of many of the things you can do with <pretext/>.  Sometimes the math makes sense, sometimes it seems to be written in the first person, sort of like this Abstract.</p>\n            </abstract>\n            <!--\n            Acknowledgements, dedications, colophon (ISBN, copyright, etc)\n            are supported in the book document type.  Such a diverse range\n            is not yet available for articles.  Send requests.\n             -->\n        </frontmatter>\n\n        <!--\n        Articles have sections, which have subsections,\n        which have subsubsections.These are all \"containers\"\n        and so line breaks and extraneous whitespace gets\n        scrubbed.  Use indentation and line breaks liberally\n        within containers to make the structure of your\n        source readable.\n        -->\n\n        <section label=\"section-introduction\">\n            <title>Introduction</title>\n\n            <!--\n            URLs can be done in a traditional fashion, as in the\n            abstract below. Or you can make an empty element and the URL in\n            the href attribute will be the content you click on.  See the\n            example near the discussion of Asymptote.\n            -->\n\n            <p>We consider definite integrals of functions <m>f(x)</m>.  For example, <md>\\definiteintegral{0}{2}{\\sin^2(x)}{x}</md>.  This is also a demonstration of the capabilities of <url href=\"https://pretextbook.org\" visual=\"pretextbook.org\"><pretext/></url>.<notation>\n                <usage><m>\\int_a^b\\,f(x)\\,dx</m></usage>\n                <description>definite integral of <m>f(x)</m></description>\n            </notation></p>\n\n            <p>Generated: <today/>, <timeofday/></p>\n\n        </section>\n\n        <!--\n        Note above: Subdivisions always have titles, and these\n        are not containers.  Line breaks and whitespace will\n        bleed into output, which is especially a problem for TeX,\n        since it may render as a blank line.  So keep the title\n        element \"tight\" around the content.\n\n        The \"p\" element is a paragraph, and also not a container,\n        so keep it wrapped tight.  Lots can go on in a paragraph.\n        -->\n\n        <section xml:id=\"section-fundamental-theorem\" label=\"section-fundamental-theorem\">\n            <title>The Fundamental Theorem</title>\n\n            <p>There is a remarkable theorem:<fn xml:id=\"footnote-fermat\">And fortunately we do not need to try to write it in the margin!</fn></p>\n            <!--\n            Mathematics:  Wrap inline mathematics in the \"m\"\n            element (short for \"math\").  You may use TeX, LaTeX,\n            and/or AMSmath here.  You may also use any macro\n            defined in docinfo/macros.\n            If the \"m\" tag bothers you, you may use \\(...\\).\n            Purposely, dollar signs will not function properly.\n            The \"me\" element will create a displayed \"math\n            equation\", which is unnumbered.\n            -->\n            <theorem xml:id=\"theorem-FTC\">\n                <title>The Fundamental Theorem of Calculus</title>\n                <idx><h>Fundamental Theorem of Calculus</h></idx>\n\n                <statement>\n                    <p>If <m>f(x)</m> is continuous, and the derivative of <m>F(x)</m> is <m>f(x)</m>, then <md>\\definiteintegral{a}{b}{f(x)}{x}=F(b)-F(a)</md><idx><h>test: buried in theorem/statement/p</h></idx></p>\n                </statement>\n                <proof>\n                    <p>Left to the reader.<fn>This is a footnote in a <tag>proof</tag> that is inside a <tag>theorem</tag>.</fn></p>\n                </proof>\n            </theorem>\n            <!--\n            Note above:  The \"xml:id\" attribute is like a LaTeX label.\n            It is a target for cross-reference, an alias for the theorem\n            so we can reference it later.  The \"theorem\" part of the alias\n            is not necessary, but is a good habit.\n            -->\n\n            <!--\n            Next paragraph has two citations.  These reference\n            aliases given by \"xml:id\"'s in the bibliography.\n            Citations render as knowls on web pages.\n            -->\n            <p>You will find almost nothing about all this in the article <xref ref=\"biblio-lay-article\"/>, nor in the book <xref ref=\"biblio-judson-AATA\"/>, since they belong in some other article, but we can cite them out-of-order for practice anyway.</p>\n\n            <!--\n            There are various tools for authors\n            and we can process the source in order to\n            make these visible, or not\n            -->\n\n            <p>When we are writing we do not always know what we want to cite, or just where subsequent material will end up.  For example, we might want a citation to <xref provisional=\"some textbook about the FTC\"/> or we might want to reference a later<nbsp/><xref provisional=\"chapter about DiffEq's, and an_underscore\"/>.</p>\n\n            <p>We can also embed <q>todo</q>s in the source by making an <init>XML</init> comment that begins with the four characters <c>todo</c>, and selectively display them, so you may not see the one here in the output you are looking at now.  Or maybe you do see it?</p>\n\n            <!-- todo: Talk more about author's tools, such as todo's -->\n\n            <p>Because a definite integral can be computed using an antiderivative, we have the following definition.</p>\n\n            <!--\n            Notation may be associated with a definition,\n            or it can be placed standalone.  If associated\n            with a definition, future work will reflect that\n            association in the list of notation.\n            -->\n\n            <definition xml:id=\"definition-indefinite-integral\">\n                <idx>indefinite integral</idx><idx><h>integral</h><h>indefinite integral</h></idx>\n                <notation>\n                    <usage><m>\\int\\,f(x)\\,dx</m></usage>\n                    <description>indefinite integral of <m>f(x)</m></description>\n                </notation>\n                <statement>\n                    <p>Suppose that <m>\\frac{d}{dx}F(x)=f(x)</m>.  Then the <term>indefinite integral</term> of <m>f(x)</m> is <m>F(x)</m> and is written as <md>\\int\\,f(x)\\,dx=F(x)</md>.</p>\n                </statement>\n            </definition>\n        </section>\n\n        <!--\n        Sage Code: Next section has Sage code examples.\n        For HTML it renders as Sage Cells, with no sample output.\n        For LaTeX it renders as input/output, suggestively typeset.\n        A separate XSL transform isolates code and produces a file\n        for doctesting.\n\n        Note: These small examples are wrapped \"tight\" in the\n        input and output elements.  For multiline code snippets,\n        the left margin is determined by the whitespace preceding\n        the first non-trivial character.\n        -->\n\n        <section xml:id=\"section-sage-cells\" label=\"section-sage-cells\">\n            <title>Computing Integrals with Sage (<m>\\int</m>)</title>\n            <!-- A version of the title with no markup at all, in -->\n            <!-- order to cooperate with an (optional) math font  -->\n            <shorttitle>Computing Integrals with Sage</shorttitle>\n            <!-- Index testing, semi-realistic -->\n            <idx><h>Sage</h><h>integration</h></idx>\n            <idx><h>Sage</h><h>integration</h><h>cell</h></idx>\n            <idx><h>Sage</h><h>integration</h><h>numerical</h></idx>\n            <idx><h>numerical</h><see>Sage integration</see></idx>\n            <idx><h>numerical</h><see>Sage</see></idx>\n            <!-- index entry, plus a seealso for additional -->\n            <idx>numerics</idx>\n            <idx><h>numerics</h><seealso>Sage</seealso></idx>\n            <idx><h>numerical integration</h><h>Sage</h><h>cell</h><see>Sage</see></idx>\n            <!-- Index testing, at most one see/seealso per index -->\n            <idx><h>A</h><see>F</see></idx>\n            <idx><h>A</h><see>G</see></idx>\n            <idx><h>A</h><see>H</see></idx>\n            <idx><h>A</h><h>B</h></idx>\n            <idx><h>A</h><h>B</h><h>C</h></idx>\n            <idx><h>A</h><h>B</h><h>C</h><seealso>D</seealso></idx>\n            <idx><h>A</h><h>B</h><h>C</h><seealso>A</seealso></idx>\n            <!--  -->\n            <!-- Index testing, at most one see/seealso per index -->\n            <idx><h>X</h></idx>\n            <idx><h>X</h><seealso>F</seealso></idx>\n            <idx><h>X</h><seealso>G</seealso></idx>\n            <idx><h>X</h><seealso>H</seealso></idx>\n            <idx><h>X</h><h>Y</h></idx>\n            <idx><h>X</h><h>Y</h><h>Z</h><see>D</see></idx>\n            <idx><h>X</h><h>Y</h><h>Z</h><see>A</see></idx>\n            <!--  -->\n            <!-- Index testing, fancy variant -->\n            <idx>mixed-content <em>emphasized</em></idx>\n            <idx><h>structured-content <em>emphasized</em></h></idx>\n            <idx><h sortby=\"cat\">sorted as if <q>Cat</q></h></idx>\n            <idx sortby=\"quorum\">sorted as if <q>Quorum</q></idx>\n            <idx><h>units</h><h sortby=\"A\">Z (<alert>sort as</alert> A)</h></idx>\n            <idx><h>units</h><h sortby=\"Z\">A (<alert>sort as</alert> Z)</h></idx>\n            <idx sortby=\"verbatim\"><c>verbatim text</c>, use sortby</idx>\n            <!-- keep this, collides with real \"R\" entry elsewhere -->\n            <idx sortby=\"R\"><m>\\rho</m><ndash/>fibers</idx>\n            <!-- test identical text, but variant upper- and lower-case  -->\n            <!-- each appears later in a paragraph, to test them sorting -->\n            <!-- into place to form just three index entries (each with  -->\n            <!-- two cross-references)                                   -->\n            <idx>Cayley graph</idx><idx>cayley graph</idx><idx>CAYLEY GRAPH</idx>\n            <!-- identical @sortby, identical content, should consolidate, -->\n            <!-- so an index entry here plus later, in a paragraph, after  -->\n            <!-- some other index entry                                    -->\n            <idx><h sortby=\"x\"><m>x</m> as a variable</h></idx>\n\n            <p>Sage can compute definite integrals.  The output contains the approximate numerical value of the definite integral, followed by an upper bound  of the error in the approximation.</p>\n\n            <sage>\n                <input>numerical_integral(sin(x)^2, (0, 2))</input>\n                <!-- need to use wildcard matching to make this doctestable -->\n                <output>(1.189200623826982, 1.320277913471315e-14)</output>\n            </sage>\n\n            <p>Given the Fundamental Theorem, we would find the antiderivative useful.<idx>Cayley graph</idx><idx><h sortby=\"x\"><m>x</m> as a variable</h></idx></p>\n\n            <sage>\n                <input>integral(sin(x)^2, x)</input>\n                <output>1/2*x - 1/4*sin(2*x)</output>\n            </sage>\n\n            <p>The same command can be used to employ the antiderivative in the application of the Fundamental Theorem.  Notice that the answer is <em>exact</em> and any further manipulation is likely to be simply producing a numerical approximation.<idx>cayley graph</idx></p>\n\n            <!-- The \"full\" type is the default, it is used here only for testing purposes -->\n            <sage type=\"full\">\n                <input>integral(sin(x)^2, (x, 0, 2))</input>\n                <output>-1/4*sin(4) + 1</output>\n            </sage>\n\n            <p>There are integrals you really do not want to evaluate, or you do not want your reader to evaluate.  A Sage cell can be configured for display purposes only<mdash/>you can look but you cannot touch.<idx>CAYLEY GRAPH</idx></p>\n\n            <sage type=\"display\">\n                <input>integral(e^(x^2), x)</input>\n                <output>-1/2*I*sqrt(pi)*erf(I*x)</output>\n            </sage>\n\n            <p>You can give a Sage element a <c>doctest</c><idx>doctest</idx><idx><h>attributes</h><h>doctest</h></idx> attribute, whose value mirrors the optional hash tags used in Sage doctests.  Possible values are <c>random</c>, <c>long time</c>, <c>not implemented</c>, <c>not tested</c>, <c>known bug</c>, <c>absolute</c>, <c>relative</c>, and <c>optional</c>.  The values <c>absolute</c> and <c>relative</c> refer to floating-point tolerances for equality and require a second attribute <c>tolerance</c> to specify a floating point value.  The value <c>optional</c> refers to the test requiring that an optional Sage package be present.  The name of that package should be provided in the <c>package</c> attribute.</p>\n\n            <!-- The four index entries below once sorted/consolidated very poorly -->\n            <p>The next cell is marked in the source as <c>doctest=\"random\"</c>, and so is specified as unpredictable and not tested.  But there is some <q>sample</q> output which will appear in the <latex/> version (and always be the same).\n            <idx>c</idx>\n            <idx><h sortby=\"c\">A bug test, sorted as <q>c</q></h><h>b</h><h>c one</h></idx>\n            <idx><h sortby=\"c\">A bug test, sorted as <q>c</q></h><h>x</h><h>c two</h></idx>\n            <idx><h sortby=\"c\">A bug test, sorted as <q>c</q></h><h>b</h><h>c three</h></idx>\n            </p>\n\n            <sage doctest=\"random\">\n                <input>random()</input>\n                <output>0.11736021338650582</output>\n            </sage>\n\n            <p>While the next cell is random, the returned value will never be more than <m>0.01</m> away from <m>12</m>, since the <c>random()</c> function stays between <m>0</m> and <m>1</m>.  So we provide <m>12.005</m> as the expected answer, but test with an absolute tolerance of <m>\\epsilon=0.006</m>.</p>\n\n            <sage doctest=\"absolute\" tolerance=\"0.006\">\n                <input>12 + 0.01*random()</input>\n                <output>12.005</output>\n            </sage>\n\n            <p>Sage has some functions which affect output, generally making mathematics look more like mathematics via <latex/> syntax.  This is a simple test, and you should see the variable and superscript in italics, properly formatted as output when viewed within HTML output.  We have provided expected output for doctesting, but it is sort of silly to have this as part of <latex/> output, even if it is instructive.</p>\n\n            <sage>\n                <input>pretty_print(html(\"$a^2$\"))</input>\n                <output>&lt;script type=\"math/tex\"&gt;a^2&lt;/script&gt;</output>\n            </sage>\n\n            <!-- keep R index entry, collides with sortby attribute elsewhere -->\n            <p>Sage, and by extension, the Sage Cell Server, can interpret several languages.  The next example has code in the <c>R</c> language,<idx><h>R</h></idx> a popular open source language for statistics.  As an author, you add the attribute <c>language=\"r\"</c> to your <c>sage</c> element.  (The default language is Sage, so you do not need to indicate that repeatedly.)  Note that a language like <c>R</c> likes to use a <q>less than</q> character, &lt;, special character in XML.  You need to escape it by writing <c>&amp;lt;</c> as we have done in the source for this example.  (See the discussion in <xref ref=\"subsection-xml-escape\" text=\"type-global\"/>.)</p>\n\n            <p>As a reader you learn that the <q>Evaluate</q> button for a pre-loaded Sage cell will indicate the language in use.</p>\n\n            <sage doctest=\"not tested\" language=\"r\">\n                <input>\n                ruth &lt;- c(22, 25, 34, 35, 41, 41, 46, 46, 46, 47, 49, 54, 54, 59, 60)\n                bonds &lt;- c(16, 25, 24, 19, 33, 25, 34, 46, 37, 33, 42, 40, 37, 34, 49, 73, 46, 45, 45, 5, 26, 28)\n                dimaggio &lt;- c(12, 14, 20, 21, 25, 29, 30, 30, 31, 32, 32, 39, 46)\n                summary(ruth)\n                summary(bonds)\n                summary(dimaggio)\n                boxplot(ruth, bonds, dimaggio)\n                </input>\n            </sage>\n\n            <p>The Sage Cell Server supports the following languages:  <c>sage</c>, <c>gap</c>, <c>gp</c>, <c>html</c>, <c>maxima</c>, <c>octave</c>, <c>python</c>, <c>r</c>, and <c>singular</c>.</p>\n\n            <p>Here is another <c>R</c> cell.  Unfortunately, it seems Sage's <c>doctest</c> facility cannot be used easily with code from other languages.  In the source for this example, we have employed the <init>XML</init> escape sequence, <c>&amp;lt;</c> several times (see <xref ref=\"subsection-xml-escape\" text=\"type-global\"/>).</p>\n\n            <sage language=\"r\">\n                <input>\n                age &lt;- c(25, 30, 56)\n                gender &lt;- c(\"male\", \"female\", \"male\")\n                weight &lt;- c(160, 110, 220)\n                mydata &lt;- data.frame(age,gender,weight)\n                summary(mydata)\n                cor(mydata$age,mydata$weight)\n                mean(mydata$age)\n                sd(mydata$age)\n                plot(mydata$age,mydata$weight)\n                </input>\n            </sage>\n\n            <!-- https://github.com/sagemath/sagecell/blob/master/contrib/vm/container_manager.py#L260 -->\n            <p>The Sage Cell server imports a few important R packages.  As of 2022-06-04 these are <c>deSolve</c>, <c>ggplot2</c>, <c>pracma</c>, <c>survey</c>, <c>swirl</c>, and <c>tidyverse</c>.  This next example uses the <c>ggplot</c> library for both a data set and the plotting capabilities.  Note the initial use of the <c>library()</c> function.  This is a modified version of the <articletitle>Bubble plot</articletitle> example at <url href=\"http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html\">Top 50 <c>ggplot2</c> Visualizations <mdash/>The Master List</url>.</p>\n\n            <sage language=\"r\">\n                <input>\n                # load package and data\n                library(ggplot2)\n                data(mpg, package=\"ggplot2\")\n\n                mpg_select &lt;- mpg[mpg$manufacturer %in% c(\"audi\", \"ford\", \"honda\", \"hyundai\"), ]\n\n                # Scatterplot\n                g &lt;- ggplot(mpg_select, aes(displ, cty)) +\n                  labs(subtitle=\"mpg: Displacement vs City Mileage\",\n                       title=\"Bubble chart\")\n\n                g + geom_jitter(aes(col=manufacturer, size=hwy)) +\n                  geom_smooth(aes(col=manufacturer), method=\"lm\", se=F)\n                </input>\n            </sage>\n\n            <p>Here is a blank Sage cell that you may use for practice and experimentation with the commands above.  Note that this cell allows a choice of languages, and is not linked with any of the previous cells, so a reader would need to start fresh, or cut/paste definitions from other cells.</p>\n\n            <sage type=\"practice\"/>\n\n            <p>On the other hand a <tag>sage</tag> element with no content will also create an empty Sage cell for the reader's use, but now it will be specific to a particular language and linked to others of the same language.  Run the <c>R</c> cell above that defines the variable <c>ruth</c> and then try typing <c>summary(ruth)</c> in the cell below.</p>\n\n            <sage language=\"r\"/>\n\n            <p>You can make Sage blocks which are of <c>type=\"invisible\"</c>, which will never be shown to a reader, but which get doctested.  Why do this?  If some code produces an error, and you hope it is fixed someday, use an invisible block to raise the error.  Once fixed, the doctest will fail, and you can adjust your commentary to suit.  There is such a block right now, <em>but</em> you will need to go to the source to see it.</p>\n\n            <!--\n            This code raises a \"not implemented\" error.\n            Maybe it'll never change? It is not important -\n            but let me know if it changes.\n            -->\n            <sage type=\"invisible\">\n                <input>graphs(augment='vertices').next()</input>\n                <output>\n                Traceback (most recent call last):\n                ...\n                NotImplementedError\n                </output>\n            </sage>\n\n            <p>Our maximum width for text, designed for readability, suggests you should format your Sage code with a maximum of about 54 characters. On a mobile device, the number of displayed characters might be as low as 28 in portrait orientation, and again around 50 in landscape.  You can use a variety of techniques to shorten long lines, such as using intermediate variables.  Since Sage is just a huge Python library, you can use any of Python's facilities for handling long lines.  These include a continuation character (which I try to avoid using) or natural places where you can break long lines, such as between entries of a list.  Also, if writing loops or functions, you may wish to have your indentation be only two characters wide (rather than, say, four).</p>\n\n            <p>Sage output can sometimes be quite long, though this has improved with some changes in Sage's output routines.  Output code should be included primarily for doctesting purposes, and in this use, you may break at almost whitespace character and the doctesting framework will adjust accordingly.  You may wish to show sample output in a static format, like a PDF, so you can consider formatting your output to fit the width constraints of that medium.  Or you may even adjust exactly what is output, to keep it from being too verbose.  Sage doctesting also allows for a wild-card style syntax which allows you to skip over huge chunks of meaningless or unpredictable output, such as tracebacks on error messages.</p>\n\n            <p>This paragraph is just a placeholder.  It has handful of index entries, all starting with the letters <q>gas</q>, taken from <pubtitle>Indexing for Editors and Authors: A Practical Guide to Understanding Indexes</pubtitle> by Leise, Mertes, and Badgett.  The intent is to test letter-by-letter versus word-by-word sorting of index entries.  We use a word-by-word order, resulting in:<ol>\n                <li>gas</li>\n                <li>gas masks</li>\n                <li>gas production</li>\n                <li>gas works</li>\n                <li>gasoline</li>\n                <li>gastritis</li>\n            </ol>\n            <idx>gasoline</idx>\n            <idx>gas works</idx>\n            <idx>gas</idx>\n            <idx>gas masks</idx>\n            <idx>gas production</idx>\n            <idx>gastritis</idx>\n            </p>\n\n            <paragraphs>\n                <title>Titled Sage Cells</title>\n                <idx><h>Sage cell</h><h>with a title</h></idx>\n\n                <sage>\n                    <input>integral(sin(x)^2, x)</input>\n                    <output>1/2*x - 1/4*sin(2*x)</output>\n                </sage>\n\n                <p>You can place Sage cells inside of a <c>paragraphs</c> if you want to give them a title, but no numbers, <etc/>.</p>\n            </paragraphs>\n        </section>\n\n        <!--\n        Next section illustrates more involved presentation of\n        mathematics.  The \"mdn\" element is shorthand for\n        \"mathematics display, numbered\".  There is a \"men\"\n        element for \"math equation, numbered\" and a \"md\" for\n        \"math display\" (with no numbers).  Numbering may be\n        selectively suppressed or enabled, per line (shown\n        here once).  An \"xml:id\" alias may be used on any\n        numbered line.\n\n        Multi-line displays (\"md\", \"mdn\") require that lines\n        be delimited as \"math rows\" with the \"mrow\" element.\n        These displays are implemented with the AMSMath align\n        environment, which uses ampersands (&) for formatting\n        control.  This is an evil situation, but the (easy) way\n        around it is to use \"&amp;\" in this situation.\n\n        The previous sections were sequences of paragraphs, along with\n        theorems, Sage code, etc.  The next section has subsections, so\n        the structure must look like *only* subsections, excepting a\n        brief introduction and conclusion (that are sequences of\n        paragraphs and other blocks.)\n        -->\n\n        <section xml:id=\"interesting-corollary\" label=\"section-interesting-corollary\">\n            <title>An Interesting Corollary</title>\n\n            <objectives xml:id=\"objectives-structures\">\n                <title>Fundamental Structures</title>\n\n                <introduction>\n                    <p>This is an <tag>objectives</tag> element you are reading, and this is its introduction.  This early section has really grown and tries to accomplish many things.  Not all of them are listed here.</p>\n                </introduction>\n\n                <ol>\n                    <li xml:id=\"objective-structure\">Display various <q>blocks</q>, fundamental units of the flow.</li>\n                    <li>More.</li>\n                    <li>Evermore.</li>\n                </ol>\n\n                <conclusion>\n                    <p>This concludes the (incomplete) objectives for this section, so now we can carry-on as before.</p>\n                </conclusion>\n            </objectives>\n\n            <introduction>\n                <p>This is a cross-reference to one of the objectives above, forced to use the <c>phrase-global</c> form of the text.  It should describe the objective as belonging to the <em>section</em> (rather than the <em>objectives</em>), since objectives are one-per-subdivision and are numbered based upon the containing division: <xref ref=\"objective-structure\" text=\"phrase-global\"/>.  For comparison this is the (forced) <c>type-global</c> cross-reference: <xref ref=\"objective-structure\" text=\"type-global\"/>.</p>\n\n                <p>The Fundamental Theorem comes in two flavors, where usually one is a corollary of the other.</p>\n            </introduction>\n\n            <subsection xml:id=\"subsection-second-FTC\">\n                <title>Second Version of <acro>FTC</acro></title>\n\n                <!-- ToDo: Should equation references come with parentheses? -->\n\n                <corollary xml:id=\"corollary-FTC-derivative\">\n                    <creator>Leibniz, Newton</creator>\n                    <idx><h>Fundamental Theorem of Calculus</h><h>Corollary</h></idx>\n                    <statement>\n                        <p>Suppose <m>f(x)</m> is a continuous function.  Then <md number=\"yes\" xml:id=\"equation-alternate-FTC\">\\frac{d}{dx}\\definiteintegral{a}{x}{f(t)}{t}=f(x)</md>.</p>\n                    </statement>\n                    <proof xml:id=\"proof-FTC-corollary\">\n                        <p>We simply take the indicated derivative, applying Theorem<nbsp/><xref ref=\"theorem-FTC\"/> at <xref ref=\"equation-use-FTC\"/><md number=\"yes\">\n                            <mrow xml:id=\"equation-use-FTC\">\\frac{d}{dx}\\definiteintegral{a}{x}{f(t)}{t}&amp;=\\frac{d}{dx}\\left(F(x)-F(a)\\right)</mrow>\n                            <mrow number=\"no\">&amp;=\\frac{d}{dx}F(x)-\\frac{d}{dx}F(a)</mrow>\n                            <mrow xml:id=\"equation-conclude\">&amp;=f(x)-0 = f(x)</mrow>\n                        </md>.</p>\n                    </proof>\n                    <justification>\n                        <p>A justification, which is one of the variants of a proof.</p>\n                    </justification>\n                    <!-- 2024-09-28: this device has been harmed, search here -->\n                    <!-- by date, and in the sample article for more.  Proof  -->\n                    <!-- below once earned a \\qedhere, but no more.  Likely   -->\n                    <!-- caused by commit just preceding this one.            -->\n                    <!-- (perhaps 203c4b660eb27fb9ee43ffa0d6c5ab1aae110747)   -->\n                    <proof>\n                        <title>Alternate Proof</title>\n                        <p>You can have multiple proofs, and they can have titles which replace the word <q>Proof</q> as a heading.  Here we just exercise displayed math with no automatic numbering, and an elective number on the middle equation.<md>\n                            <mrow>\\frac{d}{dx}\\definiteintegral{a}{x}{f(t)}{t}&amp;=\\frac{d}{dx}\\left(F(x)-F(a)\\right)</mrow>\n                            <mrow number=\"yes\">&amp;=\\frac{d}{dx}F(x)-\\frac{d}{dx}F(a)</mrow>\n                            <mrow>&amp;=f(x)-0 = f(x)</mrow>\n                        </md></p>\n                    </proof>\n                </corollary>\n\n                <p>The alternative version of the Fundamental Theorem (<acro>FTC</acro>) in <xref ref=\"equation-alternate-FTC\"/> is a compact way to express the result.</p>\n\n                <p>For testing purposes, there is a simple bare Sage Cell here.</p>\n                <sage>\n                    <input>\n                    c = 832\n                    c\n                    </input>\n                </sage>\n\n                <example xml:id=\"example-mysterious\">\n                    <title>A Mysterious Derivative!</title>\n                    <p>So if we define a function with its variable employed as a limit of integration, like so <md>K(z)=\\definiteintegral{345}{z}{x^4\\sin(x^2)}{x}</md> then we get the derivative of that function so easily it seems like a mystery, <md>\\frac{d}{dz}K(z)=z^4\\sin(z^2)</md>. That's it.</p>\n\n                    <p>For testing purposes, there is a simple Sage Cell here, buried inside an example that should be a knowl (embedded in the page).</p>\n\n                    <sage>\n                        <input>2+2</input>\n                    </sage>\n\n                    <p>We test a Sage cell inside a knowl, which should set the value of a variable that will be available to subsequent cells within the knowl.</p>\n\n                    <sage>\n                        <input>\n                        a = 6\n                        a\n                        </input>\n                    </sage>\n\n                    <sage>\n                        <input>\n                        b = a + 10\n                        b\n                        </input>\n                    </sage>\n\n                    <p>Even if you ran the cell at the top of this page, within this knowl the value of the variable <c>c</c> is not known, so the next cell will cause an error.</p>\n\n                    <sage>\n                        <input>\n                        c + 400\n                        </input>\n                    </sage>\n                </example>\n\n                <p>The Sage cells on a page will <q>remember</q> results computed elsewhere on the page.  If you rely on this feature, remind your readers to evaluate all the necessary cells and that they perhaps need to be evaluated in a certain order.</p>\n\n                <sage>\n                    <input>\n                    c/2\n                    </input>\n                </sage>\n\n                <p>There are some Sage cells in the previous (knowled) <tag>example</tag>.  The results there are restricted to the knowl.  In other words, the scope of those cells is the knowl.  So if you opened the example and executed the Sage cells there, or if you skipped the example entirely, the next cell should not <q>know</q> the values of those variables and will raise an error.</p>\n\n                <sage>\n                    <input>\n                    a + b\n                    </input>\n                </sage>\n\n                <p>We cross-reference the example just prior, <xref ref=\"example-mysterious\" text=\"type-global\"/>, to test the simple Sage cells that will now be part of a cross-reference knowl (an external file).</p>\n\n                <claim xml:id=\"claim-with-cases\">\n                    <title>An Equivalent Claim</title>\n                    <statement>\n                        <p>This claim is an equivalence: it is true if and only if it is correct.</p>\n                    </statement>\n                    <proof>\n                        <p>Our purpose here is to show how you can structure a proof with cases, such as an equivalence structured with the arrows typically used to demonstrate the two <q>directions</q> involved in the proof, by using the <attr>direction</attr> attribute on a <tag>case</tag> element.</p>\n\n                        <case direction=\"forward\">\n                            <p>Nulla non lectus suscipit, bibendum leo quis, dignissim justo. In urna turpis, tincidunt id elementum id, faucibus ac tellus.</p>\n                        </case>\n\n                        <case direction=\"backward\">\n                            <p>Quisque auctor ligula turpis, ut aliquam urna consectetur hendrerit. Aenean porta dolor et justo facilisis feugiat in sed sapien. Nullam porta ex et commodo semper.</p>\n                        </case>\n\n                        <case xml:id=\"inductive-step\">\n                            <title>Case 3b: The inductive step</title>\n\n                            <p>A case may also have a <c>title</c>, whose formatting and structure is entirely up to the author.  This then becomes the text of a cross-reference, as well.</p>\n                        </case>\n\n                        <case xml:id=\"questioning-case\">\n                            <title>Why Not Try This?</title>\n\n                            <p>A <tag>case</tag> (or any other element with a default title) did not always handle title-ending punctuation correctly.  So we try an example title with a question mark.</p>\n                        </case>\n\n                        <case direction=\"forward\" xml:id=\"forward\">\n                            <title>Necessity</title>\n\n                            <p>If you like, you can have both indications.</p>\n                        </case>\n\n                        <case xml:id=\"empty-case\">\n                            <p>No direction, no title, then just a generic title.</p>\n                        </case>\n                    </proof>\n                    <proof>\n                        <title>Exciting Proof!</title>\n                        <p>We test here that punctuation at the end of the title of a proof is handled correctly.</p>\n                    </proof>\n                    <proof>\n                        <title>Exact Proof</title>\n                        <p>This proof should fill exactly three lines (as of defaults in place 2018-12-31) and so the tombstone/Halmos should be on a fourth line, and then <em>flush right</em>. xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx.</p>\n                    </proof>\n                </claim>\n\n                <claim xml:id=\"claim-with-tfae-cases\">\n                    <title>A List of Equivalent Statements</title>\n                    <statement>\n                        <p>\n                            The following are equivalent.\n                            <ol marker=\"(i)\">\n                                <li>This statement is equivalent to all those below.</li>\n                                <li>This statement is equivalent to the statement above and to all those below.</li>\n                                <li>This statement is equivalent to the two statements above and to the statement below.</li>\n                                <li>This statement is equivalent to all those above.</li>\n                            </ol>\n                        </p>\n                    </statement>\n                    <proof>\n                        <p>Our purpose here is to show how you can structure a proof with cases to address the circular logic required to prove the equivalence of a list of statements, by using the <attr>direction</attr> attribute on a <tag>case</tag> element. You should order the list of statements in the order that you would like to prove ``this statement implies the next.''</p>\n\n                        <case direction=\"cycle\">\n                            <p>Here we would prove that the first statement implies the second.</p>\n                        </case>\n\n                        <case direction=\"cycle\">\n                            <p>Here we would prove that the second statement implies the third.</p>\n                        </case>\n\n                        <case direction=\"cycle\" xml:id=\"cycle\">\n                            <title>The trickiest case</title>\n\n                            <p>This time we include a title to describe the nature of this case. But we would still need to prove that the third statement implies the last.</p>\n                        </case>\n\n                        <case direction=\"cycle\">\n                            <title>Wrap-around</title>\n\n                            <p>Finally, we would complete the cycle of logic by proving that the last statement implies the first.</p>\n                        </case>\n\n                    </proof>\n                </claim>\n\n                <p>We can also use <attr>direction</attr> set to <c>cycle</c> in a stand-alone proof of our TFAE claim. If we include a <attr>ref</attr> on the <tag>proof</tag> that points to the original claim, then the formatting of the markers on the statement list will be honored in our cases.</p>\n\n                <proof ref=\"claim-with-tfae-cases\">\n                    <p>Once again we will prove that the four statements in <xref ref=\"claim-with-tfae-cases\"/> are equivalent.</p>\n\n                    <case direction=\"cycle\">\n                        <p>Another argument that the first statement implies the second.</p>\n                    </case>\n\n                    <case direction=\"cycle\">\n                        <p>And another argument that the second statement implies the third.</p>\n                    </case>\n\n                    <case direction=\"cycle\">\n                        <title>Not so tricky this time</title>\n\n                        <p>Why did we find it so difficult before to prove that the third statement implies the last?</p>\n                    </case>\n\n                    <case direction=\"cycle\">\n                        <title>Wrap-around</title>\n\n                        <p>And once more we complete the cycle of logic.</p>\n                    </case>\n\n                </proof>\n\n                <p>A couple more times to check that the default list markers get applied to the directional cases properly.</p>\n\n                <claim xml:id=\"another-claim-with-tfae-cases\">\n                    <title>Another List of Equivalent Statements</title>\n                    <statement>\n                        <p>\n                            The <tag>ol</tag> that creates the list below does not have <attr>marker</attr>.\n                            <ol>\n                                <li>This statement is equivalent to the two below.</li>\n                                <li>This statement is equivalent to both the statement above and to the statement below.</li>\n                                <li>This statement is equivalent to the two above.</li>\n                            </ol>\n                        </p>\n                    </statement>\n                    <proof>\n                        <p>You know the drill by now.</p>\n\n                        <case direction=\"cycle\">\n                            <p>Does the first statement imply the second?</p>\n                        </case>\n\n                        <case direction=\"cycle\">\n                            <title>The <q>middle</q> case</title>\n                            <p>Does the second statement imply the third?</p>\n                        </case>\n\n                        <case direction=\"cycle\">\n                            <p>And finally, does the third imply the first?</p>\n                        </case>\n\n                    </proof>\n                </claim>\n\n                <p>This proof includes a <attr>ref</attr> to the preceding claim.</p>\n\n                <proof ref=\"another-claim-with-tfae-cases\">\n\n                    <case direction=\"cycle\">\n                        <p>Does the first statement imply the second?</p>\n                        </case>\n\n                    <case direction=\"cycle\">\n                        <title>The <q>middle</q> case</title>\n                        <p>Does the second statement imply the third?</p>\n                    </case>\n\n                    <case direction=\"cycle\">\n                        <p>And finally, does the third imply the first?</p>\n                    </case>\n\n                </proof>\n\n                <p>This proof does not include a <attr>ref</attr>, and so the direction indicators get default markers.</p>\n\n                <proof>\n\n                    <case direction=\"cycle\">\n                        <p>Does the first statement imply the second?</p>\n                    </case>\n\n                    <case direction=\"cycle\">\n                        <p>And finally, does the second imply the first?</p>\n                    </case>\n\n                </proof>\n\n            </subsection>\n\n            <!--\n            Articles can be sectioned further, into subsections\n            and subsubsections.  Books have a large subdivision,\n            chapters, which can be collections of sections.  A\n            further subdivision is a \"paragraph,\" which mimics\n            the structure of the same name in LaTeX.\n            -->\n\n            <subsection>\n                <title>A Pedagogical Note about <xref ref=\"subsection-second-FTC\" text=\"type-global\"/></title>\n\n                <subsubsection xml:id=\"subsubsection-different-integrals\">\n                    <title>Symbolic and Numerical Integrals</title>\n\n                    <p>The Fundamental Theorem explains why we use the same notation for a definite integral, which is a numerical calculation,<fn>Which I think sometimes students lose sight of.</fn> and an antiderivative, which is a symbolic expression.</p>\n\n                    <exercise xml:id=\"exercise-essay\">\n                        <title>Essay Question: Compare and Contrast</title>\n                        <statement>\n                            <p>Write a short paragraph which compares, and contrasts, the definite and indefinite integral. This is an exercise which sits in the midst of the narrative, so is formatted more like an example or a remark.  It can have a hint and a solution, but this one does not.  It can have a title, which this one does.</p>\n                        </statement>\n                        <hint>\n                            <p>Start writing!</p>\n                        </hint>\n                        <!-- private answer in private solutions file -->\n                        <!-- private solution in private solutions file -->\n                    </exercise>\n                </subsubsection>\n\n                <subsubsection>\n                    <title>Advice</title>\n\n                    <p>Using an <q>integral sign</q> for an antiderivative (aka indefinite integral) would seem to make the Fundamental Theorem a <foreign xml:lang=\"fr-FR\">fait accompli</foreign>.  So I would suggest not conflating the notation for two very different things until the Fundamental Theorem exposes them as being highly related.</p>\n\n                    <example xml:id=\"example-structured\">\n                        <title>An Example of Structure</title>\n                        <statement>\n                            <p>This is an example of an example with a bit more structure.  Specifically, the example has a <c>title</c>, as usual, but then has a <c>statement</c>, which is separate from the <c>solution</c>.  Why did we implement an example in two ways?</p>\n                        </statement>\n                        <solution>\n                            <p>Authors asked for it and it seemed a very natural thing to do, even if we only had an unstructured version for a long time.</p>\n                        </solution>\n                    </example>\n\n                    <question xml:id=\"sample-question\">\n                        <title>An Example of a Question</title>\n                        <statement>\n                            <p>Any kind of question can be marked as such with <tag>question</tag>.  Or similarly, as a <tag>problem</tag>.  They behave identically to <c>example</c>s, such as the one preceding and are numbered along with theorems, examples. etc.</p>\n                        </statement>\n                        <solution>\n                            <p>You can have a solution. Or several, even if you don't ask a question.</p>\n                        </solution>\n                        <solution>\n                            <p>See?</p>\n                        </solution>\n                    </question>\n\n                    <exercise xml:id=\"inline-exercise\">\n                        <title>An Inline Exercise</title>\n\n                        <statement>\n                            <p>There are lots of exercises in this sample article, but mostly they are in special exercise sections.  Sometimes you just want to sprinkle some exercises through the narrative.  We call these <term>inline exercises</term>, in contrast to <term>divisional exercises</term>.  The inline exercises look a bit more like a theorem or definition, with titles and fully-qualified numbers.</p>\n\n                            <p>These may also have hints, answers and solutions.</p>\n                        </statement>\n                        <hint>\n                            <p>A good hint.</p>\n                        </hint>\n                        <answer>\n                            <p>42.</p>\n                        </answer>\n                        <solution>\n                            <p>If your exercise feels like proving a theorem, then you might want to make some comments, but also clearly delineate which part of the solution is a the complete proof.</p>\n                            <proof>\n                                <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lorem diam, convallis in nulla sed, accumsan fermentum urna. Pellentesque aliquet leo elit, ut consequat nunc dapibus ac. Sed lobortis leo tincidunt, vulputate nunc at, ultricies leo. Vivamus purus diam, tristique laoreet purus eget, mollis gravida sapien. Nunc vulputate nisl ac mauris hendrerit cursus. Sed vel molestie velit. Suspendisse sem sem, elementum at vehicula id, volutpat ac mi. Nullam ullamcorper fringilla purus in accumsan. Mauris at nunc accumsan orci dictum vulputate id id augue. Suspendisse at dignissim elit, non euismod nunc. Aliquam faucibus magna ac molestie semper. Aliquam hendrerit sem sit amet metus congue tempor. Donec laoreet laoreet metus, id interdum purus mattis vulputate. Proin condimentum vitae erat varius mollis. Donec venenatis libero sed turpis pretium tempor.</p>\n\n                                <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra. Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                            </proof>\n                        </solution>\n                        <!-- private hint in private solutions file -->\n                        <!-- two private solutions in private solutions file -->\n\n                    </exercise>\n\n                    <example xml:id=\"example-math-title\">\n                        <title>An Example of with <m>\\frac12</m> math formula <m>\\displaystyle{\\int e^x \\, dx}</m> in the title</title>\n                        <statement>\n                            <p>\n                               Just for testing math in knowls,\n                               and also extra whitespace in a <tag>p</tag>.\n                            </p>\n                        </statement>\n                    </example>\n\n                    <p>There are many different blocks you can employ, and they mostly behave the same way.  A <tag>project</tag><idx><h>project</h></idx> is very similar to a <tag>question</tag><idx><h>question</h></idx> or <tag>problem</tag><idx><h>problem</h></idx></p>\n\n                    <project>\n                        <title>Start Exploring <pretext/></title>\n\n                        <p>You could grab the <c>minimal.xml</c> file from the <c>examples/minimal</c> directory and experiment with that.</p>\n\n                        <p>Projects get their own independent numbering scheme, since they may be central to your textbook, workbook, or lab manual.  If you process this sample article with level for project numbering set to <c>0</c> then you will get consecutive numbers from the beginning of your book, starting with 1.</p>\n                    </project>\n\n\n                    <exploration>\n                        <title>Exploring Explorations</title>\n\n                        <statement>\n                            <p>This is an <tag>exploration</tag>.<idx><h>exploration</h></idx>  Other similar possibilities are <tag>project</tag><idx><h>project</h></idx>, <tag>activity</tag><idx><h>activity</h></idx>, <tag>task</tag><idx><h>task</h></idx>, and <tag>investigation</tag><idx><h>investigation</h></idx>.</p>\n\n                            <p>Note that projects, activities, explorations, tasks and investigations <em>share</em> the independent numbering scheme, so it is really only intended you use one of these.  If you want a variant of the name (<eg/> <q>Directed Activity</q>) you can use the <tag>rename</tag><idx><h>rename an environment</h></idx> facility (<xref ref=\"rename-facility\" text=\"type-global\"/>).</p>\n                        </statement>\n\n                        <solution>\n                            <p>This is a <q>solution</q> to the exploration.  In practice, you might choose to not make this visible for students, but instead include it as part of some guidance you might provide to instructors (<eg/> an <pubtitle>Instructor's Manual</pubtitle>).</p>\n                        </solution>\n                    </exploration>\n\n                    <activity xml:id=\"activity-with-hint-answer-solution\">\n                        <title>Hints, Answers, Solutions</title>\n\n                        <prelude>\n                            <p>This is quite the activity upcoming.  This is a <c>prelude</c> authored within the <c>activity</c> element, but visually just prior.</p>\n                        </prelude>\n\n                        <statement>\n                            <p>Another variant of these project-like items is to possibly include a <tag>hint</tag> and an <tag>answer</tag> before the <tag>solution</tag>.</p>\n                        </statement>\n\n                        <hint>\n                            <p>Just a little help.</p>\n                        </hint>\n\n                        <answer>\n                            <p>The result, but no help in getting there.</p>\n                        </answer>\n\n                        <solution>\n                            <p>Everything to get it all done, in detail.</p>\n                        </solution>\n\n                        <postlude>\n                            <p>This was quite the activity just now.  This is a <c>postlude</c> authored within the <c>activity</c> element, but visually just after.</p>\n                        </postlude>\n                    </activity>\n\n                    <note xml:id=\"note-remark\">\n                        <title>A Note on Remarks</title>\n\n                        <p><tag>remark</tag>, <tag>convention</tag>, <tag>note</tag>, <tag>observation</tag> and <tag>warning</tag> are designed to hold very simple contents, with no additional structure (no proofs, no solutions, <etc/>).</p>\n\n                        <p>But they do carry a title and a number, can be the target of a cross-reference, and may be optionally knowlized in HTML with the <c>html.knowl.remark</c> processing switch.</p>\n\n                        <p>And distinctly different from a <tag>note</tag> in a <tag>biblio</tag><fn>A gratuitous footnote to test prior bug confusing this with a <tag>note</tag> in a <tag>biblio</tag>.</fn>.</p>\n                    </note>\n\n                    <aside xml:id=\"an-aside\">\n                        <title>An Aside with a <em>Formatted</em> Title</title>\n                        <idx>aside</idx>\n\n                        <p>An <tag>aside</tag> is similar to a remark, but is not as critical to the narrative.  It is not numbered, and so requires a title.  It can be the target of a cross-reference.  They are meant to be short, and so are not knowlized at their first appearance.  If the content is appropriate, these can be marked as <tag>historical</tag> or <tag>biographical</tag>, though longer items should use subdivisions (<eg/> sections, subsections) instead.</p>\n                    </aside>\n\n                    <p>An <tag>exercise</tag> can be structured with <tag>task</tag>.</p>\n\n                    <exercise xml:id=\"exercise-structured\">\n                        <title>A very structured exercise</title>\n\n                        <introduction>\n                            <p>This is an over-arching introduction to the whole exercise.  We follow with some tasks.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </introduction>\n\n                        <task>\n                            <title>A super-simple task</title>\n                            <p>This first task is very simple, just a paragraph.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </task>\n\n                        <task>\n                            <p>Now three paragraphs.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </task>\n\n                        <task>\n                            <title>A title of a task that has a subtask with an <tag>answer</tag> for the Solutions</title>\n                            <introduction>\n                                <p>This second task is further divided by more tasks.  This is its introduction.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </introduction>\n                            <task>\n                                <title>A task with a title and an <tag>answer</tag> for the Solutions</title>\n                                <statement>\n                                    <p>A really simple subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    <p>A short paragraph, before an answer.</p>\n                                </statement>\n                                <answer>\n                                    <p>With a proof.</p>\n                                    <proof>\n                                        <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    </proof>\n                                    <p>And a bit more to say.</p>\n                                </answer>\n                            </task>\n                            <task>\n                                <statement>\n                                    <p>A subtask with an answer.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </statement>\n                                <answer>\n                                    <p>Right!  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </answer>\n                            </task>\n                            <task>\n                                <introduction>\n                                    <p>Three simple sub-sub-tasks.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </introduction>\n                                <task>\n                                    <p>First subsubtask.  Short paragraph.</p>\n                                </task>\n                                <task>\n                                    <title>A second three-deep subsubtask!</title>\n                                    <p>Second subsubtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </task>\n                                <task>\n                                    <p>Third subsubtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    <p>In interdum suscipit ullamcorper</p>\n                                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </task>\n                                <conclusion>\n                                    <p>The conclusion of the structured subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </conclusion>\n                            </task>\n                            <task>\n                                <p>A simple task as the last subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </task>\n                            <conclusion>\n                                <p>This concludes our structured second task.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </conclusion>\n                        </task>\n\n                        <task>\n                            <statement>\n                                <p>This third top-level task is intermediate in complexity, you are reading the <c>statement</c>, which is followed by more items. In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </statement>\n                            <hint>\n                                <p>One hint.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </hint>\n                            <answer>\n                                <p>First answer.  In interdum suscipit ullamcorper.</p>\n                            </answer>\n                            <answer>\n                                <p>Second answer.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </answer>\n                            <solution>\n                                <p>At last, the solution.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </solution>\n                        </task>\n\n                        <conclusion>\n                            <p>This is a conclusion where you could summarize the exercise.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </conclusion>\n                    </exercise>\n\n                    <p>The following <tag>project</tag> is nearly identical to the preceding <tag>exercise</tag>.</p>\n\n                    <project xml:id=\"project-structured\">\n                        <title>A very structured project</title>\n\n                        <prelude>\n                            <p>The next block is a project, demonstrating the use of the <c>task</c> element to structure its parts.  You are reading the <c>prelude</c> now.  The project has lots of nonsense words, so we can test spacing the nested items.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </prelude>\n\n                        <introduction>\n                            <p>This is an over-arching introduction to the whole project.  We follow with some tasks.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </introduction>\n\n                        <task>\n                            <p>This first task is very simple, just a paragraph.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </task>\n\n                        <task>\n                            <p>Now three paragraphs.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </task>\n\n                        <task>\n                            <introduction>\n                                <p>This second task is further divided by more tasks.  This is its introduction.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </introduction>\n                            <task>\n                                <statement>\n                                    <p>A really simple subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    <p>A short paragraph, before an answer.</p>\n                                </statement>\n                                <answer>\n                                    <p>With a proof.</p>\n                                    <proof>\n                                        <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    </proof>\n                                    <p>And a bit more to say.</p>\n                                </answer>\n                            </task>\n                            <task>\n                                <statement>\n                                    <p>A subtask with an answer.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </statement>\n                                <answer>\n                                    <p>Right!  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </answer>\n                            </task>\n                            <task xml:id=\"project-task-level-two\">\n                                <introduction>\n                                    <p>Two simple sub-sub-tasks.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </introduction>\n                                <task>\n                                    <p>First subsubtask.  Short paragraph.</p>\n                                </task>\n                                <task>\n                                    <p>Second subsubtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </task>\n                                <!-- This task is uded to test private solutions, so it must    -->\n                                <!-- have the structure necessary to have an \"answer\" added in, -->\n                                <!-- thus the \"statement\" is necessary                          -->\n                                <task xml:id=\"deep-terminal-task\">\n                                    <statement>\n                                        <p>Third subsubtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                        <p>In interdum suscipit ullamcorper</p>\n                                        <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                    </statement>\n                                </task>\n                                <conclusion>\n                                    <p>The conclusion of the structured subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                </conclusion>\n                            </task>\n                            <task>\n                                <p>A simple task as the last subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </task>\n                            <conclusion>\n                                <p>This concludes our structured second task.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </conclusion>\n                        </task>\n\n                        <task>\n                            <statement>\n                                <p>This third top-level task is intermediate in complexity, you are reading the <c>statement</c>, which is followed by more items. In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </statement>\n                            <hint>\n                                <p>One hint.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </hint>\n                            <answer>\n                                <p>First answer.  In interdum suscipit ullamcorper.</p>\n                            </answer>\n                            <answer>\n                                <p>Second answer.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </answer>\n                            <solution>\n                                <p>At last, the solution.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                            </solution>\n                        </task>\n\n                        <conclusion>\n                            <p>This is a conclusion where you could summarize the project.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </conclusion>\n\n                        <postlude>\n                            <p>This postlude appears visually outside the project, but is authored within, to make clear its attachment to the project.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </postlude>\n                    </project>\n\n                    <example xml:id=\"example-structured-with-task\">\n                        <title>Notation mathématique 2</title>\n                        <prelude>\n                            <p>The following <tag>example</tag>, from Elise Desgreniers, is structured with <tag>task</tag>.</p>\n                        </prelude>\n                        <introduction>\n                            <p>Écrivez chacun des exemples suivants avec les conditions pertinentes.</p>\n                        </introduction>\n                        <task>\n                            <statement>\n                                <p>Soit l'ensemble <m>A=\\lbrace 1,2,3,4,5\\rbrace</m>.</p>\n                                <p>On constate que cet ensemble contient uniquement des entiers positifs allant de 1 à 5.</p>\n                                <p>Donc, on peut écrire <m>A=\\lbrace x\\mid x\\in\\mathbb{N}\\text{ et } 1\\leq x\\leq 5\\rbrace</m>.</p>\n                            </statement>\n                        </task>\n                        <task>\n                            <statement>\n                                <p><m>\\{3,6,9,12,15,\\ldots,27,30\\}</m></p>\n                            </statement>\n                            <hint>\n                                <p>Ce sont des multiples de 3.</p>\n                            </hint>\n                            <answer>\n                                <p><m>\\{x\\mid x=3y \\text{ et } 1\\leq y\\leq 10 \\text{ et } y\\in\\mathbb{N}\\}</m></p>\n                            </answer>\n                        </task>\n                        <task>\n                            <statement>\n                                <p><m>\\{1,3,5,7,9,11,\\ldots\\}</m></p>\n                            </statement>\n                            <hint>\n                                <p>Ce sont des nombres impairs.</p>\n                            </hint>\n                            <answer>\n                                <p><m>\\{x\\mid x\\mod 2=1 \\text{ et } x\\in\\mathbb{N}\\}</m></p>\n                            </answer>\n                        </task>\n                        <task>\n                            <statement>\n                                <p><m>\\{2,3,5,7,11,13,17,19,23,\\ldots\\}</m></p>\n                            </statement>\n                            <hint>\n                                <p>Ce sont des nombres premiers.</p>\n                            </hint>\n                            <answer>\n                                <p><m>\\{x\\mid x\\text{ est un nombre premier positif}\\}</m></p>\n                            </answer>\n                        </task>\n                        <task>\n                            <statement>\n                                <p><m>\\{1,4,9,16,25,36,\\ldots,961\\}</m></p>\n                            </statement>\n                            <hint>\n                                <p>Ce sont des carrés parfaits.</p>\n                            </hint>\n                            <answer>\n                                <p><m>\\{x\\mid x=y^2 \\text{ et } 1\\leq y\\leq 31\\text{ et } y\\in\\mathbb{N}\\}</m></p>\n                            </answer>\n                        </task>\n                        <task>\n                            <statement>\n                                <p><m>\\{1,8,27,64,125,\\ldots\\}</m></p>\n                            </statement>\n                            <hint>\n                                <p>Ce sont des cubes parfaits.</p>\n                            </hint>\n                            <answer>\n                                <p><m>\\{x\\mid x=y^3 \\text{ et } y\\in\\mathbb{N^*}\\}</m></p>\n                            </answer>\n                        </task>\n                    </example>\n\n                    <p>Notes or examples related to computation or technology can go in blocks of the same name.</p>\n\n                    <technology>\n                        <title>Sample Use of Sage</title>\n\n                        <p>This would be a good place to talk about Sage, including a cell or two.</p>\n\n                        <sage>\n                            <input>diff(x^4, x)</input>\n                            <output>4*x^3</output>\n                        </sage>\n\n                        <p>But you might want to describe how to use some other calculator, or maybe some numerical method.</p>\n                    </technology>\n\n                    <paragraphs>\n                        <title>A <tag>paragraphs</tag> with a <tag>project</tag> with an <tag>answer</tag></title>\n\n                        <p>The solutions to a project (and similar) once did not migrate to the automatically-generated solutions.</p>\n\n                        <project>\n                            <statement>\n                                <p>A simple project, no tasks, just an answer.</p>\n                            </statement>\n                            <answer>\n                                <p>Here's the answer we are looking for.</p>\n                            </answer>\n                        </project>\n                    </paragraphs>\n                </subsubsection>\n\n                <exercises xml:id=\"exercises-subsection-solo\" label=\"exercises-subsection-solo\">\n                    <exercise xml:id=\"exercise-test-number\">\n                        <statement>\n                            <p>This is an exercise in an <q>Exercises</q> subdivision at the level of a subsubsection.  There is no question other than if the numbering is appropriate.  Here is a self-referential link: Exercise<nbsp/><xref ref=\"exercise-test-number\"/>.</p>\n\n                            <p>The subsubsection has no title in the source, so one is provided automatically, and will adjust according to the language of the document.</p>\n                        </statement>\n                        <solution>\n                            <p>This solution will migrate to a list of solutions in the backmatter.  We include a <c>sidebyside</c> as a test.</p>\n                            <sidebyside width=\"30%\">\n                                <p>This is a skinny paragraph which should be just 30% of the width.</p>\n                                <p>And another skinny paragraph which should also be just 30% of the width.</p>\n                            </sidebyside>\n                        </solution>\n                    </exercise>\n\n                    <exercise xml:id=\"exercise-with-tasks\">\n                        <introduction>\n                            <p>An <tag>exercise</tag> can be structured with parts, called <tag>task</tag>.  This is the <tag>introduction</tag>.</p>\n                        </introduction>\n                        <task>\n                            <p>Do this.</p>\n                        </task>\n                        <task>\n                            <p>And the other thing.</p>\n                        </task>\n                    </exercise>\n                </exercises>\n\n                <reading-questions>\n                    <introduction>\n                        <idx>reading questions</idx>\n                        <p>A set of reading questions may have an <tag>introduction</tag>, perhaps for preparatory explanation.</p>\n                        <p>If a student has logged in to the HTML version,\n                           then they can answer the reading questions directly in the book.\n                           Inline math LaTeX can be entered using\n                           <c>$</c>...<c>$</c> or <c>\\(</c>...<c>\\)</c> delimiters,\n                           and inline AsciiMath using backticks <c>`</c>...<c>`</c> as delimiters.\n                           Here are some `gratuitous backticks` to check that AsciiMath is only\n                           active in the answers to reading questions.\n                        </p>\n                    </introduction>\n\n                    <exercise xml:id=\"first-reading\">\n                      <p>\n                        This is a <term>reading question</term> that you might have a student answer prior to a class session,\n                        based on reading part of the book.\n                        A quick glance before class can help you tailor class time to the specific needs of your students.\n                        The perfect reading question will reveal whether the student has read and understood the material,\n                        and will be difficult to answer if they have not.\n                        What do you think of that?\n                      </p>\n                    </exercise>\n\n                    <exercise>\n                      <p>\n                        And a second one, with a cross-reference to the first,\n                        as a check on numbering:\n                        <xref ref=\"first-reading\" text=\"type-global\"/>.\n                        Reading questions are allowed to have answers,\n                        but providing answers misses the point of a reading question,\n                        and the answer knowl interacts poorly with the mechanism used to\n                        allow students to answer directly in the book.\n                        Do you think the schema should ban answers to reading questions?\n                      </p>\n                    </exercise>\n\n                    <conclusion>\n                        <p>And for symmetry, a <tag>conclusion</tag>.</p>\n                    </conclusion>\n                </reading-questions>\n\n                <glossary xml:id=\"glossary-specialized\">\n                    <idx>glossary</idx>\n                    <headnote>\n                        <p>A glossary may have a <tag>headnote</tag>, perhaps with some explanation.  This glossary is a specialized division within a section.  Placement in the back matter is another option, see the <xref ref=\"glossary-backmatter\" text=\"title\"/>.</p>\n                    </headnote>\n\n                    <gi>\n                        <title>bar</title>\n                        <p>A part of <term>foobar</term>.  See <xref ref=\"foobar-defined\" text=\"title\"/>.</p>\n                    </gi>\n\n                    <gi xml:id=\"foobar-defined\">\n                        <title>foobar</title>\n                        <p>A synonym for the acronym <acro>FUBAR</acro>.</p>\n                    </gi>\n                </glossary>\n\n                <solutions xml:id=\"solutions-subsection\" inline=\"hint solution answer\" divisional=\"hint solution answer\" project=\"hint solution answer\">\n                    <title>Solutions for This Subsection</title>\n                    <idx><h>solutions</h><h>for a division</h></idx>\n\n                    <introduction>\n                        <p>This is an introduction, where you might explain that this division of this subsection contains various hints, answers, solutions of inline exercises, divisional exercises, and/or project-like blocks.  See the source to see just how this solutions division was built.</p>\n                    </introduction>\n\n                    <!-- content will happen here automatically -->\n\n                    <conclusion>\n                        <p>And a conclusion to this solutions division, which may not be readily apparent as distinct from the final division's worth of solutions, but since it is not prefixed with a number, it may be different enough.</p>\n                    </conclusion>\n                </solutions>\n\n            </subsection>\n\n            <subsection>\n                <title>Theorem-Like Environments</title>\n\n                <p>There are a variety of pre-defined environments in <pretext/>.  All take a title, and must have a statement.  Some have proofs (theorems, corollaries, <etc/>), while some do not have proofs (conjectures, axioms, principles).</p>\n\n                <principle xml:id=\"principle-principle\">\n                    <title>The Title Principle</title>\n\n                    <statement>\n                        <p>It is a fundamental principle that many elements can have a title.  Try it and see. If you get better formatting, then it is being recognized.  If it looks very plain, check the documentation and perhaps make a feature request.</p>\n                    </statement>\n                </principle>\n\n                <p>More precisely, <tag>theorem</tag>, <tag>corollary</tag>, <tag>lemma</tag>, <tag>algorithm</tag>, <tag>proposition</tag>, <tag>claim</tag>, <tag>fact</tag>, and <tag>identity</tag>, all behave exactly the same, requiring a statement (as a sequence of paragraphs) followed by an optional proof, and may have an optional title.  The elements <tag>axiom</tag>, <tag>conjecture</tag>, <tag>principle</tag>, <tag>heuristic</tag>, <tag>hypothesis</tag>, and <tag>assumption</tag> are functionally the same, barring a proof (since they would never have one!).  Definitions are an exception, as it is natural to place <tag>notation</tag> within<mdash/>see the source for Definition<nbsp/><xref ref=\"definition-indefinite-integral\"/> for an example.</p>\n            </subsection>\n\n            <subsection>\n                <title>Linking Sage Cells</title>\n                <idx><h>Sage cells</h><h>linking</h></idx>\n\n                <p>Sage cells share their results on a per-webpage basis, or a per-knowl basis, so if you move to a new chapter, section, or subsection that happens to be on another webpage, your Sage computations are gone and you start fresh.  But maybe you need some results from elsewhere.  As an author, you can make an exact copy of a cell in another location by placing the code in an external file, which is pure text, freed from any need to format for XML processing.  So, in particular, there is no need to escape ampersands and angle brackets, nor is there employment of the <c>CDATA</c> mechanism.  But the real value is that there is just one version to edit, and any changes will be reflected in both copies.  We demonstrate this in the sample book, since it has the <c>xinclude</c> mechanism in place.  In the chapter on groups, find the section on Sage and then find the discussion of subgroups, and you will find an example of two identical Sage cells produced from one source file.</p>\n\n                <p>You can also specify certain cells to be auto-evaluated, by setting the <attr>auto-evaluate</attr> attribute to <c>yes</c>.  The resulting cell will not have a button for evaluation (so editing it would be pointless).  See the source of this sample article for the two examples below.</p>\n\n                <p>2023-08-17: support just now is for the use case of a small portion of code, not a huge library of helper routines.</p>\n\n                <p>Two cells with the default language <c>sage</c>.</p>\n\n                <sage auto-evaluate=\"yes\">\n                    <input>k = 404</input>\n                </sage>\n\n                <sage>\n                    <input>2*k</input>\n                </sage>\n\n                <p>Two cells with language <c>python</c>.</p>\n\n                <sage language=\"python\" auto-evaluate=\"yes\">\n                    <input>\n                        k = 4112\n                        print(\"Assigned an initial value to the variable k\")\n                    </input>\n                </sage>\n\n                <sage language=\"python\">\n                    <input>\n                        k = 2*k\n                        print(k)\n                    </input>\n                </sage>\n\n            </subsection>\n\n            <subsection>\n                <title>Hierarchy</title>\n\n                <paragraphs xml:id=\"hierarchy-structure\">\n                    <title>Structure</title>\n\n                    <p>This section of this article has subsections and subsubsections.  In a book you can have chapters enclosing multiple sections.  There is one finer subdivision, it is achieved with the <c>paragraphs</c> element.</p>\n\n                    <p>It is basically a sequence of paragraphs, where the first one gets an inline title.  You are reading the second, and final, paragraph of one right now. It is useful for organizing very short documents, where numbered subdivisions might be overkill.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title>A Second Paragraphs</title>\n                    <p>This is a second consecutive <c>paragraphs</c> element, so should seem related to its title, but distinct from the two paragraphs in the grouping with the title <q>Structure</q> immediately prior.</p>\n                </paragraphs>\n\n\n                <assemblage xml:id=\"assemblage-basics\">\n                    <title>Assemblages: Collections and Summaries</title>\n\n                    <p>An <tag>assemblage</tag> is a collection, or summary, that does not have much structure to it.  So you are limited to paragraphs and friends (<c>p</c>, <c>blockquote</c>, <c>pre</c>) and side-by-sides that do not contain captioned items (<c>sidebyside</c>, <c>sbsgroup</c>).  The intent is that contents are not numbered, so cannot be cross-referenced individually, and so also do not become knowls.  You may place <tag>image</tag>, <tag>tabular</tag>, and <tag>program</tag> inside a <tag>sidebyside</tag>, in addition to other objects that do not have captions.  Note that <c>p</c> may by extension contain lists (<c>ol</c>, <c>ul</c>, <c>dl</c>).  Despite limited structure, the presentation should draw attention to it, because the contents should be seen as more important in some way.  It should be <q>highlighted</q> in some manner.  If you need to connect the entire assemblage with material elsewhere, you can do that with the usual <c>xref/xml:id</c> mechanism.<idx><h>assemblage</h></idx></p>\n\n                    <p>What have we seen so far in this (disorganized) sample?<ul>\n                        <li><p>Theorems, definitions and corollaries. (<xref ref=\"section-fundamental-theorem\" text=\"type-global\"/>)</p></li>\n                        <li><p>Sage cells, including with R. (<xref ref=\"section-sage-cells\" text=\"type-global\"/>)</p></li>\n                        <li><p>Lots of document structure, like introductions and conclusions (next). (<xref ref=\"interesting-corollary\" text=\"type-global\"/>)</p></li>\n                    </ul></p>\n\n                    <p>A sample table, as a <c>tabular</c> inside a <c>sidebyside</c> with no caption, follows.</p>\n\n                    <tabular>\n                        <row><cell>A</cell><cell>B</cell><cell>C</cell></row>\n                        <row><cell>Uno</cell><cell>Dos</cell><cell>Tres</cell></row>\n                    </tabular>\n                </assemblage>\n\n                <assemblage>\n                    <p>This is a small <c>assemblage</c> with no title, simply to make sure the surrounding box behaves properly, especially for <latex/> output.</p>\n                </assemblage>\n\n                <assemblage>\n                  <title>Assemblages containing <m>\\mu \\forall \\tau \\mathbb{H} = \\emptyset \\kappa</m></title>\n\n                  <p>It is acceptable for an assemblage to contain mathematical content, even in its title.</p>\n                </assemblage>\n            </subsection>\n\n            <subsection xml:id=\"subsection-intro-conclude\">\n                <title>Introductions and Conclusions</title>\n\n                <introduction>\n                    <title>An Introductory Introduction</title>\n\n                    <p>Any subdivision may have a sequence of paragraphs within an <tag>introduction</tag> that precedes subsequent further subdivisions.  You are reading one now.  They are always leaves of the document structure, so are rendered on some pages that reference the following subdivisions.</p>\n\n                    <p>An introduction or conclusion is an extremely restrictive container with simple presentation.  A title is optional (and probably not advisable).  Content is meant to be short and unstructured, in particular, nothing that can be numbered is allowed.  If this feels <em>too</em> restrictive, then place your content in an initial numbered subdivision and perhaps title it <q>Introduction</q>.  Or make your entire subdivion unstructured and place whatever you want into it.</p>\n\n                    <p>This ends this introduction to introductions.</p>\n                </introduction>\n\n                <subsubsection>\n                    <title>Test One</title>\n\n                    <p>An intervening subsubsection just after an introduction.</p>\n                </subsubsection>\n\n                <subsubsection>\n                    <title>Test Two</title>\n\n                    <p>An intervening subsection section which contains an <tag>exercises</tag> division which must be at the level of a Subsubsubsection.</p>\n                    <exercise>\n                        <statement>\n                            <p>An inline exercise to examine any clash with divisional exercises below.</p>\n                        </statement>\n                        <answer>\n                            <p>An answer so there is something to appear in a <tag>solutions</tag>.</p>\n                        </answer>\n                    </exercise>\n\n                    <reading-questions>\n                        <title>What Did You Learn?</title>\n                        <exercise>\n                            <statement>\n                                <p>A mock exercise to appease validation.</p>\n                            </statement>\n                            <answer>\n                                <p>An answer so there is something to appear in a <tag>solutions</tag>.</p>\n                            </answer>\n                        </exercise>\n                        <exercise>\n                            <statement>\n                                <p>And a second to help with formatting the division heading.</p>\n                            </statement>\n                        </exercise>\n                    </reading-questions>\n\n                    <exercises>\n                        <exercise>\n                            <statement>\n                                <p>A mock exercise to appease validation.</p>\n                            </statement>\n                            <answer>\n                                <p>An answer so there is something to appear in a <tag>solutions</tag>.</p>\n                            </answer>\n                        </exercise>\n                        <exercise>\n                            <statement>\n                                <p>And a second to help with formatting the division heading.</p>\n                            </statement>\n                        </exercise>\n                    </exercises>\n                </subsubsection>\n\n                <subsubsection>\n                    <title>Test Three</title>\n\n                    <p>An intervening subsubsection just before a conclusion.</p>\n                </subsubsection>\n\n                <conclusion>\n                    <p>Entirely analogous to introductions are conclusions.  Any subdivision may have a sequence of paragraphs within a <tag>conclusion</tag> that follows previous further subdivisions.  You are reading one now.  They are always leaves of the document structure, so are rendered on some pages that reference the preceding subdivisions.</p>\n\n                   <p>This concludes this conclusion (and this subsection and this section).</p>\n                </conclusion>\n            </subsection>\n\n            <subsection xml:id=\"subsection-paragraph-markup\">\n                <title>Some Paragraph-Level Markup</title>\n\n                <p>Text within a paragraph may be <em>emphasized</em><idx><h>em</h><h>emphasis</h></idx><idx><h>styling words</h><h>em</h></idx><idx><h>styling words</h><h>emphasis</h></idx> with <tag>em</tag> or if you want to take it to the next level you can identify the text as an <alert>alert</alert><idx>alert</idx><idx><h>styling words</h><h>alert</h></idx> with <tag>alert</tag>.</p>\n\n                <p>Similarly, within a paragraph, you can identify edits between versions as <insert>inserted text that has been added</insert><idx><h>styling words</h><h>insert</h></idx> with <tag>insert</tag> or as <delete>deleted text that has been removed</delete><idx><h>styling words</h><h>delete</h></idx> with <tag>delete</tag>.  Note that these identified edits are slightly different than <stale>stale text that you want to retain, but which is no longer relevant</stale><idx><h>styling words</h><h>stale</h></idx>, which is accomplished with <tag>stale</tag>.  The original request for stale text came from an instructor with an online list of student topics for presentations, and as students claimed topics they were marked as no longer available for other students.</p>\n\n                <p>If you need a <q>fill-in blank</q>, like this <fillin/>, it can be obtained with an empty <tag>fillin</tag> element that defaults to roughly a 10-character width.  You can use the <attr>characters</attr> attribute to make the rule longer or shorter, such as a 40-character blank: <fillin characters=\"40\"/>.  The character count is approximate, based on typical character widths within a proportional font carrying English language text.  Adjust to suit, or request a language-specific adjustment if it is critical.</p>\n\n                <p>This paragraph is intended to make a <tag>fillin</tag> appear right at the start of <fillin characters=\"20\"/> the second line  in print and then the next paragraph has nothing but a <tag>fillin</tag>. Both are for testing purposes.</p>\n\n                <p><fillin characters=\"5\"/></p>\n\n                <p>The following are <tag>fillin</tag> with <attr>rows</attr> and/or <attr>cols</attr> attributes (at least one of which is greater than 1): <fillin rows=\"2\"/>, <fillin cols=\"3\"/>, <fillin rows=\"2\" cols=\"3\"/>.</p>\n\n                <p>Long after we started this mess, we added <pretext/> tags to mark up tags and attributes.  The elements are: <tag>tag</tag>, <tag>tage</tag>, <tag>attr</tag>.  Examples of how these render are (respectively): <tag>section</tag>, <tage>hash</tage>, <attr>width</attr>.  Perhaps this document will make greater use of these tags.</p>\n\n                <p>We supply two provisional cross-references for testing purposes only: <xref provisional=\"a first incomplete cross-reference\"/>, <xref provisional=\"a second incomplete cross-reference\"/>.</p>\n\n            </subsection>\n\n            <conclusion>\n                <p>A conclusion here, which we fill with some numbering tests.</p>\n\n                <p>This is a cross-reference to one of the outcomes, forced to use the <c>type-global</c> form of the text.  It should describe the outcome as belonging to the <em>section</em> (rather than the <em>outcomes</em>), since outcomes are one-per-subdivision and are numbered based upon the containing division: <xref ref=\"outcome-structure\" text=\"phrase-global\"/>.  For comparison this is the (forced) <c>type-global</c> cross-reference: <xref ref=\"outcome-structure\" text=\"type-global\"/>.</p>\n            </conclusion>\n\n            <outcomes xml:id=\"outcomes-structures\">\n                <title>Fundamental Structures, Revisited</title>\n\n                <introduction>\n                    <p>This is a <tag>outcomes</tag> element you are reading, and this is its introduction.  This early section has really grown and we have tried to accomplish many things.  Not all of them are listed here.</p>\n                </introduction>\n\n                <ol>\n                    <li>Display various <q>blocks</q>, fundamental units of the flow.</li>\n                    <li xml:id=\"outcome-structure\">More, and this is what the cross-references above are pointing to.</li>\n                    <li>Evermore.</li>\n                </ol>\n\n                <conclusion>\n                    <p>This concludes the (incomplete) outcomes for this section, so now we can carry-on to the next section.</p>\n                </conclusion>\n            </outcomes>\n        </section>\n\n        <!--\n        The section below illustrates ordered and unordered lists,\n        with the same syntax as HTML.  They can be nested.\n        Basic raster images are supported, inside of figures.\n        Note that the caption is rendered below the graphic,\n        even though it is given first in the source.\n        Support for TikZ graphics is available for LaTeX output,\n        and perhaps figures will be automatically generated from Sage code.\n        The scale for graphics is points in LaTeX, pixels\n        in HTML, which are similar, but not identical.\n        -->\n\n        <section label=\"section-facts-figures\">\n            <title>Some Facts and Figures</title>\n            <idx>footnotes</idx>\n\n            <!-- This is not implemented\n            This Sage code will be (a) hidden and (b) automatically executed\n            <sage type=\"init\">\n                <input>\n                def square(m):\n                    return m*m\n\n                aaa= 78\n                print aaa\n                </input>\n            </sage>\n            -->\n\n            <p>Because of the Fundamental Theorem<fn>First test footnote</fn>, for every derivative we know, there is an antiderivative we might find useful.  Because of the Fundamental Theorem of Calculus<fn>Second test footnote</fn>, we recycle the <q><m>\\int</m></q> symbol as notation for an antiderivative.<ul cols=\"2\">\n                <li>\n                    <p>Derivatives<ol marker=\"(a)\">\n                        <li><m>\\frac{d}{dx}x^n = nx^{n-1}</m></li>\n                        <li><m>\\frac{d}{dx}e^x = e^x</m></li>\n                        <li><m>\\frac{d}{dx}\\cos(x) = -\\sin(x)</m></li>\n                    </ol></p>\n                </li>\n                <li><p>Antiderivatives<ol marker=\"i)\">\n                        <li><m>\\indefiniteintegral{x^n}{x} = \\displaystyle\\frac{x^{n-1}}{n+1}\\text{ if }n\\neq -1</m></li>\n                        <li><m>\\indefiniteintegral{e^x}{x} = e^x</m></li>\n                        <li><m>\\indefiniteintegral{\\sin(x)}{x} = -\\cos(x)</m></li>\n                    </ol></p>\n                </li>\n            </ul></p>\n\n            <remark>\n                <p>You can<fn>Third test footnote</fn> gain a greater understanding of derivatives by studying the graphs of functions with their derivatives.  Can<fn>Fourth test footnote</fn> you discern the derivative<ndash/>antiderivative<fn>Fifth test footnote</fn> relationship in Figure<nbsp/><xref ref=\"figure-function-derivative\"/>?</p>\n            </remark>\n\n            <!--\n            Sage Source;\n            f(x)=(x-3)*(x-1)*(x+2)\n            orig = plot( f(x), (x,-3,4), color='blue', thickness=3)\n            diff = f.derivative()\n            slope = plot(diff, (x,-3,4), color='red', thickness=3)\n            orig+slope\n            -->\n\n            <figure xml:id=\"figure-function-derivative\">\n                <caption>A function and its derivative</caption>\n                <image width=\"50%\" source=\"images/cubic-function.png\">\n                    <shortdescription>\n                        a third degree polynomial with a local max and a local min;\n                        its derivative is plotted on the same axes\n                    </shortdescription>\n                </image>\n            </figure>\n\n            <p>Lists<fn>Sixth test footnote</fn> can have multiple columns.  With <init>HTML</init> items displayed in row-major order (horizontally first) and<fn>Seventh test footnote</fn> with <latex/> items are displayed in column-major order (vertically first).  When one order, or the other, becomes workable in both variants, maybe we will be consistent in presentation.  (Note that with just one row, it makes no difference.)  We used it above for the two items<mdash/>derivatives and integrals<mdash/>where each item was a list of its own.  Here are two more examples, one with short snippets and lots of columns, the other with lots of text in paragraphs.<idx xml:id=\"index-start-multicolumn\" finish=\"index-finish-multicolumn\"><h>list</h><h>multicolumn</h></idx><ol cols=\"5\">\n                <li><p>Red</p></li>\n                <li><p>Blue</p></li>\n                <li><p>Green</p></li>\n                <li><p>Purple</p></li>\n                <li><p>Yellow</p></li>\n                <li><p>Black</p></li>\n                <li><p>Orange</p></li>\n                <li><p>Pink</p></li>\n                <li><p>Salmon<idx><h>strange colors</h></idx></p></li>\n                <li><p>Aqua</p></li>\n                <li><p>Cyan</p></li>\n                <li><p>Puce<idx><h>strange colors</h></idx></p></li>\n            </ol><ul cols=\"2\">\n                <li>\n                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lorem diam, convallis in nulla sed, accumsan fermentum urna. Pellentesque aliquet leo elit, ut consequat nunc dapibus ac. Sed lobortis leo tincidunt, vulputate nunc at, ultricies leo. Vivamus purus diam, tristique laoreet purus eget, mollis gravida sapien. Nunc vulputate nisl ac mauris hendrerit cursus. Sed vel molestie velit. Suspendisse sem sem, elementum at vehicula id, volutpat ac mi. Nullam ullamcorper fringilla purus in accumsan. Mauris at nunc accumsan orci dictum vulputate id id augue. Suspendisse at dignissim elit, non euismod nunc. Aliquam faucibus magna ac molestie semper. Aliquam hendrerit sem sit amet metus congue tempor. Donec laoreet laoreet metus, id interdum purus mattis vulputate. Proin condimentum vitae erat varius mollis. Donec venenatis libero sed turpis pretium tempor.</p>\n\n                    <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra. Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                </li>\n\n                <li>\n                    <p>Donec vestibulum auctor nisl. Nullam placerat interdum dui. Quisque lobortis scelerisque augue imperdiet placerat. Maecenas ultricies massa tempor, laoreet urna a, eleifend enim. Integer sed suscipit odio. Pellentesque non dapibus diam, eget tempus dui. Maecenas sollicitudin magna viverra, egestas velit nec, tristique sem. Cras iaculis mattis dui ac cursus. Integer volutpat, urna vel tempus convallis, erat nisi consectetur turpis, id varius dolor lorem vitae mauris. Phasellus erat orci, laoreet commodo gravida quis, congue in lacus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent at bibendum turpis. Pellentesque est nisl, dapibus at sagittis non, ultricies in nunc. Etiam ipsum arcu, porta sed feugiat eget, facilisis nec libero. Mauris tempor convallis felis.</p>\n\n                    <p>Cras iaculis sapien elit, at convallis ligula convallis nec. Duis ante tortor, euismod a libero vitae, ornare viverra purus. Pellentesque facilisis urna a velit volutpat, in malesuada tortor porttitor. Sed vehicula mauris id lectus dignissim, eget consectetur dui pellentesque. Sed vel quam molestie, euismod ligula ac, venenatis arcu. Fusce sit amet sapien non urna dignissim tempus in vitae metus. Aliquam arcu turpis, mattis non libero eu, lacinia feugiat turpis. Phasellus rhoncus lacinia lacus facilisis ullamcorper. Praesent hendrerit accumsan neque, eu dignissim est consequat sed. Nulla facilisi. Proin at mi scelerisque, scelerisque felis ut, tristique diam. Proin in leo in lorem porttitor varius. Praesent condimentum in dui sit amet blandit. In imperdiet blandit congue.</p>\n                </li>\n\n                <li>\n                    <p>Ut nec sem vitae ipsum interdum vestibulum sit amet sed velit. Aliquam tempor nibh vitae augue pulvinar, at ultricies urna commodo. Donec in porta lectus, ac sagittis felis. Vestibulum tincidunt quis metus facilisis luctus. In lobortis lacus vel ornare vehicula. Duis aliquet, ligula semper sodales adipiscing, augue nibh ornare ante, quis pulvinar justo mi eget mi. Mauris varius imperdiet vehicula. Duis dignissim magna quis velit mattis, in cursus lectus vehicula. Morbi quis tempus felis, ut gravida nisi.</p>\n\n                    <p>Vivamus eu commodo est, pretium fringilla dolor. Curabitur vel sollicitudin libero. Integer sit amet auctor felis. Maecenas sagittis erat at ante feugiat, in tincidunt ligula pretium. Integer eget auctor ipsum, quis volutpat felis. Morbi id dignissim eros. Suspendisse aliquet pulvinar lorem gravida egestas. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent nec massa dui. Suspendisse convallis lacus sit amet adipiscing varius. Suspendisse tempus diam vitae justo ornare, in condimentum metus pharetra. Curabitur sem dolor, auctor vitae sagittis vestibulum, posuere imperdiet metus. Etiam pretium lacus urna, vel auctor diam tincidunt non. Etiam viverra sodales iaculis.</p>\n                </li>\n\n                <li>\n                    <p>Sed varius leo urna. Phasellus tempus mollis ultricies. Curabitur non neque aliquet, facilisis tortor in, sodales dui. Donec hendrerit ultricies nulla mollis rhoncus. In vel lobortis est. Vestibulum consectetur lacus vel sem dignissim vestibulum. Etiam sed elementum ligula, vel congue turpis. Morbi nec diam mattis, venenatis eros et, elementum tellus. Integer sed orci ornare, elementum elit id, lacinia augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; In et libero id turpis pharetra faucibus. Integer consequat dignissim semper. Donec pretium magna at ullamcorper ultricies. Nam quis suscipit elit. Donec cursus tellus et venenatis feugiat. Mauris dictum molestie leo, vitae aliquet metus luctus vitae.</p>\n\n                    <p>Ut id iaculis leo. Sed nec vestibulum mi. Mauris est mauris, porta in nulla eget, bibendum luctus nisl. Praesent et posuere felis, molestie vehicula velit. Nulla a nunc venenatis, aliquam orci nec, congue felis. Vestibulum a dolor nisi. Morbi sed nisi nulla. Nam iaculis felis a enim blandit, at venenatis diam congue. Nulla augue diam, egestas eget fermentum nec, posuere eget risus. Praesent egestas nulla eros, eget accumsan augue euismod vel. Pellentesque pellentesque non erat vitae posuere. Curabitur lacus arcu, varius sed risus ut, ullamcorper tincidunt lorem. Sed et lacus dignissim, tincidunt nisl ac, porttitor sapien.</p>\n                </li>\n            </ul></p>\n\n            <!-- This is not implemented\n            <subsection>\n                <title>Automatically Defining Sage Code</title>\n\n                <p>There is a bit of Sage code in the source for this section, defined at the beginning.  It is both (a) hidden, and (b) automatically evaluated.  It's effect is to define a function <c>square()</c>, which  will square a number.  The next (visible) cell will demonstrate the effect.  This will work as along as the initialization code and it's use are on the same webpage (which will depend on how you decide to break up your document into pages).</p>\n\n                <sage>\n                    <input>square(13)</input>\n                    <output>169</output>\n                </sage>\n\n            </subsection>\n            -->\n\n        </section>\n\n        <!--\n        Displayed rows of equations format with\n        alignment or not.  The employment of the\n        amsmath align or gather environments depends\n        on the presence of ampersands, or not, respectively.\n        -->\n\n        <!-- There is intentionally no @xml:id nor @label on this division, -->\n        <!-- to include testing of the out-of-the-box experience            -->\n        <section>\n            <title>Some Advanced Ideas</title>\n\n            <!-- TODO: Move index-finish marker back once it is allowed other places -->\n\n            <p><idx xml:id=\"index-finish-multicolumn\" start=\"index-start-multicolumn\"/>The multi-row displayed mathematics in the proof of the Fundamental Theorem had equations aligned on the equals signs via the &amp; character.  Sometimes you don't want that.  Here is an example with some differential equations, with each equation centered and unnumbered,<md>\n                <mrow>{\\mathcal L}(y')(s) = s {\\mathcal L}(y)(s) - y(0) = s Y(s) - y(0)</mrow>\n                <mrow>{\\mathcal L}(y'')(s) = s^2 {\\mathcal L}(y)(s) - sy(0) - y'(0)= s^2 Y(s) - sy(0) - y'(0)</mrow>\n            </md>.\n            <notation>\n                <usage><m>\\rho</m></usage>\n                <description>this symbol could be used for lots of things, but we are just trying to make a super-long description to get it to wrap within the column where it belongs, which is sometimes set to a fixed width to accomodate really complicated explanations</description>\n            </notation>\n            <idx>rho, a test</idx>\n            Just prior to this sentence, in the middle of this paragraph, is an <tag>idx</tag> and a <tag>notation</tag>, adjacent, but separated by some whitespace in the authored source.  That insignificant whitespace will be removed akways, which will be a (slightly) noticeable improvement in the <latex/> output.  We test referencing notation here, placed <em>before</em> the sentence-ending period and right after some inline mathematics<mdash/>for <m>\\mathbb{Z}_n</m><notation><usage><m>\\mathbb{Z}_n</m></usage><description>(ring of) integers modulo <m>n</m></description></notation>.</p>\n\n            <p><latex/> has a device where you can interrupt a sequence of equations with a small amout of text and preserve the equation alignment on either side.  Here are two tests of that device, with aligned equations and non-aligned equations.  Study the source to see use and differences.  (The math does not make sense.)</p>\n\n            <p>Aligned and numbered first.<md number=\"yes\">\n                <mrow>{\\mathcal L}(y')(s)  &amp;= s {\\mathcal L}(y)(s) - y(0) = s Y(s) - y(0)</mrow>\n                <mrow>{\\mathcal L}(y'')(s) &amp;= s^2 {\\mathcal L}(y)(s) - sy(0) - y'(0)= s^2 Y(s) - sy(0) - y'(0).</mrow>\n                <intertext>And so it follows that,</intertext>\n                <mrow>{\\mathcal L}(y')(s)^{++}  &amp;= s {\\mathcal L}(y)(s) - y(0) = s Y(s) - y(0)</mrow>\n                <mrow>{\\mathcal L}(y'')(s)^{5} &amp;= s^2 {\\mathcal L}(y)(s) - sy(0) - y'(0)= s^2 Y(s) - sy(0) - y'(0).</mrow>\n            </md></p>\n\n            <p>Now with no numbers and no alignment.  We include two cross-references in the <c>intertext</c> portion for testing.<md>\n                <mrow>{\\mathcal L}(y')(s)  = s {\\mathcal L}(y)(s) - y(0) = s Y(s) - y(0)</mrow>\n                <mrow>{\\mathcal L}(y'')(s) = s^2 {\\mathcal L}(y)(s) - sy(0) - y'(0)= s^2 Y(s) - sy(0) - y'(0).</mrow>\n                <intertext>First an external reference to <url href=\"http://example.com\" visual=\"example.com\"/> and internal cross-reference to <xref ref=\"corollary-FTC-derivative\" text=\"type-global\"/>. And so it follows that,</intertext>\n                <mrow>{\\mathcal L}(y')(s)^{++} = s {\\mathcal L}(y)(s) - y(0) = s Y(s) - y(0)</mrow>\n                <mrow>{\\mathcal L}(y'')(s)^{5} = s^2 {\\mathcal L}(y)(s) - sy(0) - y'(0)= s^2 Y(s) - sy(0) - y'(0)</mrow>\n            </md>.</p>\n\n            <p>Tables can get quite complex.  Simple ones are simpler, such as this example of numerical computations for Euler's method in just a bit.</p>\n\n            <p>But first we make a figure with two very simple tables next to each other.  This causes the very first instance of <tag>table</tag> to actually be a <q>subtable</q>, which exposes a bug provoked by Emiliano Vega and fixed around 2020-08-06. (So we have to place this early to create the same behavior that exposed the bug.)</p>\n\n            <figure>\n                <caption>Buggy sub-tables</caption>\n\n                <sidebyside>\n                    <table>\n                        <title>First</title>\n                        <tabular>\n                            <row><cell>One</cell></row>\n                        </tabular>\n                    </table>\n                    <table>\n                        <title>Second</title>\n                        <tabular>\n                            <row><cell>Two</cell></row>\n                        </tabular>\n                    </table>\n                </sidebyside>\n            </figure>\n\n            <table xml:id=\"table-euler1\">\n                <title>Euler's approximation for Duffing's Equation with <m>h = 0.2</m></title>\n                <tabular top=\"major\" halign=\"center\">\n                    <row bottom=\"minor\">\n                        <cell><m>i</m></cell>\n                        <cell><m>t_i</m></cell>\n                        <cell><m>x_i</m></cell>\n                        <cell><m>y_i</m></cell>\n                    </row>\n                    <row> <cell>0</cell><cell>0.00</cell><cell>0.0000</cell><cell>0.5000</cell></row>\n                    <row> <cell>1</cell><cell>0.20</cell><cell>0.1000</cell><cell>0.4800</cell></row>\n                    <row> <cell>2</cell><cell>0.40</cell><cell>0.1960</cell><cell>0.4560</cell></row>\n                    <row> <cell>3</cell><cell>0.60</cell><cell>0.2872</cell><cell>0.4295</cell></row>\n                    <row> <cell>4</cell><cell>0.80</cell><cell>0.3731</cell><cell>0.4027</cell></row>\n                    <row> <cell>5</cell><cell>1.00</cell><cell>0.4536</cell><cell>0.3783</cell></row>\n                    <row> <cell>6</cell><cell>1.20</cell><cell>0.5293</cell><cell>0.3591</cell></row>\n                    <row> <cell>7</cell><cell>1.40</cell><cell>0.6011</cell><cell>0.3480</cell></row>\n                    <row> <cell>8</cell><cell>1.60</cell><cell>0.6707</cell><cell>0.3474</cell></row>\n                    <row> <cell>9</cell><cell>1.80</cell><cell>0.7402</cell><cell>0.3603</cell></row>\n                    <row bottom=\"medium\">\n                          <cell>10</cell><cell>2.00</cell><cell>0.8123</cell><cell>0.3900</cell></row>\n                </tabular>\n            </table>\n\n        </section>\n\n        <section label=\"section-mathematics\">\n            <title>Mathematics</title>\n\n            <introduction>\n                <p>To be able to create both <latex/> and HTML output (plus variations), we rely on MathJax, which in turn supports an extensive subset of the mathematical symbols normally available.  The AMSMath symbol set is a good approximation.  The <pretext/> Guide has a link to the complete list of macros supported by MathJax.  We load the <c>AMSsymbols</c> library.</p>\n            </introduction>\n\n\n            <subsection>\n                <title>Basic Mathematics</title>\n\n                <p>The following is from the MathJax <url href=\"http://www.mathjax.org/demos/tex-samples/\" visual=\"www.mathjax.org/demos/tex-samples/\">demonstration page</url>, an identity due to Ramanujan:<md>\\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\ldots} } } }</md></p>\n\n                <p>And again, from the MathJax demonstration page, Maxwell's equations:<idx>Maxwell's equations</idx><md>\n                    <mrow>\\nabla \\times \\vec{\\mathbf{B}} -\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{E}}}{\\partial t} &amp; = \\frac{4\\pi}{c}\\vec{\\mathbf{j}}</mrow>\n                    <mrow>\\nabla \\cdot \\vec{\\mathbf{E}} &amp; = 4 \\pi \\rho</mrow>\n                    <mrow>\\nabla \\times \\vec{\\mathbf{E}}\\, +\\, \\frac1c\\, \\frac{\\partial\\vec{\\mathbf{B}}}{\\partial t} &amp; = \\vec{\\mathbf{0}}</mrow>\n                    <mrow>\\nabla \\cdot \\vec{\\mathbf{B}} &amp; = 0</mrow>\n                </md><notation><usage><m>\\nabla</m></usage><description>gradient operator</description></notation></p>\n\n                <p>Look back at the top of the source file of this document to see how to include your <tex/> macros just once.  For best results keep your macros simple and semantic.</p>\n\n                <p><pretext/> once provided modest built-in support for <q>slanted</q>, or <q>beveled</q>, or <q>nice</q> fractions.  To wit, we mean fractions such as: <m>\\sfrac{3}{8}</m>.  Use the pre-defined <c>\\sfrac{}{}</c> macro in your mathematics to achieve this presentation.  The presentation in HTML is subpar, but could improve as MathJax provides support.  It is now an author's responsibility to add support for superior typesetting for <init>PDF</init> output by loading the <c>xfrac</c> <latex/> package with the following in <tag>docinfo</tag>:<cd>\n                    <cline>&lt;math-package latex-name=\"xfrac\" mathjax-name=\"\"/&gt;</cline>\n                </cd>which is what we have done here as a test.  See the Guide for more details.</p>\n\n                <p>We consider a system of equations.  We number the first and last equation (there are just two) and include an <attr>xml:id</attr> attribute on each.  We reference the whole system later as the range of equations from the first to the last.<md number=\"yes\">\n                    <mrow xml:id=\"equation-system-begin\">\\frac{dx}{dt} \\amp = x^2 - 4x - y + 4</mrow>\n                    <mrow xml:id=\"equation-system-end\">\\frac{dy}{dt} \\amp = x^3 - y.</mrow>\n                </md></p>\n\n            </subsection>\n\n            <subsection>\n                <title>Displayed Mathematics</title>\n\n                <p>Display mathematics is achieved with the <tag>md</tag> tag (<q>math display</q>), always used within a paragraph (<tag>p</tag>).  As a good example of how XML syntax is superior, you author <m>n</m> lines of equations by enclosing each line inside of a <tag>mrow</tag> tag, rather than using <m>n-1</m> separators (such as <c>\\\\</c>).</p>\n\n                <p>If you use no ampersands to express alignment (read ahead), then each equation is centered independently on the width of the text.  This is implemented according to the AMSmath <latex/> package's <c>gather</c> environment.  Example:<md>\n                    <mrow>\\frac{dx}{dt} = x^2 - 4x - y + 4</mrow>\n                    <mrow>\\frac{dy}{dt} = x^3 - y.</mrow>\n                </md></p>\n\n                <p>An ampersand is used, in two ways, to describe positioning several equations per line, organized in columns.  We have created the pre-defined <latex/> macro <c>\\amp</c> as one way specify these, but the escape sequence <c>&amp;amp;</c> may be used also.  The second, fourth, sixth, <ellipsis/> ampersands separate columns, and the spacing between columns will be provided automatically.  The first, third, fifth, <ellipsis/> ampersands are alignment points for the equations in each column.  Typically this is placed just prior to a binary operator, such as an equal sign (<c>\\amp = </c>), or for a column of explanations or commentary, just prior to the <c>\\text{}</c> macro.  Note that this scenario suggests always having an odd number of ampersands in each <tag>mrow</tag>.  In the example below, alignment is on the equals sign in the first two columns, and provides left-justification to the explanations in the third column.  N.B.: the use below of the <c>\\text{}</c> macro does not include mathematics within its argument.  Doing so may yield unpredictable results depending on your choice of delimiters for the mathematics (and using an <tag>m</tag> tag will be ineffective).<md>\n                    <mrow>\\frac{dx}{dt} \\amp = x^2 - 4x - y + 4 \\amp \\frac{dy}{dt} \\amp = x^3 - y          \\amp\\amp x, y\\text{ version}</mrow>\n                    <mrow>\\frac{dw}{dt} \\amp = z^3 - w          \\amp \\frac{dz}{dt} \\amp = z^2 - 4z - w + 4 \\amp\\amp z, w\\text{ version}</mrow>\n                </md></p>\n\n                <p><pretext/> will automatically detect the presence or absence of ampersands, but by defining macros for entire aligned equations, you can effectively hide the ampersands.  So the <attr>alignment</attr> attribute can override automatic detection.  We use a simple <latex/> macro to demonstrate setting <c>alignment='align'</c> to override the use of a <c>gather</c> environment and use a <c>align</c> environment instead.  Example:<md alignment=\"align\">\n                    <mrow>\\myequation{\\frac{dx}{dt}}{x^2 - 4x - y + 4}</mrow>\n                    <mrow>\\myequation{\\frac{dy}{dt}}{x^3 - y}.</mrow>\n                </md></p>\n\n                <p>The AMSmath <latex/> package's <c>alignat</c> environment is a third variant of alignment.  It never happens automatically, you need to ask for it with <c>alignment=\"alignat\"</c>.  It is very similar to <c>align</c> but adds no space between the equation columns.  So you can leave it that way, or you can add your own <q>extra</q> space to suit.  Here is a previous example with no inter-column space:<md alignment=\"alignat\">\n                    <mrow>\\frac{dx}{dt} \\amp = x^2 - 4x - y + 4 \\amp \\frac{dy}{dt} \\amp = x^3 - y          \\amp\\amp x, y\\text{ version}</mrow>\n                    <mrow>\\frac{dw}{dt} \\amp = z^3 - w          \\amp \\frac{dz}{dt} \\amp = z^2 - 4z - w + 4 \\amp\\amp z, w\\text{ version}</mrow>\n                </md>.  This modified example has a middle row with three columns, while the other rows have just one column, as a test of our routines for determining the <tag>mrow</tag> with the greatest number of ampersands (and how many there are),<md alignment=\"alignat\">\n                    <mrow>\\frac{dw}{dt} &amp;= z^3 - w</mrow>\n                    <mrow>\\frac{dx}{dt} &amp;= x^2 - 4x - y + 4 &amp; \\frac{dy}{dt} &amp;= x^3 - y&amp;&amp; x, y\\text{ third column}</mrow>\n                    <mrow>\\frac{dw}{dt} &amp; = z^3 - w</mrow>\n                </md>.  Final example demonstrates that ampersands in other objects (matrices here) can wreak havoc with computing the number of columns.  So we provide yet another attribute to override automatic detection, <c>alignat-columns</c>.  This is the number of <em>columns</em> not the number of <em>ampersands</em>.  Generally, for <m>c</m> columns, there will be <m>2c-1</m> ampersands.<md alignment=\"alignat\" alignat-columns=\"2\">\n                    <mrow>A &amp;= \\begin{bmatrix}1 &amp; 2 \\\\ 3 &amp; 4\\end{bmatrix}\n                    &amp;\n                    I &amp;= \\begin{bmatrix}1 &amp; 0 \\\\ 0 &amp; 1\\end{bmatrix}</mrow>\n                </md>.  One caveat: if your number of ampersands is even (see advice above about using an odd number) behavior should still be correct, as in next example.</p>\n\n                <p>If you want super-precise control over alignment of the terms of a system of equations (linear or not) you can use the <c>alignat</c> option to advantage by not including any extra space.  This example is modified slightly from a post by Alex Jordan:<md alignment=\"alignat\">\n                    <mrow>2x \\amp {}+{} \\amp  y \\amp {}+{} \\amp 3z \\amp {}={} \\amp 10</mrow>\n                    <mrow>x  \\amp       \\amp    \\amp {}+{} \\amp  z \\amp {}={} \\amp 6</mrow>\n                    <mrow>x  \\amp {}+{} \\amp 3y \\amp {}+{} \\amp 2z \\amp {}={} \\amp 13.</mrow>\n                </md>Beautiful.</p>\n\n                <aside>\n                    <title>Overlap Test</title>\n                    <p>This is simply to test what happens when an aside bumps into something like the content below that may extend past the normal right content boundary. It likely only is of interest with the theme <c>default-modern</c>.</p>\n                </aside>\n\n                <p>A long equation, to check layout on various screen sizes.  This is Weil's <q>explicit formula</q> for the\n                   Riemann <m>\\zeta</m>-function:\n                  <md number=\"yes\">\n        \\sum_\\gamma S_-(\\gamma) = \\frac{\\log Q}{\\pi} \\hat S_-(0)\n        + \\frac{1}{2\\pi} \\sum_{j=1}^d \\Re\\left\\{ \\int_{-\\infty}^\\infty \\frac{\\Gamma'}{\\Gamma}\\left(\\frac{1}{4} + \\frac{it}{2} + \\mu_j\\right)S_-(t) dt\\right\\}\n        - \\frac{d}{2\\pi}\\hat S_-(0)\\log \\pi\n                  </md>.\n                </p>\n                <example>\n                    <title>Excessive Display Mathematics</title>\n\n                    <p>In print versions, a long run of displayed equations often needs to be broken across pages.  If you are reading some other version of this, then there is nothing to see here.  But for <latex/> output it could be interesting.  First, with no extra effort, this page-long display should break naturally, no matter how the preceding material changes.<md>\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow>m^2+n^2=p^2</mrow>\n                        <!--  -->\n                    </md>.</p>\n                    <p>In this version we have turned off page breaking for the entire display, but then allowed a break at every fourth equation, so you should see a reasonably attractive page break right after one of the <m>m^2+n^2=p^2</m> equations.<md number=\"yes\" break=\"no\">\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                        <mrow>x^2+y^2=z^2</mrow>\n                        <mrow>a^2+b^2=c^2</mrow>\n                        <mrow>\\alpha^2+\\beta^2=\\gamma^2</mrow>\n                        <mrow break=\"yes\">m^2+n^2=p^2</mrow>\n                        <!--  -->\n                    </md>.</p>\n                    <p>So.  Do not take any extra steps and let <latex/> figure out the breaks.  If you do not like a break, modify the <tag>md</tag> to go back to the AMSmath default behavior and not break at all.  Ever.  Or rather, go further and modify an individual <tag>mrow</tag> to suggest that it is a good place for a break.</p>\n                </example>\n\n                <p>Displayed mathematics in <latex/> has a device called <term>intertext</term>, allowing for short snippets of text in-between displayed equations, but alignment continues across these short breaks.  For any other output format besides <init>PDF</init>/<latex/> there really is not the technical means to make this continued alignment happen.  So we mostly do the best we can.  The following is a test example.  Since almost all the equations are very similar in shape, it appears that there is alignment throughout.  However, for almost all output formats, the very last equation changes the horizontal positioning of the block with the final three equations, and they are not aligned with the previous equations.  The exception is a <init>PDF</init> where we are able to take advantage of <latex/>'s support and the equations should <em>all</em> be aligned on the equals signs.\n                    <md number=\"yes\">\n                        <mrow>A &amp;= Z + 1</mrow>\n                        <mrow>B &amp;= Y + 2</mrow>\n                        <intertext>One intertext.</intertext>\n                        <mrow>C &amp;= X + 3</mrow>\n                        <mrow>D &amp;= W + 4</mrow>\n                        <mrow>E &amp;= V + 5</mrow>\n                        <intertext>Two intertext.</intertext>\n                        <mrow>F &amp;= U + 6</mrow>\n                        <intertext>Three intertext.</intertext>\n                        <mrow>G &amp;= T + 7</mrow>\n                        <mrow>H &amp;= S + 8</mrow>\n                        <mrow>I + J + K &amp;= P + Q + R + 9 + 10 + 11</mrow>\n                    </md>\n                </p>\n\n            <p>Now for some more testing of the <tag>intertext</tag> feature. Numbering some equations, and not others, requires some care in the conversion to <latex/>.</p>\n\n            <p>\n            First, a numbered equation in the first group of equations.\n                <md>\n                    <mrow number=\"yes\">A &amp; = B + C</mrow>\n                    <intertext>Intertext: between first and second equations.</intertext>\n                    <mrow>P &amp; = Q + R</mrow>\n                    <intertext>Intertext: between second and third equations.</intertext>\n                    <mrow>X &amp; = Y + Z</mrow>\n                </md>\n            Second, a numbered equation in the intermediate group of equations.\n                <md>\n                    <mrow>A &amp; = B + C</mrow>\n                    <intertext>Intertext: between first and second equations.</intertext>\n                    <mrow number=\"yes\">P &amp; = Q + R</mrow>\n                    <intertext>Intertext: between second and third equations.</intertext>\n                    <mrow>X &amp; = Y + Z</mrow>\n                </md>\n            Third, a numbered equation in the final group of equations.\n                <md>\n                    <mrow>A &amp; = B + C</mrow>\n                    <intertext>Intertext: between first and second equations.</intertext>\n                    <mrow>P &amp; = Q + R</mrow>\n                    <intertext>Intertext: between second and third equations.</intertext>\n                    <mrow number=\"yes\">X &amp; = Y + Z</mrow>\n                </md>\n            Fourth, no numbered equations at all.\n                <md>\n                    <mrow>A &amp; = B + C</mrow>\n                    <intertext>Intertext: between first and second equations.</intertext>\n                    <mrow>P &amp; = Q + R</mrow>\n                    <intertext>Intertext: between second and third equations.</intertext>\n                    <mrow>X &amp; = Y + Z</mrow>\n                </md>\n            </p>\n\n                <p>This is a poorly-authored paragaph to test the conversion to <init>HTML</init>.  There are two displayed equations, separated by a period ending the first one's sentence, which should migrate into the display, and not leave behind an empty paragraph: <md>z+y = z</md>.  <md>a + b = c</md>.  This final sentence should remain, inside another <init>HTML</init> paragraph, without the second equation's period.</p>\n            </subsection>\n\n            <subsection>\n                <title><latex/> Packages and MathJax Extensions</title>\n\n                <p>If you would like to enhance your mathematics by using a macro from a <latex/> package <em>and</em> there is a MathJax extension <em>which implements the same macro</em>, then you may use this with your mathematics as we demonstrate here.</p>\n\n                <p>This example is from Jason Underdown.<idx><h>Underdown, Jason</h></idx>  The package is named <c>cancel</c> and is included in the TeXLive distribution, so is fairly standard.  The particular macro being demonstrated is <c>\\cancelto{}{}</c>.  <md>\\lim_{b \\rightarrow \\infty}\\left[\\cancelto{0}{-\\frac{1}{s}e^{-sb}} + \\frac{1}{s}\\right]</md>.   Look at the source of this article to see the package name being supplied in a <tag>math-package</tag> element within the <tag>docinfo</tag> section.  That is the only setup required to make the macro usable in <latex/> and <init>HTML</init> output.<idx><h>canceling a term</h></idx><idx sortby=\"cancelto macro\"><c>cancelto</c> macro</idx></p>\n\n                <p>See the <pubtitle><pretext/> Guide</pubtitle> subsection about <q>MathJax Extensions</q> for more detail.</p>\n            </subsection>\n\n            <subsection>\n                <title>Advanced Mathematics</title>\n\n                <p>MathJax is extremely capable in rendering a subset of <latex/> in web browsers, and improving all the time.  You can get fairly fancy with some of its supported commands.  In particular, if you need to mix in a few words with your mathematics, the <c>\\text{}</c> macro is supported.  For example, you might use an <q>if</q> or an <q>otherwise</q> in the definition of a piecewise function.</p>\n\n                <p>Consider that the first line below is text sandwiched in-between two Greek letters, wrapped in a <c>\\text{}</c> macro.  In HTML output we have taken care that the font for text material within display mathematics should match the font of the  surrounding paragraph, as also happens with <latex/> output.  The second line is nearly identical in the source, but is just naked text being rendered like a slew of variables.<md>\n                    <mrow>\\alpha\\text{ is not equal to }\\beta</mrow>\n                    <mrow>\\alpha is not equal to \\beta</mrow>\n                    <mrow>\\alpha\\neq\\beta</mrow>\n                </md>.  We are not suggesting here that using words in place of symbols, as in the first line, is a good practice.  (It is not.)</p>\n\n                <p>The following example is a good stress-test of using the <c>\\text{}</c> macro to achieve certain effects.  Note the Unicode left and right smart quotes.  This a contribution from Alex Jordan as part of his work on <pubtitle>APEX Calculus</pubtitle>.<md>\n                    <mrow>y \\rightarrow \\frac{\\sin(0) }{0} \\rightarrow {{\\text{“}}\\atop{}}\\frac{0}{0}{{\\text{”}}\\atop{}}\\text{.}</mrow>\n                </md>And another one from Alex.  Note the use of the <c>\\mathord{}</c> and <c>\\mathrel{}</c> macros to control spacing around the mathematical symbols.  Examine the source to see how the quotation marks have been authored with <init>XML</init> syntax for Unicode characters, since we do not allow most markup inside mathematics.<md>\n                    <mrow>\\zeta(1)=\\sum_{n=1}^{\\infty}\\frac{1}{n}\\mathrel{\\text{ &#x201c;}\\mathord{=}{\\text{&#x201d; }}}\\prod_{p}\\left(\\frac{1}{1-1/p}\\right)=\\prod_{p}\\left(\\frac{1}{1-p^{-1}}\\right)</mrow>\n                </md></p>\n\n                <p>Generally, you cannot use any <init>XML</init> elements inside of the mathematics elements.  An exception is the <tag>xref</tag> element which you might want to use to provide justifications for the steps of a derivation.  Here is a visual example that is mathematically meaningless,<md>\n                    <mrow>A&amp;=B+C&amp;&amp;<xref ref=\"corollary-FTC-derivative\" text=\"type-global\"/></mrow>\n                    <mrow>&amp;=D+E&amp;&amp;<xref ref=\"theorem-FTC\" text=\"title\"/></mrow>\n                    <mrow>&amp;=F+G&amp;&amp;<xref ref=\"theorem-number-01\" text=\"custom\">A nice result</xref></mrow>\n                </md>.</p>\n\n                <p>Scott Beaver likes to write short chains of equalities all in one line, with the cross-references sitting on each equals sign.  Here we test the <latex/> <c>\\overset</c> and <c>\\underset</c> macros wrapping a <pretext/> <tag>xref</tag>, with and without content, inside an <tag>md</tag> element.  Note that  <c>\\stackrel</c> is obsolete, and <c>\\overunderset</c> is not yet supported by MathJax (but see <url href=\"https://github.com/mathjax/MathJax/issues/2704\" visual=\"github.com/mathjax/MathJax/issues/2704\">GitHub #2704</url>).  The mathematics is Scott's, the reasons are totally unrelated to the math.\n                    <md>AC-AD\n                        \\overset{<xref ref=\"theorem-FTC\" text=\"global\"/>}{=}\n                        A(C-D)\n                        \\underset{<xref ref=\"definition-indefinite-integral\" text=\"global\"/>}{=}\n                        A0_{n\\times p}\n                        \\overset{<xref ref=\"theorem-FTC\" text=\"global\">Thm.</xref>}{=}\n                        0_{m\\times p}\n                    </md>\n                We suggest using cross-references that only display numbers (<tag>xref</tag> with <attr>text</attr> set to <c>global</c>) since if you stick to elements like <tag>theorem</tag>, <tag>lemma</tag>, <tag>definition</tag>, or <tag>axiom</tag>, then the numbers will be unambiguous and the target of the cross-reference will contain full information.  But note that if you mix in divisions, or perhaps figures, as reasons then there is a possibility that numbers will need to be qualified by their type.  We have provided an abbreviation for one cross-reference to <xref ref=\"theorem-FTC\" text=\"type-global\"/> (which will not benefit from automatic translation to other languages).\n                </p>\n            </subsection>\n\n            <subsection>\n                <title>Numbered Equations</title>\n\n                <p>There is flexible control for numbering displayed equations, largely provided by the <attr>number</attr> attribute on the <tag>md</tag> and <tag>mrow</tag> elements, taking values of <c>yes</c> or <c>no</c>.  First, a single displayed equation, with a number: <md number=\"yes\">x^{2} + y^2 = z^2</md>.  Now several displayed equations, all numbered.<md number=\"yes\">\n                    <mrow>x^{3} + y^{3} = z^{3}</mrow>\n                    <mrow>x^{4} + y^{4} = z^{4}</mrow>\n                    <mrow>x^{5} + y^{5} = z^{5}</mrow>\n                </md>.\n                Similar, but now the first equation's numbering is controlled by the global default value, the second is explicitly not numbered, and the third is explicitly numbered.<md>\n                    <mrow>x^{6} + y^{6} = z^{6}</mrow>\n                    <mrow number=\"no\">x^{7} + y^{7} = z^{7}</mrow>\n                    <mrow number=\"yes\">x^{8} + y^{8} = z^{8}</mrow>\n                </md>.  The global default numbering choice is set in <tag>docinfo</tag>.</p>\n            </subsection>\n\n            <subsection>\n                <title>Local Tags on Equations</title>\n\n                <p>If you are not writing a research monograph, maybe (a) you will not use many numbered equations, or do not like the looks of them, or feel they scare your readers, and (b) maybe your cross-references are always local-ish, like strictly within an <tag>example</tag> or a <tag>proof</tag>.  For this situation you can create, and employ, a <q>local</q> tag on a displayed equation.  Nothing enforces the idea of what constitutes local, and there is nothing to stop you from using the same symbols more than once.  With freedom comes responsibility.</p>\n\n                <p>Use the <attr>tag</attr> attribute on an <tag>mrow</tag>, or directly on a single-line <tag>md</tag> (one with no <tag>mrow</tag> children).  The value of the <attr>tag</attr> attribute is a symbol name.  The prefix <c>d</c> means <q>double</q>, and the prefix <c>t</c> means <q>triple</q>.  So allowed values are<cd>\n                    <cline>star, dstar, tstar</cline>\n                    <cline>dagger, ddagger, tdagger</cline>\n                    <cline>daggerdbl, ddaggerdbl, tdaggerdbl</cline>\n                    <cline>hash, dhash, thash</cline>\n                    <cline>maltese, dmaltese, tmaltese</cline>\n                </cd>Cross-references to these tagged equations happens in the usual way and should behave as expected.  We test the double versions to make sure the symbols render properly in various output formats.<md number=\"yes\">\n                    <mrow xml:id=\"equation-local-star\"      tag=\"dstar\">c^2 \\amp = a^2+b^2</mrow>\n                    <mrow xml:id=\"equation-local-dagger\"    tag=\"ddagger\">c^2 \\amp = a^2+b^2</mrow>\n                    <mrow xml:id=\"equation-local-daggerdbl\" tag=\"ddaggerdbl\">c^2 \\amp = a^2+b^2</mrow>\n                    <mrow xml:id=\"equation-local-hash\"      tag=\"dhash\">c^2 \\amp = a^2+b^2</mrow>\n                    <mrow xml:id=\"equation-local-maltese\"   tag=\"dmaltese\">c^2 \\amp = a^2+b^2</mrow>\n                    <mrow>z^2 \\amp = x^2+y^2</mrow>\n                </md>Here are the local cross-references: <xref ref=\"equation-local-star\"/>, <xref ref=\"equation-local-dagger\"/>, <xref ref=\"equation-local-daggerdbl\"/>, <xref ref=\"equation-local-hash\"/>, <xref ref=\"equation-local-maltese\"/>.  We test another farther away in <xref ref=\"section-cross-referencing\" text=\"type-global\"/>, contrary to our advice above.</p>\n\n                <p>When there is nothing to align, the <attr>tag</attr> attribute may live directly on a single-line <tag>md</tag>: <md xml:id=\"equation-tag-on-md\" tag=\"star\">c^2 = a^2 + b^2</md>.  This is equivalent to placing the content in a single <tag>mrow</tag> child carrying the <attr>tag</attr>.  A cross-reference to this equation looks like <xref ref=\"equation-tag-on-md\"/>.  Note that <attr>tag</attr> and <attr>number</attr> are mutually exclusive on a single-line <tag>md</tag>.</p>\n            </subsection>\n\n            <subsection xml:id=\"commutative-diagrams\">\n                <title>Commutative Diagrams</title>\n\n                <p>This diagram is authored by Tom Judson using the syntax of the <init>AMS</init> <latex/> <q>CD</q> package.  Inside of a <tag>md</tag> element start with <c>\\begin{CD}</c>.  Remember to escape the less-than character.\n                    <md>\\begin{CD}\n                    E[x]/\\langle p(x) \\rangle    @>\\psi>>  F[x]/\\langle q(x) \\rangle\\\\\n                    @VV{\\sigma}V        @VV{\\tau}V\\\\\n                    E(\\alpha)     @>\\overline{\\phi}>>  F(\\beta)\\\\\n                    @VVV        @VVV\\\\\n                    E     @>\\phi>>  F\n                    \\end{CD}</md>\n                While this package is not as flexible as some generic drawing packages, it has the advantage of full support by MathJax, and thus the <init>HTML</init> version will be more accessible.</p>\n            </subsection>\n\n            <subsection xml:id=\"line-breaking-math\">\n                <title>Line-Breaking after Mathematics</title>\n\n                <p>As of 2021-05-14, in <init>HTML</init> output the next sentence should just fill a full line across the page.  We take active measures to bind the concluding period to the final bit of mathematics, the variable <m>x</m>.  The prevents a bad line break which could see the period <em>begin</em> a new line, all by itself.  In the event that the line-breaking siutation improves, we could relax these measures.  This testing is only relevant to <init>HTML</init> output, not <latex/> output.</p>\n\n                <p>xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx <m>x</m>.</p>\n            </subsection>\n\n            <subsection xml:id=\"font-math\">\n                <title>Fonts and Mathematics</title>\n\n                <p>This section is about testing types and sizes of fonts, not so much about using different typefaces.  First, one long displayed equation, which is designed to be full-width for <latex/> output when using defaults as of 2020-01-29 (commit <c>defd4bffd462e7ea</c>).</p>\n\n                <p>Start paragraph.<md>a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2 + a^2 + b^2</md>End paragraph.</p>\n\n                <p>The next paragraph has five ways to write the sine of <m>x</m>, bracketed by plain text versions.  This tests font size and the fonts employed.  The raw source of this paragraph is (spread over two lines)<cd>\n                    <cline>sin x | &lt;m&gt;\\sin x&lt;/m&gt; | &lt;m&gt;\\text{sin}\\ x&lt;/m&gt; | &lt;m&gt;\\mathrm{sin}\\ x&lt;/m&gt; |</cline>\n                    <cline>&lt;m&gt;\\text{sin}x&lt;/m&gt; | &lt;m&gt;sin x&lt;/m&gt; | sin x</cline>\n                </cd>  The five ways, from good to bad,<ol>\n                    <li>The best way, using  <c>\\sin</c>.  Note the distance to the <m>x</m>.</li>\n                    <li>With a <c>\\text{}</c> macro.</li>\n                    <li>With a <c>\\mathrm{}</c> macro.  Not recommended for <pretext/>.</li>\n                    <li>Without a space.  Note that the previous two require explicit spacing.</li>\n                    <li>No extra effort, so <latex/> renders as a product of four variables.</li>\n                </ol></p>\n\n                <p>sin x | <m>\\sin x</m> | <m>\\text{sin}\\ x</m> | <m>\\mathrm{sin}\\ x</m>  | <m>\\text{sin}x</m> | <m>sin x</m> | sin x</p>\n\n                <p>Finally a simple paragraph that places a text <q>x</q> next to a variable <q>x</q>.</p>\n\n                <p>wordxx<m>x+x</m>xxword</p>\n\n            </subsection>\n\n            <subsection xml:id=\"subsection-special-characters-text-mode\" label=\"subsection-special-characters-text-mode\">\n                <title>Special Characters in Text Mode</title>\n\n                <p><latex/> designates ten characters as <term>special</term> because they carry syntactic meaning.  When these characters appear inside text-mode macros (such as <c>\\text{}</c>) within mathematics, they must be escaped to produce their literal glyph.  Seven of the ten have simple single-character escapes and are demonstrated in the following table.  The remaining three (<c>~</c>, <c>^</c>, <c>\\</c>) require macros from <latex/>'s <c>textcomp</c> package (<c>\\textasciitilde</c>, <c>\\textasciicircum</c>, <c>\\textbackslash</c>) which are not available in MathJax's text mode as of 2026-04-03.</p>\n\n                <tabular halign=\"center\">\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell>Character</cell>\n                        <cell>Escaped form</cell>\n                        <cell>Rendered</cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Hash <c>#</c></cell>\n                        <cell><c>\\#</c></cell>\n                        <cell><m>\\text{5\\#}</m></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Ampersand <c>&amp;</c></cell>\n                        <cell><c>\\&amp;</c></cell>\n                        <cell><m>\\text{P \\&amp; Q}</m></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Percent <c>%</c></cell>\n                        <cell><c>\\%</c></cell>\n                        <cell><m>\\text{5\\%}</m></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Dollar <c>$</c></cell>\n                        <cell><c>\\$</c></cell>\n                        <cell><m>\\text{\\$3}</m></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Underscore <c>_</c></cell>\n                        <cell><c>\\_</c></cell>\n                        <cell><m>\\text{x\\_1}</m></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Left brace <c>{</c></cell>\n                        <cell><c>\\{</c></cell>\n                        <cell><m>\\text{\\{a, b\\}}</m></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>Right brace <c>}</c></cell>\n                        <cell><c>\\}</c></cell>\n                        <cell><m>\\text{\\{a, b\\}}</m></cell>\n                    </row>\n                </tabular>\n\n                <p>The hash character also requires escaping within the <c>\\tag{}</c> macro.  See <xref ref=\"equation-local-hash\"/> for an example where the <c>tag=\"dhash\"</c> attribute produces a double hash as an equation tag.</p>\n\n            </subsection>\n\n            <subsection xml:id=\"miscellaneous-math\">\n                <title>Miscellaneous</title>\n\n                <p>In <init>HTML</init> output, a MathJax workaround for a Safari rendering bug was inserting extra spaces after textual subscripts and superscripts (<url href=\"https://groups.google.com/g/mathjax-users/c/ANjLK9KtcWA/m/vlHaPja-AwAJ\" visual=\"groups.google.com/g/mathjax-users/c/ANjLK9KtcWA/m/vlHaPja-AwAJ\">MathJax thread</url>).  <pretext/> CSS now applies a correction.  The following tests if the CSS fix is sufficient, and could be used to test the necessity of our fix in the future.  Following is the original report, though <c>NOT</c> has been moved to a superscript:\n                <md>\n                    <mrow>T_\\text{clk}-t_\\text{su} \\gt t_\\text{clk-Q} + \\max\\left( t_\\text{XOR}, t^\\text{NOT} \\right)</mrow>\n                </md>.  There should not be anything to see in <latex/>/<init>PDF</init> output. (2021-10-21)</p>\n\n            </subsection>\n        </section>\n\n        <section xml:id=\"block-samples\">\n            <title>Grouping Samples</title>\n\n            <introduction>\n                <p>While building or testing a rendering of PreTeXt, especially in HTML, it can be useful to see all the various elements that potentially create visual blocks in one place. So they are collected here.</p>\n\n                <p>We will omit content specific blocks like figures, images, tables, <etc/> as those elements have significant stress testing of their own elsewhere.</p>\n\n                <p>Please add any similar elements that are created or that you discover are missing from this page.</p>\n\n                <aside>\n                    <title>A title</title>\n                    <p>There are more <tag>aside</tag>es below, but here is a solor one.</p>\n                </aside>\n            </introduction>\n\n            <objectives>\n                <title>Our goals</title>\n                <introduction>\n                    <p>A minimal <tag>objective</tag>.</p>\n                </introduction>\n                <ul>\n                  <li>Stress test HTML themes</li>\n                  <li>Locally, test objectives</li>\n                </ul>\n            </objectives>\n\n            <subsection xml:id=\"block-samples-remark-like\">\n                <title>Remark-like Blocks</title>\n                <remark>\n                    <title>A title</title>\n                    <p>A minimal <tag>remark</tag>.</p>\n                </remark>\n                <convention>\n                    <title>A title</title>\n                    <p>A minimal <tag>convention</tag>.</p>\n                </convention>\n                <note>\n                    <title>A title</title>\n                    <p>A minimal <tag>note</tag>.</p>\n                </note>\n                <observation>\n                    <title>A title</title>\n                    <p>A minimal <tag>observation</tag>.</p>\n                </observation>\n                <warning>\n                    <title>A title</title>\n                    <p>A minimal <tag>warning</tag>.</p>\n                </warning>\n                <insight>\n                    <title>A title</title>\n                    <p>A minimal <tag>insight</tag>.</p>\n                </insight>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-example-like\">\n                <title>Example-like Blocks</title>\n                <example>\n                    <title>A title</title>\n                    <p>A minimal <tag>example</tag>.</p>\n                </example>\n                <example>\n                    <title>A title</title>\n                    <introduction><p>A structured <tag>example</tag>.</p></introduction>\n                    <task>\n                        <statement>\n                            <p>A structured <tag>example</tag>.</p>\n                        </statement>\n                        <hint><p>A <tag>hint</tag></p></hint>\n                        <answer><p>An <tag>answer</tag></p></answer>\n                        <solution><p>A <tag>solution</tag></p></solution>\n                    </task>\n                    <conclusion><p>The <tag>conclusion</tag>.</p></conclusion>\n                </example>\n                <question>\n                    <title>A title</title>\n                    <p>A minimal <tag>question</tag>.</p>\n                </question>\n                <problem>\n                    <title>A title</title>\n                    <p>A minimal <tag>problem</tag>.</p>\n                </problem>\n                <observation>\n                    <title>A title</title>\n                    <p>A minimal <tag>observation</tag>.</p>\n                </observation>\n                <warning>\n                    <title>A title</title>\n                    <p>A minimal <tag>warning</tag>.</p>\n                </warning>\n                <insight>\n                    <title>A title</title>\n                    <p>A minimal <tag>insight</tag>.</p>\n                </insight>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-theorem-like\">\n                <title>Theorem-like Blocks</title>\n                <theorem>\n                    <title>A title</title>\n                    <p>A minimal <tag>theorem</tag>.</p>\n                </theorem>\n                <theorem>\n                    <title>A title</title>\n                    <p>A theorem with a proof.</p>\n                    <proof>\n                        <p>The proof of the theorem.</p>\n                    </proof>\n                </theorem>\n                <corollary>\n                    <title>A title</title>\n                    <p>A minimal <tag>corollary</tag>.</p>\n                </corollary>\n                <lemma>\n                    <title>A title</title>\n                    <p>A minimal <tag>lemma</tag>.</p>\n                </lemma>\n                <algorithm>\n                    <title>A title</title>\n                    <p>A minimal <tag>algorithm</tag>.</p>\n                </algorithm>\n                <proposition>\n                    <title>A title</title>\n                    <p>A minimal <tag>proposition</tag>.</p>\n                </proposition>\n                <claim>\n                    <title>A title</title>\n                    <p>A minimal <tag>claim</tag>.</p>\n                </claim>\n                <fact>\n                    <title>A title</title>\n                    <p>A minimal <tag>fact</tag>.</p>\n                </fact>\n                <identity>\n                    <title>A title</title>\n                    <p>A minimal <tag>identity</tag>.</p>\n                </identity>\n                <proof>\n                    <title>A title</title>\n                    <p>A stand-alone proof.</p>\n                </proof>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-axiom-like\">\n                <title>Axiom-like Blocks</title>\n                <axiom>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>axiom</tag>.</p></statement>\n                </axiom>\n                <conjecture>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>conjecture</tag>.</p></statement>\n                </conjecture>\n                <principle>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>principle</tag>.</p></statement>\n                </principle>\n                <heuristic>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>heuristic</tag>.</p></statement>\n                </heuristic>\n                <hypothesis>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>hypothesis</tag>.</p></statement>\n                </hypothesis>\n                <assumption>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>assumption</tag>.</p></statement>\n                </assumption>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-definition-like\">\n                <title>Definition-like Blocks</title>\n                <definition>\n                    <title>A title</title>\n                    <statement><p>A minimal <tag>definition</tag>.</p></statement>\n                </definition>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-aside-like\">\n                <title>Aside-like Blocks</title>\n                <p>Three <tag>aside</tag>s are below.</p>\n                <aside>\n                    <title>A title</title>\n                    <p>A minimal <tag>aside</tag>.</p>\n                </aside>\n                <biographical>\n                    <title>A title</title>\n                    <p>A minimal <tag>biographical</tag>.</p>\n                </biographical>\n                <biographical>\n                    <title>A title</title>\n                    <p>A minimal <tag>biographical</tag>.</p>\n                </biographical>\n                <historical>\n                    <title>A title</title>\n                    <p>A minimal <tag>historical</tag>.</p>\n                </historical>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-computation-like\">\n                <title>Computation-like Blocks</title>\n                <computation>\n                    <title>A title</title>\n                    <p>A minimal <tag>computation</tag>.</p>\n                </computation>\n                <technology>\n                    <title>A title</title>\n                    <p>A minimal <tag>technology</tag>.</p>\n                </technology>\n                <data>\n                    <title>A title</title>\n                    <p>A minimal <tag>data</tag>.</p>\n                </data>\n            </subsection>\n\n            <subsection xml:id=\"block-samples-project-like\">\n                <title>Project-like Blocks</title>\n                <project>\n                    <title>A title</title>\n                    <p>A minimal <tag>project</tag>.</p>\n                </project>\n                <activity>\n                    <title>A title</title>\n                    <p>A minimal <tag>activity</tag>.</p>\n                </activity>\n                <exploration>\n                    <title>A title</title>\n                    <p>A minimal <tag>exploration</tag>.</p>\n                </exploration>\n                <investigation>\n                    <title>A title</title>\n                    <p>A minimal <tag>investigation</tag>.</p>\n                </investigation>\n            </subsection>\n\n            <subsection>\n                <title>Miscellaneous Blocks</title>\n                <assemblage>\n                    <p>A minimal <tag>assemblage</tag>.</p>\n                </assemblage>\n                <aside>\n                    <title>A title</title>\n                    <p>A final <tag>aside</tag> to test behavior towards the end of a page. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n                </aside>\n            </subsection>\n\n            <outcomes>\n                <title>Our results</title>\n                <introduction>\n                    <p>A minimal <tag>outcome</tag>.</p>\n                </introduction>\n                <ul>\n                  <li>Stress test HTML themes</li>\n                  <li>Locally, test outcomes</li>\n                </ul>\n            </outcomes>\n\n            <conclusion>\n                <title>Wrap-up</title>\n                <p>A minimal <tag>conclusion</tag>.</p>\n            </conclusion>\n        </section>\n\n        <section xml:id=\"text-in-paragraphs\" label=\"section-text-paragraphs\">\n            <title>Entering Text in Paragraphs, Titles, Captions</title>\n            <shorttitle>Text in Paragraphs</shorttitle>\n            <!-- a \"plaintitle\" has no markup, meant for browser tabs, etc -->\n            <!-- here we just use a variant, for testing purposes          -->\n            <plaintitle>Entering Text in Paragraphs</plaintitle>\n\n            <introduction>\n                <p><init>XML</init>, and therefore <pretext/>, is a markup language.  But by and large, what you type into your source will be what you see in your output.  So there is not much to say.  Except that <xref ref=\"subsection-xml-escape\" text=\"type-global\"/> eventually will be essential.  However we do test various tricky situations here (which have technical explanations we avoid).  See the Author's Guide for a superior treatment of the topics addressed here.</p>\n            </introduction>\n\n            <subsection xml:id=\"subsection-xml-escape\">\n                <title>Special <init>XML</init> characters</title>\n\n                <p>One of the goals of <pretext/> is to relieve an author of managing the numerous conflicts when mixing languages that use different characters for special purposes.  But, of course, <init>XML</init> has its own special characters.</p>\n\n                <p>If you type a <q>less-than</q> symbol in your source, the <init>XML</init> processor thinks you are starting an opening, or closing, tag.  So how do you get a less-than sign into your source so that it survives into your output, like this: &lt;<nbsp/>?  You use an <term>escaped version</term>.  Type literally, the four characters <c>&amp;lt;</c> in your source.  Then the <init>XML</init> processor will know you want the character and will not mistake it for a tag.  But now we want to get an ampersand into our source like: &amp;.  How?  Another escaped version of a character, literally the five characters <c>&amp;amp;</c>.</p>\n\n                <p>Otherwise, keys on your keyboard, even international versions, should be fine in your source and behave as expected.  <init>WYTIWYG</init> = What You Type Is What You Get.  So the principal concession to using <init>XML</init> markup is the following very simple rule.</p>\n\n                <blockquote>\n                    <p>Rather than pressing the &lt; and &amp; keys on your keyboard, instead always enter the escape sequences <c>&amp;lt;</c> and <c>&amp;amp;</c> as replacements.</p>\n                </blockquote>\n\n                <p>Simple.  And it will work in <q>running text,</q> verbatim text (like when authoring the content of <tag>c</tag> or <tag>pre</tag> elements), and mixed into <latex/> syntax to desribe mathematical expressions.  <init>XML</init> has three other escape sequences <c>&amp;gt;</c>, <c>&amp;apos;</c>, and <c>&amp;quot;</c>, for the characters &gt;, &apos;, and &quot; (respectively).  But they seem largely unnecessary for authoring in PreTeXt, as we now demonstrate by typing them directly from our keyboard into our source: &gt;, &apos;, and &quot;.</p>\n\n                <exercise>\n                    <p>How was <c>&amp;amp;</c> authored?  Work it out, and then check the source here for the answer.</p>\n                </exercise>\n\n                <p>\n                    The next subsection should start on a new page in PDF output if the standard publisher file is used.\n                </p>\n            </subsection>\n\n            <subsection xml:id=\"quotations\">\n                <title>Quotations</title>\n\n                <p>The <tag>q</tag><idx><h>quotations</h></idx> tag will provide beginning and ending double quotations, while the <tag>sq</tag> tag will behave similarly but provide single quotes.  Given the complexity of quotations, the different symbols used in different languages, and the over-simplified versions provided on keyboards, it is necessary to use markup.</p>\n\n                <p><q>The roots of education are bitter, but the fruit is sweet.</q> (Aristotle)</p>\n\n                <p><sq>It is always wise to look ahead, but difficult to look further than you can see.</sq> (Winston Churchill)</p>\n\n                <p>A large quote can be accomodated with the <tag>blockquote</tag> tag, which can carry within itself an <tag>attribution</tag> element.</p>\n\n                <blockquote>\n                    <p>The problem with writing a book in verse is, to be successful, it has to sound like you knocked it off on a rainy Friday afternoon. It has to sound easy. When you can do it, it helps tremendously because it's a thing that forces kids to read on. You have this unconsummated feeling if you stop.</p>\n                    <attribution>Dr. Seuss</attribution>\n                </blockquote>\n\n                <p>We say that again, to test a multiline attribution of a block quotation.  Notice how the dash appears automatically, and that it is a <term>quotation dash</term> in HTML, distinct from other sorts of dashes.</p>\n\n                <blockquote>\n                    <p>The problem with writing a book in verse is, to be successful, it has to sound like you knocked it off on a rainy Friday afternoon. It has to sound easy. When you can do it, it helps tremendously because it's a thing that forces kids to read on. You have this unconsummated feeling if you stop.</p>\n                    <attribution>\n                        <line>Dr. Seuss</line>\n                        <line>Children's Author</line>\n                    </attribution>\n                </blockquote>\n\n                <p>Sometimes a quote may extend across several paragraphs.  Or a balanced pair of quotations marks crosses an XML boundary, so we need left, right, single and double versions.  (For example, see Section<nbsp/><xref ref=\"poetry\"/> on poetry.)  Here are all four in a haphazard order: <rq/>, <lsq/>, <lq/>, <rsq/>.  These should be a last resort, and <em>not</em> a replacement for the <c>q</c> and <c>sq</c> tags.  The left/right versions are used for the following quote from Abraham Lincoln, which we have edited into two paragraphs.</p>\n\n                <p><lq/>I am not bound to win, but I am bound to be true. I am not bound to succeed, but I am bound to live by the light that I have.</p>\n\n                <p>I must stand with anybody that stands right, and stand with him while he is right, and part with him when he goes wrong.<rq/></p>\n\n                <p>And as a tests, we try some crazy combinations of quotes, which would normally give <latex/> some trouble where the quotation marks are adjacent.  View these examples in <init>PDF</init> output, with lots of magnification and note the spacing between the quotation marks.<ul>\n                    <li><p><q>we use <sq>single quotes inside of double quotes</sq></q></p></li>\n                    <li><p><sq><q>double quotes inside of single quotes</q> with more</sq></p></li>\n                    <li><p><q><sq>single quotes tight inside of double quotes</sq></q></p></li>\n                    <li><p><sq><q>double quotes tight inside of single quotes</q></sq></p></li>\n                    <li><p>An <q><sq><sq><q>absurd test</q></sq></sq></q> of two adjacent single quotes inside a pair of double quotes</p></li>\n                    <li><p>you would never do this, but a <sq><sq>pair of single quotes</sq></sq></p></li>\n                </ul></p>\n\n                <p>Quotation marks are different in different languages.  The following paragraphs contain short examples.</p>\n\n                <paragraphs xml:lang=\"en-US\">\n                    <title>English (United States)</title>\n\n                    <p>Primary only: <q>Government of the people, by the people, for the people, shall not perish from the earth.</q> Primary and secondary: <q>I have a dream that one day this nation will rise up and live out the true meaning of its creed: <sq>We hold these truths to be self-evident, that all men are created equal.</sq></q> (Abraham Lincoln, Gettysburg Address; Martin Luther King Jr., I Have a Dream)</p>\n                </paragraphs>\n\n                <paragraphs xml:lang=\"fr-FR\">\n                    <title>French (France)</title>\n\n                    <!-- “Freedom begins where ignorance ends.”                      -->\n                    <!--                                                             -->\n                    <!-- “She kept repeating to herself, ‘I have a lover! a lover!’  -->\n                    <!-- savoring the idea as if a new puberty had come upon her.”   -->\n\n                    <p>Primary only: <q>La liberté commence où l’ignorance finit.</q> Primary and secondary: <q>Elle se répétait : <sq>J’ai un amant ! un amant !</sq> se délectant à cette idée comme à celle d’une autre puberté qui lui serait survenue</q>. (Victor Hugo, Les Misérables; Gustave Flaubert, Madame Bovary)</p>\n                </paragraphs>\n\n                <paragraphs xml:lang=\"fr-CA\">\n                    <title>French (Canada)</title>\n\n                    <!-- Same quotes as fr-FR; secondary marks differ:               -->\n                    <!-- fr-CA uses english-single (' ') for inner quotes,           -->\n                    <!-- fr-FR uses english-double (“ “) for inner quotes.           -->\n                    <!--                                                             -->\n                    <!-- “Freedom begins where ignorance ends.”                      -->\n                    <!--                                                             -->\n                    <!-- “She kept repeating to herself, ‘I have a lover! a lover!’  -->\n                    <!-- savoring the idea as if a new puberty had come upon her.”   -->\n\n                    <p>Primary only: <q>La liberté commence où l’ignorance finit.</q> Primary and secondary: <q>Elle se répétait : <sq>J’ai un amant ! un amant !</sq> se délectant à cette idée comme à celle d’une autre puberté qui lui serait survenue</q>. (Victor Hugo, Les Misérables; Gustave Flaubert, Madame Bovary)</p>\n                </paragraphs>\n\n                <paragraphs xml:lang=\"de-DE\">\n                    <title>German (Germany)</title>\n\n                    <!-- “Gray, dear friend, is all theory, and green the golden    -->\n                    <!-- tree of life.” Mephistopheles to the Student.              -->\n                    <!-- Goethe, Faust, Part I (“Studierzimmer”), 1808.             -->\n                    <!--                                                            -->\n                    <!-- “’My Luise,’ he said to me, ‘has knocked me to the ground. -->\n                    <!-- My Luise will lift me up again.’”                          -->\n                    <!-- Wurm reports Miller’s words to Lady Milford.               -->\n                    <!-- Schiller, Kabale und Liebe, Act III, Scene 6, 1784.        -->\n\n                    <p>Primary only: <q>Grau, teurer Freund, ist alle Theorie, und grün des Lebens goldner Baum.</q> Primary and secondary: <q><sq>Meine Luise</sq>, sagte er mir, <sq>hat mich zu Boden geworfen. Meine Luise wird mich auch aufrichten.</sq></q> (Johann Wolfgang von Goethe, Faust I; Friedrich Schiller, Kabale und Liebe)</p>\n                </paragraphs>\n\n            </subsection>\n\n            <subsection>\n                <title>Groupings</title>\n\n                <p>It is possible to make some other groupings like quotations, such as {some <em>emphasized text</em> grouped within braces}, or [a <pubtitle>Book Title</pubtitle> inside brackets], an <articletitle>Article Title</articletitle>, <angles>some <foreign>foreign words</foreign> inside angle brackets</angles>, or <dblbrackets>just a bit of text within double brackets</dblbrackets>.  Some of these are used extensively by scholars who study texts to note various restorations or deletions.  Note that the <tag>foreign</tag> element may have a <c>xml:lang</c> attribute.</p>\n\n                <p>Note that the angle brackets, <langle/> and <rangle/>, are <em>not</em> the keyboard characters, &lt; and &gt;.  Your best bet is to use the provided <tag>angles</tag> element when constructing a balanced pair.  Similarly, <tag>dblbrackets</tag> is provided to make the double-bracket characters easily available, since they are likely not on your keyboard.</p>\n            </subsection>\n\n            <subsection>\n                <title>Characters, Symbols, and Constructions</title>\n\n                <p>Verbatim, inline text, is accomplished with the <tag>c</tag> element.  One special consideration: if your editor splits a line in the middle, we will fix it.  This sentence has <c>two\n                words</c> that we purposely split with a <q>newline</q> character in the middle.  In output you should see a space between the words.</p>\n\n                <p>Some keyboard characters are ambiguous.  Is the character <c>'</c> an apostrophe or a right single quote?  We presume the former, ', and provide markup as an alternative for the latter (described above).  Is <c>/</c> used to separate words, or to form a fraction?  We presume the former, /, and provide <tage>solidus</tage>, <solidus/>, for the latter.  We test some other characters straight from our US keyboard (with two being escape sequences).</p>\n\n                <p>~ ` ! @ # $ % ^ &amp; * ( ) _ - + = [ ] { } | \\ ; : ' \" , &lt; . > ? /</p>\n\n                <p>And again  as verbatim text.</p>\n\n                <p><c>~ ` ! @ # $ % ^ &amp; * ( ) _ - + = [ ] { } | \\ ; : ' \" , &lt; . > ? /</c></p>\n\n                <p>Note that for a long time <pretext/> had empty elements for many of these characters, as a consequence of naïveté.  So you might see <tage>dollar</tage>, <tage>ampersand</tage>, or others in old source.  They will be deprecated and will raise warnings.</p>\n\n                <p>Now, when a character is nowhere to be found on your keyboard, we provide conveniences as markup.  Or a keyboard character may have a different variant which we implement as an empty element.  Here we test many of these.  Read the Author's Guide for tags and more detail.</p>\n\n                <p><copyright/><nbsp/><nbsp/>\n                <phonomark/><nbsp/><nbsp/>\n                <copyleft/><nbsp/><nbsp/>\n                <registered/><nbsp/><nbsp/>\n                <trademark/><nbsp/><nbsp/>\n                <servicemark/><nbsp/><nbsp/>\n                <ellipsis/><nbsp/><nbsp/>\n                <midpoint/><nbsp/><nbsp/>\n                <swungdash/><nbsp/><nbsp/>\n                <permille/><nbsp/><nbsp/>\n                <pilcrow/><nbsp/><nbsp/>\n                <section-mark/><nbsp/><nbsp/>\n                <minus/><nbsp/><nbsp/>\n                <times/><nbsp/><nbsp/>\n                <solidus/><nbsp/><nbsp/>\n                <obelus/><nbsp/><nbsp/>\n                <plusminus/></p>\n\n                <p>There are a few  common abbreviations of Latin phrases that can be achieved in HTML one way, and in <latex/> with a slightly different mechanism.  These are due to <latex/>'s treatment of a period (full stop), depending on its surroundings.  So not reserved characters, but just divergent treatment.  Using these will lead to the best quality in all your outputs.  See Will Robertson's informative and arcane <url href=\"http://latex-alive.tumblr.com/post/827168808/correct-punctuation-spaces\" visual=\"latex-alive.tumblr.com/post/827168808\">blog post</url> on the topic if you want the full story for the treatment of a full stop in <latex/>.</p>\n\n                <tabular>\n                    <row><cell>Tag</cell><cell>Realization</cell><cell>Meaning</cell></row>\n                    <!--  -->\n                    <row><cell><c>ad</c></cell>    <cell><ad/>    </cell><cell><foreign>anno Domini</foreign>, in the year of the Lord</cell>      </row>\n                    <row><cell><c>am</c></cell>    <cell><am/>    </cell><cell><foreign>ante meridiem</foreign>, before midday</cell>              </row>\n                    <row><cell><c>bc</c></cell>    <cell><bc/>    </cell><cell>English, before Christ</cell>                                       </row>\n                    <row><cell><c>ca</c></cell>    <cell><ca/>    </cell><cell><foreign>circa</foreign>, about</cell>                              </row>\n                    <row><cell><c>eg</c></cell>    <cell><eg/>    </cell><cell><foreign>exempli gratia</foreign>, for example</cell>               </row>\n                    <row><cell><c>etal</c></cell>  <cell><etal/>  </cell><cell><foreign>et alia</foreign>, and others</cell>                       </row>\n                    <row><cell><c>etc</c></cell>   <cell><etc/>   </cell><cell><foreign>et caetera</foreign>, and the rest</cell>                  </row>\n                    <row><cell><c>ie</c></cell>    <cell><ie/>    </cell><cell><foreign>id est</foreign>, in other words</cell>                    </row>\n                    <row><cell><c>nb</c></cell>    <cell><nb/>    </cell><cell><foreign>nota bene</foreign>, note well</cell>                      </row>\n                    <row><cell><c>pm</c></cell>    <cell><pm/>    </cell><cell><foreign>post meridiem</foreign>, after midday</cell>               </row>\n                    <row><cell><c>ps</c></cell>    <cell><ps/>    </cell><cell><foreign>post scriptum</foreign>, after what has been written</cell></row>\n                    <row><cell><c>vs</c></cell>    <cell><vs/>    </cell><cell><foreign>versus</foreign>, against</cell>                           </row>\n                    <row><cell><c>viz</c></cell>   <cell><viz/>   </cell><cell><foreign>videlicet</foreign>, namely</cell>                         </row>\n                </tabular>\n\n                <p>We also distinguish between abbreviations (<abbr>vs.</abbr>), acronyms (<acro>SCUBA</acro>) and initialisms (<init>XML</init>).  This is a test of the text version of a multiplication symbol: 2<nbsp/><times/><nbsp/>4.</p>\n\n                <!-- 47.266898N -122.596464W, then 505.3 feet to mean tideline -->\n                <p>Simple coordinates with degrees, minutes, seconds, or temperature, or distance in feet and inches.  <q>We parked the car at 36<degree/>16<prime/>0.83<dblprime/>N, 122<degree/>35<prime/>47.27<dblprime/>W, and since it was 93<degree/>F, we walked 505<prime/>3.6<dblprime/> so we could swim in the bay.</q></p>\n\n                <p>An <term>em dash</term> is the long dash used much like parentheses (not an <term>en dash</term> used to denote a range, such as a range of page numbers).  It should not have spaces around it, but some style guides allow for a <em>thin</em> space, which<mdash/>we test right now.  A publication file entry can be set to <c>none</c> or <c>thin</c> to control this.</p>\n            </subsection>\n\n            <subsection>\n                <title>Currency</title>\n\n                <p>For best results, be certain the right Unicode characters are in your source.  If you only need a certain symbol rarely, you can enter it in your source via its Unicode number.  For example, to obtain a peso, type <c>&amp;#x20B1;</c>.  This table has been tested with our default fonts, and should be fine for <init>HTML</init> output.  Please report any difficulties with different <latex/> fonts, as there are extra measures we can take to make these more robust.  (We've already done this for the Paraguayan guaraní.)</p>\n                <table>\n                    <title>Supported Currency</title>\n                    <tabular>\n                        <row bottom=\"medium\">\n                            <cell>Sign</cell>\n                            <cell>Unicode</cell>\n                            <cell>Name</cell>\n                        </row>\n                        <row>\n                            <cell>&#x0024;</cell>\n                            <cell><c>U+0024</c></cell>\n                            <cell>dollar</cell>\n                        </row>\n                        <row>\n                            <cell>&#x00a2;</cell>\n                            <cell><c>U+00A2</c></cell>\n                            <cell>cent</cell>\n                        </row>\n                        <row>\n                            <cell>&#x00a3;</cell>\n                            <cell><c>U+00A3</c></cell>\n                            <cell>sterling</cell>\n                        </row>\n                        <row>\n                            <cell>&#x00a4;</cell>\n                            <cell><c>U+00A4</c></cell>\n                            <cell>currency</cell>\n                        </row>\n                        <row>\n                            <cell>&#x00a5;</cell>\n                            <cell><c>U+00A5</c></cell>\n                            <cell>yen</cell>\n                        </row>\n                        <row>\n                            <cell>&#x0192;</cell>\n                            <cell><c>U+0192</c></cell>\n                            <cell>florin</cell>\n                        </row>\n                        <row>\n                            <cell>&#x0e3f;</cell>\n                            <cell><c>U+0E3F</c></cell>\n                            <cell>baht</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20a1;</cell>\n                            <cell><c>U+20A1</c></cell>\n                            <cell>colon</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20a4;</cell>\n                            <cell><c>U+20A4</c></cell>\n                            <cell>lira</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20a6;</cell>\n                            <cell><c>U+20A6</c></cell>\n                            <cell>naira</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20a9;</cell>\n                            <cell><c>U+20A9</c></cell>\n                            <cell>won</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20ab;</cell>\n                            <cell><c>U+20AB</c></cell>\n                            <cell>dong</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20ac;</cell>\n                            <cell><c>U+20AC</c></cell>\n                            <cell>euro</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20b1;</cell>\n                            <cell><c>U+20B1</c></cell>\n                            <cell>peso</cell>\n                        </row>\n                        <row>\n                            <cell>&#x20b2;</cell>\n                            <cell><c>U+20B2</c></cell>\n                            <cell>guarani</cell>\n                        </row>\n                    </tabular>\n                </table>\n            </subsection>\n\n            <subsection xml:id=\"subsection-icons-in-text\">\n                <title>Icons in Text</title>\n\n                <p>A limited supply of icons can be used when explaining how to use some computer application.  The empty element is <tage>icon</tage> and the attribute is <attr>name</attr>.</p>\n\n                <p>We sprinkle <icon name=\"gear\"/> a few into a few sentences <icon name=\"wrench\"/> to check baselines <icon name=\"file-save\"/> and font sizing.  We sprinkle <icon name=\"gear\"/> a few into a few sentences <icon name=\"wrench\"/> to check baselines <icon name=\"file-save\"/> and font sizing.  We sprinkle <icon name=\"gear\"/> a few into a few sentences <icon name=\"wrench\"/> to check baselines <icon name=\"file-save\"/> and font sizing.  We sprinkle <icon name=\"gear\"/> a few into a few sentences <icon name=\"wrench\"/> to check baselines <icon name=\"file-save\"/> and font sizing.</p>\n\n                <table>\n                    <title>User-Interface Icons</title>\n\n                    <tabular>\n                        <col/>\n                        <col halign=\"center\" right=\"medium\"/>\n                        <col/>\n                        <col halign=\"center\" right=\"medium\"/>\n                        <col/>\n                        <col halign=\"center\"/>\n                        <row bottom=\"medium\">\n                            <cell>Name</cell><cell>Icon</cell>\n                            <cell>Name</cell><cell>Icon</cell>\n                            <cell>Name</cell><cell>Icon</cell>\n                        </row>\n                        <row>\n                            <cell><c>arrow-down</c></cell><cell><icon name=\"arrow-down\"/></cell>\n                            <cell><c>arrow-left</c></cell><cell><icon name=\"arrow-left\"/></cell>\n                            <cell><c>arrow-right</c></cell><cell><icon name=\"arrow-right\"/></cell>\n                        </row>\n                        <row>\n                            <cell><c>arrow-up</c></cell><cell><icon name=\"arrow-up\"/></cell>\n                            <cell><c>file-save</c></cell><cell><icon name=\"file-save\"/></cell>\n                            <cell><c>gear</c></cell><cell><icon name=\"gear\"/></cell>\n                        </row>\n                         <row>\n                            <cell><c>menu</c></cell><cell><icon name=\"menu\"/></cell>\n                            <cell><c>wrench</c></cell><cell><icon name=\"wrench\"/></cell>\n                            <cell/><cell/>\n                            <!-- <cell><c></c></cell><cell><icon name=\"\"/></cell> -->\n                        </row>\n                        <!-- Keep rows full (w/ empty cells) to please HTML validator -->\n\n                    </tabular>\n                </table>\n\n                <table>\n                    <title>Creative Commons License Icons</title>\n\n                    <tabular>\n                        <col/>\n                        <col halign=\"center\" right=\"medium\"/>\n                        <col/>\n                        <col halign=\"center\" right=\"medium\"/>\n                        <col/>\n                        <col halign=\"center\"/>\n                        <row bottom=\"medium\">\n                            <cell>Name</cell><cell>Icon</cell>\n                            <cell>Name</cell><cell>Icon</cell>\n                            <cell>Name</cell><cell>Icon</cell>\n                        </row>\n                        <row>\n                            <cell><c>cc</c></cell><cell><icon name=\"cc\"/></cell>\n                            <cell><c>cc-by</c></cell><cell><icon name=\"cc-by\"/></cell>\n                            <cell><c>cc-sa</c></cell><cell><icon name=\"cc-sa\"/></cell>\n                        </row>\n                        <row>\n                            <cell><c>cc-nc</c></cell><cell><icon name=\"cc-nc\"/></cell>\n                            <cell><c>cc-pd</c></cell><cell><icon name=\"cc-pd\"/></cell>\n                            <cell><c>cc-zero</c></cell><cell><icon name=\"cc-zero\"/></cell>\n                            <!-- <cell><c></c></cell><cell><icon name=\"\"/></cell> -->\n                        </row>\n                        <!-- Keep rows full (w/ empty cells) to please HTML validator -->\n                    </tabular>\n                </table>\n\n                <p>Nominations of new icons must<ul>\n                    <li>Have a Unicode character representation.</li>\n                    <li>Be in the <init>HTML/CSS/JS</init> Font Awesome 5 catalog.</li>\n                    <li>Be in the <latex/> <c>fontawesome5</c> package.</li>\n                    <li>Have a reasonably semantic <pretext/> name.</li>\n                </ul>Please supply all this information, including the official Unicode name, with your request.  Better yet, form a pull request.</p>\n\n                <warning>\n                    <title>Icons, <c>xelatex</c>, and Fonts</title>\n\n                    <p>When processing a <latex/> file with <c>xelatex</c> the Font Awesome 5 icons are expected to be in a <em>system</em> font whose name is <c>Font Awesome 5 Free</c>.  This is not a filename, and installing the <latex/> <c>fontawesome5</c> package into your <latex/> installation does not always guarantee that this font will automatically be available as a <em>system</em> font.</p>\n\n                    <p>The Publisher's Guide contains some discussion about installing fonts into a system, as part of the documentation of creating a <latex/> style, and has particular warnings about only using the <latex/> <c>fontawesome5</c> package as a vehicle for installing and accessing these fonts.</p>\n                </warning>\n            </subsection>\n\n            <subsection xml:id=\"subsection-keyboard\">\n                <title>Keyboard Keys</title>\n                <idx>keyboard keys</idx>\n\n                <p>Your text can include specialized text meant to look like a key on the keyboard of a calculator or other device.  So you can go <kbd>b</kbd> <kbd>Enter</kbd> <kbd>&lt;</kbd> or <kbd>F1</kbd>.  Or maybe a sequence as: <kbd>Tab</kbd> &gt; <kbd>Ctrl</kbd> &gt; <kbd>T</kbd>.  Use the <tag>kbd</tag> element, with the label of the key as content.</p>\n\n                <p>There is a growing supply of keys which are labeled with graphics rather than text, such as a left arrow <kbd name=\"left\"/>, right arrow <kbd name=\"right\"/>, up arrow <kbd name=\"up\"/>, down arrow <kbd name=\"down\"/>, and Enter <kbd name=\"enter\"/>.  See <pubtitle>The <pretext/> Guide</pubtitle> for the definitive list.  In <xref ref=\"named-keyboard-keys\"/> the literal column means the symbol/character is the content of a <tag>kbd</tag> element, while the named column means the symbol/character has been chosen via the value of the <attr>name</attr> attribute of an empty <tage>kbd</tage> element.</p>\n\n                <table xml:id=\"named-keyboard-keys\">\n                <title>Named keys</title>\n                    <tabular halign=\"center\">\n                    <row>\n                        <cell></cell>\n                         <cell>Literal</cell>\n                        <cell>Named</cell>\n                    </row>\n                    <row>\n                        <cell>Ampersand</cell>\n                         <cell><kbd>&amp;</kbd></cell>\n                        <cell><kbd name=\"ampersand\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Less than</cell>\n                        <cell><kbd>&lt;</kbd></cell>\n                        <cell><kbd name=\"less\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Greater than</cell>\n                        <cell><kbd>&gt;</kbd></cell>\n                        <cell><kbd name=\"greater\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Dollar</cell>\n                        <cell><kbd>$</kbd></cell>\n                        <cell><kbd name=\"dollar\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Per cent</cell>\n                        <cell><kbd>%</kbd></cell>\n                        <cell><kbd name=\"percent\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Open brace</cell>\n                        <cell><kbd>{</kbd></cell>\n                        <cell><kbd name=\"openbrace\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Close brace</cell>\n                        <cell><kbd>}</kbd></cell>\n                        <cell><kbd name=\"closebrace\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Hash</cell>\n                        <cell><kbd>#</kbd></cell>\n                        <cell><kbd name=\"hash\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Backslash</cell>\n                        <cell><kbd>\\</kbd></cell>\n                        <cell><kbd name=\"backslash\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Tilde</cell>\n                        <cell><kbd>~</kbd></cell>\n                        <cell><kbd name=\"tilde\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Circumflex</cell>\n                        <cell><kbd>^</kbd></cell>\n                        <cell><kbd name=\"circumflex\"/></cell>\n                    </row>\n                    <row>\n                        <cell>Underscore</cell>\n                        <cell><kbd>_</kbd></cell>\n                        <cell><kbd name=\"underscore\"/></cell>\n                    </row>\n                    </tabular>\n                </table>\n\n                <table>\n                <title>Upper Case</title>\n                    <tabular halign=\"center\">\n                    <row>\n                        <cell><kbd>~</kbd></cell>\n                        <cell><kbd>!</kbd></cell>\n                        <cell><kbd>@</kbd></cell>\n                        <cell><kbd>#</kbd></cell>\n                        <cell><kbd>$</kbd></cell>\n                        <cell><kbd>%</kbd></cell>\n                        <cell><kbd>^</kbd></cell>\n                        <cell><kbd>&amp;</kbd></cell>\n                        <cell><kbd>*</kbd></cell>\n                        <cell><kbd>(</kbd></cell>\n                        <cell><kbd>)</kbd></cell>\n                        <cell><kbd>_</kbd></cell>\n                        <cell><kbd>+</kbd></cell>\n                        <cell></cell>\n                    </row>\n                    <row>\n                        <cell><kbd>Tab</kbd></cell>\n                        <cell><kbd>Q</kbd></cell>\n                        <cell><kbd>W</kbd></cell>\n                        <cell><kbd>E</kbd></cell>\n                        <cell><kbd>R</kbd></cell>\n                        <cell><kbd>T</kbd></cell>\n                        <cell><kbd>Y</kbd></cell>\n                        <cell><kbd>U</kbd></cell>\n                        <cell><kbd>I</kbd></cell>\n                        <cell><kbd>O</kbd></cell>\n                        <cell><kbd>P</kbd></cell>\n                        <cell><kbd>{</kbd></cell>\n                        <cell><kbd>}</kbd></cell>\n                        <cell><kbd>|</kbd></cell>\n                    </row>\n                    <row>\n                        <cell><kbd>CapsLock</kbd></cell>\n                        <cell><kbd>A</kbd></cell>\n                        <cell><kbd>S</kbd></cell>\n                        <cell><kbd>D</kbd></cell>\n                        <cell><kbd>F</kbd></cell>\n                        <cell><kbd>G</kbd></cell>\n                        <cell><kbd>H</kbd></cell>\n                        <cell><kbd>J</kbd></cell>\n                        <cell><kbd>K</kbd></cell>\n                        <cell><kbd>L</kbd></cell>\n                        <cell><kbd>:</kbd></cell>\n                        <cell><kbd>'</kbd></cell>\n                        <cell><kbd>Enter</kbd></cell>\n                        <cell></cell>\n                    </row>\n                    <row>\n                        <cell><kbd>Shift</kbd></cell>\n                        <cell><kbd>Z</kbd></cell>\n                        <cell><kbd>X</kbd></cell>\n                        <cell><kbd>C</kbd></cell>\n                        <cell><kbd>V</kbd></cell>\n                        <cell><kbd>B</kbd></cell>\n                        <cell><kbd>N</kbd></cell>\n                        <cell><kbd>M</kbd></cell>\n                        <cell><kbd>&lt;</kbd></cell>\n                        <cell><kbd>&gt;</kbd></cell>\n                        <cell><kbd>?</kbd></cell>\n                        <cell><kbd>Shift</kbd></cell>\n                        <cell></cell>\n                    </row>\n                    </tabular>\n                </table>\n\n                <table>\n                <title>Lower Case</title>\n                    <tabular halign=\"center\">\n                    <row>\n                        <cell><kbd>`</kbd></cell>\n                        <cell><kbd>1</kbd></cell>\n                        <cell><kbd>2</kbd></cell>\n                        <cell><kbd>3</kbd></cell>\n                        <cell><kbd>4</kbd></cell>\n                        <cell><kbd>5</kbd></cell>\n                        <cell><kbd>6</kbd></cell>\n                        <cell><kbd>7</kbd></cell>\n                        <cell><kbd>8</kbd></cell>\n                        <cell><kbd>9</kbd></cell>\n                        <cell><kbd>0</kbd></cell>\n                        <cell><kbd>-</kbd></cell>\n                        <cell><kbd>=</kbd></cell>\n                        <cell></cell>\n                    </row>\n                    <row>\n                        <cell><kbd>Tab</kbd></cell>\n                        <cell><kbd>q</kbd></cell>\n                        <cell><kbd>w</kbd></cell>\n                        <cell><kbd>e</kbd></cell>\n                        <cell><kbd>r</kbd></cell>\n                        <cell><kbd>t</kbd></cell>\n                        <cell><kbd>y</kbd></cell>\n                        <cell><kbd>u</kbd></cell>\n                        <cell><kbd>i</kbd></cell>\n                        <cell><kbd>o</kbd></cell>\n                        <cell><kbd>p</kbd></cell>\n                        <cell><kbd>[</kbd></cell>\n                        <cell><kbd>]</kbd></cell>\n                        <cell><kbd>\\</kbd></cell>\n                    </row>\n                    <row>\n                        <cell><kbd>CapsLock</kbd></cell>\n                        <cell><kbd>a</kbd></cell>\n                        <cell><kbd>s</kbd></cell>\n                        <cell><kbd>d</kbd></cell>\n                        <cell><kbd>f</kbd></cell>\n                        <cell><kbd>g</kbd></cell>\n                        <cell><kbd>h</kbd></cell>\n                        <cell><kbd>j</kbd></cell>\n                        <cell><kbd>k</kbd></cell>\n                        <cell><kbd>l</kbd></cell>\n                        <cell><kbd>;</kbd></cell>\n                        <cell><kbd>'</kbd></cell>\n                        <cell><kbd>Enter</kbd></cell>\n                        <cell></cell>\n                    </row>\n                    <row>\n                        <cell><kbd>Shift</kbd></cell>\n                        <cell><kbd>z</kbd></cell>\n                        <cell><kbd>x</kbd></cell>\n                        <cell><kbd>c</kbd></cell>\n                        <cell><kbd>v</kbd></cell>\n                        <cell><kbd>b</kbd></cell>\n                        <cell><kbd>n</kbd></cell>\n                        <cell><kbd>m</kbd></cell>\n                        <cell><kbd>,</kbd></cell>\n                        <cell><kbd>.</kbd></cell>\n                        <cell><kbd>/</kbd></cell>\n                        <cell><kbd>Shift</kbd></cell>\n                        <cell></cell>\n                    </row>\n                    </tabular>\n                </table>\n            </subsection>\n\n            <subsection xml:id=\"section-urls\">\n                <title>URLs, such as <url href=\"http://example.com\"/></title>\n                <idx><h>link</h><h>external, url</h></idx>\n                <idx><h>reference</h><h>external, url</h></idx>\n\n                <p>The <tag>url</tag> element can be used to create an external reference.  The mandatory <attr>href</attr> attribute is the actual <init>URL</init> complete with the protocol (e.g. <c>https://</c>).  Content for the element is optional, and if provided will be the <q>clickable</q> text.  In this case, a <attr>visual</attr> attribute can be provided. In producing the print version of a PDF, this will become a parenthetical with a more friendly version of the <init>URL</init>.  When no content is provided, the <q>clickable</q> will be the <init>URL</init> with a preference for an optional <attr>visual</attr>.  This subsection has some (extreme) tests and we leave complete documentation and full details for the <pretext/> Guide.</p>\n\n                <p>A long <init>URL</init> for testing:  <url href=\"http://www.pcc.edu/enroll/registration/dropping.html#withdraw\" visual=\"www.pcc.edu/enroll/registration/dropping.html#withdraw\"/>.  Notice in the source that you <em>do not</em> put any tags inside the <attr>href</attr> or <attr>visual</attr> attributes, but you may need to provide XML escape sequences (see <xref ref=\"subsection-xml-escape\" text=\"type-global\"/>). </p>\n\n                <p>A <tag>url</tag> element in the print version of a PDF will get a trailing parenthetical containing the (simplified) URL in the highly-recommended <attr>visual</attr> attribute.  If you do not provide the <attr>visual</attr> attribute in this case, then you will get the <attr>href</attr> value repeated, possibly with some editing.  If you insist, you can make the <attr>visual</attr> attribute identical to the <attr>href</attr> attribute.  Some tests:<ul>\n                    <li><url href=\"http://example.com/\" visual=\"example.com\">With a useful <attr>visual</attr> attribute</url></li>\n                    <li><url href=\"http://example.com/\" visual=\"http://example.com/\">With a duplicate <attr>visual</attr> attribute</url></li>\n                    <li><url href=\"http://example.com/\">With no <attr>visual</attr> attribute</url>, so an edited one is formulated (no protocol)</li>\n                </ul></p>\n\n                <p>Here is a totally bogus <init>URL</init>, which contains every possible legal character, so if this fails to convert there is some problematic character.  In order to test the use of a percent sign (<c>%</c>) in a URL, we follow it by two hex digits, specifically, <c>58</c>, which is a way to represent the character <c>X</c> in a <init>URL</init>.  Normal text, monospace text, <tag>url</tag> with just <attr>href</attr>, <tag>url</tag> with <attr>href</attr> and <attr>visual</attr>, <tag>url</tag> with <attr>href</attr>, <attr>visual</attr> and content.  Notice how the various versions do, or do not, line-break in <latex/>/PDF output, including the (potentially confusing) use of a use of a hyphen in the normal text version.  Note that <c>#</c> starts a fragment identifier, so it is the penultimate character.  A <c>?</c> would normally start a query string, but as the fragment identifier, it is not special.  Finally, square brackets (<c>[</c> and <c>]</c>) are only legal in limited situations (authority component for IPv6 host literals), so they are present as percent-encoded literals, which really does not demonstrate anything.  All these efforts to make a comprehensive, but legal, <init>URL</init> are meant to appease the EPUB validator which will otherwise flag them as errors.</p>\n\n                <blockquote>\n\n                    <p>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%-._~:/%5B%5D@!$&amp;'()*+,;=#?</p>\n\n                    <p><c>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%-._~:/%5B%5D@!$&amp;'()*+,;=#?</c></p>\n\n                    <p><url href=\"http://example.com/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\"/></p>\n\n                    <p><url href=\"http://example.com/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\" visual=\"example.com/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\"/></p>\n\n                    <p><url href=\"http://example.com/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\" visual=\"example.com/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\">Characters to a footnote</url></p>\n\n                </blockquote>\n\n                <p>Line-breaking in <latex/>/PDF output is specialized, using path separators (slashes) as candidates for splitting across lines: <url href=\"http://example.com/long/long/long/long/long/long/long/long/long/long/long/long/long/long/long/long/long/long/long/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer/longer\"/></p>\n\n                <p>We are not fans of footnotes, they are totally unstructured.<fn><url href=\"https://en.wikipedia.org/wiki/Carleson%27s_theorem\" visual=\"\">Carleson's Theorem</url></fn>\n                A URL in a footnote migrates around, and so care must be taken.<fn><url href=\"http://example.com/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\"/></fn>\n                This paragraph has two footnotes, one with a real URL from Jesse Oldroyd, another with a fake URL from the above suite.\n                For good measure, we repeat the URL found in the first footnote<fn>And if you do provide a link like <url href=\"https://en.wikipedia.org/wiki/Carleson%27s_theorem\" visual=\"en.wikipedia.org/wiki/Carleson%27s_theorem\">Carleson's Theorem</url> in a footnote you should see an  easy-to-read parenthetical version in some output formats, such as <c>en.wikipedia.org/wiki/Carleson%27s_theorem</c>.</fn>:\n                <url href=\"https://en.wikipedia.org/wiki/Carleson%27s_theorem\" visual=\"\">Carleson's Theorem</url>.\n                And we include a no-content version of the same link, with a visual version provided and employed:\n                <url href=\"https://en.wikipedia.org/wiki/Carleson%27s_theorem\" visual=\"en.wikipedia.org/wiki/Carleson%27s_theorem\"/>.</p>\n            </subsection>\n\n\n            <subsection>\n                <title>Biological Names</title>\n                <idx>biological names</idx>\n                <idx><h>biological names</h><h>taxon</h></idx>\n                <idx><h>scientific names</h><see>biological names</see></idx>\n\n                <p>The <c>taxon</c><idx>taxon</idx><idx><h>biological names</h><h>taxon</h></idx> element can be used all by itself to get an italicized scientific name, as in <taxon>Escherichia coli</taxon>.  It can also be structured with the elements <c>genus</c><idx>genus</idx><idx><h>biological names</h><h>genus</h></idx> and <c>species</c>,<idx>species</idx><idx><h>biological names</h><h>species</h></idx> as in using both together in <taxon><genus>Cyclops</genus><species>kolensis</species></taxon>.  Or the subelements can be used individually.  Rules for capitalization are presently your responsibility as an author.  Possible improvements include new subelements, attributes for database identifiers, and checks on capitalization.  Also, we might automatically abbreviate the genus after first use.</p>\n\n                <p>There is an attribute, <c>@ncbi</c><idx>ncbi attribute</idx><idx><h>attributes</h><h>ncbi attribute</h></idx><idx><h>biological names</h><h>ncbi attribute</h></idx> that you can use on the <c>taxon</c> element to precisely identify the organism you are discussing using an identification number from the <url href=\"https://www.ncbi.nlm.nih.gov/\" visual=\"www.ncbi.nlm.nih.gov\">National Center for Biotechnology Information</url>.  Their <url href=\"https://www.ncbi.nlm.nih.gov/taxonomy\" visual=\"www.ncbi.nlm.nih.gov/taxonomy\">taxonomy</url> is at <c>www.ncbi.nlm.nih.gov/taxonomy</c>.  Right now, we do not do anything with this attribute, but things like links are certainly possible.  See the source of this document to see it in use with <taxon ncbi=\"7229\"><genus>Drosophila</genus><species>miranda</species></taxon> which could be used to construct a link to <url href=\"https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=7229\" visual=\"www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=7229\">further information via id number</url> or even <url href=\"https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?name=Drosophila+miranda\" visual=\"www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?name=Drosophila+miranda\">further information via just the name</url>.</p>\n            </subsection>\n\n            <subsection>\n                <title>Verbatim in titles, <c>\\a&amp;b#c%d~e{f}g$h_i^j</c>, OK</title>\n\n                <p>You can test the migration of the <latex/> special characters in this section title by requesting a 2-deep Table of Contents via the publication file.</p>\n            </subsection>\n\n            <subsection xml:id=\"subsection-special-situations\">\n                <title>Special Situations</title>\n\n                <p>Sage defines a nice syntax for generators of algebraic structures, but we must remember to use an escape sequence for the &lt; symbol (see <xref ref=\"subsection-xml-escape\" text=\"type-global\"/>).</p>\n\n                <sage>\n                    <input>\n                    P.&lt;t> = ZZ[]\n                    P\n                    </input>\n                    <output>Univariate Polynomial Ring in t over Integer Ring</output>\n                </sage>\n\n                <p>There is an alternate Sage syntax, which avoids the less-than and greater symbols.</p>\n\n                <sage>\n                    <input>\n                    R = ZZ['u']\n                    u = R.gen(0)\n                    (u, R)\n                    </input>\n                    <output>(u, Univariate Polynomial Ring in u over Integer Ring)</output>\n                </sage>\n\n                <p>Ampersands, less-than, and greater symbols are likely to be necessary in source code, such as Sage code (think generators of field extensions) or TikZ code (think arrowheads), and in matrices (think separating entries).  If you have a big matrix, or a huge chunk of TikZ code, you can protect it all at once from the XML processor by wrapping it in <c>&lt;![CDATA[</c><nbsp/><nbsp/><nbsp/><c>]]&gt;</c>.  It should be possible to write without ever using the <q>CDATA</q> mechanism, but it might get tedious in places to use the supplied macros or <init>XML</init> escape sequences.  This construction is often mis-understood as a solution better remedied by reading <xref ref=\"subsection-xml-escape\" text=\"type-global\"/> again.</p>\n\n                <p>We test the three pre-defined <latex/> macros for &amp;, &lt;, and &gt; with a pair of aligned equations:<md>\n                    <mrow>a^2 + b^2\\amp\\lt c^2</mrow>\n                    <mrow>c^2\\amp\\gt a^2 + b^2</mrow>\n                </md></p>\n            </subsection>\n\n            <subsection xml:id=\"subsection-jupyter-dollars\">\n                <title>Jupyter Notebook, Markdown, MathJax, Delimiters</title>\n\n                <p>A Jupyter notebook allows a mix of <init>HTML</init> (our logistical preference for a conversion) and Markown (another set of special characters and their escaped versions).  Certain pairs of delimiters, when appearing in consecutive <init>HTML</init> <tag>code</tag> elements require extraordinary care.  But the one nut we cannot crack is pairs of dollar signs.  So the next paragraph is known to render badly in a Jupyter notebook, but should otherwise be a bit boring.</p>\n\n                <p><c>$</c> and <c>$</c></p>\n            </subsection>\n\n            <subsection>\n                <title><latex/> Characters, Ligatures, and More</title>\n\n                <p>This section is just for testing, and the more you know about <latex/>, the more we would encourage you to <em>not</em> to read this.  Look to the Author's Guide for the <em>right</em> way to author your source.</p>\n\n                <p>The ten reserved characters, directly in the source: # $ % ^ &amp; _ { } ~ \\.  And again: X#X$X%X^X&amp;X_X{X}X~X\\X, but smashed up tight to intermediate characters.</p>\n\n                <p>In a verbatim presentation: <c># $ % ^ &amp; _ { } ~ \\</c>.</p>\n\n                <p>And <c>X#X$X%X^X&amp;X_X{X}X~X\\X</c>.  (These verbatim versions are authored in different paragraphs to work around the Jupyter notebook bug described above.)</p>\n\n                <p>We also disrupt certain constructions from <latex/>.  Attempting to sneak-in any traditional macro for the purposes of <latex/>-only output, such as, say a \\newpage, will fail since the leading backslash will be caught and converted to <c>\\textbackslash</c>.  (See?  It just happened twice.)  For technical reasons we want to particularly test \\textbackslash, \\textbraceleft, and \\textbraceright.</p>\n\n                <p>Four <q><tex/> ligatures</q>, <c>--</c>, <c>---</c>, <c>``</c>, and <c>''</c>, authored in running text, --, ---, ``, ''.  It may be hard to tell that the two consecutive apostrophes have not coalesced into a curly left smart quote, but see below, the spacing is subtly different.</p>\n\n                <p>We want the double quote mark from your keyboard, <c>\"</c>, to not morph into some other character: \"<nbsp/>.</p>\n\n                <p>More testing: runs of hyphens.  Such as: - (one), -- (two), --- (three), ---- (four), ----- (five), ------ (six), ------- (seven).  Use the empty elements <tage>ndash</tage> and <tage>mdash</tage> for the longer dashes/hyphens.</p>\n\n                <p>Runs of apostrophes should not become smart right double quotes:  ' (one), '' (two), ''' (three), '''' (four), ''''' (five), '''''' (six), ''''''' (seven).    You might want to cut-and-paste these into a text file to convince yourself there are the right number of characters.  Here are two smart right double quotes, separated by a non-breaking space, for visual comparison: <rq/><nbsp/><rq/>.  Or 30 apostrophes on a line of their own (longer) followed by 15 smart right double quotes (shorter).</p>\n                <p>''''''''''''''''''''''''''''''.</p>\n                <p><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/><rq/>.</p>\n\n                <p>Runs of backticks (accent grave) should not become smart left double quotes when the output is processed by <latex/>:  ` (one), `` (two), ``` (three), ```` (four), ````` (five), `````` (six), ``````` (seven).  Furthermore, in a context where Markdown syntax is recognized as well (<eg/> a Jupyter notebook), paired backticks should <em>not</em> produce `inline verbatim text`.</p>\n\n                <p>The next paragraph has a long run of words separated/joined by the keyboard forward-slash character.  With this input, <latex/> will not line-break at the slash, nor will it hypenate anywhere.  <pretext/>  automatically provides an improved slash, which will line-break, as you should see below in <latex/> output.  There is a bad right margin, but that is due to the absurdity of this test.  This sort of problem should be no better or worse for the use of this character.  Further refinements (zero-width space) and packages can be used to get hyphenation.  <init>HTML</init> will line-break rationally with no extra help.  Remember the <tage>solidus</tage> character for super-simple text fractions like 7<solidus/>32 (which will <em>not</em> line-break), and math elements or SI unit markup for technical work.</p>\n\n                <p>A/test/of/some/short/words/that/go/off/the/end/of/a/line/A/test/of/some/short/words/that/go/off/the/end/of/a/line/A/test/of/some/short/words/that/go/off/the/end/of/a/line/A/test/of/some/short/words/that/go/off/the/end/of/a/line/A/test/of/some/short/words/that/go/off/the/end/of/a/line.</p>\n            </subsection>\n\n            <subsection>\n                <title><init>HTML</init> and accidental mathematics</title>\n\n                <p>We render mathematics in web pages with the fantastic MathJax Javascript library.  Simplifying just a bit, it recognizes <latex/> syntax within a page, takes control of that text, and replaces it wth nice fonts and formatting.  Now, if you write about <latex/> you might well have some mathematics in your examples.  Best practice would be to use verbatim text for that, and we mark off such text as being off-limits to MathJax.</p>\n\n                <p>But if you are writing running text, then you can (accidentally) author some text which MathJax recognizes and converts to something (unintended).  And if you are doing this intentionally, then you have ignored <pretext/> markup for mathematics, and are missing out on some features.</p>\n\n                <p>A few tests that we can prevent any accidents.</p>\n\n                <p>Inline mathematics: \\(x^2\\).</p>\n\n                <p>Display mathematics: \\begin{align}x^2+y^2=z^2\\end{align}</p>\n\n                <p>Double backticks is a common <latex/> construction, which in <latex/>/PDF output <em>should not</em> become an opening quote-mark.  Also, a single backtick in HTML is a signal for MathJax to interpret ASCIIMath, and then a double backtick causes <q>random</q> pieces of mathematics on a page to not render at all.  So we have a quotation authored <latex/>-style: ``We have nothing to fear, but fear itself.''</p>\n            </subsection>\n        </section>\n\n        <section xml:id=\"graphics\" label=\"section-graphics\">\n            <title>Graphics</title>\n\n            <introduction>\n                <p>In addition to including images created externally (e.g. photographs),  <pretext/> supports several languages for describing diagrams and pictures with human-readable source code (<ie/> plain text), rather than using a <q>paint</q> program.  This section describes the various methods for incorporationg, or generating, graphis, images or diagrams.</p>\n            </introduction>\n\n            <subsection>\n                <title>Images from External Sources</title>\n\n                <p>If you have raster images (photographs, etc.) then they are specified with complete filenames, as above in Figure<nbsp/><xref ref=\"figure-function-derivative\"/> or just below.</p>\n\n                <figure>\n                    <caption>New Zealand Landscape, <url href=\"https://commons.wikimedia.org/wiki/File:NZ_Landscape_from_the_van.jpg\" visual=\"commons.wikimedia.org/wiki/File:NZ_Landscape_from_the_van.jpg\"><c>commons.wikimedia.org</c></url>, CC-BY-SA-2.0</caption>\n                    <image source=\"images/nz-landscape.jpg\" width=\"80%\"/>\n                </figure>\n\n                <p>If you have existing images that are vector graphics, then PDF format works best for <latex/> output and SVG format works best for HTML.  The utility <c>pdf2svg</c> works well for converting PDF to SVG.  In this case, specify your source as a filename, but leave off the file extension, and the appropriate version will be used for the current output format.</p>\n\n                <p>The image below is provided from a PDF file in <latex/> output, and was converted to an SVG for use with the HTML output.  It has been explicitly scaled to a width of 65% of the text width.  It has a <tag>description</tag>, but no <tag>shortdescription</tag>, so is testing that scenario.</p>\n\n                <figure xml:id=\"figure-complete-graph\">\n                    <caption>Complete graph on <m>16</m> vertices, from <c>www.texample.net</c></caption>\n                    <image source=\"images/complete-graph\" width=\"65%\">\n                        <description><p>A circular arrangment of <m>16</m> dots (<term>vertices</term>) with <m>120</m> straight lines (<term>edges</term>), joining every pair of dots.</p></description>\n                    </image>\n                </figure>\n\n                <remark>\n                    <title>Footnote Buried</title>\n\n                    <p>Nested <c>tcolorbox</c> (in <latex/> conversion) need special care when footnotes are interior.</p>\n\n                    <sidebyside margins=\"20% 30%\">\n                        <p>A paragraph interior to a <c>sidebyside</c> with a footnote<fn>Interior footnote.</fn> buried inside the paragraph.</p>\n                        <p>A second paragraph, just to avoid a one-panel warning.</p>\n                    </sidebyside>\n\n                    <p>The final paragraph of this remark, randomly placed, to test footnotes in <latex/> conversions.</p>\n                </remark>\n            </subsection>\n\n            <subsection xml:id=\"prefigure-diagrams\" label=\"prefigure-diagrams\">\n                <title><prefigure/></title>\n                <idx><prefigure/> image</idx>\n                <idx><h>image</h><h><prefigure/> image</h></idx>\n\n                <p><prefigure/> is a standalone project for authoring mathematical diagrams (see <url href=\"https://prefigure.org/\" visual=\"prefigure.org\"/>).  Its philosophy and approach are much like that of <pretext/>, and <prefigure/> is tightly integrated into <pretext/>.  One key feature is excellent support for the creation of accessible output formats.</p>\n\n                <p>As of 2024-11-06 development continues for <prefigure/> itself, and fine-tuning of its integration within <pretext/>.  But it is usable now for projects that want to use it.<ul>\n                    <li>You can author <prefigure/> diagrams, and then generate <init>SVG</init>, <init>PDF</init>, and <init>PNG</init> output versions with the <c>pretext/pretext</c> script (see the <pretext/> Guide), and expect them to render in <init>HTML</init>, <init>PDF</init>, and <init>EPUB</init> output formats.</li>\n                    <li>Look for automatic generation to come to the <pretext/>-CLI sometime very soon.</li>\n                    <li><prefigure/> has excellent support for annotations within an <init>SVG</init> diagram, supporting their use by screenreaders, for example.  See an example below.</li>\n                    <li>Production of tactile versions is now possible, though they are not incorporated explicitly into any of the output formats.  Perhaps they will become available via archive links or as a zip archive.</li>\n                </ul></p>\n\n                <p>This is a basic <prefigure/> diagram, in the sense that it does not use all the features of <prefigure/> or <pretext/>.</p>\n\n                <figure>\n                    <caption>Solution to a differential equation</caption>\n                    <image width=\"60%\">\n                        <prefigure label=\"prefigure-diffeq\"\n                                   xmlns=\"https://prefigure.org\">\n                            <diagram dimensions=\"(300,300)\" margins=\"5\">\n                                <definition>f(t,y) = (y[1], -pi*y[0]-0.3*y[1])</definition>\n                                <coordinates bbox=\"[-1,-3,6,3]\">\n                                    <grid-axes xlabel=\"t\"/>\n                                    <de-solve function=\"f\" t0=\"0\" t1=\"bbox[2]\"\n                                              y0=\"(0,2)\" name=\"oscillator\"\n                                              N=\"200\"/>\n                                    <plot-de-solution at=\"x\" solution=\"oscillator\"\n                                                      axes=\"(t,y0)\"/>\n                                    <plot-de-solution at=\"xprime\" solution=\"oscillator\"\n                                                      axes=\"(t,y1)\" stroke=\"red\"\n                                                      tactile-dash=\"9 9\"/>\n                                    <legend at=\"legend\" anchor=\"(bbox[2], bbox[3])\"\n                                            alignment=\"sw\" scale=\"0.9\" opacity=\"0.5\">\n                                        <item ref=\"x\"><m>x(t)</m></item>\n                                        <item ref=\"xprime\"><m>x'(t)</m></item>\n                                    </legend>\n                                </coordinates>\n                            </diagram>\n                        </prefigure>\n                    </image>\n                </figure>\n\n                <p>This next diagram employs some <latex/> macros that are defined in the usual way in <tag>docinfo</tag> and are employed to produce the names of some vectors in the labels.  The blue line is colored blue by a global <prefigure/> declaration, also in <tag>docinfo</tag>.</p>\n\n                <image width=\"60%\">\n                    <prefigure label=\"prefigure-projection\"\n                               xmlns=\"https://prefigure.org\">\n                        <diagram dimensions=\"(300,300)\" margins=\"5\">\n                            <definition>v=(2,1)</definition>\n                            <definition>b=(2,4)</definition>\n                            <definition>bhat=dot(v,b)/dot(v,v) * v</definition>\n                            <definition>bperp = b - bhat</definition>\n                            <coordinates bbox=\"[-1,-1,5,5]\">\n                                <grid-axes/>\n                                <line endpoints=\"((0,0),v)\"\n                                      infinite=\"yes\"/>\n                                <label anchor=\"(4.4,2.5)\">\n                                    <m>L</m>\n                                </label>\n\n                                <vector v=\"bperp\" tail=\"bhat\" stroke=\"gray\"/>\n                                <label anchor=\"midpoint(b,bhat)\"\n                                       alignment=\"ne\">\n                                    <m>\\bvec^\\perp</m>\n                                </label>\n\n                                <vector v=\"b\"/>\n                                <label anchor=\"b\" alignment=\"nw\">\n                                    <m>\\bvec</m>\n                                </label>\n\n                                <vector v=\"bhat\" stroke=\"red\"/>\n                                <label anchor=\"bhat\" alignment=\"se\">\n                                    <m>\\widehat{\\bvec}</m>\n                                </label>\n\n                                <vector v=\"v\"/>\n                                <label anchor=\"v\" alignment=\"se\">\n                                    <m>\\vvec</m>\n                                </label>\n                            </coordinates>\n                        </diagram>\n                    </prefigure>\n                </image>\n\n                <p>The next <prefigure/> diagram is authored with annotations, arranged in a hierarchy of increasing refinement and detail.  Each identified graphical component will read its annotation and show it on the screen below the diagram.  When a reader clicks on the image, a high-level summary will be read using the author-provided annotation.  The down and up arrow keys enable a reader to explore the diagram in more or less detail while the right and left arrow keys reveal features at the same level of detail.  When the focus is on the graph, pressing \"O\" will produce a sonification of the graph.</p>\n\n                <image width=\"60%\">\n                    <prefigure label=\"prefigure-tangent\"\n                               xmlns=\"https://prefigure.org\">\n                        <diagram dimensions=\"(300,300)\" margins=\"5\">\n                            <definition>a=1</definition>\n                            <definition>f(x) = exp(x/3)*cos(x)</definition>\n                            <coordinates bbox=\"[-4,-4,4,4]\">\n                                <grid-axes xlabel=\"x\" ylabel=\"y\"/>\n                                <graph at=\"graph\" function='f'/>\n                                <tangent-line at=\"tangent\" function=\"f\" point=\"a\"/>\n                                <point at=\"point\" p=\"(a, f(a))\">\n                                    <m>(a,f(a))</m>\n                                </point>\n                            </coordinates>\n\n                            <annotations>\n                                <annotation ref=\"figure\"\n                                            text=\"The graph of a function and its tangent line at the point a equals 1\">\n                                    <annotation ref=\"graph-tangent\"\n                                                text=\"The graph and its tangent line\">\n                                        <annotation ref=\"graph\"\n                                                    text=\"The graph of the function f\" sonify=\"yes\"/>\n                                        <annotation ref=\"point\"\n                                                    text=\"The point a comma f of a\"/>\n                                        <annotation ref=\"tangent\"\n                                                    text=\"The tangent line to the graph of f at the point\"/>\n                                    </annotation>\n                                </annotation>\n                            </annotations>\n\n                        </diagram>\n                    </prefigure>\n                </image>\n\n                <p>Including annotations enables a new type of interactive diagram within a <pretext/> document offering potential benefits for all readers.  In particular, annotations allow an author to call the reader's attention to specific details in a diagram and how they are related to one another so that the diagram and surrounding text are more tightly integrated.  The annotated diagram below introduces Fibonacci tilings, which are one-dimensional analogs of Penrose tilings, and offers an explanation of their aperiodicity.  Of course, surrounding text would usually provide a richer context for a diagram like this.</p>\n\n                <figure xml:id=\"figure-fibonnaci-tiling-annotated\">\n                  <caption>Fibonacci tilings are one-dimensional analogs of Penrose tilings.  The diagram on the left introduces the process of deflation that is used to produce tilings while the diagram on the right explains why they are aperiodic.</caption>\n                  <sidebyside widths=\"30% 50%\" valign=\"bottom\" margins=\"0% 15%\">\n                      <image>\n                          <prefigure xmlns=\"https://prefigure.org\"\n                                     label=\"prefigure-fibonacci-a\">\n\n                              <diagram dimensions=\"(200, 200)\">\n                                  <definition>phi=(sqrt(5)+1)/2</definition>\n                                  <definition>height=0.25</definition>\n                                  <definition>top=1</definition>\n                                  <definition>bottom=0</definition>\n                                  <definition>left=0</definition>\n                                  <definition>right=2</definition>\n                                  <definition>colors={0:'blue', 1:'red'}</definition>\n                                  <definition>widths={0:phi, 1:1}</definition>\n                                  <coordinates bbox=\"(-0.5,-1,3.5,2)\">\n                                      <transform>\n                                          <!-- Define the upper row of tiles-->\n                                          <translate by=\"(0,top)\"/>\n                                          <!-- We put tiles and their labels into a group for annotating-->\n                                          <group at=\"top-L\">\n                                              <rectangle lower-left=\"(0,0)\" dimensions=\"(widths[0], height)\"\n                                                         fill=\"${colors[0]}\" stroke=\"black\"/>\n                                              <label anchor=\"(widths[0]/2,height)\" alignment=\"n\">\n                                                  <m>L</m>\n                                              </label>\n                                          </group>\n                                          <translate by=\"(right,0)\"/>\n                                          <group at=\"top-S\">\n                                              <rectangle lower-left=\"(0,0)\" dimensions=\"(widths[1],height)\"\n                                                         fill=\"${colors[1]}\" stroke=\"black\"/>\n                                              <label anchor=\"(widths[1]/2, height)\" alignment=\"n\">\n                                                  <m>S</m>\n                                              </label>\n                                          </group>\n                                      </transform>\n\n                                      <transform>\n                                          <translate by=\"(0,bottom)\"/>\n                                          <transform>\n                                              <scale by=\"(1/phi, 1)\"/>\n                                              <group at=\"bottom-L\">\n                                                  <group at=\"bottom-LL\">\n                                                      <rectangle lower-left=\"(0,0)\" dimensions=\"(widths[0], height)\"\n                                                                 fill=\"${colors[0]}\" stroke=\"black\"/>\n                                                      <label anchor=\"(widths[0]/2,0)\" alignment=\"south\">\n                                                          <m>L</m>\n                                                      </label>\n                                                  </group>\n                                                  <translate by=\"(widths[0],0)\"/>\n                                                  <group at=\"bottom-LS\">\n                                                      <rectangle lower-left=\"(0,0)\" dimensions=\"(widths[1], height)\"\n                                                                 fill=\"${colors[1]}\" stroke=\"black\"/>\n                                                      <label anchor=\"(widths[1]/2,0)\" alignment=\"south\">\n                                                          <m>S</m>\n                                                      </label>\n                                                  </group>\n                                              </group>\n                                          </transform>\n\n                                          <translate by=\"(right, 0)\"/>\n                                          <scale by=\"(1/phi,1)\"/>\n                                          <group at=\"bottom-S\">\n                                              <group at=\"bottom-SL\">\n                                                  <rectangle lower-left=\"(0,0)\" dimensions=\"(widths[0], height)\"\n                                                             fill=\"${colors[0]}\" stroke=\"black\"/>\n                                                  <label anchor=\"(widths[0]/2,0)\" alignment=\"south\">\n                                                      <m>L</m>\n                                                  </label>\n                                              </group>\n                                          </group>\n                                      </transform>\n\n                                      <line at=\"left-arrow\"\n                                            endpoints=\"((left+phi/2, top), (left+phi/2, bottom+height))\"\n                                            endpoint-offsets=\"(3,-5)\"\n                                            arrows=\"1\" stroke=\"black\"/>\n\n                                      <line at=\"right-arrow\"\n                                            endpoints=\"((right+1/2, top), (right+1/2, bottom+height))\"\n                                            endpoint-offsets=\"(3,-5)\"\n                                            arrows=\"1\" stroke=\"black\"/>\n                                  </coordinates>\n\n                                  <annotations>\n                                      <annotation ref=\"figure\"\n                                                  text=\"The set of Fibonacci tiles consists of two tiles denoted by L and S.\">\n                                          <annotation ref=\"top\"\n                                                      text=\"The ratio of the lengths of the tiles is the golden ratio so one tile L is long and the other S is short\">\n                                              <annotation ref=\"top-L\"\n                                                          text=\"The long tile L\"/>\n                                              <annotation ref=\"top-S\"\n                                                          text=\"The short tile S\"/>\n                                          </annotation>\n                                          <annotation ref=\"arrows\"\n                                                      text=\"A process called deflation replaces each tile by a new set of tiles\">\n                                              <annotation ref=\"left-deflate\"\n                                                          text=\"A long tile is replaced by a long and a short tile\">\n                                                  <annotation ref=\"left-arrow\"/>\n                                                  <annotation ref=\"top-L\"/>\n                                                  <annotation ref=\"bottom-L\"\n                                                              text=\"The length of the new tiles is scaled by the reciprocal of the golden ratio\">\n                                                      <annotation ref=\"bottom-LL\"\n                                                                  text=\"The new long tile is on the left\"/>\n                                                      <annotation ref=\"bottom-LS\"\n                                                                  text=\"The new short tile is on the right\"/>\n                                                  </annotation>\n                                              </annotation>\n                                              <annotation ref=\"right-deflate\"\n                                                          text=\"A short tile is replaced by a single long tile\">\n                                                  <annotation ref=\"right-arrow\"/>\n                                                  <annotation ref=\"top-S\"/>\n                                                  <annotation ref=\"bottom-S\"\n                                                              text=\"The length of the new tile is again scaled by the reciprocal of the golden ratio\"/>\n                                              </annotation>\n                                          </annotation>\n                                      </annotation>\n                                  </annotations>\n                              </diagram>\n\n                          </prefigure>\n                      </image>\n                      <image>\n                          <prefigure xmlns=\"https://prefigure.org\"\n                                     label=\"prefigure-fibonacci-b\">\n\n                              <diagram dimensions=\"(300, 200)\" margins=\"(30,0,30,0)\">\n                                  <definition>phi=(sqrt(5)+1)/2</definition>\n                                  <definition>height=0.25</definition>\n                                  <definition>width=5+8*phi</definition>\n                                  <definition>colors={0:'blue', 1:'red'}</definition>\n                                  <definition>widths={0:phi, 1:1}</definition>\n                                  <definition>tiling2=[0,1,0,0,1]</definition>\n                                  <definition>tiling1=[0,1,0,0,1,0,1,0]</definition>\n                                  <definition>tiling0=[0,1,0,0,1,0,1,0,0,1,0,0,1]</definition>\n                                  <definition>tilings=[tiling0, tiling1, tiling2]</definition>\n                                  <coordinates bbox=\"(0,-0.5,width,3.5)\">\n                                      <transform>\n                                          <repeat parameter=\"row in tilings\">\n                                              <label at=\"left-dots\" anchor=\"(0,height/2)\" alignment=\"w\">\n                                                  <m>\\ldots</m>\n                                              </label>\n                                              <transform>\n                                                  <repeat at=\"tiling\" parameter=\"type in row\">\n                                                      <rectangle at=\"tile\"\n                                                                 lower-left=\"(0,0)\"\n                                                                 dimensions=\"(widths[type], height)\"\n                                                                 fill=\"${colors[type]}\" stroke=\"black\"/>\n                                                      <translate by=\"(widths[type],0)\"/>\n                                                  </repeat>\n                                                  <label at=\"right-dots\" anchor=\"(0,height/2)\" alignment=\"e\">\n                                                      <m>\\ldots</m>\n                                                  </label>\n                                              </transform>\n                                              <scale by=\"(phi, 1)\"/>\n                                              <translate by=\"(0,1)\"/>\n                                          </repeat>\n                                      </transform>\n\n                                      <transform>\n                                          <repeat at=\"down-arrows\" parameter=\"row in tilings\">\n                                              <line at=\"down-arrow\" endpoints=\"((width/2, 1), (width/2,height))\"\n                                                    endpoint-offsets=\"(3,-5)\"\n                                                    arrows=\"1\" stroke=\"black\"/>\n                                              <translate by=\"(0,1)\"/>\n                                          </repeat>\n                                      </transform>\n                                      <transform>\n                                          <repeat at=\"right-arrows\" parameter=\"row in tilings\">\n                                              <line at=\"right-arrow\"\n                                                    endpoints=\"((15,-0.15), (17,-0.15))\"\n                                                    arrows=\"1\" stroke=\"black\" thickness=\"2\"/>\n                                              <translate by=\"(0,1)\"/>\n                                          </repeat>\n                                      </transform>\n                                  </coordinates>\n\n                                  <annotations>\n                                      <annotation ref=\"figure\"\n                                                  text=\"A Fibonacci tiling is a horizontal sequence of tiles obtained by deflating the tiles in another Fibonacci tiling.  We will explain why these tilings are aperiodic.\">\n                                          <annotation ref=\"down-arrows\"/>\n                                          <annotation ref=\"top-down-arrow\"/>\n\n                                          <annotation ref=\"tiling-row_0\"\n                                                      text=\"We begin with this Fibonacci tiling\"/>\n\n                                          <annotation ref=\"tiling-row_1\"\n                                                      text=\"Our first Fibonacci tiling is obtained by deflating this second tiling\">\n                                              <annotation ref=\"down-arrow-row_0\"/>\n                                          </annotation>\n\n                                          <annotation ref=\"tiling-row_2\"\n                                                      text=\"The second tiling is obtained by deflating this third tiling, so we see that there is an infinite hierarchy of tilings.\">\n                                              <annotation ref=\"down-arrow-row_1\"/>\n                                          </annotation>\n\n                                          <annotation ref=\"bottom-tilings\"\n                                                      text=\"Beginning with one tiling, the tiling above is uniquely determined.\">\n                                              <annotation ref=\"tiling-row_0\"\n                                                          text=\"Consider this Fibonacci tiling.\"/>\n                                              <annotation ref=\"tiling-row_1\"\n                                                          text=\"By inverting the deflation rules, we can uniquely determine the tiling above.\"/>\n                                          </annotation>\n                                          <annotation ref=\"periodic-0\"\n                                                      text=\"Suppose that a Fibonacci tiling is periodic under a horizontal translation.\">\n                                              <annotation ref=\"tiling-row_0\"\n                                                          text=\"For example, suppose this Fibonacci tiling is periodic.\"/>\n                                              <annotation ref=\"right-arrow-row_0\"\n                                                          text=\"And that this horizontal translation leaves the tiling unchanged.\"/>\n                                          </annotation>\n                                          <annotation ref=\"periodic-1\"\n                                                      text=\"Because the inflated tiling above is unique, it must also be periodic under the same translation.\">\n                                              <annotation ref=\"tiling-row_1\"\n                                                          text=\"This Fibonacci tiling is also periodic.\"/>\n                                              <annotation ref=\"right-arrow-row_1\"\n                                                          text=\"The same horizontal translation leaves the tiling unchanged.\"/>\n                                          </annotation>\n                                          <annotation ref=\"periodic-2\"\n                                                      text=\"Consequently, every tiling in the hierarchy is periodic by this translation.  This is not possible, which means the original tiling cannot be periodic.\">\n                                              <annotation ref=\"tiling-row_2\"\n                                                          text=\"The size of the tiles grows exponentially as we move up in the hierarchy.\"/>\n                                              <annotation ref=\"right-arrow-row_2\"\n                                                          text=\"Eventually the tiles are longer than the translation.\"/>\n                                          </annotation>\n                                      </annotation>\n                                  </annotations>\n                              </diagram>\n\n                          </prefigure>\n                      </image>\n                    </sidebyside>\n                </figure>\n\n                <p>For sighted readers, here is an example of a tactile version of one of the above diagrams.  It is generated automatically from the same source as the other version.  Imagine this being <q>printed</q> with an embosser so that the parts of the diagram, and the braille labels, are raised up from the paper and can be explored with one's fingertips.  This image is a <init>PNG</init> produced specifically for this document.  Typically, a tactile diagram produced by <prefigure/> will be a <init>PDF</init> ready to be sent to an appropriate embosser.  Notice that <pretext/> adds a caption indicating the diagram's location in the document along the top of the diagram.</p>\n\n                <image source=\"tactile/prefigure-diffeq.png\" width=\"70%\"/>\n            </subsection>\n\n            <subsection>\n                <title><latex/> images</title>\n                <idx sortby=\"latex\"><latex/> image</idx>\n                <idx><h>image</h><h><latex/> image</h></idx>\n\n                <p>There are several graphics engine packages that a <latex/> document can employ. Code from these packages renders diagrams automatically as part of normal processing of <latex/> files.  For HTML output the <c>pretext</c> script produces SVG versions of the pictures.  The script can also produce standalone <tex/> source files, PDFs, PNGs, and EPSs. The packages should be loaded in <c>docinfo/latex-image-preamble</c>, which is also where global package settings should be made. If any ampersands occur in your <latex/> code you should use the <c>\\amp</c> macro pre-defined by <pretext/>. These first examples are from the <url href=\"http://www.texample.net/tikz/examples/\" visual=\"www.texample.net/tikz/examples/\">TeXample.net</url> site.  Note that any <latex/> macros used in the rest of your document may be employed in the <latex/>-standalone or Asymptote diagrams (with this feature coming to Sage graphics next?).</p>\n\n                <!-- http://www.texample.net/media/tikz/examples/TEX/noise-shaper.tex -->\n                <figure xml:id=\"figure-tikz-electronics\">\n                    <caption>TikZ Electronics Diagram</caption>\n                    <image xml:id=\"tikz-electronics\">\n                        <shortdescription>\n                            a pile of electronic components wired together\n                        </shortdescription>\n                        <latex-image>\n                        <!-- CDATA prevents certain LaTeX code from being interpreted as xml -->\n                        <![CDATA[\\tikzset{%\n                          block/.style    = {draw, thick, rectangle, minimum height = 3em,\n                            minimum width = 3em},\n                          sum/.style      = {draw, circle, node distance = 2cm}, % Adder\n                          input/.style    = {coordinate}, % Input\n                          output/.style   = {coordinate} % Output\n                        }\n                        % Defining string as labels of certain blocks.\n                        \\newcommand{\\suma}{\\Large$+$}\n                        \\newcommand{\\inte}{$\\displaystyle \\int$}\n                        \\newcommand{\\derv}{\\huge$\\frac{d}{dt}$}\n\n                        \\begin{tikzpicture}[auto, thick, node distance=2cm, >=triangle 45]\n                        \\draw\n                            % Drawing the blocks of first filter :\n                            node at (0,0)[right=-3mm]{\\Large \\textbullet}\n                            node [input, name=input1] {}\n                            node [sum, right of=input1] (suma1) {\\suma}\n                            node [block, right of=suma1] (inte1) {\\inte}\n                                 node at (6.8,0)[block] (Q1) {\\Large $Q_1$}\n                                 node [block, below of=inte1] (ret1) {\\Large$T_1$};\n                            % Joining blocks.\n                            % Commands \\draw with options like [->] must be written individually\n                            \\draw[->](input1) -- node {$X(Z)$}(suma1);\n                            \\draw[->](suma1) -- node {} (inte1);\n                            \\draw[->](inte1) -- node {} (Q1);\n                            \\draw[->](ret1) -| node[near end]{} (suma1);\n                            % Adder\n                        \\draw\n                            node at (5.4,-4) [sum, name=suma2] {\\suma}\n                                % Second stage of filter\n                            node at  (1,-6) [sum, name=suma3] {\\suma}\n                            node [block, right of=suma3] (inte2) {\\inte}\n                            node [sum, right of=inte2] (suma4) {\\suma}\n                            node [block, right of=suma4] (inte3) {\\inte}\n                            node [block, right of=inte3] (Q2) {\\Large$Q_2$}\n                            node at (9,-8) [block, name=ret2] {\\Large$T_2$}\n                        ;\n                            % Joining the blocks of second filter\n                            \\draw[->] (suma3) -- node {} (inte2);\n                            \\draw[->] (inte2) -- node {} (suma4);\n                            \\draw[->] (suma4) -- node {} (inte3);\n                            \\draw[->] (inte3) -- node {} (Q2);\n                            \\draw[->] (ret2) -| (suma3);\n                            \\draw[->] (ret2) -| (suma4);\n                                 % Third stage of filter:\n                            % Defining nodes:\n                        \\draw\n                            node at (11.5, 0) [sum, name=suma5]{\\suma}\n                            node [output, right of=suma5]{}\n                            node [block, below of=suma5] (deriv1){\\derv}\n                            node [output, right of=suma5] (sal2){}\n                        ;\n                            % Joining the blocks:\n                            \\draw[->] (suma2) -| node {}(suma3);\n                            \\draw[->] (Q1) -- (8,0) |- node {}(ret1);\n                            \\draw[->] (8,0) |- (suma2);\n                            \\draw[->] (5.4,0) -- (suma2);\n                            \\draw[->] (Q1) -- node {}(suma5);\n                            \\draw[->] (deriv1) -- node {}(suma5);\n                            \\draw[->] (Q2) -| node {}(deriv1);\n                                \\draw[<->] (ret2) -| node {}(deriv1);\n                                \\draw[->] (suma5) -- node {$Y(Z)$}(sal2);\n                                % Drawing nodes with \\textbullet\n                        \\draw\n                            node at (8,0) {\\textbullet}\n                            node at (8,-2){\\textbullet}\n                            node at (5.4,0){\\textbullet}\n                                node at (5,-8){\\textbullet}\n                                node at (11.5,-6){\\textbullet}\n                                ;\n                            % Boxing and labelling noise shapers\n                            \\draw [color=gray,thick](-0.5,-3) rectangle (9,1);\n                            \\node at (-0.5,1) [above=5mm, right=0mm] {\\textsc{first-order noise shaper}};\n                            \\draw [color=gray,thick](-0.5,-9) rectangle (12.5,-5);\n                            \\node at (-0.5,-9) [below=5mm, right=0mm] {\\textsc{second-order noise shaper}};\n                        \\end{tikzpicture}]]>\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>The next example began life in <url href=\"http://www.frontiernet.net/~eugene.ressler/\" visual=\"www.frontiernet.net/~eugene.ressler/\">Sketch</url>, which will output TikZ code (though the code has been edited by hand for readability).</p>\n\n                <!-- http://www.texample.net/media/tikz/examples/TEX/3d-cone.tex -->\n                <figure xml:id=\"figure-tikz-cone3D\">\n                    <caption>TikZ Cone Drawing</caption>\n                    <image xml:id=\"tikz-cone\" width=\"70%\">\n                        <latex-image>\n                        <!-- CDATA prevents certain LaTeX code from being interpreted as xml -->\n                        <![CDATA[\\begin{tikzpicture}[join=round]\n                        \\tikzstyle{conefill} = [fill=blue!20,fill opacity=0.8]\n                        \\tikzstyle{ann} = [fill=white,font=\\footnotesize,inner sep=1pt]\n                        \\tikzstyle{ghostfill} = [fill=white]\n                             \\tikzstyle{ghostdraw} = [draw=black!50]\n                        \\filldraw[conefill](-.775,1.922)--(-1.162,.283)--(-.274,.5)\n                                            --(-.183,2.067)--cycle;\n                        \\filldraw[conefill](-.183,2.067)--(-.274,.5)--(.775,.424)\n                                            --(.516,2.016)--cycle;\n                        \\filldraw[conefill](.516,2.016)--(.775,.424)--(1.369,.1)\n                                            --(.913,1.8)--cycle;\n                        \\filldraw[conefill](-.913,1.667)--(-1.369,-.1)--(-1.162,.283)\n                                            --(-.775,1.922)--cycle;\n                        \\draw(1.461,.107)--(1.734,.127);\n                        \\draw[arrows=<->](1.643,1.853)--(1.643,.12);\n                        \\filldraw[conefill](.913,1.8)--(1.369,.1)--(1.162,-.283)\n                                            --(.775,1.545)--cycle;\n                        \\draw[arrows=->,line width=.4pt](.274,-.5)--(0,0)--(0,2.86);\n                        \\draw[arrows=-,line width=.4pt](0,0)--(-1.369,-.1);\n                        \\draw[arrows=->,line width=.4pt](-1.369,-.1)--(-2.1,-.153);\n                        \\filldraw[conefill](-.516,1.45)--(-.775,-.424)--(-1.369,-.1)\n                                            --(-.913,1.667)--cycle;\n                        \\draw(-1.369,.073)--(-1.369,2.76);\n                        \\draw(1.004,1.807)--(1.734,1.86);\n                        \\filldraw[conefill](.775,1.545)--(1.162,-.283)--(.274,-.5)\n                                            --(.183,1.4)--cycle;\n                        \\draw[arrows=<->](0,2.34)--(-.913,2.273);\n                        \\draw(-.913,1.84)--(-.913,2.447);\n                        \\draw[arrows=<->](0,2.687)--(-1.369,2.587);\n                        \\filldraw[conefill](.183,1.4)--(.274,-.5)--(-.775,-.424)\n                                            --(-.516,1.45)--cycle;\n                        \\draw[arrows=<-,line width=.4pt](.42,-.767)--(.274,-.5);\n                        \\node[ann] at (-.456,2.307) {$r_0$};\n                        \\node[ann] at (-.685,2.637) {$r_1$};\n                        \\node[ann] at (1.643,.987) {$h$};\n                        \\path (.42,-.767) node[below] {$x$}\n                            (0,2.86) node[above] {$y$}\n                            (-2.1,-.153) node[left] {$z$};\n                        % Second version of the cone\n                        \\begin{scope}[xshift=3.5cm]\n                        \\filldraw[ghostdraw,ghostfill](-.775,1.922)--(-1.162,.283)--(-.274,.5)\n                                                       --(-.183,2.067)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](-.183,2.067)--(-.274,.5)--(.775,.424)\n                                                       --(.516,2.016)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](.516,2.016)--(.775,.424)--(1.369,.1)\n                                                       --(.913,1.8)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](-.913,1.667)--(-1.369,-.1)--(-1.162,.283)\n                                                       --(-.775,1.922)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](.913,1.8)--(1.369,.1)--(1.162,-.283)\n                                                       --(.775,1.545)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](-.516,1.45)--(-.775,-.424)--(-1.369,-.1)\n                                                       --(-.913,1.667)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](.775,1.545)--(1.162,-.283)--(.274,-.5)\n                                                       --(.183,1.4)--cycle;\n                        \\filldraw[fill=red,fill opacity=0.5](-.516,1.45)--(-.775,-.424)--(.274,-.5)\n                                                             --(.183,1.4)--cycle;\n                        \\fill(-.775,-.424) circle (2pt);\n                        \\fill(.274,-.5) circle (2pt);\n                        \\fill(-.516,1.45) circle (2pt);\n                        \\fill(.183,1.4) circle (2pt);\n                        \\path[font=\\footnotesize]\n                                (.913,1.8) node[right] {$i\\hbox{$=$}0$}\n                                (1.369,.1) node[right] {$i\\hbox{$=$}1$};\n                        \\path[font=\\footnotesize]\n                                (-.645,.513) node[left] {$j$}\n                                (.228,.45) node[right] {$j\\hbox{$+$}1$};\n                        \\draw (-.209,.482)+(-60:.25) [yscale=1.3,->] arc(-60:240:.25);\n                        \\fill[black,font=\\footnotesize]\n                                        (-.516,1.45) node [above] {$P_{00}$}\n                                        (-.775,-.424) node [below] {$P_{10}$}\n                                        (.183,1.4) node [above] {$P_{01}$}\n                                        (.274,-.5) node [below] {$P_{11}$};\n                        \\end{scope}\n                        \\end{tikzpicture}]]>\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>The pgfplots package was included in <c>docinfo/latex-image-preamble</c>. Here, it is used. Also, here we demonstrate using <c>\\amp</c> where you would normally use an ampersand in <latex/>. There are known issues with <c>xelatex</c> processing any gradient shading in <c>tikz</c>. To (successfully) create the gradient shading in the 3D image here, you may need to use <c>pdflatex</c> until <latex/> developers resolve this issue.</p>\n\n                <figure xml:id=\"figure-pgfplots-demo\">\n                    <caption>Sample pgfplots plot</caption>\n                    <image xml:id=\"pgfplots-demo\">\n                        <shortdescription>\n                            a Cartesian plane with a function graph, a parametric curve, and some points\n                        </shortdescription>\n                        <latex-image>\n                        <!-- CDATA prevents certain LaTeX code from being interpreted as xml -->\n                        <![CDATA[\\begin{tikzpicture}\n                        \\matrix{\n                            \\begin{axis}[width = 0.5\\linewidth]\n                                \\addplot[\n                                    domain = 0.1:10,\n                                    <->,\n                                    smooth,\n                                    thin,\n                                    color = blue,\n                                ]{4*ln(x)/ln(10)};\n                                \\addplot[\n                                    only marks,\n                                ]coordinates{\n                                    (0,2)\n                                    (4,3)\n                                    (2,4)\n                                    (3,4)};\n                                \\addplot[\n                                    variable = \\t,\n                                    domain = 0:360,\n                                    samples = 200,\n                                    color = orange,\n                                ]({3*sin(2*t)}, {2*cos(5*t)});\n                            \\end{axis}\n                            \\amp\n                            \\begin{axis}[axis lines = box, width = 0.5\\linewidth]\n                                \\addplot3[\n                                    surf,\n                                    faceted color = blue,\n                                    samples = 15,\n                                    domain = 0:1,\n                                    y domain = -1:1\n                                ]{x^2 - y^2};\n                            \\end{axis}\\\\\n                        };\n                        \\end{tikzpicture}]]>\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>A plot might use a graphics language to draw the axes and grid, but the data might be from an experiment and live in an external file that you do not wish to place in your source.  Place such a file in a subdirectory directly below the directory where your master source file resides.  Then indicate this directory in a <c>docinfo/directories/@data</c> attribute of your source.  But you <em>must</em> prefix the path with <c>data/</c> as in the source below.</p>\n\n                <figure xml:id=\"figure-pgfplots-data-demo\">\n                    <caption>External data in a pgfplots plot</caption>\n                    <image xml:id=\"pgfplots-data-demo\">\n                        <shortdescription>\n                            a Cartesian plot of electric potential over time;\n                        </shortdescription>\n                        <latex-image>\n                        <!-- CDATA prevents certain LaTeX code from being interpreted as xml -->\n                        <![CDATA[\n                        \\begin{tikzpicture}\n                        \\begin{axis}[\n                            xmin=0,xmax=100,ymin=-20,ymax=100,\n                            ytick={-20,0,...,100},\n                            xlabel={time (ms)},\n                            ylabel={potential (V)},\n                        ]\n                        \\addplot[blue] table {data/dataplot/hodgkin-huxley-data.dat};\n                        \\end{axis}\n                        \\end{tikzpicture}]]>\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>The TikZ image in the next figure is made up from two <init>PNG</init> images (the shark and the swimmer), in addition to various TikZ commands.  The images reside in a source directory, <c>numerical/attack</c>, so the image files (<c>shark.png</c>, <c>swimmer.png</c>) are prefixed in the TikZ code with <c>data/attack</c> so the creation of the image will be successful.  This example is courtesy of Stephen Brown.</p>\n\n                <figure xml:id=\"figure-shark-attack\">\n                    <caption>An illustration of the shark trying to catch you as you swim to shore.</caption>\n                    <image label=\"shark-attack\">\n                        <latex-image>\n                        \\begin{tikzpicture}\n                            \\tikzset{ ragged border/.style={ decoration={random steps, segment length=1mm, amplitude=0.5mm}, decorate, } }\n                            \\fill[cyan!30] decorate[ragged border]{ (0,2) -- (8,2) } -- (8,0) -- (0,0) -- cycle;\n                            \\fill[yellow!30] decorate[ragged border]{ (8,2) -- (8,0) } -- (9,0) -- (9,2) -- cycle;\n                            \\draw (1.5,1) node {\\scalebox{-0.2}[0.2]{\\includegraphics{data/attack/shark.png}}};\n                            \\draw (5,1) node {\\includegraphics[scale=0.05]{data/attack/swimmer.png}};\n                            \\draw[|-|] (1.5,3) node [above] {\\(\\SI{0}{m}\\)} -- (5,3) node [above] {\\(\\SI{50}{m}\\)};\n                            \\draw[|-|] (5,3) -- (8,3) node [above] {\\(\\SI{70}{m}\\)};\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>\n                    A Cartesian plot might benefit from having a <tag>description</tag> with a\n                    <tag>tabular</tag> that lays bare the data used to to plot points.\n                </p>\n\n                <figure xml:id=\"figure-pgfplots-data-description\">\n                    <caption>Full description with tabular</caption>\n                    <image label=\"pgfplots-data-description\" width=\"70%\">\n                        <shortdescription>\n                            a plot of some data points\n                        </shortdescription>\n                        <description>\n                            <p>\n                                A Cartesian graph plotting the following data.\n                            </p>\n                            <tabular row-headers=\"yes\">\n                                <col right=\"minor\"/>\n                                <col/><col/><col/>\n                                <col/><col/><col/>\n                                <col/><col/><col/>\n                                <row bottom=\"minor\">\n                                    <cell><m>x</m></cell>\n                                    <cell><m>1</m></cell>\n                                    <cell><m>2</m></cell>\n                                    <cell><m>3</m></cell>\n                                    <cell><m>4</m></cell>\n                                    <cell><m>5</m></cell>\n                                    <cell><m>6</m></cell>\n                                    <cell><m>7</m></cell>\n                                    <cell><m>8</m></cell>\n                                    <cell><m>9</m></cell>\n                                </row>\n                                <row>\n                                    <cell><m>y</m></cell>\n                                    <cell><m>5</m></cell>\n                                    <cell><m>3</m></cell>\n                                    <cell><m>8</m></cell>\n                                    <cell><m>9</m></cell>\n                                    <cell><m>5</m></cell>\n                                    <cell><m>5</m></cell>\n                                    <cell><m>8</m></cell>\n                                    <cell><m>2</m></cell>\n                                    <cell><m>3</m></cell>\n                                </row>\n                            </tabular>\n                        </description>\n                        <latex-image>\n                            \\begin{tikzpicture}\n                                \\begin{axis}[\n                                        xmin=0,\n                                        xmax=10,\n                                        ymin=-0,ymax=10,\n                                        xlabel={\\(x\\)},\n                                        ylabel={\\(y\\)},\n                                    ]\n                                    \\addplot[only marks] coordinates {(1,5) (2,3) (3,8) (4,9) (5,5) (6,5) (7,8) (8,2) (9,3)};\n                                \\end{axis}\n                            \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>The next image requires three passes with <latex/> to get everything in place.  It is placed here to test that the code in the Pythion script correctly recognizes this requirement.</p>\n\n                <figure>\n                    <caption>A matrix with colored entries</caption>\n\n                    <!-- This image needs three passes with LaTeX, which -->\n                    <!-- is supported by the script making this image    -->\n                    <image width=\"50%\">\n                        <latex-image label=\"latex-three-pass\">\n                            \\begin{tikzpicture}\n                            \\node{\n                                $\\begin{bNiceArray}{ccc|cc}[\n                                code-before={\\cellcolor{green!72}{1-1,2-2,3-3}\\cellcolor{teal!72}{1-2,2-3,3-4}\\cellcolor{yellow!72}{1-3,2-4,3-5}}\n                                ]\n                                3 \\amp 4 \\amp 0 \\amp 1 \\amp 4 \\\\\n                                -2 \\amp 3 \\amp 1 \\amp -2 \\amp 3 \\\\\n                                0 \\amp 2 \\amp 1 \\amp 0 \\amp 2\n                                \\end{bNiceArray}$\n                            };\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n                </figure>\n\n                <p>PSTricks is a <latex/> package for drawing diagrams and pictures, dating back to the days before <init>PDF</init>, when PostScript (<init>PS</init>) was king.  Given its history, it does not seem to work easily with the <c>pdflatex</c> engine.  But it will work easily with the <c>xelatex</c> engine.  We try to keep this present sample document workable with both engines, so we have presented an example of the use of PSTricks in the <c>xelatex</c>-exclusive sample document where we test obscure fonts and characters.  So your best bet is to look there.<idx>PSTricks</idx></p>\n\n                <p>There are suggestions online that <cd>\\usepackage[pdf]{pstricks}</cd>along with <cd>pdflatex --shell-escape *.tex</cd> is workable.  We could not make it happen, and a <q>shell escape</q> can be a dangerous security hole.  That said, updates to this approach are welcome.</p>\n            </subsection>\n\n            <subsection>\n                <title>Asymptote, 2D</title>\n\n                <p>The Asymptote<idx><h>asymptote graphics language</h></idx> graphics language may be placed in your source to draw graphs, diagrams or pictures.  Rules for formatting code are identical to those for Sage code.  For more on Asymptote see <url href=\"http://asymptote.sourceforge.net/\" visual=\"asymptote.sourceforge.net\"/>.</p>\n\n                <!--\n                See a different (more traditional) variant of URL usage\n                in the introductory section.\n                -->\n\n                <p>This is a simple physics diagram about levers, taken from the Asymptote documentation.  In the HTML version of this article, the images are SVG's and so should scale nicely when you zoom in on the page.</p>\n                <!-- http://asymptote.sourceforge.net/gallery/lever.asy -->\n\n                <!--\n                xml:id's on the figures may be employed for cross-references,\n                while the xml:id's on the actual graphics code will be used to name\n                the files that are created.  They are optional, in which case,\n                generic names will be created, though these use serial numbers and so\n                will change as more are added.\n                -->\n\n                <figure xml:id=\"figure-asymptote-levers\">\n                    <caption>Asymptote Lever Demonstration</caption>\n                    <image xml:id=\"asymptote-lever\">\n                        <shortdescription>moments on a lever</shortdescription>\n                        <description>\n                            <p>This diagram has two masses at either end of a lever, namely <m>m</m> and <m>M</m>.  They are located at distance <m>x</m> and <m>X</m> on an axis.  The resulting center-of-mass is at a point <m>\\bar{x}</m>.</p>\n                        </description>\n                        <asymptote>\n                        size(200,0);\n\n                        pair z0=(0,0);\n                        pair z1=(2,0);\n                        pair z2=(5,0);\n                        pair zf=z1+0.75*(z2-z1);\n\n                        draw(z1--z2);\n                        dot(z1,red+0.15cm);\n                        dot(z2,darkgreen+0.3cm);\n                        label(\"$m$\",z1,1.2N,red);\n                        label(\"$M$\",z2,1.5N,darkgreen);\n                        label(\"$\\hat{\\ }$\",zf,0.2*S,fontsize(24pt)+blue);\n\n                        pair s=-0.2*I;\n                        draw(\"$x$\",z0+s--z1+s,N,red,Arrows,Bars,PenMargins);\n\n                        s=-0.5*I;\n                        draw(\"$\\bar{x}$\",z0+s--zf+s,blue,Arrows,Bars,PenMargins);\n\n                        s=-0.95*I;\n                        draw(\"$X$\",z0+s--z2+s,darkgreen,Arrows,Bars,PenMargins);\n                        </asymptote>\n                    </image>\n                </figure>\n\n                <p>And a colorful contour plot with logarithmic scale.  Again, from the Asymptote documentation.  This SVG image employs two additional PNG images for the two parts where the color varies continuously.</p>\n                <!-- http://asymptote.sourceforge.net/gallery/2D%20graphs/logimage.asy -->\n\n                <figure xml:id=\"figure-asymptote-contour-plot\">\n                    <caption>Asymptote Contour Plot</caption>\n                    <image xml:id=\"asymptote-contour\">\n                        <asymptote>\n                        import graph;\n                        import palette;\n\n                        size(10cm,10cm,IgnoreAspect);\n\n                        real f(real x, real y) {\n                          return 0.9*pow10(2*sin(x/5+2*y^0.25)) + 0.1*(1+cos(10*log(y)));\n                        }\n\n                        scale(Linear,Log,Log);\n\n                        pen[] Palette=BWRainbow();\n\n                        bounds range=image(f,Automatic,(0,1),(100,100),nx=200,Palette);\n\n                        xaxis(\"$x$\",BottomTop,LeftTicks,above=true);\n                        yaxis(\"$y$\",LeftRight,RightTicks,above=true);\n\n                        palette(\"$f(x,y)$\",range,(0,200),(100,250),Top,Palette,\n                                PaletteTicks(ptick=linewidth(0.5*linewidth())));\n                        </asymptote>\n                    </image>\n                </figure>\n\n                <p>Here is the lever diagram again, but now we have added an integral to one of the legends, <em>using a <latex/> macro of our own,</em> which is idential to one we used in the early part of this article.  The point is, we only needed to define the macro once for the entire document, and it is available as we make Asymptote diagrams.  This device can be used to maintain flexibility and consistency in your choice of notation.</p>\n\n                <figure xml:id=\"figure-asymptote-latex-macro\">\n                    <caption>Aymptote Lever, plus Integral</caption>\n                    <image xml:id=\"asymptote-lever-integral\" width=\"80%\">\n                        <asymptote>\n                        size(200,0);\n\n                        pair z0=(0,0);\n                        pair z1=(2,0);\n                        pair z2=(5,0);\n                        pair zf=z1+0.75*(z2-z1);\n\n                        draw(z1--z2);\n                        dot(z1,red+0.15cm);\n                        dot(z2,darkgreen+0.3cm);\n                        label(\"$m$\",z1,1.2N,red);\n                        label(\"$M$\",z2,1.5N,darkgreen);\n                        label(\"$\\hat{\\ }$\",zf,0.2*S,fontsize(24pt)+blue);\n\n                        pair s=-0.2*I;\n                        draw(\"$x$\",z0+s--z1+s,N,red,Arrows,Bars,PenMargins);\n\n                        s=-0.5*I;\n                        draw(\"$\\bar{x}=\\definiteintegral{0}{1}{x\\delta(x)}{x}$\",z0+s--zf+s,blue,Arrows,Bars,PenMargins);\n\n                        s=-1.05*I;\n                        draw(\"$X$\",z0+s--z2+s,darkgreen,Arrows,Bars,PenMargins);\n                        </asymptote>\n                    </image>\n                </figure>\n\n            </subsection>\n\n            <subsection xml:id=\"graphics-asymptote-webgl\">\n                <title>Asymptote, 3D via WebGL</title>\n\n                <p>Asymptote can create an <init>HTML</init> file that is an interactive version of a 3D shape.  At this writing (2020-05-18) support via the <c>pretext</c> script is evolving.  Plus, you will need newer versions of Asymptote and the <c>dvisvgm</c> utility to duplicate all of the results being displayed here in this testing document.  The other distinction is that the author needs to provide the aspect ratio of the figure, and this should be placed on the <tag>asymptote</tag> element (not on the <tag>image</tag> element).  <xref ref=\"figure-asymptote-workcone\" text=\"type-global\"/> is from the <url href=\"http://asymptote.sourceforge.net/gallery/3Dwebgl/\" visual=\"asymptote.sourceforge.net/gallery/3Dwebgl/\">Asymptote Gallery</url>.</p>\n\n                <figure xml:id=\"figure-asymptote-workcone\">\n                    <caption>Work Cone (Asymptote Interactive 3D Image)</caption>\n                    <image xml:id=\"asymptote-workcone\" width=\"50%\">\n                        <asymptote>\n                        import solids;\n                        size(0,150);\n                        currentprojection=orthographic(0,-30,5);\n\n                        real r=4;\n                        real h=10;\n                        real s=8;\n                        real x=r*s/h;\n\n                        real sr=5;\n                        real xr=r*sr/h;\n\n                        real s1=sr-0.1;\n                        real x1=r*s1/h;\n\n                        real s2=sr+0.2;\n                        real x2=r*s2/h;\n\n                        render render=render(compression=0,merge=true);\n\n                        draw(scale(x1,x1,-s1)*shift(-Z)*unitcone,lightblue+opacity(0.5),render);\n\n                        path3 p=(x2,0,s2)--(x,0,s+0.005);\n                        revolution a=revolution(p,Z);\n                        draw(surface(a),lightblue+opacity(0.5),render);\n\n                        path3 q=(x,0,s)--(r,0,h);\n                        revolution b=revolution(q,Z);\n                        draw(surface(b),white+opacity(0.5),render);\n\n                        draw((-r-1,0,0)--(r+1,0,0));\n                        draw((0,0,0)--(0,0,h+1),dashed);\n\n                        path3 w=(x1,0,s1)--(x2,0,s2)--(0,0,s2);\n                        revolution b=revolution(w,Z);\n                        draw(surface(b),blue+opacity(0.5),render);\n                        draw(circle((0,0,s2),x2));\n                        draw(circle((0,0,s1),x1));\n\n                        draw(\"$x$\",(xr,0,0)--(xr,0,sr),red,Arrow3,PenMargin3);\n                        draw(\"$r$\",(0,0,sr)--(xr,0,sr),N,red);\n                        draw((string) r,(0,0,h)--(r,0,h),N,red);\n                        draw((string) h,(r,0,0)--(r,0,h),red,Arrow3,PenMargin3);\n                        draw((string) s,(-x,0,0)--(-x,0,s),W,red,Arrow3,Bar3,PenMargin3);\n                        </asymptote>\n                    </image>\n                </figure>\n\n                <p>These 3D images in HTML output are rotable with a pointing device (mouse, trackpad) with a click-and-drag.  A finger should suffice on touch-sensitive devices (phones, tablets).  Zooming in and out can be accomplished with a mouse wheel, or by pinching.  As a contribution to the accessibility of <pretext/> HTML output, keyboard controls will also allow for exploration of these images.  (Make sure the image has focus when you attempt to use these.)</p>\n\n                <!-- More possible keyboard shortcuts are at Section 8.29, page 136 -->\n                <!-- https://asymptote.sourceforge.io/asymptote.pdf                 -->\n                <!-- Not all seem to be implented, so review/test carefully         -->\n\n                <table>\n                    <title>3D Image Keyboard Controls</title>\n                    <tabular>\n                        <row bottom=\"medium\"><cell>Key</cell><cell>Action</cell></row>\n                        <row><cell><kbd>x</kbd></cell><cell>Rotate around <m>x</m>-axis</cell></row>\n                        <row><cell><kbd>y</kbd></cell><cell>Rotate around <m>y</m>-axis</cell></row>\n                        <row><cell><kbd>z</kbd></cell><cell>Rotate around <m>z</m>-axis</cell></row>\n                        <row><cell><kbd>+</kbd></cell><cell>Enlarge image</cell></row>\n                        <row><cell><kbd>-</kbd></cell><cell>Shrink image</cell></row>\n                        <row><cell><kbd>h</kbd></cell><cell>Return to home position</cell></row>\n                    </tabular>\n                </table>\n\n                <p>And finally, an example of a 3-D graph (from the Asymptote documentation again).  This WebGL image is a beautiful example of a Riemann surface.  As you rotate the image, notice how the reflection of the light source varies, along with the brightness of various regions of the surface.  This example is accomplished with just 10 lines of Asymptote code.</p>\n\n                <!-- http://asymptote.sourceforge.net/gallery/3D%20graphs/filesurface.asy -->\n                <!-- Projection point adjusted by Michael Doob -->\n\n                <figure xml:id=\"figure-asymptote-surface\">\n                    <caption>Asymptote 3-D Surface</caption>\n                    <image xml:id=\"asymptote-surface\" width=\"40%\">\n                        <asymptote>\n                        // Riemann surface of z^{1/n}\n                        import graph3;\n                        import palette;\n\n                        int n=3;\n\n                        size(200,300,keepAspect=false);\n\n                        currentprojection=orthographic(10,10,5);\n                        currentlight=(10,10,5);\n                        triple f(pair t) {return (t.x*cos(t.y),t.x*sin(t.y),t.x^(1/n)*sin(t.y/n));}\n\n                        surface s=surface(f,(0,0),(1,2pi*n),8,16,Spline);\n                        s.colors(palette(s.map(zpart),Rainbow()));\n\n                        draw(s,meshpen=black,render(merge=true));\n                        </asymptote>\n                    </image>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"graphics-mermaid\">\n                <title>Mermaid Diagrams</title>\n                <idx><h>Mermaid diagrams</h></idx>\n\n                <p><url href=\"https://mermaid.js.org/\" visual=\"mermaid.js.org\">Mermaid</url> is a Markdown-inspired tool for authoring various kinds of diagrams. Below, three of the available diagram types are demonstrated. For a full listing of diagram types, see the <url href=\"https://mermaid.js.org/intro/#diagram-types\">Mermaid Documentation</url>. The <url href=\"https://mermaid.live/\" visual=\"mermaid.live\">Mermaid live editor</url>is a great tool for testing the syntax of your mermaid diagrams.</p>\n\n                <p>In PreTeXt, you can specify a Mermaid theme via the <attr>theme</attr> in the <c>common/mermaid/</c> publisher variable.</p>\n\n                <p>For HTML output, if you switch back-and-forth between light-mode and dark-mode, you will need to refresh the page to see the changes in the Mermaid diagrams.</p>\n\n                <figure xml:id=\"figure-mermaid-git\">\n                    <caption>Mermaid Git Diagram</caption>\n                    <image>\n                        <shortdescription>\n                            A git diagram in Mermaid\n                        </shortdescription>\n                        <mermaid label=\"mermaid-git-image\">\n                            ---\n                            title: Example Git diagram\n                            ---\n                            gitGraph\n                                commit\n                                commit\n                                branch develop\n                                checkout develop\n                                commit\n                                commit\n                                checkout main\n                                merge develop\n                                commit\n                                commit\n                        </mermaid>\n                    </image>\n                </figure>\n\n                <figure xml:id=\"figure-mermaid-class\">\n                    <caption>Mermaid Class Diagram</caption>\n                    <image>\n                        <shortdescription>\n                            A class diagram in Mermaid\n                        </shortdescription>\n                        <mermaid label=\"mermaid-class-image\">\n                        classDiagram\n                            Animal &lt;|-- Duck\n                            Animal &lt;-- Fish\n                            Animal &lt;|-- Zebra\n                            Animal : +int age\n                            Animal : +String gender\n                            Animal: +isMammal()\n                            Animal: +mate()\n                            class Duck{\n                              +String beakColor\n                              +swim()\n                              +quack()\n                            }\n                            class Fish{\n                              -int sizeInFeet\n                              -canEat()\n                            }\n                            class Zebra{\n                              +bool is_wild\n                              +run()\n                            }\n                        </mermaid>\n                    </image>\n                </figure>\n\n                <figure xml:id=\"figure-mermaid-sequence\">\n                    <caption>Mermaid Seuqnece Diagram</caption>\n                    <image>\n                        <shortdescription>\n                            A sequence diagram in Mermaid\n                        </shortdescription>\n                        <mermaid label=\"mermaid-sequence-image\">\n                        sequenceDiagram\n                            participant Alice\n                            participant Bob\n                            Alice->>John: Hello John, how are you?\n                            loop HealthCheck\n                                John->>John: Fight against hypochondria\n                            end\n                            Note right of John: Rational thoughts &lt;br/>prevail!\n                            John-->>Alice: Great!\n                            John->>Bob: How about you?\n                            Bob-->>John: Jolly good!\n                        </mermaid>\n                    </image>\n                </figure>\n\n                <p>Mermaid has two layout engines<mdash/>the default and <c>elk</c>. The ELK engine often does a better job with complex diagrams. You can specify it as a default by setting the publisher variable <tag\n                  >common/mermaid/@layout-engine</tag> to <c>\"elk\"</c>, or specify it in a single diagram by using standard Mermaid config frontmatter as shown in <xref ref=\"figure-mermaid-elk-layout\"/> below.</p>\n\n                <figure xml:id=\"figure-mermaid-elk-layout\">\n                    <caption>Mermaid Class Diagram using ELK layout engine</caption>\n                    <image>\n                        <mermaid label=\"mermaid-elk-layout\"><![CDATA[\n                ---\n                config:\n                  layout: elk\n                ---\n                classDiagram\n                          OrderMethod <|-- Phone\n                          OrderMethod <|-- Online\n                          OrderMethod <|-- InStore\n                          PaymentMethod <|-- Cash\n                          PaymentMethod <|-- Account\n                          PaymentMethod <|-- Credit\n                          Phone <|-- CashPhone\n                          Phone <|-- AccountPhone\n                          Phone <|-- CreditPhone\n                          Online <|-- CashOnline\n                          Online <|-- AccountOnline\n                          Online <|-- CreditOnline\n                          InStore <|-- CashInStore\n                          InStore <|-- AccountInStore\n                          InStore <|-- CreditInStore\n                          Cash <|-- CashPhone\n                          Account <|-- AccountPhone\n                          Credit <|-- CreditPhone\n                          Cash <|-- CashOnline\n                          Account <|-- AccountOnline\n                          Credit <|-- CreditOnline\n                          Cash <|-- CashInStore\n                          Account <|-- AccountInStore\n                          Credit <|-- CreditInStore\n                        ]]>\n                        </mermaid>\n                    </image>\n                </figure>\n\n            </subsection>\n\n            <subsection>\n                <title>Sage Plots</title>\n                <idx><h>Sage plots</h></idx>\n\n                <p>Any of the numerous capabilities of Sage may be used to produce any graphics object, be it the simple graph of a single-variable function or some realization of a more complicated object.  All of the usual rules about formatting Sage code (esp. indentation) apply, along with one more caveat.  The last line of your Sage code <alert>must</alert> return a Sage <c>Graphics</c> object (or 3D plot).  The <c>pretext</c> script will isolate this last line, use it as the RHS of an assignment statement, and the Sage <c>.save()</c> method will be called to generate the image, which is either a Portable Document Format (PDF) file amenable to <latex/> output, or a Scalable Vector Graphics (SVG) file amenable to HTML output.  It is also possible to make a PNG image, which is necessary for an EPUB destined for a Kindle book.  For visualizations of 3D plots, Sage will only produce Portable Network Graphics (PNG) files, which can be included in HTML pages or <latex/> output.  For complete documentation, see the <pretext/> Guide as this subsection is not comprehensive.</p>\n\n                <figure xml:id=\"figure-sage-parabola\">\n                    <caption>A Sage standard parabola, on <m>[-2,4]</m></caption>\n                    <image xml:id=\"sageplot-parabola\" width=\"50%\">\n                        <shortdescription>a standard parabola on the interval [-2,4]</shortdescription>\n                        <sageplot>\n                        f(x) = x^2\n                        plot(f, (x, -2, 4), color='green', thickness=3)\n                        </sageplot>\n                    </image>\n                </figure>\n\n                <p>Pay careful attention to the requirement that the last line of your code be a graphics object.  In particular, while <c>show()</c> might appear to do the right thing, it evaluates to Python's <c>None</c> object and that is just what you will get.  The code for Figure<nbsp/><xref ref=\"figure-sage-double-plot\"/> illustrates creating two graphics objects and combining them into an expression on the last line that evaluates to a graphics object.</p>\n\n                <figure xml:id=\"figure-sage-double-plot\">\n                    <caption>Two Sage plots on one set of axes</caption>\n                    <image xml:id=\"sageplot-updown\" width=\"45%\">\n                        <sageplot>\n                        f(x) = x^4\n                        g(x) = -x^4\n                        up = plot(f, (x, -1.5, 1.5), color='blue', thickness=2)\n                        down = plot(g, (x, -1.5, 1.5), color='red', thickness=2)\n                        up + down\n                        </sageplot>\n                    </image>\n                </figure>\n\n                <p>Sage code comprised of just a single line was once mishandled, leading to <em>no ouput</em>.  From Jean-Sébastien Turcotte we have the example that revealed the problem.</p>\n\n                <figure xml:id=\"figure-sage-exosagevec1\">\n                    <caption>Les vecteurs <m>\\vec{u}</m> et <m>\\vec{v}</m></caption>\n                    <image width=\"25%\" xml:id=\"sageplot-exosagevec1\">\n                        <description>\n                            <p>\n                                Les vecteurs <m>\\vec{u}</m> et <m>\\vec{v}</m>sont tracés tel que demandé,\n                                respectivement en rouge et en bleu.\n                            </p>\n                        </description>\n                        <sageplot>\n                        plot(vector([-1,2]),color='red')+plot(vector([2,1]),color='blue')\n                        </sageplot>\n                    </image>\n                </figure>\n\n                <p>The following examples are from the <url href=\"http://www.sagemath.org/tour-graphics.html\" visual=\"www.sagemath.org/tour-graphics.html\">Sage Tour</url>.  We package them into a <c>sidebyside</c> layout element, see <xref ref=\"section-side-by-side\" text=\"type-global\"/>.</p>\n\n                <sidebyside width=\"40%\" margins=\"auto\">\n                    <!-- Tour example modified: figsize moved from show() into plot() -->\n                    <!-- 2020-11-18: converted an xrange() to an srange() -->\n                    <figure xml:id=\"figure-sage-multigraph\">\n                        <caption>A Sage multigraph of a sentence</caption>\n                        <image xml:id=\"sageplot-sentence-multigraph\">\n                            <sageplot>\n                            stnc = 'I am a cool multiedge graph with loops'\n                            g = DiGraph({}, loops=True, multiedges=True)\n                            for a,b in [(stnc[i], stnc[i+1]) for i in srange(len(stnc)-1)]:\n                               g.add_edge(a, b, b)\n                            g.plot(color_by_label=True, edge_style='solid', figsize=(8,8))\n                            </sageplot>\n                        </image>\n                    </figure>\n                    <!--  -->\n                    <!-- Tour example modified: now using R.lagrange_polynomial() -->\n                    <!-- Tour example modified: dropped ymin/ymax, figsize -->\n                    <figure xml:id=\"figure-sage-polynomial-approximation\">\n                        <caption>Sage polynomial approximations of <m>f(x)=1/(1+25x^2)</m></caption>\n                        <image xml:id=\"sageplot-polynomial-approximation\">\n                            <!-- default variant is 2d, just testing here -->\n                            <sageplot variant=\"2d\">\n                            def f(x):\n                               return RDF(1 / (1 + 25 * x^2))\n\n                            def runge():\n                                R = PolynomialRing(RDF, 'x')\n                                g = plot(f, -1, 1, rgbcolor='red', thickness=1)\n                                polynom = []\n                                for i, n in enumerate([6, 8, 10, 12]):\n                                  data = [(x, f(x)) for x in xsrange(-1, 1, 2 / (n - 1), include_endpoint=True)]\n                                  polynom.append(R.lagrange_polynomial(data))\n                                  g += list_plot(data, rgbcolor='black', pointsize=5)\n                                g += plot(polynom, -1, 1, fill=f, fillalpha=0.2, thickness=0)\n                                return g\n\n                            runge()\n                            </sageplot>\n                        </image>\n                    </figure>\n                </sidebyside>\n\n                <p>From the Sage documentation, with slight modifications, credited to Douglas Summers-Stay.  A plot of the implicity defined surface <md>2 = \\cos(x + ty) + \\cos(x - ty) + \\cos(y + tz) + \\cos(y - tz) + \\cos(z - tx) + \\cos(z + tx)</md> in rectangular <m>xyz</m> coordinates, with <m>t</m> equal to the golden ratio.  If you set <c>plot_points=100</c> in the Sage code, you will get a very smooth rendering, but also a quite large <init>HTML</init> file.  We have used <c>plot_points=50</c> to reduce the file size by a factor of four.  Note the need for a value of <c>3d</c> for the <attr>variant</attr> attribute, and an explicit aspect ratio with <attr>aspect</attr>.  Arrow keys, a mouse scroll wheel, plus grabbing with a left or a right mouse button, can be used to manipulate the image.</p>\n\n                <figure xml:id=\"figure-sage-implicit-surface\">\n                    <caption>A Sage implicitly defined 3D surface</caption>\n                    <image xml:id=\"sageplot-implicit-surface\" width=\"80%\" margins=\"15% 5%\">\n                        <sageplot variant=\"3d\" aspect=\"1.0\">\n                        var('x y z')\n                        T = RDF(golden_ratio)\n                        p = 2 - (cos(x + T*y) + cos(x - T*y) + cos(y + T*z) + cos(y - T*z) + cos(z - T*x) + cos(z + T*x))\n                        r = 4.77\n                        implicit_plot3d(p, (x, -r, r), (y, -r, r), (z, -r, r), plot_points=50, frame=False)\n                        </sageplot>\n                    </image>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Inkscape Images</title>\n\n                <p><url href=\"https://inkscape.org/\" visual=\"inkscape.org\">Inkscape</url> is a great tool for creating images.  It ticks all the boxes: open source, mature, cross-platform, standards-compliant.  Read much more about it in The <pretext/> Guide.  In <init>HTML</init> output the two images below are both in <init>SVG</init> format.  The first is <q>pure</q> SVG, while the second has embedded information that makes it easier to edit in Inkscape.  You could view the source for this page in the <init>HTML</init> version, deduce the filename of the second image, download it, and manipulate it profitably with Inkscape.  Both files are quite small, but the first is half the size of the second.  In <init>PDF</init> the two images come from files that are identical, so nothing is being tested.  The <init>PDF</init> version is smaller still.</p>\n\n                <figure>\n                    <caption>Inkscape Stars, Plain SVG (left), Inkscape SVG (right), from Bethany Llewellyn</caption>\n                    <sidebyside width=\"25%\">\n                        <image source=\"images/inkscape-stars-plain\"/>\n                        <image source=\"images/inkscape-stars-native\"/>\n                    </sidebyside>\n                </figure>\n\n            </subsection>\n\n            <subsection>\n                <title>Copies of Images</title>\n\n                <p>Sometimes you want to use the same image more than once.  Here we just point to a <init>PNG</init> file that we repeat often throughout this sample.</p>\n\n                <figure xml:id=\"figure-raster-image-copy\">\n                    <caption>Copy of raster image, in a figure, so now numbered and captioned</caption>\n                    <image source=\"images/cross-square.png\" width=\"30%\"/>\n                </figure>\n\n                <p>For images described by code, such as TikZ code in a <tag>latex-image</tag> element, this is a bit subtler.  See the <pretext/> Guide for a complete description.  We also demonstrate this with the sample book, since it is all set up with the <c>xinclude</c> mechanism.  See the two plots of the 8-th roots of unity in the complex numbers section of the chapter on cyclic groups.</p>\n            </subsection>\n\n            <subsection>\n                <title>Caption Testing</title>\n\n                <p>A caption could be as substantial as a paragraph, here we test out one such example.</p>\n\n                <figure xml:id=\"figure-long-caption\">\n                    <caption>A caption can be a whole paragraph with lots of technical details, and maybe a hyperlink to something external, such as <url href=\"https://pretextbook.org\" visual=\"pretextbook.org\"/> or <url href=\"https://pretextbook.org\" visual=\"pretextbook.org\"><pretext/></url>.  There could be some inline mathematics, such as <m>x^2 + y^2 = c^2</m>.  Would a knowl open here?  Recursively?  Let's see: <xref ref=\"figure-long-caption\"/>.  Display mathematics, side-by-sides, theorems, and lots of other things should be banned.  Footnotes sound like a bad idea.  Strange characters should be fine: <section-mark/>.</caption>\n\n                    <image source=\"images/cross-square.png\" width=\"20%\"/>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"captionless-images\">\n                <title>Captionless Images</title>\n\n                <p>We strongly suggest placing images within a <tag>figure</tag>, as we have done above, so that you can reference them, and use the (required) <tag>caption</tag> to explain what they are.  However there are places, such as a <tag>preface</tag>, where numbered items are not permitted.  So you might want a solo image there.  Or maybe graphics are an illustration of sorts, and a numbered figure feels like overkill.  Or it is part of an <tag>exercise</tag> or <tag>proof</tag> of a <tag>theorem</tag>. But notice that you cannot then use this image as the target of a cross-reference, so you may need to refer to some enclosing container.</p>\n\n                <p>The image can be scaled by specifying the <attr>width</attr> as a percentage, including the percent-sign (%).  The height is scaled to preserve the aspect ratio.  There is no facility to change the height, it is your responsibility to manage the aspect ratio independently.  The <attr>margins</attr> can be given as a pair of percentages, separated by a space.  The <attr>width</attr> defaults to 100%, while <attr>margins</attr> defaults to the value <c>auto</c>, which will center the image.  Missing values are computed sensibly, and there is robust error-checking.  The layout control here is a subset of what is available for the more elaborate <tag>sidebyside</tag> element, see <xref ref=\"section-side-by-side\" text=\"type-global\"/>.</p>\n\n                <p>Two simple examples. The first has width <c>10%</c> and so defaults to being centered, and the second has width <c>10%</c> and left margin of <c>25%</c>.</p>\n\n                <image source=\"images/cross-square.png\" width=\"10%\"/>\n\n                <p>A paragraph, just to show where the first stops and the second ends.</p>\n\n                <image source=\"images/cross-square.png\" width=\"10%\" margins=\"25% 65%\"/>\n\n                <p>You might wish to place a single image flush-left, or flush-right.  You can specify the <c>margins</c> attribute as a pair of percentages for different left and right margins.  The following are laid out with two margins, with a 0% left margin and right margin (respectively). </p>\n\n                <image source=\"images/cross-square.png\" width=\"10%\" margins=\"0% 90%\"/>\n\n                <image source=\"images/cross-square.png\" width=\"10%\" margins=\"90% 0%\"/>\n\n                <p>We place two images right above one another, to test spacing of consecutive images (provided they stay on the same page!).</p>\n\n                <image source=\"images/cross-square.png\" width=\"10%\" margins=\"10% 80%\"/>\n\n                <image source=\"images/cross-square.png\" width=\"10%\" margins=\"10% 80%\"/>\n\n                <paragraphs>\n                    <title>Testing (2019-06-02)</title>\n\n                    <p>All the images above are specified by filenames.  We need to test how various options behave when incorporated into the (new) implementation for images, being introduced with solo images.</p>\n\n                    <p>A <c>tikz</c> image recycled from above, now 40% width, with 40% left margin, 20% right margin.</p>\n\n                    <image xml:id=\"tikz-cone-solo\" width=\"40%\" margins=\"40% 20%\">\n                        <latex-image>\n                        <!-- CDATA prevents certain LaTeX code from being interpreted as xml -->\n                        <![CDATA[\\begin{tikzpicture}[join=round]\n                        \\tikzstyle{conefill} = [fill=blue!20,fill opacity=0.8]\n                        \\tikzstyle{ann} = [fill=white,font=\\footnotesize,inner sep=1pt]\n                        \\tikzstyle{ghostfill} = [fill=white]\n                             \\tikzstyle{ghostdraw} = [draw=black!50]\n                        \\filldraw[conefill](-.775,1.922)--(-1.162,.283)--(-.274,.5)\n                                            --(-.183,2.067)--cycle;\n                        \\filldraw[conefill](-.183,2.067)--(-.274,.5)--(.775,.424)\n                                            --(.516,2.016)--cycle;\n                        \\filldraw[conefill](.516,2.016)--(.775,.424)--(1.369,.1)\n                                            --(.913,1.8)--cycle;\n                        \\filldraw[conefill](-.913,1.667)--(-1.369,-.1)--(-1.162,.283)\n                                            --(-.775,1.922)--cycle;\n                        \\draw(1.461,.107)--(1.734,.127);\n                        \\draw[arrows=<->](1.643,1.853)--(1.643,.12);\n                        \\filldraw[conefill](.913,1.8)--(1.369,.1)--(1.162,-.283)\n                                            --(.775,1.545)--cycle;\n                        \\draw[arrows=->,line width=.4pt](.274,-.5)--(0,0)--(0,2.86);\n                        \\draw[arrows=-,line width=.4pt](0,0)--(-1.369,-.1);\n                        \\draw[arrows=->,line width=.4pt](-1.369,-.1)--(-2.1,-.153);\n                        \\filldraw[conefill](-.516,1.45)--(-.775,-.424)--(-1.369,-.1)\n                                            --(-.913,1.667)--cycle;\n                        \\draw(-1.369,.073)--(-1.369,2.76);\n                        \\draw(1.004,1.807)--(1.734,1.86);\n                        \\filldraw[conefill](.775,1.545)--(1.162,-.283)--(.274,-.5)\n                                            --(.183,1.4)--cycle;\n                        \\draw[arrows=<->](0,2.34)--(-.913,2.273);\n                        \\draw(-.913,1.84)--(-.913,2.447);\n                        \\draw[arrows=<->](0,2.687)--(-1.369,2.587);\n                        \\filldraw[conefill](.183,1.4)--(.274,-.5)--(-.775,-.424)\n                                            --(-.516,1.45)--cycle;\n                        \\draw[arrows=<-,line width=.4pt](.42,-.767)--(.274,-.5);\n                        \\node[ann] at (-.456,2.307) {$r_0$};\n                        \\node[ann] at (-.685,2.637) {$r_1$};\n                        \\node[ann] at (1.643,.987) {$h$};\n                        \\path (.42,-.767) node[below] {$x$}\n                            (0,2.86) node[above] {$y$}\n                            (-2.1,-.153) node[left] {$z$};\n                        % Second version of the cone\n                        \\begin{scope}[xshift=3.5cm]\n                        \\filldraw[ghostdraw,ghostfill](-.775,1.922)--(-1.162,.283)--(-.274,.5)\n                                                       --(-.183,2.067)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](-.183,2.067)--(-.274,.5)--(.775,.424)\n                                                       --(.516,2.016)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](.516,2.016)--(.775,.424)--(1.369,.1)\n                                                       --(.913,1.8)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](-.913,1.667)--(-1.369,-.1)--(-1.162,.283)\n                                                       --(-.775,1.922)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](.913,1.8)--(1.369,.1)--(1.162,-.283)\n                                                       --(.775,1.545)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](-.516,1.45)--(-.775,-.424)--(-1.369,-.1)\n                                                       --(-.913,1.667)--cycle;\n                        \\filldraw[ghostdraw,ghostfill](.775,1.545)--(1.162,-.283)--(.274,-.5)\n                                                       --(.183,1.4)--cycle;\n                        \\filldraw[fill=red,fill opacity=0.5](-.516,1.45)--(-.775,-.424)--(.274,-.5)\n                                                             --(.183,1.4)--cycle;\n                        \\fill(-.775,-.424) circle (2pt);\n                        \\fill(.274,-.5) circle (2pt);\n                        \\fill(-.516,1.45) circle (2pt);\n                        \\fill(.183,1.4) circle (2pt);\n                        \\path[font=\\footnotesize]\n                                (.913,1.8) node[right] {$i\\hbox{$=$}0$}\n                                (1.369,.1) node[right] {$i\\hbox{$=$}1$};\n                        \\path[font=\\footnotesize]\n                                (-.645,.513) node[left] {$j$}\n                                (.228,.45) node[right] {$j\\hbox{$+$}1$};\n                        \\draw (-.209,.482)+(-60:.25) [yscale=1.3,->] arc(-60:240:.25);\n                        \\fill[black,font=\\footnotesize]\n                                        (-.516,1.45) node [above] {$P_{00}$}\n                                        (-.775,-.424) node [below] {$P_{10}$}\n                                        (.183,1.4) node [above] {$P_{01}$}\n                                        (.274,-.5) node [below] {$P_{11}$};\n                        \\end{scope}\n                        \\end{tikzpicture}]]>\n                        </latex-image>\n                    </image>\n\n                    <p>A <c>pgfplot</c> image recycled from above, now 20% width, with 40% left margin, 40% right margin, and no longer legible.</p>\n\n                    <image xml:id=\"pgfplots-data-demo-solo\" width=\"20%\" margins=\"40% 40%\">\n                        <latex-image>\n                        <!-- CDATA prevents certain LaTeX code from being interpreted as xml -->\n                        <![CDATA[\n                        \\begin{tikzpicture}\n                        \\begin{axis}[\n                            xmin=0,xmax=100,ymin=-20,ymax=100,\n                            ytick={-20,0,...,100},\n                            xlabel={time (ms)},\n                            ylabel={potential (V)},\n                        ]\n                        \\addplot[blue] table {data/dataplot/hodgkin-huxley-data.dat};\n                        \\end{axis}\n                        \\end{tikzpicture}]]>\n                        </latex-image>\n                    </image>\n\n\n                    <p>An Asymptote image, with zero layout control, so 100% width.</p>\n\n                    <image xml:id=\"asymptote-lever-solo\">\n                        <shortdescription>moments on a lever</shortdescription>\n                        <asymptote>\n                        // The next comment was seen in the wild, and the angle brackets\n                        // are non-ASCII Unicode characters, which was disrupting communication\n                        // with the Asymptote server, so we include the comment here for testing.\n                        // The actual comment is immaterial for the lever diagram.\n                        //\n                        // The path is an elliptical helix ⟨ cos t, 2sin t, t/pi ⟩.\n                        //\n                        size(200,0);\n\n                        pair z0=(0,0);\n                        pair z1=(2,0);\n                        pair z2=(5,0);\n                        pair zf=z1+0.75*(z2-z1);\n\n                        draw(z1--z2);\n                        dot(z1,red+0.15cm);\n                        dot(z2,darkgreen+0.3cm);\n                        label(\"$m$\",z1,1.2N,red);\n                        label(\"$M$\",z2,1.5N,darkgreen);\n                        label(\"$\\hat{\\ }$\",zf,0.2*S,fontsize(24pt)+blue);\n\n                        pair s=-0.2*I;\n                        draw(\"$x$\",z0+s--z1+s,N,red,Arrows,Bars,PenMargins);\n\n                        s=-0.5*I;\n                        draw(\"$\\bar{x}$\",z0+s--zf+s,blue,Arrows,Bars,PenMargins);\n\n                        s=-0.95*I;\n                        draw(\"$X$\",z0+s--z2+s,darkgreen,Arrows,Bars,PenMargins);\n                        </asymptote>\n                    </image>\n\n                    <p>A Sage example, pushed to the right margin.</p>\n\n                    <image xml:id=\"sageplot-parabola-solo\" width=\"30%\" margins=\"70% 0%\">\n                        <shortdescription>a standard parabola on the interval [-2,4]</shortdescription>\n                        <sageplot>\n                        f(x) = x^2\n                        plot(f, (x, -2, 4), color='green', thickness=3)\n                        </sageplot>\n                    </image>\n                </paragraphs>\n            </subsection>\n\n            <subsection>\n                <title>Technical Details</title>\n\n                <p>The table below is a summary of how graphics and images are specified, constructed and manipulated.  Additional processing is indicated by reference to the Python script <c>pretext</c>.  Images need to be placed relative to the <latex/> file that includes them during compilation, and placed relative to the <init>HTML</init> files which reference/include them.  Author-provided image files may be placed in any subdirectory, and the <c>@source</c> attribute should include the complete relative path with the subdirectory.  Files generated by the <c>pretext</c> script will be specified in the output using the relative directory <c>images</c>, which can be changed.  There is no reason author-provided files cannot also be placed in this same directory (presuming no duplicate names). [This table is presently more readable in HTML, the PDF version will improve.]</p>\n\n                <tabular top=\"medium\" bottom=\"minor\">\n                    <row bottom=\"medium\">\n                        <cell>Element</cell>\n                        <cell>Specification</cell>\n                        <cell><latex/>/Print</cell>\n                        <cell>HTML</cell>\n                        <cell>Notes</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>image/@source</c></cell>\n                        <cell>full relative path, w/ extension</cell>\n                        <cell>directly included</cell>\n                        <cell>directly included</cell>\n                        <cell>author-provided <init>PNG</init>, <init>JPEG</init></cell>\n                    </row>\n\n                    <row>\n                        <cell><c>image/@source</c></cell>\n                        <cell>full relative path, w/o extension</cell>\n                        <cell>presumes <init>PDF</init></cell>\n                        <cell>presumes <init>SVG</init></cell>\n                        <cell>author-provided</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>image/latex-image-code</c></cell>\n                        <cell><latex/>-compatible source</cell>\n                        <cell>directly included</cell>\n                        <cell><init>SVG</init> via <c>pretext</c></cell>\n                        <cell><eg/> tikz, pgfplots, xypic</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>image/sageplot</c></cell>\n                        <cell>Sage code</cell>\n                        <cell><init>PDF</init> via <c>pretext</c></cell>\n                        <cell><init>SVG</init> via <c>pretext</c></cell>\n                        <cell><init>PNG</init> for 3-D</cell>\n                    </row>\n\n                    <row>\n                        <cell><c>image/asymptote</c></cell>\n                        <cell>Asymptote code</cell>\n                        <cell><init>PDF</init> via <c>pretext</c></cell>\n                        <cell><init>SVG</init> via <c>pretext</c></cell>\n                        <cell></cell>\n                    </row>\n                </tabular>\n\n                <p>In the early stages of a writing project, it may be best not to track provisional image files built with <c>pretext</c> under version control, and just regenerate them periodically (see the <c>-r</c> option for <c>pretext</c>).  As a project matures, then it makes sense to put stable files under version control for collaborators and others.  In every case, managing graphics files (and other aspects of production), is much more pleasurable with a script (shell, Makefile, etc.)</p>\n            </subsection>\n\n            <subsection>\n                <title>Accessibility</title>\n                <p>\n                    An <tag>image</tag> should either have a non-empty <tag>description</tag>,\n                    a non-empty <tag>shortdescription</tag>, or set <attr>decorative</attr> to the\n                    value <c>yes</c>. Some of the following images comply, and some do not.  There's\n                    not really anything to see here visually, this is testing notifications made\n                    elsewhere.\n                </p>\n\n                <sbsgroup width=\"20%\">\n                    <sidebyside>\n                        <p>No description, no shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\"/>\n                        <p>No description, no shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\"/>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>No description, empty shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <shortdescription/>\n                        </image>\n                        <p>No description, empty shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <shortdescription/>\n                        </image>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>No description, too long shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <shortdescription>This shortdescription is too long because when alt text is longer than 125 characters, some screen readers will cut off reading the alt text after the 125th character.</shortdescription>\n                        </image>\n                        <p>No description, too long shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <shortdescription>This shortdescription is too long because when alt text is longer than 125 characters, some screen readers will cut off reading the alt text after the 125th character.</shortdescription>\n                        </image>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>No description, good shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <shortdescription>a white square outlined in blue covered by a black X</shortdescription>\n                        </image>\n                        <p>No description, good shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <shortdescription>a white square outlined in blue covered by a black X</shortdescription>\n                        </image>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>Description, no shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                        <p>Description, no shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>Description, empty shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <shortdescription/>\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                        <p>Description, empty shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <shortdescription/>\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>Description, too long shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <shortdescription>This shortdescription is too long because when alt text is longer than 125 characters, some screen readers will cut off reading the alt text after the 125th character.</shortdescription>\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                        <p>Description, too long shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <shortdescription>This shortdescription is too long because when alt text is longer than 125 characters, some screen readers will cut off reading the alt text after the 125th character.</shortdescription>\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                    </sidebyside>\n                    <sidebyside>\n                        <p>Description, good shortdescription, no <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\">\n                            <shortdescription>a white square outlined in blue covered by a black X</shortdescription>\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                        <p>Description, good shortdescription, <attr>decorative</attr> set to <c>yes</c></p>\n                        <image source=\"images/cross-square.png\" decorative=\"yes\">\n                            <shortdescription>a white square outlined in blue covered by a black X</shortdescription>\n                            <description>\n                                <p>\n                                    A white square outlined in blue covered by a black <q>X</q>.\n                                </p>\n                            </description>\n                        </image>\n                    </sidebyside>\n                </sbsgroup>\n            </subsection>\n        </section>\n\n        <section label=\"section-further-reading\">\n            <title>Further Reading</title>\n\n            <subsection>\n                <title>Specialized Subdivisions</title>\n\n                <p>In a longer work you might wish to have some references on a per-chapter basis, or similar.  You can make a <q>references</q> subdivision anywhere to hold bibliographic items, and you can reference the items like any other item.  For example, we can cite the article below <xref ref=\"biblio-beezer-fcla\" detail=\"Chapter R\"/>, included an indication that a specific chapter may be relevant.</p>\n            </subsection>\n\n            <exercises>\n                <title>Exercises</title>\n\n                <exercise xml:id=\"exercises-null-problem\">\n                    <statement>\n                        <p>No problem here, but the next two are in an <q>exercise group</q> with an introduction and a conclusion, along with an optional title.  The two problems of the exercise group should be indented some to indicate the grouping.</p>\n                        <p>N.B. An <tag>exercisegroup</tag> is meant to hold a collection of (short) exercises with common, shared, instructions.  Do not use this structure to subdivide an <tag>exercises</tag> division, as you will eventually be disappointed.  Instead, use the available, but under development as of 2019-11-02, <tag>subexercises</tag>, which <em>requires</em> a <tag>title</tag>.</p>\n                    </statement>\n                </exercise>\n\n                <exercisegroup xml:id=\"exercisegroup-two-problems\">\n                    <title>Two Derivative Problems</title>\n                    <idx><h>exercise group</h><h>two derivatives</h></idx>\n\n                    <introduction>\n                        <p>In the next two problems compute the indicated derivative.</p>\n                        <image source=\"images/cubic-function.png\" width=\"30%\"/>\n                        <p>You could <q>connect</q> the image above with the exercises following as part of this <c>introduction</c> for the <c>exercisegroup</c>.</p>\n                    </introduction>\n\n                    <!-- This exercise has no solutions, so we can dispense with the \"statement\" structure -->\n                    <exercise>\n                        <p><m>f(x)=x^3</m>, <m>\\frac{df}{dx}</m>.  This sentence is just a bunch of gibberish to check where the second line of the problem begins relative to the first line.</p>\n                        <p>We cross-reference the next problem in this exercise group.  For the <c>phrase-global</c> form, the common element of the cross-reference and the target should be the <c>exercises</c> division, and not the enclosing <c>exercisegroup</c>:  <xref ref=\"exercises-cosine-derivative\" text=\"phrase-global\"/>.</p>\n                    </exercise>\n\n                    <exercise xml:id=\"exercises-cosine-derivative\">\n                        <idx><h>derivative</h><h>cosine</h></idx>\n                        <statement>\n                            <p><m>y = \\cos(x)</m>, <m>y^\\prime</m>.</p>\n                        </statement>\n                    </exercise>\n\n                    <conclusion>\n                        <p>Note that the previous two problems used very different notation for the function and the resulting derivative.</p>\n                    </conclusion>\n\n                </exercisegroup>\n\n                <exercise>\n                    <p>This isn't really an exercise, but an explanation that the next <tag>exercisegroup</tag> has a title and no <tag>introduction</tag>, which once resulted in some aberrant formatting in <latex/> output.</p>\n                </exercise>\n\n                <exercisegroup xml:id=\"exercisegroup-two-more-problems\">\n                    <title>Two More Derivative Problems</title>\n\n                    <introduction>\n                        <p>Some common instructions would go here in the <tag>introduction</tag></p>\n                    </introduction>\n\n                    <exercise>\n                        <p><m>f(x)=x^3</m>, <m>\\frac{df}{dx}</m>.  This sentence is just a bunch of gibberish to check where the second line of the problem begins relative to the first line.</p>\n                        <p>We cross-reference the next problem in this exercise group.  For the <c>phrase-global</c> form, the common element of the cross-reference and the target should be the <c>exercises</c> division, and not the enclosing <c>exercisegroup</c>:  <xref ref=\"exercises-cosine-derivative\" text=\"phrase-global\"/>.</p>\n                    </exercise>\n\n                    <exercise>\n                        <statement>\n                            <p><m>y = \\cos(x)</m>, <m>y^\\prime</m>.</p>\n                        </statement>\n                    </exercise>\n\n                </exercisegroup>\n\n                <exercise>\n                    <p>Compute <m>\\int 3x^2\\,dx</m>.</p>\n                </exercise>\n\n                <exercise>\n                    <statement>\n                        <p>One of the few things you can place inside of mathematics is a <q>fill-in</q> blank.<idx><h>fill-in blank</h></idx>  We demonstrate a few scenarios here.  See details on syntax in <xref ref=\"subsection-paragraph-markup\" text=\"type-global\"/><ndash/>the use is identical within mathematics.<ul>\n                            <li><p>Inside inline math (short, space for <m>x</m>): <m>\\sin(<fillin fill=\"x\"/>)</m></p></li>\n\n                            <li><p>Inside inline math (default, space for <m>XXX</m>): <m>\\sin(<fillin/>)</m></p></li>\n\n                            <li><p>Inside exponents and subscripts (each is space for the string <q>12</q>).  In this case, be sure to wrap your exponents and subscripts in braces, as would be good <latex/> practice anyway: <m>x^{5+<fillin fill=\"12\"/>}\\,y_{<fillin fill=\"12\"/>}</m></p></li>\n\n                            <li><p>Inside inline math (too long for this line probably, 40 characters long): <m>\\tan(<fillin fill=\"Mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"/>)</m></p></li>\n\n                            <li><p>So use inside a displayed equation<md>16\\log\\space<fillin fill=\"1-x^2\"/></md>like this one.</p></li>\n\n                            <li><p>Inside the second line of a multi-line display:<md>\n                                <mrow>y &amp;= x^7\\,x^8</mrow>\n                                <mrow>  &amp;= x^{<fillin fill=\"15\"/>}</mrow>\n                            </md></p></li>\n                            <li><p>\n                                This fillin has the historical <attr>characters</attr> attribute for a fillin inside math: <m>1+<fillin characters=\"5\"/>+4=10</m>, which may be more convenient, but may not side properly in places like subscripts, superscripts, fractions, limits of integrals, and so on.\n                            </p></li>\n                        </ul></p>\n                    </statement>\n                </exercise>\n\n            </exercises>\n\n            <exercises xml:id=\"exercises-section-multiple\">\n                <title>More Exercises</title>\n\n                <introduction>\n                    <p>\n                        This exercises section should start on a new page in PDF output if the standard publisher file is used.\n                    </p>\n                </introduction>\n\n                <exercise>\n                    <statement>\n                        <p>This is not a real exercise, we just want to explain that this is another subsection of exercises, which has two consecutive exercise groups.</p>\n                    </statement>\n                </exercise>\n\n                <exercisegroup>\n                    <introduction><p>Introduction to first exercise group.</p></introduction>\n                    <exercise>\n                        <statement><p>Only exercise of first group.</p></statement>\n                    </exercise>\n                    <conclusion><p>Conclusion to first exercise group.</p></conclusion>\n                </exercisegroup>\n\n                <exercisegroup>\n                    <introduction><p>Introduction to second exercise group.</p></introduction>\n                    <exercise>\n                        <statement><p>First exercise of second group.</p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p>Second exercise of second group.</p></statement>\n                    </exercise>\n                    <conclusion><p>Conclusion to second exercise group.</p></conclusion>\n                </exercisegroup>\n\n                <exercisegroup cols=\"4\">\n                    <introduction><p>An <tag>exercisegroup</tag> can have a <c>cols</c> attribute taking a value from 2<ndash/>6. Exercises will progress by row, in so many columns. On a small screen, the HTML exercises may reorganize into fewer columns.</p></introduction>\n                    <exercise>\n                        <statement><p><m>1+2</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>3+4+5</m></p></statement>\n                        <hint><p>Addition is associative.</p></hint>\n                        <answer><p><m>12</m></p></answer>\n                        <solution><p>First, add <m>3</m> and <m>4</m> to get <m>7</m>, then add <m>5</m> to arrive at <m>12</m>.</p></solution>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>5+6</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p>Add seven to eight.</p></statement>\n                        <answer><p><m>15</m></p></answer>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>9+10</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>1+2</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>3+4+5</m></p></statement>\n                        <hint><p>Addition is associative.</p></hint>\n                        <answer><p><m>12</m></p></answer>\n                        <solution>\n                            <p>First, add <m>3</m> and <m>4</m> to get <m>7</m>, then add <m>5</m> to arrive at <m>12</m>.</p>\n                            <proof>\n                                <p>A simple argument.</p>\n                            </proof>\n                            <p>And a bit more.</p>\n                        </solution>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>5+6</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p>Add seven to eight.</p></statement>\n                        <answer><p><m>15</m></p></answer>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>9+10</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>1+2</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>3+4+5</m></p></statement>\n                        <hint><p>Addition is associative.</p></hint>\n                        <answer><p><m>12</m></p></answer>\n                        <solution><p>First, add <m>3</m> and <m>4</m> to get <m>7</m>, then add <m>5</m> to arrive at <m>12</m>.</p></solution>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>5+6</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p>Add seven to eight.</p></statement>\n                        <answer><p><m>15</m></p></answer>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>9+10</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>1+2</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>3+4+5</m></p></statement>\n                        <hint><p>Addition is associative.</p></hint>\n                        <answer><p><m>12</m></p></answer>\n                        <solution><p>First, add <m>3</m> and <m>4</m> to get <m>7</m>, then add <m>5</m> to arrive at <m>12</m>.</p></solution>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>5+6</m></p></statement>\n                    </exercise>\n                    <exercise>\n                        <statement><p>Add seven to eight.</p></statement>\n                        <answer><p><m>15</m></p></answer>\n                    </exercise>\n                    <exercise>\n                        <statement><p><m>9+10</m></p></statement>\n                    </exercise>\n                    <conclusion><p>This feature was designed with short <q>drill</q> exercises in mind.  With long exercises, or exercises with long hints, answers, or solutions, there is a risk that the <latex/> output will have bad page breaks in the vicinity (just before) such an exercise that occupies too much vertical space.  Edit, rearrange, or use fewer columns to see if the situation improves.</p></conclusion>\n                </exercisegroup>\n\n                <exercise>\n                    <statement>\n                        <p>\n                            Make a table and a graph for the function <m>f(x)=x^2</m>.\n                        </p>\n                    </statement>\n                    <answer>\n                        <sidebyside>\n                            <tabular halign=\"center\">\n                                <row header=\"yes\" bottom=\"medium\">\n                                    <cell><m>x</m></cell>\n                                    <cell><m>f(x)</m></cell>\n                                </row>\n                                <row>\n                                    <cell><m>0</m></cell>\n                                    <cell><m>0</m></cell>\n                                </row>\n                                <row>\n                                    <cell><m>1</m></cell>\n                                    <cell><m>1</m></cell>\n                                </row>\n                                <row>\n                                    <cell><m>2</m></cell>\n                                    <cell><m>4</m></cell>\n                                </row>\n                                <row>\n                                    <cell><m>3</m></cell>\n                                    <cell><m>9</m></cell>\n                                </row>\n                            </tabular>\n                            <image xml:id=\"x-squared\">\n                                <latex-image>\n                                \\begin{tikzpicture}\n                                    \\begin{axis}\n                                        \\addplot[domain=-1.5:4, blue, thick, {stealth}-{stealth}] {x^2};\n                                    \\end{axis}\n                                \\end{tikzpicture}\n                                </latex-image>\n                            </image>\n                        </sidebyside>\n                    </answer>\n                </exercise>\n            </exercises>\n\n            <references xml:id=\"references-section\">\n                <title>References</title>\n                <idx><h>references</h><h>within a section</h></idx>\n\n                <introduction>\n                    <p>These items are here to test basic formatting of references.</p>\n                </introduction>\n\n                <biblio type=\"raw\" xml:id=\"biblio-strang-article\">Gilbert Strang, <title>The Fundamental Theorem of Linear Algebra</title>, <journal>The American Mathematical Monthly</journal> November 1993, <volume>100</volume> <number>9</number>, 848<ndash/>855.</biblio>\n\n                <biblio type=\"bibtex\" xml:id=\"CF\">\n                    <author>J. B. Conrey and D. W. Farmer</author>\n                    <title>Mean values of <m>L</m>-functions and symmetry</title>\n                    <journal>Internat. Math. Res. Notices</journal>\n                    <number>17</number>\n                    <year>2000</year>\n                    <pages start=\"883\" end=\"908\"/>\n                </biblio>\n\n                <biblio type=\"raw\" xml:id=\"biblio-beezer-fcla\">Robert A. Beezer, <title>A First Course in Linear Algebra</title>, 3rd Edition, Congruent Press, 2012.\n                <note><p>An online, open-source<fn>A gratuitous footnote to test prior bug confusing this with a REMARK-LIKE <tag>note</tag>.</fn> offering.</p></note>\n                </biblio>\n\n                <biblio type=\"bibtex\" xml:id=\"Dav\">\n                    <author>H. Davenport</author>\n                    <title>Multiplicative Number Theory</title>\n                    <series>GTM</series>\n                    <volume>74</volume>\n                    <publisher>Springer-Verlag New York, NY</publisher>\n                    <year>2000</year>\n                    <pages>xiv+177</pages>\n                    <pubnote>A note may accompany a bibliographic item, such as saying the manuscript is under review.  But it cannot contain any formatting.</pubnote>\n                </biblio>\n\n                <biblio type=\"raw\" xml:id=\"biblio-rosswell-fictional\">Alexander Rosswell, <title>Diffeomorphisms of Penciled Fiber Bundles</title>, <journal>Mathematicians of America</journal> <year>2020</year>, <volume>2</volume> <number>6</number>, 884<ndash/>888.</biblio>\n\n                <biblio type=\"raw\" xml:id=\"biblio-rosswell-fictional-two\"><ibid/>, <title>Diffeomorphisms of Penciled Fiber Bundles, Part 2</title>, <journal>Mathematicians of America</journal> <year>2021</year>, <volume>3</volume> <number>4</number>, 102<ndash/>103.</biblio>\n\n                <conclusion>\n                    <p>This is a conclusion, which has not been used very much in this sample.  Did you see that the entry for <xref ref=\"biblio-beezer-fcla\"/> has a short annotation?  So you can make annotated bibliographies easily.</p>\n                </conclusion>\n            </references>\n\n        </section>\n\n        <section xml:id=\"lists\" label=\"section-lists\">\n            <title>List Calisthenics</title>\n\n            <subsection>\n                <title>Lists, Generally</title>\n                <idx><h>ordered list</h></idx>\n                <idx><h>list</h><h>ordered</h></idx>\n                <idx><h>unordered list</h></idx>\n                <idx><h>list</h><h>unordered</h></idx>\n\n                <p>\n                   Use <c>ol</c> to make an ordered list,<idx><h>ordered list</h></idx>\n                   and <c>ul</c> to make an unordered (bulleted) list.\n                   In both cases, use <c>li</c> for each entry.  If an entry contains\n                   more than one paragraph, then each must be wrapped in <c>p</c>.\n                   <idx><h>unordered list</h></idx>\n                   <idx><h>list</h><h>ordered</h></idx>\n                   <idx><h>list</h><h>unordered</h></idx>\n                </p>\n\n\n                <p>This section contains nested lists,\n                   to demonstrate how they get assigned labels (numbering, symbols).\n                   But we begin with two simple lists,\n                   demonstrating an ordered list and an unordered list.\n                   See the end of section for an example of a description list.\n                   Note in the source the optional use of a paragraph\n                   (<c>p</c>) for the list items of the list of colors.</p>\n\n                <p><ol>\n                    <li>First.</li>\n                    <li>Second<fn>Footnote in an unstructured list item</fn>.</li>\n                    <li>Third.</li>\n                </ol><ul>\n                    <li><p>Red<fn>One of our favorite colors</fn></p></li>\n                    <li><p>Green</p></li>\n                    <li><p>Yellow</p></li>\n                    <li><p>Purple</p></li>\n                </ul></p>\n\n                <p>Next, we have a list with no customization and multiple levels to test the defaults.  <latex/> allows a maximum of four levels of ordered/numbered lists, and a total of six levels if some unordered lists are mixed in.  Note that to have nested lists you <em>must</em> structure your list items as paragraphs, since a list may only appear within a <tag>p</tag> element.<ol>\n                    <li>\n                        <title>A title on a top-level item</title>\n                        <p>Level 1, first.</p>\n                    </li>\n                    <li xml:id=\"list-two\">\n                        <p>Level 1, second.<ol>\n                            <li><p>Level 2, first.</p></li>\n                            <li><p>Level 2, second.<ol>\n                                <li><p>Level 3, first.</p></li>\n                                <li xml:id=\"list-two-two-two\"><p>Level 3, second.<ol>\n                                    <li><p>Level 4, first.</p></li>\n                                    <li><p>Level 4, second.</p></li>\n                                    <li xml:id=\"list-two-two-two-three\">\n                                        <title>Title on xref'ed list item</title>\n                                        <p>Level 4, third.</p></li>\n                                </ol></p>\n                                </li>\n                                <li><p>Level 3, third.</p></li>\n                            </ol></p>\n                            </li>\n                            <li>\n                                <title>A title on a nested item</title>\n                                <p>Level 2, third.</p>\n                            </li>\n                        </ol></p>\n                    </li>\n                    <li><p>Level 1, third.</p></li>\n                </ol></p>\n\n                <p>Items in ordered lists (only) may be be give an <c>xml:id</c> and then may be the target of an <c>xref</c>.  We test three here, referencing down into the hierarchy above.  Level 1, second: <xref ref=\"list-two\"/>.  Level 3, second: <xref ref=\"list-two-two-two\"/>.  Level 4, third: <xref ref=\"list-two-two-two-three\"/>.  Note that if a list item of an ordered list is contained within a list item of an unordered list, then its number will not be defined.</p>\n\n                <p>And now a four-level deep unordered list with the default labels supplied by <pretext/> (disc, circle, square, disc).  Again, the defalt order for Markdown/Jupyter (disc, square, circle, circle) is different than for <latex/> and HTML (disc, circle, square, disc)<ul>\n                    <li>\n                        <title>A title on a top-level item</title>\n                        <p>Level 1, first.</p>\n                    </li>\n                    <li>\n                        <p>Level 1, second.<ul>\n                            <li><p>Level 2, first.</p></li>\n                            <li>\n                                <p>Level 2, second.<ul>\n                                    <li><p>Level 3, first.</p></li>\n                                    <li>\n                                        <p>Level 3, second.<ul>\n                                            <li><p>Level 4, first.</p></li>\n                                            <li><p>Level 4, second.</p></li>\n                                            <li><p>Level 4, third.</p></li>\n                                        </ul></p>\n                                    </li>\n                                    <li>\n                                        <title>A title on a nested item</title>\n                                        <p>Level 2, third.</p>\n                                    </li>\n                                </ul></p>\n                            </li>\n                            <li><p>Level 2, third.</p></li>\n                        </ul></p>\n                    </li>\n                    <li><p>Level 1, third.</p></li>\n                </ul></p>\n\n                <p>And a total of six levels with a mix of ordered and unordered lists, the most that out-of-the-box-<latex/> is able to handle.<ol>\n                    <li><p>Level 1, first.</p></li>\n                    <li><p>Level 1, second.<ol>\n                            <li><p>Level 2, first.</p></li>\n                            <li><p>Level 2, second.<ul>\n                                    <li><p>Level 3, first.</p></li>\n                                    <li><p>Level 3, second.<ol>\n                                            <li><p>Level 4, first.</p></li>\n                                            <li><p>Level 4, second.<ol>\n                                                    <li><p>Level 5, first.</p></li>\n                                                    <li><p>Level 5, second.<ul>\n                                                            <li><p>Level 6, first.</p></li>\n                                                            <li><p>Level 6, second.</p></li>\n                                                            <li><p>Level 6, third.</p></li>\n                                                        </ul></p>\n                                                    </li>\n                                                    <li><p>Level 5, third.</p></li>\n                                                </ol></p>\n                                            </li>\n                                            <li><p>Level 4, third.</p></li>\n                                        </ol></p>\n                                    </li>\n                                    <li><p>Level 3, third.</p></li>\n                                </ul></p>\n                            </li>\n                            <li><p>Level 2, third.</p></li>\n                        </ol></p>\n                    </li>\n                    <li><p>Level 1, third.</p></li>\n                </ol></p>\n\n                <p>Now, nested lists with the defaults replaced by custom choices.  First, an ordered list, three deep, upper Roman numerals, then upper-case Latin, then more traditional Arabic numerals on the three elements of the third level.  Note the adornments of the labels will not currently be rendered by <url href=\"https://en.wikipedia.org/wiki/WebKit\">WebKit</url>-based browsers (such as Safari) when viewing HTML output.<ol marker=\"*I*\">\n                    <li><p>Level 1, first.</p></li>\n                    <li><p>Level 1, second.<ol marker=\"++A\">\n                            <li><p>Level 2, first.</p></li>\n                            <li><p>Level 2, second.<ol marker=\"1)\">\n                                    <li><p>Level 3, first.</p></li>\n                                    <li><p>Level 3, second.</p></li>\n                                    <li><p>Level 3, third.</p></li>\n                                </ol></p>\n                            </li>\n                            <li><p>Level 2, third.</p></li>\n                        </ol></p>\n                    </li>\n                    <li><p>Level 1, third.</p></li>\n                </ol></p>\n\n                <p>A nested unordered list, with labels given as squares on the outer list and nothing (blank) on the inner lists.<ul marker=\"square\">\n                    <li><p>Level 1, first.</p></li>\n                    <li><p>Level 1, second.<ul marker=\"\">\n                            <li><p>Level 2, first.</p></li>\n                            <li><p>Level 2, second.</p></li>\n                        </ul></p>\n                    </li>\n                    <li><p>Level 1, third.</p></li>\n                </ul></p>\n\n                <p>A nested ordered list, to test intramural cross-references.<ol>\n                    <li><p>Level 1, first.</p></li>\n                    <li xml:id=\"list-item-second\"><p>Level 1, second.<ul marker=\"\">\n                            <li><p>Level 2, first.</p></li>\n                            <li><p>Level 2, second.</p></li>\n                        </ul></p>\n                    </li>\n                    <li><p>Level 1, third.  With a cross-reference to second list item, <xref ref=\"list-item-second\"/>.</p></li>\n                    <li><p>Level 1, fourth.  Whose number should not change when the knowl just prior is opened.</p></li>\n                </ol></p>\n\n                <p>An ordered list may begin at zero by using a numeral zero in the <attr>label</attr> attribute, instead of numeral one.<ol marker=\"(0)\">\n                    <li>First</li>\n                    <li>\n                        <p>Second<ol marker=\"-0-\">\n                            <li>Uno</li>\n                            <li>Dos</li>\n                            <li>Tres</li>\n                        </ol></p>\n                    </li>\n                    <li>Third</li>\n                </ol></p>\n\n\n                <p>The next definition is very poorly worded.  It is meant to test leading off with a list (bad form), for which <latex/> normally begins right after the heading.</p>\n\n                <definition>\n                    <title>Group</title>\n                    <idx>Group</idx>\n                    <statement>\n                        <p><idx><h>group</h><h>definition</h></idx><idx><h>paragraph</h><h>initial list</h></idx><ol marker=\"a)\">\n                            <li>There is a binary operation, denoted <q><m>\\cdot</m></q>.</li>\n                            <li>The operation is associative.</li>\n                            <li>There is an identity element, <m>e</m>.</li>\n                            <li><p>For every element <m>b</m>, there is an element <m>c</m> (the inverse), such that <md>b\\cdot c=c\\cdot b = e</md>.</p></li>\n                        </ol></p>\n                        <p>If these conditions are met for a set <m>G</m>, then we say <m>G</m> is a <term>group</term>.</p>\n                    </statement>\n                </definition>\n\n\n                <p>Exercises and References are specialized subdivisions you can put anywhere.  They are implemented as top-level lists, so should share behavior.  For example, an exercise may have many parts and when expressed as a list, should have the expected labels.</p>\n\n                <p>Similarly, References may have lists in their annotations.  Unlikely?  But possible.</p>\n\n                <p>The next two subdivisions are an Exercises subdivision and a References subdivision, which have lists within an exercise and a bibliographic item (respectively).</p>\n            </subsection>\n\n            <subsection>\n                <title>List Spacing, I</title>\n\n                <p>This is a short list that ends a subsection, so can be used to address the necessary spacing.  We also test two XML elements separated by a space (which should not go missing).<ol cols=\"2\" marker=\"(a)\">\n                    <li>One item.</li>\n                    <li><em>Two</em> <alert>ducks</alert>.</li>\n                    <li>Three items.  Plus a few more words to check that long entries in a two column list look good.</li>\n                    <li>Four items.</li>\n                    <li>Another long entry that simultaneously tests that long entries look good in a list,\n                        and also tests an odd number of entries in a two column list.</li>\n                </ol></p>\n            </subsection>\n\n            <subsection>\n                <title>List Spacing, II</title>\n\n                <p>This is another short list that ends a subsection, so can be used to address the necessary spacing.<ul cols=\"2\">\n                    <li>\n                      <p>Uno item.</p>\n                      <aside>\n                          <title>List column test</title>\n                          <p>An aside in a multi-column list. We don't want this to float away from its context and/or break the layout. This also tests if list title formatting affects things inside the list.</p>\n                      </aside>\n                    </li>\n                    <li><p>Dos items.</p></li>\n                    <li><p>Tres item.</p></li>\n                    <li><p>Quattro items.</p></li>\n                </ul></p>\n\n                <p>And a paragraph after that list so that spacing can be checked.</p>\n            </subsection>\n\n            <subsection xml:id=\"test-second\">\n              <title>List items containing only inline math</title>\n\n              <assemblage xml:id=\"math-list-test\">\n                  <title>Testing list items containing only math</title>\n\n                  <p>\n                    There are many places where it makes sense to have a list of mathematical terms,\n                    or possibly equations.\n                    For example, one might wish to provide a list of derivative formulas.\n                    With such lists, the author may wish to have display mathematics,\n                    but almost certainly they don't want it centered.\n                    One can work around this by using the <latex/> <c>\\displaystyle</c> command.\n                    However, it would be nice if a list item containing only math used display mode by default.\n                  </p>\n\n                  <p>\n                      <ol>\n                          <li>\n                              <p>\n                                  A list item containing some text in a paragraph,\n                                  as well as some inline math: <m>\\int_a^b x^2\\,dx = \\frac{x^3}{3}</m>.\n                              </p>\n                          </li>\n                          <li>A list item with text and math <m>\\int_a^b x^2\\,dx</m>, not in a paragraph.</li>\n                          <li>\n                              <m>\\frac{d}{dx}\\tan(x) = \\sec^2(x) = \\frac{1}{\\cos^2(x)}</m>\n                          </li>\n\n                          <li><m>\\sum_{i=0}^n r^i = \\frac{1-r^{n+1}}{1-r}</m></li>\n                      </ol>\n                      <idx><h><m>\\int f(x)\\,dx</m></h></idx>\n                      <idx><h>math in lists <m>\\frac{d}{dx}(\\sin(x))=\\cos(x)</m></h></idx>\n                  </p>\n\n\n                  <p>\n                      Now, a <c>p</c> that isn't in a list,\n                      followed by a list that's in a <c>p</c>.\n                  </p>\n\n                  <p>\n                      <ul>\n                          <li>\n                              <p>\n                                  <m>\\sum_{n=1}^\\infty\\frac{1}{n^2}=\\frac{\\pi^2}{6}</m>\n                                  A list item starting with some math,\n                                  followed by text, all in a <c>p</c>\n                              </p>\n                          </li>\n\n                          <li><m>\\frac{a}{b}\\div \\frac{c}{d} = \\frac{ad}{bc}</m></li>\n\n                          <li>\n                              <m>\n                                  \\tan\\theta = \\frac{\\sin\\theta}{\\cos\\theta}\n                              </m>\n                          </li>\n                      </ul>\n                  </p>\n\n              </assemblage>\n\n              <p>\n                  The above assemblage had some lists in it, just to see what will happen.\n                  While we're at it, we might try adding lists that are in a <c>list</c>.\n              </p>\n\n              <list>\n                  <title>A list of items, some of which contain math</title>\n                  <ol>\n                      <li>\n                          <p>\n                              A first list item, containing some text.\n                              The next list item will contain only math,\n                              with the <c>m</c> tag inline with the <c>li</c> tag.\n                          </p>\n                      </li>\n                      <li>A list item with text and math <m>\\int_a^b x^2\\,dx</m>, not in a paragraph.</li>\n                      <li><m>\\int_a^b f'(x)\\, dx = f(b)-f(a)</m></li>\n\n                      <li>\n                          <p>\n                              The next two list items will contain, respectively,\n                              a list item containing only math, where the math is on a new line,\n                              then the same again, but with two new lines,\n                              and a list item containing math within a <c>p</c>,\n                              first inline, and then after a line break.\n                          </p>\n                      </li>\n\n                      <li>\n                          <m>\\frac{d}{dx}\\sec^{-1}(x) = \\frac{1}{x\\sqrt{x^2-1}}</m>\n                      </li>\n\n                      <li>\n                          <m>\\frac{d}{dx}\\sec^{-1}(x) = \\frac{1}{x\\sqrt{x^2-1}}</m>\n                      </li>\n\n                      <li><p><m>\\frac{d}{dx}\\sec^{-1}(x) = \\frac{1}{x\\sqrt{x^2-1}}</m></p></li>\n\n                      <li>\n                          <p>\n                              <m>\\frac{d}{dx}\\sec^{-1}(x) = \\frac{1}{x\\sqrt{x^2-1}}</m>\n                          </p>\n                      </li>\n                  </ol>\n              </list>\n\n              <p>\n                  And now, a list in a paragraph.\n              </p>\n\n              <p>\n                  <ul>\n                      <li>\n                          <p>\n                              A paragraph that begins with text, then some math:\n                              <m>\\sum_{n=1}^\\infty\\frac{1}{n^2}=\\frac{\\pi^2}{6}</m>\n                              And now some more text. The next two list items contain:\n                              <ol>\n                                  <li>\n                                      <p>\n                                          Math only, inline.\n                                      </p>\n                                  </li>\n\n                                  <li>\n                                      <p>\n                                          Math only, with a newline.\n                                      </p>\n                                  </li>\n\n                                  <li>\n                                      <p>\n                                          Math only, but in a paragraph.\n                                          Also the next item on this list has math,\n                                          just to see what happens in a nested list.\n                                      </p>\n                                  </li>\n\n                                  <li><m>\\int_a^x \\frac{d}{dt}f(t)\\,dt = f(x)-f(a)</m></li>\n                              </ol>\n                          </p>\n                      </li>\n\n                      <li><m>\\frac{a}{b}\\div \\frac{c}{d} = \\frac{ad}{bc}</m></li>\n\n                      <li>\n                          <m>\n                              \\tan\\theta = \\frac{\\sin\\theta}{\\cos\\theta}\n                          </m>\n                      </li>\n\n                      <li>\n                          <p>\n                              <m>\\frac{a}{b}\\gt \\sum_{i=3}^{76}\\frac{x^2}{y^2}</m>\n                          </p>\n                      </li>\n                  </ul>\n              </p>\n\n              <p>\n                Inclusion of any text other than math will kill the automatic display style.\n                For example, this would happen if one were to add punctuation after the math.\n              </p>\n\n              <p>\n                <ul>\n                  <li><m>\\int_a^b \\frac{\\sin(x)}{x}\\,dx</m>,</li>\n                  <li><m>\\int_a^b \\frac{\\sin(x)}{x}\\,dx</m></li>\n                </ul>\n              </p>\n\n              <p>List items can have titles.  We try that here, along with testing list items structured with paragraphs.<ul>\n                <li>\n                  <title>With <c>\\displaystyle</c> added automatically</title>\n                  <p><m>\\sum_{n=1}^\\infty ar^n</m></p>\n                </li>\n                <li>\n                  <title>Two paragraphs</title>\n                  <p><m>\\sum_{n=1}^\\infty ar^n</m></p>\n                  <p><m>\\sum_{n=1}^\\infty ar^n</m></p>\n                </li>\n                <li>\n                  <title>One paragraph, extra text</title>\n                  <p>So, <m>\\sum_{n=1}^\\infty ar^n</m></p>\n                </li>\n                <li>\n                  <title>Two elements (only)</title>\n                  <p><latex/><m>\\sum_{n=1}^\\infty ar^n</m></p>\n                </li>\n              </ul></p>\n            </subsection>\n\n            <subsection>\n                <title>Difficult List Items</title>\n\n                <p>In <xref ref=\"test-second\" text=\"type-global\"/> we were careful about lone bits of math inside list items.  The <tag>cd</tag> element is used with indentation, which is likely superfluous inside a list item that is already being indented.  Here we test lone <tag>cd</tag> elements inside of list items in various configurations.</p>\n\n                <p>Unordered list, one-deep.\n                    <ul>\n                        <li>\n                            <cd>\n                                <cline>Foo Bar Foo</cline>\n                                <cline>Bar Foo Bar</cline>\n                            </cd>\n                        </li>\n                        <li>\n                            <p>This list item is a long paragraph with a <tag>cd</tag> in the middle which should be indented some to indicate its participation in the paragraph.\n                            <cd>\n                                <cline>Foo Bar Foo</cline>\n                                <cline>Bar</cline>\n                                <cline>Bar Foo Bar</cline>\n                                <cline>Foo</cline>\n                            </cd>This list item is a long paragraph with a <tag>cd</tag> in the middle which should be indented some to indicate its participation in the paragraph.</p>\n                        </li>\n                        <li>\n                            <cd>\n                                <cline>Foo Bar Foo</cline>\n                                <cline>Bar</cline>\n                                <cline>Bar Foo Bar</cline>\n                                <cline>Foo</cline>\n                            </cd>\n                        </li>\n                    </ul>\n                </p>\n\n                <p>Intervening paragraph, to illuminate spacing at both the top and bottom of a list.  Intervening paragraph, to illuminate spacing at both the top and bottom of a list.  Intervening paragraph, to illuminate spacing at both the top and bottom of a list.  Intervening paragraph, to illuminate spacing at top and bottom of a list.</p>\n\n                <p>Ordered lists, two-deep, mixed.\n                    <ol>\n                        <li>\n                            <p>First item, outer level.<ol>\n                                <li>\n                                    <cd>\n                                        <cline>First inner item, cd only</cline>\n                                        <cline>Foo Bar Foo</cline>\n                                        <cline>Bar</cline>\n                                        <cline>Bar Foo Bar</cline>\n                                        <cline>Foo</cline>\n                                    </cd>\n                                </li>\n                                <li><p>Second inner item, a paragraph in a list item.</p></li>\n                                <li>\n                                    <cd>\n                                        <cline>Third inner item, cd only</cline>\n                                        <cline>Foo Bar Foo</cline>\n                                        <cline>Foo Bar Foo</cline>\n                                        <cline>Bar Foo Bar</cline>\n                                    </cd>\n                                </li>\n                            </ol></p>\n                        </li>\n                        <li>\n                            <cd>\n                                <cline>cd inside second item, outer level</cline>\n                                <cline>Bar</cline>\n                                <cline>Bar Foo Bar</cline>\n                                <cline>Foo</cline>\n                            </cd>\n                        </li>\n                    </ol>\n                </p>\n            </subsection>\n\n            <subsection>\n                <title>Description Lists</title>\n\n                <p>Use <c>dl</c> to make a description list<idx><h>description list</h></idx><idx><h>list</h><h>description</h></idx>. Inside of those tags, use <c>li</c> for each entry. Then, use <c>title</c> to specify the term being described and <c>p</c> to specify the description.</p>\n                <p>A <q>description</q> list\n                <idx><h>description list</h></idx><idx><h>list</h><h>description</h></idx>\n                has a short term or phrase that is prominent, followed by a short description.  It is modeled on the lists of similar structure in both <latex/> and HTML.  It makes for a nice medium-weight way to define terms, somewhere in-between the <c>term</c> tag which just makes a term prominent in a sentence, and a <c>definition</c>, which is set off, has a heading, a number, and a title.  Do not try to manage the separation between the title and the description by employing punctuation (but you can include a question-mark or exclamation-point if necessary).  For example, do not include a colon to the end of the title.  This example is from Bob Plantz.\n                <dl>\n                    <li xml:id=\"cpu-definition\">\n                        <title>Central Processing Unit (CPU)</title>\n                        <p>Controls most of the activities of the computer, performs the arithmetic and logical operations, and contains a small amount of very fast memory.</p>\n                        <p>This is a second paragraph that should appear indented in PDF output.</p>\n                    </li>\n\n                    <li>\n                        <title>Memory</title>\n                        <p>Provides storage for the instructions for the CPU and the data they manipulate.</p>\n                    </li>\n\n                    <li>\n                        <title>Input/Output (I/O)</title>\n                        <p>Communicates with the outside world and with mass storage devices (<eg/>, disks).</p>\n                    </li>\n\n                    <li xml:id=\"bus-definition\">\n                        <title>Bus!</title>\n                        <p>A communication pathway with a protocol specifying exactly how the pathway is used. (The punctuation is just for testing.)</p>\n                    </li>\n\n                    <li>\n                        <title><m>\\displaystyle \\sum_{n=0}^\\infty x^n = \\frac{1}{1-x}</m></title>\n                        <p>A geometric series.  The formula is valid if <m>|x| &lt; 1</m>.</p>\n                    </li>\n                </dl></p>\n\n                <p>Some presentations can be assisted by a hint from the author about the lengths of the titles.  You can choose to provide a <c>width</c> attribute on a <c>dl</c> element with possible values <c>narrow</c>, <c>medium</c>, and <c>wide</c>. The value refers (somewhat confusingly) to the distance between the left margin and the description.  The default is <c>medium</c>, which is illustrated above.  An example with <c>narrow</c>:\n                <dl width=\"narrow\">\n                    <li>\n                        <title>Red</title>\n                        <p>The color of the sun at sunset.</p>\n                    </li>\n                    <li>\n                        <title>Blue</title>\n                        <p>The color of a clear sky. Also a synonym for <q>depressed or sad</q>, the title of a 1971 Joni Mitchell album (and more than a dozen other musical albums), the period of Picasso's work between 1901 and 1904, and much more!</p>\n                    </li>\n                    <li>\n                        <title>Aqua</title>\n                        <p>The color of shallow tropical waters.<fn>On a sunny day! (Testing footnotes in description lists for <latex/> output.)</fn></p>\n                    </li>\n                    <li xml:id=\"description-list-math-title\">\n                        <title>Math <m>x^2</m></title>\n                        <!-- this is a candidate for a \"plaintitle\" but the schema limits -->\n                        <!-- the element to divisions, figures and named lists            -->\n                        <p>Sorry, not a color but testing titles with math in them.</p>\n                    </li>\n                    <li>\n                       <title><q>i</q> before <q>e</q> except after <q>c,</q> unless it sounds like <q>a</q> as in <q>neighbor</q> and <q>weigh</q></title>\n                        <p>Get feisty about that weird counterfeit rule: seize the day and don't have a heifer, man.</p>\n                       </li>\n                    <li>\n                        <title>Avocado</title>\n                        <p>Avocado is the the color with hex code <c>#568203</c>, and also the main ingredient in guacamole.</p>\n                     </li>\n                    <li>\n                        <title>Magenta</title>\n                        <p>Magenta is a color, and a character in Rocky Horror.</p>\n                     </li>\n                    <li>\n                        <title>Zymurgist</title>\n                        <p>A scientist who studies the chemical process of fermentation in brewing and distilling.  Also the alphabetically last 9-letter word in the English language.</p>\n                     </li>\n                    <li>\n                        <title>Byzantium</title>\n                        <p>Byzantium is the the color with hex code <c>#702963</c>, and also an ancient Greek city which later became known as Constantinople, and today is called Istanbul.</p>\n                     </li>\n                    <li>\n                        <title>Convection</title>\n                        <p>Circulating motion in a fluid.</p>\n                     </li>\n                    <li>\n                        <title>Elementary</title>\n                        <p>No literary detective ever said <q>Elementary my dear Watson.</q>  In particular, Sherlock Holmes never said that.</p>\n                     </li>\n                    <li>\n                        <title>Understand</title>\n                        <p>Perceive the intended meaning of.</p>\n                     </li>\n                    <li>\n                        <title>Washington</title>\n                        <p>A state, a district, the man on the US $1 bill and on the US quarter. Did you ever notice that on the US dime, the value is stated as <q>one dime</q>? But how is one to know that a dime is worth 10 cents?</p>\n                     </li>\n                    <li>\n                        <title>Aquamarine</title>\n                        <p>Aquamarine is a color, and a mineral.</p>\n                    </li>\n                    <li>\n                        <title>Those who cannot remember the past are condemned to repeat it.</title>\n                        <p>George Santayana wrote those words in 1905.  A similar aphorism is misattributed to Winston Churchill.  The idea is embodied in the 4th principle: <pretext/> respects the good design practices which have been developed over the past centuries.</p>\n                    </li>\n                    <li>\n                        <title><m>\\displaystyle \\zeta(s) = \\sum_{n=1}^\\infty n^{-s} </m></title>\n                        <p>The Riemann <m>\\zeta</m>-function is defined by a Dirichlet series, valid for <m> \\Re(s) > 1</m>.</p>\n                     </li>\n                    <li>\n                        <title><c>main()</c> is a void function</title>\n                        <p>A <c>dl</c> with <c>width=\"narrow\"</c> might be a useful way to give commentary on a program listing.</p>\n                    </li>\n                </dl>\n                And the same example with <c>wide</c>:\n                <dl width=\"wide\">\n                    <li>\n                        <title>Red</title>\n                        <p>The color of the sun at sunset.</p>\n                    </li>\n                    <li>\n                        <title>Blue</title>\n                        <p>The color of a clear sky. Also a synonym for <q>depressed or sad</q>, the title of a 1971 Joni Mitchell album (and more than a dozen other musical albums), the period of Picasso's work between 1901 and 1904, and much more!</p>\n                    </li>\n                    <li>\n                        <title>Aqua</title>\n                        <p>The color of shallow tropical waters.<fn>On a sunny day! (Testing footnotes in description lists for <latex/> output.)</fn></p>\n                    </li>\n                    <li xml:id=\"description-list-math-title-wide\">\n                        <title>Math <m>x^2</m></title>\n                        <!-- this is a candidate for a \"plaintitle\" but the schema limits -->\n                        <!-- the element to divisions, figures and named lists            -->\n                        <p>Sorry, not a color but testing titles with math in them.</p>\n                    </li>\n                    <li>\n                       <title><q>i</q> before <q>e</q> except after <q>c,</q> unless it sounds like <q>a</q> as in <q>neighbor</q> and <q>weigh</q></title>\n                        <p>Get feisty about that weird counterfeit rule: seize the day and don't have a heifer, man.</p>\n                       </li>\n                    <li>\n                        <title>Avocado</title>\n                        <p>Avocado is the the color with hex code <c>#568203</c>, and also the main ingredient in guacamole.</p>\n                     </li>\n                    <li>\n                        <title>Magenta</title>\n                        <p>Magenta is a color, and a character in Rocky Horror.</p>\n                     </li>\n                    <li>\n                        <title>Zymurgist</title>\n                        <p>A scientist who studies the chemical process of fermentation in brewing and distilling.  Also the alphabetically last 9-letter word in the English language.</p>\n                     </li>\n                    <li>\n                        <title>Byzantium</title>\n                        <p>Byzantium is the the color with hex code <c>#702963</c>, and also an ancient Greek city which later became known as Constantinople, and today is called Istanbul.</p>\n                     </li>\n                    <li>\n                        <title>Convection</title>\n                        <p>Circulating motion in a fluid.</p>\n                     </li>\n                    <li>\n                        <title>Elementary</title>\n                        <p>No literary detective ever said <q>Elementary my dear Watson.</q>  In particular, Sherlock Holmes never said that.</p>\n                     </li>\n                    <li>\n                        <title>Understand</title>\n                        <p>Perceive the intended meaning of.</p>\n                     </li>\n                    <li>\n                        <title>Washington</title>\n                        <p>A state, a district, the man on the US $1 bill and on the US quarter. Did you ever notice that on the US dime, the value is stated as <q>one dime</q>? But how is one to know that a dime is worth 10 cents?</p>\n                     </li>\n                    <li>\n                        <title>Aquamarine</title>\n                        <p>Aquamarine is a color, and a mineral.</p>\n                    </li>\n                    <li>\n                        <title>Those who cannot remember the past are condemned to repeat it.</title>\n                        <p>George Santayana wrote those words in 1905.  A similar aphorism is misattributed to Winston Churchill.  The idea is embodied in the 4th principle: <pretext/> respects the good design practices which have been developed over the past centuries.</p>\n                    </li>\n                    <li>\n                        <title><m>\\displaystyle \\zeta(s) = \\sum_{n=1}^\\infty n^{-s} </m></title>\n                        <p>The Riemann <m>\\zeta</m>-function is defined by a Dirichlet series, valid for <m> \\Re(s) > 1</m>.</p>\n                     </li>\n                    <li>\n                        <title><c>main()</c> is a void function</title>\n                        <p>A <c>dl</c> with <c>width=\"narrow\"</c> might be a useful way to give commentary on a program listing.</p>\n                    </li>\n                </dl>\n                </p>\n\n                <p>You can nest description lists, though items might get crowded horizontally.  We expand our computer list a bit.\n                <dl>\n                    <li xml:id=\"cpu-definition-expanded\">\n                        <title>Expanded CPU</title>\n                        <p>Controls most of the activities of the computer, performs the arithmetic and logical operations, and contains a small amount of very fast memory.<dl>\n                            <li>\n                                <title>Arithmetic</title>\n                                <p>The kind of computations that give a computer the name <q>computer.</q></p>\n                            </li>\n                            <li>\n                                <title>Logic</title>\n                                <p>Operations that make decisions, <q>if this, then that</q>, plus: and, or, and not.</p>\n                            </li>\n                            <li>\n                                <title>Memory</title>\n                                <p>Space to store information and results, permanently or temporarily.</p>\n                            </li>\n                        </dl></p>\n                        <p>This is a second paragraph that should appear indented in PDF output.</p>\n                    </li>\n\n                    <li>\n                        <title>Memory</title>\n                        <p>Provides storage for the instructions for the CPU and the data they manipulate.</p>\n                    </li>\n\n                    <li>\n                        <title>Input/Output (I/O)</title>\n                        <p>Communicates with the outside world and with mass storage devices (<eg/>, disks).</p>\n                    </li>\n\n                    <li>\n                        <title>Bus!</title>\n                        <p>A communication pathway with a protocol specifying exactly how the pathway is used. (The punctuation is just for testing.)</p>\n                    </li>\n\n                    <li>\n                        <title><m>\\displaystyle \\sum_{n=0}^\\infty x^n = \\frac{1}{1-x}</m></title>\n                        <p>A geometric series.  The formula is valid if <m>|x| &lt; 1</m>.</p>\n                    </li>\n                </dl></p>\n            </subsection>\n\n            <subsection>\n                <title>Named Lists</title>\n                <idx>named list</idx><idx><h>list</h><h>named</h></idx>\n\n                <p>A list can be wrapped with a <tag>list</tag> element, so that it earns a number, can be given a title and have an introduction and conclusion.  Cross-references to individual list items get a bit involved as they are prefixed with the number of the list and then the number of the item, so conceivably you could get a number like <c>4.5.3:2.a.ii</c>.  The colon is used to indicate the transition from the number of the list within divisions and the numbers coming from the list hierarchy, since it has two small dots.</p>\n\n                <list xml:id=\"list-colors-rainbow\">\n                    <title>Colors of the Rainbow</title>\n\n                    <introduction>\n                        <p>Because the colors are always in the same order, an ordered list is natural here.  The colors change continuously, but are often divided up into large ranges that human perception can easily distinguish.</p>\n                    </introduction>\n\n                    <ol>\n                        <li><p>Red</p></li>\n                        <li xml:id=\"rainbow-orange\"><p>Orange</p></li>\n                        <li><p>Yellow</p></li>\n                        <li><p>Green</p></li>\n                        <li><p>Blue</p></li>\n                        <li><p>Indigo</p></li>\n                        <li><p>Violet</p></li>\n                    </ol>\n\n                    <conclusion>\n                        <p>So some people use the acronym <acro>ROY-G-BIV</acro> to remember this sequence.</p>\n                    </conclusion>\n                </list>\n\n\n                 <p>This next list is used for testing cross-references to it.  See <xref ref=\"section-cross-referencing\" text=\"type-global\"/>.</p>\n\n                <list xml:id=\"list-to-reference\">\n                    <title>A named list of targets</title>\n                    <introduction>\n                        <p>This is the introduction to this named list, which references an item within, via the hybrid <attr>text</attr> attribute:  <xref ref=\"target-item\" text=\"type-hybrid\"/>.  At one time this paragraph was inadvertently centered<mdash/>that bug has been fixed.</p>\n                    </introduction>\n                    <ol marker=\"A\">\n                        <li>\n                            <p>\n                                <ol marker=\"i\">\n                                    <li>A and i</li>\n                                    <li>A and ii</li>\n                                    <li>A and iii</li>\n                                </ol>\n                            </p>\n                        </li>\n                        <li>\n                            <p>\n                                <ol marker=\"a\">\n                                    <li>B and a</li>\n                                    <li>B and b</li>\n                                    <li xml:id=\"target-item\">B and c (target of some cross-references)</li>\n                                </ol>\n                            </p>\n                        </li>\n                        <li>\n                            <p>\n                                <ul marker=\"disc\">\n                                    <li>The next three cross-references point to a list item, just above.  It is interesting because the list is named, hence numbered.  The global reference uses the full number, while the local reference uses the number from within the list.  The hybrid reference recognizes that the target is within the same named list, so the number can be shorter.  An identical hybrid cross-reference appears within the <tag>introduction</tag> to this list, an immediately following, but outside the <tag>list</tag>.</li>\n                                    <li>Cross-reference within named list (<c>global</c>): <xref ref=\"target-item\" text=\"type-global\"/></li>\n                                    <li>Cross-reference within named list (<c>hybrid</c>): <xref ref=\"target-item\" text=\"type-hybrid\"/></li>\n                                    <li>Cross-reference within named list (<c>local</c>): <xref ref=\"target-item\" text=\"type-local\"/></li>\n                                    <li>\n                                        <p>\n                                            <ol marker=\"1\">\n                                                <li>C and bullet and 1</li>\n                                                <li xml:id=\"target-no-number\">C and bullet and 2</li>\n                                                <li>C and bullet and 3</li>\n                                            </ol>\n                                    </p>\n                                    </li>\n                                    <li>C and bullet</li>\n                                    <li>C and bullet</li>\n                                </ul>\n                            </p>\n                        </li>\n                    </ol>\n                </list>\n\n                <p>This is a paragraph just outside the preceding named list, which references an item within, via the hybrid <attr>text</attr> attribute:  <xref ref=\"target-item\" text=\"type-hybrid\"/>.</p>\n\n                <p><idx><h>list</h></idx>This is a paragraph with three lists contained within it.  For HTML output we have to <q>inside-out</q> the lists.<ol>\n                    <li>A one item ordered list.</li>\n                </ol>In other words, the text before, after, and between, needs to each be encapsulated as an HTML <c>p</c> element of its own.<ul>\n                    <li>A one item unordered list.</li>\n                </ul>Including definition lists.<dl>\n                    <li>\n                        <title>Define Me</title>\n                        <p>A one item definition list.</p>\n                    </li>\n                </dl>That's all!</p>\n\n                <p>A one item list, whose item is a paragraph with two contained ordered lists, separated by text.<ul marker=\"square\">\n                    <li><p>Introductory text.<ol marker=\"A\">\n                        <li>First item, first list.</li>\n                    </ol>Intermediate text.<ol marker=\"a\">\n                        <li>First item, second list.</li>\n                    </ol>Concluding text.</p></li>\n                </ul></p>\n\n            </subsection>\n\n            <subsection>\n                <title>Testing List Decompositions</title>\n\n                <p>A list in a paragraph is a construction in HTML that browsers try to correct, which leads to unpredictable results, so we have to decompose an author's paragraph with lists into a sequence of HTML paragraphs, interrupted by lists.  This subsection is only relevant to HTML output, and only for testing.<idx><h>paragraph</h><h>normal</h></idx></p>\n\n                <p><ol>\n                    <li>This paragraph opens with an ordered list.</li>\n                    <li>Testing the id, and other info that should be at the top of the paragraph.</li>\n                </ol>Now the paragraph continues, and we have an index item here, so we can test cross-references back here.<idx><h>paragraph</h><h>opens with list</h></idx></p>\n\n            </subsection>\n\n            <subsection>\n                <title>List Column Testing</title>\n\n                <p>This is a list arranged into two columns with some intentional layout challenges. The math is too long to fit in one column and can't be wrapped - it reduces the number of columns in its row. The long text items can be wrapped and stay within their column.\n                    <ol cols=\"2\" marker=\"(a)\">\n                    <li>One item.</li>\n                    <li><em>Two</em> <alert>ducks</alert>.</li>\n                    <li>\n                        <md alignment=\"alignat\">\n                            <mrow>3u \\amp {}+{} 1v \\amp {}+{} 3w \\amp {}+{} 2x \\amp {}+{} \\amp  y \\amp {}+{} \\amp 3z \\amp {}={} \\amp 10</mrow>\n                            <mrow>2u \\amp {}+{} 2v \\amp {}-{} 2w \\amp {}+{} x  \\amp       \\amp    \\amp {}+{} \\amp  z \\amp {}={} \\amp 6</mrow>\n                            <mrow>1u \\amp {}-{} 3v \\amp {}+{} 1w \\amp {}+{} x  \\amp {}+{} \\amp 3y \\amp {}+{} \\amp 2z \\amp {}={} \\amp 13</mrow>\n                        </md>\n                    </li>\n                    <li>Short item.</li>\n                    <li>A long item that can be wrapped over multiple lines.</li>\n                    <li>Four items.</li>\n                    <li><!-- empty --></li>\n                    <li>Another long entry that simultaneously tests that long entries look good in a list,\n                        and also tests an odd number of entries in a two column list.</li>\n                </ol></p>\n            </subsection>\n\n\n            <exercises>\n                <title>Exercises (with lists)</title>\n\n                <exercise>\n                    <statement>\n                        <p>This exercise should have several parts, and labels should follow the defaults for second-level lists (since the exercise is numbered according to the top-level default).<ol>\n                            <li><p>Exercise 1, first part.</p></li>\n                            <li><p>Exercise 1, second part.<ol>\n                                    <li xml:id=\"exercise-one-two-one\"><p>Exercise 1, second part, first refinement.</p></li>\n                                </ol></p>\n                            </li>\n                            <li xml:id=\"exercise-one-three\"><p>Exercise 1, third part.</p></li>\n                        </ol></p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <statement>\n                        <table>\n                            <title>Table Alignment Example</title>\n                            <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                                <col right=\"medium\"/>\n                                <col right=\"major\"/>\n                                <col/>\n                                <!--  -->\n                                <row bottom=\"medium\">\n                                    <cell colspan=\"2\">1111, 2222</cell>\n                                    <cell right=\"minor\">3333</cell>\n                                </row>\n                                <row bottom=\"major\">\n                                    <cell>aaaa</cell>\n                                    <cell colspan=\"2\" right=\"medium\">bbbb,cccc</cell>\n                                </row>\n                                <row>\n                                    <cell bottom=\"minor\">AAAA</cell>\n                                    <cell bottom=\"medium\">BBBB</cell>\n                                    <cell bottom=\"major\" right=\"major\">CCCC</cell>\n                                </row>\n                            </tabular>\n                        </table>\n\n                        <p>This exercise (a list item really) has a <c>table</c> first.  Default <latex/> aligns it vertically above the exercise number.  Placement here tests correcting that alignment.</p>\n                    </statement>\n                </exercise>\n\n\n                <conclusion>\n                    <p>A small test of cross-references to subsidiary parts of exercises.  Exercise 1, third part: <xref ref=\"exercise-one-three\"/>.  Exercise 1, second part, first refinement: <xref ref=\"exercise-one-two-one\"/>.</p>\n                </conclusion>\n\n            </exercises>\n\n            <references>\n                <title>References (with lists in Annotations)</title>\n\n                <biblio type=\"raw\" xml:id=\"biblio-undetermined\">\n                    Some book would be listed here.\n                    <note>\n                        <p>Here is the annotation and an ordered list as part of that annotation.<ol>\n                            <li>Book 1, first part.</li>\n                            <li>Book 1, second part.</li>\n                            <li>Book 1, third part.</li>\n                        </ol></p>\n                    </note>\n                </biblio>\n            </references>\n        </section>\n\n        <section xml:id=\"table-calisthenics\" label=\"section-table-calisthenics\">\n            <title>Table Calisthenics</title>\n\n            <sage>\n                <input>\n                c = 832\n                c\n                </input>\n            </sage>\n\n            <p>That was a Sage cell just now, which has nothing to do with tables.  But we needed someplace to test placement right after a division heading.  Carry on.</p>\n\n            <p>A very minimal table, hence with left-justified cells, no borders.  We do wrap the tabular element in a table element to get centering, numbering and a caption.  Footnotes inside cells are tested here.</p>\n\n            <table>\n                <title>Some Colors</title>\n                <tabular>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green<fn>Green can be a very sick looking color.</fn></cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Note that tables may be constructed using the <url href=\"http://www.latex-tables.com/\" visual=\"www.latex-tables.com\"><latex/> Complex Table Editor</url> tool online at <c>latex-tables.com</c>and then exported in <pretext/> syntax.</p>\n\n            <p>Tables can be used and abused many ways.  We describe long division of polynomials by using vertical and horizontal borders on individual entries of a <tag>tabular</tag>.  The division lines are slightly thicker than the subtraction lines.  This is a good example of the typical abuse of tables for horizontal and vertical layout.  At least we have called it a <q>Figure,</q> not a <q>Table</q>.</p>\n\n            <figure>\n                <caption>Polynomial Long Division</caption>\n                <tabular halign=\"right\">\n                    <row>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell bottom=\"medium\"></cell>\n                        <cell bottom=\"medium\"></cell>\n                        <cell bottom=\"medium\"><m>x</m></cell>\n                        <cell bottom=\"medium\"><m>-</m></cell>\n                        <cell bottom=\"medium\"><m>5</m></cell>\n                    </row>\n                    <row>\n                        <cell><m>x</m></cell>\n                        <cell><m>+</m></cell>\n                        <cell right=\"medium\"><m>2</m></cell>\n                        <cell><m>x^2</m></cell>\n                        <cell><m>-</m></cell>\n                        <cell><m>3x</m></cell>\n                        <cell><m>-</m></cell>\n                        <cell><m>8</m></cell>\n                    </row>\n                    <row>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell bottom=\"minor\"><m>x^2</m></cell>\n                        <cell bottom=\"minor\"><m>+</m></cell>\n                        <cell bottom=\"minor\"><m>2x</m></cell>\n                        <cell bottom=\"minor\"></cell>\n                        <cell bottom=\"minor\"></cell>\n                    </row>\n                    <row>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell><m>-5x</m></cell>\n                        <cell><m>-</m></cell>\n                        <cell><m>8</m></cell>\n                    </row>\n                    <row>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell bottom=\"minor\"><m>-5x</m></cell>\n                        <cell bottom=\"minor\"><m>-</m></cell>\n                        <cell bottom=\"minor\"><m>10</m></cell>\n                   </row>\n                    <row>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell></cell>\n                        <cell><m>2</m></cell>\n                    </row>\n                </tabular>\n            </figure>\n\n            <p>An example of aligning table cells' contents horizontally. See the source for comments.</p>\n\n\n            <!-- Default matches HTML and LaTEX, left. -->\n            <!-- We set this table's default to right. -->\n            <table>\n                <title>Horizontal Alignment Example</title>\n                <tabular halign=\"right\">\n                    <col/>\n                    <col/>\n                    <col halign=\"center\"/>\n                    <col/>\n                    <!--  -->\n                    <!-- A uniform row to judge effects by, each centered -->\n                    <row halign=\"center\">\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                    </row>\n                    <!-- The bracket caused a bug with LaTeX code, DO NOT remove -->\n                    <!-- See https://github.com/rbeezer/mathbook/issues/300      -->\n                    <!-- Totally generic, so by columns, all to right            -->\n                    <row>\n                        <cell>[First</cell>\n                        <cell>Second</cell>\n                        <cell>Third</cell>\n                        <cell>Fourth</cell>\n                    </row>\n                    <!-- cell-by-cell, with one taking global default -->\n                    <row>\n                        <cell halign=\"center\">A</cell>\n                        <cell halign=\"right\">B</cell>\n                        <cell>C</cell>\n                        <cell halign=\"left\">D</cell>\n                    </row>\n                    <!-- whole row is left, but one is centered -->\n                    <row halign=\"left\">\n                        <cell>1</cell>\n                        <cell halign=\"center\">2</cell>\n                        <cell>3</cell>\n                        <cell>4</cell>\n                    </row>\n                    <!-- A comment -->\n                </tabular>\n            </table>\n\n            <p>Example from above, but now with horizontal rules, plus an extra row to test the bottom border.  See the source for comments.</p>\n\n            <!-- Keep this in sync with breakable version, xml:id of horizontal-rules-breakable-table -->\n            <table xml:id=\"horizontal-rules-table\">\n                <title>Horizontal Rules Example</title>\n                <tabular bottom=\"minor\" top=\"major\" halign=\"right\">\n                    <col top=\"minor\"/>\n                    <col/>\n                    <col top=\"none\" halign=\"center\"/>\n                    <col top=\"major\"/>\n                    <!--  -->\n                    <!-- A uniform row to judge effects by, each centered -->\n                    <row halign=\"center\">\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                    </row>\n                    <!-- Totally generic, so by columns, all to right -->\n                    <row bottom=\"none\">\n                        <cell>First</cell>\n                        <cell bottom=\"major\">Second</cell>\n                        <cell bottom=\"major\">Third</cell>\n                        <cell>Fourth</cell>\n                    </row>\n                    <!-- cell-by-cell, with one taking global default -->\n                    <row bottom=\"medium\">\n                        <cell halign=\"center\">A</cell>\n                        <cell halign=\"right\">B</cell>\n                        <cell>C</cell>\n                        <cell halign=\"left\">D</cell>\n                    </row>\n                    <!-- whole row is left, but one is centered -->\n                    <row halign=\"left\">\n                        <cell bottom=\"none\">1</cell>\n                        <cell halign=\"center\" bottom=\"minor\">2</cell>\n                        <cell bottom=\"none\">3</cell>\n                        <cell>4</cell>\n                    </row>\n                    <!-- proper bottom, otherwise defaults -->\n                    <row bottom=\"medium\">\n                        <cell>1</cell>\n                        <cell>2</cell>\n                        <cell>3</cell>\n                        <cell>4</cell>\n                    </row>\n                    <!-- A comment -->\n                </tabular>\n            </table>\n\n\n            <p>For a table without a caption, create a <tag>tabular</tag> and place it directly within the current division.  This will allow control over the horizontal placment, but without a caption, there is no number, and the tabular cannot be cross-referenced.</p>\n\n            <tabular top=\"medium\"><row bottom=\"medium\" left=\"minor\"><cell right=\"minor\">One</cell></row></tabular>\n\n            <p>Same example as before, but now with vertical rules.  See the source for comments.</p>\n\n            <table>\n                <title>Vertical Rules Example</title>\n                <tabular bottom=\"minor\" top=\"major\" left=\"major\" right=\"medium\"  halign=\"right\">\n                    <col top=\"minor\"/>\n                    <col/>\n                    <col top=\"none\" halign=\"center\"  right=\"none\"/>\n                    <col top=\"major\"/>\n                    <!--  -->\n                    <!-- A uniform row to judge effects by, each centered -->\n                    <row halign=\"center\">\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell right=\"minor\">1234567890</cell>\n                        <cell>1234567890</cell>\n                    </row>\n                    <!-- Totally generic, so by columns, all to right -->\n                    <row bottom=\"none\">\n                        <cell>First</cell>\n                        <cell bottom=\"major\">Second</cell>\n                        <cell bottom=\"major\" right=\"medium\">Third</cell>\n                        <cell>Fourth</cell>\n                    </row>\n                    <!-- cell-by-cell, with one taking global default -->\n                    <row bottom=\"medium\">\n                        <cell halign=\"center\">A</cell>\n                        <cell halign=\"right\">B</cell>\n                        <cell>C</cell>\n                        <cell halign=\"left\">D</cell>\n                    </row>\n                    <!-- whole row is left, but one is centered -->\n                    <row left=\"none\" halign=\"left\">\n                        <cell bottom=\"none\">1</cell>\n                        <cell halign=\"center\" bottom=\"minor\">2</cell>\n                        <cell bottom=\"none\">3</cell>\n                        <cell right=\"major\">4</cell>\n                    </row>\n                    <!-- proper bottom, otherwise defaults -->\n                    <row bottom=\"medium\">\n                        <cell right=\"none\">1</cell>\n                        <cell>2</cell>\n                        <cell>3</cell>\n                        <cell>4</cell>\n                    </row>\n                    <!-- A comment -->\n                </tabular>\n            </table>\n\n            <table>\n                <title>Progressively Thicker Rules Example</title>\n                <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                    <col right=\"medium\"/>\n                    <col right=\"major\"/>\n                    <col/>\n                    <!--  -->\n                    <row bottom=\"medium\">\n                        <cell>1111</cell>\n                        <cell>2222</cell>\n                        <cell right=\"minor\">3333</cell>\n                    </row>\n                    <row bottom=\"major\">\n                        <cell>aaaa</cell>\n                        <cell>bbbb</cell>\n                        <cell right=\"medium\">cccc</cell>\n                    </row>\n                    <row>\n                        <cell bottom=\"minor\">AAAA</cell>\n                        <cell bottom=\"medium\">BBBB</cell>\n                        <cell bottom=\"major\" right=\"major\">CCCC</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>Column Span Example</title>\n                <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                    <col right=\"medium\"/>\n                    <col right=\"major\"/>\n                    <col/>\n                    <!--  -->\n                    <row bottom=\"medium\">\n                        <cell colspan=\"2\">1111, 2222</cell>\n                        <cell right=\"minor\">3333</cell>\n                    </row>\n                    <row bottom=\"major\">\n                        <cell>aaaa</cell>\n                        <cell colspan=\"2\" right=\"medium\">bbbb,cccc</cell>\n                    </row>\n                    <row>\n                        <cell bottom=\"minor\">AAAA</cell>\n                        <cell bottom=\"medium\">BBBB</cell>\n                        <cell bottom=\"major\" right=\"major\">CCCC</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>A list whose first item is a table.  In <latex/> output a <c>\\leavevmode</c> is necessary to keep this organized (item number, <em>then</em> table as content).</p>\n\n            <p><ol><li>\n                <table>\n                    <title>Table Alignment Example</title>\n                    <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                        <col right=\"medium\"/>\n                        <col right=\"major\"/>\n                        <col/>\n                        <!--  -->\n                        <row bottom=\"medium\">\n                            <cell colspan=\"2\">1111, 2222</cell>\n                            <cell right=\"minor\">3333</cell>\n                        </row>\n                        <row bottom=\"major\">\n                            <cell>aaaa</cell>\n                            <cell colspan=\"2\" right=\"medium\">bbbb,cccc</cell>\n                        </row>\n                        <row>\n                            <cell bottom=\"minor\">AAAA</cell>\n                            <cell bottom=\"medium\">BBBB</cell>\n                            <cell bottom=\"major\" right=\"major\">CCCC</cell>\n                        </row>\n                    </tabular>\n                </table>\n            </li></ol></p>\n\n            <example>\n                <title>Example Environment with Leading Table</title>\n\n                <!-- Requires many right=\"minor\" since no col attributes are used -->\n                <table>\n                    <title>Column Spans, No <c>col</c> Elements, Nine Columns</title>\n                    <tabular >\n                        <!--  -->\n                        <row left=\"minor\">\n                            <cell right=\"minor\">1</cell>\n                            <cell colspan=\"2\" right=\"minor\">2+3</cell>\n                            <cell right=\"minor\">4</cell>\n                            <cell colspan=\"3\" right=\"medium\">5+6+7</cell>\n                            <cell colspan=\"2\" right=\"major\">8+9</cell>\n                        </row>\n                        <row left=\"minor\">\n                            <cell right=\"minor\">1</cell>\n                            <cell right=\"minor\">2</cell>\n                            <cell right=\"minor\">3</cell>\n                            <cell right=\"minor\">4</cell>\n                            <cell right=\"minor\">5</cell>\n                            <cell right=\"minor\">6</cell>\n                            <cell colspan=\"2\" right=\"minor\">7+8</cell>\n                            <cell right=\"minor\">9</cell>\n                        </row>\n                        <row left=\"minor\">\n                            <cell right=\"minor\">1</cell>\n                            <cell right=\"minor\">2</cell>\n                            <cell right=\"minor\">3</cell>\n                            <cell right=\"minor\">4</cell>\n                            <cell right=\"minor\">5</cell>\n                            <cell right=\"minor\">6</cell>\n                            <cell right=\"minor\">7</cell>\n                            <cell right=\"minor\">8</cell>\n                            <cell right=\"minor\">9</cell>\n                       </row>\n                   </tabular>\n               </table>\n\n               <p>This example tests several things.  In <latex/> output, figures, tables, listings and side-by-sides are <q>floats</q> whose placement can migrate, but we have tries to supress this behavior.  However, a float that is the first item of an <q>environment</q> (like a theorem or an example) can still float to a position <em>before</em> its title.  If that does not happen here, then our additional defenses are working.</p>\n\n               <p>This example also checks that the total number of columns is correctly computed from the first row, which features several <c>colspan</c> attributes.</p>\n           </example>\n\n            <p>A bare minimum table (one row with one cell) to test edge cases:</p>\n\n            <table xml:id=\"table-minimal\">\n                <title>One entry table</title>\n                <tabular top=\"medium\">\n                    <row bottom=\"medium\" left=\"minor\">\n                        <cell right=\"minor\">One</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Table cells with a fixed width where text wraps are known as <q>paragraph cells</q>. A cell will be created as a paragraph cell if and only if it has <tag>p</tag> children. And such cells should <em>only</em> have <tag>p</tag> children. The width of a paragraph cell is determined by a <c>width</c> attribute on the corresponding <tag>col</tag> (as a percentage). If the column has a non-paragraph cell with contents that are wider than the paragraph cells, results will be undesirable. There is presently no implementation for a paragraph cell that has a <c>colspan</c> greater than <m>1</m>, although cells with <c>colspan</c> greater than <m>1</m> that are above or below a paragraph cell will behave. Setting <c>width</c> on a <tag>col</tag> that has no paragraph cells may produce unexpected results. A <c>valign</c> for the parent <tag>row</tag> (or the ambient <tag>tabular</tag>) can control vertical alignment (top, middle, or bottom). A paragraph cell's <c>halign</c> attribute (left, center, right, or justify) controls how the text is justfied. Cells inherit <c>halign</c> from <tag>row</tag>, <tag>col</tag>, and <tag>tabular</tag> in that order of preference. In a non-paragraph cell where <c>halign='justify'</c>, the horizontal alignment will match the behavior of <c>halign='left'</c>.</p>\n\n            <table xml:id=\"table-time-units\">\n                <title>Time Units</title>\n                <tabular top=\"major\">\n                    <col/>\n                    <col/>\n                    <col width=\"40%\"/>\n                    <col width=\"25%\"/>\n                    <row valign=\"top\" bottom=\"medium\">\n                        <cell>Unit</cell>\n                        <cell>Stands For</cell>\n                        <cell>Definition</cell>\n                        <cell>Roughly</cell>\n                    </row>\n                    <row valign=\"top\" bottom=\"minor\">\n                        <cell><quantity><unit base=\"second\"/></quantity></cell>\n                        <cell>second</cell>\n                        <cell><p>the duration of <quantity><mag>9192631770</mag></quantity> periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the cesium-133 atom</p>\n                            <p>an extraneous paragraph just to demonstrate the inter-paragraph formatting.</p></cell>\n                        <cell><p>the time it takes you to say the phrase <q>differential calculus</q></p></cell>\n                    </row>\n                    <row valign=\"top\" bottom=\"minor\">\n                        <cell><quantity><unit base=\"minute\"/></quantity></cell>\n                        <cell>minute</cell>\n                        <cell><p>exactly <m>60</m> seconds</p></cell>\n                        <cell><p>how long it takes to microwave a full dinner plate from the refrigerator</p></cell>\n                    </row>\n                    <row valign=\"top\" bottom=\"major\">\n                        <cell><quantity><unit base=\"hour\"/></quantity></cell>\n                        <cell>hour</cell>\n                        <cell><p>exactly <m>3600</m> seconds; exaclty <m>60</m> minutes</p></cell>\n                        <cell><p>the length of one episode of a premium cable television show</p></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Table cells can have multiline content using <tag>line</tag> elements. This is not the same thing as a paragraph cell<mdash/>line breaking will happen precisely where the author tells it to. A <tag>line</tag> will not break, even on a narrow screen. If a cell uses a <tag>line</tag>, it must only use a sequence of <tag>line</tag>s and no other content. As with paragraph cells, you can use a <c>valign</c> attribute for the row.</p>\n\n            <table xml:id=\"table-multiline-cells\">\n                <title><abbr>Dr.</abbr> Seuss lines</title>\n                <tabular top=\"medium\" left=\"medium\" bottom=\"medium\" right=\"medium\">\n                    <row valign=\"bottom\">\n                        <cell>\n                             <line>One Fish</line>\n                             <line>Two Fish</line>\n                             <line>Red Fish</line>\n                             <line>Blue Fish</line>\n                        </cell>\n                        <cell>\n                             <line>I am the Lorax.</line>\n                             <line>I speak for the trees.</line>\n                             <line>Self-referential: <xref ref=\"table-multiline-cells\" text=\"type-global\"/></line>\n                        </cell>\n                        <cell>\n                             <line>Look at me!</line>\n                             <line>Look at me!</line>\n                             <line>Look at me NOW!</line>\n                             <line>It is fun to have fun.</line>\n                             <line>But you have</line>\n                             <line>to know how.</line>\n                        </cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>This is a table torture test with many combinations of <c>halign</c>, <c>valign</c>, <c>colspan</c>, <tag>p</tag> children, and <tag>line</tag> children.</p>\n\n            <table>\n                <title>Table Torture Test</title>\n                <tabular top=\"minor\" bottom=\"minor\" right=\"minor\" left=\"minor\">\n                    <col/>\n                    <col width=\"10%\"/>\n                    <col halign=\"right\"/>\n                    <col width=\"10%\" halign=\"right\"/>\n                    <col halign=\"center\"/>\n                    <col width=\"10%\" halign=\"center\"/>\n                    <col halign=\"justify\"/> <!-- justify => left for non-p cells -->\n                    <col width=\"10%\" halign=\"justify\"/>\n                    <col/>\n                    <row>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                        <cell/>\n                        <cell>Cell too wide</cell>\n                        <cell/>\n                    </row>\n                    <row>\n                        <cell>Lf md</cell>\n                        <cell><p>Lef mid par cel</p></cell>\n                        <cell>Rt md</cell>\n                        <cell><p>Rig mid par cel</p></cell>\n                        <cell>Cn md</cell>\n                        <cell><p>Cen mid par cel</p></cell>\n                        <cell>Js md</cell>\n                        <cell><p>Jus mid par cel jus mid par cel</p></cell>\n                        <cell><line/><line/><line/><line/><line/><line/></cell>\n                    </row>\n                    <row>\n                        <cell colspan=\"2\"><line>Colspan=2</line><line>lef mid</line><line>with lines</line></cell>\n                        <cell colspan=\"3\">Colspan=3 rig mid</cell>\n                        <cell><line>Lines</line><line>Between</line><line>Par</line></cell>\n                        <cell><line>Lines</line><line>Between</line><line>No Par</line></cell>\n                        <cell><p>Par in row with lines</p></cell>\n                        <cell><line/><line/><line/><line/><line/><line/></cell>\n                    </row>\n                    <row valign=\"top\">\n                        <cell>L t</cell>\n                        <cell><p>Lef top par cel</p></cell>\n                        <cell>R t</cell>\n                        <cell><p>Rig top par cel</p></cell>\n                        <cell>C t</cell>\n                        <cell><p>Cen top par cel</p></cell>\n                        <cell>J t</cell>\n                        <cell><p>Jus top par cel jus top par cel</p></cell>\n                        <cell><line/><line/><line/><line/><line/><line/></cell>\n                    </row>\n                    <row valign=\"bottom\">\n                        <cell>L b</cell>\n                        <cell><p>Lef bot par cel</p></cell>\n                        <cell>R b</cell>\n                        <cell><p>Rig bot par cel</p></cell>\n                        <cell>C b</cell>\n                        <cell><p>Cen bot par cel</p></cell>\n                        <cell>J b</cell>\n                        <cell><p>Jus bot par cel jus bot par cel</p></cell>\n                        <cell><line/><line/><line/><line/><line/><line/></cell>\n                    </row>\n                    <row valign=\"bottom\">\n                        <cell colspan=\"3\">Colspan=3 lef bot</cell>\n                        <cell colspan=\"2\"><line>Colspan=2</line><line>rig bot</line><line>with lines</line></cell>\n                        <cell><line>Lines</line><line>Under</line><line>Par</line></cell>\n                        <cell><line>Lines</line><line>Under</line><line>No Par</line></cell>\n                        <cell><p>Par in row with lines</p></cell>\n                        <cell><line/><line/><line/><line/><line/><line/></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>And now a <tag>sidebyside</tag> with a <tag>table</tag> and a <tag>tabular</tag> to check that width is scaled appropriately. See <xref ref=\"section-side-by-side\">Section</xref> to learn about <tag>sidebyside</tag>s.</p>\n\n            <figure xml:id=\"table-consitution-text\">\n                <caption>Some text from the US Constitution</caption>\n                <sidebyside widths=\"45% 55%\">\n                    <tabular valign=\"top\" top=\"minor\" bottom=\"minor\" left=\"minor\" right=\"minor\">\n                        <col/>\n                        <col width=\"50%\"/>\n                        <row>\n                            <cell>A1.S1</cell>\n                            <cell><p>All legislative Powers herein granted shall be vested in a Congress of the United States, which shall consist of a Senate and House of Representatives.</p>\n                                  <p>Should be 50% of 45% except perhaps on small screens.</p></cell>\n                        </row>\n                    </tabular>\n\n                    <tabular valign=\"top\" top=\"minor\" bottom=\"minor\" left=\"minor\" right=\"minor\">\n                        <col/>\n                        <col width=\"50%\"/>\n                        <row>\n                            <cell>A1.S2.C1</cell>\n                            <cell><p>The House of Representatives shall be composed of Members chosen every second Year by the People of the several States, and the Electors in each State shall have the Qualifications requisite for Electors of the most numerous Branch of the State Legislature.</p>\n                                  <p>Should be 50% of 55% except perhaps on small screens.</p></cell>\n                        </row>\n                    </tabular>\n                </sidebyside>\n            </figure>\n\n            <p>Tables are formed in <latex/> output with copious use of the <c>\\multicolumn</c> macro to override more global alignment settings, and to spread the content of one cell across several columns.  However, sometimes <latex/>'s special characters have behaved badly in this situation.  So the table below, two items per row, is just designed for <latex/> testing.  But of course, it should still render fine in other formats.  The three test cases are from <xref ref=\"section-urls\" type=\"text-global\"/>, but without 50 alphabetic characters and 8 digits, which should not be problems in this context.  That section says more about making a comprehensive, yet legal, test <init>URL</init>.  In order to test the use of a percent sign (<c>%</c>) in a URL, we follow it by two hex digits, specifically, <c>58</c>, which is a way to represent the character <c>X</c> in a <init>URL</init>.  The first column's entries are <em>forced</em> to be wrapped in a <c>\\multicolumn</c> by specifying their horizontal alignment.  The second column's entries <em>will not</em> be wrapped in a <c>\\multicolumn</c>.  So the two columns will look identical, other than the first having a left alignment, and the second has the default center alignment.  (This table is known to render poorly in a Jupyter notebook.  The cause is four dollar signs present in rows 1 and 3, and is explained in <xref ref=\"subsection-jupyter-dollars\" text=\"type-global\"/>.)</p>\n\n            <table xml:id=\"table-latex-problems\">\n                <title>Problematic Table Cells for <latex/></title>\n                <tabular halign=\"center\" top=\"medium\" left=\"medium\" bottom=\"medium\" right=\"medium\">\n                    <row>\n                        <cell>1</cell>\n                        <cell halign=\"left\"><c>09az%-._~:/%5B%5D@!$&amp;'()*+,;=#?</c></cell>\n                        <cell><c>09az%-._~:/%5B%5D@!$&amp;'()*+,;=#?</c></cell>\n                    </row>\n\n                    <row>\n                        <cell>2</cell>\n                        <cell halign=\"left\"><url href=\"http://example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\" visual=\"example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\">e.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?</url></cell>\n                        <cell><url href=\"http://example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\" visual=\"example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\">e.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?</url></cell>\n                    </row>\n\n                    <row>\n                        <cell>3</cell>\n                        <cell halign=\"left\"><url href=\"http://example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\" visual=\"example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\"/></cell>\n                        <cell><url href=\"http://example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\" visual=\"example.com/09az%58-._~:/%5B%5D@!$&amp;'()*+,;=#?\"/></cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>Now, the same table repeatedly, but with different headers.  No care has been taken with alignment or rules, which could improve how these look.</p>\n\n            <table>\n                <title>No Headers</title>\n                <tabular>\n                    <row>\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>One Row Header</title>\n                <tabular>\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>One Row Header, Multiline</title>\n                <tabular>\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>\n                            <line>Area</line>\n                            <line>(sq. mi.)</line>\n                        </cell>\n                        <cell>\n                            <line>Statehood</line>\n                            <line>(Year)</line>\n                        </cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>Two Row Headers</title>\n                <tabular>\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area</cell>\n                        <cell>Statehood</cell>\n                    </row>\n                    <row header=\"yes\">\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>(sq. mi.)</cell>\n                        <cell>(Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>One Vertical Row Header</title>\n                <tabular>\n                    <row header=\"vertical\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>One Vertical Row Header, Multiline</title>\n                <tabular>\n                    <row header=\"vertical\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>\n                            <line>Area</line>\n                            <line>(sq. mi.)</line>\n                        </cell>\n                        <cell>\n                            <line>Statehood</line>\n                            <line>(Year)</line>\n                        </cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>Two Vertical Row Headers</title>\n                <tabular>\n                    <row header=\"vertical\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area</cell>\n                        <cell>Statehood</cell>\n                    </row>\n                    <row header=\"vertical\">\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>(sq. mi.)</cell>\n                        <cell>(Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>Test of vertical header orientation and padding with borders</title>\n                <tabular row-headers=\"yes\"\n                        halign=\"center\"\n                        valign=\"middle\"\n                        right=\"minor\"\n                        bottom=\"minor\">\n                    <col halign=\"left\"\n                        right=\"major\"/>\n                    <col/>\n                    <col/>\n                    <col/>\n                    <col/>\n                    <col/>\n                    <col/>\n                    <row header=\"vertical\"\n                        bottom=\"major\"\n                        halign=\"left\">\n                        <cell right=\"minor\"\n                            bottom=\"minor\"></cell>\n                        <cell>0 <em>(MTH111)</em></cell>\n                        <cell>1 <em>(MTH112)</em></cell>\n                        <cell>2 <em>(CS160)</em></cell>\n                        <cell>3 <em>(CS161)</em></cell>\n                        <cell>4 <em>(CS162)</em></cell>\n                        <cell>5 <em>(CS205)</em></cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>0 <em>(MTH111)</em></cell>\n                        <cell>0</cell>\n                        <cell>1</cell>\n                        <cell>0</cell>\n                        <cell>1</cell>\n                        <cell>0</cell>\n                        <cell>0</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>One Row Header, with Rules</title>\n                <tabular>\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <table>\n                <title>One Row Header, Multiline, with Rules</title>\n                <tabular>\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>\n                            <line>Area</line>\n                            <line>(sq. mi.)</line>\n                        </cell>\n                        <cell>\n                            <line>Statehood</line>\n                            <line>(Year)</line>\n                        </cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>The next table has a progression of thicker rules in the header, plus a progression of thicker rules across the columns.  For testing, not for aesthetics.</p>\n\n            <table>\n                <title>Two Row Header, Many Rules</title>\n                <tabular top=\"minor\" left=\"minor\">\n                    <col right=\"minor\"/>\n                    <col right=\"medium\"/>\n                    <col/>\n                    <col right=\"major\"/>\n                    <row header=\"yes\" bottom=\"medium\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area</cell>\n                        <cell>Statehood</cell>\n                    </row>\n                    <row header=\"yes\" bottom=\"major\">\n                        <cell></cell>\n                        <cell></cell>\n                        <cell>(sq. mi.)</cell>\n                        <cell>(Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row bottom=\"minor\">\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>We now finish this section with some <em>long</em> tables.  Ones that will not fit on a single printed page.  So this is only of interest when producing this sample article as a <init>PDF</init>.  First a <q>naked</q> tabular, which should force a new page to start, and then still overrun the end of the page.</p>\n\n            <tabular>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n            </tabular>\n\n            <p>Now the same <tag>tabular</tag>, but within a <tag>table</tag>.  Behavior should be similar, a new page and then it overruns the bottom of the page.</p>\n\n\n            <table>\n                <title>A Lot of Colors</title>\n                <tabular>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>When you wish to allow a <tag>tabular</tag> to split itself at a page break, you can add the attribute <attr>break</attr> with the value <c>yes</c>.  Certainly this will control a <tag>table</tag> or <tag>tabular</tag> which is longer than a page, but will also allow a shorter one to break.  This might useful in a draft stage before undertaking page-fitting.</p>\n\n            <p>Here is the long <tag>tabular</tag> again, but with the <attr>break</attr> attribute set to <c>yes</c>.</p>\n\n            <tabular break=\"yes\">\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n                <row>\n                    <cell>Red</cell>\n                    <cell>Green</cell>\n                    <cell>Yellow</cell>\n                </row>\n                <row>\n                    <cell>Blue</cell>\n                    <cell>White</cell>\n                    <cell>Pink</cell>\n                </row>\n            </tabular>\n\n            <p>Here is the long <tag>table</tag> again, but with the <attr>break</attr> attribute set to <c>yes</c> on the <attr>tabular</attr>.</p>\n\n           <table>\n                <title>A Lot of Colors, Breaking</title>\n                <tabular break=\"yes\">\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                    <row>\n                        <cell>Red</cell>\n                        <cell>Green</cell>\n                        <cell>Yellow</cell>\n                    </row>\n                    <row>\n                        <cell>Blue</cell>\n                        <cell>White</cell>\n                        <cell>Pink</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <p>This device is not ideal, as some features of tables are not behaving as expected.  More precisely, we switch from the standard <latex/> <c>tabular</c> environment to the <c>longtable</c> environment from the package of the same name when table-breaking is requested.  So there may be some undesirable interaction with other packages.  For one, full-width horizontal rules seem to become as wide as the page (rather than as wide as the tabular).  The following table is <xref ref=\"horizontal-rules-table\" text=\"type-global\"/> repeated but as a breakable <tag>tabular</tag>.  The <c>longtable</c> package documentation suggests it accomodates the <c>array</c> package, but it also seems to make a variety of redefinitions.  Furthermore, a panel of a side-by-side cannot be a breakable tabular, or a <latex/> compilation error occurs.</p>\n\n            <table xml:id=\"horizontal-rules-breakable-table\">\n                <title>Horizontal Rules Example</title>\n                <tabular bottom=\"minor\" top=\"major\" halign=\"right\" break=\"yes\">\n                    <col top=\"minor\"/>\n                    <col/>\n                    <col top=\"none\" halign=\"center\"/>\n                    <col top=\"major\"/>\n                    <!--  -->\n                    <!-- A uniform row to judge effects by, each centered -->\n                    <row halign=\"center\">\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                        <cell>1234567890</cell>\n                    </row>\n                    <!-- Totally generic, so by columns, all to right -->\n                    <row bottom=\"none\">\n                        <cell>First</cell>\n                        <cell bottom=\"major\">Second</cell>\n                        <cell bottom=\"major\">Third</cell>\n                        <cell>Fourth</cell>\n                    </row>\n                    <!-- cell-by-cell, with one taking global default -->\n                    <row bottom=\"medium\">\n                        <cell halign=\"center\">A</cell>\n                        <cell halign=\"right\">B</cell>\n                        <cell>C</cell>\n                        <cell halign=\"left\">D</cell>\n                    </row>\n                    <!-- whole row is left, but one is centered -->\n                    <row halign=\"left\">\n                        <cell bottom=\"none\">1</cell>\n                        <cell halign=\"center\" bottom=\"minor\">2</cell>\n                        <cell bottom=\"none\">3</cell>\n                        <cell>4</cell>\n                    </row>\n                    <!-- proper bottom, otherwise defaults -->\n                    <row bottom=\"medium\">\n                        <cell>1</cell>\n                        <cell>2</cell>\n                        <cell>3</cell>\n                        <cell>4</cell>\n                    </row>\n                    <!-- A comment -->\n                </tabular>\n            </table>\n\n            <p> Here is a consecutive pair of <q>bare</q> <tag>tabular</tag> to test vertical space between them. </p>\n\n            <tabular top=\"medium\" bottom=\"medium\" halign=\"center\">\n                <col right=\"minor\"/><col/><col/><col/><col/>\n                <row bottom=\"minor\">\n                    <cell><m>t</m></cell>\n                    <cell><m>2/3</m></cell>\n                    <cell><m>2/303</m></cell>\n                    <cell><m>2/30003</m></cell>\n                    <cell><m>2/3000003</m></cell>\n                </row>\n                <row>\n                    <cell><m>g(t)</m></cell>\n                    <cell><m>-1</m></cell>\n                    <cell><m>-1</m></cell>\n                    <cell><m>-1</m></cell>\n                    <cell><m>-1</m></cell>\n                </row>\n            </tabular>\n\n            <tabular top=\"medium\" bottom=\"medium\" halign=\"center\">\n            <col right=\"minor\"/><col/><col/><col/><col/>\n                <row bottom=\"minor\">\n                    <cell><m>t</m></cell>\n                    <cell><m>2/5</m></cell>\n                    <cell><m>2/505</m></cell>\n                    <cell><m>2/50005</m></cell>\n                    <cell><m>2/5000005</m></cell>\n                </row>\n                <row>\n                    <cell><m>g(t)</m></cell>\n                    <cell><m>1</m></cell>\n                    <cell><m>1</m></cell>\n                    <cell><m>1</m></cell>\n                    <cell><m>1</m></cell>\n                </row>\n            </tabular>\n\n            <p>The <c>longtable</c> package allows for headers and footers indicating continued tables.  A possible enhancement is to support this feature in the case of a long table.</p>\n        </section>\n\n        <section xml:id=\"section-interactive-authored\" label=\"section-interactive-authored\">\n            <title>Interactive Elements, Authored in Javascript</title>\n            <!-- short for table of contents, etc -->\n            <shorttitle>Interactive Elements, Authored</shorttitle>\n            <!-- no markup version, for places like browser tabs -->\n            <plaintitle>Interactive Elements, Authored</plaintitle>\n            <idx><h>interactive elements</h><h>authored</h></idx>\n            <idx><h>embedded interactive elements</h><h>authored</h></idx>\n\n            <introduction>\n                <!-- First paragraph duplicated in next section -->\n                <p>When outputting Web page versions, it is possible to embed a variety of dynamic interactive elements.  In a <latex/>/PDF version, these will necessarily need to be replaced by some static substitute, such as a screenshot.  See <xref ref=\"section-sage-cells\" text=\"type-global\"/> for the specifics of embedding instances of the Sage Cell Server, which is more elaborate, and not entirely similar.</p>\n\n                <p>Interactives in this section are those for which you provide code you have authored.  Generally, the libraries involved to support this have open licenses, though the player for GeoGebra may be an exception.  Creating these assumes some familiarity with <init>HTML</init> and Javascript.  See <xref ref=\"section-interactive-server\" text=\"type-global\"/> for more interactives that are perhaps simpler to create or use.</p>\n\n                <p>(2018-06-22) Almost everything in this section is under active development and not stable yet.  Feel free to experiment and make suggestions and requests.  This page takes a while to completely load, so be patient.</p>\n            </introduction>\n\n            <subsection xml:id=\"interactive-html5-canvas\">\n                <title>HTML5 Canvas</title>\n\n                <p><init>HTML5</init> introduced the <tag>canvas</tag> element, which can be thought of a blank slate, a place to draw or write on.  So <pretext/> has the <tag>slate</tag> element for a similar purpose.  Generally, but not exclusively, <init>HTML5</init> writes on a <tag>canvas</tag> using the Javascript language.  We demonstrate this approach to interactive diagrams in this subsection.</p>\n\n                <p>The following examples are from David Austin's excellent <url href=\"https://understandinglinearalgebra.org/home.html\" visual=\"understandinglinearalgebra.org\"><pubtitle>Understanding Linear Algebra</pubtitle></url> textbook, which can be found at <cd>\n                    <cline>understandinglinearalgebra.org</cline>\n                </cd>David's contribution of examples, and assistance designing the <pretext/> elements is greatly appreciated.  Alright, let's learn some linear algebra.  Yes, there are some learning opportunities in this subsection.</p>\n\n                <figure xml:id=\"figure-simple-eigenvector\">\n                    <caption>A simple eigenvector demonstration</caption>\n\n                    <interactive xml:id=\"interactive-simple-eigenvector\" platform=\"javascript\" width=\"60%\" source=\"code/austin/figures.js code/austin/simple-ev.js\" preview=\"preview/simple-eigenvector-preview.jpg\">\n                        <slate xml:id=\"eigenvector\" surface=\"canvas\"/>\n                        <instructions>\n                            <p>Let <m>\\vec{x}</m> be represented by the red arrow, and <m>A\\vec{x}</m> by the grey arrow, for some particular <m>2\\times 2</m> matrix <m>A</m>.  Drag the <em>tip</em> of the red arrow to see the grey arrow change.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <exercise>\n                    <p>The interactive in <xref ref=\"figure-simple-eigenvector\" text=\"type-global\"/> shows a vector <m>\\vec{x}</m> in red, and the matrix-vector product <m>A\\vec{x}</m> in grey, for a particular <m>2\\times 2</m> matrix <m>A</m>.  The four entries of the matrix <m>A</m> are coded into the interactive.  Can you deduce <m>A</m> simply by using the interactive?  Which theorem is the key?</p>\n                </exercise>\n\n                <figure xml:id=\"figure-eigenvectors\">\n                    <caption>Eigenvector demonstration</caption>\n\n                    <interactive xml:id=\"interactive-eigenvectors\" platform=\"javascript\" width=\"90%\" aspect=\"4:5\" source=\"code/austin/figures.js code/austin/eigenvectors.js\" preview=\"preview/eigenvectors-preview.jpg\">\n                        <slate xml:id=\"sliders\"      aspect=\"4:1\" surface=\"canvas\"/>\n                        <slate xml:id=\"eigenvectors\" aspect=\"4:4\" surface=\"canvas\"/>\n                        <instructions>\n                            <p>Let <m>\\vec{x}</m> be represented by the red arrow, and <m>A\\vec{x}</m> by the grey arrow, for a <m>2\\times 2</m> matrix <m>A</m>.  Drag the <em>tip</em> of the red arrow to see the grey arrow change.  Or drag the blue sliders to change the numerical values of the four entries of the <m>2\\times 2</m> matrix <m>A</m>.  You will not see the grey vector until you change the matrix using one of the two sliders on the left.  Why is that?  What are the eigenvectors of the initial matrix?</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>The next example has ten <tag>slate</tag> elements communicating with each other, and arranged with the layout features of a <tag>sidebyside</tag> (see <xref ref=\"section-side-by-side\" text=\"type-global\"/>).</p>\n\n                <figure xml:id=\"figure-animation\">\n                    <caption>Affine Transformations</caption>\n\n                    <!-- The \"10\" in the \"12:10\" should really be a \"9\".  I suspect -->\n                    <!-- there is some inline element that induces scroll bars      -->\n                    <interactive xml:id=\"interactive-animation\" platform=\"javascript\" width=\"100%\" aspect=\"12:10\" source=\"code/austin/animation.js\" preview=\"preview/animation-preview.jpg\">\n                        <sbsgroup>\n                            <sidebyside>\n                                <slate xml:id=\"a\" surface=\"canvas\" aspect=\"4:1\"/>\n                                <slate xml:id=\"b\" surface=\"canvas\" aspect=\"4:1\"/>\n                                <slate xml:id=\"c\" surface=\"canvas\" aspect=\"4:1\"/>\n                            </sidebyside>\n                            <sidebyside>\n                                <slate xml:id=\"d\" surface=\"canvas\" aspect=\"4:1\"/>\n                                <slate xml:id=\"e\" surface=\"canvas\" aspect=\"4:1\"/>\n                                <slate xml:id=\"f\" surface=\"canvas\" aspect=\"4:1\"/>\n                            </sidebyside>\n                            <sidebyside>\n                                <slate xml:id=\"left\"  surface=\"canvas\" aspect=\"6:6\"/>\n                                <slate xml:id=\"right\" surface=\"canvas\" aspect=\"6:6\"/>\n                            </sidebyside>\n                            <sidebyside width=\"25%\" margins=\"25% 25%\">\n                                <slate surface=\"html\" aspect=\"3:1\">\n                                    <button type=\"button\" id=\"compose\" xmlns=\"http://www.w3.org/1999/xhtml\">Compose</button>\n                                </slate>\n                                <slate surface=\"html\" aspect=\"3:1\">\n                                    <button type=\"button\" id=\"reset\" xmlns=\"http://www.w3.org/1999/xhtml\">Reset</button>\n                                </slate>\n                            </sidebyside>\n                        </sbsgroup>\n                        <instructions>\n                            <title>Flipping Woody</title>\n                            <p>Parameters <m>a</m>, <m>b</m>, <m>d</m>, and <m>e</m>, form a <m>2\\times 2</m> matrix <m>A</m>, while <m>c</m> and <m>f</m> form a vector <m>\\vec{b}</m>.  The two views of Woody shows the effect of the mapping <md>\\vec{x}\\mapsto A\\vec{x} + \\vec{b}</md>.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <warning>\n                    <p>If your <tag>interactive</tag> employs a <tag>slate</tag> with a <attr>surface</attr> attribute whose value is <c>html</c>, then you are advised to augment each top-level (<init>HTML</init>) element within the <tag>slate</tag> with the attribute:<cd>\n                        <cline>xmlns=\"http://www.w3.org/1999/xhtml\"</cline>\n                    </cd>This will identify <em>all</em> of the elements within the <tag>slate</tag> as <init>HTML</init> elements and not as <pretext/> elements.  The danger is that elements with the same name in both languages, such as <tag>li</tag> and <tag>table</tag>, will be mis-identified.  This could be harmless, but could also create chaos, such as disrupting numbering of <pretext/> elements.</p>\n\n                    <p>See the source code of this document for examples:  <xref ref=\"figure-animation\" text=\"type-global\"/> <xref ref=\"figure-interactive-slopes\" text=\"type-global\"/>, <xref ref=\"figure-piecewise\" text=\"type-global\"/>.</p>\n\n                    <p>Note that the <init>HTML</init> that is output can vary slightly from your source in small, harmless ways, such as empty (self-closing) elements being output with both an opening and a closing tag.  Please report any significant discrepancies.  Soon this requirement will be enforced in the code.</p>\n                </warning>\n\n                <p>It is also possible to add <tag>script</tag> elements within an interactive that contain properly escaped JS code. These elements will be placed at the end of the document created to hold the interactive content and can interactive with the other elements within the interactive but can not directly interact with the surrounding page.</p>\n\n                <p>Authors are strongly discouraged from trying to incorporate complex code in the form of a <tag>script</tag>, but it can be a useful tool to call more complex code that is linked via <attr>source</attr> on the <tag>interactive</tag>.</p>\n\n                <p>This example uses a <tag>script</tag> to draw <q>Hello World</q> to a <tag>slate</tag> </p>\n\n                <figure xml:id=\"figure-simple-js-script\">\n                    <caption>A simple embedded script example</caption>\n\n                    <interactive aspect=\"6:1\" xml:id=\"interactive-simple-js-script\" platform=\"javascript\">\n                        <slate aspect=\"6:1\" xml:id=\"simple-js-script\" surface=\"canvas\"/>\n                        <script>\n                            const canvas = document.getElementById(\"simple-js-script\");\n                            const ctx = canvas.getContext(\"2d\");\n                            ctx.font = \"40px sans-serif\";\n                            ctx.fillText(\"Hello world\", 10, 50);\n                        </script>\n                    </interactive>\n                </figure>\n\n                <p>This next interactive uses ECMAScript module based code. That will not function unless the <element>script</element>'s <attr>type</attr> is set to <c>module</c> in the HTML output. So let's set it here and pass it through. It also generates its own HTML elements, so we hopefully don't get a default empty div.</p>\n\n                <figure>\n                    <caption>A simple JS module test</caption>\n                    <interactive xml:id=\"interactive-js-module\" aspect=\"6:1\" platform=\"javascript\" label=\"js-module-test\">\n                        <script type=\"module\">\n                            import cytoscape from \"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.33.1/cytoscape.esm.min.mjs\";\n                            const cyEl = document.createElement('div');\n                            cyEl.style.width = '600px';\n                            cyEl.style.height = '100px';\n                            document.body.appendChild(cyEl);\n                            const cy = cytoscape({\n                                container: cyEl,\n                                elements: {\n                                    nodes: [ 'a', 'b' ].map(id => ({ data: { id } })),\n                                    edges: [\n                                        {\n                                            data: { id: 'ab', source: 'a', target: 'b' }\n                                        }\n                                    ]\n                                },\n                                style: [\n                                    {\n                                        selector: 'node',\n                                        style: {\n                                            'label': 'data(id)'\n                                        }\n                                    }\n                                ]\n                            });\n                        </script>\n                    </interactive>\n            </figure>\n\n            </subsection>\n\n            <subsection>\n                <title>D3.js</title>\n                <idx>D3.js</idx>\n\n                <p><term>D3</term> is a Javascript library for <q>Data-Driven Documents</q>, which might greatly enhance some data you wish to display.  In short, it uses the animation capabilities of <init>SVG</init>.  Available examples seem sensitive to the version of the library, so we have examples using different versions.  Use the <attr>version</attr> attribute on <tag>interactive</tag> to specify the version number.  The default is <c>5</c>.</p>\n\n                <p>The first example uses the force layout and collision detection from Version 3.  (The necessary commands are very different in Version 4.)  Pretend you are a working shepherding dog.  Can you separate, and catch, one of the herd?</p>\n\n                <p>This is adapted from a <url href=\"https://bl.ocks.org/mbostock/3231298\" visual=\"bl.ocks.org/mbostock/3231298\">block</url> by <url href=\"https://bl.ocks.org/mbostock\" visual=\"bl.ocks.org/mbostock\">Mike Bostock</url> with a <init>GPL</init> license.  A similar demonstration, only using an <init>HTML5</init> canvas is at <url href=\"https://bl.ocks.org/mbostock/3231307\" visual=\"bl.ocks.org/mbostock/3231307\"/>.</p>\n\n                <figure>\n                    <caption>Force layout and collision detection</caption>\n                    <interactive xml:id=\"interactive-d3-collision\" platform=\"d3\" version=\"3\" width=\"80%\" aspect=\"1:1\" source=\"code/d3/collision.js\" preview=\"preview/collision-preview.png\">\n                        <slate xml:id=\"d3-collision\" surface=\"div\" aspect=\"1:1\"/>\n                        <instructions>\n                            <p>Place your mouse/pointer at the center of the interactive to repel the 200 circles.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>Similar, but different, this demonstration of a graph layout uses Version 4 of the library.  Technical notes:<ul>\n                    <li>We have changed the size of the nodes, and their number, to fit in a smaller space.</li>\n                    <li>The Javascript script uses introspection to size itself, which would be a good general practice. (Though it does not resize itself on window resize, only initial load.) The <tag>interactive</tag> also has the <attr>resize-behavior</attr> attribute set to <c>responsive</c>. </li>\n                </ul></p>\n\n                <p>This is adapted from a <url href=\"https://bl.ocks.org/shimizu/e6209de87cdddde38dadbb746feaf3a3\" visual=\"bl.ocks.org/shimizu/e6209de87cdddde38dadbb746feaf3a3\">block</url> by <url href=\"https://bl.ocks.org/shimizu\" visual=\"bl.ocks.org/shimizu\">shimizu</url> with a <init>GPL</init> license.</p>\n\n                <figure>\n                    <caption>Graph Layout</caption>\n                    <interactive xml:id=\"interactive-d3-graph-layout\" platform=\"d3\" version=\"4\" width=\"60%\" aspect=\"1:1\" source=\"code/d3/graph-layout.js\" resize-behavior=\"responsive\" preview=\"preview/graph-layout-preview.png\">\n                        <slate xml:id=\"d3-graph-layout\" aspect=\"1:1\" surface=\"div\"/>\n                        <instructions>\n                            <p>Drag a vertex to a new location to see the graph adjust its layout.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <exercise>\n                    <title>Graph Planarity</title>\n                    <statement>\n                        <p>Can you move the vertices to new locations such that the resulting graph is planar?  (In other words, no edges cross?)</p>\n                    </statement>\n                </exercise>\n\n                <p>Finally an example that actually uses some data.  Here is the description from the <url href=\"https://bl.ocks.org/martinjc/7aa53c7bf3e411238ac8aef280bd6581\" visual=\"bl.ocks.org/martinjc/7aa53c7bf3e411238ac8aef280bd6581\">original block</url> by <url href=\"https://bl.ocks.org/martinjc\" visual=\"bl.ocks.org/martinjc\">Martin Chorley</url> with an MIT License.</p>\n\n                <blockquote>\n                    <p>This visualisation uses a D3 force simulation to show the Twitter relationships between the Assembly Members in the Welsh Assembly in terms of the number of times each assembly member has mentioned another assembly member in a tweet.</p>\n\n                    <p>Twitter relationships were mined on 22/03/2017, and are representative of the conversational relationships on that date. Links between AMs represent a conversational relationship: one AM has mentioned the other. Party colour indicates the direction of the mention.</p>\n\n                    <p>Hover over the nodes to fade out non-connected nodes.</p>\n\n                    <p>Rather than using intermediate nodes to create curved links (as in Mike Bostock's block), this adds curves by adding a calculated control point for each edge.</p>\n                </blockquote>\n\n                <p>Technical notes:<ul>\n                    <li>Once the nodes organize themselves (automatically in the beginning), they cannot be moved.</li>\n                    <li>We have adjusted the margins in an attempt to keep names visible on the right side, but without giving up too much space.</li>\n                    <li>We have adjust the repelling force, and the collision buffer, to better fit the available space.</li>\n                    <li>This example required its own <init>CSS</init>, which we have included as part of the <tag>interactive</tag>.</li>\n                    <li>The <attr>aspect</attr> ratio of the <tag>interactive</tag> is set to slightly taller than that of the <tag>slate</tag> it contains. This accounts for the fact that the contents generated by the js/css in the slate occupy slightly too much vertical real estate.</li>\n                    <li>The data collected from the Twitter analysis is contained in a <init>JSON</init> file, <c>mention_network.json</c>, and where the script loads that file, it has a hardcoded path.  So this example is a bit brittle, should that file move.</li>\n                </ul></p>\n\n                <figure>\n                    <caption>Tweet mentions within the Welsh Assembly</caption>\n                    <interactive xml:id=\"interactive-d3-welsh\" platform=\"d3\" version=\"4\" width=\"100%\" aspect=\"1:2.05\" source=\"code/d3/welsh.js\" css=\"code/d3/welsh.css\" preview=\"preview/welsh-assembly-preview.png\">\n                        <slate xml:id=\"d3-welsh\" surface=\"div\" aspect=\"1:2\"/>\n                        <instructions>\n                            <p>Hover on the name of an Assembly Member to concentrate on their tweet mentions.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"svg-interactives\">\n                <title>SVG</title>\n\n                <p>Entirely similar to using an HTML5 <c>canvas</c> element (<xref ref=\"interactive-html5-canvas\"/>), it is possible to control an <init>SVG</init> element with Javascript.  This example is from Mark McClure.</p>\n\n                <p>Look carefully at the source and rendering of this example as <init>HTML</init>.  The functions to choose from via radio buttons, and the change in <m>x</m>, denoted later as <m>h</m>, are being rendered as mathematics by the Javascript MathJax library.  However, this cannot be accomplished with simply <c>$...$</c> nor by simply <c>\\(...\\)</c>, but instead by using the <c>\\(...\\)</c> and then also wrapping that in a <tag>span</tag> element with a <attr>class</attr> attribute set to <c>process-math</c>. (The latter is how we instruct MathJax as to which parts of a page to process, or not).  So to have MathJax render a nice <m>x^2</m> in this context (math inside <init>HTML</init> inside a <tag>slate</tag> inside an <tag>interactive</tag>) would be accomplished with<cd>\n                    <cline>&lt;span class=\"process-math\"&gt;x^2&lt;/span&gt;</cline>\n                </cd></p>\n\n                <figure xml:id=\"figure-interactive-slopes\">\n                    <caption>Tangent and secant slopes</caption>\n                    <interactive xml:id=\"interactive-slopes\" platform=\"javascript\" width=\"100%\" aspect=\"6:8\" source=\"https://code.jquery.com/jquery-1.11.3.min.js https://d3js.org/d3.v3.min.js https://cdnjs.cloudflare.com/ajax/libs/mathjs/3.2.1/math.min.js code/mcclure/slope.js\" css=\"code/mcclure/slope.css\">\n                        <!-- intro text, plus curve radio buttons -->\n                        <slate xml:id=\"function-list\" surface=\"html\" aspect=\"6:2\">\n                            <div class=\"p\" xmlns=\"http://www.w3.org/1999/xhtml\">\n                            Calculus consists of those problems in mathematics that can be solved with the\n                            following basic approach:\n                            </div>\n                            <div class=\"em_display\" xmlns=\"http://www.w3.org/1999/xhtml\">\n                            Approximate and take a limit!\n                            </div>\n                            <div class=\"p\" xmlns=\"http://www.w3.org/1999/xhtml\">\n                            The simplest, standard, geometric example of this process is the approximation\n                            of the slope of a tangent line with a secant line.\n                            Here's an illustration of this basic idea.\n                            </div>\n                            <div id=\"function_list\" style=\"text-align: center\" xmlns=\"http://www.w3.org/1999/xhtml\">\n                                Choose <span class=\"process-math\">\\(f\\)</span>:\n                                <span class=\"function_radio_container\" style=\"padding-left: 10px\">\n                                    <input type=\"radio\" class=\"radio\" name=\"function\" value=\"f1\" id=\"f1\"/>\n                                    <span class=\"process-math\">\\(f(x)=x^2\\)</span>\n                                </span>\n                                <span class=\"function_radio_container\">\n                                    <input type=\"radio\" class=\"radio\" name=\"function\" value=\"f2\"/>\n                                    <span class=\"process-math\">\\(f(x)=\\frac{1}{3}e^x\\)</span>\n                                </span>\n                                <span class=\"function_radio_container\">\n                                    <input type=\"radio\" class=\"radio\" name=\"function\" value=\"f3\"/>\n                                    <span class=\"process-math\">\\(f(x)=\\sin(2x^2)+x/4\\)</span>\n                                </span>\n                            </div>\n                        </slate>\n                        <!-- the curve/graph/interactive itself -->\n                        <slate xml:id=\"the_graph\" surface=\"svg\" aspect=\"6:4\"/>\n                        <!-- slopes and secant line checkbox -->\n                        <slate xml:id=\"info-container\" surface=\"html\" aspect=\"6:2\">\n                            <div id=\"h_info_container\" xmlns=\"http://www.w3.org/1999/xhtml\">\n                            <table>\n                                <tr>\n                                    <td><table>\n                                        <tr><td><input id=\"show_secant_checkbox\" type=\"checkbox\"/> Show secant line</td></tr>\n                                        <tr><td><input id=\"h_slider\" type=\"range\" min=\"-0.5\" max=\"0.5\" step=\"0.01\"/></td></tr>\n                                    </table></td>\n                                    <td><table>\n                                        <tr><td class=\"dimit\" style=\"text-align: left;\"><span class=\"process-math\">\\(h\\)</span> = <span id=\"h_value_display\"></span></td></tr>\n                                        <tr><td class=\"dimit\" style=\"text-align: left;\">secant slope = <span id=\"secant_value_display\"></span></td></tr>\n                                        <tr><td style=\"text-align: left;\">tangent slope = <span id=\"tangent_value_display\"></span></td></tr>\n                                    </table></td>\n                                </tr>\n                            </table>\n                            </div>\n                        </slate>\n                        <instructions>\n                            <p>Select a function with the radio buttons, then use the checkbox to add the secant line.  The denominator of the difference quotient, <m>h</m>, can be adjusted with the slider and the red point will react to the different values.  The green point is the point of tangency, and can be dragged with the mouse.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <exercise>\n                    <title>Changing Secant Lines</title>\n                    <statement>\n                        <p>When discussing the derivative as a limit, we think of the point of tangency as being fixed (the green point in <xref ref=\"figure-interactive-slopes\"/>) and the <q>other</q> point defining the secant line as changing (the red point in <xref ref=\"figure-interactive-slopes\"/>).  Switch it up!  Fix a large value of <m>h</m> (positive or negative) and then change the point of tangency (the green point).  Discuss what you observe.</p>\n                    </statement>\n                </exercise>\n            </subsection>\n\n            <subsection>\n                <title>JSXGraph</title>\n                <idx>JSXGraph</idx>\n\n                <p><url href=\"http://jsxgraph.uni-bayreuth.de/wp/index.html\" visual=\"jsxgraph.uni-bayreuth.de\">JSXGraph</url> is a <q>cross-browser JavaScript library for interactive geometry, function plotting, charting, and data visualization in the web browser.</q>  Now a <tag>slate</tag> will be what JSXGraph calls a <term>board</term>.  Again, you use Javascript to write onto a <tag>slate</tag>, but have some powerful shortcuts available from the JSXGraph library.  For this reason, <pretext/> calls JSXGraph a <q>language</q>, similar in may respects to how Sage is a language, but is really a Python library.  So realize that the syntax for using JSXGraph is that of Javascript.</p>\n\n                <p>Place Javascript inside a file that is specified with the <attr>source</attr> attribute of the <tag>interactive</tag> element.  Then just be certain that <attr>xml:id</attr> of the <tag>interactive</tag> element is passed as the <init>HTML</init> <c>id</c> in an (early) call to JSXGraph's <c>initBoard()</c> method.</p>\n\n                <p>The following example was contributed by Rick Roesler. The <tag>figure</tag> is comprised of four <tag>stack</tag> elements within a <tag>sidebyside</tag>. By varying the time in the top box, the reader can observe the displacement, velocity, and acceleration of a ball thrown upward with an initial velocity of 30 m/s.</p>\n\n                <figure>\n                    <caption>1-Dimensional Kinematics</caption>\n                    <interactive xml:id=\"kinematics\" platform=\"jsxgraph\" aspect=\"6:7\" source=\"code/roesler/kinematics.js\">\n                        <sidebyside width=\"70%\" margins=\"15%\">\n                            <stack>\n                                <slate xml:id=\"box_t\" surface=\"jsxboard\" aspect=\"6:1\"/>\n                                <slate xml:id=\"box_s\" surface=\"jsxboard\" aspect=\"6:3\"/>\n                                <slate xml:id=\"box_v\" surface=\"jsxboard\" aspect=\"6:3\"/>\n                                <slate xml:id=\"box_a\" surface=\"jsxboard\" aspect=\"6:3\"/>\n                            </stack>\n                        </sidebyside>\n                        <instructions xml:id=\"kinematics-instructions\">\n                            <p>Use the time slider in the top panel to vary the time from 0 sec to 6 sec. Observe how the displacement, velocity, and acceleration vary with time.</p>\n                        </instructions>\n                        <static>\n                            <image source=\"images/kinematics.png\" width=\"60%\"/>\n                        </static>\n                    </interactive>\n                </figure>\n\n                <p>The plot below is the curve <m>r=a+b\\theta</m> in polar coordinates, for <m>0\\leq\\theta\\leq 8\\pi</m>.  It may be manipulated with the sliders to control the shape of the curve.  Point <m>A</m> is contrained to the curve, but may be dragged to a new location. At <m>A</m> the tangent line and normal line are plotted as dashed red lines.  Use the controls in the lower left to adjust the viewing window.  This <url href=\"http://jsxgraph.uni-bayreuth.de/wiki/index.php/Archimedean_spiral\" visual=\"jsxgraph.uni-bayreuth.de/wiki/index.php/Archimedean_spiral\">Archimedean Spiral</url> is taken from the <url href=\"http://jsxgraph.uni-bayreuth.de/wiki/index.php/Category:Examples\" visual=\"jsxgraph.uni-bayreuth.de/wiki/index.php/Category:Examples\">JSXGraph example wiki</url>.  The code could be written in 7 lines.  Width is 80% and aspect ratio is 4:3.</p>\n\n                <figure>\n                    <caption>The Archimedian Spiral <m>r = a + b\\theta</m>, <m>0\\leq\\theta\\leq 8\\pi</m></caption>\n                    <idx>Archimedian Spiral</idx>\n\n                    <interactive xml:id=\"interactive-archimedian-spiral\" platform=\"jsxgraph\" width=\"80%\" aspect=\"4:3\" source=\"code/jsxgraph/archimedian.js\">\n                        <slate xml:id=\"jsxgraph-archimedian-spiral\" surface=\"jsxboard\" aspect=\"4:3\"/>\n                        <instructions>\n                            <p>Drag the sliders to change the parameters <m>a</m> and <m>b</m>.  Controls in the lower-right will adjust the viewing window.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>Here is a more elaborate example, from the <url href=\"http://jsxgraph.uni-bayreuth.de/showcase/\" visual=\"jsxgraph.uni-bayreuth.de/showcase/\">JSXGraph Showcase</url>, titled <url href=\"http://jsxgraph.uni-bayreuth.de/showcase/infinity.html\" visual=\"jsxgraph.uni-bayreuth.de/showcase/infinity.html\">Infinity</url>.</p>\n\n                <p>There are two active sliders to control the shape and shading of the graphic, and hovering the mouse near one of the edges will highlight the entirety of one of the 30 quadrangles.  Finally, each of the four red corners may be dragged to a new location.  Code is 47 lines.  Width is 60% and aspect ratio is the default, 1:1, <ie/> a square.</p>\n\n                <figure>\n                    <caption>Infinity, from the JSXGraph Showcase</caption>\n\n                    <interactive xml:id=\"interactive-infinity\" platform=\"jsxgraph\" width=\"60%\" source=\"code/jsxgraph/infinity.js\">\n                        <slate xml:id=\"jsxgraph-infinity\" surface=\"jsxboard\"/>\n                        <instructions>\n                            <p>Drag the sliders to change the pattern, and drag any of the four red corners to change the overall shape.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>Here are the two new examples.  They have been included in a <c>sidebyside</c> layout element with equal widths (see <xref ref=\"section-side-by-side\" text=\"type-global\"/>) so they can be placed horizontally across the page.  They are not wrapped as figures, so cannot be cross-referenced.  These are again from the <url href=\"http://jsxgraph.uni-bayreuth.de/wiki/index.php/Category:Examples\" visual=\"jsxgraph.uni-bayreuth.de/wiki/index.php/Category:Examples\">JSXGraph example wiki</url>, the left being Fermat's Spiral and the right being a demonstration of B-splines.</p>\n\n                <sidebyside widths=\"40% 40%\">\n                    <interactive xml:id=\"interactive-fermats-spiral\" platform=\"jsxgraph\" source=\"code/jsxgraph/fermats-spiral.js\">\n                        <slate xml:id=\"jsxgraph-fermats-spiral\" surface=\"jsxboard\"/>\n                        <instructions>\n                            <p>Drag the slider to change the curve.</p>\n                        </instructions>\n                    </interactive>\n\n                    <interactive xml:id=\"interactive-bspline\" platform=\"jsxgraph\" source=\"code/jsxgraph/bspline.js\">\n                        <slate xml:id=\"jsxgraph-bspline\" surface=\"jsxboard\"/>\n                        <instructions>\n                            <p>Any of the 8 red control points may be moved anywhere.</p>\n                        </instructions>\n                    </interactive>\n                </sidebyside>\n\n                <p>Finally, a piecewise function you can control, with traces of the domain values and range values in two other JSXGraph boards.  Boards and <init>HTML</init> buttons have been laid out using the <c>sidebyside</c> layout element.</p>\n\n                <figure xml:id=\"figure-piecewise\">\n                    <caption>Piecewise Function</caption>\n\n                    <!-- Aspect ratio should be 20:7, the \":8\" is to avoid extra scroll bars -->\n                    <interactive xml:id=\"interactive-piecewise\" platform=\"jsxgraph\" aspect=\"20:8\" source=\"code/jsxgraph/piecewise.js\">\n                        <sbsgroup>\n                            <sidebyside width=\"30%\" margins=\"0%\">\n                                <slate xml:id=\"box_p3\"  surface=\"jsxboard\" aspect=\"6:6\"/>\n                                <slate xml:id=\"box2_p3\" surface=\"jsxboard\" aspect=\"6:6\"/>\n                                <slate xml:id=\"box3_p3\" surface=\"jsxboard\" aspect=\"6:6\"/>\n                            </sidebyside>\n                            <!-- buttons should have aspect 6:1, if we could set it -->\n                            <sidebyside widths=\"30% 30%\" margins=\"20%\">\n                                <slate surface=\"html\">\n                                    <input type=\"button\" value=\"Animate\" onkeypress=\"animate_p3(s_p3,75,100);\" onclick=\"animate_p3(s_p3,75,100);\" style=\"font-size:16px; width:100%\" xmlns=\"http://www.w3.org/1999/xhtml\"/>\n                                </slate>\n                                <slate surface=\"html\">\n                                    <input type=\"button\" value=\"Clear Traces\" onkeypress=\"clearTraces_p3();\" onclick=\"clearTraces_p3();\" style=\"font-size:16px; width:100%\" xmlns=\"http://www.w3.org/1999/xhtml\"/>\n                                </slate>\n                            </sidebyside>\n                        </sbsgroup>\n                        <instructions>\n                            <p>The slider of the left panel will trace out the piecewise function.  Simultaneously, the domain will be traced in the middle panel, and the range in the right panel.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>Generally, we load an interactive into an HTML <c>iframe</c> to sandbox (isolate) it from other interactives.  We does this for your own protection.  So, for example, one interactive cannot talk to another.  If two <tag>slate</tag> need to communicate, then they are related, and should be placed into a single <tag>interactive</tag>, allowed to layout themselves, or grouped within a <tag>sidebyside</tag> allowing finer control.  Even if we have this under control, you might still enjoy reading <url href=\"http://mikecavaliere.com/your-js-is-a-mess-javascript-namespacing/\" visual=\"mikecavaliere.com/your-js-is-a-mess-javascript-namespacing/\">Your JS is a Mess</url> at <c>mikecavaliere.com/your-js-is-a-mess-javascript-namespacing/</c>.</p>\n            </subsection>\n\n            <subsection>\n                <title>JessieCode</title>\n                <idx>JessieCode</idx>\n\n                <p><url href=\"https://jsxgraph.uni-bayreuth.de/wp/docs_jessiecode/\" visual=\"jsxgraph.uni-bayreuth.de/wp/docs_jessiecode/\">JessieCode</url> is a scripting language for JSXGraph. It provides the core geometric and graphing features of JSXGraph without accessing the underlying JavaScript. In order to use JessieCode, you simply create the HTML <tag>div</tag> element as you would for any other JSXGraph interactive plot and then provide the JessieCode script, which focuses on the geometric elements.</p>\n\n                <p>Because JessieCode is provided by JSXGraph, the interactive platform is <c>jsxgraph</c>. The <tag>slate</tag>, however, uses <attr>surface</attr> with value <c>jessiecode</c>. The script can be embedded directly in your code. As usual, you would need to remember to escape the special characters. JessieCode uses <c>&lt;</c> and <c>&gt;</c> for inequalities as well as for declaring objects used to style geometric elements, and <c>&amp;&amp;</c> is the boolean AND operator. Alternatively, you can provide the file as a separate resource, providing the URL with a <attr>source</attr> attribute. Attributes defining the JSXBoard at the time it is created should be included as attributes of the <tag>slate</tag>, including <attr>boundingbox</attr>, <attr>axis</attr>, and <attr>grid</attr>.</p>\n\n                <p>For this first example, the JessieCode was included directly in the XML source as the contents of the associated slate.</p>\n\n                <figure xml:id=\"figure-quadratic-slope\">\n                    <caption>Finding the Tangent Line of a Quadratic Function</caption>\n\n                    <!-- Aspect ratio should be 20:7, the \":8\" is to avoid extra scroll bars -->\n                    <interactive xml:id=\"interactive-quadratic-tangent\" platform=\"jsxgraph\" width=\"80%\">\n                        <slate xml:id=\"quadratic-tangent-plot\"  surface=\"jessiecode\" axis=\"true\" grid=\"false\">\n                            a = slider([-4.5,4], [-1.5,4], [-2,1,2])\n                                &lt;&lt;\n                                    name:\"a\",\n                                    snapWidth:0.25,\n                                    point1: &lt;&lt; frozen: true &gt;&gt;,\n                                    point2: &lt;&lt; frozen: true &gt;&gt;\n                                &gt;&gt;;\n                            b = slider([-4.5,3.5], [-1.5,3.5], [-4,-1,4])\n                                &lt;&lt;\n                                    name:\"b\",\n                                    snapWidth:0.5,\n                                    point1: &lt;&lt; frozen: true &gt;&gt;,\n                                    point2: &lt;&lt; frozen: true &gt;&gt;\n                                &gt;&gt;;\n                            c = slider([-4.5,3], [-1.5,3], [-4,0,4])\n                                &lt;&lt;\n                                    name:\"c\",\n                                    snapWidth:0.5,\n                                    point1: &lt;&lt; frozen: true &gt;&gt;,\n                                    point2: &lt;&lt; frozen: true &gt;&gt;\n                                &gt;&gt;;\n                            fGraph = functiongraph(function(x) {\n                              return a.Value()*x^2 + b.Value()*x + c.Value();\n                            });\n                            P = glider(1,0, fGraph);\n                            Q = point(2,2)\n                                &lt;&lt; name:\"P\" &gt;&gt;;\n                            secant = line(P,Q)\n                              &lt;&lt; color: (function() {\n                                      m = (Q.Y() - P.Y())/(Q.X() - P.X());\n                                      dydx = 2*a.Value()*P.X() + b.Value();\n                                      cVal = \"red\";\n                                      if (abs(m-dydx) &lt; 0.001) {\n                                          cVal = \"blue\";\n                                      }\n                                      return cVal;\n                                  })\n                              &gt;&gt;;\n                            dydxValue = text(-4, 1.5, function() {\n                                    m = 2*a.Value()*P.X() + b.Value();\n                                    return (\"dy/dx = \" + trunc(m,3));\n                                })\n                                &lt;&lt; frozen: true &gt;&gt;;\n                            mValue = text(-4, 1, function() {\n                                  m = (Q.Y() - P.Y())/(Q.X() - P.X());\n                                  return (\"m = \" + trunc(m,3));\n                              })\n                              &lt;&lt; frozen: true &gt;&gt;;\n                        </slate>\n                        <instructions>\n                            <p>Use the sliders to set the parameters of the quadratic <m>f(x)=ax^2+bx+c</m>. Drag the point <m>A</m> on the graph and the point <m>P</m> to define a line. Try to make the line tangent at the point at <m>A</m> and observe the resulting slope of the tangent line.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>For this second example, the JessieCode was included through an associated script file, loaded by the browser.</p>\n                <figure xml:id=\"figure-nondifferentiable-oscillation\">\n                  <caption>Graph of a function that is continuous but not differentiable at <m>x=0</m> because the slope of the secant line has no limit.</caption>\n                  <interactive xml:id=\"interactive-oscillating-secant\" platform=\"jsxgraph\" width=\"90%\">\n                      <slate xml:id=\"graph-cts-not-diff-function\" surface=\"jessiecode\" source=\"code/jsxgraph/cts-not-diff-oscillate.jc\" axis=\"true\"/>\n                      <instructions>\n                          <p>Drag the point <m>B</m> to move the point on the graph and change the secant line. Notice that there is no well-defined limiting tangent line as <m>x \\to 0</m>.</p>\n                      </instructions>\n                  </interactive>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Sage Interacts</title>\n                <idx><h>Sage</h><h>interacts</h></idx>\n\n                <p>Sage, and the Sage Cell Server, support interactive demonstrations, called <term>interacts</term>.<ul>\n                    <li>The interactive elements are nearly trivial to construct.</li>\n                    <li>An interact is simply a single Python function (acted on by a decorator).</li>\n                    <li>You have the full mathematical power of Sage at your disposal, so can do some very powerful computations with high precision (or exactly).</li>\n                    <li>The interface is not as polished as what you can achieve with Javascript libraries.</li>\n                    <li>Graphics refresh with a round-trip to the server, so are not nearly as fluid as with other tools.</li>\n                </ul>  Note that each interact is insulated from the others, unlike our other employment of the Sage Cell Server.</p>\n\n                <p>This example is by Marshall Hampton, taken from the <url href=\"https://wiki.sagemath.org/interact/calculus\" visual=\"wiki.sagemath.org/interact/calculus\">Sage interact wiki</url>, specifically <url href=\"https://wiki.sagemath.org/interact/calculus#Numerical_integrals_with_the_midpoint_rule\" visual=\"wiki.sagemath.org/interact/calculus#Numerical_integrals_with_the_midpoint_rule\">Numerical integrals with the midpoint rule</url>.</p>\n\n                <p>Also notice that when viewed in dark mode, this sample respects the rendering intent. That is due to <attr>dark-mode-enabled</attr> applied to it.</p>\n\n                <!-- It would be better to xi:include this Sage code, but we don't want    -->\n                <!-- newcomers to need to use the \"-xinclude\" switch while getting started -->\n                <figure xml:id=\"figure-interactive-numerical-integral\">\n                    <caption>Numerical integrals using the midpoint rule</caption>\n\n                    <interactive dark-mode-enabled=\"yes\" xml:id=\"interactive-numerical-integral\" platform=\"sage\" width=\"100%\" aspect=\"4:5\">\n                        <shortdescription>An interactive for numerical integration</shortdescription>\n                        <description>\n                            <p>An interactive element with a slider allowing the value of <m>m</m> for the number of rectangles, the function <m>f</m>, and start and stop values for the interval of integration. There is an image showing the graph of <m>f</m> on the interval along with <m>m</m> rectangles of equal base width along the interval of integration. The height of each rectangle is determined by the value of <m>f</m> at the midpoint of the base of the rectangle. Above the image, the numerical value of the integral reported by SageMath is provided as well as the sum of the areas of the rectangles as the midpoint estimate.\n                            </p>\n                        </description>\n                        <!-- Changes: gave 3 input boxes widths -->\n                        <!-- Changes: Escaped \\ inside LaTeX -->\n                        <!-- Changes: Added figsize=5 to show -->\n                        <slate surface=\"sage\">\n                        var('x')\n                        @interact\n                        def midpoint(n = slider(1,100,1,4), f = input_box(default = \"x^2\", type = str, width=40), start = input_box(default = \"0\", type = str, width=6), end = input_box(default = \"1\", type = str,width=6)):\n                            a = N(start)\n                            b = N(end)\n                            func = sage_eval(f, locals={'x':x})\n                            dx = (b-a)/n\n                            midxs = [q*dx+dx/2 + a for q in range(n)]\n                            midys = [func(x=x_val) for x_val in midxs]\n                            rects = Graphics()\n                            for q in range(n):\n                                xm = midxs[q]\n                                ym = midys[q]\n                                rects = rects + line([[xm-dx/2,0],[xm-dx/2,ym],[xm+dx/2,ym],[xm+dx/2,0]], rgbcolor = (1,0,0)) + point((xm,ym), rgbcolor = (1,0,0))\n                            min_y = min(0, find_local_minimum(func,a,b)[0])\n                            max_y = max(0, find_local_maximum(func,a,b)[0])\n                            pretty_print(html('&lt;h3&gt;Numerical integrals with the midpoint rule&lt;/h3&gt;'))\n                            pretty_print(html('$\\\\int_{a}^{b}{f(x) dx} {\\\\approx} \\\\sum_i{f(x_i) \\\\Delta x}$'))\n                            print(\"\\n\\nSage numerical answer: \" + str(integral_numerical(func,a,b,max_points = 200)[0]))\n                            print(\"Midpoint estimated answer: \" + str(RDF(dx*sum([midys[q] for q in range(n)]))))\n                            show(plot(func,a,b) + rects, xmin = a, xmax = b, ymin = min_y, ymax = max_y,figsize=5)\n                        </slate>\n                    </interactive>\n                </figure>\n\n            </subsection>\n\n            <subsection>\n                <title>Geogebra</title>\n\n                <p>To embed a GeoGebra applet as-is from GeoGebra's Classroom Resources site (by material ID), see <xref ref=\"subsection-geogebra-server\" text=\"type-global\"/>. To design your own applet (either from scratch, or modifying something that already exists in one of those three forms) you may use one of Geogebra's <q>Apps</q> to embed the material in your document. (But note, use of the App comes with licensing restrictions.) <pretext/> will handle most of the technical details for you.</p>\n\n                <p>Do one of the following:<ol>\n                    <li>Identify a material ID from GeoGebra's Classroom Resources site. You might even make the material yourself on that site.</li>\n                    <li>Obtain a <c>.ggb</c> file from GeoGebra. You might construct something on a desktop installation of GeoGebra and save it. If you have a base64-encoded string for a GeoGebra applet, but you don't have a <c>.ggb</c> file, you can decode the string and save the result. For example, at <url href=\"https://www.opinionatedgeek.com/codecs/base64decoder\"/>.</li>\n                    <li>Obtain a base64 encoded string for a GeoGebra applet. You might first open a <c>.ggb</c> file in a desktop installation of GeoGebra, and push ctrl-shift-B (command-shift-B on a Mac) and then the string will be in your clipboard.</li>\n                    <li>None of the above, with the intention to make an applet from scratch.</li>\n                </ol></p>\n\n                <p>Then mimic the examples that follow, using GeoGebra API commands documented at <url href=\"https://wiki.geogebra.org/en/Reference:GeoGebra_Apps_API\">Geogebra API Manual</url>, but do not include the <c>ggbApplet.</c> or <c>applet.</c> used in examples to prefix the functions<mdash/>that part of the code will be provided automatically by <pretext/>.</p>\n\n                <p>There are some optional control elements that Geogebra provides, such as the presence of the toolbar and the reset button. These can be controlled by adding the following additional attributes to the <c>slate</c> and are automatically included in the initialization for the Geogebra applet.\n                    <ul>\n                        <li><p><c>toolbar=\"yes\"</c>: add the Geogebra toolbar above the material</p></li>\n                        <li><p><c>algebra-input=\"yes\"</c>: add an entry box below the material to add graphical objects using algebra formulas or Geogebra graphical commands</p></li>\n                        <li><p><c>reset-icon=\"yes\"</c>: enable the reset icon</p></li>\n                        <li><p><c>shift-drag-zoom=\"yes\"</c>: enable ability to drag and zoom the viewing context</p></li>\n                        <li><p><c>zoom-buttons=\"yes\"</c>: enable buttons that control zoom</p></li>\n                    </ul>\n                </p>\n\n                <p>Jack Green created an applet on the Classroom Resources site with ID <c>D4s2v4ft</c>, which you may view at <url href=\"https://www.geogebra.org/m/D4s2v4ft\" visual=\"www.geogebra.org/m/D4s2v4ft\"/>. Suppose you would like to use this in your project, but change something about it. We will change something trivial, making the <m>y</m>-axis ticks be separated <m>5</m> apart instead of <m>10</m> apart. We also decide we want a different aspect ratio and overall width. One gotcha: the original applet is loaded and then <pretext/> uses <attr>width</attr> and <attr>aspect</attr> attributes to resize the viewing window using the top left corner as an anchor. This does not rescale axes and that may leave you with important elements missing from the viewing window. So here we reset the viewing window to return to values that are in the original. Lastly, we disable zooming, which is not helpful for this applet. To do each of these things, we rely on the GeoGebra API manual at <url href=\"https://wiki.geogebra.org/en/Reference:GeoGebra_Apps_API\" visual=\"wiki.geogebra.org/en/Reference:GeoGebra_Apps_API\">Geogebra API Manual</url>. It is important to use one command per line.</p>\n\n                <figure>\n                    <caption>GeoGebra: modified material ID</caption>\n                    <interactive xml:id=\"geogebra-train-distance\" platform=\"geogebra\" width=\"75%\" aspect=\"2:1\">\n                        <slate xml:id=\"train-distance\" surface=\"geogebra\" material=\"D4s2v4ft\" aspect=\"2:1\">\n                            setAxisSteps(1, 1, 5, 1);\n                            setCoordSystem(-0.7, 8, -6, 56);\n                            enableShiftDragZoom(false);\n                        </slate>\n                    </interactive>\n                </figure>\n\n                <p>The same can be done with a <c>.ggb</c> file. Here we use two provided by David Rosoff, and one provided by Tevian Dray. The path to the file needs to be relative. First, David's original.</p>\n\n                <figure>\n                    <caption>GeoGebra: <c>.ggb</c> file</caption>\n                    <interactive xml:id=\"geogebra-astroid-original\" platform=\"geogebra\" width=\"100%\" aspect=\"4:3\">\n                        <slate xml:id=\"astroid-original\" surface=\"geogebra\" source=\"code/rosoff/astroid.ggb\" aspect=\"4:3\"/>\n                    </interactive>\n                </figure>\n\n                <p>Now we modify David's applet in a few ways.</p>\n\n                <figure>\n                    <caption>GeoGebra: modified from <c>.ggb</c> file</caption>\n                    <interactive xml:id=\"geogebra-astroid\" platform=\"geogebra\" width=\"100%\" aspect=\"4:3\">\n                        <slate xml:id=\"astroid\" surface=\"geogebra\" source=\"code/rosoff/astroid.ggb\" aspect=\"4:3\">\n                            setCoordSystem(-6, 10, -6, 6);\n                            setLabelVisible(\"b\", false);\n                            setLabelVisible(\"c\", false);\n                            setLabelVisible(\"d\", false);\n                            setAxisLabels(1,\"x\",\"y\",\"z\");\n                            evalCommand(\"r = Slider(1,4,0.1)\");\n                            showResetIcon(true);\n                        </slate>\n                    </interactive>\n                </figure>\n\n                <figure>\n                    <caption>GeoGebra: modified from <c>.ggb</c> file</caption>\n                    <interactive xml:id=\"geogebra-cycloid\" platform=\"geogebra\" width=\"100%\" aspect=\"2:1\">\n                        <slate xml:id=\"cycloid\" surface=\"geogebra\" source=\"code/rosoff/epi-hypocycloids-default.ggb\" aspect=\"2:1\">\n                            setCoordSystem(-15,5,-5,5);\n                            setAnimating(\"θ\", true);\n                        </slate>\n                    </interactive>\n                </figure>\n\n                <p>In this one provided by Tevian Dray, we make no modifications (except for those imposed by the scaling). You will need to zoom out a bit, and then pan over some, to see all the pieces.</p>\n\n                <figure>\n                    <caption>GeoGebra: a constructive <q>proof</q> that SAS congruence holds in Euclidean geometry (from Tevian Dray)</caption>\n                    <interactive xml:id=\"geogebra-SAS\" platform=\"geogebra\" width=\"100%\" aspect=\"1:1\">\n                        <slate xml:id=\"SAS\" surface=\"geogebra\" source=\"code/dray/SAS.ggb\" aspect=\"1:1\"/>\n                        <instructions>\n                            <p>Drag some of the points and some of the circles to change them, and watch the remainder react.</p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>You could also use a base64-encoded string of the <c>.ggb</c> file. You might come across such a string somewhere, or you might generate one by opening a <c>.ggb</c> file in a desktop installation of GeoGebra, and pushing ctrl-shift-B (command-shift-B on a Mac) to get the string in your clipboard. If you do this, you could use a <attr>base64</attr> attribute in place of the <attr>source</attr> attribute in the previous example. We don't do that here because such a string is generally over 5000 characters long and we are keeping the sample article source a bit cleaner.</p>\n\n                <p>The next example shows how you can communicate between a GeoGebra applet and a <tag>slate</tag> contained in the interactive.  The process is mediated by javascript code specified in the <attr>source</attr> attribute of the interactive.  Event listeners in the code update the HTML when the diagram changes or vice-versa.  MathJax is also notified when it needs to update math. </p>\n\n                <p>Note that this example has a <tag>slate</tag> whose <attr>surface</attr> is <c>pretext</c> <em>and</em> a <tag>slate</tag> whose <attr>surface</attr> is <c>html</c>, the latter requiring a namespace declaration.  The former produces HTML according to the <pretext/> templates, which is fairly predictable, but never guaranteed to always be identical over time.  A <pretext/> slate uses familiar syntax, produces results styled consistently, but might break in the future.  While an HTML slate is similar, the results will not be styled, but it does allow for a wider range of HTML elements (a <c>button</c> element here) and will not change over time.</p>\n\n                <p>The indefinite integral in the last row of the table is a gratuitious test that aurhors' macros from <tag>docinfo</tag> are available to MathJax.  Finally, a <pretext/> slate will only recognize <tag>p</tag>, <tag>tabular</tag>, <tag>sidebyside</tag>, and <tag>sbsgroup</tag> as children.  Make a feature request if you have a good case for more.</p>\n\n                <figure xml:id=\"figure_Interactive-3d-direction-vector\">\n                    <caption>Geogebra/<pretext/> Communications</caption>\n                    <interactive platform=\"geogebra\" aspect=\"10:8\" width=\"100%\" xml:id=\"ggb_3d-direction-vector_interactive\" source=\"code/haynes/3d-direction-vector.js\">\n                        <slate xml:id=\"ggb_3d-direction-vector_slate\" aspect=\"10:5\" surface=\"geogebra\" source=\"code/haynes/3d-direction-vector.ggb\">\n                            evalCommand(\"B2 = 3\");\n                            evalCommand(\"C2 = -1\");\n                            evalCommand(\"D2 = 2\");\n                            evalCommand(\"B3 = -1\");\n                            evalCommand(\"C3 = 4\");\n                            evalCommand(\"D3 = 1\");\n                            setValue(\"showAB\",true);\n                            setValue(\"showBA\",false);\n                            evalCommand(\"ZoomIn(-Z,-Z,-Z/2,Z,Z,Z/2)\");\n                            evalCommand(\"SetViewDirection((1,1,1/2))\");\n                            enableRightClick(false);\n                        </slate>\n\n                        <sidebyside width=\"35%\" margins=\"10%\">\n                            <slate surface=\"pretext\" label=\"ggb_2__17_table1\">\n                                <tabular halign=\"right\">\n                                    <col width=\"10%\" halign=\"center\"/>\n                                    <col width=\"10%\" halign=\"center\"/>\n                                    <col width=\"10%\" halign=\"center\"/>\n                                    <col width=\"10%\" halign=\"center\"/>\n                                    <col width=\"30%\" halign=\"right\"/>\n                                    <row bottom=\"minor\">\n                                        <cell> <m>\\ </m> </cell>\n                                        <cell> <m>x </m> </cell>\n                                        <cell> <m>y</m> </cell>\n                                        <cell> <m>z </m> </cell>\n                                        <cell/>\n                                    </row>\n                                    <row>\n                                        <cell> <m>\\mathbf{A}</m> </cell>\n                                        <cell/>\n                                        <cell/>\n                                        <cell/>\n                                        <cell/>\n                                    </row>\n                                    <row>\n                                        <cell> <m>\\mathbf{B}</m> </cell>\n                                        <cell/>\n                                        <cell/>\n                                        <cell/>\n                                        <cell/>\n                                    </row>\n                                    <row>\n                                        <cell><m>\\indefiniteintegral{x^4}{x}</m></cell>\n                                        <cell/>\n                                        <cell/>\n                                        <cell/>\n                                        <cell/>\n                                    </row>\n                                </tabular>\n                            </slate>\n                            <slate surface=\"html\">\n                                <p xmlns=\"http://www.w3.org/1999/xhtml\">\n                                    <button id=\"a_to_b\">Show A to B</button>\n                                    <button id=\"b_to_a\">Show B to A</button>\n                                </p>\n                            </slate>\n                        </sidebyside>\n\n                        <sidebyside>\n                            <p label=\"info\"/>\n                        </sidebyside>\n                        <instructions>\n                            <p>\n                                This interactive shows <m>\\vec{r}_{AB}</m>, the displacement vector from <m>\\vec{A}</m> to <m>\\vec{B}</m> and the corresponding unit displacement vector <m>\\lambda_{AB}</m>.\n                            </p>\n\n                            <p>\n                                You may change <m>\\vec{A}</m> and <m>\\vec{B}</m> by moving the red and blue dots.\n                                Click the dot to switch between <m>x</m>-<m>y</m> mode and <m>z</m> mode.\n                                Coordinates of <m>\\vec{A}</m> and <m>\\vec{B}</m> can also be entered into the table directly.\n                            </p>\n                        </instructions>\n                    </interactive>\n                </figure>\n\n                <p>Lastly, you may just wish to build something from scratch using GeoGebra API. Note that for accessibilty reasons, some objects are rendered unselectable with the <c>setFixed</c> command. Perhaps this should have been done with the previous examples, but that is more difficult when you do not know all of their names. Note that the GeoGebra scripting command <c>setAttribute</c> also changes the webpage's focus, so it is better to set the perspective using an attribute of the slate.</p>\n\n                <figure>\n                    <caption>GeoGebra: from scratch</caption>\n                    <interactive xml:id=\"geogebra-seed-head\" platform=\"geogebra\" width=\"50%\" aspect=\"1:1\">\n                        <slate xml:id=\"seed-head\" surface=\"geogebra\" aspect=\"1:1\" perspective=\"G\">\n                            setRounding(\"3s\");\n                            setCoordSystem(-1,1,-1,1);\n                            setGridVisible(false);\n                            setAxesVisible(false, false);\n                            evalCommand(\"f(x)=If(x>0,sqrt(x),0)\");\n                            setVisible(\"f\", false);\n                            evalCommand(\"T=20\");\n                            evalCommand(\"t=Slider(0,T)\");\n                            setAnimating(\"t\", true);\n                            evalCommand(\"v=Vector((cos(t),sin(t)))\");\n                            evalCommand(\"r=Slider(0,1)\");\n                            evalCommand(\"r=(sqrt(5)-1)/2\");\n                            evalCommand(\"r=Slider(0,1,0.001)\");\n                            evalCommand(\"N=Min(100,floor(T/r))\");\n                            evalCommand(\"Seeds = Sequence(f(t - n r) / sqrt(T) (cos(n r 2 pi), sin(n r 2 pi)), n, 0, N)\");\n                            setFixed(\"v\", false, false);\n                            setFixed(\"Seeds\", false, false);\n                        </slate>\n                    </interactive>\n                </figure>\n\n            </subsection>\n\n            <subsection>\n                <title>CircuitJS</title>\n\n                <p><url href=\"https://www.falstad.com/circuit/\" visual=\"www.falstad.com/circuit\">CircuitJS</url> is an electronic circuit simulator.  A circuit can be described by a language, which PreTeXt will interpret and submit for rendering.  The next two examples are identical, but provided in slightly different ways, see the <pretext/> source for more.  Preview images for PDF will be added later.</p>\n\n                <figure xml:id=\"figure-circuitjs-attribute\">\n                    <caption>CircuitJS Example (source via an encoded attribute)</caption>\n\n                    <interactive xml:id=\"interactive-circuitjs-attribute\" circuitjs=\"$ 1 0.000005 10.20027730826997 58 5 50 5e-11%0AR 464 32 464 -16 0 0 40 3.3 0 0 0.5%0Ag 464 224 464 240 0 0%0As 464 32 464 128 0 0 false%0As 464 128 464 224 0 1 false%0Ax 274 181 431 184 4 12 bottom\\sswitch\\s(to\\sground)%0Ax 312 85 426 88 4 12 top\\sswitch\\s(to\\sVdd)%0AO 464 128 544 128 1 0%0Ax 532 110 593 113 4 12 output\\spin\" width=\"90%\" aspect=\"4:3\"/>\n                </figure>\n\n                <figure xml:id=\"figure-circuitjs\">\n                    <caption>CircuitJS Example (source authored directly)</caption>\n\n                    <interactive xml:id=\"interactive-circuitjs\" circuitjs=\"\" width=\"90%\">\n                        <source>\n                            $ 1 0.000005 10.20027730826997 58 5 50 5e-11\n                            R 464 32 464 -16 0 0 40 3.3 0 0 0.5\n                            g 464 224 464 240 0 0\n                            s 464 32 464 128 0 0 false\n                            s 464 128 464 224 0 1 false\n                            x 274 181 431 184 4 12 bottom\\sswitch\\s(to\\sground)\n                            x 312 85 426 88 4 12 top\\sswitch\\s(to\\sVdd)\n                            O 464 128 544 128 1 0\n                            x 532 110 593 113 4 12 output\\spin\n                        </source>\n                    </interactive>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"interactive-iframes-local\">\n                <title>IFrames from Files</title>\n\n                <p>An <c>iframe</c> is an <init>HTML</init> element that allows embedding of a complete web page within another one.  Here we use this device to provide interactive 3D diagrams built with other tools.</p>\n\n                <p>We begin with a Jupyter notebook hosted on <url href=\"https://cocalc.com\" visual=\"CoCalc.com\"/>.  News of success on other hosts for Jupyter notebook servers will allow us to expand this description.  We use a Sage kernel and create a 3D surface suggested by Juan Carlos Bustamante:<cd>\n                    <cline>var('x,y')</cline>\n                    <cline>plot3d(x^2 - y^2, (x,-1,1), (y,-1,1), color=\"orange\", mesh=true)</cline>\n                </cd>\n                News of other computational engines that produce similar graphics will also allow us to further expand this description.  Note that for the case of Sage 3D plots, support for the <tag>sageplot</tag> element makes this even easier.  For example, see <xref ref=\"figure-sage-implicit-surface\"/>.</p>\n\n                <p>A button in the lower right allows for several options, one is <c>Save as HTML</c>, which will produce a complete self-contained web page we can recycle.  We save this file with our other externally-created images, in a directory that we choose to name <c>iframe</c><mdash/>you can use another name.  Then we make an <tag>interactive</tag> with an <attr>iframe</attr> attribute that has the filename, starting from <c>iframe/</c> (in other words, do not include the name of your managed directory of external images).</p>\n\n                <figure xml:id=\"figure-sage-jupyter-iframe\">\n                    <caption>Sage+Jupyter <c>iframe</c></caption>\n                    <interactive xml:id=\"interactive-sage-jupyter-iframe\" iframe=\"iframe/sage-jupyter.html\" width=\"95%\" aspect=\"1:1\"/>\n                </figure>\n                    <!-- preview=\"preview/threejs-splines.png\"  -->\n\n                <p>Note that the downloaded file has links to specific versions of the <c>three.js</c> library, which are beyond our control, and beyond your control.  So there is a future where these images may need updating.  You could put your source code into a (large) comment with your project's source for safe-keeping in the future.  See <xref ref=\"interactive-iframes-server\" text=\"type-global\"/> for the server version.</p>\n            </subsection>\n\n            <subsection xml:id=\"interactive-threejs\">\n                <title>threejs</title>\n\n                <p>Once upon a time there was an example here using the <c>threejs</c> 3D Javascript library.  It was <url href=\"https://threejs.org/examples/#webgl_geometry_extrude_splines\" visual=\"threejs.org/examples/#webgl_geometry_extrude_splines\">one of the project's examples</url>, licensed with an MIT License, with minimal modifications.</p>\n\n                <p>But it would seem to have become a bit more complicated to embed and our example was not rendering.  As of 2022-08-08, we have removed it.  Of course, you can find it in the git repository, perhaps searching on the date string just mentioned.  It woulld be interesting to see if our <tag>interactive</tag> framework could still support the changes.</p>\n\n                <p>The following two examples are meant to be instructive (<em>only</em>).  The end result is accomplished in a much more straightforward way be the method in <xref ref=\"interactive-iframes-local\" text=\"type-global\"/>.  We illustrate a way to get a <c>three.js</c> image out of an <init>HTML</init> page as a Javascript file and render it on a <pretext/> <tag>slate</tag>.  We follow the second method in a <url href=\"https://golem.ph.utexas.edu/category/2017/12/sagemath_and_3d_models_in_webp.html\" visual=\"golem.ph.utexas.edu/category/2017/12/sagemath_and_3d_models_in_webp.html\">blog post from the <m>n</m>-Category Cafe</url>.<ol>\n                    <li>Open a Jupyter Notebook that utilizes a Sage kernel.  This can be done easily at <url href=\"https://cocalc.com\" visual=\"cocalc.com\">CoCalc</url> (and for free initially).</li>\n\n                    <li>Sketch a surface using Sage code.  We recycle the suggestion from Juan Carlos Bustamante in <xref ref=\"interactive-iframes-local\" text=\"type-global\"/>:<cd>\n                        <cline>var('x,y')</cline>\n                        <cline>plot3d(x^2 - y^2, (x,-1,1), (y,-1,1), color=\"orange\", mesh=true)</cline>\n                    </cd></li>\n\n                    <li>Look for a button (in the lower-right) which will provide a menu option <c>Save as HTML</c>.  Save the resulting <init>HTML</init> file, and open a <em>copy</em> in a text editor.</li>\n\n                    <li>\n                        <p>You are now looking for two <init>HTML</init> <c>script</c> elements.  One will tell you just which version of <c>three.js</c> is being used, vis a <c>@src</c> attribute.  For the second example below we located<cd>\n                            <cline>https://cdn.jsdelivr.net/gh/sagemath/threejs-sage@r122/build/three.min.js</cline>\n                        </cd>The <c>@r122</c> will likely be a version number, which is a good thing for the longevity of your work.  This will get used in the <attr>source</attr> attribute of your <tag>interactive</tag>, which will have <attr>platform</attr> set to <c>javascript</c>.</p>\n\n                        <p>The second <c>script</c> element is likely huge and has many generic functions defined it.  There may be a huge variable full of data points computed by Sage.  Copy the <em>contents</em> of this <c>script</c> element into a new Javascript file (so use a <c>.js</c> extension).  Do not edit in any way until you read further.  Once adjusted, this file too gets specified in the <attr>source</attr> attribute of your <tag>interactive</tag>.</p>\n                    </li>\n\n                    <li>Your <tag>interactive</tag> needs a <tag>slate</tag> element for the graphic to draw on, and you will need to give it a proper <attr>xml:id</attr> attribute, plus teh <attr>surface</attr> will be set to <c>div</c>.  Then you need to edit the Javascript file to connect the graphic with the slate, via IDs in your <pretext/> source and on teh <init>HTML</init> <c>div</c> created by the slate.  Look at the provided examples to see how.  Do not make any other edits to this file, even if tempted.</li>\n\n                    <li>Study the two examples below, and mimic how they were constructed.</li>\n                </ol></p>\n\n                <p>First, the example given in the blog post referenced above.</p>\n\n                <figure xml:id=\"figure-threejs-catenoid-surface\">\n                    <caption><c>threejs</c> catenoid surface, from <m>n</m>-Category Cafe</caption>\n                    <interactive xml:id=\"interactive-threejs-catenoid-surface\" platform=\"javascript\" width=\"80%\" resize-behavior=\"responsive\" aspect=\"2:1\" source=\"https://cdn.rawgit.com/mrdoob/three.js/r80/build/three.min.js https://cdn.rawgit.com/mrdoob/three.js/r80/examples/js/controls/OrbitControls.js code/threejs/catenoid.js\">\n                        <slate xml:id=\"threejs-catenoid-surface\" surface=\"div\" aspect=\"2:1\"/>\n                    </interactive>\n                </figure>\n\n                <p>Second, the example from JC Bustamante.</p>\n\n                <figure xml:id=\"figure-threejs-saddle\">\n                    <caption><c>threejs</c> saddle by Sage</caption>\n                    <interactive xml:id=\"interactive-threejs-saddle\" platform=\"javascript\" resize-behavior=\"responsive\" design-width=\"1000\" aspect=\"1:1\" source=\"https://cdn.jsdelivr.net/gh/sagemath/threejs-sage@r122/build/three.min.js code/threejs/saddle.js\">\n                        <slate xml:id=\"threejs-saddle\" surface=\"div\" aspect=\"1:1\"/>\n                    </interactive>\n                </figure>\n\n            </subsection>\n\n            <subsection xml:id=\"interactive-doenetml\">\n                <title>DoenetML</title>\n\n                <p>\n                    <url href=\"https://doenet.org\">DoenetML</url> is a markup language\n                    inspired by <pretext/> for semantically describing interactive\n                    mathematics applets for the web. Use\n                    <c>interactive[@platform=\"doenetml\"]</c> with a\n                    <c>slate[@surface=\"doenetml\"]</c> to include DoenetML content\n                    within your document.\n                </p>\n                <p>\n                    Since DoenetML is similar to,\n                    but not completely compatible with, XML, it cannot be authored\n                    directly within a PreTeXt document without painstakingly escaping\n                    every <c>&lt;</c> as <c>&amp;lt;</c> and every <c>&amp;</c>\n                    as <c>&amp;amp;</c>. However, a convenient workflow to avoid this\n                    is to author your DoenetML in a separate file like\n                    <c>example.doenetml</c>, then include this file\n                    within your <pretext/> document using\n                    <c>&lt;xi:include parse=\"text\" href=\"path/to/example.doenetml\"/&gt;</c>.\n                    Altenatively, you can enclose your DoenetML in a <c>CDATA</c>, as we do below.\n                </p>\n\n                <figure xml:id=\"figure-doenetml\">\n                    <caption>DoenetML example</caption>\n                    <!-- 2024-04-25: This exact interactive appears in the sample book, for testing on Runestone. -->\n                    <!-- A @label is preferred, since it is required for use on Runestone -->\n                    <interactive label=\"interactive-doenetml-example\" platform=\"doenetml\" aspect=\"3:2\">\n                        <slate surface=\"doenetml\">\n                            <![CDATA[\n                            <p>\n                                Adjust the vectors <m>\\vec u</m>, <m>\\vec v</m>, and <m>\\vec w</m> in the left\n                                graph to visualize the areas calculated by\n                                <m>\\det[\\vec u\\hspace{0.5em}\\vec w]</m>, <m>\\det[\\vec v\\hspace{0.5em}\\vec w]</m>,\n                                and\n                                <m>\\det[\\vec u+\\vec v\\hspace{0.5em}\\vec w]</m>.\n                            </p>\n                            <setup>\n                                <line through=\"(0,0) $v\" name=\"vLine\" />\n                                <math simplify=\"true\" name=\"c\">$cv.x/$v.x</math>\n                            </setup>\n                            <sideBySide>\n                                <graph xmin=\"-4\" ymin=\"-4\" xmax=\"16\" ymax=\"16\">\n                                    <m draggable=\"false\" anchor=\"(10,14)\">\n                                        \\det[\\vec u\\hspace{0.5em}\\vec w],\n                                        \\det[\\vec v\\hspace{0.5em}\\vec w]\n                                    </m>\n                                    <point name=\"u\" styleNumber=\"3\">\n                                        (6,2)\n                                        <label><m>\\vec u</m></label>\n                                    </point>\n                                    <point name=\"w\" styleNumber=\"3\">\n                                        (3,7)\n                                        <label><m>\\vec w</m></label>\n                                    </point>\n                                    <point name=\"uPlusV\" styleNumber=\"4\">\n                                        (9,5)\n                                        <label><m>\\vec v</m></label>\n                                    </point>\n                                    <polygon\n                                        vertices=\"(0,0) $u $u+$w $w\"\n                                        filled=\"true\"\n                                        draggable=\"false\"\n                                        styleNumber=\"3\"\n                                    />\n                                    <polygon\n                                        vertices=\"$u $uPlusV $uPlusV+$w $u+$w\"\n                                        filled=\"true\"\n                                        draggable=\"false\"\n                                        styleNumber=\"4\"\n                                    />\n                                    <lineSegment endpoints=\"(0,0) $uPlusV\" styleNumber=\"6\" />\n                                    <lineSegment endpoints=\"$w $uPlusV+$w\" styleNumber=\"6\" />\n                                </graph>\n                                <graph xmin=\"-4\" ymin=\"-4\" xmax=\"16\" ymax=\"16\">\n                                    <m draggable=\"false\" anchor=\"(12,14)\">\n                                        \\det[\\vec u+\\vec v\\hspace{0.5em}\\vec w]\n                                    </m>\n                                    <polygon\n                                        vertices=\"(0,0) $uPlusV $uPlusV+$w $w\"\n                                        filled=\"true\"\n                                        draggable=\"false\"\n                                        styleNumber=\"2\"\n                                    />\n                                    <point draggable=\"false\" styleNumber=\"3\">\n                                        $w\n                                        <label><m>\\vec w</m></label>\n                                    </point>\n                                    <point draggable=\"false\" styleNumber=\"4\">\n                                        $uPlusV\n                                        <label><m>\\vec u+\\vec v</m></label>\n                                    </point>\n                                    <lineSegment endpoints=\"(0,0) $u\" styleNumber=\"6\" />\n                                    <lineSegment endpoints=\"$u $uPlusV\" styleNumber=\"6\" />\n                                    <lineSegment endpoints=\"$w $w+$u\" styleNumber=\"6\" />\n                                    <lineSegment endpoints=\"$w+$u $w+$uPlusV\" styleNumber=\"6\" />\n                                </graph>\n                            </sideBySide>\n                            ]]>\n                        </slate>\n                    </interactive>\n                </figure>\n\n            </subsection>\n        </section>\n\n        <section xml:id=\"section-interactive-server\" label=\"section-interactive-server\">\n            <title>Interactive Elements, Server &amp; Layouts</title>\n            <idx><h>interactive elements</h><h>server</h></idx>\n            <idx><h>interactive elements</h><h>layout</h></idx>\n            <idx><h>embedded interactive elements</h><h>server</h></idx>\n\n            <introduction>\n                <!-- First paragraph duplicated in previous section -->\n                <p>When outputting Web page versions, it is possible to embed a variety of dynamic interactive elements.  In a <latex/>/PDF version, these will necessarily need to be replaced by some static substitute, such as a screenshot.  See <xref ref=\"section-sage-cells\" text=\"type-global\"/> for the specifics of embedding instances of the Sage Cell Server, which is more elaborate, and not entirely similar.</p>\n\n                <p>Interactives in this section have code that lives on a server somewhere (in the <q>cloud</q>).  So maybe you uploaded an interactive demonstration, or maybe somebody else did.  In this sense, these are easier to create or use.  But pay attention, the code may come with restrictive licenses, even if you are the author originally.  See <xref ref=\"section-interactive-authored\" text=\"type-global\"/> for more interactives that can be free as in <q>freedom</q> or <foreign xml:lang=\"fr-FR\">liberté</foreign>.  CalcPlot3D is the notable exception here.</p>\n\n                <p>(2018-06-22) Almost everything in this section is under active development and not stable yet.  Feel free to experiment and make suggestions and requests.  This page takes a while to completely load, so be patient.</p>\n            </introduction>\n\n            <subsection xml:id=\"subsection-geogebra-server\">\n                <title>GeoGebra</title>\n                <idx><h>Geogebra</h><h>server</h></idx>\n                <idx><h>Geogebra</h><h>material</h></idx>\n\n                <p>A Geogebra <term>material</term> is something you might use in a class.  It could also be called an interactive demonstration.  Go browsing at <url href=\"https://www.geogebra.org/materials/\" visual=\"www.geogebra.org/materials/\"/> and find something appropriate for your project.  Or make an account and create your own.</p>\n\n                <p>Once you find a material that looks instructive, it will be at a <init>URL</init> such as<cd>https://www.geogebra.org/m/KGn2d4Qd</cd> and you want to pick off the identifier on the end, in this case <c>KGn2d4Qd</c>.  Then author<cd>&lt;interactive geogebra=\"KGn2d4Qd\" /&gt;</cd>  At this writing (2018-02-04) you will want to place this inside a <c>figure</c>, with a caption, as we do right now with material <c>KGn2d4Qd</c>.</p>\n\n                <p>The shape of the material will be fixed, so determine the dimensions (measure with an on-screen ruler or inspect the underlying definition). Use <attr>material-width</attr> and <attr>material-height</attr> with the actual material width and height (units are pixels). These are treated by Geogebra as internal coordinate dimensions and are separate from the physical layout dimensions that appear in your text. In the absence of these attributes, default values are 800 pixels for the width and a height based on the provied aspect ratio.</p>\n\n                <figure>\n                    <caption>Right Triangle Paradox</caption>\n                    <interactive xml:id=\"geogebra-right-triangle\" geogebra=\"KGn2d4Qd\" width=\"70%\" aspect=\"9:5\" reset-icon=\"yes\"/>\n                </figure>\n\n                <p>There are some optional control elements that Geogebra provides, such as the presence of the toolbar and the reset button. These can be controlled by adding the following additional attributes to the <c>interactive</c>.\n                <ul>\n                    <li><p><c>toolbar=\"yes\"</c>: add the Geogebra toolbar above the material</p></li>\n                    <li><p><c>algebra-input=\"yes\"</c>: add an entry box below the material to add graphical objects using algebra formulas or Geogebra graphical commands</p></li>\n                    <li><p><c>reset-icon=\"yes\"</c>: enable the reset icon</p></li>\n                    <li><p><c>shift-drag-zoom=\"yes\"</c>: enable ability to drag and zoom the viewing context</p></li>\n                    <li><p><c>zoom-buttons=\"yes\"</c>: enable buttons that control zoom</p></li>\n                </ul>\n                </p>\n\n                <p>Note that materials hosted at <c>geogebra.org</c> have a non-standard, non-commercial license you must agree to before you can download them as source code.  Perhaps you must forfeit your copyright when you upload a material?  We have not investigated this thoroughly.</p>\n            </subsection>\n\n            <subsection>\n                <title>Desmos Graphs</title>\n                <idx>Desmos graphs</idx>\n\n                <p><term>Desmos</term> provides interactive graphing applications.  The following example was created by Ann Cary and made available via the <q>Share</q> function of Desmos.  You can make your own Desmos graph, choose the <q>Share</q> icon, and the <q>Embed</q> option, to get a <init>URL</init> such as <cd>https://www.desmos.com/calculator/ttox1bvxku</cd>  You want to pick off the identifier on the end, in this case <c>ttox1bvxku</c>, then author<cd>&lt;interactive desmos=\"ttox1bvxku\" width=\"60%\" aspect=\"2:3\" /&gt;</cd> as we have done here.</p>\n\n                <p>The static image employed in the <latex/> version of this article was obtained by viewing the graph at the Desmos site (<ie/>, not the embedded version in the <pretext/> HTML version), and using the Share button to export a <init>PNG</init> image.  In this case, we used a <q>Medium Rectangle</q> and <q>Thick</q> lines.</p>\n\n                <figure>\n                    <caption>Graph of <m>ln(x^2+5)-3</m></caption>\n                    <interactive xml:id=\"desmos-natural-log\" desmos=\"ttox1bvxku\" width=\"60%\" aspect=\"2:3\"/>\n                </figure>\n\n                <p>Note that Desmos has extensive <pubtitle>Terms of Service</pubtitle> which include restrictions on commercial uses.</p>\n            </subsection>\n\n            <subsection>\n                <title>CalcPlot3D</title>\n                <idx>CalcPlot3D</idx>\n\n                <p>CalcPlot3D is a Javascript application for creating, visualizing, and understanding plots of 3D surfaces.  So it would be an ideal companion to a book on multivariate calculus, but should be useful in other courses of study.</p>\n\n                <p>To use it, start at the <url href=\"https://c3d.libretexts.org/CalcPlot3D/index.html\" visual=\"c3d.libretexts.org/CalcPlot3D/index.html\">online app version</url>.  Create a plot and adjust the image to a viewpoint and scale if you like.  Then, click the menu/hamburger icon in the upper-left and choose <c>File</c>.  From here you can save a <init>PNG</init> image for the static version, but you also want to select <c>Encode View in URL</c>.  Now your browser address bar is filled with a query string (<em>all</em> the stuff <em>after</em> the question-mark) that has all the information necessary to reproduce your plot (and view).  Copy everything after the first question-mark to the <c>interactive/code</c> element.  Be sure to replace any ampersands by <c>&amp;amp;</c> (see the Author's Guide for more about certain characters in <init>URL</init>s).  Examine the source for the examples below to see how they are authored.  The <pubtitle>Help Manual</pubtitle> for CalcPlot3D is also available off the menu/hamburger icon in the upper-left.</p>\n\n                <p>In <xref ref=\"figure-intersecting-planes\" text=\"type-global\"/> grab the image with your mouse and rotate it in various directions.  Then while the image has focus, press the <c>3</c> key (short for <q>3-D</q>), to get a 3D view, which will require some red-blue 3D glasses to fully appreciate.  Press the key again to return to a regular view.</p>\n\n                <p>When using a version with controls (e.g. <xref ref=\"figure-wavefunction\" text=\"type-global\"/>), or the full application (e.g. <xref ref=\"figure-calcplot3d\" text=\"type-global\"/>), specify an aspect ratio that is wider than it is tall.  Start with <c>aspect=\"3:2\"</c>, and perhaps fine-tune from there.</p>\n\n                <figure xml:id=\"figure-intersecting-planes\">\n                    <caption>Intersection of two planes (minimal embedding)</caption>\n                    <interactive xml:id=\"calcplot3d-intersection-planes\" calcplot3d=\"type=implicit;equation=2x-y+z~0;cubes=16;visible=true;xmin=-2;xmax=2;ymin=-2;ymax=2;zmin=-2;zmax=2;alpha=-1;format=constant;constcol=rgb(61,133,198)&amp;type=parametric;parametric=2;x=-(u+v)/2;y=(u-v)/2;z=v;visible=true;umin=-3;umax=3;usteps=30;vmin=-2;vmax=2;vsteps=15;alpha=193;format=constant;constcol=rgb(255,161,114)&amp;type=text;text=x%20%2B%20y%20%2B%20z%20~%200;visible=true;point=(.5,-2.5,2.1);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=14pt;bold=false;italic=false;fontmath=true;align=Upper-right&amp;type=text;text=2x%20-%20y%20%2B%20z%20~%200;visible=true;point=(2,2.2,-1.25);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=14pt;bold=false;italic=false;fontmath=true;align=Upper-right&amp;type=window;hsrmode=0;anaglyph=-1;center=7.006292692220367,5.09036960455127,4.999999999999999,1;focus=0,0,0,1;up=-0.3290568564833397,-0.23907380036690282,0.9135454576426009,1;transparent=true;alpha=140;edgeson=false;faceson=true;showbox=false;showaxes=true;showticks=true;perspective=true;centerxpercent=0.5;centerypercent=0.5;rotationsteps=30;autospin=true;xygrid=false;yzgrid=false;xzgrid=false;gridsonbox=true;gridplanes=false;gridcolor=rgb(128,128,128);xmin=-2;xmax=2;ymin=-2;ymax=2;zmin=-2;zmax=2;xscale=1;yscale=1;zscale=1;zcmin=-4;zcmax=4;zoom=0.655294;xscalefactor=1;yscalefactor=1;zscalefactor=1\" variant=\"minimal\" width=\"80%\"/>\n                </figure>\n\n                <figure xml:id=\"figure-wavefunction\">\n                    <caption>Probability wavefunction with contours (includes controls)</caption>\n                    <interactive xml:id=\"calcplot3d-probability-wavefunction\" calcplot3d=\"type=jaxlabel;position=middle;math=%255Cpsi_%257Bn_x%252Cn_y%257D(x%252Cy);textonly=false&amp;type=z;z=sin(api*x)sin(bpi*y);visible=true;umin=0;umax=1;vmin=0;vmax=1;grid=50;format=normal;alpha=200;constcol=rgb(255,0,0);view=0;contourcolor=rgb(255,0,0);contourplot=true;showcontourplot=true;firstvalue=-1;stepsize=0.2;numlevels=11;xnum=75;ynum=75;show2d=false;hidesurface=false;hidelabels=false;showprojections=false;surfacecontours=true;projectioncolor=rgba(51,153,0,1);showxygrid=false;showxygridonbox=false&amp;type=slider;slider=a;value=1;steps=2;pmin=1;pmax=3;repeat=true;bounce=true;waittime=40;careful=true;noanimate=true;name=n_x&amp;type=slider;slider=b;value=1;steps=2;pmin=1;pmax=3;repeat=true;bounce=true;waittime=40;careful=true;noanimate=true;name=n_y&amp;type=text;text=0;visible=true;point=(0,0,0);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=15pt;bold=true;italic=false;fontmath=true;align=Center-left&amp;type=text;text=L;visible=true;point=(1,-0.025,0);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=14pt;bold=true;italic=false;fontmath=true;align=Center&amp;type=text;text=L;visible=true;point=(-0.05,1,0);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=14pt;bold=true;italic=false;fontmath=true;align=Center&amp;type=text;text=x;visible=true;point=(0.5,-0.07,0);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=14pt;bold=true;italic=false;fontmath=true;align=Center&amp;type=text;text=y;visible=true;point=(-0.08,0.5,0);color=rgb(0,0,0);font=Times%20New%20Roman;fontsize=14pt;bold=true;italic=false;fontmath=true;align=Center&amp;type=window;hsrmode=3;anaglyph=-1;center=-7.447051206708178,-2.790794355991455,3.71998429905919,1;focus=0.5,0.5,0.5,1;up=0.39804763218685024,0.14521777837291014,0.9057979241281567,1;transparent=true;alpha=140;twoviews=false;unlinkviews=false;axisextension=0;xaxislabel=%20;yaxislabel=%20;zaxislabel=%20;edgeson=false;faceson=true;showbox=false;showaxes=false;showticks=false;perspective=true;centerxpercent=0.5;centerypercent=0.4;rotationsteps=30;autospin=true;xygrid=false;yzgrid=false;xzgrid=false;gridsonbox=false;gridplanes=true;gridcolor=rgb(128,128,128);xmin=0;xmax=1;ymin=0;ymax=1;zmin=0;zmax=1;xscale=1;yscale=1;zscale=1;zcmin=-4;zcmax=4;zoom=3.543529;xscalefactor=1;yscalefactor=1;zscalefactor=0.5;hidexysliders=true;hidetracevalue=true\" variant=\"controls\" width=\"95%\" aspect=\"3:2\"/>\n                </figure>\n\n                <figure xml:id=\"figure-calcplot3d\">\n                    <caption>Plot of <m>f(x,y)=\\dfrac{1}{y-x^2}</m> on <m>[-2,2]\\times[-2,2]</m> (full application)</caption>\n                    <interactive xml:id=\"calcplot3d-full-application\" calcplot3d=\"type=z;z=1/(y-x^2);visible=true;umin=-2;umax=2;vmin=-2;vmax=2;grid=30;format=normal;alpha=-1;constcol=rgb(255,0,0);contourcolor=red&amp;type=window;hsrmode=3;anaglyph=-1;center=5.529712854135209,7.349875454071844,3.9244880634856956,1;focus=0,0,0,1;up=-0.26875302682986874,-0.2884991397174344,0.9189886054528014,1;transparent=true;alpha=140;edgeson=true;faceson=true;showbox=true;showaxes=true;showticks=true;perspective=true;centerxpercent=0.5;centerypercent=0.5;rotationsteps=30;autospin=true;xygrid=false;yzgrid=false;xzgrid=false;gridsonbox=true;gridplanes=false;gridcolor=rgb(128,128,128);xmin=-2;xmax=2;ymin=-2;ymax=2;zmin=-4;zmax=4;xscale=1;yscale=1;zscale=1;zcmin=-4;zcmax=4;zoom=0.468667;xscalefactor=1;yscalefactor=1;zscalefactor=1\" variant=\"application\" width=\"95%\" aspect=\"3:2\"/>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"interactive-iframes-server\">\n                <title>IFrames from Servers</title>\n\n                <p>The <c>iFrame</c> versions of interactives can point to a network location, presuming the endpoint is reasonably well-behaved.  If you are using this sytematically, let us know and perhpas it should become a more dedicated <pretext/> construction.  See <xref ref=\"interactive-iframes-local\" text=\"type-global\"/> for the local file version.</p>\n\n                <p>This example is from <url href=\"https://phet.colorado.edu/\" visual=\"phet.colorado.edu\">PhET Interactive Simulations</url>.</p>\n\n                <figure xml:id=\"figure-phet-fourier\">\n                    <caption>Fourier: Making Waves <c>iframe</c></caption>\n                    <interactive xml:id=\"interactive-phet-fourier\" iframe=\"https://phet.colorado.edu/sims/html/fourier-making-waves/latest/fourier-making-waves_en.html\" preview=\"preview/phet-fourier-preview.png\" width=\"95%\" aspect=\"15:10\"/>\n                </figure>\n\n                <p>Anything that suggests you can <term>embed</term> an interactive widget via an iFrame is fair game for this feature.  This is a Google Map of the state of California, for use in a French language document, from Julien Giol.  The necessary <init>URL</init> is obtained by using the <q>Share</q> feature, and then the <q>Embed a map</q> option has <init>HTML</init> with the <init>URL</init> in a <attr>src</attr> attribute.</p>\n\n                <figure xml:id=\"map-california\">\n                    <caption>California.</caption>\n                    <interactive xml:id=\"interactive-map-california\" iframe=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6512739.689202133!2d-124.5931848890628!3d37.151542068971864!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x808fb9fe5f285e3d%3A0x8b5109a227086f55!2sCalifornie%2C%20%C3%89tats-Unis!5e0!3m2!1sfr!2sca!4v1682454368296!5m2!1sfr!2sca\" aspect=\"15:10\"/>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"layout-interactives\">\n                <title>Layout of Interactives</title>\n\n                <p>In HTML, interactives are rendered in iframes, which can offer some layout challenges. The PreTeXt page has no direct control over the layout within the interactive. All it does is provide a fixed sized frame in which the interactive content can display itself. The <attr>width</attr> (a percentage) and <attr>aspect</attr> (a width:height ratio like <c>2.1:1</c> OR a number like <c>1.5</c>) attributes on the interactive are the main tools to specify the dimensions. Below are three renderings of the same Google map using different widths/heights.</p>\n\n                <interactive xml:id=\"interactive-layout-map-wide\" iframe=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6512739.689202133!2d-124.5931848890628!3d37.151542068971864!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x808fb9fe5f285e3d%3A0x8b5109a227086f55!2sCalifornie%2C%20%C3%89tats-Unis!5e0!3m2!1sfr!2sca!4v1682454368296!5m2!1sfr!2sca\" aspect=\"15:10\"/>\n\n                <interactive xml:id=\"interactive-layout-map-medium\" iframe=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6512739.689202133!2d-124.5931848890628!3d37.151542068971864!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x808fb9fe5f285e3d%3A0x8b5109a227086f55!2sCalifornie%2C%20%C3%89tats-Unis!5e0!3m2!1sfr!2sca!4v1682454368296!5m2!1sfr!2sca\" aspect=\"15:10\" width=\"50%\"/>\n\n                <interactive xml:id=\"interactive-layout-map-tall\" iframe=\"https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d6512739.689202133!2d-124.5931848890628!3d37.151542068971864!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x808fb9fe5f285e3d%3A0x8b5109a227086f55!2sCalifornie%2C%20%C3%89tats-Unis!5e0!3m2!1sfr!2sca!4v1682454368296!5m2!1sfr!2sca\" aspect=\"0.5\" width=\"50%\"/>\n\n                <p>If you know a particular interactive is designed to display at a particular pixel size, you can can specify a <attr>design-width</attr> like <c>300</c> to force exactly that width. Combine that with <attr>aspect</attr> to also force the height. The example below forces a size of 300x450.</p>\n\n                <figure>\n                    <caption>Graph of <m>ln(x^2+5)-3</m></caption>\n                    <interactive xml:id=\"interactive-layout-desmos\" desmos=\"ttox1bvxku\" design-width=\"300\" aspect=\"300:450\"/>\n                </figure>\n\n                <p>What happens if there is not enough space to display the requested frame? That depends on the <attr>resize-behavior</attr> applied to the interactive. The default is <c>fixed-height</c>. In this case, the interactive's height will not change if the window becomes too small to display the full width of the interactive. Instead a horizontal scroll bar will appear. This can be seen in many of the samples in <xref ref=\"section-interactive-authored\" text=\"type-global\"/> and this CircuitJS sample:</p>\n\n                <figure>\n                    <caption>CircuitJS with <c>resize-behavior=\"fixed-height\"</c></caption>\n\n                    <interactive xml:id=\"interactive-layout-circuitjs-small\" circuitjs=\"$ 1 0.000005 10.20027730826997 58 5 50 5e-11%0AR 464 32 464 -16 0 0 40 3.3 0 0 0.5%0Ag 464 224 464 240 0 0%0As 464 32 464 128 0 0 false%0As 464 128 464 224 0 1 false%0Ax 274 181 431 184 4 12 bottom\\sswitch\\s(to\\sground)%0Ax 312 85 426 88 4 12 top\\sswitch\\s(to\\sVdd)%0AO 464 128 544 128 1 0%0Ax 532 110 593 113 4 12 output\\spin\" width=\"90%\" aspect=\"4:3\" resize-behavior=\"fixed-height\"/>\n                </figure>\n\n                <p>The other option for <attr>resize-behavior</attr> is <c>responsive</c>. In this case, the interactive's aspect ratio will be maintained. If the width gets smaller, so will the height. This can be seen in the version below.</p>\n\n                <figure>\n                    <caption>CircuitJS with <c>resize-behavior=\"responsive\"</c></caption>\n\n                    <interactive xml:id=\"interactive-layout-circuitjs-big\" circuitjs=\"$ 1 0.000005 10.20027730826997 58 5 50 5e-11%0AR 464 32 464 -16 0 0 40 3.3 0 0 0.5%0Ag 464 224 464 240 0 0%0As 464 32 464 128 0 0 false%0As 464 128 464 224 0 1 false%0Ax 274 181 431 184 4 12 bottom\\sswitch\\s(to\\sground)%0Ax 312 85 426 88 4 12 top\\sswitch\\s(to\\sVdd)%0AO 464 128 544 128 1 0%0Ax 532 110 593 113 4 12 output\\spin\" width=\"90%\" aspect=\"4:3\" resize-behavior=\"responsive\"/>\n                </figure>\n\n                <p>The best behavior will be determined by the contents of the interactive. If the interactive knows how to dynamically size itself, <c>responsive</c> is likely the better option. If the interactive assumes that there is a certain amount of space and the contents will never resize themselves, <c>fixed-height</c> will likely work better.</p>\n\n                <p>In addition to specifying the resize-behavior in a particular interactive, you can apply a document level default value in your pub file. You can also specify a different default for a specific types of interactive. See the PreTeXt guide for documentation, or the <c>publication.xml</c> file of this Sample Article for an example of configuring defaults.</p>\n\n                <p>The code that generates content needs to make sure it does not overflow the available space or you will get scroll bars. Common culprits are <tag>canvas</tag> or <tag>svg</tag> elements that are not displayed as blocks or little bits of whitespace.</p>\n\n                <p>If an interactive wants to request a change to the amount of vertical space available to it, it can pass a message to the PreTeXt page asking for a <c>lti.frameResize</c>. (It is also possible to request a different amount of horizontal space, but doing so is not guaranteed to work and is much more likely to result in breaking the overall page layout.) The simple demo below uses that process to allow for resizing. A resize request should trump the original aspect ratio.</p>\n\n                <figure>\n                    <caption>Growable interactive fixed-height</caption>\n                    <interactive xml:id=\"interactive-layout-grow-one\" platform=\"javascript\" width=\"80%\" aspect=\"2:1\" source=\"code/splice/splice-resize.js\" resize-behavior=\"fixed-height\"/>\n                </figure>\n\n                <figure>\n                    <caption>Growable interactive responsive with % width</caption>\n                    <interactive xml:id=\"interactive-layout-grow-two\" platform=\"javascript\" width=\"80%\" aspect=\"2:1\" source=\"code/splice/splice-resize.js\" resize-behavior=\"responsive\"/>\n                </figure>\n\n                <figure>\n                    <caption>Growable interactive responsive and design-width</caption>\n                    <interactive xml:id=\"interactive-layout-grow-three\" platform=\"javascript\" design-width=\"480\" aspect=\"2:1\" source=\"code/splice/splice-resize.js\" resize-behavior=\"responsive\"/>\n                </figure>\n            </subsection>\n        </section>\n\n        <section xml:id=\"section-interactive-exercises\" label=\"section-interactive-exercises\">\n            <title>Interactive Exercises</title>\n\n            <introduction>\n                <p>Interactive components, <em>just</em> for testing, no commentary.</p>\n            </introduction>\n\n            <exercises>\n                <title>True/False</title>\n\n                <introduction>\n                  <p>A True/False question.</p>\n                </introduction>\n\n                <exercise label=\"vector-space-dimension\">\n                    <title>True/False</title>\n                    <idx>vector space</idx>\n                    <statement correct=\"no\">\n                        <p>Every vector space has finite dimension.</p>\n                    </statement>\n                    <feedback>\n                        <p>The vector space of all polynomials with finite degree has a basis, <m>B = \\{1,x,x^2,x^3,\\dots\\}</m>, which is infinte.</p>\n                    </feedback>\n                    <hint>\n                        <p><m>P_n</m>, the vector space of polynomials with degree at most <m>n</m>, has dimension <m>n+1</m> by <xref ref=\"theorem-FTC\"/>.  [Cross-reference is just a demo, content is not relevant.]  What happens if we relax the defintion and remove the parameter <m>n</m>?</p>\n                    </hint>\n                </exercise>\n            </exercises>\n\n            <exercises>\n                <title>Multiple-Choice</title>\n\n                <introduction>\n                  <p>Multiple-Choice problem</p>\n                </introduction>\n\n                <exercise label=\"multiple-choice-not-randomized\">\n                    <title>Multiple-Choice, Not Randomized, One Answer</title>\n                    <idx>stop signs</idx>\n                    <statement>\n                        <p>What color is a stop sign?</p>\n                    </statement>\n                    <choices>\n                        <choice>\n                            <statement>\n                                <p>Green</p>\n                            </statement>\n                            <feedback>\n                                <p>Green means <q>go!</q>.</p>\n                            </feedback>\n                        </choice>\n                        <choice correct=\"yes\">\n                            <statement>\n                                <p>Red</p>\n                            </statement>\n                            <feedback>\n                                <p>Red is universally used for prohibited activities or serious warnings.</p>\n                            </feedback>\n                        </choice>\n                        <choice>\n                            <statement>\n                                <p>White</p>\n                            </statement>\n                            <feedback>\n                                <p>White might be hard to see.</p>\n                            </feedback>\n                        </choice>\n                    </choices>\n                    <hint>\n                        <p>What did you see last time you went driving?</p>\n                    </hint>\n                    <hint>\n                        <p>Maybe go out for a drive?</p>\n                    </hint>\n                </exercise>\n            </exercises>\n\n            <exercises>\n                <title>Parsons Problem, Math Proof</title>\n\n                <introduction>\n                  <p>With some MathJax.</p>\n                </introduction>\n\n                <exercise label=\"number-theory-proof\" adaptive=\"yes\">\n                    <title>Parsons Problem, Mathematical Proof</title>\n                    <idx>even numbers</idx>\n                    <statement>\n                        <p>Create a proof of the theorem: If <m>n</m> is an even number, then <m>n\\equiv 0\\mod 2</m>.</p>\n                    </statement>\n                    <blocks>\n                        <block order=\"2\">\n                            <p>Suppose <m>n</m> is even.</p>\n                        </block>\n                        <block order=\"3\">\n                            <choice><p>Then <m>n</m> is a prime number.</p></choice>\n                            <choice correct=\"yes\"><p>Then there exists an <m>m</m> so that <m>n = 2m</m>.</p></choice>\n                            <choice><p>Then there exists an <m>m</m> so that <m>n = 2m + 1</m>.</p></choice>\n                        </block>\n                        <block order=\"1\" correct=\"no\">\n                            <p>Click the heels of your ruby slippers together three times.</p>\n                        </block>\n                        <block order=\"5\">\n                            <p>So we have the displayed equation: <md>n = 2m + 0</md>.</p>\n                            <p>This is a superfluous second paragraph in this block.</p>\n                        </block>\n                        <block order=\"4\">\n                            <p>Thus <m>n\\equiv 0\\mod 2</m>.</p>\n                        </block>\n                    </blocks>\n                    <hint>\n                      <p>Dorothy will not be much help with this proof.</p>\n                    </hint>\n                </exercise>\n\n            </exercises>\n\n            <exercises>\n                <title>Parsons Problem, Code</title>\n\n                <introduction>\n                  <p>Programming Parsons problem, requiring indentation.</p>\n                </introduction>\n\n                <exercise label=\"prime-number-program-indent-yes\" language=\"python\" adaptive=\"yes\" indentation=\"hide\">\n                    <title>Parsons Problem, Programming</title>\n                    <idx>prime numbers</idx>\n                    <idx>Sieve of Eratosthenes</idx>\n                    <statement>\n                        <p>The Sieve of Eratosthenes computes prime numbers by starting with a finite list of the integers bigger than 1.  The first member of the list is a prime and is saved/recorded.  Then all multiples of that prime (which not a prime, excepting the prime itself!) are removed from the list.  Now the first number remaining in the list is the next prime number.  And the process repeats.</p>\n                        <p>The code blocks below can be rearranged to form one of the many possible programs to implement this algorithm to compute a list of all the primes less than <m>250</m>. [Ed. this version of this problem requires the reader to provide the necessary indentation.]</p>\n                    </statement>\n                    <blocks>\n                        <block order=\"6\">\n                            <cline>n = 250</cline>\n                        </block>\n                        <block order=\"2\">\n                            <choice correct=\"yes\">\n                                <cline>primes = []</cline>\n                                <cline>candidates = list(range(2,n))</cline>\n                            </choice>\n                            <choice>\n                                <cline>candidates = []</cline>\n                                <cline>primes = list(range(2,n))</cline>\n                            </choice>\n                        </block>\n                        <block order=\"7\" correct=\"no\">\n                            <cline>primes = candidates + [p]</cline>\n                        </block>\n                        <block order=\"8\">\n                            <cline>while candidates:</cline>\n                        </block>\n                        <block order=\"3\">\n                            <cline>    p = candidates[0]</cline>\n                            <cline>    primes.append(p)</cline>\n                        </block>\n                        <block order=\"1\">\n                            <cline>    for nonprime in range(p, n, p):</cline>\n                        </block>\n                        <block order=\"5\">\n                            <cline>        if nonprime in candidates:</cline>\n                            <cline>            candidates.remove(nonprime)</cline>\n                        </block>\n                        <block order=\"4\">\n                            <cline>print(primes)</cline>\n                        </block>\n                    </blocks>\n                </exercise>\n            </exercises>\n\n            <exercises>\n                <title>Matching</title>\n\n                <introduction>\n                  <p>Events and dates.</p>\n                </introduction>\n\n                <!-- https://www.britannica.com/list/25-decade-defining-events-in-us-history -->\n                <exercise label=\"matching-dates\">\n                    <title>Matching Problem, Dates</title>\n                    <idx>matching US dates</idx>\n                    <statement>\n                        <p>Match each event in United States history with the year it happened.</p>\n                    </statement>\n                    <feedback>\n                        <p>Review <url href=\"https://www.britannica.com/list/25-decade-defining-events-in-us-history\" visual=\"www.britannica.com/list/25-decade-defining-events-in-us-history\">Encyclopedia Brittania, 25 Decade-Defining Events in U.S. History</url>url.</p>\n                    </feedback>\n                    <cardsort>\n                        <match>\n                            <premise order=\"4\">Monroe Doctrine</premise>\n                            <response>1823</response>\n                        </match>\n                        <match>\n                            <premise order=\"3\">Haymarket Riot</premise>\n                            <response>1886</response>\n                        </match>\n                        <match>\n                            <premise order=\"1\">Louisiana Purchase</premise>\n                            <response>1803</response>\n                        </match>\n                        <match>\n                            <premise order=\"2\">Battle of Gettysburg</premise>\n                            <response>1863</response>\n                        </match>\n                    </cardsort>\n                </exercise>\n            </exercises>\n\n            <exercises>\n                <title>Clickable Area</title>\n\n                <introduction>\n                  <p>Words, not code.</p>\n                </introduction>\n\n                <exercise label=\"clickable-text\">\n                    <title>Clickable Areas, <q>Regular</q> Text</title>\n\n                    <statement>\n                        <p>Identify (by clicking, or by circling) all of the nouns in this quotation by Eleanor Roosevelt.</p>\n                    </statement>\n\n                    <areas>\n                        <p><q>The <area>future</area> belongs to <area correct=\"no\">those</area> who believe in the <area correct=\"yes\">beauty</area> of <area correct=\"no\">their</area> <area>dreams</area>.</q></p>\n                    </areas>\n\n                    <feedback>\n                        <p>The incorrect words are pronouns.</p>\n                    </feedback>\n                </exercise>\n            </exercises>\n\n            <exercises>\n                <title>Old-Style Fillin-In</title>\n\n                <introduction>\n                  <p>Do not use this as a model for new exercises.  Just for backwards-compatibility.</p>\n                </introduction>\n\n                <exercise label=\"fillin-string-integer\">\n                    <title>Fill-In, String and Number Answers</title>\n\n                    <statement>\n                        <p>Complete the following line of a Python program so that it will declare an integer variable <c>age</c> with an initial value of <c>5</c>.</p>\n                        <p><var/> <c>age = </c> <var/><c>;</c></p>\n                    </statement>\n                    <setup>\n                        <var>\n                            <condition string=\"int\">\n                                <feedback>\n                                    <p>A variable of type <c>int</c> is appropriate for whole number ages.</p>\n                                </feedback>\n                            </condition>\n                            <condition string=\".*\">\n                                <feedback>\n                                    <p>Remember that Java uses just the first three letters of the word <q>integer</q> to define an integral type.</p>\n                                </feedback>\n                            </condition>\n                        </var>\n                        <var>\n                            <condition number=\"5\">\n                                <feedback>\n                                    <p>An integer variable may be initialized to a value.</p>\n                                </feedback>\n                            </condition>\n                            <condition string=\".*\">\n                                <feedback>\n                                    <p>Use <c>5</c> as the initial value of the variable.</p>\n                                </feedback>\n                            </condition>\n                        </var>\n                    </setup>\n                </exercise>\n            </exercises>\n\n            <reading-questions>\n                <title>A Reading Question</title>\n\n                <exercise label=\"short-answer-question\">\n                    <title>Short Answer</title>\n\n                    <statement>\n                        <p>This should be built with a text-box, <em>only</em> on a capable server (Runestone).  So it can be answered</p>\n                    </statement>\n                    <response/>\n                </exercise>\n            </reading-questions>\n\n            <subsection>\n                <title>Faux Subsection</title>\n\n                <p>We used <tag>exercises</tag> divisions above, and need a <tag>subsection</tag> to feed the schema.</p>\n            </subsection>\n        </section>\n\n        <section xml:id=\"section-dynamic-exercises\">\n            <title>Dynamic Exercises</title>\n\n            <introduction>\n                <p>This section demonstrates the use of dynamic randomized exercises built upon the framework of Runestone components. These demonstration problems incorporate a library supporting mathematical expressions both for varying the content of the statement of the exercises as well as the checking of submitted answers.</p>\n            </introduction>\n\n            <exercises>\n                <title>Dynamic Fill-In</title>\n\n                <introduction>\n                  <p>The first problem illustrates revised markup for fill-in problems that don't involve randomization and use simple string and number comparison tests. Later exercises illustrate the use of dynamically generated mathematical expressions.</p>\n                </introduction>\n\n                <exercise label=\"fillin-string-integer-new\">\n                    <title>Fill-In, String and Number Answers</title>\n\n                    <statement>\n                        <p>Complete the following line of a Python program so that it will declare an integer variable <c>age</c> with an initial value of <c>5</c>.</p>\n                        <p><fillin mode=\"string\" answer=\"int\"/> <c>age = </c> <fillin mode=\"number\" answer=\"5\"/><c>;</c></p>\n                    </statement>\n                    <evaluation>\n                        <evaluate>\n                            <test>\n                                <strcmp use-answer='yes'/>\n                                <feedback>\n                                  <p>A variable of type <c>int</c> is appropriate for whole number ages.</p>\n                                </feedback>\n                            </test>\n                            <test>\n                                <strcmp>.*</strcmp>\n                                <feedback>\n                                    <p>Remember that Java uses just the first three letters of the word <q>integer</q> to define an integral type.</p>\n                                </feedback>\n                            </test>\n                        </evaluate>\n                        <evaluate>\n                            <test>\n                                <numcmp use-answer='yes'/>\n                                <feedback>\n                                    <p>An integer variable may be initialized to a value.</p>\n                                </feedback>\n                            </test>\n                            <test>\n                                <strcmp>.*</strcmp>\n                                <feedback>\n                                    <p>Use <c>5</c> as the initial value of the variable.</p>\n                                </feedback>\n                            </test>\n                        </evaluate>\n                    </evaluation>\n                </exercise>\n\n                <exercise label=\"fillin-multi-answer-jscmp\">\n                    <title>Fill-In, Multiple Strings, Custom Checker</title>\n\n                    <statement>\n                        <p>\n                            In order to apply the Integral Test to a sequence <m>\\{a_n\\}</m>,\n                            the function <m>a(n) = a_n</m> must be\n                            <fillin mode=\"string\" answer=\"continuous\"/>, <fillin mode=\"string\" answer=\"positive\"/><nbsp/>and <fillin mode=\"string\" answer=\"decreasing\"/>.\n                        </p>\n                    </statement>\n                    <evaluation>\n                        <evaluate>\n                            <test correct=\"yes\">\n                                <jscmp><![CDATA[\n                                [\"continuous\",\"positive\",\"decreasing\"].includes(ans)\n                                ]]></jscmp>\n                            </test>\n                        </evaluate>\n                        <evaluate>\n                            <test correct=\"yes\">\n                                <jscmp><![CDATA[\n                                [\"continuous\",\"positive\",\"decreasing\"].includes(ans) && !ans_array.slice(0,1).includes(ans)\n                                ]]></jscmp>\n                            </test>\n                            <test>\n                                <jscmp><![CDATA[\n                                ans_array.slice(0,1).includes(ans)\n                                ]]></jscmp>\n                                <feedback>You already gave that answer.</feedback>\n                            </test>\n                        </evaluate>\n                        <evaluate>\n                            <test correct=\"yes\">\n                                <jscmp><![CDATA[\n                                [\"continuous\",\"positive\",\"decreasing\"].includes(ans) && !ans_array.slice(0,2).includes(ans)\n                                ]]></jscmp>\n                            </test>\n                            <test>\n                                <jscmp><![CDATA[\n                                ans_array.slice(0,2).includes(ans)\n                                ]]></jscmp>\n                                <feedback>You already gave that answer.</feedback>\n                            </test>\n                        </evaluate>\n                     </evaluation>\n                </exercise>\n\n                <exercise label=\"dynamic-fitb-simple-formula\">\n                    <title>Fill-In Formula (Dynamic)</title>\n                    <statement>\n                        <p>Find a formula for a cubic function <m>f(x)</m> that has roots at <m>x=<eval obj=\"x1\"/></m>,  <m>x=<eval obj=\"x2\"/></m>, and <m>x=<eval obj=\"x3\"/></m> and so that <m>f(0)=<eval obj=\"y0\"/></m>.</p>\n                        <p><m>f(x)=</m> <fillin name=\"st_cubic\" mode=\"math\" ansobj=\"cubic\"/></p>\n                    </statement>\n                    <solution>\n                        <p>\n                            Knowing the roots of a polynomial allows us to write down the formula of <m>f(x)</m> in factored form,\n                            <md>f(x) = A <eval obj=\"base_cubic\"/></md>\n                            with an unknown scaling multiple <m>A</m>.\n                        </p>\n                        <p>\n                            When we evaluate <m>f(x)</m> at <m>x=0</m> using this formula, we find\n                            <md>f(0) = <eval obj=\"base_yint\"/>A</md>.\n                            Since we also know <m>f(0)=<eval obj=\"y0\"/></m>, we can write down the equation\n                            <md>A <eval obj=\"base_cubic\"/> = <eval obj=\"y0\"/></md>\n                            and find that <m>A=<eval obj=\"A\"/></m>.\n                        </p>\n                        <p>\n                            Consequently, we can write our function in the form\n                            <md>f(x)=<eval obj=\"cubic\"/></md>.\n                        </p>\n                    </solution>\n                    <setup seed=\"314159\">\n                        <de-object name=\"y0\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"-8\" max=\"8\" by=\"1\" nonzero=\"yes\"/>\n                        </de-object>\n                        <de-object name=\"x1\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"-8\" max=\"-4\" by=\"1\"/>\n                        </de-object>\n                        <de-object name=\"d1\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"1\" max=\"4\" by=\"1\"/>\n                        </de-object>\n                        <de-object name=\"d2\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"1\" max=\"4\" by=\"1\"/>\n                        </de-object>\n                        <de-object name=\"x2\" context=\"number\">\n                            <de-number>x1+d1</de-number>\n                        </de-object>\n                        <de-object name=\"x3\" context=\"number\">\n                            <de-number>x2+d2</de-number>\n                        </de-object>\n                        <de-object name=\"base_cubic\" context=\"formula\">\n                            <de-expression reduce=\"yes\">(x-x1)*(x-x2)*(x-x3)</de-expression>\n                        </de-object>\n                        <de-object name=\"base_yint\" context=\"number\">\n                            <de-evaluate>\n                                <formula><eval obj=\"base_cubic\"/></formula>\n                                <variable name=\"x\">0</variable>\n                            </de-evaluate>\n                        </de-object>\n                        <de-object name=\"A\" context=\"number\">\n                            <de-number reduce=\"yes\">y0/base_yint</de-number>\n                        </de-object>\n                        <de-object name=\"cubic\" context=\"formula\">\n                            <de-expression reduce=\"yes\">A*(x-x1)*(x-x2)*(x-x3)</de-expression>\n                        </de-object>\n                    </setup>\n                    <evaluation>\n                        <evaluate name=\"st_cubic\">\n                            <test correct=\"yes\">\n                                <mathcmp obj=\"cubic\"/>\n                            </test>\n                        </evaluate>\n                    </evaluation>\n                </exercise>\n                <exercise label=\"function-decomposition\">\n                    <title>Decompose the Function</title>\n                    <statement>\n                        <p>\n                        Consider the function <md>h(x)=<eval obj=\"composition\"/></md>.\n                        Find two nontrivial functions <m>f(x)</m> and <m>g(x)</m> so that <m>h(x) = f(g(x))</m>.\n                        </p>\n                        <p>\n                        <m>f(x) = </m> <fillin width=\"15\" mode=\"math\" ansobj=\"outerFormula\" name=\"fGiven\"/>\n                        and <m>g(x)=</m> <fillin width=\"15\" mode=\"math\" ansobj=\"innerFormula\" name=\"gGiven\"/>\n                        </p>\n                    </statement>\n                    <solution>\n                        <p>\n                        Noticing that the expression <m><eval obj=\"innerFormula\"/></m> appears inside parentheses with a power,\n                        it makes sense to think of that as the inner function, defining <m>g(x) = <eval obj=\"innerFormula\"/></m>.\n                        The outer function describes what happens to that.\n                        If we imagined replacing the formula <m><eval obj=\"innerFormula\"/></m> with a box and then call that box our variable <m>x</m>, we find the outer function is given by <m>f(x) = <eval obj=\"outerFormula\"/></m>.\n                        </p>\n                        <p>\n                        This is not the only non-trivial composition. Can you find others?\n                        </p>\n                    </solution>\n                    <setup seed=\"4321\">\n                        <de-object name=\"a\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"-4\" max=\"5\" by=\"1\" nonzero=\"yes\"/>\n                        </de-object>\n                        <de-object name=\"n\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"2\" max=\"5\"/>\n                        </de-object>\n                        <de-object name=\"b\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"-10\" max=\"10\" by=\"1\" nonzero=\"yes\"/>\n                        </de-object>\n                        <de-object name=\"c\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"-4\" max=\"5\" by=\"1\" nonzero=\"yes\"/>\n                        </de-object>\n                        <de-object name=\"d\" context=\"number\">\n                            <de-random distribution=\"discrete\" min=\"-10\" max=\"10\" by=\"1\" nonzero=\"yes\"/>\n                        </de-object>\n                        <de-object name=\"outerFormula\" context=\"formula\">\n                            <de-expression>a*x^n+b</de-expression>\n                        </de-object>\n                        <de-object name=\"innerFormula\" context=\"formula\">\n                            <de-expression>c*x+d</de-expression>\n                        </de-object>\n                        <de-object name=\"identityFunction\" context=\"formula\">\n                            <de-expression>x</de-expression>\n                        </de-object>\n                        <de-object name=\"composition\" context=\"formula\">\n                            <de-expression mode=\"substitution\" reduce=\"yes\">\n                                <formula><eval obj=\"outerFormula\"/></formula>\n                                <variable name=\"x\"><eval obj=\"innerFormula\"/></variable>\n                            </de-expression>\n                        </de-object>\n                    </setup>\n                    <evaluation answers-coupled=\"yes\">\n                        <evaluate name=\"fGiven\">\n                            <test>\n                                <mathcmp obj=\"identityFunction\"/>\n                                <feedback><p><m>f(x)=x</m> is not allowed for nontrivial compositions.</p></feedback>\n                            </test>\n                            <test>\n                                <logic op=\"and\">\n                                    <logic op=\"not\">\n                                        <mathcmp>\n                                            <eval obj=\"composition\"/>\n                                            <de-expression context=\"formula\" mode=\"substitution\">\n                                                <formula><eval obj=\"fGiven\"/></formula>\n                                                <variable name=\"x\"><eval obj=\"gGiven\"/></variable>\n                                            </de-expression>\n                                        </mathcmp>\n                                    </logic>\n                                    <mathcmp>\n                                        <eval obj=\"composition\"/>\n                                        <de-expression context=\"formula\" mode=\"substitution\">\n                                            <formula><eval obj=\"gGiven\"/></formula>\n                                            <variable name=\"x\"><eval obj=\"fGiven\"/></variable>\n                                        </de-expression>\n                                    </mathcmp>\n                                </logic>\n                                <feedback><p>You have composed in the wrong order.</p></feedback>\n                            </test>\n                        </evaluate>\n                        <evaluate name=\"gGiven\">\n                            <test>\n                                <mathcmp obj=\"identityFunction\"/>\n                                <feedback><p><m>g(x)=x</m> is not allowed for nontrivial compositions.</p></feedback>\n                            </test>\n                        </evaluate>\n                        <evaluate all=\"yes\">\n                            <test correct=\"yes\">\n                                <logic op=\"and\">\n                                    <mathcmp>\n                                        <eval obj=\"composition\"/>\n                                        <de-expression context=\"formula\" mode=\"substitution\">\n                                            <formula><eval obj=\"fGiven\"/></formula>\n                                            <variable name=\"x\"><eval obj=\"gGiven\"/></variable>\n                                        </de-expression>\n                                    </mathcmp>\n                                    <logic op=\"not\">\n                                        <mathcmp>\n                                            <eval obj=\"fGiven\"/>\n                                            <eval obj=\"identityFunction\"/>\n                                        </mathcmp>\n                                    </logic>\n                                    <logic op=\"not\">\n                                        <mathcmp>\n                                            <eval obj=\"gGiven\"/>\n                                            <eval obj=\"identityFunction\"/>\n                                        </mathcmp>\n                                    </logic>\n                                </logic>\n                            </test>\n                        </evaluate>\n                    </evaluation>\n                </exercise>\n            </exercises>\n        </section>\n\n        <section xml:id=\"section-interactive-code\">\n            <title>Interactive Coding</title>\n\n            <introduction>\n                <p>More interactive components, just for testing, no commentary.</p>\n            </introduction>\n\n            <exercises>\n                <title>ActiveCode</title>\n\n                <introduction>\n                  <p>ActiveCode, Python program.</p>\n                </introduction>\n\n                <listing xml:id=\"program-activecode-python\">\n                    <title>An interactive Python program, using <pubtitle>Runestone</pubtitle></title>\n                    <program xml:id=\"python-hello-world\" label=\"python-hello-world\" interactive='activecode' language=\"python\">\n                        <code>\n                        print(\"Hello, World!\")\n                        </code>\n                    </program>\n                </listing>\n\n                <listing xml:id=\"program-activecode-python-no-codelens\">\n                    <title>An interactive Python program without codelens.</title>\n                    <program xml:id=\"python-hello-world-no-codelens\" label=\"python-hello-world-no-codelens\" interactive='activecode' language=\"python\" codelens=\"no\">\n                        <code>\n                        print(\"Hello, World!\")\n                        </code>\n                    </program>\n                </listing>\n            </exercises>\n\n            <exercises>\n                <title>CodeLens</title>\n\n                <introduction>\n                  <p>A steppable Python program.</p>\n                </introduction>\n\n                <listing xml:id=\"program-codelens-python\">\n                    <title>A Python program, stepable with CodeLens</title>\n                    <program xml:id=\"python-hello-world-code-lens\" label=\"python-hello-world-code-lens\" interactive=\"codelens\" language=\"python\">\n                        <code>\n                        print('Hello, World!')\n                        </code>\n                    </program>\n                </listing>\n            </exercises>\n\n            <exercises>\n                <title>Activity with An ActiveCode</title>\n\n                <introduction>\n                  <p>Something to do with ActiveCode program.</p>\n                </introduction>\n\n                <activity xml:id=\"coding-exercise-partial-two\" label=\"coding-exercise-partial-two\">\n                    <title>Activity Coding Exercise</title>\n\n                    <statement>\n                        <p>Similar to above, but now as a complete Python program inside an <tag>activity</tag>.  This demonstrates the possibility to use any <q>project-like</q> block (<tag>project</tag>, <tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag>), but not in the case when structured with <tag>task</tag>.</p>\n                    </statement>\n                    <program label=\"partial-program-two\" interactive=\"activecode\" language=\"python\">\n                        <code>\n                        for i in range(10):\n                            print(i)\n                        </code>\n                    </program>\n                    <answer><p>We're still not really sure.</p></answer>\n                </activity>\n            </exercises>\n\n            <subsection>\n                <title>YouTube</title>\n\n                <p>Video, observable on a Runestone server.</p>\n\n                <video xml:id=\"yt-list-vars\" youtube=\"X1-UNHUajfk\" width=\"60%\" margins=\"5% 35%\" preview=\"yt-list-variables.png\"/>\n            </subsection>\n        </section>\n\n        <section xml:id=\"section-audio\" label=\"section-audio\">\n            <title>Audio</title>\n\n            <p>2019-05-24: this is preliminary, and mostly based on the code for <tag>video</tag> so read the next section and mimic the style from there.  But use an <tag>audio</tag> element and have the <attr>source</attr> attribute point to an OGG, MP3, or WAV file.  Plus, an <attr>aspect</attr> attribute will be ignored.</p>\n\n            <p>We have not entirely decided how to handle the static version present in a PDF.</p>\n\n            <p>First in a <tag>figure</tag>, so it can be cross-referenced.</p>\n\n            <figure>\n                <caption>MP3 Piano Trill (<c>www.kozco.com/tech/soundtests.html</c>)</caption>\n                <audio xml:id=\"audio-piano-trill\" href=\"http://www.kozco.com/tech/piano2-CoolEdit.mp3\" width=\"80%\"/>\n            </figure>\n\n            <p>Now, naked, between a couple of paragraphs, with specified asymmetric margins, and a computed width.</p>\n\n            <audio xml:id=\"audio-piano-trill-two\" href=\"http://www.kozco.com/tech/piano2-CoolEdit.mp3\" margins=\"30% 15%\"/>\n\n            <p>Now in a <tag>sidebyside</tag> with an <q>Organ Finale</q> WAV file on the left, and on the right, Bach in OGG format at a very low bit rate (32 kps).  From <url href=\"http://www.music.helsinki.fi/tmt/opetus/uusmedia/esim/index-e.html\" visual=\"www.music.helsinki.fi/tmt/opetus/uusmedia/esim/index-e.html\"/>.</p>\n\n            <sidebyside>\n                <audio xml:id=\"audio-organ-finale\" href=\"https://www.kozco.com/tech/organfinale.wav\" width=\"30%\"/>\n                <audio xml:id=\"audio-bach\" href=\"http://www.music.helsinki.fi/tmt/opetus/uusmedia/esim/a2002011001-e02-32k.ogg\" width=\"60%\"/>\n            </sidebyside>\n        </section>\n\n        <section xml:id=\"section-video\" label=\"section-video\">\n            <title>Video</title>\n\n            <introduction>\n                <p>First, a gratuitous reference to Exercise<nbsp/><xref ref=\"exercises-cosine-derivative\"/> about the derivative of a cosine.</p>\n\n                <p>You can specify a video by a filename if you host it as part of your document, or a <init>URL</init> giving a location on the Internet.  There are a few extra features for YouTube and Vimeo videos, which are near the bottom of this page, so look there first if that meets your needs.</p>\n            </introduction>\n\n            <subsection>\n                <title>Video Files</title>\n\n                <p>Embedded videos can make sense for a web version of your document. This is a video promoting the University of Puget Sound to potential new students, in WebM format.  Support is limited to HTML5-capable browsers.  The file format can be MP4, Ogg, or WebM, though this may vary depending upon the browser.  Use a <tag>video</tag> element, within either a <tag>figure</tag> (numbered, captioned) or a <tag>sidebyside</tag> for more precise control.   The <attr>source</attr> attribute in this first example <em>does not</em> include an extension, and so three possibilities above will be searched for preferentially (you need only provide the video in one format, but providing additional versions will increase the chances every browser will find a compatible format).</p>\n\n                <figure>\n                    <caption>University of Puget Sound Promotional Video</caption>\n                    <video label=\"ups-promo-frame-one\" source=\"video/ups-visitor-guide-360\" width=\"80%\" preview=\"preview/ups-promo-frame-one.jpg\"/>\n                </figure>\n\n                <p>You can replace the <q>preview</q> image of a video with one of your own making.  <init>HTML</init> refers to this as the <term>poster</term>, presumably because it advertises the video.  The image you make should be of the same quality as the video, and with the same aspect-ratio, and is presumably one of the frames of the video.  So a screenshot is the likely avenue.  (Maybe we will have advice on how to do this easily, or see <url href=\"https://github.com/PreTeXtBook/pretext/issues/853\" visual=\"github.com/PreTeXtBook/pretext/issues/853\">Issue #853</url>.)\n                <idx><h>link</h><h>external, url</h></idx>\n                <idx><h>reference</h><h>external, url</h></idx>\n                On the <tag>video</tag> tag, include a <attr>preview</attr> attribute which is the name of an image file, including a relative path.  (JPEG or PNG formats are best.  JPEG may be smaller for video screenshots, while PNG is lossless and so may work better for diagrams.)  The next video has a preview/poster that is a fram part way into the introduction.</p>\n\n                <figure>\n                    <caption>University of Puget Sound Promotional Video</caption>\n                    <video label=\"ups-promo-preview\" source=\"video/ups-visitor-guide-360\" width=\"80%\" preview=\"preview/ups-promo-preview.jpg\"/>\n                </figure>\n\n                <p>If you find the posters provided automatically for a video to be distracting or objectionable, you can cover them up by requesting a generic poster with the attribute-value pair: <c>preview = \"generic\"</c>.</p>\n\n                <figure>\n                    <caption>University of Puget Sound Promotional Video</caption>\n                    <video label=\"ups-promo-generic\" source=\"video/ups-visitor-guide-360\" width=\"80%\" preview=\"generic\"/>\n                </figure>\n\n                <p>You can use a very similar construction to point to a video hosted somewhere on the Internet, just use a complete <init>URL</init> for the <tag>source</tag> attribute.  Note that if the URL has a query string (parameters following a question-mark), then any ampersands (&amp;) will need to be escaped, so as to not confuse the <init>XML</init> processor (<ie/> use <c>&amp;amp</c>).  Also, the question-mark character needs to <em>not</em> be <init>URL</init>-encoded (<c>%3F</c>), so presumably edit the <init>URL</init> to be the character.  Here are several examples, the second one uses the <attr>start</attr> and <attr>stop</attr> attributes to limit the video to just the time between the 16-second and 30-second locations, and has asymmetric margins.</p>\n\n                <!-- http://camendesign.com/code/video_for_everybody/test.html -->\n\n                <figure>\n                    <caption>Big Buck Bunny from  <url href=\"http://camendesign.com/code/video_for_everybody/test.htm\" visual=\"camendesign.com/code/video_for_everybody/test.htm\"><q>Video for Everybody</q> Test Page</url></caption>\n                    <video label=\"big-buck-bunny-frame-one\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm\" width=\"70%\" preview=\"preview/big-buck-bunny-frame-one.jpg\"/>\n                </figure>\n\n                <figure>\n                    <caption>Big Buck Bunny, Controlled Start/End, Asymmetric Margins</caption>\n                    <video label=\"big-buck-bunny-margins\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm\" start=\"16\" end=\"30\" margins=\"25% 5%\" width=\"70%\" preview=\"preview/big-buck-bunny-frame-one.jpg\"/>\n                </figure>\n\n                <figure>\n                    <caption>Big Buck Bunny, Ogg container, <c>*.ogv</c> extension</caption>\n                    <video label=\"big-buck-bunny-ogg\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv\" width=\"60%\" preview=\"preview/big-buck-bunny-frame-one.jpg\"/>\n                </figure>\n\n                <figure>\n                    <caption>Big Buck Bunny, MP4 format</caption>\n                    <video label=\"big-buck-bunny-mp4\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4\" width=\"50%\" preview=\"preview/big-buck-bunny-frame-one.jpg\"/>\n                </figure>\n\n                <figure>\n                    <caption>Big Buck Bunny, WebM format</caption>\n                    <video label=\"big-buck-bunny-webm\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm\" width=\"40%\" preview=\"preview/big-buck-bunny-frame-one.jpg\"/>\n                </figure>\n\n                <figure>\n                    <caption>Big Buck Bunny, Automatic best format (temporarily broken)</caption>\n                    <video label=\"big-buck-bunny-best-format\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny\" width=\"30%\" preview=\"preview/big-buck-bunny-frame-one.jpg\"/>\n                </figure>\n\n                <!-- A Coursera URL that expires via digital signature scheme:\n                https://d18ky98rnyall9.cloudfront.net/u5_p4_1_%20chisq_gof.77c96ac0ad8211e498e5e34296ce5455/full/360p/index.webm?Expires=1522800000&Signature=DJKrmAOfuGF4HMmWmQ2nCHnOdoeFzZd7qJzp1cfwOjQa-J~1kGNzwllMxFmGi8UXxt3wTXrhdhTQVcFQNk5nPzAi64mjJkMVu0m~QyKISqzjkFBZJm1NCnkNcbSyOk6WRDj6mjlrxEDaUSD6hHmD04ehumORG3G55Sp5OGEhYnU_&Key-Pair-Id=APKAJLTNE6QMUY6HBC5A -->\n\n                <p>Videos are assumed to have a 16:9 aspect ratio (width:height).  If this is not the case, then you must specify the aspect ratio with either a ratio (e.g. 4:3) or as a number expressing the fraction width/height (e.g. 1.3333).  Four decimal places should suffice for the latter.  Note that you cannot <em>change</em> the aspect ratio, and you <em>must</em> supply the aspect ratio for any video that does not have the default ratio.  This is a technical requirement that allows us to smoothly scale the videos on small devices (try this page on your mobile phone!).</p>\n            </subsection>\n\n            <subsection>\n                <title>YouTube</title>\n\n                <p>YouTube<idx><h>YouTube videos</h></idx><idx><h>videos</h><h>YouTube</h></idx> videos may be embedded with only knowledge of a video's <q>ID</q> or a <q>playlist ID</q>.  A single video's YouTube ID is a string of eleven seemingly random characters that show up in the URL when you watch a video.  For the Led Zeppelin performance below, the ID is <c>hAzdgU_kpGo</c>, which you might normally watch directly from the URL <url href=\"https://www.youtube.com/watch?v=hAzdgU_kpGo\"  visual=\"www.youtube.com/watch?v=hAzdgU_kpGo\"/>.  As described just above, you need to specify a different aspect ratio if the video does not have a 16:9 aspect ratio.</p>\n\n                <p>Note: some of these videos may not play if viewed locally, and maybe not even if you start up a local web server (such as can be easily done with Python).  So if you are testing new features, be careful about assuming videos from cloud services are not working properly.</p>\n\n                <p>If you have ever owned a drone, you sympathize with this guy.  Way funnier than a cat video.</p>\n\n                <figure>\n                    <title>My first day with my drone</title>\n                    <caption>First Drone Flight (1:28)</caption>\n                    <video xml:id=\"drone-flight-full\" youtube=\"VsHMjWORFvI\"/>\n                </figure>\n\n                <p>If you are only interested in a piece of the action, you can limit the video with <c>start</c> and <c>end</c> attributes in seconds.  You might make those times clear in the caption for readers getting the link out of a PDF.  Some videos may not respect these parameters.</p>\n\n                <figure>\n                    <title>My first day with my drone (Splashdown)</title>\n                    <caption>First Drone Flight (Splashdown, 0:54 to 1:12)</caption>\n                    <video xml:id=\"drone-flight-clip\" youtube=\"VsHMjWORFvI\" width=\"50%\" start=\"54\" end=\"72\"/>\n                </figure>\n\n                <p>This next video comes with a default poster from YouTube featuring Robert Plant.  We've replaced it with a poster featuring Jimmy Page.</p>\n\n                <figure>\n                    <title>Kashmir (Live), Led Zeppelin</title>\n                    <caption>Kashmir (Live), Led Zeppelin. O2 Arena, London. December 10, 2007. (8:55)</caption>\n                    <idx><h>Led Zeppelin video</h></idx>\n\n                    <video xml:id=\"led-zeppelin-kashmir\" youtube=\"hAzdgU_kpGo\" width=\"70%\" preview=\"preview/jimmy-page.jpg\"/>\n                </figure>\n\n                <p>And if you don't want to be reminded of Plant, Page, Bonham, or Jones, you can cover them up entirely.</p>\n\n                <figure>\n                    <title>Kashmir (Live), Led Zeppelin</title>\n                    <caption>Kashmir (Live), Led Zeppelin. O2 Arena, London. December 10, 2007. (8:55)</caption>\n                    <idx><h>Led Zeppelin video</h></idx>\n\n                    <video xml:id=\"led-zeppelin-kashmir-generic\" youtube=\"hAzdgU_kpGo\" width=\"50%\" preview=\"generic\"/>\n                </figure>\n\n                <p>Videos were first designed mostly on the assumption that they are wrapped in a <c>figure</c> with a <c>title</c> (which is distinct from a <c>caption</c>).  But you can just place a video <q>naked</q> inbetween a couple of paragraphs.  This is nice if you don't want the clutter of numbers, and/or if you plan to exclude videos from some edition of your document.</p>\n\n                <video xml:id=\"led-zeppelin-kashmir-solo\" youtube=\"hAzdgU_kpGo\" width=\"50%\" preview=\"preview/jimmy-page.jpg\"/>\n\n                <p>We can pack two videos side-by-side, with a lot of horizontal control, using two panels in the <c>sidebyside</c> element.  We have simply chosen here to not provide a caption (overall, or separately) as an illustration.  The sizes are purposely a bit odd.  See <xref ref=\"section-side-by-side\" text=\"type-global\"/> for much more on side-by-side panels.  These videos come from the <q>Topic</q> and <q>VEVO</q> areas of YouTube (respectively) and both have start/end times.</p>\n\n                <sidebyside margins=\"auto\" widths=\"20% 40%\" valign=\"middle\">\n                    <!-- Liza Minelli -->\n                    <video xml:id=\"minelli-newyork-newyork\" youtube=\"5-pyc_z7WbY\" start=\"16\" end=\"35\"/>\n                    <!-- Sara Bareilles -->\n                    <video xml:id=\"bareilles-love-song\" youtube=\"qi7Yh16dA0w\" start=\"60\" end=\"120\"/>\n                </sidebyside>\n\n                <p>These next two videos are evenly spaced, one from YouTube, one from a source file hosted by the author.  Now with separate captions, but identical margins (through very different choices of layout parameters than in the preceding pair of videos).</p>\n\n                <sidebyside margins=\"10%\" widths=\"35% 35%\">\n                    <!-- drone flight again-->\n                    <figure>\n                        <caption>Drone Flight</caption>\n                        <video xml:id=\"drone-flight-sbs\" youtube=\"VsHMjWORFvI\"/>\n                    </figure>\n                    <!-- UPS promo -->\n                    <figure>\n                        <caption>UPS Promo</caption>\n                        <video xml:id=\"ups-promo-sbs\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-frame-one.jpg\"/>\n                    </figure>\n                </sidebyside>\n\n                <p>A YouTube <q>playlist</q> can be built in one of two ways. You may specify the <c>youtube</c> attribute to be a space-separated list of several video IDs. Alternatively, you may set the <c>youtubeplaylist</c> attribute to a YouTube playlist ID.</p>\n\n                <sidebyside margins=\"0%\" widths=\"47% 47%\">\n                    <figure>\n                        <caption>Individual IDs specified in an <q>itemized</q> playlist</caption>\n                        <video xml:id=\"zeppelin-playlist\" youtube=\"6tlSx0jkuLM FeJkDewhTEw\"/>\n                        <!-- https://www.youtube.com/embed?playlist=6tlSx0jkuLM,FeJkDewhTEw -->\n                    </figure>\n                    <figure>\n                        <caption>YouTube playlist ID specified in a <q>named</q> playlist</caption>\n                        <video label=\"zeppelin-playlist-named\" youtubeplaylist=\"PLGRecdYLYDNdX5NEkS3KH-ZtCqc2f8lJ_\"/>\n                        <!-- https://www.youtube.com/embed?listType=playlist&list=PLGRecdYLYDNdX5NEkS3KH-ZtCqc2f8lJ_ -->\n                    </figure>\n                </sidebyside>\n\n                <p>We test three equally-wide YouTube videos in a <tag>sidebyside</tag> with a few variations.</p>\n\n                <sidebyside margins=\"0%\" width=\"30%\">\n                    <figure>\n                        <caption>Medium Length</caption>\n                        <video xml:id=\"pre-roll-countdown-1\" youtube=\"Srmdij0CU1U\"/>\n                    </figure>\n                    <figure>\n                        <caption>Short</caption>\n                        <video xml:id=\"pre-roll-countdown-2\" youtube=\"Srmdij0CU1U\" start=\"2\" end=\"4\"/>\n                    </figure>\n                    <figure>\n                        <caption>A Really Long Caption That Will Wrap onto a New Line</caption>\n                        <video xml:id=\"pre-roll-countdown-3\" youtube=\"Srmdij0CU1U\"/>\n                    </figure>\n                </sidebyside>\n\n                <p>We test three equally-wide YouTube videos in a <tag>sidebyside</tag> with a few variations, and now contained in a <tag>figure</tag>.</p>\n\n                <figure>\n                    <caption>Author-Hosted videos as Sub-Figures</caption>\n                    <sidebyside margins=\"0%\" width=\"30%\">\n                        <figure>\n                            <caption>Medium Length</caption>\n                            <video xml:id=\"pre-roll-countdown-4\" youtube=\"Srmdij0CU1U\"/>\n                        </figure>\n                        <figure>\n                            <caption>Short</caption>\n                            <video xml:id=\"pre-roll-countdown-5\" youtube=\"Srmdij0CU1U\" start=\"2\" end=\"4\"/>\n                        </figure>\n                        <figure>\n                            <caption>A Really Long Caption That Will Wrap onto a New Line</caption>\n                            <video xml:id=\"pre-roll-countdown-6\" youtube=\"Srmdij0CU1U\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n\n                <p>We test three equally-wide author-hosted videos in a <tag>sidebyside</tag> with a few variations.</p>\n\n                <sidebyside margins=\"0%\" width=\"30%\">\n                    <figure>\n                        <caption>Medium Length</caption>\n                        <video xml:id=\"ups-promo-1\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                    </figure>\n                    <figure>\n                        <caption>Short</caption>\n                        <video xml:id=\"ups-promo-2\" source=\"video/ups-visitor-guide-360\" start=\"4\" end=\"10\" preview=\"preview/ups-promo-preview.jpg\"/>\n                    </figure>\n                    <figure>\n                        <caption>A Really Long Caption That Will Wrap onto a New Line</caption>\n                        <video xml:id=\"ups-promo-3\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                    </figure>\n                </sidebyside>\n\n                <p>We test three equally-wide author-hosted videos in a <tag>sidebyside</tag> with a few variations, and now contained in a <tag>figure</tag>.</p>\n\n                <figure>\n                    <caption>YouTube videos as Sub-Figures</caption>\n                    <sidebyside margins=\"0%\" width=\"30%\">\n                        <figure>\n                            <caption>Medium Length</caption>\n                            <video xml:id=\"ups-promo-4\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                        </figure>\n                        <figure>\n                            <caption>Short</caption>\n                            <video xml:id=\"ups-promo-5\" source=\"video/ups-visitor-guide-360\" start=\"4\" end=\"10\" preview=\"preview/ups-promo-preview.jpg\"/>\n                        </figure>\n                        <figure>\n                            <caption>A Really Long Caption That Will Wrap onto a New Line</caption>\n                            <video xml:id=\"ups-promo-6\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Vimeo</title>\n\n                <p>We support videos from <url href=\"https://vimeo.com/\" visual=\"vimeo.com\">Vimeo</url> in much the same way as YouTube videos.  Now the identifier is a long integer.  For example, the video up next would normally be found at <c>https://vimeo.com/27246366</c>.  But instead, you can embed the video with as little as <c>&lt;video vimeo=\"27246366\"/&gt;</c>.  As of 2019-05-18, we intend to support as many of the options described above as possible.  Widths and heights (via the aspect ratio) will perform as expected.  We have not investigated start and end times.</p>\n\n                <figure>\n                    <caption><articletitle>MOVE</articletitle>, by <url href=\"https://vimeo.com/rickmereki\" visual=\"vimeo.com/rickmereki\">Rick Mereki</url>, <c>vimeo.com/rickmereki</c></caption>\n                    <video xml:id=\"vimeo-move\" vimeo=\"27246366\" width=\"80%\" preview=\"preview/vimeo-move.jpg\"/>\n                </figure>\n\n                <p>Now with an author-supplied poster.</p>\n                <figure>\n                    <caption><articletitle>MOVE</articletitle>, by <url href=\"https://vimeo.com/rickmereki\" visual=\"vimeo.com/rickmereki\">Rick Mereki</url>, <c>vimeo.com/rickmereki</c></caption>\n                    <!-- NB: we intentionally do not put an xml:id or label attribute on  -->\n                    <!-- this video to test its default filename, which was once \"video-35\" -->\n                    <video vimeo=\"27246366\" width=\"80%\" preview=\"preview/move.png\"/>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Captions and Subtitles</title>\n\n                <p>Experimental support for captions and subtitles first.  Look at the source, which mimics the actual HTML.  The words of the titles and/or subcaptions (there is a difference!) come from a file in <url href=\"https://en.wikipedia.org/wiki/WebVTT\" visual=\"wikipedia.org/wiki/WebVTT\">Web Video Text Tracks</url> (<init>WEBVVT</init>) format.</p>\n                <figure>\n                    <caption>Big Buck Bunny with subtitles adapted from <url href=\"https://sites.google.com/site/chrisfoo/subtitles\" visual=\"https://sites.google.com/site/chrisfoo/subtitles\"/></caption>\n                    <video label=\"big-buck-bunny-subtitles\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm\" width=\"75%\" preview=\"preview/big-buck-bunny-frame-one.jpg\">\n                        <track kind=\"subtitles\" listing=\"US English\" xml:lang=\"en\" source=\"video/BigBuckBunnyAcapella.vtt\"/>\n                    </video>\n                </figure>\n\n                <p>This video is identical to the previous one, except it tests the use of a default <tag>track</tag>.  The <attr>default</attr> attribute on <tag>track</tag> can be set to the value <c>yes</c> to make one set of captions the default (and only one!).  Test is a bit lame, the two <tag>track</tag> use the same file, but just have different labels for the player's menu.  Track named <c>US English Two</c> will show as in-use at start-up.</p>\n\n                <video label=\"big-buck-bunny-two-subtitles\" href=\"http://clips.vorwaerts-gmbh.de/big_buck_bunny.webm\" width=\"75%\" preview=\"preview/big-buck-bunny-frame-one.jpg\">\n                    <track kind=\"subtitles\" listing=\"US English One\" xml:lang=\"en\" source=\"video/BigBuckBunnyAcapella.vtt\"/>\n                    <track kind=\"subtitles\" listing=\"US English Two\" xml:lang=\"en\" source=\"video/BigBuckBunnyAcapella.vtt\" default=\"yes\"/>\n                </video>\n\n            </subsection>\n        </section>\n\n        <!--\n        Various author tools are planned.  Note the embedded \"todo\"\n        elements above.  An XSL transform in-testing will extract them\n        for a report, and they are hidden in actual output.\n        For a cross-reference, instead of a \"ref\" atrribute,\n        you can use a \"provisional\" attribute while writing, which is\n        especially useful for unknown forward references.  This is\n        included in the author report also.\n        A \"preview\" XSL transform to HTML could be especially useful.\n        -->\n\n        <section xml:id=\"section-cross-referencing\" label=\"section-cross-referencing\">\n            <title>Cross-Referencing</title>\n\n            <p>Cross-references<idx>cross-reference</idx> are easy, since that is a key reason for having a highly structured document.  Here is a useful feature if you elect to use it.  Any <tag>xref</tag> will <q>know</q> what it points to, so you can let it provide the <q>naming</q> part of the cross-reference text.  You can turn this on globally with the command-line parameter <c>autoname</c><idx><h>autoname</h></idx> set to <c>'yes'</c>.  If you do that, you will see most of the names in this document doubled, since the names are written into the source already in most places outside of this section.</p>\n\n            <p>Moreover, the names themselves will change with the use of the one language dependent file.  And another bonus is that with an autoname, you automatically get a <em>non-breaking</em> space between the name and the reference.  The autoname switch makes no sense for <q>provisional</q> cross-references, since there is no information about what they point to.</p>\n\n            <p>Here is a reference that has no indication of its type in the source:  <xref ref=\"theorem-FTC\"/>.  So by default you will just see a number that you can click on.  If you use the <c>text=\"type-global\"</c> switch then you should see <q>Theorem</q> prepended.  Note that if you changed the theorem to a lemma, then that change would be reflected here automatically when autonaming is in effect.</p>\n\n            <p>If you set the autonaming behavior globally, or accept the default behavior, there will still be instances where you want to override that choice.  Simple: just say <c>text=\"type-global\"</c> or <c>text=\"global\"</c> as part of the <c>xref</c>.  Each example below should look the same each time this article is processed, no matter how the global <c>autoname</c> is set.<ul>\n                <li><p>No name ever: <xref ref=\"corollary-FTC-derivative\" text=\"global\"/></p></li>\n                <li><p>Always named: <xref ref=\"corollary-FTC-derivative\" text=\"type-global\"/></p></li>\n            </ul></p>\n\n            <p>You might also wish to provide a prefix to a cross-reference and have it incorporated into the text of what you would click on in an electronic version.  So if you make an <c>xref</c> with some content, then that content will prefix the cross-reference within the clickable/pokeable text and be attached with a non-breaking space.  This <c>xref</c> content totally overrides any prefix that might happen otherwise.  So the name of an item (<eg/> <q>corollary</q>) could be replaced, and if you make a cross-reference with custom text, that will be the clickable also.  An example:<ul>\n                <li><p>A grand result: <xref ref=\"corollary-FTC-derivative\">Major Corollary</xref></p></li>\n                <li><p>A grand result: <xref ref=\"corollary-FTC-derivative\" text=\"custom\">a nice corollary</xref></p></li>\n            </ul></p>\n\n            <p>Suppose you want to reference two theorems, so you might want to say something like <q>Theorems 4.6 and 5.2.</q>  With global autonaming on, you can override the first <c>Theorem</c> by providing the content <c>Theorems</c> on the first <c>xref</c> and <c>text=\"global\"</c> on the second <c>xref</c>.  (With global autonaming off, you will also get what you want/expect.)   Here is the test, which should look correct no matter what the global switch is:  <xref ref=\"section-cross-referencing\">Sections</xref> and <xref ref=\"section-internationalization\" text=\"global\"/>.  (But notice that it is up to you to be certain the types of these targets do not change without you changing the content of the first <c>xref</c>.  The <q>author-tools</q> mode and careful choices of <c>xml:id</c> strings can help avoid this trap.)</p>\n\n            <p>If you set the value of <attr>text</attr> to <c>title</c>, then the title you assigned to the theorem will be used as the link for a cross-reference.  Here is a the final example, which refers to a fundamental theorem by name <xref ref=\"theorem-FTC\" text=\"title\"/>.</p>\n\n            <p>Cross-references to exercises with hard-coded numbers should respect the supplied number.  Exercise<nbsp/><xref ref=\"exercise-with-hardcoded-number\"/> should reference problem 42a.</p>\n\n            <p>Here we form a list to test pointing at various structures.  Each of the following should open a knowl in the HTML version, otherwise it will be a traditional hyperlink (if possible).  Note that if a knowl opens, there will always be an <q>in-context</q> link which will take you to the actual location, should you have  wished instead to just go there.<ul>\n                <li><p>Footnotes: Fermat allusion at <xref ref=\"footnote-fermat\"/>.</p></li>\n                <li><p>Citations: Judson's AATA with annotation at <xref ref=\"biblio-judson-AATA\"/></p></li>\n                <li><p>Citations: Judson's AATA with autoname that should have zero effect <xref ref=\"biblio-judson-AATA\" text=\"type-global\"/></p></li>\n                <li><p>Citations: In a <tag>references</tag> division inside an appendix <xref ref=\"biblio-strang-article-uno\"/></p></li>\n                <li><p>Note: just the annotation of previous citation at <xref ref=\"note-judson-AATA\"/></p></li>\n                <li><p>Examples: Mystery derivative at <xref ref=\"example-mysterious\"/>, or a question at <xref ref=\"sample-question\"/>.</p></li>\n                <li><p>Definition-like: A mathematical statement with no proof <xref ref=\"principle-principle\"/>.</p></li>\n                <li><p>A numbered Note: <xref ref=\"note-remark\"/></p></li>\n                <li><p>A link to a <c>proposition</c> element, while this document has globally renamed <c>proposition</c>s as <q>Conundrum</q>s, so this link should use the new name: <xref ref=\"proposition-as-conundrum\" text=\"type-global\"/></p></li>\n                <li><p>Theorems: Fundamental Theorem of Calculus, with proof at <xref ref=\"theorem-FTC\"/></p></li>\n                <li><p>Proof: of second version of FTC at <xref ref=\"proof-FTC-corollary\"/></p></li>\n                <li><p>Figures: A plot with a derivative at <xref ref=\"figure-function-derivative\"/>.</p></li>\n                <li><p>A Figure within a side-by-side panel, with its own number: <xref ref=\"another-regular-figure\"/></p></li>\n                <li><p>A Table within a side-by-side panel, with a subnumber: <xref ref=\"table-sidebyside-subtable\"/></p></li>\n                <li><p>A Figure, containing a side-by-side with two sub-captioned images: <xref ref=\"fig-sidebyside-global\"/></p></li>\n                <li><p>Display Mathematics: single, first with no name: <xref ref=\"equation-alternate-FTC\"/>.  Then with an autoname: <xref ref=\"equation-alternate-FTC\" text=\"type-global\"/>.</p></li>\n                <li><p>Display Mathematics: multi-row, first with no name: <xref ref=\"equation-use-FTC\"/>.  Then with an autoname: <xref ref=\"equation-use-FTC\" text=\"type-global\"/>.  And two, with a plural form: <xref ref=\"equation-alternate-FTC\">Equations</xref> and <xref ref=\"equation-use-FTC\" text=\"global\"/>.</p></li>\n                <li><p>You can cross-reference <xref ref=\"equation-use-FTC\" text=\"custom\">The Fundamental Theorem of Calculus</xref> via custom text of your choice.</p></li>\n                <li><p>Display mathematics: an equation with  <q>local</q> tag, which should not be used so very far away: <xref ref=\"equation-local-star\"/>.</p></li>\n                <li><p>You can author a cross-reference to a displayed equation with no number, but it will not be very satisfying.  You should get a warning if you try.</p></li>\n                <li><p>Exercises (divisional), a range, with plural form provided to override autonaming: <xref first=\"exercises-null-problem\" last=\"exercises-cosine-derivative\">Exercises</xref>.</p></li>\n                <li><p>Exercise (inline): with enclosed hint at <xref ref=\"exercise-essay\"/></p></li>\n                <li><p>A group of two exercises, with introduction, conclusion: <xref ref=\"exercisegroup-two-problems\" text=\"type-global\"/></p></li>\n                <li><p>Solution: An autonamed portion of an exercise: <xref ref=\"solution-antiderivative\" text=\"type-global\"/></p></li>\n                <li><p>Parts of a complicated exercise: <xref ref=\"exercise-complicated-second-hint\" text=\"type-global\"/> <xref ref=\"exercise-complicated-first-answer\" text=\"type-global\"/></p></li>\n                <li><p>A subsidary part of an exercise: <xref ref=\"exercise-one-two-one\"/></p></li>\n                <li><p>\n                       <idx><h>knowl</h><h>nested</h></idx>\n                   Three cross-references to individual exercises, but due to their location, they should have different <q>type names</q> in the cross-reference: in an <tag>exercises</tag> division, <xref ref=\"duplicate-divisional\"  text=\"type-global\"/>; in the narrative, <xref ref=\"exercise-essay\"  text=\"type-global\"/>; and in a <tag>worksheet</tag>, <xref ref=\"exercise-vector-addition\"  text=\"type-global\"/>.</p></li>\n                <li><p>An item buried in nested ordered lists: <xref ref=\"list-two-two-two-three\" text=\"type-global\"/></p></li>\n                <li><p>List item as knowls in HTML, including nested lists: <xref ref=\"list-two\"/>, <xref ref=\"list-two-two-two\" text=\"type-global\"/></p></li>\n                <li><p>A titled list: <xref ref=\"list-colors-rainbow\"/></p></li>\n                <li><p>List item inside a named list, second color in rainbow list: <xref ref=\"rainbow-orange\" text=\"type-global\"/></p></li>\n                <li><p>Second color in rainbow list, but now as a local reference: <xref ref=\"rainbow-orange\" text=\"type-local\"/></p></li>\n                <li><p>An item in ordered list, but contained in an unordered list, hence without a number, so a cross-reference by number would be ambiguous.  So we use a cross-reference which relies on custom text: <xref ref=\"target-no-number\" text=\"custom\">No Number List Item</xref></p></li>\n                <li><p>Several examples of hybrid cross-references to list items within a named list can be found in, and adjacent to, <xref ref=\"list-to-reference\" text=\"type-global\"/>.</p></li>\n                <li><p>An assemblage, which never has a number.  A cross-reference now requires content in the <c>xref</c> element, with <c>text='custom'</c>: <xref ref=\"assemblage-basics\" text=\"custom\">text to xref an assemblage</xref></p></li>\n                <li><p>A cross-reference to a list item in a description list, which has a title, but never a number: <xref ref=\"cpu-definition\" text=\"title\"/>.  Note that you need to include the attribute <c>text=\"title\"</c> even if that is obvious from the situation.  This requirement may be relaxed in a future refactoring of the cross-reference system.</p></li>\n                <li><p>A very similar cross-reference to the previous one, but testing how final punctuation of titles is handled: <xref ref=\"bus-definition\" text=\"title\"/>.</p></li>\n                <li><p>A cross-reference to a <q>paragraphs</q> subdivision, which never has a number (so comments above about description list items and titles applies here too): <xref ref=\"hierarchy-structure\" text=\"title\"/></p></li>\n                <li><p>A case within the proof of <xref ref=\"claim-with-cases\" text=\"type-global\"/>: <xref ref=\"inductive-step\" text=\"title\"/></p></li>\n                <li><p>A cross-reference to a description list item with a title containing math: <xref ref=\"description-list-math-title\" text=\"title\"/></p></li>\n                <li><p>A cross-reference to an aside, by title necessarily, and with some formatting in the title: <xref ref=\"an-aside\" text=\"title\"/></p></li>\n                <li><p>A cross-reference to an <c>objectives</c> block, with an autoname.  This demonstrates the number of the Objectives here, which is not shown in the original version since it is implicit: <xref ref=\"objectives-structures\" text=\"type-global\"/></p></li>\n                <li><p>A cross-reference to an individual objective.  This is authored as a list item, but displayed as an objective (singular) via an autoname: <xref ref=\"objective-structure\" text=\"type-global\"/></p></li>\n                <li><p>A cross-reference to the top-level element (<eg/><c>book</c>) will point to a summary page similar to a Table of Contents in HTML.  For LaTeX output it will behave similarly, unless there is no Table of Contents, then it will go to the main title page:  <xref ref=\"derivatives\" text=\"custom\">ToC or Title</xref></p></li>\n                <li><p><q>Cross-references inside quotations previously lost track of their target, so this tests correcting that, not so much the cross-reference itself: <xref ref=\"theorem-FTC\" text=\"type-global\"/></q></p></li>\n                <li><p>An activity with full details following: <xref ref=\"activity-with-hint-answer-solution\"/></p></li>\n                <li><p>A <c>type-global</c> cross-reference to a second-level <c>task</c> within a project: <xref ref=\"project-task-level-two\" text=\"type-global\"/>, the encompassing <c>project</c>: <xref ref=\"project-structured\"/>, and a <c>local</c> reference <xref ref=\"project-task-level-two\" text=\"local\"/>.</p></li>\n                <li><p>A subcaptioned named list: <xref ref=\"color-list-as-panel\"/></p></li>\n                <li><p>This opens a knowl for an <c>example</c>.  It has a solution, which is orginally presented as a hidden knowl.  But since this version is a duplicate, the knowl for the solution is a file version, not an embedded version, and hence free from duplicating any unique identifaction like an <init>HTML</init> id.  So we test its styling and function here: <xref ref=\"example-structured\" text=\"type-global\"/></p></li>\n                <li><p>A cross-reference to a poem, where we need to use a title for the link text, since a <c>poem</c> is not numbered: <xref ref=\"poem-light-brigade\" text=\"title\"/></p></li>\n                <li><p>A cross-reference to a <tag>references</tag> division in a subsection, which should not be numbered where born, but which has the number of its parent division in a cross-reference: <xref ref=\"references-section\" text=\"type-global\"/>.  And a cross-reference to a <tag>references</tag> division, which is the <q>main</q> bibliography in the back matter, and so is not numbered where born, nor in a cross-reference (which we must accomplish via it's title): <xref ref=\"references-backmatter\" text=\"title\"/>.</p></li>\n                <li><p>A cross-reference to a <tag>solutions</tag> division in a subsection, which should not be numbered where born, but which has the number of its parent division in a cross-reference: <xref ref=\"solutions-subsection\" text=\"type-global\"/>.  And a cross-reference to a <tag>solutions</tag> division, which should appear as an appendix both where born and as a cross-reference: <xref ref=\"solutions-backmatter\" text=\"type-global\"/>.</p></li>\n                <li><p>A cross-reference to an <tag>exercises</tag> division in a subsection, which is the only such division in that subsection and therefore should not be numbered where born, but which has the number of its parent division in a cross-reference: <xref ref=\"exercises-subsection-solo\" text=\"type-global\"/>.  In contrast we cross-reference an <tag>exercises</tag> division which is one of two inside a section, and therefore is numbered, when born and when cross-referenced, in continuity with the preceding subsections: <xref ref=\"exercises-section-multiple\" text=\"type-global\"/>.  Also an <tag>exercise</tag> within an <tag>exercises</tag> which should have a cross-reference employing the number of the containing (unstructured) <tag>section</tag>: <xref ref=\"duplicate-divisional\" text=\"type-global\"/> which is in <xref ref=\"exercise-collection\" text=\"type-global\"/> which is in the (unstructured) <xref ref=\"exercises-single\" text=\"type-global\"/>.</p></li>\n                <li><p>A custom cross-reference: <xref ref=\"corollary-FTC-derivative\" text=\"custom\">Custom</xref></p></li>\n                <!-- Instructions for Interactives are not numbered, so use a simpler @text -->\n                <li><p>Cross-reference to <tag>instructions</tag> of an <tag>interactive</tag>: <xref ref=\"kinematics-instructions\" text=\"title\"/></p></li>\n                <li><p>A hyperlink to a <tag>subexercises</tag> via its required title (no number is assigned): <xref ref=\"hard-subexercises\" text=\"title\"/></p></li>\n                <li><p>You can request the text to be a type, then a number, then a title: <xref ref=\"theorem-FTC\" text=\"type-global-title\"/></p></li>\n                <li><p>Asking for the text to be a type, then a number, then a title, when there is no title, is not a problem: <xref ref=\"corollary-FTC-derivative\" text=\"type-local-title\"/></p></li>\n                <!-- Accumulate examples here -->\n                <!-- <li><p>: <xref ref=\"\" text=\"\"/></p></li> -->\n            </ul></p>\n\n            <p>Cross-references to structural elements of the document will always take you there directly, since even in the HTML version these parts never get realized as knowls.  You will find such links sprinkled through this document, but here is an autonamed link to a subsubsection:  <xref ref=\"subsubsection-different-integrals\" text=\"type-global\"/>.</p>\n\n            <p>Cross-references can be built into display mathematics, but they can only point to one item (<ie/> a comma-delimited list of targets is not supported).  Examples below should test the distinction in HTML output between a link that opens a knowl and a link that jumps to a larger chunk of content.  Notice that display mathematics is entirely <latex/> syntax, no matter which output format you create.  So if you do not use the <c>autoname</c> facility, you need to wrap non-math text in <c>\\text{}</c> and perhaps use a tilde (<c>~</c>) as a non-breaking space (examine the source of this article).</p>\n\n            <p><md>\n                <mrow>x^2 + y^2 &amp;= z^2&amp;&amp;<xref ref=\"theorem-FTC\" text=\"type-global\"/></mrow>\n                <mrow>a^2 + b^2 &amp;= c^2&amp;&amp;\\text{Section}~<xref ref=\"section-fundamental-theorem\"/></mrow>\n            </md><idx><h>bug</h><h>in-context broken</h></idx></p>\n\n            <p>Variations on the above include multiple <c>xml:id</c> as the value of a single <c>ref</c> attribute on an <c>xref</c>, in the form of a comma-separated list.  In this case, only the numbers are links/knowls and the autonaming attribute is based on the type of the first <c>ref</c>.  Wrapping with brackets (citations) or parentheses (equations) is also controlled by the type of the first <c>ref</c>.  And the <c>detail</c> attribute for a bibliographic reference is silently ignored.  So you can do silly things like have a reference to a theorem within a list of equation numbers and there will be no error message.  Handle with care.  Spaces after commas in the list will migrate to the output as spaces, so if you don't have any, you won't get any.<ul>\n                <!-- NB: a knowl for \"theorem-number-02\" will *only* be created if this list is decomposed -->\n                <!-- properly, so do not remove, and certainly do not cross-reference it elsewhere         -->\n                <li><p>Four theorems, with spaces, autonamed: <xref ref=\"theorem-FTC, theorem-number-01, theorem-number-02, theorem-number-03\" text=\"type-global\"/></p></li>\n                <li><p>Two equations, no spaces, autonamed: <xref ref=\"equation-alternate-FTC,equation-use-FTC\" text=\"type-global\"/></p></li>\n                <li><p>Two bibliographic items, no autoname: <xref ref=\"biblio-judson-AATA, biblio-lay-article\"/></p></li>\n                <!-- <li><p>: <xref ref=\"\"/></p></li> -->\n            </ul></p>\n\n            <p>If you have a long list of items (such as homework exercises, not in an <c>exercisegroup</c>, or perhaps several chapters), you can get a cross-reference that prints as a range by using <c>xref</c> with two attributes <c>first</c> and <c>last</c>, which may contain a single <c>xml:id</c> each.  As with multiple references, <c>first</c> will control autonaming and other features.<ul>\n                <li><p>A range of exercises, autonamed (this range appears <q>out-of-order</q> since the two <c>exercise</c> are numbered under two different schemes): <xref first=\"exercise-essay\" last=\"exercise-test-number\" text=\"type-global\"/></p></li>\n                <li><p>A range of equations: <xref first=\"equation-use-FTC\" last=\"equation-conclude\"/></p></li>\n                <li><p>A system of equations, given as range from first to last: <xref first=\"equation-system-begin\" last=\"equation-system-end\"/></p></li>\n                <li><p>A range of sections, hand-named to be plural: Sections<nbsp/><xref first=\"section-sage-cells\" last=\"section-cross-referencing\"/></p></li>\n                <li><p>A range of bibliographic items: <xref first=\"biblio-judson-AATA\" last=\"biblio-lay-article\"/></p></li>\n                <!-- <li><p>: <xref ref=\"\"/></p></li> -->\n            </ul></p>\n\n\n\n\n            <p>The <c>url</c><idx>url</idx> element may be used to link to a data file, either externally, or internally, if you want to make such an object available to a reader.<idx><h>reference</h><h>external</h></idx>  A good example use case is a spreadsheet that might be part of an exercise, or contain data relevant to some discussion.  First let us suppose the data resides somewhere on the Internet, then just use the complete address.  Here is one from Microsoft: <url href=\"http://go.microsoft.com/fwlink/?LinkID=521962\" visual=\"go.microsoft.com/fwlink/?LinkID=521962\">Sample Excel Spreadsheet</url>.</p>\n\n            <p>For a link like the previous one, you might want to provide advice appropriate for your audience about using a context menu to download a file, or how to configure helper/viewer applications.</p>\n\n            <!-- http://templates.openoffice.org/en/template/running-statistics-template -->\n            <!-- http://templates.openoffice.org/template/download/1203 -->\n\n            <p>You can also provide a file yourself, but now it is your obligation to distribute the file with your document (<init>HTML</init>, <init>PDF</init>, <etc/>) and provide a relative link.  This creates some complications, such as making sure an electronic PDF has the associated file in the same place relative to the PDF file.  Of course, if you make a print PDF, this becomes impossible.  Here is a test example anyway, which is highly likely to be broken in a PDF (including at the <pretext/> project site) unless you build this example on your own computer, locally.  Here is a template from the Apache OpenOffice project, provided via the Public Documentation License (PDL):  <url href=\"data/spreadsheet/runningstatisticstemplate.ots\" visual=\"data/spreadsheet/runningstatisticstemplate.ots\">Running Statistics Template</url>.</p>\n            <p>The next four paragraphs are each a single <tag>dataurl</tag> element.  Explore the source and the output from different conversions.  Strictly for testing as of 2022-11-04.</p>\n            <p>Foo <dataurl href=\"http://go.microsoft.com/fwlink/?LinkID=521962\" visual=\"go.microsoft.com/fwlink/?LinkID=521962\">Sample Excel Spreadsheet</dataurl> Bar</p>\n            <p>Foo <dataurl source=\"data/spreadsheet/runningstatisticstemplate.ots\" visual=\"http://example.com\">Runners Template</dataurl> Bar</p>\n            <p>Foo <dataurl href=\"http://go.microsoft.com/fwlink/?LinkID=521962\">Sample Excel Spreadsheet</dataurl> Bar</p>\n            <p>Foo <dataurl source=\"data/spreadsheet/runningstatisticstemplate.ots\">Runners Template</dataurl> Bar</p>\n            <p>Testing of output positioning for xref's that are inside containers:</p>\n            <table xml:id=\"self-referential-tabular-xref\">\n                <title>Self-referential Xref In a table</title>\n                <tabular>\n                    <row bottom=\"medium\">\n                        <cell>A</cell>\n                        <cell>B</cell>\n                        <cell>C</cell>\n                        <cell>D</cell>\n                    </row>\n                    <row>\n                        <cell><xref ref=\"self-referential-tabular-xref\" text=\"type-global\"/></cell>\n                        <cell>B</cell>\n                        <cell>C</cell>\n                        <cell>D</cell>\n                    </row>\n                </tabular>\n            </table>\n\n            <figure>\n                <caption>Xref Inside MathJAX</caption>\n                <p>\n                    <md>\n                        <mrow>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</mrow>\n                        <mrow><xref ref=\"theorem-FTC\" text=\"type-global\"/></mrow>\n                        <mrow>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</mrow>\n                    </md>\n                </p>\n            </figure>\n\n            <p>Now we have two xref's to that same target that has a runestone component. Only the first one clicked should try to render the runestone.<xref ref=\"program-activecode-python\"/><xref ref=\"program-activecode-python\"/></p>\n        </section>\n\n        <section xml:id=\"section-internationalization\" label=\"section-internationalization\">\n            <title>Internationalization</title>\n            <idx>internationalization</idx>\n\n            <p>Supporting a multitude of possible characters, across many languages and across many output formats can be a challenge.  One of our goals is to make this much easier for authors.  Fortunately, the Unicode standard has led to improvements from the 7-bit ASCII standard of old.</p>\n\n            <paragraphs>\n                <title>Unicode Characters for HTML Output</title>\n\n                <p>First, we discuss HTML output.  If you include Unicode<idx>Unicode</idx> characters in your <pretext/> source, they should survive just fine <foreign xml:lang=\"fr-FR\">en route</foreign> to a web browser or e-reader.  Here are the caveats for HTML output:<ul>\n                    <li><p>So that you can continue to get the best results with print and PDF output, use available empty elements for obscure characters, even if targeting HTML output, before resorting to a Unicode character.  For example, use <tage>copyright</tage> for the copyright symbol in text before resorting to the Unicode character <c>U+00A9</c>.  It is a bit more work, but you will get better results with other conversions, even if you initially are only fascinated by <init>HTML</init>.</p></li>\n\n                    <li><p>How you actually enter Unicode characters into your source file is dependent on your editor and operating system, and is therefore outside the scope of our documentation.  You can cut-and-paste characters and text from the source of our examples for initial testing and experimentation.</p></li>\n\n                    <li><p>Always, always identify your source as having Unicode characters by including the incantation\n                        <cd>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;</cd>\n                    as the first line of your source file. (You <em>may</em> be able to accurately cut-and-paste this version here.  But if the copy has non-standard characters in it, go back to the top of this source file for a copy.)</p></li>\n\n                    <li><p>Alan Wood’s <url href=\"http://www.alanwood.net/unicode/unicode_samples.html\" visual=\"www.alanwood.net/unicode/unicode_samples.html\">Unicode Resources</url> has a plethora of samples of various groups of Unicode characters.  If you, or your readers, are <q>missing</q> characters in a web browser, this is a good place to start testing the local setup.</p></li>\n                </ul></p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Characters in <latex/>, PDF, print</title>\n\n                <p>The situation for <latex/> is a bit more complicated, since <tex/> pre-dates Unicode's widespread adoption.</p>\n\n                <p>This sample article is intended to work well, out-of-the-box, for authors just starting with <pretext/>.  So we only include here examples that we know are likely to convert to <init>PDF</init> without any errors.  For more extensive examples and experiments, we provide the sample document <c>examples/fonts/fonts-and-characters.xml</c>, so be aware of that example as you look to see what is possible.</p>\n\n                <p>Similarly, you should be able to process this sample article successfully with various <latex/> engines.  We test regularly with <c>pdflatex</c> and <c>xelatex</c> and provide online sample PDF output of this document processed by <c>pdflatex</c>.  In principle, you should be able to use <c>latex</c> (to produce a DVI), and possibly other (unsupported) engines, such as <c>lualatex</c>.</p>\n\n                <p>Once you get beyond the Latin alphabet, with accents common in Western Europe and the Western Hemisphere, you will almost assuredly need to restrict your attention to producing <init>PDF</init> output with the <c>xelatex</c> engine.  This is discussed and tested in <c>examples/fonts/fonts-and-characters.xml</c>.</p>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Basic Latin, <c>U+0000</c><ndash/><c>U+007F</c></title>\n\n                <p>Unicode uses multiple 8-bit bytes to represent characters, and these are typically expressed in hexadecimal (base 16) notation.  Using just a single byte, we can get 256 values, and the first 128 (hex <c>00</c> to <c>7F</c>) are the <q>usual</q> Latin characters with some values used as control codes.  These 95 characters are the most basic, and will all render using <c>pdflatex</c> or <c>xelatex</c> with no special setup (and will render easily in HTML).  <c>U+0000</c> to <c>U+001F</c> are control codes and not used here.  <c>U+007F</c> is also a control code and so is excluded, while <c>U+0020</c> is a space, so appears invisible in the table.  In the source we have authored each character by its escaped version using its Unicode number (in hexadecimal).  So, for example, capital-B is authored as <c>&amp;#x0042;</c>.</p>\n\n                <!-- ex &#x0000; - &#x001F; controls -->\n                <!-- ex &#x007F; control             -->\n                <!-- ex &#x0020; space, not visible  -->\n\n                <table>\n                    <title>Basic Latin, Regular</title>\n                <tabular>\n                    <row><cell/>\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>002_</c></cell><cell>&#x0020;</cell><cell>&#x0021;</cell><cell>&#x0022;</cell><cell>&#x0023;</cell><cell>&#x0024;</cell><cell>&#x0025;</cell><cell>&#x0026;</cell><cell>&#x0027;</cell>\n                                                 <cell>&#x0028;</cell><cell>&#x0029;</cell><cell>&#x002A;</cell><cell>&#x002B;</cell><cell>&#x002C;</cell><cell>&#x002D;</cell><cell>&#x002E;</cell><cell>&#x002F;</cell></row>\n                    <row><cell><c>003_</c></cell><cell>&#x0030;</cell><cell>&#x0031;</cell><cell>&#x0032;</cell><cell>&#x0033;</cell><cell>&#x0034;</cell><cell>&#x0035;</cell><cell>&#x0036;</cell><cell>&#x0037;</cell>\n                                                 <cell>&#x0038;</cell><cell>&#x0039;</cell><cell>&#x003A;</cell><cell>&#x003B;</cell><cell>&#x003C;</cell><cell>&#x003D;</cell><cell>&#x003E;</cell><cell>&#x003F;</cell></row>\n                    <row><cell><c>004_</c></cell><cell>&#x0040;</cell><cell>&#x0041;</cell><cell>&#x0042;</cell><cell>&#x0043;</cell><cell>&#x0044;</cell><cell>&#x0045;</cell><cell>&#x0046;</cell><cell>&#x0047;</cell>\n                                                 <cell>&#x0048;</cell><cell>&#x0049;</cell><cell>&#x004A;</cell><cell>&#x004B;</cell><cell>&#x004C;</cell><cell>&#x004D;</cell><cell>&#x004E;</cell><cell>&#x004F;</cell></row>\n                    <row><cell><c>005_</c></cell><cell>&#x0050;</cell><cell>&#x0051;</cell><cell>&#x0052;</cell><cell>&#x0053;</cell><cell>&#x0054;</cell><cell>&#x0055;</cell><cell>&#x0056;</cell><cell>&#x0057;</cell>\n                                                 <cell>&#x0058;</cell><cell>&#x0059;</cell><cell>&#x005A;</cell><cell>&#x005B;</cell><cell>&#x005C;</cell><cell>&#x005D;</cell><cell>&#x005E;</cell><cell>&#x005F;</cell></row>\n                    <row><cell><c>006_</c></cell><cell>&#x0060;</cell><cell>&#x0061;</cell><cell>&#x0062;</cell><cell>&#x0063;</cell><cell>&#x0064;</cell><cell>&#x0065;</cell><cell>&#x0066;</cell><cell>&#x0067;</cell>\n                                                 <cell>&#x0068;</cell><cell>&#x0069;</cell><cell>&#x006A;</cell><cell>&#x006B;</cell><cell>&#x006C;</cell><cell>&#x006D;</cell><cell>&#x006E;</cell><cell>&#x006F;</cell></row>\n                    <row><cell><c>007_</c></cell><cell>&#x0070;</cell><cell>&#x0071;</cell><cell>&#x0072;</cell><cell>&#x0073;</cell><cell>&#x0074;</cell><cell>&#x0075;</cell><cell>&#x0076;</cell><cell>&#x0077;</cell>\n                                                 <cell>&#x0078;</cell><cell>&#x0079;</cell><cell>&#x007A;</cell><cell>&#x007B;</cell><cell>&#x007C;</cell><cell>&#x007D;</cell><cell>&#x007E;</cell><cell>        </cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Latin-1 Supplement, <c>U+0080</c><ndash/><c>U+00FF</c></title>\n\n                <p>Now we are interested in the next 128 possible bytes,  (hex <c>80</c> to <c>FF</c>).  The first 32 are again control codes and <c>U+00A0</c> is a non-breaking space, so is invisible, while <c>U+00AD</c> is a soft hyphen (which we have not implemented and so is excluded).  We have taken care to see that the remainder will render using <c>pdflatex</c> or <c>xelatex</c> with no special setup (and HTML).  In the source we have authored each character by its escaped version using its Unicode number (in hexadecimal).  So, for example, a copyright symbol is authored as <c>&amp;#x00A9;</c>.</p>\n\n                <!-- ex &#x0080; - &#x009F; controls -->\n                <!-- ex &#x00A0; non-breaking space  -->\n                <!-- ex &#x00AD; soft hyphen         -->\n                <table>\n                    <title>Latin-1 Supplement, Regular</title>\n                <tabular>\n                    <row><cell/>\n                    <cell><c>0</c></cell>\n                    <cell><c>1</c></cell>\n                    <cell><c>2</c></cell>\n                    <cell><c>3</c></cell>\n                    <cell><c>4</c></cell>\n                    <cell><c>5</c></cell>\n                    <cell><c>6</c></cell>\n                    <cell><c>7</c></cell>\n                    <cell><c>8</c></cell>\n                    <cell><c>9</c></cell>\n                    <cell><c>A</c></cell>\n                    <cell><c>B</c></cell>\n                    <cell><c>C</c></cell>\n                    <cell><c>D</c></cell>\n                    <cell><c>E</c></cell>\n                    <cell><c>F</c></cell></row>\n                    <row><cell><c>00A_</c></cell><cell>&#x00A0;</cell><cell>&#x00A1;</cell><cell>&#x00A2;</cell><cell>&#x00A3;</cell><cell>&#x00A4;</cell><cell>&#x00A5;</cell><cell>&#x00A6;</cell><cell>&#x00A7;</cell>\n                                                 <cell>&#x00A8;</cell><cell>&#x00A9;</cell><cell>&#x00AA;</cell><cell>&#x00AB;</cell><cell>&#x00AC;</cell><cell>        </cell><cell>&#x00AE;</cell><cell>&#x00AF;</cell></row>\n                    <row><cell><c>00B_</c></cell><cell>&#x00B0;</cell><cell>&#x00B1;</cell><cell>&#x00B2;</cell><cell>&#x00B3;</cell><cell>&#x00B4;</cell><cell>&#x00B5;</cell><cell>&#x00B6;</cell><cell>&#x00B7;</cell>\n                                                 <cell>&#x00B8;</cell><cell>&#x00B9;</cell><cell>&#x00BA;</cell><cell>&#x00BB;</cell><cell>&#x00BC;</cell><cell>&#x00BD;</cell><cell>&#x00BE;</cell><cell>&#x00BF;</cell></row>\n                    <row><cell><c>00C_</c></cell><cell>&#x00C0;</cell><cell>&#x00C1;</cell><cell>&#x00C2;</cell><cell>&#x00C3;</cell><cell>&#x00C4;</cell><cell>&#x00C5;</cell><cell>&#x00C6;</cell><cell>&#x00C7;</cell>\n                                                 <cell>&#x00C8;</cell><cell>&#x00C9;</cell><cell>&#x00CA;</cell><cell>&#x00CB;</cell><cell>&#x00CC;</cell><cell>&#x00CD;</cell><cell>&#x00CE;</cell><cell>&#x00CF;</cell></row>\n                    <row><cell><c>00D_</c></cell><cell>&#x00D0;</cell><cell>&#x00D1;</cell><cell>&#x00D2;</cell><cell>&#x00D3;</cell><cell>&#x00D4;</cell><cell>&#x00D5;</cell><cell>&#x00D6;</cell><cell>&#x00D7;</cell>\n                                                 <cell>&#x00D8;</cell><cell>&#x00D9;</cell><cell>&#x00DA;</cell><cell>&#x00DB;</cell><cell>&#x00DC;</cell><cell>&#x00DD;</cell><cell>&#x00DE;</cell><cell>&#x00DF;</cell></row>\n                    <row><cell><c>00E_</c></cell><cell>&#x00E0;</cell><cell>&#x00E1;</cell><cell>&#x00E2;</cell><cell>&#x00E3;</cell><cell>&#x00E4;</cell><cell>&#x00E5;</cell><cell>&#x00E6;</cell><cell>&#x00E7;</cell>\n                                                 <cell>&#x00E8;</cell><cell>&#x00E9;</cell><cell>&#x00EA;</cell><cell>&#x00EB;</cell><cell>&#x00EC;</cell><cell>&#x00ED;</cell><cell>&#x00EE;</cell><cell>&#x00EF;</cell></row>\n                    <row><cell><c>00F_</c></cell><cell>&#x00F0;</cell><cell>&#x00F1;</cell><cell>&#x00F2;</cell><cell>&#x00F3;</cell><cell>&#x00F4;</cell><cell>&#x00F5;</cell><cell>&#x00F6;</cell><cell>&#x00F7;</cell>\n                                                 <cell>&#x00F8;</cell><cell>&#x00F9;</cell><cell>&#x00FA;</cell><cell>&#x00FB;</cell><cell>&#x00FC;</cell><cell>&#x00FD;</cell><cell>&#x00FE;</cell><cell>&#x00FF;</cell></row>\n                    </tabular>\n                </table>\n            </paragraphs>\n\n            <paragraphs>\n                <title>Monospace, Basic Latin and Latin-1 Supplement, <c>U+0000</c><ndash/><c>U+00FF</c></title>\n\n                <p>A monospace font is critical for samples of keyboard input and to distinguish exact technical input from running commentary.  We list here all of the reasonable characters from the first 256 Unicode code points.  (We skip the same 65 control characters from above, and the soft hyphen.)  These should all render fine in HTML and when processed with <c>xelatex</c>, however our focus with this sample article for PDF output is the capabilities when processed with <c>pdflatex</c>.  First, characters from <c>U+0000</c><ndash/><c>U+007F</c>.</p>\n\n                <!-- ex &#x0000; - &#x001F; controls -->\n                <!-- ex &#x007F; control             -->\n                <table>\n                    <title>Basic Latin, Monospace</title>\n                    <tabular>\n                        <row><cell/>\n                        <cell><c>0</c></cell>\n                        <cell><c>1</c></cell>\n                        <cell><c>2</c></cell>\n                        <cell><c>3</c></cell>\n                        <cell><c>4</c></cell>\n                        <cell><c>5</c></cell>\n                        <cell><c>6</c></cell>\n                        <cell><c>7</c></cell>\n                        <cell><c>8</c></cell>\n                        <cell><c>9</c></cell>\n                        <cell><c>A</c></cell>\n                        <cell><c>B</c></cell>\n                        <cell><c>C</c></cell>\n                        <cell><c>D</c></cell>\n                        <cell><c>E</c></cell>\n                        <cell><c>F</c></cell></row>\n                        <row><cell><c>002_</c></cell><cell><c>&#x0020;</c></cell><cell><c>&#x0021;</c></cell><cell><c>&#x0022;</c></cell><cell><c>&#x0023;</c></cell><cell><c>&#x0024;</c></cell><cell><c>&#x0025;</c></cell><cell><c>&#x0026;</c></cell><cell><c>&#x0027;</c></cell>\n                                                     <cell><c>&#x0028;</c></cell><cell><c>&#x0029;</c></cell><cell><c>&#x002A;</c></cell><cell><c>&#x002B;</c></cell><cell><c>&#x002C;</c></cell><cell><c>&#x002D;</c></cell><cell><c>&#x002E;</c></cell><cell><c>&#x002F;</c></cell></row>\n                        <row><cell><c>003_</c></cell><cell><c>&#x0030;</c></cell><cell><c>&#x0031;</c></cell><cell><c>&#x0032;</c></cell><cell><c>&#x0033;</c></cell><cell><c>&#x0034;</c></cell><cell><c>&#x0035;</c></cell><cell><c>&#x0036;</c></cell><cell><c>&#x0037;</c></cell>\n                                                     <cell><c>&#x0038;</c></cell><cell><c>&#x0039;</c></cell><cell><c>&#x003A;</c></cell><cell><c>&#x003B;</c></cell><cell><c>&#x003C;</c></cell><cell><c>&#x003D;</c></cell><cell><c>&#x003E;</c></cell><cell><c>&#x003F;</c></cell></row>\n                        <row><cell><c>004_</c></cell><cell><c>&#x0040;</c></cell><cell><c>&#x0041;</c></cell><cell><c>&#x0042;</c></cell><cell><c>&#x0043;</c></cell><cell><c>&#x0044;</c></cell><cell><c>&#x0045;</c></cell><cell><c>&#x0046;</c></cell><cell><c>&#x0047;</c></cell>\n                                                     <cell><c>&#x0048;</c></cell><cell><c>&#x0049;</c></cell><cell><c>&#x004A;</c></cell><cell><c>&#x004B;</c></cell><cell><c>&#x004C;</c></cell><cell><c>&#x004D;</c></cell><cell><c>&#x004E;</c></cell><cell><c>&#x004F;</c></cell></row>\n                        <row><cell><c>005_</c></cell><cell><c>&#x0050;</c></cell><cell><c>&#x0051;</c></cell><cell><c>&#x0052;</c></cell><cell><c>&#x0053;</c></cell><cell><c>&#x0054;</c></cell><cell><c>&#x0055;</c></cell><cell><c>&#x0056;</c></cell><cell><c>&#x0057;</c></cell>\n                                                     <cell><c>&#x0058;</c></cell><cell><c>&#x0059;</c></cell><cell><c>&#x005A;</c></cell><cell><c>&#x005B;</c></cell><cell><c>&#x005C;</c></cell><cell><c>&#x005D;</c></cell><cell><c>&#x005E;</c></cell><cell><c>&#x005F;</c></cell></row>\n                        <row><cell><c>006_</c></cell><cell><c>&#x0060;</c></cell><cell><c>&#x0061;</c></cell><cell><c>&#x0062;</c></cell><cell><c>&#x0063;</c></cell><cell><c>&#x0064;</c></cell><cell><c>&#x0065;</c></cell><cell><c>&#x0066;</c></cell><cell><c>&#x0067;</c></cell>\n                                                     <cell><c>&#x0068;</c></cell><cell><c>&#x0069;</c></cell><cell><c>&#x006A;</c></cell><cell><c>&#x006B;</c></cell><cell><c>&#x006C;</c></cell><cell><c>&#x006D;</c></cell><cell><c>&#x006E;</c></cell><cell><c>&#x006F;</c></cell></row>\n                        <row><cell><c>007_</c></cell><cell><c>&#x0070;</c></cell><cell><c>&#x0071;</c></cell><cell><c>&#x0072;</c></cell><cell><c>&#x0073;</c></cell><cell><c>&#x0074;</c></cell><cell><c>&#x0075;</c></cell><cell><c>&#x0076;</c></cell><cell><c>&#x0077;</c></cell>\n                                                     <cell><c>&#x0078;</c></cell><cell><c>&#x0079;</c></cell><cell><c>&#x007A;</c></cell><cell><c>&#x007B;</c></cell><cell><c>&#x007C;</c></cell><cell><c>&#x007D;</c></cell><cell><c>&#x007E;</c></cell><cell>               </cell></row>\n                    </tabular>\n                </table>\n\n                <p>Note that the single and double quotes are upright and dumb, not curly and smart: <c>' \" ' \" ' \"</c>.  And a backtick is a backtick: <c>` ` `</c>.  The zero is distinguished from the capital <q>oh</q>: <c>0 O 0 O 0 O</c>.  And the numeral one is slightly different from the lower-case <q>ell</q>: <c>1 l 1 l 1 l</c>.  The hyphen should be short and not expanded into some other kind of dash: <c>- - -</c>.  These characters should all cut/paste out of a PDF into a text editor with no conversion to other characters.</p>\n\n                <p>Now the remaining characters from <c>U+0080</c><ndash/><c>U+00FF</c>.  The <c>program</c> tag is implemented in <latex/> via the <c>listing</c> package and these characters require ad-hoc replacements for processing by <c>pdflatex</c>.  (You can see the replacements in the preamble of the <latex/> source for this document.)  The replacement mechanism provided by the <c>listing</c> package will cause the characters below to produce a <latex/> compilation error if processed by <c>pdflatex</c> and in a table cell in certain situations (which we have avoided in the table below).  The only workaround in this case is to switch to <c>xelatex</c>.</p>\n\n                <!-- ex &#x0080; - &#x009F; controls -->\n                <!-- ex &#x00A0; non-breaking space  -->\n                <!-- ex &#x00AD; soft hyphen         -->\n                <table>\n                    <title>Latin-1 Supplement, Monospace</title>\n                    <tabular>\n                        <row><cell/>\n                        <cell><c>0</c></cell>\n                        <cell><c>1</c></cell>\n                        <cell><c>2</c></cell>\n                        <cell><c>3</c></cell>\n                        <cell><c>4</c></cell>\n                        <cell><c>5</c></cell>\n                        <cell><c>6</c></cell>\n                        <cell><c>7</c></cell>\n                        <cell><c>8</c></cell>\n                        <cell><c>9</c></cell>\n                        <cell><c>A</c></cell>\n                        <cell><c>B</c></cell>\n                        <cell><c>C</c></cell>\n                        <cell><c>D</c></cell>\n                        <cell><c>E</c></cell>\n                        <cell><c>F</c></cell></row>\n                        <row><cell><c>00A_</c></cell><cell>               </cell><cell><c>&#x00A1;</c></cell><cell><c>&#x00A2;</c></cell><cell><c>&#x00A3;</c></cell><cell><c>&#x00A4;</c></cell><cell><c>&#x00A5;</c></cell><cell><c>&#x00A6;</c></cell><cell><c>&#x00A7;</c></cell>\n                                                     <cell><c>&#x00A8;</c></cell><cell><c>&#x00A9;</c></cell><cell><c>&#x00AA;</c></cell><cell><c>&#x00AB;</c></cell><cell><c>&#x00AC;</c></cell><cell>               </cell><cell><c>&#x00AE;</c></cell><cell><c>&#x00AF;</c></cell></row>\n                        <row><cell><c>00B_</c></cell><cell><c>&#x00B0;</c></cell><cell><c>&#x00B1;</c></cell><cell><c>&#x00B2;</c></cell><cell><c>&#x00B3;</c></cell><cell><c>&#x00B4;</c></cell><cell><c>&#x00B5;</c></cell><cell><c>&#x00B6;</c></cell><cell><c>&#x00B7;</c></cell>\n                                                     <cell><c>&#x00B8;</c></cell><cell><c>&#x00B9;</c></cell><cell><c>&#x00BA;</c></cell><cell><c>&#x00BB;</c></cell><cell><c>&#x00BC;</c></cell><cell><c>&#x00BD;</c></cell><cell><c>&#x00BE;</c></cell><cell><c>&#x00BF;</c></cell></row>\n                        <row><cell><c>00C_</c></cell><cell><c>&#x00C0;</c></cell><cell><c>&#x00C1;</c></cell><cell><c>&#x00C2;</c></cell><cell><c>&#x00C3;</c></cell><cell><c>&#x00C4;</c></cell><cell><c>&#x00C5;</c></cell><cell><c>&#x00C6;</c></cell><cell><c>&#x00C7;</c></cell>\n                                                     <cell><c>&#x00C8;</c></cell><cell><c>&#x00C9;</c></cell><cell><c>&#x00CA;</c></cell><cell><c>&#x00CB;</c></cell><cell><c>&#x00CC;</c></cell><cell><c>&#x00CD;</c></cell><cell><c>&#x00CE;</c></cell><cell><c>&#x00CF;</c></cell></row>\n                        <row><cell><c>00D_</c></cell><cell><c>&#x00D0;</c></cell><cell><c>&#x00D1;</c></cell><cell><c>&#x00D2;</c></cell><cell><c>&#x00D3;</c></cell><cell><c>&#x00D4;</c></cell><cell><c>&#x00D5;</c></cell><cell><c>&#x00D6;</c></cell><cell><c>&#x00D7;</c></cell>\n                                                     <cell><c>&#x00D8;</c></cell><cell><c>&#x00D9;</c></cell><cell><c>&#x00DA;</c></cell><cell><c>&#x00DB;</c></cell><cell><c>&#x00DC;</c></cell><cell><c>&#x00DD;</c></cell><cell><c>&#x00DE;</c></cell><cell><c>&#x00DF;</c></cell></row>\n                        <row><cell><c>00E_</c></cell><cell><c>&#x00E0;</c></cell><cell><c>&#x00E1;</c></cell><cell><c>&#x00E2;</c></cell><cell><c>&#x00E3;</c></cell><cell><c>&#x00E4;</c></cell><cell><c>&#x00E5;</c></cell><cell><c>&#x00E6;</c></cell><cell><c>&#x00E7;</c></cell>\n                                                     <cell><c>&#x00E8;</c></cell><cell><c>&#x00E9;</c></cell><cell><c>&#x00EA;</c></cell><cell><c>&#x00EB;</c></cell><cell><c>&#x00EC;</c></cell><cell><c>&#x00ED;</c></cell><cell><c>&#x00EE;</c></cell><cell><c>&#x00EF;</c></cell></row>\n                        <row><cell><c>00F_</c></cell><cell><c>&#x00F0;</c></cell><cell><c>&#x00F1;</c></cell><cell><c>&#x00F2;</c></cell><cell><c>&#x00F3;</c></cell><cell><c>&#x00F4;</c></cell><cell><c>&#x00F5;</c></cell><cell><c>&#x00F6;</c></cell><cell><c>&#x00F7;</c></cell>\n                                                     <cell><c>&#x00F8;</c></cell><cell><c>&#x00F9;</c></cell><cell><c>&#x00FA;</c></cell><cell><c>&#x00FB;</c></cell><cell><c>&#x00FC;</c></cell><cell><c>&#x00FD;</c></cell><cell><c>&#x00FE;</c></cell><cell><c>&#x00FF;</c></cell></row>\n                    </tabular>\n                </table>\n\n                <p>The <c>pre</c> tag is implemented in <latex/> with the <c>fancyvrb</c> package.  You can compare results here with the table above, lines here are rows above.</p>\n\n                <!-- These two raise errors in both of following -->\n                <!-- ex &#x00A0; non-breaking space              -->\n                <!-- ex &#x00AD; soft hyphen                     -->\n                <pre>\n                    <cline>  &#x00A1; &#x00A2; &#x00A3; &#x00A4; &#x00A5; &#x00A6; &#x00A7; &#x00A8; &#x00A9; &#x00AA; &#x00AB; &#x00AC;   &#x00AE; &#x00AF;</cline>\n                    <cline>&#x00B0; &#x00B1; &#x00B2; &#x00B3; &#x00B4; &#x00B5; &#x00B6; &#x00B7; &#x00B8; &#x00B9; &#x00BA; &#x00BB; &#x00BC; &#x00BD; &#x00BE; &#x00BF;</cline>\n                    <cline>&#x00C0; &#x00C1; &#x00C2; &#x00C3; &#x00C4; &#x00C5; &#x00C6; &#x00C7; &#x00C8; &#x00C9; &#x00CA; &#x00CB; &#x00CC; &#x00CD; &#x00CE; &#x00CF;</cline>\n                    <cline>&#x00D0; &#x00D1; &#x00D2; &#x00D3; &#x00D4; &#x00D5; &#x00D6; &#x00D7; &#x00D8; &#x00D9; &#x00DA; &#x00DB; &#x00DC; &#x00DD; &#x00DE; &#x00DF;</cline>\n                    <cline>&#x00E0; &#x00E1; &#x00E2; &#x00E3; &#x00E4; &#x00E5; &#x00E6; &#x00E7; &#x00E8; &#x00E9; &#x00EA; &#x00EB; &#x00EC; &#x00ED; &#x00EE; &#x00EF;</cline>\n                    <cline>&#x00F0; &#x00F1; &#x00F2; &#x00F3; &#x00F4; &#x00F5; &#x00F6; &#x00F7; &#x00F8; &#x00F9; &#x00FA; &#x00FB; &#x00FC; &#x00FD; &#x00FE; &#x00FF;</cline>\n                </pre>\n\n                <p>The <c>console</c> tag is also implemented with <c>fancyvrb</c>, with adjustments for the input lines.  It will not look like it, but these are 8 such inputs, with similar results to above, but now bolded.</p>\n\n                <console margins=\"0%\" prompt=\"\">\n                    <input>  &#x00A1; &#x00A2; &#x00A3; &#x00A4; &#x00A5; &#x00A6; &#x00A7; &#x00A8; &#x00A9; &#x00AA; &#x00AB; &#x00AC;   &#x00AE; &#x00AF;</input>\n                    <input>&#x00B0; &#x00B1; &#x00B2; &#x00B3; &#x00B4; &#x00B5; &#x00B6; &#x00B7; &#x00B8; &#x00B9; &#x00BA; &#x00BB; &#x00BC; &#x00BD; &#x00BE; &#x00BF;</input>\n                    <input>&#x00C0; &#x00C1; &#x00C2; &#x00C3; &#x00C4; &#x00C5; &#x00C6; &#x00C7; &#x00C8; &#x00C9; &#x00CA; &#x00CB; &#x00CC; &#x00CD; &#x00CE; &#x00CF;</input>\n                    <input>&#x00D0; &#x00D1; &#x00D2; &#x00D3; &#x00D4; &#x00D5; &#x00D6; &#x00D7; &#x00D8; &#x00D9; &#x00DA; &#x00DB; &#x00DC; &#x00DD; &#x00DE; &#x00DF;</input>\n                    <input>&#x00E0; &#x00E1; &#x00E2; &#x00E3; &#x00E4; &#x00E5; &#x00E6; &#x00E7; &#x00E8; &#x00E9; &#x00EA; &#x00EB; &#x00EC; &#x00ED; &#x00EE; &#x00EF;</input>\n                    <input>&#x00F0; &#x00F1; &#x00F2; &#x00F3; &#x00F4; &#x00F5; &#x00F6; &#x00F7; &#x00F8; &#x00F9; &#x00FA; &#x00FB; &#x00FC; &#x00FD; &#x00FE; &#x00FF;</input>\n                </console>\n\n            <p>We take care to render the <c>U+0080</c><ndash/><c>U+00FF</c> characters in Sage cells.  This would allow some flexibility in comments and strings employed.  The following is just a test of these characters in the <c>input</c> and <c>output</c> of a <c>sage</c> element.  This is not functional code.</p>\n\n            <sage doctest=\"not tested\">\n                <input>\n                  &#x00A1; &#x00A2; &#x00A3; &#x00A4; &#x00A5; &#x00A6; &#x00A7; &#x00A8; &#x00A9; &#x00AA; &#x00AB; &#x00AC;   &#x00AE; &#x00AF;\n                &#x00B0; &#x00B1; &#x00B2; &#x00B3; &#x00B4; &#x00B5; &#x00B6; &#x00B7; &#x00B8; &#x00B9; &#x00BA; &#x00BB; &#x00BC; &#x00BD; &#x00BE; &#x00BF;\n                &#x00C0; &#x00C1; &#x00C2; &#x00C3; &#x00C4; &#x00C5; &#x00C6; &#x00C7; &#x00C8; &#x00C9; &#x00CA; &#x00CB; &#x00CC; &#x00CD; &#x00CE; &#x00CF;\n                &#x00D0; &#x00D1; &#x00D2; &#x00D3; &#x00D4; &#x00D5; &#x00D6; &#x00D7; &#x00D8; &#x00D9; &#x00DA; &#x00DB; &#x00DC; &#x00DD; &#x00DE; &#x00DF;\n                &#x00E0; &#x00E1; &#x00E2; &#x00E3; &#x00E4; &#x00E5; &#x00E6; &#x00E7; &#x00E8; &#x00E9; &#x00EA; &#x00EB; &#x00EC; &#x00ED; &#x00EE; &#x00EF;\n                &#x00F0; &#x00F1; &#x00F2; &#x00F3; &#x00F4; &#x00F5; &#x00F6; &#x00F7; &#x00F8; &#x00F9; &#x00FA; &#x00FB; &#x00FC; &#x00FD; &#x00FE; &#x00FF;\n                </input>\n                <output>\n                  &#x00A1; &#x00A2; &#x00A3; &#x00A4; &#x00A5; &#x00A6; &#x00A7; &#x00A8; &#x00A9; &#x00AA; &#x00AB; &#x00AC;   &#x00AE; &#x00AF;\n                &#x00B0; &#x00B1; &#x00B2; &#x00B3; &#x00B4; &#x00B5; &#x00B6; &#x00B7; &#x00B8; &#x00B9; &#x00BA; &#x00BB; &#x00BC; &#x00BD; &#x00BE; &#x00BF;\n                &#x00C0; &#x00C1; &#x00C2; &#x00C3; &#x00C4; &#x00C5; &#x00C6; &#x00C7; &#x00C8; &#x00C9; &#x00CA; &#x00CB; &#x00CC; &#x00CD; &#x00CE; &#x00CF;\n                &#x00D0; &#x00D1; &#x00D2; &#x00D3; &#x00D4; &#x00D5; &#x00D6; &#x00D7; &#x00D8; &#x00D9; &#x00DA; &#x00DB; &#x00DC; &#x00DD; &#x00DE; &#x00DF;\n                &#x00E0; &#x00E1; &#x00E2; &#x00E3; &#x00E4; &#x00E5; &#x00E6; &#x00E7; &#x00E8; &#x00E9; &#x00EA; &#x00EB; &#x00EC; &#x00ED; &#x00EE; &#x00EF;\n                &#x00F0; &#x00F1; &#x00F2; &#x00F3; &#x00F4; &#x00F5; &#x00F6; &#x00F7; &#x00F8; &#x00F9; &#x00FA; &#x00FB; &#x00FC; &#x00FD; &#x00FE; &#x00FF;\n                </output>\n            </sage>\n\n            </paragraphs>\n\n            <p>The table below has a single column, and each cell of the table has a string of 10 characters inside a <c>c</c> element.  It is meant to test if the font is monospace in this situation.</p>\n\n            <table>\n                <title>Alignment Test</title>\n                <tabular>\n                    <row><cell><c>0123456789</c></cell></row>\n                    <row><cell><c>9876543210</c></cell></row>\n                    <row><cell><c>iiiiiiiiii</c></cell></row>\n                    <row><cell><c>mmmmmmmmmm</c></cell></row>\n                </tabular>\n            </table>\n\n            <p>Again, more examples and more thorough explanations can be found in the sample: <c>examples/fonts/fonts-and-characters.xml</c>.  Be aware that the nature of the more advanced sample is that it will likely produce many errors when processed with <c>pdflatex</c>.  Adding <c>-interaction batchmode</c> or <c>-interaction nonstopmode</c> to the <c>pdflatex</c> command-line will sometimes be less painless than acknowledging each error.  The more advanced sample will perform well when processed with <c>xelatex</c>.</p>\n        </section>\n\n        <section label=\"section-pre-formatted\">\n            <title>Pre-Formatted Text</title>\n\n            <p>In Sage, if you wanted to build a matrix<idx>matrix</idx>, then you would use the <c>matrix()</c> constructor.  Here is the matrix of second partials of <m>f(x,y)=x^3+8x^2y^3 + y^4</m>, as you would enter it in Sage.  Notice that <c>SR</c> is the ring of symbolic expressions, <c>Symbolic Ring</c>.</p>\n\n            <pre>\n            var('x', 'y')\n            J = matrix(SR, [\n                [6*x + 16*y^3, 48*x*y^2],\n                [48*x*y^2, 48*x^2*y + 12*y^2]\n                ])\n            </pre>\n\n            <p>That accomplished, Sage will easily and naturally provide a <latex/> representation of the matrix with the command <c>latex(J)</c>.</p>\n\n            <pre>\n            \\left(\\begin{array}{rr}\n            16 \\, y^{3} + 6 \\, x &amp; -48 \\, x y^{2} \\\\\n            48 \\, x y^{2} &amp; 48 \\, x^{2} y + 12 \\, y^{2}\n            \\end{array}\\right)\n            </pre>\n\n            <p>The <c>pre</c> element surrounds text that should be preserved verbatim.  It is like a special kind of paragraph, and can be used almost everywhere that a paragraph can be used.   The realization of preformatted text should be robust enough that it can be cut from documents and pasted without any substitutions of <q>fancier</q> Unicode characters for generic ASCII characters.  Try the <q>minus</q> sign on the <m>48</m> above to see if it does not become a dash, or the single quotes on the Sage variables.</p>\n\n            <p>For Sage input code, the first non-whitespace character sets the left margin, since legitimate Python code has no subsequent lines outdented.  For pre-formatted code, the line with the <em>least</em> whitespace leading the line will determine the left margin.  If preserving indentation is important, do not mix spaces and tabs.  For syntax highlighting of text representing computer programs, or parts of them, see Section<nbsp/><xref ref=\"section-programs\"/>.  Examine the source of the following example to help understand this paragraph.</p>\n\n            <pre>\n            A normal line\n                    An indented line\n    An outdented line\n            </pre>\n\n            <p>Snippets should also be robust for cut/paste operations.  For example, you should not get <q>curly</q> <q>smart</q> quote marks in verbatim text: <c>this should have \"dumb\" quote marks</c>. Here are a few characters that should migrate through <latex/> to a PDF unmolested:  <c>'\"----\"'</c></p>\n\n            <p><c>If you write a very long snippet of inline code (i.e. within a &lt;c&gt; element) it can impinge on the right margin, since very long words will not hypenate, unless you have a dash/hypen.  Such as when you use words like pneumonoultramicroscopicsilicovolcanoconiosis, parastratiosphecomyia stratiosphecomyioides, floccinaucinihilipilification, or subdermatoglyphic.  For output in LaTeX we get line-breaking, and perhaps word-spacing, but we do not get hyphenation and the font is fixed-width.  So not always perfect.  Consider other options like &lt;cd&gt; or &lt;pre&gt; below.</c></p>\n\n            <p>An intermediate type of verbatim text can be accomplished with the <tag>cd</tag> tag, short for <q>code display.</q>  It allows for larger chunks of verbatim text to show up in the middle of a paragraph, but with some vertical space above and below, and centered between the margins.  It can be<cd>authored as a single line</cd>or if you wish to have multiple lines<cd>\n                <cline>there is the &lt;cline&gt; tag</cline>\n                <cline>meant to model the line tag</cline>\n                <cline>and short for \"code line\"</cline>\n            </cd>and you may even<cd>\n                <cline>use a single cline</cline>\n            </cd>if you like to have your source closely model the visual look of the output.</p>\n\n            <p>With the <attr>showspaces</attr> attribute of <tag>cd</tag> set to <c>all</c> there will be a visual indication of every space character, which is nice if indentation is critical.  For example,<cd showspaces=\"all\">\n                <cline>there is the &lt;cline&gt; tag</cline>\n                <cline>    meant to model the line tag</cline>\n                <cline>        and short for \"code line\"</cline>\n            </cd> and as single line <cd showspaces=\"all\">authored as a single line</cd> that is not structured with <tag>cline</tag> elements.</p>\n\n            <p>The <tag>pre</tag> tag is meant for use outside of paragraphs, but is otherwise very similar.  The source may also be structured as a sequence of <tag>cline</tag> as in the next example, recycling content from above.</p>\n\n            <pre>\n                <cline>If you write a very long snippet of inline code (i.e. within</cline>\n                <cline>a &lt;c&gt; element) it can impinge on the right margin, since</cline>\n                <cline>very long words will not hypenate, unless you have a dash/hypen.</cline>\n                <cline>Such as when you use words like</cline>\n                <cline>pneumonoultramicroscopicsilicovolcanoconiosis,</cline>\n                <cline>parastratiosphecomyia stratiosphecomyioides,</cline>\n                <cline>floccinaucinihilipilification, or subdermatoglyphic. For output</cline>\n                <cline>in LaTeX we get line-breaking, and perhaps word-spacing, but we</cline>\n                <cline>do not get hyphenation and the font is fixed-width. So not always</cline>\n                <cline>perfect. Consider other options like &lt;cd&gt; or &lt;pre&gt; below.</cline>\n            </pre>\n\n            <p>We use a Unicode right arrow (Unicode Character 'RIGHTWARDS ARROW', U+2192) to sometimes indicate the truncation of long lines in a text file.  It is available in our usual monospace font for <latex/>/PDF, but we include a use here in order to make certain that is always the case.  Here: <c>&#x2192;</c>.</p>\n        </section>\n\n        <section xml:id=\"section-programs\" label=\"section-programs\">\n            <title>Program Listings (with <c>code</c> in the title)</title>\n\n            <p>Sage cells can be used for Python examples, but Sage uses a mild amount of pre-parsing, so that might not be a wise decision, especially in instructional settings.  We might implement Skulpt or Brython (in-browser Python) or the Python language argument to the Sage Cell Server.  To see examples of authoring Sage cells, have a look at Section<nbsp/><xref ref=\"section-sage-cells\"/>.</p>\n\n            <p>In the meantime, program listings,<idx><h>listing</h></idx><idx><h>program listing</h></idx> especially with syntax highlighting, is useful all by itself.  The <q>R</q> language might not be a bad stand-in for pseudo-code, as it supports assignment with a left arrow and has fairly generic procedural syntax for control structures and data structures.  Or maybe Pascal would be a good choice?  Here is an example of R.  Note in the source that the entire block of code is wrapped in a CDATA section due to the four left angle brackets.  We do not recommend this technique for isolated problem characters, but it is a life-saver for situations like the <init>XSLT</init> code just following.</p>\n\n\n            <!-- Output in knowls?? -->\n\n            <!-- Comments edited for length                                                         -->\n            <!-- http://connectmv.com/tutorials/r-tutorial/programming-in-r-loops-and-flow-control/ -->\n            <program language=\"r\">\n                <code>\n                <![CDATA[n_loops <- 10\n                x.means <- numeric(n_loops)  # create a vector of zeros for results\n                for (i in 1:n_loops){\n                    x <- as.integer(runif(100, 1, 7))  # 1 to 6, uniformly\n                    x.means[i] <- mean(x)\n                }\n                x.means]]>\n                </code>\n            </program>\n\n            <p>And some self-referential XSL:</p>\n\n            <!-- input element intentionally ommited here. Pretext processor should correct. -->\n            <program language=\"xslt\" margins=\"15%\">\n            <![CDATA[<xsl:template match=\"biblio\" mode=\"number\">\n                <xsl:apply-templates select=\".\" mode=\"structural-number\"/>\n                <xsl:text>.</xsl:text>\n                <xsl:number from=\"references\" level=\"any\" count=\"biblio\"/>\n            </xsl:template>]]>\n            </program>\n\n            <p>Matlab is a commercial language for mathematics, while Octave in an open source version.  The <attr>language</attr> values of <c>matlab</c> and <c>octave</c> are somewhat interchangeable.  Following is a very slighlty edited version of an example from <url href=\"http://www.public.asu.edu/~hhuang38/hph_matlab_basic2013_1.pdf\" visual=\"www.public.asu.edu/~hhuang38/hph_matlab_basic2013_1.pdf\"><articletitle>50 Basic Examples for Matlab</articletitle></url>.</p>\n\n            <!-- Example 45: 50 Basic Examples for Matlab -->\n            <program language=\"matlab\">\n                <code>\n                a = [0:0.5:5]; % A Matlab comment here\n                b = 2*a.^2 + 3*a -5;\n                c = 1.2*a.^2+4*a-3;\n                subplot(1,2,1)\n                plot(a,b,'-or','MarkerFaceColor','g','LineWidth',2)\n                xlabel('X'); ylabel('Y'); legend('Curve ','Location','NorthWest')\n                subplot(1,2,2)\n                plot(a,c,'--ok','MarkerFaceColor','c','LineWidth',2)\n                xlabel('X'); ylabel('Y'); legend('Curve 2','Location','NorthWest')\n                </code>\n            </program>\n\n            <p>You can write made-up pseudo-code, but you might explain to a reader what your symbols all mean.  This routine takes the <m>m\\times n</m> marix <m>A</m> to reduced row-echelon form.  Note that with no language specified, there is no special formatting or use of color.  Note in the source the use of escaped characters for the three less-than symbols.</p>\n\n            <program margins=\"5%\">\n                <code>\n                input m, n and A\n                r := 0\n                for j := 1 to n\n                   i := r+1\n                   while i &lt;= m and A[i,j] == 0\n                       i := i+1\n                   if i &lt; m+1\n                       r := r+1\n                       swap rows i and r of A (row op 1)\n                       scale A[r,j] to a leading 1 (row op 2)\n                       for k := 1 to m, k &lt;> r\n                           make A[k,j] zero (row op 3, employing row r)\n                output r and A\n                </code>\n            </program>\n\n            <p>Look in the <c>pretext-common.xsl</c> file to see the strings to use to identify languages.  Always all-lowercase, no symbols, no punctuation.</p>\n\n            <p>Note that the above examples all have slightly different widths (theser are very evident in print with the frames).  As 2-D atomic objects, to place them in the narrative requires the layout features of a <c>sidebyside</c> element.  Then <c>width</c> and/or <c>margin</c> attributes will influence the width of the panel.</p>\n\n            <p>A <c>program</c> may also be nested inside a <c>listing</c>, which behaves similar to a <c>figure</c>.  You can provide a <c>title</c>, and the listing will be numbered along with tables and figures.  This then makes it possible to cross-reference the listing, such as <xref ref=\"listing-c-hello\" text=\"type-global\" />.  It also removes the requirement of wrapping the <c>program</c> in a <c>sidebyside</c>.  For technical reasons, the three examples above will not split across a page break in PDF output, but the placement inside a <c>listing</c> will allow splits, as you should see in at least one example following.</p>\n\n            <listing xml:id=\"listing-c-hello\">\n                <title>C Version of <q>Hello, World!</q></title>\n                <program language=\"c\">\n                    <code>\n                    /* Hello World program */\n\n                    #include&lt;stdio.h&gt;\n\n                    main()\n                    {\n                        printf(\"Hello, World!\");\n                    }\n                    </code>\n                </program>\n            </listing>\n\n            <p>A <tag>program</tag> may include line numbers.</p>\n\n            <listing xml:id=\"program-line-numbers\">\n                <title>A static Java program with line numbers</title>\n                <program interactive='no' language=\"java\" line-numbers=\"yes\">\n                    <code>\n                    import javax.swing.JFrame;  //Importing class JFrame\n                    import javax.swing.JLabel;  //Importing class JLabel\n                    public class HelloWorld {\n                        public static void main(String[] args) {\n                            JFrame frame = new JFrame();           //Creating frame\n                            frame.setTitle(\"Hi!\");                 //Setting title frame\n                            frame.add(new JLabel(\"Hello, world!\"));//Adding text to frame\n                            frame.pack();                          //Setting size to smallest\n                            frame.setLocationRelativeTo(null);     //Centering frame\n                            frame.setVisible(true);                //Showing frame\n                        }\n                    }\n                    </code>\n                </program>\n            </listing>\n\n            <p>A <tag>program</tag> may also include highlighted lines.</p>\n\n            <listing xml:id=\"program-highlight-lines\">\n                <title>A static Java program with line numbers</title>\n                <program interactive='no' language=\"java\" line-numbers=\"yes\" highlight-lines=\"1,3-5\">\n                    <code>\n                    import javax.swing.JFrame;  //Importing class JFrame\n                    import javax.swing.JLabel;  //Importing class JLabel\n                    public class HelloWorld {\n                        public static void main(String[] args) {\n                            JFrame frame = new JFrame();           //Creating frame\n                            frame.setTitle(\"Hi!\");                 //Setting title frame\n                            frame.add(new JLabel(\"Hello, world!\"));//Adding text to frame\n                            frame.pack();                          //Setting size to smallest\n                            frame.setLocationRelativeTo(null);     //Centering frame\n                            frame.setVisible(true);                //Showing frame\n                        }\n                    }\n                    </code>\n                </program>\n            </listing>\n\n            <p>Although a program should have a <tag>code</tag> element surrounding its code, we attempt to provide one when it is missing. This next sample tests that and intentionally has no leading or trailing newline inside the program.</p>\n\n            <program languge=\"python\">print(\"Hello world\")</program>\n\n            <p>Sometimes it is nice to author an inline fragment of a program and have the styling of its text match that of a <tag>program</tag>. To do this we can use the <tag>pf</tag> tag (<q>program fragment</q>).  It is similar to a <tag>c</tag> element, but will be syntax highlighted according to either a <attr>language</attr> or the default language for <tag>programs</tag>. Here is an example in C: <pf language=\"c\">printf(\"The cost is $%f.2\", money);</pf>. And another that is in Python and tests problematic characters: <pf language=\"python\">print(\"&amp; % $ # _ { } ~ ^ \\\")</pf>.</p>\n\n            <p>If you are discussing algorithms in the abstract (or even concretely), you can set them off like a theorem, with a number, a title and a target for cross-references.  Sometimes you claim an algorithm produces something in particular, or has certain properties, such as a theoretical run time, so a proof may be included.  See the discussion just preceding about (limited) options for pseudo-code.</p>\n\n            <algorithm xml:id=\"algorithm-sieve-eratosthenes\">\n                <title>Sieve of Eratosthenes</title>\n                <statement>\n                    <p>On input of a positive integer <c>n</c> this algorithm will compute all the prime numbers up to, and including, <c>n</c>.  It was named for Eratosthenes of Cyrene (<ca/> 276 BC<ndash/><ca/> 195/194 BC) by Nicomachus (<ca/> 60<ndash/><ca/> 120 CE) in <pubtitle>Introduction to Arithmetic</pubtitle>. (<url href=\"http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes\" visual=\"en.wikipedia.org/wiki/Sieve_of_Eratosthenes\">Wikipedia</url>, 2015)<ol>\n                        <li>Input: <c>n</c></li>\n                        <li>Form the list of all integers from <c>2</c> to <c>n</c></li>\n                        <li>Set <c>p = 2</c></li>\n                        <li><p>While <c>p &lt; sqrt(n)</c><ol marker=\"1.\">\n                                <li>If present, remove from the list multiples <c>2p, 3p, ...</c></li>\n                                <li>If <c>p</c> is now the last element of the list, stop</li>\n                                <li>Otherwise, set <c>p</c> to the element of the list immediately after current <c>p</c></li>\n                            </ol></p>\n                        </li>\n                        <li>Output: the remaining elements of the list</li>\n                    </ol></p>\n                </statement>\n\n                <proof>\n                    <p>Any element removed is a non-trivial product of two integers and hence composite.  So no prime is is ever removed from the list.</p>\n\n                    <p>Each composite number is a multiple of some prime, and since no prime is ever removed, each composite will be removed.  Hence the removed elements are precisely the set of composite numbers in the list and thus the remainder are precisely the primes on the list.</p>\n                </proof>\n            </algorithm>\n\n            <p>If you are writing about system-level software, you may need to write numbers in hexadecimal or binary.  Here we use a numbered, displayed equation (mathematics) and <latex/> macros such as <c>\\texttt</c> for a monospace text font, and <c>\\;</c> for spacing/grouping the bits of the binary number. <md number=\"yes\">\\texttt{6C2A}_{16} = \\texttt{0110}\\;\\texttt{1100}\\;\\texttt{0010}\\;\\texttt{1010}_{2}</md>  If you use these constructions repeatedly, then some <latex/> macros might be useful.  It might also be beneficial for us to add some <pretext/> markup for such numbers used in a paragraph<mdash/>send us a feature request.</p>\n\n            <theorem xml:id=\"theorem-detached\">\n                <statement>\n                    <p>This is a spurious theorem to break up the run of consecutive <c>listing</c> so we might test the effect.</p>\n                </statement>\n            </theorem>\n\n            <p>And this is a spurious paragraph to prove that the theorem beforehand, and the proof following, are distinct from one another.</p>\n\n            <proof ref=\"theorem-detached\" text=\"type-global\">\n                <p>This is a proof that is authored <q>detached.</q>  It is not associated with the theorem above in a way other than simply following it.<fn>Footnotes once behaved badly in a detached <tag>proof</tag>.</fn></p>\n\n                <p>Notice that this proof has a <attr>ref</attr> attribute that points to the theorem being proved.  In this way, the <tag>proof</tag> element doubles as an <tag>xref</tag>.  So the <attr>text</attr> attribute is also available to fashion how the cross-reference appears.  Options are basically the same as for <tag>xref</tag>, though some things are not possible, such as custom text.</p>\n            </proof>\n\n            <p>A specialized version of a program listing is an interactive command/response session at a command-line, where differing fonts are used to differentiate the system prompt, the user's commands, and the system's reaction.  A   <c>console</c> session may be used by itself inside a <c>sidebyside</c>, or it can be wrapped in a listing to get a number and a caption.  As elsewhere, you will need to escape ampersands and angle brackets (such as if you have a command using redirection), using <c>&amp;amp;</c>, <c>&amp;lt;</c>, and <c>&amp;gt;</c> in your source.</p>\n\n            <listing xml:id=\"console-raspberry-pi\">\n                <title>Console Session: <c>int</c> and <c>float</c></title>\n                <console prompt=\"pi@raspberrypi ~/progs/chap02 $ \">\n                    <input>gcc -Wall -o intAndFloat intAndFloat.c</input>\n                    <input>./intAndFloat</input>\n                    <output>\n                    The integer is 19088743 and the float is 19088.742188\n                    </output>\n                    <input/>\n                </console>\n            </listing>\n\n            <p>Here is the plain version, some layout control.  We simply place a small margin on the left (at 4% width).</p>\n\n            <console prompt=\"pi@raspberrypi ~/progs/chap02 $ \" margins=\"4%\">\n                <input>gcc -Wall -o intAndFloat intAndFloat.c</input>\n                <input>./intAndFloat</input>\n                <output>\n                The integer is 19088743 and the float is 19088.742188\n                </output>\n                <input/>\n            </console>\n\n            <p>If your console input exceeds more than one line, you can author it across several lines and your choice of line breaks will be reflected in the rendering.  You can decide to indent lines after the first one for clarity, if desired.  You can also decide if your audience needs line-continuation characters or not.</p>\n\n            <listing xml:id=\"console-raspberry-pi-multi\">\n                <title>Console Session: <c>int</c> and <c>float</c> (multi-line input)</title>\n                <console prompt=\"pi@raspberrypi ~/progs/chap02 $ \">\n                    <input>\n                    gcc -Wall\n                        -o intAndFloat intAndFloat.c\n                    </input>\n                    <input>./intAndFloat</input>\n                    <output>\n                    The integer is 19088743 and the float is 19088.742188\n                    </output>\n                    <input/>\n                </console>\n            </listing>\n\n            <p>A <tag>console</tag> may specify a continuation symbol, as a prefix on every line but the first.</p>\n\n            <console>\n                <input prompt=\">>> \">\n                for x in range(0:20):\n                   print(x)\n                   print(\"Excellent!\")\n                </input>\n                <input prompt=\">>> \" continuation=\"... \">\n                for x in range(0:20):\n                   print(x)\n                   print(\"Excellent!\")\n                </input>\n                <!-- Test for empty input. Should create an empty entry. -->\n                <input/>\n                <!-- Test for only whitespace input. Should create an empty entry. -->\n                <input> </input>\n                <!-- Test for only whitespace input with newlines. Should create an empty entry. -->\n                <input>\n\n                </input>\n            </console>\n\n            <p>Notice in the HTML version of the above example that when you highlight all, or a portion, of the listing for a cut-and-paste that the prompts are not included.</p>\n\n            <p>Now a test of some listings (and pre-formatted text) in a block that likely has a background color in an HTML version.</p>\n\n            <exercise>\n                <title>Code in a colored(?) container</title>\n                <statement>\n                <p>Not really much of an exercise, but it should force a colored box.</p>\n                <p>Running a program in a console:</p>\n                <console>\n                    <input>\n                    ./program\n                    </input>\n                </console>\n                <pre>\n                    A pre\n                </pre>\n                </statement>\n            </exercise>\n\n            <p>The next listing is just absurdity, to check various characters from <latex/> that are otherwise employed by the code supporting consoles, and some Latin-1 characters.  We test each in a prompt, input, and output.  We use <c>(*</c> and <c>*)</c> as sequences used to escape embedded <latex/> commands, so we test those also.</p>\n\n            <listing>\n                <title>Console Session: problematic <latex /> characters</title>\n                <console>\n                    <input prompt=\"A backslash \\ here  \">A backslash \\ here</input>\n                    <output>A backslash \\ here</output>\n\n                    <input prompt=\"A begin group { here  \">A begin group { here</input>\n                    <output>A begin group { here</output>\n\n                    <input prompt=\"An end group { here  \">An end group } here</input>\n                    <output>An end group } here</output>\n\n                    <input prompt=\"An open escape sequence (* here  \">An open escape sequence (* here</input>\n                    <output>An open escape sequence (* here</output>\n\n                    <input prompt=\"An end escape sequence *) here  \">An end escape sequence *) here</input>\n                    <output>An end escape sequence *) here</output>\n\n                    <input prompt=\"Some quotation marks ` ' &quot; here  \">Some quotation marks ` ' \" here</input>\n                    <output>Some quotation marks ` ' \" here</output>\n\n                    <input prompt=\"The rest &amp; % $ # _ ~ ^ of LaTeX  \">The rest &amp; % $ # _ ~ ^ of LaTeX</input>\n                    <output>The rest &amp; % $ # _ ~ ^ of LaTeX</output>\n\n                    <input prompt=\"Latin-1: ÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß  \">Latin-1: ÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß</input>\n                    <output>Latin-1: ÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß</output>\n                </console>\n            </listing>\n\n            <p>A program can also have <tag>preamble</tag> and <tag>postamble</tag>. They are tested here mostly just for their handling of leading/trailing whitespace. Note that the indentation of the start/end tags for the subelements is intentionally chaotic, that should not affect the indentation of the output. (However, the actual contents of the various parts of the program must all be indented to a similar degree in the source.)</p>\n\n            <program language=\"python\" line-numbers=\"yes\">\n                <preamble>\n                    # meta: text in preamble with one trailing authored blank line\n                    def foo():\n                        return 42\n\n                      </preamble>\n\n                <code>\n\n                    # meta: text in code with one authored blank line before and after\n                    # meta: in the output there should be two blank lines above and three below\n                    # Your code for bar()\n\n                </code>\n                          <postamble>\n\n\n                    # meta: text in postamble with two authored blank lines preceding\n                    print(bar())</postamble>\n            </program>\n\n            <p>An interactive rendering of the same program should produce the same visible code. Both samples should end in a newline. There will be a visible difference between how this the empty line created by that newline rendered in plain HTML (the empty line is not included) and Runestone (the empty line is visible).</p>\n\n            <program language=\"python\" line-numbers=\"yes\" interactive=\"activecode\">\n                <preamble>\n                    # meta: text in preamble with one trailing authored blank line\n                    def foo():\n                        return 42\n\n                      </preamble>\n\n                <code>\n\n                    # meta: text in code with one authored blank line before and after\n                    # meta: in the output there should be two blank lines above and three below\n                    # Your code for bar()\n\n                </code>\n                          <postamble>\n\n\n                    # meta: text in postamble with two authored blank lines preceding\n                    print(bar())</postamble>\n            </program>\n\n            <p>We conclude this section with a longer example of a program listing, an assembly language program from Bob Plantz, included to test a <c>listing</c> breaking across pages in PDF output.</p>\n\n            <listing>\n                <title>A longer program listing</title>\n                <program>\n                    <code>\n                    @ structPass2.s\n                    @ Allocates two structs and assigns a value to each field\n                    @ in each struct, then displays the values.\n                    @ Bob Plantz - 6 July 2016\n\n                    @ Constants for assembler\n                            .include \"theTag_struct.s\"  @ theTag struct defs.\n                            .equ    y,-28           @ y struct\n                            .equ    x,-16           @ x struct\n                            .equ    locals,28       @ space for the structs\n\n                    @ Constant program data\n                            .section .rodata\n                            .align  2\n                    displayX:\n                            .asciz        \"x fields:\\n\"\n                    displayY:\n                            .asciz        \"y fields:\\n\"\n                    dispAChar:\n                            .asciz        \"         aChar = \"\n                    dispAnInt:\n                            .asciz        \"         anInt = \"\n                    dispOtherChar:\n                            .asciz        \"   anotherChar = \"\n\n                    @ The program\n                            .text\n                            .align  2\n                            .global main\n                            .type   main, %function\n                    main:\n                            stmfd   sp!, {r4, fp, lr}   @ save caller's info\n                            add     fp, sp, #8      @ our frame pointer\n                            sub     sp, sp, #locals @ for the structs\n\n                    @ fill the x struct\n                            add     r0, fp, #x      @ address of x struct\n                            mov     r1, #'1\n                            mov     r2, #456\n                            mov     r3, #'2\n                            bl      loadStruct\n\n                    @ fill the y struct\n                            add     r0, fp, #y      @ address of y struct\n                            mov     r1, #'a\n                            mov     r2, #123\n                            mov     r3, #'b\n                            bl      loadStruct\n\n                    @ display x struct\n                            add     r4, fp, #x        @ address of x struct\n                            ldr     r0, displayXaddr\n                            bl      writeStr\n                            ldr     r0, dispACharAddr @ display aChar\n                            bl      writeStr\n                            ldrb    r0, [r4, #aChar]\n                            bl      putChar\n                            bl      newLine\n                            ldr     r0, dispAnIntAddr @ display anInt\n                            bl      writeStr\n                            ldr     r0, [r4, #anInt]\n                            bl      putDecInt\n                            bl      newLine\n                            ldr     r0, dispOtherCharAddr @ display anotherChar\n                            bl      writeStr\n                            ldrb    r0, [r4, #anotherChar]\n                            bl      putChar\n                            bl      newLine\n\n                    @ display y struct\n                            add     r4, fp, #y        @ address of y struct\n                            ldr     r0, displayXaddr\n                            bl      writeStr\n                            ldr     r0, dispACharAddr @ display aChar\n                            bl      writeStr\n                            ldrb    r0, [r4, #aChar]\n                            bl      putChar\n                            bl      newLine\n                            ldr     r0, dispAnIntAddr @ display anInt\n                            bl      writeStr\n                            ldr     r0, [r4, #anInt]\n                            bl      putDecInt\n                            bl      newLine\n                            ldr     r0, dispOtherCharAddr @ display anotherChar\n                            bl      writeStr\n                            ldrb    r0, [r4, #anotherChar]\n                            bl      putChar\n                            bl      newLine\n\n                            mov     r0, #0          @ return 0;\n                            sub     sp, fp, #8      @ restore sp\n                            ldmfd   sp!, {r4, fp, pc}   @ restore and return\n\n                            .align  2\n                    @ addresses of messages\n                    displayXaddr:\n                            .word   displayX\n                    displayYaddr:\n                            .word   displayY\n                    dispACharAddr:\n                            .word   dispAChar\n                    dispAnIntAddr:\n                            .word   dispAnInt\n                    dispOtherCharAddr:\n                            .word   dispOtherChar\n                    </code>\n                </program>\n            </listing>\n        </section>\n\n        <section label=\"section-units-measure\">\n            <title>Units of Measure</title>\n\n            <p>Units of measure can be given xml treatment too with the <c>quantity</c> element. In <latex/>, the <c>siunitx</c><idx><h>siunitx package</h></idx><idx><h>package</h><h>siunitx</h></idx><idx><h>units</h></idx> package is loaded to achive unit handling. Since that package only offers SI units, some other common units will be added by <pretext/> in the preamble. In HTML, the capabilities of <c>siunitx</c> are simulated, weakly. Note that at present, you should not attempt to use the <c>quantity</c> element within a math environment.</p>\n            <p>The value of gravitational constant <m>g</m> is <quantity><mag>9.8</mag><unit base=\"meter\"/><per base=\"second\" exp=\"2\"/></quantity>. Force is measured in <quantity><unit prefix=\"kilo\" base=\"gram\"/><unit base=\"meter\"/><per base=\"second\" exp=\"2\"/></quantity>, also known as one <quantity><unit base=\"newton\"/></quantity>. A quantity with rather ridiculous units is <quantity><mag>23</mag><unit prefix='micro' base='hectare' exp='23'/><per base='degreeCelsius'/><per base='second' exp='2'/></quantity>. One <quantity><unit base=\"hertz\"/></quantity> is the same as <quantity><per base='second'/></quantity>. You can have a unitless quantity, like <quantity><mag>42</mag></quantity>, which may help with consistency between such numbers and units in the <latex/> output. Some non-SI units are available, such as the absurd <quantity><unit base=\"degreeFahrenheit\"/><unit base=\"foot\"/><unit base=\"pound\"/><per base=\"gallon\"/></quantity>.  The <latex/> command <c>\\pi</c> is recognized within <c>mag</c> in conversions to HTML, which is consistent with the behavior with a conversion to <latex/>, for example there are\n            <quantity>\n                <mag>2\\pi</mag>\n                <unit base=\"radian\"/>\n            </quantity>\n            in a full circle.  This is a similar quantity with multiple occurences of <c>\\pi</c> to test a particular template used for HTML output.  It is not meant to make any sense:\n            <quantity>\n                <mag>21\\pi45\\pi234\\pi890</mag>\n                <unit base=\"radian\"/>\n            </quantity>.</p>\n\n            <p>For a full list of the allowed units and prefixes, see <c>pretext-units.xsl</c>. If you have a need for more units, they need to be added to <c>pretext-units.xsl</c> in the section that deals with units which are not part of <c>siunitx</c> by default.  Note that the <c>mag</c> element should come first, followed by the <c>unit</c> element, followed by the <c>per</c> element.</p>\n\n        </section>\n\n        <section xml:id=\"section-side-by-side\" label=\"section-side-by-side\">\n            <title>Side-By-Side Panels</title>\n\n            <introduction>\n                <title>Introduction</title>\n\n                <p>The flow of a page is almost universally top-to-bottom.  But at times you would like to go <em>across</em> a page, perhaps to compare items (identical content in two different languages), or to make good use of a page real estate by grouping several small items together (<eg/> images).  So the <tag>sidebyside</tag> tag is strictly a layout device, though it does convey some meaning by grouping certain objects together. A variety of different objects can be put side-by-side using the <c>sidebyside</c> element.  Specifically, <c>figure</c>, <c>image</c>, <c>tabular</c>, <c>p</c>, <c>ol</c>, <c>ul</c>, <c>dl</c>, <c>pre</c>, <c>poem</c>, and more.  The individual components of a <tag>sidebyside</tag> are generically called <term>panels</term><idx>panels</idx>.</p>\n\n                <p>As a layout device, the <tag>sidebyside</tag> does not allow a <tag>caption</tag>, is never numbered, and therefore cannot be cross-referenced.  You may cross-reference whatever element holds the <tag>sidebyside</tag>, and many of the panels may be cross-referenced individually.</p>\n\n                <p>As a first example, we have two single paragraphs, laid out with different widths, and slight margins on each side.  The widths have been chosen experimentally to get roughly identical heights for the two paragraphs of varying length.</p>\n\n                <sidebyside widths=\"60% 31%\" margins=\"3%\">\n                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lorem diam, convallis in nulla sed, accumsan fermentum urna. Pellentesque aliquet leo elit, ut consequat nunc dapibus ac. Sed lobortis leo tincidunt, vulputate nunc at, ultricies leo. Vivamus purus diam, tristique laoreet purus eget, mollis gravida sapien. Nunc vulputate nisl ac mauris hendrerit cursus. Sed vel molestie velit. Suspendisse sem sem, elementum at vehicula id, volutpat ac mi. Nullam ullamcorper fringilla purus in accumsan. Mauris at nunc accumsan orci dictum vulputate id id augue. Suspendisse at dignissim elit, non euismod nunc. Aliquam faucibus magna ac molestie semper. Aliquam hendrerit sem sit amet metus congue tempor. Donec laoreet laoreet metus, id interdum purus mattis vulputate. Proin condimentum vitae erat varius mollis. Donec venenatis libero sed turpis pretium tempor.</p>\n\n                    <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra. Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                </sidebyside>\n            </introduction>\n\n            <subsection>\n                <title>Figures with Numbers Side-By-Side</title>\n\n                <p>Figures, or other captioned items such as tables or listings, can be placed side-by-side using the <c>sidebyside</c> element.  The figures will be captioned and numbered as if they were part of the vertical flow of the document.  For example, see <xref ref=\"regular-figure\" text=\"type-global\"/> and <xref ref=\"another-regular-figure\" text=\"type-global\"/></p>\n\n                <p>However, if the <tag>sidebyside</tag> is placed inside another <tag>figure</tag>, then the outer figure gets an overall caption and a <q>regular</q> number, while the captions of the interior items will be labelled as (a), (b), (c), etc; for example, see the subfigures in <xref ref=\"fig-sidebyside-global\" text=\"type-global\"/>. You can also cross-reference the subfigures individually, for example: <xref ref=\"fig-sidebyside-subfigure\" text=\"type-global\"/>.</p>\n\n                <p>The <c>sidebyside</c> tag can have an attribute <c>widths</c> that specifies a percentage width of the page for each panel of the layout.  There are automatic margins by default, and any remaining width is divided evenly to space out the panels.  When the <c>margins</c> attribute is given as <c>auto</c>, or in the default case, the margins provided each equal half of the inter-panel space.</p>\n\n                <p>With no attributes on the <c>sidebyside</c>, each panel is the same width and there is no inter-panel space and no margin.  For a <c>sidebyside</c> with a single panel, with its width specified, the panel will be centered.</p>\n\n                <figure xml:id=\"fig-sidebyside-global\">\n                    <caption>Side-by-Side, with figures as children, automatic margin</caption>\n                    <sidebyside widths=\"25.67% 25%\">\n                        <figure xml:id=\"fig-sidebyside-subfigure\">\n                            <caption></caption>\n                            <image source=\"images/cross-square.png\">\n                                <shortdescription>a white square outlined in blue covered by a black X</shortdescription>\n                            </image>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-square.png\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n\n                <figure>\n                    <caption>Side-by-Side, with figures as children, margin set to zero</caption>\n                    <sidebyside widths=\"50% 25%\" margins=\"0%\">\n                        <figure>\n                            <caption>width=50%</caption>\n                            <image source=\"images/cross-square.png\"/>\n                        </figure>\n                        <figure>\n                            <caption>width=25%</caption>\n                            <!-- a comment in a location like this once revealed a bug -->\n                            <image source=\"images/cross-square.png\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n\n                <figure>\n                    <caption>Widths calculated automatically, all defaults</caption>\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-square.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-square.png\"/>\n                        </figure>\n                        <figure>\n                        <caption></caption>\n                        <image source=\"images/cross-square.png\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n\n                <sidebyside widths=\"25% 25% 50%\">\n                    <figure xml:id=\"regular-figure\">\n                        <caption>Interior figure</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                    <figure xml:id=\"another-regular-figure\">\n                        <caption>Regular numbering</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                    <figure xml:id=\"yet-another-regular-figure\">\n                        <caption>Regular numbering</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                </sidebyside>\n            </subsection>\n\n            <subsection>\n                <title>Images</title>\n\n                <p>We can use the <c>sidebyside</c> element to put <c>images</c><idx>image</idx> next to each other.  These will illustrate a text, but with no captions or numbers, cannot be cross-referenced.  This next example has <c>10%</c> margins, and the panels have widths <c>25%</c> and <c>40%</c>, leaving <c>15%</c> computed as the one inter-panel space.</p>\n\n                <sidebyside widths=\"25% 40%\" margins=\"10%\">\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                </sidebyside>\n\n                <p>Now we fine-tune with different widths (which add up to 100%).  The five images have been given different vertical alignments, <c>top middle bottom top middle</c> via the <c>valigns</c> attribute.</p>\n\n                <sidebyside widths=\"10% 30% 20% 20% 20%\" margins=\"0%\" valigns=\"top middle bottom top middle\">\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                </sidebyside>\n\n                <p>If you want an overall caption to a group of images, but no sub-captions on your images, that is also straightforward.  This example has no attributes specified.  The overall <tag>figure</tag> may be cross-referenced, as <xref ref=\"figure-double-image\" text=\"type-global\"/></p>\n\n                <figure xml:id=\"figure-double-image\">\n                    <caption>Two equally-spaced (identical) images</caption>\n                    <sidebyside>\n                        <image source=\"images/cross-square.png\"/>\n                        <image source=\"images/cross-square.png\"/>\n                    </sidebyside>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Common Side-By-Side Constructions</title>\n\n                <p>We have now seen at least one example of each of the four most common constructions involving <c>sidebyside</c>.  Working from the exterior inward, we can go <c>figure</c>, <c>sidebyside</c>, <c>figure</c>, <c>X</c>, where <c>X</c> is some atomic (unnumbered) item we might use elsewhere in a <pretext/> document, the inner <c>figure</c> may be repeated with different objects <c>X</c>, and the <c>figure</c>s have captions.  Each <c>figure</c> is independently optional, leading to the four combinations in this table.  Note this applies to any captioned item used inside the <c>sidebyside</c>, but a <c>figure</c> is the most flexible.</p>\n\n                <table>\n                    <title><c>sidebyside</c> and <c>figure</c> interactions</title>\n                    <tabular>\n                        <row bottom=\"major\">\n                            <cell>Outer Figure</cell><cell>Inner Figure</cell><cell>Effect</cell>\n                        </row>\n                        <row>\n                            <cell>Absent</cell><cell>Absent</cell><cell>Layout only, no numbers nor captions</cell>\n                        </row>\n                        <row>\n                            <cell>Absent</cell><cell>Present</cell><cell>Numbers and captions on figure(s)</cell>\n                        </row>\n                        <row>\n                            <cell>Present</cell><cell>Absent</cell><cell>Number and overall caption</cell>\n                        </row>\n                        <row valign=\"top\">\n                            <cell>Present</cell><cell>Present</cell><cell><line>Number and overall caption,</line><line>sub-numbers and captions on figure(s)</line></cell>\n                        </row>\n                    </tabular>\n                </table>\n            </subsection>\n\n            <subsection>\n                <title>Vertical Alignment</title>\n                <p>Vertical alignment can be specified using the <c>valign</c> attribute which admits a space-separated list of <c>top</c>, <c>middle</c>, and <c>bottom</c>; the default is <c>top</c>.</p>\n\n                <!-- Following paragraph will just barely push following sidebyside -->\n                <!-- onto a new page, to test that the captions remain attached     -->\n                <!-- (presuming no edits prior!).  Removing a line should bring the -->\n                <!-- sidebyside back to fill the previous page, intact.  So keep    -->\n                <!-- this in place for use in testing.                              -->\n\n                <!--\n                <p>\\noindent\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a\n                Vertical alignment can be specified using the <c>valign</c> attribute which admits a</p>\n                -->\n\n                <sidebyside widths=\"33% 17% 50%\" valigns=\"middle top middle\">\n                    <figure>\n                        <caption>Middle</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                    <figure>\n                        <caption>Top</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                    <figure>\n                        <caption>Middle</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                </sidebyside>\n\n                <p>The singular version of the attribute, <c>valign</c>, can provide the same alignment to each panel, here we use five different widths, but all with vertical alignment of <c>middle</c>.</p>\n\n                <sidebyside widths=\"2% 15% 20% 8% 25%\" valign=\"middle\">\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                    <image source=\"images/cross-square.png\"/>\n                </sidebyside>\n            </subsection>\n\n            <subsection>\n                <title>Text Next to Text and Images</title>\n\n                <p>Text can be put next to other blocks of text using the <c>stack</c> element, which can contain multiple paragraphs using the <c>p</c> element (see <xref ref=\"stacking-side-by-side\" text=\"type-global\"/>).  If only one paragraph is required, simply use the <c>p</c> element on its own.</p>\n\n                <sidebyside widths=\"20% 20% 20% 20%\" valigns=\"middle top middle top\">\n                    <stack>\n                        <p>here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text</p>\n                    </stack>\n                    <stack>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                    </stack>\n                    <p>here is some text here is some text here is some text here is some text here</p>\n                    <p>here is some text here is some text here is some text here is some text here</p>\n                </sidebyside>\n\n                <p>Similarly, text can be put next to images.</p>\n\n                <sidebyside widths=\"50% 20%\" valigns=\"middle top\">\n                    <p>here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text cross reference: <xref ref=\"text-next-to-figure\" text=\"type-global\"/> and math: <m>x^2</m></p>\n                    <image source=\"images/cross-square.png\"/>\n                </sidebyside>\n\n                <p>You can place text next to numbered figures, as shown below in <xref ref=\"text-next-to-figure\" text=\"type-global\"/>.</p>\n\n                <sidebyside widths=\"50% 20%\" valigns=\"middle top\">\n                    <p>here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text here is some text; cross reference: <xref ref=\"text-next-to-figure\" text=\"type-global\"/> and math: <m>x^2</m></p>\n                    <figure xml:id=\"text-next-to-figure\">\n                        <caption>Text next to a figure</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                </sidebyside>\n            </subsection>\n\n            <subsection>\n                <title>Image Formats, Side-by-Sides</title>\n\n                <p>Most of our demonstrations here use our square <q>blue cross</q> test image, which is provided as a <init>PNG</init> image.  You may specify images by any of the methods described in the section on graphics, <xref ref=\"graphics\" text=\"type-global\"/>.  The complete graph below is specified with no file extension, on the assumption that an <init>SVG</init> version exists for <init>HTML</init> output, and a <init>PDF</init> version exists for <latex/> output.  The second is a <init>JPEG</init> image that we use elsewhere for a YouTube video, but recycle here as an image provided in that format.  By default, they are aligned at their tops.</p>\n\n                <sidebyside widths=\"30% 30%\" margins=\"auto\">\n                    <image source=\"images/complete-graph\"/>\n                    <image source=\"images/led-zeppelin-kashmir.jpg\" archive=\"jpg\"/>\n                </sidebyside>\n\n                <p>Here are two TikZ images, authored side-by-side.  The first has had its geometric portions of the original scaled down to 75%, with the effect of increasing the text, relatively, so the application in a side-by-side panel with 25% width has legible text.  We caption only the second panel, which has no text adjustments.  From <url href=\"http://www.texample.net/tikz/examples/\" visual=\"www.texample.net/tikz/examples/\">TeXample.net</url>.</p>\n\n                <sidebyside widths=\"25% 25% 35%\" margins=\"auto\">\n                    <!-- http://www.texample.net/tikz/examples/venn/ -->\n                    <!-- :Title: A Venn diagram with PDF blending    -->\n                    <!-- :Tags: Diagrams;Cookbook                    -->\n                    <!-- :Author: Stefan Kottwitz                    -->\n                    <!-- :Slug: venn                                 -->\n                    <!-- PDF blend mode requires TikZ version 3.0 or above. -->\n                    <image xml:id=\"tikz-venn-diagram\" archive=\"pdf svg\">\n                        <latex-image>\n                        \\begin{tikzpicture}[scale=0.75]\n                          \\begin{scope}[blend group = soft light]\n                            \\fill[red!30!white]   ( 90:1.2) circle (2);\n                            \\fill[green!30!white] (210:1.2) circle (2);\n                            \\fill[blue!30!white]  (330:1.2) circle (2);\n                          \\end{scope}\n                          \\node at ( 90:2)    {Typography};\n                          \\node at ( 210:2)   {Design};\n                          \\node at ( 330:2)   {Coding};\n                          \\node [font=\\Large] {\\LaTeX};\n                        \\end{tikzpicture}\n                        </latex-image>\n                    </image>\n                    <!--  -->\n                    <figure>\n                        <caption><tex/> Work Flow</caption>\n                        <image xml:id=\"tikz-tex-workflow\">\n                            <!-- http://www.texample.net/tikz/examples/smart-circle/ -->\n                            <!-- :Title: A circular diagram of a TeX workflow        -->\n                            <!-- :Tags: Diagrams;Flowcharts;Smartdiagram;Cookbook    -->\n                            <!-- :Author: Stefan Kottwitz                            -->\n                            <!-- :Slug: smart-circle                                 -->\n                            <!-- A diagram showing a TeX workflow using the          -->\n                            <!-- clever  smartdiagram  package. (in premable)        -->\n                            <latex-image>\n                            \\smartdiagram[circular diagram:clockwise]{Edit,\n                            pdf\\LaTeX, Bib\\TeX/ biber, make\\-index, pdf\\LaTeX}\n                            </latex-image>\n                        </image>\n                    </figure>\n                    <!--  -->\n                    <p>Images by Stefan Kottwitz<ul>\n                        <li><url href=\"http://www.texample.net/tikz/examples/venn/\" visual=\"www.texample.net/tikz/examples/venn/\">Venn Diagram</url></li>\n                        <li><url href=\"http://www.texample.net/tikz/examples/smart-circle/\" visual=\"www.texample.net/tikz/examples/smart-circle/\">Work Flow</url></li>\n                    </ul></p>\n                 </sidebyside>\n            </subsection>\n\n            <subsection>\n                <title>Tables Side-By-Side</title>\n\n                <p>Tables<idx>table</idx> can also be put side-by-side, as demonstrated below in <xref ref=\"table-sidebyside-global\" text=\"type-global\"/>; naturally, subtables can be referenced as in <xref ref=\"table-sidebyside-subtable\" text=\"type-global\"/>.</p>\n\n                <figure xml:id=\"table-sidebyside-global\">\n                    <caption>Side-by-Side, with tables as children</caption>\n                    <sidebyside widths=\"50% 25%\">\n                        <table xml:id=\"table-sidebyside-subtable\">\n                            <title>width=50%</title>\n                            <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                                <col right=\"medium\"/>\n                                <col right=\"major\"/>\n                                <col/>\n                                <!--  -->\n                                <row bottom=\"medium\">\n                                    <cell>1111</cell>\n                                    <cell right=\"minor\">2222</cell>\n                                </row>\n                                <row bottom=\"major\">\n                                    <cell>aaaa</cell>\n                                    <cell right=\"medium\">bbbb</cell>\n                                </row>\n                                <row>\n                                    <cell bottom=\"minor\">AAAA</cell>\n                                    <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                                </row>\n                            </tabular>\n                        </table>\n                        <table>\n                            <title>width=25%</title>\n                            <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                                <col right=\"medium\"/>\n                                <col right=\"major\"/>\n                                <col/>\n                                <!--  -->\n                                <row bottom=\"medium\">\n                                    <cell>1111</cell>\n                                    <cell right=\"minor\">2222</cell>\n                                </row>\n                                <row bottom=\"major\">\n                                    <cell>aaaa</cell>\n                                    <cell right=\"medium\">bbbb</cell>\n                                </row>\n                                <row>\n                                    <cell bottom=\"minor\">AAAA</cell>\n                                    <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                                </row>\n                            </tabular>\n                        </table>\n                    </sidebyside>\n                </figure>\n\n                <figure>\n                    <caption>Widths can be calculated automatically</caption>\n                    <sidebyside>\n                        <table>\n                            <title>Table with automatic widths</title>\n                            <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                                <col right=\"medium\"/>\n                                <col right=\"major\"/>\n                                <col/>\n                                <!--  -->\n                                <row bottom=\"medium\">\n                                    <cell>1111</cell>\n                                    <cell right=\"minor\">2222</cell>\n                                </row>\n                                <row bottom=\"major\">\n                                    <cell>aaaa</cell>\n                                    <cell right=\"medium\">bbbb</cell>\n                                </row>\n                                <row>\n                                    <cell bottom=\"minor\">AAAA</cell>\n                                    <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                                </row>\n                            </tabular>\n                        </table>\n                        <table>\n                            <title>Table with automatic widths</title>\n                            <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                                <col right=\"medium\"/>\n                                <col right=\"major\"/>\n                                <col/>\n                                <!--  -->\n                                <row bottom=\"medium\">\n                                    <cell>1111</cell>\n                                    <cell right=\"minor\">2222</cell>\n                                </row>\n                                <row bottom=\"major\">\n                                    <cell>aaaa</cell>\n                                    <cell right=\"medium\">bbbb</cell>\n                                </row>\n                                <row>\n                                    <cell bottom=\"minor\">AAAA</cell>\n                                    <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                                </row>\n                            </tabular>\n                        </table>\n                    </sidebyside>\n                </figure>\n\n                <!-- the \"Tables\" content interior to the xref will override any autonaming -->\n                <p>If you put two <c>table</c> elements side-by-side without an enclosing <tag>figure</tag>, then they will use regular numbering; see <xref first=\"table-regular-fig1\" last=\"table-regular-fig3\">Tables</xref>.</p>\n\n                <sidebyside>\n                    <table xml:id=\"table-regular-fig1\">\n                        <title></title>\n                        <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                            <col right=\"medium\"/>\n                            <col right=\"major\"/>\n                            <col/>\n                            <!--  -->\n                            <row bottom=\"medium\">\n                                <cell>1111</cell>\n                                <cell right=\"minor\">2222</cell>\n                            </row>\n                            <row bottom=\"major\">\n                                <cell>aaaa</cell>\n                                <cell right=\"medium\">bbbb</cell>\n                            </row>\n                            <row>\n                                <cell bottom=\"minor\">AAAA</cell>\n                                <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                            </row>\n                        </tabular>\n                    </table>\n                    <table xml:id=\"table-regular-fig2\">\n                        <title></title>\n                        <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                            <col right=\"medium\"/>\n                            <col right=\"major\"/>\n                            <col/>\n                            <!--  -->\n                            <row bottom=\"medium\">\n                                <cell>1111</cell>\n                                <cell right=\"minor\">2222</cell>\n                            </row>\n                            <row bottom=\"major\">\n                                <cell>aaaa</cell>\n                                <cell right=\"medium\">bbbb</cell>\n                            </row>\n                            <row>\n                                <cell bottom=\"minor\">AAAA</cell>\n                                <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                            </row>\n                        </tabular>\n                    </table>\n                    <table xml:id=\"table-regular-fig3\">\n                        <title></title>\n                        <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                            <col right=\"medium\"/>\n                            <col right=\"major\"/>\n                            <col/>\n                            <!--  -->\n                            <row bottom=\"medium\">\n                                <cell>1111</cell>\n                                <cell right=\"minor\">2222</cell>\n                            </row>\n                            <row bottom=\"major\">\n                                <cell>aaaa</cell>\n                                <cell right=\"medium\">bbbb</cell>\n                            </row>\n                            <row>\n                                <cell bottom=\"minor\">AAAA</cell>\n                                <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                            </row>\n                        </tabular>\n                    </table>\n                </sidebyside>\n            </subsection>\n\n\n            <subsection>\n                <title>Tables Next to Figures</title>\n\n                <p>Tables and figures can go next to each other, as demonstrated in <xref ref=\"table-next-figure\" text=\"type-global\"/> and <xref ref=\"figure-next-table\" text=\"type-global\"/>, plus within an overall captioned figure, <xref ref=\"figure-table-captioned\" text=\"type-global\"/>.</p>\n\n                <sidebyside>\n                    <table xml:id=\"table-next-figure\">\n                        <title>Table next to a Figure</title>\n                        <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                            <col right=\"medium\"/>\n                            <col right=\"major\"/>\n                            <col/>\n                            <!--  -->\n                            <row bottom=\"medium\">\n                                <cell>1111</cell>\n                                <cell right=\"minor\">2222</cell>\n                            </row>\n                            <row bottom=\"major\">\n                                <cell>aaaa</cell>\n                                <cell right=\"medium\">bbbb</cell>\n                            </row>\n                            <row>\n                                <cell bottom=\"minor\">AAAA</cell>\n                                <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                             </row>\n                        </tabular>\n                    </table>\n                    <!--  -->\n                    <figure xml:id=\"figure-next-table\">\n                        <caption>Figure next to a Table</caption>\n                        <image source=\"images/cross-square.png\"/>\n                    </figure>\n                </sidebyside>\n\n                <figure xml:id=\"figure-table-captioned\">\n                    <caption>Figure and Table, with overall caption, hence sub-captioned</caption>\n                    <sidebyside>\n                        <table xml:id=\"table-next-figure-sublabeled\">\n                            <title>Table next to a Figure</title>\n                            <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                                <col right=\"medium\"/>\n                                <col right=\"major\"/>\n                                <col/>\n                                <!--  -->\n                                <row bottom=\"medium\">\n                                    <cell>1111</cell>\n                                    <cell right=\"minor\">2222</cell>\n                                </row>\n                                <row bottom=\"major\">\n                                    <cell>aaaa</cell>\n                                    <cell right=\"medium\">bbbb</cell>\n                                </row>\n                                <row>\n                                    <cell bottom=\"minor\">AAAA</cell>\n                                    <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                                 </row>\n                            </tabular>\n                        </table>\n                        <!--  -->\n                        <figure xml:id=\"figure-next-table-sublabeled\">\n                            <caption>Figure next to a Table</caption>\n                            <image source=\"images/cross-square.png\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Tables Next to Text</title>\n\n                <p>Tables can go next to blocks of text using the <tag>stack</tag> element (see <xref ref=\"stacking-side-by-side\" text=\"type-global\"/>).</p>\n\n                <sidebyside widths=\"50% 20% 20%\" valigns=\"top top middle\">\n                    <table>\n                        <title>Table next to text</title>\n                        <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                            <col right=\"medium\"/>\n                            <col right=\"major\"/>\n                            <col/>\n                            <!--  -->\n                            <row bottom=\"medium\">\n                                <cell>1111</cell>\n                                <cell right=\"minor\">2222</cell>\n                            </row>\n                            <row bottom=\"major\">\n                                <cell>aaaa</cell>\n                                <cell right=\"medium\">bbbb</cell>\n                            </row>\n                            <row>\n                                <cell bottom=\"minor\">AAAA</cell>\n                                <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                            </row>\n                        </tabular>\n                    </table>\n                    <stack>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                    </stack>\n                    <stack>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                        <p>here is some text here is some text here is some text here is some text here</p>\n                    </stack>\n                </sidebyside>\n            </subsection>\n\n            <subsection>\n                <title>Tabular Next to Each Other</title>\n\n                <p>Four <c>tabular</c> elements inside a single <tag>sidebyside</tag> will result in no captions at all.</p>\n\n                <sidebyside>\n                    <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                        <col right=\"medium\"/>\n                        <col right=\"major\"/>\n                        <col/>\n                        <!--  -->\n                        <row bottom=\"medium\">\n                            <cell>1111</cell>\n                            <cell right=\"minor\">2222</cell>\n                        </row>\n                        <row bottom=\"major\">\n                            <cell>aaaa</cell>\n                            <cell right=\"medium\">bbbb</cell>\n                        </row>\n                        <row>\n                            <cell bottom=\"minor\">AAAA</cell>\n                            <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                        </row>\n                        <row>\n                            <cell>CCCC</cell>\n                            <cell>DDDD</cell>\n                        </row>\n                    </tabular>\n                    <tabular valign=\"top\" top=\"minor\" left=\"minor\" halign=\"center\">\n                        <col right=\"medium\"/>\n                        <col right=\"major\"/>\n                        <col/>\n                        <!--  -->\n                        <row bottom=\"medium\">\n                            <cell>1111</cell>\n                            <cell right=\"minor\">2222</cell>\n                        </row>\n                        <row bottom=\"major\">\n                            <cell>aaaa</cell>\n                            <cell right=\"medium\">bbbb</cell>\n                        </row>\n                        <row>\n                            <cell bottom=\"minor\">AAAA</cell>\n                            <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                        </row>\n                    </tabular>\n                    <tabular valign=\"middle\" top=\"minor\" left=\"minor\" halign=\"center\">\n                        <col right=\"medium\"/>\n                        <col right=\"major\"/>\n                        <col/>\n                        <!--  -->\n                        <row bottom=\"medium\">\n                            <cell>1111</cell>\n                            <cell right=\"minor\">2222</cell>\n                        </row>\n                        <row bottom=\"major\">\n                            <cell>aaaa</cell>\n                            <cell right=\"medium\">bbbb</cell>\n                        </row>\n                        <row>\n                            <cell bottom=\"minor\">AAAA</cell>\n                            <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                        </row>\n                    </tabular>\n                    <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                        <col right=\"medium\"/>\n                        <col right=\"major\"/>\n                        <col/>\n                        <!--  -->\n                        <row bottom=\"medium\">\n                            <cell>1111</cell>\n                            <cell right=\"minor\">2222</cell>\n                        </row>\n                        <row bottom=\"major\">\n                            <cell>aaaa</cell>\n                            <cell right=\"medium\">bbbb</cell>\n                        </row>\n                        <row>\n                            <cell bottom=\"minor\">AAAA</cell>\n                            <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                        </row>\n                    </tabular>\n                </sidebyside>\n            </subsection>\n\n            <subsection>\n                <title>Lists in Side-by-Sides</title>\n\n                <p>A <q>regular</q> list normally belongs in a <c>p</c> but it can be placed unadorned into a panel of a side-by-side, as demonstrated below in <xref ref=\"subsection-sbs-other-panels\" text=\"type-global\"/>.  You can also put <q>named</q> lists into a panel, and then the title, introduction, conclusion, and caption will behave as expected, along with a number that might be used in a cross-reference (<xref ref=\"color-list-as-panel\" text=\"global\"/>), or perhaps we might cross-reference by title, <xref ref=\"color-list-as-panel\" text=\"title\"/>.</p>\n\n                <figure>\n                    <caption>Two named lists</caption>\n                    <sidebyside widths=\"30% 60%\" valign=\"top\">\n                        <list>\n                            <title>Sea Life</title>\n                            <introduction>\n                                <p>Dr. Seuss again.</p>\n                            </introduction>\n                            <ul>\n                                <li>One fish</li>\n                                <li>Two fish<fn>Not fishes</fn></li>\n                                <li>Red fish</li>\n                                <li>Blue fish</li>\n                            </ul>\n                        </list>\n                        <list xml:id=\"color-list-as-panel\">\n                            <title>Color Shades</title>\n                            <idx><h>colors</h><h>shades</h></idx>\n                            <ol>\n                                <li><p>Blue<fn>in many shades</fn><ol>\n                                    <li>Light</li>\n                                    <li>Navy</li>\n                                    <li>Royal</li>\n                                </ol></p></li>\n                                <li><p>Red<ol>\n                                    <li>Maroon</li>\n                                    <li>Pink</li>\n                                    <li>Shocking</li>\n                                </ol></p></li>\n                            </ol>\n                            <conclusion>\n                                <p>This ends our example.</p>\n                            </conclusion>\n                        </list>\n                    </sidebyside>\n                </figure>\n\n                <p>These same two lists can individually be the panels of a <tag>sidebyside</tag>, where here vertical alignment on the <c>bottom</c> attempts to align the titles, which are placed below for panels of a <tag>sidebyside</tag>.</p>\n\n                <sidebyside widths=\"30% 60%\" valign=\"bottom\">\n                    <list>\n                        <title>Sea Life</title>\n                        <introduction>\n                            <p>Dr. Seuss again.</p>\n                        </introduction>\n                        <ul>\n                            <li>One fish<fn>No more fishes</fn></li>\n                            <li>Two fish</li>\n                            <li>Red fish</li>\n                            <li>Blue fish</li>\n                        </ul>\n                    </list>\n                    <list xml:id=\"color-list-as-panel-in-sbs\">\n                        <title>Color Shades</title>\n                        <idx><h>colors</h><h>shades</h></idx>\n                        <ol>\n                            <li><p>Blue<ol>\n                                <li>Light</li>\n                                <li>Navy</li>\n                                <li>Royal</li>\n                            </ol></p></li>\n                            <li><p>Red<fn>a really nice color</fn><ol>\n                                <li>Maroon</li>\n                                <li>Pink</li>\n                                <li>Shocking</li>\n                            </ol></p></li>\n                        </ol>\n                        <conclusion>\n                            <p>This ends our example.</p>\n                        </conclusion>\n                    </list>\n                </sidebyside>\n\n                <p>We also need to test a <c>sidebyside</c> in a list.  The widths are now relative to the space given over to an indented item.  Here we nest and nest and nest and nest to get a big, obvious indentation, and then include an image at 100% width and no margin.  In your mind's eye, or with a ruler, check that the image spans all the way over to the right margin.<ol>\n                    <li><p>This is<ol>\n                        <li><p>a very<ol>\n                            <li><p>wide<ol>\n                                    <li>\n                                        <p>rectangle</p>\n                                        <image source=\"images/cross-rectangle.png\" margins=\"0%\" width=\"100%\"/>\n                                    </li>\n                            </ol></p></li>\n                        </ol></p></li>\n                    </ol></p></li>\n                </ol></p>\n            </subsection>\n\n            <subsection xml:id=\"stacking-side-by-side\">\n                <title>Stacking: Back to Vertical Flow</title>\n\n                <p>You might wish to mix disparate items within a panel, returning to a vertical flow within a panel.  For example, you might want a diagram to the left and some paragraphs of commentary to the right.  Or perhaps a photograph on one side and a list of bullet points to the other side.  A <tag>stack</tag> is a container that can only be used to collect several items into a single panel of a <tag>sidebyside</tag>.  You cannot point to it, but you can point to its contents as usual.  Contents may be anything you could otherwise put into a <c>sidebyside</c> panel that does not have a <tag>caption</tag> or a <tag>title</tag>.  In particular, these panels cannot be sub-numbered since the panel cannot be made into a <tag>figure</tag>.</p>\n\n                <p>Similar items can also be stacked, of course.  Most importantly, a normal panel will accept a single paragraph.  If you want several paragraphs, simply collect them in a <c>stack</c>.</p>\n\n                <sidebyside widths=\"55% 35%\" valigns=\"middle top\">\n                    <stack>\n                        <p>A simple sentence inside a single <tag>p</tag> as the first item in a stack.</p>\n                        <image source=\"images/cross-rectangle.png\"/>\n                    </stack>\n                    <stack>\n                        <image source=\"images/cross-rectangle.png\"/>\n                        <p>A less simple sentence that will wrap inside the panel to make the right panel taller and allow us to experiment with sliding the left panel contents up and down, here it is placed in the <c>middle</c>.</p>\n                    </stack>\n                </sidebyside>\n\n                <p>We have an image to the left, as a regular panel (not a stack).  In the right panel we stack a list of properties, followed by a descriptive paragraph.  We middle-align the stack at the <c>bottom</c>, just as a demonstration (it would likely look better with <c>top</c> alignment).</p>\n\n                <sidebyside widths=\"60% 30%\" valigns=\"top bottom\">\n                    <image source=\"images/cross-square.png\"/>\n                    <stack>\n                        <ul>\n                            <li>Blue</li>\n                            <li>Square</li>\n                            <li>Geometric</li>\n                        </ul>\n                        <p>The blue-ness of the border contrasts with the stark emptieness of the white interior, evoking images of blue skies and vast sandy deserts.  The harsh black cross draws the viewer's attention to the exact center.</p>\n                    </stack>\n                </sidebyside>\n\n                <p>In <latex/> an image or a tabular can be used <em>within</em> a paragraph.  Here we test a mixture of the three items to make sure they are properly separated in a conversion to <latex/>.</p>\n\n                 <sidebyside widths=\"30% 25%\">\n                    <stack>\n                        <p>Paragraph one.</p>\n                        <image source=\"images/cross-square.png\"/>\n                        <p>Paragraph two.</p>\n                        <tabular top=\"minor\" left=\"minor\" halign=\"center\">\n                            <col right=\"medium\"/>\n                            <col right=\"major\"/>\n                            <col/>\n                            <!--  -->\n                            <row bottom=\"medium\">\n                                <cell>1111</cell>\n                                <cell right=\"minor\">2222</cell>\n                            </row>\n                            <row bottom=\"major\">\n                                <cell>aaaa</cell>\n                                <cell right=\"medium\">bbbb</cell>\n                            </row>\n                            <row>\n                                <cell bottom=\"minor\">AAAA</cell>\n                                <cell bottom=\"major\" right=\"major\">BBBB</cell>\n                            </row>\n                        </tabular>\n                    </stack>\n                    <image source=\"images/cross-square.png\"/>\n                </sidebyside>\n\n                <p>We imagine a <tag>sidebyside</tag> using a <tag>stack</tag> to enable constructions like a table of data in one panel, and maybe a plot with some text next to it.</p>\n\n                <p>In the toy example next, the list of data is rigid, so we have set the first panel width to <c>40%</c>, a value obtained experimentally to just contain the list.  This allow us to set the second panel to a width of <c>58%</c>, and we use no margins.  If you try to balance the heights of the two panels, this can become a bit of a zero-sum game.  A wider second column means the text occupies fewer lines, but the wider image also creates a taller image, consuming more vertical space.</p>\n\n                <figure>\n                    <caption>Experimental results collected in a figure</caption>\n                    <sidebyside widths=\"40% 58%\">\n                        <tabular top=\"major\" halign=\"center\">\n                            <row bottom=\"minor\">\n                                <cell><m>i</m></cell>\n                                <cell><m>t_i</m></cell>\n                                <cell><m>x_i</m></cell>\n                                <cell><m>y_i</m></cell>\n                            </row>\n                            <row> <cell>0</cell><cell>0.00</cell><cell>0.0000</cell><cell>0.5000</cell></row>\n                            <row> <cell>1</cell><cell>0.20</cell><cell>0.1000</cell><cell>0.4800</cell></row>\n                            <row> <cell>2</cell><cell>0.40</cell><cell>0.1960</cell><cell>0.4560</cell></row>\n                            <row> <cell>3</cell><cell>0.60</cell><cell>0.2872</cell><cell>0.4295</cell></row>\n                            <row> <cell>4</cell><cell>0.80</cell><cell>0.3731</cell><cell>0.4027</cell></row>\n                            <row> <cell>5</cell><cell>1.00</cell><cell>0.4536</cell><cell>0.3783</cell></row>\n                            <row> <cell>6</cell><cell>1.20</cell><cell>0.5293</cell><cell>0.3591</cell></row>\n                            <row> <cell>7</cell><cell>1.40</cell><cell>0.6011</cell><cell>0.3480</cell></row>\n                            <row> <cell>8</cell><cell>1.60</cell><cell>0.6707</cell><cell>0.3474</cell></row>\n                            <row> <cell>9</cell><cell>1.80</cell><cell>0.7402</cell><cell>0.3603</cell></row>\n                            <row bottom=\"medium\">\n                                  <cell>10</cell><cell>2.00</cell><cell>0.8123</cell><cell>0.3900</cell></row>\n                        </tabular>\n                        <stack>\n                            <image source=\"images/cubic-function.png\"/>\n                            <p>This set of values and this plot have nothing to do with each other.  You'll recognize that they've been liberated from earlier in this work.</p>\n                            <p>Step back and simply examine how the pieces all fit together within a <tag>figure</tag>.</p>\n                        </stack>\n                    </sidebyside>\n                </figure>\n                <p>\n                    The next paragraphs should start on a new page in PDF output if the standard publisher file is used.\n                </p>\n\n                <paragraphs xml:id=\"sidebyside-bully-pulpit\">\n                    <title>Bully Pulpit</title>\n\n                    <p>Remember that <tag>sidebyside</tag> has attributes that strongly influence layout.  That is intentional.  But to support a variety of output formats, it does not allow overly-precise control, and they be viewed as providing <em>hints</em> to an implementer of a conversion.  So for example, do not expect <tag>sidebyside</tag> to function like a <latex/> <c>tabular</c> or an <init>HTML</init> <c>table</c>.</p>\n\n                    <p>In particular, elements of two consecutive <tag>stack</tag> will not line up, unless perhaps you construct them identically.  Consider a <tag>sbsgroup</tag> for something closer to putting items into rows.</p>\n                </paragraphs>\n            </subsection>\n\n            <subsection xml:id=\"subsection-sbs-other-panels\">\n                <title>Other Panels</title>\n\n                <p>Other elements may be placed within a <c>sidebyside</c> element.  Pure lists first.</p>\n\n                <sidebyside>\n                        <ol>\n                            <li><p>Footnotes: Fermat allusion at <xref ref=\"footnote-fermat\"/>.</p></li>\n                            <li><p>Examples: Mystery derivative at <xref ref=\"example-mysterious\"/>.</p></li>\n                            <li><p>Definition-like: A mathematical statement with no proof <xref ref=\"principle-principle\"/>.</p></li>\n                            <li><p>Figures: An early plot, Figure<nbsp/><xref ref=\"figure-function-derivative\"/>.</p></li>\n                        </ol>\n                        <ul>\n                            <li><p>Footnotes: Fermat allusion at <xref ref=\"footnote-fermat\"/>.</p></li>\n                            <li><p>Examples: Mystery derivative at <xref ref=\"example-mysterious\"/>.</p></li>\n                            <li><p>Definition-like: A mathematical statement with no proof <xref ref=\"principle-principle\"/>.</p></li>\n                            <li><p>Figures: An early plot, Figure<nbsp/><xref ref=\"figure-function-derivative\"/>.</p></li>\n                        </ul>\n                </sidebyside>\n\n                <p>You can place <em>aligned</em> equations in paragraphs within a <c>sidebyside</c> element.</p>\n\n                <sidebyside valigns=\"middle top\">\n                    <p>here is some text, and here is an equation that contains alignment.<md>\n                        <mrow>f(x)&amp;= x^2+3x+2</mrow>\n                        <mrow>&amp;=(x+2)(x+1)</mrow>\n                    </md></p>\n                    <stack>\n                        <p>here is some text, and here is an equation that contains alignment.<md>\n                            <mrow>f(x)&amp;= x^2+3x+2</mrow>\n                            <mrow>&amp;=(x+2)(x+1)</mrow>\n                        </md></p>\n                        <p>here is some text, and here is an equation that contains alignment.<md>\n                            <mrow>f(x)&amp;= x^2+3x+2</mrow>\n                            <mrow>&amp;=(x+2)(x+1)</mrow>\n                        </md></p>\n                    </stack>\n                </sidebyside>\n\n                <p>Pre-formatted text may be included by using the <c>pre</c> element.  This content is horizontally-rigid, so as the author, you need to be sure to provide enough width for the panel to contain the content.  It is easy to see the boundary of the panels when rendered in HTML since there is a background that fills the panel.</p>\n\n                <!-- https://excelwithbusiness.com/blog/post/web-design/say-hello-world-in-28-different-programming-languages -->\n                <figure>\n                    <caption><q>Hello, World!</q> in Pascal and C++</caption>\n                    <sidebyside widths=\"40% 50%\">\n                        <pre>\n                            <cline>program HelloWorld;</cline>\n                            <cline>begin</cline>\n                            <cline>  WriteLn('Hello, world!');</cline>\n                            <cline>end.</cline>\n                        </pre>\n                        <pre>\n                        #include\n\n                        int main()\n                        {\n                            std::cout &lt;&lt; \"Hello, world!\";\n                            return 0;\n                        }\n                        </pre>\n                    </sidebyside>\n                </figure>\n\n                <figure>\n                    <caption>A graph defined by data (from Keller and Trotter's <pubtitle>Applied Combinatorics</pubtitle>)</caption>\n                    <sidebyside widths=\"20% 40%\" valign=\"middle\" margins=\"15%\">\n                        <pre>\n                            graph1.txt\n                            9\n                            6 2\n                            1 5\n                            1 7\n                            6 8\n                            9 1\n                            4 3\n                            5 7\n                            1 3\n                            5 9\n                            7 9\n                        </pre>\n                        <image source=\"images/keller-trotter-graph\" archive=\"pdf svg\"/>\n                    </sidebyside>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Poems as Side-By-Side Panels</title>\n\n\n                <p>Poems<idx>poem</idx> may be panels of a side-by-side layout.  Here we place some commentary alongside.  See <xref ref=\"poetry\" text=\"type-global\"/> for general information about poetry.</p>\n\n                <sidebyside widths=\"50% 50%\">\n                    <poem>\n                        <title>Fire and Ice</title>\n                        <idx>Fire and Ice, Frost</idx>\n                        <author>Robert Frost</author>\n                        <stanza>\n                            <line>Some say the world will end in fire,</line>\n                            <line>Some say in ice.</line>\n                            <line>From what I've tasted of desire</line>\n                            <line>I hold with those who favor fire.</line>\n                            <line>But if it had to perish twice,</line>\n                            <line>I think I know enough of hate</line>\n                            <line>To say that for destruction ice</line>\n                            <line>Is also great</line>\n                            <line>And would suffice.</line>\n                        </stanza>\n                    </poem>\n                    <stack>\n                        <p>You might have several things to say about a poem and you could use a sequence of paragraphs immediately adjacent.</p>\n                        <p>This is a second paragraph of commentary.</p>\n                    </stack>\n                </sidebyside>\n\n                <p>Poems are not horizontally-rigid, but they are not perfectly horizontally-flexible either.  The left copy of this next poem is in a panel roughly 2/3 the width of the page and fits there.  The right copy has the first five lines and is in space about half the previous width, and you can see the lines being wrapped with obvious indentation.  So you <em>can</em> constrain the width of a poem if you do not mind the additional indentation.  (Recognize that this example is a bit extreme.)</p>\n\n                <sidebyside widths=\"68% 30%\">\n                    <poem>\n                        <title>Sonnet to Liberty</title>\n                        <idx>Sonnet to Liberty, Wilde</idx>\n                        <author>Oscar Wilde</author>\n                        <stanza>\n                            <line>Not that I love thy children, whose dull eyes</line>\n                            <line>See nothing save their own unlovely woe,</line>\n                            <line>Whose minds know nothing, nothing care to know,</line>\n                            <line>But that the roar of thy Democracies,</line>\n                            <line>Thy reigns of Terror, thy great Anarchies,</line>\n                            <line>Mirror my wildest passions like the sea,</line>\n                            <line>And give my rage a brother! Liberty!</line>\n                            <line>For this sake only do thy dissonant cries</line>\n                            <line>Delight my discreet soul, else might all kings</line>\n                            <line>By bloody knout or treacherous cannonades</line>\n                            <line>Rob nations of their rights inviolate</line>\n                            <line>And I remain unmoved-and yet, and yet,</line>\n                            <line>These Christs that die upon the barricades,</line>\n                            <line>God knows it I am with them, in some things.</line>\n                        </stanza>\n                    </poem>\n                    <poem>\n                        <title>Sonnet to Liberty</title>\n                        <author>Oscar Wilde</author>\n                        <stanza>\n                            <line>Not that I love thy children, whose dull eyes</line>\n                            <line>See nothing save their own unlovely woe,</line>\n                            <line>Whose minds know nothing, nothing care to know,</line>\n                            <line>But that the roar of thy Democracies,</line>\n                            <line>Thy reigns of Terror, thy great Anarchies,</line>\n                            <line><ellipsis/></line>\n                        </stanza>\n                    </poem>\n                </sidebyside>\n            </subsection>\n\n            <subsection xml:id=\"subsection-sbsgroup\">\n                <title>Side-By-Side Groups</title>\n\n                <p>A <q>side-by-side group,</q> <tag>sbsgroup</tag>, is still in development.  (Notably, subcaptions do not behave as expected.)  It is a sequence of <c>sidebyside</c>, which may conceivably use the same margins, widths and vertical alignments for each horizontal run of panels.  Attributes on the <c>sbsgroup</c> are global to the group's enclosed <c>sidebyside</c>, and will be used by each contained <c>sidebyside</c>.  If attributes are present on an individual <c>sidebyside</c>, they override the global values.  The next two examples demonstrate some of this behavior, in a limited way.</p>\n\n                <figure>\n                    <caption>Overall SBS Group</caption>\n                    <sbsgroup widths=\"5% 5% 5%\" margins=\"30%\">\n                        <sidebyside>\n                            <p>One.</p>\n                            <p>Two.</p>\n                            <p>Three.</p>\n                        </sidebyside>\n                        <sidebyside widths=\"25% 20% 15%\" margins=\"5%\">\n                            <p>Four.</p>\n                            <p>Five.</p>\n                            <p>Six.</p>\n                        </sidebyside>\n                    </sbsgroup>\n                </figure>\n\n                <p>A long poem, when placed into a <c>sidebyside</c> will not fit onto a physical page and will not break across pages.  With a <c>sbsgroup</c> you can put each stanza (say) into its own <c>sidebyside</c> and place something (commentary) next to it.  We include the <c>title</c> with the first stanza and the <c>author</c> with the last stanza.  This device can also be useful to attach commentary to specific stanzas.</p>\n\n                <sbsgroup widths=\"60% 40%\">\n                    <sidebyside>\n                        <poem>\n                            <title>The Stolen Child</title>\n                            <idx>Stolen Child, The, Yeats</idx>\n                            <stanza>\n                                <line>Where dips the rocky highland</line>\n                                <line>Of Sleuth Wood in the lake,</line>\n                                <line>There lies a leafy island</line>\n                                <line>Where flapping herons wake</line>\n                                <line>The drowsy water-rats;</line>\n                                <line>There we've hid our faery vats,</line>\n                                <line>Full of berries</line>\n                                <line>And of reddest stolen cherries.</line>\n                                <line>Come away, O human child!</line>\n                                <line>To the waters and the wild</line>\n                                <line>With a faery, hand in hand,</line>\n                                <line>For the world's more full of weeping than you</line>\n                                <line>can understand.</line>\n                            </stanza>\n                        </poem>\n                        <stack>\n                            <p>Some commentary on Stanza One.</p>\n                        </stack>\n                    </sidebyside>\n                    <!--  -->\n                    <sidebyside>\n                        <poem>\n                            <stanza>\n                                <line>Where the wave of moonlight glosses</line>\n                                <line>The dim grey sands with light,</line>\n                                <line>Far off by furthest Rosses</line>\n                                <line>We foot it all the night,</line>\n                                <line>Weaving olden dances,</line>\n                                <line>Mingling hands and mingling glances</line>\n                                <line>Till the moon has taken flight;</line>\n                                <line>To and fro we leap</line>\n                                <line>And chase the frothy bubbles,</line>\n                                <line>While the world is full of troubles</line>\n                                <line>And is anxious in its sleep.</line>\n                                <line>Come away, O human child!</line>\n                                <line>To the waters and the wild</line>\n                                <line>With a faery, hand in hand,</line>\n                                <line>For the world's more full of weeping than you</line>\n                                <line>can understand.</line>\n                            </stanza>\n                        </poem>\n                        <stack>\n                            <p>Some commentary on Stanza Two.</p>\n                        </stack>\n                    </sidebyside>\n                    <!--  -->\n                    <sidebyside>\n                        <poem>\n                            <stanza>\n                                <line>Where the wandering water gushes</line>\n                                <line>From the hills above Glen-Car,</line>\n                                <line>In pools among the rushes</line>\n                                <line>That scarce could bathe a star,</line>\n                                <line>We seek for slumbering trout</line>\n                                <line>And whispering in their ears</line>\n                                <line>Give them unquiet dreams;</line>\n                                <line>Leaning softly out</line>\n                                <line>From ferns that drop their tears</line>\n                                <line>Over the young streams.</line>\n                                <line>Come away, O human child!</line>\n                                <line>To the waters and the wild</line>\n                                <line>With a faery, hand in hand,</line>\n                                <line>For the world's more full of weeping than you</line>\n                                <line>can understand.</line>\n                            </stanza>\n                        </poem>\n                        <stack>\n                            <p>Some commentary on Stanza Three.</p>\n                        </stack>\n                    </sidebyside>\n                    <!--  -->\n                    <sidebyside>\n                        <poem>\n                            <author>William Butler Yeats</author>\n                            <stanza>\n                                <line>Away with us he's going,</line>\n                                <line>The solemn-eyed:</line>\n                                <line>He'll hear no more the lowing</line>\n                                <line>Of the calves on the warm hillside</line>\n                                <line>Or the kettle on the hob</line>\n                                <line>Sing peace into his breast,</line>\n                                <line>Or see the brown mice bob</line>\n                                <line>Round and round the oatmeal-chest.</line>\n                                <line>For he comes, the human child,</line>\n                                <line>To the waters and the wild</line>\n                                <line>With a faery, hand in hand,</line>\n                                <line>From a world more full of weeping than he</line>\n                                <line>can understand.</line>\n                            </stanza>\n                        </poem>\n                        <stack>\n                            <p>Some commentary on Stanza Four.</p>\n                        </stack>\n                    </sidebyside>\n                    <!--  -->\n                </sbsgroup>\n\n                <p>The main rationale for <c>sbsgroup</c> is to layout a grid of items, and by placing the layout parameters on the <c>sbsgroup</c> element, the items can line up across <c>sidebyside</c> and subcaptioning can run across the whole group.  So, for example, if you have images to compare by placing in a grid, then making them all the same size, or of the same aspect ratio, can help with the overall consistency.</p>\n\n                <p>This example has three <c>sidebyside</c>, each with four <c>figure</c> containing an identical <c>image</c>.  Since the images are identical and the <c>width</c> is set to 20% they should all line up nicely with little effort.  Since the default for margins is automatic, the remaining 20% of the overall width will be used for three inter-panel spaces of 5% and two margins of 2.5% each.  Note the numbering of these as independent figures.  We have left the captions empty for reasons of space, but you could add more information.  Note that in print, a page break is allowed between any two of the <c>sidebyside</c> and cannot be suppressed.</p>\n\n                <sbsgroup width=\"20%\">\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                </sbsgroup>\n\n                <p>We recycle the prior <c>sbsgroup</c> but now put it in its own overall figure.  That will allow a caption for the whole group, and will cause the twelve figures to be subcaptioned.  Except the subcaptioning is not implemented.  Soon.</p>\n\n                <figure>\n                    <caption>Twelve images, arranged in a grid</caption>\n                    <sbsgroup width=\"20%\">\n                        <sidebyside>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                        </sidebyside>\n                        <sidebyside>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                        </sidebyside>\n                        <sidebyside>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                            <figure>\n                                <caption></caption>\n                                <image source=\"images/cross-rectangle.png\"/>\n                            </figure>\n                        </sidebyside>\n                    </sbsgroup>\n                </figure>\n\n                <p>One more test.  We override the spacing and vertical alignments of the middle <c>sidebyside</c>.  Note that it is easy to make a panel so skinny that even the smallest possible caption does not fit in the width.</p>\n\n                <sbsgroup width=\"20%\">\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                    <sidebyside margins=\"0%\" widths=\"5% 10% 20% 30%\" valigns=\"middle top bottom middle\">\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                </sbsgroup>\n\n                <p>\n                    Now an <tag>sbsgroup</tag> that should start on a new page if this sample\n                    article is built to PDF using the distribution publisher file.\n                </p>\n\n                <sbsgroup xml:id=\"sbsgroup-pagebreak-test\" width=\"20%\">\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                    <sidebyside>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                        <figure>\n                            <caption></caption>\n                            <image source=\"images/cross-rectangle.png\"/>\n                        </figure>\n                    </sidebyside>\n                </sbsgroup>\n\n                <p>The following is a <tag>sbsgroup</tag> full of <q>operation</q> tables.  Once upon a time it was rather cramped vertically in HTML output, but Andrew Scholer improved the spacing at <url href=\"https://github.com/PreTeXtBook/pretext/pull/2387\" visual=\"github.com/PreTeXtBook/pretext/pull/2387\">GitHub #2387</url>.  The example is from Valerio Monti.</p>\n\n                <figure xml:id=\"tabelle_classi_di_resto\">\n                    <caption>Tabelle delle operazioni per <m>1\\le n\\le 4</m></caption>\n                    <sbsgroup>\n                        <sidebyside>\n                          <p>\n                            <md>\n                              \\begin{array}{c|c}\n                                + \\amp \\class[1]{0} \\\\\n                                \\hline\n                                \\class[1]{0} \\amp \\class[1]{0}\n                              \\end{array}\n                            </md>\n                          </p>\n                          <p>\n                            <md>\n                              \\begin{array}{c|c}\n                                \\cdot \\amp \\class[1]{0} \\\\\n                                \\hline\n                                \\class[1]{0} \\amp \\class[1]{0}\n                              \\end{array}\n                            </md>\n                          </p>\n                        </sidebyside>\n\n                        <sidebyside>\n                          <p>\n                            <md>\n                              \\begin{array}{c|cc}\n                                + \\amp \\class[2]{0} \\amp \\class[2]{1} \\\\\n                                \\hline\n                                \\class[2]{0} \\amp \\class[2]{0} \\amp \\class[2]{1}\\\\\n                                \\class[2]{1} \\amp \\class[2]{1} \\amp \\class[2]{0}\n                              \\end{array}\n                            </md>\n                          </p>\n                          <p>\n                            <md>\n                              \\begin{array}{c|cc}\n                                \\cdot \\amp \\class[2]{0} \\amp \\class[2]{1} \\\\\n                                \\hline\n                                \\class[2]{0} \\amp \\class[2]{0} \\amp \\class[2]{0}\\\\\n                                \\class[2]{1} \\amp \\class[2]{0} \\amp \\class[2]{1}\n                              \\end{array}\n                            </md>\n                          </p>\n                        </sidebyside>\n\n                        <sidebyside>\n                          <p>\n                            <md>\n                              \\begin{array}{c|ccc}\n                                + \\amp \\class[3]{0} \\amp \\class[3]{1} \\amp \\class[3]{2} \\\\\n                                \\hline\n                                \\class[3]{0} \\amp \\class[3]{0} \\amp \\class[3]{1} \\amp \\class[3]{2} \\\\\n                                \\class[3]{1} \\amp \\class[3]{1} \\amp \\class[3]{2} \\amp \\class[3]{0} \\\\\n                                \\class[3]{2} \\amp \\class[3]{2} \\amp \\class[3]{0} \\amp \\class[3]{1} \\\\\n                              \\end{array}\n                            </md>\n                          </p>\n                          <p>\n                            <md>\n                              \\begin{array}{c|ccc}\n                                \\cdot \\amp \\class[3]{0} \\amp \\class[3]{1} \\amp \\class[3]{2} \\\\\n                                \\hline\n                                \\class[3]{0} \\amp \\class[3]{0} \\amp \\class[3]{0} \\amp \\class[3]{0} \\\\\n                                \\class[3]{1} \\amp \\class[3]{0} \\amp \\class[3]{1} \\amp \\class[3]{2} \\\\\n                                \\class[3]{2} \\amp \\class[3]{0} \\amp \\class[3]{2} \\amp \\class[3]{1} \\\\\n                              \\end{array}\n                            </md>\n                          </p>\n                        </sidebyside>\n\n                        <sidebyside>\n                          <p>\n                            <md>\n                              \\begin{array}{c|cccc}\n                              + \\amp \\class[4]{0} \\amp \\class[4]{1} \\amp \\class[4]{2} \\amp \\class[4]{3} \\\\\n                              \\hline\n                              \\class[4]{0} \\amp \\class[4]{0} \\amp \\class[4]{1} \\amp \\class[4]{2} \\amp \\class[4]{3} \\\\\n                              \\class[4]{1} \\amp \\class[4]{1} \\amp \\class[4]{2} \\amp \\class[4]{3} \\amp \\class[4]{0} \\\\\n                              \\class[4]{2} \\amp \\class[4]{2} \\amp \\class[4]{3} \\amp \\class[4]{0} \\amp \\class[4]{1} \\\\\n                              \\class[4]{3} \\amp \\class[4]{3} \\amp \\class[4]{0} \\amp \\class[4]{1} \\amp \\class[4]{2} \\\\\n                            \\end{array}\n                            </md>\n                          </p>\n                          <p>\n                            <md>\n                              \\begin{array}{c|cccc}\n                                \\cdot \\amp \\class[4]{0} \\amp \\class[4]{1} \\amp \\class[4]{2} \\amp \\class[4]{3} \\\\\n                                \\hline\n                                \\class[4]{0} \\amp \\class[4]{0} \\amp \\class[4]{0} \\amp \\class[4]{0} \\amp \\class[4]{0} \\\\\n                                \\class[4]{1} \\amp \\class[4]{0} \\amp \\class[4]{1} \\amp \\class[4]{2} \\amp \\class[4]{3} \\\\\n                                \\class[4]{2} \\amp \\class[4]{0} \\amp \\class[4]{2} \\amp \\class[4]{0} \\amp \\class[4]{2} \\\\\n                                \\class[4]{3} \\amp \\class[4]{0} \\amp \\class[4]{3} \\amp \\class[4]{2} \\amp \\class[4]{1} \\\\\n                              \\end{array}\n                            </md>\n                          </p>\n                        </sidebyside>\n                    </sbsgroup>\n                </figure>\n            </subsection>\n\n            <subsection>\n                <title>Testing a Side-By-Side First</title>\n\n                <p>A <tag>sidebyside</tag> that appears first within some other container can wreak havoc in <latex/> output.  Below we have this situation twice, once in an <tag>activity</tag>, then in an <tag>example</tag>, then in a <tag>paragraphs</tag>.</p>\n\n                <activity>\n                    <statement>\n                        <sidebyside widths=\"47% 47%\" valign=\"bottom\" margins=\"0%\">\n                            <p>Here is text block 1</p>\n                            <p>Here is text block 2</p>\n                        </sidebyside>\n                    </statement>\n\n                </activity>\n\n                <example>\n                    <statement>\n                        <sidebyside>\n                            <p>Here is text block 1</p>\n                            <p>Here is text block 2</p>\n                        </sidebyside>\n                    </statement>\n                </example>\n\n                <p>And a <tag>sbsgroup</tag> in similar circumstances.</p>\n\n                <example>\n                    <statement>\n                        <sbsgroup>\n                            <sidebyside>\n                                <p>Here is text block 1</p>\n                                <p>Here is text block 2</p>\n                            </sidebyside>\n                            <sidebyside>\n                                <p>Here is text block 3</p>\n                                <p>Here is text block 4</p>\n                            </sidebyside>\n                        </sbsgroup>\n                    </statement>\n                </example>\n\n                <paragraphs>\n                    <title>First Child of a Paragraphs</title>\n                    <sidebyside>\n                        <tabular>\n                            <row>\n                                <cell>A</cell>\n                                <cell>B</cell>\n                            </row>\n                            <row>\n                                <cell>C</cell>\n                                <cell>D</cell>\n                            </row>\n                        </tabular>\n                        <tabular>\n                            <row>\n                                <cell><m>\\alpha</m></cell>\n                                <cell><m>\\beta</m></cell>\n                            </row>\n                            <row>\n                                <cell><m>\\gamma</m></cell>\n                                <cell><m>\\delta</m></cell>\n                            </row>\n                        </tabular>\n                    </sidebyside>\n                </paragraphs>\n\n            </subsection>\n\n            <subsection>\n                <title>Testing Styling of Related Elements</title>\n\n                <p>This subsection has non-side-by-side structures, to aid with the effects of styling decisions across the range of possibilities.  First a <c>figure</c> with a <c>caption</c> holding a scaled image and a cross-reference for knowl testing: <xref ref=\"figure-traditional\" text=\"type-global\"/>.</p>\n\n                <figure xml:id=\"figure-traditional\">\n                    <caption>A traditional figure</caption>\n\n                    <image source=\"images/cross-square.png\" width=\"20%\"/>\n                </figure>\n            </subsection>\n        </section>\n\n        <section label=\"section-side-by-side-gallery\">\n            <title>Side-by-Side Gallery</title>\n\n            <p>This subsection attempts to survey all the possible items that can be placed into a <c>sidebyside</c> element, in various combinations.  While intended to be exhaustive across contents, it does not test all possibilities, and is not meant to be instructive (see <xref ref=\"section-side-by-side\" text=\"type-global\"/> for that). The layout is identical for each <c>sidebyside</c>, 5% margins, panel widths of 40% and 45%, leaving 5% for the space between the panels.  The vertical alignment is left at the default, <c>top</c>.</p>\n\n            <p>We begin with <q>simpler</q> atomic items.  If necessary, comments follow each.</p>\n\n            <figure>\n                <caption>Single <tag>p</tag> (left), <tag>stack</tag> (right)</caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <p>Vestibulum sit amet est non lacus accumsan iaculis aliquam nec leo. Maecenas placerat consequat quam, a lobortis odio convallis vitae. Curabitur sagittis, risus non suscipit pulvinar, enim tortor posuere purus, id dignissim sapien sapien non dui. Vestibulum ultrices, enim a ornare consectetur, nisl est iaculis arcu, eget scelerisque nunc magna a nisl. Vestibulum vestibulum ante sit amet ex vulputate, eu facilisis sapien tempor.</p>\n                    <stack>\n                        <p>Aliquam dui nisi, pharetra id enim vel, imperdiet laoreet risus. Nunc convallis elit eu erat imperdiet tincidunt. Sed eget augue et nunc mollis tempor. Suspendisse luctus elit non lorem scelerisque, nec lacinia lectus dictum.</p>\n                        <p>Vivamus ut orci nisl. Donec eleifend ultricies tortor, a pellentesque neque dignissim in. Praesent maximus, augue eu pretium auctor, dolor quam feugiat augue, ut vulputate nunc eros vitae massa. Phasellus quis ante quis est venenatis dapibus eget luctus ipsum.</p>\n                    </stack>\n                </sidebyside>\n            </figure>\n\n            <figure>\n                <caption>An <tag>ol</tag> with simple items, a <tag>ul</tag> with items with paragraphs</caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <ol>\n                        <li>Blue</li>\n                        <li>Red</li>\n                        <li>Green</li>\n                        <li>Purple</li>\n                        <li>Violet</li>\n                        <li>Brown</li>\n                    </ol>\n                    <ul>\n                        <li><p>Vestibulum sit amet est non lacus accumsan iaculis aliquam nec leo. Maecenas placerat consequat quam, a lobortis odio convallis vitae.</p>\n                        <p>Curabitur sagittis, risus non suscipit pulvinar, enim tortor posuere purus, id dignissim sapien sapien non dui.</p></li>\n                        <li><p>Vestibulum ultrices, enim a ornare consectetur, nisl est iaculis arcu, eget scelerisque nunc magna a nisl.</p>\n                        <p>Vestibulum vestibulum ante sit amet ex vulputate, eu facilisis sapien tempor.</p></li>\n                    </ul>\n                </sidebyside>\n            </figure>\n\n            <figure>\n                <caption>A <tag>program</tag> and a <tag>console</tag></caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <program language=\"r\">\n                        <code>\n                        n_loops &lt;- 10\n                        x.means &lt;- numeric(n_loops)\n                        for (i in 1:n_loops){\n                            x &lt;- as.integer(runif(100, 1, 7))\n                            x.means[i] &lt;- mean(x)\n                        }\n                        x.means\n                        </code>\n                    </program>\n                    <console>\n                        <input prompt=\"pi@rpi ~$ \">gcc -o intAndFloat intAndFloat.c</input>\n                        <input prompt=\"pi@rpi ~$ \">./intAndFloat</input>\n                        <output>\n                        19088743 (integer) and 19088.742188 (float)\n                        </output>\n                        <input prompt=\"pi@rpi ~$ \"/>\n                    </console>\n                </sidebyside>\n            </figure>\n\n            <p>Note that these two chunks of verbatim text will very likely exceed the right side of a too-skinny panel.  We have severly edited these two examples from previous appearances just to fit here.</p>\n\n            <figure>\n                <caption>An <tag>poem</tag> and a <tag>tabular</tag></caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <poem>\n                        <title>To A Friend Whose Work Has Come To Nothing</title>\n                        <author>William Butler Yeats</author>\n                        <stanza>\n                            <line>Now all the truth is out,</line>\n                            <line>Be secret and take defeat</line>\n                            <line>From any brazen throat,</line>\n                            <line>For how can you compete,</line>\n                            <line>Being honour bred, with one</line>\n                            <line>Who, were it proved he lies,</line>\n                            <line>Were neither shamed in his own</line>\n                            <line>Nor in his neighbours' eyes?</line>\n                            <line>Bred to a harder thing</line>\n                            <line>Than Triumph, turn away</line>\n                            <line>And like a laughing string</line>\n                            <line>Whereon mad fingers play</line>\n                            <line>Amid a place of stone,</line>\n                            <line>Be secret and exult,</line>\n                            <line>Because of all things known</line>\n                            <line>That is most difficult.</line>\n                        </stanza>\n                    </poem>\n                    <tabular>\n                        <row bottom=\"major\">\n                             <cell>Organism</cell><cell>Classification</cell>\n                         </row>\n                        <row><cell>Trout</cell><cell>Fish</cell></row>\n                        <row><cell>Monkey</cell><cell>Mammal</cell></row>\n                        <row><cell>Crow</cell><cell>Bird</cell></row>\n                        <row><cell>Crimini</cell><cell>Fungus</cell></row>\n                        <row><cell>Bee</cell><cell>Insect</cell></row>\n                    </tabular>\n                </sidebyside>\n            </figure>\n\n            <p>A <c>tabular</c> can exceed the width of its panel in print, while in <c>HTML</c> it may reflow individual cells to stay within a panel, depending on their contents.</p>\n\n            <figure>\n                <caption>A <tag>pre</tag>, and a <tag>pre</tag> employing <tag>cline</tag></caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <pre>\n                    Vestibulum sit amet est non\n                        lacus accumsan iaculis\n                    aliquam nec leo. Maecenas\n                    placerat consequat quam, a\n                    lobortis odio convallis\n                    vitae.\n                    </pre>\n                    <pre>\n                        <cline>Vestibulum sit amet est non</cline>\n                        <cline>    lacus accumsan iaculis</cline>\n                        <cline>aliquam nec leo. Maecenas</cline>\n                        <cline>    placerat consequat quam,</cline>\n                        <cline>a lobortis odio convallis</cline>\n                        <cline>        vitae.</cline>\n                    </pre>\n                </sidebyside>\n            </figure>\n\n            <p>Be aware that the lines of <c>pre</c> can spill outside of its panel without any word-wrapping.  So you may need to vary panel widths or rearrange line breaks manually.  Page width is a scarce resource.</p>\n\n            <figure>\n                <caption>An identical <tag>image</tag>, twice</caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <image source=\"images/cross-rectangle.png\"/>\n                    <image source=\"images/cross-rectangle.png\"/>\n                </sidebyside>\n            </figure>\n\n            <p>Images will scale to fill their panel's width.  We provide no services to change the aspect ratio of your images, that is your responsibility to accomplish elsewhere.  This rectangular image will have slightly different widths, and so will be slightly deeper in the right panel (at a 45:40 ratio).  Remember, vertical alignment is at the top.</p>\n\n            <p>Now we turn to <q>captioned</q> items: <c>figure</c>, <c>table</c>, <c>listing</c>, and the anomalous <q>named list</q>, <c>list</c>, whose future is uncertain.  We test subcaptions here.  Note that many different atomic items can go in a figure, and largely they will behave in a <c>sidebyside</c> much as they do when placed in a panel all by themselves (<ie/> captionless).</p>\n\n            <figure>\n                <caption>A <tag>figure</tag> and a <tag>table</tag></caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <figure>\n                        <caption>A Rectangular Test Image</caption>\n                        <image source=\"images/cross-rectangle.png\"/>\n                    </figure>\n                    <table>\n                        <title>Classifying Organisms</title>\n                        <tabular>\n                            <row bottom=\"major\">\n                                 <cell>Organism</cell><cell>Classification</cell>\n                             </row>\n                            <row><cell>Trout</cell><cell>Fish</cell></row>\n                            <row><cell>Monkey</cell><cell>Mammal</cell></row>\n                            <row><cell>Crow</cell><cell>Bird</cell></row>\n                            <row><cell>Crimini</cell><cell>Fungus</cell></row>\n                            <row><cell>Bee</cell><cell>Insect</cell></row>\n                        </tabular>\n                    </table>\n                </sidebyside>\n            </figure>\n\n            <figure>\n                <caption>A <tag>listing</tag> and a <tag>list</tag></caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n                    <listing>\n                        <title>A statistical computation</title>\n                        <program language=\"r\">\n                            <code>\n                            n_loops &lt;- 10\n                            x.means &lt;- numeric(n_loops)\n                            for (i in 1:n_loops){\n                                x &lt;- as.integer(runif(100, 1, 7))\n                                x.means[i] &lt;- mean(x)\n                            }\n                            x.means\n                            </code>\n                        </program>\n                    </listing>\n                    <list>\n                        <title>Colors Again</title>\n                        <introduction>\n                            <p>We have named list of colors.</p>\n                        </introduction>\n                        <ol>\n                            <li>Blue</li>\n                            <li>Red</li>\n                            <li>Green</li>\n                            <li>Purple</li>\n                            <li>Violet</li>\n                            <li>Brown</li>\n                        </ol>\n                        <conclusion>\n                            <p>That was nice.</p>\n                        </conclusion>\n                    </list>\n                </sidebyside>\n            </figure>\n\n            <p>\n                Now let's test the alignment of various items that might be placed with an image in a figure. We want asymptote links and long descriptions close to the image. The caption for figures should be aligned.\n            </p>\n\n            <figure>\n                <caption>Two Asympote images side-by-side</caption>\n                <sidebyside margins=\"5%\" widths=\"40% 45%\">\n\n                <figure>\n                    <caption>Asymptote Lever Demonstration</caption>\n                    <image xml:id=\"asymptote-lever-sbs\">\n                        <shortdescription>moments on a lever</shortdescription>\n                        <description>\n                            <p>This diagram has two masses at either end of a lever, namely <m>m</m> and <m>M</m>.  They are located at distance <m>x</m> and <m>X</m> on an axis.  The resulting center-of-mass is at a point <m>\\bar{x}</m>.</p>\n                        </description>\n                        <asymptote>\n                            size(200,0);\n\n                            pair z0=(0,0);\n                            pair z1=(2,0);\n                            pair z2=(5,0);\n                            pair zf=z1+0.75*(z2-z1);\n\n                            draw(z1--z2);\n                            dot(z1,red+0.15cm);\n                            dot(z2,darkgreen+0.3cm);\n                            label(\"$m$\",z1,1.2N,red);\n                            label(\"$M$\",z2,1.5N,darkgreen);\n                            label(\"$\\hat{\\ }$\",zf,0.2*S,fontsize(24pt)+blue);\n\n                            pair s=-0.2*I;\n                            draw(\"$x$\",z0+s--z1+s,N,red,Arrows,Bars,PenMargins);\n\n                            s=-0.5*I;\n                            draw(\"$\\bar{x}$\",z0+s--zf+s,blue,Arrows,Bars,PenMargins);\n\n                            s=-0.95*I;\n                            draw(\"$X$\",z0+s--z2+s,darkgreen,Arrows,Bars,PenMargins);\n                        </asymptote>\n                    </image>\n                </figure>\n\n                <figure>\n                    <caption>Asymptote Contour Plot</caption>\n                    <image xml:id=\"asymptote-contour-sbs\">\n                        <asymptote>\n                            import graph;\n                            import palette;\n\n                            size(10cm,10cm,IgnoreAspect);\n\n                            real f(real x, real y) {\n                            return 0.9*pow10(2*sin(x/5+2*y^0.25)) + 0.1*(1+cos(10*log(y)));\n                            }\n\n                            scale(Linear,Log,Log);\n\n                            pen[] Palette=BWRainbow();\n\n                            bounds range=image(f,Automatic,(0,1),(100,100),nx=200,Palette);\n\n                            xaxis(\"$x$\",BottomTop,LeftTicks,above=true);\n                            yaxis(\"$y$\",LeftRight,RightTicks,above=true);\n\n                            palette(\"$f(x,y)$\",range,(0,200),(100,250),Top,Palette,\n                            PaletteTicks(ptick=linewidth(0.5*linewidth())));\n                        </asymptote>\n                    </image>\n                </figure>\n                </sidebyside>\n            </figure>\n\n            <p>Now we have some more interactive elements.</p>\n\n            <sidebyside  margins=\"5%\" widths=\"40% 45%\">\n                <!-- Hosted -->\n                <video label=\"ups-promo-side-by-side\" source=\"video/ups-visitor-guide-360\" width=\"80%\" preview=\"preview/ups-promo-frame-one.jpg\"/>\n                <!-- Airborne Toxic Event -->\n                <video xml:id=\"airborne-midnight-1\" youtube=\"UYPoMjR6-Ao\"/>\n            </sidebyside>\n\n            <p>Videos can be placed quite compactly for HTML output, but we display a fair amount of information for a YouTube video in print, and therefore two videos side-by-side gets pretty crowded.  The examples above have the bare minimum amount of information attached (not in an overarching <c>figure</c>), and the bare amount which which is displayed in print.  We could relax our common spacing to make it a bit better.  Read about <q>side-by-side</q> groups (<c>sbsgroup</c>) and experiment with stacking several sub-captioned videos into an overall captioned figure (<xref ref=\"subsection-sbsgroup\" text=\"type-global\"/>).  For other examples see <xref ref=\"section-video\" text=\"type-global\"/> and <xref ref=\"atomic-video\" text=\"type-global\"/>.</p>\n        </section>\n\n        <section xml:id=\"open-problems\" label=\"section-open-problems\">\n            <title>Open Problems</title>\n\n            <p>Like for mathematical research.  Experimental as of 2023-07-06.</p>\n\n            <openproblem>\n                <statement>\n                    <p>Solve the Riemann Hypothesis<fn>Footnotes were once incomplete on open problems.</fn> <em>and</em> provide a short proof of Fermat's Last Theorem.</p>\n                </statement>\n            </openproblem>\n\n        </section>\n\n        <section xml:id=\"poetry\" label=\"section-poetry\">\n            <title>Poetry</title>\n\n            <p>There is support for poems via the <c>poem</c><idx>poem</idx> tag, which can contain a <c>title</c>, <c>author</c> and multiple <c>stanza</c>, each containing multiple <c>line</c>.  See the source of the following poem for an example of the exact arrangement.  Note how the first quote crosses two <c>line</c> elements and how this is handled in the source.  There are many very flexible options for horizontal alignment and indentation.  Further extensive examples, constructed by Jahrme Risner, are available in the example Humanities document.</p>\n\n            <poem xml:id=\"poem-light-brigade\">\n                <title>The Charge of the Light Brigade</title>\n                <idx>Charge of the Light Brigade, The, Tennyson</idx>\n                <author>Alfred Lord Tennyson</author>\n\n                <stanza>\n                    <line>Half a league, half a league,</line>\n                    <line>Half a league onward,</line>\n                    <line>All in the valley of Death</line>\n                    <line>Rode the six hundred.</line>\n                    <line><lq/>Forward, the Light Brigade!</line>\n                    <line>Charge for the guns!<rq/> he said:</line>\n                    <line>Into the valley of Death</line>\n                    <line>Rode the six hundred.</line>\n                </stanza>\n\n                <stanza>\n                    <idx><h>Charge of the Light Brigade</h><h>second stanza</h></idx>\n                    <line><q>Forward, the Light Brigade!</q></line>\n                    <line>Was there a man dismay'd?</line>\n                    <line>Not tho' the soldier knew</line>\n                    <line>Someone had blunder'd:</line>\n                    <line>Theirs not to make reply,</line>\n                    <line>Theirs not to reason why,</line>\n                    <line>Theirs but to do and die:</line>\n                    <line>Into the valley of Death</line>\n                    <line>Rode the six hundred.</line>\n                </stanza>\n            </poem>\n\n            <p>Ken Levasseur, who teaches at UMass-Lowell, has limericks in his Applied Discrete Structures textbook.  When he reported that they were unable to be the target of a cross-reference, Karl-Dieter Crisman penned the following limerick.</p>\n\n            <poem>\n                <author>Karl-Dieter Crisman</author>\n\n                <stanza>\n                    <line>CS students studying in Lowell</line>\n                    <line>Required their books to have soul.</line>\n                    <line>Along came their teacher</line>\n                    <line>Who asked for this feature:</line>\n                    <line>A poem that lives in a knowl.</line>\n                </stanza>\n            </poem>\n\n            <p>And when yours truly tried to joke about poetry on <url href=\"https://github.com/PreTeXtBook/pretext-cli/issues/182\" visual=\"https://github.com/PreTeXtBook/pretext-cli/issues/182\">GitHub CLI #182</url>, back came:</p>\n\n            <poem xml:id=\"limerick-clontz\">\n                <author>Steven Clontz</author>\n\n                <stanza>\n                    <line>There once was a maintainer named Rob</line>\n                    <line>Who told bad jokes while on the job</line>\n                    <line>While they were lame</line>\n                    <line>You could say the same</line>\n                    <line>Of Steven's limericks that cause you to sob</line>\n                </stanza>\n            </poem>\n\n        </section>\n\n        <section xml:id=\"literate-programming\" label=\"literate-programming\">\n            <title>Literate Programming</title>\n            <p>There is support for literate programming using the <tag>fragment</tag> tag. It should always contain an <attr>@xml:id</attr> or a <attr>@filename</attr> attribute, and may contain <tag>code</tag> segments as well as <tag>fragref</tag> segments referencing other fragments. The final code is to be assembled starting from a fragment with a filename attribute and traversing the tree of fragment references.</p>\n            <p>For example here is the gcd algorithm in Python. Note that indentation is hard to get right at the moment.</p>\n            <fragment filename=\"gcd.py\">\n                <title>The GCD algorithm</title>\n                <code>\n                    def gcd(a, b):\n                        while(b):\n                </code>\n                <fragref ref=\"gcd-loop\" />\n                <code>                        return a</code>\n            </fragment>\n            <p>The key part is the inner part of the loop:</p>\n            <fragment xml:id=\"gcd-loop\">\n                <title>The key loop part</title>\n                <code>\n                            a, b = b, a % b\n                </code>\n            </fragment>\n            <p>This double assignment changes both a and b.</p>\n        </section>\n        <section xml:id=\"atomic-items\" label=\"section-atomic-items\">\n            <title>Atomic Objects</title>\n\n            <introduction>\n                <p>Some <pretext/> objects are relatively indivisable and are used as components of other structures.  We call them <term>atomic</term>, even if the term is not perfect.  A good example is <tag>image</tag> (next, <xref ref=\"atomic-image\"/>).  This section is arranged according to these objects and tests the various ways they can be employed.</p>\n\n                <p>We frequently include some nonsense text inside short intervening paragraphs to test spacing and establish margins.</p>\n            </introduction>\n\n            <!-- Vivamus in congue massa. Morbi condimentum ac magna at accumsan. Vestibulum ac augue eu lorem semper gravida. Nulla pharetra imperdiet elit, in sodales nibh blandit ultricies. Maecenas efficitur ac felis ut pharetra. Quisque finibus augue sit amet facilisis fringilla. Aenean faucibus augue tellus, et sollicitudin tortor finibus non. Maecenas semper dolor quis diam placerat, iaculis sollicitudin augue finibus. Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non. Quisque ornare felis arcu. Vivamus suscipit diam eget mi cursus viverra.  -->\n\n            <subsection xml:id=\"atomic-image\">\n                <title><tag>image</tag></title>\n\n                <p>An <tag>image</tag> can be placed in five different ways:<ol>\n                    <li>all by itself, as a peer of <tag>p</tag> typically, with layout control,</li>\n                    <li>inside a <tag>figure</tag>, earning a number and caption,</li>\n                    <li>inside a <tag>sidebyside</tag>, with size and layout configured,</li>\n                    <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag>, with size and layout configured, with a number and caption, and</li>\n                    <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag> inside a <tag>figure</tag>, with size and layout configured, with a number and caption, but now sub-numbered ((a), (b), (c),<ellipsis/>).</li>\n                </ol>Examples of each, and more.</p>\n\n                <p>All by itsef, with no layout specified, so showing the default size and placement.  Vivamus in congue massa. Morbi condimentum ac magna at accumsan. Vestibulum ac augue eu lorem semper gravida.</p>\n\n                <image source=\"images/nz-landscape.jpg\"/>\n\n                <p>Width set at 40%, so equal margins and thus centered.  Aenean faucibus augue tellus, et sollicitudin tortor finibus non. Maecenas semper dolor quis diam placerat, iaculis sollicitudin augue finibus. Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non.</p>\n\n                <image source=\"images/nz-landscape.jpg\" width=\"40%\"/>\n\n                <p>Asymmetric margins of 20% and 40% given, implying 40% width, equal to previous instance.  Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <image source=\"images/nz-landscape.jpg\" margins=\"20% 40%\"/>\n\n                <p>As a plain component of a <tag>sidebyside</tag>.  Widths here are 20% and 30%, margins and gaps are automatic, default alignment on top edges.  Nulla pharetra imperdiet elit, in sodales nibh blandit ultricies. Maecenas efficitur ac felis ut pharetra.</p>\n\n                <sidebyside widths=\"20% 30%\">\n                    <image source=\"images/nz-landscape.jpg\"/>\n                    <image source=\"images/nz-landscape.jpg\"/>\n                </sidebyside>\n\n                <p>Inside a <tag>figure</tag> with no adjustments, so default behavior.  Note how a <tag>figure</tag> occupies the entire width of the page, so then does the caption.</p>\n\n                <figure>\n                    <caption>New Zealand Landscape</caption>\n                    <image source=\"images/nz-landscape.jpg\"/>\n                </figure>\n\n                <p>Inside a <tag>figure</tag> with asymmetric (large) margins of 30% and 60%.  Quisque finibus augue sit amet facilisis fringilla. Aenean faucibus augue tellus, et sollicitudin tortor finibus non.</p>\n\n                <figure>\n                    <caption>New Zealand Landscape</caption>\n                    <image source=\"images/nz-landscape.jpg\" margins=\"30% 60%\"/>\n                </figure>\n\n                <p>Inside figures inside a <tag>sidebyside</tag>.  Same widths as previous <tag>sidebyside</tag> but alignment on bottoms of the panels, to partially align captions.  Note how the captions are constrained in width by the width of the panels of the side-by-side.</p>\n\n                <sidebyside widths=\"20% 30%\" valign=\"bottom\">\n                    <figure>\n                        <caption>NZ Landscape</caption>\n                        <image source=\"images/nz-landscape.jpg\"/>\n                    </figure>\n                    <figure>\n                        <caption>New Zealand Terrascape</caption>\n                        <image source=\"images/nz-landscape.jpg\"/>\n                    </figure>\n                </sidebyside>\n\n                <p>Identical code to previous example, but now wrapped in an overall <tag>figure</tag>, which has its own caption and number, leaving the interior figures to be sub-numbered.  Cross-references use the full number: <xref ref=\"nz-land\" text=\"type-global\"/>.</p>\n\n                <figure>\n                    <caption>Amalgamation of Scapes</caption>\n                    <sidebyside widths=\"20% 30%\" valign=\"bottom\">\n                        <figure>\n                            <caption>NZ Landscape</caption>\n                            <image source=\"images/nz-landscape.jpg\"/>\n                        </figure>\n                        <figure xml:id=\"nz-land\">\n                            <caption>New Zealand Terrascape</caption>\n                            <image source=\"images/nz-landscape.jpg\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n\n                <p>\n                    For <latex/>, in some circumstances it is desirable to print the image on the next line, but backed up by some amount.\n                    This <q>top-aligns</q> the image with a number of some sort off to the left. The following are tests for this behavior.\n                    Here is a list.\n                    <ol>\n                        <li>\n                            <image margins=\"0% 70%\" source=\"images/nz-landscape.jpg\"/>\n                        </li>\n                        <li>\n                            <image source=\"images/nz-landscape.jpg\"/>\n                        </li>\n                    </ol>\n                </p>\n\n                <p>A <c>rotation=\"n\"</c> attribute applied to a bare image will rotate the image by n<degree/>. The vertical space adjusts to accomodate the rotated image in the latex version but not in the html version.</p>\n                <figure>\n                    <caption>Rotated Images</caption>\n\n                    <sidebyside width=\"33%\" valign=\"bottom\">\n                        <figure>\n                            <caption><c>rotate=\"180\"</c></caption>\n                            <image source=\"images/Yellow_Duck.png\" rotate=\"180\"/>\n                        </figure>\n                        <figure>\n                            <caption><c>rotate=\"15\"</c></caption>\n                            <image source=\"images/Yellow_Duck.png\" rotate=\"15\"/></figure>\n                    </sidebyside>\n                </figure>\n\n                <p>For pdf output destined for print, <ie/> when the publication file entry <c>latex/@print=\"yes\"</c>, a <c>@landscape=\"yes\"</c> attribute applied to a <tag>figure</tag>, <tag>table</tag>, <tag>list</tag> or <tag>listing</tag> will cause the object to be rotated 90<degree/> and presented on its own page.  Placement of the float is determined by <latex/> and multipage objects are not supported.</p>\n\n                <figure xml:id=\"propulsion_system2\" landscape=\"yes\">\n                    <caption>This landscape figure will be rotated so the long edge is vertical, and will appear on its own page in <em>print PDF</em> output.</caption>\n                    <image source=\"images/propulsion_system\"/>\n                </figure>\n                <figure xml:id=\"rotated-fig-with-sbs\" landscape=\"yes\">\n                    <caption>Wide figure containing a sidebyside containing a rotated image.  This will be rotated and appear on its own page in <term>print PDF</term> output.</caption>\n                    <sidebyside widths=\"25% 70%\" margins=\"0%\" valign=\"bottom\" landscape=\"true\">\n                        <figure>\n                            <caption>Quack</caption>\n                            <image rotate=\"10\" source=\"images/Yellow_Duck.png\"/>\n                        </figure>\n                        <figure>\n                            <caption>Propulsion System</caption>\n                            <image source=\"images/propulsion_system\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n\n                <exercise>\n                    <task>\n                        <statement>\n                            <image margins=\"0% 70%\" source=\"images/nz-landscape.jpg\"/>\n                        </statement>\n                    </task>\n                    <task>\n                        <statement>\n                            <image source=\"images/nz-landscape.jpg\"/>\n                        </statement>\n                    </task>\n                </exercise>\n\n                <exercises>\n                    <exercise>\n                        <task>\n                            <statement>\n                                <image margins=\"0% 70%\" source=\"images/nz-landscape.jpg\"/>\n                            </statement>\n                        </task>\n                        <task>\n                            <statement>\n                                <image source=\"images/nz-landscape.jpg\"/>\n                            </statement>\n                        </task>\n                    </exercise>\n\n                    <exercisegroup cols=\"2\">\n                        <exercise>\n                            <statement>\n                                <image margins=\"0% 70%\" source=\"images/nz-landscape.jpg\"/>\n                            </statement>\n                        </exercise>\n                        <exercise>\n                            <statement>\n                                <image source=\"images/nz-landscape.jpg\"/>\n                            </statement>\n                        </exercise>\n                    </exercisegroup>\n                </exercises>\n\n            </subsection>\n\n            <subsection xml:id=\"atomic-video\">\n                <title><tag>video</tag></title>\n\n                <p>An <tag>video</tag> can be placed in five different ways:<ol>\n                    <li>all by itself, as a peer of <tag>p</tag> typically, with layout control,</li>\n                    <li>inside a <tag>figure</tag>, earning a number and caption,</li>\n                    <li>inside a <tag>sidebyside</tag>, with size and layout configured,</li>\n                    <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag>, with size and layout configured, with a number and caption, and</li>\n                    <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag> inside a <tag>figure</tag>, with size and layout configured, with a number and caption, but now sub-numbered ((a), (b), (c),<ellipsis/>).</li>\n                </ol>Examples of each, and more.</p>\n\n                <p>Videos can be realized in many forms, and can come from a variety of sources.  See <xref ref=\"section-video\" text=\"type-global\"/> for tests of some of that variety.  Here we are testing placement within surroundings and testing the schema for location.  But we do have two videos in each test, one provided as a local file and one embedded from a service.</p>\n\n                <p>All by itsef, with no layout specified, so showing the default size and placement.  Vivamus in congue massa. Morbi condimentum ac magna at accumsan. Vestibulum ac augue eu lorem semper gravida.</p>\n\n                <video xml:id=\"ups-promo-7\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n\n                <p>Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non. Quisque ornare felis arcu. Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <video xml:id=\"pre-roll-countdown-7\" youtube=\"Srmdij0CU1U\"/>\n\n                <p>Width set at 40%, so equal margins and thus centered.  Aenean faucibus augue tellus, et sollicitudin tortor finibus non. Maecenas semper dolor quis diam placerat, iaculis sollicitudin augue finibus. Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non.</p>\n\n                <video xml:id=\"ups-promo-8\" source=\"video/ups-visitor-guide-360\" width=\"40%\" preview=\"preview/ups-promo-preview.jpg\"/>\n\n                <p>Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non. Quisque ornare felis arcu. Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <p>\n                    This next video should start on a new page if the distribution publication file\n                    is in use.\n                </p>\n\n                <video xml:id=\"pre-roll-countdown-8\" youtube=\"Srmdij0CU1U\" width=\"40%\"/>\n\n                <p>Asymmetric margins of 20% and 40% given, implying 40% width, equal to previous instance.  Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <video xml:id=\"ups-promo-9\" source=\"video/ups-visitor-guide-360\" margins=\"20% 40%\" preview=\"preview/ups-promo-preview.jpg\"/>\n\n                <p>Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non. Quisque ornare felis arcu. Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <video xml:id=\"pre-roll-countdown-9\" youtube=\"Srmdij0CU1U\" margins=\"20% 40%\"/>\n\n                <p>As a plain component of a <tag>sidebyside</tag>.  Widths here are 20% and 30%, margins and gaps are automatic, default alignment on top edges.  Nulla pharetra imperdiet elit, in sodales nibh blandit ultricies. Maecenas efficitur ac felis ut pharetra.</p>\n\n                <sidebyside widths=\"20% 30%\">\n                    <video xml:id=\"ups-promo-10\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                    <video xml:id=\"pre-roll-countdown-10\" youtube=\"Srmdij0CU1U\"/>\n                </sidebyside>\n\n                <p>Inside a <tag>figure</tag> with no adjustments, so default behavior.  Note how a <tag>figure</tag> occupies the entire width of the page, so then does the caption.</p>\n\n                <figure>\n                    <caption>University of Puget Sound Promotional Video</caption>\n                    <video xml:id=\"ups-promo-11\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                </figure>\n\n                <p>Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non. Quisque ornare felis arcu. Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <figure>\n                    <caption>Pre-Roll Countdown</caption>\n                    <video xml:id=\"pre-roll-countdown-11\" youtube=\"Srmdij0CU1U\"/>\n                </figure>\n\n                <p>Inside a <tag>figure</tag> with asymmetric (large) margins of 30% and 60%.  Quisque finibus augue sit amet facilisis fringilla. Aenean faucibus augue tellus, et sollicitudin tortor finibus non.</p>\n\n                <figure>\n                    <caption>University of Puget Sound Promotional Video</caption>\n                    <video xml:id=\"ups-promo-12\" source=\"video/ups-visitor-guide-360\" margins=\"30% 60%\" preview=\"preview/ups-promo-preview.jpg\"/>\n                </figure>\n\n                <p>Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non. Quisque ornare felis arcu. Vivamus suscipit diam eget mi cursus viverra.</p>\n\n                <figure>\n                    <caption>Pre-Roll Countdown</caption>\n                    <video xml:id=\"pre-roll-countdown-12\" youtube=\"Srmdij0CU1U\" margins=\"30% 60%\"/>\n                </figure>\n\n                <p>Inside figures inside a <tag>sidebyside</tag>.  Same widths as previous <tag>sidebyside</tag> but alignment on bottoms of the panels, to partially align captions.  Note how the captions are constrained in width by the width of the panels of the side-by-side.</p>\n\n                <sidebyside widths=\"20% 30%\" valign=\"bottom\">\n                    <figure>\n                        <caption>Pre-Roll Countdown</caption>\n                        <video xml:id=\"pre-roll-countdown-13\" youtube=\"Srmdij0CU1U\"/>\n                    </figure>\n                    <figure>\n                        <caption>University of Puget Sound Promotional Video</caption>\n                        <video xml:id=\"ups-promo-13\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                    </figure>\n                </sidebyside>\n\n                <p>Identical code to previous example, but now wrapped in an overall <tag>figure</tag>, which has its own caption and number, leaving the interior figures to be sub-numbered.  Cross-references use the full number: <xref ref=\"ups-video\" text=\"type-global\"/>.</p>\n\n                <figure>\n                    <caption>Amalgamation of Videos</caption>\n                    <sidebyside widths=\"20% 30%\" valign=\"bottom\">\n                        <figure>\n                            <caption>Pre-Roll Countdown</caption>\n                            <video xml:id=\"pre-roll-countdown-14\" youtube=\"Srmdij0CU1U\"/>\n                        </figure>\n                        <figure xml:id=\"ups-video\">\n                            <caption>University of Puget Sound Promotional Video</caption>\n                            <video xml:id=\"ups-promo-14\" source=\"video/ups-visitor-guide-360\" preview=\"preview/ups-promo-preview.jpg\"/>\n                        </figure>\n                    </sidebyside>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"atomic-program\">\n                <title><tag>program</tag>, <tag>console</tag></title>\n\n                    <p>A <tag>program</tag> and/or <tag>console</tag> can be placed in at least six  different ways:<ol>\n                    <li>all by itself, as a peer of <tag>p</tag> typically, with layout control</li>\n                    <li>inside a <tag>listing</tag>, earning a number and caption, with layout control</li>\n                    <li>inside a <tag>sidebyside</tag>, with size and layout configured</li>\n                    <li>inside a <tag>sidebyside</tag>, with size and layout configured, and inside a <tag>figure</tag></li>\n                    <li>inside a <tag>sidebyside</tag>, with size and layout configured, with each inside a <tag>listing</tag>, earning different numbers</li>\n\n                    <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag> inside a <tag>listing</tag>, with size and layout configured, with a number and title, but now sub-numbered ((a), (b), (c),<ellipsis/>).</li>\n                </ol>Examples of each, and more.</p>\n\n               <p>Programs can be realized in many forms, and can come from a variety of sources.  See <xref ref=\"section-video\" text=\"type-global\"/> for tests of some of that variety.  Here we are testing placement within surroundings and testing the schema for location.  But we do have two videos in each test, one provided as a local file and one embedded from a service.</p>\n\n                <p>All by itsef, with no layout specified, so showing the default size and placement.  Vivamus in congue massa. Morbi condimentum ac magna at accumsan. Vestibulum ac augue eu lorem semper gravida.</p>\n\n                <program language=\"r\">\n                    <code>\n                    n_loops &lt;- 10\n                    x.means &lt;- numeric(n_loops)  # create a vector of zeros for results\n                    for (i in 1:n_loops){\n                        x &lt;- as.integer(runif(100, 1, 7))  # 1 to 6, uniformly\n                        x.means[i] &lt;- mean(x)\n                    }\n                    x.means\n                    </code>\n                </program>\n\n                <p>Now a program with shorter lines, with no layout control.</p>\n\n                <program language=\"c\">\n                    <code>\n                    /* Hello World program */\n\n                    #include&lt;stdio.h&gt;\n\n                    main()\n                    {\n                        printf(\"Hello, World!\");\n                    }\n                    </code>\n                </program>\n\n                <p>And a <tag>console</tag> element, also with no layout control.</p>\n\n                <console>\n                    <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">gcc -o intAndFloat intAndFloat.c</input>\n                    <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">./intAndFloat</input>\n                    <output>\n                    The integer is 19088743 and the float is 19088.742188\n                    </output>\n                    <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \"/>\n                </console>\n\n                <p>Now similar examples, but with layout control: margins and width.</p>\n\n                <p>A <tag>program</tag> with a <attr>width</attr> attribute, so centered and with equal margins.  Note how the lines word wrap due to the smaller width.</p>\n\n                <program language=\"r\" width=\"60%\">\n                    <code>\n                    n_loops &lt;- 10\n                    x.means &lt;- numeric(n_loops)  # create a vector of zeros for results\n                    for (i in 1:n_loops){\n                        x &lt;- as.integer(runif(100, 1, 7))  # 1 to 6, uniformly\n                        x.means[i] &lt;- mean(x)\n                    }\n                    x.means\n                    </code>\n                </program>\n\n                <p>A <tag>program</tag> with short lines, so significant, and asymmetric margins, which experimentally do not induce any word-wrapping.</p>\n\n                <program language=\"c\" margins=\"15% 20%\">\n                    <code>\n                    /* Hello World program */\n\n                    #include&lt;stdio.h&gt;\n\n                    main()\n                    {\n                        printf(\"Hello, World!\");\n                    }\n                    </code>\n                </program>\n\n                <p>A longer <tag>console</tag>, with margins so significant the appearance is ill-advised.</p>\n\n                <console margins=\"50% 15%\">\n                    <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">gcc -Wall -o intAndFloat intAndFloat.c</input>\n                    <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">./intAndFloat</input>\n                    <output>\n                    The integer is 19088743 and the float is 19088.742188\n                    </output>\n                    <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \"/>\n                </console>\n\n                <p>Two <tag>listing</tag>, with <tag>title</tag>, and no layout control.</p>\n\n                <listing>\n                    <title>Hello, World! in C</title>\n                        <program language=\"c\">\n                            <code>\n                            /* Hello World program */\n\n                            #include&lt;stdio.h&gt;\n\n                            main()\n                            {\n                                printf(\"Hello, World!\");\n                            }\n                            </code>\n                        </program>\n                </listing>\n\n                <listing>\n                    <title>A console session on a Raspberry Pi</title>\n                        <console>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">gcc -Wall -o intAndFloat intAndFloat.c</input>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">./intAndFloat</input>\n                            <output>\n                            The integer is 19088743 and the float is 19088.742188\n                            </output>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \"/>\n                        </console>\n                </listing>\n\n                <p>Same two <tag>listing</tag>, but now with layout control on the <tag>program</tag> and <tag>console</tag>.</p>\n\n                <listing>\n                    <title>Hello, World! in C</title>\n                        <program language=\"c\" margins=\"40% 20%\" width=\"40%\">\n                            <code>\n                            /* Hello World program */\n\n                            #include&lt;stdio.h&gt;\n\n                            main()\n                            {\n                                printf(\"Hello, World!\");\n                            }\n                            </code>\n                        </program>\n                </listing>\n\n                <listing>\n                    <title>A console session on a Raspberry Pi</title>\n                        <console margins=\"10% 10%\">\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">gcc -Wall -o intAndFloat intAndFloat.c</input>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">./intAndFloat</input>\n                            <output>\n                            The integer is 19088743 and the float is 19088.742188\n                            </output>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \"/>\n                        </console>\n                </listing>\n\n                <p>This <tag>sidebyside</tag> gives each panel a 30% width.  The remaining 10% is apportioned for margins and separation.</p>\n\n                <sidebyside width=\"30%\">\n                    <program language=\"c\">\n                        <code>\n                        /* Hello World program */\n\n                        #include&lt;stdio.h&gt;\n\n                        main()\n                        {\n                            printf(\"Hello, World!\");\n                        }\n                        </code>\n                    </program>\n                    <console>\n                        <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">gcc -Wall -o intAndFloat intAndFloat.c</input>\n                        <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">./intAndFloat</input>\n                        <output>\n                        The integer is 19088743 and the float is 19088.742188\n                        </output>\n                        <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \"/>\n                    </console>\n                    <program language=\"r\">\n                        <code>\n                        n_loops &lt;- 10\n                        x.means &lt;- numeric(n_loops)  # create a vector of zeros for results\n                        for (i in 1:n_loops){\n                            x &lt;- as.integer(runif(100, 1, 7))  # 1 to 6, uniformly\n                            x.means[i] &lt;- mean(x)\n                        }\n                        x.means\n                        </code>\n                    </program>\n                </sidebyside>\n\n                <p>This is the same three-panel <tag>sidebyside</tag>, but now inside of a <tag>figure</tag>, earning a number and a <tag>caption</tag>.</p>\n\n                <figure>\n                    <caption>Some Code Samples</caption>\n                    <sidebyside width=\"30%\">\n                        <program language=\"c\">\n                            <code>\n                            /* Hello World program */\n\n                            #include&lt;stdio.h&gt;\n\n                            main()\n                            {\n                                printf(\"Hello, World!\");\n                            }\n                            </code>\n                        </program>\n                        <console>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">gcc -Wall -o intAndFloat intAndFloat.c</input>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \">./intAndFloat</input>\n                            <output>\n                            The integer is 19088743 and the float is 19088.742188\n                            </output>\n                            <input prompt=\"pi@raspberrypi ~/progs/chap02 $ \"/>\n                        </console>\n                        <program language=\"r\">\n                            <code>\n                            n_loops &lt;- 10\n                            x.means &lt;- numeric(n_loops)  # create a vector of zeros for results\n                            for (i in 1:n_loops){\n                                x &lt;- as.integer(runif(100, 1, 7))  # 1 to 6, uniformly\n                                x.means[i] &lt;- mean(x)\n                            }\n                            x.means\n                            </code>\n                        </program>\n                    </sidebyside>\n                </figure>\n\n\n\n                <p>Finally, a smaller <tag>program</tag> and a smaller <tag>console</tag>, each inside a <tag>listing</tag>, as the two panels of a <tag>sidebyside</tag> with no margins, and slightly different widths (to control word-wrapping).  The panels have been aligned vertically so their captions align.</p>\n\n                <sidebyside margins=\"0% 0%\" widths=\"35% 55%\" valign=\"bottom\">\n                    <listing>\n                        <title>Hello!</title>\n                        <program language=\"c\">\n                            <code>\n                            /* Hello World program */\n\n                            #include&lt;stdio.h&gt;\n\n                            main()\n                            {\n                                printf(\"Hello, World!\");\n                            }\n                            </code>\n                        </program>\n                    </listing>\n                    <listing>\n                        <title>Raspberry Pi</title>\n                        <console>\n                            <input>gcc -Wall -o intAndFloat intAndFloat.c</input>\n                            <input>./intAndFloat</input>\n                            <output>\n                            The integer is 19088743 and the float is 19088.742188\n                            </output>\n                            <input/>\n                        </console>\n                    </listing>\n                </sidebyside>\n\n                <p>And again, the two-panel <tag>sidebyside</tag> of <tag>listing</tag>, but now inside a <tag>figure</tag> that has a number and a title.  And then the <tag>listing</tag> are sub-numbered as (a) and (b).</p>\n\n\n                <figure>\n                    <caption>Two Code Listings</caption>\n                    <sidebyside margins=\"0% 0%\" widths=\"35% 55%\" valign=\"bottom\">\n                        <listing>\n                            <title>Hello!</title>\n                            <program language=\"c\">\n                                <code>\n                                /* Hello World program */\n\n                                #include&lt;stdio.h&gt;\n\n                                main()\n                                {\n                                    printf(\"Hello, World!\");\n                                }\n                                </code>\n                            </program>\n                        </listing>\n                        <listing>\n                            <title>Raspberry Pi</title>\n                            <console>\n                                <input>gcc -Wall -o intAndFloat intAndFloat.c</input>\n                                <input>./intAndFloat</input>\n                                <output>\n                                The integer is 19088743 and the float is 19088.742188\n                                </output>\n                                <input/>\n                            </console>\n                        </listing>\n                    </sidebyside>\n                </figure>\n            </subsection>\n\n            <subsection xml:id=\"atomic-tabular\">\n                <title><tag>tabular</tag></title>\n\n                <p>A <tag>tabular</tag> can be placed in six different ways:<ol>\n\n\n                    <li>all by itself, as a peer of <tag>p</tag> typically, with no layout control and hence with a <q>natural width,</q> and centered</li>\n                    <li>all by itself, as a peer of <tag>p</tag> typically, with explicit layout control,</li>\n                    <li>inside a <tag>table</tag>, earning a number and title,</li>\n                    <li>inside a <tag>sidebyside</tag>, with size and layout configured,</li>\n                    <li>inside a <tag>table</tag> inside a <tag>sidebyside</tag>, with size and layout configured, with a number and title, and</li>\n                    <li>inside a <tag>table</tag> inside a <tag>sidebyside</tag> inside a <tag>figure</tag>, with size and layout configured, with a number and title, but now sub-numbered ((a), (b), (c),<ellipsis/>).</li>\n                </ol>Examples of each, and more.</p>\n\n                <p>A <tag>tabular</tag> realized by <latex/> for PDF/print will normally be as wide as necessary to hold the content, without word-wrapping the content of any cell that is not explicitly authored that way.  This is the most rigid of the content types we call <q>planar.</q>  So for <pretext/> output as <latex/>, when you explicitly constrain the width to be less than the <q>natural width</q> (including use as a panel of a <tag>sidebyside</tag>, or even setting margins) the table will be scaled <em>down</em> in width, which can result in an apparent font size very much smaller than that of the surrounding text.  Note that we do not ever scale a tabular up to be wider with a larger font size.  Note also that if there is no attempt to control the space for the table (no layout control, not in a <tag>sidebyside</tag>) then no scaling is attempted at all and the table may be wider than the text and protrude into the right margin.  For more, see the three examples at: <xref ref=\"natural-too-wide\" text=\"type-global\"/> , <xref ref=\"scale-down-auto\" text=\"type-global\"/>, <xref ref=\"scale-down-100\" text=\"type-global\"/>.  Generally, much of the commentary and testing here is about <latex/>/PDF/print.  While for <init>HTML</init> output the cells will usually automatically word-wrap to fit in the available space, without adjusting the font size.  Some might like this behavior and some might not.</p>\n\n                <p>Data in a table form can be placed in amongst a series of paragraphs.  With no layout control, it will occupy its <q>natural width</q> and be centered.</p>\n\n                <tabular>\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n\n                <p>The same effect can be had by specifying that the <attr>width</attr> attribute have the value <c>auto</c>, but do not specify any <attr>margins</attr>.  We test multiple footnotes in a <tag>tabular</tag>, not included in a <tag>table</tag>.</p>\n\n                <tabular width=\"auto\">\n                    <row header=\"yes\">\n                        <cell>State<fn>Only from the West Coast.</fn></cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223<fn>Wow! That is as big as many countries.</fn></cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n\n                <p>In amongst a run of paragraphs (or similar) a <tag>tabular</tag> can be placed with layout control.  For <latex/> output, this will scale the table to fit within the explicit, or implicit, width.  This can result in obvious differences in the apparent font size.  We first have a <attr>width</attr> that is experimentally similar to the natural width, with asymetric margins.  Then a narrow width, and a wide width, as an illustration.</p>\n\n                <tabular width=\"81.61%\">\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n\n                <p>Narrow.  45% width.  20% margin left, 35% margin right.</p>\n\n                <tabular width=\"45%\" margins=\"20% 35%\">\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n\n                <p>Wide.  97% width. 1% margin left, 2% right.</p>\n\n                <tabular width=\"97%\"  margins=\"1% 2%\">\n                    <row header=\"yes\">\n                        <cell>State</cell>\n                        <cell>Population</cell>\n                        <cell>Area (sq. mi.)</cell>\n                        <cell>Statehood (Year)</cell>\n                    </row>\n                    <row>\n                        <cell>Washington</cell>\n                        <cell>7,614,893</cell>\n                        <cell>71,362</cell>\n                        <cell>1889</cell>\n                    </row>\n                    <row>\n                        <cell>Oregon</cell>\n                        <cell>4,217,737</cell>\n                        <cell>98,381</cell>\n                        <cell>1859</cell>\n                    </row>\n                    <row>\n                        <cell>California</cell>\n                        <cell>39,512,223</cell>\n                        <cell>163,696</cell>\n                        <cell>1850</cell>\n                    </row>\n                </tabular>\n\n                <p>Naturally, a <tag>tabular</tag> can be placed inside a <tag>table</tag>, earning a number and a title.</p>\n\n                <table>\n                    <title>Natural Width</title>\n                    <tabular>\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <p>A little narrower, but still centered by default.</p>\n\n                <table>\n                    <title>Width of 60%, automatic centering</title>\n                    <tabular width=\"60%\">\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n\n                <p>Very narrow, asymmetric margins.</p>\n\n                <table>\n                    <title>Width of 30%, 30% left margin, 40% right margin</title>\n                    <tabular width=\"30%\" margins=\"30% 40%\">\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <p>Wider than necessary, asymmetric margins.</p>\n\n                <table>\n                    <title>Width of 90%, 8% left margin, 2% right margin</title>\n                    <tabular width=\"90%\" margins=\"8% 2%\">\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <p>The next table is purposely much too wide.  In <xref ref=\"natural-too-wide\" text=\"type-global\"/> we make no attempt to control the width, and so it will extend into the margins.  In <xref ref=\"scale-down-auto\" text=\"type-global\"/> we have simple added the attribute <c>width=\"auto\"</c>.  This attempt to use layout control will cause an automatic reduction in width and a smaller apparent font size.  Adjusting margins providing an explicit percentage width, or placing the tabular as a panel of <tag>sidebyside</tag> will have the same effect.  In <xref ref=\"scale-down-100\" text=\"type-global\"/> we have set the width explicity to 100% and so it should be identical to the automatic width case just prior.</p>\n\n                <table xml:id=\"natural-too-wide\">\n                    <title>Tabular too wide, no layout control</title>\n                    <tabular>\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                            <cell>Capitol City</cell>\n                            <cell>Largest City</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                            <cell>Olympia</cell>\n                            <cell>Seattle</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                            <cell>Salem</cell>\n                            <cell>Portland</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                            <cell>Sacremento</cell>\n                            <cell>Los Angeles</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <table xml:id=\"scale-down-auto\">\n                    <title>Tabular too wide, scale to automatic width</title>\n                    <tabular width=\"auto\">\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                            <cell>Capitol City</cell>\n                            <cell>Largest City</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                            <cell>Olympia</cell>\n                            <cell>Seattle</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                            <cell>Salem</cell>\n                            <cell>Portland</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                            <cell>Sacremento</cell>\n                            <cell>Los Angeles</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n                <table xml:id=\"scale-down-100\">\n                    <title>Tabular too wide, scale to 100% width</title>\n                    <tabular width=\"100%\">\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                            <cell>Capitol City</cell>\n                            <cell>Largest City</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                            <cell>Olympia</cell>\n                            <cell>Seattle</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                            <cell>Salem</cell>\n                            <cell>Portland</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                            <cell>Sacremento</cell>\n                            <cell>Los Angeles</cell>\n                        </row>\n                    </tabular>\n                </table>\n\n\n\n\n                <p>Now into <tag>sidebyside</tag> in various ways and with various sizes. First, two <tag>tabular</tag> as panels with widths at 60% and 30%.  Note that in <latex/>/PDF/print the tabular of functional values does not need the full 30% width, so it is at its natural size and centered within its panel.</p>\n\n                <sidebyside widths=\"60% 30%\">\n                    <tabular>\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                    <tabular>\n                        <row header=\"yes\">\n                            <cell><m>x</m></cell>\n                            <cell><m>f(x)</m></cell>\n                        </row>\n                        <row>\n                            <cell>3</cell>\n                            <cell>9.734</cell>\n                        </row>\n                        <row>\n                            <cell>5</cell>\n                            <cell>2.175</cell>\n                        </row>\n                    </tabular>\n                </sidebyside>\n\n                <p>Let's do that again, but with widths experimentally set to make font sizes match (approximately).</p>\n\n                <sidebyside widths=\"81.61% 12.75%\">\n                    <tabular>\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row>\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                    <tabular>\n                        <row header=\"yes\">\n                            <cell><m>x</m></cell>\n                            <cell><m>f(x)</m></cell>\n                        </row>\n                        <row>\n                            <cell>3</cell>\n                            <cell>9.734</cell>\n                        </row>\n                        <row>\n                            <cell>5</cell>\n                            <cell>2.175</cell>\n                        </row>\n                    </tabular>\n                </sidebyside>\n\n                <p>Same tabular, which fills roughly 80% by itself, packed into a single <tag>sidebyside</tag> with just a 2% gap, and no side margins.</p>\n\n                <sidebyside widths=\"49% 49%\" margins=\"0% 0%\">\n                    <tabular left=\"medium\" top=\"medium\">\n                        <col/>\n                        <col/>\n                        <col/>\n                        <col right=\"medium\"/>\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row bottom=\"medium\">\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                    <tabular left=\"medium\" top=\"medium\">\n                        <col/>\n                        <col/>\n                        <col/>\n                        <col right=\"medium\"/>\n                        <row header=\"yes\">\n                            <cell>State</cell>\n                            <cell>Population</cell>\n                            <cell>Area (sq. mi.)</cell>\n                            <cell>Statehood (Year)</cell>\n                        </row>\n                        <row>\n                            <cell>Washington</cell>\n                            <cell>7,614,893</cell>\n                            <cell>71,362</cell>\n                            <cell>1889</cell>\n                        </row>\n                        <row>\n                            <cell>Oregon</cell>\n                            <cell>4,217,737</cell>\n                            <cell>98,381</cell>\n                            <cell>1859</cell>\n                        </row>\n                        <row bottom=\"medium\">\n                            <cell>California</cell>\n                            <cell>39,512,223</cell>\n                            <cell>163,696</cell>\n                            <cell>1850</cell>\n                        </row>\n                    </tabular>\n                </sidebyside>\n\n                <p>Natural widths, but now as a pair of tables.</p>\n\n                <sidebyside widths=\"81.61% 12.75%\">\n                    <table>\n                        <title>West Coast</title>\n                        <tabular>\n                            <row header=\"yes\">\n                                <cell>State</cell>\n                                <cell>Population</cell>\n                                <cell>Area (sq. mi.)</cell>\n                                <cell>Statehood (Year)</cell>\n                            </row>\n                            <row>\n                                <cell>Washington</cell>\n                                <cell>7,614,893</cell>\n                                <cell>71,362</cell>\n                                <cell>1889</cell>\n                            </row>\n                            <row>\n                                <cell>Oregon</cell>\n                                <cell>4,217,737</cell>\n                                <cell>98,381</cell>\n                                <cell>1859</cell>\n                            </row>\n                            <row>\n                                <cell>California</cell>\n                                <cell>39,512,223</cell>\n                                <cell>163,696</cell>\n                                <cell>1850</cell>\n                            </row>\n                        </tabular>\n                    </table>\n                    <table>\n                        <title>Function Values</title>\n                        <tabular>\n                            <row header=\"yes\">\n                                <cell><m>x</m></cell>\n                                <cell><m>f(x)</m></cell>\n                            </row>\n                            <row>\n                                <cell>3</cell>\n                                <cell>9.734</cell>\n                            </row>\n                            <row>\n                                <cell>5</cell>\n                                <cell>2.175</cell>\n                            </row>\n                        </tabular>\n                    </table>\n                </sidebyside>\n\n                <p>Finally, as two individual <tag>table</tag>, grouped and laid out via a <tag>sidebyside</tag>, and collected as a <tag>figure</tag>.  Which causes sub-numbering of the two enclosed <tag>table</tag>.</p>\n\n                <figure>\n                    <caption>Geography and Mathematics</caption>\n                    <sidebyside widths=\"81.61% 12.75%\">\n                        <table>\n                            <title>West Coast</title>\n                            <tabular>\n                                <row header=\"yes\">\n                                    <cell>State</cell>\n                                    <cell>Population</cell>\n                                    <cell>Area (sq. mi.)</cell>\n                                    <cell>Statehood (Year)</cell>\n                                </row>\n                                <row>\n                                    <cell>Washington</cell>\n                                    <cell>7,614,893</cell>\n                                    <cell>71,362</cell>\n                                    <cell>1889</cell>\n                                </row>\n                                <row>\n                                    <cell>Oregon</cell>\n                                    <cell>4,217,737</cell>\n                                    <cell>98,381</cell>\n                                    <cell>1859</cell>\n                                </row>\n                                <row>\n                                    <cell>California</cell>\n                                    <cell>39,512,223</cell>\n                                    <cell>163,696</cell>\n                                    <cell>1850</cell>\n                                </row>\n                            </tabular>\n                        </table>\n                        <table>\n                            <title>Function Values</title>\n                            <tabular>\n                                <row header=\"yes\">\n                                    <cell><m>x</m></cell>\n                                    <cell><m>f(x)</m></cell>\n                                </row>\n                                <row>\n                                    <cell>3</cell>\n                                    <cell>9.734</cell>\n                                </row>\n                                <row>\n                                    <cell>5</cell>\n                                    <cell>2.175</cell>\n                                </row>\n                            </tabular>\n                        </table>\n                    </sidebyside>\n                </figure>\n            </subsection>\n        </section>\n\n        <section xml:id=\"advanced-numbering\" label=\"section-advanced-numbering\">\n            <title>Advanced Numbering</title>\n\n            <introduction>\n                <p>This section demonstrates the numbering<idx>numbering</idx> patterns used throughout <pretext/>.  There are five subsections.  Two intermediate subsections each have two subsubsections.  This creates a total of seven divisions that are leaves of the document tree.  In each leaf we have placed two numbered theorems, for a total of fourteen.  There is no real content, this is just a demonstration.</p>\n\n                <p>Use values of <c>0</c> through <c>3</c> for the <c>numbering.theorems.level</c> parameter to see how these numbers change accordingly.  It is easiest to compare if you use <c>chunk.level &lt; 2</c> so the theorems all land on the same page if you are previewing in HTML.</p>\n            </introduction>\n\n            <subsection>\n                <title>One</title>\n\n                <p>A document leaf.</p>\n\n                <theorem xml:id=\"theorem-number-01\">\n                    <title>First Theorem</title>\n                    <creator>Cauchy</creator>\n                    <statement><p>No statement.</p></statement>\n                </theorem>\n\n                <!-- Note: this theorem is cross-referenced exactly once,  -->\n                <!-- as part of a test, so DO NOT cross-reference it again -->\n                <theorem xml:id=\"theorem-number-02\">\n                    <title>Second Theorem</title>\n                    <creator>Bunyakovsky</creator>\n                    <statement><p>No statement.</p></statement>\n                </theorem>\n\n            </subsection>\n\n            <subsection>\n                <title>Two</title>\n\n                <introduction><p>Further subdivided.</p></introduction>\n\n                <subsubsection>\n                    <title>Uno</title>\n\n                    <p>A document leaf.</p>\n\n                    <theorem xml:id=\"theorem-number-03\">\n                        <title>First Theorem!</title>\n                        <creator>Schwarz</creator>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                    <theorem xml:id=\"theorem-number-04\">\n                        <title>Second Theorem?</title>\n                        <creator>Inequality</creator>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                </subsubsection>\n\n                <subsubsection>\n                    <title>Dos</title>\n\n                    <p>A document leaf.</p>\n\n                    <theorem xml:id=\"theorem-number-05\">\n                        <title>First Theorem?</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                    <theorem xml:id=\"theorem-number-06\">\n                        <title>Second Theorem!</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                </subsubsection>\n\n            </subsection>\n\n            <subsection>\n                <title>Three</title>\n\n                <p>A document leaf.</p>\n\n                <theorem xml:id=\"theorem-number-07\">\n                    <title>First Theorem</title>\n                    <statement><p>No statement.</p></statement>\n                </theorem>\n\n                <theorem xml:id=\"theorem-number-08\">\n                    <title>Second Theorem</title>\n                    <statement><p>No statement.</p></statement>\n                </theorem>\n\n            </subsection>\n\n            <subsection>\n                <title>Four</title>\n\n                <introduction>\n                    <p>Further subdivided.  We include two theorems as numbered items in the introduction to test their numbers, which should always be logical.</p>\n\n                    <theorem xml:id=\"theorem-good-one\">\n                        <title>Good Numbered Theorem One</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                    <theorem xml:id=\"theorem-good-two\">\n                        <title>Good Numbered Theorem Two</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                </introduction>\n\n                <subsubsection>\n                    <title>Uno</title>\n\n                    <p>A document leaf.</p>\n\n                    <theorem xml:id=\"theorem-number-09\">\n                        <title>First Theorem</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                    <theorem xml:id=\"theorem-number-10\">\n                        <title>Second Theorem</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                </subsubsection>\n\n                <subsubsection>\n                    <title>Dos</title>\n\n                    <p>A document leaf.</p>\n\n                    <theorem xml:id=\"theorem-number-11\">\n                        <title>First Theorem</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                    <theorem xml:id=\"theorem-number-12\">\n                        <title>Second Theorem</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                </subsubsection>\n\n                <conclusion>\n                    <p>Conclusion now.  We include two theorems as numbered items in the conclusion to test their numbers, which are sometimes totally illogical and are inconsistent across output formats.  To see the effect, set the level for numbering theorems to <c>3</c>.  See this GitHub <url href=\"https://github.com/PreTeXtBook/pretext/issues/139\" visual=\"github.com/PreTeXtBook/pretext/issues/139\">Issue #139</url> for details.</p>\n\n                    <theorem xml:id=\"theorem-bad-one\">\n                        <title>Bad Numbered Theorem One</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                    <theorem xml:id=\"theorem-bad-two\">\n                        <title>Bad Numbered Theorem Two</title>\n                        <statement><p>No statement.</p></statement>\n                    </theorem>\n\n                </conclusion>\n            </subsection>\n\n            <subsection>\n                <title>Five</title>\n\n                <p>A document leaf.</p>\n\n                <theorem xml:id=\"theorem-number-13\">\n                    <title>First Theorem</title>\n                    <statement><p>No statement.</p></statement>\n                </theorem>\n\n                <theorem xml:id=\"theorem-number-14\">\n                    <title>Second Theorem</title>\n                    <statement><p>No statement.</p></statement>\n                </theorem>\n\n            </subsection>\n\n            <subsection xml:id=\"subsection-local-theorems\">\n                <title>Theorems in This Section</title>\n\n                <p>We have a lot of theorems in this section, so we illustrate including an automatic list of these here.  We use the <c>elements</c> attribute to limit the list to <c>theorem</c> elements, and we use the <c>scope</c> attribute to limit the list to this <c>section</c>.  You can use an introductory <c>p</c> like this one, or not.  The list gets no title or visual separation, so use the usual subdivision elements to make that happen.  The <c>elements</c> attribute can be a space-delimited list of many different elements.  This list should not include the Fundamental Theorem of Calculus, Theorem<nbsp/><xref ref=\"theorem-FTC\"/>.  See a slightly different example in <xref ref=\"appendix-results\" text=\"type-global\"/>.</p>\n\n                <list-of elements=\"theorem\" scope=\"section\"/>\n            </subsection>\n\n            <subsection xml:id=\"subsection-list-of-definitions\" label=\"subsection-list-of-definitions\">\n                <title>Definitions in This Article</title>\n\n                <p>Here is a similar list, but for <c>definition</c> elements across the whole article.  This list also serves as a regression test.  <xref ref=\"prefigure-diagrams\"/> contains a <prefigure/> diagram whose source uses a <c>definition</c> element of its own, in the <prefigure/> XML namespace.  An earlier version of <tag>list-of</tag> matched descendants by local name only, ignoring namespaces, and so would catch <prefigure/> definitions and then fail to produce numbers for them.  The list below correctly contains only the <pretext/> definitions.</p>\n\n                <list-of elements=\"definition\" empty=\"no\"/>\n            </subsection>\n\n            <subsection xml:id=\"subsection-with-an-exercise\">\n                <title>A Title with ] a Right Bracket</title>\n\n                <p><latex/> has trouble with brackets that end up inside optional arguments, so this subsection title is only a check on the defense against that.  And now an <tag>exercise</tag> with a title that could really be a problem.</p>\n\n                <exercise xml:id=\"exercise-difficult-title\">\n                    <title>A Right Brace } and a Right Bracket]</title>\n\n                    <statement>\n                        <p>The right brace is is used as a grouping character in <latex/> so this is just a test of its behavior in titles.</p>\n                    </statement>\n                    <hint>\n                        <p>A faux hint to get this exercise to migrate into a <tag>solutions</tag>.</p>\n                    </hint>\n                </exercise>\n\n            </subsection>\n\n            <subsection>\n                <title>A Title with } a Right Brace</title>\n\n                <p>And now a right brace in a division title.</p>\n\n            </subsection>\n\n            <subsection>\n                <title>A Title with <m>a]b</m> a Math Right Bracket</title>\n\n                <p>And now a right bracket within math in a division title.</p>\n                <p>We do not test a right brace within math, since it should be escaped, as is normal <latex/> practice.</p>\n            </subsection>\n\n            <subsection>\n                <title>Just an Exercise</title>\n\n                <exercise>\n                    <title>An Extraneous Exercise</title>\n\n                    <statement>\n                        <p>This exercise is here just as a test of the <tag>solutions</tag> division coming next.  So it is serving a purpose, even if it is not apparent.</p>\n                    </statement>\n                    <hint>\n                        <p>A hint, so this exercise looks identical in structure to the one in the previous subsection.</p>\n                    </hint>\n                </exercise>\n            </subsection>\n\n            <solutions inline=\"hint\" scope=\"subsection-with-an-exercise\">\n                <introduction>\n                    <p>This is a <tag>solutions</tag> division, which will be a peer of the other <tag>subsection</tag> in this <tag>section</tag>. The default behavior is to look to the parent division (a <tag>section</tag> here) and collect all the hints, answers, and solutions from every <tag>exercise</tag> (and friends) inside this containing division.  (There are just two, similar inline <tag>exercise</tag>.)</p>\n\n                    <p>But instead of the default, we employ a <attr>scope</attr> attribute to <em>define</em> the parent division of the exercises whose solutions will be shown.  In this example we specify the  <tag>subsection</tag> that is two back, the one which tests brackets in titles.</p>\n                </introduction>\n            </solutions>\n        </section>\n\n        <section label=\"section-customizations\">\n            <title>Customizations</title>\n\n            <subsection xml:id=\"rename-facility\">\n                <title>Renaming Document Parts, Plus This Is A Really Long Title So That We Can Test How Well It Reacts To The Right Margin And Wraps Around To Form A Couple Of Lines, Plus How It Sits Relative To The Number Of The Subsection</title>\n\n                <p><q>Names</q><idx>name</idx> for various parts of a document are determined exactly once for each language, ensuring consistency and saving you the bother of always typing them in.</p>\n\n                <p>However, you may want to have <q>Conundrum</q>s<idx><h>conundrum</h><h>repurposed from proposition</h></idx> in your document and you have no use for any <q>Proposition</q>s.\n                    <idx><h>conundrum</h><h>repurposed from proposition</h></idx>\n                    <idx><h>rename an environment</h><h>conundrum</h></idx>\n                So you can repurpose the <c>proposition</c> tag to render a different name.  Or you might have a Lab Manual and want to rename <c>subsection</c> as <q>Activity</q>.  See the <c>docinfo</c> portion of this sample article to see how this is done, in concert with the example below.  Note that you may provide versions for different languages by specifying a <attr>xml:lang</attr> attribute.</p>\n\n                <proposition xml:id=\"proposition-as-conundrum\">\n                    <creator>Smith</creator>\n                    <statement>\n                        <p>Aah, this <em>is</em> confusing!</p>\n                    </statement>\n                </proposition>\n\n                <paragraphs>\n                    <title>Important Notes</title>\n\n                    <p>If you are renaming many parts of your document, then you may not understand the design philosophy of <pretext/>.  In particular, you should not be doing a wholesale shuffle of <c>part</c>, <c>chapter</c>, <c>section</c>, <etc/>  This feature is intended for very limited use and is <em>not considered best practice</em>.</p>\n\n                    <p>This feature could also be abused to provide a comprehensive suite of translations into a language not yet supported.  If so, please contact us about moving your translations into <pretext/> for the benefit of all.  Thanks.</p>\n                </paragraphs>\n\n            </subsection>\n\n            <subsection>\n                <title>Customizing Phrases</title>\n\n                <p>There is a facility for providing alternate text for small or short phrases, or other components of a paragraph.  Here we just provide some tests.  Each is inside of a block quote to identify it clearly.</p>\n\n                <p>We have two auxiliary files of custom elements, so you need to adjust the publisher file to specify the second one during testing.  First, a very simple string as the variation.</p>\n\n                <blockquote>\n                    <p>This is an article about <custom ref=\"plural-animal\"/>.</p>\n                </blockquote>\n\n                <p>Now a string which is partially text and partially simple markup.</p>\n\n                <blockquote>\n                    <p>We like to write with <custom ref=\"an-emotional-style\"/>.</p>\n                </blockquote>\n\n                <p>And a mildly more complicated structure (a list) as the variable text.</p>\n\n                <!-- List in \"custom\" so no space after \"are\" -->\n                <blockquote>\n                    <p>Some of our favorite colors are<custom ref=\"color-list\"/></p>\n                </blockquote>\n\n                <p>A cross-reference to test, since context is critical.</p>\n\n                <blockquote>\n                    <p>See also <custom ref=\"xref-to-result\"/>.</p>\n                </blockquote>\n\n                <p>The URLs used as a replacement have the <attr>visual</attr> attribute which is also managed by the assembly pre-processor to provide a parenthetical for print PDF production.  So this is a good test of the organization of the multiple passes employed by the pre-processor.</p>\n\n                <blockquote>\n                    <p>A <init>URL</init> that should have a parenthetical in the print PDF version: <custom ref=\"a-URL\"/>.</p>\n                </blockquote>\n            </subsection>\n\n        </section>\n\n        <section xml:id=\"section-myopenmath\" label=\"section-myopenmath\">\n            <title>MyOpenMath Interactive Problems</title>\n\n            <p>This is a <em>test</em> with two inline exercises containing MyOpenMath (MOM) problems.  None of this is in the schema, and all of it is subject to change.</p>\n\n            <exercise>\n                <title>Negative Numbers and Exponents</title>\n                <introduction>\n                    <p>This is an introduction, providing articulation between the MOM problem and the contents of the text.  For example, you might cross-reference a result or example given previously.</p>\n                </introduction>\n                <myopenmath problem=\"2572\" params=\"maxtries=2\"/>\n            </exercise>\n\n            <exercise>\n                <title>A Statistical Test</title>\n                <introduction>\n                    <p>This is an introduction, providing articulation between the MOM problem and the contents of the text.  For example, you might cross-reference a result or example given previously.</p>\n                </introduction>\n                <myopenmath problem=\"7492\"/>\n            </exercise>\n\n            <exercise>\n                <title>With an image</title>\n                <introduction>\n                    <p>This is an introduction, providing articulation between the MOM problem and the contents of the text.  For example, you might cross-reference a result or example given previously.</p>\n                </introduction>\n                <myopenmath problem=\"2168\"/>\n            </exercise>\n\n            <exercise>\n                <title>Geometry of a Cone</title>\n                <introduction>\n                    <p>This problem has two figures.  They come from the MOM server as SVG files.  These image files are then converted to PDF for static formats like PDF, and into PNG for formats like Kindle.</p>\n                </introduction>\n                <myopenmath problem=\"930582\" params=\"maxtries=2\"/>\n            </exercise>\n        </section>\n\n        <exercises xml:id=\"stack-questions\" label=\"section-stack\">\n            <title>STACK Interactive Questions</title>\n            <idx>STACK</idx>\n\n            <introduction>\n                <p>These are interactive exercises provided by the <url href=\"https://stack-assessment.org/\">STACK Assessment</url> system.  In HTML output you will need to ask for a <q>new</q> question to make each question render initially.</p>\n            </introduction>\n\n            <exercise>\n                <title>STACK integration question</title>\n\n                <introduction>\n                    <p>An introduction to a test question, providing context within the larger document.</p>\n                </introduction>\n\n                <stack label=\"stack-integration\" source=\"stack/01_integration_with_feedback.xml\"/>\n            </exercise>\n\n            <exercise>\n                <title>STACK multiple choice question</title>\n\n                <introduction>\n                    <p>This is a multiple choice question where multiple answers can (in principle) be correct.</p>\n                </introduction>\n\n                <stack label=\"stack-mcq\" source=\"stack/Checkbox.xml\"/>\n            </exercise>\n\n            <exercise>\n                <title>STACK matrix input question</title>\n\n                <introduction>\n                    <p>This is a question where the input is a matrix.</p>\n                </introduction>\n\n                <stack label=\"stack-matrix\" source=\"stack/Matrix.xml\"/>\n            </exercise>\n\n            <exercise>\n                <title>STACK question with generated plot</title>\n\n                <introduction>\n                    <p>This is a question that generates a plot that must be rendered in the question text.</p>\n                </introduction>\n\n                <stack label=\"stack-plot\" source=\"stack/basic-plot.xml\"/>\n            </exercise>\n\n            <exercise>\n                <title>STACK question with advanced typesetting and embedded image</title>\n\n                <introduction>\n                    <p>This question comes from the <url href=\"https://stack-assessment.org/CaseStudies/2021/HELM/\">HELM project</url>. It features an embedded image in its solution, as well as advanced typesetting and multi-line latex.</p>\n                </introduction>\n\n                <stack label=\"stack-typesetting\" source=\"stack/Adding-vectors-in-triangles.xml\"/>\n            </exercise>\n\n\n        </exercises>\n\n        <section xml:id=\"ancillaries\" label=\"section-ancillaries\">\n            <title>Ancillaries</title>\n\n            <p>Once your content is in place, you can begin thinking about various useful derivative works.  A natural example for a textbook is an <q>Instructor's Version</q>.  Various switches for hints, answers, and solutions to exercises would allow you to include more of these for the use of just an instructor.  Here we also demonstrate the <tag>commentary</tag> element.  It is similar in many ways to a <tag>paragraphs</tag> in that it can be placed within any division and must be titled.  The main difference is that it is not displayed by default, so you must set the string parameter <c>commentary</c> to the value <c>yes</c>. Other distinctions are:<ul>\n                <li>Since it is elective, you need to be careful about cross-references to and from a <tag>commentary</tag>.  It is highly likely that you will want to make cross-references <em>within</em> a <tag>commentary</tag> <em>pointing to</em> other portions of your text, and this is always a good idea.  You will want to avoid making cross-references <em>to</em> a <tag>commentary</tag> from other parts of the text, with the exception of a cross-reference that originates <em>within</em> some <tag>commentary</tag>.</li>\n                <li>Numbered items are prohibited within a <tag>commentary</tag>, such as a <tag>figure</tag> or a <tag>theorem</tag>.  Doing so would disrupt consecutive numbering in different versions, with or without, <tag>commentary</tag> included.  Numbered equations are not prohibited in the schema, but should definitely be avoided anyway.</li>\n            </ul></p>\n\n            <p>After some nonsense text in a paragraph, there is a <tag>commentary</tag> with two paragraphs.  For the online version of this sample article, we have enabled commentaries.  But if you are experimenting yourself, you will want to be aware if you are enabling these or not.</p>\n\n            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam odio orci, ullamcorper eget quam et, viverra tristique magna. Integer auctor arcu a sapien pulvinar elementum. Mauris porta, nulla id molestie dignissim, urna dolor rutrum ligula, eu elementum odio nisl sed libero. Nulla nec libero sem.</p>\n\n            <p>Sed justo ex, efficitur dictum risus nec, eleifend consequat nibh. Proin rutrum mi id metus viverra blandit. In vel ligula a nibh aliquam pellentesque. Duis placerat purus et ligula sollicitudin, sodales consectetur ante viverra.</p>\n\n            <p>Mauris fringilla nulla arcu, sagittis ultrices quam malesuada eleifend. Proin tristique elit eu bibendum tincidunt. Donec commodo lorem in magna egestas, vitae malesuada velit ornare. Pellentesque finibus neque in venenatis tristique. In id blandit est, in euismod urna. Donec commodo sagittis ligula, in venenatis nulla porttitor in. Donec nec tortor sit amet felis posuere ultricies. Suspendisse euismod quis ex eu placerat.</p>\n        </section>\n\n        <section xml:id=\"worksheets\" label=\"section-worksheets\">\n            <title>Worksheets</title>\n\n            <introduction>\n                <title>About Worksheets</title>\n\n                <p>This is a section full of worksheets.  Each is a division of its own, via the <tag>worksheet</tag> element.  This is an optional <tag>introduction</tag> to the current <tag>section</tag>.  In practice you might want to rip out all the worksheets of an entire book and bundle them up as an <q>activity book.</q></p>\n\n                <p>If you make PDF output you will notice an increased amount of control over layout.  Also, if the publication file elects <latex/> draft mode, then there will be visual indicators of prescribed whitespace.</p>\n            </introduction>\n\n            <worksheet label=\"worksheet-geometric-prelude\">\n              <title>A Geometric Prelude (without authored pages)</title>\n              <!-- <author>Dave Rosoff</author> -->\n              <objectives xml:id=\"objectives\">\n                <ul>\n                  <li>Practice visualizing vector addition</li>\n                  <li>Use vectors without explicit coordinates</li>\n                </ul>\n              </objectives>\n              <introduction>\n                <p>This two-page worksheet was generously donated to the sample article by Dave Rosoff at a CuratedCourses workshop in August<nbsp/>2018.  It has the default (skinny) margins.</p>\n\n                <p>It was known to Euclid, and probably earlier, that the midpoints of the sides of any quadrilateral all lie in the same plane (even if the vertices of the quadrilateral do not). In fact, these midpoints are the vertices of a parallelogram, as pictured in <xref ref=\"figure-midpoints-of-quadrilateral\" text=\"type-global\"/>.</p>\n                <sidebyside width=\"30%\">\n                  <figure xml:id=\"figure-midpoints-of-quadrilateral\">\n                    <caption>The midpoints of the sides of a quadrilateral are the vertices of a parallelogram.</caption>\n                    <image xml:id=\"worksheet-midpoints-of-quadrilateral\">\n                      <latex-image>\n                        \\begin{tikzpicture}[xscale=0.8, yscale=0.8]\n                         \\draw[style={black, ultra thick}] (0,0) -- (5,0) -- (4,4) -- (2,5) -- (0,0);\n                         \\draw[style={black, dashed, very thick}] (2.5, 0) -- (4.5, 2) -- (3, 4.5) -- (1, 2.5) -- (2.5, 0);\n                        \\end{tikzpicture}\n                      </latex-image>\n                    </image>\n                  </figure>\n                  <figure xml:id=\"figure-triangle-cyclic-vectors\">\n                    <caption>The sides of a triangle presented as vectors.</caption>\n                    <image xml:id=\"worksheet-triangle-cyclic-vectors\">\n                      <latex-image>\n                        \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                          \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                          \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                          \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                          % \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                          %   {} -- (1.5,0) node[below right=0mm and 3mm] {$\\vec{A}$};\n                          %\\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                          %  {} -- (2,1) node[above left=5mm and 1mm] {$\\vec{B}$};\n                          %\\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                          %  {} -- (0.5,1) node[below left=1mm and 3mm] {$\\vec{C}$};\n                          %\\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                          %\\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                          % \\node {$P$} (1.3333,0.6667);\n                        \\end{tikzpicture}\n                      </latex-image>\n                    </image>\n                  </figure>\n                  <figure xml:id=\"figure-triangle-cyclic-medians\">\n                    <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n                    <image xml:id=\"worksheet-triangle-cyclic-medians\" width=\"50%\">\n                      <latex-image>\n                        \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                          \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                          \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                          \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                          \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                            {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n                          \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                           {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n                          \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                           {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n                          \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                          \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                          % \\node {$P$} (1.3333,0.6667);\n                        \\end{tikzpicture}\n                      </latex-image>\n                    </image>\n                  </figure>\n                </sidebyside>\n                <p>In this exercise, we'll use vectors to show that the medians of any triangle (<xref ref=\"figure-triangle-cyclic-vectors\" text=\"type-global\"/>) intersect at a point. Recall that medians are the lines connecting the vertices of the triangle to the midpoints of their opposite edges, as in the figure. We'll do this in a few steps.</p>\n              </introduction>\n\n              <exercise xml:id=\"ex-cyclic\" workspace=\"4in\">\n                  <statement>\n                  <p>What is the value of <m>\\vec{A} + \\vec{B} + \\vec{C}</m>?</p>\n                  </statement>\n              </exercise>\n\n              <p><xref ref=\"figure-triangle-cyclic-medians\" text=\"type-global\"/> from the previous page is reproduced for your convenience.</p>\n              <figure xml:id=\"figure-triangle-cyclic-medians-copy\">\n                <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n                <image xml:id=\"worksheet-triangle-cyclic-medians-copy\" width=\"50%\">\n                    <description><p>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.  This image description should show up in the regular view, but disappear when printing.</p></description>\n                  <latex-image>\n                    \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                      \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                      \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                      \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                        {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                       {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                       {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n                      \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                      \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                      % \\node {$P$} (1.3333,0.6667);\n                    \\end{tikzpicture}\n                  </latex-image>\n                </image>\n              </figure>\n              <sidebyside margins=\"0%\" widths=\"30% 60%\" valign=\"top\">\n                <exercise xml:id=\"exercise-vector-addition\" workspace=\"4.5in\">\n                  <statement>\n                    <p>Show that <m>\\vec{M}_{1} + \\vec{M}_{2} + \\vec{M}_{3} = 0</m>.</p>\n                  </statement>\n                  <hint>\n                    <p>Use <xref ref=\"ex-cyclic\" text=\"type-global\"/>.</p>\n                  </hint>\n                </exercise>\n                <exercise workspace=\"2in\">\n                  <statement>\n                    <p>To show that the point <m>P</m> exists (as the common intersection of the <m>\\vec{M}_{i}</m>), show that <md>\n                      \\vec{A} + \\frac{2}{3} \\vec{M}_{3} = \\frac{2}{3} \\vec{M}_{2} = <fillin fill=\"\\frac{2}{3} \\vec{M}_{1}-\\vec{C}\"/>\n                    </md>.</p>\n                  </statement>\n                </exercise>\n              </sidebyside>\n              <exercise workspace=\"2.54cm\">\n                <p>If you have time, try to devise a vector proof of Euclid's result presented at the beginning of the workshop. Recall that a <term>parallelogram</term> is a four-sided polygon whose opposite sides are parallel.</p>\n              </exercise>\n\n              <conclusion>\n                <title>Wrap-up</title>\n                <p>It's possible to do interesting things with vector arithmetic in a coordinate-free way: we didn't specify an origin, or any entries of any vectors in the examples.</p>\n              </conclusion>\n            </worksheet>\n\n            <worksheet label=\"worksheet-geometric-prelude-pages\">\n              <title>A Geometric Prelude (with authored pages)</title>\n              <!-- <author>Dave Rosoff</author> -->\n              <page>\n                <objectives xml:id=\"objectives-pages\">\n                  <ul>\n                    <li>Practice visualizing vector addition</li>\n                    <li>Use vectors without explicit coordinates</li>\n                  </ul>\n                </objectives>\n                <introduction>\n                  <p>This two-page worksheet was generously donated to the sample article by Dave Rosoff at a CuratedCourses workshop in August<nbsp/>2018.  It has the default (skinny) margins.</p>\n                  <p>It was known to Euclid, and probably earlier, that the midpoints of the sides of any quadrilateral all lie in the same plane (even if the vertices of the quadrilateral do not). In fact, these midpoints are the vertices of a parallelogram, as pictured in <xref ref=\"figure-midpoints-of-quadrilateral\" text=\"type-global\"/>.</p>\n                  <sidebyside width=\"30%\">\n                    <figure xml:id=\"figure-midpoints-of-quadrilateral-pages\">\n                      <caption>The midpoints of the sides of a quadrilateral are the vertices of a parallelogram.</caption>\n                      <image xml:id=\"worksheet-midpoints-of-quadrilateral-pages\">\n                        <latex-image>\n                          \\begin{tikzpicture}[xscale=0.8, yscale=0.8]\n                           \\draw[style={black, ultra thick}] (0,0) -- (5,0) -- (4,4) -- (2,5) -- (0,0);\n                           \\draw[style={black, dashed, very thick}] (2.5, 0) -- (4.5, 2) -- (3, 4.5) -- (1, 2.5) -- (2.5, 0);\n                          \\end{tikzpicture}\n                        </latex-image>\n                      </image>\n                    </figure>\n                    <figure xml:id=\"figure-triangle-cyclic-vectors-pages\">\n                      <caption>The sides of a triangle presented as vectors.</caption>\n                      <image xml:id=\"worksheet-triangle-cyclic-vectors-pages\">\n                        <latex-image>\n                          \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                            \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                            \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                            \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                            % \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                            %   {} -- (1.5,0) node[below right=0mm and 3mm] {$\\vec{A}$};\n                            %\\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                            %  {} -- (2,1) node[above left=5mm and 1mm] {$\\vec{B}$};\n                            %\\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                            %  {} -- (0.5,1) node[below left=1mm and 3mm] {$\\vec{C}$};\n                            %\\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                            %\\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                            % \\node {$P$} (1.3333,0.6667);\n                          \\end{tikzpicture}\n                        </latex-image>\n                      </image>\n                    </figure>\n                    <figure xml:id=\"figure-triangle-cyclic-medians-pages\">\n                      <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n                      <image xml:id=\"worksheet-triangle-cyclic-medians-pages\" width=\"50%\">\n                        <latex-image>\n                          \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                            \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                            \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                            \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                            \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                              {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n                            \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                             {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n                            \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                             {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n                            \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                            \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                            % \\node {$P$} (1.3333,0.6667);\n                          \\end{tikzpicture}\n                        </latex-image>\n                      </image>\n                    </figure>\n                  </sidebyside>\n                  <p>In this exercise, we'll use vectors to show that the medians of any triangle (<xref ref=\"figure-triangle-cyclic-vectors\" text=\"type-global\"/>) intersect at a point. Recall that medians are the lines connecting the vertices of the triangle to the midpoints of their opposite edges, as in the figure. We'll do this in a few steps.</p>\n                </introduction>\n\n                <exercise xml:id=\"ex-cyclic-pages\" workspace=\"4in\">\n                  <statement>\n                    <p>What is the value of <m>\\vec{A} + \\vec{B} + \\vec{C}</m>?</p>\n                  </statement>\n                </exercise>\n              </page>\n\n              <page>\n              <p><xref ref=\"figure-triangle-cyclic-medians\" text=\"type-global\"/> from the previous page is reproduced for your convenience.</p>\n              <figure xml:id=\"figure-triangle-cyclic-medians-copy-pages\">\n                <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n                <image xml:id=\"worksheet-triangle-cyclic-medians-copy-pages\" width=\"50%\">\n                  <latex-image>\n                    \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n                      \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n                      \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n                      \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                        {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n                       {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n                      \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n                       {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n                      \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n                      \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n                      % \\node {$P$} (1.3333,0.6667);\n                    \\end{tikzpicture}\n                  </latex-image>\n                </image>\n              </figure>\n              <sidebyside margins=\"0%\" widths=\"30% 60%\" valign=\"top\">\n                <exercise xml:id=\"exercise-vector-addition-pages\" workspace=\"4.5in\">\n                  <statement>\n                    <p>Show that <m>\\vec{M}_{1} + \\vec{M}_{2} + \\vec{M}_{3} = 0</m>.</p>\n                  </statement>\n                  <hint>\n                    <p>Use <xref ref=\"ex-cyclic\" text=\"type-global\"/>.</p>\n                  </hint>\n                </exercise>\n                <exercise workspace=\"2in\">\n                  <statement>\n                    <p>To show that the point <m>P</m> exists (as the common intersection of the <m>\\vec{M}_{i}</m>), show that <md>\n                      \\vec{A} + \\frac{2}{3} \\vec{M}_{3} = \\frac{2}{3} \\vec{M}_{2} = <fillin fill=\"\\frac{2}{3} \\vec{M}_{1}-\\vec{C}\"/>\n                    </md>.</p>\n                  </statement>\n                </exercise>\n              </sidebyside>\n              <exercise workspace=\"2.54cm\">\n                <p>If you have time, try to devise a vector proof of Euclid's result presented at the beginning of the workshop. Recall that a <term>parallelogram</term> is a four-sided polygon whose opposite sides are parallel.</p>\n              </exercise>\n              </page>\n\n              <conclusion>\n                <title>Wrap-up</title>\n                <p>It's possible to do interesting things with vector arithmetic in a coordinate-free way: we didn't specify an origin, or any entries of any vectors in the examples.</p>\n              </conclusion>\n            </worksheet>\n\n\n            <worksheet label=\"worksheet-networks\" top=\"3cm\" bottom=\"1.2in\">\n                <title>Networks Worksheet (no authored pages)</title>\n                <!-- <subtitle>An Activity Using Linear Algebra to Solve Network Applications</subtitle> -->\n\n                <introduction>\n                    <title>Basic laws for electrical circuits</title>\n\n                    <p>This two-page worksheet was generously donated to the sample article by Virgil Pierce at a CuratedCourses workshop in August<nbsp/>2018.  It has default (skinny) left and right margins, but we have specified longer top and bottom margins, with the top being the larger of the two.</p>\n\n                    <theorem>\n                        <title> Ohms Law </title>\n                        <p> The current through a resistor is proportional to the ratio of the <em> Voltage </em> to the <em> Resistance </em>\n                            <md> I = \\frac{V}{R} </md>\n                            Or for our purposes\n                            <md> I R = V </md>\n                        </p>\n                    </theorem>\n\n                    <theorem>\n                        <title>Kirchoffs Current Law</title>\n                        <p> The sum of the currents in a network meeting at a point is zero.\n                            <md> \\sum_{k=1}^n I_k = 0 </md>\n                        </p>\n                    </theorem>\n\n                    <example>\n                        <title> Kirchoff's Current Law </title>\n                        <p> For the circuit below <m> I_1 + I_2 = I_3 </m>.</p>\n                        <image xml:id=\"worksheet-kirchoff-law\" width=\"40%\">\n                            <latex-image>\n                            \\begin{circuitikz}\n                            \\draw (0,0)\n                            to[R, i=$I_1$, *-o](2,2);\n                            \\draw (0,0)\n                            to[R, i=$I_2$, *-o](2,-2);\n                            \\draw (-3, 0)\n                            to[R, i=$I_3$, o-*](0,0);\n                            \\end{circuitikz}\n                            </latex-image>\n                        </image>\n                    </example>\n\n                    <theorem>\n                        <title> Kirchoffs Voltage Law </title>\n                        <p> The sum of the voltages around any closed circuit (or subcircuit) is zero.\n                            <md> \\sum_{k=1}^n V_k = 0 </md>\n                        </p>\n                    </theorem>\n\n                    <p> Kirchoffs Current Law and Kirkoffs Voltage Law combined with Ohms Law gives for any circuit of resistors and sources a linear system that may (or may not) determine the currents.\n                    </p>\n                </introduction>\n\n                <sidebyside width=\"45%\" margins=\"0%\">\n                    <exercise workspace=\"1.5in\">\n                        <statement>\n                        <p>For the simple network pictured, calculuate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                        <image xml:id=\"worksheet-simple-network\">\n                            <latex-image>\n                            \\begin{circuitikz}\n                            \\draw (0,0)\n                            to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                            to[short](2,3)\n                            to[R, R=$4\\quad \\mbox{ohm}$] (3, 3)\n                            to[short](4,3)\n                            to[R, R=$3\\quad \\mbox{ohm}$](4,0)\n                            to[short](3,0)\n                            to[R, R=$3\\quad \\mbox{ohm}$](2,0)\n                            to[short](0,0);\n                            \\end{circuitikz}\n                            </latex-image>\n                        </image>\n                        </statement>\n                    </exercise>\n\n                    <exercise workspace=\"2in\">\n                        <statement>\n                        <p> Compare it with a parallel circuit network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                        <image xml:id=\"worksheet-parallel-circuit\">\n                            <latex-image>\n                            \\begin{circuitikz}\n                            \\draw(0,0)\n                            to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                            to[short](5,3)\n                            to[R, R=$4\\quad \\mbox{ohm}$](6,3)\n                            to[short](7,3)\n                            to[R, R=$3\\quad \\mbox{ohm}$](7,0)\n                            to[short](6,0)\n                            to[R, R=$3\\quad \\mbox{ohm}$](5,0)\n                            to[short](0,0);\n                            \\draw(4,0)\n                            to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                            \\end{circuitikz}\n                            </latex-image>\n                        </image>\n                        </statement>\n                    </exercise>\n                </sidebyside>\n\n                <exercise workspace=\"1in\">\n                    <statement>\n                    <p> Now for a more complicated network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                    <image xml:id=\"worksheet-complicated-network\">\n                        <latex-image>\n                        \\begin{circuitikz}\n                        \\draw(0,0)\n                        to[V, v=$11 \\quad \\mbox{volt}$](0, 3)\n                        to[short](5,3)\n                        to[R, R=$4 \\quad \\mbox{ohm}$](6,3)\n                        to[short](9,3)\n                        to[R, R=$4 \\quad \\mbox{ohm}$](10,3)\n                        to[short](11,3)\n                        to[R, R=$3 \\quad \\mbox{ohm}$](11, 0)\n                        to[short](10,0)\n                        to[R, R=$2\\quad \\mbox{ohm}$](9,0)\n                        to[short](6,0)\n                        to[R, R=$2\\quad \\mbox{ohm}$](5,0)\n                        to[short](0,0);\n                        \\draw(4,0)\n                        to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                        \\draw(8,0)\n                        to[R, R=$1\\quad \\mbox{ohm}$](8,3);\n                        \\end{circuitikz}\n                        </latex-image>\n                    </image>\n                    </statement>\n                </exercise>\n\n                <exercise workspace=\"3in\">\n                    <statement>\n                        <p> Now generalize these ideas to a context outside of electrical circuits. Consider the network of streets given in the diagram (with one-way directions as indicated).</p>\n\n                        <image xml:id=\"worksheet-street-network\" width=\"65%\">\n                            <latex-image>\n                            <![CDATA[\n                            \\begin{tikzpicture}[>=stealth]\n                            \\draw[->, very thick] (0,0) -- (10, 0) node[midway, below]{East Bound Winooski Ave};\n                            \\draw[<-, very thick] (0, 1) -- (10, 1) node[midway, above]{West Bound Winooski Ave};\n                                \\draw[<-, very thick] (0, 4) -- (10, 4) node[midway, above]{Shelburne St};\n                                \\draw[<-, very thick] (1, -1) -- (1, 5) node[midway, above, sloped]{Willow};\n                                \\draw[->, very thick] (9, -1) -- (9, 5) node[midway, above, sloped]{Jay};\n                                \\end{tikzpicture}\n                            ]]>\n                            </latex-image>\n                        </image>\n\n                        <p>A traffic engineer counts the hourly flow of cars into and out of this network at the entrances.  They get (EB = East Bound; WB = West Bound): </p>\n\n                        <table>\n                            <title>Estimated hourly traffic flow for the road network</title>\n                            <tabular row-headers=\"yes\" halign=\"center\">\n                                <row header=\"yes\">\n                                    <cell>\n                                    </cell>\n                                    <cell>\n                                        EB Winooski\n                                    </cell>\n                                    <cell>\n                                        WB Winooski\n                                    </cell>\n                                    <cell>\n                                        Shelburne St\n                                    </cell>\n                                    <cell>\n                                        Willow\n                                    </cell>\n                                    <cell>\n                                        Jay\n                                    </cell>\n                                </row>\n                                <row>\n                                    <cell halign=\"left\">\n                                        into\n                                    </cell>\n                                    <cell>\n                                        50\n                                    </cell>\n                                    <cell>\n                                        400\n                                    </cell>\n                                    <cell>\n                                        0\n                                    </cell>\n                                    <cell>\n                                        10\n                                    </cell>\n                                    <cell>\n                                        50\n                                    </cell>\n                                </row>\n                                <row>\n                                    <cell halign=\"left\">\n                                        out of\n                                    </cell>\n                                    <cell>\n                                        55\n                                    </cell>\n                                    <cell>\n                                        390\n                                    </cell>\n                                    <cell>\n                                        20\n                                    </cell>\n                                    <cell>\n                                        15\n                                    </cell>\n                                    <cell>\n                                        30\n                                    </cell>\n                                </row>\n                            </tabular>\n                        </table>\n\n                        <p> Use a variable for each segment inside of the network and set up a system of linear equations restricting the flow. Solve the system.  Note that you should not get a unique solution as traffic should be able to flow through the network in various ways. </p>\n                    </statement>\n                </exercise>\n            </worksheet>\n\n            <worksheet label=\"worksheet-networks-pages\" top=\"3cm\" bottom=\"1.2in\">\n                <title>Networks Worksheet (with authored pages)</title>\n                <!-- <subtitle>An Activity Using Linear Algebra to Solve Network Applications</subtitle> -->\n\n                <introduction>\n                    <title>Basic laws for electrical circuits</title>\n\n                    <p>This two-page worksheet was generously donated to the sample article by Virgil Pierce at a CuratedCourses workshop in August<nbsp/>2018.  It has default (skinny) left and right margins, but we have specified longer top and bottom margins, with the top being the larger of the two.</p>\n\n                    <theorem>\n                        <title> Ohms Law </title>\n                        <p> The current through a resistor is proportional to the ratio of the <em> Voltage </em> to the <em> Resistance </em>\n                            <md> I = \\frac{V}{R} </md>\n                            Or for our purposes\n                            <md> I R = V </md>\n                        </p>\n                    </theorem>\n\n                    <theorem>\n                        <title>Kirchoffs Current Law</title>\n                        <p> The sum of the currents in a network meeting at a point is zero.\n                            <md> \\sum_{k=1}^n I_k = 0 </md>\n                        </p>\n                    </theorem>\n\n                    <example>\n                        <title> Kirchoff's Current Law </title>\n                        <p> For the circuit below <m> I_1 + I_2 = I_3 </m>.</p>\n                        <image xml:id=\"worksheet-kirchoff-law-pages\" width=\"40%\">\n                            <latex-image>\n                            \\begin{circuitikz}\n                            \\draw (0,0)\n                            to[R, i=$I_1$, *-o](2,2);\n                            \\draw (0,0)\n                            to[R, i=$I_2$, *-o](2,-2);\n                            \\draw (-3, 0)\n                            to[R, i=$I_3$, o-*](0,0);\n                            \\end{circuitikz}\n                            </latex-image>\n                        </image>\n                    </example>\n\n                    <theorem>\n                        <title> Kirchoffs Voltage Law </title>\n                        <p> The sum of the voltages around any closed circuit (or subcircuit) is zero.\n                            <md> \\sum_{k=1}^n V_k = 0 </md>\n                        </p>\n                    </theorem>\n\n                    <p> Kirchoffs Current Law and Kirkoffs Voltage Law combined with Ohms Law gives for any circuit of resistors and sources a linear system that may (or may not) determine the currents.\n                    </p>\n                </introduction>\n\n\n                <page>\n                </page>\n\n                <page>\n                    <sidebyside width=\"45%\" margins=\"0%\">\n                        <exercise workspace=\"1.5in\">\n                            <statement>\n                            <p>For the simple network pictured, calculuate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                            <image xml:id=\"worksheet-simple-network-pages\">\n                                <latex-image>\n                                \\begin{circuitikz}\n                                \\draw (0,0)\n                                to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                                to[short](2,3)\n                                to[R, R=$4\\quad \\mbox{ohm}$] (3, 3)\n                                to[short](4,3)\n                                to[R, R=$3\\quad \\mbox{ohm}$](4,0)\n                                to[short](3,0)\n                                to[R, R=$3\\quad \\mbox{ohm}$](2,0)\n                                to[short](0,0);\n                                \\end{circuitikz}\n                                </latex-image>\n                            </image>\n                           </statement>\n                        </exercise>\n\n                        <exercise workspace=\"2in\">\n                            <statement>\n                            <p> Compare it with a parallel circuit network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                            <image xml:id=\"worksheet-parallel-circuit-pages\">\n                                <latex-image>\n                                \\begin{circuitikz}\n                                \\draw(0,0)\n                                to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                                to[short](5,3)\n                                to[R, R=$4\\quad \\mbox{ohm}$](6,3)\n                                to[short](7,3)\n                                to[R, R=$3\\quad \\mbox{ohm}$](7,0)\n                                to[short](6,0)\n                                to[R, R=$3\\quad \\mbox{ohm}$](5,0)\n                                to[short](0,0);\n                                \\draw(4,0)\n                                to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                                \\end{circuitikz}\n                                </latex-image>\n                            </image>\n                            </statement>\n                        </exercise>\n                    </sidebyside>\n\n                    <exercise workspace=\"1in\">\n                        <statement>\n                        <p> Now for a more complicated network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n                        <image xml:id=\"worksheet-complicated-network-pages\">\n                            <latex-image>\n                            \\begin{circuitikz}\n                            \\draw(0,0)\n                            to[V, v=$11 \\quad \\mbox{volt}$](0, 3)\n                            to[short](5,3)\n                            to[R, R=$4 \\quad \\mbox{ohm}$](6,3)\n                            to[short](9,3)\n                            to[R, R=$4 \\quad \\mbox{ohm}$](10,3)\n                            to[short](11,3)\n                            to[R, R=$3 \\quad \\mbox{ohm}$](11, 0)\n                            to[short](10,0)\n                            to[R, R=$2\\quad \\mbox{ohm}$](9,0)\n                            to[short](6,0)\n                            to[R, R=$2\\quad \\mbox{ohm}$](5,0)\n                            to[short](0,0);\n                            \\draw(4,0)\n                            to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                            \\draw(8,0)\n                            to[R, R=$1\\quad \\mbox{ohm}$](8,3);\n                            \\end{circuitikz}\n                            </latex-image>\n                        </image>\n                        </statement>\n                    </exercise>\n                </page>\n\n                <page>\n                    <exercise workspace=\"3in\">\n                        <statement>\n                            <p> Now generalize these ideas to a context outside of electrical circuits. Consider the network of streets given in the diagram (with one-way directions as indicated).</p>\n\n                            <image xml:id=\"worksheet-street-network-pages\" width=\"65%\">\n                                <latex-image>\n                                <![CDATA[\n                                \\begin{tikzpicture}[>=stealth]\n                                \\draw[->, very thick] (0,0) -- (10, 0) node[midway, below]{East Bound Winooski Ave};\n                                \\draw[<-, very thick] (0, 1) -- (10, 1) node[midway, above]{West Bound Winooski Ave};\n                                    \\draw[<-, very thick] (0, 4) -- (10, 4) node[midway, above]{Shelburne St};\n                                    \\draw[<-, very thick] (1, -1) -- (1, 5) node[midway, above, sloped]{Willow};\n                                    \\draw[->, very thick] (9, -1) -- (9, 5) node[midway, above, sloped]{Jay};\n                                    \\end{tikzpicture}\n                                ]]>\n                                </latex-image>\n                            </image>\n\n                            <p>A traffic engineer counts the hourly flow of cars into and out of this network at the entrances.  They get (EB = East Bound; WB = West Bound): </p>\n\n                            <table>\n                                <title>Estimated hourly traffic flow for the road network</title>\n                                <tabular row-headers=\"yes\" halign=\"center\">\n                                    <row header=\"yes\">\n                                        <cell>\n                                        </cell>\n                                        <cell>\n                                            EB Winooski\n                                        </cell>\n                                        <cell>\n                                            WB Winooski\n                                        </cell>\n                                        <cell>\n                                            Shelburne St\n                                        </cell>\n                                        <cell>\n                                            Willow\n                                        </cell>\n                                        <cell>\n                                            Jay\n                                        </cell>\n                                    </row>\n                                    <row>\n                                        <cell halign=\"left\">\n                                            into\n                                        </cell>\n                                        <cell>\n                                            50\n                                        </cell>\n                                        <cell>\n                                            400\n                                        </cell>\n                                        <cell>\n                                            0\n                                        </cell>\n                                        <cell>\n                                            10\n                                        </cell>\n                                        <cell>\n                                            50\n                                        </cell>\n                                    </row>\n                                    <row>\n                                        <cell halign=\"left\">\n                                            out of\n                                        </cell>\n                                        <cell>\n                                            55\n                                        </cell>\n                                        <cell>\n                                            390\n                                        </cell>\n                                        <cell>\n                                            20\n                                        </cell>\n                                        <cell>\n                                            15\n                                        </cell>\n                                        <cell>\n                                            30\n                                        </cell>\n                                    </row>\n                                </tabular>\n                            </table>\n\n                            <p> Use a variable for each segment inside of the network and set up a system of linear equations restricting the flow. Solve the system.  Note that you should not get a unique solution as traffic should be able to flow through the network in various ways. </p>\n                        </statement>\n                    </exercise>\n                </page>\n            </worksheet>\n\n            <worksheet label=\"worksheet-testing\" margin=\"1cm\">\n                <introduction>\n                    <p>This is a mock one-page worksheet for testing purposes. We have specified an overall margin just slightly less than the default.</p>\n                </introduction>\n\n                <sidebyside width=\"45%\" margins=\"0%\">\n                    <exercise workspace=\"1in\">\n                        <statement>\n                            <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise workspace=\"1in\">\n                        <statement>\n                            <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                        </statement>\n                        <hint>\n                            <p>This is a hint.  You can hide it in the print preview before printing.</p>\n                        </hint>\n                        <answer>\n                            <p>Here is an answer.  Also hidable.</p>\n                        </answer>\n                        <solution>\n                            <p>This is a rather long solution.  When you hide or show it in the print preview, the workspace should be adjusted (the page will reload).</p>\n\n                            <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                        </solution>\n                    </exercise>\n                </sidebyside>\n\n                <p>A two-line paragraph interspersed to check on spacing, breaks and all that.</p>\n\n                <exercise workspace=\"1.5in\">\n                    <title>A full-width exercise</title>\n                    <statement>\n                        <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                        <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                    </statement>\n                </exercise>\n\n                <p>Another two-line paragraph interspersed to check on spacing, breaks and all that.</p>\n\n                <sidebyside width=\"30%\" margins=\"0%\">\n                    <exercise>\n                        <statement>\n                            <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise workspace=\"0.5in\">\n                        <!-- <title>The Tallest</title> -->\n                        <statement>\n                            <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise workspace=\"1in\">\n                        <statement>\n                            <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                        </statement>\n                    </exercise>\n                </sidebyside>\n\n                <activity>\n                    <title>A Mock Activity</title>\n\n                    <statement>\n                        <p>The problem, as we see it.</p>\n                    </statement>\n                    <hint>\n                        <p>A worksheet could have hints, no?  But no spacing. Note row below has widths set to balance the heights.</p>\n                    </hint>\n                </activity>\n\n                <sidebyside widths=\"25% 40% 25%\" margins=\"0%\">\n                    <exercise workspace=\"0.5in\">\n                        <statement>\n                            <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise workspace=\"0.5in\">\n                        <!-- <title>Balanced Heights</title> -->\n                        <statement>\n                            <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise workspace=\"0.5in\">\n                        <statement>\n                            <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n                        </statement>\n                    </exercise>\n                </sidebyside>\n            </worksheet>\n\n            <worksheet label=\"worksheet-dot-products\" courseid=\"MAT-150\" series=\"Activity\" seriescode=\"13\">\n              <title>Dot products and projection</title>\n                <sidebyside width=\"45%\" margins=\"0%\">\n                    <exercise>\n                        <introduction>\n                            <p>Let\n                            <m>{\\vec v}_1 = (-4,1)</m>,\n                            <m>{\\vec v}_2 = (2,2)</m>,\n                            <m>{\\vec v}_3 = (1,2,3)</m>,\n                            <m>{\\vec v}_4 = (-2,1,0)</m>.\n                            Find the values of the following expressions:</p>\n                        </introduction>\n                        <task workspace=\"1in\">\n                          <p><m>{\\vec v}_1 \\cdot {\\vec v}_2 = <fillin/></m></p>\n                        </task>\n                        <task workspace=\"1.0in\">\n                          <p><m>{\\vec v}_3 \\cdot {\\vec v}_4 = <fillin/></m></p>\n                        </task>\n                        <task workspace=\"1in\">\n                          <p><m>\\lVert{\\vec v}_1\\rVert = <fillin/></m></p>\n                        </task>\n                        <task workspace=\"1in\">\n                          <p><m>\\lVert{\\vec v}_4\\rVert = <fillin/></m></p>\n                        </task>\n                        <task workspace=\"1in\">\n                          <p>Are any of these vectors perpendicular to each other? <fillin/></p>\n                      </task>\n                    </exercise>\n\n                    <exercise workspace=\"3in\">\n                        <statement>\n                            <p>The vectors <m>\\vec a = (3,9)</m> and <m>\\vec b = (4,2)</m> are pictured below.  Derive the formula for projection on a line and use it to find the projection of <m>\\vec a</m> on the line spanned by <m>\\vec u</m>. Also compute the length of the residual vector.</p>\n                            <figure xml:id=\"prefigure-vectors\">\n                                <image width=\"100%\">\n                                    <prefigure xmlns=\"https://prefigure.org\"\n                                               label=\"prefigure-worksheet-vectors\">\n                                        <diagram dimensions=\"(320, 400)\" margins=\"(5,5,20,20)\">\n                                            <coordinates bbox=\"(0,0,8,10)\">\n                                                <grid at=\"grid\" spacings=\"((0,1,8),(0,1,10))\"/>\n                                                <axes at=\"axes\" decorations=\"no\">\n                                                    <xlabel><m>x</m></xlabel>\n                                                    <ylabel><m>y</m></ylabel>\n                                                </axes>\n                                                <vector at=\"vector-a\" v=\"(3,9)\" alignment=\"se\"><m>\\vec a</m></vector>\n                                                <vector at=\"vector-b\" v=\"(4,2)\" alignment=\"nw\"><m>\\vec b</m></vector>\n                                            </coordinates>\n                                            <annotations>\n                                                <annotation ref=\"figure\"\n                                                            text=\"Two vectors labeled a and b in the coordinate plane\">\n                                                    <annotation ref=\"grid\"\n                                                                text=\"A one by one grid\"/>\n                                                    <annotation ref=\"axes\"\n                                                                text=\"A set of labeled axes\"/>\n                                                    <annotation ref=\"vector-a\"\n                                                                text=\"The vector a\"/>\n                                                    <annotation ref=\"vector-b\"\n                                                                text=\"The vector b\"/>\n                                                </annotation>\n                                            </annotations>\n                                        </diagram>\n                                    </prefigure>\n                                    <shortdescription>two vectors in a Cartesian plane</shortdescription>\n                                </image>\n                                <caption>Two vectors <m>\\vec a</m> and <m>\\vec b</m>.</caption>\n                            </figure>\n                        </statement>\n                    </exercise>\n                </sidebyside>\n\n                <sidebyside width=\"48%\" margins=\"0%\">\n                    <exercise workspace=\"1.25in\">\n                        <introduction>\n                            <p>Consider the vector equation\n                            <md>\n                            m \\begin{bmatrix}2 \\\\ 5\\end{bmatrix} = \\begin{bmatrix}3 \\\\ 7\\end{bmatrix}\n                            </md>.</p>\n                        </introduction>\n                        <task>\n                            <p>Check that there is no solution <m>m</m> that makes the equation true.</p>\n                        </task>\n\n                        <task>\n                            <p>Use projection to find the best approximation <m>\\hat m</m>.</p>\n                        </task>\n\n                        <task>\n                            <p>Compute <m>\\hat m \\begin{bmatrix}2 \\\\ 5\\end{bmatrix} </m>.</p>\n                        </task>\n\n                        <task>\n                            <p>Compute the residual vector.</p>\n                        </task>\n\n                        <task>\n                            <p>Compute the length of the residual vector and explain what it means.</p>\n                        </task>\n                    </exercise>\n\n                    <exercise>\n                        <introduction>\n                            <p>Consider the system of equations\n                            <md>\n                                <mrow>3t \\amp =5</mrow>\n                                <mrow> 2t \\amp = 9 </mrow>\n                            </md>.</p>\n                        </introduction>\n                        <task workspace=\"2in\">\n                            <p>Write the system in vector form.</p>\n                        </task>\n                        <task workspace=\"3.9in\">\n                            <p>Find the best estimate, <m>\\hat t</m>, of <m>t</m> using projection.</p>\n                        </task>\n                        <task workspace=\"2in\">\n                            <p>Compute the length of the residual vector.</p>\n                        </task>\n                    </exercise>\n                </sidebyside>\n            </worksheet>\n            <worksheet label=\"worksheet-activity-no-task\">\n                <activity workspace=\"1in\">\n                  <statement>\n                    <p>\n                      Just a simple activity here.\n                    </p>\n                  </statement>\n                </activity>\n                <activity workspace=\"1in\">\n                  <statement>\n                    <p>\n                      Here is a second activity.\n                    </p>\n                  </statement>\n                </activity>\n            </worksheet>\n            <worksheet label=\"worksheet-activity-with-task\">\n                <activity>\n                  <introduction>\n                    <p>\n                      This is going to be an activity with tasks.\n                    </p>\n                  </introduction>\n                  <task workspace=\"0.75in\">\n                    <statement>\n                      <p>\n                        Here is the first task.\n                      </p>\n                    </statement>\n                  </task>\n                  <task workspace=\"0.25in\">\n                    <statement>\n                      <p>\n                        Here is the second task.\n                      </p>\n                    </statement>\n                  </task>\n                  <task workspace=\"1.75in\">\n                    <statement>\n                      <p>\n                        Here is the third task.\n                      </p>\n                    </statement>\n                  </task>\n                  <conclusion>\n                    <p>\n                      This is a conclusion that comes after the last task.\n                    </p>\n                  </conclusion>\n                </activity>\n            </worksheet>\n\n            <!-- NB: this is duplicated in the sample article -->\n            <worksheet label=\"worksheet-exercisegroup\" margin=\"1cm\">\n              <introduction>\n                <p>\n                  This is a mock worksheet for testing the use of <attr>workspace</attr> for <tag>exercise</tag> within an <tag>exercisegroup</tag>.\n                </p>\n              </introduction>\n\n                <exercisegroup cols=\"2\" workspace=\"1in\">\n                    <introduction>\n                        <p>\n                            Do things to the following.\n                        </p>\n                    </introduction>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Apple\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Banana\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Cherry\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Durian\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise workspace=\"2in\">\n                        <statement>\n                            <p>\n                                Elderberry (with workspace override)\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Fig\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Guava\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Habanero\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                I can't think of an <q>I</q> fruit.\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Jackfruit\n                            </p>\n                        </statement>\n                    </exercise>\n                </exercisegroup>\n\n                <exercisegroup workspace=\"0.25in\">\n                    <introduction>\n                        <p>\n                            Now with one column, do things to the following.\n                        </p>\n                    </introduction>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Apple\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Banana\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Cherry\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Durian\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise workspace=\"2in\">\n                        <statement>\n                            <p>\n                                Elderberry (with workspace override)\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Fig\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Guava\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Habanero\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                I can't think of an <q>I</q> fruit.\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p>\n                                Jackfruit\n                            </p>\n                        </statement>\n                    </exercise>\n                </exercisegroup>\n            </worksheet>\n\n            <worksheet>\n                <title>Worksheet with an exercise with tasks and subtasks</title>\n                <introduction>\n                    <p>\n                        Page breaking between tasks in a single exercise can be tricky.  This is a test for that.\n                    </p>\n                </introduction>\n                <exercise>\n                    <introduction>\n                        <p>\n                            Here are multiple tasks with just enough workspace to cause a page break after the third one.\n                        </p>\n                    </introduction>\n                    <task>\n                        <introduction>\n                            <p>\n                                This task has two short subtasks that should be indented under it.\n                            </p>\n                        </introduction>\n                        <task workspace=\".5in\">\n                        <statement>\n                            <p>\n                                The first subtask.\n                            </p>\n                        </statement>\n                        </task>\n                        <task workspace=\".5in\">\n                        <statement>\n                            <p>\n                                The second subtask.\n                            </p>\n                        </statement>\n                    </task>\n                    <conclusion>\n                        <p>\n                            Conclusion for the first task.\n                        </p>\n                    </conclusion>\n                    </task>\n                    <task workspace=\"1.5in\">\n                        <statement>\n                            <p>\n                                The second task.\n                            </p>\n                        </statement>\n                    </task>\n                    <task workspace=\"1.5in\">\n                        <statement>\n                            <p>\n                                The third task.\n                            </p>\n                        </statement>\n                    </task>\n                    <task workspace=\"2in\">\n                        <statement>\n                            <p>\n                                The fourth task.\n                            </p>\n                        </statement>\n                    </task>\n                    <conclusion>\n                        <p>\n                            Conclusion for the entire exercise.\n                        </p>\n                    </conclusion>\n                </exercise>\n                <exercise workspace=\"3in\">\n                    <statement>\n                        <p>\n                            An exercise without any tasks but some workspace.\n                        </p>\n                    </statement>\n                </exercise>\n            </worksheet>\n\n            <worksheet>\n                <title>Worksheet with <tag>paragraphs</tag></title>\n                <introduction>\n                    <p>\n                        This is a test of the <tag>paragraphs</tag> element within a worksheet.  It should be able to contain exercises that have workspace, and we should be able to insert page breaks even inside of paragraphs.\n                    </p>\n                </introduction>\n                <paragraphs>\n                    <title>Warm up</title>\n                    <exercise workspace=\"1in\">\n                        <statement>\n                            <p>\n                                This is a warm-up exercise.  It should have a small workspace and be on the first page of the worksheet.\n                            </p>\n                        </statement>\n                    </exercise>\n                </paragraphs>\n                <paragraphs>\n                    <title>More exercises</title>\n                    <exercise workspace=\"2in\">\n                        <statement>\n                            <p>\n                                This is a second exercise.  It should have a larger workspace and be on the second page of the worksheet.\n                            </p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <introduction>\n                            <p>\n                                This is a third exercise with some tasks.  The workspace should be such that there will be a page break between tasks.\n                            </p>\n                        </introduction>\n                        <task workspace=\"1in\">\n                            <statement>\n                                <p>\n                                    Do the first thing.\n                                </p>\n                            </statement>\n                        </task>\n                        <task workspace=\"2in\">\n                            <statement>\n                                <p>\n                                    Do the second thing.\n                                </p>\n                            </statement>\n                        </task>\n                        <task workspace=\"2in\">\n                            <statement>\n                                <p>\n                                    Do the third thing.\n                                </p>\n                            </statement>\n                        </task>\n                    </exercise>\n                </paragraphs>\n                <paragraphs>\n                    <title>A third division</title>\n                    <p>\n                        This is a paragraph that starts the third <tag>paragraphs</tag> division.\n                    </p>\n                    <sidebyside>\n                        <exercise workspace=\"1in\">\n                            <statement>\n                                <p>\n                                    This is an exercise in the third paragraphs division inside a side-by-side.\n                                </p>\n                            </statement>\n                        </exercise>\n\n                        <exercise workspace=\"2in\">\n                            <statement>\n                                <p>\n                                    This is a second exercise in the third paragraphs division.  It should have a larger workspace and be on the fourth page of the worksheet.\n                                </p>\n                            </statement>\n                        </exercise>\n                    </sidebyside>\n                    <exercise workspace=\"2in\">\n                        <statement>\n                            <p>\n                                This is a third exercise in the third paragraphs division.  It should have a larger workspace and be on the fifth page of the worksheet.\n                            </p>\n                        </statement>\n                    </exercise>\n                </paragraphs>\n            </worksheet>\n        </section>\n\n        <section xml:id=\"handouts\" label=\"section-handouts\">\n            <title>Handouts</title>\n\n            <introduction>\n                <title>About Handouts</title>\n                <p>\n                    Like worksheets, a <term>handout</term> is a division that is inteded to be printed for use in a classroom.\n                    In HTML output, you get the same print preview and page layout as you do with worksheets; in PDF, these will start on a new page with possibly different margins than the rest of the document.\n                </p>\n\n                <p>\n                    Unlike worksheets, handouts do not have a special class of exercises or activities (exercises in a handout are treated like an <em>inline</em> exercise).\n                    The other main distinction is that a handout lets workspace be specified on pretty much any block or paragraph element, not just exercises, tasks, and project-like elements.  This allows them to be used in the creation of guided notes containing some premade content with lots of space for students to fill in details during class.\n                </p>\n            </introduction>\n\n            <handout xml:id=\"handout-derivative-rules\" label=\"handout-derivative-rules\">\n                <title>Derivative Rules</title>\n                <page>\n                <paragraphs>\n                <title>Rules for specific types of functions</title>\n                <dl>\n                    <li>\n                        <title>Constant functions</title>\n                        <p>\n                            <m>(k)' = 0</m>\n                        </p>\n                    </li>\n\n                    <li>\n                    <title>Power functions</title>\n                    <p><m>(x^{n})' = nx^{n-1}</m></p>\n                    </li>\n\n                    <li>\n                        <title>Exponential functions</title>\n                        <p>\n                            <m>(a^{x})' = \\ln(a) a^{x} \\text{ (for } a>0\\text{)}</m>\n                        </p>\n                        <p>\n                                <m>(e^{x})' = e^{x}</m>\n                        </p>\n                    </li>\n\n                    <li>\n                        <title>Logarithmic functions</title>\n                        <p><m>(\\ln(x))' = \\frac{1}{x}</m></p>\n                    </li>\n\n                <li>\n                    <title>Trigonometric functions</title>\n                    <p><m>(\\sin(x))' = \\cos(x)</m>.</p>\n                    <p> <m>(\\cos(x))' = -\\sin(x)</m>.</p>\n                    <p><m>(\\tan(x))' = \\sec^{2}(x) = \\frac{1}{\\cos^{2}(x)}</m>.</p>\n                    <p><m>(\\arcsin(x))' = \\frac{1}{\\sqrt{1-x^{2}}}</m>.</p>\n                    <p><m>(\\arctan(x))' = \\frac{1}{1+x^{2}}</m>.</p>\n                </li>\n                </dl>\n                </paragraphs>\n\n                <paragraphs>\n                <title>Rules for combinations of functions</title>\n                <dl>\n                    <li>\n                        <title>Constant multiples</title>\n                        <p>\n                            <m>(k\\cdot f(x))' = k\\cdot f'(x)</m>\n                        </p>\n                    </li>\n\n                    <li>\n                        <title>Sum and difference</title>\n                        <p>\n                            <m>(f(x) \\pm g(x))' = f'(x) \\pm g'(x)</m>\n                        </p>\n                    </li>\n\n                    <li>\n                        <title>Products (the product rule)</title>\n                        <p>\n                            <m>(f(x)\\cdot g(x))' = f'(x)g(x) + f(x)g'(x)</m>\n                        </p>\n                    </li>\n\n                    <li>\n                        <title>Quotients (the quotient rule)</title>\n                        <p>\n                            <m>\\left(\\frac{f(x)}{g(x)}\\right)' = \\frac{f'(x)g(x) - f(x)g'(x)}{(g(x))^{2}}</m>\n                        </p>\n                    </li>\n\n                <li>\n                    <title>Compositions (the chain rule)</title>\n                    <p>\n                        <m>(f(g(x)))' = f'(g(x))\\cdot g'(x)</m>\n                    </p>\n                </li>\n            </dl>\n                </paragraphs>\n            </page>\n        </handout>\n\n        <handout>\n            <title>Guided Notes: Derivatives of sums</title>\n            <page>\n                <p workspace=\"1in\">\n                    Today we will explore how to take the derivative of the sum of two functions.  For example, if <md>f(x) = x^2 + 3x</md>, what is <m>f'(x)</m>?  What two functions is this the sum of?  What are the derivatives of each of those functions?\n                </p>\n\n                <p>\n                    To be sure of the derivative of the sum, we should use the definition of the derivative.\n                </p>\n\n                <definition workspace=\".75in\">\n                    <title>Definition of the Derivative</title>\n                    <statement>\n                    <p>\n                        The derivative of a function <m>f(x)</m> at any point <m>x</m> is defined as...\n                    </p>\n                    </statement>\n                </definition>\n\n                <p workspace=\"2in\">\n                    Now let's apply this definition to the function <m>f(x) = x^2 + 3x</m>. We have:\n                </p>\n\n                <p workspace=\"0.25in\">\n                    What should the general rule be?\n                </p>\n            </page>\n\n            <page>\n                <theorem workspace=\"0.5in\">\n                    <statement>\n                        <p>\n                            For any two differentiable functions <m>f(x)</m> and <m>g(x)</m>, the derivative of their sum <m>h(x) = f(x) + g(x)</m> is given by:\n                        </p>\n                    </statement>\n                    <proof workspace=\"3in\">\n                        <p>\n                            Let <m>f(x)</m> and <m>g(x)</m> be differentiable functions and let <m>h(x) = f(x) + g(x)</m>.  Then by the limit definition of the derivative,\n                        </p>\n\n                    </proof>\n\n                </theorem>\n\n                <example workspace=\"1in\">\n                    <statement>\n                        <p>\n                            Find the derivative of <m>f(x) = x^5 + e^x</m>.\n                        </p>\n                    </statement>\n                </example>\n\n                <example workspace=\"1in\">\n                    <statement>\n                        <p>\n                            Find the derivative of <m>f(x) = \\sqrt{x} + x^3 + 7x</m>.\n                        </p>\n                    </statement>\n                </example>\n\n                <example workspace=\"1in\">\n                    <statement>\n                        <p>\n                            Find the derivative of <m>f(x) = 5x^4</m>.\n                        </p>\n                    </statement>\n                </example>\n            </page>\n        </handout>\n        </section>\n\n\n        <section xml:id=\"worksheet-solution-testing\" label=\"section-worksheet-solutions-testing\">\n            <title>Worksheet Solution Testing</title>\n            <introduction>\n                <p>\n                    Solutions to projects and worksheets can both be selected independently for the auto-generated solutions divisions.  What happens when a worksheet contains a project?  Here we explore the various combinations.\n                </p>\n            </introduction>\n\n            <subsection>\n               <title>Subsection with only exercise</title>\n               <exercise>\n                   <statement>\n                        <p>This is an exercise's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is an exercise's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the exercise's solution.</p>\n                    </solution>\n                </exercise>\n            </subsection>\n            <subsection>\n                <title>Subsection with only project</title>\n                <project>\n                    <statement>\n                        <p>This is a project's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is a project's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the project's solution.</p>\n                    </solution>\n                </project>\n            </subsection>\n            <subsection>\n                <title>Subsection with both exercise and project</title>\n                <exercise>\n                    <statement>\n                        <p>This is an exercise's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is an exercise's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the exercise's solution.</p>\n                    </solution>\n                </exercise>\n                <project>\n                    <statement>\n                        <p>This is a project's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is a project's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the project's solution.</p>\n                    </solution>\n                </project>\n            </subsection>\n            <worksheet>\n               <title>Worksheet with only exercise</title>\n               <exercise>\n                   <statement>\n                       <p>This is an exercise's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is an exercise's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the exercise's solution.</p>\n                    </solution>\n                </exercise>\n            </worksheet>\n            <worksheet>\n                <title>Worksheet with only project</title>\n                <project>\n                    <statement>\n                        <p>This is a project's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is a project's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the project's solution.</p>\n                    </solution>\n                </project>\n            </worksheet>\n            <worksheet>\n                <title>Worksheet with both exercise and project</title>\n                <exercise>\n                    <statement>\n                        <p>This is an exercise's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is an exercise's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the exercise's solution.</p>\n                    </solution>\n                </exercise>\n                <project>\n                    <statement>\n                        <p>This is a project's statement.</p>\n                    </statement>\n                    <answer>\n                        <p>This is a project's answer.</p>\n                    </answer>\n                    <solution>\n                        <p>This is the project's solution.</p>\n                    </solution>\n                </project>\n            </worksheet>\n            <solutions inline=\"answer\">\n                <title>Inline answers only</title>\n            </solutions>\n            <solutions project=\"answer\">\n                <title>Project answers only</title>\n            </solutions>\n            <solutions worksheet=\"answer\">\n                <title>Worksheet answers only</title>\n            </solutions>\n            <solutions inline=\"answer\" project=\"statement\">\n                <title>Inline answers, project statement</title>\n            </solutions>\n            <solutions inline=\"answer\" worksheet=\"statement\">\n                <title>Inline answers, worksheet statement</title>\n            </solutions>\n            <solutions project=\"answer\" worksheet=\"statement\">\n                <title>Project answers, worksheet statement</title>\n            </solutions>\n            <solutions inline=\"answer\" project=\"statement\" worksheet=\"solution\">\n                <title>Inline answers, project statement, worksheet solution</title>\n            </solutions>\n        </section>\n\n       <section xml:id=\"exercises-single\" label=\"section-exercises-single\">\n            <title>Exercises, One Subsection</title>\n\n            <p>This <tag>section</tag> of the sample article demonstrates an <q>unstructured division.</q>  There are no <tag>subsection</tag>, you are just reading the first two paragraphs, followed by some nonsense text.  Then there is a <em>single</em> <tag>exercises</tag> division.  Note that this division is not numbered (since it is unique within the <tag>section</tag>).  And a cross-reference to one of the contained <tag>exercise</tag> will be numbered as a member of the <tag>section</tag>, <xref ref=\"exercise-challenging-one-unstructured\" text=\"type-global\"/>.</p>\n\n            <p>If you use the unstructured form of a division, <em>and</em> have both inline and divisional exercises, there is a potential to form ambiguous cross-references.  To wit, check that <xref ref=\"duplicate-inline\" text=\"global\"/> and <xref ref=\"duplicate-divisional\" text=\"global\"/> are really different exercises (which you are <em>unable to do</em> if you are reading this in print!).  The solution is to include the type of exercise in the reference, which will assist everybody, but especially your print readers:  <xref ref=\"duplicate-inline\" text=\"type-global\"/> and <xref ref=\"duplicate-divisional\" text=\"type-global\"/>.</p>\n\n            <p>Compare this section with the similar <xref ref=\"exercises-multiple\" text=\"type-global\"/>, next.  The following text is mostly nonsense, just for testing purposes.</p>\n\n            <exercise>\n                <title>Inline One</title>\n                <statement>\n                    <p>Aliquam vitae risus placerat, pellentesque leo vitae, iaculis ante. Praesent ac odio eget mi bibendum eleifend ac eget metus. Morbi in dolor et diam accumsan mattis. Aenean elementum pulvinar efficitur. Etiam viverra ut tellus quis consequat. Phasellus sit amet nisl a ligula pharetra tempus id in elit. Maecenas congue quam eu purus fermentum pretium. Fusce pellentesque ultricies arcu, egestas sollicitudin erat condimentum non. Integer non velit at dolor dictum aliquam et rhoncus mauris. Sed nec nibh id nunc convallis tincidunt ut at ligula. Etiam elementum nisl eu erat dapibus rhoncus.</p>\n                </statement>\n            </exercise>\n\n            <p>Pellentesque nec condimentum ligula, quis interdum mauris. Ut sed urna lacinia, aliquam arcu id, faucibus nisi. Suspendisse potenti. Curabitur in erat ultricies, condimentum mi nec, vehicula mauris. Duis faucibus risus fermentum velit hendrerit, non laoreet massa maximus. Donec bibendum elit ac lectus lobortis luctus. Ut finibus, dolor ut euismod tristique, ligula tortor tempus arcu, finibus semper purus erat ut ligula. Aenean accumsan ut ante vel euismod.</p>\n\n            <exercise xml:id=\"duplicate-inline\">\n                <title>Inline Two</title>\n                <p>Ut porttitor neque a pharetra euismod. Vivamus ut metus pretium, placerat massa tempor, condimentum metus. Phasellus vestibulum iaculis turpis non posuere. Vestibulum quis aliquet neque. Donec nec metus iaculis, laoreet massa vitae, suscipit tellus. Etiam et ultrices quam, quis pretium ligula. In ut cursus metus. Aenean volutpat quam odio, quis tempus dolor egestas eget. Nunc fringilla lobortis nunc, ut interdum lorem posuere sed. Sed sodales risus a laoreet venenatis. Nunc sodales tempor mollis. Nam sollicitudin velit sed ex viverra feugiat. Nunc consectetur mi vitae urna sollicitudin malesuada. Fusce eget risus lectus. Mauris augue velit, vestibulum vitae tempus sit amet, porttitor eget turpis.</p>\n            </exercise>\n\n            <theorem>\n                <title>Major Result</title>\n                <p>Vivamus tortor tortor, lobortis et sem vel, accumsan placerat libero. Sed eget metus non magna accumsan efficitur a non turpis. Curabitur maximus arcu ipsum, eget vestibulum nulla mollis ac. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis vel eleifend risus. Morbi hendrerit tellus eget nibh imperdiet, ac mollis nisl sagittis. Ut commodo pharetra leo. Suspendisse consequat velit eget velit condimentum feugiat.</p>\n            </theorem>\n\n            <exercise>\n                <title>Inline Three</title>\n                <statement>\n                    <p>Suspendisse lacinia mattis risus, eget viverra urna dictum eu. Maecenas ut sem in turpis egestas varius nec at ipsum. Praesent bibendum nisi et turpis congue, a pellentesque felis tempor. Vivamus non dolor in risus interdum mattis. In tempus iaculis velit, sit amet rhoncus tellus aliquam convallis. Sed ut tellus id ipsum blandit convallis sed eget tortor. Nunc leo felis, scelerisque vel ante porta, volutpat rhoncus neque. Mauris convallis, felis at aliquam aliquet, felis ipsum semper mi, vitae auctor purus ante non erat. Ut nec felis mi.</p>\n                </statement>\n            </exercise>\n\n            <exercises xml:id=\"exercise-collection\">\n                <title>Exercise Collection</title>\n\n                <exercise>\n                    <title>Drill One</title>\n                    <statement>\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n\n                        <figure>\n                            <caption>A figure in an <tag>exercise</tag> in an <em>unstructured</em> division to test that it is numbered as if the containing <tag>exercises</tag> is not present</caption>\n                            <image xml:id=\"cross-square-unstructured\" width=\"10%\" source=\"images/cross-square.png\"/>\n                        </figure>\n                        <figure>\n                            <caption>A side-by-side in a figure in an <tag>exercise</tag> in an <em>unstructured</em> division to test that it is numbered as if the containing <tag>exercises</tag> is not present and to test the numbering of the panels in a solutions manual</caption>\n                            <sidebyside margins=\"5%\" width=\"10%\">\n                                <figure>\n                                    <caption>First Panel, subcaptioned</caption>\n                                    <image xml:id=\"cross-square-unstructured-panel-B1\" source=\"images/cross-square.png\"/>\n                                </figure>\n                                <figure>\n                                    <caption>Second Panel, subcaptioned</caption>\n                                    <image xml:id=\"cross-square-unstructured-panel-B2\" source=\"images/cross-square.png\"/>\n                                </figure>\n                            </sidebyside>\n                        </figure>\n                        <sidebyside margins=\"5%\" width=\"10%\">\n                            <figure>\n                                <caption>First Panel, not subcaptioned</caption>\n                                <image xml:id=\"cross-square-unstructured-panel-A1\" source=\"images/cross-square.png\"/>\n                            </figure>\n                            <figure>\n                                <caption>Second Panel, not subcaptioned</caption>\n                                <image xml:id=\"cross-square-unstructured-panel-A2\" source=\"images/cross-square.png\"/>\n                            </figure>\n                        </sidebyside>\n                    </statement>\n                </exercise>\n\n                <exercise xml:id=\"duplicate-divisional\">\n                    <title>Drill Two</title>\n                    <statement>\n                        <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh. Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n\n                        <figure>\n                            <caption>Testing numbering, figure in a <tag>exercise</tag> in an un-numbered <tag>exercises</tag></caption>\n                            <image source=\"images/cross-square.png\" width=\"20%\"/>\n                        </figure>\n\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Drill Three</title>\n                    <statement>\n                        <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                    </statement>\n                </exercise>\n\n                <exercise xml:id=\"exercise-challenging-one-unstructured\">\n                    <title>Challenging One</title>\n                    <statement>\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                    </statement>\n                </exercise>\n\n                <exercisegroup>\n                    <introduction>\n                        <p>An introduction to an <c>exercisegroup</c>.  This is here to attempt to interrupt the flow of the counting from this division to the next.</p>\n                    </introduction>\n\n                    <exercise>\n                        <title>Challenging Two</title>\n                        <statement>\n                            <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh.</p>\n                            <p>Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise>\n                        <title>Challenging Three</title>\n                        <statement>\n                            <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                        </statement>\n                    </exercise>\n                </exercisegroup>\n\n                <exercise>\n                    <title>Impossible One</title>\n                    <statement>\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Impossible Two</title>\n                    <statement>\n                        <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh. Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Impossible Three</title>\n                    <statement>\n                        <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                    </statement>\n                </exercise>\n            </exercises>\n\n            <references>\n                <title>More Reading</title>\n\n                <introduction>\n                    <p>Left intentionally blank, just checking sectioning.</p>\n                </introduction>\n\n                <biblio type=\"raw\" xml:id=\"biblio-lay-article-repeat2\">David C. Lay, <title>Subspaces and Echelon Forms</title>. <journal>The College Mathematics Journal</journal>, January 1993, <volume>24</volume> <number>1</number>, 57<ndash/>62.</biblio>\n\n            </references>\n        </section>\n\n        <exercises label=\"exercises-structured\">\n            <title>Exercise Section, Structured</title>\n\n            <introduction>\n                <p>A collection of exercises, in a top-level <tag>exercises</tag> division, structured with <tag>subexercises</tag>.</p>\n            </introduction>\n\n            <subexercises>\n                <title>Easy Exercises</title>\n\n                <exercise>\n                    <title>Arithmetic</title>\n                    <statement>\n                        <p>Compute <m>3+4</m>.</p>\n                    </statement>\n                    <answer>\n                        <p><m>7</m></p>\n                    </answer>\n                </exercise>\n\n                <exercise>\n                    <title>Trigonometry</title>\n                    <statement>\n                        <p>Compute <m>\\sin(\\pi/4)</m>.</p>\n                    </statement>\n                </exercise>\n            </subexercises>\n\n            <subexercises xml:id=\"hard-subexercises\">\n                <title>Hard Problems</title>\n\n                <exercise>\n                    <title>Number Theory</title>\n                    <statement>\n                        <p>Prove Fermat's Last Theorem.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Millenial</title>\n                    <statement>\n                        <p>Find general solutions to the Navier-Stokes equation.</p>\n                    </statement>\n                </exercise>\n            </subexercises>\n\n            <subexercises>\n                <title>With an Exercise Group</title>\n\n                <exercisegroup>\n                    <introduction>\n                        <p>This is an exercise group, and this is its introduction.</p>\n                    </introduction>\n                    <exercise>\n                        <title>One</title>\n                        <statement>\n                            <p><m>6-5</m></p>\n                        </statement>\n                        <hint>\n                            <p>Subtract.</p>\n                        </hint>\n                    </exercise>\n                    <exercise>\n                        <title>Two</title>\n                        <statement>\n                            <p><m>1+1</m></p>\n                        </statement>\n                    </exercise>\n                </exercisegroup>\n\n                <exercise>\n                    <title>Outside exercisegroup, inside subexercises</title>\n                    <statement>\n                        <p>6+5</p>\n                    </statement>\n                </exercise>\n            </subexercises>\n        </exercises>\n\n        <section xml:id=\"exercises-multiple\" label=\"section-exercises-multiple\">\n            <title>Exercises, Multiple Subsections</title>\n\n            <introduction>\n                <p>This <tag>section</tag> of the sample article demonstrates a <q>structured division.</q>  You are reading the introduction to the division, then there is a faux <tag>subsection</tag>, followed by three <tag>exercises</tag> divisions.  Note that the three are numbered as if they are also fellow<tag>subsection</tag>.  And a cross-reference to one of the contained <tag>exercise</tag> will be numbered use the number of the <tag>subsection</tag>, <xref ref=\"exercise-challenging-one-structured\" text=\"type-global\"/>.</p>\n\n                <p>Compare this section with the similar <xref ref=\"exercises-single\" text=\"type-global\"/>, previous.  The following text is mostly nonsense, just for testing purposes.</p>\n            </introduction>\n\n            <subsection>\n                <title>Faux Subsection</title>\n\n                <exercise>\n                    <title>Inline One</title>\n                    <statement>\n                        <p>Aliquam vitae risus placerat, pellentesque leo vitae, iaculis ante. Praesent ac odio eget mi bibendum eleifend ac eget metus. Morbi in dolor et diam accumsan mattis. Aenean elementum pulvinar efficitur. Etiam viverra ut tellus quis consequat. Phasellus sit amet nisl a ligula pharetra tempus id in elit. Maecenas congue quam eu purus fermentum pretium. Fusce pellentesque ultricies arcu, egestas sollicitudin erat condimentum non. Integer non velit at dolor dictum aliquam et rhoncus mauris. Sed nec nibh id nunc convallis tincidunt ut at ligula. Etiam elementum nisl eu erat dapibus rhoncus.</p>\n                    </statement>\n                </exercise>\n\n                <p>Pellentesque nec condimentum ligula, quis interdum mauris. Ut sed urna lacinia, aliquam arcu id, faucibus nisi. Suspendisse potenti. Curabitur in erat ultricies, condimentum mi nec, vehicula mauris. Duis faucibus risus fermentum velit hendrerit, non laoreet massa maximus. Donec bibendum elit ac lectus lobortis luctus. Ut finibus, dolor ut euismod tristique, ligula tortor tempus arcu, finibus semper purus erat ut ligula. Aenean accumsan ut ante vel euismod.</p>\n\n                <exercise>\n                    <title>Inline Two</title>\n                    <statement>\n                        <p>Ut porttitor neque a pharetra euismod. Vivamus ut metus pretium, placerat massa tempor, condimentum metus. Phasellus vestibulum iaculis turpis non posuere. Vestibulum quis aliquet neque. Donec nec metus iaculis, laoreet massa vitae, suscipit tellus. Etiam et ultrices quam, quis pretium ligula. In ut cursus metus. Aenean volutpat quam odio, quis tempus dolor egestas eget. Nunc fringilla lobortis nunc, ut interdum lorem posuere sed. Sed sodales risus a laoreet venenatis. Nunc sodales tempor mollis. Nam sollicitudin velit sed ex viverra feugiat. Nunc consectetur mi vitae urna sollicitudin malesuada. Fusce eget risus lectus. Mauris augue velit, vestibulum vitae tempus sit amet, porttitor eget turpis.</p>\n                    </statement>\n                </exercise>\n\n                <theorem>\n                    <title>Major Result</title>\n                    <p>Vivamus tortor tortor, lobortis et sem vel, accumsan placerat libero. Sed eget metus non magna accumsan efficitur a non turpis. Curabitur maximus arcu ipsum, eget vestibulum nulla mollis ac. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis vel eleifend risus. Morbi hendrerit tellus eget nibh imperdiet, ac mollis nisl sagittis. Ut commodo pharetra leo. Suspendisse consequat velit eget velit condimentum feugiat.</p>\n                </theorem>\n\n                <exercise xml:id=\"exercise-duplicate-inline\">\n                    <title>Inline Three</title>\n                    <statement>\n                        <p>Suspendisse lacinia mattis risus, eget viverra urna dictum eu. Maecenas ut sem in turpis egestas varius nec at ipsum. Praesent bibendum nisi et turpis congue, a pellentesque felis tempor. Vivamus non dolor in risus interdum mattis. In tempus iaculis velit, sit amet rhoncus tellus aliquam convallis. Sed ut tellus id ipsum blandit convallis sed eget tortor. Nunc leo felis, scelerisque vel ante porta, volutpat rhoncus neque. Mauris convallis, felis at aliquam aliquet, felis ipsum semper mi, vitae auctor purus ante non erat. Ut nec felis mi.</p>\n                    </statement>\n                </exercise>\n            </subsection>\n\n            <exercises xml:id=\"exercises-drill\">\n                <title>Drill Exercises</title>\n\n                <exercise>\n                    <title>Drill One</title>\n                    <statement>\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n\n                        <figure>\n                            <caption>A figure in an <tag>exercise</tag> in a <em>structured</em> division to test that it is numbered with consideration of the containing <tag>exercises</tag></caption>\n                            <image xml:id=\"cross-square-structured\" width=\"10%\" source=\"images/cross-square.png\"/>\n                        </figure>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Drill Two</title>\n                    <statement>\n                        <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh. Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Drill Three</title>\n                    <statement>\n                        <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                    </statement>\n                </exercise>\n            </exercises>\n\n\n            <exercises>\n                <title>Challenging Exercises</title>\n\n                <exercise xml:id=\"exercise-challenging-one-structured\">\n                    <title>Challenging One</title>\n                    <statement>\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                    </statement>\n                </exercise>\n\n                <exercisegroup>\n                    <introduction>\n                        <p>An introduction to an <c>exercisegroup</c>.  This is here to attempt to interrupt the flow of the counting from this division to the next.</p>\n                    </introduction>\n\n                    <exercise>\n                        <title>Challenging Two</title>\n                        <statement>\n                            <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh.</p>\n                            <p>Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                        </statement>\n                    </exercise>\n\n                    <exercise>\n                        <title>Challenging Three</title>\n                        <statement>\n                            <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                        </statement>\n                    </exercise>\n                </exercisegroup>\n            </exercises>\n\n\n            <exercises>\n                <title>Impossible Exercises</title>\n\n                <exercise>\n                    <title>Impossible One</title>\n                    <statement>\n                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Impossible Two</title>\n                    <statement>\n                        <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh. Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Impossible Three</title>\n                    <statement>\n                        <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                    </statement>\n                </exercise>\n            </exercises>\n\n            <exercises>\n                <title>Layout challenge</title>\n                <exercisegroup cols=\"2\">\n                    <introduction>\n                        <p>A multicolumn exercisegroup with layout challenges. The first two should be on one row. The next two should be on one row until the hint is opened. Then one that takes up an entire row. The final row should always have two exercises.</p>\n                    </introduction>\n                    <exercise>\n                        <statement>\n                            <aside>\n                                <title>Column test</title>\n                                <p>An aside in a multi-column container.</p>\n                            </aside>\n                            <p><md alignment=\"alignat\">\n                                <mrow>2x \\amp {}+{} \\amp  y \\amp {}={} \\amp 10</mrow>\n                                <mrow>x  \\amp       \\amp    \\amp {}={} \\amp 6</mrow>\n                                <mrow>x  \\amp {}+{} \\amp 3y \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p><md alignment=\"alignat\">\n                                <mrow>2x \\amp {}+{} \\amp  y \\amp {}={} \\amp 10</mrow>\n                                <mrow>x  \\amp       \\amp    \\amp {}={} \\amp 6</mrow>\n                                <mrow>x  \\amp {}+{} \\amp 3y \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p><md alignment=\"alignat\">\n                                <mrow>2x \\amp {}+{} \\amp  y \\amp {}={} \\amp 10</mrow>\n                                <mrow>x  \\amp       \\amp    \\amp {}={} \\amp 6</mrow>\n                                <mrow>x  \\amp {}+{} \\amp 3y \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p><md alignment=\"alignat\">\n                                <mrow>2x \\amp {}+{} \\amp  y \\amp {}={} \\amp 10</mrow>\n                                <mrow>x  \\amp       \\amp    \\amp {}={} \\amp 6</mrow>\n                                <mrow>x  \\amp {}+{} \\amp 3y \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                        <hint>\n                            <title>OPEN ME!</title>\n                            <p><md alignment=\"alignat\">\n                                <mrow>3u \\amp {}+{} 1v \\amp {}+{} 3w \\amp {}+{} 2x \\amp {}+{} \\amp  y \\amp {}+{} \\amp 3z \\amp {}={} \\amp 10</mrow>\n                                <mrow>2u \\amp {}+{} 2v \\amp {}-{} 2w \\amp {}+{} x  \\amp       \\amp    \\amp {}+{} \\amp  z \\amp {}={} \\amp 6</mrow>\n                                <mrow>1u \\amp {}-{} 3v \\amp {}+{} 1w \\amp {}+{} x  \\amp {}+{} \\amp 3y \\amp {}+{} \\amp 2z \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </hint>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p><md alignment=\"alignat\">\n                                <mrow>200t \\amp {}+{} 3u \\amp {}+{} 1v \\amp {}+{} 3w \\amp {}+{} 2x \\amp {}+{} \\amp  y \\amp {}+{} \\amp 3z \\amp {}={} \\amp 10</mrow>\n                                <mrow> \\amp {}+{} 2u \\amp {}+{} 2v \\amp {}-{} 2w \\amp {}+{} x  \\amp       \\amp    \\amp {}+{} \\amp  z \\amp {}={} \\amp 6</mrow>\n                                <mrow>100t \\amp {}+{} 1u \\amp {}-{} 3v \\amp {}+{} 1w \\amp {}+{} x  \\amp {}+{} \\amp 3y \\amp {}+{} \\amp 2z \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p><md alignment=\"alignat\">\n                                <mrow>2x \\amp {}+{} \\amp  y \\amp {}={} \\amp 10</mrow>\n                                <mrow>x  \\amp       \\amp    \\amp {}={} \\amp 6</mrow>\n                                <mrow>x  \\amp {}+{} \\amp 3y \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                    </exercise>\n                    <exercise>\n                        <statement>\n                            <p><md alignment=\"alignat\">\n                                <mrow>2x \\amp {}+{} \\amp  y \\amp {}={} \\amp 10</mrow>\n                                <mrow>x  \\amp       \\amp    \\amp {}={} \\amp 6</mrow>\n                                <mrow>x  \\amp {}+{} \\amp 3y \\amp {}={} \\amp 13</mrow>\n                            </md></p>\n                        </statement>\n                    </exercise>\n                </exercisegroup>\n            </exercises>\n\n            <references>\n                <title>More Reading</title>\n\n                <introduction>\n                    <p>Left intentionally blank, just checking sectioning.</p>\n                </introduction>\n\n                <biblio type=\"raw\" xml:id=\"biblio-lay-article-repeat1\">David C. Lay, <title>Subspaces and Echelon Forms</title>. <journal>The College Mathematics Journal</journal>, January 1993, <volume>24</volume> <number>1</number>, 57<ndash/>62.</biblio>\n\n            </references>\n        </section>\n\n        <exercises xml:id=\"exercises\" label=\"exercises-top-level\">\n            <title>Exercises, Top-Level</title>\n\n            <introduction>\n                <p></p>\n                <p>This <tag>exercises</tag> of the sample article is a peer of all the preceding <tag>section</tag> and is the only such <tag>exercises</tag>.  As such, it is not numbered, and contains only <tag>exercise</tag>, but for this <tag>introduction</tag> you are reading.  The <tag>exercises</tag> contained within will be numbered in cross-references according to the enclosing division, in this case the entire article and so without any qualification, to wit, <xref ref=\"exercise-challenging-one-top\" text=\"type-global\"/>.</p>\n            </introduction>\n\n            <exercise>\n                <title>Drill One</title>\n                <statement>\n                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                </statement>\n            </exercise>\n\n            <exercise>\n                <title>Drill Two</title>\n                <statement>\n                    <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh. Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n\n                    <figure>\n                        <caption>Testing numbering in a <tag>exercises</tag> without a number</caption>\n                        <image source=\"images/cross-square.png\" width=\"20%\"/>\n                    </figure>\n                </statement>\n            </exercise>\n\n            <exercise>\n                <title>Drill Three</title>\n                <statement>\n                    <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                </statement>\n            </exercise>\n\n            <exercise xml:id=\"exercise-challenging-one-top\">\n                <title>Challenging One</title>\n                <statement>\n                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                </statement>\n            </exercise>\n\n            <exercisegroup>\n                <introduction>\n                    <p>An introduction to an <c>exercisegroup</c>.  This is here to attempt to interrupt the flow of the counting from this division to the next.</p>\n                </introduction>\n\n                <exercise>\n                    <title>Challenging Two</title>\n                    <statement>\n                        <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh.</p>\n                        <p>Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                    </statement>\n                </exercise>\n\n                <exercise>\n                    <title>Challenging Three</title>\n                    <statement>\n                        <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                    </statement>\n                </exercise>\n            </exercisegroup>\n\n            <exercise>\n                <title>Impossible One</title>\n                <statement>\n                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras congue urna nulla. Aliquam eget euismod tellus. Maecenas nibh libero, venenatis a laoreet in, tempor sit amet sem. Morbi sit amet justo tempor velit auctor placerat. Maecenas nec lobortis orci. Aenean dictum enim lacus, ac blandit lacus elementum nec. Mauris porttitor neque volutpat tincidunt sollicitudin. Cras porta lectus ac facilisis tempor. Suspendisse in velit nisl. Sed convallis leo at nunc aliquet fermentum. Pellentesque feugiat at ex sed elementum. In porta vulputate ipsum sit amet consectetur.</p>\n                </statement>\n            </exercise>\n\n            <exercise>\n                <title>Impossible Two</title>\n                <statement>\n                    <p>Aliquam sagittis ex at magna porttitor, quis scelerisque ligula malesuada. Vestibulum vitae mauris id nisi pretium ornare a id lectus. Nam suscipit magna id sem ultricies vestibulum. Nulla facilisi. Duis venenatis lectus massa, ac mollis nisi suscipit non. Sed et sapien vulputate, imperdiet nibh vel, lobortis nisl. Curabitur sagittis justo nibh. Nulla vulputate sodales justo at efficitur. Cras justo augue, mollis vitae nulla sed, vestibulum tincidunt ante. Vestibulum et lorem lectus. Maecenas accumsan lacus a nisi euismod rutrum eu dapibus justo. Etiam scelerisque a odio a euismod. Pellentesque vestibulum pellentesque nisi, a tempus erat cursus ac. Morbi ut auctor lectus.</p>\n                </statement>\n            </exercise>\n\n            <exercise>\n                <title>Impossible Three</title>\n                <statement>\n                    <p>Nam congue ex nec justo iaculis maximus. Vestibulum lobortis magna sed urna auctor, vel dignissim massa posuere. In sed venenatis elit. Vivamus congue gravida tempus. Nunc quis fermentum nisi. Nullam hendrerit lorem et tellus semper, sit amet scelerisque purus lobortis. Quisque sollicitudin quis neque eu suscipit. Praesent volutpat justo quis magna vehicula molestie.</p>\n                </statement>\n            </exercise>\n\n            <exercise>\n                <title>An Exercise in a Section</title>\n                <statement>\n                    <p>Exercises can appear in a <q>section</q> of their own.  You need to give the section a title, even if it seems obvious what to call it.  Individual exercises may have titles, as you choose.  Problem: How should we hide solutions?</p>\n                </statement>\n                <solution>\n                    <p>Maybe a global switch should be used to suppress solutions, while a separate processing regime could use them as part of a solutions manual.</p>\n                </solution>\n            </exercise>\n\n            <exercise number=\"42a\" xml:id=\"exercise-with-hardcoded-number\">\n                <title>An Exercise with a Hard-Coded Problem Number</title>\n                <statement>\n                    <p>Compute the definite integral <m>\\definiteintegral{2}{4}{x^2}{x}</m>, not as an approximate value from a Riemann sum, but as an exact value based of the limit by using the Fundamental Theorem.</p>\n                </statement>\n                <solution xml:id=\"solution-antiderivative\">\n                    <p>An antiderivative of <m>x^2</m> is <m>F(x)=x^3/3</m>, so by the FTC,<md>\\definiteintegral{2}{4}{x^2}{x}=F(4)-F(2)=\\frac{1}{3}\\left(4^3-2^3\\right)=\\frac{56}{3}</md>!?!      This is indeed an exciting result, but we are mostly interested in seeing that the sentence-ending punctuation is absorbed properly into the displayed equation.</p>\n                    <p>And sentence-ending punctuation is also placed carefully when display math finishes with a <latex/> <c>cases</c> environment.  To wit, the absolute value can be defined by<md>\n                        |x| = \\begin{cases}\n                              x \\amp \\text{if } x \\ge 0 \\\\\n                              -x \\amp \\text{if } x \\lt 0\n                              \\end{cases}\n                    </md>.</p>\n                </solution>\n            </exercise>\n\n            <exercise>\n                <statement>\n                    <p>Can you prove Corollary<nbsp/><xref ref=\"corollary-FTC-derivative\"/> directly?  If not consider that a problem could have several parts, which should be formatted as a second-level list, since the problems normally get numbered at the top level.<ol>\n                        <li><p>Why is this result a Corollary?</p></li>\n                        <li><p>Could you interchange the Theorem and Corollary?</p></li>\n                    </ol></p>\n                </statement>\n                <!-- A hint is a push in the right direction -->\n                <hint>\n                    <title>MVT</title>\n                    <p>Consider the definite integral as an area function and employ the Mean Value Theorem.</p>\n                </hint>\n                <!-- You can provide several -->\n                <hint xml:id=\"exercise-complicated-second-hint\">\n                    <title>Motivator</title>\n                    <p>Think harder!</p>\n                </hint>\n                <!-- The answer is just the end product -->\n                <answer xml:id=\"exercise-complicated-first-answer\">\n                    <title>Helpful</title>\n                    <p><ol>\n                        <li><p>It follows easily.</p></li>\n                        <li><p>Yes.</p></li>\n                    </ol></p>\n                </answer>\n                <!-- A solution is everything that should be said -->\n                <solution>\n                    <p>We could prove either result first, then obtain the other as an easy consequence.</p>\n                </solution>\n            </exercise>\n        </exercises>\n\n\n        <backmatter xml:id=\"backmatter\" label=\"backmatter\">\n            <title>Reference</title>\n\n            <appendix  label=\"appendix-notation\">\n                <title>Notation</title>\n                <p>This is some notation introduced in the article.  <pretext/> allows the <q>notation list</q> generator anywhere, so we have this paragraph to test spacing above and below the table.  We'll say that again.</p>\n\n                <p>This is some notation introduced in the article.  <pretext/> allows the <q>notation list</q> generator anywhere, so we have this paragraph to test spacing above and below the table.  We'll say that again.</p>\n\n                <notation-list/>\n\n                <p>This is some notation introduced in the article.  <pretext/> allows the <q>notation list</q> generator anywhere, so we have this paragraph to test spacing above and below the table.  We'll say that again.</p>\n\n                <p>This is some notation introduced in the article.  <pretext/> allows the <q>notation list</q> generator anywhere, so we have this paragraph to test spacing above and below the table.  We'll say that again.</p>\n            </appendix>\n\n            <solutions xml:id=\"solutions-backmatter\" label=\"solutions-backmatter\" inline=\"hint solution answer\" divisional=\"hint solution answer\" project=\"answer\" worksheet=\"hint\" reading=\"answer\">\n                <title>Solutions to Selected Exercises</title>\n                <idx><h>solutions</h><h>as an appendix</h></idx>\n\n                <introduction>\n                    <p>This is an introduction, where you might explain that this division of the back matter contains various hints, answers, solutions of inline exercises, divisional exercises, project-like blocks, worksheet exercises, and/or reading questions.  See the source to see just how this solutions division was built.</p>\n                </introduction>\n\n                <!-- content will happen here automatically -->\n\n                <conclusion>\n                    <p>And a conclusion to this solutions division, which may not be readily apparent as distinct from the final division's worth of solutions, but since it is not prefixed with a number, it may be different enough.</p>\n                </conclusion>\n            </solutions>\n\n            <solutions label=\"solutions-single-exercises\" inline=\"hint solution answer\" divisional=\"hint solution\" scope=\"exercises-section-multiple\">\n                <title>Solutions to a Single Exercises Division</title>\n                <idx><h>solutions</h><h>for one group of exercises</h></idx>\n\n                <introduction>\n                    <p>Sometimes you may want the solutions to exercises within a single <tag>exercises</tag> division (or similar, like a <tag>worksheet</tag>).  Default behavior in this situation can produce two titles, when just one would be sufficient.  Here we have used the <attr>scope</attr> attribute to point to a specific <tag>exercises</tag>, and provided a (single) very specific <tag>title</tag>.</p>\n                </introduction>\n\n                <!-- content will happen here automatically -->\n            </solutions>\n\n            <solutions label=\"solutions-answers\" inline=\"answer\" divisional=\"answer\" worksheet=\"answer\" reading=\"answer\" project=\"answer\">\n                <title>All Solutions that are Answers</title>\n                <idx><h>solutions</h><h>all answers</h></idx>\n\n                <introduction>\n                    <p>The back matter solutions appendix requests every <tag>answer</tag>, and only <tag>answer</tag>, of all types of exercises: inline, divisional, worksheet, reading questions, and projects.  Now, as observed by Bruce Yoshiwara, it gets a bit tedious to see the <q>Answer</q> heading over and over in print, when every entry has that heading.  So we squelch it for you in print/PDF output.  (For <init>HTML</init> output we use knowls and need to have something to click on.  But perhaps for <init>EPUB</init> we should be more careful?)  Note that you might want to use a <tag>title</tag>, or an <tag>introduction</tag>, that explains which component of the exercises is being displayed, so there is no confusion.</p>\n                </introduction>\n\n                <!-- content will happen here automatically -->\n            </solutions>\n\n            <solutions label=\"solutions-odd-answers\" inline=\"answer\" divisional=\"answer\" worksheet=\"answer\" reading=\"answer\" project=\"answer\" admit=\"odd\">\n                <title>All Solutions that are Answers to Odd Exercises</title>\n                <idx><h>solutions</h><h>all even answers</h></idx>\n\n                <introduction>\n                    <p>This should be identical to the previous collection of answers, <em>except</em> only exercises with an even number are reported (via the <attr>admit</attr> attribute).</p>\n                </introduction>\n\n                <!-- content will happen here automatically -->\n            </solutions>\n\n            <appendix xml:id=\"appendix-results\" label=\"appendix-results\">\n                <title>List of Results</title>\n\n                <p>We had an automatic list of theorems for just one section, back in <xref ref=\"subsection-local-theorems\" text=\"type-global\"/>.  Here we expand to include <c>corollary</c> in our space-delimited list of <c>elements</c> and we request <c>divisions</c> (headings) at each <c>subsection</c> and <c>section</c>.  The default <c>scope</c> is the entire document, which is appropriate here in the backmatter.  There are many subsections with no results, so we set the <c>empty</c> attribute to <c>no</c> to suppress them, though this is the default behavior (<c>yes</c> being the other option to see divisions with no list items).  These lists are most valuable if you are in the practice of giving items titles.</p>\n\n                <list-of elements=\"  theorem corollary\" divisions=\"section    subsection \" empty=\"no\"/>\n            </appendix>\n\n            <appendix xml:id=\"appendix-exercise-lists\" label=\"appendix-exercise-lists\">\n                <title>Lists of Exercises</title>\n\n                <p>Since <tag>exercise</tag> come in several flavors, we use <term>pseudo-elements</term> to specify the distinct types.  There are not many reading questions<mdash/>but here is a list of all of them, by section, using a <c>readingquestion</c> pseudo-element.</p>\n\n                <list-of elements=\"readingquestion\" divisions=\"section\" empty=\"no\"/>\n\n                <p>And now a list of all the inline exercises, and including the title of every <tag>section</tag>, even if there is no inline exercise contained inside it.  The pseudo-element is <c>inlineexercise</c>.</p>\n\n                <list-of elements=\"inlineexercise\" divisions=\"section\" empty=\"yes\"/>\n\n            </appendix>\n\n            <appendix label=\"appendix-structured\">\n                <title>A Structured Appendix</title>\n                <introduction><p>A deeply-structured appendix for testing purposes.</p></introduction>\n                <subsection>\n                    <title>A Subsection in an Appendix</title>\n                    <introduction><p>Inside a subsection.</p></introduction>\n                    <subsubsection>\n                        <title>A Subsubsection in a Subsection in an Appendix</title>\n                        <p>Nearly terminal.</p>\n                        <paragraphs>\n                            <title>Paragraphs in a Subsubsection in a Subsection in an Appendix</title>\n                            <p>The <c>paragraphs</c> element can go in any division, but does not get a number.</p>\n                        </paragraphs>\n                    </subsubsection>\n                </subsection>\n            </appendix>\n\n            <appendix label=\"appendix-index\">\n                <title>Index</title>\n\n                <p>There is an index manufactured at the end of the back matter.  So we are talking about it here, rather than within the index, which is an impossibility.  It contains some sample entries, and is not meant to be comprehensive.  Look at the source of this XML file, searching on <tag>idx</tag>, to see how they are written.  They may be placed inside of a a variety of structures, and their location greatly influences the cross-references produced in the HTML version of the index.</p>\n\n                <p>The <latex/> version of the index is more traditional, using page numbers to reference locations.  A newer package is used to create the index, and so there is no extra intermediate step required to process the index.  The one downside of this convenience is that index entries may not be placed in the back colophon (which is the only subdivision that may follow the index).</p>\n\n                <p>There is an index entry about multicolumn lists which spans more than one page.  This requires doubly-linked index entries, the first has the index content and points to the <c>xml:id</c> of the second.  The second is an empty element, but points back to the <c>xml:id</c> of the first entry.  So each has a marker and a reference, which allows the span of the index topic to cut across XML boundaries in the source.  This is the mechanism to produce a page range in the <latex/> index.  See the source of this article for syntax details.</p>\n\n                <paragraphs>\n                    <title>Bully Pulpit: Index Headings</title>\n\n                    <p>Professionals do not capitalize the headings (entries) of an index, unless it is a proper noun (name, place, <etc/>).  We do not provide any enforcement of this advice, nor any assistance.  It is your responsibility to provide quality source material in this regard.</p>\n                </paragraphs>\n\n                <paragraphs>\n                    <title>Note</title>\n\n                    <p>Most all of the index entries below to page 2 (PDF output) are just from a suite of non-sensical tests.  These are harder to recognize in the <init>HTML</init> output.</p>\n                </paragraphs>\n            </appendix>\n\n            <glossary xml:id=\"glossary-backmatter\" label=\"glossary-backmatter\">\n                <idx>glossary</idx>\n                <headnote>\n                    <p>A glossary may have a <tag>headnote</tag>, perhaps with some explanation.  This glossary is placed in the back matter.  Placement as a specialized division is another option, see <xref ref=\"glossary-specialized\" text=\"type-global\"/>.</p>\n                </headnote>\n\n                <gi>\n                    <title>bar</title>\n                    <p>A part of <term>foobar</term>.  See <xref ref=\"foobar-defined-two\" text=\"title\"/>.</p>\n                </gi>\n\n                <gi xml:id=\"foobar-defined-two\">\n                    <title>foobar</title>\n                    <p>A synonym for the acronym <acro>FUBAR</acro>.</p>\n                </gi>\n            </glossary>\n\n            <appendix xml:id=\"references\" label=\"appendix-multiple-references\">\n                <title>Multiple References</title>\n\n                <subsection>\n                    <title>Multiple Specialized References</title>\n\n                    <p>You might want to have lists of references, in the back, but with multiple such lists.  Make an <tag>appendix</tag> to hold them, give it some structure (for an <tag>article</tag>, a leading <tag>subsection</tag>, such as the one you are reading right now), then follow with multiple <tag>references</tag> divisions.  A typical citation will then look like: <xref ref=\"biblio-strang-article-tres\"/>.</p>\n\n                    <!-- Notes to add once CSL processing is enabled: Note: we need at least one citation for an item to show up.  Note: look at the source to see sorting/reordering. -->\n                    <p>2025-05-23: currently testing citations to CSL-style references in the back matter.  These should go eventually somewhere besides right where the references are.<ul>\n                        <li>Judson: <xref ref=\"biblio-judson-aata\"/></li>\n                        <li>Lay: <xref ref=\"biblio-lay-article\"/></li>\n                        <li>Doe: <xref ref=\"citeproc-py-item-3\"/></li>\n                        <li>Doe, later: <xref ref=\"citeproc-py-item-3-later\"/></li>\n                        <li>Conrey/Farmer: <xref ref=\"conrey-farmer\"/></li>\n                        <li>D'Arcus: <xref ref=\"citeproc-py-item-5\"/></li>\n                        <li>Two, authored in-order: <xref ref=\"conrey-farmer citeproc-py-item-5\"/></li>\n                        <li>Two, authored out-of-order: <xref ref=\"citeproc-py-item-5 conrey-farmer\"/></li>\n                        <li>Three, authored reverse-order: <xref ref=\"biblio-lay-article biblio-judson-aata citeproc-py-item-3\"/></li>\n                    </ul></p>\n                </subsection>\n\n                <references>\n                    <title>General References</title>\n\n                    <biblio type=\"raw\" xml:id=\"biblio-strang-article-uno\">Gilbert Strang, <title>The Fundamental Theorem of Linear Algebra</title>, <journal>The American Mathematical Monthly</journal> November 1993, <volume>100</volume> <number>9</number>, 848<ndash/>855.</biblio>\n                </references>\n\n                <references>\n                    <title>Specialized References</title>\n\n                    <biblio type=\"raw\" xml:id=\"biblio-judson-AATA\">Tom Judson, <title>Abstract Algebra: Theory and Applications</title>.\n                    <note xml:id=\"note-judson-AATA\"><p>Another online, open-source offering.</p></note>\n                    </biblio>\n\n                    <biblio type=\"raw\" xml:id=\"biblio-strang-article-tres\">Gilbert Strang, <title>The Fundamental Theorem of Linear Algebra</title>, <journal>The American Mathematical Monthly</journal> November 1993, <volume>100</volume> <number>9</number>, 848<ndash/>855.</biblio>\n                </references>\n             </appendix>\n\n            <!-- Bibliography/References can appear anywhere,  -->\n            <!-- but these are in the backmatter, hence global -->\n\n            <references xml:id=\"references-backmatter\" label=\"references-backmatter\">\n                <title>References</title>\n\n                <!-- note lower-case on AATA! -->\n                <biblio xml:id=\"biblio-judson-aata\" type=\"book\">\n                    <author>\n                        <name>\n                            <given>Thomas</given>\n                            <family>Judson</family>\n                        </name>\n                    </author>\n                    <title>Abstract Algebra: Theory and Applications</title>\n                    <!-- \"note\" element not supported yet for CSL processing,     -->\n                    <!-- makes bad JSON. Add an @xml:id to test cross-referencing -->\n                    <!-- <note><p>Another online, open-source offering.</p></note> -->\n                </biblio>\n\n                <biblio xml:id=\"biblio-lay-article\" type=\"article\">\n                    <author>\n                        <name>\n                            <given>David C.</given>\n                            <family>Lay</family>\n                        </name>\n                    </author>\n                    <title>Subspaces and Echelon Forms</title>\n                    <collection-title>The College Mathematics Journal</collection-title>\n                    <issued>\n                        <date year=\"1993\" month=\"1\"/>\n                    </issued>\n                    <volume>24</volume>\n                    <number>1</number>\n                    <page>57-62</page>\n                </biblio>\n\n                <!-- from test suite in citeproc.py JSON example program -->\n                <biblio xml:id=\"citeproc-py-item-3-later\" type=\"book\">\n                    <author>\n                        <name>\n                            <family>Doe</family>\n                            <given>John</given>\n                        </name>\n                    </author>\n                    <issued>\n                        <date year=\"1970\" month=\"6\" day=\"1\"/>\n                    </issued>\n                    <title>Still Anonymous, But now Ibid</title>\n                </biblio>\n\n                <!-- from test suite in citeproc.py JSON example program -->\n                <biblio xml:id=\"citeproc-py-item-3\" type=\"book\">\n                    <author>\n                        <name>\n                            <family>Doe</family>\n                            <given>John</given>\n                        </name>\n                    </author>\n                    <issued>\n                        <date year=\"1965\" month=\"6\" day=\"1\"/>\n                    </issued>\n                    <title>His Anonymous Life</title>\n                </biblio>\n\n                <biblio xml:id=\"conrey-farmer\" type=\"article-journal\">\n                    <author>\n                        <name>\n                            <family>Conrey</family>\n                            <given>J. B.</given>\n                        </name>\n                        <name>\n                            <family>Farmer</family>\n                            <given>D. W.</given>\n                        </name>\n                    </author>\n                    <title>Mean values of <m>L</m>-functions and symmetry</title>\n                    <collection-title>Internat. Math. Res. Notices</collection-title>\n                    <issued>\n                        <date year=\"2000\"/>\n                    </issued>\n                    <volume>17</volume>\n                    <page>883-908</page>\n                </biblio>\n\n                <!-- from test suite in citeproc.py JSON example program -->\n                <biblio xml:id=\"citeproc-py-item-5\" type=\"book\">\n                    <author>\n                        <name>\n                            <family>D'Arcus</family>\n                            <given>Bruce</given>\n                            <static-ordering>false</static-ordering>\n                        </name>\n                    </author>\n                    <title>Boundaries of Dissent: Protest and State Power in the Media Age</title>\n                    <publisher>Routledge</publisher>\n                    <publisher-place>New York</publisher-place>\n                    <issued>\n                        <date year=\"2006\"/>\n                    </issued>\n                    <URL>http://www.test01.com</URL>\n                </biblio>\n            </references>\n\n            <index label=\"the-index\">\n                <title>Index</title>\n                <index-list/>\n            </index>\n\n            <colophon label=\"colophon-back\">\n                <p>This article was authored in, and produced with, <pretext/>.  It is typeset with the Latin Modern font.</p>\n            </colophon>\n        </backmatter>\n    </article>\n</pretext>\n"
  },
  {
    "path": "examples/sample-book/README.md",
    "content": "# PreTeXt Sample Book\n\nThis sample book began as a subset of Tom Judson's\n_Abstract Algebra: Theory and Applications_ textbook.\nSuperfluous material has been added to demonstrate and\ntest various aspects of a book-length project.  So\nthis should not be taken as representative of the\nreal version of Judson's book.\n\nIt is meant to illustrate\n- how to structure the \"extra\" components of a book,\nsuch as the preface, appendices, index, and so on.\n- how to modularize a large project across multiple files\n- how Runestone's chapter/subchapter model maps onto a\nPreTeXt `book` with `chapter` and `section`\n- as an example for Runestone, many Runestone features\nare tested in a new chapter devoted to these features.\n\nThe Sample Book comes in several flavors:\n\n* Wihout any parts, use `sample-book.xml` as the source\nwith the \"no-parts\" publication file.\n* With parts, use `sample-book-parts.xml` as the source\nwith the \"decorative\" or \"structural\" publication files.\n* As a solution manual, use `sample-book-solutions-manual.xsl`\nas the source, with the \"solution-manual\" publication file.\n\nOther than changes in organization, the only difference in content\ncomes in the front matter, where the Preface has cross-references\nto items in parts, or no such cross-references.\n"
  },
  {
    "path": "examples/sample-book/appendix-two.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<appendix xml:id=\"appendix-two\">\n   <title>Second Appendix</title>\n\n    <p>This is a nonsense appendix, to check that numbering (<q>lettering</q>) proceeds correctly.</p>\n\n    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam finibus lacus at molestie tristique. Vivamus in feugiat nibh, ut condimentum nibh. Praesent pretium est ante, et sagittis nisi tempor sed. Aenean eu odio nunc. Suspendisse dolor sem, feugiat nec ullamcorper in, cursus eu lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla at diam ac ex efficitur sagittis vitae sit amet est. Suspendisse fermentum orci at justo feugiat, a molestie mi consectetur. Proin volutpat eleifend accumsan. Ut sit amet dolor leo. Morbi tempus tortor at gravida rutrum. Morbi ultricies pharetra lobortis. Cras mollis, massa nec convallis luctus, erat magna finibus lectus, non venenatis massa magna quis lectus. In eu mollis odio. In hac habitasse platea dictumst. Nulla elementum urna ut felis rhoncus fermentum.</p>\n\n    <p>Nullam vitae velit vel ligula ultricies dapibus sit amet et sapien. Sed consequat, purus vitae dictum viverra, nunc dui molestie purus, quis luctus ipsum turpis sit amet justo. Aenean faucibus leo eget risus blandit, posuere semper felis placerat. Donec bibendum fringilla pellentesque. Nam vehicula risus placerat arcu scelerisque lacinia. Suspendisse vitae neque in ipsum rhoncus dignissim eu id magna. Phasellus vel eros est.</p>\n\n    <p>Integer congue quam eget augue fermentum porttitor. Aliquam erat volutpat. Nunc tempus mi leo, non vehicula sapien mollis in. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris lorem arcu, pretium ut convallis at, malesuada non libero. Curabitur ac eros efficitur eros ullamcorper facilisis. Morbi tellus erat, aliquet in metus et, posuere facilisis metus. Duis nulla augue, dictum nec pharetra blandit, elementum et mauris. Nunc vestibulum vestibulum blandit.</p>\n\n    <p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum at mattis nisl. Nunc sit amet libero vel neque consectetur interdum a eu purus. Mauris lacus eros, vulputate ut erat ac, viverra tristique lectus. Proin sed pellentesque neque. Proin bibendum lorem quis volutpat porttitor. Aenean a est orci. Morbi imperdiet et nisl quis ultrices. Maecenas at tellus quis magna accumsan semper id posuere quam. Quisque eu orci sit amet mauris aliquam mattis vitae sed mi. Etiam nec justo semper, malesuada justo sed, convallis lorem. Mauris consequat sit amet dui at hendrerit. Praesent quis arcu felis.</p>\n\n    <p>Aliquam pellentesque pellentesque lacus, in gravida magna ullamcorper et. Maecenas vitae nisl lectus. Mauris sed erat ipsum. Aliquam vestibulum vel sem nec ultricies. Donec mattis egestas sodales. Sed quis pulvinar orci. Nam ultrices finibus augue, id convallis eros consequat id. Quisque elementum hendrerit ex, vitae tristique purus convallis sed. Nullam ut eros at magna pretium cursus. Mauris iaculis pulvinar dolor, in lacinia nisl molestie in. Donec molestie hendrerit elit ac sagittis. Nullam id luctus ligula. Sed bibendum nibh non dapibus feugiat. Mauris elit sapien, maximus tempus turpis at, luctus accumsan velit. Etiam id libero vel ante aliquet elementum. Morbi efficitur mauris sed nunc egestas egestas.</p>\n\n    <p>Cras pellentesque nunc ligula, at accumsan lacus sodales eget. Donec a pulvinar sem. Sed sollicitudin pretium tortor. Proin eget nibh mauris. Nam non justo sodales, hendrerit velit vitae, tincidunt nisl. Suspendisse in eros non ligula aliquam fringilla. Ut a dignissim erat. Quisque iaculis justo nisi, eget vehicula elit condimentum tincidunt. Duis scelerisque tincidunt tincidunt. In mollis nibh ut nisl malesuada feugiat. Vestibulum nisl nisi, consectetur et purus vel, mattis pharetra nunc.</p>\n\n    <p>Sed pretium lorem et felis mollis laoreet. Donec laoreet lorem sed urna fringilla, eget ullamcorper massa finibus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas suscipit nibh iaculis nibh lacinia ultrices. Aenean eget laoreet odio. Vivamus nec euismod libero, at vestibulum dui. Aliquam sodales pretium mauris varius venenatis. Nam sit amet porta lacus, eget tempus ante. Suspendisse potenti. Nunc dignissim suscipit urna, ut fringilla urna bibendum sed. Donec eget placerat sem. Curabitur ut augue sodales, aliquet ex a, aliquet ex. Maecenas sagittis convallis justo, sed pellentesque elit tempus sed. Pellentesque a scelerisque erat. Vestibulum suscipit rhoncus sem, nec fermentum ante consectetur ut.</p>\n\n    <p>Pellentesque ac diam mi. Suspendisse vitae semper sapien, vel iaculis ipsum. Suspendisse interdum pretium eros in venenatis. In nec est in nunc accumsan condimentum. Sed vulputate ultricies ipsum, sit amet tincidunt nisi. Vivamus aliquet interdum lacus, vel porttitor erat sollicitudin id. Donec eu tortor aliquam, vehicula lorem vel, condimentum nulla. Cras pellentesque congue est eget iaculis. Morbi ut mauris tristique risus fermentum ultrices quis sed magna. Etiam faucibus nisi dui, a bibendum ante sagittis vitae. Suspendisse nunc turpis, posuere eu sodales et, condimentum eu diam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Fusce tempus eget turpis vitae pulvinar. Aenean magna augue, sodales non tempor ut, lobortis auctor nunc. Nunc gravida lectus vel sapien hendrerit feugiat. Duis et nibh pellentesque, auctor nunc id, suscipit purus.</p>\n\n    <p>Nullam bibendum enim justo, sit amet dictum justo ullamcorper quis. Curabitur vitae molestie metus. Proin convallis, lorem nec ullamcorper ullamcorper, ante libero hendrerit nunc, et sollicitudin ante nisi varius massa. Pellentesque accumsan dolor vel porta vestibulum. Suspendisse in lacus suscipit, fringilla dui vitae, fermentum leo. Sed ultricies maximus lectus quis suscipit. Sed dignissim interdum ipsum sed ullamcorper. Suspendisse fringilla eleifend est at lobortis.</p>\n\n</appendix>\n"
  },
  {
    "path": "examples/sample-book/backmatter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<backmatter xml:id=\"backmatter\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Back Matter</title> <!-- mostly for HTML sectioning -->\n\n    <appendix>\n        <title>Notation</title>\n\n        <p>The following table defines the notation used in this book. Page numbers or references refer to the first appearance of each symbol.</p>\n\n        <notation-list />\n    </appendix>\n\n    <solutions divisional=\"hint answer solution\" admit=\"odd\">\n        <title>Hints and Answers to Selected Odd Exercises</title>\n    </solutions>\n\n    <solutions divisional=\"hint answer solution\" admit=\"even\">\n        <title>Hints and Answers to Selected Even Exercises</title>\n    </solutions>\n\n    <solutions divisional=\"hint answer solution\">\n        <title>Hints and Answers to Selected Exercises</title>\n    </solutions>\n\n    <appendix>\n        <title>A Structured Appendix</title>\n        <introduction><p>A deeply-structured appendix for testing purposes.</p></introduction>\n        <section>\n            <title>A Section in an Appendix</title>\n            <introduction><p>Inside a section.</p></introduction>\n            <subsection>\n                <title>A Subsection in a Section in an Appendix</title>\n                <introduction><p>Inside a subsection.</p></introduction>\n                <subsubsection>\n                    <title>A Subsubsection in a Subsection in a Section in an Appendix</title>\n                    <p>Nearly terminal.</p>\n                    <paragraphs>\n                        <title>Paragraphs in a Subsubsection in a Subsection in a Section in an Appendix</title>\n                        <p>The <c>paragraphs</c> element can go in any division, but does not get a number.</p>\n                    </paragraphs>\n                </subsubsection>\n            </subsection>\n        </section>\n\n        <section>\n            <title>Numbering in the Back Matter</title>\n\n            <p>Numbered blocks in an <tag>appendix</tag> in the <tag>backmatter</tag> of a <tag>book</tag> with <tag>part</tag> were once getting an extra level in <init>HTML</init> output.  With standard defaults, the number of the following <tag>example</tag> should have two periods as separators, just like an example in the main matter when the part number is not included.</p>\n\n            <example>\n                <title>An Example Example</title>\n\n                <p>What's my number?</p>\n            </example>\n        </section>\n    </appendix>\n\n    <appendix>\n        <title>Some Runestone Elements</title>\n        <p>These elements should end up in the Runestone manifest.</p>\n        <datafile filename=\"datafile-appendix.txt\" xml:id=\"datafile-appendix\" label=\"datafile-appendix\">\n            <pre>\n            Ipsum lorem...\n            </pre>\n        </datafile>\n\n        <program language=\"py\" xml:id=\"program-appendix\" label=\"program-appendix\">\n            print(\"Hello from the appendix!\")\n        </program>\n    </appendix>\n\n    <xi:include href=\"./gfdl-mathbook.xml\" />           <!-- GFDL License text -->\n\n    <!-- Index follows appendices, preceded only colophon -->\n    <index>\n\n        <index-list />\n    </index>\n\n    <colophon xml:id=\"back-colophon\">\n        <p>This book was authored in MathBook XML.</p>\n    </colophon>\n\n</backmatter>\n"
  },
  {
    "path": "examples/sample-book/bookinfo.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n<docinfo>\n\n    <!-- the other option is \"long\" which will produce an -->\n    <!-- entire front matter section with more headings   -->\n    <author-biographies length=\"short\" />\n\n    <!-- A blurb like this should be authored with no markup whatsoever, -->\n    <!-- since it may migrate to unexpected places, like the back cover  -->\n    <!-- of a printed version.  Keep it simple.                          -->\n    <blurb shelf=\"Author/Instructor Help\">This is a book written in PreTeXt, in order to provide testing for a variety of purposes, not least a conversion to Runestone Academy.</blurb>\n\n    <brandlogo url=\"http://abstract.pugetsound.edu\" source=\"cover_aata_2014.png\" />\n\n    <document-id edition=\"2\">PTXSB</document-id>\n\n    <!-- Prefix to enhance Sage notebook contents -->\n    <initialism>SB</initialism>\n\n    <!-- Math-related macros from \"macros.tex\" in previous LaTeX version -->\n    <!-- \\notdivide replaces \\notmid to avoid conflict with tikz - TWJ 5/6/2010 -->\n    <!-- Added operator \\gf  - TWJ 2/26/2013 -->\n    <!-- Added operator \\inn - TWJ 4/6/2013  -->\n    <!-- Added operator \\aut - TWJ 4/6/2013  -->\n    <!-- Added operator \\Hom - TWJ 8/19/2010 -->\n    <macros>\n    \\newcommand{\\identity}{\\mathrm{id}}\n    \\newcommand{\\notdivide}{{\\not{\\mid}}}\n    \\newcommand{\\notsubset}{\\not\\subset}\n    \\newcommand{\\lcm}{\\operatorname{lcm}}\n    \\newcommand{\\gf}{\\operatorname{GF}}\n    \\newcommand{\\inn}{\\operatorname{Inn}}\n    \\newcommand{\\aut}{\\operatorname{Aut}}\n    \\newcommand{\\Hom}{\\operatorname{Hom}}\n    \\newcommand{\\cis}{\\operatorname{cis}}\n    \\newcommand{\\chr}{\\operatorname{char}}\n    \\newcommand{\\Null}{\\operatorname{Null}}\n    </macros>\n\n    <!-- this is the default, but supresses a warning -->\n    <cross-references text=\"type-global\" />\n\n    <!-- tikz package and libraries for images -->\n    <latex-image-preamble>\n    \\usepackage{tikz}\n    \\usetikzlibrary{backgrounds}\n    \\usetikzlibrary{arrows,matrix}\n    \\usetikzlibrary{snakes}\n    </latex-image-preamble>\n\n    <!-- Any program or Runestone interactive without a @language will -->\n    <!-- assumed to be python                                          -->\n    <programs language=\"python\"/>\n    <!-- Any parsons problems will be assumed to be natural language   -->\n    <!-- If not set, this would default to programs@language           -->\n    <!-- If neither is set, parsons will default to \"natural\" language -->\n    <parsons language=\"natural\"/>\n\n</docinfo>\n"
  },
  {
    "path": "examples/sample-book/code/symmetric-group-8.sage",
    "content": "S8 = SymmetricGroup(8)\na = S8.random_element()\n[a(x) for x in S8.domain()]     # random\n"
  },
  {
    "path": "examples/sample-book/codechat_config.yaml",
    "content": "# .. Copyright (C) 2012-2020 Bryan A. Jones.\n#\n#  This file is part of the CodeChat System.\n#\n#  The CodeChat System is free software: you can redistribute it and/or\n#  modify it under the terms of the GNU General Public License as\n#  published by the Free Software Foundation, either version 3 of the\n#  License, or (at your option) any later version.\n#\n#  The CodeChat System is distributed in the hope that it will be\n#  useful, but WITHOUT ANY WARRANTY; without even the implied warranty\n#  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n#  General Public License for more details.\n#\n#  You should have received a copy of the GNU General Public License\n#  along with the CodeChat System.  If not, see\n#  <http://www.gnu.org/licenses/>.\n#\n# ************************************************\n# |docname| - Configuration for a CodeChat project\n# ************************************************\n# This file defines the configuration for a CodeChat project. It contains a working `Sphinx <https://www.sphinx-doc.org/>`_ configuration.\n#\n# ``source_path``: optional; defaults to ``.`` (the current directory). A path to the root of the source tree. Relative paths are rooted in the directory containing this configuration file.\n#source_path: .\n\n# ``output_path``: required. A path to the root of the HTML output produced by this renderer. Relative paths are rooted in the directory containing this configuration file.\noutput_path: _build\n\n# ``args``: required string or sequence of strings. This provides the arguments to invoke the renderer. These strings may optionally contain the following replacement values:\n#\n# - ``{project_path}``: an absolute path to the directory containing this file.\n# - ``{source_path}``: the ``source_path`` above, but as an absolute path.\n# - ``{output_path}``: the ``output_path`` above, but as an absolute path.\n#\n# The line below could also be written ``args: sphinx-build . _build``.\nargs: c:/Users/bjones/documents/git/CodeChat_System/.venv/Scripts/python ../../pretext/pretext --component all --format html --directory {output_path} sample-book.xml\n\n# ``html_ext``: optional; defaults to ``.html``. The extension used by this renderer when generating HTML files.\n#html_ext: .html\n\n# ``project_type``: optional; defaults to ``general``. Define the project type, which enables special processing based on the type. Valid values are ``general`` (no special processing), ``Doxygen``, and ``PreTeXt``.\nproject_type: PreTeXt\n"
  },
  {
    "path": "examples/sample-book/cyclic.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2016/03/25)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<chapter xml:id=\"cyclic\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Cyclic Groups</title>\n    <!-- A sample short title for testing purposes, -->\n    <!-- Not really necessary content-wise          -->\n    <shorttitle>Cyclicity</shorttitle>\n\n    <introduction>\n        <p>The groups <m>\\mathbb Z</m> and <m>{\\mathbb Z}_n</m>, which are among the most familiar and easily understood groups, are both examples of what are called cyclic groups.  In this chapter we will study the properties of cyclic groups and cyclic subgroups, which play a fundamental part in the classification of all abelian groups.</p>\n    </introduction>\n\n    <section>\n        <title>Cyclic groups</title>\n\n        <p>Often a subgroup will depend entirely on a single element of the group; that is, knowing that particular element will allow us to compute any other element in the subgroup.</p>\n\n        <!-- RAB 2014/08/18 Maybe this id should have 3z, not z3? -->\n        <example xml:id=\"example-cyclic-z3\">\n            <title>An Infinite Cyclic Subgroup, Modular Addition</title>\n           <p>Suppose that we consider <m>3 \\in {\\mathbb Z}</m> and look at all multiples (both positive and negative) of 3.  As a set, this is <md>3 {\\mathbb Z} = \\{ \\ldots, -3, 0, 3, 6, \\ldots \\}</md>. It is easy to see that <m>3 {\\mathbb Z}</m> is a subgroup of the integers.  This subgroup is completely determined by the element 3 since we can obtain all of the other elements of the group by taking multiples of 3.  Every element in the subgroup is <q>generated</q> by 3.</p>\n        </example>\n\n        <example xml:id=\"example-cyclic-2n\">\n            <title>An Infinite Cyclic Subgroup, Multiplication of Rational Numbers</title>\n            <p>If <m>H = \\{ 2^n : n \\in {\\mathbb Z} \\}</m>, then <m>H</m> is a subgroup of the multiplicative group of nonzero rational numbers, <m>{\\mathbb Q}^*</m>.  If <m>a = 2^m</m> and <m>b = 2^n</m> are in <m>H</m>, then <m>ab^{-1} = 2^m 2^{-n} = 2^{m-n}</m> is also in <m>H</m>.  By <xref ref=\"proposition-subgroup\" />, <m>H</m> is a subgroup of <m>{\\mathbb Q}^*</m> determined by the element 2.</p>\n        </example>\n\n        <theorem xml:id=\"theorem-cyclic-subgroup\">\n            <statement>\n                <p>Let <m>G</m> be a group and <m>a</m> be any element in <m>G</m>.  Then the set <md>\\langle a \\rangle  = \\{ a^k : k \\in {\\mathbb Z} \\}</md> is a subgroup of <m>G</m>.  Furthermore, <m>\\langle a \\rangle</m> is the smallest subgroup of <m>G</m> that contains~<m>a</m>.<notation>\n                    <usage><m>\\langle a \\rangle</m></usage>\n                    <description>cyclic group generated by <m>a</m></description>\n                </notation></p>\n            </statement>\n            <proof>\n                <p>The identity is in <m>\\langle a \\rangle </m> since <m>a^0 = e</m>. If <m>g</m> and <m>h</m> are any two elements in <m>\\langle a \\rangle </m>, then by the definition of <m>\\langle a \\rangle</m> we can write <m>g = a^m</m> and <m>h = a^n</m> for some integers <m>m</m> and <m>n</m>. So <m>gh = a^m a^n = a^{m+n}</m> is again in <m>\\langle a \\rangle </m>. Finally, if <m>g = a^n</m> in <m>\\langle a \\rangle </m>, then the inverse <m>g^{-1} = a^{-n}</m> is also in <m>\\langle a \\rangle </m>. Clearly, any subgroup <m>H</m> of <m>G</m> containing <m>a</m> must contain all the powers of <m>a</m> by closure; hence, <m>H</m> contains <m>\\langle a \\rangle </m>. Therefore, <m>\\langle a \\rangle </m> is the smallest subgroup of <m>G</m> containing <m>a</m>.</p>\n            </proof>\n        </theorem>\n\n        <remark>\n            <p>If we are using the <q>+</q> notation, as in the case of the integers under addition, we write <m>\\langle a \\rangle  = \\{ na : n \\in {\\mathbb Z} \\}</m>.</p>\n        </remark>\n\n        <p>For <m>a \\in G</m>, we call <m>\\langle a \\rangle </m> the <term>cyclic subgroup</term><idx><h>Subgroup</h><h>cyclic</h></idx> generated by <m>a</m>. If <m>G</m> contains some element <m>a</m> such that <m>G = \\langle a \\rangle </m>, then <m>G</m> is a <term>cyclic group</term><idx><h>Group</h><h>cyclic</h></idx>. In this case <m>a</m> is a <term>generator</term><idx><h>Generator of a cyclic subgroup</h></idx> of <m>G</m>.  If <m>a</m> is an element of a group <m>G</m>, we define the <term>order</term><idx><h>Element</h><h>order of</h></idx> of <m>a</m> to be the smallest positive integer <m>n</m> such that <m>a^n= e</m>, and we write <m>|a| = n</m>. <notation><usage><m>|a|</m></usage><description>the order of an element <m>a</m></description></notation> If there is no such integer <m>n</m>, we say that the order of <m>a</m> is infinite and  write <m>|a| = \\infty</m> to denote the order of <m>a</m>.</p>\n\n        <example xml:id=\"example-cyclic-z6\">\n            <title>Generators of a Finite Cyclic Group</title>\n            <p>Notice that a cyclic group can have more than a single generator. Both 1 and 5 generate <m>{\\mathbb Z}_6</m>; hence, <m>{\\mathbb Z}_6</m> is a cyclic group. Not every element in a cyclic group is necessarily a generator of the group. The order of <m>2 \\in {\\mathbb Z}_6</m> is 3. The cyclic subgroup generated by 2 is <m>\\langle 2 \\rangle  = \\{ 0, 2, 4 \\}</m>.</p>\n        </example>\n\n        <p>The groups <m>{\\mathbb Z}</m> and <m>{\\mathbb Z}_n</m> are cyclic groups. The elements 1 and <m>-1</m> are generators for <m>{\\mathbb Z}</m>.  We can certainly generate <m>{\\mathbb Z}_n</m> with 1 although there may be other generators of <m>{\\mathbb Z}_n</m>, as in the case of <m>{\\mathbb Z}_6</m>.</p>\n\n        <example xml:id=\"example-cyclic-u9\">\n            <title>A Cyclic Group of Units</title>\n            <p>The group of units, <m>U(9)</m>, in <m>{\\mathbb Z}_9</m> is a cyclic group.  As a set, <m>U(9)</m> is <m>\\{ 1, 2, 4, 5, 7, 8  \\}</m>. The element 2 is a generator for <m>U(9)</m> since<md>\n                <mrow>2^1 &amp; = 2 \\qquad 2^2 = 4</mrow>\n                <mrow>2^3 &amp; = 8 \\qquad 2^4 = 7</mrow>\n                <mrow>2^5 &amp; =  5 \\qquad 2^6 = 1</mrow>\n            </md>.</p>\n        </example>\n\n        <example xml:id=\"example-cyclic-s3-not-cyclic\">\n            <title>A Group That is Not Cyclic</title>\n            <p>Not every group is a cyclic group.  Consider the symmetry group of an equilateral triangle <m>S_3</m>.  The subgroups of <m>S_3</m> are shown in <xref ref=\"figure-subgrps-s3\" />.  Notice that every subgroup is cyclic; however, no single element generates the entire group.</p>\n        </example>\n\n        <figure xml:id=\"figure-subgrps-s3\">\n            <caption>Subgroups of <m>S_3</m></caption>\n            <!-- Replaced figure with tikz figure - TWJ 5/6/2010 -->\n            <image xml:id=\"cyclic-s3-subgroups\">\n                <latex-image><![CDATA[\n                    \\begin{tikzpicture}[scale=1]\n\n                    \\draw  (0,0.3) -- (2.6,1.2);\n                    \\draw  (2,0.3) -- (2.8,1.2);\n                    \\draw  (4,0.3) -- (3.2,1.2);\n                    \\draw  (6,0.3) -- (3.4,1.2);\n\n                    \\draw  (0,-0.3) -- (2.6,-1.2);\n                    \\draw  (2,-0.3) -- (2.8,-1.2);\n                    \\draw  (4,-0.3) -- (3.2,-1.2);\n                    \\draw  (6,-0.3) -- (3.4,-1.2);\n\n                    \\node at (0, 0) {$\\{  \\identity, \\rho_1, \\rho_2\\}$};\n                    \\node at (2, 0) {$\\{  \\identity, \\mu_1\\}$};\n                    \\node at (4, 0) {$\\{  \\identity, \\mu_2 \\}$};\n                    \\node at (6, 0) {$\\{  \\identity, \\mu_3 \\}$};\n                    \\node at (3, 1.5) {$S_3$};\n                    \\node at (3,-1.5) {$\\{ \\identity \\}$};\n                    \\end{tikzpicture}]]>\n                </latex-image>\n            </image>\n        </figure>\n\n        <theorem xml:id=\"theorem-cyclic-abelian\">\n            <statement>\n                <p>Every cyclic group is abelian.</p>\n            </statement>\n            <proof>\n                <p>Let <m>G</m> be a cyclic group and <m>a \\in G</m> be a generator for <m>G</m>. If <m>g</m> and <m>h</m> are in <m>G</m>, then they can be written as powers of <m>a</m>, say <m>g = a^r</m> and <m>h = a^s</m>. Since <md>g  h = a^r a^s = a^{r+s} = a^{s+r} = a^s a^r = h g</md>, <m>G</m> is abelian.</p>\n            </proof>\n        </theorem>\n    </section>\n\n    <section>\n        <title>Subgroups of a Cyclic Group</title>\n\n        <p>We can ask some interesting questions about cyclic subgroups of a group and subgroups of a cyclic group.  If <m>G</m> is a group, which subgroups of <m>G</m> are cyclic? If <m>G</m> is a cyclic group, what type of subgroups does <m>G</m> possess?</p>\n\n        <theorem xml:id=\"theorem-cyclic-subgroups\">\n            <statement>\n                <p>Every subgroup of a cyclic group is cyclic.</p>\n            </statement>\n            <proof>\n                <p>The main tools used in this proof are the division algorithm and the Principle of Well-Ordering. Let <m>G</m> be a cyclic group generated by <m>a</m> and suppose that <m>H</m> is a subgroup of <m>G</m>. If <m>H = \\{ e \\}</m>, then trivially <m>H</m> is cyclic. Suppose that <m>H</m> contains some other element <m>g</m> distinct from the identity. Then <m>g</m> can be written as <m>a^n</m> for some integer <m>n</m>. Since <m>H</m> is a subgroup, <m>g^{-1} = a^{n}</m> must also be in <m>H</m>.  Since either <m>n</m> or <m>-n</m> is positive, we can assume that <m>H</m> contains positive powers of <m>a</m> and <m>n \\gt 0</m>. Let <m>m</m> be the smallest natural number such that <m>a^m \\in H</m>. Such an <m>m</m> exists by the Principle of Well-Ordering.</p>\n\n                <p>We claim that <m>h = a^m</m> is a generator for <m>H</m>.  We must show that every <m>h' \\in H</m> can be written as a power of <m>h</m>. Since <m>h' \\in H</m> and <m>H</m> is a subgroup of <m>G</m>, <m>h' = a^k</m> for some integer <m>k</m>. Using the division algorithm, we can find numbers <m>q</m> and <m>r</m> such that <m>k = mq +r</m> where <m>0 \\leq r \\lt m</m>; hence, <md>a^k = a^{mq +r} = (a^m)^q a^r = h^q a^r</md>. So <m>a^r = a^k h^{-q}</m>. Since <m>a^k</m> and <m>h^{-q}</m> are in <m>H</m>, <m>a^r</m> must also be in <m>H</m>.  However, <m>m</m> was the smallest positive number such that <m>a^m</m> was in <m>H</m>; consequently, <m>r=0</m> and so <m>k=mq</m>. Therefore, <md>h' = a^k = a^{mq} =  h^q</md>\n                and <m>H</m> is generated by <m>h</m>.</p>\n            </proof>\n        </theorem>\n\n        <corollary>\n            <statement>\n                <p>The subgroups of <m>{\\mathbb Z}</m> are exactly <m>n{\\mathbb Z}</m> for <m>n = 0, 1, 2,\\ldots</m>.</p>\n            </statement>\n        </corollary>\n\n        <proposition xml:id=\"proposition-cyclic-subgrp-order\">\n            <statement>\n                <p>Let <m>G</m> be a cyclic group of order <m>n</m> and suppose that <m>a</m> is a generator for  <m>G</m>. Then <m>a^k=e</m> if and only if <m>n</m> divides <m>k</m>.</p>\n            </statement>\n            <proof>\n                <p>First suppose that <m>a^k=e</m>. By the division algorithm, <m>k = nq + r</m> where <m>0 \\leq r \\lt n</m>; hence, <md>e = a^k = a^{nq + r} = a^{nq} a^r = e a^r = a^r</md>. Since the smallest positive integer <m>m</m> such that <m>a^m = e</m> is <m>n</m>, <m>r= 0</m>.</p>\n\n                <p>Conversely, if <m>n</m> divides <m>k</m>, then <m>k=ns</m> for some integer <m>s</m>. Consequently, <md>a^k = a^{ns} = (a^n)^s = e^s = e</md>.</p>\n            </proof>\n        </proposition>\n\n            <theorem xml:id=\"theorem-cyclic-orders\">\n            <statement>\n                <p>Let <m>G</m> be a cyclic group of order <m>n</m> and suppose that <m>a \\in G</m> is a generator of the group.  If <m>b = a^k</m>, then the order of <m>b</m> is <m>n/d</m>, where <m>d = \\gcd(k,n)</m>.</p>\n            </statement>\n            <proof>\n                <p>We wish to find the smallest integer <m>m</m> such that <m>e = b^m = a^{km}</m>. By <xref ref=\"proposition-cyclic-subgrp-order\" />, this is the smallest integer <m>m</m> such that <m>n</m> divides <m>km</m> or, equivalently, <m>n/d</m> divides <m>m(k/d)</m>.  Since <m>d</m> is the greatest common divisor of <m>n</m> and <m>k</m>, <m>n/d</m> and <m>k/d</m> are relatively prime. Hence, for <m>n/d</m> to divide <m>m(k/d)</m> it must divide <m>m</m>.  The smallest such <m>m</m> is <m>n/d</m>.</p>\n            </proof>\n        </theorem>\n\n        <corollary xml:id=\"corollary-cyclic-modngenerators\">\n            <statement>\n                <p>The generators of <m>{\\mathbb Z}_n</m> are the integers <m>r</m> such that <m>1 \\leq r \\lt n</m> and <m>\\gcd(r,n) =  1</m>.</p>\n                </statement>\n            </corollary>\n\n        <example xml:id=\"example-cyclic-z16\">\n            <title>A Finite Cyclic Group of Order <m>16</m></title>\n            <p>Let us examine the group <m>{\\mathbb Z}_{16}</m>.  The numbers 1, 3, 5, 7, 9, 11, 13, and 15 are the elements of <m>{\\mathbb Z}_{16}</m> that are relatively prime to 16.  Each of these elements generates <m>{\\mathbb Z}_{16}</m>. For example, <md>\n                <mrow>1 \\cdot 9  &amp; =  9  &amp;  2 \\cdot 9  &amp; = 2  &amp; 3 \\cdot 9  &amp; = 11</mrow>\n                <mrow>4 \\cdot 9  &amp; =  4  &amp;  5 \\cdot 9  &amp; = 13 &amp;     6 \\cdot 9 &amp; = 6</mrow>\n                <mrow>7 \\cdot 9  &amp; =  15 &amp; 8 \\cdot 9  &amp; = 8  &amp;  9 \\cdot 9 &amp;  = 1</mrow>\n                <mrow>10 \\cdot 9 &amp; =  10 &amp; 11 \\cdot 9 &amp; = 3  &amp; 12 \\cdot 9 &amp;  = 12</mrow>\n                <mrow>13 \\cdot 9 &amp; =  5 &amp; 14 \\cdot 9 &amp; = 14 &amp;   15 \\cdot 9 &amp; = 7</mrow>\n            </md>.</p>\n        </example>\n    </section>\n\n    <section>\n        <title>Cyclic Groups of Complex Numbers</title>\n\n        <p>The <term>complex numbers</term> are defined as <md>{\\mathbb C} = \\{ a + bi : a, b \\in {\\mathbb R} \\}</md>, where <m>i^2 = -1</m>.  If <m>z = a + bi</m>, then <m>a</m> is the <term>real part</term> of <m>z</m> and <m>b</m> is the <term>imaginary part</term> of <m>z</m>.</p>\n\n        <p>To add two complex numbers <m>z=a+bi</m> and <m>w= c+di</m>, we just add the corresponding real and imaginary parts: <md>z + w=(a + bi ) + (c + di)  =  (a + c) + (b + d)i</md>. Remembering that <m>i^2 = -1</m>,  we multiply complex numbers just like polynomials. The product of <m>z</m> and <m>w</m> is <md>(a + bi )(c + di)  =   ac + bdi^2 + adi + bci =  (ac -bd) +(ad + bc)i</md>.</p>\n\n        <p>Every nonzero complex number <m>z = a +bi</m> has a multiplicative inverse; that is, there exists a <m>z^{-1} \\in {\\mathbb C}^\\ast</m> such that <m>z z^{-1} = z^{-1} z = 1</m>. If <m>z = a + bi</m>, then <md>z^{-1} = \\frac{a-bi}{ a^2 + b^2  }</md>. The <term>complex conjugate</term><idx><h>Conjugate, complex</h></idx> of a complex number <m>z = a + bi</m> is defined to be <m>\\overline{z} = a- bi</m>.  The <term>absolute value</term> or <term>modulus</term> of  <m>z = a + bi</m>  is <m>|z| = \\sqrt{a^2 + b^2}</m>.</p>\n\n        <example xml:id=\"example-cyclic-complex-add\">\n            <title>Complex Number Operations</title>\n            <p>Let <m>z = 2 + 3i</m> and <m>w = 1-2i</m>. Then <md>z + w = (2 + 3i) + (1 - 2i) = 3 + i</md> and <md>z  w = (2 + 3i)(1 - 2i ) = 8 - i</md>. Also,<md>\n                <mrow>z^{-1} &amp; = \\frac{2}{13} - \\frac{3}{13}i</mrow>\n                <mrow>|z| &amp; = \\sqrt{13}</mrow>\n                <mrow>\\overline{z} &amp; = 2-3i</mrow>\n            </md>.</p>\n        </example>\n\n        <figure xml:id=\"figure-rectcoord\">\n            <caption>Rectangular coordinates of a complex number</caption>\n            <!-- Replaced figure with tikz figure - TWJ 5/6/2010 -->\n            <image xml:id=\"cyclic-complex-rectangular\">\n                <latex-image><![CDATA[\n                    \\begin{tikzpicture}[scale=0.5]\n\n                    \\draw [->]  (0,-5) -- (0,5);\n                    \\draw  [->] (-8,0) -- (8,0);\n                    \\node [right] at (0,5) {$y$};\n                    \\node [below] at (8,0) {$x$};\n                    \\node [below] at (0.5,0) {$0$};\n\n                    \\filldraw[fill=black, draw=black] (2,3) circle (0.05cm);\n                    \\node [right] at (2,3) {$z_1 = 2 + 3i$};\n\n                    \\filldraw[fill=black, draw=black] (-3,2) circle (0.05cm);\n                    \\node [left] at (-3, 2) {$z_3 = -3 + 2i$};\n\n                    \\filldraw[fill=black, draw=black] (1,-2) circle (0.05cm);\n                    \\node [right] at (1, -2) {$z_2 = 1 -  2i$};\n\n                    \\end{tikzpicture}]]>\n                </latex-image>\n            </image>\n        </figure>\n\n        <p>There are several ways of graphically representing complex numbers. We can represent a complex number <m>z = a +bi</m> as an ordered pair on the <m>xy</m> plane where <m>a</m> is the <m>x</m> (or real) coordinate and <m>b</m> is the <m>y</m> (or imaginary) coordinate. This is called the <term>rectangular</term> or <term>Cartesian</term> representation. The rectangular representations of <m>z_1 = 2 + 3i</m>, <m>z_2 = 1 - 2i</m>, and <m>z_3 = - 3 + 2i</m> are depicted in <xref ref=\"figure-rectcoord\" />.</p>\n\n        <figure xml:id=\"figure-polarcoord\">\n            <caption>Polar coordinates of a complex number</caption>\n            <!-- Replaced figure with tikz figure - TWJ 5/6/2010 -->\n            <image xml:id=\"cyclic-complex-polar\">\n                <latex-image><![CDATA[\n                    \\begin{tikzpicture}[scale=0.5]\n\n                    \\draw [->]  (0,-5) -- (0,5);\n                    \\draw  [->] (-8,0) -- (8,0);\n                    \\node [right] at (0,5) {$y$};\n                    \\node [below] at (8,0) {$x$};\n                    \\node [below] at (0.5,0) {$0$};\n\n                    \\draw (0,0) -- (35:6);\n                    \\draw (2,0) arc (0:35:2);\n\n                    \\filldraw[fill=black, draw=black] (35:6) circle (0.05cm);\n                    \\node [right] at (35:6) {$a + bi$};\n                    \\node [above] at (35:3) {$r$};\n                    \\node [right] at (17:2) {$\\theta$};\n\n                    \\end{tikzpicture}]]>\n                </latex-image>\n            </image>\n        </figure>\n\n        <p>Nonzero complex numbers can also be represented using <term>polar coordinates</term>.  To specify  any nonzero point on the plane, it suffices to give an angle <m>\\theta</m> from the positive <m>x</m> axis in the counterclockwise direction and a distance <m>r</m> from the origin, as in <xref ref=\"figure-polarcoord\" />. We can see that <md>z = a + bi = r( \\cos \\theta + i \\sin \\theta)</md>. Hence, <md>r = |z| = \\sqrt{a^2 + b^2}</md> and <md>\n            <mrow>a &amp; = r \\cos \\theta</mrow>\n            <mrow>b &amp; = r \\sin \\theta</mrow>\n        </md>. We sometimes abbreviate <m>r( \\cos \\theta + i \\sin \\theta)</m> as <m>r \\cis \\theta</m>.  To assure that the representation of <m>z</m> is  well-defined, we also require that <m>0^{\\circ} \\leq \\theta \\lt 360^{\\circ}</m>.  If the measurement is in radians, then <m>0 \\leq \\theta \\lt2 \\pi</m>.<notation>\n            <usage><m>\\cis \\theta</m></usage>\n            <description><m>\\cos \\theta + i \\sin \\theta</m></description>\n        </notation></p>\n\n        <example xml:id=\"example-cyclic-polar\">\n            <title>Complex Numbers in Polar Form</title>\n            <p>Suppose that <m>z = 2 \\cis  60^{\\circ}</m>. Then <md>a = 2 \\cos 60^{\\circ} = 1</md> and <md>b = 2 \\sin 60^{\\circ} = \\sqrt{3}</md>. Hence, the rectangular representation is <m>z = 1+\\sqrt{3}\\, i</m>.</p>\n\n            <p>Conversely, if we are given a rectangular representation of a complex number, it is often useful to know the number's polar representation. If <m>z = 3 \\sqrt{2} - 3 \\sqrt{2}\\, i</m>, then <md>r = \\sqrt{a^2 + b^2} = \\sqrt{36 } = 6</md> and <md>\\theta = \\arctan \\left( \\frac{b}{a} \\right) = \\arctan( - 1) = 315^{\\circ}</md>, so <m>3 \\sqrt{2} - 3 \\sqrt{2}\\, i=6 \\cis  315^{\\circ}</m>.</p>\n        </example>\n\n        <p>The polar representation of a complex number makes it easy to find products and powers of complex numbers.  The proof of the following proposition is straightforward and is left as an exercise.</p>\n\n        <proposition xml:id=\"proposition-polar-mult\">\n            <statement>\n                <p>Let <m>z = r \\cis \\theta</m> and <m>w = s \\cis \\phi</m> be two nonzero complex numbers. Then <md>zw = r s \\cis( \\theta + \\phi)</md>.</p>\n            </statement>\n        </proposition>\n\n        <example xml:id=\"example-cyclic-polar-mult\">\n            <title>Multiplication of Complex Numbers in Polar Form</title>\n            <p>If <m>z =  3 \\cis( \\pi / 3 )</m> and <m>w = 2 \\cis(\\pi / 6 )</m>, then <m>zw = 6 \\cis( \\pi / 2 ) = 6i</m>.</p>\n        </example>\n\n        <theorem xml:id=\"theorem-demoivre\">\n            <title>DeMoivre</title>\n            <idx><h>DeMoivre's Theorem</h></idx>\n            <statement>\n                <p>Let <m>z = r \\cis  \\theta</m> be a nonzero complex number. Then <md>[r \\cis \\theta  ]^n = r^n \\cis( n \\theta)</md> for <m>n = 1, 2, \\ldots</m>.</p>\n            </statement>\n            <proof>\n                <p>We will use induction on <m>n</m> (see <xref ref=\"section-math-induction\" />). For <m>n = 1</m> the theorem is trivial. Assume that the theorem is true for all <m>k</m> such that <m>1  \\leq k \\leq n</m>. Then<md>\n                    <mrow>z^{n+1} &amp; = z^n z</mrow>\n                    <mrow>&amp; = r^n( \\cos  n \\theta + i \\sin n \\theta ) r( \\cos \\theta + i\\sin \\theta )</mrow>\n                    <mrow>&amp; = r^{n+1} [( \\cos n \\theta \\cos \\theta - \\sin n \\theta \\sin \\theta ) + i ( \\sin n \\theta \\cos \\theta + \\cos n \\theta \\sin \\theta)]</mrow>\n                    <mrow>&amp; = r^{n+1} [ \\cos( n \\theta + \\theta) + i \\sin( n \\theta + \\theta) ]</mrow>\n                    <mrow>&amp; = r^{n+1} [ \\cos( n +1) \\theta + i \\sin( n+1) \\theta  ]</mrow>\n                </md>.</p>\n            </proof>\n        </theorem>\n\n        <example>\n            <title>Powers of Complex Numbers</title>\n            <p>Suppose that <m>z= 1+i</m> and we wish to compute <m>z^{10}</m>. Rather than computing <m>(1 + i)^{10}</m> directly, it is much easier to switch to polar coordinates and calculate <m>z^{10}</m> using DeMoivre's Theorem:<md>\n                <mrow>z^{10} &amp; = (1+i)^{10}</mrow>\n                <mrow>&amp; = \\left( \\sqrt{2} \\cis \\left( \\frac{\\pi }{4} \\right) \\right)^{10}</mrow>\n                <mrow> &amp; = ( \\sqrt{2}\\, )^{10} \\cis \\left( \\frac{5\\pi }{2} \\right)</mrow>\n                <mrow>&amp; = 32  \\cis \\left( \\frac{\\pi }{2} \\right)</mrow>\n                <mrow>&amp; = 32i</mrow>\n            </md>.</p>\n        </example>\n\n        <p>The multiplicative group of the complex numbers, <m>{\\mathbb C}^*</m>, possesses some interesting subgroups.  Whereas <m>{\\mathbb Q}^*</m> and <m>{\\mathbb R}^*</m> have no interesting subgroups of finite order, <m>{\\mathbb C}^*</m> has many. We first consider the <term>circle group</term><idx><h>Group</h><h>circle</h></idx>, <md>{\\mathbb T} = \\{ z \\in {\\mathbb C} : |z| = 1 \\}</md>. The following proposition is a direct result of <xref ref=\"proposition-polar-mult\" />.<notation>\n            <usage><m>\\mathbb T</m></usage>\n            <description>the circle group</description>\n        </notation></p>\n\n        <proposition>\n            <statement>\n                <p>The circle group is a subgroup of  <m>{\\mathbb C}^*</m>.</p>\n            </statement>\n        </proposition>\n\n        <p>Although the circle group has infinite order, it has many interesting finite subgroups. Suppose that <m>H = \\{ 1, -1, i, -i \\}</m>. Then <m>H</m> is a subgroup of the circle group. Also, <m>1</m>, <m>-1</m>, <m>i</m>, and <m>-i</m> are exactly those complex numbers that satisfy the equation <m>z^4 = 1</m>. The complex numbers satisfying the equation <m>z^n=1</m> are called the <term><m>n</m>th roots of unity</term><idx><h><m>n</m>th root of unity</h></idx>.</p>\n\n        <theorem>\n            <statement>\n                <p>If <m>z^n = 1</m>, then the <m>n</m>th roots of unity are <md>z = \\cis\\left( \\frac{2 k \\pi}{n } \\right)</md>, where <m>k = 0, 1, \\ldots, n-1</m>. Furthermore, the <m>n</m>th roots of unity form a cyclic subgroup of <m>{\\mathbb T}</m> of order <m>n</m></p>\n            </statement>\n            <proof>\n                <p>By DeMoivre's Theorem, <md>z^n = \\cis \\left( n \\frac{2 k \\pi}{n } \\right) = \\cis( 2 k \\pi ) = 1</md>. The <m>z</m>'s are distinct since the numbers <m>2 k \\pi /n</m> are all distinct and are greater than or equal to 0 but less than <m>2 \\pi</m>.  We will leave the proof that the <m>n</m>th roots of unity form a cyclic subgroup of <m>{\\mathbb T}</m> as an exercise.</p>\n            </proof>\n        </theorem>\n\n        <p>A generator for the group of the <m>n</m>th roots of unity is called a <term>primitive <m>n</m>th root of unity</term><idx><h>Primitive <m>n</m>th root of unity</h></idx>.</p>\n\n        <example xml:id=\"example-roots_unity\">\n            <title>Roots of Unity</title>\n            <p>The 8th roots of unity can be represented as eight equally spaced points on the unit circle (<xref ref=\"figure-rtsunity\" />).  The primitive 8th roots of unity are<md>\n                <mrow>\\omega &amp; = \\frac{\\sqrt{2}}{2}  + \\frac{\\sqrt{2}}{2} i</mrow>\n                <mrow>\\omega^3 &amp; = -\\frac{\\sqrt{2}}{2}  + \\frac{\\sqrt{2}}{2} i</mrow>\n                <mrow>\\omega^5 &amp; = -\\frac{\\sqrt{2}}{2}  - \\frac{\\sqrt{2}}{2} i</mrow>\n                <mrow>\\omega^7 &amp; = \\frac{\\sqrt{2}}{2}  - \\frac{\\sqrt{2}}{2}i. </mrow>\n            </md></p>\n        </example>\n\n        <figure xml:id=\"figure-rtsunity\">\n            <caption>8th roots of unity</caption>\n            <!-- Replaced figure with tikz figure - TWJ 5/6/2010 -->\n            <image xml:id=\"cyclic-roots-unity\">\n                <latex-image><xi:include href=\"tikz/cyclic-roots-unity.tex\" parse=\"text\" /></latex-image>\n            </image>\n        </figure>\n\n        <p>We interrupt this exposition to repeat the previous diagram, wrapped as different figure with a different caption.  The TikZ code to produce these diagrams lives in an external file, <c>tikz/cyclic-roots-unity.tex</c>, which is pure text, freed from any need to format for XML processing.  So, in particular, there is no need to escape ampersands and angle brackets, nor is there employment of the <c>CDATA</c> mechanism.  But the real value is that there is just one version to edit, and any changes will be reflected in both copies.</p>\n\n        <figure xml:id=\"figure-rtsunity-copy\">\n            <caption>Repeat: 8th roots of unity</caption>\n            <image xml:id=\"cyclic-roots-unity-copy\">\n                <latex-image><xi:include href=\"tikz/cyclic-roots-unity.tex\" parse=\"text\" /></latex-image>\n            </image>\n        </figure>\n\n        <p>Another version of this diagram, authored in <prefigure/>, is also included in <xref ref=\"prefigure-rtsunity\"/>.</p>\n\n        <figure xml:id=\"prefigure-rtsunity\">\n            <caption>8th roots of unity, authored in <prefigure/></caption>\n            <image width=\"70%\">\n                <prefigure xmlns=\"https://prefigure.org\"\n                           label=\"prefigure-rtsunity\">\n                    <diagram dimensions=\"(300,300)\" margins=\"5\">\n                        <definition>\n                            alignments=['se','ne','ne','nw','sw','sw','sw','se']\n                        </definition>\n                        <definition substitution=\"no\">\n                            labels=['1',r'\\omega','i',r'\\omega^3','-1',r'\\omega^5','-i',r'\\omega^7']\n                        </definition>\n                        <definition>f(t)=(cos(pi*t/4),sin(pi*t/4))</definition>\n                        <coordinates bbox=\"[-1.4,-1.4,1.4,1.4]\">\n                            <grid at=\"grid\" />\n                            <axes at=\"axes\" decorations=\"no\" />\n                            <circle at=\"unit-circle\" center=\"(0,0)\" radius=\"1\" stroke=\"blue\"/>\n                            <repeat parameter=\"k=0..7\">\n                                <point at=\"point\" p=\"f(k)\" alignment=\"alignments[k]\">\n                                    <m>${labels[k]}</m>\n                                </point>\n                            </repeat>\n                        </coordinates>\n                    </diagram>\n                </prefigure>\n            </image>\n        </figure>\n\n    </section>\n\n    <section>\n        <title>Large Powers of Integers</title>\n\n        <p>Computing large powers can be very time-consuming. Just as anyone can compute <m>2^2</m> or <m>2^8</m>, everyone knows how to compute\n            <md>2^{2^{1000000} }</md>.\n        However, such numbers are so large that we do not want to attempt the calculations; moreover, past a certain point the computations would not be feasible even if we had every computer in the world at our disposal. Even writing down the decimal representation of a very large number may not be reasonable. It could be thousands or even millions of digits long. However, if we could compute something like <m>2^{37398332 } \\pmod{ 46389}</m>, we could very easily write the result down since it would be a number between 0 and 46,388. If we want to compute powers modulo <m>n</m> quickly and efficiently, we will have to be clever.<fn>The results in this section are needed only in <xref ref=\"integers\"/> (not really).</fn></p>\n\n        <p>The first thing to notice is that any number <m>a</m> can be written as the sum of distinct powers of 2; that is, we can write <md>a = 2^{k_1} + 2^{k_2} + \\cdots + 2^{k_n}</md>, where <m>k_1 \\lt k_2 \\lt \\cdots \\lt k_n</m>.  This is just the binary representation of <m>a</m>. For example, the binary representation of 57 is 111001, since we can write <m>57 = 2^0 + 2^3 + 2^4 + 2^5</m>.</p>\n\n        <p>The laws of exponents still work in <m>{\\mathbb Z}_n</m>; that is, if <m>b \\equiv a^x \\pmod{ n}</m> and <m>c \\equiv a^y \\pmod{ n}</m>, then <m>bc \\equiv a^{x+y} \\pmod{ n}</m>. We can compute <m>a^{2^k} \\pmod{ n}</m> in <m>k</m> multiplications by computing<md>\n            <mrow>a^{2^0} \\pmod{ n}</mrow>\n            <mrow>a^{2^1} \\pmod{ n }</mrow>\n            <mrow>\\vdots</mrow>\n            <mrow>a^{2^k} \\pmod{ n}</mrow>\n        </md>.  Each step involves squaring the answer obtained in the previous step, dividing by <m>n</m>, and taking the remainder.</p>\n\n        <example xml:id=\"example-cyclic-repeated-squares\">\n            <title>Repeated Squares</title>\n            <p>We will compute <m>271^{321} \\pmod{ 481}</m>. Notice that <md>321 = 2^0 +2^6 + 2^8</md>; hence, computing <m>271^{321} \\pmod{ 481}</m> is the same as computing <md>271^{2^0 +2^6 + 2^8 } \\equiv 271^{2^0} \\cdot 271^{2^6} \\cdot 271^{2^8} \\pmod{481}</md>. So it will suffice to compute <m>271^{2^i} \\pmod{481}</m> where <m>i = 0, 6, 8</m>. It is very easy to see that <md>271^{2^1}  = \\mbox{73,441} \\equiv 329 \\pmod{481}</md>. We can square this result to obtain a value for <m>271^{2^2} \\pmod{481}</m>:<md>\n                <mrow>271^{ 2^2}  &amp; \\equiv (271^{ 2^1})^2 \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv (329)^2 \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv \\mbox{108,241} \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv 16 \\pmod{ 481}</mrow>\n            </md>.  We are using the fact that <m>(a^{2^n})^2  \\equiv a^{2 \\cdot 2^n} \\equiv a^{ 2^{n+1} } \\pmod{ n}</m>. Continuing, we can calculate <md>271^{ 2^6 } \\equiv 419 \\pmod{ 481}</md> and <md>271^{ 2^8 }  \\equiv 16 \\pmod{ 481}</md>. Therefore,<md>\n                <mrow>271^{ 321} &amp; \\equiv 271^{ 2^0 +2^6 + 2^8 } \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv 271^{ 2^0 } \\cdot 271^{ 2^6 } \\cdot 271^{ 2^8 } \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv 271 \\cdot 419 \\cdot 16 \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv \\mbox{1,816,784} \\pmod{ 481}</mrow>\n                <mrow>&amp; \\equiv 47 \\pmod{ 481}</mrow>\n            </md>.</p>\n        </example>\n\n<!-- Reformatted example.  TWJ 2/5/2013 -->\n\n        <p> The method of repeated squares will prove to be a very useful tool when we explore  <acro>RSA</acro> cryptography. To encode and decode messages in a reasonable manner under this scheme, it is necessary to be able to quickly compute large powers of integers mod <m>n</m>.</p>\n\n        <xi:include href=\"./sage/cyclic-info.xml\" />\n    </section>\n\n    <xi:include href=\"./exercises/cyclic.xml\" />\n\n    <exercises>\n        <title>Programming Exercises</title>\n\n        <exercise>\n            <statement>\n                <p>Write a computer program that will write any decimal number as the sum of distinct powers of 2.  What is the largest integer that your program will handle?</p>\n            </statement>\n        </exercise>\n\n        <exercise>\n            <statement>\n                <p>Write a computer program to calculate <m>a^x \\pmod{ n}</m> by the method of repeated squares.  What are the largest values of <m>n</m> and <m>x</m> that your program will accept?</p>\n            </statement>\n        </exercise>\n\n    </exercises>\n\n    <xi:include href=\"./sage/cyclic-sage-exercises.xml\" />\n\n    <references>\n        <title>References and Suggested Readings</title>\n\n         <!-- was [1] -->\n         <!-- reference updated - TWJ 5/6/2010 -->\n        <biblio type=\"raw\">Koblitz, N. <title>A Course in Number Theory and Cryptography</title>. 2nd ed. Springer, New York, 1994.</biblio>\n\n        <!-- was [2] -->\n        <biblio type=\"raw\" xml:id=\"biblio-pomerance-1990\">Pomerance, C. <q>Cryptology and Computational Number Theory<mdash />An Introduction,</q> in <title>Cryptology and Computational Number Theory</title>, Pomerance, C., ed. Proceedings of Symposia in Applied Mathematics, vol. 42, American Mathematical Society, Providence, RI, 1990.  This book gives an excellent account of how the method of repeated squares is used in cryptography.</biblio>\n\n    </references>\n\n</chapter>\n\n"
  },
  {
    "path": "examples/sample-book/exercises/cyclic.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2016/03/25)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<exercises xml:id=\"exercises-cyclic\">\n    <title>Exercises</title>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>Prove or disprove each of the following statements.</p>\n            <ol>\n                <li><p>All of the generators of <m>{\\mathbb Z}_{60}</m> are prime.</p></li>\n                <li><p><m>U(8)</m> is cyclic.</p></li>\n                <li><p><m>{\\mathbb Q}</m> is cyclic.</p></li>\n                <li><p>If every proper subgroup of a group <m>G</m> is cyclic, then <m>G</m> is a cyclic group.</p></li>\n                <li><p>A group with a finite number of subgroups is finite.</p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"2\">\n        <statement>\n            <p>Find the order of each of the following elements.</p>\n            <ol cols=\"2\">\n                <li><p><m>5 \\in {\\mathbb Z}_{12}</m></p></li>\n                <li><p><m>\\sqrt{3} \\in {\\mathbb R}</m></p></li>\n                <li><p><m>\\sqrt{3} \\in {\\mathbb R}^\\ast</m></p></li>\n                <li><p><m>-i \\in {\\mathbb C}^\\ast</m></p></li>\n                <li><p>72 in <m>{\\mathbb Z}_{240}</m></p></li>\n                <li><p>312 in <m>{\\mathbb Z}_{471}</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"3\">\n        <statement>\n            <p>List all of the elements in each of the following subgroups.</p>\n            <ol>\n                <li><p>The subgroup of <m>{\\mathbb Z}</m> generated by 7</p></li>\n                <li><p>The subgroup of <m>{\\mathbb Z}_{24}</m> generated by 15</p></li>\n                <li><p>All subgroups of <m>{\\mathbb Z}_{12}</m></p></li>\n                <li><p>All subgroups of <m>{\\mathbb Z}_{60}</m></p></li>\n                <li><p>All subgroups of <m>{\\mathbb Z}_{13}</m></p></li>\n                <li><p>All subgroups of <m>{\\mathbb Z}_{48}</m></p></li>\n                <li><p>The subgroup generated by 3  in <m>U(20)</m></p></li>\n                <li><p>The subgroup generated by 5 in <m>U(18)</m></p></li>\n                <li><p>The subgroup of <m>{\\mathbb R}^\\ast</m> generated by 7</p></li>\n                <li><p>The subgroup of <m>{\\mathbb C}^\\ast</m> generated by <m>i</m> where <m>i^2 = -1</m></p></li>\n                <li><p>The subgroup of <m>{\\mathbb C}^\\ast</m> generated by <m>2i</m></p></li>\n                <li><p>The subgroup of <m>{\\mathbb C}^\\ast</m> generated by <m>(1 + i) / \\sqrt{2}</m></p></li>\n                <li><p>The subgroup of <m>{\\mathbb C}^\\ast</m> generated by <m>(1 + \\sqrt{3}\\, i) / 2</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"4\">\n        <statement>\n            <p>Find the subgroups of <m>GL_2( {\\mathbb R })</m> generated by each of the following matrices.</p>\n            <ol cols=\"3\">\n                <li><p><m>\\displaystyle \\begin{pmatrix}\n                0 &amp; 1 \\\\\n                -1 &amp; 0\n                \\end{pmatrix}</m></p></li>\n\n                <li><p><m>\\displaystyle\n                \\begin{pmatrix}\n                0 &amp; 1/3 \\\\\n                3 &amp; 0\n                \\end{pmatrix}</m></p></li>\n\n                <li><p><m>\\displaystyle\n                \\begin{pmatrix}\n                1 &amp; -1 \\\\\n                1 &amp; 0\n                \\end{pmatrix}</m></p></li>\n\n                <li><p><m>\\displaystyle\n                \\begin{pmatrix}\n                1 &amp; -1 \\\\\n                0 &amp; 1\n                \\end{pmatrix}</m></p></li>\n\n                <li><p><m>\\displaystyle\n                \\begin{pmatrix}\n                1 &amp; -1 \\\\\n                -1 &amp; 0\n                \\end{pmatrix}</m></p></li>\n\n                <li><p><m>\\displaystyle\n                \\begin{pmatrix}\n                \\sqrt{3}/ 2 &amp; 1/2 \\\\\n                -1/2 &amp; \\sqrt{3}/2\n                \\end{pmatrix}</m></p></li>\n\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"5\">\n        <statement>\n            <p>Find the order of every element in <m>{\\mathbb Z}_{18}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"6\">\n        <statement>\n            <p>Find the order of every element in the symmetry group of the square, <m>D_4</m>.</p>\n        </statement>\n\n    </exercise>\n\n    <exercise number=\"7\">\n        <statement>\n            <p>What are all of the cyclic subgroups of the quaternion group, <m>Q_8</m>?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"8\">\n        <statement>\n            <p>List all of the cyclic subgroups of <m>U(30)</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"9\">\n        <statement>\n            <p>List every generator of each subgroup of order 8 in <m>{\\mathbb Z}_{32}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"10\">\n        <statement>\n            <p>Find all elements of finite order in each of the following groups. Here the <q><m>\\ast</m></q> indicates the set with zero removed.</p>\n            <ol cols=\"3\">\n                <li><p><m>{\\mathbb Z}</m></p></li>\n                <li><p><m>{\\mathbb Q}^\\ast</m></p></li>\n                <li><p><m>{\\mathbb R}^\\ast</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"11\">\n        <statement>\n            <p>If <m>a^{24} =e</m> in a group <m>G</m>, what are the possible orders of <m>a</m>?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"12\">\n        <statement>\n            <p>Find a cyclic group with exactly one generator. Can you find cyclic groups with exactly two generators? Four generators? How about <m>n</m> generators?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"13\">\n        <statement>\n            <p>For <m>n \\leq 20</m>, which groups <m>U(n)</m> are cyclic?  Make a conjecture as to what is true in general.  Can you prove your conjecture?  </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"14\">\n        <statement>\n            <p>Let\n                <md>A =\n                \\begin{pmatrix}\n                0 &amp; 1 \\\\\n                -1 &amp; 0\n                \\end{pmatrix}\n                \\qquad \\text{and} \\qquad\n                B =\n                \\begin{pmatrix}\n                0 &amp; -1 \\\\\n                1 &amp; -1\n                \\end{pmatrix}</md>\n            be elements in <m>GL_2( {\\mathbb R} )</m>. Show that <m>A</m> and <m>B</m> have finite orders but <m>AB</m> does not.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"15\">\n        <statement>\n            <p>Evaluate each of the following.</p>\n            <ol cols=\"2\">\n                <li><p><m>(3-2i)+ (5i-6)</m></p></li>\n                <li><p><m>(4-5i)-\\overline{(4i -4)}</m></p></li>\n                <li><p><m>(5-4i)(7+2i)</m></p></li>\n                <li><p><m>(9-i) \\overline{(9-i)}</m></p></li>\n                <li><p><m>i^{45}</m></p></li>\n                <li><p><m>(1+i)+\\overline{(1+i)}</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"16\">\n        <statement>\n            <p>Convert the following complex numbers to the form <m>a + bi</m>.</p>\n            <ol cols=\"2\">\n                <li><p><m>2 \\cis(\\pi / 6 )</m></p></li>\n                <li><p><m>5 \\cis(9\\pi/4)</m></p></li>\n                <li><p><m>3 \\cis(\\pi)</m></p></li>\n                <li><p><m>\\cis(7\\pi/4) /2</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"17\">\n        <statement>\n            <p>Change the following complex numbers to polar representation.</p>\n            <ol cols=\"3\">\n                <li><p><m>1-i</m></p></li>\n                <li><p><m>-5</m></p></li>\n                <li><p><m>2+2i</m></p></li>\n                <li><p><m>\\sqrt{3} + i</m></p></li>\n                <li><p><m>-3i</m></p></li>\n                <li><p><m>2i + 2 \\sqrt{3}</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"18\">\n        <statement>\n            <p>Calculate each of the following expressions.</p>\n            <ol cols=\"2\">\n                <li><p><m>(1+i)^{-1}</m></p></li>\n                <li><p><m>(1 - i)^{6}</m></p></li>\n                <li><p><m>(\\sqrt{3} + i)^{5}</m></p></li>\n                <li><p><m>(-i)^{10}</m></p></li>\n                <li><p><m>((1-i)/2)^{4}</m></p></li>\n                <li><p><m>(-\\sqrt{2} - \\sqrt{2}\\, i)^{12}</m></p></li>\n                <li><p><m>(-2 + 2i)^{-5}</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"19\">\n        <statement>\n            <p>Prove each of the following statements.</p>\n            <ol cols=\"2\">\n                <li><p><m>|z| = | \\overline{z}|</m></p></li>\n                <li><p><m>z \\overline{z} = |z|^2</m></p></li>\n                <li><p><m>z^{-1} = \\overline{z} / |z|^2</m></p></li>\n                <li><p><m>|z +w| \\leq |z| + |w|</m></p></li>\n                <li><p><m>|z - w| \\geq | |z| - |w||</m></p></li>\n                <li><p><m>|z w| = |z|  |w|</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"20\">\n        <statement>\n            <p>List and graph the 6th roots of unity. What are the generators of this group?  What are the primitive 6th roots of unity?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"21\">\n        <statement>\n            <p>List and graph the 5th roots of unity. What are the generators of this group?  What are the primitive 5th roots of unity? </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"22\">\n        <statement>\n            <p>Calculate each of the following.</p>\n            <ol cols=\"2\">\n                <li><p><m>292^{3171} \\pmod{ 582}</m></p></li>\n                <li><p><m>2557^{ 341} \\pmod{ 5681}</m></p></li>\n                <li><p><m>2071^{ 9521} \\pmod{ 4724}</m></p></li>\n                <li><p><m>971^{ 321} \\pmod{ 765}</m></p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"23\">\n        <statement>\n            <p>Let <m>a, b \\in G</m>.  Prove the following statements.</p>\n            <ol>\n                <li><p>The order of <m>a</m> is the same as the order of <m>a^{-1}</m>.</p></li>\n                <li><p>For all <m>g \\in G</m>, <m>|a| = |g^{-1}ag|</m>.</p></li>\n                <li><p>The order of <m>ab</m> is the same as the order of <m>ba</m>.</p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"24\">\n        <statement>\n            <p>Let <m>p</m> and <m>q</m> be distinct primes.  How many generators does <m>{\\mathbb  Z}_{pq}</m> have? </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"25\">\n        <statement>\n            <p>Let <m>p</m> be prime and <m>r</m> be a positive integer. How many generators does <m>{\\mathbb Z}_{p^r}</m> have?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"26\">\n        <statement>\n            <p>Prove that  <m>{\\mathbb Z}_{p}</m> has no nontrivial subgroups if <m>p</m> is prime.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"27\">\n        <statement>\n            <p>If <m>g</m> and <m>h</m> have orders 15 and 16 respectively in a group <m>G</m>, what is the order of <m>\\langle g \\rangle  \\cap \\langle h \\rangle </m>? </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"28\">\n        <statement>\n            <p>Let <m>a</m> be an element in a group <m>G</m>. What is a generator for the subgroup <m>\\langle a^m \\rangle  \\cap  \\langle a^n \\rangle</m>?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"29\">\n        <statement>\n            <p>Prove that <m>{\\mathbb Z}_n</m> has an even number of generators for <m>n \\gt 2</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"30\">\n        <statement>\n            <p>Suppose that <m>G</m> is a group and let <m>a</m>, <m>b \\in G</m>. Prove that if <m>|a| = m</m> and <m>|b| = n</m> with <m>\\gcd(m,n) = 1</m>, then <m>\\langle a \\rangle \\cap \\langle b \\rangle  = \\{ e \\}</m>.</p>\n        </statement>\n    </exercise>\n\n    <!-- TODO: Fix references to torsion subgroup -->\n\n    <exercise number=\"31\">\n        <statement>\n            <p>Let <m>G</m> be an abelian group. Show that the elements of finite order in <m>G</m> form a subgroup. This subgroup is called the <term>torsion subgroup</term> of <m>G</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"32\">\n        <statement>\n            <p>Let <m>G</m> be a finite cyclic group of order <m>n</m> generated by <m>x</m>. Show that if <m>y = x^k</m> where <m>\\gcd(k,n) = 1</m>, then <m>y</m> must be a generator of <m>G</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"33\">\n        <statement>\n            <p>If <m>G</m> is an abelian group that contains a pair of cyclic subgroups of order 2, show that <m>G</m> must contain a subgroup of order 4. Does this subgroup have to be cyclic?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"34\">\n        <statement>\n            <p>Let <m>G</m> be an abelian group of order <m>pq</m> where <m>\\gcd(p,q) = 1</m>.  If <m>G</m> contains elements <m>a</m> and <m>b</m> of order <m>p</m> and <m>q</m> respectively, then show that <m>G</m> is cyclic.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"35\">\n        <statement>\n            <p>Prove that the subgroups of <m>\\mathbb Z</m> are exactly <m>n{\\mathbb Z}</m> for <m>n = 0, 1, 2, \\ldots</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"36\">\n        <statement>\n            <p>Prove that the generators of <m>{\\mathbb Z}_n</m> are the integers <m>r</m> such that <m>1 \\leq r \\lt n</m> and <m>\\gcd(r,n) =  1</m>. </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"37\">\n        <statement>\n            <p>Prove that if <m>G</m> has no proper nontrivial subgroups, then <m>G</m> is a cyclic group.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"38\">\n        <statement>\n            <p>Prove that the order of an element in a cyclic group <m>G</m> must divide the order of the group.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"39\" xml:id=\"cyclic-exercise-subgroups-exist\">\n        <statement>\n            <p>Prove that if <m>G</m> is a cyclic group of order <m>m</m> and <m>d \\mid m</m>, then <m>G</m> must have a subgroup of order <m>d</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"40\">\n        <statement>\n            <p>For what integers <m>n</m> is <m>-1</m> an <m>n</m>th root of unity?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"41\">\n        <statement>\n            <p>If <m>z = r( \\cos \\theta + i \\sin \\theta)</m> and <m>w = s(\\cos \\phi + i \\sin \\phi)</m> are two nonzero complex numbers, show that\n                <md>zw = rs[ \\cos( \\theta + \\phi)  + i \\sin( \\theta + \\phi)].</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"42\">\n        <statement>\n            <p>Prove that the circle group is a subgroup of  <m>{\\mathbb C}^*</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"43\">\n        <statement>\n            <p>Prove that the <m>n</m>th roots of unity form a cyclic subgroup of <m>{\\mathbb T}</m>  of order <m>n</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"44\">\n        <statement>\n            <p>Let <m>\\alpha \\in \\mathbb T</m>. Prove that <m>\\alpha^m =1</m> and <m>\\alpha^n = 1</m> if and only if <m>\\alpha^d = 1</m> for <m>d = \\gcd(m,n)</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"45\">\n        <statement>\n            <p>Let <m>z \\in {\\mathbb C}^\\ast</m>. If <m>|z| \\neq 1</m>, prove that the order of <m>z</m> is infinite. </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"46\">\n        <statement>\n            <p>Let <m>z =\\cos \\theta + i \\sin \\theta</m> be in <m>{\\mathbb T}</m> where <m>\\theta \\in {\\mathbb Q}</m>.  Prove that the order of <m>z</m>  is infinite.</p>\n        </statement>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/exercises/groups.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n<exercises xml:id=\"exercises-groups\">\n    <title>Exercises</title>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>Find all <m>x \\in {\\mathbb Z}</m> satisfying each of the following equations.</p>\n            <ol cols=\"2\">\n                <li><p><m>3x \\equiv 2 \\pmod{7}</m></p></li>\n                <li><p><m>5x + 1 \\equiv 13 \\pmod{23}</m></p></li>\n                <li><p><m>5x + 1 \\equiv 13 \\pmod{26}</m></p></li>\n                <li><p><m>9x \\equiv 3 \\pmod{5}</m></p></li>\n                <li><p><m>5x \\equiv 1 \\pmod{6}</m></p></li>\n                <li><p><m>3x \\equiv 1 \\pmod{6}</m></p></li>\n            </ol>\n        </statement>\n        <hint>\n            <p>(a) <m>3 + 7 \\mathbb Z = \\{ \\ldots, -4, 3, 10, \\ldots \\}</m>;  (c) <m>18 + 26 \\mathbb Z</m>;  (e) <m>5 + 6 \\mathbb Z</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"2\">\n    <statement>\n        <p>Which of the following multiplication tables defined on the set <m>G = \\{ a, b, c, d \\}</m> form a group? Support your answer in each case.</p>\n        <ol cols=\"2\">\n\n            <li><p><md>\\begin{array}{c|cccc}\n            \\circ &amp; a &amp; b &amp; c &amp; d \\\\\n            \\hline\n            a &amp; a &amp; c &amp; d &amp; a \\\\\n            b &amp; b &amp; b &amp; c &amp; d \\\\\n            c &amp; c &amp; d &amp; a &amp; b \\\\\n            d &amp; d &amp; a &amp; b &amp; c\n            \\end{array}</md></p></li>\n\n            <li><p><md>\\begin{array}{c|cccc}\n            \\circ &amp; a &amp; b &amp; c &amp; d \\\\\n            \\hline\n            a &amp; a &amp; b &amp; c &amp; d \\\\\n            b &amp; b &amp; a &amp; d &amp; c \\\\\n            c &amp; c &amp; d &amp; a &amp; b \\\\\n            d &amp; d &amp; c &amp; b &amp; a\n            \\end{array}</md></p></li>\n\n            <li><p><md>\\begin{array}{c|cccc}\n            \\circ &amp; a &amp; b &amp; c &amp; d \\\\\n            \\hline\n            a &amp; a &amp; b &amp; c &amp; d \\\\\n            b &amp; b &amp; c &amp; d &amp; a \\\\\n            c &amp; c &amp; d &amp; a &amp; b \\\\\n            d &amp; d &amp; a &amp; b &amp; c\n            \\end{array}</md></p></li>\n\n            <li><p><md>\\begin{array}{c|cccc}\n            \\circ &amp; a &amp; b &amp; c &amp; d \\\\\n            \\hline\n            a &amp; a &amp; b &amp; c &amp; d \\\\\n            b &amp; b &amp; a &amp; c &amp; d \\\\\n            c &amp; c &amp; b &amp; a &amp; d \\\\\n            d &amp; d &amp; d &amp; b &amp; c\n            \\end{array}</md></p></li>\n\n        </ol>\n    </statement>\n    <hint>\n        <p>(a) Not a group; (c) a group.</p>\n    </hint>\n    </exercise>\n\n    <exercise number=\"3\" xml:id=\"exercise-groups-rectangle-symmetries\">\n        <statement>\n            <p>Write out Cayley tables for groups formed by the symmetries of a rectangle and for <m>({\\mathbb Z}_4, +)</m>. How many elements are in each group? Are the groups the same? Why or why not? </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"4\">\n        <statement>\n            <p>Describe the symmetries of a rhombus and prove that the set of symmetries forms a group. Give Cayley tables for both the symmetries of a rectangle and the symmetries of a rhombus. Are the symmetries of a rectangle and those of a rhombus the same?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"5\">\n        <statement>\n            <p>Describe the symmetries of a square and prove that the set of symmetries is a group. Give a Cayley table for the symmetries. How many ways can the vertices of a square be permuted? Is each permutation necessarily a symmetry of the square?  The symmetry group of the square is denoted by <m>D_4</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"6\">\n        <statement>\n            <p>Give a multiplication table for the group <m>U(12)</m>.</p>\n        </statement>\n        <hint>\n            <p><md>\\begin{array}{c|cccc}\n                \\cdot &amp; 1  &amp; 5  &amp; 7  &amp; 11 \\\\\n                \\hline\n                1 &amp; 1 &amp; 5 &amp; 7 &amp; 11 \\\\ 5 &amp; 5 &amp; 1 &amp; 11 &amp; 7 \\\\\n                7 &amp; 7 &amp; 11 &amp; 1 &amp; 5 \\\\ 11 &amp; 11 &amp; 7 &amp; 5 &amp; 1\n                \\end{array}</md></p>\n            </hint>\n    </exercise>\n\n    <exercise number=\"7\">\n        <statement>\n            <p>Let <m>S = {\\mathbb R} \\setminus \\{ -1 \\}</m> and define a binary operation on <m>S</m> by <m>a \\ast b = a + b + ab</m>. Prove that <m>(S, \\ast)</m> is an abelian group.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"8\">\n        <statement>\n            <p>Give an example of two elements <m>A</m> and <m>B</m> in <m>GL_2({\\mathbb R})</m> with <m>AB \\neq BA</m>.</p>\n        </statement>\n        <hint>\n            <p>Pick two matrices. Almost any pair will work.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"9\">\n        <statement>\n        <p>Prove that the product of two matrices in <m>SL_2({\\mathbb R})</m> has determinant one.</p>\n        </statement>\n    </exercise>\n\n    <!-- todo: Check references to Heisenberg group -->\n\n    <exercise number=\"10\">\n        <statement>\n            <p>Prove that the set of matrices of the form\n                <md>\\begin{pmatrix}\n                1 &amp; x &amp; y \\\\\n                0 &amp; 1 &amp; z \\\\\n                0 &amp; 0 &amp; 1\n                \\end{pmatrix}</md>\n            is a group under matrix multiplication.  This group, known as the\n            <term>Heisenberg group</term>, is important in quantum physics. Matrix multiplication in the Heisenberg group is defined by  \n                <md>\\begin{pmatrix}\n                1 &amp; x &amp; y \\\\\n                0 &amp; 1 &amp; z \\\\\n                0 &amp; 0 &amp; 1\n                \\end{pmatrix}\n                \\begin{pmatrix}\n                1 &amp; x' &amp; y' \\\\\n                0 &amp; 1 &amp; z' \\\\\n                0 &amp; 0 &amp; 1\n                \\end{pmatrix}\n                =\n                \\begin{pmatrix}\n                1 &amp; x+x' &amp; y+y'+xz' \\\\\n                0 &amp; 1 &amp; z+z' \\\\\n                0 &amp; 0 &amp; 1\n                \\end{pmatrix}.</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"11\">\n        <statement>\n            <p>Prove that <m>\\det(AB) = \\det(A) \\det(B)</m> in <m>GL_2({\\mathbb R})</m>. Use this result to show that the binary operation in the group <m>GL_2({\\mathbb R})</m> is closed; that is, if <m>A</m> and <m>B</m> are in <m>GL_2({\\mathbb R})</m>, then <m>AB \\in GL_2({\\mathbb R})</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"12\">\n        <statement>\n            <p>Let <m>{\\mathbb Z}_2^n = \\{ (a_1, a_2, \\ldots, a_n) : a_i \\in {\\mathbb Z}_2 \\}</m>. Define a binary operation on <m>{\\mathbb Z}_2^n</m> by\n                <md>(a_1, a_2, \\ldots, a_n) + (b_1, b_2, \\ldots, b_n) = (a_1 + b_1, a_2 + b_2, \\ldots, a_n + b_n).</md>\n            Prove that <m>{\\mathbb Z}_2^n</m> is a group under this operation. This group is important in algebraic coding theory.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"13\">\n        <statement>\n            <p>Show that <m>{\\mathbb R}^{\\ast} = {\\mathbb R} \\setminus \\{0 \\}</m> is a group under the operation of multiplication. </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"14\">\n        <statement>\n            <p>Given the groups  <m>{\\mathbb R}^{\\ast}</m> and <m>{\\mathbb Z}</m>, let <m>G = {\\mathbb R}^{\\ast}  \\times {\\mathbb Z}</m>. Define a binary operation <m>\\circ</m> on <m>G</m> by <m>(a,m) \\circ (b,n) = (ab, m + n)</m>. Show that <m>G</m> is a group under this operation.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"15\">\n        <statement>\n            <p>Prove or disprove that every group containing six elements is abelian.</p>\n        </statement>\n        <hint>\n            <p>There is a nonabelian group containing six elements.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"16\">\n        <statement>\n            <p>Give a specific example of some group <m>G</m> and elements <m>g, h \\in G</m> where <m>(gh)^n \\neq g^nh^n</m>.</p>\n        </statement>\n        <hint>\n            <p>Look at the symmetry group of an equilateral triangle or a square.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"17\">\n        <statement>\n            <p>Give an example of three different groups with eight elements. Why are the groups different?</p>\n        </statement>\n        <hint>\n            <p>The are five different groups of order 8.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"18\">\n        <statement>\n            <p>Show that there are <m>n!</m> permutations of a set containing <m>n</m> items. </p>\n        </statement>\n        <hint>\n            <p>Let\n                <md>\\sigma =\n                \\begin{pmatrix}\n                1 &amp; 2 &amp; \\cdots &amp; n \\\\ a_1 &amp; a_2 &amp; \\cdots &amp; a_n\n                \\end{pmatrix}</md>\n            be in <m>S_n</m>. All of the <m>a_i</m>s must be distinct. There are <m>n</m> ways to choose <m>a_1</m>, <m>n-1</m> ways to choose <m>a_2</m>, <m>\\ldots</m>, 2 ways to choose <m>a_{n - 1}</m>, and only one way to choose <m>a_n</m>. Therefore, we can form <m>\\sigma</m> in <m>n(n - 1) \\cdots 2 \\cdot 1 = n!</m> ways.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"19\">\n        <statement>\n            <p>Show that \n                <md>0 + a  \\equiv a + 0  \\equiv a \\pmod{ n }</md>\n            for all <m>a \\in {\\mathbb Z}_n</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"20\">\n        <statement>\n            <p>Prove that there is  a multiplicative identity for the integers modulo <m>n</m>: \n                <md>a \\cdot  1   \\equiv  a \\pmod{n}.</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"21\">\n        <statement>\n            <p>For each <m>a \\in {\\mathbb Z}_n</m> find an element <m>b \\in {\\mathbb Z}_n</m> such that\n                <md>a + b \\equiv b + a  \\equiv 0 \\pmod{ n}.</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"22\">\n        <statement>\n            <p>Show that addition and multiplication mod $n$ are well defined operations.  That is, show that the operations do not depend on the choice of the representative from the equivalence classes mod <m>n</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"23\">\n        <statement>\n            <p>Show that addition and multiplication mod <m>n</m> are associative operations.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"24\">\n        <statement>\n            <p>Show that multiplication distributes over addition modulo <m>n</m>:\n                <md>a(b  + c)  \\equiv ab + ac  \\pmod{n}.</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"25\">\n        <statement>\n            <p>Let <m>a</m> and <m>b</m> be elements in a group <m>G</m>.  Prove that <m>ab^na^{-1} = (aba^{-1})^n</m> for <m>n \\in \\mathbb Z</m>. </p>\n        </statement>\n        <hint>\n            <p><md>\n                <mrow>(aba^{-1})^n &amp; = (aba^{-1})(aba^{-1}) \\cdots (aba^{-1})</mrow>\n                <mrow>&amp; = ab(aa^{-1})b(aa^{-1})b \\cdots b(aa^{-1})ba^{-1}</mrow>\n                <mrow>&amp; = ab^na^{-1}.</mrow>\n            </md></p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"26\">\n        <statement>\n            <p>Let <m>U(n)</m> be the group of units in <m>{\\mathbb Z}_n</m>. If <m>n \\gt 2</m>, prove that there is an element <m>k \\in U(n)</m> such that <m>k^2 = 1</m> and <m>k \\neq 1</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"27\">\n        <statement>\n            <p>Prove that the inverse of <m>g _1 g_2 \\cdots g_n</m> is <m>g_n^{-1} g_{n-1}^{-1} \\cdots g_1^{-1}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"28\">\n        <statement>\n            <p>Prove the remainder of <xref ref=\"proposition-group-equations\"/>: if <m>G</m> is a group and <m>a, b \\in G</m>, then the equation <m>xa = b</m> has a unique solution in <m>G</m>. </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"29\">\n        <statement>\n            <p>Prove <xref ref=\"theorem-exponent-laws\"/>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"30\">\n        <statement>\n            <p>Prove the right and left cancellation laws for a group <m>G</m>; that is, show that in the group <m>G</m>, <m>ba = ca</m> implies <m>b = c</m> and <m>ab = ac</m> implies <m>b = c</m> for elements <m>a, b, c \\in G</m>.  </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"31\">\n        <statement>\n            <p>Show that if <m>a^2 = e</m> for all elements <m>a</m> in a group <m>G</m>, then <m>G</m> must be abelian. </p>\n        </statement>\n        <hint>\n            <p>Since <m>abab = (ab)^2 = e = a^2 b^2 = aabb</m>, we know that <m>ba = ab</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"32\">\n        <statement>\n            <p>Show that if <m>G</m> is a finite group of even order, then there is an <m>a \\in G</m> such that <m>a</m> is not the identity and <m>a^2 = e</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"33\">\n        <statement>\n            <p>Let <m>G</m> be a group and suppose that <m>(ab)^2 = a^2b^2</m> for all <m>a</m> and <m>b</m> in <m>G</m>.  Prove that <m>G</m> is an abelian group. </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"34\">\n        <statement>\n            <p>Find all the subgroups of <m>{\\mathbb Z}_3 \\times {\\mathbb Z}_3</m>. Use this information to show that <m>{\\mathbb Z}_3 \\times {\\mathbb Z}_3</m> is not the same group as <m>{\\mathbb Z}_9</m>.  (See <xref ref=\"example-groups-z2xz2\"/>  for a short description of the product of groups.)</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"35\">\n        <statement>\n            <p>Find all the subgroups of the symmetry group of an equilateral triangle.</p>\n        </statement>\n        <hint>\n            <p><m>H_1 = \\{ id \\}</m>, <m>H_2 = \\{ id, \\rho_1, \\rho_2 \\}</m>, <m>H_3 = \\{ id, \\mu_1 \\}</m>, <m>H_4 = \\{ id, \\mu_2 \\}</m>, <m>H_5 = \\{ id, \\mu_3 \\}</m>, <m>S_3</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"36\">\n        <statement>\n            <p>Compute the subgroups of the symmetry group of a square.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"37\">\n        <statement>\n            <p>Let <m>H = \\{2^k : k \\in {\\mathbb Z} \\}</m>. Show that <m>H</m> is a subgroup of <m>{\\mathbb Q}^*</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"38\">\n        <statement>\n            <p>Let <m>n = 0, 1, 2, \\ldots</m> and <m>n {\\mathbb Z} = \\{ nk : k \\in  {\\mathbb Z} \\}</m>. Prove that <m>n {\\mathbb Z}</m> is a subgroup of <m>{\\mathbb Z}</m>.  Show that these subgroups are the only subgroups of <m>\\mathbb{Z}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"39\" xml:id=\"exercise-groups-circle-group\">\n        <statement>\n            <p>Let <m>{\\mathbb T} = \\{ z \\in  {\\mathbb C}^* : |z| =1 \\}</m>. Prove that <m>{\\mathbb T}</m> is a subgroup of <m>{\\mathbb C}^*</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"40\">\n        <statement>\n            <p><md>\\begin{pmatrix}\n                \\cos \\theta &amp; -\\sin \\theta \\\\\n                \\sin \\theta &amp; \\cos \\theta\n                \\end{pmatrix}</md>\n            where <m>\\theta \\in {\\mathbb R}</m>. Prove that <m>G</m> is a subgroup of <m>SL_2({\\mathbb R})</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"41\">\n        <statement>\n            <p>Prove that\n                <md>G = \\{ a + b \\sqrt{2} : a, b \\in {\\mathbb Q} \\text{ and } a \\text{ and } b \\text{ are not both zero} \\}</md>\n            is a subgroup of <m>{\\mathbb R}^{\\ast}</m> under the group operation of multiplication.</p>\n        </statement>\n        <hint>\n            <p>The identity of <m>G</m> is <m>1 = 1 + 0 \\sqrt{2}</m>. Since <m>(a + b \\sqrt{2}\\, )(c + d \\sqrt{2}\\, ) = (ac + 2bd) + (ad + bc)\\sqrt{2}</m>, <m>G</m> is closed under multiplication.  Finally,  <m>(a + b \\sqrt{2}\\, )^{-1} = a/(a^2 - 2b^2) - b\\sqrt{2}/(a^2 - 2 b^2)</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"42\">\n        <statement>\n            <p>Let <m>G</m> be the group of <m>2 \\times 2</m> matrices under addition and\n                <md>H =\n                \\left\\{\n                \\begin{pmatrix}\n                a &amp; b \\\\\n                c &amp; d\n                \\end{pmatrix} :\n                a + d = 0\n                \\right\\}.</md>\n            Prove that <m>H</m> is a subgroup of <m>G</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"43\">\n        <statement>\n            <p>Prove or disprove: <m>SL_2( {\\mathbb Z} )</m>, the set of <m>2 \\times 2</m> matrices with integer entries and determinant one, is a subgroup of <m>SL_2( {\\mathbb R} )</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"44\">\n        <statement>\n            <p>List the subgroups of the quaternion group, <m>Q_8</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"45\">\n        <statement>\n            <p>Prove that the intersection of two subgroups of a group <m>G</m> is also a subgroup of <m>G</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"46\">\n        <statement>\n            <p>Prove or disprove:  If <m>H</m> and <m>K</m> are subgroups of a group <m>G</m>, then <m>H \\cup K</m> is a subgroup of <m>G</m>. </p>\n        </statement>\n        <hint>\n            <p>Look at <m>S_3</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"47\">\n        <statement>\n            <p>Prove or disprove: If <m>H</m> and <m>K</m> are subgroups of a group <m>G</m>, then <m>H K = \\{hk : h \\in H \\text{ and } k \\in K \\}</m> is a subgroup of <m>G</m>. What if <m>G</m> is abelian?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"48\">\n        <statement>\n            <p>Let <m>G</m> be a group and <m>g \\in G</m>. Show that\n            <md>Z(G) = \\{ x \\in G : gx = xg \\text{ for all } g \\in G \\}</md> is a subgroup of <m>G</m>. This subgroup is called the <term>center</term> of <m>G</m>. <notation><usage><m>Z(G)</m></usage><description>the center of a group</description></notation></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"49\">\n        <statement>\n            <p>Let <m>a</m> and <m>b</m> be elements of a group <m>G</m>. If <m>a^4b = ba</m> and <m>a^3 = e</m>, prove that <m>ab = ba</m>.</p>\n        </statement>\n        <hint>\n            <p>Since <m>a^4b = ba</m>, it must be the case that <m>b = a^6 b = a^2 b a</m>, and we can conclude that <m> ab = a^3 b a = ba</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"50\">\n        <statement>\n            <p>Give an example of an infinite group in which every nontrivial subgroup is infinite.</p>\n        </statement>\n    </exercise>\n\n    <!-- Todo: Move the old Exercise 50 to struct.xml -->\n\n    <!--\n    <exercise number=\"50\">\n        <statement>\n            <p>Give an example of an infinite group in which every proper subgroup is finite.</p>\n        </statement>\n        <solution>\n            <p>Such groups exist, but the answer is complicated.</p>\n        </solution>\n    </exercise>\n    -->\n\n    <exercise number=\"51\">\n        <statement>\n            <p>If <m>xy = x^{-1} y^{-1}</m> for all <m>x</m> and <m>y</m> in <m>G</m>, prove that <m>G</m> must be abelian.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"52\">\n        <statement>\n            <p>Prove or disprove: Every proper subgroup of an nonabelian group is nonabelian.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"53\">\n        <statement>\n            <p>Let <m>H</m> be a subgroup of <m>G</m> and\n                <md>C(H) = \\{ g \\in G : gh = hg \\text{ for all } h \\in H \\}.</md>\n            Prove <m>C(H)</m> is a subgroup of <m>G</m>.  This subgroup is called the <term>centralizer</term> of <m>H</m> in <m>G</m>. </p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"54\">\n        <statement>\n            <p>Let <m>H</m> be a subgroup of <m>G</m>.  If <m>g \\in G</m>, show that <m>gHg^{-1} =  \\{g^{-1}hg : h\\in H\\}</m> is also a subgroup of <m>G</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercisegroup cols=\"2\">\n        <introduction>\n            <p>\n                In each group, how many solutions are there to <m>x^2=e</m>?\n            </p>\n        </introduction>\n\n        <exercise number=\"55\">\n            <statement>\n                <p>\n                    <m>C_n</m>, <m>n</m> odd.\n                </p>\n            </statement>\n            <answer>\n                <p>\n                    <m>1</m>\n                </p>\n            </answer>\n        </exercise>\n\n        <exercise number=\"56\">\n            <statement>\n                <p>\n                    <m>C_n</m>, <m>n</m> even.\n                </p>\n            </statement>\n            <answer>\n                <p>\n                    <m>2</m>\n                </p>\n            </answer>\n        </exercise>\n\n        <exercise number=\"57\">\n            <statement>\n                <p>\n                    <m>D_n</m>, <m>n</m> odd.\n                </p>\n            </statement>\n            <answer>\n                <p>\n                    <m>n</m>\n                </p>\n            </answer>\n        </exercise>\n\n        <exercise number=\"58\">\n            <statement>\n                <p>\n                    <m>D_n</m>, <m>n</m> even.\n                </p>\n            </statement>\n            <answer>\n                <p>\n                    <m>n+1</m>\n                </p>\n            </answer>\n        </exercise>\n    </exercisegroup>\n\n    <exercise number=\"59\">\n        <introduction>\n            <p>\n                This is an odd-numbered exercise with tasks.\n            </p>\n        </introduction>\n        <task>\n            <statement>\n                <p>\n                    What is <m>1+1</m>?\n                </p>\n            </statement>\n            <answer>\n                <p>\n                    <m>2</m>\n                </p>\n            </answer>\n        </task>\n        <task>\n            <introduction>\n                <p>\n                    This task has subtasks.\n                </p>\n            </introduction>\n            <task>\n                <statement>\n                    <p>\n                        What is <m>3+3</m>?\n                    </p>\n                </statement>\n                <answer>\n                    <p>\n                        <m>6</m>\n                    </p>\n                </answer>\n            </task>\n            <task>\n                <statement>\n                    <p>\n                        What is <m>5+5</m>?\n                    </p>\n                </statement>\n                <answer>\n                    <p>\n                        <m>10</m>\n                    </p>\n                </answer>\n            </task>\n        </task>\n    </exercise>\n\n    <exercise number=\"60\">\n        <introduction>\n            <p>\n                This is an even-numbered exercise with tasks.\n            </p>\n        </introduction>\n        <task>\n            <statement>\n                <p>\n                    What is <m>2+2</m>?\n                </p>\n            </statement>\n            <answer>\n                <p>\n                    <m>4</m>\n                </p>\n            </answer>\n        </task>\n        <task>\n            <introduction>\n                <p>\n                    This task has subtasks.\n                </p>\n            </introduction>\n            <task>\n                <statement>\n                    <p>\n                        What is <m>4+4</m>?\n                    </p>\n                </statement>\n                <answer>\n                    <p>\n                        <m>8</m>\n                    </p>\n                </answer>\n            </task>\n            <task>\n                <statement>\n                    <p>\n                        What is <m>6+6</m>?\n                    </p>\n                </statement>\n                <answer>\n                    <p>\n                        <m>12</m>\n                    </p>\n                </answer>\n            </task>\n        </task>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/exercises/integers.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n<exercises xml:id=\"exercises-integers\">\n    <title>Exercises</title>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>Prove that\n                <md>1^2 + 2^2 + \\cdots + n^2 = \\frac{n(n + 1)(2n + 1)}{6}</md>\n            for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n        <answer>\n            <p>The base case, <m>S(1): [1(1 + 1)(2(1) + 1)]/6 = 1 = 1^2</m> is true.</p>\n            <p>Assume that <m>S(k): 1^2 + 2^2 + \\cdots + k^2 = [k(k + 1)(2k + 1)]/6</m> is true. Then<md>\n                <mrow>1^2 + 2^2 + \\cdots + k^2 + (k + 1)^2 &amp; = [k(k + 1)(2k + 1)]/6 + (k + 1)^2</mrow>\n                <mrow>&amp; = [(k + 1)((k + 1) + 1)(2(k + 1) + 1)]/6,</mrow>\n            </md>and so <m>S(k + 1)</m> is true. Thus, <m>S(n)</m> is true for all positive integers <m>n</m>.</p>\n        </answer>\n\n    </exercise>\n\n    <exercise number=\"2\">\n        <statement>\n            <p>Prove that\n                <md>1^3 + 2^3 + \\cdots + n^3 = \\frac{n^2(n + 1)^2}{4}</md>\n            for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n\n    </exercise>\n\n    <exercise number=\"3\">\n        <statement>\n            <p>Prove that <m>n! \\gt 2^n</m> for <m>n \\geq 4</m>.</p>\n        </statement>\n        <answer>\n            <p>The base case, <m>S(4): 4! = 24 \\gt 16 =2^4</m> is true. Assume <m>S(k): k! \\gt 2^k</m> is true. Then <m>(k + 1)! = k! (k + 1) \\gt 2^k \\cdot 2 = 2^{k + 1}</m>, so <m>S(k + 1)</m> is true. Thus, <m>S(n)</m> is true for all positive integers <m>n</m>.</p>\n        </answer>\n\n    </exercise>\n\n    <exercise number=\"4\">\n        <statement>\n            <p>Prove that\n                <md>x + 4x + 7x + \\cdots + (3n - 2)x = \\frac{n(3n - 1)x}{2}</md>\n            for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"5\">\n        <statement>\n            <p>Prove that <m>10^{n + 1} + 10^n + 1</m> is divisible by 3 for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"6\">\n        <statement>\n            <p>Prove that <m>4 \\cdot 10^{2n} + 9 \\cdot 10^{2n - 1} + 5</m> is divisible by 99 for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"7\">\n        <statement>\n            <p>Show that\n                <md>\\sqrt[n]{a_1 a_2 \\cdots a_n} \\leq \\frac{1}{n} \\sum_{k = 1}^{n} a_k.</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"8\">\n        <statement>\n            <p>Use induction to prove that <m>1 + 2 + 2^2 + \\cdots + 2^n = 2^{n + 1} - 1</m> for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"9\">\n        <statement>\n            <p>Prove the Leibniz rule for <m>f^{(n)} (x)</m>, where <m>f^{(n)}</m> is the <m>n</m>th derivative of <m>f</m>; that is, show that\n                <md>(fg)^{(n)}(x) = \\sum_{k = 0}^{n} \\binom{n}{k} f^{(k)}(x) g^{(n - k)}(x).</md></p>\n        </statement>\n        <hint>\n            <p>Follow the proof in <xref ref=\"example-integers-binomial-theorem\"/>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"10\">\n        <statement>\n            <p>Prove that\n                <md>\\frac{1}{2}+ \\frac{1}{6} + \\cdots + \\frac{1}{n(n + 1)} = \\frac{n}{n + 1} </md>\n            for <m>n \\in {\\mathbb N}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"11\">\n        <statement>\n            <p>If <m>x</m> is a nonnegative real number, then show that <m>(1 + x)^n - 1 \\geq nx</m> for <m>n = 0, 1, 2, \\ldots</m>.</p>\n        </statement>\n        <hint>\n            <p>The base case, <m>S(0): (1 + x)^0 - 1 = 0 \\geq 0 = 0 \\cdot x</m> is true. Assume <m>S(k): (1 + x)^k -1 \\geq kx</m> is true. Then<md>\n                <mrow>(1 + x)^{k + 1} - 1 &amp; = (1 + x)(1 + x)^k -1</mrow>\n                <mrow>&amp; = (1 + x)^k + x(1 + x)^k - 1</mrow>\n                <mrow>&amp; \\geq kx + x(1 + x)^k</mrow>\n                <mrow>&amp; \\geq kx + x</mrow>\n                <mrow>&amp; = (k + 1)x,</mrow>\n            </md>so <m>S(k + 1)</m> is true. Therefore, <m>S(n)</m> is true for all positive integers <m>n</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"12\">\n        <title>Power Sets</title>\n        <statement>\n            <p>Let <m>X</m> be a set. Define the <term>power set</term> of <m>X</m>, denoted <m>{\\mathcal P}(X)</m>, to be the set of all subsets  of <m>X</m>.  <notation><usage><m>\\mathcal P(X)</m></usage><description>power set of <m>X</m></description></notation> For example,  \n                <md>{\\mathcal P}( \\{a, b\\} ) = \\{ \\emptyset, \\{a\\}, \\{b\\}, \\{a, b\\} \\}.</md>\n            For every positive integer <m>n</m>, show that a set with exactly <m>n</m> elements has a power set with exactly <m>2^n</m> elements.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"13\">\n        <statement>\n            <p>Prove that the two principles of mathematical induction stated in <xref ref=\"section-math-induction\"/> are equivalent.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"14\">\n        <statement>\n            <p>Show that the Principle of Well-Ordering for the natural numbers implies that 1 is the smallest natural number.  Use this result to show that the Principle of Well-Ordering implies the Principle of Mathematical Induction; that is, show that if <m>S \\subset {\\mathbb N}</m> such that <m>1 \\in S</m> and <m>n + 1 \\in S</m> whenever <m>n \\in S</m>, then <m>S = {\\mathbb N}</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"15\">\n        <statement>\n            <p>For each of the following pairs of numbers <m>a</m> and <m>b</m>, calculate <m>\\gcd(a,b)</m> and find integers <m>r</m> and <m>s</m> such that  <m>\\gcd(a,b) = ra + sb</m>.</p>\n            <ol cols=\"2\">\n                <li><p>14 and 39</p></li>\n                <li><p>234 and 165</p></li>\n                <li><p>1739 and 9923</p></li>\n                <li><p>471 and 562</p></li>\n                <li><p>23,771 and 19,945</p></li>\n                <li><p><m>-4357</m> and 3754</p></li>\n            </ol>\n        </statement>\n    </exercise>\n\n    <exercise number=\"16\" xml:id=\"exercise-integers-gcd-1\">\n        <statement>\n            <p>Let <m>a</m> and <m>b</m> be nonzero integers. If there exist integers <m>r</m> and <m>s</m> such that <m>ar + bs =1</m>, show that <m>a</m> and <m>b</m> are relatively prime.</p>\n        </statement>\n    </exercise>\n\n    <!-- Todo: Check references to the Fibonacci numbers -->\n\n    <exercise number=\"17\">\n        <title>Fibonacci Numbers</title>\n        <statement>\n            <p>The Fibonacci numbers are\n                <md>1, 1, 2, 3, 5, 8, 13, 21, \\ldots.</md>\n            We can define them inductively by <m>f_1 = 1</m>, <m>f_2 = 1</m>, and <m>f_{n + 2} = f_{n + 1} + f_n</m> for <m>n \\in {\\mathbb N}</m>.</p>\n            <ol>\n                <li xml:id=\"fn_ineq\"><p>Prove that <m>f_n \\lt 2^n</m>.</p></li>\n                <li xml:id=\"fn_prod\"><p>Prove that <m>f_{n + 1} f_{n - 1} = f^2_n + (-1)^n</m>, <m>n \\geq 2</m>.</p></li>\n                <li xml:id=\"fn_formula\"><p>Prove that <m>f_n = [(1 + \\sqrt{5}\\, )^n - (1 - \\sqrt{5}\\, )^n]/ 2^n \\sqrt{5}</m>.</p></li>\n                <li xml:id=\"fn_ratio\"><p>Show that <m>\\lim_{n \\rightarrow \\infty} f_n / f_{n + 1} = (\\sqrt{5} - 1)/2</m>.</p></li>\n                <li xml:id=\"fn_coprime\"><p>Prove that <m>f_n</m> and <m>f_{n + 1}</m> are relatively prime.</p></li>\n            </ol>\n        </statement>\n        <hint>\n            <p>For <xref ref=\"fn_ineq\"/> and <xref ref=\"fn_prod\"/> use mathematical induction.\n               <xref ref=\"fn_formula\"/> Show that <m>f_1 = 1</m>, <m>f_2 = 1</m>, and <m>f_{n + 2} = f_{n + 1} + f_n</m>.\n               <xref ref=\"fn_ratio\"/>  Use part <xref ref=\"fn_formula\"/>.\n               <xref ref=\"fn_coprime\"/> Use part <xref ref=\"fn_prod\"/> and <xref ref=\"exercise-integers-gcd-1\"/>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"18\">\n        <statement>\n            <p>Let <m>a</m> and <m>b</m> be integers such that <m>\\gcd(a,b) = 1</m>.  Let <m>r</m> and <m>s</m> be integers such that <m>ar + bs =1</m>.  Prove that \n                <md>\\gcd(a,s) = \\gcd(r,b) = \\gcd(r,s) =  1.</md></p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"19\">\n        <statement>\n            <p>Let <m>x, y \\in {\\mathbb N}</m> be relatively prime.  If <m>xy</m> is a perfect square, prove that <m>x</m> and <m>y</m> must both be perfect squares.</p>\n        </statement>\n        <hint>\n            <p>Use the Fundamental Theorem of Arithmetic.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"20\">\n        <statement>\n            <p>Using the division algorithm, show that every perfect square is of the form <m>4k</m> or <m>4k + 1</m> for some nonnegative integer <m>k</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"21\">\n        <statement>\n            <p>Suppose that <m>a, b, r, s</m> are pairwise relatively prime and that<md>\n                <mrow>a^2 + b^2 &amp; = r^2</mrow>\n                <mrow>a^2 - b^2 &amp; = s^2.</mrow>\n            </md></p>\n            <p>Prove that <m>a</m>, <m>r</m>, and <m>s</m> are odd and <m>b</m> is even.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"22\">\n        <statement>\n            <p>Let <m>n \\in {\\mathbb N}</m>.  Use the division algorithm to prove that every integer is congruent mod <m>n</m> to precisely one of the integers <m>0, 1, \\ldots, n-1</m>. Conclude that if <m>r</m> is an integer, then there is exactly one <m>s</m> in <m>{\\mathbb Z}</m> such that <m>0 \\leq s \\lt n</m> and <m>[r] = [s]</m>. Hence, the integers are indeed partitioned by congruence mod <m>n</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"23\">\n        <statement>\n            <p>Define the <term>least common multiple</term> of two nonzero integers <m>a</m> and <m>b</m>, denoted by <m>\\lcm(a,b)</m>, to be the nonnegative integer <m>m</m> such that both <m>a</m> and <m>b</m> divide <m>m</m>, and if <m>a</m> and <m>b</m>  divide any other integer <m>n</m>, then <m>m</m> also divides <m>n</m>. <notation><usage><m>\\lcm(m,n)</m></usage><description>the least common multiple of <m>m</m> and <m>n</m></description></notation> Prove that any two integers <m>a</m> and <m>b</m> have a unique least common multiple.</p>\n        </statement>\n        <hint>\n            <p>Let <m>S = \\{s \\in {\\mathbb N} : a \\mid s</m>, <m>b \\mid s \\}</m>. Then <m>S \\neq \\emptyset</m>, since <m>|ab| \\in S</m>. By the Principle of Well-Ordering, <m>S</m> contains a least element <m>m</m>. To show uniqueness, suppose that <m>a \\mid n</m> and <m>b \\mid n</m> for some <m>n \\in {\\mathbb N}</m>. By the division algorithm, there exist unique integers <m>q</m> and <m>r</m> such that <m>n = mq + r</m>, where <m>0 \\leq r \\lt m</m>. Since <m>a</m> and <m>b</m> divide both <m>m</m>, and <m>n</m>, it must be the case that  <m>a</m> and <m>b</m> both divide <m>r</m>.  Thus, <m>r = 0</m> by the minimality of <m>m</m>. Therefore, <m>m \\mid n</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"24\" xml:id=\"exercise-integers-lcm-gcd\">\n        <statement>\n            <p>If <m>d= \\gcd(a, b)</m> and <m>m = \\lcm(a, b)</m>, prove that <m>dm = |ab|</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"25\">\n        <statement>\n            <p>Show that <m>\\lcm(a,b) = ab</m> if and only if <m>\\gcd(a,b) = 1</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"26\">\n        <statement>\n            <p>Prove that <m>\\gcd(a,c) = \\gcd(b,c) =1</m> if and only if <m>\\gcd(ab,c) = 1</m> for integers <m>a</m>, <m>b</m>, and <m>c</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"27\">\n        <statement>\n            <p>Let <m>a, b, c \\in {\\mathbb Z}</m>.  Prove that if <m>\\gcd(a,b) = 1</m> and <m>a  \\mid bc</m>, then <m>a  \\mid  c</m>. </p>\n        </statement>\n        <hint>\n            <p>Since <m>\\gcd(a,b) = 1</m>, there exist integers <m>r</m> and <m>s</m> such that <m>ar + bs = 1</m>.   Thus, <m>acr + bcs = c</m>. Since <m>a</m> divides both <m>bc</m> and itself, <m>a</m> must divide <m>c</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"28\">\n        <statement>\n            <p>Let <m>p \\geq 2</m>.  Prove that if <m>2^p - 1</m> is prime, then <m>p</m> must also be prime.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"29\">\n        <statement>\n            <p>Prove that there are an infinite number of primes of the form <m>6n + 5</m>. </p>\n        </statement>\n        <hint>\n            <p>Every prime must be of the form 2, 3, <m>6n + 1</m>, or <m>6n + 5</m>.   Suppose there are only finitely many primes of the form <m>6k + 5</m>.</p>\n        </hint>\n    </exercise>\n\n    <exercise number=\"30\">\n        <statement>\n            <p>Prove that there are an infinite number of primes of the form <m>4n - 1</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"31\">\n        <statement>\n            <p>Using the fact that 2 is prime, show that there do not exist integers <m>p</m> and <m>q</m> such that <m>p^2 = 2 q^2</m>. Demonstrate that therefore <m>\\sqrt{2}</m> cannot be a rational number.</p>\n        </statement>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/exercises/sets.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<exercises xml:id=\"exercises-sets\">\n    <title>Exercises</title>\n\n    <subexercises>\n        <title>Warm-up</title>\n        <introduction>\n            <p>\n                This is a meaningless subdivision of the exercises for the sake of testing output.\n            </p>\n        </introduction>\n\n        <exercise number=\"1\">\n            <statement>\n                <p>Suppose that<md>\n                    <mrow>A &amp; = \\{ x : x \\in \\mathbb N \\text{ and } x \\text{ is even} \\},</mrow>\n                    <mrow>B &amp; = \\{x : x \\in \\mathbb N \\text{ and } x \\text{ is prime}\\},</mrow>\n                    <mrow>C &amp; = \\{ x : x \\in \\mathbb N \\text{ and } x \\text{ is a multiple of 5}\\}.</mrow>\n                </md></p>\n                <p>Describe each of the following sets.</p>\n                <ol cols=\"2\">\n                    <li><p><m>A \\cap B</m></p></li>\n                    <li><p><m>B \\cap C</m></p></li>\n                    <li><p><m>A \\cup B</m></p></li>\n                    <li><p><m>A \\cap (B \\cup C)</m></p></li>\n                </ol>\n            </statement>\n            <!-- commented out for testing, so that only even hints, answers, solutions may appear in the \"solutions\" -->\n            <!-- <hint>\n                <p>(a) <m>A \\cap B = \\{ 2 \\}</m>; (b) <m>B \\cap C = \\{ 5 \\}</m>.</p>\n            </hint> -->\n        </exercise>\n\n        <exercise number=\"2\">\n            <statement>\n                <p>If <m>A = \\{ a, b, c \\}</m>, <m>B = \\{ 1, 2, 3 \\}</m>, <m>C = \\{ x \\}</m>, and <m>D = \\emptyset</m>, list all of the elements in each of the following sets.</p>\n                <ol cols=\"2\">\n                    <li><p><m>A \\times B</m></p></li>\n                    <li><p><m>B \\times A</m></p></li>\n                    <li><p><m>A \\times B \\times C</m></p></li>\n                    <li><p><m>A \\times D</m></p></li>\n                </ol>\n            </statement>\n            <hint>\n                <p>(a) <m>A \\times B = \\{ (a,1), (a,2), (a,3), (b,1), (b,2), (b,3), (c,1), (c,2), (c,3) \\}</m>; (d) <m>A \\times D = \\emptyset</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"3\">\n            <statement>\n                <p>Find an example of two nonempty sets <m>A</m> and <m>B</m> for which <m>A \\times B = B \\times A</m> is true.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"4\">\n            <statement>\n                <p>Prove  <m>A \\cup \\emptyset = A</m> and <m>A \\cap \\emptyset = \\emptyset</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"5\">\n            <statement>\n                <p>Prove <m>A \\cup B = B \\cup A</m> and <m>A \\cap B = B \\cap A</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"6\">\n            <statement>\n                <p>Prove <m>A \\cup (B \\cap C) = (A \\cup B) \\cap (A \\cup C)</m>.</p>\n            </statement>\n            <hint>\n                <p>If <m>x \\in A \\cup (B \\cap C)</m>, then either <m>x \\in A</m> or <m>x \\in B \\cap C</m>.  Thus,   <m> x \\in A \\cup B</m> and <m>A \\cup C</m>.  Hence, <m> x \\in (A \\cup B) \\cap (A \\cup C)</m>. Therefore, <m>  A \\cup (B \\cap C) \\subset (A \\cup B) \\cap (A \\cup C)</m>.  Conversely, if <m>x \\in (A \\cup B) \\cap (A \\cup C)</m>, then <m>x \\in A \\cup B</m> and <m>A \\cup C</m>. Thus, <m>x \\in A</m> or <m>x</m> is in both <m>B</m> and <m>C</m>. So <m>x \\in A \\cup (B \\cap C)</m> and therefore <m>(A \\cup B) \\cap (A \\cup C) \\subset A \\cup (B \\cap C)</m>. Hence, <m>A \\cup (B \\cap C) = (A \\cup B) \\cap (A \\cup C)</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"7\">\n            <statement>\n                <p>Prove <m>A \\cap (B \\cup C) = (A \\cap B) \\cup (A \\cap C)</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"8\">\n            <statement>\n                <p>Prove  <m>A \\subset B</m> if and only if <m>A \\cap B = A</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"9\">\n            <statement>\n                <p>Prove <m>(A \\cap B)' = A' \\cup B'</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"10\">\n            <statement>\n                <p>Prove  <m>A \\cup B = (A \\cap B) \\cup (A \\setminus B) \\cup (B \\setminus A)</m>.</p>\n            </statement>\n            <hint>\n                <p><m>(A \\cap B) \\cup (A \\setminus B) \\cup (B \\setminus A) = (A \\cap B) \\cup (A \\cap B') \\cup (B \\cap A') = [A \\cap (B \\cup B')] \\cup (B \\cap A') = A \\cup (B \\cap A') = (A \\cup B) \\cap (A \\cup A') = A \\cup B</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"11\">\n            <statement>\n                <p>Prove  <m>(A \\cup B) \\times C = (A \\times C ) \\cup (B \\times C)</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"12\">\n            <statement>\n                <p>Prove  <m>(A \\cap B) \\setminus B = \\emptyset</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"13\">\n            <statement>\n                <p>Prove  <m>(A \\cup B) \\setminus B = A \\setminus B</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"14\">\n            <statement>\n                <p>Prove  <m>A \\setminus (B \\cup C) = (A \\setminus B) \\cap (A \\setminus C)</m>.</p>\n            </statement>\n            <hint>\n                <p><m>A \\setminus (B \\cup C) = A \\cap (B \\cup C)' = (A \\cap A) \\cap (B' \\cap C') = (A \\cap B') \\cap (A \\cap C') = (A \\setminus B) \\cap (A \\setminus C)</m>.</p>\n            </hint>\n        </exercise>\n    </subexercises>\n\n    <subexercises>\n        <title>More Exercises</title>\n        <introduction>\n            <p>\n                This is a meaningless subdivision of the exercises for the sake of testing output.\n            </p>\n        </introduction>\n\n        <exercise number=\"15\">\n            <statement>\n                <p>Prove  <m>A \\cap (B \\setminus C) = (A \\cap B) \\setminus (A \\cap C)</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"16\">\n            <statement>\n                <p>Prove  <m>(A \\setminus B) \\cup (B \\setminus A) = (A \\cup B) \\setminus (A \\cap B)</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"17\">\n            <statement>\n                <p>Which of the following relations <m>f: {\\mathbb Q} \\rightarrow {\\mathbb Q}</m> define a mapping? In each case, supply a reason why <m>f</m> is or is not a mapping.</p>\n                <ol cols=\"2\">\n                    <li><p><m>\\displaystyle f(p/q) = \\frac{p+ 1}{p - 2}</m></p></li>\n                    <li><p><m>\\displaystyle f(p/q) = \\frac{3p}{3q}</m></p></li>\n                    <li><p><m>\\displaystyle f(p/q) = \\frac{p+q}{q^2}</m></p></li>\n                    <li><p><m>\\displaystyle f(p/q) = \\frac{3 p^2}{7 q^2} - \\frac{p}{q}</m></p></li>\n                </ol>\n            </statement>\n            <!-- commented out for testing, so that only even hints, answers, solutions may appear in the \"solutions\" -->\n            <!-- <hint>\n                <p>(a) Not a map since <m>f(2/3)</m> is undefined; (b) this is a map; (c) not a map, since <m>f(1/2) = 3/4</m> but <m>f(2/4)=3/8</m>; (d) this is a map.</p>\n            </hint> -->\n        </exercise>\n\n        <exercise number=\"18\">\n            <statement>\n                <p>Determine which of the following functions are one-to-one and which are onto.  If the function is not onto, determine its range.</p>\n                <ol>\n                    <li><p><m>f: {\\mathbb R} \\rightarrow {\\mathbb R}</m> defined by <m>f(x) = e^x</m></p></li>\n                    <li><p><m>f: {\\mathbb Z} \\rightarrow {\\mathbb Z}</m> defined by <m>f(n) = n^2 + 3</m></p></li>\n                    <li><p><m>f: {\\mathbb R} \\rightarrow {\\mathbb R}</m> defined by <m>f(x) = \\sin x</m></p></li>\n                    <li><p><m>f: {\\mathbb Z} \\rightarrow {\\mathbb Z}</m> defined by <m>f(x) = x^2</m></p></li>\n                </ol>\n            </statement>\n            <hint>\n                <p>(a) <m>f</m> is one-to-one but not onto. <m>f({\\mathbb R} ) = \\{ x \\in {\\mathbb R} : x \\gt 0 \\}</m>.  (c) <m>f</m> is neither one-to-one nor onto.  <m>f(\\mathbb R) = \\{ x : -1 \\leq x \\leq 1 \\}</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"19\">\n            <statement>\n                <p>Let <m>f :A \\rightarrow B</m> and <m>g : B \\rightarrow C</m> be invertible mappings; that is, mappings such that <m>f^{-1}</m> and <m>g^{-1}</m> exist. Show that <m>(g \\circ f)^{-1} =f^{-1} \\circ g^{-1}</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"20\">\n            <statement>\n                <ol>\n                    <li><p>Define a function <m>f: {\\mathbb N} \\rightarrow {\\mathbb N}</m> that is one-to-one but not onto.</p></li>\n                     <li><p>Define a function <m>f: {\\mathbb N} \\rightarrow {\\mathbb N}</m> that is onto but not one-to-one.</p></li>\n                </ol>\n            </statement>\n            <hint>\n                <p>(a) <m>f(n) = n + 1</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"21\">\n            <statement>\n                <p>Prove the relation defined on <m>{\\mathbb R}^2</m> by <m>(x_1, y_1 ) \\sim (x_2, y_2)</m> if <m>x_1^2 + y_1^2 = x_2^2 + y_2^2</m> is  an equivalence relation.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"22\">\n            <statement>\n                <p>Let <m>f : A \\rightarrow B</m> and <m>g : B \\rightarrow C</m> be maps.</p>\n                <ol>\n                    <li><p>If <m>f</m> and <m>g</m> are both one-to-one functions, show that <m>g \\circ f</m> is one-to-one.</p></li>\n                    <li><p>If <m>g \\circ f</m> is onto, show that <m>g</m> is onto.</p></li>\n                    <li><p>If <m>g \\circ f</m> is one-to-one, show that <m>f</m> is one-to-one.</p></li>\n                    <li><p>If <m>g \\circ f</m> is one-to-one and <m>f</m> is onto, show that <m>g</m> is one-to-one.</p></li>\n                    <li><p>If <m>g \\circ f</m> is onto and <m>g</m> is one-to-one, show that <m>f</m> is onto.</p></li>\n                </ol>\n            </statement>\n            <hint>\n                <p>(a) Let <m>x, y \\in A</m>. Then <m>g(f(x)) = (g \\circ f)(x) = (g \\circ f)(y) = g(f(y))</m>.  Thus, <m>f(x) = f(y)</m> and <m>x = y</m>,  so <m>g \\circ f</m> is one-to-one. (b) Let <m>c \\in C</m>, then <m>c = (g \\circ f)(x) = g(f(x))</m> for some <m>x \\in A</m>. Since <m>f(x) \\in B</m>, <m>g</m> is onto.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"23\">\n            <statement>\n                <p>Define a function on the real numbers by\n                    <md>f(x) = \\frac{x + 1}{x - 1}.</md>\n                What are the domain and range of <m>f</m>? What is the inverse of <m>f</m>?  Compute <m>f \\circ f^{-1}</m> and <m>f^{-1} \\circ f</m>.</p>\n            </statement>\n            <!-- commented out for testing, so that only even hints, answers, solutions may appear in the \"solutions\" -->\n            <!-- <hint>\n                <p><m>f^{-1}(x) = (x+1)/(x-1)</m>.</p>\n            </hint> -->\n        </exercise>\n\n        <exercise number=\"24\">\n            <statement>\n                <p>Let <m>f: X \\rightarrow Y</m> be a map with <m>A_1, A_2 \\subset X</m> and <m>B_1, B_2 \\subset Y</m>.</p>\n                <ol>\n                    <li><p>Prove <m>f( A_1 \\cup A_2 ) = f( A_1) \\cup f( A_2 )</m>.</p></li>\n                    <li><p>Prove <m>f( A_1 \\cap A_2 ) \\subset f( A_1) \\cap f( A_2 )</m>.  Give an example in which equality fails.</p></li>\n                    <li><p>Prove <m>f^{-1}( B_1 \\cup B_2 ) = f^{-1}( B_1) \\cup f^{-1}(B_2 )</m>, where <md>f^{-1}(B) = \\{ x \\in X : f(x) \\in B \\}.</md></p></li>\n                    <li><p>Prove <m>f^{-1}( B_1 \\cap B_2 ) = f^{-1}( B_1) \\cap f^{-1}( B_2 )</m>.</p></li>\n                    <li><p>Prove <m>f^{-1}( Y \\setminus B_1 ) = X \\setminus f^{-1}( B_1)</m>.</p></li>\n                </ol>\n            </statement>\n            <hint>\n                <p>(a) Let <m>y \\in f(A_1 \\cup A_2)</m>.  Then there exists an <m>x \\in A_1 \\cup A_2</m> such that <m>f(x) = y</m>.  Hence, <m> y \\in f(A_1)</m> or <m>f(A_2) </m>.  Therefore, <m> y \\in f(A_1) \\cup f(A_2)</m>. Consequently, <m> f(A_1 \\cup A_2) \\subset f(A_1) \\cup f(A_2)</m>. Conversely, if <m>y \\in f(A_1) \\cup f(A_2)</m>, then <m> y \\in f(A_1)</m> or <m>f(A_2)</m>.  Hence, there exists an <m>x \\in A_1</m> or there exists an <m>x \\in A_2</m> such that <m>f(x) = y</m>.  Thus, there exists an <m>x \\in A_1 \\cup A_2</m> such that <m>f(x) = y</m>.  Therefore, <m> f(A_1) \\cup f(A_2) \\subset f(A_1 \\cup A_2)</m>, and <m>f(A_1 \\cup A_2) = f(A_1) \\cup f(A_2)</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"25\">\n            <statement>\n                <p>Determine whether or not the following relations are equivalence relations on the given set.  If the relation is an equivalence relation, describe the partition given by it.  If the relation is not an equivalence relation, state why it fails to be one.</p>\n                <ol cols=\"2\">\n                    <li><p><m>x \\sim y</m> in <m>{\\mathbb R}</m> if <m>x \\geq y</m></p></li>\n                    <li><p><m>m \\sim n</m> in <m>{\\mathbb Z}</m> if <m>mn &gt; 0</m></p></li>\n                    <li><p><m>x \\sim y</m> in <m>{\\mathbb R}</m> if <m>|x - y| \\leq 4</m></p></li>\n                    <li><p><m>m \\sim n</m> in <m>{\\mathbb Z}</m> if <m>m \\equiv n \\pmod{6}</m></p></li>\n                </ol>\n            </statement>\n            <!-- commented out for testing, so that only even hints, answers, solutions may appear in the \"solutions\" -->\n            <!-- <hint>\n                <p>(a) NThe relation fails to be symmetric. (b) The relation is not reflexive, since 0 is not equivalent to itself. (c) The relation is not transitive.</p>\n            </hint> -->\n        </exercise>\n\n        <exercise number=\"26\">\n            <statement>\n                <p>Define a relation <m>\\sim</m> on <m>{\\mathbb R}^2</m> by stating that <m>(a, b) \\sim (c, d)</m> if and only if <m>a^2 + b^2 \\leq c^2 + d^2</m>. Show that <m>\\sim</m> is reflexive and transitive but not symmetric.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"27\">\n            <statement>\n                <p>Show that an <m>m \\times n</m> matrix gives rise to a well-defined  map from <m>{\\mathbb R}^n</m> to <m>{\\mathbb R}^m</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise number=\"28\">\n            <statement>\n                <p>Find the error in the following argument by providing a counterexample. <q>The reflexive property is redundant in the axioms for an equivalence relation.  If <m>x \\sim y</m>, then <m>y \\sim x</m> by the symmetric property.  Using the transitive property, we can deduce that <m>x \\sim x</m>.</q> </p>\n            </statement>\n            <hint>\n                <p>Let <m>X = {\\mathbb N} \\cup \\{ \\sqrt{2}\\, \\}</m> and define <m>x \\sim y</m> if <m>x + y \\in {\\mathbb N}</m>.</p>\n            </hint>\n        </exercise>\n\n        <exercise number=\"29\">\n            <title>Projective Real Line</title>\n            <statement>\n                <p>Define a relation on <m>{\\mathbb R}^2 \\setminus  \\{ (0,0) \\}</m> by letting <m>(x_1, y_1) \\sim (x_2, y_2)</m> if there exists a nonzero real number <m>\\lambda</m> such that <m>(x_1, y_1)  = ( \\lambda x_2, \\lambda y_2)</m>.  Prove that <m>\\sim</m> defines an equivalence relation on <m>{\\mathbb R}^2 \\setminus (0,0)</m>.  What are the corresponding  equivalence classes?  This equivalence relation defines the projective line, denoted by  <m>{\\mathbb P}({\\mathbb R}) </m>, which is very important in geometry.</p>\n            </statement>\n        </exercise>\n    </subexercises>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/ext/datafiles/stackoverflow.csv",
    "content": "Respondent|Country|JobSatisfaction|UndergradMajor|ConvertedSalary|Exercise|Gender|RaceEthnicity|EducationParents|HoursOutside|Age|LastNewJob|LanguageWorkedWith\n51900|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|94455.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;Objective-C;PHP;Swift;HTML;CSS\n95836|Argentina|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|45600.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;CoffeeScript;JavaScript;Ruby;HTML;CSS;Bash/Shell\n51710|Germany|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|807756.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Python;TypeScript;HTML;Bash/Shell\n44125|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|175000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;Python\n35167|United Kingdom|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|90288.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Go;JavaScript;Ruby;HTML;CSS\n31721|Japan|Slightly dissatisfied|Information systems, information technology, or system administration|77433.0|3 - 4 times per week|Male|East Asian|They never completed any formal education|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP\n36729|Brazil|Moderately dissatisfied|Computer science, computer engineering, or software engineering|16848.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n38620|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|73433.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n54695|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;Python;SQL\n22810|Turkey|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|25428.0|I don't typically exercise|Male|Middle Eastern|Primary/elementary school|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#\n6289|Germany|Extremely satisfied|Information systems, information technology, or system administration|79552.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;HTML\n48220|Turkey|Moderately dissatisfied|Computer science, computer engineering, or software engineering|12720.0|1 - 2 times per week|Male|Middle Eastern|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n72519|Belgium|Extremely satisfied|Information systems, information technology, or system administration|44064.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C#;Erlang;Haskell;Java;JavaScript;Matlab;Objective-C;PHP;Python;R;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n99498|Estonia|Slightly satisfied|Computer science, computer engineering, or software engineering|32316.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;SQL;HTML;CSS\n42989|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|57170.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;CoffeeScript;F#;JavaScript;SQL;VB.NET;HTML;CSS;Bash/Shell\n75468|Ukraine|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|6684.0|Daily or almost every day|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n4814|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|50000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;JavaScript;PHP;Python;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n62436|Argentina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|27336.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Python;HTML;Bash/Shell\n54029|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|115000.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Java;Bash/Shell\n9393|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|Python;SQL;VB.NET;Visual Basic 6\n80650|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|73576.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Groovy;Java;JavaScript;Python;Kotlin;Delphi/Object Pascal;HTML;CSS\n1105|Switzerland|Extremely satisfied|Computer science, computer engineering, or software engineering|99056.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;Go;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n20184|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|67313.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n64870|France|Extremely satisfied|Mathematics or statistics|61194.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Matlab;Python;HTML;CSS\n50097|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;HTML;CSS;Bash/Shell\n45899|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|83000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|JavaScript;Objective-C;Python;Swift;HTML;CSS\n1862|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|71597.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;Java;JavaScript;HTML\n41764|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|146000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Erlang;JavaScript;Ruby;HTML;CSS\n566|Canada|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|1000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Go;JavaScript;PHP;SQL;HTML;CSS\n86353|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|34726.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;SQL;HTML;CSS\n47618|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|57400.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n49562|Mexico|Slightly dissatisfied|Information systems, information technology, or system administration|22560.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n98428|Philippines|Slightly dissatisfied|Computer science, computer engineering, or software engineering|119088.0|3 - 4 times per week|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;Java;JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n97868|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|67313.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#\n35152|Netherlands|Moderately dissatisfied|Web development or web design|58752.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n20771|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|26513.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n25005|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|50000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;CoffeeScript;Java;JavaScript;SQL;HTML;CSS\n60393|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|115162.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;Python;Rust\n43413|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|62486.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Julia;Bash/Shell\n4998|Argentina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|23500.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n20573|Qatar|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n69177|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C++\n40065|Sri Lanka|Slightly satisfied|Information systems, information technology, or system administration|12000.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;HTML;CSS\n58855|United States|Extremely satisfied|Information systems, information technology, or system administration|60000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;TypeScript;HTML;CSS\n51948|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|110000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;CoffeeScript;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n62327|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|44916.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n84278|Russian Federation|Slightly satisfied|Information systems, information technology, or system administration|25476.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Python;Bash/Shell\n16749|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|143328.0|Daily or almost every day|Female;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Haskell;Java;JavaScript;TypeScript;Ocaml;HTML;CSS;Bash/Shell\n100350|The former Yugoslav Republic of Macedonia|Slightly satisfied|Computer science, computer engineering, or software engineering|7152.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C++;C#;F#;Java;SQL;CSS\n71690|Canada|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|72469.0|3 - 4 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;HTML;CSS;Bash/Shell\n6329|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|72469.0|1 - 2 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;HTML;CSS\n76220|United Kingdom|Extremely dissatisfied|Computer science, computer engineering, or software engineering|48616.0|1 - 2 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n21455|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|70000.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;CoffeeScript;Groovy;Java;JavaScript;Objective-C;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n26541|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|440592.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;SQL;HTML;CSS\n5282|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|70368.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n1859|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|82890.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n94909|Mexico|Extremely satisfied|Computer science, computer engineering, or software engineering|19980.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n91689|Netherlands|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|44064.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n62081|Netherlands|Extremely satisfied|Mathematics or statistics|41124.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n15965|Germany|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|67313.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|35 - 44 years old|Less than a year ago|JavaScript;Ruby;VBA\n62544|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|12396.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;Python;Ruby;SQL;TypeScript;Visual Basic 6;HTML;CSS;Bash/Shell\n92573|Japan|Slightly dissatisfied|Computer science, computer engineering, or software engineering|36015.0|Daily or almost every day|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|18 - 24 years old|Less than a year ago|C#;Java;SQL\n55775|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|35000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|I've never had a job|C#;Java;JavaScript;Python;HTML;CSS\n60088|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|50005.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n83226|Israel|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|94788.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Java;JavaScript;TypeScript;HTML;CSS\n85616|Sweden|Moderately dissatisfied|Computer science, computer engineering, or software engineering|68868.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Groovy;Java;Python\n19271|Sri Lanka|Moderately satisfied|Information systems, information technology, or system administration|11076.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;JavaScript;Objective-C;PHP;Swift;Kotlin;HTML;CSS\n20776|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|120000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n61323|India|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|150288.0|I don't typically exercise|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Objective-C;Swift;TypeScript;HTML;CSS\n92023|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|72209.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;Python;Bash/Shell\n29397|New Zealand|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|1000000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Perl;Python;SQL;VBA;HTML;Bash/Shell\n22450|Germany|Slightly satisfied|Mathematics or statistics|44060.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;Matlab;PHP;Python;R;HTML;CSS\n32148|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|58410.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n79753|United Kingdom|Neither satisfied nor dissatisfied|Web development or web design|41671.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Objective-C;Python;Swift;TypeScript;HTML;CSS;Bash/Shell\n96505|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|137000.0|1 - 2 times per week|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n3462|United Kingdom|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|83342.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Groovy;Java;Python;Ruby;Bash/Shell\n86789|Belgium|Extremely satisfied|Computer science, computer engineering, or software engineering|26436.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;Objective-C;PHP;SQL;HTML;Bash/Shell\n77857|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|260000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n34236|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|55 - 64 years old|More than 4 years ago|C++;C#;Java;JavaScript;SQL;HTML;CSS\n55287|United States|Slightly satisfied|Mathematics or statistics|145000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|Java;Python;Scala;SQL;Bash/Shell\n89804|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|114000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n42366|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|9552.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;VBA;VB.NET;HTML;CSS\n4505|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n34225|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|50005.0|Daily or almost every day|Male;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n52702|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|57576.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;SQL;HTML;CSS\n50169|United Kingdom|Moderately dissatisfied|Web development or web design|241692.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS\n69694|United States|Slightly satisfied|I never declared a major|65000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;Go;Java;SQL;VB.NET;HTML;CSS;Bash/Shell\n83115|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|66674.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;Swift;Kotlin;Bash/Shell\n40830|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|45000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;Objective-C;SQL;Swift;HTML;CSS\n71351|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|83000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;Visual Basic 6;Bash/Shell\n19495|Belgium|Moderately satisfied|Computer science, computer engineering, or software engineering|30840.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n9180|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|67977.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n101526|Lithuania|Moderately dissatisfied|Computer science, computer engineering, or software engineering|44064.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;CSS;Bash/Shell\n34897|Serbia|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|11784.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Swift\n28328|Belgium|Slightly satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n14652|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|85671.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;Swift;HTML;CSS\n14638|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|112000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;Python;SQL;Kotlin;HTML;CSS;Bash/Shell\n31224|Australia|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|53582.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n90398|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|59880.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n73197|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java\n61385|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|45838.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;JavaScript;HTML;CSS;Bash/Shell\n71885|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|79552.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;Lua;Python;R;SQL;HTML;CSS;Bash/Shell\n89480|Canada|Neither satisfied nor dissatisfied|A business discipline (ex. accounting, finance, marketing)|40261.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS\n57133|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|75000.0|3 - 4 times per week|Female|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;JavaScript;HTML;CSS;Bash/Shell\n50575|United Kingdom|Moderately satisfied|Information systems, information technology, or system administration|62507.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n9757|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|73619.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n7628|France|Extremely dissatisfied|Computer science, computer engineering, or software engineering|110149.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;HTML;CSS\n83801|Netherlands|Slightly satisfied|Information systems, information technology, or system administration|61194.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;SQL\n99551|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|70138.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;Objective-C;Python;Swift;TypeScript;Kotlin\n13809|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|61194.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n45507|Denmark|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|77416.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n57858|Poland|Moderately dissatisfied|A humanities discipline (ex. literature, history, philosophy)|73428.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS\n14173|Pakistan|Slightly dissatisfied|Computer science, computer engineering, or software engineering|12000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;JavaScript;Matlab;Objective-C;PHP;SQL;Swift\n87452|United Kingdom|Moderately satisfied|I never declared a major|566724.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Python;VB.NET;Delphi/Object Pascal;HTML;CSS\n8752|United States|Extremely satisfied|Web development or web design|70000.0|3 - 4 times per week|Male|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n60397|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|2000000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;Go;Java;JavaScript;Python;Scala;SQL\n27294|France|Moderately satisfied|Computer science, computer engineering, or software engineering|48955.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n21557|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|65000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Python;HTML\n90588|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|152000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Groovy;Java;JavaScript;SQL;Bash/Shell\n74127|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;Python;Ruby;SQL;TypeScript;Kotlin;Ocaml;HTML;CSS;Bash/Shell\n76121|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|74316.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n17443|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|80000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|PHP;SQL;HTML;Bash/Shell\n17481|Netherlands|Slightly dissatisfied|Computer science, computer engineering, or software engineering|22030.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;JavaScript;Python;HTML;CSS\n101129|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|30597.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Go;Java;JavaScript;R;Rust;Scala;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n73468|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|75880.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C;C++;C#;JavaScript;PHP;SQL;HTML;Bash/Shell\n27037|Denmark|Moderately satisfied|Computer science, computer engineering, or software engineering|78900.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;TypeScript\n46999|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;F#;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n59557|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|85000.0|3 - 4 times per week|Male|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java;Python;R;SQL;VBA\n36288|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|48000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Matlab;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n34997|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|48300.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n96751|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|100000.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;VBA;HTML;CSS\n59125|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|50179.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n42688|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|40000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;Java;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n50437|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|77100.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;Bash/Shell\n13782|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|123000.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;Kotlin\n27915|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|108000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;JavaScript;SQL;HTML;CSS;Bash/Shell\n69925|Canada|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|72469.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Ruby;HTML;CSS\n96804|Brazil|Extremely satisfied|Information systems, information technology, or system administration|30504.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;Java;PHP\n25904|United States|Extremely dissatisfied|Web development or web design|42000.0|Daily or almost every day|Female|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n31547|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|104000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;F#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n25690|Finland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|64620.0|Daily or almost every day|Male|White or of European descent|Primary/elementary school|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;SQL\n34181|United States|Extremely satisfied|Information systems, information technology, or system administration|28000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n76968|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|97826.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS\n68780|Australia|Moderately satisfied|Mathematics or statistics|71976.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|More than 4 years ago|C;C++;Python\n47710|United Kingdom|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|194466.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;SQL\n74024|Russian Federation|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|24000.0|Daily or almost every day|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|PHP;Python;SQL;Bash/Shell\n50677|China|Moderately dissatisfied|Computer science, computer engineering, or software engineering|37400.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;Lua;Rust;Bash/Shell\n78292|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|21133.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;TypeScript;CSS\n56626|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|50005.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n9541|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|23304.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n17867|Pakistan|Moderately satisfied|Computer science, computer engineering, or software engineering|8136.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Objective-C;Python;Swift\n6115|India|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|14089.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n233|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|105000.0|Daily or almost every day|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;HTML;CSS\n58499|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|85000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n80960|Bangladesh|Extremely satisfied|Computer science, computer engineering, or software engineering|48000.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS\n25948|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|105000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n83560|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|48955.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n36407|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|68868.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C++;Python;Bash/Shell\n53292|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|126000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;PHP;Python;Bash/Shell\n69311|Sweden|Moderately dissatisfied|Computer science, computer engineering, or software engineering|682692.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n62109|Georgia|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|29220.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;SQL;Kotlin;HTML;CSS;Bash/Shell\n38148|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;HTML;CSS\n48896|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Bash/Shell\n632|United States|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|75000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n78373|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|135000.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|C;C++;Go;Java;JavaScript;Julia;Lua;Perl;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n78062|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|130000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;R;SQL;HTML;CSS\n43389|Romania|Moderately satisfied|Information systems, information technology, or system administration|17628.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS\n51075|South Africa|Moderately satisfied|Web development or web design|10872.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n58655|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|2000000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;HTML;CSS\n45914|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|87800.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Python;HTML;CSS\n54054|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|93000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++\n96458|Lithuania|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|51408.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;Go;Groovy;Java;JavaScript;Lua;Perl;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n68501|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|400000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Matlab;Python;R;HTML;Bash/Shell\n27846|United Kingdom|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|500052.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Python;Scala;SQL;Bash/Shell\n71610|India|Slightly satisfied|Computer science, computer engineering, or software engineering|11268.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;VB.NET;HTML;CSS;Bash/Shell\n43064|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|90000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Erlang;JavaScript;PHP;SQL;Swift;HTML;CSS;Bash/Shell\n79434|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;TypeScript;HTML;CSS\n92105|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|100000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|JavaScript;Ruby;TypeScript\n91341|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|916764.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;PHP;Python;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n71899|United States|Moderately satisfied|Information systems, information technology, or system administration|59000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;PHP;R;SQL;HTML;CSS;Bash/Shell\n2243|India|Extremely satisfied|Computer science, computer engineering, or software engineering|11724.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|Less than a year ago|Java;JavaScript;Python;Scala;Kotlin;HTML;CSS\n42435|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|115000.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n43236|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|50000.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;HTML;CSS\n99014|Portugal|Moderately dissatisfied|Computer science, computer engineering, or software engineering|39164.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;SQL\n84028|India|Moderately satisfied|Computer science, computer engineering, or software engineering|15654.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS;Bash/Shell\n63602|Spain|Moderately dissatisfied|Computer science, computer engineering, or software engineering|70350.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#\n65984|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|82000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n41064|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|25000.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;VBA;HTML;CSS;Bash/Shell\n19829|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|12000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C++;C#;Java;JavaScript;Python;R;SQL;HTML;CSS\n36969|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Erlang;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n48326|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|650076.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Matlab;Python;Bash/Shell\n9434|Poland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|24696.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n25721|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|24478.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;VB.NET;Visual Basic 6;HTML;CSS\n12916|Belarus|Moderately satisfied|Computer science, computer engineering, or software engineering|49308.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n81997|Brazil|Extremely satisfied|Information systems, information technology, or system administration|22452.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n97467|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|85000.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS;Bash/Shell\n91866|Bulgaria|Moderately satisfied|Computer science, computer engineering, or software engineering|9756.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|SQL;Delphi/Object Pascal\n48114|South Africa|Moderately satisfied|Computer science, computer engineering, or software engineering|29664.0|I don't typically exercise|Male|Black or of African descent|Primary/elementary school|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;Perl;PHP;SQL;HTML;CSS\n94729|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|74856.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|PHP;Delphi/Object Pascal\n70724|Brazil|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|6360.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;PHP;HTML;CSS\n79053|Czech Republic|Extremely satisfied|Computer science, computer engineering, or software engineering|73428.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;Go;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n3034|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|60216.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;Matlab;Objective-C;PHP;SQL;Delphi/Object Pascal;HTML;CSS\n40519|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|72000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|Assembly;C;C#;VB.NET\n26919|Denmark|Slightly dissatisfied|Computer science, computer engineering, or software engineering|87768.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;TypeScript;HTML;CSS\n90797|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|153000.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C;C++;C#;JavaScript;Matlab;Python;SQL;Bash/Shell\n73676|India|Moderately satisfied|Computer science, computer engineering, or software engineering|3984.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;JavaScript;Swift;TypeScript;HTML;CSS\n29857|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|55020.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n91701|France|Moderately satisfied|Computer science, computer engineering, or software engineering|47736.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;Python;Scala;SQL;HTML\n99652|Germany|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|20556.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Java;Matlab;Python;SQL;VBA\n7328|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n73680|Ireland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|352476.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Haskell;JavaScript;PHP;Python;SQL;HTML;CSS\n50527|India|Moderately satisfied|Computer science, computer engineering, or software engineering|4128.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Java;JavaScript;HTML;CSS\n979|Russian Federation|Slightly satisfied|Mathematics or statistics|28800.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;PHP;Python;SQL;Visual Basic 6;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n42592|Switzerland|Moderately satisfied|Computer science, computer engineering, or software engineering|118872.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Java;JavaScript;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n97920|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|54755.0|Daily or almost every day|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python\n20179|Hong Kong (S.A.R.)|Moderately satisfied|Computer science, computer engineering, or software engineering|76754.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Python\n20072|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|70000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;HTML;CSS\n51748|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|102000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;SQL\n80139|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|141960.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n60418|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;HTML;CSS;Bash/Shell\n27251|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|36115.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Go;JavaScript;PHP;Python;Rust;SQL;HTML;CSS;Bash/Shell\n78798|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|79562.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Assembly;Perl;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n32731|United States|Moderately satisfied|Mathematics or statistics|105000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n96407|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|96686.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;Groovy;Java;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n28910|Singapore|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|59052.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;Python\n92718|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n28835|Mexico|Extremely satisfied|Computer science, computer engineering, or software engineering|103140.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;SQL;Delphi/Object Pascal\n82654|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|144000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Matlab;HTML;CSS;Bash/Shell\n74770|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|125000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Groovy;JavaScript;PHP;Python;Ruby;SQL;TypeScript;VB.NET;HTML;Bash/Shell\n21127|Germany|Slightly satisfied|Mathematics or statistics|29376.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Java;JavaScript;Python;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n60626|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|97233.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Ruby;SQL;HTML\n11953|Turkey|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|25428.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|C#;CoffeeScript;Groovy;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n52894|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|110000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n56008|United States|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|55000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n12951|India|Slightly satisfied|Computer science, computer engineering, or software engineering|25047.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Python\n87993|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|39699.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;Python;SQL\n45781|Netherlands|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|53851.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n68304|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS\n36223|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|160000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Go;Java;JavaScript;Objective-C;R;Ruby;Rust;Scala;HTML;CSS\n13353|France|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61194.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;Java;Bash/Shell\n1422|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|140800.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;Scala\n27013|Mexico|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|20000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C#;JavaScript;SQL;HTML;CSS\n81806|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|152794.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|Python\n37503|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|86120.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;Bash/Shell\n64322|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|115000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Go;JavaScript;PHP;TypeScript;HTML;CSS;Bash/Shell\n74894|Russian Federation|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|33972.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n16235|Argentina|Extremely satisfied|Computer science, computer engineering, or software engineering|38136.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Python;R;SQL;HTML;Bash/Shell\n13398|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Assembly;C;C++;CoffeeScript;Clojure;JavaScript;Lua;Python;Rust;HTML;CSS;Bash/Shell\n75170|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|48313.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n27884|Poland|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|22056.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Perl;SQL\n87973|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|140000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript\n62138|United States|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|70000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;Lua;PHP;Python\n50736|Belarus|Extremely satisfied|Information systems, information technology, or system administration|27528.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;Bash/Shell\n95007|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|95000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;CoffeeScript;JavaScript;TypeScript;HTML;CSS\n19505|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|95000.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n49495|New Zealand|Moderately satisfied|Information systems, information technology, or system administration|1000000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C#;Java;JavaScript;Objective-C;Swift;HTML;CSS\n38099|United Kingdom|Moderately satisfied|Information systems, information technology, or system administration|41671.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n48266|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|126000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;TypeScript;HTML;CSS\n91534|China|Moderately satisfied|Computer science, computer engineering, or software engineering|32725.0|1 - 2 times per week|Male|East Asian|Primary/elementary school|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;SQL;HTML;CSS\n8104|Brazil|Extremely dissatisfied|Computer science, computer engineering, or software engineering|11232.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Objective-C;SQL;TypeScript;HTML;CSS;Bash/Shell\n47331|Serbia|Slightly satisfied|Computer science, computer engineering, or software engineering|70500.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|C++;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n15819|India|Moderately satisfied|Computer science, computer engineering, or software engineering|7827.0|I don't typically exercise|Male|South Asian|Primary/elementary school|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript\n15957|Czech Republic|Extremely satisfied|Computer science, computer engineering, or software engineering|20268.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;PHP;SQL;HTML;CSS\n54501|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|140000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n8734|Lithuania|Extremely satisfied|Computer science, computer engineering, or software engineering|23796.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n43219|New Zealand|Moderately satisfied|Computer science, computer engineering, or software engineering|631452.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Go;JavaScript;Python;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n73138|India|Moderately satisfied|Computer science, computer engineering, or software engineering|6262.0|Daily or almost every day|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Java;JavaScript;SQL;HTML;CSS\n24294|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|195000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Python;Scala;SQL\n161|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n100021|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|58500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;Java;JavaScript;PHP;Python;SQL;HTML;Bash/Shell\n12271|Germany|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|63642.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Erlang;Go;Java;JavaScript;Lua;PHP;Python;Ruby;Scala;Cobol;HTML;CSS;Bash/Shell\n95493|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|36720.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Python;Bash/Shell\n88632|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|107152.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n13279|Romania|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|33780.0|Daily or almost every day|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n76677|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|30708.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;Matlab;Python;R;VBA;HTML;CSS\n87157|Portugal|Moderately satisfied|Computer science, computer engineering, or software engineering|8808.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Clojure;Haskell;JavaScript;Python;HTML;CSS;Bash/Shell\n24815|United Kingdom|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|69452.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;Scala;SQL\n86897|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|41671.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|C#;F#;JavaScript;PHP;Python;SQL;HTML;CSS\n21899|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|89000.0|1 - 2 times per week|Female|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n76693|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|64417.0|I don't typically exercise|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n23199|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|108000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C++;Objective-C;PHP;Python\n97499|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|109000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Objective-C;Scala;SQL;HTML;CSS\n71741|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|130000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Python;Scala;TypeScript\n12770|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|101400.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|More than 4 years ago|Assembly;C;Perl;Python;Bash/Shell\n1036|Pakistan|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|2172.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n25907|United States|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|85000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;R;SQL;Delphi/Object Pascal\n66091|United Kingdom|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|26808.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Haskell;Python\n66572|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|52933.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|More than 4 years ago|C++;C#;CoffeeScript;Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n28783|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Female|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|HTML;CSS\n25944|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|36115.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n7957|France|Moderately satisfied|Computer science, computer engineering, or software engineering|22032.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|55 - 64 years old|Less than a year ago|C;C++;Java;JavaScript;Objective-C;PHP;Python;SQL;Visual Basic 6;HTML;CSS;Bash/Shell\n78262|Switzerland|Moderately satisfied|Computer science, computer engineering, or software engineering|93842.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;Go;Perl;Python;SQL;Bash/Shell\n35444|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|1 - 2 times per week|Male|Black or of African descent;East Asian;Hispanic or Latino/Latina|Associate degree|3 - 4 hours|45 - 54 years old|More than 4 years ago|C#;Java;JavaScript;Perl;Visual Basic 6;HTML;Bash/Shell\n62429|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|883428.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n97893|Indonesia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|111880.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Scala;SQL;Kotlin;HTML;CSS\n97450|India|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|5640.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|I've never had a job|Java;JavaScript;PHP;Python;SQL;HTML;CSS\n94978|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|48313.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;Delphi/Object Pascal;HTML;CSS\n48989|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|13619.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n54953|Italy|Slightly dissatisfied|Mathematics or statistics|381852.0|I don't typically exercise|Female|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Less than a year ago|Python;R;Scala;SQL\n63438|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|24000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Python;SQL;Bash/Shell\n21169|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|38000.0|I don't typically exercise|Male|East Asian;South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;JavaScript;Python;HTML\n81659|Chile|Moderately dissatisfied|Information systems, information technology, or system administration|9912.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Over 4 hours|18 - 24 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;SQL;HTML;CSS\n20022|United States|Slightly dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|92500.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;SQL;TypeScript\n23928|New Zealand|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|74911.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;Groovy;Java;SQL;Bash/Shell\n73270|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n58397|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|38893.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;Go;Haskell;Java;JavaScript;PHP;Python;Scala;SQL;HTML;CSS;Bash/Shell\n41705|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|74856.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;Kotlin;Delphi/Object Pascal;HTML;CSS\n29213|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|40261.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n16141|Argentina|Slightly dissatisfied|Information systems, information technology, or system administration|50844.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n7888|Iran, Islamic Republic of...|Moderately dissatisfied|Computer science, computer engineering, or software engineering|21648.0|1 - 2 times per week|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Objective-C;Python;Swift\n42002|Germany|Extremely satisfied|Information systems, information technology, or system administration|73428.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;JavaScript;Python;R;Ruby;Rust;Scala;SQL;Swift;HTML;CSS;Bash/Shell\n19662|Taiwan|Slightly satisfied|Computer science, computer engineering, or software engineering|22368.0|I don't typically exercise|Male|East Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;Ruby\n64228|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|49404.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|Go;Groovy;Java;JavaScript;Python;Scala;Kotlin;HTML;Bash/Shell\n79523|Germany|Moderately satisfied|Mathematics or statistics|73433.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;PHP;Python;SQL;Bash/Shell\n98224|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|77786.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C#\n88422|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|106000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n75860|Austria|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|22032.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Matlab;R\n88525|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|145000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n75420|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|130000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n71276|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|224550.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|C#;F#;SQL;VB.NET;Bash/Shell\n65182|Belarus|Slightly dissatisfied|Computer science, computer engineering, or software engineering|11748.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#\n37265|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|52404.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;Scala\n2146|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|73000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;Ruby;SQL;VB.NET;HTML;CSS;Bash/Shell\n82663|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|96000.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;Lua;Perl;PHP;Python;R;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n62307|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C#;SQL\n62113|Colombia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|42000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n33973|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|72000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Objective-C;Swift\n76763|Czech Republic|Extremely satisfied|Computer science, computer engineering, or software engineering|40536.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;Python;SQL\n25030|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|128000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS\n20403|South Africa|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|9888.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n40920|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|160000.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;F#;JavaScript;SQL;CSS\n94403|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|67560.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n2697|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|50769.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|Java;Bash/Shell\n69237|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|25047.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#\n100877|United States|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|135000.0|Daily or almost every day|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Python\n38373|Canada|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|72469.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n30518|Thailand|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|39492.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;TypeScript;HTML;CSS\n14866|India|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|35379.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n83946|Egypt|Moderately satisfied|Computer science, computer engineering, or software engineering|1020.0|I don't typically exercise|Male|Middle Eastern|Associate degree|3 - 4 hours|18 - 24 years old|Less than a year ago|Assembly;C++;C#;Groovy;Java;JavaScript;R;SQL;HTML;CSS\n15325|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;Kotlin\n83054|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|35292.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;SQL;HTML;CSS;Bash/Shell\n32758|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|20664.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n57764|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|125000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Ruby;Rust;Bash/Shell\n85168|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|93000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n16206|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Java;JavaScript;TypeScript;HTML;CSS\n54436|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|82612.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS\n40563|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n46381|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|59988.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n66863|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|95000.0|3 - 4 times per week|Female|Black or of African descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;Python\n1668|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|61194.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;SQL\n9106|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n97921|Azerbaijan|Slightly satisfied|Computer science, computer engineering, or software engineering|44064.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Java;SQL\n41555|Italy|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|183582.0|3 - 4 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|65 years or older|More than 4 years ago|Assembly;C++;C#;Python;SQL;VBA;VB.NET;Visual Basic 6;Cobol;HTML\n56808|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|39164.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;C#;JavaScript;HTML;CSS;Bash/Shell\n10539|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|156000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n45687|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|94000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n8628|Germany|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|17628.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C#\n42827|United Kingdom|Moderately satisfied|Mathematics or statistics|48616.0|Daily or almost every day|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|R;SQL;VBA\n64556|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|52089.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Objective-C;SQL;Swift;Bash/Shell\n15629|United Kingdom|Slightly satisfied|Web development or web design|34726.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Go;Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n28282|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|30597.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n16317|Bosnia and Herzegovina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|15024.0|3 - 4 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;SQL;TypeScript;HTML;CSS\n78299|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|80000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Clojure;JavaScript;SQL;CSS;Bash/Shell\n7335|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|125014.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n66330|Romania|Extremely satisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n37599|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|36720.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n565|Latvia|Moderately satisfied|Computer science, computer engineering, or software engineering|31664.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n45923|Israel|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|112344.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|C#;Java\n46902|South Africa|Moderately satisfied|Computer science, computer engineering, or software engineering|23916.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n42928|Netherlands|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|36716.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Python\n26295|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14089.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;SQL;Visual Basic 6;HTML;CSS\n77641|United States|Moderately satisfied|Mathematics or statistics|95000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|JavaScript;Python;SQL\n31097|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|35559.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C++;Java;JavaScript;PHP;SQL\n10322|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n35045|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;VB.NET;HTML;CSS\n51528|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|23482.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;SQL\n29004|Slovakia|Moderately satisfied|Computer science, computer engineering, or software engineering|35244.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;HTML;Bash/Shell\n83837|India|Moderately satisfied|Computer science, computer engineering, or software engineering|13463.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;Matlab\n73897|United States|Moderately satisfied|Information systems, information technology, or system administration|60000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Assembly;C++;C#;Java;JavaScript;Matlab;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n63371|Estonia|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|29376.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;JavaScript;PHP;Python;R;Swift;HTML;CSS\n60107|Poland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|31764.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;F#;Haskell;Java;JavaScript;Python;SQL;TypeScript;Kotlin;HTML;CSS\n49408|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|30559.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;SQL;Cobol;Bash/Shell\n80854|United States|Moderately dissatisfied|I never declared a major|120000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|55 - 64 years old|Less than a year ago|Java;JavaScript;Objective-C;Ruby;Swift\n63075|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|165000.0|3 - 4 times per week|Male|East Asian;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|CoffeeScript;Groovy;Java;JavaScript;Python;SQL;Kotlin;HTML;CSS;Bash/Shell\n83339|Iran, Islamic Republic of...|Moderately satisfied|Web development or web design|22860.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|Middle Eastern|Associate degree|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Delphi/Object Pascal;HTML;CSS\n86784|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|28584.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Objective-C;SQL;TypeScript;HTML;CSS\n51733|Canada|Extremely satisfied|Mathematics or statistics|79555.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;Perl;SQL;HTML;CSS\n55963|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|80000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C;C#;JavaScript;Objective-C;Perl;PHP;Python;R;SQL;HTML;Bash/Shell\n13843|Russian Federation|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|16140.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Matlab;VBA;VB.NET;Visual Basic 6;Bash/Shell\n47935|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;Rust;SQL\n13722|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|60948.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;JavaScript;SQL;HTML;CSS\n88204|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|21300.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Java;JavaScript;Python;SQL;VB.NET;HTML;CSS\n60859|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|538968.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;JavaScript;SQL;TypeScript;HTML;CSS\n37586|France|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;F#;Java;JavaScript;SQL;HTML;CSS\n38441|Colombia|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|13500.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;PHP;SQL;HTML;CSS\n56436|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|483384.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n46408|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|45000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;C#;JavaScript;Ruby;SQL;HTML;CSS\n33179|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|48955.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;Go;JavaScript;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n86764|Italy|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|23496.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java\n70560|Ireland|Extremely satisfied|Web development or web design|1000000.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Ruby;SQL;Swift;HTML;CSS\n72249|Greece|Moderately dissatisfied|Web development or web design|14688.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n63834|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|720000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n5935|New Zealand|Moderately satisfied|Computer science, computer engineering, or software engineering|69430.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n63942|United States|Extremely satisfied|Mathematics or statistics|105000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n93367|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|Over 4 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift;Kotlin;HTML;CSS\n55870|Sweden|Slightly dissatisfied|Web development or web design|65868.0|Daily or almost every day|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Objective-C;PHP;Ruby;HTML;CSS;Bash/Shell\n15420|United Kingdom|Extremely dissatisfied|Information systems, information technology, or system administration|41671.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Go;JavaScript;PHP;Python;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n26635|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|I don't typically exercise|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;Python;R;SQL\n92152|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|31309.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript\n85207|Sweden|Moderately satisfied|Information systems, information technology, or system administration|76353.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C++;C#;Java;JavaScript;Objective-C;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n76533|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|95015.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Scala;SQL;Kotlin;HTML;Bash/Shell\n29345|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|46533.0|Daily or almost every day|Male|Native American, Pacific Islander, or Indigenous Australian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;Python;Kotlin\n18706|Iran, Islamic Republic of...|Moderately dissatisfied|Computer science, computer engineering, or software engineering|13320.0|1 - 2 times per week|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;HTML;CSS\n76852|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|0.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Objective-C;PHP;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n74072|United Kingdom|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|51672.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n24638|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|80000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n74593|United States|Moderately dissatisfied|I never declared a major|1800000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;HTML;CSS\n3595|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|48616.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;VB.NET;HTML;CSS;Bash/Shell\n90796|India|Slightly satisfied|Computer science, computer engineering, or software engineering|6012.0|Daily or almost every day|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n14145|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|102500.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;Kotlin;HTML;CSS\n78475|Australia|Moderately satisfied|Information systems, information technology, or system administration|43985.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;VB.NET;CSS\n53176|Australia|Moderately satisfied|Information systems, information technology, or system administration|87971.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n56840|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|70368.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Erlang;Ruby;Scala\n45343|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|111123.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|JavaScript;Python;SQL;VBA;Delphi/Object Pascal\n29200|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|49200.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;JavaScript;Python;HTML;CSS;Bash/Shell\n63063|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|156000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n100663|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|96000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Go;Groovy;Java;JavaScript;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n54808|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|100000.0|Daily or almost every day|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n1997|Germany|Moderately satisfied|Information systems, information technology, or system administration|60216.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;PHP;SQL;HTML;CSS\n30642|Sweden|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|104799.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;R;Scala;SQL;Bash/Shell\n21906|Russian Federation|Slightly dissatisfied|Computer science, computer engineering, or software engineering|17616.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;PHP;SQL;HTML;CSS\n60364|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|36235.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n90384|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|91791.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Groovy;Java;Python;SQL;Kotlin;Bash/Shell\n34114|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|97680.0|I don't typically exercise|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL\n25671|United Kingdom|Slightly satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|66674.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;VBA;Bash/Shell\n70751|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n13064|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n42614|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|9393.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;Groovy;Java;Kotlin\n8260|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|130000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;C#;JavaScript;Matlab;Ruby;SQL;HTML;CSS;Bash/Shell\n81737|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|14988.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#\n73407|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|83800.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n89963|Norway|Slightly dissatisfied|Computer science, computer engineering, or software engineering|79064.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Groovy;Haskell;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n15481|France|Slightly satisfied|Computer science, computer engineering, or software engineering|42836.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML\n69980|United States|Moderately satisfied|Information systems, information technology, or system administration|74000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;SQL;Bash/Shell\n24271|Belgium|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|925248.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n13675|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Haskell;JavaScript;Python;SQL;TypeScript;Kotlin;Ocaml;HTML;CSS;Bash/Shell\n22188|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|39164.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS\n48286|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|500052.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;Matlab;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n89668|Austria|Slightly satisfied|Computer science, computer engineering, or software engineering|39648.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;JavaScript;Lua;PHP;SQL;TypeScript;HTML;CSS\n58671|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|66089.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n84019|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|95015.0|1 - 2 times per week|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Less than a year ago|Clojure;Java;JavaScript;PHP;Ruby;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n29406|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|83224.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;C#\n54802|France|Moderately satisfied|Computer science, computer engineering, or software engineering|807756.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS;Bash/Shell\n8375|Bangladesh|Slightly satisfied|Computer science, computer engineering, or software engineering|30000.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;CoffeeScript;Java;JavaScript;Matlab;Perl;PHP;Python;Ruby;SQL;Swift;TypeScript;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n101245|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|Python;Ruby;Rust;Bash/Shell\n42802|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n29567|South Africa|Slightly satisfied|Computer science, computer engineering, or software engineering|48.0|Daily or almost every day|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C#;JavaScript;SQL;TypeScript;HTML;CSS\n86256|United States|Extremely satisfied|I never declared a major|125000.0|Daily or almost every day|Male|Hispanic or Latino/Latina;Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Ruby;HTML;CSS\n24541|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|111963.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C++;C#;JavaScript;Lua;SQL;TypeScript;HTML;CSS\n7596|Finland|Extremely satisfied|Computer science, computer engineering, or software engineering|69761.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript\n28442|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|108000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|CoffeeScript;JavaScript;PHP;Python;SQL;HTML;CSS\n70216|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Ruby;Swift;HTML;CSS\n74451|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|15811.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Matlab;PHP;Python;SQL\n3805|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|48955.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;Java;JavaScript;Objective-C;Python;R;Swift;Visual Basic 6;HTML;CSS;Bash/Shell\n61154|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|110000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;Matlab;Python\n8347|Switzerland|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|250248.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Python;SQL;HTML;Bash/Shell\n68949|France|Moderately satisfied|Computer science, computer engineering, or software engineering|51408.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;JavaScript;PHP;Ruby;HTML;CSS\n10018|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|10400.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript\n95677|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|102000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n36277|France|Moderately satisfied|Computer science, computer engineering, or software engineering|56298.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Python\n2255|Dominican Republic|Slightly satisfied|Computer science, computer engineering, or software engineering|24000.0|3 - 4 times per week|Male|Black or of African descent;Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n66935|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n12339|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|47904.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++;Matlab;Python;HTML;CSS;Bash/Shell\n28876|United Kingdom|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|20836.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n13489|Brazil|Moderately dissatisfied|Computer science, computer engineering, or software engineering|6552.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C#;JavaScript;Python;R;Ruby;HTML;CSS\n9968|Greece|Moderately dissatisfied|Computer science, computer engineering, or software engineering|23496.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript\n75116|Czech Republic|Extremely satisfied|Information systems, information technology, or system administration|69024.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;PHP;Python;SQL;HTML;CSS;Bash/Shell\n17069|Sweden|Moderately satisfied|Mathematics or statistics|52404.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Matlab;Objective-C;Python;SQL;VBA\n87128|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;PHP;HTML;CSS;Bash/Shell\n86670|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|40584.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Matlab;PHP;SQL;TypeScript;HTML;CSS\n75820|Spain|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|30597.0|Daily or almost every day|Female|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|R\n43725|India|Moderately satisfied|Computer science, computer engineering, or software engineering|12524.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;Ruby;SQL;HTML;CSS\n60465|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|1500.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n64424|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|41916.0|I don't typically exercise|Female|East Asian;Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;HTML;CSS;Bash/Shell\n99135|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|91800.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java\n65264|Romania|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|58752.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n95790|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|82000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;SQL;TypeScript;HTML;CSS\n20664|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|56395.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n49222|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|83342.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n71095|Greece|Moderately satisfied|Computer science, computer engineering, or software engineering|33192.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Scala;SQL;HTML;CSS\n3088|Turkey|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|50868.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|JavaScript;R;HTML;CSS\n6575|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|60000.0|Daily or almost every day|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n25531|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|60000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;JavaScript;Python;HTML;CSS\n32882|Poland|Extremely satisfied|Computer science, computer engineering, or software engineering|35292.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;TypeScript;CSS\n23924|Poland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14704.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n68845|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|86000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Perl;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n88454|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|127000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C;C++;C#;Clojure;Go;Groovy;Java;JavaScript;SQL;TypeScript;VB.NET;Visual Basic 6;HTML;Bash/Shell\n13767|Germany|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|14688.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;C#;Matlab;Bash/Shell\n19973|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|100652.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C;C++;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n75213|Switzerland|Slightly satisfied|Computer science, computer engineering, or software engineering|106356.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;Java;JavaScript;PHP;R;SQL;VB.NET;HTML\n74530|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|135000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Go;Python;Ruby;HTML;CSS\n64951|United States|Extremely satisfied|Mathematics or statistics|140000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|65 years or older|More than 4 years ago|C;C++;C#;Java;VB.NET;Delphi/Object Pascal;HTML;CSS\n49683|United Kingdom|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|108345.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;SQL;VB.NET;HTML;CSS\n69835|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n16223|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|15000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n21043|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|132000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;C#;Java;JavaScript;Objective-C;SQL;Swift;VB.NET;HTML;CSS\n93935|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|62412.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Lua\n76975|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|17328.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS\n27005|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|163000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n41122|United States|Moderately satisfied|Mathematics or statistics|65000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;Python;HTML;CSS;Bash/Shell\n93236|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|75880.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java\n64376|Australia|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|63979.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;Lua;Objective-C;PHP;SQL;TypeScript;VBA;VB.NET;HTML;CSS\n22857|Greece|Extremely satisfied|Computer science, computer engineering, or software engineering|73428.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;C#;Groovy;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n13870|Brazil|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|33684.0|I don't typically exercise|Male|Hispanic or Latino/Latina|They never completed any formal education|Over 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;TypeScript;HTML;CSS\n89681|Netherlands|Extremely satisfied|Information systems, information technology, or system administration|66084.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;Objective-C;Perl;PHP;SQL;Swift;VBA;HTML;CSS;Bash/Shell\n65773|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|55562.0|1 - 2 times per week|Male|Middle Eastern|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;Matlab;PHP;Python;SQL;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n24093|Malaysia|Slightly satisfied|Information systems, information technology, or system administration|29640.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS\n14962|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|20292.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n75196|Netherlands|Slightly satisfied|Computer science, computer engineering, or software engineering|65352.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;CoffeeScript;Erlang;Groovy;Java;JavaScript;Matlab;Objective-C;PHP;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n76278|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|44916.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n60180|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|78750.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;SQL;CSS;Bash/Shell\n69084|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|70985.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;SQL;HTML;CSS\n41201|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|58746.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS\n41836|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|109581.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Python;R\n91450|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|93960.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Python\n45100|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|54000.0|3 - 4 times per week|Male|Black or of African descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n35653|Croatia|Moderately satisfied|Mathematics or statistics|29373.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Haskell;Python\n24202|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;SQL;HTML;CSS\n75819|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|74000.0|Daily or almost every day|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Ruby;TypeScript;HTML;CSS;Bash/Shell\n20880|Iceland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|62856.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;C#;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n754|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;Python;VB.NET\n57449|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|21168.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;TypeScript;HTML;CSS;Bash/Shell\n59294|Switzerland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|109483.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;Bash/Shell\n11006|France|Extremely satisfied|Computer science, computer engineering, or software engineering|31821.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n90683|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|170000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;Lua;Matlab;Python;Ruby\n65610|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|59970.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL\n6002|Poland|Moderately satisfied|Information systems, information technology, or system administration|49404.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n48952|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|24478.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;SQL;HTML;CSS\n19805|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|146000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;Go;Java;Perl;Python;SQL;Bash/Shell\n30961|Iran, Islamic Republic of...|Extremely satisfied|Computer science, computer engineering, or software engineering|27636.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;Python;Bash/Shell\n63771|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|55981.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n49234|Jordan|Slightly satisfied|Computer science, computer engineering, or software engineering|15600.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Objective-C;Swift\n89142|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|55000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Lua;Python;Ruby;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n2659|Serbia|Moderately dissatisfied|Computer science, computer engineering, or software engineering|44064.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;Objective-C\n97902|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|8076.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;Python;Scala;HTML;CSS;Bash/Shell\n37626|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|75000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;SQL;Swift;VBA;VB.NET;Visual Basic 6;HTML;CSS\n70039|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|44064.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;Matlab;Python;Scala;SQL;HTML;CSS;Bash/Shell\n33939|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|68537.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n64138|Bulgaria|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|37500.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;Java;JavaScript;PHP;Python;VBA;VB.NET;Visual Basic 6;HTML;CSS\n30442|Germany|Extremely satisfied|Information systems, information technology, or system administration|134627.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n86149|United States|Moderately satisfied|Information systems, information technology, or system administration|78200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n84599|Italy|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|36716.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n19005|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|I don't typically exercise|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n42046|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|165000.0|1 - 2 times per week|Male|East Asian|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript;HTML;CSS\n81760|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|95000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C;Java;JavaScript;Perl;PHP;SQL;HTML;CSS;Bash/Shell\n82502|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;C++;Hack;Java;JavaScript;Objective-C;PHP;Rust;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n29036|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|36000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Matlab;Python;SQL;HTML;CSS\n35735|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|74304.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Go;Groovy;Java;JavaScript;Lua;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n53616|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|42300.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;Python;HTML;CSS\n40332|India|Extremely satisfied|Computer science, computer engineering, or software engineering|23482.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;Go;Java;JavaScript;Matlab;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n63937|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;Objective-C;Ruby;Swift;Kotlin;Bash/Shell\n53663|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|32209.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|Java;SQL;Visual Basic 6\n94766|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|200000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Assembly;C;C++;Python;Bash/Shell\n57422|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|66027.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Go;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;Kotlin;HTML;CSS\n95987|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Groovy;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;Kotlin;HTML;CSS\n53434|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|56543.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Haskell;Python;SQL;Bash/Shell\n28845|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|84000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n18841|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|53851.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n73618|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|2000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;Swift;TypeScript;HTML;CSS\n11924|Venezuela, Bolivarian Republic of...|Extremely satisfied|Information systems, information technology, or system administration|600.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n76150|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|49404.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#\n63262|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|72209.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Objective-C;TypeScript;HTML;CSS\n1759|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|154000.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Perl;Ruby;SQL;HTML;CSS;Bash/Shell\n84550|United States|Moderately satisfied|I never declared a major|100000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Perl;PHP;Python;HTML;CSS;Bash/Shell\n35747|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|104678.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;TypeScript;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n43292|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|100000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;Java;JavaScript;Objective-C;Python;Swift;HTML;CSS;Bash/Shell\n6987|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|59880.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Lua;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n21801|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|121000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n75652|Philippines|Extremely satisfied|Computer science, computer engineering, or software engineering|14652.0|I don't typically exercise|Male|East Asian;South Asian|Associate degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;SQL;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal\n47300|Canada|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|72469.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Lua;Python;Bash/Shell\n98155|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|22284.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;Haskell;Java;JavaScript;PHP;Python;SQL;Visual Basic 6;HTML;CSS;Bash/Shell\n81920|Armenia|Moderately satisfied|Computer science, computer engineering, or software engineering|23628.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;SQL;HTML;CSS\n51944|Russian Federation|Slightly satisfied|Mathematics or statistics|14856.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Python;SQL;Bash/Shell\n14261|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|125014.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n51422|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|103000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Python\n7868|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;Python;R;Scala;TypeScript\n19604|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|108252.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n91500|United States|Extremely satisfied|Information systems, information technology, or system administration|88500.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;Ruby;SQL;VB.NET;HTML;CSS;Bash/Shell\n8570|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|58000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Lua;SQL;HTML;CSS\n62203|Ireland|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|61194.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;Python;SQL;HTML;CSS\n77965|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|120000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n54241|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|53892.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Python;Swift;Kotlin;HTML;CSS;Bash/Shell\n51899|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|20808.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Scala;SQL\n42384|Indonesia|Extremely satisfied|Computer science, computer engineering, or software engineering|107400.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;Python;SQL;VB.NET;Visual Basic 6;Kotlin;HTML;CSS\n63202|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6204.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Python\n35898|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n84867|Pakistan|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|11820.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL\n71735|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|38820.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n54691|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|25047.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript\n83990|Brazil|Neither satisfied nor dissatisfied|A business discipline (ex. accounting, finance, marketing)|10476.0|Daily or almost every day|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;HTML;CSS\n98776|India|Moderately satisfied|Computer science, computer engineering, or software engineering|28178.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Python;R\n1742|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|160000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;JavaScript;Objective-C;SQL;Swift;HTML;CSS;Bash/Shell\n662|Bulgaria|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|12000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n47379|Belgium|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|146868.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;VBA;VB.NET;Visual Basic 6\n4583|Russian Federation|Slightly satisfied|Information systems, information technology, or system administration|25476.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;Matlab;PHP;Python;SQL;HTML;CSS;Bash/Shell\n2578|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|138904.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n25836|Nigeria|Slightly satisfied|Computer science, computer engineering, or software engineering|13332.0|Daily or almost every day|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|Java;Kotlin;HTML\n14757|Poland|Moderately satisfied|Mathematics or statistics|22932.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL\n60999|Mexico|Moderately satisfied|Computer science, computer engineering, or software engineering|22560.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n8384|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|29376.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;Go;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n73938|New Zealand|Extremely satisfied|Computer science, computer engineering, or software engineering|40196.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Clojure;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;Delphi/Object Pascal;HTML;CSS\n19156|Uruguay|Moderately satisfied|Computer science, computer engineering, or software engineering|60000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n27072|Norway|Moderately dissatisfied|Computer science, computer engineering, or software engineering|84165.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n22567|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|74550.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n76423|Taiwan|Slightly satisfied|Computer science, computer engineering, or software engineering|84743.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Groovy;Java;JavaScript;Python;HTML;Bash/Shell\n47039|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|2000000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|55 - 64 years old|More than 4 years ago|Assembly;C;C++;C#;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;VBA;VB.NET;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n10743|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|88119.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Groovy;Java;Python;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n50829|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Python\n75243|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|60000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;Kotlin;HTML;CSS\n93360|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|106000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n40163|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|165000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n57297|France|Moderately satisfied|Computer science, computer engineering, or software engineering|34269.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;Clojure;Haskell;Java;JavaScript;Python;HTML;CSS\n30587|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|37504.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n34801|United States|Moderately satisfied|Information systems, information technology, or system administration|85000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Go;Java;JavaScript;Matlab;Objective-C;PHP;VBA;Kotlin;HTML;CSS;Bash/Shell\n47469|Croatia|Moderately satisfied|Computer science, computer engineering, or software engineering|25656.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n75609|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|59980.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;Lua;Python\n38237|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|80521.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C#;Clojure;Erlang;F#;Go;Haskell;JavaScript;Python;Ruby;Rust;VB.NET;Visual Basic 6\n35052|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|107964.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C;C++;Go;JavaScript;Objective-C;Python;SQL;HTML;CSS;Bash/Shell\n61282|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|10236.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Matlab;PHP;Python;SQL;HTML;CSS;Bash/Shell\n29848|Belgium|Moderately satisfied|Computer science, computer engineering, or software engineering|55686.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Lua;SQL;HTML;CSS\n27109|Canada|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|24156.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript\n39791|Philippines|Slightly satisfied|Information systems, information technology, or system administration|6120.0|I don't typically exercise|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS\n39629|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|58000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;PHP;Python;HTML;CSS\n8559|Ireland|Extremely satisfied|Computer science, computer engineering, or software engineering|90288.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;R;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n66591|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|94000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;Python;HTML;Bash/Shell\n96319|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|67069.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java\n76379|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|105000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n10062|Malta|Moderately satisfied|Computer science, computer engineering, or software engineering|39776.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n54223|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Python;Bash/Shell\n20856|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|103300.0|1 - 2 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Groovy;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n83561|India|Slightly satisfied|Computer science, computer engineering, or software engineering|11741.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL;HTML;CSS\n64160|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|63896.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;Ruby;HTML;CSS;Bash/Shell\n55491|France|Moderately satisfied|Computer science, computer engineering, or software engineering|51403.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Go;Java;JavaScript;Python;Scala;Bash/Shell\n8446|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|105000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;F#;Java;JavaScript;SQL;HTML;CSS\n29303|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|61752.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;PHP;SQL;HTML;CSS;Bash/Shell\n86128|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|57581.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n20763|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|130000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;TypeScript;HTML;CSS\n99911|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|36000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;CSS\n57656|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|13306.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;R;TypeScript;HTML;CSS\n6181|India|Slightly dissatisfied|Information systems, information technology, or system administration|5640.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n76715|Mexico|Slightly dissatisfied|Computer science, computer engineering, or software engineering|5796.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C++;Objective-C;Swift\n90037|United Kingdom|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|683412.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C++;C#;JavaScript;PHP;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n81185|Cuba|Moderately satisfied|Computer science, computer engineering, or software engineering|876.0|Daily or almost every day|Male|Black or of African descent;Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|C++\n45373|India|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|27708.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;SQL\n90276|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|122000.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Groovy;Java;JavaScript;Perl;Python;TypeScript;Bash/Shell\n30624|Poland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|21876.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Go\n92258|Canada|Extremely satisfied|A health science (ex. nursing, pharmacy, radiology)|61196.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n52971|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|3757.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n62765|United States|Extremely satisfied|Web development or web design|50000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n88501|Poland|Slightly dissatisfied|Mathematics or statistics|30000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n93045|Bulgaria|Slightly dissatisfied|Computer science, computer engineering, or software engineering|26256.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;Ruby;TypeScript;Kotlin\n84335|Bulgaria|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|12000.0|I don't typically exercise|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|PHP;SQL;HTML;CSS\n41006|Australia|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|74375.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;SQL\n31418|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|56365.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n62709|Russian Federation|Extremely satisfied|Computer science, computer engineering, or software engineering|115000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;Objective-C;Swift\n68114|Netherlands|Slightly satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;Python;Kotlin\n95558|Russian Federation|Slightly dissatisfied|Computer science, computer engineering, or software engineering|12.0|I don't typically exercise|Female;Transgender|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n86398|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|15600.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;C#;Python;VBA;VB.NET\n24186|United States|Moderately satisfied|A health science (ex. nursing, pharmacy, radiology)|120000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Go;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n63928|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|68000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Perl;Python;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n78437|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|95000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript\n68457|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;JavaScript;Perl;SQL;TypeScript;HTML;CSS;Bash/Shell\n87207|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Assembly;C#;Matlab;Bash/Shell\n89623|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Objective-C;Python;Bash/Shell\n15827|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|170000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Groovy;Java;JavaScript;Objective-C;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n76384|United Kingdom|Slightly satisfied|Mathematics or statistics|46498.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#\n31770|Germany|Moderately satisfied|Information systems, information technology, or system administration|61194.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;SQL\n68677|Russian Federation|Moderately satisfied|Web development or web design|17088.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Lua;Perl;PHP;SQL;HTML;CSS;Bash/Shell\n98051|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|44400.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript\n54992|United Kingdom|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|55006.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;SQL;VBA;VB.NET;HTML;CSS\n76940|Brazil|Slightly dissatisfied|Computer science, computer engineering, or software engineering|811000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;JavaScript;Ruby;SQL;HTML;CSS\n9042|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|37152.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n18947|Maldives|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|15588.0|3 - 4 times per week|Female|South Asian|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;SQL;HTML;CSS\n50503|Germany|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|43320.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Java;Matlab;Python;Bash/Shell\n37946|Portugal|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|18360.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;SQL;VBA;VB.NET;Visual Basic 6\n40193|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80000.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;Matlab;Python\n21258|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|16000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;Python\n99474|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Perl;Python;HTML;CSS\n42902|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|109200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;Bash/Shell\n59582|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|16872.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Groovy;Java;JavaScript;Python;SQL;TypeScript;Cobol;HTML;CSS;Bash/Shell\n99441|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|55562.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|55 - 64 years old|Less than a year ago|Assembly;C;C++;C#;HTML;Bash/Shell\n12166|India|Moderately satisfied|Computer science, computer engineering, or software engineering|4692.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|Swift\n13006|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|30597.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;Java;JavaScript;Lua;PHP;Python;SQL;HTML;CSS;Bash/Shell\n42202|Argentina|Slightly satisfied|Information systems, information technology, or system administration|20340.0|I don't typically exercise|Female|Hispanic or Latino/Latina;White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Haskell;Java;JavaScript;Objective-C;Python;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n94706|Lebanon|Slightly dissatisfied|Computer science, computer engineering, or software engineering|21384.0|I don't typically exercise|Female|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;Matlab;R;Swift;Cobol;HTML;CSS\n77558|Austria|Slightly satisfied|Computer science, computer engineering, or software engineering|35688.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;JavaScript;Python;Bash/Shell\n86195|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|50000.0|Daily or almost every day|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;SQL;HTML;CSS\n52440|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|44449.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Matlab;Python;Ruby;HTML;CSS;Bash/Shell\n95199|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|69000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;Bash/Shell\n57989|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|63000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;HTML;CSS\n26999|United States|Slightly dissatisfied|A humanities discipline (ex. literature, history, philosophy)|175000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;HTML;Bash/Shell\n12026|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|128000.0|I don't typically exercise|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;Python\n63243|Poland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|15180.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n33018|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|54336.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Haskell;Java;JavaScript;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n74694|Colombia|Moderately dissatisfied|Computer science, computer engineering, or software engineering|29520.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML\n60299|Germany|Slightly dissatisfied|Web development or web design|22032.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n48153|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|36716.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Clojure;Java;JavaScript;Python;TypeScript;Bash/Shell\n95880|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|5260.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n90296|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|129900.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Clojure;Groovy;JavaScript;Python;Ruby;Bash/Shell\n59039|Netherlands|Moderately satisfied|Information systems, information technology, or system administration|91791.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;SQL;HTML;CSS\n12403|United States|Moderately satisfied|Information systems, information technology, or system administration|83200.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n46195|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|42348.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript\n54437|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|54336.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;JavaScript;PHP;Python;TypeScript;HTML;CSS\n10113|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|235000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Assembly;C;C++;JavaScript;Objective-C;Python;Swift;HTML;CSS\n12713|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|41124.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|PHP;SQL;HTML;CSS\n22558|Turkey|Extremely satisfied|Computer science, computer engineering, or software engineering|146865.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C#;JavaScript;Objective-C;PHP;Python;VB.NET\n11375|Dominican Republic|Moderately dissatisfied|Computer science, computer engineering, or software engineering|16860.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML\n3337|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|84165.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C#;SQL;Delphi/Object Pascal;HTML;CSS\n58940|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|5088.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;SQL;VB.NET;HTML\n62937|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|25000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n70203|Germany|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|58752.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n42068|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|275000.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Assembly;C;Java;Objective-C\n46104|Czech Republic|Slightly satisfied|Computer science, computer engineering, or software engineering|27900.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n55152|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|170000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;Kotlin\n17901|Belgium|Moderately dissatisfied|Computer science, computer engineering, or software engineering|38184.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n66005|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|131000.0|3 - 4 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Python;TypeScript;Visual Basic 6;HTML;CSS;Bash/Shell\n32349|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|91791.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;SQL;Bash/Shell\n13253|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|88119.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Java;Objective-C;Python;SQL;Bash/Shell\n71877|Sweden|Moderately dissatisfied|Mathematics or statistics|56292.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;Haskell;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n62587|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9424.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|Objective-C;Swift\n77234|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|41000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n56304|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|38893.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n101567|Australia|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|111963.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;Bash/Shell\n73781|United States|Extremely satisfied|Information systems, information technology, or system administration|90000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n59609|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n33066|France|Slightly satisfied|Computer science, computer engineering, or software engineering|39164.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Go;Java;JavaScript;PHP;Scala;TypeScript;Ocaml;HTML;CSS;Bash/Shell\n76128|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|104030.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Go;JavaScript;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n5419|Turkey|Extremely satisfied|Mathematics or statistics|600000.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n80769|Slovenia|Slightly satisfied|Computer science, computer engineering, or software engineering|22032.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;Java;PHP;SQL;VBA;VB.NET;HTML;CSS\n19051|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|34726.0|3 - 4 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;Swift;HTML\n21021|Greece|Moderately satisfied|Computer science, computer engineering, or software engineering|46992.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n48564|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|61580.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n12707|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|54755.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Matlab;Python;Bash/Shell\n57240|Germany|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|36716.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n44654|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|34726.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Matlab;Python;Bash/Shell\n64092|Sweden|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|93420.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Matlab;SQL;VB.NET;HTML;CSS\n26973|United States|Extremely dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|68000.0|I don't typically exercise|Female|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|HTML;CSS\n75591|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|64417.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal;HTML;CSS\n9287|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|87971.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C++;C#;JavaScript;SQL;VB.NET;HTML;CSS;Bash/Shell\n87545|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|135000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;Go;Java;JavaScript;Lua;Python;Ruby;Rust;Scala;SQL;HTML;CSS;Bash/Shell\n98849|Sweden|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|74856.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Python\n50530|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|36084.0|I don't typically exercise|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;HTML;CSS;Bash/Shell\n11814|Portugal|Moderately satisfied|Computer science, computer engineering, or software engineering|30840.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;HTML\n89307|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;Scala;Kotlin\n21804|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n9933|Pakistan|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|11928.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n87614|France|Extremely satisfied|Computer science, computer engineering, or software engineering|97910.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Bash/Shell\n14793|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n30224|United States|Slightly satisfied|Mathematics or statistics|132000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Ruby;CSS\n55276|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|33657.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;HTML;CSS\n88901|Japan|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|37812.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;CoffeeScript;Go;Java;JavaScript;Objective-C;PHP;Python;Ruby;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n96731|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|4740.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;Python;SQL;Swift;Cobol;HTML;CSS\n32179|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;Perl;PHP;Ruby;Rust;Scala;HTML;CSS;Bash/Shell\n33803|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|250000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS\n83190|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|95462.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Objective-C;Python;Ruby;Swift\n65782|Russian Federation|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61992.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL\n25565|India|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|19568.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Python;R;VBA\n80703|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14400.0|3 - 4 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n63405|Thailand|Moderately satisfied|Computer science, computer engineering, or software engineering|7524.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Go;JavaScript;PHP;Python;Ruby;HTML\n63114|Czech Republic|Moderately satisfied|Information systems, information technology, or system administration|29376.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java\n42749|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|65000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;Python;SQL;VBA;VB.NET\n70448|United Kingdom|Extremely satisfied|Mathematics or statistics|69452.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|JavaScript;Python;SQL;TypeScript;HTML;CSS\n96450|Poland|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|59988.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;SQL;HTML;CSS\n89392|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|90000.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n87160|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|88224.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;C#;Java;JavaScript;SQL;TypeScript;Visual Basic 6;HTML;CSS;Bash/Shell\n83898|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|18785.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Erlang;JavaScript;Python;R;HTML;CSS\n74443|India|Slightly satisfied|Computer science, computer engineering, or software engineering|10175.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;TypeScript;HTML;CSS\n3225|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|62418.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;Groovy;Java;Objective-C;Rust;Scala;SQL;TypeScript;VBA;Kotlin;HTML;CSS;Bash/Shell\n69151|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|61194.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;Java;JavaScript;SQL;Kotlin;HTML;CSS;Bash/Shell\n81460|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|13872.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;HTML;CSS\n49856|Norway|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|63762.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;TypeScript;HTML\n73628|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|95000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript\n94405|United Kingdom|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|56951.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n44672|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|133000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;Python;HTML;CSS;Bash/Shell\n13496|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|129000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;Objective-C;Swift;Bash/Shell\n25950|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|46507.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;Python;TypeScript\n59871|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|55562.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n60380|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|185000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;CoffeeScript;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n67897|India|Moderately satisfied|Computer science, computer engineering, or software engineering|11268.0|I don't typically exercise|Male|South Asian|Primary/elementary school|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n72422|Ukraine|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Clojure;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n21772|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|28656.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;SQL;HTML;CSS\n41981|India|Moderately satisfied|Computer science, computer engineering, or software engineering|7984.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|SQL\n80258|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|20351.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;JavaScript;R;Scala;SQL;TypeScript\n27245|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|190000.0|1 - 2 times per week|Male|East Asian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;Python;Bash/Shell\n64672|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|23808.0|3 - 4 times per week|Female|Hispanic or Latino/Latina|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java\n98427|Belgium|Moderately satisfied|Computer science, computer engineering, or software engineering|33780.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;C#;Java;HTML;CSS\n28588|Romania|Moderately satisfied|Information systems, information technology, or system administration|48955.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|SQL\n67274|Malta|Moderately satisfied|Computer science, computer engineering, or software engineering|22032.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;Python\n81522|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|174000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;Java;JavaScript;HTML;CSS;Bash/Shell\n89855|Germany|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61680.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Perl;PHP;SQL;HTML;CSS;Bash/Shell\n61348|Germany|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|46992.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|R\n43880|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|400044.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;HTML;CSS\n91547|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|86676.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n52029|United States|Moderately satisfied|Information systems, information technology, or system administration|124500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Perl;SQL;HTML;CSS;Bash/Shell\n67308|Colombia|Slightly satisfied|Information systems, information technology, or system administration|7176.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;SQL\n4784|Lithuania|Moderately satisfied|Computer science, computer engineering, or software engineering|42504.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP\n65690|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|48313.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;Go;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n3878|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|122100.0|I don't typically exercise|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n91650|India|Moderately satisfied|Computer science, computer engineering, or software engineering|3500.0|Daily or almost every day|Male|East Asian|They never completed any formal education|3 - 4 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n62947|Turkey|Moderately satisfied|Computer science, computer engineering, or software engineering|26544.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n39517|United Kingdom|Slightly dissatisfied|Web development or web design|52783.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n82665|Turkey|Slightly dissatisfied|Computer science, computer engineering, or software engineering|38148.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Less than a year ago|C#;Go;JavaScript;Ruby\n11342|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|33120.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;Kotlin\n69446|Canada|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|112730.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Groovy;Java;Bash/Shell\n97228|Latvia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n71761|India|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|5636.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;HTML;CSS\n64513|United Kingdom|Extremely satisfied|Mathematics or statistics|33615.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n51916|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|107000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|55 - 64 years old|More than 4 years ago|C;C#;JavaScript;Julia;Objective-C;SQL;TypeScript;HTML\n760|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|99468.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Go;Groovy;Java;JavaScript;Objective-C;Python;Ruby;Swift;Kotlin;HTML;CSS;Bash/Shell\n23513|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|66000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Bash/Shell\n24905|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|31764.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#\n67756|Pakistan|Moderately satisfied|Computer science, computer engineering, or software engineering|9756.0|1 - 2 times per week|Female|Middle Eastern;South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Python;HTML;CSS\n95633|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|95000.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n76889|Nigeria|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|5004.0|I don't typically exercise|Male|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n74425|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|76000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;JavaScript;Rust;Bash/Shell\n66673|United States|Slightly satisfied|Information systems, information technology, or system administration|117000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;Perl;SQL;Bash/Shell\n37862|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|112762.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Python;SQL;TypeScript;HTML;CSS\n28600|United Kingdom|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|62507.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Python;Ruby;Scala;Kotlin\n48883|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|35244.0|3 - 4 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|Groovy;Java;JavaScript\n13234|Hungary|Slightly satisfied|Computer science, computer engineering, or software engineering|40392.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript;Lua;Perl;SQL\n39646|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|1164000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;HTML;CSS;Bash/Shell\n95524|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|102000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;Python;SQL;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n81448|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|125014.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Groovy;Java;Python;Scala;HTML;CSS;Bash/Shell\n327|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|23440.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML\n70748|Ireland|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|44060.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Haskell;Java;Matlab;Ruby;Scala;Bash/Shell\n34422|Iran, Islamic Republic of...|Moderately dissatisfied|Information systems, information technology, or system administration|36000.0|I don't typically exercise|Male|Middle Eastern|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java\n53513|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|29373.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;VBA;HTML;CSS;Bash/Shell\n19630|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|64866.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Groovy;Java;Python;SQL;Cobol;Bash/Shell\n96390|South Africa|Slightly satisfied|Computer science, computer engineering, or software engineering|54384.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n48420|Czech Republic|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|27804.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Python;VBA;Bash/Shell\n75954|Denmark|Moderately satisfied|Mathematics or statistics|49308.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Matlab;Python;R;Bash/Shell\n37201|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|47000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n54106|Netherlands|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|68537.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Scala;SQL;Swift;HTML;CSS\n95701|United States|Slightly dissatisfied|I never declared a major|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n10317|Portugal|Slightly satisfied|Computer science, computer engineering, or software engineering|14688.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n39800|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|95000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;CSS\n22566|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|96626.0|I don't typically exercise|Female|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n66207|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|38893.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n66788|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|118068.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;Ruby;Kotlin\n11559|Switzerland|Extremely satisfied|Computer science, computer engineering, or software engineering|83416.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n88541|Poland|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|63516.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Python;R;Scala\n24620|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|76514.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift\n54979|Qatar|Slightly dissatisfied|Computer science, computer engineering, or software engineering|120000.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n53442|India|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18780.0|Daily or almost every day|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|PHP;Python;SQL;HTML;CSS;Bash/Shell\n13237|Canada|Slightly dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|48313.0|Daily or almost every day|Female|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n46824|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|3756.0|I don't typically exercise|Male|South Asian|They never completed any formal education|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n90267|United States|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|2000000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|55 - 64 years old|Less than a year ago|C;Go;Perl;PHP;SQL;Bash/Shell\n97711|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|79973.0|3 - 4 times per week|Male|East Asian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;HTML;CSS\n47043|Japan|Moderately dissatisfied|Information systems, information technology, or system administration|54023.0|Daily or almost every day|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|CoffeeScript;JavaScript;PHP;Ruby;HTML;CSS;Bash/Shell\n78240|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|63642.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Python;R;SQL;TypeScript;HTML;CSS\n27054|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|135000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;Haskell;Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n20656|United States|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|70000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n85667|United Republic of Tanzania|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|37500.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n4746|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;Java;JavaScript;SQL;HTML\n78606|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|20000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Lua;Matlab;Python;Bash/Shell\n37621|India|Slightly satisfied|Computer science, computer engineering, or software engineering|4692.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n30340|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;SQL;HTML\n35729|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9706.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Objective-C;Swift\n95852|Ukraine|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL\n10997|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|130000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n78878|India|Moderately satisfied|Computer science, computer engineering, or software engineering|7200.0|I don't typically exercise|Male|East Asian|Primary/elementary school|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n95197|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|68500.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n58025|Australia|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|123959.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;Objective-C;Ruby;Swift;Bash/Shell\n6660|Romania|Extremely dissatisfied|Computer science, computer engineering, or software engineering|58752.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Swift;Kotlin\n66063|Myanmar|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6000.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Groovy;Java;JavaScript;HTML;CSS;Bash/Shell\n96035|Denmark|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|52597.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Swift;Ocaml;HTML;CSS\n96482|France|Moderately satisfied|Computer science, computer engineering, or software engineering|121164.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Perl;Python;Ruby;Rust;Scala;SQL;Swift;Bash/Shell\n38046|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|142000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Lua;Python;HTML;CSS\n64294|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|150000.0|1 - 2 times per week|Female|South Asian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;SQL;TypeScript\n98973|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|55075.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;HTML\n14782|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;CoffeeScript;Java;JavaScript;SQL;TypeScript;HTML;CSS\n95338|United States|Moderately satisfied|Mathematics or statistics|75000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;Python;R;SQL;HTML;CSS;Bash/Shell\n33297|Netherlands|Slightly dissatisfied|Computer science, computer engineering, or software engineering|48955.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java\n19466|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|114596.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Clojure;Ruby\n9944|Brazil|Slightly satisfied|Computer science, computer engineering, or software engineering|11604.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n26164|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n44463|Canada|Slightly dissatisfied|Information systems, information technology, or system administration|60391.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;HTML;CSS\n69530|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|10175.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n92572|Austria|Extremely satisfied|Web development or web design|82000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C;C#;JavaScript;Objective-C;PHP;Swift;TypeScript;VB.NET;HTML\n51971|Denmark|Moderately satisfied|Computer science, computer engineering, or software engineering|887580.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C++;C#;SQL;VB.NET\n7075|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|45624.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;Java;JavaScript;Lua;Python;R;Bash/Shell\n16088|Germany|Moderately satisfied|Mathematics or statistics|117492.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Rust\n64501|Russian Federation|Extremely satisfied|Computer science, computer engineering, or software engineering|31848.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Assembly;C++;Go;Java;JavaScript;Lua;PHP;Python;Scala;SQL;TypeScript;Bash/Shell\n75367|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|45000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;Go;Groovy;Ruby;Bash/Shell\n32729|India|Moderately dissatisfied|Information systems, information technology, or system administration|26400.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;Python;SQL\n60772|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|68040.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Java;Python;Cobol\n39437|Brazil|Extremely dissatisfied|Computer science, computer engineering, or software engineering|32127.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n7580|Netherlands|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|85671.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Python;Ruby;Swift\n80738|Romania|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|34680.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;JavaScript;Python\n81401|India|Extremely satisfied|Computer science, computer engineering, or software engineering|8448.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;TypeScript;HTML;CSS\n14902|Australia|Extremely dissatisfied|Computer science, computer engineering, or software engineering|99967.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|C#;JavaScript;R;SQL;TypeScript;HTML;CSS\n90240|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|57200.0|Daily or almost every day|Male;Transgender|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|More than 4 years ago|C#;JavaScript;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n53894|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|112400.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;Bash/Shell\n49337|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|76495.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n84518|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|160000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Go;Groovy;Java;JavaScript\n19477|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|23652.0|I don't typically exercise|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java\n66518|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|66089.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|JavaScript;Python;Ruby;Scala;Swift;TypeScript\n36045|United States|Extremely satisfied|Information systems, information technology, or system administration|115000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n71740|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|6000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Java;Lua;PHP;SQL;HTML;CSS;Bash/Shell\n33005|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|49032.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n30951|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|Black or of African descent;East Asian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Erlang;Go;Haskell;Java;JavaScript;Rust;Scala;TypeScript;Bash/Shell\n75510|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|21000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;JavaScript;Python;SQL;VBA;HTML;CSS;Bash/Shell\n35833|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|125124.0|3 - 4 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;Erlang;Go;Haskell;Java;JavaScript;Matlab;Perl;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n27692|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|76397.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;TypeScript\n57718|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|91791.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n64887|Bangladesh|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|5160.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n17525|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|122388.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;Swift;VBA;VB.NET;HTML;CSS\n47020|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|135000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;Objective-C;Swift;Kotlin\n45879|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|29373.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Go;Java;JavaScript;Objective-C;PHP;SQL;Swift;Bash/Shell\n35576|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|115000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Python;Ruby;HTML;CSS;Bash/Shell\n19380|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|44064.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Go;Java;JavaScript;PHP;R;SQL;Swift;HTML;CSS\n10047|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;HTML;CSS\n9651|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|28000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n29455|Germany|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|67313.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;R;SQL;HTML;CSS\n22209|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|144000.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|Over 4 hours|45 - 54 years old|More than 4 years ago|JavaScript;SQL\n84041|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|200000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;Clojure;Erlang;Java;JavaScript;Ruby;SQL;HTML;Bash/Shell\n98497|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|65000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n47708|Mexico|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|12888.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;CoffeeScript;JavaScript;Python;Ruby;SQL;HTML;CSS\n72530|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|2820.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;JavaScript;PHP;SQL;HTML;CSS\n10826|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n14597|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|154000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n22936|United Kingdom|Moderately satisfied|Mathematics or statistics|27781.0|1 - 2 times per week|Male;Transgender|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;JavaScript;Matlab;R;HTML;CSS;Bash/Shell\n12276|Iran, Islamic Republic of...|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1200.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;C#;JavaScript;Python;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n59073|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|60000.0|1 - 2 times per week|Female|Black or of African descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS\n51487|France|Slightly satisfied|Computer science, computer engineering, or software engineering|41612.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n76565|Libyan Arab Jamahiriya|Extremely satisfied|Computer science, computer engineering, or software engineering|3900.0|I don't typically exercise|Male|Middle Eastern|They never completed any formal education|3 - 4 hours|45 - 54 years old|More than 4 years ago|C;C++;C#;JavaScript;SQL;VB.NET;Delphi/Object Pascal;HTML;CSS\n90914|United States|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|90000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n85308|India|Extremely satisfied|Computer science, computer engineering, or software engineering|6576.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Java;Python\n75575|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|58000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;Python;HTML;CSS\n74877|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|74885.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C++;C#;Java;JavaScript;Objective-C;PHP;Python;SQL;VBA;Bash/Shell\n94611|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|94000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;Python\n52323|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|30840.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n22692|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|56460.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Groovy;Java;SQL;Bash/Shell\n54589|India|Moderately satisfied|Computer science, computer engineering, or software engineering|18780.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Matlab;Python;SQL;HTML;CSS\n26327|France|Slightly satisfied|Information systems, information technology, or system administration|42836.0|1 - 2 times per week|Male|Black or of African descent;White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;SQL;HTML;CSS\n93266|Belgium|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|73433.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|55 - 64 years old|More than 4 years ago|C;C#;SQL;HTML;CSS\n109|Azerbaijan|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|144.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n1923|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n13094|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|51983.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;Python\n397|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|2000000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;Matlab;Python;Bash/Shell\n64244|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|31000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n71846|Ukraine|Extremely satisfied|Computer science, computer engineering, or software engineering|45096.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C++;Go;Java;Objective-C;Python;Swift;Kotlin\n41972|Belarus|Moderately satisfied|Information systems, information technology, or system administration|32664.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;HTML;CSS\n44613|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|42836.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Erlang;Groovy;Java;JavaScript;Objective-C;Perl;PHP;Python;Scala;Delphi/Object Pascal;Bash/Shell\n72477|Ecuador|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|3600.0|I don't typically exercise|Female|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;R;SQL;HTML;CSS\n28306|Thailand|Slightly satisfied|Information systems, information technology, or system administration|293736.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++\n20960|Brazil|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|77979.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n33696|Australia|Moderately dissatisfied|Computer science, computer engineering, or software engineering|119960.0|3 - 4 times per week|Male|Middle Eastern|Primary/elementary school|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;Objective-C;Swift;HTML;CSS\n20381|United Kingdom|Extremely satisfied|Web development or web design|29170.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;CoffeeScript;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n69430|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n28143|Poland|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|24702.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL;VBA;VB.NET;HTML;Bash/Shell\n9309|Australia|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|83172.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C#;Java;JavaScript;PHP;Python;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n67341|United States|Extremely satisfied|Web development or web design|103000.0|1 - 2 times per week|Male;Transgender|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;Visual Basic 6;HTML;CSS\n46142|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|150288.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n99337|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|58000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C++;C#;Java;HTML;CSS\n30203|France|Moderately dissatisfied|Web development or web design|33780.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;CoffeeScript;Java;JavaScript;Perl;PHP;Ruby;Rust;Swift;TypeScript;HTML;CSS;Bash/Shell\n47879|India|Moderately satisfied|Computer science, computer engineering, or software engineering|18785.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;SQL;TypeScript;HTML;CSS\n72708|Pakistan|Moderately satisfied|Computer science, computer engineering, or software engineering|32532.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;SQL;TypeScript;Bash/Shell\n3285|Singapore|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|56779.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n14443|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|10140.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#\n10877|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|96626.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript\n49168|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;JavaScript;Python;HTML;CSS;Bash/Shell\n37287|United Kingdom|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|852876.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|SQL\n71744|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|38184.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n71432|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|110000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|Groovy;Java;SQL;VBA\n1517|Peru|Slightly dissatisfied|Computer science, computer engineering, or software engineering|88000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;CoffeeScript;Erlang;Haskell;Java;JavaScript;Lua;Matlab;Perl;Python;R;Ruby;SQL;HTML;CSS;Bash/Shell\n97131|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|110000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS\n25292|Bulgaria|Moderately satisfied|Mathematics or statistics|26400.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML\n90855|South Africa|Slightly dissatisfied|Information systems, information technology, or system administration|62304.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;PHP;R;Delphi/Object Pascal;HTML;CSS\n34211|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|55 - 64 years old|More than 4 years ago|C++;C#;Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n99837|Serbia|Moderately satisfied|Computer science, computer engineering, or software engineering|20556.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C++;JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n40262|Ethiopia|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|6972.0|1 - 2 times per week|Male|Black or of African descent|Associate degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;TypeScript\n14284|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|70000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;Java;JavaScript;Matlab;Python;R;SQL;HTML;CSS;Bash/Shell\n22957|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|111963.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;TypeScript\n79645|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|367164.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n3646|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|JavaScript;SQL;VB.NET;HTML;CSS\n61098|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|80776.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Assembly;C;C++;Java;JavaScript;Objective-C;SQL;Swift;HTML;CSS;Bash/Shell\n13504|United States|Moderately dissatisfied|Information systems, information technology, or system administration|60000.0|Daily or almost every day|Female;Transgender|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;SQL;Delphi/Object Pascal;HTML;CSS\n80749|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|80772.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;SQL;HTML\n39006|France|Slightly satisfied|Computer science, computer engineering, or software engineering|122388.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;F#;TypeScript\n86376|France|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript\n99104|Russian Federation|Slightly dissatisfied|Computer science, computer engineering, or software engineering|10620.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|C;C++;JavaScript;Matlab;Python;SQL;Visual Basic 6;HTML;CSS\n15503|India|Extremely satisfied|Computer science, computer engineering, or software engineering|11268.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript\n27374|Canada|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|82132.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Python;SQL;Bash/Shell\n58214|Brazil|Moderately satisfied|Information systems, information technology, or system administration|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n11804|United Kingdom|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|45838.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Ruby;HTML;CSS;Bash/Shell\n575|Ireland|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|63642.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n10770|Portugal|Extremely satisfied|Computer science, computer engineering, or software engineering|38552.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Go;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n78807|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;HTML;CSS;Bash/Shell\n4004|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|63516.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;TypeScript;HTML;CSS\n1599|China|Extremely dissatisfied|Computer science, computer engineering, or software engineering|60000.0|Daily or almost every day|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n45525|Brazil|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|29076.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;Bash/Shell\n100475|Russian Federation|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|42456.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;HTML;CSS\n69472|Portugal|Slightly satisfied|Computer science, computer engineering, or software engineering|41124.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;C++;CoffeeScript;Erlang;JavaScript;PHP;Ruby;Rust;SQL;HTML;CSS\n71422|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|17640.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;JavaScript;PHP;Python;HTML;CSS\n2676|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Python;Scala;SQL;HTML;CSS;Bash/Shell\n7309|Australia|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|121560.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n94688|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;F#;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n1628|India|Slightly satisfied|Computer science, computer engineering, or software engineering|281784.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n28843|United States|Moderately satisfied|A health science (ex. nursing, pharmacy, radiology)|120000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;JavaScript;Python;SQL;TypeScript;VBA\n25238|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|84000.0|Daily or almost every day|Male|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Python;R;SQL;HTML;CSS\n80971|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n37329|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|59980.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;CoffeeScript;JavaScript;Ruby;HTML;CSS\n21234|Australia|Moderately satisfied|Mathematics or statistics|63979.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;Java;JavaScript;Python;R;SQL;Swift;Kotlin;CSS\n84373|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|1020000.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;TypeScript;HTML;CSS;Bash/Shell\n84281|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|15132.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript;HTML;CSS\n50496|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29000.0|Daily or almost every day|Female|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;Java;Matlab;Python;SQL\n65661|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;Ruby;HTML;CSS\n58900|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n63868|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|South Asian|Associate degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;SQL;HTML;CSS\n4324|Germany|Moderately dissatisfied|Information systems, information technology, or system administration|734328.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;HTML;CSS\n84821|France|Slightly satisfied|A health science (ex. nursing, pharmacy, radiology)|36716.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Java;JavaScript;Objective-C;PHP;Ruby;SQL;Swift;VBA;VB.NET;Visual Basic 6;Kotlin;HTML;CSS;Bash/Shell\n6165|Russian Federation|Moderately satisfied|Web development or web design|8850.0|Daily or almost every day|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n28879|Austria|Extremely dissatisfied|Computer science, computer engineering, or software engineering|79552.0|1 - 2 times per week|Male|Middle Eastern|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Python;R;TypeScript;HTML;CSS\n92117|France|Extremely satisfied|Web development or web design|14688.0|1 - 2 times per week|Male|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;Python;Scala;SQL;HTML;CSS;Bash/Shell\n14978|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Java;JavaScript;Objective-C;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n41310|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|26436.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Objective-C;PHP;SQL;Swift;HTML;CSS\n73845|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|34296.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n31973|Czech Republic|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|40536.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Lua;Python;SQL;HTML;CSS;Bash/Shell\n52154|Turkey|Slightly dissatisfied|Computer science, computer engineering, or software engineering|8004.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n48208|Iran, Islamic Republic of...|Extremely satisfied|Computer science, computer engineering, or software engineering|0.0|I don't typically exercise|Male|Middle Eastern|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|18 - 24 years old|I've never had a job|Assembly;C;C++;Java;Python;SQL;HTML;CSS;Bash/Shell\n61588|Italy|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|22032.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|55 - 64 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n96446|Croatia|Moderately satisfied|Computer science, computer engineering, or software engineering|25656.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python\n11514|Australia|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|47984.0|3 - 4 times per week|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS\n22740|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|1444.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;HTML\n739|Iran, Islamic Republic of...|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|20000.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n51724|Czech Republic|Slightly satisfied|Computer science, computer engineering, or software engineering|17376.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java\n93728|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|110000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;Kotlin;Bash/Shell\n53978|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|42000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n75843|South Korea|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|26352.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;TypeScript;HTML;CSS\n60446|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|23482.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n52330|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|50904.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n17298|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|52783.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#\n95882|India|Slightly satisfied|Computer science, computer engineering, or software engineering|3756.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;SQL;HTML;CSS\n99565|Australia|Extremely dissatisfied|A natural science (ex. biology, chemistry, physics)|84497.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Python;R;HTML;CSS\n9849|Sri Lanka|Extremely satisfied|Computer science, computer engineering, or software engineering|11700.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|I've never had a job|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n2586|United States|Moderately satisfied|Mathematics or statistics|57000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Perl;R;Bash/Shell\n47087|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|32209.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|R;SQL\n20326|Viet Nam|Slightly satisfied|Computer science, computer engineering, or software engineering|3600.0|I don't typically exercise|Male|East Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n35251|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|62000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n27230|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|62507.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n10395|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|93500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n4138|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|43482.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;C#;Python;SQL;HTML;CSS;Bash/Shell\n56644|Canada|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|44609.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL\n30890|India|Extremely satisfied|Computer science, computer engineering, or software engineering|16437.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n19432|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|60000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n3|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|70841.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Python;Bash/Shell\n99139|Turkey|Moderately dissatisfied|Computer science, computer engineering, or software engineering|23844.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP\n28919|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;Python;R;SQL;TypeScript\n83780|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|14976.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Bash/Shell\n54688|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|690000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Ruby;HTML;CSS;Bash/Shell\n24765|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;TypeScript\n96527|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|70985.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;SQL\n12130|United States|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|30000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;R;HTML\n11832|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|44449.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL;HTML;CSS;Bash/Shell\n57366|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Perl;SQL;HTML;CSS;Bash/Shell\n70359|Other Country (Not Listed Above)|Moderately satisfied|Computer science, computer engineering, or software engineering|12480.0|I don't typically exercise|Female|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Java;JavaScript;Matlab;PHP;Python;SQL;Visual Basic 6;HTML;CSS\n32452|United Kingdom|Slightly dissatisfied|Web development or web design|33.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS\n81220|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|85000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Groovy;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n54378|Egypt|Slightly dissatisfied|Computer science, computer engineering, or software engineering|1800.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|More than 4 years ago|C;C++;C#;SQL;VBA;Visual Basic 6;HTML;CSS;Bash/Shell\n12328|Norway|Moderately satisfied|Information systems, information technology, or system administration|53560.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n72867|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|96000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Scala;TypeScript;Bash/Shell\n81698|Algeria|Slightly dissatisfied|Computer science, computer engineering, or software engineering|4728.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;PHP;Python;SQL;Delphi/Object Pascal;HTML;CSS\n19984|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n54322|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|28956.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n25522|United Kingdom|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|70841.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n65851|Australia|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|103965.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n3119|Ireland|Moderately satisfied|Computer science, computer engineering, or software engineering|88119.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Go;Haskell;Java;JavaScript;R;Scala;SQL;Bash/Shell\n22065|United States|Extremely dissatisfied|I never declared a major|98000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;Bash/Shell\n89450|Argentina|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|30000.0|1 - 2 times per week|Female|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;SQL;HTML;Bash/Shell\n21867|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|41671.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#\n98905|Japan|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|120000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;Ruby;HTML;CSS\n93735|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|30000.0|3 - 4 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C++;JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n65710|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|100000.0|3 - 4 times per week|Male|Black or of African descent;East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n50835|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|70000.0|3 - 4 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;Clojure;Java;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n40989|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|48000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript;Objective-C;Python;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n89218|United States|Moderately dissatisfied|Information systems, information technology, or system administration|95000.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Ruby;SQL\n69039|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|17640.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Haskell;Java;JavaScript;Python;Scala;Kotlin;HTML;CSS;Bash/Shell\n96869|United States|Moderately satisfied|I never declared a major|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n37945|Hungary|Slightly satisfied|Computer science, computer engineering, or software engineering|35724.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Erlang;Java;JavaScript;Matlab;Objective-C;Python;SQL;Swift;Kotlin;HTML;CSS;Bash/Shell\n3472|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|12108.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;SQL\n60176|Serbia|Extremely satisfied|Computer science, computer engineering, or software engineering|8808.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;SQL\n32041|Malaysia|Slightly satisfied|Mathematics or statistics|19116.0|I don't typically exercise|Female|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;Java;JavaScript;Objective-C;Swift;HTML;CSS\n25425|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|136000.0|Daily or almost every day|Female|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Go;Java;Python;Bash/Shell\n74236|United States|Extremely dissatisfied|A humanities discipline (ex. literature, history, philosophy)|55000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;Objective-C;R;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n68601|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|716748.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Perl;Python;Bash/Shell\n6077|Sweden|Extremely dissatisfied|A natural science (ex. biology, chemistry, physics)|52404.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;Python;SQL;Bash/Shell\n101576|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n85084|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|109500.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;HTML;CSS\n38647|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|180000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C++;JavaScript;Lua;Python;TypeScript;Bash/Shell\n71593|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|32000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#\n28195|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|225000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Python;SQL;HTML;Bash/Shell\n45129|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|52872.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Python;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n100511|Ireland|Moderately satisfied|Computer science, computer engineering, or software engineering|85671.0|Daily or almost every day|Female|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Hack;Haskell;Lua;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n23379|Croatia|Slightly satisfied|Computer science, computer engineering, or software engineering|30588.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n99897|United States|Moderately satisfied|Mathematics or statistics|150000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Python;R;SQL;HTML;Bash/Shell\n38054|Belarus|Slightly dissatisfied|Computer science, computer engineering, or software engineering|9684.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n13361|Australia|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|134352.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Clojure;Groovy;Java;JavaScript;Matlab;Python;SQL;Bash/Shell\n3552|India|Extremely satisfied|Computer science, computer engineering, or software engineering|9396.0|Daily or almost every day|Male|South Asian|Primary/elementary school|Over 4 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;Swift;TypeScript;HTML;CSS\n74771|United States|Extremely satisfied|Web development or web design|108600.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n14129|Spain|Extremely satisfied|Information systems, information technology, or system administration|97910.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;Scala\n9178|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|8496.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;C#;Java;Objective-C;Python;SQL;Swift\n50265|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|26196.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;C#;Python;Ruby;TypeScript;Bash/Shell\n67284|Venezuela, Bolivarian Republic of...|Moderately satisfied|Information systems, information technology, or system administration|1000000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n27361|Albania|Slightly dissatisfied|Computer science, computer engineering, or software engineering|35244.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;HTML;CSS\n32211|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|64417.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Erlang;Java;Scala;Swift\n92596|United States|Moderately satisfied|Mathematics or statistics|90000.0|Daily or almost every day|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python\n68693|United States|Moderately satisfied|Mathematics or statistics|2600.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n13475|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|56460.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;C#;CoffeeScript;Java;JavaScript;SQL;HTML;CSS\n73635|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|104030.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Java;Python;Scala;SQL\n83171|Bangladesh|Slightly dissatisfied|Computer science, computer engineering, or software engineering|2892.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;C++;Java;PHP;SQL;HTML;CSS\n42916|Poland|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|21876.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;SQL\n14854|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|118366.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Assembly;C;C++;C#;Groovy;Java;JavaScript;Lua;Python;TypeScript;HTML;CSS;Bash/Shell\n69500|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|50179.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|JavaScript;TypeScript;HTML;CSS;Bash/Shell\n90282|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|19236.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;TypeScript;HTML\n78866|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|106000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++\n61575|France|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|55 - 64 years old|Between 2 and 4 years ago|PHP;SQL;HTML;CSS\n36229|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|104678.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Java;Python;Kotlin;HTML;CSS;Bash/Shell\n73482|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|125000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|Java;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n100806|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|2328.0|Daily or almost every day|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|C#;SQL;Visual Basic 6;HTML;CSS\n93854|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|88000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Go;Groovy;Java;JavaScript;Perl;Rust;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n1491|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|36468.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n78846|Belarus|Moderately dissatisfied|Computer science, computer engineering, or software engineering|34800.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java\n46475|Germany|Extremely satisfied|Information systems, information technology, or system administration|67560.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;Java;JavaScript;Python;Ruby;SQL;CSS;Bash/Shell\n16524|China|Moderately satisfied|Computer science, computer engineering, or software engineering|20568.0|1 - 2 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python;R;SQL;TypeScript;HTML;CSS\n23659|Canada|Extremely satisfied|Mathematics or statistics|64417.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|CoffeeScript;Go;JavaScript;Lua;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n55797|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|31948.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;Visual Basic 6;HTML;CSS\n53683|United Kingdom|Moderately satisfied|Web development or web design|69452.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n67567|United States|Moderately satisfied|Information systems, information technology, or system administration|63000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;Cobol;HTML;CSS;Bash/Shell\n65905|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|68000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Perl;Ruby;Rust;HTML;CSS;Bash/Shell\n52846|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|41000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|More than 4 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n74298|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n11565|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Haskell;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n13432|China|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|31788.0|1 - 2 times per week|Female;Transgender;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Groovy;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n16723|Russian Federation|Slightly dissatisfied|Mathematics or statistics|12732.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;SQL\n2380|Serbia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|27276.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java\n51735|Poland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|59988.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n80999|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|82000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Bash/Shell\n4046|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|119058.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Haskell;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n77052|United States|Moderately satisfied|Web development or web design|10000.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;PHP;SQL;Swift;HTML;CSS\n33532|India|Slightly satisfied|Web development or web design|4512.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;SQL;VBA;VB.NET;HTML;CSS\n43376|United Kingdom|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|150012.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;Ruby;HTML;CSS\n72696|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|21228.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;PHP;TypeScript;HTML;CSS\n29028|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|66027.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;Visual Basic 6\n39401|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|82500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n94400|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|66674.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;Lua;SQL;TypeScript;HTML;CSS;Bash/Shell\n51679|United States|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|101000.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|PHP;Ruby;Scala;SQL;TypeScript;HTML;CSS\n67118|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|73433.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Haskell;JavaScript;Python;Rust;Scala;SQL;HTML;CSS;Bash/Shell\n2423|India|Moderately satisfied|Information systems, information technology, or system administration|2820.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|PHP;Python\n92180|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|155000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|45 - 54 years old|Less than a year ago|Erlang;JavaScript;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n1381|Brazil|Slightly dissatisfied|Information systems, information technology, or system administration|37428.0|Daily or almost every day|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Perl;PHP;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS\n18603|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|75000.0|1 - 2 times per week|Male|South Asian|Associate degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Objective-C;Swift;HTML;CSS\n74152|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|15000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;Go;Java;JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n33569|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|190000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;JavaScript;Python;HTML;CSS\n25229|Other Country (Not Listed Above)|Moderately satisfied|Computer science, computer engineering, or software engineering|30600.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|PHP;SQL;Delphi/Object Pascal;HTML\n50720|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|125000.0|I don't typically exercise|Male|Black or of African descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Lua;Perl;Python;SQL\n51356|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|101383.0|1 - 2 times per week|Female|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;SQL;HTML;CSS;Bash/Shell\n6774|Hong Kong (S.A.R.)|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|130896.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|I've never had a job|Assembly;C#;Erlang;Java;JavaScript;Objective-C;PHP;Python;SQL;TypeScript;HTML;CSS\n94763|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|43000.0|1 - 2 times per week|Female|Black or of African descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS\n66432|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|19464.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript\n100060|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|100000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#\n47630|United States|Moderately satisfied|Mathematics or statistics|262000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML\n47544|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|55000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n59201|New Zealand|Moderately satisfied|Computer science, computer engineering, or software engineering|87701.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|Go;JavaScript;Lua;PHP;Python;SQL;HTML;CSS;Bash/Shell\n48597|France|Moderately satisfied|Information systems, information technology, or system administration|38184.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Java;JavaScript;SQL;TypeScript;Visual Basic 6;HTML;CSS\n70671|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|140000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;JavaScript;Objective-C;Ruby;Swift;HTML;CSS;Bash/Shell\n58427|Argentina|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|26400.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n70505|Finland|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|64620.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;HTML;CSS\n71718|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|180000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|55 - 64 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Python;Ruby;Scala;SQL;Bash/Shell\n31961|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|84000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n69533|India|Moderately satisfied|Computer science, computer engineering, or software engineering|5640.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS\n91590|Germany|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|85671.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n32597|Japan|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|Daily or almost every day|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS;Bash/Shell\n73273|India|Moderately satisfied|Computer science, computer engineering, or software engineering|20000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS\n60219|Hong Kong (S.A.R.)|Slightly satisfied|Computer science, computer engineering, or software engineering|67351.0|I don't typically exercise|Male|East Asian;South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Python;TypeScript;Ocaml;Bash/Shell\n98153|Australia|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|51983.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;HTML;CSS\n51967|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|185400.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;F#\n44558|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|51408.0|I don't typically exercise|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;PHP;TypeScript;HTML;CSS;Bash/Shell\n43523|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|40388.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|R\n68343|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|63979.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|45 - 54 years old|Between 1 and 2 years ago|C;CoffeeScript;JavaScript;Perl;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n70062|United States|Extremely satisfied|Information systems, information technology, or system administration|70000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;R;SQL\n79309|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|160000.0|I don't typically exercise|Male|Black or of African descent|Primary/elementary school|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n71745|Indonesia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6984.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;PHP;SQL;TypeScript;VB.NET;Visual Basic 6;Kotlin;Delphi/Object Pascal;HTML;CSS\n62008|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|22032.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;JavaScript;Python;Swift;Bash/Shell\n941|United States|Neither satisfied nor dissatisfied|I never declared a major|72000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;VB.NET;HTML;CSS;Bash/Shell\n52581|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Java;JavaScript;Python;Rust;HTML;CSS;Bash/Shell\n69528|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|10824.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python\n9141|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;F#;Java;Python\n100803|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;HTML;CSS\n487|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|87971.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C++;C#;JavaScript;SQL;TypeScript;HTML;CSS\n92012|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;Objective-C;SQL;HTML;CSS;Bash/Shell\n67184|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|24478.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Primary/elementary school|Over 4 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;Python;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n40645|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|175384.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|55 - 64 years old|Less than a year ago|C;C++;Objective-C;Python\n7842|Poland|Slightly satisfied|I never declared a major|12348.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;JavaScript;Lua;TypeScript;HTML;CSS;Bash/Shell\n54102|India|Extremely satisfied|Computer science, computer engineering, or software engineering|18785.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Java;PHP;Python;TypeScript;HTML;CSS\n12334|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|37572.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Python\n5549|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|32160.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;Java;JavaScript;SQL;TypeScript;HTML;CSS\n85263|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|63979.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|C;C++;Java;Objective-C;SQL;Swift\n94464|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|280000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;Java;JavaScript;Lua;Objective-C;Python;R;Ruby;Rust;SQL;HTML;CSS;Bash/Shell\n53082|Japan|Extremely dissatisfied|Computer science, computer engineering, or software engineering|54293.0|1 - 2 times per week|Male|East Asian|They never completed any formal education|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n43419|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|20592.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n60065|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|50400.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;CSS;Bash/Shell\n51539|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|45528.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|Java;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n45478|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|70054.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;SQL;CSS\n93300|India|Slightly satisfied|Computer science, computer engineering, or software engineering|6576.0|1 - 2 times per week|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;SQL\n24330|Sri Lanka|Moderately satisfied|Computer science, computer engineering, or software engineering|16200.0|I don't typically exercise|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;SQL;TypeScript;HTML;CSS\n63727|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|1440000.0|3 - 4 times per week|Female|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Python;SQL;HTML;CSS;Bash/Shell\n96429|Liechtenstein|Extremely satisfied|Information systems, information technology, or system administration|0.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;Swift;TypeScript;HTML;CSS\n28342|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|35768.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Haskell;Java;Scala;SQL;Swift;HTML;CSS\n80964|Argentina|Extremely satisfied|Computer science, computer engineering, or software engineering|14400.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;Python;TypeScript;HTML;CSS\n49057|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|50005.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;TypeScript;HTML;CSS\n49447|United Kingdom|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|53061.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Python;R;SQL;Bash/Shell\n24085|Nigeria|Moderately dissatisfied|Mathematics or statistics|2664.0|I don't typically exercise|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;PHP;TypeScript;HTML;CSS\n59755|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;HTML;CSS\n14849|United States|Extremely satisfied|I never declared a major|120000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;R;SQL;TypeScript;VB.NET;HTML;CSS\n34164|Philippines|Extremely satisfied|Computer science, computer engineering, or software engineering|18192.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n71508|Sweden|Slightly dissatisfied|Computer science, computer engineering, or software engineering|89832.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;F#;Java;Bash/Shell\n18933|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|96000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Go;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n30031|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|135441.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;C#;Lua;Matlab;Python;Bash/Shell\n68789|Japan|Slightly dissatisfied|Information systems, information technology, or system administration|39257.0|1 - 2 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Go;Java;JavaScript;Matlab;PHP;Swift;VBA;HTML\n22841|Poland|Extremely satisfied|Computer science, computer engineering, or software engineering|35292.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n54999|Portugal|Slightly satisfied|Mathematics or statistics|73433.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n34076|United States|Moderately dissatisfied|A humanities discipline (ex. literature, history, philosophy)|82000.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n71431|Ukraine|Moderately dissatisfied|Computer science, computer engineering, or software engineering|14400.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Groovy;Java;Scala\n70262|Switzerland|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|625620.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|65 years or older|More than 4 years ago|C;JavaScript;Perl;PHP;Ruby;HTML;CSS;Bash/Shell\n5280|France|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|42836.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;SQL;Delphi/Object Pascal;HTML;CSS\n101502|France|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Kotlin;HTML;CSS\n47205|United Kingdom|Moderately dissatisfied|I never declared a major|62507.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Rust;SQL;HTML;CSS;Bash/Shell\n41513|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|2000000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;CSS\n41433|Germany|Extremely dissatisfied|Computer science, computer engineering, or software engineering|85671.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;VB.NET;HTML;Bash/Shell\n87857|Turkey|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|22248.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;SQL;Delphi/Object Pascal;HTML;CSS\n69492|Poland|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|70572.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;R;Ruby;SQL;HTML;CSS;Bash/Shell\n85880|United States|Moderately satisfied|I never declared a major|145000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Haskell;Java;JavaScript;Python;Scala;SQL;Bash/Shell\n19053|Philippines|Moderately satisfied|Information systems, information technology, or system administration|15360.0|3 - 4 times per week|Male|East Asian|They never completed any formal education|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;VB.NET\n28210|India|Slightly satisfied|Computer science, computer engineering, or software engineering|3756.0|Daily or almost every day|Female;Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n21359|Switzerland|Slightly satisfied|Computer science, computer engineering, or software engineering|65064.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n89756|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Objective-C;Ruby;Swift;HTML;CSS;Bash/Shell\n12505|South Korea|Slightly satisfied|Information systems, information technology, or system administration|80000.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;Bash/Shell\n13283|Norway|Moderately dissatisfied|Information systems, information technology, or system administration|765138.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C#;Python;SQL;TypeScript;Bash/Shell\n20770|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|100652.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Clojure;Java;Ruby;SQL;Ocaml;HTML;CSS;Bash/Shell\n15281|Brazil|Extremely dissatisfied|Computer science, computer engineering, or software engineering|22452.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Python\n20489|Bangladesh|Slightly satisfied|Computer science, computer engineering, or software engineering|21660.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n2941|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|74885.0|I don't typically exercise|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;HTML;CSS;Bash/Shell\n5875|Nigeria|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|4164.0|3 - 4 times per week|Male|Black or of African descent|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n30029|Brazil|Moderately satisfied|Web development or web design|11232.0|I don't typically exercise|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;PHP;SQL;Kotlin;HTML;CSS\n84753|China|Moderately satisfied|Computer science, computer engineering, or software engineering|82592.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Ruby;SQL;Swift;HTML;CSS\n9193|Paraguay|Extremely dissatisfied|Computer science, computer engineering, or software engineering|200000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS\n60144|France|Moderately satisfied|Computer science, computer engineering, or software engineering|50179.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Objective-C;Python;SQL;HTML;CSS;Bash/Shell\n21376|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|10620.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|PHP;Ruby;HTML;CSS\n55750|Ireland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|85671.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;CoffeeScript;JavaScript;Ruby;SQL;TypeScript;HTML;CSS\n52650|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|12732.0|3 - 4 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n7045|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|58340.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n74974|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|200000.0|3 - 4 times per week|Female|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java;Objective-C;PHP;Python;Ruby;SQL;Swift;VBA;VB.NET;Visual Basic 6\n48918|Denmark|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|89148.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Python;Delphi/Object Pascal\n96692|Brazil|Slightly satisfied|Computer science, computer engineering, or software engineering|21336.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;SQL;HTML;CSS\n23466|Germany|Moderately satisfied|Information systems, information technology, or system administration|16884.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n16315|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|45876.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;Objective-C;Python;Ruby;SQL;Swift\n64699|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|71000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;JavaScript;TypeScript;HTML;CSS\n1225|United States|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|170000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n6917|France|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|58752.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|Less than a year ago|Assembly;C;SQL;Delphi/Object Pascal;HTML;Bash/Shell\n42719|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|89175.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;SQL;HTML;CSS\n44316|Norway|Moderately dissatisfied|Information systems, information technology, or system administration|77789.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Groovy;JavaScript;Lua;Perl;HTML;CSS\n41163|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|156000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Assembly;C;Java;Python;HTML;Bash/Shell\n57059|Russian Federation|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|34176.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java\n71567|France|Slightly dissatisfied|Computer science, computer engineering, or software engineering|51408.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n80244|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n40583|Brazil|Moderately dissatisfied|Computer science, computer engineering, or software engineering|22452.0|1 - 2 times per week|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;HTML;CSS\n63877|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|62000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;TypeScript;HTML\n75721|United States|Moderately satisfied|Mathematics or statistics|120000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;SQL;Bash/Shell\n9044|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|100000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;R;SQL;HTML;Bash/Shell\n94033|Poland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|28236.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n21842|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|63979.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Python;Bash/Shell\n25412|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1800000.0|1 - 2 times per week|Female|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n5637|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|145000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n81885|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|76514.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|Java;SQL;TypeScript;HTML;CSS\n23811|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|36720.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Go;Java;JavaScript;Lua;Objective-C;Perl;PHP;Python;Rust;Swift\n8491|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|155000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Clojure;Python;Ruby\n22497|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|14856.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;Groovy;Java;SQL;Bash/Shell\n54105|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|55562.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n34938|Brazil|Moderately dissatisfied|Web development or web design|33684.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n3527|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;SQL\n33264|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|88000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n99086|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|100000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n73875|Pakistan|Extremely satisfied|Computer science, computer engineering, or software engineering|18000.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;TypeScript;Kotlin\n52562|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;VB.NET;HTML;CSS\n58428|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|135000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|55 - 64 years old|Between 2 and 4 years ago|Perl;Python\n62328|Germany|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|17628.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;Matlab;PHP;SQL\n31791|Ireland|Moderately satisfied|Mathematics or statistics|64254.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n99681|United Kingdom|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|88899.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Matlab;Python;HTML;CSS;Bash/Shell\n49150|France|Moderately satisfied|Computer science, computer engineering, or software engineering|22320.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Lua;PHP;Python;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n2590|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|137000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS\n34691|Denmark|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|69036.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Lua;Python;Bash/Shell\n47689|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|56673.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n28311|France|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|48955.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;HTML;CSS\n73456|Finland|Extremely satisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Clojure;Java;JavaScript;Scala;SQL;HTML;CSS;Bash/Shell\n86363|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|44060.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;PHP;Python;Ruby;HTML;CSS;Bash/Shell\n41676|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|45732.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Python;Scala;TypeScript;HTML;CSS\n30328|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|71976.0|3 - 4 times per week|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java\n49531|Belarus|Slightly satisfied|Computer science, computer engineering, or software engineering|8472.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Python;SQL\n1395|Brazil|Slightly satisfied|Information systems, information technology, or system administration|9360.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n63102|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|127957.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Clojure;JavaScript;Objective-C;Python;SQL;Swift;HTML;CSS;Bash/Shell\n64911|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|966768.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;SQL;HTML;CSS\n39116|China|Slightly dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|13092.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Python;HTML;CSS\n90189|India|Slightly satisfied|Computer science, computer engineering, or software engineering|2256.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;HTML;CSS\n44567|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|122388.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;SQL;VBA;VB.NET;HTML;CSS\n17871|United States|Slightly satisfied|Information systems, information technology, or system administration|58000.0|1 - 2 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n97417|Belarus|Moderately dissatisfied|Computer science, computer engineering, or software engineering|30000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;SQL\n93613|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|38337.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;CoffeeScript;Java;JavaScript;Matlab;PHP;Python;SQL;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n28193|United Kingdom|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|173650.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C;Java;Objective-C;Swift;Kotlin;HTML\n57405|Spain|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32979.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Python;Bash/Shell\n96255|Spain|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|24478.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n56472|Finland|Moderately satisfied|Mathematics or statistics|71232.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Groovy;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML\n83120|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|61194.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n99052|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|67313.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;SQL\n66979|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|92000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Clojure;F#;Go;JavaScript;SQL;TypeScript\n31119|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|173650.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Objective-C;Swift\n38899|Israel|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|64944.0|I don't typically exercise|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Objective-C;Python;SQL;Swift;HTML;CSS\n80757|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|30559.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Groovy;Java;JavaScript;Scala;Swift;Kotlin;Ocaml;Bash/Shell\n62003|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|87000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Java;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n89038|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|822444.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Objective-C;HTML;CSS\n23672|Ecuador|Slightly satisfied|Computer science, computer engineering, or software engineering|42000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Groovy;Java;JavaScript;Objective-C;SQL;TypeScript;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n49372|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|48000.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;HTML;CSS\n22513|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|17592.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n64426|Spain|Moderately satisfied|Information systems, information technology, or system administration|29373.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;SQL\n77327|India|Moderately satisfied|Computer science, computer engineering, or software engineering|15888.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n68270|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|6951.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;TypeScript;HTML;CSS\n19324|Canada|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32209.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;Julia;Matlab;PHP;Python;Bash/Shell\n78291|Sweden|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|56591.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;Java;JavaScript;Ruby;SQL\n19125|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Java;JavaScript;Python;HTML;CSS\n2404|Australia|Slightly satisfied|Information systems, information technology, or system administration|63835.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n84046|France|Extremely satisfied|Computer science, computer engineering, or software engineering|35988.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;PHP;HTML;CSS\n89877|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|67000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n84796|India|Slightly satisfied|Computer science, computer engineering, or software engineering|5256.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n10333|El Salvador|Slightly dissatisfied|Computer science, computer engineering, or software engineering|9432.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C#;Python;VB.NET;Visual Basic 6\n35830|Mexico|Moderately dissatisfied|Web development or web design|13536.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n56268|Canada|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|201303.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Haskell;JavaScript;Matlab;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n33451|United States|Extremely satisfied|Information systems, information technology, or system administration|92000.0|Daily or almost every day|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n81|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73428.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C;C++;C#;Java;JavaScript;VB.NET;HTML;CSS;Bash/Shell\n58242|Bangladesh|Slightly satisfied|Computer science, computer engineering, or software engineering|2604.0|I don't typically exercise|Female|East Asian|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n16314|Nigeria|Moderately dissatisfied|Computer science, computer engineering, or software engineering|3096.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;SQL;HTML;CSS\n48723|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|96626.0|1 - 2 times per week|Female|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Perl;HTML\n19428|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|71500.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Objective-C;Python;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n2382|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|57400.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Java;Python;Ruby\n75427|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|88000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n37441|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|106000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|Python;R;SQL;Bash/Shell\n25755|Netherlands|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61194.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Matlab;Python;Ruby;HTML;CSS\n2367|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java\n81005|Russian Federation|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|24000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n6976|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|60060.0|1 - 2 times per week|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;R;SQL;VBA;HTML;CSS\n51524|France|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|46507.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;SQL;Bash/Shell\n67784|Switzerland|Extremely dissatisfied|Computer science, computer engineering, or software engineering|62556.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;R\n91089|Poland|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|44111.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|45 - 54 years old|More than 4 years ago|JavaScript;Lua;PHP;Python;SQL;HTML;CSS;Bash/Shell\n98712|France|Moderately dissatisfied|Web development or web design|666744.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS\n11126|India|Slightly satisfied|Computer science, computer engineering, or software engineering|10958.0|Daily or almost every day|Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n41240|Singapore|Slightly satisfied|Computer science, computer engineering, or software engineering|54504.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS;Bash/Shell\n71104|Switzerland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|112611.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java\n16345|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|155000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C;C++;C#;Go;Groovy;Java;JavaScript;Lua;Objective-C;Perl;PHP;Python;SQL;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n48980|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|30598.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;JavaScript;SQL;HTML;CSS\n4495|Netherlands|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|105253.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n101524|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|80000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Go;JavaScript;Python;SQL;TypeScript;Bash/Shell\n96543|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n51342|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|40000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Assembly;C;C++;C#;JavaScript;Lua;Objective-C;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n41205|Poland|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32460.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;SQL;Bash/Shell\n89555|Spain|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|35492.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#\n9323|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS\n94866|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|39164.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Java\n46524|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|225000.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|45 - 54 years old|Less than a year ago|C++;Java;Python;R;Scala;Bash/Shell\n12942|India|Slightly satisfied|Computer science, computer engineering, or software engineering|28961.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n28200|United Kingdom|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|58340.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;R\n75631|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|112730.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n14693|Viet Nam|Slightly satisfied|Computer science, computer engineering, or software engineering|7200.0|I don't typically exercise|Male|Native American, Pacific Islander, or Indigenous Australian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|PHP;Python;Ruby;HTML\n84818|Belarus|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|6048.0|I don't typically exercise|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;SQL;Kotlin\n56038|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|58781.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;VBA;HTML\n11653|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Go;Python;Ruby;SQL;Kotlin;HTML;CSS;Bash/Shell\n87536|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|345000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n1790|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n39829|United States|Moderately dissatisfied|Mathematics or statistics|75000.0|I don't typically exercise|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|PHP;Python\n8186|United States|Moderately dissatisfied|Mathematics or statistics|100000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;SQL;HTML;Bash/Shell\n34981|Australia|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|53582.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;SQL;Bash/Shell\n570|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|34726.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;Scala;SQL;HTML;CSS\n9385|Romania|Moderately dissatisfied|Mathematics or statistics|10284.0|I don't typically exercise|Male|White or of European descent|Associate degree|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Java;Matlab\n21140|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6012.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C#;Java;JavaScript;Ruby\n63173|United States|Moderately satisfied|Mathematics or statistics|66000.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;JavaScript;PHP;Python;R;Ruby;SQL;VBA;Visual Basic 6;HTML;CSS\n74670|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|33972.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n2813|Spain|Moderately dissatisfied|A humanities discipline (ex. literature, history, philosophy)|35988.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS\n24634|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|80000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C#;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n30790|Poland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|40584.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;Python;Ruby;HTML;CSS;Bash/Shell\n19820|Costa Rica|Slightly satisfied|Computer science, computer engineering, or software engineering|45000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n6792|France|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|3 - 4 times per week|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Scala;SQL;CSS;Bash/Shell\n50772|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|35244.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n21268|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|58340.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n16814|Switzerland|Extremely satisfied|Computer science, computer engineering, or software engineering|93842.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;Java;JavaScript;Lua;Perl;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n78559|Brazil|Slightly dissatisfied|Mathematics or statistics|524016.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|55 - 64 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;Cobol;HTML;CSS;Bash/Shell\n13456|Australia|Slightly satisfied|Mathematics or statistics|111963.0|I don't typically exercise|Male|East Asian|Professional degree (JD, MD, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C;C++;R;SQL;Bash/Shell\n82479|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|64000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n12687|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|85000.0|1 - 2 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|R;SQL;HTML\n95004|United States|Extremely satisfied|Information systems, information technology, or system administration|84000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;HTML\n68560|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|50000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;Go;Haskell;Java;Python;Ruby;HTML;CSS;Bash/Shell\n73332|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|25003.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n35379|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n490|Ireland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|48955.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Groovy;JavaScript;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n87076|United Kingdom|Moderately satisfied|I never declared a major|44449.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n79639|India|Moderately satisfied|Web development or web design|5640.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;HTML;CSS\n15904|Nepal|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1176.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;Matlab;PHP;SQL;HTML;CSS\n51794|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|48616.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;Kotlin\n63047|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|59980.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Groovy;PHP;SQL;VB.NET;HTML;CSS\n42429|Germany|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|30597.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Python;R;Scala\n32414|France|Extremely satisfied|Computer science, computer engineering, or software engineering|153000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;F#;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n4503|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|122388.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#\n7602|Netherlands|Slightly dissatisfied|Computer science, computer engineering, or software engineering|44064.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n72122|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|170000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Bash/Shell\n3013|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Clojure;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS\n62829|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|79973.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Groovy;JavaScript;Python;Ruby;Bash/Shell\n5123|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;Groovy;Java;Python;Scala;Bash/Shell\n88781|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|51408.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Haskell;Java;JavaScript;PHP;Python;Scala;SQL;Bash/Shell\n63483|United States|Slightly dissatisfied|A humanities discipline (ex. literature, history, philosophy)|110.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|55 - 64 years old|Between 2 and 4 years ago|R;SQL;VBA;VB.NET;HTML\n16053|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|9393.0|I don't typically exercise|Male|South Asian|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;Python;HTML;CSS;Bash/Shell\n69725|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|51403.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n10999|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Lua;TypeScript;HTML;CSS;Bash/Shell\n83532|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|87140.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;Perl;SQL;Bash/Shell\n76724|Switzerland|Moderately satisfied|Web development or web design|145977.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n85116|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Scala\n20951|United Kingdom|Slightly dissatisfied|I never declared a major|60423.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n60284|Sweden|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|C++;Java;Python;HTML\n22627|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|126000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n20435|India|Slightly satisfied|Computer science, computer engineering, or software engineering|15588.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Assembly;JavaScript;Python;SQL;HTML;CSS\n72885|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|49000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;Ruby;SQL;HTML;CSS\n32001|Estonia|Moderately satisfied|Computer science, computer engineering, or software engineering|33780.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n62735|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n5375|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|35292.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS;Bash/Shell\n42856|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|PHP;R;SQL;HTML\n48911|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|128000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;Java;JavaScript;Python;Rust;TypeScript;HTML;CSS;Bash/Shell\n57001|Sweden|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|45960.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n66260|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|125000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;Go;Haskell;Rust;SQL;HTML;Bash/Shell\n73890|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|145000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|55 - 64 years old|Between 1 and 2 years ago|SQL;Bash/Shell\n76127|France|Extremely satisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Clojure;Go;Python;SQL\n19519|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n60684|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n87223|India|Moderately satisfied|Computer science, computer engineering, or software engineering|16152.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n70924|Russian Federation|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|16980.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;Python\n14094|Ukraine|Slightly dissatisfied|Computer science, computer engineering, or software engineering|37200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n66626|Pakistan|Slightly satisfied|Information systems, information technology, or system administration|36000.0|Daily or almost every day|Male|South Asian|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java\n60140|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|130000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;Scala;SQL;Bash/Shell\n91030|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|C;Go;Ruby;Bash/Shell\n53954|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python\n95445|Belgium|Extremely dissatisfied|Computer science, computer engineering, or software engineering|122388.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;Python;Swift\n12183|Italy|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|63642.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;PHP;Rust;SQL;Bash/Shell\n44304|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|138000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Bash/Shell\n77250|Brazil|Slightly dissatisfied|Information systems, information technology, or system administration|13104.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n79913|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|136000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;JavaScript;Objective-C;Perl;Python;Ruby;Rust;Swift;HTML;CSS;Bash/Shell\n78332|India|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|187848.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python;SQL;Bash/Shell\n28716|United States|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|180000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Groovy;Java;JavaScript;HTML;CSS;Bash/Shell\n84879|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|85000.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;SQL;VB.NET;HTML;CSS\n28120|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|2160.0|1 - 2 times per week|Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java\n50021|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|37800.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n100789|Bosnia and Herzegovina|Slightly dissatisfied|Information systems, information technology, or system administration|31705.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS\n90390|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|100000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Groovy;Java;JavaScript;PHP;Ruby;SQL;TypeScript;HTML;CSS\n16471|United Kingdom|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|152794.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;Hack;Java;JavaScript;Python;HTML\n24464|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|98000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n88527|Ecuador|Moderately satisfied|Computer science, computer engineering, or software engineering|21600.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;Matlab;Python;SQL;HTML;CSS;Bash/Shell\n6695|United Kingdom|Moderately satisfied|Information systems, information technology, or system administration|23336.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;Lua;PHP;SQL;Delphi/Object Pascal;HTML;CSS\n90321|Finland|Extremely satisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;JavaScript;PHP;Scala;HTML;CSS\n29047|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|300000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;Java;JavaScript;PHP;SQL;VBA;VB.NET;HTML\n97644|India|Extremely satisfied|Computer science, computer engineering, or software engineering|3756.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Ruby;SQL;HTML;CSS\n4160|United States|Neither satisfied nor dissatisfied|Mathematics or statistics|60000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|SQL;HTML;CSS\n99606|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;CSS;Bash/Shell\n55512|Portugal|Moderately satisfied|Computer science, computer engineering, or software engineering|15864.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;Swift\n50338|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|145000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|Groovy;JavaScript;Python;Bash/Shell\n81234|Portugal|Moderately dissatisfied|Web development or web design|22275.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Lua;Matlab;Objective-C;PHP;SQL;HTML;CSS\n40875|Germany|Moderately satisfied|Information systems, information technology, or system administration|383074.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n72137|India|Moderately satisfied|Computer science, computer engineering, or software engineering|8448.0|Daily or almost every day|Male|South Asian|Primary/elementary school|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n20875|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|11268.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n73453|Czech Republic|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|23172.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;HTML;CSS\n73300|United States|Slightly satisfied|Information systems, information technology, or system administration|50000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n41867|Philippines|Moderately satisfied|Computer science, computer engineering, or software engineering|500.0|1 - 2 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Over 4 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n43320|New Zealand|Slightly dissatisfied|Computer science, computer engineering, or software engineering|86000.0|Daily or almost every day|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Scala;SQL;HTML;CSS\n20538|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n85535|United States|Moderately dissatisfied|Mathematics or statistics|80000.0|Daily or almost every day|Female;Transgender|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Objective-C;Python;SQL;Swift;HTML;CSS\n29774|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|22030.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n46476|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|56376.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java\n24181|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|107500.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n17184|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|95000.0|3 - 4 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Swift;Kotlin\n4356|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|75000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n57826|United States|Moderately satisfied|Mathematics or statistics|86000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;CoffeeScript;JavaScript;R;TypeScript;HTML;CSS;Bash/Shell\n2031|Serbia|Moderately satisfied|Computer science, computer engineering, or software engineering|5880.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;Go;JavaScript;HTML;CSS\n534|France|Extremely satisfied|Computer science, computer engineering, or software engineering|39776.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n11106|India|Slightly satisfied|Computer science, computer engineering, or software engineering|266748.0|1 - 2 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript;HTML;CSS\n29410|France|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|58746.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Lua;PHP;Python;HTML;CSS;Bash/Shell\n71361|Poland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|15876.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;JavaScript;TypeScript;Kotlin;Bash/Shell\n16811|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|5256.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS\n46426|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Clojure;Go;Java;JavaScript;Objective-C;Python;Ruby;Swift;HTML;CSS;Bash/Shell\n43088|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n99172|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|125000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|F#;Haskell;Python;Rust;HTML;CSS\n84987|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;CoffeeScript;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n75959|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|57912.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Objective-C;Swift\n50364|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|62500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|CoffeeScript;Haskell;JavaScript;Perl;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n23574|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|79552.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;Java;Matlab;Python\n52222|France|Extremely satisfied|Computer science, computer engineering, or software engineering|53239.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;JavaScript;Python\n64444|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|39648.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n78138|Australia|Moderately satisfied|Information systems, information technology, or system administration|145552.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Ruby;HTML;CSS;Bash/Shell\n48051|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|31253.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;TypeScript\n61359|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Groovy;Java;JavaScript;Python;Ruby;TypeScript;HTML;CSS;Bash/Shell\n2780|India|Moderately satisfied|Computer science, computer engineering, or software engineering|17220.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Ruby;TypeScript\n63808|Australia|Moderately satisfied|Information systems, information technology, or system administration|79973.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|Python;SQL\n16265|Algeria|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Perl;PHP;Python;HTML;CSS\n101560|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|85000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n12381|Mexico|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|22560.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n78828|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|96538.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;SQL;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n75343|United Kingdom|Extremely dissatisfied|Computer science, computer engineering, or software engineering|38199.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Groovy;Java;JavaScript;Objective-C;PHP;SQL;HTML;CSS;Bash/Shell\n20023|Russian Federation|Extremely dissatisfied|Computer science, computer engineering, or software engineering|25476.0|1 - 2 times per week|Male|Native American, Pacific Islander, or Indigenous Australian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;HTML;CSS\n101179|Canada|Slightly satisfied|Information systems, information technology, or system administration|56365.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Go;Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n55250|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|33684.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Python;Bash/Shell\n30850|United Kingdom|Extremely satisfied|Mathematics or statistics|122930.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;Python;SQL;Bash/Shell\n51819|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n33471|Dominican Republic|Slightly satisfied|Mathematics or statistics|15000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Matlab;SQL;TypeScript;HTML;CSS\n30604|India|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|9393.0|I don't typically exercise|Male|South Asian|Associate degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Python;TypeScript;CSS\n83499|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|23614.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;TypeScript;HTML;CSS;Bash/Shell\n83639|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|230000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n83783|Germany|Extremely satisfied|Mathematics or statistics|111373.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;VB.NET\n79780|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C++;Python;Bash/Shell\n86720|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|30960.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n48282|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|195000.0|Daily or almost every day|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;HTML;Bash/Shell\n84910|India|Extremely satisfied|Computer science, computer engineering, or software engineering|5256.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n100004|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|4800.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;Java;SQL\n75517|Poland|Slightly dissatisfied|Information systems, information technology, or system administration|19056.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Go;Lua;Python;SQL;HTML;CSS;Bash/Shell\n98211|Ukraine|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|18792.0|1 - 2 times per week|Male|Middle Eastern|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n27604|United States|Slightly satisfied|Information systems, information technology, or system administration|80000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;HTML;CSS;Bash/Shell\n23397|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32808.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n46202|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|8448.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C++;Java;Kotlin\n76568|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|169000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Go;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n48134|China|Slightly dissatisfied|Computer science, computer engineering, or software engineering|46752.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Go;Java;JavaScript;Lua;Rust;SQL;TypeScript;HTML;Bash/Shell\n22334|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|16644.0|I don't typically exercise|Male|Middle Eastern|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Groovy;Java;PHP;SQL;HTML;CSS;Bash/Shell\n15385|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|They never completed any formal education|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n82822|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|99967.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;Python;R;Scala;SQL\n97738|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|97233.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;Perl;Python;Ruby;SQL;HTML;Bash/Shell\n16896|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|64417.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Matlab;Python;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n93479|Philippines|Moderately dissatisfied|Information systems, information technology, or system administration|2364.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;PHP;TypeScript;HTML;CSS\n71306|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|7827.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Matlab;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n93666|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Female;Transgender|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;JavaScript;Python;HTML;CSS;Bash/Shell\n50748|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|20664.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;Python;Bash/Shell\n36106|Ethiopia|Slightly satisfied|Computer science, computer engineering, or software engineering|8712.0|1 - 2 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n90850|United Kingdom|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|51394.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Go;Julia;Python;Bash/Shell\n55558|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|44064.0|Daily or almost every day|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n62237|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|134627.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C++;Go;Haskell;Java;JavaScript;Perl;Python;Ruby;Scala;SQL;CSS;Bash/Shell\n97861|India|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|7512.0|1 - 2 times per week|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;HTML;CSS\n36530|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|40388.0|3 - 4 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;R;Scala\n9678|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58869.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Perl\n19688|United Kingdom|Moderately satisfied|Mathematics or statistics|90288.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;VBA;VB.NET;HTML;CSS;Bash/Shell\n15942|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|74500.0|3 - 4 times per week|Male|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n59483|Australia|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|67977.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n61127|Denmark|Extremely satisfied|Computer science, computer engineering, or software engineering|69036.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;PHP;Rust;HTML;CSS;Bash/Shell\n80668|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n69440|Malta|Moderately satisfied|Information systems, information technology, or system administration|55075.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML\n63833|Russian Federation|Moderately satisfied|A health science (ex. nursing, pharmacy, radiology)|55200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n90696|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|C++;PHP;Delphi/Object Pascal\n85099|Sri Lanka|Moderately satisfied|Information systems, information technology, or system administration|17124.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n99863|Sweden|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|43416.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n96909|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|10620.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Java;PHP;Python;Rust;SQL;Bash/Shell\n51449|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|76368.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;JavaScript;Python;Bash/Shell\n62686|Ghana|Slightly dissatisfied|Computer science, computer engineering, or software engineering|10008.0|I don't typically exercise|Female|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Groovy;Java;JavaScript;Objective-C;Python;SQL;Swift;Kotlin;HTML;CSS\n59537|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|2000000.0|3 - 4 times per week|Male|Native American, Pacific Islander, or Indigenous Australian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Python;R;SQL;VBA\n22311|United States|Slightly dissatisfied|A humanities discipline (ex. literature, history, philosophy)|85000.0|3 - 4 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;Python;R;SQL;HTML;CSS\n39522|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|56298.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;R;HTML\n97303|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|115000.0|I don't typically exercise|Male|East Asian;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;SQL;Swift;HTML;CSS\n45144|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|170000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Assembly;C;C++;Python;Bash/Shell\n10607|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|3060.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;Java;JavaScript;Matlab;PHP;HTML;CSS\n3243|Malaysia|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|12132.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Go;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n92845|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|104678.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;Perl;SQL;VB.NET;HTML;CSS\n15321|United States|Extremely satisfied|I never declared a major|50000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS\n95388|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|66027.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;Go;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n29027|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Groovy;JavaScript;Lua;TypeScript;HTML;CSS\n52183|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|19920.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS\n60295|Poland|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|28236.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;HTML;CSS\n93138|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C++;C#;HTML;CSS\n10267|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|89266.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n5998|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|41671.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n14244|Spain|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|33045.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;SQL\n25786|Netherlands|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|30156.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Groovy;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n27262|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;F#;JavaScript;SQL;HTML;CSS\n22522|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|40000.0|I don't typically exercise|Transgender|White or of European descent|Associate degree|Less than 30 minutes|55 - 64 years old|More than 4 years ago|Delphi/Object Pascal\n49890|Austria|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|20556.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Java;Objective-C;PHP;Python;R;SQL;Swift;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n14105|France|Moderately satisfied|Computer science, computer engineering, or software engineering|646212.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n30500|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|30108.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n28912|United Kingdom|Extremely satisfied|Mathematics or statistics|44449.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Python;R;SQL;VBA\n38265|India|Moderately satisfied|Computer science, computer engineering, or software engineering|18785.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python\n17638|Canada|Extremely satisfied|Information systems, information technology, or system administration|48152.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n9686|Nepal|Slightly satisfied|Computer science, computer engineering, or software engineering|91644.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n101333|Japan|Slightly satisfied|Computer science, computer engineering, or software engineering|30252.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n41415|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|36720.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|C#;JavaScript;PHP;Python;SQL;Swift;HTML;CSS\n17445|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|2000000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n68783|Italy|Extremely satisfied|Computer science, computer engineering, or software engineering|12239.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Assembly;C;C++;Java;JavaScript;Matlab;PHP;SQL;Visual Basic 6;Kotlin;Cobol;HTML;CSS;Bash/Shell\n69496|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|44916.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;SQL\n65777|China|Extremely satisfied|Computer science, computer engineering, or software engineering|31167.0|3 - 4 times per week|Male|South Asian|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n26886|Netherlands|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|46992.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n63693|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|140000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Objective-C;PHP;SQL;Swift;HTML;CSS;Bash/Shell\n81657|Philippines|Extremely dissatisfied|Information systems, information technology, or system administration|2880.0|3 - 4 times per week|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;HTML;CSS\n24645|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|122500.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;Python;Bash/Shell\n25501|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|52339.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n56974|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|55000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML\n64248|France|Moderately satisfied|Computer science, computer engineering, or software engineering|64866.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n2996|Pakistan|Slightly satisfied|Computer science, computer engineering, or software engineering|1632.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;C#;Objective-C;PHP;Python;SQL;VB.NET;Visual Basic 6;HTML;CSS\n90854|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|411228.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript\n20057|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|101200.0|Daily or almost every day|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;R;SQL;TypeScript;HTML;CSS\n97256|Belgium|Slightly dissatisfied|A health science (ex. nursing, pharmacy, radiology)|35244.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Perl;PHP;R;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n23532|India|Slightly satisfied|Computer science, computer engineering, or software engineering|2256.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n73523|Bosnia and Herzegovina|Moderately satisfied|Computer science, computer engineering, or software engineering|24972.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n13367|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|14760.0|Daily or almost every day|Female|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS\n10529|France|Moderately satisfied|Computer science, computer engineering, or software engineering|46507.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;JavaScript;Rust;SQL;HTML\n39759|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|44287.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n66148|South Korea|Extremely satisfied|Computer science, computer engineering, or software engineering|62808.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Python\n51814|Spain|Slightly satisfied|Computer science, computer engineering, or software engineering|176244.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|Over 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n64181|United States|Moderately satisfied|Information systems, information technology, or system administration|85000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n730|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|63979.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;Visual Basic 6;HTML;CSS\n23233|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|66767.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|R\n18141|United States|Moderately satisfied|Web development or web design|94000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;PHP;SQL;HTML;CSS\n45551|United Kingdom|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|750084.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS\n93449|United Kingdom|Slightly dissatisfied|Web development or web design|34726.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n10026|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|90000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Matlab;PHP;Python;SQL;HTML;CSS;Bash/Shell\n74621|Australia|Extremely dissatisfied|Information systems, information technology, or system administration|1000000.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n7708|Belgium|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|61680.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n7447|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58746.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Bash/Shell\n79990|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|44300.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;C++;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n28161|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|64417.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Python;Bash/Shell\n10413|Sri Lanka|Moderately satisfied|Computer science, computer engineering, or software engineering|1560.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n95567|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|25008.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|CoffeeScript;JavaScript;TypeScript;HTML;CSS\n100370|India|Moderately satisfied|Computer science, computer engineering, or software engineering|1884.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n54239|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n3153|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|100000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Python\n10899|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|117000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Assembly;C;C++;Go;Haskell;JavaScript;Python;SQL;HTML\n18893|Indonesia|Slightly satisfied|Computer science, computer engineering, or software engineering|3576.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n25177|Germany|Extremely dissatisfied|Information systems, information technology, or system administration|73433.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n73107|India|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|3757.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n88965|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14652.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Hack;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n58969|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|19447.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Matlab;Perl;Python;R;Bash/Shell\n27413|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|88000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n73404|Germany|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|97910.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n17508|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|76397.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;VBA;VB.NET;HTML;CSS\n58546|Denmark|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|164366.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|55 - 64 years old|Between 2 and 4 years ago|C;C#;VBA;VB.NET;Visual Basic 6;HTML\n27955|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|23748.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n100426|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|90000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n99601|Pakistan|Extremely satisfied|Computer science, computer engineering, or software engineering|8676.0|3 - 4 times per week|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n98246|Spain|Slightly satisfied|Computer science, computer engineering, or software engineering|381852.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Python\n30279|Iceland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|116862.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n33525|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|44060.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n48188|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|55000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n76866|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|26640.0|I don't typically exercise|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java\n6252|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|38893.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Matlab;Objective-C;PHP;SQL;Swift;HTML;CSS\n95184|India|Moderately satisfied|Computer science, computer engineering, or software engineering|17220.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n34209|Germany|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|88119.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|55 - 64 years old|Between 2 and 4 years ago|Assembly;C;JavaScript;Perl;Cobol\n8224|India|Moderately satisfied|Computer science, computer engineering, or software engineering|6262.0|Daily or almost every day|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n6928|South Africa|Extremely dissatisfied|A natural science (ex. biology, chemistry, physics)|19584.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python\n64192|Germany|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|44064.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Go;JavaScript;Python;Rust;HTML;CSS;Bash/Shell\n41846|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|45972.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Clojure;Go;Groovy;Java;JavaScript;PHP;Scala;HTML;CSS;Bash/Shell\n50698|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|62507.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;Python;SQL\n71898|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|148000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Clojure;Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n22169|United States|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|115000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n30372|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|38652.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Go;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n17509|Australia|Slightly dissatisfied|Information systems, information technology, or system administration|43985.0|1 - 2 times per week|Male|South Asian|They never completed any formal education|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;HTML;CSS\n76892|Singapore|Slightly satisfied|Computer science, computer engineering, or software engineering|90840.0|3 - 4 times per week|Male|South Asian|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java\n4577|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|118280.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;SQL\n32046|United States|Extremely satisfied|Information systems, information technology, or system administration|150000.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n95347|Japan|Moderately satisfied|Computer science, computer engineering, or software engineering|59424.0|I don't typically exercise|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Objective-C;Python;Ruby;SQL;Swift;Kotlin\n84660|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|127000.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;HTML;CSS\n66907|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|88573.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|PHP;Python;Ruby;Bash/Shell\n40805|Bangladesh|Moderately satisfied|Mathematics or statistics|6612.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;SQL;HTML;CSS\n61661|Sweden|Moderately satisfied|Mathematics or statistics|73433.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;JavaScript;Julia;Python;SQL;HTML;CSS;Bash/Shell\n17582|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|72500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#\n51534|Australia|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Python;SQL;HTML;CSS;Bash/Shell\n32113|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|116268.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C++;Go;Java;Python;SQL;HTML;CSS;Bash/Shell\n6716|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|66084.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Erlang;JavaScript;Ruby\n387|Russian Federation|Extremely satisfied|Mathematics or statistics|20808.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;SQL;HTML;CSS\n24685|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|44328.0|I don't typically exercise|Male|South Asian|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript\n90333|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML;CSS\n99735|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n64408|Belarus|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|9600.0|3 - 4 times per week|Female;Male;Transgender;Non-binary, genderqueer, or gender non-conforming|Black or of African descent;East Asian;Hispanic or Latino/Latina;Middle Eastern;Native American, Pacific Islander, or Indigenous Australian;South Asian;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;Kotlin;Bash/Shell\n55300|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|145000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Objective-C;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n13674|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;SQL;HTML;CSS;Bash/Shell\n86194|Poland|Slightly satisfied|Information systems, information technology, or system administration|17640.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++\n47647|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|51403.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n6954|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|76000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n65285|United States|Slightly dissatisfied|I never declared a major|80000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n61631|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C++;C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n16673|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|57276.0|1 - 2 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;SQL;HTML;CSS\n23474|China|Slightly dissatisfied|Computer science, computer engineering, or software engineering|19632.0|1 - 2 times per week|Male|East Asian|Primary/elementary school|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;Java;JavaScript;PHP;Python;SQL;Kotlin;HTML;CSS;Bash/Shell\n17548|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|52783.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|R;SQL\n77808|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|38650.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;Objective-C;SQL;Swift\n16656|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9393.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;Java;JavaScript;PHP;SQL;HTML;CSS\n17905|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|50304.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby\n4279|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|180000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|55 - 64 years old|Between 1 and 2 years ago|C;C++;Java;Matlab;Python;R;Scala;Bash/Shell\n31114|Malaysia|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|10320.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Objective-C;Ruby;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n61657|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|62380.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;C#\n15160|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|56000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;R;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n67365|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|94000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C#;Go;JavaScript;PHP;Python;Ruby;Rust;SQL;HTML;CSS;Bash/Shell\n13682|Netherlands|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|77104.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Perl;Python;HTML;CSS\n44164|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C;C++;Python;SQL;Bash/Shell\n61263|Iran, Islamic Republic of...|Moderately dissatisfied|Computer science, computer engineering, or software engineering|16644.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n95237|Russian Federation|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|12732.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;HTML;CSS\n13689|Greece|Moderately dissatisfied|Computer science, computer engineering, or software engineering|24478.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n6831|France|Moderately satisfied|Computer science, computer engineering, or software engineering|66089.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;JavaScript;TypeScript\n11878|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|95000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;F#;JavaScript;TypeScript;HTML;CSS\n53400|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|308412.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Primary/elementary school|Over 4 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Matlab;Objective-C;PHP;Python;R;SQL;Swift;HTML;CSS\n4370|India|Slightly satisfied|Computer science, computer engineering, or software engineering|150288.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Python;R;SQL\n46785|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|48616.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n98025|Switzerland|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|118872.0|3 - 4 times per week|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|C++;C#;JavaScript;PHP;Python;TypeScript\n4673|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|3 - 4 times per week|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;Java;JavaScript;Python;R;Ruby;SQL;HTML;CSS;Bash/Shell\n32291|Singapore|Slightly satisfied|Computer science, computer engineering, or software engineering|34067.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Ruby;SQL;VBA;VB.NET;HTML\n34562|Finland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|32316.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;SQL;HTML\n35875|Belgium|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|55812.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;HTML;CSS;Bash/Shell\n788|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|55000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;Lua;Python;HTML;CSS;Bash/Shell\n25607|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Go;Java;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS;Bash/Shell\n15348|France|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|58746.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Objective-C;Swift\n94897|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|44060.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript\n55669|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58746.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n69847|United States|Extremely satisfied|Information systems, information technology, or system administration|83000.0|Daily or almost every day|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;Bash/Shell\n81418|Lebanon|Extremely satisfied|Computer science, computer engineering, or software engineering|13200.0|I don't typically exercise|Male|Middle Eastern|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n72016|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|33280.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Go;Java;JavaScript;PHP;SQL;CSS;Bash/Shell\n95560|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|107000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Java;Scala\n10622|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|115000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C#;Go;JavaScript;Python;SQL;TypeScript\n80194|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|39648.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;VBA;HTML;CSS\n5771|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Java;SQL\n96383|Other Country (Not Listed Above)|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|58340.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n9349|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|150000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n30759|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|56365.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Go;Java;JavaScript;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n82086|Uruguay|Slightly satisfied|Computer science, computer engineering, or software engineering|7992.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;HTML;CSS\n62954|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|95000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n52466|Germany|Extremely dissatisfied|Computer science, computer engineering, or software engineering|58746.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;C++;Python\n5917|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|96626.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;Python;Bash/Shell\n52129|United States|Slightly satisfied|Mathematics or statistics|140000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL;Bash/Shell\n94259|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|180000.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n36813|Colombia|Slightly dissatisfied|Information systems, information technology, or system administration|21300.0|3 - 4 times per week|Male|Black or of African descent;Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS;Bash/Shell\n26385|New Zealand|Slightly satisfied|Computer science, computer engineering, or software engineering|41658.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS\n23720|France|Slightly satisfied|Web development or web design|10284.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n58233|Brazil|Extremely dissatisfied|Information systems, information technology, or system administration|65508.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;CSS\n38718|Iran, Islamic Republic of...|Slightly dissatisfied|Computer science, computer engineering, or software engineering|11652.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;Python\n70644|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|55981.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n80275|India|Slightly satisfied|Computer science, computer engineering, or software engineering|5640.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;JavaScript;Objective-C;PHP;Swift;HTML;CSS\n30508|Pakistan|Extremely satisfied|Computer science, computer engineering, or software engineering|7200.0|I don't typically exercise|Male|East Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;PHP;Swift\n14183|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|30000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java\n55113|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|200016.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;SQL;Kotlin;Bash/Shell\n3756|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|94788.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Matlab;Perl;PHP;Python;Ruby;SQL;VB.NET;HTML;CSS;Bash/Shell\n59679|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|102000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;Python\n26958|Jordan|Moderately satisfied|Computer science, computer engineering, or software engineering|30468.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n42011|Russian Federation|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|8846.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|More than 4 years ago|C;C++;JavaScript;Matlab;Python;Visual Basic 6;HTML;CSS;Bash/Shell\n128|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|14000.0|3 - 4 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS;Bash/Shell\n16168|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|110000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n37058|Russian Federation|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|42456.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|PHP;Python;SQL;VBA\n99799|China|Slightly dissatisfied|Mathematics or statistics|23375.0|I don't typically exercise|Male|East Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java;Delphi/Object Pascal\n14939|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|83224.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;Java\n28530|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|112000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n85452|Saudi Arabia|Moderately satisfied|Computer science, computer engineering, or software engineering|33600.0|3 - 4 times per week|Female|South Asian|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n55769|France|Slightly satisfied|Computer science, computer engineering, or software engineering|48955.0|I don't typically exercise|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;Python;SQL;HTML;CSS;Bash/Shell\n20898|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;TypeScript;HTML;CSS\n574|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|106000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Ruby;SQL\n18121|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|75000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;PHP;Python;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n1295|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|200000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;Java;JavaScript;Python;SQL;Bash/Shell\n98884|United States|Moderately satisfied|Information systems, information technology, or system administration|125000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;Python\n26723|Switzerland|Moderately satisfied|Computer science, computer engineering, or software engineering|125123.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C++;C#;Java;Swift;HTML;CSS;Bash/Shell\n65376|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|55075.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|Java;JavaScript;Ruby;SQL;Kotlin;HTML;Bash/Shell\n318|Slovakia|Extremely satisfied|Computer science, computer engineering, or software engineering|46992.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|CoffeeScript;JavaScript;TypeScript;HTML\n30754|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|24308.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Java;Python;HTML;Bash/Shell\n18398|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|76368.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Python;HTML\n33170|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Python;HTML;Bash/Shell\n95021|Egypt|Moderately satisfied|Computer science, computer engineering, or software engineering|1704.0|I don't typically exercise|Female|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Go;Java;JavaScript;Matlab;PHP;R;Visual Basic 6;HTML;CSS\n79134|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|600060.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n82284|Switzerland|Neither satisfied nor dissatisfied|A business discipline (ex. accounting, finance, marketing)|93842.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;HTML\n64121|Germany|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|78328.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Clojure;Java;JavaScript;Objective-C;Kotlin\n47869|Denmark|Extremely satisfied|Computer science, computer engineering, or software engineering|73636.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Objective-C;Perl;Swift\n68404|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|116500.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n78569|Canada|Moderately satisfied|Web development or web design|101457.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n92034|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|110000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;F#;Lua;Python;SQL;TypeScript;Kotlin;HTML;CSS\n18974|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|960000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;JavaScript\n41811|Netherlands|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|82000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Python;Scala;SQL;Bash/Shell\n63462|United States|Moderately satisfied|Information systems, information technology, or system administration|50000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n37770|United Kingdom|Slightly dissatisfied|Mathematics or statistics|60423.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C;Java;Python;HTML;CSS;Bash/Shell\n62917|Gambia|Moderately satisfied|Web development or web design|3780.0|1 - 2 times per week|Male|Black or of African descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;VBA;VB.NET;HTML;CSS\n32893|United States|Moderately satisfied|I never declared a major|105000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n31671|Belgium|Moderately dissatisfied|Computer science, computer engineering, or software engineering|36720.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML\n42230|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;Objective-C;Python;Swift\n39027|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1056000.0|3 - 4 times per week|Male|East Asian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Matlab;Python;SQL;HTML;CSS;Bash/Shell\n64419|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;JavaScript;Ruby;TypeScript;HTML;CSS;Bash/Shell\n79331|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|67000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Perl;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n30361|Malaysia|Moderately satisfied|Computer science, computer engineering, or software engineering|10620.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Swift\n68174|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;Go;JavaScript;PHP;R;Ruby;SQL;HTML;CSS;Bash/Shell\n51987|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;JavaScript\n53132|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|70000.0|Daily or almost every day|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Java;Python;SQL;Kotlin;Bash/Shell\n27320|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|115000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n81059|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|44064.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Python;Bash/Shell\n52068|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|134500.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;Bash/Shell\n85808|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|156000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;Go;Haskell;Java;JavaScript;PHP;Python;R;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n49935|Mexico|Extremely satisfied|Computer science, computer engineering, or software engineering|16116.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;SQL;HTML;CSS\n68263|India|Slightly satisfied|Computer science, computer engineering, or software engineering|6653.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;JavaScript;PHP;Python;TypeScript;HTML;CSS\n49638|France|Extremely satisfied|Computer science, computer engineering, or software engineering|24478.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C#\n22455|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|105000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;Objective-C;SQL;Swift;VB.NET;HTML;CSS\n43358|Ireland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|97910.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Erlang;Go;Java;Julia;Rust;Kotlin\n26621|Canada|Extremely satisfied|Information systems, information technology, or system administration|96624.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C;C++;Java;JavaScript;Python;Bash/Shell\n73754|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|16164.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n40106|Brazil|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|7488.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;Objective-C;HTML;CSS\n99244|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|883428.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n8608|United Kingdom|Moderately satisfied|Mathematics or statistics|40282.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|More than 4 years ago|C#;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n86327|Colombia|Extremely dissatisfied|Computer science, computer engineering, or software engineering|48000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n56948|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|45000.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS;Bash/Shell\n52348|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;JavaScript;Objective-C;PHP;CSS\n10200|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|17640.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C#;JavaScript;Python;HTML;CSS\n9409|Russian Federation|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|4248.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;VBA;HTML;CSS\n32808|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|55 - 64 years old|Between 1 and 2 years ago|Java;SQL\n81863|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|62001.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Groovy;Java;JavaScript;Perl;Python;R;Scala;SQL;HTML;CSS;Bash/Shell\n100143|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|5213.0|I don't typically exercise|Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;PHP;SQL;HTML;CSS;Bash/Shell\n70731|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|55000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n1368|Ukraine|Slightly satisfied|Mathematics or statistics|4680.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Less than a year ago|Python;SQL;Bash/Shell\n43397|Canada|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80521.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;R;VBA\n99904|Russian Federation|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|31848.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript\n34651|Germany|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|5880.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Groovy;Java;JavaScript;Python;SQL;HTML;CSS\n57063|France|Moderately dissatisfied|A health science (ex. nursing, pharmacy, radiology)|36716.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n20248|India|Slightly satisfied|Computer science, computer engineering, or software engineering|2818.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;TypeScript;HTML;CSS\n80474|Turkey|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|48000.0|1 - 2 times per week|Male|Middle Eastern;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Objective-C;SQL;Kotlin;Bash/Shell\n35332|United States|Extremely satisfied|Information systems, information technology, or system administration|65000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n32312|United States|Extremely satisfied|Information systems, information technology, or system administration|110000.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Go;Bash/Shell\n20981|Finland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|55812.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Ruby;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n11137|Netherlands|Moderately dissatisfied|Computer science, computer engineering, or software engineering|56298.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;Python\n8917|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|43416.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n88005|India|Moderately dissatisfied|Information systems, information technology, or system administration|114588.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n24332|Ireland|Moderately satisfied|Mathematics or statistics|61194.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;R;Scala;SQL\n85515|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|49000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Go;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n84696|Czech Republic|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|55020.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C++;C#;F#;Java;JavaScript;SQL\n73675|Canada|Extremely satisfied|Mathematics or statistics|104678.0|1 - 2 times per week|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS\n7614|United States|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|90000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Python\n52271|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Go;JavaScript;Lua;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n34978|Russian Federation|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|63684.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Go;JavaScript;Python;SQL;VBA;HTML;CSS;Bash/Shell\n42027|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|83342.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n90666|Hong Kong (S.A.R.)|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|41136.0|1 - 2 times per week|Male|East Asian|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Python;R\n37537|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|112730.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|Less than a year ago|C#;Python;VB.NET;Bash/Shell\n92840|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|8808.0|I don't typically exercise|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;TypeScript;HTML;CSS\n56635|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|47500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Perl;Python;SQL;Bash/Shell\n44897|United States|Moderately dissatisfied|Information systems, information technology, or system administration|65000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Groovy;Java;JavaScript;HTML;CSS\n35542|India|Moderately satisfied|Computer science, computer engineering, or software engineering|5256.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n4186|India|Moderately satisfied|Computer science, computer engineering, or software engineering|8268.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Go;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;Bash/Shell\n52890|Singapore|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|59052.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;JavaScript;Ruby;HTML;CSS;Bash/Shell\n16757|United States|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|91000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n79549|Bulgaria|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|14688.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C++;Java;JavaScript;PHP;Python;HTML;CSS\n7530|United Kingdom|Slightly satisfied|Web development or web design|41671.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;Ruby;SQL;HTML;CSS\n95566|France|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|82000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;SQL\n24723|Germany|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|13956.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|C;C#;Go;Java;JavaScript;Rust;TypeScript;Kotlin\n59669|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|112344.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;TypeScript\n83530|Romania|Slightly dissatisfied|Computer science, computer engineering, or software engineering|16152.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;CSS\n86270|Netherlands|Slightly dissatisfied|Web development or web design|117492.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Scala;Bash/Shell\n24131|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|52627.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Haskell;Java;Python;Scala\n82203|Slovakia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n99525|Norway|Slightly satisfied|Computer science, computer engineering, or software engineering|68862.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;CSS\n88071|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;JavaScript;Perl;Bash/Shell\n33564|Mexico|Moderately satisfied|Computer science, computer engineering, or software engineering|74772.0|3 - 4 times per week|Female|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Python\n53824|India|Moderately satisfied|Computer science, computer engineering, or software engineering|9396.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Haskell;JavaScript;Python\n93400|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Rust;SQL;HTML;CSS;Bash/Shell\n42596|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|33000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n33851|Mexico|Moderately dissatisfied|Information systems, information technology, or system administration|35448.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|3 - 4 hours|55 - 64 years old|More than 4 years ago|Assembly;C;C++;Java;SQL;VBA;VB.NET;Visual Basic 6;Cobol\n33801|Libyan Arab Jamahiriya|Slightly dissatisfied|Computer science, computer engineering, or software engineering|42635.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Java;JavaScript;PHP;TypeScript;HTML;CSS\n34032|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|C++;C#;Python;SQL;Bash/Shell\n66419|Morocco|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9744.0|3 - 4 times per week|Male|Middle Eastern|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n16543|Belgium|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|51648.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript\n87954|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|84000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Python\n51798|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n80368|United States|Moderately satisfied|Web development or web design|70000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n34307|Greece|Slightly satisfied|Computer science, computer engineering, or software engineering|12239.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;Python;Scala\n85481|United States|Slightly satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|147000.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C#;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n88959|Lebanon|Extremely satisfied|Computer science, computer engineering, or software engineering|16800.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Haskell;Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n41742|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n32689|Brazil|Slightly dissatisfied|Computer science, computer engineering, or software engineering|13104.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n25353|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|110000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS\n27912|France|Extremely satisfied|Computer science, computer engineering, or software engineering|64866.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Assembly;C;JavaScript;Perl;PHP;Python;SQL;VBA;Delphi/Object Pascal;Cobol;HTML;CSS;Bash/Shell\n80795|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|24000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift;Kotlin\n58766|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|134000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;Bash/Shell\n27933|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|66000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;Python\n86625|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|42000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;JavaScript;SQL;VBA;HTML;CSS\n36922|Turkey|Moderately satisfied|Computer science, computer engineering, or software engineering|10488.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|They never completed any formal education|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;Python\n72952|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|6384.0|I don't typically exercise|Male|South Asian|Associate degree|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n31603|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;PHP;SQL;TypeScript;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n60232|Russian Federation|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|26532.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Python;Scala;Bash/Shell\n91713|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|56365.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Go;Java;JavaScript;Lua;Python;SQL;HTML;CSS;Bash/Shell\n53449|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|23891.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n58620|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|87127.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n61515|United States|Slightly satisfied|Mathematics or statistics|73000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;Swift;VBA;HTML;CSS\n36826|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|22452.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java\n29257|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|75000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Python;R;SQL;Bash/Shell\n94000|France|Slightly satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|39164.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;HTML;CSS\n85999|Bosnia and Herzegovina|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|29376.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Objective-C;Swift\n19953|India|Extremely satisfied|Computer science, computer engineering, or software engineering|18780.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n82345|Switzerland|Moderately satisfied|Information systems, information technology, or system administration|131379.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;Java;JavaScript;PHP;Scala;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n65380|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Go;JavaScript;Ruby;HTML;CSS;Bash/Shell\n35226|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|51408.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Python;VBA\n51531|Mexico|Moderately dissatisfied|Information systems, information technology, or system administration|16116.0|I don't typically exercise|Female|Black or of African descent;East Asian;Hispanic or Latino/Latina;Middle Eastern;Native American, Pacific Islander, or Indigenous Australian;South Asian;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Ruby;SQL;TypeScript;HTML;CSS\n28258|United Kingdom|Moderately satisfied|Mathematics or statistics|55562.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;HTML;CSS\n92128|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|101000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C++;Groovy;Java;JavaScript;HTML;CSS\n8823|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|15276.0|3 - 4 times per week|Female|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Haskell;Java;JavaScript;Matlab;Python;R;SQL;HTML;CSS;Bash/Shell\n94202|United States|Moderately satisfied|Web development or web design|32500.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n94144|Ukraine|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|48000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n25231|Kenya|Moderately satisfied|Mathematics or statistics|40824.0|I don't typically exercise|Male|Black or of African descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|PHP\n23670|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;PHP;Python;SQL;Swift;TypeScript;HTML;CSS\n27434|France|Moderately dissatisfied|Web development or web design|48955.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;Swift;Bash/Shell\n66250|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|PHP;SQL\n97892|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|2000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|55 - 64 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n88132|Russian Federation|Slightly dissatisfied|Mathematics or statistics|27600.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n87288|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|140000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n44962|United States|Slightly satisfied|Web development or web design|175000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|35 - 44 years old|More than 4 years ago|JavaScript;HTML;CSS\n24302|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|1 - 2 times per week|Male|Black or of African descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;CoffeeScript;Go;Java;JavaScript;Lua;Objective-C;PHP;Python;Ruby;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n81708|Austria|Moderately dissatisfied|Computer science, computer engineering, or software engineering|142872.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|C;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n35755|Israel|Extremely satisfied|Computer science, computer engineering, or software engineering|154476.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Groovy;Java;JavaScript;Python;SQL;HTML;Bash/Shell\n36342|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|44060.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n97060|Brazil|Moderately satisfied|Information systems, information technology, or system administration|5616.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n49651|Cyprus|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|51408.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;Bash/Shell\n3826|United Kingdom|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|145849.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Objective-C;HTML;CSS\n97944|United Kingdom|Slightly satisfied|Information systems, information technology, or system administration|76397.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;Perl;SQL;HTML;CSS;Bash/Shell\n75725|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|86716.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C;JavaScript;Perl;PHP;SQL;CSS;Bash/Shell\n12153|India|Moderately satisfied|Computer science, computer engineering, or software engineering|52442.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Java;Lua;Matlab;PHP;Python;R;Scala;SQL;HTML;CSS;Bash/Shell\n85983|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|100000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;Matlab;SQL;TypeScript;HTML;CSS\n35562|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|24972.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Matlab;Objective-C;PHP;Python;SQL\n80333|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|74000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n42389|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|50448.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Go;Java;Matlab;PHP;Python;HTML;CSS;Bash/Shell\n76912|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|123000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;SQL\n23596|Russian Federation|Slightly satisfied|Information systems, information technology, or system administration|12204.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;HTML;CSS\n56958|United States|Moderately satisfied|Web development or web design|70000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|PHP;HTML;CSS\n85820|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|C#;Groovy;Java;JavaScript;Python;SQL;TypeScript;Bash/Shell\n91042|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Delphi/Object Pascal\n13046|Spain|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|16884.0|1 - 2 times per week|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;HTML;CSS;Bash/Shell\n27017|Spain|Neither satisfied nor dissatisfied|Web development or web design|31821.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|CoffeeScript;JavaScript;TypeScript;HTML;CSS\n78483|Brazil|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18715.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python;R;SQL;Bash/Shell\n42468|Nepal|Extremely dissatisfied|Information systems, information technology, or system administration|1000.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n74344|Switzerland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|93840.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift;Kotlin\n19990|Austria|Slightly satisfied|Computer science, computer engineering, or software engineering|42360.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;SQL;TypeScript;Kotlin;HTML;CSS\n61052|United States|Moderately satisfied|Information systems, information technology, or system administration|151000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n71568|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|25308.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Ruby;SQL;TypeScript;Visual Basic 6;HTML;CSS\n47023|United States|Moderately satisfied|Mathematics or statistics|115000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;Perl;Python;SQL;HTML;CSS\n82643|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|42000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Python;Ruby;Bash/Shell\n9619|India|Moderately satisfied|Computer science, computer engineering, or software engineering|9960.0|Daily or almost every day|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Groovy;Java\n40725|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|112000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;VBA;HTML;CSS;Bash/Shell\n72808|United States|Moderately satisfied|Information systems, information technology, or system administration|85748.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Clojure;JavaScript;SQL;Visual Basic 6\n56542|France|Slightly dissatisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n54482|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|38184.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Ruby;HTML;CSS\n86364|United States|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|123500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Go;JavaScript;Objective-C;Python;Swift;Bash/Shell\n71560|Japan|Slightly satisfied|Computer science, computer engineering, or software engineering|72031.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;JavaScript;Matlab;Python;R;TypeScript;HTML;CSS\n67168|Saudi Arabia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|19200.0|3 - 4 times per week|Male|Black or of African descent;East Asian;Hispanic or Latino/Latina;Middle Eastern;Native American, Pacific Islander, or Indigenous Australian;South Asian;White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n85454|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|East Asian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n59967|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C++;C#;JavaScript;Python;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n100644|Portugal|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|14688.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Python\n8643|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript\n52973|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|62000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;HTML;CSS\n46440|South Africa|Extremely satisfied|Computer science, computer engineering, or software engineering|63512.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Objective-C;TypeScript;HTML;CSS\n52766|Australia|Moderately satisfied|Information systems, information technology, or system administration|51983.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n82119|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|61194.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++\n23072|Hungary|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|21432.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Objective-C;Python;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n37129|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|76500.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;CSS\n2041|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|130000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;JavaScript;Objective-C;Ruby;SQL;Swift;HTML;CSS\n87531|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|97233.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Kotlin;HTML;CSS\n77409|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|70000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;Erlang;Go;Haskell;Java;JavaScript;Objective-C;PHP;Python;Ruby;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n74811|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|65000.0|I don't typically exercise|Female;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n84361|Croatia|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|32364.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;Java;Python;Rust;Scala;Bash/Shell\n89574|Bosnia and Herzegovina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|7512.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n2185|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|71250.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n98951|United States|Extremely satisfied|I never declared a major|85000.0|I don't typically exercise|Female;Transgender|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n25172|United States|Moderately satisfied|Information systems, information technology, or system administration|98000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Go;JavaScript;Python;SQL;HTML;CSS\n72753|Germany|Slightly dissatisfied|Mathematics or statistics|77104.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Matlab;Python;Bash/Shell\n63125|Viet Nam|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|4800.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n36708|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|245000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n47885|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|135000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C++;C#;Objective-C;Perl;Bash/Shell\n95952|Dominican Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|22356.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Ruby;SQL;VB.NET\n44360|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|7860.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Matlab;Objective-C;Python;Ruby;Swift;HTML;CSS;Bash/Shell\n73319|Switzerland|Extremely dissatisfied|Computer science, computer engineering, or software engineering|121995.0|I don't typically exercise|Female|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;Python;Scala;SQL;Bash/Shell\n4346|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|5640.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n37351|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|37504.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Assembly;C;C++;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n44823|United States|Moderately satisfied|Mathematics or statistics|120000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Python;R;SQL;Bash/Shell\n15005|Australia|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|159947.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Assembly;C;C++;C#;Erlang;Groovy;Java;JavaScript;R;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n98834|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|79552.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Scala;SQL\n23981|United States|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|Assembly;C;C++;Java;JavaScript;Matlab;HTML\n65730|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|87000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;PHP;HTML;CSS\n35899|Ukraine|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|4680.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;HTML;CSS\n74470|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|440592.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Java;Python;R;SQL;HTML;CSS\n59521|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|52627.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;HTML;CSS;Bash/Shell\n51190|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|50004.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;Matlab;Python\n75724|India|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|50094.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C++;Go;Java;Rust;Kotlin\n58353|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|130000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS\n50731|Ukraine|Extremely dissatisfied|Computer science, computer engineering, or software engineering|25200.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Python;Swift;Bash/Shell\n90041|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n99603|Lithuania|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|36720.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Go;JavaScript;Python;Bash/Shell\n33013|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|110000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n42628|Hungary|Extremely satisfied|Computer science, computer engineering, or software engineering|43668.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;JavaScript;Python;HTML;CSS\n20170|Kenya|Moderately satisfied|Computer science, computer engineering, or software engineering|8160.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n77546|Sweden|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|51152.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Assembly;C;C++;Groovy;Perl;Python;SQL;Bash/Shell\n80459|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|69452.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;Python;SQL;VBA;VB.NET;HTML;CSS;Bash/Shell\n80088|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|27000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n20353|Spain|Slightly satisfied|Computer science, computer engineering, or software engineering|15298.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;SQL;HTML;CSS\n56375|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|62000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n42375|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|7140.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Java;Matlab;Objective-C;PHP;SQL;Swift;VB.NET;Visual Basic 6;HTML;CSS\n"
  },
  {
    "path": "examples/sample-book/ext/splice/splice-resize.js",
    "content": "const bodyEl = document.body;\nbodyEl.style.background = 'red';\n\nconst growBtn = document.createElement('button');\ngrowBtn.textContent = 'Grow';\ndocument.currentScript.parentElement.appendChild(growBtn);\n\ngrowBtn.addEventListener('click', () => {\n  const currentHeight = bodyEl.clientHeight;\n  const newHeight = currentHeight + 100;\n  bodyEl.style.height = `${newHeight}px`;\n  window.parent.postMessage(\n    {\n      subject: 'lti.frameResize',\n      height: newHeight,\n    },\n    '*'\n  )\n});\n"
  },
  {
    "path": "examples/sample-book/frontmatter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<!-- ############################################### -->\n<!-- The preface in the \"no-parts\" version           -->\n<!-- omits cross-references to parts, which          -->\n<!-- exist in other versions.  Please keep           -->\n<!--                                                 -->\n<!--     frontmatter.xsl and frontmatter-noparts.xsl -->\n<!--                                                 -->\n<!-- in sync as much as possible.                    -->\n<!-- NB: this difference should move to versions?    -->\n<!-- ############################################### -->\n\n<frontmatter xml:id=\"frontmatter\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <bibinfo>\n\n        <author>\n            <personname>Thomas W. Judson</personname>\n            <department>Department of Mathematics and Statistics</department>\n            <institution>Stephen F. Austin State University</institution>\n            <email>judsontw@sfasu.edu</email>\n        </author>\n\n        <editor>\n            <personname>Isaac Newton</personname>\n            <institution>Trinity College</institution>\n        </editor>\n\n        <credit>\n            <title>Sage Exercises for Abstract Algebra</title>\n            <author>\n                <personname>Robert A. Beezer</personname>\n                <department>Department of Mathematics and Computer Science</department>\n                <institution>University of Puget Sound</institution>\n                <email>beezer@pugetsound.edu</email>\n            </author>\n        </credit>\n\n        <date><today /></date>\n\n        <credit>\n            <role>Cover Design</role>\n            <entity>Covers 4 U</entity>\n        </credit>\n        <credit>\n            <role>Production Editor</role>\n            <entity>Vilma Mesa</entity>\n        </credit>\n\n        <edition>Annual Edition 2015</edition>\n\n        <website>\n            <url href=\"http://abstract.pugetsound.edu\" visual=\"abstract.pugetsound.edu\"/>\n        </website>\n\n        <website>\n            <url href=\"http://abstract.pugetsound.edu\" visual=\"abstract.pugetsound.edu\">Some text to test bug report</url>\n        </website>\n\n        <copyright>\n            <year>1997<ndash />2015</year>\n            <holder>Thomas W. Judson, Robert A. Beezer</holder>\n            <minilicense>GFDL License</minilicense>\n            <shortlicense>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the appendix entitled <q>GNU Free Documentation License.</q>  All trademarks<trademark /> are the registered<registered /> marks of their respective owners. An <url href=\"https://example.com\" visual=\"example.com\">external link</url> is included<fn>A second footnote, as well.</fn> to test its footnote.</shortlicense>\n        </copyright>\n\n        <keywords>\n            <keyword>abstract algebra</keyword>\n            <keyword>PreTeXt</keyword>\n            <keyword>samples</keyword>\n        </keywords>\n\n        <support>\n        <p>This work has received assistance from numerous volunteer contributors.</p>\n        </support>\n    </bibinfo>\n\n    <titlepage>\n        <titlepage-items/>\n    </titlepage>\n\n    <colophon xml:id=\"front-colophon\">\n        <colophon-items/>\n    </colophon>\n\n    <!-- A section of its own in HTML, migrates to copyright-page in LaTeX -->\n    <!-- Titles are optional, presumably none for single author,           -->\n    <!-- or for every author, even if we test a mix here                   -->\n    <biography xml:id=\"author-bio-TWJ\">\n        <p>Thomas W. Judson did his undergraduate work in Illinois, his graduate work in Oregon and presently teaches in Texas.</p>\n\n         <p>He likes to ride his bicycle in France, especially in the high Alps and Pyrenees on the roads of the Tour de France.</p>\n    </biography>\n\n    <biography xml:id=\"author-bio-RAB\">\n        <title>About Robert A. Beezer</title>\n        <p>Rob Beezer designed, wrote, and tested the Sage exercises as a contribution to this open source project.</p>\n\n         <p>He also likes to ride his bicycle, and once rode with Tom Judson in the high Alps, in addition to some hiking there, up above the passes the cyclists ride.</p>\n    </biography>\n\n    <!-- The following items must be placed in the desired/required order -->\n    <!-- This will be checked by a Document Type Definition eventually -->\n    <!-- Order: dedication, acknowledgements, forewords, prefaces -->\n\n    <!-- Each paragraph gets centered and has some vertical separatation -->\n    <!-- A line element may be used here with a single paragraph   -->\n    <dedication xml:id=\"dedication\">\n        <p>\n            <line>To students of algebra everywhere</line>\n            <line>they are the reason</line>\n        </p>\n        <p>And to those who teach them</p>\n    </dedication>\n\n    <acknowledgement xml:id=\"acknowledgement\">\n\n        <p>I would like to acknowledge the following reviewers for their helpful comments and suggestions.<ul>\n            <li><p>David Anderson, University of Tennessee, Knoxville</p></li>\n            <li><p>Robert Beezer, University of Puget Sound</p></li>\n            <li><p>Myron Hood, California Polytechnic State University</p></li>\n            <li><p>Herbert Kasube, Bradley University</p></li>\n            <li><p>John Kurtzke, University of Portland</p></li>\n            <li><p>Inessa Levi, University of Louisville</p></li>\n            <li><p>Geoffrey Mason, University of California, Santa Cruz</p></li>\n            <li><p>Bruce Mericle, Mankato State University</p></li>\n            <li><p>Kimmo Rosenthal, Union College</p></li>\n            <li><p>Mark Teply, University of Wisconsin</p></li>\n        </ul></p>\n\n        <p>I would also like to thank Steve Quigley, Marnie Pommett, Cathie Griffin, Kelle Karshick, and the rest of the staff at PWS Publishing for their guidance throughout this project. It has been a pleasure to work with them.</p>\n\n        <!-- Added NSF support statement.  TWJ 8/9/2012 -->\n        <p>Robert Beezer encouraged me to make <em>Abstract Algebra: Theory and Applications</em> available as an open source textbook, a decision that I have never regretted.  With his assistance, the book has been rewritten in PreTeXt (<url href=\"https://pretextbook.org\" visual=\"pretextbook.org\"/>), making it possible to quickly output print, web, PDF versions and more from the same source.  The open source version of this book has received support from the National Science Foundation (Award #DUE-1020957).</p>\n\n    </acknowledgement>\n\n    <preface xml:id=\"preface\">\n\n        <p>This text is intended for a one or two-semester undergraduate course in  abstract algebra. Traditionally, these courses have covered the theoretical aspects of groups, rings, and fields.  However, with the development of computing in the last several decades, applications that involve abstract algebra and discrete mathematics have become increasingly important, and many science, engineering, and computer science students are now electing to minor in mathematics. Though theory still occupies a central role in the subject of abstract algebra and no student should go through such a course without a good notion of what a proof is, the importance of applications such as coding theory and cryptography has grown significantly.</p>\n\n        <p>Until recently most abstract algebra texts included few if any applications. However, one of the major problems in teaching an abstract algebra course is that for many students it is their first encounter with an environment that requires them to do rigorous proofs. Such students often find it hard to see the use of learning to prove theorems and propositions; applied examples help the instructor provide motivation.</p>\n\n        <p>This text contains more material than can possibly be covered in a single semester.  Certainly there is adequate material for a two-semester course, and perhaps more; however, for a one-semester course it would be quite easy to omit selected chapters and still have a useful text.  The order of presentation of topics is standard: groups, then rings, and finally fields. Emphasis can be placed either on theory or on applications. A typical one-semester course might cover groups and rings while briefly touching on field theory, using Chapters<nbsp />1 through 6, 9, 10, 11, 13 (the first part), 16, 17, 18 (the first part), 20, and 21. Parts of these chapters could be deleted and applications substituted according to the interests of the students and the instructor. A two-semester course emphasizing theory might cover Chapters<nbsp />1 through 6, 9, 10, 11, 13 through 18, 20, 21, 22 (the first part), and 23. On the other hand, if applications are to be emphasized, the course might cover Chapters 1 through 14, and 16 through 22. In an applied course, some of the more theoretical results could be assumed or omitted. A chapter dependency chart appears below. (A broken line indicates a partial dependency.)  See the <xref ref=\"sample-book\" text=\"custom\">Table of Contents</xref> for more.</p>\n\n        <!-- Alternate paragraphs, one tests how a cross-reference to a \"part\" really works -->\n\n        <p component=\"no-parts\">This real text has been used as the basis of a sample book for testing <pretext/>.  So it is slowly migrating away from what the real book looks like and should not be construed as representative.  For example, we have reduced the book to four chapters.</p>\n\n        <p component=\"with-parts\">This real text has been used as the basis of a sample book for testing <pretext/>.  So it is slowly migrating away from what the real book looks like and should not be construed as representative.  For example, we have reduced the book to four chapters, broken into two parts, <xref ref=\"part-basics\"/> and <xref ref=\"part-algebra\"/>.  Indeed, that previous sentence was more an excuse to test some cross-references with parts in the structural case, such as this one to DeMoivre's Theorem, <xref ref=\"theorem-demoivre\"/>.</p>\n\n        <!-- Replaced figure with tikz figure - TWJ 6/14/2010 -->\n        <image xml:id=\"preface-dependencies\">\n            <latex-image>\n                <![CDATA[\n                \\begin{tikzpicture}[scale=0.8]\n\n                \\draw (3.5,0) rectangle (6.5,1);\n                \\node at (5,0.5) {Chapter 23};\n\n                \\draw (3.5,1.5) rectangle (6.5,2.5);\n                \\node at (5,2) {Chapter 22};\n\n                \\draw (3.5,3) rectangle (6.5,4);\n                \\node at (5,3.5) {Chapter 21};\n\n                \\draw (0,4.5) rectangle (3,5.5);\n                \\node at (1.5,5) {Chapter 18};\n\n                \\draw (3.5,4.5) rectangle (6.5,5.5);\n                \\node at (5,5) {Chapter 20};\n\n                \\draw (7,4.5) rectangle (10,5.5);\n                \\node at (8.5,5) {Chapter 19};\n\n                \\draw (3.5,6) rectangle (6.5,7);\n                \\node at (5,6.5) {Chapter 17};\n\n                \\draw (10.5,6) rectangle (13.5,7);\n                \\node at (12,6.5) {Chapter 15};\n\n                \\draw (0,7.5) rectangle (3,8.5);\n                \\node at (1.5,8) {Chapter 13};\n\n                \\draw (3.5,7.5) rectangle (6.5,8.5);\n                \\node at (5,8) {Chapter 16};\n\n                \\draw (7,7.5) rectangle (10,8.5);\n                \\node at (8.5,8) {Chapter 12};\n\n                \\draw (10.5,7.5) rectangle (13.5,8.5);\n                \\node at (12,8) {Chapter 14};\n\n                \\draw (3.5,9) rectangle (6.5,10);\n                \\node at (5,9.5) {Chapter 11};\n\n                \\draw (3.5,10.5) rectangle (6.5,11.5);\n                \\node at (5,11) {Chapter 10};\n\n                \\draw (0,12) rectangle (3,13);\n                \\node at (1.5,12.5) {Chapter 8};\n\n                \\draw (3.5,12) rectangle (6.5,13);\n                \\node at (5,12.5) {Chapter 9};\n\n                \\draw (7,12) rectangle (10,13);\n                \\node at (8.5,12.5) {Chapter 7};\n\n                \\draw (3.5,13.5) rectangle (6.5,14.5);\n                \\node at (5,14) {Chapters 1--6};\n\n                \\draw (5,1) -- (5,1.5) (5,2.5) -- (5,3)  (5,4) -- (5,4.5)  (5,5.5) -- (5,6)  (5,7) -- (5,7.5)  (5,8.5) -- (5,9)  (5,10) -- (5,10.5)  (5,11.5) -- (5,12)  (5,13) -- (5,13.5);\n\n                \\draw [dashed] (6.5,0.5) -- (12,0.5) -- (12,6);\n\n                \\draw (12,7) -- (12,7.5) (12,8.5) -- (12,9.5) -- (6.5,9.5) (8.5,8.5) -- (8.5,9.5);\n\n                \\draw (8.5,5.5) -- (8.5,6.5) -- (6.5,6.5);\n\n                \\draw (8.5,13) -- (8.5,14) -- (6.5,14);\n\n                \\draw [dashed] (3.5,0.5) -- (-0.5,0.5) -- (-0.5,8) -- (0,8);\n\n                \\draw [dashed] (3.5,2) -- (-1,2) -- (-1,12.5) -- (0,12.5);\n\n                \\draw (1.5,5.5) -- (1.5,6.5) -- (3.5,6.5);\n\n                \\draw (1.5,8.5) -- (1.5,9.5) -- (3.5,9.5);\n\n                \\draw (1.5,13) -- (1.5,14) -- (3.5,14);\n\n                \\end{tikzpicture}]]>\n            </latex-image>\n        </image>\n\n        <p>Though there are no specific prerequisites for a course in abstract algebra, students who have had other higher-level courses in mathematics will generally be more prepared than those who have not, because they will possess a bit more mathematical sophistication. Occasionally, we shall assume some basic linear algebra; that is, we shall take for granted an elementary knowledge of matrices and determinants. This should present no great problem, since most students taking a course in abstract algebra have been introduced to matrices and determinants elsewhere in their career, if they have not already taken a sophomore or junior-level course in linear algebra.</p>\n\n        <p>Exercise sections are the heart of any mathematics text. An exercise set appears at the end of each chapter. The nature of the exercises ranges over several categories; computational,  conceptual, and theoretical problems are included. A section presenting hints and solutions to many of the exercises appears at the end of the text. Often in the solutions a proof is only sketched, and it is up to the student to provide the details. The exercises range in difficulty from very easy to very challenging. Many of the more substantial problems require careful thought, so the student should not be discouraged if the \tsolution is not forthcoming after a few minutes of work.</p>\n\n        <!-- Removed reference to the solutions manual.  TWJ 8/19/2010 -->\n        <!-- A complete solutions manual is available for the instructor's use.  -->\n\n        <p>There are additional exercises or computer projects at the ends of many of the chapters. The computer projects usually require a knowledge of programming. All of these exercises and projects are more substantial in nature and allow the exploration of new results and theory.</p>\n\n        <!-- % Added Sage blurb, RAB 2011/07/28 -->\n        <p>Sage (<url href=\"http://sagemath.org\" visual=\"sagemath.org\"/>) is a free, open source, software system for advanced mathematics, which is ideal for assisting with a study of abstract algebra. Sage can be used either on your own computer, a local server, or on SageMathCloud (<url href=\"https://cloud.sagemath.com\" visual=\"cloud.sagemath.com\"/>). Robert Beezer has written a comprehensive introduction to Sage and a selection of relevant exercises that appear at the end of each chapter, including live Sage cells in the web version of the book.</p>\n\n        <attribution>\n            <line>Thomas W. Judson</line>\n            <line>Nacogdoches, Texas 2015</line>\n        </attribution>\n\n    </preface>\n\n    <preface xml:id=\"contributors\">\n        <title>Contributors to the 4<m>^\\mathrm{th}</m> Edition</title>\n\n        <p>Many individuals have made this book possible.  We will try to thank a few of them here, and hope we have not forgotten anybody really important.</p>\n\n        <contributors>\n            <contributor xml:id=\"tjudson\">\n                <personname>Thomas Judson</personname>\n                <department>Department of Mathematics and Statistics</department>\n                <institution>Stephen F. Austin State University</institution>\n                <email>judsontw@sfasu.edu</email>\n            </contributor>\n\n            <contributor xml:id=\"dfarmer\">\n                <personname>David Farmer</personname>\n                <institution>American Institute of Mathematics</institution>\n                <email>farmer@aimath.org</email>\n            </contributor>\n\n            <contributor>\n                <personname>Robert Beezer</personname>\n                <department>Department of Mathematics and Computer Science</department>\n                <institution>University of Puget Sound</institution>\n                <location>Tacoma, Washington, USA</location>\n                <email>beezer@pugetsound.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Alex Jordan</personname>\n                <department>Department of Mathematics</department>\n                <institution>Portland Community College</institution>\n                <location>Portland, OR</location>\n                <email>alex.jordan@pcc.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Thomas Judson</personname>\n                <department>Department of Mathematics and Statistics</department>\n                <institution>Stephen F. Austin State University</institution>\n                <email>judsontw@sfasu.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>David Farmer</personname>\n                <institution>American Institute of Mathematics</institution>\n                <email>farmer@aimath.org</email>\n            </contributor>\n\n            <contributor>\n                <personname>Robert Beezer</personname>\n                <department>Department of Mathematics and Computer Science</department>\n                <institution>University of Puget Sound</institution>\n                <location>Tacoma, Washington, USA</location>\n                <email>beezer@pugetsound.edu</email>\n            </contributor>\n\n            <contributor xml:id=\"ajordan\">\n                <personname>Alex Jordan</personname>\n                <department>Department of Mathematics</department>\n                <institution>Portland Community College</institution>\n                <location>Portland, OR</location>\n                <email>alex.jordan@pcc.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Thomas Judson</personname>\n                <department>Department of Mathematics and Statistics</department>\n                <institution>Stephen F. Austin State University</institution>\n                <email>judsontw@sfasu.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>David Farmer</personname>\n                <institution>American Institute of Mathematics</institution>\n                <email>farmer@aimath.org</email>\n            </contributor>\n\n            <contributor>\n                <personname>Robert Beezer</personname>\n                <department>Department of Mathematics and Computer Science</department>\n                <institution>University of Puget Sound</institution>\n                <location>Tacoma, Washington, USA</location>\n                <email>beezer@pugetsound.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Alex Jordan</personname>\n                <department>Department of Mathematics</department>\n                <institution>Portland Community College</institution>\n                <location>Portland, OR</location>\n                <email>alex.jordan@pcc.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Thomas Judson</personname>\n                <department>Department of Mathematics and Statistics</department>\n                <institution>Stephen F. Austin State University</institution>\n                <email>judsontw@sfasu.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>David Farmer</personname>\n                <institution>American Institute of Mathematics</institution>\n                <email>farmer@aimath.org</email>\n            </contributor>\n\n            <contributor xml:id=\"rbeezer\">\n                <personname>Robert Beezer</personname>\n                <department>Department of Mathematics and Computer Science</department>\n                <institution>University of Puget Sound</institution>\n                <location>Tacoma, Washington, USA</location>\n                <email>beezer@pugetsound.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Alex Jordan</personname>\n                <department>Department of Mathematics</department>\n                <institution>Portland Community College</institution>\n                <location>Portland, OR</location>\n                <email>alex.jordan@pcc.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Thomas Judson</personname>\n                <department>Department of Mathematics and Statistics</department>\n                <institution>Stephen F. Austin State University</institution>\n                <email>judsontw@sfasu.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>David Farmer</personname>\n                <institution>American Institute of Mathematics</institution>\n                <email>farmer@aimath.org</email>\n            </contributor>\n\n            <contributor>\n                <personname>Robert Beezer</personname>\n                <department>Department of Mathematics and Computer Science</department>\n                <institution>University of Puget Sound</institution>\n                <location>Tacoma, Washington, USA</location>\n                <email>beezer@pugetsound.edu</email>\n            </contributor>\n\n            <contributor>\n                <personname>Alex Jordan</personname>\n                <department>Department of Mathematics</department>\n                <institution>Portland Community College</institution>\n                <location>Portland, OR</location>\n                <email>alex.jordan@pcc.edu</email>\n            </contributor>\n        </contributors>\n\n        <p>That's it.  Thanks everybody.</p>\n\n    </preface>\n\n</frontmatter>\n"
  },
  {
    "path": "examples/sample-book/gen/datafile/beach-datafile.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"image/jpeg\" pi:base64=\"/9j/4AAQSkZJRgABAQEAkACQAAD/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAHCAlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8DU+T65zWxpel3Emhz3C+XJbs3lOv8SEc7sViopON2eMdq7r9nuxh134paRpt5DcXFpfXKwyxQfNJIGIXj8+/FTTw9WtJU6XxGUpKK5mc8srxOi7iwI4NVNY3F93pX1l+2n/wTK8Qfs4eDo/GmmT/ANq+H2XdfgR+XJpbs3yq2eHHYle9fJt2fOiX19R2oxGEnhqvsq2jW5hRrU63v03oR6VqT2UyyQs26M7vfiv0S/YV0n4K/tfeDYdL8UaedB8b6OP9ImtbvyY9UhA/1gj6MysUDDqVL1+cSFoJf4vXpWz4a8S3nhu/S6s7mazmXOHjYoefcV6mW5l9UfvQUk+/6mePwjrx912fc++v+CmP7BHhD4ReCf8AhNvh6yWekWMqWN9C995i38zcZtwx3MFzgnpXzl+zZ+0Vffs6a5crbz3xsb+ynjvLeCXyhI7wSRxMw7+W0m6siP49WesfCmXSb/T76/16EqLHUn1J5IbVc5YeS3XI7jvXEatcLNdw3ELPuaLEgY8g9z+NfPZ1KniK7dkk+2x0Zdz0KSi3d9z0P9n7x9Y6fNquh6ncSafb61ApF/FKytayQnzFIA+9uIC8/wB6vYPg9+0lrurfDvxAupXk99faVGHhnunLvLG52AOx5bbzj0BAr5Y0exMk8kjOypHzkdDXo/g/U7m48OXDRr5MLRmJ1x/rh8rD8iB+Yr5rNMto14NNbms8Jz6yRo6jPqupw6l4gkkkmYfMxz1A449q9D8KfFfVJvhBb6PbahqEWj3E7Xc9gJ2EDz4++U6FwCOewxXYfsw+NPgnF4Bfw78RrO4XUDL5v2tmcLGPQFcEcfUZ7V6ldSeA/wBtHVofh98NdPtdBm8MaZJJoM8qCJtYkU5eFzxy43MjHktx2rzJ4J4yt9RwlNynpbotFf8AQ5q+IjBbWPAfhhoV94m8ZQm1ha4NqrXdxyTtgjG6Q/lxV79qv4Q+NPDfi/VfEGpeH9V0eP7cGkS3gcQ28e1BHIsuCPmUA5XpnrXunwW+GXiP4CfDvxsviLwH4gsdc8Z2D6J4euZ7RtrTB1WeMZAyQhLEjsM9Oa+hPjJ8KPEnxHlmvLG7uro6FpJg1BppT/ZEqNBsa0CgsFuMjbkAc85Ga+14X4Zq1cNVc6ck4yS3trbX1PNxONjRqxmuq1PzL+Evx/0DwN8SdN1bxRo1t4mtVdhf299Gt2lwjqQrHzAcuNzV2/iT9ob4f6r8OIrXRPCi2WrxzCWK8lhSd0/dBPv9eWUfn3617zL+wZo/jyxs3k8G6xp667YHdHaXMAeMKjbJV3DbjzFClWIOeK+fPi7+xXH8IvEGmWK+LdJ09b628+IM8k4cFQYmDKMDzFK4z9wghsEGvcrYHH4PCLDym4xv1/L5lUcThK1TmitTy6HVo/HdveQ3Ec9pJNuNuA5MMS85RN3ILHAwP7tfZH/BLX4laxqOiJ4N0nxUumq9wLmO38nzZxJj5tjjBUPtwQ3FfKOufBnxz8F77Q9bv9Nkht3kE9nJJH51vcASBcnbwRuBzj1rsPB/x0utI+Jd34o1zQDb3F3dC4uv7F3WTwnOdi4OAhx+JzWOBrV8DV550vX0NsdTjXg6cGfr9F+x/Y3vifUNb1OX7dfazCsd2LhsLG2UYOg6I8bruBHOa7DwnqEOkn+y9UtYbG6twJTFCvl7ifvSIF7NgEjsTXyf+xN+3C/xM1u80XR9XmvGniaS0stYuVup1kXlo0KnzXDKSMlexwSRX1sl1Y+OLWOG5ZrDUo/3sszALLaucYEZOM+38OPev0/Kc2o4iknTjyo+HxmEr05WmZes/s4eHfEPgW402xtbWH7ZO0v20xLJOFkctIBIRuGVJH418ma7/wAEptR+EfjWPxF4Yl0PXNNlQpe6PfwmJIlccsrgHbIOCHHINfb0Fnc6NLGs2oXUGSE3SKskL++cZDHqQQB7+ulK91aMyyJb3kOCW8phHJj6Ela9PEYShXadWNzjo4yrRfuH5KeLP+CcHjo3F1q2mW+s2mlqslzd2zSm4niAaTIVz/reCOfRxntXO6h+xl4tGk2OrrodjcJZxwi80+5ha3mnRuWGV4Rhjg9fm9K/XKTTobe8ZrOQQRsAxjmUw7GPcA4ORjqMj68VKdBt2urp7pbQLeACR4U3ebxj5lAJz7jj6V5P+ruCc7pWvqeis6rRXK9j5c+Evw38LweDNPmk0/XPh34isIRAL+J4pGvYniBUSFVKuisqYYruHl89BXu/w48TSaFpFrpupXUK6iYk/e5+0NfA9HBA2nPuBW74p+Hfh++SG4upre2kQhlJZVA+XZuVDkMcDHIHb2rDt7u68F6zZww6bca5Dd7o4WSDy9pADE7nIU9+BwK9SnFU1pscVSr7XXqeA/tx+MP+Fm/tA/DP4X6pNcab4R8QXFzNqrg7G1CS3SOWG3UDgIS4yR3DDtX1B4dsfD/gjwtp+geHYbOx0vy2gtEtFDW9uFK7uex5J+tfLv7Vfwqh/bA+MWh/25a6x4ZsPBovI7ZbVke9v5yyiKWCVWEe2PczEB2JG4cYIFv9l7xDcR2Z0q51uz07xF4J1EaZqmmTzpHayq5zDeohO7LYXeOV5J7Vx4fEuE5U5bTbf3HfiMKqmGjHrHU+l9F0+Pwo7aLHC0OnW8rzWcvmZaDzJGfyz/sq5cfTFblqnmH/AEpF8wvvGehrnbHxbam7aS+t1s9yoqyxN5trMCN2RIuenqefWut09lvERleO4gbo6neF9ea9ONS55FTTcxtD8JWdpqPnGzjjnt5ZHhOf9WXLAt+IFbBsUd/9XGzdjjoatLb4O7+I85obCp97PHT1rXmOUz7pvKi6KvmHLHHpUtuN3zKqqWxhunGf8agurSS51aeTLeXZgJ1+Vj/XFWrndIjLG2ZBzjHTjqf889KjmNCq8yTTqF8uZfLRY9jY2DAzn8acbi6X5fsqM3YmQYIHris/SrRXv76zure4W4jnMolAOyVWw2Qw4PPbtWqtnLEytJcSNGpyQcdMeo+o/MVFOnyu5pUqc1kLCJNuZCrMeyj5V9hSn/dx9BU/l8t/d7fSkVVY/K2cHnnp6VsZjWyelMcev54qYxjJqh4jg1CXSJl0h7OPUCP3JvFZ4c5HULhume4ou1sAzUtDtfENt5F3bxXEecjevKH1Vuq/Va8/+KPjLWvhJZXbaHDN4quBYy6imn3svl/Z4owiFhcj+AsR8kgJJJ24Na2k6P4m1jS7W6sfFRW4mdzfwzWUbxx87SI8YdSpGV3k9ea5/wAReEIoPG+l2uoX+qaxqmuTmLVLlYci204O8lvFIqARwxvMiqG6sd55FY1ZNqx0UoqL1dx3gr9mzSYNHj1bXIJvEHiq9u116e4u5X8uO88s7I0iJ8tUXOwAgnjOeak8KTPJ+zJ4Qvrfbe3dhpmnywLcMFMsyRxqYWONoy2UPHGDXqsS5vFdmwm8EnrtwRk578dq8/8AhsyXXwrtLNeFjjmlhBhKSErcyBkaPqrI2cgjIyM1U9GifaOUXfueP/Hn9k66+Muj2mqeG1tPCXjKzSbSr+aO5a2JjmUpJbho8KQqM7J8v3iDX4/eL/gF4i+Cnxe1Dw7qTJoPirw7Ov2a2f5VmkXDIUf7pBA3+hJr98rXwlaat4y1ZpluG877LeRPG5Bgm2sC69g5CkA8jJr4B/aV/Yp17/goL40+N3iO1v8ATh4u+H+uwaJpMER/0e/ghtQxjMg5V3+9yBhyQcDFfOZ5lbxcEqS/ebpn0mR5n7JuNf4Op69+ztrfwu/4KY/s43+j+JtF0mz8X3FgdJ1ZFwt7BLgOlzE3f50MgI9CvQ15j+xb4hTwd8Tta+BPxi03w5oeueFrLztJ8SW7R2eo3S/cjPm4IO6E5AOeOK/OvwV4p8Z/sdfG631L7NeaPr/hufy7iyvEaAn+Aq4zkcNgHHcYzXs/iX4+f8Ns/FbR73/hBfEWt+JF06KwmCzrJcTsmxQxMMaDjkAdRuGTXiRzvExjGjWX72Oi318tD13lNJTk6cr05a+h+kWka8nwv8ONqTarpMemx+Hf7OsL9bc29vc7ZJCsd15RwLhdzKgKFX34ypOKnuf2k/D+jXGoXWsReIH8NpFaXllNZ20jRWc0qKCjuhyrbgCBxyWr4xtf2ZPjP4P0q3bw34JfSRqQf7RFDqNxeMQ4kij84KziN4mzkBcgsC2Ooydc+IH7QHwK8PXdjqS3l5ptvPFLexbluorZAo2s5J3KpBPzEABu4NddTNMdB81Wi0utun3nNHJsNONlVTfRM+r/ABL+1T4m/Z58J22sX2k63qXg/XrqRdHk1GOK1n8h23eWpXeY0A3hFZfmXJLAgLXf/Bv9prSvHczL4R1C11R9YYH7Lc3DxyWDHJYtuX06BBjJzXwlrHxxsf2hfCV1psel+FZtU8Yb7bTbWfxKYpvDUyIiB/JfcV8xixUuoGXIB4IL/hj4u8X/ALMPxW1CHxBoN9aa7aPFpaIPn2lYxsjDgBD8gUl+PXNeBj+Ja1OXPh9Ut073B5CmuWSSflsfXH7b3iK/0fQPDOk6jaadDJrWqSNE+mSSy3DtGgiRpDgDDZGAV/hbjqRp/Fj4uRfCT4LXHgrWLTS9SjvtOk0yCObVIZ5JpGhcKQqjOUyrbGPy9M15Nq3xi0z4+eILXSfFen+JbHU11BCE061neez05C0kV0ViUkMZCUJH9/JIB58P+NnwUuPDGsXd5pviC+utHvrxtR0lbm+juXgmMmGS4lGfLYbC5DlRgAAseKrAZ28TUnjfhbtFXfSyvudFTKeSlDDz6Xl+J97aN4r8YeLvBXh/wvNHpWnrcWUKXes214ZMxx7IiEiAGZCd+VL8YBO4EAeF/Hn/AIJsW/hi1k1DwreeIb5orRpZ0vXX7HfoSxaF2iCMm8EgFAMZ5yK5v4l/tIxa/wDCnwZpFne6U2vaZqj2st4JjZtcpHFvVGztdZJDtBZo8bgVIBBr03QP209C+J/iCz0218PataafdIsczpfh5DeRbSLaNclVDnAyeGCEDk162KzLBVKHJWjfS66/c7aHnUaOIp1P9n0j1PnPVv22Pih8C5bVvip8M7fVrGJol07W1sBDJDGvmCPlQI5sB1O4sudqccV9w/sY/tteHP2wLPV5vD0l2q6Mtuh+1mOOcu0Y3MVHYMOo65xXjfjH9obRYfh3Lovj678K6roupahI9va3OfJMLR5VSpO9HGckHpkAc185fETVPBf7P/jXT/ix8Gdct/D81n5K3OkRyuLO7mViHTGNxV14IBAHXNeLgeK8NQhGpSqu0dHTnrt1Uv0NsRl8cSnFws316fM/UlvDeg+DdHmkh0zSdLtYUeV1W1jjRQSztkKAcliXPua/JX/go94wt/ix8T9H0rRbxdQsft26S7/s5bdfMkJXywE+d0jwzD1BI717Nd/tlab8Qfhbfa58T7v4gXOtLaveJpWgWrWunQQN86xxJjLRkHY0zuWIGcZNfPP7J0Fv47+M+l6lqGoaBZWN9q0FjPDqx+0xQTTsxt4gjFWkxtA3AjkjnmujiHiKWZRpUMHJSUviVveMsqyn6rz1qv2T7Ql/Zz0P9nrwJ4Vm8L6fpHinV/DelSLM95HIYb0HErT+RtwLmXADP1CgcnaKT4W/sfad8bPCkmseJLuSw8Pos/nWen825gYrNmKcksXUqV3lQVxjB6V6PefGG++Ceg6loPxA1SPxAyme8j1Lw7LGMQPKSsbRKWliKj5RvLZwRmvNf2XmjvPHWq6h4T/4T5vDl1PKbOOGWGeG3VzuUC3JLEBlfzBjgbsHPFfRYj6vKUMNUhFpfFG2l/xPP9tXUJVE9e/U8U+MP7P918KfGnhHR/EHiLxprOl69cCO80zYykWDyuIUL5OWddvyNgnPaur8BfsreB/hz8R7fwv4s8F3lvonjy7uLXSNT1MpLtEkZEA2ggxSK7bQ4YHLAnqa+2fi58P9J+NHgO+0XXo9VgW5VZor+1sJoprWdeUlQhSfMV+cdK+fvE3wp+J/xg+A+q6NfeLPCa2OhziyGp3OmeZqFusEyZuGdCoVzsDD5d3GecV6FPJcPhpurhlyt62VlyvpbyfVEwzCpUShN2l3PBPih/wRVTw1rEK6drepXjXsNxOsUNl5sdpsf5BJ8ykpsYZwCSQeO9eD+MP2NPil+zD4Nsfip8Odcm1bTo4ZBJqGkiWG60sj5HEsbDeAG54HH419O/Br/goV4i/Z4tpPDnjLS9W8e6nY3V5YWWr6ffB98K3BjDsjLlgXUhc4zt68Ua1+1brnh3xIsWoR6lotv40+1JPo4tP+JeWRkj84Sr/rXKCUPGiqDIqDnBI+dxVbJqt4VcPy1PtW6eaa01+Z7GHxWOpby5l0Pk34W+PvG37UHgGPRYPE3h2W60N1caLdWUVnLeZyxKzgBpHZ8tt3DJ61X+N37Lfia31qOZbOwU6pGkiTi4Z7VCFJYiYgKpRwylWAI9TXtXxc/YE8OfEvxlB4g+C2rWPh66Qm5aOTUT9ngkAyqxtt3q6nIdWG0EcE9a6D9lH41eJLbwt4w8FeL4bTUhbpJNHpdzpv7q7k3AOGn5TJC7gT0Ct0zXxuZYzBYaLVSLqwjtKLfMr6Wf8AwD2qdR8vPRdu67nxz4L0fxdoFr9g0i81TS9L8S7opLRZWitb4RZ3Fnb93IM549667w34r1z4b+OWutJ1CSxutFsVFzNbsgbc6gMcD5TgMw/GvpzUfjR8L/H/AMOdU+G2u+D20TUtBuZZtPmhlJtY7gt+8aPcQoPOdpwteH/GfSvDvh6C50DTdL0OG4tbMyWl5v2zagzPkecU+RWGcYyQcDnORXyeKzLLatKCoykqnVNbenfTqbU6knJqpEy18PaH8UdN/thtV8nxAkzpNEbWOGERCPttGCx/vdya4vxl8NJfh++j6po+o4vLqDduDjaW6vjjuGUdeSpp+h65rXwr1a3k1uytW0iYmJ57bIilYEMVZv4e3Ney+JvAVl8Qvhv/AGnb6oLc2sCpZ6TtkgjjjyzAwyShVd8Oc9RnNTVzWPIqU0veVkw5LOyPL/BPx81yTwVfeH5NP0mb7Q5nN9JaoLo7eCDJtJkB7Kc4r0y3+Pmm+Bfhcui6vqj2utyqVhSGHzSxHAy/Y/T+7XzmPGKeCNYn02SyjeNONsqskkf0Pv1445qtomgWHi3xC011dtbpFMqJaT+c8tySxH7vYCcjBOAMkDNWsRXbg535Ybf8AJYKMr26m94q8e+LLDS7621G51BrC4UxqHl3LI33k4+poqLxN4CRPFs+lrdtf3MPKTLcHylXH8Ky4JYDsOaKw9pSb5rbl1JeyfIj5nbIq94W8S33g/XbPUtNuprO8sZFmimj4aNlIYEH1BAP4VRbrxj86QJk/wB32r7OnUlGXNHQ6HZxsz2v9of9vj4j/tQ+C9K0XxZrTXtvpzNK5RdhvZD/ABSgcMVxwfevG7Z2D7eTnoTTFtzt+Xk9hUsaMO360p1HJuctX3Ip04wjy01ZElxYMr7c5Y8j2qSSzkgEf3S3saubDNCvygtjmnWEEc1wEZTu9q45VXuHMJpWnSXEqn7qjnGa6PQ7abWnjj2/IrFN2OBn/wDVWXDp/wBlk3nf5foehrSstSmvMW8K+So5ULxiuGtJz+EuO9zrf+EVsNKt/s9w32iQEEqh6H3rs/DthDFYLPdRumn2+1ZNg+6MjhfRiD1PpXnHhDQNc17xVp+l2Ecl5fahMsUUWMvKxICgD61+8P7NH/BOrwX4E/ZTs/BfiTw/Z6nda1aLNrUzpiWWYgH5Xxxs6Ag4yD1r6PIeC8TmGGniKk2orReb8rnBnGfUsNaPWX3n5OfEv9k24b7Pq3g24uvEmjaiFlUbczQ5HRh/EB0z7V7b/wAEyf2VfEln8eINX1LTTYtp8DPAZYxKY9xw0qg91A4HvX2Bpn/BJseB9c2+HfHl9DouT5Vnf2CXBiHZQ6upPpnFe/fs/fs3WfwM0+Y/a21HUp1EclwVChEByVQZ4yTz75rfh3gnM8NjOfFOPs463T94+Yx2c0p02odTJu9EvLHxlaya9b2esQ6WggstWZGhNoJdo8xox8gY9NwGPlHrXVfYNJ1CdlmYWOsY2mXIZ5e/J6SL2xjNdLqumyC8+1fZ2ureSIQSwKqsduc7gGIUkehODWO9vZXVutm940Kxcxwz2+ZoD/dVsAnHTcCc4zX65ThGCtBf1/mfNVK0qmr6GZf+Hb43yyWNrolvdXEYgubh4Wk+0RqwIQJ2HJ68V4X+0f8A8E8l+N91My30NjNcBI2dlVo5schFBUmNBjHBr6Y0TTI9PkH727um7z3BA49h1rQ1OLzZreMcbpcsf7uCa5sVgKGJXJXV1uVh8VUoy5qbsfMfgn4TSfAHwRpvhbxz4c0PxN4eXdGdVjgVvsq/M43BgSoDZww9RVLSP2DPgr8Y9b1HW7O3sbi/1G4jlWJCURPK6AIOcHjJHvX1TrWgWuvabJa3cH2i3mRo5I2bAdWGD+lcaP2bvC9vLpslnaTabc6Vt8i5tJTFLxyd3Zsn1rhqYHEQqKVJxcOzV38jqp45SjeTakePeBP+Cevw5+HPjz+1rPQFtNSUmSPkkREtuLwOCHjbI4PpkdCa7e48B+KPAWvXVx4f1RdUN4I/Oj1QL2PQuq7nPJxuPpXfWHhLXBqoW91aG809V3RBIPLkV8kjceS2OPSt5LeO4haGWP5ujD+LPqP88V2ujCpG848r8v8AgGUsVUi9Zcxn29kt3pqxXdhF8yDcioChOPm4+uMd6rxwJpy7YRG0P/PGWLDL/usOn0rWIksQI5FkkTHEqA/hkDnI55xinHUIHb7wY9lGdw+vFdUdNDmlNt3MmK4ju42t7i137QNvmRhwc/7XtitOG0ht0XyYoo14yETrU1vC3zMeN/QHngVLs2ryT19K0MnLU5Gw8O3j63fyXqQwtNMy2k0KBikOEIBJ6Hd5lakfguxuZoWuo2vngOUN05lCHkEqD93IrZ8nJ+gyDQ0XIbPKjkVnHYbqSvocZ4g8KraXWnzabaW6zWM2Y4ljCAK2WkwOgyWOfUknvXmPxh+AV5qN/b/EHwPY6PZ+ONFjeO8tp4I2h8RWQ3F7SQ4+R8co/Y8d694htfPla4kGPMHlhQOSvv8A56VXaJdHvSfLVI5gCWVc7SOgI9PfrWVSjGWj3OqhipxPHfhx4u8I/H3wToXiLw/H/Y+oKTCRpzLDd6W4DLJbzIvClSMFHGDjjitzS/FUnhjWJ5DfWWpt5a+aiAW874J+dUHyE9MsvzDFed/tLfs7eKPAviHWviJ8Lbex+1axaofEuiqfLbVCkgJu4DwqzhNwIJ/ecHg5r17wvqVj8Q/DWlzabD5nm26zWl/bQqohcj7jDOQ3BDKeDggEkGsINr3ZPU6akYyh7Wn7y7D7z41eH0eBVu2Nys2DHsIctjntjFQH4ial4jVodMhgh5K+fM7swzx8qrgbvRj3qCLxhDrnjnT9NuLWO31KCOR7mJYyYnTA2SRseDkYyASVO4EA4FegWVvHHFuhh2gjPC9vy4rojytatnFUUYMwtJ0e6a1SLatnbRgAJt3STD1YnkNnrWpaJHbSyRpu+Vcux71LDcvIXUtDHtPRzjge/Ssa31ia48QKIYN0DW/mtKCAZQhO4AHn9OnPTmq9oloY8rZN4iItmdvMaORY87h2I6D8a0HTfYk/xMgJ/ID+lc9d6guv6U5ZZoW1GZIbdWTOArcNx/eweK25tQjkstrMWeSQxg7fmOMk8DoOO/tQpalTTtYteSHQZ9MjIqvPbeUu+LCyLyOOGq5AJJBuZeGAIXI4GKLllgtmb2Kj/ePSr5mZrcijRXjV1BUOM4PaoNVs5rywljt7qSzmYfJMi7jG3YgHg1btLby7WJc/MqAHPrT3jye4+lPmfUo4+28F+INN1O4mt/EUM0Ny6zmG609WEUnRmTawAyOenWq/wm8Haj4ettf/ALeu4tY1i91V5Jr8QeStzFtXyFVMnasce1evLKW713KwnHT8TWN4u8caT4G/s/8Ate8SxXVp/s1r5ittlfaXzwOBhW+Y4HGM5IrPmhe5pGUmuVGgy/Nu59j3GPavDfih+0Z4b+DWs3Gi61dXWk3moarHc6anln7RcpM6+asSn7x8zcMKcbXU16W3xm0OS9khtf7a1JViEoubDSbq6txnjb5kcbLn2zmvJrvwNrP7Rf7UWoXWveEY4fAvhfSo7PT7rV7SSO6N5JIJ2kgVgMcqqtuA+UAAk5rGs5PSN/mb4Wnytyq7HRfDz45aPq3iHxzqmoFdD0rw/axsRqS+TdQQR7vMdkPzLG7nCkEg5HNeSfsteMNY0/8AaZ+IHi6Tw/q3hn4efFSaLUtKGrNHbtc3cMASSbDNvUyKpbb3ApP2sf2S/DPjZvh7o+tT6hC2reKzpN4LRihksJFlumsnIZcxM0eVfdlcAKGNdz8e/wBlxfGHhyO8j1rVtX0nS5ILnTNJu72V41UQGEx7shkLhgdwyVC4xnIrk9nWu1f4bW+Z6Efq0dI3tPTU+cv+CnH7NOl/tmeBfFfxC8LWc194m8HwI1s8AJmu7WFGFysy+uFymMsVyrZDV8S/8E1/jHD8Gfj1EdViSTQNUibT755BxAjgAPkcjGeSOQcHtX6xLe3fhbw9p91D4SsdPt9Hvbayj8QWOpMbaZGYQyNO4jSUookUsW4Jj4bvX5U/tqfAZ/2fP2mNYXQZn1TwvrTtfaNfRIRDeROfnRGB5CSMV3BiDjqa+c4gpzhFYuHxR3PfyeqpweFm9OnlY/VjQfG+k+EvBk1nda7NJqGn27XWn63axrczmwO+Vh8oI5iRyS4+YjceQKd4S+J/xA8TIt5b6fHqXh7VII0sLrXLpLf7Sr7i7GFA3mLgDAyDzX55fs+/8FF2+HOlyWusfZNDuLbSUsBDLp0l5Dryq5BE5RkKMFMe1skEAgg5Nes+Fv8AgqXpmg6bY6guswjxJb3l1v0rStEZrW1tnA2/aGmZWZQ5cjyfmTHArDB8UUJrmrya06bM4cRk9em3yr5m1+1Z+wN8MfEHw08ReNNJ1vUvCuradLJOZIbYzadJdMUKRIq5wh/eLkEHk5GK+aNW8Ua18KdD8P2PjzQYdD1Ce6k1GG/srt4Teo8YijYwqTwCC24cnp7Vq3n7e3i3QPFlxa+Hdcs5r7UZJ5xJcwJPFO0jDy9qHcIiY5HB8zJwMccVyniv4wN4q/aD0HxJ4osbXxRe2F1tuNNuZEeFVjyPLbbtURhmxhW6DNfNZvn1DEv2dOnyvurbfqezgYV6VvbS5kelaJ+0ZpqSQ6TbfEG4sdS8M2Bi0rULCz3RSKyhWtrwy4c7lYbT0Bj56il+GXj7T9e1G4Fzf301qscDlgv2dftOciTYCRJtIP3uDnivE/j5bxfFrxvNL4T0Wx+y22qG2F9a3JPnO/K26oQAEG4hN3zfK/JqXw74W8V+DLDUFh0lpLW0Yz3RRvOlsCOCGBOeRk/3SDnIHNfE4zLq1SjyYe7cXe+z1116M9ac4z1b1Pqbx/4F0C78XWMd9JDoP/CRJYwW+vhiDJcqUWSQzDnznSNWO75TuUD7pz6D4G+F1joepxtrnh2+s9KVjPDe211Isk4BcNNO8eGU5jY8khecDnNfHPgD41eLNYs5oL7Q77XdJhuYGSSG1nntrZFUCJWVFZT90KY8fOCxVv4q978Mfty+Jl8EyaT4b8O6va6npJa1+0TSNeW89tg5gSJlRYWAZsM25hkAHqa+k4dzynRpOOZO7jta1363PKxlGsnam9z334hfsr/CjS/DuqX2rat/Z/k2iS6fY3hIjtPkJOXdS03mM7bgdzfcIIC14b8VrOz8C6TqVr4AsdQ1Lw/b2Udw63qRNp/m7WeSKMSqXmDlcBRhByTiuj0D9qnQ/ilo1lffEbR9e1K+UTWNlbPOradCu0xqVnX5UkDK24yIXOT1PTM8GftY6LqHiW413Wo9cs7ezP8AZenx3KC60/TLlFEaBpI4ndpHRnKAjG7H3q7MdnWVYxJyaSfSyun3duvp95zYWFajLmk+b1PI/havhnQ9Rt9Y33Wg6d4khkngs1mLLpUZjVzMp5LAMzgDnACCvRv2ctB+HvwrtnZb/T/FcutanFqMVxLZtDMzxgtGJJB0hEmGZAcMcFuBivGZJ10zxhqPhjx0bHQdPjm+ywvHKYZLXGSX6Oy+YeSETaD1C9KZ8ef2kde+E1hpPg/RXmbwzYKZrG4u9IQzT71KvtmYFigH3eBgnJABr8/wMp08XUlGrJVF8NrWZ7lW00k/tbn6e/AXxb8O/DbyafpltpXh3VbhX1G5SQi3lu2llaR5fnO5k3u2Ac8bax9WtdN+Evxs1j7DqHhnS9I8W28muwnUFX7NFcQxATvC8eCjj5ZCuQNp3D5hmvy7bxf8Wvjp49hS8tbzxUkKRKPLl2vbRbRyr8NtyPukbSOnFfRfwW+C3gXxbf3nh/4hWXjKPSbpy9vNHreWsCBhhJb8yCIB3O9A2BkMOAD+lZNxriU1hsfUhy93v+H+R8xXyeiuarGTa7LX87H6BfCvxJpNn4daN/GVjr01xKGa5adR5hboEDMWIGePmIPpVzxJ8FtB8Y+KbjVry1knuLiz+yzRBsW8y44doxwXHGD2AHrXyjpP7IHiq/MK+DfiNd31x4PultdL0/xLYx3NilqSwhlikibIGwDORlSOBmur1/4n/GL9nbW9Lh8YeCZNc03xBdx6TY3ng3XEaOK5dQqCWK9GI/MfGH3gZIXOSAf07C4yrUp87SnD+7qeDUwMYv8Aczs+z0Z5Vqf7LWg/CH9uy70e1t5otE12zj1yCUsXdnjwWRQeCyvh8D1r3I/A3Tb3wdoulrDa6pqy635p1oQiaC4WVZmklYNkrJs3DjAVwp7V5x8ePjN4yl16CbxN8KfFDDQXW6tUu4bKKSTahH765SbbCiH5iy5zg5HFSad+0X8WfhlYWU03gf4c6TpesRy+drcfiZdUsbOYhRbPdeQpMKkkRbx+7JkBZwOa8+nOnDEVW6W7V09/kvzO2VOvyJ8yuvM6eL4fad+zF8O9a0Wz8IzXOpXG5YJREktnKZyLeKQnqMMykrzzk1qp+zXN4FhvPMtLe88N6lHJFq+lWsLecYPLQK8Bb/VurCRm24JDe1WPiVJ/w1TfaX8PfOv7GdrKHUNc1ayiNvbwbHDLa28xDFnllQndyNiZGcjPoPim+/4UHoIutQuPP8NysLa6aW4b7TE5TYGiZyTncFQqOOeFBOD3U8LhbuooLlZxVKlaCSlJ81/kfDHxi/YMh+H2p674msZbq88MadIt1ZQsWAEDAHKFeWKBlG4+mTnpXzd8YfhLqniDxJdX1rY2VlptvarcW8UEiSh4kiRnlEoPOdys2eeeg4FfrKvxHbxBaWtnoeg3OuWdnJgtfyjTYmjAO6PEqh3AbC8IBxX51+APgNa/Dv8AbF8WfDXxdNq3hW68RxO/hGe2mVoYvNfd5OyTEbpMi+XllyCq+1fn/EHBeCnWjmeHXKm7SWtlftbaz+R9FlOZ1ZxlCs7s4v8AZ88PeFPH2mal4J8bfap/tVzG2jarZxqrWk205VXfgggkFGOemKuad8a5PhPdr4P+0TaqNPkJu7ybMiyyCV0KkSEjaIlX7pwMV7TcfB7Vvhxcf2afD819rOoTytpljrNksXkuF+aeN418mR1VWJiLByMYFel/Crwr8O/HXwxvdHul0DWLqO+GsWk+m28l39km3s3keWqb0iJDgIcgmTBPBr5bEeHsYVuSvUcYvXbRPo11d0ejLM4cm132T1Pzg+OVvpPib4gSaloq/Z7VomFwJJQY0kGSRE3Ze4Fan7LU8mneObQWWn+ZrEjNi5hkC3coJ2+WjthYlHJLc5ztr9C/jp+yr8OfilDZ6t4b8Iv/AG8rRW6WsKxQWV7vB8xSSQE2DO5gDsPBwcCvNfEf7Hnij4A6Xqr6fp1p4T1a+ZJbVLUC+jZdp/dQzsMswYleQp53YBGK2zLgvFql7PA1PbK2r2f3GuHzai42qLl9WUNd8U/ZvDFzp/jDRbOGe6keBoLNozdQxJh1MmBuBwDkjsaK8L8b+DfHWmfFabV9cm1Kx8QRzKgntQzNdyFQQh+XbnGAR756UV+fT4XzSk+Rwlf5nqQjhprmTPgRLbdyM1IIR2JrSuNNW1+UN7Gq7xKDhenev0NVk9gIY0I/I02V1XgZ3VZuIiihV+8w61TMbSSKuOWOKYGzoE4uLZlb7y81auYvJ1CCRPocVQS2bS5l7Zxn6VsJGJrSOReVJ4z2rGUVqkZyvcuvbrKi5PT1q2bZSy7AVZehFLpulvfyJGo3FiOM10Nz4Y8lgm5Y1AwzflXgyq2koGsY3V0ev/8ABNf4hTfCv9rPw5rh0aTxJJG7QpaIqmRmYYDJu4BHrX7PH9qHVorcyz/DjxhaqyltohjdpGUAkcH8/rX5i/8ABLb4F3knj+18VjS5LzTdN3rHGvyy3U+MIgY/KuSc9cnHSv088Pr4os4bOPUNTNxqS2vyQRWsd75KjO0OVYFC3HzNgHjBODj924cw9elldKFbR3b+XmfDZ5UpVMRfex0fwR/aH0P48eHpLi1juNN1C1lKXOm3i+VdWxH95D2PYivQPOjeZkDLuz2PuR/SvFJvgVovxe02TU/EENxca1ukjS90q5ezuIjjkDawzjHU5HHevlPSf2wtS/Zv/wCCidj8O77xvqvibwZ5aRBdTcNNZyzYwrSKvzgEfKevODjFejUxkaVaNKT+J2PIp4P6wn7Ppqfo1gHH9DzSNapMzbo45BjAyoP69aw/EHxA0rTInRruE3qR+aId43DuM/X2q14bvr7VrJZJp7PzZMOYo4WYRA843ZGcdM967FJu67M8903HRmmllHbr8qRpUjW/IO3lTkUyG0uhNlpoiv8AsRbf61bCU9eplysqhSBS7M/xU8Jle1OKDAouXEjMXH3j+FRzWqzKAyhtv3T3FTlBjg/rSomW/h6etK4ytHAsf3VZW9m7Uv2facqq7vXA4qwYsHrx9aQxqe9PmAiMf/6vSgQ5PT9akEaqO5oMakfxCpctSWtSHyeemfxoa3yc/d+lTbNvT9aAmf8A6xo5l1KIPLyP6+tV72IxSrMF3pjbIuO3rV2fZD8zYVfU1ELmHG5ZI19weo+lTzBYitEj8hGixtP3WB7emen4V4L8bvgmngnx7pvjHwPpuqXGseey6roFleTLb61A5BYhfMCx3CtgqwwGG5T1r2DVomW/uBpE1vYS7N9xO4Zo8nkARdGz3Ix9TXn3iy28UeF9J1COx8V29wL+5SNIhZG3a3aVgDsOHJ2gsRzWNaPMr9TswcnCWr07HiOtftHHVfH2i2nh+bWIdS0O6le7tdQikV7e3I/eJKvLFoyTkDrgHpg17XP8Ydasp44dQbTprXyPtslxZqyyQxgFuEb5jwPmYA7QAe9eJ/Hj9mnwr4a1zTde0e+8ZQa9BPIz6xY351S6yUCKt1FMimaPCorAckD8K8sg+IfjD9mm70y98Yavca4uuWF5bXI0GxmGr2E+A8UM1vOAIYwH4eKTacjIYA15tL2tB2m7nrzpUq8U6Wnqfd+k6jNqWi2sktxZySQoGZFkBVW6nI6scVx/iDxc3jTxW2n211JpMNm3k39x96QGSMlkwByuNnTpk+lfJviz9sTxF4I1208O/Ebw/P8ADvRdQ05ktdRDi5vNSAVPLj82F9sTDksc/wAQ+Y19LeAfiDp/gDwpGtneeHLfTR5TMLvyre7YSKWzI6TOwyRyXxuA/CuqljFUlaWjOKpgZUlzdDvvDEEmtal59jpt2+n6fH5FtLKfIjk4GWVTzjAAz9a6LwlorRwXVxMyPK0hRQg+SEZAKr375z3xXN2nx90nWYV+ytJcKuCJLGN7mKUnpHGwBDN7KT0NUbL4yzSW62dnb29vqcw3ta35Imt96EqZUOMBgQQu7dx0GK7PadjilTkegWd0ltbMs0qxm2kaMEnlgOen0NRpOLy93Mm9VUtHD3J/vEdu2Pxrl/DWi65BNJqOsaxpNwbpzJLFbgRsi/wqjnpx2wT7muq06+jkEaW1vJI0inazYxx6twe/XFUm92ZSjZWLscLOg3fe789Kd5Wwc1LCshXMixq3TarZC/jTmiLHov50+ZmdrnC/EHVL7xHfzeGdLGoWM83kmbVYSq/YVYlgyZ+8x27T2G+jULbQfhLdf29qkt0zSRC0/tK5le4k2Ft3zKMgZ6blA61272SSSRsy/NGflbrtBxnH5VBqWkxalZyRTLH+8XaCFz5f4ZGcHkZ9ah2NY1EtGin4d8VWPi+wW403UIL+3XG2SFhIqA+wxj055FTafbuis7DazSswAbceSQOec8VyPiXwvb+HdOWSFYbDUbpBbQCzmNut5cH7pfYhCgYB3EEjng1i/D1vHXh3Rt/izxb4ZW4824hjik08bUWKRgmJFdd58vAJwCTnio9tOPuS1Xcr2UZLRjf2vPhtN49+CepT6ezQa/4aA13RrhcBrW+tv30MnOMqGQAg9UZx3rlfh98W/wDhq34MSa1cW40ddNsBJquhC5Mc1vf4DvFcJ95I04ZOzqwIzWH4v/t/UPiLqE83iK20DR/s0VyLeZJbldVmdCx3QyKIlj2AkRMQWODz3+UfjD+1nqF+reMvD/2nTNa121ittZ04WCHSdQtomIWRpA+4yKzkjcBtVghAwDXg5lm0cL+8qns4HAOrHkPuJPHk3j2bTdB0DW7PQ49Lhs9Vur1ES5R4MmQWyp2yFO5iQF2jAzivJ/2vf2U/BPx1/ZqTQ7AQnxN5xvrPWIrUxzXNyEdnmYAf6tgGAXICjGOBXn/ws+P9r8I7Cw8P6trXivw7qWraUhhuZkttOt71ZIy0fkSi2kAUb8jzinIyGqj43/be1C3l0llfSvEGj2NpJDqaWN62la7MHXYEukY7SA33/JLFhjBANcWL4lwVKgqld2Ul93yNqeBrKqlT05Xf1PmP9lb/AIJTXX7YPwr1XULPxnpmk+LPD95Jb3Wh3llJutwM+UxY9UkABDAEV1F/8E7P9njwXovg/TZbPxB40Osva65pH2AXmoLGv+t2oq7ggUghicHJxXUeIvjzfeKPjj4B1bwfY3ngXX7q3TS9Y1TSolh2+ZOixTPbCQi6hQsW4VdrBQW6ivYv2d/2ZNa+AHxl15bfxcniHxWryXNzqktkskl0ZEIO8sQZEEnHDoyAKdh7+BTw2X51FUqUbKLveL1Z7VXFVaTdSq9+h8B+PfhLp9nqN7rWgWOrW+iW93JG4uIGj+xyrNhE34wu5VyAec8Vx+r6tdaha25+xxlrh2ZppApO7eCGx1zx16V+rtx+y3o/xr8T3Gna54cv9D1C8Eeq6nbXepwSWfiG4KyK0jRJ957diMEbeGHy5rx79qL9nbw14H+GY0TVPC2jx64sMCaNdXkgtGu5DcBTG8u7YpIIKnPQYODxXLmHBkqUXVhJtdL7lYXN4yahJHyF+z1oN1aX811HPplz9qP2i50qa52SXTBWy5TB52lsFQSCR0zz7vdxromjafH/AGgmn6KZsx6ZqVmY0W2VA6BJ2yrSMdyYLZ2nBFea+NP2Y/Ef7Mq23jJdLTULOzn/ANKQymRdLkwjKxZDl4/vAHK4KnoCCeZ1HxX4u8RtD4y1nw7dX1hb3b3yiwmMazmMh2UkblMK/KMnLDcQMkV8dg6eJw9aTlFtfdb/ADPSlGFSV0zpvjP4c+1/YZ/B+pX8XhCKBZIXgkMckswLCWTylwkcgwyAfeKJnpiud8WfGdfBGmaNY239pXs2n4uWt2hEcbAjIUhecZxk5JPPNbXgr4lyePPBWoX0MMOn+ILyEXE8Esai3iMU7EGSMsBG53FAVUlx15zjkfDM9r4b1STWvGGjW+tWuqIbexu7qWW3jUKWLSQlc7lGNucEZxwK8KtKNTES572XTqbVKdlZm/D+2bPceIlm0mxhN5MCAhbaUYDGMHGQPU44x161Uuf22Z9G1dr7SZNLs7lkVLuGeE+TNnqWQHa23kq2Mj1rM0vxF4bOgt9q0+T7VtivEt7tQZIiXwp3bRuVo9hxxxzk1wHxv+HGkz+E9H1jQ7RbRtSklS7Mt7v3OuPk2EDaBnjOBUYajhZzs00TCMb2kZ9z4y/tnUr3Xr2zt5tLk1BZpLWNjuiRk3bY2YltpJyck1658Gf22pvD3gx9Pu9POpRQiW5SKabzNvGNhLBiE24GB/dr5lt7WTRtKaSJizMwV1A3Icjg+nTt2roNO8Q2OnaFJZ2ttaxvIwZpyTvO7jYR6dzjNeli8FTqQs9fPY0lDsfcmofFu8+I9uF8HWenrrVncm2KzTK5t8RiTMfIVgGJUEjBXGK6Tw78Ntcbx7b6h4s1S+0mxWxFxDqySGZ9BmY5jkmjQMZbfcpEmQVAYEgivhHwX8TdQ0LW5rrTryHS5ppltiflfyk7fIBnCgY3dSK+l/AHx2Xw74V1LVL7xRHJeTBdMtppYplku5JJBl5VdmVLYrjCnG7YcjB21xYWjTwFb2tSmpx7NnJiKPue7ufo38Jvizd+CY9Ht9ctdKhtbi1RodT0k+XYzxkEL5nA2kgZBIwea6j4xaPpnxj8Bm11aPRrjQbqSFo1F+ytcyrKGQhlI+ZSA646MgPQV+dNr8TZj8WLrR9L1aJvCM0r2+n3UszOsro+FSNSBxySuMYVsnHSuw1bxX4g0nTIJLbxRo9nb6SkhiEgPllowSWKyOfu5B3qpLLkBea+ww/HVXC1JQhR5YSVktdLni1srjNxk90e/al8adct/Cy+Hdf+z33iK8hSOwvJbXD3qg4WR9pI3KuWbuTk45Nea2fji10H4xLdajpskel3VvKdUvtPnSS3kdUIdHh+7sdRyGG0kIeDXlR/afbxBre2O+0vRVjjMVtqFvGBHcTSMEDEKMRHBPIUsQf4au+BvFK2nxZj0m41TStP1LS7ryTcWkciNDIhBVCJR/qXUOpLnbgZ+nzWMz2vOuqivF+bd7eeyud9PCJQs0j15P2adW/Z21241zSfF13Z+Ddat47i7tjr4tbezmy0kUcTlXUKV4w2ADkA4rn/AAz8VdW8Q+CbzxH4Y1fWdeufElrNII4ZRrWq6YHl2xormMG3UqpDKmCDsbkAVRvPhJpgN14um0Jr7SJJJLi6tIrIz2qSDLFwyuYgUH1GCCM1c+HfiDS7DVNY1fw3Z3/h288RfI81lvhnmTGY2gA5DBdpLfxBsYGBn7CPHCpRU3hpRj1a693fo/I544G7to30Pavhh+1F4NutFs1h0uaw1zSIY4J9OkSW1n02VlXerrtHmqpJ/eDJYcmuF/bq+Dfh/wDbKXw9p+majpOk+LtDjlvrLUpLry5nXzYVESorE7BkvjOQ2G71ymu+MtD1zUrzVLnUdch1jXCtretJDJJeu8XyxyQyNG8kQPA+TIO45BHNY/w4+Fel+EPBcXiyPxVp/wDY2o6jNdz+FbLCXlqJcRmFXmRZJ2wsRIUEhjkLjp9ZlPF1HHtxpT5k9GpK1129fxOOplqpS9rrdfcb/g/47fErRdAk8E/Fj/hDbG58M27XWlapNcqt1dTQnbHIykgElcjd1IJPBFal18Q9P8Q6tNfpq1lo8eqSvqFxqtoVRbh5I184luCBlR977uQRnOax9f8A2YLbxx4bsda8Jaf4i1LW9PY32mLr+kXElhamT5fLkaUndMV4+VSq9QG6V4/8NP209R8PeKbrwt8UPA9jpkMyS2MOsLZvHBGclCzrCoZhsG044JzwNpA8fPMrzSTWG9s44bpZXt5O7u7dD0MK6MoOpSXvdVt93kfS+v8AxL0zw34e0+08K2MfiTVjcIDHZyj/AEOTyyQ8jZyobIbA+9jmvTNL+Mfhu08E/wBoa9Ja3kenlY7ueW4Eq3F4AFMUIb5t+7PAG4kGuc+Gv7Pfgv4hWH9qeDfD/h280/ULZGhnsGH2S4IGAXEyeZtA9CpPtWTffsYeGQLO3utNsfC3iRb17qx/s37ROLiY7gNszkxu45whTKgAdPmr6TI8HiaGHXsqkZJaXS6em9zysXUw03afMpep2mseFP8AhPL2Ro/C+i6bpupI1xPd6tfbZoZNqqCqr84Yp6txtFFZ/hf4Yf298NZLTQ/Enjiz8ZWswkvheXm8Tzr8pjkibIjjIwRgDI6ZAzRX0MY1Z+82vvR5/NSjpr9zZ/P3qLb34zVOMevf26V1lr4XWR/mWRiOSO4/+tXVeBP2XPE3xcvPL8O6Xc3jYZgFU/PtGSB6n24r8cwsZ1ZezpxbZ+gSqRim5dDzGG2a5lwPTA4rS0nw7/pPmOp+XoPXiugvfB114WupLG8s5LW8gJWWORCroQcHIOPz6UtvaM3ynI98f16en51x169RPlSLWquihdaONQBVfv4/KpPDfh64ureW3Zdq7htJ6DnH9a0odkDfKTtzjJU884rd8O6dc6tfpZ2qMZp/l24znv069uuMAfkeelUr1JKjCN29CZ2Uby0Rs/Bb4D+IvjBr6ad4bsJ9QulQykR8FVHev0a/Y4/4ItjTJodc+KVxY3lvcRL5ekI7mUs2GG4DBGOnGa1/+CeXw68C/steBtcbxdNC3iy1kSW8tngdp1CqG2QMp+dWBxnGA3GD1r6x0D4oeHX05dYsbjxFd3uqRvepbWemXV1cxruTCBWQn5cgMqEL06V+x5LkGDy+Ma0o89a2rktFfsj43M80r1G6VPRdzoPDX7N3hLwf4H1LR/DfhmzsLWEg20LZ+V8ffy+QG64OMisW78XeE/hBp1l4Rs9es7NriRluHaVXv7ZFCmRWUAtuO8Kq4+VWOBxWHc+Ovib42tGg0TS/EH2rU3EEovtJg0q2ghjc5cM7tMrvH2VTycbuK7vwN8Mde0FFjtbfwz4dVQBse1m1S4uFJ3F5p38vzZSSwLEYB4wQor6RSrTXNPb+t/8AgHz+i1nIzvEPxC0caYukaVHqkkdrsilQ2Uu+VCOApCA4ORliRxX59/tRf8E4/GHjT9tm18Yaba/ZdF8T3kZaUgL/AGdIiqu3HYfLkd+c96/TjRvhlqOhQFW16W+ExZpmaCOCeTcxJG8bgFHQBQpwOtbsfhuMKu2KGPByHcmZl+m7jPuRXNWwVGpUjUqK/K7r1N8PmHsLql1Vjzf4ZfCe9tLC1t5NShZLGPycLbKWlkCgGR5DknPoOK9G0zQZLJpJBdZkk67oxzWrZWiWkWyNVVQONqgVI0Xy+p9fSuyUltHY4J1JTd5FWGJlj2yMsn6VJ5Z3bdwqZ129t1NCfLj9cVncizISuD2/Cgx5PVanKALx83vSKmWH+FFwsyEpgfw03buHb8qtNHk7f6Uhh2jr+lFwsysqc/w04rj+7+VTJFg8fyo2b/bbSuwsyvjn/wCtR/npU205pwTNF2FmVwP84o2qev8AKpypzSGLPVf1pCISqkY2j8qjNrGQf3ceT32VaCEdv1oI/Wg0WxTNjGXV/LjLqMA46/8A6qhvtAtdTRhcQJNu7t2PIBHoQD1FaXkZ/wD1Uzbh8bfxoJUWldbnGaz8P7uXR9Tt11S5huZgwtLuNVD2qNjjGNpIIzuxmsnxJ8LdP0HwppENvbx+Vp97E1xcmPzLj5wUZyTywJbJycYHbivSDEr/AHlG30x1ptxarPAUbG0jBGMkj0PqPajlXU1jWqI+T9b/AGRdO1qDU/APiDSYbjSZFuW0KeSPzLGOCQ5CHPzRyRu5QHoVRfevPNH+AH/DHmlaTb6fa3zW94fsNxcz2SSXGlXQeMRTG5+7JZn95uQruG8YPevum40hXLfu45I2z8rE7lBPQH8M/WsvUtNit7eaz1S1k1KyvFeIy+SHEqMMGOVR97IwuepBI4zkYyowe33nTTxk18WvkfKl9qfibw/4j0y4utb0XxR4d1TUjZkeG/LFzaTlDlljHzjphsHIJNe7+HPD+neG7RW/sWx0e3n/AHqvqyRvLINpUbeeOFB/Hnmofht8BfDGieGLaGLRdPOlwzSwRxW8QaSIxTMiMJAA2NqAHnqPz7KH4MaBbaw19HZ/vJh++3u0olbZsUksSVKqSBtI681dOKigrVoy2KFpe2N23+hyaPK4VSmzTdqyr2dW/iB9eldFpaz3JjkuGH7sEY2bd2fb2x+tP8K+ELXwZpS2dmGMMZwpZR5m3sC2MnH+RWjtIHTp2NXr3ORkSxZXjH+FHl4PKip0TK/doMIY8jFO5HUgEQI/hpDFg8YzU7QgHp+lJt2r0pBJN7EBTIH95fut/dqjaeHbHT5JmhtYla4kaRyV3kluuM54JPStTAyOmc9MZyO/T0rnfH/xT8P/AAw0+3u9d1SHT7e6mEEbMG5Y/hwMhs59O+aipWhS1m0VCMpaQOa8bSz+Cbuxhs9Jjv7XWtTS2k+XdHZwLARlsgrhpNiqGHO8gV8VfE39m668awaHpdtpOleF9JvLJ75bhNRW5W2JugbmKGPnZJkqoH3Tu56Cvor4oft+eCbmY+G9Jju9V1nVmFvaNHAZVt0b5Wu3jUGTbEpLgBSTtGMGvmL4xfs56V4Ug8DjwCmo63deJHbZptlrTO8McRDx/aWZhDvaQqrZVPmyqrxmvmsynRxXvUkp8r2baPocu56StPS55H+0F8NvFHwz8VC1XWB4gs9HvIIEtGkV7qKIt5SWpIBx5kbgbFI+8RgYrzr4+/Ga6+CvjrUIbfQ9F0HUr1xMUt4DIYopI1dNrsTllRlHHTPrX6aaH/wT88L+NPB1j4g1SzgX4hXE8GpateXcZkjmuUdZDBKhb5EXaEDRMrAFjyTx8Pf8Fcf2ZdT8BeNLHUtYuLUaXdWUdtokayrPIoTBeHcVR2CnJEjIoAAHPWvl8/4Yj9VeJltponovvPWwmaQqVvZ9jyH9nHw9qf7Veux6TJr0NjcMZLuxkvJBBb3V4owka44EzBioIwT39a/Rj9jXR7zw/aRza3At9rtrHPaHUJLg+VcqpVHgfkBLjcjAYGSE9TX5jfs6eHdU8BWGo60tv4h0/UrILe6Hd2dr+580HMnmGTAUNCZBvUMBjpjkfp5+yF+0fN4t+HeqalJDceJrPWdRjW4VAYZrZ/LjjNxyBu3YUvtwVcAgYJrj4Zq4HAVeWTtJvp6IWbUq1WD5Nj6b8R+DdG+J3h37PfWwuLedSYmBaKa3JA3GNwQ0bjByVIPJ68ivkv8Aa7+GXif4k6tpPgnQdUutZ1TRUXV5bIGMTXtnFPlIXdgMuCFAYdc8+tfVekaVNpsF69rNqhS3ZEexmCSbWXPzh9u8k5yQSc88jPFGzt/sHxE0HVlt/s8Op6YdNLumJ4pgwkVTxnBO4Z747V+oS5K8FJddbnzOHvRbaOO1j4XeH/jf8Hm0vTFh019atYv7TmeONbkQhGR/MAGN52GMn2JHNfJH7Sv7PWqeLfBpj8ESafqfh3wRb3N9qTYDT+Y8mDbhFOJdqjIG3jJr7tm0K18G6jNLc2zw6XJJi3vrZisll5h3NFMMY2CTLKx3ABnBHr5B8NvhvffDvx9qFrB/Zt5/al7PNpw1GwW3kX94ryGWZYy0gdWcoEVV/h461z4/Bwq0XTaWvkdGDxVSM781z84Ph9Y+FvDnjDVLjWNCuLVbeDz51tP3jQfvCpjkRsKSGVmx1AYV5h+0neSa/wCIWPh/ULTW9BuLUW0EdnCym1XIYqqdEYngqO55r7Q/4KB+BdB8N/Cqz8YXi2fhsateCWKy0i0DOzTfMYxcSSEuyoPnYxLyoG0ZzXwr8JNM1L4ifF/SvB+m6gy2v277LbIxFvuEjgsSVyA5B+9zj0r8TzDIVh8c40ZX8j7TC4j2lLnl2Oa08x6Xod099PJdajDEIfKY7DbgbdvHoRnp0Ix2q38PPDfibxzI/wBhhnkisQ7SrtD+WgQmR8HtivoD9pf9j+x+C2vaLY3Tx6lYyXM8EsMCvBqrypISWlaRSoX94AjYXeMYX+I8HpHgmG3+IU2n3lnP4Y0nT2W11KeCZpJVaTOGOWTOcYPPHJ56Vw4/D/UqjhiN10/4Y6qNVVIc8Tx+HWrOPS/m0mPUIHkf7OkmY2iJ9QvXHPX0rn1tJrfT41a1t0kjmd3c/eHQdOpxkV9qeFvDHw58W/B60kukj09dPMUdzqNpCJZLy9iLw+cUkbDK+VZ1TuSQMYzx2sfBO416017wHCNDbxJYXMd2oykLXC/MXEbHr8mGwHGSm3gkZ4MLjqNat7Oh+JTk0rnIfCH4K32urBfadY6ZcTTItrZBn8hrs/Kvy/7zEjJ7ZNeYfFv4b+KPB/xYuvDt1byX2pfa4bK4trcebEk78rApXIJHQZ5OGr6D/ZZ8aSRy2PhjWBpN5o9qmJTqBjhhtwpypWYk4+VmHGeBnvx654t/Yogt9WXxT4D1OL7dHNFqNtpMcq7PLcSqr20wBE0zMxKKGG0AjkkV6OFjJ05RnTbl/N0MKlRRqa7M5/8AZr+MNr8ENb0PQ/Gnw9m1jUommtNPNq29NU3sVkJJPUhQvJPTjFV/iH8TNB034oz3i6VqWg+E7jU2Ob6zWfVNOyxcwMrHbJCkiNtDtgqcdgK4XxT8LvHfjXx/pM2oaPa61dWNs8tskkixW6s0jEh1jPyFTuO0vnJBJ7V5nq3xc+yPqtrc2skV5fzQRzFs3FmDBxu2suVfeWyVwMEYH8Q7sLntenS+r1Vqne7SaTXTv+ByvBxb9pHqfeFr8Ivhh+1B4asovD+qeEotQhKXN1fTacNFu5YucqIwTEJGx95RxWPd/DHR/ix4p8QaS2nT6La+GbFbkXBlediUHliPfGpypc78MSWBPFfMfwr+FetLcw6lJokOpaffQm5Vk1by2EbP8owxCc5wEZifSvavDmta54D+I0H9i3WsaL4fa1ktpfsEh5Z8KsUihyrE7c8HClAeelTjuJqFeKliacZW3S0uvUxjg5wvySu2dN8V/gh4x+F/xA8NWPg34geJb3wZ4i1FtPutKnvZtL00EpuWMTMnAkAKjKkA8VT+E/ww0Px74z8b674k8QeI/B17oWoR6Xp2iXmu+ZdafZqq4boBKDu3IduCEA9a9fb4p3GtfC690rWBcz6ZbyRS2VtJud5JF+ZHbcFZJFbJ3KSPUY4ryj9or4r6L4w0y61C8uoZPEmJTeXdxEmVSPy0hUMm0vIWXZknG1s9sHXEccZc8NH6lh381eOnf1/Minh69nGTNT4qePtY+D1lZ6t4X8e+HPEXnXwglAsYj9mgMQZ50woMZcKFAHIPSsz4DeKdU1CbV/F15q3h2G61rzILeZrK4k/s9BM5jhWRJEfLZc5HzDkelOGpeGdXtZprjUvtzWiQx29xbOnl3twUXdGgORxnrz3NW/htoWp/E9bm2vPA9vDNPetCmrF4orawdVQI8iqCSwJIyAM5HqceJR41xH1hLCYaMZ9Omv4fmbyoNU7T1PUvAH7U3xg8LWLeF1k8C399pqiWyv7uaZJ9QhOT5aLyA6LjLseOO9effBD4qw6c2teH/jJo9xrXiLVoJrZrWa2SbTorDzMo9vK7AeYT5hY8noa1fDP7HPxK0vx1fRyYkuobQSfvmFxb35Y7F2OG3KN2Mg4IXPy16P46+Dvxa/srR7/VPBvhXVNW0+98mSC3nge11GAYwzLIBsyAXGFY84OetfpGX1s+knOpR92OsWnza9b8ztb0OBSwkdIy1/ryR8361+zLoXwt8ZavJ4L8afE7wX4TurRr5pdN0+5Nvp7ZHBfcAyHI+Y8V3PhT4e/HDQmh/sf4s6f40t7j93DZ6pKT+4yGKuyg7JG5GFycKDmvWvDkuv8Aizwt4xh0K01rwXpqljcaXcaaurWczRrlt6SSosMZI4XaVbjDdq5nQ/gd8fvhnFf3MPjSxW1uvMu5YdPtVktpnfG118oFoiE+XkBQRnLZxX0EsK6qVWVFtve1ou/dO6/NnP7Zp8vNG/Zq9zl7r/goq/gz4g3+g3vhS80rxHC4gNvdQyOskgwWA353BgPlIwwHTrRXrXhLxP4P+Nvwn1Lw54zuNJ1qb7S0EsWpyxtdJJt+aVSiRvxg4kBB9DRXRhsnqV4e0pYucF2lFSa+d1/XUPr2HWk8Pr/dbSPyXm0m98EaVazabG9qL5ZYmZ0V/wB1n+IkEDHTivr3/gmboupeI7/Vtcm0eTUkjiQW17Khs4bQphSYSMBwV3BgoJIVq8T+Dn7P0nxzvNKuNZvo7LwrpaWVobD99H/bcssImmjScKREwUhjuHqBzX6YfBz4H6R4I8F6aui+HriTRdLRbO3WK4kvEtokB/eJJJlTuLY/1LcA5zU8N5PVwkPrOJ0ulaNunf1PQz7MqCj9WpfM88+NX/BOTwV+0VJb3XiS4ntfEixZVdKhRjqEfXIckZIHGCBXiPwn/wCCafw/1bXPE010Jo9C02ae3jnvyq29uyQGQ+Y4bKkNHgn7oBznivsqS703xHPc6VDY2en+GZGabVvKZ1v4gnVicgopGAMEHJ4IHFfnv44+IdzrvxG1z4cxJq194Ht9eOta/a2txI3nshbyrc3EKs4YcMWUbmZguR95empSoRxCjCmnOadrq9vNrqkePhXWleHtGklr/wAP3Of+JPwG+D3xSis2+H4m8NwB4oNQ1XV7x/7PWY/Iwt1CmSSPKlhJgLjjrXpnwD/Zh+FHw7sZtO8SeNIvE0E1youI9HjlhgmgEbSqSxiMhBaNQQpBBxzXtXwS8FeLvDF7Yf2L4U8A2GmrAqQaFORPb6fk5diz7pZZSP4ndQDkBBX1tofgi78SvGt5o/h9by3iWSCd9OCzQrkkhGjZeBuYYJyeM5xXfhMqo0Ze2pxXN1bir/LsvkRicyml7K7t6niPwh8f+BdV1G6PhG1uPCPhy4t3mnkgs7uSS/l4U7pGUl88cluK9i+Bd+dVmuLfUbGE2MOBafabtryZ1C7Vxz8gXauVPzdD3NWNY+H+qeHfG9tdaTqWnyalCRviNs0MLRsOm5XZ0ZieFIZTjkd66Q/DaHWYNviDQ7N7pV8lb+3bZI65Dck/dbkDOOuenSvQhdNylq2eVXqdDutJ0tbOxjwZGVuTuyT9Mn07elWvK+bP3c8nHeub8JfD8+Hdy/2hqdwpYuguhu2D+6CuAQPXGfXNdQi5Xls44ou73PPcdb3IngDH+Kl2/wCzUxjx+WaTZ/nBpOQcpAFwx96csOOc9akEOGznr7U7ySRS5mC0IcMD93NO8tf71TeQP9r86Zg/5FHMO5EsOB1pTHgfep+zA70ojLfT3pcwyERlm3U4pgetP2fX8BRs+tPmAjUZPINL5fufyqRV9QfwpcDdj5qnmYETRq3/AOqmNDj7ufyqxs+tNcbexo5mBAU29f1pCPRRVhAZBxwfelCY/l0o5mHKQbVoaP7tTbQDtoaPJo5mPlZAV5+9+lIUUrjNWCm1fwoVcjtS5g5WVwc0xo9pqyIuO9L5X1o5g5WVguW/+tSmHj5WZcgjC8ZyMVY8r60eV7MfalzXHZnP+F7eOzv9YhhWSNFu/OWPBWNFkRSdg9NwYn3Na5TI9Oao6zZta6tDqamN/LTyXVmZcKSOeMgkY447mtSMLJyuW4BBA4IP+fSqUrIUotlcrgdT+VKq5/wxVh4sr3pBGVH/ANep5mKxCBg8d/agoSeev0qwseR079qDHj2PXJo5mBVeI5pRHhKbPerBKqyxyR7iFDsuY/qSM4/KuK8C/Hyw8deJtU08aXqulw6a7xpdXsQijumV2QhASGBJViMjlSpHBFRKslo2WqTktDoPG3g+08deE7/Sr2SaG2vovKlkhlMLovqHH3SPWvkG8/ZW8W+NfBN5daPqX9gvZ6rNJpEM9y98l/HG7qGbzG4O1FwwA65zX2FqOvR6n4XuLrS9Q09SqYW4k/fQx85+YKRk9ucV8/8Aj79oq+8DeMNNE5XVPDdrbrISthHK8rOrIsMccecMWQtycAEZAr5rPsXhabjOUHJ7aP8AM9XK6VZt8qPAvC/hLTfA/jHwS+ueFfEFr4/1a7lOkzae2wX0q70iJLYVVEwD5+bGORgmvpf4HfBZvhB461qXxZNptx4g8XagNZN1aQ/Z7MSbCot4s9AvJwfvM27qa8Q+G37Mel+Pta0H4geKPHOtSLDqB1KHToZzttJhISghKACMIMK0Y5JByTX0B8RPiFqfi69W30HTLPxJ4XvN8N0sTpIbCZdrM+7cGV9jZULyCnTHFTlOKpzTnp0SS/U6cdBtqKfqes3ekvHercWqqs2DuhdikcvGMn0I9a8N/bP+AUP7Q1v4Sh1OzjsbXS755vt8sKzrbM8e1d69PKLcMT0wDXp0N5qdl4SW+8Lx3niCO1QodL1S58ue5KjhYpXACyZGcPkEcZXrXC+JP2sLDWNf0nw/L4U1j7Hr7x2WqXGoj7Ilg0qtsjywLSO205CjavHJzXvYirTlTca0bpnlUac1U5qb1R8P/tc/s7at8FLKy/sHUdUm0drFmRJbgCOBkDFjHnCuvByoH3SK2f8Agnl8XrPRrx/D/ii60ey0m8lMmmy6ldfZpLKXfloYyRjcSVbnrxX3bqHwH8MfHLwVpNn4q04a3p+l3Lpbx3X3rmNWIVZMBdoIVCQCD93nghvCv2rPhvp/7Ly/D7XtNsdF/wCEV0vxDBb3cF1bCYxxTsytGRsJkALgAk9hnODn4/FcKwjjP7QotJaaNfee9RzXng8O92fTfhC9ubW6bR9Rm+16lZx+fHOQB9rgZhhht6lSQrYz1HPNS+OfDa6rpMk3lvHdWZ+1W5QlHZ0yQM+h5H41y138J/Dd78OLpfD1n9n2u91aBbl42sZGdJHjXY26NWIChOiktjAznXtb7RZfAz+JrG3vrOOGB5/LgdkuAyZDRMCSGYNxlgcnnivsKNaUPdlt0t2PAqUk3eLNfTbe28ReHkk3NPZ30GRHJh0eNwCVII+6eDj6VieJvDySXcVrbxXDrGoWOUSbWsyCGUIfqOF961fh/NdHw7BDfJNHcmNZljm2LLHGwyIyFABK8r26U7W/Emnx3VxZRxyahqGCPscAy7sF3YyRtQ4x8xauxJSjqc95QnZHxv8Atpf8E+9c/abt9JiXVPsljpdsYbOdcmC1JmZmaRP4TsYoznJzEAK+ef2Q/wBijwz4I/aguNL1Sax8X3eiwrcMtvcpDHcHzPL8wM4A4YjjOcAmv0Y8bfBzVPjj4R1DR9duptB0bUo4pHitZRcXE0nJbLkKI14QOAuX6BhjJ8g+KPwG0G8+KXhLw74W0/wrHq3h/wA68j0+VDDa2seYxMsmCd8ksZfgBipO7jrXhY3KaMqrrKNnpqe3hcynyOnOWltjlv2qP2Or3496tcaBFo83hv7dPjT9Tnu1vI7tYYUZo8feAJAOcn+HHBry/wCA3wY1XUfGfiL4a6pa27eI/DVhBeG6+zxy2l7bOzbZmjfD4BJjY/wk5r7u8K+BIPDWlzapqyxyrZxCKzgjna8jsIo0xiJyFYs5Bz0GFQDoS3y3+11+zP441jVbz466DJ9m1Lw3pcgvvDUsr+d4i0cYkmglm3YRxGrMuEwGx16VGZZBhMava14c0kuu1jTA5lKL9mpadPU+UvDPw78MfET4iWfgu8muk0nXNLJ1SOK2W3ktNSjkdCASQrIyxblZevyjkg1meNP+CaUOpeFbnUoZNbuNU012lW8hg+2WLW3nbAZHDDZIpIJXJJA4GcVN4r0Wx/aU+M3h+68Ma9J4h1vxdZi4XR9PUahNo8UmZVheYrHG11HCyuyg8MCM5JY/Sfwq8PeDdD1O48C6lqXjixu5mhht7mwXUNGa2W28p1mkj3SW0zGYb2QrhsEV8flWURji5pwiqPTQ+kxOLnTpaPU+EPCfxr1n9mf4X33h/wAQeENN1Pw34saS40jxJLZnmSItE/kyMvzISpRkJyMHoa9d8O/tF6f8aPANlpHw18I+KNNGg6eJWm0/deYux5eTIhYFIkZmf92MsSo5FfSPiv4i6Lp/7P15o/xS8M+C/HHg/wAWGW+stQ8NoIbHRL8q7zbreVkkgJc7v3Lsu9mAwMAfEfiz9mybRvhr4c8QfDfxJqusafeBLXXLp86U2h6lxJHaLIHO7EahgXyfl56gjuxGHp0YqWFmpK2sf0Xn5GdGoq0nGpHVbdjlNG+Pc3hnxda211cLPpllfSy3TwxtGt4HxuYr1GVHfvmvX/EfwkmvjNqXhO00/XNG1KOJliKhjbSJubYGIw/+sAB77SK4n4nfHXw9rPwd0XSL7wDpuk+MdPup7fV9TaB/s+tRtw85QMMOWGdgLKpBOQDtG58EtK1r4f6TJdW3h+6/sHVSiaZ56LNbgxyI6MwGAiLiQhgeWCggDJr81z7B8tT2mHle61T0Xp5NHoRl7uqMO7+JXj74RWT2+pabNZ2DXYa4PleZHhoyjRhuQpxyACMGp7bxJcftJeM/Dfhrw7eSQ2hSKONLmY7nuAAGGQMjhep/ix6k11vj2LUvFcbWOpXTaP4J1B2u2uVLyGRmLEygtu5IIwoAA6AmvmfQ2HhLxw32e41CaaSTEMy/u0ZfnIOQSUc5XBAxzyD0rycLRo1V+8hqt0VKOmh+m37O/wCzz4ot/Et9N4y0vU9Uht1ktVubGWKQK2NqgjdllwckgcY6112jf8EzfDqS3T3Goa8LrUrSSO+EunedbRu/DFOuDz8vbIJHevSP2AfidpXif9nyxkXULa8vtPg2yxyP/pcRHysrM4BdQSMEnpxX0Avie1ecQQ/aLiRSYkeOIvHu4LYY5Xg++OeO9ftXC2T5V9UThFNNXsfF5lmWJ9o43tY+X/Hn7CvhvS/CFrb+HWVBpkIga2+yMmUAbJXCn94e569K+ffjR4Tf4da5amx1yaTSJIRPLGNypaSKibkkcbWWQK6tkjqBX6P61qU+l6bNNJHZw5RyVZtxJx0IwAAe/Jr87vjL4X8SfFz41adaWOji98PapHbLNcW7ObMc4OVbhd7N/ePEZ9RXh8cZPgWofV4cs5djtybHV5wftHodx+x/+3dqGjabfaPqmkTa5pmm3Cra6kl9Ebq5jLLkupO5yu773p613Xxd/aht9Y/sWIQ6reNPcmaGHToiwUDO2SRugQ5ClfvD0ryTw/8Asg33wU+M8tvqkcekaRt+3HUjfBYrSYIQu0HO1cAHPOB616HpFlFbeGtU0PVIbPULfUn/ANFmnTzoWcFlZRtRdwAZSG243ZJzXj08dmuBhTwmJco01vJa/N2R2/VMNJutGN36lrS/iabrxZCtvbtod/cbWMwu5PK1CRA3yyRE4KhWIJIBPHpXVaPr2v8Aj3QpNHj1C5txbrJb6i+naOty6tHhQiliAq7cMWPJ3etd5pHwh8N+K4YJda1L+2Ly4t7eGS0iCrZkwnKgxgZPoSSMjtWzbfCHw34evWX+y4YdO1NY43top5Y7SGaNduREjbFyuBwBnap65J/QshwdSK9r9Z54vVXPExmLpX5VSs+55tF8NLXSdKtbbVNNe00u4yfMh0v7Qkp5J+0LIAckA4VAdpY4oru9U8FQt4t/tCy03UvEljb7IW02e8eWGzcNxNE0zEB+eVA/Kivp5Uayf7rb5f5nB7SXWdj4L/4JTa3e2n7IcFzqem3WnaLZ6hJbSawbTEPkt92RpGxkIx2jG5jnAr6f8I/BHXNU0FdS1yePSNDundtLslb7HazJGCULBm/eM/3jkd6/Nv8A4Jq/sdTftK6WJPFX/CRT+DZpjb2lpZ3zw291dAhtsgU/Iu3dg9Q2R0wK/Qq2/wCCK/h7TrqG+8G/FX4ueB5bWQy2lvBrX9oQ2vQjarhW4APUnPvUSp4iUOepFe8kkm3pb5HqZh7FV2vaX+SPlD9qj41fEq9+Nnib4UeB/DE3iXxVBphsbuSwhlaW1tSvmfd+VclHBPGBgYJrvP8Agkf8Mrj4Vxaha+Nfh3pumaz9vD/bfEDo00qMhAUxyHcNrH72MEv3NfQnwd/4JSS/Afxnrni648Vaj8TfFeuxLJc6lruoT2cwmTlV/dlvNTgDa+RwB04r3l/hJotx4HXRdU8Kx28ExD3MpCMbecY3OkqhnXJbGeM9OnFZYHBrDfvpS5qslZvotdl8vvM8VmEHS+r0l7rtr1uiGDwzoOj3K+XpOl6XM0ryLaKoaF5Dz5gVTuRe+QMc11Vh4QspdHjuopmSYKWkWCdkQOehU8YxjjPYmq/w9+E2geBtJ+zfaTqnmSZWa7uTJL7DcpAYDt8uRXRTeDoUu0uEkum4w8Dys0UoHQHcS364rtc31Z48opsz/COm2unYuppp7q+mYmYyZLF+cHPXgcDFdAEW+h6b0ycZHTn3qxHCFiX92qsoxjP3R6D29qcseO35Gp5mZ8hD5fs3TFHl+zVOyYHpR5fI+maObuS4takSrgelGzPcVMRt4wPzpRjFTzLoSRCMY7/nTGHzcZxU5UE9KNmO1LmKirkBI9Gp233qZRzt/WkRcjr+lJyK9mQrCN38VOMQ+lSfLRtxSuw9myFhgdRQy4PepZFylIB83K4ouwUCIJgfdNIY8n7rVO4BHy0m1vb86LsPZvoQ+V7NQEx2/Optre3500x5/wD10XYvZsjYBF6GkZ9p/Cp0QAYb1pANw7UXZXKQFDJ260BGA6frU+z6fnSEKDTux8rIdjU4RgGnlPc/lSMuDntRdhysb5Q9/wA6aEapvL/2qPL/ANqp5g5SPyh7/nSMm1e9S+X/ALVIY+OtHMHKQCLcV43beRmnbGzk/mT1qQRsTTvK96OYOUgYf3qb5eBz/KrPl/jSeV+FTzCcWQomBxSMnzVP5P8AnFHl47n8qBKmyuY8g/M3PFQavp6a3ZTW1xueOYYbnn14NXipBppjz6fnV6dStTxH4z/CTUPAHhLxLrXgy603QLya1e4d5mZRcyKvyRgfc+dsJ0PLZrzf9m/9kjxx4G8XyeINUt7DTdQvdMge5868N801+Q3m4wqrCPmIAXjPWvrSWzS4haOSOOSOQAMjgMrYORkHjqAakYsXLfxHkmvNrZVhZ1lXkrtbI7qWYVadPlieQ/DH9n1PCd7fRtNJPpt4/ntbSIP9HuC+ePYgnPrXTaV8ME8O+Nob7SxHa2kdgtvLGqbVndWA3n1baWGetdsYtn3doOMZxRgZ/DGCeB+Fb08HQhHlpxS1ucssVUcryZAE/ebtvzE5z6nGP5VU1jQbPXIo1vbOC6WKRZUEkYYow4DLnoR61pbFP/66GgyOR+tdnNd2exhTdnczdK0pdIt5Io2kkXzmlAY5HzEnH5n8K8l/ba+HD/ET4PzW9xqOpWOm2DrcsliV866uQ2LdUz1IkKnbxnFe2GEAfL8vbIrJ8aeHf+Ei8L3lqqo0xTzIckqPNVg6EkDj51HNRUs4uPQ1pScaikcP+zH460/4nfATw5rUV1HdXWpWcSahKVEUj3iIElWQDjzAykEDOKk8a+CW8EajBrmhw6qlr9sM2rafaESR3ERBLSlG6lSAfl5rgfh1F/whHx/8RW+l6TbfaPECN4ueC2t8/a7ZnS2vYGJACXMF4N8RwFkjnK/wkH3TQNfs/Fekx3ljMlxbMxUNz95chgQQNrKcgjnkVlTtypM2qtwk5w6hpt/b69Zw30OJFmjEqEjayg9mHVTx0NWFhAMhVVVpAQ5AALfX1/Gpbe2jhjZUjSNWYsQq7QSepwO59fpSkLH0Az6V1KSscfLqVb+SS3tpJI1DSKNyA/d3dRk9umK+ffEPiHTfGfxSsbPxJcWNlp2j3txcQ3dtclWgutgjMblSR5bKeueoGcda968TaO+q2Mg+0XNuvlniFhDz2LSDnAz93qcnFfn38VNLk+GX7Syw+DfiPZ+IJJ4Nv9jwiSd4nxvwSSySs2C20EOO/rXzfEeNxVDDqeFSk09UexlOEjXqOMux9c+H/iW2gS3ljqnmarodq0UUl0ZI3eytpMGJ5cEO6NluVXcCCD0OPGv2qPi9rf7UnjTUvgT8L28yG5s4n8Sa7bTRm30+zZsMFkDMMsuUAAyRn0roPDPxT+JHjHwZrGqeBIPB+j2d1AtrZanrcN0LlJ7eJhKPIHLOz/IoZlRdhOGUhjzf/BLL4dWfw51Lx9ofiKzsF+Jmn6h9v1LUkXZc39neBZQz7W+YI+9eh244xuOdMLjKuJoxck482/lc2+rQoOVTRuOxxP7GHwHuPg/+0r4/8D+HbqPRNI8Hamo8ndHHNdJcArFKoYF8yLEpLDjp619f6h8F9N8QRfaobrUrO6kRQ8sc5Dbk6Nnru4xnNec/tYfAnxFa/EjQvi98OYY5fG3hmH7HqekM6Qx+KNPLEmB3YFVmRifLkxkDC54rlPCv/BR/WPFmqa7p0nwk8WaDqXhm6itdVsrySG4u7VZ428mSO3RhJOryAICg2ru3MwAxVYbK6eCUqV3KMuvf8dCK1StiF7WG/Y6nx7+yHDb2OoWem6ndCx1a2lhuE1BBNDFM0m9mfsiuWcN/dJ4NfDHh/wDZE0ez+I/irT72O30S1W9km8NaeLoTwXNzZNvmiu4yylw6KskTBSWU9eDX6FfCD4g+Jvi34Ti17WpNL0nRdZiNuukWiK+oaVIG2mK5dsokoXCvEqtsbPzHNeP/ALYHwf8AD9pqdxusbJrm4U6jHLKrZKFUUCRyOkUkRdQxPLKBiuHPo4PD5fPEUoJW1Vur7r/gm+W4mvGt7Gb0PzV/ap0K++FegXlrqVxeataak4WzupoEazuotgUbT95c8ZK46c5rqv2DviJJ4osbLwnJrFoktvK5hsru3a7NzmEnygFIUJuUEEng9eM19FfELRLjVfDOm6IusaXa6tcLFZxQ664n067jZmzItuwKxlm2/cZtuQAynivnH9ob9iy8/Zl/aI0i11u3tpLbULU3s0eleasDnbljHIxU8neG2528Lxnj8pjRhjMNLGOnenu1d7/18j6j2iS9n1PZPHdj4i8Uz+INBuvB194bu7NmjC+U0cdy0Y524BXjcvyg8nOOleE/Ff8AZ617RZ9FsbeGPbrF6qwCWIwFJZWZMAucsAIweDwSK+nvgT+2P9u8Nw6Prmnz3Pl20i2azFGfaRlDvb5jsBAOTk4ySTzXu/hL9mrwrrev6Tq2p2EN3pcjO39mXcrSMJZ4Vh88IxZAseC2DghpSRjaMfM5Tg1icd7KjKNOF9VKTenk7aE4jESpQu1f0PkD9kn4o6h8JJbi01rQv7TttNulgispJhbyXUqnHG5g+WXnngnFfoX8P/2mvCWsaWsd1Nq3hr7NbmeW0vf3bRKh2s7N3UEqO+CTXzd+0f8AD/R/2ffH2neKPBulRzatG0x1i3SA3EQVfuOy+WyhgRxjoRxiu4+Eei6v+078OV8Q6fHZWuvaTjVdG1WyZQr3RVgbWdBjzIiNySKygqSWHPI/QsJWxGU4r6ngq91N7WUl+aZ59anRxMPaV1yr8T6O8G/EXR/HVpNLazWeoW5dWitYn+0Ttjkl1Gdo7jIHHWq97o+h6dfL5Ma2a3RCiN0MUSTrjy2HG37vBI4G31Jr5rsfjJp5+Mej+G/iB4R1b4T+OtRhD2+v6feR2+mX/wAvEcbAbXLH+EgnIxnHFdReeMvGel+LLrR9P8Tap4slkvEguYNVMM/2VjGOUeGJFQbcZToCQerGvqs24klgMOp4+nzVL2iktW+mn/BPKp5W1UcaUrR8/wDgXPZdT+EWi+JNL1P7bcQ3Wqapb/6RcHDBsKVUBDwvynHHXrWB4b0Cx1zS7jRvF2n6XDNHHHFZybzDc3mRsJAHQjav3eoGepriZdP+IWgXd9NdQ3j2Vwy2zvCEubeRiACwZcOgHpz0q9ovxA1LwppV1ZXentd+TcGeDUmuTAqkoCR5rK+zDZG0D6jNeHT4yqQrRWZYWVJdJWvdPpZXOunltoctGpf/ADN688IN8M1j1D+0Ly3bSYt6W15H5aRxg7cLIv8ArGZvlCtySak1Txdrl5qFnb6l4avo2v4kNwJMwxxZ5DLz94d815X4y+IPxCS6l1q8i0fVtL0q4Ei6YupO1zdkZw29II0VV4O0ZGeevNbXhT9sfXNDikg8QeHLy3kmk+zxyJcpdNCRyAV4L5XnnJzxWmI4mwWGxLb56Kls1qn8mtCp5fVlBSklN9df+Aez2XxRtdFMVpqNvcWKW8YLS+XmOH5hxnnr1/GiuE+Gf7R+heMNRaKWPToHifyRG8YgFxHu3F2Q/dYYPWivcw3FGEqQ5o4xfOKueTUwMebWg/vOq/Z4+Cngf4bfDDT/AA34ZsbTQrrRlj+02qsIpJLgIA7SJ3LYJyD3r1TS9VSOy8tmXz1Yjyom8wqfw5/OuP1Lwvqnh/WGNiv/AAkEysvmmWMRZi2BQsij93Iw5+crvOetd14ZjgGmR/ZbWOxjbhokj2c9TgD34r7qtXlVblPc8mUVe/Ukt5ZJ5But5IVHdzjP4VYCY6emDjvTzDsbcMfXHNPQbgK5722KirbFUafCr7hFBuHQ7BxUgTAPQ561Y8r/ADmjys9qfMxEB5Pak6dMCpzDj+GlWL2xS5hfIhXkc/NTup+7Unlf5xQq4fHt6UcwDQcfw00xbjnbUzKu08DpUfFHMA3y/ajY3tUgjyP/AK1OCDH3aOYCDy8R0oRgP4akKUBMUcwEXlkdhS7W9P1qYrkdKPL/ANqp5rjsiEoxHSmujbe1T+Xn+Kk8v/PFNOwaECoSexpXiOO1TFdtCpvNPmCyK+zH+elLtx+NWQgT/wDVTXRT0FHMPlK+zHf86Fjwf4cVOsYA/u/hSMFB/wDrUcwcpG6ZA2qKaYwFO5RnFTeWp7UEL3qeYOUhC8dqRlz/AA5qfIApskZz1X1qeYkjw392jDf3akAHmf59KPLx/do5ivZoj+Yfw0h57VLg+g/KgLtP8P5UXYuUiCkfw0uG/u1KuCeVWm43HFFx8pGQT/DSoB/dqQJt/umjbj+6v0ouHIRuPmxijYy/7VSY9xQqYHCqaLi5SEpn+Gjy/wDYqfaf7q0mzJ/h+lHMIhEWQflo8oEfdqfyvpTcYo5gsR+Xk/dpiwbjyMVNn957YpTtPpRzBylcwgf40gXnqT+FWGwfTNNI47fnRzBykLIAOlDFYvmwvy5PJ9OakKZK8DpTZrYSxlWRXU/wnv8A5/pRzByux8+/tFaPeeGrrS/HGhya00Phn7Ubi600pHPdWEy7ri3+cbZQsphnQPgAwOM5bnqfDGteIvDHjNf7U0z7Na3iSX1ybOdZbW6Q4H2lIyAyOOGdBlcHKk13viPXXtL+PR9Ptbe+1G8ieV45iY4I4O7y7QRtOcKgBLZPuRxuh/s6W/hn4LafoKySyatodi0Vhc295LA1nIV/5d5cmWJGAA2hiAMjgcVPW6OmM/dsz0WCRbiCORGUpIodWH8Snofx65759qcRsGSfvMFx0z+NZXw9ltdS8H2F5ZSXElneQrLCszmRolPBUseSQwbJPrW5FHh8jg9K1UtNTllG0rnn/iH4ZG6vte1bX9buLiw3/abO0LGG001EgVPnx9/L+Y5z1zx0NeX/ALM/7Oy+HPBq3lva6W2sHU28QW0psTBBuuUC5AGWCmL5QTyK+iNX0ldZ0y4s5Cyw3UMkLMpwyKylSQTwCATXm/w203U/htdWfgtvEE2pXWn2vm2Umrw/aHu7RPlB85MOGQYU79x9OKwqKKne1zuo1qjpNJnXeGng13wvD5kcCySI0VxAJQ5hdTskBPHIKjkDtXjH7W3hBPghr3hf40aPaRxL8PFe18TxRJiW/wBEm2pK/H32gwJhnJxur1TWNJjhlkvLnQ7rS9Qt45MX+kBJJUQ/NIgYLklgRnch9Qe9ec/tfXU3gX9jDx9qmm61f3Fqvh+4tbW1KROZTchYURnYF2fMh5Jz2q7+679iKN3VXbt67nrvg3xdovxO8KWur6Hf2usaPqEYeCeFg6yKRuOf7rDPKtyDmvGf2tf2GLf9pHxLp/iDRfEl54L8VWOnyWKahZLuOpRMyEQT4IZ4cKRhefmPNdp8A/Bo+B1tD4FuIWmaxsbcWOoeUvmXsEUaxkTsigM6SBlDOS7rhiSRXo19bmW3kj3OrH52CNgsB61VOpenaW3XzJ1pV/cZ+cei6QPg54qurz4iT32heMvD+tyWep6rY6lPcaN4jMyJLC6Rg/6PMoMAbzRhm7ktWf8AGbxZf/tBzzaL4ogv9DRpU2SNd7bjDtu2NEOSCvJHqAK96/bZuNW8OfC/xJa+H9E0W68PWiYurSWPzHu3wN6oMA7lKI+7OSeeteV/sIeDtJ/bT8O33jDxVZ2sWvaRK32i8KR/bHZcGMmQg8KoHJAORyTX4lxNGtmmKnhsNGUZL4bu0benX5n1eFqxjTVR2ujtPhr+ynJ4v+Fmk6bZ6tb6kfCSzJHb3dl5l6DMo2uSxDLIjAFQD94dK+ev2tfHt/YeJvhrqHxK03WNcnsdVTR5tajmD2ssMsqOYm2qNlzHCodoiActzxk19e/Cj4rzfCr4gNo+ora313qkhcSNcebJcZPEuQPuHK9TgnnvXj//AAU4+Fl54F+E/gPUksIbOHQdaE+pXdpOGkiknmVZB8+Y5Y28zfkqXBCgNt4r0uEKyxGUVMFVX7ykmnpo/NP9DWndY2Mqmz2PM9f+A2n+FPgxeePvDOsrcXlnJJqdxaZLXNnbSOwMMsBGY+DHgk85z0q9+zp+1R4k1bw0t9p81rcLI5tZ7aeFBNDIzAtj0wFBXByefQ19c/CzS5vBWv3XgvxRJ4Zu/D+safDd6PLIGjaWIEbLdgxx5fK7YmY7RwuVAVfKvip+yNZ/DDx/aroetQabJ4gmNxc28dowt3mjMjhVAYbFIwp7NxnJC4niDguEqUcVl+k9L+ZjRxn7yVCfm/8AgHTWPi7wr8U7qNZb3UrS4nDHUYw7CZGjUKBjqfu5wPWvRf2Tvhfb/DbT9RCrqX/E6lN6UnjVIY8AbvK28EM5LY6jJz1rzJv2Z9Y8KeIJtfhuNBtNPmP2iBo/MVpSyAszPlmY5yOeRjrivZPg1qumw+FbPT5/NsdSjkZ9rEopZssNjD5duM9fmGBntXm5LleY4POlVxluVLt5dwxdalVw/s4vXyL3x7/Z10H9onwHceGfEtvDeaTdSKyp5Y823kUggwt96PGOqV4d8GvAnhL9hyPxBoVnb6/qXhd7qbW4tcETz3Fg77Y3t5XP31UjIf0OD92vo/SvF/m3bWfmQ38yLucRyIsm0/whBjgdMjrXK/GDWdN0GybULzTZLiBUEmI7UzfaZQdsUJQ5DAFmbBIBJzjIr9PzbGYfFYX93KPNF3XW3p+p5OW069P3Gvde/mecQftYXms+GvN08QzabcEwpdmRfPG4HY3y8ZOeo4FdL4Q8RWPiTwxa3GoaL9htr9Q1yZsfZ2k27W3kn5WLDg45GK+b2+Il5F8fdSddP0nS7xppS1ldxwyNOpXqd6qpUnBOPm4PJr6Y+CHi3SU8FrDqPh+1tNSsYjBNGsEchlh+8r9OQ+d3PXPOTzX5RkudfWMzlRxld+zjeya0e2tt/Q9qtg1So89FO++50HxG1GHUPAa6Xt8u2vEFt5rRrJ8jAny0QHncAfmXgCvj343tNp3xE/sWGO21aODzWjuVi8g2pQbcPzkHuB1r3D41+MvD9slveaTp9lb/AG5JYI5bZRb3SFRypxhUQk7TgAkcZr5rttOTTdcub62hjX7UrXCBMu0js+HYrvzkyFl55KgE1yceZ5GrPlo2kktGr7bf1oaZbh3Cnd3Terudp8OrDT9Yu7ONxeQSLuuJYyscvmhEILY3Z2Ac5zxmiveP2V/hJpeseC11DUtKSS6YPGjzFnMaMNkigZw0ZHY84oq+F+Ccfj8BHFKSXNfeP/BRz4jNI0p8jTZ9AeC9XtdUsI2sbfUlRvnkE9u8RR25+beM1rvOLd1DNtyeB61geEdA0fUba4ubeOGRjdzJMY5H2oVcoF29P4Qa27TQrPTpPMhgjVs8OBuyT71+/SmnqfJ8vLuWduTuoYfL29eacg4/+vWPf+O9P0vVltbiR7WQkKsroBGrHgMWPTBxg+uK5cRjKdFc1R2RdLDzqP3VoW31q1t9XhsJJ40uriNpYo3+9Iq9SPYVbzx/WviP/go78fB8N9Q8O6LHdeXqum69b39iRIyyJAxAZCRgFd3Bx2NfR3wk+JI0GLTfC98zT32m6Amt61eeYvkWfmuSiN3LHLEH0jNceBzJYhzt9l29bbnbistnRgpvqenfjShc96z/AAfr8ninQo9QNvLaw3bF4EcnLxZwj47bhk4961UbaPxr1L62PPsRlNpoVc9xUjRZPr7elOjXYOnejmAhYbfTFOUcdvyqRlLHrSeXjnNHMGhEUyetHlE96mHTFHlZ70r9w0I/++aMfT8qlJpDxjt35p3DS9mR+X/vfnQI8Ho341ITn+lIoxj+9SUibXVxkmNhoJw3GKmozSch8pAQz0hXZ6VMw3CmtH+NHOLlI/4qO341J5ft+tCx49qXOikMCZA+lJ5RP92pvL/2qa0OT/ep8wEeMGmtzIv41NjaOlH3uOtHMBEBxS7Qe1P8n/Z/WmEcHr+VSFiMRAH71OZPlNTZqMcCjmAj2Y9PzpPK3Hd2+tSGkSPLd6LlWG+X/u/nQkeG7VN5f+1SFNvegLDdgprjDLT6OzfhRckbhaCmTwad2X8aM0cwDfL/ANqgrhD9Kdn/ADikY4UfjRzBYY6bk/WmmL5l/wA5qZj8xoALDOfu0cwnEh8r95+FAxjtU7nLfhSZp81hcpEcY7U3PqFqeg9KPaIOUp3kq2sDyN91ULH6AEms/TdTu7m1jkk0+T94Nw/egA/h1+7Ws0WDu/i7UYb1H5U73K0OQ8DaHqfhLTLy41G1hu9Q1C4a4upbSZpC53HaFDc4SPYMDjOa6W3uYbqJJIZFlj7FflyO/HUGrRDAdee2KYkEcckjxrGrSNuYgcmi9iZXuZvh3w0vhyG8hjkkZZ72a5Cn/lkZG3Mo9AGLcdq0QmFxzzUmwnqacq7V/GjmJsyu0LE7fxrL13w7Jq2t6NeQzCFtMuGLkjJkR0YbAf8Ae2t+Brc8vf6fiKbLFz2quZDjeOxCq8L2/iGe1eF/t7fDS31f9kv4hSaboN7qmsrYPf20NhGXmM0bJKJduVG1dhJ57dK94K4bpTWLY4+ZscDG7t0PsRkUdGjSm3GSn2OL8I6vqnirwfp+taZrWna5Z67Z297BJJCI4zHKiyFkKH5gQ2QGOcHmtnQNCutNu7ya61BtQNy+9d0SxmEDsME8fX+7XlH7GOhnwdrPxi8L29ww0Hwx48urfRNOz+70q1lt4LsxRntGZJ5CF6Acdq9y7/Ss6UrwsViI2qW+ZxfxV+DOh/Fjw9LYapbhoxFIRtJVUkMe3ccdcE5/CvIf+CZ3wu0Xwl+ydpLWcVrLLqUt19qmSIDz9s8gG4Z5wq4/EV9Da9Zyato99aR48y6t5YEycAsyFR+prxf/AIJ9eO7PxR+z5Bo6Q3FnqXgm5k0LVLa4m8wwzw4BwSM7CCGGOlY1sNSdWNacbyj1ZrSlUlQcUzW8SfCGw0Pxx4da0jtVW+n+zOfI8yYwxIzBQeioWC7z2wKm/a0+Cln8a/2b/Eeg3Vi19OumyXNlFEMtLcQL5kcYHcM6KpHGQcVe0S+h8dfHJNQs4fstvpelfu9QQL5mqCRhlHyN3lKoUjH8X0r0ZF2SK2d2053Z6f8A1sc/SnhsPSp8yhBWe5EsRU5oyk/hPjn9g7xHqf7a37Nnk+IltpfD00cmnraxIiXWgzW0w8lQRh3GwjEgZvmXFe3eDdF1Xxx8LvDt0txpV9rekyyafLPcK0kNzHFM0UjYUk7yYwdzYwd4r5J/YA8E6L4C/ao+PvwvvfJ0vxDpfiVdZ8P33kFpbe3Zy6xgjGYirplScGvtzQpLvwn8Rf7DmFu1prkM+qQmL90LaVGiWaILk5V2l81T/D847mssPSXs5UZbRf3q525hJxqucd3Zo6b7DCsYVkhG0bSCuFX02r6U3+yreNFQW8K4JO0oAOep/HFXDk4b+970dDXc4Qavb79TyXUktjxb48/CqTS4TrmiW002ou62Udtbfu2YysFDbz0wazvhtoWreEtBjfU7jzkzEDDdTrL9oeQMEWNhkeZ5isoI65I9K9x1Cwh1CFVuIUmjjdZAGHRgeD+dY3iWzk1XXtL0yFhAqs19LKi/vFSN1IVD23yMA3sgr5PFcIYKri1jI3i12bX62/A9SjmVSFP2Z81fEr9m+TVPiZGtvoOn/bpGhvr/AFOB3EiIGOYV3HY2FHzEDqDXo3w8+Bupp8N7ONri10vxBY3LmG+ERnjltzztKnG8FCpw2ACTg16r46Eknh6SJZmtftciWzXEZVWtldgpfnuM4HuRWrHEFiWMDaqjbj0xxVYXhHA0sb9bkua2iWlku3maVM4rez5Y6HwT8cLC+0/X9U0u4tpJL631COCM6bas1uFkYZi3sMhmXJ4ziujsfgFJqnhX/iZaPHpdxpMkVrfTQsfOiBywZJF6xZ+U5Gd3Br7C8QeErHxPZeRe2sc8PmpMVIXBdPuE5qHVPDFrHb3lxHbj99AYmjT5FkUcg59A1fOY7w2wlSo6lOTSb1X/AATqo59N6Pf8zwfTZPGPwkTStPsdO1DUNEtv3lwVeNZIG+ZVVst90sV5XmivXtS8N3HjP4XvZyyrbSXluA5j/jABG2iuujkk8PTjTw0pKNtub5djOeKhKV57kngv4ceXpFndaT4gj2xhpWawKmO65/ixjj/x6ovG/wC0noPw41C6tda17Q7O/t7V737BlmurlFU7o1Tu5xwBzzXyxP8AtD+ILDT7a40/WJppNSRvMtb6OMzIxY/OLiNEBz6Yryf41aXr2g2eo+I7q80XWLe2AuJlVVW/TIwVLyLnaOgCkA0844ynTp+0wyTPSo8Oyv8AvHoej/tLf8FetN8R/D2OT4cw6xDq1tfJHqQuIvLW1hK5yT1JJ6EcVp/sy/8ABQu6+KvgjWG15JvEGk6eRaahGLPdcWYk6SK27lVbGcjkZA5IFfnN42+Lfh/xz8RbK6ktb6QeKNQM+qrJJ5bQFOFUBcDKsxx7KK9p+DPhrwvFeHStJ1e+0lrOQvLPazuovp/MXYi45CooYk9Sz57V8pQzarKp9Zxl5OXTp8kessDGnHlpI2P+Cjk8OveIPD+oXV5faxoukSgW7xS7ftMUn3SvG5SDwwOMEYr6I/ZN+IFxrvw18YeJrm1vL7TWl0+WPTpZN018sMZisbFmOMiUhnIHOexGa8Z+KHwxkh+EEmm6tq0mpebcRKbi+B+0WIkcAlm6uoyMnr1z1r6A+CWhWH7Ll14X8N2uojUr6/QXUc02n747BthG5AzAGbORk52gqK+g4VxUaSn7V6N6f9vK9zPNKEp0oxPs/wAAy6/J4bt5vE8em2urTAPNa2G4w2mQPk3PhmYdCcAZHHFbuzAHftxXAaT8bGmtxbw6D4gumtysTSOgXe2B8x+bqc5zXWaT4j/tmfy5tPvrOTBH76HKkj/bBPXNfoVPEQq+9FnxVShKHxmmOaMUq8fL/d7DoKUVUXcw5ew3b7fpUN/ex2FrJJJJGgRSW3sFAAGe/wBcfWjVDcLas1rHDJcAfL5jbQPqa8P/AGu7fVvE/wAJJrfVPD95cWsLGWVLFvODrgrkDqrDOd2D0FeXmmZPDU5KC5p20R3YPAurJN7DfAX7eXh/4iS+KPsen3U0HhOW2guogcXBlmn8jy9hwQQfmx3HNe8M2GbLZI6kjH6dq/Nf9iH4E6p8Pv2nNZ1rVb66uNBaWzvobqXLfbEVGWNXPXzELdDwcZr9C9C8fW+twzTXbWdisbt5avdru25PzEZ79hTweYU/Yx9tNKbV3fT5G2LwDU37LVG7jKfjXzR+29/wUStf2Q9e/sX/AIR+81fUrvT/ALTbSCQJCkpkKKJCeB8oJOPSuj/bX/aBvPgz4W09tOWa4TUXw32Rt1w6+qDpX59/tyfGPUfE3w1tZIGXXraPbc6Zq0kymSwkRtslsytz8q5UA/dOevWvAzTiBvE/U6G8WrvodWW5YpL2lXzsfqd8DfiOvxg+Evh3xOsXk/21ZJdtCOfKZgQRn0ByPxrql4K187fsB/tBeE/E3wT8C+E7HUreXXrXw4mo3tuo2/Zl3LHmQnpuZyQP9mvoxl8tmVvvKdpz2NfYKpGWsWntsePVouLs1YHOFpqLzmngEjuaMH0NDkY2EddwphVl/HjpUgXJ7rSspHq1NSKjG5FjFHP0qTB9DR07GnzIPZkeDRT9uTn8KT6/rU8wezG4+QfWipFBx0prcuvtRzC5Ru32/Sg9KkBwKY4+bp2o5kXYTPHFQ7GY8/lU6DDdKQnmnzi9mQhD6Nmjbg96mPApirxk9c96fOWJ5eDuo/P8qfn3FIx4P0pcxA0c+v5Un8VPj/rQ4yy0uYfKNxR3/wDrVJigUcxMoWI6jePJ/GpX+/8AhTTyO9PnJiJjb16U4dOh/Kjr2NPXhR9KTlcrcgYbc59aMMD1/Wn/AHvvevOaawJb8qOYnlEFNY5dac6HPWgcmqjJPcOUa5ytN2+36VI4Xbwe9Nz/ALVV6DG7een6UAc9+vpTx160tHMFhr8kUR8D8fSnHikzijmFyi5+tMkTf607OQaVjlqLiIlG0Ux9x9flGVPqamkGSKaeMfQUriPBfCHxWs/2fPjH4y0f4gPF4Xs/HHiH+1vDmrzg/wBn6iZYIYWs/PxhbgSR7lifBIl+UkDNe8OrRyMrfK0Z2sp/hPoa5/4p/DDTPjJ8PtU8M60s39m6tHslaF9k0bAhldHHKsrBSrDkEEVe8GeFrfwR4astLtnupo7GIIJbm4kuJpDjlzI7MxY9eCBUxXK7m1SUZrne5oOoI+bA284Jr5/+L3wY1jw98Rdf8WfD9dRkkumgk8XeG7W6WE+KlMYz9nPHkXioBhmKiQALkD5h7r4h1OTSNHurqKPzZo0LRpjO5s4UUmi6TDpVhHHsEsj4adnPzSk/ez346fSteZPcmM+S/meD2v7Ven6z8cbXR9N+HnxSfVdNsfLksZdFt9LeLeeD+/nTzYwqnLIWTONpJNekeE/j9o/irxFZ6TcaX4o8O6nfxytbwa9pT6etwY2w8UcrZjlkAywVGJKAkcVJ8XvgVY/GG60y8l1PWtD1zR0kFhq+kziC9tTJjeQTlWVsco6lDnpVy5+F9v408A6fofji10zxZJp8i3A8+AiF5o8iO42bgElCk5K4wSccGseVxlozXmpSXwnxz+0zrcf7K/8AwVi8H+Orhm0nw9440qPR9furqHZDI2SqMrNgEr8gYg/LgZxX2p4k0aHxXoYkt7qO3mt2861vYhkW7jkMD1KkZDDoVzXkfxk/4J8fDP4ofCrWvDD6LMt5qVrKLC/u724vLmxl5ZTE08j+WN+BtXAK18/fsQ/tlaz+zVrlr+z78flvNJ1q1jW18N65dZ8rUrVjiOJnX+LJUBvTAPSuaTlRqurLVSte3TQ9CpGOJoxlD4oK1n1Pt7wHq194i8G2GoX8NrDdXkYkZbYkw85wUJ52kYIJ6g5HFa6Bhnd9KjtdPTS7eG1gi8uO3jSJVHzbAoAAz7Co7vVYdPkbzJMSY4RRlif6fjXdGenN0ex40qb2e5NIjMf4l2jJ44H1rD8Owf2zqlzrUkUi29yggslYncsAJ3MR2LOTx/dUHpV9oZtTbbNC0NqpDhS+XlPo3oKvxqsK7VAVFAVQPQAD+lPmuHLZGH4hsRrmuabaycrbSi8dB9yQrlQpH8X94e61qhWHXcT3OOpqtBpbQ+Iby83Hy7qGOIKOc4zn6davEHPT2H0HFVza3E1cjx/vflTXgE8bK2MONpUg4I7/AJ1Ng+hpp4anGRPLZ3RyPiCyvT4Z1PSdLf7NdfNFDL93yVYZBGM9Bn86K0tbmbRfEENzMrSafeCO0YKPlSZn+V2HodwWivOrYaU37raO2NRW1Vz8ufgj4rv/AIx+Gbn7feXo1S7uXaxtzIlvHBGE+8S2Ax3A4AJziu60DQdS17TotNvtPuda0XTpYX1TV5LtLhSwbIjdQRywBB4wq++BVyw+Bng7RdTa3bxBpDa2JWijRLr7PJGsShQy7cqAzfnUMPjW0+Fn9q6ZeazdafYantV5Wm3iKcMCxB6HhQQfc1+D4zD4CVOdSHNd7K/XyP06MaluVs8H8Z/AHRfin8edY13ULfSPCmlsFmkljkEYLH7zW6dGd26Dt3xXYfBz4QWfhbxIsM1jMdPt7gXlo0spQhlO4SSFVYnKlgwx1APTml1f4iwfFjxToum+H410/wAP6fL58cP2ZXjnk2Mwcpg7ievPQmpfE/j5tE1DUi0hh/seS2mEhUYdQIWljZOBlVZmAyM7ce1VRliYwjVirvZRlvbTV7bkztuj074pXfgd/gJfaXfabqEPiqe/invZ4bmdVlRpVOwBl2lfLyP1rY+L/i7wD460jwrNpdncT/Z5Suny3V8bmG0fI3xtGV3KmNp3A5+UjGMkeYar8Z7zUtOsvtGlRtY2l0ltfLcEFNQj3CQKAc4VlOPUc17fqcHgXxzpOl+KPCt9a/D3UGFzHcQW9iWjf92u2BNvyHJU/MR3NfRYKtP6t7SvHl16PsrClyvQq+Df2rPEfw1v4pJtS0G8+2SB3NncSxx2yK2BH5TKRkgDBJGTxX1B4Q/bh8E+Jb6OxLatDdeUJZHNp5sCEDLjKk4K8Z4zyK+G/hn+0P4XtPGdnoPirTdKs7o3m251m5somTyi4+Z0WMsCFyeOte2eMfDHh23/AGeNR8baVpfgnVH0Y+Ws0V3EiapF52w7IPK67XySOhA9a9rCZj9Xh7S+jON4KlidJK1j7AsPib4b1T7P9n17SJDcDMY+1orN7YJyD7Hn2raimjmh81JI2iOcOGBVsdcHofwr88fD3jfxB8atJgOl6TDNpNjukubFpY/JlkACq0ZIV1YDuK6H4WftJfFBdQ/sHQ7qxt47eRv3epbNtmB/CJGIJHOcnvmveo55Z8tVa9LHi4jIYtXw7fz/AOAj7p1LTY9StGimUtC33hkjd9CP8a4D4k/s3eH/AB1bvcRwta61HbGOzuTPKBATn5iof5j90YYY4riPGnxB8feELPTYI/Emh6pfNGhuxZxRXMZLN18xGAGOnze1dr4m8YeJfBvw+GtJquh6xa27tLeLJGlqyQrySmJCj5PQ8E1NbOMDPWsvmKnkOLhG8ZL8f1SPNtE+DesfDvxX4ibw3eSatY6XNpdlfWl4gmF1biAefsUfdky+7I54rk/2mvjV4S8MWmoazp7xqllYywanouoWvl3SxSbvLu4VbaXVXO0lN2O/HNN8BftfXNz461R9NbS2uPEGseatoo+0rcII41UCTqpH6GvIv+CsPjrQPir8I4Nc061Wx1zQ5f8ATXnby5oVY4e3Ix+83+vTj1rws0zHCYijai72+/5F0aFeNW01p5H0P8A/Dui/H39kPwX4k8dXVpNHbWLMLkyrHCqKxCFjnquFyOvBr8x/j9dQ63+0/rqeGdPik8GzTteWlvdyBP7TxlRc7SQuBtJPYjHc07w5+0Br0X7Ot34At9S1W8+yym0sLNG328cT5kcqvYk4Xn1r1rTNB0Lwl4BWPxBZ2+vXnkoupajcRmOdoyoO2JeyL9xQcFguT1rxc4zdSq2pQsrL1k/l2/U68Lh5wjeo767dkcf4P0O28EaJqmtTaw2qeMtdjSaOawkEVvpceRtRnVhl8A4UZHHc8V+pHwb/AGi9Cu/Bvw60bVNat7jxR4h0CG9eJZN0gCwgyTOP4VJHVsc1+ccmpeE3Ml14H0+KG60fTTeWihwIbthLGDA69C3ls+M9DivdPgPrEOq+Mp4rhI7hdJ0uDSr+TT4l8yys5JN6xtt4Bk5zg5Art4bziphJeyxUXaTvtey/QnNsFTrL2kOiPvbw94js/Femfa7CZp7ZmZVkClVfacEjIBI9xwexq8FJP3j9e351T0W2tbPR7aKzijt7OOEeTGi7fLUAYGPoa8x/aQ/aVm+AkkPl6OmowLGJbqUzbPIGem31PIBPGcV+gYvMKOGpqrUfuvt/Wp8nRw1SrN04LU9ajO7oS3p7+49frQTuHX3rxX9mX9qeP4vo+n31v9j1KTXL2xtoCMSSW0MMc3nH2USonpuJ9a9pRiV/h+Yk8fXFdVGrGrFTg9GTUpShLlYu3/aNGPkPOabtD9x+FL5YUVV+5mAUgddtJgn/AGqMgKfvUKATj5s0cw7MCmBnlaMH6+9BGx/anOoH96jmENKsVPy0bT6U4Rgjv+dN+XP8VFx2Y1z8v5UztT/vpSGIgdaOYOViUUmfrS45o5g5QpG5/rS4PpRtOahSdx8oijbS0DkUDgN9KvmFysKQmkxk96GYmQUcwrMByc9qQfLEfbrS8AdP0ppxtZvbOB1NDloTZvRDvMEafN8vHenOfL+98v17V5/d/HbSbjQfEE1nMy33hzEl/aTRkSJGrfN8p9QRzU3wb+MSfFrwV4Z1aCzkt/8AhINKTVJgW3fZFPyhD6ksGA9lNYU8XTqO0Gayw8oq7O2xz+NGMim7iWqQLhdvvXTdGfKrDdhI6UjcrUhfApg6CloLlIyho2n0/Wnht2fbrSdfSnFjsN25P+BoOB0zTwoU0zBUVXMLlAdaCchfYUUAE0tGUJnFG6lZSBnhffNNJxycj3Io90zcdbgX201zznnGOuKq6zrdnoNt519d29nGq7i00gTj8a8/8R/tSeEtDn8uGaTVJj2t0+X8zUSnBGkaEpfCj0gMwH8W1epxx+dBBU88Zr558X/tozrcMNJ0uCHbxvun3sP+AjivPfEfx78UeLpmiu9XnhjnbiK1/coB6/LzUyxCR1QwE3ufS3xN+Iuh+CrnSm1TULe3aO480gDznGFxgop3c+4rjdX/AGz/AA/azNHY6fqd6n/PR9sIY9uDk183Xd4t1eyKzyTyKcs7ndk/U81QuovLVmLYC1yyxDkdMcDCG5618Tv2p9e8Xs0Gl79Es2iCmON97v8A8DIBFeby+P8AxBbyndq2osZD8zGdiwxz64rPtrmSNsN+8XbkD0pkI3Fmc4B7VLqTelzp9jC1kjt/D/7QfibRR8urXMq4GwTqJFU/Q8/jmvJf+Cl/jfTPjd+zFqWpeJvDttqGseEUjutM1GzmeC8tVEyb1VwCdmwuSD6DGcYPTQWHnou1WO7pUOt6Db+JNCvNNuo0ktb+GS3lRhkMrDaf0OfwrLa6T338zanGMaqqWPcP2C/jHovjb9nvwmb3xZrWoXl3p8Y2arOGx22CRQN5AwCSc9OAK+htP0mz0yPbbRxorncQhDbvfOST19a/GD9lz4+p+zVY698NPEOn6xf6loOqSLp8NrbmVp4G+YEEcr0B49a+jfhz/wAFT9c8P+MtP8L6f4Z1uSSZisdrq7eRGQoywDY3KeRgkGsMLmaowVKp0YsVktSc3UpPQ/R4cZzjcOT2psgz+Brzv9nX4pal8WPCsl9qzaVb3jMT/Z9mzv8AY1/2nb7x9wAK9Ezk9T+Jr3MPiI1Y86Pna2HlTlyz3FXgAe1AbIpjtg0Z54JrfmRlykmajPOaXzlUc9aTNF0GxR1zS11vR7m13yRmZcI4OGRs7gwx6ECirWNvFFHMiT8J/F/irULLxfpyruj/ALLsTZT5PltPtmZd+OvIGcn2r0f4qeF4/jF8P5rHw1rELS29ogm/taZYzujXcTG+eWPIxjkevSrXiT4A6bHdLq1uz6pPcXEP2OKS/DrJbDHmsx653HGD3BrpdY+GTab4OvtU0ew024ttJVbq+hkXy2K5KKQf4lDHBx61/OssRFRhb4r3P1WMZKpfoeX/AAe1q88NeJdG0qxsLiNvtrPJcvKqMGESqyKc4KjrkHGDxnpXR+MfCmrS+MtRkh0SHXJWvWeQ2l6JGUCJGGQuQfuYOQT8xHvWhpGsa1qPxc0ix0rS7fSf7PtJ5oIPsyvM8bRgszhvlYDIXjuOK7nRfD0eq29nqlrrEEcpuZJLq0gcQrMoznnrkD+70OBXXisQ041mumvm7/8AAHFa2OZmvLqD4bwah4li0t/sbRhrcxv5wl37pM7eCcZU98DoK09f8X+HfF2lNfaa9vo86J89laQyrkjgnGSo5B75NeefH7xZqzWJtbyxls0jJmtpOiThv4t3RmAAz3PNJ8EfDf8AwimmalBqF3qUmpPbQ3cNlDKs32tXc7g2OQdpzkdDx3qvbVFhHOVrdjOVS0rHO+H/AAZq/wAQ/i60cLTtGt1j7Qzg5IXkucZAHU/XvXofjf4lweFr2HQ9Njn1GbTrllvNhKwQJ5Y8pywwrbmMmV2jG1eTk4j8P+FZNEvdQutPs5rC11ABI7q6Yfu2kGHLL14/M0nhXwLc+FNdtbe4MOpq19JPOIyFjkcRbVV+OnIYDtmuzD1nWsukegqacWe2/BfX9K+GNgtzotyINRBWW4kUvFufHz8hWyeTgYx71pf8Jzp/hrxTqWraTr1rJeaxOtxPHcaas7Svg5GSoAA3dj2rzXx7fXieHJNQt7FZ7y0byzFGDtc9uB1Iq1ZWlxf+GZPL0X/iYNCrrEAWZ8plgMfjXofXqaTnN+9sdHMuXlZ714g/aL1DWvDcem2Gm6drQkfzr+7g0v5YmySMIW24UZycY6GrR+JPjPxtYx3994f+Hq6W2mLpU0F4y7LsxPw6qz/Ixz/AcfKeK+LPgJ8btWn119FgvGhExEcmw7WUZZWQgnPQHg16prH7UfiLwt4kk8EyRj/hFbuFDJZWoVozIzsyMGGSjZZmIBHrUurTnFQ6sj2l9jrvgp4cbVU8R31/YwwalLrM8Vrd2yhreBgdqokXvt656c15d+0b8KPE3jfWre3+2HS1tFMV/Dcgram2fO+QMVOCAF+UKQOoPavW/wBnz9qnwb8Ffgtb2finwndeI/7SvprmC4t5D9os4zL82M5DNyOa9l+Pfjr4a+JvDeoXXgvXo5YYUMclrJC0c0KtErIELKVYE78jjjFeTjMLRpy9vRvzfh9xXKp6M+D/ANn34C6pc2d/rFrJpM1vJcts1WZjKsLKxTzGVOV6jAIwQO1aPxwiXwdrMmj2t1N4ojuI997Jbu9w9xOAAXkfYFVV6qO+eQKvfBHxlo/gSDUJ/FFhaLqV7c7rHbCDiHJ3MFXHlkYySB3rT+LXjFvCiNJo8M1n9s2AAlm5BGcDOGzz+VbTpt14Vb6LWz7mcoQjqHjHxTpHwH/Zu1STwpoV5Y674jg2aggu1u44IzgHAZDgH7xO1CCMA45r6M/Z7+MWg+EP2Z9F0nS4NF03xPr0bXGr2sVqszXTJx5rPI0XzEdFBOO1fIfxK+Kkt/4X1SwmsoPtl1F5Dz2y7QxlwoBI/i56VoeJZdUn8UQWbQzyWd0CkLTDESsOGVeOOlfXUKmIlGUn7vNZX8ux5NSFNP3U2vU+9U/ao8Ya34VmW1TRZ7JoRA84ie0ktiVx13HLDAOFJBxjPNfL37QnxHht9aUab48l1ltYSTSreCK7/tPzpJPl8y5CszqqYyE2ZB6Zxzo6J8E7XSfBun6x/wAJBpLasssY/siS58wxxtJtO5VPDbHxk9OvaqOjeK9B8L/GUW3hfww1nBoePOK2vmzSRsoOQT90sxPqcZr5PESrPHxjNynDVJX0Vv8AM7KeH5I80Va56N/wT001vhbrL+IPE/iTRf7QuppNOj8rLzJbxHfKqRZ3ksUAyFznGcbuPtrw18VrfxVe28drpOtww3OBDNc2vkxScZ4ycj15Ar4g/Zb+M9wg1vT5vCNvrk11qN5Jai0heOe0jyFZVwPvMUUnnrXvPhH4ueKfAHiJbzWdO8YJ4dmQiS31Cy8xYAB1jlChsAdia+3wmPqU4Q5lyweyW69TxsVl7m3NK7Po3OST0A4oJz/eyOleTWn7Z3gee3kkku763WNQV8y3PzjtjH1HX1rTtv2pvAtwkbnXoYzICSrKdyexAzg19LHFUmtJXPE/s+td3ieiMcmhTznP61wtv+0b4JnRSviKx2v0zuGD6HIrotI8aaRr0e+z1Owu1xn93MCfy61arQezI9hUirOJtbgTzzQSCo/WqMWrWky7kubdlzjdvGM9KsGXaPvfL6jkValfYydNrclzj+Kk/wA9aj3/AO0OmcCnE9Pc09O5SV9EgRsAdaNoH8WfxpoZd4H/ANemmbIx/eJAx7dae+wWXckLEj/69NK/Wo84oY4HX9akCXLfhSMTn8Kh8we9HmZB+lBJKp+Xk96Mj1P4GogxC/jR5u0fNTDUkLFu+Me9C/e+8v51GH3AbW69OOtMF5G83liRGdckgdgMZP6ik5JBr2LJO7IAZuM8KTWXrHijS9B/4/tQtLNmHymSdUYcfX374q6X+XPB9zxt+vNeOfGzxDLJBPp9vc2viC6vAyrZRaStwEyMfM/3V/Eg1xZhiKlGi5048zXTv6HRhqKnNXZ8v/8ABTT/AITDwL4UutU8OX11qX2jTLlLrUrKRcXtg2PM83bwzREpggnIP4V0n7Hn7X3h34GfAiC68RXV9Mtrb22m2tvZ2xuprto1H+rC8gKTISD90sR2qPWPgb4s8F+F9W1jUNP03SdHurZrFbFrc+SJZSqq8qhgEjJxkY5wK4P4f/syfEr9nO1tfElnofhnW11bS7TULe2u4vONlcJGDMowPlznIPbpzXymHqVqFWTj7t/e5Wrux7ksPTnBRm+vQ+6vhV+0b4R+MOhWd7o2sQSG+TdHBP8Auph/vK2MdD1rudxb/gJI4Pevy++M/wAepvEvgfw1rS6P/wAIvfaZem81CztYzHILpJPkCt2i3fvDn0r7I/Yw+MfiD4tfDRvH3jK/s4YfEE3l6bbwjakSIdp2jvk+lehlHEU8VVdGpT177HDjMqVKPNA96Y/IORxTcc1Gs/mRqyncrDI46j1p/m5//XX1TlrZHi8vcVjtHSkD/wCz+tIXyMdF+tMd8D+tVGWgarYe7bvakH+eajDbv4qTzOcbqLhyt6slLbQS3Cjv/wDq5pA27+Fv8K4n4pfHHSPhXaf6VIbi/YHZaRn5yOOSf4R/Pn0r5z8f/HzxB8Q9QfdNPp9iThLeJiFX6+tRKpY3o4WU3Y+lPHHxx8L+AFmXUNSha6hO02sB8yZj/dHYfiR1rxTx9+19rGss0OiWsmlQ8gOF8y4YfXov4ZrySWULdyMrNLcScsztuZh7/jTdK8RyCa4WJZ45sEbyvygVhKs3oehTwUYv3jQ1G/1bxXqD3mqXM80ijkTyFy3oSDwOPSq92I8Rfu93kj5WztUsf1qu+qtDmMO8jMBuYniq6x/Z7cF2VpOMDsaxep28qirRRG1hiVTNtZmGNmOv1qtMWguGEasrEbdy87RV6+lFon96Vju57VEZcW5b5d38R9KdwlHQbbxrbxBVbp3PVvc1HNOzz+WrKIumMZ3+9Vw8t1c/u2LZTGe1X7eyNqqkhS3qf4RRIkTZ9lCH+98p9qY863A2g4wxUgjr3pbiTbAwbHqpJwKghwyq0jLuzlsVCTMy9a6gtrCy7Cp7PnOKSD96rJujZWO4HJ5H5fhVVs+TuTaM8D3qwYhDD1Occj3qZRuTzM5+D4Xac/xVPi6GHytXazNnN02zrnIYnBOR0HFdFc6RpmrQbbuzguEWfziZEHmxOF2qysMYI9eepp0e6X5gdrL+tWPIju16+XMOdwqHTi25NHR7eTe5u+FvFN54Q1KC+sbjyJo8bJRnEmOzZOT9TX0P8Mf2hNL8fSw2FyPsGrsuBE3Mc577G/oQK+V1MlgzM2WXuO2PWr2na8puI5IJXgkhI8qRfvAjn9Kum5U3eJjWoRqrXc+215Hb39qM818+eDf2q9U0NYodas/7QhXCtcpxJj1I6GvYvB/xH0fxxa+Zpt7HMxHMTHbIPwr0qNeMt9zxa2HnDc3nIz90H8aaz5H8qa/B7dOaYWwO34iujm7HNy9x7Nn6UVF/nrRRzMfIj8jPBOnw6R4uv9Qsf7KtNG1q2jBSOOT/AEVdzPIUXLMCWPpjj7orj/jvoGoXjKx8QPqWjxxYCxAQTRICByjckcn68njGD5V4L/aCeM6Fo8ltJaaixdlCSjylSQZXIzkn6mvVNLkjk161udWu9zQwLb3bmKOO1wXVhu3ZIJbaMg8A/Wv5/jSqUq16i0XU/RKeOktJoyvAuoXGkeKLO6sPEOpWe+xkmglu2a4e33Ku5ASo2huoPTn2rvrPWtL+H0vh2RdF03UtWjaQ/PJM8cBfq0hJADPknAB5APTiuD8dahZ3/iHTLFD9hsryxtNJaZ1JzCWHzbhj+EHkelereI2sdFv7G5/0XXNJjg8i3a1g3xeaPlhLEHKklduSP467sRKE6dNvZ3ujsptPUm/ag0NtJtdN8Mag4kaeffDJFLkShl7A7sKcgY7etcj8PPh3H4I+KMcF1ql7pdxrGjRmSbSXHmacDJiKQFlO4ZUBlAHAJyKzbX4hz+IfijHdakVit/tzpYNKwP2WEKxCD1wx6nsKcb+++HeveINfsbyG+tbK0Nkb+eUMitsYlI8+mW+UDqc9qKOHlGioP7V2FRI9K8T+C4dBimfxHqusSaldxb7K6iXNuZkPGQowqHnOSSc8CpPh1JqE/j6Cx1KZbi0Fmb2OeOMpI4f5DGcrwV2AqcHPTvx5n4e/afv/ABd4Vs7VmuI9N8wxgOFURogBEg7hic/nXV+GvjroFjOrSQzNeSRShJ/NPmNuK/c7ADA47bs968/99RbT3J9tESS4vtaOtXv2660mykuYbYC4YCRJBkPxkZzwe3BrtLDwJqll4Qs9O0C4nnuYbpIrm6t71Ym08ZJJILMW9MZGc9eK4Pw549i1zUHbVLib7HqTMb2G5iDsH6Kyn8ufSvSNL+M1ubm2nt7exs7mRXhnUKFjvydoyR/eX1681nOUqisgo1E2cN4e+G3h3Tvihq0sdtcTL9uNuL1VHlxT8MSwzuJzx6c10Xj/AOFWr+H7tbjT7y4h06NJgSrNIJwY1wCqqCsgydu4nv6ZPIeGWvZ9Y12G4knWNpJUiRYdyyn7wzJ0DZA9+K6r4Q/E7UZtR1q41y5tUjvxDbnzmMa25QNtbaf4tpwT3IrsjRq88Z32RolG9jzX4167deENF0Oz0OTUH/sWGG31K1ZMrbK+MMrcD5iRk+oI961PgxrGn6vp1+pu763i1Ez3U0aj92h244B65YuAOwGea2/Afwr1f4yWvizxZ4Ftb7WtN8H2j3PiOzvZlaGSAAjcu4gkH5iMdMZFZjaHeeFdHuLrS7aO0t7yGdTOdzIFIJ+4wG0BTgEGu2lh6rg/dd3r3OV1IwerW/Uz5/g3q3iC78M3cGpWN1HcOscfIR7WORCrB+M9ec7uh6Co/FetakfGGj6Xcxx2lnbzxx/OvmNIvLCVhuyMuh4x3xmu8ubkeI9C8N/2P/ap1KxtgI5WkiWJWWLkMgPzfKeM15zqGiDwJ4i0uzvP9KsYZTc3tzIpAIBxhSedql+Oayo4XFKpesmoxTs2mVKdOTtGSv2Rsr8PrzXLXQ7S9VriS+8SLBCkrLCgjjVpmbjJwUjbOQcHHWt28+K2qX2ja/o81xqEVrZSvJaxSRxzGzJ25XAUHBO7BDd+grb+Jtx4L0HW9D1bRbtpYNHe4vL8WMheaHcqxpw2QxdpAcDnAIro/COn6N4o03xNptrb6OqzIftAfbHdXXygM0GQDkN2zknNVRzKrOl+8Tvr3RUaST93RnD3HijxB458R+GdStLm6hD2z2txFAgmEBwo4Qg52gsTnuAM9677xj4i03RrWe80W8v7HxBe7CTK0UkNyQdvmMseHhkC9yWB54FcPcXq+B/i3pfhGNri2+xxRgysrPMRuDBQBypdNwI5+bFc/wDHVptR1yKOMtd6pp8h+1RW0JieNFO7bJj7ygA/MehFVRx16kNAk7Ra6noHwu8beJNF0iHWrW8ksbqCee5e7Ei+U+6VsE5PyjuflORmvbvgf/wU413xxomp3HjjSVvIXumt4PssVrZtGNoXbh7eTeSMHHH3s5FfNfgfTtL8TfCNdKuLrVLXVLiVIPOtcCGFSuQrMfl2jksCcnHFJ4I8KXml6PLNFcSa5fx3IWFN/wAkkajZkgZwWUAgnk17EnUlWc1omZSlyxXKepWPjvxB4K8dapq2l29vCb7MVrBf2cU7Rxl9yqy7Fj3BQBkLx+OK3dV8b6f41e0afR7jT9buEKT31utvbWkkvJz5Cp+H3+fbpXmt38Sp4tSitZLG/t44coLS6ifcOmVViOfb8ateNn+weFb2S1nit9W+xm7itSS8yqrAMCACFOCTn2rSti1hop9xKzu0jbj1DUorvdKrKqY3/KHUn8D6Y6Vdg8TiG63vLGVU8Ou7KH6GvPfA/iK/TRt91eXElnvIspypxdENtGDgdcA8+9dB/wAJdFqDbbiO4tpt/ktiPcrtXr0cZCaSuc/kemab8YNS0/SpLWHU7iVZP3igydMH36frW9ov7TviDwzcrIupNI2AWV26n3//AFV5botpa69qFrZJLbzSzTeTHvO1lbr0ODiqPxI1e38OeLl0iLbNeROsNzG2Y3iPB5DDuuSD3xSnmVKlUVNyZp7GMo3sfSvg79tPWP7UaTVryz+x+ZvKtGCqgjAGQR9eldtqn7aOh6Xp8cy3FhNEyMJrhHkItsHqyhDxx2NfE3iTxTpcUn9hrDqx1aYNHGbVfk3/AN1s45U+meK5j4Q6nqVlpF1pNxeti1vXtWlB+UKAcgE9yzd682PEFatWqYenp2ZjUy7Dr3mj63+EH/BQXWvEDapL4h0uwWysRJFG1s+bi7ZCQSY1BbJ4Izgc96k/ZH/biuPi38Y/FWn+ILu707T7eMS2kd/EMLiRVCDaoKsck5PHHPqPnPTYv+EfTWIbfE11dDyxOzOBDtRAqserDHNYvwv8beH/AAf4jvNSi1RL69vnSzKRxuYyy/6xQG5Ynnr61ODx+PoYpQrvmj/XYmrltGUbQ0Z+j3xM/aE8NfDDwt/bN5ffbNPWUQyy2ZE3kk9zz0rY0n4l6HrHhqPWLfVLWTTXhSc3CvlUVumf5fXA96/On4stJ4w+Ht3b2sscOlyAASQ7kHmA4X5f4trcYrT1TxvL+zv+z8NG1O5+1XbWJQ7Cyec8hH3QeOB0zxkCvXqcSRoy/faX2OH+w39ln6O2d3Hf26yxTK8bKGDA5HIz/LBpwc+p4P4V8O/s1fHLXtK8BRi+1S6CMzTB1PmNNHkKgxn5fu4x617j4f8A2i7rVYftn2qxkgt2EctqP9cD2GOpJGTgelevhc4p1oXRx1MpqReh7j5xY9xSeZk8/wB09T9K8yj+PsOmztHqDW8gYCRDA33FPZgelFr+0npbWzSSwyKPMMe1JFdlA/ibpgHt9DXdLGU4q83ZHL9Qra6Gf+0n8TdY8H6VeR6RqFxY3Ri/dwpBCZWUcu8e5s7gBwcYB9a+cfgj+1pLqH7SEV5JNqUmo+MNMsdFeOZhHbpPb3ey6u8YA3G1ELMEzyG9Mn179oTxn8NviPoU099drNqlnC8ltHHdxxTJIoyoXLfePQYr5B8F6zN41+I3g7Sbjcs2j6zd+ZIoIYWs7KtzJI3GWCKkYK993PAr4fFY6vSzJOLTg9lc9ajg4Sw92tT9MfA3jGHx94Zh1e2DCxviz2jso3TxZwrkEdG6gHtitS0ijsYysKLGvUoiAdT+HU5rhtX+Nvg/4cWtvZz6hHDDbwiOGOKNmWONBgDOMDAA4rzfxZ+3h4Zn0OD+yLq4aTWJY4bG6ltzEtvuIjkkdW6rG3ORwQ6mvrJZ5gYy5XVi5dluePHB1mtIs9I+PvjTSvD3wm8XLeSWck1jpE139nlK/N8uEI4PO8qBnPJq83w43+GIbez1LUtNuxZJbearDAwg2gxtuUdBnGM4618Wft5/HWfxv4Mvrez1RbhtNlews7zTmX7PrG1gGWXuhDqD6fLX0hoX7S2oeM7jbotjbw6TothBJq+p3MuYo7hoEleNB1fy1YAkclq82jjMJiZynVte1rt9Du9jWoUo8nf1/M8G/aX/AGStYT4Y+INR8XTaLHNDcqLLXbFJIpJJrmRINssGWG0h+zHke9fQn7P37O2ofDax0XR9Uht4tI8GR/ZNKjEpaS5PUyOM4XJJ+UZ+tcb+0l+0polj4Nt9OvLmPVotQmtcw2ablu9s8VzEUHUSMEKgevPSvoDwj4pPiLRobiZBDJIo3MCAryH5nVO7BSSpOMEipy3AZf7eTo/m/wDMvFYrE+ySmtzd354G0Y7AUzf838P5VTs9Ztby4njjuIZJbUgTojhmhJ5GfqKlaXJ+bjHB/wD119RGS5UjxJeaJvNyp5A+gpPP+Xr+Jqo15DDK0bTRq2wyYJH3c43fTJAJ7Zrg/Ev7SvhrSYW+w3C6xMGKEWp3IjDggv06+lP2kV1KjTm3oj0XzTMPlYN2AxgmvN/jT8e7f4d2v2PT9t1rEylkAwyW3bc3v7V5H8Q/j/rXjOSSJbs6bbr0t7d8M3cZb0rzS6vFu75vMkWSTG5wDuOT3NYyrpu1zso4TW8i1rGqTa3f3F5dXElxdXTl5ZWO7zGPU/T0A4FM0uFtXu/KUmKHHzyH7qAf56VVbalp8p/eZw3pjtTUlZI2jDOv8Q44+pqJa7s9C0VsaGoX1uhZY9scDHkgfNJ2z7dKotdZVlEi4YbQhyOPrTZYQrsJJcseRxwfce1RSRTBMhZGjHO88H8Knl8wchjPFb7ltFCyNjODkdB3q5HgbGaNpGUdAeahD29snB7ZI9ajn3PKf4Rjr3oJ5rD7q4VgsjKzNnHA5+mKgmt5pJF8y3eJcZUMMA/iM1Olt5yqF+Xyx1wcg0y6MkFtHBDueQ5yxqeYfM2KDsCxoQoUbm46fjUY1LJ2t97cOMVOLSQJ8se5SPm56U1dH3HzCPlXGfU0cwrMLq183b9oXC4yAf4hUMiPaTR+WnysPmz0q4jrczbT5kgHAPcUXkIRlb5sRrjBPBzxRzBOKUdCitpIk8YUrJHndgN0qww/ebfmJ6njjFTRWywQt/Du54p/2eNFUNhyecd8UnIzjDQguZGgURiNy8xwoHf3z2qxZ2+EKqcbTjnqaW0tGDM0mN38O09qt6fEwaX+9tHPrjNRcOUjCGRtoOexG7736VHLpMayBlXa4HANWBA0sKyAfvFODVho1nVVbJ45z1BqoyZUSnDPNYnGNx+nQVc0/Uvs1ylxaySWlynKywthvpTZbfydu7dMjccH5lojsSZN1u3nKvVcY20DnqtT1D4eftLapYstvrEKX9opx5qLtkX371694W8d6b43tTNp915395Cu2RD7r/hmvl21tUeTcP3bY+YdKu2eqXOjXSyW0ksEidHR8E/jW0a0onFUwkZao+rd3HaivFfCP7QV5YDydUj+2r/z1TAkH4dKK6o4iNtTglhaieh/PRd2d1YK11GskNvEwWJi+7GOntx7AV2fhH4qah4g+zWGoXi3DO32aA3IVVjBIJbdjg/7RzjOccCsKT4beIvEGoR2q2rSXVxMYkeSTasznGI1Jwu4Z5yaoTfDLxBpOvSWNzpsiXlrKIHgDhn3nI4AOWH+7ke9fncKdOvTSk0/Q+3dNvc+pPDnjNPD3hfT9a8QXdi0ZvJXjjuCWKxRjaqRkD5iDngEZB4IrtvDXjPS7bwlZ6v4buJ5LW8K2cEKXG7y7hv3u0jqr7S2A27mvJfFvw417XtOh8IaFYzXNt4d02BLu6Zz5cF0w3ODweSCBxzmvX/gv+yF4itvhdpOh2eneX4ha/8A7VlnE8e7MY2Kg5wGIZcA46c149V0fauE5pNOyXk+p0U+aMuXpY0rn4TSWt9fQ3l1b2d1pwRtTWdHMdrJwDuJ655yFxyK+bPiV4gvfGHjqTzJbdVQBvItx5cRYk9E7/qcA819rfEf4f63pdvrGk6lZ2K3OvIjOlnqwvGkhBO5ppB8qynGWCk9ayvAPwn8K6DNp9g9pp11ayNu1OS70oyTTossUrokxP7ttqFQR2L+tY1M2wVCf+0S1Ssl28zoqptWR81fDmwksvDVzb3Mkl6JGA/c43QSd0ORuz9K6Dw/4X1K6VYbkSTxrLlhZSMGjQ54kG3CgAZ4PP4c+t658FbWfXri48NW9na2MbNCieYCoG5mRpM8ltpUE9TWV4k8M6t4XvPskySWepWssV1GtsGaNo2ADK/PzZ3MCRkDb718/iM5oVKv7uad/LU8upGUXY4ya4VdHt59N2+ZDuSRxM0m8DrwcZPcHPWur8NeKfP8K/vLkK1hE0scTRrGszcsX3NuZHPyqAuD8nXkYw7a8t4NYuWv9HkhLMRcKifKXwArAdAvf8K7Lwf4B/4RPxpDqMN5Y3FhAZELMDI58yMGKRsZG3MgBPbj0rTC4yFOfM5WFTj71mTt4q1Dwt4NubhtYjs2kJ8vT2jEsy7l3eaOhD4PJPNeWab8SLPxt4nuNNt/N36hJ5ssjMR5jorLgLn2PIP5nJPrXxk+BNj4sg1L+x9T0e11COL9+szyeZeAIFJGTlQGyfoK8a8PfBOL4WG51e+1KzmurFGcWyv3AA+8e657fSvosPmWFrO0pqT2Wh2+xSfuo9J/ZK+J3ibwD4Z8TaLo/iW50yHxdItpeadC2TfoGKkNkE7fmOa+hvir+wJ410H4PeKvFGs6hFNZ+H7q2jtreMNGL63uIUaSZDwGSJjgj1B6ivE/gPp7aPHp19JJYtPHMZobqO4j4VhkqzdR1H5VJ8W/jf4murfXrWXxTpdx4XmjxHYi6ie5UOgO1juyx38kjrXfhcdhq0pQlNprQJYe1pWT9TmPHt/rnw0s9QvPC8n9tQ29+bWKWOJUFx+7w0inBGMZx9O9d/4Vt77xh4a8TSasV1S4s9IhiRJUAEQldG9OvFec+BbPWrzwKvg/Q7ixkutau0+z3sUsUvlFzygUEkHCk89MEd69S+Az33iDwz4y/tS3Fsp0uKDeuV8xl6Ng8hs5+XtXVVxUVSdKU1ZJvVgsHTU/aWV2cj4P8E22mfCvUpNTtLn7WdRgFksdwYAXi3SHeTubZ0zzxgelL4hfwrL4ahuNNk12y1yNw8y38q3UN44/iDIEeP8AH8q1/HaXOtQ2ei6bpeq2UFjPM/2m6TmdWjUfOQe4LYPp715/Pp/k31xaGTzIbghtjA5cdstjPI5r5rFVIVJ81Ka1SLnUs9DovD2u6p4i8U2txJqEh1aSOWSW8lkOfLjxtSOUkFTsBHcnPOar+KdGgt/Cd/rl4rSXNwpsYZIZjG24uBvwDhlOSDgDn0rpfhV8KrzxNq7QK2m2i2kRmcz3Sp50YZQdnPqVHHQZrK/adsk8BaNptrNrVrdrNqCmCC0k89YIwwkYErwMZ6GjDzo0qnJLVtfkZKV02z0228B3Tlby3upWmkgiSZbeIGFgsYAO0+hGCeetVNCvGtNKsbiRLtY9OGFlhiZo2eQlgCckNwQM44qfwv8AGHwkml2EGp2/iyPWrANLb3enX6C0lj7b4iD/ABE8Zzg11XiD9om3XwrcaTZ6K2m/Z0FvHPcAeTIQdpK8DuM+1ehiMwlOK+rK6NqfJKPvOxgaul3ZGee2uLhV8pZWmly3lyEkBV3bqJp7uS7+1XEy3lvNZstxHFGIpnVep3bcqeSM5rnptXkW7864ury8tWt47VYLOZThgdysdxHII6+5p8/im8+wXW++a2VYfJaKcrvnBPO4qa1cFVjepb7zGNRNXTR0E+iSWM8OnpaJpWmvGl9BGZNzSgfKFUnOTtAyTyeORWYNesVhYq7l7SdlUy/Ljn73B5PvioL3yoIzb2WpQ6wzRbIrZl8nyg33lDEnpiqWheBtNubiSPxBca9p9qqAwvp0cF0xI6ghmHHfrTp+xjPl5jCpJXN3Sr37Lbak2l6lf3DXce9YmmaFPMz94lAC+P7r8ex61kzWl0fGkd1rV9NrWqM8N0l5PuWdOsbIeoZVVhtz0wfwsa5psNxps9pocuuRxqnyXVzDFEZwOjOqSMQCMVn+FYbO5MUMt5NdapHblRbs5TIGfvv/AA5yeK8+riKKqp1mrLrfUuNSysjutY1aZpbXTtNh0/SdQjR5rhlJeaJvmAKS53DKjkEk++ea8z+JvxbjSwmj0m30+1ezdbe/nuPMuJXcnaZi4B/3vlB4FWvEvx00PS45tJvprbwxqduhMpkPm/M3y5+XLEgtnHtXlfwi+Ji2/izW21i3t9X0q6Ks96LMxoAsgwfSMFfXnmuyWFhb2tC3zNZ4hNWbHXN7cfFjxbJdahqN9aWqECEWMyokR2DaZDgHJx271raH4MvNY8TW8DNLbx6VE893cSykSyhkOPm9Tx7k969A8IePvgnrHjbWbO4vfFBs7hlFndR6fC32iQ7gd21vlThCp6jJzjFWNd1vTb7XNSfQ7Zrq3uoYIPKuykKExK3zAq7A/Ngdcmt3io04qNQ5U1uczqF1deAorhLWZ5rXU5IV06QzmZ4JeN6lOFVCckPjJr0HxB4n1rx/8Nb63nutLljvnjjdrm2zNIqsoIDMxCqDg8AHjrXmmnfFaHxd4p/see0t7i4gdmkitYS2yQZxz/FnPau60drPxd4otfD/AJd5pVncyYuproJ5FsEja4kJJxtBWFhgnv68Uo4KNT4veW6N6Er7Oxc+GviJvDHwoaGVpoJPMCiJo1O9+PbPfg5xjHGea3NP8Uaxcx3FuJI1kknKl3YZRdu4MRxzwRn3rRk+A2rfEf4eWGreF7HXNQtWBihK2b3RaSNRgbYwSinqGbqOleeaZpXihfFl1ol5pV1a6hagtdxyRukkCgAnhhnkZ+ma9CjQcI3gRip1E0emav8AFy41d7aPUtQW6Szi8mKTzOSB1XHNV/D/AI2+3TzNa3U1xaMyxyRM7MsOd2Pz98155qtha+GdRkWeCaK+aNX8l1OV3DIOCOcjB46Zrb8Jada6ldSNDqH2ON1y8At5XZx7FRjgg9ema6+arKNpHFCUubQ6i91ixvxI0ei2d1cRnyA+7azMR8xGR6Z59a53w8jJ8fLKFVt7X+1vD0sKl5MyWu24UgZxhd6uctnqOg719c1fdfGxtfOYLINkyQsrDJ6jdjvWTrt/ea3e6hbxlGvtMK2r3XKNCJWBK8Dtheeg3YryMzjeLfL71tPI7MNUadmem/Hn42XWhaYbWPVo/tumRCNra+ZBayxg5CHnLnqNwI+lfPH7Tvxi8QfEX4HeH/FC2ujaBBps8tlHaRT/AL64BysgQH/lnkcHk5A54xWHoHxmk8A/HTTLzVrG+17TtPCw/YL4uRIxGMlHGMbueeorpvH/AIMn+P2q+INU1LxJptnItu+pSaJDbq0OmII/3Sqq8IW+TOO+T3r5KWBjQcJ1Xq9Wz0JYz2i5UY/7MvhfT/iHoOoafuksWksJ5bZ7m9af98+M7E2rnHTOfvYr6RX4r6l4O8AnSYfFHh+3iuIhHp0dzavHcvJHECu5t3z5YYy2eODnrXzP4N8Lah8Ode8G+JtRaHTdK2QvGvkiaOcr85jIXJDP9ByK9v8Aihovhb4geLtN16z8UaPa/wBnzmSy0W68qF7jK5eE+Zty3O0jqDXFjsY1iY8suaHl0Koxg4OL3Pn3wV4k1r9ozxXeaxJeBdSTUY7m407Dpbwzw/P5ysuCsYjDcLjgEZ5r6s8F/tNaz49/sm7gm1VX0mcWsF9GfIjluFQKWyyncuGAwNo45BPNfOPiPxJqnhj4k2Gm6HpN14PtdUmnuJ4bPUIJJpFm4aPg4wBnAJGASK+pPBk2g6Homnrr8Lyw2sZlt1j/AHi3byDPmgp3HHUdq+wymNWNXmTaT2XX5nn4inHls0euS/HLSfhf4K1DVtGSZ/FWsYEtvcDdHPPjBmyOu3k7e+BWNe/tceKtS1uO40+a1gto7VV+x/Z9waYjmQt6Z5A9PWvBPEnjy6i1lIbSdjaykFmkh2tDlx0z0OB1r1zwV4F1Gbw7eaxb2GjzafDpzz3M8l8jbQnzEqgO4tg4AHOK+0eKklyptHixw0G3pc53x18VNe8b+Jbi+1TUJobi3tmhiMIMceOCQBk5BPP1ArL8FXM1ppDxwzJcNcK0u4p/qnx3HYZ9MVD4k8VaX4u12zOmlZJFGBbiKRVIYYzuYAAds9aj8Mabd6tqUlhDJY6e+oTfZc3F2kbRnPY/3feueUZN8zkdEYxiuVIzdUv9QbWri7WTybdgLdnj+fc20EhRx3H6dabph/srVJrxZCtujJFIiks0hI5P59q9ul/ZXtIbXy9Y+KHw5s/OcA280zpKvGRzjHY8jrWXqP7Nen2dz5a/EX4d+SsbLC6ascscfe5XnFDcr80ZE8sdmjiIbyG8cLbSTtcSRu0RMZwrA459un60moW2qDRILfask15uS4nVsGNSMZxUnxFtJPgr4p0+11LU9N1SZLUxRXGl3STwyK4U7jg9ee4FZtl4hAvYZNQ1SR7bkhEQD8CQa0jinLSVxcsehVW5uNIWCS4FysGnuIZF27/OXH3uuQen+TViPxZFrGlSOnnW7RL5ju4wsaZxgc9ao+MNZsbi01CezvrWOS4BLAOzMxGMDJGAazPD6tq0ckd48kds8OTcKhZN4HCnAwc1Mq1SPwt2HyrsadvqVxqFoxj25t3PDnAlXJxg+/X8a6TR/KktoprhVt3k5AZ9xY+g/wD1VzXgzS7W6uLGK6vLiNJJ1aZsfMgHXHHAx29q978PfCnwN4z0LVbRfEYsdShtWubeW/URxrsGcKw6lulXhcVNytNk1KaeqPN1v4l/eb8KTjgE76bcSxxjd5bRRsMqXGGY/wBKq2iLaahDHIsk9vGdzeTJtDZ6YPar9nc28O7z21ASMx3eXIrR7PQ5Ga9PlT6nLzdxbCBblFd1+72B61N5sIdmEj7VIwPpVrVvDWnRxxyWd0soZc8B12/UY/lUcXhK1ju7VvtUi+YMT+dEdsIPfA+8v61NkzTmKclpbm886PbhvR+/0pWs1M2Sp56Zbr+FX/FvhvRdKW2XTdTi1KZvml2RNEF9gDWLqmnWn2L7XDJeR35fZ5JQsFTpuzVRVzOVVmhLEhlUfLx1JqPzYYLxym12yFG7+E9f6Vl2mk3V+NslwyjHO4FcmtG30KPT3jFwyzOeQUbcPxquRE+0b12LMYWWVm/9BPBNSQwMk7N5mfQVdigtp2ZljkVlT5Qi/ePvVm2skhDNcWMjM8eR82MN/k0cpXMrblDyOhYEc5GBSyQSFt0g3E9xwcVfTTVcqzW7qegXNWrTSwlztaJmjb+JGztPpj/PWhRJ9pYzIrdQFZc/7p/xpyoEmwFb8D/9atY+Fw0Jk8yYMf4f4amg8OoTlBIu1cnJzk0+Un2hlvD82GRmyM5Hb60oCmLaVXPTOa1ZtIkVfl3NuHXFRL4c3sPUdQR0NOMWR7XUoCOPHzSBvcDBFFaF14eVImCspP5UVfKyvbHym/8AwSP8T/tB3UmmReJrHQNL8NuXj0S6V5o9SL9bhSkwPYdlNcvov/BFDVPAHxb0nUIdWsfI0y4WW5t3WZjOQRhBu4C/Uk+tHib4UfELwReaT4i8B3+sLrsEyxXn9oauFWaGWENgJ1UA7l9zitDwVZ/Hfw1r9vqXmWNxsuPtM1rd6o7xz46oxxkAjjI5HWvw/IMPjZ4OP1OsrRXK21u/8z9Bp4jAU48tbch8f/sS658BfFd34o074ia1puoatdiU2UrW6w3TMf8AV7mYKDjGNykCvVvAFj4H8FWdnZ+LvE0MPiqZd5g1C/jba+FKuCq45BPAPzY/u5FeB+L/ANlz4leP7W4bUIo7mTzmngt7nXzMsZY5O4uueO2OgrN1X9gz4ia/Fpcv9oaZe3Fvbgus+pkqsmSFCfISVVR973rt/wBV61WKeIleXdLUX9pZdTnzRs15s98X4sfB281q5t7jxwt5Z2Mhie2srcQbJCfmJkKEMoz6V032j4D27zRyeKPGG5JfJeOyvLfcdo3kqZYwhByBggnkAd6+VfFn/BPrxxJLNHpK6dZ21xL5jRT6n5wbkZb/AFQwc+/SnX3/AAT28feJ7RxO2jTyqWl8xtQbc8hABJCIMfdXnp8orSXB8JSTlJt+glnWBTbcYfez7T8Ma1+y7axKs3jD4jRjaJSZ4LeZYyMcEx4GR711H/Cq/wBmPxhJaata/EzxUt6YpI7OK406DdtcnKLvHAJAyCQM4r89r7/gm58QLvSY7V7+wjm8xGLrrDxrjOSvl7ck+9ddYf8ABPnxdbuqy6tuibKSbNUlzIpxhSNvY55HrWNTgmN+aF7+gv7Zy5/FGP3n0zpnwH/Z71jxJDa33jDxh4YW8Mkcl3NDZSR71IGGCsV+b+HjHqDWJo3wa/Z/8OarNJN468c21lbXS26XlpLZzJPGmMMY/LwqqT80ajH3Tk5AHg0f7C/jjTY1i06fTrdvnDSXWoTXAmJIIDBkwvA6irPiP9ivx54hu7eaa60KPy2f94l86mNSAAq5TBHHXrWtPhGstb/qRLOsri7qMfxPfrX4C/s3+N7fVL/W/GnxQt7W1Dwx6nFNpUxkReeUMWYz7EE14349/Zv+HU1xJqHgrxtfeK9D1N2ilg8R2q21xZjPEiSW5KsCAOPlP06VkaJ+wV41g1GC8uNbtbiSIggx3sykYyDnK4ORx0xVjUv2NvGmnWqtolxoNtdbzJM1zI8yOSEUkAL1+Rv++zW8eF61OV4Ss/Qcc/y2+0fxOA+MPgLxr4d0Cz0Tw34p06DRrhUiuJ/PEElvsJyN248c9BzVrw/+zZbeIPBNzeyeNvDJ1hitlK8ljJmaSMct5gGFXauN649Tk81HF/wTl8f7r5pta8N3sN8WZhIbiLy2bkgccUzRv+CfXxT8OwqieKtFW3jiMNvapNIyohOW3Er8w+vJrqXD9VR0lZ/4dzKed5a562t6tGl4J/Z60nwq+nX2m/EfwrHdHDuBIXuvNVg26JlADABSPnB7+prv/wC1fD+g6bqF1aa9pMZvJF8yV7542MgfLMypGM7hn+ED6V5dp/8AwTw+JEE/nf254Xa3BJVlaSNo2IIyGUccE9qm1n/gn34+1y9s5LrUPCr2tiApt1mnUOg4XLbeSKwrcL1K+s5v8if7Xyu9kl97PX9K8S28FmtwNWsJrSZQUdPkj2Z6ZKkY/EDv71w/7R+hXfifR3h8N3+gwwyMiSRyTJiaMdVyQTnr0I/KudH7A/ja+1OR77XNLfT5jsW0iv7iKO3jxgbflwea6bQP2KPHWgWt89n4gsVuL1yAZJ5JhCBwMZXA6/rXJh+C5Up89KTfkTLNsr66ej/zuc3+zvaa78JtamvNWsbG60WTNpYaf/ayIpeRlzgliwyQP5DGc1yfxX+F/irxV45vb6G2tbOT7R5gs5b0+VYKT90GRixPcmvWJP2RPitJaXUMnijw3dLdNHGhurZpDEV7DC/eHUEdxTvEH7K3xY1zbHq3iTQL1baLyVbyXjmxjAy+ORivUjkeLpz9soq+23QhZllPLyqX4r/I0vhveeH9A+G9ro/jSOOfxVDunWZNSIkCAYQx7GAZPmOQy8nHzcYPqPhn4i6f4j0u3htvD19qUxGZGEO7JHOSMsAD7ce1fOR/4Jx+Jdd8Sfb9S1rSZIfIESpmZ5BgggBm+YDrwOK674bfse/EjwR4pt9THirRZPsciiIxLKriEHlG454r1cBldSlKzdk+yOHEZhgJQapvY9sXxNtfD+Ate3ZJZksQ0S9MYyATn2Axj3rnfFviDWtXtmtIPAurWsbMoWV7HfvXIJ+XtXrcU9xLEu5+wDYPIP8APB7UrPIrbWlZd3HINex/ZsLW5n9x86821/hr7zxf4hNrmoa7u0bwz4g0WJUCm5t9NVpLkYGNgXBUhg3BODkZFWrDxbrFmWF34G8Tak0sOI3OkIjxuP4mJJy3qOntXr9yJoPuzCRcYOCR+FILq4OOBn3JrmeQYWU/aK9+of201p7NfefIvxV8B+Kb25+1aHpfi/7UzZmE9g0IO9izIAp2BRzwAo56Gr3iD4b61dafC2m6X4ga+WBBFIIHjZncfMjqyhGVfUDPvX1abm7edSvy4HOGP+e1PF/dyEhVUt/EwPUVo+HsN/KX/rBJf8u1958EW37N/iaxaWbUtL1y61GWQOwjtWcMp+9ISQQx5JxW7r/wEvrPwneafpCeKZLa3h+1+VdWqrHPOOQNgGfx3Cvtr+1r0Aqq8ZPbpQ+o3KRfvNu3GP8AVtWk8og/dtoRHPE96X4nwH8Pvgpq1rqem/2pa63pduWLS3CReabU4+9s2/OWyc5znOa66L4UWvhzTfJ0+DxJJ84YNLB5iPIMlX2DnaeMqwGR3B5r7Hk1KaVNzQxN/wABqCO5kLqy2I+U5GFrnrZPTqSszWGeJb0vxPimx+Gkvh3UI9SsoNa3Wa4SEWrRTSux5k3nKgD0rU+I3w7XxUthPdT+IJbe1g8pwln+9Z8lui/eXk5dm3Yzg9BX2KLu4jfKWkkfsvHFI2pXavuW0Zf7xI61tHLIw0TOiGdQ/wCfX4nhXgPxvq2heH3tdH0fdJDmRZJIJEExyAR8pHzc9cZ969R8JeM7fWYrOPVLHWIdQuw6zssMnlqw+X72c8gnk56V0w1a+YbxbllzkcZOfpXN+PfHnibQtNX+yfDNxrF1J8q4mWFEHPPzEBsHt757VtHCSprmWpM8yVX3VHlfrsdDfaPoenX0c100UV0ThZJZBvOB2Yn04x6Uz+ytF0l1kSaO3EqMQsc/l7hwScKeevJwetfNHi7wP8U/G32q4l0HVBqTMPJY+U6pzzhN3pxWVpnwz+L1nrNi19oF/cWqylZLiMxpMgA+7t3fKP549q53UrJO0DsjRoOKvW9dT6nHh3QNRjWRlSdU+YOMt+Jbv+lcV458IaJd6us0OjtqWlw2zO5t2Eck9ysimI7t3Kr82S2cZGMc157q6fEVootNj8N68yOpcXXmx7VbsrIrZIxzmua/4V78TPBuuXX2PRRrEM0QRJFvo44pUYZPybshlYtkH0FebW+t1N4qL9Dqw9LB05e9O/zOI8WeC9f0fx9NMnhjztCk/e28V9KSkA6MJHVgPvc5zWl8N/FOi+Ep/Gdv4gsdIsf+En0dv7JbSB5q+eJGBXGWJLYY8HbnHAOao2vw68eeHLa6t7vSPEV0107IFhtEniVWP8O58mtD4c6PrHgt0hvPhzcXzbPsxnXTg7oivvVkIOUIzg/Rq4K2X1KkLVZJ28rHTGWFi703+Nzj/DPxF8Q+IpPscMN3NHpSKl5aeY8SxBcAFycBcEZGQSema2PGvwzj8f8AiO2n0fxDpqLZSxXOdQl8ktC3zFUcrwq8j6CmfEn4X6r4r1i4u4fCmuNJfXQkzHE0KrGhJUOertk9D6ViWnwV8fafPGsOgahd28MPkQfbYAjL8zcEZ+bnvXJ/ZThJVKLSsZVKsE7qR23wV+JrXniK803xBa2CjQ7uO7hmZw+P3u0eVjoCM8jGeK+sPDXhbR9U0KznEg3SQo37q4ZM5+jj8q+CfhL+zv8AEnw94k1RNQ0rULQajF5c7K0Z3qrbwAS3Az6V7B4J+C/xGvtGkF1HZ6fDGizRpPd7XmUbcRqw79TX0FBKnLnS16mdaUa0Le0sz6muvAmm3ewTQ3Pyn7/nPke+d2TV210gaRAkNrdXsEKfcKysNvGPX0rxzwVafE7wvp6LD/ZM0bSnNpeXG5o0AzuLeh9uRXr1t4rF9oVnKNOurHUNv+kxNKssZYd0I52n3r2YyU1eaPAqRq037k7j30RbmaRri71K6aRt8iPcyMhPrgnH5U6z0dLSfzdrSMpyBKBKB+DA1DDrk0zcwMpHQetPGvyFsNbyofXFO0LnK8RWT1Zc1L7Rr+q291dX12zwgRruw4RQCANpBGPYCqes6BY37iOSP7UsfCMIwhX19xTv7d2yjMcnzfLkr0oHiQQqVMbHnrtJquWKfuoX1qr3Y20+HGh37M15NNbmMbkIhMuSBgZORjt1z/jl6j8N7JsxlmeNuQu44J9cVqNr8c3zNb/MfVWpG1teGEK5z3DVSsT9Zqd2YB+FNkV48xQPvbZMVv2UWsafoTafFrF62ns+/wCzsI2jz64209taUx/6iNmbqfmqOTWWk+XylVQOxPNPmjsyfrNXuxmlaNcaG7ta3Mlv5qlSY9oyCDnt/tH/ACBWvL428RfYvsc2tXlxZsApgeOGSPA7fcyPwNZsd7NMijyFI7EvQ+oyQTbfLj55OD0qlGHZB9Zq92OnhWKVfIe3dcBmBg4DHqvJwQOlO06wje/ma6XT7ZfLLBnty2fbg1Xj1WTex8mN19+9MudVlI+WGPGcgYq+ZGPtajNVvFN3JbLH9h0WRUGFf7N8y/Q54/CqcniW7yoZLZVAIwwZgc+vNVoNUKjcIVB9AOtKb3ON8ONxpRqJj9tUHnxAzNzZaUzLxuaKTH5bsUt1rUl07N9h0uJmx8kcbfzLZ/CmvdqwObfG3vtqu9zD/wA8Wx3+XFV7Rj9pPuTPqc8SrusrNWU/wqec/iantdf8m5V20+0Zv7mHx9eCP8mqkd9GqlhESD19aa2qWy/8sJCw5yTT9qxc1Q6CL4hTWMv7vSdLXuVxJ/8AF1OvxauDMWm0rSpN/KKRKMfk3865lNQs3XLQPuPHGB/OiO708bsxSrjHQj39KPaSF7SodPF8XVtrkNc6RZSxsf8AVrK6gfiDn9aksPjJFauzLoNqQ2ThbiQY/HmuTbUdNC42z++BTTeaWRj9/uPPIp+2aB1Kh1j/ABjxJuh0m3B9HnZgP5VNZ/Gxnuy9zpVvs2YC277cn33A/pXGGWxU8NIv/AKTzLVw3ltI3dt39KXt5E+2n1O6l+O0bPt/sVIowo+7ICf1rS034/aXYqwk8Px3LMNuZJyvA+hFeXtFZ3CZUN/tVHGltJxtmCjgkrWntpWF7aSPXtP/AGgfDsUsjXHhPzFPRY7w9f8AgWaK8huILVPm3TN6ACil7aQvbyPLvAFz/wAUNp/iTxBNo1zK0dsjS3UqpHcrHEsgklREGJIgAOCVYPtA4r0+zvrTUI1mjnjukuCJPNBCq+75htUDoOgHp715n4Y8PW/jb4b6b4m1ZtPukvmkvfk2T2yqZGRSw+RYynyKo74HJr166ls76WHZDaKqxKiNaKFTgAkgLxz39K/IPDetVc61OpH3bn12eLnpxkyqLWJzw0OByMmnGNEiZcbs43EHr25qS4tLfHAfP+7UaWce8bGk+bjHev1p1Ypny/sewG1UPl1D7jn19qkSRUdQqnPtTfscKRyfvbnzl4C7eKau+N1U+d5eOTsqZVItkunI0PPwnzRyMD15FC3aSARrEhUdVbGPyqp5Dpt4LKxwvFCQSRLuVOp54xWkq0V1J9m+pohmCMqkdPuJjA/CnRzSRRqFaRCwzkn8KqQztGQyr9eKS6lkuMBV3eoCk1SqxS5rmLi7liXzCTtaYk9W3nmmCSWU7Wa4K88Bz+tNjT92uFmVgeQARVj7sg2ySKSOVI6VMakWr3DlZQkikbG1m+lNktGxlt3qQe59qsyv5jHDSfL3GBmoDBJJcbvNbp90sMmsZVFfQXIxj2pxv2P69etMe0YhVMZO5shu4P1q8kL3EG1Wkz9KjIkjf7zf981XQErEK2rbvkVlYfn+dS5uAPm8xsnJy5OabKsvmgGRt2OMdzUsFxNY9ZN2exHSiMrPQUgW/mChRtVVGBjPH0pDcXDD7rMB6HtU6TrIdzyRp9akFyoB8qZFGOfmFbc1xWZQ8h4APlCs54GOlWRdTRoCqM3cKDgChWSRyWnXdj+9mm/KG4lx+NT7RrRESir6j/tZQgYZsnKjrt9as/2zdSJhJJm285Y5/nVRpYraPyxJ8w5J9M1LBKjtjzlPfBqo157DtEG1G4KFv9Ik3HJ54pBrFw04wkigDoWzmlluihxuTaR1xUZ1RYhtVlZvUDFKVZrRj9mug9tekWNi1urBgcHZkjmmRamzJlbeNTj+FAM0C+2x9ZMnjAHFOnhkcq7NIkYHBYY5oWIdtA9mho1uaJghhVfquKG1KUBy0IK+46U2a7zHzcMo3cnIwPpQQ7HbueSNvn69qPblcgo1N5cfuyp/uhjip4dbeJsfvFbOcfeFRJIwTH3W9XNIssjSZjZdy8lv71P2iJJpPEMjtwZg454yAKrvrkjK25mP/A23f4VEdQlVWDSHyyecYIzUkNxJI6sjcL/s8VPtUw5R8ety2xDHzFduuSakGv3TKzSXNwoJwFB4FVheCCbdIx3em0c/nUssxxv2wsr8jIANXzRJ98LjV5lzuuGk3DvUI1SQgfvW68YphuGefaohQ9yRkD6086hLBNtVoZOP4E+Wocofa2D3yO4ukSH94zbT/s1D/aEVw3JLDqSV+9Vo6k/lBbhNqseMDGfwqGTUZA/3di5wCY8DFEoweoc092DlpTkR8N0+Wh7Ld96FjznOCP8APWrEWsXcZTyzsXpx3ouddui5jlLrjuw59afs6TWoKpNbGfLBGr/c2buuKIrPzQQik54I29qknmjbc0jcdQ3qaSHVDEiqs3zHjqKz9hQb1K9tUW4i6Zk+Xtk8v02cVNBY+UflRlJxnC4zTTqJnU7ppVWM8kCmjUmkk/1zbafsaPQl15jjKsEezcyqG6Hp71MSZ1DR7mKnqBVT5pif3m49qnEN1asrI/zY4Aqo0IMl15kjwSyMWbzsKOyVGJTu/wCW2V9RTrq+u1jSR7hl3ZB5+9+FVYrm6CqyXEjc54XNKVCknoL20y9Ck9x848zb0+7xU0+lyxR/vZYgrHjd1FZtzc3rqxkuJGDcjb8uKjNvdlBuuJG3eq78f4U/Yw6IXtpmq+lTIxZZoNuB25NKbe4EPzSW+5v9nlayzFcQRg/aG3DsVzUZ8y5XLsDjk5GKI049g9tLqa6WskijedhUnL4+U/kar3d0sSx8xyeuBjP581mLDzlX/EHgU42jXEi/vVfb74qfZroHtmXp7/dKxWNkXggde1OW+/d5Ksu7oQBzWeZDnHP93G8EfnUjSgJGx8mNc7cmTrR7JfaD2zLkWo+ScO0ij2UGmtcQoVbavJ+6yDJrJvhMH/0eSNvUqc1HHdElmkfey9m4rHlhzbh7Zmsb5UOf3Y+iCpvt8MwwwhP+8MkVhrdSfe3Lu9M06W8mQbmRVz0IatFGPxE+2ZsG4jYEZhXaOMp1qFryEjBK8dtv8qoQ3rEKSWz65qG5fyzuaXEnfPUVUqUHsyvbM1ZJ4NnyoGbH90VGkoI48uP6qKz4byaH7m5mPQ4oZZmyy7d7cMCOR+FSqKK+sGpERI3Eke712infc3bnjbHbbWR5l1GmGST6hcVELm4G5fmKsRjJxTlRvpYX1g2jDBLGzfuc+mAMUxIbfYvyqPwGayfMuPOCpbmRs8Ak4NWWhlWKPy/MEx5lVwNq/QioVGWwfWC4UtVOCQv1FMDxHhR079qqiyvJZPlWSTb/AHR0qWFL6aHdHuPknG3Zn9K0jhZN6i+sWJJCsXPl59wtRvIs236f3c4q08lxNbhPLeRl5AEQG2hru9EbM1owZR3XYMVtLBsFikU3n8uTcj9PVBRQkE2oxGTyJWx1Cp8n50Vi8LW6FfWkfkz+zR+1PqnwL028tozJdR3K5ik8591nIwBDhW3r09BX1l8F/wDgrbJrWq2Wn+JvDsZsTII5NTiuQ7pGMAtIhVc5bYTjsDX522k7SO6+ZtWP5mKjaxB7YqPVL+6W9lkt5LiSBGAJfCtnHpXwuBk8PXdaC95n3tWmqkeWR+ynwn/bv+GPxk8T3Gi6VrCw3UI/dm8AgWc/7Jbgn6Yr2BbZiAf3cnnAYPUMD0/Dnr6V+CsV7PBFC0TiTc27EZ+ZT68V9gfsNf8ABTK8+Fd7a6D4wmu9U0O4ZYvtNzOFFgzfxkt1jVR8wzwDmvoKOO9vT9mtKnTzfQ4qmEUHzLY9Y/aU/wCCtmneB7nWtE8D6Zcalr2lXv2Rru+iDWZCnDEDqxBGMH0rR/4J8f8ABQnxJ+1N8R5PCPiDTNLguodPmvBfW+Y/MKOo2hOijDnp6Cvl79vX9kR/hxrEXjbwZql94x8J+KGuL+8v7eycRWUrSlm3EAhI23ZXcRXh/wANfivN8JtTuriGOTztQtWt1nSVkls8spEkZQj5gVAweMM3fFceFxUozlKpra6t2Z0TwkHTTgfuboF5F4kgafTb60vodxVnimEm09wcE4NabWEwIX5eepHavz0/4Iy/EzSfC+mfEBta8Q2ulWRkhnil1K8jtYXbcwJDSEAOeMjJr3/SP+Ci3hrX/wBpL/hD9O1Tw/eaCzNENUFxIsqygDCRoQBOZGYBPLJ+43WvblKinCMVdyipfgeb9Xa1fQ+gJdXtdK1aGxl1Oxiurg5jt5bhVkYeoUnNX/s88u2RvmDjO7O5W9xX5sf8FcfFU9h8a9NmeOa3vtHRomuLJ5WjVSN6+Y5iQebt/gV2wOozXD/Cz/gpN488JfC/TfDOj3Ekt1p8q3P22R5LmW9iXOYWTBCrt3HjH3W44JrzKOOhO6as7nR/Z8t1sfq/5Xm8fLxwdq9KDZqIz8pPPpXzp+yz+1L4I8V/CfQ7vX/iFZz6xNcPNm7hks98zPgwIDjzCCwAxkmvpibQ7gYZmk+YBgChB55HBGa9Bwna8dUclTDxTsyhLYmRPl+X1zSW9iI1bcq9frmrH2Gbec/MvqVPNOa3lUfL29FPFZx9qtbEPDwZV+xiWT5TH+VN+ybGDLHHu74Sry2Uzruzt+oqaO0Yn/XJ8vX2opupzXZEsPBGTPaxzFsqsbYOAPWmGKQxbcBl7571szaeyjczJ70LbLIuE+dvQMG/lW0nUT0MPq8TBFuFYK0KRr6AZzUkmnQsPmxuxwAlb1zoflQeY7Q54+UuAajh04BN263/AAkBpRqTi/eF9VT2Obk0mIrxH/47ToNPWEbeqjsQR/Kt57Bd33g3PQMKV9OkbO1fryDU+2ktRfVF1ObmsLeSUfuZPchic/nUtjZqZW5mCqMgFd1dDb6afQZ9sUssEiDaoPXrxmrjUcdZESwvY5pLQyXW7ynZv91VOPxqwJefLXavrnAK/lWzNbSTx/6tflHXPJqlJpqs3+p+pJ6U5Y+zSREsHJrQpPHcRbjsUo3QhqqlGnVt07qF6IWO01uR6eD8rHZ6bTk1FLpah/uq3vmtZYpW1I+rSRgI0ab1O3c/AXJwad5aMNjbo1+tdA2mRyQKfLJZTgYxxVWTRV8zlR1zluKx5kpXI9hMyZbKGCPcs0j7gM7uaksYJI7kNGjSBhgn0rQHhppAu3c2484GcU8aQ8B/1kg+pFdEeXm5g9jMrSWyXP7x0j3Dj1qrNpqyruEkeV/gCjmrh8KSYZmlZQTxkHnPpUY8MNC33l9g2RmpnK+ljPkkV7aAltp3Lj0wKr/Y2ZMqwjbn5Tn+laUmmbXCKsI/2txYfpVqHw/K1sSWtD/20HH4damN2rXJ5WYqKI4W+WVkPDYz1/GoXt1xk+dnsM1tJpM6jbGysR2C4H5mpWs2K4ZS0nYAAiqk7rlHysyLOOY/cjk9BnB4+tMntJo59siSbQOcNmtaHT5pzt+zqvPUOAfypDZzRyY8sN6L5gJqou2jQnEx5NPk2ZXzAvpuqvcQSQkfM3T7u3OK6ZfDs15AzNDFEvqzhf50NokkcfM0IRRx+8XDVXv9FYnlOPJYx7cSfhRa28yBgqMF7sBg12EOjSXSjyfmOckKVOaadBkWeRXk25/hLDis1RnuHIcr5T7XWMP7fLUkQkSfdKGP++ua6eHwlG52+dEJewMiZ/nSN4RaEoVaaRv4No3fn6Vcac1sHKupz4lmJZY2jQNzxFioXspppBuZjn3rpLjwvJHOqzSLbswyBIh6/hVWbRfLn2rOkgX72FI49s806ntGrMNOhhtYDJ+Vvl64NMjjRHzsYnOMNXQyWMdsmFnhcnruQrtqaCBra2ZmkWTjgRxhqqNOyJlG5zyaa86M3kt1/hqI2MiybV8xWbs1dJGpKSR+dMvTBwAKa0MYO6WSYsoxk96JQja7BRMGPQ5jEflk68ndmnWlnJbyhZPmX0kzir0l2VB27ljU49KYdQUMqyLIeeeelc85x2ZaihH02aSXd51jjGAu/Jx+NNbRpLd/uxMrDs2RVgNHNN+72xn1OFH61Pks/wA81qq4wS0i8fQVtCdtkS4JswnsMy/MVjjB/g7VNLpyCHdHMzemF5NbUV7boPK8yx9yiEt+NTQ3saowXyZGUfxQD/Gr5b6hyHM3UUjFf4ueeOcU1VOC3kptz02VvjWRCqH7PZ7nOAxjIFTvrash3/Yk/wB2Ol9oOU521068ePaYlbHcgVZfwveS2gkECbc54Yjn6Cte3v4Zrlmkuo41ByR5ZdW+mOKmfXbO1c7L6Xd2whCnNdMVAjkRys+g3D3A2iNHUdwSaUaNeN961jkxxu29K6G51yOSRTJN9o28hUyp/HIqE+JXtJ2xDcLEw4G4HH4Vk5U07IPZGJ5T2p8r7PBuX16Go5La4nT5bbaM/wABxnrW7KLK6AkMkm7qQSMD645q1BJapY53WjMpz8+//DFUtdtEHs7anJNpt4TtkilVOvJqay8NyAtJhWX/AGVBIroZ7z7ZCvl2285wpXlSar3FnIgMc1q0eP4o4/u/U0vcTu3cHRvqYsyXNlD+4mugGb5hvOPyqxa2c0i7pL6SFuq9etXhbrZmOSMPM2edzsAPrxV46i32LcI4m3HBAJP9KunUjf3tifZmB/wj9yXaRLh5CerAZ3U+00eYOZGkmifdjACgnj3Nb1hp8d+rMk7wswxypxUM3g+aOdS14qgfdLSkg/pVqz1jr6MHBmPL4cuWJZJJo+5Ziox+RqM6fNDHue6MhHQgncfxrQu9HvoXb/SIcDgkc5qO006SOLbJdOFb+6vApOtC60a9SfZszZYPPdWluNQhU9SozRWrbaalpHIzakkLPkIzNvx9RiiqlKDdw9mz8CdN12SykkLHPmDbgintq7SSs7fxc7R3NanxD+Efij4Zas1rr2kXWlzKSP323a23rtcEq3/ASc9q5wQT7Vba21uQVweMZzX5/F06q54NNeTP1KUYbo3dOukkjhi2SM33iV7VelsxZTx3H2hmjWQOgTgqRz17H37GqGms1pYxzLLt3KQ21MNj3p8959mZRB5kyt95SPkX6Z71lFtVLx3MGrqx9V/Fj/gpTqvjr9lOz+GtvotiYWtRZXdxdlpjMi/dfJOfNzzuyRXyRe2sltYbs71LYOW+ZOvX1oXUI9+1omKZyctitCKC31ja4Ro0RgQ2cqODwfz/AEq3Um588uurFD3EZ9ndLczfZ3VWRgOBxubsevWuu+Emo6HplprkmpXU9lrVrFFNpMiyGOF5FlzJG7AFgSAu3GOhz2rJ0Pwtb63eTWct1Fp1wDuiJI2ORz94cfmafqPgFbW5kitbyO4mUjL4LBh3wenrWscZTi7Ns0Si9C98QPj34w+K0sbeIte1LX3QOqLdzM6w+Y2W2joP6VL8JfD2vtd/2jYWt80FtdJa3Rt5DGuHT5kYqRtVhgEk9wK5VdPupcyWtvK0HI2jGRjqcda6Dwp49k8C2EuoBriTUJoStrH5jLDEeR5rqD80g6KGBHXOOMt3d+S36nZTppS8j0G+8a+CvBnijT7WTw5qBXSbqSS8n07V3ha5YgBTGGVlTYR1B5r9A/8Agnl/wUO8L+M9L1bQvEXifUraazc3Nk2uTqq2toqg7PMz1DEgJySMHjpX5IzaxJeS+ZctukkJf73OT1Jq2I1Ei53LKOflIPHc9wc+5HFdWExtXDxcZao4cVhYVZ3R/RPoni7SfF9v52l6hY6hGUSUmKZZGVXGVJwcjPvVyKR43bdxtH3TxX4B/Db4w+Kvhnq0OoaDrN9pt5CxaKSGVyMgcAjoRz0IPTgCvs74Sf8ABbfxU/ibR9P8SeF9P1O1mMENzNbKY51ONrtknBZuGO7Aye3SuyOKhNXg7M4PqzTsz9MBB5n91V65VwtK9jFCVDSMGP3gWDZryKL9un4MwXOl2s3jXTbe/wBVBxCpeZoHBAMcpVSoIJA6+p6DNeueG/EGh+MLu7j0rUtJ1GTT5Ejufss6zrAzoHQMVJAyhDDnkEHvW1OpLrq+5EqPYadEhm+63OOw5FMn0KO1A8tyWbuTyK1bjRs8rIv7w/eX7v0qP+zo4vvKZGX2/rWkavSVrk+w7KxkT6Qrj5m3H0xUC6GquV2fgBXQNBtY/Ksat3PNRro/mnekm5u/OMUSqLd2ZPsX0Mm20NC3y7om7nkVNJobNLjMbL/tOa0YbKbcdsn3Tnh8VcVZnG3cv/A8HNbRqU5KzVmZypTZzEmhOtz8zW6gdOpzTJ9NkRvlEX/Ae9bt1o8yys37kbup31D/AGVDF8zyTO3smR/Oud1NbWKdMx1s5pXA2quB61YghEUg3Bdp61cFr94qzFfddpH61NNb2qQrxIzEdd1bRqRjvFGcqLexTd0T/l23Mwxn0rOFk7SndsXHQEZzWu+kwtGGBZs98mo3sogw/eeX9DU1Kilryk+yZniQQvtMCTZ7MMCnJcNARmGH5TyA2c1JdWQMmTcRtg8YbmpTdrDDt/ct77Qay02L9iVbqX7U33VT2U0giWJhhYxzwcc/hVxGXZjy45PQioWt1A3MytnsDz+dOTUVzXIWGvsReT9rfdJ5jBemeMVIum7/ALs4Htu6Uqx7o/8AWSLGemW6VClo0sn3lx0G7AJrFSnJ6alPDwW4rWSqeGbcPcHNK2nRZVmR/m+981SPpMka5BiHvvFNEEjf8toVx6vUxjNPYn2MBJbC36wny/XNMgs4Y5trTmPkfMgPNO8n5eWj+uetBt/LXKseeuF/z+lac1bdRM5YWL0JrhbeBMLcMW/vFefzqiyKh3q1wzdiWFStAywfeVlHUkYJp0YhZfmk2n0AyD+NN4jESdpaEfVIdCOPVruBGDbGz03LuNRTzyXzZmZd3bEdWGdpF2x/w+qc0xVy+HbjttXJ/Sl9YqS93mF9WiiAWTqTIG2sw7cUySKc7d0nGMKQKvtO0fyKsjDtvU1YskV23NDIfULjb/jW8Oab5bsxlh0tjAa2Y/eH4heaWO28kbVYyN/sttrQ1KHdP+7ifafQU0QSRnd5EnPHMeMVlOpOE+W7I+q8yKN1Bc+X+88xv4VGcmo49HuJEzHv3DkkmtaG5kRSrNMnsuCKdGFLEyo8gPQeX1/I1p7S+7Zk8HYyYtIu5RhtzA8896r3Wm3iyYXzFX/ZNdFHPbtblWhmV8YXauMc/WgK1rafurybcTjy/Lzx+VDrJe6rkvBvdbHNJp00jbN0jegJpLiymhkX5Xz0OW61tf2ZcPMWXzFJ5+ePFEdlcIrb9r856Ff6VtFysYyw2uhhzJcZyUCqrZIJHNQpp0moS+Z91T056V00OnLcuFBfd2BJOP8Ax2m3tpIzlW3yeXxnBx/Kq1erI+qyuc//AGRNEfunb69adPaTQQny1ZVHO4itYaV5yhljZV9Ruz/KgaMxdW8u4k9QxOaIySeqF9XZRtTem08t5l2kcZjGfzpsmnrODvuo/l9sZNaJ00Qybmdl4+7k8VFfZkG0bVB/vtj+lbRq+7Yn6vIyvskn2rcJY3XGD5ZyBVqPwrNO25mSNevCqc1YWOaCDn7Pt7FSORUKmTdtWdkOcfdqY4qK+JE/V5FX/hHvskvzyNMfTawp91oS28fyxzRyEdclt317Vof2RfXAT/Vz+X/Ezhc/mabJol5K+39yq45xIP8AGtPrEP5RewkjDXTbhIpG2lmbjkLgU2ytLrcyCFdycsSMcVvf2f8AZgN0cB7Hdz+NJ9iQttjMYkxuOwY4/Os/awT00F7GZTGtWscC27WqSSJwHRsD3zUTzWmovjybdWj68Z3Cr11p6tHukkRQejAZ/Ss+7sIEYeXubtkJW31pxWysT7GQy4uLeFfls48g9VO0Gs+S/aOZi1jE2Tu3B2Xr6+taMaL5fl7fNTvuwMfSq89rmMsqttz93NZyxja91B7OSILq5W4h4tWj9drFgaoSpsO7a656Bga1RbRvjaJPdQP/AK9Tw6WiDd5cg9d3+FL2nOrMXLNGJGJopNyrjPIKj5qfdXNw8eZJrjHQKe1aw0wmbci4RR64/nTRGrMynarfw7iBmlHlS5EF5mHGXxuZm3dsNyfrUiv8nLHcx+bJrR/4Rx5w0hjBPtKvP60yDTo4XZWQ7s89Dis1G07C5plVLJj83m5X03UVJdWyBiBHJgenNFVOpTi7JBzTPyz0H4yaPrPgTT/7S0y31TXNGgktoEdTO0m9dqsQ390Z5968D8UeDrrTtDF/IEt7eScwwRBv3kmQW3Bf7g6GvZvE/wADNW+CWtaSuqanoE1xdD7Xb3elXomJIcpl0ZVwCwPytjKjPSsv9oz4eeNtd8TvJ4k1rQ5Gh04XMUVhBtihUsAseI1Cq+07sBm/pX5Ll+Jo0qlqU1yvXVv/AMlsfolPTS54vqN79ntli2qjYAI9qo3F9LGu4NhJBg+grY16yhiiH7yO62gDfGp5PpyBWDLp8t27bNq+WCWVj26V9RQtLU3p6sSe/WIKw2s2OfermiXRupxbsfLjkPKk4U/jUGm2f2uDy/JVigy2Tg4/GnQx/YZ2WDHkuMhHGeR710e7axrKKaaNY6dIhfIfyY3BO0jtVzUNXuJrGBlkaGBJDhAwDHIAHP4frWHaXVwqFi27uQPSpruZZI1VlZT94DPArlnGLloYq6Z0mmrLZWS3kZVre3Q+ckjf61z0HHbHesvxfqVr4huoVhsYbWRYAB9mBKykFiWPvzj6AUugXdxZxMVdlZW3gkgqfbBHNPutYuLi/e4Q7tsYg+TEbIMk+nQ7qIzSkdSxVo8tjNj0u3jCzFWOI8jvk1Fb6qy3TbVRdxwXx8xH+eKvyBrVlwpPykhQ/T86x3cySKU3LgH5TgnOc10U71AhqjUv7Oeyjgky3lyMBGwPf3p120kkiqrSeZIxJ2vyfy9Kry6st1pjRyMFMfzA4/iqrYeIGtLcOxXzMnDEcjNCpT2RPs7m1Y6tcabIFt5WU8/OGO4Z4POfvYyM19lf8E9P+ChXhH9mS11JvEFh4g1KbZ5VrCtz5ioxQZZI/uqzFUXPO1VAFfDtrqa3StuUPJkng4zWrpaxzTpHG+2BmBY55XA5war2lSmrGTon7jaN/wAFP/gzf+GrW/uPE32C6ubXzns5bWRriM90IA5I9ute4+D/ABRp3j7QLbVNIvIb6xukDrJEdw+h9CO4PINfzw+H7y1vrtnk1BrVYflQ7Sxc55I5GMDnqDn0619EfsPf8FAfEn7KfxImElsdY0TVNkd1BJMZNg35eSFdwUO3+16nmpoVPbT9nN28xN23R+0zWvmdQODjp1pxtxGMBfrx1qP4ZeNbX4o+AtN8Q2NrqFnZ6pF5scF0iq6KSCM4Yj8ia3G01bhehwOuV6VrUwc4y3ZtCVNx2MSSyV2ycJStZKU++oHua1m09VJ3BSO3y96adPAHyoPzxWVSnNLdlKnDojIjtBtP3WTv705dP3cqFHoPStVdOkk/hbav+0Ka2ntnHzbu3OamNOpJ3uxSpxt0MyawbyyuE5H8IqKLSpbdfl7/AOzWs2lyxHDIfrmo2tWAxtet5OtexCoxZmrp5R2/co27rlAajOlgzhhHGrEYxs4/KtRoXVfuyfQVC0mxfuPuxVyrzgurM3hVczbjSgkez931xwmKj/slYCv7uNsf7NbStuVMxn16U6by3j/1Zz71NPGe9dxZMsKc7caTulX/AFKr/sA1JDocYB8xgARgFRnFbhhX5dyld3uKRLaMsQZFUenrXR9ahP4kzGOFa2M5rJZoGWS5+XduA2DjFRSJE8yjcznoPkGBW3BZKSdjrH6sxyKbNYeaOZYW9CvFdlHEpL3UYyw1m7mPc6ZGHXbMrdyNtQz6MuoTN5e35RxldvNb50HdH81wsfHRepqE6YqD5ZpvlGT05rb6y3pP+vxMfqvVGJbaBJFz5bM3cgjFSXWj3WFJjZV5wWcHFdBHaLKgU3c3rgYqvcadCCVZpn9ctW3tqfL7j1M/Yy5tjH+wxxIoYvu7kYqu2l2Vwfnik610X9hwpDuWGObHHzOcj9KpvokZOY9m484BOB+lZzxjT1jcqOEbW9jn7rQYYTkGT2w2Dio4oY7RdyllGc5210a6Uq9VRvX5z/hSDTlZmxEOcYw1RTrJO6jqJ0XsYt5cR3Pz7Y32j5iVINU5J1jXb5MaKOd3PNdHNprKAu6RV/i+ntVabR4/JG6ZpF7DPINFSvJyuhxoL7Rgr5dwVKnZ65JqXbITsZpJGbrh+GrTbSljX5WV/bdTf7NW3ZRhWYdySP6VpDFU18W5nLDt6LYz5vDkjwc28a98mUU6x02wt0/0lljPYDBzWgtusp2yNsUeig5oOkgxFY55G3diFwP0reOKo30VzN4aRl3MNoGPkzbV9dnI/GoxpvmJlWkkY9Np5rSksngXajH3ytWLPTLi4hX7vHqSv9Kn6xTlKyiT7BpamKsc2cJ9oXZ94vJzj/PappLlotoNwfm7bzmtyDwbNeg7rYN3yh3fpkVXf4f3qOWWFVVTkkRdq299K8Vcz9nCW5hShkdm82Rd3Tqc0ks9wsP+sZkY4PrW8/hK8vSF227KnRW3qT+ntUb+DpoVG7Sd3qUmfGPXpUylUa+GxPJDuYDWU0iHdMducA5IwKW3s2tJFZbhVbHd+tbU3h+ZY226b+4z/wA9ySf5U3/hHrWSLc1jOpXsH4/U1zxw7k7yS+8PZpGHKnlLuWYsck5ElNlvJpYcNM20dMtmtK/tI4NqxWe3b3LZqMxyYwbNmH95QcVp7NLcj2aMkYZstN+GKVIpG+YFzx7da0ZF8spmxuN3QbXHP5irXlXAlAe2vlX1KKw/lUfVU+o/Z26GSbe5YNj5tvU5qrHa+VJueFd3b562pNFk+VpJLgbv4Tb4H86pXGktBJt3Zx1zF0rKUUtrgqMWVlWOVsNBH+BNSeRDhmFswOcbgegq5Bpdv5yrJMq+pYbVP4j/AArVOlW8EI8tt2f+eUvP61tTouSu7MwlTSdkYEdpavw1vK+0fwt0p8NjauNslxJCo5KlelW7q3ZXZl+0xr6F+tUJY8qzLO7MOq5OT+dayjy9A9jfoJfQq02I9rRgcMq4qNrW3ihXEzM2eVwKvLp0kkKt5G5cdRxVe4sZFbPlx/TJz/Ks6kZqN4RFGhAjEEKI22PcR1IPSohZrIu7ZtHT5myacPOlO37Oue55xUUwMa7nhCp7Ng1n7Sql7yFLCx6C2+jb97NJGi9soGpAIYFZd00jdiBtAp0Cw3DDMjQ/7Tybs0ouvs8jLHtm7ZPerjU0uiPqpA9kuRNjc3UE8k1EXkvLjcVUduFxzVudmnx/osK+5B5/WhN6vuWBGHopqnUk9bEvCooi2jgmbczRsf4tuaK0Td75f+PeOT2JorP2kCfqiPgXSPB/7Ofwh+HWoaj8W/Fmq+MfH+vQtDDo2kXKxx2q8BA0rDeJCuAQQNvOK+dPGXx70XxF4dt/D1pp95HDEj2jtPMZGcbj5XP96NcZPcDPSofhTceDdWn8QaX4vuBY391C82k390hvrVducWssRwJNxxtkGGXtXjXirxRcXuvC8kmRZJo/KdbeMRSRYBG0rjoAME9SDj3r8hwOT06k7VHJ8u2to+XKl+vY+2jTT0RS8TTfa9YhtbNVIH7pFCBfmz6+v1ouIohIIbpds0O5JNo+ZT3z9KyNi2kbHzWkkY7sk5KHtVrSPG0+lMrQhWu4XZd8qht4cEENkHOc/hX2EabVO0B8v8pY1DQ40vEmBkS38seWzMMufoKu6voGmx6P5ljubzokRmlb5o3B+YgelU9SutgkE3k+ZnIWJAI2yP0qO+8Q/aLGO12zKIxzjHPHr+NZv2l1YUotajdRtF8P6msdndQ3iuNiydQWPHPoPeqkNldM2ZowWZtu3GM8kAj/AGeDz7VtaDqlrOjRXTTrH5Ri8u3CK0ikjIJYHHTritvxTqEmuedqH2O/WG122iCQRlYAB9zKgA8Y9/pRKu4LlsPVnLrG1mFTaB1Ut94fnVnSNFn1+5dre3muJIxtPyMY19NxAOM84J44qprOrSXflvGIcbDgRqVCY9v6+te4fsZ/tL3nwJl1Cxg8Mw6xeeIIgsLyzSRxxnaQN8Y+WTbnIGD1PPYZ4mpVo0XUpx5pdrr9RSi0eZ6R8M9UvluJ7qxmtIbfLSXMqlUA9ATwawta8EPos8l1bSG4sZGKxTbdu445GPbmvuvwZ4j1b9of4V+LNN8Y6W1xanTw+gaabmPTPtF2rbPuoYyf4sZP3guUcnFfPPjLwnpPhnxbq0WmrqEOipcStpltqQFxcWkmAHjmK4BZW+XIAzwcD7teDl+f1J1HGslGS6J3XTrvf8AhKUfePAZtCkDBkyy9WBo1CNVtFLRt5n3VUDgV3I8GxrbXO5/38yFoufkD/wBw9wevaluvhXcDwn/akM/2pGddtuUZZmB3ZZRz8owPzr6hZjBtanVGpzLQ89ihaOLkY9x1q5bXCQ/uwx3cYJHQ011aJmVUJkXqh4apLVY7kf6tww++3Zfp612S1VzblVi8jukSyYjZ4chAec59qt6Gk17eCONJBcN02AjP5VQtdP8AJt/O8zc2flU98VesLGSbzmh875V6oep/OuX2d/LzMfZtux7F8Bv2zfiN+zdrCSeEfF2qQ2qsIns5ZGmtR/smNsqM+oxX7SfsC/tDeIP2lPgJY+IPFSaFbatPJsQWNyu24ToD5ecofbvX4VfCqTwrfXUdr4vvNb0uNV8uGazslmUZyMvlge/Xax+nUe6/sZJe3vjjzLfXvEOi29iHFtq9lcBPsQUnbO0ci4YY6jKY9at5zPDRamm1boV9Vd/dP3XTRpiARGx6g7T0Pp/L86YunsRlrVmXsSBXwn+yF/wU88Zr+0hY+DvjBcaHZeAbGCSyn8S22nzTS30uF8mbfG7LucmMNzhck84AP6Gabrvh/wAQWcmpabcDVNK84RJdRXsBjkGOXJLKeT2wT9KUs3w9KKnKctfK53wwFSrpGKv5nPNYM5UfZyvOOAKkt9H4yyu3PAK1v6hJpuni3by9TuFvJvs6G10u4naNzyN4VeEAzlwSB2zzi9ceDb1tOjurf7PdQy52+X5itx6q6Kfzrajn2Bm9/v0IqZRWW6+446TS/Mkb/VoPQmmNokb8eZHH6ZfrXSt4U1GS2aT+zS4XhvKO9lPuAMiq+m+FLjUJnWOxuJPKUuwGOB+OK9BY7D1fha+85pYOpFbHMyeHjnibd6bTmoJfDsyN1b8RXXT6attJtlt7qGQAcY6cZ9PSoyIyD88snrnnA/Kjlw0lq195n7OqtLM5F9ElVvvHHeiXTWj43SN9FrpLizjkPysNrcgkdf1qL7BEif66Lk9zjArNyovSDX3ov2c/tJnNHT2+X5enqtQzWjAY2/js6V1Y09SflFuwzjcxOKZNoDOw/wBSxP8AcfGKfs52uTY5Vrd3AGF/Fad9keRflVcd8Vuz6VNASPKkz0+8DUI0q4bOFkfgkhAD7VzU6NncJxRjSaRJIufMVeOmajSzdByAwz61rzaXNE/7yOZQQO3/ANamNBsOAswPrWNa03yyTsEacrXTRl/dUqY169ahMW0nGAfr1rWMbE/ef8Vpq28YcF5GyOg8uuW0IO0Ysv2cnuZSwn++dx9DUkVu6NuDHnjJrTZNpz5ka+g21GzzSrxNEFU/57VvTkm/ei/vMJ02upnrEqN8zbqbLCp/hWrxRpH+YRuvrmnNpcLt/q13eu/+ldcsVBaRf6mfsJPVmasKhsFiPoM01tPWZdofvnpWgLRYpcKp/wC++P5U5rZVb5mf8CKn65DaQvq8noih/Y3+1GR/tLRc20cPy5Eh9cVdnsUdv3Ml1t77sD+tQ/Y5S25ZW/IVbxjUf3USFhdfeZSMPybfLiPqfSn2kHkn5kXb7CrEljNJ/EfwAposZI2+dpNvsuMVhCtWvztFSowasipKI2c/LhvU9aYY1YYV2GfQ1eazj/hkZf1/pSnT1jYb5W298LmlLMm+lvkCwisZgJgf5mk/A1oWl/JHH/rJsDoP8amawiVNyySKM4G6MHd+NMlih8vKXTK/dfK/rW2HzLld+a/3mNTBp9LEU+p3F5L/AMtQy9NvaowzOm2a7uk7Y25zTyu/hpG9iFp63Jtj8syNt6ZXmu+OYufxOxzfU0vhKNxYCBle3mmPfBQ1PHcLKV+dvM6EOB81LcXE07btzMvvxUDQ8eYdqnoOprOpmTg/c1Kjgr7k8lsCzGSSNR6AD5fxqGXT1aHcJGaMfxKDzUYjaU9Rt7cYqWSJjHt8z5eu0Vn/AGtXe6X3j+oxW5Bsa2ChIfMUYPzjmpBqE1yhjRDD7q/SgQqJfmLNxjgmp447dxtxcbh3DY/pXfRzBt2b1OaeBXYgnsbyaJS7OVXjO7OaiWykceXJD8v95j1qzLaRQriH7Qqf3WVj+tVTEwH3ovbdnI/Wt5Yz0MoYVkaeGrFLgrLGsgbnGajudA09XGI5I1HdQeKdcW8jNuypx6HFNVLhANrN68Guf+1FHRQ/EpYFvd/gWH0zTREpjui7Y7OcD61DJoMdwRJm3kCngFzTZ7q4Ztz/ADEdPlHH5CklupbjazSMhXn5FAz7VX9rUUveiTLL5boetisHy7Io9x6CTioZLGxuZxG12qt3G6nTzysfnkBGOpXk00zGSHascG7/AGhz+eK0hm1OStYzllrWqLUOnwxAx+W8q4+UoR+tQ3ei293GVaG6jUcAAgVVlt1+60aKfVGIJ/WoXtVkH+rm4Hd6uOaQelg+oyjqTr4Mt3j63RK9F3qMVU/4QzcjFZZFP8KsPmNLPYxsFx5gI9T0/WmvASQd0j7emWI/rSni4KNkiY4eTKz6K9mp3XDbv7pXdmo/sEd2h3SSRsOpCd6vP5Qi+WN/NdsMu9uPfOf6U2HaYwzQzK2OD5pP6ZrGOOjLR6L5lfVZGbc6BChDLeTN9UxRWoLqNvl2s3uVoqZYrD33/Bkewqdj+dm38Z3lwLMrI8MlqgSMgfMoqTxdFdzaYl5M67uSJP4yD1B+tQ+KvDU3gi9twt5DfPLAGleI7o4WP8G7ABP0NUdJuZr+9htZpFjjZh/rCfLz2zXzsacW/aQtY+jVO0tCtLcbbNFkX7i/JhcfUZqLTGkjb7Qsilo2zz1A9xXo2maHpOu6bALtI/L3u0kdvlnJPGRnHy+2R9a4PxNoq6Rqs1vb+Yy7iqbl2uF5PIGfTsaMPiI1JOmtzSMk9B1gfPuVZ2yuTwfutk1amhV7kqFaMj5VX685/SmtpdqkUccssnyjqv3c4/PNCmCGIxlZTzw+7kGiVuhMlFFiNfsuVjkQsBliBz9K6vQvEepR+Cl064m8rR3vFvRbKg3TsAQWz1GOPrkVmaNqJ0u6hvLCFPOjYIc4/E/MCM/hW43w/wBYXXPs9naNrjTRrKptCWZd3JQjpv8Am5AA6CuOs1sy4x00NF9M8Laj4Z1G7+wyR61dR5s1huNsMDDqXXuGHavPtHsb59V8n7LfGSE7E2hm8o5zlQOcAZIx3Nd5eeD/ABJY6WNLj0u8sbe62i6N1p6qUbOdvmEFgvqFGa779n74beLPAP2nxLdeEdL8c+HtMjmF5GdYeGOTeuTiSJhIpHACjGQMHnBrkjio0acryTfRNnTRwdVrVHuXwK8eWcl1Zr4o8QSLZwWTvF4iXSkhms7lI/3aEN/rGBCYJyQ1eUfGjUl8b/GRbyza8uJG2xzXdnpqot44wDL5QG0MTtDAfxKa0NOuF0rWYxPb2ng6zuMJd6TbQNdfZoywO5Vm3lyFPdwcgHIHFbMej6tAdU8SMvhvxl4etTNZyLc3z2F26q5QFUwMzZKH5CFwO4r4qNNQxLraJu/l/wAD8Tl9jJtxtseKfEPSDd+IL660xWs2tAr3ENw3lTFuBwnrnmuXufEo0/wxpojvpGvvtMk1wA+3ClUIXHpxz9TXe33wV1VPGs+l3VzJp/2Ni91qT3CS2dvbldyt5i53MMgMBjn0rmfEegW/w0uo73SYm161gjlhkvLy0+QOx28YYhsAcZ/+tX12FlFRjF6voEcPUUeZo5nxPrb+OdRmvJ0s4J1VUWOGMRgjpwBwTRqnhm+0/S7W4vEZbWZco8cJVUJ+6GyO/wDKqsE0M9zDKY2WBGzIUGGNdt4nfUvGMEiy3uj2tmyxySXF9OonYAfKfKjyAQOAAp+tepzuLir6dSoQ5tUc7oGrabGsdpcRwzJnmRG2kH0x6VteHdC0HWJoobOaayut5JaNtxb8K5SYWGk3UmJGvFwUMwiCQtnuM/Nn8BVvwzLd6Rq9rJp6rvWQOiPEsm7vjB4I9q7IVLy5QvJS1PVL34ItM1rcXWrXlxBICjSQW6SNCcErghup98VTbwBdeH7i4ax1zVoY5k2yc7fNi6HeFJ/Kuk1j4q+JLfXdD1GXwT4T02XR5xctG+m3Hk6sDxidWfZgZyPLCHIHNdPpnjrw7488QS6h4gtPC/h+3viyrHZCWFYGPP3QWGM9AVP1ou3pJJo9FPRNM4Ky8S+PvC9lbx6f4m1r+zrfLQIrmSGPjkheg4HQ/wB2vQvhX+2D8Yfh8jLoeuyeQw5CQFmHfopBJPc17X8Cvgz8O/jJ4UntZrrSrXUo5CAYLqO2RwMgb3ZQTuBPYD15xXVR/sZaR4EtLiOPXPAscMhBjtp9bi+1P34kjnC47dQfUVx1sdRXuTp/gdVOjXb5oyOV+GX/AAUH+POg6zJrS+ONPvdreabDVb7Krxgoin5lB9M+lfQPw8/4Li/Fiy0lre+8F+GdUuM7LU296FcAdSAzZIFcb4G/ZdmXTLp4tI8EzTRxHeL7TJriHY2DxcLI4PTlgD24rkYvgVpfh+8udTk+IXw08MwNKUuRp9k13GgH8KxyxR5Ye+K8+picJN2lCP6nZCNeH2z7N+Cf/BV74nfEbDXHgUGOSUCdMxlkQ4G48AdQec+le9t+3td+GhA+p+EJPscpIYreWZkjGM42lx3r8sr34O6lo9q0ngH9obTdR1DUleSXSIrL7K0iDktGoLDAGMkDjGO1dF8Of2Uvit4x8Ltqx+MUe4oHlcvIzsoPXcLcg46YJWuGrh8Pbmi0l6M3p1amvNG5+g/iv/grx8OdJ1SK1vNL1Ca4Vt/mfZGMMajj5nUFcKMZOeK5j4jf8FnPh/pKQmxHh2GHzFLSfa47jz4j12ooyD9a/O34jfDL4tT6Rqmjj44aWvhuQeVdSPqK2iS56xlEiWTJBwQCc49ea8a8Y/sLXmgaDDfWnjXSNfyu5YbSOeMr/s7mAzXVhcBhre/Uf4mEsXUT0SP1C8V/8FtdF0ISXFj8NrPxPDIgObW6ijS0PueT9c0yz/4LleBdV06H+0Ph3b6PfMMGG5mYqPfKoa/KTwz+zT8QF86Tw/od/wDbip2yi7G7aPQbgf0NcbeeDPiZrnjaLw/HYeIpNeuJhAtrBbHz5WP1Gce9ehDL8P8AZZzSxtR7o/aaX/grd8J30qa9l8MQ2bKMRrLNLtmHqGCFR+Jrgf8Ah9J4EudQzZ/D9NSt5JDHELPVt1xkDksjIP51+U93+x58YPBkTXV74P8AF2n2+MNJLBJGw9iSAWFVNGvfEnw602Syu9D+1K0ocedF+/jb0V8/KD9K6aOForaq/wDwIyqYmT3gfrrZ/wDBV7QdZmludJ8B7fs52yxX+ppBIfYBuKwfE3/BaLwjpe4TeBbgNZow/ca7beWWPrtGTX5Wya14g1ryU/su6hlYFmEZKbx65ZjnH0FWdYmu7PQDcXGnapJaxnaWC2yeW3rlVYkZ9SK64w7zMJVF/Ifrd8M/+CoPgHxfp8a67Pb6DM6iUPFdQSRKD0UkNuJ/CrM3/BUH4K/8JvHo82sa1Da+Wzyas9oGs0YYwODuweTuxjj3r8ZtH8aLc3MlrarFGrjJeVVU56n5sfyx9a6fRbfUL+xg1CbTZLyxkA2MLRbiOQHjBweTxn5s9K1hFR3lczlJS2iftF4W/bb+DvjeWGHTPiDY3fnHajJY3GC3pu2bfzNeheHZtK8ektoOtaXriRj5vsN0srBvTb17V+Kfgr4oap8KmXVrTwzpdpfRgPBeC2uLF4j0G1Y3VT+INem/Dr/gon8T/B99dX11Zy6jdXYMaSQQ20LKMckkQF2PI53ce+eOTEcy96n+ZtT5GrTT+4/X+2+Dmqagu4pLZqoyWnXaG9hmqN/8NbixnKyXNuxA+6jhmA9wPu/jX5R+Df8AgsH8XvA2uzyaZr1xGzjaYdRgivo1/wBlQET8+tdJ4f8A+C4Hxc0ya5k1TSfCurRtJvYS2ssGDxjLRbevo2fr0AmDxXZfeg5KDej/AAP0qHhmSD5cKzd8EcVHPoLIy/u2bA64z+tfGvgH/gvhJLayf234J0NnZAWWxM6LEc4PLSNnjp0r1bwd/wAFdfhd4x1iO3uNB8VaZ5i7pJG2TRrzwcZXIxj+LPtVKpraSafyI9hr7rue8f8ACNzJOqNbMu7ozKQPzqwPC1xa3CiRbaGNh8ruT81YOhftz/DrxVbRtZeMLXTYcqH8+58yNcnHzHaNv9K7/S/HGk+OrKGTT9Z0rW7QRpILizui8QRvQgH+lTVwftNVJr5DimnqrnJX+mFZSJHs1C9agk09xAzRtaSqveNwa74aDHdTJ/o8yxyEBXEJY/iNnP4Gqmp+GIdKCxobeeNurfZjGQfpxWlHDyiknO5nUppvRWOBAkJ2+SzMwyNq9BTldo+GVl9dx216RpmmxpY7l+xuyg4MZ2yY985A/DNU9b0m3gTzvtJXnG35Hb8itdjjNLVnP7FPQ4UbZBjaWP1yKhkeIoyhdvHPNdRfra3IWJYZd0zAiRoBu/AhgPzFSQeBdNmkP2q7ubUDnAjU/rk0RcnsEaCTvc41bptqjflR0FDPuK+vpg5ru0+EUOsYkt7xbmFlIRzIqsenBAHH1qs3wv1bRLvy7W4jhZwVAEofI/KuOODkndMpxT3OM8hWO75mIz93OPr9KY6rjKMAvrjrXWSfDrxNYln/AHzRuuzgcFR1H45rAutOuIZlimtCu44BfPH05pShNO0l8yfZroUTa7+kzfQ1E2nO7/f/AAJqa/tVsIs/vW5O7AIAPtVEXqs3lgS7sc5Oa1VktjF023oyxJp7ofvIx+vNNW12EbpFQ/TNNUeWv/LQt9MmnCbd95bhdvqmFqoWWqRMoaaimz+0bvLk3Ee+KpyQzJNjbt981ZS72yFVEoZu+wYqUwyg/NyP1romvtcpiqa6FBkkuCrDzG2/d6/KKb5LSDhCSOvtVxxg42/lmo1YBlxvXnqK54wX2kauK6IqrakSDdu298LSPbuTld4Hb5etXZWmYHb5jD3x/hSpJIFwxk/OlLli9ELln1ZmzKw/vf8AfNKkTOOFb1yBV6RSBzJIM+vNAVkXKzt9NtRKmn7zv8jPldyvNIrQjdbOWXvnrT9OntVD/aLNpGcYGXIoXvlmB9cUJbiWTmaP2DZFY9bXl87Fez0uNvXtGUbbWNNowMZNZ32ZZC2F+bOAPr0q/d2flH7tu3+65qsYC3y+UN3purSnh5x1vcJKL2RXlszayNHJH8w6jNNFtHj7kn51Yk0+Rfm8v5u+WyTSRRSyH5UJx710RqTWk9jnlSXQga2hXOBJn+VRtbx5+XP4itFIrlc/6Luz1JNEtpOiKxgdQepGMCqlWo3tcmNGe7M0QKvB3Lz2oq6YtxO7PX0oo5kTyn88/ij4Y+LPE/hq21K18P8AiC/js8xXskKC4hRh3Cxg7R9RWLZabHFbMb+11Cxk8pWRJLcr5+PvYJHb1r6s+HXhKTRbcCDx14TuP3gcXxtpka35/vKF2n3C1Y+LvjTWtV1KOGPxbpXiJ0Plbzq8sw6g7szJgDIHH3T3BGRXk+0rL9yoq39eR9NHCUFC7bufIFy1vbRQyQ3kzGRTuRY3VUPYAn735VBqKbLuSaaGRg8e5VP8R/8Ardfwr6u+I3hhZPDMJ8QeEdBuLxiGbULR0iJGOFVo3AJP+7VDwh4F+F8+iLca8mo291nMaJb3LgY/h3CbH47f0reNVxXNyu5PsYc2h83+IrK8sNOhhhaNrOaMXBVPm2MeuSRnNVkLSWMY8vMbrhTxnNfQt18I9E+I2o3E+h2viK102FgPMf8A0hCB1IwmV+hzXpOhfBX9m258NNa36/ESz163C73fUofIdjgEhVs9wXOeCc+9Htko3tf0JeFjJnx7pekXl0hmsLe4mRDh3IAVT+Nb9lrvijwvJb6qq6la29o+23libb5T8YI/KvpC3/Z9+GXjTURp/wDws7T/AA/BGSqRzaBdzMcep2gE478A1zHib9mn4feFvFE1rb/Fa61TTY1BaSLQZ9u49QEaRV7e1Ze5N+9F/cyfqrirpkv7Of7T/wAQdA8O3tjY+GdT8VTTS72Yaf8AbpAxO4tkg4Pf6V67aftDeLviV8ObrRtY+H8MTKssC3F1pvkmDeQRNtUKu5GByMelcb8KvhN4dsrl28N/EKSzvNoVZtX0S6hicZ6K0Mj4P1rpLn9k+3R5rjUfjBoFjds/74WWn3nnbSe5JRc/0xmvOxOBwc5e9H/M9PD168I9zzHw74GuPBHifzbi7t9Wa3uFlkE9ztaRAu0qpIbkjgAjiu8tvFmsz3kkHhXwRrYtbp8hHC3qwKBtwuFAGep965f4zfsy6T4OslvvCfxOsfGF1n57VoJorn/gPVWP/AsivJW/4SCyv/LupNWtZlXgPO4IH4dK2hlOFrrn39bpfic3tJ076bs7jxPoV3/wlF1NrWo32i3ex43tHs8BA3UEA459xxWX458YSeLvC0Ph6aeG+t7XaoMkMcbIQMZUKuSfc5+tYbyXEPzy3FwrSnLTeaS8p/2twz+damhaz4g1eyW1029kjaMEeUGCsw92x8w9q9D+zKUUmunmZyxU5aW0OFb4Wf2Rq6xyTRy2uc7WzCzCvYrmx8ByeCrWzk0i+tY3BMjW9yF3SDgb35LVB4Km8SeGrvE/gDRfExcZc6jpVxeLj/ejZcV6L4eGqeJPFE0kX/CvfBOntEFNvpvh58xoOuRLDJJz6ls1liIx5UnL8SKNNp3seL6T8BfBvxDvlj07XtWs7yVvLWyXS5L+aRunyGLO7njnGO9YWvfCG40PUDY+dJ58D7U+1WkltM3p8p6fjX2n4S/ah8dfs9eIPO8B+NPC+q20lttkuJNMgtYxxyrJMMEjsQF/CvNfGXxb+LvxA1867qPi/TbqS7kLKLSe0EitngBYxhR+tFOpU57XXL5vX8jWpTptXkef+Gh4sl8PNNErXdlbqIJDuMxgIHfIyMHHAqHwV4ch8R6lHJq3jS10G1aTDSHTZJmAHUjaMfnXfa74z8faXp0kmuf22YLgbHe1u1HnBiOoUYJJxyRn3rhvEOs+DrSxkh/s3xudSkUkJLc26xI3ZuFyfyraNRyev4GfKktDvdU8KaTayyWen/E9LrT2USB59Ia1kLjoFbdlsgmus0n4aatB4ej1K8+L+laLbXWESNoJ3aKMfxMVX+Rr5lsPDeo28X9oSWQns1O4j7TtZx79ST+Heo9Z8U/2hex/2fp82lpjaVW4klU/gx/lV/VZP7X4In6wluvxPsLwr8TPiF8MWuJvDv7Tnh5rWOP7Og8+WXdGfSJ0Yg8cYB70W2t+HdbMGnax8fPEKXOqMZrt4tMVIRLnOSzgHB6dBXyT4et7qadMWUTSyyCN5pYuEHOCQoLY61ueP9SMCw2Nr/wid4wQfaZrOSRnP18wcH6Cs5YOztf56G0cZpoj3zx/8NPBkt5cXtz8UtU1FVVYYrj7fH50anOfugkJg52jqSaxdU8LeA/h7oMs3hv47eKJJ4Y9witi9soPoMdTnr0rxHwXq2hQWX2XVNE0djg5uLkXW5jnt5cgRfrtxUP9t+G7IXFv/Yi3iMd8eLgkq3Y7uv8AnnNX9TnH3XJv7jOWIje/6sd4j0Rb3XDJNrT61JMTN9paU7mJPJJYn5s9/wD9VV9anh0aGGGTVNTZlO4oJ2kj/MGpdM8P2esyRtY2LQSHGUguzIxP0P8AjXpvhX9j/VPFtjHdfZbhFuwRCjXdtBLKQP7skgJ/AV2OSprVv8DFc0nozy3SfHBsJVurfVtehmhb92ltcn90f7wycj8KtXPxw8TJcfaI/EOuLJnLTm9fefctnOa2vEPwmj8DeKWtbjQ5La9jISSS/KMqnofusBxXZP8ABHwj4u8OsbXXfCttfLF8xN/NCGf/AHHjZP8Ax6spVKKfNylezm3ZM8s1P4teLNbghW58Ta5fJCfkD30jbfwJNRR/FLXo75JP7QZrhCNskqK2PQkEc1n3mjx6NLcQw3VtIYHK7kkG2THdCeTn3NQ+QXRDtWWOTk/3s/l29q6o06TV42+5f5GcpzXxM7i7+LHiKTTrWzjmtba3j+Yw2dosO5j1bd97J+oFVLbxW3hEtfw3NwJpfv289qrxuTwecn1NZXg3wteeMbqSysZtHt5mG4C7uI4c49C+Krato9/4Zu2juVjlmU7Q6YeP8CuR+VRGhTbsrfeHtJdzd074myf2gt00dhbxsCWQ2qnaexxinX3x1vtNvV+zjS/KizsCAR7mH8e1cev61NoXwe1jxc0Lw6XdXIcDrIixj/vrb+prL8S+CG0ljH5N0Jo3EbR/u2UY69Can2dJOzBVJhq3x88WaxFGlx4hmEcKbY4tx8sD3GOauaV+0BrWmaTDIupQyahBMHillBymfvY7c4GfoKSx8ANrKTfZbHUGVfmLErsU49+awk8NWQeSDUNUh0+ZW+USJI2f++VI/PHWp5aMtEaSqTW7Dxb8SdX8WajNd3moXM00jbi0ShVU/UCjQPGVwl2y3WrXUNkUKTRsxIlOOvOKo3Wh29nOYdxuI24DqhMZP5Zp914ZbTYN0kPyscKJYsqQADx81dCpq1kY87uep/C34i61eaLdaXpuoW/2eQAYljtt8w/ukvg4+lTG31qCKaT+ybOGS1P+sgZQmcdRzycdeOua8gsiunfMuLdZOSYRtYfiDV238SzRhVa8uJF6FWck8/TjpWfsmV7S6PTvB/gy48Z6kslxZXF9bq6GeKEIjEHnoxwcHvXp3hOTUfAVzHDptv4p0PT75RDJEizCGbnOD5R2sM+nGOnFfPSa95TMNPm+yo8Z895ZMb89RnG4fgafD4v1wQDTj4gvPs8YHlqt0Tb8dxnp+FctShOWjf3m1OtGOp9ceN/G/wAYdPtreTQdauNNs7cjy4oLyaGRsD+JWlySewFdR4Y/aV/aS+Gnhtbyz1nUGsb+Jbmy8yV7iN1P8SF1YN+JFfDsfjvUbe7WX7ZJeXFmwMUy3Em6E9iMMMn3Oa6KL9qnXfEsUmm+KtW8ReItHuG+fSrjWbpbdyOmAJAeKyjh6sH7ljT6xBvU+3vAf/BVn49eHrKeHUNJ0vxgvmiRlOmvcXYXumyD5vT+GvWLL/grh4u0uxhvtY+H9hqFncRMy2tnZ3lvfIc5GDKu1sLwQBnNfnb4U/aV0Xwxb29qlj450GbTrjzbKbTfE8xaFdoAGycMhGQOCK9E8Lftf6Rqd4pvvij8VvDKyna0trYWshVT1y0UasRn+7zRUeKTvymkHS6s+8tG/wCCrV5/YUOpap8NdQt7DUCVlWznWW6WLjyy6uqgEyADj1r0Lwj/AMFFPhvqcthA1n4wtZr7hvM0gSCFz/DlXJNfnNoX7XOlan4g/sW6+N3jRdFSMS2msX3hiK5u4pFfOwSMPOAILD5WHX0r3f4cfE34N+KvFEkN9+1Vr0mpRQK39oa54atjpcpI5j2Toz7l9d3PauapjMVT+KP4N/kjT2NJ63PtK1/a+8DkyK+sQ2zQ7vNjurdoDAP9r0z6Hmqc/wC0z8OdVmh+y+MPDcc158sWzUCmW9MkAfnXw78XPgz4f+IyXWraX+038K9WghBEafNosgYHgAIrfLjPoM4rtv2b/AfiXxJ4PaOy+Jfwd8b6fasYJbF7uxlvFAHDRyTQAMe2C4+tP+2JRh70fwf+QLCQk9D7Bh+LugtqkNiviSAXMwLKsV/5yvjr8w+Ufif5VrwWVzd3KTP5jwsu5cxl1b3yOMe4r5N1jxFp3wlu7O38R2fhm6t7eCSH7NZajHZXcUeNxO+1lO1m4AIDDr0wM7XwR+Idxf8Aim1h8F+G9T0W3uovtEL3Pje11mRwOcyQyurFdvHzDd/OsY54rXnDQp5ek/dPpC+tYbltsnnMUI2qY8qfoe/WqOqLYWUm42F15kjBQ0alV+uK5XXvjDpmq20L+LPCvi+GSzkZEk0HYWukx/rRDDIdo3bgQSx+XPcCtbwp8XPhutx9nh8YeK4WhAP2HWLFxImegwYdzL77s574rGOeQu0ot+i/4JpLLW1dNGtJpen3Sxqs1zbtv+csoO0VK+g2xwLaa5fccB3AVTVLTf2gfhjcavNYzeLrW0uLMlbg3dvLb7Wz937u3PTPvnpXUX3jP4Wm4ht18b6OzyKH81rpPLBIzxnH605ZpSe916pmX9nzTtoc7P4SvIbmOGaL97LgqcgKQf8AarL1iybQb2S1uPMjmiOWUngD2NekfDvTfCvxi0m71Hwd4p0/VbSzuZbST7KcyRSxna6/K3zYYEZHB61W8Q+Cbc64trNqSyXkzbNk0TJKSOnBB3A+1bLN6DXLz/p+Zn/ZtRPY4Ky037WNyeZtxnOw7T+NK1vboYy/+jqerMScGuvu/hZqelW8skMN5cRw8KkNz94+gG7FU5fCF1HbxtcW08MjLu8qRSJI89M9V49jW0cVRqJL2qv6mUsHUX2WcxdW/lTbVmjmUjIZXpiWskv3Pm56DvXTTaLcQRhXB29t0Q5/SqQ0nad21s5+8rDGfTArulT7v8UcfsZdjFktrjzmRofmXuBSPavtw25W689BWnc2LoxbfOpHTvUEtlMUBbdIW65H+FapySvGNzN0VszPMSgtlieeOOoqKaYZKqmPcCtOVZp9qsq/KNq4j6Co302Qg5k2nsNtc1TFV78vIgVGBm+buGNqlsU2GYCJm2rJjqfQ1Yl0BZcq0j89fmxTI9HWxYLE2FPY85oqSqbt2D2KvZFZbtV4ZGOe4NNFxHD91T9auL5kLsu2I/hTWjeZseWjHPRDz/hWbxUL8rbYewl0K6T4+Ys3zdvSmzXrPGVEzbc5waszWDW74kjXcvUEciojBvl+VYx65rnlGlOfUdpJFU7nP+sXbRWgsSxtny4c/U0V3Ro0UtZHM41HqkfgXpuht4Wn3DUhI8beXIIY9+T/ALx+U0eI9QtrWYOkryblO7zbba2evGKTSdN03TrrzL+3uZYWbJS3uBu+vTrXpeheHPhTrFhtvrXxolwwGDCfNIz7EAfnxWspKKva56EFzStfQxfhlp2k6vA01xrmm2bRrkx3Rdy30Wun1HWtDuNAuvM1Lw7Zyo2cx2Uk24dupwCadH8Cvh3qPy6PJ48vGX5pGudKibA/urhx+eKpn4d/D7SdVhgmkvrXbgSTXVyuVHQ/IEwPoTXFKpTk3GN7/L/M6owstWYWkftPa14Rs20nRNc1aKzIO6O0l8hW9woGf6VpaV+0itpbO2pWd9rl2y48y6vT65wQo5/E1T+I/gXwDYaxI2m+JLu8tQoKqtmrAH/e44rlLp7Wa3aPSdMa+2kfvjAeDjsAT/Ktoqm1ordznlzJ3TN7UPjda3Wtm6Xwzo/745whkWQf8DVt35VPe/FbQdVgjhm0Wy063WTdJ5ZknkZjjlixJ4x0Pqa42/l1Lw/bxiewt7dTyrPZ459MEYqO38Nat4o0ie4EK/Z8l3VJYoih9Qv9K2VOk1oClO59JfDb9ui4+COjrJofiGaYbNqQRWSwpHjp94Hp61vv+314Z+LdrOvxQvNb1hp1Pk+TZ2waI+oYxfNj0zXzv4C/Z18ReNII2tb3QbWORciS7v4bckDruBP9Kb8R/gdefDq1hmnWG8RjgSWN9DdRoech9nI9fxFctTC4WUrNa/15GsMTVSPUz+034M+Gmk3SeB/7euVdyy/2ha2rKfqVUEfSsH4g/wDBQzxR8R9O+w3+j+G2jjhESeTpkK7R7sADuPrXiJWSGZvJeaFe4YDn/Gpp7uSWHDbmUfdI4xXRHL6KXvK/qzKWKqN2O7X4/WskccKeFdPKqVJaUeY5PfkY+X8a9P8AAf7YPhnwTDLNB4OsbfU1C+W2n25VZBnkbWLZ/SvmXHlScPIG77Wxmtjwrqsnh29W4WO1uODhJF3fjnsaqeDpyjyqP4kRrNO59ha7/wAFaLhLGG10PQbrwjcRwmOQ6fIsUly3qw6/pXkfiv8Abm8TeL/tX2e4ureW6GySWWYP8p7A4zivLde+Iupa/akTLFt/55MxkJ/Fqy7TWftswWazjuNvTb+7x/wKsaOX0ou/KayxVV2R6Jo3xS8V3Hh2+huPFul29vw32eaT55MnGFXbg/WuLt7a+1G6Pl3tk/JYt5gUfy/pU1poP26TfZ+GofJXMhJneQY6cgYArtvBPwz0DxvcSWsvhrWLW8K4juba+HkxH3Vx/UVtKMaf2dCHzS3Zo/DCy8feHpreTQ7PTdejuspFC0kUxmcAltg3B8hQTwOAD2ro774a/EyaW41S8+G9xG1xlmddMkmH6E4rLh/Y61jVFuJIbiwsY4csZr/VIgzY7hQ2T/SsPU/gzq3gu622/ibTdSLKGZbbU2XbzzwG5rmk4SdloaxvHfU53xTY64uusJtIW0l+59lMW3APJJQnIHA7Vzeq6j9hlaCTT4bWZTk53JivQPDZ1+fxRHYTa1otjswVl1JUljHJH3mUkH3JxjNO+J1zrlrqxt7rxV4b1wRnKyW6xTQqPQfKR+FbwqOKstTKUYvVnn0WtrbSr50Z8x8bQlwV3fj+NdZpy6DLaxx6h4bhjZ1wtzFfksx9W2sT+lR6r8aNUi0j+zY/+EXWOTCSSxaTaiUrzyH8vcuPY96l+FXxA0vwyl1FeeH/AAv4ha6BHmalbB2gcjAKtjPB7dK0nKVr21Ijy7Jg+jaPodj5m/TdUmX70MepM7KPQjaD+ZqjoGn+H9c1GSO6aDR4WfAmknkMcfsdu79a6LxP4pvPHWprb2WmaSonRUjtLHS4QOP7nlRBh+Jz71m+Mfg54q+HOiR32t6HeaXb3AEkTSwuuR9CP61jGsnpJ2fqaSptbK5S8S6V4e8Pa8ltb3Ut5Cqh2uNNuRcKcn6KQfbHGKxPElxp1yzeXcaheRxn939pl+YD6HpSWVnqke2ezikhGd+9EKbj6+5q9B4T8Qa/byXDafDdQwNulkmjVC36j+tb+6l7zX3kq99DPFno9/FGyr9lkjBVzv3FjXa/DnVvBvhYQya34ctfEiq6r5E0s0bAHqflri2trWfVBDPavZtGdp2Sj5T75FbFj8NruWRnsJNNukTqJrxFfb64BpSUHHyCHM5+7qdR8UPib4B8aXe218H/ANgyqRt8i6k8tforCuG07xXY2upQx3j3J023kzHgDpnnn/GvZ/APw1h1qK1tbyTSb+4TmSyluDFEp9nCfMK0fiX8HfBkOmx3hXwdZSNu8y0juJGIIBHy5O089sDmuOniadP3Um/kdH1ec1eR5pc6v4N8XX9un27W4LZSU2W2kxSFPfO8bvzFYPj3RtE8PXrLo+o6lqEakYa501rZ1J6qVLEdM9DXrHw/+Emn6DEdQ8N3+nyXgQErGH3ZPvn+Rrcf4feIjZQyXluttaXEpllhfUA3mE8cDkrS+uwjLRv+vkUsNJ7Hj3hi60uTRreGTXPsN7M+0uyzbI1PrgkfpWjq3hjSdOu2tYfFWjteSEMkxnYwv7s2SRx2IBrb1/4HQ6frPmzabeRxzLvDwTG4hbJ4zjmt34a/s8eEtS8S6db61aat9hvpcTf2VdIbkD1WN1zx6GnLFUtZRZKw9T4WR+GfgJ4a8UeGZry4+M3g3TLo/ctZVuVy3oSoPGe4BrzRvA0MupXkF/qulTLauVjntrtWhmHdld9vHTg4IzXuv7RH7FPhnwfdr/wj0nibTdOmAaKTWbRo5Zx6qeEx7kmvM7b4Z6l8LdQs72z1yz8643CSO0eO6mtwuMbk3Ywc5x9aWHxMZpuMn92n3jq0ZRaTVzI0rwLDDA8Nvr+j+U2P+Pq9KLz0AYApn/gVUPGnwSvtDihubrV/D6j76R22px3TNn0WMk8+/NdP4p+JXjNvKa4v554l+5O+mxxr7EKAcH3zXL6/JeatLHNqqLfcn94kUccvPrsAOM+vPJrenObd0zKcYpWsZOj/AA+1DU5Wjh2spI3boyq/iccVp2Xw31fSdUmtrvw3LqWIzMohD5VAB84KenoevWs3VtMtYrVWt/7Qhk6vvLFT6YzUel+KdWs4FjtbqMrC25Dtz5Zro9pzPR/IxitNUal9oxLpcSeF9ah01V+fPmKT/wACYYrWvJvCf2YXVn4D1htOhJR7ia+maAsR/Eyrgc9PWrCfEDxl4i8NLJfWsVzpMJ8tjHbjj6Y5A+hFbWieKf7R01beTV/Emh6ZCNyG2S5kt845Hl+dgfUVhNz3ZcVFrQ4NdO8G3Visix6zb3DliwjmDxp6YbZnim2kPh6fVraC5+1QwxtuaTB3Ee3b9a67xHq9nZ3MEkEOieILPoZpIJ41Ge0g3qyt7q2aoaN8Vf7KsYrG8sdGvtMWcMlvcwkI6q2CI2J3qD7HHtTUpSheI+VXOxtfCPw3u7Nf+KlhuvPhISO7uGt5oG2kqx2wuGUNjPzDgdRXluoabY2V95ceo2MzwylPMibdER225AJ+uK9mvPib4FuNPtrTT/h/4PtY5E2XPmETTFuv7tzgr3wegrCHxA0XQ7VrizXwzY3qttitTosU6lP+uvJJ/CuenOpGVmn8zScYb3OQvvhzJLAsljqWlyLJgfNexxsD7Izc/wCFY93YyaTctDqKwzCMYYwzK2foVJru/H/xa1j4u6Vb6e2jeF9Hj08FlntLVILiVsY+/jd+FcnpNwdIgmW8+x32Uxta62OjevSuyjVn9pmc1r7pnxeFV1qctaxXVuqkEF18wk/hzXb/AA78ARS6NNKviKzsNThmwLa+0yXynXs3mgEA59cVn+AfH9/4UvFvtNRlvJMrE0LhpIhjqQ4ZW7cEd67TQPFV9r3iVru/8Py+IGiTfdQfY5IEfI+872+1Rz6DNZVpVOg6cdbu5Imqa98MtS/tHT7ywutW2nPklTuXjkDOMDjiofEnxc8W+J9Oin1bwpYtqDEmLUbWwMMiL0OWUDrnnmq/jP4za1byIi6D4esbeNHC2YtF3WxOMEtwxwAOXyf1zl+HPHXiq8KSWf2i4kQ+YEhgKbSOch1wSPzrGNFuPM0ayqJO12aHhz4/XXgK6aH+wna9ijMYddXuohuxgM0YcDOc1y/iP4veINc1JdQvJvElxexsGDR30vyHP8BJPT6165oX7Q3jz4q+I0k1eDw9rU6ReWt5faPHcXFigyMGVhvPc4ORzxzmpo/2l/EngDUotIk0HQdes5nKxC+s1jTJ/jT5QwA/u1lLmjtFf16lRvJaNnD638a9TvLezebW/FjXOAxl1ElHD5zxIT8/GOv07V6/8EP26JPDsNvJPqE17qKyLFPFrWjw3lvLFjsyhnGPUA1seFP2vZtE+HMi6l8LfBusLcfJJsWcN74KSHy27g7ehpPhz/wUS0H4VyKuk/CmDTlyQ1wvlJcMD1XzBCCy/U8965K8Z1I2dJff/wAA6Kdou/MegfDn/gpVp0HiGLTPD3h/w/pGqSKoik0gm1tfmONpkdVdGx2IxXr1t+1j4qTxMravY6f4geFP3DWPiGCa9CgE8hJMjH+7Xz3rn7fvwx+KU0MPiL4Y6lDtHE3h+9XT7uAn+LdHtRsnjlf8K4/W/Ffwz8aG7muvEnjHSYN3lxQahocV5ciEesm4g+nI5rznlrk7+zt9zOyOMS+1c+0of2qree3isdQPxK0qO5dJoLu1s3ui3ZpPkB2YPBR69K8D/EO+1zSG/svx/wCL/Lm3Bf7a8OPLEhXkszBc4HUAV8I/BK7+Eng/4hfatF+IfxG0m8uFMck2m2kVnYSJ6N5UyOPYA4r6Y+AP7anh3w9NfWq/HS4uYbS48jzNcsJTeQrjhVkdpPMQe5rz8Rgasf4aZ1U8RF6Sf4n054N+KkqSf2brGraNeyRoqrcLaXFqZpO+1XTbj05r07/hHPDc3hf7V5atGx895FAA3AYIJ9z+tfPeg/tLHxaBcf8AC2tC8RQxor2qRS6fGyYyQskZIfj8DXZfC39sPRfie0dlofizQ9S1G3m8uaONQw3d/lDZzgZzzXnzjiIu9mrepv8AupaafeereHPAug6h9oUxiduShEZKhT0PoSKhvPhLZaJZyXV0qzxxodm1CN3IBJA54yOTxVibV9X8QxTnQdQ0yzu1AQS3FmbqNWHJ4Dhh+Dfga5/wB8LvGWieJNav/GOvaf40jup0uNGA082n9inBEkKuJGcq2c88cVCzDFRXuzYvqtJ9EQ3Xwne8t/PhtljabmNluCYwR74IGR2NZ9p4ZuNDtluJPD5vVVtrt5hlkb/cQABj7V2nxD8Ra9Z2FnHor+HbO8juB9pF/DLcxyxYPyJtIIY+ueK4nw/qPxMfV9Sm1k+F5IJJE+yRafC8Uky/3dzZ6Ajlickn0NaxzjEpaz/zF9Rpy0US1rnhPR9Uh86y0nUoZWGfJlG1vfKnkfh0rEu/CmmCw8x47q0uGP7uN4ztbj+En73f8q7uLxTqdzfySXGk6jZyafIqmU6u6xvngZCfKwA7YNUfHXxbt9G01J9Q0PXNSsbiUw+fYW/2hYZMgKdvDYP94Z+nr0UOIK8d9TCWV0/Q8wu9AghfDQzIzd9tUHtbeNmXEi56nBr2y98ReGWtYWmM0iswi2OrF4j/AHcE7gfc/jVe/wBC8N6vfq1vqFxpssKlzbkIoYL65ypB79c1tS4im378V8jKWUxa0Z4vNbWzgYk/HPWoZdIjkPytn3zXqNzaeF/ELpJp+qaHeS3eyOKOJUky2/5mYryMH5cenFW4vgxHYwxOyWd2u0PLIOF5HUBu3p7V6Sz6lf3kcksplZuJ5D/ZCxhm3KyiivTr7wCq6j5ltpttNa/eJEh8vHoec5orSWd4Z6tExy3EW0P51H0q48S2TXejeCdU+wW7FpbuzguJVT2d8YFZ13eX2lmPy7TVbNpME4YhnH49q+u/2dv2sfiN8NNLFnq13HqOlSfuwq2IVV/2MgDivQ4PGVv8TvE8F9a/D/TNVvOD5T6qkSvzz8rEgE/WuyrmE6VRctnHvzf8AzjhYuO+p8heD/id4hg8NeVBrfiLTbcggl7yJIT9DjJPtXA+IbvVoNYM6yNqx37hMTu3/Xsa+0fj74Bs9R0yS81nwPomh3XIiEdxuZeOuEIB+tfGvinwJHY+J18iS7uYmf8A5ZRFj1+7gkmujA4tVpOWi89LMzxGHlGPKtSvrfxLvtUtlhuLSCFVG0gRAfyFOtPGd1pCCfTb6XT5owAdiEcY57Gu4+FPwdufH2uQ22gaB4k1i6h5mii0wXARSe+7gfjXvNn/AME4te8YWsMuqabfeGrWME7YtDe4mPIXG2HhfvHt261tVx1Cm7SZjTwlaS2PkLWPHmueI3he+u7q+jTAWOfdwO+Rxmvfvgf4S0z4mQ26xw+EITCqxzA6V5snOclyXyMY4x6nPavt/wDZ5/4JS/Dvwz4QTVrrWNS/txgfK/tPQblYIyBwAN3B9CRXKfFD9jHxVFq8MX9mw61paxGQT6dYRR3Ea56hmVSxwPVj9O/j4rOsPJ+yWnmehRy+otWfO3xD/Zh0aa3aWG10vUJF4xDKbOL8iP6159rPwQj8N6VIs3huTSWYBluY9YEquOx2ZOR+Havs34Ofsx+GLbU2u4NUvtB1e2Q/vLnzPkHfeFUDGeo5Fet+H/2QvAXxt1JLK61fwJ4o1qSBibi0WWOW3TJ7uNgYnPQd65/r0qavH3l5bm8sJzK2x+RPi7w0st2i29rdSMc7pFiyp/75GKwdSt4bcpCFl3Y3EMu39K/XBf8AgiJ4ysfFdu+g+ItJ8P6JLLlori6e7Kr22qADyecBq9t0n/giT4H1fw9bw+LL0eINViRjLNFbSRAHvgmUlc/T3rq/1lowSb18upz/ANk1JM/ByLw815b+Ytrc+Wp5ZYWZT+Irf8O+G9HuoFW41C3tZFBJguYpVV/QK6q3P1Fftz4r/wCCNPg+z+H9zZaMv9mzzqyq9xfXVyjc/Idm9QPoK+FviF/wRg+M1trtxF4S1TRNU00TFkjgvGhkKjOGCHJBx23HHqa0w/EmHqz5Z3j5syrZTUjHmWp8kR6d4BvoFt9SGuafeL8hl0tBcb/wfZ/6DWp4n8MfCG28PbNL1D4krrSrvK3lnbJAPwDZr2vw/wD8Effjx4quNQlmsYbG/swWkW/MgklA/iWQDH/j1eafE39kTxb8FNXaPxba2ckMLcK7lWkH90MoyAK7/ruHlJKMm/kzlWGqKN3E8rSK3tLdfJvFkJGCvzq59jjj8+KsaPLb6XIy3l7fWUE3O+Byefw616doPiD4RabaWtndfDjULy+EqmaaLVZZFbkcbMrxXTXvh/4X+N7m4hbwD4m8E2s0WbW7N+TIWA+8Uk3Db7ZrSWM5Hyyi/nb/ADKjQvrc8fS58JNpzNcavr1xdK2xdsh3fgpPp1rndYn02K4RrA3ko7tPGOPrtJP6V754P/ZD0Xx3asvh/wAbSak0MuGhTQ7i4dVCklmKRkEggdCOnpXH+PPgHd6H4hutN0q/0/UoY03ie5iNjIoHVSkgGDnoKmniqEZXb18wlh6zV0tDzWzsBrV5G0eu2NqzRszO4kXZjnYAAdxPTH1PatiPwB/a97b6ZY6lHeXVwFImW4QQsTzgltu0joQavQ/DLW9GkVpobfT5AuNzOCzj1AUkfpVW70u1s7GSKX7Q2pqSRKseYmB71280Je9BnPyyj8aNrW/2apPDU9vBrOraBZs4LFI9Qgmk4x/CjHOc98dK1J/2WLGayabw74m8PaoYVEzK97DDIPUbGOcj2ri/C/g2PxNE1rHc6Pa3Sgv5sreXk+g4I/OpPEXw11DwZZq02o6Lec7gLPUY2dSfpyKzlGSfK52foOMoWvyntX7PnxH8ZeG55tLs/F3irQ/s5AR9L0P7Yx6YxJGjEen4e9V/j18QPipqVzJDr2seNPEWnsCQdT06RVGPZ1UD6CvN/hF8TPHngtZJvD/i/wARaPIeG+yahNGCByMndg/SpvFnxr8f+ItckvtZ8aeJ9Y1CZQoMuqSN8vTHXGK5qtF86krP5f8ABNoVko2Lnh74Z+K/iPd2c1j8P/GmrYTO2xtZlSdQcbgFB4GMH3BrT+Kfwu+IHhyWI3ngvWNEt8BVgktJbht3bgrn864bxLp+vaM0F3cf2vbfaFBSeSRiOeeGroPhT+0L46+GM0b6T4i10/Nkh707XH0cED8K1qU5v34uOnSxEZJP3jpPhz8HPFnjHVYWuvA63q2cirJ5nhe5cydzv2gFmPcda9u8P/tZ+EfgBfT6bqf7O/g9tTTckwvLO7sXYY7I4JFcPb/t/ePtXeMXnizVrOOHa72M0UgWUgbRh1YHFZ/j79r+4+IksC6tca9catZgxWs0uovdRoh6qgmyU/A15tSjWqu1SKceybR2RlSgvdOqb9oi++LHii4k0HwH8I/BmjuAPs9+Y49uePmklfd+INWvEvxqt/hTqlnBffCf9nnxdgKsN3p10uoAOTjEnlTE5yO4rlfg18aW8SXU1r8QRNqGjyRP9lWKW3sid3PzTeS5b8a9Q+FX7S3wR8DLHpN/8MtPvtQzsa5t54b9gGbG4sYlBwu44wfoaxq0Zwl7tNGlOUZR1kdSn7QXjLxL4Vl/tLw74b8N6azIF03QtAWLauMgbVJcj3rgPE/7QX9u3yxaX4U8OWdxp6HzF1nTzZzTkjAPzuD1IIOOoFd74cHwh/4Tey1yx+Inijwzaidz5Ts7W9uCfuxKi4x27H0r6N+MvhnQ/in4CV/Cv7RViNUurcb7O8tIr8y4xwplDSKSuBgEf0rzZz5JKSj/AMD8DsjFOPLc/Pa/+O+sfDDV7iO48J6Dd3mpOCpGqzlY8/3SGCge4JxV3xL8P/Hni2HTfE+nfDrxNdNuZXk0y3uryJgSM7ZFcs2BznGOOvr6drXwyvvD+jPa+ILyCaxtHAu2nsI1SUZ6xoSfyArpfDGr/BHw7p8lto3xg+Ivh9tShEWpaZoJfSrQryTv2kbug4HrXoRxL5b01r3Sb/RHN7C0rt6HnnhTwn4e8T3UWg/FrxH448P3OQVhuLBJI7PPUM22RlAGOvI9K6LUf2bfDPw+tbi+8E/EPwrqujzNsMrT2ds6gDJ8xpjGDn1C84PBrrtF8DfA+78SxSeGvGPiTWobiTzGa4lXzpeTuQOzhs+5NcX+0dqfi/4DeILfWrPw/pk2lahceTap4omTUFuEGDgRMfugFcsvqOTXO5zlLlV03939fM1UYpc3Y2PF/wAI/EnxF+HVuuhaHb6hJcRgwXmm30Ulu4x12qoGPccV4bbfsL+OPCkT3HibwrrVxHK3mtLpcqToVB53MBtU/jn26V7V4e1vUJNGj8W3nwj8K2uk7/PuW0G7kIjz95vKaRyqnqRgV6p/w0h8J/DPgW11KHw7e/Myyzxi1RRGCMZCKQ6k+gJU/iazlUxFHZ39AjTo1NWfJtp4f8N6bBc2LeD7rV7eVQ6C7Y291EQechgQ31U8+lehTfC/RP2h9MXRfDGkjw9qVrEGlieOO4LL0yMqmfwJr6B8K/ADWPjh8apPGlx4Z8SQ+H9Qtki0lp44bkW0O353MSMNoPGA3Ir0jwP/AME6/htZ6zcHxxrl5DPJcLcW11pWoC03I3/LNoRlkfHXb9ampmDW90/S5X1WN9LWPjTWv+CcNp8I/hvc3vibxN8RLJZomIFp4flhsJPTDksG9yK+V7zwfD4Y8UT2mleMLKSGIELI0zKHA4IIYAA/yr9YPiv4S+H8XjLUPDXgnxd8QPDf9nRoP7Qv9Wuv7PnLKwMTGU7vmO1dyEA7jxXm/wATv2B/D/j7ULi48S+NtP1RI1SZr7TIYZLkKVzmWTau7HuSfatMLms4/wAa7+X9fmTWwMGrxsmfnbrHjnVPF1jbaLeatFc6fayZRX2W6g/3zgAsKTWvHMlvp8nhqS9t77S42/csiJcIjtzmNmVWUH0BFfoX+z14U/Zx+DV7daNJ4kuPEGpXT+U0cMdrdJcD0KSIGQ+wbBrifiv+xWvgbxm3jDS9O1C+8PwhvIeaSO1iAz8kbtEHxj+7wPeu5Zsoy1i7dNTllgXbfU+DtH1LxF8PvEENxpl5HZzMdySPsYBf9okkAexpdesL661GS/u10ia4vpSzCKRGYn1wvAr7e1z9hHwz8UPh7qfim81a403UWTbbaVZWCxxl8FsGQthgSMEjBPtVXwL/AME/vAcNsP8AhK76xtLhlT5otZVjEH/jMYI6dxGfrXRHPKHW5n/ZtRrQ+WfCHiTWvCuizO3hTRNRt4slpntnlMZIxye3X+H+VRr4o8NaxA11NpNhpt4Bl4hM2y4+h2nH0r7B8Qf8EqNV0LxBpb+B/GTePPC+qZ32trqLWMqNnaD5b5yoJB464rzr9p//AIJm+MPgVoH/AAkHiSKO10aVcgw3CTTQBhkbo+D9SKmOZYWpNJvX7hSwVWEdj5k1vWNGniDWOipDMxHEVwXYL/FgHGOO+K6D4dNpNtrQm/tjxdpdvK3+lrY3cbTBe2EIUY+pNc/aRLban/xK3bbaqdsojKmZvXdn5cDPGD9KdrVzp+px2knka1p83/LZnxLGx7suACfxFeo6cZL/AIJxvmT1NT4leALfWPEv2jQR4surO6JCTazCiyzEY/uEgrzWV9k17w7aNDNJf2AiGCuDHtHtzkj6VvfDHXNc8I+MReeEZpNYvsBY2EAaeM5H3VYEDp29K9i1v4lfFfUbW60bxpfaxotnqX+kWkV3oVtdrO5HIEjxFlHqFNc86zpe6mrebt+jNY0ufVnjfg3xHP4fu1n0/VdQvrjA3wxiRkz2DDkk+23Hv1r0O7tvFHj66sZb7wT4iuv3gCSpo8pWb0AxHuOf9nk13/gv40eIvDuhaXp8mj+E9X0W1IjDyeCLOSR+uctGsbN+LZ61veBv2fta+LPit7vw5oeiIl1IGl2R3EUtvg5GIhNlRnoAeK8/E4ylFOUkvlq/0OqnhZbROJ8XweD/AIfXMmk3ehzaLq00AuLgT6gkaxjA+Ty2VZFkxghW5wRWDB8cLXTtIs7G2FwNOs5G2eYY5CynsI3Uq2PrX6S6P+x7ps/h62W18J6VdeLI4t8139uvRfeeVBLeXMZInXkDDdgBXjn7QXwd+I+jQ2ct54b8CxWdnNulWHQtMjuJCB8294SkgJXjNefh8yp1JWivvdjsqYOajf8AQ+YbT4g+F49YWe117wqq5VrmPW/DbI5x0CCFSn64r6Etfjd8FfiL8NbjRNUTwBZ609sI7ScaZPayRsOS3mSMqqPpmvLPDfw1+HvjXx5cal4o8OzJcSWv7+0sNbeJ7aRcKGETgkrkHjeyj0xXq/wy/YL8F6zqV9d+GtXlsltYftXl694ZstYsk/2GLYc59AKrEVMOvjuvmjOjGstrfcedeLPAHwQ+Jus6dp+i3dzpcybZbz+0NVhtrWP+8AwXcvpwDXqGs/s+fsmXHhKyt/8AhLNI0vXrfa8lxb3yajHhsKSwwBIozk4UkCuU17/gmXrnxpa4vPDreBrrUFbcbbTNOTSmCdj5bEt+Oa5vxb/wSN+MHg/wpNeNY6bfWpYNPACGkUDujqCeO/IzULEYN6SrtPtcqVOq38CfyPXvCP7D/wAG/FXjWFvB/wAQ9LuI7X5Te6baxzGHP3Q+xiRz3IGKueIP+CXfjvwz4vm1G28WeBZNDhYLHew3LWM06twonfcm0nJAIc5OBwK+X/Af7Ffi7Qdfaym8O6Xq0LSBjEpbdL67ZFZWXHoTXuPi79jf+yPh2+pSeA764t2GBYXPiSe4t1cEYxFwuNwHXdg/Ss58kZWp1r37pNlU4z/kSMzXNnw/+J1zp+i/GDwbaW9vI0kwsPFUvm22CAVyzGN23f3Xauw8IeBfiTqMsd14R+KUl015KZJGuNXVklfBJw5l+Xgc8V8taB8ItC1DxVfReKdA1nw/Y2yFx/ZUkYEbenzdR+IPoa9v+H37OnhDxv4JsbrwL4TvdU1yNmSa1g8RmykvRtwCqM7HdyCdpGcYxjNa4jkjFLmld+SsRScuZt3+8+7fgj8PPiG8tq2o+OdNvVtYwZobm2875iMg+asmSM9yMVr+IfD/AMZtD01LG2bQtYa7fzZLrT9RFu1qMn5THMMN1XgHsa+BfF3ww8A/DvwXb+I9I+IPjDwr8QtFJW40e7leaQuvBTCqOB/s5B9M1vfAz9ub4oaLdw2dv4w0FNNjUyie58NXM0Zzz+8by8/jkd687+z6kk5xnf5afgdsMQl7r/M+s/EPjH4vabot1DZ65bHUNpTy3tPtAVgOQjqpjLexYVzHg349/tFeGdU+0at4Jn8Q6ZGqxwyta20LFf4iRHJuDDOckdCK4OX9vr41fErVI9F8I3HhjULvYQ13o6RyROeudkxDL6HjijV/j9+09eR/2bLofi6w1rcoD2FnHFbyrzkq4XJ9Rg9+tR7Bx0nKH4/5B7eL2LXxX/bn+IngzxMLrUvhuslurDzpLSJpJo0zyGZH6n3FdkP+Chmkap4dhvtT8AeMNKt7jciX2taRPY2KkYGwSYYHpjJPPWs+1+IfxO0vQrWTxd/wkV15a/vhqekSyFs/89GjBJx64zWpbfGfxF4N0K+uNJj8K6xp7R77vSri7kh8z/ZKyqQox2Yfl0rKVOLduSPyNI1JW3PPbX9s7T9cvbjTfDvhrQNHvLqQh5TcSKx5yWilRCqk9ctXVePf21dF+DPhLQTea9YS6hd/u2hn8QQ3EcOQPlLRru2joAwHArpPhj+1r4f8feCpf7L+FGn2erWrFJrCDToWtp89Qsqx9/yNUfFj/CvWPA0kfxC+FeieFZr2LdazQ6e22M/ewDEA4x0xjArPkpqa5qdvn/mVGUrWjL8DL0H9qDT/AB3400W5t77wzfQQ7vMg0W6bUvNDjG6XYR5IDYG5lwKKofCL4bfs7W2mQw3/AIZ0vWY9VnaIT20Fz9otg4wrsMLIFJ+QgNjB5FFRWp0nLSP4o0hVqJaszfEXwL+LHxe8UHSZfh7L4A09pdzX32WOWED3P+ArW8OfsQ69oM7WeqWui+ILNSVx9kWPzM/xNJHyv49K++Ly6mcsIYRvPLFzxWW2lN5v2gRwrJ0wB94+4qXVrwso2SQo+zbvY+Rj/wAEsvhH450G4hvfCMEOqZ3SyyXc8kSsfQM4H5Vy/hL/AII7aD4O8dJqltfeHYbS3G2JIbKWKSEYPJZyV346fn719vT2N1PLGzPGI40KBMbd31IqhrVzqGlafI0OntfR7kUxRyHeRnDNzxwM1j9YqxldN6mns6b0PK/hnofhb4ZeN7vwja6THZNb2a3Ooamtube0jYnHl+cQqO/cgNxmtGf4efCnUfEsN9a+KtHh1m3kKbrTxLGihuu1k83HPf8ACvRr670u/wDDHnXks0bXLH9xPuUYI5HTAx71zPhvQPDLTyWdppFhdf2ekSvcSaam5n52jfjLNycn2rn+sJz9/c3VPS66HVaddxCZLeO9t5rfytolM+ZBJ/sjJDLjuKmuI9Lu7uOO6m+0tDHujjkKp5II54x3IGfw9RUOmCHQrs3VxDb2kxOFaGIcDsM1NbrNewSSSsV8x/leGQMCM4B6HuR9M0S5ZasSi9jyn4vfDnwHBGh1ZtQW8vSFWGxtZrrzgexCx4x+Nea6z8AfBPgmX7V4F0nxdpd9GzF7uFBFBu2gsrqwcbjxgFQTivqDT7m+glXzLeyB3bEeFyisvc7eOfX1qS1neK+utv2rT1jYCKVmVYpmYHn5fmxxjmqpykttPmKUYvRnh/wv8T/EBfDAuDB4g1KO3jZhjSdslwR0AIwpz06Cuf174n/tCp4J1jxFN8OY7ePR/wB5Fp93cfZtQukLFQLeKBpDLwASG2kEmvpD7Tb3cwaGSNm2ht8cgILjsG7e9F74i0/QZ5r68nis3ucRCSWchDzyvp15yKqOJfNzJL7iZQTVj89br4s/tW/FmRprjR5vAej3R/0dJ9MuJ5J1BwdpflW9A5Unnisn4ifs0/tDQapp954l1zV5/D6jfLcaNaCKRO/7yBHZue3P1r9JrvxLcLoc01v5kjSpuimVQyg9hjOCPevl/wCNvxV+N3g2a6kt7rTbbR5HZYY1gh+1Elj/AHmI+nymuili6spWSivkZummrniN7+z38PfGfgoQ654g+Ik2rSbWkjgmms3BJwQ0cTLwO+V/GvO7P9mHwX4a261afC/4keONJuF/cvN4kUfKTggedGC2TXd33xf1xtNVtQ0WxvNbgd5opdSmWJo2/vkRpg89uleWeO/2jfiN8YtbuNHh1a3htnXZGNJ0m5ntbaT7vLA8fju5zXZR9pGfvT9bv8uxjKMbWsXPi78LfgxpmlzXXh/wD4q8HeL7CHdcWMnk6om5h8oby5Mq2cc9q+a/CHxe8a/Ebxguj3Oj3Pj2z0ti8GjS2DCS25/iyC2OOma+hPDf/BPv4zalaapJa694mtbrUlBd7K4kjtb1SMYcgqwJzjoetafhz/gknr2k6xBD4wk8YaDHP881xpEkl2bnPXJBIUn3BNelTxeGpX5pc3q7nn1MPOb91WPT/wBiS70Xwl4vs9S1rXtD8FX0sqGXw/FKumsjH5QjrIqsw55wa+lPjU/gHxjYtDqtj8G5IbwCOOXxBqduqSMDyFeMk8e9eE+Bv+CWPgjwrfC98J6faeKpBhZLfxJp00e7jJ3yZxk/Q1sL/wAErvAXxD1Dy/FngM+AbhAXjm8PXPmW0hJz0bcPwwua8nEVsJUnzXa9P6/U9ClCrGPLY5P4s+B/2bfhji91zwN8ItcvljKx/wDCPa7NJJKMknYeRkY78c18z/FLU/2Y5dEvI9B8H+OLe8um3xLa3CXUdox7Ftp79iRX1H8QP2a/Bnwr15dH+H/jLwqmoRBfO07UtFhgmlYcZMrKcDscHnNfU/7KnhTUtJs2/tDQfA3ksqyLJpenxRKpA5bg/MffArSNanCPNBt+raJlSb0aPwL+Jfwx02x8U7rO31D7HMA32i70qWyWInoDnJOPUDB967j4H/sTeGviJDLdavqniS5s4EMs0uiaekzRgcnPmEbQO7MMCv6INXSLWrSRLq3S+tZlEYDxJIpJyPukEDHtXKXXwo07S7G4utD0bw/pN5cRlt5sPL3P3DGMg88DNdH+sVZU+SKt82c/9mwcrs/n6+Jf7J/hPTr5ofA/i7UdUvo5Nn2K9h8u4iyAQTsj8tuDnKsetd38Ef2Crf4xaHcR3WveDra+tz5aQ6hqzaddTPjAEY2MG57mv0t8bfs0658XvHMzX3hXRdL1a5l3f2kvnBeBgMrDOeAOCRXO+HP+CTGveLdVEnjDXpL/AEu3kJjgs52t55Oeok52/r+Fa089k4WnJ+pMsvipaHxRr3/BFP44aX4JW4t7FfEOkwr5kcOl67b308C56+Wwj/iyOPSvPPD3gz4gfsratNa+Jrm08MzXQxDa6/psdytwvYFQrhfzzX6sXP7ClvYXiaf4R1P4neHLqz2sLi51GW/s5nx/GHkG4YwOg6cVD4N/4Jv3nw58bzeItU0Twr4m1yZxNc3sd7dK9yo+YYjk8wB+xxiojnU4qzlzLzVvyuaSwUG7wVmfkL8Y/DvjL4s69brpuk+HZr3cyx2ukWLQySj+8A4AZSOcKOnasw/s3/FSx8NSNqHwt8UeXGMtdSeHbpUA/wBltmD+Ffvzb+DBr9lYNrPgnw7NeRooima6V2jGMr1UE4GAc88VuH4NeEdenZdV8G6HuuEywVF8sY7fL61UOIKijyxivvZm8sg92fz9y/ssfGLQNEha6+GuuLaak6LbxRWQuJpsjg+WpMi/itcJ43/Zt8bfC3VkXVPC/irTZpgW8m40mWFos9w20AEehr+mPwj8M/D/AIcspF0XR9FtIb3Mkgt7SKMP/dJ+XnHvVHxh4At/Fdi2n3VrGsN0rR74n2yLkY64priTEQd+VMX9mU5KybP5yfB3wk1vx7ZxWt5H4lsNHRt08NriSSAj5lfbKyLgHP8AEPrVi9+D/jyfUI7fw3Z6z4gjtd9wlxYxtJeQwDr5yxlgh7/e7V+tn7Qn/BMix0q0uPEXgjwz/aPiTymU3N3O0krjk8KeM1+cer/FDxP8EPizf6XqUWreEdWlYQyRwS/Z4JcfxOrgq5HXdjggHrXdhc4eJnpZPszKrgfZxsVfhH4FtLjRLW88UeIPHVm13I0d1bw+F7u8nwP7kmMBvxrif2gfAngjStUmk8F+MvHWuSsY4oYdQ8Py2solOcxlmJDMe20Hoa/Ub/gn7+0F42W1ig1TUtF8WWN6uPmmjhniQ/3iyKJM/wCya1v2zPCGpQ67H4q025sPC7aEokh8tbQyMRltqkAE529yRjtnBHN/alWGIs116bfdY2+ownTvdn4o3HgXXdFu4rnUG17S7facSy6fJGVUnnGQu4e4Br0Dwz8D9S+Juli+g+IHgy/ksV8u3t9Q1/7HdMD0UR3G3B47ZzX1TZ/tP3nxT1efSbr4J+FfGk1yzLBJJp8kjM+TyxVlUkk9hW7oH/BLDxRrlzBqH/CA6DpN34gJZ7KWwnljtIzjhW8whMZ/l6V6dTNGknVtH0/yZyxwbv8Auz5Kv/gP42+HnibTn1Obwjpsd4u1Z4PF9hJGQf74SVz9QUrr7jTL+88RW1/qHj7wdbyNH5BiETXnlqpA+RIEXLdDnHSvqD4gf8EU/Evw+sW1KxXSdejhXzPsd0zRSbgOEQHgj61jXHgDVEmbSfF3wpg8Ew2MCouor4TivI5ZCMAsy8lSAO+c5rnlm1Oo/wB3K/ysUsHNfEjwQeC/GPirxcba38aB7Fsxi8tdauLPzlXnLRkkr9KueHf2VPiFqwvvE3h/xNp8LWcoi+0XeuGJ0Y4BO6ch1Gf4iuPfGK+gvDv7GOpavqtlDcWWma1oupbvKvtP8K39nLZ7l4yFIUgf7Qrvk/4JQfFLw1dSf8I7faDrHhe4jRi7QLbalETy3+tQkgememMdq5qmaRjL4rP0ubRwqPlr4vfsm/EDwLpMc/jbRda8Sa1q0CGxl0rxVa6lbzPncHdFDnaP7ykCvEtX0TxZ8EdTh0vVH17T4tSjLpaHVBAkvOVD8/Lx69a/TXR/2avjBpV1aaJp91rGoaZs+zn7TE9ukSjjaJFAAH0rF+Kf/BOHwHodjJrHxChsNPuLyD96jG41CaNTyGjw3ynBxyGooZxBOzad+wqmBbV4bn50aPq1x4kkS603wnJrU2nzg3LORcJn+6So+77mtJv2hdW+F/jpbix0f+w/tWPMtFJktTgndiNncNn2r1u9+BHwr1fxPqUfh3wv4mvbW3DQR6jHq4tPJ7ZMUyKCP9ndXW/AXwv/AGJ4P1LVP7Lk1vTrMmB7aXw7Y6xbs3dmaTLofpXqTxdPl57aLockMPUUtW9Tzfwj+1LrvjPV9Nmg8YQ+EX0t/PF49nPc6WgweHtoo5BjPBbafrXrml/tba5460DWLfX9J+EOoaPNKLK8uYtQtLK8v8dHWKTZMxPXiMEelekfDL9qD4IeDNNZZvhhpun6pcBkuHEEKfawo4OwOCgB52KeelfQnwF8YfB2O2HiTR9S1nwGurTD/RJbiKO0lZcZI3B2Bb6ivHxGKlbmVFpd9D0KdGXWTMH9jv4SaHplnY3n/CWeG7nQIo/tH2W98VW862EZ4bd86lFBIHI4OK0/2n/HP7O2r22maT4gk+HviCOb5c6b4qt57iJR1BTz92D74r6T1GXwl8R7CTVby7s9csLGIqjXtqJLUBiD80ZjKPzg5IOCMjBANeear+y/8F/j/ZNDceG/BupKSd39n2UNvtP1VEYfhXiyqRcuapf5HYoyUbI8C+Mv7I37Mf7WPwwhbwjd+DfAfiizhMVn5GpJapkjH75dxDE9S2CePvdj8+3P/BIfxLZ2dwviTxl4RuPDdqyw3dzpl214bVBhiQ0iIowDkhScV9+fD7/gnZ8F/gdqby6D4Zt9HubqPy53n1Bp48HklRMGGeAMAd6o/E/9iX9nr4ma1FBrGgeGDdXh8wpZSCymuyvJZorcqrnoCSmeK2WYOKSpc3L20MpYZPVpHxX8NP2HP2Q5I7j+z/jNJYa3p0ojhuptZS1kEoYnequvzL19ueCc8bvib4cfEhNR0vSdF8TeDfjN4TSZcx2/iG1nuGQHnNvNIBvI6bCM+lfU/gb/AIJ/2Pw+8VSXXgnxD4Q0/R4jvtLafw59onsD/EFmM25QflznrtGAMU74n+Bfjd4GvPtnh/wn8P8A4hW8YxLG+pPaySg9zEVA6dt5rR4tyfuPX+9YmNGC3R86w6R8WfglocenaP4F0bwrocbm6uNWvWhkkk3uxC+THJIse1QoJwPun0r6Q+D07ftAeH9ul+JvhZN4ijhH2q40vy7u6jTGD8m/IIPcH8K880n9ub4meDZrqwvfgho/h/Q7GXbdWliJb+dEC4ZlVY9kg3Enk9OO1T+H/D/w3+Ievw+Jl+Gnh/XI7yMSXd5HpVxoktj6lgGUPg8Erz6VnUi+W82vk9TWGmkT6M+EdsvgXUp9L1HxHBqF1DGqDGntGISFGW3t1znJ44JI7U/4g/su/Df4l6pNqHiDw1pOtXxUPi5z+9xzlUwvzd/Q1z3i/wAKXC+Evs+g+EdN1uxa2UR6efEFzbzRHrklnbI5x/Pmsr4a/s1XOp2v9pa1pNvpl9OpC6dJevctEF9XJzt9MV58pQWrN1GTVtznvEsvg/wt4ttLfRfh7p+nIGMKaiYJLfyh0AbbEQnODhiRyeT1rO8QfDX4q6XcalH4T0PwnqlrqSfK1z4ijW4tsDOVATBQ9fWvYLi/8d+DNNW0h022uIY4WFrbpqOZl2jhFDckhRx34rzrW/2qfEnh26mI+F/i661S1XznP9l+Yp7539xnH4Zqqc7awt89fzH7Mzfg34R+NVtbm48Ww6Xpd00nkPNbXcMvnQ9toRGwfbdXqmsanrXwj8OSXN1Daa1o0MckkiWs6i5diMgqjlVPuSenauw0bWmvtEs9RnjuLNdRWJI4grLcKzjIQ7egGOtXo9OF9K00jx+ZG2A0ihijdvmb3rGVRyd5Wv6CUmlZHyv4r/4KMfDLSreVW8FXeuNICsv2OK2Zg391ecMf91jXf/Af42eC/wBomw8ux8DX2n6bGEDnULHygHbnYqg4PJx9feu9179mn4e+L79bjVfB/hWS/h3SR3C2UcEuT0JZFXJB9Sa0kjt/A3h2BbmGFbdZVt1FhCUZtxChsLg456g8da0qVKbjyxj87shU3e9z57+M37MXwZfxGlxqdvf+B9QuCyx3ENpP9juGB6OHjKc+lX/D/wDwT0+Hd9a2l1pdzoM0LfvFuIE8icN3KtFJg5z0wMZ9qqftU/8ABOSP44+K7DW9K8QarGscpNxZavqM9xCF/wCmOGwhPvXT/BT9h+1+G3h282zX1neXEaosNvf/AOjllyQcncQSQOfY8c10SqQUElN+hEab5m2jhvjn+wToOlyK2l+M9G0Sa9AEMPiBI513/wCwzMjHPoM1y/hf9gzxlYeGf7Hmm8Hz2xkJttWsrq6t1lPsi7wQM/Svd/EHgnxXNaw6XNfXz2KqGu4Jlg1SC4jP8IWRcfnyK6HwF4c0nTbWS1s/D01lIWMUwMRt1UYGSgGBgDHAA6mp+sVEvdkP2Kvdo+UdF/4Ji+d43ktfGPgySRZkIXxD4avtkz5671Dgjj/Zr1z4a/8ABPLw94K0+4VfH3xPvv3bW9qJ9Zlh+yqem3GASPcnpXsV38P7W1HlyR6gY4+UW2vZo1kHXkbs5rLuNXs3huF1DTfE1tbwlUSaC4uXklbPDFc9vrjGKKmMry3m/ToCpQWyPn3VPgR8ZvBd0dL0f7V4z0CEs1te3nidYnQZ43q6lmIP9wjPvXe/C3wt8SdKs5rfxBpHgdpHUNcXscj3VzEp6K4ZRuHt6Y69a9XGgjV18zT9X8URurDKEqyKMfxI4/rmpLee70uGaFte03zGb5Z5VCAqeQuzcR35496iVaU9/wAioxS2PL5PhXD4N1aTVLfQ4V1R080xeHbr+z2vMekMjKrk9eDmjSPiVG+vKNc8C+I7HTYI/KlvNW1C3l2dwBDvxg+pb8a9h0Ww123tWmnutKcv92S3UIGj7YPQn6Vti2kjtVkk+z3EmMSIerDtg+1R7S695XfmDjqjyjwyvw91vW1uIfB8y3GVxdwacPKt2J43tGzbc/SivVRp4gWF7VWtJFZTtUhVYZ5RuPunvRRGKe8UEt9D4d+Dn/BV3wP4nQxp4sutNuo8ebDqtrtgX/bWT+6fc5r6S8DftU6b460prq2+w6wqxlhLpl3FIrjGcg7sZ+tfgf4q0tbfQR9njjaaKLy5c4bYBzk46dK5rQ/GPiTwXci50bWNQ0663K3mQXLxsOQc5BHSvrIwwtTdWOWdGcdj+j21+MPhm9sftF1f/wBnpnYxuBhUb0Lj5fyNdBpWsW+qQxNYXkN1HMu+No/nDD147V+Ifwh/4KKfFbwR9hhudcfxBp0pMbQ3kauc9PvAA45HOSa9+8Af8FdbFT9n8U+HLi0ktRhrnTZ93GeDtbnGR0BrlqZdCb/du/4BGUon6lyWU9xAVkaO4VTlt8fT1wMViSeClTU47m3heO4RgWa2cx7h/tYPI9sdcV8nfCD/AIKc/D34jpHFp/jqBbhyFW11hPLYH0DGvovRf2hl+x28s2nLNYzLlZ7ObzQcd8DjHWuKWVyWsomixDW5ra34B1DWNcs7p9S1CO3tXJaGOfy0mz/fAClgPQmrMXhe+tJLeVI7U+XuVzHI3nYOQu07lUepyD0GO9LpHxY0DXRuW/8AsueT9pTy8V0UNhHqK+ZFPHJCxHzwyBhzjnjtzXmVMC09bnRDFe6cza+HR4c1H7a1nIrXW17iSe88wI+MYUZOPXjitZ5re4ik/wBIXbGPnAccdwuc47/rV46ZvjKfNKvcMdwxVVdE3mTAjt95PKKM/XFKVJrRFKonuNtraDT02xi3XccoerD8MZNQpBca350hmjkjyfl8hTkjjjep9OgWmXGiTSlY9y7FYO+B/rSOmT6ewpg1o6PcSbdPdmRS3mKRkv2H0H8qwUeU05k1ZFPU01S7SOF7jEK5MjC3WPygOnyMmc/7teV/EP8AY8tvjJ4pt9Q8QeIteu1jkcwwPLt8vnG3y92zbx8uF34PUmu8fVtW8RXKv9uvLWWzz/o0VuHWcE9Du6n3FdQvia5tprdprG4EkyMZGIXZCqnGDj9MdKxlZq7vcuOisjyDxZ8Cvh9A1joM21ZLWMSMiofNEZONmdvzAnqDyK7n4afC/RfDVr5Hh/SX8Lw2lzJCQ9vCPtw6mQYJOMsw+bB46VuaDBa3dq1xtSYSSPJvQPCu3PQg9cfWtDTreGa4kZI7cPDJiLA9RzWlNaXY5GzcXaR6d5KJ9oZEKrv+4vHO4gcA+vOKZ/bMlisZngtrafZuRSRFG/HA8xgB+dZotmgeeKOORWmwWljuDycZxjtisue31C1sWtyqSXD/ADokg3whgOOW5/EUpSjHaKIUX3OicyebP9o2r5aq+VmWVJNwy2Co/h+o9s1DbWN1dwj7HcQ2rq2GkeLzFI9cbgc1h+Fdd1nV9Lj+3aetncxZWQLOHWRMDJA6fe6Ve1dWn1Bcz3EMW7DMrBFUYpc0ktQ5fMdq/wAJNJ8ewGHxBa6PrkJcKpbT4ty9eGYszD8Dn9azvDPwb0L4Ua3LdaLY3FvIxIECXW6EDHO0O2APbit66tpYorOW3sDJn/WPHN5eQB94/wB5qswrcRQNLceWidQJmG4fh3raLXLdGeqepVg8UskW2GxFrtfH+m5VFHfAXO4+mM1zvjb4r32na19h0Xwz4i10qyrLLbtFDbr0zuaQrwOvHNbUsFxqmpK01iFSFjNbO6OVY4IJJ6Y5FakM9w9lJbwTRtNjPyplQO/+TUc7ehe2pWGv3lrcQJNDbqZhlVt3JdhgZymM4HTp2PbFWrvVF0q2uF+8yr/qg2GOe4HXA9agGqTK8kn2Wx2xMqZdwCQf4hjnk8Y9qz9U1+/gk3fYbaTznEG5N22Ju7k/3SOMVd2loTJXdzZ0vV5Li33TeTDIq7CTIDnHT26Y570+OZpZ/M88bBtBG0qzM3TrXN69omsX8X7jytNXzAivZyfvDECpIZm5A6gY7Yo1j4naf4ct4ZtYs7jTcS+Xw+9UIYbSdoPUEGj2kVow9m3sdRdaX9ruIS32f7PnLqcGR/TBHFFzp5a5haPb8jYEkj7ePqBj8azrPxRpeqW7SW4kO37wkhZG/I9fwp9jLeaxrdrdWt1DDpIgKtbtCVld8/eDk4x7ba05omfK7ljUfOurLFrKtrdScqjruUYPTbwf0qvYBWudt1Fsu4+ZcQusLA8ZBOB+Gc1LaHVLTVgztb+UwKSmQBmIzwVOOKu2+nFrll8wxxNjEZUMOuTj60cpWwCQSxt5MLOynaGK/IF+ua83+JHwk8E/FySa21zwJ4f1vyGAlku7VG8tSQCyOAzk+xH5da9GB8mVxnaUycoSAB/Kqc+v2dzAkn2yNreGQJMYZf4t+0Bv+B4/I0SsrS6kx1Vmebj9ir4eSaRJBZaK+j2BAKQ205haID+X4VxfiT/gm98J/GUubzTtYu5o/mR7jWJZPMwD8pUsAQfTj9DX0VPeGGF5h+8ZhkoGyXA4HNU5XiSCP/SpFZXJfJ3Bzkjj6dM0nKT6tejH0sfOvhv/AIJ5eHfAOkQyaHPFoesrKzJNGAsCKT8o2M7DKjg4OTXovw9+BHjCwlX+3vF0ep2cKBI47e3MZOSfmZyo9BgD3rv76y3anHJKyyGNcb0X5Hz2x6+9OvbeGxtbZkaQxZ34kYk5z0/D0p88n/Eba89fzHfsrGbd/D9jeSTfa7qRtgUB7suvHojcAn1NYs3gPRfGiXen3tjrRihXypJZFCRuG5+QEZIGSMkeuCa7iw8S29zCqw7JpMbigT5wvZiOuPempOu/P7xRtO9XTOCfc/hxUypwvzLb1EpT6ngmsf8ABOrw5qniZNSj8VfELTbe2U7bK01cxxsffjcQK7PwF+zjdfDGSZtN8WeMdQ7RxX14LiIp/d2OARxjmu6tL4tLva4kVYXARDHg+5rWsrpZ47hyzSQs3B34bPTj0rb2k2tJu3bT/IXvLUztEe5hiWO8GyXaR+6myAR0IGSTk4HSoNQsLXV5pLW8W2nxFlGk2uXUHkc8gj8Kv6vdXcVpJLawrIqjkbvlUYx0PXrXPeB9Nm8H2LQOi3zRvII5JmWNVUncQNvYA8Vz1XHd6/15Fxucd8av2avAvxt09bXX/D+m3lm5batqFt5ZAB/EVGCPfBP1rjPhx/wTZ+HHwf8AFceq+FbPVvD8LRfZ57AXu+3ux/efduzXt+q6odE0Zbq3i8y5Z1VVDLH5W843/N2TrjvVuJVmCzS3n2iRQBGq8xrkcUQlpdN2fQXKtNDhdR/ZR+HuqyN9o8J6PqC3RCBbqyikht3B6hf4R7rk1m3X7HPwp1Oye3m+HvhaTeu7atrGnljpkcZX69a9GmkK2UyXDR7mG4lDhVx0pmjWT2tzfBzI77FVVBDG5/D0qW1ey/N/5g49T5+8YfsZ3lrcN/wq/wAaah4PvoQI1t7jUZZrIAAkBInZlaPj7wAIOOKufCXwR+0h4Mi+w6xqHw11i33FmvvtjCU56nasAwfY17w+nTX5X7Y1wyJt8u3kWPy4l6bPu5xk5x61es9LREYw2sNusgztRQrt9CBW1PEVkuW/4ImcVucXo3hHVtUWztvE1zZ6wIpTJOfJDZXbwn3cEZ5B4OVHIGc0fir+z/4J8bfYRqunw2j2qNFbzxztaTLnkhJUYFSe47+td9p8DJczfvZGTf3fI44Iqe8g+0nzNsc0C8bWXvQ4t+91F7RbI84+GvwCX4X6jcLo+veIFspBn7JfakL2DaenDAuvfHPP4V6VFYpZWqrsy02MlI0j/EnPI9hz7ViXvizT/DP/AB+3iR7TjcMu7ZOAp47dvqa1NL1y21NmdZGlVX2nngfpTi9LSf4hLUzrzS5tPsJ7iGSKS+jBEJYDG4k/KpJGM981T0Lw/eajE7eINNsYLhQyhYZlkG088DAH4fzrY1edQtwrO2I3AUmI/N3J/CqelXWm3/neXH/aUtrKpRjksp+hxxWUuWLtEvoUTbafaeJbht6rPvRWmWIbIIz0jyvTceTnByT2xUuo+EIvENtJqF5ZLeTByIrS4m2xooOPvrk+4B/Gt3VNN/tGSWVY2jkmYkLtVV9OQOOMVQlSa2ihh8mSRY8GRV5UtnFEo66hzaWicb4k+H2pWVwJtB8Q3WmXcM3mw2GpRi+sXX5hgJkPGWBHzI46/dHQdppmq3Fvofn6lIsU8CNK4tlPlRlRk4zlscHjk/Wpbi9A2N5cAbAY7uMH055qu9/fW2pyfZYLeWER7n8uf7pONuV64JyKPdWoldi319a2WnQ6hceYbeQxsxhs5pJFdslQUQMUwP7xFVpLmDVNLZfM3KS0gjZSr5HIyDg1e8PaVtjlvfs4t55ADLGr/KSOhIxzVO5ktdTtHuoVjmgZSwmRxInGQ2MHnuP060nTafvPQehn6x4tt9Nt4TdSPp32iVLWJY181p2YEKR3XPXjkYqbRNBbStP+y7rl2aRXLTXDTlm53bd4yF2549an07Vf7VD/AGeGO7jupj5hY4aFccZXsB6jmpZVaG4jt7q4+zrtLRsG6kcnHrwDUezd79B+0urElxo7O0EbLJ9n8zMigDZKf4QQehB9OKo3PgeWbVprxdcvrWG4kbdYGOM20fQFiCobkAYweMH15vx30cshW2u/tSr1CDepx1GegNRac11dS3DXiwSQxti2kEflyEHrn1xj8apctrsWpVtLZdLdre3miupGcsgmlMuSeSBg8AemPxrQng+25i2srH9637zcGBwD8udwxj0yc+1QtpEbtHOsy280coJZogzOvdfb6iruo6d9ltlZCvl5bYyMSyE9APYdauMW1cjqZk9sNNullk8kmPgpu2kD8etSTarGLqNlhmfzOQN/B/4D/WqemOsjxQ3E1xdT2+U/eLw3fk4rUfyJIWbZzuyEVgNpAHI+v9Kajcd7bjVmeS8LrGqwtyAZNrBj1BUisvxF4L8L2N61xeadYpLcSACdY/NMxAAHYjgADoOlaBttRtS08Mcc+Tv8veQM/Wm6PpMtrctutI1WbMsrvNuUMew+nSpi3f3R2VtSOe2t1htvslu7W9qSQoHlMh9gOCPwFR6Jr1pq0KqrM0tvM1vyB5kTKcEMF54x3FWLa9jtdSW2K3CNI24eXJhT9O1NbUJJLq4la3H2VgjRTJLu8w4AYOuBhgfzon0bFFF6/wBRuGuNsflzwhPnBGNx+vSiqxkj06xuLiO8iyo3KrcKg9TRWnLN6lRslY/ni8baNosel2N9Ha6jo8samK+8yUTMyEHaVUYDe+SPxrm9J+H2qeMrKWO30mRfLIMD5y14mRhlUdOvTtXpnifw5LcRXEN0z+Wo2ZkT7wzxWbHNa3bQ2s0FxbyYCwyQSlRIu4dCO49O/evWp1Uti5U3zWMvQxJpnhRbaJIb24tb0puVSk8LArnKsB054PPsKr/EzU4zrbNFdQsViUGM4XeMk5z0OD15zXceGdXGueIVg1lrG4SSRXklaLdv29NwPfjBYYJ71zP7QXh+1uGhtbeyhtYZlkkV7eTdxvz9052/hiqlU99OW4nT0PNIrWey0ye+jRf9HnViytwpY9gfX6V3fw6+OvjfwnraX2g+INX0pZIzlI7tmjYggfdJwOnYHpXH6J8NtR1DUJMTM1iI44t7ttRSefm9xVhfA99oWqrBZX8N0yv5ZCk7QWPbPWu361NLRnP7NPc+ifAP/BWv4l+BNcXTfF1tpviW3hPDuoW4AI6hhgHjsRX0P8Bv+CrXw/1+SX7RJrfhTVpJVaGInZC78AkbXYMxx90gAccnJx+Z/irwpeSeIZpbi3kEzcEnJ6D1HGKiOnXVnb+YwaE+WGTOWUdDvB9v610wxVOatWRhUw9tUfvf8Mv2zLDxrpqSaf4kt5Z5EDJaajJFlsDB4UhgCa9L8MfH1byBW1TSo7ORnKrJaSm4hlXA+cMQMZJI28/dznnj+d7TNX1qaKG4h1C50+8jjIN6SwBHZiR29q9N+Cv7dPxG+Fvh5bex8W6hf+XMV/fL5lq68DI3fQjAPas/qlB6qVvIh83U/oF0nx7o2tp/o+oQvIx/1ZPlt+R5q4Y1uBuW3uG3cnsB+J/pX47/AA2/4LIah4dvbe08XeG7bUF3Z8+wcwybcckq24flivqz4Ef8FK/h/wCKLWO4s/E11o0lwQPst7ISsXbBDE46Z49azqZW2uaCuifbOJ9tR6NGW4RQzcgN822o7zSUEQCxzRkrjKKeOegPpXnPgL9pa38WSLJaz6Zq1tIPv2s4cn8AeK6yD9oHw7a6lDZXx+yzTJvjEiH5lFebLL3HRxNY15DdS02OS8k/0iZUlTZKryHaR6Ac4qnb6LbRsYbq3n1FVMciytIi4KjA4XGP1rrBq+n+IAfs8lrdbhuCgfMPqO1I2gWdywMyxhy3QNxXJPCpOxusQ1uc5DqjX115dutvb3cY4dgXyc9B65HFWLm7vJZY7ZVWGZhtWSTCKQevTdzWlc+EdP3tiNGUjGMniobfwlYm1WCOJ441k37RKcVzywsujNI4hMo2trcWdxcSSSW/kH9yIhOCRgH5+gyxY42g4wc57VPcXlvZmS3Vg802cDILdPTPTNL4h8M3F5ZTDTryGC5XJiMyAqp4Pbp9RXC6taa/4XuHMekX2oNGpZ5bRlmyScnGSCK52uR2Z0U5Kex2WkX9xGtm9xdQySSKRIIs+UG5yMnBxk+lakl1POW8qO0a2lU7ty7nP05rx2f9pzVIvF2n6PeeDbqGxu4WEt20jI0G0j7wIA555HpXaaV8bdP1OGMwwyNbxrgNkbY1HBye+KUVeN1saShK/c2rLRrG5v4pY9rXEZKmW3DxlemRx3HHcVrLJeW+4SXMRshhWM0b5bJx1zz+Ncnovjy31ESN9nWKH5vLKvlGU9WLL36fnWXq3iYWOltJp8EmqTEkIiTFY1PbLE8Vn7pPspM9Ehu9NgsHSS1vtuQxRhgRBScHjJxnPQmm2LQW6RzedJNG6lEcB/3WTkY4PP17V5Tqv7S3hfwhFLHqba1b6rawo8lpHYSXTndgZDplWG44qTTP2k/C5lurRrPXYbiNTIp/s2RRKw9D+mPWtoRlujNxadj1u41X/hHreea4vN7KNyHaCUJGchc5Ofy5HSsL/hIbOxhWZoZJI2bdNOtvJIxznHIDBucccVx3hPxRL46+KF5Db6Rrllomk6cqs10jRfaZzIeVY5yMZHHpXX3ds13dMsLSSW4Vd8Qb5MduB396mpC7uyo6O5g/EDxj4pmu44fDdhb20Myxbr/UoZsR5AwEgCq7e5JX6mugsdP8UWlq1xdzQ6pdbQv2W0uxBbyOvdPMXcg/2AG+tC6CAZI7eVJJFchlXPmDDc5JBJxnH4VBqmq6m2lXM1jZpJNAsggLxfNK4UEIM8KTkDNZ8yj8TNZSurRJNN8W+J7wXEF14bmshGfk83VYmRh7MgY/yre81IjG0i/P5XJWcSqjHt1B+tcxZ+MLyXTFgl093uGw8sSgTNAe4zwODxRF43t7R3hENxZuuWZ3td8ak9cle4raNTTWRhKnJ9DpNa1K3sbWORtTvLNlTaY7Ub1kJPoQ345xRpmhJpV3M1vezStdssxaaYsxPGQFKlV556evQmsW9vbr7dI631ldW8j/AOp5Rg7fdOQSdo9DReifTyNkkbssgHyMWzyBxjr170SmpPUajyx0Ogme2a5kjaaBZFX5/mYZ5yc4A4p2gxXi6cq3X9kzM3AkhZljk69FYk5Hrn1rH0vUrqZJWa3juGVyHwPvL27dKsJeRmCMmxYNgDyl6IGYc7unFHPFLUhp2NSS4a3i8lrOGXLfNskARf8Aaz1BH0qvaaU2pWMSxzPcOzgN5b5WRN2e2QCMfU+3Nc14m8Sw+GruNhbyyLI+FWIeYWAPPy4JOa39H1qzFlHc2LX0MchO5ZAylTn+4TlR+Azn2rS/MrhKNia50G4N9JM01skgXy8NagPjPXOSefTke9WmeRIFhYNGV6Bo8o3+6w6/iKb/AGvY38nlyNvZwQ2wl3GOuf7v161RtJ7W0tR5N9cLJNnyY3Y7mUdfvHPHqTUqNthSbe5pxxQ3DeZ81uyr86yFUAXuQc4/Wue8T+OvDOkxtHea5pNvHafvWaG+DTj6ogJPXsDWjJr1vDcLItv9qk24VYlDMy9zStALuaGZoZLRYmI2suyV8jjn09qmpKVlyjha+pViSW50WS40nUmvDOP3QvW/dMDg5BCkjj2rO1zSPELW8cml6lYWcc0QBaaJpJIZ953DaFIdMfLztP8AOuhk1K3s5mVrfcyHcXYEgnr19cVi6h47k1nTJGtNPuYbh4f3eYz8rEkhWx0wT1puCSux8zvoY/hweNrvxDdT634f8Mrpv2UrJJY6hLJd3zAYUfZnGyLcxAJDkCtPTIrp9Ot5LfRYbG5m+/aSXXmJD82MbkDZI56ZHvUOj3GrJ4dhOpyLJeW5DSRWCMqt1xkH73JBIJwSKdfpf6pqTtDea1pd1EwMjrGrQyLu+6VPUcjketZc60RerJvFuu/8ITojS34tpIGlVYxFv+YswAP3eQvU5wMA81o6XZLFa+ctnDJJbOu1xc5Cs2cZP9Kpat4n+x6Q91eW955FjGzs8UPmSTMvzYROpOB93v0qro/jZPETTW/+lWS8GJJo9qtlQ24D169elGt7oUo6F+7tb67eZfM37s/I4MfI4O1+eB6+uOKI9FkvfD0kF9eedIzYDCT7OETI2jK7iT6t39KtWWrXt/CkMkaTRYO2WOcKfrz09T64rL1PWY5tREMYkvLcjyn8qTcMn1GM496HUje7FC+x1CQtptr+8u4US3GFfHOBj7x7/hnNVY7+OUBkkkfc4CyMqhWz3HPT68+1Ztn4aks7mS/F5b2kcUGCbiLiJs9c/wB3AP44omuJdbkWSx+zxw28X+uGGW577l5/nWvNpZGaikzQNq+pwSFSsKu3lx3CR/vFPO7Ckc9BVSZtPsp1tLfWP9OVTK1tJgM2DhmAzx/jVDSrmSxi+aG9jmafdtLE7hgYO7sDzxUeoeJ4dHE1xeWUkc2SofaAH7/fA7D1IqU0tyuS+x0X2OaArNJOw2uwhXGFkGByTnjnjBHpQbXyoY5LmNnOMhGGCG/z71yukeI9S1e4l1dry0Sx8xVNq0QmWeDcGGGBxubjntjmtiy1ma6uZ4Z4Io1To8cm7a2MlSOce1NVFfYUqckjSv8AxJ9gJW4FrEzR+YC8/CqOCcVn3niOKFLd11CwKTlgoClmkG3I2nIA59SM47mob2wM2u291bTfZZI1PmRgYW5GACpyCOMjIHr6g1j6r8PdHm1uC8XTzY30Enmu9qDGs5IwA4yQyjrjjpRUqttXFGmjpYFsbSVZGaRzGdkpkUthj0+XqPp2pNSs45r/AO2WNxDY3UYKyboQ8c390EZU/L1HNZOuyS3E81rb3UNjPCu0IiHCkNz/AIHNO0q2kutFmkjt7iOfzzgyY8uXBwcfzqZSi48rK5bBc65Lo0Ah1SbTdPW4TEcqX8scg+qtF/7Oax/DWkXmj35aDUPtOkXKbkhTbC6tg/6oKdmSTu3sQD3Uda6PStJsTF5ay4k2hjhzgZ7Ag/zpGms4naG8kmkWNicuWKqMc4/2cVn7PS1ytSxaspt4bhWktrhlKtHI6Ofo+3v9Mj3qje+FovE6+Y1xExhlB2ToJNnfC54B9jUOkXllNLG1nfzySL/pGwj5yD1Vl/lU0niZp55FTR0csS7SD5V3DkbufbH1NbQWlmyZRtqiwLW4tbyRZLvyUOSEt4lLMvuOqkegJFQ2egWenaxeahsvLd9QVBM8rsquEBVSASQpIPIAX17VfttYjtoBJeSHZKm4x7Awh9drDk0uua7YaZpkmp3txDa2OnpueeZ/LjhT+8eefxrX2cehlzvqOjnkWzbZDuZV+WV5VZR7jpn8M1V1fWbiOwhSGMsJnCvMqGMxkc7ueCv0JPtzWPqGuWelXq/Ldz28ipdRyW77oZ0buAT8oA9ODV2PTI9esob+SaW1QszR2pGZIskAP6DIU8e9ROo9i407+8xdYgjvzZvdSQtGVLxzNIw3dtvyHv71I1tvt5nZIvs5G6I+ecDbgH+DPOcipblvstsWtYfM2PlEkXKsfUZ/Gq3iDxLJoemNNHpl1dMhAENugZolx0OeD07U0na7DS9kX9LuF0aXiSS4t4f9WkY3yE4yQVH6VB4f+L+l+OdD+2aXZSNbtM0DR3MElu25SVZSGXIIYHrxjkZBFZHhjxRdaxqIvlgl0+1ZvLCTQmMiQH7x710MlwPsl0y/Zpbu1OGUgruU9Tx1bHQmnTn7tomcqdncxopLq91C11W+tp9Na1SSI20Fw0tqQx4ZlXG/244rYuJLdws3mZklbzEglUhlz6rjnj9arWSfYr6Sdbl2jaEgwqokPHUg9c1C/iiO8gZrFmtfKIbdKh2MR2OeTmqjr8RRLqFzo+pwbZ2eFbNs48rCgdwfUGikbxt9qdwbFGwgEnlgHcT7UVQH40eOvgl4s0mTUo9U0PVrX7Kp3MYXQDaeSrH5W9Rg1x+kS2MwhRreHdaDZHPEWUgk+/BPrj8q+7/2MviD8QviH8LLBvE0kOsx26Rx2up/Z2tY71VQKX8tgDx2yOa9S+Inwd8A+L9DvIda0fQ5r54m8qaGz8mcuVO071A5DY9c1zVsRUoy195fd+Z63Imz8wJfCkZ8RC+WNlkjxGQBjIz3GOg657+1ZnjPw/HfPJ50UvmLFJscABS2c7uADjtjPfOex+pvij+wsbfQLfUvAutXWoX1qhFzY3ULK0jDhhG5wG+hrwnUfhx4t0LUtmt+GdctbWKBvOZ4HaNRu6kgED1rWjjIzV9jOVFrQ8QijhtL6ZoZCsG3e8ayHy8++etZd352jeIo9SDXE1tP8sltG5VWiIIZRxwTkc9sV092tjPqtxZ/u2kiJdUHQjPFZ2rRTNHJDA0gXygwVTwD/nNepTrKykmjnlR6WItH+Odram40uPwvpkmlxKBGs6t9pTau3iQck98kY9qo+JvEWk32kytZtNo8mF3NcJ5qY9GwMkntgVmNA8O7b+7adCGYjDD8aiWwcXQhZfNXyS7MBnPTr/T8a6Y1YS1OWdOxMuoeJp9PYQxWOoae67FmCK3kjH3zGDuC/gfpXK6bo11HfCSYtcTI5Upbr8vr6gDr0wDW/p/iBrh7qyQfN5JCy7tskX+6fX2praNDAsc0h/fg/K5G0kdOT1zwT+NdHtHHciNMw9YMjXbSeXmaEkgKdvHTHWsiO8uoUffvjYE8spyAOPU119ndXw16KHK3kMp2hboCZfwPWpM6Pcz+dcaLJayQ3JgVrKcjfk85V/lI3Z961p1uUz9npdlT4ffGfXvhohm0/XNR0q4ypjaG4ZGfn1BwPx619O/DL/grB8RvCiWser6hZ+JrGE4P9qWwE0u3phlORjGO+epzXyX4p8JWckjQ2+qWbTC4A+zy5hcjrjoQSPqKy21cWrLHeQj7RM++N/Mx5OOCAvQiu2OKbiluZey7H65/Cz/grV8P/H0VvJ4ht7zw7e3Lq7PE7vHCw7hkHT2Ir3b4T/ttaD44Nuuk/EXw5cySwJLHHPIqzPEeiyIxUhvcE/Svwc0TWmsrieFZohHKjSfeI3Y/hx/ePpXVyQeVAFiKxi32GHLj5lK5GccetZVIUFK70f8AXclRkf0PWPxzWc26yWcMwY4MkU21SP7w6/rgepFbHhT4oaT4rlaOK6aCRHKMk0TJtYdQGIwfqDX4B+Bf2pfH3wyjtRofjHWLXawjSI3BkhTJxwjZFe9fCn/gtL438O3cNn4o0vTdaj2bVuY08mViOpOOCT9Kw/s2nUfNGX4WK5nE/ap7K2ni3echbbnCfeHbkZ71T+ySJEu2KSNgflZ1GcfhivgH4F/8FX/AfxGNvPqur3vhK4OY5Irk70yP7sijkH3FfUHw6/af0nxm0L6R4s0XXYbrmOFbtGY+2CQ36VyVMtmtUrruEaz3Z6fqGnahqT+XJ5MkbN90oGyPz4/Wub1v4R2YmaSa3jjkkbhrfEJVf7uMkHPrgV0Nj8QYpJv9It5IVHIaBdy/me3/ANatqy8VaXqE6qzRu7Dq5G0fU9q836mpaM2jimtUea6X8LL7QjJJperSWStkmGYq0Zz15AOM4HbtWxF8HNWvdG2rqekxXUhL5hjkWTpxtbIQ/Uj8O9ejpBb3sTx/Z4ZN3oMr+Ypg0eW3lwkrovBC7ty/TFZVMqg17rsUsfJPU8hsPBdppSQ2+sfbPtEbFYEW/wDssSkY3Mc7dwYqp27jyDyc4F5NHmkLWd1NJJHI/mKsWcnPJYEjhRgfxH6nNega3ov9p2wjuobW8t1+Z45bcSDAAAxnocg9PWud1K0tWvrQTRXduJVeOMwZVbb3bnj2x0rmnl0oL3Xc6Y45PQ5PSPBH/CMWqQ2+oXk5jH2eJrqd4wFzz8wLZ5Gct6ngdum8OQ6gNNf7ZrUd9G2cGGDy8Y/h9zV+5026mVY9OWyuokGx/tQZvN+UDJK/nk1gf2T4w0L55rfTxbRncsdjEck+7ZrmVOrGW2hsq0WrNmfpXj+y1zX9Z+yzaxa/2TPFbzT3Vs1vE7yBT5cWTmVuQCVG3n72K6a10jVoFk+0RX8iq29lZD8qAgtnDHnGRjvkelc7H4w1CG/lj1aGzh0+V9iKfm+cOAUZTwM/KPasSPX9P07x9e2mn39/azXHlSy26Fpo9zkgbCxIyMAFRwBUe85WZbimvdPRdK1JIdJjM1jcRthv3aXQaM4cg/NtLHcfm7YzjnrWVfX7FpZpi3mxtt+z+V5rxIenK5Yr78mqx1OwjnmkXYsNr80RnbdIUHU8e9ZvjDx9YwWENxIrNcTSp5IXKtgMMFQvI/HrWkOTcnlfQsaHFHPqdxMsK26tndNGhjDMP4m74Hp3q1a6XqttLItpqFjJDcSIythk2DPJyF4ycdc+nfNY/hjxXa2GoTKmo3V4sEfkbHk3KOeZNv8Ae9q66O8a9kLedbTQwqsZCxlJ2Y/MABnBHTmnGS3TCV9hrWc1nHukuU86U+WqRSEKR6EsMEVWW6g0q5nZpJo5FAizEmUibaTweAc4ps2plrMpPazySRYaMrHu/i7jPUV0/hi9jh0q4mvoJYZXjwUCblVsnBJHGCBxx60pNsm3c5zwxerYXFvJGLHbLwUQkyEnnc5LY7dMV0Osx3UEStJHt2HK+UQ4YEBuAuO5A5/u+/FG81VtPvWm+xQ6hCzYLW4AaIjjGCMk8VXuPiNDFBaPsuoXaQj7NIojlBIO047jjHFa05JaEyuy9e3c0mgzTWa2tvcNGJPOuICsZbPIcBhn6Z5rn/DAvbmSOHXNa0vWL1g5MthaNCsZY/KoR2cD5cAnd2rW1A6X4ptbddWt5JoVbc6FztYr8w+XqTmq99rugWRWO1/0ULIoWONQ6sx56diM1L5r3lsUlpsdFaeDLUHy1jW3SSMliHIwvfBzx9KvaF4eXR4Gjt72O4tcll81Q3lg84BJJ79a5aDX9OggupRcM0kkmEZjiGL2Y54/+vVKyvr6ezuhcWaNeRMRFItx/osinlNrLnOeB7Hjrmj21OOtjP2cm9zW1zR7eX+0I4tWmzcOjPAs3Ruh2HC4yOMZx7VVt9PmtLq4SOG9m+xyeWJWcbyWHVmyFx39q5/R/F9ncas2n3fh/VtM1Y2r3TytGJbdVXORnOCenTkZqpDq+p3rRmw1rT5LeR/LEDIyySY4ysvQn6jFKXJLUr2cjo5dD1LT7eSdri7/ALSbCxzTLHKYVzu2EBVXYcY5BPOc1avPEmpPb6XI2nWVtNcIYrmG4kby4Z1UD5ZOrRllwAFzjBxzgVP7J1TRILfErTW6xmSfzLjeC2CMEnnrVLVLN7/WdBuNW1f+xLXTZjK8UMytHdqVIxJuHK88cZ4FZ6Q2DqdBcySCznkWFrqSaL5jFKIW8wDkHfwVGflwFzjk1z8qrpupi6mjv0jaby1heGIeWDkZG0BwOnJJ+tbF34r8MeFbu1ja5kt0uo5bjLBZRKidWGMcDcp9MVNomsnxZY3c0cd1DZrKUSG+t1gOV4LKecqetK/M9BrYd4fsLS7Fwq2vlzLEF2JKG3Ek7T37q3ft+FR2/huSaSD7PfeY1ux3MvymVc/MvHb+dULa202+vboLaT2d48RjE8OTJmP5lLMDlgGwcHjk1pab4w0218TDT21SMNlkjtXt2R2bjAVjwQPX3rfljKPLIjmaehZ1q3jW/jmhs5v9HwnlrcGNGznPyMx3Dnpnt09K9prbraXKzaXHbyRkiFfO3I47HoMfTmptTa1ksJY9S1KGGQsQpifO0ehPb6/41lnXtI1WwurzTWnvFUC1WSOJpRG4HDFePlB5LVMo8nUF7ysamr+MLeOWztbhEj/tCFpY2VtsbMm0FSx4Undxk9u+TjFv4I9ThWKz1aa3sgHa4j8hZvMGOBvY4XB5I2tkccdawU8K6h8WdCubHxLY6XaaSsyFPKnNwNSjGSJFC4MZ3AYB9TXSaXp9pZg2DSI0eGjj28eXtHIPpgfnRdrc05UvhOF8N+EPENjd/Z4bnwHdeH5GKQyC0ubNsAA4MSSNEz8/ewueOOK7Cx8LPoV9byeH9N0lbO+mLak73T25gO3G5FVSH59WGK2PCegLZWyT/amktXVmSFo9jKO3HcH3qvq2gWVzfw3EkZtpEiYJ5T7MqeTuHTH1os7XZPMpMb4g8S6YLqLT5vJjup4y4gW42uVyQWBUgnJ3ZOR2NQxWkZsbazsorvT1tzlH8xpQ49HZmLE++az1n0+/1mzuFi0m6W3h8uB0uEaRZD1P07YzjjNah1C9WF2mSD7bGxREEqkScdMDuKnmbRL0Ld5E9urKtyC0uE+ZSrNwTt3Z5GAPTk9e9ZFq2qafqFsqy2qxrOS/moFkcEYCKQcJ67vmqRPBUk10t/cXNxBMCVaOGXgqcEkjuNw49jXP2vwvvH1S6vLzUNRmN9MJdqXO5YwDgKiHhQepFKTe5pGz3JIbxLLWhMpjazuQ6TTSlo4kHdAAAGJboSTwOlaF74n0fTrGEXdzcWcbSAK5uNiyhsAKpCkjOcduvUda0JdDs00cQ3cE15GHVxCUO3cv3CF6cdfxo1AxGJvs9xb7UI3ZRT5WOcHrgily636E83kUvD9nY2+jTX2mjUn068ZUaCSVmKhTy0fzHAPvmn2uraXdQ/aYYJpFkkKxsSNyY4ODkcg54I5xVW9n021lslvGhtprzIjV5SscjLyQo3Yzmpta02zvLBYdQt47yO3lS5tvkDssgdWHTGfmGcGiXNHVIPU1pHVEltt1vO21XJ2+cGH+3jhcdxWbc6jYaNFH9ohtfssblJJGIEMgPVW+UHBGee2BW9p7edbiW5EMZZw8zMm05PTIHBqxf6bpkJkaSRp1k+faw3ISccYx0rSMJtXasZuSvoZv2+fWPJ+y/YFEgBDPbLPHKnT5TkbeMAEhsYq5pvmLL9nvJIWdQUDMcbh2x249gOo61DDq+L5rezEEkqIdkCYDBfQCnWU9jqNms95DeWl1bsC6AcjPAyPz/KtFHXcUpaGuZo7HT0UyyrG0g29GwR6e1UtXvpbXV49k7R+cqhiGVt3PoR/n17UXekRQ21rMt5NIsshWLemFznvj+dZFxqbSiWO6hk3SyGAsCOncq39armsrSEopq5qvfFdTa1LXBkkXBeUb41bsQoI/nWfcXsl5EftVqrSSsYXaGQxswUYLc/0zVK3sbvTpwumaleX00ylYEul3RxAdMkYPHrS2lpfSvG+oTSxyblTMUYVR8x3jHJ2n1681C0XKUooNP0XRdBO63t7u4kjB8r7RLLlM9fm4Gfb9a0IdQh17TZZYdOlhWPcPKvDtMpViARjOAV+bn6e9SaxoP9qMsBlxa5zJGyk7wORitGxkhmiaCx2nyxt8vgn059x0q9PhROhWtLqN4FOUsfMyirJH5ibl5HTB5+vHvRVi6svs1ixV2aFgSp4/csPX3orWMUlqZ8x8/wDifR73zbGG/wDEGqQ290gT7Jb2qqjcc8gMFHtxWe8Gj6Xb/aLG4a4uI4/L8+SL7VPCQfvDdhVx6DI4r0HTXhDG6gWS8W5bHz5WNFHotQS2dnJZyRtDp1kCxKCNvvdy3+96e9eRKm7cp7PMeQa/DBpjx3H9ntqF1IpPmtaCRVVzjcE3LGvvlWqCx8Qz6NZTW1rb3lj9sHMgCCFmA+65I25YZwFAH1r1LxZpE76cskd5pcccS7Inn+VMk9BuGM+1c1F8Bmuo5LjWGW6TPmNG7HDMOVbrgY4wK5/ZvaxrGomtTzKX4B+EPindSalrngTQdS1i8Jha6aFDNGoGOZDyq+yYNeSfE3/gnh8Mf+FktZW/i3XvC0l5HFH/AGVb2DXscBYgkRzt8ozjoc4/Cvrub4ZQpbeXdS3FxGrKY4rfCKnoGOetNu/C+j+GZnkk0+PzI1aUjcS7E4+6Scceg5/WtaejSiEnofHPxR/4I92V14c+1eEvFV5BcKGBtPEMCbpscZWSEKEB7blP1r4h8deBNa+FPjG/8P65pk2n6pYqEkWWNgrDJwyvyCp7HvX7Ia/4K0/xakdzb30VkMDzFDvI23b0IzjJ96sX9noWtCS3uPDkGrWcYEcV1PaRy+dIM/IqMC3yhc8nHPvXTRxlanO0tfIxqUYyXY/Dm70qe51h1jh+zyRR73MZDEqBz94DH4VtQWkeoQwbo2O4Z4+ZeefU8+xzX65/HD9lr4efGu2s49U8K2sjW8ZkD2yfYJChGMMUA/I14l8Qv+CZfw/1bw5dN4dbU/CN9HHhbmS4+0WluqDhnVuQGyBkf3TXof2snrOJz/V+x+dOo6FJbaxGEuW+XO0Ko4/Kr0WgM1nEpg3N5vmYz1Pvj1685r27x3+w98QPAFjc6pLptjrel2JYnULCcSNNEOkgj+8V+nNeWvq0Ol7flXy2YDdGDycdD/kY6HmvQo4iFRaNGEqU10OB8QeFY9T1+1aTbHH5u50b5ipHQe34VNrnhixitriz+wtJNEFIlYg4GPujjI/OusvdUh1K4jWNUaN2OSMHb9O9ZurWTxpM0PmSeYfnDc8jqa6+Z2VzDla3OI1PSY9EubW++wrfOzCNRKWURE8bsAjkdu3tS6Z4cmh067t/taiHzVEyyqQwYDd1G7gdBjtXSJBHLexyGPC28QLsVJyc1Jp16ix6g1wkbea2PlGC4KDBxVyrOK0BRMOLwRcajawyWM9nqkayBZY7G6Xz4xnnMbYfP0U1k+J9NbRZY1vYZ49q7uFMO31AJ5z9Ksa94ctzFFIsfzL90gfMv0PUVDYeNvE1vazW8epTXFosfFreBZ4RnrgNkj8CK3hNWu2TKncrya15luskjZaEqArS7XcYON2Mk11Hw+8bXnh3WbeZtRaxaFTLE8DsdnGQRgD5veud07VLfVYJI7jQbeCeEhhLbO0KM2O6Nnr049a3vCNjoGsWUZk1a0sr62f95aXKvChJ4xv5H57a1jiOV6Gbp20Ppj9nn/goD8Y/Dt1Z6bovi691aGa1SeOyvSLhZfmOQPM5XgZ4Ofzr6S+C3/BbBLlpLH4geE1twkvky32kEkRsAcboWLZ5HVWr4C8AeBfEGjmRoLO4ul09UYvZsLmNIzvKkyRkgKQTx14pk10uka1deSV+zs24oHx5TY/Xr9ameIi52qJP5E+xutD9mfh7/wAFF/hN8Q5Vex8fR6LLH8nk3ubUyc4AG8bc/T8e1eueEvjXdeIb5pLHXNF13SeBA8DM0h/vEuo28fSv564Nbkn8Xw2beYsay5jAJdZcs/J7V1/hL4m+Ifh5qJuvDmvaxpjWc+N1rcsmc9Rtzg/lS+r0vOPq7olx6I/oTk+I2mx7luvP/eNtVzGGTOB3znv6VowalptwFZfssnnHGWcdcf3SK/Hn4Q/8FYPHHgi9t9P8QyW3iyGSBH258u4hBBHLYwckfzr6L+G//BVvwTrsECa3Z6horM2X6TKjDjII61EsLZXg1Iiz2Z+gtpY7k3Ivl4wcovGfYdB/k1ci+02jqsk7SAjOCgbP1OK+e/hd+2FofxIs/tHhPxFBqkkbbZbdN2+NAAcshHHGf516ZoXx0uJ223mnTKOAW2Fev1HP4Vzum18SsQ/M6fXNKtb+HZdWaX8bDpJGrYycnHH/ANfpXPt4A8PRlpLHS5bK5Zt4kjfaytntuyB0x0rbi8W6bqEvzTLb3CkZV2x+BHrWlHY2us7ZAyPtYMBG479K5ZYWnPobxqSWzPMfF/wiutRRDYXCRJHwtrIQI3H0xXL33gLxJZRRx3Gn/aorckxmNwrIMg/wgfLx0wTXt9/4YhuMNmZY4xnbEwbj6HmpV0eSCJWRTGsgzumGGA9hXBUyuMtm0dEMylHpc8DR2stSim+yxwzBN9wq27bFyfmzuQ/rV6TVoIri4/sy3jmuVePETXDebIuVxIy7dqgE8eu0CvW9S0D7asiTfZzHMpjKkYLg8EVxB/Ze0GJJPsP2rSJmfKSwkvsJ6gDOcEZ4z3zXJLL6tPbVHTHHRluVfC5j8Tab5l1b6hp3kSMuLqJGkm3ZwwwwAyPUd61NG0y3gureFY5pljR44hFK6zMMghCem0YJ5PUCs3UfhH4q0G3m+yX1h4gnZw8TXOYJByTt44PU4zXPeJb/AMUaQv2nxBpupafb2o5MDeZET/wH8sn1rGV4u1maRqQnodn4g8f3/lzW9gsMtyo5N1tZEYkgBtjAlvoRWVYW1z4lit7zXEVJ4wBF5M21zzkNhiWOMdiOtctY+L9B1/UU1C6a3tLib9wEjKvJvwSM4wB6881rW/jDTbrW10r7d9pkmAd2OwPDwCqgdtwbt6VEqi2Zsqf8puC/tn1VbO6WW5uMHC7WSRQBkMzFiAfQ9PY0mk6/pum3s0d3pf2O6wnl5cMsqlgM5G487id2Bk5HAFM1m0stHsLW51G6v9Pf7T5O/wA5o2APTnGDVjxJJYHTzZXWoiSeRFYNu82QRh8s5AHbCDp3pc0oqyROz1MrWtX0fVnuIZIbG40q0mR5YtTs1kVZAc5zggdscDpzW1Ya3NGbuaO2+0szrHbmxhWFkC8FcoQGj7gYyOme1ZFzY2evuzW+66t4oNs0DNsEhX7gLYH/AI9XRL9o0pbiGOPyWCp5Kl94VTyMHvgkg+uKmNOTd5ClKG0dySFJNUTdqSL9mjVmiEzlFjGQTvOQR09TVOyuvC8sM1xpt/pO7zy+Im81XbeVwAp28MDnb2xxVdrCe98Uz2k2kaneJ9nVyC37h9xw69MZq1H4E0vQ5I4rG10+0htYiyQumxoGf7xAwOSec+pNaSVuhEd9zej1mO9Ly+W1rIoBZhllcYION2Mev3TUfiWWESQxW8DXV2Dtub2EI0cEgxkDGC4wevTg8dq57xRJqnhqGb+zbqzvYwiRNazwltzFgciTOR8uR061hv4k1S71G4sf7JnhhRkLvIViWc8ZVAPvDbj9fWqlEnl10J9CntZ9YvI7zS7rVWtRJGLxYY9kUbAK+wuwGWO3gBRWD4O+G90NYF9rOran/b2n+ZGbuC9kit9RBO5QLUSlFCjALYDHHFdZ4etbjUfFFndyXS2dvDbr/oZiRhwx3Kx6YYEA9+tdbdW1l4S8NzTfZZ7q2hBkeO3QyygdSeeW+lEaTeqkU5cmhyPh6PxJa6tN/acOmahazRovmwylZQGJz8gUEHpyxfOO3UbOsavY6a4jutKvp0upVQ+UpdYj77mJXn0rUsdY03VdFhvJFu7Oz1AJFGlzF5ZZjyoOeQ2MjFU9Tv8ARtPnYR6fFdm1fzfKCbpFOfvDHJx69qpR5dW7k83MyjfeIdN8Oah9nDRq0+RErLnzyFJ2hsdR6HH14qleXdvqV7Yzx6fdrcW7mVXjuzE+B2Yox456c59Kt6Fby6V9rmjurOSO8ma5jSaFYTaq/BDEfMx9zUt9eSX97IZrGzaxwNm07Nzc9hyCeKco331J5uxLqVneQ3S6pDeXUOnqmDpdtGFgH3cuCE3biTyOPx7V3FrpETfaLiWPcuY4lXe6E9SuAWL+oYVa0WWTxTaXHmrNbyLIuVSdgcgZHP8AnrTo/DNj9sxPHuaZvMmYOwKt0JG35qVRzSugjbYvW/jmObTgp+0PIpEb+fEEk2gDDn+WBjkGuc8RXkuo6i2mzWMl5YSyL5rIxhQRMD1Z2w2ehC8g1S8S68PD1+sB8M3jWMU3lLff8fECqVJU5JDL8x6HPrnni9M8l5qemwx6lb6feNiRUiaJGnQdflJ5UH0rKOJm3ytFezS1Q/w98OvDukWln9gtbOwiVDuhZTtQljlGyo7554/HrW3ZeGV0do4beydVuJcyy7VKxlhwQ2OR9KFih1DS2RkF9uUNK0OBlu5OD1PJ/GnRyW9nZmzt7r95sJW3kc7g3seldUYX8jF3MnUrrXGuUAvLGNbbfIyySAFowxIIwvGFHX5gfRelN0LS18RpbmHWJEfexSVQLhGJbvkbcZ7Ak4rS/sC3ECrNYwL+8IchizwdsfTjkDg1zVn8CNF8F3l9qGjTanbTXk3nLbiZpLVdo52R5+TPt3qJRlaxWnLc07rwdYw+KRqH2rVLpbcoBGGdUjAGOYy5VvwAouvDVrcyRxww6hZQ3srPi3hjjy3rjOTn070nhzSdWHiya8YrHZSwEbZP4JCRlQv3j16+1dRdxvafN+7uFUhhtj4UDrg+tTKm0rIOdnMeI7ex0rS2sbq4aSz04tI6XFv5vlH7xbO7K++D0rJ0bxBosuoyfZfkjmRZobm2VpopRlVbBLAEkPwVzgA5HGR1WuXDX16qx2JaK4OJfMVSJM9Qc/1rmYfHGl6l4lk0eGPTbO30cbCjuqpHKRg+WvAJxngduKIU2twianiXxZqK6jHZR6a12sUHmK3noi7e31/Om2GqT297fXF0jTw20KPILUbvJYgHZjdljjJyD6VVvdJmvNPmu9PvLFZpF8qBioaMAdfkOPyzTdbSPQtEht7+4+zyQ7ZEl8tlSZ9pBOVHoeMntitOZ9Q5Ub2iC11qBdQt2W4mZsqxhKtF6KQSSD61ZkuYZzI221S8ZwJGifds6nDfN7Ht3rx6DyNUt/EAj1jU9OuLxEE8Mcht7i3YjAkjYZHzDuK6nwqsOnaNb6dJqWpG8kXKzu6ySSkY+8cDk+v1onJJqyDlbOzaW5nvGVms3sT+8QrMyOh7Yzx9Rg1Xt4/tt28c0UbxFwZGScoSOcAdh37VhX0F7YaqMq19aSjCxrEzksOThumR6Gp/h1Yagt9qUOrC1Amk8+GSGNog0Z+6WB/iAwD9KJSursPZ+Zt2+m3Thlexh+wr91Vm3uVJ6cj096zrTS7/AEzVDj+z2t5iJIEXfFmBlHyPyRuHOCCPp1q5rGr6vZosOmWayyIhZZJcrCSOBkj/ACaq21vfX9gs1x9j+1AhJE3kRoQNp2fXGa0lCMmmZq9ibWvGGmeF5YV877JeXpKW0csxdZWHYDqfwq3b6tc+Ym/TI45tytJKJNqgNnPTJOOxOPpWJo1zFJ4iayvNEWG804NJY3jMs8cmRyFJO5W9eMe9b2o3DWUkbWpiupFRd3lfJ5eO59R+JNHOnIJeRoRGO2uGZCVW4JZztDLn1znn8hRXFto9xN4n/tRrzVI7VowotdubfzCfvBfvCiqdR9g9kupY1hcbeOgOPauR0p2n+JzxuxePyAdrHK5+lFFcUvjPSKfi8fb9SnhuP30ME26OOT5ljODyAeAfpVrTkXUX0z7QouPMicv5g3biFOM564oopQ+FhLcteJLGGz8N3DQwxRMxbJRApPHtXB+DbOG78IGaaKOWYM2JHUMw59etFFcHSRrHcsfEDTbe30dPLt4Y8oGO1AMnb1rn/G0jReH7xlZlZdOLgg4IYSqAfryefc0UV62F+AVbcsa9eTL8I1YSyBvOC53HOOOKo+Gj9vs2Wf8AfK19GhEnzArsHHPb2oorKXxlx2NjxbZw6bZ3z28Mdu8SMUaNQpT6EdK+U/2i/B+k6H8bbhrLS9Os2vNGhmnMFskfnOYYyXbAG5iSSSeTRRXDhf8AePkOt8J8jfF3RrPTdWkNva21ud3WOJV/kK5dj/oRPqGz70UV9dR+FHl1jn7WZszDc2Nq8Z9zRGoOiXzYG4GDnv8A6sUUVtP4TGJlXHzRRZ5+YdfrWDBGov5vlX/Vjt9aKKmGxRc8MRKMNtXdISGOPvDY3WsXWIUjtroqqqY+UIH3ee3pRRXRR3Mp7mt4U8Rah4d8O6XcaffXljcQrI6S28zROjBsAgqQQRk8+5r6Y+Lca+IP2TpNcv1W+1qRIQ2oXA8y6bPXMrZb9aKK2x38JCp7s+f9HPkeKnWP5FVQyheACWfJruPgNaQ6j8c9HguIo7iGS6bdHIoZW+Q9QeKKKzh8CJpljX9Pt4fiDfMsEKsumEKQgBUC4lxj6Vk2iKfDXnbR5yxZEmPmHJ79aKK6MORWNL4Va5e2IaaC8uoZvtD/ADpKyt/qB3Br9Gv2T/HmuarpmjxXWs6tcxSWUZZJbuR1br1BNFFd2I+A5j6R8WzPbWkTRs0bbhypwa34r2a3tYjHNJGTDCSVYjPJoorxqe5oeuXAxp+hzf8ALaS2Xe/8TfU9TVy3neQNuZmwe5oorStsZ0yRIllv/mVW47jNU5/+PqZf4fMPHb7poorjohIyZ3YW8xychetbGmMYvukrynTiiiuTGbHRh+hy/wC0L4Q0m30ia4j0vTo7hl8wyrbIHLYHzZxnPvXzv4x0KxTw9p94tnareCzRhOIl8wHz5RndjPQAfgKKK+bl/FR9FR/hmp8INYvNV1TxAt1dXNysUCsiyylwh9Rk8VpaKvl32oXyjbfbQn2gcS7cOcbuuM9s0UV3VNzB/Edd4Cu5bnVd8kkkjtY7izMSSeOc1et72a5ksWkmkkaRog5Zidw3nr60UVkyI7nT2B2X90q/Kqzx4A6D5jXGeF72a/jvWnmkmaO9nRTIxbaomYADPYDoO1FFdf2Tm+0z0G3dhpF02TuWAEHuDvFc34Uto76zupp40mmhRPLkdQzR/IehPI/CiiuWoXR3Kk2qXQjs4/tE/lvJMrL5h2sPm4IrX+3Tbbj99L8kfy/Ofl+lFFVT2Lq7kFio1S3tmugLhvtCNmUb+QODzXkWuXk3/CwLhfNk2+SeNxx/rKKK5q2x0YPdnpuk28clruaNGOyc5K+ijFdNp8jXfhjUGlZpGEOQXO458oUUV1UfhOat8bOZ8PTyDU9O+dvmt1J56/drt9Ks4bqe582KOT9+w+ZQ3FFFdcdjll8RyHjW2ji1XRlWONVkkkVgFADAYwD7DJrlfHp8qwa6X5bq0uoEgmHEkKs/zBW6qD3A60UVxf8AL1nXH4Q8MX9w8+os00zM18ASXOSNh4q3JqNxH8TtPhWeZYizAoHO08+lFFd1TY55bnfeL3aDxYfLJT92n3TjtXN+CXb/AIW5rgycRpCV5+7k84ooqJbEfZO41FAYLhcDaobaMdOW6VwnguVmW4UsxVbjgZ4FFFFHYkveIJnH2hdzbRHwM9K4/wCJOiWd++rCeztZglskqiSJW2uHyGGR1BAOevFFFOW5tEb+z7fzyLNG00zJ5RfaXON3rj1961viDM7a/aqWbEqgOM/fG4cH1ooqZbFEngeNZNI0zcqtid0GR/CM4H0HpXReJLKFbNJRDGJQxAcKNw6d6KKz+0ip7Dr/AItDH/AHT5e33T2q5NPI/hRWLsWayGSTyegoopy3MTjvjC5txp/lkx+Y8YfbxvG3ofWtqOFYTpcaKqx+Sp2gYXJ5PFFFD+Mr7HzPNf2z9UutJ1bwLHa3E9qlxqe2VYpCglGBwwHUfWvSzM7atIpZivlBsE8Zx1ooqZfEC2LGnXEi+I5oQ7iHykPl5+XOfTpRRRXUZS3P/9k=\"/>"
  },
  {
    "path": "examples/sample-book/gen/datafile/file-picture-classes-jar.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:text-file xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">import java.awt.Image;\nimport java.awt.image.BufferedImage;\n\n/**\n * Interface to describe a digital picture.  A digital picture can have an\n * associated file name.  It can have a title.  It has pixels\n * associated with it and you can get and set the pixels.  You\n * can get an Image from a picture or a BufferedImage.  You can load\n * it from a file name or image.  You can show a picture.  You can\n * explore a picture.  You can create a new image for it.\n *\n * @author Barb Ericson ericson@cc.gatech.edu\n */\npublic interface DigitalPicture\n{\n  public String getFileName(); // get the file name that the picture came from\n  public String getTitle(); // get the title of the picture\n  public void setTitle(String title); // set the title of the picture\n  public int getWidth(); // get the width of the picture in pixels\n  public int getHeight(); // get the height of the picture in pixels\n  public Image getImage(); // get the image from the picture\n  public BufferedImage getBufferedImage(); // get the buffered image\n  public int getBasicPixel(int x, int y); // get the pixel information as an int\n  public void setBasicPixel(int x, int y, int rgb); // set the pixel information\n  public Pixel getPixel(int x, int y); // get the pixel information as an object\n  public Pixel[] getPixels(); // get all pixels in row-major order\n  public Pixel[][] getPixels2D(); // get 2-D array of pixels in row-major order\n  public void load(Image image); // load the image into the picture\n  public boolean load(String fileName); // load the picture from a file\n  public void show(); // show the picture\n  public boolean write(String fileName); // write out a file\n}\n\nimport java.awt.Color;\n\n/**\n * Class that references a pixel in a picture. Pixel\n * stands for picture element where picture is\n * abbreviated pix.  A pixel has a column (x) and\n * row (y) location in a picture.  A pixel knows how\n * to get and set the red, green, blue, and alpha\n * values in the picture.  A pixel also knows how to get\n * and set the color using a Color object.\n *\n * @author Barb Ericson ericson@cc.gatech.edu\n */\npublic class Pixel\n{\n\n  ////////////////////////// fields ///////////////////////////////////\n\n  /** the digital picture this pixel belongs to */\n  private DigitalPicture picture;\n\n  /** the x (column) location of this pixel in the picture; (0,0) is top left */\n  private int x;\n\n  /** the y (row) location of this pixel in the picture; (0,0) is top left */\n  private int y;\n\n  ////////////////////// constructors /////////////////////////////////\n\n  /**\n   * A constructor that takes the x and y location for the pixel and\n   * the picture the pixel is coming from\n   * @param picture the picture that the pixel is in\n   * @param x the x location of the pixel in the picture\n   * @param y the y location of the pixel in the picture\n   */\n  public Pixel(DigitalPicture picture, int x, int y)\n  {\n    // set the picture\n    this.picture = picture;\n\n    // set the x location\n    this.x = x;\n\n    // set the y location\n    this.y = y;\n\n  }\n\n  ///////////////////////// methods //////////////////////////////\n\n  /**\n   * Method to get the x location of this pixel.\n   * @return the x location of the pixel in the picture\n   */\n  public int getX() { return x; }\n\n  /**\n   * Method to get the y location of this pixel.\n   * @return the y location of the pixel in the picture\n   */\n  public int getY() { return y; }\n\n  /**\n   * Method to get the row (y value)\n   * @return the row (y value) of the pixel in the picture\n   */\n  public int getRow() { return y; }\n\n  /**\n   * Method to get the column (x value)\n   * @return the column (x value) of the pixel\n   */\n  public int getCol() { return x; }\n\n  /**\n   * Method to get the amount of alpha (transparency) at this pixel.\n   * It will be from 0-255.\n   * @return the amount of alpha (transparency)\n   */\n  public int getAlpha() {\n\n    /* get the value at the location from the picture as a 32 bit int\n     * with alpha, red, green, blue each taking 8 bits from left to right\n     */\n    int value = picture.getBasicPixel(x,y);\n\n    // get the alpha value (starts at 25 so shift right 24)\n    // then and it with all 1's for the first 8 bits to keep\n    // end up with from 0 to 255\n    int alpha = (value >> 24) & 0xff;\n\n    return alpha;\n  }\n\n  /**\n   * Method to get the amount of red at this pixel.  It will be\n   * from 0-255 with 0 being no red and 255 being as much red as\n   * you can have.\n   * @return the amount of red from 0 for none to 255 for max\n   */\n  public int getRed() {\n\n    /* get the value at the location from the picture as a 32 bit int\n     * with alpha, red, green, blue each taking 8 bits from left to right\n     */\n    int value = picture.getBasicPixel(x,y);\n\n    // get the red value (starts at 17 so shift right 16)\n    // then AND it with all 1's for the first 8 bits to\n    // end up with a resulting value from 0 to 255\n    int red = (value >> 16) & 0xff;\n\n    return red;\n  }\n\n  /**\n   * Method to get the red value from a pixel represented as an int\n   * @param value the color value as an int\n   * @return the amount of red\n   */\n  public static int getRed(int value)\n  {\n    int red = (value >> 16) & 0xff;\n    return red;\n  }\n\n  /**\n   * Method to get the amount of green at this pixel.  It will be\n   * from 0-255 with 0 being no green and 255 being as much green as\n   * you can have.\n   * @return the amount of green from 0 for none to 255 for max\n   */\n  public int getGreen() {\n\n    /* get the value at the location from the picture as a 32 bit int\n     * with alpha, red, green, blue each taking 8 bits from left to right\n     */\n    int value = picture.getBasicPixel(x,y);\n\n    // get the green value (starts at 9 so shift right 8)\n    int green = (value >>  8) & 0xff;\n\n    return green;\n  }\n\n  /**\n   * Method to get the green value from a pixel represented as an int\n   * @param value the color value as an int\n   * @return the amount of green\n   */\n  public static int getGreen(int value)\n  {\n    int green = (value >> 8) & 0xff;\n    return green;\n  }\n\n  /**\n   * Method to get the amount of blue at this pixel.  It will be\n   * from 0-255 with 0 being no blue and 255 being as much blue as\n   * you can have.\n   * @return the amount of blue from 0 for none to 255 for max\n   */\n  public int getBlue() {\n\n    /* get the value at the location from the picture as a 32 bit int\n     * with alpha, red, green, blue each taking 8 bits from left to right\n     */\n    int value = picture.getBasicPixel(x,y);\n\n    // get the blue value (starts at 0 so no shift required)\n    int blue = value & 0xff;\n\n    return blue;\n  }\n\n  /**\n   * Method to get the blue value from a pixel represented as an int\n   * @param value the color value as an int\n   * @return the amount of blue\n   */\n  public static int getBlue(int value)\n  {\n    int blue = value & 0xff;\n    return blue;\n  }\n\n  /**\n   * Method to get a color object that represents the color at this pixel.\n   * @return a color object that represents the pixel color\n   */\n  public Color getColor()\n  {\n     /* get the value at the location from the picture as a 32 bit int\n     * with alpha, red, green, blue each taking 8 bits from left to right\n     */\n    int value = picture.getBasicPixel(x,y);\n\n    // get the red value (starts at 17 so shift right 16)\n    // then AND it with all 1's for the first 8 bits to\n    // end up with a resulting value from 0 to 255\n    int red = (value >> 16) & 0xff;\n\n    // get the green value (starts at 9 so shift right 8)\n    int green = (value >>  8) & 0xff;\n\n    // get the blue value (starts at 0 so no shift required)\n    int blue = value & 0xff;\n\n    return new Color(red,green,blue);\n  }\n\n  /**\n   * Method to set the pixel color to the passed in color object.\n   * @param newColor the new color to use\n   */\n  public void setColor(Color newColor)\n  {\n    // set the red, green, and blue values\n    int red = newColor.getRed();\n    int green = newColor.getGreen();\n    int blue = newColor.getBlue();\n\n    // update the associated picture\n    updatePicture(this.getAlpha(),red,green,blue);\n  }\n\n  /**\n   * Method to update the picture based on the passed color\n   * values for this pixel\n   * @param alpha the alpha (transparency) at this pixel\n   * @param red the red value for the color at this pixel\n   * @param green the green value for the color at this pixel\n   * @param blue the blue value for the color at this pixel\n   */\n  public void updatePicture(int alpha, int red, int green, int blue)\n  {\n    // create a 32 bit int with alpha, red, green blue from left to right\n    int value = (alpha << 24) + (red << 16) + (green << 8) + blue;\n\n    // update the picture with the int value\n    picture.setBasicPixel(x,y,value);\n  }\n\n  /**\n   * Method to correct a color value to be within 0 to 255\n   * @param the value to use\n   * @return a value within 0 to 255\n   */\n  private static int correctValue(int value)\n  {\n    if (value < 0)\n      value = 0;\n    if (value > 255)\n      value = 255;\n    return value;\n  }\n\n  /**\n   * Method to set the red to a new red value\n   * @param value the new value to use\n   */\n  public void setRed(int value)\n  {\n    // set the red value to the corrected value\n    int red = correctValue(value);\n\n    // update the pixel value in the picture\n    updatePicture(getAlpha(), red, getGreen(), getBlue());\n  }\n\n  /**\n   * Method to set the green to a new green value\n   * @param value the value to use\n   */\n  public void setGreen(int value)\n  {\n    // set the green value to the corrected value\n    int green = correctValue(value);\n\n    // update the pixel value in the picture\n    updatePicture(getAlpha(), getRed(), green, getBlue());\n  }\n\n  /**\n   * Method to set the blue to a new blue value\n   * @param value the new value to use\n   */\n  public void setBlue(int value)\n  {\n    // set the blue value to the corrected value\n    int blue = correctValue(value);\n\n    // update the pixel value in the picture\n    updatePicture(getAlpha(), getRed(), getGreen(), blue);\n  }\n\n   /**\n   * Method to set the alpha (transparency) to a new alpha value\n   * @param value the new value to use\n   */\n  public void setAlpha(int value)\n  {\n    // make sure that the alpha is from 0 to 255\n    int alpha = correctValue(value);\n\n    // update the associated picture\n    updatePicture(alpha, getRed(), getGreen(), getBlue());\n  }\n\n  /**\n  * Method to get the distance between this pixel's color and the passed color\n  * @param testColor the color to compare to\n  * @return the distance between this pixel's color and the passed color\n  */\n public double colorDistance(Color testColor)\n {\n   double redDistance = this.getRed() - testColor.getRed();\n   double greenDistance = this.getGreen() - testColor.getGreen();\n   double blueDistance = this.getBlue() - testColor.getBlue();\n   double distance = Math.sqrt(redDistance * redDistance +\n                               greenDistance * greenDistance +\n                               blueDistance * blueDistance);\n   return distance;\n }\n\n /**\n  * Method to compute the color distances between two color objects\n  * @param color1 a color object\n  * @param color2 a color object\n  * @return the distance between the two colors\n  */\n public static double colorDistance(Color color1,Color color2)\n {\n   double redDistance = color1.getRed() - color2.getRed();\n   double greenDistance = color1.getGreen() - color2.getGreen();\n   double blueDistance = color1.getBlue() - color2.getBlue();\n   double distance = Math.sqrt(redDistance * redDistance +\n                               greenDistance * greenDistance +\n                               blueDistance * blueDistance);\n   return distance;\n }\n\n /**\n  * Method to get the average of the colors of this pixel\n  * @return the average of the red, green, and blue values\n  */\n public double getAverage()\n {\n   double average = (getRed() + getGreen() + getBlue()) / 3.0;\n   return average;\n }\n\n  /**\n   * Method to return a string with information about this pixel\n   * @return a string with information about this pixel\n   */\n  public String toString()\n  {\n    return \"Pixel row=\" + getRow() +\n      \" col=\" + getCol() +\n      \" red=\" + getRed() +\n      \" green=\" + getGreen() +\n      \" blue=\" + getBlue();\n  }\n\n}\n\nimport javax.imageio.ImageIO;\nimport java.awt.image.BufferedImage;\nimport javax.swing.ImageIcon;\nimport java.awt.*;\nimport java.io.*;\nimport java.awt.geom.*;\n\nimport java.io.ByteArrayOutputStream;\n//import javax.xml.bind.DatatypeConverter;\nimport java.util.Base64;\n\nimport java.util.Scanner;\n\n/**\n * A class that represents a simple picture.  A simple picture may have\n * an associated file name and a title.  A simple picture has pixels,\n * width, and height.  A simple picture uses a BufferedImage to\n * hold the pixels. You can also explore a simple picture.\n *\n * @author Barb Ericson ericson@cc.gatech.edu\n */\npublic class SimplePicture implements DigitalPicture\n{\n\n  /////////////////////// Fields /////////////////////////\n\n  /**\n   * the file name associated with the simple picture\n   */\n  private String fileName;\n\n  /**\n   * the path name for the file\n   */\n  private String pathName;\n\n  /**\n   * the title of the simple picture\n   */\n  private String title;\n\n  /**\n   * buffered image to hold pixels for the simple picture\n   */\n  private BufferedImage bufferedImage;\n\n  /**\n   * extension for this file (jpg or bmp)\n   */\n  private String extension;\n\n\n /////////////////////// Constructors /////////////////////////\n\n /**\n  * A Constructor that takes no arguments.  It creates a picture with\n  * a width of 200 and a height of 100 that is all white.\n  * A no-argument constructor must be given in order for a class to\n  * be able to be subclassed.  By default all subclasses will implicitly\n  * call this in their parent's no-argument constructor unless a\n  * different call to super() is explicitly made as the first line\n  * of code in a constructor.\n  */\n public SimplePicture()\n {this(200,100);}\n\n /**\n  * A Constructor that takes a file name and uses the file to create\n  * a picture\n  * @param fileName the file name to use in creating the picture\n  */\n public SimplePicture(String fileName)\n {\n\n   // load the picture into the buffered image\n   load(fileName);\n\n }\n\n /**\n  * A constructor that takes the width and height desired for a picture and\n  * creates a buffered image of that size.  This constructor doesn't\n  * show the picture.  The pixels will all be white.\n  * @param width the desired width\n  * @param height the desired height\n  */\n public  SimplePicture(int width, int height)\n {\n   bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);\n   title = \"None\";\n   fileName = \"None\";\n   extension = \"jpg\";\n   setAllPixelsToAColor(Color.white);\n }\n\n /**\n  * A constructor that takes the width and height desired for a picture and\n  * creates a buffered image of that size.  It also takes the\n  * color to use for the background of the picture.\n  * @param width the desired width\n  * @param height the desired height\n  * @param theColor the background color for the picture\n  */\n public  SimplePicture(int width, int height, Color theColor)\n {\n   this(width,height);\n   setAllPixelsToAColor(theColor);\n }\n\n /**\n  * A Constructor that takes a picture to copy information from\n  * @param copyPicture the picture to copy from\n  */\n public SimplePicture(SimplePicture copyPicture)\n {\n   if (copyPicture.fileName != null)\n   {\n      this.fileName = new String(copyPicture.fileName);\n      this.extension = copyPicture.extension;\n   }\n   if (copyPicture.title != null)\n      this.title = new String(copyPicture.title);\n   if (copyPicture.bufferedImage != null)\n   {\n     this.bufferedImage = new BufferedImage(copyPicture.getWidth(),  copyPicture.getHeight(), BufferedImage.TYPE_INT_RGB);\n     this.copyPicture(copyPicture);\n   }\n }\n\n /**\n  * A constructor that takes a buffered image\n  * @param image the buffered image\n  */\n public SimplePicture(BufferedImage image)\n {\n   this.bufferedImage = image;\n   title = \"None\";\n   fileName = \"None\";\n   extension = \"jpg\";\n }\n\n ////////////////////////// Methods //////////////////////////////////\n\n /**\n  * Method to get the extension for this picture\n  * @return the extension (jpg, bmp, giff, etc)\n  */\n public String getExtension() { return extension; }\n\n /**\n  * Method that will copy all of the passed source picture into\n  * the current picture object\n  * @param sourcePicture  the picture object to copy\n  */\n public void copyPicture(SimplePicture sourcePicture)\n {\n   Pixel sourcePixel = null;\n   Pixel targetPixel = null;\n\n   // loop through the columns\n   for (int sourceX = 0, targetX = 0;\n        sourceX < sourcePicture.getWidth() &&\n        targetX < this.getWidth();\n        sourceX++, targetX++)\n   {\n     // loop through the rows\n     for (int sourceY = 0, targetY = 0;\n          sourceY < sourcePicture.getHeight() &&\n          targetY < this.getHeight();\n          sourceY++, targetY++)\n     {\n       sourcePixel = sourcePicture.getPixel(sourceX,sourceY);\n       targetPixel = this.getPixel(targetX,targetY);\n       targetPixel.setColor(sourcePixel.getColor());\n     }\n   }\n\n }\n\n /**\n  * Method to set the color in the picture to the passed color\n  * @param color the color to set to\n  */\n public void setAllPixelsToAColor(Color color)\n {\n   // loop through all x\n   for (int x = 0; x < this.getWidth(); x++)\n   {\n     // loop through all y\n     for (int y = 0; y < this.getHeight(); y++)\n     {\n       getPixel(x,y).setColor(color);\n     }\n   }\n }\n\n /**\n  * Method to get the buffered image\n  * @return the buffered image\n  */\n public BufferedImage getBufferedImage()\n {\n    return bufferedImage;\n }\n\n /**\n  * Method to get a graphics object for this picture to use to draw on\n  * @return a graphics object to use for drawing\n  */\n public Graphics getGraphics()\n {\n   return bufferedImage.getGraphics();\n }\n\n /**\n  * Method to get a Graphics2D object for this picture which can\n  * be used to do 2D drawing on the picture\n  */\n public Graphics2D createGraphics()\n {\n   return bufferedImage.createGraphics();\n }\n\n /**\n  * Method to get the file name associated with the picture\n  * @return  the file name associated with the picture\n  */\n public String getFileName() { return fileName; }\n\n /**\n  * Method to set the file name\n  * @param name the full pathname of the file\n  */\n public void setFileName(String name)\n {\n   fileName = name;\n }\n\n /**\n  * Method to get the title of the picture\n  * @return the title of the picture\n  */\n public String getTitle()\n { return title; }\n\n /**\n  * Method to set the title for the picture\n  * @param title the title to use for the picture\n  */\n public void setTitle(String title)\n {\n   this.title = title;\n }\n\n /**\n  * Method to get the width of the picture in pixels\n  * @return the width of the picture in pixels\n  */\n public int getWidth() { return bufferedImage.getWidth(); }\n\n /**\n  * Method to get the height of the picture in pixels\n  * @return  the height of the picture in pixels\n  */\n public int getHeight() { return bufferedImage.getHeight(); }\n\n /**\n  * Method to get an image from the picture\n  * @return  the buffered image since it is an image\n  */\n public Image getImage()\n {\n   return bufferedImage;\n }\n\n /**\n  * Method to return the pixel value as an int for the given x and y location\n  * @param x the x coordinate of the pixel\n  * @param y the y coordinate of the pixel\n  * @return the pixel value as an integer (alpha, red, green, blue)\n  */\n public int getBasicPixel(int x, int y)\n {\n    return bufferedImage.getRGB(x,y);\n }\n\n /**\n  * Method to set the value of a pixel in the picture from an int\n  * @param x the x coordinate of the pixel\n  * @param y the y coordinate of the pixel\n  * @param rgb the new rgb value of the pixel (alpha, red, green, blue)\n  */\n public void setBasicPixel(int x, int y, int rgb)\n {\n   bufferedImage.setRGB(x,y,rgb);\n }\n\n /**\n  * Method to get a pixel object for the given x and y location\n  * @param x  the x location of the pixel in the picture\n  * @param y  the y location of the pixel in the picture\n  * @return a Pixel object for this location\n  */\n public Pixel getPixel(int x, int y)\n {\n   // create the pixel object for this picture and the given x and y location\n   Pixel pixel = new Pixel(this,x,y);\n   return pixel;\n }\n\n /**\n  * Method to get a one-dimensional array of Pixels for this simple picture\n  * @return a one-dimensional array of Pixel objects starting with y=0\n  * to y=height-1 and x=0 to x=width-1.\n  */\n public Pixel[] getPixels()\n {\n   int width = getWidth();\n   int height = getHeight();\n   Pixel[] pixelArray = new Pixel[width * height];\n\n   // loop through height rows from top to bottom\n   for (int row = 0; row < height; row++)\n     for (int col = 0; col < width; col++)\n       pixelArray[row * width + col] = new Pixel(this,col,row);\n\n   return pixelArray;\n }\n\n /**\n  * Method to get a two-dimensional array of Pixels for this simple picture\n  * @return a two-dimensional array of Pixel objects in row-major order.\n  */\n public Pixel[][] getPixels2D()\n {\n   int width = getWidth();\n   int height = getHeight();\n   Pixel[][] pixelArray = new Pixel[height][width];\n\n   // loop through height rows from top to bottom\n   for (int row = 0; row < height; row++)\n     for (int col = 0; col < width; col++)\n       pixelArray[row][col] = new Pixel(this,col,row);\n\n   return pixelArray;\n }\n\n /**\n  * Method to load the buffered image with the passed image\n  * @param image  the image to use\n  */\n public void load(Image image)\n {\n   // get a graphics context to use to draw on the buffered image\n   Graphics2D graphics2d = bufferedImage.createGraphics();\n\n   // draw the image on the buffered image starting at 0,0\n   graphics2d.drawImage(image,0,0,null);\n\n   // show the new image\n   show();\n }\n\n /**\n  * Method to show the picture in a picture frame\n  */\n public void show()\n {\n     try {\n         ByteArrayOutputStream output = new ByteArrayOutputStream();\n         ImageIO.write(this.bufferedImage, \"png\", output);\n         String result = Base64.getEncoder().encodeToString(output.toByteArray());\n         //BH: using Base64 instead of DatatypeConverter.printBase64Binary(output.toByteArray());\n         System.out.println(\"&lt;img src=\\'data:image/\" + this.extension + \";base64,\" + result + \"\\'/>\");\n     } catch (IOException e) {\n         System.out.println(\"Errors occured in image conversion\");\n     }\n }\n\n /**\n  * Method to open a picture explorer on a copy (in memory) of this\n  * simple picture\n  */\n /*\n public void explore()\n {\n   // create a copy of the current picture and explore it\n   new PictureExplorer(new SimplePicture(this));\n }\n */\n\n /**\n  * Method to load the picture from the passed file name\n  * @param fileName the file name to use to load the picture from\n  * @throws IOException if the picture isn't found\n  */\n public void loadOrFail(String fileName) throws IOException\n {\n    // set the current picture's file name\n   this.fileName = fileName;\n\n   // set the extension\n   int posDot = fileName.lastIndexOf('.');\n   if (posDot >= 0)\n     this.extension = fileName.substring(posDot + 1);\n\n    // get file location\n    String[] paths = fileName.split(\"/\");\n    this.pathName = \"\";\n    if(paths.length != 1) {\n        for(int i = 0; i < paths.length - 1; i++) {\n            this.pathName = this.pathName + paths[i] + \"/\";\n        }\n    }\n   // if the current title is null use the file name\n   if (title == null)\n     title = fileName;\n\n   File file = new File(this.fileName);\n\n\n   if (!file.canRead())\n   {\n     throw new IOException(this.fileName +\n                         \" could not be opened. Check that you specified the path\");\n   }\n   this.bufferedImage = ImageIO.read(file);\n\n\n }\n\n /**\n  * Method to read the contents of the picture from a filename\n  * without throwing errors\n  * @param fileName the name of the file to write the picture to\n  * @return true if success else false\n  */\n public boolean load(String fileName)\n {\n     try {\n         this.loadOrFail(fileName);\n         return true;\n\n     } catch (Exception ex) {\n         System.out.println(\"There was an error trying to open \" + fileName);\n         bufferedImage = new BufferedImage(600,200,\n                                           BufferedImage.TYPE_INT_RGB);\n         addMessage(\"Couldn't load \" + fileName,5,100);\n         return false;\n     }\n\n }\n\n /**\n  * Method to load the picture from the passed file name\n  * this just calls load(fileName) and is for name compatibility\n  * @param fileName the file name to use to load the picture from\n  * @return true if success else false\n  */\n public boolean loadImage(String fileName)\n {\n     return load(fileName);\n }\n\n /**\n  * Method to draw a message as a string on the buffered image\n  * @param message the message to draw on the buffered image\n  * @param xPos  the x coordinate of the leftmost point of the string\n  * @param yPos  the y coordinate of the bottom of the string\n  */\n public void addMessage(String message, int xPos, int yPos)\n {\n   // get a graphics context to use to draw on the buffered image\n   Graphics2D graphics2d = bufferedImage.createGraphics();\n\n   // set the color to white\n   graphics2d.setPaint(Color.white);\n\n   // set the font to Helvetica bold style and size 16\n   graphics2d.setFont(new Font(\"Helvetica\",Font.BOLD,16));\n\n   // draw the message\n   graphics2d.drawString(message,xPos,yPos);\n\n }\n\n /**\n  * Method to draw a string at the given location on the picture\n  * @param text the text to draw\n  * @param xPos the left x for the text\n  * @param yPos the top y for the text\n  */\n public void drawString(String text, int xPos, int yPos)\n {\n   addMessage(text,xPos,yPos);\n }\n\n /**\n   * Method to create a new picture by scaling the current\n   * picture by the given x and y factors\n   * @param xFactor the amount to scale in x\n   * @param yFactor the amount to scale in y\n   * @return the resulting picture\n   */\n  public Picture scale(double xFactor, double yFactor)\n  {\n    // set up the scale transform\n    AffineTransform scaleTransform = new AffineTransform();\n    scaleTransform.scale(xFactor,yFactor);\n\n    // create a new picture object that is the right size\n    Picture result = new Picture((int) (getHeight() * yFactor),\n                                 (int) (getWidth() * xFactor));\n\n    // get the graphics 2d object to draw on the result\n    Graphics graphics = result.getGraphics();\n    Graphics2D g2 = (Graphics2D) graphics;\n\n    // draw the current image onto the result image scaled\n    g2.drawImage(this.getImage(),scaleTransform,null);\n\n    return result;\n  }\n\n  /**\n   * Method to create a new picture of the passed width.\n   * The aspect ratio of the width and height will stay\n   * the same.\n   * @param width the desired width\n   * @return the resulting picture\n   */\n  public Picture getPictureWithWidth(int width)\n  {\n    // set up the scale transform\n    double xFactor = (double) width / this.getWidth();\n    Picture result = scale(xFactor,xFactor);\n    return result;\n  }\n\n  /**\n   * Method to create a new picture of the passed height.\n   * The aspect ratio of the width and height will stay\n   * the same.\n   * @param height the desired height\n   * @return the resulting picture\n   */\n  public Picture getPictureWithHeight(int height)\n  {\n    // set up the scale transform\n    double yFactor = (double) height / this.getHeight();\n    Picture result = scale(yFactor,yFactor);\n    return result;\n  }\n\n /**\n  * Method to load a picture from a file name and show it in a picture frame\n  * @param fileName the file name to load the picture from\n  * @return true if success else false\n  */\n public boolean loadPictureAndShowIt(String fileName)\n {\n   boolean result = true;  // the default is that it worked\n\n   // try to load the picture into the buffered image from the file name\n   result = load(fileName);\n\n   // show the picture in a picture frame\n   show();\n\n   return result;\n }\n\n /**\n  * Method to write the contents of the picture to a file with\n  * the passed name\n  * @param fileName the name of the file to write the picture to\n  */\n public void writeOrFail(String fileName) throws IOException\n {\n   String extension = this.extension; // the default is current\n\n   // create the file object\n   File file = new File(this.pathName + fileName);\n   //File fileLoc = file.getParentFile(); // directory name\n\n   // if there is no parent directory use the current media dir\n   //if (fileLoc == null)\n   //{\n     //fileName = FileChooser.getMediaPath(fileName);\n     //file = new File(fileName);\n     //fileLoc = file.getParentFile();\n   //}\n\n   // check that you can write to the directory\n   //if (!fileLoc.canWrite()) {\n    //    throw new IOException(fileName +\n    //    \" could not be opened. Check to see if you can write to the directory.\");\n   //}\n\n   // get the extension\n   int posDot = fileName.indexOf('.');\n   if (posDot >= 0)\n       extension = fileName.substring(posDot + 1);\n\n   // write the contents of the buffered image to the file\n   ImageIO.write(bufferedImage, extension, file);\n\n }\n\n /**\n  * Method to write the contents of the picture to a file with\n  * the passed name without throwing errors\n  * @param fileName the name of the file to write the picture to\n  * @return true if success else false\n  */\n public boolean write(String fileName)\n {\n     try {\n         this.writeOrFail(fileName);\n         return true;\n     } catch (Exception ex) {\n         System.out.println(\"There was an error trying to write \" + fileName);\n         ex.printStackTrace();\n         return false;\n     }\n\n }\n\n  /**\n   * Method to get the coordinates of the enclosing rectangle after this\n   * transformation is applied to the current picture\n   * @return the enclosing rectangle\n   */\n  public Rectangle2D getTransformEnclosingRect(AffineTransform trans)\n  {\n    int width = getWidth();\n    int height = getHeight();\n    double maxX = width - 1;\n    double maxY = height - 1;\n    double minX, minY;\n    Point2D.Double p1 = new Point2D.Double(0,0);\n    Point2D.Double p2 = new Point2D.Double(maxX,0);\n    Point2D.Double p3 = new Point2D.Double(maxX,maxY);\n    Point2D.Double p4 = new Point2D.Double(0,maxY);\n    Point2D.Double result = new Point2D.Double(0,0);\n    Rectangle2D.Double rect = null;\n\n    // get the new points and min x and y and max x and y\n    trans.deltaTransform(p1,result);\n    minX = result.getX();\n    maxX = result.getX();\n    minY = result.getY();\n    maxY = result.getY();\n    trans.deltaTransform(p2,result);\n    minX = Math.min(minX,result.getX());\n    maxX = Math.max(maxX,result.getX());\n    minY = Math.min(minY,result.getY());\n    maxY = Math.max(maxY,result.getY());\n    trans.deltaTransform(p3,result);\n    minX = Math.min(minX,result.getX());\n    maxX = Math.max(maxX,result.getX());\n    minY = Math.min(minY,result.getY());\n    maxY = Math.max(maxY,result.getY());\n    trans.deltaTransform(p4,result);\n    minX = Math.min(minX,result.getX());\n    maxX = Math.max(maxX,result.getX());\n    minY = Math.min(minY,result.getY());\n    maxY = Math.max(maxY,result.getY());\n\n    // create the bounding rectangle to return\n    rect = new Rectangle2D.Double(minX,minY,maxX - minX + 1, maxY - minY + 1);\n    return rect;\n  }\n\n  /**\n   * Method to get the coordinates of the enclosing rectangle after this\n   * transformation is applied to the current picture\n   * @return the enclosing rectangle\n   */\n  public Rectangle2D getTranslationEnclosingRect(AffineTransform trans)\n  {\n    return getTransformEnclosingRect(trans);\n  }\n\n /**\n  * Method to return a string with information about this picture\n  * @return a string with information about the picture\n  */\n public String toString()\n {\n   String output = \"Simple Picture, filename \" + fileName +\n     \" height \" + getHeight() + \" width \" + getWidth();\n   return output;\n }\n\n} // end of SimplePicture class</pi:text-file>"
  },
  {
    "path": "examples/sample-book/gen/datafile/flower1-datafile.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"image/jpeg\" pi:base64=\"/9j/4AAQSkZJRgABAAEAYABgAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCEAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAgIDAgICAwQDAwMDBAQEAgMEBAQEBAMEBAMBAgICAgICAgICAgMCAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAGQAZAMBEQACEQEDEQH/2gAMAwEAAhEDEQA/AP38oAKACgCBjhx90Bk4B4Y4b37YoUbvm1slbrbuT+8vZJeytduzuntvstO/z0PPPHnxU+Hvw2TTpPHXi7SPCy6rcPa6YmqXXkPfyxbTIttCqs8qrvj3OF2rvG4jNd2AwGLzD2kcLhZ4hw5m+SDbSjypvrtzR031Xc7suwOOzH20MDluIxioxk5Ojh6lVJJxT1hGS+3Hfuu6Pjz9qf8AaG8Q+F7Dwd/wqrXLFdL8WWN1fp4x0k2mppMlvMY4bPTbl2ltWLHe0u6NzHtAcIWGP2Hwi4Ey3iTF5jDiWTpxwjrRpYaVSnSq88JYNQkqdenNSVqlWF1ZOStBN81/3nwJ8LMi4wx+bVeJqmPwbwMq1Kll0HhqMpVITwbWIlhMVha7aftqlH2ijB8yULu14/O3hX9tf4u+HNOkg1KHw941knfFpqGtwyWF/aBDsZZxpCwx3kSshKAwwnMjbpeAE/Rsx8ActxeIqVsnqywkHUa/eVI0rwcpSvH2OAkndOn9rdNu+jf7Jn30YeG8wq8+Q47F4SrCf76nXrYelz04ufOoww+VTfvOVOPK7Jvm5rO0pfbX7MX7Q2rfG2y8SWvibQrDRdb8M3FgWl0g3baRfadqXnfZ58XxZ7a7D210rRCSQKqIwf52A/BfEDgiXBOYU6X16nP2lNyUHXbf8WulLllRoO0/ZNRk072eqP5n8UPDn/iHOaYbBf2nRr0K+HhVSWJU6lPnq4qnGnOLw2FUXGOG1ioPll1tLT6sRwWIXeQuWGRhTGGwrJyMjG3DdK/P40pK2Idbm5le0Ze7r76Vmt7aWv8A5n5XKM6MY1YT9rCdnvzaNc3Sy0SS1fVdy3EfkHb+724wMZz3ra60a0uk2WnGylFW5ld+r3/p6ktIAoAKACgAoAKAKz/K+TtChBycgk7mAXPTGSvv+dJz5IN2ck3ZRWru/wC7p6eol7S/InF05J6XalzPS9tuW2n3n48ftvrNH8ebKWXVI7uGf4b6eNNtUuFMmgumsaolzBPCoLWpvXeC4R2Kbvsm1iFwK/pHwIyfB4ynjsZjMH7aFq6UJ0qc20lgJLlVSD11cfi0fMtd3/Xf0YsvoY2WaLFZJSxGHpLEpzxGFhUjU5JZUnGnOonCTcJScY6Ss5WS3Pm7w2fFWueH9W+HXh/w9f8AiddUvT4m0DTrBFkudK8Q2LQwX2q6fLOYY4NLvLeb7LfW++OL/SYZN26MCT6jxGzXgXwnlQ43zXPMNw7hpVKftMLiMZgMvdaH+1ZjKMKFWeDhVq1YYWdOCnXtNQlHaMpw/WOMcuyPgDO8Hxbk+aYTJ8wxNajh8RlUcRh8LTrYKdfEYydZ4GlHD1ZYl1aMaCqzrum1H2U02uZPh8CXWmeMIvCvjvVdO+Gxg07+1bzUvE7boLfTRIFX7BBaCZtev3Pm+Va2nnbpI5A5Q5z6GT/SA4P414VxGZ8BV6nE2I+rz5aGUVMFmOJpVvqkKvv0suzGvKHI8RhoStPmVSpSjvOlze7mPi9lP9hSxHD+XY3OOIquHcVhsBQpYqUa7w8mq9ejh8Y8VHBxxPs4VKt3NOcI29pOLPVLX42ad8KfCdx4Q+AF3qcE2tSfafGPxT8U6SkXiPVblN0Vrb+GtBuw0OjaakBDRNcmRhJNKfs4JLH5bL/DnNuOqj4q4+xdTKsI6KdHB1q1bD4ilQusXB4ilmOFrQjKMMTiKVRxnGEakJQWimz8awvhPxB4i1sTxh4kY1ZNgpKcqWDqVsTg8RTotrGxk6OZ4PEU1TjDFYilpNQjUpyitFUk/wBQ/wBme58fXnwj8Pan8SNVu9a17U3u760vNQtYbfUjoNyyvpCX/wBnhgimne2zNvSCEBLmNCgMZJ/AeMMLlOXcQ4zKslqVa2BwlSdONSUqM4S5K9WmrToRhTa9mqb+BaXaSVon8xcb5fkuTcQ47KchrTr5fgq9XDKc50JqcqVevTUoSw8KdOVN040+VqCd23ZRaivoRCNoxwOw9OBivnUpK6dtHZWvt0vfr3PkbKN0lypd9B9MYUAFABQAUAFAHD/ES91nTPBHivU/DsLT67YeHNXu9It0DtJNfQWM0sEaxRkFnaVYwuOQxHrz6GS08NVznKaeOa+o1MZhadZOUYr2c68FNtztFfu3LVvTW9kmz1MgWDln2S0sxj/wn18dg6eJa5FKOHniaca0uao1CKjTbfNO8E/jTifz/WcPiv4h6/MNOi1zxt4n1K6ZZ1t4Z9U1ia5j81niuNyr9mERLIBcvDHEkWSAWIb+3suz7gHhPIamNwOMwUakMHKpKFOpl0Z88aEZyTUJ0JXfsYp3fvSsua9pH+jmR8UeHXB3CNTG5TmfDlB4PL5VXSwmIyynj69SjgoVPZ16dGrQ9pmFT2NOFSDlFzrKC5k0mvcoNC8Xfs6XGgeK9U8SWkHi+YapYRfD2zMV9pSadfNpk2rWmu6rFJvn1KJLPT/MNoqxwzmCNJpS0hh/jjxVyDG/S9x1XgXLY0MuyPKmq1XM5OthrTwlXE4GdGji6Ec4w0sQ8LnEKsaNXDr3VKrLkUIKf8kY3jDP/pHeJuEyfhLL4YPIsh9jHMMyrUMRShfBZpKhisPHGYOvmeHWMeHzShiI0K0KUkoyq1VCEVGpzviLxTrv7RXxI0yxmuNK8P3N5p02k+EbKdglk+rwM95aaZfarJsmjk1UrPaxXMnmJDczW8aptm3j9D8LPA/K/orcOLC5Z9d4heKmq2Pr1nRx9WlSqYXCQxToVaWAyhUqdN5RCdH20XGDq3qNynaH7zjOFf8AiDH9n8TUKNXPcI4UsHmkY0niqlGg5VMZjMRh4KGEjCnSpYGEadfEVeTnm3VpxjNOHlw0u/8ADniqDQvFeiX+k6ro+q6adW8P6rbrb6hDAby1nSGWLhJoJoESJJ0aSOZSWV8uQP6Alxpw5xdwVnv9nZh9XxVHKsbyQqYjC068KiwLcY8tOvWnFxnXhFxVpRmmtGtfucVx3wpxp4e8VVcpzeNDE08ozOrQpVMVg4YijUjlrdOg6dHEVp0qlOVeEPZxtKFRNRd7c39EuneULS2MSRxQi2t2SGNUjWECGNkRYlJWFFQgBR90AAcYr+FK0r4jEKc3UqrEzi5Slzy+L+Z676621d92f5t4n3sViISqutVjXqNylLnd1JptyfvXb1baTbd9G2aSnjI4B5HbGelKLvzLblbS+Ri9Pl/XUfVCCgAoAKACgAoArSxlyOBs2gMDlTw2TgrgjgDgnHqKnVSjfWEWpRt8XOndXvpy27e9fyuKSfLH2SUZ8yvJ3TULWfK1tJaOOitbdHK6rZWWlaXrGoWFlZ2dylnd3jyWltDbyPPDAWWSWSJA0mHEbEkqeM5JNc2YY+vPLM0qyxWInDC0sUrSqSaShSk/cTk0vdVor3V0a5Webn2LxtPJ8wqU8ZWhLCYfEV48tWUYv2dGo05Xbcqjsr7cySjeys/yT/ac+FvxIufiPoWr6V4Z8U+L9C8Q+CPDyaJd6FpOqay1vq6tcXHiK0vxY28i2E97qF6t+LmVYYNtxFGXXya/bPADirhfgfKpV8epyq5pGWKi4/VHWviaWXz19rVw7tz0ZN6zfM787bdv6S+jHx7wf4fcMVXnFOjTxmdqeYSrU44KGKlLGYXK3JzqV8Rh6j5qmHnUm3zt1LSc5S5uXw7x/wDCT4hfCo6ZfeMdFudDSc2+pWGqRTJJbWF7bTJcQK2oRHyrHVLaVYpVV2bYRHJhsjH9JYfjngnjnLsxwdfGUcFScK9Gbxc8FQqug6apv2TqV6ylNqrL2d06bnGW6jZ/1tgfEfw28R8nzbLK+bYfC0JUsTh6scdXy6hV9k6CpSnSVavXjKTjiWqc+VwclK91pP8AWT4Naf4f+OXw5+HPxI+Ing7w9rXivT0lbS9c1LR7ea5JsLua1TVrC4uoDOguzCs5Xc0ayNJ5WFPP8ecRuHD+f5xhOHsxl/ZtWriqcXQrLknh51qkIqp7FRpSnKlTpOpyx5HFqya3/gXi2UeF+Jc+yzhPOZzyWtisZBOjiE6csNOvVpcknheShOc6NKk3aCg4NRd4qJ9RRweVlFC+XtwMklh22jI+7gdyTz6CvjVTpxm6iTU5Scnta71vstb6/rsfBxSjKc3dzlOUru2z1tfR79P0SROilRjjAPy47KOB174FVtfz1Eue8ua2sm1a+3S/mvuH0FBQAUAFABQAUARMcbvQRk/lnHWknecYbWtL7nYUf4i7afmY+r2hvtH1G0Rij3VhdW6sOCDNCU2nAyASVBwDx+FefmFGVTLszw9Nq+JpYhLzdSnKK8932at3PPzag8Xl2ZYenpOvQr0Fp1qUpxW17JNpu69UznfBeqLe6VFZTeVDe6Oq6TqFsTiWCbTljt2wDhhBKqxOhICsHAwGyK48gqQ+oYbD1JuGKwkKdHlvZ8tOFOEdJPnScla1km07JO553DVag8voZfVVsbgqUKPL7qap0oU6UdG+eK507WjFOSdle6XR32l2GqQPBqFlY6hayBQ1re2sF3CQu45ZLqORGUbzgeUvuSDX0CxFaD5KFerhqiW9Oo6bl0teOrT7Pey7I+mwNXFYKpUdHEVqDk5L3Kk4XTa091xunaz6O3XcvWdrBaQRwW0EdtbQKIoIIY44Yoo0CqgiiiRI4kAHCqoAyalynJ3qTlUm/ilOTcnbS7b1u7b767kOrOrOpOpzc/PK7k23J3bcm5Ntttu7ere5e6fh/SkIKACgAoAKACgAoAKAGMpOcY+6Rz+NTFWqKfRRtbrvccbRafa34Mg8pwjr8pLAhclsAH7vbjBHWnZOpeS5qdrNb316p6NW7k0ly8/tFzRlUlJK1/deyalpe2628zhNc8PXsdx/b+hTLZ61Ao86MFks9YtVaSWSwvkVMsWbhJzloTJlQclW8HH4HFxxEMRlTo0cRKpZe154wlCUpNp+zV0+bkd1db9XGS+YzDKK1Kvic4y6sqOIoRqzVPmlGM6MZOrKPJGKvVk0rPmUW1yt35Zx2/Detw67p63MYaGaFpLa8tJQEmt723Cie3ePe3CMxUMcbtu7+KurL8xjjqVaKp8uMwM50KvNG0Pa0LRnOm3J1JUpVHenKVpOLu1GSsd+T5hDMsJGtzVadeD5Zwk0pLljFt2blJxbl7snv1tJNHToML+P0AxxgZ+lelBzcYufKpP+W9vx1PZ2Std2S/rUfVgFABQAUAFABQAfp+lGwfgH6fpigNvIP0/Sj8A/AP0/SgNvIrTJuByoZTG6Y6ZDjBTO0kAgAkjug45NRUjzQ0dnF8y+SfXp/XZGcoqf7uavTqJwat0lo9Ho/dfX0tq7ecv5Wj+OoRHmG18S6W8Eqn5I31S0njEcqJ90XLac8ynByVtVOMmvnZL+z84p8vu0cww7c+kXXlWTbduVczir6809Ltvp8nVcsr4rwlKn7uCx+CjFRslH6y8UktFyR5nSX8sqmjeq29LQ5HToePbH9a+ig/dj5pW+5WProu/N15W0vkSD8v06e1WvuKD9P0oD8A/T9KF9wB/n8qF9wL7goAKAGFguOD7Y4+nXHpQl26CukvTZdfLR/kIrgjIBGM9QBnb0xzT28v67CjJuLfJKPLsmrN27LzEMiqAeQOg6DnGQME9cdqzcrcvuSfNLl0Wyf25doK2snsNSikm5KClZLmdtei16+W4eauO/H0GPwJ6+1OEozv7OSlyy5HytO0lunbZq6unrqtATfMoqLtpZ293stRhfOMA9PlyP4jnGfbpUUnKdWfuyhCHNG0ly8zT+KK2cWvhelxSV04Qa54rmTb0utLN7pp6tdjzzxcM6x4JjjCJcf8JPE4cgq4ii0/UTNjHOwozDnAOT6mvnM/8A3lbJ1S92usxow/7gKNW+13Zz5b/ZslpzWPkeJV7XE8MeyvHGUM3wXtW9ObC04V3VjGS9981TktGdqbSbl7yiehxnYnPJXuO5UYPBxySK+mV6dKH2nGEdFu7L7Ke9+iZ9fZQ55aRjJuSW2j1S162HCVeAAx+XcCBx9Mk/e9qSklT537q6Rektr6RdvT1KSTipJrXZfat0du3nsODrz1XAzhhg4HfHXFV9jntZct7bNaXs+zFokpdH+HVX7ejGmULjCuwIBG0flzkYrKdaNP2Puykq0owi4q6XPs5arliravoKOrSWnMk07e7bpr0/MkByM9PY8Y/Ctu9teUeza/l0HUAFAFaRgG748s47dzjr3wf8KScotaqNNbt6Wfq7JJLW3zJ5U5KUJL2kUrRk/d5d+drdJPeXRaESSqflBJA+YDgE4A4KnBx/vYok+ZKdGcJJdE7/AN77Ol3pbUlym5x5tYq150m3BO9nGUtUrLWXZW6lW9vrTT4Hury5t7a1RWZpbmaKCNCoLnDzSIu5UBOAScA+lc1fH4bBU5YnHVoYKhTTjKpWlGjC61a5qjitUm0m72i9NGc+YY3A4HCVMRmFelhaFFOoq0506cLRi3F+0qNR52k2ndXW1tSnpeu6Zq9rFe6ZdW19bTxtJFLayxSqYlIXzCqyZ27/AJd2MZH582AzLL8XD2mWV6delWk6rdOVOTnzW9+CpSfNGV4qMn8V93peMBmuBzPCRrZZjaWIg6Cqx5asZ1JR5U1KKpuV4vmSTury6u6vtRupXjHDBeMfKdoOG5+Vh6HkfjXf+8grz/5eyfJvpB/CnfZ3000u9DtV4QpNxcZTjG6as3dauz11a1bvqn2OA1SM33jzRYQVaLStGvNUcAsSk9xdRWVvxggMYRedcH5eD1x87Xf1jibBYVfBhcHHEy7e0WJVOz3XMovZxU0n8Vrp/KYyX1jizLsJFXp4XCxxMu3P9ZdPXdcyi3vFSs97Oz7wuqIHb5QBubghOcsTkjAJYnqR1r6JzpqUlOXsoQbkpyahG0X8LlKy0WrXbU+tcYc03KSUY3ilNpRsnpJp3225uxXhmDyOUb5FVjtLY2gYIOM4HylRnPcGqcqc1GtCcatKPKrxalFSs5Xb2Xuu973s02ramUknXTVRewjQUZTg/wB3GpzXs5fCpKOtviSs7WM6fxDpdtqlrpM10sWoX1o89pbs0ayXCRypE4h3OPNcSSoNq5OSPWuCvmWDw2Jo4CtXjTnjIqdPnnGOtSThGKcpLflfLGKb0bVzhr5tg8LmGEyitXpwrYyEKlK8ornVSo6ULOUk3KTi2rRbaV0uhsq27btyuIxhSdpwDgZXqD0616EIwhTipOMkmnB3T0slGzaWvp+B6c5RpqVGHxRg5Jq2y0Vmmuq0a0/IsRH5focfkBj6VMIOHPrzKcnOOvR7LpYFpGnf+VfkS1YBQB5F8XbvxrFoMVj4EsJ59Y1CdIDexgBbC1KyieXeZkIlKlQm0OynkAHBr4rjitxAsplhuG6MpY6vzKM1GtyRvRrKN50Pej7/ALN/jq7J/nPiRX4rhkrw3B9L/hUxnNQVblxK9lTqUMRG8amF9+NRVVSlBvSLXNZvli/mHwd8UvHvwz1i08O/ES2vpdKurpklvNVMzajaq8wVrqG4d1FzaL5TgrhduSQGJIb8M4f8QeJuDM4p5XxxGrGjXlHlqP6wqUPa1qdOMp1MdiKdoRVKvKWjSgn051D+buE/FfjjgDOY8OeIWHqTyjH4z2UsZiYYyVelPEVqWHlOGKzDF0Kaw8KNCvWg5U5OMnJv3VJU737RvxEstcsNA0Lw9q9vfaZdKmr3r2Vyh/exmeOK0ulRzgbCGMbfxbCMggpXjXxzhcxy7J8vyXNqVbDYirh8XXqYLExl7k6WMpuhOVGs4qajKMp0pxe8OZ2dpdH0gPEbC4/L8iybhnPaWJwGIlhcbWr4HGQnVjGcMbQeEr1MPiHTjD2coTrUKkLqTg5NRajKXVJtc8D+Efhz8Q/DtwsdjY6PpOj6xbwqzxzK5uZYpJreMxx+U7yRK5d8hpRgEMc91fG5pwtwzwjxbk054jL6eX5bRxlNurUcpfVniq1WcaM6dJpwpxhKVSopKTXMmmpx9LM8TxBwfwfwP4g8NY2WIwuGybKsLjsL7XEVKNSUcLPH161ahh5UoSclRhRqzq1oz1SqJ3VSHuXw5+NXh3x5bx2e6LSdfEbPPptxJHGs77EAnspHnJljeSQEI2HAwDnKl/0ngvxRyHi2lQh7X6nj4zjGWGrToU6klGNK86cHiKk5U3Oryxk7NtNWTTP1rw48ZuG+PaGGpSrLLs4owh7bCYiphqU5zhHDqrPC05YqrVnh3Vr8lGU1GUrcrSmpI19J1awtdT8V+JdW1KztIIrifRrWS6uooM2ekBpSypcOrc389+oABLCIfLjmvXy/Nsuw2Z5zmWOx1ChShXxGHpyqVqcH7KnUhJKPtJK99bKLs30T3+hwWdZXhswz3PMzx+HwGGw2IxWGpvFVqVGUqWHnGrFUvaTSkp68ijNJtNqKer4Gb4tR/ELWIPCPgGW5t0M5fVfEM8CQrZ6VayCG5lsU8x2mWZJ4gsknlbN5bGUIHytXj7C8Y5rX4Y4alWjLD15/W8Q+SMFSp1Xhq86dShXqv2adWnONSdKMWvebtyxn8RU8VcDxrnc+F+EZ1KTw1aTzDGVeSEVgqVV4bFzwlbC4mq017ajUo1KtNUmk5TfwxnK/jSxtfE2kfDLwlrF3dX7Th9Y1e9vG1YWVrbu891ax3Uru8144hjOxlCxiUruBUhe2lxfQp5pg+B8ixFPEYyjyvGYivNVYx5J/U8Qo1KNaMlU5uSUY1KK0cpVEuZRfRh+OMNT4jwXhrw5mCzTFVnHMMfjcTW+swoYR11l+Jw9LEYevGVPHQl7OrCjVw7pwU5VKkryipch+0bfT+HtT+HniOyKm+0fUXkjTzpIDKI3iumidkXckMjw7XbkgsMA4OfkvGTM6+Rx4WzOlXlTqYbMsDCuoTknUjT+tVavs0pwcqLcLR55pO6Ukr3Xyf0gc6rcJrgzO8DjJuthM0y6nW5KsueVGisZWnTioVKTavRVoTmoNyjzJXTX0Z4D8T2fi/wAM6drtnn/SLeNbhSwYw3Ihjkmgdt7HerSdGOefpX69wxneF4myXLszwspKn7GhGpCbjzRrKhSqVFaM6isvaKzlLmf2kmfufB3EmC4t4ayvPcI2pYnB0I1YTcHUp15YalWnCXLUq2d6qdnNz195XO2jI28DHIPpzgHP619Lfa21tPTofUxb5Ket7xX5eZLSGFAFSbBJBbaPLyuTj5s4XrnnnjAzxWTpt1KdX2jjGEorl5rRdne9tr201eq003C9FOm6k4x5ZRklJpaX0dpeaeqa7Hwt+1TeWcmr+HbCIR/a7exuJrlgdsoWWV0VpWGd4yrMM7Rl8/xGv5X+kPj8HLEZfhaeFj9YjyN1HSgnZyx0UlNPmfvJySafdu+h/E/0qcdhvb5XhaVGl7aMqdZzhTSmlJ5jGDck7/Em9t7Pe1/k4KCDu2ttJ+UDaDyQgYNnkIQeM/Sv5klGvy06XNLkk4uMW5aX0Ts1to1dXSV9T+PYTqykoynU5ZR9xTcrNt2Uoq9l1s1dpPQ+gfBnxJsZ/h14g+HviYBwunXsugXr8r5xgCW9o5kk/ctFOsUkexW3B3zgg+Z++cN8f4Gr4f5vwhmnK60MNiY4VzUGouOCp4alCLqV3JNTc5Q5KKs37v8ALH+keDfEzC4rw04i4EzypGdWGFx0MBKbi0ksvo4TDwTrYiU7qcqjh7OgrN+5Z+4vCYZ7nTryOe1naC6s5opILmF2WVJYtjKynaMAEBc5OV4I61+K4XMMXkuNWNwOIlSrUp2i4ynC8YzjOKfJOEuW8I3tJbLqk1+BYTNcbkOPeMyqvVw2LoPkVSlOdKKpwqKolz0p06ianTg7XSiknpJXLmp67q+rytJf39zctLcS3LLLNO8ZmnkaWSQI8pVZC7Md23J7k16OKzzPMw9ri62cSpuUp1pUo4qvC97zf7tzlo+aUVd+Tb3foY3iniTN6dVYnPsVVqVpyrSprG4pxcpqV48kqstW5tNWtZ2b76/hjxbqXhWHWJdLlaC/1TT30yG8QsJLOGeaJ7qWNzIP37Rwxqp24TBIUk5rt4U4rxvDc86xODUvruOwOKpe3k6icPaypTlOM4VKc+fnpxfPzNxfvas7uG+Msdwth8zxWCjyZlmFCtgHWvUi406qpznUbhVp1HUdSknzuTSd5WbsaPwz1pdD+IHhbVLiZhAusW0d5I7kOY71zFcySOWH8Dyks5AJbJJJYV7HhzxFVoca4PHZlilTWOxcHiK1WrKOlfG4ec71atTbWVT35PaUpX1kfQ+GXFM8u4+yXOMTjJyrZnj8NQxlatWfLGji8dh6mI/eTqxlGMZJz/eylFLmlNXfMvUP2jvGWleJvEemWGjXiXttotrcQ3MsUiPEb6e5mZgjxSOsmI1gy3ynDYJzkD7Txt4qy/iHNMNgMqxHtsLldFTlOM4OE8RSqYqm5RdOpOMk4Ti1JxhJqV00mub9J+kZxllXE2aZflmRYyGMwuU0IV686VSlUp/XKNXHU6ivRq1FzKE4N+0hCpaa95Ra5vRf2U9deS28QeG2bItJF1aBWYgKtzJBbyKBuyFBQ/wkDcBkc5+4+j1nFfF5fmmVVq3N7CVWpTTlJ8sY08DRjZSnK1tlywSWyfQ/Q/os8Q4jMMpzfIa1Zylgq9XGU4uc3y0YUsuw8YpSqytFbJKCir2UtbL7MjPy+m1iB2+7wOPr/Ov6US5YwXaK/I/ru3LGKWi5U1934EtABQBWl27vuljs6bcjgkrj/azn86lPmlGnayjafM17u9rX79bWEoU5y5JRje17tLZO2/ZN3PhX9qq2tYtb8OXyrtkl066t5cKR5rpNIyq21CFKtIMB2HC1/LH0g8DCtVwNelyRnTUOd7O0HjX0Tu9erXmfxZ9J7LKNXFYHGUHNSp0FTmrq3NTlmMk7RTukpb6PW1tr/J5dMgExsTkLllBO0bemRkZGM+1fzXh48ntZVeeunQlCnKPvxhV0cLuVuWMVd+77yTTVkz+OYxxFSKlyOMaNoe0akopxV9ZWsrJ3d7NJXtoGRldgZQAv4sCcqF5KjlTuxjBxnIOOSN4RlJTk8S5v4XpyWvra0uZy/wC3beZvKVKl7Grh6zWISh7RRklGe8pK0bSlzSSSUnZ3SlqNxgBmBGBj5skAk5+82O5PetYQqyVSpPD1ZU3FxUuRtc+ju5PSNk273vbU45rEzc37OooVZuXwy2lf5PTvuAIADcBV/iz8vI+XLdB1HeslGm3yxdWTlT5Ulyt+0vorb+zb6b33RvKUac6TwlGrdUYxnzwV/a3vKUOW3u3tyylaV736C5+6MegVVB59O2M/jWrhjIRUXhqlKLgldU5xcoPTXbmTXyehmoV5q1WE405VOeWklKz35ea6SSbtfS/UCxU4ACuMfKSFLFfu5Oc4yfbqal1atONOMKboum4uNSMZQqJx2tLyaUtviSaaBS+r1KcsPOpSVKcaim5clWMoyunFxa5XFRTi9GpK99ELgZ4AHPGMKcHk/KT1ySf/ANVOc6uIk3CVSU407zcnJttP3m2nJvmbu79dWOVSVSdatGvKTq88qjqTbnPmd53evM3e/vNtu/MfRf7MmoGz8fXlqgf/AImGiSwhsfIHju7V0DlcYAw3I3EE9Ouf3bwDxksPxLiaMJunTr4KrCSleK9s8RgdXaSXLbS7vLvc/pv6LGLqYbi7GwSk6GKwdejKydv96yx6+9FL3V5ra6a1X6JxElc8DJyuOMAgEZHrX9mRaa+KMuXS8XdadD+/0pxclK2jdrX+Hpe6Wq+4lqhhQBC/UDp7jgjqOoqoqz/Tp9xlKo6c1aKeltV010/A5vVvD2g6xsj1fRtM1MNgA39jb3LoJA5cI8sZKgnPAP8AE3rXmY7h/JM6h/wp5VhMbyJ29thqFXvf+LTnvzO9v1d+DGcO5Bn9J/2xkmAzDlTt9YweHr9P+n1Op/z8ne3d93fm5vhh8P54vsZ8I6DFCxJIg020hYFhgnekQO7B6nJ4FeHV8OuC50pQXDuApQ/lp4LBwV3dN2jQ3t19D5+t4XeH1bDVKT4PyilTbl7tPLMBBXaab0w27XXyRzv/AAoT4YTGORvD6r5D70SKZ4o22twsqxgeanba2RzXhUfC3gl1ZyWSYaLjK+mGwlt76p4dry0Sdup81T8FvDhVvaLhnBJxldR+pYFx0d7OMsK1bTpbS6OmHwy8Ax2/2JPCWgLDKjRsRpVgJgAhUFZhbh1fAB3A5zXtS4I4Rw2DqYWHDmWypy1blgcK5aw5GrqitLLa2931PdfhxwDGj9RXBuSRpzTvU/srAKsvd5LKosPdJL3kuk/eWpz2lfAz4a6Nd3N5baBHcNM2TDqJTUbeMKRIqQxXcb+SgbOFQj7x7nNeHhvDrg3D4idWPD+Bk1K6jPB4Rwi209EqC6pbt6Kx5WG8F/D3BYh4uOQ4au23JUq2EwE6MdeeygsHH3bq1pOXutrqdBL8NvAUzJv8I+Hx8v8ADpNiuMHAHEHTFfQ4jg3hKrCm5cM5XeMVBWwGFWivv+637vqew/DPgDHRU6vB2TUnQXskqWV5fTTULtSklhnzTfM+aW7suxi33wY+Gtwcv4W05Cfm/wBHiW2GcsPu24Qdh1Ga8LFcC8Hvm/4xvLlbtgsN5/8ATo8vEeD/AIczTf8AqnlkXfpl+BXfb/Zv+CZcvwB+GMwH/EjeLc23EN1ImOTyDyQfxx7Vx0vDPg3E+1rf2Nh6EowlG1LD4aEbJ3u17B666vskcL8DfDfEc8/9X8NQfK42pYXAwVtXt9UavfrvZI1/CPwm8F+DdSOpaHZXEF2omVZJrpp8KSgwA69tgxz1yepzXqcMcBcN5Fj62Ly7BqlVTml+7w6SvUpSdnChCS1hHRStpsetwj4a8KcKZjWr5LgVhqi9orqnho6e1o6XpYem0v3ULpNLT0t61bkmMexxx7AYr9BcI03aEVFPVpaav09EfoMJOUq1/s1ZxXonoWKRof/Z\"/>"
  },
  {
    "path": "examples/sample-book/gen/datafile/flower2-datafile.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"image/jpeg\" pi:base64=\"/9j/4AAQSkZJRgABAAEAYABgAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCEAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAgIDAgICAwQDAwMDBAQEAgMEBAQEBAMEBAMBAgICAgICAgICAgMCAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIAGQAZAMBEQACEQEDEQH/2gAMAwEAAhEDEQA/AP38oAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgCrc3MVlBLcTyJDDBG0sjyEKiRoNzO7kgRxhQcseF6ngcgGN4V8UaP4y8O6N4p8O3QvtD17T7bU9JvRFJCt1Y3Kh4bhIpQHRHiKuu7swoA6OgAoAKACgAoAKACgAoAKAKrzFM4MahN27ecAKmcvu3DgcA8cE1mnKVvZWUYVFGblfZfHy2uuZLa+mjvYEpLl0051G/l69/wBSN7hohuKhVAxz8uGALMSScbQqnpnkc4HS0nKU4U5RvGLavtdOyvbpdq/l52Qua0XyU6k3Go4csI8zcV1ilvd6J6Jtpbn5b/tXftqafbReLvhB4F0trtdQsNR8L+I/GBuni+xpcltO1y38O2kHN5exRtdwid5hGsqBgsijn5XM+K8FlmKjgql51YyjTnOn7OVKE+eVOV5OtFpRlG7urqNna7sf0X4ffRz4q404XzDiipKnluGhg8RWwOCrvGUMwxFWOEw+Mw0lh3lleFbDVoV3SUqNVSqV4uFNpLmf6KfDfVvDmpeAvBt14Rkgfw1J4Z0Q6I1uEjhTTYbG3jt4FiQBYnjgEQKYBHTFfR4Ot9aw0cRTcJRlFShJX5bSipRu1zW31s/Q/B87ynGcP5njsqzGKwmLy3FVcNWp1VOnJSo1J052jUjTnvBpOUI7O6Wx36nCryDwDx0PHUe1bxukr2ukr22v1t5djzU19l3j0e+nTVbj6YBQAUAFABQAUAFABQB5f8Rvhva/EG0sI18TeMfB+saLePqOh+IvBmuz6RqGm3rQtblri1IksdcsmT71jqdpeW7f888/MMn7SlanSfLTlNTnZtb6S20tbunbrpoJz5oeyV1yTU726wTXL876r07H5gftSfFz9pP4Q3lv8Kr74gR6pp+sRR6ronjrSdDtfDPivVtDlnbTzpWqvp7LZW99BdpLDJcWdraeYs0DsvOX+V4sljliMpy/J60sJUzCphsPKpGU6bU6861P+JQTklzezntJ8qu03ov6g+jjwXwnxNjc1zjiClCvT4cwuKx0sNP6tU9t9SnltWTeGxFKrCrGca9Wn78qd27c8LOZ+UcXjuLWNf8A7OujqDajc31xbpe3RLJNeGZ3MsrFmEjPOssm5tx+fOec19/xJ9E7j/JPD6h4hY7OcsxeCxeEhmbisZmdTEqlVy2rmVpe0yiEI1FTpyUksS4qo/4jTdQ/pDhb6THh7HjHD8AZfw/mWAUcwhw5hnRwOXUcHGssbSy6jOXs80sqUfdcnTw6kqUU4UNFA++v2V/2rvEXwl1bTfCniW5utW+GU7S27afHDPf3vh+SWVJXv9JtoiJLoByVe0Xc20l4gRlX/EOGc/zDD1IZLVoYivQjVVCVXDwnOcGvZ0NKjnaMIr3vgsm43S2XL4+eCnDPEOU5rxfg62ByfNcLKviZzxNTDYWniXTp43GVYtRws51a1aUrpuqpNwlO8pKXtf2C8K/tBfCrxbrGneG9C8RzXGsX6ILS1m0DxDYxSyeUZXh+2XelxwJMixygqzr8y4Hv+uwioQhFObUYpJz0nZKyc1paf83nc/zfxFH6rXrYa8ZfV6k6d4NOH7uTjeEo+64u3uuOjVmtD21TwOCvAODwRnsR61RkOoAKACgAoAKACgAoAqsilm5JwD8pwVDA9hilNXhyfCpWV46Ss9NH+PqKDVKTp20leTb396y5V05dL2s9ep+dX/BRzwxo0/wo8OeLpbGJtf0Pxfpuj6ZqAuWt7mKz1+G4F7aQQsFhv/Ml0+0JheRSiQvMv+rYSfL8VUK6weDr4SU44nLa1KvSnHmU+fDxrSgpSgublc7SlyuDb2cT95+jzndPJ+O1QxeJdDK8zw6wWJpOoqdCpRxGYZbGs5wnOFKU50oOMnUjODgrShKKsvwutPDWhWmryX0Dma5BS7WFp12WplYosyQLlrcbgShkABDce3vZ79IfxXzHgrAcBZnDCUcgo4OjgVVprOY4qWGjgamWxc5VsynhnOWHnOUn9XVN1EpKHs703/YnDngf4PS49xXFmQZ9UzPiKjiauexy6njclxGBw+IhmNLGRc8Jh8A8TSnSxTp0JNVueFKapKsqklI/Yf8AZC+CPhm98B6B8b/DWlXN9400u41Gx/sfxQqyaYdQ08+TqFzoRitVLyXMTRm2eYTG3k3xK7bVavzPAZZVw1Cjj8snVljHONVwm2qbnaNRqfJGMrSmoqTcn7u7u9P5G+lJx94rYXO87yLAZllssDhJYyvSwOCxOa/vMNTr5pQjhp4enilS/tFwtQnRlSjTuowT9nY/Sbwd4x0/xHaSCCM2GqWB8rV9IvlFtf2N3CkaSmW2aR3jhLsVWY5DZ5ZiQz/eZLnNHMW8PVaoY6hG1ahJqNVTi4wlONOU3UlRlNyjCbSbacXaaaP5S4a4khn1KlS5Hgszw8YLG4PFL2WKhUjyRrShQdSdX2XtZOEJ1FzOcZwmlOLR3SyHYNu1gFGCoJxxxu54969aMpfWJUrctKEXeXaSlbl5trpa2tfrsfVytDms1+6vzK+vu7pLv2TJlPyjtwOnGMitdFtstiYtNJq6W6T3t0uPoGFABQAUAFABQBDt68gYbtxjHb60PZJbx/Qlq84tfZsn8nc8U1z4Paf4s+J1v478a3MPibSfDej29j4F8IXenq2l+G9XuJLh9e8TzRzO8Ora1cRmyggmkjAtYUmRF3yF2UqdOrFQqRUrdJJPZW2afc2pY/FZfXhicFVqUKsUvepynCStJSvFwlFppxjs01a61SZX+KHwD+GPxU8PXmi6/wCEtIa9Gn3VppGuW9nDY6vot1PCVgms9VtUWeHy5ljd49zRtg7kOefPx2TYTGqnCdKMfZqNmox2XMk9YS7vp1PpeHOPuKuG86w+bZVxDmOEqxcHWVPH4ulCtD29OrUwdRUcRScoTdKPPh3NKSSTdrWwv2WFks/gV4A0qaz+wajoWmz+H9ZtntkiZNc0C/udG1Qyoir+8N7YPIemQw7AV24fL8NgsPTpU+WSjG1vcdtlayjG223zObjDM8wznO62cYyv9Yr5pNYqs5VKlStGWIlKtUjLnnOUYU5zcWpznKMk1KUtW9/4i6XH4d1jSfiFpSzwXlpd6fpWtW9sn7nU9GvLmRZEvIYVVp5Vnnt8M8nRcc7iH+A4oyzE4HNMt4oyZuli6DoYbF0IuUYVMF7aeIrVnSoxUpVFONOCqzmqaj7so3UJR/DONMrxOV5xkvFvD7dDMIYrCZfjKEHOFLEYSVepia1apSoRjOpVdSNODrVKnK4+7ODcacoew2UsjW8DFAu6KJyoVgQGRCQwJ4cZwa+3oV44ulhalJqMakKdSq1papJJzpyabtJJq8ZXl3Z+mUJqpTp1rOM6+GjWnBr/AJezSlKKi9bXdkm3Lo2zUXgDjbgDjpjj0rsty6fy/oax+GOnLotNreVulh1BQUAFABQAUAFADAgHc8Nu+h9OnShLlvbqKK5Oa2vM29fPsIUU4GOOeOMDOQePcEjj1qeWz3at0BJLp8n/AJFcIo3Dkncx+bnOcckD+ElR+tOc5LkjryJKLlHeO61a0Vlq+2gO0FJRp04zSc4qMba/ZlJb8195LXazuULCws9OW5jtbeGzSe9u76VI0Efm3d7M093c7QMbppnd3buzE96OWNJ+7UlUVtnLmfN2t38vMhxqc0V7eUpSpqbTnJyi29YQT1VOL+GPRnmvxWuLh7Tw5oVkFMviDxPo2mvL5oWS3hWeS8ldIxgsfKs3IJyFKjI54+J4yxtTDLIqWFvOtmea4PAVoRbbhhKzqutLlhJSU4uKjealTX2oydlL4DjnHVMJHh3LYJueaZzgKE5/8vYUajrRqShK6a5eS8bxlFS1alblPWIFWCKNFLEQxJGpyCzbFAG4jGZCBz0r6+jQp0MPRpRXsFT5JNWUG+WKTlKyV7295tLbyPu8NGNOhHkk6vsKaprXmk4wirc1t5vrsrvZEnmspUbeCAehyAeOeeCKbqqFeFFJuLgpc3TWXLvf57Gik1C8oSvJ+7GK1Sa05k9U09HYUSnONpAXnJBA4PTOetaxhWjN87p+y15VFy5730vfS1t7dfI0a9xOLTa1cb+8la7XKtU09LProTDgD+HAB9MYqtvkJaJactum1vl0sOoGFABQAUAFAEbMVXjHBxz+lAGKuq2ct1cWsV1A13aMEubWOVGnt943xPPEH3QxtjhmB3Y4A7cscZhJuvhYVoRr04Tk4zlGL920HZJuTV2re6vW615aOIw1XEV1DE041aEJ03CpUjFqUZR1UdXa7snp6ae82/1O009rb7XNDGl3cQ2tvvYLJLczuUjijDON+4oxGMnHbvXLjMyweX/2ZRq1Y06uNxOGowblBRlKs3GPK3KLbbXZ6K+r0WWIxuCwKwssVi6dCvi8VSwlBVKkIqc6r/dwjzSUnzSi7KN7pOybueR+NJjc/Er4cWgbakc15fqoAIRkjkgL7jkRyqZxzt4G704+S4hqU6HFPDmHj+8UsRQru9pxjL21aLd01ZKySdm0paS1R+fcU1FW444RwsWsTChUw1ecY2qwhUhiK8JbN8qSajqlJKVuZcyPStb8UaH4ZtvtGr6ja2EKfMPtF1BEXCK+TEryAzcxsBgAtivpc2zvLsirRrZxjqNCjXgo04Tqwi25ylKPLCrKCekZL3b9lfW32mdcR5HwtFyzXG0MAq0HOEJzo0m3PmtGMJzpNv8AdtWjzbWTdnbnvD/xI0nXEuryOK6tNEiKC28Q6nFFp+k3rvKYhDaS3F15khG3IPlhTuBDYrz8v4sy3GutXnSeFwdCcoUa9SFOlCpTjySpzjUlVcZRlGTalG0ZcrlFJHk5RxpleZ0K2Pqy/s7LKE5Qp4rE+zw1GsoRp1I1KdWdaVOcJ05txmpJTUJSSUVc9GgmhnjSWKSOVGjWRTE6SIyMoZWRkYggqRggkcjnmvpqc/rEYVaNRSoytZxlda2ktYtxvytdX9x9bQqUKtOGKw1WNWhUScakZRnC0kppqcG4tOLUk02mndaNMtrwB24HHTGPatrcun8prt1vbqOoAKACgAoAKAI2GRtHG059Pu0AfPvxf8L3lnp19428K3lzo/ibRl+33E1q/lw6jZWMMpkgv0WPNxEwCrgugAVcHOQ35p4g5ViY5Xi+JMkxVfCY/J6NWU6VOrOnQrLD062Il7anRi5zcp8im3OPNBWfK1GS/G/FPJ8zwWQYzizIsdjMFmOR1KmMqUqVerTwtfDYWhiMTUVejRip1OacYKTdSEHTTjKUWoTj80+MPjZfeKvCfh8Ix0zxPoOvWeob4FZ47hbW3CxXIMk8jBvN3Ngn5d5BGRmvwTiDxaqZvwvlUK8KOE4hyPGYapGdFODqVMJhaii5N4l4hRliJuU0uVtxi04TVj+ZeNPHHGcRcJcNwoypYLifIs3wGJbw8pQjWhhMHWXPWUMXLE+9iZp1vhjJRjaUJpI0br43f2no+g67cQWy+OPDN7LaIu1ktr6yu9Puke+8z7SXkkWdonYbhhlAzk5fpq+K9fG8P4TOKscLHiHK0qUdJWqeywzrKo4vEuup+3dptTV7uyjLRexLx19tw3l+c1aWEp8WYCrTwU3GKUaiWGdaVezxn1lT+spJzc7SvfkU9I+Q6v4w1vxz4j0y88SX5ulW8tIVRg0NnZ2pug0hjid32nBOWYscAAnAFfnGO42znjHiPh6rnGMlGhSq4GnUo0qlWNBQjiW5v2dWtWjflrTjeTty6NaycvxzF8ecQ8ccXZLi8/zOcsHHM8HhpUFXr/VVhVjOdt0q1etTT9nWqQd37PkbTjrJy9h+NPxR0270228A+Fo7RtKsoLNNVvFgQ5uLENEbW3kjk2sgZYiSFPKZBHAT9K8TvELCUMty/h3hr6tGGFo0IVq9LkjX5qdLE0JQjUw9eLjy8sJPmgpOaUnbRS/YPGDxVweHyXA8E8HxwUcNSw9GFfE0kvrEKkKOLwc6dCphcUlBQtSmnOj7T2nK3aNoy9W/Zm8aX2t6ReeHtTunubjRpN9rPO5aY2BjtY4YWZn5jjbKKAo4UZJbJb9C8E+La+c5O8sxWIdXEYRJRbm5S5adDCU25c1Wcm+ebd+WOrdrbP8ATPo48YY3PMiqZLmWLlXq5W7UuarOc+Shh8BRUantatSTV5yulGOrdrao+sF+6McDAx2xxxX7wk4pJ7x3P6dty6Wty9PQdQAUAFABQAUAHT2/SgDkvE9gdQ0PXNN3AfbtM1C1XdyB5tvJ8pJU4+Vcjg89j0rx+I8NLF5BnOEoJRlVwWJ5kla/Nh6kHflTu25Lda6XZ4HEmElm2SZ9lcfdpYrK8Zh5XulzVaFSk3opLaorNxv3TWj/ACTv4vsd9e2qtkWl3PArDjKxTPHnjHZf1r/N3NMKsPmWZYWT5a1DG4iFm7L3KsodUpX5l2Xp0P8AJfPMHTyzPs9wEZXlgMbjcJBK170cRUppq0YPeOjUYv8AurZVMKvygdBjHYjuv+6fbH1rhi6tJypSquMHe6Uny3ulfXS9la+9jxlPldOk3LkjOM5qT0U9pO17XS0u1fuGCFxk91bnHTGD9cilTlVwlWNaneLpyUoS1WsXzRs1bsmrPpob8tagva0KzpyjV9pDknKMlbWMo8trSVlZp72sw+6euT19TkdevfNa1o1q0o4mtU5vbzV3zSbXO3Nq8r2td6Xfz3FNV3WoV6tZ16lSUG3Kcpz5pScnGTet73um27vrc+pf2VPL/wCEt8RRNKVb+wI2WMsACEv7cMwH98eYvI7Z4r+ifo+qnQzrMV7TmlHD1ZqCa2VbA3fLpqrRXbden9X/AEVayXEmdUZzcZQw+JqRg3ZaYnLYt8r7Oy6aXPv1RtVR/dAH5Cv67T7aJ7H92PRvpYdQIKACgAoAKACgDGvlL297Hg7jBcbNg+YZikRcdfnI6YHeufFU5zpYmnSsozws4Na/E1JaWTXZLRvTY8/MakaeGxlKlGTnUwlSL5Eua8oTva2vNdK109bbn5Mazo+qf8JFrtkum3q3MGp3fmWy2s0kkO+7KR+aqR/KjFxhjw2Mg81/ntxDwxnWJ4pz+lRwVX3cZjqkZRo1+XkWMqKPvRpO8nzJ6K3W+1/8r+K+F89r8YcSvC5PmFdPMMwrxlHCYifN/ttazbhSd73TbW91rqit/wAI54h8ppl0PVfJUfPKdPvBGm3qC3kfLj8a8irwbxVSjepkOY+zj7yqfUsY4yVnaUZOik4tLmTW61ueV/qTxhGi51OFsyhTknPneW41aON7qToWta7vr3uZDpLEfJaNkfPKMGRiRxjDKCOexAPtXBiMvzShCNLEZfUoeytZzw9aEvcTXvc0V2d9tU+x4lbKc0wlVQxOBxlD2fu2nRrQ2bWqnBdn9z7MHilgx5kMkPQrvUKDnkENnBHvx9KzrYLGUvq1L2FVwmqdVPknZOV1aPu2UUlotbd2JYDMaFbDy+o4lwUoVY89Cq4/FeL+FJxaW63V7M9e+BuuXHh34haRdbCllfrLZX80gkENvaOAGnLjajqJngAbfjPPOMH9Q8IM4fDvF1P28JxpYul9WqqonaMauKwilKKlKCUl7NWb5klfmi7pr9t8Bc5xPD3H7qYqmsNhcwpzw1V1VOmoQxGOwPPKDlKEIyioXi5cyST5otar9N7aeOeKN4WDoUQqysGUgqCpDKSGBXnIJB7V/c9GpCrSpVaX8OcIzjt8MknH4W1s1s2uzsf6QUZU6lKlUpT56UoRlCSaalFpOMlKLcXdNO6bT3TsW60NAoAKACgAoAKAKjgHP8OCBxgZAHQ+1EJPna6KDsvmVGlT5tYKV4tNNJ6X9Dl7PwnoVvrWqayljCb/AFSO3jvZHigdZVsZJDDhWiOwkzsXKkbii56HPgUcgyxY7F436vF18RKSm3Ck/tRl1p3ev8zZ87RybKKWYYzFLK8LKvX5+eUsPSbdqi+1yqT1SfvOWupttY2iKI/s8LRjC+W0UZjCjCgbNoXG3jGMV60cswrSpuN6cVZQahypJWSUeW1ktLW2PXhlOXzjyvC0+SS+D2dPkS/lUXFrlWyXbQyp/CXha5PmXHhvQp5CxJeXSbB2yRuJJMHJyT1z1PrXHPhvh6pL99kWX15X+KrgsLUl53cqT3d2/NvueTU4L4SrVXUr8NZXXm3durl+Dm7ttt3lQbve/wB77kT+CvCLokb+GdBZQq4B0jTiVABAVT9myqjsBispcK8MVHafDmVtU0lFf2fhLWW2jpP8DixnBvCNWpRpS4XyiMIqMUo5bglZJtL/AJcPYyz8L/AYuhcDw1piuodAiWsKQ7JGRpEMKoEZWZQcMDyOMV5K4R4XwuY0q9Hh3LYVIuDi1gcKuVqpGWnLSVves/VLsc//ABDvgujVp4ujw7l9CtT5eSVPBYOHLaXPpy0E17yT33S7I7mzsraxgitbSJYLeCOOGGCJVSKGKJFSOONFUBEVAFAAAAAxX10YwpxjTpQjSpwilGEIqEIxWkYxjGyjGKSUYpJJJJaH19CjTw9GjQpRUKVCEIQikkoxhFRikkkkkkkkkklokkXB0FUai0Af/9k=\"/>"
  },
  {
    "path": "examples/sample-book/gen/datafile/golden-gate.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"image/png\" pi:base64=\"iVBORw0KGgoAAAANSUhEUgAAASwAAADhCAYAAAByfIirAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAa0GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWZFWD0iaHR0cDovL2NpcGEuanAvZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBSaWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6SXB0YzR4bXBFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iCiAgICAgICAgICAgIHhtbG5zOklwdGM0eG1wQ29yZT0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcENvcmUvMS4wL3htbG5zLyI+CiAgICAgICAgIDxleGlmOlNjZW5lVHlwZT4xPC9leGlmOlNjZW5lVHlwZT4KICAgICAgICAgPGV4aWY6SVNPU3BlZWRSYXRpbmdzPgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT4xMjU8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2V4aWY6SVNPU3BlZWRSYXRpbmdzPgogICAgICAgICA8ZXhpZjpGbGFzaCByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxleGlmOkZ1bmN0aW9uPkZhbHNlPC9leGlmOkZ1bmN0aW9uPgogICAgICAgICAgICA8ZXhpZjpGaXJlZD5GYWxzZTwvZXhpZjpGaXJlZD4KICAgICAgICAgICAgPGV4aWY6UmV0dXJuPjA8L2V4aWY6UmV0dXJuPgogICAgICAgICAgICA8ZXhpZjpNb2RlPjM8L2V4aWY6TW9kZT4KICAgICAgICAgICAgPGV4aWY6UmVkRXllTW9kZT5GYWxzZTwvZXhpZjpSZWRFeWVNb2RlPgogICAgICAgICA8L2V4aWY6Rmxhc2g+CiAgICAgICAgIDxleGlmOkNvbnRyYXN0PjA8L2V4aWY6Q29udHJhc3Q+CiAgICAgICAgIDxleGlmOkNvbXByZXNzZWRCaXRzUGVyUGl4ZWw+OC8xPC9leGlmOkNvbXByZXNzZWRCaXRzUGVyUGl4ZWw+CiAgICAgICAgIDxleGlmOkZsYXNocGl4VmVyc2lvbj4wMTAwPC9leGlmOkZsYXNocGl4VmVyc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0NDg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDdXN0b21SZW5kZXJlZD4wPC9leGlmOkN1c3RvbVJlbmRlcmVkPgogICAgICAgICA8ZXhpZjpNZXRlcmluZ01vZGU+NTwvZXhpZjpNZXRlcmluZ01vZGU+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjY0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6U2NlbmVDYXB0dXJlVHlwZT4wPC9leGlmOlNjZW5lQ2FwdHVyZVR5cGU+CiAgICAgICAgIDxleGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT4xPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+MjwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPjM8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT4wPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC9leGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgogICAgICAgICA8ZXhpZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzc1NTFCNTg1MTk2QzA5RUUwNTA1ODE2MjRGOTQ4REZDPC9leGlmOk5hdGl2ZURpZ2VzdD4KICAgICAgICAgPGV4aWY6RXhwb3N1cmVNb2RlPjA8L2V4aWY6RXhwb3N1cmVNb2RlPgogICAgICAgICA8ZXhpZjpTYXR1cmF0aW9uPjA8L2V4aWY6U2F0dXJhdGlvbj4KICAgICAgICAgPGV4aWY6RXhwb3N1cmVUaW1lPjEwLzQwMDA8L2V4aWY6RXhwb3N1cmVUaW1lPgogICAgICAgICA8ZXhpZjpTaGFycG5lc3M+MDwvZXhpZjpTaGFycG5lc3M+CiAgICAgICAgIDxleGlmOkV4aWZWZXJzaW9uPjAyMjE8L2V4aWY6RXhpZlZlcnNpb24+CiAgICAgICAgIDxleGlmOkZpbGVTb3VyY2U+MzwvZXhpZjpGaWxlU291cmNlPgogICAgICAgICA8ZXhpZjpGbGFzaFBpeFZlcnNpb24+MDEwMDwvZXhpZjpGbGFzaFBpeFZlcnNpb24+CiAgICAgICAgIDxleGlmOldoaXRlQmFsYW5jZT4wPC9leGlmOldoaXRlQmFsYW5jZT4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpEYXRlVGltZU9yaWdpbmFsPjIwMDctMDEtMDFUMTY6NDE6MzYtMDg6MDA8L2V4aWY6RGF0ZVRpbWVPcmlnaW5hbD4KICAgICAgICAgPGV4aWY6TWF4QXBlcnR1cmVWYWx1ZT40OC8xNjwvZXhpZjpNYXhBcGVydHVyZVZhbHVlPgogICAgICAgICA8ZXhpZjpGb2NhbExlbmd0aD43OS8xMDwvZXhpZjpGb2NhbExlbmd0aD4KICAgICAgICAgPGV4aWY6RXhwb3N1cmVQcm9ncmFtPjI8L2V4aWY6RXhwb3N1cmVQcm9ncmFtPgogICAgICAgICA8ZXhpZjpGTnVtYmVyPjI4LzEwPC9leGlmOkZOdW1iZXI+CiAgICAgICAgIDxleGlmOkxpZ2h0U291cmNlPjA8L2V4aWY6TGlnaHRTb3VyY2U+CiAgICAgICAgIDxleGlmOkV4cG9zdXJlQmlhc1ZhbHVlPjAvMTA8L2V4aWY6RXhwb3N1cmVCaWFzVmFsdWU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTMyAoMTAuMHgyMDA2MTIwOCBbMjAwNjEyMDguYmV0YS4xMjUxIDIwMDYvMTIvMDg6MDI6MDA6MDAgY3V0b2ZmOyBtIGJyYW5jaF0pICBNYWNpbnRvc2g8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMDctMDEtMDFUMTY6NDE6MzY8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDA3LTAxLTAzVDAyOjA5OjAyLTA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAwNy0wMS0wM1QwMjowOTowMi0wODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDxwaG90b3Nob3A6Q2FwdGlvbldyaXRlcj5SaWNoIE5pZXdpcm9za2kgSnIuPC9waG90b3Nob3A6Q2FwdGlvbldyaXRlcj4KICAgICAgICAgPHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD4yMDA3LTAxLTAxVDE2OjQxOjM2PC9waG90b3Nob3A6RGF0ZUNyZWF0ZWQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q291bnRyeT5VU0E8L3Bob3Rvc2hvcDpDb3VudHJ5PgogICAgICAgICA8cGhvdG9zaG9wOkNpdHk+U2FuIEZyYW5jaXNjbzwvcGhvdG9zaG9wOkNpdHk+CiAgICAgICAgIDxwaG90b3Nob3A6Q3JlZGl0PlJpY2ggTmlld2lyb3NraSBKci48L3Bob3Rvc2hvcDpDcmVkaXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6U291cmNlPlJpY2ggTmlld2lyb3NraSBKci48L3Bob3Rvc2hvcDpTb3VyY2U+CiAgICAgICAgIDxwaG90b3Nob3A6U3RhdGU+Q2FsaWZvcm5pYTwvcGhvdG9zaG9wOlN0YXRlPgogICAgICAgICA8cGhvdG9zaG9wOkhlYWRsaW5lPkdvbGRlbiBHYXRlIEJyaWRnZTwvcGhvdG9zaG9wOkhlYWRsaW5lPgogICAgICAgICA8ZXhpZkVYOlBob3RvZ3JhcGhpY1NlbnNpdGl2aXR5PjEyNTwvZXhpZkVYOlBob3RvZ3JhcGhpY1NlbnNpdGl2aXR5PgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpZQ2JDclBvc2l0aW9uaW5nPjI8L3RpZmY6WUNiQ3JQb3NpdGlvbmluZz4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0EyOEZDNTMyMzQ5RDg2MURFOTI2MEMzODhBRjJGNUE4PC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAgICAgPHRpZmY6TW9kZWw+RFNDLVcxMDA8L3RpZmY6TW9kZWw+CiAgICAgICAgIDx0aWZmOk1ha2U+U09OWTwvdGlmZjpNYWtlPgogICAgICAgICA8ZGM6dGl0bGU+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkdvbGRlbiBHYXRlIEJyaWRnZSAwMDE8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6ZGVzY3JpcHRpb24+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPlRoZSBHb2xkZW4gR2F0ZSBCcmlkZ2UgaW4gU2FuIEZyYW5jaXNjbywgQ0EgYXQgc3Vuc2V0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOmRlc2NyaXB0aW9uPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+c2FuIGZyYW5jaXNjbzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmJyaWRnZTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmdvbGRlbiBnYXRlIGJyaWRnZTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPnN1bnNldDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmNhbGlmb3JuaWE8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+UmljaCBOaWV3aXJvc2tpIEpyPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij7CqSBSaWNoIE5pZXdpcm9za2kgSnIuIDIwMDc8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICAgPHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+aHR0cDovL3d3dy5wcm9qZWN0cmljaC5jb208L3htcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+CiAgICAgICAgIDx4bXBSaWdodHM6TWFya2VkPlRydWU8L3htcFJpZ2h0czpNYXJrZWQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6QjNDRDhBMTcyNTk5REIxMUIyMjA5NUVCNjQ4RDJFMzY8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSIvPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOkI1Q0Q4QTE3MjU5OURCMTFCMjIwOTVFQjY0OEQyRTM2PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8SXB0YzR4bXBFeHQ6SGVhZGxpbmU+R29sZGVuIEdhdGUgQnJpZGdlPC9JcHRjNHhtcEV4dDpIZWFkbGluZT4KICAgICAgICAgPElwdGM0eG1wQ29yZTpDcmVhdG9yQ29udGFjdEluZm8gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8SXB0YzR4bXBDb3JlOkNpQWRyUmVnaW9uPkNhbGlmb3JuaWE8L0lwdGM0eG1wQ29yZTpDaUFkclJlZ2lvbj4KICAgICAgICAgICAgPElwdGM0eG1wQ29yZTpDaUFkckN0cnk+VVNBPC9JcHRjNHhtcENvcmU6Q2lBZHJDdHJ5PgogICAgICAgICAgICA8SXB0YzR4bXBDb3JlOkNpRW1haWxXb3JrPnJvZ3VlZ2Vla0BtYWMuY29tPC9JcHRjNHhtcENvcmU6Q2lFbWFpbFdvcms+CiAgICAgICAgICAgIDxJcHRjNHhtcENvcmU6Q2lVcmxXb3JrPmh0dHA6Ly93d3cucHJvamVjdHJpY2guY29tPC9JcHRjNHhtcENvcmU6Q2lVcmxXb3JrPgogICAgICAgICA8L0lwdGM0eG1wQ29yZTpDcmVhdG9yQ29udGFjdEluZm8+CiAgICAgICAgIDxJcHRjNHhtcENvcmU6TG9jYXRpb24+R29sZGVuIEdhdGUgQnJpZGdlPC9JcHRjNHhtcENvcmU6TG9jYXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgq1iPt/AABAAElEQVR4AVS9CbRmV3Xfud/8Xs2lqlJpQFIJCYGEBUIQMBgasDHzaCSwjW2cmNhx3MlKO46zVifLWb0c22t1HOh0EtsQnGBITGyDGzCTQUwyQiCwMEKAJISQhITGqpKq6s1T/37/fW9Jud9wz7DPns8+w73f/Sb+9bs+tT0xOVEz05P5TE5M1tRU1cTUZG1vT5Co2uK8ul61vrFVHn73Z6K2U7Rd25RNbE/yRYNtc1WTk+AAHyUljSk+k5PbgHDmNTFBmiZ+WTZFWdUmuGBACGA9xCDqToOehDxJJqT42qK9L9+QAYb24PczMfCwmWrpyCbtA2UaPlNmuttvgmgoPX0WeWgDa50sNV8ShDqnKSF42z7qgzfx9wEMMlFSg2hiiG4m5R9Y2ynUtjKBYIt6khxS3KJsi7bAhCRfJKLHgf7QvHmWoeaS81bzQZk8hgfYmpmaqOnYhTOKweyUYQmabmzaBttj99W17Vpe36oNmJmhLPyCVUybcgGPsVP0DU+USdpy+Q+PlOpT24FJY6HSriaQjdQUuGen1JmyN7x1zaPSooWt1gsgSbc0TUt8+hquVzOc52Ymaxbf9qw/rW+oT858tjYnaQ//OrE6Bt8kbWajB/2n/Xy09aZ659hEL6a1lw2VP31FWX1ZbJn4yNunECjl5rXjpjIILx+UiIui6IusrcObOp2E/2nsNKvTKDSIt7agKjvk28+BlIwv9Cvv4qFZ4LZpO0U7UVvksba5WWvr0IH22Ne1/7T2QSfKuDnw0v2o8QsT3dOOJDrDbhD0IwWK40dT9itx8dJfwhBC68NbW1u1jh7X4UF9aoeNpPus76kbGY6+kdf66Umcc3YalChF8pNwM41xNXp3ahwXUhTROSdqY4NyGYW+HUpBFCPKDk8ISckUZUYGMMYJdCDxKWmEU3lmUaQw25RbTdhM8AEFGEAgfuH8ytFK19q2t61CxYWjMOFoKR1dgbLgphRsQMMzZ9sKFxzSVtGclcv60BvSZAblpWXq05Y28iyszhLTyC9vfSvBLFk7YhuueQ6BfKl1kWACyeTQF9uJOn+aXxBObSnBAPy4NvJvBw83j9fZAINVI2tDiBFIhN2MU1g7lWAUbwOP/EzPTAPVTgny0KanIRftT9MAzqwvZVWc2IGEsskTQm8TdMwN3Kd81t6UchBQuRlnZmBUHwYtlcV7anIq/qfTQ77tQ7mN1L+alXBEkUbEm0QeeaaOzyZOrN/NUElfYaAFnteGPiJtmYMeZClFz+h6GiNq163tKbQDtM4hmJ8e/aAFDPayLGohZb+QpeiDcnmcQNZ0QCocmBE7QVM+TAc+/goukOm/c7TLwAATEwLBy/Rp3aeHQUPppY6MwqetNKXXeMWNFPTLHqoMSOa3J7p/hS9wCya2vKFn4JtBD+LJUIpclrWfqU/5o9Im2Ei7b29vUt/6UG5tZ64HKuC0OT4s/alJhiiQGJycDOlXW7RXBgdl/UG7xIRpgfxTDKtGcKOkQorfhhEGTm3koa2ElWEjbxgA25awcKw+dQCP+CFKVtkq3jNgEUhhOxgGlLpp5c0hfd7hg9RQJl+UkQt2uE+N+EjofMGPNR1FrBNCZW6j7PiYXpcagAHoAAYUcmwhDydbBFb5wkdTp3xwB1HAgCOPVKTJyffpI05iLuXNi9nwDXx4gSfrW1NNyw4iT45GBqpNeQJI3O0sTSczNXvUgNP6xilByvO2tGk5wpnTOGKb0MYA6VDRiDKkEQMRhCbQrc7rHHdyZqrm9AtANnGi9Wna4Qt2ejloLrpeNHLs7ES/0ImtJ9V0STcHKaQCXmijrxGahkCpr5BX4LTiBJbWAu0pNq2O7Jgk236BEtaCARoYQewM2ja+qtdLFJ4M0mpBPah7ba4+MrtCZvkQn1jSFiTOwrb5OFtyBZBVCPi0V9Hx4sUioQ2qAiYMh299RWwYIHmhphKQ4QJaW6QTRG0XfAbsx3RrkJ2Wd/1YXjk130wkwGUbmtLJOQNmKEs/pVQfV5zud048Wl4HxSmVCrNT9GNtnq4OsBOOdTSi7TNrAq+rpwkCnBODzDThQ17UqfjlIOXSSzv0CILITl49xbfFJbyy0Fy/d3Vkt0C9CpHyKEadh8bYN2HXTiaDonEKvY21TPcINJFRwGjnTEglpjPFsY32sAmRDUcYmYPoOOtKB6RABW4NjOu+JBHILxQCXdOWkeoPDFqWl+fUWd88Yo3oybyyWJqTNGwVNKqV0gGl5WgivDjSn8ZJQvcbwE63lXcP+RN3t245UFDK1ZICj+2bh+ZJjJvgmMAD0h4ELTMJnUq8ngc6zr7SBj1mKRmjAwX4JKMRpqZ95+XYg+bhS9u1TrrDm40mZJqWQm/haNrBIgcix1lJiyP2UefYVBtvIpMSOlCtMfLNM7WewiemXUrNOOqJ0LZ0PpIGJ/UrHpFmuWq5eDSscsordY61MmHnGf0gstFYXIGJeG1Hcba0BgwJ2CloD8LMvqRLqbbuoCBM2Eu5OhZOee2Mzri2EGCT6DB28nRBmtl/puSZSGTAEq+HgURHAxO+jl7IGqxYmigKugWAdJZ9QDVk+5p8orKBy9ELOyCMvAmzLj/QcElMNof4YAc6vbqZMviCKeXgVA/i2BSOtnLsUr0Nq0swg6FOHsUphDMa+7B5VoLgp70cGxjETYXwyujAkWBNiXZRv62XnqWJ2ZSHpokNaKMOXb5nxUDayYlKjG1jw4ZVT8ru7Ep7OBiSDR/KAEVO8kMKfVvHjgT8G6BEzGtUWBjWDtByhmQEzH4UZZnuwqR1Tk+d3Tld1aGoRgjwyRhtjJpARlgZTholWcdXcCRNPkqBXTtUIIUJWDub/Ol86aAaCAFTDQ/RA19NVvxBn2m9DkUJRcCnHPycg88zASjwcj/UA96HfKW1SvYAxyBTVAl86w79ZXiQhi06UMiPIc0jo3gcq0dZZ4OiHh0PBHEe/V+qYUaDZSSmJI4pF82REMolLdMeGtkSVEJKXQILUPABJPzAflp1OwOPQNAfVLAFb2ukN/FqO4O0Qy9pUmb4dMjSP/CFFLQfqYvMonESX3FGOaO9DbVwdzJ9pjVksPRoXlvGDJQDbwacBCscTvv1EhMZY3zy3Rx7tO7VlEZLkCKZJSbbGRb63YqBDhn3k+ygdl6DdGYhKErfl5a6sRPq7HYyZ2LxV4qm1ShAdmiDSyNvXiUzBfwGROTHb88GBmnKcto5oExmXgspNaDtGpX+5iRB+DGQ2h+Vo4Mu58DaqvntgcF+Jy0gOU+pF+hYqG9sIcskzibOFpIq6oIzCGmorOLUoWK71t0sWWtsa9/PsharalPjyazBXLzQzPaGDMgvJ3lUhw4E+TSZmEMbG1+yRymseChUZx1nsMMMyzzxARuHtdG4jItiqNMOcuDsy/Xv44lm8zAqAIdIBqUppIpTjbqkkTeIwNPuD2JxK5llEjENwykia4fTgFbJl4c4E7QYKbJ8GOAbT0BEC1WdQHhba6KmBcbgjyGEo7qDqbSE4iPdYOk6efDwpBNQmsDlUunoQw/U7rXF2nXmebU1s2BlKKaJvPE5nQa3irfAkzJJccNvrGJQU7d+muPmI0ESnuJwtrGRSnLEFD95s+LVZi5zPdSJtK1qTILoAEMOJuLU5G0xzqTVr6O1M+7MmOUI2BkcRX3ZgcThfloO4NTnGCy0d/BRHswyR0FzxZmEnVihhVAZA2SYHW2TZYoYgLfePArlA34YsfuLxdoEw8BJx3p4BNbl3wT7V5usIx28tLEzDzundEVu0NNOG0ZElgszDBLODjNDlAJvg7nl2UOioOuBB4l9Qnw9q2yc2haKwT2J3jYI4lvwLH1JGztIymzszrqQtNry5QHQcESH5DMmqiuQR3PNGhzAv2l1YyAYmhos9YcEV/pLxBUnYPKfvWuMPTHJDiawLnv1AYOcCDOomDbYcXIvT5mopFqqcuGslMANzUlnmvJHW6XooMR5wLf9uJmUdsnSPDIPggRvtxeR81kxiUe96ZPTkg8DVEfhAERwQYHMKI0ixgZyF2ao94qL0RI7RiC9Gcg4t+0y6kaRSIGCKGpanvPpREfqoRAg4ZADmnxoGoeyKYe0Vag6CN86Cw2k26VqzDdnFWqaj+rtNh2QAw6EUO3s1ANofjw0mHjjYJyHfVZ4wrAwpn/fdevX6+J7bqn9L/3pWjl4Hs6kdmkDojiYxDk6KIqvX5lZWe4rMDoFnRBirUWlITXyT7n8K6vyYxlztCY9MG1al+pyLQv3OpY4sFOkTXpo6ehoPi/gQOxeifDyn9k3GZcPFk4it3x7tckO7gZq+4rOHKC0Bbr5pE32EWU4PgRikmOgpnUGxwyYNgeH9lZGIJtnAxPlCQBhNoDBl+VReLdMrSEzMOZsnzacza8PmdafNpBcqAQ4STFQ4dWrDZhSuw68BqpJZHXk99zBCj1QZzsH+OhdviOzwQka4QUA3s7E9J9Z6j0SUDmrT+U2GFs26kSc00QBt10MlgZTqhOMPGvy7hcikIQydQghcfrQnmPg7eL2zwmXvmkH/zTYlBEcKTDaipRtO2SIzkBPrXXB6exM/gxYnpuke6HOuJxVq0v7lgOgTRMfErhb1iYGPpWInek8kR+0oe8gwBY8/obfUei207TCB5GeEoaooAF1iZ8qJYazYRxUJQNDO4I2cHZcXUXu5FroVp7eJ56sZ8OFBpUZXhhCzNIiMaTH+i4Ti4fw8maLbpAmce7kKZbyUAqNCJV2KkMnzSghMd98/MqJZPNATg0Phb0caV3Y9TVW60HZ5VzZq+65/5768T97Ry386Mvr1KELahblik9YaTjKpyuBpDclaWhbdSQj1PMNqBjlVQdKSfNF2pzH6ORTo2HFQvo0X+KCuPKnzYBTNaajUqgD6hYaMA5PndpSP4rvEor99hTaye0w8jVqK7qkeQdALQ0+cQ002+Va5ugJWGUyAnpSBgcyfSJ6txQS6jh+IxAFuSSOZF4C3+T2A5qlHkTU0glky8PyGJRk/C9F6dgJvtRb3qqwkQ1s2Aw4A9lATvd83JdymTQwBoR2prvRkW3vRwxpnwS6okydtCzqUP0CMtii+waYRAvsqPuG0wZtK5ecCXycnTh4a4W3nEjGYLU55WX9DnDj/rIrXEVRTg/tp25SRl6Nn7YXeX3DHRDYiM62mFk5ZcltAwg3CYK1TELks6+yRm/gda9MWWfAad9tfwK/AdxAwOEMzUCF6BzAkdAH4k6k5U+dUph6oZKiSE2bzuoA+SeVmVKvOdpPfNl+OlN+nTKOD+FB+ZZ7NCt2DBqLkYYyYYCSaR3LEVjDbGgkFYZx4kSg6Ok3jAM3Cjo6mBQMeLzDOeiGI2KRBhtlFmtoGVYb3V4RgaPSEbqV07DypeBe1XCak0ulw9XIdB7gG+9IZ1AclfIvQ9KM5kkYQFoyuKDaEWudxMn776xn/+A79cQnVy0uHqt7T/s68Hhnwjjw6kv9yHd4pyw8QsK6phmC0feon+6aLVucbVBUnJ5W8igekEYA8ynky46oFC6ctF1/4EHx4MwAo0zmcmm+U2nv8iWb8ANv+qP21v68OcSqLnRGcdHM3iidASL+gyPIQWZC0JN9ct0xRUo7bq0hr0LkTRvTAkDt5FLZvZYJLoXp4/JgoNyEljMC7R5ylOVluajIuZx1hBZ1NoJxBS+db+QSoz4hr4YWgyvLX2j2TERfl6duG/7B89hMAUrgzMUpYMykXyCOHdMiRes+QjtIZPZCHX07h/wJxylyRl5jh21hmLiZIGDfid+wEaTvN7fwBZw+wo0qg3xdZvBztaNitWl8Qx2oBLVHm/Q3SQNLTRiYop9kjwsibsw7o0tfE457NpQhaIFXN8FrmkJvzVT3FAfIsgxeFqhjCsI7X26u960r2hlA2jpA5jYLY5BTMU5uF0SnrvCCkELwZYZlKutczRbDoCxNTlqOFMpynSVTYoRWAeK3nTfgWW+UR1ZgGrHemQClhEmrLJLA8QVnUVeSoaFSh3qdMioATkhqch5z1nr4nY0+gBIQAywSR2jlQgfLJ7mXZKMmdx8Eh7zaMl/BKebkxEE6tIe2lj/mZL1BuclUevHU8Xrk775Yi5//UB2+59v1TeB2f+Pa2nfeJXVq39mxtrwpeitcQ4N7pMGZNzpsSUadWBYYYUkHAVyJp49w2OWUxURARldDh2/MUKceU7TjiQ8kOo58aU3rM6JTN3bs4EF30cjAQwIIbYSxkR1ID04OWPHZsQAHv7wYADwokCYpfWd6gGHwjMN7tt04+x5naAYPO4T6mqZlB4GeBWVpiBBeVfNGysgPA1l+SIe0fEg/Z76kbSAa8c7knoOpoVOqZ+SlfoYoo0zyH6mCtxHJq5Vx0eCPhhIwVEeOnOVb9Tg7sSOoy74RNcihIw5n7x7ONJVBZjNoyPSQN+CJIxMBBAudDIJDmB1w2z5BTVy06aArmkG2oIcv4HsPTXJKSNmAt0UAHlzuQ1mvLr2nSoE2ITIu8bS8MvSBrTWweWUTAfCKbmFmXA4sIEugSrm6IwGotvEwQNnPXHpbmyACkcQv8dmCwS8+YQe2QHP1qCAiWvPWUIrdx2BQicqcHyKCRKPMANHAjjO8nJkYtERhmRiUKQcJ8zqnRQrr4BdVkhaLSgt40DZcd5UBBafcz4Fwwil+6MWY3pC2WafuurV2Hr+3dj39x2tizwEgFLzxRiJodUtOHtY5ReyuIheIxGd6ph7dWK7N279eF37tkzX9/j+oLxytuvCs82r33CU1/Yd/WOefWqpdP/cva3P3IUZVfhoQe4jfmUjTFHP45KweoxPrBp6sQ9zwGE1SkGATngAaGgtjm2T5UlceacvZNurSPQBNMAbHBAbqok3ajwHksStcwMOXmD2NgSqBG4fy0nJGR3A4OOlUCVjAxwEtVyp545MZQ/DQQQn2vS84jMzINDPFhi+E7HTy5iF+9WIQUR51lmUP1RtTBCv8Tkj9zibO9hypVUL8CeK5m5oibwD1UF5ldIYRvcS59D9wo4T4enDZWZUNaSKLbUUOLoyYO+4lGhri40OdsjpA8g7/6bQBkyfxY01h5MQ8OJpXGlDhrwxE4jKIBG+XatyNro4pVyPRL7W2U3j1kv6QevKUy5o613fkS9uL16vh2lDs9jXl8wqecB0aRlzSVgfCEjSBN6BERvLaO7frgEPZbS0J7ZUACFPaxU98kkTvgwnPbI12Lr0FcF8qSz/3DJUBvUwAE/6p8wp8bnlQF/ILbga4JixRksoWJhI94JLBIhXZV6EuM2oVoLY4wigsD1mxpcw6cbWDoCAY0DEpysc6laWG46gakZeCyEvwyXRDpcx0Ky5MgXusDTWwiZ22nHTLDWZWt996U73oxs/W1JOfU4v7D9aUc1imwGIOuMSgY9qk8vThFThKsPIqvG0dvat23fDXVe/7nXpocq0+cuDiuo/zqw45Eq7UQ5ddVj9435/U/ic+rc588RvAN4dc6hauRM+Xo9xIN2t1qEkvl4ZzDhvANTPRhF4RVmkpDuHQjmedJw7JuQMUZ+B1zJ6qk6atumxnt630tAvYSejw3YUHXlGtJF1GZdUWWMuAVUEbQAcn7SHuVcoEGzhyxiDrTY82gHs3ux3dUVu6bmJLb5xlaHs3nOWZ5pFd2fSLlsFieANZrsbZmrQj9rj8U4LuYbYTGtoJVJ2XXu4ZHIMXxQYl+VFWZTMw9wyudZyLdu2E1IejZhB47aiN1J8CbxqMVA5MDkVQJK+++HL7wImd/PcGtX0BWGiCIYdng2w2mHHgDWpyf5QK9QMedRTf4BzWbA0v8ucxBrSmrTzU+4Yp+VKytAOcbJeR2LbDDL4pJj/6ZfxLuqGvnoK5+zLpEZ/kN3IzpoFusAsEE1jBlF/JCEQw6T1J8ShfB8YOutRDZytBi1oNwwwv+rQ8tqNPyrpCpHMpBJ9wTKKFk30bk7M1vtEKIiFB2+tNpA1OwsaBFAhDts40kJjBFRiSHtIAZ5utv0GCr7aS9AGjbhsCfNL3kCV7qrg4JUk6tGjrFZkpbhZZXDlZe+76Th2677p6ZPUUgQWnGRBoEOHtGDJCs4EP5wfyPVlreMjWqYdqxzevqzNu+7vaPPOS+sob/2294xN/Vivf/k795N49ddGZ+7kjvOrhxc06fuWldfS9/6ZW53fW5HNeCQ+z4A7ipjrwL+3YI9pTny1SHAtwg5l6HV821j6+mls5bNY9+xksS5ocaolYMWDrrHUTywCKLpHNl4fDgPWaMZ2XtEsu2XXgtzOHBukEMTK5726QRxhtJXbpjzMw8Rmw3JhVxnZg02ggMuLcDJvpvIERA4AYI6MyPhcu5YtPB3LrpYUMUoNxSjLz4RSezY86FtKX/h4pIkjz2XqHJnWQj4un70YuAiuwASefACVf0FO+vtkSPUiUyGkTN62zSSyloW22V1Iu9WH/To6QX7lJMpNyT61lSZCGWaEzOaC+ZzQtXO44F1bOqFNS0/ZJ7SAjYLU2fctzX0ASPzIBl1k20FNsuOeKHogSNIDVcewBYvB+upSTVS8Ofi2/gMpCewWVEWRUB/ZnS3KoK3KBAYczcXU1tAguc/q2/VJ33WKv2XvmptxI43DP0Z/9yJENnV1z+OWHEgqMcsmmtMvd6NTwLo+8c9r9DwWPE9FudBDLdATV9th9OeKgjDZZslEnA2SD07Op04KmFm6C3zprmyd58N1CQ8tiFKPg4pzk8srS+lKd/N53a/a2G+vSR++qB/Gq2W9+qfaefWGtzHKvlNNLgHuZBGZRypvt8dyVzbXaWjpVZ9z97dpxw8dZSl5Y9zz71fXXP7i77vrBN+vI6lLdMjlfh/bO8JmrOZY1u3du1TlExMWdh+uRd/2jqnM/WcuXXMk9QG4dt1M162gKQtLkW+aplzYvyswlOCmgUYByv6Nn6oUz35CpaD2iA490IADSwS0i7eZsVyur1DgMGo2Zs3cndzByYPHqlGdtPAYrp+NKscWSrJdfYV1E6Xhig0mcDhdXkBDpTu8A5MzK5dTpWYW4xUhdfnoyw0BDmdwpqzMSA5yoVIP7IOpFNyZLd4Mu53QQCiKLLFCmHwjrzM3y5q1xURDecmsGgA5M6io/cWFDJvtwltHODmne5cq4h5OZFDpUHyEWGuKUUvugFyLMSyrB2zo+HsEjXWqdbYwXN4Rzj1j+c4DfCw4ZrO2PqWk7AsqBVCa0Z/Lg523SK3pSO70fC5wwzkqzuZ51FbDIJc+cjCMcfCkrKXXr0lUdijjbEvAr3wNYdKNt7NMuqzNrpfUM+dgr/EFjsJ0zcWEMek0ZXOh8lpO+kVmzNTDj7RHeWqLa4suUu4QFzqaUctiJZaxHFsoixONmONRtO1fW8VQYgMY+R4uhB8bJNI5NVfPodJZZatk4qwJNGKKIQx5QHjSarrFdhsNE6oSxWsiMXChH5ToS+JMKr2hsHL27Fr72+Xrwff++vvaDY3XJeU+g/ILa98f/ps6Z21GTL3p9bc/thg/wgkjDpCOyfFwiUC0+9MOav/0bddEd19fyLdfWV899ed1x7oG66frP1k1//B/qTODP2H8Yzc3UjrnJOnRgoeZxgMXVyVpdXqm52lM/mHhJbb3nHXXmr/9OHT90fk2tE7TQenSCPPIv8QRJ8pFQ3WKk1hMqMA3MUJsWAma0EoHwA644HmXaDoD8MDdm0p6hNH41TvE0ZkZJNGgQc1Q1ENkRdZb5/KYknPXICK5wjhNN67jkhR0GwvhC7AVmZ2HSaOqeOgh6X5F8q4kOXOoA/cun/hEf6WYGSysNwA4sOrSdI795JC9+2IC3Qab0HMrUwXCMmtaTlBHCyPtYvUmXinbv9jP3V+QHWMpchsiro3pmO3Y8q6yFt9AKOr6oaJZpoT6bnGgG/K0Xr16qHz+5jcJOwLGy6kAAL+S1zTofZ5mNHmTIqhzSIRm8EpGOIqc/hjfLBsk5W2l9gijNDBh2fDu5QcofcavB9EnbD20tFUy8JFMeWkPQygDW7CTo9uTCeCCoPNISWUZb6yfuyeljBi4PaSh+fi5EztnpJkCrazxFAlh5HeE0n/ZmH1SUtuYMor462Mgsi3JsCFBmJUFB9KPGO51VfF9ZAAQwjS++KBsLhqTnWDOEAkPvAt76wcCyAILmUccw3XTlRocSr/ggSR15hIqBuXHoxMmj9bWvXFNP/OA76uzb7q0bd7PBft5FONpSLSFHzT2hjv72vyDgTNS+y/9ere7cr3pqdXWxHjlxvFaPH6uLWEJeeMNHa+mWT9Z1ELtm+cl1w/03Vv2PdydQPengkVpHwxsbKzCwgVKVgXtm5gif8LBrx2zNLX62zn3T++umlck68+Pvrr1X/x91Yn4/Tk/QIqhmw1VJFIYv5VXWaE2rIHMkjZBkMYCgAVf6cfNQ3Zm1bKynjWVxWHAac3SI4PcMHKd8sjyjctrbPQJDPR1TRxbexwltMc2ZIe0S1aBiQ/cjXJZs6C9M3XtJYZux43ttD3eVEIf05bG3C5oHySiqo30CF8A9cI4cQpu2OijkOZqHpAAJK/mK1lo34LBDjXS7ld8c4YHgw7n5EVBexvZ2FnPYEcYslUcRqwt50X8NX3YqlzYNR+AmrSx2UDulfXHEqx38dYL2jP/KnGtPP+LP2RuwCVZSpUyfVzRnuLnHzqAkbvWeNJUcNjfIhDcLoGtgD+/WWUBOurl6b/sBPjMdGjrTCRRf2shcbtAkrxzyL4A01I82lm74DAA58EdH4FZSN+nVE2oJDwlUKDN3uQ/BTgkVfRb/csAR4SqRbBM95HaVcKLUHVS9T857AuXH4AZRvuQCr9RQ8qIIMjukoI7SzMNYRnI6DhBRgk0phmEVpKBtC6NtcAsIMlWiOMK0QI+PttZJQMYUljxn2UuSbAdDhECDOt7U7HSdWHy0bvvG39YDX/xCXXzownrktb9Z7/7Ee+v4TbfU86eW6tapjfrGqdV6yv49tX7G2XXW7/1GHXjVG+vEGWfVvavLdfS+O+sVR++tZ63cmg7+HWheu35xXfPodp29+kj9yMq9tXXw/NpkP2pzeak2eS7UHMvOfTum6tFF74o2NCM5SpucJmCxGN/H1+Efe1ndAW8Xffw9tfv1v1qL0/PMTHTdiJMZSrq4yuatPtSPo5q20AliiJSjO4KEraNrtRJEmD713UbncaakfikOPktsE8NSmHIaGejHjgcgh+1cMpABgU7unkfbYeARRHaSbit+BxvtrU3CeVDFvqkVr52qHTmzd0ocOTsQqIHunNKT9tg2siqkuhELFZbpr+op+yx0AEfs7PGI0xoQiTNQ8ppS2z/2UUTrLexOSEsv5zeGwDoZ9FcH+ppHZpOeA9VMbftTFSoMMpTk8OzSZjwmqZe26jGguLycs7mdgz7k/V+y08th2joIIkBu2AXO7ZnYAhgnDPILE5E7aVr37CjDhEj5qAkkDxum5UndWECAtJZktxccHI4OyJsgFQzwQblItN+gBlFHnjgehdLomX7zoRb74ojTAfjkE90B5/6cvOizc4ymebwQCNbYsFdngMSfBNJuq5S5h+VtItkzRJE+MCZGaK2Y4yVWGQGxJZJRwe4ryLmn1KS3UH8a3rY44WDAzJCoC1bKnFa3U3AWOXnZzBUdlYYBVW+rWKajwxbCempkwMeGLK0scgXw7+qOr1xfF+w6q178ml+og096Sj3w6AN18EsfrdlarO9OHKgHTqzWTtp+7qFTdYQZ0InDR+qmD38EKuvFTlM99/KDtWv3jrp99qL68MNV1x3bqJfMLNZzsOhRNu5X5/YR+dnTWluhDbzBwgyzkp1MNXKJ3yiON+qjPFEqTrWKpaYpO/CyN9Sdf/m+uvAzf1o7X/pztcyVw8w/0EXg0VVUp6DwGAexTO9Qh5abpM58j+oYj3TaCUudnctbBgTT8ewc4m8oDJfBxRYkccrem3KmkJK2mUlBKbNDuwQzozUCRdoAp19Lx+rM0kJHUBqjHJ23l+u0sv1Qn6AmKgnk6IHHGZq+Z2c0kEnXziqUDm/CAOmFlLg0CO0A2QuiWj78yknw8EyeAjvtKHt016MCUGGEepnrYdB6VxfKJM9y4Cf+jFy9l6NvQxsMsu2nO3VjpDg+q3711dRRFh3ID/AGLSnKn8HQAOysQbxeLV6nkyibd7EL6aFODTDqIzck64TUSk1bmOpfSkRDNtAUqRt5Uf/6lfqxMjIEC/1JWHiSWvQ31Pub0T7Uv/gc1Ggv/8LETvbucIAs2l4dWQJvFKtXtnjTx52tW+PAlNs4wr9DAL4FcbuSOrOd7afY4tEvlDsXDugQ+AEM+I4gHVxiLJkJ4+3g2jrTehAqbB9pSFtynSSt8p0pKETjixJgfACLIsf6iBAGUUB6KEoPoMpXPFiPZadqjfwjR++v++65rb5/4411eGpfvfQnrqoDT7q4tqd5rhL0NtfW7XfAVu2E5gHa72TpctnuuTqBDA9T/0tHzqsXHpplljRZ319er/fet1bX/HCJzfPtunLOK1tVJ9ZY+iHoLFhlB+nzHaureOp8jpEPhsvd2BqJZV9N7a6tPQQ5dDcPnj2v/5m6+0//qC687sO1/cKrWUbiGMirPtVb610pkR9+ldmRUMnb8GqoYbtzqd82cvJUuu/iL+id68mnenAK3c4VDYLAzgEuzkL5G43cB0PSvDMTXVa6UnQs0jWapkGkl/8+x6kt27iEy76IeNVBbNmO99jIDCwVvRRpvgxMBlv9wNHVHwjr8HbUcR9JfNrSpYt07Brd0ZoH633pLzq8siUKWAr+8G+aik4P+k2rxtnBXywetuMEwnRweaYsGkQuaUc7EiJyC+og7GEg99jUMVQQMAaaHCD1qqs8dmcljWD2Fc+GYit38DGA95M4oY3fszKPTv3K7Afe5KH5gDMJhx9weA58w5rL/U1yKi98JtlHwYNoZx4Al6z6E22H1sEdpSqTPFNhm7QXyIBKcw/1mgBMQlu18HBHvfujGXSgJZwXc2aNXhwOrPLgp29l0P9MK+8gX6gCAzIv4Ck/wb0dMQqgCbzkI/uWxYUVlLSvXhK04uU9HxXFZ5zqZzSjxahAuW9MDd8dpZm1xoNcGNWoGZ3Ie0+KQXJzlqeQ8kSEu276cv3Fn7y9nrbn0nrxW36pzrz0stqam+Exr2xRrq7W7CzRBlqrYGC1Vgf57CdqnGKJ9lU2Ad5CWH/ROWyU79yue9aX6wN3rNRH7t2sPew/XbbgvS9sfqIxb6rLuAFr2kwOHR3sXHayzFAodQPV/Suf0Eo3i97W4VP+nQVurqzUzoWF2rz6bXX3e/+fOn/h47X2rJeiQ66yihWdxe7gdCSPJjSu1uWwTsyDek2RtvNpiaE+lT31NhAKPMMlL2fD2tJY33hsa7221Dat8xEfNYF3WpfJUnMWWt47pDPaXtrhKTxqtS4zYdoSryjzBVzPqjFsd3zsKecj/wbmzJRsGxhp0Aae88sJgqM2sfUafupAoggJJilvmurS8nADnLOYXA2DjehEccHbsyHpo2v4lw+PnKxHYaMM8iy8S/788Bh5DLjtA2mWjiR+9WxLqklo0y4U7wZfLpGUSSalmOUZU4cZrri63Okfl6MbePd2E59BtgD8yjq6YPfZGaV68MA7860PhkdzAOhz2k7a8iMdUuCXqJawXuDHXUQDh3tI0V430D0A86Wdu05TR2eegzdUqAU2OG1sO/F1gItSGRS9RWEG/oTTx30lQ4F29LeLrkhcCm+Qdr9KWUJBZiA+oe4pVa6EO42Z6X5TlTI4EZEGMiojPZ60AOGOr1HQ7mA4iqN0Oh8MBAntJGqZeYQRb4rMBAcGD4VURwinlY4+2wSSleVTNXPbzbXvxi/U4a399ZrX/mo9+fIra++Ri9gwZ5nGx6DmdB7UNTs/X4d37qt94F7eyayKddtzkPJf7pmss3dP1/1csXv/D9fqz+7B8HjbZXtdpKE4tLGOwR3dR1PJmWzmjn55J4MUzSg6S2dnxMizwtJBMVbubTHggZ4fl26urdVe7tc6+jO/Wt/7D/+6nrC8XGsveD1TXTa7oxqw4qgeOr9ya1gPXTP0+fKlk/JGTs62tZ4vHdrpuZ3cj7MgleFszlmgXHsZP2Rs62tAYKfNCJZyEdKU5usGbtiaRi5H8TxFAhyenSXkUjTeqROFAo0AC12qCdjyz2BIrfyFHA6cgAfeMVAlD7zOCypwuAGN/ygHPHDiQ8elx/uIGP3RQU0erFRniENb+RSvdMUjLHCU65MC2VXlS5rBGz2kedMGbyZIgDur2wDZlh2Jj8jF37Q4D4ch2COeQVLd6k/qRaTWypM6btsCKS7lEUTF0EIZvZDl2frsEzLAzoNoWT6CizodSwFBrli56z9ElAk9US4vDkrqPwNhaDQvMiRFdRB/McAjtAHVWRMqiJ9lBhhdyWPL51m96n9OdIQVWexNXduGIJUK6ijzsM9vgtxZVd+uoE+0Xxis1umjnVfHNFJYzr2HCm/owyKdaLq3jIM1Ao+MwJfipmHH56YOr2FYw+QKDx6TSDxMK+VSGPWqgWNQzj01bBzUhAENq8NJS8Gnc2crwnHLwBo3es7e/q06+LefrwVuFlh55ivrzCc/rerYAyCfZlbFoo/NGoNFOw10UcgC3rxrYa5uAOXLicevOmu+ztszUcvcD/WRH67WH99Dd8Dql+1EIWh6KVYwcstEM2JHTaClRP2MnbuD8GAg2rnnFsajKWRB8PnZQxjT3Sz3unTAqVonqB48fKi+dfU/qtX//efqindfVA9f8vdqGxkyqiK7zkasAh089BuHUrP9MtiEQ74m4V+e1J+lfvvRsMIYODwbuAxUdj69S/4ackiTlaYOp61CW8BAQVenwkDis8+6x+ITUOXFzdAsZ8iMo3QGuZGHgZYUTwdauAq3FNo2HdkS2siiPMiG5Tpn+yCwZvlkYxa8zuQNJi5T5d82yuboLly+STiTiZMDIcxp3GhOGGczaZN25AFIAKE6QdoG1BkgpSmTzt5a79RxhPdO5ts6pVSntlWbjy3FaQtO/UtiuQmUtIFM4e20ng0cJJANPHz8gxhaJaiED+yQAA8iuVEakPjVtMVJLsFM+5DOoMQ5+oiu5FEGxS3P9uMAmI1/xSfhM8HPMvpnX+2jHTx7f1/6Lhy4j+o9jL7UiYc8GggN+vqSfUkben9Vzmy257E/wNnCQGhbl4jxAfAaIH0lBkFDmlGiDXqzVGYMAYLIBbMFDJUZDzCu2SMnDZ3ZkCWv4SHGRyWYp5Q3WGmrHfxaJ807eQ3baqItUmmcLZZ+KwlUN9ehrxOoNti3etbL65En/Qi3ISzkGdTeuOpsUF69w16FKeQUypzjAXrHlzZr4dSJ+ndnTdZFF3C3O4Hqcw+u1zvuIWSemqhLdvUfGnCxL8qMyeHXDhl+5Up5yaMGpJDLdjyfP2/GEvcq2sANExFT19uCbQIK0hh4+Dj/iRfWvb/1+3Xi0/9fHdi5px4+98ncWMo1m1FfodN60Y/SmbQDzKg3UZlA/FhH+t15tAM5jU2ZThJxaJcNeQH5KJOWFU/j015UQV/45hnpwk/LHJrkLfMVOcHvFH2bZba/DxPG4JE7lMlka0CS8EPD8KsPBT/1p3ECM145krcEJAlw2FT4tgu4YDQ45E0Y8CmrA4P3TengVjlr8HAmmICLgzgw2WlzxU0dAWMQUcfqUn6tV00OrHa0UYYQEyWz75QPuk1wlmmrAm+69enZ5W56EG1HOspkE5ewkO9yzpY7KBiwusN2IV2PsZml4zBl2WbtKA+xT/TQ8GnfjAx2UhaQhrC4oMspAwsCJ1BREItA2HsER4cHLOpVRy5l6Vlh8PSz8WilX8aflJOk/dH9KWWSP18OaNrEwO+sSn0NoTVBB5ZCR+GND7axbextpQNlMqTBq8z2OxcwQGsq9lwEjBuMAiozoxnAKkD2hBx7j8oVmV/WJm0e+FZAnzRG6vn2HByC0V5QLMLNYos1dfu368yvf6bm1/lZDIHq+CVPrbWdu7nxcr1m2A+aYuY1rvNF4l6TezXeS7bO8vHUiQdq/42fq19cvLnWLzzClcET9d67ltiBn6gjbIDM76lcKvVKjC9nUWEXjalsxZc3fx83S4EBdIbZkvdPbbOE2+Axtnn0ihHBHzdrTBEAmyAX+VZT5OzIhNXxN3VIcDr/mc+qh8+/oCb+8p114Gf/WT164HzW+PzgExkSFMIT+gw/rZ8secGNDbscGI3MqdtARf79qFDrdASlGYrSznoDfStdW9ipHmunH2TpYtMwr5N1ffDzpb3EqeaaTsP4BAU7uTNea4UPGviwg7hcsKXfo9u01yCL5VSISbxjMLAsezW0CS1w2olHEdSRNO3o8U/ya9EfINg4FKMr6T/Gu7qezFJZXvQEvR5tkHBEzx6cnOC44W3gT346b2AzEwrpN7EFeDKbtW4oSHCgXOkcePzLMW+glaZfYjCwct9ogpZMyEtQc/bnPj4Z1JXP9ORGaFmnzN1fQeLb9nm1/izUBinl7C6B/tW2MN154XyqQkdMl6X6nB8DdFRNCYe2tw7zisNZZ/LipC55KuXXjf4J+kgHKcoc3tQHb/XTegSPOI09CKI82lKgfAMkj+6fbmHL/JcE9RmQvG7gvSzZrwJKpDJjy75yp6FERIPmHWSihVHbwkyvxXEbGaLKrhIeIWyZ6IKQ/CQd1Ksmyyhqc+lk1X131b6vfbr2EljWrnxJPcLSz0A1zSW4ae6VUnluYtsZVJjInFGpuA2CycrSsZr/zlfrzOs+XTM7dtdXFo7Uu/7munpw6nBdBieHdk/Ud11DI/gcS7Q2HGjAtc29U/x1UJYHzhVmwLuFg6ytrNWxh+/FgOt1LOtZ6fbxtOmFmj7AHfTegwUPOoqyyk8016pJHoA0yrKIK5kTy4t16PKn1YOLP13nfvi/1P43/5M6wSNpZre4uklQVE3dBEwm9DqNx0s6dhg7LaK082gr04JZR8JZlc2ib4RMsBDGDuiZmtiJs3VxnCAY6ARAoLalI7N4h5Y5yY83psJafCOX24FwqRYTYas8d129RDc0A952CpmlBS0TJFNPDW2UTcdtcvBDIvia6/ZDhXAEBpYU/MsaSIC086cwcumbPetSzsyi7CSUBdxmJOTJZs4Ixv0SgwHZ4FJG3jnaCi2zBdYJK+7uIySCvHGGH+qVI4OtrIPNGV5uQUEWZZCC9OSmO6+NwJnO7FMtkAVfz68MZDY+ISaTY++016kzWSAFjPVi1T62iXrsRAMfuZAAYW+Fsd6XOsnsWCCQqV7Q5Sx+y7yo4ax69J3wYHtpwLMDmI+eUp7cRwUB9etsK1cIyTjue4SedqFOfsZloHKov54hmyFou15GRWGof4NEQy8TEbIl5rtPrdgwQFmmhareer7ilDqReRkh3SMnMBT6sxmjr4Zdn5+tkzxTavvGv6mzb/gMV9r21tKPvaaOPuXptULAmeIu8rmNnqm4yZjOh2EbLXW83JBfOnm8Jm77eh289q9qz+QZtfnKt9U9Tzi3PviHv8tVxc/Xj5zPMvKRFa4a8kea8LUDg28gtPtW2wuzbBzTgXnw3vFHHy1uwQp+2d/BZ3NuV21f+vy6hJ/xnHXhE2vvmWfWocPnsL82WTd8/L/XD6+7trbOOz/LGO/QXWPjcAaemMNF8Sglqhu/DLqO7C5LptdX6/Bzn1/385vEcz7y7tp19a/V4sJenlbKc7vUvW11FP2Kj0shZTeg5uofTOY+KeB02QQ2Gadeh9FtDTDaQqMnkOoI1JjOwCQVAWwFEXUsrDikqbV1oKSoGPqImBsn2KzzFI5pk84AztMDGGlRZNkGtL/Xc9rvIanuRCEaf5FhefCiq/f82FjobPLKD6/MAE1R0ew1b+TSyU7rQrQgyz4VddlvNU+58ieADGnGKO42tzO1DF6xsjOp86CRB1Lm7RXOSFyuqE8Pv62LHmjQAbdpOFAZnPyLRy4oMziK007bM7kJbA4qCGi1sUOT4IiMfFntn57GpmTkPTOPMJSCVobC+UmL7tOBBbPFCS7RrSBcaEJI95OUqXUPz/CFN2RGZB/Pz5QwrFjHCYN43JrxiL4jD7wjiP9K5NU+fwXicj8aE30+yMLZpb/BS7LjACH92BNKVsmHR3gLdWVgRdVORg1MZFkjMyjJYOPhetu2FCOGjUBI2s4jnGBpN5RbYLEG19HkYtuOyGuTZdmqM6bbbqqzv/Kpmrz5hlp/3tV16oWv4dEvB9jPWasZfrjsn7uqnIwfGFgnR4UYHnRo8eTaydp58y116JoP8ju+nbX1E79YR9nn2uJq3NbJY3UIbfDjmfoBijvAun8PznIPClznEvHFLIIv3sHy7r7v1Z3AbO18Qp138dPrGRdeUvvPO7v2LvAbQQLqzq9eWxe9+qpavfIFXE6frZk5bvqc464sAu8P7r+1rrvuU7Uyw93vLA0jphwitLJ7oAVekYDvqIk8+oR/zT+FrAdf9JN178pqHfnYe2rPG365Vmd3cN+XwMqPzCAWXQIOjfNIFgq88tf7Q+pIeG3vkkxoMjAhbW2W7GAnDWkHso0Q2jVcUqZzGiSs67Q1Ym0Y/6TAI3dVy9XQwdyUF9HYffUPB+sEOwk0JRzUrQXK/XQTaNEOgmIOZSrShHKPyG0iaOA47ZWrEeiHkh+gaRupGhyMBhDnrBmhAcrdJ7bh4x6TLf32juplfCWdA4GdAVihD3uZPZv3lPlkidyCkKboh7PySj+Dswn9nZdXJ90WmOcGuRmmvHN8+veZwIoevPYt56OqdpMN9ARCKs0rq0ewS4/D7QiDqwR7kIFnaPTWSstipV6nbuwvzR9loz9JC8GUzY9S2zLhEniDq4OhKxplkPQEvIurM0KjB/iXN/cySYKT/oUOg9c8DGSmCGaZzmxP3VDXs3vqlSd5deJAYAb8nLVF364hfPNhPOldZITrYKS4zViMSkZm4hSOeOQdPfv/zzQ8LNtAzwBOLKI2mJl3HWv91tQMgWqpJu74Tu376qdr56PLtfG819Q9L3wzy6+52rlvf82sLYuQn7f0PUq2E7X3YDj1XIfGg0fvqdlbvlZn8Xyr+W2C0/PfVKd+5Bm1vofNKYbIGYKAVzJcLn2ftr/IjaHOpm5Z3KoXcR3+2Qvwx37Y2gP31xmXv7DmXn11bV/xrNqxsKPmdu6qqfm52mAZ6LH2oy+q6es/VgdXLq3j513GPVXwR+DdyN4VlubIJqHEkHuGm5+0KT+hxllwADI+btZ7rlpv7dhZyml9RswZlrwHfvKVde+HTtSRaz5Q8y//aeScY+bXzjDeapINXMjEwSAdJyQvjexvoWv13s+AskzlS69f9iy5DKcxGHogM7q4KW3ZRkzFY7Cg6sChc3ZHdMpuh7BJ9pQ4Z2AjI6XwjTM6wnr1FRShbm0/kaD5yf5UWPWLN0wpm3z4naRNPchYps6btjruAKu4+UccIDL6R/e9ZI2O7ITRiWTgR0RyxdvHOC3ylDxnBSFgPQDSWbcT0gFcxrgHxNvafMvD0CCdKxwjs2S6XwCQTgSYnZ9OL2+xk0EGhL6cPbfugYMXB4R0UIMJHc/68Dx0WgmQTNuIBLztIR3daXtZc6buwJPZriyDxxmVwdI+rUwRAe5pnkA1C595rBDYLbNe3PKt/ixzdrQOn+I36K5yX4IPGeTdQQcCuXjiEhCakVL6HpwTrJUldfIBUvLypDyebZM0HAiHNaJjbYIamzHgBEunaz23ouQS+9u0mSefDgOQTmpl9q+ky8v5rUFDp113M50Z1fTtN9UZX/1EzZ2iw3Pj5LFLr6jVfdyD/tB9lJ3C6bnxU6PKjM4GXu7DJsmoA46TPsvqphvqjD//vdp34ls1+7PvqUef+cJa2bOXzVVorfuzGXicnA2P3D6a41n7uHt4/1z9+VfX6u1PnqmXX8hVxIdvr++/5fdq9SdeXTsPHqgtbuz0nhhZt0OtItcWvxncxYzt4ek31OZf/FHtf91b6tiRp9aWT12Ap9YI93who1dx7DiGK53Y0UtlpzNRbpwnC1+WqUVlw0Ck/RPJedpPvPZNdff/fHed/7m/rOmXEMTFCzdu/vajXty2FAutFVQehkhhqU7pc7m1E9QHGG0Gp9JNm6GcBrEzwNZjLhLa1goDkZ1VfXgWRicln3Lb6lRoCufxGE7RinjlBZEGRwNAf7EViOz06niYJODwOiI8yguIpBVnFTEZW1rmx8Ds4bLA5V2kleeUERipz5MQcCJ15OasTdx/yx5cmosU3dMmMz4YWWbKZGDK8lQ+kc19WwNZbmJED85mlVNeA2LGNzRaBjJUJbhIh3TLTT3tVaT4pZu9TPinRQag1oezi4BRqnWlhU1ij9aLLZQrHVpYiIjDLwe0QT0hrcH10uZDIAMzsyJnQKS7XePz0T7O+p0U+GsJ+7biOfXIH0ykdQcU+crMSQDqs6QkKe8Gr56NOlA1zw1l5cA3HUS8freE2rd5d8ZoNHPu49+JuScWGci7Mc/Th0IPu4ZLiwdlihA0GpxSnck6Z1kGIcEDAZKeVsMCitXRvO0/Sk2g4uocV/323cBs6NRKbT7nZfXok6+otV3MhpiluJk+Y8cAVsU4akuKWy1RHrMkloWLwGze8q3afd3HavexR2vpyjfVneddWDuf8fyaY1Y1xaxnwt7h3YAqURvx6Q7avB9cmKqfPjhTTz4wS91S7d771Nr7whfXI0curHU2wLe5R+p0wxaVkY1wsbRUBy9+Uh276tdqgn2mA6/gAX1HruBGUHbE4K1BvXJD1yFvzJPuxNYso5UjgTpERyoxHkDHQZlxcjqNHd6gtsbtDnMsLTeu+oW6+/3vrIu+/PFafd4raw2dugxrvbYtVJf+b6elInU6sPynI+eMdQCS7Ng57deChRdhyBnvsgkcsHZI7eoxtAYKSHn3gJCp5PjyLF4P+fKpmraWtiNhu023l16wwkD2dJTBIj7Kk0PmBnmFtbOGIuXRq4EKfcaJbaOO5RRC4kyA4s5xYYVxJB59FfYyKxCj+nKvxRmGHct0y2sdFFPfs4TMFFIrMpntevnLIbD8JQ8e/Zgigz/JzFrsP3ZSO6PLPuv6RZEpmLN9xJcGeWcmHuLKJ5CkmZ63lvkODACy5ks6AFsf7YPLgcXAq8wuuZxEeog9AQomHURdBnZQp+3It3DSh7FslNNeXgxY3p3e/64TCULRuuxh2Ya2iQlJdzvHPIOatuhBBx6oz5NeoiFwafN8qIBuz9RoYBs+wk7b3xNV4U6loWa/woTlOkCgSeeX8GNByqmHUxcLTh23WM45o9q+9Zs8Tvia2sHzodaf8ZI68RRmVLv3wjDBiA1nTJerc32vB4yIm8VUfl/GPtcSPzTe/t43as8XP1YL99zD0u/qOnHVs+v+E0drhtnPDL/Z8xYBNB1ly6djdTuONlctKAjZnPVceSY3irIBv8ES7NSpnXnczIQ3bapZrhBq5hh6MLj4/PX+9spSnXHBkXrkdf+wiqB1xssm6uhFlwc3qIM7OtJE0R/T8Ck2+vFSYxrbXcEbxcKHVAZl5pRZBbDrLFP3sCSduPof1p3//e11JjPGjee+hlknc0WaeNVWempJPuNInUony+0ZegxwOq4a8PAqXo/E3VGygYpsHuLyam3MaVPKHH+zTJNXCgZqgTZwOcuzuW1cfjYtyVIw+I8zLMMKrIBjDFzAkpdI+xTl1qes5dFOoWgb0t0hweNIyRGanDOQIqMBLcsDKvSf3DNkmpe01umsjJ/YvGeRdi07rgHCGaNY1YEy+jJIjJ1bvvMnEuCJnaXLKwOBvHWOUvU7+p3ep4C2Ud+cGRWcGWoNccf+TDObLqXQUR8ebsbb3CcpjDNYIZtC6ygAlMUX8k/R3TY6gLRt4wAAQABJREFUoa22Fl1slaDsUxAMl9rBOvwS+/hx6ZdBFQqxMwyrazFqQ3WVIENbl4AGD/XmHesGK/UbnFBFDOAjXVhUXmddoOHI1/DdOQPkAtO5OaM61WpIej2ASEsd0DUZpPwnLm0ml9Poc9pOrQJUbP86W0Zi9jAvORnrjAQQHOXmwW9w5dp8GYLLp07W2g/vrrkv/nUdXCJo/dgr69Slz6jl3bszvM3wE5V0LDqod2pL1z0edo1qHqbW+U3gMvtYk2zI77r2o7XrrrsIVD9Vp17/T2vlwJnItVV7Fh/hGpwSMiK4lMIjxRNTxeNbUJXlId/zKGWB+1dWV6DFpvnMNC6BAiYIdtsoPk4WWEUb5OQkjdxQR4Dcf8GROva6t9X2X72nDhCF5nbsgBtV0qM+qox6KGIPDp2Qk3bsAX+tfJ78EG+inT3Vj3BaFcA1fgu594z9de/rf6m+8Wsvr2f+1sHafDa/O/QpEdvMO9U7sH4ULzjAl//RC/UBF2m7ox3BNtLI8hE+koNxeReHuhtURY40GS9FW+pIF9WiLANC8iKgWrRpF9jGa3tLu428SiXUA6A+0rEiAxXhB1/gPAbJxqoc3bEk57LYzqAOEwApdKZvO9VpUPbshr7LPC98SNnlivD+rGpQA9wJpI+AjPbyZKX+4gzZGYA8WN36HehS6jHioVXrUrikwIVc4uurkQYg9nrdE4qc8ECdm8pRC2fDiLZ0v7fl08MtU3fCe1gnBeSlofbKxQxqMhPhbJBSOQlSpOVbTL2J3Xi0n7P+WT6m/fiSpw5gLYe3vVim3xis8iPsBKeejY50GkpNSRqmcsCDPPJSl4G13ICpzUn6ywsD5TyTkp1cXfI/DtVpeAZPAiKyZAZMOwn0bQ6hhBa8rUOcMk5WjWS6BoGoX2R5cSYtWaNdlm0Yo7ii9siJY7X0lS/U7us/XYdnuRXgx19X65ddSaDah/OwEb66Jl241clULDiI2NNoZJJAMjnP3e1sZq999+ba+8WP197vf682n/fGeiSB6pAU2aNalZHMytZYQsqL5DWKxlRg3VSudRgdJQfl/mj5yEFuhGAIW+OK3CZPBqUoh7BB3Nl8ZzYDw30VDrzg2nKmdd4FdfL1v1wPfuxPaubmL/EYhiPMwAjMGskfsTKSO4Jt84cUOo82E31zqKO4TMQAOgvskW3ZFEzu6Xlr/CD7rHPOqWO/+Z/r2Gc/WmcfOqtOsnc2yRCXnz3QUGjxOqykA1jCe+zAEMx0Xzh58FAb5uXPZbw3xqagv/KdTgxM2iT4EwTUKPiyXFDpQLZMyEVWbiwNAesoFF5cymi9mohDSluy0B99SlwGJ2FtqG9IIDyQtuOaBqWchKZLmdzSAR4rvGrnb9HyA1o7nJ1XuoPwBgX57kAgIv0EOvigM5ngF5Wf4TXSJBs9ufcm85a3LmnvwcnnWYURYOxH0qE/xj81spvK3QaLgcB6g0dkU1/o2oCpzpRfn5YXZxmRRP4pgF2CXbRpLKDscboRBNrCWxeRLVGdvOwOTg4cGFwCCiB07CAw5WrCIGWw8dlmq97mQcb76owF8hC6toR267HxqBd57n5oGWm/TaALZfNKaf8hSV8x9Yqt1X5pK2Fccenn81G4CAGCaG4LISkRbJ9mDQxrkVI6FvNRQJXrtM2b1ryXaJsH553iqt8Ws6EdLNv23Prt2nrey2qCYLVx5tlsPHMTJJ1PB7YnacgYE4LeYyUf2+zbrJCYYOm373vfrDO++bc18cKfqpOv/pVaPHQ29oA5fy8IS15iTU8hOEC9lwLyTYBVDhXW7AKctKXdpEVi833nDL+AXyA4aqo+VGqUTYkyanDlzkUEUEgiHcoEe1f7ucfr+OveWg/e8d06dOILtXHGUwfjgQndxDVtz2t4B0ecg/JcMsYYym9/oyhnviOXAXST5eH5T7oEPb6tjn78f9TBN/x8LZ7zJJbAuGyLBc9SkGftZAcggb7CKziHLpmZnjDha2xDTjrZS1ERAuAU+kHkdgaiQ1vOkRGZth7ynTNfrmB00DRPqQJ1GzuToHZMCk2FXmgC4ys8D+3MZ78POi7QrSP+y1ZQpk+B0449XrXzQYpehewOhrOnN0mvKWY2l7SyhkJ3SEDyF15D3WCtdBjFFMMohjrICwbQSGSyrvsM9h4AMwgD0TdwOiMECR/7nUFbedhhoLPx8Eeuy6cPUe6tAPqGgvlTMQOGbekmMGFCPOIjYCG/+W6RCjLYSmA+7cfyLoS6V27o62ucs/+HAbUBueGj3tyMMbCy3HP5TLAa9/ZG/cNV3uGHtv0bWnkTr/IliS9jOySOdyonxJXPb29RzB378hR+PFMr79DWJnmGO7hcKtpWuA6ynqEFLDO0bs03GPwaDWOJQhMdmRK52bXFT2OWeKTw5re+VQvXfbJ2nOAZ5j95VT306rcCyk7+4bOyie2SaMs9IDDACweBjqt5joxrjBVLzJimfnhr7fWGz29+vSZ5TtTyP//5WjrzHCBxEZaP2RsDPsFKFkn3ncIwCc8xNEnRh4RkhLFXaVwO6e/iyaDLj2zUyZM8foZ7sDLaGPUFkTngVYGHJ+m0isnFwINjgnObvaU9Zx2u3U+7sh762AeYWfkjbPYJ6DnebCvv/oQnzjbg1JnaoZsf+7CBRdoaMjqnrDsY/MPgBHt0Z176lHpw4ufq+Af/Wx34mV+pUzxNdYp9Ozf4dRJl0+AaMh1SnNIUPx9lajjpW96VJu3cbqT68vBbjcp3Y+6yVA5Qo45CC1IScMYgpMErsosJvF5MSGcGpbzo+OmI2lOdwrSdV72IymUT/TLLO/OyKrcb6NWfURmUHOnzIW5nMzb8yzWQCmgbPrZvOUxQ5Qf/DQ4zHAZaawzsnt2bk5fIbhGI9BMdawz+I87Qo0pK3dnE0IjtS8GMHh2C8m/SyGrQ6EDCVWjvokWGzPzgW77y34MoyPuwzPemux0ZvCyNKGoaZsOr9MnYXplDtAOVPtX3XKFXFYJxFEV+zDorF29QQ1Na6lPdeuadulAULorVRsyMQCR/sZoIONSTM0pzCS7qgDppdTBjokPbpNGL6fjHAG+Q36DM/alJ7R07UwkOl/n+RM5u6gzTm1Wn3QOQJ0fXxMchr2q8M9kpeDEbSqD69tdq4Yufqt1wPfW/vaLWL31arfBffxPHHq6J4/yrqPdByZAIRYsUkxMbceiNeR5nfOqRWvzmDXXg6zwq5qGjtXgB7f/xb9f2JZdnaj9Nh8yU3s6HEuyM8S1wGThlRU20EqWhmto57P4Cx+nsJRwqdx93tG+zP5bNO2aF3EaaNjEFKIIT8NDxSzqegBKXHUmywSgwMyD/CccjtNjTyj/kurEH1NYGAQtgQS3R2YIN3LExFW28AT/yZEYTh3L67kyK5R77gIcvv7zuX7m6pv7yv9beN//jWtx7VjbKE9RgUP14ZIMYRjsLcRIa2cNO1aPq4PhhAr7CD/IBLqhbAcptY/EiRWRW7hFvL+2skIBO1J2EEoDaSR2slK9pIgpp8cUr1CVpO12CDs10RO0kH8ynY3+2TdpJqeyORGeirDualhOHXEGTTHyDnHw5EInLWg9nvtLwsDPCTj7jrMgygVt2k91yLB8lbFuHRPjXxeTEelvY3o//LJ289GDO2x7ilxIWlnYusZ3VKBNqj/2c1bg81F6+bCZ8+CBluUfrYOBSmsgs6g5S3ReS50sfHCBpxywGggas0BIdZepaXxiXoimmKgOTBDkSlHAIg83wx3WRyTppZAmseBzGEXmyjTjsBd424bzL1VqvAvRJ8QKE3zqRkK95+PP/DXNRhLwqiFdrwwQyApaNnI5DA+nCPZ2CSOiGCz/+XV1iRvWdm2vuuk/UAcL59AteWRtPfXpt5KofwYhN4dyewIa2wuqsHtPeH0XSYLFMJ1+++9aa/tSf1wV/9K6auOottfYP/lU9uv8MfhvELI0RcApG5d+/xdbjxDOgEmvebjxqmIxWFCmMNPtoQ5sHTQ5lEnYBHnb5uwjm3W6+D8IGv/DBEVjJMOJImI8KzygHDkoCP8l0YIrfBHoINjXRP8j23z4UYHL7BPS78xu83Y7Ps6RI9zJIp4IHDUqdtO3kWY6Zg+ls/msXbrk49Mzn1H3svU186L/Vzqt/pZZ28IcW0Jr094/yQBs7vKNz2LZMPijverWRLhBBUa2N+JgQhlcnwSFszyny+NvYop0tEpMPVu0DpF8BCRazFPQbOHgIUERKOYWZTQzkgDDs8JA8CtRz5LAXZ/ZFGX7Ywa2JpV0clRTw6VTSQPB0dAQRZpxB2WrkR92oMYOsncND6NZZ68A9FAuCMrVpThGQkkyN+JtfcRggx6HCaveeDEhewDIwaNsEE2BbP8gkAb68QNCzGgOUuvVoWQyyzlR8ZTmIjYUQxiWZeB0Q7TPpK55P61xK3S6/HxWPukR36rnP+kznOxjSAp61mXhVRX4kDh4DTZa7FLpck/1eYoKXNu5HGcw62OoTHbAAU2kGme4H0LZPpB/gr5FGfRN/sj4JTR+EqT5oSD4TGJRhm02eDpKHCog3TBI4vJfE51H54Lztb321dlz7seJvQWvqha8lUF1Ry9z/NMmSZcLbE0TKJniWTsB4kyNYSUGQn7esMGNavvOWmv7iJ3mu1d/UzIveWPf9x/fWzBMvrZ0XXlzTD96TQJXA5tU1OkyWqPCDfcDSiofXwTFyaaANFLUplNQ48WV3E3Z0rNxrY3TGMdwUt96NSx1wdLIojUbWicfpqkh6c7L1QoNQk0+DjzrysNS/F9MgOp5wGjn7B6nXQOIQXys9vJLXaZz1yfUw97F54BwrOrhRx4Bw1vNfUA/wDPuZv/qvtcDG/+IMPwz3WrOANhKLJ9tJ0DJQR4fIn1kKTiCA1CIoXymBh8bQ33E2IK2zl1raJOwCctvtrAFTAkoGqTTnC6ABc+g7+7HjqR5ZsC4djHQ6Dji8cTMzrgHOpWbbf2wDkJRoM4jGWQ7QoxjRpfYMh6RzBrAlkqa0+iuDgSUgU2fBRxuBxSm07WytfPIbXiykjSAJbIEyz4c646w3OApr3raScTPbZV0uNlAuBfeuOnDIF/1NwTjGsqTDMOV5DzzRXt251NMFw78DuDCZ4XM2ECgPDTuAtN0A6G0AaPkaOIyc+pos2MzZUm53iFwGK4OEepZ46yw3M8NAdBE4afACTsp+DMDyII+hRyIDM6UevXXTNhUiH3GRark6mKYcHgxck1NsK6lw149W+NdNi94DddNXuGL317VjgjvHX/xTtXHp5TyPajf3FdFJeGJmjM5MI31jcFt/xOmNjlvsrvlHpMv84/LUtZ+qA1+7vma5xWHzX/zHWuLHwmt3fa92s2nvvVT+95o3fhocpomeyJsj6iSTK3XwBocIQUDDC+xQEUjlkbBNxOXLkUwtOop66HL5tTt8CehCzr9U6ll6w2SKCg7xCqPdDS79Uw4NIBaU56g/0DI/Ht4y4L+naJ9sFE7tTPBvEOHs4t1QJ25+27jtJXArmF/wHljzpL0E7CXeaTb8D7/4ZXX/J1fq8CffX/Ov/Pla44kRTpMdsQbWQ1LZlVkV2BHUnp0ChHnbKRycIq9keZ0OqIBoW/WbDkcbO7FBMOxR3rG6dSKP2QLg3PqThI4m4tYXTUh2h5AfZ1G6f4IVgLkpUWaBUVMeLlMSBD2nvXk+MtYglENb3pISzrytBeQtHB9PLs3E70t5fQWXIKlq/k+3GcikrtGEH/lz5uPRegip4FX+kI+M6p1Dua3FR7yEn+ANXM92pA0n0jemcU5QoEA8fjpIQEsstMseGRXjjE2BadbAQNtyDFZWWNd42wdSlwZ+Df3HcxgXjRdHkFD/txPQ2GDmZ5a8VxodI707Xv0FPxMBulTsaRNRKVPfbaDMyE+92xZqyKWph33X/uz9ZyTBhZTQy+Qi7PEFIqXynWBuX7BTLBM8Tjx8f+26g7+6uvGLtbA9W7tf/Npa4Sc0295HZaDiPqE4ET06G30YI7i4quA/xPj0hFMws3Ln7TXzpWtq35evrR3Pe3XVb/5+rXBLwAbtpoDbyYzEWYkC+1H5TinzsPxIqzgoUaYpj7ks5wjzlulZlnEOTyosMCrIy95pSHMCYbRBS6OVDgSPCUaAeKuHxhBacVSye3o+tSKXXZk82vnF8xiMbWhgmz4ltcGldfU0OXGqLUCbjNgaDMW3usJkeO8yMIduO64ZZ606gB/3P7qzYyj2Ag++9DXZ7D/nc/+z5l/8xtqYYbYL7sQnmaF9pvekR950Eqn6rU7Tec2ZTq/T8frlPUEN3fymnTgbQaBcNrYfpHsE3pQUVLWH6hmDU88moAW9LH+ok8cGlXbUkbw2bA7sRPJAAbAJSo6O4QCYwGkVG2sbsVg7pMhaF53T3kNo7eESRl5sMpzQi13Vg9mO9SaHdp3ubDBRP7ZNIrw0T2mm3cCjRrt+0LujZHT5mOwWefE3A0oY7jahQ2vl9lDekf8MyuJPmZAGgYFWclAlKxUHB/uMHxZPOVz1J/CBIH8+EUjkRwEOJGqzgwgE1C3w9gUXUg7IXiAZg3PkpGy22Yi4vcSF4uP4c7tiED99QUoJ1vDHPCX9NTTjQBTg/D5tTr9WN/bZ7MEh2PSjK6dqnfuo9v+n36iF866s+bf+01p+2nP4y/VdQOPCPDgvrgEyp8Lt0H3VL4Lz4+VHkXbtjttqF0/S3Pc33J3+/Ktq6zffXivnH0FSIif/VOOzrbaGYJXf34krwUKltMNIBxkGX4FR0rl0bjkKiPoBGEeKKCEKtE5SXjbmEmoEp8A6Z3DZI3dfyeBoEANTzlA0wkPI/mBHXLMTU+BGoWUaX2VpSB0+oxttZcfZAZXhfw453Qxfn9hdcw/fjRG5HsqV0uzTaHjglSGbpOLSiXT+YGpZ7W6YJkZy/yPLTOR1+ryFEefwnIOvuqq+887fr7Mf+oM6+JZ/zm8f+RUjivD3h4rZnNldFMpc01Yl8qCzRX/QHp/AYGDwv4Hc7/AeLWfaPXvB8XBIuZNVU+oESXAmEPIxYHYXJz3Q63qXenzkTVb4qC7e4atnG2Y8og2+GyYzZ9ukBmyhmZZdArLIknYDTtL6ztiGJHm7VPPoMC8feTYTNZFJYFsoAwjzuzryWUIrFfI5O5B5cTWs4AMvNFUuUYhP/WhjVWPaysgMjJfs1U8CcXAPAZw6A86Iktak5brpDugbP8xIRRcFVfMtQA44IO0HScH5WBgXmz+2DmNgSB7eGgecxm6dt2/4V/OxNW0cnJ1ddUAhwzu649t+o0NENwYVuYMvKYwCud+GRM0hcqlOA1Bm7WSiy+BUIGv5RKm0Uy9k0w9kn/z0jj/43dp94Ow69Sv/dy3xE5qtS/gnGq6CTXDDZ6K5HMBlrngQpr1plF/l1QSdZ5WZ2ak7v13FlcMDX76mdj7vdbX9f76rVs8/n1sguKOG+6j8CU3Wq2rHtx6g3KLl41mlqMQ+os5mNqUoIbommKQjEYAAFZ3K9awT5DYIyynzcSI5lF2noUxAjYDuc7TRNVIr00LdOJf7KTK6qzuV70gXOPHSPhcqqE7HF6u4qfOnGFu7r6glgvYk/yw9++wXc68Zy+pEVlgAW9+ECX4Jkm9zhsHMSvLnnED6bjlbH/71/Bo/vp6dm6/Z1/983f6ffrcO8fOn7ee8HIPCIyjUB0wFswjUTXwluHQbddAwI5TggqWcVC8JuzYzLpJxTNsBmE1QUbRygj5LcBCJJ0EMZKadZYUdcDRGZdIK8hJgvpSv61NDxryfHIPd1FPkGdqaDo7H4bZklEP4fg/Y5AWEfqddiqXdbQxm3uOlf8ij3V1f0E7a+X9pm1Zy1zLLizrKgI4PCCy8vNhS3Nngxvd1t9ge3F3esNET0PqZ/iSX1gd3yk0PigWmQ27Xi7ODnvthui2tG2FmU3KqL1kkx4ruIb649CCzFQmoImRpqB4M4j6dNYyIF6YitUhAKKetxaBsfmMcdQgQb1cK+RUN8OHLtrTL/hhO656YJHknQIV1SZI3xHl25WH59K5XvLnWLruiHjl2rPivBjoX6nRTnR4QxgAW1RRE/W2PRlkkcK3cc29NXv+p2vvlz9bMxc+q7V/+v2r96c/Mj5anuHF0knupwkA0BYaByaBzGEotDGHpNgppEgqZWr40mDwEBXlnPf410iwK9JNRnjatMrqXEZxGPUUeKFiPPBvcbuCPmlXYAuu+PFXUta1vjMIpPLqcdPbl0tCb/YzwBrfQEAi9mM8Bf7kEK6ORB96X7q7pV/x6PXT8kTrw0fex3/Sztcaz5jWIgvgsePnLhyJRWRUKZJTVPQuDZO8ducelQeGZulUGgAO7Fmr2rf+k7r3hc3XWzGdq5cqfyC/xHcFhGRyNUU0mWDf2kcXR907LpAZlpGdIJEkrbxyHtqjAXM8oAe0O3A5knXA524rMBHp1qT12PG3s4clZpTBSaIeWkvjDRfiIISwUjrPJoDARSFv3YdG4dOrgP1QAYJvTj52hWB+0u9nWdNAlr34JWNDzn3qYLKcz6SubdNz2wwEvJ9tpJ/XlYVtxJqhS6+DZ+hh1OGgHIH3WoKK0lsZ1xEFedD2koBuQOgimhArzA7kQG7SFipq4PHioR33FbNuTDi+v4oJYltnS4uWhLweOc+7Ap9x1gUvEcc9MEgZvWxhAMisAhy/x6nMqtPVNqQ0AlodRzg50ygA8Hy9Uec4VVXHbxlka5+ibrDeT2r/GZeYWsWl65YrnRKBdRFmfh5MeCiKJ+ZW/2raYGdNxfoZzlH2uc777jTpw/Sdq9opXVf3623nEL3+qRUfaSRM3iHOfEB0/IsG4gspPvMRchGnDuXfl0kEuM2OC1qg4VdQdWwwajY8K8kz0d9YXO1Cb5+oIBlwUSCr7NeD10SvTBLr8Gln3VkFo1+UhC8UEAptGkZTx0z0e+wINdxjhG3IoT9TAw188lJNy5D8Rmf6gfkD5h5xTd9YuHiR44Hkvqpt/+1/VFZPvr4M/9QvMtLjLngd3d4xsd5GmhyiDPhlv3SDRpGP8XPlJgQYHluX13sMHa+v1b6n7/vQ/1zlzO2r58hfw+Bs6VzxXzMjByaxtLPErlDmnA1g2HgAJE14C3G1M9gxKG+pM4OU87gUZvGyjeR+P39mVGBtVnw2446hrG/UtgGNoiyxuNSG2rhsxxNBdCowQ2J78AEZOHLRJkcGgBdcXUhpaNiQnb5IAJjMV893UQluenqmM5aMsI1gPCvA7wOcMHnkTRl+Nz6RgbOUgK+fdyFRq+IostiPRAcQOHUjqRDq0Q4mZ/Q9txZdq/Nnu6wKm5yQEBfC67SJHwQ9ys+Hd4tO8JYMO3E7pJaCrlPx6A4RyETLoTpisNihImrowIBuUCSvbpvHGrrV8rJMU/DR5YBJE2x5pA5z7egYqA5f146TAWDA9wd3bk9zG4KMb3K/QDbaYQblB7si1SaBaZcP30TturgXuuj7rAx+s/Ve9qSb/2f9bK9yaMMH/AG4ff5gH8DGrorX/ZCNDMi67Gf3grnWPS0VzVAAQB7MDhP02hLNPL4nqKKNyTUd02rbCPPcnRiftSCGt/F7JBTcHRcBBRStiTX/p3XsuPVtI57BeZjniyzSSH3STw5HAB+rll+wSJT8/m+eC1lFuIPJ58D6x8p5jy8x8+grhxuKJ2r9jvi5+26/Uw9d9seY/++Ha95LX1VHuBZsjcC6wS6lxJKhz6YC9fHJJ2vrQTTSQl8pdmsdJFAOupqC5yf1x+55wsI6/6Zfrvg/8lzqXe+aWn/Kj3NfKTpaCqGBlIR2LkB51GnnJWx5ZrSMtPZeBMZGOQjqORrnqkCfx8ZW8bcMXiDsw6Igilm/xAydu6kcerLBOuzSWgTY5S+SxS2zYKb/lY6zLsmmAsm7oUqRCXSxpKM3uvOLkQCbQoGuJtH4FlDt5Eb8yO0vXCs0z9fJL3sNvWwOSMts4a8msybRAHLHvkGvYrrReWiMedeMxznTEmn1S9QRUlpIyffrotmYNRv4/pMhyq4W2diAGZ/ZggwE4YLyH0SGVItJ8gXMMbEEQekOQI/3Y0l8uolHwDEExtHuGJD7lG4xKwCQjP3yydSzvDkLQpHl0Kh/i19/Gw3T7GjZgv9Z9Y2tBnzb2fy3FfVicQGbU9eMfvs9697Z/ucVe1tIPb6+JL326zmX5MXHk0jr5b99ei899SU0dOszv3taYUXEbBMEtwQ48GltKzmBkQEI9YnQZ2XDxeCdup1fpVGWENciARoEGQUVqAHOp4UzMwKQCenmiDFzho9esQdffQ3m48diC64beLwZPBi8Ol3zxWyKkjunHUcWris6CjHnO9Hz1FF6aLhtWavFRnwBfddU5c3XWjon6wl0P1/fu2qqffRZPQd2er0mePuofVOxZmK99b3hz/eDaL9TKR/+i5l7AfhOzvRhVYTjc4PSSt4HJy/n5eyTKZpHbK7jOmDJ7FJiy0w/qg8F1n/Bw8Iw6/tq31gMffnedNTtfJy98Okyy/8DAoX5AHV02tXYkSUMRXq3XGUkjZ65WUZY0ZT0b6Hqq0zFt4pjk4GBa5Np3DDYZEMhT3RCkx86uzaP9oY5T8v3cLxEHYeyiU9syswn8wCrzXClII2WTvrzqJtpJfDlMUKYX6IFxdoEt46NObT8GC/mLDzYF6uSzO8zpAD0gF40H2k1/Md3ByfPAY6h2gxE+/IWvLlGWuMCAVx1O45sGkRQBZiA0kHFK6TjYW6/G7a/KIEY8PbL5oMD48oAk6UCDF3hnxiNP475v+4CSREWxu8K03iRui5ZX7nzJew+obTb70qhD76uLJCBoLYpCgWwz0hipeaaMGVXuuuesP8j+44NY7AwCf2uaCq8I5n/luEdqeXW9Vu6+raa+9Jk64zMfqvnnvbamfuPf1wPc4rD28EO1m0ca+9iTXGXy0cBqVBbDTCtEGRVM0hJrMeWMT3+lvB3R1sJTMxggToAWXDYY/PpmOQ2ESWmUH9ZyboMZpAgyxCSeHpMyqaiAVTqvS1SRe0f/5vYqsxDKjEqs76xyVBrpuE8nbPDbBuV7m4MBgMVufen66+uaf/c7rBmfVM99wnTtnK/67sMned77rjp4cKEWNw/Wo0v8wQZK99+kFzif9bJX1YOf/VTt/OAf18JLrsqNuT6qWSNPEqX7D1e916WD4hbz8gUesTjL47C8rUI5fK6Rtzr4iI7MuMDrY2o3eObYGefyhIfX/P168EPvrMOvnq1TFzyV32MStAiwmoZ3WyCO12WaQPo6ZjpxJ+NYFGXpqyXtmEFA28yW1Zel5G2u7btTmQu6ptfZWNpgHHriA7l0cwUOePnT5gmipG3WgdRKZRSpcJ2QJ4cfD4r/F9+yk4gQc6ZuXC4JO84mgAgPHSzaL60fO35a0l655VN6ks6+kGdhkUGZxWm9b3mFsqg4t+dbnDqKux35EB7yFApjUd/3p2bVuWUU8lHP7mU6UEuxEVEOD5aIoHE09ehVHVseFMCR6CGcAutsxyHKJtP8ii9BPoIDZT1AdKumGx6QWdywIh4/8utqpQcI+4sAXZHH+5B24jA28J5G5WttDXxAbPxjC21ksOqtCP3T2CLfrmjYD3HTeZXpySmWglvf/25Nfv6jtff6z9XCc19a9VvvrM3zn1ibPANq/tFjzDKmuGQPc/T0TBuVUmJ8Ojx5/v+5es9g3a7zvu85/dxecRvqBXAvQRIsAAkSBEAABHsBZdOUVSzJcZSZ5EPyIc2fMklm8sXjKJM4kmesiWMrkiyZkSmaDQABggWkWESKYi9gQy8XwAVuO73k9/s/e58LZZ/zvu/aaz19PetZZa+9NwdKawyV8zxmUomkCWIqJcBwpAicBhkaR2AHA4eWI6ZGy6IuBszIkF8r0BGJb8OZY2Tj4Q22GvvRcxt1/sJ6HdmJ3MvyZOqVbwxBwAjPwLpxjnI/2MTny8+4+shhoDiN/l/+zL3cjoR8lxtNeOMJi/lzwLsJ1s1xUzuuqLlv3VMTr7uV4dNsHqvslo5Db+OFE8i59uDH65IP/5Na3LGfuwXc6tEBSffLI3YJmEPfRoDCxhqQHBtUB2l0go5TVEdnbKTLLTxHjl9Rpz/4u/X8ff+uLvnAdC3xktZJ6HdDV2cO9eLoqtcp+mPO1mHjoh50ppghZdh3tLU1HRN1Pdt5JDWSoF7VRb42Pp0vPkC5+SKrk0HKU8mLqnMavE3bXvQngxvChJYFI63gA2eevAcywCEMeaFFsTQyaiez3S0IQRRHWS7iR+qUSTD58G/7BVTS+Yin7VpT6djoBtk5FWirQcoo5fkJDqaURA7lQlBB+qMOHAbErUV36nlcz9I2OUhIwyvTyqquLZEyIxnG0l5tE+pBmwsX+h0UJdAdj/lN1tF/82iKyuCVQgmmY5FPhJY4toZu1qH4lV+ehCEv9EpAl546KiF46tVlZmJHRlQtmQVkBa9lF0uZlbPbgYGdEdICuyoXnnqstj3E86h+8O2aedPba+Kf/q+1cvwEr7uiYbKgPsV+LOWc2r6tF6ObDsSYmqCQb9aIgRXWMpl7OGKRKR+zPEvCX8+EN4VBYnZA+7yxMuIiw/1LErVyHG15gYDmnorSnj73ahsvmXjmyefqR7/8Wb2m5usN+3w6xEb9yY/O139+4+HawfPdFy+8UNuQ1Tf4+OzoGdaDPKZYW9IBlGlzbbFWl84kuPlgvadPPV2P/PRH9fijj9TPmd4dZGr84+d4kcYakzmCvBWxRnBYxUbrLK7PPPv9mjwL/q796MJjkBn+eX/moVturyeZTk5/4s9r792/zlNYDzJ942qq7yNEx3EdwspxHxa12Z1CtFZ99EdPg7WbPv2NWSznSa+Hrr22Tr3zV+vZj/6b2v/+X6vNa5geMjVtvXTaoQ4gzT9H2zNJdIiLAjzCa2vTmsUGmOWDRtT/EmBCEdw4FnCBH+gLGpPyZYPouldmTmxRoRUI0i2b7WnIsSas8sDJQZN4RGe+0jA573ylbZKmQg2mGdENFC1Xji7nRJ340fjRj2S2JsDH+rBQ/vJrS7WW4xWzkZYkOkAHpUcY5IVmCEhDYviY9ChTH+3dSzLNJNIIJgSGyDnBquW0E2/cfKtbYIEa9QDDwCS6/KRjhx6mg7kjRpRrGGnYsXiYLa0sl1AgqjqkrjFC2xnJ5Rs+DWNSaVNf0InrSk//BXigLgsQm6Y+bpsXZ0wHUGIk2leCkWzQ8jv9LG+ymf/qF+qSz/xBzd31X9bGf/vPs5ie+QhPX5jkBtyoznxLQTZdEHOOqkL8Gfk7+lsBlCvQoGyzJiPGk6F/iki6C8czQBjRJE8F+YOuIcyI38NhC0MKXJ/Z0wPQ2BNiwjjC+WsWuX/wmfvrv3jta2lQi/W5p1fqO89t1ENPncsLJ5bO/bTOcQFhx8FddZb3EYJYFy4s8DlXF86dqed40unq88/WEkHtJZ6i+uRTT9Y3Hngw7Uv+1++/sjZ3M4JbgCej0ikCX9+NzrCdIGKPMzG9Pfq4YKoeGaQh/hRPizh66x117jHezPOxP6n9v/KbtcATGDZ8AkR6sa4o17HczqNT6EzqeFHPnjZqY9fxcs+WtoKXDxo8+qpX1fdOfaDO/sE/q1f9T79X5/ZdxsIeD0CEPv4DHWRClqaJfUNbOZunGQYCK9I//7NWovJKQ5k15L/B5e8e1JvElTneAPIof3J04GSlIYSOIJ3VvIBvJ9cW8NMG4MSBlU2+UeAinDIqj6QxSyeE9Y/fNGKIeN4iN5DwygBIeEdWHdiDn8bwe+CfAupRhPxbP9qu0U2Lhesgo2lPuyFLIXID03DiNEzLwTnKKb8fZwepB4zc63nmtz5Ov2xF6hZawEujv/wZMzpTc9l21bX/GsaxhPWZ6SJythzsMg9dZRlsJxzYXq2zAq0LaXoAYiF5SNTFyRdImICRiG6jXOJwdHtv2Uw7Mo6PUhY5AxcKgZfv9IF//t/X3O0frIX/5v+p5WtfwWL6sdyGU4wWevLaVRwjDRIMoQKqLZUOYU/Wa0HS7mlODKohKNMwjsasJOXIjm8Nw0nytB7nVq85ETMCdxBQEYeeBirvgmEZCvbD1gTw0uAIpss82cDjUYB+/+HF+urptbqKPRv/89fP1OzXF+sEj5fZ9ezv1d4TJ+olAtb5lYX6xdO/rIXHXgyeX2/g8zQfbrKp/ZP76tWHr6m5ndvhyRRryUcsI536EsQnJvi40ImZvOWo/1ZzZdFA5WViK9UKy1MgGLEdeeOb61kWqJ77f/8vnhP/D2rlyuvYZOskVWBtRTJW4Rw+2jFZ5lGuzZyiOkWMUwNt75sRGsHp+OtfW4+e/a164b6P1u73fLiW9vBARKeHIGpZAw3/HNIjnbohndmvlh8DkxANZyohRFlE4kgdCWH9ci4Z68Ezv/23YclLDGEEcoScwwJ9KDjSGWC6FB/RFzgitwn1bT591nqEbivUeoW8umoT+AuA0pEpVKBDnuVK6n98FMO3Dk1X2VNMfpYegB+xgowwwneuWiufFOFk3QxlES1sCD6WD+lcvW5C2N7g03XrtC1rtcC5pmp9N6luHcrgIruH63kUJ6ipvGmqIx+RMgeBpzKof8q1N+hda0ygnDdzhgiidKebKJawGNzGFp+8gb5n8R2wMnoXeTjS3pNWp+ar3oLIzSO3QUnMjMGW2bNnA9CnaGcjL7X1gt701D/9F7V09claZHQxjxaTNKhc7lf6gXQazHAqw3ysDailgrCG6yrua9IoEu9Gxjlwqt0jARV0VGaDA4jDysjgAqR2LGkMI5VAyE1J/OtUX/0Le4KXNN3xQTkVvS4xjido/987tVHXswPBReUT+x0hcs/k5O566fGz9dhPPl07eaL8xNzuOr5nT01fcUmu7ukIl0BiDnnOg+g+NB8dc/4lRmPk+ajldbtQTvrFqeEcwyYQELzcoOroZztPoHBBfbA/v05jqQRGQodff2P9+MXTde5f/l6d+O/+h1o4fJyFcraGxD7iYVto5G/I0xLq6JUgREqvGcbQFM6e2FYyzcbda956ay08whNSP/Xv2Qf229y8fgmeiVHA7/oZnFhHUR0bq3Xquc5C2pFObJ7yi04HdPJ1XkeRoimbdIkQficNhdBszP4W0XzPxEtoCH7neW5jtRZRM4SVJetZglOSEY64IQDByCcodRH2eGGCXU6S16kQaNrgtkQth+URncQY2mTvx3wtoa9GoOSbKUcDClAyhqdwOQUmWWlxIpLPjzTG9pSNwZR46LZw4NOWjGnI16a5eECJ9asvKZOwMQFEG4dMUhlNmgJOWNlL1SvrWbIRngJvP/JBALkyN9CNfBodpPjpULem5THy62EHZ8CpS/ID0zwBDg8xMkoj0NgGrS5lmmCjVWYEigyN1qfbqfk69ugfPcXlPLjosXziuhDKu/0YMdioIkgYgEwUkaBCaux+s8YofEshMXhkp3Cu1okW6YAfjEc756oVu9RtxCwbzSZNIdOfqCygmoLhX+KOBjEbATSm5Z2jm0RMRHXk0nxyV0RaDRfxgD3OfieDpUPNFYB2EiXZNVZTu+Zr5uA1qbTRQOtc9VzzvkkUWeW99j4Zcomg4FO+UpHwWCNh5fGIMbkz0sJp4KdUjvzc3qGLWec+lGweXecVivQGd3lukF5H92yQ5RHSV7zhDfXk5mo9f/8n6uDbeCDiFddx9XWZdTVtpA2sKPhwrvoGEK9q2gupppXJf1c4AMJrNx9Fy4JaHXzzmxhpLtdLn/jTOvThf1xL83sZaSGLQylArFP/40SxP3w4MUCos1WYDmmAgSW8zJQ/jICliLTf4xFC3TDJ0qE9ooEEhyNBUV6c5xuw+FeooQfnfFPaOPqlcO0tyjfkWx5YxepESkh6YLqUm06WXyNfUaMkdkROzBcewnq0dINc0o5E6j4QF4dkjzL45cQGqs656gztyBJcLKbJYrfBvqETiPCzVJ5jTmsPA+XiR+9SRtECxa+HKuTKKb6rv6ejESb20EHxW+znlgDt7kzFYLVC2sCVBwdSnrsCwJOv8rvsk/omYvsUBX1OWeRhmFBf8/ztwbkBM1CBU6Zc1BKH7PiyNlFu4JTP9ufcQj/uLU2tvzppDfn3qF2ZnPQtsejLVgYV4o16yhMDSMEG5sK0mS5N20H7XCkf6SrZGJTnmOZ5RmyinCBcpxFJg0IZesjIinSfk/QtMS/TJRI+FMyK0CRxBxWButjSaSo4gsh8pKuCHjqcJopBqIgx38pdxChcMmh84OxN0iCZT66x2O0Nw8ol524I0OVUvTy3SDZKZT1M8eWKwiTTQF1kk7uqCS0ChP86hoEygYybvcmcg2f3bMpIj+Y0DpoGb806zw3Sx2+8oVaue1WduvcjdfjO1dq49nqeOz/KHEGik5V70RHVo2VLpashGUnjXOk1DbhseTh88y31BCO3Fz7xkdr/wd+opTkfAEhhdFNHrKmSHtZPDKj2HMjo7/jRNjFIEgJwSp615XfodKtHzzgA4HHvAMomTktuAll428iDDj7QprFyi0S9QEdpUk1JdUloATXahdQWnLAdeKUFDW3XBDgXbtApgEA0ydiiSxom2MCMQS+6AquKHdRbdus0ePwmzW+PmJqaPHVkW1dbCnBl2kILwYG1+WqsLS6G7HHvmMKHHbgGg5GedpVeaPoNfe05Qns1zjYivP5hO3bUk5uk+RXWJyR4iOXU1XrxyrsvhUgwFnk41LMDdeuhxOo8baSAVqZ7GDYBEliDn3bOVchBd8vkZdtKMOYsPky58wB903zz5CLctE4ZA5lpcHB6FUPpNDZQpaSMiosPZrguI4mLy18qvs0YQ6sU9LRsU2njQJpIjWH4dcTj4nKiPnA2Yp01wjFyUVDJyt387glbCQ2pwRJIlC0pJGVoI1sP5VLm/JqJtuxMIoDoCOiF7PJWd7WUpvp4wIV8Dy0ADPhNR2cVw1K+8QCnwu7/mpqaYRcD809rxWL4ucbkK8zUbQ2ea4wql4THARzkbFKwtnC+Dl11ZZ26+zfq2c98tI4wbZ3ZewjnwkkkFfMPHDlR1paz+ViinkMtUSpvcmGgY7rgfvntd9TjX+CaKvQPfuDXeSP3DvahGXDRQhh+/TEjeiLruHcqgYUi+XR9e4LNB5vIL9PUwe7hL1GAO0hoWIFaQilZr/y0rNIyJU/yMEsO6yOwAvovPXi6TtdXlMOCIvWXRdONPMoaQSAR3pynJkN6aGjQRM4uDoGkw5PTUKQwZBSP0viBafIFyYg2Kc7J8MKPcpsOPgn9VB6xnWUmoBp/DhRfkT2FsZn1Lj9nBimVHrpHBszoWmhKoKVV5RDbRFo7STZRI4hork+N00SnlsI7otJjlDOyku8yg75m4BMm7Q+6Xq1ehVYe2kcdaQ/DqHv8vFLvc+vFaLdHKv0CApnG+qsM0NafbVe2USk4stKO8vLXvFXyPAyk1qeTk64hLJbgAF+1MvJr6DRONDByBhfiiuPjS8c8RySOLyI5vJuX33EZyI1WkKGcB5Y6ZKAVmEPlUVp6W9GcbB9l4SuBfLuIO9cdoTgNynBafTRoDPwyI5GtnHFAo6pgfsav9oDopN46vY3JG5E1qFp6jE4Um2AD9XakpNOl4YKjDnkXoDQ4Mz/P38K6eTQxWxSk43A4FRX6PPaGILUdRbazIXTPzEbtYpro9Fi91nixh5s/93zwN+tJNqZufu8bNcsr1LoRq5cyjvJ1XSmTmaqbhkPCOrRH1H4+bE2Hcm+XQ+PL73xHLXCF88w9H6m51XMxrG/qHlTvhoQ9YjntFnv2uc5l6uIBADoqV2TjKzYCAOmw++DEYMVG5Ct/5APW37HO+1f/Mq/zu77VYfBFcJs/1GgNsYX0KBcmFzcGX9GeGQ1EJvDJ8GKDUxzp+pGAdrM2c6oudCbSsZPJJmV5I1BkAde//pemnY40DTzSopRz610dzEuwxkzjHiXlNhg0v25PoA2HbcQRUAcXuyX9MtWwBcE5GdrBjsiA4FTKujE/vCl1NaDX+GzDyqpOyGpNKBs48pVO1w4JjpFXe3WfC+MSzwodM/uQ489qkNlSKAGAzpmuQ9wyg43TTAMdc43IKA0/zEL5Jc+08g95y6SdteW+YsrVLYETWtrEoOtbhbw5HV/X0CqiIwzOMJxTf6kMfV7H09imGBjxgxFg4rnGHhloPf7J9ku6IsMIpqqUQGWwioIX4eShIf04CvIeKddyHI7uRJDtBLBtRC8jfQcxF1+Fbz4jPjfFhK9fiqfc9lTyhlQa8Mygp4FKnfpqjcCp1sgrldU0PCEGA/LbuptldVsiPg3UaRZ0HaG6jdS36Lj4vkoZL7dPZVNAPnqB5WL8THpCZEK/zeXzte+Svaw1/aN6/peP1ua3v1y7iVnM1gOXBoLC3YCgA7ekMVg6EWxm4zeApoGSr33ywln4TbNWduU7310vbjtcT/7R/1Gzi1xE8BYi5wnAScMjONJE7dCSBrQtb3s3v8BRJtqGQ2eOdBrwMk+bdJDQycBNMAAmcgrbdAAbOq6RX/uj/qQLXRxltF4JIjB3C4kdRa7M8jsGL+VOncRCCIUsyi4fnwdu4/WCiME8NlU2PnkWFr/SESe6NzJ5ythBys4gPqgM1I1vdcrV2rDS1/hgUkcZtgz/4ocKQJndto06W17UEV7dlQ98gcpoifbSjVU/bJriOQaww5amwcqAofzqqOypD3jkfY0gjMFNW6apgCJHQKJXCwAuABFRW0JE38qdF+i7g7WbPfNTtYt7YbezjSdvbaYRyq/l6GDk03FXiELL8EpwMsgBYB1ql9gk8tupme8B7/xqqaZHEUYg7SdmSQ6g1IGCe3ilI05E2mKFbg2Fa0MIZ1k+oYEzch5QvtKvhl47rRVhmRgxLgFAIa1Qr+KvoOAmJ0tY1WG+PZa7tweCEc2w0H8oDK12LgIao5OuaHHl0XIpq4d+1w0IHBATsKgxabguZ5lo5if0uKiUc4O2EUQ4errQw1DgeS2yey9hOwxKMC/DJJJ5NdHptPMR7wjwiiLXIWkYBK/QsgfyFhscArrSdPi+iw97ULk3c6Hm9+2sxffdXc9+4YG6jCAzf+NtrH3xBDKmiurmhYtpRmmLiKBD6dwe6mvSqWbSyeRcjwJP2bTv0bveWd/4gx/U7s9/svaxuXSRqWzu3RJP0dsoIkkhVmqH8kwnyo8nAdZn9ALtyVfgY7It/IFSZw7+oKD+g8vvSFI+OqiHZZoy9h5gu267vgJGedeiogz1OGCPvktc6Rz4+2f+kMq0sae2gMDYdSlBlGf8FlYMAPg0vkIra/NuetGfXKGHKgle44sdYZMHaihqsATmAVK+choPbW1ernhCtDmZwzHoI7xtqmXkO/5nRueQChHfSCQxg4YCKntkkwDKpL2Qlqfebft3KcOXEntfa8cAsCgPCRKOeLRfJIvtKNQHsGW3SblQLyCQ0/YVgDz/lbXrzfJAdJlY8BR3S9bA2l5kJA08O8+FQnLN7j8lEdRfKzoVmjxyQgDYLcOBr/J6HP/2Bl2JIst3qPAoY8RFAbTqXoQ0yosqnpy9Eqaz8a/MEcZeo9+Iq0FQCBnS8DUaMBv2eEYBj8ilJgmbfPM0UM4cZUVnwFxPmGAK5+0tPpQv60qEmHlewLaDhfXs+wAuxjPgyJNtHz3QbWPbK7knSv7e25fFWOR3tNMjACsdPNblNuiSZ+E1y/DRkc8qt/WsMAozCCtLNoKuL9W+nfN15Fd/rb7/kX9X+x97vI7/w9/m8TRc0yPoOMUxtq7ycaQZxxxktNK1mwueWyMTZNG24rnwuo1LtK/+zd+sF7751zX54Cdq79t5U7fTWOFQBlCJYq/+1SHjoLFXMrsk+sqx6wjlYwNYAy/PVIESNU3xG5PSLkvrwXDjKF/bxZ9G3AHHGvRIQCWZsACMeiqdVzszzUfWOIqyBGMMpV0fEVDs4CkjgVaHUF7r0BR58UWyO2fUUU7ANYfUs2ltYzXEyyI/JxzBCg2hKEc220NeOR85W9ZBYkpc4hCr7RVO0AtD8yQSpQZ7dk5GMEOv1MWAoT4ffQAUSQxkRG85KMHug8adBlC7zOBnLtXMA5xgbztCQfm/nE78HY7q74btXHmErKMsL5b7METL5NdXDqFjGkrSsUzZPIafITHIJZBlAUKY2Mw2tWWMdhbaPAvECI/WdOSixBmMsDZCjePjVvLGFzyojdNlKmylaDlRdTAPrw72rTWcaDU+iqUMBqgEAqKVD+tXoSZgxXQlm0N7b6OgiBtH5zGIi/ZO0eSZ0Qdw6uOBzWsHfNXbMuOYlbHD4IGcTtUm5nmwHnR9A9D6yoVaO32+VhbP1QK4T/F5mM///7hu+kDtuYpbarjpR/liF5w9ckPLSt7k6h9DR8p0HAOWQuDS/C5jcd46RmBFfoy9hmDTDLltJIACh1wby7V7+9468aF/WA//xUfqwEP31Z7b31lrbDZ16O5eMxf7fXqEdsx3+LbTWYYh2FJh8KJYO/Jrna5z98LebXN1yd1/rx6791M18cVP1t633U0wJ2gR0LKtBRTQ41T8RC7JjAnLrLvurMxXBnEQCJ6BBaCbd4q2vgz+Trytl6yxxIatA9ZsUsDY4EInmE2pZTDdvqocHnnaAzj26uqpbB42EAl6qidRYiIfg9wog9y1v8U2rmBYecBI0wJlC6JwpO0Q1CObPMkawCO/7SBUyFRWv3szKDSCLi0O0jZcDwNlFzYvweSjfzWOZ1DjVLubkEuPDxpGHP1f3gaKUEIWKbf8yGz9iO/HXPSJSqbxvbQTqtFH1PinfFlAD7UwCD2Hpyt0oIs0RmdIbpHYGr2ZBtdvaSuBsoUXvx6jfsnnXGjrLkE2aW2vH9COINJTaNqKFo4zR9VgmpWPyC7eTiKcAcDNjAaORF5+20Ho4YBxlOHTQIeJUht2oGlPqAPSzjIqEF+ja9xxtEMSHpqH3BhLlVsBfnKofKvavccYueVpQ55kr1PDAEXiFMY8ZrDgsAK89/DbbMM4QK0cYT6+/ujDdTrVe1kduPZY7bv2IKOr6bqMdyxee+zyev8lBKfde2rn7l21l4fyPf/Cc/WxP/6jWnmccLZjG/rHNaCOpINs6RE4TQXEOejF4c1XPo7a3B5iFbpvi2t5TIPdHtEjBR1pjrneDNPBo7tma+dv/Hqd/uEP6/nPfKwuf8+vcBP6HvaLLYLDvZPWgbThZl3ovNk7g4EdaTqkb/VH1yNo0n36BNY5ZLvqA3fXLz/5lzXxpXtr7x3vY+2B3lWdoC3VoRJJG2Q81QXhpipCYOMeuudMiC5PSqmkIkyaDmkP85AP2YWWXmpaGBxUxxRCfYKl3wy6BXrM71JgqddmE7kuciVTmuKHh/T60EcylaYs602OqlLU4cO6y8HPGJTzwgZkS8OgMCxje06UWZr8yc+TtBGTQgJno9Nb1MnDFMU5QouU5MxzLbnzRtjOF1gbCdMf7U5Knh6U6QMpJM92JD+1MjVAUZdO4dXNzjQSYm/bIpnCkXYdapRZP89IKXTIB04YZ0hLtDEHENFRbqMspFtfYalP6aYi5Nd1SoIjY1MFTL4DptQNSBZ3XfHLn9+sO5LUoJbqGVG0fyXRWxyQiBGCjcMnCBjIzHd0pIAKoMzKs+UgwG4SHe2xvTFZs/VCrHAO7byi0XxsPBkJANVVADRFbSSUQzZ70TiPdKHX+73aGWEbvJS31esgLeIVeyfqu2cJkkoHvd0I+FsEqp3ri7X98cdr3+3v4skGd9e+G25g/XmmtvNEimUevudtSZccP17beJyO07Upp4yZfxEEuI/wf/vd/7TqyKsZlVi56A/tsYdW09z/iMzTjl9RTD2M9NHHGuBUMbW5tjBQi58eG1vMI+c8wX+V1rSbK4qH77q9Hkrig24AAEAASURBVP6rr9aT9/xlXf2Bv1cTO7bXBV4e4iNo4tqM5vyNLBA2UC3jiI7AbJBj/chaQzg9XOMiwdTstrryfR+qRz/10Zp46N7ac8f7s8CrG3i0KfWNrl3rz3rUedSzXSrqNMKQY5n/HpLSLzzMFyt4giCQpmngpiz12DOQ0Q67XYRBydhNHANhOjzDqX6BbIb+XBn1rCsGP1WCge9ASt5hDn9vf5HFKKt6m44epEb9pWCu9tEi3bHK11yPaBafj39Kp40+WE0K6kdBENJtNVZsbHaXpTi4BpLmHNzwGdDRWRVzxMhADMKMltYuoQXQFizS6Beuz+rfroW6KJAtDEQ8ZZecI6s8Nppf9ZV0FvzDk7pBj37gJAWUGktiaWiqN5MI6qDptE85MrVOW6auMb8BhFaCoGeeJq95St3M0IyeFqoNmaKHHGmv6CRNmX8pM3CBb0+oJ40LbD73xvUlnSu9i0y2DDo4BDTF3Tqg372JK0wKBM2h4lyo81C+/rRiPpxvlaHojHNlYLJ+FAWBc0xK2uMybjn/J6+Zq//w2HJ95cmJ+vHCRv2PV07Xh1+5q5afe6LO8Wjn7e95f23fS1AiAKSxw/7cc6dq8cxLNbt9jpubCc407A34LTPs3UFAO37y2uKenqoXF7HBHHgEXirIgJspjuFxg02p3H6w6iUadJ7lo16AEKQNXH7oSwwABA83sFqVbZ1hAZtg75WaDd7xOL1+rq6/7ab6xfxc/fLT/7GuuONOHqOzjWa6kpGWSsdVZIMsG16Q4NfhvfXadRx2kdFpqFd71l3UZ0R58u9/qH7x8Y/y/LP7a+8tdzFd5j2QSkv9STuSS5u0eXIzP4fnOe3cTDco0G8ac/Ch5InVztrVS63HNsBDIxTCs7HlHq6DDlEHvcI7cC2FvpNwR1E6LZ2fP3FbEn1WmgOuuSRz5hdHdv1LB5+0juyf7EDk0B0nNAfYNC6wo7cQL8uXlvnJE93zsZxOq3W0wFqxbsih3K7aMkFjQzITKM0gbZlw8dNgt41iOM4NDMGVN+eeCaudY6rBzv6k7ZLfOuMn6OzsybeuTxPJeJJ3Rk29vcA1Kukha2zjOhX8gMlUEaYGO/lo4/CUSQ5+x6Tn5Kt1JI8u3SaEMW4kHxj/2iikxFdxStuX0SbTNc8F9BfhbSxWvo5rj+WUQLSOgvzmXMKNY44jL6N29l+A49UwlVLhMRLLw2f4xMmC3kLFcSlzypS9K+EALEzHS82QHxxP+Tqix9GlE3grWSnZ5U6QObhjql5zaKaeJ1jdvmuirj+4vXbx3sC9B07UwTvuqKlLjzISmazzjKjOseN/gRubF1d4YQVPT1hjd6sbXDsIawWv7jlX537CvUcYwiAbkdkRpJdyUTqBzcdLrzPlWl4myEFghYDng/wEaRkRThG1rfMiP7EG9Kn6VTY98IyMNBJtBfmU8rD4OvHG62sfN07/5JOfqKnTz/DwQF8wy4MXoedoVVIGLGnrQLKRut2F5+bYmcyzB2zH1Frt5jaAObjtZdT52g99uJ5/6lQ986k/q32M6rZxYWB2ko6Bik/jZW7Z6x84urJDJxc8oKqvZE2NTO9eyFNUrWNFiRT9i+liA/0knRNlyUv9kfky2Pge+PpmHvkL3XSg1LtKUcSPcsgE/cJLwqO+zTl+FlxhOyBlFjAsY6jTaDe3XsyqA7r69M80UMq30QFsZ8S7nXQu9fOrTawb5XfUET8nPe4XskG//ObdSKyMzSw6ZLkFWo5M8omcysOHPJVU1rG9UgycHzXXf6gjKmiOzlm5tbcPm+ywpx0k0DJmTRreswjuS1j2cPvZQR46spfb18RbRN4FnNTb0ZziZWc8lMYRlc3cC2TjoARRwIMnDBzJKqNVMbDkZzwhZZlM+Peng6w4lvkhdKqcOo/2yG8v5SQWaRuA6OY1DEI3rybOuUDjoYPJNHspYg5NIsMW1DPPNXIqSWAVBG8sowQ2fEdxyvyV9cBZwW1YOrKsmz8AQEhl3GEuj3ak3pxmpXWvw8gExBgGDIey0t/OAvfPWQP/NQLXm0/syv6upY3DvM+P/VG82cdAk5dmwMPFbEcmuWcQ47QJ1Az9IJYrlMjnBlANywu86vTCen3rsdX6wMkDcSa3a8zMzMMf0hhA6X0eloqvE7lNeyuTzw/T6lgaO1rtMUbS5ru6JbY8YxtIrLPB9MqT1xAdZurhT3+srieg7Dz56gTYUIKZ05v1Ka6HTq/XriluZAfGDmSdF2Vom1z5RPw5ApZXg7ggSo+5WDt56OGJu3+lHvo/f78OHPtC7bnlHTRCbIBYUbergTzglRd9tI91rP9Y3J9OxxkpTAdEmSPxPrp+9QcRMhonqX2cuQml9uqcRkCZxX0EK1aTfnOiBEDTvX4KBYMNOcHTJ2NLINJRSl+Ytqs66E+Ophxx5PHg8UVsBQHlmHLhF5hl1kjV3/zuVJUtNTeK12dhbJkeHW6Uy1N6PduwxUC0z4Xng6iBacWF7fwEL5LyNdN87W/ws6PI0y+0HeVZb5IYh+1V/bRxOhFtIU0OpVIS75k9v8qaFcQNTkNxeIUfpMZ6MDOjqCbBd4+QghXZ+JJHKnIoG+omloJ4z6LaatrcFK0OGeVPWp/Th0emyiRZoag/ApZrU1YVWRggAQHC5hiodMiQBTGxW40goCEA6SABRVA5lXhXUypDQHOBk6m/Ds41KnbKuT2cf/ZQ2D78HS3keUDC8MkD9ClcnWLUA/wOFql34URr9voolwpUUrSZJ0B5ZJMgv3mMMzJscwrpdl2ewT5VPDoH42dNJl7R8rUTUdEyRZ78jHpJlCMNifUu16Sc/z+9uFKPvbhc1xzakYXuSfJn5rn1BXl8tKvioFbbFVreX+j2hRnkX1ZmumIrTEfunt8gYj1oK+qA3xUNF4tjN56pdeSqo/Xcm95aD/7hn9XbfvfXa/+rXlMr3LydpgNoHMARBMFKW3u11wsicQrpYrc5+Ftn6unDANc3z9cle6bqlv/sP6lnvva1Wv/6F+rQW+4kwGob6z5K5LfvAOi6WUa2rNGN9hrsqRSjPqhGZ6A1PRBAWOCyBmU28sS3okG0sHrCt0uA8VwzhEw3Nx+1a5QzX3uHNt8e7VUmOnQpSx/tjxklgi/JXMGOfIyEySGUKyLupLfa+REUSDlTcASlbPyHRwA9kdD4g7HGp0VYj9ZkLAictlDehC3rVVyQ29tMiTCcyTw5ImImiBmcxJfunHWMXuo2O/iP5AwY1ok6eC68jS3bXaCpHo4Al3EuR/8OMpQgslpGesv+4qZ2KCCtGUcZx4xUQ+xLIXxsr9LI7V3mI4g445ojORzDtwYxyUe8iJo0cpkfntojFqQe0EZnTINpskGOLWEmUpw12MEPrLm6gsAyybCY9FZHqpAIECiVEA5wMTxyRRCYfkSqNdPlVoC8jbD2DC0XWMrpOaaYphFaQb7UVUNYIc6jvQI2PwwNycq2By+5voWo8bpjPAkUgksX5LnOznnoM8JIQ4JwKIHUGqm3lUY+oiUYU5BRG3TZahl5NY69xCxTKIfR6pqGgXwGinE+bzCO3qGpsxBsMZQjMEdbzB7B7M2sU8gVh9GQ2oKSdda7pKEr2aMuXFisI1dcXnO/89v18Df/pk6wVeHAa1+XV47ltWzgScXApWUTZPmNoZArAdLzHOoAXTotInod46msl37wffXtT36ypr/xxTr05ju5P7550zzakQc7SdvpqPJaZyppnm6XEUDyqbcEBmuq6RisuubQTsSBXnx3JCRu5Bu+tAVl1nWj2PGgp8HBP+wT+sG3cWBTdI1QYdH40jTc2WESw2NjZdVxHTkaaKTnod3sYPRd68vAFZJDeWD4CrwoCmdZZOjTzhm+/Qluy95gZPY/vBFDPXLemfF5MuiL04nbmc860uDjnRLiuNxie1mLn3QdmD9eUcyUjdGhPuptNpGXiBT1lSi2bX8PQSDkq3z8Y0cwBhjlN99yj4yKLCNtoBw7hjE6hE5Kgxl6WtTILVZkBF9Oyhw+QlkPGsJMI2KCKjbIHD7gQWnSESDYisGHY8B1f5EVaM+f7QRDuXS1gLS3GkjEa7omFd55r3+mDU6iJ2CCriNpDF0vwYJU1ij4ncEY7uz0dWRO3ZbSizASEw9llGXKUZRdB4cBbQPYZxcm6vhOXhaxfbJ27bbhz9dZLgRmS4GjDFxXKvJWozQChZCeVDUc504BUnHAzXi3M+OjVDnyO7e34Tjl0AZpDhhEeztSVQfx+cdp2KVOgDLwOHpZAv7CqhYYYNHrPM+dn2DnniPAFa7Zz7EjVg3dMapdfOzzOfaL7Tt6tC658sP18P0P1BXnztbRt9yaEcIm+7iUX2HSUSCDGvntuSfKrmzp08zCXk4R19mTtnf3zrrh7g/Utz7xaeC+UMfefAfrcSL1JCOOBT3XIrndO3XmyKTrUfvrfNallmi9laavjnVAttOxnltKU6QloN3yUSZ4JoopLxAxk24u1kAPDTzSufErVQgAzSG+GlqfSXMa1KahNgzuchgo5G0dKaFwXmlN16TNObfTiJycjw1TRuYNIoUWoJ3n2ShL6KYgoOqmdN0EoDuQyFoTaTtJebvnMUstjUqni8/q28iwjF+0Tw234uCHntvoE4RT285eyKNdWOYhX0C3+JtqzdDbQr/Q1byYHHr+2Wb5oYgvQfgKpqfB6w4yHYuA6ajESWHagdke6dQ46dqjvEFCP4MWMlKn6gS8W2143LEPGlBIjdCUUkEC8NdbCQxOCAuCTxlQJGnbhMKMkyiCZvakqXTKBeog0Gnzzetqame1QXqFrCm2EeGE8kDJMx/OQXURVJ5Gbofz3mzKhfluoOZD37f2mjce3sairXbT+FcZxpxbWEIH7uzbZMMoj4BxS64VOTnBM+utwUhMYECiWRqnQY9omMpgpperfQ7JN3i5hAEr0w1oOApzrWmN0Zwh0H+iGA6CjbomW+boFTPEdm1x7DoM4bxB1hGLkuTqK/COwhzC28NrQu/JXJIXep5bXKuDe7ax1eHu+sWDD9TCA5+tK+56B++RnGV/zFLtcN0KSIOUdSTdbiFaXHfTnqlFChSaPHiury+zzWymXn/3e+vbn76Hhdov1uGbbs1FBO3sRNcGo4/01gE2w6L5LOtisT6MvPF7lQYVU4ST9Qs8eOENzKi/Ad1G0OcxK3RangQ+5R7KlTY+BDBoUUp6VnT+8EHrXFdMYbiZ183LXP3K6VXzs5FTzkloiwtOFtVJuxbZnWPLK88Rk0TM6a88/bIjj1yB0r4NHbzoEOmbtzgc5iiTAdmLFo7qTNthet8rxQOcP/gY9b9K56WN7QgzwgIu/gawfXbeVkNeBy/x4AJd8bVEd75tAUsjvzAaQhh4WpeyNks9zPfHMNZUPBc+mQNdoKw6zyAS7TmXhpCBjx2aZjpQ8ZE1OpPMqk6TTDvwRmmnrerF9Q+oCRkkvhO9u1Jl3MoNAcohKI2rGzJ9JxL4qBZ3vWsYKzlTKLGoIcVQyCg7CKDA0owj4jRdUZ4riXgtifQ80cgGqm4IllOJ5LlYrBIGiPQcwG46x3OYwNFjCxbW6V5eeXi6ju+dqgUWyF3XmeDKncPqbIkQXFr2BuTpLEsJUhjQAKKSyoBceQkqFjNYeuicRoKetmJNglwWmTGCFeUoSuOrlyM3R4FOFXWy7M4e8l2L6CunhAKu4K3PrteOWZ6NBf4FxvHTrkVJXlrIqiyKMGeCwDQ3N18n3/3u+sUXv1Drn/lMHbiZ4DI5kwXVSX7jDAOOlZYLAuqVA334SwOHR0Ya+MMq2yl2cMXihve/r757z721unBfXcrbrB21upMfLwCLRkL9S6G7HW0FUSuRsv6ouUfXu6kOUNpF0KGUX1PqbGvRfo5oDPjCSVMIp5DBkIWJ8FKS4TSydHZTNi1NYTs9opKT+rC25JEenXRIGvjAcaolqnVoV7ZlNtIejiLHRhe68jA/zFuPZh5tKZGbEI2XaY9p9HeK55Qvmqo7UN6RoQCS8+NoyVe+aZvYh+Dl71g+CqgOUZsy9e+pbtPQ5IO1oQh9YK1/JTTtl/Qaqmu3cSyiRNrS4LengaNOaEdBSFhoOV+hZuePrOYplzEhwTHnzU1PMYbIHLFj70xnyWgIp8YgpImnwSoQhGggBjF5RomwdDrSVaMTpZJpfGEcIAMLuQM9A469qRKOC4PS1Cl8UsE8vXHuBWMUtAN+qQCVCL5V5cGJlvGAh47uqQ3eYDVDgJBWj2IoQ8XcPA141pC8qgMpnWAf08J17pnTAZd4uorKRXb4u/bl4TYFg4AbLnN53mwtB181d5TnE0RdC4tsymCKc+/cnwHJ/VWbjMAiJ6hOAe3N7CVchF/lo3bqIpD5Tg17GM34EbnOMv1aX2N0BH/XHbaD4WVrre69b44clwhsTuflucloUXrXvv0d9chff7N+9vG/rP233lErBy7hliNGWBNK2XroPGdXuX9ybRYdHYEZ8gmg4NtTy8+gpZOvsja2k/1o17/nnXXfv/iDbAS86s5314U1psMTPkobu9B41GcFL1rycaoeqAY3vtrxTQ9ujCwGOKtzaBSaMjldH55Jr10UnfVL5OkVPpxAfAhAOr9ZC1MObNkUL9KVtLz81dweQ2nytb9y+LHFWmfhC7B+04f8OiBu0QCw60vqLW8gJOMnVMxpmbJOI8dBBnOF8SNTs4cifMSGipQ0bvVMpygTTmKX2BSf9ZxyYTJtliYCemrD96/LzemPXD3sYJU6bXiQV0zbkZAS1duCR17A1dmyHKaE7Rzp9ACDXAUyu1nFpqJkWo7vWiT3zN6ACV4rIRQ+SDnnIYMCrXOTFDceZs8fSgOgtWuhjcce3cKscdhoaESWOZ2zd3j5SErB41D8arT0nsJIC629wdjR2Sy484yU1h05ADfHlMwlkuFpgglwg2kjsHS83KkSVqgjBD9pMP5CExA+xN8WuMtwQgchcUtkz3p88Ngch2XYLlVTrBGNjUIe7r1ylNTPXXJ0A7Y0CI4O0Q2+UwlwmBKncoqaoTi8NY5XRlIZWgk8cdPDY4PcYI091Fk9vBfShfwlPQty6qPAi95rsqKtob3OhQTXsICTlwFiFVlW+F1j7WuK4ONtOGvMHSd5iurRN91cP0a37/3bf1M3/1f/ddXhy2pjeSV26YazwRraFC98nWWTIC/BZV2ge3dkQobl0JeT9cdaISOtnQT7N//Ob9UTX/6r2vm3X6rDN9wEnJ0MciK4GydW1Z9pCppgD8MgPsQv6mITbQE9yvpIphUTePOsP3H9Vh6h7Wh0WO1nWJSufiHbbiT6KLAyCXV0ADOcZBlczqQtjHnS0l8oc92t0QbOZgpLp9ItoH1X/2sZpNOw5vknglBZd+miIc/AwSFf/jVBBAkP61I7IX9AlNtA1eLoVwlInDeeziFivC10EqjVBVlDV9hBlkimrZQVBllzIhmZUxfaTbSWrT2SsB3ZIITAPRiSHxZNAxjYAANqDsFt76EFjrUVGiOMvOTfYMHRFgmoZKpvV7AcwSZPWRU7NWQi/8oGNOe4umj2tF1FgXD+QV6GYyY50htAbHyuFXSCoSM54FBQI3yYUpa9OjBoulYI1Wc5cDZWe+RlGrdOuOSoZFB27CVss6ZHYyRyEowcMsrPxu9d4sohl1QK+SRzZPoVqTtQeZvMmk9mQIfpycU8hljYdjvdBt1CD1Mh0yh364ctCK5emZky6nnvC/LKWxr9dlvO1Bf6mwQMn+m+lzdZzGGQGfYV5C52gN0saBANBRTxnsDhwmb36ujsaMcGQOQLlwQA6YZFj8i8JK0tHMFNeA+l9YX8Bq0rX3d9nT91Vz35+Qfr6C231fSV17KHizU7jKluqUtl5aMcHSDIha86JdiEosEDl2Vr8x7Wyvbe/b56+HMP1drK1+rSN9+aR1BPuA5IoNYJde4EMXBsYNZBjqFOlD+Okkz5y8/CKJZf6zt6qj8HM/DYWDeEJDqKZ5aAbcfu+Mjk3JpMHfDr0bQaPvjk6aNy9dAGW4fJrYIO2rHswC/ySwRGHbga2G8/43RIONu4ma1hEmQ0TASlZIgDyEh9Rx/qW+VQov1+8BPtiZz6p21Hf4gNolxTG7/tfFOn8hKW3w7WerpyDZ7Nrx1rypFFeuOhbpHbPHhJJ7Ju2YpSYchvSMQb8WUCdgwPkq3EIuXyTxwl6G0unngmHY8hyCJXyPGrHTICRg5hsufMxpGphnZxOoiELqBbWTQBwPpcblERQv6Fe0qbYa/lyJZSaZIKGw3OoYPm8rnrIFrAyKNS5Dc0dICVtrBWTPPhl/yGgybBKj0eZGNIoiADg+TZ2D3yYDryHXD5rHWQW17zUJHJYYyptDGJtAD245QTxgQEwxXNl14ku4s59ypOr2HZPKGrTbQkox5x/EJs1rvYvDlDkONO5/nplYwg3Ue2wPrUToLZJFshJvC+VfCVwG5DWnYdWsCGpDO57WGVDiQTSQgjJiwaximhwQ6xyIN5dKdz4KWql13/qtq+bVc9+vl769IL52v7K1/HFC+73yKm4DqTOa4L9OukHEEqjR9JIonyofM6L9Pdzdb417zn7fX9ez9b61/7ch27+bZatG4hJj6XLuhEDJzWmjqEjKmmN3wnoJgF3MjOvBwjUlOILQGMbo6mtJGoociXjdG0XZ656UaASfAd6Sff0lGSEb9xu/sRXfpy03O1PuWcS99csbVH6im+mQJzw1fYNLDQaJwggxI84KIzmS1L05ReqhCUjD44jxngIVxXr7iwDm3qX91kxr/+q96OSA1I5unC3SEJoD3yE3CTrd1Fvp1DAfiWC6h0MMG/gPZcUhTGyoNsNiuzI4owCOvsJIEXSINiILRbANuyud9TWpQ3hLZGJ06kGf3Az7KRNIQj33XhNHr1FNmqcmHdIEaWZwAyKqCEjpxNhsCDJJ5EEtjIV9CMiMjeOoDRMN0A+1eiqSwYSkO+3v7RUx5O4Od3DmhKweFhAgbA0rNB2Ht7lSRViqzm5/YEF94DAxf0lLf4KhsdsawjEQdJXExrvkYwjjxVkuHPPLcu5K01jHASGKEfWo6IEHbSBSvGiI5WpkMYRhL3kA9Nl3X93nRplyi/SMiVNCp/u8HM6d40t+1gW/OUAEjWwhiRIYMjL3tsA7Hrck7XLDc+pGI5k6N5qWWdBFnMU9/lCxfq6DXHa/Luv19PfuaeOsSLYnffeHOmkk55xLRnd0SUHe3y2phhuoj+5E0hsXL7ZiBVc0S8wDb+Xdtm6/r3vrO+/8Dnqr7yEAvxtzFaBcAXb0BjEltm/QXL63jK5Nqnt2zFRAqcOtBOSitMd4ueKZk294jv8avtkTb4mCu/kpGtJbCFG4dfpKUrLl/9IdmwnJI2MxagPHjk6CfC6FEhAlMtLHgH2Ja/c5psIENQSP5kSab5yfYLogn65kMzHUJnBycMgBdJvExx+VUWPXeQLCIJ4SjLJ9ZqW3lqS8OVuPJ2nVRrto80jDr48VAW07h2Dv0u09mcSb/ze7TtScOHEvSHYvLVa8AlcwyUYgvjqD02IN0BCPgYGxuAqHwZfSl4jrY24kdr5eoYA54OwCFE2ptmCReR+QCS846SXRmBSXEHs4xogJSoAyXxMrVp70KZzozgFCurjc3LyS4Be6Uvl5b59XHIQ6ikx7fXtyqsXHI1hrimrRzodsWLQ0VBtF2rFYzhgE+ccEEdZhu+hga5DHJSpjkDIT1wDEoyoXyCCwGuWXkF0p3h9izSlmZmyY6iSEhB/GXuV3RT5yZrTGvOYenW1Nuxl5xWDKhUDi+0z7kN19cruUY2i+zuNt8+vcojoH1dPYFDI8N3hUC2nTwiFfKt1zbksi6k4mOXVwhqy8it/F50sIG7OKslrI9MOamUNR42uJM9Vce55ebJzz1QG1/+XB1561trhRvi3BAyzRR5UAzaIEoLGv6Hn1mknSKuUuFr3BS9yBRwErle8c531Q/u+2yd+/Qn6vi738ddCHOsCYKPTGlsIQMBiGWECo32IfO6ToXr8qEG0wpFFCfagtXWHoMGpzlgo5icts3NFsZf6TaWEHw4z3qOpAe6rs9GV6Qyr4Mk9lNe8vriTaiB1J1mh1VICmNRuCi7f2CS1xKkiHT/toeabln0CS2d/JFFMDkZYEYerp22bA2Yb77slg1U1pmwRgNHxNLMM6SAUSZBtnSWNv/WZ/iIOST1mw6QJDj8drQP+CCruZ7191bACYGhRCTqQORczYWfD0Z0lBWq2t5yDm0Q2mOdcZYrmTiQZdZXArE0GiPtZlrn1snGwGKZwntVxh7emrEHlKGo3lTTBMiIFP4iEJmZYweOL6CkmdUxfjWk606ObLjfkkV3t0NAG2Y+XsarZRs0ChdE+8GBEB8YyTeKooiG0kbm6TSpNLiJ4+6oOd9eweG0LvN5Tg1eHilBBrXIDnsixOTYyMjTFpsEIT++hy0v0TBGIZM814F9/Imn6qd/85WqPdfUs+cW6pkXCVgExLOLi3V+gYBEw13zRuqXnof28cE20FI/ONsDpseVH2kD5OyENrUCtdM62ypWeH8ikZa1oXXK5icIXsAhAkFcHkxGmW5ucrFijtuU0s4ptDw3QxNo1cXXp2362GVubn7Fe99dj37pr+qRj/5Z7bnpLbXjwJXAL2AjGw52xQfWocXuW0Z8rHeZoTNBx4CdW6AiO3u8mFrOcSn1xLvurM/+4R9z7yIbV9/1QW54ou/3Vn6vzPydA72oA20YN7U+oKnPWJPmesirG2c3ws7dKga+5QmwMg80x0V04aUWPpYJo78kV9r6sX8cQdYXZCo/fvLdMPEZ8rGCiMCZFjoYA2wjdV6W8Gkr+DTwuaKOvO35IQyOf+J3EDLleX6RN7KCrw4NB3Zkc4QKd9OUK4d1ltHSoGfCCnzb8lKArjqaEZrmqecwe/LUtHkq/jI7WRLrgdcpaKUCGzSo6BZegLQeskkJCXP09tZFGk0Jvw28cEkEosuUzRRlg92bnOf8D4OHbHuQrEHKytHRPTRe36cX81pnWzDOsyWQV7YDJ65m7z8qgXMNMRpVuqZDH8Vzaw1I7jvJGg40ZJsAZ4JDB5GOH05IMKoAt2n5a6Yydp6ztE02PF7g0TAebh84t8ji/xKcgVliZLC0yKiDYDTFfXdEJEgqcY94wpG2lpdJ8ObkvBQVGmQAowPCj+mmI7qnoVu7fRrDbJ1ib5cL8s+9xNU0txgQOVdOP1FTz5yqvaz7TGW+CxkrgSDqTv1MaSHnI5u9Kunbq1UsqpMvK7KjY7/UQh11AG3khlZGXdhinV/X4twaGgfHWFMEsTXkMX+akaTrbessxM/waORr77y5vvrR07w559468ju/VtN79+fFrXYi2p4wTX2sZxPo2HOru9O5dAw4sM9DIxzypEnswj2Vr/nVD9Vz3B40+fn76/Bb7+L+Th65g211CmXqmkWnMQWtyBpduvdWr1QzX9aVDUyMPmyoqQFy2kji56AubBj9AUOe4HYjhKO8JBfqYFAHlo9H071YLqy6avk0bs49M0upR5lal5YibkFZMCCgHZ22WDcdgLpjtsOSSn5I6b/mDK2EovZ38ZUjTAcc+ToiNludRjlG2ciIdBPUvVKpr9N9PUYcCUpT1Ttoc0La0dtYYJlbhUIoX1IRQQp+Om2qj9QGubYgSikWXSYNk5MB1nyBpMkPgNZa4kYEoxBdx1FuQEUgT7kc4crf+nI+Q1H/KaCGtInKQdZG0TCBhTebOiKiXSYzQY2008MlGyQEhZeGwqiElDxspFmMkx8Ls8I6pbHK3C4gb0a0/ZvKluvYEMGFsGs9s8jgcN20BpaPNNw7tcI+hRd4npUH25jqiedX6sWzTH24jP/UC2v13OICV7a21dEXXqj5Zx6vva8+QRAyGMFb54CWi+4azlMrPfLz63SNJZ46cuxI3Xrn7fVXD/6o9u/cW9ceBGn6TO3n6aCX7J2vhc3Z4n00Nb9/X/ZIqbOBP85Avo6b7RHIjBp81F1mytH2yrYNpp7TGCR7zsi3xxZOuZTXgYzD7YQP7HWxB+wdS3YqfrRNdGRRTb6vvuvWevy7e+vnD36+rn7rW2r20FECGgHcKSR62yz0iJhVubs2CaqYB76un7hXhrlqpoAOaF/BQvwjjN6efPDeuuId72YEiKEI+nm6KaB6l77SGpABcUlY547AI2Pg+OLQbxpCT9JZlQftCcR2Ml3mtw7EOQiQBwJ5wR3XgWJXiYkyHgAKG5yBdtLDdDTg+p88yVNueeuvLctIT7niwMCMdsJPwstzDuos9YMPSFea2fWmAAgaulicBCWtTcvsOamBVSCjt0Tka45NPqhyyhG1wGw/0tpSM5cPApjS1pY0x9TMQJOsLVtZ2fzTxpIQnU98zBzToS6Zlls4reHkOeSBUGThlFldhi8rKL5vqR9HpFHP5YYhrQWdIUUX8pTeGVw2jkor0c1gIiAMzNPg5vgR0NsEVjB5hKJBOTfNaCuSkZY/2ii48AYT/cDG3o2Hc9Lr7P1ZJ5EghhPKRYbOwVVA/j2ktgfQvFR8awQ9JEQL37Zj9XsfnzL72JZJpj5HecaVh3x28+jOHbMbtbDINIpef4lWTuyq516ouhK6bgR1ujdFNDRsZgRFwzWZNMHLEYVGl4cBbIJR1jyjFXfx+Er43TtonCi+b+dMHdw3T53M1dG1V9T5vbvrJQLzBA3Xh6KN72j0uemqa4CEumpzov5DpZDbvNA9VhM4Fo+dtIuL5MIk4EHMRuxU08P1MiaJoaJWVomHTsFED+Mv15HrrmZkdbx+9tDX6vIbrqv5a67DNlwo0EYshi0it7cqZXqDDJEs8molgqN1ACmryyeX+sDCa95+R/3881+uR+69hzWt9/A2cda0eON0X1GNY0TODqzak1qF5tgoocY5+RoE+vyT03r0SMkMfUNcywRrnbUl2W0f6I4jK0BEiT9psZzLN0YnKPGbpAWhiw9HNzU2byz3TImHduFpsjxXnv6ThbWaqdvL8nta1zQMfHEAvvVtdWylzZAsOYA6CmlY88joptFAzYXvxpBr7Da2n5RQKh2BbEPYyuDroZ1xhOAob8sj50aw/YUr4OrSWJRpTEvM57dHe8lKmflSGUrxD3HkhU7gjvDaMTUXUL8GGwa0bdkyovnAM3YCi9sDFQj0QYoOUW0Ay+TfbdjL1gYfMpxO0XBdJPOBda0SOKEFEIfKe8+TgomiSAk6CJBd32RKa42uu18moRQ6KEIOeHEo4KOs9GjD7mdys2VuRqVx6WBWqH3iNgLPHh5rnIOO68iuqdrL+7Dm2IF9/MB0bSO4LLJDdcfls3Xw0sOMmBiNMCrTkNpFB3HK5/2Nud0hciN7nBnJ+E2FaCsO9XIfFKx4ogHTSPY6rWCX1TVeaMEVNR/doeONj2hRVi2RwzS+YvU47TQodzouHyj7ZysuDo+Aymhv1Q7WcDNyh2TXgdtGkCdBWGDrFbokLZfHOjZaWrhQh6+8vGbf/s765Rc/X0fOXai9r78BubtOHCUoUQK0LNG763F0NHg7qgMmzwSnZ5wgEF7ztrfUI1/+Rv3ynk/V5XfdUdO7mHKy3uVV5dYUDPXg1E26kIW4eVGhG2hs3fmdKyafMR988UQNrr9bhx1oiDZt8wMoA6XlCH7Xo3QboAVIeUAGGoNVJWa9Rw5SYyMSu+0u+dbL3+Yz1BMn4sVv8tsdjLl6vHWSekqZetrZ0w7MTrm/tkrqQEMlAFzkK20Pixpe/kqAZORZd6nNUX/5akvLlJU10pbONJnSjw4S1EGlBi3JRBMRrT/P2iqtg+BKaYHCqx/pjJIGiWRqLj+xF2eZ3ZAXOxo/KDOv7Wluy5Mr25TjSt1r2lyiNBgJPPzqnv65p6nv9o4I5CiWxAk2NMgOVFaQbg4GuCs0wlUcOU9PSCATvhtZC923qSyzkL3kZwhGeRkj/NzNbTBwD1LScIyBoOVFAM/8k6v3MnpFzl3ay3ZPHFbKGo3TX+XwbbRemdQRJljUjgsA6hMkfSvzDq687WD9yRe3JrAYGIC3vr06mTU7ficJSL6W3sORY9vNCtmsM9xc/fxLPDqZp4Na+dknhYTiq7NBECNktOfz2p3WGRzUwW8ryRGMAcwd6NOZGsdVybeeDOjKR5oyooTVGRkHraVCUJKu/EjHAcKAr7aZUq/wIotd+7azWP6Oev7UmXrigc+w63+p19wcEcpL3eFlcJKfaXvf3PfIr8HSUaJB0g2ktbpYJ297U52b31/f/eM/qSleDusVRW8d0jfkr51y1Si03E7ct1eNurY12k5x0gHH6YAdXo/+SccWbZvIBFxsQ740Cc2RWblH2+mbsRe/o721uXJZL6hB+UCTXxtpGqD+vwXWjQvXjD8HV3xtAKWWj3rRTtBQjvxap0k7qm5Ze53ROw20a+Oa17MRGQrJR+b5RBryLIMGP+qcOgpe4zrQUI90wNHHoCRWDy66vZqjxB7YQ/2T096YPGzX9aEkgz7RC8bRt/PaZl2/iukmnbRQ0ojCB5vlQ9vFlkkLl3YMnnULxqBt6m2s065LZ3htDV5cawNgpBIlNaqy6FThlLTKxEjmqVTKEILfFka9gIgQpGFu0EqlKjpKtnDgayPKHGXlBIYjbRUxCKi63tL3F+osbdo2REpDpg3VZVZc6OQygiMfRjxp+I7K4E/LPcvVvFVueQGQW3NcNCcYwtOGYIMIf4pj7FSRVWyAgUb0QwIa5irbBbwmuY1K88rnXl5N/SRrZf/xuy/W6ReRYmU7gQ2b0uIzFId2Klw9NCv8sz5GYgy+mqUDkcNeRh9dEZhBGMIC0zTvHlilrpZxaQOzT21YoMa8U2CRzxIwPlnAcOwotMMEbmCDQA8//iMUzkxAR49tTJuvYjr3+AtL9RjPwJpbPscDCL1JikCCJfJ2ahyXrWk4jdsxdB4cDJ1sEDYuG2LuAmC0OrlB0HrrG2vuxI31S27ErvOnedkFWDhqGmYEUI7RELrO4CsRD/txrpj5JG2NdK3EeNYFHxBzSpEGDV5DDWnyHMUnbyBISXAoytTL0jDKV6fbVthMnBzijJTDjNwBbzgVNjbBFgbIaTocF8o7WBrY22bi5eUsgxw9upYWngYPp/YZ4cb/bQN6jlKLbwfVH/09jRp4R/GtJT5M+bpORo72iW09k37sJTV1M4j5Me3aEHJLK/TBj6O2Do7CWgpwMZzUIZVP5DNPucnsj+lu87bnDFo4B5kPesiTT9od0ugXdmLqpI/lY17gzBe+ZaBzJENBEcqp3wxXGsapEVAhoope/naXqT1BCEDQh9ZbqxlKmgTOBqZgTmeSJp/sfFS1g5EK6gQNq7ltwLbRnv+T4FCOi4eYnkMw8iqzpnMS6YEBeDLBOE/PnhRo+nRPg8p3TzOK4+2jl/H+d5egnPZdoIEvs39qwRGF8gB7gfmba13zTOmm+LUi5DDJg3geeerpuu/jn6xT3/pFveeK/XXTpTwkmTU4b5j+0anF+ulTZ+u9r7uidm4cqjNPPV6b115HFIKZ0UflOLIPjVHcHCM69V8h7QjFnfwGpVzbI+isk17NPX+8eJVgpH7CT7Bzd42guUiwkuQMv3k0jrbkyA9JHaJ7p+SKTYIJEzazvgVUllVujnaz6ivedUed/ukj9TiL5yfffntNHTrGchfbRUFzLaJRdELqAcdUJa1vQa9pmYfDUj7J/Ycnb72hXnr8mfrZPZ+ta955R03t50Zs72kkGKsH0JFfJ9WHlNvpuI1G98zYUd6kG7rrndOcU7WiNR5ibEGpWjtE8iKicCP8QM18fZ8iaICU+vGs5QptvZWEbg5U5NIewvQHPOzpxYgtnvKS6phB2rpov7QDE7f5NCTljqZDs0taqtZIbA8xmq4pDy3XkMnha7RBQzd8YyvjiNWSdzslT3lo1HbElti+GfsbP9NxGpgMPrbopgsMEB7WmV/+yMe4EHm7gBzyIoA87Nw4Aq/OjWeWdIeIkTMHDikNHUqtU9KO4rm1ziKib0salnFFFGlHhCkwrg0YTNw35CNavDzPT9KrbHZ0GjWZSCwkymU4yW8MRfhSYCuXj/SngHWqoaYdAEnQUDW65ZpFXYOeNPThnekVePbqzumlZ+/tQ/XOXzhT3/7G16P0e47N1r5ty1nreoyLYH/zwwv1j1+zp/Yd4hVZvCl14sknauKaa2tpeanmt89nTW6a4OIudh8ZjGJ5wP8aQWuVxxIvLq3Vd77zvfr0//7HdZagdvjQZu3hxYDuSdog4NnEts3idgT86b2X1OS3P1ebV7+Sz7W2bz5tTy8821d032ZgclIVizNqQt8EUKapZLoT34sFTotzxQY6cQq8yYDvEEHdHZOm0VmH5lNuvWY6aOWbpUpJEBB0QNLei4koGYG6Nf+y111XT/KM6Z+xeH7Fm26s2SuvJqA7anLKrcNYIUgAXj9viVGcttfXianucHe9yquc60sX6tirTtKpTdZP7/9cHb/r9pr2iqRBC578U7cEAdPQlbQ5BqqMPslX3PgDwtsURIoMgRy/BkyJCpOPWK23uTkoQoMhzQm+pFHEyCEZ/Ykca9OyUAFAmYazljcQYgLPT3tqTjuPb4/wo1zIrUAlgufBhQ//1ql2tb11C2g5hDMlivokiHcmZ7GIZ2lboyaRU/ioqnyNH7+xrcihRYA3Xot/L/HSFd8I1dwaZwZfPvPS2VzImmf7igFNExsLxkOZzFNGj8gUPUhr26GyulyfGepX7fWhgZSyGjtsJ8KmTadM2fHlkSEp7mqzejSTB60EQgaCNKMQIAApBOnAGmM84aMbuXhqr9PDu6ZmYMrVPPMj1eg8BDzKNJ4f0xkK8guZ8I4cfPk7VmAqF8v0FTZxe1QCRJQRzrcnP/f0c/Uf/vQjVduO1fHZtXr8/Fp9/um1eomtWS8C+affuVBvOc2TIlaP1eT//Ue1/+yFmj58uPZdsp+rWlQKlXfmzJk68/RT9RQbRKd37KgXXzpdP/vJT+vF0y/WNx58iLeN8FYbYBeXfFs0+6xQPn+MyJxeLvL44iWCJ15QE2wm1dw+EhlTKG6ChFfiNghMGyxyL3qjNPc82RM5NM8+K2zjSMOp14x5UrFBYXPtZLCKA6X7ssCIIR9s5ChnyElQg4bIlIAOzPARylr2PDc4E3gWuZ1nt1dZjx6pR7761brk9Au167WvJwAhAVc71zd9cB91JQ146AeZciVA6iOUGYEoFWaZt2kfve7Kmmbvw8/YFX/ZLTfVzqtPMmV2ywMwyOSUQrt4xI42MPxhbOAWpf757mjRwDq/jSUG0X/E45NGIs3hkKYUkmMHGZiW3XyLQ4avbtzCR5JQcGSknOZmFD6Wol8T1RuB8Lwz+Gm65ncACodB3oaSohiRJ3jWU3fwHZ4HiMgl6dEmrYs1ELmQzyYWKUxoB8Bt/Dkl7ZpmZKRurBcBrKtpgtK5587UV7/5nXrTLa+v3bPz9dNfPFaHLjtUM3TKD97/5XrdnW+sk1deWit0NM6aPMaZD5Q4mqZ+ZDu07vW2eBw8ulx++qcwgyxDHYWiaOAKExQ1ozxXqVWEc/tly5nlOVrJ+CnMbCSUxwB9dYhziGmGRFd7Jo0nnGIhQJtWOsIqkQ2OqiJq4pkNx3fe9xZaNpIGFUf8VKyygB9uKq+sHIBCi1x4O7+NQ4tjnuxQxEbt6O/AvoN1+NTTdf+p1Xry5yt1/4sb9QFe8XUW0e57ab0++tTzdQXvN9rxN9+t7Z/9au245Y0MPaa5ordeZxfO1ktnz9e1p07V+XOr9a1w7y/eiFXX7D1cmzu38cw8Gu+06zJk0vDUBY1pfDwmZ2Ehr5/nWmRs5BQqFRFlrFyQksfAm/Qaaad4U+63oGhcIJ7GdgnoDGNdkO4SebX9XR9xpakXlR1s6yjYg+njuAjr1I+ccB6dZVxbcE1uRmfg0y9zsB6givz7jhysbe+6qx5jpPXCJz5VV/E8rAmuqG54g6SjMz4uEXhkqoP9paOeMQp8B661snC+jhw/Vqurt9ff/sVf1I0ffn/tvOYEIy2DlhTAyceK1MvANStHJ9Sh6clTHkNpfq0Ebeq/9h18JRjmN46NKaYb8JEWvNZBKzVv6VriXzd8EqHkef8LS7XDKPwSSBqvrd0yDKVKxtHyxw8gYxPin2ygQqfTCp9Gz6/65htbas1cLU6eiJaQa1tJB0EdQjCaIk+MIBgGhlSfq/wQJJTJjsdHMJ5//sX61//LH9bH33BVXcbbzR/+wWO1/4oDdebxZ+ss7+987a3/kk7JkT48h31ZjrjDS3mg6ZkdF1LINXw8k7WaKyvs/G4hzVcc/vrikGVQhIZ6iKe/eii/n/gvbYUlantyAgWZsnaex7CLExoBVG0YCuctIb5mx9GTC68u1rsiZYCxEfmyUeEMKHEO4DoeQwwYyzzvlHRtfBpddfkA0OWDMTSE5fz1+A94pmre/pY1N2WNmlJuXgl2yOU9jfec36xnCVYnnVahsetUR7m4N3/A56SzHH3kQJ2bPlhnvv4z6IGAur48dS+jo217jtXcgal6PTL4HrdIhhorjqqYIi1DLzvhvS0GGxhPJjGae4xyqwu243oldH30sjZzCqfyrUmvIUEQ+qk4YDaYOmWYTDanmWYayDK9gn6eB6TOlDn9TMDX1gAbhFKrFLqw6m1F1of4PqOqmWsmbAWJbIjUg/yQof0z4gLWILLCyHAbL5c99tZb6of3PljzX/hibTt5oqaPHgvOVlBJnSELfK0FPyO9LLSGmXZbqAOXXVJL73t/PfW3368jPDd+98nruJqqYiK2HRpXmXrUknMdQ9u14kO6OZmbQ5TwUhcUCLx+KPnkbDUENR2PMRW/Jx9pOMyVTk/dTTuDMNdH7yuZR75jQ8+UR5zO16dtTwEi0+UW/4KDrGm4nuXffEpJmzKQdIEYHsFS+yHd2BZmHQhfjC/wK77QLaM0XTRvKmMACBn8QFjtv8gsY4oXC/zpv/rzet1119eBg3vq2adPVz27WMcuZdbBZmuXRbxwpd90BBk5NT+DlocRIf4cKTxvePMGqSONuiSq4Kv+WZY/6PdezKG9DDQpxJ7aJiOsDhx5dDAACTgvtzZ5SmFTiyGIchkhxISIxLkByxc69uJxM7eZ56BM9TRjqiBBqJ28YRhdZASho6EKlZvhvdCBBS+/BjkdQXqqbJBq2t0HdcB08ZpVkjoCnV08woX3ncY4cdtEgin2DjEyYd4+T9nEkT3QbwnV0z1Tjlc2XZsiWrh242jEzsXF5zUWqK2eTH8o01RjT5cS1/aImBtcgezHOVs1bufUjF1VjrqmtCNNJJchyG96nEEvlUjl2fvoaI7CEA0YZNNMwDs6U2qnRk4fbW6Ry7VBzqRiYPPOeO3jWexPagNHDj/S46hIOsojrXn0nOCpoj5Y8bq73lxLz71UT3/lK3UVo9Gpq69hTa8dM5ICrz9kVU6dGOHZkHJFi3NHvrwkkSuSS3Xo8oM1ecU76tEHHuSG9KXa95rX5Aqsi6mRDSX9i178+t9Tw3BKuqcdfU4pfx7CkgpKj+pDg3OPqGbQQK4RP7Qp81ywkU/TE6uRLbXWQp6EV2wtMw8kv1sGki2NPMjMl6UUaKNBUnNSkcA0+qgDtJXFOndIY6eHzOILYQ1a440rX+m237a9ktPw0FEfZe8RMGnlEwWIlp21RoKRV9MvfeXh+tg/+7f1ipMns39wlk2/zzz8SP357//rOv386brqWh7XnQFJy+NUzUMO0pJm69JeaDxovyKftPZPrZIIBUwYGuSn8xvw9VNnb+Kmawe4p9rQczBAm8gIS7ZWnD1luA/a2chdf+ZnINwNtBfUe6ojgnhekepLpT6IhjzojWrZaxsdewuFynRjE8YA6WhL4M7HDAYQZdAwUUB4/sDrhtDyyNt8XSiNRDkchdHq2dRQFyDrbTwa1GMNwAQEvuThSyPciZ6Dc+U2QKxyDd8noK6A4LQs8kDHVZ9N9nopL50Ooy2cigAWvDgI5k/l8EVw9OkFDpXNjC3UkYBi457JY4vdOtDbB/qJinYe7lZn7Qq4ORo6k888ndV60CQuahtcVhgJO6TfxSgvtyvCj+IeRGWa2nbteqEA+X342Rp0vddw28DDnf7mT/PUCO8pXObm53lgfChfRm4ElsMnr+BROFWPf/0bdeniUu06wZSOhuvdBnZYeDMyoVfqR/nIs479WKZt4b907nztP3yorn7v2+vRB79Uaxe+WgdvvJE1FryAIOpzzlLvyOYRm/HbtWw9dk4CzwAwBppuOnHV0NAWNqj+0z8GahqRIz9mhVVDyslS+Yw+ZbtwYCG+UHZ/rjWFivgkxqBgVaNqpDSd2KbDCQcgKZJNZxyVWGJZk6KLwbFWufdzmnXS8blvXbPg62PSlQcJRAttaiuZTaP5KL/FUu6OctBtwLd86fx5bD9Z1153VZ1grfHwsUOMzumo8dvJtaP1Bu49XWEU5id8MVZiBdYRP+tW/I6CyEGZYlvzTcNfHP/0A3NwBX5Me+ArHLYxaQYHIm1H+Qms3t3xTu8BO9MZH8WCI2/nw40zOKSrWY4AUNhKhUKcAifcTKuXcUqBIC8aSVxn5Yfc/oalwlHeBodY8MRt4XuKBJLaYsBWC/gw9tyA2IvQwrphcZbfUZ2+vYZAQkPVKFN4Sxst1QUdGgS0UsnBQoSIp5GULe05IyjlxiXJssFHkeCZ4/A663jCI6cbKLPTHmJOzQy4vSEUTGAcqTmFTgCQFDjz8N+OjXxEtPdDOs026GTkRJl74lwrkO6cdcFnJ/ndRLCXKfKWCSqOnqaZduZFGcjX1cSIjDKfAOGbbHQqR2puf/AFrd6UK83tlDvus461giNJ96p5P+YkQWaSiwJOKR1drrAzfvuu7TV/J1sffvjDOvvEF+rIW26qKV4Ym8hN0NpkQd6qz6VjLJiOJSNa64Rg5PoXxyoPF5xjX8k1bJ344X2fq9P33lvX8SSJbPJl1JugBVz7QKoGzazHzsy0xKTyYqvozHnMS571akjwMI+sARcZgQ9AIktAAhOIv9PSVMWGHgovg5EmeWb7JS8EcFG7c1rOjLjxBf45tG4QApMsEbcE66T03H6zvLBYL7x4pvbs21U7dmwDR1wZ8ItyBkfbmhfCbEHSebkVhBw/jTpaozlb6EM0faLICqNorwbu3LODOl5m3ZY9eDjiuZfOUK2rtX3ndvjg00zh82YnRHAZx3anPGmuEIw85Chf7EOBZYIpo3bszcKWKh10+IQOMC2velkihB+/O1Cms6HO7Bx5vIw9vLe1gM7HHl+yXmbsqKZAErKp6JFUJUr4yd3eA5OuHcvI8H/ohbINgcaiAi4cGnhsWjYKCYcGju0eHA2fITsa2NiNxIrdDd+GxqNWaGw2xDnk0+/SA4I3B36/Hgkq6GHFpudT4uiG+sixxlAlPT68u6m2acRR5mw/iMJNxzvvDVxqDrsEE34iVwwLX5e5HC3yhY2EpzIIOo4u7DG9R09dffqhQ2s/NvSN9KbCOI2hWIVIeAGA2Sz3IApLPfgJbexGpXV/obxKAiC/Ok16KEhbB75QdVobq6/So4fBxx3/rkksQdsRojFFgReY/npF0sA7I38c1/pexc680pH9Wsu1i6B19I431zc/+UCtP/i5OnHnW2vHPPdWMjrioTrRWSyDtI/F2cWUEi7ISwNBbtfzDK4bblhl2nH1HTfXT7jy+tRDD9XRm2/iEvp2HofTQUuldNuLhw47nnfjy/2mAKQT4ddcq2HEuxhwxKO2rOMBRuM1XIyYfPPG8GLpKMOIk0AULNtIKIJi4OAMFuGifoOYDRMyFEKZfH1fePHiP0HFwOHNKJi6cOPwNPXm6NhO0ApqWnQkJKznUXpTfU4E0/PAAABAAElEQVTmAJVf4MSJUNotBOBM2v2UCzzQ0T2Ky6RnGc1t45aPXKF2lIs/7t69LWvG+rYbjGd4M1PavO1qYKX84eE5h/mpI3mjj0wv5gGLKj0IEYCSkZYG64oLjlhuoG37YDFtCoq+P33OVV0In/ORS6S91G7DGad0IksvUwu9W16Ub3oPHkRzlQIHdxHaj52YntN7pNCWaUOCEAIqcLYm0FgyUsLRV/h4G4oc0tAUB57EAVi1bL7NZYPG5fpS7t2jAdv7q4StNwvNbi9APqeEBiL/YBfn0EX60DD5TyU3JB4SnuTj0OKlJyaT00xlgqGuoWfF9g55N5+6bscImgbpb+9Lyi0xqOR9dD6WeHXNSR4aEmwNRivob+N1j5U4i9jI0aFrF07Plg1QNHKe40ew0q5tnxYUBXQG60CloNP1AH/s5EjpAo+EXmINzSeEzkJPm2O62GkNWrlh2YA5TS5lBhlWmdIsrIspYAzU0jV4zbLO4VMyJngszzwB6lW33VDnnz1dT3zlr2snVxR3vPI66g564E0wml1Cfm9G95YrH+ejL7q1I9s7ONeey9Ca2lyu6952S5355RP1yGcfqituu7lmdu9m/Y8JvQ08kHxZaegl5suP7pDGBssvQcCg4IhGfC1kMOs0BdosjUTdYj0grG++c946hwd5ZklDDjZEPSDjGvjEpwFUqixsAwsHzqnnwd1AGfKkz0mzzOg52tCwWodGEMYnzdo2st8RhGwjAdVA5VKMAcfRlb6qZPKUS7QNQ2gNfKI7PPo0mgbWDtOAtffgvnqBq8KPP/NMPff8c7Q5vID1XctWGen97Cc/rx2XMr5fWcRX3NoqJbnCEV62cc9tNRh3S8fYjKJINdgxQgkeeH/ECSS/pK0nMYBp2+rXA4R4nHghZ1onmuDm4AQchoE6npHU0ZCByup3cugCYFdYBxinIwYKG6HTkik+jpqUoysH5rb4KNVOpNFtBGs0Yp2bUM75EOjcm0RZRj8IrrAGzfRD5JOI0DrdFHwcPRBbczhqcCSjEzp0hSTgbQAFCjq/OjNEop+6ZFSnvvkj6FCaNHQc0biNwr/eKwQyeRpVB1U+aZk2yNgHxqnMQ26aJzB+DAptF/dJuX/Kj8Gptzy0/gxPbNXIiq58lG/d4EKj9w0/Ez5UT94ESXeTL7KXCSFrkgXwGeyIWcBBLpw62w8M6trE+pAmZU63HNV5FVF7TVEPyub9kZPAU5z1v6xB6ejKiHNn8yrw1s0UvcbSwkrtufKymtq3j5unv5zd8gde/cqEPJiyt4ygzO+svJAf8lQ1spCXZ2WlcpGFoLrBtOSK176inqQr//mDX6wrbrqh5i45lDrSxLBUq64DzumPclgv/lOYelN/11B9npXapiAWGWs3GIK3LwsPAeuzofWHJPmSsD4Err5gbWB3g5VF7dJtU09Ux5G5/uo0NQeZ4WUZeXpEJJE0BV0mvPVmpvBw1AesCwP74BNiCy9cJNahk+PZKC0pfZ0/YRvOtGd92L4mGcIt8aA4fUDZvaf0/n//pfrOj35el196jOUKsldW6tSpc/Wjb363Xnvbq3Mr2gyvruu3Rcmn6TdvbaQ8rWc3DLhbmMN2rWjIkryW2aKLnYZnLbW0GxA4yLYeZnlOwNJhJwg2EzwixOG4Uwk5aMgYSs6kRTTytzMbbLwa5LmFmNIABK5OLyMdq4UOocjhtEt+9hT28u6Stif2kqmjFhu39Z2HqAEqY50GSu2o4MjHpwos8ekrZYqLjG4xgJ6PimHzQeh4OVrldRinhbnCw8jF9IwOJm3+0wM3G9LSSCZctYAggyMik+WeOy1zQd20C/usSaM7DRr9rdgJ5OGSSxYx1TXrd5S7oNmXiSlLg0YfFzXhmYcL4pbuLvdNzxPUxyLp+WHEETWB0wHOe/kTPScJIE7pHeERFzKV26DjGYOW2ywMFAYbb4sxoGyyqLvp1g7WqXSCLJ4GBtmRNetNdCATNJqJwGNbRmtohKxs60CeOnMuj18++MY31DM//HGdefLBOvKmm2qOIMYQMXiTXtCwbpFvGrrSnjIPWSccQRoMob/GXq3LTl5V29iU+/2P31fXvf22OnitVyPZGgKunWUeLEm1OGpAi9SvOlFMDWATWwNlThhWjNI5qDfN5DlIdigGFcDAMUuf7tFSMKjfptkwkRM4yzKVEQkcqPKTE9KUkpSWQtlZC2Fm8EgpZuc0nO1D7xNOWsI5alJAOwgfW5SRtc0MPlJS5+jBD+jDAb+xm4WBauKege9RCrgjY3lR7n3oF86czVX9CXxxwvpZmq6P/+WDofmOOsyTY9fraegevfpg7iDZ5Patdepi2kcG2eYjseGzeSVB2lAw2sWSltz13IZUj7QfaOgVWqGDHb8aKXZtGmL0wAdf+v+Yeq8YWbP7wO9UztXx5nwncDgcDmfIESUGUauVtIYBrRZaw/AChrUrG/Cj4RfDgPfJD4YFv3kNw34yYKyth4UM74NlycIuJGrEJJLDmeFw8s2hc3dVV87+/f5fN7V9b3VXffV9J/xzOucI02gCPguCdaGw94HMGYQsY8fz3BV/+c43+pUyn4wmMQtcid1sm0JH4jOH5o9AdQgOxLYjjYmgci+sFYCSkPWlRIwMpmUgRLP+BInT9Sd7Ptbaca/a3r3UpzJlAA+95ziZv+l6A5czGJGNF6J/29CYdRySiME/QS64g5h5LxMIOK0ls19x0IaCToHEc/ZzPpIYGY3ySMwRCc89WCzhmsr8TiNmHsJB9yaFS0g/NgPslhDAktNznPec75ccWOqOEzQSDa/4jFRFsFDxhrbDhIGYM8QzIvpm9NxjXwueN04YbjHNr3hugVCx31gG43ho1yGtqKh3j6o57ZmJCotLJYN2GUy0jKhOp6J5XmS9JcxibG0wImNVm+LC0R/3GqS1wh+KTzNO4ylBOze//mZ68LfvpSd/+Xa6RelDsd4kqMu4HDeDlCa0GNzKx2yiwGOUfNYy9y8KDDfkwvXt1PnmN9Ojd36OYJuk9bt3g9YC+grewF1GEeIhJgUeJeiYH/OX+qrcx7T/ndcZ7L0InMVOvPWjlMAHqUwWCuvZ7+Vu/8a/eIx7pA9tJWDDK3DtPeeN2Wo8B+0wIJV5WBYqOQWjz/Dyt//8sV+fgYPiHvHZY+vtMkukjDEFDXLf+TgypXvWEn34LqwP+3VuXqDVrH3n4D3ZvwKm7oyVGFNwWafOztiq7a/Ygvt/+hf/Tbq2dRGBntJF3PxHnzxO/8u/+JfRPoQaz1TAvcO2q4BZwPJsJvQr/AIWMSjH4RvmdfbOkei5eY+x7OzHBsN04PoZLuJ5+fTv5nYuvIru21SAQyXOFbGPlcQeHZ1JQHuzI4CjC6NLsVSocYBnuJFqBQWeQshnmURMhmGG1DwDYpAoHJtpjoxJfU4rRG2vfeBz57Un9ioRxrS4rkTWRbLvFVmLeMYJxvD4zcI7rQF3DcjiEZkgOW/XLBlP0YpmZUbgQtJN7V2HyBsYn/WDINAMXonOW1gBMoCANMXv8gQHKVKdru8do8I0Lv5y7pIJ42QRsMtQyAt7M/fRLzDy80IBgPBXIM14UR0BFzBm+lkQ4F4ieMozNBrW1wxhorSLcdBGaF3aUUgZwMY+i/f24VHyKh1PfHa8QkhBo7jW+h3R1xw8T600Z9zBEEzIMbjAe85zM8anO+x9prmjPdoEQxn8wYPW+AqLbU47K0odrn7pbhp1LyBsPkjNrXaqXb8BjJwLgktGQXgpnG3fcQrrsDSlGb7TWl305mmbwsX1b38jPXnnPdpDiOFqRgkFlmRU12cIpw1+gH384lpc5jcQjmuZC8J7EaTZET/Zdxll84Sw5FL2ObsjcMRb74zWpF8ePxdSwl7GU7CdexHSbdQJnY0DbECD4kmoAzPayJSrfYCRMxxGH9xzPjp7ESbNRhXGxjjQ8uaf4wulbN98COWrn+239JnxDILDKYFL79UiPZ+nsDVuarhncNoBz4zLscJ/E7K2V1/cTN9haY57PFnSc/365XSh2Ugv3GWFAorRwLsKK62qvHgQVzUbtaM7G5OAZCLChju47+ydY/Ier/ldfJk1cyZdsyeY79mD8SdrmX64DBXFA4YoEFgQnMQCYQXh+Dn+AZDQDFl3AkrtYrpTDZ13D2I08oIIY6wzk0kQGA4i6IP7HZvMLKHHe60X7skEHswEcuYARCLWNA+B6LxowxkG0uNJiIM4m5bJnHHOqRnSehCdIiUQxcQUAj7KhAg2r1ILn7Dnl9wl3c4YS52/Zkmc5YICpl0so/1nu9wDQs5+WKwTgurH5xf4e4nXBXYwCIpBa4QlFkgBPs5VIoQJz+HuVtKOcYKlMSoxV2CnRaOgKBQRnfQd82fMU+7xOQXLnHlOYU4VQIl7db/cHFBCDBfcfhiLAsnMm4LGeJslCZEZJaZojDBcLYSBz8W6QwBqQkL30DMG57xK1JnZJxTMPbprzEOti5BaUogmnrw3rDVxBenMsPqkmZlBWOajNTcFhzPqtVrbm6mBS/j0hz9N5f3DVP6Vr2LusAvrv9POjGcVKpaEaE34UmkGfLg+ZmV6a7OdXmDd4cO/fTf13/5+uvrmV1KxWg/rkFvAgb/8ARLxH7iLeGAsvfl10EV86Qf6kqF4yezCL4jUz37gK5+JgDYfAVn8qPiy+7MLGV9kD8Q9tglM/J1HwdgnT4SA8lq4QrQBhIM+Asl8L7sr7IKnYjSMiWbNDk6Bfb8/YFfbJutjMSTEz9n9WsLeLu72WQN478lR2tyspS2yt8YMm6zUkA48NFja2j9mXzae2V5vpjVLFBSA0GRrsxkCsaLY5bmrt3D94JMTyimKnD2pFabVvoXQ0iPw+LwJZQ8QA/Th/GMYTjDe5Zh7xO74mF05exPfChE/Z3AXpiHA+S5g7z18ncGLD34+a8Uv4n6Zw6vAoqgAUTAYBF7pZkk8fJ1phuxxG3MrGTU81BVWwxLtbyBV4aSlJeFKeD5nR9Yp2YlD0d2RIJdohYV7UKG5ZzClAm4an32OH+Nb8U6SPpsFV8KSQPjMAbbM7NFXU6wO4BSaQhhGbIi2rBB2mGPcn48GKV2tqG2yMXn4xZSHPmDT9Rsslr4+6aQ3Uj9deuur6fI/+E4qrTVhPBDTPUkNslV/uLUZU/jFp/fTJx/y+tG7qdZijSDUrWUSTEbbbjHDBWABDOk7iNguGY/Cpjp10TBDgwhUDHPqkAoKAoQSU0pFBTbwhR4IQsnEGWEoLEKR8FfhEAwgMoCNAsmEyXnwXBgF2ulDvNh2CB7dQMfGt7oTWdwse86aMe91uZPB8RlCS4W0mFOkAJPr5rt8w11hZQCFtBZA1gbXyDJGH4zF+NuEnUvrLfbMf+sr6f6P3k8Dtpa5i4tYIog+JbhkAWKFV9AHjKQFYfxOASvRKXAVmDOEVp0dNO5+/Y3087/+23TKGYhf/M3vpJxCC9jEZAQDPxmlqLqEigKJOfE+++01b+K3wsVXwM+3GTMgOuJyPMH8wKoPxG1nLPbLZ7J2ztq0YejAsKCwlybEkTLFTrN+s/faQkHfXFXp+xMngUMsWd0eNAr+O9BebzBhB5FZOgIfc84JaNa0aog7QSiHnWF6/PwoPWHDxYfPeunZyShttCqpwdbgLj9br7PjPrguGVhnd5GdY3ZLo90Lm9X06osX00tbdYRalZorcQxNWecl3lF6p0cnqcKZkwvDO2e8PBxNwI+0iDpnbFrsmggKlAyM/KZfoQU18D67msX7/C6myq+MV84B6V2B63iSm/gvXBhqWIu2Hy55PI9vxXex3IyBEAuFAHwGTbcK4oEI7YcvtRoEtqMzoBYxLPYmVtggObiFwcIQFhvqSmpRLCkgDOYRkQ6AX/4L/xS/Z46g0T1w8qbvZUhrfBgSWirrzHGK4Jg/Y/BZywAUVuHqcGbfBKQ6JomK+cDoVIUDfD9/Slv/ZTOX/tl6Jf1vT3GvuLGBAH1CbOvrXP/nX6qli/luWtavp9o/+o9Tne2CS+stdhUoR+FeZ2c/NdmTff3CVrgqX/vqqxDANP3pv3k7/dEf/c/pjZu304xTchxXpJghdIaX0TPEK1IZfcT5tJRUCo40hDYEsYJ5hbXa8O8ycRAC81f/KigkpDn3ZW4TX5hB4D9TtmUECe/oNAvi81em4TsVhcxgdjHW6iHcf6kVQeZM4UO7uppzv6NTR7sAryusZYWIFhS8F0Iqs7i4TyFIzxG31LLms4JGQRXbXNNfgednI4XsNG29eIuFtWvp6c8/TpvXu6l85VrA0hN8It8GcsO9pw2FZYyRCSjUCsx/SSZSAXD5tZfT4b1qevi9n6YLr7KecYt9tWA2oSCcHTskEp+lW2nNH695R5i/Ciw+RxwphJcfgZfXvMtrca/P+t4f/8Zd8V7o2l4W4+ITYxNGveE8BIm8sd70xKBV2j3qxdNVTkZhatA31g/CoEJSoYxw8WdBdvenHz9PJ/0xSpRiYhToPgLIsp0a9wwROBUOyLy62QjaOkD47J4MUhf4Oq46O2BcWq9D8y7ap3gYbt8d8J1ToHe3f6rTn4bI3iGbM+7cT++VJmmTNbQlrF6zzW0ss9OnO+ng2Ul6vrOX7r7EdkKUMwxZSzrq9ilg7bAVEyF4cDQhljlEmFbYaiYMF+FxJqwU9vYZahGwKbCEnpUEIYVCGPGei2FdMUd/jPtKP1qOZST/GNkwgK8VslGo6gM8K+y1Nt0xOGJYwDqIZhmWD4IrsJ0JmmwovFdzQ9zzXwosiYwhSuRoeoXYBMSY/dHM8H6ftakItNkpgkOJvSCL5P1RS8UAXZumz675G3EKJ6O2O/ctaUnjK5hXs1SmkhK47nR8F33QtnVHPJ1eY4eG376ST/fZtO9vnkP4jVU6xpp5g20Xfn2bIPCgk0Z/7w/S8KuvcTf1SzCZ1b8TBOiIvwXctBKIc47GWzbajfQb334r/eA7X6fQ8RepdmHbaYZGCK6RlB0vLzOeQi+zPhCytCHgc5jqkeQ4s1LCSlNonwkxbuQ+44nMK+5hrrxXIABOm4iuwlLiXokx4OC9EIGuhtNXaxtQjUNbgVW4i3znkqWwpICTlk2eQq9wF+lWvEQsUyFpfxBHVLrbNp+dg7DOBBrP86xrJhV0c6tcuUerbIZgVbHMSJdvXNlOuWsX0/Enn6fis5+k8q07ad5sxpxUTu74apysAN1oBUp3I4RlmsDYECiqkYXYk7T9wp00Jj72gDT7JbKJ1as3GLfwMK4l8f+dYMnqmmQOXUNJnY4kCYWSGiF+UMQwUyaoaMgfgUv/zjE+BlVxWbjJQFru3IOaDHydUr/0lNT/vWfdtN8dh8Jo17F06OK4b3iBtiBaFZl9lxBIZTyMrSYFmI6ZL+4974ZlpJUmLitYRiaNFIKOosvfx/ucHck/raYqiY4LBOOdSrYWD2sKOFUYm3ZPoYaprGfDOB135k7RN++3RwPgXkz391nsnB+GpdVB0N375Fk6ZOPJv/rLd9KnD/dZDUGoAsLeeXaQnv18Lx3vd1KXJTxj4pQFYorLWoM5QivMxTiZNO8chazjtHv50jFaC2glgOUrR114SdhBg/0RnhV3KQBPEcBtLMnr6430fK+XPt/rIKjLbFVuaypBDpKh9u/iNkXLW7jJc4TFuWaVaMsQm25VCJ1zpDIKH9dsm0LAalaDxwI5LCwmaKmBwszyAlOlBnRDwMbwMwAarJMZMjeQ4SukMD6mPBtulRKA//YmqfgTBCc4GJL9MQg0M394JqrJuU1ag60CGDZhCygofO98usFBFDJzn/t/ByH2e2+upRo7NowKW2lETGrEePIErlcgQGEiY3q/kj8EB21HTAhKbBMHeB1r67u4Kdsl3Bx9d/pTZ6o5slHwxzFxfS7jakHQRwxL5Akn5pDnr31FhpW2ixKK3zNjtbRzVeg4Bt0xISiRRlyPKvLYcYJ7Yp0X2+OE22ymlbmf16UpOEpn7XpdxotiVcYkDghcZErHuBdjsH3xWwS3K+Na9G0bIz6PdVuBkXVfM/Ccc9c+hNuY5/J8730uB2JTeLcCo32sTup9WsRP1r/0ajpin6VdCk1vfe3LqXT1GsBxvyyeQ6sWUGBCz7WmyhThH4IUOpwBY7fsWb+4lfJv/Wq6/4Pvp62Dg7T1KgunEUp5aTEEzd/RW0Y7AXGgKS15hX/gSH7S0sIx4K9CWOuY3lU2Z/fanm9DIAKTAePbPemnARPTxe/1ZxwhN0z7VlvTZhVhokA66GEdQnONmvxDA9C7FmmUr9OFyvAp1pejUflqSWGT2QTEKv4ZDR+MGUnTjqNG/VM2LMbvNdqVtsRlXj79pZClHfo2AB+C2DZ5wF1lLR9xmde42Urr4FXjQA14qYWAWyukI2jhZ29/lP74X76dLrPKlNA819fSlbVS2n/SST/4YJ/aO9z0KuUQjXa0X6/qrrqRQEaTejuO3/WtA6y0UxhwhDDqQRcq390OG3szx6Btxxb3w3vMf/d4nD590M3wA72OgHc/6N+DkSkYx5jYO+il9/P7hk8IZFEOEATLxDLLJeaTxYho0AW7sqXo1c2Y8HIQjNB4ZggKmdJgYIE90+E3BpQNJjuEk8/8QMdh8uryWB4Re0Fxs225PbF0E8F3kGaZg9Ya8/olUpTOEvrKo9vJcCgsRKA/xrPiM+34kyFXEz4bufx5ka8utIkfeVQ7gMnRbyyAptkc7bqGL1wdGlqEO2Y7zJqXBGLgNmvdDpD+Eptj4BVf0I5uXyy7CFVjrMkX7XFdiyQEzYx1d7SvRalAU0AY/AgFQEOa+fjZ4b55SEeZwUeKnD51GfWdbVPrqwwuMI0YDn8dBoQos5+7kjncvrBewJ6Woi5hZmUpaHiOx7SSbS+W/QgTxmYf2X0MlT4yV433FfsGX4xPPOjWu5W09xpbVJE5JwWiSQhjKQqi+rWraefgJO189ihtE9St3LjFThqZsBBvjncEjI5OOT+atl0uMmYcxlcmZIWfHbGcp15LE3ZxffT5ZyD8F6l85wVOPsK9Yb5a4wEBcQmSAk/gK9zw+ADuFOj0adZTwex9RS0FQCrtCV3LXsySHp7iGmFpSw97HCzyCAElDmVKkxe6MJ7JmMUOxTlrP7nm3xEWhO3GkixwIm9JL5krpTJSTGJNIrD5xHcKH0DOS9BzUUYIvFVx3yrAQqbS2rBGUHxmwXjZnRUNCAhZg+hrtKGQsi1n5DkAVXZ/nSJR+jSeZ7mUhc0muJ4ecNhwd8LJ4AgZlkW9+c2L4YpVGOuQkE06ZU0hyZR9BIpCBP81VQiphJBc9aNvBaRzKQFEM8rKD/fO8nYTK8VI6IB/EgJRVcDjWmcR9+M752IiRhqIuLd8T5sq8JUZfBSBNZcD6RY44hIKMABFfAfaSLkoSBRijou/IXgYEn9FcFgBPKOl4DFWoIV7MtfCwS4h2jOIAy4YWuDI2iAylgqcEXccKcWdItO4lOl4kaqkRkfEs6EN7ZNhFACCAsvnZMqp1tzZvTTNTVk8JXMp7VcCdcEv3xE7k/jfvF1lfx92FUWrL9lOWd9cBva4ei2kPAA8j/84Fy2/6JzvGFoQUZkaJX8ck+1DQ4zHryQSUSdR0CbPWGQrsweDc12Ct2pdlxbMZgKLcRWEJ66U2ieqtfmstVr0L/cqLPIAJlLjtO2/CFSDM2Wd8ajYHgZ4CJNMEAIjnjeLK3wConwHqGNentysqR6Uzh9CFAguBQ/MT6Nap1ZcTyGmYoxB+IBJ4AL4IBjmDChkPhWYAmsBXmbcM0XgjLgpKIF9wiI7STC/sb6BdXs37T15kqrvvJsW69vpKSdzlzkAQ6Y76k9S9wi8gIdyrRLjL6NMHQNiTFHN6dqr1N7YSnuPT9LtnR+nxiuvpkF1je+YBMQeJ2tD/eIrlBF4iNircOffcXeY+mS8jGvqTrnfWZ34kkDShVFwDvm+h9ARalEOwLuNFtlO7vHF5YCp4AbR8RJ350oJOcYN0gBKjnGEMuEzQ0Hf2kbcYDPKJT7LKfyFT6pYVC7u7yvMeLbCGOsILK1x6Sz4CNzY1rmHEvzBNdd/SmvyiUXCRQ7/KAP3IjdMSVi0IA7bdXkYMoPYF64sn/Pg6+6r19LGzRd4HsTCG0dkeTsUmLofVvfkELxivRF4n7AyocjOpFH+wr2Vao2sN7QifdKubCxfxJIwLECvlYkvy2t6RQqgoDEm4xrFAtaplqFKwzkWiuQu+S7zLrAKCRl5anm1QgYUBVnsj5g5DD1k0AteS06WkfDOoHqOj2BEASZSc5h5Mzb9aqlR6ekUppO5jUlopWbcjKnOWz/6i6/pBoIOK04mpi8Ryl1xgg6DdXL0zhXZ3h9R6G+YBQRM6FeL0F0lRIzCze1ewldnDmpNdzr1CavqFRocChMENUYQX24Si2oSnKefNG+kLoMaM+cSfc8hvALHf4X75tdcm8C4tu2PZrbC0Poox8TXTNPsnnEHkcV99BVuK2/RG9GGglWYxQ/jNv2sZWJ5gQFzXalChblDZCoBl0HJaMJH4eKZjeFCqjACEowF4RhudNyDBQPSjbU5RuNAEqyu7pBXEYFhyYIwzYEc96Af0yd+YwjTiEMCQxdDe5hF1F7xzBQaWDEOs3uR7QQWsTSD+bhWcbQizofAHLENddVtcIQjHFZmnBgosWFixCmrzAfhNRiM09Gzw1QdEc+Y11L/2XG6+OO/TtP6Wnp+4VbsCFtF0BTUmmj8GUF3GX5AHLFICUWNOIZQHJBBHBD7yLXa6dHOML382Z+m6hdeTTuNrbRe0wouI2wmIdBzBQ4JoQ3dMrW+YmGG5SBJ1NDepyRObC+WEiEUzYqVKY50YXadWJF0lMVmpxFbC3pWaMuVgXesF6w+1VSVuEu5wqY94L5EsFsrTXxoeUijCk2ao197h36kX+Zrm17PMs4ITyyRAqtIKGgJd9GwQm82DKa1XlAatHZwEXSIYOd9lf6ywDX4wA0ztDM1sUW5ycZkEGs7DzpkvlGKnd4Y19aTvrEQKc4tHR2iBSrgbpqeH+zgogMD1ngaf3XB8+C4m3bGn6YRtNOGjpbMcw58ADDzQhhViStpTRqn4cc4WxzrxtyKBe5DaF7Y3maMwImpH+7uYC0NU61WjxIW46Q5QhoG8ytYkw22JR+BI9AWwhkuBoYoF/pQthQnQNgqZCWaGSEBmwVw6Z2HFgA7gt8AX78rGIVrx6fT9MYVBAqnHf/VIxgRgYC1yaC4j/92KGMDYYob+cILEIPuhkw9wFUYAJTe8SkeczG11nTTFFcMigmopSzGE6WOByiEBvPsv08+P0z/7HozlTea6dPnU0xzCEJmowA2iMmKIT4rYFVh8mdm3dAGffudS5BkxAj0075LYRQz9uWBE40CPnuunjrUKumOOS9N8pgbd2YnQvMdUHSeETfgyxVjUKShj5ReIbQUIM7LayF2mIsaCcjHHB0bX4AgmBvYKsAZZeDCrNGEsS6ZhAWk5jSco4umLaOIU2Z8nJfXnLKDlAGmfG/fIXNpW6FlQH6GwNN6y3Mqtq6B1lvAmO91Z3mExhgzryH9zrE2TIx43ULCzsEApYYrRQnG/JSq7AFt0E4NqwhFHqb7lIBxuYywzk0QLLiCu8dpQdZpeUDwljjXqtJMu+u30heOHqXXq0/SbvtSelomIzbTlgpSE5owKnvow/wEIhiSaW0zVeW0JIi83NpK7zDHL9+/l65tHKT7le30HAt6xQ6nWpB5nlXwR52Xlin0FidwQ4sTFvTKuAaQ+SrgEgpBGCIUABH3K+yEJW0ARPRCKHAzWBg+EjsQy2iiRc1Sk4QCw0ktYp0e6hDKGeHRQrgqbHp9FhVTTNziOxe3jxDGdi6ODKoXeQ3I9FUQFGXGrhkVihA4KOBU0hXCGUsFILgZw9iWoUgHIzZIlPnHCBy3iukgfKvMcZPvH3G/hZ+iVTZ01C6Sv40CPSIO16TfaX+UnvWybWRaCAhLbbR0JKyoDUMhceoy8BuTDNCtzOi5S/IKKPGB1rkfXacsDAGayxmXWmCpHaZWo4Xioj9qvbxmgXcRRae80X00tKPgc3zh7vqZcagEGpRiqECEafFw5zBdJTC9TU0NOwoDDDU1TAOwFBoymYikyWAICTsCvFyLimhrjHguNIjfcasB67NHCEQO0sXOUbp9oZr2CpcJfqf0+YPd9PTzIwbGLgB7+2nt8sW0feVS+s2btXT5cjX9cHdEX0UmAvGBpAt17A4QyFvW0M3Sv/rgMP3nv3U7tWpN2h+mNQL9xhT2Ov00JE3sqKFXgJBPF/AJb5YZO5PpDjNBOYfZmoIZZH5+cIoWGrOdBjU+tZpykdgFdTC0c+1iK00wUT37T0E9xG/q81qnBwkJkcE/kEQ/ErbPur7Rf5ruLoNR042mhiIhOK6NIKRjtFx+CPGBkCHp4+4OBXsIc036AYSyxAx3UWoBBigS7Jyh0Y6sz+FZrSkF+iUqknk8VTfX2F++lC5vrIFQ3CgEkmsRTaVbZLvUqoKwK5jiFcxNhfGIuTXYb8lgsi5nASqb8V4NaK3b/uEprvQqXd9qpL0jArCAdMrme4HcCpX17I+Vp89xHuHjkprGOuMbE2caUKVtrRQWEAJlCNG1WxQpimcoPNZzIgwKEfyBvnAn7l1+OXUh4NvsH77e3kif5SpYvghXBGMwF4x2xK6XfcfG9RICzQwiPmO6uL6eSsz5e4ML6e5n99OdBhmvRSX972zg/wrYcXkWTk8W+5D5gT/gETvwl4IJJQk8VS+6rf6V6LXMZUgr+WU+f7Ro5AKf9W/8hgZsE7WDq3maDmFGEB3ft2EylaNxqhrCrArOhhSEdomLlTn3USvOImKLrmOHBjrSWqJHrKx6vMJypn35qdtnq2KEH4QGbwAfxj5BOBnjlA7GwNy5aWELN4XNq4QDDqDLHs/UzycC/I3FXgTm7rb1nJtZ/QksoL8c8UCUQuzdDgzivAf+ykd6ETyGFY6SjBkLC2AGMKI4nHbCumf2Jm8spDWbHXFThOEJ8S8TcWWs3hBMtGJcDVZM5ihCOTBOpgAMM1iryIejPoW0JwH3IucoFDeJPzWZvDtrOgRNZ+tpRMgMa2EOIIYQvhmSl8gqlHPEG+ZsQwfB9tBm5bJ7l2cHH+huLHApD8mEnGLS6+DtUm37WkEzdZyoeQvLqjnup2+ybuy9EyCANqlUK2mTMEKZfnf2T6kNGbKuqZqeI91GE/zuQY5q3lJ60IEBmfx/9MV1mGOaNnMn6Rnp1z3Gd61Nuhj/Ok9NlwLLGehLt8HmTUoaWqR8UTTEK9TuxAr6mO9YLDsEVHu4BTcYykUK7+Yx91nao98fPzxJ6/Tr+w6ayHMDj7uzQHBk5wCoVpFg1uwXZmou3T4FfvdoP73ff5LqFKFCmbidBEa7nWRNTa69ltpojSlWx6xEdTGIn0KQQ9s8PQnXaFiqpfX5KPUJLC/QPjWYS6FiT12EmnvrT+qNNATrWzDujYtrcXrQ7gn1NoPTVEfILREKCtYtXKocz/eI4ZzsHaYDBSHEswm1HBAWyCMgJZQRgmdKcMq6ly7FhEO07pLs0gHbJP/+mxfTrLpIPz90p0qELcwyOqJWh7EowM3a3T86TlcahbTB/KfU5Cl43GPNinYX2Kvpb2yyjo35enirW9l8wkaA7/VL6eu7n6SX1+rpUetyen9R5hgPYHJ0kI6Jb83dj4k+ptCjhsmsPAOO3dTALV8gDN6eN9Nv7R6kNyv76b/APfzXAxQpVuSWc+JlfNGwgpa1cVUtXHe9UNHwdShqnRpui3sjBiO+uN+5yYRqfsMYsTsHf80iyvxZsJg2wZET023rYuXEZgEIgs4pmUH5SqsUHOhmTrF+rJ2SodGFcW1IbZ0xzCOUsD8MMcamgeA9WnYaMioObG36hR64h+pHlB11Xgo8+HgITd5k7G43dMS9CiaG/stwjcZFGzqHlDMjhHsUrm4M6S4qc+AE6IwUEUJAWSPEDX9kqwWEB+9DZmhbCUvho+CKoYWwVHF7PegVsLjtUMCZ0cZJWXzhMxMsd8cmjQoLPeYo/oWWXBdrIsdYowrEOGmxCCHrc0f8CeYwYzgxJc0kDMCdYrUAUlKVTJJapBNMwke7HczfWXqAFVOhw71TmUw1DIAQYp6IMkZzTDAjG1hGH8Po7x5RHFdESyNQrqJBvvmla6l9xPIBYko7rEu8dzJOe4NpugcUX8OteBmx/+JmKX2IYHp/d5xeGxSo3O3GAQZ/+K07aY9J/n8fdBBmWFdQ2XOCt5YKnBeciWxnKRCggiAOgSGx6fpKGAOOscpVtqgwHqfO41G6DSeovTsI2dNpPj1GYE8edyPOtMWujDPmdIyA0V4yJmYZRCQjQMgKOBjvkoCgSRCA8MMi+uzoKNUQigUCla1GKfaRshwiVRCACLYczFgitraA+Fznt2DMVdwHGWZhoBHzu4xmmUGMEctSq/Ed4aNwnbTkSsyxg6u8d49aFyaOMYU2P0kjTv4pr7XSJif9PMYylIC3EdimuR8+OiYI3k71DSwlYDfgDLoZeCvirq1RET2nzY+oiymPe8QssdqYy3NiPjOE/ae7p2kNWlghKKYM5OOdU2IX+bSJlXeKEshhsfYAxBx38Bl0ccQcLIys4+50xl2UGVkrrIM+dT15+uwWq2wkl09/PG2kbz46Sm9s9mh/PX1vWk279NuCCXXLIjHieygd+Rd4lM4QhekGwuDf4sI/wyD89/OD9J+hfP5Nvpl+hDC+C1vFBo3QByqPu8GTVA3DuK7UEgeah1b4DvgpAIxpymBiUiEVjClTAu84jAUFZbiElmkJRuC+7F7+yGj8UWEqtCJrR+DY7xUWWRaPxn2EfsNr4a2+jGMzi+aPbYRARLhUHYsSwf+MISwbPkhvupd6RlpEE+5p830D8/IpuCnyXXTCfWbgx/R/EcFk30fMVeFtDK+MEDKjJ994n3jF4ImwggKywJxc7aKiccWI3o5Ky7CN3/PfocUYZ+z+kn3gM/dpPRlWClYEd2FZYSi5AoVKBw4FVkDCo7QbS/di5kDD+RozhL9jU0PaKD7sLdOpmkKipLhrPj5AYxMso0ciBSAQbcCgaryeU4T52T6pUIROCc39/iGBPcbm2XwzBFuplYj5gBS0yzpLNMq4Yj0rlpnMBm6AGn6IZnmK8Htvd572WGx5iHCYYd7renUpwCvy/MfUszz82BgIwUeJBcHxZ0857w/3soaA+wyXcRfh2hmBMJhbaX6CK9PB1dEiE0oRFwLwxsW0SFSdEpv+swTv9jia6D971kk3fYR23v7sKG3BeG0EWL7eiuyGJusGVpYEPyAuM6OADrwCdIlPhBvPgMjpB/5lrprMWl0QC5pKRpZAFf79IalvLIU2ArsLIZ06H6yqAecBDrFG3LXALGgJalCYjRk3VQQgEyUyxUKSKvwRoOBLC2GGOzwGPiLfcdivcUkVkEWYzvEQ3MicNdzjCdZqizhKpYXVhBB70mE5DcKkAE49Kcfszy7FggvwFRoPza0L3aaq+m/ud9C2nKgDsRlXGiH058SLCsxJS+QYwSQojxDeh7iKxiqHxinAYY+xt7AcewRtT7tZ8eM68aMlwV6iJXEY6yXEyQfFevrsNJ9+Z3Gafqdymj5HgbzN9idjrLMNYLtg7IAkLFiFmIvVw3Xg73XmOGC8/0O/mv5w2k+/Wz1J1yl0/BOev8T3lKyGlQ0hMk7wxvgFKf/lUv4ievgQFhhfGLcy++ukxDMSkr984B7hnIfutfpiDSIw8r04ino+7jcWFiKI6yHYaEJBqVUuDZ41bfNBm4gBvz1rT/ElLTnAjHmlKoWPcUYtEuksK+uJXhC0PEEfN7WeuHNE/9Z5RT/8mtEv+Yy0xVwPIQj37Ve59szUwvsENmMsKquZcVzCDnivTFvrChrhZfuu0x3TXmQ3wTsyFxrnC/viX7yjL3lOQV9iPKFkAa50mBPIjIH0SjZ+PjrPgAvwC1jbGnQmP8WSMNbY5qH14gkB1R0EyALCK+H2zZoQEQOKrYGJ+0m0UYFMjGP3SS/V+dtGkIwIfB7gXrhHeYmJuagy37Rx/E6YsIGPU8QNG2HGmaVRYteQ+iVdSTTwjx51CKRhORBDOeHzEkuvxeeqcRYsDTN0okz9oBtRBrJr62tpf9hN77+/H67kVgNbB0I5oa6nTXbBwKZM7PTpNgAg8ASkPK52y4SWc+IqgkHCaWEtLLiBaYWAWY47EJ1BTZZHYJYJjxMYWzVco58j5gKO4xkaNJseiIk+0CYGRV2XWUCClalv0VF3AbDLFIVrl6OVTjyEgjG54+ocV0ALS8Q7HyVfGTexyot9V2iD1fto3Rlw8kSTCKDSr1puCAWMmYsat2SgWYDFD8RMOyMEI3QLYTJmBMgY16+PMBkjPGdYvyYgTmHCxmyQThH4bv/C+vw0IdujwmogOA0TDGJJDX+N6fWAT2nA841UwEI0qYIiTD1cnxnf53EDq2SnZiiFBZahJRsWE5PlAISkqHH/nbvlLGacp8S4smweW/MSVD8mIP/PB/n0n+A+v9FYpt8Hhj8hDPFjJnoLxKqV5woY2ggrF0qJ52l0DRzdwGP4o1kr/RMs8m+v99INrOO/mIE3GG4DPBhzcSG8jBOWm9aJA5IoaDsTSgo0AMwlBZc7HUiPNB/0YJIhK6GhLcaSWVK0QjNOzjayeieZEmY/swz5xkFndMidjptWfQj65BffybAKe5Wkyo6yYDAh/LhB8ua9gk8vaM495331Gb9xKxX4UwROlXbcK18Z69hVZNdg+hEwP+F6Fdq2TmsEDYyw0A0xeHYog42x5DE4nFeNWGGbrN6E7YTQ2uFWAxUsQ8U2o6f9LEvoqHiezxAWctYxCz/uoU3nYCwweJN7FO7SZawMIWMXMS8G62eTaLHrLuOJ+khVBN8VexCbGQhjCe7WUANAa2wP4pHtT8jsTBhgnaC3AxF4TtrdGhYQp2u6oHuCyzA6UniONTWFQZoQuwWFfWJO+ulzEKafX7IuBA24gGHW0PZl2u1wfZMFxXO0+wRhKBGbMcnBoGbePEZby8FsEY1HILkGIBtt1kQh/Nzyt8hfEWwpAvDlR0HkhCUPiQ2GDQBmTO5JN/rUqBGeQzhilQ0QkKKV0CNxMPckOkojousKCBs14FlEMFvwKizwCDP6OSOaJe5wUWTQo5mpHAJpOR+ng9NThGmL8WCZohBWUywPLK8hyCxzrajQBNZabboeMkEQOIxTgtFXMrkurIoDYrWMIpaJSMBMLILHfKEraFA/q4aXXrD4aM8DHxg2wq9EwNet2VQaMBlz8nxFGU/8RKKEfhQAS4TMAo02tg22Mh4yRuODysIJJRg1CNAAOHZfZsbThkrJbNcM/6oEQZh9Y+RYhzIWuEQwGycxISANScgW7sZhIswj+ITrC2DjSp+v09l7q0b6hDjmb1Wn6Xeai/QSSvIH6A2iBJEUYHo2k8EB+EhrJhms7v8mc3sXm+oRz/8uVtx/WF+mH+Ji/gXK4QZpe91otb1ZVvGpUrY1lY8MpyV+FvSB7vlsR8xb6ys6VWHxrDYQb4Oxz6RJ4FIByNd8C03Stm6nGUqtCH/EmzjS+rRnGxUs7vIRcTZu090CRMzJ75kbz8SOHUEj2fMO2FjWKd/fQFg1wcOndHbpMutk9VqOj1GUxCsB8BX2YNsk6/ZMpQF+iObSnyPNRqDw0v1yPlrsNIccwEsg1mo2WVzF8mfeqyDjOcYSc6TPoF0FM3j2fVTiM/9MAdAfbbufWoDaGdHOhAkGyPEStCR1HXMkgaoqOvqP1QyMz9CL3/MVQBMYmohoaLVlGVdhhstlsVcFmzC0F0+rAcKHpxPjUwYsZR5rsbQMJlgkBpZpl9EwYFwNLaMpmREtFTNh7nYp0/Xce4e9eOq8LyDIClhHZrDM1rjdin69FenAPwLATsq1VgY2rV2yOvyUsXp0/Brrs9zGRassVvNjCIe2kpgQDKAliIaHQUimcawhKbVZNtJsI4xw8/gn8ixUs7Jca22F++LT1sIoMLQeFVxACwLRFUFI0Z6B1DFxAV0CCVHNGr49wrCLS7aiZm0OLHK0aWwktvRhbgba60zMZUnIumBCfXk39DPo6enSdWJfC8oFTnC3dD16nGziT4PxLth4zbn5nx65Cszp308KD5dIjGhPwuwDZ0sa3OI4toPJY91yf0FBArEo7HVh5EyF15S2DXUooGPvelrlTqwhNLfKjVvnWEYiyL3As2yZ6kEmdgi2xby5h1ROEJ/KZcEJ1zIq33JvjD76VFA6dGMlwSnAcB2XAA1CbKuavnw0S79eP03/mN0J3ptU0l8TZ60w5iu0MwU3CnsmQBuk9lGkfIUbCJ4Y2387qqZ/SjHkr7VG6QWSHf8a6+0AOFyhD+cWrg1jkcmEsbQnKKQd8R9uYYyWzsStMHKsvAfpfB+TCWFvUbOzExLKptj6B1rjf1zTqghhxaeAFJ+1auwvfnhvwkZ4CP+QHvxRIclWUdFvfyYMmasxWQo8WHJTQGCl9BBFkidJcvPaDYYqLRJ2YZWAQvCKtWVbl1MTPhtQDzXieUM+WpLtNmYv2cxJlPEwcDLZaBRgQHgBmjPOxR4eUSxsbaPW80jepX2NA3nHH902ByoMYGVGRjPco/KU3m5daqaX2BKnj6yAE9OjPRZZQ+xVjA7vG+IBuOYSpqcZFR1G0oxF4SRbcFOwyCC4EjZ63lgLEXmZ9JDamm6nh2SloAuBYNGX6fIFD9WRfBZDFpmkwXqRHOYrwNHUtqrVqL7mXIURG8Nxfx6DrGPTO7h3VZme9vSH3UrFYr6+gIbQHIvZq9BqELiIG3OPhXkua7FmLIfmKNoPfSvEokZGFwYBUWgYfyNsKqQAVxAO4GPAzld6A9FcBVFK/jYB6XU2/+sT3GUKMDAai3nNEagj4lU8BZDgGh40Xpa3MI5WbVKryeuhYZirbqTWkP48dgtdsmjTGhJ24DS+oPXQQhOdErPSNJagYnlSWDgSKBYJ/budsH8HaMIyc/ck5shEodasIs/cGJmA55mjtoyDV4ObiZJJFjDbnAm7TMQzDB2vQqSAUlLYL8Q1l8Lx5n77tlo7S+kjiIUFBKSVqxUgcRWwSsvCwkws8JvRl+4yE6ct/jGG2QKY2QdzUMDTIvdAgOBGmMv8WhEyuhXY0kaMmXsjawdMtSJAVYQRSDuk28z701UlfU787VtY4G82B+kLKLnvIoie4SZWoSXthAWWlFacQ9JSkPHNkX6F5/+fBdlHEjq/3eqn/5Tkxw+x1v50WEg36asRsAJ/jEG5oSDyb+yOC40aiBe+sd8Zf8W37AnJ8hcYCUh+qdiFsaQnjkLwMUfrv1z6ZTMMix/ukVb4LJ0r0oVBPMlzKntDFBKxG0+6p5X30njMDQxExsWla5ADlg9JKsqSDgDaESNq45XsPnsC3QzhuQFlDbP0hQLZ/mE5PRvuoA8ogSBkkccLAOXwNF4Op+R0g76xghiUO/oipcIzmWNYaIWjc8EXD4A/95Wb8VfDR2BZuKpQhXIQauA5T1aX6ysEmNfQwsCVOCdZ/g+IcQfQuEG54sG9K8ak5+NCZ0VzjWAbLaU+xo71KSaejOsWO9TXlGfVtEUcJ4+g0aJqW52KxDVobGGkI6qAkDExlBVBeqW6wThdG2QNQoMCPZhUE8/V2WKmQjbKmiOtJoVNnYyX7kCeYG6BALIlEO7HUyAd78b4movWnRhErJOJUjjMcEeWSHgH63cTJl0knqM5X8VaUzjKKgu0pVK5hIYoW7mIeNA9kmDEsEwnz6qwVOCal1GlzlhdhzbE6rMob6R7TAZrE4RbSHuCO6floAaxgtvDLYcRiAImukTKAZ4HPMzZ+cugIk0EILgQrLeuX6asYY2AO2vTYOT6Ai0nItkAUSJcUvUbbxgqekBRyxa/KgdjSZQ50J8V6yvma/1KEWEusnO4mzKImZ0cVpgFhTJchzIE91I3huaEqyw78XMNfDABhDpKBybvYncNhTmwrIFvs7xaU+gjRsC2xzevwpgp7d/7DIajPWBlmCDcLubmqgQmiwCl7IEDMvIIsxg/l00euGAb0pD7EVJkiNnXqYjVrosro8koYUWLH3o8tzxCQIpThDWizi6AQo4SFtsqpL8EbveP5+lXS6P0D9fIUKNcvjsspnfo19ort6axwFfhJ+F7xJhW60tMhr0I0v9IQP73iMV8sz1Nr7CR3Z/3c+nzST7djvu1AjIlp2SJ1RKOU7xC1sLASWcWGQMCduLCNZ2OM9xKx8mLy9m9PCJTQx20B97AWfzzPoWWN/JeBeVn7+NXJtx4zhTDipgpl7juQ5lAjc+6Mlz6Mn7SAIDeh06b9OHeVXtYUJEJ54a7kEwFeH6GQFsuWBPJM/Kw36u8q0iiKkJ9H5IJD8kgOfyH+gnF5fLBgcPkGYuMjZFBuCF0Y9cGeNP1gDKZhkoBYVWjat06S3lEw0SclPRGeD/jnlgUbhAdgjOkaSbxiKSW97i2NY+ArVK6wgYYyAFFuQqB51+4tp2GTGZEzQ5nlcQKcr5HMEDggCmWGMjYdgjB6MZUIf6Zg0T61bG+1JgFYiRFhFKOtHgJJDRhoLzEArDVdlWep9Vwr7TIXCNlW+F+YHHUCKgXcFMiwAnQi0y+ou/M8xJcH8ZYp16rSgDVvXnGCIAB46rpZjpSxiNCXf0PeLiG0AAZamsgnZG+BCPwBDx9rUa99NmTnXSTZ90B1AWf/WPKFki9zywpQEChK8JiqfB5ExcyN1hPn+OySSmStq6i2t2Ym6Z+BBr1EUCs+67vH1JTRW2TNTxWXw/RenUCmJY49KiFUovaVhk728AlYQY+MRXaZZhRo1Yki7qDWb5GwP/W9QvAiS96NVbLO8Zq6gLPE2qmLl3aYrM2MnPApo0LVVvfTGPws0DRuIi2EBXiuFKML0e8UGHtQQQ95l3iBc0ih3GpcAWOWdPngbQWkq4svEWAu5fVKYpmDRdag97DHozDMWQ+0RZjLlHDZZFogbnbnqUg0pM7MjShXhVRloJn6jxnKCI4WunN22BgKNzAq/EZwBjwsK8SRH0V/HWhsT9mC5q3Thbpzfo4/T5LS15j3/zvkTUmbBp0oOILZSPOGR1iNTWFNTD4P2aU1ZxM02+vD9MfUDP2t9DC/0UW5RJw3JChHBd0o8B2GGHR0kooIcamEmWo4EenzvFntBAClvv9VqEWCh8hH+n/oCTu4HbvU0CLXy9EOxCmpBrPcllrNgSk94Nvegc5CHL6dO2eStQ46quuNqCN+8QcPT9Sl9g2FEhmaC8z1ss0fA8XWkvbWi0VZAS4VSzgNbaukT6AqQpJITFHCRmvUwnF2j+U5oz4pYmksIG4p4TAlBS1yOTtiO8x0pg3EDdDr3GBGcOI5EUtagpV2ZNwgtIcgE8FtJbqRiPblKAD/7rw2SV4Y3hKMVQKg8LF5ShMMwYdiPL5HlWdyPOmwW2ZFYCYxRviwrl5ne6ddUARDENLr1a1EDg5TP0ls6oAKJcFVNnbxoIvyxnUnBXjU0xoiHs1waWb8reM5ZIHQGrn6clJOuTefLg9LsKlkpy0f0nhB4Epqbv4tY/2j9JN3LcasYhDKKrQRLgQHHdcxmYi0wCHzHomdKm2FnEgTFKSDGSm2IWTNo055dACSL70zvCE4lIQhTBYY0OzBsSQ2yHzBSLzvFfTKCDKjMcYnK6odCYb+U/hJ77UxmAEGGWMEkH9eT/d33nGHNqxm2OT5EIVwaglM6BEZITgLYPEKxTRsrolrCr76+zvM37mBuLadTKhrTWIDyJivgeHh9FnzUJPdn3tzE7SMcRkoH5AIqSBMIQKcJvRdIzymEyZ7liXinqt1DlCuj4kJsEWvCPWeplkcT4KSIlPl82FS4RWYQAAQABJREFUzz1KLrSsGoxB10GC83Bd7Z6wupm3rKGrajZSa0846Y7iYUV7CqxwjVBcY2iHqTIwCRhNCbx8JqwVmQLYqXq0MbJ4CO9si+/m3CcDGn9keKkBvtv4QR+Dw48GxfQWgv+1NQqb2Q7lc4TW2yxrOEJv3aEnGfQUWjaQH0FhevgVSLxDGcl/3S+nf7ocpjeak/TiWjm9Pcynd0YILumW8cjUjh9wMFbGSBtZ3VFGVTFPxqQbKv1loQDc4bifBxCOZruccQSeVUbChK8gW0bCC+JxzrFYPiSk39E+dJqDVkoI07BeuLnAZyvkJzCwvPWiMT7G9DE0h2rHE8FbgckVbu6EsQ4PvIT19XxSSH3crZZ0AZSXKIJ1lKAZ+gNcNDfGm9FPlb3kWxgJDb7X/VqSFJQurDu0wt3lYQvas6THUhjXRUq3Jna2VZ7EJy3BqbDLr1luZ6hFHYaKOBAuwEL38QJF6AVqKN2FYSZAoLNLTeNWuXSCV6ahg8Sxmhz+IfxD/7BkKj7aOyGjhxsCEl2hviJ2o5R2Bf7JySkLZUl1C1QI7fiklzYwKZX8sya7KgawISAK/6rELixaM1Pm/kjAC62OwMPsmyDJ57haxjK6CKtN0uKmYDtkbC4iMKZM7gTLxhiMrkKPtH/FrCHC6zKFjy1qhposmzmguHEdgXWK3ao1pks4YhbWOJURTtaSaVWJRYWriDFoyHCDSiJ25cCED8AwDteCEo1VjPsUTkIIdVJqkSBgHrqZEkBwCUDdPToNSyZOD0FIS8zgJIhP5pWqdXOMT8QJPrhvF4lflZhLGUvIHQy0sFx8PGenghwEbfZTK9b9gwyMAkBboh31EkuRCNrzFqushtbL46b2mR1ZUjI/XarAR+V6GgL/Om73w51j2iCKAZMWp9R2eVpPAcUA3uEBSlDM+NRxDxAZLGtamrHF+mKwtKnW1iR3uswDbswTjLdWx8C0bKXA0PWDxjKrGvybaHDPd9PrxrSQw0EfQJlmmYvlG7SphRlZXLUsbQfj8qwEKn2FwFM4MBKBKrnqAtA1LxrlXpMFVawrM6oGcKktxiMopo9ZTP1T5PJvNPLpTq6f/kllnh5QR/eJrq80CYzLMIA1XGpv43Z1yji+TPt/huD6uJNLf58s5L9XGKeXCFF8d1pJD6H/2/bN2AEf43WszpvRof3L4g5l6g6dJop0G3X5TCjxKZS0wthdBtwQUp4RrnXCFs5rgFuq1VpACcbaSOaskpxD887f5TcWD6NdA36RdcPcqBFQz4OzCxgNRRZ6P8LYaLspIM+6ywTdcVYBcWfo9jXGNUaIkaNI68SfYwzQvzDW0DIpFl4NPN2n4HvgWiYyqOJwBt608iyxWCCYLrEioocFto4lJCxcAF9HARqAZyGW276kAfhxoToGeVpn2OK+j3mN+AyMzonfCn1XzSzAY4HYcYvF8Q3oG/QGHC9g8VoWRY6JnSJwReGZtRp7jDGXKfBl5xCtFCQY2rYIww5d7Y3p6Y6KOawe/VwXywJdZqiUhnBZh/bzDm4G10M+YKyU9V+ZXNeYFQBhTsRtCLziPvRAjnvleBqIJ9rK0NmCVpGBFGbSliiYrbC9KGkA2ZYzHMGwxpcI74dLU6NgtQTBGD8rERepORG+1yrwZ1+M6fnTjo3JEOptsS4bZD98hsFkhjoujH9NPrheEB+IInSel5l5PsoZGKNiREVgE3lcaMAZc1RmqWkjMEunYWk5eQiuwJy0Lse0t80GdG7NMieOY2W+MQuZrVVs4X512GSTmCECbw6mGmjSBgxHBIGFrK6nYs0YDFSjWV1fhYaWUQGBnWe1fBltqbt249I6zInlhna8MK2l3OZ26rKsJw7lhPh77Bzp9mztLWJqEFOZ+e3ts9jY2BZSYE48TeuzxlKZCdc8vcdDct2grtXaQDCxsRqEel6JrQ1nILqJQnHZhNneCe0MsJoVOK7ITwpMBGGV/omn4m5moQUFsi5qFY3dEenAK5IYwE6YRRU5MRDRaiJDwdmkPITJIzC5zhwb1AdpYRep12rXWulnMOrHhwTZySR+iYrbF3MjUvzV9F6hnk5QMDUj1NCmB58odFGr6QUQOAaO/x0u4e+iSH6tPUl/wEL8jyh1+SuC/FpI25iKkECwgGOEEoL53aFWJSc8pK5wb6UMcDsN18kepEDjsbhf0H4JPnD3AYWXgs5GJ3BmhADoixQV9A/0aEPlbemQpQAmRWI9IcbFbQwB3d1nsKRw86kosUAoHYIz19X+ag24QsOPtdQpM/EINysHDOsoNvboKw7SRfgtDIxD97FJI02u0FoDjJcaiiifr6VLW6gGYH61tkjXb91KdWTC5w/Y3hk4XMVScucWaoHBCTREu8KohydV14VjdLqsJVY9TMwsojgi+YKkk/5UpgpPPasRbq2C8RaF2qi+dIzCUeifUJoy4aYa4yrW2mz1K5Hw0r1zacgCJi64MRp/DYJiqAB4oMf72YI0PQx7cXM9AG52Qx+4jMbKI/QqMJomrff7T63RQFDJcPq2YCBOBG6yrUgdAm8Q9KwUqYpH4zPnIEgJFtjSP8+r0piQJmOOotZ6lzoxkEi1J4KGL5iQMZOoT+E2md4fY2GSlqSkQPJqZGa4JoKtnnd+FyDyOv1MQ5NxTUJCk/iEgNS6MFIxgjANusvYQ5iFAYVWEDIuBxKwSrAl2SwojhdERLV1t4cJ7s4EbF7nwRZlNEsgFYGpBDS43tBVRBBbVKp2qZAxqQJrzfY44BZrskS/ZkU98dq5VOU4NRP9a4kJiyz+AwNQb3UCE2ttDohhyRfiwn2l5ljMqzm7GWCVnbKioUItnMH8GvhZMHZAgeVHW6jJJZo1SA4GQQ5aFZI2UBLuSusKhCIFne1JMa1vbUecQ0IdA4siBFODedY21jkZiiVNjE+Ilk6OWD+Ju45lgiSIONdEN5ZdLKNSGuapGPOi3WMU5+QU95dx6U5dYEvqJs/5foRVc3hwmBouDmfeLoHahKkmFD/q/v2gwC4ewOzF+UF6ZdVLr6K1H/DcL5jNM8C2pXXgeLhm9qvMWL6G1nmAgvkUN+gb9P1ibZ5uc4LML0gQ/SiS26t0AeBYXGlNk3hiu96grUjuKFn9gQa0YdxKSffRBcruS5UJNdwphNw873NhW4YFY0xXfyeUsILOthAKUqpj1DodYIU3EDpb1EUeYQDs8YzxR/EyZGG0dD5iXOtYTV8lmNXDC/kJS92aCIqhQg2aXBLMtv7ODJ/P1aGp1kaFbYrhEXj4GzevoMAOgVI+3SXx9QxvBimM1UpYCLoxoTG5f4/dQGdpnSxzEettBS2skQlvYOX9+N4e8oGwEc+6x5jeSp/dWfcwXLabWmNwEi+Fq6tGLCpWuE7AmdnuCULuKeO+Tny3BdEeAE6tTGXQEMnmkp7i5uZWMKUFdLlTTOx6m0AuyWA/A/RYfhIsQqMwWal3gteySNsb7E5IJxFngOCLuHlhvipIaDg8LyQr/QF4BAjvNfvNvulSNdfoF8IsH7Mxmot7myzcjfZEd/B7aBHRivSkDZ4HePr11odVty+BdJ7gPXiK8SqiBjuPeRrGRJrbsS4hLaiYmQutOC8+66CXGcPLl++w+wLEwlWtBQVf8YRlt9DQGhZKJph0WZg7fT/FQtoPJ0EhRQcAVtdYF9AxRh/AQyuvWN1Il65dB+oE2WEuY1grhDfwT9tYCz6eJ55krINMBvND/ACjiAtiDa1jQSxPG2kDaydnASs/wlNYFnvEAbEUpgiThYKNtmQcx38Rt6GE0Fg2mrh+7kABjPyeZSo5BG+pZ0a1SRYGWxgCi9njsjt+zFkYypiIYIfRyMpOFbIsqYIaKXvBIqUfizOFuzg7PTkG1o4dg59xeoJzCc0+IpniFitmkC3crY+6acJDEqeaN0/KnQ3YcE3Y0UGk0O7C+CjWXwP3rllAwOM2nJJwGHI6dP+UtZ9ITd26NoH2KRah26tQmwNjnEZsxfhJi9OQpqwRfVBpp486i/QKk7+x6KU7WLR7rB/7iDWHHxPe6GA53eE76U3jep0xWh77JwjhW6xB/E5jml7HrH0RgfcJsPiBGp8xXuRevYis6BKcCDeQGW6bwoY5Ktyt7o5iUWCAUcwcoRPgbWhC4R4KVYTyiCUBZl51o4WrcR6uRK2UmzleAkt1+jgiU3XKdxim3AcOpFf6f4Z1/xKlAK8x/wOEwUco5E3G6nIkhXwNK6qMUq6Cd/dMN5Hz7OAwbazV0lUMqBohnU3CM5sUBpYcL4LoFHh9ykL3Jd6W6wtZuwFVkx2EvrcuZoqnjBJZ4Eq6MN8j6WrElmKvfowfhbDutxal+7NZwuDmgSUCijV4acIa4gGWlfG7EPPAxXj5Y9zAEHw8F+UeANNzUF1qRuAH8hHI/FjZmm3o5iS5wEtpG8IHYMXCYgYmOyIJgglkWhnIdgyyurVwpEt5lgiSuIiXj2gs6UytAHQIIj5HDQ5tuR0qD/ClFgPIkgZArkITcuKVPWvG0XbFqkdn59BeIsTxynoFtTc/TAUCkJRo238gViLxtJ0ZpQWe+VcGSZcMaqMp7OdcYJEZCDevuoYbFGMxtoK1huvQJJvpiOwhAzOCTIBLQLRhv46ECtyIXd3YQGBhdbrNbQlkzgggmn0r4GLZxpxdCijuYu0iggXmy6Hl8R/YnYBN1dihcwGjFBE6IbDsmHk62eUA4QOyC8Y0SFIIe4n8XIFMnxHoxwrOISRBUAhuoE19GdqSRd8lrT1iawaMxaXbx8gwmYvDZmrEWvzcP0AYAWd3h/SUm5mxOKqnjXMqZFfEJE1zT7E2lsQolghXhduK2JAxRRMVVZ53T3BP+lEjT3lWA7GCe+BhEH0WRQdFMJ8iCqjNPmcFlJFr5prAZURYwbifdrdurRrc49bcXUBXpQT39lcUFyL1qmayUBDobzZ7G8Y8votd1GL/tq8gjG+yPvHXsRheWUvUdsGQPeiNwSyh67oxFhTTF4Gj8cL/lTWIb8D832Kh+lvEuF6l30/Z3voHhP0OoPNr4KEh4dGv96Otgiakw6x2CzxJw9wScU1gzXSDpuQhUYl6iGsKa8lGqziKNbl+DI3fIVj+IkrXDRJ3mO5I9zRjh3juyN1RsFp+G2/5ZeCwy+cBLb/GISHu4lvAwi7CE25UabZyE2XiqoN12n+RlGiZpAMjR5Cw2yvHh7FKDx6RjslCYtUUkORTaMxzKHUrpwgrseUmBS6Ne4vM/QIlLg+CIkIO0DRzGRGnovAAAYbSs01wrTWF7mTHXyxPdv3YYEX3lOyx35WYozgzdgd4kTV4TvCTSpihY6Hm05q8YMQ/AqcwnQynySjwlNwiQsJUeGhyClBdxzjkgIblUgca/Hn+l8uKCRcs0jDvFDC85VkRRINiD0yhreknalNoR0FpvCBbquBnEEebIjgqyGMsPMu9oZ2MBxGgNhYiwI0HDLASTnb37A1guSUOMTX6GYEFF3uqRfdOKKpjcfUFEF/I7RNoY1E1gUQaggHsE0LH/FYAeCpzpn+NoZiNhIE9bNJ50KsZ1jG+PoW4aAbu5x4/jzHFhyJl+ICjwm6nLpZcHHoKEnMQgeN3r3Lh4XbErqeaEyCHuulfpDIWxq077XxFmpoa6DAehXNWxyROxJmvCPoCM3cNzUAMbHgexRr4dMQ0zS/aomOZwiyoQs5aLveVoguECuEAhKua2ILHAlqtgGUWx3OBzxzu24CF7QFzC2I7WNa41QbsVULusT5lXeocC1B4HXMQhftxuaayisVXwpIuRbgBnOFmJIo3c8ThjGtoUUjRPTKaKg8aShMsJyvxDTsU0HjtNpwJTXoM1oKarErQGQSOq6pSQfLwFz3MK1xlJtVG26+oW/urfCN9iOD6RzDnF3FRvkWc52vrWCfA/n1iVjsUG7lsSAW0BcN8TZqDUf9PXKbbCIJfI5j/Omsbv0hh0j3iNe/jvnyK4NKSaTN+g81aBmaBzdr6ox2lRWUGVXyB2XiFF+K7IHAePOMzmZXgCvSZS98mE7oBPPbg2F8QCecMFegF5QCC20g8dxa53sZ9I+6zgTA9QEmM8fducmTdEcXfD06G6Q5trFGXdYuYkUtzCkvcPGivxw4r7lf2lEz1iDkoEIooU6vuc5QtOe4i8VRr9O5jAWtlDxFMY9xukwR5Qgpuh+NnnIaYaY/wzhi6xTtkrvA9tOee/kLCjLdWuesu5XU3/DxCOVl/Kb+6UaR/5X8tfmNb0lOVIlRrVedY7DnWJmtZBjBhVe+PxvUZ/clAruGTNRJZGyfEFYkjlkPAULQfP1m9Cs9hwhGOtTnu4UvtYz8obPhz7t9HL/xSL/kTFspZ32HFcQ3+Y5CZBSNRy1UiWb/e9hR+C8YUiIfI1QS2eIR02iNYB53BkDA2Esj0KTukRJzjcpnSBXa5PMU0tijWGpJYgsH9wMzRhDDNtCV90rYWxwGZOYlKn+kQhLLTCouv2YkB74asLgkGDi1gP6oxrk0fLy7WSuG6hagBYZoWws94QMwcpvaKgWWFplkUpBcviFkhyvwswlyCtWxJR0ZcoVCEJ9/zdIxf0AnJrJRApGdaKmuHu4CBlqYvN+5bIdQNpHvcl5aXgi4HlUFTzJeiXdp2j/Ps5GbGi4WVp+7HsRoqEPYqOPEjg5rtKyHsivlst80a2ri5fTmEqSNbHHDqyZpxLcIAjhOra8UBCbm1TYQrgpwM6gwBOMW6DApzZYS4IYtssmEJownHOYFlGaXLDp5uqWycKGKc3OOSsclqgKtB+QwW1pRxPYUhb9DfXYTyJpbj3mkhfU72agtcvJLrpZvVCYFsim4R4E8QXp/ATM+QdjtM+VV6fAHh1YUo/u9RIV2hq69xLubLrWV6mY2mnhMz+oxyiJ8ReCbeTz9YhcAm1DQ0A9ZQEODIGJIYF1/Ai/8oEO/jPdeQiZSuIPy457UySRPwPYB4P2AsxzDiJdzeNvRQxxVmj0PKLsiSYmHe2FpnO+pi+gG7LYxQPEA3tchmv8AedN/YnKetIruYsDnAlcYGmfBJ+v5jNs5kLFrsTSx+tyVeJ8kgD+1iTR7QDkU16T4C5FUU7NWLOL8IT9RalLh4yIiCxzM8FUI9lHsHurjM+YkvXm5Cwyxeh5YqlCMovIP+mZuW/BAXXqWuLoKKw0VcMgdr5kBRCE2Ta4S+YAWFnzwHDaMJXOI3gJ8pb8ncNsgnNG8QEo1CJoCOH6WWlCxbcK/cDJz9yGUn4vOgRWzwSQGji6DAybQMJKbQihZFI0zjrUzGq5rKzCbeKwplAiflsgoRy9uwjOAg2vMxmc61YlmftmYltXzu7gab2xdsHaAWKbQkVsQ2wI09Ym6kRg+xfi6hWdvtUtoCGCNqR4w+xhycj4LNORmDQuA5Ht3XEOB870ku21eupsfRA6YrfjWiJ0JQDTYJjHVpPKvruFElNrN9PfXJXmVrzoy9wNBosQGlI85FKDvXEBQChZc1Za7vslrc7GdsfKdNp1XlnJmraw9XBCgLMGoI6oB9Bg/NqBWMR4qWfq2KR9cBL5/XXVwRDF96FDmIQqkH3qwxM/hv3ZuWXWyZzL7z4tVFzhmD0Ylw5h7HHgu1GbsuPTcigCWyjPlMsfM2cGelves/3RlhTD9lmCSHG+EKfi1AWmI5FYhy+sB3whg3iIOa9DHb6HpTl0MVUCzB8jIPbbmj6hg3dEa9WI8Y2ilwsz7JNL2Wu/Si+7nA7QfquEbl2HWghntdBO/uBPoMGP05x09tE9N6hZUdNzho9AujTvoSe2lZOvOc6T5HQN2jEv4pfd5grB9i5b3LLru3iWe9hTB4iaH/ZsMDerkfK+gTrLRfYHn06N9C7HXoBvAAU8ck4IShtIJVAeyoJoj9vi7DpVeZm3E0FTM7SVMYzcnltP8SisDkQP3KFWKh5HnZPGCbuS4RKD8ly9sEnq+z28H1AiVDeB32KC76fP/5KVv2cOrNf7B+gb3hSQBw7NoN3LQ5VvEQ2nh+NEzPiVN1sc5/QkaaHAzwgLakIcYzglanwKLEZgW6ZhOEWg4Ym5ySECaMrU17L1/boPSIcaKE/t93HiNRiVPxvJuBksNAIGXCJ2o5sdZyhoBIMLiDiIYKLBNJLkNMmUxhFvi+I2rIKNdi5Q0uuxagRAnX4O9qS0g+vJdpaUhVy7cQioNTWNg4b3hJuz4rw0WdDpd17zLmVoszYSmbvz7iD4/EYCKjxXvbdpQi1EH7Y/bENnzEYkGpXgvP3rSddP2KEIYS1/dL4hD8cagwBt+FhUVtGATQRDKvrBiEp5yTAynA7G5XO4dSLMgrQxw+7Nhkfvf8sffzRayO0t6zwSLsGmvEAQoEBhfpMunXO2yVevG4FJvbybtr+OU31wmEL1n7yIA9Y04hIr1qwq8Rk3FdpT6nAl0loBuYwQRY0EiUTaC5ZfQlmUzdNk12NbXBT5G9IDDsYRw+Swf0B34cK4gxTqBC0DJa4o5pGcYRV86Eayuyao7JcoZwJ2UgiNltmRe4DzlLRwBL1AGhLefAyyLSHJZfoUJCg78G2D21O06JpjtLT6IGCQFniYNHvgVOeT6C04xLy2gFE+WpohavCmaZM8aJIHCnDvdeUiDlCeTuPXuaPv7oQ4Q8RY5MsG38D0aLHTSYaxXB1uY7kwPuJ2/VvXRrAWS7QOaZTKmbzhH5YIfZTsTBjJPUGKuJgAZWxgtYXa4//RS4/owyhjz5+ReIa17jQJJbZApfaufSr8CwlmMcYPEc4p52sMyesMHjn3CQCeZF+irWzGvovusUFN1ic9lvY2rvg++n3HcPInjCM9KgdVekGNNd/Jo1cHgJ+mwB+w00R5tr8pY7pJv+qGOhbMLFHcZ1AO3PgPerUGntYC+UywSa3QSO/4D+2gWKgvnnAaU7bGWx25unfQ9zZY7XOKb+LouNpeESS+G6HALyvLtMn5PE+ID3VWB+DWtD2v0SrqA0555oxgxNJnmghbWOekxRjqRlDv5pOuq9rrDJ5jY7Ydy60oplZF3ox8N1Z+BPT8riW2NuJn7M8pk0kfbduilirn5vW9Iub5TnY+jHAu1NitBzuN8e72VJjKUfbEfuVBQaXOGvMSpaRVpA8DKwU+UehVlUGwNozx5UQxCjjIkET8JUygY7lgkZWjyXMRTtxRUmoBACEPAAQoe2gFT0zjWHEBYOiAlrJ0SZE6e9+A6m5X4DozYT5QQSqV3p7jAhgeCPDGxBrLED/8ED8bIh9wFCKZCCx4Kg37rj1dzgh66cLm9k/mzcXHJETiHe5XF56B1kCCMB7XVmwRtT1Jq/kR0D6VRshIWoALTAtYsG8jmGm42H93mCoNE+rWgdxPIkJZyCxhdIBhXxI8xpij755Xsph5efXSLlmMWTCY5YwgHhu04LyHAPlisYMstTQFhJpWZZFRpaWMLMqF1OQYRQdT0mBTnODCHKXCC6HFaIQhCJwn+e5flQMioz4GjGR/xmeM+YNAoWaTx2ugim5RnuX9kHBF4ijqJSWtCuAm1Vzpb1bGAtf+WtXwFeCEcgNGF/b4YRNGDcr0yywSVfNQTLuhlQBNeSNbFF4m95ymRWXRIGzHPK9TmMXqYubE7cbdE5AM9ZzdCkSzURsN3Q3WxyACgxsicowQf0pVt+SYbGZd7CwriD6/gagWbXd1qaMgaunNSXOrhk+4DkOQLNdXc3YIQ7xHG+CJn8BkLaUMQhhDUCZjXShUvqrsyqCXB3LYjvsVyaN65SV2YWFWXCfY93nnPKE/v1M451kgovkVUtkWSoE7O6rxKDbtzx90NWZjw5wkoiVtsiHnv1Yjt9hWVa1usNwflTYrZ//riPkF2mv+6TpafrKyjPV7AkicFT6I1bDfPVyQoaH5OePEkKagS3ZADpK85cPAu3uItFrGGFB8Y8+9Hj4/TibfKY8FAZQVWhGFRrrA888nS2QeZy1I/gCryLQASHKlFIh8/UexFbmxOPHELcCk6eigXZJRURCqnV3sQyJxHDISXWcWbEDsHEPwmOn/gD8IMxzgSXDEFAn2vMKf5iwTDBbI4yPV3BKBlvyyDcawf8z8SBbA4QfHEvY4s+aS0jcK75jILSeFJIXe5QBsGOwdTu0+Miy3Al+U6wGtvR+qOVIGYuBQMoru3Hew0C4gLTkIjGZJ9upurpXrpCqvw5pRwNsnMKEjlCt8ioX5RMqB1pW4aRafsE9mcsbyH1h0DEJAaxMqnzExkuMXGkWkzOVR9e5AANCJOlDATkVQoKNYZBmwg3njXQHq4g8IpYnYyNtWG8KKr2jTVxL98KNPbsgulleIoDl5jY2WW+C8EBJqGGBcwwR6i471RYcADXfexXPLsyFoX7YLDcU2xC0MEsxjbCsmMeUbCJZaXVY6GmBZfTIhaYQow4Tghr6oLc5kVcuuazgLUhRSqQnLPn0CnQFDp5tEQRAZrjr9/PrftjjZsWdaxXY67CJTKSjNG1ji41qvByqdYCF1CFY0xOzJshNnNpEDlndhgczqZsRMkcrJlzLZoKvaELiitlMiGHlTahrRyWmnGSSoGoD4I2Fu0zvzXiZqzWTDO2mNaq8pTrh1z/zGVMI/bJL9XTFuy9gRVXpC+X8VwGPiWYWCbtgCc8ozi5eAL31VjE22IXCePSBbIzG6iEKZnTMYLMveYveOwc9NBjjjm+d5eQCwgOigYIlFOPx7OnWMSXqK26wWk8I7yLU3ykQxT+j58SOH3OIS+X6un2netpHbfX5WgnxJE+Jd72MYek/pC1rEgQrINKukP863UygyoOT1SWLl0oXQU/TcaU1TyqniheAG6ucZSKtZJUouIpLGtJkzlbld8nW+jODipJl5oZN22SdR8hkC9vMB7vRQRrTJxy8MqEeXdNVNGe/FpzzCaceF7lG9vn0O4A3Lgd+fYVTpi+uJFOcP3Xr2yhNNXkCgQAEGQAU+g+RYwjAlN+yUCZHGwCP0PkwYQZY8pEWjoG2H65RQlNyrgRbKRxMyKyGmMKQUdztMfgJDvuM3ZiKtRz7aBunoXQuUc3mkfpnuv8VzDxkQuKPP45Lj4aM7PA0eUOvUcPubKGn47LQDsfdRdpp0tqlCrdv+FYoNfvT9NdjueezNukuh8hsL6Xhpfvptzlm2lAQDYqvhw7AsfgNfCHuegb4tP9mVG0uP3Vb6X0sydcywr3PLDUbW7AecDOiYK2tDHbTV8Y7qcfk1mzWM+N+kJwYEXE3tVORmHgrICrjCjM+BJYAjFNacCuwFkiCDIhzZzFC/f7LIMKfBjEF6JhwQK3PM8oeD1nUWGjcIxiRfEHgUVsLNw254iAQZBZIiBuAGVYrCHAaVP8GDsU2FqRzi/LRqpUSE0DFwWeGU/dXAP5S+vE0OLIRdpzooyN0okiVkYO3IceC/fBTGT2nBaaTCGtxLY7jC/qyXjajRyXCAjJ3Jia8yl4JiBjLwCHAodWCDuZ0PVsCkSVrevvrP5XQLkfmZ9d1J7jpVK0BMeYpQv2l3CpR095WO4U/JtG1wqK3TQ5EGQxIGmP5WaQ/wkuiycDRYaUe6xxymEhzrHMilhxRYRcnnHN+JzjKKwlyYVGcx13tsDWLzvQGUITBSGRe2SX411nHew2buIF5qdVUifcIIXfp53nxKKed7vpwWN2iyU50X+llb6KNXn75jXq7Vi50LyWHlFU8AyX87NjrMbtBkWhs/T37tAC+O/tP2fFBNuRI7zq7L3v4SBz2jOOyMKAwPeuwXJwjYwGBwAYGLj6Y0xZCQV0sbFAjhjkSouV8Sq03KjTLY9+/uGj9Oh5B5yU0isvXAAe8Bx0MMTKOqUQ2yB8jXq2PAXjrY1tLCcENH2pKFzSVQJ3Ew5Oce1rlZKVJu6+ykjxOSEiPwT/82OSNgJEolOoKBDAeAiCCHpDKEoMrkKk/pfwZGSsDwsTFROasFwOgURwN3OTfEZEQzCYzVk8KKAQklvf1iJQyyNkNOMOmpMKPy0E3TLFo4PNyDfrN4ieW7iZfuife80ihGCEOE+P9tPBD/8mVbZugpAZxYG59K+ez9J9gonHSPkJjPbffzZJf3+bQjw0VhnmafQfp/TwaepuXk7HFNG6Ds+1WlWYqsfmfrpPIWQkYmI8K9LFJQpKf3PrSXrzQo2F46v006fz9HsvtNO7LFeyhoXhR9altjpJL/L6PvOjuYCbwkc4K2wD3s5XyDp3YGY80NlqaXhN69J5ByMrzGg9u8PLtgPjynTAQy0mjrRQlSs6UjJtuMq2E+Y08IIQHaT30CXz4xoaVQvRUgZH5C0qC2+K9/G4jCVGwAttiR3/i38RFus2mU+MSyAwFgWPcRtug3GYH9oTIPOB9zCIW2sXqwpt6BDtq1uYI8BehCmEi1YeOjzGlINoo8CSMWhR0wqEjgus8NY9ZayCMSxRmFRhI7NKWxkt8p57HY2V5x5tVRQ3wkk4IMSUISusqdIchsJfmkIL1s3lsHpmlHwUSSLozQnbBYuvV5Z8MB5DG56VuJhQJ8YKh3z/GOWGNR4vqs3pL21dSit20Hh3H6tGKDK2TQ7ieJUi2bsk2C6Rto+4K/Nwg8sHxKPun4zSHic2zUgQrJeG6UsvXEvbl7+QHij4GecDlj79AmHSOcb6xBXdpmzkjS+8kq0eMFYLEju7u+nw6TNO72FXFMoyxL/WvGESEzSoGCCJNQodaOF4xZCFRkrRKDzjMY5kxthgO0Ij5ShXGBOcdweIg71B+ovjx+mN2xyY6jZH1H6lPIXRCO7GtTVWwaDgzuolpRXXzzL6CJucK8UwDlg3vH35CrRIyEJa5l7DCcZEN1lOJu6irMHMk7GjICoJnJeBz8gESKBqdIlEzRbakeyYxECRz5jPEm+R+yUMtbUuV/YsxCwweFbOkK6DmSQStLwBPZdeaF3pOinAvF2iMQkQiyUZdZQbnDFYxFuwBCxKLJD+9XNk5wC0wWDQxvqwefoR/t+ff4h2wsJ4DfgRTg5C3YI4/oy9y4fHpLVxV4ALbWCNfXofnQcSed6c1RVez3lZwuC4bReSS9euv5S+zzFd/9UtlhC4O0B3kJ4QI7jNas932e5E508Ol7EtSDWWE/MW+vz42yvWv8mQMgpPhKBXQImHKDZkXtoviHXJJ+7NxBHw4IFINcv4fgBgGXRtS3xlAiswSocKnKgmZgyh1XWrHJfSEEaLmBdcGEqL563PAoH8hwm5rqluYV/EFUWODfoo90WiAwJzNlagu9sEphauowzFs7wi1gk8rKAPaNCeJGG7njIeYQcatGxGYXb+2cNaFQZa8MbfPKUH8DB5hVXWlnSokJtyUs6KPpdU1xtL9WSiBW7EDNeooDuKZRyEBYKXML9bU0dfxGCkSbeLFr+uX40MmbSBNbYgOaPCLeBKsuAzdu2Qk4yd6SprGcw5VXneZdE5FsKAjGUXC+wE2j4iWL+LkLu20U4bWy2W/WDNdHfSd8guXpx10q011iluuyuKgp2yChI5nxygYNkh9N4e7uHecboBId7Ybqfbr76Y1i5eTaPmNnvet3ETrc9CkDP2DRIDF+Q9+NjYnIdrVMjyCuQJLq7nTr7wxpvpNmN6+vAeVg/nBBAPchcOtmvhEBpvhZfATo/wgGcDCGZpd8n8O6wSwNYM3gb7KG5qt9xJV/yg+C+xhKmI5fWMOqy1zU2sqW3q8WgffJSxTGvE3MKdROC4NlIlANTtgGJSk2ZaWsA+cB/opX9lhrQO/sAFX3ODfhQX5SW/luyUGcFsfM7iMUwDkwcZFvj2jZ3bQha/sikbBMGKbOgAOysr2gNgfuczmryhARmAdTvepwCMPiQ6pKi6O9qE2FTMWnFaB5mQc36s5YLQ4kh6BJ4Czh0AuAGAKgSYCz0apD/h/ZjnL6MOYitjEDvj+THP3IIoi/hoLuoOFwqrKle9CEOoW/hheHN8UpQH2lrGtX2HjJlL2ptGECOcZMv4HZOWkq6j1iY0zHAQyBCrd7mLYmgLmZzno2SCMXsvTwbSA958ljFiBLglLnNy6QXNxXh8nKHYOEQafzIhJ1yBl3gTfjKdbnbE7bgWsT3u8cfge5Sa0ECUjNCbeJFwePTsx/d8f/ZJFMZXtMnbgA90TGdnJMWzaks+xsurQZzey8PhQjIPrR53XDXbGf1BelHuwGe7B9TxnL0FDhwGL5MmkVhQeNoP2d+y5iptW9SZw11wDV4W/wAOXBdm4sWG7c8n3WO+AIPSJLCRbsCmg+ZvMAXXaTSUXoGYit8bHuBLVgRw2AaFr7kq6/mglfkppxfLsAipo84hFv1W7Ezyk589QnBW0iHW4ZRsS5ssl2sl1hAYL8576XVcshsNrKomtVLG3+CXLnV7P99FQFEg+PBwlCY7A87knKav372Urv3619P6tVsIqM3Upf9dxs/JeEFPLke6Dh0xvAxiMoywP5vHlOPZ/KDuaTGONsW+8uH2BZIOPOcuE4fUFLp104zTjCYU3BaNLUqBmFclY4iMu8wecDUKUlfUtbmkzix8DatSXJgJHgPvcZUzNtfaqchGlW7TZJ2P5xZquy6phSvAC2E1IWh0nUO5MhbxHoXn0EIZ2ucTOBHmMQnoQWwxDe5VQWkVYiphZvOFcSPjAR6V7p7pSgzxifnBrRAc7eiqFZCOOU5EmU/W0JiwB98rSQ3yup+6/jikyWV+B+HzNCPLAq8SB9kyBRuCx5Odo4CSMeiKOGQdTb/mCfpn0nKi30C9tlzClTTFHQWN9Be7PXKLbVqm4JjnCCq1tHGJY15rMRFRASx4bzEhw4SAGRufhZEcXwABik1mG8BUSZVpV4IXCvHP9CLCTGtO80jzGoUUY5c5I3gLy7jzYsCG94QlQAjCie/P93rKtuHNBLZWhNZVCGuFNHM0Vqjl61iciyYzF+kTtQJctSwzhcGzPG978c/JMD/nJsQcg6sVFNohPPhs0W0E5YljCN8CiYWcdMB30QX3hkDjgwJPRRZt+dt7HC9z4ik+0wX4CCJk3MIxzHzpx/t8nqELYmbC0BgHoIm6JMeohoXArWiLI9h1F/jsmlEJPYQKVpqLcyPQirKhO96DO1w2D0kIQe+aSe6bsJdKgcW4niq9rLJBIrETlzZNPbpNi4/gvNsWaRGoPDw8RFfUjeZ0Ca05su4rt2TxP8F6z1gsUwLAYsW02H1CwJiTgVg328F6O2TtyXO+2iR+9sbdq2lx/WYqYr1dBodjLJcN+vzidiHdJVlwHSKosC5RN7RDkOgDjqp7cEKhJisvDrHYtyqd9Pq1Vrrx1RfS1s27UcPXq23g8lVYdkSGUdqEvtdVrvCFLByGAzCFHIATNC9d8FkBzB+hzfUM+OJC2q6W8T25NKGcw51Gp4+fyorpzW98JVU3OGgN4EpLDz/8JC0efsLe8JsYH430hKJf98RS2LlPvwu6G8DV8osGsbRLVy7Ejh7SvTzg9jbihgHEmEAXP9JkxoeBQ645phBIvI97oIks4cbdPK4HIg3yrQ2k4ikAdutbzT9rcBQYsdsgJqKaKkwdxbhP898DGgzmCkB93iiDQHNrWih8DEwzJv4DIPpR01nFaozFzjNBpqBBcODWlbQF4Xg3EwtrhSdVoEpemon+BXUEcxF2sAHXHSXf2673GXeCEdx7fY7wlCE1lQ0eBgL5HUdwg1BdKYHkf8WjI+VRPnpBi0YXJL6kfdrgarYdTPZX4SBXSySSDUONJ0WDsTRdPXeC8Ec2jhgMws0tlh2L3CYsXASaZRJtN2NkhUU2YubioPjvUxHzEpg8K1LD5eNzFmfgEdqmCW8O5cAv4CEQjdPJ9M7H9rA6QYZ0FHEsL/GNROWzIQDB4xJNHopEYkNgi++olg8FIe4UnGhYlQwlEOIrmMQhQBchtKRIhRuCNwjOIdBeCGZhZJcKRO4vICzFdpQ/+Awv79NKFFs8GDALV1FLS1oCR9KL12zaWJl3izNpUhoJuIBTb4gxh3ub4U14iT+Fq3YFtQK0SfAX9oztwNmpoIQg+f+JetMYSZP0vi+yqjKrKuuu6qrq6vuae2YP7nK5s+SSWlESRRGQLB6WbAO+BAG2YRjQB0L+YMCwAH0y/MkyDNMwYIAGJMqAbVigRXJJe8kld0kul9ydndmZ2ememb676+q6qzIrD/9+/6iisjsrM9833ognniueeOKJJ04218vRJoqKaefTDdLzXLtSLhK9/+jxJ+UFiRmbFwnAJDr84TsfIaRDTlwmowgxbW3mpZ9ZYAsNAURTM9M4zclEgJ/p/Q3O0ySDwf11UnEXjiC71Cxf/smb5cKVt0tr9Wo5ml0uT1mJNP4KQ57ZggrElTeQjPKSYvb3L1/SUDqxauZAn7mONKdAWIgvGg6xusWLN/g9wVYmF1qO8MniYkIJ0Rj0rM8zKFPuAL5VnmcW8ClyUrqWpXLqanHLAZWj7VuEeZhUECEkbKcO4MqkMmidNBnejD4QFpjPpmgymWHC0NDOjFkOqIFZ4gBJDB0qSHwnV3RT4XZwdYU+yODMX5XVTMMQOlfBID+PasaBFAjqETyOEo6ubq5M/BKPhmupx2VPnbhUE8FAP9ASyhAgGDT5zojnSg2fJuBrMUqGBIxqwVJ6SDGeqZaFJr0dcepR57mJtQJQE+y59ccO8TWBmTmBhMYzJYDYsq6dd3QHSAHk02/1U9xUlreU9yU+PhsZXyUThNFBhcRH7Bj9c5k+Dn/qyQ58rItq3tKWzwJfLDgeymZQFLP1uxjgTvgESQo7SsAVPVMdOxpmT1dg4DtNqdQSTY4idnuKFoooGnJOn6tyGnIqsCEmY+ATRL6Ib6edNfkddUFfs03MsaR/cIJiBr85XAOYMtWUUMBtfI3xO0NGX8ChTWjNWz+Ug8YINOuJbGETH5TvOeqLc+GGJ2rYAfe4prIy+6pWo6ttTg0TCY+WiyWGYtP3KT2yiKKiQ3D0tcWSAzdBe/rMdz8VQLmetjQPVHQq88ovWL8Mth5bpzUwCmwdA2JZqRsbm0fgWOFC2MQXZpUdwGqHzjjHR8yG++J52UMwe0dbZZ2TY+4xTRtgRZh0pdeYKq+xIGCOthHCES4yQDbxBy3jLL9F/vF5PJ6X9OngqGYhGLqX8pBl/48fbeE4Z+uOCzasZF9aPC2/8PnL5eL1z5fJtWulM3+xbLVm2cRs9Dn8DnyumLuyLE9JT3lUS0TFHuxDK/5LlOBELDmjsD9Uga6uql7Z1tJR+EOQ/GX2Ad0OWSX8mL2ay+S2/5Pvvkt8omgEj9ktAE5YdNrs7GJfLbOpfIIcanu4kShEXca8tQkVmaZMm839TfSIx+1FbiMktTlQwIu/wgNc51Z+lJDXHJR4yyeZkaUPXIPHYoxI2/TfnukpQXPbFwsYQS6TBCZ6PYDRRJXbScNMdLzF9eRpppD5ksKcMPso0b2iROvE0VZnu1OJtBIB9q6v2gVYGMQCGJdpNcLt3dg8Z8pKIqku7YNClTxBKDr/eaESDEXAfYWLfsOE1JHyMK5NSlh+S2gd+REM6rfzgmf/BIIeRuCCUK7mPkVoXeM7z6m8ai94ym4EJpCtHwXEIhsoCq7LUQokbwXVaPccXaQyVxgRFJfYUxf39MEIYwQRBnThQsvEpG9jcH2fzboJiRAWymdQkLGEikpCpeCSKxJeCwhhHTCdGWPD8YKrXdRjDNhnFomInhsv75vVhjYFQobW8jQAXcs0jMUt+y4j1WkFv1B6oA4lULFjHi1zGlXlAlwqDeDLqqqaJXREWOyoiswaxT2CHmtJS4DroQYdSTGey0IF9xyY5CIHSJW1y+gC7LNaUjrpFU75QmfzuWCnJtoJTimvQhth5WrAIsgAQXMhYZx+tVjVG2w9L4ONZ+UUi+qYqZ7TvO8TgPn6pXY5pM4PiVS/RvyTsVxXmEYdExu08+RpubNCPjf2xt0mi8NF3DbucJh1MCCQ8x7bXZ4SKPm9FygG6P8JfqkfW+iWN5bZwvL2W2X68nUiVS+VLaZ8D9k+tSPtAbbFYIanKS+pKx/bF3HufRBI36FrSpz3TxkRF2BPHIKbqHjxQjktbePadjdIzQMfuaXJxADKyvrTp2xlm6Va8En5EaZ5yrcpX3ThHKK40EmlsU9mWzzzDoBOiCbAxSxW4xQhHgZ1zpLA0bi3TM+hppVHXimvTNiWg4dnYHIXg4VYuMrwggyMtEG7OYSG+yY04Apv+wI/2HXKG4ztCiUX6TIMoGDGAWxZ3xDaziSmCuI5t7USb0UZqdDcRBaEoUbC+PwEgMqGYZ0AZQfkIKciMqwXRXKa4lOm01rSpwQQme6EG7keZNK0SFRYKoFAIOXM9y1UJsLXIdhHy49CaVevAm6gE2aQJRD8VykDRtrxjjUoGm4AlVHCHPW2TwXhqiye4iovGtRqCufwTA4iDa40l5nDoxw6cZIxbYZhh8z57bfPZ6XNtqGCloxEjkXkaA8ziBMtVzNDSm2MhfriGa0CcwrFD4S57kZULmBacg0i2xOftxfZ7sJ3Mz++4Ow3Fer67l7Z/ePH5aWXrhLjc6n2H1zY31BCZWO3VH58elVyhE6uQDCFD/Mh7OLSBQsZSuUYJcXz8QmmD3wHN46SsZQkIm/binVEHVqtmXKmfeGotPG6P2Ty1E1ZN8lWhSUJKeiLPnvOZZ9N0LHandyJH+nvp8WAP7nsgcOI7jahJ8On95P7f4u9ik5znrF5/QVCpIA/66JAUGgfPjotK8tT5XOvrpYu/qsem7JvkbZmlq1JzeWxchPH+KLnviMXWth7KLlv3CfLBNr+vU0i74mOJ4siU75h+cpP3yor126UsQtXiaRfLvfH2mzdQQEzsBiSYWJGMHOGK+oUaGkI/PKdv/zmF3lUAZYV5UbpIZ387mW/V7z7AzmCj7axpP7lr//v9I/FApTQc0MgOGhl+cYt9ia2iZfC8qVut+Q4KxAece8OkM1dDkQ+eIpVyYomVmXbaS+pYa6QA3/LAFwGDVtV9uNmoM1q0fG7MhGwAR/FAif12xhhZgBf+Um5rsJ61lOuC7t8I4vLZ87Dgi8ZNc46IeZ/RtOU/zcIi/Mbm4mZEPdpFgbSrO4TVq+/QAaHUmEug0obqMH6D6DkPeGJCoMJ+RHFSPGckMyjWmOu4kg0S9onbvuNvyDAy7wy2kMh/RvJQ+9F2geUOtJT3INN9e1klOG2z2I4kA9a4QMqlKICaO0R7HyzPdGqoqUyWwbOM3zzmytIrnjQHyciOqQXEZnC3Le/wKGSPhdON31qiMgAmrqoLWqF+eiYUe1WdOriAPgyHqfPlMK+qqwyxTmzkhJ74mBBXeJR2IbgPTiFGTOino1c6YAltGBwXrcYCU3y3XH/H8xo/quDi5fLUyxpc2lp1scMhzkTDZ96wIL49Fpw6yASjAAdX2QyEG6uMX0K4ohuUwC6pr/Qk++ZGmi1BdfcoKD4lU+SisaqwGmsTWiW1WL6KfFVclZp1fziU8x5hbeKiF/SQvgS1wXvCG8vU3U+aUN21v/TQNkcs8I1+fwhymmPrX+H5ZjtOHvEL62+/kq5936fjc34laDRFfYUXrm0VMYJe5kjsWIbi2uJRZbLxHhNt3fZML9DiEK7TC+3yx743HBfHnv2/vw50ezAfo94v+uNI06yIWaKLAevfulzZXj5dukzODzG2b1FmQPaGcG52oKG5ntyQACNlevsMO+gLIjlN+XlLa9H2VPSvgU/uVzrcNYRy/MMf2Iu0y2YdBQeePuv/1UWCnZJ93JCxgmCClD2J+xSOGKPpWWFwYUsIg2j8NQhTvG//agqoGm2Jul6UPmbRWGbTKzj81OwFyuIlBP/WsQqn/AvfBIfFrVnOmpfZXspSd3mO9OSrlSmDb4LL5UJTt7O7JwySX9xooRCUwVF7VVHChlChkxFVKI57svRTb+TI2hlGbVjdZaGawEwUxrbE8k8o1NVhIcqNsY1VxC0DEwHnEA0emGuc1cnWLH2IZiXOmRIP+lAVryA3SOOsmqHFtJYUqZtKNaeFoaNYmWZMygklRu4CDrCEDGwKFMVIEKX0UEcgRKKipCzKgO/nKFydMpl5DNF8rYCq1ZIfca5lfCaPnlA/mw6ESLJQLYlGsydpUB7QAeOFKaRLmogmDgx3YJyigLjaQpQH4rDrKpuo9GqGbq9hnLuU9S6FJEqi/jOsLr0gwmOysG+BmZo6MjpqDRrdDLv6SGJ/nqkbjvYDQ1GwHusHRRfQhCgVSwmmU4MSEfoo3OdksGTK352nlYrfVUKOnylP232UZZx0vNsUgulOB1HOSuWdcpIewLMFEimjh9UDcz3KHz6xq8zHuA5GKNacNYDjWAQ4XLgjMLG/2cO/uwtBUcN+je7u1l6jx+wpeMY4SLNzPYGe/3YlAx/jGAF3WLP3fQ6x7hD+wmCQmeY7nVZ3h/lQIovkNxwFvgvtsiEcHqfg1BMA80+NrB8l9RBd0mlcJcNxO8xrb7NXr8T9hJOnOyUvzHXKbOXbpZb13+i7KOkdmdXyiM2YW/BeAafmt6atUx7FlnRZSHNMnByWZTIO5YQ93Kc1ne9LkW8xkvmky4pIyXALL+zaAViKx+II2ri7Wbxl165E3lTUVlW3tl6vl4+uvsB5waQEQMLUwtJPBti5KqqfDjvdbbPqPTGwHObsIUmU0D3ZE7gzzPThxlMA6vtAaOzJesxHEp6nr9clAq9kRU74uq4dAwfcy//6JNPOGh5voBuB4rAS9Trb9FVmcjKMb1Egvig0jxK4Whu27BDYFmVNcaw23C3v8xsw1zVJxW+o0UFwB+IWaJTnXuriNIZANJyUAxMx2q0ceJ0eF4Bz+iuMkCh8FSIBu4izAaceqiDR1efslqhoDiv1Sls8jD3h0WBUbxG7QJtEEN99FwkeZCjSjCYEHPApgXFF1YFMVf55kt/kOzAhC7PeTSVXm4Zvp4/qBJxdEH5Uq8EEds5jIDRBi4AdygT5nWatFpgKoSYzAihG1ytjyIoIeBTYBVsaKAqNARE2lIRsnxGF/uik8mrwm2b1K3ujfK0W75z1WcqQ0M6ppn8sW4+zpP3RTwoQxX0lFfahh5cyLI516VuRnfwK4ypO7i0vzVQWH4JBAoYDWT/I7DWIYBrPFcbqXX1wZttqYRVdCnn/Fec02+3n4wRTqDvKfepV3iyGsmjDpWnKEdH5nEspIn97dIicPPo8UOS1+0zjdkv9zdRzGxdOYXp3+UknGnM1En8WNNkJRhhG9ZHnN3YQThnSM3yMtbmLKEH17rPygq54KdRUhfmZ7F+2ddGQOf/9zHbnBmQ3jskJQyhEIvQaQqH+8Rgr/ytG2tl+srny+r1O2WTHGs/JOHdOjTq0BenPh6vJc7lACgW+qhIqvvF3yJZrIov/okavtc3l3l5zb7WYtInQ5cohP/lCb5Qje9zReVNL9UFD25RiS4VJ79Osdso6QWU8z7weWCKEehaSR4n5yYoQ55a7DlsgasW0+Ex5H2iPZUNyVMoKmU5q/vUZUZdrSthrO6dKofCJqkDF/ifgOdlw3q38kKm8Fzh8cpbFPeL/feLrCVeVGhIDEJOB+KY5Ka/bCAxQDCj2jqjrozIA2JO4cY1w3f9M/wWAhSYZcOYTGukgS9X7XgwRInlRXnbUoijpGi7y3djqGwnCo36zWCgEnIJG+qkDm0pFU71H/HJLfWYBBmlcOKZaJgWbDqd9Lui4hV9cEGocAoXd+yVDTjKaYGp/CytQChGPuh12SPMgoIgOa+GKNdBu4qC+/wHdorz1kfniCDssd5gkpyEkvJaFzAebwkUi4I2dMwbsR9FSm06mRuMbphXtEY71BH1nXYF2UZ9V2dovgOgcMg41akvA3ElXeUPhLUv0qEeYEq54CFPgQGw5X2+1er9JoYyrHENRV+5jefgGeoWR1VP0zaw1Bd0BC/SRgtPIbBemnWEjELjMQYw6rXP3HeV2iHSg3jTDi9a0NsAAEAASURBVHmsdM5KO+s1TUwc6+ISek8waJkypr/xvIyystfnDMiHJKjbIf5pH2XRW1kl+HeqPH5MOmf2rb2OgHVJQTNNrIAn7bSYWXzmykLZ+4Rp3uiLcm30sIwtj5QLOJObKjSE83uPD8r952TXAPDv7g2SsdPMDQ/IMX+TE11/9uVrpbF6q0wsXynPphbJ+z5FoAJ8QHlP784J3nRUHNazEcAv14NcykktZSB+PnBRaW+H5VWHN8pKP3kQBGYzcugvXcED/xxUzxhTxFI3tVI+03kRbhkIVFO9eA8YkF03QGtteVyZ+xsziILbuE2kqpaDPmpXp42IR6YtQ2tpTh2RQR74TS2E3uc+tOa6tBbuhObYGX/LW/mrqsqF8GWCws+uexm2iQ4QDsEX916TH21biaBhG6zWh+IuGyaIj28RSIrFVgI5YWRRyZSFgQaLrDbvXqMhAXhDduAzceOtMEgMwRSxfNCiigC8gECQIZEURBDhJ2gJolQMsq8MLKGFyFGWP3xPbfntPjGJYdCc3w1HUFAHpOJwJa2SVLKmBu6ffQcmmWMcIfFUEnOBx5GttrE09ZnhM2VgArLMBj/pgGUAUHM+IwdggbrUrbNSX7vZTSWc5TXT9fNxJQLsNRWGVqSUjcKSaSkjdKIrpwXxBTB40z+JZX0+Z10QBcLVaSHwhBWsg75wm4eoW6CsDA3lZmO/x8x2ih8OgCkp51ceyL9YpgqCj/l8MOdHfdaAXAVORrcNrWhAy7Pnn8JZe+JjXg0I/AhX5RndAVxNOeu2T0kLzaDlYsEoI7zbhYYGfwo/dJKabn0ZwZI6IohxHL/UPj6mjf2j8oypsyeRb9LPU/xzU9Dhs8Q/7bDx9h78cAEtubhHhgmS15HopEyzKnid7SyXh4/YaEtyOA/QhQelm3mkfu+DfQ7z5RxMVvz2SOHcwjf21jgZTl88KG+8cad85fNvlRE2zHcJR/hkjAymQKf8TLgqK+6BvQONzheQRJK0De2AQDmwjC/prjzYw3+TVhx6WAYGkAfP3TI+yv88721HCn1/GgVV2dmKVYM7CCsdNQ5yviDtxPKigJlnR1id7BL42UKJNznX0T205kfjKWiETLCSaIxdXAU6r7lvgK+Hpno2gRZV9mNmmgbngHMHP/2H9ilWFvWcr1rLF9mEDlCBXdhw3Wh8ZCEOuCxTsQI+qE9lpaWuPKplUoeR6fADiEDY6Jz76Wp+bpHAmB6BADEIjqOg4fHeVzK85yGkXADhtUElVsKMYGafj76JZ1IQgGaUqZCDtCt85qNiTgAwTtEElrqpKVaVv+08v/malyzuP8iBHHIHopg1wPALn7ZOLRnoEUS7fVYN6/M1mJApH71Wibr7+xPcTcoeCTuSTbK2YlVERpOBsg/DnpL+hHkEGzr5jdI0qFArIVDwrNhX6P1qWzKadaojVCuEraWM5qxpbe1R+qDQ+l/msj6IQtVckrEpRSUuA8tkKlr7bvqWWEzgRGWpZZKVWegiYyYqnOa0ErWkMsJJW35LoOCf6auWnFPZOsqCcTpkdginuiknYLyEy6/2ya9OJbSs3OGggBmT088AUQs4xChEPMF/voMVYZBvbIt5XumjhOybOIiZDtwiTwWpNZb+Ur97SyfxB06Ye2p7k0UCYphebJQ9clxt4A/cZ7r9COf1CRt/TXJ4gA+WpJ+cxkI+Jnjs2/c2yg2O/nrj6iR5/jfINEsjn3xQlldnyp0bLNfjRCb3XJRUF/75zQ/3CwkRwAXbZXDfuLq6TPBn4/BFmZkfKT/96i00209huV0pm+3F8oA8xSQXzdA8Lb2ghXsd7Za9C8bgM7/lD7SsWDxDqIzDS7qafTXWudeCdGkpxyBL1OGJVrl1Tgw+hwwecpL8YxmVujIRqaa8MhjrOc8CB3QIEeEh90B2sVC1kMexPJvHBFsjx0OmvwKrHJpd1zAWM8ZOkHdsnDisJhl92wScTqC4jM/Tx9RyZwKfCT7nMwMw9Sq38jHVRY4z7bXr/Fa5xlIXIBHEO5ZiWuYZ7mdmB4/WQdFK1E/4vvv6gQDM4D79Qz1HKwilAHFINrsh0LYUdpc8LYM8nMWMggb7cSWdtoviQyS5iuYKos8qsgqZUzsb5E8cek02T+p87k2AILQ450GRI6gdgttRi/ZQZrE6+BHE04CdUOtGgrBBE8FLWxFW59DAFM1MS5rMxno8h6mvs4M8lk6UpnN4M5IWHK+j5fPz5KRe+mx5v7WQlTMPWzh9gYDodCQBm9kWTwj2G2xtQcSZMmBPluYy6w20R10KO1oplgD1iwPhy/5L+qtwird0Clr4ipVCGWOjnNc2FWCfszxlhR2TM1ZnYrm4k37B1Tp+FQ6jk2tTKjbqgYZecMQy1MNpiUdgmWrFAdKXzO1CiNug9AVZZ+KgqBeZR2mdwSGp7KMN8KyWV6a/PK81oHQlgwHlrFqaqYhVOuLW/tZx1E/Aor0+4QPmX6eKMKfV+CMBhDC6NPYk7gbhARMcJdfgTMLWzlbpcJah22D2mJbs0NgBpoOnrKyHr0bKRRRPhJb+O7ovArPW2i0U11sDfFmbnfJlzrO8QwrrPilXzBLbJhxBv+MfPtwvdzkGbIl0Jg84ol7BH6feqyxyPN15XN567Ua5+PaXy9HS1bIzs0L+9tmEI7gSzpCG70v4edN3emmH8q0OKv6uV4MFymWhhNLqpPSf0ud4qHxTcR43S2TS+qxfCQNm+qZM5CH6Kn2yo0Faq/h5xrbkL+tVVvyuYquDgtcMveGN/Km0usiyb4OQB4z0sp5Bp4YJubfWOh19M2gCNy3GHRJjgD4JkwOkPkkDduUBlZNWX3zH4FQFpX5xZiH8Lp6ZRYJbXBfGiqjwJ711C5WwR/7Tf8op29Zr5ZruVJOHuV8LygB22KkWZZzBxFSEyQXQALT+kNQbIhbmzl5AyvfxDeiQDpr4DCkpX5lfJAMsguFSvoiKNUAn7ahTjhwUSntOubS0MPJ5K6a0gaCa0lgFpcKkUWCms1xXcCRThJ2yW8DyVTIzLJFN7RvbampJTmwJCuY+Rzv92k9Mli9fYz/VyEH517OfLeuTl8sqwm1GgVGEpbm3U3qLq+UlTOBDln/X731c9h98TNqQvZjCMpF4lp7jPOMIYRriDm/tRIlRA2NpW7zQvknLnNpG2ClvBLl75rJAkdHZQUCOqYzuCdxOCbUYJYAEpCoYn3Je44e/7TzfwAu48cdAZ78Fq5X1l8qQorEEUFZ+egSXU3kZCQLUVSTgAolpz8odnEzCJxMZetJnqqCS7aMMGz2ixvmuhanyy0ohjcqAad++8FtLeZrl7w6bY61b5eQCTFL38L1FCME4S+4NVvI6zx9lUeUAy2ofxeO7o7UGj33EimmXEPIFfEwtpi+eHLxI4v5NBr0BicNfh99aOMKvXJopt90tsvUkB8VeZ8PvJO1pBXzn2VH5YKNblgmofZ/zGc268JCI9mucKvPp1otyk+DOn3r1GrR/uxwvXC53J+bJ2kFsFrhtgauJrO3aP3mUvoIueVC881H/2n/fkpKbSEj+ORUzpEfr2CfCk+I6/xkWUpmCqreSQvnvNy0SaCD/IOgqiRSl/ljV4tQqoWH0C8+FPymX694HVy7SaHdIK4W/wiaNICn9U6lZE+yR+07hJkgsmEh28G0ku5uXgSQKT2WdxSStvVRjh7X24Q/aikuA9hyUtKZVruELfvqKQgNmlZNwa5zbn+yIEHKe0+CJAqcvLtJxDBwVUzJIkfXAhBthGwy5NtQzlw2I9jBEuSwjIg+LeM1CTUn9NqJI68vRzcht7SsVSpUoCEvn1LRuCTCJ2xAHnUjyyHpHdjcTa3Gccs1TObI9iDZUWohSkOxY75Jr8meBANPTSIAgnt9O2ZzueGoyC0DlFfwULy2OlO9s0x8i8WVwJiZ5XeLBJVaS1oez5REJzWY1ce0/bY+zMjXBIRJddqWP4rAda8+XheWL5f4sR57/639FPqw1kKo1okVRRyOA4GmZrjKJMAF+RLYqA7NSVnSIO/EojWValZ1WSB7g+aATfDQw4zzdJoRlChtHK/Uaw+lICWlpUSa0TWiC+RPfnY5S3jpN3W6FmFN3EMWDYpHS1HEK7t0ipNk0gmJKFL5MZa3g0SPPXPGTiQKHypOaeJQR1NUeWTdQVwUkHPRFi45uiBJYAPj45wprnOzQHzkoE6SKHiMe6vT5kzKyt1GOUC7b+EMPyLO0TsaDp2QPOIbfHKw8+2+Gad4qltDU2lRSm2zi/3gXRbNAls6fgc4jDJSfPuMUaaZvN1nGXwJJt26vwI/EST094KCFU2KppsrX9xvlOtOgJyjeW5jZj7YJpj1+UH7li6+Wr/3YF8rpIlO+2YvlAVtlnunygN+Ijy9zwTH4jWQJV+2fnaS79FtBpY9S76z/6FhwVC0MikTgEvdmef5hCjB4iSupB70lkf+AvX6v/ONgV6dXlc6QJLMRP31x2wcr0mUeH+ZTpaRkK4MqEY0CDzs1eaPHzB1xHJvnUAo3UkyflDdxyVTRAYEpoH4t61HJ6QIYYwpYT7FmwBMLPHuCAjBldRYQKGfclThRocUKhBkSAsVUy8HK2Q4fPG2/eQOucNqGSitdEW7/wz8qaPGtbtLAAamIEJV74rArNECF4qAKOmnndWwn1kaLB2XmgZ/mJ89JKygpmVOhMx5oSI4qmVxhcBSnwjCwK0WeL9d33gtIMrYAONooANaHlNFcZexYTwJJ++kOSBQJIrYPsk9J0dsjl7fdS90IV+bB1A/ASpS4jHBeauuIHS0PyZv9KY7Y/+DyaFmeZ7sKOZQOWxdJ2wFRICIbYBJg6tmBptdw4+eQVSEtJE9amSL52kZahAHAcnAGfHQxSLZpwypCAfEWyGEI+6bikDIgKyMQnQZipsQeHqrVyC+QIc7SZduhfPDKPYnr6CRupbbE9RPQRH4ltvULSejhH6b7WmMInQyv38D4LkcsByHx7zW3Zbl5Nr4S6+QZ8W/9Tg34oAnbpIMyj7TncfGiMhUWGU5Y3Pigv9O4OsDFHYgFhWXTIgylgZLimGgOUCXXE36pI7bDbOEM/4Q4ptPRGVb3OJiUNL77O5zyTF/MMa6ykEkVqhZxQJMEw04yvbwOvX9+jvzmpAO+QYERjt16ugtPPDouK2+tlSHHiX3/3n1SFbfKr94dlr/vaUm4O94iI+Yh1tgPtw/Lf/zKSHn7JkmOV75EyoVr5R4ndd9HWdr2ODjDQI8yp/aKVvClgIll++qARa/5FXEK2VXW4kTFFJ+j+OGB5PQKzRQJ6Wo9Dk784/45zeVd5ciag0DL8VWFICHkOV+2jbcDmsF/lPVUdmkjoBksIZC/stoGLfUP6gNSaamsuixaaKzU8BNjIA1L4AE6kOBrZLHDYNkfsJdSmLhJkHz8sOkPPOMqbliCPxlMedy+m/JJrAg4HBN4vB94vM83U1EJZ10ptk/yMs+JU9oTbg0cVyadAWT/JxXkkJlMNc6QoamPhFEQc9+H6BRReWgKr1ckSAGfOYX59Z8oSAYX5vxAlRnXpKqmrRaITt3MSVVNKEdQx8oEio0RVKIpOIZD6PCsgNsBlAQw6bRVsNXn0ioamk6oMES+nVbQfVLfQqhP/YE1D5DokWXbaYb1vZw3NCi/+NpMuXmdFSgo3saf5lFSR7QwCUwMI3CBQqvyMaK9jrAeqdSamS+TL79UDu49xh8ylz5pZjcZJqMYUAKOhlqcTm19KcwapyTlyd49CaJAJxMm9+XDUw/6hEl1ZMfHxDWtThWIz+cEIsoKj/4FHa5JewxDuZSs8s9qKvjq45C2jjHoJXb1yTUECGb0+Tj0oZ24i7UqTsGb70TgKyrcwzsO3lF41OOeQ0+r0d852D5mWs2oOk6mTctJO5SZOcjyGPUNwPUoq3WjTOsmUVADpny9Z4+Y8j1LTu9PWdR4yoLGKP3eZ5p3H3ib0PAOwZlzc/gyEQA3iOt2oEs0QQYELJvpnfWytkG+KHYFLxD4ucRxbf6bxUc5DZI3yKh57W//TPnlv/758u7D3fJf/fP3ymfenCv/+TWUIRuP/9f7R+Wf3CE84XKr/M3PvVpmCPLcnFst90aJm4K/aCkbjhegqRwHVoInuhTei6XLoC3PaRnLdf7L3jdwKq0y7eGzJWG5Vq0D6qGcT0SvUJ912V6dOiucCjTPU1ILxplG9pTSjjjuOYdWHqg3oQdeV5D94EmtOesPjNYM34ZfkE0HIL9LV10SJ9A0YUQYFZ7glIDks7ptW2Zx+qzt4qbnJrFrNAM9TlieQh5wuk8Qs6ay8ZSppo7NDIA+qQqXk+Ux+s+n/VIU/WalgMSL5/n0WsUNz1LIodkrfKF+Pm1ZXKmLeHYsUcn01m0yrqRZxSnhCQ2EMDnaQb4KLCt3pLeoldshgBVQEODx5E072NkHKVyDuRKOj3DJxVW50CY/qZxnYIjwuqYo000QqJloQj3ZRvJGuDS/z5gAmlGS+0wnPQhSB6taRYRQKttMVDSulsDxaUxBqj4tGJ8yrtJZu8v86iaPyVYg7S/eOCw/ewe6EEygqaYzO4KzEtroCEppcehnt/8RfUJhMWVz9FFJOlKJVBEuoc7h1u+gMtNfZznTr0zIaBKT6zpi6VD6a/1QPowvDoCePvKNsvoItWj1GRr0qbKBaEnjK6M6WsrswTXEFr9RZLShwgw+LYMy0MwWT1oBMoPHj0kzkSQIMfl1hFOj5wTG1+R0AMUxwfaeYwYzLUOtNd8cq8Hoy/O0P84x9dPu7Xv+lKW2bQ4mOCrb+ACfsPG6pWKn1l0CPd/F0p1FONrgxJNmzOj54vCkHD/fKqOXV8s+g8ynu0flr5HL/kscebxKBGYDWjSxBOfNiEBSOnE5yQBzzID6a+/slt97/0X5jf/oIknn2mWys86p283ye+tH5e8u9svliYPy3799sdy481rpsafvYzI3/DErfSZ6dKAaJy2MogpGEuai2PhLpe+r/kVGwkO4PKK4LKKSktw8IUvyjvaQdpR1QLeu1CYdue93Oc3wlXAvNHDq5Nskk+q6xKUxuLt9xx0ZfEQZhW98igvn9aqkbBYJtBA4rhZOVp6hv9aVG4edMehol9+7Li512fyNFZ5BUYiQCwc+qaSx0GJWkPz79oPfZg0ZR861FlWC+vBk3wHTceuouBIWLXOfYaZFh6mSQvAgZXVhpDPcExFR9nzN/kfqjdLimbqoByyUcUagRWk1sWkGjGSjmMIi2CRdxn0oeMn1DaOqTBIjAqPbYFAFwVRisGq1BFA9dkrAnWao8QVUAklJgyAVPFnA0IIpOmlmh0RIw7iyu0QQ+XZW09dI9RzWIBKpwwivKZA8dKo2ICHboK4sakBojWgd2p4Kzb7YtL003GEWH4iHYn6VAxlN8N/BYhphFGdGzhsQ7Q9lNT2N3tXBbCrXAbiQ/DIKIcDobojJEx7NlGkSPcqUhYbG0Qx1fi7uuA8AA3bInzAVOkHGNau9aKLAU2BtMBW1TRWLDBAhcJGBDo1o+Y2R1hc49C31e+Px2VnFCAI6Yu5zRjxCzkjw6B5/25NO0A/FbTJGR9mY/AICPDrOZRJZio/QCo4Blw5nqhIZQ/xBA8rUaHRxg0LONiGUNwcWstGFtiiP4jB9zTg51aaJX5rAAmpgrZ5wHuAOqYq3qOwDzk90seEQX+gkIQhu3r2KA/4i0/QTBoxVsh54Wvf61m55B2TMMCB9lQwKPzXL2YLL4Bo/yxwKeo0V3XFS7U6jGCf5/cFGh6jziXJ81C0XSNG7P7fAkVuPEEJHIodBcDjYKX//zlr54nV8WfPXyoOp1fLt8bnyDAqqSAzsXKWvKolsWEei5FkFP/m2UNoGTEa2uJ40P8EfZRAuLkFP//CiDv1b8nHwS5+5VH+JVAWavluXL5WjAq6caM34lN8dgJUBp0GynHa6j1tXrDHgMSGkAuzL6zlY10EqZaiVW5mx8OmqvXU6HZTHdQV0eUj+9Kg3N9R7RoMW0YhBu8qu/+QV4FVNyKPJw+6gRfsaJ0YPuB9QPGca52yJcrHQgA0x4X56GJ7XRSB8vu2o2JML5S1na8o6QNYOUcTptB0Pp8K/WoHKpgGwNskfLQkEngtZhULAmUwjKBTgq53w9FYuUjkNiAkAynYcKpK544PhstONimosIRxtdfMjgnSGgMyxnXbx29HeBtywq+Wg7NjeGHNpEaFgeCpNk7IeWe3m4FAWGJISGZASQBqhAzYZKfv5iJuiZ1JU5tBxKxavsKy9xraLCUZwlgQZsfGNQKQE+QFLHyvANiWwI4iI42ihSgiUrtuRMNjjP6jbcWgC4sX0B/k5aAE7vceIjUlEH+kQ/dJPBLrSp5j7KF2J6G79EUIoTvUh0J7Bi8a3eOJKH4WUOHfKdWLNOEjIWFhFwBUGR7maPiTPKG0QXsupg7nvCo4SKFNIfApFMcrMGQjop8vFnozSRzl7yEPYFdR0OareUXmEI6aacGwXmCaow3PrTuGLSeKi5rb2S3N9o3QJA1EYngPHJ+QAP4YXmuD6GQPCBnDrB3N1qYlmFwzDZBycyDfNSSl9NiJzXh8ns/wieLw6xWnKBHMujJFYEqtrkkNpZwlD8Gj0TZTih1hMc8QF/fOHLK5w/TLhLE/Iq38LX9m7HnwQRh9kyvj3fvbt0li5Ud6dXi6fkmyOxeHguw2fyxNOBgwa1poxO4Zhk1o5SmhQCdqcvvOhAIQ+SkD412u85N4U5jlXiZ0SaqmID35ADvmcUsqKUgR8thEZUR7yG3cK+MlKIPyqJXI+eOvrclEFwkcGoRwACAN1i0eFngvJsKHChZ+RJJ6p1o+KT2vJ6VuuKav6EPVPuejC71jltGFZlWcTPhcfetISBM2zFAqs8i6VQU+nicq8EGktAk/AxHChL/G1Uh8P8o8XdaiWhcGCcU0AZ42Gp20KqUtUkk57m+iauhqqIUE73GopLzmiiUI6aN3yID6c62b+qyOW5rr4GkIxmlQAJaITgR6jrd3ip12DodXijL59bRZeKiG374gsRr0QE+YV2SJQwmXqCxL0j7hnGdCCTCckyfsE8HHuwUSS53xsimWWaQvKBtNZCDyTLQiAaOJFXet1yAejUDlcinygyKgJ5CQR3ZnAd1jibzvSwGCapVqZsftgGMMPZBcnlualslqtxEThWgpBM8+8ucZtU2WH3oOIjNDAPwB/e0ecNAwTa800ORigT3J+AzCd1ozyrFaNlqD+qrofsk7JnHKpvPQ9ZGqo8lTzAaN9dCCR+Tv445J4EBSNothBAfgAmLM2hf3U/XngHIDqtED4HACgSRcLqomCNQiw58k/LDaIY7NeOhjhOyA9NsqCTb4LWE/dbfJIQfh9phcb3CcQpDziYIT7wDFP/XMAd4Ryn0LpZGoAQA5AKi/N/2PwN41T/TJpW75CLqm12bEyh/VkfxdIgLcyx1l6pBa2CxPg6n/7wUb51pMG18dIkNcprzMlNO3LNgeA/Ma9g/LffqFdfoUz7KSLmrxHcOc7N9fKJ4ovdbYZAGfAm1Nhx12FPWmIgkr+gMOIFvSWB/3vgCePOgBYrTnN5VCVj5woGXxGC6RaClyEAUIXZcq6oT89pjrqpy7/1cWTej+LHtZGWQXUKWdN43RGX5rzWlxYfBcflrONahhwQRjALZIFTRzUJDGr6LydBWXrmsUsybNjeM+HnC9pOmMViAkkbUCQLa+BoPVvsKh4Mv+dMydh5KGzeqQnsElPlRVvX9bvoJpQBCDyKjVTh3ilbWGkHs2IGk4FrwVXwEFb9lVcGcfooCKHSwf7mpx9atU+UelcshaYU63r6hiqyoodbUR4EALbew2AzLGdpXmZOZST4LzsEEJAiQhglJQgBGBRKi+AIJDUYFRVwNvAYCdziIMw0IhO/OxnAojzwEgZpwvzeXZaltQBeUSLSCXolFa47DzwKmy2E3i9AkIXaNwTVY6xApz6miLW2aNOQxcKopRoT6vK0VaBbCJUbhR1gcHRy9NFbKGHFQVvUL8KpHZbYVQRStysrtFbp3tuWWI+Qz00xm8VYFZ4WI3N/kaW5lFZogQYQABtmXXSsprKBq/qJE3aYto+NS8VSnBcC46R0EwaOqrdziLR9Bvg6csU0sMtnS6rRMcOt0m21i5bTIctao89V87sqqZS9gxDjCJwKb0Z0RhE5o52SnOTw1IJ7j0mRmpbBuJ+B7y7FeaYEeAIX9ozrBZPan6DuJ31R0/wLQFXRmnoSv3LHKHWxPn+Asf4Etb7WyTMX+AU6Tks3iXCC1qsLk8RX7VIihf0f3mHeKkPD8ZILexx8cS3EWbwuVWiz5lO/s7WcfkMgN5awCHc2Cn/089dK1dQjL9998+ZInbKo7tPyv99v1U+bq2WaVa5YtmjRJk9h28MqHVK54q4vhLvyx8qgqxuQj9prNCpAIwSj18PPIafKQd6MtWt/hV+U4fPdCmjIMYvCB14FIRCmzNB1bVwnv5Gw0s5kV9q0rqIhRdznSdp1+ep22vUpwzYNlLrBWSFVtViEox6tGzctRALBiK7sV5W0oF/jBWdLXTA5z/YvpbnU/ijUIWJ3x3CPgxtmiSynYA9HO1YVODIt5lqxZADsrD4R7j0aU84oPO7pqwGpLTFfQoFFbRT+VScKWO1PypGu1CVsECopOTR/Am/KmfMdhAOHsQlnJtRLDxph4RERaZwK9SU5FdQHCVSfVV0AoJgZ8UCyaZNrBNrkwEoDtS0BMYFZgSrLYnrqN4Th2UcYztcpXMk0AmduW+ExueEg7K27E+tKgCOw1JC8bzExISiBkYX66OPWdfg+hijiMRt0dsLUO6nL0+XJXwvqmingqYXyWokRFGd2s9RrMgGvhePFzLHUp+pjtNDBUlFqf0oHsSibKrfSmsG0IK1MBBAuQtdBp9w+4MxLTznPkDyeQR+Hgcnxp0hLNKFuhNkSi0KiuEbCbJFkWjN6uPylN4MCA65wW+1vGJJ0aYzdY9em0HpOXJ6Kq9MPIMvaIrjvjcYOTm7CoGq/gcwnlG2o/JD8YyjCBaYik4OnpcmTvNxAjGf4ZfapD3dWC/wM7h96zlO26f85jAn8IJfg7CPedJTDpiujZIFoMc0Vwe/GTRGeiflZTJ33i6c3jtNSmHa9iwPJaaN0C0bT8qCzsN9rLVjledk+Qd/tFu+dn2Bo+Hb5eHeASck0+rYHMdg7ZQZcPbGcilfWuOEGmp9MXWx/F8njfJ/3ODYuT+9X3770UucMzlPznSPkwJP0MaBWRplyR28dcGjg52uAKc9ClisBO5lTypkcrqlnzKKQfzoO5RoXI+CkjeVFXBOsABvWULBY8sQlrvtufLq/TiquZfkANYBM8Fa0B3rODByjefkq3MHtHLJiJT6/E41kQ3b0doWFiCpz/E7flFuqpCjfMCtA6052LPrwYUSwkvO9w1DRrqmPLOiqzagjVie8Ih+0CbT8An2G+bwW9qsdWpxOrzym0ecB3gAjFZTcCUj89367LO189PS+W/91f9W73jP/mRlGliiXywj0ipiYxjFsOISsopygbEyyugIZwWog+Q5RVOAFcpTBMlsCNEMEoGhIR1VBSokKJpzZ3udhknE6MZKxpgOAgFwVOOqhQCESeigo1r8UNxzn5JKCNX2l8TPCheKR4Zy86XOQR4HBTyHM1eiaWbH14QQOGWdhvg2CPi8+AOcmpkTMMq4o38YCoTqd4AbDIpzepZYMockR16sqZi3jgpBOOXtMjU6YojUtEsjibGimTTrn0oG6hAAcAGRAzGWkkd898gSqkJxs6yj7gD8qljP0yWbzUJvBIQBPsoC4yjKXiIqdKYBEhK/e8KuVtHp0CkUkGG5ecKKUfuOrA4CWsGSS//SJHUoyF0UjdZXGwZvY0lNEhvVw5Jq41vypJZPmMabwmXIlOwFWSuPscxOaOfVNjxCArx96LFI98guX75PJs8rV1rlq6/fLj8Etrs/eLfMg5fPwAGvtbtl/pSsnQCwxDHD81PEWPGMA+FFtjq9Q97zf/XxEU76JqcQj5RrbIn6R28sEqeFVcn+wz8rs+VlLMW/faFDxgQS6pEUr8EJL3/cnyzfJ8Pr+yjaRfD5NTYlb3Ic1szCfJljYDgAv9U5caYEwJcLMpA6OI/g0B9pbTrqhHmA9ybWcI1Pkr5aDNAHwTfyW+vIQaRpYC71m4pFvgxvU045qnF2aHOuW6eCe0p5HdmZkkNnFTSX+azWHVBkkFLw6ywB/pKF5Q3+xUKxbq3pXGN4lhnBY3JGyT1c1/9sMPYx7x4Dj1vDPOXGHQvx0wJDHO7gHlbIbIbq04aDqw51nelOvwzgNsjUcCOtLX1zWqL6t7Q6xYv6w/v+gxUjQwqIcV3ctQO8I6l8OuhrVvCbtqOQ+U1VPOIfrtslLtQFBnFhO1yjcnmZgGUbp2pr4L+KJptudQLDtBLDeaVC5YNZBYPARpG5chhT0qFC5cD9Uxx6Hj2tlZS5NoBoh3ALwokgOiV1BArkOpUR1pz0ixWiLyeFJRIIsntacvpRDHjroEinYB7hjl4BdlfUZZjTjBJWDoEYNXHFUIswctMmuaXAZjGCa+kbXYF/aQf7kRU9AyhzoGj0C+3D3SoraBQ8jOKs9xY6GlrYN5m0wgooIBz20h8AQKCYQtierOgdNsnZRD+cWnsKj9MErVrLKbhOTVSONA4M1gFNeLaOoloCNqqSr4zmUjIbQekUdArlLQC8MiQ4DEPwR8e79eqrdGvTKZ11ujlFPvJVRtvJva1yiC9onFXXI/rzMdNlFT7JdMtDpns32H/XRAk87u2VSWh+AD5M0jdFH6a1Hihn/RdRYn/+0d3SfvRxuQpMt6dYAWwfwgc40InAHB0j+Rum7/IcR75T/tFOs/zpI06NmeEEGey0D8HHV+dBMkjc2DnCj1XKLGfiPSA84peuTZYriwtlnpCSzuxa+T75ph5w6vIJwjIFjr5EfVpz4R1Y0V0TxhppqZiSRvgcHN0rW6df0IdyCgpZ1cC3tKr4VWjNgaX1r/UJ8XiDW/Dq8WAKqX62IX1JKmGEqM/03IhwuaGj342yOq/pOrMpBN/BMJjiWZ6XWc2U6uqkz8iHyU4hFODBHQZJ2QIdQn+eSfI65Ey+8MUj2evnKt8hG7W1euyvEm/Ygp/yoooqCpB6XdmTZZRHVCl0pH/wiHgIH/p8FJCDpH3BPWQ9Fcoo6bAasjOOAsaGSJs8TrmzvkFwfztp1KEfmPgtP6o8O9Rn6IR41ngRNtu3DX6CC/rFP+Gp1io4CQziinpNhEexYCBen0giN5VQGtAJF+LaAMIyRNv0nFaIeAB3mT/P8d3R3u0hfa0gyvoCHbSHMvC32ioAQTCAcCUkSONadRaCHBCq+aog2JmYx/TMtu2gz9drtGX7MgPlR2GQJoKSwwpgtSAMAaz8oRKoSKy+qgqbdak04/QGazKpYQymILYNUW8/nLIhlvRdtAZbIVBQgNJ2SnTqdgqExhJ1BUTho/88Y4iAI5PM7mjuCCOTW66L/yorgnx3JbClJQkjVwEzfIDRint0lefAQUgFU2ONMKGF2GcKmTJCTNWhm+1ieOHcFm9YNDw3R1u3yD7Q3nzCyuQxA8iAAxAI98AfZ6zPJqEU94l9moQIe/RlishyFePjZ08ZFFixgxk7cKyDkX4pFxQmKNuGT5Zp+PbYabk5QmAp2S1OIdaKjnQMkTaLAEeM+BfZGrNOQOk//r1Py5VrV7g+VTa29jjcoce+Ty2WQuzVYXmKMvoK0+afwYl+dO2V0pxbKfc56PYPx2ayomiYR5vCs9BdC+cY2MW7uyUS/yP/OTrZd3xrCr3M77SeC1E4ULPyODiLgHCvCg5KjHm1R49VLhHnZwoFBS0dWzijjatz4HODsHyYVU8+nQGEzAqcvECZAf4g+Vdfo+6PhIsEFmjO1Dr786gH6iE/KDgzJVCJfOBb4RbnqVcC80WrmurTrwxwWJlZweO2CjpwukhAGS3CKEnwQXVRwHUqSDl+WiUV+Q32BGCNGOD1mon9VL7xW/FbnnX12Hv6x9z/axtW4duXysb6k3IGuUhV1Bk6UJjb9YXyHXJfx79l3JeaTtJXLc9zJa6ysz1l0BAi1SPI4gkYMBYClOgzpDu9UEBGXVUACQZJOmLoXLOSaFtGxLo0azX0AEGyPpWUUwCBlBBaOYATZOrMVvs6EmqeugTspuku0zt9T2MoRC2J7MMSeEGEaA4r1nLKp5G/Co0rm3ZEhjCeQybxr6loadKW83ZEUWla1qOf6tYIkEL6GIkG5CBF5cpzwD2E0eE0lOF4cChz6vdSMPgK4eo75WnXUVo4ZZbEkFkd1xxnw2w8K1zWwyiBR9tyQicstK8FBF7i3KcirSBjn8RPg1H7lJXF8771WIn1aCpppfV2ipLQgex9R+1ORj+tDw5SYGFjhiOuukz35rGSRhmgDph+bqBGt+j0HnXrmN8nRmqX/s8w7XEVSUDN731/l9AFrk1BczGrc56PCN8thO0OSvMmfVmbZ4hg8BgfnaWse+/Yu2fMFl29vztafvPT43JlgRQw44OyQprdVbblrOJ8vw9T/IC0xD++BG45EOEmAbq/uETA5PzL7OlbKfewpt4F1m2yOMyyUX0CGO2rsUSVmoAD72TJHtx3UTbj58oEek+iIIRLmLkdfDoY6S/VUorjGAIo7PbPui0nb2fKxadTuUytmCLrmzEPnDMOhd+st07J5CEVTQwgcKS80Dx8yidWoIqIBrxQBVEYeE6RUU6QGgUN68gpnz8YtFTACrrwA6vWoT5ady8cHpFNJCa9HXOaWpVf9vuhYE5Q5BojDlyJqZJXeCsTyhtqO/Db0tnF8K1tyMvOHkzup/UnfwqbDEszsfad6soKWveqPQcEF5pSlr57hoCK0sDjFr6w7MzgecslrAZ8i3Ej5Z1CKwcqZ5uKlQucuep9+mfAq/hmJZ07Z9pPK0cAFW5XmlzaV9MBYvqUAEaQ1cBM1hQ9xd8lcf3jtEh6ZCRR2LnuFRsRYRJFwsXiotcCSGMxUQcw2fl5hyoSp53OgFVqxv1oeie4jFHb+BGZZMDmWOfX8RHYdVcLZWEQqs2nj8Y+0HoIIXLYslZOibA+POhheeAPY1Qy9suc6q6MntKvPn12JfJUWL1OuMcxihRshFKiVIzItOfmvYRjqAn/6Nc6Z7hE/dtNcKCJX/kwpKEMbdBv47ZGIMYAppRJHBTwcJWZne2yxnlxj5guGVPl3kn9C1poMoXEHEALwywGQ/a/gaNxhMNMEBdwkl/mCPXW/nrKGs28jVN6FwUxxAo9wpI6wim+Acw70PYEBTXKaKzFpFIfB5a55QVgAz/k+5a5Tf2yQD0tDPIrdOQLpGC5MANDUsaYtgukb5nCYptnoDuGWVdxvH9wPFr+7jf3yi+QPWF6ep7NzVjOxHW9zdTvxWmzPOX7u+D7Mm3dnttn2jdWHi/fLltkSHiXVC4fYM0PiatYRfFdpOvStboZwj0ZXEAF8PFSkqQDQqwTWAFuQFsP/I2wYz1ngJUW8iv40iLzxCMHGQVJ4WalI1PL2FfWaZXQRKWt4gAF8DGLOAihbaqYWLQliBfe4bs8La+eO/ENjnHQETb5IL7bcFMVzhYKUlo6VdJKc9oJxyKYKDieU+jHVHrg2QHewTYqgr51zZzBfVRRrOnMCmi/A/2NZD9hMFOmXVRKSiGecXiORcZTuj6EN2/kzp8J/PRalJr+N9oDceoFYyHtYmQc2Th1xuRCBFaSuBgj6WFmEkA4yur60KVwXyokn/Uf/Glqm1iB8Jx476FL4hfktzTiv8ojX+ybRo+K2LaVgCBYYFVO0cZOjYKvMwDxS1mBDSaoUsTRQYFT61p34keI7VBJ6XtCldERmePM7EWhKQzJveVgQwdEgv6QLPcDgALrbnKDWONrEHIQjo5BgVEvRDSR2wRCLkA5kp47KiZq4Zl6XXamCdrmD+26VL9CkOEXV9nGgQCY5QEOBEKa4t4oq1h4hFJn34k5pvvAJX5WB7taK/i1ZFJap//hPaY4QEAFKrwWCl/rS3DNX2UX+k6zwPCQ5fshirA7rFaqm1T1N+gY7QJvA+VrAF93TKXbKMcI8DzKbRF52B4jgp02kirY03XBuyOH5dw32XFEYzDwAM1bR7vl8u7z8ujFUbmAZExhqTxHQz/n+TaQ7QP/850ujmgEjL628VFu0DczSCzAlFooHWiC3md0HJZf/uLrhBw0ym//4Z+Xpw+2y8vEZb2KklrF+pll/6JrIwriNE7pJTYbjjE12MNp+GeHrfK7613yjGHlcoT533m5WeZx4l9mi81DzK33mBK+RAjCyyin+zt75T9dGS8XlyfLzvjV8nU2QL8Lnh4A7xJwLIEneegEZ7/9pqvwCDg2DIc+8xW+g2ed/vlCsBNkmWvyk6oWBEhPBzkG2CgXFFVLfw7l04CaxP88J19pS0rrETZaK9QZbC3AG3FHuLB8ERB9fccoKt0RMkYPX1LsbOoDo7HsevCyroIxp/DyMuUUeIUwtITeUUwoGK0NTS0F05N+3IplvjWViEIexcFJPbG6oZ2KSctcVSBPi4vwHPABZQZJDZI4feCZUQKlM6jbTVUXMCjTwu7ZksqkU2xPc1IXnKLwFLWZ6eko0MDMgGBwtvzbQbC0HFtOPYWZ8vKqSshV+QmUulizn2nG1qlvnBVlX/aTm36jHSgF30Wn8DvGk/3xO3R02qzGp3ag1zqiY1bsCpbLt8Z3DMl3pU6Tnio046LcwtNnGuH2Ep3FMromnsdomatKhPnG9olmN9uoTNR0FKepnipUgtumIweINabI2CejjrkA/RxJtVhAMs+IIKdLEs5VzAbW1ZjmEm2Oot2zIEDbPluVlYwlOzMq8NcRdRZEvjLLpl14f454nw4w9TSTYJ4epvMu3ugLgY92gE+lYj6qPtMnoAEX9BO4+GszZZc6uZ2XU9cuCqEPXH8ZmSwhRC3EZwwCdhiW71piOlBnWP6fZAqRTcow38B0wCgkFTihSUxpp8vm9GJ8T038TbtoCJe/dZxrRRnkegHH+TIpgp1ido/3yxF4GsW/8j5MvX3C9I7p4B79uwFetRz/hKycK+BwFrha4N8QCRnzBWAZOd92pKT8Lltt1j/4Xjkievzm1rPyd9Aerm7B78RMOW3kEwU77gABEpaI1fm1d7fKP333uPz8yxfLdfr2jM3NS883ypfMM0Ug8TpxVN852CwvcYjrzZlO+eLVhXINP9aj5nz5ncZ0+R4K4AQBWEXBX4OuhoS4qKPAOPAAatrSDaBN4e4Cp28yNOYHuK985yDoIEcx3qodmR8+Q3FkcUNG5uXCiBKjNVQ3Mlu9igSOp0pA4IKWN22FL51uQgGua8G5lcfpmhzsNF4ZUfmrVIUpygUe0rIX5i6KzXb0/zj4OVJOuMhk+8KitQefJMIdBZcpLpc7uAXGkgIDy4vZxRh8ZMBnD+v0EKXmVLbJtS7bv0wVQ8VV7sCDfugEpirjwGE3tPzSplMtcUZ5hcyDYPS/IY2MiyhPdgYYVKxVd2SmWGQ8B1UwQEfrUGfLQRY+qsaKMFMfOBNJCesI9sWA7Ti4qHjRDFir59/dwaCvawKlB1pT1x6xeor3NCfzuJ+ZP5EldVW0kUv5CqMP2jGR6fRPAAwV0CcjQTSZe0OS8jta0UG1fkx0mAfsgG4AC24kQkWS5qjjnKcXD126562CGmhCs1fulGRzOu4bjGboEto9t5YoR5vOaw3cBJPyIe0zevCsU8NGC0XHFERh4j9KkwIwHaqTN4ztRdRFkxG5K/NQl75KmVuGVrlYAoDSdwNW+RYU5Iw7lUMTxzOMKszHWicoa63QY+DMaCaQwRmEo8sZ/ajbKbJkamAxtFBIbZhB898wiiYpT0Yhmv4IlZq7Acx0cQIcEwiBpvw+vqMxVtAO6M/Qkc5DPEHCVbJw7m5xXh7qa6q7z0ZkjhCn4U0O5zxiijB6fMCx6FhSTMtOaeO7bPC1zhVynK9R/zSwu4czAkN/t+jTCrDqf9hACNc4/OGr0+wL/P4P2Js3Wr54c4nUw+IB2BCcy5NOloxwHytff4Ji6zbLq5wmPUr7P3llWF5harjc6JbHWKjfZavMHXjlC5yifJdz7P6LV8bL1QuLZae1Ur7enIs19ZA2YMtykYhedwzEcgJ/Et8AW+mhX9OhIpkyuZKhCFjFd7JUgKNII2XkpdwHt+LfW5JnxAUZvqpQ0HYMevIAPKHy4ZJuBxgbPqF3KPe66IQlZiMIrqrJvXemM3Y3B+wIT8Dn0DSxbgoWeOwh0HHSU0B/l9+rwow64hqSKCRY+G7tGkBbRSXy5cyC+06PXK33sAyzeJwyymqBGGpkqh4tQQ8RkVv1dcYS4p4WnMrC2ZGhQ3Z+lEGUX5FvLae8gJkOAXvld3GrjB9GrqmT++JaDDoACGNcQERLZrUSBVnj+Cp+M/2mjihHBgTlwlVvc98F6dTt4oRylJ0bHXif/rhAZhYODRRFweQLLia0DNLjuy6Z6m+kTukKiseM11HTuoRuplCFXGeujBO+1jkZpQPCJRZTCZ3wDZQAkhjnr4Q0AFOa2UhNxO9IRJ1pWIUI03EfZwnfAQYmiOUkB0GEMBDM1dDKgNFcPfS0DoFUCRjEKXOJHK0dlY4v0IDsMbLQY0rxKZPLHDC4LAsCM0+ud9H8rsYBKwiSl90yqUJxuqBlm7gSLJFR4mR0pgIJVQIf5dX63TbL6TIGrzjugW2MIVmfmv9iEtgm8IgLMGJJFEgnq2nGtMmQyUnkwgZ9agKPfm4DTLUiO8f4gdJPRhkE88LBizLB6t7SAdm42Py9x9SJJMKEHoyVDf1/BxwESuqcDfq2Rf0nwLtG3idQSCwUUKkIZIxYJVoQBn82yndwtv9K67j8gzfmyr0XBIISQb4EXdemW+XxzCKHfvbLnTlWGIETl0S5NDVRvv28X/7rP9suty9dop2l8hp+rHeYs7/ONO8n2FjuQPEMcnyXrUhXLs+yuXizfGllUG6PzJEU73b5RmOqvGeWBPxoxm+tgTvYMc+pDHzLvMY8VR6EqjCOwqXScXrOHwYOqMwnXUQpOGLzRaaHFwOFzAZuPQE8gaCWVSnxqT9HBeGALL71zVB9hL2PUGchBbzDbVCfgZiy7n8cZdCpcVQUdpDO6CxLV+vAaQy1y0TAJmAoDOkPrzvIWa8WS1w/+nf4Lu/qU1Jo5ZUOZqwKQ1USebKfDo52j+vHDEpRydSlDzNyxbP6fTXx7GsWfYC3TmV5lrImg3SA9F8LempEeOCt+wazGqds04YxWH45Rrm41W2CPYNOYVE1gQ8LA6XDGxwm0SaFs/jD3SYd043SQclmZZFrYBr+wzIC99m3KCwor6x80sEDBl2nzHa/q/KmLcNZsgmb78IiPxiAq88R/ItikV9DA+g5hKaTIN+pjpMriakA5mgnJllDpho6AUl5gFUDAGjFjDiucNBIbwwipHsQHaLpj0qSQJmHyiLYtIsShtgoIjiCWhjlIawrCiLb51GWJg5UUdLjWAYtLIoRTu8FijhVZQRR6RH1qBUYkLk3n17LgRNYZ1yyS/QEREtopwX6j4SS+zpQGwiRDKqlWM8zpL8QwC0xnqzDw2FsCW7ffCUvNbdawF/j1Kib/oOBMMaQ53GViu3M9elyiOZSdl9GoFKT4RkjdQw+9Zc1seBWGDxmYKrm/Q9J28wK4cFhzcIJ/gYjnJVHZ45J2dJB4WwuLdW9fEwdJpkOMgPLRm9Z3tXJjPA07IDgARoC/wA6XaXNv4mw3MYvpWN9BbP/AqcybJ0wvWAB4sfxVS3gTDdG7wdkbP2AI8vfXCQTKFZTeWWVlbiD8gYW17CzV7YJ3vwOq61vzc3Fn/GjJ0/Lf3J9gnTDWIoTt8rvthbL+4Qk/AgKTYLLKeq8NsU6LrjzLbEyiKnIEQgvOrI6SjsANdmO08PbDeVlGBkjG7HlXboZa8JVPHnEfyqk+ESo+nzFS6qMQXcXLvowBOqcZqWXhXhz3wUTV8A16LOyy7RIS4dK4BsaQqAaTOOFR/3g9Fyl6cupS86RpG4NmUwJmbppSRALS4XgkrqN/Hf6Z7iMvrAOAFCNUEux4KJuF9LKcqVNw8E2gCM0RRk6s6EOw218qVqzQKa8orC68IdyMCHfIn/iECmMaDszcrqmsuXIQW5r4QEnTbg1TrwrP/pl9SdRQ7YZqVSsi2EjNEvWUpSg0+gsiNGWq57yXZOBV35zwUxZFnJ903B7YFXuVKYNdlx4X4tR69CFKS24/V3OUKAvLQYoAWgyIAiXHWDGp3ipLnghNEZ7N2SKmOPAqKSrOADAyO8eTH7MKD9OTM+JPpuY8Vo4zEWpRAIboiBCnKsLXJKG4eoNSUCeQGp9uSLD7BVk69/hWRAkDdIxhMamPX2H3DTUx38QYH3+j0IF2Q3v4VeTdEGETMc3XyI+IzbfJXlWPPiWEQWFULM0ggRujmPOwwUR8DAPVYygLAgOoOI6uguc57Sdv6JmeQxSAqtcyhUIK3Nn5UP9x5J/Mkhi0pn73b47guq1PiZq21Fv0k3FvNc4In12f6NsvMAfBTEl1CbC8c7oVPlT8kkNCW14E7+FrrdjT+GFwbYO2WYDolZxZGoBiLNM2qQDfZ2lb47y+ibQBqzw9cqX8U2+PMPhHCTB+ybm0DukD/b7HBkmXmbLywWE8oPN4/IvfrTBtper5ZtbpfzMarv8v4Qf3Gnsl19qHpYf7B6XqZWZ8s4G00pOVrmLRfpXxnfLV6/OcN7fG2WXVC6/35gp34e+u+BsEt65BH4Ufh3EWpoSRVTIg+LFE4odwBKXFgUEH1JOi0LXQkZ/6nAUlrGV4+oTom/QWh7VzzoBXhmGogzkPTOOxKEc/pEG8CZtJv+bjKcgMM1xX6XZX2Umec0B8PylMFM1sFYBlNYOxOPwrvs03f3haqIC7CKRK3s1RU0NQGVIDMyeMpMVbmFHOTdwXquAVbLZjgIBYz1i4YzC33K8HZWG9lsFpmAHj/RXOIVDZIoFB1f0IteZGYg7+Ium6JKyhYTAn1r44lVlrvV2whRXHJBujBd10dfICDSg+mBBZayyj5XOFf3NVEGfUZfUI2ldYFNRUioDnfGN+sO0tlSqxvTp76txZRpCwJ7ZFfCgR/TppX9AcczqyNULoyTfHCsfrXOgLm35Iqe7Qg9Qco4NgfSaMoYRH8ZSC0l0CWzMUw9TXQctsMXRzADNsxKKeT1I1ueFFxizl/pAmmYj6xcALMox68Qt5WfolhhWcRkoKn8OtDAwQ/0dJaqDUXalMbO1OPppwanRK4lsl/tYJTpYrddpY+2boyLlsXJiLtOATGe9VAU03OOfTAgScARKYKYH1CxydGQ28F91UQJcgSG1bnheKuVlW3QApDutiG+M6zonc3iEdUtkAJ1AEDW99f05zrANnnZxMLN6tnS0V+ZfPIZC7KYEr3so/h3amUIJD3jmU1KqbO5vljmEznCDj9g24ibeKzzvqcINlNwpcG+T3fOIFNA3USJtiGzitzlw9QTaTfDsTWD53OQxEegjiWi3432Uw09c4ZDRhREWJTgphrruv0DpsXXmt04Wyn93MlX+Xqtf/urFdlll68s9zr+6Cz/cag/Kq2RLeDy+QFaE0/LvLh6UNSLiy9Qr5VutpfLe5FL5IZPOYxZwVkDXVZi7g6WsQpDQYtCpoxaSjJ7gRPCra8LVO6P3XWU9d4YnEyoFzdsk5amO+9Rl/6lDIcl3PsWhfODWGXcUyD/hM8pJdRlXy0YHdfyjXJ9AQTuCm+JlwGqyPCVfyNfyp6N/LGh+q660HLLnFfq7Ms3lWCRxIQCcVqRioFUhrDrpjSNyoUoflNdc7HCqNKfbw/6Y6Y4OAABAAElEQVSwMNHRx2O7jIlyImIQHrK8eHPlGlZjVRg/pzJpj7TcbEOZDBJ0hhvsyT06oYsjPlvv8Zz4k4XdxcJXL1G3U1jwyiAen7MVU8h/rsDrR3NLGxQCTxoI3uYPbUo/27cyLdMOhozzC6d9MYa4Fx0DQFqECa7mOWdvup/qgRNUqTXqFjTKGGbktrX2VKu8dWmuPHqyWx4xoE+oWnSERSeiEVwiN32MvpdTzHxUiphF+QAsQuHq3AjCMIL534LwTVa2VBSJ3YEQ+ko8wGKMgxsUfE1K/T/obzpDazyjItNMtvvuceoQD9RnxWOIdhVPWalR4CpqeUQk8w/GyQig0uKfI4lbb8YZ2R2mw8q05Sht7gPQGUtDbsoTYFUkmfZZpvM8wxOuuXrkXq8k3ZcZqRvw6KsrkvRV8x/QM1WAcFN722UHhlDrOeV05GjCGKrJ7LECJldO0Ovpa6Y1EKYDM9BYWWZEXeTE4iF+qelTtq6Ak2fEUT0dTpQtlNUMPrJLF1EG77xTPvl4t2zfvhLYAAWLgdTAaMBFfuiDCt5zlPhc+bHbN5nCNcpHd++VT59vlwu0twKRv4gT/BrJ78wpRSegK0kQUVSeXn2dLAgG+D7aH5Rv9RfKr683y1fYEtMgNOG1C7PlH946LS+eb5KtE3/Z9i7O/bnyG5dul18GB796abvsDjbLgNCFkcXXmfLNlT/BmvqQAWKBNDMLcO8c+FUJSBt9Em3wZmiweIhPTb6i/zq4pYqIlwd8zTBNNwSgxuzE+A9zS7sEFkIzJWWcaesYNFL5Odi5uuiKrfSPoxZ6O3BkgKItHe00CzzQlroMCXEvqydLG2sWuAQCfnOA0rmcsBKuGZ/HI57+hqyq2AYsdGBBQJMmeOUW3+Fc6tPnOg099fWoJ7vgRStPfGe7C8pMJRjFRd9VSqav8cwDLX63mfVQpDbo9M+B1yBX6ec1eU05UmGJtKxUcgeKwieaCPA0f51utnhO14lvy/YM7uYzi2jgmKojr+JTJUPTwCN24AW+a836qWXH4m+yvJ5JJQWsT2uUviD/48zOtLic0iV7SfoMPXhOX1o6SvkueNFitt8qaZNmul3JnQriyQFBP+eVCzPl5fnx8v6TYwZVNJUR4w0wpGXiFpc2D3MFJkKYqU1htMM5JhxABGbMaQ6xSwa39bOHqi63NoFqlJGx51QHYp7VFObJdI9LOjjjUEeiJyYIioTAI0Zu80xpc+4fTGFch1PTocu0dKpHZkrjPZzramHFmkIMJmHUMdNfAPskSkKT1K0PqhEHaleQdH7aH+OjVMAMTCE0bJ++SHyXjQ2adESPg9LyKm7qsw7DNhyRl/DzXEYN3h+fhkoyvkrQuT7WluUgUhYuaNtRUzhUllNHB+XG9lG5fbLB2Xzsc+Ocw+dkJHjAyt8kbXzAEet/sbFZrs4vlTdweK8TXzP92R/nlOFO+f33Po7ibNBPo8wTEU8/DBJ16uQq1q1La+WNy0up9wbZFX5ybI9DQollIndUmyydAyLPDzmN5gJ8egXrSZiuk3PqYzJS/MN3sbhQol++OV6+gg9rFYvqU4Iq1rfxUXXXyzvEgu0xGv/THx6X/+zzs+WfNZ6VWxfxPSxwVt/IUvnecKq805ounOReFpji36Q/RlkfgpPEH4FwFZJCOMmJwdkwDvzwbJjWwaIHY8Zyhr4efKDrQcs8+zjFI7ziDgudttLLZ6OSwL/T/lP4w0G2Cx+1FErqceuMK37SJK4O4PO04vymP6Ox4ph2UTfiAd1ROFbMp5aFzgqnS25pamBtO9iNU7flhbVDe4YrZAEKfGYxyJHNbTj2D/5Q3SRHGzQazxRW/kSN0GenfVpv+kgPNRoUXurPQg1120n9XLBtBF8rKX4x+6Oc0ab4iE+WcsqlEf8GwvINRQb8wONGf/fdWpeLHIYqKBsqbWcLWoVZZQej+r8y1eM5ZYYiwaXgiHm1iwesxrri+wSyZhkljlai5KgwVpfwa4EZdgGrRvAcGJJRgrJeczAyNERZOW/L/gBi+GSPze9jBCC/cn2+dB9x6jf8M9bifLbsAKcGFZTbQXSQ1wAuGQEE0LgxRPpvRvQXAb2RrDIgZhbQsKoF4g3QbEGwIdMrFVxc8SDKY7FlAhlQYg9QapqqTpfGWcJsDgwdYCSiQ07AhtTRJdjS1DCa57GCDN5kVBTRWXLGfAxSJSxENQUGXa9Tr8oyib9Sqeu70rRVc8tOOsvjv/Cm2EFg9smbdCIjAQNGOtYb01r8RVlFpSX9EipQSmf0sM8hCu17Lfur7DGw0BPuoRYgljA31+9yxDoHgZLr6SGm/wnpjt2rdopl2SIQ9nOU2cfq2cWB/eHuYnnj1tXyV968hLX0I45bRzHPTpavrS2WpQuT5Uebh+Uepxp7viKGDxvBYdIP/qIc/uhPytrJZvkMmQpmLhF8iRJ0W8Qk/V4DlhmUl+f7/YDzz+4ytXtzYYYUxxPls68tJ0xiHia9TMaG4/V9FONU+R0CPN8mtcgvXGuRj/2w/I9vY55fny2nUyvlw+F0+XUm9Q9wSrvP8YLKHEukqz8HHLdh6lg6CJB8q09PC2CfRRozbUh3aeZUThJIyWxw50esLR4yB9gIUyB9W07P+8wAMpLznDyQxIhYG10GAAVIGht1Hwsh9Trqw3Xg1uPj5EUVswopiztoUNuEvYAFS4q3iqbmFnMQQ8hRKvHhgmunXHYGUYtia8vLPMGgDwwIJb/MruuOCeOZDMCleWQJmVI58VktLO4zS9Byc9kfDkPJEtKD/CX0BjlwhU5r0xAf2zvHibKhXKoogQbc1IHAqZWR+D1mQDxSp2kqCmC2zw644+BEZGtUuFqqi8N+204UbOpTKSvvDuYoGxqJf4znqILFKVfP4XZ+u1Dk+KGvS/+d4at8S3yk0+u6eim8XsWNhGGiH7NPGNP5AhXUCp/oklGZZRGBNu3dUMRiTLmYemNtln2wrlPSX1eO+jIaFTuxoi2ahlEkGIBXhx6VINgxE1U4QkoHsjdJxzkMpNDGImEEoD92H2DVttRFnbAuD6AMRRpMRNUExR3hO8KElDFg+qS0AY46KjkS+YgWF7Ha1Gu1jqzn7SWoD2ZxVY8uZwTSslOF0C2YgWeAMyY2ALvZ1+0EfQJjM6JTvx1xdDqE2RLrIrLFiQqcey6lTvF7GQU6Qxs74MXzDUWrAmQZRxed7qbDBRiuyJwAQONOpY/Juf4vmGK/QejAOmfxXcdk30dYNjGfTwat8kukAV7DL3SXSPDJ/Z2ytzFWfv93Pyg/+uH9MkaU8dTBbrl4xKk/D7vlyQv9DEy7WBC4Be5vMF5cIbRAOjXX1sqOodwI8UtMAy9xeqiC8CMOdvjGMYc8TK2V/3N7pPwSwZt/dDKKo/+0/OzkJ+W3yI8+i79gsLxY/piTkNsoiAOmeivT2+Xzq81yc3SlPG6ulm+NLZY/ROE+xmy9CPOtYWVX838Ehe/ozt69jMB1r1+SvoGqExSGg2D8S6BFS76PVeSUR4bWgodKvBl8VPf0zwENhuMZLCeEw61LElWBzKoZ1yydkBfq1M/k1I2L0BF+VLB5qySm2DKiIjpBGZwyCEKpBHKquMbpqzzvKO9Lv6cWKE/iIkESqLeBf9HdGPGVcUcHuda8bSvYLQbucXw7xhB1UPQqGS00p43jlFV47QskBw4CcxmojAV1UcqlKAXVp7SCknmWdrXoHQQjY3RIJS9+xYuKVi6naejuk1aPAcF3inCnKnpX4lQ0XepR8TvLOOYhT0g6V9IIDSwLMDwFtoEBWRUOn/Uazxjz1SV1UQ9eneK6JyhN4nqh6ii+BPme9xPec78LqglFrGUKbRn8PYU9OLANYDFaYDwLdZSFAE0GbNt0hTrJL2lXN8wAo0EDxl0AA2iHEaOfwVACgAIx5izX4hLZ+nDERlJUOC+G+XtKPx3Jf4QcNcN3vBSUJzYxz1hizK3cXFPBuASaKaHcxoNx0MsIMiXXHAEciZRx9BNYwC/AqCai02GIkbzYUkOAeCUzKr/jcCfMQrjDQCAX0U0pwAV1jiQSGwRp6nKtQuU93qyYjaHNp/CZGKaRlZBch8Ag0lGqxVFVrth04BpXWWzHlworcV7UmKknv6PM4P6oMp7lTk4TInKSQzrpIzjVzyGjGWHuKqs+BH19TaZvw+5O+YP3npbXEKaZpflyzZvA/eFTTqJGGd2B+G8S7zQPZ80wX5lwykdwqv6eFtHOb03CZgj5Kdc4Q7Z8k5W9f7/5ZvnxxlG5w4nWf4up1SpT72cce/UU/+FFwkS+vIT1h0L9sLVQmjMn5d9ZPWS7zDQO6Dvlt3rz5R0i0e8O2CeGX28R39hrIFHBrkGb0BNEYjSH2QGG/zChtFIwwJM4l0En6KOoi6FD//whjdxH1wAWt3JwkfoUxio8DpQqlFBUp2zox3MKEnyqwGndqIxyk3pRVdSLlSzqeN4oavlrAgFQQamM+vQ3UxSerRHwKFDgGHeaQ/v6V/W/GQBxYpAzA5dTPEwFhKsqWqeQJ/I2XdUfUzf/+ix0F246pwCGz/DP4DAOHMqalpt85NvFCVeQHaF1lAM1pwhN8vcMlyBYpa3y9QVa1em85T/q4YeuDKeEPqth4UAwggL3wFtpoTJQwymCwR3XuvCSloMKWgUfNch9n3c2FcOEcpBCsY2VfGBZhBS3f2Yzowy6Wrcqc3k4YRHIbfUnMuA7kPOs7atHdOeEJ6gzYSC0ysNneHHzPMYMukZ9MU5Kom9973mZb56Wn3tzuXz7PpGHbu4dYKXQvWAhsNkxgFIIdQoOsMAcwZxveqxSnJgEN8Zqg1COeJprJsVzJaQxIdEqc4kg/VHwShhcG1zeaot1lJ8O0mxGpbyHGxhN5SqlEe2utpnnPEoEoqh0XBqNExIimvdHRnEJd4xK9XUk6pi+JHNnaCRBz8xbmTxEqxRQnQwZNVxaHoKUbCylbaqLtSZiRXCP0cSA00mIWFPfuk7HEqx9o4OJqaFP8Az4grDwgatcKi2H7hPqK/MwIId5Oph5oo2jxatLM4QTtGItfbpDWhYeniEr6OtTM2UZosW6g5iXaPtN/FDXL3Ifgi5Msw+PvFUHTN91AK+yz09n/JCp2se9ifKbWElznd1ytTOb6/9otlX+4gX+AtpdZiQbHhI2wZSxd+vl8l+yyfh/OfqwfG2pVx52Pi7Lr82XzuT18heEJHyTqet7LOvOwR+r7Cc1rqeL8BuhTK9hbPpDf0ehCawKn0Q9883pmAyKKoGuoDwMmGVvBQm8Z0GDwVJL3nJiK/4YSCO6FJ4EKEIM95E5PZFPpYl/FAKd6l3whGap1hVtaSWId7OzOvIP4bETQkIUatgDpaXVQd20qz8tU0D4wlcPPBuXpB9Myyl59KlDi8ZG9YvBlkDGPTvFyzsqQ/nOLTYqCooENjoPPysL0Jt6HOC6WMauv8A6cfTbtxbPy3Na6dXy1y9qvfqA6BM/jEnSOlPGoqioT8SOZoonHfguMaRJ8FOVWEdXDuWcTtZpIDqXQTJxaipm4NCelHb2Rhrot04OdqzGTDdZ2HGBJ6vh1O+igosHh1g+5u5ysUCaY7ZCB33STC1R6qaZ8rq4d2U2LgDqt04aQk7AC8169qmB56PwcQ1fgRasqO9vbJU/enJSXl9lNoDiNXofTgBJdEAOyBwbsH0ohxPYB0c6EKCW9TRnTVUXnHy4h2XDojnYl4AIPAgPUVhi10FovIcHbKotY0WAlEQdq8HpiN/V5vwJ4I5KckADU1HLyejcMLkjqSO6008IaOE8R7v0AGCsC4EEwRkZnIBSrVtRZQxpIZOKPufNZ/xJ/QgOBFD89AvwCCOZS8tMUwxY5XcbhmdCUUY5umqWaWE52gaxWgLUaafOCGJslIwkk4lLZBoGpp/UnwNi5UBgaE/N4gxvlwUsoXG2XMzv7ELIamHOwgTC2wJv8waQ0u9bTOsur0EPnudRgjRHcIIPy+1ppqmEI9jnu3v98gcP1sv61LVylxXaOeIdrlL/+60Z9vw1y2d275YnW2zLAe6x+YXyG+Q8vzQzy5TutPyTwaflZeJdZpauYOovl2+MzJc/6OCIB44LOCtfd/UYhEmHPRjL6VwTxqoR5eAFuAzZqFNiGN1ZGfC7Od7pDdjgWT65pnBmxZmrckD8TzC8/pcWiy71WDIwgPQyxlKnSgv+hO8M0nTLjC4Mn9WiM1NFMkwwcma3BrwkBuWb+I7gOycEKoEeGs9cXgY8UwWr3UTE8zuxXTCI7TgQi3/dATQRg006xhnPPcwv6tbqQVFSRlJryclfqAmUERY2+JAP6uk4/Wx30Q2S4Ejq0OJRHngEXMrX4NTvyI5+PhUG4krbWhmoXyc54L8JH/lQrHs+5WH7FLeIOOKapxKBYpQbShA4VN8ZCqhbOHX0Gz6QMB8pIy5po/qrVfI8b5u8HUSy2goALR2z4NiVP63UUSxh8av15GKD8q+iNqvIMQtT7qRgHzgOcnycKH8RlAM84EVjz5KxmDL6s4Q/sVnQThoeYoRkQED5dVl8ajcOyzufstqK73Sa7XuaS3RUE5oHRD4N6HQGivw1r01d8YNAmrkShHItRlUR7gktNqBG7LAPzROdVSIZKajFqUBGK5CrA93YE1PBuOeKrofYHlTqSckhIn+ThgYK2F5SvwgDwqNlolrRxZmgvBCJMQzG7ZtxgcBKjx8yklkkunXbqa3UjDOWzxr7YT2N8gKP3jqBl/0VltFB6jZc0OH5WRA13zkoYyxZv9h8Vg53N9ki0ys71PkCBI+AeJkq0x7q0dJM5C6w6Y+w7zR69gZulTJ4OOaAUTRxabIJe2cbhzvWi4JMlEgY9hI4fI0R0xTBM63TcokcU/omxgnq3EW5tFhTfpNTR7VedonpmGX68vCgX/7x6bXy0cJa+Q8bx2Vxbqa8unE/CmZy+2n5iH2FM+Sh+uwcyfA8cZk+v0Xs1L99u1MuXzgiVGGl/GD0QvnmYKZssfjhnsY1lIh8poI4oa8nyb1EgKsCyz/DFJyXuHw+7EJHrD2n8FomBk8q75lOIe2glb4z/RId9JXHY5lG0KGbeNHKOWbDthab0xotLBVAhFNFxcCQ7TPg1udV3jqGnbLnRCFgAfWxkAzi1GfiPWx9FJRKlHLSDIHkP9DTB3jK/W2aTEmbbNXUj30Qa6CWU3Ei9uBEn4yxXV53hbAqSLhRsw1yG/IQJUnn9T2pLuS1DPziC7izMRgFxVgoUtJHVA4iiCQgg352kaEcIW85Z2wsutioexBl5ZqYkH4Ar9a+Aq/rxD7ZV6eyLmD1qE/8qZC1cKSDyl34hUX8OSVWddqXyKuFuG+dkRvakLftvesAtW01kXSLkEeBcQP+ZfM8wcvZluOAA01cAY2M0KgDmn1QyccvrmyDuj60cYEjgNF+QkgYGLtcy6IIPD+CtTZCfJenhI9psZgEzpHPhhM6wFezLHgSM7Ux+XFeiflGhXaY7tWyIoax2A45CtXzAw3EY1TF3+F0UpMw8R4wY7VhKIcF1mM7yBhn3/UQOjMiMGhDUU1m1k2ARx8GeGOlhpU5hm2DKIcI7VSQJRYZsTE/HUFdtu2NTpaTY60VCaJCGRbUQyw+Dbe+WoHRpctocYw5dAqMR/D51+/jZG7u45/bLW/Q5xW2/J5g9ZSnT+JjOmhz0CcxUuuY3C9gyqf7++UGuKAR4AY+PlvgBUOVS/QXPGr+V5UP+kSVSGMlUvvu1iSjyOY2ypU4nZVZuoxAMCr9FJbMRaLPL5FqmN3A5f42dIEe2MtlAQV/Bye6fbhPp/6f5zAUeHoZZ/0UTPqrM7vlfziw3UO2rGzg6D0u6xt7ZYjj/AWn1fw3h6Pln01vlZ+71MFv1SnzL71c9tsrWFML5TscSf8c+CdR0lPsA9MRfIAlpvAYSuJyexvnpBHI4Xr6py+zC30kmYF/xsQ1gENu7MCoOlUNMjYfeoJ16X8crdCBrsT6diotfevihjhCKKjRAS08Bl7ijIY/hpj0ESqFC4yr7OSVrFyLaSuiefXfkAUV+D1KBfkMbwh6Mmn6HDzJz1gHHshqvQY8e1366dcx5U+AUB6kgYqRthMIqkzAJ1rhziBi8SFDXEQpWrYqB0FSUThbcX9i2qGcMqRi1j+koqYISh5Mat3RcRdUxIEWZqa1dEqrS4WoUhlDaSrgwQfNOfUaYXWQC8iTQdfA5oAD3PZbBdaA77PST3kXqLRchUvLVjxqHakBwUKese8alElNoyIWBuB1WuiOgCNOJhqOwM/2VdSpHPkHtySMYmAMo4zPNRWfp/WcMDsaYaVBhZXspVISGDWQEpzLdR3rDnqZnlJQ/7AZUEaRbRcFhYEQDIgC8EBMI2pAKtWn5byUe9pZsRjsLAh2MLO4tNeUOwIgl7ZlTJdqR1E2JsAf0DEtK/AB4+H7YnR2Dp30ErSGJgnjhv4CD84EyC0tWkMyrTErIyyl2sks8RIeMQDJDfwATZx9XUb1w/29+LgaZKucYIuIK4DgKwj0JJ60z+ehzEI9spb7t3qUwxVUVkmSd+/xg7J391l5bcHpzhGbgs2A0MYRCkPQ+A6C/GD/kFo4Sy81ACwjoyOo5n82P2MF0BoEcI4e/ss9RzE0jz0ueyj+vf3T8llOIt57tlWu7zwvK6RwmZ8ZKUvkfDkGCesEcS5CqDtM/y5hTbnq9owj3H/zg03PnGFFD7Emfu3n2Spzj9xezzkK69/qPy3/Hvj4o6en5dW5rbJ154vlf+5v/v9EvVmQ7dd1n7e7+5w+fbpPz9OdJ1yAGAgQHASKpCmKoiRTpmyLUpyUVaaqklQqqYjlslOJkwdX5SFVSVXKSVR5URK9WJaSKLbIkmhqsCwB4ABSBEASIIFrEMCdcOd7e+7T3Wfszvf9/rhJXzT6DPu/hzWvtddeu/x9qu09ykHSL07fKB9cni6DqeWyPj1X/nJkpvz1wKRfdvtgjVWkrdaSWln3jy9CjK6oz9rNP2pKWOBPGBzgFqrRzdqOFhTP2kUwjEmG0kV2fhHs4kPrKonHWMlW1NSSEUPSA5wbK4QmWMfSIjvW9D+ipaD7QnhAgS8tWZBPKzvCE7gqMFLiBbiZvyf3J2AMvekOUaYLfEBqzFbGyekF5lntXCOA9Fv4XEGxz4aFYQyFhbtiufSDOUVwM1/VrVUuxLm72FA3gltXU8uKZ4Blh3BJrkuD1jI32pueQW9x0aS+gYpcKxJeMg4k83pgOEd7aJfgN2ABEqyN6YkLCKrLX+OpWioR9qxV3jSPT/5y3QoelYTekhSaADbrrXQJnwTekCPzU6gxgbQjIBF8aP0LD3GhUcKKK97iuRE8KT0xiduYsi66z4sXhaTGifW7RtEW8SgkI+FG101kCZ5gcMUTdFHhRuvL+JW7uZkJ46fQJf0ZfhIvQt6SVyNYQQozEkeRfBCaOuQIwjXwnTpXAFpNIuoHEHF2NeggiZIEbvG7si05giBygjl8jjmr767femCgPtJNbUYfHj1BGJqzIuEd8lyfoB0xUKED4qlsOZhK/+Pk/xgb8ZjQBH3t7uyUM/v3y8rxlfIquzsu2rmZ9WvcTWAZJGxjtXkL8pGJqzIeLfFW0v+DPayXFsQjwSlD6MN5z+Bu7bUp6QszvbBn7KYVJNY5XmRQ//raVrnOWtRsjuNh5VxMIOCVgPyoabw9mWUCRS0P3QIYAu1Th2s8bzWHxvnVc3NlDAF7hmJ7xzmz1yDgP0NxqXsg+g7xrFXiVc/MW44YIwuBz23t5avXD8pvbh6j44Xyjxv7ZWVpsjx22C6TM2fLHW5d1jJ8YXey/AyByZNkrtdmTpS3SI/48uR++eWlgzI73yIV48nyCsVp/i0B+e/hep0yHYKjOE1iEWquLnMdxRVOwFhKF7ysyXikIQC8PogMYoY+XLKWl+6GzCRdJFeO5/ZZsIUBZfJsqdOR1k52E4FBDWEeiIEAYWW4gMZY5h2EFS4AdJiQA/CGNEIDIkuB5w4TlfyiFGVArXZ3iguH1lWW5lsl/IAgsPOkprxP8El8dq70JVVIMyPSPTSkJeMYulfu7mVecf2M+Th5N4x0ealcQJskSztt2mod6HrGqnGetNfnUBEosHowRbbmGWuICy/deqC5Cx/oXilk3YFkmtWcVca0ka6MJ2mxRJABa5UGaALWrI318hbcm/4AJRNGkD6NqyVYTndJq2ADweWxivwCYV7RJv3yGfP0LkrXrwWssFIgixPn7269cSYFmVZUrqhjbAWkgFTQKPzsX1VmP1XJacDmmMwnB5rFOmvQVTav0fknlslf42re8lx5dggy2h4h4JQhPbZ5E+4BHq6NpxChPOQcBZKmMaFPhmJsgGxQM0lgTElfXY1nwqVI5QEED8hBqNhBjiQg3R1MbWZsxtiBkFVCOrExkOXxn2gDAKw2EDgiBzsQIMkg/NIn64ugaxN8Ps9Wf5ts6ndIePRojSCyT4N8uq7b3B7cx4W7d+0yOTPEegDoUJMUZB4g4AZoOhHoESHxE5eCde5AUJepQnAHwMw3ENZ8r4W3AbT71OyZh/nuIDw9uFpnXEFmzgozpGUFM7eITa7VHXbNQBG3iAJ/ZJoSHiuzwGBh6rD8wxOlPEoB0QeUKh52uT15qcU9fAhvfPSLVOdcjAAnqL7POb473GYD0y6gGOoQ5T+aGZTf4kqrI3bqmjCIKQ37t29TWrlbJuaWy+/OnyobGw/KPzoPjKc43Ny/XJZOnii3xh8r36Be1fOdBmsyd6pXPs763SGiRBo5OQhNrWI1JjiQoIWnW+ssocIHhJygtzhi3eJIZpXpPeQuLHJLb54xURGiwvIFKggSCBtaqM7bAR9gpIDQihG/XZVjBI3CApgjkBK3khsY7yErQGqZm1rdWeRgbiQP9MP84ipAx6nqIT2Df0MdCWQ7XwSDu4kqDp0XY1f2pOfQAO4GlRS+7kiztNAvnTBvhYcRU1bJeDLfEUwso5pkLenrttiPXsYYfZnlbwxW4evOmFVI5ZmkavCM4QPPlJqFL1MaH9MKV9hqoTiGAt8yOontAstKMQpH2seCp3++16UT0sa8gh7m7sHyLgIM0cr8XCXjGI7xdXALAOlHA0m7hqEqi03sBi5V+yGuuHTCMlizoRTgQHUQraxDizeiYAxZGK5pSj88r2ckXp2vNMLUwQ3zQ64Y02IAWvEHGB0wHwV+3GL6NCat8I8lDSztJ64qK5wAruPAWcs9tdy0CER23XNZNDyEcPiEh1kSk9CaESAStMhwu7mPX6pm6RHfUDpne5W2SlGJWbMxBC0CnJwLQuBpwgsYohuMRa4Mk9UHt8SLVhczAugglH5y9RfiwttaNmh/ma34ZawQjadc5w6BWV/o3Vf/GjeUWAo7X1MG0BBaI8SKVEkKKgfnXDC1d0gxYG6390pZQ3pdwbK60i7lrmuk5rF38bURUhtg6SQQ89YpLQbNehHiz/+XYwQsZNcdchas+c5oWCroB3JHhNkEhNUBnutKBdpe4+/e7bXyYwjqgyvjHNMZlp9ephYE6er32Ha/tD6KSzcov32zV379zHQ5MdYp3x/MEPOaLZ+Z2EW44k6ut8ujBOT7x86U/+UH18svLeMWU7fqN7bulF+Y2yzHZltle3yp3BlZKH+Iy/fSPkQN4k5BwAo5BXXuLGSduh45BKwqBER8m7XJfBKbTGr6ghqOj4A3AoxP1chDJHKOidCPRzU8X2oROQVV4is+IAHaD5aRcS4P5GqZOZy5S7FQSMWI+y8TSzvgXWEjDTqoVrI3IYX4wLWfS/daMALcP+6wGsM0JgTFRiEpRCNo6FMm9zyn7pdUqGWWBTMm4r0MwYOF8hQ+DqBQ07rQYgHb6jzGYc3QWYLojOGpDi0Z6dp4S6xPJS7wQGuF/oUtk6qYkkkndsXX7rY6ViwSXTxKWQs3JohFRq4eazIoPUpMM240c6ziPAghxnPNHoJWcVpLXX5S6NtjXXj6F6Xr3PwHBMKTrtt+TN2oATOFrlawPDaCAKosKrqBR+UpOqV/KZfxVDqVbQEqsBxJ+u1RM65O0cVsaBA7qcJJlRJwHIanf3gS3mXvNPCrwgcOQd/MzXSg0RxVUq7gAuomA0NDADlzCR50sb3pXHoUx+RhuRCYXKSJGCaklIPGQxi6Bcw7FteAoK9CckxgIlmPeM4MYPNI1Lysy4foxwGZQJBcBeOU8MbFpHyb5XwPzBtCc0yIm/+yw+FiRtAeVjSQYI/IgzpJVnyNoyR3aeQRnzADz7sd7euFxSXmBgFgwvcQFlo3SrbLCgzG/gkENeDa8zUA8i+u9csVzKkPEsQ6SR6UO0ZvIXTmEWYK3nmAd0Rwvoc7p36VGCRG3eddjqkcR7A+9fgiH+9CDNoiEBNLw9viKA2zF2D8aGBe2Twsf3XloHyVipt/tzVRWve65dO4fZ++2CzfuHlQ/vXrO+WfX9ssv3r+VDlJusMXJ9vlk8SzXu/PcbnpXnnhxm45ttQvn2gdlK8hiL2f74fsGHSnp8qn5jnvt8ghag5L740/UX6P2NvXd+rlDSbwEaorXMBFl/EkTA/3GgzVVTI50iVJQJZe8eIDt7NVXH7Oy3yeGk+U94E9WD+fgeMOHDXK1pGBdt12BUvHIzesvUNMzbK5kF+0u5Y0XanvyMnF9YE55LgE7cGTuUVWYLCgIqirtDfcHK1LH8YH0c3MrWIALQ+31b241zLBbgQZCLfsTpQgzFsdDpbJwB3zjVJnAinRzbPeOBNaZO4ydcody9Ys2rw/SCcCRb6oKpkohIEhgjc0zTNaeLr8ri25e64PWvSWGudhhr9AlCfgErb3qzQA43IG/80nVBpEzQEjd/cEMN3St0/4Q6eswZ02cRbhiGWmANYlUzYiGnnW+RIA5zOD7sI8da7oJXxMm1imjsNrFYr8YsxSnjdcE/wCazcN5DctVoYEb5WlrRKTrw5JBkcchmeHZL47lnHHXoPYHTzq+NmJZN0KHuHDavmMNYmPrAwYs1D5XXfWckIqIJPIx6ErhqItioInNZBUALrBKgu9PTLdq9ySERjaQJzmnEmi/sZ9AxC594+/AySpRyUM/rl4p4OcBGgAVSZFkBhs7bOT1qOESggNxOnLJsdKIRYAIegkOLPhAdoYcYhRLrBwHxcFEOQ89Gv1s9Vw7lhoHSV2wrjuKnXYXUO150qvGrEhgdZl3B7W2j7z9668v0CK7GCWngIY70Bk7wGsS4zhUYA9hNnf4dr6Fdb2FhbCJlUzNczMM3Ncoed81d1ShtaCjGVaxpu3N0v/jNOfZJ3CjjgDYJ5kPh1icetYb9dJ1nwZgXUXwfn3gN3TEOviIxNlisv6rnBa+AZxte/dUCCOl2MMfAjjP4IAHUcIru1wyzHwaCF0/ve16fL3WM+vf3AOV5ckugc/LP/Z0yfKyNT5cmNkluJ5E+ROsWMK/GdJ2v0szGNqigmvEqMWr1rYuVdBTbVzZT3LHMaYjC1ogmsJePBbdA7cUpZIsFplWLe7GxQJVNAFLhITwt58oDG1O99bVUDGkwBlSHV/Mvth5Fw75ST4kSgNNktFKjl6gN4g4phQwjjkCiKwwplbrCvmAhuyTmgHGOlmyQRJJWHQHjuxKl3L1SgY4loJAfCtFZRgL+PEPcrsGJp/7mKxJD5RaPM9tBKLCyapbqvhBhr6i+cAXdATY7gO4n+45eacuc4RwgcePtZCSYBfhU5r28kjbiY4YiwmBKcw1J3jI6wVekChGKi2Xj2gjaBSMCk94mYFK8CZ8RWalWpQMGndAw9+XXvODYoEfuL22Yl98k+sGCKpyvOwYp6xpX0MUE7j3CnpOsWD7p+ekmVvRjg3moZBLnTPMwqljsKJgGMX2BtLnOIKt8S26FALPbhlDIVSRR/Vmo0Huxxj5jrqWlIqKIbmL2IR2Hl+U9piuhUdQZu1MQkVzdeTGBjEJFKvf7czkUg/6dAXmn9HEHHqE9GJ2kiCHvgdvUpEsXh4LpdNIAj05WsEdCVGY4DJSwGoakBlgoKSP66evupUcDCXFanMp0rvHTSBF2CaWCgRE9mFuUD25hbn5kjiJP9qdGKCHS60q4KU9u7e2L/Zs2LCNUhSWoICZIUPnPc95qkmneBQ8ompyfLM3HS5sbFZ3tzpsKHA/BDOCk41elvmADnNAAYi2+GQwmgrxfR2MJHvEQ+7toVlx9iv3euXHdwxZFWZnRwrv0xAfXpyWI4vAgeyzp+/s1fe+3dH5WeXj8p/+dxs+R+/q7BmnkDa8rVvkfV+lwtGW6dOlO/WVsv27kH5lfEtXEg0D9bRu4s/hWvZKi8hLF9DI7dgiuMA0/IoVmxVMjF7/jB3rCet2hoCBXxnHAkwLjnfW0ETrqliFKwxOAXMprTIWBCH2AHRaHbeG2vIThkjKBRkJIUEsrVyHxGWulg0lzjoGuUHvjI4a0wxQ+DiXEw8VNvXcjU8okdFSUqFzG3fumMGuQ14585L2lqB4IDQgIrSZMSkVIhXCN86VRmY9xJX+uZ1VcGTz5BCnqLgg9CHqJT46lhElQUF/GhvrC2WM6/dZJKBzA+Kq8R7aTiCgHXWOLjsbrppB4GX8RnmWQcXCh6/PwLeoUFzBKFthbBTHcKMwk7qTO4W7QW5Xw5Zs3NRzMQsgBdyooK5a15JLTJ4fvjMx3I1HcscRfAp961wMaEnBLBNAk1rlRO/mZBzoA9LPyl0FZZuhGnJsGr4jz5Y4xjHt4yzGaZROXj2L/XKHFzesj20JJy9hVorTqViDOxhHMr1utNfWVPMlb5YRp6VZ00365CYbUKvpcLxdsPLwtR1q+zcBFHggls0WAiTtyB0FKawYUoXCyCQlEqkBLDd0jVWXmOHS7/3iHwgM3k1cx3Y4xsKKYUaDp9KI5MyoOlkLC0D7wQpATuLNJg2FvcOkxe9ockrAfQJuBv8m0TjjXNouLbVKfcQWIvMdxzNpoCzZO4oR1kcW/fSbXMRbia0Ow8pZsYidYk0++twpHWwzGw3s9zckmXObf1ca5oEyC65V6wXs3gaOMwCUWFwEwI+JcJpfx9/es/MP9zC61hJL17tldfvU7MdIf/qzW55emGqzOC6YjRxAwwpCvx1228Xs+36NhYTsbLbm53Smm6VP3t7s3zp6Znymx9ZKC9wqPlJ0huOkzf1vW69fIODzp9GgP73FMp7YnSjTM6eKt/pzZeXiXW9ynGau6zNci4XiIGY0DgGkk078KoluAKYQ+wQUYd4pJeJekrgAJwoqD3bOcCkTx4bOFLzWkHApYdZgJcoAq18htWjJSRR0qcCKju4WJVaB7ARrh445mHjG2ryrjTAMwlOo6GNC5n4CUKgL4nbfmAS5udxFq1yBVhSbHwtO8Kw/D+WgErVOJUMaqpClX6h4HR85sn/jcW0wIn2gizuucfQArQ7EZeEdbogxlUTa31FHDBn/xqLM+VAN9OFq8RTiJF5GcC3ykGSGlln3DTG0NqPew1Ba1G6jjqWtHSebXmEa5/dcW+ZqtNf8vGAizt/0mXSFBhfPtKVdd1MAP4BRvwqdBXMBu2jgsCR37sMk1dNW9CqcdMq8TV4QUFv1QePJQ2IjR6qwICdme8p9qeyoBsrvuYoEWOCArhOqxkF46YB+FM5HRH4HeE+zGmspjo0NJHNCeDvBCBwPad9XH1hiuoJvrWiPOisBa1XpVByFXpITMEVJlPei1WMhStopVXxP4Sf+2zaHFLBxPH9GaDsZHMRfYgG45JfrxpigXZLI92vBCZFnG6b/9QKAFmTVhPRA9Opc6Olw/v8MDmRpjbwx+J+CggDbMZJnMy8FQ/o9xb1pMxgNwCpC+gy3HEwGREDDmHIjTAw2DTIHiWOs7u3URpdIuW4cI8w8zrCpdNshfEOiV8MYMogiTkg2gNwtYQkKZCqnU6R7uxAMt95UHsLd7HPWg4210v3wRYJkvUEt4Fgrnh3zedZ3odoe5XaPDdA1BzraYOUZwDi/b3D8m0yyWWAYzwrA10kF6GGmzmGeb2JtrpHUN+T7a/tYjHe2S2zK/Mcr+ly5GVYvo/J+fWru+VvPjbLug45ejBZrrL93eL6rt//RKs8PtcuveYcB48fKy/uNMrzHIM6QCCcBw8XIKA95rMH7JoQpMchtJDdOVUze5i2T3DcHby4HcBXoSPiZZS42UBe11+CUgtn9w34VTtdigsIG+vQlAGGDaO5xjqMLe8Y8FXw9xxDkifGonbNlj1z6WDdDVEudXPpeN5yKjKD2joMCK5VJHyIFSKN8RcmlSGgStwb+qUfLVxvv9ZqtjwNrYCp7haiiTWF4vThsgaeAT7ZUWMtClnbQc2hR3iMdfEcCk+F6tPZpaNvPYFoY/BdMTgPQacKVy080358XgZTOGlFyPwe5o8Ugdh0BZFtbjxGCJngq5DvE/vUDUvyJaZLjsAwdnDF+1HW7z1/lpapLmmtmD6wh669bFhY6/a7ZmtYubYIQeDk66RcMHfnaw00rSWvTjPD3hvBPQfs4XsFlD8KFN1S+xWIKRmuDICeFW72Y5/G50asOUYby0G5s6zwZkhcQNxg+g+uaWf4yBut3D13Ry8pJ+/TnnCjMXyPEBJWzCHxSvDmZl6sVTDiBg5iszKagLebPMboIFXpUO2A+QYhPjTZkkVLx0r+CiBu7FfA1dIyB4sRmHColr8Qj4tiAqY/RLIGsQ7AxEkx6KOFmrg2ZlQP57mDD2BodnfUMD7HoicQPqtUTzjFBQet7i4B7F65we+lHXaPuKPsOMXnxtG2G9zF1yd3R2unCTA8QmJAV3M1k8hcee2i+QNosw7nZ7bDGsjb2GJUCun12VmrNai/iYDhSF75xbmj8p82ycnCWjpD1d9H8OnF1Iv3SR5l6cdJTt1m7k+yTkJR+N5oS75fhzBu8/x54LPHOu8gyG5ybOYOV2H97ONnypmT8+XGm9fKt6k3NXKMQoWjBOApyvfq9lG586Pd8o9/eq6szLGDiVZbghh2asfKv9mfKP+aKqB/jZv0KCA/T8nVOq+HxPx2FEwQ6gRrwQBFAPA/cDgZawqCZY4y/IhBVBgmB4EhGAWBFTr7mKBWfexDWMmdgZDdBpeRJrEQ3U0KmxPPEo5QD0JOIaY1zXdQvdYOKisw97mcRmDcSrvirpEUW1WaJf6IZbHL5SENBI3CRJwrOLWKdSEl0NCBc+W7lOeW1mQe5qXFnzACr926tz+tKiaV8XQxzJvTO5AxYJmKCe2NOeWHz5s8Y3zSMAOLAGRaHgg5lG91cSmWD/9yphRhJRxVvM5BF8/blHic19A0c9ijaqyKGgJjjtAi8zff0HifDFnD8u2q7IGUhSnlLZOnha2KtEqn0GBXUBgvYu7Qk26pQtLYoILEmJm78l54YjqDBS+1VpOLBlZUFPKkdwZFNbNkVlbNn7lrHHgTk/lnnnkUX5bcVsklnUjykZ9pO6bVqzxgTHnccXkVI+VoX1jS5n2hq+Dyt8XuOAMnX6oDbyZsxDgqA5UCYigWmdTEcqD/ijd1M5WglbWtnVfhP2NmPozNOoN/hDC1s6qAeQ5Eign+80ct1UVb1EFofFw5nY6degJmLEb/XoFEA9QnwAnJaRrCyP5PwkbrusQjt8KZ/D7Wxh7xBslikvfTVMicpebNcW4tnuHzPZhIIXmbDOfbtSlSAxplfmoPoYAPy1mad9iGngSoTYCt9tFH1jLwH+TNFK0SKdKYFp8LLM1lCchTat6uM4Zl9O+dqRNjmi27+8yDw8KTWAELAPhp1oLcKB9apgA+ltIStaO+dbVdPkG5zk+ypj+4ZfyHip3TMDhCo43mmyZW8BME1DJX1nzzvWH5CkX2fueTi+Xp1dHyMjB8ZrFX3rp6vRw++QTHe2rl2Ob91P1+anaqLK92ypl5BCHCccBZv53J+fIXe/Xyrzhqcwtf66P0+Te0GIBYF4u3ixlt0L+OlNISdmdvFCIUcdHWEjYwGYIrLWfXrQZl34HALEyNxWSAUy1+hEUhfLRoqmA3hEx7kzg1JbSkvTRB/CcYz/g5ckNfCrkqpqPQBt70ISOYHqM7544qHBViGyLM3aLX7UpuEPhQ8NURALoF0eB8Isn4jFQW7U+buFl8LtkbT5E2shsMbo2RuKMlM+l6uH6FjrRQCTKhwjh8bkkYrSOFre3chBjHhRI+NE7owR1ELQSmy4OyvSqumiNal3UibGlusqcWWM27NMnhk9p0+RRyyXa3LXTm3OxHgeztT6YtxAKFpiv4uFxgLYfAexPgtEaFV3MBR8kstzqEAlOtKz1nkwGrXC+sRmJzk2vXxghxuD3hvHRRFaxasZUANfaHQcB3EWQYIUAWePAB89KCEj7iJHjzb5auoEZQQSveqKPFJawU3LHHaWSCtlQ3wu43gzG2u8/QE3NVEEL2KBjaO4bzARZdwxXQVmxk5mV4Iqcl3h9DIWU1CsGvII4CAE/m7ZkeAdnDeywhxwVAJDZV/OUJXmsSWoALCERjqDmSjg/kZBTdCMyqaBSaQGx8D+CgVohUGLsqGqvNaKvbAG+XJkBbBnGruHrHuSHGSym3YfwH5Eitcbp7nRtidHV2EGLWoVpijH3m8wCg3MAV8SqsR0CS1pQ+tbExkanLMidiGdaqAloczlJNKgBmW81yfL5Rrt1aK//sQ7Xyicfmyp/e2C8//MF2eRLBZI1z6gSWFoK3t9Ase9w+e4gb1yKh9HMn62UZTfkDCt39wY1O+chMvby+3S3PHZsoHznLDTMktA6JsH/2JDfL3D8on8IK+xRHZ7SW2vP1coxkznuLs2XjwpPle+wM/q3dzfLxhUGZPUV8hQsbelzc8Of7rfLnayPlr4gTnmdf+lG01gekK9bTxoIF69HIEmV2U1i0B3rdEcpBU4h7XOvrfffdHZ6qHpM5MxAqz6tbZCSFnPWjxJEbKeopBUfKqgBHd2eEXZerxEBriFsN7+n7MLh+PBZptB7trLrg/HRNJcgErKERBUuEAwJdISBGnIS4ClHStxpcraqLwLDQETjk+8SHeJEtedYswaY6AN/RUaxm3dOcgXVtjCdJVnEaxgbvD9dhAukhibymFxg/soMciuaBzIPvE2PheQ/aZgLSuMIQ2A0J2kr/pmbE1eT5PWi2gfVtbM7qDZ7HdWp1ijUqSHMRMZA2b02XzKJ3WiLyjlNIaR7WpYWTbHiYSFcPsRAhJE5UHAfQf9xYn4MYxF0sRAQGzRNrc5dafKnAdSGsix4vyPWA34QLxKnr8Hk0u8pF4S3teCu5rrhpRJ47dD6BJXNQaLjJoGGQhFz61EAIPkGkAlVPTBjsc0hePEkjhhia8EwDQe6zOS7Ee2GQ40UJK4B7ZEGX3X7kY4R58EAf43WYkQWqLI/wpDpKZGBV22YyLSYPynmAp/whHlD943OBTxulcMUoFZJ5NkhR02aHAYKvrgBCcrvVjaWyzyyo1cgJuCGCar88IN3hSeJRZwlM7sIMbZ65RzzrPmWWEQ/Jkp7s73B4l0A+knYN4N0AeF3iX5L1DK91IyR8EyLhg1RZ0IK4DFafABNTAOTP0HoLUIWHSqfpe3p5sZxGWI3t7ZTJ9g7CZ6H0NvfKaa4POrZELXLO7E1RGeEKyPvxFsFyguKPg4gLx+iHMi1vrA/K//P2LqkIY+U3z02XW5wH/CN2Ej/CUZdPUpHzEG33lXf75RGsrtd2CYZD9Dl7x/jm63iE4h5t17jI4bcRvU8/zfGbmaVyrTdZXum2ytfaxM5gpnNUHf0sQl6YGhTdYw0jCKIGGlk20xWSUmRAKCkEbYzHPCtoIsIo3BDcaqniakD0RwgvicicG019Y0kyQRIewZFMZ2kSd2OEr0FxYxeDQ1JEsCYiBGHWOnjV/ZQYMXRpA5NC6JAGz3EW0iRMhFqC6vR/SHtjE1pSY7gMepdqTuuGq6mFi1a6W/oKZncoiVREQBjA1yXSMpNRFKgOlORTxkwAnXXUYBYFXgLGtNEdS8oBNB03g29T8ttWrp9fNyCst3Y4AHcISGHrDTsKwKRF6OLJC6wrqQKumX8yjIJQIYx9j8UP1WZeUGdcVvput2mjtQmcgbvFIY/EAX0rqPvi1tXDYwaRtSqIesRd1PIFawgh1stwrkslkCNSAEiL136HpANZDRVDizpwwNM50S9YTYzM7HL5W2EFGDJvd0cT5nNR9JnMcVZujpRuucsTDlrlJMiwxsqq8ZJaLSxvFoqEFBa0lSPtL5sRzkvlQpzRFJSO8S768dJXD5hrVSphfM6dXbqmL/iY9Rqe0PoXtwpkwe6pBOetYFTumLLhxo0eWu3DB5vlOq6Xt3QoeJSY0aIIgxFWbScKC+MXMRghNgN4IkqTWQkt8UFdmIgINiCtiT82dlDO8fm5XrsMKPH7CgLC7fQHmNXbVLC8USN2hHl7gyj7yQ7BaALyHV5vs5ADGQoTtAESUrccwLggJpFFA4PEbnpA7DpWkEw6wi7cEhKsDfDJuyxzzNfc0aud/XIWy2hyiwJ4BzvlS8fHy+YNLlEYp6omF4PeJc3gcpu0gzZAAdAfBPhzcM4GgmOxBVwY8yWE0/92faz8ChVDF0QOlROocUz8jCA8BDkHMrUAhceE36MRACUwAFEIUet7PUJawt+dROBQJeHNwbHyjf1G+UvKuUwA75MccTopo9F+B7KBfKA24E08w3sXqxhURdzCXWatU8UhpUSAl4fOxfAhjGicB9EDSCA/rCkRb6CXngJCJYOva8w5BRFlGgUVeDX+4zlSEya9zGMCmvBuRDcm9thBfXiovUbwyjEVZDJidh6Bu314yYDxL/f6XI/z2QWuDQvXMa6EKnOrZKQ1ibfHvD3+IVHKMGPEKirXhnXR/xC64dNoe/PFtHagdqwk2jGm8Zg27pwr80yrLqABbl7mNY2rcADta7jCMqabEboqYRZoVivB6Rlzyg4fMJDYsmPH+v3anSuFjpsSrkstoRBxU8kbuVUkHTYZdDdTKscgn2uEThMTgp4VZg060WUXDgwGvRB+2QOfvBd7sTI8r8t7N5lTDcHvqHbQwKswhzFJsWkrg6PEXC9zcndcgSqywSZLUuwJCfpzzgA8Viy8rYjjw5wVRaxHYZjIK+wFkpbyGMaF9NdFcebMccgKlxeh6hjG4OS/pAxxNfoAw6gH7LScHa5HjhsoBC8KcMIaWnTiDmVnvwnnMBfzrlhgZjoemQPs6UMsGhfvcThd+qqtQGDXCeaah9WAaB5qHPOj3vdEAI4IErkuEuJmmRKb4HA3ZJOB/LHg3LGD3XJ8fxOGJpYE8iYA5i0Yc6Q1S9VASrRAcHX6m8Hl65OzMcXk7tD3ACR3kfwSRIMFCWgBwv/54W/1FiExYtflTXb4TjD2F8+McXtxrzxFHGqDmM/v38YlZB4NHN6TaKJPKwyYtxZDY7FVnlrmGjAA+gBL5T6M1DbIzbyWILoe7a8TjH+BE9N93KsHENx90jc+Pr9QWp8o5Z999zquwEh5fKVWzpuhi1CRYKsfCUPXBUQDO+GjgN2DGYBcWZldKt88XOW+v5nyAgLtDILi8XHcXoSCd8yhlxEQBlONDcmeCiJe852CQU0s5hPDARgqBg+lj7LOAfMWPgcICrOTI8Do1yqYPiZMZWov6gija6GhxeKuIZiUrnFNHAfC9KCp45k06eqMz8xz7EnFpIsTO0B+oj+3/kfoYwRrKkoN4pUotapALfMiGZcndFoAd2DhecUcbQHfxjiMO2l+6cJFkzKu2+g5r8b4jhhmhLEVAFqKuj+eJzUo3WAMKVDLTmHbh+5ynRz9pjwMnKOLmaRM4KnlJfUaopDOTUMQX8YkB9Qsc81izaNCbtikggnC5ghhN5AHmFsqFvBMj91rNxs6KDVxpbAyg5ullUOEUA/lqz5RnemBeJLCGJXrEDbmPMPKRwAAQABJREFUHHkI3WcSgGbkFMp0bdBgHxh7TtFrxKwdr1WiABp/n+7E75gVMcBp6nmxNk0IgW9OpOuW4VMeymHBrWc7dSuNWytYtM481eC6fa+l6Y9FCszk1yVUIJqyQDNuflIgwauM5VPKrBzz4VndScWgfXvKYrxOMQGUkIX73FXWYpK+s4HD89LgAbEyzxumVA79Jm2E5+mMsZmHKyY+ptta+4v6PJvlABpiMcAWd4AT2pbYkK6VniLYhbhICTaS0xWJ0J3d8jEspWPGNNAyNdwutfQDcoVujLUoGqelQ9IkLqGBuh0uD91n1WRa5CBvB4TsMUnNYY4JZlJO0YWA0kxW8hEwEqXHXx7jxX94lktAT1OhgBgRGaQRjM9zwUID5v3ixKCcoe0qLtqxhcmyPDtR3uWuvJ/caJer7Dh6Y43Xgp2kx7FGVQzvEiWw/ue3dyhid1Q+SSLp33lqrlzb7ZQlju98l/pTP7O4X/6Tx5vld97aL0vzMyALwQmRyXAyoD+Cy3nrdvBftHBlxh+V1yhb/EezrGmiX36etfaIU+0Dvz6EZewizI/WBQXAoBLUamxZSyLlGwQX7xGUqgzwGMTKyEMEoJrbQ73OR4aeak4yL3DOZgKoB1UwFApifJLoPoIx5aX5a4zPlAIhrKZ2LCYjCuJSWIWih2lfVUogUE978VG5QlowMgPv/dzXMhdzTDPaPTzWouunq+OanHPqZsGEsWAQGFZq1bLQujdB0JuVcvKCbs0tUgB63VZcKQQSXacOv5UP2hC7uVZJ6KQvj9vQnLroVT5U1grzjzetaMD44H8cQRGXhPky68DU9AndIy9Dqce1JVBO3wSoYHx4gpUbH1JwW6gQZEeoWyggB5EBm4odIwU8yJTMAdpI1Qf69go8rVHd52S2M3cFiHBpsjNbZ2xrt1sPHdHAaPZT0RY2KBtXjI8QcJ4egzFf0YRs8YvIYWzaAmeFYxWbYiz5Gp6VdxViotfgvc8kJEBrD3nL0z7LjPiEedK31o9uujRd44SDD1cVOhBAzFWBNiB2FzeVPvcRam6s6DZXyouadyaN2zUjml5jeMlTKlrJwkUc6F52WJMXk3hJbA6qwwcqaj0F4W0/xglrkzyo1k6dbhvZAAmYz+jMiUnOKDIWIGMgIQFM7WCvXOBaqBXM1HqHfCEGutmYKe3RmXKTNnWAtEJqQp00BsGwDoK3+L1tXIR+WyDtDJI+O1Y8q1SW6aR07QsZxl0BQZvsWMZ0u9d7FH/t+CHn6NhhhJjGue+PI3ZYecRQ1jvl53l0lksaVk+1cmlEmxPmd7gX8NbdfYTqSLlAAlaDvxvkdL2yvl++fn2fA8jN8ugiAX8Rxb/PnKaGe3OqXO81uIEZd6i7Vl5G2H3mLLuKF4flFMxBoWg0g+auTzBZ5lkJkiqXTC1q6ZynOeC8wGURM1R/aAG/fUrg7MAs42R3T3I3oNu+0qQ7SVo1EpPuWBWXgtgkaMaToWVcZEyYSgDp1rlrF+tAWwAC8qA48gvLESaGEew3LgNuKZSBRcSWOgyvJcbkmff7cRomoeuq2S9Di3fHNY3CQ6nGtrCzGUWildhIEta9oguJSka0y1zlVmEt0JQhtW7FYeAD7hW8Eqxr8xiQbp0xOxOODTRPYdE5hrOLeIah3B0dpw+FkkUcDxjTXcpcbMF7rX3bq9isvwRUQ0PmLU1wZMaxzQ8ywGxcdkjgKEFnnpGZohpBYxPG1Nvwgl/rsTn3Q+KgMq0xxBTDgxkOUDaOZmUL+1aQs7TAYtKCg2SHZzaOxblUBYZttPLc+ezwm11PaEJ+Yzs+5+rGPQioO4ivqmDT2hBOztK/WkfCWj7sGiNEomhQQBW0ZycYKzFJn7TXpUumO9Ax+dRM+KraRiV0dbmco8LNYHnSRgAbI5uPHYso7ht05xVqwiBHjvjreB5VqwHrIWnqoxgK49xOpCWlC5/zg+CoSxJojRishAIEsLgQ/AldVJZbDyGkoHUDp6el5ZzoXsHo5oVJ5ZFHFPtMDEsoK/UMjhJkoi0P0IGMtAeCjGPIFD0E1CGJnNTL5TXXRpsIx87be+QS3RyZ54weVhIEMUMJlI8ZXyEA9wbn6XbxGR9AJBKBCFVQKQT4L0SmPnCS8FIQymAgiyQ6hJvBxgbfSX5+r38NW5XtHRgSdZMa3TTfBGADNOACQmdspgEjmcdUyjtX1so4V2udmh0rP022+eMruBkc/fnqW+1yid28s1wc+oXHJslAtyoDHfHfcyRXLVMJ9CXqYI2xs7SOm7nGUZk6daveIBb2cTLZL9+vYg5u37r7YTyk+iE9gnH3GB85Vk6wm3iSvC5P1/ch4JfrUxxKZnmsK+wFEqVFGR19FYILWkUun9mrAsDtbasbSFzgMJaT30Pa0XpQFowlnOwVRoCgBgirffCnu+lOj8T58BCqR18qDamQAwMeH4EwvLVby0kq4Ivgx3CAghA+4VP6Z26x3CCwWESM6GrcgRNvsFTmgRgMDcV9Yz4qLfwO1ohyergWFqiAts9xXGGD/vsQrVrX1bprqXsLZfJeC5BcIqx00yhirQEE56t7ZsE9GTlCWMsl4ELA+p39uQ76GLAj5ToMJDtzHg8MYmXBuANiLlo/DY9dYVlJjzKKLpDuelws3st41gFL6ARwKQxNsE6GOfOVZ4wVGUaRPqR9vxOnlkiKsGZshZjyRndyhOICTejT2J9HlGRkM9WtK8fLPCsDyzyuL5YSYxrUVoDlOebic8LL9eoqPoxJhaZYh6DRuko1BWCZsAPtaB0+E97cp6vtkNiTa7YevxswR4RJPAKlG99hLsbXMhcE5RQ8kt1cwDZAKar87MPKLo5teoIKHohAx1AqY/I1ViUCj1/XaBKu9NrnIH12aaFj+7F6g2shG4GZARAFgRuz1knSXJ8HgPPkSO0zWBcLhaJTwInFIS2HaJx9CsldhoAuESivE1hvoQnGMaUpv1S2AfopCLiBNfMWlsYCs1ZbOHktaccSoIIoiXNMWpJ0AR7dqbE1PE27hoISQNwj3pTDmrw/S37KGnf03WB1IskD0XPkSrVOLZQHAOXqg92ywpjzSO5nucZ64lyTQ8idco0LRKdx9R5s9MpjBNufPImWvrdfHj/WKH9Mxudb953DsHzikflCUy6doEgePHhI/ap/w5GgT2MZ/nPSIP4m9dGfmJvMDqeBU4ljhbQIxcc8mvXcNIRNLHCCLW/XiAImLUPrgU0BfpMPxNz20eAyvgLJeIRxC9cTTQMc3QAxCOuOlvEHrS81aU76Cy2IHxsDWMEMjgSM3DihR5gRBaCipm+v0EosAwKySjSkHXOdP/7HL240n2svGANRS0/gDmnNtU3EhLnGlariD6rT5dN10MWDcngps9grBAmjm88VgQls3CnSNZPVLFPjrm0sK/qSCE3tg+9ZI3N0/bg7Tc+FMl4XYSGMDimr4y6bfVR5WwTY2bGsEUs0liS8jKkoGOHc7EIZzE0aBovpoeFziB8caJ15hlcrwGmBDhbAf0gt3RDp00UpXOgVr4IXvDHBVvrD3gI+xuJYF2s1DmfVklgo/K3Oy0rV0jnYgScUslom5iUKp2pHjLWwWeOmlikhgIy1Mxbz6FB80ZI5un4KYYAeK851ykOprQVs47qB50MMgsRRgZm78y5Ki5jemDpWC507Zyel8LaeVlxh49WMo1gbVbvaQFqBqhQjxiSzo8o7x3ZHU3c3t1bRNqWHgJH8HInLwrRKtchSVwyaFQbC8aF1qdRSWSdxFhgqtKU5GD9egLu50pRpIH7s07qRUAN8JFRZQ7atpW4IscXvGQaaJ7VgYW8zwH2NxMpRMqsHBM1H9Pt5ro+W6plzQcmXZSTjLgvxsoI9BJkT/jNKrPw6XZ6BmV5nEIPJTCFuhAzgpCVBXrIGrCmIiTkTZKXYHX2ZPS7D7GAJ3CVr9jhPP0G5lIsIqxMkUj6AuNdp98FTuHE8d4WM8vH3CPRzTu9pJjiDFuiA7B9TnO9VBNif3umV/+KpxfLiGrWzdrvl8YnD8oXHp7lVplMekGk+T7/LhHa+sNzkxpla+fZd4nBwsAHEA7P6XQPZ7/8DR2gWEMa7VGHY3PFcpPNnV5G7AZ9bgMB1ZzCR3ZOSSF2n31t7XL1iZQPNaBMrG1imulU0AiEIH2Chz25FU60hz4ch/yIQs7UMjtRK2T6nvcHQxLj4rI4S6dPYOFJ22iA88asYSR8Qdpd2rgQ2Qcixf4TFoSBL3gxzNECqpZM4GUeDtBxzpRtzcN4jEJ8lf2gaHIdQszatGwQerq6WetIFGAtpwkiuX8EKnFwbOBlNLEh4sF7ga46Q4YA+MIkABLduEPjPjRjDAMZR3ODoknxs3tgYyZUG1RMs4llS1+B15k6c0jQEmWAkF5IgGKE9FkXgWSuT8d0gwqVzXkzPWeT8nIe9U1GUNQgD1yHDa48YNBbWgIz1KwCYGwzswXI3PTxSIm5kzGTFB/4wJmN71lDcg2Z+oH29GNYnH0kj8ruumJewRjAA91HHZzzhOQ5tNuoUb6Sl9CHTiLOxIAC4AVxPmWiNqqgyjPwmDhzH9UBcwp5eUWzMApgrxLXIlYluPqA/aC5+jQWiGKFNQx66l+5y5qJlXmvZmuHfJ4VFhahQ0wLVOnZIxbXy75DtWhWSyDXOqUVvuCnBe9armmX5wIVnwccE6qCK/bIGrS3+jaG8huxO+zOGex6rtUnAfAkz/BSu3DSXF9ihUn8bBK5zZOUQF2s6M4HA97Y5LtMpu/j/Htaxlk0bbWyVBLWq28n+VXCQDgYgII6tsXIbZLCEsnBqVrkIwAAAE+oDCCfm7iFeLhcq9Mocd/e9yUHnBbYxn+Cml89xE8dZoHoSc2eUHIc+eRs/2eyWWeb59jo3aQC8BYiCm6oIaI+UGxwduIrA/CpV+i6RqnCRkf7zp1dLizsA3373HkXuJsp/9+ZmWYWCLp7GHdwgMRUmWUboLLPePQh9CLA1uEZxNf/WhUb5uSWuxJohfoUWeeUaCQz8/cAKx2OwLiVShk5czKKCukmAD4IBWwge2RVREq2jAIhpSwPjIWMQv+a8WtI+1NbZ/QuiFfL6/AgvYUYvWiAVDdAjBOCzMqq1mFOlgV5yFhTY6E4PGT/n6kCJ16gjNTIbXyb2wvdatSFS2jB1JiER0wAK7hmn4TNdjdQ6p4G3+MjsuiMyHoEHGArBg0WtLqyxllzvRdsE3CVIfnkydAIAstahmzRoeWM6WqkyT65r57XjKRTsk6GYPEKcf33Wr0ukdQL1MhrrU8ABPJUFIIlw1fJxXSpCmcb4metBLEAkzBuQ+aNl4ryyPvpxo6mPAFKYmPEu3JHqzCE2R9YlaLSEDU+MQP88xveVddaHXrSaPG83ykW2sRpZr/QuzKQDzwTqjmpRcWyUvqAfpQZzTdyS9SVvCRgoLI35H1GRJO4e69L69C5RhbKCvSoUYF6cglAxwHqYdnb7sgDXznqwVFiZy4eusL7pmwERGCoSG0CptmEuOQNI35aeUtAkfABcRrBsddH1EpgVQg2YQfN+5pqkV9fsd/apJdXFsMEghH507+0PGhESWPzyvgUllRmuRTU2IT3wuTGzAeN567MbDkA2x/dqn+rcKxOY30bo14mx3BmdKtus2JqjTQZcPNjgNhpO+mMyP0AAPUBigxEGgMlEjkRPZ2E5J8baT33gXJlGAKwsLpSfZ5Je120c5lvfv5Si8xKUk26CLLwu0hqoDcVYFxFy0+QefYGdubPz84ULiQlO4yZwJs0crtss4upav8zyzBRUtYC2PsElEhvUwnr+Phc1UNblDm2+dHqec35j5UPTIA6iOnthubx+b7us3bVyQQ1XsV6+RTJom0DexWOT5eX3MElJNn2GHK37aOmPzU9wgw2BcojgJOkS19iy/srNpfK7U2SZIrB+68PMGgL79nt75VefIoDOa60ApbGJdAoxRuaX1xK9BMvmwzU2IRZB3CixEIwFkCAxeDgagQARGEuQ2jznZ9xDlMo1Br/Nr7FXuVICMSFVxMpdB+BuFAKoUVjR2IL5KrIHzZgGZE/bJi5qTr7Tjxsk5sCpLe0iB6XpV4sMeoEhfI7/gduHbuABOxsSoScMtOR0SfGlMo47nQaQ1dzO0XYKNoUzjRLDSy4RX2pN6CroYnicQ4HAg2EYS93Iu+EqhDncEwGuQEMC077S8Fo7ApaPGIwJMx/+H+b3CJG5WFpyJp4OEagyu5al51ZNXbAqRIQy89QaUKDo4gkMx1IZpIQRY0jbWh5art6o49qcortvWki6nr7mYw78Y2mxJi0JrTKLDfq8oscyzR53GYWeFN9jWnysOxstTDgWLOhQ0Ig7d2aTY8b7Q8YYU/IyiMpBL8YcRC/AiBVPG3cvBaObKgolpbi13mNpSTzMyd1AYWUDlVFikLyeYN4K4ZyVpK90wFi6825MJF+M7xGJGTMpFgotvq9u4dF6QvAJJyZh3541FCkd8Jvbzhk69evEC6/1tJJoTnvh3+UZ4eic6Ka0zIEEzQPuHhinbzPxTB6ure+RsInYuIHavaJ2RHgto7FXIGg1xy2evod44ZLomKLusKn9MtmgQo3s22pg8zlW2S1YXFksT31goTyOcDhoH5RLN9bIJfGcnrPFrWMy1Fsgi31YzrG2X6De+SlczhkIbhrkNAjQDnDP3qO/HTRXl+zyx5ETn+cC0SmQdgxTuYOr+nv9xfInnfHy4dlRcjIny+I775aVM3PlxuZ++e6lW+U/vrhSDrH4Lr1zj8tDYQDm8BpW2DTpDJcROH8bwD1DbpYxuwFu5yx9e7fiLoLiDeJdv/Nav7xMjI4748uHsKoOOX5zhsj6jV2sUM4kSgia4ljHrKYi4hwJAfDAPbBh6qWzeVA+d2yUIoFkJTHWFPG9QxLd3MFrk24wCax1fwStZrxCzp1Z3UEF2QRvJHhvT8nOEYSUWATvrZ1UCRZwIOcAQ8Hsaf0ICGZyBEHo8kmEycIH18KCByI4mWr+Vm6KTFft3vlMNmWkPohL/SkjKdz8nBGYJCvntxpLkMD04M+NAonVG7mZDgOokRFqzNdAOSTFa8INKCOtDFvxNXPEeiSwpviTgRXQwkbmy3Y5zKikUdkZu7LsDxIgjOcVch70lVk9v2doQcvhADeXj+2RecJcrF2rIHfeyaQAvrJGWReT9SNv8NGC8alYRsBA2mdZuEEwJv0g+pkvc+VDhkMIKaBRRAgsj0G5G+vxM2YTYWdfuuJ9LK24vrSPsBJn/Do2fyor0rk6JhOXWQEf1pZCm4FYSybiH4RC4Odcxb+fMa6iVZx00I5aiX6lBc8owAJaQFGqfKy04GcSjbv2vhzDujXmp0UkZRvGUCknAE5fe8iICSzJCF1isgoZhaWWI/oB3Ct46Q/BFrpjPIsgCgvjn4nnAYPBIaEEiFJB5botCqgQ9ycqlOmkTp4znILP/oqgplpIH3ySTs190R3cZsJb2TNAO9OTVo0LiXYFTfqePc1yBuBDOgdBQOQuO4MfpbDeHU/nXb5BAPegvPrm9fL9H9zm4oVFkj61qg7LU2zjLvLMeS0ZFjkOME5QLbOJBvKWlpepD7VBHpSpDx+hSsMSO3qapm9vK4khEs7qvcNRl4/NUDANAXnlNrt+c8Ny2dgTQH4M4Ft14LGzC+Xld+6WBjcfT2NBGcdo8d0qa7qHlfjfXtorX3muVp451ixvtY/KlbV2eYXdwN+/WwHNkgTLMMMUdx7uceziAMFuLo+MnYtaQUxAA5IMwoMuAC7gZTZ/8dhYG+HPssDu6g3mZipJyvLwqASqddWjoX+NRQhohV4YlM+9SPQAxSIl5NgJfavFBwTF3aBwLiY5KsCyewZx63K6ApkCBEerGcvoQYQNdnB1t7RCJNwwOGtCVsOokDnwSQBUwmFMhqsYkf6S38MCTT9QI2rORxzxrGe+zGiGxGBU/gonBJmUaHa2UiDWlQyLkHEXVutRICl4zJCWuI1tjRMgrDQ7TEUfcZOgS/PCGjAMkw98jFmprV2/VlPVH4zAe+NAibHIOlhHlv+toQSFubafuVOexxRXWi2JATF/IAaN0pdL8ZfXAyx9n+M/fmjDHDF9WLty2NQDBDYEIV84D91llZGxJi1eughz+wLjM8JSJmW1EYrCOJa5f5mBAXYmhgyBs4QfMNKaMgam4teCopf8S2gAfMeCciznSVtxmTOl4kZDFlplypUFCE1Ze0oLEFJgVqwRS53EArwaBL33Iqh0EOpaXworlYWnK5yrg2jh0R04QawihBwT0sFare418HVcXseMEKIvyQK4+C9KHnz2iIfVMUCy0QCQVTIdwk5ghTGhc+Agjegl1EbJ7JW2RJ6lhdvkjHhnX7lP/gQxpBbHUEJ7YjE/77+ocMAnMg/AoeMNEAc3c/3UfbRar/z47e3yo+0btJkrZWGmPEk6/nMIn0WQbfsGbR/THCWAdQsA3gRIZge7q/YILuXfILPXnSHq45XncQX/ilwqF/63T46UF4hf/YhzAB/erpdfWNgrf7DULe13b5UzMMbBrc0yxS7fRy0jPN0sL2LdzCJMOW/MjSLUbgdJ5zhb+Cyu5n81N1GWCKR/fatZ/vCdrfISAXfsdn4HVCYFKSSkbGAJ7axvAGx2AgH0EYm1QkGBpWuGjAWQtAUW0Aja0G8RShAkyywzRL6Hx06WV7gGfoUnreoqE1up0rNlBuLV5Pbq7dVRahCAJ/FjItOJlooMxQcIKtENU5GvpLBSA4+RQyX593DfjRdM8GvGuoFa5yBBevNPyv84DozgOTwPuKsJcyaR98aEPMsIH8MkPONr5tpjfRJqjtTEGlTrIxQhVi0gA7DmPNlIYWBb+43VKb2FYCFB1h6hrAbmWVvFsiCo2qcevC4GYiTMGQFMR9KXCaLmROny7iu0mLfwsE2CyIBUd87gvgLDOIsbCzjpcgh3EPbKOjFYY3GppEBb3fcG+XBVeRgUBjBGvsRKVSFYOUC54RhWFVCwZ1UIZkZiLC0prRJgBLyNs1j1NdB23owbhU4nrl9Fp3j3+JI1pbQetUO0XvgT4a7+VwwpaF23Lq6XVAgTYa9Vp6ukvDJWCDdXViYdKAx4lLb0qSJg3nRHGISANvmS+3gq2YHj2XFiw1bRMFWAxeRHtz6WLH1ax2yPgUzx0JJuIBtcj/P1BIaXvigFjX8mXmUMjX76nBzpknJkLmGKCxrTUjmxMaSyU+gpfPxJThjzjFUHLnsIw6qCrAYRtKDyxmwVB740bFUzy9w64X1ufEFSlPkzM+Uzj8yWlZXp8gPcqFdfu18WYt0wkIDkX6DCoALDt6R0JbfqDP14NdUPiA996s6t8ujqROlSKfMswDoOwZ9miCQGkhxnnGwbv3CHiV3jOEyXyVzg6qtzBMWRaezCcUsxWemvHy2Wf3HY5CzeoLSWD8rPT3TL1sxy2btzs5xZXS3/01Gr/NPtd8uXzs6Uv8C62niXgn8AdoMLHX7mzFJ5/b0HZX37gKTQZnmCuX7+xHj5wvH5coFkzll2C8143waIf3R9HWG1RdmYZtngYHZzcdkQLcmoaxAUIUoA293cYLloKeZ0CLFn/wKiEg5abhYt0zrRpDXonrgD36mhrqIEbkAQp/ltQyiqInPdkvQHNvowFLIvLodEJ/N57MWyHv7QYwjW0E6C0RIzxObOSbQpa1NYylzupkl8muOIJKxC28pgsBTfSS/OyeziAUokQovxnIsF8iRL0yd0VbygQjdQLZ44B8+aHW8CpS7DACETy40xqn8V9cu80crM8aHFILHnBhRdPuApoUtAbr0TYU3/BuGT4cw3BtglcF1QYdKPm4fGpXmfPqBc+ZX/V+6zSuAIBlNgRjO7i6ewUDAgFKamJyNkAE2Eq2jQEhwnBNEBPlqirBIY0mkFJGDL+sBTBqL/xJWgcbfb3VRCTMQy0tp03gqBKHDGECHmf8m4Wn66kx5ItiaXQiL1pqQnBFlgFJgzD3ChkcAr2vGaGFdEPy6qfdq+D79EuPEeFkYgumjWKaicC3BLHXl6rvOcmyxNwhDkEzO/9wUX67Z8lDukecbnHJj+qhgfy6YfK08MKO2UozHijM9MjHaDoYnrrpVr2GIq2fDgmAlF6DKfcT5L6WvWPj6FcgQ+WqTetCR95eQMUzfkpRIAY0l29YISrV+FYKxu3E53umsj2IMr3MCyxLXmZ8hJOnd8miRK/d5e2dvmXvTETgAniwoI+cN8UxnU3aYp2moFuXN2GqhZuvVZ4lEz5EYdY7Tz4Ma0ARlpEuKmXl6k+n1iQO+KNA4ef3C2VlaPkwGPxL6JhfUywuOrd4bli6vzpTNNZnm3XU6wvTlKfGJueqL8W9IYHqWu1EkuJP3y0W75EZZXj4qgn1nkKMb5YblytVM+9vETZL+PlN/7d+vll9gh/MQJstlJHsVwK29uDMptLLbPnoWQ8MMtG/Odm7tllfpCN4h3HYfoj3/g0bINgK5tUzde0gH4Qm8LBEsM2J1hjLh+jKNrlF0emiauwjOxHIDHBmcpb1Ow7xSWlPW+Ne89IBztiRYz1kO3PFH1I1N4Gt+MaMgkVoGEmONSwNubudOG9hGOMJUHnLV22GqEkBU4tBNmMKquujEOLQnpWqtMojH2ohDSdZIRtF4kkCHCqY5GlUm1/g5hMs9HxjJCCkVAyCiukXG0zqWJ6pN8GmEVFwbiNVHSBlovWmtMNUxiABx05LMICASghG4wlgkjoCtilZBleoWEFuIoMFP4orajAIUFy4hFa7DbtckkZqp7QgBUkTtIKgl9HEI34sx0HmxYhEF1v6VKyb5tLB5zBhLBZHqHDkc+gx667KjjyQJL8APenYfz0+owNjNgHF1rFU4EF3BPBU6tEfDcx4vIBgXz0n13M8L5ReiII5ndKfO8VisvgleF7FDYs/aUcmLBlYWq2xbioR2bW+8rMGHMI+ARBcTXKkhhZMqC2f7OTWGYeBEvLdMjj+aIHtZTLF1w4Dy0sHJEBnoBrAgk+qFff6QzvgZX1XvDGglDQEjGyxT2dWLTCh2F4JG0RP9muDttx8wZV+Y7jrXmzm0y25mPh8q1NN00kQ8SCzsA+k+ea5ULj6yWLaoqXLt0ubx9bav85C4dEaT2ZmR3rWgfwtNPJmUpkyLpgd0udtHCKIfl3GivPIHlklwkmO08E5ohRrUNxrd47jpCaobfIYi6cHym/NSxAXfm7ZeN2lz5gwetcvPBRrm7Q4B+5nEOArbLGbLQd5sr5c9ud8rixp3yc/NHXFBKJc+3f1weW50r7a3d8vatNvlfo+Vr42fLP8Sbe24WL/yJFmkLnXLpx++U3+Y6rUV83z000g/v75X/+9pBSh2fwPL4+Imp8oDA35dfI4Mfab7FOs6S2rHy+DNcFcbuJsueP/tIWXvnTYLkMxHSHYhm39gLiLjA9woAEWQ9LfOt3MrPDp7EDMyMg+yx/isIkkkQ6HEKtcsYAU/CYyBNDWccwHiAfbhVThATk5qvEpuRQHLtOB+MMoamtBaT1moCsJhmoiDJuXwmo7vlfMAErDfEF1AvDUC+VlG2pWEMN1XU3RKSFuIYdbw8qzfCXOAysIsIAi6pjyT5I9gsE2y8wnNHdmsqhzEJYy22t5nmfGJY9JsrwfiwygSXuSphLKwsnewDCi6J1JuhLXKniyccE09ThjAQfBgGyE4Wa+gQuuiwZa4QiuVCv2FEnk2KA/12da/p1xQFIJ3sfxnfOUxg5VjEkHKQEcbC9RClq2WoVdVr7+fmJY+eKGGdk0mtnm4wJ0mhr0sv1hSKJv46lnE3Bb+CRgHuf6b/RBSDF10un1WAaCmBzGr+PKIgQ4uIpmxwiRdvlZEOrDeVyim8EZYR0hEojMNYwsUfSxEpBCCRHNNxl89+nEhSad5P21AQMIkYGynNw3t3aVUMowT2xa3jZqeWtZkMmtwvcUpfWq5alH3jydDIBOsxl8wYV5VHhhsIbXio+wDaM8lXPEe6MSckPfAStS4cwWm/jEm2S15L8ypDxAt0znj8lcawy4bl+s1bZX1zrfzgKowLoY5QwnjuuD477h4L8UEtrDkWK4nRCgKixhUEv0oNpw+DkGUGXOXbCaLnRwiQIxiyh8+8g7b71gbnCbEKnsTKuUgu1gSafwNhM0X6Qg+T8gFpAxxFLz/CCnkOIbm6MF1emJ+F2Pe4rr1BTXV2CAkrTTDGtza65dmZVgh1b/50eYFLGuakZnD/v97cKv/14kH5Dx5txX1oUoPpHj71H1/ZKv/nHYnWWAT1qrAaReSfvzco1zB1/dGVbXJw+yTCqrN6EmsP4MCYi8ePlYP9nTK4dZvk0alo+UtYZCfIF3uU+wANskK6CAKJC7MX5FgcLZoJgq5utSbgD3a4WJ7YhecEQQz/kzm6BMBNzNOF4U8VFJUZEIgheV6z7GSsaz2goCqkOw4Er0bUStKdCw3KLPyk/K3WsUzk9wgyBYs7SgoUrTzdPDgxQVNvdz5it0P30IBxcoj4ay2qPqkeXusuHagBZd4GAkPrLfEXRBX3xdFvRbQyuAFkmWKAxapQhOT8GGY2JqOQFAYwK+vxO+NfjjvB5RwyG1/TnnlmUTAClKsV5DcNGGSc24hkYgVoNHYOgOsCunqsE9aXc4ZsyNAKQcgctaCcE8nIValmqZnZ8ce4oN8FvLRrcAEI3TAccFaIohQ4fkqMFXy5PmHIenVtTV8wxthA4CtIPDvoTeA0DKxoCM5hUOYqMt0kiHutcHC2jNtl0eqWMTajmBKODd9otCgoXBPvIYnEFD2aoAsGxNJPDhXTh/A+cudNAIJv04e89BQw86vVREfMVevKuRvWMDZn/E0vWCESXAEmhY0ClSlml1evwTOYKi9DF57AcJ4pJc16dd1N+JTe+djOcjQMaglMTBNxoyIeCd+Kc91jlpf1Y/yzRPqGL/Re5AWeqNxaTEQVOdMutRaB7bfdxiJm1FrixDhlevVjLdDmYdNJiQikGSy1fAk9lBMM2K/3yxKlW56abXIpBAzLteuELylnXAHnDoLgElnkq4jGz5E2sHxiDgY9KjfWN8uLl3dKjdSCz54j54tqEVeoVfVrH9gtj50aKf/0+/vlF9iRe5TaOruUdjlGbOfJm3fLWe7tu304Vb6ztFJ+Bil+uHG1DCcvAlnqarHL+RvDnfKRx47KSmu5vIEF9Mb97fLttcPyHSqDCjzdGUsfM1RuxsFLLb91E0EpNRBTm9zbLWdPnSn7K6sIK9bOurMxAHMsnzpdbtxb44LVw3Ifa7OD4D7O8Z7vEMzvopXVmAZGJRhAixBiEKAL/gPkKlsYggWZsC2MD1HLvSKBcTSJqmA2hGgb3ArQDCK1ZmR2UcgnEgPPKJxACcQBgUmkfH6IIJBURDSGCpqKhDuFFZ+pKrWgqoRLiVz3BbDwY5WIOmUyfNbdGOenELM2loJJd0ACFe8uJjk1tLEU8JjERWkiphQ3VKvIelLGJvwxIOu8FZIyVVwxrLcwCwLCG6CziwS1mmqgADWAHcKlCxlJIZMcLoUv85H5diicVyM52NwjmkeAjRGfcZcxF7YCEwvJKZQbZl5qifDgPmEDrQlWmFhKg7maf+UJi3EUpkHfLkfROrhtDJbUBxlW114XaJx5KsB9b74VwygXWB/8gkAl2sFnuDsKUcbxhibEP4NVOHCHMmPzPkIGOkh1VkSPVrrWtrjU6ZbVdMdlVK0dUzCSlM1Y0oTttOQi0HUdVR7MVavHK/ZyCS5zVFHpzjtvxzAUoZQwjGPHxsJMQXFirsNwgrE1CCGWqDucBvy9DUurXnzG8pG2eD7z5bvEDAUIz1saSFrXA4hgdk0unKclDbqplJHwATe63Son5azNjF0qzFRinj011AHHpC+iSlTt5EtrAnlGys44m04qQxWf6rGI+3RwaprcLNotkr90HHP6bUr9XmEnYWyfIDJJlzMEsK1tPoeEf+8uognX8JdIPZjh+QckpL6wM1u+w5m8S3cb5cPDZvnCxenyQxKUjrG4F0+sln3cvn+wsl7+yTNT5evf3yyPH92Hzo6XtdFuuU9O1bnF+fL99hg5UKW82O6VX+TGiGdJav1vRrbLE83dMonbt3a0UF48nCn/xwN8w8u3kTrNchaBfI78qssIMa/rqgQAwAcEC0gt9v7Kr7EpsIRV932E4RZEP8ZB76QigGQRPsHRi/mzZ0q5+g4QbRIHY3OCI0JXsCATfAQLXhuuknbr2L/u0I1j6vq5ddLN+9kFoRN87g1B4AkEIXBAOqSogQhCeJ5fpU6O82gKG2iVUCRQPh8Fedbktm6ZQliESzR9paxSiLm5LWxco+ZYMI9CMMmWrMetY0biP/rwe+YgzhWg9qfQiuUCmSpTR8nH042Ju8KTowoZiYm2TlVtndt5oJmxEL5AsKFrBH78QvP2ls+r6gFAH/djjNgePbB6l+gukpaGpwAo10J/Hi7mf+BKBWKQXgElIUOcjN4Bnz5jsFz3XdzSCmELcHHfHNAYjS5SA3wZ1zoylYN+ugi9fYTLEFoSNybEjqG4dBUb0EWEKl2bHnGg5UAuoYL3kBgWs4AunAPrQih4IYT0NNA9QgAqxbyYpKGrg+xTQahYhJcMHNeduVXJt/TDFzJ0BD895XgUQNPiFD566MKhWgvt6Fs3VLxVF0XwPG9035lk6MPZiVs7F17SqSdYFCwqOtNMDA+IlirWxhwlQNoLDzc4dP1t446/mWS5+IIW4lZhootpgUcn74Wnxq/sIxVBgJU5W17sqvVlbM2YaVDKHBWMEntV7JMx+a7afFApMqbrweTMZhYP6dVrjXOUS5nJGxpQrimSzcYGy0bY2l/EYjrOhB9eJuFtIbfwO700dJ0n70+iwZisx2vmThD3gYBOtrwMcaS81m+XZo+bX6iDfq13N5nnFyGKz7DYQ4TY84zxD+j7p1jcVYTfH76+WX72VL38/Wcny+/+kFpUWJ01tl8/+qHj5T2K3b9xe7vUb2+UX57tlc8/MVcuzB2UteE0gvNEeZmbj/9UpgXA50H0IYDsQDB7mIof4pzfKjle/5L8iEmIlVSxaL4N/j6LUFgAiQ8gtl3M4ym+7xNAdJcvwFf6gKzWzFzZmifTnfSGV7kb0Jyvk+x6eOX3ITEq6DauII9DDAISouKNiX7a25YgniJ/w3Ivmv/SovRhjlWkFXivxKifgWyFDNZcCJLGupw50sFsFC4GXLXsPOkuUqVeCT1xH5CfALpj0N7LYGkd1yk36YIrdzMtioYsD2E75RAuz+rW0ACioFs5jhcmENpLCCkC0Qn7mbuRll8RXrhdo+y4MFeD1MZ1rK7gYk1WhU5xvXSEq3UJH4WmB6YVbFpM1rziVRUrAwYKS75Ehsvg1a6SVG/szqC0eUbS7xh9uNgUwiNXaUgM0zjekYLOrXdcbwE+mkA9VplCjX4NAns0iqXFbdonhmr8TStXi9F4mGkb/tA9AWdGsz04ME/J2vDOSwvBelBaQeJOq2YMq4yXtMXSoS8D9Fpn2M35XLwptPpUY03cSSNWoyFj0TebTFaIsE9vCJJh46orAPnnPJ2OMdGqOADPQgeBE99pHWYjgImTn8uNM9AFIh2dlnHM9XNNxri0QMUM9o5yhMZavQpsLV/idrw2RqegqdahewqcwIVCJxsQNHI+YAv+Ns2GtbIe6dSeq/OR0rIhGT4BN9KJQkz8ZnzgOqrSVaBJ08BRAY+eYS7MfoYv4neTO6Fm7bolAuEtEYc6TqPuRK9cVClTG+oVzhE2EQiaeptqU2iAmsSF2nRYQJ7nq5XrBCt3AebBAZOaH5ZztF/lkHLzkAJ+e8Oyyu0yS8sz5dX762XreqccXGBn7/5WWSLgvoZw+r9eGyu//tH58h99fLH85SVuO4boB9wu89adbvnymWF5mnN901z5tYED+pVBs3yzP17eYSEeEXoCoaAW3gVT22Dd81Jr/HoEaBmXQpIL6fHeyIqfbAOUP8KdegBjPXLrDlF2YhdYZtmtySP8T4ajIN7h6bMpgvcSa3iMsjU1hE2IS4KijQiWSBQsvpZ4bKDbI4HnsLMuCchSaWbnju9NpjSOxX+Y8iAoTEobiNkjC+4KSeHJqAdfamknb56ULkNK2TKwFljMZ4RodgmDW0UKhMZ45rVUmcpOCotKwqIvaAaiFTy8dsLMQQ2udvWWIa+WqlxPaIM1JUnS+TBPhVRcBK0dOjrEWpXAZfRYGzBTUiRg6CliPAOEtsxsH0lfQGBIkFqkJlTo9jpZdyqzBl6PQgO5NIEpKmdc/CHpGaO4o+6OukKFofCxfNAE9ztqnciQcSlYzwCrXovNPDMv/xwhJKHL6zwNVNuBVsMUN4DHYmUtunYAFHAgtFHK7rL6nYeN+YLxpaFqnQoi40HJr+JbbsvMnD2sPcDF1NJ+uIVvhrj04lKd5yjhD6urWj3VIY2nmeiqAhmEKFghf3NTkRfnghsFuWtT33lQWYvXw9PGGoWVJBKBSDv5mm8I/iu4XSqKDVj5L2EK50Bf0nm1Np4FH9kgER3ASRKWFu04Qob+XYO0lbw9SUP8M3YOnAMDUaV97FwViCkj44fAWosvMdS0ULJqjVeCTe/B744wQNzvyy4o8HO+tT1MfOuU18hzag/bqVJwngxxLilOKeE28ZoDzMczaJVxnr6DefIo7t6XCaB7c8w3yKV6dg6JhiZ45y47bJiFuYMQC6tGPZM3EWCrC1QeJPlyE1P7F5cnyn2w8se3NsqTvMer4nxio7w6faxcwCK7y0Wka+/0y6+dHJYvnRov51ukP1AV4iJF9aaaJzmqM8FRnLHyNbcR0FonQNCTrNeFKT8FHlQIgIEwiZ7gqLzDyRoLvgk+b32WIfxpgIWrALgBcBb48Oa9u6XcvQkSABJCa2JykvgO1gME3eDCSLVcfXGxTB7cKm9Q5fQVgPQbF6fAIUgCeZruIyDCvyhT5sFQbGpAXhA8JZlZ7AJB1T6EDRYqYoQZjCd4JMGfxBogCunHZ2u4mLonanZPvYMz1iaCJXgIiX8KCOesISChunQT8MJcLNvMZdccCESDOxbopyGygmcgfOBgTSyfMZaSeBGEdcg8dSXMnzGuIBEbJkDMQGBqegkVF4IXzkW3ZY+SLoyOcCFIbh++gwEORtpYYzArsaMhDGP8jD8JJFv2RA2O2nSJmT8iJfNT0JpmECZCgKhgzahnKqxdl0O2kdmqw7YD5mxcKkoHK8D4Ysq70HaUILzCN66va2Z+IquLJb4LrcpPWovGFuO6MY6xtDGOY+VkAG0HKEbLU0trzsNMb63YUb4TBrpJU1Q33WfDx7wsg/GxoNgWziUNCjzo1vkxSGjVbX6mSjt3HZ0fTfjuCNh7aUcPY0FB4GF4GVoBo+KKBcM8BJoHigEPcNeCA+7Onf60+AdsOvCGZsbHKrqRIgAB9ApuEb4me7qJYbwaKYNFA4x9hucVRsLBEwpNj+TwD6rIGEm8Fc9pE4JiHsCUIYFw8CRdmvrhfBVOWma6pryplA4N3BGlGe91N91AcVzoAtdQoSXZ1x6p4ZvT7C4A2yQAd5qKB0ekJ7iIdSiiSTDnGkT4HmeA+sSBZglutWGkLUxu3UN3LCyxoTDzOIXA6rpQguRbSMh5+lghVtHju9PonRYRsudv9cr52TlqaFG+gssoFk+c55hOvVzBlCdVttzaWi/ru2vl89xQM2hMc7VXq/xkOFm+SaD1h8wRziofULsBPAsDIo9ABMQCInVloyV4rRnr6e+vWeCfhfOS2BQf+gNkXDcX5mB1gRw+Mgg7HMOSoo1m9Q4XrQ53tkPgoBzksSlBmwmOHlzX/eTHbGMZSzNbBEJFIKLS3vrlakjorUxRmngeF4E9QsVXftSuQ2I3gJPP+Z9yRZXp85rXvFQT1iUY5uTOkG6AZ/HcxXFzpEs+Ec1QODCU9G/nzD2RFmCvIOqRCmIMylhGZb3JzDABRAVIwCP9yaBQhK6fgWkZKqJGYmYd1jPXPZSJhAGT4bXCuNKoCv2c6YMATcmQ8e3c0sJhPNrprlkUkpyBxDsS01Bi8uP8zBmyLSCVi6AjNDGwEH5H1gdmbh1dSh4BLMxfokdYMN4EgmiMHWUtBl2PNrGmPuEGA7iW5s5BbOBiSkdlGTAOTO9pAi1BKwmMYeG7I+gACm4H9p5AX+qm9yheqXIycde4pLTu/QNHKGcFspaYx12ME3Gletw5LboB1qBIygaHWgW86Qq7zDAw89VKtkrIKCZQ5fqzQBfOf2qvWB+MpxCF4FAedsMLfuKCIZBcu2NLSvavhd4nBuyc7UaXKmkm4N5gOl8HpjmW5GtoTtTnYDr49GcAT/aQpCqTWDrMoYviHYfnTaVQyOZClIyQqQEviRB+QrD5cXZHmbZ3A1jmuMfZWZhJpIYXRglNaIGp3Jyzbq+bMNYSczdX2vQQtVqx1gJhbzCpZzFH25j/15TSlBucgnDGD0bJEmdGXPSpsqzRZhe3bp9VvQQxrNJmAcHh+ToKHJR9LIr3qEHlZabHDcCBe1MRpgB4W2HIVvRdCO4nk4vcctwqa3du4dpZyobQEJ//ynC/fGB8tzx6mnhP42R5vjtVXupw1x/fIwPLcRbxlJIBbHmkxWqaYUCIRuETygJYajmFAR/kn66Fryvs//+vRUnbz2HqcDvE3aTWl9aa2nMSjQwlJ0grE8UUhml1xYyF+RNBCAG4hayAlJDITQzxiH1zddQU2iKJSzkciMg2sH/5hh7pCUFk+gAdjGgWgmBogv9JbCCKl6iR7N5OQCXu3kXjcnRKZol24yFvOemBWMdTWCl0FIDKiUpo0zHrlNmSwMrXIwBXt1MrQHc/wWlhxjqNdakUkxysS0d7+9bKqoK0CGWz5x0JopJWtU4gicxJFy87i/TrMY8alVerdAVxx6J01XlmHxr0yqoRBvPMqMQt3AyqO45MrBVQn4S4WW9K1mQMik6Svt0mJ2sSgZULIthomZmx7j4MzlwUBjKyt/6INR5jDjAzwskbpB3DbfrQDWvOsRanpnXB2Ck0JxawbrQ6ehTZUyh2FQTwgAKwhrfArIALghbhsU/qTnPa+WBVAPsqpQSG0BSlnTjTqtRqCfnFepFu6IcHIoz4glWzVtxD5q8wce5gRRkWCzdWCHiT9lyb9fQ900o3Fc6AQXYTmZ1PJmuf75yPH2UXkhda67BXlFcdt9rYoHg3vtigT4/iaO1Ih3yZ9Y8ZI2RS2RWHbuU8N4WUo1Fk+p/Aj7fQFU/yvMJHHMWSD41h0clc/Oc8tZgHoTlhgxKmT601iQXqxlNjmB0kr9UDzK/qUslxnPrjVi3wiIw1lRQ2U32yxBFabeIGLWbwOS46fJtdvh0E1w7tLHgGzMOoEq3u4BR+Zy27aUhUtMcuNa0ugbARrLoDgqBXSRr9JTLXV7u3yr/PAZ/T5FStE+P4UXehfI+7+r4HMCZGDsoFFiRitKb2UyyNxTCItC6WtDgESvKU0Az9vgABPTznYetnmLcxrlcou4oIivUh4M2reRYA/jRpGS3W+x2u4PoOKFlBA+zDPH1KwgzZ5h5Bo+h0GRM4FPBQTZjNvuhfShK02cXhM40kD+km+M77uF7sPN4fkv0vxGkAyfKNlpNB7ao/D0TLYDWIxGC7jGSp2gFEpyXQYO1uASuApDcGBvnMy494lyJwvJJJZCRzkZB+zMuNAQQEz0jIsZjUmLi6KlKJQmvFs3eWUbEviVPikjG1vLQL3SpXcPCKyp1YJMzDM3LmqysQxtjRzJlD+kqvMpJzpB8tVs/QZes+CgbiY05DmF83OFoeAeE1XOZnuXYeQ1FWuPSYiROLt8LzOSgL4Vvmt9aaBKYITASQFkEuPD3cDVOKLgP00o/KTUs1FRroo4n2Nnk0HMZ6hY3WubtcelCdNpYZfWrVWDpGK1aBjjfIWumTvzKhMSTpwLSRFmXDtfq0GExV0guRVtw0mTA3UYYGjkNwrReT9BnoRwYHrIQAgB0IrVSAgpb3jM9jEYx5TVtzBBWsSbEAtipoc5168K/4TYyMvzneRL+OA9tHUDI9MC4d+gK8Ax9pTwWnlDK2aFZz0Ah9WpN9jHlJE9LnEbzhXE3dSI18++WfFljuwWTBwtryU3ZlnwrEXHoLfaXUNH0p2LDtqQlP3Svnr7CCZ+t6bUekA/CcJKz7bfzLHM/aDB1/BIb1wLFbyRegiBGECkURyh1GY9iyh8kBvsJ4daU3RLiJz78OU8oUmqveZjOqMGIhuhtbuGHTSOrOjsjj+PPMSHmbZw9Y1OlJy1NslUcabJZSU3mMyp/t1mr5EwKjf4pwuE+7ZRD8BKyhu9aFoL2rULBomSgIqhs3mAtjS+BqXCgACLBw5u3ukDIfLJSPc1GhNadeud3L0RyVXIK7zNVKFOcgxBmCxZtYhuvLKwCNsssgSItEk75PLs+QSguWgD2yrj25YaJcrKnZDOaKMMu/WF4k7pR/gVMSSNEYE+4YddXeCBIFk0ABToo61xSo8kgIDMbXOpBjpV+FTRgYCzjXjNOfVp7muCVkHCp4AE45C4ZgjmkN49FLdrykG4WYMNQ1E0bmtBiHMpnWnSjHrkx/KAFB6LzUhrpmxhFYKtTAL7DU/VZLGvdQ4CkwVG5udByZMS4qbEwyMM1ZL2tQ2PJfzlAyFcAdF89pWcxwJJLAufAdzK+gUEmMIug6MIcWoIJPCTDAza3OPtIhnxkb083QalSkKri0VIzXHOCmKVzd8YoURHkMCYR7IBcZyWfAkj8G7LMrxfsmAvnQORAz1fVxM0OX6mGdKmaI5QHumKMGgq6/ZYXd6XTdWoVOVUZz7QqHPvg3yB+VwDPGhnruotKHOBYvntfT+tV6riqhOGWUP0JFy1PhKOwjECEAd5ITg2IhChhBzmyZA/NAGMsWBuLFvOEE0zeCBpU8czJiGDwLCObkZocHoju6tgKFNlsIbgVuAvQIak9oGP5Q0bj2uID+ZQKePdV6ZdisldEj6A6YOwuOMo11xUQ92XBEvCrllOjI0lXGrjyC5irERUUSwhT48n3NOwGfO09uEYHsdeo7ffN2v9xiB2UEaSbPzKMhOPvMD9etw6tHAMhCfjtkMM+5g81AXneltaOZa17QHq/nedZa5RsINrXvPhZarw9zYCY2ybCbIbZxwAJeAgDro0vUr0IiIjQe5fc4SEVRxFKBfJk0Wpf3SniB7nboIc/LdMYNqu1dAAIh90hPyJk6xs7C3yecJL2yCgGpcLAWvAN8lzmfJsnVu1GP1m+WD0/OlO/NLZHFz1zpz10yDmWU4VRLZUr4ZbvsXn6XNcEgkoY8AAXAK4ndJQDvZFlbDkLzfUx/kc86wDtfVcxtMwlCgrG9WcpZG+8NIKvRdQXckJWwtKAkdrd9NZcroIB4THZ33ugsOLM7GcO94JSZgbnpmfcQMq1kJi1Fhf4IfarVJojfWLXUuI4WoYFpHShR3ySALGFJ/MbbHF8G7CAUZOL4J4yQGFkAzNqBv2OzEPqRABnX/vhcwlajMslUAfBqK5XIKPOUEZhgYkr2kbXwV7e1j1VuTMux/fXAromlCg3dVJfoLT/j5GCNY3UJVzPxVScKBDuTWXQxtCYyVfvifZiMNlqPVqgw2K0dHGZyLOav5eqtTbE0pCv6ks8jtGBy6aODx+Ghd8GiYDDYrxByvcLbcY3V0RQ48ixjmOvnofMDlLWik1ZBrVeJud0vo/pZfngowox+xHkUHX3Pk8Bt8rBH5aQrY5uTwIqRI8jcOYRBE0pRMVmiZ0B72yrkDT+oQJS2EdbCzTUhBJy7igPRjRjgOT436G9991jm0iI4E6Ue8nYjwhkbQkkJH4g+u9OYnCoj43xenmtJavHo+NWP62YsPpfYVHz+1SpOfJP51SgXXW6xcKokVhkAAB0NSURBVP3QDajxPSkSSJ9gdJRMkGoRuX0e6tCmhbpsAQS1WI0JIY9ox8IhKtcrQy6wKyWRdpnUY+RkuaH3KsdvTtLObe8euydaQEMYrd7kTkNu2Zll96yNmWZekNrd3I46ABkg0HRH/FFTW4ta89tTYAJXc1HWMncKhYiQAIVaOiC62iUZKVdwR3Man3m4k+jsZ/j7CW7RuckC/oQk1M9zAPuIuMn8nevlPET/OsHWVU0YxpSbjGm5ZX3IBRgSbKV+jGVUxOyuXBsYyRyAIhYGX4EA7Q+QCQGx58AZRS5Xff9zOAU8V9aNRf0NsINNmFLYISYhLAVTrAb61C0FJMzJVAGVhMQO8b/fLhYJXTi+WjhnzJhXjWuuhMtD90D3yPOO3r8HxbAGLF80Yw1hP8IAKesh9fGd+B3VzUCgYmokziDxuvNVr5ECIFEDDzE0QlhAzSznVgJSmgDaPCou1OgezbG1a9RyqgHrECmfGZdzx9EihN7IUkM55uZpnpOI3b3KWT4A6waEmBwQXI/wtG/TBygIN8puZI7OQH+mANQh5BGCsClJI8dIpDwrHLQwGwgQ3fkjlJQxtFQToI2zP9jdoyWrkdagf1YJgMEZ8LEKqztfTdwPlQqsHSGGDqzoxnUDZ4VRXfjxvdaQlpjcrfBUgJEiCIwoOQNtDFDqws92SpAEuuE/aVbX2jkn8A+x91UigauJttA2sNMCzAUXDueaoBGLGfrckLJIDcIyVuxIgB6jBOS/T8/OB55HA1sb3ylqpBh/9N5LSITpCwn4Ct61gKGw0MORB5J+wVyEt/SuNS+NunPqLnbmglwxPcM4mwnYgSbPpx48cxUHYCDKWmvSulqsmrEQ5DSW1mo9DIU1Om/zoQy/gqZts6AJEjydXJuSMzPLEAodbxBQ32av0mqCK7iRE1zrMwcQtx5YGgXBAVB2mZQ14N9DKJ3AaKJQQnmA5hBASnljAwf8r04GteNNM5NWa427+wZlknI0t+7TBwyy2ORz4lfX9loBNiE28IiAMBGTvpKJy3JEBFRHTXgIOvqZWUNsukwMRxxtjJgYZxp5w1QDkD7Ew1LKF0k02wb4/+QHFNZjN/QY8ZJd3L6Ta3fK7aWT5HNxqYRkKIEzzoAjQO21exABHYlA4BO24evqRl9ekJyXQ6KMLSPii4QQoqnVHDIQf9X+GJ0IF0xtmNy4hol4lkdx8xUahTAgXIghxIrrZSa61yxF0DGwuSxqc4WirquBcK3aZDAzjhaajFWVRkaA8WiIg7/YepX5z1/jYEcI1EPcE838HJhlfhG4PK/LKOPVIXCTFDX7u9Qb0yXTwtD9NHg8yq6QdzzyqLIOAjOXCQGotajoUvi6HgUDz8VK5H1uURbOELhb5OLNrHMtZdvrCio84iazRqaL8oDxGH+EnCsRa6BfIXYIp+ku6Tp12UCxmqaJukPcQC/9jBv5vtwJfsCRyshSPA01tHhh7lbjNDVigpiUze1XoeW8H7pvWhXe9Qf0wCm7qMzLwLW0EoWuteFzwI5HeU7BoRusJey4wJXF7oI7vgS+CFYFqv+BawW48bAmn2l5KTCFhwqbP6xbQWFsh1Me2+Q5Khzp13roPF3WsVgVxtmNpbm058H23BMATFQAQ+ipv8eGA99ZhtyUAm+crm7UgauYizEu5xolwRqaKkDWeAg/aGlpZckLic0xpmRvOoybGlbITTUPcON4R7jhWrMK4qpsNgqKxYR+8Ai8+UcXOMIZXDgvJ2FxwRzfkjrQL1hJQABhcJJ4z/5SncPJSEcw14GpxpG4M3MUr/t/a7rX5bqyo4DjW5Z0JFnyZey5eRISZiYXKkUg8IUqHiMvwivwRLwCRfEVPhAqFBQZkkwm4xnfZEuyZMlHMr9/n8mxZyzts/favfrevXr1+piAqz3a5pVZ4V0eaVl6I6n+5R/to6LwJFIQt+OhhodoSquC6raeE9oUyjdWGA9x25GOdx21BLaJ1+2uBcPJcueT93zvwIdDjCvB8tZG005ZPlGEuqOdY9ZjZ8f7Wcsrle9tGJhkL0HAOhAKbwiNFqM8Y5uE9Dxi+xMRD2CzVq2fEYxH4P0ppfvLH6yXf/ry7fJXkP9Q2Pb5yxfLXx/eWf7l/kOSt0FuHRRe/O53y1vf3arHD+EaIiFIWqs6nMK3Hb61CGqEPgYZ7wNTxXKkAO4xDBhigBg5T6PVp9zeqSYnJNP2BeAxX/vxCulLvrYCE4M20QQ7CK5eO/AzAmPaBOc1Q7GrD3YcvQX3VVsXJsRM4wVTHol/lrl+QyljvEPxUBjelVCmhEZqwLTJLzQcRYNXEvhDJQSN130uzfVLyu7qrDIVkmn8GC7prNyhjpkpuS6loKeuB79cWt2LiaewsbACDD3b1pDJQbk/Zm7E6tAmx9O8vNNU4WAjoJ3ivAkNzTGAfFmt0EE1V94Pu5Sx3AicthJlWuOVJRxjGOD2Eh6vle1MyQKDktdWZJCC6rPiReW1htdwV6FreEygonHeUgNXSDssQSnNIax5PejWEv8oCM+FwyO/z0ZhcrBHOb6zb7bc6eDUPVOQ674DzsE+gT1n5OMHkk5PoT+sTE7JazNwBwxFUdIm/I3WpTSKZjgTxqmcYercOA9V7oNiWjLd1lLpNkWdd3Ok7rA8H1aW20UPb2ku4XP6spn3ZXjMMwdD9JhEPbi7LUM3py+hbSvN25ojtrpcTq6V5LXobYdnXoOGc9/fIlPJTAf4bouC6mrRDoPysGmScNqp3VfkpJbN8dIkJs5OeD4QZ96sCq9H06gTAxxrrHfbyy4osi1hU5rzkW4Ke5TX//yBRecSH1nZ+8mPNeqTB3r2xCESENMLDhDx3P5CsC33PXhsc/Q64AnP2UtlAWpXDtVqHR45HoxX8u1jntjF2fJQQv5tS/UAfvDoQO3LyXLoTMAHKu6/eiUMwb1r3Rva4LwHadNjPmUJ+JTCdlaWFRnpmFG8EwzlY5ARQ5iEUONv7285d1AHCkz8y++tln8+vl5+xZv8CFx5DH+pFuzz1e3lNzyb+4T84sWL5dq1OXoIcYd5jTfL+zENpoJCxIZcVqtaptziksQx6G4KztL7mmEoZT9WhAVOsKfwDnQpBBoJk8CV+0XKmNQ1BJxj1GMMRNuSlE9osn55ZO0B3S2EppwidrmHxi9RvRLO5mlJpqTL5/6U0uRTojkrnRzGmMEe6hLCFeaJI0paJ1DjyaJjioukTSgUP+RKVeu2UiGeMu2UFBDPPVnh8aJc2fQKB3848bWaXnigQPBDXSd2Uh6NH66EUFBLwBs/Zed7vJMVjrc24aB5RgdzOLcQ0s95oy0e/KlLZkZhLLexCrnzFPo+5i9lcO3otrzbhGPTpQJQxhiahQs4DTkpwS3EGAVBYUDtjFMIlfLczUP1XKkOOn+U52yXMS8DeC8lz3u6UOqQgcoDPrU6Wt+vvOM8r0lh5CAYM6NfmQndMkb2GrIaaXQi3my1MY+y1jqKwBhgvAfWcFRRcUa8A3DLJ9cKJ9pWZ3aR5XNtipP9Hh3Gzyhk5hqmeOPr5lIhc8oiJmu+bx3jFlEGfkIoVT6F1S7O9bilE6fmYAl1VVcUVOS7ci25yzhcipDeiWAyjvHWFWVcSNl6yYSD8atf3oCl0D/6XeLPeGbkALBzCG+APpNorwXM9z5a8aK4kpjyY5nzK5ubVwhywtzsGDB3dMv5fi1xiwqWe/cdJMoj+0LDvdcKO4vYUip3HQ9WX+hHDwQfDhp9X7vlp19pVcwcHNqofI44R8zJQ670IQX1jDegWzPMXC7f6Of+uer5Pd7KxdlLJRUEAoIf7FuZPNNgkFL7+88sDjxzwvMp+GJkCG5JfhjdmLNPCeFaFIhg/vo3xoR9yPqM4m1/27k5fyre/IdP95d//BVfTC7sX6m490/Pl1/sPV2O73+0fH1yslx/9Vvhx9F0GGgX/SJ/Ezt1Cm5n5pVMnnodODL9wVMeX3qqauHZXoOhUGgWE3CqUCllAWZwJDibnEbPp2QwRZaeAmsCswnaYBvoY7VUevMqdMFUfk5pHqlTirFxjiSpH0ZmZvYDV2FZK5WFQdfwmxCSzFFM0xyvR43Wnr9JFsPpG8YL3/vdcykTCnFdcstEL/FJQhIT7rF2hUYx/OQ2sp7B6RXnkJFPGCQxb9X3t1nb2f5ijt1H7rwEPsHTHri23+TZ7PAeUh4H+HAO0MgDEUZN/qYpgivav7U8nrKe4s9+5w3UeqZTpYNvtns0XQqiFEfhkqHMzUTwUEWbhaEV1I7wGvegxQj3piTPeDmrtgOhV0Kcgg3/tfjZA5t1K+8zR3m1TnBu60x03smIg4tGmZxOhmnXob4Zp1jiTZ6KkVpx7X4IHJ5p/TWeiugt8Yyi7uuupZSGsRPmDY9NQt/37a5LofXg/iHPzXyac+N0Cvl4UeHZ8xdKeK6U70TginwzSHnJne2QUSn/FJ6cs04Z8/jMPTgyEB0WEm/GKzs8xnaDXAoJ8wTLlc3hwO0zNf93ZHbFUse15cKjcydiwaSfC/fwEtl4TZFzg+HCNbJUPrEV9mhUKD0Kq4TZCoLblf7qGEEoiy1CfKq7wtpS7LmCJSVAwyAppxvWd601S6tLpx0pDeCvn0UE1gRxa8WaRT+7UCognPzk/mr5med+jRHf6OTQn/cow0OJ7kuJ9l3v//kP9MP67cXy+KkEvH2JJ8b9w5fOHfTuBKej67dW3ENhYfmfOwe2uex/hDm0APYd+cPkRA1C3xWLI07PjcDEBDFOdPan/39QrQfk5e3cpnB+qn1u/WduHBlG6pYvEO+BGqwPjp8v/3X8SmeHA5YMI3vRvR98b3nn7ESt+YZwMWCMV2XuuLN+rutAnlA8m3vc8UwVsu3CVZtkgTaQVDqRJWoA9EC4jRqKmbO1VaEXJqQEMthZ/9kV3/PeUY6jT99fFtLwIrJMta+dZH3fYdKS2eWAQsUV3ObZFaoV2FQpnpJqZbKVp5bBE4bx/twxkLi2zuSv5QLQOEu4ko/YB/ecgJ0XmsJIKtCnxHyCmgAXsh1h4Mkhub4GX8vcK4Ld0vtOrUEoPo/hVTTG9NSNORnbxmArHaNYrAlM6LtrJ++mcNYF8xkkw8W0VUmgiEEWvNAppXbujMua/YXrwsS83RTBOVpAgQ8FzOsOPyXPy41lLOKfcNBcUqZ3hfTTqI+CWYn72xuZHormU1Pl3a0wAnu8po3HQqEZr3v6d0J8clYX3guK/lQXiCn2jL9DXeG+59/CzXjT0QWsKYu27CClOYEzSxgH+6f31HywFclOmyrP3CJFNC8/WL6v/Neh8G99zUigY55Unt/wWHAZN2+4ttwptz+1CPKVEA5PeEdG1S2Rf2i1rqMtfpscqjltLjJ0UkCVqEw7JPNGLfOmtOG5Vc9yheUEtyimjEE86DUhbcO/ZKYKgC34Ln2SMUpxdkCN2j1uv4uXJnnh38faxvxQZejh0a3lMSS+LpelgjTvq1Wbte9vU0Y1ULul1uo1K/iNPkNveTr79rnclQOrNcuTx+fLhxRXLuTJ8/Nh2of3d5avHQv/FAL2hZDv7u4uX9fL/OnN8un3D5ZP7lEUTmb+gBBss8BfOGH5lbMGPxOy3Xm4s9xRObx/x55HJ+R8ePue4lSN8SyxfHXqHWopZr9WFOQFSK/m5vTjIDskt7epkomvfSWnSxFgRHhCCsJLcB49WM4IzAdc4f+E5F+9vFjeXwtJIesqIbt6vXzy479gSZyZ9vxJGGYtYig6DsZnnyIc0v0jRCmOOMGlZbdm2gpaSyZnV3LZcZS/gELMqXD3WB6h2yfUnGV7v6WMZ8XFQDFnWxtWaFB+Kdc8OMbo+jGhrJVHWyeibUoglkigygNl1dok/ZpSSCgLHesjFQyTjzBaACfIhS49H+4MMZbz2vO7322luJSzaoqFmC21Mz3ei3YEp+0Yk08yRicIm8KEnAnhPobdtuE3Ick6F8aHo42QUhyUWDVvMfMbociV5O4koM1rujMQqBRmlr9FhAwVMQnwmUfeePmaJlHCtwr4wzu2eXnPtVwblT4GY+272ty87V0pAePcsGoTrhsvoa46fvBg9NrnHDFsFzUltJqaIpv8GzgTro5fm3AHKFOZ7t97ePYAfn7/zXMhe3kYsuOdefZTV2Zc0jxjjUfi3jy44U28MTmd5A4cR3KT25b1q6RfX9mfK5daPteszIeK9r4ziiKDFu8FQ8opzzt6rsnaeNeFfyXo4CGFXtYhXsoTK4ysVdEN+Cav6rttaZI26E/4btxMWLiGecYwY4z+rlS/VQ4rhinMDyCQWcQjjeZoqPlcoOnwZczjvvnZe1OfrVI3cn3m86JbJKhweuvENjkg7/xR+FWb0iNKqRCw06QSJBsgJMdZAIRv02nsmOV5xSPa0WU0uJ77+RDs1StVW7WioFrRePThanlfycDxFxfLU73Tb/Fcjox7rrPDMQVXIvQ8hNm3iFeW33xL8dwTt2rXsn9ve3mhE8IPEe59ntwTs7yUrD922rPU0PKhEPOCRT5xYvPbNtMeniw/eri3fLU6XJ49R+g8FQTeZ8HWQs9qivIYeOwU6bvlz12/y+2ZZDeGyy3OTW7l56He9msN/N7+9v+mTiyynLFOPXsuaXzw3gesobwayxJS+4zLHlEhHxvAE48t4e+7uSfGTwf4n5WOS4oKeGmgUT5T+EqRxARVLu9WOoCJvGDKEN56VzmLrDNdZCx34r4Opm0bQ9Qu55TSKJzxKyGlhFi8eh6lQGYHAGGJY1IMtwh6OZU23HaxAzbKE0S/PGR3GIs3TLgT3v08Q3hYWWCp6LO6t5vCLB5k+Zt0wxQRYi5Sa16wA9i8wbzMLPcoC98Xso2CICDV7PS2DqYIW9Vx9acQe6stOAa+KXS0n7RwrnxaQp1SSQLf8JzOMf/gjZKaBQOK/OLMiiB61be9fY8pt7HQQpaOWedgojfYCFolBXWSTemXk42O/Rcew00rWSXq+9R/q1KQEVQ4P+W1BW9GZx+cLcRM6GVW4R9J8PyFFtlo2zjGrDAy/FLLrvGA0IV6dSk+ydLh18aBw2rcpnzF9bzBvZvj5eOHl8sfL1ZwwjOjSE4vqV9ITEILz1fqgjosuINIUnx57uMlDfz5v/gB3hFRo0Irw+g+OxZMOCUzpTtGGzjgoeO2KpzOq/MkepIZz/pKJCVZP/qC0kHvFhWmMNZEb5HdHYaiNEffxf/ROryu9/Jw8YL31e5n+Ok7fF+CaZ1nhUd7dkLbmLYH4XHnNeHIQziE9IoI7xLoQ4n0XM/BH+WwrpTBddEYJsiCx2AtbyIMQN76vjzXG4Ce8rY+IXT3HQhxJqTMo89rCPkv5cnWuaHevzLe8claeynMwDP73ydXy9/8eG/5/BN93E3o3HteO+j0E7mwU8h/LpR86Z6f/+xgORJKPuV5pTRvS2Jv2TD9gOdyHGU0E0wQfvajFYa6u/z7v712uETMnlRBJMhLN16ad4hs0a3QaE9SdcVytkz+DoNfZC1QZdd9eYwdD37n7p1J2LZUH1PHeEOQmAzT1ft++vzwbgrtIlGoygsYpjTmuO/GmyQ2AQ2ma4yWNs4oxPwVmk6BpbA0C9hqDGBH6Io3Km8woA/Lafzm64bxKmOobRa0lUz6i1gYs/u8olW1yXOohRuh/I6hiBw8uAE+YqJCi9lsqwAzpdN3byVMywuS8cltFOZWA7Ut0TE9p4zBxx/e2GIKo/G4MZRLOZcVPqmLQtteYrwS9AXkwTSC5f5OVt5zzxSvetcOV/WgZD7GCw97mPumFcroRvHcUFL7aFKeI4+KHI1FXsmnTGeJKY2oNGfTPaLk/KwmRhnvDc5zdVZ5StX+VdOWJxO+wmMh4uDJvbNii0KzVQmNmlNKL4/Pb7xIeaBQCLZ5N9LmkWzhz40hMyaUtLoY05W7C8et2Yb/esqXsG/ze1c/fCBvfG6+5nUoFLpc8wSN5yf/4detcyvqe5wGIRZFMcWwlOQlZr1lMauFmPbypoDSLoW3+8LYKfgEQyyzpsyDNyM/nRkYlPg2rykogrvN/YXmTa68VYqwFtOV8VxUooDDppOt+2/SE8bKGHcyz4FOJ9FkavPAU1ibAcyTa49iXnh50wmVjdSfAKt84Vr0VmnShKYZOoo1XJcHHWCOJdBfUxIP75gwpnRWBCJQCgDQmIE3A63Gu4bkF+1WNji5xki5jpQZABiZ5VKC/bHeVX8GkPe1Eb6UoI/wzyimp1rRlJx8yBurkv0LSqgVjpLDrcy9coJOXtf39ZTfNs5XarjOvl0vLyi2e9ostxT60j33Pt5xvP3VcpdlPlJ+8O1zIYNj4D+lJL9+UaL6crnLfT6Qi/vh57fBgJnSOpB64X0cnVEuWaTZEU74dddRtIogMSd4y/tsZgm2fvApQTg70BHr6ltI8oEayhADIGqhVu59if2Iu0miu2E8gv7NqlI8iJhrjlKYt7CUiMDvbOFI6LP0bt/CbFmsQocK6fqULE8RjFUCWAoSPb8jesrqO6Exl+iRcq0P01gs7+jZvB2PGQuTGbPEPrUzf3pPnlfeQWHChJWe2baS28beOLAVmzyqksrlMW5YpazrbQJRi+OE8RrTZRD2Yhrvbcnd6ybkyNLcKOr0xXgdhTSJbUWFlxTaFoWf1x+zFxrtUjwJ6WwngrMg7Wi62tTkPa8prlYIR2jBmBDWc6ptQXmdNWU0adejyYZn3wjRr+Qo9wjVtFVByO06JcA10nkDDwJWav7XZzaEm9uRJHy0LZcaHld4oTD3nCCnzK9bVAFrxqoeWBVmFSblpLXvcujJy76N4XYllu+KKp5o5f3k+YnzOa2yO2aurWY78PCetEeRxHJTqbZ5y1Nta0t+R43i5emO1m1kwGbTE5EL18HYdmSY4BsvG48b3KUICs2nnk+YV61fnuot8tA2nRRU+btmnFHLsYgvNuUscG8mGcxhVbJbEexWxa3uuYrfQ5bPdGA13QpKK/atoLvSpea70ppnTeGGezZ42ZUOiE+HwO4v19qCTgXQG+8WRwCmwuhSdWv4K2BMue38aftKRp7DNJanbTenbxSEyivf0OAljs1xFJmISDjiJYDNbc2dBA6bQNeYxL27O8uxUu7DZ5a3uYW3eUM3oHumQ6lqTwIGee4ttKiFSs+gutoeW36qsFXEtiehfr9Kc2O1LeT5ExuwVcrvEfwTiXxZxQlF3lP2cGo175UVxiePT5df/HR/+dHHdwb2I88WD//ko+3lP7S5ysLkO38hpv9vluDvLOkkqCIdX6ZwlHMA5QlG7qj6mbRH/EU88MUMr7VOlgeY1SH3wop5bJ4PuW1JSIFnZFKGU9U8jACH3W+uNfJPCYzst8qCMFPhzuWOucu/7LJcFd1lzVuuHttsgPJeazF0nQUKcQwzwrLZd7YJ564pqJR/idos7xTRInTzv8XqVS+VB1GfpOpxpjaL4OXd5fUkaMEZE9WxM2MUM61ZrTyssf/QQydj0hRtjM4CUrIvdfdIoU67Gjd0+GbnTU67Zx51PJRn0u9DDvQxyOAjHplVXmga1AqBJmGedWWwUlNBV+K5vFQq9kbrn0oV2o4THAaClxaMSIXnUnDVAGU4uMbmBZcG37IhfK+VRwBNPtA9hYe1PpkcSgrVI4XEq5QMfBSmz5Yl82m8hP2u8doP18Gu1cLt+L3SkD2eaxX9bezG8dIdebrOE3guTJXHTBi31q+GB9bmkwx+e3yKHvAjZHzPCrY6V086aby0ixTMA/P8/ZOT5fsfkCne+Jdk9CFYdiiCCkZTRCG1Mo6Zo7kVRudwtCAz5TwwW5EnEMEFbrx8Qya6J3xVD9WiTcn6Fgn6pIjC9+ySQK+d2kyhoakaBw38XLuZ9n62RzYTeEmO5yXwtGkuiTfhKyWaoU0HZNggkr8Y73U9XmdcBzImyX0p31kQQp9WfN+Y7/8DKvtuET4EBKgAAAAASUVORK5CYII=\"/>"
  },
  {
    "path": "examples/sample-book/gen/datafile/golden-gate2.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"image/png\" pi:base64=\"iVBORw0KGgoAAAANSUhEUgAAASwAAADhCAYAAAByfIirAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAa0GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWZFWD0iaHR0cDovL2NpcGEuanAvZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczp4bXBSaWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6SXB0YzR4bXBFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iCiAgICAgICAgICAgIHhtbG5zOklwdGM0eG1wQ29yZT0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcENvcmUvMS4wL3htbG5zLyI+CiAgICAgICAgIDxleGlmOlNjZW5lVHlwZT4xPC9leGlmOlNjZW5lVHlwZT4KICAgICAgICAgPGV4aWY6SVNPU3BlZWRSYXRpbmdzPgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT4xMjU8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L2V4aWY6SVNPU3BlZWRSYXRpbmdzPgogICAgICAgICA8ZXhpZjpGbGFzaCByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxleGlmOkZ1bmN0aW9uPkZhbHNlPC9leGlmOkZ1bmN0aW9uPgogICAgICAgICAgICA8ZXhpZjpGaXJlZD5GYWxzZTwvZXhpZjpGaXJlZD4KICAgICAgICAgICAgPGV4aWY6UmV0dXJuPjA8L2V4aWY6UmV0dXJuPgogICAgICAgICAgICA8ZXhpZjpNb2RlPjM8L2V4aWY6TW9kZT4KICAgICAgICAgICAgPGV4aWY6UmVkRXllTW9kZT5GYWxzZTwvZXhpZjpSZWRFeWVNb2RlPgogICAgICAgICA8L2V4aWY6Rmxhc2g+CiAgICAgICAgIDxleGlmOkNvbnRyYXN0PjA8L2V4aWY6Q29udHJhc3Q+CiAgICAgICAgIDxleGlmOkNvbXByZXNzZWRCaXRzUGVyUGl4ZWw+OC8xPC9leGlmOkNvbXByZXNzZWRCaXRzUGVyUGl4ZWw+CiAgICAgICAgIDxleGlmOkZsYXNocGl4VmVyc2lvbj4wMTAwPC9leGlmOkZsYXNocGl4VmVyc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0NDg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDdXN0b21SZW5kZXJlZD4wPC9leGlmOkN1c3RvbVJlbmRlcmVkPgogICAgICAgICA8ZXhpZjpNZXRlcmluZ01vZGU+NTwvZXhpZjpNZXRlcmluZ01vZGU+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjY0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6U2NlbmVDYXB0dXJlVHlwZT4wPC9leGlmOlNjZW5lQ2FwdHVyZVR5cGU+CiAgICAgICAgIDxleGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaT4xPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+MjwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPjM8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT4wPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC9leGlmOkNvbXBvbmVudHNDb25maWd1cmF0aW9uPgogICAgICAgICA8ZXhpZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDMwOzc1NTFCNTg1MTk2QzA5RUUwNTA1ODE2MjRGOTQ4REZDPC9leGlmOk5hdGl2ZURpZ2VzdD4KICAgICAgICAgPGV4aWY6RXhwb3N1cmVNb2RlPjA8L2V4aWY6RXhwb3N1cmVNb2RlPgogICAgICAgICA8ZXhpZjpTYXR1cmF0aW9uPjA8L2V4aWY6U2F0dXJhdGlvbj4KICAgICAgICAgPGV4aWY6RXhwb3N1cmVUaW1lPjEwLzQwMDA8L2V4aWY6RXhwb3N1cmVUaW1lPgogICAgICAgICA8ZXhpZjpTaGFycG5lc3M+MDwvZXhpZjpTaGFycG5lc3M+CiAgICAgICAgIDxleGlmOkV4aWZWZXJzaW9uPjAyMjE8L2V4aWY6RXhpZlZlcnNpb24+CiAgICAgICAgIDxleGlmOkZpbGVTb3VyY2U+MzwvZXhpZjpGaWxlU291cmNlPgogICAgICAgICA8ZXhpZjpGbGFzaFBpeFZlcnNpb24+MDEwMDwvZXhpZjpGbGFzaFBpeFZlcnNpb24+CiAgICAgICAgIDxleGlmOldoaXRlQmFsYW5jZT4wPC9leGlmOldoaXRlQmFsYW5jZT4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpEYXRlVGltZU9yaWdpbmFsPjIwMDctMDEtMDFUMTY6NDE6MzYtMDg6MDA8L2V4aWY6RGF0ZVRpbWVPcmlnaW5hbD4KICAgICAgICAgPGV4aWY6TWF4QXBlcnR1cmVWYWx1ZT40OC8xNjwvZXhpZjpNYXhBcGVydHVyZVZhbHVlPgogICAgICAgICA8ZXhpZjpGb2NhbExlbmd0aD43OS8xMDwvZXhpZjpGb2NhbExlbmd0aD4KICAgICAgICAgPGV4aWY6RXhwb3N1cmVQcm9ncmFtPjI8L2V4aWY6RXhwb3N1cmVQcm9ncmFtPgogICAgICAgICA8ZXhpZjpGTnVtYmVyPjI4LzEwPC9leGlmOkZOdW1iZXI+CiAgICAgICAgIDxleGlmOkxpZ2h0U291cmNlPjA8L2V4aWY6TGlnaHRTb3VyY2U+CiAgICAgICAgIDxleGlmOkV4cG9zdXJlQmlhc1ZhbHVlPjAvMTA8L2V4aWY6RXhwb3N1cmVCaWFzVmFsdWU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENTMyAoMTAuMHgyMDA2MTIwOCBbMjAwNjEyMDguYmV0YS4xMjUxIDIwMDYvMTIvMDg6MDI6MDA6MDAgY3V0b2ZmOyBtIGJyYW5jaF0pICBNYWNpbnRvc2g8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMDctMDEtMDFUMTY6NDE6MzY8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDA3LTAxLTAzVDAyOjA5OjAyLTA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAwNy0wMS0wM1QwMjowOTowMi0wODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElFQzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDxwaG90b3Nob3A6Q2FwdGlvbldyaXRlcj5SaWNoIE5pZXdpcm9za2kgSnIuPC9waG90b3Nob3A6Q2FwdGlvbldyaXRlcj4KICAgICAgICAgPHBob3Rvc2hvcDpEYXRlQ3JlYXRlZD4yMDA3LTAxLTAxVDE2OjQxOjM2PC9waG90b3Nob3A6RGF0ZUNyZWF0ZWQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q291bnRyeT5VU0E8L3Bob3Rvc2hvcDpDb3VudHJ5PgogICAgICAgICA8cGhvdG9zaG9wOkNpdHk+U2FuIEZyYW5jaXNjbzwvcGhvdG9zaG9wOkNpdHk+CiAgICAgICAgIDxwaG90b3Nob3A6Q3JlZGl0PlJpY2ggTmlld2lyb3NraSBKci48L3Bob3Rvc2hvcDpDcmVkaXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6U291cmNlPlJpY2ggTmlld2lyb3NraSBKci48L3Bob3Rvc2hvcDpTb3VyY2U+CiAgICAgICAgIDxwaG90b3Nob3A6U3RhdGU+Q2FsaWZvcm5pYTwvcGhvdG9zaG9wOlN0YXRlPgogICAgICAgICA8cGhvdG9zaG9wOkhlYWRsaW5lPkdvbGRlbiBHYXRlIEJyaWRnZTwvcGhvdG9zaG9wOkhlYWRsaW5lPgogICAgICAgICA8ZXhpZkVYOlBob3RvZ3JhcGhpY1NlbnNpdGl2aXR5PjEyNTwvZXhpZkVYOlBob3RvZ3JhcGhpY1NlbnNpdGl2aXR5PgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpZQ2JDclBvc2l0aW9uaW5nPjI8L3RpZmY6WUNiQ3JQb3NpdGlvbmluZz4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0EyOEZDNTMyMzQ5RDg2MURFOTI2MEMzODhBRjJGNUE4PC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAgICAgPHRpZmY6TW9kZWw+RFNDLVcxMDA8L3RpZmY6TW9kZWw+CiAgICAgICAgIDx0aWZmOk1ha2U+U09OWTwvdGlmZjpNYWtlPgogICAgICAgICA8ZGM6dGl0bGU+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkdvbGRlbiBHYXRlIEJyaWRnZSAwMDE8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6ZGVzY3JpcHRpb24+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPlRoZSBHb2xkZW4gR2F0ZSBCcmlkZ2UgaW4gU2FuIEZyYW5jaXNjbywgQ0EgYXQgc3Vuc2V0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOmRlc2NyaXB0aW9uPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWc+CiAgICAgICAgICAgICAgIDxyZGY6bGk+c2FuIGZyYW5jaXNjbzwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmJyaWRnZTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmdvbGRlbiBnYXRlIGJyaWRnZTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPnN1bnNldDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPmNhbGlmb3JuaWE8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QmFnPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvanBlZzwvZGM6Zm9ybWF0PgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+UmljaCBOaWV3aXJvc2tpIEpyPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC9kYzpjcmVhdG9yPgogICAgICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij7CqSBSaWNoIE5pZXdpcm9za2kgSnIuIDIwMDc8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnJpZ2h0cz4KICAgICAgICAgPHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+aHR0cDovL3d3dy5wcm9qZWN0cmljaC5jb208L3htcFJpZ2h0czpXZWJTdGF0ZW1lbnQ+CiAgICAgICAgIDx4bXBSaWdodHM6TWFya2VkPlRydWU8L3htcFJpZ2h0czpNYXJrZWQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnV1aWQ6QjNDRDhBMTcyNTk5REIxMUIyMjA5NUVCNjQ4RDJFMzY8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSIvPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOkI1Q0Q4QTE3MjU5OURCMTFCMjIwOTVFQjY0OEQyRTM2PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8SXB0YzR4bXBFeHQ6SGVhZGxpbmU+R29sZGVuIEdhdGUgQnJpZGdlPC9JcHRjNHhtcEV4dDpIZWFkbGluZT4KICAgICAgICAgPElwdGM0eG1wQ29yZTpDcmVhdG9yQ29udGFjdEluZm8gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8SXB0YzR4bXBDb3JlOkNpQWRyUmVnaW9uPkNhbGlmb3JuaWE8L0lwdGM0eG1wQ29yZTpDaUFkclJlZ2lvbj4KICAgICAgICAgICAgPElwdGM0eG1wQ29yZTpDaUFkckN0cnk+VVNBPC9JcHRjNHhtcENvcmU6Q2lBZHJDdHJ5PgogICAgICAgICAgICA8SXB0YzR4bXBDb3JlOkNpRW1haWxXb3JrPnJvZ3VlZ2Vla0BtYWMuY29tPC9JcHRjNHhtcENvcmU6Q2lFbWFpbFdvcms+CiAgICAgICAgICAgIDxJcHRjNHhtcENvcmU6Q2lVcmxXb3JrPmh0dHA6Ly93d3cucHJvamVjdHJpY2guY29tPC9JcHRjNHhtcENvcmU6Q2lVcmxXb3JrPgogICAgICAgICA8L0lwdGM0eG1wQ29yZTpDcmVhdG9yQ29udGFjdEluZm8+CiAgICAgICAgIDxJcHRjNHhtcENvcmU6TG9jYXRpb24+R29sZGVuIEdhdGUgQnJpZGdlPC9JcHRjNHhtcENvcmU6TG9jYXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgq1iPt/AABAAElEQVR4AVS9CbRmV3Xfud/8Xs2lqlJpQFIJCYGEBUIQMBgasDHzaCSwjW2cmNhx3MlKO46zVifLWb0c22t1HOh0EtsQnGBITGyDGzCTQUwyQiCwMEKAJISQhITGqpKq6s1T/37/fW9Jud9wz7DPns8+w73f/Sb+9bs+tT0xOVEz05P5TE5M1tRU1cTUZG1vT5Co2uK8ul61vrFVHn73Z6K2U7Rd25RNbE/yRYNtc1WTk+AAHyUljSk+k5PbgHDmNTFBmiZ+WTZFWdUmuGBACGA9xCDqToOehDxJJqT42qK9L9+QAYb24PczMfCwmWrpyCbtA2UaPlNmuttvgmgoPX0WeWgDa50sNV8ShDqnKSF42z7qgzfx9wEMMlFSg2hiiG4m5R9Y2ynUtjKBYIt6khxS3KJsi7bAhCRfJKLHgf7QvHmWoeaS81bzQZk8hgfYmpmaqOnYhTOKweyUYQmabmzaBttj99W17Vpe36oNmJmhLPyCVUybcgGPsVP0DU+USdpy+Q+PlOpT24FJY6HSriaQjdQUuGen1JmyN7x1zaPSooWt1gsgSbc0TUt8+hquVzOc52Ymaxbf9qw/rW+oT858tjYnaQ//OrE6Bt8kbWajB/2n/Xy09aZ659hEL6a1lw2VP31FWX1ZbJn4yNunECjl5rXjpjIILx+UiIui6IusrcObOp2E/2nsNKvTKDSIt7agKjvk28+BlIwv9Cvv4qFZ4LZpO0U7UVvksba5WWvr0IH22Ne1/7T2QSfKuDnw0v2o8QsT3dOOJDrDbhD0IwWK40dT9itx8dJfwhBC68NbW1u1jh7X4UF9aoeNpPus76kbGY6+kdf66Umcc3YalChF8pNwM41xNXp3ahwXUhTROSdqY4NyGYW+HUpBFCPKDk8ISckUZUYGMMYJdCDxKWmEU3lmUaQw25RbTdhM8AEFGEAgfuH8ytFK19q2t61CxYWjMOFoKR1dgbLgphRsQMMzZ9sKFxzSVtGclcv60BvSZAblpWXq05Y28iyszhLTyC9vfSvBLFk7YhuueQ6BfKl1kWACyeTQF9uJOn+aXxBObSnBAPy4NvJvBw83j9fZAINVI2tDiBFIhN2MU1g7lWAUbwOP/EzPTAPVTgny0KanIRftT9MAzqwvZVWc2IGEsskTQm8TdMwN3Kd81t6UchBQuRlnZmBUHwYtlcV7anIq/qfTQ77tQ7mN1L+alXBEkUbEm0QeeaaOzyZOrN/NUElfYaAFnteGPiJtmYMeZClFz+h6GiNq163tKbQDtM4hmJ8e/aAFDPayLGohZb+QpeiDcnmcQNZ0QCocmBE7QVM+TAc+/goukOm/c7TLwAATEwLBy/Rp3aeHQUPppY6MwqetNKXXeMWNFPTLHqoMSOa3J7p/hS9wCya2vKFn4JtBD+LJUIpclrWfqU/5o9Im2Ei7b29vUt/6UG5tZ64HKuC0OT4s/alJhiiQGJycDOlXW7RXBgdl/UG7xIRpgfxTDKtGcKOkQorfhhEGTm3koa2ElWEjbxgA25awcKw+dQCP+CFKVtkq3jNgEUhhOxgGlLpp5c0hfd7hg9RQJl+UkQt2uE+N+EjofMGPNR1FrBNCZW6j7PiYXpcagAHoAAYUcmwhDydbBFb5wkdTp3xwB1HAgCOPVKTJyffpI05iLuXNi9nwDXx4gSfrW1NNyw4iT45GBqpNeQJI3O0sTSczNXvUgNP6xilByvO2tGk5wpnTOGKb0MYA6VDRiDKkEQMRhCbQrc7rHHdyZqrm9AtANnGi9Wna4Qt2ejloLrpeNHLs7ES/0ImtJ9V0STcHKaQCXmijrxGahkCpr5BX4LTiBJbWAu0pNq2O7Jgk236BEtaCARoYQewM2ja+qtdLFJ4M0mpBPah7ba4+MrtCZvkQn1jSFiTOwrb5OFtyBZBVCPi0V9Hx4sUioQ2qAiYMh299RWwYIHmhphKQ4QJaW6QTRG0XfAbsx3RrkJ2Wd/1YXjk130wkwGUbmtLJOQNmKEs/pVQfV5zud048Wl4HxSmVCrNT9GNtnq4OsBOOdTSi7TNrAq+rpwkCnBODzDThQ17UqfjlIOXSSzv0CILITl49xbfFJbyy0Fy/d3Vkt0C9CpHyKEadh8bYN2HXTiaDonEKvY21TPcINJFRwGjnTEglpjPFsY32sAmRDUcYmYPoOOtKB6RABW4NjOu+JBHILxQCXdOWkeoPDFqWl+fUWd88Yo3oybyyWJqTNGwVNKqV0gGl5WgivDjSn8ZJQvcbwE63lXcP+RN3t245UFDK1ZICj+2bh+ZJjJvgmMAD0h4ELTMJnUq8ngc6zr7SBj1mKRmjAwX4JKMRpqZ95+XYg+bhS9u1TrrDm40mZJqWQm/haNrBIgcix1lJiyP2UefYVBtvIpMSOlCtMfLNM7WewiemXUrNOOqJ0LZ0PpIGJ/UrHpFmuWq5eDSscsordY61MmHnGf0gstFYXIGJeG1Hcba0BgwJ2CloD8LMvqRLqbbuoCBM2Eu5OhZOee2Mzri2EGCT6DB28nRBmtl/puSZSGTAEq+HgURHAxO+jl7IGqxYmigKugWAdJZ9QDVk+5p8orKBy9ELOyCMvAmzLj/QcElMNof4YAc6vbqZMviCKeXgVA/i2BSOtnLsUr0Nq0swg6FOHsUphDMa+7B5VoLgp70cGxjETYXwyujAkWBNiXZRv62XnqWJ2ZSHpokNaKMOXb5nxUDayYlKjG1jw4ZVT8ru7Ep7OBiSDR/KAEVO8kMKfVvHjgT8G6BEzGtUWBjWDtByhmQEzH4UZZnuwqR1Tk+d3Tld1aGoRgjwyRhtjJpARlgZTholWcdXcCRNPkqBXTtUIIUJWDub/Ol86aAaCAFTDQ/RA19NVvxBn2m9DkUJRcCnHPycg88zASjwcj/UA96HfKW1SvYAxyBTVAl86w79ZXiQhi06UMiPIc0jo3gcq0dZZ4OiHh0PBHEe/V+qYUaDZSSmJI4pF82REMolLdMeGtkSVEJKXQILUPABJPzAflp1OwOPQNAfVLAFb2ukN/FqO4O0Qy9pUmb4dMjSP/CFFLQfqYvMonESX3FGOaO9DbVwdzJ9pjVksPRoXlvGDJQDbwacBCscTvv1EhMZY3zy3Rx7tO7VlEZLkCKZJSbbGRb63YqBDhn3k+ygdl6DdGYhKErfl5a6sRPq7HYyZ2LxV4qm1ShAdmiDSyNvXiUzBfwGROTHb88GBmnKcto5oExmXgspNaDtGpX+5iRB+DGQ2h+Vo4Mu58DaqvntgcF+Jy0gOU+pF+hYqG9sIcskzibOFpIq6oIzCGmorOLUoWK71t0sWWtsa9/PsharalPjyazBXLzQzPaGDMgvJ3lUhw4E+TSZmEMbG1+yRymseChUZx1nsMMMyzzxARuHtdG4jItiqNMOcuDsy/Xv44lm8zAqAIdIBqUppIpTjbqkkTeIwNPuD2JxK5llEjENwykia4fTgFbJl4c4E7QYKbJ8GOAbT0BEC1WdQHhba6KmBcbgjyGEo7qDqbSE4iPdYOk6efDwpBNQmsDlUunoQw/U7rXF2nXmebU1s2BlKKaJvPE5nQa3irfAkzJJccNvrGJQU7d+muPmI0ESnuJwtrGRSnLEFD95s+LVZi5zPdSJtK1qTILoAEMOJuLU5G0xzqTVr6O1M+7MmOUI2BkcRX3ZgcThfloO4NTnGCy0d/BRHswyR0FzxZmEnVihhVAZA2SYHW2TZYoYgLfePArlA34YsfuLxdoEw8BJx3p4BNbl3wT7V5usIx28tLEzDzundEVu0NNOG0ZElgszDBLODjNDlAJvg7nl2UOioOuBB4l9Qnw9q2yc2haKwT2J3jYI4lvwLH1JGztIymzszrqQtNry5QHQcESH5DMmqiuQR3PNGhzAv2l1YyAYmhos9YcEV/pLxBUnYPKfvWuMPTHJDiawLnv1AYOcCDOomDbYcXIvT5mopFqqcuGslMANzUlnmvJHW6XooMR5wLf9uJmUdsnSPDIPggRvtxeR81kxiUe96ZPTkg8DVEfhAERwQYHMKI0ixgZyF2ao94qL0RI7RiC9Gcg4t+0y6kaRSIGCKGpanvPpREfqoRAg4ZADmnxoGoeyKYe0Vag6CN86Cw2k26VqzDdnFWqaj+rtNh2QAw6EUO3s1ANofjw0mHjjYJyHfVZ4wrAwpn/fdevX6+J7bqn9L/3pWjl4Hs6kdmkDojiYxDk6KIqvX5lZWe4rMDoFnRBirUWlITXyT7n8K6vyYxlztCY9MG1al+pyLQv3OpY4sFOkTXpo6ehoPi/gQOxeifDyn9k3GZcPFk4it3x7tckO7gZq+4rOHKC0Bbr5pE32EWU4PgRikmOgpnUGxwyYNgeH9lZGIJtnAxPlCQBhNoDBl+VReLdMrSEzMOZsnzacza8PmdafNpBcqAQ4STFQ4dWrDZhSuw68BqpJZHXk99zBCj1QZzsH+OhdviOzwQka4QUA3s7E9J9Z6j0SUDmrT+U2GFs26kSc00QBt10MlgZTqhOMPGvy7hcikIQydQghcfrQnmPg7eL2zwmXvmkH/zTYlBEcKTDaipRtO2SIzkBPrXXB6exM/gxYnpuke6HOuJxVq0v7lgOgTRMfErhb1iYGPpWInek8kR+0oe8gwBY8/obfUei207TCB5GeEoaooAF1iZ8qJYazYRxUJQNDO4I2cHZcXUXu5FroVp7eJ56sZ8OFBpUZXhhCzNIiMaTH+i4Ti4fw8maLbpAmce7kKZbyUAqNCJV2KkMnzSghMd98/MqJZPNATg0Phb0caV3Y9TVW60HZ5VzZq+65/5768T97Ry386Mvr1KELahblik9YaTjKpyuBpDclaWhbdSQj1PMNqBjlVQdKSfNF2pzH6ORTo2HFQvo0X+KCuPKnzYBTNaajUqgD6hYaMA5PndpSP4rvEor99hTaye0w8jVqK7qkeQdALQ0+cQ002+Va5ugJWGUyAnpSBgcyfSJ6txQS6jh+IxAFuSSOZF4C3+T2A5qlHkTU0glky8PyGJRk/C9F6dgJvtRb3qqwkQ1s2Aw4A9lATvd83JdymTQwBoR2prvRkW3vRwxpnwS6okydtCzqUP0CMtii+waYRAvsqPuG0wZtK5ecCXycnTh4a4W3nEjGYLU55WX9DnDj/rIrXEVRTg/tp25SRl6Nn7YXeX3DHRDYiM62mFk5ZcltAwg3CYK1TELks6+yRm/gda9MWWfAad9tfwK/AdxAwOEMzUCF6BzAkdAH4k6k5U+dUph6oZKiSE2bzuoA+SeVmVKvOdpPfNl+OlN+nTKOD+FB+ZZ7NCt2DBqLkYYyYYCSaR3LEVjDbGgkFYZx4kSg6Ok3jAM3Cjo6mBQMeLzDOeiGI2KRBhtlFmtoGVYb3V4RgaPSEbqV07DypeBe1XCak0ulw9XIdB7gG+9IZ1AclfIvQ9KM5kkYQFoyuKDaEWudxMn776xn/+A79cQnVy0uHqt7T/s68Hhnwjjw6kv9yHd4pyw8QsK6phmC0feon+6aLVucbVBUnJ5W8igekEYA8ynky46oFC6ctF1/4EHx4MwAo0zmcmm+U2nv8iWb8ANv+qP21v68OcSqLnRGcdHM3iidASL+gyPIQWZC0JN9ct0xRUo7bq0hr0LkTRvTAkDt5FLZvZYJLoXp4/JgoNyEljMC7R5ylOVluajIuZx1hBZ1NoJxBS+db+QSoz4hr4YWgyvLX2j2TERfl6duG/7B89hMAUrgzMUpYMykXyCOHdMiRes+QjtIZPZCHX07h/wJxylyRl5jh21hmLiZIGDfid+wEaTvN7fwBZw+wo0qg3xdZvBztaNitWl8Qx2oBLVHm/Q3SQNLTRiYop9kjwsibsw7o0tfE457NpQhaIFXN8FrmkJvzVT3FAfIsgxeFqhjCsI7X26u960r2hlA2jpA5jYLY5BTMU5uF0SnrvCCkELwZYZlKutczRbDoCxNTlqOFMpynSVTYoRWAeK3nTfgWW+UR1ZgGrHemQClhEmrLJLA8QVnUVeSoaFSh3qdMioATkhqch5z1nr4nY0+gBIQAywSR2jlQgfLJ7mXZKMmdx8Eh7zaMl/BKebkxEE6tIe2lj/mZL1BuclUevHU8Xrk775Yi5//UB2+59v1TeB2f+Pa2nfeJXVq39mxtrwpeitcQ4N7pMGZNzpsSUadWBYYYUkHAVyJp49w2OWUxURARldDh2/MUKceU7TjiQ8kOo58aU3rM6JTN3bs4EF30cjAQwIIbYSxkR1ID04OWPHZsQAHv7wYADwokCYpfWd6gGHwjMN7tt04+x5naAYPO4T6mqZlB4GeBWVpiBBeVfNGysgPA1l+SIe0fEg/Z76kbSAa8c7knoOpoVOqZ+SlfoYoo0zyH6mCtxHJq5Vx0eCPhhIwVEeOnOVb9Tg7sSOoy74RNcihIw5n7x7ONJVBZjNoyPSQN+CJIxMBBAudDIJDmB1w2z5BTVy06aArmkG2oIcv4HsPTXJKSNmAt0UAHlzuQ1mvLr2nSoE2ITIu8bS8MvSBrTWweWUTAfCKbmFmXA4sIEugSrm6IwGotvEwQNnPXHpbmyACkcQv8dmCwS8+YQe2QHP1qCAiWvPWUIrdx2BQicqcHyKCRKPMANHAjjO8nJkYtERhmRiUKQcJ8zqnRQrr4BdVkhaLSgt40DZcd5UBBafcz4Fwwil+6MWY3pC2WafuurV2Hr+3dj39x2tizwEgFLzxRiJodUtOHtY5ReyuIheIxGd6ph7dWK7N279eF37tkzX9/j+oLxytuvCs82r33CU1/Yd/WOefWqpdP/cva3P3IUZVfhoQe4jfmUjTFHP45KweoxPrBp6sQ9zwGE1SkGATngAaGgtjm2T5UlceacvZNurSPQBNMAbHBAbqok3ajwHksStcwMOXmD2NgSqBG4fy0nJGR3A4OOlUCVjAxwEtVyp545MZQ/DQQQn2vS84jMzINDPFhi+E7HTy5iF+9WIQUR51lmUP1RtTBCv8Tkj9zibO9hypVUL8CeK5m5oibwD1UF5ldIYRvcS59D9wo4T4enDZWZUNaSKLbUUOLoyYO+4lGhri40OdsjpA8g7/6bQBkyfxY01h5MQ8OJpXGlDhrwxE4jKIBG+XatyNro4pVyPRL7W2U3j1kv6QevKUy5o613fkS9uL16vh2lDs9jXl8wqecB0aRlzSVgfCEjSBN6BERvLaO7frgEPZbS0J7ZUACFPaxU98kkTvgwnPbI12Lr0FcF8qSz/3DJUBvUwAE/6p8wp8bnlQF/ILbga4JixRksoWJhI94JLBIhXZV6EuM2oVoLY4wigsD1mxpcw6cbWDoCAY0DEpysc6laWG46gakZeCyEvwyXRDpcx0Ky5MgXusDTWwiZ22nHTLDWZWt996U73oxs/W1JOfU4v7D9aUc1imwGIOuMSgY9qk8vThFThKsPIqvG0dvat23fDXVe/7nXpocq0+cuDiuo/zqw45Eq7UQ5ddVj9435/U/ic+rc588RvAN4dc6hauRM+Xo9xIN2t1qEkvl4ZzDhvANTPRhF4RVmkpDuHQjmedJw7JuQMUZ+B1zJ6qk6atumxnt630tAvYSejw3YUHXlGtJF1GZdUWWMuAVUEbQAcn7SHuVcoEGzhyxiDrTY82gHs3ux3dUVu6bmJLb5xlaHs3nOWZ5pFd2fSLlsFieANZrsbZmrQj9rj8U4LuYbYTGtoJVJ2XXu4ZHIMXxQYl+VFWZTMw9wyudZyLdu2E1IejZhB47aiN1J8CbxqMVA5MDkVQJK+++HL7wImd/PcGtX0BWGiCIYdng2w2mHHgDWpyf5QK9QMedRTf4BzWbA0v8ucxBrSmrTzU+4Yp+VKytAOcbJeR2LbDDL4pJj/6ZfxLuqGvnoK5+zLpEZ/kN3IzpoFusAsEE1jBlF/JCEQw6T1J8ShfB8YOutRDZytBi1oNwwwv+rQ8tqNPyrpCpHMpBJ9wTKKFk30bk7M1vtEKIiFB2+tNpA1OwsaBFAhDts40kJjBFRiSHtIAZ5utv0GCr7aS9AGjbhsCfNL3kCV7qrg4JUk6tGjrFZkpbhZZXDlZe+76Th2677p6ZPUUgQWnGRBoEOHtGDJCs4EP5wfyPVlreMjWqYdqxzevqzNu+7vaPPOS+sob/2294xN/Vivf/k795N49ddGZ+7kjvOrhxc06fuWldfS9/6ZW53fW5HNeCQ+z4A7ipjrwL+3YI9pTny1SHAtwg5l6HV821j6+mls5bNY9+xksS5ocaolYMWDrrHUTywCKLpHNl4fDgPWaMZ2XtEsu2XXgtzOHBukEMTK5726QRxhtJXbpjzMw8Rmw3JhVxnZg02ggMuLcDJvpvIERA4AYI6MyPhcu5YtPB3LrpYUMUoNxSjLz4RSezY86FtKX/h4pIkjz2XqHJnWQj4un70YuAiuwASefACVf0FO+vtkSPUiUyGkTN62zSSyloW22V1Iu9WH/To6QX7lJMpNyT61lSZCGWaEzOaC+ZzQtXO44F1bOqFNS0/ZJ7SAjYLU2fctzX0ASPzIBl1k20FNsuOeKHogSNIDVcewBYvB+upSTVS8Ofi2/gMpCewWVEWRUB/ZnS3KoK3KBAYczcXU1tAguc/q2/VJ33WKv2XvmptxI43DP0Z/9yJENnV1z+OWHEgqMcsmmtMvd6NTwLo+8c9r9DwWPE9FudBDLdATV9th9OeKgjDZZslEnA2SD07Op04KmFm6C3zprmyd58N1CQ8tiFKPg4pzk8srS+lKd/N53a/a2G+vSR++qB/Gq2W9+qfaefWGtzHKvlNNLgHuZBGZRypvt8dyVzbXaWjpVZ9z97dpxw8dZSl5Y9zz71fXXP7i77vrBN+vI6lLdMjlfh/bO8JmrOZY1u3du1TlExMWdh+uRd/2jqnM/WcuXXMk9QG4dt1M162gKQtLkW+aplzYvyswlOCmgUYByv6Nn6oUz35CpaD2iA490IADSwS0i7eZsVyur1DgMGo2Zs3cndzByYPHqlGdtPAYrp+NKscWSrJdfYV1E6Xhig0mcDhdXkBDpTu8A5MzK5dTpWYW4xUhdfnoyw0BDmdwpqzMSA5yoVIP7IOpFNyZLd4Mu53QQCiKLLFCmHwjrzM3y5q1xURDecmsGgA5M6io/cWFDJvtwltHODmne5cq4h5OZFDpUHyEWGuKUUvugFyLMSyrB2zo+HsEjXWqdbYwXN4Rzj1j+c4DfCw4ZrO2PqWk7AsqBVCa0Z/Lg523SK3pSO70fC5wwzkqzuZ51FbDIJc+cjCMcfCkrKXXr0lUdijjbEvAr3wNYdKNt7NMuqzNrpfUM+dgr/EFjsJ0zcWEMek0ZXOh8lpO+kVmzNTDj7RHeWqLa4suUu4QFzqaUctiJZaxHFsoixONmONRtO1fW8VQYgMY+R4uhB8bJNI5NVfPodJZZatk4qwJNGKKIQx5QHjSarrFdhsNE6oSxWsiMXChH5ToS+JMKr2hsHL27Fr72+Xrwff++vvaDY3XJeU+g/ILa98f/ps6Z21GTL3p9bc/thg/wgkjDpCOyfFwiUC0+9MOav/0bddEd19fyLdfWV899ed1x7oG66frP1k1//B/qTODP2H8Yzc3UjrnJOnRgoeZxgMXVyVpdXqm52lM/mHhJbb3nHXXmr/9OHT90fk2tE7TQenSCPPIv8QRJ8pFQ3WKk1hMqMA3MUJsWAma0EoHwA644HmXaDoD8MDdm0p6hNH41TvE0ZkZJNGgQc1Q1ENkRdZb5/KYknPXICK5wjhNN67jkhR0GwvhC7AVmZ2HSaOqeOgh6X5F8q4kOXOoA/cun/hEf6WYGSysNwA4sOrSdI795JC9+2IC3Qab0HMrUwXCMmtaTlBHCyPtYvUmXinbv9jP3V+QHWMpchsiro3pmO3Y8q6yFt9AKOr6oaJZpoT6bnGgG/K0Xr16qHz+5jcJOwLGy6kAAL+S1zTofZ5mNHmTIqhzSIRm8EpGOIqc/hjfLBsk5W2l9gijNDBh2fDu5QcofcavB9EnbD20tFUy8JFMeWkPQygDW7CTo9uTCeCCoPNISWUZb6yfuyeljBi4PaSh+fi5EztnpJkCrazxFAlh5HeE0n/ZmH1SUtuYMor462Mgsi3JsCFBmJUFB9KPGO51VfF9ZAAQwjS++KBsLhqTnWDOEAkPvAt76wcCyAILmUccw3XTlRocSr/ggSR15hIqBuXHoxMmj9bWvXFNP/OA76uzb7q0bd7PBft5FONpSLSFHzT2hjv72vyDgTNS+y/9ere7cr3pqdXWxHjlxvFaPH6uLWEJeeMNHa+mWT9Z1ELtm+cl1w/03Vv2PdydQPengkVpHwxsbKzCwgVKVgXtm5gif8LBrx2zNLX62zn3T++umlck68+Pvrr1X/x91Yn4/Tk/QIqhmw1VJFIYv5VXWaE2rIHMkjZBkMYCgAVf6cfNQ3Zm1bKynjWVxWHAac3SI4PcMHKd8sjyjctrbPQJDPR1TRxbexwltMc2ZIe0S1aBiQ/cjXJZs6C9M3XtJYZux43ttD3eVEIf05bG3C5oHySiqo30CF8A9cI4cQpu2OijkOZqHpAAJK/mK1lo34LBDjXS7ld8c4YHgw7n5EVBexvZ2FnPYEcYslUcRqwt50X8NX3YqlzYNR+AmrSx2UDulfXHEqx38dYL2jP/KnGtPP+LP2RuwCVZSpUyfVzRnuLnHzqAkbvWeNJUcNjfIhDcLoGtgD+/WWUBOurl6b/sBPjMdGjrTCRRf2shcbtAkrxzyL4A01I82lm74DAA58EdH4FZSN+nVE2oJDwlUKDN3uQ/BTgkVfRb/csAR4SqRbBM95HaVcKLUHVS9T857AuXH4AZRvuQCr9RQ8qIIMjukoI7SzMNYRnI6DhBRgk0phmEVpKBtC6NtcAsIMlWiOMK0QI+PttZJQMYUljxn2UuSbAdDhECDOt7U7HSdWHy0bvvG39YDX/xCXXzownrktb9Z7/7Ee+v4TbfU86eW6tapjfrGqdV6yv49tX7G2XXW7/1GHXjVG+vEGWfVvavLdfS+O+sVR++tZ63cmg7+HWheu35xXfPodp29+kj9yMq9tXXw/NpkP2pzeak2eS7UHMvOfTum6tFF74o2NCM5SpucJmCxGN/H1+Efe1ndAW8Xffw9tfv1v1qL0/PMTHTdiJMZSrq4yuatPtSPo5q20AliiJSjO4KEraNrtRJEmD713UbncaakfikOPktsE8NSmHIaGejHjgcgh+1cMpABgU7unkfbYeARRHaSbit+BxvtrU3CeVDFvqkVr52qHTmzd0ocOTsQqIHunNKT9tg2siqkuhELFZbpr+op+yx0AEfs7PGI0xoQiTNQ8ppS2z/2UUTrLexOSEsv5zeGwDoZ9FcH+ppHZpOeA9VMbftTFSoMMpTk8OzSZjwmqZe26jGguLycs7mdgz7k/V+y08th2joIIkBu2AXO7ZnYAhgnDPILE5E7aVr37CjDhEj5qAkkDxum5UndWECAtJZktxccHI4OyJsgFQzwQblItN+gBlFHnjgehdLomX7zoRb74ojTAfjkE90B5/6cvOizc4ymebwQCNbYsFdngMSfBNJuq5S5h+VtItkzRJE+MCZGaK2Y4yVWGQGxJZJRwe4ryLmn1KS3UH8a3rY44WDAzJCoC1bKnFa3U3AWOXnZzBUdlYYBVW+rWKajwxbCempkwMeGLK0scgXw7+qOr1xfF+w6q178ml+og096Sj3w6AN18EsfrdlarO9OHKgHTqzWTtp+7qFTdYQZ0InDR+qmD38EKuvFTlM99/KDtWv3jrp99qL68MNV1x3bqJfMLNZzsOhRNu5X5/YR+dnTWluhDbzBwgyzkp1MNXKJ3yiON+qjPFEqTrWKpaYpO/CyN9Sdf/m+uvAzf1o7X/pztcyVw8w/0EXg0VVUp6DwGAexTO9Qh5abpM58j+oYj3TaCUudnctbBgTT8ewc4m8oDJfBxRYkccrem3KmkJK2mUlBKbNDuwQzozUCRdoAp19Lx+rM0kJHUBqjHJ23l+u0sv1Qn6AmKgnk6IHHGZq+Z2c0kEnXziqUDm/CAOmFlLg0CO0A2QuiWj78yknw8EyeAjvtKHt016MCUGGEepnrYdB6VxfKJM9y4Cf+jFy9l6NvQxsMsu2nO3VjpDg+q3711dRRFh3ID/AGLSnKn8HQAOysQbxeLV6nkyibd7EL6aFODTDqIzck64TUSk1bmOpfSkRDNtAUqRt5Uf/6lfqxMjIEC/1JWHiSWvQ31Pub0T7Uv/gc1Ggv/8LETvbucIAs2l4dWQJvFKtXtnjTx52tW+PAlNs4wr9DAL4FcbuSOrOd7afY4tEvlDsXDugQ+AEM+I4gHVxiLJkJ4+3g2jrTehAqbB9pSFtynSSt8p0pKETjixJgfACLIsf6iBAGUUB6KEoPoMpXPFiPZadqjfwjR++v++65rb5/4411eGpfvfQnrqoDT7q4tqd5rhL0NtfW7XfAVu2E5gHa72TpctnuuTqBDA9T/0tHzqsXHpplljRZ319er/fet1bX/HCJzfPtunLOK1tVJ9ZY+iHoLFhlB+nzHaureOp8jpEPhsvd2BqJZV9N7a6tPQQ5dDcPnj2v/5m6+0//qC687sO1/cKrWUbiGMirPtVb610pkR9+ldmRUMnb8GqoYbtzqd82cvJUuu/iL+id68mnenAK3c4VDYLAzgEuzkL5G43cB0PSvDMTXVa6UnQs0jWapkGkl/8+x6kt27iEy76IeNVBbNmO99jIDCwVvRRpvgxMBlv9wNHVHwjr8HbUcR9JfNrSpYt07Brd0ZoH633pLzq8siUKWAr+8G+aik4P+k2rxtnBXywetuMEwnRweaYsGkQuaUc7EiJyC+og7GEg99jUMVQQMAaaHCD1qqs8dmcljWD2Fc+GYit38DGA95M4oY3fszKPTv3K7Afe5KH5gDMJhx9weA58w5rL/U1yKi98JtlHwYNoZx4Al6z6E22H1sEdpSqTPFNhm7QXyIBKcw/1mgBMQlu18HBHvfujGXSgJZwXc2aNXhwOrPLgp29l0P9MK+8gX6gCAzIv4Ck/wb0dMQqgCbzkI/uWxYUVlLSvXhK04uU9HxXFZ5zqZzSjxahAuW9MDd8dpZm1xoNcGNWoGZ3Ie0+KQXJzlqeQ8kSEu276cv3Fn7y9nrbn0nrxW36pzrz0stqam+Exr2xRrq7W7CzRBlqrYGC1Vgf57CdqnGKJ9lU2Ad5CWH/ROWyU79yue9aX6wN3rNRH7t2sPew/XbbgvS9sfqIxb6rLuAFr2kwOHR3sXHayzFAodQPV/Suf0Eo3i97W4VP+nQVurqzUzoWF2rz6bXX3e/+fOn/h47X2rJeiQ66yihWdxe7gdCSPJjSu1uWwTsyDek2RtvNpiaE+lT31NhAKPMMlL2fD2tJY33hsa7221Dat8xEfNYF3WpfJUnMWWt47pDPaXtrhKTxqtS4zYdoSryjzBVzPqjFsd3zsKecj/wbmzJRsGxhp0Aae88sJgqM2sfUafupAoggJJilvmurS8nADnLOYXA2DjehEccHbsyHpo2v4lw+PnKxHYaMM8iy8S/788Bh5DLjtA2mWjiR+9WxLqklo0y4U7wZfLpGUSSalmOUZU4cZrri63Okfl6MbePd2E59BtgD8yjq6YPfZGaV68MA7860PhkdzAOhz2k7a8iMdUuCXqJawXuDHXUQDh3tI0V430D0A86Wdu05TR2eegzdUqAU2OG1sO/F1gItSGRS9RWEG/oTTx30lQ4F29LeLrkhcCm+Qdr9KWUJBZiA+oe4pVa6EO42Z6X5TlTI4EZEGMiojPZ60AOGOr1HQ7mA4iqN0Oh8MBAntJGqZeYQRb4rMBAcGD4VURwinlY4+2wSSleVTNXPbzbXvxi/U4a399ZrX/mo9+fIra++Ri9gwZ5nGx6DmdB7UNTs/X4d37qt94F7eyayKddtzkPJf7pmss3dP1/1csXv/D9fqz+7B8HjbZXtdpKE4tLGOwR3dR1PJmWzmjn55J4MUzSg6S2dnxMizwtJBMVbubTHggZ4fl26urdVe7tc6+jO/Wt/7D/+6nrC8XGsveD1TXTa7oxqw4qgeOr9ya1gPXTP0+fKlk/JGTs62tZ4vHdrpuZ3cj7MgleFszlmgXHsZP2Rs62tAYKfNCJZyEdKU5usGbtiaRi5H8TxFAhyenSXkUjTeqROFAo0AC12qCdjyz2BIrfyFHA6cgAfeMVAlD7zOCypwuAGN/ygHPHDiQ8elx/uIGP3RQU0erFRniENb+RSvdMUjLHCU65MC2VXlS5rBGz2kedMGbyZIgDur2wDZlh2Jj8jF37Q4D4ch2COeQVLd6k/qRaTWypM6btsCKS7lEUTF0EIZvZDl2frsEzLAzoNoWT6CizodSwFBrli56z9ElAk9US4vDkrqPwNhaDQvMiRFdRB/McAjtAHVWRMqiJ9lBhhdyWPL51m96n9OdIQVWexNXduGIJUK6ijzsM9vgtxZVd+uoE+0Xxis1umjnVfHNFJYzr2HCm/owyKdaLq3jIM1Ao+MwJfipmHH56YOr2FYw+QKDx6TSDxMK+VSGPWqgWNQzj01bBzUhAENq8NJS8Gnc2crwnHLwBo3es7e/q06+LefrwVuFlh55ivrzCc/rerYAyCfZlbFoo/NGoNFOw10UcgC3rxrYa5uAOXLicevOmu+ztszUcvcD/WRH67WH99Dd8Dql+1EIWh6KVYwcstEM2JHTaClRP2MnbuD8GAg2rnnFsajKWRB8PnZQxjT3Sz3unTAqVonqB48fKi+dfU/qtX//efqindfVA9f8vdqGxkyqiK7zkasAh089BuHUrP9MtiEQ74m4V+e1J+lfvvRsMIYODwbuAxUdj69S/4ackiTlaYOp61CW8BAQVenwkDis8+6x+ITUOXFzdAsZ8iMo3QGuZGHgZYUTwdauAq3FNo2HdkS2siiPMiG5Tpn+yCwZvlkYxa8zuQNJi5T5d82yuboLly+STiTiZMDIcxp3GhOGGczaZN25AFIAKE6QdoG1BkgpSmTzt5a79RxhPdO5ts6pVSntlWbjy3FaQtO/UtiuQmUtIFM4e20ng0cJJANPHz8gxhaJaiED+yQAA8iuVEakPjVtMVJLsFM+5DOoMQ5+oiu5FEGxS3P9uMAmI1/xSfhM8HPMvpnX+2jHTx7f1/6Lhy4j+o9jL7UiYc8GggN+vqSfUkben9Vzmy257E/wNnCQGhbl4jxAfAaIH0lBkFDmlGiDXqzVGYMAYLIBbMFDJUZDzCu2SMnDZ3ZkCWv4SHGRyWYp5Q3WGmrHfxaJ807eQ3baqItUmmcLZZ+KwlUN9ehrxOoNti3etbL65En/Qi3ISzkGdTeuOpsUF69w16FKeQUypzjAXrHlzZr4dSJ+ndnTdZFF3C3O4Hqcw+u1zvuIWSemqhLdvUfGnCxL8qMyeHXDhl+5Up5yaMGpJDLdjyfP2/GEvcq2sANExFT19uCbQIK0hh4+Dj/iRfWvb/1+3Xi0/9fHdi5px4+98ncWMo1m1FfodN60Y/SmbQDzKg3UZlA/FhH+t15tAM5jU2ZThJxaJcNeQH5KJOWFU/j015UQV/45hnpwk/LHJrkLfMVOcHvFH2bZba/DxPG4JE7lMlka0CS8EPD8KsPBT/1p3ECM145krcEJAlw2FT4tgu4YDQ45E0Y8CmrA4P3TengVjlr8HAmmICLgzgw2WlzxU0dAWMQUcfqUn6tV00OrHa0UYYQEyWz75QPuk1wlmmrAm+69enZ5W56EG1HOspkE5ewkO9yzpY7KBiwusN2IV2PsZml4zBl2WbtKA+xT/TQ8GnfjAx2UhaQhrC4oMspAwsCJ1BREItA2HsER4cHLOpVRy5l6Vlh8PSz8WilX8aflJOk/dH9KWWSP18OaNrEwO+sSn0NoTVBB5ZCR+GND7axbextpQNlMqTBq8z2OxcwQGsq9lwEjBuMAiozoxnAKkD2hBx7j8oVmV/WJm0e+FZAnzRG6vn2HByC0V5QLMLNYos1dfu368yvf6bm1/lZDIHq+CVPrbWdu7nxcr1m2A+aYuY1rvNF4l6TezXeS7bO8vHUiQdq/42fq19cvLnWLzzClcET9d67ltiBn6gjbIDM76lcKvVKjC9nUWEXjalsxZc3fx83S4EBdIbZkvdPbbOE2+Axtnn0ihHBHzdrTBEAmyAX+VZT5OzIhNXxN3VIcDr/mc+qh8+/oCb+8p114Gf/WT164HzW+PzgExkSFMIT+gw/rZ8secGNDbscGI3MqdtARf79qFDrdASlGYrSznoDfStdW9ipHmunH2TpYtMwr5N1ffDzpb3EqeaaTsP4BAU7uTNea4UPGviwg7hcsKXfo9u01yCL5VSISbxjMLAsezW0CS1w2olHEdSRNO3o8U/ya9EfINg4FKMr6T/Gu7qezFJZXvQEvR5tkHBEzx6cnOC44W3gT346b2AzEwrpN7EFeDKbtW4oSHCgXOkcePzLMW+glaZfYjCwct9ogpZMyEtQc/bnPj4Z1JXP9ORGaFmnzN1fQeLb9nm1/izUBinl7C6B/tW2MN154XyqQkdMl6X6nB8DdFRNCYe2tw7zisNZZ/LipC55KuXXjf4J+kgHKcoc3tQHb/XTegSPOI09CKI82lKgfAMkj+6fbmHL/JcE9RmQvG7gvSzZrwJKpDJjy75yp6FERIPmHWSihVHbwkyvxXEbGaLKrhIeIWyZ6IKQ/CQd1Ksmyyhqc+lk1X131b6vfbr2EljWrnxJPcLSz0A1zSW4ae6VUnluYtsZVJjInFGpuA2CycrSsZr/zlfrzOs+XTM7dtdXFo7Uu/7munpw6nBdBieHdk/Ud11DI/gcS7Q2HGjAtc29U/x1UJYHzhVmwLuFg6ytrNWxh+/FgOt1LOtZ6fbxtOmFmj7AHfTegwUPOoqyyk8016pJHoA0yrKIK5kTy4t16PKn1YOLP13nfvi/1P43/5M6wSNpZre4uklQVE3dBEwm9DqNx0s6dhg7LaK082gr04JZR8JZlc2ib4RMsBDGDuiZmtiJs3VxnCAY6ARAoLalI7N4h5Y5yY83psJafCOX24FwqRYTYas8d129RDc0A952CpmlBS0TJFNPDW2UTcdtcvBDIvia6/ZDhXAEBpYU/MsaSIC086cwcumbPetSzsyi7CSUBdxmJOTJZs4Ixv0SgwHZ4FJG3jnaCi2zBdYJK+7uIySCvHGGH+qVI4OtrIPNGV5uQUEWZZCC9OSmO6+NwJnO7FMtkAVfz68MZDY+ISaTY++016kzWSAFjPVi1T62iXrsRAMfuZAAYW+Fsd6XOsnsWCCQqV7Q5Sx+y7yo4ax69J3wYHtpwLMDmI+eUp7cRwUB9etsK1cIyTjue4SedqFOfsZloHKov54hmyFou15GRWGof4NEQy8TEbIl5rtPrdgwQFmmhareer7ilDqReRkh3SMnMBT6sxmjr4Zdn5+tkzxTavvGv6mzb/gMV9r21tKPvaaOPuXptULAmeIu8rmNnqm4yZjOh2EbLXW83JBfOnm8Jm77eh289q9qz+QZtfnKt9U9Tzi3PviHv8tVxc/Xj5zPMvKRFa4a8kea8LUDg28gtPtW2wuzbBzTgXnw3vFHHy1uwQp+2d/BZ3NuV21f+vy6hJ/xnHXhE2vvmWfWocPnsL82WTd8/L/XD6+7trbOOz/LGO/QXWPjcAaemMNF8Sglqhu/DLqO7C5LptdX6/Bzn1/385vEcz7y7tp19a/V4sJenlbKc7vUvW11FP2Kj0shZTeg5uofTOY+KeB02QQ2Gadeh9FtDTDaQqMnkOoI1JjOwCQVAWwFEXUsrDikqbV1oKSoGPqImBsn2KzzFI5pk84AztMDGGlRZNkGtL/Xc9rvIanuRCEaf5FhefCiq/f82FjobPLKD6/MAE1R0ew1b+TSyU7rQrQgyz4VddlvNU+58ieADGnGKO42tzO1DF6xsjOp86CRB1Lm7RXOSFyuqE8Pv62LHmjQAbdpOFAZnPyLRy4oMziK007bM7kJbA4qCGi1sUOT4IiMfFntn57GpmTkPTOPMJSCVobC+UmL7tOBBbPFCS7RrSBcaEJI95OUqXUPz/CFN2RGZB/Pz5QwrFjHCYN43JrxiL4jD7wjiP9K5NU+fwXicj8aE30+yMLZpb/BS7LjACH92BNKVsmHR3gLdWVgRdVORg1MZFkjMyjJYOPhetu2FCOGjUBI2s4jnGBpN5RbYLEG19HkYtuOyGuTZdmqM6bbbqqzv/Kpmrz5hlp/3tV16oWv4dEvB9jPWasZfrjsn7uqnIwfGFgnR4UYHnRo8eTaydp58y116JoP8ju+nbX1E79YR9nn2uJq3NbJY3UIbfDjmfoBijvAun8PznIPClznEvHFLIIv3sHy7r7v1Z3AbO18Qp138dPrGRdeUvvPO7v2LvAbQQLqzq9eWxe9+qpavfIFXE6frZk5bvqc464sAu8P7r+1rrvuU7Uyw93vLA0jphwitLJ7oAVekYDvqIk8+oR/zT+FrAdf9JN178pqHfnYe2rPG365Vmd3cN+XwMqPzCAWXQIOjfNIFgq88tf7Q+pIeG3vkkxoMjAhbW2W7GAnDWkHso0Q2jVcUqZzGiSs67Q1Ym0Y/6TAI3dVy9XQwdyUF9HYffUPB+sEOwk0JRzUrQXK/XQTaNEOgmIOZSrShHKPyG0iaOA47ZWrEeiHkh+gaRupGhyMBhDnrBmhAcrdJ7bh4x6TLf32juplfCWdA4GdAVihD3uZPZv3lPlkidyCkKboh7PySj+Dswn9nZdXJ90WmOcGuRmmvHN8+veZwIoevPYt56OqdpMN9ARCKs0rq0ewS4/D7QiDqwR7kIFnaPTWSstipV6nbuwvzR9loz9JC8GUzY9S2zLhEniDq4OhKxplkPQEvIurM0KjB/iXN/cySYKT/oUOg9c8DGSmCGaZzmxP3VDXs3vqlSd5deJAYAb8nLVF364hfPNhPOldZITrYKS4zViMSkZm4hSOeOQdPfv/zzQ8LNtAzwBOLKI2mJl3HWv91tQMgWqpJu74Tu376qdr56PLtfG819Q9L3wzy6+52rlvf82sLYuQn7f0PUq2E7X3YDj1XIfGg0fvqdlbvlZn8Xyr+W2C0/PfVKd+5Bm1vofNKYbIGYKAVzJcLn2ftr/IjaHOpm5Z3KoXcR3+2Qvwx37Y2gP31xmXv7DmXn11bV/xrNqxsKPmdu6qqfm52mAZ6LH2oy+q6es/VgdXLq3j513GPVXwR+DdyN4VlubIJqHEkHuGm5+0KT+hxllwADI+btZ7rlpv7dhZyml9RswZlrwHfvKVde+HTtSRaz5Q8y//aeScY+bXzjDeapINXMjEwSAdJyQvjexvoWv13s+AskzlS69f9iy5DKcxGHogM7q4KW3ZRkzFY7Cg6sChc3ZHdMpuh7BJ9pQ4Z2AjI6XwjTM6wnr1FRShbm0/kaD5yf5UWPWLN0wpm3z4naRNPchYps6btjruAKu4+UccIDL6R/e9ZI2O7ITRiWTgR0RyxdvHOC3ylDxnBSFgPQDSWbcT0gFcxrgHxNvafMvD0CCdKxwjs2S6XwCQTgSYnZ9OL2+xk0EGhL6cPbfugYMXB4R0UIMJHc/68Dx0WgmQTNuIBLztIR3daXtZc6buwJPZriyDxxmVwdI+rUwRAe5pnkA1C595rBDYLbNe3PKt/ixzdrQOn+I36K5yX4IPGeTdQQcCuXjiEhCakVL6HpwTrJUldfIBUvLypDyebZM0HAiHNaJjbYIamzHgBEunaz23ouQS+9u0mSefDgOQTmpl9q+ky8v5rUFDp113M50Z1fTtN9UZX/1EzZ2iw3Pj5LFLr6jVfdyD/tB9lJ3C6bnxU6PKjM4GXu7DJsmoA46TPsvqphvqjD//vdp34ls1+7PvqUef+cJa2bOXzVVorfuzGXicnA2P3D6a41n7uHt4/1z9+VfX6u1PnqmXX8hVxIdvr++/5fdq9SdeXTsPHqgtbuz0nhhZt0OtItcWvxncxYzt4ek31OZf/FHtf91b6tiRp9aWT12Ap9YI93who1dx7DiGK53Y0UtlpzNRbpwnC1+WqUVlw0Ck/RPJedpPvPZNdff/fHed/7m/rOmXEMTFCzdu/vajXty2FAutFVQehkhhqU7pc7m1E9QHGG0Gp9JNm6GcBrEzwNZjLhLa1goDkZ1VfXgWRicln3Lb6lRoCufxGE7RinjlBZEGRwNAf7EViOz06niYJODwOiI8yguIpBVnFTEZW1rmx8Ds4bLA5V2kleeUERipz5MQcCJ15OasTdx/yx5cmosU3dMmMz4YWWbKZGDK8lQ+kc19WwNZbmJED85mlVNeA2LGNzRaBjJUJbhIh3TLTT3tVaT4pZu9TPinRQag1oezi4BRqnWlhU1ij9aLLZQrHVpYiIjDLwe0QT0hrcH10uZDIAMzsyJnQKS7XePz0T7O+p0U+GsJ+7biOfXIH0ykdQcU+crMSQDqs6QkKe8Gr56NOlA1zw1l5cA3HUS8freE2rd5d8ZoNHPu49+JuScWGci7Mc/Th0IPu4ZLiwdlihA0GpxSnck6Z1kGIcEDAZKeVsMCitXRvO0/Sk2g4uocV/323cBs6NRKbT7nZfXok6+otV3MhpiluJk+Y8cAVsU4akuKWy1RHrMkloWLwGze8q3afd3HavexR2vpyjfVneddWDuf8fyaY1Y1xaxnwt7h3YAqURvx6Q7avB9cmKqfPjhTTz4wS91S7d771Nr7whfXI0curHU2wLe5R+p0wxaVkY1wsbRUBy9+Uh276tdqgn2mA6/gAX1HruBGUHbE4K1BvXJD1yFvzJPuxNYso5UjgTpERyoxHkDHQZlxcjqNHd6gtsbtDnMsLTeu+oW6+/3vrIu+/PFafd4raw2dugxrvbYtVJf+b6elInU6sPynI+eMdQCS7Ng57deChRdhyBnvsgkcsHZI7eoxtAYKSHn3gJCp5PjyLF4P+fKpmraWtiNhu023l16wwkD2dJTBIj7Kk0PmBnmFtbOGIuXRq4EKfcaJbaOO5RRC4kyA4s5xYYVxJB59FfYyKxCj+nKvxRmGHct0y2sdFFPfs4TMFFIrMpntevnLIbD8JQ8e/Zgigz/JzFrsP3ZSO6PLPuv6RZEpmLN9xJcGeWcmHuLKJ5CkmZ63lvkODACy5ks6AFsf7YPLgcXAq8wuuZxEeog9AQomHURdBnZQp+3It3DSh7FslNNeXgxY3p3e/64TCULRuuxh2Ya2iQlJdzvHPIOatuhBBx6oz5NeoiFwafN8qIBuz9RoYBs+wk7b3xNV4U6loWa/woTlOkCgSeeX8GNByqmHUxcLTh23WM45o9q+9Zs8Tvia2sHzodaf8ZI68RRmVLv3wjDBiA1nTJerc32vB4yIm8VUfl/GPtcSPzTe/t43as8XP1YL99zD0u/qOnHVs+v+E0drhtnPDL/Z8xYBNB1ly6djdTuONlctKAjZnPVceSY3irIBv8ES7NSpnXnczIQ3bapZrhBq5hh6MLj4/PX+9spSnXHBkXrkdf+wiqB1xssm6uhFlwc3qIM7OtJE0R/T8Ck2+vFSYxrbXcEbxcKHVAZl5pRZBbDrLFP3sCSduPof1p3//e11JjPGjee+hlknc0WaeNVWempJPuNInUony+0ZegxwOq4a8PAqXo/E3VGygYpsHuLyam3MaVPKHH+zTJNXCgZqgTZwOcuzuW1cfjYtyVIw+I8zLMMKrIBjDFzAkpdI+xTl1qes5dFOoWgb0t0hweNIyRGanDOQIqMBLcsDKvSf3DNkmpe01umsjJ/YvGeRdi07rgHCGaNY1YEy+jJIjJ1bvvMnEuCJnaXLKwOBvHWOUvU7+p3ep4C2Ud+cGRWcGWoNccf+TDObLqXQUR8ebsbb3CcpjDNYIZtC6ygAlMUX8k/R3TY6gLRt4wAAQABJREFUoa22Fl1slaDsUxAMl9rBOvwS+/hx6ZdBFQqxMwyrazFqQ3WVIENbl4AGD/XmHesGK/UbnFBFDOAjXVhUXmddoOHI1/DdOQPkAtO5OaM61WpIej2ASEsd0DUZpPwnLm0ml9Poc9pOrQJUbP86W0Zi9jAvORnrjAQQHOXmwW9w5dp8GYLLp07W2g/vrrkv/nUdXCJo/dgr69Slz6jl3bszvM3wE5V0LDqod2pL1z0edo1qHqbW+U3gMvtYk2zI77r2o7XrrrsIVD9Vp17/T2vlwJnItVV7Fh/hGpwSMiK4lMIjxRNTxeNbUJXlId/zKGWB+1dWV6DFpvnMNC6BAiYIdtsoPk4WWEUb5OQkjdxQR4Dcf8GROva6t9X2X72nDhCF5nbsgBtV0qM+qox6KGIPDp2Qk3bsAX+tfJ78EG+inT3Vj3BaFcA1fgu594z9de/rf6m+8Wsvr2f+1sHafDa/O/QpEdvMO9U7sH4ULzjAl//RC/UBF2m7ox3BNtLI8hE+koNxeReHuhtURY40GS9FW+pIF9WiLANC8iKgWrRpF9jGa3tLu428SiXUA6A+0rEiAxXhB1/gPAbJxqoc3bEk57LYzqAOEwApdKZvO9VpUPbshr7LPC98SNnlivD+rGpQA9wJpI+AjPbyZKX+4gzZGYA8WN36HehS6jHioVXrUrikwIVc4uurkQYg9nrdE4qc8ECdm8pRC2fDiLZ0v7fl08MtU3fCe1gnBeSlofbKxQxqMhPhbJBSOQlSpOVbTL2J3Xi0n7P+WT6m/fiSpw5gLYe3vVim3xis8iPsBKeejY50GkpNSRqmcsCDPPJSl4G13ICpzUn6ywsD5TyTkp1cXfI/DtVpeAZPAiKyZAZMOwn0bQ6hhBa8rUOcMk5WjWS6BoGoX2R5cSYtWaNdlm0Yo7ii9siJY7X0lS/U7us/XYdnuRXgx19X65ddSaDah/OwEb66Jl241clULDiI2NNoZJJAMjnP3e1sZq999+ba+8WP197vf682n/fGeiSB6pAU2aNalZHMytZYQsqL5DWKxlRg3VSudRgdJQfl/mj5yEFuhGAIW+OK3CZPBqUoh7BB3Nl8ZzYDw30VDrzg2nKmdd4FdfL1v1wPfuxPaubmL/EYhiPMwAjMGskfsTKSO4Jt84cUOo82E31zqKO4TMQAOgvskW3ZFEzu6Xlr/CD7rHPOqWO/+Z/r2Gc/WmcfOqtOsnc2yRCXnz3QUGjxOqykA1jCe+zAEMx0Xzh58FAb5uXPZbw3xqagv/KdTgxM2iT4EwTUKPiyXFDpQLZMyEVWbiwNAesoFF5cymi9mohDSluy0B99SlwGJ2FtqG9IIDyQtuOaBqWchKZLmdzSAR4rvGrnb9HyA1o7nJ1XuoPwBgX57kAgIv0EOvigM5ngF5Wf4TXSJBs9ufcm85a3LmnvwcnnWYURYOxH0qE/xj81spvK3QaLgcB6g0dkU1/o2oCpzpRfn5YXZxmRRP4pgF2CXbRpLKDscboRBNrCWxeRLVGdvOwOTg4cGFwCCiB07CAw5WrCIGWw8dlmq97mQcb76owF8hC6toR267HxqBd57n5oGWm/TaALZfNKaf8hSV8x9Yqt1X5pK2Fccenn81G4CAGCaG4LISkRbJ9mDQxrkVI6FvNRQJXrtM2b1ryXaJsH553iqt8Ws6EdLNv23Prt2nrey2qCYLVx5tlsPHMTJJ1PB7YnacgYE4LeYyUf2+zbrJCYYOm373vfrDO++bc18cKfqpOv/pVaPHQ29oA5fy8IS15iTU8hOEC9lwLyTYBVDhXW7AKctKXdpEVi833nDL+AXyA4aqo+VGqUTYkyanDlzkUEUEgiHcoEe1f7ucfr+OveWg/e8d06dOILtXHGUwfjgQndxDVtz2t4B0ecg/JcMsYYym9/oyhnviOXAXST5eH5T7oEPb6tjn78f9TBN/x8LZ7zJJbAuGyLBc9SkGftZAcggb7CKziHLpmZnjDha2xDTjrZS1ERAuAU+kHkdgaiQ1vOkRGZth7ynTNfrmB00DRPqQJ1GzuToHZMCk2FXmgC4ys8D+3MZ78POi7QrSP+y1ZQpk+B0449XrXzQYpehewOhrOnN0mvKWY2l7SyhkJ3SEDyF15D3WCtdBjFFMMohjrICwbQSGSyrvsM9h4AMwgD0TdwOiMECR/7nUFbedhhoLPx8Eeuy6cPUe6tAPqGgvlTMQOGbekmMGFCPOIjYCG/+W6RCjLYSmA+7cfyLoS6V27o62ucs/+HAbUBueGj3tyMMbCy3HP5TLAa9/ZG/cNV3uGHtv0bWnkTr/IliS9jOySOdyonxJXPb29RzB378hR+PFMr79DWJnmGO7hcKtpWuA6ynqEFLDO0bs03GPwaDWOJQhMdmRK52bXFT2OWeKTw5re+VQvXfbJ2nOAZ5j95VT306rcCyk7+4bOyie2SaMs9IDDACweBjqt5joxrjBVLzJimfnhr7fWGz29+vSZ5TtTyP//5WjrzHCBxEZaP2RsDPsFKFkn3ncIwCc8xNEnRh4RkhLFXaVwO6e/iyaDLj2zUyZM8foZ7sDLaGPUFkTngVYGHJ+m0isnFwINjgnObvaU9Zx2u3U+7sh762AeYWfkjbPYJ6DnebCvv/oQnzjbg1JnaoZsf+7CBRdoaMjqnrDsY/MPgBHt0Z176lHpw4ufq+Af/Wx34mV+pUzxNdYp9Ozf4dRJl0+AaMh1SnNIUPx9lajjpW96VJu3cbqT68vBbjcp3Y+6yVA5Qo45CC1IScMYgpMErsosJvF5MSGcGpbzo+OmI2lOdwrSdV72IymUT/TLLO/OyKrcb6NWfURmUHOnzIW5nMzb8yzWQCmgbPrZvOUxQ5Qf/DQ4zHAZaawzsnt2bk5fIbhGI9BMdawz+I87Qo0pK3dnE0IjtS8GMHh2C8m/SyGrQ6EDCVWjvokWGzPzgW77y34MoyPuwzPemux0ZvCyNKGoaZsOr9MnYXplDtAOVPtX3XKFXFYJxFEV+zDorF29QQ1Na6lPdeuadulAULorVRsyMQCR/sZoIONSTM0pzCS7qgDppdTBjokPbpNGL6fjHAG+Q36DM/alJ7R07UwkOl/n+RM5u6gzTm1Wn3QOQJ0fXxMchr2q8M9kpeDEbSqD69tdq4Yufqt1wPfW/vaLWL31arfBffxPHHq6J4/yrqPdByZAIRYsUkxMbceiNeR5nfOqRWvzmDXXg6zwq5qGjtXgB7f/xb9f2JZdnaj9Nh8yU3s6HEuyM8S1wGThlRU20EqWhmto57P4Cx+nsJRwqdx93tG+zP5bNO2aF3EaaNjEFKIIT8NDxSzqegBKXHUmywSgwMyD/CccjtNjTyj/kurEH1NYGAQtgQS3R2YIN3LExFW28AT/yZEYTh3L67kyK5R77gIcvv7zuX7m6pv7yv9beN//jWtx7VjbKE9RgUP14ZIMYRjsLcRIa2cNO1aPq4PhhAr7CD/IBLqhbAcptY/EiRWRW7hFvL+2skIBO1J2EEoDaSR2slK9pIgpp8cUr1CVpO12CDs10RO0kH8ynY3+2TdpJqeyORGeirDualhOHXEGTTHyDnHw5EInLWg9nvtLwsDPCTj7jrMgygVt2k91yLB8lbFuHRPjXxeTEelvY3o//LJ289GDO2x7ilxIWlnYusZ3VKBNqj/2c1bg81F6+bCZ8+CBluUfrYOBSmsgs6g5S3ReS50sfHCBpxywGggas0BIdZepaXxiXoimmKgOTBDkSlHAIg83wx3WRyTppZAmseBzGEXmyjTjsBd424bzL1VqvAvRJ8QKE3zqRkK95+PP/DXNRhLwqiFdrwwQyApaNnI5DA+nCPZ2CSOiGCz/+XV1iRvWdm2vuuk/UAcL59AteWRtPfXpt5KofwYhN4dyewIa2wuqsHtPeH0XSYLFMJ1+++9aa/tSf1wV/9K6auOottfYP/lU9uv8MfhvELI0RcApG5d+/xdbjxDOgEmvebjxqmIxWFCmMNPtoQ5sHTQ5lEnYBHnb5uwjm3W6+D8IGv/DBEVjJMOJImI8KzygHDkoCP8l0YIrfBHoINjXRP8j23z4UYHL7BPS78xu83Y7Ps6RI9zJIp4IHDUqdtO3kWY6Zg+ls/msXbrk49Mzn1H3svU186L/Vzqt/pZZ28IcW0Jr094/yQBs7vKNz2LZMPijverWRLhBBUa2N+JgQhlcnwSFszyny+NvYop0tEpMPVu0DpF8BCRazFPQbOHgIUERKOYWZTQzkgDDs8JA8CtRz5LAXZ/ZFGX7Ywa2JpV0clRTw6VTSQPB0dAQRZpxB2WrkR92oMYOsncND6NZZ68A9FAuCMrVpThGQkkyN+JtfcRggx6HCaveeDEhewDIwaNsEE2BbP8gkAb68QNCzGgOUuvVoWQyyzlR8ZTmIjYUQxiWZeB0Q7TPpK55P61xK3S6/HxWPukR36rnP+kznOxjSAp61mXhVRX4kDh4DTZa7FLpck/1eYoKXNu5HGcw62OoTHbAAU2kGme4H0LZPpB/gr5FGfRN/sj4JTR+EqT5oSD4TGJRhm02eDpKHCog3TBI4vJfE51H54Lztb321dlz7seJvQWvqha8lUF1Ry9z/NMmSZcLbE0TKJniWTsB4kyNYSUGQn7esMGNavvOWmv7iJ3mu1d/UzIveWPf9x/fWzBMvrZ0XXlzTD96TQJXA5tU1OkyWqPCDfcDSiofXwTFyaaANFLUplNQ48WV3E3Z0rNxrY3TGMdwUt96NSx1wdLIojUbWicfpqkh6c7L1QoNQk0+DjzrysNS/F9MgOp5wGjn7B6nXQOIQXys9vJLXaZz1yfUw97F54BwrOrhRx4Bw1vNfUA/wDPuZv/qvtcDG/+IMPwz3WrOANhKLJ9tJ0DJQR4fIn1kKTiCA1CIoXymBh8bQ33E2IK2zl1raJOwCctvtrAFTAkoGqTTnC6ABc+g7+7HjqR5ZsC4djHQ6Dji8cTMzrgHOpWbbf2wDkJRoM4jGWQ7QoxjRpfYMh6RzBrAlkqa0+iuDgSUgU2fBRxuBxSm07WytfPIbXiykjSAJbIEyz4c646w3OApr3raScTPbZV0uNlAuBfeuOnDIF/1NwTjGsqTDMOV5DzzRXt251NMFw78DuDCZ4XM2ECgPDTuAtN0A6G0AaPkaOIyc+pos2MzZUm53iFwGK4OEepZ46yw3M8NAdBE4afACTsp+DMDyII+hRyIDM6UevXXTNhUiH3GRark6mKYcHgxck1NsK6lw149W+NdNi94DddNXuGL317VjgjvHX/xTtXHp5TyPajf3FdFJeGJmjM5MI31jcFt/xOmNjlvsrvlHpMv84/LUtZ+qA1+7vma5xWHzX/zHWuLHwmt3fa92s2nvvVT+95o3fhocpomeyJsj6iSTK3XwBocIQUDDC+xQEUjlkbBNxOXLkUwtOop66HL5tTt8CehCzr9U6ll6w2SKCg7xCqPdDS79Uw4NIBaU56g/0DI/Ht4y4L+naJ9sFE7tTPBvEOHs4t1QJ25+27jtJXArmF/wHljzpL0E7CXeaTb8D7/4ZXX/J1fq8CffX/Ov/Pla44kRTpMdsQbWQ1LZlVkV2BHUnp0ChHnbKRycIq9keZ0OqIBoW/WbDkcbO7FBMOxR3rG6dSKP2QLg3PqThI4m4tYXTUh2h5AfZ1G6f4IVgLkpUWaBUVMeLlMSBD2nvXk+MtYglENb3pISzrytBeQtHB9PLs3E70t5fQWXIKlq/k+3GcikrtGEH/lz5uPRegip4FX+kI+M6p1Dua3FR7yEn+ANXM92pA0n0jemcU5QoEA8fjpIQEsstMseGRXjjE2BadbAQNtyDFZWWNd42wdSlwZ+Df3HcxgXjRdHkFD/txPQ2GDmZ5a8VxodI707Xv0FPxMBulTsaRNRKVPfbaDMyE+92xZqyKWph33X/uz9ZyTBhZTQy+Qi7PEFIqXynWBuX7BTLBM8Tjx8f+26g7+6uvGLtbA9W7tf/Npa4Sc0295HZaDiPqE4ET06G30YI7i4quA/xPj0hFMws3Ln7TXzpWtq35evrR3Pe3XVb/5+rXBLwAbtpoDbyYzEWYkC+1H5TinzsPxIqzgoUaYpj7ks5wjzlulZlnEOTyosMCrIy95pSHMCYbRBS6OVDgSPCUaAeKuHxhBacVSye3o+tSKXXZk82vnF8xiMbWhgmz4ltcGldfU0OXGqLUCbjNgaDMW3usJkeO8yMIduO64ZZ606gB/3P7qzYyj2Ag++9DXZ7D/nc/+z5l/8xtqYYbYL7sQnmaF9pvekR950Eqn6rU7Tec2ZTq/T8frlPUEN3fymnTgbQaBcNrYfpHsE3pQUVLWH6hmDU88moAW9LH+ok8cGlXbUkbw2bA7sRPJAAbAJSo6O4QCYwGkVG2sbsVg7pMhaF53T3kNo7eESRl5sMpzQi13Vg9mO9SaHdp3ubDBRP7ZNIrw0T2mm3cCjRrt+0LujZHT5mOwWefE3A0oY7jahQ2vl9lDekf8MyuJPmZAGgYFWclAlKxUHB/uMHxZPOVz1J/CBIH8+EUjkRwEOJGqzgwgE1C3w9gUXUg7IXiAZg3PkpGy22Yi4vcSF4uP4c7tiED99QUoJ1vDHPCX9NTTjQBTg/D5tTr9WN/bZ7MEh2PSjK6dqnfuo9v+n36iF866s+bf+01p+2nP4y/VdQOPCPDgvrgEyp8Lt0H3VL4Lz4+VHkXbtjttqF0/S3Pc33J3+/Ktq6zffXivnH0FSIif/VOOzrbaGYJXf34krwUKltMNIBxkGX4FR0rl0bjkKiPoBGEeKKCEKtE5SXjbmEmoEp8A6Z3DZI3dfyeBoEANTzlA0wkPI/mBHXLMTU+BGoWUaX2VpSB0+oxttZcfZAZXhfw453Qxfn9hdcw/fjRG5HsqV0uzTaHjglSGbpOLSiXT+YGpZ7W6YJkZy/yPLTOR1+ryFEefwnIOvuqq+887fr7Mf+oM6+JZ/zm8f+RUjivD3h4rZnNldFMpc01Yl8qCzRX/QHp/AYGDwv4Hc7/AeLWfaPXvB8XBIuZNVU+oESXAmEPIxYHYXJz3Q63qXenzkTVb4qC7e4atnG2Y8og2+GyYzZ9ukBmyhmZZdArLIknYDTtL6ztiGJHm7VPPoMC8feTYTNZFJYFsoAwjzuzryWUIrFfI5O5B5cTWs4AMvNFUuUYhP/WhjVWPaysgMjJfs1U8CcXAPAZw6A86Iktak5brpDugbP8xIRRcFVfMtQA44IO0HScH5WBgXmz+2DmNgSB7eGgecxm6dt2/4V/OxNW0cnJ1ddUAhwzu649t+o0NENwYVuYMvKYwCud+GRM0hcqlOA1Bm7WSiy+BUIGv5RKm0Uy9k0w9kn/z0jj/43dp94Ow69Sv/dy3xE5qtS/gnGq6CTXDDZ6K5HMBlrngQpr1plF/l1QSdZ5WZ2ak7v13FlcMDX76mdj7vdbX9f76rVs8/n1sguKOG+6j8CU3Wq2rHtx6g3KLl41mlqMQ+os5mNqUoIbommKQjEYAAFZ3K9awT5DYIyynzcSI5lF2noUxAjYDuc7TRNVIr00LdOJf7KTK6qzuV70gXOPHSPhcqqE7HF6u4qfOnGFu7r6glgvYk/yw9++wXc68Zy+pEVlgAW9+ECX4Jkm9zhsHMSvLnnED6bjlbH/71/Bo/vp6dm6/Z1/983f6ffrcO8fOn7ee8HIPCIyjUB0wFswjUTXwluHQbddAwI5TggqWcVC8JuzYzLpJxTNsBmE1QUbRygj5LcBCJJ0EMZKadZYUdcDRGZdIK8hJgvpSv61NDxryfHIPd1FPkGdqaDo7H4bZklEP4fg/Y5AWEfqddiqXdbQxm3uOlf8ij3V1f0E7a+X9pm1Zy1zLLizrKgI4PCCy8vNhS3Nngxvd1t9ge3F3esNET0PqZ/iSX1gd3yk0PigWmQ27Xi7ODnvthui2tG2FmU3KqL1kkx4ruIb649CCzFQmoImRpqB4M4j6dNYyIF6YitUhAKKetxaBsfmMcdQgQb1cK+RUN8OHLtrTL/hhO656YJHknQIV1SZI3xHl25WH59K5XvLnWLruiHjl2rPivBjoX6nRTnR4QxgAW1RRE/W2PRlkkcK3cc29NXv+p2vvlz9bMxc+q7V/+v2r96c/Mj5anuHF0knupwkA0BYaByaBzGEotDGHpNgppEgqZWr40mDwEBXlnPf410iwK9JNRnjatMrqXEZxGPUUeKFiPPBvcbuCPmlXYAuu+PFXUta1vjMIpPLqcdPbl0tCb/YzwBrfQEAi9mM8Bf7kEK6ORB96X7q7pV/x6PXT8kTrw0fex3/Sztcaz5jWIgvgsePnLhyJRWRUKZJTVPQuDZO8ducelQeGZulUGgAO7Fmr2rf+k7r3hc3XWzGdq5cqfyC/xHcFhGRyNUU0mWDf2kcXR907LpAZlpGdIJEkrbxyHtqjAXM8oAe0O3A5knXA524rMBHp1qT12PG3s4clZpTBSaIeWkvjDRfiIISwUjrPJoDARSFv3YdG4dOrgP1QAYJvTj52hWB+0u9nWdNAlr34JWNDzn3qYLKcz6SubdNz2wwEvJ9tpJ/XlYVtxJqhS6+DZ+hh1OGgHIH3WoKK0lsZ1xEFedD2koBuQOgimhArzA7kQG7SFipq4PHioR33FbNuTDi+v4oJYltnS4uWhLweOc+7Ap9x1gUvEcc9MEgZvWxhAMisAhy/x6nMqtPVNqQ0AlodRzg50ygA8Hy9Uec4VVXHbxlka5+ibrDeT2r/GZeYWsWl65YrnRKBdRFmfh5MeCiKJ+ZW/2raYGdNxfoZzlH2uc777jTpw/Sdq9opXVf3623nEL3+qRUfaSRM3iHOfEB0/IsG4gspPvMRchGnDuXfl0kEuM2OC1qg4VdQdWwwajY8K8kz0d9YXO1Cb5+oIBlwUSCr7NeD10SvTBLr8Gln3VkFo1+UhC8UEAptGkZTx0z0e+wINdxjhG3IoT9TAw188lJNy5D8Rmf6gfkD5h5xTd9YuHiR44Hkvqpt/+1/VFZPvr4M/9QvMtLjLngd3d4xsd5GmhyiDPhlv3SDRpGP8XPlJgQYHluX13sMHa+v1b6n7/vQ/1zlzO2r58hfw+Bs6VzxXzMjByaxtLPErlDmnA1g2HgAJE14C3G1M9gxKG+pM4OU87gUZvGyjeR+P39mVGBtVnw2446hrG/UtgGNoiyxuNSG2rhsxxNBdCowQ2J78AEZOHLRJkcGgBdcXUhpaNiQnb5IAJjMV893UQluenqmM5aMsI1gPCvA7wOcMHnkTRl+Nz6RgbOUgK+fdyFRq+IostiPRAcQOHUjqRDq0Q4mZ/Q9txZdq/Nnu6wKm5yQEBfC67SJHwQ9ys+Hd4tO8JYMO3E7pJaCrlPx6A4RyETLoTpisNihImrowIBuUCSvbpvHGrrV8rJMU/DR5YBJE2x5pA5z7egYqA5f146TAWDA9wd3bk9zG4KMb3K/QDbaYQblB7si1SaBaZcP30TturgXuuj7rAx+s/Ve9qSb/2f9bK9yaMMH/AG4ff5gH8DGrorX/ZCNDMi67Gf3grnWPS0VzVAAQB7MDhP02hLNPL4nqKKNyTUd02rbCPPcnRiftSCGt/F7JBTcHRcBBRStiTX/p3XsuPVtI57BeZjniyzSSH3STw5HAB+rll+wSJT8/m+eC1lFuIPJ58D6x8p5jy8x8+grhxuKJ2r9jvi5+26/Uw9d9seY/++Ha95LX1VHuBZsjcC6wS6lxJKhz6YC9fHJJ2vrQTTSQl8pdmsdJFAOupqC5yf1x+55wsI6/6Zfrvg/8lzqXe+aWn/Kj3NfKTpaCqGBlIR2LkB51GnnJWx5ZrSMtPZeBMZGOQjqORrnqkCfx8ZW8bcMXiDsw6Igilm/xAydu6kcerLBOuzSWgTY5S+SxS2zYKb/lY6zLsmmAsm7oUqRCXSxpKM3uvOLkQCbQoGuJtH4FlDt5Eb8yO0vXCs0z9fJL3sNvWwOSMts4a8msybRAHLHvkGvYrrReWiMedeMxznTEmn1S9QRUlpIyffrotmYNRv4/pMhyq4W2diAGZ/ZggwE4YLyH0SGVItJ8gXMMbEEQekOQI/3Y0l8uolHwDEExtHuGJD7lG4xKwCQjP3yydSzvDkLQpHl0Kh/i19/Gw3T7GjZgv9Z9Y2tBnzb2fy3FfVicQGbU9eMfvs9697Z/ucVe1tIPb6+JL326zmX5MXHk0jr5b99ei899SU0dOszv3taYUXEbBMEtwQ48GltKzmBkQEI9YnQZ2XDxeCdup1fpVGWENciARoEGQUVqAHOp4UzMwKQCenmiDFzho9esQdffQ3m48diC64beLwZPBi8Ol3zxWyKkjunHUcWris6CjHnO9Hz1FF6aLhtWavFRnwBfddU5c3XWjon6wl0P1/fu2qqffRZPQd2er0mePuofVOxZmK99b3hz/eDaL9TKR/+i5l7AfhOzvRhVYTjc4PSSt4HJy/n5eyTKZpHbK7jOmDJ7FJiy0w/qg8F1n/Bw8Iw6/tq31gMffnedNTtfJy98Okyy/8DAoX5AHV02tXYkSUMRXq3XGUkjZ65WUZY0ZT0b6Hqq0zFt4pjk4GBa5Np3DDYZEMhT3RCkx86uzaP9oY5T8v3cLxEHYeyiU9syswn8wCrzXClII2WTvrzqJtpJfDlMUKYX6IFxdoEt46NObT8GC/mLDzYF6uSzO8zpAD0gF40H2k1/Md3ByfPAY6h2gxE+/IWvLlGWuMCAVx1O45sGkRQBZiA0kHFK6TjYW6/G7a/KIEY8PbL5oMD48oAk6UCDF3hnxiNP475v+4CSREWxu8K03iRui5ZX7nzJew+obTb70qhD76uLJCBoLYpCgWwz0hipeaaMGVXuuuesP8j+44NY7AwCf2uaCq8I5n/luEdqeXW9Vu6+raa+9Jk64zMfqvnnvbamfuPf1wPc4rD28EO1m0ca+9iTXGXy0cBqVBbDTCtEGRVM0hJrMeWMT3+lvB3R1sJTMxggToAWXDYY/PpmOQ2ESWmUH9ZyboMZpAgyxCSeHpMyqaiAVTqvS1SRe0f/5vYqsxDKjEqs76xyVBrpuE8nbPDbBuV7m4MBgMVufen66+uaf/c7rBmfVM99wnTtnK/67sMned77rjp4cKEWNw/Wo0v8wQZK99+kFzif9bJX1YOf/VTt/OAf18JLrsqNuT6qWSNPEqX7D1e916WD4hbz8gUesTjL47C8rUI5fK6Rtzr4iI7MuMDrY2o3eObYGefyhIfX/P168EPvrMOvnq1TFzyV32MStAiwmoZ3WyCO12WaQPo6ZjpxJ+NYFGXpqyXtmEFA28yW1Zel5G2u7btTmQu6ptfZWNpgHHriA7l0cwUOePnT5gmipG3WgdRKZRSpcJ2QJ4cfD4r/F9+yk4gQc6ZuXC4JO84mgAgPHSzaL60fO35a0l655VN6ks6+kGdhkUGZxWm9b3mFsqg4t+dbnDqKux35EB7yFApjUd/3p2bVuWUU8lHP7mU6UEuxEVEOD5aIoHE09ehVHVseFMCR6CGcAutsxyHKJtP8ii9BPoIDZT1AdKumGx6QWdywIh4/8utqpQcI+4sAXZHH+5B24jA28J5G5WttDXxAbPxjC21ksOqtCP3T2CLfrmjYD3HTeZXpySmWglvf/25Nfv6jtff6z9XCc19a9VvvrM3zn1ibPANq/tFjzDKmuGQPc/T0TBuVUmJ8Ojx5/v+5es9g3a7zvu85/dxecRvqBXAvQRIsAAkSBEAABHsBZdOUVSzJcZSZ5EPyIc2fMklm8sXjKJM4kmesiWMrkiyZkSmaDQABggWkWESKYi9gQy8XwAVuO73k9/s/e58LZZ/zvu/aaz19PetZZa+9NwdKawyV8zxmUomkCWIqJcBwpAicBhkaR2AHA4eWI6ZGy6IuBszIkF8r0BGJb8OZY2Tj4Q22GvvRcxt1/sJ6HdmJ3MvyZOqVbwxBwAjPwLpxjnI/2MTny8+4+shhoDiN/l/+zL3cjoR8lxtNeOMJi/lzwLsJ1s1xUzuuqLlv3VMTr7uV4dNsHqvslo5Db+OFE8i59uDH65IP/5Na3LGfuwXc6tEBSffLI3YJmEPfRoDCxhqQHBtUB2l0go5TVEdnbKTLLTxHjl9Rpz/4u/X8ff+uLvnAdC3xktZJ6HdDV2cO9eLoqtcp+mPO1mHjoh50ppghZdh3tLU1HRN1Pdt5JDWSoF7VRb42Pp0vPkC5+SKrk0HKU8mLqnMavE3bXvQngxvChJYFI63gA2eevAcywCEMeaFFsTQyaiez3S0IQRRHWS7iR+qUSTD58G/7BVTS+Yin7VpT6djoBtk5FWirQcoo5fkJDqaURA7lQlBB+qMOHAbErUV36nlcz9I2OUhIwyvTyqquLZEyIxnG0l5tE+pBmwsX+h0UJdAdj/lN1tF/82iKyuCVQgmmY5FPhJY4toZu1qH4lV+ehCEv9EpAl546KiF46tVlZmJHRlQtmQVkBa9lF0uZlbPbgYGdEdICuyoXnnqstj3E86h+8O2aedPba+Kf/q+1cvwEr7uiYbKgPsV+LOWc2r6tF6ObDsSYmqCQb9aIgRXWMpl7OGKRKR+zPEvCX8+EN4VBYnZA+7yxMuIiw/1LErVyHG15gYDmnorSnj73ahsvmXjmyefqR7/8Wb2m5usN+3w6xEb9yY/O139+4+HawfPdFy+8UNuQ1Tf4+OzoGdaDPKZYW9IBlGlzbbFWl84kuPlgvadPPV2P/PRH9fijj9TPmd4dZGr84+d4kcYakzmCvBWxRnBYxUbrLK7PPPv9mjwL/q796MJjkBn+eX/moVturyeZTk5/4s9r792/zlNYDzJ942qq7yNEx3EdwspxHxa12Z1CtFZ99EdPg7WbPv2NWSznSa+Hrr22Tr3zV+vZj/6b2v/+X6vNa5geMjVtvXTaoQ4gzT9H2zNJdIiLAjzCa2vTmsUGmOWDRtT/EmBCEdw4FnCBH+gLGpPyZYPouldmTmxRoRUI0i2b7WnIsSas8sDJQZN4RGe+0jA573ylbZKmQg2mGdENFC1Xji7nRJ340fjRj2S2JsDH+rBQ/vJrS7WW4xWzkZYkOkAHpUcY5IVmCEhDYviY9ChTH+3dSzLNJNIIJgSGyDnBquW0E2/cfKtbYIEa9QDDwCS6/KRjhx6mg7kjRpRrGGnYsXiYLa0sl1AgqjqkrjFC2xnJ5Rs+DWNSaVNf0InrSk//BXigLgsQm6Y+bpsXZ0wHUGIk2leCkWzQ8jv9LG+ymf/qF+qSz/xBzd31X9bGf/vPs5ie+QhPX5jkBtyoznxLQTZdEHOOqkL8Gfk7+lsBlCvQoGyzJiPGk6F/iki6C8czQBjRJE8F+YOuIcyI38NhC0MKXJ/Z0wPQ2BNiwjjC+WsWuX/wmfvrv3jta2lQi/W5p1fqO89t1ENPncsLJ5bO/bTOcQFhx8FddZb3EYJYFy4s8DlXF86dqed40unq88/WEkHtJZ6i+uRTT9Y3Hngw7Uv+1++/sjZ3M4JbgCej0ikCX9+NzrCdIGKPMzG9Pfq4YKoeGaQh/hRPizh66x117jHezPOxP6n9v/KbtcATGDZ8AkR6sa4o17HczqNT6EzqeFHPnjZqY9fxcs+WtoKXDxo8+qpX1fdOfaDO/sE/q1f9T79X5/ZdxsIeD0CEPv4DHWRClqaJfUNbOZunGQYCK9I//7NWovJKQ5k15L/B5e8e1JvElTneAPIof3J04GSlIYSOIJ3VvIBvJ9cW8NMG4MSBlU2+UeAinDIqj6QxSyeE9Y/fNGKIeN4iN5DwygBIeEdWHdiDn8bwe+CfAupRhPxbP9qu0U2Lhesgo2lPuyFLIXID03DiNEzLwTnKKb8fZwepB4zc63nmtz5Ov2xF6hZawEujv/wZMzpTc9l21bX/GsaxhPWZ6SJythzsMg9dZRlsJxzYXq2zAq0LaXoAYiF5SNTFyRdImICRiG6jXOJwdHtv2Uw7Mo6PUhY5AxcKgZfv9IF//t/X3O0frIX/5v+p5WtfwWL6sdyGU4wWevLaVRwjDRIMoQKqLZUOYU/Wa0HS7mlODKohKNMwjsasJOXIjm8Nw0nytB7nVq85ETMCdxBQEYeeBirvgmEZCvbD1gTw0uAIpss82cDjUYB+/+HF+urptbqKPRv/89fP1OzXF+sEj5fZ9ezv1d4TJ+olAtb5lYX6xdO/rIXHXgyeX2/g8zQfbrKp/ZP76tWHr6m5ndvhyRRryUcsI536EsQnJvi40ImZvOWo/1ZzZdFA5WViK9UKy1MgGLEdeeOb61kWqJ77f/8vnhP/D2rlyuvYZOskVWBtRTJW4Rw+2jFZ5lGuzZyiOkWMUwNt75sRGsHp+OtfW4+e/a164b6P1u73fLiW9vBARKeHIGpZAw3/HNIjnbohndmvlh8DkxANZyohRFlE4kgdCWH9ci4Z68Ezv/23YclLDGEEcoScwwJ9KDjSGWC6FB/RFzgitwn1bT591nqEbivUeoW8umoT+AuA0pEpVKBDnuVK6n98FMO3Dk1X2VNMfpYegB+xgowwwneuWiufFOFk3QxlES1sCD6WD+lcvW5C2N7g03XrtC1rtcC5pmp9N6luHcrgIruH63kUJ6ipvGmqIx+RMgeBpzKof8q1N+hda0ygnDdzhgiidKebKJawGNzGFp+8gb5n8R2wMnoXeTjS3pNWp+ar3oLIzSO3QUnMjMGW2bNnA9CnaGcjL7X1gt701D/9F7V09claZHQxjxaTNKhc7lf6gXQazHAqw3ysDailgrCG6yrua9IoEu9Gxjlwqt0jARV0VGaDA4jDysjgAqR2LGkMI5VAyE1J/OtUX/0Le4KXNN3xQTkVvS4xjido/987tVHXswPBReUT+x0hcs/k5O566fGz9dhPPl07eaL8xNzuOr5nT01fcUmu7ukIl0BiDnnOg+g+NB8dc/4lRmPk+ajldbtQTvrFqeEcwyYQELzcoOroZztPoHBBfbA/v05jqQRGQodff2P9+MXTde5f/l6d+O/+h1o4fJyFcraGxD7iYVto5G/I0xLq6JUgREqvGcbQFM6e2FYyzcbda956ay08whNSP/Xv2Qf229y8fgmeiVHA7/oZnFhHUR0bq3Xquc5C2pFObJ7yi04HdPJ1XkeRoimbdIkQficNhdBszP4W0XzPxEtoCH7neW5jtRZRM4SVJetZglOSEY64IQDByCcodRH2eGGCXU6S16kQaNrgtkQth+URncQY2mTvx3wtoa9GoOSbKUcDClAyhqdwOQUmWWlxIpLPjzTG9pSNwZR46LZw4NOWjGnI16a5eECJ9asvKZOwMQFEG4dMUhlNmgJOWNlL1SvrWbIRngJvP/JBALkyN9CNfBodpPjpULem5THy62EHZ8CpS/ID0zwBDg8xMkoj0NgGrS5lmmCjVWYEigyN1qfbqfk69ugfPcXlPLjosXziuhDKu/0YMdioIkgYgEwUkaBCaux+s8YofEshMXhkp3Cu1okW6YAfjEc756oVu9RtxCwbzSZNIdOfqCygmoLhX+KOBjEbATSm5Z2jm0RMRHXk0nxyV0RaDRfxgD3OfieDpUPNFYB2EiXZNVZTu+Zr5uA1qbTRQOtc9VzzvkkUWeW99j4Zcomg4FO+UpHwWCNh5fGIMbkz0sJp4KdUjvzc3qGLWec+lGweXecVivQGd3lukF5H92yQ5RHSV7zhDfXk5mo9f/8n6uDbeCDiFddx9XWZdTVtpA2sKPhwrvoGEK9q2gupppXJf1c4AMJrNx9Fy4JaHXzzmxhpLtdLn/jTOvThf1xL83sZaSGLQylArFP/40SxP3w4MUCos1WYDmmAgSW8zJQ/jICliLTf4xFC3TDJ0qE9ooEEhyNBUV6c5xuw+FeooQfnfFPaOPqlcO0tyjfkWx5YxepESkh6YLqUm06WXyNfUaMkdkROzBcewnq0dINc0o5E6j4QF4dkjzL45cQGqs656gztyBJcLKbJYrfBvqETiPCzVJ5jTmsPA+XiR+9SRtECxa+HKuTKKb6rv6ejESb20EHxW+znlgDt7kzFYLVC2sCVBwdSnrsCwJOv8rvsk/omYvsUBX1OWeRhmFBf8/ztwbkBM1CBU6Zc1BKH7PiyNlFu4JTP9ufcQj/uLU2tvzppDfn3qF2ZnPQtsejLVgYV4o16yhMDSMEG5sK0mS5N20H7XCkf6SrZGJTnmOZ5RmyinCBcpxFJg0IZesjIinSfk/QtMS/TJRI+FMyK0CRxBxWButjSaSo4gsh8pKuCHjqcJopBqIgx38pdxChcMmh84OxN0iCZT66x2O0Nw8ol524I0OVUvTy3SDZKZT1M8eWKwiTTQF1kk7uqCS0ChP86hoEygYybvcmcg2f3bMpIj+Y0DpoGb806zw3Sx2+8oVaue1WduvcjdfjO1dq49nqeOz/KHEGik5V70RHVo2VLpashGUnjXOk1DbhseTh88y31BCO3Fz7xkdr/wd+opTkfAEhhdFNHrKmSHtZPDKj2HMjo7/jRNjFIEgJwSp615XfodKtHzzgA4HHvAMomTktuAll428iDDj7QprFyi0S9QEdpUk1JdUloATXahdQWnLAdeKUFDW3XBDgXbtApgEA0ydiiSxom2MCMQS+6AquKHdRbdus0ePwmzW+PmJqaPHVkW1dbCnBl2kILwYG1+WqsLS6G7HHvmMKHHbgGg5GedpVeaPoNfe05Qns1zjYivP5hO3bUk5uk+RXWJyR4iOXU1XrxyrsvhUgwFnk41LMDdeuhxOo8baSAVqZ7GDYBEliDn3bOVchBd8vkZdtKMOYsPky58wB903zz5CLctE4ZA5lpcHB6FUPpNDZQpaSMiosPZrguI4mLy18qvs0YQ6sU9LRsU2njQJpIjWH4dcTj4nKiPnA2Yp01wjFyUVDJyt387glbCQ2pwRJIlC0pJGVoI1sP5VLm/JqJtuxMIoDoCOiF7PJWd7WUpvp4wIV8Dy0ADPhNR2cVw1K+8QCnwu7/mpqaYRcD809rxWL4ucbkK8zUbQ2ea4wql4THARzkbFKwtnC+Dl11ZZ26+zfq2c98tI4wbZ3ZewjnwkkkFfMPHDlR1paz+ViinkMtUSpvcmGgY7rgfvntd9TjX+CaKvQPfuDXeSP3DvahGXDRQhh+/TEjeiLruHcqgYUi+XR9e4LNB5vIL9PUwe7hL1GAO0hoWIFaQilZr/y0rNIyJU/yMEsO6yOwAvovPXi6TtdXlMOCIvWXRdONPMoaQSAR3pynJkN6aGjQRM4uDoGkw5PTUKQwZBSP0viBafIFyYg2Kc7J8MKPcpsOPgn9VB6xnWUmoBp/DhRfkT2FsZn1Lj9nBimVHrpHBszoWmhKoKVV5RDbRFo7STZRI4hork+N00SnlsI7otJjlDOyku8yg75m4BMm7Q+6Xq1ehVYe2kcdaQ/DqHv8vFLvc+vFaLdHKv0CApnG+qsM0NafbVe2USk4stKO8vLXvFXyPAyk1qeTk64hLJbgAF+1MvJr6DRONDByBhfiiuPjS8c8RySOLyI5vJuX33EZyI1WkKGcB5Y6ZKAVmEPlUVp6W9GcbB9l4SuBfLuIO9cdoTgNynBafTRoDPwyI5GtnHFAo6pgfsav9oDopN46vY3JG5E1qFp6jE4Um2AD9XakpNOl4YKjDnkXoDQ4Mz/P38K6eTQxWxSk43A4FRX6PPaGILUdRbazIXTPzEbtYpro9Fi91nixh5s/93zwN+tJNqZufu8bNcsr1LoRq5cyjvJ1XSmTmaqbhkPCOrRH1H4+bE2Hcm+XQ+PL73xHLXCF88w9H6m51XMxrG/qHlTvhoQ9YjntFnv2uc5l6uIBADoqV2TjKzYCAOmw++DEYMVG5Ct/5APW37HO+1f/Mq/zu77VYfBFcJs/1GgNsYX0KBcmFzcGX9GeGQ1EJvDJ8GKDUxzp+pGAdrM2c6oudCbSsZPJJmV5I1BkAde//pemnY40DTzSopRz610dzEuwxkzjHiXlNhg0v25PoA2HbcQRUAcXuyX9MtWwBcE5GdrBjsiA4FTKujE/vCl1NaDX+GzDyqpOyGpNKBs48pVO1w4JjpFXe3WfC+MSzwodM/uQ489qkNlSKAGAzpmuQ9wyg43TTAMdc43IKA0/zEL5Jc+08g95y6SdteW+YsrVLYETWtrEoOtbhbw5HV/X0CqiIwzOMJxTf6kMfV7H09imGBjxgxFg4rnGHhloPf7J9ku6IsMIpqqUQGWwioIX4eShIf04CvIeKddyHI7uRJDtBLBtRC8jfQcxF1+Fbz4jPjfFhK9fiqfc9lTyhlQa8Mygp4FKnfpqjcCp1sgrldU0PCEGA/LbuptldVsiPg3UaRZ0HaG6jdS36Lj4vkoZL7dPZVNAPnqB5WL8THpCZEK/zeXzte+Svaw1/aN6/peP1ua3v1y7iVnM1gOXBoLC3YCgA7ekMVg6EWxm4zeApoGSr33ywln4TbNWduU7310vbjtcT/7R/1Gzi1xE8BYi5wnAScMjONJE7dCSBrQtb3s3v8BRJtqGQ2eOdBrwMk+bdJDQycBNMAAmcgrbdAAbOq6RX/uj/qQLXRxltF4JIjB3C4kdRa7M8jsGL+VOncRCCIUsyi4fnwdu4/WCiME8NlU2PnkWFr/SESe6NzJ5ythBys4gPqgM1I1vdcrV2rDS1/hgUkcZtgz/4ocKQJndto06W17UEV7dlQ98gcpoifbSjVU/bJriOQaww5amwcqAofzqqOypD3jkfY0gjMFNW6apgCJHQKJXCwAuABFRW0JE38qdF+i7g7WbPfNTtYt7YbezjSdvbaYRyq/l6GDk03FXiELL8EpwMsgBYB1ql9gk8tupme8B7/xqqaZHEUYg7SdmSQ6g1IGCe3ilI05E2mKFbg2Fa0MIZ1k+oYEzch5QvtKvhl47rRVhmRgxLgFAIa1Qr+KvoOAmJ0tY1WG+PZa7tweCEc2w0H8oDK12LgIao5OuaHHl0XIpq4d+1w0IHBATsKgxabguZ5lo5if0uKiUc4O2EUQ4errQw1DgeS2yey9hOwxKMC/DJJJ5NdHptPMR7wjwiiLXIWkYBK/QsgfyFhscArrSdPi+iw97ULk3c6Hm9+2sxffdXc9+4YG6jCAzf+NtrH3xBDKmiurmhYtpRmmLiKBD6dwe6mvSqWbSyeRcjwJP2bTv0bveWd/4gx/U7s9/svaxuXSRqWzu3RJP0dsoIkkhVmqH8kwnyo8nAdZn9ALtyVfgY7It/IFSZw7+oKD+g8vvSFI+OqiHZZoy9h5gu267vgJGedeiogz1OGCPvktc6Rz4+2f+kMq0sae2gMDYdSlBlGf8FlYMAPg0vkIra/NuetGfXKGHKgle44sdYZMHaihqsATmAVK+choPbW1ernhCtDmZwzHoI7xtqmXkO/5nRueQChHfSCQxg4YCKntkkwDKpL2Qlqfebft3KcOXEntfa8cAsCgPCRKOeLRfJIvtKNQHsGW3SblQLyCQ0/YVgDz/lbXrzfJAdJlY8BR3S9bA2l5kJA08O8+FQnLN7j8lEdRfKzoVmjxyQgDYLcOBr/J6HP/2Bl2JIst3qPAoY8RFAbTqXoQ0yosqnpy9Eqaz8a/MEcZeo9+Iq0FQCBnS8DUaMBv2eEYBj8ilJgmbfPM0UM4cZUVnwFxPmGAK5+0tPpQv60qEmHlewLaDhfXs+wAuxjPgyJNtHz3QbWPbK7knSv7e25fFWOR3tNMjACsdPNblNuiSZ+E1y/DRkc8qt/WsMAozCCtLNoKuL9W+nfN15Fd/rb7/kX9X+x97vI7/w9/m8TRc0yPoOMUxtq7ycaQZxxxktNK1mwueWyMTZNG24rnwuo1LtK/+zd+sF7751zX54Cdq79t5U7fTWOFQBlCJYq/+1SHjoLFXMrsk+sqx6wjlYwNYAy/PVIESNU3xG5PSLkvrwXDjKF/bxZ9G3AHHGvRIQCWZsACMeiqdVzszzUfWOIqyBGMMpV0fEVDs4CkjgVaHUF7r0BR58UWyO2fUUU7ANYfUs2ltYzXEyyI/JxzBCg2hKEc220NeOR85W9ZBYkpc4hCr7RVO0AtD8yQSpQZ7dk5GMEOv1MWAoT4ffQAUSQxkRG85KMHug8adBlC7zOBnLtXMA5xgbztCQfm/nE78HY7q74btXHmErKMsL5b7METL5NdXDqFjGkrSsUzZPIafITHIJZBlAUKY2Mw2tWWMdhbaPAvECI/WdOSixBmMsDZCjePjVvLGFzyojdNlKmylaDlRdTAPrw72rTWcaDU+iqUMBqgEAqKVD+tXoSZgxXQlm0N7b6OgiBtH5zGIi/ZO0eSZ0Qdw6uOBzWsHfNXbMuOYlbHD4IGcTtUm5nmwHnR9A9D6yoVaO32+VhbP1QK4T/F5mM///7hu+kDtuYpbarjpR/liF5w9ckPLSt7k6h9DR8p0HAOWQuDS/C5jcd46RmBFfoy9hmDTDLltJIACh1wby7V7+9468aF/WA//xUfqwEP31Z7b31lrbDZ16O5eMxf7fXqEdsx3+LbTWYYh2FJh8KJYO/Jrna5z98LebXN1yd1/rx6791M18cVP1t633U0wJ2gR0LKtBRTQ41T8RC7JjAnLrLvurMxXBnEQCJ6BBaCbd4q2vgz+Trytl6yxxIatA9ZsUsDY4EInmE2pZTDdvqocHnnaAzj26uqpbB42EAl6qidRYiIfg9wog9y1v8U2rmBYecBI0wJlC6JwpO0Q1CObPMkawCO/7SBUyFRWv3szKDSCLi0O0jZcDwNlFzYvweSjfzWOZ1DjVLubkEuPDxpGHP1f3gaKUEIWKbf8yGz9iO/HXPSJSqbxvbQTqtFH1PinfFlAD7UwCD2Hpyt0oIs0RmdIbpHYGr2ZBtdvaSuBsoUXvx6jfsnnXGjrLkE2aW2vH9COINJTaNqKFo4zR9VgmpWPyC7eTiKcAcDNjAaORF5+20Ho4YBxlOHTQIeJUht2oGlPqAPSzjIqEF+ja9xxtEMSHpqH3BhLlVsBfnKofKvavccYueVpQ55kr1PDAEXiFMY8ZrDgsAK89/DbbMM4QK0cYT6+/ujDdTrVe1kduPZY7bv2IKOr6bqMdyxee+zyev8lBKfde2rn7l21l4fyPf/Cc/WxP/6jWnmccLZjG/rHNaCOpINs6RE4TQXEOejF4c1XPo7a3B5iFbpvi2t5TIPdHtEjBR1pjrneDNPBo7tma+dv/Hqd/uEP6/nPfKwuf8+vcBP6HvaLLYLDvZPWgbThZl3ovNk7g4EdaTqkb/VH1yNo0n36BNY5ZLvqA3fXLz/5lzXxpXtr7x3vY+2B3lWdoC3VoRJJG2Q81QXhpipCYOMeuudMiC5PSqmkIkyaDmkP85AP2YWWXmpaGBxUxxRCfYKl3wy6BXrM71JgqddmE7kuciVTmuKHh/T60EcylaYs602OqlLU4cO6y8HPGJTzwgZkS8OgMCxje06UWZr8yc+TtBGTQgJno9Nb1MnDFMU5QouU5MxzLbnzRtjOF1gbCdMf7U5Knh6U6QMpJM92JD+1MjVAUZdO4dXNzjQSYm/bIpnCkXYdapRZP89IKXTIB04YZ0hLtDEHENFRbqMspFtfYalP6aYi5Nd1SoIjY1MFTL4DptQNSBZ3XfHLn9+sO5LUoJbqGVG0fyXRWxyQiBGCjcMnCBjIzHd0pIAKoMzKs+UgwG4SHe2xvTFZs/VCrHAO7byi0XxsPBkJANVVADRFbSSUQzZ70TiPdKHX+73aGWEbvJS31esgLeIVeyfqu2cJkkoHvd0I+FsEqp3ri7X98cdr3+3v4skGd9e+G25g/XmmtvNEimUevudtSZccP17beJyO07Upp4yZfxEEuI/wf/vd/7TqyKsZlVi56A/tsYdW09z/iMzTjl9RTD2M9NHHGuBUMbW5tjBQi58eG1vMI+c8wX+V1rSbK4qH77q9Hkrig24AAEAASURBVP6rr9aT9/xlXf2Bv1cTO7bXBV4e4iNo4tqM5vyNLBA2UC3jiI7AbJBj/chaQzg9XOMiwdTstrryfR+qRz/10Zp46N7ac8f7s8CrG3i0KfWNrl3rz3rUedSzXSrqNMKQY5n/HpLSLzzMFyt4giCQpmngpiz12DOQ0Q67XYRBydhNHANhOjzDqX6BbIb+XBn1rCsGP1WCge9ASt5hDn9vf5HFKKt6m44epEb9pWCu9tEi3bHK11yPaBafj39Kp40+WE0K6kdBENJtNVZsbHaXpTi4BpLmHNzwGdDRWRVzxMhADMKMltYuoQXQFizS6Beuz+rfroW6KJAtDEQ8ZZecI6s8Nppf9ZV0FvzDk7pBj37gJAWUGktiaWiqN5MI6qDptE85MrVOW6auMb8BhFaCoGeeJq95St3M0IyeFqoNmaKHHGmv6CRNmX8pM3CBb0+oJ40LbD73xvUlnSu9i0y2DDo4BDTF3Tqg372JK0wKBM2h4lyo81C+/rRiPpxvlaHojHNlYLJ+FAWBc0xK2uMybjn/J6+Zq//w2HJ95cmJ+vHCRv2PV07Xh1+5q5afe6LO8Wjn7e95f23fS1AiAKSxw/7cc6dq8cxLNbt9jpubCc407A34LTPs3UFAO37y2uKenqoXF7HBHHgEXirIgJspjuFxg02p3H6w6iUadJ7lo16AEKQNXH7oSwwABA83sFqVbZ1hAZtg75WaDd7xOL1+rq6/7ab6xfxc/fLT/7GuuONOHqOzjWa6kpGWSsdVZIMsG16Q4NfhvfXadRx2kdFpqFd71l3UZ0R58u9/qH7x8Y/y/LP7a+8tdzFd5j2QSkv9STuSS5u0eXIzP4fnOe3cTDco0G8ac/Ch5InVztrVS63HNsBDIxTCs7HlHq6DDlEHvcI7cC2FvpNwR1E6LZ2fP3FbEn1WmgOuuSRz5hdHdv1LB5+0juyf7EDk0B0nNAfYNC6wo7cQL8uXlvnJE93zsZxOq3W0wFqxbsih3K7aMkFjQzITKM0gbZlw8dNgt41iOM4NDMGVN+eeCaudY6rBzv6k7ZLfOuMn6OzsybeuTxPJeJJ3Rk29vcA1Kukha2zjOhX8gMlUEaYGO/lo4/CUSQ5+x6Tn5Kt1JI8u3SaEMW4kHxj/2iikxFdxStuX0SbTNc8F9BfhbSxWvo5rj+WUQLSOgvzmXMKNY44jL6N29l+A49UwlVLhMRLLw2f4xMmC3kLFcSlzypS9K+EALEzHS82QHxxP+Tqix9GlE3grWSnZ5U6QObhjql5zaKaeJ1jdvmuirj+4vXbx3sC9B07UwTvuqKlLjzISmazzjKjOseN/gRubF1d4YQVPT1hjd6sbXDsIawWv7jlX537CvUcYwiAbkdkRpJdyUTqBzcdLrzPlWl4myEFghYDng/wEaRkRThG1rfMiP7EG9Kn6VTY98IyMNBJtBfmU8rD4OvHG62sfN07/5JOfqKnTz/DwQF8wy4MXoedoVVIGLGnrQLKRut2F5+bYmcyzB2zH1Frt5jaAObjtZdT52g99uJ5/6lQ986k/q32M6rZxYWB2ko6Bik/jZW7Z6x84urJDJxc8oKqvZE2NTO9eyFNUrWNFiRT9i+liA/0knRNlyUv9kfky2Pge+PpmHvkL3XSg1LtKUcSPcsgE/cJLwqO+zTl+FlxhOyBlFjAsY6jTaDe3XsyqA7r69M80UMq30QFsZ8S7nXQu9fOrTawb5XfUET8nPe4XskG//ObdSKyMzSw6ZLkFWo5M8omcysOHPJVU1rG9UgycHzXXf6gjKmiOzlm5tbcPm+ywpx0k0DJmTRreswjuS1j2cPvZQR46spfb18RbRN4FnNTb0ZziZWc8lMYRlc3cC2TjoARRwIMnDBzJKqNVMbDkZzwhZZlM+Peng6w4lvkhdKqcOo/2yG8v5SQWaRuA6OY1DEI3rybOuUDjoYPJNHspYg5NIsMW1DPPNXIqSWAVBG8sowQ2fEdxyvyV9cBZwW1YOrKsmz8AQEhl3GEuj3ak3pxmpXWvw8gExBgGDIey0t/OAvfPWQP/NQLXm0/syv6upY3DvM+P/VG82cdAk5dmwMPFbEcmuWcQ47QJ1Az9IJYrlMjnBlANywu86vTCen3rsdX6wMkDcSa3a8zMzMMf0hhA6X0eloqvE7lNeyuTzw/T6lgaO1rtMUbS5ru6JbY8YxtIrLPB9MqT1xAdZurhT3+srieg7Dz56gTYUIKZ05v1Ka6HTq/XriluZAfGDmSdF2Vom1z5RPw5ApZXg7ggSo+5WDt56OGJu3+lHvo/f78OHPtC7bnlHTRCbIBYUbergTzglRd9tI91rP9Y3J9OxxkpTAdEmSPxPrp+9QcRMhonqX2cuQml9uqcRkCZxX0EK1aTfnOiBEDTvX4KBYMNOcHTJ2NLINJRSl+Ytqs66E+Ophxx5PHg8UVsBQHlmHLhF5hl1kjV3/zuVJUtNTeK12dhbJkeHW6Uy1N6PduwxUC0z4Xng6iBacWF7fwEL5LyNdN87W/ws6PI0y+0HeVZb5IYh+1V/bRxOhFtIU0OpVIS75k9v8qaFcQNTkNxeIUfpMZ6MDOjqCbBd4+QghXZ+JJHKnIoG+omloJ4z6LaatrcFK0OGeVPWp/Th0emyiRZoag/ApZrU1YVWRggAQHC5hiodMiQBTGxW40goCEA6SABRVA5lXhXUypDQHOBk6m/Ds41KnbKuT2cf/ZQ2D78HS3keUDC8MkD9ClcnWLUA/wOFql34URr9voolwpUUrSZJ0B5ZJMgv3mMMzJscwrpdl2ewT5VPDoH42dNJl7R8rUTUdEyRZ78jHpJlCMNifUu16Sc/z+9uFKPvbhc1xzakYXuSfJn5rn1BXl8tKvioFbbFVreX+j2hRnkX1ZmumIrTEfunt8gYj1oK+qA3xUNF4tjN56pdeSqo/Xcm95aD/7hn9XbfvfXa/+rXlMr3LydpgNoHMARBMFKW3u11wsicQrpYrc5+Ftn6unDANc3z9cle6bqlv/sP6lnvva1Wv/6F+rQW+4kwGob6z5K5LfvAOi6WUa2rNGN9hrsqRSjPqhGZ6A1PRBAWOCyBmU28sS3okG0sHrCt0uA8VwzhEw3Nx+1a5QzX3uHNt8e7VUmOnQpSx/tjxklgi/JXMGOfIyEySGUKyLupLfa+REUSDlTcASlbPyHRwA9kdD4g7HGp0VYj9ZkLAictlDehC3rVVyQ29tMiTCcyTw5ImImiBmcxJfunHWMXuo2O/iP5AwY1ok6eC68jS3bXaCpHo4Al3EuR/8OMpQgslpGesv+4qZ2KCCtGUcZx4xUQ+xLIXxsr9LI7V3mI4g445ojORzDtwYxyUe8iJo0cpkfntojFqQe0EZnTINpskGOLWEmUpw12MEPrLm6gsAyybCY9FZHqpAIECiVEA5wMTxyRRCYfkSqNdPlVoC8jbD2DC0XWMrpOaaYphFaQb7UVUNYIc6jvQI2PwwNycq2By+5voWo8bpjPAkUgksX5LnOznnoM8JIQ4JwKIHUGqm3lUY+oiUYU5BRG3TZahl5NY69xCxTKIfR6pqGgXwGinE+bzCO3qGpsxBsMZQjMEdbzB7B7M2sU8gVh9GQ2oKSdda7pKEr2aMuXFisI1dcXnO/89v18Df/pk6wVeHAa1+XV47ltWzgScXApWUTZPmNoZArAdLzHOoAXTotInod46msl37wffXtT36ypr/xxTr05ju5P7550zzakQc7SdvpqPJaZyppnm6XEUDyqbcEBmuq6RisuubQTsSBXnx3JCRu5Bu+tAVl1nWj2PGgp8HBP+wT+sG3cWBTdI1QYdH40jTc2WESw2NjZdVxHTkaaKTnod3sYPRd68vAFZJDeWD4CrwoCmdZZOjTzhm+/Qluy95gZPY/vBFDPXLemfF5MuiL04nbmc860uDjnRLiuNxie1mLn3QdmD9eUcyUjdGhPuptNpGXiBT1lSi2bX8PQSDkq3z8Y0cwBhjlN99yj4yKLCNtoBw7hjE6hE5Kgxl6WtTILVZkBF9Oyhw+QlkPGsJMI2KCKjbIHD7gQWnSESDYisGHY8B1f5EVaM+f7QRDuXS1gLS3GkjEa7omFd55r3+mDU6iJ2CCriNpDF0vwYJU1ij4ncEY7uz0dWRO3ZbSizASEw9llGXKUZRdB4cBbQPYZxcm6vhOXhaxfbJ27bbhz9dZLgRmS4GjDFxXKvJWozQChZCeVDUc504BUnHAzXi3M+OjVDnyO7e34Tjl0AZpDhhEeztSVQfx+cdp2KVOgDLwOHpZAv7CqhYYYNHrPM+dn2DnniPAFa7Zz7EjVg3dMapdfOzzOfaL7Tt6tC658sP18P0P1BXnztbRt9yaEcIm+7iUX2HSUSCDGvntuSfKrmzp08zCXk4R19mTtnf3zrrh7g/Utz7xaeC+UMfefAfrcSL1JCOOBT3XIrndO3XmyKTrUfvrfNallmi9laavjnVAttOxnltKU6QloN3yUSZ4JoopLxAxk24u1kAPDTzSufErVQgAzSG+GlqfSXMa1KahNgzuchgo5G0dKaFwXmlN16TNObfTiJycjw1TRuYNIoUWoJ3n2ShL6KYgoOqmdN0EoDuQyFoTaTtJebvnMUstjUqni8/q28iwjF+0Tw234uCHntvoE4RT285eyKNdWOYhX0C3+JtqzdDbQr/Q1byYHHr+2Wb5oYgvQfgKpqfB6w4yHYuA6ajESWHagdke6dQ46dqjvEFCP4MWMlKn6gS8W2143LEPGlBIjdCUUkEC8NdbCQxOCAuCTxlQJGnbhMKMkyiCZvakqXTKBeog0Gnzzetqame1QXqFrCm2EeGE8kDJMx/OQXURVJ5Gbofz3mzKhfluoOZD37f2mjce3sairXbT+FcZxpxbWEIH7uzbZMMoj4BxS64VOTnBM+utwUhMYECiWRqnQY9omMpgpperfQ7JN3i5hAEr0w1oOApzrWmN0Zwh0H+iGA6CjbomW+boFTPEdm1x7DoM4bxB1hGLkuTqK/COwhzC28NrQu/JXJIXep5bXKuDe7ax1eHu+sWDD9TCA5+tK+56B++RnGV/zFLtcN0KSIOUdSTdbiFaXHfTnqlFChSaPHiury+zzWymXn/3e+vbn76Hhdov1uGbbs1FBO3sRNcGo4/01gE2w6L5LOtisT6MvPF7lQYVU4ST9Qs8eOENzKi/Ad1G0OcxK3RangQ+5R7KlTY+BDBoUUp6VnT+8EHrXFdMYbiZ183LXP3K6VXzs5FTzkloiwtOFtVJuxbZnWPLK88Rk0TM6a88/bIjj1yB0r4NHbzoEOmbtzgc5iiTAdmLFo7qTNthet8rxQOcP/gY9b9K56WN7QgzwgIu/gawfXbeVkNeBy/x4AJd8bVEd75tAUsjvzAaQhh4WpeyNks9zPfHMNZUPBc+mQNdoKw6zyAS7TmXhpCBjx2aZjpQ8ZE1OpPMqk6TTDvwRmmnrerF9Q+oCRkkvhO9u1Jl3MoNAcohKI2rGzJ9JxL4qBZ3vWsYKzlTKLGoIcVQyCg7CKDA0owj4jRdUZ4riXgtifQ80cgGqm4IllOJ5LlYrBIGiPQcwG46x3OYwNFjCxbW6V5eeXi6ju+dqgUWyF3XmeDKncPqbIkQXFr2BuTpLEsJUhjQAKKSyoBceQkqFjNYeuicRoKetmJNglwWmTGCFeUoSuOrlyM3R4FOFXWy7M4e8l2L6CunhAKu4K3PrteOWZ6NBf4FxvHTrkVJXlrIqiyKMGeCwDQ3N18n3/3u+sUXv1Drn/lMHbiZ4DI5kwXVSX7jDAOOlZYLAuqVA334SwOHR0Ya+MMq2yl2cMXihve/r757z721unBfXcrbrB21upMfLwCLRkL9S6G7HW0FUSuRsv6ouUfXu6kOUNpF0KGUX1PqbGvRfo5oDPjCSVMIp5DBkIWJ8FKS4TSydHZTNi1NYTs9opKT+rC25JEenXRIGvjAcaolqnVoV7ZlNtIejiLHRhe68jA/zFuPZh5tKZGbEI2XaY9p9HeK55Qvmqo7UN6RoQCS8+NoyVe+aZvYh+Dl71g+CqgOUZsy9e+pbtPQ5IO1oQh9YK1/JTTtl/Qaqmu3cSyiRNrS4LengaNOaEdBSFhoOV+hZuePrOYplzEhwTHnzU1PMYbIHLFj70xnyWgIp8YgpImnwSoQhGggBjF5RomwdDrSVaMTpZJpfGEcIAMLuQM9A469qRKOC4PS1Cl8UsE8vXHuBWMUtAN+qQCVCL5V5cGJlvGAh47uqQ3eYDVDgJBWj2IoQ8XcPA141pC8qgMpnWAf08J17pnTAZd4uorKRXb4u/bl4TYFg4AbLnN53mwtB181d5TnE0RdC4tsymCKc+/cnwHJ/VWbjMAiJ6hOAe3N7CVchF/lo3bqIpD5Tg17GM34EbnOMv1aX2N0BH/XHbaD4WVrre69b44clwhsTuflucloUXrXvv0d9chff7N+9vG/rP233lErBy7hliNGWBNK2XroPGdXuX9ybRYdHYEZ8gmg4NtTy8+gpZOvsja2k/1o17/nnXXfv/iDbAS86s5314U1psMTPkobu9B41GcFL1rycaoeqAY3vtrxTQ9ujCwGOKtzaBSaMjldH55Jr10UnfVL5OkVPpxAfAhAOr9ZC1MObNkUL9KVtLz81dweQ2nytb9y+LHFWmfhC7B+04f8OiBu0QCw60vqLW8gJOMnVMxpmbJOI8dBBnOF8SNTs4cifMSGipQ0bvVMpygTTmKX2BSf9ZxyYTJtliYCemrD96/LzemPXD3sYJU6bXiQV0zbkZAS1duCR17A1dmyHKaE7Rzp9ACDXAUyu1nFpqJkWo7vWiT3zN6ACV4rIRQ+SDnnIYMCrXOTFDceZs8fSgOgtWuhjcce3cKscdhoaESWOZ2zd3j5SErB41D8arT0nsJIC629wdjR2Sy484yU1h05ADfHlMwlkuFpgglwg2kjsHS83KkSVqgjBD9pMP5CExA+xN8WuMtwQgchcUtkz3p88Ngch2XYLlVTrBGNjUIe7r1ylNTPXXJ0A7Y0CI4O0Q2+UwlwmBKncoqaoTi8NY5XRlIZWgk8cdPDY4PcYI091Fk9vBfShfwlPQty6qPAi95rsqKtob3OhQTXsICTlwFiFVlW+F1j7WuK4ONtOGvMHSd5iurRN91cP0a37/3bf1M3/1f/ddXhy2pjeSV26YazwRraFC98nWWTIC/BZV2ge3dkQobl0JeT9cdaISOtnQT7N//Ob9UTX/6r2vm3X6rDN9wEnJ0MciK4GydW1Z9pCppgD8MgPsQv6mITbQE9yvpIphUTePOsP3H9Vh6h7Wh0WO1nWJSufiHbbiT6KLAyCXV0ADOcZBlczqQtjHnS0l8oc92t0QbOZgpLp9ItoH1X/2sZpNOw5vknglBZd+miIc/AwSFf/jVBBAkP61I7IX9AlNtA1eLoVwlInDeeziFivC10EqjVBVlDV9hBlkimrZQVBllzIhmZUxfaTbSWrT2SsB3ZIITAPRiSHxZNAxjYAANqDsFt76EFjrUVGiOMvOTfYMHRFgmoZKpvV7AcwSZPWRU7NWQi/8oGNOe4umj2tF1FgXD+QV6GYyY50htAbHyuFXSCoSM54FBQI3yYUpa9OjBoulYI1Wc5cDZWe+RlGrdOuOSoZFB27CVss6ZHYyRyEowcMsrPxu9d4sohl1QK+SRzZPoVqTtQeZvMmk9mQIfpycU8hljYdjvdBt1CD1Mh0yh364ctCK5emZky6nnvC/LKWxr9dlvO1Bf6mwQMn+m+lzdZzGGQGfYV5C52gN0saBANBRTxnsDhwmb36ujsaMcGQOQLlwQA6YZFj8i8JK0tHMFNeA+l9YX8Bq0rX3d9nT91Vz35+Qfr6C231fSV17KHizU7jKluqUtl5aMcHSDIha86JdiEosEDl2Vr8x7Wyvbe/b56+HMP1drK1+rSN9+aR1BPuA5IoNYJde4EMXBsYNZBjqFOlD+Okkz5y8/CKJZf6zt6qj8HM/DYWDeEJDqKZ5aAbcfu+Mjk3JpMHfDr0bQaPvjk6aNy9dAGW4fJrYIO2rHswC/ySwRGHbga2G8/43RIONu4ma1hEmQ0TASlZIgDyEh9Rx/qW+VQov1+8BPtiZz6p21Hf4gNolxTG7/tfFOn8hKW3w7WerpyDZ7Nrx1rypFFeuOhbpHbPHhJJ7Ju2YpSYchvSMQb8WUCdgwPkq3EIuXyTxwl6G0unngmHY8hyCJXyPGrHTICRg5hsufMxpGphnZxOoiELqBbWTQBwPpcblERQv6Fe0qbYa/lyJZSaZIKGw3OoYPm8rnrIFrAyKNS5Dc0dICVtrBWTPPhl/yGgybBKj0eZGNIoiADg+TZ2D3yYDryHXD5rHWQW17zUJHJYYyptDGJtAD245QTxgQEwxXNl14ku4s59ypOr2HZPKGrTbQkox5x/EJs1rvYvDlDkONO5/nplYwg3Ue2wPrUToLZJFshJvC+VfCVwG5DWnYdWsCGpDO57WGVDiQTSQgjJiwaximhwQ6xyIN5dKdz4KWql13/qtq+bVc9+vl769IL52v7K1/HFC+73yKm4DqTOa4L9OukHEEqjR9JIonyofM6L9Pdzdb417zn7fX9ez9b61/7ch27+bZatG4hJj6XLuhEDJzWmjqEjKmmN3wnoJgF3MjOvBwjUlOILQGMbo6mtJGoociXjdG0XZ656UaASfAd6Sff0lGSEb9xu/sRXfpy03O1PuWcS99csbVH6im+mQJzw1fYNLDQaJwggxI84KIzmS1L05ReqhCUjD44jxngIVxXr7iwDm3qX91kxr/+q96OSA1I5unC3SEJoD3yE3CTrd1Fvp1DAfiWC6h0MMG/gPZcUhTGyoNsNiuzI4owCOvsJIEXSINiILRbANuyud9TWpQ3hLZGJ06kGf3Az7KRNIQj33XhNHr1FNmqcmHdIEaWZwAyKqCEjpxNhsCDJJ5EEtjIV9CMiMjeOoDRMN0A+1eiqSwYSkO+3v7RUx5O4Od3DmhKweFhAgbA0rNB2Ht7lSRViqzm5/YEF94DAxf0lLf4KhsdsawjEQdJXExrvkYwjjxVkuHPPLcu5K01jHASGKEfWo6IEHbSBSvGiI5WpkMYRhL3kA9Nl3X93nRplyi/SMiVNCp/u8HM6d40t+1gW/OUAEjWwhiRIYMjL3tsA7Hrck7XLDc+pGI5k6N5qWWdBFnMU9/lCxfq6DXHa/Luv19PfuaeOsSLYnffeHOmkk55xLRnd0SUHe3y2phhuoj+5E0hsXL7ZiBVc0S8wDb+Xdtm6/r3vrO+/8Dnqr7yEAvxtzFaBcAXb0BjEltm/QXL63jK5Nqnt2zFRAqcOtBOSitMd4ueKZk294jv8avtkTb4mCu/kpGtJbCFG4dfpKUrLl/9IdmwnJI2MxagPHjk6CfC6FEhAlMtLHgH2Ja/c5psIENQSP5kSab5yfYLogn65kMzHUJnBycMgBdJvExx+VUWPXeQLCIJ4SjLJ9ZqW3lqS8OVuPJ2nVRrto80jDr48VAW07h2Dv0u09mcSb/ze7TtScOHEvSHYvLVa8AlcwyUYgvjqD02IN0BCPgYGxuAqHwZfSl4jrY24kdr5eoYA54OwCFE2ptmCReR+QCS846SXRmBSXEHs4xogJSoAyXxMrVp70KZzozgFCurjc3LyS4Be6Uvl5b59XHIQ6ikx7fXtyqsXHI1hrimrRzodsWLQ0VBtF2rFYzhgE+ccEEdZhu+hga5DHJSpjkDIT1wDEoyoXyCCwGuWXkF0p3h9izSlmZmyY6iSEhB/GXuV3RT5yZrTGvOYenW1Nuxl5xWDKhUDi+0z7kN19cruUY2i+zuNt8+vcojoH1dPYFDI8N3hUC2nTwiFfKt1zbksi6k4mOXVwhqy8it/F50sIG7OKslrI9MOamUNR42uJM9Vce55ebJzz1QG1/+XB1561trhRvi3BAyzRR5UAzaIEoLGv6Hn1mknSKuUuFr3BS9yBRwErle8c531Q/u+2yd+/Qn6vi738ddCHOsCYKPTGlsIQMBiGWECo32IfO6ToXr8qEG0wpFFCfagtXWHoMGpzlgo5icts3NFsZf6TaWEHw4z3qOpAe6rs9GV6Qyr4Mk9lNe8vriTaiB1J1mh1VICmNRuCi7f2CS1xKkiHT/toeabln0CS2d/JFFMDkZYEYerp22bA2Yb77slg1U1pmwRgNHxNLMM6SAUSZBtnSWNv/WZ/iIOST1mw6QJDj8drQP+CCruZ7191bACYGhRCTqQORczYWfD0Z0lBWq2t5yDm0Q2mOdcZYrmTiQZdZXArE0GiPtZlrn1snGwGKZwntVxh7emrEHlKGo3lTTBMiIFP4iEJmZYweOL6CkmdUxfjWk606ObLjfkkV3t0NAG2Y+XsarZRs0ChdE+8GBEB8YyTeKooiG0kbm6TSpNLiJ4+6oOd9eweG0LvN5Tg1eHilBBrXIDnsixOTYyMjTFpsEIT++hy0v0TBGIZM814F9/Imn6qd/85WqPdfUs+cW6pkXCVgExLOLi3V+gYBEw13zRuqXnof28cE20FI/ONsDpseVH2kD5OyENrUCtdM62ypWeH8ikZa1oXXK5icIXsAhAkFcHkxGmW5ucrFijtuU0s4ptDw3QxNo1cXXp2362GVubn7Fe99dj37pr+qRj/5Z7bnpLbXjwJXAL2AjGw52xQfWocXuW0Z8rHeZoTNBx4CdW6AiO3u8mFrOcSn1xLvurM/+4R9z7yIbV9/1QW54ou/3Vn6vzPydA72oA20YN7U+oKnPWJPmesirG2c3ws7dKga+5QmwMg80x0V04aUWPpYJo78kV9r6sX8cQdYXZCo/fvLdMPEZ8rGCiMCZFjoYA2wjdV6W8Gkr+DTwuaKOvO35IQyOf+J3EDLleX6RN7KCrw4NB3Zkc4QKd9OUK4d1ltHSoGfCCnzb8lKArjqaEZrmqecwe/LUtHkq/jI7WRLrgdcpaKUCGzSo6BZegLQeskkJCXP09tZFGk0Jvw28cEkEosuUzRRlg92bnOf8D4OHbHuQrEHKytHRPTRe36cX81pnWzDOsyWQV7YDJ65m7z8qgXMNMRpVuqZDH8Vzaw1I7jvJGg40ZJsAZ4JDB5GOH05IMKoAt2n5a6Yydp6ztE02PF7g0TAebh84t8ji/xKcgVliZLC0yKiDYDTFfXdEJEgqcY94wpG2lpdJ8ObkvBQVGmQAowPCj+mmI7qnoVu7fRrDbJ1ib5cL8s+9xNU0txgQOVdOP1FTz5yqvaz7TGW+CxkrgSDqTv1MaSHnI5u9Kunbq1UsqpMvK7KjY7/UQh11AG3khlZGXdhinV/X4twaGgfHWFMEsTXkMX+akaTrbessxM/waORr77y5vvrR07w559468ju/VtN79+fFrXYi2p4wTX2sZxPo2HOru9O5dAw4sM9DIxzypEnswj2Vr/nVD9Vz3B40+fn76/Bb7+L+Th65g211CmXqmkWnMQWtyBpduvdWr1QzX9aVDUyMPmyoqQFy2kji56AubBj9AUOe4HYjhKO8JBfqYFAHlo9H071YLqy6avk0bs49M0upR5lal5YibkFZMCCgHZ22WDcdgLpjtsOSSn5I6b/mDK2EovZ38ZUjTAcc+ToiNludRjlG2ciIdBPUvVKpr9N9PUYcCUpT1Ttoc0La0dtYYJlbhUIoX1IRQQp+Om2qj9QGubYgSikWXSYNk5MB1nyBpMkPgNZa4kYEoxBdx1FuQEUgT7kc4crf+nI+Q1H/KaCGtInKQdZG0TCBhTebOiKiXSYzQY2008MlGyQEhZeGwqiElDxspFmMkx8Ls8I6pbHK3C4gb0a0/ZvKluvYEMGFsGs9s8jgcN20BpaPNNw7tcI+hRd4npUH25jqiedX6sWzTH24jP/UC2v13OICV7a21dEXXqj5Zx6vva8+QRAyGMFb54CWi+4azlMrPfLz63SNJZ46cuxI3Xrn7fVXD/6o9u/cW9ceBGn6TO3n6aCX7J2vhc3Z4n00Nb9/X/ZIqbOBP85Avo6b7RHIjBp81F1mytH2yrYNpp7TGCR7zsi3xxZOuZTXgYzD7YQP7HWxB+wdS3YqfrRNdGRRTb6vvuvWevy7e+vnD36+rn7rW2r20FECGgHcKSR62yz0iJhVubs2CaqYB76un7hXhrlqpoAOaF/BQvwjjN6efPDeuuId72YEiKEI+nm6KaB6l77SGpABcUlY547AI2Pg+OLQbxpCT9JZlQftCcR2Ml3mtw7EOQiQBwJ5wR3XgWJXiYkyHgAKG5yBdtLDdDTg+p88yVNueeuvLctIT7niwMCMdsJPwstzDuos9YMPSFea2fWmAAgaulicBCWtTcvsOamBVSCjt0Tka45NPqhyyhG1wGw/0tpSM5cPApjS1pY0x9TMQJOsLVtZ2fzTxpIQnU98zBzToS6Zlls4reHkOeSBUGThlFldhi8rKL5vqR9HpFHP5YYhrQWdIUUX8pTeGVw2jkor0c1gIiAMzNPg5vgR0NsEVjB5hKJBOTfNaCuSkZY/2ii48AYT/cDG3o2Hc9Lr7P1ZJ5EghhPKRYbOwVVA/j2ktgfQvFR8awQ9JEQL37Zj9XsfnzL72JZJpj5HecaVh3x28+jOHbMbtbDINIpef4lWTuyq516ouhK6bgR1ujdFNDRsZgRFwzWZNMHLEYVGl4cBbIJR1jyjFXfx+Er43TtonCi+b+dMHdw3T53M1dG1V9T5vbvrJQLzBA3Xh6KN72j0uemqa4CEumpzov5DpZDbvNA9VhM4Fo+dtIuL5MIk4EHMRuxU08P1MiaJoaJWVomHTsFED+Mv15HrrmZkdbx+9tDX6vIbrqv5a67DNlwo0EYshi0it7cqZXqDDJEs8molgqN1ACmryyeX+sDCa95+R/3881+uR+69hzWt9/A2cda0eON0X1GNY0TODqzak1qF5tgoocY5+RoE+vyT03r0SMkMfUNcywRrnbUl2W0f6I4jK0BEiT9psZzLN0YnKPGbpAWhiw9HNzU2byz3TImHduFpsjxXnv6ThbWaqdvL8nta1zQMfHEAvvVtdWylzZAsOYA6CmlY88joptFAzYXvxpBr7Da2n5RQKh2BbEPYyuDroZ1xhOAob8sj50aw/YUr4OrSWJRpTEvM57dHe8lKmflSGUrxD3HkhU7gjvDaMTUXUL8GGwa0bdkyovnAM3YCi9sDFQj0QYoOUW0Ay+TfbdjL1gYfMpxO0XBdJPOBda0SOKEFEIfKe8+TgomiSAk6CJBd32RKa42uu18moRQ6KEIOeHEo4KOs9GjD7mdys2VuRqVx6WBWqH3iNgLPHh5rnIOO68iuqdrL+7Dm2IF9/MB0bSO4LLJDdcfls3Xw0sOMmBiNMCrTkNpFB3HK5/2Nud0hciN7nBnJ+E2FaCsO9XIfFKx4ogHTSPY6rWCX1TVeaMEVNR/doeONj2hRVi2RwzS+YvU47TQodzouHyj7ZysuDo+Aymhv1Q7WcDNyh2TXgdtGkCdBWGDrFbokLZfHOjZaWrhQh6+8vGbf/s765Rc/X0fOXai9r78BubtOHCUoUQK0LNG763F0NHg7qgMmzwSnZ5wgEF7ztrfUI1/+Rv3ynk/V5XfdUdO7mHKy3uVV5dYUDPXg1E26kIW4eVGhG2hs3fmdKyafMR988UQNrr9bhx1oiDZt8wMoA6XlCH7Xo3QboAVIeUAGGoNVJWa9Rw5SYyMSu+0u+dbL3+Yz1BMn4sVv8tsdjLl6vHWSekqZetrZ0w7MTrm/tkrqQEMlAFzkK20Pixpe/kqAZORZd6nNUX/5akvLlJU10pbONJnSjw4S1EGlBi3JRBMRrT/P2iqtg+BKaYHCqx/pjJIGiWRqLj+xF2eZ3ZAXOxo/KDOv7Wluy5Mr25TjSt1r2lyiNBgJPPzqnv65p6nv9o4I5CiWxAk2NMgOVFaQbg4GuCs0wlUcOU9PSCATvhtZC923qSyzkL3kZwhGeRkj/NzNbTBwD1LScIyBoOVFAM/8k6v3MnpFzl3ay3ZPHFbKGo3TX+XwbbRemdQRJljUjgsA6hMkfSvzDq687WD9yRe3JrAYGIC3vr06mTU7ficJSL6W3sORY9vNCtmsM9xc/fxLPDqZp4Na+dknhYTiq7NBECNktOfz2p3WGRzUwW8ryRGMAcwd6NOZGsdVybeeDOjKR5oyooTVGRkHraVCUJKu/EjHAcKAr7aZUq/wIotd+7azWP6Oev7UmXrigc+w63+p19wcEcpL3eFlcJKfaXvf3PfIr8HSUaJB0g2ktbpYJ297U52b31/f/eM/qSleDusVRW8d0jfkr51y1Si03E7ct1eNurY12k5x0gHH6YAdXo/+SccWbZvIBFxsQ740Cc2RWblH2+mbsRe/o721uXJZL6hB+UCTXxtpGqD+vwXWjQvXjD8HV3xtAKWWj3rRTtBQjvxap0k7qm5Ze53ROw20a+Oa17MRGQrJR+b5RBryLIMGP+qcOgpe4zrQUI90wNHHoCRWDy66vZqjxB7YQ/2T096YPGzX9aEkgz7RC8bRt/PaZl2/iukmnbRQ0ojCB5vlQ9vFlkkLl3YMnnULxqBt6m2s065LZ3htDV5cawNgpBIlNaqy6FThlLTKxEjmqVTKEILfFka9gIgQpGFu0EqlKjpKtnDgayPKHGXlBIYjbRUxCKi63tL3F+osbdo2REpDpg3VZVZc6OQygiMfRjxp+I7K4E/LPcvVvFVueQGQW3NcNCcYwtOGYIMIf4pj7FSRVWyAgUb0QwIa5irbBbwmuY1K88rnXl5N/SRrZf/xuy/W6ReRYmU7gQ2b0uIzFId2Klw9NCv8sz5GYgy+mqUDkcNeRh9dEZhBGMIC0zTvHlilrpZxaQOzT21YoMa8U2CRzxIwPlnAcOwotMMEbmCDQA8//iMUzkxAR49tTJuvYjr3+AtL9RjPwJpbPscDCL1JikCCJfJ2ahyXrWk4jdsxdB4cDJ1sEDYuG2LuAmC0OrlB0HrrG2vuxI31S27ErvOnedkFWDhqGmYEUI7RELrO4CsRD/txrpj5JG2NdK3EeNYFHxBzSpEGDV5DDWnyHMUnbyBISXAoytTL0jDKV6fbVthMnBzijJTDjNwBbzgVNjbBFgbIaTocF8o7WBrY22bi5eUsgxw9upYWngYPp/YZ4cb/bQN6jlKLbwfVH/09jRp4R/GtJT5M+bpORo72iW09k37sJTV1M4j5Me3aEHJLK/TBj6O2Do7CWgpwMZzUIZVP5DNPucnsj+lu87bnDFo4B5kPesiTT9od0ugXdmLqpI/lY17gzBe+ZaBzJENBEcqp3wxXGsapEVAhoope/naXqT1BCEDQh9ZbqxlKmgTOBqZgTmeSJp/sfFS1g5EK6gQNq7ltwLbRnv+T4FCOi4eYnkMw8iqzpnMS6YEBeDLBOE/PnhRo+nRPg8p3TzOK4+2jl/H+d5egnPZdoIEvs39qwRGF8gB7gfmba13zTOmm+LUi5DDJg3geeerpuu/jn6xT3/pFveeK/XXTpTwkmTU4b5j+0anF+ulTZ+u9r7uidm4cqjNPPV6b115HFIKZ0UflOLIPjVHcHCM69V8h7QjFnfwGpVzbI+isk17NPX+8eJVgpH7CT7Bzd42guUiwkuQMv3k0jrbkyA9JHaJ7p+SKTYIJEzazvgVUllVujnaz6ivedUed/ukj9TiL5yfffntNHTrGchfbRUFzLaJRdELqAcdUJa1vQa9pmYfDUj7J/Ycnb72hXnr8mfrZPZ+ta955R03t50Zs72kkGKsH0JFfJ9WHlNvpuI1G98zYUd6kG7rrndOcU7WiNR5ibEGpWjtE8iKicCP8QM18fZ8iaICU+vGs5QptvZWEbg5U5NIewvQHPOzpxYgtnvKS6phB2rpov7QDE7f5NCTljqZDs0taqtZIbA8xmq4pDy3XkMnha7RBQzd8YyvjiNWSdzslT3lo1HbElti+GfsbP9NxGpgMPrbopgsMEB7WmV/+yMe4EHm7gBzyIoA87Nw4Aq/OjWeWdIeIkTMHDikNHUqtU9KO4rm1ziKib0salnFFFGlHhCkwrg0YTNw35CNavDzPT9KrbHZ0GjWZSCwkymU4yW8MRfhSYCuXj/SngHWqoaYdAEnQUDW65ZpFXYOeNPThnekVePbqzumlZ+/tQ/XOXzhT3/7G16P0e47N1r5ty1nreoyLYH/zwwv1j1+zp/Yd4hVZvCl14sknauKaa2tpeanmt89nTW6a4OIudh8ZjGJ5wP8aQWuVxxIvLq3Vd77zvfr0//7HdZagdvjQZu3hxYDuSdog4NnEts3idgT86b2X1OS3P1ebV7+Sz7W2bz5tTy8821d032ZgclIVizNqQt8EUKapZLoT34sFTotzxQY6cQq8yYDvEEHdHZOm0VmH5lNuvWY6aOWbpUpJEBB0QNLei4koGYG6Nf+y111XT/KM6Z+xeH7Fm26s2SuvJqA7anLKrcNYIUgAXj9viVGcttfXianucHe9yquc60sX6tirTtKpTdZP7/9cHb/r9pr2iqRBC578U7cEAdPQlbQ5BqqMPslX3PgDwtsURIoMgRy/BkyJCpOPWK23uTkoQoMhzQm+pFHEyCEZ/Ykca9OyUAFAmYazljcQYgLPT3tqTjuPb4/wo1zIrUAlgufBhQ//1ql2tb11C2g5hDMlivokiHcmZ7GIZ2lboyaRU/ioqnyNH7+xrcihRYA3Xot/L/HSFd8I1dwaZwZfPvPS2VzImmf7igFNExsLxkOZzFNGj8gUPUhr26GyulyfGepX7fWhgZSyGjtsJ8KmTadM2fHlkSEp7mqzejSTB60EQgaCNKMQIAApBOnAGmM84aMbuXhqr9PDu6ZmYMrVPPMj1eg8BDzKNJ4f0xkK8guZ8I4cfPk7VmAqF8v0FTZxe1QCRJQRzrcnP/f0c/Uf/vQjVduO1fHZtXr8/Fp9/um1eomtWS8C+affuVBvOc2TIlaP1eT//Ue1/+yFmj58uPZdsp+rWlQKlXfmzJk68/RT9RQbRKd37KgXXzpdP/vJT+vF0y/WNx58iLeN8FYbYBeXfFs0+6xQPn+MyJxeLvL44iWCJ15QE2wm1dw+EhlTKG6ChFfiNghMGyxyL3qjNPc82RM5NM8+K2zjSMOp14x5UrFBYXPtZLCKA6X7ssCIIR9s5ChnyElQg4bIlIAOzPARylr2PDc4E3gWuZ1nt1dZjx6pR7761brk9Au167WvJwAhAVc71zd9cB91JQ146AeZciVA6iOUGYEoFWaZt2kfve7Kmmbvw8/YFX/ZLTfVzqtPMmV2ywMwyOSUQrt4xI42MPxhbOAWpf757mjRwDq/jSUG0X/E45NGIs3hkKYUkmMHGZiW3XyLQ4avbtzCR5JQcGSknOZmFD6Wol8T1RuB8Lwz+Gm65ncACodB3oaSohiRJ3jWU3fwHZ4HiMgl6dEmrYs1ELmQzyYWKUxoB8Bt/Dkl7ZpmZKRurBcBrKtpgtK5587UV7/5nXrTLa+v3bPz9dNfPFaHLjtUM3TKD97/5XrdnW+sk1deWit0NM6aPMaZD5Q4mqZ+ZDu07vW2eBw8ulx++qcwgyxDHYWiaOAKExQ1ozxXqVWEc/tly5nlOVrJ+CnMbCSUxwB9dYhziGmGRFd7Jo0nnGIhQJtWOsIqkQ2OqiJq4pkNx3fe9xZaNpIGFUf8VKyygB9uKq+sHIBCi1x4O7+NQ4tjnuxQxEbt6O/AvoN1+NTTdf+p1Xry5yt1/4sb9QFe8XUW0e57ab0++tTzdQXvN9rxN9+t7Z/9au245Y0MPaa5ordeZxfO1ktnz9e1p07V+XOr9a1w7y/eiFXX7D1cmzu38cw8Gu+06zJk0vDUBY1pfDwmZ2Ehr5/nWmRs5BQqFRFlrFyQksfAm/Qaaad4U+63oGhcIJ7GdgnoDGNdkO4SebX9XR9xpakXlR1s6yjYg+njuAjr1I+ccB6dZVxbcE1uRmfg0y9zsB6givz7jhysbe+6qx5jpPXCJz5VV/E8rAmuqG54g6SjMz4uEXhkqoP9paOeMQp8B661snC+jhw/Vqurt9ff/sVf1I0ffn/tvOYEIy2DlhTAyceK1MvANStHJ9Sh6clTHkNpfq0Ebeq/9h18JRjmN46NKaYb8JEWvNZBKzVv6VriXzd8EqHkef8LS7XDKPwSSBqvrd0yDKVKxtHyxw8gYxPin2ygQqfTCp9Gz6/65htbas1cLU6eiJaQa1tJB0EdQjCaIk+MIBgGhlSfq/wQJJTJjsdHMJ5//sX61//LH9bH33BVXcbbzR/+wWO1/4oDdebxZ+ss7+987a3/kk7JkT48h31ZjrjDS3mg6ZkdF1LINXw8k7WaKyvs/G4hzVcc/vrikGVQhIZ6iKe/eii/n/gvbYUlantyAgWZsnaex7CLExoBVG0YCuctIb5mx9GTC68u1rsiZYCxEfmyUeEMKHEO4DoeQwwYyzzvlHRtfBpddfkA0OWDMTSE5fz1+A94pmre/pY1N2WNmlJuXgl2yOU9jfec36xnCVYnnVahsetUR7m4N3/A56SzHH3kQJ2bPlhnvv4z6IGAur48dS+jo217jtXcgal6PTL4HrdIhhorjqqYIi1DLzvhvS0GGxhPJjGae4xyqwu243oldH30sjZzCqfyrUmvIUEQ+qk4YDaYOmWYTDanmWYayDK9gn6eB6TOlDn9TMDX1gAbhFKrFLqw6m1F1of4PqOqmWsmbAWJbIjUg/yQof0z4gLWILLCyHAbL5c99tZb6of3PljzX/hibTt5oqaPHgvOVlBJnSELfK0FPyO9LLSGmXZbqAOXXVJL73t/PfW3368jPDd+98nruJqqYiK2HRpXmXrUknMdQ9u14kO6OZmbQ5TwUhcUCLx+KPnkbDUENR2PMRW/Jx9pOMyVTk/dTTuDMNdH7yuZR75jQ8+UR5zO16dtTwEi0+UW/4KDrGm4nuXffEpJmzKQdIEYHsFS+yHd2BZmHQhfjC/wK77QLaM0XTRvKmMACBn8QFjtv8gsY4oXC/zpv/rzet1119eBg3vq2adPVz27WMcuZdbBZmuXRbxwpd90BBk5NT+DlocRIf4cKTxvePMGqSONuiSq4Kv+WZY/6PdezKG9DDQpxJ7aJiOsDhx5dDAACTgvtzZ5SmFTiyGIchkhxISIxLkByxc69uJxM7eZ56BM9TRjqiBBqJ28YRhdZASho6EKlZvhvdCBBS+/BjkdQXqqbJBq2t0HdcB08ZpVkjoCnV08woX3ncY4cdtEgin2DjEyYd4+T9nEkT3QbwnV0z1Tjlc2XZsiWrh242jEzsXF5zUWqK2eTH8o01RjT5cS1/aImBtcgezHOVs1bufUjF1VjrqmtCNNJJchyG96nEEvlUjl2fvoaI7CEA0YZNNMwDs6U2qnRk4fbW6Ry7VBzqRiYPPOeO3jWexPagNHDj/S46hIOsojrXn0nOCpoj5Y8bq73lxLz71UT3/lK3UVo9Gpq69hTa8dM5ICrz9kVU6dGOHZkHJFi3NHvrwkkSuSS3Xo8oM1ecU76tEHHuSG9KXa95rX5Aqsi6mRDSX9i178+t9Tw3BKuqcdfU4pfx7CkgpKj+pDg3OPqGbQQK4RP7Qp81ywkU/TE6uRLbXWQp6EV2wtMw8kv1sGki2NPMjMl6UUaKNBUnNSkcA0+qgDtJXFOndIY6eHzOILYQ1a440rX+m237a9ktPw0FEfZe8RMGnlEwWIlp21RoKRV9MvfeXh+tg/+7f1ipMns39wlk2/zzz8SP357//rOv386brqWh7XnQFJy+NUzUMO0pJm69JeaDxovyKftPZPrZIIBUwYGuSn8xvw9VNnb+Kmawe4p9rQczBAm8gIS7ZWnD1luA/a2chdf+ZnINwNtBfUe6ojgnhekepLpT6IhjzojWrZaxsdewuFynRjE8YA6WhL4M7HDAYQZdAwUUB4/sDrhtDyyNt8XSiNRDkchdHq2dRQFyDrbTwa1GMNwAQEvuThSyPciZ6Dc+U2QKxyDd8noK6A4LQs8kDHVZ9N9nopL50Ooy2cigAWvDgI5k/l8EVw9OkFDpXNjC3UkYBi457JY4vdOtDbB/qJinYe7lZn7Qq4ORo6k888ndV60CQuahtcVhgJO6TfxSgvtyvCj+IeRGWa2nbteqEA+X342Rp0vddw28DDnf7mT/PUCO8pXObm53lgfChfRm4ElsMnr+BROFWPf/0bdeniUu06wZSOhuvdBnZYeDMyoVfqR/nIs479WKZt4b907nztP3yorn7v2+vRB79Uaxe+WgdvvJE1FryAIOpzzlLvyOYRm/HbtWw9dk4CzwAwBppuOnHV0NAWNqj+0z8GahqRIz9mhVVDyslS+Yw+ZbtwYCG+UHZ/rjWFivgkxqBgVaNqpDSd2KbDCQcgKZJNZxyVWGJZk6KLwbFWufdzmnXS8blvXbPg62PSlQcJRAttaiuZTaP5KL/FUu6OctBtwLd86fx5bD9Z1153VZ1grfHwsUOMzumo8dvJtaP1Bu49XWEU5id8MVZiBdYRP+tW/I6CyEGZYlvzTcNfHP/0A3NwBX5Me+ArHLYxaQYHIm1H+Qms3t3xTu8BO9MZH8WCI2/nw40zOKSrWY4AUNhKhUKcAifcTKuXcUqBIC8aSVxn5Yfc/oalwlHeBodY8MRt4XuKBJLaYsBWC/gw9tyA2IvQwrphcZbfUZ2+vYZAQkPVKFN4Sxst1QUdGgS0UsnBQoSIp5GULe05IyjlxiXJssFHkeCZ4/A663jCI6cbKLPTHmJOzQy4vSEUTGAcqTmFTgCQFDjz8N+OjXxEtPdDOs026GTkRJl74lwrkO6cdcFnJ/ndRLCXKfKWCSqOnqaZduZFGcjX1cSIjDKfAOGbbHQqR2puf/AFrd6UK83tlDvus461giNJ96p5P+YkQWaSiwJOKR1drrAzfvuu7TV/J1sffvjDOvvEF+rIW26qKV4Ym8hN0NpkQd6qz6VjLJiOJSNa64Rg5PoXxyoPF5xjX8k1bJ344X2fq9P33lvX8SSJbPJl1JugBVz7QKoGzazHzsy0xKTyYqvozHnMS571akjwMI+sARcZgQ9AIktAAhOIv9PSVMWGHgovg5EmeWb7JS8EcFG7c1rOjLjxBf45tG4QApMsEbcE66T03H6zvLBYL7x4pvbs21U7dmwDR1wZ8ItyBkfbmhfCbEHSebkVhBw/jTpaozlb6EM0faLICqNorwbu3LODOl5m3ZY9eDjiuZfOUK2rtX3ndvjg00zh82YnRHAZx3anPGmuEIw85Chf7EOBZYIpo3bszcKWKh10+IQOMC2velkihB+/O1Cms6HO7Bx5vIw9vLe1gM7HHl+yXmbsqKZAErKp6JFUJUr4yd3eA5OuHcvI8H/ohbINgcaiAi4cGnhsWjYKCYcGju0eHA2fITsa2NiNxIrdDd+GxqNWaGw2xDnk0+/SA4I3B36/Hgkq6GHFpudT4uiG+sixxlAlPT68u6m2acRR5mw/iMJNxzvvDVxqDrsEE34iVwwLX5e5HC3yhY2EpzIIOo4u7DG9R09dffqhQ2s/NvSN9KbCOI2hWIVIeAGA2Sz3IApLPfgJbexGpXV/obxKAiC/Ok16KEhbB75QdVobq6/So4fBxx3/rkksQdsRojFFgReY/npF0sA7I38c1/pexc680pH9Wsu1i6B19I431zc/+UCtP/i5OnHnW2vHPPdWMjrioTrRWSyDtI/F2cWUEi7ISwNBbtfzDK4bblhl2nH1HTfXT7jy+tRDD9XRm2/iEvp2HofTQUuldNuLhw47nnfjy/2mAKQT4ddcq2HEuxhwxKO2rOMBRuM1XIyYfPPG8GLpKMOIk0AULNtIKIJi4OAMFuGifoOYDRMyFEKZfH1fePHiP0HFwOHNKJi6cOPwNPXm6NhO0ApqWnQkJKznUXpTfU4E0/PAAABAAElEQVTmAJVf4MSJUNotBOBM2v2UCzzQ0T2Ky6RnGc1t45aPXKF2lIs/7t69LWvG+rYbjGd4M1PavO1qYKX84eE5h/mpI3mjj0wv5gGLKj0IEYCSkZYG64oLjlhuoG37YDFtCoq+P33OVV0In/ORS6S91G7DGad0IksvUwu9W16Ub3oPHkRzlQIHdxHaj52YntN7pNCWaUOCEAIqcLYm0FgyUsLRV/h4G4oc0tAUB57EAVi1bL7NZYPG5fpS7t2jAdv7q4StNwvNbi9APqeEBiL/YBfn0EX60DD5TyU3JB4SnuTj0OKlJyaT00xlgqGuoWfF9g55N5+6bscImgbpb+9Lyi0xqOR9dD6WeHXNSR4aEmwNRivob+N1j5U4i9jI0aFrF07Plg1QNHKe40ew0q5tnxYUBXQG60CloNP1AH/s5EjpAo+EXmINzSeEzkJPm2O62GkNWrlh2YA5TS5lBhlWmdIsrIspYAzU0jV4zbLO4VMyJngszzwB6lW33VDnnz1dT3zlr2snVxR3vPI66g564E0wml1Cfm9G95YrH+ejL7q1I9s7ONeey9Ca2lyu6952S5355RP1yGcfqituu7lmdu9m/Y8JvQ08kHxZaegl5suP7pDGBssvQcCg4IhGfC1kMOs0BdosjUTdYj0grG++c946hwd5ZklDDjZEPSDjGvjEpwFUqixsAwsHzqnnwd1AGfKkz0mzzOg52tCwWodGEMYnzdo2st8RhGwjAdVA5VKMAcfRlb6qZPKUS7QNQ2gNfKI7PPo0mgbWDtOAtffgvnqBq8KPP/NMPff8c7Q5vID1XctWGen97Cc/rx2XMr5fWcRX3NoqJbnCEV62cc9tNRh3S8fYjKJINdgxQgkeeH/ECSS/pK0nMYBp2+rXA4R4nHghZ1onmuDm4AQchoE6npHU0ZCByup3cugCYFdYBxinIwYKG6HTkik+jpqUoysH5rb4KNVOpNFtBGs0Yp2bUM75EOjcm0RZRj8IrrAGzfRD5JOI0DrdFHwcPRBbczhqcCSjEzp0hSTgbQAFCjq/OjNEop+6ZFSnvvkj6FCaNHQc0biNwr/eKwQyeRpVB1U+aZk2yNgHxqnMQ26aJzB+DAptF/dJuX/Kj8Gptzy0/gxPbNXIiq58lG/d4EKj9w0/Ez5UT94ESXeTL7KXCSFrkgXwGeyIWcBBLpw62w8M6trE+pAmZU63HNV5FVF7TVEPyub9kZPAU5z1v6xB6ejKiHNn8yrw1s0UvcbSwkrtufKymtq3j5unv5zd8gde/cqEPJiyt4ygzO+svJAf8lQ1spCXZ2WlcpGFoLrBtOSK176inqQr//mDX6wrbrqh5i45lDrSxLBUq64DzumPclgv/lOYelN/11B9npXapiAWGWs3GIK3LwsPAeuzofWHJPmSsD4Err5gbWB3g5VF7dJtU09Ux5G5/uo0NQeZ4WUZeXpEJJE0BV0mvPVmpvBw1AesCwP74BNiCy9cJNahk+PZKC0pfZ0/YRvOtGd92L4mGcIt8aA4fUDZvaf0/n//pfrOj35el196jOUKsldW6tSpc/Wjb363Xnvbq3Mr2gyvruu3Rcmn6TdvbaQ8rWc3DLhbmMN2rWjIkryW2aKLnYZnLbW0GxA4yLYeZnlOwNJhJwg2EzwixOG4Uwk5aMgYSs6kRTTytzMbbLwa5LmFmNIABK5OLyMdq4UOocjhtEt+9hT28u6Stif2kqmjFhu39Z2HqAEqY50GSu2o4MjHpwos8ekrZYqLjG4xgJ6PimHzQeh4OVrldRinhbnCw8jF9IwOJm3+0wM3G9LSSCZctYAggyMik+WeOy1zQd20C/usSaM7DRr9rdgJ5OGSSxYx1TXrd5S7oNmXiSlLg0YfFzXhmYcL4pbuLvdNzxPUxyLp+WHEETWB0wHOe/kTPScJIE7pHeERFzKV26DjGYOW2ywMFAYbb4sxoGyyqLvp1g7WqXSCLJ4GBtmRNetNdCATNJqJwGNbRmtohKxs60CeOnMuj18++MY31DM//HGdefLBOvKmm2qOIMYQMXiTXtCwbpFvGrrSnjIPWSccQRoMob/GXq3LTl5V29iU+/2P31fXvf22OnitVyPZGgKunWUeLEm1OGpAi9SvOlFMDWATWwNlThhWjNI5qDfN5DlIdigGFcDAMUuf7tFSMKjfptkwkRM4yzKVEQkcqPKTE9KUkpSWQtlZC2Fm8EgpZuc0nO1D7xNOWsI5alJAOwgfW5SRtc0MPlJS5+jBD+jDAb+xm4WBauKege9RCrgjY3lR7n3oF86czVX9CXxxwvpZmq6P/+WDofmOOsyTY9fraegevfpg7iDZ5Patdepi2kcG2eYjseGzeSVB2lAw2sWSltz13IZUj7QfaOgVWqGDHb8aKXZtGmL0wAdf+v+Yeq8YWbP7wO9UztXx5nwncDgcDmfIESUGUauVtIYBrRZaw/AChrUrG/Cj4RfDgPfJD4YFv3kNw34yYKyth4UM74NlycIuJGrEJJLDmeFw8s2hc3dVV87+/f5fN7V9b3VXffV9J/xzOucI02gCPguCdaGw94HMGYQsY8fz3BV/+c43+pUyn4wmMQtcid1sm0JH4jOH5o9AdQgOxLYjjYmgci+sFYCSkPWlRIwMpmUgRLP+BInT9Sd7Ptbaca/a3r3UpzJlAA+95ziZv+l6A5czGJGNF6J/29CYdRySiME/QS64g5h5LxMIOK0ls19x0IaCToHEc/ZzPpIYGY3ySMwRCc89WCzhmsr8TiNmHsJB9yaFS0g/NgPslhDAktNznPec75ccWOqOEzQSDa/4jFRFsFDxhrbDhIGYM8QzIvpm9NxjXwueN04YbjHNr3hugVCx31gG43ho1yGtqKh3j6o57ZmJCotLJYN2GUy0jKhOp6J5XmS9JcxibG0wImNVm+LC0R/3GqS1wh+KTzNO4ylBOze//mZ68LfvpSd/+Xa6RelDsd4kqMu4HDeDlCa0GNzKx2yiwGOUfNYy9y8KDDfkwvXt1PnmN9Ojd36OYJuk9bt3g9YC+grewF1GEeIhJgUeJeiYH/OX+qrcx7T/ndcZ7L0InMVOvPWjlMAHqUwWCuvZ7+Vu/8a/eIx7pA9tJWDDK3DtPeeN2Wo8B+0wIJV5WBYqOQWjz/Dyt//8sV+fgYPiHvHZY+vtMkukjDEFDXLf+TgypXvWEn34LqwP+3VuXqDVrH3n4D3ZvwKm7oyVGFNwWafOztiq7a/Ygvt/+hf/Tbq2dRGBntJF3PxHnzxO/8u/+JfRPoQaz1TAvcO2q4BZwPJsJvQr/AIWMSjH4RvmdfbOkei5eY+x7OzHBsN04PoZLuJ5+fTv5nYuvIru21SAQyXOFbGPlcQeHZ1JQHuzI4CjC6NLsVSocYBnuJFqBQWeQshnmURMhmGG1DwDYpAoHJtpjoxJfU4rRG2vfeBz57Un9ioRxrS4rkTWRbLvFVmLeMYJxvD4zcI7rQF3DcjiEZkgOW/XLBlP0YpmZUbgQtJN7V2HyBsYn/WDINAMXonOW1gBMoCANMXv8gQHKVKdru8do8I0Lv5y7pIJ42QRsMtQyAt7M/fRLzDy80IBgPBXIM14UR0BFzBm+lkQ4F4ieMozNBrW1wxhorSLcdBGaF3aUUgZwMY+i/f24VHyKh1PfHa8QkhBo7jW+h3R1xw8T600Z9zBEEzIMbjAe85zM8anO+x9prmjPdoEQxn8wYPW+AqLbU47K0odrn7pbhp1LyBsPkjNrXaqXb8BjJwLgktGQXgpnG3fcQrrsDSlGb7TWl305mmbwsX1b38jPXnnPdpDiOFqRgkFlmRU12cIpw1+gH384lpc5jcQjmuZC8J7EaTZET/Zdxll84Sw5FL2ObsjcMRb74zWpF8ePxdSwl7GU7CdexHSbdQJnY0DbECD4kmoAzPayJSrfYCRMxxGH9xzPjp7ESbNRhXGxjjQ8uaf4wulbN98COWrn+239JnxDILDKYFL79UiPZ+nsDVuarhncNoBz4zLscJ/E7K2V1/cTN9haY57PFnSc/365XSh2Ugv3GWFAorRwLsKK62qvHgQVzUbtaM7G5OAZCLChju47+ydY/Ier/ldfJk1cyZdsyeY79mD8SdrmX64DBXFA4YoEFgQnMQCYQXh+Dn+AZDQDFl3AkrtYrpTDZ13D2I08oIIY6wzk0kQGA4i6IP7HZvMLKHHe60X7skEHswEcuYARCLWNA+B6LxowxkG0uNJiIM4m5bJnHHOqRnSehCdIiUQxcQUAj7KhAg2r1ILn7Dnl9wl3c4YS52/Zkmc5YICpl0so/1nu9wDQs5+WKwTgurH5xf4e4nXBXYwCIpBa4QlFkgBPs5VIoQJz+HuVtKOcYKlMSoxV2CnRaOgKBQRnfQd82fMU+7xOQXLnHlOYU4VQIl7db/cHFBCDBfcfhiLAsnMm4LGeJslCZEZJaZojDBcLYSBz8W6QwBqQkL30DMG57xK1JnZJxTMPbprzEOti5BaUogmnrw3rDVxBenMsPqkmZlBWOajNTcFhzPqtVrbm6mBS/j0hz9N5f3DVP6Vr2LusAvrv9POjGcVKpaEaE34UmkGfLg+ZmV6a7OdXmDd4cO/fTf13/5+uvrmV1KxWg/rkFvAgb/8ARLxH7iLeGAsvfl10EV86Qf6kqF4yezCL4jUz37gK5+JgDYfAVn8qPiy+7MLGV9kD8Q9tglM/J1HwdgnT4SA8lq4QrQBhIM+Asl8L7sr7IKnYjSMiWbNDk6Bfb8/YFfbJutjMSTEz9n9WsLeLu72WQN478lR2tyspS2yt8YMm6zUkA48NFja2j9mXzae2V5vpjVLFBSA0GRrsxkCsaLY5bmrt3D94JMTyimKnD2pFabVvoXQ0iPw+LwJZQ8QA/Th/GMYTjDe5Zh7xO74mF05exPfChE/Z3AXpiHA+S5g7z18ncGLD34+a8Uv4n6Zw6vAoqgAUTAYBF7pZkk8fJ1phuxxG3MrGTU81BVWwxLtbyBV4aSlJeFKeD5nR9Yp2YlD0d2RIJdohYV7UKG5ZzClAm4an32OH+Nb8U6SPpsFV8KSQPjMAbbM7NFXU6wO4BSaQhhGbIi2rBB2mGPcn48GKV2tqG2yMXn4xZSHPmDT9Rsslr4+6aQ3Uj9deuur6fI/+E4qrTVhPBDTPUkNslV/uLUZU/jFp/fTJx/y+tG7qdZijSDUrWUSTEbbbjHDBWABDOk7iNguGY/Cpjp10TBDgwhUDHPqkAoKAoQSU0pFBTbwhR4IQsnEGWEoLEKR8FfhEAwgMoCNAsmEyXnwXBgF2ulDvNh2CB7dQMfGt7oTWdwse86aMe91uZPB8RlCS4W0mFOkAJPr5rt8w11hZQCFtBZA1gbXyDJGH4zF+NuEnUvrLfbMf+sr6f6P3k8Dtpa5i4tYIog+JbhkAWKFV9AHjKQFYfxOASvRKXAVmDOEVp0dNO5+/Y3087/+23TKGYhf/M3vpJxCC9jEZAQDPxmlqLqEigKJOfE+++01b+K3wsVXwM+3GTMgOuJyPMH8wKoPxG1nLPbLZ7J2ztq0YejAsKCwlybEkTLFTrN+s/faQkHfXFXp+xMngUMsWd0eNAr+O9BebzBhB5FZOgIfc84JaNa0aog7QSiHnWF6/PwoPWHDxYfPeunZyShttCqpwdbgLj9br7PjPrguGVhnd5GdY3ZLo90Lm9X06osX00tbdYRalZorcQxNWecl3lF6p0cnqcKZkwvDO2e8PBxNwI+0iDpnbFrsmggKlAyM/KZfoQU18D67msX7/C6myq+MV84B6V2B63iSm/gvXBhqWIu2Hy55PI9vxXex3IyBEAuFAHwGTbcK4oEI7YcvtRoEtqMzoBYxLPYmVtggObiFwcIQFhvqSmpRLCkgDOYRkQ6AX/4L/xS/Z46g0T1w8qbvZUhrfBgSWirrzHGK4Jg/Y/BZywAUVuHqcGbfBKQ6JomK+cDoVIUDfD9/Slv/ZTOX/tl6Jf1vT3GvuLGBAH1CbOvrXP/nX6qli/luWtavp9o/+o9Tne2CS+stdhUoR+FeZ2c/NdmTff3CVrgqX/vqqxDANP3pv3k7/dEf/c/pjZu304xTchxXpJghdIaX0TPEK1IZfcT5tJRUCo40hDYEsYJ5hbXa8O8ycRAC81f/KigkpDn3ZW4TX5hB4D9TtmUECe/oNAvi81em4TsVhcxgdjHW6iHcf6kVQeZM4UO7uppzv6NTR7sAryusZYWIFhS8F0Iqs7i4TyFIzxG31LLms4JGQRXbXNNfgednI4XsNG29eIuFtWvp6c8/TpvXu6l85VrA0hN8It8GcsO9pw2FZYyRCSjUCsx/SSZSAXD5tZfT4b1qevi9n6YLr7KecYt9tWA2oSCcHTskEp+lW2nNH695R5i/Ciw+RxwphJcfgZfXvMtrca/P+t4f/8Zd8V7o2l4W4+ITYxNGveE8BIm8sd70xKBV2j3qxdNVTkZhatA31g/CoEJSoYxw8WdBdvenHz9PJ/0xSpRiYhToPgLIsp0a9wwROBUOyLy62QjaOkD47J4MUhf4Oq46O2BcWq9D8y7ap3gYbt8d8J1ToHe3f6rTn4bI3iGbM+7cT++VJmmTNbQlrF6zzW0ss9OnO+ng2Ul6vrOX7r7EdkKUMwxZSzrq9ilg7bAVEyF4cDQhljlEmFbYaiYMF+FxJqwU9vYZahGwKbCEnpUEIYVCGPGei2FdMUd/jPtKP1qOZST/GNkwgK8VslGo6gM8K+y1Nt0xOGJYwDqIZhmWD4IrsJ0JmmwovFdzQ9zzXwosiYwhSuRoeoXYBMSY/dHM8H6ftakItNkpgkOJvSCL5P1RS8UAXZumz675G3EKJ6O2O/ctaUnjK5hXs1SmkhK47nR8F33QtnVHPJ1eY4eG376ST/fZtO9vnkP4jVU6xpp5g20Xfn2bIPCgk0Z/7w/S8KuvcTf1SzCZ1b8TBOiIvwXctBKIc47GWzbajfQb334r/eA7X6fQ8RepdmHbaYZGCK6RlB0vLzOeQi+zPhCytCHgc5jqkeQ4s1LCSlNonwkxbuQ+44nMK+5hrrxXIABOm4iuwlLiXokx4OC9EIGuhtNXaxtQjUNbgVW4i3znkqWwpICTlk2eQq9wF+lWvEQsUyFpfxBHVLrbNp+dg7DOBBrP86xrJhV0c6tcuUerbIZgVbHMSJdvXNlOuWsX0/Enn6fis5+k8q07ad5sxpxUTu74apysAN1oBUp3I4RlmsDYECiqkYXYk7T9wp00Jj72gDT7JbKJ1as3GLfwMK4l8f+dYMnqmmQOXUNJnY4kCYWSGiF+UMQwUyaoaMgfgUv/zjE+BlVxWbjJQFru3IOaDHydUr/0lNT/vWfdtN8dh8Jo17F06OK4b3iBtiBaFZl9lxBIZTyMrSYFmI6ZL+4974ZlpJUmLitYRiaNFIKOosvfx/ucHck/raYqiY4LBOOdSrYWD2sKOFUYm3ZPoYaprGfDOB135k7RN++3RwPgXkz391nsnB+GpdVB0N375Fk6ZOPJv/rLd9KnD/dZDUGoAsLeeXaQnv18Lx3vd1KXJTxj4pQFYorLWoM5QivMxTiZNO8chazjtHv50jFaC2glgOUrR114SdhBg/0RnhV3KQBPEcBtLMnr6430fK+XPt/rIKjLbFVuaypBDpKh9u/iNkXLW7jJc4TFuWaVaMsQm25VCJ1zpDIKH9dsm0LAalaDxwI5LCwmaKmBwszyAlOlBnRDwMbwMwAarJMZMjeQ4SukMD6mPBtulRKA//YmqfgTBCc4GJL9MQg0M394JqrJuU1ag60CGDZhCygofO98usFBFDJzn/t/ByH2e2+upRo7NowKW2lETGrEePIErlcgQGEiY3q/kj8EB21HTAhKbBMHeB1r67u4Kdsl3Bx9d/pTZ6o5slHwxzFxfS7jakHQRwxL5Akn5pDnr31FhpW2ixKK3zNjtbRzVeg4Bt0xISiRRlyPKvLYcYJ7Yp0X2+OE22ymlbmf16UpOEpn7XpdxotiVcYkDghcZErHuBdjsH3xWwS3K+Na9G0bIz6PdVuBkXVfM/Ccc9c+hNuY5/J8730uB2JTeLcCo32sTup9WsRP1r/0ajpin6VdCk1vfe3LqXT1GsBxvyyeQ6sWUGBCz7WmyhThH4IUOpwBY7fsWb+4lfJv/Wq6/4Pvp62Dg7T1KgunEUp5aTEEzd/RW0Y7AXGgKS15hX/gSH7S0sIx4K9CWOuY3lU2Z/fanm9DIAKTAePbPemnARPTxe/1ZxwhN0z7VlvTZhVhokA66GEdQnONmvxDA9C7FmmUr9OFyvAp1pejUflqSWGT2QTEKv4ZDR+MGUnTjqNG/VM2LMbvNdqVtsRlXj79pZClHfo2AB+C2DZ5wF1lLR9xmde42Urr4FXjQA14qYWAWyukI2jhZ29/lP74X76dLrPKlNA819fSlbVS2n/SST/4YJ/aO9z0KuUQjXa0X6/qrrqRQEaTejuO3/WtA6y0UxhwhDDqQRcq390OG3szx6Btxxb3w3vMf/d4nD590M3wA72OgHc/6N+DkSkYx5jYO+il9/P7hk8IZFEOEATLxDLLJeaTxYho0AW7sqXo1c2Y8HIQjNB4ZggKmdJgYIE90+E3BpQNJjuEk8/8QMdh8uryWB4Re0Fxs225PbF0E8F3kGaZg9Ya8/olUpTOEvrKo9vJcCgsRKA/xrPiM+34kyFXEz4bufx5ka8utIkfeVQ7gMnRbyyAptkc7bqGL1wdGlqEO2Y7zJqXBGLgNmvdDpD+Eptj4BVf0I5uXyy7CFVjrMkX7XFdiyQEzYx1d7SvRalAU0AY/AgFQEOa+fjZ4b55SEeZwUeKnD51GfWdbVPrqwwuMI0YDn8dBoQos5+7kjncvrBewJ6Woi5hZmUpaHiOx7SSbS+W/QgTxmYf2X0MlT4yV433FfsGX4xPPOjWu5W09xpbVJE5JwWiSQhjKQqi+rWraefgJO189ihtE9St3LjFThqZsBBvjncEjI5OOT+atl0uMmYcxlcmZIWfHbGcp15LE3ZxffT5ZyD8F6l85wVOPsK9Yb5a4wEBcQmSAk/gK9zw+ADuFOj0adZTwex9RS0FQCrtCV3LXsySHp7iGmFpSw97HCzyCAElDmVKkxe6MJ7JmMUOxTlrP7nm3xEWhO3GkixwIm9JL5krpTJSTGJNIrD5xHcKH0DOS9BzUUYIvFVx3yrAQqbS2rBGUHxmwXjZnRUNCAhZg+hrtKGQsi1n5DkAVXZ/nSJR+jSeZ7mUhc0muJ4ecNhwd8LJ4AgZlkW9+c2L4YpVGOuQkE06ZU0hyZR9BIpCBP81VQiphJBc9aNvBaRzKQFEM8rKD/fO8nYTK8VI6IB/EgJRVcDjWmcR9+M752IiRhqIuLd8T5sq8JUZfBSBNZcD6RY44hIKMABFfAfaSLkoSBRijou/IXgYEn9FcFgBPKOl4DFWoIV7MtfCwS4h2jOIAy4YWuDI2iAylgqcEXccKcWdItO4lOl4kaqkRkfEs6EN7ZNhFACCAsvnZMqp1tzZvTTNTVk8JXMp7VcCdcEv3xE7k/jfvF1lfx92FUWrL9lOWd9cBva4ei2kPAA8j/84Fy2/6JzvGFoQUZkaJX8ck+1DQ4zHryQSUSdR0CbPWGQrsweDc12Ct2pdlxbMZgKLcRWEJ66U2ieqtfmstVr0L/cqLPIAJlLjtO2/CFSDM2Wd8ajYHgZ4CJNMEAIjnjeLK3wConwHqGNentysqR6Uzh9CFAguBQ/MT6Nap1ZcTyGmYoxB+IBJ4AL4IBjmDChkPhWYAmsBXmbcM0XgjLgpKIF9wiI7STC/sb6BdXs37T15kqrvvJsW69vpKSdzlzkAQ6Y76k9S9wi8gIdyrRLjL6NMHQNiTFHN6dqr1N7YSnuPT9LtnR+nxiuvpkF1je+YBMQeJ2tD/eIrlBF4iNircOffcXeY+mS8jGvqTrnfWZ34kkDShVFwDvm+h9ARalEOwLuNFtlO7vHF5YCp4AbR8RJ350oJOcYN0gBKjnGEMuEzQ0Hf2kbcYDPKJT7LKfyFT6pYVC7u7yvMeLbCGOsILK1x6Sz4CNzY1rmHEvzBNdd/SmvyiUXCRQ7/KAP3IjdMSVi0IA7bdXkYMoPYF64sn/Pg6+6r19LGzRd4HsTCG0dkeTsUmLofVvfkELxivRF4n7AyocjOpFH+wr2Vao2sN7QifdKubCxfxJIwLECvlYkvy2t6RQqgoDEm4xrFAtaplqFKwzkWiuQu+S7zLrAKCRl5anm1QgYUBVnsj5g5DD1k0AteS06WkfDOoHqOj2BEASZSc5h5Mzb9aqlR6ekUppO5jUlopWbcjKnOWz/6i6/pBoIOK04mpi8Ryl1xgg6DdXL0zhXZ3h9R6G+YBQRM6FeL0F0lRIzCze1ewldnDmpNdzr1CavqFRocChMENUYQX24Si2oSnKefNG+kLoMaM+cSfc8hvALHf4X75tdcm8C4tu2PZrbC0Poox8TXTNPsnnEHkcV99BVuK2/RG9GGglWYxQ/jNv2sZWJ5gQFzXalChblDZCoBl0HJaMJH4eKZjeFCqjACEowF4RhudNyDBQPSjbU5RuNAEqyu7pBXEYFhyYIwzYEc96Af0yd+YwjTiEMCQxdDe5hF1F7xzBQaWDEOs3uR7QQWsTSD+bhWcbQizofAHLENddVtcIQjHFZmnBgosWFixCmrzAfhNRiM09Gzw1QdEc+Y11L/2XG6+OO/TtP6Wnp+4VbsCFtF0BTUmmj8GUF3GX5AHLFICUWNOIZQHJBBHBD7yLXa6dHOML382Z+m6hdeTTuNrbRe0wouI2wmIdBzBQ4JoQ3dMrW+YmGG5SBJ1NDepyRObC+WEiEUzYqVKY50YXadWJF0lMVmpxFbC3pWaMuVgXesF6w+1VSVuEu5wqY94L5EsFsrTXxoeUijCk2ao197h36kX+Zrm17PMs4ITyyRAqtIKGgJd9GwQm82DKa1XlAatHZwEXSIYOd9lf6ywDX4wA0ztDM1sUW5ycZkEGs7DzpkvlGKnd4Y19aTvrEQKc4tHR2iBSrgbpqeH+zgogMD1ngaf3XB8+C4m3bGn6YRtNOGjpbMcw58ADDzQhhViStpTRqn4cc4WxzrxtyKBe5DaF7Y3maMwImpH+7uYC0NU61WjxIW46Q5QhoG8ytYkw22JR+BI9AWwhkuBoYoF/pQthQnQNgqZCWaGSEBmwVw6Z2HFgA7gt8AX78rGIVrx6fT9MYVBAqnHf/VIxgRgYC1yaC4j/92KGMDYYob+cILEIPuhkw9wFUYAJTe8SkeczG11nTTFFcMigmopSzGE6WOByiEBvPsv08+P0z/7HozlTea6dPnU0xzCEJmowA2iMmKIT4rYFVh8mdm3dAGffudS5BkxAj0075LYRQz9uWBE40CPnuunjrUKumOOS9N8pgbd2YnQvMdUHSeETfgyxVjUKShj5ReIbQUIM7LayF2mIsaCcjHHB0bX4AgmBvYKsAZZeDCrNGEsS6ZhAWk5jSco4umLaOIU2Z8nJfXnLKDlAGmfG/fIXNpW6FlQH6GwNN6y3Mqtq6B1lvAmO91Z3mExhgzryH9zrE2TIx43ULCzsEApYYrRQnG/JSq7AFt0E4NqwhFHqb7lIBxuYywzk0QLLiCu8dpQdZpeUDwljjXqtJMu+u30heOHqXXq0/SbvtSelomIzbTlgpSE5owKnvow/wEIhiSaW0zVeW0JIi83NpK7zDHL9+/l65tHKT7le30HAt6xQ6nWpB5nlXwR52Xlin0FidwQ4sTFvTKuAaQ+SrgEgpBGCIUABH3K+yEJW0ARPRCKHAzWBg+EjsQy2iiRc1Sk4QCw0ktYp0e6hDKGeHRQrgqbHp9FhVTTNziOxe3jxDGdi6ODKoXeQ3I9FUQFGXGrhkVihA4KOBU0hXCGUsFILgZw9iWoUgHIzZIlPnHCBy3iukgfKvMcZPvH3G/hZ+iVTZ01C6Sv40CPSIO16TfaX+UnvWybWRaCAhLbbR0JKyoDUMhceoy8BuTDNCtzOi5S/IKKPGB1rkfXacsDAGayxmXWmCpHaZWo4Xioj9qvbxmgXcRRae80X00tKPgc3zh7vqZcagEGpRiqECEafFw5zBdJTC9TU0NOwoDDDU1TAOwFBoymYikyWAICTsCvFyLimhrjHguNIjfcasB67NHCEQO0sXOUbp9oZr2CpcJfqf0+YPd9PTzIwbGLgB7+2nt8sW0feVS+s2btXT5cjX9cHdEX0UmAvGBpAt17A4QyFvW0M3Sv/rgMP3nv3U7tWpN2h+mNQL9xhT2Ov00JE3sqKFXgJBPF/AJb5YZO5PpDjNBOYfZmoIZZH5+cIoWGrOdBjU+tZpykdgFdTC0c+1iK00wUT37T0E9xG/q81qnBwkJkcE/kEQ/ErbPur7Rf5ruLoNR042mhiIhOK6NIKRjtFx+CPGBkCHp4+4OBXsIc036AYSyxAx3UWoBBigS7Jyh0Y6sz+FZrSkF+iUqknk8VTfX2F++lC5vrIFQ3CgEkmsRTaVbZLvUqoKwK5jiFcxNhfGIuTXYb8lgsi5nASqb8V4NaK3b/uEprvQqXd9qpL0jArCAdMrme4HcCpX17I+Vp89xHuHjkprGOuMbE2caUKVtrRQWEAJlCNG1WxQpimcoPNZzIgwKEfyBvnAn7l1+OXUh4NvsH77e3kif5SpYvghXBGMwF4x2xK6XfcfG9RICzQwiPmO6uL6eSsz5e4ML6e5n99OdBhmvRSX972zg/wrYcXkWTk8W+5D5gT/gETvwl4IJJQk8VS+6rf6V6LXMZUgr+WU+f7Ro5AKf9W/8hgZsE7WDq3maDmFGEB3ft2EylaNxqhrCrArOhhSEdomLlTn3USvOImKLrmOHBjrSWqJHrKx6vMJypn35qdtnq2KEH4QGbwAfxj5BOBnjlA7GwNy5aWELN4XNq4QDDqDLHs/UzycC/I3FXgTm7rb1nJtZ/QksoL8c8UCUQuzdDgzivAf+ykd6ETyGFY6SjBkLC2AGMKI4nHbCumf2Jm8spDWbHXFThOEJ8S8TcWWs3hBMtGJcDVZM5ihCOTBOpgAMM1iryIejPoW0JwH3IucoFDeJPzWZvDtrOgRNZ+tpRMgMa2EOIIYQvhmSl8gqlHPEG+ZsQwfB9tBm5bJ7l2cHH+huLHApD8mEnGLS6+DtUm37WkEzdZyoeQvLqjnup2+ybuy9EyCANqlUK2mTMEKZfnf2T6kNGbKuqZqeI91GE/zuQY5q3lJ60IEBmfx/9MV1mGOaNnMn6Rnp1z3Gd61Nuhj/Ok9NlwLLGehLt8HmTUoaWqR8UTTEK9TuxAr6mO9YLDsEVHu4BTcYykUK7+Yx91nao98fPzxJ6/Tr+w6ayHMDj7uzQHBk5wCoVpFg1uwXZmou3T4FfvdoP73ff5LqFKFCmbidBEa7nWRNTa69ltpojSlWx6xEdTGIn0KQQ9s8PQnXaFiqpfX5KPUJLC/QPjWYS6FiT12EmnvrT+qNNATrWzDujYtrcXrQ7gn1NoPTVEfILREKCtYtXKocz/eI4ZzsHaYDBSHEswm1HBAWyCMgJZQRgmdKcMq6ly7FhEO07pLs0gHbJP/+mxfTrLpIPz90p0qELcwyOqJWh7EowM3a3T86TlcahbTB/KfU5Cl43GPNinYX2Kvpb2yyjo35enirW9l8wkaA7/VL6eu7n6SX1+rpUetyen9R5hgPYHJ0kI6Jb83dj4k+ptCjhsmsPAOO3dTALV8gDN6eN9Nv7R6kNyv76b/APfzXAxQpVuSWc+JlfNGwgpa1cVUtXHe9UNHwdShqnRpui3sjBiO+uN+5yYRqfsMYsTsHf80iyvxZsJg2wZET023rYuXEZgEIgs4pmUH5SqsUHOhmTrF+rJ2SodGFcW1IbZ0xzCOUsD8MMcamgeA9WnYaMioObG36hR64h+pHlB11Xgo8+HgITd5k7G43dMS9CiaG/stwjcZFGzqHlDMjhHsUrm4M6S4qc+AE6IwUEUJAWSPEDX9kqwWEB+9DZmhbCUvho+CKoYWwVHF7PegVsLjtUMCZ0cZJWXzhMxMsd8cmjQoLPeYo/oWWXBdrIsdYowrEOGmxCCHrc0f8CeYwYzgxJc0kDMCdYrUAUlKVTJJapBNMwke7HczfWXqAFVOhw71TmUw1DIAQYp6IMkZzTDAjG1hGH8Po7x5RHFdESyNQrqJBvvmla6l9xPIBYko7rEu8dzJOe4NpugcUX8OteBmx/+JmKX2IYHp/d5xeGxSo3O3GAQZ/+K07aY9J/n8fdBBmWFdQ2XOCt5YKnBeciWxnKRCggiAOgSGx6fpKGAOOscpVtqgwHqfO41G6DSeovTsI2dNpPj1GYE8edyPOtMWujDPmdIyA0V4yJmYZRCQjQMgKOBjvkoCgSRCA8MMi+uzoKNUQigUCla1GKfaRshwiVRCACLYczFgitraA+Fznt2DMVdwHGWZhoBHzu4xmmUGMEctSq/Ed4aNwnbTkSsyxg6u8d49aFyaOMYU2P0kjTv4pr7XSJif9PMYylIC3EdimuR8+OiYI3k71DSwlYDfgDLoZeCvirq1RET2nzY+oiymPe8QssdqYy3NiPjOE/ae7p2kNWlghKKYM5OOdU2IX+bSJlXeKEshhsfYAxBx38Bl0ccQcLIys4+50xl2UGVkrrIM+dT15+uwWq2wkl09/PG2kbz46Sm9s9mh/PX1vWk279NuCCXXLIjHieygd+Rd4lM4QhekGwuDf4sI/wyD89/OD9J+hfP5Nvpl+hDC+C1vFBo3QByqPu8GTVA3DuK7UEgeah1b4DvgpAIxpymBiUiEVjClTAu84jAUFZbiElmkJRuC+7F7+yGj8UWEqtCJrR+DY7xUWWRaPxn2EfsNr4a2+jGMzi+aPbYRARLhUHYsSwf+MISwbPkhvupd6RlpEE+5p830D8/IpuCnyXXTCfWbgx/R/EcFk30fMVeFtDK+MEDKjJ994n3jF4ImwggKywJxc7aKiccWI3o5Ky7CN3/PfocUYZ+z+kn3gM/dpPRlWClYEd2FZYSi5AoVKBw4FVkDCo7QbS/di5kDD+RozhL9jU0PaKD7sLdOpmkKipLhrPj5AYxMso0ciBSAQbcCgaryeU4T52T6pUIROCc39/iGBPcbm2XwzBFuplYj5gBS0yzpLNMq4Yj0rlpnMBm6AGn6IZnmK8Htvd572WGx5iHCYYd7renUpwCvy/MfUszz82BgIwUeJBcHxZ0857w/3soaA+wyXcRfh2hmBMJhbaX6CK9PB1dEiE0oRFwLwxsW0SFSdEpv+swTv9jia6D971kk3fYR23v7sKG3BeG0EWL7eiuyGJusGVpYEPyAuM6OADrwCdIlPhBvPgMjpB/5lrprMWl0QC5pKRpZAFf79IalvLIU2ArsLIZ06H6yqAecBDrFG3LXALGgJalCYjRk3VQQgEyUyxUKSKvwRoOBLC2GGOzwGPiLfcdivcUkVkEWYzvEQ3MicNdzjCdZqizhKpYXVhBB70mE5DcKkAE49Kcfszy7FggvwFRoPza0L3aaq+m/ud9C2nKgDsRlXGiH058SLCsxJS+QYwSQojxDeh7iKxiqHxinAYY+xt7AcewRtT7tZ8eM68aMlwV6iJXEY6yXEyQfFevrsNJ9+Z3Gafqdymj5HgbzN9idjrLMNYLtg7IAkLFiFmIvVw3Xg73XmOGC8/0O/mv5w2k+/Wz1J1yl0/BOev8T3lKyGlQ0hMk7wxvgFKf/lUv4ievgQFhhfGLcy++ukxDMSkr984B7hnIfutfpiDSIw8r04ino+7jcWFiKI6yHYaEJBqVUuDZ41bfNBm4gBvz1rT/ElLTnAjHmlKoWPcUYtEuksK+uJXhC0PEEfN7WeuHNE/9Z5RT/8mtEv+Yy0xVwPIQj37Ve59szUwvsENmMsKquZcVzCDnivTFvrChrhZfuu0x3TXmQ3wTsyFxrnC/viX7yjL3lOQV9iPKFkAa50mBPIjIH0SjZ+PjrPgAvwC1jbGnQmP8WSMNbY5qH14gkB1R0EyALCK+H2zZoQEQOKrYGJ+0m0UYFMjGP3SS/V+dtGkIwIfB7gXrhHeYmJuagy37Rx/E6YsIGPU8QNG2HGmaVRYteQ+iVdSTTwjx51CKRhORBDOeHzEkuvxeeqcRYsDTN0okz9oBtRBrJr62tpf9hN77+/H67kVgNbB0I5oa6nTXbBwKZM7PTpNgAg8ASkPK52y4SWc+IqgkHCaWEtLLiBaYWAWY47EJ1BTZZHYJYJjxMYWzVco58j5gKO4xkaNJseiIk+0CYGRV2XWUCClalv0VF3AbDLFIVrl6OVTjyEgjG54+ocV0ALS8Q7HyVfGTexyot9V2iD1fto3Rlw8kSTCKDSr1puCAWMmYsat2SgWYDFD8RMOyMEI3QLYTJmBMgY16+PMBkjPGdYvyYgTmHCxmyQThH4bv/C+vw0IdujwmogOA0TDGJJDX+N6fWAT2nA841UwEI0qYIiTD1cnxnf53EDq2SnZiiFBZahJRsWE5PlAISkqHH/nbvlLGacp8S4smweW/MSVD8mIP/PB/n0n+A+v9FYpt8Hhj8hDPFjJnoLxKqV5woY2ggrF0qJ52l0DRzdwGP4o1kr/RMs8m+v99INrOO/mIE3GG4DPBhzcSG8jBOWm9aJA5IoaDsTSgo0AMwlBZc7HUiPNB/0YJIhK6GhLcaSWVK0QjNOzjayeieZEmY/swz5xkFndMidjptWfQj65BffybAKe5Wkyo6yYDAh/LhB8ua9gk8vaM495331Gb9xKxX4UwROlXbcK18Z69hVZNdg+hEwP+F6Fdq2TmsEDYyw0A0xeHYog42x5DE4nFeNWGGbrN6E7YTQ2uFWAxUsQ8U2o6f9LEvoqHiezxAWctYxCz/uoU3nYCwweJN7FO7SZawMIWMXMS8G62eTaLHrLuOJ+khVBN8VexCbGQhjCe7WUANAa2wP4pHtT8jsTBhgnaC3AxF4TtrdGhYQp2u6oHuCyzA6UniONTWFQZoQuwWFfWJO+ulzEKafX7IuBA24gGHW0PZl2u1wfZMFxXO0+wRhKBGbMcnBoGbePEZby8FsEY1HILkGIBtt1kQh/Nzyt8hfEWwpAvDlR0HkhCUPiQ2GDQBmTO5JN/rUqBGeQzhilQ0QkKKV0CNxMPckOkojousKCBs14FlEMFvwKizwCDP6OSOaJe5wUWTQo5mpHAJpOR+ng9NThGmL8WCZohBWUywPLK8hyCxzrajQBNZabboeMkEQOIxTgtFXMrkurIoDYrWMIpaJSMBMLILHfKEraFA/q4aXXrD4aM8DHxg2wq9EwNet2VQaMBlz8nxFGU/8RKKEfhQAS4TMAo02tg22Mh4yRuODysIJJRg1CNAAOHZfZsbThkrJbNcM/6oEQZh9Y+RYhzIWuEQwGycxISANScgW7sZhIswj+ITrC2DjSp+v09l7q0b6hDjmb1Wn6Xeai/QSSvIH6A2iBJEUYHo2k8EB+EhrJhms7v8mc3sXm+oRz/8uVtx/WF+mH+Ji/gXK4QZpe91otb1ZVvGpUrY1lY8MpyV+FvSB7vlsR8xb6ys6VWHxrDYQb4Oxz6RJ4FIByNd8C03Stm6nGUqtCH/EmzjS+rRnGxUs7vIRcTZu090CRMzJ75kbz8SOHUEj2fMO2FjWKd/fQFg1wcOndHbpMutk9VqOj1GUxCsB8BX2YNsk6/ZMpQF+iObSnyPNRqDw0v1yPlrsNIccwEsg1mo2WVzF8mfeqyDjOcYSc6TPoF0FM3j2fVTiM/9MAdAfbbufWoDaGdHOhAkGyPEStCR1HXMkgaoqOvqP1QyMz9CL3/MVQBMYmohoaLVlGVdhhstlsVcFmzC0F0+rAcKHpxPjUwYsZR5rsbQMJlgkBpZpl9EwYFwNLaMpmREtFTNh7nYp0/Xce4e9eOq8LyDIClhHZrDM1rjdin69FenAPwLATsq1VgY2rV2yOvyUsXp0/Brrs9zGRassVvNjCIe2kpgQDKAliIaHQUimcawhKbVZNtJsI4xw8/gn8ixUs7Jca22F++LT1sIoMLQeFVxACwLRFUFI0Z6B1DFxAV0CCVHNGr49wrCLS7aiZm0OLHK0aWwktvRhbgba60zMZUnIumBCfXk39DPo6enSdWJfC8oFTnC3dD16nGziT4PxLth4zbn5nx65Cszp308KD5dIjGhPwuwDZ0sa3OI4toPJY91yf0FBArEo7HVh5EyF15S2DXUooGPvelrlTqwhNLfKjVvnWEYiyL3As2yZ6kEmdgi2xby5h1ROEJ/KZcEJ1zIq33JvjD76VFA6dGMlwSnAcB2XAA1CbKuavnw0S79eP03/mN0J3ptU0l8TZ60w5iu0MwU3CnsmQBuk9lGkfIUbCJ4Y2387qqZ/SjHkr7VG6QWSHf8a6+0AOFyhD+cWrg1jkcmEsbQnKKQd8R9uYYyWzsStMHKsvAfpfB+TCWFvUbOzExLKptj6B1rjf1zTqghhxaeAFJ+1auwvfnhvwkZ4CP+QHvxRIclWUdFvfyYMmasxWQo8WHJTQGCl9BBFkidJcvPaDYYqLRJ2YZWAQvCKtWVbl1MTPhtQDzXieUM+WpLtNmYv2cxJlPEwcDLZaBRgQHgBmjPOxR4eUSxsbaPW80jepX2NA3nHH902ByoMYGVGRjPco/KU3m5daqaX2BKnj6yAE9OjPRZZQ+xVjA7vG+IBuOYSpqcZFR1G0oxF4SRbcFOwyCC4EjZ63lgLEXmZ9JDamm6nh2SloAuBYNGX6fIFD9WRfBZDFpmkwXqRHOYrwNHUtqrVqL7mXIURG8Nxfx6DrGPTO7h3VZme9vSH3UrFYr6+gIbQHIvZq9BqELiIG3OPhXkua7FmLIfmKNoPfSvEokZGFwYBUWgYfyNsKqQAVxAO4GPAzld6A9FcBVFK/jYB6XU2/+sT3GUKMDAai3nNEagj4lU8BZDgGh40Xpa3MI5WbVKryeuhYZirbqTWkP48dgtdsmjTGhJ24DS+oPXQQhOdErPSNJagYnlSWDgSKBYJ/budsH8HaMIyc/ck5shEodasIs/cGJmA55mjtoyDV4ObiZJJFjDbnAm7TMQzDB2vQqSAUlLYL8Q1l8Lx5n77tlo7S+kjiIUFBKSVqxUgcRWwSsvCwkws8JvRl+4yE6ct/jGG2QKY2QdzUMDTIvdAgOBGmMv8WhEyuhXY0kaMmXsjawdMtSJAVYQRSDuk28z701UlfU787VtY4G82B+kLKLnvIoie4SZWoSXthAWWlFacQ9JSkPHNkX6F5/+fBdlHEjq/3eqn/5Tkxw+x1v50WEg36asRsAJ/jEG5oSDyb+yOC40aiBe+sd8Zf8W37AnJ8hcYCUh+qdiFsaQnjkLwMUfrv1z6ZTMMix/ukVb4LJ0r0oVBPMlzKntDFBKxG0+6p5X30njMDQxExsWla5ADlg9JKsqSDgDaESNq45XsPnsC3QzhuQFlDbP0hQLZ/mE5PRvuoA8ogSBkkccLAOXwNF4Op+R0g76xghiUO/oipcIzmWNYaIWjc8EXD4A/95Wb8VfDR2BZuKpQhXIQauA5T1aX6ysEmNfQwsCVOCdZ/g+IcQfQuEG54sG9K8ak5+NCZ0VzjWAbLaU+xo71KSaejOsWO9TXlGfVtEUcJ4+g0aJqW52KxDVobGGkI6qAkDExlBVBeqW6wThdG2QNQoMCPZhUE8/V2WKmQjbKmiOtJoVNnYyX7kCeYG6BALIlEO7HUyAd78b4movWnRhErJOJUjjMcEeWSHgH63cTJl0knqM5X8VaUzjKKgu0pVK5hIYoW7mIeNA9kmDEsEwnz6qwVOCal1GlzlhdhzbE6rMob6R7TAZrE4RbSHuCO6floAaxgtvDLYcRiAImukTKAZ4HPMzZ+cugIk0EILgQrLeuX6asYY2AO2vTYOT6Ai0nItkAUSJcUvUbbxgqekBRyxa/KgdjSZQ50J8V6yvma/1KEWEusnO4mzKImZ0cVpgFhTJchzIE91I3huaEqyw78XMNfDABhDpKBybvYncNhTmwrIFvs7xaU+gjRsC2xzevwpgp7d/7DIajPWBlmCDcLubmqgQmiwCl7IEDMvIIsxg/l00euGAb0pD7EVJkiNnXqYjVrosro8koYUWLH3o8tzxCQIpThDWizi6AQo4SFtsqpL8EbveP5+lXS6P0D9fIUKNcvjsspnfo19ort6axwFfhJ+F7xJhW60tMhr0I0v9IQP73iMV8sz1Nr7CR3Z/3c+nzST7djvu1AjIlp2SJ1RKOU7xC1sLASWcWGQMCduLCNZ2OM9xKx8mLy9m9PCJTQx20B97AWfzzPoWWN/JeBeVn7+NXJtx4zhTDipgpl7juQ5lAjc+6Mlz6Mn7SAIDeh06b9OHeVXtYUJEJ54a7kEwFeH6GQFsuWBPJM/Kw36u8q0iiKkJ9H5IJD8kgOfyH+gnF5fLBgcPkGYuMjZFBuCF0Y9cGeNP1gDKZhkoBYVWjat06S3lEw0SclPRGeD/jnlgUbhAdgjOkaSbxiKSW97i2NY+ArVK6wgYYyAFFuQqB51+4tp2GTGZEzQ5nlcQKcr5HMEDggCmWGMjYdgjB6MZUIf6Zg0T61bG+1JgFYiRFhFKOtHgJJDRhoLzEArDVdlWep9Vwr7TIXCNlW+F+YHHUCKgXcFMiwAnQi0y+ou/M8xJcH8ZYp16rSgDVvXnGCIAB46rpZjpSxiNCXf0PeLiG0AAZamsgnZG+BCPwBDx9rUa99NmTnXSTZ90B1AWf/WPKFki9zywpQEChK8JiqfB5ExcyN1hPn+OySSmStq6i2t2Ym6Z+BBr1EUCs+67vH1JTRW2TNTxWXw/RenUCmJY49KiFUovaVhk728AlYQY+MRXaZZhRo1Yki7qDWb5GwP/W9QvAiS96NVbLO8Zq6gLPE2qmLl3aYrM2MnPApo0LVVvfTGPws0DRuIi2EBXiuFKML0e8UGHtQQQ95l3iBc0ih3GpcAWOWdPngbQWkq4svEWAu5fVKYpmDRdag97DHozDMWQ+0RZjLlHDZZFogbnbnqUg0pM7MjShXhVRloJn6jxnKCI4WunN22BgKNzAq/EZwBjwsK8SRH0V/HWhsT9mC5q3Thbpzfo4/T5LS15j3/zvkTUmbBp0oOILZSPOGR1iNTWFNTD4P2aU1ZxM02+vD9MfUDP2t9DC/0UW5RJw3JChHBd0o8B2GGHR0kooIcamEmWo4EenzvFntBAClvv9VqEWCh8hH+n/oCTu4HbvU0CLXy9EOxCmpBrPcllrNgSk94Nvegc5CHL6dO2eStQ46quuNqCN+8QcPT9Sl9g2FEhmaC8z1ss0fA8XWkvbWi0VZAS4VSzgNbaukT6AqQpJITFHCRmvUwnF2j+U5oz4pYmksIG4p4TAlBS1yOTtiO8x0pg3EDdDr3GBGcOI5EUtagpV2ZNwgtIcgE8FtJbqRiPblKAD/7rw2SV4Y3hKMVQKg8LF5ShMMwYdiPL5HlWdyPOmwW2ZFYCYxRviwrl5ne6ddUARDENLr1a1EDg5TP0ls6oAKJcFVNnbxoIvyxnUnBXjU0xoiHs1waWb8reM5ZIHQGrn6clJOuTefLg9LsKlkpy0f0nhB4Epqbv4tY/2j9JN3LcasYhDKKrQRLgQHHdcxmYi0wCHzHomdKm2FnEgTFKSDGSm2IWTNo055dACSL70zvCE4lIQhTBYY0OzBsSQ2yHzBSLzvFfTKCDKjMcYnK6odCYb+U/hJ77UxmAEGGWMEkH9eT/d33nGHNqxm2OT5EIVwaglM6BEZITgLYPEKxTRsrolrCr76+zvM37mBuLadTKhrTWIDyJivgeHh9FnzUJPdn3tzE7SMcRkoH5AIqSBMIQKcJvRdIzymEyZ7liXinqt1DlCuj4kJsEWvCPWeplkcT4KSIlPl82FS4RWYQAAQABJREFUzz1KLrSsGoxB10GC83Bd7Z6wupm3rKGrajZSa0846Y7iYUV7CqxwjVBcY2iHqTIwCRhNCbx8JqwVmQLYqXq0MbJ4CO9si+/m3CcDGn9keKkBvtv4QR+Dw48GxfQWgv+1NQqb2Q7lc4TW2yxrOEJv3aEnGfQUWjaQH0FhevgVSLxDGcl/3S+nf7ocpjeak/TiWjm9Pcynd0YILumW8cjUjh9wMFbGSBtZ3VFGVTFPxqQbKv1loQDc4bifBxCOZruccQSeVUbChK8gW0bCC+JxzrFYPiSk39E+dJqDVkoI07BeuLnAZyvkJzCwvPWiMT7G9DE0h2rHE8FbgckVbu6EsQ4PvIT19XxSSH3crZZ0AZSXKIJ1lKAZ+gNcNDfGm9FPlb3kWxgJDb7X/VqSFJQurDu0wt3lYQvas6THUhjXRUq3Jna2VZ7EJy3BqbDLr1luZ6hFHYaKOBAuwEL38QJF6AVqKN2FYSZAoLNLTeNWuXSCV6ahg8Sxmhz+IfxD/7BkKj7aOyGjhxsCEl2hviJ2o5R2Bf7JySkLZUl1C1QI7fiklzYwKZX8sya7KgawISAK/6rELixaM1Pm/kjAC62OwMPsmyDJ57haxjK6CKtN0uKmYDtkbC4iMKZM7gTLxhiMrkKPtH/FrCHC6zKFjy1qhposmzmguHEdgXWK3ao1pks4YhbWOJURTtaSaVWJRYWriDFoyHCDSiJ25cCED8AwDteCEo1VjPsUTkIIdVJqkSBgHrqZEkBwCUDdPToNSyZOD0FIS8zgJIhP5pWqdXOMT8QJPrhvF4lflZhLGUvIHQy0sFx8PGenghwEbfZTK9b9gwyMAkBboh31EkuRCNrzFqushtbL46b2mR1ZUjI/XarAR+V6GgL/Om73w51j2iCKAZMWp9R2eVpPAcUA3uEBSlDM+NRxDxAZLGtamrHF+mKwtKnW1iR3uswDbswTjLdWx8C0bKXA0PWDxjKrGvybaHDPd9PrxrSQw0EfQJlmmYvlG7SphRlZXLUsbQfj8qwEKn2FwFM4MBKBKrnqAtA1LxrlXpMFVawrM6oGcKktxiMopo9ZTP1T5PJvNPLpTq6f/kllnh5QR/eJrq80CYzLMIA1XGpv43Z1yji+TPt/huD6uJNLf58s5L9XGKeXCFF8d1pJD6H/2/bN2AEf43WszpvRof3L4g5l6g6dJop0G3X5TCjxKZS0wthdBtwQUp4RrnXCFs5rgFuq1VpACcbaSOaskpxD887f5TcWD6NdA36RdcPcqBFQz4OzCxgNRRZ6P8LYaLspIM+6ywTdcVYBcWfo9jXGNUaIkaNI68SfYwzQvzDW0DIpFl4NPN2n4HvgWiYyqOJwBt608iyxWCCYLrEioocFto4lJCxcAF9HARqAZyGW276kAfhxoToGeVpn2OK+j3mN+AyMzonfCn1XzSzAY4HYcYvF8Q3oG/QGHC9g8VoWRY6JnSJwReGZtRp7jDGXKfBl5xCtFCQY2rYIww5d7Y3p6Y6KOawe/VwXywJdZqiUhnBZh/bzDm4G10M+YKyU9V+ZXNeYFQBhTsRtCLziPvRAjnvleBqIJ9rK0NmCVpGBFGbSliiYrbC9KGkA2ZYzHMGwxpcI74dLU6NgtQTBGD8rERepORG+1yrwZ1+M6fnTjo3JEOptsS4bZD98hsFkhjoujH9NPrheEB+IInSel5l5PsoZGKNiREVgE3lcaMAZc1RmqWkjMEunYWk5eQiuwJy0Lse0t80GdG7NMieOY2W+MQuZrVVs4X512GSTmCECbw6mGmjSBgxHBIGFrK6nYs0YDFSjWV1fhYaWUQGBnWe1fBltqbt249I6zInlhna8MK2l3OZ26rKsJw7lhPh77Bzp9mztLWJqEFOZ+e3ts9jY2BZSYE48TeuzxlKZCdc8vcdDct2grtXaQDCxsRqEel6JrQ1nILqJQnHZhNneCe0MsJoVOK7ITwpMBGGV/omn4m5moQUFsi5qFY3dEenAK5IYwE6YRRU5MRDRaiJDwdmkPITJIzC5zhwb1AdpYRep12rXWulnMOrHhwTZySR+iYrbF3MjUvzV9F6hnk5QMDUj1NCmB58odFGr6QUQOAaO/x0u4e+iSH6tPUl/wEL8jyh1+SuC/FpI25iKkECwgGOEEoL53aFWJSc8pK5wb6UMcDsN18kepEDjsbhf0H4JPnD3AYWXgs5GJ3BmhADoixQV9A/0aEPlbemQpQAmRWI9IcbFbQwB3d1nsKRw86kosUAoHYIz19X+ag24QsOPtdQpM/EINysHDOsoNvboKw7SRfgtDIxD97FJI02u0FoDjJcaiiifr6VLW6gGYH61tkjXb91KdWTC5w/Y3hk4XMVScucWaoHBCTREu8KohydV14VjdLqsJVY9TMwsojgi+YKkk/5UpgpPPasRbq2C8RaF2qi+dIzCUeifUJoy4aYa4yrW2mz1K5Hw0r1zacgCJi64MRp/DYJiqAB4oMf72YI0PQx7cXM9AG52Qx+4jMbKI/QqMJomrff7T63RQFDJcPq2YCBOBG6yrUgdAm8Q9KwUqYpH4zPnIEgJFtjSP8+r0piQJmOOotZ6lzoxkEi1J4KGL5iQMZOoT+E2md4fY2GSlqSkQPJqZGa4JoKtnnd+FyDyOv1MQ5NxTUJCk/iEgNS6MFIxgjANusvYQ5iFAYVWEDIuBxKwSrAl2SwojhdERLV1t4cJ7s4EbF7nwRZlNEsgFYGpBDS43tBVRBBbVKp2qZAxqQJrzfY44BZrskS/ZkU98dq5VOU4NRP9a4kJiyz+AwNQb3UCE2ttDohhyRfiwn2l5ljMqzm7GWCVnbKioUItnMH8GvhZMHZAgeVHW6jJJZo1SA4GQQ5aFZI2UBLuSusKhCIFne1JMa1vbUecQ0IdA4siBFODedY21jkZiiVNjE+Ilk6OWD+Ju45lgiSIONdEN5ZdLKNSGuapGPOi3WMU5+QU95dx6U5dYEvqJs/5foRVc3hwmBouDmfeLoHahKkmFD/q/v2gwC4ewOzF+UF6ZdVLr6K1H/DcL5jNM8C2pXXgeLhm9qvMWL6G1nmAgvkUN+gb9P1ibZ5uc4LML0gQ/SiS26t0AeBYXGlNk3hiu96grUjuKFn9gQa0YdxKSffRBcruS5UJNdwphNw873NhW4YFY0xXfyeUsILOthAKUqpj1DodYIU3EDpb1EUeYQDs8YzxR/EyZGG0dD5iXOtYTV8lmNXDC/kJS92aCIqhQg2aXBLMtv7ODJ/P1aGp1kaFbYrhEXj4GzevoMAOgVI+3SXx9QxvBimM1UpYCLoxoTG5f4/dQGdpnSxzEettBS2skQlvYOX9+N4e8oGwEc+6x5jeSp/dWfcwXLabWmNwEi+Fq6tGLCpWuE7AmdnuCULuKeO+Tny3BdEeAE6tTGXQEMnmkp7i5uZWMKUFdLlTTOx6m0AuyWA/A/RYfhIsQqMwWal3gteySNsb7E5IJxFngOCLuHlhvipIaDg8LyQr/QF4BAjvNfvNvulSNdfoF8IsH7Mxmot7myzcjfZEd/B7aBHRivSkDZ4HePr11odVty+BdJ7gPXiK8SqiBjuPeRrGRJrbsS4hLaiYmQutOC8+66CXGcPLl++w+wLEwlWtBQVf8YRlt9DQGhZKJph0WZg7fT/FQtoPJ0EhRQcAVtdYF9AxRh/AQyuvWN1Il65dB+oE2WEuY1grhDfwT9tYCz6eJ55krINMBvND/ACjiAtiDa1jQSxPG2kDaydnASs/wlNYFnvEAbEUpgiThYKNtmQcx38Rt6GE0Fg2mrh+7kABjPyeZSo5BG+pZ0a1SRYGWxgCi9njsjt+zFkYypiIYIfRyMpOFbIsqYIaKXvBIqUfizOFuzg7PTkG1o4dg59xeoJzCc0+IpniFitmkC3crY+6acJDEqeaN0/KnQ3YcE3Y0UGk0O7C+CjWXwP3rllAwOM2nJJwGHI6dP+UtZ9ITd26NoH2KRah26tQmwNjnEZsxfhJi9OQpqwRfVBpp486i/QKk7+x6KU7WLR7rB/7iDWHHxPe6GA53eE76U3jep0xWh77JwjhW6xB/E5jml7HrH0RgfcJsPiBGp8xXuRevYis6BKcCDeQGW6bwoY5Ktyt7o5iUWCAUcwcoRPgbWhC4R4KVYTyiCUBZl51o4WrcR6uRK2UmzleAkt1+jgiU3XKdxim3AcOpFf6f4Z1/xKlAK8x/wOEwUco5E3G6nIkhXwNK6qMUq6Cd/dMN5Hz7OAwbazV0lUMqBohnU3CM5sUBpYcL4LoFHh9ykL3Jd6W6wtZuwFVkx2EvrcuZoqnjBJZ4Eq6MN8j6WrElmKvfowfhbDutxal+7NZwuDmgSUCijV4acIa4gGWlfG7EPPAxXj5Y9zAEHw8F+UeANNzUF1qRuAH8hHI/FjZmm3o5iS5wEtpG8IHYMXCYgYmOyIJgglkWhnIdgyyurVwpEt5lgiSuIiXj2gs6UytAHQIIj5HDQ5tuR0qD/ClFgPIkgZArkITcuKVPWvG0XbFqkdn59BeIsTxynoFtTc/TAUCkJRo238gViLxtJ0ZpQWe+VcGSZcMaqMp7OdcYJEZCDevuoYbFGMxtoK1huvQJJvpiOwhAzOCTIBLQLRhv46ECtyIXd3YQGBhdbrNbQlkzgggmn0r4GLZxpxdCijuYu0iggXmy6Hl8R/YnYBN1dihcwGjFBE6IbDsmHk62eUA4QOyC8Y0SFIIe4n8XIFMnxHoxwrOISRBUAhuoE19GdqSRd8lrT1iawaMxaXbx8gwmYvDZmrEWvzcP0AYAWd3h/SUm5mxOKqnjXMqZFfEJE1zT7E2lsQolghXhduK2JAxRRMVVZ53T3BP+lEjT3lWA7GCe+BhEH0WRQdFMJ8iCqjNPmcFlJFr5prAZURYwbifdrdurRrc49bcXUBXpQT39lcUFyL1qmayUBDobzZ7G8Y8votd1GL/tq8gjG+yPvHXsRheWUvUdsGQPeiNwSyh67oxFhTTF4Gj8cL/lTWIb8D832Kh+lvEuF6l30/Z3voHhP0OoPNr4KEh4dGv96Otgiakw6x2CzxJw9wScU1gzXSDpuQhUYl6iGsKa8lGqziKNbl+DI3fIVj+IkrXDRJ3mO5I9zRjh3juyN1RsFp+G2/5ZeCwy+cBLb/GISHu4lvAwi7CE25UabZyE2XiqoN12n+RlGiZpAMjR5Cw2yvHh7FKDx6RjslCYtUUkORTaMxzKHUrpwgrseUmBS6Ne4vM/QIlLg+CIkIO0DRzGRGnovAAAYbSs01wrTWF7mTHXyxPdv3YYEX3lOyx35WYozgzdgd4kTV4TvCTSpihY6Hm05q8YMQ/AqcwnQynySjwlNwiQsJUeGhyClBdxzjkgIblUgca/Hn+l8uKCRcs0jDvFDC85VkRRINiD0yhreknalNoR0FpvCBbquBnEEebIjgqyGMsPMu9oZ2MBxGgNhYiwI0HDLASTnb37A1guSUOMTX6GYEFF3uqRfdOKKpjcfUFEF/I7RNoY1E1gUQaggHsE0LH/FYAeCpzpn+NoZiNhIE9bNJ50KsZ1jG+PoW4aAbu5x4/jzHFhyJl+ICjwm6nLpZcHHoKEnMQgeN3r3Lh4XbErqeaEyCHuulfpDIWxq077XxFmpoa6DAehXNWxyROxJmvCPoCM3cNzUAMbHgexRr4dMQ0zS/aomOZwiyoQs5aLveVoguECuEAhKua2ILHAlqtgGUWx3OBzxzu24CF7QFzC2I7WNa41QbsVULusT5lXeocC1B4HXMQhftxuaayisVXwpIuRbgBnOFmJIo3c8ThjGtoUUjRPTKaKg8aShMsJyvxDTsU0HjtNpwJTXoM1oKarErQGQSOq6pSQfLwFz3MK1xlJtVG26+oW/urfCN9iOD6RzDnF3FRvkWc52vrWCfA/n1iVjsUG7lsSAW0BcN8TZqDUf9PXKbbCIJfI5j/Omsbv0hh0j3iNe/jvnyK4NKSaTN+g81aBmaBzdr6ox2lRWUGVXyB2XiFF+K7IHAePOMzmZXgCvSZS98mE7oBPPbg2F8QCecMFegF5QCC20g8dxa53sZ9I+6zgTA9QEmM8fducmTdEcXfD06G6Q5trFGXdYuYkUtzCkvcPGivxw4r7lf2lEz1iDkoEIooU6vuc5QtOe4i8VRr9O5jAWtlDxFMY9xukwR5Qgpuh+NnnIaYaY/wzhi6xTtkrvA9tOee/kLCjLdWuesu5XU3/DxCOVl/Kb+6UaR/5X8tfmNb0lOVIlRrVedY7DnWJmtZBjBhVe+PxvUZ/clAruGTNRJZGyfEFYkjlkPAULQfP1m9Cs9hwhGOtTnu4UvtYz8obPhz7t9HL/xSL/kTFspZ32HFcQ3+Y5CZBSNRy1UiWb/e9hR+C8YUiIfI1QS2eIR02iNYB53BkDA2Esj0KTukRJzjcpnSBXa5PMU0tijWGpJYgsH9wMzRhDDNtCV90rYWxwGZOYlKn+kQhLLTCouv2YkB74asLgkGDi1gP6oxrk0fLy7WSuG6hagBYZoWws94QMwcpvaKgWWFplkUpBcviFkhyvwswlyCtWxJR0ZcoVCEJ9/zdIxf0AnJrJRApGdaKmuHu4CBlqYvN+5bIdQNpHvcl5aXgi4HlUFTzJeiXdp2j/Ps5GbGi4WVp+7HsRoqEPYqOPEjg5rtKyHsivlst80a2ri5fTmEqSNbHHDqyZpxLcIAjhOra8UBCbm1TYQrgpwM6gwBOMW6DApzZYS4IYtssmEJownHOYFlGaXLDp5uqWycKGKc3OOSsclqgKtB+QwW1pRxPYUhb9DfXYTyJpbj3mkhfU72agtcvJLrpZvVCYFsim4R4E8QXp/ATM+QdjtM+VV6fAHh1YUo/u9RIV2hq69xLubLrWV6mY2mnhMz+oxyiJ8ReCbeTz9YhcAm1DQ0A9ZQEODIGJIYF1/Ai/8oEO/jPdeQiZSuIPy457UySRPwPYB4P2AsxzDiJdzeNvRQxxVmj0PKLsiSYmHe2FpnO+pi+gG7LYxQPEA3tchmv8AedN/YnKetIruYsDnAlcYGmfBJ+v5jNs5kLFrsTSx+tyVeJ8kgD+1iTR7QDkU16T4C5FUU7NWLOL8IT9RalLh4yIiCxzM8FUI9lHsHurjM+YkvXm5Cwyxeh5YqlCMovIP+mZuW/BAXXqWuLoKKw0VcMgdr5kBRCE2Ta4S+YAWFnzwHDaMJXOI3gJ8pb8ncNsgnNG8QEo1CJoCOH6WWlCxbcK/cDJz9yGUn4vOgRWzwSQGji6DAybQMJKbQihZFI0zjrUzGq5rKzCbeKwplAiflsgoRy9uwjOAg2vMxmc61YlmftmYltXzu7gab2xdsHaAWKbQkVsQ2wI09Ym6kRg+xfi6hWdvtUtoCGCNqR4w+xhycj4LNORmDQuA5Ht3XEOB870ku21eupsfRA6YrfjWiJ0JQDTYJjHVpPKvruFElNrN9PfXJXmVrzoy9wNBosQGlI85FKDvXEBQChZc1Za7vslrc7GdsfKdNp1XlnJmraw9XBCgLMGoI6oB9Bg/NqBWMR4qWfq2KR9cBL5/XXVwRDF96FDmIQqkH3qwxM/hv3ZuWXWyZzL7z4tVFzhmD0Ylw5h7HHgu1GbsuPTcigCWyjPlMsfM2cGelves/3RlhTD9lmCSHG+EKfi1AWmI5FYhy+sB3whg3iIOa9DHb6HpTl0MVUCzB8jIPbbmj6hg3dEa9WI8Y2ilwsz7JNL2Wu/Si+7nA7QfquEbl2HWghntdBO/uBPoMGP05x09tE9N6hZUdNzho9AujTvoSe2lZOvOc6T5HQN2jEv4pfd5grB9i5b3LLru3iWe9hTB4iaH/ZsMDerkfK+gTrLRfYHn06N9C7HXoBvAAU8ck4IShtIJVAeyoJoj9vi7DpVeZm3E0FTM7SVMYzcnltP8SisDkQP3KFWKh5HnZPGCbuS4RKD8ly9sEnq+z28H1AiVDeB32KC76fP/5KVv2cOrNf7B+gb3hSQBw7NoN3LQ5VvEQ2nh+NEzPiVN1sc5/QkaaHAzwgLakIcYzglanwKLEZgW6ZhOEWg4Ym5ySECaMrU17L1/boPSIcaKE/t93HiNRiVPxvJuBksNAIGXCJ2o5sdZyhoBIMLiDiIYKLBNJLkNMmUxhFvi+I2rIKNdi5Q0uuxagRAnX4O9qS0g+vJdpaUhVy7cQioNTWNg4b3hJuz4rw0WdDpd17zLmVoszYSmbvz7iD4/EYCKjxXvbdpQi1EH7Y/bENnzEYkGpXgvP3rSddP2KEIYS1/dL4hD8cagwBt+FhUVtGATQRDKvrBiEp5yTAynA7G5XO4dSLMgrQxw+7Nhkfvf8sffzRayO0t6zwSLsGmvEAQoEBhfpMunXO2yVevG4FJvbybtr+OU31wmEL1n7yIA9Y04hIr1qwq8Rk3FdpT6nAl0loBuYwQRY0EiUTaC5ZfQlmUzdNk12NbXBT5G9IDDsYRw+Swf0B34cK4gxTqBC0DJa4o5pGcYRV86Eayuyao7JcoZwJ2UgiNltmRe4DzlLRwBL1AGhLefAyyLSHJZfoUJCg78G2D21O06JpjtLT6IGCQFniYNHvgVOeT6C04xLy2gFE+WpohavCmaZM8aJIHCnDvdeUiDlCeTuPXuaPv7oQ4Q8RY5MsG38D0aLHTSYaxXB1uY7kwPuJ2/VvXRrAWS7QOaZTKmbzhH5YIfZTsTBjJPUGKuJgAZWxgtYXa4//RS4/owyhjz5+ReIa17jQJJbZApfaufSr8CwlmMcYPEc4p52sMyesMHjn3CQCeZF+irWzGvovusUFN1ic9lvY2rvg++n3HcPInjCM9KgdVekGNNd/Jo1cHgJ+mwB+w00R5tr8pY7pJv+qGOhbMLFHcZ1AO3PgPerUGntYC+UywSa3QSO/4D+2gWKgvnnAaU7bGWx25unfQ9zZY7XOKb+LouNpeESS+G6HALyvLtMn5PE+ID3VWB+DWtD2v0SrqA0555oxgxNJnmghbWOekxRjqRlDv5pOuq9rrDJ5jY7Ydy60oplZF3ox8N1Z+BPT8riW2NuJn7M8pk0kfbduilirn5vW9Iub5TnY+jHAu1NitBzuN8e72VJjKUfbEfuVBQaXOGvMSpaRVpA8DKwU+UehVlUGwNozx5UQxCjjIkET8JUygY7lgkZWjyXMRTtxRUmoBACEPAAQoe2gFT0zjWHEBYOiAlrJ0SZE6e9+A6m5X4DozYT5QQSqV3p7jAhgeCPDGxBrLED/8ED8bIh9wFCKZCCx4Kg37rj1dzgh66cLm9k/mzcXHJETiHe5XF56B1kCCMB7XVmwRtT1Jq/kR0D6VRshIWoALTAtYsG8jmGm42H93mCoNE+rWgdxPIkJZyCxhdIBhXxI8xpij755Xsph5efXSLlmMWTCY5YwgHhu04LyHAPlisYMstTQFhJpWZZFRpaWMLMqF1OQYRQdT0mBTnODCHKXCC6HFaIQhCJwn+e5flQMioz4GjGR/xmeM+YNAoWaTx2ugim5RnuX9kHBF4ijqJSWtCuAm1Vzpb1bGAtf+WtXwFeCEcgNGF/b4YRNGDcr0yywSVfNQTLuhlQBNeSNbFF4m95ymRWXRIGzHPK9TmMXqYubE7cbdE5AM9ZzdCkSzURsN3Q3WxyACgxsicowQf0pVt+SYbGZd7CwriD6/gagWbXd1qaMgaunNSXOrhk+4DkOQLNdXc3YIQ7xHG+CJn8BkLaUMQhhDUCZjXShUvqrsyqCXB3LYjvsVyaN65SV2YWFWXCfY93nnPKE/v1M451kgovkVUtkWSoE7O6rxKDbtzx90NWZjw5wkoiVtsiHnv1Yjt9hWVa1usNwflTYrZ//riPkF2mv+6TpafrKyjPV7AkicFT6I1bDfPVyQoaH5OePEkKagS3ZADpK85cPAu3uItFrGGFB8Y8+9Hj4/TibfKY8FAZQVWhGFRrrA888nS2QeZy1I/gCryLQASHKlFIh8/UexFbmxOPHELcCk6eigXZJRURCqnV3sQyJxHDISXWcWbEDsHEPwmOn/gD8IMxzgSXDEFAn2vMKf5iwTDBbI4yPV3BKBlvyyDcawf8z8SBbA4QfHEvY4s+aS0jcK75jILSeFJIXe5QBsGOwdTu0+Miy3Al+U6wGtvR+qOVIGYuBQMoru3Hew0C4gLTkIjGZJ9upurpXrpCqvw5pRwNsnMKEjlCt8ioX5RMqB1pW4aRafsE9mcsbyH1h0DEJAaxMqnzExkuMXGkWkzOVR9e5AANCJOlDATkVQoKNYZBmwg3njXQHq4g8IpYnYyNtWG8KKr2jTVxL98KNPbsgulleIoDl5jY2WW+C8EBJqGGBcwwR6i471RYcADXfexXPLsyFoX7YLDcU2xC0MEsxjbCsmMeUbCJZaXVY6GmBZfTIhaYQow4Tghr6oLc5kVcuuazgLUhRSqQnLPn0CnQFDp5tEQRAZrjr9/PrftjjZsWdaxXY67CJTKSjNG1ji41qvByqdYCF1CFY0xOzJshNnNpEDlndhgczqZsRMkcrJlzLZoKvaELiitlMiGHlTahrRyWmnGSSoGoD4I2Fu0zvzXiZqzWTDO2mNaq8pTrh1z/zGVMI/bJL9XTFuy9gRVXpC+X8VwGPiWYWCbtgCc8ozi5eAL31VjE22IXCePSBbIzG6iEKZnTMYLMveYveOwc9NBjjjm+d5eQCwgOigYIlFOPx7OnWMSXqK26wWk8I7yLU3ykQxT+j58SOH3OIS+X6un2netpHbfX5WgnxJE+Jd72MYek/pC1rEgQrINKukP863UygyoOT1SWLl0oXQU/TcaU1TyqniheAG6ucZSKtZJUouIpLGtJkzlbld8nW+jODipJl5oZN22SdR8hkC9vMB7vRQRrTJxy8MqEeXdNVNGe/FpzzCaceF7lG9vn0O4A3Lgd+fYVTpi+uJFOcP3Xr2yhNNXkCgQAEGQAU+g+RYwjAlN+yUCZHGwCP0PkwYQZY8pEWjoG2H65RQlNyrgRbKRxMyKyGmMKQUdztMfgJDvuM3ZiKtRz7aBunoXQuUc3mkfpnuv8VzDxkQuKPP45Lj4aM7PA0eUOvUcPubKGn47LQDsfdRdpp0tqlCrdv+FYoNfvT9NdjueezNukuh8hsL6Xhpfvptzlm2lAQDYqvhw7AsfgNfCHuegb4tP9mVG0uP3Vb6X0sydcywr3PLDUbW7AecDOiYK2tDHbTV8Y7qcfk1mzWM+N+kJwYEXE3tVORmHgrICrjCjM+BJYAjFNacCuwFkiCDIhzZzFC/f7LIMKfBjEF6JhwQK3PM8oeD1nUWGjcIxiRfEHgUVsLNw254iAQZBZIiBuAGVYrCHAaVP8GDsU2FqRzi/LRqpUSE0DFwWeGU/dXAP5S+vE0OLIRdpzooyN0okiVkYO3IceC/fBTGT2nBaaTCGtxLY7jC/qyXjajRyXCAjJ3Jia8yl4JiBjLwCHAodWCDuZ0PVsCkSVrevvrP5XQLkfmZ9d1J7jpVK0BMeYpQv2l3CpR095WO4U/JtG1wqK3TQ5EGQxIGmP5WaQ/wkuiycDRYaUe6xxymEhzrHMilhxRYRcnnHN+JzjKKwlyYVGcx13tsDWLzvQGUITBSGRe2SX411nHew2buIF5qdVUifcIIXfp53nxKKed7vpwWN2iyU50X+llb6KNXn75jXq7Vi50LyWHlFU8AyX87NjrMbtBkWhs/T37tAC+O/tP2fFBNuRI7zq7L3v4SBz2jOOyMKAwPeuwXJwjYwGBwAYGLj6Y0xZCQV0sbFAjhjkSouV8Sq03KjTLY9+/uGj9Oh5B5yU0isvXAAe8Bx0MMTKOqUQ2yB8jXq2PAXjrY1tLCcENH2pKFzSVQJ3Ew5Oce1rlZKVJu6+ykjxOSEiPwT/82OSNgJEolOoKBDAeAiCCHpDKEoMrkKk/pfwZGSsDwsTFROasFwOgURwN3OTfEZEQzCYzVk8KKAQklvf1iJQyyNkNOMOmpMKPy0E3TLFo4PNyDfrN4ieW7iZfuife80ihGCEOE+P9tPBD/8mVbZugpAZxYG59K+ez9J9gonHSPkJjPbffzZJf3+bQjw0VhnmafQfp/TwaepuXk7HFNG6Ds+1WlWYqsfmfrpPIWQkYmI8K9LFJQpKf3PrSXrzQo2F46v006fz9HsvtNO7LFeyhoXhR9altjpJL/L6PvOjuYCbwkc4K2wD3s5XyDp3YGY80NlqaXhN69J5ByMrzGg9u8PLtgPjynTAQy0mjrRQlSs6UjJtuMq2E+Y08IIQHaT30CXz4xoaVQvRUgZH5C0qC2+K9/G4jCVGwAttiR3/i38RFus2mU+MSyAwFgWPcRtug3GYH9oTIPOB9zCIW2sXqwpt6BDtq1uYI8BehCmEi1YeOjzGlINoo8CSMWhR0wqEjgus8NY9ZayCMSxRmFRhI7NKWxkt8p57HY2V5x5tVRQ3wkk4IMSUISusqdIchsJfmkIL1s3lsHpmlHwUSSLozQnbBYuvV5Z8MB5DG56VuJhQJ8YKh3z/GOWGNR4vqs3pL21dSit20Hh3H6tGKDK2TQ7ieJUi2bsk2C6Rto+4K/Nwg8sHxKPun4zSHic2zUgQrJeG6UsvXEvbl7+QHij4GecDlj79AmHSOcb6xBXdpmzkjS+8kq0eMFYLEju7u+nw6TNO72FXFMoyxL/WvGESEzSoGCCJNQodaOF4xZCFRkrRKDzjMY5kxthgO0Ij5ShXGBOcdweIg71B+ovjx+mN2xyY6jZH1H6lPIXRCO7GtTVWwaDgzuolpRXXzzL6CJucK8UwDlg3vH35CrRIyEJa5l7DCcZEN1lOJu6irMHMk7GjICoJnJeBz8gESKBqdIlEzRbakeyYxECRz5jPEm+R+yUMtbUuV/YsxCwweFbOkK6DmSQStLwBPZdeaF3pOinAvF2iMQkQiyUZdZQbnDFYxFuwBCxKLJD+9XNk5wC0wWDQxvqwefoR/t+ff4h2wsJ4DfgRTg5C3YI4/oy9y4fHpLVxV4ALbWCNfXofnQcSed6c1RVez3lZwuC4bReSS9euv5S+zzFd/9UtlhC4O0B3kJ4QI7jNas932e5E508Ol7EtSDWWE/MW+vz42yvWv8mQMgpPhKBXQImHKDZkXtoviHXJJ+7NxBHw4IFINcv4fgBgGXRtS3xlAiswSocKnKgmZgyh1XWrHJfSEEaLmBdcGEqL563PAoH8hwm5rqluYV/EFUWODfoo90WiAwJzNlagu9sEphauowzFs7wi1gk8rKAPaNCeJGG7njIeYQcatGxGYXb+2cNaFQZa8MbfPKUH8DB5hVXWlnSokJtyUs6KPpdU1xtL9WSiBW7EDNeooDuKZRyEBYKXML9bU0dfxGCkSbeLFr+uX40MmbSBNbYgOaPCLeBKsuAzdu2Qk4yd6SprGcw5VXneZdE5FsKAjGUXC+wE2j4iWL+LkLu20U4bWy2W/WDNdHfSd8guXpx10q011iluuyuKgp2yChI5nxygYNkh9N4e7uHecboBId7Ybqfbr76Y1i5eTaPmNnvet3ETrc9CkDP2DRIDF+Q9+NjYnIdrVMjyCuQJLq7nTr7wxpvpNmN6+vAeVg/nBBAPchcOtmvhEBpvhZfATo/wgGcDCGZpd8n8O6wSwNYM3gb7KG5qt9xJV/yg+C+xhKmI5fWMOqy1zU2sqW3q8WgffJSxTGvE3MKdROC4NlIlANTtgGJSk2ZaWsA+cB/opX9lhrQO/sAFX3ODfhQX5SW/luyUGcFsfM7iMUwDkwcZFvj2jZ3bQha/sikbBMGKbOgAOysr2gNgfuczmryhARmAdTvepwCMPiQ6pKi6O9qE2FTMWnFaB5mQc36s5YLQ4kh6BJ4Czh0AuAGAKgSYCz0apD/h/ZjnL6MOYitjEDvj+THP3IIoi/hoLuoOFwqrKle9CEOoW/hheHN8UpQH2lrGtX2HjJlL2ptGECOcZMv4HZOWkq6j1iY0zHAQyBCrd7mLYmgLmZzno2SCMXsvTwbSA958ljFiBLglLnNy6QXNxXh8nKHYOEQafzIhJ1yBl3gTfjKdbnbE7bgWsT3u8cfge5Sa0ECUjNCbeJFwePTsx/d8f/ZJFMZXtMnbgA90TGdnJMWzaks+xsurQZzey8PhQjIPrR53XDXbGf1BelHuwGe7B9TxnL0FDhwGL5MmkVhQeNoP2d+y5iptW9SZw11wDV4W/wAOXBdm4sWG7c8n3WO+AIPSJLCRbsCmg+ZvMAXXaTSUXoGYit8bHuBLVgRw2AaFr7kq6/mglfkppxfLsAipo84hFv1W7Ezyk589QnBW0iHW4ZRsS5ssl2sl1hAYL8576XVcshsNrKomtVLG3+CXLnV7P99FQFEg+PBwlCY7A87knKav372Urv3619P6tVsIqM3Upf9dxs/JeEFPLke6Dh0xvAxiMoywP5vHlOPZ/KDuaTGONsW+8uH2BZIOPOcuE4fUFLp104zTjCYU3BaNLUqBmFclY4iMu8wecDUKUlfUtbmkzix8DatSXJgJHgPvcZUzNtfaqchGlW7TZJ2P5xZquy6phSvAC2E1IWh0nUO5MhbxHoXn0EIZ2ucTOBHmMQnoQWwxDe5VQWkVYiphZvOFcSPjAR6V7p7pSgzxifnBrRAc7eiqFZCOOU5EmU/W0JiwB98rSQ3yup+6/jikyWV+B+HzNCPLAq8SB9kyBRuCx5Odo4CSMeiKOGQdTb/mCfpn0nKi30C9tlzClTTFHQWN9Be7PXKLbVqm4JjnCCq1tHGJY15rMRFRASx4bzEhw4SAGRufhZEcXwABik1mG8BUSZVpV4IXCvHP9CLCTGtO80jzGoUUY5c5I3gLy7jzYsCG94QlQAjCie/P93rKtuHNBLZWhNZVCGuFNHM0Vqjl61iciyYzF+kTtQJctSwzhcGzPG978c/JMD/nJsQcg6sVFNohPPhs0W0E5YljCN8CiYWcdMB30QX3hkDjgwJPRRZt+dt7HC9z4ik+0wX4CCJk3MIxzHzpx/t8nqELYmbC0BgHoIm6JMeohoXArWiLI9h1F/jsmlEJPYQKVpqLcyPQirKhO96DO1w2D0kIQe+aSe6bsJdKgcW4niq9rLJBIrETlzZNPbpNi4/gvNsWaRGoPDw8RFfUjeZ0Ca05su4rt2TxP8F6z1gsUwLAYsW02H1CwJiTgVg328F6O2TtyXO+2iR+9sbdq2lx/WYqYr1dBodjLJcN+vzidiHdJVlwHSKosC5RN7RDkOgDjqp7cEKhJisvDrHYtyqd9Pq1Vrrx1RfS1s27UcPXq23g8lVYdkSGUdqEvtdVrvCFLByGAzCFHIATNC9d8FkBzB+hzfUM+OJC2q6W8T25NKGcw51Gp4+fyorpzW98JVU3OGgN4EpLDz/8JC0efsLe8JsYH430hKJf98RS2LlPvwu6G8DV8osGsbRLVy7Ejh7SvTzg9jbihgHEmEAXP9JkxoeBQ645phBIvI97oIks4cbdPK4HIg3yrQ2k4ikAdutbzT9rcBQYsdsgJqKaKkwdxbhP898DGgzmCkB93iiDQHNrWih8DEwzJv4DIPpR01nFaozFzjNBpqBBcODWlbQF4Xg3EwtrhSdVoEpemon+BXUEcxF2sAHXHSXf2673GXeCEdx7fY7wlCE1lQ0eBgL5HUdwg1BdKYHkf8WjI+VRPnpBi0YXJL6kfdrgarYdTPZX4SBXSySSDUONJ0WDsTRdPXeC8Ec2jhgMws0tlh2L3CYsXASaZRJtN2NkhUU2YubioPjvUxHzEpg8K1LD5eNzFmfgEdqmCW8O5cAv4CEQjdPJ9M7H9rA6QYZ0FHEsL/GNROWzIQDB4xJNHopEYkNgi++olg8FIe4UnGhYlQwlEOIrmMQhQBchtKRIhRuCNwjOIdBeCGZhZJcKRO4vICzFdpQ/+Awv79NKFFs8GDALV1FLS1oCR9KL12zaWJl3izNpUhoJuIBTb4gxh3ub4U14iT+Fq3YFtQK0SfAX9oztwNmpoIQg+f+JetMYSZP0vi+yqjKrKuuu6qrq6vuae2YP7nK5s+SSWlESRRGQLB6WbAO+BAG2YRjQB0L+YMCwAH0y/MkyDNMwYIAGJMqAbVigRXJJe8kld0kul9ydndmZ2ememb676+q6qzIrD/9+/6iisjsrM9833ognniueeOKJJ04218vRJoqKaefTDdLzXLtSLhK9/+jxJ+UFiRmbFwnAJDr84TsfIaRDTlwmowgxbW3mpZ9ZYAsNAURTM9M4zclEgJ/p/Q3O0ySDwf11UnEXjiC71Cxf/smb5cKVt0tr9Wo5ml0uT1mJNP4KQ57ZggrElTeQjPKSYvb3L1/SUDqxauZAn7mONKdAWIgvGg6xusWLN/g9wVYmF1qO8MniYkIJ0Rj0rM8zKFPuAL5VnmcW8ClyUrqWpXLqanHLAZWj7VuEeZhUECEkbKcO4MqkMmidNBnejD4QFpjPpmgymWHC0NDOjFkOqIFZ4gBJDB0qSHwnV3RT4XZwdYU+yODMX5XVTMMQOlfBID+PasaBFAjqETyOEo6ubq5M/BKPhmupx2VPnbhUE8FAP9ASyhAgGDT5zojnSg2fJuBrMUqGBIxqwVJ6SDGeqZaFJr0dcepR57mJtQJQE+y59ccO8TWBmTmBhMYzJYDYsq6dd3QHSAHk02/1U9xUlreU9yU+PhsZXyUThNFBhcRH7Bj9c5k+Dn/qyQ58rItq3tKWzwJfLDgeymZQFLP1uxjgTvgESQo7SsAVPVMdOxpmT1dg4DtNqdQSTY4idnuKFoooGnJOn6tyGnIqsCEmY+ATRL6Ib6edNfkddUFfs03MsaR/cIJiBr85XAOYMtWUUMBtfI3xO0NGX8ChTWjNWz+Ug8YINOuJbGETH5TvOeqLc+GGJ2rYAfe4prIy+6pWo6ttTg0TCY+WiyWGYtP3KT2yiKKiQ3D0tcWSAzdBe/rMdz8VQLmetjQPVHQq88ovWL8Mth5bpzUwCmwdA2JZqRsbm0fgWOFC2MQXZpUdwGqHzjjHR8yG++J52UMwe0dbZZ2TY+4xTRtgRZh0pdeYKq+xIGCOthHCES4yQDbxBy3jLL9F/vF5PJ6X9OngqGYhGLqX8pBl/48fbeE4Z+uOCzasZF9aPC2/8PnL5eL1z5fJtWulM3+xbLVm2cRs9Dn8DnyumLuyLE9JT3lUS0TFHuxDK/5LlOBELDmjsD9Uga6uql7Z1tJR+EOQ/GX2Ad0OWSX8mL2ay+S2/5Pvvkt8omgEj9ktAE5YdNrs7GJfLbOpfIIcanu4kShEXca8tQkVmaZMm839TfSIx+1FbiMktTlQwIu/wgNc51Z+lJDXHJR4yyeZkaUPXIPHYoxI2/TfnukpQXPbFwsYQS6TBCZ6PYDRRJXbScNMdLzF9eRpppD5ksKcMPso0b2iROvE0VZnu1OJtBIB9q6v2gVYGMQCGJdpNcLt3dg8Z8pKIqku7YNClTxBKDr/eaESDEXAfYWLfsOE1JHyMK5NSlh+S2gd+REM6rfzgmf/BIIeRuCCUK7mPkVoXeM7z6m8ai94ym4EJpCtHwXEIhsoCq7LUQokbwXVaPccXaQyVxgRFJfYUxf39MEIYwQRBnThQsvEpG9jcH2fzboJiRAWymdQkLGEikpCpeCSKxJeCwhhHTCdGWPD8YKrXdRjDNhnFomInhsv75vVhjYFQobW8jQAXcs0jMUt+y4j1WkFv1B6oA4lULFjHi1zGlXlAlwqDeDLqqqaJXREWOyoiswaxT2CHmtJS4DroQYdSTGey0IF9xyY5CIHSJW1y+gC7LNaUjrpFU75QmfzuWCnJtoJTimvQhth5WrAIsgAQXMhYZx+tVjVG2w9L4ONZ+UUi+qYqZ7TvO8TgPn6pXY5pM4PiVS/RvyTsVxXmEYdExu08+RpubNCPjf2xt0mi8NF3DbucJh1MCCQ8x7bXZ4SKPm9FygG6P8JfqkfW+iWN5bZwvL2W2X68nUiVS+VLaZ8D9k+tSPtAbbFYIanKS+pKx/bF3HufRBI36FrSpz3TxkRF2BPHIKbqHjxQjktbePadjdIzQMfuaXJxADKyvrTp2xlm6Va8En5EaZ5yrcpX3ThHKK40EmlsU9mWzzzDoBOiCbAxSxW4xQhHgZ1zpLA0bi3TM+hppVHXimvTNiWg4dnYHIXg4VYuMrwggyMtEG7OYSG+yY04Apv+wI/2HXKG4ztCiUX6TIMoGDGAWxZ3xDaziSmCuI5t7USb0UZqdDcRBaEoUbC+PwEgMqGYZ0AZQfkIKciMqwXRXKa4lOm01rSpwQQme6EG7keZNK0SFRYKoFAIOXM9y1UJsLXIdhHy49CaVevAm6gE2aQJRD8VykDRtrxjjUoGm4AlVHCHPW2TwXhqiye4iovGtRqCufwTA4iDa40l5nDoxw6cZIxbYZhh8z57bfPZ6XNtqGCloxEjkXkaA8ziBMtVzNDSm2MhfriGa0CcwrFD4S57kZULmBacg0i2xOftxfZ7sJ3Mz++4Ow3Fer67l7Z/ePH5aWXrhLjc6n2H1zY31BCZWO3VH58elVyhE6uQDCFD/Mh7OLSBQsZSuUYJcXz8QmmD3wHN46SsZQkIm/binVEHVqtmXKmfeGotPG6P2Ty1E1ZN8lWhSUJKeiLPnvOZZ9N0LHandyJH+nvp8WAP7nsgcOI7jahJ8On95P7f4u9ik5znrF5/QVCpIA/66JAUGgfPjotK8tT5XOvrpYu/qsem7JvkbZmlq1JzeWxchPH+KLnviMXWth7KLlv3CfLBNr+vU0i74mOJ4siU75h+cpP3yor126UsQtXiaRfLvfH2mzdQQEzsBiSYWJGMHOGK+oUaGkI/PKdv/zmF3lUAZYV5UbpIZ387mW/V7z7AzmCj7axpP7lr//v9I/FApTQc0MgOGhl+cYt9ia2iZfC8qVut+Q4KxAece8OkM1dDkQ+eIpVyYomVmXbaS+pYa6QA3/LAFwGDVtV9uNmoM1q0fG7MhGwAR/FAif12xhhZgBf+Um5rsJ61lOuC7t8I4vLZ87Dgi8ZNc46IeZ/RtOU/zcIi/Mbm4mZEPdpFgbSrO4TVq+/QAaHUmEug0obqMH6D6DkPeGJCoMJ+RHFSPGckMyjWmOu4kg0S9onbvuNvyDAy7wy2kMh/RvJQ+9F2geUOtJT3INN9e1klOG2z2I4kA9a4QMqlKICaO0R7HyzPdGqoqUyWwbOM3zzmytIrnjQHyciOqQXEZnC3Le/wKGSPhdON31qiMgAmrqoLWqF+eiYUe1WdOriAPgyHqfPlMK+qqwyxTmzkhJ74mBBXeJR2IbgPTiFGTOino1c6YAltGBwXrcYCU3y3XH/H8xo/quDi5fLUyxpc2lp1scMhzkTDZ96wIL49Fpw6yASjAAdX2QyEG6uMX0K4ohuUwC6pr/Qk++ZGmi1BdfcoKD4lU+SisaqwGmsTWiW1WL6KfFVclZp1fziU8x5hbeKiF/SQvgS1wXvCG8vU3U+aUN21v/TQNkcs8I1+fwhymmPrX+H5ZjtOHvEL62+/kq5936fjc34laDRFfYUXrm0VMYJe5kjsWIbi2uJRZbLxHhNt3fZML9DiEK7TC+3yx743HBfHnv2/vw50ezAfo94v+uNI06yIWaKLAevfulzZXj5dukzODzG2b1FmQPaGcG52oKG5ntyQACNlevsMO+gLIjlN+XlLa9H2VPSvgU/uVzrcNYRy/MMf2Iu0y2YdBQeePuv/1UWCnZJ93JCxgmCClD2J+xSOGKPpWWFwYUsIg2j8NQhTvG//agqoGm2Jul6UPmbRWGbTKzj81OwFyuIlBP/WsQqn/AvfBIfFrVnOmpfZXspSd3mO9OSrlSmDb4LL5UJTt7O7JwySX9xooRCUwVF7VVHChlChkxFVKI57svRTb+TI2hlGbVjdZaGawEwUxrbE8k8o1NVhIcqNsY1VxC0DEwHnEA0emGuc1cnWLH2IZiXOmRIP+lAVryA3SOOsmqHFtJYUqZtKNaeFoaNYmWZMygklRu4CDrCEDGwKFMVIEKX0UEcgRKKipCzKgO/nKFydMpl5DNF8rYCq1ZIfca5lfCaPnlA/mw6ESLJQLYlGsydpUB7QAeOFKaRLmogmDgx3YJyigLjaQpQH4rDrKpuo9GqGbq9hnLuU9S6FJEqi/jOsLr0gwmOysG+BmZo6MjpqDRrdDLv6SGJ/nqkbjvYDQ1GwHusHRRfQhCgVSwmmU4MSEfoo3OdksGTK352nlYrfVUKOnylP232UZZx0vNsUgulOB1HOSuWdcpIewLMFEimjh9UDcz3KHz6xq8zHuA5GKNacNYDjWAQ4XLgjMLG/2cO/uwtBUcN+je7u1l6jx+wpeMY4SLNzPYGe/3YlAx/jGAF3WLP3fQ6x7hD+wmCQmeY7nVZ3h/lQIovkNxwFvgvtsiEcHqfg1BMA80+NrB8l9RBd0mlcJcNxO8xrb7NXr8T9hJOnOyUvzHXKbOXbpZb13+i7KOkdmdXyiM2YW/BeAafmt6atUx7FlnRZSHNMnByWZTIO5YQ93Kc1ne9LkW8xkvmky4pIyXALL+zaAViKx+II2ri7Wbxl165E3lTUVlW3tl6vl4+uvsB5waQEQMLUwtJPBti5KqqfDjvdbbPqPTGwHObsIUmU0D3ZE7gzzPThxlMA6vtAaOzJesxHEp6nr9clAq9kRU74uq4dAwfcy//6JNPOGh5voBuB4rAS9Trb9FVmcjKMb1Egvig0jxK4Whu27BDYFmVNcaw23C3v8xsw1zVJxW+o0UFwB+IWaJTnXuriNIZANJyUAxMx2q0ceJ0eF4Bz+iuMkCh8FSIBu4izAaceqiDR1efslqhoDiv1Sls8jD3h0WBUbxG7QJtEEN99FwkeZCjSjCYEHPApgXFF1YFMVf55kt/kOzAhC7PeTSVXm4Zvp4/qBJxdEH5Uq8EEds5jIDRBi4AdygT5nWatFpgKoSYzAihG1ytjyIoIeBTYBVsaKAqNARE2lIRsnxGF/uik8mrwm2b1K3ujfK0W75z1WcqQ0M6ppn8sW4+zpP3RTwoQxX0lFfahh5cyLI516VuRnfwK4ypO7i0vzVQWH4JBAoYDWT/I7DWIYBrPFcbqXX1wZttqYRVdCnn/Fec02+3n4wRTqDvKfepV3iyGsmjDpWnKEdH5nEspIn97dIicPPo8UOS1+0zjdkv9zdRzGxdOYXp3+UknGnM1En8WNNkJRhhG9ZHnN3YQThnSM3yMtbmLKEH17rPygq54KdRUhfmZ7F+2ddGQOf/9zHbnBmQ3jskJQyhEIvQaQqH+8Rgr/ytG2tl+srny+r1O2WTHGs/JOHdOjTq0BenPh6vJc7lACgW+qhIqvvF3yJZrIov/okavtc3l3l5zb7WYtInQ5cohP/lCb5Qje9zReVNL9UFD25RiS4VJ79Osdso6QWU8z7weWCKEehaSR4n5yYoQ55a7DlsgasW0+Ex5H2iPZUNyVMoKmU5q/vUZUZdrSthrO6dKofCJqkDF/ifgOdlw3q38kKm8Fzh8cpbFPeL/feLrCVeVGhIDEJOB+KY5Ka/bCAxQDCj2jqjrozIA2JO4cY1w3f9M/wWAhSYZcOYTGukgS9X7XgwRInlRXnbUoijpGi7y3djqGwnCo36zWCgEnIJG+qkDm0pFU71H/HJLfWYBBmlcOKZaJgWbDqd9Lui4hV9cEGocAoXd+yVDTjKaYGp/CytQChGPuh12SPMgoIgOa+GKNdBu4qC+/wHdorz1kfniCDssd5gkpyEkvJaFzAebwkUi4I2dMwbsR9FSm06mRuMbphXtEY71BH1nXYF2UZ9V2dovgOgcMg41akvA3ElXeUPhLUv0qEeYEq54CFPgQGw5X2+1er9JoYyrHENRV+5jefgGeoWR1VP0zaw1Bd0BC/SRgtPIbBemnWEjELjMQYw6rXP3HeV2iHSg3jTDi9a0NsAAEAASURBVHmsdM5KO+s1TUwc6+ISek8waJkypr/xvIyystfnDMiHJKjbIf5pH2XRW1kl+HeqPH5MOmf2rb2OgHVJQTNNrIAn7bSYWXzmykLZ+4Rp3uiLcm30sIwtj5QLOJObKjSE83uPD8r952TXAPDv7g2SsdPMDQ/IMX+TE11/9uVrpbF6q0wsXynPphbJ+z5FoAJ8QHlP784J3nRUHNazEcAv14NcykktZSB+PnBRaW+H5VWHN8pKP3kQBGYzcugvXcED/xxUzxhTxFI3tVI+03kRbhkIVFO9eA8YkF03QGtteVyZ+xsziILbuE2kqpaDPmpXp42IR6YtQ2tpTh2RQR74TS2E3uc+tOa6tBbuhObYGX/LW/mrqsqF8GWCws+uexm2iQ4QDsEX916TH21biaBhG6zWh+IuGyaIj28RSIrFVgI5YWRRyZSFgQaLrDbvXqMhAXhDduAzceOtMEgMwRSxfNCiigC8gECQIZEURBDhJ2gJolQMsq8MLKGFyFGWP3xPbfntPjGJYdCc3w1HUFAHpOJwJa2SVLKmBu6ffQcmmWMcIfFUEnOBx5GttrE09ZnhM2VgArLMBj/pgGUAUHM+IwdggbrUrbNSX7vZTSWc5TXT9fNxJQLsNRWGVqSUjcKSaSkjdKIrpwXxBTB40z+JZX0+Z10QBcLVaSHwhBWsg75wm4eoW6CsDA3lZmO/x8x2ih8OgCkp51ceyL9YpgqCj/l8MOdHfdaAXAVORrcNrWhAy7Pnn8JZe+JjXg0I/AhX5RndAVxNOeu2T0kLzaDlYsEoI7zbhYYGfwo/dJKabn0ZwZI6IohxHL/UPj6mjf2j8oypsyeRb9LPU/xzU9Dhs8Q/7bDx9h78cAEtubhHhgmS15HopEyzKnid7SyXh4/YaEtyOA/QhQelm3mkfu+DfQ7z5RxMVvz2SOHcwjf21jgZTl88KG+8cad85fNvlRE2zHcJR/hkjAymQKf8TLgqK+6BvQONzheQRJK0De2AQDmwjC/prjzYw3+TVhx6WAYGkAfP3TI+yv88721HCn1/GgVV2dmKVYM7CCsdNQ5yviDtxPKigJlnR1id7BL42UKJNznX0T205kfjKWiETLCSaIxdXAU6r7lvgK+Hpno2gRZV9mNmmgbngHMHP/2H9ilWFvWcr1rLF9mEDlCBXdhw3Wh8ZCEOuCxTsQI+qE9lpaWuPKplUoeR6fADiEDY6Jz76Wp+bpHAmB6BADEIjqOg4fHeVzK85yGkXADhtUElVsKMYGafj76JZ1IQgGaUqZCDtCt85qNiTgAwTtEElrqpKVaVv+08v/malyzuP8iBHHIHopg1wPALn7ZOLRnoEUS7fVYN6/M1mJApH71Wibr7+xPcTcoeCTuSTbK2YlVERpOBsg/DnpL+hHkEGzr5jdI0qFArIVDwrNhX6P1qWzKadaojVCuEraWM5qxpbe1R+qDQ+l/msj6IQtVckrEpRSUuA8tkKlr7bvqWWEzgRGWpZZKVWegiYyYqnOa0ErWkMsJJW35LoOCf6auWnFPZOsqCcTpkdginuiknYLyEy6/2ya9OJbSs3OGggBmT088AUQs4xChEPMF/voMVYZBvbIt5XumjhOybOIiZDtwiTwWpNZb+Ur97SyfxB06Ye2p7k0UCYphebJQ9clxt4A/cZ7r9COf1CRt/TXJ4gA+WpJ+cxkI+Jnjs2/c2yg2O/nrj6iR5/jfINEsjn3xQlldnyp0bLNfjRCb3XJRUF/75zQ/3CwkRwAXbZXDfuLq6TPBn4/BFmZkfKT/96i00209huV0pm+3F8oA8xSQXzdA8Lb2ghXsd7Za9C8bgM7/lD7SsWDxDqIzDS7qafTXWudeCdGkpxyBL1OGJVrl1Tgw+hwwecpL8YxmVujIRqaa8MhjrOc8CB3QIEeEh90B2sVC1kMexPJvHBFsjx0OmvwKrHJpd1zAWM8ZOkHdsnDisJhl92wScTqC4jM/Tx9RyZwKfCT7nMwMw9Sq38jHVRY4z7bXr/Fa5xlIXIBHEO5ZiWuYZ7mdmB4/WQdFK1E/4vvv6gQDM4D79Qz1HKwilAHFINrsh0LYUdpc8LYM8nMWMggb7cSWdtoviQyS5iuYKos8qsgqZUzsb5E8cek02T+p87k2AILQ450GRI6gdgttRi/ZQZrE6+BHE04CdUOtGgrBBE8FLWxFW59DAFM1MS5rMxno8h6mvs4M8lk6UpnN4M5IWHK+j5fPz5KRe+mx5v7WQlTMPWzh9gYDodCQBm9kWTwj2G2xtQcSZMmBPluYy6w20R10KO1oplgD1iwPhy/5L+qtwird0Clr4ipVCGWOjnNc2FWCfszxlhR2TM1ZnYrm4k37B1Tp+FQ6jk2tTKjbqgYZecMQy1MNpiUdgmWrFAdKXzO1CiNug9AVZZ+KgqBeZR2mdwSGp7KMN8KyWV6a/PK81oHQlgwHlrFqaqYhVOuLW/tZx1E/Aor0+4QPmX6eKMKfV+CMBhDC6NPYk7gbhARMcJdfgTMLWzlbpcJah22D2mJbs0NgBpoOnrKyHr0bKRRRPhJb+O7ovArPW2i0U11sDfFmbnfJlzrO8QwrrPilXzBLbJhxBv+MfPtwvdzkGbIl0Jg84ol7BH6feqyxyPN15XN567Ua5+PaXy9HS1bIzs0L+9tmEI7gSzpCG70v4edN3emmH8q0OKv6uV4MFymWhhNLqpPSf0ud4qHxTcR43S2TS+qxfCQNm+qZM5CH6Kn2yo0Faq/h5xrbkL+tVVvyuYquDgtcMveGN/Km0usiyb4OQB4z0sp5Bp4YJubfWOh19M2gCNy3GHRJjgD4JkwOkPkkDduUBlZNWX3zH4FQFpX5xZiH8Lp6ZRYJbXBfGiqjwJ711C5WwR/7Tf8op29Zr5ZruVJOHuV8LygB22KkWZZzBxFSEyQXQALT+kNQbIhbmzl5AyvfxDeiQDpr4DCkpX5lfJAMsguFSvoiKNUAn7ahTjhwUSntOubS0MPJ5K6a0gaCa0lgFpcKkUWCms1xXcCRThJ2yW8DyVTIzLJFN7RvbampJTmwJCuY+Rzv92k9Mli9fYz/VyEH517OfLeuTl8sqwm1GgVGEpbm3U3qLq+UlTOBDln/X731c9h98TNqQvZjCMpF4lp7jPOMIYRriDm/tRIlRA2NpW7zQvknLnNpG2ClvBLl75rJAkdHZQUCOqYzuCdxOCbUYJYAEpCoYn3Je44e/7TzfwAu48cdAZ78Fq5X1l8qQorEEUFZ+egSXU3kZCQLUVSTgAolpz8odnEzCJxMZetJnqqCS7aMMGz2ixvmuhanyy0ohjcqAad++8FtLeZrl7w6bY61b5eQCTFL38L1FCME4S+4NVvI6zx9lUeUAy2ofxeO7o7UGj33EimmXEPIFfEwtpi+eHLxI4v5NBr0BicNfh99aOMKvXJopt90tsvUkB8VeZ8PvJO1pBXzn2VH5YKNblgmofZ/zGc268JCI9mucKvPp1otyk+DOn3r1GrR/uxwvXC53J+bJ2kFsFrhtgauJrO3aP3mUvoIueVC881H/2n/fkpKbSEj+ORUzpEfr2CfCk+I6/xkWUpmCqreSQvnvNy0SaCD/IOgqiRSl/ljV4tQqoWH0C8+FPymX694HVy7SaHdIK4W/wiaNICn9U6lZE+yR+07hJkgsmEh28G0ku5uXgSQKT2WdxSStvVRjh7X24Q/aikuA9hyUtKZVruELfvqKQgNmlZNwa5zbn+yIEHKe0+CJAqcvLtJxDBwVUzJIkfXAhBthGwy5NtQzlw2I9jBEuSwjIg+LeM1CTUn9NqJI68vRzcht7SsVSpUoCEvn1LRuCTCJ2xAHnUjyyHpHdjcTa3Gccs1TObI9iDZUWohSkOxY75Jr8meBANPTSIAgnt9O2ZzueGoyC0DlFfwULy2OlO9s0x8i8WVwJiZ5XeLBJVaS1oez5REJzWY1ce0/bY+zMjXBIRJddqWP4rAda8+XheWL5f4sR57/639FPqw1kKo1okVRRyOA4GmZrjKJMAF+RLYqA7NSVnSIO/EojWValZ1WSB7g+aATfDQw4zzdJoRlChtHK/Uaw+lICWlpUSa0TWiC+RPfnY5S3jpN3W6FmFN3EMWDYpHS1HEK7t0ipNk0gmJKFL5MZa3g0SPPXPGTiQKHypOaeJQR1NUeWTdQVwUkHPRFi45uiBJYAPj45wprnOzQHzkoE6SKHiMe6vT5kzKyt1GOUC7b+EMPyLO0TsaDp2QPOIbfHKw8+2+Gad4qltDU2lRSm2zi/3gXRbNAls6fgc4jDJSfPuMUaaZvN1nGXwJJt26vwI/EST094KCFU2KppsrX9xvlOtOgJyjeW5jZj7YJpj1+UH7li6+Wr/3YF8rpIlO+2YvlAVtlnunygN+Ijy9zwTH4jWQJV+2fnaS79FtBpY9S76z/6FhwVC0MikTgEvdmef5hCjB4iSupB70lkf+AvX6v/ONgV6dXlc6QJLMRP31x2wcr0mUeH+ZTpaRkK4MqEY0CDzs1eaPHzB1xHJvnUAo3UkyflDdxyVTRAYEpoH4t61HJ6QIYYwpYT7FmwBMLPHuCAjBldRYQKGfclThRocUKhBkSAsVUy8HK2Q4fPG2/eQOucNqGSitdEW7/wz8qaPGtbtLAAamIEJV74rArNECF4qAKOmnndWwn1kaLB2XmgZ/mJ89JKygpmVOhMx5oSI4qmVxhcBSnwjCwK0WeL9d33gtIMrYAONooANaHlNFcZexYTwJJ++kOSBQJIrYPsk9J0dsjl7fdS90IV+bB1A/ASpS4jHBeauuIHS0PyZv9KY7Y/+DyaFmeZ7sKOZQOWxdJ2wFRICIbYBJg6tmBptdw4+eQVSEtJE9amSL52kZahAHAcnAGfHQxSLZpwypCAfEWyGEI+6bikDIgKyMQnQZipsQeHqrVyC+QIc7SZduhfPDKPYnr6CRupbbE9RPQRH4ltvULSejhH6b7WmMInQyv38D4LkcsByHx7zW3Zbl5Nr4S6+QZ8W/9Tg34oAnbpIMyj7TncfGiMhUWGU5Y3Pigv9O4OsDFHYgFhWXTIgylgZLimGgOUCXXE36pI7bDbOEM/4Q4ptPRGVb3OJiUNL77O5zyTF/MMa6ykEkVqhZxQJMEw04yvbwOvX9+jvzmpAO+QYERjt16ugtPPDouK2+tlSHHiX3/3n1SFbfKr94dlr/vaUm4O94iI+Yh1tgPtw/Lf/zKSHn7JkmOV75EyoVr5R4ndd9HWdr2ODjDQI8yp/aKVvClgIll++qARa/5FXEK2VXW4kTFFJ+j+OGB5PQKzRQJ6Wo9Dk784/45zeVd5ciag0DL8VWFICHkOV+2jbcDmsF/lPVUdmkjoBksIZC/stoGLfUP6gNSaamsuixaaKzU8BNjIA1L4AE6kOBrZLHDYNkfsJdSmLhJkHz8sOkPPOMqbliCPxlMedy+m/JJrAg4HBN4vB94vM83U1EJZ10ptk/yMs+JU9oTbg0cVyadAWT/JxXkkJlMNc6QoamPhFEQc9+H6BRReWgKr1ckSAGfOYX59Z8oSAYX5vxAlRnXpKqmrRaITt3MSVVNKEdQx8oEio0RVKIpOIZD6PCsgNsBlAQw6bRVsNXn0ioamk6oMES+nVbQfVLfQqhP/YE1D5DokWXbaYb1vZw3NCi/+NpMuXmdFSgo3saf5lFSR7QwCUwMI3CBQqvyMaK9jrAeqdSamS+TL79UDu49xh8ylz5pZjcZJqMYUAKOhlqcTm19KcwapyTlyd49CaJAJxMm9+XDUw/6hEl1ZMfHxDWtThWIz+cEIsoKj/4FHa5JewxDuZSs8s9qKvjq45C2jjHoJXb1yTUECGb0+Tj0oZ24i7UqTsGb70TgKyrcwzsO3lF41OOeQ0+r0d852D5mWs2oOk6mTctJO5SZOcjyGPUNwPUoq3WjTOsmUVADpny9Z4+Y8j1LTu9PWdR4yoLGKP3eZ5p3H3ib0PAOwZlzc/gyEQA3iOt2oEs0QQYELJvpnfWytkG+KHYFLxD4ucRxbf6bxUc5DZI3yKh57W//TPnlv/758u7D3fJf/fP3ymfenCv/+TWUIRuP/9f7R+Wf3CE84XKr/M3PvVpmCPLcnFst90aJm4K/aCkbjhegqRwHVoInuhTei6XLoC3PaRnLdf7L3jdwKq0y7eGzJWG5Vq0D6qGcT0SvUJ912V6dOiucCjTPU1ILxplG9pTSjjjuOYdWHqg3oQdeV5D94EmtOesPjNYM34ZfkE0HIL9LV10SJ9A0YUQYFZ7glIDks7ptW2Zx+qzt4qbnJrFrNAM9TlieQh5wuk8Qs6ay8ZSppo7NDIA+qQqXk+Ux+s+n/VIU/WalgMSL5/n0WsUNz1LIodkrfKF+Pm1ZXKmLeHYsUcn01m0yrqRZxSnhCQ2EMDnaQb4KLCt3pLeoldshgBVQEODx5E072NkHKVyDuRKOj3DJxVW50CY/qZxnYIjwuqYo000QqJloQj3ZRvJGuDS/z5gAmlGS+0wnPQhSB6taRYRQKttMVDSulsDxaUxBqj4tGJ8yrtJZu8v86iaPyVYg7S/eOCw/ewe6EEygqaYzO4KzEtroCEppcehnt/8RfUJhMWVz9FFJOlKJVBEuoc7h1u+gMtNfZznTr0zIaBKT6zpi6VD6a/1QPowvDoCePvKNsvoItWj1GRr0qbKBaEnjK6M6WsrswTXEFr9RZLShwgw+LYMy0MwWT1oBMoPHj0kzkSQIMfl1hFOj5wTG1+R0AMUxwfaeYwYzLUOtNd8cq8Hoy/O0P84x9dPu7Xv+lKW2bQ4mOCrb+ACfsPG6pWKn1l0CPd/F0p1FONrgxJNmzOj54vCkHD/fKqOXV8s+g8ynu0flr5HL/kscebxKBGYDWjSxBOfNiEBSOnE5yQBzzID6a+/slt97/0X5jf/oIknn2mWys86p283ye+tH5e8u9svliYPy3799sdy481rpsafvYzI3/DErfSZ6dKAaJy2MogpGEuai2PhLpe+r/kVGwkO4PKK4LKKSktw8IUvyjvaQdpR1QLeu1CYdue93Oc3wlXAvNHDq5Nskk+q6xKUxuLt9xx0ZfEQZhW98igvn9aqkbBYJtBA4rhZOVp6hv9aVG4edMehol9+7Li512fyNFZ5BUYiQCwc+qaSx0GJWkPz79oPfZg0ZR861FlWC+vBk3wHTceuouBIWLXOfYaZFh6mSQvAgZXVhpDPcExFR9nzN/kfqjdLimbqoByyUcUagRWk1sWkGjGSjmMIi2CRdxn0oeMn1DaOqTBIjAqPbYFAFwVRisGq1BFA9dkrAnWao8QVUAklJgyAVPFnA0IIpOmlmh0RIw7iyu0QQ+XZW09dI9RzWIBKpwwivKZA8dKo2ICHboK4sakBojWgd2p4Kzb7YtL003GEWH4iHYn6VAxlN8N/BYhphFGdGzhsQ7Q9lNT2N3tXBbCrXAbiQ/DIKIcDobojJEx7NlGkSPcqUhYbG0Qx1fi7uuA8AA3bInzAVOkHGNau9aKLAU2BtMBW1TRWLDBAhcJGBDo1o+Y2R1hc49C31e+Px2VnFCAI6Yu5zRjxCzkjw6B5/25NO0A/FbTJGR9mY/AICPDrOZRJZio/QCo4Blw5nqhIZQ/xBA8rUaHRxg0LONiGUNwcWstGFtiiP4jB9zTg51aaJX5rAAmpgrZ5wHuAOqYq3qOwDzk90seEQX+gkIQhu3r2KA/4i0/QTBoxVsh54Wvf61m55B2TMMCB9lQwKPzXL2YLL4Bo/yxwKeo0V3XFS7U6jGCf5/cFGh6jziXJ81C0XSNG7P7fAkVuPEEJHIodBcDjYKX//zlr54nV8WfPXyoOp1fLt8bnyDAqqSAzsXKWvKolsWEei5FkFP/m2UNoGTEa2uJ40P8EfZRAuLkFP//CiDv1b8nHwS5+5VH+JVAWavluXL5WjAq6caM34lN8dgJUBp0GynHa6j1tXrDHgMSGkAuzL6zlY10EqZaiVW5mx8OmqvXU6HZTHdQV0eUj+9Kg3N9R7RoMW0YhBu8qu/+QV4FVNyKPJw+6gRfsaJ0YPuB9QPGca52yJcrHQgA0x4X56GJ7XRSB8vu2o2JML5S1na8o6QNYOUcTptB0Pp8K/WoHKpgGwNskfLQkEngtZhULAmUwjKBTgq53w9FYuUjkNiAkAynYcKpK544PhstONimosIRxtdfMjgnSGgMyxnXbx29HeBtywq+Wg7NjeGHNpEaFgeCpNk7IeWe3m4FAWGJISGZASQBqhAzYZKfv5iJuiZ1JU5tBxKxavsKy9xraLCUZwlgQZsfGNQKQE+QFLHyvANiWwI4iI42ihSgiUrtuRMNjjP6jbcWgC4sX0B/k5aAE7vceIjUlEH+kQ/dJPBLrSp5j7KF2J6G79EUIoTvUh0J7Bi8a3eOJKH4WUOHfKdWLNOEjIWFhFwBUGR7maPiTPKG0QXsupg7nvCo4SKFNIfApFMcrMGQjop8vFnozSRzl7yEPYFdR0OareUXmEI6aacGwXmCaow3PrTuGLSeKi5rb2S3N9o3QJA1EYngPHJ+QAP4YXmuD6GQPCBnDrB3N1qYlmFwzDZBycyDfNSSl9NiJzXh8ns/wieLw6xWnKBHMujJFYEqtrkkNpZwlD8Gj0TZTih1hMc8QF/fOHLK5w/TLhLE/Iq38LX9m7HnwQRh9kyvj3fvbt0li5Ud6dXi6fkmyOxeHguw2fyxNOBgwa1poxO4Zhk1o5SmhQCdqcvvOhAIQ+SkD412u85N4U5jlXiZ0SaqmID35ADvmcUsqKUgR8thEZUR7yG3cK+MlKIPyqJXI+eOvrclEFwkcGoRwACAN1i0eFngvJsKHChZ+RJJ6p1o+KT2vJ6VuuKav6EPVPuejC71jltGFZlWcTPhcfetISBM2zFAqs8i6VQU+nicq8EGktAk/AxHChL/G1Uh8P8o8XdaiWhcGCcU0AZ42Gp20KqUtUkk57m+iauhqqIUE73GopLzmiiUI6aN3yID6c62b+qyOW5rr4GkIxmlQAJaITgR6jrd3ip12DodXijL59bRZeKiG374gsRr0QE+YV2SJQwmXqCxL0j7hnGdCCTCckyfsE8HHuwUSS53xsimWWaQvKBtNZCDyTLQiAaOJFXet1yAejUDlcinygyKgJ5CQR3ZnAd1jibzvSwGCapVqZsftgGMMPZBcnlualslqtxEThWgpBM8+8ucZtU2WH3oOIjNDAPwB/e0ecNAwTa800ORigT3J+AzCd1ozyrFaNlqD+qrofsk7JnHKpvPQ9ZGqo8lTzAaN9dCCR+Tv445J4EBSNothBAfgAmLM2hf3U/XngHIDqtED4HACgSRcLqomCNQiw58k/LDaIY7NeOhjhOyA9NsqCTb4LWE/dbfJIQfh9phcb3CcQpDziYIT7wDFP/XMAd4Ryn0LpZGoAQA5AKi/N/2PwN41T/TJpW75CLqm12bEyh/VkfxdIgLcyx1l6pBa2CxPg6n/7wUb51pMG18dIkNcprzMlNO3LNgeA/Ma9g/LffqFdfoUz7KSLmrxHcOc7N9fKJ4ovdbYZAGfAm1Nhx12FPWmIgkr+gMOIFvSWB/3vgCePOgBYrTnN5VCVj5woGXxGC6RaClyEAUIXZcq6oT89pjrqpy7/1cWTej+LHtZGWQXUKWdN43RGX5rzWlxYfBcflrONahhwQRjALZIFTRzUJDGr6LydBWXrmsUsybNjeM+HnC9pOmMViAkkbUCQLa+BoPVvsKh4Mv+dMydh5KGzeqQnsElPlRVvX9bvoJpQBCDyKjVTh3ilbWGkHs2IGk4FrwVXwEFb9lVcGcfooCKHSwf7mpx9atU+UelcshaYU63r6hiqyoodbUR4EALbew2AzLGdpXmZOZST4LzsEEJAiQhglJQgBGBRKi+AIJDUYFRVwNvAYCdziIMw0IhO/OxnAojzwEgZpwvzeXZaltQBeUSLSCXolFa47DzwKmy2E3i9AkIXaNwTVY6xApz6miLW2aNOQxcKopRoT6vK0VaBbCJUbhR1gcHRy9NFbKGHFQVvUL8KpHZbYVQRStysrtFbp3tuWWI+Qz00xm8VYFZ4WI3N/kaW5lFZogQYQABtmXXSsprKBq/qJE3aYto+NS8VSnBcC46R0EwaOqrdziLR9Bvg6csU0sMtnS6rRMcOt0m21i5bTIctao89V87sqqZS9gxDjCJwKb0Z0RhE5o52SnOTw1IJ7j0mRmpbBuJ+B7y7FeaYEeAIX9ozrBZPan6DuJ31R0/wLQFXRmnoSv3LHKHWxPn+Asf4Etb7WyTMX+AU6Tks3iXCC1qsLk8RX7VIihf0f3mHeKkPD8ZILexx8cS3EWbwuVWiz5lO/s7WcfkMgN5awCHc2Cn/089dK1dQjL9998+ZInbKo7tPyv99v1U+bq2WaVa5YtmjRJk9h28MqHVK54q4vhLvyx8qgqxuQj9prNCpAIwSj18PPIafKQd6MtWt/hV+U4fPdCmjIMYvCB14FIRCmzNB1bVwnv5Gw0s5kV9q0rqIhRdznSdp1+ep22vUpwzYNlLrBWSFVtViEox6tGzctRALBiK7sV5W0oF/jBWdLXTA5z/YvpbnU/ijUIWJ3x3CPgxtmiSynYA9HO1YVODIt5lqxZADsrD4R7j0aU84oPO7pqwGpLTFfQoFFbRT+VScKWO1PypGu1CVsECopOTR/Am/KmfMdhAOHsQlnJtRLDxph4RERaZwK9SU5FdQHCVSfVV0AoJgZ8UCyaZNrBNrkwEoDtS0BMYFZgSrLYnrqN4Th2UcYztcpXMk0AmduW+ExueEg7K27E+tKgCOw1JC8bzExISiBkYX66OPWdfg+hijiMRt0dsLUO6nL0+XJXwvqmingqYXyWokRFGd2s9RrMgGvhePFzLHUp+pjtNDBUlFqf0oHsSibKrfSmsG0IK1MBBAuQtdBp9w+4MxLTznPkDyeQR+Hgcnxp0hLNKFuhNkSi0KiuEbCbJFkWjN6uPylN4MCA65wW+1vGJJ0aYzdY9em0HpOXJ6Kq9MPIMvaIrjvjcYOTm7CoGq/gcwnlG2o/JD8YyjCBaYik4OnpcmTvNxAjGf4ZfapD3dWC/wM7h96zlO26f85jAn8IJfg7CPedJTDpiujZIFoMc0Vwe/GTRGeiflZTJ33i6c3jtNSmHa9iwPJaaN0C0bT8qCzsN9rLVjledk+Qd/tFu+dn2Bo+Hb5eHeASck0+rYHMdg7ZQZcPbGcilfWuOEGmp9MXWx/F8njfJ/3ODYuT+9X3770UucMzlPznSPkwJP0MaBWRplyR28dcGjg52uAKc9ClisBO5lTypkcrqlnzKKQfzoO5RoXI+CkjeVFXBOsABvWULBY8sQlrvtufLq/TiquZfkANYBM8Fa0B3rODByjefkq3MHtHLJiJT6/E41kQ3b0doWFiCpz/E7flFuqpCjfMCtA6052LPrwYUSwkvO9w1DRrqmPLOiqzagjVie8Ih+0CbT8An2G+bwW9qsdWpxOrzym0ecB3gAjFZTcCUj89367LO189PS+W/91f9W73jP/mRlGliiXywj0ipiYxjFsOISsopygbEyyugIZwWog+Q5RVOAFcpTBMlsCNEMEoGhIR1VBSokKJpzZ3udhknE6MZKxpgOAgFwVOOqhQCESeigo1r8UNxzn5JKCNX2l8TPCheKR4Zy86XOQR4HBTyHM1eiaWbH14QQOGWdhvg2CPi8+AOcmpkTMMq4o38YCoTqd4AbDIpzepZYMockR16sqZi3jgpBOOXtMjU6YojUtEsjibGimTTrn0oG6hAAcAGRAzGWkkd898gSqkJxs6yj7gD8qljP0yWbzUJvBIQBPsoC4yjKXiIqdKYBEhK/e8KuVtHp0CkUkGG5ecKKUfuOrA4CWsGSS//SJHUoyF0UjdZXGwZvY0lNEhvVw5Jq41vypJZPmMabwmXIlOwFWSuPscxOaOfVNjxCArx96LFI98guX75PJs8rV1rlq6/fLj8Etrs/eLfMg5fPwAGvtbtl/pSsnQCwxDHD81PEWPGMA+FFtjq9Q97zf/XxEU76JqcQj5RrbIn6R28sEqeFVcn+wz8rs+VlLMW/faFDxgQS6pEUr8EJL3/cnyzfJ8Pr+yjaRfD5NTYlb3Ic1szCfJljYDgAv9U5caYEwJcLMpA6OI/g0B9pbTrqhHmA9ybWcI1Pkr5aDNAHwTfyW+vIQaRpYC71m4pFvgxvU045qnF2aHOuW6eCe0p5HdmZkkNnFTSX+azWHVBkkFLw6ywB/pKF5Q3+xUKxbq3pXGN4lhnBY3JGyT1c1/9sMPYx7x4Dj1vDPOXGHQvx0wJDHO7gHlbIbIbq04aDqw51nelOvwzgNsjUcCOtLX1zWqL6t7Q6xYv6w/v+gxUjQwqIcV3ctQO8I6l8OuhrVvCbtqOQ+U1VPOIfrtslLtQFBnFhO1yjcnmZgGUbp2pr4L+KJptudQLDtBLDeaVC5YNZBYPARpG5chhT0qFC5cD9Uxx6Hj2tlZS5NoBoh3ALwokgOiV1BArkOpUR1pz0ixWiLyeFJRIIsntacvpRDHjroEinYB7hjl4BdlfUZZjTjBJWDoEYNXHFUIswctMmuaXAZjGCa+kbXYF/aQf7kRU9AyhzoGj0C+3D3SoraBQ8jOKs9xY6GlrYN5m0wgooIBz20h8AQKCYQtierOgdNsnZRD+cWnsKj9MErVrLKbhOTVSONA4M1gFNeLaOoloCNqqSr4zmUjIbQekUdArlLQC8MiQ4DEPwR8e79eqrdGvTKZ11ujlFPvJVRtvJva1yiC9onFXXI/rzMdNlFT7JdMtDpns32H/XRAk87u2VSWh+AD5M0jdFH6a1Hihn/RdRYn/+0d3SfvRxuQpMt6dYAWwfwgc40InAHB0j+Rum7/IcR75T/tFOs/zpI06NmeEEGey0D8HHV+dBMkjc2DnCj1XKLGfiPSA84peuTZYriwtlnpCSzuxa+T75ph5w6vIJwjIFjr5EfVpz4R1Y0V0TxhppqZiSRvgcHN0rW6df0IdyCgpZ1cC3tKr4VWjNgaX1r/UJ8XiDW/Dq8WAKqX62IX1JKmGEqM/03IhwuaGj342yOq/pOrMpBN/BMJjiWZ6XWc2U6uqkz8iHyU4hFODBHQZJ2QIdQn+eSfI65Ey+8MUj2evnKt8hG7W1euyvEm/Ygp/yoooqCpB6XdmTZZRHVCl0pH/wiHgIH/p8FJCDpH3BPWQ9Fcoo6bAasjOOAsaGSJs8TrmzvkFwfztp1KEfmPgtP6o8O9Rn6IR41ngRNtu3DX6CC/rFP+Gp1io4CQziinpNhEexYCBen0giN5VQGtAJF+LaAMIyRNv0nFaIeAB3mT/P8d3R3u0hfa0gyvoCHbSHMvC32ioAQTCAcCUkSONadRaCHBCq+aog2JmYx/TMtu2gz9drtGX7MgPlR2GQJoKSwwpgtSAMAaz8oRKoSKy+qgqbdak04/QGazKpYQymILYNUW8/nLIhlvRdtAZbIVBQgNJ2SnTqdgqExhJ1BUTho/88Y4iAI5PM7mjuCCOTW66L/yorgnx3JbClJQkjVwEzfIDRint0lefAQUgFU2ONMKGF2GcKmTJCTNWhm+1ieOHcFm9YNDw3R1u3yD7Q3nzCyuQxA8iAAxAI98AfZ6zPJqEU94l9moQIe/RlishyFePjZ08ZFFixgxk7cKyDkX4pFxQmKNuGT5Zp+PbYabk5QmAp2S1OIdaKjnQMkTaLAEeM+BfZGrNOQOk//r1Py5VrV7g+VTa29jjcoce+Ty2WQuzVYXmKMvoK0+afwYl+dO2V0pxbKfc56PYPx2ayomiYR5vCs9BdC+cY2MW7uyUS/yP/OTrZd3xrCr3M77SeC1E4ULPyODiLgHCvCg5KjHm1R49VLhHnZwoFBS0dWzijjatz4HODsHyYVU8+nQGEzAqcvECZAf4g+Vdfo+6PhIsEFmjO1Dr786gH6iE/KDgzJVCJfOBb4RbnqVcC80WrmurTrwxwWJlZweO2CjpwukhAGS3CKEnwQXVRwHUqSDl+WiUV+Q32BGCNGOD1mon9VL7xW/FbnnX12Hv6x9z/axtW4duXysb6k3IGuUhV1Bk6UJjb9YXyHXJfx79l3JeaTtJXLc9zJa6ysz1l0BAi1SPI4gkYMBYClOgzpDu9UEBGXVUACQZJOmLoXLOSaFtGxLo0azX0AEGyPpWUUwCBlBBaOYATZOrMVvs6EmqeugTspuku0zt9T2MoRC2J7MMSeEGEaA4r1nLKp5G/Co0rm3ZEhjCeQybxr6loadKW83ZEUWla1qOf6tYIkEL6GIkG5CBF5cpzwD2E0eE0lOF4cChz6vdSMPgK4eo75WnXUVo4ZZbEkFkd1xxnw2w8K1zWwyiBR9tyQicstK8FBF7i3KcirSBjn8RPg1H7lJXF8771WIn1aCpppfV2ipLQgex9R+1ORj+tDw5SYGFjhiOuukz35rGSRhmgDph+bqBGt+j0HnXrmN8nRmqX/s8w7XEVSUDN731/l9AFrk1BczGrc56PCN8thO0OSvMmfVmbZ4hg8BgfnaWse+/Yu2fMFl29vztafvPT43JlgRQw44OyQprdVbblrOJ8vw9T/IC0xD++BG45EOEmAbq/uETA5PzL7OlbKfewpt4F1m2yOMyyUX0CGO2rsUSVmoAD72TJHtx3UTbj58oEek+iIIRLmLkdfDoY6S/VUorjGAIo7PbPui0nb2fKxadTuUytmCLrmzEPnDMOhd+st07J5CEVTQwgcKS80Dx8yidWoIqIBrxQBVEYeE6RUU6QGgUN68gpnz8YtFTACrrwA6vWoT5ady8cHpFNJCa9HXOaWpVf9vuhYE5Q5BojDlyJqZJXeCsTyhtqO/Db0tnF8K1tyMvOHkzup/UnfwqbDEszsfad6soKWveqPQcEF5pSlr57hoCK0sDjFr6w7MzgecslrAZ8i3Ej5Z1CKwcqZ5uKlQucuep9+mfAq/hmJZ07Z9pPK0cAFW5XmlzaV9MBYvqUAEaQ1cBM1hQ9xd8lcf3jtEh6ZCRR2LnuFRsRYRJFwsXiotcCSGMxUQcw2fl5hyoSp53OgFVqxv1oeie4jFHb+BGZZMDmWOfX8RHYdVcLZWEQqs2nj8Y+0HoIIXLYslZOibA+POhheeAPY1Qy9suc6q6MntKvPn12JfJUWL1OuMcxihRshFKiVIzItOfmvYRjqAn/6Nc6Z7hE/dtNcKCJX/kwpKEMbdBv47ZGIMYAppRJHBTwcJWZne2yxnlxj5guGVPl3kn9C1poMoXEHEALwywGQ/a/gaNxhMNMEBdwkl/mCPXW/nrKGs28jVN6FwUxxAo9wpI6wim+Acw70PYEBTXKaKzFpFIfB5a55QVgAz/k+5a5Tf2yQD0tDPIrdOQLpGC5MANDUsaYtgukb5nCYptnoDuGWVdxvH9wPFr+7jf3yi+QPWF6ep7NzVjOxHW9zdTvxWmzPOX7u+D7Mm3dnttn2jdWHi/fLltkSHiXVC4fYM0PiatYRfFdpOvStboZwj0ZXEAF8PFSkqQDQqwTWAFuQFsP/I2wYz1ngJUW8iv40iLzxCMHGQVJ4WalI1PL2FfWaZXQRKWt4gAF8DGLOAihbaqYWLQliBfe4bs8La+eO/ENjnHQETb5IL7bcFMVzhYKUlo6VdJKc9oJxyKYKDieU+jHVHrg2QHewTYqgr51zZzBfVRRrOnMCmi/A/2NZD9hMFOmXVRKSiGecXiORcZTuj6EN2/kzp8J/PRalJr+N9oDceoFYyHtYmQc2Th1xuRCBFaSuBgj6WFmEkA4yur60KVwXyokn/Uf/Glqm1iB8Jx476FL4hfktzTiv8ojX+ybRo+K2LaVgCBYYFVO0cZOjYKvMwDxS1mBDSaoUsTRQYFT61p34keI7VBJ6XtCldERmePM7EWhKQzJveVgQwdEgv6QLPcDgALrbnKDWONrEHIQjo5BgVEvRDSR2wRCLkA5kp47KiZq4Zl6XXamCdrmD+26VL9CkOEXV9nGgQCY5QEOBEKa4t4oq1h4hFJn34k5pvvAJX5WB7taK/i1ZFJap//hPaY4QEAFKrwWCl/rS3DNX2UX+k6zwPCQ5fshirA7rFaqm1T1N+gY7QJvA+VrAF93TKXbKMcI8DzKbRF52B4jgp02kirY03XBuyOH5dw32XFEYzDwAM1bR7vl8u7z8ujFUbmAZExhqTxHQz/n+TaQ7QP/850ujmgEjL628VFu0DczSCzAlFooHWiC3md0HJZf/uLrhBw0ym//4Z+Xpw+2y8vEZb2KklrF+pll/6JrIwriNE7pJTYbjjE12MNp+GeHrfK7613yjGHlcoT533m5WeZx4l9mi81DzK33mBK+RAjCyyin+zt75T9dGS8XlyfLzvjV8nU2QL8Lnh4A7xJwLIEneegEZ7/9pqvwCDg2DIc+8xW+g2ed/vlCsBNkmWvyk6oWBEhPBzkG2CgXFFVLfw7l04CaxP88J19pS0rrETZaK9QZbC3AG3FHuLB8ERB9fccoKt0RMkYPX1LsbOoDo7HsevCyroIxp/DyMuUUeIUwtITeUUwoGK0NTS0F05N+3IplvjWViEIexcFJPbG6oZ2KSctcVSBPi4vwHPABZQZJDZI4feCZUQKlM6jbTVUXMCjTwu7ZksqkU2xPc1IXnKLwFLWZ6eko0MDMgGBwtvzbQbC0HFtOPYWZ8vKqSshV+QmUulizn2nG1qlvnBVlX/aTm36jHSgF30Wn8DvGk/3xO3R02qzGp3ag1zqiY1bsCpbLt8Z3DMl3pU6Tnio046LcwtNnGuH2Ep3FMromnsdomatKhPnG9olmN9uoTNR0FKepnipUgtumIweINabI2CejjrkA/RxJtVhAMs+IIKdLEs5VzAbW1ZjmEm2Oot2zIEDbPluVlYwlOzMq8NcRdRZEvjLLpl14f454nw4w9TSTYJ4epvMu3ugLgY92gE+lYj6qPtMnoAEX9BO4+GszZZc6uZ2XU9cuCqEPXH8ZmSwhRC3EZwwCdhiW71piOlBnWP6fZAqRTcow38B0wCgkFTihSUxpp8vm9GJ8T038TbtoCJe/dZxrRRnkegHH+TIpgp1ido/3yxF4GsW/8j5MvX3C9I7p4B79uwFetRz/hKycK+BwFrha4N8QCRnzBWAZOd92pKT8Lltt1j/4Xjkievzm1rPyd9Aerm7B78RMOW3kEwU77gABEpaI1fm1d7fKP333uPz8yxfLdfr2jM3NS883ypfMM0Ug8TpxVN852CwvcYjrzZlO+eLVhXINP9aj5nz5ncZ0+R4K4AQBWEXBX4OuhoS4qKPAOPAAatrSDaBN4e4Cp28yNOYHuK985yDoIEcx3qodmR8+Q3FkcUNG5uXCiBKjNVQ3Mlu9igSOp0pA4IKWN22FL51uQgGua8G5lcfpmhzsNF4ZUfmrVIUpygUe0rIX5i6KzXb0/zj4OVJOuMhk+8KitQefJMIdBZcpLpc7uAXGkgIDy4vZxRh8ZMBnD+v0EKXmVLbJtS7bv0wVQ8VV7sCDfugEpirjwGE3tPzSplMtcUZ5hcyDYPS/IY2MiyhPdgYYVKxVd2SmWGQ8B1UwQEfrUGfLQRY+qsaKMFMfOBNJCesI9sWA7Ti4qHjRDFir59/dwaCvawKlB1pT1x6xeor3NCfzuJ+ZP5EldVW0kUv5CqMP2jGR6fRPAAwV0CcjQTSZe0OS8jta0UG1fkx0mAfsgG4AC24kQkWS5qjjnKcXD126562CGmhCs1fulGRzOu4bjGboEto9t5YoR5vOaw3cBJPyIe0zevCsU8NGC0XHFERh4j9KkwIwHaqTN4ztRdRFkxG5K/NQl75KmVuGVrlYAoDSdwNW+RYU5Iw7lUMTxzOMKszHWicoa63QY+DMaCaQwRmEo8sZ/ajbKbJkamAxtFBIbZhB898wiiYpT0Yhmv4IlZq7Acx0cQIcEwiBpvw+vqMxVtAO6M/Qkc5DPEHCVbJw7m5xXh7qa6q7z0ZkjhCn4U0O5zxiijB6fMCx6FhSTMtOaeO7bPC1zhVynK9R/zSwu4czAkN/t+jTCrDqf9hACNc4/OGr0+wL/P4P2Js3Wr54c4nUw+IB2BCcy5NOloxwHytff4Ji6zbLq5wmPUr7P3llWF5harjc6JbHWKjfZavMHXjlC5yifJdz7P6LV8bL1QuLZae1Ur7enIs19ZA2YMtykYhedwzEcgJ/Et8AW+mhX9OhIpkyuZKhCFjFd7JUgKNII2XkpdwHt+LfW5JnxAUZvqpQ0HYMevIAPKHy4ZJuBxgbPqF3KPe66IQlZiMIrqrJvXemM3Y3B+wIT8Dn0DSxbgoWeOwh0HHSU0B/l9+rwow64hqSKCRY+G7tGkBbRSXy5cyC+06PXK33sAyzeJwyymqBGGpkqh4tQQ8RkVv1dcYS4p4WnMrC2ZGhQ3Z+lEGUX5FvLae8gJkOAXvld3GrjB9GrqmT++JaDDoACGNcQERLZrUSBVnj+Cp+M/2mjihHBgTlwlVvc98F6dTt4oRylJ0bHXif/rhAZhYODRRFweQLLia0DNLjuy6Z6m+kTukKiseM11HTuoRuplCFXGeujBO+1jkZpQPCJRZTCZ3wDZQAkhjnr4Q0AFOa2UhNxO9IRJ1pWIUI03EfZwnfAQYmiOUkB0GEMBDM1dDKgNFcPfS0DoFUCRjEKXOJHK0dlY4v0IDsMbLQY0rxKZPLHDC4LAsCM0+ud9H8rsYBKwiSl90yqUJxuqBlm7gSLJFR4mR0pgIJVQIf5dX63TbL6TIGrzjugW2MIVmfmv9iEtgm8IgLMGJJFEgnq2nGtMmQyUnkwgZ9agKPfm4DTLUiO8f4gdJPRhkE88LBizLB6t7SAdm42Py9x9SJJMKEHoyVDf1/BxwESuqcDfq2Rf0nwLtG3idQSCwUUKkIZIxYJVoQBn82yndwtv9K67j8gzfmyr0XBIISQb4EXdemW+XxzCKHfvbLnTlWGIETl0S5NDVRvv28X/7rP9suty9dop2l8hp+rHeYs7/ONO8n2FjuQPEMcnyXrUhXLs+yuXizfGllUG6PzJEU73b5RmOqvGeWBPxoxm+tgTvYMc+pDHzLvMY8VR6EqjCOwqXScXrOHwYOqMwnXUQpOGLzRaaHFwOFzAZuPQE8gaCWVSnxqT9HBeGALL71zVB9hL2PUGchBbzDbVCfgZiy7n8cZdCpcVQUdpDO6CxLV+vAaQy1y0TAJmAoDOkPrzvIWa8WS1w/+nf4Lu/qU1Jo5ZUOZqwKQ1USebKfDo52j+vHDEpRydSlDzNyxbP6fTXx7GsWfYC3TmV5lrImg3SA9F8LempEeOCt+wazGqds04YxWH45Rrm41W2CPYNOYVE1gQ8LA6XDGxwm0SaFs/jD3SYd043SQclmZZFrYBr+wzIC99m3KCwor6x80sEDBl2nzHa/q/KmLcNZsgmb78IiPxiAq88R/ItikV9DA+g5hKaTIN+pjpMriakA5mgnJllDpho6AUl5gFUDAGjFjDiucNBIbwwipHsQHaLpj0qSQJmHyiLYtIsShtgoIjiCWhjlIawrCiLb51GWJg5UUdLjWAYtLIoRTu8FijhVZQRR6RH1qBUYkLk3n17LgRNYZ1yyS/QEREtopwX6j4SS+zpQGwiRDKqlWM8zpL8QwC0xnqzDw2FsCW7ffCUvNbdawF/j1Kib/oOBMMaQ53GViu3M9elyiOZSdl9GoFKT4RkjdQw+9Zc1seBWGDxmYKrm/Q9J28wK4cFhzcIJ/gYjnJVHZ45J2dJB4WwuLdW9fEwdJpkOMgPLRm9Z3tXJjPA07IDgARoC/wA6XaXNv4mw3MYvpWN9BbP/AqcybJ0wvWAB4sfxVS3gTDdG7wdkbP2AI8vfXCQTKFZTeWWVlbiD8gYW17CzV7YJ3vwOq61vzc3Fn/GjJ0/Lf3J9gnTDWIoTt8rvthbL+4Qk/AgKTYLLKeq8NsU6LrjzLbEyiKnIEQgvOrI6SjsANdmO08PbDeVlGBkjG7HlXboZa8JVPHnEfyqk+ESo+nzFS6qMQXcXLvowBOqcZqWXhXhz3wUTV8A16LOyy7RIS4dK4BsaQqAaTOOFR/3g9Fyl6cupS86RpG4NmUwJmbppSRALS4XgkrqN/Hf6Z7iMvrAOAFCNUEux4KJuF9LKcqVNw8E2gCM0RRk6s6EOw218qVqzQKa8orC68IdyMCHfIn/iECmMaDszcrqmsuXIQW5r4QEnTbg1TrwrP/pl9SdRQ7YZqVSsi2EjNEvWUpSg0+gsiNGWq57yXZOBV35zwUxZFnJ903B7YFXuVKYNdlx4X4tR69CFKS24/V3OUKAvLQYoAWgyIAiXHWDGp3ipLnghNEZ7N2SKmOPAqKSrOADAyO8eTH7MKD9OTM+JPpuY8Vo4zEWpRAIboiBCnKsLXJKG4eoNSUCeQGp9uSLD7BVk69/hWRAkDdIxhMamPX2H3DTUx38QYH3+j0IF2Q3v4VeTdEGETMc3XyI+IzbfJXlWPPiWEQWFULM0ggRujmPOwwUR8DAPVYygLAgOoOI6uguc57Sdv6JmeQxSAqtcyhUIK3Nn5UP9x5J/Mkhi0pn73b47guq1PiZq21Fv0k3FvNc4In12f6NsvMAfBTEl1CbC8c7oVPlT8kkNCW14E7+FrrdjT+GFwbYO2WYDolZxZGoBiLNM2qQDfZ2lb47y+ibQBqzw9cqX8U2+PMPhHCTB+ybm0DukD/b7HBkmXmbLywWE8oPN4/IvfrTBtper5ZtbpfzMarv8v4Qf3Gnsl19qHpYf7B6XqZWZ8s4G00pOVrmLRfpXxnfLV6/OcN7fG2WXVC6/35gp34e+u+BsEt65BH4Ufh3EWpoSRVTIg+LFE4odwBKXFgUEH1JOi0LXQkZ/6nAUlrGV4+oTom/QWh7VzzoBXhmGogzkPTOOxKEc/pEG8CZtJv+bjKcgMM1xX6XZX2Umec0B8PylMFM1sFYBlNYOxOPwrvs03f3haqIC7CKRK3s1RU0NQGVIDMyeMpMVbmFHOTdwXquAVbLZjgIBYz1i4YzC33K8HZWG9lsFpmAHj/RXOIVDZIoFB1f0IteZGYg7+Ium6JKyhYTAn1r44lVlrvV2whRXHJBujBd10dfICDSg+mBBZayyj5XOFf3NVEGfUZfUI2ldYFNRUioDnfGN+sO0tlSqxvTp76txZRpCwJ7ZFfCgR/TppX9AcczqyNULoyTfHCsfrXOgLm35Iqe7Qg9Qco4NgfSaMoYRH8ZSC0l0CWzMUw9TXQctsMXRzADNsxKKeT1I1ueFFxizl/pAmmYj6xcALMox68Qt5WfolhhWcRkoKn8OtDAwQ/0dJaqDUXalMbO1OPppwanRK4lsl/tYJTpYrddpY+2boyLlsXJiLtOATGe9VAU03OOfTAgScARKYKYH1CxydGQ28F91UQJcgSG1bnheKuVlW3QApDutiG+M6zonc3iEdUtkAJ1AEDW99f05zrANnnZxMLN6tnS0V+ZfPIZC7KYEr3so/h3amUIJD3jmU1KqbO5vljmEznCDj9g24ibeKzzvqcINlNwpcG+T3fOIFNA3USJtiGzitzlw9QTaTfDsTWD53OQxEegjiWi3432Uw09c4ZDRhREWJTgphrruv0DpsXXmt04Wyn93MlX+Xqtf/urFdlll68s9zr+6Cz/cag/Kq2RLeDy+QFaE0/LvLh6UNSLiy9Qr5VutpfLe5FL5IZPOYxZwVkDXVZi7g6WsQpDQYtCpoxaSjJ7gRPCra8LVO6P3XWU9d4YnEyoFzdsk5amO+9Rl/6lDIcl3PsWhfODWGXcUyD/hM8pJdRlXy0YHdfyjXJ9AQTuCm+JlwGqyPCVfyNfyp6N/LGh+q660HLLnFfq7Ms3lWCRxIQCcVqRioFUhrDrpjSNyoUoflNdc7HCqNKfbw/6Y6Y4OAABAAElEQVSwMNHRx2O7jIlyImIQHrK8eHPlGlZjVRg/pzJpj7TcbEOZDBJ0hhvsyT06oYsjPlvv8Zz4k4XdxcJXL1G3U1jwyiAen7MVU8h/rsDrR3NLGxQCTxoI3uYPbUo/27cyLdMOhozzC6d9MYa4Fx0DQFqECa7mOWdvup/qgRNUqTXqFjTKGGbktrX2VKu8dWmuPHqyWx4xoE+oWnSERSeiEVwiN32MvpdTzHxUiphF+QAsQuHq3AjCMIL534LwTVa2VBSJ3YEQ+ko8wGKMgxsUfE1K/T/obzpDazyjItNMtvvuceoQD9RnxWOIdhVPWalR4CpqeUQk8w/GyQig0uKfI4lbb8YZ2R2mw8q05Sht7gPQGUtDbsoTYFUkmfZZpvM8wxOuuXrkXq8k3ZcZqRvw6KsrkvRV8x/QM1WAcFN722UHhlDrOeV05GjCGKrJ7LECJldO0Ovpa6Y1EKYDM9BYWWZEXeTE4iF+qelTtq6Ak2fEUT0dTpQtlNUMPrJLF1EG77xTPvl4t2zfvhLYAAWLgdTAaMBFfuiDCt5zlPhc+bHbN5nCNcpHd++VT59vlwu0twKRv4gT/BrJ78wpRSegK0kQUVSeXn2dLAgG+D7aH5Rv9RfKr683y1fYEtMgNOG1C7PlH946LS+eb5KtE3/Z9i7O/bnyG5dul18GB796abvsDjbLgNCFkcXXmfLNlT/BmvqQAWKBNDMLcO8c+FUJSBt9Em3wZmiweIhPTb6i/zq4pYqIlwd8zTBNNwSgxuzE+A9zS7sEFkIzJWWcaesYNFL5Odi5uuiKrfSPoxZ6O3BkgKItHe00CzzQlroMCXEvqydLG2sWuAQCfnOA0rmcsBKuGZ/HI57+hqyq2AYsdGBBQJMmeOUW3+Fc6tPnOg099fWoJ7vgRStPfGe7C8pMJRjFRd9VSqav8cwDLX63mfVQpDbo9M+B1yBX6ec1eU05UmGJtKxUcgeKwieaCPA0f51utnhO14lvy/YM7uYzi2jgmKojr+JTJUPTwCN24AW+a836qWXH4m+yvJ5JJQWsT2uUviD/48zOtLic0iV7SfoMPXhOX1o6SvkueNFitt8qaZNmul3JnQriyQFBP+eVCzPl5fnx8v6TYwZVNJUR4w0wpGXiFpc2D3MFJkKYqU1htMM5JhxABGbMaQ6xSwa39bOHqi63NoFqlJGx51QHYp7VFObJdI9LOjjjUEeiJyYIioTAI0Zu80xpc+4fTGFch1PTocu0dKpHZkrjPZzramHFmkIMJmHUMdNfAPskSkKT1K0PqhEHaleQdH7aH+OjVMAMTCE0bJ++SHyXjQ2adESPg9LyKm7qsw7DNhyRl/DzXEYN3h+fhkoyvkrQuT7WluUgUhYuaNtRUzhUllNHB+XG9lG5fbLB2Xzsc+Ocw+dkJHjAyt8kbXzAEet/sbFZrs4vlTdweK8TXzP92R/nlOFO+f33Po7ibNBPo8wTEU8/DBJ16uQq1q1La+WNy0up9wbZFX5ybI9DQollIndUmyydAyLPDzmN5gJ8egXrSZiuk3PqYzJS/MN3sbhQol++OV6+gg9rFYvqU4Iq1rfxUXXXyzvEgu0xGv/THx6X/+zzs+WfNZ6VWxfxPSxwVt/IUvnecKq805ounOReFpji36Q/RlkfgpPEH4FwFZJCOMmJwdkwDvzwbJjWwaIHY8Zyhr4efKDrQcs8+zjFI7ziDgudttLLZ6OSwL/T/lP4w0G2Cx+1FErqceuMK37SJK4O4PO04vymP6Ox4ph2UTfiAd1ROFbMp5aFzgqnS25pamBtO9iNU7flhbVDe4YrZAEKfGYxyJHNbTj2D/5Q3SRHGzQazxRW/kSN0GenfVpv+kgPNRoUXurPQg1120n9XLBtBF8rKX4x+6Oc0ab4iE+WcsqlEf8GwvINRQb8wONGf/fdWpeLHIYqKBsqbWcLWoVZZQej+r8y1eM5ZYYiwaXgiHm1iwesxrri+wSyZhkljlai5KgwVpfwa4EZdgGrRvAcGJJRgrJeczAyNERZOW/L/gBi+GSPze9jBCC/cn2+dB9x6jf8M9bifLbsAKcGFZTbQXSQ1wAuGQEE0LgxRPpvRvQXAb2RrDIgZhbQsKoF4g3QbEGwIdMrFVxc8SDKY7FlAhlQYg9QapqqTpfGWcJsDgwdYCSiQ07AhtTRJdjS1DCa57GCDN5kVBTRWXLGfAxSJSxENQUGXa9Tr8oyib9Sqeu70rRVc8tOOsvjv/Cm2EFg9smbdCIjAQNGOtYb01r8RVlFpSX9EipQSmf0sM8hCu17Lfur7DGw0BPuoRYgljA31+9yxDoHgZLr6SGm/wnpjt2rdopl2SIQ9nOU2cfq2cWB/eHuYnnj1tXyV968hLX0I45bRzHPTpavrS2WpQuT5Uebh+Uepxp7viKGDxvBYdIP/qIc/uhPytrJZvkMmQpmLhF8iRJ0W8Qk/V4DlhmUl+f7/YDzz+4ytXtzYYYUxxPls68tJ0xiHia9TMaG4/V9FONU+R0CPN8mtcgvXGuRj/2w/I9vY55fny2nUyvlw+F0+XUm9Q9wSrvP8YLKHEukqz8HHLdh6lg6CJB8q09PC2CfRRozbUh3aeZUThJIyWxw50esLR4yB9gIUyB9W07P+8wAMpLznDyQxIhYG10GAAVIGht1Hwsh9Trqw3Xg1uPj5EUVswopiztoUNuEvYAFS4q3iqbmFnMQQ8hRKvHhgmunXHYGUYtia8vLPMGgDwwIJb/MruuOCeOZDMCleWQJmVI58VktLO4zS9Byc9kfDkPJEtKD/CX0BjlwhU5r0xAf2zvHibKhXKoogQbc1IHAqZWR+D1mQDxSp2kqCmC2zw644+BEZGtUuFqqi8N+204UbOpTKSvvDuYoGxqJf4znqILFKVfP4XZ+u1Dk+KGvS/+d4at8S3yk0+u6eim8XsWNhGGiH7NPGNP5AhXUCp/oklGZZRGBNu3dUMRiTLmYemNtln2wrlPSX1eO+jIaFTuxoi2ahlEkGIBXhx6VINgxE1U4QkoHsjdJxzkMpNDGImEEoD92H2DVttRFnbAuD6AMRRpMRNUExR3hO8KElDFg+qS0AY46KjkS+YgWF7Ha1Gu1jqzn7SWoD2ZxVY8uZwTSslOF0C2YgWeAMyY2ALvZ1+0EfQJjM6JTvx1xdDqE2RLrIrLFiQqcey6lTvF7GQU6Qxs74MXzDUWrAmQZRxed7qbDBRiuyJwAQONOpY/Juf4vmGK/QejAOmfxXcdk30dYNjGfTwat8kukAV7DL3SXSPDJ/Z2ytzFWfv93Pyg/+uH9MkaU8dTBbrl4xKk/D7vlyQv9DEy7WBC4Be5vMF5cIbRAOjXX1sqOodwI8UtMAy9xeqiC8CMOdvjGMYc8TK2V/3N7pPwSwZt/dDKKo/+0/OzkJ+W3yI8+i79gsLxY/piTkNsoiAOmeivT2+Xzq81yc3SlPG6ulm+NLZY/ROE+xmy9CPOtYWVX838Ehe/ozt69jMB1r1+SvoGqExSGg2D8S6BFS76PVeSUR4bWgodKvBl8VPf0zwENhuMZLCeEw61LElWBzKoZ1yydkBfq1M/k1I2L0BF+VLB5qySm2DKiIjpBGZwyCEKpBHKquMbpqzzvKO9Lv6cWKE/iIkESqLeBf9HdGPGVcUcHuda8bSvYLQbucXw7xhB1UPQqGS00p43jlFV47QskBw4CcxmojAV1UcqlKAXVp7SCknmWdrXoHQQjY3RIJS9+xYuKVi6naejuk1aPAcF3inCnKnpX4lQ0XepR8TvLOOYhT0g6V9IIDSwLMDwFtoEBWRUOn/Uazxjz1SV1UQ9eneK6JyhN4nqh6ii+BPme9xPec78LqglFrGUKbRn8PYU9OLANYDFaYDwLdZSFAE0GbNt0hTrJL2lXN8wAo0EDxl0AA2iHEaOfwVACgAIx5izX4hLZ+nDERlJUOC+G+XtKPx3Jf4QcNcN3vBSUJzYxz1hizK3cXFPBuASaKaHcxoNx0MsIMiXXHAEciZRx9BNYwC/AqCai02GIkbzYUkOAeCUzKr/jcCfMQrjDQCAX0U0pwAV1jiQSGwRp6nKtQuU93qyYjaHNp/CZGKaRlZBch8Ag0lGqxVFVrth04BpXWWzHlworcV7UmKknv6PM4P6oMp7lTk4TInKSQzrpIzjVzyGjGWHuKqs+BH19TaZvw+5O+YP3npbXEKaZpflyzZvA/eFTTqJGGd2B+G8S7zQPZ80wX5lwykdwqv6eFtHOb03CZgj5Kdc4Q7Z8k5W9f7/5ZvnxxlG5w4nWf4up1SpT72cce/UU/+FFwkS+vIT1h0L9sLVQmjMn5d9ZPWS7zDQO6Dvlt3rz5R0i0e8O2CeGX28R39hrIFHBrkGb0BNEYjSH2QGG/zChtFIwwJM4l0En6KOoi6FD//whjdxH1wAWt3JwkfoUxio8DpQqlFBUp2zox3MKEnyqwGndqIxyk3pRVdSLlSzqeN4oavlrAgFQQamM+vQ3UxSerRHwKFDgGHeaQ/v6V/W/GQBxYpAzA5dTPEwFhKsqWqeQJ/I2XdUfUzf/+ix0F246pwCGz/DP4DAOHMqalpt85NvFCVeQHaF1lAM1pwhN8vcMlyBYpa3y9QVa1em85T/q4YeuDKeEPqth4UAwggL3wFtpoTJQwymCwR3XuvCSloMKWgUfNch9n3c2FcOEcpBCsY2VfGBZhBS3f2Yzowy6Wrcqc3k4YRHIbfUnMuA7kPOs7atHdOeEJ6gzYSC0ysNneHHzPMYMukZ9MU5Kom9973mZb56Wn3tzuXz7PpGHbu4dYKXQvWAhsNkxgFIIdQoOsMAcwZxveqxSnJgEN8Zqg1COeJprJsVzJaQxIdEqc4kg/VHwShhcG1zeaot1lJ8O0mxGpbyHGxhN5SqlEe2utpnnPEoEoqh0XBqNExIimvdHRnEJd4xK9XUk6pi+JHNnaCRBz8xbmTxEqxRQnQwZNVxaHoKUbCylbaqLtSZiRXCP0cSA00mIWFPfuk7HEqx9o4OJqaFP8Az4grDwgatcKi2H7hPqK/MwIId5Oph5oo2jxatLM4QTtGItfbpDWhYeniEr6OtTM2UZosW6g5iXaPtN/FDXL3Ifgi5Msw+PvFUHTN91AK+yz09n/JCp2se9ifKbWElznd1ytTOb6/9otlX+4gX+AtpdZiQbHhI2wZSxd+vl8l+yyfh/OfqwfG2pVx52Pi7Lr82XzuT18heEJHyTqet7LOvOwR+r7Cc1rqeL8BuhTK9hbPpDf0ehCawKn0Q9883pmAyKKoGuoDwMmGVvBQm8Z0GDwVJL3nJiK/4YSCO6FJ4EKEIM95E5PZFPpYl/FAKd6l3whGap1hVtaSWId7OzOvIP4bETQkIUatgDpaXVQd20qz8tU0D4wlcPPBuXpB9Myyl59KlDi8ZG9YvBlkDGPTvFyzsqQ/nOLTYqCooENjoPPysL0Jt6HOC6WMauv8A6cfTbtxbPy3Na6dXy1y9qvfqA6BM/jEnSOlPGoqioT8SOZoonHfguMaRJ8FOVWEdXDuWcTtZpIDqXQTJxaipm4NCelHb2Rhrot04OdqzGTDdZ2HGBJ6vh1O+igosHh1g+5u5ysUCaY7ZCB33STC1R6qaZ8rq4d2U2LgDqt04aQk7AC8169qmB56PwcQ1fgRasqO9vbJU/enJSXl9lNoDiNXofTgBJdEAOyBwbsH0ohxPYB0c6EKCW9TRnTVUXnHy4h2XDojnYl4AIPAgPUVhi10FovIcHbKotY0WAlEQdq8HpiN/V5vwJ4I5KckADU1HLyejcMLkjqSO6008IaOE8R7v0AGCsC4EEwRkZnIBSrVtRZQxpIZOKPufNZ/xJ/QgOBFD89AvwCCOZS8tMUwxY5XcbhmdCUUY5umqWaWE52gaxWgLUaafOCGJslIwkk4lLZBoGpp/UnwNi5UBgaE/N4gxvlwUsoXG2XMzv7ELIamHOwgTC2wJv8waQ0u9bTOsur0EPnudRgjRHcIIPy+1ppqmEI9jnu3v98gcP1sv61LVylxXaOeIdrlL/+60Z9vw1y2d275YnW2zLAe6x+YXyG+Q8vzQzy5TutPyTwaflZeJdZpauYOovl2+MzJc/6OCIB44LOCtfd/UYhEmHPRjL6VwTxqoR5eAFuAzZqFNiGN1ZGfC7Od7pDdjgWT65pnBmxZmrckD8TzC8/pcWiy71WDIwgPQyxlKnSgv+hO8M0nTLjC4Mn9WiM1NFMkwwcma3BrwkBuWb+I7gOycEKoEeGs9cXgY8UwWr3UTE8zuxXTCI7TgQi3/dATQRg006xhnPPcwv6tbqQVFSRlJryclfqAmUERY2+JAP6uk4/Wx30Q2S4Ejq0OJRHngEXMrX4NTvyI5+PhUG4krbWhmoXyc54L8JH/lQrHs+5WH7FLeIOOKapxKBYpQbShA4VN8ZCqhbOHX0Gz6QMB8pIy5po/qrVfI8b5u8HUSy2goALR2z4NiVP63UUSxh8av15GKD8q+iNqvIMQtT7qRgHzgOcnycKH8RlAM84EVjz5KxmDL6s4Q/sVnQThoeYoRkQED5dVl8ajcOyzufstqK73Sa7XuaS3RUE5oHRD4N6HQGivw1r01d8YNAmrkShHItRlUR7gktNqBG7LAPzROdVSIZKajFqUBGK5CrA93YE1PBuOeKrofYHlTqSckhIn+ThgYK2F5SvwgDwqNlolrRxZmgvBCJMQzG7ZtxgcBKjx8yklkkunXbqa3UjDOWzxr7YT2N8gKP3jqBl/0VltFB6jZc0OH5WRA13zkoYyxZv9h8Vg53N9ki0ys71PkCBI+AeJkq0x7q0dJM5C6w6Y+w7zR69gZulTJ4OOaAUTRxabIJe2cbhzvWi4JMlEgY9hI4fI0R0xTBM63TcokcU/omxgnq3EW5tFhTfpNTR7VedonpmGX68vCgX/7x6bXy0cJa+Q8bx2Vxbqa8unE/CmZy+2n5iH2FM+Sh+uwcyfA8cZk+v0Xs1L99u1MuXzgiVGGl/GD0QvnmYKZssfjhnsY1lIh8poI4oa8nyb1EgKsCyz/DFJyXuHw+7EJHrD2n8FomBk8q75lOIe2glb4z/RId9JXHY5lG0KGbeNHKOWbDthab0xotLBVAhFNFxcCQ7TPg1udV3jqGnbLnRCFgAfWxkAzi1GfiPWx9FJRKlHLSDIHkP9DTB3jK/W2aTEmbbNXUj30Qa6CWU3Ei9uBEn4yxXV53hbAqSLhRsw1yG/IQJUnn9T2pLuS1DPziC7izMRgFxVgoUtJHVA4iiCQgg352kaEcIW85Z2wsutioexBl5ZqYkH4Ar9a+Aq/rxD7ZV6eyLmD1qE/8qZC1cKSDyl34hUX8OSVWddqXyKuFuG+dkRvakLftvesAtW01kXSLkEeBcQP+ZfM8wcvZluOAA01cAY2M0KgDmn1QyccvrmyDuj60cYEjgNF+QkgYGLtcy6IIPD+CtTZCfJenhI9psZgEzpHPhhM6wFezLHgSM7Ux+XFeiflGhXaY7tWyIoax2A45CtXzAw3EY1TF3+F0UpMw8R4wY7VhKIcF1mM7yBhn3/UQOjMiMGhDUU1m1k2ARx8GeGOlhpU5hm2DKIcI7VSQJRYZsTE/HUFdtu2NTpaTY60VCaJCGRbUQyw+Dbe+WoHRpctocYw5dAqMR/D51+/jZG7u45/bLW/Q5xW2/J5g9ZSnT+JjOmhz0CcxUuuY3C9gyqf7++UGuKAR4AY+PlvgBUOVS/QXPGr+V5UP+kSVSGMlUvvu1iSjyOY2ypU4nZVZuoxAMCr9FJbMRaLPL5FqmN3A5f42dIEe2MtlAQV/Bye6fbhPp/6f5zAUeHoZZ/0UTPqrM7vlfziw3UO2rGzg6D0u6xt7ZYjj/AWn1fw3h6Pln01vlZ+71MFv1SnzL71c9tsrWFML5TscSf8c+CdR0lPsA9MRfIAlpvAYSuJyexvnpBHI4Xr6py+zC30kmYF/xsQ1gENu7MCoOlUNMjYfeoJ16X8crdCBrsT6diotfevihjhCKKjRAS08Bl7ijIY/hpj0ESqFC4yr7OSVrFyLaSuiefXfkAUV+D1KBfkMbwh6Mmn6HDzJz1gHHshqvQY8e1366dcx5U+AUB6kgYqRthMIqkzAJ1rhziBi8SFDXEQpWrYqB0FSUThbcX9i2qGcMqRi1j+koqYISh5Mat3RcRdUxIEWZqa1dEqrS4WoUhlDaSrgwQfNOfUaYXWQC8iTQdfA5oAD3PZbBdaA77PST3kXqLRchUvLVjxqHakBwUKese8alElNoyIWBuB1WuiOgCNOJhqOwM/2VdSpHPkHtySMYmAMo4zPNRWfp/WcMDsaYaVBhZXspVISGDWQEpzLdR3rDnqZnlJQ/7AZUEaRbRcFhYEQDIgC8EBMI2pAKtWn5byUe9pZsRjsLAh2MLO4tNeUOwIgl7ZlTJdqR1E2JsAf0DEtK/AB4+H7YnR2Dp30ErSGJgnjhv4CD84EyC0tWkMyrTErIyyl2sks8RIeMQDJDfwATZx9XUb1w/29+LgaZKucYIuIK4DgKwj0JJ60z+ehzEI9spb7t3qUwxVUVkmSd+/xg7J391l5bcHpzhGbgs2A0MYRCkPQ+A6C/GD/kFo4Sy81ACwjoyOo5n82P2MF0BoEcI4e/ss9RzE0jz0ueyj+vf3T8llOIt57tlWu7zwvK6RwmZ8ZKUvkfDkGCesEcS5CqDtM/y5hTbnq9owj3H/zg03PnGFFD7Emfu3n2Spzj9xezzkK69/qPy3/Hvj4o6en5dW5rbJ154vlf+5v/v9EvVmQ7dd1n7e7+5w+fbpPz9OdJ1yAGAgQHASKpCmKoiRTpmyLUpyUVaaqklQqqYjlslOJkwdX5SFVSVXKSVR5URK9WJaSKLbIkmhqsCwB4ABSBEASIIFrEMCdcOd7e+7T3Wfszvf9/rhJXzT6DPu/hzWvtddeu/x9qu09ykHSL07fKB9cni6DqeWyPj1X/nJkpvz1wKRfdvtgjVWkrdaSWln3jy9CjK6oz9rNP2pKWOBPGBzgFqrRzdqOFhTP2kUwjEmG0kV2fhHs4kPrKonHWMlW1NSSEUPSA5wbK4QmWMfSIjvW9D+ipaD7QnhAgS8tWZBPKzvCE7gqMFLiBbiZvyf3J2AMvekOUaYLfEBqzFbGyekF5lntXCOA9Fv4XEGxz4aFYQyFhbtiufSDOUVwM1/VrVUuxLm72FA3gltXU8uKZ4Blh3BJrkuD1jI32pueQW9x0aS+gYpcKxJeMg4k83pgOEd7aJfgN2ABEqyN6YkLCKrLX+OpWioR9qxV3jSPT/5y3QoelYTekhSaADbrrXQJnwTekCPzU6gxgbQjIBF8aP0LD3GhUcKKK97iuRE8KT0xiduYsi66z4sXhaTGifW7RtEW8SgkI+FG101kCZ5gcMUTdFHhRuvL+JW7uZkJ46fQJf0ZfhIvQt6SVyNYQQozEkeRfBCaOuQIwjXwnTpXAFpNIuoHEHF2NeggiZIEbvG7si05giBygjl8jjmr767femCgPtJNbUYfHj1BGJqzIuEd8lyfoB0xUKED4qlsOZhK/+Pk/xgb8ZjQBH3t7uyUM/v3y8rxlfIquzsu2rmZ9WvcTWAZJGxjtXkL8pGJqzIeLfFW0v+DPayXFsQjwSlD6MN5z+Bu7bUp6QszvbBn7KYVJNY5XmRQ//raVrnOWtRsjuNh5VxMIOCVgPyoabw9mWUCRS0P3QIYAu1Th2s8bzWHxvnVc3NlDAF7hmJ7xzmz1yDgP0NxqXsg+g7xrFXiVc/MW44YIwuBz23t5avXD8pvbh6j44Xyjxv7ZWVpsjx22C6TM2fLHW5d1jJ8YXey/AyByZNkrtdmTpS3SI/48uR++eWlgzI73yIV48nyCsVp/i0B+e/hep0yHYKjOE1iEWquLnMdxRVOwFhKF7ysyXikIQC8PogMYoY+XLKWl+6GzCRdJFeO5/ZZsIUBZfJsqdOR1k52E4FBDWEeiIEAYWW4gMZY5h2EFS4AdJiQA/CGNEIDIkuB5w4TlfyiFGVArXZ3iguH1lWW5lsl/IAgsPOkprxP8El8dq70JVVIMyPSPTSkJeMYulfu7mVecf2M+Th5N4x0ealcQJskSztt2mod6HrGqnGetNfnUBEosHowRbbmGWuICy/deqC5Cx/oXilk3YFkmtWcVca0ka6MJ2mxRJABa5UGaALWrI318hbcm/4AJRNGkD6NqyVYTndJq2ADweWxivwCYV7RJv3yGfP0LkrXrwWssFIgixPn7269cSYFmVZUrqhjbAWkgFTQKPzsX1VmP1XJacDmmMwnB5rFOmvQVTav0fknlslf42re8lx5dggy2h4h4JQhPbZ5E+4BHq6NpxChPOQcBZKmMaFPhmJsgGxQM0lgTElfXY1nwqVI5QEED8hBqNhBjiQg3R1MbWZsxtiBkFVCOrExkOXxn2gDAKw2EDgiBzsQIMkg/NIn64ugaxN8Ps9Wf5ts6ndIePRojSCyT4N8uq7b3B7cx4W7d+0yOTPEegDoUJMUZB4g4AZoOhHoESHxE5eCde5AUJepQnAHwMw3ENZ8r4W3AbT71OyZh/nuIDw9uFpnXEFmzgozpGUFM7eITa7VHXbNQBG3iAJ/ZJoSHiuzwGBh6rD8wxOlPEoB0QeUKh52uT15qcU9fAhvfPSLVOdcjAAnqL7POb473GYD0y6gGOoQ5T+aGZTf4kqrI3bqmjCIKQ37t29TWrlbJuaWy+/OnyobGw/KPzoPjKc43Ny/XJZOnii3xh8r36Be1fOdBmsyd6pXPs763SGiRBo5OQhNrWI1JjiQoIWnW+ssocIHhJygtzhi3eJIZpXpPeQuLHJLb54xURGiwvIFKggSCBtaqM7bAR9gpIDQihG/XZVjBI3CApgjkBK3khsY7yErQGqZm1rdWeRgbiQP9MP84ipAx6nqIT2Df0MdCWQ7XwSDu4kqDp0XY1f2pOfQAO4GlRS+7kiztNAvnTBvhYcRU1bJeDLfEUwso5pkLenrttiPXsYYfZnlbwxW4evOmFVI5ZmkavCM4QPPlJqFL1MaH9MKV9hqoTiGAt8yOontAstKMQpH2seCp3++16UT0sa8gh7m7sHyLgIM0cr8XCXjGI7xdXALAOlHA0m7hqEqi03sBi5V+yGuuHTCMlizoRTgQHUQraxDizeiYAxZGK5pSj88r2ckXp2vNMLUwQ3zQ64Y02IAWvEHGB0wHwV+3GL6NCat8I8lDSztJ64qK5wAruPAWcs9tdy0CER23XNZNDyEcPiEh1kSk9CaESAStMhwu7mPX6pm6RHfUDpne5W2SlGJWbMxBC0CnJwLQuBpwgsYohuMRa4Mk9UHt8SLVhczAugglH5y9RfiwttaNmh/ma34ZawQjadc5w6BWV/o3Vf/GjeUWAo7X1MG0BBaI8SKVEkKKgfnXDC1d0gxYG6390pZQ3pdwbK60i7lrmuk5rF38bURUhtg6SQQ89YpLQbNehHiz/+XYwQsZNcdchas+c5oWCroB3JHhNkEhNUBnutKBdpe4+/e7bXyYwjqgyvjHNMZlp9ephYE6er32Ha/tD6KSzcov32zV379zHQ5MdYp3x/MEPOaLZ+Z2EW44k6ut8ujBOT7x86U/+UH18svLeMWU7fqN7bulF+Y2yzHZltle3yp3BlZKH+Iy/fSPkQN4k5BwAo5BXXuLGSduh45BKwqBER8m7XJfBKbTGr6ghqOj4A3AoxP1chDJHKOidCPRzU8X2oROQVV4is+IAHaD5aRcS4P5GqZOZy5S7FQSMWI+y8TSzvgXWEjDTqoVrI3IYX4wLWfS/daMALcP+6wGsM0JgTFRiEpRCNo6FMm9zyn7pdUqGWWBTMm4r0MwYOF8hQ+DqBQ07rQYgHb6jzGYc3QWYLojOGpDi0Z6dp4S6xPJS7wQGuF/oUtk6qYkkkndsXX7rY6ViwSXTxKWQs3JohFRq4eazIoPUpMM240c6ziPAghxnPNHoJWcVpLXX5S6NtjXXj6F6Xr3PwHBMKTrtt+TN2oATOFrlawPDaCAKosKrqBR+UpOqV/KZfxVDqVbQEqsBxJ+u1RM65O0cVsaBA7qcJJlRJwHIanf3gS3mXvNPCrwgcOQd/MzXSg0RxVUq7gAuomA0NDADlzCR50sb3pXHoUx+RhuRCYXKSJGCaklIPGQxi6Bcw7FteAoK9CckxgIlmPeM4MYPNI1Lysy4foxwGZQJBcBeOU8MbFpHyb5XwPzBtCc0yIm/+yw+FiRtAeVjSQYI/IgzpJVnyNoyR3aeQRnzADz7sd7euFxSXmBgFgwvcQFlo3SrbLCgzG/gkENeDa8zUA8i+u9csVzKkPEsQ6SR6UO0ZvIXTmEWYK3nmAd0Rwvoc7p36VGCRG3eddjqkcR7A+9fgiH+9CDNoiEBNLw9viKA2zF2D8aGBe2Twsf3XloHyVipt/tzVRWve65dO4fZ++2CzfuHlQ/vXrO+WfX9ssv3r+VDlJusMXJ9vlk8SzXu/PcbnpXnnhxm45ttQvn2gdlK8hiL2f74fsGHSnp8qn5jnvt8ghag5L740/UX6P2NvXd+rlDSbwEaorXMBFl/EkTA/3GgzVVTI50iVJQJZe8eIDt7NVXH7Oy3yeGk+U94E9WD+fgeMOHDXK1pGBdt12BUvHIzesvUNMzbK5kF+0u5Y0XanvyMnF9YE55LgE7cGTuUVWYLCgIqirtDfcHK1LH8YH0c3MrWIALQ+31b241zLBbgQZCLfsTpQgzFsdDpbJwB3zjVJnAinRzbPeOBNaZO4ydcody9Ys2rw/SCcCRb6oKpkohIEhgjc0zTNaeLr8ri25e64PWvSWGudhhr9AlCfgErb3qzQA43IG/80nVBpEzQEjd/cEMN3St0/4Q6eswZ02cRbhiGWmANYlUzYiGnnW+RIA5zOD7sI8da7oJXxMm1imjsNrFYr8YsxSnjdcE/wCazcN5DctVoYEb5WlrRKTrw5JBkcchmeHZL47lnHHXoPYHTzq+NmJZN0KHuHDavmMNYmPrAwYs1D5XXfWckIqIJPIx6ErhqItioInNZBUALrBKgu9PTLdq9ySERjaQJzmnEmi/sZ9AxC594+/AySpRyUM/rl4p4OcBGgAVSZFkBhs7bOT1qOESggNxOnLJsdKIRYAIegkOLPhAdoYcYhRLrBwHxcFEOQ89Gv1s9Vw7lhoHSV2wrjuKnXYXUO150qvGrEhgdZl3B7W2j7z9668v0CK7GCWngIY70Bk7wGsS4zhUYA9hNnf4dr6Fdb2FhbCJlUzNczMM3Ncoed81d1ShtaCjGVaxpu3N0v/jNOfZJ3CjjgDYJ5kPh1icetYb9dJ1nwZgXUXwfn3gN3TEOviIxNlisv6rnBa+AZxte/dUCCOl2MMfAjjP4IAHUcIru1wyzHwaCF0/ve16fL3WM+vf3AOV5ckugc/LP/Z0yfKyNT5cmNkluJ5E+ROsWMK/GdJ2v0szGNqigmvEqMWr1rYuVdBTbVzZT3LHMaYjC1ogmsJePBbdA7cUpZIsFplWLe7GxQJVNAFLhITwt58oDG1O99bVUDGkwBlSHV/Mvth5Fw75ST4kSgNNktFKjl6gN4g4phQwjjkCiKwwplbrCvmAhuyTmgHGOlmyQRJJWHQHjuxKl3L1SgY4loJAfCtFZRgL+PEPcrsGJp/7mKxJD5RaPM9tBKLCyapbqvhBhr6i+cAXdATY7gO4n+45eacuc4RwgcePtZCSYBfhU5r28kjbiY4YiwmBKcw1J3jI6wVekChGKi2Xj2gjaBSMCk94mYFK8CZ8RWalWpQMGndAw9+XXvODYoEfuL22Yl98k+sGCKpyvOwYp6xpX0MUE7j3CnpOsWD7p+ekmVvRjg3moZBLnTPMwqljsKJgGMX2BtLnOIKt8S26FALPbhlDIVSRR/Vmo0Huxxj5jrqWlIqKIbmL2IR2Hl+U9piuhUdQZu1MQkVzdeTGBjEJFKvf7czkUg/6dAXmn9HEHHqE9GJ2kiCHvgdvUpEsXh4LpdNIAj05WsEdCVGY4DJSwGoakBlgoKSP66evupUcDCXFanMp0rvHTSBF2CaWCgRE9mFuUD25hbn5kjiJP9qdGKCHS60q4KU9u7e2L/Zs2LCNUhSWoICZIUPnPc95qkmneBQ8ompyfLM3HS5sbFZ3tzpsKHA/BDOCk41elvmADnNAAYi2+GQwmgrxfR2MJHvEQ+7toVlx9iv3euXHdwxZFWZnRwrv0xAfXpyWI4vAgeyzp+/s1fe+3dH5WeXj8p/+dxs+R+/q7BmnkDa8rVvkfV+lwtGW6dOlO/WVsv27kH5lfEtXEg0D9bRu4s/hWvZKi8hLF9DI7dgiuMA0/IoVmxVMjF7/jB3rCet2hoCBXxnHAkwLjnfW0ETrqliFKwxOAXMprTIWBCH2AHRaHbeG2vIThkjKBRkJIUEsrVyHxGWulg0lzjoGuUHvjI4a0wxQ+DiXEw8VNvXcjU8okdFSUqFzG3fumMGuQ14585L2lqB4IDQgIrSZMSkVIhXCN86VRmY9xJX+uZ1VcGTz5BCnqLgg9CHqJT46lhElQUF/GhvrC2WM6/dZJKBzA+Kq8R7aTiCgHXWOLjsbrppB4GX8RnmWQcXCh6/PwLeoUFzBKFthbBTHcKMwk7qTO4W7QW5Xw5Zs3NRzMQsgBdyooK5a15JLTJ4fvjMx3I1HcscRfAp961wMaEnBLBNAk1rlRO/mZBzoA9LPyl0FZZuhGnJsGr4jz5Y4xjHt4yzGaZROXj2L/XKHFzesj20JJy9hVorTqViDOxhHMr1utNfWVPMlb5YRp6VZ00365CYbUKvpcLxdsPLwtR1q+zcBFHggls0WAiTtyB0FKawYUoXCyCQlEqkBLDd0jVWXmOHS7/3iHwgM3k1cx3Y4xsKKYUaDp9KI5MyoOlkLC0D7wQpATuLNJg2FvcOkxe9ockrAfQJuBv8m0TjjXNouLbVKfcQWIvMdxzNpoCzZO4oR1kcW/fSbXMRbia0Ow8pZsYidYk0++twpHWwzGw3s9zckmXObf1ca5oEyC65V6wXs3gaOMwCUWFwEwI+JcJpfx9/es/MP9zC61hJL17tldfvU7MdIf/qzW55emGqzOC6YjRxAwwpCvx1228Xs+36NhYTsbLbm53Smm6VP3t7s3zp6Znymx9ZKC9wqPlJ0huOkzf1vW69fIODzp9GgP73FMp7YnSjTM6eKt/pzZeXiXW9ynGau6zNci4XiIGY0DgGkk078KoluAKYQ+wQUYd4pJeJekrgAJwoqD3bOcCkTx4bOFLzWkHApYdZgJcoAq18htWjJSRR0qcCKju4WJVaB7ARrh445mHjG2ryrjTAMwlOo6GNC5n4CUKgL4nbfmAS5udxFq1yBVhSbHwtO8Kw/D+WgErVOJUMaqpClX6h4HR85sn/jcW0wIn2gizuucfQArQ7EZeEdbogxlUTa31FHDBn/xqLM+VAN9OFq8RTiJF5GcC3ykGSGlln3DTG0NqPew1Ba1G6jjqWtHSebXmEa5/dcW+ZqtNf8vGAizt/0mXSFBhfPtKVdd1MAP4BRvwqdBXMBu2jgsCR37sMk1dNW9CqcdMq8TV4QUFv1QePJQ2IjR6qwICdme8p9qeyoBsrvuYoEWOCArhOqxkF46YB+FM5HRH4HeE+zGmspjo0NJHNCeDvBCBwPad9XH1hiuoJvrWiPOisBa1XpVByFXpITMEVJlPei1WMhStopVXxP4Sf+2zaHFLBxPH9GaDsZHMRfYgG45JfrxpigXZLI92vBCZFnG6b/9QKAFmTVhPRA9Opc6Olw/v8MDmRpjbwx+J+CggDbMZJnMy8FQ/o9xb1pMxgNwCpC+gy3HEwGREDDmHIjTAw2DTIHiWOs7u3URpdIuW4cI8w8zrCpdNshfEOiV8MYMogiTkg2gNwtYQkKZCqnU6R7uxAMt95UHsLd7HPWg4210v3wRYJkvUEt4Fgrnh3zedZ3odoe5XaPDdA1BzraYOUZwDi/b3D8m0yyWWAYzwrA10kF6GGmzmGeb2JtrpHUN+T7a/tYjHe2S2zK/Mcr+ly5GVYvo/J+fWru+VvPjbLug45ejBZrrL93eL6rt//RKs8PtcuveYcB48fKy/uNMrzHIM6QCCcBw8XIKA95rMH7JoQpMchtJDdOVUze5i2T3DcHby4HcBXoSPiZZS42UBe11+CUgtn9w34VTtdigsIG+vQlAGGDaO5xjqMLe8Y8FXw9xxDkifGonbNlj1z6WDdDVEudXPpeN5yKjKD2joMCK5VJHyIFSKN8RcmlSGgStwb+qUfLVxvv9ZqtjwNrYCp7haiiTWF4vThsgaeAT7ZUWMtClnbQc2hR3iMdfEcCk+F6tPZpaNvPYFoY/BdMTgPQacKVy080358XgZTOGlFyPwe5o8Ugdh0BZFtbjxGCJngq5DvE/vUDUvyJaZLjsAwdnDF+1HW7z1/lpapLmmtmD6wh669bFhY6/a7ZmtYubYIQeDk66RcMHfnaw00rSWvTjPD3hvBPQfs4XsFlD8KFN1S+xWIKRmuDICeFW72Y5/G50asOUYby0G5s6zwZkhcQNxg+g+uaWf4yBut3D13Ry8pJ+/TnnCjMXyPEBJWzCHxSvDmZl6sVTDiBg5iszKagLebPMboIFXpUO2A+QYhPjTZkkVLx0r+CiBu7FfA1dIyB4sRmHColr8Qj4tiAqY/RLIGsQ7AxEkx6KOFmrg2ZlQP57mDD2BodnfUMD7HoicQPqtUTzjFBQet7i4B7F65we+lHXaPuKPsOMXnxtG2G9zF1yd3R2unCTA8QmJAV3M1k8hcee2i+QNosw7nZ7bDGsjb2GJUCun12VmrNai/iYDhSF75xbmj8p82ycnCWjpD1d9H8OnF1Iv3SR5l6cdJTt1m7k+yTkJR+N5oS75fhzBu8/x54LPHOu8gyG5ybOYOV2H97ONnypmT8+XGm9fKt6k3NXKMQoWjBOApyvfq9lG586Pd8o9/eq6szLGDiVZbghh2asfKv9mfKP+aKqB/jZv0KCA/T8nVOq+HxPx2FEwQ6gRrwQBFAPA/cDgZawqCZY4y/IhBVBgmB4EhGAWBFTr7mKBWfexDWMmdgZDdBpeRJrEQ3U0KmxPPEo5QD0JOIaY1zXdQvdYOKisw97mcRmDcSrvirpEUW1WaJf6IZbHL5SENBI3CRJwrOLWKdSEl0NCBc+W7lOeW1mQe5qXFnzACr926tz+tKiaV8XQxzJvTO5AxYJmKCe2NOeWHz5s8Y3zSMAOLAGRaHgg5lG91cSmWD/9yphRhJRxVvM5BF8/blHic19A0c9ijaqyKGgJjjtAi8zff0HifDFnD8u2q7IGUhSnlLZOnha2KtEqn0GBXUBgvYu7Qk26pQtLYoILEmJm78l54YjqDBS+1VpOLBlZUFPKkdwZFNbNkVlbNn7lrHHgTk/lnnnkUX5bcVsklnUjykZ9pO6bVqzxgTHnccXkVI+VoX1jS5n2hq+Dyt8XuOAMnX6oDbyZsxDgqA5UCYigWmdTEcqD/ijd1M5WglbWtnVfhP2NmPozNOoN/hDC1s6qAeQ5Eign+80ct1UVb1EFofFw5nY6degJmLEb/XoFEA9QnwAnJaRrCyP5PwkbrusQjt8KZ/D7Wxh7xBslikvfTVMicpebNcW4tnuHzPZhIIXmbDOfbtSlSAxplfmoPoYAPy1mad9iGngSoTYCt9tFH1jLwH+TNFK0SKdKYFp8LLM1lCchTat6uM4Zl9O+dqRNjmi27+8yDw8KTWAELAPhp1oLcKB9apgA+ltIStaO+dbVdPkG5zk+ypj+4ZfyHip3TMDhCo43mmyZW8BME1DJX1nzzvWH5CkX2fueTi+Xp1dHyMjB8ZrFX3rp6vRw++QTHe2rl2Ob91P1+anaqLK92ypl5BCHCccBZv53J+fIXe/Xyrzhqcwtf66P0+Te0GIBYF4u3ixlt0L+OlNISdmdvFCIUcdHWEjYwGYIrLWfXrQZl34HALEyNxWSAUy1+hEUhfLRoqmA3hEx7kzg1JbSkvTRB/CcYz/g5ckNfCrkqpqPQBt70ISOYHqM7544qHBViGyLM3aLX7UpuEPhQ8NURALoF0eB8Isn4jFQW7U+buFl8LtkbT5E2shsMbo2RuKMlM+l6uH6FjrRQCTKhwjh8bkkYrSOFre3chBjHhRI+NE7owR1ELQSmy4OyvSqumiNal3UibGlusqcWWM27NMnhk9p0+RRyyXa3LXTm3OxHgeztT6YtxAKFpiv4uFxgLYfAexPgtEaFV3MBR8kstzqEAlOtKz1nkwGrXC+sRmJzk2vXxghxuD3hvHRRFaxasZUANfaHQcB3EWQYIUAWePAB89KCEj7iJHjzb5auoEZQQSveqKPFJawU3LHHaWSCtlQ3wu43gzG2u8/QE3NVEEL2KBjaO4bzARZdwxXQVmxk5mV4Iqcl3h9DIWU1CsGvII4CAE/m7ZkeAdnDeywhxwVAJDZV/OUJXmsSWoALCERjqDmSjg/kZBTdCMyqaBSaQGx8D+CgVohUGLsqGqvNaKvbAG+XJkBbBnGruHrHuSHGSym3YfwH5Eitcbp7nRtidHV2EGLWoVpijH3m8wCg3MAV8SqsR0CS1pQ+tbExkanLMidiGdaqAloczlJNKgBmW81yfL5Rrt1aK//sQ7Xyicfmyp/e2C8//MF2eRLBZI1z6gSWFoK3t9Ase9w+e4gb1yKh9HMn62UZTfkDCt39wY1O+chMvby+3S3PHZsoHznLDTMktA6JsH/2JDfL3D8on8IK+xRHZ7SW2vP1coxkznuLs2XjwpPle+wM/q3dzfLxhUGZPUV8hQsbelzc8Of7rfLnayPlr4gTnmdf+lG01gekK9bTxoIF69HIEmV2U1i0B3rdEcpBU4h7XOvrfffdHZ6qHpM5MxAqz6tbZCSFnPWjxJEbKeopBUfKqgBHd2eEXZerxEBriFsN7+n7MLh+PBZptB7trLrg/HRNJcgErKERBUuEAwJdISBGnIS4ClHStxpcraqLwLDQETjk+8SHeJEtedYswaY6AN/RUaxm3dOcgXVtjCdJVnEaxgbvD9dhAukhibymFxg/soMciuaBzIPvE2PheQ/aZgLSuMIQ2A0J2kr/pmbE1eT5PWi2gfVtbM7qDZ7HdWp1ijUqSHMRMZA2b02XzKJ3WiLyjlNIaR7WpYWTbHiYSFcPsRAhJE5UHAfQf9xYn4MYxF0sRAQGzRNrc5dafKnAdSGsix4vyPWA34QLxKnr8Hk0u8pF4S3teCu5rrhpRJ47dD6BJXNQaLjJoGGQhFz61EAIPkGkAlVPTBjsc0hePEkjhhia8EwDQe6zOS7Ee2GQ40UJK4B7ZEGX3X7kY4R58EAf43WYkQWqLI/wpDpKZGBV22YyLSYPynmAp/whHlD943OBTxulcMUoFZJ5NkhR02aHAYKvrgBCcrvVjaWyzyyo1cgJuCGCar88IN3hSeJRZwlM7sIMbZ65RzzrPmWWEQ/Jkp7s73B4l0A+knYN4N0AeF3iX5L1DK91IyR8EyLhg1RZ0IK4DFafABNTAOTP0HoLUIWHSqfpe3p5sZxGWI3t7ZTJ9g7CZ6H0NvfKaa4POrZELXLO7E1RGeEKyPvxFsFyguKPg4gLx+iHMi1vrA/K//P2LqkIY+U3z02XW5wH/CN2Ej/CUZdPUpHzEG33lXf75RGsrtd2CYZD9Dl7x/jm63iE4h5t17jI4bcRvU8/zfGbmaVyrTdZXum2ytfaxM5gpnNUHf0sQl6YGhTdYw0jCKIGGlk20xWSUmRAKCkEbYzHPCtoIsIo3BDcaqniakD0RwgvicicG019Y0kyQRIewZFMZ2kSd2OEr0FxYxeDQ1JEsCYiBGHWOnjV/ZQYMXRpA5NC6JAGz3EW0iRMhFqC6vR/SHtjE1pSY7gMepdqTuuGq6mFi1a6W/oKZncoiVREQBjA1yXSMpNRFKgOlORTxkwAnXXUYBYFXgLGtNEdS8oBNB03g29T8ttWrp9fNyCst3Y4AHcISGHrDTsKwKRF6OLJC6wrqQKumX8yjIJQIYx9j8UP1WZeUGdcVvput2mjtQmcgbvFIY/EAX0rqPvi1tXDYwaRtSqIesRd1PIFawgh1stwrkslkCNSAEiL136HpANZDRVDizpwwNM50S9YTYzM7HL5W2EFGDJvd0cT5nNR9JnMcVZujpRuucsTDlrlJMiwxsqq8ZJaLSxvFoqEFBa0lSPtL5sRzkvlQpzRFJSO8S768dJXD5hrVSphfM6dXbqmL/iY9Rqe0PoXtwpkwe6pBOetYFTumLLhxo0eWu3DB5vlOq6Xt3QoeJSY0aIIgxFWbScKC+MXMRghNgN4IkqTWQkt8UFdmIgINiCtiT82dlDO8fm5XrsMKPH7CgLC7fQHmNXbVLC8USN2hHl7gyj7yQ7BaALyHV5vs5ADGQoTtAESUrccwLggJpFFA4PEbnpA7DpWkEw6wi7cEhKsDfDJuyxzzNfc0aud/XIWy2hyiwJ4BzvlS8fHy+YNLlEYp6omF4PeJc3gcpu0gzZAAdAfBPhzcM4GgmOxBVwY8yWE0/92faz8ChVDF0QOlROocUz8jCA8BDkHMrUAhceE36MRACUwAFEIUet7PUJawt+dROBQJeHNwbHyjf1G+UvKuUwA75MccTopo9F+B7KBfKA24E08w3sXqxhURdzCXWatU8UhpUSAl4fOxfAhjGicB9EDSCA/rCkRb6CXngJCJYOva8w5BRFlGgUVeDX+4zlSEya9zGMCmvBuRDcm9thBfXiovUbwyjEVZDJidh6Bu314yYDxL/f6XI/z2QWuDQvXMa6EKnOrZKQ1ibfHvD3+IVHKMGPEKirXhnXR/xC64dNoe/PFtHagdqwk2jGm8Zg27pwr80yrLqABbl7mNY2rcADta7jCMqabEboqYRZoVivB6Rlzyg4fMJDYsmPH+v3anSuFjpsSrkstoRBxU8kbuVUkHTYZdDdTKscgn2uEThMTgp4VZg060WUXDgwGvRB+2QOfvBd7sTI8r8t7N5lTDcHvqHbQwKswhzFJsWkrg6PEXC9zcndcgSqywSZLUuwJCfpzzgA8Viy8rYjjw5wVRaxHYZjIK+wFkpbyGMaF9NdFcebMccgKlxeh6hjG4OS/pAxxNfoAw6gH7LScHa5HjhsoBC8KcMIaWnTiDmVnvwnnMBfzrlhgZjoemQPs6UMsGhfvcThd+qqtQGDXCeaah9WAaB5qHPOj3vdEAI4IErkuEuJmmRKb4HA3ZJOB/LHg3LGD3XJ8fxOGJpYE8iYA5i0Yc6Q1S9VASrRAcHX6m8Hl65OzMcXk7tD3ACR3kfwSRIMFCWgBwv/54W/1FiExYtflTXb4TjD2F8+McXtxrzxFHGqDmM/v38YlZB4NHN6TaKJPKwyYtxZDY7FVnlrmGjAA+gBL5T6M1DbIzbyWILoe7a8TjH+BE9N93KsHENx90jc+Pr9QWp8o5Z999zquwEh5fKVWzpuhi1CRYKsfCUPXBUQDO+GjgN2DGYBcWZldKt88XOW+v5nyAgLtDILi8XHcXoSCd8yhlxEQBlONDcmeCiJe852CQU0s5hPDARgqBg+lj7LOAfMWPgcICrOTI8Do1yqYPiZMZWov6gija6GhxeKuIZiUrnFNHAfC9KCp45k06eqMz8xz7EnFpIsTO0B+oj+3/kfoYwRrKkoN4pUotapALfMiGZcndFoAd2DhecUcbQHfxjiMO2l+6cJFkzKu2+g5r8b4jhhmhLEVAFqKuj+eJzUo3WAMKVDLTmHbh+5ynRz9pjwMnKOLmaRM4KnlJfUaopDOTUMQX8YkB9Qsc81izaNCbtikggnC5ghhN5AHmFsqFvBMj91rNxs6KDVxpbAyg5ullUOEUA/lqz5RnemBeJLCGJXrEDbmPMPKRwAAQABJREFUHHkI3WcSgGbkFMp0bdBgHxh7TtFrxKwdr1WiABp/n+7E75gVMcBp6nmxNk0IgW9OpOuW4VMeymHBrWc7dSuNWytYtM481eC6fa+l6Y9FCszk1yVUIJqyQDNuflIgwauM5VPKrBzz4VndScWgfXvKYrxOMQGUkIX73FXWYpK+s4HD89LgAbEyzxumVA79Jm2E5+mMsZmHKyY+ptta+4v6PJvlABpiMcAWd4AT2pbYkK6VniLYhbhICTaS0xWJ0J3d8jEspWPGNNAyNdwutfQDcoVujLUoGqelQ9IkLqGBuh0uD91n1WRa5CBvB4TsMUnNYY4JZlJO0YWA0kxW8hEwEqXHXx7jxX94lktAT1OhgBgRGaQRjM9zwUID5v3ixKCcoe0qLtqxhcmyPDtR3uWuvJ/caJer7Dh6Y43Xgp2kx7FGVQzvEiWw/ue3dyhid1Q+SSLp33lqrlzb7ZQlju98l/pTP7O4X/6Tx5vld97aL0vzMyALwQmRyXAyoD+Cy3nrdvBftHBlxh+V1yhb/EezrGmiX36etfaIU+0Dvz6EZewizI/WBQXAoBLUamxZSyLlGwQX7xGUqgzwGMTKyEMEoJrbQ73OR4aeak4yL3DOZgKoB1UwFApifJLoPoIx5aX5a4zPlAIhrKZ2LCYjCuJSWIWih2lfVUogUE978VG5QlowMgPv/dzXMhdzTDPaPTzWouunq+OanHPqZsGEsWAQGFZq1bLQujdB0JuVcvKCbs0tUgB63VZcKQQSXacOv5UP2hC7uVZJ6KQvj9vQnLroVT5U1grzjzetaMD44H8cQRGXhPky68DU9AndIy9Dqce1JVBO3wSoYHx4gpUbH1JwW6gQZEeoWyggB5EBm4odIwU8yJTMAdpI1Qf69go8rVHd52S2M3cFiHBpsjNbZ2xrt1sPHdHAaPZT0RY2KBtXjI8QcJ4egzFf0YRs8YvIYWzaAmeFYxWbYiz5Gp6VdxViotfgvc8kJEBrD3nL0z7LjPiEedK31o9uujRd44SDD1cVOhBAzFWBNiB2FzeVPvcRam6s6DZXyouadyaN2zUjml5jeMlTKlrJwkUc6F52WJMXk3hJbA6qwwcqaj0F4W0/xglrkzyo1k6dbhvZAAmYz+jMiUnOKDIWIGMgIQFM7WCvXOBaqBXM1HqHfCEGutmYKe3RmXKTNnWAtEJqQp00BsGwDoK3+L1tXIR+WyDtDJI+O1Y8q1SW6aR07QsZxl0BQZvsWMZ0u9d7FH/t+CHn6NhhhJjGue+PI3ZYecRQ1jvl53l0lksaVk+1cmlEmxPmd7gX8NbdfYTqSLlAAlaDvxvkdL2yvl++fn2fA8jN8ugiAX8Rxb/PnKaGe3OqXO81uIEZd6i7Vl5G2H3mLLuKF4flFMxBoWg0g+auTzBZ5lkJkiqXTC1q6ZynOeC8wGURM1R/aAG/fUrg7MAs42R3T3I3oNu+0qQ7SVo1EpPuWBWXgtgkaMaToWVcZEyYSgDp1rlrF+tAWwAC8qA48gvLESaGEew3LgNuKZSBRcSWOgyvJcbkmff7cRomoeuq2S9Di3fHNY3CQ6nGtrCzGUWildhIEta9oguJSka0y1zlVmEt0JQhtW7FYeAD7hW8Eqxr8xiQbp0xOxOODTRPYdE5hrOLeIah3B0dpw+FkkUcDxjTXcpcbMF7rX3bq9isvwRUQ0PmLU1wZMaxzQ8ywGxcdkjgKEFnnpGZohpBYxPG1Nvwgl/rsTn3Q+KgMq0xxBTDgxkOUDaOZmUL+1aQs7TAYtKCg2SHZzaOxblUBYZttPLc+ezwm11PaEJ+Yzs+5+rGPQioO4ivqmDT2hBOztK/WkfCWj7sGiNEomhQQBW0ZycYKzFJn7TXpUumO9Ax+dRM+KraRiV0dbmco8LNYHnSRgAbI5uPHYso7ht05xVqwiBHjvjreB5VqwHrIWnqoxgK49xOpCWlC5/zg+CoSxJojRishAIEsLgQ/AldVJZbDyGkoHUDp6el5ZzoXsHo5oVJ5ZFHFPtMDEsoK/UMjhJkoi0P0IGMtAeCjGPIFD0E1CGJnNTL5TXXRpsIx87be+QS3RyZ54weVhIEMUMJlI8ZXyEA9wbn6XbxGR9AJBKBCFVQKQT4L0SmPnCS8FIQymAgiyQ6hJvBxgbfSX5+r38NW5XtHRgSdZMa3TTfBGADNOACQmdspgEjmcdUyjtX1so4V2udmh0rP022+eMruBkc/fnqW+1yid28s1wc+oXHJslAtyoDHfHfcyRXLVMJ9CXqYI2xs7SOm7nGUZk6daveIBb2cTLZL9+vYg5u37r7YTyk+iE9gnH3GB85Vk6wm3iSvC5P1/ch4JfrUxxKZnmsK+wFEqVFGR19FYILWkUun9mrAsDtbasbSFzgMJaT30Pa0XpQFowlnOwVRoCgBgirffCnu+lOj8T58BCqR18qDamQAwMeH4EwvLVby0kq4Ivgx3CAghA+4VP6Z26x3CCwWESM6GrcgRNvsFTmgRgMDcV9Yz4qLfwO1ohyergWFqiAts9xXGGD/vsQrVrX1bprqXsLZfJeC5BcIqx00yhirQEE56t7ZsE9GTlCWMsl4ELA+p39uQ76GLAj5ToMJDtzHg8MYmXBuANiLlo/DY9dYVlJjzKKLpDuelws3st41gFL6ARwKQxNsE6GOfOVZ4wVGUaRPqR9vxOnlkiKsGZshZjyRndyhOICTejT2J9HlGRkM9WtK8fLPCsDyzyuL5YSYxrUVoDlOebic8LL9eoqPoxJhaZYh6DRuko1BWCZsAPtaB0+E97cp6vtkNiTa7YevxswR4RJPAKlG99hLsbXMhcE5RQ8kt1cwDZAKar87MPKLo5teoIKHohAx1AqY/I1ViUCj1/XaBKu9NrnIH12aaFj+7F6g2shG4GZARAFgRuz1knSXJ8HgPPkSO0zWBcLhaJTwInFIS2HaJx9CsldhoAuESivE1hvoQnGMaUpv1S2AfopCLiBNfMWlsYCs1ZbOHktaccSoIIoiXNMWpJ0AR7dqbE1PE27hoISQNwj3pTDmrw/S37KGnf03WB1IskD0XPkSrVOLZQHAOXqg92ywpjzSO5nucZ64lyTQ8idco0LRKdx9R5s9MpjBNufPImWvrdfHj/WKH9Mxudb953DsHzikflCUy6doEgePHhI/ap/w5GgT2MZ/nPSIP4m9dGfmJvMDqeBU4ljhbQIxcc8mvXcNIRNLHCCLW/XiAImLUPrgU0BfpMPxNz20eAyvgLJeIRxC9cTTQMc3QAxCOuOlvEHrS81aU76Cy2IHxsDWMEMjgSM3DihR5gRBaCipm+v0EosAwKySjSkHXOdP/7HL240n2svGANRS0/gDmnNtU3EhLnGlariD6rT5dN10MWDcngps9grBAmjm88VgQls3CnSNZPVLFPjrm0sK/qSCE3tg+9ZI3N0/bg7Tc+FMl4XYSGMDimr4y6bfVR5WwTY2bGsEUs0liS8jKkoGOHc7EIZzE0aBovpoeFziB8caJ15hlcrwGmBDhbAf0gt3RDp00UpXOgVr4IXvDHBVvrD3gI+xuJYF2s1DmfVklgo/K3Oy0rV0jnYgScUslom5iUKp2pHjLWwWeOmlikhgIy1Mxbz6FB80ZI5un4KYYAeK851ykOprQVs47qB50MMgsRRgZm78y5Ki5jemDpWC507Zyel8LaeVlxh49WMo1gbVbvaQFqBqhQjxiSzo8o7x3ZHU3c3t1bRNqWHgJH8HInLwrRKtchSVwyaFQbC8aF1qdRSWSdxFhgqtKU5GD9egLu50pRpIH7s07qRUAN8JFRZQ7atpW4IscXvGQaaJ7VgYW8zwH2NxMpRMqsHBM1H9Pt5ro+W6plzQcmXZSTjLgvxsoI9BJkT/jNKrPw6XZ6BmV5nEIPJTCFuhAzgpCVBXrIGrCmIiTkTZKXYHX2ZPS7D7GAJ3CVr9jhPP0G5lIsIqxMkUj6AuNdp98FTuHE8d4WM8vH3CPRzTu9pJjiDFuiA7B9TnO9VBNif3umV/+KpxfLiGrWzdrvl8YnD8oXHp7lVplMekGk+T7/LhHa+sNzkxpla+fZd4nBwsAHEA7P6XQPZ7/8DR2gWEMa7VGHY3PFcpPNnV5G7AZ9bgMB1ZzCR3ZOSSF2n31t7XL1iZQPNaBMrG1imulU0AiEIH2Chz25FU60hz4ch/yIQs7UMjtRK2T6nvcHQxLj4rI4S6dPYOFJ22iA88asYSR8Qdpd2rgQ2Qcixf4TFoSBL3gxzNECqpZM4GUeDtBxzpRtzcN4jEJ8lf2gaHIdQszatGwQerq6WetIFGAtpwkiuX8EKnFwbOBlNLEh4sF7ga46Q4YA+MIkABLduEPjPjRjDAMZR3ODoknxs3tgYyZUG1RMs4llS1+B15k6c0jQEmWAkF5IgGKE9FkXgWSuT8d0gwqVzXkzPWeT8nIe9U1GUNQgD1yHDa48YNBbWgIz1KwCYGwzswXI3PTxSIm5kzGTFB/4wJmN71lDcg2Z+oH29GNYnH0kj8ruumJewRjAA91HHZzzhOQ5tNuoUb6Sl9CHTiLOxIAC4AVxPmWiNqqgyjPwmDhzH9UBcwp5eUWzMApgrxLXIlYluPqA/aC5+jQWiGKFNQx66l+5y5qJlXmvZmuHfJ4VFhahQ0wLVOnZIxbXy75DtWhWSyDXOqUVvuCnBe9armmX5wIVnwccE6qCK/bIGrS3+jaG8huxO+zOGex6rtUnAfAkz/BSu3DSXF9ihUn8bBK5zZOUQF2s6M4HA97Y5LtMpu/j/Htaxlk0bbWyVBLWq28n+VXCQDgYgII6tsXIbZLCEsnBqVrkIwAAAE+oDCCfm7iFeLhcq9Mocd/e9yUHnBbYxn+Cml89xE8dZoHoSc2eUHIc+eRs/2eyWWeb59jo3aQC8BYiCm6oIaI+UGxwduIrA/CpV+i6RqnCRkf7zp1dLizsA3373HkXuJsp/9+ZmWYWCLp7GHdwgMRUmWUboLLPePQh9CLA1uEZxNf/WhUb5uSWuxJohfoUWeeUaCQz8/cAKx2OwLiVShk5czKKCukmAD4IBWwge2RVREq2jAIhpSwPjIWMQv+a8WtI+1NbZ/QuiFfL6/AgvYUYvWiAVDdAjBOCzMqq1mFOlgV5yFhTY6E4PGT/n6kCJ16gjNTIbXyb2wvdatSFS2jB1JiER0wAK7hmn4TNdjdQ6p4G3+MjsuiMyHoEHGArBg0WtLqyxllzvRdsE3CVIfnkydAIAstahmzRoeWM6WqkyT65r57XjKRTsk6GYPEKcf33Wr0ukdQL1MhrrU8ABPJUFIIlw1fJxXSpCmcb4metBLEAkzBuQ+aNl4ryyPvpxo6mPAFKYmPEu3JHqzCE2R9YlaLSEDU+MQP88xveVddaHXrSaPG83ykW2sRpZr/QuzKQDzwTqjmpRcWyUvqAfpQZzTdyS9SVvCRgoLI35H1GRJO4e69L69C5RhbKCvSoUYF6cglAxwHqYdnb7sgDXznqwVFiZy4eusL7pmwERGCoSG0CptmEuOQNI35aeUtAkfABcRrBsddH1EpgVQg2YQfN+5pqkV9fsd/apJdXFsMEghH507+0PGhESWPzyvgUllRmuRTU2IT3wuTGzAeN567MbDkA2x/dqn+rcKxOY30bo14mx3BmdKtus2JqjTQZcPNjgNhpO+mMyP0AAPUBigxEGgMlEjkRPZ2E5J8baT33gXJlGAKwsLpSfZ5Je120c5lvfv5Si8xKUk26CLLwu0hqoDcVYFxFy0+QefYGdubPz84ULiQlO4yZwJs0crtss4upav8zyzBRUtYC2PsElEhvUwnr+Phc1UNblDm2+dHqec35j5UPTIA6iOnthubx+b7us3bVyQQ1XsV6+RTJom0DexWOT5eX3MElJNn2GHK37aOmPzU9wgw2BcojgJOkS19iy/srNpfK7U2SZIrB+68PMGgL79nt75VefIoDOa60ApbGJdAoxRuaX1xK9BMvmwzU2IRZB3CixEIwFkCAxeDgagQARGEuQ2jznZ9xDlMo1Br/Nr7FXuVICMSFVxMpdB+BuFAKoUVjR2IL5KrIHzZgGZE/bJi5qTr7Tjxsk5sCpLe0iB6XpV4sMeoEhfI7/gduHbuABOxsSoScMtOR0SfGlMo47nQaQ1dzO0XYKNoUzjRLDSy4RX2pN6CroYnicQ4HAg2EYS93Iu+EqhDncEwGuQEMC077S8Fo7ApaPGIwJMx/+H+b3CJG5WFpyJp4OEagyu5al51ZNXbAqRIQy89QaUKDo4gkMx1IZpIQRY0jbWh5art6o49qcortvWki6nr7mYw78Y2mxJi0JrTKLDfq8oscyzR53GYWeFN9jWnysOxstTDgWLOhQ0Ig7d2aTY8b7Q8YYU/IyiMpBL8YcRC/AiBVPG3cvBaObKgolpbi13mNpSTzMyd1AYWUDlVFikLyeYN4K4ZyVpK90wFi6825MJF+M7xGJGTMpFgotvq9u4dF6QvAJJyZh3541FCkd8Jvbzhk69evEC6/1tJJoTnvh3+UZ4eic6Ka0zIEEzQPuHhinbzPxTB6ure+RsInYuIHavaJ2RHgto7FXIGg1xy2evod44ZLomKLusKn9MtmgQo3s22pg8zlW2S1YXFksT31goTyOcDhoH5RLN9bIJfGcnrPFrWMy1Fsgi31YzrG2X6De+SlczhkIbhrkNAjQDnDP3qO/HTRXl+zyx5ETn+cC0SmQdgxTuYOr+nv9xfInnfHy4dlRcjIny+I775aVM3PlxuZ++e6lW+U/vrhSDrH4Lr1zj8tDYQDm8BpW2DTpDJcROH8bwD1DbpYxuwFu5yx9e7fiLoLiDeJdv/Nav7xMjI4748uHsKoOOX5zhsj6jV2sUM4kSgia4ljHrKYi4hwJAfDAPbBh6qWzeVA+d2yUIoFkJTHWFPG9QxLd3MFrk24wCax1fwStZrxCzp1Z3UEF2QRvJHhvT8nOEYSUWATvrZ1UCRZwIOcAQ8Hsaf0ICGZyBEHo8kmEycIH18KCByI4mWr+Vm6KTFft3vlMNmWkPohL/SkjKdz8nBGYJCvntxpLkMD04M+NAonVG7mZDgOokRFqzNdAOSTFa8INKCOtDFvxNXPEeiSwpviTgRXQwkbmy3Y5zKikUdkZu7LsDxIgjOcVch70lVk9v2doQcvhADeXj+2RecJcrF2rIHfeyaQAvrJGWReT9SNv8NGC8alYRsBA2mdZuEEwJv0g+pkvc+VDhkMIKaBRRAgsj0G5G+vxM2YTYWdfuuJ9LK24vrSPsBJn/Do2fyor0rk6JhOXWQEf1pZCm4FYSybiH4RC4Odcxb+fMa6iVZx00I5aiX6lBc8owAJaQFGqfKy04GcSjbv2vhzDujXmp0UkZRvGUCknAE5fe8iICSzJCF1isgoZhaWWI/oB3Ct46Q/BFrpjPIsgCgvjn4nnAYPBIaEEiFJB5botCqgQ9ycqlOmkTp4znILP/oqgplpIH3ySTs190R3cZsJb2TNAO9OTVo0LiXYFTfqePc1yBuBDOgdBQOQuO4MfpbDeHU/nXb5BAPegvPrm9fL9H9zm4oVFkj61qg7LU2zjLvLMeS0ZFjkOME5QLbOJBvKWlpepD7VBHpSpDx+hSsMSO3qapm9vK4khEs7qvcNRl4/NUDANAXnlNrt+c8Ny2dgTQH4M4Ft14LGzC+Xld+6WBjcfT2NBGcdo8d0qa7qHlfjfXtorX3muVp451ixvtY/KlbV2eYXdwN+/WwHNkgTLMMMUdx7uceziAMFuLo+MnYtaQUxAA5IMwoMuAC7gZTZ/8dhYG+HPssDu6g3mZipJyvLwqASqddWjoX+NRQhohV4YlM+9SPQAxSIl5NgJfavFBwTF3aBwLiY5KsCyewZx63K6ApkCBEerGcvoQYQNdnB1t7RCJNwwOGtCVsOokDnwSQBUwmFMhqsYkf6S38MCTT9QI2rORxzxrGe+zGiGxGBU/gonBJmUaHa2UiDWlQyLkHEXVutRICl4zJCWuI1tjRMgrDQ7TEUfcZOgS/PCGjAMkw98jFmprV2/VlPVH4zAe+NAibHIOlhHlv+toQSFubafuVOexxRXWi2JATF/IAaN0pdL8ZfXAyx9n+M/fmjDHDF9WLty2NQDBDYEIV84D91llZGxJi1eughz+wLjM8JSJmW1EYrCOJa5f5mBAXYmhgyBs4QfMNKaMgam4teCopf8S2gAfMeCciznSVtxmTOl4kZDFlplypUFCE1Ze0oLEFJgVqwRS53EArwaBL33Iqh0EOpaXworlYWnK5yrg2jh0R04QawihBwT0sFare418HVcXseMEKIvyQK4+C9KHnz2iIfVMUCy0QCQVTIdwk5ghTGhc+Agjegl1EbJ7JW2RJ6lhdvkjHhnX7lP/gQxpBbHUEJ7YjE/77+ocMAnMg/AoeMNEAc3c/3UfbRar/z47e3yo+0btJkrZWGmPEk6/nMIn0WQbfsGbR/THCWAdQsA3gRIZge7q/YILuXfILPXnSHq45XncQX/ilwqF/63T46UF4hf/YhzAB/erpdfWNgrf7DULe13b5UzMMbBrc0yxS7fRy0jPN0sL2LdzCJMOW/MjSLUbgdJ5zhb+Cyu5n81N1GWCKR/fatZ/vCdrfISAXfsdn4HVCYFKSSkbGAJ7axvAGx2AgH0EYm1QkGBpWuGjAWQtAUW0Aja0G8RShAkyywzRL6Hx06WV7gGfoUnreoqE1up0rNlBuLV5Pbq7dVRahCAJ/FjItOJlooMxQcIKtENU5GvpLBSA4+RQyX593DfjRdM8GvGuoFa5yBBevNPyv84DozgOTwPuKsJcyaR98aEPMsIH8MkPONr5tpjfRJqjtTEGlTrIxQhVi0gA7DmPNlIYWBb+43VKb2FYCFB1h6hrAbmWVvFsiCo2qcevC4GYiTMGQFMR9KXCaLmROny7iu0mLfwsE2CyIBUd87gvgLDOIsbCzjpcgh3EPbKOjFYY3GppEBb3fcG+XBVeRgUBjBGvsRKVSFYOUC54RhWFVCwZ1UIZkZiLC0prRJgBLyNs1j1NdB23owbhU4nrl9Fp3j3+JI1pbQetUO0XvgT4a7+VwwpaF23Lq6XVAgTYa9Vp6ukvDJWCDdXViYdKAx4lLb0qSJg3nRHGISANvmS+3gq2YHj2XFiw1bRMFWAxeRHtz6WLH1ax2yPgUzx0JJuIBtcj/P1BIaXvigFjX8mXmUMjX76nBzpknJkLmGKCxrTUjmxMaSyU+gpfPxJThjzjFUHLnsIw6qCrAYRtKDyxmwVB740bFUzy9w64X1ufEFSlPkzM+Uzj8yWlZXp8gPcqFdfu18WYt0wkIDkX6DCoALDt6R0JbfqDP14NdUPiA996s6t8ujqROlSKfMswDoOwZ9miCQGkhxnnGwbv3CHiV3jOEyXyVzg6qtzBMWRaezCcUsxWemvHy2Wf3HY5CzeoLSWD8rPT3TL1sxy2btzs5xZXS3/01Gr/NPtd8uXzs6Uv8C62niXgn8AdoMLHX7mzFJ5/b0HZX37gKTQZnmCuX7+xHj5wvH5coFkzll2C8143waIf3R9HWG1RdmYZtngYHZzcdkQLcmoaxAUIUoA293cYLloKeZ0CLFn/wKiEg5abhYt0zrRpDXonrgD36mhrqIEbkAQp/ltQyiqInPdkvQHNvowFLIvLodEJ/N57MWyHv7QYwjW0E6C0RIzxObOSbQpa1NYylzupkl8muOIJKxC28pgsBTfSS/OyeziAUokQovxnIsF8iRL0yd0VbygQjdQLZ44B8+aHW8CpS7DACETy40xqn8V9cu80crM8aHFILHnBhRdPuApoUtAbr0TYU3/BuGT4cw3BtglcF1QYdKPm4fGpXmfPqBc+ZX/V+6zSuAIBlNgRjO7i6ewUDAgFKamJyNkAE2Eq2jQEhwnBNEBPlqirBIY0mkFJGDL+sBTBqL/xJWgcbfb3VRCTMQy0tp03gqBKHDGECHmf8m4Wn66kx5ItiaXQiL1pqQnBFlgFJgzD3ChkcAr2vGaGFdEPy6qfdq+D79EuPEeFkYgumjWKaicC3BLHXl6rvOcmyxNwhDkEzO/9wUX67Z8lDukecbnHJj+qhgfy6YfK08MKO2UozHijM9MjHaDoYnrrpVr2GIq2fDgmAlF6DKfcT5L6WvWPj6FcgQ+WqTetCR95eQMUzfkpRIAY0l29YISrV+FYKxu3E53umsj2IMr3MCyxLXmZ8hJOnd8miRK/d5e2dvmXvTETgAniwoI+cN8UxnU3aYp2moFuXN2GqhZuvVZ4lEz5EYdY7Tz4Ma0ARlpEuKmXl6k+n1iQO+KNA4ef3C2VlaPkwGPxL6JhfUywuOrd4bli6vzpTNNZnm3XU6wvTlKfGJueqL8W9IYHqWu1EkuJP3y0W75EZZXj4qgn1nkKMb5YblytVM+9vETZL+PlN/7d+vll9gh/MQJstlJHsVwK29uDMptLLbPnoWQ8MMtG/Odm7tllfpCN4h3HYfoj3/g0bINgK5tUzde0gH4Qm8LBEsM2J1hjLh+jKNrlF0emiauwjOxHIDHBmcpb1Ow7xSWlPW+Ne89IBztiRYz1kO3PFH1I1N4Gt+MaMgkVoGEmONSwNubudOG9hGOMJUHnLV22GqEkBU4tBNmMKquujEOLQnpWqtMojH2ohDSdZIRtF4kkCHCqY5GlUm1/g5hMs9HxjJCCkVAyCiukXG0zqWJ6pN8GmEVFwbiNVHSBlovWmtMNUxiABx05LMICASghG4wlgkjoCtilZBleoWEFuIoMFP4orajAIUFy4hFa7DbtckkZqp7QgBUkTtIKgl9HEI34sx0HmxYhEF1v6VKyb5tLB5zBhLBZHqHDkc+gx667KjjyQJL8APenYfz0+owNjNgHF1rFU4EF3BPBU6tEfDcx4vIBgXz0n13M8L5ReiII5ndKfO8VisvgleF7FDYs/aUcmLBlYWq2xbioR2bW+8rMGHMI+ARBcTXKkhhZMqC2f7OTWGYeBEvLdMjj+aIHtZTLF1w4Dy0sHJEBnoBrAgk+qFff6QzvgZX1XvDGglDQEjGyxT2dWLTCh2F4JG0RP9muDttx8wZV+Y7jrXmzm0y25mPh8q1NN00kQ8SCzsA+k+ea5ULj6yWLaoqXLt0ubx9bav85C4dEaT2ZmR3rWgfwtNPJmUpkyLpgd0udtHCKIfl3GivPIHlklwkmO08E5ohRrUNxrd47jpCaobfIYi6cHym/NSxAXfm7ZeN2lz5gwetcvPBRrm7Q4B+5nEOArbLGbLQd5sr5c9ud8rixp3yc/NHXFBKJc+3f1weW50r7a3d8vatNvlfo+Vr42fLP8Sbe24WL/yJFmkLnXLpx++U3+Y6rUV83z000g/v75X/+9pBSh2fwPL4+Imp8oDA35dfI4Mfab7FOs6S2rHy+DNcFcbuJsueP/tIWXvnTYLkMxHSHYhm39gLiLjA9woAEWQ9LfOt3MrPDp7EDMyMg+yx/isIkkkQ6HEKtcsYAU/CYyBNDWccwHiAfbhVThATk5qvEpuRQHLtOB+MMoamtBaT1moCsJhmoiDJuXwmo7vlfMAErDfEF1AvDUC+VlG2pWEMN1XU3RKSFuIYdbw8qzfCXOAysIsIAi6pjyT5I9gsE2y8wnNHdmsqhzEJYy22t5nmfGJY9JsrwfiwygSXuSphLKwsnewDCi6J1JuhLXKniyccE09ThjAQfBgGyE4Wa+gQuuiwZa4QiuVCv2FEnk2KA/12da/p1xQFIJ3sfxnfOUxg5VjEkHKQEcbC9RClq2WoVdVr7+fmJY+eKGGdk0mtnm4wJ0mhr0sv1hSKJv46lnE3Bb+CRgHuf6b/RBSDF10un1WAaCmBzGr+PKIgQ4uIpmxwiRdvlZEOrDeVyim8EZYR0hEojMNYwsUfSxEpBCCRHNNxl89+nEhSad5P21AQMIkYGynNw3t3aVUMowT2xa3jZqeWtZkMmtwvcUpfWq5alH3jydDIBOsxl8wYV5VHhhsIbXio+wDaM8lXPEe6MSckPfAStS4cwWm/jEm2S15L8ypDxAt0znj8lcawy4bl+s1bZX1zrfzgKowLoY5QwnjuuD477h4L8UEtrDkWK4nRCgKixhUEv0oNpw+DkGUGXOXbCaLnRwiQIxiyh8+8g7b71gbnCbEKnsTKuUgu1gSafwNhM0X6Qg+T8gFpAxxFLz/CCnkOIbm6MF1emJ+F2Pe4rr1BTXV2CAkrTTDGtza65dmZVgh1b/50eYFLGuakZnD/v97cKv/14kH5Dx5txX1oUoPpHj71H1/ZKv/nHYnWWAT1qrAaReSfvzco1zB1/dGVbXJw+yTCqrN6EmsP4MCYi8ePlYP9nTK4dZvk0alo+UtYZCfIF3uU+wANskK6CAKJC7MX5FgcLZoJgq5utSbgD3a4WJ7YhecEQQz/kzm6BMBNzNOF4U8VFJUZEIgheV6z7GSsaz2goCqkOw4Er0bUStKdCw3KLPyk/K3WsUzk9wgyBYs7SgoUrTzdPDgxQVNvdz5it0P30IBxcoj4ay2qPqkeXusuHagBZd4GAkPrLfEXRBX3xdFvRbQyuAFkmWKAxapQhOT8GGY2JqOQFAYwK+vxO+NfjjvB5RwyG1/TnnlmUTAClKsV5DcNGGSc24hkYgVoNHYOgOsCunqsE9aXc4ZsyNAKQcgctaCcE8nIValmqZnZ8ce4oN8FvLRrcAEI3TAccFaIohQ4fkqMFXy5PmHIenVtTV8wxthA4CtIPDvoTeA0DKxoCM5hUOYqMt0kiHutcHC2jNtl0eqWMTajmBKODd9otCgoXBPvIYnEFD2aoAsGxNJPDhXTh/A+cudNAIJv04e89BQw86vVREfMVevKuRvWMDZn/E0vWCESXAEmhY0ClSlml1evwTOYKi9DF57AcJ4pJc16dd1N+JTe+djOcjQMaglMTBNxoyIeCd+Kc91jlpf1Y/yzRPqGL/Re5AWeqNxaTEQVOdMutRaB7bfdxiJm1FrixDhlevVjLdDmYdNJiQikGSy1fAk9lBMM2K/3yxKlW56abXIpBAzLteuELylnXAHnDoLgElnkq4jGz5E2sHxiDgY9KjfWN8uLl3dKjdSCz54j54tqEVeoVfVrH9gtj50aKf/0+/vlF9iRe5TaOruUdjlGbOfJm3fLWe7tu304Vb6ztFJ+Bil+uHG1DCcvAlnqarHL+RvDnfKRx47KSmu5vIEF9Mb97fLttcPyHSqDCjzdGUsfM1RuxsFLLb91E0EpNRBTm9zbLWdPnSn7K6sIK9bOurMxAHMsnzpdbtxb44LVw3Ifa7OD4D7O8Z7vEMzvopXVmAZGJRhAixBiEKAL/gPkKlsYggWZsC2MD1HLvSKBcTSJqmA2hGgb3ArQDCK1ZmR2UcgnEgPPKJxACcQBgUmkfH6IIJBURDSGCpqKhDuFFZ+pKrWgqoRLiVz3BbDwY5WIOmUyfNbdGOenELM2loJJd0ACFe8uJjk1tLEU8JjERWkiphQ3VKvIelLGJvwxIOu8FZIyVVwxrLcwCwLCG6CziwS1mmqgADWAHcKlCxlJIZMcLoUv85H5diicVyM52NwjmkeAjRGfcZcxF7YCEwvJKZQbZl5qifDgPmEDrQlWmFhKg7maf+UJi3EUpkHfLkfROrhtDJbUBxlW114XaJx5KsB9b74VwygXWB/8gkAl2sFnuDsKUcbxhibEP4NVOHCHMmPzPkIGOkh1VkSPVrrWtrjU6ZbVdMdlVK0dUzCSlM1Y0oTttOQi0HUdVR7MVavHK/ZyCS5zVFHpzjtvxzAUoZQwjGPHxsJMQXFirsNwgrE1CCGWqDucBvy9DUurXnzG8pG2eD7z5bvEDAUIz1saSFrXA4hgdk0unKclDbqplJHwATe63Son5azNjF0qzFRinj011AHHpC+iSlTt5EtrAnlGys44m04qQxWf6rGI+3RwaprcLNotkr90HHP6bUr9XmEnYWyfIDJJlzMEsK1tPoeEf+8uognX8JdIPZjh+QckpL6wM1u+w5m8S3cb5cPDZvnCxenyQxKUjrG4F0+sln3cvn+wsl7+yTNT5evf3yyPH92Hzo6XtdFuuU9O1bnF+fL99hg5UKW82O6VX+TGiGdJav1vRrbLE83dMonbt3a0UF48nCn/xwN8w8u3kTrNchaBfI78qssIMa/rqgQAwAcEC0gt9v7Kr7EpsIRV932E4RZEP8ZB76QigGQRPsHRi/mzZ0q5+g4QbRIHY3OCI0JXsCATfAQLXhuuknbr2L/u0I1j6vq5ddLN+9kFoRN87g1B4AkEIXBAOqSogQhCeJ5fpU6O82gKG2iVUCRQPh8Fedbktm6ZQliESzR9paxSiLm5LWxco+ZYMI9CMMmWrMetY0biP/rwe+YgzhWg9qfQiuUCmSpTR8nH042Ju8KTowoZiYm2TlVtndt5oJmxEL5AsKFrBH78QvP2ls+r6gFAH/djjNgePbB6l+gukpaGpwAo10J/Hi7mf+BKBWKQXgElIUOcjN4Bnz5jsFz3XdzSCmELcHHfHNAYjS5SA3wZ1zoylYN+ugi9fYTLEFoSNybEjqG4dBUb0EWEKl2bHnGg5UAuoYL3kBgWs4AunAPrQih4IYT0NNA9QgAqxbyYpKGrg+xTQahYhJcMHNeduVXJt/TDFzJ0BD895XgUQNPiFD566MKhWgvt6Fs3VLxVF0XwPG9035lk6MPZiVs7F17SqSdYFCwqOtNMDA+IlirWxhwlQNoLDzc4dP1t446/mWS5+IIW4lZhootpgUcn74Wnxq/sIxVBgJU5W17sqvVlbM2YaVDKHBWMEntV7JMx+a7afFApMqbrweTMZhYP6dVrjXOUS5nJGxpQrimSzcYGy0bY2l/EYjrOhB9eJuFtIbfwO700dJ0n70+iwZisx2vmThD3gYBOtrwMcaS81m+XZo+bX6iDfq13N5nnFyGKz7DYQ4TY84zxD+j7p1jcVYTfH76+WX72VL38/Wcny+/+kFpUWJ01tl8/+qHj5T2K3b9xe7vUb2+UX57tlc8/MVcuzB2UteE0gvNEeZmbj/9UpgXA50H0IYDsQDB7mIof4pzfKjle/5L8iEmIlVSxaL4N/j6LUFgAiQ8gtl3M4ym+7xNAdJcvwFf6gKzWzFzZmifTnfSGV7kb0Jyvk+x6eOX3ITEq6DauII9DDAISouKNiX7a25YgniJ/w3Ivmv/SovRhjlWkFXivxKifgWyFDNZcCJLGupw50sFsFC4GXLXsPOkuUqVeCT1xH5CfALpj0N7LYGkd1yk36YIrdzMtioYsD2E75RAuz+rW0ACioFs5jhcmENpLCCkC0Qn7mbuRll8RXrhdo+y4MFeD1MZ1rK7gYk1WhU5xvXSEq3UJH4WmB6YVbFpM1rziVRUrAwYKS75Ehsvg1a6SVG/szqC0eUbS7xh9uNgUwiNXaUgM0zjekYLOrXdcbwE+mkA9VplCjX4NAns0iqXFbdonhmr8TStXi9F4mGkb/tA9AWdGsz04ME/J2vDOSwvBelBaQeJOq2YMq4yXtMXSoS8D9Fpn2M35XLwptPpUY03cSSNWoyFj0TebTFaIsE9vCJJh46orAPnnPJ2OMdGqOADPQgeBE99pHWYjgImTn8uNM9AFIh2dlnHM9XNNxri0QMUM9o5yhMZavQpsLV/idrw2RqegqdahewqcwIVCJxsQNHI+YAv+Ns2GtbIe6dSeq/OR0rIhGT4BN9KJQkz8ZnzgOqrSVaBJ08BRAY+eYS7MfoYv4neTO6Fm7bolAuEtEYc6TqPuRK9cVClTG+oVzhE2EQiaeptqU2iAmsSF2nRYQJ7nq5XrBCt3AebBAZOaH5ZztF/lkHLzkAJ+e8Oyyu0yS8sz5dX762XreqccXGBn7/5WWSLgvoZw+r9eGyu//tH58h99fLH85SVuO4boB9wu89adbvnymWF5mnN901z5tYED+pVBs3yzP17eYSEeEXoCoaAW3gVT22Dd81Jr/HoEaBmXQpIL6fHeyIqfbAOUP8KdegBjPXLrDlF2YhdYZtmtySP8T4ajIN7h6bMpgvcSa3iMsjU1hE2IS4KijQiWSBQsvpZ4bKDbI4HnsLMuCchSaWbnju9NpjSOxX+Y8iAoTEobiNkjC+4KSeHJqAdfamknb56ULkNK2TKwFljMZ4RodgmDW0UKhMZ45rVUmcpOCotKwqIvaAaiFTy8dsLMQQ2udvWWIa+WqlxPaIM1JUnS+TBPhVRcBK0dOjrEWpXAZfRYGzBTUiRg6CliPAOEtsxsH0lfQGBIkFqkJlTo9jpZdyqzBl6PQgO5NIEpKmdc/CHpGaO4o+6OukKFofCxfNAE9ztqnciQcSlYzwCrXovNPDMv/xwhJKHL6zwNVNuBVsMUN4DHYmUtunYAFHAgtFHK7rL6nYeN+YLxpaFqnQoi40HJr+JbbsvMnD2sPcDF1NJ+uIVvhrj04lKd5yjhD6urWj3VIY2nmeiqAhmEKFghf3NTkRfnghsFuWtT33lQWYvXw9PGGoWVJBKBSDv5mm8I/iu4XSqKDVj5L2EK50Bf0nm1Np4FH9kgER3ASRKWFu04Qob+XYO0lbw9SUP8M3YOnAMDUaV97FwViCkj44fAWosvMdS0ULJqjVeCTe/B744wQNzvyy4o8HO+tT1MfOuU18hzag/bqVJwngxxLilOKeE28ZoDzMczaJVxnr6DefIo7t6XCaB7c8w3yKV6dg6JhiZ45y47bJiFuYMQC6tGPZM3EWCrC1QeJPlyE1P7F5cnyn2w8se3NsqTvMer4nxio7w6faxcwCK7y0Wka+/0y6+dHJYvnRov51ukP1AV4iJF9aaaJzmqM8FRnLHyNbcR0FonQNCTrNeFKT8FHlQIgIEwiZ7gqLzDyRoLvgk+b32WIfxpgIWrALgBcBb48Oa9u6XcvQkSABJCa2JykvgO1gME3eDCSLVcfXGxTB7cKm9Q5fQVgPQbF6fAIUgCeZruIyDCvyhT5sFQbGpAXhA8JZlZ7AJB1T6EDRYqYoQZjCd4JMGfxBogCunHZ2u4mLonanZPvYMz1iaCJXgIiX8KCOesISChunQT8MJcLNvMZdccCESDOxbopyGygmcgfOBgTSyfMZaSeBGEdcg8dSXMnzGuIBEbJkDMQGBqegkVF4IXzkW3ZY+SLoyOcCFIbh++gwEORtpYYzArsaMhDGP8jD8JJFv2RA2O2nSJmT8iJfNT0JpmECZCgKhgzahnKqxdl0O2kdmqw7YD5mxcKkoHK8D4Ysq70HaUILzCN66va2Z+IquLJb4LrcpPWovGFuO6MY6xtDGOY+VkAG0HKEbLU0trzsNMb63YUb4TBrpJU1Q33WfDx7wsg/GxoNgWziUNCjzo1vkxSGjVbX6mSjt3HZ0fTfjuCNh7aUcPY0FB4GF4GVoBo+KKBcM8BJoHigEPcNeCA+7Onf60+AdsOvCGZsbHKrqRIgAB9ApuEb4me7qJYbwaKYNFA4x9hucVRsLBEwpNj+TwD6rIGEm8Fc9pE4JiHsCUIYFw8CRdmvrhfBVOWma6pryplA4N3BGlGe91N91AcVzoAtdQoSXZ1x6p4ZvT7C4A2yQAd5qKB0ekJ7iIdSiiSTDnGkT4HmeA+sSBZglutWGkLUxu3UN3LCyxoTDzOIXA6rpQguRbSMh5+lghVtHju9PonRYRsudv9cr52TlqaFG+gssoFk+c55hOvVzBlCdVttzaWi/ru2vl89xQM2hMc7VXq/xkOFm+SaD1h8wRziofULsBPAsDIo9ABMQCInVloyV4rRnr6e+vWeCfhfOS2BQf+gNkXDcX5mB1gRw+Mgg7HMOSoo1m9Q4XrQ53tkPgoBzksSlBmwmOHlzX/eTHbGMZSzNbBEJFIKLS3vrlakjorUxRmngeF4E9QsVXftSuQ2I3gJPP+Z9yRZXp85rXvFQT1iUY5uTOkG6AZ/HcxXFzpEs+Ec1QODCU9G/nzD2RFmCvIOqRCmIMylhGZb3JzDABRAVIwCP9yaBQhK6fgWkZKqJGYmYd1jPXPZSJhAGT4bXCuNKoCv2c6YMATcmQ8e3c0sJhPNrprlkUkpyBxDsS01Bi8uP8zBmyLSCVi6AjNDGwEH5H1gdmbh1dSh4BLMxfokdYMN4EgmiMHWUtBl2PNrGmPuEGA7iW5s5BbOBiSkdlGTAOTO9pAi1BKwmMYeG7I+gACm4H9p5AX+qm9yheqXIycde4pLTu/QNHKGcFspaYx12ME3Gletw5LboB1qBIygaHWgW86Qq7zDAw89VKtkrIKCZQ5fqzQBfOf2qvWB+MpxCF4FAedsMLfuKCIZBcu2NLSvavhd4nBuyc7UaXKmkm4N5gOl8HpjmW5GtoTtTnYDr49GcAT/aQpCqTWDrMoYviHYfnTaVQyOZClIyQqQEviRB+QrD5cXZHmbZ3A1jmuMfZWZhJpIYXRglNaIGp3Jyzbq+bMNYSczdX2vQQtVqx1gJhbzCpZzFH25j/15TSlBucgnDGD0bJEmdGXPSpsqzRZhe3bp9VvQQxrNJmAcHh+ToKHJR9LIr3qEHlZabHDcCBe1MRpgB4W2HIVvRdCO4nk4vcctwqa3du4dpZyobQEJ//ynC/fGB8tzx6mnhP42R5vjtVXupw1x/fIwPLcRbxlJIBbHmkxWqaYUCIRuETygJYajmFAR/kn66Fryvs//+vRUnbz2HqcDvE3aTWl9aa2nMSjQwlJ0grE8UUhml1xYyF+RNBCAG4hayAlJDITQzxiH1zddQU2iKJSzkciMg2sH/5hh7pCUFk+gAdjGgWgmBogv9JbCCKl6iR7N5OQCXu3kXjcnRKZol24yFvOemBWMdTWCl0FIDKiUpo0zHrlNmSwMrXIwBXt1MrQHc/wWlhxjqNdakUkxysS0d7+9bKqoK0CGWz5x0JopJWtU4gicxJFy87i/TrMY8alVerdAVxx6J01XlmHxr0yqoRBvPMqMQt3AyqO45MrBVQn4S4WW9K1mQMik6Svt0mJ2sSgZULIthomZmx7j4MzlwUBjKyt/6INR5jDjAzwskbpB3DbfrQDWvOsRanpnXB2Ck0JxawbrQ6ehTZUyh2FQTwgAKwhrfArIALghbhsU/qTnPa+WBVAPsqpQSG0BSlnTjTqtRqCfnFepFu6IcHIoz4glWzVtxD5q8wce5gRRkWCzdWCHiT9lyb9fQ900o3Fc6AQXYTmZ1PJmuf75yPH2UXkhda67BXlFcdt9rYoHg3vtigT4/iaO1Ih3yZ9Y8ZI2RS2RWHbuU8N4WUo1Fk+p/Aj7fQFU/yvMJHHMWSD41h0clc/Oc8tZgHoTlhgxKmT601iQXqxlNjmB0kr9UDzK/qUslxnPrjVi3wiIw1lRQ2U32yxBFabeIGLWbwOS46fJtdvh0E1w7tLHgGzMOoEq3u4BR+Zy27aUhUtMcuNa0ugbARrLoDgqBXSRr9JTLXV7u3yr/PAZ/T5FStE+P4UXehfI+7+r4HMCZGDsoFFiRitKb2UyyNxTCItC6WtDgESvKU0Az9vgABPTznYetnmLcxrlcou4oIivUh4M2reRYA/jRpGS3W+x2u4PoOKFlBA+zDPH1KwgzZ5h5Bo+h0GRM4FPBQTZjNvuhfShK02cXhM40kD+km+M77uF7sPN4fkv0vxGkAyfKNlpNB7ao/D0TLYDWIxGC7jGSp2gFEpyXQYO1uASuApDcGBvnMy494lyJwvJJJZCRzkZB+zMuNAQQEz0jIsZjUmLi6KlKJQmvFs3eWUbEviVPikjG1vLQL3SpXcPCKyp1YJMzDM3LmqysQxtjRzJlD+kqvMpJzpB8tVs/QZes+CgbiY05DmF83OFoeAeE1XOZnuXYeQ1FWuPSYiROLt8LzOSgL4Vvmt9aaBKYITASQFkEuPD3cDVOKLgP00o/KTUs1FRroo4n2Nnk0HMZ6hY3WubtcelCdNpYZfWrVWDpGK1aBjjfIWumTvzKhMSTpwLSRFmXDtfq0GExV0guRVtw0mTA3UYYGjkNwrReT9BnoRwYHrIQAgB0IrVSAgpb3jM9jEYx5TVtzBBWsSbEAtipoc5168K/4TYyMvzneRL+OA9tHUDI9MC4d+gK8Ax9pTwWnlDK2aFZz0Ah9WpN9jHlJE9LnEbzhXE3dSI18++WfFljuwWTBwtryU3ZlnwrEXHoLfaXUNH0p2LDtqQlP3Svnr7CCZ+t6bUekA/CcJKz7bfzLHM/aDB1/BIb1wLFbyRegiBGECkURyh1GY9iyh8kBvsJ4daU3RLiJz78OU8oUmqveZjOqMGIhuhtbuGHTSOrOjsjj+PPMSHmbZw9Y1OlJy1NslUcabJZSU3mMyp/t1mr5EwKjf4pwuE+7ZRD8BKyhu9aFoL2rULBomSgIqhs3mAtjS+BqXCgACLBw5u3ukDIfLJSPc1GhNadeud3L0RyVXIK7zNVKFOcgxBmCxZtYhuvLKwCNsssgSItEk75PLs+QSguWgD2yrj25YaJcrKnZDOaKMMu/WF4k7pR/gVMSSNEYE+4YddXeCBIFk0ABToo61xSo8kgIDMbXOpBjpV+FTRgYCzjXjNOfVp7muCVkHCp4AE45C4ZgjmkN49FLdrykG4WYMNQ1E0bmtBiHMpnWnSjHrkx/KAFB6LzUhrpmxhFYKtTAL7DU/VZLGvdQ4CkwVG5udByZMS4qbEwyMM1ZL2tQ2PJfzlAyFcAdF89pWcxwJJLAufAdzK+gUEmMIug6MIcWoIJPCTDAza3OPtIhnxkb083QalSkKri0VIzXHOCmKVzd8YoURHkMCYR7IBcZyWfAkj8G7LMrxfsmAvnQORAz1fVxM0OX6mGdKmaI5QHumKMGgq6/ZYXd6XTdWoVOVUZz7QqHPvg3yB+VwDPGhnruotKHOBYvntfT+tV6riqhOGWUP0JFy1PhKOwjECEAd5ITg2IhChhBzmyZA/NAGMsWBuLFvOEE0zeCBpU8czJiGDwLCObkZocHoju6tgKFNlsIbgVuAvQIak9oGP5Q0bj2uID+ZQKePdV6ZdisldEj6A6YOwuOMo11xUQ92XBEvCrllOjI0lXGrjyC5irERUUSwhT48n3NOwGfO09uEYHsdeo7ffN2v9xiB2UEaSbPzKMhOPvMD9etw6tHAMhCfjtkMM+5g81AXneltaOZa17QHq/nedZa5RsINrXvPhZarw9zYCY2ybCbIbZxwAJeAgDro0vUr0IiIjQe5fc4SEVRxFKBfJk0Wpf3SniB7nboIc/LdMYNqu1dAAIh90hPyJk6xs7C3yecJL2yCgGpcLAWvAN8lzmfJsnVu1GP1m+WD0/OlO/NLZHFz1zpz10yDmWU4VRLZUr4ZbvsXn6XNcEgkoY8AAXAK4ndJQDvZFlbDkLzfUx/kc86wDtfVcxtMwlCgrG9WcpZG+8NIKvRdQXckJWwtKAkdrd9NZcroIB4THZ33ugsOLM7GcO94JSZgbnpmfcQMq1kJi1Fhf4IfarVJojfWLXUuI4WoYFpHShR3ySALGFJ/MbbHF8G7CAUZOL4J4yQGFkAzNqBv2OzEPqRABnX/vhcwlajMslUAfBqK5XIKPOUEZhgYkr2kbXwV7e1j1VuTMux/fXAromlCg3dVJfoLT/j5GCNY3UJVzPxVScKBDuTWXQxtCYyVfvifZiMNlqPVqgw2K0dHGZyLOav5eqtTbE0pCv6ks8jtGBy6aODx+Ghd8GiYDDYrxByvcLbcY3V0RQ48ixjmOvnofMDlLWik1ZBrVeJud0vo/pZfngowox+xHkUHX3Pk8Bt8rBH5aQrY5uTwIqRI8jcOYRBE0pRMVmiZ0B72yrkDT+oQJS2EdbCzTUhBJy7igPRjRjgOT436G9991jm0iI4E6Ue8nYjwhkbQkkJH4g+u9OYnCoj43xenmtJavHo+NWP62YsPpfYVHz+1SpOfJP51SgXXW6xcKokVhkAAB0NSURBVP3QDajxPSkSSJ9gdJRMkGoRuX0e6tCmhbpsAQS1WI0JIY9ox8IhKtcrQy6wKyWRdpnUY+RkuaH3KsdvTtLObe8euydaQEMYrd7kTkNu2Zll96yNmWZekNrd3I46ABkg0HRH/FFTW4ta89tTYAJXc1HWMncKhYiQAIVaOiC62iUZKVdwR3Man3m4k+jsZ/j7CW7RuckC/oQk1M9zAPuIuMn8nevlPET/OsHWVU0YxpSbjGm5ZX3IBRgSbKV+jGVUxOyuXBsYyRyAIhYGX4EA7Q+QCQGx58AZRS5Xff9zOAU8V9aNRf0NsINNmFLYISYhLAVTrAb61C0FJMzJVAGVhMQO8b/fLhYJXTi+WjhnzJhXjWuuhMtD90D3yPOO3r8HxbAGLF80Yw1hP8IAKesh9fGd+B3VzUCgYmokziDxuvNVr5ECIFEDDzE0QlhAzSznVgJSmgDaPCou1OgezbG1a9RyqgHrECmfGZdzx9EihN7IUkM55uZpnpOI3b3KWT4A6waEmBwQXI/wtG/TBygIN8puZI7OQH+mANQh5BGCsClJI8dIpDwrHLQwGwgQ3fkjlJQxtFQToI2zP9jdoyWrkdagf1YJgMEZ8LEKqztfTdwPlQqsHSGGDqzoxnUDZ4VRXfjxvdaQlpjcrfBUgJEiCIwoOQNtDFDqws92SpAEuuE/aVbX2jkn8A+x91UigauJttA2sNMCzAUXDueaoBGLGfrckLJIDcIyVuxIgB6jBOS/T8/OB55HA1sb3ylqpBh/9N5LSITpCwn4Ct61gKGw0MORB5J+wVyEt/SuNS+NunPqLnbmglwxPcM4mwnYgSbPpx48cxUHYCDKWmvSulqsmrEQ5DSW1mo9DIU1Om/zoQy/gqZts6AJEjydXJuSMzPLEAodbxBQ32av0mqCK7iRE1zrMwcQtx5YGgXBAVB2mZQ14N9DKJ3AaKJQQnmA5hBASnljAwf8r04GteNNM5NWa427+wZlknI0t+7TBwyy2ORz4lfX9loBNiE28IiAMBGTvpKJy3JEBFRHTXgIOvqZWUNsukwMRxxtjJgYZxp5w1QDkD7Ew1LKF0k02wb4/+QHFNZjN/QY8ZJd3L6Ta3fK7aWT5HNxqYRkKIEzzoAjQO21exABHYlA4BO24evqRl9ekJyXQ6KMLSPii4QQoqnVHDIQf9X+GJ0IF0xtmNy4hol4lkdx8xUahTAgXIghxIrrZSa61yxF0DGwuSxqc4WirquBcK3aZDAzjhaajFWVRkaA8WiIg7/YepX5z1/jYEcI1EPcE838HJhlfhG4PK/LKOPVIXCTFDX7u9Qb0yXTwtD9NHg8yq6QdzzyqLIOAjOXCQGotajoUvi6HgUDz8VK5H1uURbOELhb5OLNrHMtZdvrCio84iazRqaL8oDxGH+EnCsRa6BfIXYIp+ku6Tp12UCxmqaJukPcQC/9jBv5vtwJfsCRyshSPA01tHhh7lbjNDVigpiUze1XoeW8H7pvWhXe9Qf0wCm7qMzLwLW0EoWuteFzwI5HeU7BoRusJey4wJXF7oI7vgS+CFYFqv+BawW48bAmn2l5KTCFhwqbP6xbQWFsh1Me2+Q5Khzp13roPF3WsVgVxtmNpbm058H23BMATFQAQ+ipv8eGA99ZhtyUAm+crm7UgauYizEu5xolwRqaKkDWeAg/aGlpZckLic0xpmRvOoybGlbITTUPcON4R7jhWrMK4qpsNgqKxYR+8Ai8+UcXOMIZXDgvJ2FxwRzfkjrQL1hJQABhcJJ4z/5SncPJSEcw14GpxpG4M3MUr/t/a7rX5bqyo4DjW5Z0JFnyZey5eRISZiYXKkUg8IUqHiMvwivwRLwCRfEVPhAqFBQZkkwm4xnfZEuyZMlHMr9/n8mxZyzts/favfrevXr1+piAqz3a5pVZ4V0eaVl6I6n+5R/to6LwJFIQt+OhhodoSquC6raeE9oUyjdWGA9x25GOdx21BLaJ1+2uBcPJcueT93zvwIdDjCvB8tZG005ZPlGEuqOdY9ZjZ8f7Wcsrle9tGJhkL0HAOhAKbwiNFqM8Y5uE9Dxi+xMRD2CzVq2fEYxH4P0ppfvLH6yXf/ry7fJXkP9Q2Pb5yxfLXx/eWf7l/kOSt0FuHRRe/O53y1vf3arHD+EaIiFIWqs6nMK3Hb61CGqEPgYZ7wNTxXKkAO4xDBhigBg5T6PVp9zeqSYnJNP2BeAxX/vxCulLvrYCE4M20QQ7CK5eO/AzAmPaBOc1Q7GrD3YcvQX3VVsXJsRM4wVTHol/lrl+QyljvEPxUBjelVCmhEZqwLTJLzQcRYNXEvhDJQSN130uzfVLyu7qrDIVkmn8GC7prNyhjpkpuS6loKeuB79cWt2LiaewsbACDD3b1pDJQbk/Zm7E6tAmx9O8vNNU4WAjoJ3ivAkNzTGAfFmt0EE1V94Pu5Sx3AicthJlWuOVJRxjGOD2Eh6vle1MyQKDktdWZJCC6rPiReW1htdwV6FreEygonHeUgNXSDssQSnNIax5PejWEv8oCM+FwyO/z0ZhcrBHOb6zb7bc6eDUPVOQ674DzsE+gT1n5OMHkk5PoT+sTE7JazNwBwxFUdIm/I3WpTSKZjgTxqmcYercOA9V7oNiWjLd1lLpNkWdd3Ok7rA8H1aW20UPb2ku4XP6spn3ZXjMMwdD9JhEPbi7LUM3py+hbSvN25ojtrpcTq6V5LXobYdnXoOGc9/fIlPJTAf4bouC6mrRDoPysGmScNqp3VfkpJbN8dIkJs5OeD4QZ96sCq9H06gTAxxrrHfbyy4osi1hU5rzkW4Ke5TX//yBRecSH1nZ+8mPNeqTB3r2xCESENMLDhDx3P5CsC33PXhsc/Q64AnP2UtlAWpXDtVqHR45HoxX8u1jntjF2fJQQv5tS/UAfvDoQO3LyXLoTMAHKu6/eiUMwb1r3Rva4LwHadNjPmUJ+JTCdlaWFRnpmFG8EwzlY5ARQ5iEUONv7285d1AHCkz8y++tln8+vl5+xZv8CFx5DH+pFuzz1e3lNzyb+4T84sWL5dq1OXoIcYd5jTfL+zENpoJCxIZcVqtaptziksQx6G4KztL7mmEoZT9WhAVOsKfwDnQpBBoJk8CV+0XKmNQ1BJxj1GMMRNuSlE9osn55ZO0B3S2EppwidrmHxi9RvRLO5mlJpqTL5/6U0uRTojkrnRzGmMEe6hLCFeaJI0paJ1DjyaJjioukTSgUP+RKVeu2UiGeMu2UFBDPPVnh8aJc2fQKB3848bWaXnigQPBDXSd2Uh6NH66EUFBLwBs/Zed7vJMVjrc24aB5RgdzOLcQ0s95oy0e/KlLZkZhLLexCrnzFPo+5i9lcO3otrzbhGPTpQJQxhiahQs4DTkpwS3EGAVBYUDtjFMIlfLczUP1XKkOOn+U52yXMS8DeC8lz3u6UOqQgcoDPrU6Wt+vvOM8r0lh5CAYM6NfmQndMkb2GrIaaXQi3my1MY+y1jqKwBhgvAfWcFRRcUa8A3DLJ9cKJ9pWZ3aR5XNtipP9Hh3Gzyhk5hqmeOPr5lIhc8oiJmu+bx3jFlEGfkIoVT6F1S7O9bilE6fmYAl1VVcUVOS7ci25yzhcipDeiWAyjvHWFWVcSNl6yYSD8atf3oCl0D/6XeLPeGbkALBzCG+APpNorwXM9z5a8aK4kpjyY5nzK5ubVwhywtzsGDB3dMv5fi1xiwqWe/cdJMoj+0LDvdcKO4vYUip3HQ9WX+hHDwQfDhp9X7vlp19pVcwcHNqofI44R8zJQ670IQX1jDegWzPMXC7f6Of+uer5Pd7KxdlLJRUEAoIf7FuZPNNgkFL7+88sDjxzwvMp+GJkCG5JfhjdmLNPCeFaFIhg/vo3xoR9yPqM4m1/27k5fyre/IdP95d//BVfTC7sX6m490/Pl1/sPV2O73+0fH1yslx/9Vvhx9F0GGgX/SJ/Ezt1Cm5n5pVMnnodODL9wVMeX3qqauHZXoOhUGgWE3CqUCllAWZwJDibnEbPp2QwRZaeAmsCswnaYBvoY7VUevMqdMFUfk5pHqlTirFxjiSpH0ZmZvYDV2FZK5WFQdfwmxCSzFFM0xyvR43Wnr9JFsPpG8YL3/vdcykTCnFdcstEL/FJQhIT7rF2hUYx/OQ2sp7B6RXnkJFPGCQxb9X3t1nb2f5ijt1H7rwEPsHTHri23+TZ7PAeUh4H+HAO0MgDEUZN/qYpgivav7U8nrKe4s9+5w3UeqZTpYNvtns0XQqiFEfhkqHMzUTwUEWbhaEV1I7wGvegxQj3piTPeDmrtgOhV0Kcgg3/tfjZA5t1K+8zR3m1TnBu60x03smIg4tGmZxOhmnXob4Zp1jiTZ6KkVpx7X4IHJ5p/TWeiugt8Yyi7uuupZSGsRPmDY9NQt/37a5LofXg/iHPzXyac+N0Cvl4UeHZ8xdKeK6U70TginwzSHnJne2QUSn/FJ6cs04Z8/jMPTgyEB0WEm/GKzs8xnaDXAoJ8wTLlc3hwO0zNf93ZHbFUse15cKjcydiwaSfC/fwEtl4TZFzg+HCNbJUPrEV9mhUKD0Kq4TZCoLblf7qGEEoiy1CfKq7wtpS7LmCJSVAwyAppxvWd601S6tLpx0pDeCvn0UE1gRxa8WaRT+7UCognPzk/mr5med+jRHf6OTQn/cow0OJ7kuJ9l3v//kP9MP67cXy+KkEvH2JJ8b9w5fOHfTuBKej67dW3ENhYfmfOwe2uex/hDm0APYd+cPkRA1C3xWLI07PjcDEBDFOdPan/39QrQfk5e3cpnB+qn1u/WduHBlG6pYvEO+BGqwPjp8v/3X8SmeHA5YMI3vRvR98b3nn7ESt+YZwMWCMV2XuuLN+rutAnlA8m3vc8UwVsu3CVZtkgTaQVDqRJWoA9EC4jRqKmbO1VaEXJqQEMthZ/9kV3/PeUY6jT99fFtLwIrJMta+dZH3fYdKS2eWAQsUV3ObZFaoV2FQpnpJqZbKVp5bBE4bx/twxkLi2zuSv5QLQOEu4ko/YB/ecgJ0XmsJIKtCnxHyCmgAXsh1h4Mkhub4GX8vcK4Ld0vtOrUEoPo/hVTTG9NSNORnbxmArHaNYrAlM6LtrJ++mcNYF8xkkw8W0VUmgiEEWvNAppXbujMua/YXrwsS83RTBOVpAgQ8FzOsOPyXPy41lLOKfcNBcUqZ3hfTTqI+CWYn72xuZHormU1Pl3a0wAnu8po3HQqEZr3v6d0J8clYX3guK/lQXiCn2jL9DXeG+59/CzXjT0QWsKYu27CClOYEzSxgH+6f31HywFclOmyrP3CJFNC8/WL6v/Neh8G99zUigY55Unt/wWHAZN2+4ttwptz+1CPKVEA5PeEdG1S2Rf2i1rqMtfpscqjltLjJ0UkCVqEw7JPNGLfOmtOG5Vc9yheUEtyimjEE86DUhbcO/ZKYKgC34Ln2SMUpxdkCN2j1uv4uXJnnh38faxvxQZejh0a3lMSS+LpelgjTvq1Wbte9vU0Y1ULul1uo1K/iNPkNveTr79rnclQOrNcuTx+fLhxRXLuTJ8/Nh2of3d5avHQv/FAL2hZDv7u4uX9fL/OnN8un3D5ZP7lEUTmb+gBBss8BfOGH5lbMGPxOy3Xm4s9xRObx/x55HJ+R8ePue4lSN8SyxfHXqHWopZr9WFOQFSK/m5vTjIDskt7epkomvfSWnSxFgRHhCCsJLcB49WM4IzAdc4f+E5F+9vFjeXwtJIesqIbt6vXzy479gSZyZ9vxJGGYtYig6DsZnnyIc0v0jRCmOOMGlZbdm2gpaSyZnV3LZcZS/gELMqXD3WB6h2yfUnGV7v6WMZ8XFQDFnWxtWaFB+Kdc8OMbo+jGhrJVHWyeibUoglkigygNl1dok/ZpSSCgLHesjFQyTjzBaACfIhS49H+4MMZbz2vO7322luJSzaoqFmC21Mz3ei3YEp+0Yk08yRicIm8KEnAnhPobdtuE3Ick6F8aHo42QUhyUWDVvMfMbociV5O4koM1rujMQqBRmlr9FhAwVMQnwmUfeePmaJlHCtwr4wzu2eXnPtVwblT4GY+272ty87V0pAePcsGoTrhsvoa46fvBg9NrnHDFsFzUltJqaIpv8GzgTro5fm3AHKFOZ7t97ePYAfn7/zXMhe3kYsuOdefZTV2Zc0jxjjUfi3jy44U28MTmd5A4cR3KT25b1q6RfX9mfK5daPteszIeK9r4ziiKDFu8FQ8opzzt6rsnaeNeFfyXo4CGFXtYhXsoTK4ysVdEN+Cav6rttaZI26E/4btxMWLiGecYwY4z+rlS/VQ4rhinMDyCQWcQjjeZoqPlcoOnwZczjvvnZe1OfrVI3cn3m86JbJKhweuvENjkg7/xR+FWb0iNKqRCw06QSJBsgJMdZAIRv02nsmOV5xSPa0WU0uJ77+RDs1StVW7WioFrRePThanlfycDxFxfLU73Tb/Fcjox7rrPDMQVXIvQ8hNm3iFeW33xL8dwTt2rXsn9ve3mhE8IPEe59ntwTs7yUrD922rPU0PKhEPOCRT5xYvPbNtMeniw/eri3fLU6XJ49R+g8FQTeZ8HWQs9qivIYeOwU6bvlz12/y+2ZZDeGyy3OTW7l56He9msN/N7+9v+mTiyynLFOPXsuaXzw3gesobwayxJS+4zLHlEhHxvAE48t4e+7uSfGTwf4n5WOS4oKeGmgUT5T+EqRxARVLu9WOoCJvGDKEN56VzmLrDNdZCx34r4Opm0bQ9Qu55TSKJzxKyGlhFi8eh6lQGYHAGGJY1IMtwh6OZU23HaxAzbKE0S/PGR3GIs3TLgT3v08Q3hYWWCp6LO6t5vCLB5k+Zt0wxQRYi5Sa16wA9i8wbzMLPcoC98Xso2CICDV7PS2DqYIW9Vx9acQe6stOAa+KXS0n7RwrnxaQp1SSQLf8JzOMf/gjZKaBQOK/OLMiiB61be9fY8pt7HQQpaOWedgojfYCFolBXWSTemXk42O/Rcew00rWSXq+9R/q1KQEVQ4P+W1BW9GZx+cLcRM6GVW4R9J8PyFFtlo2zjGrDAy/FLLrvGA0IV6dSk+ydLh18aBw2rcpnzF9bzBvZvj5eOHl8sfL1ZwwjOjSE4vqV9ITEILz1fqgjosuINIUnx57uMlDfz5v/gB3hFRo0Irw+g+OxZMOCUzpTtGGzjgoeO2KpzOq/MkepIZz/pKJCVZP/qC0kHvFhWmMNZEb5HdHYaiNEffxf/ROryu9/Jw8YL31e5n+Ok7fF+CaZ1nhUd7dkLbmLYH4XHnNeHIQziE9IoI7xLoQ4n0XM/BH+WwrpTBddEYJsiCx2AtbyIMQN76vjzXG4Ce8rY+IXT3HQhxJqTMo89rCPkv5cnWuaHevzLe8claeynMwDP73ydXy9/8eG/5/BN93E3o3HteO+j0E7mwU8h/LpR86Z6f/+xgORJKPuV5pTRvS2Jv2TD9gOdyHGU0E0wQfvajFYa6u/z7v712uETMnlRBJMhLN16ad4hs0a3QaE9SdcVytkz+DoNfZC1QZdd9eYwdD37n7p1J2LZUH1PHeEOQmAzT1ft++vzwbgrtIlGoygsYpjTmuO/GmyQ2AQ2ma4yWNs4oxPwVmk6BpbA0C9hqDGBH6Io3Km8woA/Lafzm64bxKmOobRa0lUz6i1gYs/u8olW1yXOohRuh/I6hiBw8uAE+YqJCi9lsqwAzpdN3byVMywuS8cltFOZWA7Ut0TE9p4zBxx/e2GIKo/G4MZRLOZcVPqmLQtteYrwS9AXkwTSC5f5OVt5zzxSvetcOV/WgZD7GCw97mPumFcroRvHcUFL7aFKeI4+KHI1FXsmnTGeJKY2oNGfTPaLk/KwmRhnvDc5zdVZ5StX+VdOWJxO+wmMh4uDJvbNii0KzVQmNmlNKL4/Pb7xIeaBQCLZ5N9LmkWzhz40hMyaUtLoY05W7C8et2Yb/esqXsG/ze1c/fCBvfG6+5nUoFLpc8wSN5yf/4detcyvqe5wGIRZFMcWwlOQlZr1lMauFmPbypoDSLoW3+8LYKfgEQyyzpsyDNyM/nRkYlPg2rykogrvN/YXmTa68VYqwFtOV8VxUooDDppOt+2/SE8bKGHcyz4FOJ9FkavPAU1ibAcyTa49iXnh50wmVjdSfAKt84Vr0VmnShKYZOoo1XJcHHWCOJdBfUxIP75gwpnRWBCJQCgDQmIE3A63Gu4bkF+1WNji5xki5jpQZABiZ5VKC/bHeVX8GkPe1Eb6UoI/wzyimp1rRlJx8yBurkv0LSqgVjpLDrcy9coJOXtf39ZTfNs5XarjOvl0vLyi2e9ostxT60j33Pt5xvP3VcpdlPlJ+8O1zIYNj4D+lJL9+UaL6crnLfT6Qi/vh57fBgJnSOpB64X0cnVEuWaTZEU74dddRtIogMSd4y/tsZgm2fvApQTg70BHr6ltI8oEayhADIGqhVu59if2Iu0miu2E8gv7NqlI8iJhrjlKYt7CUiMDvbOFI6LP0bt/CbFmsQocK6fqULE8RjFUCWAoSPb8jesrqO6Exl+iRcq0P01gs7+jZvB2PGQuTGbPEPrUzf3pPnlfeQWHChJWe2baS28beOLAVmzyqksrlMW5YpazrbQJRi+OE8RrTZRD2Yhrvbcnd6ybkyNLcKOr0xXgdhTSJbUWFlxTaFoWf1x+zFxrtUjwJ6WwngrMg7Wi62tTkPa8prlYIR2jBmBDWc6ptQXmdNWU0adejyYZn3wjRr+Qo9wjVtFVByO06JcA10nkDDwJWav7XZzaEm9uRJHy0LZcaHld4oTD3nCCnzK9bVAFrxqoeWBVmFSblpLXvcujJy76N4XYllu+KKp5o5f3k+YnzOa2yO2aurWY78PCetEeRxHJTqbZ5y1Nta0t+R43i5emO1m1kwGbTE5EL18HYdmSY4BsvG48b3KUICs2nnk+YV61fnuot8tA2nRRU+btmnFHLsYgvNuUscG8mGcxhVbJbEexWxa3uuYrfQ5bPdGA13QpKK/atoLvSpea70ppnTeGGezZ42ZUOiE+HwO4v19qCTgXQG+8WRwCmwuhSdWv4K2BMue38aftKRp7DNJanbTenbxSEyivf0OAljs1xFJmISDjiJYDNbc2dBA6bQNeYxL27O8uxUu7DZ5a3uYW3eUM3oHumQ6lqTwIGee4ttKiFSs+gutoeW36qsFXEtiehfr9Kc2O1LeT5ExuwVcrvEfwTiXxZxQlF3lP2cGo175UVxiePT5df/HR/+dHHdwb2I88WD//ko+3lP7S5ysLkO38hpv9vluDvLOkkqCIdX6ZwlHMA5QlG7qj6mbRH/EU88MUMr7VOlgeY1SH3wop5bJ4PuW1JSIFnZFKGU9U8jACH3W+uNfJPCYzst8qCMFPhzuWOucu/7LJcFd1lzVuuHttsgPJeazF0nQUKcQwzwrLZd7YJ564pqJR/idos7xTRInTzv8XqVS+VB1GfpOpxpjaL4OXd5fUkaMEZE9WxM2MUM61ZrTyssf/QQydj0hRtjM4CUrIvdfdIoU67Gjd0+GbnTU67Zx51PJRn0u9DDvQxyOAjHplVXmga1AqBJmGedWWwUlNBV+K5vFQq9kbrn0oV2o4THAaClxaMSIXnUnDVAGU4uMbmBZcG37IhfK+VRwBNPtA9hYe1PpkcSgrVI4XEq5QMfBSmz5Yl82m8hP2u8doP18Gu1cLt+L3SkD2eaxX9bezG8dIdebrOE3guTJXHTBi31q+GB9bmkwx+e3yKHvAjZHzPCrY6V086aby0ixTMA/P8/ZOT5fsfkCne+Jdk9CFYdiiCCkZTRCG1Mo6Zo7kVRudwtCAz5TwwW5EnEMEFbrx8Qya6J3xVD9WiTcn6Fgn6pIjC9+ySQK+d2kyhoakaBw38XLuZ9n62RzYTeEmO5yXwtGkuiTfhKyWaoU0HZNggkr8Y73U9XmdcBzImyX0p31kQQp9WfN+Y7/8DKvtuET4EBKgAAAAASUVORK5CYII=\"/>"
  },
  {
    "path": "examples/sample-book/gen/datafile/luther-bell.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"image/jpeg\" pi:base64=\"/9j/4AAQSkZJRgABAQEASABIAAD/4QE4RXhpZgAATU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAEIKaAAUAAAABAAAA4IKdAAUAAAABAAAA6IgiAAMAAAABAAEAAIgnAAMAAAABAfQAAJAAAAcAAAAEMDIyMJADAAIAAAAUAAAA8JAEAAIAAAAUAAABBJIEAAoAAAABAAABGJIFAAUAAAABAAABIJIHAAMAAAABAAUAAJIIAAMAAAABAAAAAJIJAAMAAAABAAAAAJIKAAUAAAABAAABKKACAAQAAAABAAABkKADAAQAAAABAAAA9KIXAAMAAAABAAIAAAAAAAAAAAABAAAGQAAAAAQAAAABMjAwODowMjowNiAxNjo0NjozNQAyMDA4OjAyOjA2IDE2OjQ2OjM1AAAAAAAAAAABAAAAEgAAAAUAAAASAAAAAf/bAEMAAQEBAQEBAQEBAQEBAQECAwICAgICAwIDAgMEAwQEBAMEBAQFBgUEBQYFBAQFBwYGBgcHBwcEBQgICAcIBgcHB//bAEMBAQEBAgECAwICAwcFBAUHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHB//AABEIAPQBkAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APqa9X9pf49+JNKE3gHxt4t+E+pqbY61rlzJcz6PNln8zyYFlu5lMC5KKCVLIXCZwf0k+Gn7Lvwu8KeGPC3guz+J39t2+n7bm6ZnTTmOLlf9HliUrsGG8sK/zDCn72MezzafD4R8f+Irrwr/AMInpdzNPG9pLbWvnQXsUgkP2WVISQuCrKHJyFyOeldbrD6v4u1XT38Z+G9V8IWNs6aabezMKvPcz+RIIopxuUZLIVDBWO4hfmFfS4fhzC4NKVX99UuryknLXv1S8vwOR5tVrJRox9lBq6SstOi8/l8zWi+FviDwwrap8PvGfiLxN4P8LXE7JZajqLLJMgZPMEF84dtqOrqivlCoCqygc/C37b/jE6h41+HPh+wuH8ML4R0cXz3OoPbtJLc37hAzTbylwuIwqgc/vPl6iv0Ht9S8EeGPtnh6aaay1i2mEM8ZvPsEiBohI2YSVyehA2OcvgNyBX5dftmp4A8Z+JNCTT9P8N/EjRtS0O3judOvLuGGTTZLeTfAjtIm3IV1YYbKFTuIO2ujiCvy4SpCn13s/NHBltD2uJpzm72emm+jPOIfFdz4g0N2vHbSNY0yCQRiO5VHikYFARIM7s5xxnBAz3qh4P8AFWljQNamnLxXqR3MDLcuis7q/wAyOTtOMggNyvIb1J4y0g1DWlutI1LwleSI8nmtH/bcRG3qdxABK7s8cjnim3/lXetaVoV58J9BbWHhke0hbUYg00S7i7BVi6YDZ78A88Z/JZYmcWowifoKw8JXlJ6+R6hDKBqmjW0dra6pBqgVrd2u0RLVCWVlG1SXIb5gMgA9cc17v4a1K9tUMN74ceW98ORCO0nRgkkwD5XcjkbwfK7nqMjOa8c8PW2v2dja21h8L9EsLDS7jaudS8jEikqcgQA4+dhkDHQ5r0G11zxncSra33hLwjbXUdtJGxfVZXyCysDvWHGQxTHOfmJHQkcVetNabnVTpR3SPZNJ1TRjp17farp6rpmqzmWS5KrvikVGJmCYbHlgDGGPBJHPXsdH8NusV34i0eG1v47mONLyO3RAL5g7uY3Kg7sozIQ395T2GOc8L2niLxNoXhvS77S9A0oyWXl3IhvJZo0DcllBjBkIwuSAD83A5ru/DQ1nw3/ZulXNhbw6drLrDbTXE6R7JshIoZVKgqd5yH55PXgAeDjMTUn8D1PSo0Ix+JaHkGs+K/iBDpTeGE8Mpqut2cyraynVkt3mhN02wkywja/MaqBk5IGCM074f67r3i2+m8L+IPAo8C+LbJ0uZPtF1FNY3oSMp5chUlmIQO2Cg4TJx0P0j/whFt4su4bW5v7FtWd3u4me0DkK91gwLKNgYRShcHbu2xruLHJb+b79tP8A4LP6T+zN+0p8S/2evF3wY1O08SfB3VIU+2QapcWFxLI9ijmZhbmaCZJEnZSA7KysCQjAhfkcXhcVmMlSbut9LHv4SdHD++o6+Z/TzefDrT7Ztb05ILxXtLy3WEtNGz3MVwqFYomnwp+cDaoyGDY7Nnyz4E+L9W1P9pXxx4Y8ReC/GGjXenWt5apdTQReXNF5cUkGQvEUjQxumCx3qi90r+a7/iKotbeCzih+AXhy9FiohQz3d+AEDA7CAMHOB19O1YF1/wAHR+h3Xii38YXP7OXg2312NkU3KyagJHjAYBWZWBkGHYYOeGNelhMlq4eNlGxx4jEus7tNn9Kf7b+ia5cfBLxVonhqQ65YaXdWVxdRxmS4u2tlIdXMa9BGYstkf6sAnG3NfLv7JN/8QrrwtP8AYW0W4lvjut47qaQM1u8URk+4XWMOORlcEgZIYV+L8X/Bz38O9V0jxjo/iP4Nag1h4mt5LcQ2ct0JbbcQAwmkjYOgBfhlzggZIAFcJdf8HH/wF0e9sL7wt8B/EmlPorRy2xhnKxhlGGIHl4XIJBAAzjnIyD7WUUcRg6Loyh1b++xxYumq9T2ndI/sX8Oaxeq732p299YW/jCztFjtN9tdW0szR5eVHIaQEeYmD90qqEc8nzX4gQ22p/D3XtC1S6bwPcaHefZ7a6sVW5jWZpcwZVskRu7RiRTtbCgqcc1/KXon/Bz/APCbw5JI9j+z/rs0Vw8OyGfVZ0FmY0ZVEQERCjLOdpOMsQBjGNa8/wCDpL4cXOi3Wkr8C9asr2+CKlzHqMjuuOgO+Btwb+LBzjoQea3p4OtF6RM5Rb+yz+l74j+F/G02laT4Z0nxN4R1TV/EDQfZ7iSwkSWIbolkKyBt212G7AwAYjgdc/Inwt8R65aeLdU+F0nj4aZ4g0vVJHgsRZh4J5kz5nlzjDRtIu4KSG3KcY5Jr8V5P+Do74Wi7e6ufgROssNn9h/ezzNsAkZlZQYh8wJBGc8jrXkfiz/g5C+D/i/xEviq9+DdjBew2UunxuYrjc0Lqu1j386N0DpIpGBlSD1rupYerGHLy7/mc03zSTa/r7z+se00XxVaJ/wkOleNI9Pl14R3TWccKB7WZDF5s0MzFsxSD5stGQBtyxxiuBs/DH7SPifxHJqXg34mJa22nzxedo19FbymWykZGkjJWQiTAyQVKEM+xkB2sf5xvB//AAdD+BtOXQo9T+GVtcnRrL7BJHbw3SRX4VVRHki2sFcKCNyMoJkPHQVKf+DmL4ZJPqHiqw+Fmm6L4tlsJdNjuIrW4eSCZlIW6USwMNwbDEHIJRcYxXFUy/E6tnRGpCWih+X+Z/RSfE3xs8R+LPE+j6hqfgXxDpf2do9EuJNJeELcRSOPJlii3Oq7InSQSEFPOU5KsBSX+lfFqW/8KWc2q+H9DsPEA+2w21tG80VhqlpFbrcQHzHeJYS0fnqhYMDnHQiv57JP+Dov4YXOuadr938ENIstfsbprnz4m1CFJ/MjCSLMpicOrnJ9VwoU8c41v/wc2/DlbGx8My/DVtags/3iXM5ujLLc4KiT91DGmTnJwoHXHJrOWBxaa0KU6dr8r/r5n9S+l/8ACc+H49HbxXptx4tsrxpr57i5sbeP7K0R3G3L24DBt2xkYg7cvzxmuq0jWviBo2ra/fX02jeL/DN3MLlLW6tIWuovLeVpomZZcyMq7nVt2F3g7ATz/LOP+Dn/AMA6baQND8JbRpLKUOn2iTUZlkjMjs6MvlgAfOOa5jUv+Dmr4W6hBbx2vwbh0lYLo3PmxNfq8LyMWcq6xY5Hy98ALxxzMcvry6aDulZ8rv8AL/M/rJvfF2kDw34k1zU9M1G1/wCEaK/Zo1ikuN/myqg2ogBwmQNwyFKndipPEukeGPir4L0fR72Y+JrSOW5S3uLSMqLOVTnghcRMOgEp/hYdSAP5S1/4OevCN1cJIvw7sUvbptwluTeuF3YDoStsGKNsHU7gcYOBituP/g598F+Hdf1S+0v4VaLHDdrC5sHv9V+zrKBjzI1NthCSSxyeT65NbLD1oyTt+Y+RtX5X+H+Z/Rz8bdK1hU8I6NrtloWp+DLewkivRqOm3PmXUloirljA4VTtiViuSSrswBUVc+H3w60zw9e2/jTwfpyadptn5bz6XZpmC5LWzmWJyzMwRleJhw20qj8jIr+bq+/4Ogvh7q2izaNrPwd8Majb+X5I3XOpSblzubezW4ADE8jByOOM1yPhX/g5l+HPhRLy20r4UaYbC7trS2mRtQvHRI7WF4kfb5CFmYSNu69uQFUDphhqnLyvcxqKV78jSP6Rv2sddt3+Gfg/xDpklxp95onivTNURJfv2ga8RcYwrbgxBGV7k49flfx94e1P/hqe08dahaeMtK8Pz6ZHYTPEJo7XW70rEIoZJJExEVEwjL4HLdskV+GHxt/4OHvhH8Vvh/rfgeXwppNsviSQTmaG4vkl08rNG8QTfFtYJ5YA5B9a7Hw7/wAHKHwysfCNv4S1vwXpHiDSbWFo3e8V5pbgtKGbzMlAxJ53AAg9DUQwWIjytJX1/GxNScZXTT6H9D82kfEiHxXcah4TGmXEi6jEWsroO80sUUxKSlUdWVFAQhkf5o5O/FZOka74y0qRdE/4RWDRkivJL+58u4SC21G2ky1wYmdV2svys0T4YeZkHAr8FrL/AIOTf2ddNTTY3+Fcd/PpRTyphcyW9zGgQoyCX5jIpUldr5GMEcgU/Vv+DkH9l3xBY3uk638Jby+hvI7gJcjUUjmtjPC0bspZCAQG4wRjODxWkcFVhe6uTzKdvda+R/SXpuofDHVoLbwzY67baLqE1/JGI5Z4lmfll2SK5ZZfM81epyeoJ4xwV8lv4lt9Xs/h7YaJ440XSrZdMksLWWGK7mLwzo4KSqDDMNk6pjBcNjJDgH+ePRv+Di79m/T1sLaf4fa9dR6MIY4Ll7mwEkaxWUUakMG3yMZI/Nzuxliu0gV6Kf8Ag5E/ZKv9W1nWx8Pta0nVvEciSXlxDqtrBI7xpHHG53cEqsZGDn73AzzSWDr62iS60Y/Ff7mft5420fw3fzWf2vRtS0eM6cxuND1uddGjmnRYVaVDOjqLhAojVdoJDynoKz/F1j411WHQkbxVosWmeDxE9vYSaZcGW6u7eKVrOaKdsqJcq0bJt+8v/AT+P+rf8HMn7KXiHS7/AEzxH4M8Va9Y6mqh/OutOwkgj2PkqTlXXk5Gcs3JB44v/iIg/ZI1zV/CXiFPCl/4evvDBkkKwanZNHOzJjhJmBXY25hjIyw6gCsKmFxMbJxfyNYVqU1206p/1+B/QP4t12+uLSw1Dx14R1gaRPFLNqGZkuInEsAf7KiS/uY8yGSJwcuPlIzv45bxh4lltfDvgzxJ4N8O3eq6H4inWwt9yRoI4CzM9wjRuqlVEbqRndtY7gdhr57/AGav2u/id+1fpnjzWvAXwG8eaZ8OtbtLG8t7nWbuKzaaHUVcQ3NokYmMisQxBZURvl25IevpFtX+K/hfQrKZvhHpQTShJCY572dIghdzJNKzQeXGxy2DvHBYd815csylh5NNpeX9M7IYVV1dJs9c0CPU7efw9q/9k28NlNMBe6W4W1bDfPDPHJI2x1VW4B5xjb90CuL+KNz4q8KaRpmteCNM8K+G9U8R3ckTiTTmEt67PIkTTjcc5Z+cZOGbmp5tb8c+IZ9P0fUfBfiLS/7UsIG0wWKT3iQXUURzJ5q2/lyRmORwI3bgbGHIBrmI/HHj2y1eLSNZ+CPxH8cHw/CtjFqdvPp9nbuFx+88q8ljmilCmPeuxlyMqe5zlj5VWi4YZRWxx3w28baZ4d8WaL4C1bXND0fVr5J7mcQI32Wadly21XG5Q7q5KMchnGCQRXtt5feBU0zVpjp+oaurzFdRdFUJ5ZAMZ3vtXKphuR3xnIry5pdZuLhTrn7K3jnVF1C7mkjt7i+0O5W0jlHzLGz3a7W+QNtGRlh3HPA638e/CXgjXl0PXfhd8WtCvdTzaSaY9tYSwyOzFVQ/6QUXK4+VW5ZjjOK6YYuVRWehg8Mqbur/AHHnls2qeBfG/iK31WzlfSdYks4NNukRIIruGYp5Ssi72UkIcEcMRjuK/UD9nuSG70G9miaWIiOJXhJPyuGcM3PJ5HHt9ePjSTxLb+JNNiuo/AnxEtG07ZaRJb6bp8kcZU703KJi8TrtJA6AKcgZNfRvwg1WO20/W5jpPjIa7HeRw2cEsSQnUG+fdtHmOyYAUOcBQVJ5Jr7vgLHfWMzorm11/JnyXGWDtgKrUXrb80fW4nhkZ445EldAGIU54JIB/NT+RqL7Kt9AFkj3RTDB3fqKqeGvD0eiWJmuIj/aOphrm7Kvu3S9doycAAZAA44rzzVvisugeLp/D8umKdGSIy3F6J0b7O+/ZtCgnG4tHgnux6V/SftbO0D8Jp0G78p5Fqvw70L4d/EhfiDY6Nr+m6TCRZX9780scYkxtkxyxjDNgkD5Du5AY4m+L+t6x4w8I+ILfwP4Vvdcm0+3k8m8UrbwrP8AvoZFDlucHDDAYEYzwc16l4ujb4keGLnw1fT6pb2GqWLbpVMdtHcybVZCckMFBIyAy545IyK+LPh78Wk8EeHNR+H+teO4dV8R+H4bmC/DwWybwkaJbMrRnbuZHRivIznLYxnWjeLd3a+p6F/aqEmryVl/lt9xZtdJ/avm1XT769m+DngPTtHjuAFhtLrVILqV2OVZjt8kgRAjejKpfv1L4fDXxp8Q2cd7r/x01DVJfEl2t5LpGj6UljbXpiI2pPcQlZ4QYUXocBlx7n37wz4lTxRdah4R8LavY2+mG/mklMHlh0tM/vIzADvUs4dQAMYDH0rQ8V+KtA8G6BqFr4gv7ET6fM1yky7k89GHzQsXPzblBBBYYIB6jFeNLLqTlzRk3Fd2/wDNLQ9BZhPlSnTSm7aW+fVPr08tDwi/+Dnw3W1tJ7rwL4eb4s6tJHDJrOomXUrlI1JVgJrrdKBhMAAKd2AAwG4/nr8Y5b74h/GL4jadDd211pPhO+uvDMFtLGqR/Z7T9xtwV2s58snpj5iBxyf1Z8Zf2OPA1945ezN9fwNaajY6ZCrR3LeXMjxRBQw3Fi2985GGC4ytfkd4TMMMs13qt5cXuta9czXZuIwGM6S3EkpmKA53EOCTkZ38c18dxHFYOklZXk9PRd/mfTZVVeLq6N8sU7/4nZaeivt1O00C90FZNJ0S10+x1GaJBHLBI62yhm2qzADOQASxXpxgV4z8QbZr79pPRJLFXt4fCuiwD5HYE581srggEjcflbr0r3nS7e1klM8enwDU9MjWZ5Qu/LHgsSRvxtHHJ7CvBbTVrKT40fEaO3XUy2siOCxmckxxNb24LKT1Ay6tyeME1+dOEpS5utj6xzTaXnf8D64+GNvq+uz2upT6/HLqUKyx29lcWPkTGNMRpgsxwJBGz7h/CyEHLGu+t7GXTvE2rebDbae1rJA92yT70nj2gCRYuiv8zRv9BgnAFeH6PDr0UOm+L7Oa4XUr2WIy+bIzpcEeXGoUggKdqAdAOT/eIr3OHTZ7LVbnWbW5J1KaVJrzTbtsQxIoBYo5DjDbOmOWc5K4BrwM1pzg7p3PZwUlNa6H0V4Us7XR7601S6lGk6ZqUpkhWNUiaBVkxsMbMdrPgHlPm29eMHs765tz9uvYre0eCW38+BZY9zbyWYuVXPOCB046jpivnk6zoeowT3RuL8WmlwpInkOUkTdg7OSBtwygHJwFJBFP8ReP7qb4a6t4ssLDVrbSdVmh/su5tVYuIEmAunGwNgGONuQMnfwM189OMbucmetGUrKKPqX4cW4vPEXgtrO7toLe6YXRgnYMGACurhhgjeXBBwGODkZ4P+fX/wAHUXw/f4Sf8FXfE+uWmi31lYfFLwrpGrPKrpsv5trxPKoGSv8AqgnzcnZ6V/fX8BdWvbzV7TQtVjg0ebxLaw3du0kkTGMRlC0cY3B3VSwxjpjJIwAf5Qv+DpH4X38v/BSf9mHxBcJLPa/E7w3oukW/mBWA261NbTxpyTz5yMcjqRiry+nDDV/aON9HoRiqtSpKnTUrXfa/VH4meIP+CRnjrwnew6X47/aW+A/g/WLm1t7s2U0V088auuUZgFOeQ3Pfaa5y+/4JOi+gJX9sT4QWYGNzW+kajKG9sAAGv3d/av8Aipp/wj8e+I/GmuW3ja88IXHxD0bR9XtvDmsy6HqF1ZW3hhp/KimjkjLKJrlWaPzEDAHkGvyM+If7THxY1fxp4p1HwD8Zf2hPDngW9vZZNL0698aancT2duzZSN5BN8xHTOTxgZPWvQyHLcwzWnGrGql8o26f3Wd2b5jhMFKVF07/ADl/8keCxf8ABJeRFEcn7afgAQk/MI/DGqy8j6fStIf8Emra5b9/+2HoUwK+UDB4J1cnA6Dha6uT49/HqbJk+PPxukXuD4t1Y8d/+W9en+LYf2uPCXw78HfFvxH8SPjJafD74heQdJ1D/hM7+UXnnwPPHhVuS4zHG5OQMYweeK9urkWOpyip4qKb20jr6e4eTSzPCuLlDDOy396e3/gR4mn/AASO0FiwP7Wl+5Y5/c+A9Zctnrzs9qux/wDBILw6wG79qfxR5aEP+7+HetkkgdRiPrxUZ+K3xhkYeb8XPimzMSPm8Sakw5+s1J/wsv4mylWm+JvxEfPQPrt82eOv+trVcNZiv+Yxf+Ax/wDkBf2zg0v92f8A4FL/AOSN2P8A4I8+Gp2lMv7VfjqZ7kYc/wDCt9dcuCQecxnPIrUi/wCCNXgxlZ2/ag+JEm8bfk+FeuyYHtmHjv0x1rkx458czRSed498cueMA6zdtzuGQ2ZOmM/p9aT/AISrxWUWZ/Fnid1BOf8AiZXJPX/fp/6s5h/0Gf8Aksf/AJESzrBvfDX/AO3pf5ndD/gjF4IkXB/aV+L5LDgJ8KdbQE8c8RfTnrUI/wCCMXw9LKtx+0V8cXKtuHl/CzXDhs9f9V1rhj4j1yVk3eIdYZ2bBZr6XB5HctVNdb1QhSdY1Fzn/n5kPb0zULhfMWr/AF1/+Ax/+RHLO8GtPqqf/b0v8z1Nf+CLnw5mWSJ/j/8AtCTK+GIHwt1rnnjrFnvVj/hyz8Moprd3+Pv7REUn8JX4W6uGB9eIq8q/tS7wjJqV8zYzjz349e/+cU9dQvMZF/flWz/y2f8ALr9apcM49/8AMa//AAGP+RMs6wiVnhF/4FL/ADPYP+HKnwzaOVn+P/7SbK3XHwt1l8565Hle1TN/wRU+G1yodv2hP2kHaTOR/wAKq1n9R5VePDUrlThL+/398TuMfrXdeAvh18Wvizqj6P8ADHwv408b6hER5y6es0y24bp5smRHHnnG5hnms6/DeMpLmnmFl3cY2/FBRznD1XyQwd32Upflc6X/AIckfDOPDj9on9olAxA+b4S64SOR/wBMqe3/AARK+H8obyv2lP2gPlGPn+E+u4wP+2dZ/wAXfhF8afgNqOiaT8VtI1zwhqfiK3e7toZb9ZjLEjbGb93I2MN2OK8vi17VSrq2t6sHxgAXcvJ+m70BoocNY3FRVSnmHMn1UYtfkVWzvD4eThPCWfbml/merv8A8ERfA28eX+0z8aQijPzfCbXeD0/551Sk/wCCIPg3fuX9qP4lpt4/ffCnXVx/45XnMfiTxAoPk+IteXA6LfTgA+2GqWDxV4qBcjxX4ljU5yTqFwD16/erZcK5ir/7b/5LH/5EwXEeDt/uv/k0v8zs5v8AgiJ4ZAyn7VvjJMD70nwu11cc+u3iqo/4IgaM8qmL9sG7iOeDP8NteGPr8v8AOs2Lxt4zhU7fG/i2HZyNmq3Snr2IfitS1+I/xHULJF8SPiEjZ3Dbrl6MD8JKJcLZmnpjf/JY/wDyAlxDg/8AoF/8nl/mQXP/AAQ3j2/6P+2r4bRs5XzvAOvRj8wtY1z/AMEQtSUYX9tr4VOehEvhPXoT06ZMea9Dt/i78XrUr9k+L3xXticBRF4m1KM9f9maussvjp8dkSNf+F7/ABxQA5Yf8Jhq/HT/AKb8VEuG80p6rFr/AMBj/wDIGsM9wE/+YZ/+Bz/+SPnqX/giB4n/AOXf9tX4CBV6CbTdagCn3zCcVnSf8EO/iU9wI4f2wv2YbsRjIWW71W3HH1tT719b2nx++PsePL+PnxyG3jA8X6vwf+/9dHb/ALRv7QyMpj/aB+N/PGT4r1N+/vNXPLJc5gtMVH/wGP8A8gb/ANp5ZU3wz/8AApf/ACR+aXxF/wCCTvjvwHIlheftRfsoaneyx7zDb6/dqYlHILb7ZQo4wO9fNln+xt4x+H/7R/hT4P8AxNm0vUbfV7CDVll0a5mlhvbWUkIUkdEbBIOSB06Gv3D8F/tdaH41v/Anwv8AiTqv7Qmv/HPWPiTFpuoazqXiybUNBvfDNwjWpsZLSaQnzAZEI+T72W3/AMB8k+NOiX+j/EH/AIJw/EcN5txq3hW+8IazIeTv0gxxtuwOG3PJjPcfWrw1HHYGtDD4ud+e6vZLvqtFpocuNq4TF0ZV8PCzhZ7t9Vo7tn9L/wDwTC8XeGvC3hm9+EyQapB4j1CZbL7La3JiuNUsEURxratKzL5trHNcXGyMhz5eQCev7xeMZvEel6Xps+n6Amtx2ttb22saZJL592sYJHkokeUd90m8naDs4yeM/wA2X7CHjX/hB9W8X+KrnR01+68G2Nrq+nxvdQwrDdtO6M3znfhA4LMmSo+Y8Cv6RtO1O7XVdVf4g31tNf6XqlrJNNdXEEcVktxbQq8cckZXcPMiDhpCpBlcgHaAfm88w1P2q93tfQ3yyrNRevV2NGTwLBZ/CXwjL8NGn8NXv9sG9tmurqQ5jLTny5mlXcmVl8vY4BUBQSQozyGufG/RtN8N+K9D8e+EL/w/D4Wv7a1l+1SQtLdboVmDBoBgou4xuemQBkg12niz4n/D7WPClroWm/Enwj/bF7K4mggu47lvtcqhQPlOD+8LjGOh6cceeX1nb+JvFUVh45ntWl0q9OoW1pLEJDcxSRrEE+cBiFf5mHUCQDBBNcFOgmlpod3O+r1Nyz0+WTxfoU0fiW91CNLNIXtxN9rQyM8jlWTaGtnAQhXVjuL4J+VRX5b/APBQnUINK/aZ+AuoatNLPp+hadNq4tYjvze+ckSylCdjusYcgEnG8+pr9CrTxno9xrekXRvLjw3qPhG0FgrRS/vEV2Xf5vllosKA7RhvvLID8pXNfJ//AAUG8K+HPE3i34G+PpNKtZU8L69Jb3ig5FxDcRFoM7VBBZowCCvByORyXhKi9ry900auDdOV+x1/7Pmt6P8AEq+1jw/r76jZavpenSeILKJ7Z7WTUVurhnFwS/3yI3EYCk4XkFRxX1t8IBeRNqdy86XF54KuHi3OHeeSLbLiN2IzIQNx3HOcZ5Jr89/B2jf8I94h8AT6Bqd5e6D4Q1LymubtGhl021WKWFonkBIkQSXMaEYH+r9q/RXR5v7B8QfatJuXu7bxFfStdLbEuIlkjLPG2ecF8heo+Zcetd2ElHLq9OtGNmmn9zOKtB46lOlJ3TX5qzHfFv49eHdB8OabZ6bdahfa3fRLew2unyQyTzRCYRvGisPnyS0bMANoJbsK+QINdl+MHj++8W6Rp8VhrniCzt9NtbC4b9zhIHvZ3uJF+XhZAgQq3GBggKw8Abxnomm/Ej4keJrjw7aab8WorltG1i6uZ/tlpBp0biPfDCqlki+Zpt+z5ZByucFuu+AZj06d/Eer2tsmlX+qyrLpLxyO2nYCC2mml3bS0luIZWbaEKyRgqQc1/WWDrrHKnUp6wev+R+GYjCLKFVpP+ItPXv9z8z7Sk8W6vJ/YU0mjeHNM0eG9lghuWLOs4+zOq7IzGmM5EqAsMquR0xXwV498S+FL3xz4jutDGpf2rfo+m+Iby3SNvt1vbyO3lWceEQujFyrKFZ8srFmCY9j+MnxE0Twx5nifU9Z0m/sNUfKW29BBHfNGVgjUrg8RsWxtOM5GQrA/Ivwn8U+Nns/iv4v1Wxs9Pg8MTzX8EV8YbAzXskLSQuzM26KFGLru2kqBvkCgkVePxvtKscLTV23q+yt/S01N8ty9UaLxU3bstNW3pb089D9i9G8F634U0CZ5rfwv4y1OIxzRS/ZG02Y7Iwqh3zKGwvBwFGOMAdPEdX8Y678Ttdg8Pv4A1LQPB9nO1ndX0kBubW6VZkjJgMW0PskbzCQ3yqDuB5Fdj4j8e+LPiVa6ml5a6x8KfBMl0UtJri1ki1LU1X5QESQKkSs5VQGJLlwAMHmhr9pLoGhTxaj4r8XLFawSf2fY21hY2iq7bljjVUQshbIDFnySR3pVl7anyRvGmld6rVer1t3fU8DByqQqKtWs6jemj0+UdL9EvvMj4/6tcfDjwdqRuFe6PiR4rEXrvcO0UUcvmz3LjYzQRqiPl+VUmIdWGfx20TVfGt9oc+np4d09prKGSx+0rq6RbijkK5WO3DuCVJySARn1r9L/jtdReIfhV4gh8a/adS+IviK8srdbG8kJawXcszW6ocbgEh+dlBUs20/w1+eujeFLm18MSW97b3qRC6ke+224CWkvnsVKFedpQ5Lbefzx+a8aY32kqUYpRVr2W+vfsz7zhbBSpqo6jcpXtfpt09LnO2vi7xpBe2GnPp3h572dR50P9o3AIKjaTvWFtp+YHBPOCec1Zm0PxTa6lq2rQ2ujanDqUi3cErarHCsB8lDIpYxk7QUDKTzyQetdZbeGbnTZ9XsBa3bJH+/t7xd0pXLRkhRnDHCkgZHD4Geg5dtKvL2LUtGa8sJYbm4Xa0kDIk8WT8rh3yDgKFHybcDPpXw1XEKjdJNn19PCe01ckixpWu/EFraye10vSoEjufOg8zWmVlIJYoqi3BK57djjmvatN8f/GXDfYtA8BS69cMcPNq0kbQliCqyAQ7XYE442gljx6eOaXZWr/Zri60e+Ol6ssFzbi3RZI4FSXcJI1BO1l3DHXITnk8ehaDol5Z6iuq2enXGrPeSCe4hjKWc1w+5iZ1VsrlgPmG4HhfSuKq4T6Xe/wB51Uqclu9D6HsPiH8X9LP/AAi2veC/hRpep+JLSY2ixatdxKYrcKZXIFs4BG9RnIPzcDg1D4Z1D4iXGjWvh7wXpPw8vdCmuI5YrO/vr2dNPYctsYwqxHmAMFwMENg44EemeV4m8bRaJqNvdakNE0AzrFO5WSKS6uJOCz5IICKCBgHHQ12fg3TpNMu9RXTpLOSHTSbjDRFNszrhogeN5QMGAY5O78vMeH0TSszujUTdnr/wD2T4MXvxD8N6n4V1W/074U32geGYi9vBp0+oT3EUILGRI2mI8tiFJwUPOF96/BD/AILz+KtH+MH/AAVW/YZ+HMEqX9hoGm6Jq1vMrpOJ2udXa6RlbJGNkIzjqDX9I37J2kWumjU9DuVkhm1e5k1C1k8pXEuSHzklgArLjBxwcDOa/le/bk+Cer/Df/gvd4B8IXl7dar4N1q3sPE3hJJMyf2XpMdhcudNUnpHBcx3IjU8rG8SgkLXkV4ujKrJv4Ytr7jtoKNWtho23kj5O/4KPak0ujwoXBOt/E3xFMuTwRZ6ZploM+uN5Ffkq8YaQj720cHHNfpt+35ff2j/AMKyQYK32veONT5xg+br4tlP5WZr85za7SEK5Xg468fWv0jhJKlgofP87HiZ63UxM300/JGIsABLKrAYzkHP+f8A69fsX4q0Cy1D4Vf8EkvAeq2Nnq2jeKVtJ7yxuU82G6jnt7VirqeD8s7gdxmvyInUw280zhwqqT0wBxX7JfG/xTovwt1n/glnfeIp0sfD/gDQ9IuL6R/u28PkWMTyt6KuNxPopPaufiWbqToqO9p2/wDATqyOHsoVG9uaH/pR+e37Y+g+GPDH7R3xX8MeEPD2j+GPD/hu5isre0sY/Ljj22sZZsDPzFmJPvX17+0t4p8N/ALwD+zPH4L+CvwKutc+Inge01rWLzVfDS6hNJcC3t8suZAgDF3LAoeehFfMX7enh7VPC/7Tnxpm1SFkj8R3X9sWEw5S6tJrdGjlRujDgrkcZU17l/wUti/s/Xf2adA2/Po3w005CnPy5laPn/v0fyrz5RjingoN3jyyb13tFfqdFGc6EcRJK0uaK+9s9R/bB+Iul/ALx18MPDvgT4L/ALPn2HxX4WsdV1K21Dwla3SvcS3Dq+1gVdVO0YAbgjPrXlH/AAUt0vwn4X+Lvw/8M+EfBfhTwXYW/heC7mi0qxisVnkuJpCWcIBnGzAzzitf/gqAnl/tKfDHRwEH2Lwpo0O0dt2pXK4/QV6//wAFDvFn7PugfHnTdH+JvwU8TfEDxRaeG7Fvt1n4qn0aNYC0oSHyURhkEMS3fPtXNlbWElhKkYOTlGTdrXe2urS/E6cylLEwxEJzslNJXv8AdomyomjeErb4Xf8ABL68i8C+BE174leILWPXL0aNaeZq8MEZt/LuD5eJQ6yh2zncyg9a8J/ak+O3iT4W/tE/EvwR4K8M/BvSvDnhXUUitLSXwPoNyUUQxsQXktixBZm6nPNfV/j658M3+jf8Ek7jwR4duPB3g/VNZ+06bpk96+oyWMJjtX8pp3+aUgnJZuTmvlf9q39pb4xeDP2mfi14f0jXvDUmh6NqvkpbXnhjQ7vzITAhaN5pLQzsDkjd5m8dmGAa5MnovF4iN6akuWTtJ2t778nr0/U6szrfV6bSqOPvLWK/uru1odr4K8YpZf8ABPjx78W7fwd8MpfiBpfxDmsIL+68L6bqHk21xPazvDtnhcbAbmVFB+6uAMYFeXfFD4d+GPiP+yJ4P/a18PeEdK+Hfi231qTw94m03SkaDTdRIuJIE1K1hcnySWWMOikrl5AP9Xz9Ffsg6b8JvEP7Deo+F/jg+qQfDbxN8Wl065uLa7NkLaeS30/7K8si/MsTXHlRMR084ElQGYfJf7YvxH+Juk+Jf+Gadb8MaH8Lfhh8JLjGjeHtGEhtbmJtzQ6g0zkvctIrtJubozuCA+4125bJ1MdOjRjyyjUk276OC05V318tDjx/7vCqpUlzJwSS7S/mfb9Tgv2XfgdqH7R3xk8O/DW3u7rTdJkifUdYu4hue10+EoJGQnIDs0kcakggNKp56V6r+198Y5Lbxx4h+BPwrml8DfBH4SXMukW2kaTK9vFqFzD8lxdXTKc3MrSKy5cn7or1j/gkn4u0PRP2kfFug6pNDb3/AI28LyQacznHmzW95BPJbL/tNEGkx6QH2r8/Pjjpes+G/il8X/D+vRzxa3p3iDU0uN3BYtdSusnuHBDA/wC1XuJfXszqQqq6hFOKe13u7d+l+h41nQwEJQduaT5mvLZH3n8UZbj9j/4W/AXQ7HTPD/i343/EPR5PEeo6l4kso/EP/CN2czL5Gn2FteB4LdWIfe2wszxOeMgB3hnTvDX7bvwI+MM9x4K8HeEP2nPgZZrrdvqXhzTodHh8U6YwffHc2sIESzpscB41XkRnA3MDof8ABTxIfFF9+zN8btCxdeD/AIh+B4LO3miJaNZIpXuPLyOh23eMf9M29Kpf8Es57TRviD+0X441xo7XwT4W+Hd0mpzSEqiNLdRNEpz3KwTgD39xXlRpR/s1Y6OlVO9/Pmty+nSx6DqTWO+qt3pNbdLWvf163F/bwtvDEvwy/Yi8V+HfBfhDwq3xD+H9trt++laZb6d9uvLiysJZWfylXfguCM9N7etUvhfpfhzXP+Cbnx91mfwd4T1Dxf4N8Yx6fBrMmnwPfW9pMNPn2LPt8wYad1Bzwpx0q7+19Gmp/sd/8E2fEEKEJF4Ik0pj6Nb2WmxgE9uYm/KrH7KyprX7BH7e+gIPMfSLzRtZAxjaHSNT+lk2aqlUay2i/wCWor/+BtEzfNj6i/mh/wC2nZfHXxvo3w0/Z1/Y68beC/hZ8FINQ+JPhxm1q5v/AArp9+15cQxW6iQl0yGJLsxBySSTXmnwf8BaB+0TJ8RP2gvjLoHhvwV8GvgRocb6tZ+E9PXQ18Q3as5trJMFkiklZ0WSRBnGwKAzZHuXi/4meN/An/BPP9j3xN4HvtHs5oLq+0W5a90TS9bUrFLcKABfW8yod0XVcE9Dmui8F+LtR+MP/BNj9sG6kj0Y/EC38X6fq+tw6dYwadHJaRropE629uqxxqUtJmIRVXdHIQBmvPoVKmGoXjG16jhz3d0nK21tNNE7nXUjHE1FGUrrkUuVrS6X+fSx8hv+1DayaP4m8Kab+zb+zfovhDxJYz2EUUOhyyajpodSsc8WoSTNL5yHDFmBDEH5VyMfY1lrXg/wH/wT8+B3xg0b4H/Avxr43m8Q3PhrVrzX9Ba8NxFFJd7JGMMsRMnyRKWLHIB7nNfmT8M/AuqfErx14T+H+j3+i6ZrXjG9TT7GTUJXgt2ncERxvIiOU3EbQduMkcjrX7D+GPBOmfCr9hX43/DP46+C7X4jv8BfiWIL7TtJ1qfTlSW5t7O5SSK5RA5AF4OCuDkiu3iGjhsC6UKabfNFtJu7W27ffzObJK+IxbnKpLTlaT6J79v0PzF+KHxOs/ihN4cvIvhX8LfhjdaFDLBMnhSxuNPt79XcOsskU00zCRfmXcHwVI4GK8skyGzwdv3iCT/KvVPij4g+D/iP/hG7j4S/DPXvhctnHPFqdvea7NrwvHLIYZo5ZAGj+UurJjHyg968kJKfKwIZu+4DnrX0+AioUoxhBxXZ6ta+r/M8jFSbm5TlzPv/AEkfL3xBFz4J+JWj+OEliK2V/a6vHtIDKbeSNzkDnkp175r9Of2n7O10j4d+C9UYwNH8OPjNrtgMrvEdrqbz3iKB2B86HH4V+dfxm0bTb6zt9SvNRhtLiOF40hILNcjjCjHAAzz9a/Q34nXcnjD9j74ya+uyfUdGtPAnj9Hf5gZZtGs4Jd3BIBmsblSfrXJxVV9m8JX/AJXZ6ea/Rs58jpc8sTS/mV/wf6n6h/8ABPTxT4fX9pnwVoEuk6brmp+JdNnWK6uZ5o00sSWziG5VkRsSOxaIAjoxOT0P9F/hTwt470KfxrDe6n4L8YrehJEtrzWHu5oXjUNECTDG08RjdABJk7gMO33a/k7/AOCVt9N4M8XfCPxX4suLF9d8f3Mh1GW6ha6W1S4gkit4QilWxGuxV5GCSw5Jz/SzpkHifwL8eNFvta0T+245rBbGG+t3uPOtUeRJjDPHcSMZVABYSxE/LERjjI+R4loONRPpY9PIqqlBu3b9D3D492Nnp3hmXx741+H/AIN0/Q/Cpgn1Jptbkt7ZjkKsbn7KcOM4C5ypcZBwKx9Rm8VyeHvCvh3xL4A0S1vr2VY9JmPiI3Es1szIBCZBbYOA4RZBgfOBzVj446tbfFX9nT49+CCJU1hNIu75IAHkeWWKQtHPGHQSN95McMox17H5D/Y1+Jusv4E0OXxdovibUpxcNBpyQ+XMlg7Qqyyt5sm5FBRwFAGVXcRkg183Qqc0bPoe9Uhy2kteh9LT+B59SPiCWTQdO0jWJoBZ3Mlrrrq/mEhkknjEIjKBQqhmGNowCAABw/7Qnwg8U/Gz4V3Pg+81PT9BvY2tBp+pLemXZeWkG+NpMRhgrKkjnHQsTzjB9d8EeJTqHhDxH4rtxqrwX0c0ygRKZrS4tWaPzmid1MkThVYBC/LuDwABb0dv7C1nVdfufDniW8W9sY5b4W8KXEUSBQFuEi3k53ZyBtIDEHIwaxpSp4eTlBJNfmayc6iXNqtj5h8GaH+0j8P5Z7yf4fW/iWz1cL+6Piu3SEy5DyOnmQFowzDcAcY77uteneFtb/aMsbyK9vvhfDYS6peKtiLjxHbXTRSxBkYhxGuTkqQGxynfJr3JdRU3MWnSTtY3uvqbfRt0EsCTyFE2RsJAF3kGQjLYzkAmut8I6vbvdajoFqbybxb4QdZbiyuoGjMyOMq0JP7uTJDjCtkZGRyM61MU6lnczjh4wVrHxB8efE3wl8b6ja3Fxp8vgP4jmSCWdFWWG4aSVriM+YgVop4titk7NzqQO4r5N+G/xPt4ND8feDNU1eW18K3DM73tnereLIsFvEjtAsigrEmIjtwxjDvuBCgj7Q/aE+Hugy/tBTeKNI8G6Sijwfaahp5lkt7dtSvhPco1gskkqoi7Io9zSAY3AB8ZB+Po9V+GFjoOp614Y1TwFD8SP7Uv7e4a1vN76XZRu24SBJHkHlCLenkuXLBFGTIit/TuS4qvjsDhq9GMYKy+5K1v+HPx/MqeHw2JrUaspTd9H1Tev/AKXxO1C+17xG/hbwR4kg8X2vwzltI7L7bbrDc3F1eRq7/ZJ04uPJiUsCchBOFP3kUdx4mv47rwXrniTQtQvJfDN/p8lvNceIbS5a2024driG+hupFH7/iZmdBnlWYlQc182eFfiifB3ijw/wCE7rwZqNhd23hy7eK8VIZrHUvJvreWNpYbdWvdOlZZmfzTHC0jY37gCleQXnxsuvGXxS/smP4feObzwpYXV1qOx9EngsS7qI7u4ZZF8u7AcXEiSBGLBQDySR6uIxzypKrUg2pPopO3a+n9dDlwmFjmrVOM7OC/u6+mvfrf1P2R/al+NGkfC/Txo3ifxR8UfH3iOeaRIdC8PyW+u332iOEtG3lR2UJTBG/mRQCOR6fNenfH/wATeL9Ghmtk1rwTq8kCSxwXWmfbNUhkieFRDJbq7qrHEsiKi7Sz7jgrivgv4i/DX472GiyeNvAv7RmrfDiOz1SOx17xPNYG/l1MySK8UNvstRHcfOFyPtO3LDcMFiPr74bfsu/Gfw54M8TeO/jvrvxW8T3PjCaS7nvBoFpZSx2aWsUcUV5cWt3bPIshVgsSxoyvIeW3Yr4HOs0zLiZU/qqdKEkrpOzcX1vrb8H2W56OQ5TgOG41I4iSnJPRvbm00S/4fzOW8R2M+h+H9Fl+Lk3xH1P4waxHPG2s3erPbGO1eUO08aRFCWYoFUOgKDoDgscvSPB9hNpst3f6r4hkuryFgw/te8kWdOHTaxf5sowzg/e3ckDNR+JfCXwQ8J6tqmu+HNLfS/DsGofZ9Rxb6hdTpKkaRKkiSXF0yYZmHEgALbewNGq/FfwXdRT29jrWvXcLRwwxSTaXOr42/vNoVFx255P55r5PMuXmcacuZLS+7b6t9W79z6fCNyXNKPK3rbsui02NfWPhz4T07S9T1OLWvFMNpotjLe7otUuoQnyj+IMAccZGc8DivPvDPwz8Oapot34jvJ/EupXJ2/ZZodXuZRcRrGkjq+XyXUu3AByB74rofGPjLQvEPhDXrHQJdaF3e2YhZJLCUCaMbS/JGMj5iOuTn1rO8NeNdO0W5km0K01y9sbGDmE6fJHsLcZDKvy56ce/tXHTho+aL/4Y0qS96yaOg0n4S+FLmFJbu58Wxi3iDhbXVLkLITwQrFwFA9+TkcYrb0r4U+BZ76+t2GsxvYsgDNq95vUTMW5G8Zzgkn2p2p/EDRppLPULJ/EtgrIUeIWUjIzEndkY+brwTzya07L4gaLNcW9zf6d4m1GAsnnxDR5RvUbiMNnHGeBwRx70p1FZNxKguZ2uWm8B+AtJF9e2Oh6trWpJOymdtUuokhjDbtpYPlsZPQEc13fhTwR8Nbi68zVPAOpTQ6naxyux16+iETclpAd67hgEADn5T6isKHxd4Ns9TUQeGvGxi2EyW66RLIrjOQGHrjIz9Olet+FvFvh63hm0608F/E3U9LnBZYptIlmEJ+X7u98hRh8hTjHGBXi4mcW/eZ6lHRaI+pvgF8K/DHhK5fxf4E8MTWmreG4JdQtCt7eTyXiJkvCDJI25XTfEV7kj61/OX4t+MOhftdf8Frde+Lfhm/8A7a8IeBdJvdK0e6ClFa2tNM+yNIFb7qySzO+BxyPx/p1/Y88bWFx8QI/CVxofi/Q99rcCwOp2X2CK7eBo5dkZLkmQIW3AjlULc4Nfy/eB/CnhD4Tf8Fg/+ClPhfw0kUXh/wCFseuX9tsKbIEvrrT74wRhPlVYXmntwB0EWMDBFeBi4KNOvKL6Jfe0eng58+MoRfRNr5Jn5pftl3IuLj4FRqWlFx4SuNWOQB81/ruo3YbPXlZENfE8oXBGDke+M1+y2reAPBXiHRL2Lx78F1+KU1z8JfDGleDPEGn+NdJ0qPSdQTRX88zwzXUboy3MsT7tkoZUdSFJyfz2/wCGWPi1uxKnw6hfHzb/ABpoCZ4wet1X3GSZpQhh4UpTSsurXr3PPzLA1pVpSUW032Pl+7tLm5sp7O3Rpbm6Xy4kHJdm+UD6kkCv2u/bv/Zi+NXxWm+BEHw48CS+JdK8HeEotNvWW6tYRDMNgMREsik/Kvpivzub9lf4llStzrXwaijkGNsvjvw8v55uqy5f2W/F0bkXHjD9nm0+bJMvxF8Nqc/jdfWt8diaVetTr068U43313t2aFQoVIU5U5Um07dbPT7z6w8Mfs7ftga74Y0T4UfFf4A+FfjJ4E0ZfsukHxDr9pp1/wCH4WwpitdRt7kTrCB0icSqMABcACvmv9qj4zaj+0j8Y/B+7wfaeEtS8Lw23g1LOHUjqEUrxalKqyLK8cfDNKVyR0APFcvJ+zPrkbBpPiH+zGm3HB+JfhscjPJ/0j/OKry/s464ZmV/iz+y+CSDz8TPDz55z1+0HP51z4dYaNR1J1o3s7Wukr76czWvlYuqsRJRhGm7XTd2m3bbWyPq/wD4KRfZfFf7afgeLR9R03ULO/0vQbW3mhuY5IWP9pz7gZA20YZucnjiuM/4Kkapp+s/tTz6jpOpabqmnHw5p0aT2lzHdxuVafdhoyyggkAjP868DT9m3WZGI/4XD+y0CuMD/hYuikH34lPPAon/AGZdXJRT8av2Y5I2A4Tx3pz9BjHynmujAvC4OVGTrp+zi47b3676ehOIhXxUKkfZ25pX3PtX4w/Eqw+F/wAEf+CY3jjTz4Z8aar8JdIF9c6XHqcbeTcPpVi8Udx5LF4jnccEA5Qjsa+VPiB+0v8ADT4k+M9b+IPjL9lbwBrXifxHMJr2f/hJfEFuJnCKm7ZDcog4UdFH51x7/s2aoNwb4x/s7O7HnZ4tgk9f7qmq0v7NOqvnPxe+BDbuPk8QvLnH+7Cc1ngcNl2HSc6t5a6pyjo3e2j8zTE1MZUb5Yaaae69bWvqvI+x/E3xB+HPjP8A4Jr+O9P8K+Fvhv8ACW9n8WQzx+GtL1t7q4u44r2zikvil1K9yzsVZSSThIVYcCuQvbzwz+2B+yvomqeI/F/hHQ/2nPgITpEcuqalBYyeLtNVN8a/vGUvL5eAGxjzY36CXj5kb9lzUSVdPjJ8DQG6kapdsc+2LU03/hljUWdSvxf+C7bOdwutTf8A9BsjU0sPg6KvTxNpKbknZvfdO+6fXUzq1cTVl+8o3TjytXSvbr5Hz94f8Q694P17SPE3hbV7/wAN+KfDV2l1Y31uwSW0nQ/LIvY4OQQQQwJBBBIP334t+K/7PH7YiWGtfGHV2/Zv/aGjtktrvxJb2EmpeHvEmwYSS5SNvOtJR0JIKhcfO+Aq+Kwfsj6zOF2/GP4OAHkBW1tyfy0/8a0P+GP9dJLL8YPhOWz91bfxAxJ9sabXsY7GYHGyjU9ty1I7SSd/TazXk0edgsNi8MpR9neD3Tat+aafme3694m1r9m74M+G/hV418Z/s1ftkfBTxXqFxc6Z4fs9Rv7qbw6yKGa4hu4hBPYhmc4jVjyz4wGYH5w8X/tE32teCtQ+Fnw08A+Efgr8MtdnS71TTNFlu7qfWpYx+7N5eXcklxOiE5WMsEBwdvSurtf2MfEEx4+LfwsjxgsfsniQ59T8umc1rw/sW6+wA/4W/wDCuXnnFh4oJ/8ATXXNhq+XYb3qlXmle97NK/flXu3XexvXo46v7sIWja1rp6drt3t8z688UeDtE+Of7Cn7HngnQPi/8DdC8f8Aw7N7PfWOv+J4NKaC1uJLjywch2DhRBlGAPzH0rrf2X/hjoPwo8A/tqfBrxp8c/2fLjVfi94K0ZNIu7PxRDJYNfPFrsawGd1QkxsbYyFVIUSJ1r4ri/Yt16PZn4sfDMyyAZ/4lfipuvf/AJBRrcg/Yt1sgL/wtb4bHYOn9k+KyD8v/YJryalTDSpyorF+63zW5Ho7339TuhTxEZqr9V95K1+ZbWt3PqjVNS8T/CD9lHRfh147sP2LPjX8Pfh3qKzWum2fjHUdS1W5urq5nd7kJZPDtVDM+fnAwRwa8u+D/wC2l4Z+EOoa/wD8I5+yz8L9P8N+PLZdN8TWVjq+ts+q6dubfEou7qaFZArvtcpkEkZAJrhLb9ivxEAD/wALX+GqM56/2R4rGD17aVW5bfsW+IN2H+K/w4YoCR/xKvFRA4/7BVTS/szlmq9bmu76c8V917b6mzhj1KPs6fKkrbxf4npnw2+Avw28VfFf4f8AxK/Zw+PPwtbwjoviPTdYk8N+NdVHhXXtDhivoppbZ0nUwXRRFdVeKU78DAIO6v0p+Iun+DPGtt/wUg+G9h8SvhPYy/FHUdB1rw/Ne+JNNtYby+/sq281RI8m0Y+xwqW6AvzivyXH7FviHdl/iz8MWKKOum+KDzxng6V61Zb9jTXnjVR8WvheXGEG7TvE/wCPXS/auPGLDYucZvG/Da14u+jT1el9ux04VYjDpr6std7S027dDI8YfsoeNfAHgDxP8RvEXxG+At3ZeHBbn+y9I8YWWu3920tzHCDFFab1CqZN7FmGAp618pyXC8N8hYDjAzkA56+vP5V9Yt+x1r0avs+Lvwo4/wCnXxGh6++mdKoyfsia8FWRvi58KAR93Ka6nXt82n596+hwmfYekn7XEqT/AMLX+f5njYnKq87clCyXmn+p+dXxlu4W03Srfa5me4LBgAQAEIYH3OR+Vfoz+z5bp40/Z18SeF5oYL1vHHwWu4kST7st1oGvagEyPZdUtx9AK5yL4C2vwu8bfDfx14s1f9nL4y6B4b1qG9vvDGt3mq2trrNuitvt3eTT2AzkclHGQMqRkV9AfCjWvCV58ZPClh4T0z4d+DNO8S6x44+z+FfDN/cata6FpWp2unXUdsZZLeAbRPZSgLsUDeAoAwK5uJc4pY/CRp0Hflblf5Pp9xlk2WVcJi3UrK17K3zRx/7EHxM0zxXqnhbRfFGgaxdeF/B8rrqP9mXpsJbxhas1ujThf3aCQKZFXkp8o5ev6v8Awf8AA39n3xt4R+HfxBg8CHT/AA94ttjeQQ3V3eC4i2QSs0fmtLgswikZDuG5M9a/ko/ZNhs9F+G0GnXEUFlNoGoyprMxkKkGO4YSSt1A+QHGcnr16V/Wx4W0Hwz49+DXg/wz8P5PjHbDSNNhg0y4uNC1fTk2KijdGswQTDYzqrBMGNwAcGvI4jiqqpVJJyb3fy7HRky9lKdNOyV/zPStF+FvwV8D3ml63p3hmTSbi9l8yy8y/muZBE0YYOvmMTzuRQFHJJ64JputfB34DaV4g1CDVfh3BbXniuT7Ut5ZQtZLdPtUuHKFR5p3OMq2MBtxHSszwN4F1TUvhS3w4+Mfw8+JGq69pesXl1pF69rdt50U0e0hYYyDt2q+EHAAJx94149qfwj8aSjUfA3h+88V/DPR/wC0Le+0Oez0i61WaRVjlkVo7aUo0QLi3kcKxDeWMZyWr5KXKm1Zpeu57ik31V/8j3nUf2aPgnYHwraaZ4Xurq81ueKAG21bUoFhikfZ5pVJA8Y3Ak/KVOBzzxv+D/2T/hD4g1DXPI0DxtZXWiGW0Z/+Eo1BopALVZgY1E/y/NJGrKUXJIOTxVDSZ/Hel/EvwjrOreHL7xNpltC0U95b+Gb/AEy4jhkjQPFsVioUGNSjo+QxYFcHNfQs3jmC01l9estF8fww/Z5IwsWjXTvJHyFJ25R8EBhxnGOQRXBiJOj8LbOiC9r5PQ+Jf2evh18MvjV8Pb3xT4ji8X6LrPh68lt5Ba+INRhhiW2ll+baLnKlFiPXByRjrX1N4d/ZX+Fcmm22v3Gr/FaC/uWifjxfraMEMmQOLj5sKy/MCeRxzxXy/wDALR/Gv7P/AI7+Meoa18OPH174Y8T63d3WiS6fpz3KT2N5crcSRSW4B24UBfmP8TjrivsPSfiv4N8NX1vaS6R8VD4J06RprK3k8Lakz2QwrxRxhYztUDzAAMAAKBjBrSUoy1va/Qyk5QlJWbS280fOf7RP7MOgeINb8IyX0nja8vriF4tD+03S6j5k1uwuZbBrm7csYp45SyEMr5E447/CHwm+F2r658SPi5eWXw+OmeB/ENra6VeaVZ2lnDqFlKLm8juFNzGyLtaa3h3MuCWVhuwgB/U74reMNM+Lnww8S6Bpd/49j1nSr+01bw5LqWjz6M8N7bsWFosk0UR2SqpiOPm2SSYYdR8pfsqaJbeOR+0v4m0nxZp/hLR/HPjG4ttOVbPybn7Olul3OHefIDLJfywhwmCsYIJzX9ReHVGOPyvC1pbx5lto0uttn6vsfiPGOPqYDF1qT2fK79Yt9nutr2Dxhpl/4I1fwf4W8BHUrSO0s5CALuG0jW3EqybrpQqrNKPICLmUyYL88k14B+0r4di8Yp4d0rxrpEN1rmjTQR3Uh1GS2mzOh2yW+xpHgdsTghVG9SfmJJYfe134A0LT/DNpoXiT4kajDr4eae1fTZkjMk4mfypcNud/k2odoVQQ4wAa8M8QfBa2a3tdf1jStK8fjRbW/wBS1S8uYpL1rTDeYbJLeaRmaNWJy2VB8skD5gq/oOJoTcJa79Hsvw+8+WwWMgqkHZXXbd/e+vTRHw78E/hLaarp2geNfiLJ4S034j6UjXM8XjjULrwvBpEuMQGCwTyLq3eKUbUd3LfJnBBXb9ZeCbj40fFXxJN8Lta+LHhL4i/DrSGtpLu40e//ALXt/wC1TPvW1iYzNdSxhFMzMQxUBuehr6V+N3gb4e2ngtrjxLZTeIEntttpouqWc3iGy1a5LboPIhkmC2s3m45VgnOcHAK+PfCL9m/x34c8G6bq3xEsvB99Fo2ovqh0/T9NttN1XS4mgPmNFqisJGnBG4qZEwGZN4GBXyy4WpwcMJdtauTT5dNlflsnf9HodVfi1VITxk4qNrKKa5lfq4817cv4XV30PhL44a/pWifFgfCDQfBPhbwpqHhWWebW/wCzLPYlzfriQTMXZpZcBowGYgjGABmuLfWteu0gWeO11K/kkJG8bVRc4+7k4I465Pt2q3osMGv+K/G3jv7Reamnia+uM6jdTPdSupk++8kjFycADJJzgcmvWdN03TrCFpY7aydIpA6TiUOHD45OCckEn6kD3r8m4mxdF4mrGMU0nZeVtD9J4dw9X6rSnVfvNJvpq9Tj9A0DUrYajJG0KW7Iks0MIKRwsGI2YJO8Zwe3esTU9X0+3s5L7UNEiljvWKW0VxCrs7+YFzuVdq55IyOnc17C2mrBoaskolurvMipG4aRFOV5B4A64z6Vz15oc8WnaNp9/HHdzQRJFIVJA5JIbaRxgr25FfNUMVGWrjpse3WoN7St955b9r1u+nhtrGN9CnuI/L44CADO0qOPu85zgZHHNel6bI3m2tlf6tLcywsrxBHKeawABzgjgc8d65Sy0O5gvLlxdFopUMETsQpiX7wAcDPTIz/s9elekaf4W020vrOT+0bm9f7O0ofzFkDv/DtJyB06dDj61vWqxguXYmjByfMcJ4a8axXXxP8AHEml21tBY2W8vcQo2zyMiRVfBwWZ2Yg9gp9TXuXgfxVrhaCwa9WaO2MjGWRPMlui8j+YCB/Cd2AP9k+1fLnwU8N6gl18QmuDJBa6vcObyLKuJcncsZIAaPALDII6+1fX8OmW2miO7hkghlimSJWPQscK5x17cn36cc+bXjTndcup14dySi2z7A0rTfEEvw38Z694FsbjWPiP4Ptn1fw/GHcPdajaKJlslCfMfPjWW3IByROR1r+OXwh+0B8Sfgl8VvjB8cV8JaP468efFt7q010+JPtEhCz6g11KZFjkVifM+VgxPpiv7cv2cmNnPYXL23m2ssjTFsZKs2R3POB071/HT+1/8EvFXwJ/aS+Pfwj8daPdW9/Fqd9faXcPGyxatp9zM00F3BjIZWDjoTtYspwykDwaNGNR1Kclva/yPSdV0akJxdnZ2PKr/wDbs8b2E9hBbfspfsS2zam5RGn8LXDgEAkE7JhyQCRz2NcN4v8A+CjPxu8HWcmon9mv9iMWUAz5kPg69fGGAII+2rjAOfpXjkFmdW0W5gdpWvtKYbSVIO7pHnuAwX07n0rynxTaWWveEdea4eaWza2JiUuItrDmR+5bAG3B9G45r0qeX0tnH8WZVczrtaTPXm/4K9/HdZSln8Fv2JrWIDjb4Hv8/Q/8TEVcj/4Kx/tV3bA6X8PP2NLGHvs8GairfQf8TA+nrX4Iat8S4/Dt7faNf4XUNMlaBs7mbCng5/HPJp2nfHrToEVJPPTYcg7WP4+5ruhlEGtaF/lc5qubVE9K34n77Rf8FVP2y8ymHSv2S7CdRmNovBt9ICe+Sb4gfl2NPi/4Km/twSiab+2f2ZbE5GDH4LnJYeuGvO1fhpD+0HoLIUa8MbHguUkyB68DmrNv8ftAU4XU4l2rty6uQ2eTxj+lbxyig3Z0PwZySzjEdKz+8/cyL/gqv+2wkaKfG/wTilY/eg8HDAH0a5NRt/wVO/b8uy32X4r/AActQmc7fBKucdic3B/lX4gf8L58KmSL/ieIigbiBC+FP/fNaEvx/wDDDhY49cgSPPzNtkLHj6V3U8lw3/PhfccVTOsS72qv7z9nG/4Kbf8ABQW7Egf42/CmNVXqngm34Oeesp4qhJ/wUg/b5KsZ/j18PUGcBo/BNhwM/eO6WvxwX4+eFYhIg1uNkJycBh1644PeqN18e/DcqkR64Y+DwsZ59sgVbyPCdaC+5HP/AG5i+laX3n6+y/8ABR/9vRWBP7Q/hLyuQTF4I0zGeeOWNed/Eb/gqt+214C0W+1af9pHw3d36gi0sP8AhDtLSW8fAO0EBtq8nJ2kD8a/IfxJ8bwunNbaNqVxe3dxlRsBTyxjk5PQnpx0+tfOl9rWp6jO89zfqJZ2LMcl2H1Y5J/E1tTyLCv/AJcR+5EPOsUlrXl95+uEf/BcX/gofhNvxC01hx00DSQPf/l1/r+dfVnws/4KoftofErQrXUF/ak0zR9cUgXemN4R0cyQMTwil4l35xwwBHtmv50fMnLqq3k5lPAOSoHatCy8Qavpt0Lq3vZPPhbcpYElT9eoPuCK2nkOGtpQj9yCnnWIe9aX3n9OLf8ABQP9u22ilmP7UFpmJWc/8Ujoy5AHP/LP+taqft7ft3zWtvPH+1alnNLguH8GaI4AIyQCY+a/BPwx+0LOdClsvE17cvcQgJ5m5juQnBzgbietd/8A8NM+HSyGTWJyCOVEU4A9P4PSop5NhL2dCP8A4Ch1M3xa2rP72ftLL+37+34hHk/tdRMg9PA2hkj0/hq7af8ABQD9vxC/m/tZTuEBJ/4orQk39Oh8s1+K8X7SfhAAvLrNydv3R5M2fYfc/nUQ/aX8LrIz/wBrXcxYdGjlUfh8px+VarJsC3rh4/8AgK/yM/7Zxf8Az+l97P3IP/BQj9veVFNt+1lLbsxI+fwZoMuP/IQq1F/wUV/b+t9Ourf/AIaw06WfzVcXR8EaOZYgB9xQMRlTkZ3KTxwRX4bQ/tN+GYw5F65Y4xzLx+lV7j9qDw4X2h5vlIGUDYPv70LJsA/+YeN/8P8AwClnGM/5/S/8CP29b/gpP/wUHtQJG/a9R1HPHgnQF/8AaZzVKT/gqF/wUDjQyyftaSTD0XwZoAOOuf8AUH+Vfhvd/tLaBMrn980gcsuAy556k4/Hj1rKb9orSJ0mWaadSAcNsds9BnpmsK2V4GG2GX/gH/ANqOZYurvXa9Zf8E/bXUv+Cq3/AAUSlulsdA/ama/nmYkJL4O0H92oI3EsIACeeBgZI7V6LoX/AAUI/wCCj3iCWWG2/ayZ51gknhjPgjQ0aYR53ID5WN+egJ5wa/G/4Bka3Zza8UuWfVbl4gZWZcIqZWQnquQd/PXPqK++NCe48M6Db6gdR/0ieR9kLsSfmXYNxHABwHPp9TXHUyTCy2oQX/bq/HQ6aebYiLtKtJ/N/hqe3r+3/wD8FD/GFvbDVP2pvsun2L4uN/gXRWa3nGVdPlTLbSCM9KoQftUft4+Kzqlqn7TUVxbW0ixxSSeBtIVbgnIYr8nIBwOM4715/caX5tpBpmlvNLfX2RPKp2BVdSS5BHB3HAIGepOea6qzsI/COiRW90kjTSBEt8yBw7DkSKQR8oJB55zkGs1luHi+WNKP/gK/yOp4+sleVWT+b/zPRPhHB4te78Qw+NL6z1OXSr9724ms4UgGpMdsoDx52BlYyEgYUZToBX9sfw58ct42+H/hzVILXw7caDpmh2dyZYbzfm3jtXVZkRAro4lZ4vlcjKZzjhv44fh1pEOl2Wnvq8M93ZaxMnmbc4kyQ7IzjBTIwDkhSDiv6Cv2FfjMfEmo6b4FNmmlaToWmj+1mfULW7aO0jmm+zQNbsXUxFy28RZZfMLHBG4ehmODXsYyjpY8vB4m9V82tz9eV+KTal8RdCHiSK70/wAM3cdlHHdzRmF3v4ZmBs0YYZXkCGbDj/VxSjqGrx//AIKD3194R8b/ALK/xx8F6jbG20m51HQWbHmwxM8KTptkjxyyJMu5W/5ZrjOCK93uLfRtR+GOlWUkeial4q1m+PiKxjm1KSzs7e88qUZEgJeEeWXRBtbDSD5RwRxn7X/w8l8QfsT+MJX+xzt4K1Ox8R280c6yLAqXCRzmFwFyu12xgcgsBkYr5KrK6btqj3qcffj2en36L8T6C1bVtWl0P4S+JW0i8g1O6062nvLizuPPa0WSNWliLZ2nHIJIXhM57VzOkX2qwXdlcf2rqK+CtPMjLfXSv5hY8nO75djF+oI4cAYNeB/s7/FmTxb8O9B8CaNJ/wAJlfaK0+m6iiSF7qztWt/kuJoyQIgqrlACytyPlwa+zdGn0K60uPwTHeJd30zizuiskatakRO6SOrHdl8Lxyeec4rwKseWpex6NGf7tJ7rf7zye68Ua1/bt/o1rrEd14feKa3uZGJuY7OSOM3P2jYd2VGVQMO5HzHYQ3XaZJDfaZ4cu9Mih+zPpZstTRrouz4ija3mZ42BUBRMcqCAHU4HWvmi70hPhH49+G/w41UeJDa6td6mdM1jasyPNFC8ssFw8YK+W29mjQhX+VMDCEVt6n8StU8GXUVzq97HY298d5ikt5CmpLLbN5aJMiBIihUrkykMNuVB5rFe7LX7zolHm1R9Jan4N0zXtI1jw1rEN3r2jeL7T7IJBO0N1FGBmNXlVVcsC5bkjGT6mvzY/ZsfU9E/Z0gFnoCeBE8aeI9Znu31eOMmDZqM6GKIbXiUqlv5amQDKqihSdpr73+GfxU1TxjpPizX9LtYNVsPBuoLpsNiJDbOPKkj80CRm2zL5e85ZRn7pYZKr8QeIvFngjwqPit8HZ9Vs28e6J4g1GXStIDpNcQWepP/AGrau6MSkQ23ceWYM5MZVcFlr9w8HswVLE1cLJ7rmSf9f1Y/MfEbCSrUKVS2ilZv5M9n0ay+GbaL/bWnap/btxqtuLuSO71Lekr4ZWlQt9xtylgMbMDheMj4v8Y/Hu70bxPr+ieBfAJuIb6SL7b/AGfLb3bShVCu06pKZJpGBD7NilUY8gla+YIvg/b6nL4l0n4rfHjxgnj232anNptsf7PjkvEiKFN6MRcsglIEUUiF/OJIVlxXt/wtn0r4BeOZvFPiHwINNls7KaK68Q3Je9k1dGWGGA7CZWgwgd2jaVWk+8fn4P7RWx1SMbzXJr3urfJfP16nwtHK6MW1CTqadrO+nRu/ztt0O30L9pHQvitqXgj4j/EP4UfHPRfAXh0+XYPf+CrrULUXYCKJpPs3mcKT98qFJ7/Kc+9618TJ/E/gfxNpPwg+Cnxmm0OTS7uI39ylv4bsYSUeN2WK9kW8mVGYnYkW35QB0xXrenfHXwz4s1HRfDvhK21hZ3gK/Y7HSW1K6gULtMLxgeTbKPu/vGwSDjG0189/GP4pfFD9nDQPEOtXXhxU8L6vd2+n6Xda7cWqeRLqFwkX2d7a23ZWLM0+0uF2ZB2gDOmDx1HD4dzVXnvq5LW/n7ull+B8hmOGr4/EKlOkqVtIwbtfXbXdt67nxd4G0X+ydEsdMXTY/sljGFKL+7BUjcSMdckn8qreI/Dst5crZ6Z9ma3uhvhRYt4QjLcN1X3HTPpXDXvwd+H0+o3uqzaVZ/bL+aaYPHvijVnkLEKiHCrzhV54wM1Wt/hX4aSGaf8AsFLa1tHeMrOJIfOcOR8uCSAQFI4z8wzX8xYzLfaV5Sc7q7t5n9IYfMJQpRTjZ2V/I7H4f390v2jQfElhc/ZNNcRxyzgkxhs4BJGCp5OAfzo8baLJf3MDaVrdwGhkypjncc54YZOAMYz1rwL4d+FfB/xM1DxZFfaHZf2fYXktnZSuD85jOxpGwcN8zdM9s+tdT/woT4YsXgHhKxSUCWQyKWKvg7RhM4PTpjJ/CuDF4JUJXb/r7zso4l1o3tuetJaxW9rHaX2rWkty0Cqqy3EYZXXLEjOQecjjHb1rptJvzpdtcm1udM1GNoQbeISIzpvB+UjnOC2cAcV4vF+zx8NVF8YPCkRkiUNJJb3EsUZfPRlByP4upPc962fDPwj8C6TDb3mnaWum6jJIzRuLyd2U7e3PHoCfrXL7WKkk5PU1ak03Y0PD8l/4W17WorWJBY6xe/v0ERkZgv8AEuDjgOfyFe2wXEuoqEkuorhdMnWTagKtKhm6jtnHUEjIrxK80CwdZ9UvbnVotrec7re3CGMqPnfarjJxg9eufrWjpuk+HNWuZbg/bprJdoLTXU0rSgozDILHsVGDnGa650pTcpqWjfb/AIJzUanIlFx2P1u/ZOvrvxFpkkVlKJf9KkELz4BkSM424xz0KkkdvpXwX/wcS/DnwtH8Of2bvi5bR21v8TLLWbnw6jKMyXOmSWb3MoLY+YRSwptBxzdNX11+wJDFoN9e6cmsRSeGtenMmnWdyxd9OuHQtLAkpOGRyN6KQMEuBxgV8v8A/Bezw69r8CvghEmtXOqSW3jO9NvbzHe8UU+mXLlEc8mNSiKR2Jj6AAV8yqjhiZXVtbHfjYc6pWlsrn8iWoafbWXiez1/R5WttPmt0tL6IfKLgLkpIp4+b5mBI7V88+LbuLSoPE9lpkxlsp7ub7G0oKqmQC8eT98KST15B7V9I6DeWniB7mC7gaLyXdlXK4ION/U/wlf/AB7618+/GvT2k8IXMKOks/hqN5YW2BTIuAAVGDy5Xk5r6WDeiOKsrrmPyh+KPweXU/BXxP8Ajnd64dPvtD1a3tU077IJVvTPKIyyy7xsVACeUbOQOMZr4tJySfWv2P8AjVotjpX/AATw1nxFcSxW+q+LPG9jHBC8jCSaLdeuZAo4PEUZ55w6kda/HCvrsqnKdNuT6u3ofM5jBU5pLsiwbqZurJx0+ReP0p/2646/uehH+qTv+FVKcqM7bUVnY9gM16TSOHmZbW/uFzgW3zesEZ/9loOoXBzxb8/9MY/8KSO1dm/eKQAeRkKfzNS+VFAxLtyVOMcEenWlZGvNOW7/ABGLfXGSQlpl+M+TGMfTjipXmnQEO1sM5C7I0Jb9OlVmmG3CqmeDnqe/c00yZiCAcjOaqxPO+4JkttB2gdc96vRRKzhpB1GBj16VQjz948qeDz/jVwSxxjAkXHPA5Ht2pr3TKSbWhKYMPtByRxkHmmLArK7K5k56AHJHr+FQtcRhgYzx6+tTw3vl+aEMSrKu1uD0q5PsLUR2zC6uuBwwIHOfr1FOOpXKqqILHaRgE20BOPclc5qCa5keRiJC6OMctn69arg5O0jPfio5U90UptdS6uoX0W4obQ9s+REx/Vc01NWv4SQptl7EG3iP6FaoAZJx1AzT1mww8xFlUHkN3/Gh009ylUl3Lp1i+YEMbRg3XNtCc/8AjtRnU7w4+eEY9IYx/IVFst5ACjtGxPRhx+dV3BU4IIJqXBdg5m+oSSPK5kkILN1wAO3tX6M/sd/sY2P7UH7Pf7ZXxeuvH7+Frz9lHStG1O30iHRkvG18ahdXMDK9x50ZtljaKPLbJSfNAwMZr846/fH/AIIe6bd+NvC3/BTD4WQPDLD4l+C/9rm1c8XJ07XLKVsjjcqwy3DtyPlU114OEak7SXR/fZ2/EyqVZU+Vp296N/TmV/wPl39m+3uLe3urW5Is7OBofN3LjIAKnC568Aew5r7c8NT6TquuxJerBdeHYUkFvEzCZiFAbeQxzyASMei/j8aeEvDt/wD8JufCcenX+mzSTtLco7bHgi6tEBjJbbgA9vmIBxX3BFeWtreaJa26W1rdWa4tZFQHIVd2HDEDgMRz6jHSvnpStFa9D2IQak7rZ/id9oEepR3moeIkeO5guJwlxaysoMVugMe0AjqMFify4rV8L2eneJNc+16vEh0KzkURR5YjmXcigA9yMkdsjtWVfXGqC0tdLsbuyW8utiXcyFpPMUn5R2wScHHYcV7X4E0O60mygewd7aRmMjyudjOx6jqMscDGOxrOMevU1lNOyPbNNubS5sdOkR5oI4ZlbbGwVYyoJLNtGWK5Ix0yK/W39h74J3XxI8OeMdf8A+NX8MfFPR7lorYvcyRxi1ntcsxMQLMXKuDuU4OwAgtX5PabdLp4uZXNnBpWmDzWLnBKjALEt1Yjjr1OK/RX/gm9reij46zWHjXw/o95p3jrTBFaWWoWK6hDZIsyuPMQkGNnCkGQA7dwGGwAbrVpulJwW2oRhGMo83c/f7wrpWv6v8JvhvonxBtdI1C9mvzZag/9nFWaaOOWO3nkMxKmIlWJZRkh4yAASKr33hKJP2T/ANoH4b6TqVxqjX1jewwacLlbk28kCC4jSNCxZTNtUBQ2C3IwSQNTw14Y8IadeazpD6b4H87T3KacTosAS5E3zxKSi/vAqttEgX5io+XcSK5+31Cw8IeFLTW/Fvwy8M6DeWV2LK7k0u0guTCZrjZbMVjhUh5GjcK+FAVgzAZwPhK05ay0Vz6enSS5V2Pjb9ii60Pwe8XxKg1Xw9D4p17Rjp4trphY3sN3Y3BeQTB5FEu8R/ICfvSYAxmv0l17x14W8U2ureO/B/ivwlpfiTSQ6T2t3cxTRMFcK1woDrnb8zcEMpXIz35PwnrXw28RrvsvCWh6mTapGFtYLNbsyK8qNcTRFRIFJjkKsp+YxlVzjJl1vxVayPbSaD4P8PXdjpSG4mB01nM/lzAT2rIsX7qXaJAgJIyFbDKTjkqU5129fQ2pyjS/Xz8ji/i9eeOvFOmNefD34jeBrbWtRitvEFhZXC2pge9idUkj80yB1aRGkUEkgAHcCDWb8PPGM+rfELxR8M/H9jYR6Tqdi15Hc20itbmeQqjQq7gIqybncbTxlshdwNey3Nv4TvvEGvaJDo+hRwa/YI+hrDZxR3Lfu1EjpDtEjmJny5VuhIKjNfG3wzf4m3XgzUfAmqz6DqXxU0TxDqtpqlzHYwNLHEXX7OqMfljKRyK6ApyEYE5BzyfUZVNHK50LEqGq0/q56Z8IYtM+Bd1J4TsvGsun+BtY1O2mtYJtQS4ksLtQyNa5k5eKco2W3dByF4Fflr/wU18P+KNS/aP0Dx18Ltehh8TPoVhe32mabFa30eqJbXM6XLOB8xkSGO1C7nyRAAcLtNfsB4h8WTf2H4c03TNH0LQPG8UDXE0ps0ubS8USLbyxeU5QkgyKwBcFWIr4O/be+H+rfBzVPDX7T/w903RXbUrXUtAvY57ibR0mmmhZ4jdvDHKIBI0E9ujlGVneEMSWwPpuF8P9Tx1Odadul1021OPMKkcTh6kIwu2ttr91df16HwN8K7HWf2jLnX/EPw21my8D2+pzG01FNT1iXXLKxllmEkkUsTqyoWIiTCuQDbKGJwFb6U+EHwq8bfFbxb4k+HWpeObq/wDAtzq0GqXS6hqGoPmN0meK4RGbcsjRJFIEYbkF5GRsIGPzn0Hwl4/+GN5f/tC3y/B3xV4M1jSbiPxs+k+MheahbXNxFAW1qO0kgXY0LSHe6MQq9UVoix+8P2Q/2lfBdv4t+M/iyx8O2eq2hbTdHl8/zbYWM8EO2aWSR4MIRI4DHeVJVSrHINf0TgUsS1SxMmpW5r3tdeXbzX5n4/jqk6ClPDpSV+VaXt/m7aX8j9EovhnG+nat8UbL4A/Fv4Sa5qF2Y7iT4e6zYT3uoqZdgeWzhlFtO4bks0bFVBJxgmvz7/aX+PXiz4kfE9Pgnb6t408d2nh7UZBHb+JNCt9CnsZ0t4fOj8vy42mZAxUM0jD5wyllYCv3MuvGei+CLTVtO8T+Ip9B0+ytJdQt9duT5ME4DkvEAFCsybkIAB3ZGMkGv53/AIwu3jH9rfxP4r0/V7yx0jW83A1WZEV0lt9Lt4TG5RCwaVgTggNtcbSGQY6OMq0KFJyUlGb2SunKP6r1+5M+E4CdTMK0VKDlBd1pF9NXs9HorM9q0pbK8sY7KO5muLZhG8jOWU+ZGWJVE6hSOgPUEEEjGfa5LGO4sbqb7DBHFblnDXCmBRKcsWwygFQwwWxghc5NeD+H/C+lWNx4ah1u1ttH0y21F7uCVr6e4MhMDBo98gUCNTIoCvznv8uR7lr81jDYane3NzLaWT6cVhZCrFt4zv4yuMnA/wAK/GK1XmXmfuCg43bPhb4GvHoY1rRra1vIryS/uZxMJMqSxMhQrjkMCDn2NfS1jYeZcWOp2EkqC4byonDh4nGM/kMnFeM/DCS21G7llv7qOKW4jUmTyViaeZpHQzEjAGAo4xyOMDpX0TqKW2hfYdLd4ftU0v2tpPNNuioF2k5Hy846dy3NfI14+2qy53pc+kpP2dONlrZGbdGbR7t9MeS2nu7knzWjB2TR7vvc8ggEg+/1rGMjz2C3nmSyQWMhkupDsI2FGUAcdQMEA8/Xio7q/gutcH9nLaX9rEqYC3Ee48gkgZGeeD6896km1BpYbuxsFlFpeMkjSyxnar7eTjHGR0GcYrCFKMqnLFjnNxjdnMpt1K0165vbC633eBA7ZPmjeS8ucHIwFHPofWpvA1vZXNvfILm5LWttu8xQF34Q7Y8fUdjnJ9q9B23cOim2t3jWJ0ZRIrZCRkYCg9hyD+Fc18NPIiv7m1mQs7MyxkDYrLsDduOu78/pXsqUYRfL+Z5/K3JXPvn9kaxsbrWtU8N3t5OthcaT9oBiYvJDKg3JKoHVkdgR9Fr5F/4LLQeMvH/wU+AnjrxFZ32mXvhfWNT8NatafMIYdSaFWjuot2MxzR20jo3I2MoznNfUP7PdtqCfEuC9068/sz+yoHM67VBnj8vb5XXqTj6YFdd/wUp8D3fiX9mLx94s0/T7zX7A6Sq6vYRR+Y0EltIJLTV4lPIeAlo5CPvQTP12DPwWOquninJd0fQrD+0oxfX+v6+4/hu1vw9qvgZYdUWW61q0mk33D42tASW3A7eApHGe2BmvIfi1q0VsdP1BbqGfTr+AxMM5Cp8xUYzzxuwcdueK+xtbmXUlnsX2m3vY3DPgFTuGChHf1H0Nfnt41tRNPr3ga7hLanpoMsIXLmaLYflUdMnBHPqMmvscH73xHi4pcqsloyh+1zrFprP/AASw+FWqxyeFmurz4i/2dLBHc7L22ewtbuAubcADypVMcm/kZO0YxX4M1+4v7fHh6Hwr+wH+yslte3UVn4p8T6jPa2rQLEtzGlnE8t2G27mxPM8A5x+5PFfjU3hJ0txK+oQpKQxKmNscLnAbvngV9vh6kYUoLTbp/W58vjYt1Z/10ORVS7bVBJNbrLa2pBgEuwgEO4G5vy6A88daqWVvlZJ5MKEHGV+8c8Dpjn+hodJpWHm7FGCx5HT1rdu7OeCXzGtdyyEIjYUcjp/kVSck9Sp/GtGCymvZfLtog7jqQOF9yelbnh3wXqfiK5CwFY7UHDSnoT6Ad/r0qm7K7E30OP6nABY9veur0bwN4s8QSImmaJezeYeCUK5z3APJ/AGvqHwf8HdNtJoHa3WeYj5mf5ixB/8AHenYCvsHwN8Pre1XO1FWRwGAG3nOenf6GnS/fO0WZSlybo+DvDX7KPxJ8QKkkraVpkbdTLLuI/4CuWH4gV7xoP8AwT91q/Nv/afj2zhkuNv7uCymkK5ODkkYr9MvBPhzSLZpdtvbcMpHTnnkE+9fSnhy00mG1jkaS1Ety4ReVBVRzg9x+dejVympGN+c4o49SdrH5L6N/wAExINUVAfiHq4kcZwmnA4/NveuyP8AwR68W3yzHR/H1ySigr5+nHk89lOT06AZr9xvAmoeDJLa4OpXMUd8JEWF/MTay5BJx19SSfTFfcvhhfB0zw3Wl+J/D7RKVKx+aoklJ5L4J5+lfOY1VqF2p/kenhKtOpJRcfzP5N9W/wCCLH7T6wed4V1Hw14icgssbrPZvIMdgyEe3JFfGXxn/YY/ap+ARZ/iZ8I/Euj2DfcvEQT28g9pEJXJ9Cc+1f6bX7Kej+G/EVzarqkmkwWqgMrSYcMc9M84/Ov178Z/s+fs8fFD4La74Z8aeB/APiayv7KRLiG+t4ZlkAjcMuG5+7uz6jJ6V5SzatRk1KzS17HrPBUqiTV1f5n+H1c2d3YztbXttcWcq9UlQxsPwIqqeoLZ59q/Wr9pLwH4M1v4jeNr/RfA+heGPCb6tN5GlaeZmttPh80qqQmeSSQDA3Y3kAkgYGAPz88ZfDnS9Oumm0G8uIbNusVzjKED5grZ+bHvzX01KTqwUrWueHOShJxfQ8YHqeO1TCQY8pzvjznPce9at9odzZxJcqyXFtKMh0P48j8P84rGHGD3FaSTi7MrfUSRNjYzlTyD6iv6EP8Ag2kvdFm/4KF+JfB/iG+js9G8ffC7xVptwsj7IruP7EHktZTtYeXKivGxwcBs9q/nzT543QnmP5l/r/jX7Cf8EDPFt74T/wCCrv7KTWUNtcHxHqN7pUqzTi2TypdOuCxLkEDG3dgjBxg9a7srX+00vNo4M0k44epJdFf7tT334hWVh4J/aP8AjBLDexTLpGo/2PpZT5zf28WUScA8gs5Yn2zXrF3b6fZ2Wh2csv8AaPiB0815ljbDvKysQemflzkc4ABrmvi34Rn0j9pT4t6GlsuoeJ/Ad69jqbB44gLuJys0g2vtyQqvgN3Pau08NRHV9YGu2otY47cg27MfMSIMQHYepfnsRjP4/MYuKpTmnGyTenz2Pp6UpT1Tu31/M2B4dl0qO/VLkXMU0DSNcXHy7pFcFmVeAMADj869q0bxMLOLTW/dyxx2y7yG3KoUZLE5xnDchegBri9SeSWHiy/tGFCY5PKPzHK4ZRHn5snPSsPRLOSwgm0KKIiXS5JI28onBjfG2Nc9WKgZxnHJPJFcuGTmveNa75WrHsUF8/iS7dHmhOhpcJhlJBu5TJnA55AO3HHLAelfbfwk8eX/AIX+JWk+L7TVdb8MTWdqtrFewstsYw0gEqklHJzGHXAU9cjBAI+JbDSmsYbK4hAjuLZ0XZs4KZACoB3UqP1r7J8CaRjxN4RFz9nlt9Yvbe2uPte1ooI7mTy2kG/KHasmcY55B4Oa9unGMISTPMcpN7n9QvgX4g+Dr3T7DXNMt4td1DX9I09YZ9Onja1vZ/NAG5QQq7c72x8xEpwAVAPonhHX9a8Pwah4f8VSWR8Uz2dmkl0imKSa+jRvLzGpBdQZQqlT8wJGVYV+Uvgf4B/tKfA34qWvhLRPFngiyfxNHe3lhP8AYZbpNRgVbYi2uUeECEKiI8SxMoTzHAPVa+4fDnifxnqSXcPxSgvbDX/A2oo66hZr9oW9tpJTGY1DhCFJiBUN86jGOgJ/NcThlzSlHVP/ADPtaFW6Slue8+KYW8H+HlvdP8Oxa/d6rq8EB+zrDM2kwNMf3fmEoZY0eSZxl1YhwqluFrmfHpePxPZaQiESeIUS0ubxIVDWcK20xhmlR8NLiVGT5SXXjI2qTWz4n+Jtp4I0CGyGmJqt34tHmxz2nlSojoZpNjLNMnlg+TkfMclWK54zzGneNvh9490bWfH8Wpaha38V1Do17b3NpcNNpV95xiEJh2+snMmCoVm+bburloLlduiNqrul3NLwf4UiS9+H15q+m6xrGsfDiRltb8zrdy2EUyoJnZixAUqowvLAADrXy3oOr2PhH9rn9o68tYGtIptAbX2kjtpLtp5g727MsERDSlg6kJG2444r6e1e91bRNG8Tasl3FqllbRPtu7OV7aeSGIIwQRYKbwAWzwCFxyAK+Ev2iNUuPDv7RHwP8YaVeI1t8TrC48M+fA7wx3D+WHTJR1KBkiLKQcqyggdq1pS5qslB9PzJelJ83l+D1/M+ivib4vFx8K74+H21n/hY1np9xNaaY7lDPcoGZFRpCCwYW6B4w5JzwPmwX+ENOtv2kfglf+ENf1W91G/1DQo2ikhMtrJbX8ExvrORQFUlopotvB3Ex455r5t+GfirxJ411X4maZqemyaLfeBnbU2sk1RfJnZk8u0iIfJyvlDLFijOzHvX0v8AD/wzceG9X03xXoeNBN9tmudPj52yMqhnQq21fmRsYY4LNjANetCF4x5t7o5FV5X7vS5+ad5a6Fd+FNc0T9pTQ9HTQ4PEEmoab4lWCD7Owkto0TTr0So01mAqZGQjMCv70OGVvmn4aeDPE3wt+I/xG/Zq8O/Euw8ZeEvFunQ+KPhxq91GJ7XxJZXi4ZJJ0yDJbNvTK87ShI3Ekfpv8aotN1z4gWClLyYDUbmFbOyK2k6ybd0rPLBIm1FiM8TO3y+bMM58s5/KD9vD4S+EvDngXwj8b/2Ztd8VeFviJ8L9bSSeESX19NJYyFEMpt5z5LN5jvM8mzEgiY/dZSP37E4eVKjTrxs+Xu2pcttlK+unR/efmtGsq1WdK7V72sk48ybeq6dUfql4sufgNrn7Wa/BjwVrXjvSfA3gzTW1LUtH0p72fw8bvy/MM0FqXNlZFFeFAbeIO/2iQgPtyPz68G+Nvjf8RG+MGs/F/wDZb1/w9qOpeIpNPtdMs9Qt7e0ubaK1t4o9QheVUkKyGFZOFwN5A5UgfsD4r/4J4/Erwbo+q/Eaw/aE8C6s3grTJ7i1Gt+H1trKVxCxCyOblskFRudkU4YYzjj8vtJ8VfEbWLKLw94kvdLvfFPiCKC61K70+FoG0y5mhMvkKpchfJAaHGedivkZC1+cY3Mc3x3ta+MoRpxk1d8yk9FZR8lq29NzsyXLMsy6NLDYTESqyhFqzi43bldy1W9klvokuyZuS+MvihLpGnaLN8FNTt4tGgNtDbz65bMXIB2vkx5LAHqeMD8a7DRfHXivxLpd7o+ofDHUPD8FuqGaZdQiuzGQy7UKhVABxjGe565r0v8AsnVdP0m21rUp4bPxPr0SoYZJEIeRpF+6HBZF24ZsE4Jb2Nc5d6Hd6hqeo2c92mn6AOVRJiokIKneJJMkdwWyDnHoK+TU5S0TPsZUlrc8PsPBOoeDYvJPheXUYJTNcvDe3CxrbmSXf+74YooJJHuenNTvpevCys7y4+H2rLNE6qFN7C9vIpPRMtkE5zgLjNfTNh4b0u90+0vL17m4luY0lHnkyl9wCfN/fCkEckY5z1qjr1mf7ZuNQ8xbR5YR5jbhH/q1wipgYYDc+PTPtXJVyylVk5NXf9eZ0wxU6aUVL+vuPn60tNT/ALQne18CanBfSQoAIZbePegIIBUHkfLjPrVuDWp21C60tvDmqw38fC2X2iCViu0EMoLggYYfTIxXtmhac+n3J1rUL5dQmjVV4nRkiAYksuzg/eBXjkHrXzvrt7cWHxj8W639uOl6dPbxW1vLGuU2/aWSQkEjZhUByD070YfA0qs2oLVLuwrYqdNR5nozurXUNYG6Gy0zxPbRNsDxlI3KqBuKggtgDIPJ7jpXLQ6mdFMmuR6H8S5PsC/aZRZW9vMrRqULYXzcOArZ4GcDvXomgyz3UPjfTYLO2C2zk2kryed9pBByMsMnJAOF+Vh+AHpOh28lhrOgX9xNaXlvCzW0ca7VKyYCgngkjZwOnQ11LL4Ur662Od4ibaPUf2aNf0bXdWi8U2uuS67plyr3mk3BBiOyR3TYSuPu5ZCp6HryK/XG7vLRvBifao4J2mhAZHG9ZcoQylTwwx1HpivxS+GXgjR/CuseJtH8M3snhm4+IM7SWDsS1nZ6mylUj2NhUEjhTjgFyBwSK/Rr4e+MvEOo/DmfR/Gml6naeKNB3QTteQJCrMqqpkiMZaN43YFl2u2A2G5Br80zNOFVxlv3Ps8JaVNNH8bX7Xfw/tvgf+0b8avANlbw22g6Xq0moaMgjEKjTrt/tEMSBcLtiLmAAcYRelflT8ULO7tPEU/iuzSSXW4I4oliDFIrgb3PlSHBPIcYbsUz0GK/oF/4LjeBdL0TxX8EPihYNJHqXibStYs9RhLYR0sZLHbJ7EpdMv8AwAH6/wA5t3qGq+LPFN1Lp0Ooa3o9hJdASYzFH5SwKZBJ05cSAYPGT06j7bJqnt6UaiPlcbpNwfQ9F/b/APgj8fPiD+yl+xl4H+Hfgfxh8R/DXgG213W530nztVS286RJLmfyVLNbQqyyMDgAjJ7cfikn2Y+bZWU6PdQwvNNE2T8hXAPTAHOcgnrX9m37M/iHxL4j/ZC+Ovh3WrOG6sfBnh++07TYbOVLe61BVsrl1kuCjK0giR0CkjDNHGC3y4P8gR8MaxY+Hr7UZfDurWWLRvMla2dFC+X1ZmGCMnjJ+lfVYGrOpTvJ6J2Wt3037bnz2ZwjTq6PdX/yPnhFWbR57JI4/NLxymQnOAFb5QM9y+TwT8o6c5rraCC3uPOlDSqQFABYYP3gSenatSOyl0ueaK7GFAGc5IPGO3+eKqX0vmJwyM7DJCjsAeff617N+2x5qkuZo7nTfhZ8Vbnw5banZ+DPEMXhjVovtj3q2zhJoAN2/fj7gUbvTvXtvgezi0yxtbaRhC20gKdo2kk/KM9cDHNf0Kf2ZP8ACr/gkZ4z1rRNM8IDTtf+Feix6xHczC21GR7tbKKC5jgnUymNXu1lYoQjLDuQjdiv53/CF7bxx29yZ0clT++lAG0f3VXOFGfqa7c/wEcDSw8o1VJzV3bpra3r3ulY8vKcfUx1WtCdJw5HZX6rTXbbtZs+oPC9mVe2yAqA4dkQEjOO5OO/pX0Hottp1q91G+oSypcKyRt5KzNIVUNgDAMbZwMgg44zyRXzL4ai1rU7mCRYprWxkjws06pAseSPn/eEEgD0XvX0T4b07SbW2tku9d0u5vY55GU/PdsRsjxwFVcjB4BI/Pjy8BH31qepipcy2PcvDUlqrjytMN642/6xQ3XPZ8jtX0F4chuiunzWOm2c80Qd5FKpFt+dhwB948enevIPCiW1pYwSwWuqG4M67x9nW0xhPlO54yMZOTnHTrXvXhO+1CY6cggtLKJVJLS3cIAJkJxgOMnPt0P5/UToXV7s8eNd3aSR7d4L1GaTybqbw7aFWYKIwrB2wfmbYpwcAeor7C+Hst/qbQonhq208syuqGDzlAIHzcPkdR2P6V8e6ZeeIb17WKaxsr2HayLMdRAZB2BInGd2OK+vvhdFq9n9lUJoEKPszJdXnn+W7EHBBuxk9TnH86+SzCpadm393/APSwqvrY/U/wCCnw817WzZ2Nr4M8CavcIEePzV+ws4HOA2yUdc8kV+nfhf4U/FHRvBy3t9ovj6w0+4iCLFp2srfQRhzsOYJnhT+Jhxbt9705r89P2aPEWv2V1BLYap4Lu7vcqLA2rpZggcjbhpu/H9K/abS/jp4l/4RW6tfEPw7+zS2MaJHNb6gl/HcgJGfMO9IQPvYwCTwfTFfD5hhcNUcpVJOOjs1ffzPr8HVqwUeSN9db/0j/Js/aRtrrR/iH8RNMQbrfT9cvrYxlTbsBHdSLyhUY6YxgY6V8FeJrIakZ4Vdw+S5icFGBx1Azg9K/Zz/gpT4AtPAH7Tfx28CyTmfU9F8U6jMDJGIBNb3U7XVvIBk/MY5V3DJwc4Jr8ZvGFtPp906GMXUKnI3KdoHXIYnt/SvvctnehBxkmmkfCZs7VZxcdbvy6nNeFPhL8U/Eula3qmg+Btc13wS0c7zXMMYkW0eBd0kgGcgKSNwx0bvXzvIfmz2bn0r9sP2QvG76N8BfHGmKt7JbQ6zeQIywkpA15p0KgPIF+XeVZVDMVOG6EZP4r3kDW07rx8rsB+DGrw+LqValSnKNlFq3mj1nSpqjSqQldyWvlsRwHE6E7VViRyM4HSv29/4J4/sA/t8/CD9rb9lb9oG9/Zq+KWk+AvDviTTNZuNZW2hMUGnSo0j3Qy/wAy/ZvNkwOqqelfiNOELQjPzn72eMV/pMfsNfEjSPil+w/+xh45a+8ReJNZsvhzpNrq8M9xMYrb7HNLphkYsoSVFijZnjUuVVRvUh12/fcH5JSzqvKM5NONmrf8N/kfIcU51UyanCUIpqV1qr9NOq317n80/wAcPB+q+Hv2h/ikmm6mJrXxFrF5PqdxLCyvcMJ2kJLO+RIybt6nIxtxkjFeneHNIi0vSZ52glGk6Wy7TE37+SFo/wDWONvZs8AEbSPw9T/ak0PUL744eOLltNuJLB9cvIgs8RhuoYlciHgYA/duFK7cLjAFeRPf2WlW9tKqSW2r6Un2TajkF1ZHyjH3B3j0OK/O8zo8mJqU73tJrX1Pv8LU9pSjUS1aTJ7vXNMsrnTY7S/im1VrR2SFPnighyCJgc438IDjAYjpwK6D4bQXeoT+ffobcWccrxLIBmVigO84yefocZrxCC3VvFGoavbxzWq6tJGZVJIIZUJKqcDALEt6c175oJtlllOq5jWTMhV+Q2TjA9DwMfhWlCmqUVJo5q1V1J2ue56L5txdGGJfLiG53k2/Oeeik5A969C1b4ieGtN8K6Xc30DalrdnceRa2aNl5JopFdHO7OBjaxbqM5HODXis3iiHw9ZRSqsklyqhok28zPIfuDvxxk9B+FJ4U0K61bUpPFGrpDd6w6jEcGGEW5lXP+0QNx6inUqOL30NKMed2tqf1n/s56X8U/iB8CvhF8RPFfxX0mz8RatotrcjfoaXxWSWzEqafFLM4aYrCIwGOclGyThs+/XPwn8a+PLa2m1D4k2N9earbRSvEuhQb5Y1B+QKGKO67mHA6jGcHNfOVj4n8OaF8D/+CfP/AAh8lxH4G+IN1bafqk0UayJbXtvpdywEy8iJhKlyOo+4VGeAPrvSPFNj4C8d6Zq+sXmt6TZ6Lp1ze30AtJLkW0aTIDdsqgyOpXZkrnahDMRjB/MMXLnnL3mkfbYaLhSg0ruyPmP4xaj4l+Ch+EPgbxH4213VoPiLqkHhTS78+H7WSSy8xDskmeZt5A86QArly2euazZfDNymvar4i8PfHTRoRqsvkX1/Z+FNPtp2kiB2CZQqkFACPnTPOSW4q5/wUb1qx8V+FdM1Cz1Kxhu/h94l0HW47qDbcQ2sckjbbpG5AZTsY4xwqkjkGt3SvAOoaynxOvNa8B2moeDPibcziRtHvEAlCERrcoSQYmaKOCXGSDk85yBx025JSvpqddSMYyUbdF+v+SOQ8TWPxStNTtLO0+Nt1OniLZcCY6Bp6JZGRCBASXj3BwzhQM4CnkfLn5f/AGhPgj4j1nwF8PfAfjD4weKb280HX4IdD1K18PW4urUQHyg5aO4X90EPzsxyQxByWxX0Xqug+KZ9P0TTIbK9t/E/h3TClqdReW6W8eM7gHkWRMswRCFJYAlyCcccZ8Pfi+niHxafA3xX8Ma/4Y8U3dzKnnXDBbf5ocKVZwrIdyllPzAbsE8VtSbpzvBakTipx977vVHBf8Id448Maze3E/xxtbbWvEgU31qPDul6G13AhDPJGsqyD93HuwgxnZjgDI6myh+Iely2drF8TPiXrUU6oY1itrFIV3MwDPiFX2KGY/Jz1wDzXovjG3h8U6XqVy6TanNNp8sZtLzaqSl43DjOTsbEsibh6DOdteRaX48fRvEXh/StZ0029u0CW+RMiNa5gc7CrYyoILDBB/ekV00a8pO9/wATGVKMVsdV4otY9D06wnN94ftf7DnXU3u9Q066ujrZuGAKPLbsZWdnLkIIpFGPu8mvnL48aJ4P+IB1p38S+LtCi+Ifh6+gvY9RM0iRyzWslu1zBEiBvKRpUk+dVkCthkQjj0Xxp8d/h14N+NHhL4fjx4/gq41bQjq+h3622Y/ELwSmF9LaUL5kcy58xEztcgjqoNeeeNfjR8K/jz8INT8I6dZeIbP4u3T3M8c2oWD6fa6ldxxyQrsjCGSXcxbDKN7KNrElSV/pvJc0/tjL6MpW5+XTa11+X3H43i8BLK8dOzahdXa6J63en6s/Tn9pH9o74qfHrR734K/sWeDbbVtT8aQvHc+KNRtBLbwwyfL9ojgJjjVWIJElxtBCOQjnAP5GX3gr476JfadLqvj/AMMfELxsBcP4ovtbgubqM3qyGLZDOWi85AEcBlSNVBAUEV+qHw5+JXgb4MePfiJYWOnz/DZfBXhK8F14cmKRSyeRaW0tnLLNK5W5k3yXzI8UshPnHgZC1+dmjrfeINV1O5S31S5s3gWCzecDy7gmQzNJHGxZXZWDgMcEhOM5GPgc9w1XC04rEzu30V1FbXst77ayv5W2PWyKpSrVZfVYWiknd2bd7pa7W0vaPle9jlUk+OSta2I074M3EMDEwrJBqDEFukYY3Bz6hevHtiqFz4x+MVvFHDqtl8MobWINb7rWO9OCVyVyJmJGOMjjtzXq6+GUZLD7TLNPbaLPJIImd7aaOaaQ7WYBgJQBK2Sc4CjGK8b+N10G8aeDPBeiWMFjNIkmo3DfNbp8kQ2IVHLEM+eDliQCeK+JgoykoJWR9jLmgrt6lrTvE3xtubHTo4LL4a6ppVnOBbO15PDhsthAQ4Ug7s8gjJ7VvSeO/jBcWiX8nhL4d3C2MuySS3vrjYJASCmBncTnHHtWB4f0H7Vr/iaLWZbuSSzthBDFFM0cFpGFwzKhChHYbQc9CeDw1ZlnoPip5P7R8O3EqaWjurWBcgIQAFdccRgEhmPXhscEGiryUbNR337mlKMqunNa33G/ZeN/iar2MEGheBbeO8PneSt3LMRklwrYHy8c84OPpWLqNp4un1y4v77wpost1aIVnC6qPLtiWJlU/ISeSAAT+fal4I1TR9F8Qz6c+izQ6vZZ+1TzosxvS0bBCSjdgAAEwCAMjrXd3L2OqXR1Gye/FhqGoC4LOA6uygq9wUOd/wA+Pkf+HqM1rhnCnrFWv5mGKpuW7vbYr6Rr/jtLu4s7Dwbpd20swmEcF7DCrKMMQN0QAUDHRuOPSuk0bxx43m1SGO+8BJbWWkTfadQe31a1vJ4wyEqYohhmATJwOpBGc1qeNriXR9Mu49OsbUwqzusm2WFUkKjZhV7bgTgbfSrfwxsbmfVdMufItfMvbKVrmXzTGwjxuXaDkDGGCg8gFiTxWWIxEYS5W7XOijh5VIe0Wtjo/D3xL0fWLVrKI2RuUWK4sri3nQfbkLI+8DIKEfdIPOQw68D7rXxnd6p4Z0JEa1l8T31nvQI5jluLeJh5myMnClWeMMefvqSBvr8bvjPYah8D/Gem+L4NLutR+CnjzUbdtVtLCOaafwrqLuMagoTkWsrofMQDAd2OMNX6J6Z8Odb+JHwz0qXS9fsNK8ceDJrbWfCWv2snm7JZI9jRSkJ/x7zxlopVGdyYbhlXHwGcLXXf9D6TLmpxutuvqflF/wAFoLPTvE/gP9lDxNI62DrZeIpbuKRmMoLDSGSKRSMYJ8xecZIPpX89vwjYXt5rPhcJFGtq7LFCeQS4J8vHUgjJCjuCO9fvx/wWz+Kl2tl8CfhSuj6fp2oa7ZXHibVi6K7h7edrOKGIk5VCTcFwwG/9yeq1/OIPiB4T+Gd+vjnxD4lm0i3G8vmymmLPuQRsDCpZcPggn6V73DdKSwq5t3seLmtSMq77Lf8AA/ff4M61pXwh/Zh+PnxBm0XWfEdteaFeaTNPZxxwHSZ57eK2t2aX7TEzrLczBWi2OSE4DE4H80/7VOo3Y8D+G/DEEbrBqjSSXLcAN5EW1UOT8wJlB6dQvHFfpTr/AO2ZF8RvBOo/Bn4SS/EW2+E1k1jqGpXWsixsYtd1CO3dg1tbxRmWG3SW4mdVmmZyWDFVbhfzG/atSS4/sC1Se7ke2hkfywpCZaWPOCeSfXn0xX6RmeYU60cLhKbuqcdWv5mtdt0rLV9T4jC4Kop4jEVFbnkrJ30itr323ei0tbqfEHiHwzZamJZAYYJi0mQowSBI3J7c/wCNeQz+H5dFtNRlmmE0jwtggZCfKx5PvtHevpiaQJYM4fIRMsNu7dnJ69u/evE/Fik6ZeXc25omhfYAW+XK7RnHv+FOhTSpp+hnWd56eZ/QF+0Jr2if8Os/CWla54iOo6zpHgfw9Y6fb+fHvtoZZrc7GVU3SLvQFNzArt4BGSPxE+F0bvLZiM+TNlggK+dOVySAT9yPr04PTPrX6PftIeG/EegfsZ+FrS58VRXCS6Vo8N5Ctz5jiLzYWgRh0BXdgbckKO2efj34J+FUudRgW3hP2axCvyoUAsCB0HcnPrxmvIlVxMqSWLnzSu7N78vRN9bLTXW1jTBUqTqv2Ksu3n1aXnv63Povwx4JvtRtruCC1iV41BM11EbzYTgsWTofw/pX0d4N8H60TGLzxRqX2dB+8ht2jtIZCJWH3YhypHBySKveAbO7KxHMtlEmTKp2vkZPJ4zz1xmu9a1ZJIXsZJDKrL8xYqGUOcgj6E/pzXZk83VrJWO7MMJGnScmz0fw7o9tpGpad9kttMkVJY5HLRLulAXdsJHXoM+ua9tGg2viG8s7qKOzslhkDtEiMAqnLGMKxPBPIzmuK8GWNpcsuoufMeBlaJnXIBClcY/H6dK9/wDDdrK97J9o+zRtOIxlkCgEoOfav1KpQTp6rc+B+scs99jv/B3g3Rb6GKKewiuI43DlSGUFsYXIHfryK+zvAHwgssaYLOTU9MhSWB5vs8zchCCFIyQRnHX3HSvFvAgigSFPMYi1UdADgE/w8exr9C/hVDp0tpaXk6Ivky7WTc25wQTkEYBx15r4DOcFB6uJ9Jl1a+p9gfBXwNZ64I7N0uY7l0TYI2LgHeowVJCkfLn8T61+snhj9mzw1a+GdISa5ubXXIbNUe4tAtsZXySWfaCWzkKecccYr4d/Z+0W1/te0urN7l4vMX95zgZH3MZ9x+tfr5ZrstbdOTtQD9K+XoZbQxVaSqQT0PoJ4uphYR5JWP8AN2/4OFPDPgzTv21NW8KeHdEkHiLwTo1naa9qDSGZdRmaLz4yqMNytHFIqlsnOR028/y3+L7eOzuLhyGijd9235pIyeeqnJ9s+9f1lf8ABwlo1xb/APBQL473y3a2813a6bIipHy8Z0yFGyfX5Tz9PSv5YPHdvHcvclVPmBfmzk8gdcnrmvo8nw0cPSjCO0b769WeBnEJYipKTW6T/BH6k/8ABJ74OzfGb4c/tGaJ4b0PxV4x8ZaFd6VeW2h2T26W90lw3lNJc+fJGPLURlcqxYGQcYya/nq8daNL4f8AFXibQbqKSC60PVLuznjJB8uSOYoy5HBwQRx6V/Vx/wAG2niP4baL4s/a0tvij4qufD2nabpmhahA8UkmLNTdz2018sMf/H0yLc7PLYMAJNwUlBj+bj9s3wvaeDf2p/2mfDFlO15aaF4+1qGGcqyGWP7dNtYh/mGRzzzzX1WZ4KjTw1CvCNpu6lro9bni5NjKzqVMPN3jGzWm10r69fTp8z5jbfGYy6L04zx+NfvB+wh/wW8/aD/Y/wDhv4J+AOu6V4d8Y/s7eG3lZLWOyjOqWIm3M7W00++IYeRmwEVmHyl8AY/CedWe1t5ycsRsOTyQAMfpx+FdfpTwywaf8q7j8u0t985Ax7Z2ms8mxlXAVualOzf9anZmmBo5hStXgpJdH92nmf1beOfjh4V/aO1/Svj74HvI/EmleP7t7+9iDokun3VwWSSyaJcCMq4cKhydhj6khq+bvF97ZxS3ukWcs0U9rkGO4IYSNuG5cjIDAN69SB7V+HXwv+OfxA+DM2uWnhe+jk03U5be5utPl3eVceU4ZGG0jawG5M9cMfQEfRGo/tuWF5qd/qsPgjWpF1TbLKjXES7ZFdW4wvIAEig9SNmeVr57OsNVxGJqVFHSTvp+P4nu5TVp0MPCm3rFW1/D8D9SvCuvQXVmLS1hRJ9UCYLEeYDu53tkgMFYEgdStdzYXEQFrBHGbrVJyTaQcgg5BMj8fIADySOOa+NPBHxF0PXY/DuvafNJbeHvE1oLlZpdsO2b5gYCBj5lYFfqnfINfWPg6xWC1sLmC6u7rXtX2+fLK5YKqgfuQB/CN+eOSfWsaFDmSuTJ3ep7ZpfgbT7XW9K1S/ub7U9W1dXSSZmHkxbCv7tUxtVSF755Yknnj0618TQeDLSZIIFvfEdwxFnEhBaQncTIwHRR82eP/reKar480+w1WPwRpk9pqnjLToxc3FnGwY2qSbgryAcru2HAPOAe3NdV4c8N6jZa6+pa3cC9v9YgkQyMxYRucYUYPA4Izj271hilzadEd2FfJ6n9HH/BMK10rxF+z/cz/ETUPEfiPV9R12+hs7X+03s7OHy0hk+zRgHYj/PI4UjLHft6Gv0K1D/hTHhzTvBd9rtt440jT9flaCCaa5ublbFgMPjyXYKgWMsxB24Vc+g/M7/gmZ4mjX4HfF3wNBLbaFrnhu+g1exvLhjLbh7oxIquvUKJ4F3FecM3TIz+qfia31SXS4bG/XwQdSg0+CW+iGoLLZXlwR/rrebaWBG5uWXd8w+Y4Jr8wzqFWlVnytbn2eVOE6UOa99Tl/Gfgn4Rat4Wv9A8TW2nX2g+Kc6RFDetcououwfykC7ic7gAGD5zkDB4ryXTf2dvgz4a8B3d9b+HfFen6pplwltb2kfia6limwUicuFlBX5m6kjaOuT15LUPE+oeH/iF8PvC/ivw34el8Fafqsc+nTWWq+TJbybnJSTd8rKGkLnJ68hhXp+oeKtAsZp57HxZ4HvdF1G6na5tZru3EkimfCXCB5MO26JWJznC4zkVyQnJ2/r9NztlTSfpb+vQ8Y8U/Aj4Xz6TbalpmmrZeKobmS1ihv8AVL69toJ0m2ytIonTIVlMYJbO4nGRmqOn/sy/BHUNS0vw14j8CPD4i1O1a7hkivZ7qGbYQJVDSZ24YjaDnjPPHMXxZ+JWr6N450xrK8+H2veFJne78y31C2W4gkZWkljOGIwzHglRksRkdD0Hh/8AaM+H9leaVrtwLFbNkksYlN5DIbaKWMF1DZIYK0cYHQnJPQ1206jaszKrT1PlOf4e+CPBtn40fVfAekJr3gvxTd2F5al3h8/T0cFJI2+cFjG8bM2OCG4xivbz8DPguLFLmbwrpgOqOradc7fOEiOqGMbTkNySSMdG4I6j5+8W+JtN1z9ovxgdS8QadF4XuNR0/VZ7W8uIY7eZJbW3he5jySrqPJl3Dduw3Iz1+k9Q+J/wW1jRPDsA8deC9PttEuZYrWOW5WIhlbbFMi7s4UFQO3ykjgV2zbjFcy1f5aHNypzfLsfIn7bnwr0mx+F+hW/hjTLvw/p3h3XF1ePXLHT4L+40B5pJzHO7l1u2to7iRAEQsIVkGFCKSv5k/AK/8Za5qnjfw+niDSf+FzeFLqK1givNRPkaiplWd5YL0zAMkiA3IUpMD84wMGOv3ub4jeErrwdrwvtU0TxNcyWslkzC+hFvKxIYZ2SEKxCCRcgcr1BNfh38Q/g345+DnhS//aO+B/wy8Q6P4NmaWDxOlpJHcT6PNC86yXEMEgUvYhXBdAWkj3ArgMUP6vw3XxM8DGvKDmou1ru/KrfD/hv/AMOfG5xCiq/sYzUG/JWu7t3733P1oj/bDnP7S/jqJPB1j8X9K0dbfwz9sS3ha2v1nyJ5JLdZSjOGMZMgyQqEArjDczo3hbxxHrdzaeGvifpEFr5m2xik0YSSQxIf3MDysR5hVNwOQCR2zzX2ra/8EyfB/wACvg5D491H4qJ4j8ceHEFvodnolqdJ0Wyu5swySzJO81zdupZ5DJJIBujB8sEHPkmmeDl06+8NeErTXotQS4a4s7y7njjna4aKIkyySKUEUh8xN3HBKjZ0NfLYqtjazk8dJXk7qKbfL03ev4teZ04SlhKdo4SL91crlZLm67LTr2W54X4j8O/HCG5a1uviB4J1FL52B3eH8uWSMyZOJsL8vfoM/So9Y8A+M7zUdI8W63rnhC61uzs3sWhmtHEUiOqHeqIflICDoa+krA2+ofEK88NW2narNf6PEVeGREkw20YgeIAF8tjGWBfjnIxXC+J1ub65ns/DPh3VPEU9lGVunRQEWZVPmRRIThXLIThuzheSOPNpVYwfNLod9SM5Kyd/uPnWLSfiVa6nPGuueFLa7a1kuSps7ty8AkUbS2/axywIBzwCSeKrzN4+sdPvNfbUPDNnHF5lx5CWMsku0nazgROVw3BGTnkZFdnoOg6q80kN7p+va5qfinUjo9xcJdxogmjto0mi8o4EeC4QFABn5sNwT32l/CfT5dT1K2j1W+W2sFMSteRrHDeIxVpdzbACwJMWfmzx3IrshXoTV7XOVwrR05rHi2kS/EbxXbLeWY8A6p9vRbmLfp0n2hFXKLLsEh2AlWwwAzg88gHI0Sx8e+MrvVtF0mfwdbyeHNy3Et5Ddpy4UPtwzH+JcDjr7DH3GfBXiPQPDttcxHSoNsbW8SB3uHgjRiWVOhbcBGck8e+Bn5C+Fkms+KvFHjPVNOt1trC3u7pjJv2SSMsxTawIwVP7tt2SMjHUVdJQxLeljKpKdBpXIGt/i22r2umt4h+G+rXtvCsTRz21zMXiJ27WLckkpnv0NdDc3/xa8G276l4h0vw5qHgyFBBfS6XC4fTYWcATiN/lmi3biRjKhmxkcV3nhbwyLmO9MGmT3SamhEtz5hHnMWDtMCwK7MMR14JUdK9G0zxratpevWrWaXWk2u+0wENsrRKuBNvkJRlJ2AHOGyMdawxWHp8rUNH3N6GJqRknLX+vIxYJ7TULKC/tLi01TTdeiib90ROjxLG20qCSqgtlunJx6Vwv7NfjrXf2fPj2/wAF/iJd6c3wo+P0s1z4D8R+WsIh1U3kt03hmcKNit5ckz27cb0QJguhJ4DxR4Q1f4Y28Xi7SLXU4/A83+nXVrEJJ5tDd5AsskOCMxEOzvHj5TkrnBFd34Js/B/xl0jxD8HfGln4k1Lwvrq3DxXcpZQUDRvDfWl1HgwujTRywurBl2jB+U4/Ns4vTbhVjr3PscrftFzQenVH80v/AAX5+PXxcm/bz8efC/SX8XeHPDfwqa2g0pHs4JI2S7srSWaaFxGSUlkj3HeS2UHQZFfk38cvElpB4CjsEtk1QaraRQoZQkyxMFLNIM8AkBecAg8jtX3b/wAFb9L+M3gn9r/XPDv7QUmi3XxC1Cx0gWupW08sq+JtLgtza22rfvMsJmELGaMsdkrSDcw2k/P2nfsx+AfEOmwaidR8aafqOu3tjC8cE9vFBapc3UYMrB4mYII3lbOeCig8V9flVNYelTmlpa9vXsz5nMJSxDlB6a797d0O+A3iXS9S8HzWUTxLNpARJVYY3NtBDjjn0/4DXkX7Reqw3N3ollBLFdtHGFMiP5jDdcodhx93GxevrXpfjD4Ear+zImpeO9G8d+HvG/gS11w6BqdmHNvqNjKYhJHLLCQVddwdRIhwSnRdwr5O+IWk+ENB1ZtR8Iz+fH4mlXUrudZmm8yaWfeTyTtwOMcYzXu4TDc1T3tHvby7nlYud4pxV02tTntQEFvawh4WeN0UY3FQ3y5OfzrxrxHEJdtndKwN7LHEVjAJZWnjXIzwDjPfFesXep/aRDIxieCJSqKW6f7R6df8a6f9m74UaZ+0P+1z+zZ8ENVvrW20X4leL9OtdZnZzEltpsdx519MWDDAWBZWyCD+74r62lhmko97Hz1ZuLv0R+mf/BQHwh8P/AnwU8G6V8OvF/i7xLpGpnT4bmy1/Q7fR73Q7xWYvaSNAix3IKRJIHG4YIwxB4+XfgX4WSTTodSdnGJfOYHIDbVKhcc8ZOa/Rf8A4LHaF8KvCGkfs9+Evhn4c+Gfh+TVLy7u7+Pw7fyXakRWluoMwmJnDuZfMPm4IdnUDC8fCHwsi1WHRkuor5bK1iVVjiNus3mc8nJORwO3rXmcV4eWHrOCcb6fDe23nf8AyN+F2q0HOSf/AG9a+/lb+t7n1noZji2R+ckKFeSAQACOeMc4rfMiNKoh82Xy8ybmXkhe+O2Rz+Feb+H59QlDypbfJGoYEksDkAhR0Hf16g13NwXla8kML28UMY2lOxI5LZ7d/wAafDy5asV1PQzmXNSfb5n0H8PdSt7YWzTx2z28yO+HRXHtkcgnPTNe3+Hbxp7mEQQqzOcqo4Oex6emPy7V8keD2EstlaWkwgmlBG6SURqH5AOWOF/h79frX0doV+pRbaJha3YikWQq2GyTkNx2wQOOOAa/Xl765ban5XL353Tsv66n294BvnNzaW00B892RZg7FMknoTjPPXivuvwV52nz26zwrZZ8uQQBSAFfBHXtjv8AWvgf4Uavoo8PTLPpNpdLaSpLLMsilpY9oCxNwCB8vX0YnnNfa3gDXtOhvdHnk0bzka2H7oysVjG0jcOMYHLDP518JnMeVtcp9llavFXkfrz8Bb6C31OG6sb2B7K4Ik2wK2IsdVKnkY9e/Wv1m8OXovNMtpeT5qhgfqOlfhN8JPF/h7y/scN39imE6OLhZiRNGGBK4JHODjj0r9Zfg/qV7qNlcNb+IjdWZRIo0dCGTCHDoMkAkkZzngV8F7T6vWUz6mcPbUmr7H8hH/B0N8L5vD37QPwv+KVnbeVYfEfws1pNOVVg1zYXGGXB7iO4hP4jHSv4u/FdpGhkN0Nq3schjbGcEEgfQZGDX+lH/wAHBnwQ8D+Pf2K9Y8d/Eq/1Ox8Q/Cu7W80HULOAzk3c7LB9lkUYHlTgorHjaVVv4cH/ADdPiBZJulUqJPL+Ru+OSOvT1r2skxX1lSurWbOPMKHs3Bp3ukfRX/BLn43WHwS+PHxEtNT+HHg34m6L8QPCcthd2WstLEIfKu4phPbyxqXjmDAYIHfnjIr88f24rm11P9rD496rp+nppNl4j1iXV4rVZDKIPtQjuigYqucCUjoMAe1enfCfUpPDvxj8H6jbPqJ+1NNYuIG2O/mxyKiAgjOX8sYyM8jPNZH7ePgHxR4P+Lujav4t03UNL1PxVp0Ul1b3UE0EsTiMFDIsoDKzwSQOAezAgkEE+5iK+KnJQf8ACXls/W19e1zycLTo0ou1udvWz6el+nex8NxzKVSN7dHVAx46kngV02imM2TvMVUkq4wD2Z84wPcVm21okRZJbZJkwd7M+ARkYx6ex5rU09beFZlJHlyBicADHKY/rXXhYNSjNvQK8rpxSNG6nSCKW/kBM0Mez7vUk4XIP41zlrsdsgum9ztAGNuSRxzX2P8Asv8A7OUP7Qeq+JtS1yXVbH4feC4Q0pttscup3r4EdqjsCEUZDO38KsCdu4Gv0Isv2c/gyPDGradoXgLwnFqdi72H2y4XzngmQIMZYkFgGyd2SSd3A4HBjszUavLDW35nThsJLlvJWufl98Pv2cvH3ja10nxZZalp9l4cuLhZQslxNHP5STbGkVVUgZKsQd3bNfsZ4g+IWp2msJ8MvhVNpt78RmQ/atVfEtr4aiYpia4YHEk2MlIupIycCvlu0stb1vxlqPhf4V6pElnbWy2eo6n5Ja30xTOuFt1HyvKo3DgbASSeuB9r+AfB3h/wPpi6L4ds/s2mMVleRpfMkupMfvJpHblncncxJ/KvLeIbu2zupULNWWx3fwC+C+h/DWHVtWi1LUvFfivxi73Gpa1qJElxeTABQzZzhVYttQcDPvmvX/Fvi6HS7vw79mubg659rS6i022KM88Ri2yRy8HapBZxjowB5ANeF3vxIv7vU5vAvwyubXVtZjj8y5vgwkttLiyFbaRnzJM5wBnnr3FelfDPSdK8LW983n/2v4wuWAuL2dh588hOWXk/Ko6YzjjmsaOHliHeT0/rQ6J4iNP3YLU/UP8A4JseF/DHxK/aIbRPjlp1z4ntNX0G+l0PRPtLDTdMvonhkWW6QMEm/cmcfNkbnBr9lPAmteEL3T9Kfw98FfBlhLplvc32sWsejxj7JDHeG3EcDqy5kBO87hyIXzs4B/C39gvRb1v2mk1HS77VtQv/AA/4X1PXDCsoKMbaFZJrcxxbThlUooZsFyvXNfvX4c+KWo+EPGmlaD41t9E0jRPGaWKeGNZju4x/a0UsLTyL5e0YIEq7o8nIweSprws5wUKVayXRHpZZi5Tg2316/I+qtC8LaRrXgJ9a1jwZ4ZTX49Oa7ih8iOWW2O/dhsg4PQMDx7HGT8M/C34yfDjxTo/wksdd8E6I3ibxfdzRXGq/2dbrA8tqs8jafMgQBCxUoCF+6gyQa+1rLWpvhxovh/Tdf/4SPxgutaiYXmjt0ubq1J8qIy3AhKs0KyNuc7SETceFWvxJ8Mz32g+IvjDqlnDc6QPBnivUra2gu7URtpMd3PIwuUfIIytxgAHHqCOvkYagq8pQfqv6+Z6VWfs6cZedvv8A+GP1Xun8I2UszeIfBfgOUW1zPHZxi0tl+0xZXy5UZI2BXY+BkISRnkCuSj8QfDPUdNspIPCOheH57plKwS6VFLjah8wJKi7AVO3GSAw3YPFW/g7YQ+OPh5cXskKTw+Hr64s7a+t1WQu0LbY7kNjksMMDgrznHGKz746Z4a1Wxnu7C0vzaQmZ3t3iVEgkEgeV043ojvGoZSxBkOccGs6lOdFuMlqgpzjVXMjyvwx8TfDNxBrlz42+HHhG08RaaHtIII7e2ljvg8jeS6B1JTIlh4kYbQwJwADWVBc+MrjXTGfB/wAM7bwhdMvlm00yNZbVH+WPBCmOXDrg42KRu4GPm9X+G/w18M63peqatd6TZazqutXrXMl9DbNZbUyssKRvj+FCn3fmIAH3cCuutr3wl4dstQnXRV0RJZjFLbwxRiFLiZmk3sQQoLmUHkg5kwfZU5yqS8hzjGK0G+HPh/qnjbwN448Fz6hoVl4h1PR5fs9zp9lBaymTyf3N0ibGXeGPDevPXNfk/wDD3V/jnoPgv4qeFPDPxG0+41i71Q21npOtQvLcqrzQpLFHdLCYEnkDJJIBbPsZZFEgCBz+t/g5ZLbxrpWv6PPLd6jIIxO8SHi3inKkHDHkoSc4PMY/H+cj4ofAbxz8Jv2hvi54B0DxJ8Sfg9rl1r+pXvhG8eOHxLouuRpfNKEhtJ4i1vdNbyiTyYZo23OWCFRx9nwnnE8POdGptve9kv8Ah/uueNm+AjUpqrDdNaW3/XSx+8HirWvjpHF4G8FfEPWdc8c+D/Es+lxJY6Jpwg0e3kntBi4luJVmuZp4kQfL50MW4jCF3wPom5+H8KWGiS6v9jXUIrWX7QLBRDJbyMyMY/3zEEbVzv8AlYBRnOMVn+NU0MWHgm18NfBnxF4Nm0jVri/uk12SCEvarK3k7JIriURsjrHKoYKMqeFzXcatrGqWnh/Q9Q0sR6lYaTcvZtLMEeG9Mb+XJBM8bl45GdMfMgUjaOpxXBxHNRrxinpa39XNMnvWpSm1rfdfLtc8si+Gd+3jW88Y61otrPdXVxHeQPbTJHcRBIBIIJBgnc8sSj7xBGOhBNReHvD0cnhezsvD2j20/inXoVvdUuJ5DZOjrAAV8sY+YF1UDrgZHQkeh6br8kll4b8TXWhTeK7C78pmutP1B/Pt45XEiGWLYgRlLA5JwARn5cGun8La94PuvFctnLcvY2mtxQ2tmt6IoS7ROwCko7ASHJ5zhuCDxg+G6nNqemqVtEfPnhnwtF4W0bSJdMl/t3VLMiKytbu5RUt2aQRLkkbnw0eSHJb5R0DVRvPAEWonVLWxiSdPCzRiS5ng81Huyd7EIOApITaFPBA6Yyfpzx98EbB4IrL7brOn6zplxNPb3cVy6uXYEgs/Vs7yOemB0xmvmrw14O8byy+L49G8T6ppviXwVJbwSRztHPb6pLsZ1kdGDbWZRluACM49tIT090ynG7sz1q60m+/4RQXt3aQG7ngeQDy3RgEiKscAgkEgMAPTvivg79mnwJqEeoeMLDV7eyh1GznMbQqm8SJ5sh35zjDtl8Yzmv0H0fxRHqng200m98Py6ZrVvHc28xTAhZSjsJVIJIBCn5fVunp8weCLCXwPqPjPxMmppd6zr16mY5y0yx27nbsQc4jUshHUHefSs8PiXSlJMdaipO/Sx08ukQaTZ6Xa2NqWs1uZrRFMYTcnDCNVPc4I5x29q810mys7bU9WtrvS3eztVdJVmnN6shBCo8kZ+XcSi7DzjDA4xXrWg3mizXE954uk1DTp3me9isLiQ28UabQN2c/Pg7j8ueMc8VpS29hOsesrqosLXxDE8sUSsxWcRuknmZK8g7Rj2Yjoa2q4ltWvqYxw99bHjmpJFHb3lnl2soj8rS/N5u7du/I9iO9eT/Cj4f2/gzXvECaLBd6h4F10Zm06C4VJdIZiGe5tsg7otx3GLB2Nyoxla9JvZrdImS2iguAWcHYPkyHxjHbnn2qj8PbtYfHliVl8sYk8w7gf4DnIOTgYBz9K+W4jpxr0ZJ9NT2ckqSo1E110Pw+/4LseGfCfxV+NXwJR7TTdR8S/DfwnL5Ny5WRreee9mmjRmIAOUjRwuP8AlqT6V+avwnstZ0+xj8N6+jahrd2kkawNKrCS2McgQI2Aep28njYuMd/01/4LOfC+P4dfHnwb8SdOjS38LfE7SIdRv7SKVpZbW9hke3ku4UJJUFFTcinB2kgA7s/F3gTw7pHjHxT8O7WCaW1jOoW9rHf2zL8tvNOscjbmZVb92XZgxC/Lk4r2eG/3mCoxvf8A4fY87N/exNR8u71PXdH+D37MDx67B8TvE95feC/GOixW1tBqotPPlRIlF5J9ohdhNNBP5qoRErsFC5VyGP5Z+P8A/glz8TdV1zxAn7MninQ/jL4V8PWVrrd3eajN/wAIu+nLJOkYttt80ZupQ0ix4Vd2QW2gANX7ZfHz9gjWPhPb/Bvx9rXgy/8AEHwl+IfiE6T4fgsNWFhreoMftklvbeSHkitVlcNOEQFmC8NGzMK1/BvwD8JeE/hfoXh34x+INN/Zb8UeINQvLCDUtS0bxFHqGoRo00qW41T7ath5hWCOLy9iptZ/mfbub9BjgnWnfEQUbd7p7fzaxS+bPmvrCjH9xJy9LP8A8l0k3t2PwH8Hf8Ee/wDgor8VdV13SfA/wEtPE3ibw8LZ7/SF8VeHob+3F24S23Wkl4syeZgspZQpVHbOEYj9J/2HP+CPH7S/7Ivx58YfF79uL9jb4naU3h3w0Y/CcIgsPF+krqE9yEmur2SwmuIEiitROdsjqdzjgjkfffjj/gn1qFl4hsfGHhD9qPRNBVtKVrvUdA8V3ur6r4j1HyUPMa3UaQog86MlZHb534PylvZfDPw7/ZLtvDGgaR8WPh/41f4p2D297e3moeMPHSWFq3lh203V4f7S8q2jkjKB7iCSYgyO7CNFAH0WVZNS5lUjrbtJST/Cx8/meZVLezldX3ThZ/mv67n4L/8ABZjTPh7pn7cFv8N/hbZeEoPDHgDwxpjXk+i3BubW+1G6so55pwdihHO6JWQD5WQg5Oa+c/h9C1p4esYJIlknILYA3HbnjnoKwf2g/EWgeP8A9oLx94j8N6ONA8KS37QaVYLd3GoJY2yMBHAJ7lmmmCqoUNIxchRmuy8OQzRwRBVCrt464wPTPsK+Nz+osTipOK0v0/r5n0WT0XhcMlr89z1/Ro5Ut4XuJnjAfc6hzz3HA6Y9PzqdrpWW3uXnRruCZWjRkZhcFWzjGMY478HpWVazSGNAzKW/iA7j8fwrNv8AUBbBBJEZPl2whW5TBJwfQcmvU4dpP2iOPO6yVJnpmha59me5uo4biK6gdNjK+1YnVgc89TgeuK9x0HWWsod8sxlv2kG+IhcMCoX7+TyM4wK+TNO1WQiRnQDzGDFEwvP4e1euaPr4jjSOT5kc5Q5yU6ZzjucfpX61haKdrn5rXr9UfoJ4I1zVLC00a3t72xcShbiKNXSQqASqggDKnEecN1AFfY/gXx5fT2ct3LqlrJLq8cabAuAkYZ1U8AYIGcAZwDX5M+EfFckMscv26WN024AbG1h0I9/evo7wz4uuLdYrlrw+RvVyEbjr1rzM4yJ4mHOrfcdOV54sNUVKV/v0/I/bz4S+O57SbSJbe4gutVtHcB2AVdrIVwduP7xPOeSD1Ffp38GfinqGiJYQ27RzW6x7SWY/Mw+UtnOTnGenGa/AD4XfErTX+zi5njLyqMNkHc2fl7gjnHXPQV+pfwT8W6Xc21st3LIlwUwsqHYsb9dvPJ6HvX5Pm2Xewu5RsfpGW472lkpH0v8At/6Bc/tNfszfFr4L31nBPqninRJvsEQIAF5GnnWxyxO1vNVBnj72eK/y/wD4o6FeaNqt7p2sabdaXqFpM0N1aTxGCWGQcMjKwypBzwR25zX+orqV5BP5d0uuW8k2CXXaMy7U4GSeck9cnpX8I/8AwWu8G6rp/wC2747vtTs/Ig8YWdhe2H7lIV8swCIrkDDlZI2BYkk8ZNcvD1bkqOHfU7s1p+4pLS36n4GRX934V8U6Tr9jczW91o97BewyoNrxvG6uGXB4IZeD9OlfuT+2B4H+C/7R37O6G9+JN74s+IU1xpGs+EdQSZ0GhvKzRX+napbSMFw8LwubiPzWEkSAlUzu/EjxLZSQ33kXGYw3DKRyD75xg8V/XN/wSk+In7Pfx3/YC8JfB7x3+z18NPHvxK+COvaiviHVbzR/OudT0oH7bYzyzxBXtykbPZfaPnKrHD8jEZX9QyeCxLlSl1XXVf8ApUf1fZHwOcVKmEiqkYtq61Ts/wApX+dl3Z+IUv8AwRr+Jcln4Z/4Q74j+Avi1eeIUlH2PwZatqwtmSPcdzK4LAMHjLbF+aNsAjBJ4K/4JV6Jo+t6fdfHLxTrVvp81tBcWdjbxRWcerK0yqY0vdxiVzzlchgEYAg4r7V8La5qnhL41alafBnxjrHwtsvF9xLazJqDyLY6LZyXZWZLgW0Za9trdRgAld5AJVQzAfob8efhh4q+H2q6TqWgfFPSPjv+zwTBNoXiLQ4LfYmqzqu6ziluMfZVU26lIWfb8oUNkE15mJweDx0J1MPFpxbTUXzL/Fr73W/T52PSy/FVcLWhRxL5uZJqUo8vydly3tpon3PzJsvht4W+EPwrufh74L0/Qm8MjWTewT2rSWzQSfZlZIV8wkzNj/WO7FvlTJPDH5o8eTSeKPDXi7w9oOoiz0TUZGvpb62CxSSyBFSZo2wSAWV8n720kZwBX6O/E7wzceM9H8afE3S/BOs2/huazmt55H0pLCza5icM8UcYLkFN6AZkduxYg18ZLb6DpXgPQI4Hj+x6pp/2YWUcIeW7Z4HSRFVcCNlkcsXB4wckV8ViaNTAv2dTV9Ha1/M+vtDFP2tN2j2Tultou34WOb8IeEfD3wy8MWZ01NN0rTU01DJeliVVWGW3v/EzNlgQTk+tcfeXHiz4mXj2enyXXhbwLcuypIqbbu+Tccoo6xqeBlhk55zjFdZp2hWkl/pVl4qCXiLZTrZWW8mCzlicAtt/5avh872BAPQDIx3Gl3VuuqRShYfttoD5gAIJGeWI9ev5V1YKipu89TgxFVwXLHT9Sf4b6bpnhmzbQ9J0w2tsxMCpaxBpZX2jazHHzMTxk5617Jofh21S6tUuxPHNJIGnl8sAwjeyFSxxjG455GMnpXLaHDFHrdqLYXUrybWyF3o3z44wMjv7dfpX0ZpGjxNbC4VYLqC78yOfEvmoUZj8vIOTlj6V1YnEfV2rP+v8jKjSVdWZ9i/sVal4q8C/G/wT47stGfxhr+tWV5otnbx3ENiI3kt4ym4fc8vELDEjHdx32mv1P1i58H678MPhz4y0TTPEM9t4PmuNMjtZIprqW10y7vJSYxFG+yZree3Rvk3ugh29GwfxT8EQW3gz+xxe6jF4XtrK8t2N9DLGv2WOMqPPzJlVcJkcjljyCK/YDQ/iL4Ih0C10/wAGeN9H8YfBmS183T/sFu0t/BvcLc3BkKyRXLs5eXDjJYOeSxz4OZzdWUajZ6uA/d80EtD7T8F+MdQ17QZPDzzXdrc3NxNCZ7WRG8pZBKscyj5nQAxs3QkhXxg8D8p/inFqifGX4o/CXQ9UupLzxRc6HK9xfCOIXi/2aoabzZAreYfKlTDA5YgnBBFfczfG74SWuv8Ahu9tfEWvwW2l6bDp9yIdA1OUlIY5FhG5oWZjukYsWYcSZDcsB82eItYstb/au1X4neJ/DHiTxH4SttMs30nUrTS7ySczRBHTCx4dMM7q+8dBgcnnx6CUKjmn0f6WPSrTlKi4+n/BPqv4beM9b+CXwg0bRfEHgfxHqdpoW+3ub3S7b7SCkrSShDChEibFbGckZA55ArxyD9pD4UeJrlfC+nXF+kkNncWdrqOq2DRvEzJ81uQUJ+Y7CGTqY23cAV6/YfGzwrYWN9oz6P8AFHUoNQlFw8sfhy4gEgAXhjIfv/LtJJGTXmWqan8CPEGv6xfeIvgX441a81dCXuJNEs7eX1Eg/wBKQ5DEkkDPTnGQca1b2knKeppRpqEVGJ9rfDjxV4WfR5IU1e3uIcQ291FGfPNs4t9vmgIPNAbB2tjb0xgivF/iB4s8Ga5BYWUFsqvqVxcW7TeRxdxiBpVuEMiiLGUB+cg5XG0nFea+FfGemeAJVvPCHwZ+Itxa6hvF3H5Fh+9YEMrxb7s4bIzjcuAecg1pQftG+DfE9/qHhjTvhZ47h1p0Mr2MZ0kvbkurNM0a3bnyzuYZ287gOtYSk1K+yNqceWLX6npHwem0+28Va3LZQ3OpeFrnT4ZbO5W6QvHC7b1ZimSqEuAAMkFGBxwK/In/AIKefCj4oap+0P4r8Z/Drxr4r/4RjU9J0vU7uxS7j1KyZ9hjjmWF+bSeLyOJo2R8uCA5XFfrdb3V5Fp2peH9G+E+vWC6rHvtNjpZtbxpbqrRh0T7n7svhvU9q/EX/gpJ4i1/Uvj9NNeeA/GPw51PRPDdlajWrQzwSTW0bzDzp5kQQTW0jD5Q8bKTk5Unjvy/EclZO99H8yoUeaEk+tvzR/UXfeC/HF1dabD8c/8AhW2n3TWT3VrYeHbq6uGs3eSP93c3E4QzhsBVIRVJ3ZBpIPB3hGymlsdPtdXuL27vZLdkhvJNkkkkhZiELdQAZTxyFY56EeA/BPTxrfhTxx4v0HUNbmfU/EurRWUt4wZp5IpJbYNM8iDkG3MhwASG5xxXc+HfFvh7Vtc8Cx2tk+nOb82tqTqI0+fVizz/AGtELHLsjo5YY3GMHHArlz6vLFYmbk7cum99jnyqjGhRhGOt9drb67Hd6/4A8PaHp3xN1Sy1260KX4ewSSXAk1G5LXUMNokqMY0dS2MhOTjJC1zUHwU8NN4R8Pz+JrvUJdR8QW0NzdWTStdW8c0yLMY8TlwNmxFHqYu1egftZeH5NH/Zw8WSeE4rSFNXNnaXK3RSSX7LeazapdRgE4P7p5hkHqy46VPbW+oawL+I2L79KMFpYSmVcXUUkEa7wDzhN5UKc98cV82pyS1dj06LVW77af5mT4Z8IxXGjMLDW/FMFoAktuGvN26PITKllICkrlT6DPesx/htCYdV8QxeKfFFncSHyrnZPB88kbMI1/1fP3m59yOgqXUNZHhDU9G8C6JeSi20mxjge5n+TMUa7drljtBcqQMlSM1oG+vZr19Mtbu0vLe7ZpxfIy7VikTPzLnqCXzhcjv1rWFSotXLRmsoQlqkeRaroK6N/Zlzp/jHxTOdYkeKKzcWrRMWY7hnyw38W7rwSBXJat8HdLubzULHWb+W5iih8tUnSIAoNpBAx3OCTnggV7TqGnW+rWE95qNotpqUdsnlZJb7CzfvTKBgL83ljH5eoPnnjfXhrML2VvFG/iOzMN61i+Y1lBbcjKxGMOM8ZIIHNaSrTeqMFQhazPKpfAumpoljaW2ua5qVtaIbREkSO93KSWETiXIwobcpxlQa8y+JuofEHwXo9hq1pb2fibwjaTGC5WK0jt77TSMKWi2AJMjAhdpCsMcE4wfbvhn4A8R3VxrdzrV9dxx3LSXEdnEQIxJvePa78tu2BckdRzzkAen+JfCFhb+DG067tpGsriwPnAsJEZ95cSA9T1zXLLFTi+ST1/r+ups8NFrnX4n5pab4k0P7Hca3pF2dU0m7umFxc+aqfY3Jw0bxcsrK2CVYA/Nk+/U/Dy9MvxB0RRC2y7imnWUJuRh05b+82/IHsfSvF/iL8NZBq2p+LPBGqxeCvHN5MBPdRxK8GqGPjyruHgSgqpXdkOo6NXAfBj4q+KL74n2PgTXtJuvCfjnTXi32J8uaG/hMgH2m0lyDNAd+0/KHTHzYPXDOsRfDzkt7F5XSvWgvM+Y/+C4WoWmo/EH4WabF9pjk07we77y2ArSX9wN34rhvpjmvyk+AesadJ458D6HJqkejy65qloInvDHFaweZKqGV2laNFXO5my6K2Bkjmv0Z/wCCt/jrwn48+ONrYaBf29xrfgrQotO1ZYJ0mSC5WeWQRkKc5VZFDKeQcivyq0Wy3i/nvEjKpGNmFUnJB8xct93jByT3r1OGZyoYOlJrbXX1ODNIqpiZ28z+mDx18cvDfxr8U/Cz4S/DnWPAPiP4yprNh4qktl1eTXbjwxLZafezzpJNc3EtjYwhZLeAwWiysolmC5ZAy+peBbr4cnSLeNvCvhn9qlf2lbbWjrtzNp0WjXHgK0hlMl5Ps1GYJaae3m2qvb2u1vLXzHeQvlfnH40f8E9vgR4U+CGpfEb4M+EfGX9v/ETwPpr31jrfiI2Vjf3YfTnuIbPT4F8y5XEEjOFB3hiFIzmvevgZ+y78Gvh18GfhPd/G/wAY/Hj4m6349Fjbah4KLumnabaizXy9Ftbe/FtdRxRPJDI2GlO1WDDZmv6Kp0qk1GU+va5+QTxEU5RjF3Xe2vz7emp9g/HX9m3/AIJ+al8BfDuuWvwu8D3Xg3xVp1vpfhvxT4F0O1u7nT7v7FKs2uT30CROIIy4dpndlJhBbsK/li+LPhP4rfsd/ArxZ44l/aV+FvxTt/i9FP4bI8M6u+pSXcMttvkDAqYmgxIh8xZD84YADOa/cX4K6/4E/wCCefxY+LHxQ+J7ftMax8ANa1h20BtUOjX3hrwxDq9wsGp2FxDbTMwlURRSKAZAIl3HaZWz/L//AMFT/wBs/wCE/wC03+0T4iuP2f8AwX4Y8HfA7wcx0zw9ZaFpcOkWtzDHIxN8yRKqPJMxZy3JxsXOFAHh5vToYKHNUiudbO2vy2f5noZdUr4iV6bag91e/wAmtU/XRn54aJFNeaz57vkSyb2DdC394+9e7Wt/HFbiJHUICBkE88YwDXzLp+rXazKYYFMu/J2K0jAY6e3X9M12trqWqlt8t1dwo3qUTnjIGTk9q+Mo0fbTTd7H0NfEqjFJNXPd/wC1HUiRCApwMr/L09/wNZ9zfylB+93sy7iGxwN3T3NeZtfy4jIuZp32jC/vGyB0J4AHr7V0OnRJfsBK+j21rCCHkmliR2OP4UdwxNfZZfiKWASbifL5jCpi38R29pqaWxBVzbyAE5B6tjp19663SPE6Bo83JZmYZBO35s/X2rzEXllJLLFvtXhixtJe0wfnyOMsewz9a3LHWYYUSUC3QsSQPPgIPJ4wAMda+zo5rKnFNR/H/gHyVTBJyfvW+X/BPoOw8ZskcRBiV4VKjbgFmJzknHJ7V6Vovj8FYIri4niXjYoOQw5+Y18r6frUi3Af7Zb+acbSZYiFBwc8L3ruIdXt3AklvUW8LAYDxrvOevCYFaSzyovsfj/wBLKqbkpOV/l/wT7v8A/GMaRc2recvzyAKJMlXIycdOO9fp18Hf2mBJc23nyW8syDBLynaOOqjGMc+3SvwM0bxTeWAguJLyO50+JzCyx3MHmDjcQuUO3Izg4IzX0B4J+Nsmj3lu8ksUNuMmPMtopX5jhX3IQW6nOB2r4rPK8sUmnBfefW5U/Z2cZH9QvhH42adqmnltTuLSJbhDFGciVVbHUgYOeR3PSvgP8A4KI/ss+EP2xPCtlC+s6b4f8AGfhdPO0bWVt/trx8Ye2kjVw7RSBUBUHIZFYAnIPhXwj/AGnLIxWVlc6/ZRtIEkIafRCpIZWG1WdCORyCeg544r7T1Lxv4b8SWYutPm03WYLxd4/0HSJGjPdc2t/IRyP7oPtX5lVrTwFXmta3mfcQX1yla9z+Dv4ueEP+Ec1vW9KS9g1S40W6ltp5VhmgUSxysh2iULIBgD7yqwyQRxz9K/sH/tN+P/2cvG3igeBvFWq6DpXxT0WbwzqwjSOSOWOZd/ltHLmNiSGUbh0dsYya/VL/AIKTfscT+LL7UfjX8OfBdy2tSIX17SrXSr5ZNQbO0XsQG4bgoO9V5bAIBOa/n5aD/hH767FtbXen3MUg8yLeQQyvn7pUEYPryK/QMtzKGOpqcG1Lr5HzGIoujLklZo/SDR/jh4plOmeGfEerz31jbTTWmnXd5ClsIbV3DRvHBEREpACBpCpdiDkniv0c+FfgpPi/43m07wv4+t/DniSa3K2CJPJCjIls7rJBayKjBjJHiLDrI7uW4HX8t/hR4+8F/Fu9a78U3el6R4wtdPW0uZLie3sFUxokaXkMrIYS5VBujcqxIZ8/eNfYOg6JpOinSkvPEej+G5bZ1nt40uzfXs0xbdFdM8AZFZVKbeRgdgGNfH1qv1GrJezXN8+uulrP12PrsLSniYRftW4fLp3vdfJ3P0p+Jfg3wt8AdKufghqnxd1bx/LLosPiS/0O80y90ltOuZbaGeAhCSs0+WlYq7AMkag7G5P5T6l4csNC1W+0izjNzqF5NJdSvgyDZLLzDEpJMKB5GfYpx9496+wfix8JvGk/h7xH4x17xtoepXWj2K31g2rXiTX8621g8giMjZZZTH84jc7sou7IK5+Y9MtEmvbG91GG8/tSK1g33AKtFvcyqHZgPmG5VBI4wUPvXsYytHESc4xaei1b6erdjgUZUlGDd1q9kvySucZ4saa2Sw1Im0EUl5FAGORtzAFZWPX/AFikH6e3GZawG+uoWYu3m5AkXkZbOQ2e3Hcd67/xZpjXun6vayq8clkFmjPzMkjhvv4wMYJcHqBs+teF3/xIs9Hh0y006ObVPEd2sbS6dp6iY7sEtuYEogyTyx7fjXVhKrppO2p59aGr1Poqx3WV1o10ZblbWOdE3CQIFjZCuG9PmOeo7V6Jpfxn0TRlHh3QLWTxj4kYmJo4WzFCQSwZ5OvTk47g8ivkiwTxZ4vxL4m1mPQ9MYEPYWbjMnXKzTdTxxhQK9q0fw2vg6LS4LWzsNL0x2+0rICY/lBY4LEYLEgdTkhqurTdRc0x05WfunpUml+KPGeoQHxxImoFHBGnRO5tLRGGdzIMeY2CBnnljya/ob+DGq6f4U8GeG9AsPCvhXw14J1fTYP7JWFRPLBNKjubU+ZgBUTGSSCWJ4zX4efDXVodftPEW67jsmv7NpYy6lZo1ysbcHkbSOBjIytfT/g74naBZeEtG0S3+MX/AAjMngO/a3kkktv7QS8iwQ7SgKAsZnjUONxIIIBGQRwVqMcRBRWh0QnKnP2j1P1I1rx14gtrfQL6Pw68C6M6acLa1WO1ZZgrEuzKMeWUdELtg55CkrVTWvizqqwTa3M+s2WnJHBFLYKIYmS6V0ZYd7lQ0cgG0npyzD5iK8wk8Y61LrfiLxHe29lcaayu8enzNF5mECzRwABn81pnO0dApUZLElRuTHxL8S9Ev/Fmj3l94Z8a6PhLLSmYrt8+3iuFtpNzPlj5hO4AEAMoUFa+ddF2v2PYVXofR/gf4lT+OvBWl69pSPpl41sJpkCo5W4Luk6MpAR2ba+JFZhuPP3iK0/gtpd/4jX4nXnxEimstYvNQvLjT7iznYrDDkJEyMTuhby/KDxquDsLEscEeYeFdQtI9IENlp+oaONYsbW/uECNH9qu/MgV5Y5FA8uNkWQkHDfuwRj5gfqSPwxoOr/D/wAV6HMlz/Z8ayvJ5eIXQmQHcsucAsszg84I44IOMKnK+ZWNaTb5U+5U0mK50bWxpt3etcwWMLX+nNK4AvJjE7y8kDewZUwWxkbufX8yfjJqVt4f/at+I3j+0S9s9S0bQrORbW1ZVa5jSdXM6vuwQkJKlNpUqC2QRX3JbfEXRPhZqPw+8JavrGswX6s0XkXEU99JdW1kFIDs2QGETGTDNubynZcgNXzh+1z8GLfVf2wvhNfeH7ye0t/irpn2OGVVcqwgt1mLuoKhg2NhAwMrz1OMqM/YVU5PRo1mva05K3Z/ifo18HfE1v4mtD4tgmm1Xwx4lmXWrC2jmIlgi2RRzxZyRhZWkZ1zsxIAODz8K/8ABVL4b+KtW+Dus3fw80i7g8WLrVt4ezETCf7F1G3kiki3KdskJkWA+XJ8oKkqBzXuPwm16/tfib4fsNKvk027sfDF5d32kzRJHDua6Fus0LMBtUvuQgsfkCLnpXs//BQ7VYD+xF8atc0TS7fUbjS9IspokaOOWWB454i05R92BEEfK7SMDBwKwqy+r14Tj/SOzAXqe5Ld/n/TIPgvd3Pg7TNb+G02uvq3hWyvvtmjX88pmS9F02ZmL/MZjuikcM2DmUltynFewfBDT3+NfjGzW3ktLHwP8PrltQEMcUUces3cy4DKNwmijieIkkoA7jqQzZ+Dv2eP2MvHvwq/4RXTovi1rV34Z1eaHWdZEkJS60i1e2ljt7aNZTLtiG5UZCV5i37jjNfoJ8B/EeoeGPiH4hi8QPZRb4HiCRhXtkgEwSz8lwAcMu89Dk55yeYx8bVZcrv/AF5mFCXPBWWvS/TY679qlrW3X9n/AODmnJBew/ErxX519p5UebPZ6fBJeSR7mJIXz0gYk9cADg4rr9S0q48MS6h4q1zT7oxTPFbxT2wiWOCEqRFKySOpVo14HXBYkjGa8X/aNtxcftPfsl+PLbWbC40+wOsWflqPNiG60mdpg4yGyq4I6givfvilL4k1/wAPaPBNbaabfU2x5fmcTB+I2OVwy4KgjIPJrwcbJRcEnbQ7sCpRje19Xc5LXY9AuZ7vWoru60rw0sEkN19ojjm+2h0ZlC5AZSH355x6jrXB+D9J1aXU9UvpJNMms47aD7JJFGsUU5mAMk2wHGQCUJA+65PU1lf2R4uudPvLCC88M2UFlPb745YbidngLPHLEu5wCNrEFjnhvWug8J3uq6D4cvba+Sz8rwtLNFAttBiKO22xlYGzkqRjaDyDuJGCM0QbUbo6eVX3LXjXWdX8DTJcax4bu9R8Javbyq13Zw/avsM/lkJHcwgGUx8AK6hsBSSRXjOmz+F9W1rUdSGqIur3GnRLpzNBIkc5iVn4JBVFJmXg84Ir6Q1TW9O1TSNY1W9V1tvsnMu0q8cLReWQo6E8/wDjxz3NfJt/HFYrp1lqfkaciaQhKRS+W6tFPHhlPAKno5GcYUdxWdGrKT5WVWpcquz034YeIlv7zxRq/wBnj0vTdWJkhtW+YhyTGSOTgYQkckYfNbPxQlnh8Fa9c6fbGZ7XT3Me1T+8Plkt8vbrjHtXPaPZQW/iSzeB5PtDLGjeUd8U2E3fdP3SAG+ob1FeqfE14YdOaK0jSebUPKjjiRNvyPxI+0dMIHP/AAE1zV9JqTWhtD+Hy9T8vNf0qKS4vHCCQmRyAecsVOW/PgV88aPo+haj4y0Kw8ZW7Lpt1d+RHdh/Ilt2bgPDKPmicdQw5BXv3+3vHOjaV4XtH1LVbmOytWZ5C4RuSAT2HbNfEXjufTojqNvb31pdLZOrSiOQM0IJDAn0BGCD6GoxLWKi03qjOivYtO2h/NP8XdN8V6N4/wDG2qXuo6h4l0nV9UlF1qc2Zb5AJ5Sz3MYXMrMTlpFXdnJK55rX+Gmiap4m1TSruDTLpRqAgjVUDskskxCtHtBOWVgFAAPLYOMk1698YtYs/FXxN8S6pAsVnZ+IL+7UwxRqq4Z/kIHQHaDk9zk1yvwUvvGNrrHgzVPD11q+n3+larb2bPZxR3sitHcAJeiOQqhlGzI+YAkIWyor7zCUY4uFOL0vb9Lny1Wo8NOWt9z+prwZ8E5Ph3+yzL4c/at+L+o3/gS+srOAakZk8OXGj2GyIvazXNptlupYg7Rq5dlwkaOrYdq+Ef2wdH+AXwi+D/w0Ni+p+OvEGv6clvc6dqeqX+sx6qIrRILPxBY7916LhIILfc9tgKZFDlRkj4V/aI/4KbftoW6az4N+Put+KvDnwW8TJ5mjaZoqaX4fvtWtpJ0DqpFtcuJVMVxHLGkwiid+GBVM/mP8Svjh8XfiU0moafaaX8I9Ant1gaOK5udR1TU0C4El/qN28l1dSHqQ0gjXoiKK/YMw4pw+TRVKeklol1Pz3BZBUzSXtlK8W731+75H0j+3L+1J4v8Ajd4e8N/Cnw4y/Cz4QaDbj/iTS3ifabmZim8zC2ZgIsxI6qZfNLMxkdj8q/kdq3g/wdpdvNcSeITeagR91FTrj1YO347q6m+8PwTSlr/WtS1CReWZnJzk55OanXw5oaS7PsL4IHL9epHf2r5CrmH9pVfaTjc9h0Vg04QenqeIR27Ru6RzTeSnzNgjn0GcD/IqrNqGpXCPZ2AuUff8x2EFcd8n8q+k7bwb4fYDMdtAOPvEnGBnp6+n17Vop8OdG2lov+Wp555wR6Z5/wDr17OGkm7Rh+B5WInyXbf4nzCmnari3UpOzyDJ+cjoee/Bzj61t2miavIFjcbHXBPIPfGe/vxX0rb+ALdHKx/LyWHyjOepxnj/AAwMV6BpXwugnKGVYoiVUDC5zgYz1+nIr2qOHbaaR4OLx6UeVs+YbLwrqbJBNbpM3nAg/wAIJHTHPPBzmuhs/DutQoQ8ZEhwrbnXdjHU85x0r7A0L4cxpII1l86xgwykxDcOmdvPGf6V3Vh8Kraec/a7C48kKzZWIgkge3Xnj8a9eNK65rnzk68pT5ZNNHxPbaPqiOyGMqXUEHdkg45xj/PStaW21K3tllKyPjJAWMtgY6kgYr7bsfhPLh2Gl3CHbhf3bAD8x16/lV+7+ETTyxwXFlMFUHKqpUMenPoP8azqUuVb6+pvDFqU0nLQ+FbXUbgQoTb3PnLyOntnkE+la39uXVxmVv8AQ4iOGZ9uT0wfyP6V9ot8BLqSNDb6VOAQWXZEenPOcY//AFVhXvwKlaBFGkyNklnbZ945647Vi8ujUjZy1O2nmzjP3Xp2PmzRfFGoW969vBNcyMOWJRsMSSchiB7dK9b0/wCKHijTjarZ37SWtkcMyxxpIwBJKswG49eD9PSu70n4BXtzePstZIiitKolTYjYGduSOpGcD8K6Kx/Z+1++WNjb3UfmHgeXjnGQOnoK8+plXtY62aPSWbxoy3aZDpf7Qfji7Sz029luPIgbdEyzbJTkgbWkwucdQDwOcda8k+JPwb+HfxLubjWrzSrjw54mu182W8hJdLls8NJGOCT3YYPHOa+g5/2YPHqMLi20TWdQSFSSY4GBPGeAPve1UW+HPjzSUSK98O6pYPhTvmhaPcD0PI9x+teB/Z8sBPmpqz+89aWZUcVFXn+jPyc8YfC+1+GuuR3WoSalp0If9xfW+JopV/u5cNtPqDg+nrX3N8KfjDovjXSdN8LX+v8AhR4LEKotFtv7NnvFCbCWkZj24+V1U5yynqPoW++H8us6W2l65ocWp212CGWRFkABxwwI9+/Svya+PXwY1b4ReKC6RSadourNLc6cyFiqY2s0OR0K7lH0K+9ZYqlSzhclWCUls13PTyvM5YKVoTbT3T6o/fPRpPgmngqC81HxRLqDXFvI0t5aWM9/Np9nPFslt4bZc+XJlYo2MkTAqwwykbx8farptnaW/wDZ1/O99bX9q8K6cIjNNsFwkkRkUY2FsOcsMc5HTFeC/sMf8FHvE/7HnjjQtR8Z6D4f+MHwz1izntbi2vbO2u77TBNEYpJLWWUeYksfBEZcIwJClN5avorxv8Wbr43eNPir8YfB99Z6tJ40vn1KO9NlFpwmicooUwRlhHhVK7QzEFeSc5rmqZasBQpwlK7TfRbevn6Hq/2j/aM51Yxsnbq/ye1vU8Y+IN1eatqOpWHjO8i0TRLyNnttKsHYvLEmSwuJFPzHn7oOOg6157o+mW9z5NppMVtpVhGwUOkYyylcj8BhuT2wK9D8T6S7311fXcaz31wolSZxnGxfnjTk7AQzDgDkHJzWdokscOoFY4GjjldUI5IBK5X8QQwwDzWmHl7pzVVroeneEfD2jy6jb3EcVuXh/jxnlC2W+pA6163HBpOvXSWerWSXWk6UIJHJRivMmQ5BGMA7c+wNYPhHw4trZ3rXep29o3z7CwYsrNgrkfxD/D3r6J8M+EYL3SZNFjV5Y761Cz3KIJo/MbAwAf8AgJAxj8a5MRiVte9jtw+GlL0Zzlh4Y8M2ieIdK0q2m0eO9gw4t1VBGp5woOSVLoS2OeD04Ne0/DbQvFsvhnxJe+AvDFl4q1z7Nf20cEkzTJIigGKF0kBSQuHO8lgwVTzk84kXhXUdP1fw3p1/czapZ6vZ3EEYcLBLujdJliZ1PzExmRcY98191fs1a/4NOueJPB2qz6b4dfW7W4eC1iXezxN5eXyE2wyox3YOdxbvtOMqeLVOLs9Sp4dyatHS54v4I+IelSzaBD4xstQ8Hagml2ukrBbQy39lps8crIJSojXOAAS0nK5GCDmvsP4DeOrW61nx7axaNNGfDl1Et9LZW8p+0rLM6w3Co+wZaNY2CqCVMkgPI21bfwR4L8ReEp/DOvf2dbeIHvXZbk6ceEIk2nMWDkddwx94cnJxR07R/HNl4YuNa8KCw1nUFBnttNu7W9028guYZIwjO8QkinUYlKb8ACU45G2vm8Vi4pb6nqUcO21daf5H0H8OPF3hXVbvxp4K8JiOLxFdIdStra7+0pGr+YqsgO1FRTJNHIyKRjzSexx1s/jj4w6JYal4S8d/B7RPFotLFTcx6DqP7u7yjSFoUmRdwcKw2ZzlRg8jHllvHoWtjSdX8ReH/ihZeILCAT+XpNjfJJHcSDM6iWKNAcl2JH3MqK+3tC8d+A/GOiLYX/hD4k6nfOE8xNS0oxo5UOAwEsi42uDxtAwTgDOK891L68252xVvs/1955J4e8NSfEjRfD2q6jdWvh7W7AQXtzYX8EU99FaXE8UbNgFvK2fNHxlWJ+YBjXmP7X2nTeDNQ/ZaudZ1k6pq/hPxbNjUp2Cyra7g4sj5QAYCNthIXoUPGePVoU0zQ9ebxlZfAjxpBqVrHsjvrCDTIQqGZHkQyPdoTBnBZSGXkEhSpNZH7afgPxX+1n4T+HCeDPDb+DvE/hLUXvp/7SvbRUMMkaguXtpJQeQoBBPXpzVutCU4py0/IunTcVLS+j26nimlW1xpHxI+F/xn8Gapqtgdf1SPwfK1vvvLe+tbi8neSzktpASgjRUQyIwBdd+PX7m+PPhXwzqX7N/7YNh4ru9X8J+HU8Da3Jd31qIyzm2sppWuId+4MfNiVh/CxXafvYPzLoXw++MfgrRPANqfBnw20nS/hrdTXk5TX7l4tXuriYNBIYjaIBKr7EVj3HBGSaf+09Y/tZ3/AOzb+1Dp3wm8CaR4v+Ivj7R51m8OJMVPlXMfk3cam4kET/uC+IyuHI7k1z4vFUq0owjLbQ6cvpTjOM5aXab379/uR90eAvC/hb4jXXi34qWPifxBLceJJZPK/sXxRe/ZJArYFtHHHJsEe3sqBRuJ70ln8MNK339xr6eINK1UQRz+ZFruoTgzPcbPJbLDy+sXOerMccc4nwDbxB4c+GOnXHhnQtF0++tIopdV0eadYZbFgMT25+RtrEAHkjcpXacZNbk3xNk1W01HwjqPh6eLxJct9ongnUs4g81iAC+zK7VwuO6k59PNxkXUqSnznVRjGmlCK2236HG/EfTPhdb6LZaLM+r/AGP4ezTS2d4NYvLS4sL+UnzWWTcCEYyPnLZOScY4qhqEHhqex0a4tfHHj7zL8orJ/wAJNqYNvsTB3BnZR838a4BAyM5Fef8AjHxG3iHTh4E0vw9rUWr6xFJZWK3qrbyRLsKAcvh3AwVbcTwOTWZqPi2w8LWWkeE9X0/xFo9xFs0qwe/s8MWFtHE4llVmyheNdrEAEvg8nFc1OKqNKo7/ACRvHRNw/NnsS6FpWoQ3kmnePfilJJpkDyoBrtwftPIXyzuLNkHcR6gHrxVGTQdPl146Na+I/iSLy9gRcDU5H+0lWJ2sDlcbQ/LccEcVi2V7c6nbtZavpNzDqhjinWUSod4jLFhuQg/wn5emGzXReD/iNZ2vivRdOa202xn1yD7M80uY0fzIXYvD5jYUqThsFsKGyBWk06TtHVen/AKjBVN9/V/5mVfW0EvizVfCfhrxr46SHw/pNvqckpvVVZfPuPKMYQxkYVRljk/QDmstdC0jU/8AilrrxT4svrWMLCZGlt7iJC21wfMWMgMcMeP7vOM1wvirUb6L4x/FW40iC6dIrCy0W3VpCJMrp5cLnAUsXdcqBngtjAzWtqf9teFNO0fUPA9vZeILfTSJ7q0upfmkiUKsLQkZ8xniztXb82EIbgg62taT8unockLT0v8Aiz2Dw7oej38/h+ys/GfjJ9SupXkXyJIIpIwHMTPISMKARycZ5A7mtPxhb/F3wc+mSTaWvxY03TGkImiu4dOvkj8srt2hPLuHXex+YxYHck1nfs+vbeJbPTfG2oWX9nXmsT/ZhbyJ5TR273bzCN1YBlmZnDscdVGOBX3rpWl2F1Ne2JB8+VcHvgYAbOeOcHv0Fefi6aqSjHujqhU9jFy/4J+OvjT4q/Dme4fQdR1ZND8QXSyA6RrJSyuMuSfKCudsvX+At92vyj+Pmq2egQX9/Z21vBrV1E0BkUBR5ROAhA+8MdAeBiv6Fv2tv2ffhv4z8F3V14i8MaNr9q0UkQ+0QpMeSed33lxjPXjbmv4+/wBpvwz4p+HninxDa/DDxpqD6Dps+waZqjHULONcsCsR/wBZCo6Abj1HNRl2BWJqcreu/wDX9IyxWM9lHm5f1/r8T5j1OxW+15ZJBKNs0jhgx+VjuIHX5sc47cU7wF4wb4bfBS4+JeoMLDUvDN+Z7MTLlppYWzBb44372fn/AGWz/DWLqPi2T/hHNUs/Evh3VNC1e6ASOa2Zr23Z5G2Z3x5eIYZsb1GPWvFfjD/bHim60L4YeDLS/wDFmkaU7azc/wBmQtfv9olUIil4g21FiUHBwcuxPYD7ejKdO+mvQ+brOKV7nkXi/wAf618VPiR4p+LHiTRWbxP4vvp71Qr7bexEjllhhWRi2FBA3NknGSScmsFpb3U3zdXVxLMx248wyBTjuABXqEXwm8VaJAh1jSrXQhKM/wCmXlqszDufL8wyj8Vral+Guu2+kHVZ9XsLPSxhVYvMAeCc42AEDBGRxkgdTXRQy7EYuq8RVTbfVnm1cXCEVSp6RS6f8OeNWmmPDslXTdRaRsjAiaMkHjALAj8fStOPTZy6Lcae6ZGRLNOp/MnB/wD1Vj61rugaJ882o3d20TH5o4HcDB6jLDJ9K85vfjR4X0yNhHpXiK8k7FY4o8HOM/M/I9vrX1ODpKm+WUvzPmsRJyd1H72j6f0fRLJFhhuJfBQAZpMtLLPKcgcHacemOPWurtdH2yJcxwWUMQcEBY2YDI6jIPHHQ+tfFJ/ag06xRXtvB2qztCQF3yxRF+c5JAPqevFPH7b2saZIDZ/D+0lkCkD7RqQwBk87ViAHBIz+tfQ0cRh6WkpP7jwcRRxFROXLG3qv0R+i3h+N7cJcbNPjgVSpd7SF+c5LfOhr3HQ7nxYlsl1pmoyxtv8AK2waXb22OOm5VHrX49yf8FAfiNCIo9I+GHw+tRAN0bSy3k5BPclZEHoenY+takX/AAUo+PUAmS18FfC2MuSM/Z79uDgY4uRwdtKrj8HLVp/cjH6hjJaQ5U/Ny2+4/bDTtR+IN9ELUa14nvBIw3o100UZz0OFbGefStKw8AajeRkPY3VyQdrbbplzk52kc4NfiNZ/8FP/ANpHTXUWeg/CyBpVLbRp96+zAJAGbrg5J/Kkl/4Ks/taxajY6eIfhnHFqLNJzo07GNwc9Tcc9R1yRWc8ywuGi5crS32j/kFHJMfjqnJTnC/rM/eiy8Eahps8F0thch7M71k+1FXixz94Ddnoc/XpXoZ8LS6sy3hsTdxIdsRmmMj/AN7qQepPrX85+r/8FXv2srS7kjgv/hnLBHkHOiO20HHB3S/41xGo/wDBYj9tSz81LbXPhzbxDnC6CnB/Fz2A/KuCOPo10pQT/Dqew+GsbQspzjf1l/wx/U1pem/Z7SO1B1SzTyHSL7PfyxpG5Y87AApGWJ6dfXmsY/DOIBpNR05Hjyoll3u7Z2gBm3JgkgZGTz61/NJ4R/4K2/tm63od1dXfiTwFHJbSmEbfDtuSVKrgc59T+Vbn/D1/9tWJXt5fF3hXy5Aqup8PQEEA5UHscZ9e/vWftIwfMovX0/yJWBnBqE6i0/xn9FY+FFlbw2901lYX8co3qGPlGNyeRgqwbHBycdeBSwfD+NtPuH/s22a/VC8caapKqxMASMjywucjj/69fzz2H/BVL9sGUFL3xX4KlLkMA3h+AEcHgYOAOf5V1Olf8FLv2s7RZ7mHxb4PlW7mE2JNHhbym7quW4HtnAx2rqp4hRt7v5HSsHKWrqL/AMmP6OfD3w/1v+yY7W0025tZGA/1Xi+eykdgASNyqW6ZHXHGMd6peJvC2v21jJHJoXia3XklT4rlvQy5yXwz4z3PFfhJon/BVD9rU2rBde+G5+ZSJhoMW9ADkgHfjByRyD1rZuf+Cn/7TWoTW7anq3gSeMFlZf7IVBNuH8QEgz/wHHNc9SFOtLm5Xr5I6owlTjy8+3r/AJH6HeJNZv8AQrxzbf2vamIEZkkiuMg44JJOfX8K+b/jV4b0H4m+FdU0+/iEl1p6m7inMSs8cgPO3JGQwO3HAGc18l63+214/wBfuLS41PSPD91Idxla1t3jJ5xnBkYZ744z71TsP2hPGmoo0Mul6b9kcHawQhtpIyuef1HHPSvPeAdGanTT/AJTTiozav8AM+CPFMelx6rf/YNLaCCF38uOR8Mi5OFb1I6e+K9y/ZV+M1z4A8X/APCMasJX8LeMX+zSBJVLWkxwsc67xjaScMvcMT1Ar0C8+F+heOdautWvdXudKF8zO9vbQpLgls4VifqT+GKy9R/ZhitzJc+HvFtpeFWVli1G2kgYeq5RWBJ7elepioOrFpiw83TkuVbH6Ftozw6xL4fvVsZtSablpd2Y1kAZSOCu13HTI5Jx6G7ZeEUS7MMVqkR3ROEwCSu5tu7PJCkn3Hqc1V8Japr178PvB8914duk8e2lommXRwZ4rg2asI7lWGWbdGqtknJYkY451Ljwt4p1xtTjv77UINMhiWR5YmFiMSk52jBIwVOcnGAOOa+bjWdO/O9PU+k9j7blcEbY1nTNCtrjTtcv9KtbqylUxRGT95syNo2rntkEYHHrXY+H/i5reh2UOn+HPDl7rlpAhSMagPs0MDGQn5eQz4JOB2OMdMVzfgX4TWGiXai4MetWd7A7wSS+T5o2lWRC4XOck8554+tfR9l4J0RblNYg0QzXUiIzFgW+cFiCAeAQxGSMdq46uKg22nc9Klg6kLJqx4VqPij4sa07XWp6lMtlHMNttZWxcxBx0yRkBhxkrxkDNfUn7MGj6XH4t1W78R6ZqKal/ZvkpJITcTWsrXkYLKgOzJUODnoCelV5fC92j2kUD75JiwSWTd/DIpIOODjk49jXs/we8MXWn+PNJuLkxTte+bFKQNqglGKH5sBjkdc9euMiuSji41ZPt/XQ3r4Zxgru78z9L21/T9N1mxlufDGm2uGbIs3R8skQmPCqS6bQwx1baV6gGvdPDf2+98JLrt/9gtJdKju5ZRaoXaKJI5XVJuAy/OrJyoxleeOfkua5t7PxNYQ32t6ZJaWbiT7TJc2cUUjPtK7yTltwUqxGOvvXt3w0+IPwp07V/EM1z4o8PWHiHWYHsIUg1KOVpA4CugEfBVnZmzjoeozXjVqClK7f4nZSfKkrduhjfsT/ABp13x/4P8TTX1rBf39hfSwrGVCvEZJUaBflBaQeXKwZuCvldCDmva/2b4byfTNYv/iHqcWo+ONQuzqd7YxRFrfw/cySANZIo/eK6RuiknIK/Mv3q/OT4DaJqPwK8YfEC6up7bRrvTNSGmTQ3N0IP7RgeRWWeAN954xGHjZQ3LlSCGIr7at/i/pdgmnNp3jywN/deTeSXUehXt0UilPzhkjBztA54PAUYyM1FfDU41JWW46Neco/M9IXxVqXjDx34m8ASxan4e+H2mxTT2GoG5E0GtIGaK8toj9+La6qJEJAZdzD5TWVZQyeHbPSm8NWi6P4bs5RZ29s4R7fyXCrIkiyZG0lVYBduGQ4zkE+aR/FHRR4ll1S6uvFNzHpef7ITTvDWrxQXsMgDqZQ9vtR1cMpYEb1fGTzm1r/AMW9Kg8H+ItJm0/4k3sE6C30+5uPDsl1byFyR5dzDNtRkYkZyF74IODXFLBJao7FiXN2bPaviW/9pfDXxF4bvbGa5s9Vt4o2hS4aJ7J2jKiOC4XLDDBSGbgNzwV40/hH4t1K3tfCPhdNfn8SaUdDuDb6jdYluoTAoRI7h8lmkwSHLYJYEnBIr5l8LfEXUtE8E2HhiTwT4rEdnKWu4nsYLO2aDHKw+bdSyx/KFOCcDaRxgYyr/wAW6tfahqd/pfwr8eaXFqFwk1vNaX0MBSVwxmCFT/FgkjJyA2egxl9V5Ha2posR7RJ3280fcGn6Vpkek22pan4q8beIL6/jWNNSSOCCbUDJHIuxvLiQAHLArtwC2Mc10d3pkV5NpJ/4T3xAWuLd/Jkuraz821WKURgOzxbiM4wec8da8YXxVo9poUl7d+K9J0karZXV/HBeXRePKyKoPyqTlXcK5B/ugk8mvTtZGnTa54d0QanYXUksckeYJgsiLEnCInSRFkGWHUZ6c5rarQ5LuxFKp7TRtnI/EXTLK11zSNGv/Ht7farqVk2rXIXTtGdbSzjXCXRD2wbczkRrty33icBSRV1fwtqGo+FtA1TWvGHiXVdHt4IcSXGnaUXt3Yo0aMBAuXVsKeSMkgk14v8AGjxdJqfxJ+JV9pOnza34d+GNtaWupJbyG2dm8uC7MqtwWjQTglQMllOQQTn0vxVr2tXmi+HLTQrm11vw5qRg8yeCZlKROpkBAT5WkY8kZA6YII4zfwxa0f5E0ra32v3Ont45rS9t7C98c3o1TVookS3e0smbaUYkMdoJ+UjODjj1ODPdOZYT/aXiC3lS2fymjm0WJGLBgowBhgPnDZ4wOc8Vh3Hjy08PWiaxeeHNae5mgMb3UVmbspFBNJu8qIK5DnfyoAYjP90V5l8O/FeieMYptbuPF8Osza5KyC3i+d4GMeDE0b7TG3XKnB4zRTqOV1fRb6GrpJW6/M9U8RaLpWsajq2tadrfiHw/rniJobue9sEgYSvDCIkcQyrICduVPycrnJwao2yaxq+jaLomofFR9S+3+Q0cV7oWn2s8PlBjGxdIkClfLPTjB5HNXtJYLaQSXcaaRHKZ4zJOxh85FYomCBjHyhhjjH1rrtF/4R23169sH1O2u9Oisri7jCxQzK8xliBRcEuzfOSD1wDkDIrWavYxpwTv28joPhBZ6xYXVjpI+JF1q0FpepP5Elhbxt5rOGxkKPl+XGCuFVRg5PH2fo83xS0TNzP4U0DxNYKoWaazvRZzSnkqQkhcMcbR1HT0rxv4W/D22sb6DXnKLqOrT/arlkXYRGiMIUdTxt+ZyACBuJPrX2DfxWK6FcW8oklE4VZTFL5LR/MAGLKcpg4JIPAWvLrxk53b1Xb+mLF1FRjGMVe/f+kflt+3F+0d4Q+Fnwf8S3nje28ZfDG+1RH0u1g1WzWRHuGzh1mt2lhUYbcGd1zjGMkCv5gvGvxF8LeJjqEdlPaa3YXyne9tsuGlyTgfLk9cc1/Yt+2n4D0Dx3+yN8YLDxdBHqzWfh6e5Bcebma2/exuDjOd8Y6diR0r+Ez4o/BLQNF1eTVLbTYLE37Bd0Ez2LxMSWViY3Vnwcjv1Hoa78minf3rSOapifa7xulpv1/rzO90rwn4Ytb6O6nu2inSV2C5YEoHLlcchiAwXJ45q/4t+G/hOy+HniLWotOtNRvvOSePyri60+KaV5o1YhYJFJYo2QTxkA4IJryDwpZeItKu4nj8Vaxc2ts3lsl+0WqiOLeNwLSr5qrlQMhuqDPSux8e+MfE1t4Fu4zFop0ya4UpeIsqMW2AqojbgfdIyTwQfY19JGtXoe9GWp52LpUa0JLlPJ9L0/wLY3qRReG59L1ZYTM15dXA1kLKB8sQjk2gMSQAW3D8AaxPFvwji12/vj4k+JOoaZEkpTzJdPX7PJIMMUQRSABQG6gAcEZ4ridW1nVNYdIbO0hW6skVg6zKv2iMtty2SMtlgeOeM8UmoXfiPW9Mh0G+lu7eY3MSi6MzSHyQfnjCplwMZY4btXTQzrGJe/UTt0sv0R4NPC4eS96LT9Wvz/4Y8u8Rfs/WF5dAx+ObdxcZ8jdpsuZOcblVS5Pr83br15yNW/Yzi0+MPf8AivwqpQFpFma58yH0JVITtHJ6+hPTmvqm98Kx+Hdf0IxaV/wlsUK+f5t7pdwLWVwhZo3ZsceWhfoRkjjFegaFr/hfxn8Q/tdza2t5DdQw4t9JSO1S3eMNtDwkBJm+Z1wRlsDnoK6anEdenb3E1vqn+Gv6HTS4eo1G4uo+a9laSt89Lfifnof2QbGdLsp4n8N3cSQ7iwM3yAkYcb0XnPYZPXjFcPqH7Gp/eRf294cPluQjSX0EbZBAPBbjqPzr9ANe8MX+otrOr+E7/S/sum3sllKs4ayWMgZjjd0JjC9Du3AZ4rPig1HRxFrUmneGrrV7yzjR/sOo2995ToygtsjZ3OdvO7jj6U/9aJwSfso69NU/zuedUyNtu/NZdd196Vj87Lz9ktLO6+xy+KvBi7TwG1i1QscgEDLcfeGSfUVkn9lbzdSl0ZPGHgVrpoDMI11mzkcJuxnCuTjggHkcc4r79fwVcavqKtJp9xpdxrfnfYneEgzxvwZMNjaxxkY45rhH8PTeANK0DS9A1XTdY8VWVpu1aQpFdW/ni9kEcQbYWlTb5TMvABAPXp1UOI+dqMaMb/Mijksa6cpTkrddP6ufPif8E5vi9caVHrB023t7GRGljmkvbeCMov323MwBwQRxWbqf/BO3xBP4c0vxTqfjDQ/C8kU8ywXD6lbNb3KqE37ZBJkMueeMDcDXuusa98d/G3iBdFufEmpa/rgUW0dw99IYYx5SkRw+buzjJ+XAGRXJxeE/FWk69fJLfzatqdpYTs3majLHBY5k8qRmGCDuYBsqPu+1bxzDEYqm41KMPNK/+Z3YfA4XC1I1IVJ631drP8D5Z+IX7Jvh34feHr3W/GHxL8GfYdP8sTvbXsmq3B8xgqt5VuGdhkjkDgGqUP7DPhzxPpGlatF8W/h7Z2HiGGKe1Y3jrMySJuXMcmGVsEcMMggg96+5NM8GaVDqWlaV4vNn41vDqNjNqOnwzwIb61kPEa3WwSBgxZWXaT86gD5c15PZvb3ekaPe3+taX4Vi1GWNEg0xhePaIszxCMRlmMiqcMqsx4x60LE1KHu+zVt99Pzvc3k1Wv7zvttr89LI4/Qf2BLHwrapo0fjfw3cB8zvNNqMJeZvlHCpkLt+ua2D+xloS3MMepePPDWn+Y/3xckltx4+UKfpx+Nex2Wk+NfEOrvHrU/h2eHwzGkbT2jrNMr9kLRBUDMX5BAyMDsKboHgW91LVJfECarqc9vbyOHtJZE3IGJ4Y7uFJxhep68dK9DDZtVaUJUUn83+p5NXK6U5cznL71/kcXov7Engu9vzpcHxE0i8u9hePmVN+M8AlCCc9hmu3T9inwZaT6jZX3iG1nvLKAsIzIytNtUMxiyVEhAYMQa6+41K90x9Ph0OOxs9TtAZZHjiGSqqWBjyABwPQ565J5rnPiR4q1WDxd4mPhyJPEOhaJF5l5fxz3bw3DtbgOA0x82YoQXZiDyR2Ga0zDH4mjeMeVvp7v56nRhstwfuyquVuvvb37e70OEv/wBn74Y+E7W0vLC+8XanLqU3lpaWtolxOwUgNIIhJv8ALzxuweQfStOPwh+z9YaUkraV4lvL24APlXcyaVIrJ5hnR433E7FQP8pIYSLjuB87N4mitri71GKbUmgfzEiihKq8QYDdF8hKt1Jyw5Dd8EVOdS8M+IPEPhaC5sPEkdxCQ8dw12u+P920TJvcYjQYDFVXv2zXjLPK9k27PyS/4JGIweGw7cfZuS6e9/X5H0ZZeJfgjoME8Nr4TuHWeJZGJla5aRcgMEygAO3JyvAOOeayn8V+FbaW5l07wH4eW4isJrhYZpblpY5IiCd6rIDKoVgTt4x3NcXovg7RNFilnbXvDr3mmi4eKKb94VCOdhXHC5zzypPIrt/C/jrw1pZ1HTdX0PytUuohAz4MsMjsw+dMA4Dgr8pbA2da5amfYiV3GbduyRawWHVmoJet3+J4N8Rv2gfGvhzxnf8AgXQPDXhmw1G3MTRaho1rBqFteRyYZHSSTzcHawBXcGUnDV+wf7O3hbTfFvwm8C+LvGZgudY8RtcW88f7kqk0ck2I28vlSAkZ4PIcEjnFfj38dvh8L34h3OvfCGG30zw/Er6jcWrs0ivPHgTNBGEwuew4yMZOK+xP2TLvx8nhnxhFYePPEWm2J1S2tIrM28CwQ3TWkxE5dtzkkxBSIyAVI7jA1rYyeIwymp67u/8AlrYMCqcMZ7Pl913slsvyufpNZ6XYackumJG1pLCcJJ5YdQmwqGDseqhguehrK1LW/B8UerQ6vc6Zp91HGGlQsXMgBJyQgJDA/wB3k8V5X4tXxFb215d3+rNd2sFot7tMbENiIM0fVcjPTv8Ad4zWlZfDLXdR1hJbW8tba2WczMVtwGWF1yF3ZABAJGTnpXzdozvebf4f5n2sG47RsXtA+I2h2aWTaBYeL9bmWQLFJHZeXHIm8EIzSkcbQy89ce9di3xW8Rm+gm0nwppmkNNvZft96rL8+5fnSAtkd+vUCszT/hcJVWDVJdTmSxmF1HdPOB8ysWEZI4ZCCDyM/NXpehfCjwbNaQSz6IkMizSzqsbumcyh8Eg427hwvT5gOnFVGpRirP8Ar8i6jrVNV/X5nlj/ABH+IOsaxbaRceJbDS5LzzW3afpzeVEysgVVZm3sTuf1+62cV3/g34cXvjrxRplj4gvvG2rX9hrkVnqNre3H2S2FsZ05wnPzochg+0hhiuxuvh5BHqmla7bgRvFdRyeQPugDccAL8ucZXJ655New2emTaFYSHRlnfT7g4jkXAMbDgA55yOMe3HpXoUKtL7EV9yPOr06iWsml6n6FeF7/AOB76xHofgXwfZTQmNrWFlkkuEt5wDlQzn97tcbSOwB9q+lPh7pttDL4dh1HwnpFrewFTK0YbZdxsrjzUGfkbGxiD3yAK+T/AIF+GfFFsvw4XVdAvIpNVWPVbK4UookVlZpt7AHfvLgFSVILFgQw5+udJutX0G71HT9HtBBqc5luLOHVfuBOCXhljdiQARlDtyBxiueuoxvFmFFOpZxW/wDW56bbz6HLcXujyaND/aF1eSCwuEQyI6RIhdScYXlsc8E0999rptidL0qzm1W28svIyxspRyVVenzDlgQBn5QRnFeZ6D8R4bHXND1DxFpeh6ess01ncTW91AfsMsgMnykyZCErCzccnt8uDdk+I/w1XU/Pfxv4PsNM0+43S51W3iU7n3htoc/IpAPHQMa44u+lzq5G9Ujuxri6Pda79q0uyOnhJNkjqrrwiklVGNuPmOB6j8Pif/goHd3lt+x9r+s6VeXUE+i+JNN1GXYQJPKdvLRXZeo3lT6ZX2r3tfjD8KbrWtW0y/8AHPhy6t7OOaaCRLtLuHa6eU0RaEHbnAOCDzyMEYrx/wCPPiD4d/FX4A/E/wAD6Jr9jr1z450lzYxr5xeK6t3WaCNcqBxKgI991XGKUkzWm3F7d/yPH/hp8WNT+MfhKTWPGbXthp3hWY27TGGUDUo1sDEl5t2sFR8+YVBOA2CASa9F0TWJIPhdo3iTTNZu9S0nTgNQZZZAHuLe4t96A5GVYK7bcY6EH28x+A15pHhH4VeG/Cms/wBqxzDTnguY5rGUzI7wxkqxRckhwyjgYHAPygV1Pg3xpovg/wAM3ng3UNE8favoNzA8UaQaTNM1uxUqGDOFJUg5Oe+SKxrUYpuy6lUK7ko80j1D4Z/HjxNr3hrToL/w54JMOoTxX7qlnKgEsl4pcj97wGIBI7kZPNdX8Pvjd4u1DUND8XXFl4dOrxzS2jkWzbZklu2WQvlyWY7Ac54JOOMAFFcuJk+dI7owSew268aal4A+N/jux0Wz0u4svGV0uoXkV1G8q+a1r5ZCgMvy7Y0G1s8Ae1c7ofxk1zQtc8S2GkeHvCWnafqMsgktoYbiKHKIoVljWYKjAoDlQDkn1xRRXDPaT8l+hrhEnyfM9j8OfFPWtQhuri70jw/Nt89wjRzsoJIJ6y55yc881wTeKoLLV9Wu7bwl4Shk16ELdBYJlEu1WwxxJ94Z4PUUUV2UFaNyZJSkr+Z65pnxE1PVvDJ02/0jQbiLTLVTE7RzM4+dByTId3Tv6mrmp2+keI/CM2i6r4e0K5trD7OYHMBaSEiMKCjsSVODjIwaKKwbai2XKK5tj6I/Zf8AG2tnUvDPha7a31PT0lubAPchppfKiUNH8xOCQSRkg8GvvbV/Kutei0mW3iNpPbLI45+Yq5K5Gdpweenp6CiivLrby9ThxrvWj/hPyI/4KM/GHx1pHhL4i+BtO1NbXw9/aFlaSRqpDTxGwS4Ku2ckF2GQMDCKMdc/yz+Pr6fWfHvhHQdQ2z6fNaXV4wOQfMjMW3n0/et+lFFdeWfw5PzZ0uKUo6dF+RSXTLF7xGa3iK3YKyLtG1hgtz681d+ItpBefDfVrUxi3SPD5j+UnaM7TnPynGCPc4xRRX0mXyc507vqebjUo05Ndj5C+Fmhadquu6fHfxfaEn8xcHHyBePl446mva5vCOjjTE1tFuYr+OHYzLIQJA1s0hLe+e4xx1oor01BOTuuiPlKetOUnvc4/wCJfxA8XS/BvwHcy6zPIbi9vLMoVXaI4YLN14A6/OyknOVYivO/hjFGfHFhZMgeHXpo4ps9j94SrjgOCOCQfvHjmiilVivZR0+yXSqSqV4czvqfa3xb8W6p8LvBvxATwpHYQTTeEpbaOaSEGS2b7Jc3RuIyu0LKXtYxuwflLjHzV+KVnrV9ceP4LcP5EOp3JkcIz5RwMh1YksMEZxnHPTpRRXqZfFPBK67mHELtjZP/AAn6bfEPxVq974D0b7TLHI/g69tls22/N++kZH3NnJ4HAGAPTBxX57WmiG0+LfjKCLWNc/s7WvOnubQzAwyMrSMFA25VcouQCMgYNFFfK8Ppckvn+Z346pJ1Ya9P0R6na3rtd+NdEliinsdHvNJFurFhsBvoo2GFIXlZDnA5wPSu01rw/YXT+OdcnM8uoaTqN/pEZLAo9vbhlj3JjaWwOWAGfxoor9Gy2jCT1itv8zwMVXm4RfM9+56V8F/hR4f1T4i/s0eL49R8QaR4j8SeIdHsZbqznjjeFGW2uA8ZZGw6u52sc4GBXxX4i8I6F4PsvDt7pFq5utZm1WSVpZGbDi5kiVlAICkLz9eaKK0zKjCEG1FL3F080LKasqte0m37zPUfBlsml27CxmvrbzbkAlLmZDgpk5KsNxyBy2T70y8vLjTdU8c3enOtjqFxatG1zGqrIV8pSBnGOC5I49KKK8am7uJ71RJJfP8AIxp76fWb6x8O3R8u1i0m1uDNETHPI4Q8s4POccjvXz9eeHbWL4R+INekvdVu9UstTto4ZJZyRErpMzAKAFOSB1B6CiiuhrnlK+p5+Im4+zszwSx1K/E+rlbqVCbZiSDglm8zLex4B4x0rp/AvirxEsVtpDavdzWj+cx3kO3zNhl3EZAOBkUUV4laKmtVcyc5Rsk+59L6N8PvD1udOci+uEuHVmjlmLocgcY7gc4z6mvN9c1OWG31gxw24FreNAowSNqLgE5OScE+3tRRXmUZObd3f+kTsro22xpngqx8QRbp76BbpEWVmeMbUTaduQDjJ68e3Ar6D/YI8Xar4m174m+D9YSzutK0+1tb+JjGfME0Ujork5weDzkdQKKK9KUEsPUdtf8AgnRlzbxNJeb/ACR+seq+E9C1PRriKeyiSNoyCEVR8rJyvIPAHA9KytAsIoI9Il3yyyjTYYSzkEuImZVYnHJ7n1NFFfMz+BeqPv8AD6yfo/0Od8SeMNS8Ps9xYW1h9wR7HVym0LuUYDDoScegOK5ib4x+LrdIpIU0hHaJAT5LHgtnHLe9FFdWGpxk9UKtJx2PPvEfxt+IEbxpDqVvbqWKjZEBtADEAZ/H8zWv4f8AG/j/AMUafcDUvH3i5YbV2jSKK72IAhAXjBzj1oor3PZRUbpLc8OtXmmvef3n7GfBL4daK3ws8KXmq32veIry3SNo5b+7acxiQRsUUYAABkIHGQABmvqey+E/w/g/04+GtPuLqG2EyPKu8qTIiYB9NpNFFeBmPuylbsbYObnCN3c8u+BrRan8Tfjp4b1Wx0rUdJ8Fa9YWumI9nAhtoZYVaSPciKWBJPLZPvXtut2tjofinVNFsdN00afpctv5amBBlZbGVmVtoGRuiVh3BLevBRXnV6kuemr/ANWO6nTi/aaHnGoa3c+G/F/h7RbG30+4tree4t3e4hWaSdIoN6+Yx6klOSMfebGCcjfudbu9E8Y2/hiwjthpOg22nOiyJ5rXHnXl2HErMSWHyLgjB+XrRRXFObUo6/1odtKnFp6dDh4viH4lj+NOoeF2uIJtGGim78p0yPOUkBxz8p47Y6mvafBOu6neX/jVby5kuorC3gnjjdmKBiMEYz0Oc49qKK9J60G/63OGelRfL9D/2Q==\"/>"
  },
  {
    "path": "examples/sample-book/gen/datafile/stack-overflow-survey.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<pi:text-file xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">Respondent|Country|JobSatisfaction|UndergradMajor|ConvertedSalary|Exercise|Gender|RaceEthnicity|EducationParents|HoursOutside|Age|LastNewJob|LanguageWorkedWith\n51900|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|94455.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;Objective-C;PHP;Swift;HTML;CSS\n95836|Argentina|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|45600.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;CoffeeScript;JavaScript;Ruby;HTML;CSS;Bash/Shell\n51710|Germany|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|807756.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Python;TypeScript;HTML;Bash/Shell\n44125|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|175000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;Python\n35167|United Kingdom|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|90288.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Go;JavaScript;Ruby;HTML;CSS\n31721|Japan|Slightly dissatisfied|Information systems, information technology, or system administration|77433.0|3 - 4 times per week|Male|East Asian|They never completed any formal education|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP\n36729|Brazil|Moderately dissatisfied|Computer science, computer engineering, or software engineering|16848.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n38620|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|73433.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n54695|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;Python;SQL\n22810|Turkey|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|25428.0|I don't typically exercise|Male|Middle Eastern|Primary/elementary school|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#\n6289|Germany|Extremely satisfied|Information systems, information technology, or system administration|79552.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;HTML\n48220|Turkey|Moderately dissatisfied|Computer science, computer engineering, or software engineering|12720.0|1 - 2 times per week|Male|Middle Eastern|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n72519|Belgium|Extremely satisfied|Information systems, information technology, or system administration|44064.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C#;Erlang;Haskell;Java;JavaScript;Matlab;Objective-C;PHP;Python;R;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n99498|Estonia|Slightly satisfied|Computer science, computer engineering, or software engineering|32316.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;SQL;HTML;CSS\n42989|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|57170.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;CoffeeScript;F#;JavaScript;SQL;VB.NET;HTML;CSS;Bash/Shell\n75468|Ukraine|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|6684.0|Daily or almost every day|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n4814|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|50000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;JavaScript;PHP;Python;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n62436|Argentina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|27336.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Python;HTML;Bash/Shell\n54029|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|115000.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Java;Bash/Shell\n9393|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|Python;SQL;VB.NET;Visual Basic 6\n80650|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|73576.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Groovy;Java;JavaScript;Python;Kotlin;Delphi/Object Pascal;HTML;CSS\n1105|Switzerland|Extremely satisfied|Computer science, computer engineering, or software engineering|99056.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;Go;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n20184|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|67313.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n64870|France|Extremely satisfied|Mathematics or statistics|61194.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Matlab;Python;HTML;CSS\n50097|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;HTML;CSS;Bash/Shell\n45899|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|83000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|JavaScript;Objective-C;Python;Swift;HTML;CSS\n1862|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|71597.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;Java;JavaScript;HTML\n41764|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|146000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Erlang;JavaScript;Ruby;HTML;CSS\n566|Canada|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|1000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Go;JavaScript;PHP;SQL;HTML;CSS\n86353|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|34726.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;SQL;HTML;CSS\n47618|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|57400.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n49562|Mexico|Slightly dissatisfied|Information systems, information technology, or system administration|22560.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n98428|Philippines|Slightly dissatisfied|Computer science, computer engineering, or software engineering|119088.0|3 - 4 times per week|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;Java;JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n97868|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|67313.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#\n35152|Netherlands|Moderately dissatisfied|Web development or web design|58752.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n20771|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|26513.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n25005|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|50000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;CoffeeScript;Java;JavaScript;SQL;HTML;CSS\n60393|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|115162.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;Python;Rust\n43413|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|62486.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Julia;Bash/Shell\n4998|Argentina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|23500.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n20573|Qatar|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n69177|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C++\n40065|Sri Lanka|Slightly satisfied|Information systems, information technology, or system administration|12000.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;HTML;CSS\n58855|United States|Extremely satisfied|Information systems, information technology, or system administration|60000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;TypeScript;HTML;CSS\n51948|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|110000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;CoffeeScript;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n62327|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|44916.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n84278|Russian Federation|Slightly satisfied|Information systems, information technology, or system administration|25476.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Python;Bash/Shell\n16749|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|143328.0|Daily or almost every day|Female;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Haskell;Java;JavaScript;TypeScript;Ocaml;HTML;CSS;Bash/Shell\n100350|The former Yugoslav Republic of Macedonia|Slightly satisfied|Computer science, computer engineering, or software engineering|7152.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C++;C#;F#;Java;SQL;CSS\n71690|Canada|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|72469.0|3 - 4 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;HTML;CSS;Bash/Shell\n6329|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|72469.0|1 - 2 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;HTML;CSS\n76220|United Kingdom|Extremely dissatisfied|Computer science, computer engineering, or software engineering|48616.0|1 - 2 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n21455|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|70000.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;CoffeeScript;Groovy;Java;JavaScript;Objective-C;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n26541|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|440592.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;SQL;HTML;CSS\n5282|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|70368.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n1859|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|82890.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n94909|Mexico|Extremely satisfied|Computer science, computer engineering, or software engineering|19980.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n91689|Netherlands|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|44064.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n62081|Netherlands|Extremely satisfied|Mathematics or statistics|41124.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n15965|Germany|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|67313.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|35 - 44 years old|Less than a year ago|JavaScript;Ruby;VBA\n62544|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|12396.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;Python;Ruby;SQL;TypeScript;Visual Basic 6;HTML;CSS;Bash/Shell\n92573|Japan|Slightly dissatisfied|Computer science, computer engineering, or software engineering|36015.0|Daily or almost every day|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|18 - 24 years old|Less than a year ago|C#;Java;SQL\n55775|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|35000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|I've never had a job|C#;Java;JavaScript;Python;HTML;CSS\n60088|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|50005.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n83226|Israel|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|94788.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Java;JavaScript;TypeScript;HTML;CSS\n85616|Sweden|Moderately dissatisfied|Computer science, computer engineering, or software engineering|68868.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Groovy;Java;Python\n19271|Sri Lanka|Moderately satisfied|Information systems, information technology, or system administration|11076.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;JavaScript;Objective-C;PHP;Swift;Kotlin;HTML;CSS\n20776|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|120000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n61323|India|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|150288.0|I don't typically exercise|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Objective-C;Swift;TypeScript;HTML;CSS\n92023|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|72209.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;Python;Bash/Shell\n29397|New Zealand|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|1000000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Perl;Python;SQL;VBA;HTML;Bash/Shell\n22450|Germany|Slightly satisfied|Mathematics or statistics|44060.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;Matlab;PHP;Python;R;HTML;CSS\n32148|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|58410.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n79753|United Kingdom|Neither satisfied nor dissatisfied|Web development or web design|41671.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Objective-C;Python;Swift;TypeScript;HTML;CSS;Bash/Shell\n96505|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|137000.0|1 - 2 times per week|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n3462|United Kingdom|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|83342.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Groovy;Java;Python;Ruby;Bash/Shell\n86789|Belgium|Extremely satisfied|Computer science, computer engineering, or software engineering|26436.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;Objective-C;PHP;SQL;HTML;Bash/Shell\n77857|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|260000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n34236|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|55 - 64 years old|More than 4 years ago|C++;C#;Java;JavaScript;SQL;HTML;CSS\n55287|United States|Slightly satisfied|Mathematics or statistics|145000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|Java;Python;Scala;SQL;Bash/Shell\n89804|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|114000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n42366|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|9552.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;VBA;VB.NET;HTML;CSS\n4505|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n34225|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|50005.0|Daily or almost every day|Male;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n52702|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|57576.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;SQL;HTML;CSS\n50169|United Kingdom|Moderately dissatisfied|Web development or web design|241692.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS\n69694|United States|Slightly satisfied|I never declared a major|65000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;Go;Java;SQL;VB.NET;HTML;CSS;Bash/Shell\n83115|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|66674.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;Swift;Kotlin;Bash/Shell\n40830|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|45000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;Objective-C;SQL;Swift;HTML;CSS\n71351|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|83000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;Visual Basic 6;Bash/Shell\n19495|Belgium|Moderately satisfied|Computer science, computer engineering, or software engineering|30840.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n9180|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|67977.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n101526|Lithuania|Moderately dissatisfied|Computer science, computer engineering, or software engineering|44064.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;CSS;Bash/Shell\n34897|Serbia|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|11784.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Swift\n28328|Belgium|Slightly satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n14652|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|85671.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;Swift;HTML;CSS\n14638|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|112000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;Python;SQL;Kotlin;HTML;CSS;Bash/Shell\n31224|Australia|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|53582.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n90398|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|59880.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n73197|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java\n61385|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|45838.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;JavaScript;HTML;CSS;Bash/Shell\n71885|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|79552.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;Lua;Python;R;SQL;HTML;CSS;Bash/Shell\n89480|Canada|Neither satisfied nor dissatisfied|A business discipline (ex. accounting, finance, marketing)|40261.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS\n57133|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|75000.0|3 - 4 times per week|Female|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;JavaScript;HTML;CSS;Bash/Shell\n50575|United Kingdom|Moderately satisfied|Information systems, information technology, or system administration|62507.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n9757|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|73619.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n7628|France|Extremely dissatisfied|Computer science, computer engineering, or software engineering|110149.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;HTML;CSS\n83801|Netherlands|Slightly satisfied|Information systems, information technology, or system administration|61194.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;SQL\n99551|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|70138.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;Objective-C;Python;Swift;TypeScript;Kotlin\n13809|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|61194.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n45507|Denmark|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|77416.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n57858|Poland|Moderately dissatisfied|A humanities discipline (ex. literature, history, philosophy)|73428.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS\n14173|Pakistan|Slightly dissatisfied|Computer science, computer engineering, or software engineering|12000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;JavaScript;Matlab;Objective-C;PHP;SQL;Swift\n87452|United Kingdom|Moderately satisfied|I never declared a major|566724.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Python;VB.NET;Delphi/Object Pascal;HTML;CSS\n8752|United States|Extremely satisfied|Web development or web design|70000.0|3 - 4 times per week|Male|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n60397|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|2000000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;Go;Java;JavaScript;Python;Scala;SQL\n27294|France|Moderately satisfied|Computer science, computer engineering, or software engineering|48955.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n21557|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|65000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Python;HTML\n90588|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|152000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Groovy;Java;JavaScript;SQL;Bash/Shell\n74127|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;Python;Ruby;SQL;TypeScript;Kotlin;Ocaml;HTML;CSS;Bash/Shell\n76121|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|74316.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n17443|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|80000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|PHP;SQL;HTML;Bash/Shell\n17481|Netherlands|Slightly dissatisfied|Computer science, computer engineering, or software engineering|22030.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;JavaScript;Python;HTML;CSS\n101129|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|30597.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Go;Java;JavaScript;R;Rust;Scala;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n73468|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|75880.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C;C++;C#;JavaScript;PHP;SQL;HTML;Bash/Shell\n27037|Denmark|Moderately satisfied|Computer science, computer engineering, or software engineering|78900.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;TypeScript\n46999|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;F#;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n59557|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|85000.0|3 - 4 times per week|Male|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java;Python;R;SQL;VBA\n36288|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|48000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Matlab;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n34997|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|48300.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n96751|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|100000.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;VBA;HTML;CSS\n59125|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|50179.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n42688|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|40000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;Java;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n50437|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|77100.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;Bash/Shell\n13782|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|123000.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;Kotlin\n27915|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|108000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;JavaScript;SQL;HTML;CSS;Bash/Shell\n69925|Canada|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|72469.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Ruby;HTML;CSS\n96804|Brazil|Extremely satisfied|Information systems, information technology, or system administration|30504.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;Java;PHP\n25904|United States|Extremely dissatisfied|Web development or web design|42000.0|Daily or almost every day|Female|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n31547|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|104000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;F#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n25690|Finland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|64620.0|Daily or almost every day|Male|White or of European descent|Primary/elementary school|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;SQL\n34181|United States|Extremely satisfied|Information systems, information technology, or system administration|28000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n76968|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|97826.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS\n68780|Australia|Moderately satisfied|Mathematics or statistics|71976.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|More than 4 years ago|C;C++;Python\n47710|United Kingdom|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|194466.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;SQL\n74024|Russian Federation|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|24000.0|Daily or almost every day|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|PHP;Python;SQL;Bash/Shell\n50677|China|Moderately dissatisfied|Computer science, computer engineering, or software engineering|37400.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;Lua;Rust;Bash/Shell\n78292|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|21133.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;TypeScript;CSS\n56626|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|50005.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n9541|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|23304.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n17867|Pakistan|Moderately satisfied|Computer science, computer engineering, or software engineering|8136.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Objective-C;Python;Swift\n6115|India|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|14089.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n233|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|105000.0|Daily or almost every day|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;HTML;CSS\n58499|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|85000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n80960|Bangladesh|Extremely satisfied|Computer science, computer engineering, or software engineering|48000.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS\n25948|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|105000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n83560|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|48955.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n36407|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|68868.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C++;Python;Bash/Shell\n53292|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|126000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;PHP;Python;Bash/Shell\n69311|Sweden|Moderately dissatisfied|Computer science, computer engineering, or software engineering|682692.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n62109|Georgia|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|29220.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;SQL;Kotlin;HTML;CSS;Bash/Shell\n38148|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;HTML;CSS\n48896|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Bash/Shell\n632|United States|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|75000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n78373|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|135000.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|C;C++;Go;Java;JavaScript;Julia;Lua;Perl;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n78062|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|130000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;R;SQL;HTML;CSS\n43389|Romania|Moderately satisfied|Information systems, information technology, or system administration|17628.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS\n51075|South Africa|Moderately satisfied|Web development or web design|10872.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n58655|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|2000000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;HTML;CSS\n45914|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|87800.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Python;HTML;CSS\n54054|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|93000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++\n96458|Lithuania|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|51408.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;Go;Groovy;Java;JavaScript;Lua;Perl;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n68501|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|400000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Matlab;Python;R;HTML;Bash/Shell\n27846|United Kingdom|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|500052.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Python;Scala;SQL;Bash/Shell\n71610|India|Slightly satisfied|Computer science, computer engineering, or software engineering|11268.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;VB.NET;HTML;CSS;Bash/Shell\n43064|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|90000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Erlang;JavaScript;PHP;SQL;Swift;HTML;CSS;Bash/Shell\n79434|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;TypeScript;HTML;CSS\n92105|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|100000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|JavaScript;Ruby;TypeScript\n91341|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|916764.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;PHP;Python;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n71899|United States|Moderately satisfied|Information systems, information technology, or system administration|59000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;PHP;R;SQL;HTML;CSS;Bash/Shell\n2243|India|Extremely satisfied|Computer science, computer engineering, or software engineering|11724.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|Less than a year ago|Java;JavaScript;Python;Scala;Kotlin;HTML;CSS\n42435|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|115000.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n43236|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|50000.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;HTML;CSS\n99014|Portugal|Moderately dissatisfied|Computer science, computer engineering, or software engineering|39164.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;SQL\n84028|India|Moderately satisfied|Computer science, computer engineering, or software engineering|15654.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS;Bash/Shell\n63602|Spain|Moderately dissatisfied|Computer science, computer engineering, or software engineering|70350.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#\n65984|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|82000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n41064|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|25000.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;VBA;HTML;CSS;Bash/Shell\n19829|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|12000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C++;C#;Java;JavaScript;Python;R;SQL;HTML;CSS\n36969|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Erlang;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n48326|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|650076.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Matlab;Python;Bash/Shell\n9434|Poland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|24696.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n25721|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|24478.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;VB.NET;Visual Basic 6;HTML;CSS\n12916|Belarus|Moderately satisfied|Computer science, computer engineering, or software engineering|49308.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n81997|Brazil|Extremely satisfied|Information systems, information technology, or system administration|22452.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n97467|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|85000.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS;Bash/Shell\n91866|Bulgaria|Moderately satisfied|Computer science, computer engineering, or software engineering|9756.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|SQL;Delphi/Object Pascal\n48114|South Africa|Moderately satisfied|Computer science, computer engineering, or software engineering|29664.0|I don't typically exercise|Male|Black or of African descent|Primary/elementary school|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;Perl;PHP;SQL;HTML;CSS\n94729|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|74856.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|PHP;Delphi/Object Pascal\n70724|Brazil|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|6360.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;PHP;HTML;CSS\n79053|Czech Republic|Extremely satisfied|Computer science, computer engineering, or software engineering|73428.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;Go;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n3034|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|60216.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;Matlab;Objective-C;PHP;SQL;Delphi/Object Pascal;HTML;CSS\n40519|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|72000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|Assembly;C;C#;VB.NET\n26919|Denmark|Slightly dissatisfied|Computer science, computer engineering, or software engineering|87768.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;TypeScript;HTML;CSS\n90797|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|153000.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C;C++;C#;JavaScript;Matlab;Python;SQL;Bash/Shell\n73676|India|Moderately satisfied|Computer science, computer engineering, or software engineering|3984.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;JavaScript;Swift;TypeScript;HTML;CSS\n29857|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|55020.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n91701|France|Moderately satisfied|Computer science, computer engineering, or software engineering|47736.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;Python;Scala;SQL;HTML\n99652|Germany|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|20556.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Java;Matlab;Python;SQL;VBA\n7328|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n73680|Ireland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|352476.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Haskell;JavaScript;PHP;Python;SQL;HTML;CSS\n50527|India|Moderately satisfied|Computer science, computer engineering, or software engineering|4128.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Java;JavaScript;HTML;CSS\n979|Russian Federation|Slightly satisfied|Mathematics or statistics|28800.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;PHP;Python;SQL;Visual Basic 6;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n42592|Switzerland|Moderately satisfied|Computer science, computer engineering, or software engineering|118872.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Java;JavaScript;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n97920|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|54755.0|Daily or almost every day|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python\n20179|Hong Kong (S.A.R.)|Moderately satisfied|Computer science, computer engineering, or software engineering|76754.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Python\n20072|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|70000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;HTML;CSS\n51748|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|102000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;SQL\n80139|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|141960.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n60418|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;HTML;CSS;Bash/Shell\n27251|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|36115.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Go;JavaScript;PHP;Python;Rust;SQL;HTML;CSS;Bash/Shell\n78798|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|79562.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Assembly;Perl;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n32731|United States|Moderately satisfied|Mathematics or statistics|105000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n96407|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|96686.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;Groovy;Java;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n28910|Singapore|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|59052.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;Python\n92718|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n28835|Mexico|Extremely satisfied|Computer science, computer engineering, or software engineering|103140.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;SQL;Delphi/Object Pascal\n82654|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|144000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Matlab;HTML;CSS;Bash/Shell\n74770|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|125000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Groovy;JavaScript;PHP;Python;Ruby;SQL;TypeScript;VB.NET;HTML;Bash/Shell\n21127|Germany|Slightly satisfied|Mathematics or statistics|29376.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Java;JavaScript;Python;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n60626|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|97233.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Ruby;SQL;HTML\n11953|Turkey|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|25428.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|C#;CoffeeScript;Groovy;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n52894|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|110000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n56008|United States|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|55000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n12951|India|Slightly satisfied|Computer science, computer engineering, or software engineering|25047.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Python\n87993|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|39699.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;Python;SQL\n45781|Netherlands|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|53851.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n68304|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS\n36223|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|160000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Go;Java;JavaScript;Objective-C;R;Ruby;Rust;Scala;HTML;CSS\n13353|France|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61194.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;Java;Bash/Shell\n1422|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|140800.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;Scala\n27013|Mexico|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|20000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C#;JavaScript;SQL;HTML;CSS\n81806|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|152794.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|Python\n37503|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|86120.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;Bash/Shell\n64322|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|115000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Go;JavaScript;PHP;TypeScript;HTML;CSS;Bash/Shell\n74894|Russian Federation|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|33972.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n16235|Argentina|Extremely satisfied|Computer science, computer engineering, or software engineering|38136.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Python;R;SQL;HTML;Bash/Shell\n13398|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Assembly;C;C++;CoffeeScript;Clojure;JavaScript;Lua;Python;Rust;HTML;CSS;Bash/Shell\n75170|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|48313.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n27884|Poland|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|22056.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Perl;SQL\n87973|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|140000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript\n62138|United States|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|70000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;Lua;PHP;Python\n50736|Belarus|Extremely satisfied|Information systems, information technology, or system administration|27528.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;Bash/Shell\n95007|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|95000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;CoffeeScript;JavaScript;TypeScript;HTML;CSS\n19505|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|95000.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n49495|New Zealand|Moderately satisfied|Information systems, information technology, or system administration|1000000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C#;Java;JavaScript;Objective-C;Swift;HTML;CSS\n38099|United Kingdom|Moderately satisfied|Information systems, information technology, or system administration|41671.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n48266|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|126000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;TypeScript;HTML;CSS\n91534|China|Moderately satisfied|Computer science, computer engineering, or software engineering|32725.0|1 - 2 times per week|Male|East Asian|Primary/elementary school|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;SQL;HTML;CSS\n8104|Brazil|Extremely dissatisfied|Computer science, computer engineering, or software engineering|11232.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Objective-C;SQL;TypeScript;HTML;CSS;Bash/Shell\n47331|Serbia|Slightly satisfied|Computer science, computer engineering, or software engineering|70500.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|C++;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n15819|India|Moderately satisfied|Computer science, computer engineering, or software engineering|7827.0|I don't typically exercise|Male|South Asian|Primary/elementary school|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript\n15957|Czech Republic|Extremely satisfied|Computer science, computer engineering, or software engineering|20268.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;PHP;SQL;HTML;CSS\n54501|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|140000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n8734|Lithuania|Extremely satisfied|Computer science, computer engineering, or software engineering|23796.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n43219|New Zealand|Moderately satisfied|Computer science, computer engineering, or software engineering|631452.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Go;JavaScript;Python;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n73138|India|Moderately satisfied|Computer science, computer engineering, or software engineering|6262.0|Daily or almost every day|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Java;JavaScript;SQL;HTML;CSS\n24294|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|195000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Python;Scala;SQL\n161|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n100021|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|58500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;Java;JavaScript;PHP;Python;SQL;HTML;Bash/Shell\n12271|Germany|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|63642.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Erlang;Go;Java;JavaScript;Lua;PHP;Python;Ruby;Scala;Cobol;HTML;CSS;Bash/Shell\n95493|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|36720.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Python;Bash/Shell\n88632|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|107152.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n13279|Romania|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|33780.0|Daily or almost every day|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n76677|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|30708.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;Matlab;Python;R;VBA;HTML;CSS\n87157|Portugal|Moderately satisfied|Computer science, computer engineering, or software engineering|8808.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Clojure;Haskell;JavaScript;Python;HTML;CSS;Bash/Shell\n24815|United Kingdom|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|69452.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;Scala;SQL\n86897|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|41671.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|C#;F#;JavaScript;PHP;Python;SQL;HTML;CSS\n21899|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|89000.0|1 - 2 times per week|Female|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n76693|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|64417.0|I don't typically exercise|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n23199|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|108000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C++;Objective-C;PHP;Python\n97499|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|109000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Objective-C;Scala;SQL;HTML;CSS\n71741|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|130000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Python;Scala;TypeScript\n12770|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|101400.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|More than 4 years ago|Assembly;C;Perl;Python;Bash/Shell\n1036|Pakistan|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|2172.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n25907|United States|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|85000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;R;SQL;Delphi/Object Pascal\n66091|United Kingdom|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|26808.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Haskell;Python\n66572|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|52933.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|More than 4 years ago|C++;C#;CoffeeScript;Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n28783|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Female|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|HTML;CSS\n25944|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|36115.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n7957|France|Moderately satisfied|Computer science, computer engineering, or software engineering|22032.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|55 - 64 years old|Less than a year ago|C;C++;Java;JavaScript;Objective-C;PHP;Python;SQL;Visual Basic 6;HTML;CSS;Bash/Shell\n78262|Switzerland|Moderately satisfied|Computer science, computer engineering, or software engineering|93842.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;Go;Perl;Python;SQL;Bash/Shell\n35444|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|1 - 2 times per week|Male|Black or of African descent;East Asian;Hispanic or Latino/Latina|Associate degree|3 - 4 hours|45 - 54 years old|More than 4 years ago|C#;Java;JavaScript;Perl;Visual Basic 6;HTML;Bash/Shell\n62429|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|883428.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n97893|Indonesia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|111880.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Scala;SQL;Kotlin;HTML;CSS\n97450|India|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|5640.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|I've never had a job|Java;JavaScript;PHP;Python;SQL;HTML;CSS\n94978|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|48313.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;Delphi/Object Pascal;HTML;CSS\n48989|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|13619.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n54953|Italy|Slightly dissatisfied|Mathematics or statistics|381852.0|I don't typically exercise|Female|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Less than a year ago|Python;R;Scala;SQL\n63438|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|24000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Python;SQL;Bash/Shell\n21169|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|38000.0|I don't typically exercise|Male|East Asian;South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;JavaScript;Python;HTML\n81659|Chile|Moderately dissatisfied|Information systems, information technology, or system administration|9912.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Over 4 hours|18 - 24 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;SQL;HTML;CSS\n20022|United States|Slightly dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|92500.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;SQL;TypeScript\n23928|New Zealand|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|74911.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;Groovy;Java;SQL;Bash/Shell\n73270|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n58397|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|38893.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;Go;Haskell;Java;JavaScript;PHP;Python;Scala;SQL;HTML;CSS;Bash/Shell\n41705|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|74856.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;Kotlin;Delphi/Object Pascal;HTML;CSS\n29213|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|40261.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n16141|Argentina|Slightly dissatisfied|Information systems, information technology, or system administration|50844.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n7888|Iran, Islamic Republic of...|Moderately dissatisfied|Computer science, computer engineering, or software engineering|21648.0|1 - 2 times per week|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Objective-C;Python;Swift\n42002|Germany|Extremely satisfied|Information systems, information technology, or system administration|73428.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;JavaScript;Python;R;Ruby;Rust;Scala;SQL;Swift;HTML;CSS;Bash/Shell\n19662|Taiwan|Slightly satisfied|Computer science, computer engineering, or software engineering|22368.0|I don't typically exercise|Male|East Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;Ruby\n64228|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|49404.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|Go;Groovy;Java;JavaScript;Python;Scala;Kotlin;HTML;Bash/Shell\n79523|Germany|Moderately satisfied|Mathematics or statistics|73433.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;PHP;Python;SQL;Bash/Shell\n98224|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|77786.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C#\n88422|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|106000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n75860|Austria|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|22032.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Matlab;R\n88525|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|145000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n75420|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|130000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n71276|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|224550.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|C#;F#;SQL;VB.NET;Bash/Shell\n65182|Belarus|Slightly dissatisfied|Computer science, computer engineering, or software engineering|11748.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#\n37265|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|52404.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;Scala\n2146|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|73000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;Ruby;SQL;VB.NET;HTML;CSS;Bash/Shell\n82663|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|96000.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;Lua;Perl;PHP;Python;R;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n62307|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C#;SQL\n62113|Colombia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|42000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n33973|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|72000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Objective-C;Swift\n76763|Czech Republic|Extremely satisfied|Computer science, computer engineering, or software engineering|40536.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;Python;SQL\n25030|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|128000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS\n20403|South Africa|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|9888.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n40920|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|160000.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;F#;JavaScript;SQL;CSS\n94403|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|67560.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n2697|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|50769.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|Java;Bash/Shell\n69237|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|25047.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#\n100877|United States|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|135000.0|Daily or almost every day|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Python\n38373|Canada|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|72469.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n30518|Thailand|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|39492.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;TypeScript;HTML;CSS\n14866|India|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|35379.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n83946|Egypt|Moderately satisfied|Computer science, computer engineering, or software engineering|1020.0|I don't typically exercise|Male|Middle Eastern|Associate degree|3 - 4 hours|18 - 24 years old|Less than a year ago|Assembly;C++;C#;Groovy;Java;JavaScript;R;SQL;HTML;CSS\n15325|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;Kotlin\n83054|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|35292.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;SQL;HTML;CSS;Bash/Shell\n32758|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|20664.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n57764|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|125000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Ruby;Rust;Bash/Shell\n85168|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|93000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n16206|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Java;JavaScript;TypeScript;HTML;CSS\n54436|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|82612.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS\n40563|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n46381|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|59988.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n66863|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|95000.0|3 - 4 times per week|Female|Black or of African descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;Python\n1668|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|61194.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;SQL\n9106|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n97921|Azerbaijan|Slightly satisfied|Computer science, computer engineering, or software engineering|44064.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Java;SQL\n41555|Italy|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|183582.0|3 - 4 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|65 years or older|More than 4 years ago|Assembly;C++;C#;Python;SQL;VBA;VB.NET;Visual Basic 6;Cobol;HTML\n56808|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|39164.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;C#;JavaScript;HTML;CSS;Bash/Shell\n10539|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|156000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n45687|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|94000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n8628|Germany|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|17628.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C#\n42827|United Kingdom|Moderately satisfied|Mathematics or statistics|48616.0|Daily or almost every day|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|R;SQL;VBA\n64556|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|52089.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Objective-C;SQL;Swift;Bash/Shell\n15629|United Kingdom|Slightly satisfied|Web development or web design|34726.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Go;Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n28282|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|30597.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n16317|Bosnia and Herzegovina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|15024.0|3 - 4 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;SQL;TypeScript;HTML;CSS\n78299|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|80000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Clojure;JavaScript;SQL;CSS;Bash/Shell\n7335|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|125014.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n66330|Romania|Extremely satisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n37599|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|36720.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n565|Latvia|Moderately satisfied|Computer science, computer engineering, or software engineering|31664.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n45923|Israel|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|112344.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|C#;Java\n46902|South Africa|Moderately satisfied|Computer science, computer engineering, or software engineering|23916.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n42928|Netherlands|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|36716.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Python\n26295|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14089.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;SQL;Visual Basic 6;HTML;CSS\n77641|United States|Moderately satisfied|Mathematics or statistics|95000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|JavaScript;Python;SQL\n31097|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|35559.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C++;Java;JavaScript;PHP;SQL\n10322|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n35045|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;VB.NET;HTML;CSS\n51528|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|23482.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;SQL\n29004|Slovakia|Moderately satisfied|Computer science, computer engineering, or software engineering|35244.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;HTML;Bash/Shell\n83837|India|Moderately satisfied|Computer science, computer engineering, or software engineering|13463.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;Matlab\n73897|United States|Moderately satisfied|Information systems, information technology, or system administration|60000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Assembly;C++;C#;Java;JavaScript;Matlab;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n63371|Estonia|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|29376.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;JavaScript;PHP;Python;R;Swift;HTML;CSS\n60107|Poland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|31764.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;F#;Haskell;Java;JavaScript;Python;SQL;TypeScript;Kotlin;HTML;CSS\n49408|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|30559.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;SQL;Cobol;Bash/Shell\n80854|United States|Moderately dissatisfied|I never declared a major|120000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|55 - 64 years old|Less than a year ago|Java;JavaScript;Objective-C;Ruby;Swift\n63075|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|165000.0|3 - 4 times per week|Male|East Asian;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|CoffeeScript;Groovy;Java;JavaScript;Python;SQL;Kotlin;HTML;CSS;Bash/Shell\n83339|Iran, Islamic Republic of...|Moderately satisfied|Web development or web design|22860.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|Middle Eastern|Associate degree|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Delphi/Object Pascal;HTML;CSS\n86784|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|28584.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Objective-C;SQL;TypeScript;HTML;CSS\n51733|Canada|Extremely satisfied|Mathematics or statistics|79555.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;Perl;SQL;HTML;CSS\n55963|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|80000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C;C#;JavaScript;Objective-C;Perl;PHP;Python;R;SQL;HTML;Bash/Shell\n13843|Russian Federation|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|16140.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Matlab;VBA;VB.NET;Visual Basic 6;Bash/Shell\n47935|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;Rust;SQL\n13722|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|60948.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;JavaScript;SQL;HTML;CSS\n88204|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|21300.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Java;JavaScript;Python;SQL;VB.NET;HTML;CSS\n60859|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|538968.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;JavaScript;SQL;TypeScript;HTML;CSS\n37586|France|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;F#;Java;JavaScript;SQL;HTML;CSS\n38441|Colombia|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|13500.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;PHP;SQL;HTML;CSS\n56436|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|483384.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n46408|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|45000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;C#;JavaScript;Ruby;SQL;HTML;CSS\n33179|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|48955.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;Go;JavaScript;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n86764|Italy|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|23496.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java\n70560|Ireland|Extremely satisfied|Web development or web design|1000000.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Ruby;SQL;Swift;HTML;CSS\n72249|Greece|Moderately dissatisfied|Web development or web design|14688.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n63834|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|720000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n5935|New Zealand|Moderately satisfied|Computer science, computer engineering, or software engineering|69430.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n63942|United States|Extremely satisfied|Mathematics or statistics|105000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n93367|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|Over 4 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift;Kotlin;HTML;CSS\n55870|Sweden|Slightly dissatisfied|Web development or web design|65868.0|Daily or almost every day|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Objective-C;PHP;Ruby;HTML;CSS;Bash/Shell\n15420|United Kingdom|Extremely dissatisfied|Information systems, information technology, or system administration|41671.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Go;JavaScript;PHP;Python;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n26635|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|I don't typically exercise|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;Python;R;SQL\n92152|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|31309.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript\n85207|Sweden|Moderately satisfied|Information systems, information technology, or system administration|76353.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C++;C#;Java;JavaScript;Objective-C;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n76533|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|95015.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Scala;SQL;Kotlin;HTML;Bash/Shell\n29345|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|46533.0|Daily or almost every day|Male|Native American, Pacific Islander, or Indigenous Australian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;Python;Kotlin\n18706|Iran, Islamic Republic of...|Moderately dissatisfied|Computer science, computer engineering, or software engineering|13320.0|1 - 2 times per week|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;HTML;CSS\n76852|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|0.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Objective-C;PHP;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n74072|United Kingdom|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|51672.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n24638|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|80000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n74593|United States|Moderately dissatisfied|I never declared a major|1800000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;HTML;CSS\n3595|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|48616.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;VB.NET;HTML;CSS;Bash/Shell\n90796|India|Slightly satisfied|Computer science, computer engineering, or software engineering|6012.0|Daily or almost every day|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n14145|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|102500.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;Kotlin;HTML;CSS\n78475|Australia|Moderately satisfied|Information systems, information technology, or system administration|43985.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;VB.NET;CSS\n53176|Australia|Moderately satisfied|Information systems, information technology, or system administration|87971.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n56840|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|70368.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Erlang;Ruby;Scala\n45343|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|111123.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|JavaScript;Python;SQL;VBA;Delphi/Object Pascal\n29200|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|49200.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;JavaScript;Python;HTML;CSS;Bash/Shell\n63063|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|156000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n100663|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|96000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Go;Groovy;Java;JavaScript;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n54808|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|100000.0|Daily or almost every day|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n1997|Germany|Moderately satisfied|Information systems, information technology, or system administration|60216.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;PHP;SQL;HTML;CSS\n30642|Sweden|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|104799.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;R;Scala;SQL;Bash/Shell\n21906|Russian Federation|Slightly dissatisfied|Computer science, computer engineering, or software engineering|17616.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;PHP;SQL;HTML;CSS\n60364|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|36235.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n90384|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|91791.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Groovy;Java;Python;SQL;Kotlin;Bash/Shell\n34114|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|97680.0|I don't typically exercise|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL\n25671|United Kingdom|Slightly satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|66674.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;VBA;Bash/Shell\n70751|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n13064|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n42614|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|9393.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;Groovy;Java;Kotlin\n8260|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|130000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;C#;JavaScript;Matlab;Ruby;SQL;HTML;CSS;Bash/Shell\n81737|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|14988.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#\n73407|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|83800.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n89963|Norway|Slightly dissatisfied|Computer science, computer engineering, or software engineering|79064.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Groovy;Haskell;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n15481|France|Slightly satisfied|Computer science, computer engineering, or software engineering|42836.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML\n69980|United States|Moderately satisfied|Information systems, information technology, or system administration|74000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;SQL;Bash/Shell\n24271|Belgium|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|925248.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n13675|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Haskell;JavaScript;Python;SQL;TypeScript;Kotlin;Ocaml;HTML;CSS;Bash/Shell\n22188|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|39164.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS\n48286|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|500052.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;Matlab;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n89668|Austria|Slightly satisfied|Computer science, computer engineering, or software engineering|39648.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;JavaScript;Lua;PHP;SQL;TypeScript;HTML;CSS\n58671|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|66089.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n84019|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|95015.0|1 - 2 times per week|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Less than a year ago|Clojure;Java;JavaScript;PHP;Ruby;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n29406|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|83224.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;C#\n54802|France|Moderately satisfied|Computer science, computer engineering, or software engineering|807756.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS;Bash/Shell\n8375|Bangladesh|Slightly satisfied|Computer science, computer engineering, or software engineering|30000.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;CoffeeScript;Java;JavaScript;Matlab;Perl;PHP;Python;Ruby;SQL;Swift;TypeScript;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n101245|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|Python;Ruby;Rust;Bash/Shell\n42802|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n29567|South Africa|Slightly satisfied|Computer science, computer engineering, or software engineering|48.0|Daily or almost every day|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C#;JavaScript;SQL;TypeScript;HTML;CSS\n86256|United States|Extremely satisfied|I never declared a major|125000.0|Daily or almost every day|Male|Hispanic or Latino/Latina;Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Ruby;HTML;CSS\n24541|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|111963.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C++;C#;JavaScript;Lua;SQL;TypeScript;HTML;CSS\n7596|Finland|Extremely satisfied|Computer science, computer engineering, or software engineering|69761.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript\n28442|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|108000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|CoffeeScript;JavaScript;PHP;Python;SQL;HTML;CSS\n70216|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Ruby;Swift;HTML;CSS\n74451|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|15811.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Matlab;PHP;Python;SQL\n3805|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|48955.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;Java;JavaScript;Objective-C;Python;R;Swift;Visual Basic 6;HTML;CSS;Bash/Shell\n61154|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|110000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;Matlab;Python\n8347|Switzerland|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|250248.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Python;SQL;HTML;Bash/Shell\n68949|France|Moderately satisfied|Computer science, computer engineering, or software engineering|51408.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;JavaScript;PHP;Ruby;HTML;CSS\n10018|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|10400.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript\n95677|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|102000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n36277|France|Moderately satisfied|Computer science, computer engineering, or software engineering|56298.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Python\n2255|Dominican Republic|Slightly satisfied|Computer science, computer engineering, or software engineering|24000.0|3 - 4 times per week|Male|Black or of African descent;Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n66935|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n12339|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|47904.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++;Matlab;Python;HTML;CSS;Bash/Shell\n28876|United Kingdom|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|20836.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n13489|Brazil|Moderately dissatisfied|Computer science, computer engineering, or software engineering|6552.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C#;JavaScript;Python;R;Ruby;HTML;CSS\n9968|Greece|Moderately dissatisfied|Computer science, computer engineering, or software engineering|23496.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript\n75116|Czech Republic|Extremely satisfied|Information systems, information technology, or system administration|69024.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;PHP;Python;SQL;HTML;CSS;Bash/Shell\n17069|Sweden|Moderately satisfied|Mathematics or statistics|52404.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Matlab;Objective-C;Python;SQL;VBA\n87128|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;PHP;HTML;CSS;Bash/Shell\n86670|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|40584.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Matlab;PHP;SQL;TypeScript;HTML;CSS\n75820|Spain|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|30597.0|Daily or almost every day|Female|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|R\n43725|India|Moderately satisfied|Computer science, computer engineering, or software engineering|12524.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;Ruby;SQL;HTML;CSS\n60465|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|1500.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n64424|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|41916.0|I don't typically exercise|Female|East Asian;Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;HTML;CSS;Bash/Shell\n99135|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|91800.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java\n65264|Romania|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|58752.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n95790|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|82000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;SQL;TypeScript;HTML;CSS\n20664|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|56395.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n49222|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|83342.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n71095|Greece|Moderately satisfied|Computer science, computer engineering, or software engineering|33192.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Scala;SQL;HTML;CSS\n3088|Turkey|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|50868.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|JavaScript;R;HTML;CSS\n6575|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|60000.0|Daily or almost every day|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n25531|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|60000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;JavaScript;Python;HTML;CSS\n32882|Poland|Extremely satisfied|Computer science, computer engineering, or software engineering|35292.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;TypeScript;CSS\n23924|Poland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14704.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n68845|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|86000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Perl;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n88454|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|127000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C;C++;C#;Clojure;Go;Groovy;Java;JavaScript;SQL;TypeScript;VB.NET;Visual Basic 6;HTML;Bash/Shell\n13767|Germany|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|14688.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;C#;Matlab;Bash/Shell\n19973|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|100652.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C;C++;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n75213|Switzerland|Slightly satisfied|Computer science, computer engineering, or software engineering|106356.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;Java;JavaScript;PHP;R;SQL;VB.NET;HTML\n74530|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|135000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Go;Python;Ruby;HTML;CSS\n64951|United States|Extremely satisfied|Mathematics or statistics|140000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|65 years or older|More than 4 years ago|C;C++;C#;Java;VB.NET;Delphi/Object Pascal;HTML;CSS\n49683|United Kingdom|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|108345.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;SQL;VB.NET;HTML;CSS\n69835|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n16223|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|15000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n21043|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|132000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;C#;Java;JavaScript;Objective-C;SQL;Swift;VB.NET;HTML;CSS\n93935|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|62412.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Lua\n76975|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|17328.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS\n27005|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|163000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n41122|United States|Moderately satisfied|Mathematics or statistics|65000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;Python;HTML;CSS;Bash/Shell\n93236|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|75880.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java\n64376|Australia|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|63979.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;Lua;Objective-C;PHP;SQL;TypeScript;VBA;VB.NET;HTML;CSS\n22857|Greece|Extremely satisfied|Computer science, computer engineering, or software engineering|73428.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;C#;Groovy;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n13870|Brazil|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|33684.0|I don't typically exercise|Male|Hispanic or Latino/Latina|They never completed any formal education|Over 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;TypeScript;HTML;CSS\n89681|Netherlands|Extremely satisfied|Information systems, information technology, or system administration|66084.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;Objective-C;Perl;PHP;SQL;Swift;VBA;HTML;CSS;Bash/Shell\n65773|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|55562.0|1 - 2 times per week|Male|Middle Eastern|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;Matlab;PHP;Python;SQL;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n24093|Malaysia|Slightly satisfied|Information systems, information technology, or system administration|29640.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS\n14962|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|20292.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n75196|Netherlands|Slightly satisfied|Computer science, computer engineering, or software engineering|65352.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;CoffeeScript;Erlang;Groovy;Java;JavaScript;Matlab;Objective-C;PHP;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n76278|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|44916.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n60180|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|78750.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;SQL;CSS;Bash/Shell\n69084|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|70985.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;SQL;HTML;CSS\n41201|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|58746.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS\n41836|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|109581.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Python;R\n91450|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|93960.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Python\n45100|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|54000.0|3 - 4 times per week|Male|Black or of African descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n35653|Croatia|Moderately satisfied|Mathematics or statistics|29373.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Haskell;Python\n24202|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;SQL;HTML;CSS\n75819|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|74000.0|Daily or almost every day|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Ruby;TypeScript;HTML;CSS;Bash/Shell\n20880|Iceland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|62856.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;C#;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n754|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;Python;VB.NET\n57449|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|21168.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;TypeScript;HTML;CSS;Bash/Shell\n59294|Switzerland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|109483.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;Bash/Shell\n11006|France|Extremely satisfied|Computer science, computer engineering, or software engineering|31821.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n90683|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|170000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;Lua;Matlab;Python;Ruby\n65610|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|59970.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL\n6002|Poland|Moderately satisfied|Information systems, information technology, or system administration|49404.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n48952|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|24478.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;SQL;HTML;CSS\n19805|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|146000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;Go;Java;Perl;Python;SQL;Bash/Shell\n30961|Iran, Islamic Republic of...|Extremely satisfied|Computer science, computer engineering, or software engineering|27636.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;Python;Bash/Shell\n63771|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|55981.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n49234|Jordan|Slightly satisfied|Computer science, computer engineering, or software engineering|15600.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Objective-C;Swift\n89142|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|55000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Lua;Python;Ruby;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n2659|Serbia|Moderately dissatisfied|Computer science, computer engineering, or software engineering|44064.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;Objective-C\n97902|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|8076.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;Python;Scala;HTML;CSS;Bash/Shell\n37626|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|75000.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;SQL;Swift;VBA;VB.NET;Visual Basic 6;HTML;CSS\n70039|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|44064.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;Matlab;Python;Scala;SQL;HTML;CSS;Bash/Shell\n33939|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|68537.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n64138|Bulgaria|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|37500.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;Java;JavaScript;PHP;Python;VBA;VB.NET;Visual Basic 6;HTML;CSS\n30442|Germany|Extremely satisfied|Information systems, information technology, or system administration|134627.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n86149|United States|Moderately satisfied|Information systems, information technology, or system administration|78200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n84599|Italy|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|36716.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n19005|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|I don't typically exercise|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n42046|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|165000.0|1 - 2 times per week|Male|East Asian|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript;HTML;CSS\n81760|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|95000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C;Java;JavaScript;Perl;PHP;SQL;HTML;CSS;Bash/Shell\n82502|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;C++;Hack;Java;JavaScript;Objective-C;PHP;Rust;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n29036|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|36000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Matlab;Python;SQL;HTML;CSS\n35735|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|74304.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Go;Groovy;Java;JavaScript;Lua;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n53616|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|42300.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;Python;HTML;CSS\n40332|India|Extremely satisfied|Computer science, computer engineering, or software engineering|23482.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;Go;Java;JavaScript;Matlab;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n63937|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;Objective-C;Ruby;Swift;Kotlin;Bash/Shell\n53663|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|32209.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|Java;SQL;Visual Basic 6\n94766|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|200000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Assembly;C;C++;Python;Bash/Shell\n57422|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|66027.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Go;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;Kotlin;HTML;CSS\n95987|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Groovy;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;Kotlin;HTML;CSS\n53434|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|56543.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Haskell;Python;SQL;Bash/Shell\n28845|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|84000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n18841|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|53851.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n73618|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|2000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;Swift;TypeScript;HTML;CSS\n11924|Venezuela, Bolivarian Republic of...|Extremely satisfied|Information systems, information technology, or system administration|600.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n76150|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|49404.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#\n63262|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|72209.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Objective-C;TypeScript;HTML;CSS\n1759|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|154000.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Perl;Ruby;SQL;HTML;CSS;Bash/Shell\n84550|United States|Moderately satisfied|I never declared a major|100000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Perl;PHP;Python;HTML;CSS;Bash/Shell\n35747|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|104678.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;TypeScript;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n43292|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|100000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;Java;JavaScript;Objective-C;Python;Swift;HTML;CSS;Bash/Shell\n6987|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|59880.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Lua;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n21801|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|121000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n75652|Philippines|Extremely satisfied|Computer science, computer engineering, or software engineering|14652.0|I don't typically exercise|Male|East Asian;South Asian|Associate degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;SQL;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal\n47300|Canada|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|72469.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Lua;Python;Bash/Shell\n98155|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|22284.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;Haskell;Java;JavaScript;PHP;Python;SQL;Visual Basic 6;HTML;CSS;Bash/Shell\n81920|Armenia|Moderately satisfied|Computer science, computer engineering, or software engineering|23628.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;SQL;HTML;CSS\n51944|Russian Federation|Slightly satisfied|Mathematics or statistics|14856.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Python;SQL;Bash/Shell\n14261|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|125014.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n51422|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|103000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Python\n7868|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;Python;R;Scala;TypeScript\n19604|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|108252.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n91500|United States|Extremely satisfied|Information systems, information technology, or system administration|88500.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;Ruby;SQL;VB.NET;HTML;CSS;Bash/Shell\n8570|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|58000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Lua;SQL;HTML;CSS\n62203|Ireland|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|61194.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;Python;SQL;HTML;CSS\n77965|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|120000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n54241|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|53892.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Python;Swift;Kotlin;HTML;CSS;Bash/Shell\n51899|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|20808.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Scala;SQL\n42384|Indonesia|Extremely satisfied|Computer science, computer engineering, or software engineering|107400.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;Python;SQL;VB.NET;Visual Basic 6;Kotlin;HTML;CSS\n63202|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6204.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Python\n35898|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n84867|Pakistan|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|11820.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL\n71735|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|38820.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n54691|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|25047.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript\n83990|Brazil|Neither satisfied nor dissatisfied|A business discipline (ex. accounting, finance, marketing)|10476.0|Daily or almost every day|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;HTML;CSS\n98776|India|Moderately satisfied|Computer science, computer engineering, or software engineering|28178.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Python;R\n1742|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|160000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;JavaScript;Objective-C;SQL;Swift;HTML;CSS;Bash/Shell\n662|Bulgaria|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|12000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n47379|Belgium|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|146868.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;VBA;VB.NET;Visual Basic 6\n4583|Russian Federation|Slightly satisfied|Information systems, information technology, or system administration|25476.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;Matlab;PHP;Python;SQL;HTML;CSS;Bash/Shell\n2578|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|138904.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n25836|Nigeria|Slightly satisfied|Computer science, computer engineering, or software engineering|13332.0|Daily or almost every day|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|Java;Kotlin;HTML\n14757|Poland|Moderately satisfied|Mathematics or statistics|22932.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL\n60999|Mexico|Moderately satisfied|Computer science, computer engineering, or software engineering|22560.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n8384|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|29376.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;Go;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n73938|New Zealand|Extremely satisfied|Computer science, computer engineering, or software engineering|40196.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Clojure;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;Delphi/Object Pascal;HTML;CSS\n19156|Uruguay|Moderately satisfied|Computer science, computer engineering, or software engineering|60000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n27072|Norway|Moderately dissatisfied|Computer science, computer engineering, or software engineering|84165.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;Python;Ruby;Scala;SQL;HTML;CSS;Bash/Shell\n22567|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|74550.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n76423|Taiwan|Slightly satisfied|Computer science, computer engineering, or software engineering|84743.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Groovy;Java;JavaScript;Python;HTML;Bash/Shell\n47039|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|2000000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|55 - 64 years old|More than 4 years ago|Assembly;C;C++;C#;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;VBA;VB.NET;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n10743|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|88119.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Groovy;Java;Python;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n50829|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Python\n75243|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|60000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;Kotlin;HTML;CSS\n93360|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|106000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n40163|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|165000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n57297|France|Moderately satisfied|Computer science, computer engineering, or software engineering|34269.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;Clojure;Haskell;Java;JavaScript;Python;HTML;CSS\n30587|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|37504.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n34801|United States|Moderately satisfied|Information systems, information technology, or system administration|85000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Go;Java;JavaScript;Matlab;Objective-C;PHP;VBA;Kotlin;HTML;CSS;Bash/Shell\n47469|Croatia|Moderately satisfied|Computer science, computer engineering, or software engineering|25656.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n75609|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|59980.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;Lua;Python\n38237|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|80521.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C#;Clojure;Erlang;F#;Go;Haskell;JavaScript;Python;Ruby;Rust;VB.NET;Visual Basic 6\n35052|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|107964.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C;C++;Go;JavaScript;Objective-C;Python;SQL;HTML;CSS;Bash/Shell\n61282|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|10236.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Matlab;PHP;Python;SQL;HTML;CSS;Bash/Shell\n29848|Belgium|Moderately satisfied|Computer science, computer engineering, or software engineering|55686.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Lua;SQL;HTML;CSS\n27109|Canada|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|24156.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript\n39791|Philippines|Slightly satisfied|Information systems, information technology, or system administration|6120.0|I don't typically exercise|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS\n39629|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|58000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;PHP;Python;HTML;CSS\n8559|Ireland|Extremely satisfied|Computer science, computer engineering, or software engineering|90288.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;Java;JavaScript;R;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n66591|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|94000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;Python;HTML;Bash/Shell\n96319|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|67069.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java\n76379|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|105000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n10062|Malta|Moderately satisfied|Computer science, computer engineering, or software engineering|39776.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n54223|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Python;Bash/Shell\n20856|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|103300.0|1 - 2 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Groovy;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n83561|India|Slightly satisfied|Computer science, computer engineering, or software engineering|11741.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL;HTML;CSS\n64160|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|63896.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;Ruby;HTML;CSS;Bash/Shell\n55491|France|Moderately satisfied|Computer science, computer engineering, or software engineering|51403.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Go;Java;JavaScript;Python;Scala;Bash/Shell\n8446|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|105000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;F#;Java;JavaScript;SQL;HTML;CSS\n29303|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|61752.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;PHP;SQL;HTML;CSS;Bash/Shell\n86128|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|57581.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n20763|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|130000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;TypeScript;HTML;CSS\n99911|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|36000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;CSS\n57656|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|13306.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;R;TypeScript;HTML;CSS\n6181|India|Slightly dissatisfied|Information systems, information technology, or system administration|5640.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n76715|Mexico|Slightly dissatisfied|Computer science, computer engineering, or software engineering|5796.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C++;Objective-C;Swift\n90037|United Kingdom|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|683412.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C++;C#;JavaScript;PHP;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n81185|Cuba|Moderately satisfied|Computer science, computer engineering, or software engineering|876.0|Daily or almost every day|Male|Black or of African descent;Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|C++\n45373|India|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|27708.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;SQL\n90276|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|122000.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Groovy;Java;JavaScript;Perl;Python;TypeScript;Bash/Shell\n30624|Poland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|21876.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Go\n92258|Canada|Extremely satisfied|A health science (ex. nursing, pharmacy, radiology)|61196.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n52971|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|3757.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n62765|United States|Extremely satisfied|Web development or web design|50000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n88501|Poland|Slightly dissatisfied|Mathematics or statistics|30000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n93045|Bulgaria|Slightly dissatisfied|Computer science, computer engineering, or software engineering|26256.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;Ruby;TypeScript;Kotlin\n84335|Bulgaria|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|12000.0|I don't typically exercise|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|PHP;SQL;HTML;CSS\n41006|Australia|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|74375.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;SQL\n31418|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|56365.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n62709|Russian Federation|Extremely satisfied|Computer science, computer engineering, or software engineering|115000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;Objective-C;Swift\n68114|Netherlands|Slightly satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;Python;Kotlin\n95558|Russian Federation|Slightly dissatisfied|Computer science, computer engineering, or software engineering|12.0|I don't typically exercise|Female;Transgender|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n86398|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|15600.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;C#;Python;VBA;VB.NET\n24186|United States|Moderately satisfied|A health science (ex. nursing, pharmacy, radiology)|120000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Go;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n63928|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|68000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Perl;Python;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n78437|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|95000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript\n68457|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;JavaScript;Perl;SQL;TypeScript;HTML;CSS;Bash/Shell\n87207|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Assembly;C#;Matlab;Bash/Shell\n89623|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Objective-C;Python;Bash/Shell\n15827|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|170000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Groovy;Java;JavaScript;Objective-C;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n76384|United Kingdom|Slightly satisfied|Mathematics or statistics|46498.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#\n31770|Germany|Moderately satisfied|Information systems, information technology, or system administration|61194.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;SQL\n68677|Russian Federation|Moderately satisfied|Web development or web design|17088.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Lua;Perl;PHP;SQL;HTML;CSS;Bash/Shell\n98051|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|44400.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript\n54992|United Kingdom|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|55006.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;SQL;VBA;VB.NET;HTML;CSS\n76940|Brazil|Slightly dissatisfied|Computer science, computer engineering, or software engineering|811000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;JavaScript;Ruby;SQL;HTML;CSS\n9042|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|37152.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n18947|Maldives|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|15588.0|3 - 4 times per week|Female|South Asian|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;SQL;HTML;CSS\n50503|Germany|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|43320.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Java;Matlab;Python;Bash/Shell\n37946|Portugal|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|18360.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;SQL;VBA;VB.NET;Visual Basic 6\n40193|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80000.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;Matlab;Python\n21258|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|16000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;Python\n99474|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Perl;Python;HTML;CSS\n42902|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|109200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;Bash/Shell\n59582|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|16872.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Groovy;Java;JavaScript;Python;SQL;TypeScript;Cobol;HTML;CSS;Bash/Shell\n99441|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|55562.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|55 - 64 years old|Less than a year ago|Assembly;C;C++;C#;HTML;Bash/Shell\n12166|India|Moderately satisfied|Computer science, computer engineering, or software engineering|4692.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|Swift\n13006|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|30597.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;Java;JavaScript;Lua;PHP;Python;SQL;HTML;CSS;Bash/Shell\n42202|Argentina|Slightly satisfied|Information systems, information technology, or system administration|20340.0|I don't typically exercise|Female|Hispanic or Latino/Latina;White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Haskell;Java;JavaScript;Objective-C;Python;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n94706|Lebanon|Slightly dissatisfied|Computer science, computer engineering, or software engineering|21384.0|I don't typically exercise|Female|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;Matlab;R;Swift;Cobol;HTML;CSS\n77558|Austria|Slightly satisfied|Computer science, computer engineering, or software engineering|35688.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;JavaScript;Python;Bash/Shell\n86195|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|50000.0|Daily or almost every day|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;SQL;HTML;CSS\n52440|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|44449.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Matlab;Python;Ruby;HTML;CSS;Bash/Shell\n95199|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|69000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;Bash/Shell\n57989|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|63000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;HTML;CSS\n26999|United States|Slightly dissatisfied|A humanities discipline (ex. literature, history, philosophy)|175000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;HTML;Bash/Shell\n12026|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|128000.0|I don't typically exercise|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;Python\n63243|Poland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|15180.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n33018|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|54336.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Haskell;Java;JavaScript;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n74694|Colombia|Moderately dissatisfied|Computer science, computer engineering, or software engineering|29520.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML\n60299|Germany|Slightly dissatisfied|Web development or web design|22032.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n48153|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|36716.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Clojure;Java;JavaScript;Python;TypeScript;Bash/Shell\n95880|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|5260.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n90296|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|129900.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Clojure;Groovy;JavaScript;Python;Ruby;Bash/Shell\n59039|Netherlands|Moderately satisfied|Information systems, information technology, or system administration|91791.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;SQL;HTML;CSS\n12403|United States|Moderately satisfied|Information systems, information technology, or system administration|83200.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n46195|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|42348.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript\n54437|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|54336.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;JavaScript;PHP;Python;TypeScript;HTML;CSS\n10113|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|235000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Assembly;C;C++;JavaScript;Objective-C;Python;Swift;HTML;CSS\n12713|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|41124.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|PHP;SQL;HTML;CSS\n22558|Turkey|Extremely satisfied|Computer science, computer engineering, or software engineering|146865.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C#;JavaScript;Objective-C;PHP;Python;VB.NET\n11375|Dominican Republic|Moderately dissatisfied|Computer science, computer engineering, or software engineering|16860.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML\n3337|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|84165.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C#;SQL;Delphi/Object Pascal;HTML;CSS\n58940|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|5088.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;SQL;VB.NET;HTML\n62937|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|25000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n70203|Germany|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|58752.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n42068|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|275000.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Assembly;C;Java;Objective-C\n46104|Czech Republic|Slightly satisfied|Computer science, computer engineering, or software engineering|27900.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n55152|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|170000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;Kotlin\n17901|Belgium|Moderately dissatisfied|Computer science, computer engineering, or software engineering|38184.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n66005|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|131000.0|3 - 4 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Python;TypeScript;Visual Basic 6;HTML;CSS;Bash/Shell\n32349|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|91791.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;SQL;Bash/Shell\n13253|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|88119.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Java;Objective-C;Python;SQL;Bash/Shell\n71877|Sweden|Moderately dissatisfied|Mathematics or statistics|56292.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;Haskell;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n62587|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9424.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|Objective-C;Swift\n77234|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|41000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n56304|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|38893.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n101567|Australia|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|111963.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;Bash/Shell\n73781|United States|Extremely satisfied|Information systems, information technology, or system administration|90000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n59609|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;VB.NET;HTML;CSS\n33066|France|Slightly satisfied|Computer science, computer engineering, or software engineering|39164.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Go;Java;JavaScript;PHP;Scala;TypeScript;Ocaml;HTML;CSS;Bash/Shell\n76128|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|104030.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Go;JavaScript;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n5419|Turkey|Extremely satisfied|Mathematics or statistics|600000.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n80769|Slovenia|Slightly satisfied|Computer science, computer engineering, or software engineering|22032.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;Java;PHP;SQL;VBA;VB.NET;HTML;CSS\n19051|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|34726.0|3 - 4 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;Swift;HTML\n21021|Greece|Moderately satisfied|Computer science, computer engineering, or software engineering|46992.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n48564|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|61580.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n12707|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|54755.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Matlab;Python;Bash/Shell\n57240|Germany|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|36716.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n44654|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|34726.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Matlab;Python;Bash/Shell\n64092|Sweden|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|93420.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Matlab;SQL;VB.NET;HTML;CSS\n26973|United States|Extremely dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|68000.0|I don't typically exercise|Female|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|HTML;CSS\n75591|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|64417.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal;HTML;CSS\n9287|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|87971.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C++;C#;JavaScript;SQL;VB.NET;HTML;CSS;Bash/Shell\n87545|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|135000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;Go;Java;JavaScript;Lua;Python;Ruby;Rust;Scala;SQL;HTML;CSS;Bash/Shell\n98849|Sweden|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|74856.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Python\n50530|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|36084.0|I don't typically exercise|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;HTML;CSS;Bash/Shell\n11814|Portugal|Moderately satisfied|Computer science, computer engineering, or software engineering|30840.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;HTML\n89307|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;Scala;Kotlin\n21804|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n9933|Pakistan|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|11928.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n87614|France|Extremely satisfied|Computer science, computer engineering, or software engineering|97910.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Bash/Shell\n14793|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n30224|United States|Slightly satisfied|Mathematics or statistics|132000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Ruby;CSS\n55276|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|33657.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;HTML;CSS\n88901|Japan|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|37812.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;CoffeeScript;Go;Java;JavaScript;Objective-C;PHP;Python;Ruby;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n96731|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|4740.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;Python;SQL;Swift;Cobol;HTML;CSS\n32179|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;Perl;PHP;Ruby;Rust;Scala;HTML;CSS;Bash/Shell\n33803|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|250000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS\n83190|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|95462.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Objective-C;Python;Ruby;Swift\n65782|Russian Federation|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61992.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL\n25565|India|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|19568.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Python;R;VBA\n80703|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14400.0|3 - 4 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n63405|Thailand|Moderately satisfied|Computer science, computer engineering, or software engineering|7524.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Go;JavaScript;PHP;Python;Ruby;HTML\n63114|Czech Republic|Moderately satisfied|Information systems, information technology, or system administration|29376.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java\n42749|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|65000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;Python;SQL;VBA;VB.NET\n70448|United Kingdom|Extremely satisfied|Mathematics or statistics|69452.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|JavaScript;Python;SQL;TypeScript;HTML;CSS\n96450|Poland|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|59988.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;SQL;HTML;CSS\n89392|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|90000.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n87160|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|88224.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;C#;Java;JavaScript;SQL;TypeScript;Visual Basic 6;HTML;CSS;Bash/Shell\n83898|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|18785.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Erlang;JavaScript;Python;R;HTML;CSS\n74443|India|Slightly satisfied|Computer science, computer engineering, or software engineering|10175.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript;TypeScript;HTML;CSS\n3225|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|62418.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;Groovy;Java;Objective-C;Rust;Scala;SQL;TypeScript;VBA;Kotlin;HTML;CSS;Bash/Shell\n69151|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|61194.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;Java;JavaScript;SQL;Kotlin;HTML;CSS;Bash/Shell\n81460|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|13872.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;HTML;CSS\n49856|Norway|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|63762.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;TypeScript;HTML\n73628|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|95000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript\n94405|United Kingdom|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|56951.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n44672|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|133000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;Python;HTML;CSS;Bash/Shell\n13496|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|129000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;Objective-C;Swift;Bash/Shell\n25950|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|46507.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;Python;TypeScript\n59871|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|55562.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n60380|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|185000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;CoffeeScript;Java;JavaScript;Perl;PHP;Python;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n67897|India|Moderately satisfied|Computer science, computer engineering, or software engineering|11268.0|I don't typically exercise|Male|South Asian|Primary/elementary school|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n72422|Ukraine|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Clojure;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n21772|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|28656.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;SQL;HTML;CSS\n41981|India|Moderately satisfied|Computer science, computer engineering, or software engineering|7984.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|SQL\n80258|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|20351.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;JavaScript;R;Scala;SQL;TypeScript\n27245|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|190000.0|1 - 2 times per week|Male|East Asian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;Python;Bash/Shell\n64672|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|23808.0|3 - 4 times per week|Female|Hispanic or Latino/Latina|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java\n98427|Belgium|Moderately satisfied|Computer science, computer engineering, or software engineering|33780.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;C#;Java;HTML;CSS\n28588|Romania|Moderately satisfied|Information systems, information technology, or system administration|48955.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|SQL\n67274|Malta|Moderately satisfied|Computer science, computer engineering, or software engineering|22032.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;Python\n81522|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|174000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;Java;JavaScript;HTML;CSS;Bash/Shell\n89855|Germany|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61680.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Perl;PHP;SQL;HTML;CSS;Bash/Shell\n61348|Germany|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|46992.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|R\n43880|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|400044.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;HTML;CSS\n91547|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|86676.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n52029|United States|Moderately satisfied|Information systems, information technology, or system administration|124500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Perl;SQL;HTML;CSS;Bash/Shell\n67308|Colombia|Slightly satisfied|Information systems, information technology, or system administration|7176.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;SQL\n4784|Lithuania|Moderately satisfied|Computer science, computer engineering, or software engineering|42504.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP\n65690|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|48313.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;Go;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n3878|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|122100.0|I don't typically exercise|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n91650|India|Moderately satisfied|Computer science, computer engineering, or software engineering|3500.0|Daily or almost every day|Male|East Asian|They never completed any formal education|3 - 4 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n62947|Turkey|Moderately satisfied|Computer science, computer engineering, or software engineering|26544.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n39517|United Kingdom|Slightly dissatisfied|Web development or web design|52783.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n82665|Turkey|Slightly dissatisfied|Computer science, computer engineering, or software engineering|38148.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|35 - 44 years old|Less than a year ago|C#;Go;JavaScript;Ruby\n11342|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|33120.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;Kotlin\n69446|Canada|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|112730.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Groovy;Java;Bash/Shell\n97228|Latvia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n71761|India|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|5636.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;HTML;CSS\n64513|United Kingdom|Extremely satisfied|Mathematics or statistics|33615.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n51916|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|107000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|55 - 64 years old|More than 4 years ago|C;C#;JavaScript;Julia;Objective-C;SQL;TypeScript;HTML\n760|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|99468.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Go;Groovy;Java;JavaScript;Objective-C;Python;Ruby;Swift;Kotlin;HTML;CSS;Bash/Shell\n23513|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|66000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;Bash/Shell\n24905|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|31764.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#\n67756|Pakistan|Moderately satisfied|Computer science, computer engineering, or software engineering|9756.0|1 - 2 times per week|Female|Middle Eastern;South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Python;HTML;CSS\n95633|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|95000.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n76889|Nigeria|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|5004.0|I don't typically exercise|Male|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n74425|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|76000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;JavaScript;Rust;Bash/Shell\n66673|United States|Slightly satisfied|Information systems, information technology, or system administration|117000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;Perl;SQL;Bash/Shell\n37862|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|112762.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Python;SQL;TypeScript;HTML;CSS\n28600|United Kingdom|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|62507.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Python;Ruby;Scala;Kotlin\n48883|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|35244.0|3 - 4 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|Groovy;Java;JavaScript\n13234|Hungary|Slightly satisfied|Computer science, computer engineering, or software engineering|40392.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript;Lua;Perl;SQL\n39646|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|1164000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;HTML;CSS;Bash/Shell\n95524|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|102000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;Python;SQL;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n81448|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|125014.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Groovy;Java;Python;Scala;HTML;CSS;Bash/Shell\n327|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|23440.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML\n70748|Ireland|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|44060.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Haskell;Java;Matlab;Ruby;Scala;Bash/Shell\n34422|Iran, Islamic Republic of...|Moderately dissatisfied|Information systems, information technology, or system administration|36000.0|I don't typically exercise|Male|Middle Eastern|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java\n53513|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|29373.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;VBA;HTML;CSS;Bash/Shell\n19630|Italy|Moderately dissatisfied|Computer science, computer engineering, or software engineering|64866.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Groovy;Java;Python;SQL;Cobol;Bash/Shell\n96390|South Africa|Slightly satisfied|Computer science, computer engineering, or software engineering|54384.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n48420|Czech Republic|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|27804.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Python;VBA;Bash/Shell\n75954|Denmark|Moderately satisfied|Mathematics or statistics|49308.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Matlab;Python;R;Bash/Shell\n37201|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|47000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n54106|Netherlands|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|68537.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Scala;SQL;Swift;HTML;CSS\n95701|United States|Slightly dissatisfied|I never declared a major|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n10317|Portugal|Slightly satisfied|Computer science, computer engineering, or software engineering|14688.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n39800|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|95000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;CSS\n22566|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|96626.0|I don't typically exercise|Female|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n66207|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|38893.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n66788|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|118068.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;Ruby;Kotlin\n11559|Switzerland|Extremely satisfied|Computer science, computer engineering, or software engineering|83416.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n88541|Poland|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|63516.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Python;R;Scala\n24620|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|76514.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift\n54979|Qatar|Slightly dissatisfied|Computer science, computer engineering, or software engineering|120000.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n53442|India|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18780.0|Daily or almost every day|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|PHP;Python;SQL;HTML;CSS;Bash/Shell\n13237|Canada|Slightly dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|48313.0|Daily or almost every day|Female|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n46824|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|3756.0|I don't typically exercise|Male|South Asian|They never completed any formal education|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n90267|United States|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|2000000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|55 - 64 years old|Less than a year ago|C;Go;Perl;PHP;SQL;Bash/Shell\n97711|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|79973.0|3 - 4 times per week|Male|East Asian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;HTML;CSS\n47043|Japan|Moderately dissatisfied|Information systems, information technology, or system administration|54023.0|Daily or almost every day|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|CoffeeScript;JavaScript;PHP;Ruby;HTML;CSS;Bash/Shell\n78240|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|63642.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Python;R;SQL;TypeScript;HTML;CSS\n27054|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|135000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;Haskell;Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n20656|United States|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|70000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n85667|United Republic of Tanzania|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|37500.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n4746|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;Java;JavaScript;SQL;HTML\n78606|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|20000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Lua;Matlab;Python;Bash/Shell\n37621|India|Slightly satisfied|Computer science, computer engineering, or software engineering|4692.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n30340|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;SQL;HTML\n35729|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9706.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Objective-C;Swift\n95852|Ukraine|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL\n10997|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|130000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n78878|India|Moderately satisfied|Computer science, computer engineering, or software engineering|7200.0|I don't typically exercise|Male|East Asian|Primary/elementary school|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n95197|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|68500.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n58025|Australia|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|123959.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;Objective-C;Ruby;Swift;Bash/Shell\n6660|Romania|Extremely dissatisfied|Computer science, computer engineering, or software engineering|58752.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Swift;Kotlin\n66063|Myanmar|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6000.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Groovy;Java;JavaScript;HTML;CSS;Bash/Shell\n96035|Denmark|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|52597.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Swift;Ocaml;HTML;CSS\n96482|France|Moderately satisfied|Computer science, computer engineering, or software engineering|121164.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Perl;Python;Ruby;Rust;Scala;SQL;Swift;Bash/Shell\n38046|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|142000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Lua;Python;HTML;CSS\n64294|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|150000.0|1 - 2 times per week|Female|South Asian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;SQL;TypeScript\n98973|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|55075.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;HTML\n14782|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;CoffeeScript;Java;JavaScript;SQL;TypeScript;HTML;CSS\n95338|United States|Moderately satisfied|Mathematics or statistics|75000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;Python;R;SQL;HTML;CSS;Bash/Shell\n33297|Netherlands|Slightly dissatisfied|Computer science, computer engineering, or software engineering|48955.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java\n19466|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|114596.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Clojure;Ruby\n9944|Brazil|Slightly satisfied|Computer science, computer engineering, or software engineering|11604.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n26164|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n44463|Canada|Slightly dissatisfied|Information systems, information technology, or system administration|60391.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;HTML;CSS\n69530|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|10175.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n92572|Austria|Extremely satisfied|Web development or web design|82000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C;C#;JavaScript;Objective-C;PHP;Swift;TypeScript;VB.NET;HTML\n51971|Denmark|Moderately satisfied|Computer science, computer engineering, or software engineering|887580.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C++;C#;SQL;VB.NET\n7075|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|45624.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;Java;JavaScript;Lua;Python;R;Bash/Shell\n16088|Germany|Moderately satisfied|Mathematics or statistics|117492.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Rust\n64501|Russian Federation|Extremely satisfied|Computer science, computer engineering, or software engineering|31848.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Assembly;C++;Go;Java;JavaScript;Lua;PHP;Python;Scala;SQL;TypeScript;Bash/Shell\n75367|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|45000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;Go;Groovy;Ruby;Bash/Shell\n32729|India|Moderately dissatisfied|Information systems, information technology, or system administration|26400.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;Python;SQL\n60772|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|68040.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Java;Python;Cobol\n39437|Brazil|Extremely dissatisfied|Computer science, computer engineering, or software engineering|32127.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n7580|Netherlands|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|85671.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Python;Ruby;Swift\n80738|Romania|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|34680.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;JavaScript;Python\n81401|India|Extremely satisfied|Computer science, computer engineering, or software engineering|8448.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;TypeScript;HTML;CSS\n14902|Australia|Extremely dissatisfied|Computer science, computer engineering, or software engineering|99967.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|C#;JavaScript;R;SQL;TypeScript;HTML;CSS\n90240|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|57200.0|Daily or almost every day|Male;Transgender|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|More than 4 years ago|C#;JavaScript;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n53894|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|112400.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;Bash/Shell\n49337|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|76495.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n84518|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|160000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Go;Groovy;Java;JavaScript\n19477|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|23652.0|I don't typically exercise|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java\n66518|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|66089.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|JavaScript;Python;Ruby;Scala;Swift;TypeScript\n36045|United States|Extremely satisfied|Information systems, information technology, or system administration|115000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n71740|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|6000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Java;Lua;PHP;SQL;HTML;CSS;Bash/Shell\n33005|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|49032.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n30951|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|Black or of African descent;East Asian;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Erlang;Go;Haskell;Java;JavaScript;Rust;Scala;TypeScript;Bash/Shell\n75510|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|21000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;JavaScript;Python;SQL;VBA;HTML;CSS;Bash/Shell\n35833|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|125124.0|3 - 4 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;Erlang;Go;Haskell;Java;JavaScript;Matlab;Perl;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n27692|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|76397.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;TypeScript\n57718|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|91791.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n64887|Bangladesh|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|5160.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n17525|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|122388.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;Swift;VBA;VB.NET;HTML;CSS\n47020|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|135000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;Objective-C;Swift;Kotlin\n45879|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|29373.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Go;Java;JavaScript;Objective-C;PHP;SQL;Swift;Bash/Shell\n35576|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|115000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Python;Ruby;HTML;CSS;Bash/Shell\n19380|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|44064.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Go;Java;JavaScript;PHP;R;SQL;Swift;HTML;CSS\n10047|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;HTML;CSS\n9651|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|28000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n29455|Germany|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|67313.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;R;SQL;HTML;CSS\n22209|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|144000.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|Over 4 hours|45 - 54 years old|More than 4 years ago|JavaScript;SQL\n84041|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|200000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;Clojure;Erlang;Java;JavaScript;Ruby;SQL;HTML;Bash/Shell\n98497|United States|Extremely satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|65000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;HTML;CSS\n47708|Mexico|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|12888.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;CoffeeScript;JavaScript;Python;Ruby;SQL;HTML;CSS\n72530|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|2820.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;JavaScript;PHP;SQL;HTML;CSS\n10826|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n14597|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|154000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n22936|United Kingdom|Moderately satisfied|Mathematics or statistics|27781.0|1 - 2 times per week|Male;Transgender|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;JavaScript;Matlab;R;HTML;CSS;Bash/Shell\n12276|Iran, Islamic Republic of...|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1200.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;C#;JavaScript;Python;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n59073|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|60000.0|1 - 2 times per week|Female|Black or of African descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS\n51487|France|Slightly satisfied|Computer science, computer engineering, or software engineering|41612.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n76565|Libyan Arab Jamahiriya|Extremely satisfied|Computer science, computer engineering, or software engineering|3900.0|I don't typically exercise|Male|Middle Eastern|They never completed any formal education|3 - 4 hours|45 - 54 years old|More than 4 years ago|C;C++;C#;JavaScript;SQL;VB.NET;Delphi/Object Pascal;HTML;CSS\n90914|United States|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|90000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n85308|India|Extremely satisfied|Computer science, computer engineering, or software engineering|6576.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Java;Python\n75575|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|58000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;Python;HTML;CSS\n74877|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|74885.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C++;C#;Java;JavaScript;Objective-C;PHP;Python;SQL;VBA;Bash/Shell\n94611|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|94000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;Python\n52323|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|30840.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n22692|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|56460.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Groovy;Java;SQL;Bash/Shell\n54589|India|Moderately satisfied|Computer science, computer engineering, or software engineering|18780.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Matlab;Python;SQL;HTML;CSS\n26327|France|Slightly satisfied|Information systems, information technology, or system administration|42836.0|1 - 2 times per week|Male|Black or of African descent;White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;Java;SQL;HTML;CSS\n93266|Belgium|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|73433.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|55 - 64 years old|More than 4 years ago|C;C#;SQL;HTML;CSS\n109|Azerbaijan|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|144.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n1923|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n13094|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|51983.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;Python\n397|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|2000000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;Matlab;Python;Bash/Shell\n64244|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|31000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n71846|Ukraine|Extremely satisfied|Computer science, computer engineering, or software engineering|45096.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C++;Go;Java;Objective-C;Python;Swift;Kotlin\n41972|Belarus|Moderately satisfied|Information systems, information technology, or system administration|32664.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;HTML;CSS\n44613|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|42836.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Erlang;Groovy;Java;JavaScript;Objective-C;Perl;PHP;Python;Scala;Delphi/Object Pascal;Bash/Shell\n72477|Ecuador|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|3600.0|I don't typically exercise|Female|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;R;SQL;HTML;CSS\n28306|Thailand|Slightly satisfied|Information systems, information technology, or system administration|293736.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++\n20960|Brazil|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|77979.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS\n33696|Australia|Moderately dissatisfied|Computer science, computer engineering, or software engineering|119960.0|3 - 4 times per week|Male|Middle Eastern|Primary/elementary school|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;Objective-C;Swift;HTML;CSS\n20381|United Kingdom|Extremely satisfied|Web development or web design|29170.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;CoffeeScript;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n69430|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n28143|Poland|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|24702.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL;VBA;VB.NET;HTML;Bash/Shell\n9309|Australia|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|83172.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C#;Java;JavaScript;PHP;Python;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n67341|United States|Extremely satisfied|Web development or web design|103000.0|1 - 2 times per week|Male;Transgender|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;Visual Basic 6;HTML;CSS\n46142|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|150288.0|Daily or almost every day|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n99337|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|58000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C++;C#;Java;HTML;CSS\n30203|France|Moderately dissatisfied|Web development or web design|33780.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;CoffeeScript;Java;JavaScript;Perl;PHP;Ruby;Rust;Swift;TypeScript;HTML;CSS;Bash/Shell\n47879|India|Moderately satisfied|Computer science, computer engineering, or software engineering|18785.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;SQL;TypeScript;HTML;CSS\n72708|Pakistan|Moderately satisfied|Computer science, computer engineering, or software engineering|32532.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;SQL;TypeScript;Bash/Shell\n3285|Singapore|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|56779.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n14443|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|10140.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#\n10877|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|96626.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript\n49168|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Groovy;JavaScript;Python;HTML;CSS;Bash/Shell\n37287|United Kingdom|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|852876.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|SQL\n71744|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|38184.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n71432|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|110000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|Groovy;Java;SQL;VBA\n1517|Peru|Slightly dissatisfied|Computer science, computer engineering, or software engineering|88000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;CoffeeScript;Erlang;Haskell;Java;JavaScript;Lua;Matlab;Perl;Python;R;Ruby;SQL;HTML;CSS;Bash/Shell\n97131|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|110000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS\n25292|Bulgaria|Moderately satisfied|Mathematics or statistics|26400.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML\n90855|South Africa|Slightly dissatisfied|Information systems, information technology, or system administration|62304.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;PHP;R;Delphi/Object Pascal;HTML;CSS\n34211|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|55 - 64 years old|More than 4 years ago|C++;C#;Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n99837|Serbia|Moderately satisfied|Computer science, computer engineering, or software engineering|20556.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C++;JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n40262|Ethiopia|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|6972.0|1 - 2 times per week|Male|Black or of African descent|Associate degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;TypeScript\n14284|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|70000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;Java;JavaScript;Matlab;Python;R;SQL;HTML;CSS;Bash/Shell\n22957|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|111963.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;TypeScript\n79645|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|367164.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n3646|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|JavaScript;SQL;VB.NET;HTML;CSS\n61098|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|80776.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Assembly;C;C++;Java;JavaScript;Objective-C;SQL;Swift;HTML;CSS;Bash/Shell\n13504|United States|Moderately dissatisfied|Information systems, information technology, or system administration|60000.0|Daily or almost every day|Female;Transgender|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;SQL;Delphi/Object Pascal;HTML;CSS\n80749|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|80772.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;SQL;HTML\n39006|France|Slightly satisfied|Computer science, computer engineering, or software engineering|122388.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;F#;TypeScript\n86376|France|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript\n99104|Russian Federation|Slightly dissatisfied|Computer science, computer engineering, or software engineering|10620.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|C;C++;JavaScript;Matlab;Python;SQL;Visual Basic 6;HTML;CSS\n15503|India|Extremely satisfied|Computer science, computer engineering, or software engineering|11268.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|JavaScript\n27374|Canada|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|82132.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Python;SQL;Bash/Shell\n58214|Brazil|Moderately satisfied|Information systems, information technology, or system administration|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n11804|United Kingdom|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|45838.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Ruby;HTML;CSS;Bash/Shell\n575|Ireland|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|63642.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;TypeScript;HTML;CSS\n10770|Portugal|Extremely satisfied|Computer science, computer engineering, or software engineering|38552.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Go;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n78807|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;HTML;CSS;Bash/Shell\n4004|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|63516.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;TypeScript;HTML;CSS\n1599|China|Extremely dissatisfied|Computer science, computer engineering, or software engineering|60000.0|Daily or almost every day|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n45525|Brazil|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|29076.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;Bash/Shell\n100475|Russian Federation|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|42456.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;HTML;CSS\n69472|Portugal|Slightly satisfied|Computer science, computer engineering, or software engineering|41124.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;C++;CoffeeScript;Erlang;JavaScript;PHP;Ruby;Rust;SQL;HTML;CSS\n71422|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|17640.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;JavaScript;PHP;Python;HTML;CSS\n2676|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|150000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Python;Scala;SQL;HTML;CSS;Bash/Shell\n7309|Australia|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|121560.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n94688|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;F#;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n1628|India|Slightly satisfied|Computer science, computer engineering, or software engineering|281784.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n28843|United States|Moderately satisfied|A health science (ex. nursing, pharmacy, radiology)|120000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;JavaScript;Python;SQL;TypeScript;VBA\n25238|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|84000.0|Daily or almost every day|Male|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Python;R;SQL;HTML;CSS\n80971|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n37329|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|59980.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;CoffeeScript;JavaScript;Ruby;HTML;CSS\n21234|Australia|Moderately satisfied|Mathematics or statistics|63979.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;Java;JavaScript;Python;R;SQL;Swift;Kotlin;CSS\n84373|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|1020000.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;TypeScript;HTML;CSS;Bash/Shell\n84281|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|15132.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript;HTML;CSS\n50496|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29000.0|Daily or almost every day|Female|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;Java;Matlab;Python;SQL\n65661|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;Ruby;HTML;CSS\n58900|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n63868|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|South Asian|Associate degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C++;Java;JavaScript;SQL;HTML;CSS\n4324|Germany|Moderately dissatisfied|Information systems, information technology, or system administration|734328.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;HTML;CSS\n84821|France|Slightly satisfied|A health science (ex. nursing, pharmacy, radiology)|36716.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Java;JavaScript;Objective-C;PHP;Ruby;SQL;Swift;VBA;VB.NET;Visual Basic 6;Kotlin;HTML;CSS;Bash/Shell\n6165|Russian Federation|Moderately satisfied|Web development or web design|8850.0|Daily or almost every day|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n28879|Austria|Extremely dissatisfied|Computer science, computer engineering, or software engineering|79552.0|1 - 2 times per week|Male|Middle Eastern|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Python;R;TypeScript;HTML;CSS\n92117|France|Extremely satisfied|Web development or web design|14688.0|1 - 2 times per week|Male|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;Python;Scala;SQL;HTML;CSS;Bash/Shell\n14978|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Java;JavaScript;Objective-C;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n41310|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|26436.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Objective-C;PHP;SQL;Swift;HTML;CSS\n73845|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|34296.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Groovy;Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n31973|Czech Republic|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|40536.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Lua;Python;SQL;HTML;CSS;Bash/Shell\n52154|Turkey|Slightly dissatisfied|Computer science, computer engineering, or software engineering|8004.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n48208|Iran, Islamic Republic of...|Extremely satisfied|Computer science, computer engineering, or software engineering|0.0|I don't typically exercise|Male|Middle Eastern|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|18 - 24 years old|I've never had a job|Assembly;C;C++;Java;Python;SQL;HTML;CSS;Bash/Shell\n61588|Italy|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|22032.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|55 - 64 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n96446|Croatia|Moderately satisfied|Computer science, computer engineering, or software engineering|25656.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python\n11514|Australia|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|47984.0|3 - 4 times per week|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;PHP;Ruby;SQL;HTML;CSS\n22740|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|1444.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;HTML\n739|Iran, Islamic Republic of...|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|20000.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n51724|Czech Republic|Slightly satisfied|Computer science, computer engineering, or software engineering|17376.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java\n93728|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|110000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;Kotlin;Bash/Shell\n53978|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|42000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n75843|South Korea|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|26352.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;TypeScript;HTML;CSS\n60446|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|23482.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n52330|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|50904.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n17298|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|52783.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#\n95882|India|Slightly satisfied|Computer science, computer engineering, or software engineering|3756.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;SQL;HTML;CSS\n99565|Australia|Extremely dissatisfied|A natural science (ex. biology, chemistry, physics)|84497.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Python;R;HTML;CSS\n9849|Sri Lanka|Extremely satisfied|Computer science, computer engineering, or software engineering|11700.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|I've never had a job|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n2586|United States|Moderately satisfied|Mathematics or statistics|57000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Perl;R;Bash/Shell\n47087|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|32209.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|R;SQL\n20326|Viet Nam|Slightly satisfied|Computer science, computer engineering, or software engineering|3600.0|I don't typically exercise|Male|East Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n35251|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|62000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n27230|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|62507.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n10395|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|93500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n4138|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|43482.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;C#;Python;SQL;HTML;CSS;Bash/Shell\n56644|Canada|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|44609.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL\n30890|India|Extremely satisfied|Computer science, computer engineering, or software engineering|16437.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n19432|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|60000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n3|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|70841.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Python;Bash/Shell\n99139|Turkey|Moderately dissatisfied|Computer science, computer engineering, or software engineering|23844.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP\n28919|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;Python;R;SQL;TypeScript\n83780|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|14976.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Bash/Shell\n54688|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|690000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Ruby;HTML;CSS;Bash/Shell\n24765|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;TypeScript\n96527|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|70985.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;SQL\n12130|United States|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|30000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;R;HTML\n11832|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|44449.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL;HTML;CSS;Bash/Shell\n57366|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Perl;SQL;HTML;CSS;Bash/Shell\n70359|Other Country (Not Listed Above)|Moderately satisfied|Computer science, computer engineering, or software engineering|12480.0|I don't typically exercise|Female|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Java;JavaScript;Matlab;PHP;Python;SQL;Visual Basic 6;HTML;CSS\n32452|United Kingdom|Slightly dissatisfied|Web development or web design|33.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS\n81220|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|85000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Groovy;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n54378|Egypt|Slightly dissatisfied|Computer science, computer engineering, or software engineering|1800.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|More than 4 years ago|C;C++;C#;SQL;VBA;Visual Basic 6;HTML;CSS;Bash/Shell\n12328|Norway|Moderately satisfied|Information systems, information technology, or system administration|53560.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n72867|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|96000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Scala;TypeScript;Bash/Shell\n81698|Algeria|Slightly dissatisfied|Computer science, computer engineering, or software engineering|4728.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;PHP;Python;SQL;Delphi/Object Pascal;HTML;CSS\n19984|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n54322|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|28956.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n25522|United Kingdom|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|70841.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n65851|Australia|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|103965.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n3119|Ireland|Moderately satisfied|Computer science, computer engineering, or software engineering|88119.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Go;Haskell;Java;JavaScript;R;Scala;SQL;Bash/Shell\n22065|United States|Extremely dissatisfied|I never declared a major|98000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;Bash/Shell\n89450|Argentina|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|30000.0|1 - 2 times per week|Female|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;SQL;HTML;Bash/Shell\n21867|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|41671.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#\n98905|Japan|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|120000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;Ruby;HTML;CSS\n93735|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|30000.0|3 - 4 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C++;JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n65710|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|100000.0|3 - 4 times per week|Male|Black or of African descent;East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n50835|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|70000.0|3 - 4 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;Clojure;Java;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n40989|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|48000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript;Objective-C;Python;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n89218|United States|Moderately dissatisfied|Information systems, information technology, or system administration|95000.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Ruby;SQL\n69039|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|17640.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Haskell;Java;JavaScript;Python;Scala;Kotlin;HTML;CSS;Bash/Shell\n96869|United States|Moderately satisfied|I never declared a major|90000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n37945|Hungary|Slightly satisfied|Computer science, computer engineering, or software engineering|35724.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Erlang;Java;JavaScript;Matlab;Objective-C;Python;SQL;Swift;Kotlin;HTML;CSS;Bash/Shell\n3472|Ukraine|Slightly satisfied|Computer science, computer engineering, or software engineering|12108.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;SQL\n60176|Serbia|Extremely satisfied|Computer science, computer engineering, or software engineering|8808.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;SQL\n32041|Malaysia|Slightly satisfied|Mathematics or statistics|19116.0|I don't typically exercise|Female|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;Java;JavaScript;Objective-C;Swift;HTML;CSS\n25425|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|136000.0|Daily or almost every day|Female|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Go;Java;Python;Bash/Shell\n74236|United States|Extremely dissatisfied|A humanities discipline (ex. literature, history, philosophy)|55000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;Objective-C;R;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n68601|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|716748.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Perl;Python;Bash/Shell\n6077|Sweden|Extremely dissatisfied|A natural science (ex. biology, chemistry, physics)|52404.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;Python;SQL;Bash/Shell\n101576|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n85084|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|109500.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;HTML;CSS\n38647|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|180000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C++;JavaScript;Lua;Python;TypeScript;Bash/Shell\n71593|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|32000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#\n28195|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|225000.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Python;SQL;HTML;Bash/Shell\n45129|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|52872.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Python;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n100511|Ireland|Moderately satisfied|Computer science, computer engineering, or software engineering|85671.0|Daily or almost every day|Female|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Hack;Haskell;Lua;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n23379|Croatia|Slightly satisfied|Computer science, computer engineering, or software engineering|30588.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n99897|United States|Moderately satisfied|Mathematics or statistics|150000.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Python;R;SQL;HTML;Bash/Shell\n38054|Belarus|Slightly dissatisfied|Computer science, computer engineering, or software engineering|9684.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n13361|Australia|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|134352.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Clojure;Groovy;Java;JavaScript;Matlab;Python;SQL;Bash/Shell\n3552|India|Extremely satisfied|Computer science, computer engineering, or software engineering|9396.0|Daily or almost every day|Male|South Asian|Primary/elementary school|Over 4 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;Swift;TypeScript;HTML;CSS\n74771|United States|Extremely satisfied|Web development or web design|108600.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n14129|Spain|Extremely satisfied|Information systems, information technology, or system administration|97910.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;Scala\n9178|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|8496.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;C#;Java;Objective-C;Python;SQL;Swift\n50265|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|26196.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;C#;Python;Ruby;TypeScript;Bash/Shell\n67284|Venezuela, Bolivarian Republic of...|Moderately satisfied|Information systems, information technology, or system administration|1000000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n27361|Albania|Slightly dissatisfied|Computer science, computer engineering, or software engineering|35244.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;HTML;CSS\n32211|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|64417.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Erlang;Java;Scala;Swift\n92596|United States|Moderately satisfied|Mathematics or statistics|90000.0|Daily or almost every day|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python\n68693|United States|Moderately satisfied|Mathematics or statistics|2600.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n13475|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|56460.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;C#;CoffeeScript;Java;JavaScript;SQL;HTML;CSS\n73635|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|104030.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Java;Python;Scala;SQL\n83171|Bangladesh|Slightly dissatisfied|Computer science, computer engineering, or software engineering|2892.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;C++;Java;PHP;SQL;HTML;CSS\n42916|Poland|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|21876.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;SQL\n14854|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|118366.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Assembly;C;C++;C#;Groovy;Java;JavaScript;Lua;Python;TypeScript;HTML;CSS;Bash/Shell\n69500|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|50179.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|JavaScript;TypeScript;HTML;CSS;Bash/Shell\n90282|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|19236.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;TypeScript;HTML\n78866|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|106000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++\n61575|France|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|55 - 64 years old|Between 2 and 4 years ago|PHP;SQL;HTML;CSS\n36229|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|104678.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Java;Python;Kotlin;HTML;CSS;Bash/Shell\n73482|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|125000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|Java;JavaScript;SQL;VBA;HTML;CSS;Bash/Shell\n100806|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|2328.0|Daily or almost every day|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|C#;SQL;Visual Basic 6;HTML;CSS\n93854|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|88000.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Go;Groovy;Java;JavaScript;Perl;Rust;SQL;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n1491|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|36468.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n78846|Belarus|Moderately dissatisfied|Computer science, computer engineering, or software engineering|34800.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java\n46475|Germany|Extremely satisfied|Information systems, information technology, or system administration|67560.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;Java;JavaScript;Python;Ruby;SQL;CSS;Bash/Shell\n16524|China|Moderately satisfied|Computer science, computer engineering, or software engineering|20568.0|1 - 2 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python;R;SQL;TypeScript;HTML;CSS\n23659|Canada|Extremely satisfied|Mathematics or statistics|64417.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|CoffeeScript;Go;JavaScript;Lua;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n55797|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|31948.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;JavaScript;SQL;VB.NET;Visual Basic 6;HTML;CSS\n53683|United Kingdom|Moderately satisfied|Web development or web design|69452.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n67567|United States|Moderately satisfied|Information systems, information technology, or system administration|63000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;Cobol;HTML;CSS;Bash/Shell\n65905|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|68000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Perl;Ruby;Rust;HTML;CSS;Bash/Shell\n52846|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|41000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|More than 4 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n74298|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n11565|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;Haskell;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n13432|China|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|31788.0|1 - 2 times per week|Female;Transgender;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Groovy;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n16723|Russian Federation|Slightly dissatisfied|Mathematics or statistics|12732.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;SQL\n2380|Serbia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|27276.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java\n51735|Poland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|59988.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n80999|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|82000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Bash/Shell\n4046|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|119058.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Haskell;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n77052|United States|Moderately satisfied|Web development or web design|10000.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;PHP;SQL;Swift;HTML;CSS\n33532|India|Slightly satisfied|Web development or web design|4512.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;SQL;VBA;VB.NET;HTML;CSS\n43376|United Kingdom|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|150012.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;Ruby;HTML;CSS\n72696|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|21228.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;PHP;TypeScript;HTML;CSS\n29028|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|66027.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;Visual Basic 6\n39401|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|82500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n94400|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|66674.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;Lua;SQL;TypeScript;HTML;CSS;Bash/Shell\n51679|United States|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|101000.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|PHP;Ruby;Scala;SQL;TypeScript;HTML;CSS\n67118|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|73433.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Haskell;JavaScript;Python;Rust;Scala;SQL;HTML;CSS;Bash/Shell\n2423|India|Moderately satisfied|Information systems, information technology, or system administration|2820.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|PHP;Python\n92180|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|155000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|45 - 54 years old|Less than a year ago|Erlang;JavaScript;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n1381|Brazil|Slightly dissatisfied|Information systems, information technology, or system administration|37428.0|Daily or almost every day|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Perl;PHP;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS\n18603|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|75000.0|1 - 2 times per week|Male|South Asian|Associate degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Objective-C;Swift;HTML;CSS\n74152|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|15000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;Go;Java;JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n33569|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|190000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;JavaScript;Python;HTML;CSS\n25229|Other Country (Not Listed Above)|Moderately satisfied|Computer science, computer engineering, or software engineering|30600.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|PHP;SQL;Delphi/Object Pascal;HTML\n50720|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|125000.0|I don't typically exercise|Male|Black or of African descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Lua;Perl;Python;SQL\n51356|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|101383.0|1 - 2 times per week|Female|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;SQL;HTML;CSS;Bash/Shell\n6774|Hong Kong (S.A.R.)|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|130896.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|I've never had a job|Assembly;C#;Erlang;Java;JavaScript;Objective-C;PHP;Python;SQL;TypeScript;HTML;CSS\n94763|United States|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|43000.0|1 - 2 times per week|Female|Black or of African descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS\n66432|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|19464.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript\n100060|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|100000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#\n47630|United States|Moderately satisfied|Mathematics or statistics|262000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML\n47544|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|55000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n59201|New Zealand|Moderately satisfied|Computer science, computer engineering, or software engineering|87701.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|Go;JavaScript;Lua;PHP;Python;SQL;HTML;CSS;Bash/Shell\n48597|France|Moderately satisfied|Information systems, information technology, or system administration|38184.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Java;JavaScript;SQL;TypeScript;Visual Basic 6;HTML;CSS\n70671|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|140000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;JavaScript;Objective-C;Ruby;Swift;HTML;CSS;Bash/Shell\n58427|Argentina|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|26400.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n70505|Finland|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|64620.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;HTML;CSS\n71718|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|180000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|55 - 64 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Python;Ruby;Scala;SQL;Bash/Shell\n31961|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|84000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n69533|India|Moderately satisfied|Computer science, computer engineering, or software engineering|5640.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS\n91590|Germany|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|85671.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n32597|Japan|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|Daily or almost every day|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS;Bash/Shell\n73273|India|Moderately satisfied|Computer science, computer engineering, or software engineering|20000.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS\n60219|Hong Kong (S.A.R.)|Slightly satisfied|Computer science, computer engineering, or software engineering|67351.0|I don't typically exercise|Male|East Asian;South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Python;TypeScript;Ocaml;Bash/Shell\n98153|Australia|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|51983.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;HTML;CSS\n51967|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|185400.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;F#\n44558|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|51408.0|I don't typically exercise|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;PHP;TypeScript;HTML;CSS;Bash/Shell\n43523|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|40388.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|R\n68343|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|63979.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|45 - 54 years old|Between 1 and 2 years ago|C;CoffeeScript;JavaScript;Perl;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n70062|United States|Extremely satisfied|Information systems, information technology, or system administration|70000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;R;SQL\n79309|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|160000.0|I don't typically exercise|Male|Black or of African descent|Primary/elementary school|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n71745|Indonesia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6984.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;PHP;SQL;TypeScript;VB.NET;Visual Basic 6;Kotlin;Delphi/Object Pascal;HTML;CSS\n62008|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|22032.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Java;JavaScript;Python;Swift;Bash/Shell\n941|United States|Neither satisfied nor dissatisfied|I never declared a major|72000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;VB.NET;HTML;CSS;Bash/Shell\n52581|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Java;JavaScript;Python;Rust;HTML;CSS;Bash/Shell\n69528|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|10824.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python\n9141|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;F#;Java;Python\n100803|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;HTML;CSS\n487|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|87971.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C++;C#;JavaScript;SQL;TypeScript;HTML;CSS\n92012|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;Objective-C;SQL;HTML;CSS;Bash/Shell\n67184|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|24478.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Primary/elementary school|Over 4 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;PHP;Python;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n40645|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|175384.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|55 - 64 years old|Less than a year ago|C;C++;Objective-C;Python\n7842|Poland|Slightly satisfied|I never declared a major|12348.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;JavaScript;Lua;TypeScript;HTML;CSS;Bash/Shell\n54102|India|Extremely satisfied|Computer science, computer engineering, or software engineering|18785.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Java;PHP;Python;TypeScript;HTML;CSS\n12334|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|37572.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Python\n5549|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|32160.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C#;Java;JavaScript;SQL;TypeScript;HTML;CSS\n85263|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|63979.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|C;C++;Java;Objective-C;SQL;Swift\n94464|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|280000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;Java;JavaScript;Lua;Objective-C;Python;R;Ruby;Rust;SQL;HTML;CSS;Bash/Shell\n53082|Japan|Extremely dissatisfied|Computer science, computer engineering, or software engineering|54293.0|1 - 2 times per week|Male|East Asian|They never completed any formal education|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n43419|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|20592.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n60065|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|50400.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;CSS;Bash/Shell\n51539|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|45528.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|Java;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n45478|Canada|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|70054.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;SQL;CSS\n93300|India|Slightly satisfied|Computer science, computer engineering, or software engineering|6576.0|1 - 2 times per week|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;SQL\n24330|Sri Lanka|Moderately satisfied|Computer science, computer engineering, or software engineering|16200.0|I don't typically exercise|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;SQL;TypeScript;HTML;CSS\n63727|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|1440000.0|3 - 4 times per week|Female|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Python;SQL;HTML;CSS;Bash/Shell\n96429|Liechtenstein|Extremely satisfied|Information systems, information technology, or system administration|0.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;Python;SQL;Swift;TypeScript;HTML;CSS\n28342|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|35768.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Haskell;Java;Scala;SQL;Swift;HTML;CSS\n80964|Argentina|Extremely satisfied|Computer science, computer engineering, or software engineering|14400.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;Python;TypeScript;HTML;CSS\n49057|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|50005.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;TypeScript;HTML;CSS\n49447|United Kingdom|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|53061.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Python;R;SQL;Bash/Shell\n24085|Nigeria|Moderately dissatisfied|Mathematics or statistics|2664.0|I don't typically exercise|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;PHP;TypeScript;HTML;CSS\n59755|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;HTML;CSS\n14849|United States|Extremely satisfied|I never declared a major|120000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;R;SQL;TypeScript;VB.NET;HTML;CSS\n34164|Philippines|Extremely satisfied|Computer science, computer engineering, or software engineering|18192.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n71508|Sweden|Slightly dissatisfied|Computer science, computer engineering, or software engineering|89832.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;F#;Java;Bash/Shell\n18933|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|96000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Go;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n30031|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|135441.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;C#;Lua;Matlab;Python;Bash/Shell\n68789|Japan|Slightly dissatisfied|Information systems, information technology, or system administration|39257.0|1 - 2 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;Go;Java;JavaScript;Matlab;PHP;Swift;VBA;HTML\n22841|Poland|Extremely satisfied|Computer science, computer engineering, or software engineering|35292.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n54999|Portugal|Slightly satisfied|Mathematics or statistics|73433.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n34076|United States|Moderately dissatisfied|A humanities discipline (ex. literature, history, philosophy)|82000.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n71431|Ukraine|Moderately dissatisfied|Computer science, computer engineering, or software engineering|14400.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Groovy;Java;Scala\n70262|Switzerland|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|625620.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|65 years or older|More than 4 years ago|C;JavaScript;Perl;PHP;Ruby;HTML;CSS;Bash/Shell\n5280|France|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|42836.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;SQL;Delphi/Object Pascal;HTML;CSS\n101502|France|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Kotlin;HTML;CSS\n47205|United Kingdom|Moderately dissatisfied|I never declared a major|62507.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Rust;SQL;HTML;CSS;Bash/Shell\n41513|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|2000000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;CSS\n41433|Germany|Extremely dissatisfied|Computer science, computer engineering, or software engineering|85671.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;TypeScript;VB.NET;HTML;Bash/Shell\n87857|Turkey|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|22248.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;SQL;Delphi/Object Pascal;HTML;CSS\n69492|Poland|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|70572.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;R;Ruby;SQL;HTML;CSS;Bash/Shell\n85880|United States|Moderately satisfied|I never declared a major|145000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Haskell;Java;JavaScript;Python;Scala;SQL;Bash/Shell\n19053|Philippines|Moderately satisfied|Information systems, information technology, or system administration|15360.0|3 - 4 times per week|Male|East Asian|They never completed any formal education|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;VB.NET\n28210|India|Slightly satisfied|Computer science, computer engineering, or software engineering|3756.0|Daily or almost every day|Female;Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n21359|Switzerland|Slightly satisfied|Computer science, computer engineering, or software engineering|65064.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;PHP;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n89756|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Objective-C;Ruby;Swift;HTML;CSS;Bash/Shell\n12505|South Korea|Slightly satisfied|Information systems, information technology, or system administration|80000.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;Bash/Shell\n13283|Norway|Moderately dissatisfied|Information systems, information technology, or system administration|765138.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C#;Python;SQL;TypeScript;Bash/Shell\n20770|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|100652.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Clojure;Java;Ruby;SQL;Ocaml;HTML;CSS;Bash/Shell\n15281|Brazil|Extremely dissatisfied|Computer science, computer engineering, or software engineering|22452.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Python\n20489|Bangladesh|Slightly satisfied|Computer science, computer engineering, or software engineering|21660.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Scala;SQL;TypeScript;HTML;CSS;Bash/Shell\n2941|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|74885.0|I don't typically exercise|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;HTML;CSS;Bash/Shell\n5875|Nigeria|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|4164.0|3 - 4 times per week|Male|Black or of African descent|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS\n30029|Brazil|Moderately satisfied|Web development or web design|11232.0|I don't typically exercise|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;PHP;SQL;Kotlin;HTML;CSS\n84753|China|Moderately satisfied|Computer science, computer engineering, or software engineering|82592.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;Ruby;SQL;Swift;HTML;CSS\n9193|Paraguay|Extremely dissatisfied|Computer science, computer engineering, or software engineering|200000.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS\n60144|France|Moderately satisfied|Computer science, computer engineering, or software engineering|50179.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Objective-C;Python;SQL;HTML;CSS;Bash/Shell\n21376|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|10620.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|PHP;Ruby;HTML;CSS\n55750|Ireland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|85671.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;CoffeeScript;JavaScript;Ruby;SQL;TypeScript;HTML;CSS\n52650|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|12732.0|3 - 4 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n7045|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|58340.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n74974|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|200000.0|3 - 4 times per week|Female|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java;Objective-C;PHP;Python;Ruby;SQL;Swift;VBA;VB.NET;Visual Basic 6\n48918|Denmark|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|89148.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Python;Delphi/Object Pascal\n96692|Brazil|Slightly satisfied|Computer science, computer engineering, or software engineering|21336.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;SQL;HTML;CSS\n23466|Germany|Moderately satisfied|Information systems, information technology, or system administration|16884.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n16315|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|45876.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;Objective-C;Python;Ruby;SQL;Swift\n64699|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|71000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;JavaScript;TypeScript;HTML;CSS\n1225|United States|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|170000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n6917|France|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|58752.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|Less than a year ago|Assembly;C;SQL;Delphi/Object Pascal;HTML;Bash/Shell\n42719|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|89175.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|Java;JavaScript;SQL;HTML;CSS\n44316|Norway|Moderately dissatisfied|Information systems, information technology, or system administration|77789.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Groovy;JavaScript;Lua;Perl;HTML;CSS\n41163|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|156000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Assembly;C;Java;Python;HTML;Bash/Shell\n57059|Russian Federation|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|34176.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Java\n71567|France|Slightly dissatisfied|Computer science, computer engineering, or software engineering|51408.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n80244|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n40583|Brazil|Moderately dissatisfied|Computer science, computer engineering, or software engineering|22452.0|1 - 2 times per week|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;HTML;CSS\n63877|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|62000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;TypeScript;HTML\n75721|United States|Moderately satisfied|Mathematics or statistics|120000.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;SQL;Bash/Shell\n9044|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|100000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;R;SQL;HTML;Bash/Shell\n94033|Poland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|28236.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n21842|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|63979.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Python;Bash/Shell\n25412|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1800000.0|1 - 2 times per week|Female|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n5637|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|145000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n81885|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|76514.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|Java;SQL;TypeScript;HTML;CSS\n23811|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|36720.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Go;Java;JavaScript;Lua;Objective-C;Perl;PHP;Python;Rust;Swift\n8491|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|155000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Clojure;Python;Ruby\n22497|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|14856.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;Groovy;Java;SQL;Bash/Shell\n54105|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|55562.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n34938|Brazil|Moderately dissatisfied|Web development or web design|33684.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n3527|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|90000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;SQL\n33264|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|88000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n99086|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|100000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n73875|Pakistan|Extremely satisfied|Computer science, computer engineering, or software engineering|18000.0|1 - 2 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;TypeScript;Kotlin\n52562|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;VB.NET;HTML;CSS\n58428|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|135000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|55 - 64 years old|Between 2 and 4 years ago|Perl;Python\n62328|Germany|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|17628.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java;JavaScript;Matlab;PHP;SQL\n31791|Ireland|Moderately satisfied|Mathematics or statistics|64254.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n99681|United Kingdom|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|88899.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Matlab;Python;HTML;CSS;Bash/Shell\n49150|France|Moderately satisfied|Computer science, computer engineering, or software engineering|22320.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Lua;PHP;Python;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n2590|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|137000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS\n34691|Denmark|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|69036.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Lua;Python;Bash/Shell\n47689|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|56673.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n28311|France|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|48955.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;HTML;CSS\n73456|Finland|Extremely satisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Clojure;Java;JavaScript;Scala;SQL;HTML;CSS;Bash/Shell\n86363|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|44060.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;PHP;Python;Ruby;HTML;CSS;Bash/Shell\n41676|France|Moderately dissatisfied|Computer science, computer engineering, or software engineering|45732.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Python;Scala;TypeScript;HTML;CSS\n30328|Australia|Slightly satisfied|Computer science, computer engineering, or software engineering|71976.0|3 - 4 times per week|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java\n49531|Belarus|Slightly satisfied|Computer science, computer engineering, or software engineering|8472.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|More than 4 years ago|Python;SQL\n1395|Brazil|Slightly satisfied|Information systems, information technology, or system administration|9360.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n63102|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|127957.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Clojure;JavaScript;Objective-C;Python;SQL;Swift;HTML;CSS;Bash/Shell\n64911|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|966768.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;SQL;HTML;CSS\n39116|China|Slightly dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|13092.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Python;HTML;CSS\n90189|India|Slightly satisfied|Computer science, computer engineering, or software engineering|2256.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;HTML;CSS\n44567|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|122388.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;SQL;VBA;VB.NET;HTML;CSS\n17871|United States|Slightly satisfied|Information systems, information technology, or system administration|58000.0|1 - 2 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n97417|Belarus|Moderately dissatisfied|Computer science, computer engineering, or software engineering|30000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;SQL\n93613|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|38337.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;CoffeeScript;Java;JavaScript;Matlab;PHP;Python;SQL;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n28193|United Kingdom|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|173650.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C;Java;Objective-C;Swift;Kotlin;HTML\n57405|Spain|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32979.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Python;Bash/Shell\n96255|Spain|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|24478.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n56472|Finland|Moderately satisfied|Mathematics or statistics|71232.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Groovy;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML\n83120|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|61194.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n99052|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|67313.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;SQL\n66979|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|92000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Clojure;F#;Go;JavaScript;SQL;TypeScript\n31119|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|173650.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Objective-C;Swift\n38899|Israel|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|64944.0|I don't typically exercise|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Objective-C;Python;SQL;Swift;HTML;CSS\n80757|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|30559.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Groovy;Java;JavaScript;Scala;Swift;Kotlin;Ocaml;Bash/Shell\n62003|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|87000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;Java;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n89038|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|822444.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Objective-C;HTML;CSS\n23672|Ecuador|Slightly satisfied|Computer science, computer engineering, or software engineering|42000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Groovy;Java;JavaScript;Objective-C;SQL;TypeScript;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n49372|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|48000.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;HTML;CSS\n22513|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|17592.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n64426|Spain|Moderately satisfied|Information systems, information technology, or system administration|29373.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;SQL\n77327|India|Moderately satisfied|Computer science, computer engineering, or software engineering|15888.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n68270|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|6951.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;TypeScript;HTML;CSS\n19324|Canada|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32209.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;Julia;Matlab;PHP;Python;Bash/Shell\n78291|Sweden|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|56591.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;Java;JavaScript;Ruby;SQL\n19125|United Kingdom|Slightly dissatisfied|Computer science, computer engineering, or software engineering|62507.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Go;Java;JavaScript;Python;HTML;CSS\n2404|Australia|Slightly satisfied|Information systems, information technology, or system administration|63835.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n84046|France|Extremely satisfied|Computer science, computer engineering, or software engineering|35988.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;PHP;HTML;CSS\n89877|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|67000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n84796|India|Slightly satisfied|Computer science, computer engineering, or software engineering|5256.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n10333|El Salvador|Slightly dissatisfied|Computer science, computer engineering, or software engineering|9432.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C#;Python;VB.NET;Visual Basic 6\n35830|Mexico|Moderately dissatisfied|Web development or web design|13536.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n56268|Canada|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|201303.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Haskell;JavaScript;Matlab;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n33451|United States|Extremely satisfied|Information systems, information technology, or system administration|92000.0|Daily or almost every day|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n81|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73428.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|C;C++;C#;Java;JavaScript;VB.NET;HTML;CSS;Bash/Shell\n58242|Bangladesh|Slightly satisfied|Computer science, computer engineering, or software engineering|2604.0|I don't typically exercise|Female|East Asian|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n16314|Nigeria|Moderately dissatisfied|Computer science, computer engineering, or software engineering|3096.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;SQL;HTML;CSS\n48723|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|96626.0|1 - 2 times per week|Female|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Perl;HTML\n19428|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|71500.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;Objective-C;Python;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n2382|Austria|Moderately satisfied|Computer science, computer engineering, or software engineering|57400.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Java;Python;Ruby\n75427|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|88000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n37441|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|106000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|Python;R;SQL;Bash/Shell\n25755|Netherlands|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|61194.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Matlab;Python;Ruby;HTML;CSS\n2367|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Java\n81005|Russian Federation|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|24000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n6976|United States|Slightly dissatisfied|A social science (ex. anthropology, psychology, political science)|60060.0|1 - 2 times per week|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;R;SQL;VBA;HTML;CSS\n51524|France|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|46507.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;SQL;Bash/Shell\n67784|Switzerland|Extremely dissatisfied|Computer science, computer engineering, or software engineering|62556.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;R\n91089|Poland|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|44111.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|45 - 54 years old|More than 4 years ago|JavaScript;Lua;PHP;Python;SQL;HTML;CSS;Bash/Shell\n98712|France|Moderately dissatisfied|Web development or web design|666744.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS\n11126|India|Slightly satisfied|Computer science, computer engineering, or software engineering|10958.0|Daily or almost every day|Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n41240|Singapore|Slightly satisfied|Computer science, computer engineering, or software engineering|54504.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS;Bash/Shell\n71104|Switzerland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|112611.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java\n16345|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|155000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Less than a year ago|C;C++;C#;Go;Groovy;Java;JavaScript;Lua;Objective-C;Perl;PHP;Python;SQL;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n48980|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|30598.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;C#;JavaScript;SQL;HTML;CSS\n4495|Netherlands|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|105253.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n101524|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|80000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Go;JavaScript;Python;SQL;TypeScript;Bash/Shell\n96543|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n51342|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|40000.0|Daily or almost every day|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Assembly;C;C++;C#;JavaScript;Lua;Objective-C;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n41205|Poland|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32460.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;SQL;Bash/Shell\n89555|Spain|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|35492.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#\n9323|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|90000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS\n94866|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|39164.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Java\n46524|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|225000.0|I don't typically exercise|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|45 - 54 years old|Less than a year ago|C++;Java;Python;R;Scala;Bash/Shell\n12942|India|Slightly satisfied|Computer science, computer engineering, or software engineering|28961.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python;SQL;HTML;CSS\n28200|United Kingdom|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|58340.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;R\n75631|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|112730.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n14693|Viet Nam|Slightly satisfied|Computer science, computer engineering, or software engineering|7200.0|I don't typically exercise|Male|Native American, Pacific Islander, or Indigenous Australian|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|PHP;Python;Ruby;HTML\n84818|Belarus|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|6048.0|I don't typically exercise|Female|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|Java;SQL;Kotlin\n56038|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|58781.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;SQL;VBA;HTML\n11653|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Go;Python;Ruby;SQL;Kotlin;HTML;CSS;Bash/Shell\n87536|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|345000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n1790|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n39829|United States|Moderately dissatisfied|Mathematics or statistics|75000.0|I don't typically exercise|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|PHP;Python\n8186|United States|Moderately dissatisfied|Mathematics or statistics|100000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;Python;SQL;HTML;Bash/Shell\n34981|Australia|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|53582.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Java;SQL;Bash/Shell\n570|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|34726.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;Scala;SQL;HTML;CSS\n9385|Romania|Moderately dissatisfied|Mathematics or statistics|10284.0|I don't typically exercise|Male|White or of European descent|Associate degree|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Java;Matlab\n21140|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|6012.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C#;Java;JavaScript;Ruby\n63173|United States|Moderately satisfied|Mathematics or statistics|66000.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;C#;JavaScript;PHP;Python;R;Ruby;SQL;VBA;Visual Basic 6;HTML;CSS\n74670|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|33972.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n2813|Spain|Moderately dissatisfied|A humanities discipline (ex. literature, history, philosophy)|35988.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|JavaScript;PHP;Ruby;SQL;HTML;CSS\n24634|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|80000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C#;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n30790|Poland|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|40584.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;Python;Ruby;HTML;CSS;Bash/Shell\n19820|Costa Rica|Slightly satisfied|Computer science, computer engineering, or software engineering|45000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n6792|France|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|3 - 4 times per week|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Scala;SQL;CSS;Bash/Shell\n50772|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|35244.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n21268|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|58340.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;HTML;CSS\n16814|Switzerland|Extremely satisfied|Computer science, computer engineering, or software engineering|93842.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;Java;JavaScript;Lua;Perl;PHP;Ruby;SQL;HTML;CSS;Bash/Shell\n78559|Brazil|Slightly dissatisfied|Mathematics or statistics|524016.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|55 - 64 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;Cobol;HTML;CSS;Bash/Shell\n13456|Australia|Slightly satisfied|Mathematics or statistics|111963.0|I don't typically exercise|Male|East Asian|Professional degree (JD, MD, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C;C++;R;SQL;Bash/Shell\n82479|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|64000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n12687|United States|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|85000.0|1 - 2 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|R;SQL;HTML\n95004|United States|Extremely satisfied|Information systems, information technology, or system administration|84000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;HTML\n68560|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|50000.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;Go;Haskell;Java;Python;Ruby;HTML;CSS;Bash/Shell\n73332|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|25003.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n35379|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n490|Ireland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|48955.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Groovy;JavaScript;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n87076|United Kingdom|Moderately satisfied|I never declared a major|44449.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n79639|India|Moderately satisfied|Web development or web design|5640.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;HTML;CSS\n15904|Nepal|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1176.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;Matlab;PHP;SQL;HTML;CSS\n51794|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|48616.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;SQL;Kotlin\n63047|Australia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|59980.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;Groovy;PHP;SQL;VB.NET;HTML;CSS\n42429|Germany|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|30597.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Python;R;Scala\n32414|France|Extremely satisfied|Computer science, computer engineering, or software engineering|153000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;F#;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n4503|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|122388.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#\n7602|Netherlands|Slightly dissatisfied|Computer science, computer engineering, or software engineering|44064.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n72122|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|170000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Bash/Shell\n3013|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|70000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Clojure;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS\n62829|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|79973.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Groovy;JavaScript;Python;Ruby;Bash/Shell\n5123|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;Groovy;Java;Python;Scala;Bash/Shell\n88781|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|51408.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Haskell;Java;JavaScript;PHP;Python;Scala;SQL;Bash/Shell\n63483|United States|Slightly dissatisfied|A humanities discipline (ex. literature, history, philosophy)|110.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|55 - 64 years old|Between 2 and 4 years ago|R;SQL;VBA;VB.NET;HTML\n16053|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|9393.0|I don't typically exercise|Male|South Asian|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;Python;HTML;CSS;Bash/Shell\n69725|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|51403.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n10999|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Lua;TypeScript;HTML;CSS;Bash/Shell\n83532|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|87140.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;Perl;SQL;Bash/Shell\n76724|Switzerland|Moderately satisfied|Web development or web design|145977.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n85116|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Scala\n20951|United Kingdom|Slightly dissatisfied|I never declared a major|60423.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n60284|Sweden|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Less than a year ago|C++;Java;Python;HTML\n22627|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|126000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n20435|India|Slightly satisfied|Computer science, computer engineering, or software engineering|15588.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Assembly;JavaScript;Python;SQL;HTML;CSS\n72885|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|49000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;Ruby;SQL;HTML;CSS\n32001|Estonia|Moderately satisfied|Computer science, computer engineering, or software engineering|33780.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;HTML;CSS;Bash/Shell\n62735|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n5375|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|35292.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS;Bash/Shell\n42856|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|0.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|35 - 44 years old|More than 4 years ago|PHP;R;SQL;HTML\n48911|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|128000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|Assembly;Java;JavaScript;Python;Rust;TypeScript;HTML;CSS;Bash/Shell\n57001|Sweden|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|45960.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n66260|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|125000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;Go;Haskell;Rust;SQL;HTML;Bash/Shell\n73890|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|145000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|55 - 64 years old|Between 1 and 2 years ago|SQL;Bash/Shell\n76127|France|Extremely satisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Clojure;Go;Python;SQL\n19519|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n60684|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|85000.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n87223|India|Moderately satisfied|Computer science, computer engineering, or software engineering|16152.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n70924|Russian Federation|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|16980.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;Python\n14094|Ukraine|Slightly dissatisfied|Computer science, computer engineering, or software engineering|37200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n66626|Pakistan|Slightly satisfied|Information systems, information technology, or system administration|36000.0|Daily or almost every day|Male|South Asian|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java\n60140|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|130000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;Scala;SQL;Bash/Shell\n91030|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|C;Go;Ruby;Bash/Shell\n53954|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python\n95445|Belgium|Extremely dissatisfied|Computer science, computer engineering, or software engineering|122388.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;Python;Swift\n12183|Italy|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|63642.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;PHP;Rust;SQL;Bash/Shell\n44304|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|138000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Bash/Shell\n77250|Brazil|Slightly dissatisfied|Information systems, information technology, or system administration|13104.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n79913|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|136000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;JavaScript;Objective-C;Perl;Python;Ruby;Rust;Swift;HTML;CSS;Bash/Shell\n78332|India|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|187848.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python;SQL;Bash/Shell\n28716|United States|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|180000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Groovy;Java;JavaScript;HTML;CSS;Bash/Shell\n84879|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|85000.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;SQL;VB.NET;HTML;CSS\n28120|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|2160.0|1 - 2 times per week|Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Java\n50021|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|37800.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n100789|Bosnia and Herzegovina|Slightly dissatisfied|Information systems, information technology, or system administration|31705.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS\n90390|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|100000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Groovy;Java;JavaScript;PHP;Ruby;SQL;TypeScript;HTML;CSS\n16471|United Kingdom|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|152794.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C++;Hack;Java;JavaScript;Python;HTML\n24464|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|98000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n88527|Ecuador|Moderately satisfied|Computer science, computer engineering, or software engineering|21600.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;Matlab;Python;SQL;HTML;CSS;Bash/Shell\n6695|United Kingdom|Moderately satisfied|Information systems, information technology, or system administration|23336.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;Lua;PHP;SQL;Delphi/Object Pascal;HTML;CSS\n90321|Finland|Extremely satisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;JavaScript;PHP;Scala;HTML;CSS\n29047|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|300000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C#;Java;JavaScript;PHP;SQL;VBA;VB.NET;HTML\n97644|India|Extremely satisfied|Computer science, computer engineering, or software engineering|3756.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Ruby;SQL;HTML;CSS\n4160|United States|Neither satisfied nor dissatisfied|Mathematics or statistics|60000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|SQL;HTML;CSS\n99606|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;CSS;Bash/Shell\n55512|Portugal|Moderately satisfied|Computer science, computer engineering, or software engineering|15864.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;Swift\n50338|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|145000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|Groovy;JavaScript;Python;Bash/Shell\n81234|Portugal|Moderately dissatisfied|Web development or web design|22275.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;Lua;Matlab;Objective-C;PHP;SQL;HTML;CSS\n40875|Germany|Moderately satisfied|Information systems, information technology, or system administration|383074.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n72137|India|Moderately satisfied|Computer science, computer engineering, or software engineering|8448.0|Daily or almost every day|Male|South Asian|Primary/elementary school|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n20875|India|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|11268.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n73453|Czech Republic|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|23172.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;HTML;CSS\n73300|United States|Slightly satisfied|Information systems, information technology, or system administration|50000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n41867|Philippines|Moderately satisfied|Computer science, computer engineering, or software engineering|500.0|1 - 2 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Over 4 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n43320|New Zealand|Slightly dissatisfied|Computer science, computer engineering, or software engineering|86000.0|Daily or almost every day|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Scala;SQL;HTML;CSS\n20538|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|110000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Ruby;HTML;CSS;Bash/Shell\n85535|United States|Moderately dissatisfied|Mathematics or statistics|80000.0|Daily or almost every day|Female;Transgender|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Objective-C;Python;SQL;Swift;HTML;CSS\n29774|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|22030.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n46476|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|56376.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java\n24181|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|107500.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|45 - 54 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n17184|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|95000.0|3 - 4 times per week|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Swift;Kotlin\n4356|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|75000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n57826|United States|Moderately satisfied|Mathematics or statistics|86000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;CoffeeScript;JavaScript;R;TypeScript;HTML;CSS;Bash/Shell\n2031|Serbia|Moderately satisfied|Computer science, computer engineering, or software engineering|5880.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;Go;JavaScript;HTML;CSS\n534|France|Extremely satisfied|Computer science, computer engineering, or software engineering|39776.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n11106|India|Slightly satisfied|Computer science, computer engineering, or software engineering|266748.0|1 - 2 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript;HTML;CSS\n29410|France|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|58746.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Lua;PHP;Python;HTML;CSS;Bash/Shell\n71361|Poland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|15876.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;JavaScript;TypeScript;Kotlin;Bash/Shell\n16811|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|5256.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS\n46426|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;Clojure;Go;Java;JavaScript;Objective-C;Python;Ruby;Swift;HTML;CSS;Bash/Shell\n43088|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|63642.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n99172|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|125000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|F#;Haskell;Python;Rust;HTML;CSS\n84987|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;CoffeeScript;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n75959|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|57912.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Objective-C;Swift\n50364|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|62500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Less than a year ago|CoffeeScript;Haskell;JavaScript;Perl;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n23574|Germany|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|79552.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;Java;Matlab;Python\n52222|France|Extremely satisfied|Computer science, computer engineering, or software engineering|53239.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;JavaScript;Python\n64444|Netherlands|Extremely satisfied|Computer science, computer engineering, or software engineering|39648.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;HTML;CSS\n78138|Australia|Moderately satisfied|Information systems, information technology, or system administration|145552.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;Ruby;HTML;CSS;Bash/Shell\n48051|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|31253.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;TypeScript\n61359|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|120000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Groovy;Java;JavaScript;Python;Ruby;TypeScript;HTML;CSS;Bash/Shell\n2780|India|Moderately satisfied|Computer science, computer engineering, or software engineering|17220.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Ruby;TypeScript\n63808|Australia|Moderately satisfied|Information systems, information technology, or system administration|79973.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|Python;SQL\n16265|Algeria|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Perl;PHP;Python;HTML;CSS\n101560|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|85000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n12381|Mexico|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|22560.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n78828|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|96538.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;SQL;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n75343|United Kingdom|Extremely dissatisfied|Computer science, computer engineering, or software engineering|38199.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Groovy;Java;JavaScript;Objective-C;PHP;SQL;HTML;CSS;Bash/Shell\n20023|Russian Federation|Extremely dissatisfied|Computer science, computer engineering, or software engineering|25476.0|1 - 2 times per week|Male|Native American, Pacific Islander, or Indigenous Australian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;HTML;CSS\n101179|Canada|Slightly satisfied|Information systems, information technology, or system administration|56365.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Go;Groovy;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n55250|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|33684.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|Python;Bash/Shell\n30850|United Kingdom|Extremely satisfied|Mathematics or statistics|122930.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;Python;SQL;Bash/Shell\n51819|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n33471|Dominican Republic|Slightly satisfied|Mathematics or statistics|15000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Matlab;SQL;TypeScript;HTML;CSS\n30604|India|Slightly dissatisfied|A business discipline (ex. accounting, finance, marketing)|9393.0|I don't typically exercise|Male|South Asian|Associate degree|30 - 59 minutes|18 - 24 years old|Less than a year ago|JavaScript;Python;TypeScript;CSS\n83499|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|23614.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;Python;TypeScript;HTML;CSS;Bash/Shell\n83639|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|230000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n83783|Germany|Extremely satisfied|Mathematics or statistics|111373.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;VB.NET\n79780|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C++;Python;Bash/Shell\n86720|Hungary|Moderately satisfied|Computer science, computer engineering, or software engineering|30960.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n48282|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|195000.0|Daily or almost every day|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;SQL;HTML;Bash/Shell\n84910|India|Extremely satisfied|Computer science, computer engineering, or software engineering|5256.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n100004|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|4800.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;Java;SQL\n75517|Poland|Slightly dissatisfied|Information systems, information technology, or system administration|19056.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Go;Lua;Python;SQL;HTML;CSS;Bash/Shell\n98211|Ukraine|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|18792.0|1 - 2 times per week|Male|Middle Eastern|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n27604|United States|Slightly satisfied|Information systems, information technology, or system administration|80000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;Java;JavaScript;HTML;CSS;Bash/Shell\n23397|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|32808.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n46202|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|8448.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C++;Java;Kotlin\n76568|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|169000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Go;Java;JavaScript;Python;HTML;CSS;Bash/Shell\n48134|China|Slightly dissatisfied|Computer science, computer engineering, or software engineering|46752.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Go;Java;JavaScript;Lua;Rust;SQL;TypeScript;HTML;Bash/Shell\n22334|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|16644.0|I don't typically exercise|Male|Middle Eastern|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Groovy;Java;PHP;SQL;HTML;CSS;Bash/Shell\n15385|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|They never completed any formal education|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n82822|Australia|Extremely satisfied|Computer science, computer engineering, or software engineering|99967.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;Python;R;Scala;SQL\n97738|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|97233.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;Perl;Python;Ruby;SQL;HTML;Bash/Shell\n16896|Canada|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|64417.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Matlab;Python;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n93479|Philippines|Moderately dissatisfied|Information systems, information technology, or system administration|2364.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C#;Java;JavaScript;PHP;TypeScript;HTML;CSS\n71306|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|7827.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Matlab;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n93666|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|82000.0|1 - 2 times per week|Female;Transgender|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;JavaScript;Python;HTML;CSS;Bash/Shell\n50748|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|20664.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;Python;Bash/Shell\n36106|Ethiopia|Slightly satisfied|Computer science, computer engineering, or software engineering|8712.0|1 - 2 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n90850|United Kingdom|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|51394.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Go;Julia;Python;Bash/Shell\n55558|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|44064.0|Daily or almost every day|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n62237|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|134627.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|C++;Go;Haskell;Java;JavaScript;Perl;Python;Ruby;Scala;SQL;CSS;Bash/Shell\n97861|India|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|7512.0|1 - 2 times per week|Female|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;HTML;CSS\n36530|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|40388.0|3 - 4 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;R;Scala\n9678|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58869.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Perl\n19688|United Kingdom|Moderately satisfied|Mathematics or statistics|90288.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;TypeScript;VBA;VB.NET;HTML;CSS;Bash/Shell\n15942|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|74500.0|3 - 4 times per week|Male|Native American, Pacific Islander, or Indigenous Australian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n59483|Australia|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|67977.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Go;JavaScript;Python;TypeScript;HTML;CSS;Bash/Shell\n61127|Denmark|Extremely satisfied|Computer science, computer engineering, or software engineering|69036.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;PHP;Rust;HTML;CSS;Bash/Shell\n80668|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n69440|Malta|Moderately satisfied|Information systems, information technology, or system administration|55075.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;HTML\n63833|Russian Federation|Moderately satisfied|A health science (ex. nursing, pharmacy, radiology)|55200.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n90696|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|C++;PHP;Delphi/Object Pascal\n85099|Sri Lanka|Moderately satisfied|Information systems, information technology, or system administration|17124.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n99863|Sweden|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|43416.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n96909|Russian Federation|Moderately satisfied|Computer science, computer engineering, or software engineering|10620.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Java;PHP;Python;Rust;SQL;Bash/Shell\n51449|Germany|Extremely satisfied|Computer science, computer engineering, or software engineering|76368.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C++;JavaScript;Python;Bash/Shell\n62686|Ghana|Slightly dissatisfied|Computer science, computer engineering, or software engineering|10008.0|I don't typically exercise|Female|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Groovy;Java;JavaScript;Objective-C;Python;SQL;Swift;Kotlin;HTML;CSS\n59537|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|2000000.0|3 - 4 times per week|Male|Native American, Pacific Islander, or Indigenous Australian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Python;R;SQL;VBA\n22311|United States|Slightly dissatisfied|A humanities discipline (ex. literature, history, philosophy)|85000.0|3 - 4 times per week|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;Python;R;SQL;HTML;CSS\n39522|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|56298.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;R;HTML\n97303|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|115000.0|I don't typically exercise|Male|East Asian;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;SQL;Swift;HTML;CSS\n45144|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|170000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Assembly;C;C++;Python;Bash/Shell\n10607|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|3060.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;Java;JavaScript;Matlab;PHP;HTML;CSS\n3243|Malaysia|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|12132.0|3 - 4 times per week|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|Go;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n92845|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|104678.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;Perl;SQL;VB.NET;HTML;CSS\n15321|United States|Extremely satisfied|I never declared a major|50000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS\n95388|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|66027.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Assembly;C;Go;Python;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n29027|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Groovy;JavaScript;Lua;TypeScript;HTML;CSS\n52183|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|19920.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS\n60295|Poland|Moderately dissatisfied|A business discipline (ex. accounting, finance, marketing)|28236.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;HTML;CSS\n93138|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|73433.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C++;C#;HTML;CSS\n10267|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|89266.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n5998|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|41671.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n14244|Spain|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|33045.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;SQL\n25786|Netherlands|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|30156.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Groovy;Java;JavaScript;PHP;Python;Ruby;SQL;HTML;CSS;Bash/Shell\n27262|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;F#;JavaScript;SQL;HTML;CSS\n22522|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|40000.0|I don't typically exercise|Transgender|White or of European descent|Associate degree|Less than 30 minutes|55 - 64 years old|More than 4 years ago|Delphi/Object Pascal\n49890|Austria|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|20556.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Java;Objective-C;PHP;Python;R;SQL;Swift;VBA;VB.NET;Visual Basic 6;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n14105|France|Moderately satisfied|Computer science, computer engineering, or software engineering|646212.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n30500|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|30108.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n28912|United Kingdom|Extremely satisfied|Mathematics or statistics|44449.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Python;R;SQL;VBA\n38265|India|Moderately satisfied|Computer science, computer engineering, or software engineering|18785.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Python\n17638|Canada|Extremely satisfied|Information systems, information technology, or system administration|48152.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n9686|Nepal|Slightly satisfied|Computer science, computer engineering, or software engineering|91644.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n101333|Japan|Slightly satisfied|Computer science, computer engineering, or software engineering|30252.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n41415|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|36720.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|More than 4 years ago|C#;JavaScript;PHP;Python;SQL;Swift;HTML;CSS\n17445|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|2000000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;PHP;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n68783|Italy|Extremely satisfied|Computer science, computer engineering, or software engineering|12239.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Assembly;C;C++;Java;JavaScript;Matlab;PHP;SQL;Visual Basic 6;Kotlin;Cobol;HTML;CSS;Bash/Shell\n69496|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|44916.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;SQL\n65777|China|Extremely satisfied|Computer science, computer engineering, or software engineering|31167.0|3 - 4 times per week|Male|South Asian|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n26886|Netherlands|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|46992.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n63693|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|140000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|3 - 4 hours|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Objective-C;PHP;SQL;Swift;HTML;CSS;Bash/Shell\n81657|Philippines|Extremely dissatisfied|Information systems, information technology, or system administration|2880.0|3 - 4 times per week|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;HTML;CSS\n24645|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|122500.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Go;Python;Bash/Shell\n25501|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|52339.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n56974|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|55000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML\n64248|France|Moderately satisfied|Computer science, computer engineering, or software engineering|64866.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n2996|Pakistan|Slightly satisfied|Computer science, computer engineering, or software engineering|1632.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;C#;Objective-C;PHP;Python;SQL;VB.NET;Visual Basic 6;HTML;CSS\n90854|Italy|Slightly satisfied|Computer science, computer engineering, or software engineering|411228.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript\n20057|United States|Extremely satisfied|A business discipline (ex. accounting, finance, marketing)|101200.0|Daily or almost every day|Female|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;R;SQL;TypeScript;HTML;CSS\n97256|Belgium|Slightly dissatisfied|A health science (ex. nursing, pharmacy, radiology)|35244.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Perl;PHP;R;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n23532|India|Slightly satisfied|Computer science, computer engineering, or software engineering|2256.0|Daily or almost every day|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Python;HTML;CSS\n73523|Bosnia and Herzegovina|Moderately satisfied|Computer science, computer engineering, or software engineering|24972.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n13367|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|14760.0|Daily or almost every day|Female|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS\n10529|France|Moderately satisfied|Computer science, computer engineering, or software engineering|46507.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;JavaScript;Rust;SQL;HTML\n39759|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|44287.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n66148|South Korea|Extremely satisfied|Computer science, computer engineering, or software engineering|62808.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;Python\n51814|Spain|Slightly satisfied|Computer science, computer engineering, or software engineering|176244.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|Over 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n64181|United States|Moderately satisfied|Information systems, information technology, or system administration|85000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;SQL;HTML;CSS\n730|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|63979.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;Visual Basic 6;HTML;CSS\n23233|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|66767.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|R\n18141|United States|Moderately satisfied|Web development or web design|94000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;JavaScript;PHP;SQL;HTML;CSS\n45551|United Kingdom|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|750084.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Python;SQL;HTML;CSS\n93449|United Kingdom|Slightly dissatisfied|Web development or web design|34726.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n10026|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|90000.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Matlab;PHP;Python;SQL;HTML;CSS;Bash/Shell\n74621|Australia|Extremely dissatisfied|Information systems, information technology, or system administration|1000000.0|I don't typically exercise|Male|East Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n7708|Belgium|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|61680.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n7447|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58746.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Bash/Shell\n79990|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|44300.0|3 - 4 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Assembly;C++;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n28161|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|64417.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Python;Bash/Shell\n10413|Sri Lanka|Moderately satisfied|Computer science, computer engineering, or software engineering|1560.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n95567|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|25008.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|CoffeeScript;JavaScript;TypeScript;HTML;CSS\n100370|India|Moderately satisfied|Computer science, computer engineering, or software engineering|1884.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;C#;Java;JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n54239|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n3153|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|100000.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Python\n10899|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|117000.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|Assembly;C;C++;Go;Haskell;JavaScript;Python;SQL;HTML\n18893|Indonesia|Slightly satisfied|Computer science, computer engineering, or software engineering|3576.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n25177|Germany|Extremely dissatisfied|Information systems, information technology, or system administration|73433.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n73107|India|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|3757.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n88965|India|Slightly dissatisfied|Computer science, computer engineering, or software engineering|14652.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Hack;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n58969|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|19447.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Matlab;Perl;Python;R;Bash/Shell\n27413|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|88000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n73404|Germany|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|97910.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n17508|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|76397.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;VBA;VB.NET;HTML;CSS\n58546|Denmark|Extremely dissatisfied|A business discipline (ex. accounting, finance, marketing)|164366.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|55 - 64 years old|Between 2 and 4 years ago|C;C#;VBA;VB.NET;Visual Basic 6;HTML\n27955|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|23748.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;SQL;TypeScript;HTML;CSS\n100426|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|90000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n99601|Pakistan|Extremely satisfied|Computer science, computer engineering, or software engineering|8676.0|3 - 4 times per week|Male|South Asian|Primary/elementary school|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;C#;Java;JavaScript;PHP;SQL;HTML;CSS\n98246|Spain|Slightly satisfied|Computer science, computer engineering, or software engineering|381852.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Python\n30279|Iceland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|116862.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n33525|Spain|Slightly dissatisfied|Computer science, computer engineering, or software engineering|44060.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n48188|United States|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|55000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n76866|Iran, Islamic Republic of...|Moderately satisfied|Computer science, computer engineering, or software engineering|26640.0|I don't typically exercise|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C#;Java\n6252|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|38893.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Matlab;Objective-C;PHP;SQL;Swift;HTML;CSS\n95184|India|Moderately satisfied|Computer science, computer engineering, or software engineering|17220.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n34209|Germany|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|88119.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|55 - 64 years old|Between 2 and 4 years ago|Assembly;C;JavaScript;Perl;Cobol\n8224|India|Moderately satisfied|Computer science, computer engineering, or software engineering|6262.0|Daily or almost every day|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n6928|South Africa|Extremely dissatisfied|A natural science (ex. biology, chemistry, physics)|19584.0|I don't typically exercise|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python\n64192|Germany|Moderately dissatisfied|A social science (ex. anthropology, psychology, political science)|44064.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;C;C++;Go;JavaScript;Python;Rust;HTML;CSS;Bash/Shell\n41846|Czech Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|45972.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Clojure;Go;Groovy;Java;JavaScript;PHP;Scala;HTML;CSS;Bash/Shell\n50698|United Kingdom|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|62507.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;Python;SQL\n71898|United States|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|148000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Clojure;Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n22169|United States|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|115000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n30372|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|38652.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Go;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n17509|Australia|Slightly dissatisfied|Information systems, information technology, or system administration|43985.0|1 - 2 times per week|Male|South Asian|They never completed any formal education|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;HTML;CSS\n76892|Singapore|Slightly satisfied|Computer science, computer engineering, or software engineering|90840.0|3 - 4 times per week|Male|South Asian|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java\n4577|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|118280.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|C#;SQL\n32046|United States|Extremely satisfied|Information systems, information technology, or system administration|150000.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n95347|Japan|Moderately satisfied|Computer science, computer engineering, or software engineering|59424.0|I don't typically exercise|Male|East Asian;South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Objective-C;Python;Ruby;SQL;Swift;Kotlin\n84660|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|127000.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;HTML;CSS\n66907|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|88573.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|PHP;Python;Ruby;Bash/Shell\n40805|Bangladesh|Moderately satisfied|Mathematics or statistics|6612.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;SQL;HTML;CSS\n61661|Sweden|Moderately satisfied|Mathematics or statistics|73433.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;JavaScript;Julia;Python;SQL;HTML;CSS;Bash/Shell\n17582|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|72500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#\n51534|Australia|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|60000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Python;SQL;HTML;CSS;Bash/Shell\n32113|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|116268.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C++;Go;Java;Python;SQL;HTML;CSS;Bash/Shell\n6716|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|66084.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Erlang;JavaScript;Ruby\n387|Russian Federation|Extremely satisfied|Mathematics or statistics|20808.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|JavaScript;Python;SQL;HTML;CSS\n24685|India|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|44328.0|I don't typically exercise|Male|South Asian|Associate degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript\n90333|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;HTML;CSS\n99735|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n64408|Belarus|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|9600.0|3 - 4 times per week|Female;Male;Transgender;Non-binary, genderqueer, or gender non-conforming|Black or of African descent;East Asian;Hispanic or Latino/Latina;Middle Eastern;Native American, Pacific Islander, or Indigenous Australian;South Asian;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Between 1 and 2 years ago|Java;Kotlin;Bash/Shell\n55300|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|145000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Java;JavaScript;Objective-C;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n13674|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;SQL;HTML;CSS;Bash/Shell\n86194|Poland|Slightly satisfied|Information systems, information technology, or system administration|17640.0|I don't typically exercise|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C++\n47647|Germany|Moderately dissatisfied|Computer science, computer engineering, or software engineering|51403.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML;CSS\n6954|United States|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|76000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n65285|United States|Slightly dissatisfied|I never declared a major|80000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n61631|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|36716.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C++;C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n16673|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|57276.0|1 - 2 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;SQL;HTML;CSS\n23474|China|Slightly dissatisfied|Computer science, computer engineering, or software engineering|19632.0|1 - 2 times per week|Male|East Asian|Primary/elementary school|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;Java;JavaScript;PHP;Python;SQL;Kotlin;HTML;CSS;Bash/Shell\n17548|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|52783.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|R;SQL\n77808|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|38650.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Java;Objective-C;SQL;Swift\n16656|India|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9393.0|3 - 4 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;Java;JavaScript;PHP;SQL;HTML;CSS\n17905|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|50304.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby\n4279|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|180000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|55 - 64 years old|Between 1 and 2 years ago|C;C++;Java;Matlab;Python;R;Scala;Bash/Shell\n31114|Malaysia|Extremely dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|10320.0|I don't typically exercise|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C++;JavaScript;Objective-C;Ruby;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS\n61657|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|62380.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;C#\n15160|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|56000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C#;JavaScript;PHP;Python;R;SQL;TypeScript;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n67365|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|94000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C#;Go;JavaScript;PHP;Python;Ruby;Rust;SQL;HTML;CSS;Bash/Shell\n13682|Netherlands|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|77104.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Perl;Python;HTML;CSS\n44164|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C;C++;Python;SQL;Bash/Shell\n61263|Iran, Islamic Republic of...|Moderately dissatisfied|Computer science, computer engineering, or software engineering|16644.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 2 and 4 years ago|C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n95237|Russian Federation|Slightly satisfied|A business discipline (ex. accounting, finance, marketing)|12732.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;HTML;CSS\n13689|Greece|Moderately dissatisfied|Computer science, computer engineering, or software engineering|24478.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n6831|France|Moderately satisfied|Computer science, computer engineering, or software engineering|66089.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;JavaScript;TypeScript\n11878|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|95000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;F#;JavaScript;TypeScript;HTML;CSS\n53400|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|308412.0|1 - 2 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Primary/elementary school|Over 4 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;Matlab;Objective-C;PHP;Python;R;SQL;Swift;HTML;CSS\n4370|India|Slightly satisfied|Computer science, computer engineering, or software engineering|150288.0|3 - 4 times per week|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Python;R;SQL\n46785|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|48616.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n98025|Switzerland|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|118872.0|3 - 4 times per week|Male|East Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|C++;C#;JavaScript;PHP;Python;TypeScript\n4673|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|3 - 4 times per week|Non-binary, genderqueer, or gender non-conforming|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;Java;JavaScript;Python;R;Ruby;SQL;HTML;CSS;Bash/Shell\n32291|Singapore|Slightly satisfied|Computer science, computer engineering, or software engineering|34067.0|3 - 4 times per week|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Ruby;SQL;VBA;VB.NET;HTML\n34562|Finland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|32316.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;SQL;HTML\n35875|Belgium|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|55812.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;HTML;CSS;Bash/Shell\n788|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|55000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;Lua;Python;HTML;CSS;Bash/Shell\n25607|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Go;Java;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS;Bash/Shell\n15348|France|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|58746.0|I don't typically exercise|Male|White or of European descent|They never completed any formal education|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Objective-C;Swift\n94897|Spain|Extremely satisfied|Computer science, computer engineering, or software engineering|44060.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Python;TypeScript\n55669|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|58746.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;SQL\n69847|United States|Extremely satisfied|Information systems, information technology, or system administration|83000.0|Daily or almost every day|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;Bash/Shell\n81418|Lebanon|Extremely satisfied|Computer science, computer engineering, or software engineering|13200.0|I don't typically exercise|Male|Middle Eastern|Other doctoral degree (Ph.D, Ed.D., etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n72016|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|33280.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Go;Java;JavaScript;PHP;SQL;CSS;Bash/Shell\n95560|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|107000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|Java;Scala\n10622|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|115000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C#;Go;JavaScript;Python;SQL;TypeScript\n80194|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|39648.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;VBA;HTML;CSS\n5771|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100500.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Java;SQL\n96383|Other Country (Not Listed Above)|Neither satisfied nor dissatisfied|A natural science (ex. biology, chemistry, physics)|58340.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;R;SQL;HTML;CSS;Bash/Shell\n9349|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|150000.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|JavaScript;Python;HTML;CSS\n30759|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|56365.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Go;Java;JavaScript;Objective-C;Python;SQL;Swift;TypeScript;HTML;CSS;Bash/Shell\n82086|Uruguay|Slightly satisfied|Computer science, computer engineering, or software engineering|7992.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;PHP;HTML;CSS\n62954|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|95000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n52466|Germany|Extremely dissatisfied|Computer science, computer engineering, or software engineering|58746.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|18 - 24 years old|Less than a year ago|C;C++;Python\n5917|Canada|Extremely satisfied|Computer science, computer engineering, or software engineering|96626.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;Java;Python;Bash/Shell\n52129|United States|Slightly satisfied|Mathematics or statistics|140000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;SQL;Bash/Shell\n94259|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|180000.0|1 - 2 times per week|Male|East Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;TypeScript;HTML;CSS\n36813|Colombia|Slightly dissatisfied|Information systems, information technology, or system administration|21300.0|3 - 4 times per week|Male|Black or of African descent;Hispanic or Latino/Latina|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;HTML;CSS;Bash/Shell\n26385|New Zealand|Slightly satisfied|Computer science, computer engineering, or software engineering|41658.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;PHP;SQL;HTML;CSS\n23720|France|Slightly satisfied|Web development or web design|10284.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n58233|Brazil|Extremely dissatisfied|Information systems, information technology, or system administration|65508.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;CSS\n38718|Iran, Islamic Republic of...|Slightly dissatisfied|Computer science, computer engineering, or software engineering|11652.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Java;Python\n70644|Australia|Moderately satisfied|Computer science, computer engineering, or software engineering|55981.0|I don't typically exercise|Male|Middle Eastern|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n80275|India|Slightly satisfied|Computer science, computer engineering, or software engineering|5640.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Assembly;JavaScript;Objective-C;PHP;Swift;HTML;CSS\n30508|Pakistan|Extremely satisfied|Computer science, computer engineering, or software engineering|7200.0|I don't typically exercise|Male|East Asian|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Java;PHP;Swift\n14183|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|30000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Java\n55113|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|200016.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;Python;SQL;Kotlin;Bash/Shell\n3756|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|94788.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Matlab;Perl;PHP;Python;Ruby;SQL;VB.NET;HTML;CSS;Bash/Shell\n59679|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|102000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;Python\n26958|Jordan|Moderately satisfied|Computer science, computer engineering, or software engineering|30468.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n42011|Russian Federation|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|8846.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|More than 4 years ago|C;C++;JavaScript;Matlab;Python;Visual Basic 6;HTML;CSS;Bash/Shell\n128|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|14000.0|3 - 4 times per week|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS;Bash/Shell\n16168|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|110000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n37058|Russian Federation|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|42456.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|PHP;Python;SQL;VBA\n99799|China|Slightly dissatisfied|Mathematics or statistics|23375.0|I don't typically exercise|Male|East Asian|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;Java;Delphi/Object Pascal\n14939|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|83224.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;Java\n28530|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|112000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;VB.NET;HTML;CSS\n85452|Saudi Arabia|Moderately satisfied|Computer science, computer engineering, or software engineering|33600.0|3 - 4 times per week|Female|South Asian|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;HTML;CSS\n55769|France|Slightly satisfied|Computer science, computer engineering, or software engineering|48955.0|I don't typically exercise|Male|Black or of African descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;Python;SQL;HTML;CSS;Bash/Shell\n20898|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;TypeScript;HTML;CSS\n574|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|106000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Ruby;SQL\n18121|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|75000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;PHP;Python;R;SQL;TypeScript;HTML;CSS;Bash/Shell\n1295|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|200000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C++;Java;JavaScript;Python;SQL;Bash/Shell\n98884|United States|Moderately satisfied|Information systems, information technology, or system administration|125000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;Python\n26723|Switzerland|Moderately satisfied|Computer science, computer engineering, or software engineering|125123.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C++;C#;Java;Swift;HTML;CSS;Bash/Shell\n65376|Germany|Slightly satisfied|Computer science, computer engineering, or software engineering|55075.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 1 and 2 years ago|Java;JavaScript;Ruby;SQL;Kotlin;HTML;Bash/Shell\n318|Slovakia|Extremely satisfied|Computer science, computer engineering, or software engineering|46992.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|CoffeeScript;JavaScript;TypeScript;HTML\n30754|United Kingdom|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|24308.0|3 - 4 times per week|Male|White or of European descent|They never completed any formal education|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Java;Python;HTML;Bash/Shell\n18398|Finland|Moderately satisfied|Computer science, computer engineering, or software engineering|76368.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Python;HTML\n33170|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|Python;HTML;Bash/Shell\n95021|Egypt|Moderately satisfied|Computer science, computer engineering, or software engineering|1704.0|I don't typically exercise|Female|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|Assembly;C;C++;C#;Go;Java;JavaScript;Matlab;PHP;R;Visual Basic 6;HTML;CSS\n79134|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|600060.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n82284|Switzerland|Neither satisfied nor dissatisfied|A business discipline (ex. accounting, finance, marketing)|93842.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;JavaScript;HTML\n64121|Germany|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|78328.0|3 - 4 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Clojure;Java;JavaScript;Objective-C;Kotlin\n47869|Denmark|Extremely satisfied|Computer science, computer engineering, or software engineering|73636.0|Daily or almost every day|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Objective-C;Perl;Swift\n68404|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|116500.0|3 - 4 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n78569|Canada|Moderately satisfied|Web development or web design|101457.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n92034|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|110000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;F#;Lua;Python;SQL;TypeScript;Kotlin;HTML;CSS\n18974|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|960000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;JavaScript\n41811|Netherlands|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|82000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Python;Scala;SQL;Bash/Shell\n63462|United States|Moderately satisfied|Information systems, information technology, or system administration|50000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;HTML;CSS;Bash/Shell\n37770|United Kingdom|Slightly dissatisfied|Mathematics or statistics|60423.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|C;Java;Python;HTML;CSS;Bash/Shell\n62917|Gambia|Moderately satisfied|Web development or web design|3780.0|1 - 2 times per week|Male|Black or of African descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Java;JavaScript;PHP;SQL;VBA;VB.NET;HTML;CSS\n32893|United States|Moderately satisfied|I never declared a major|105000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|CoffeeScript;JavaScript;Ruby;SQL;HTML;CSS;Bash/Shell\n31671|Belgium|Moderately dissatisfied|Computer science, computer engineering, or software engineering|36720.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;TypeScript;HTML\n42230|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|80000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C;C++;Objective-C;Python;Swift\n39027|United States|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|1056000.0|3 - 4 times per week|Male|East Asian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Matlab;Python;SQL;HTML;CSS;Bash/Shell\n64419|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|140000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;JavaScript;Ruby;TypeScript;HTML;CSS;Bash/Shell\n79331|United States|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|67000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|JavaScript;Perl;PHP;Python;R;SQL;HTML;CSS;Bash/Shell\n30361|Malaysia|Moderately satisfied|Computer science, computer engineering, or software engineering|10620.0|1 - 2 times per week|Male|South Asian|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;Swift\n68174|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|150000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C;Go;JavaScript;PHP;R;Ruby;SQL;HTML;CSS;Bash/Shell\n51987|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C++;JavaScript\n53132|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|70000.0|Daily or almost every day|Female|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Java;Python;SQL;Kotlin;Bash/Shell\n27320|United States|Extremely satisfied|A humanities discipline (ex. literature, history, philosophy)|115000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS\n81059|Russian Federation|Slightly satisfied|Computer science, computer engineering, or software engineering|44064.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C;C++;Python;Bash/Shell\n52068|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|134500.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;Bash/Shell\n85808|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|156000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|CoffeeScript;Go;Haskell;Java;JavaScript;PHP;Python;R;Ruby;SQL;Swift;HTML;CSS;Bash/Shell\n49935|Mexico|Extremely satisfied|Computer science, computer engineering, or software engineering|16116.0|Daily or almost every day|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;SQL;HTML;CSS\n68263|India|Slightly satisfied|Computer science, computer engineering, or software engineering|6653.0|I don't typically exercise|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;JavaScript;PHP;Python;TypeScript;HTML;CSS\n49638|France|Extremely satisfied|Computer science, computer engineering, or software engineering|24478.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C#\n22455|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|105000.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;Objective-C;SQL;Swift;VB.NET;HTML;CSS\n43358|Ireland|Moderately dissatisfied|Computer science, computer engineering, or software engineering|97910.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Erlang;Go;Java;Julia;Rust;Kotlin\n26621|Canada|Extremely satisfied|Information systems, information technology, or system administration|96624.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|45 - 54 years old|More than 4 years ago|C;C++;Java;JavaScript;Python;Bash/Shell\n73754|Bangladesh|Moderately satisfied|Computer science, computer engineering, or software engineering|16164.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n40106|Brazil|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|7488.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;Objective-C;HTML;CSS\n99244|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|883428.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;C#;Java;JavaScript;TypeScript;HTML;CSS;Bash/Shell\n8608|United Kingdom|Moderately satisfied|Mathematics or statistics|40282.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|More than 4 years ago|C#;Java;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n86327|Colombia|Extremely dissatisfied|Computer science, computer engineering, or software engineering|48000.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n56948|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|45000.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;Java;JavaScript;Objective-C;PHP;Python;SQL;HTML;CSS;Bash/Shell\n52348|Canada|Moderately dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|Java;JavaScript;Objective-C;PHP;CSS\n10200|Poland|Moderately satisfied|Computer science, computer engineering, or software engineering|17640.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C;C#;JavaScript;Python;HTML;CSS\n9409|Russian Federation|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|4248.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;Python;VBA;HTML;CSS\n32808|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|115000.0|1 - 2 times per week|Female|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|55 - 64 years old|Between 1 and 2 years ago|Java;SQL\n81863|Canada|Moderately satisfied|Computer science, computer engineering, or software engineering|62001.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;Groovy;Java;JavaScript;Perl;Python;R;Scala;SQL;HTML;CSS;Bash/Shell\n100143|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|5213.0|I don't typically exercise|Male|South Asian|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Java;JavaScript;Matlab;PHP;SQL;HTML;CSS;Bash/Shell\n70731|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|55000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n1368|Ukraine|Slightly satisfied|Mathematics or statistics|4680.0|1 - 2 times per week|Male|White or of European descent|Associate degree|1 - 2 hours|18 - 24 years old|Less than a year ago|Python;SQL;Bash/Shell\n43397|Canada|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80521.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;R;VBA\n99904|Russian Federation|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|31848.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Groovy;Java;JavaScript\n34651|Germany|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|5880.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Groovy;Java;JavaScript;Python;SQL;HTML;CSS\n57063|France|Moderately dissatisfied|A health science (ex. nursing, pharmacy, radiology)|36716.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;Python;HTML;CSS;Bash/Shell\n20248|India|Slightly satisfied|Computer science, computer engineering, or software engineering|2818.0|3 - 4 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;TypeScript;HTML;CSS\n80474|Turkey|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|48000.0|1 - 2 times per week|Male|Middle Eastern;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Objective-C;SQL;Kotlin;Bash/Shell\n35332|United States|Extremely satisfied|Information systems, information technology, or system administration|65000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;SQL;VB.NET;Visual Basic 6;HTML;CSS\n32312|United States|Extremely satisfied|Information systems, information technology, or system administration|110000.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|Go;Bash/Shell\n20981|Finland|Slightly dissatisfied|Computer science, computer engineering, or software engineering|55812.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Java;JavaScript;Ruby;SQL;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n11137|Netherlands|Moderately dissatisfied|Computer science, computer engineering, or software engineering|56298.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C++;Python\n8917|Sweden|Moderately satisfied|Computer science, computer engineering, or software engineering|43416.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n88005|India|Moderately dissatisfied|Information systems, information technology, or system administration|114588.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;Perl;Python;SQL;HTML;CSS;Bash/Shell\n24332|Ireland|Moderately satisfied|Mathematics or statistics|61194.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|JavaScript;Python;R;Scala;SQL\n85515|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|49000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;Go;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n84696|Czech Republic|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|55020.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Between 2 and 4 years ago|Assembly;C++;C#;F#;Java;JavaScript;SQL\n73675|Canada|Extremely satisfied|Mathematics or statistics|104678.0|1 - 2 times per week|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;Java;JavaScript;SQL;HTML;CSS\n7614|United States|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|90000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|JavaScript;Python\n52271|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|1000000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|More than 4 years ago|Go;JavaScript;Lua;Perl;PHP;Python;SQL;HTML;CSS;Bash/Shell\n34978|Russian Federation|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|63684.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|35 - 44 years old|Between 2 and 4 years ago|Assembly;C;C++;C#;Go;JavaScript;Python;SQL;VBA;HTML;CSS;Bash/Shell\n42027|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|83342.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|C#;JavaScript;SQL;HTML;CSS\n90666|Hong Kong (S.A.R.)|Moderately dissatisfied|A natural science (ex. biology, chemistry, physics)|41136.0|1 - 2 times per week|Male|East Asian|They never completed any formal education|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Python;R\n37537|Canada|Slightly satisfied|Computer science, computer engineering, or software engineering|112730.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|Less than a year ago|C#;Python;VB.NET;Bash/Shell\n92840|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|8808.0|I don't typically exercise|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C++;C#;JavaScript;TypeScript;HTML;CSS\n56635|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|47500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Perl;Python;SQL;Bash/Shell\n44897|United States|Moderately dissatisfied|Information systems, information technology, or system administration|65000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Groovy;Java;JavaScript;HTML;CSS\n35542|India|Moderately satisfied|Computer science, computer engineering, or software engineering|5256.0|1 - 2 times per week|Non-binary, genderqueer, or gender non-conforming|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Objective-C;Swift\n4186|India|Moderately satisfied|Computer science, computer engineering, or software engineering|8268.0|I don't typically exercise|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C#;Go;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;Bash/Shell\n52890|Singapore|Extremely satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|59052.0|1 - 2 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Groovy;JavaScript;Ruby;HTML;CSS;Bash/Shell\n16757|United States|Slightly dissatisfied|A natural science (ex. biology, chemistry, physics)|91000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n79549|Bulgaria|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|14688.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C++;Java;JavaScript;PHP;Python;HTML;CSS\n7530|United Kingdom|Slightly satisfied|Web development or web design|41671.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;Ruby;SQL;HTML;CSS\n95566|France|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|82000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;SQL\n24723|Germany|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|13956.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|More than 4 years ago|C;C#;Go;Java;JavaScript;Rust;TypeScript;Kotlin\n59669|Israel|Moderately satisfied|Computer science, computer engineering, or software engineering|112344.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;TypeScript\n83530|Romania|Slightly dissatisfied|Computer science, computer engineering, or software engineering|16152.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;SQL;HTML;CSS\n86270|Netherlands|Slightly dissatisfied|Web development or web design|117492.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;Scala;Bash/Shell\n24131|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|52627.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;C++;C#;Haskell;Java;Python;Scala\n82203|Slovakia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|29376.0|I don't typically exercise|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS\n99525|Norway|Slightly satisfied|Computer science, computer engineering, or software engineering|68862.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;CSS\n88071|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|C;C++;C#;JavaScript;Perl;Bash/Shell\n33564|Mexico|Moderately satisfied|Computer science, computer engineering, or software engineering|74772.0|3 - 4 times per week|Female|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Python\n53824|India|Moderately satisfied|Computer science, computer engineering, or software engineering|9396.0|Daily or almost every day|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Haskell;JavaScript;Python\n93400|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|78000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C#;JavaScript;Rust;SQL;HTML;CSS;Bash/Shell\n42596|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|33000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C++;C#;Java;JavaScript;Python;SQL;Swift;HTML;CSS;Bash/Shell\n33851|Mexico|Moderately dissatisfied|Information systems, information technology, or system administration|35448.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Some college/university study without earning a degree|3 - 4 hours|55 - 64 years old|More than 4 years ago|Assembly;C;C++;Java;SQL;VBA;VB.NET;Visual Basic 6;Cobol\n33801|Libyan Arab Jamahiriya|Slightly dissatisfied|Computer science, computer engineering, or software engineering|42635.0|1 - 2 times per week|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|Over 4 hours|25 - 34 years old|Between 1 and 2 years ago|Go;Java;JavaScript;PHP;TypeScript;HTML;CSS\n34032|United States|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|160000.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|C++;C#;Python;SQL;Bash/Shell\n66419|Morocco|Moderately dissatisfied|Computer science, computer engineering, or software engineering|9744.0|3 - 4 times per week|Male|Middle Eastern|Some college/university study without earning a degree|3 - 4 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;PHP;SQL;VB.NET;HTML;CSS\n16543|Belgium|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|51648.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript\n87954|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|84000.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;C#;Python\n51798|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|75000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Go;JavaScript;PHP;SQL;HTML;CSS;Bash/Shell\n80368|United States|Moderately satisfied|Web development or web design|70000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n34307|Greece|Slightly satisfied|Computer science, computer engineering, or software engineering|12239.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|Less than a year ago|Java;Python;Scala\n85481|United States|Slightly satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|147000.0|I don't typically exercise|Female|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|C;C#;JavaScript;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n88959|Lebanon|Extremely satisfied|Computer science, computer engineering, or software engineering|16800.0|I don't typically exercise|Male|Middle Eastern|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|C;C++;Haskell;Java;JavaScript;Kotlin;HTML;CSS;Bash/Shell\n41742|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|62507.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n32689|Brazil|Slightly dissatisfied|Computer science, computer engineering, or software engineering|13104.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;Ruby;SQL;TypeScript;HTML;CSS;Bash/Shell\n25353|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|110000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Python;SQL;TypeScript;HTML;CSS\n27912|France|Extremely satisfied|Computer science, computer engineering, or software engineering|64866.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|Assembly;C;JavaScript;Perl;PHP;Python;SQL;VBA;Delphi/Object Pascal;Cobol;HTML;CSS;Bash/Shell\n80795|Ukraine|Moderately satisfied|Computer science, computer engineering, or software engineering|24000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift;Kotlin\n58766|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|134000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;Bash/Shell\n27933|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|66000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Less than a year ago|C;Python\n86625|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|42000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;JavaScript;SQL;VBA;HTML;CSS\n36922|Turkey|Moderately satisfied|Computer science, computer engineering, or software engineering|10488.0|I don't typically exercise|Male|Middle Eastern;White or of European descent|They never completed any formal education|30 - 59 minutes|18 - 24 years old|Less than a year ago|Java;Python\n72952|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|6384.0|I don't typically exercise|Male|South Asian|Associate degree|3 - 4 hours|25 - 34 years old|Less than a year ago|JavaScript;PHP;HTML;CSS\n31603|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|58752.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|C++;JavaScript;PHP;SQL;TypeScript;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n60232|Russian Federation|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|26532.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C++;Python;Scala;Bash/Shell\n91713|Canada|Slightly dissatisfied|Computer science, computer engineering, or software engineering|56365.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Go;Java;JavaScript;Lua;Python;SQL;HTML;CSS;Bash/Shell\n53449|United Kingdom|Moderately satisfied|Computer science, computer engineering, or software engineering|23891.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n58620|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|87127.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|C#;Groovy;Java;JavaScript;SQL;HTML;CSS;Bash/Shell\n61515|United States|Slightly satisfied|Mathematics or statistics|73000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;Python;Swift;VBA;HTML;CSS\n36826|Brazil|Extremely satisfied|Computer science, computer engineering, or software engineering|22452.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|Java\n29257|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|75000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Python;R;SQL;Bash/Shell\n94000|France|Slightly satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|39164.0|1 - 2 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;HTML;CSS\n85999|Bosnia and Herzegovina|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|29376.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Objective-C;Swift\n19953|India|Extremely satisfied|Computer science, computer engineering, or software engineering|18780.0|I don't typically exercise|Male|East Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|More than 4 years ago|Java;JavaScript;Python;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n82345|Switzerland|Moderately satisfied|Information systems, information technology, or system administration|131379.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;Java;JavaScript;PHP;Scala;Delphi/Object Pascal;HTML;CSS;Bash/Shell\n65380|United States|Slightly satisfied|Computer science, computer engineering, or software engineering|90000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|More than 4 years ago|Go;JavaScript;Ruby;HTML;CSS;Bash/Shell\n35226|Netherlands|Moderately satisfied|Computer science, computer engineering, or software engineering|51408.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|C++;C#;Python;VBA\n51531|Mexico|Moderately dissatisfied|Information systems, information technology, or system administration|16116.0|I don't typically exercise|Female|Black or of African descent;East Asian;Hispanic or Latino/Latina;Middle Eastern;Native American, Pacific Islander, or Indigenous Australian;South Asian;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|C#;JavaScript;PHP;Ruby;SQL;TypeScript;HTML;CSS\n28258|United Kingdom|Moderately satisfied|Mathematics or statistics|55562.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|45 - 54 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;HTML;CSS\n92128|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|101000.0|1 - 2 times per week|Male|White or of European descent|Associate degree|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C++;Groovy;Java;JavaScript;HTML;CSS\n8823|Austria|Extremely satisfied|Computer science, computer engineering, or software engineering|15276.0|3 - 4 times per week|Female|White or of European descent|Some college/university study without earning a degree|1 - 2 hours|18 - 24 years old|Less than a year ago|C;C++;Haskell;Java;JavaScript;Matlab;Python;R;SQL;HTML;CSS;Bash/Shell\n94202|United States|Moderately satisfied|Web development or web design|32500.0|1 - 2 times per week|Female|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|JavaScript;PHP;HTML;CSS\n94144|Ukraine|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|48000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n25231|Kenya|Moderately satisfied|Mathematics or statistics|40824.0|I don't typically exercise|Male|Black or of African descent|Some college/university study without earning a degree|1 - 2 hours|35 - 44 years old|More than 4 years ago|PHP\n23670|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|70000.0|1 - 2 times per week|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;Go;Java;JavaScript;PHP;Python;SQL;Swift;TypeScript;HTML;CSS\n27434|France|Moderately dissatisfied|Web development or web design|48955.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Between 2 and 4 years ago|Java;Swift;Bash/Shell\n66250|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|55075.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|PHP;SQL\n97892|United States|Extremely dissatisfied|Computer science, computer engineering, or software engineering|2000000.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|55 - 64 years old|Between 1 and 2 years ago|C;C++;C#;Java;JavaScript;Objective-C;SQL;Swift;TypeScript;VB.NET;HTML;CSS;Bash/Shell\n88132|Russian Federation|Slightly dissatisfied|Mathematics or statistics|27600.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n87288|United States|Slightly satisfied|A humanities discipline (ex. literature, history, philosophy)|140000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina;White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|45 - 54 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n44962|United States|Slightly satisfied|Web development or web design|175000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|3 - 4 hours|35 - 44 years old|More than 4 years ago|JavaScript;HTML;CSS\n24302|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|100000.0|1 - 2 times per week|Male|Black or of African descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;CoffeeScript;Go;Java;JavaScript;Lua;Objective-C;PHP;Python;Ruby;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n81708|Austria|Moderately dissatisfied|Computer science, computer engineering, or software engineering|142872.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Less than a year ago|C;JavaScript;Python;Scala;SQL;HTML;CSS;Bash/Shell\n35755|Israel|Extremely satisfied|Computer science, computer engineering, or software engineering|154476.0|3 - 4 times per week|Male|Middle Eastern;White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|Less than a year ago|Groovy;Java;JavaScript;Python;SQL;HTML;Bash/Shell\n36342|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|44060.0|I don't typically exercise|Male|White or of European descent|Associate degree|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n97060|Brazil|Moderately satisfied|Information systems, information technology, or system administration|5616.0|I don't typically exercise|Male|Hispanic or Latino/Latina;White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|3 - 4 hours|18 - 24 years old|Less than a year ago|JavaScript;PHP;SQL;TypeScript;VB.NET;HTML;CSS\n49651|Cyprus|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|51408.0|I don't typically exercise|Male|White or of European descent|Professional degree (JD, MD, etc.)|Less than 30 minutes|35 - 44 years old|Between 1 and 2 years ago|JavaScript;PHP;SQL;HTML;Bash/Shell\n3826|United Kingdom|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|145849.0|I don't typically exercise|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Objective-C;HTML;CSS\n97944|United Kingdom|Slightly satisfied|Information systems, information technology, or system administration|76397.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;Perl;SQL;HTML;CSS;Bash/Shell\n75725|Norway|Moderately satisfied|Computer science, computer engineering, or software engineering|86716.0|1 - 2 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|Between 1 and 2 years ago|C;JavaScript;Perl;PHP;SQL;CSS;Bash/Shell\n12153|India|Moderately satisfied|Computer science, computer engineering, or software engineering|52442.0|3 - 4 times per week|Male|South Asian|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C;C++;Java;Lua;Matlab;PHP;Python;R;Scala;SQL;HTML;CSS;Bash/Shell\n85983|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|100000.0|I don't typically exercise|Male|White or of European descent|Associate degree|Less than 30 minutes|45 - 54 years old|More than 4 years ago|C#;JavaScript;Matlab;SQL;TypeScript;HTML;CSS\n35562|Italy|Moderately satisfied|Computer science, computer engineering, or software engineering|24972.0|3 - 4 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C;C++;C#;Java;JavaScript;Matlab;Objective-C;PHP;Python;SQL\n80333|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|74000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n42389|Romania|Moderately satisfied|Computer science, computer engineering, or software engineering|50448.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;C#;Go;Java;Matlab;PHP;Python;HTML;CSS;Bash/Shell\n76912|United States|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|123000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|JavaScript;SQL\n23596|Russian Federation|Slightly satisfied|Information systems, information technology, or system administration|12204.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;HTML;CSS\n56958|United States|Moderately satisfied|Web development or web design|70000.0|Daily or almost every day|Male|White or of European descent|Some college/university study without earning a degree|Less than 30 minutes|25 - 34 years old|Less than a year ago|PHP;HTML;CSS\n85820|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|79552.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|Between 2 and 4 years ago|C#;Groovy;Java;JavaScript;Python;SQL;TypeScript;Bash/Shell\n91042|United States|Extremely satisfied|Computer science, computer engineering, or software engineering|75000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Delphi/Object Pascal\n13046|Spain|Moderately dissatisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|16884.0|1 - 2 times per week|Male|Middle Eastern|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|JavaScript;HTML;CSS;Bash/Shell\n27017|Spain|Neither satisfied nor dissatisfied|Web development or web design|31821.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|18 - 24 years old|Less than a year ago|CoffeeScript;JavaScript;TypeScript;HTML;CSS\n78483|Brazil|Moderately satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|18715.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 1 and 2 years ago|Python;R;SQL;Bash/Shell\n42468|Nepal|Extremely dissatisfied|Information systems, information technology, or system administration|1000.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Assembly;C;Java;JavaScript;PHP;Python;SQL;HTML;CSS\n74344|Switzerland|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|93840.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Objective-C;Swift;Kotlin\n19990|Austria|Slightly satisfied|Computer science, computer engineering, or software engineering|42360.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|Java;JavaScript;PHP;SQL;TypeScript;Kotlin;HTML;CSS\n61052|United States|Moderately satisfied|Information systems, information technology, or system administration|151000.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Primary/elementary school|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;SQL;HTML;CSS\n71568|Colombia|Slightly satisfied|Computer science, computer engineering, or software engineering|25308.0|3 - 4 times per week|Male|Hispanic or Latino/Latina|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C#;JavaScript;Ruby;SQL;TypeScript;Visual Basic 6;HTML;CSS\n47023|United States|Moderately satisfied|Mathematics or statistics|115000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|JavaScript;Perl;Python;SQL;HTML;CSS\n82643|Russian Federation|Moderately satisfied|Information systems, information technology, or system administration|42000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Python;Ruby;Bash/Shell\n9619|India|Moderately satisfied|Computer science, computer engineering, or software engineering|9960.0|Daily or almost every day|Male|South Asian|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Groovy;Java\n40725|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|112000.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Between 2 and 4 years ago|JavaScript;PHP;Python;SQL;VBA;HTML;CSS;Bash/Shell\n72808|United States|Moderately satisfied|Information systems, information technology, or system administration|85748.0|1 - 2 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|C#;Clojure;JavaScript;SQL;Visual Basic 6\n56542|France|Slightly dissatisfied|Computer science, computer engineering, or software engineering|55075.0|1 - 2 times per week|Male|White or of European descent|Professional degree (JD, MD, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|C;C++;C#;JavaScript;SQL;HTML;CSS;Bash/Shell\n54482|Germany|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|38184.0|3 - 4 times per week|Male|White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;Ruby;HTML;CSS\n86364|United States|Slightly satisfied|A social science (ex. anthropology, psychology, political science)|123500.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|Go;JavaScript;Objective-C;Python;Swift;Bash/Shell\n71560|Japan|Slightly satisfied|Computer science, computer engineering, or software engineering|72031.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;JavaScript;Matlab;Python;R;TypeScript;HTML;CSS\n67168|Saudi Arabia|Slightly dissatisfied|Computer science, computer engineering, or software engineering|19200.0|3 - 4 times per week|Male|Black or of African descent;East Asian;Hispanic or Latino/Latina;Middle Eastern;Native American, Pacific Islander, or Indigenous Australian;South Asian;White or of European descent|Primary/elementary school|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Swift\n85454|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|East Asian;White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C;C++;C#;Java;JavaScript;Python;SQL;HTML;CSS;Bash/Shell\n59967|United States|Slightly dissatisfied|Computer science, computer engineering, or software engineering|50000.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C++;C#;JavaScript;Python;Rust;SQL;TypeScript;HTML;CSS;Bash/Shell\n100644|Portugal|Slightly satisfied|A natural science (ex. biology, chemistry, physics)|14688.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C++;Python\n8643|Sweden|Extremely satisfied|Computer science, computer engineering, or software engineering|1000000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;TypeScript\n52973|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|62000.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Java;JavaScript;Ruby;HTML;CSS\n46440|South Africa|Extremely satisfied|Computer science, computer engineering, or software engineering|63512.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|18 - 24 years old|Between 2 and 4 years ago|C;C++;C#;Java;JavaScript;Objective-C;TypeScript;HTML;CSS\n52766|Australia|Moderately satisfied|Information systems, information technology, or system administration|51983.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n82119|Germany|Slightly dissatisfied|Computer science, computer engineering, or software engineering|61194.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++\n23072|Hungary|Moderately dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|21432.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;Java;JavaScript;Objective-C;Python;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n37129|United States|Moderately satisfied|A social science (ex. anthropology, psychology, political science)|76500.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|Java;JavaScript;CSS\n2041|United States|Extremely satisfied|A social science (ex. anthropology, psychology, political science)|130000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|C;JavaScript;Objective-C;Ruby;SQL;Swift;HTML;CSS\n87531|United Kingdom|Moderately satisfied|A natural science (ex. biology, chemistry, physics)|97233.0|3 - 4 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|Java;JavaScript;PHP;SQL;Kotlin;HTML;CSS\n77409|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|70000.0|Daily or almost every day|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|1 - 2 hours|18 - 24 years old|Between 1 and 2 years ago|Assembly;C;C++;Erlang;Go;Haskell;Java;JavaScript;Objective-C;PHP;Python;Ruby;SQL;Swift;TypeScript;Kotlin;HTML;CSS;Bash/Shell\n74811|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|65000.0|I don't typically exercise|Female;Non-binary, genderqueer, or gender non-conforming|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C#;JavaScript;SQL;TypeScript;HTML;CSS\n84361|Croatia|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|32364.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;Java;Python;Rust;Scala;Bash/Shell\n89574|Bosnia and Herzegovina|Slightly dissatisfied|Computer science, computer engineering, or software engineering|7512.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 1 and 2 years ago|C;C++;Java;JavaScript;PHP;Python;SQL;TypeScript;HTML;CSS;Bash/Shell\n2185|United States|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|71250.0|1 - 2 times per week|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|More than 4 years ago|JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n98951|United States|Extremely satisfied|I never declared a major|85000.0|I don't typically exercise|Female;Transgender|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|JavaScript;PHP;Python;SQL;VB.NET;HTML;CSS;Bash/Shell\n25172|United States|Moderately satisfied|Information systems, information technology, or system administration|98000.0|I don't typically exercise|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C++;Go;JavaScript;Python;SQL;HTML;CSS\n72753|Germany|Slightly dissatisfied|Mathematics or statistics|77104.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Matlab;Python;Bash/Shell\n63125|Viet Nam|Neither satisfied nor dissatisfied|Information systems, information technology, or system administration|4800.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|3 - 4 hours|18 - 24 years old|Between 1 and 2 years ago|JavaScript;HTML;CSS\n36708|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|245000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|C#;JavaScript;SQL;HTML;CSS\n47885|United States|Moderately satisfied|Computer science, computer engineering, or software engineering|135000.0|3 - 4 times per week|Male|White or of European descent|Some college/university study without earning a degree|30 - 59 minutes|18 - 24 years old|Between 2 and 4 years ago|Assembly;C++;C#;Objective-C;Perl;Bash/Shell\n95952|Dominican Republic|Moderately satisfied|Computer science, computer engineering, or software engineering|22356.0|1 - 2 times per week|Male|Hispanic or Latino/Latina|Professional degree (JD, MD, etc.)|3 - 4 hours|25 - 34 years old|More than 4 years ago|C#;Java;JavaScript;Ruby;SQL;VB.NET\n44360|Brazil|Moderately satisfied|Computer science, computer engineering, or software engineering|7860.0|I don't typically exercise|Male|Hispanic or Latino/Latina|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C;C++;JavaScript;Matlab;Objective-C;Python;Ruby;Swift;HTML;CSS;Bash/Shell\n73319|Switzerland|Extremely dissatisfied|Computer science, computer engineering, or software engineering|121995.0|I don't typically exercise|Female|Black or of African descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Java;Python;Scala;SQL;Bash/Shell\n4346|India|Extremely dissatisfied|Computer science, computer engineering, or software engineering|5640.0|1 - 2 times per week|Male|South Asian|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Between 1 and 2 years ago|Assembly;C;C++;JavaScript;SQL;VBA;VB.NET;Visual Basic 6;HTML;CSS;Bash/Shell\n37351|United Kingdom|Moderately dissatisfied|Computer science, computer engineering, or software engineering|37504.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|30 - 59 minutes|45 - 54 years old|More than 4 years ago|Assembly;C;C++;Java;JavaScript;Objective-C;PHP;Python;SQL;Swift;HTML;CSS;Bash/Shell\n44823|United States|Moderately satisfied|Mathematics or statistics|120000.0|3 - 4 times per week|Female|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|Python;R;SQL;Bash/Shell\n15005|Australia|Neither satisfied nor dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|159947.0|I don't typically exercise|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|45 - 54 years old|More than 4 years ago|Assembly;C;C++;C#;Erlang;Groovy;Java;JavaScript;R;SQL;TypeScript;VBA;HTML;CSS;Bash/Shell\n98834|France|Slightly satisfied|Another engineering discipline (ex. civil, electrical, mechanical)|79552.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|C#;Java;JavaScript;Scala;SQL\n23981|United States|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|80000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|45 - 54 years old|Between 2 and 4 years ago|Assembly;C;C++;Java;JavaScript;Matlab;HTML\n65730|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|87000.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|CoffeeScript;JavaScript;PHP;HTML;CSS\n35899|Ukraine|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|4680.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|JavaScript;Ruby;SQL;HTML;CSS\n74470|Spain|Moderately satisfied|Computer science, computer engineering, or software engineering|440592.0|1 - 2 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Less than a year ago|C++;Java;Python;R;SQL;HTML;CSS\n59521|Germany|Moderately satisfied|Computer science, computer engineering, or software engineering|52627.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|18 - 24 years old|Between 2 and 4 years ago|JavaScript;HTML;CSS;Bash/Shell\n51190|United Kingdom|Extremely satisfied|Computer science, computer engineering, or software engineering|50004.0|Daily or almost every day|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|Less than 30 minutes|25 - 34 years old|Less than a year ago|C++;Matlab;Python\n75724|India|Slightly dissatisfied|Another engineering discipline (ex. civil, electrical, mechanical)|50094.0|1 - 2 times per week|Male|South Asian|Bachelor’s degree (BA, BS, B.Eng., etc.)|Less than 30 minutes|35 - 44 years old|Less than a year ago|C++;Go;Java;Rust;Kotlin\n58353|United States|Moderately satisfied|A humanities discipline (ex. literature, history, philosophy)|130000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|35 - 44 years old|Between 2 and 4 years ago|JavaScript;Ruby;HTML;CSS\n50731|Ukraine|Extremely dissatisfied|Computer science, computer engineering, or software engineering|25200.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|25 - 34 years old|Between 2 and 4 years ago|Objective-C;Python;Swift;Bash/Shell\n90041|United States|Moderately dissatisfied|Computer science, computer engineering, or software engineering|120000.0|1 - 2 times per week|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|1 - 2 hours|25 - 34 years old|Between 2 and 4 years ago|Go;JavaScript;PHP;Python;SQL;HTML;CSS;Bash/Shell\n99603|Lithuania|Moderately satisfied|A business discipline (ex. accounting, finance, marketing)|36720.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|Go;JavaScript;Python;Bash/Shell\n33013|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|110000.0|3 - 4 times per week|Male|White or of European descent|Associate degree|30 - 59 minutes|25 - 34 years old|Less than a year ago|JavaScript;TypeScript;HTML;CSS\n42628|Hungary|Extremely satisfied|Computer science, computer engineering, or software engineering|43668.0|I don't typically exercise|Male|White or of European descent|Associate degree|1 - 2 hours|35 - 44 years old|Between 1 and 2 years ago|C;JavaScript;Python;HTML;CSS\n20170|Kenya|Moderately satisfied|Computer science, computer engineering, or software engineering|8160.0|I don't typically exercise|Male|Black or of African descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|3 - 4 hours|25 - 34 years old|Between 1 and 2 years ago|Java;JavaScript;PHP;SQL;TypeScript;HTML;CSS;Bash/Shell\n77546|Sweden|Extremely satisfied|A natural science (ex. biology, chemistry, physics)|51152.0|1 - 2 times per week|Male|White or of European descent|Other doctoral degree (Ph.D, Ed.D., etc.)|1 - 2 hours|35 - 44 years old|More than 4 years ago|Assembly;C;C++;Groovy;Perl;Python;SQL;Bash/Shell\n80459|United Kingdom|Slightly satisfied|Computer science, computer engineering, or software engineering|69452.0|3 - 4 times per week|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|Less than 30 minutes|35 - 44 years old|More than 4 years ago|C#;JavaScript;Python;SQL;VBA;VB.NET;HTML;CSS;Bash/Shell\n80088|Poland|Slightly satisfied|Computer science, computer engineering, or software engineering|27000.0|I don't typically exercise|Male|White or of European descent|Master’s degree (MA, MS, M.Eng., MBA, etc.)|30 - 59 minutes|25 - 34 years old|Between 2 and 4 years ago|Groovy;Java;JavaScript;SQL;TypeScript;HTML;CSS;Bash/Shell\n20353|Spain|Slightly satisfied|Computer science, computer engineering, or software engineering|15298.0|I don't typically exercise|Male|White or of European descent|Secondary school (e.g. American high school, German Realschule or Gymnasium, etc.)|30 - 59 minutes|18 - 24 years old|Less than a year ago|C#;Java;JavaScript;SQL;HTML;CSS\n56375|United States|Moderately satisfied|Fine arts or performing arts (ex. graphic design, music, studio art)|62000.0|Daily or almost every day|Male|White or of European descent|Bachelor’s degree (BA, BS, B.Eng., etc.)|1 - 2 hours|25 - 34 years old|Less than a year ago|C#;JavaScript;Python;SQL;TypeScript;HTML;CSS\n42375|India|Neither satisfied nor dissatisfied|Computer science, computer engineering, or software engineering|7140.0|I don't typically exercise|Male|South Asian|Some college/university study without earning a degree|30 - 59 minutes|25 - 34 years old|Between 1 and 2 years ago|C;Java;Matlab;Objective-C;PHP;SQL;Swift;VB.NET;Visual Basic 6;HTML;CSS\n</pi:text-file>"
  },
  {
    "path": "examples/sample-book/gen/dynamic_subs/dynamic_substitutions.xml",
    "content": "<xml>\n  <dynamic-substitution id=\"fillin-random-simple\">\n    <eval-subst obj=\"myNum\">7</eval-subst>\n    <eval-subst obj=\"mySquare\">49</eval-subst>\n  </dynamic-substitution>\n  <dynamic-substitution id=\"fillin-math-solve-equation\">\n    <eval-subst obj=\"theFunction\">-2 x-6</eval-subst>\n    <eval-subst obj=\"theAnswer\">-3</eval-subst>\n    <eval-subst obj=\"b\">-6</eval-subst>\n    <eval-subst obj=\"negB\">6</eval-subst>\n    <eval-subst obj=\"m\">-2</eval-subst>\n  </dynamic-substitution>\n  <dynamic-substitution id=\"fillin-math-find-derivatives\">\n    <eval-subst obj=\"formula\">-1 x^{5}-10</eval-subst>\n    <eval-subst obj=\"correctD1\">-\\left(5 x^{4}\\right)</eval-subst>\n    <eval-subst obj=\"correctD2\">-\\left(20 x^{3}\\right)</eval-subst>\n    <eval-subst obj=\"b\">-10</eval-subst>\n    <eval-subst obj=\"n\">5</eval-subst>\n    <eval-subst obj=\"nm1\">4</eval-subst>\n  </dynamic-substitution>\n  <dynamic-substitution id=\"fillin-math-decompose-function\">\n    <eval-subst obj=\"composition\">4 \\left(-x-3\\right)^{3}+5</eval-subst>\n    <eval-subst obj=\"outerFormula\">4 x^{3}+5</eval-subst>\n    <eval-subst obj=\"innerFormula\">-x-3</eval-subst>\n  </dynamic-substitution>\n</xml>"
  },
  {
    "path": "examples/sample-book/gen/qrcode/OpenDSA-integration-bs-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/OpenDSA-integration-bs.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#OpenDSA-integration-bs</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/OpenDSA-integration-dijkstra-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/OpenDSA-integration-dijkstra.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#OpenDSA-integration-dijkstra</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/OpenDSA-list-insertion-exercise-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/OpenDSA-list-insertion-exercise.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#OpenDSA-list-insertion-exercise</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/OpenDSA-list-insertion-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/OpenDSA-list-insertion.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#OpenDSA-list-insertion</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/doenet-velocity-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/doenet-velocity.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#doenet-velocity</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/noparts/decorative/html/doenet-velocity-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/interactive-doenetml-example-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/interactive-doenetml-example.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/doenet.html#interactive-doenetml-example</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/noparts/decorative/html/interactive-doenetml-example-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/interactive-horstmann-codecheck-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/interactive-horstmann-codecheck.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#interactive-horstmann-codecheck</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/opendsa-slideshow-pop-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/opendsa-slideshow-pop.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#opendsa-slideshow-pop</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/show-eval-visualization-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/show-eval-visualization.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#show-eval-visualization</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/noparts/decorative/html/show-eval-visualization-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/splice-resize-example-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://pretextbook.org/examples/noparts/decorative/html/splice-resize-example.html</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/splice-integration.html#splice-resize-example</pi:context-url><pi:embed-iframe-url>https://pretextbook.org/examples/noparts/decorative/html/splice-resize-example-if.html</pi:embed-iframe-url></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-eight-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-eight</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-eleven-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-eleven</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-five-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-five</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-four-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-four</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-nine-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-nine</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-one-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-one</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-seven-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-seven</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-six-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-six</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-ten-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-ten</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-three-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-three</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-two-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/atomic-video.html#youtube-list-vars-two</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/qrcode/youtube-list-vars-url.xml",
    "content": "<?xml version=\"1.0\"?>\n<pi:qrcode-urls xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><pi:standalone-url>https://www.youtube.com/watch?v=X1-UNHUajfk</pi:standalone-url><pi:context-url>https://pretextbook.org/examples/noparts/decorative/html/videos-in-runestone.html#youtube-list-vars</pi:context-url><pi:embed-iframe-url/></pi:qrcode-urls>\n"
  },
  {
    "path": "examples/sample-book/gen/trace/c-hello-world-code-lens.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-c-hello-world-code-lens\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"#include <stdio.h>\\n\\nint main(void)\\n{\\n    puts(\\\"Hello, World!\\\");\\n}\\n\", \"trace\": [{\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 4, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"return\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"Hello, World!\\n\"}], \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/exploration-with-always-static-program.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-exploration-with-always-static-program\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"for i in range(10):\\n    print(i)\\n\", \"trace\": [{\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 0}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 0}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 1}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 1}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 2}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 2}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 3}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 3}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 4}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 4}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 5}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 5}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 6}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 6}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 7}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 7}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 8}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 8}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 9}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n\"}, {\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"i\": 9}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\\n\"}, {\"line\": 1, \"event\": \"return\", \"func_name\": \"<module>\", \"globals\": {\"i\": 9}, \"ordered_globals\": [\"i\"], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"0\\n1\\n2\\n3\\n4\\n5\\n6\\n7\\n8\\n9\\n\"}], \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/java-hello-world-code-lens.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-java-hello-world-code-lens\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"public class HelloWorld {\\n    public static void main(String[] args) {\\n        System.out.println(\\\"Hello, World!\\\");\\n    }\\n}\\n\", \"stdin\": \"\", \"trace\": [{\"stdout\": \"\", \"event\": \"call\", \"line\": 3, \"stack_to_render\": [{\"func_name\": \"main:3\", \"encoded_locals\": {}, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"1\", \"frame_id\": 1}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 3, \"stack_to_render\": [{\"func_name\": \"main:3\", \"encoded_locals\": {}, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"2\", \"frame_id\": 2}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}, {\"stdout\": \"Hello, World!\\n\", \"event\": \"step_line\", \"line\": 4, \"stack_to_render\": [{\"func_name\": \"main:4\", \"encoded_locals\": {}, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"5\", \"frame_id\": 5}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}, {\"stdout\": \"Hello, World!\\n\", \"event\": \"return\", \"line\": 4, \"stack_to_render\": [{\"func_name\": \"main:4\", \"encoded_locals\": {\"__return__\": [\"VOID\"]}, \"ordered_varnames\": [\"__return__\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"6\", \"frame_id\": 6}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}], \"userlog\": \"Debugger VM maxMemory: 444M\\n\", \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/program-codelens-cpp-questions.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-program-codelens-cpp-questions\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"int foo() {\\n    int x = 2;\\n    int y = ++x;\\n    return y;\\n}\\nint main() {\\n    int x = foo();\\n    while (x < 20) {\\n      x *= 2;\\n    }\\n}\\n\", \"trace\": [{\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"call\", \"func_name\": \"foo()\", \"globals\": {}, \"heap\": {}, \"line\": 2, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": false, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}, {\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BB8\", \"int\", \"<UNINITIALIZED>\"], \"y\": [\"C_DATA\", \"0xFFF000BBC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BC0\", \"func_name\": \"foo()\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 2, \"ordered_varnames\": [\"x\", \"y\"], \"parent_frame_id_list\": [], \"unique_hash\": \"foo()_0xFFF000BC0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"foo()\", \"globals\": {}, \"heap\": {}, \"line\": 3, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": false, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}, {\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BB8\", \"int\", 2], \"y\": [\"C_DATA\", \"0xFFF000BBC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BC0\", \"func_name\": \"foo()\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 3, \"ordered_varnames\": [\"x\", \"y\"], \"parent_frame_id_list\": [], \"unique_hash\": \"foo()_0xFFF000BC0\"}], \"stdout\": \"\", \"question\": {\"text\": \"What value will be assigned to <code class=\\\"code-inline tex2jax_ignore\\\">y</code>?\", \"correctText\": \"3\", \"feedback\": \"<code class=\\\"code-inline tex2jax_ignore\\\">++</code> has precedence over <code class=\\\"code-inline tex2jax_ignore\\\">=</code>\"}}, {\"event\": \"step_line\", \"func_name\": \"foo()\", \"globals\": {}, \"heap\": {}, \"line\": 4, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": false, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}, {\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BB8\", \"int\", 3], \"y\": [\"C_DATA\", \"0xFFF000BBC\", \"int\", 3]}, \"frame_id\": \"0xFFF000BC0\", \"func_name\": \"foo()\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 4, \"ordered_varnames\": [\"x\", \"y\"], \"parent_frame_id_list\": [], \"unique_hash\": \"foo()_0xFFF000BC0\"}], \"stdout\": \"\"}, {\"event\": \"return\", \"func_name\": \"foo()\", \"globals\": {}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": false, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}, {\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BC0\", \"func_name\": \"foo()\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"foo()_0xFFF000BC0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 8, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 3]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 9, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 3]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 9, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\", \"question\": {\"text\": \"What value will be assigned to <code class=\\\"code-inline tex2jax_ignore\\\">x</code>?\", \"correct\": \"current_frame.x\", \"feedback\": \"We are doubling it\"}}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 8, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 8, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 9, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 8, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\", \"question\": {\"text\": \"What value will be assigned to <code class=\\\"code-inline tex2jax_ignore\\\">x</code>?\", \"correct\": \"current_frame.x\", \"feedback\": \"We are doubling it\"}}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 8, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 8, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 9, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 8, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\", \"question\": {\"text\": \"What value will be assigned to <code class=\\\"code-inline tex2jax_ignore\\\">x</code>?\", \"correct\": \"current_frame.x\", \"feedback\": \"We are doubling it\"}}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 8, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {\"x\": [\"C_DATA\", \"0xFFF000BDC\", \"int\", 24]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 8, \"ordered_varnames\": [\"x\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"return\", \"func_name\": \"main\", \"globals\": {}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}], \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/python-code-lens-questions.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-python-code-lens-questions\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"def foo(n):\\n    n = n + 1\\n    return n\\nx = 7\\ny = x // 3\\nz = foo(y)\\n\", \"trace\": [{\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"\"}, {\"line\": 4, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"foo\": [\"REF\", 1]}, \"ordered_globals\": [\"foo\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\", \"question\": {\"text\": \"What variable is being assigned to?\", \"correctText\": \"x\"}}, {\"line\": 5, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7}, \"ordered_globals\": [\"foo\", \"x\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\", \"question\": {\"text\": \"What value will be assigned to <code class=\\\"code-inline tex2jax_ignore\\\">y</code>?\", \"correct\": \"globals.y\", \"feedback\": \"<code class=\\\"code-inline tex2jax_ignore\\\">//</code> does integer division\"}}, {\"line\": 6, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7, \"y\": 2}, \"ordered_globals\": [\"foo\", \"x\", \"y\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\"}, {\"line\": 1, \"event\": \"call\", \"func_name\": \"foo\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7, \"y\": 2}, \"ordered_globals\": [\"foo\", \"x\", \"y\"], \"stack_to_render\": [{\"func_name\": \"foo\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 2}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"foo_f1\"}], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\"}, {\"line\": 2, \"event\": \"step_line\", \"func_name\": \"foo\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7, \"y\": 2}, \"ordered_globals\": [\"foo\", \"x\", \"y\"], \"stack_to_render\": [{\"func_name\": \"foo\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 2}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"foo_f1\"}], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"foo\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7, \"y\": 2}, \"ordered_globals\": [\"foo\", \"x\", \"y\"], \"stack_to_render\": [{\"func_name\": \"foo\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 3}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"foo_f1\"}], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\", \"question\": {\"text\": \"What value will be returned?\", \"correct\": \"current_frame.n\", \"feedback\": \"What is <code class=\\\"code-inline tex2jax_ignore\\\">n</code> right now?\"}}, {\"line\": 3, \"event\": \"return\", \"func_name\": \"foo\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7, \"y\": 2}, \"ordered_globals\": [\"foo\", \"x\", \"y\"], \"stack_to_render\": [{\"func_name\": \"foo\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 3, \"__return__\": 3}, \"ordered_varnames\": [\"n\", \"__return__\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"foo_f1\"}], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\"}, {\"line\": 6, \"event\": \"return\", \"func_name\": \"<module>\", \"globals\": {\"foo\": [\"REF\", 1], \"x\": 7, \"y\": 2, \"z\": 3}, \"ordered_globals\": [\"foo\", \"x\", \"y\", \"z\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"foo(n)\", null]}, \"stdout\": \"\"}], \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/python-hello-world-code-lens.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-python-hello-world-code-lens\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"print('Hello, World!')\\n\", \"trace\": [{\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"\"}, {\"line\": 1, \"event\": \"return\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"Hello, World!\\n\"}], \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/sieve-codelens-cpp.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-sieve-codelens-cpp\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"#include <stdio.h>\\nconst int len = 20;\\nint main() {\\n   int arr[20] = {0};\\n   for (int i = 2; i < len; i++) {\\n      for (int j = i * i; j < len; j+=i) {\\n         arr[j - 1] = 1;\\n      }\\n   }\\n   for (int i = 1; i < len; i++) {\\n      if (arr[i - 1] == 0)\\n        printf(\\\" %d\\\", i);\\n   }\\n}\\n\", \"trace\": [{\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 3, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 3, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 4, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000B94\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000B98\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000B9C\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BA0\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BA4\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BA8\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BAC\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BB0\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BB4\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BB8\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BBC\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BC0\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BC4\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BC8\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BCC\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BD0\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BD4\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BD8\", \"int\", \"<UNINITIALIZED>\"], [\"C_DATA\", \"0xFFF000BDC\", \"int\", \"<UNINITIALIZED>\"]]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 4, \"ordered_varnames\": [\"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 4]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 4]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 8]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 8]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 10]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 10]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 14]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 14]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 2]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 20]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 9]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 9]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 15]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 15]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 3]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 4], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 21]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 7, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 4], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 7, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 4], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 4]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 5], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 20]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 5]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 6], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 25]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 7], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 36]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 7]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 8], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 49]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 8]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 9], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 64]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 9]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 10], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 81]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 10]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 11], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 100]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 11]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 12], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 121]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 13], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 144]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 13]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 14], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 169]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 14]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 15], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 196]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 15]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 16], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 225]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 17], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 256]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 17]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 18], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 289]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 6, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 19], \"j\": [\"C_DATA\", \"0xFFF000B88\", \"int\", 324]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 6, \"ordered_varnames\": [\"j\", \"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 5, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B84\", \"int\", 19]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 5, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", \"<UNINITIALIZED>\"]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 1]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 1]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \"\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 1]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 2]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 2]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 2]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 3]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 3]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 3]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 4]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 4]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 5]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 5]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 5]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 6]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 7]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 7]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 7]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 8]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 8]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 9]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 9]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 10]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 10]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 11]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 11]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 11]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 12]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 13]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 13]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 13]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 14]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 14]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 15]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 15]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 16]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 17]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 17]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 17]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 18]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 11, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 19]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 11, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 12, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 19]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 12, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 10, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {\"arr\": [\"C_ARRAY\", \"0xFFF000B90\", [\"C_DATA\", \"0xFFF000B90\", \"int\", 0], [\"C_DATA\", \"0xFFF000B94\", \"int\", 0], [\"C_DATA\", \"0xFFF000B98\", \"int\", 0], [\"C_DATA\", \"0xFFF000B9C\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BA4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BA8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BAC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB0\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BB8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BBC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BC4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BC8\", \"int\", 1], [\"C_DATA\", \"0xFFF000BCC\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD0\", \"int\", 0], [\"C_DATA\", \"0xFFF000BD4\", \"int\", 1], [\"C_DATA\", \"0xFFF000BD8\", \"int\", 0], [\"C_DATA\", \"0xFFF000BDC\", \"int\", 0]], \"i\": [\"C_DATA\", \"0xFFF000B8C\", \"int\", 19]}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 10, \"ordered_varnames\": [\"i\", \"arr\"], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17 19\"}, {\"event\": \"step_line\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 14, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 14, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17 19\"}, {\"event\": \"return\", \"func_name\": \"main\", \"globals\": {\"len\": [\"C_DATA\", \"0x400658\", \"int\", 20]}, \"heap\": {}, \"line\": 14, \"ordered_globals\": [\"len\"], \"stack_to_render\": [{\"encoded_locals\": {}, \"frame_id\": \"0xFFF000BE0\", \"func_name\": \"main\", \"is_highlighted\": true, \"is_parent\": false, \"is_zombie\": false, \"line\": 14, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"unique_hash\": \"main_0xFFF000BE0\"}], \"stdout\": \" 1 2 3 5 7 11 13 17 19\"}], \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/sieve-codelens-java.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-sieve-codelens-java\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"public class SievePrimeFactors  {\\n   public static void main(String args[]) {\\n      int num = 20;\\n      boolean[] bool = new boolean[num];\\n\\n      for (int i = 0; i< bool.length; i++) {\\n         bool[i] = true;\\n      }\\n      for (int i = 2; i < Math.sqrt(num); i++) {\\n         if(bool[i] == true) {\\n            for(int j = (i*i); j < num; j = j+i) {\\n               bool[j] = false;\\n            }\\n         }\\n      }\\n      System.out.println(\\\"List of prime numbers: \\\");\\n      for (int i = 2; i< bool.length; i++) {\\n         if(bool[i]==true) {\\n            System.out.println(i);\\n         }\\n      }\\n   }\\n}\\n\", \"stdin\": \"\", \"trace\": [{\"stdout\": \"\", \"event\": \"call\", \"line\": 3, \"stack_to_render\": [{\"func_name\": \"main:3\", \"encoded_locals\": {}, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"1\", \"frame_id\": 1}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 3, \"stack_to_render\": [{\"func_name\": \"main:3\", \"encoded_locals\": {}, \"ordered_varnames\": [], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"2\", \"frame_id\": 2}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 4, \"stack_to_render\": [{\"func_name\": \"main:4\", \"encoded_locals\": {\"num\": 20}, \"ordered_varnames\": [\"num\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"4\", \"frame_id\": 4}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"8\", \"frame_id\": 8}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 0, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"11\", \"frame_id\": 11}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 0, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"15\", \"frame_id\": 15}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 0, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"20\", \"frame_id\": 20}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 1, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"22\", \"frame_id\": 22}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 1, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"27\", \"frame_id\": 27}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 1, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"32\", \"frame_id\": 32}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"34\", \"frame_id\": 34}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"39\", \"frame_id\": 39}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"44\", \"frame_id\": 44}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"46\", \"frame_id\": 46}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"51\", \"frame_id\": 51}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"56\", \"frame_id\": 56}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"58\", \"frame_id\": 58}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"63\", \"frame_id\": 63}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"68\", \"frame_id\": 68}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"70\", \"frame_id\": 70}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"75\", \"frame_id\": 75}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"80\", \"frame_id\": 80}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 6, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"82\", \"frame_id\": 82}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 6, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"87\", \"frame_id\": 87}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 6, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"92\", \"frame_id\": 92}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"94\", \"frame_id\": 94}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"99\", \"frame_id\": 99}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"104\", \"frame_id\": 104}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 8, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"106\", \"frame_id\": 106}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 8, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"111\", \"frame_id\": 111}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 8, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"116\", \"frame_id\": 116}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 9, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"118\", \"frame_id\": 118}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 9, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"123\", \"frame_id\": 123}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 9, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"128\", \"frame_id\": 128}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 10, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"130\", \"frame_id\": 130}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 10, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"135\", \"frame_id\": 135}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 10, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"140\", \"frame_id\": 140}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"142\", \"frame_id\": 142}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"147\", \"frame_id\": 147}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"152\", \"frame_id\": 152}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 12, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"154\", \"frame_id\": 154}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 12, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"159\", \"frame_id\": 159}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 12, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"164\", \"frame_id\": 164}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"166\", \"frame_id\": 166}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"171\", \"frame_id\": 171}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"176\", \"frame_id\": 176}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 14, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"178\", \"frame_id\": 178}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 14, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"183\", \"frame_id\": 183}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 14, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"188\", \"frame_id\": 188}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 15, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"190\", \"frame_id\": 190}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 15, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"195\", \"frame_id\": 195}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 15, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"200\", \"frame_id\": 200}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 16, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"202\", \"frame_id\": 202}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 16, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"207\", \"frame_id\": 207}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 16, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"212\", \"frame_id\": 212}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"214\", \"frame_id\": 214}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"219\", \"frame_id\": 219}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"224\", \"frame_id\": 224}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 18, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"226\", \"frame_id\": 226}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 18, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"231\", \"frame_id\": 231}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 18, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"236\", \"frame_id\": 236}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"238\", \"frame_id\": 238}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 7, \"stack_to_render\": [{\"func_name\": \"main:7\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"243\", \"frame_id\": 243}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"248\", \"frame_id\": 248}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 6, \"stack_to_render\": [{\"func_name\": \"main:6\", \"encoded_locals\": {\"i\": 20, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"250\", \"frame_id\": 250}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"255\", \"frame_id\": 255}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"258\", \"frame_id\": 258}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 10, \"stack_to_render\": [{\"func_name\": \"main:10\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"265\", \"frame_id\": 265}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"271\", \"frame_id\": 271}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 4, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"276\", \"frame_id\": 276}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 4, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"279\", \"frame_id\": 279}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 4, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"284\", \"frame_id\": 284}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 6, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"289\", \"frame_id\": 289}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 6, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"293\", \"frame_id\": 293}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 6, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"298\", \"frame_id\": 298}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 8, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"303\", \"frame_id\": 303}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 8, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"307\", \"frame_id\": 307}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 8, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"312\", \"frame_id\": 312}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 10, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"317\", \"frame_id\": 317}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 10, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"321\", \"frame_id\": 321}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 10, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"326\", \"frame_id\": 326}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 12, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"331\", \"frame_id\": 331}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 12, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"335\", \"frame_id\": 335}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 12, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"340\", \"frame_id\": 340}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 14, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"345\", \"frame_id\": 345}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 14, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"349\", \"frame_id\": 349}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 14, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"354\", \"frame_id\": 354}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 16, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"359\", \"frame_id\": 359}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 16, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"363\", \"frame_id\": 363}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 16, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"368\", \"frame_id\": 368}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 18, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"373\", \"frame_id\": 373}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 18, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"377\", \"frame_id\": 377}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 18, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"382\", \"frame_id\": 382}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 20, \"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"387\", \"frame_id\": 387}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"391\", \"frame_id\": 391}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"393\", \"frame_id\": 393}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 10, \"stack_to_render\": [{\"func_name\": \"main:10\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"401\", \"frame_id\": 401}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"407\", \"frame_id\": 407}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 9, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"412\", \"frame_id\": 412}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 9, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"415\", \"frame_id\": 415}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 9, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"420\", \"frame_id\": 420}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 12, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"425\", \"frame_id\": 425}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 12, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"429\", \"frame_id\": 429}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 12, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"434\", \"frame_id\": 434}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 15, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"439\", \"frame_id\": 439}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 15, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"443\", \"frame_id\": 443}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 15, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"448\", \"frame_id\": 448}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 18, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"453\", \"frame_id\": 453}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 12, \"stack_to_render\": [{\"func_name\": \"main:12\", \"encoded_locals\": {\"j\": 18, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"457\", \"frame_id\": 457}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 18, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"462\", \"frame_id\": 462}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 11, \"stack_to_render\": [{\"func_name\": \"main:11\", \"encoded_locals\": {\"j\": 21, \"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\", \"j\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"467\", \"frame_id\": 467}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"471\", \"frame_id\": 471}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"473\", \"frame_id\": 473}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 10, \"stack_to_render\": [{\"func_name\": \"main:10\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"481\", \"frame_id\": 481}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"487\", \"frame_id\": 487}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 9, \"stack_to_render\": [{\"func_name\": \"main:9\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"489\", \"frame_id\": 489}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"\", \"event\": \"step_line\", \"line\": 16, \"stack_to_render\": [{\"func_name\": \"main:16\", \"encoded_locals\": {\"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"497\", \"frame_id\": 497}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"501\", \"frame_id\": 501}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"503\", \"frame_id\": 503}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"507\", \"frame_id\": 507}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"513\", \"frame_id\": 513}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 2, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"517\", \"frame_id\": 517}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"518\", \"frame_id\": 518}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"523\", \"frame_id\": 523}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"529\", \"frame_id\": 529}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 3, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"533\", \"frame_id\": 533}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"534\", \"frame_id\": 534}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"539\", \"frame_id\": 539}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 4, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"545\", \"frame_id\": 545}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"547\", \"frame_id\": 547}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"552\", \"frame_id\": 552}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"558\", \"frame_id\": 558}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 5, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"562\", \"frame_id\": 562}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 6, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"563\", \"frame_id\": 563}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 6, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"568\", \"frame_id\": 568}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 6, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"574\", \"frame_id\": 574}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"576\", \"frame_id\": 576}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"581\", \"frame_id\": 581}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"587\", \"frame_id\": 587}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 7, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"591\", \"frame_id\": 591}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 8, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"592\", \"frame_id\": 592}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 8, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"597\", \"frame_id\": 597}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 8, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"603\", \"frame_id\": 603}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 9, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"605\", \"frame_id\": 605}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 9, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"610\", \"frame_id\": 610}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 9, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"616\", \"frame_id\": 616}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 10, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"618\", \"frame_id\": 618}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 10, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"623\", \"frame_id\": 623}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 10, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"629\", \"frame_id\": 629}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"631\", \"frame_id\": 631}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"636\", \"frame_id\": 636}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"642\", \"frame_id\": 642}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 11, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"646\", \"frame_id\": 646}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 12, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"647\", \"frame_id\": 647}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 12, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"652\", \"frame_id\": 652}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 12, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"658\", \"frame_id\": 658}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"660\", \"frame_id\": 660}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"665\", \"frame_id\": 665}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"671\", \"frame_id\": 671}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 13, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"675\", \"frame_id\": 675}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 14, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"676\", \"frame_id\": 676}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 14, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"681\", \"frame_id\": 681}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 14, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"687\", \"frame_id\": 687}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 15, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"689\", \"frame_id\": 689}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 15, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"694\", \"frame_id\": 694}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 15, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"700\", \"frame_id\": 700}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 16, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"702\", \"frame_id\": 702}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 16, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"707\", \"frame_id\": 707}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 16, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"713\", \"frame_id\": 713}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"715\", \"frame_id\": 715}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"720\", \"frame_id\": 720}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"726\", \"frame_id\": 726}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 17, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"730\", \"frame_id\": 730}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 18, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"731\", \"frame_id\": 731}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 18, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"736\", \"frame_id\": 736}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 18, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"742\", \"frame_id\": 742}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"744\", \"frame_id\": 744}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 18, \"stack_to_render\": [{\"func_name\": \"main:18\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"749\", \"frame_id\": 749}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n\", \"event\": \"step_line\", \"line\": 19, \"stack_to_render\": [{\"func_name\": \"main:19\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"755\", \"frame_id\": 755}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n19\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 19, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"759\", \"frame_id\": 759}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n19\\n\", \"event\": \"step_line\", \"line\": 17, \"stack_to_render\": [{\"func_name\": \"main:17\", \"encoded_locals\": {\"i\": 20, \"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\", \"i\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"760\", \"frame_id\": 760}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n19\\n\", \"event\": \"step_line\", \"line\": 22, \"stack_to_render\": [{\"func_name\": \"main:22\", \"encoded_locals\": {\"num\": 20, \"bool\": [\"REF\", 428]}, \"ordered_varnames\": [\"num\", \"bool\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"765\", \"frame_id\": 765}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}, {\"stdout\": \"List of prime numbers: \\n2\\n3\\n5\\n7\\n11\\n13\\n17\\n19\\n\", \"event\": \"return\", \"line\": 22, \"stack_to_render\": [{\"func_name\": \"main:22\", \"encoded_locals\": {\"num\": 20, \"bool\": [\"REF\", 428], \"__return__\": [\"VOID\"]}, \"ordered_varnames\": [\"num\", \"bool\", \"__return__\"], \"parent_frame_id_list\": [], \"is_highlighted\": true, \"is_zombie\": false, \"is_parent\": false, \"unique_hash\": \"767\", \"frame_id\": 767}], \"globals\": {}, \"ordered_globals\": [], \"func_name\": \"main\", \"heap\": {\"428\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true]}}], \"userlog\": \"Debugger VM maxMemory: 444M\\n\", \"startingInstruction\": 0};\n})();"
  },
  {
    "path": "examples/sample-book/gen/trace/sieve-codelens-python.js",
    "content": "\nif (allTraceData === undefined) {\n    var allTraceData = {};\n}\n(function() { // IIFE to avoid variable collision\n    let codelensID = \"rs-sieve-codelens-python\";  //fallback\n    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n    if (partnerCodelens) {\n        codelensID = partnerCodelens.id;\n    }\n    allTraceData[codelensID] = {\"code\": \"def SieveOfEratosthenes(n):\\n   # array of type boolean with True values in it\\n   prime = [True for i in range(n + 1)]\\n   p = 2\\n   while (p * p <= n):\\n      # If it remain unchanged it is prime\\n      if (prime[p] == True):\\n         # updating all the multiples\\n         for i in range(p * 2, n + 1, p):\\n            prime[i] = False\\n      p += 1\\n   prime[0]= False\\n   prime[1]= False\\n   # Print\\n   for p in range(n + 1):\\n      if prime[p]:\\n         print (p,end=\\\" \\\")\\n# main\\nif __name__=='__main__':\\n   n = 20\\n   print (\\\"The prime numbers smaller than or equal to\\\", n,\\\"is\\\")\\n   SieveOfEratosthenes(n)\\n\", \"trace\": [{\"line\": 1, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {}, \"ordered_globals\": [], \"stack_to_render\": [], \"heap\": {}, \"stdout\": \"\"}, {\"line\": 19, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1]}, \"ordered_globals\": [\"SieveOfEratosthenes\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"\"}, {\"line\": 20, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1]}, \"ordered_globals\": [\"SieveOfEratosthenes\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"\"}, {\"line\": 21, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"\"}, {\"line\": 22, \"event\": \"step_line\", \"func_name\": \"<module>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 1, \"event\": \"call\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"call\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2]}, \"ordered_varnames\": [\".0\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2]}, \"ordered_varnames\": [\".0\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 0}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 1}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 2}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 3}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 4}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 5}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 6}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 7}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 8}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 9}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 10}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 11}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 12}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 13}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 14}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 15}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 16}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 17}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 18}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 19}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"step_line\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 20}, \"ordered_varnames\": [\".0\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 3, \"event\": \"return\", \"func_name\": \"<listcomp>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20}, \"ordered_varnames\": [\"n\"], \"is_zombie\": false, \"is_highlighted\": false, \"unique_hash\": \"SieveOfEratosthenes_f1\"}, {\"func_name\": \"<listcomp>\", \"is_parent\": false, \"frame_id\": 2, \"parent_frame_id_list\": [], \"encoded_locals\": {\".0\": [\"REF\", 2], \"i\": 20, \"__return__\": [\"REF\", 3]}, \"ordered_varnames\": [\".0\", \"i\", \"__return__\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"<listcomp>_f2\"}], \"heap\": {\"2\": [\"INSTANCE\", \"range_iterator\"], \"3\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 4, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3]}, \"ordered_varnames\": [\"n\", \"prime\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 5, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2}, \"ordered_varnames\": [\"n\", \"prime\", \"p\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 7, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2}, \"ordered_varnames\": [\"n\", \"prime\", \"p\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2}, \"ordered_varnames\": [\"n\", \"prime\", \"p\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 4}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 4}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 6}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 6}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 8}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 8}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 10}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 10}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 12}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 12}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 14}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 14}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 16}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 16}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 20}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, true], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 20}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 11, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 20}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 5, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 20}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 7, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 20}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 20}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 6}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 6}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 9}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 9}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 12}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 12}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 15}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, true, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 15}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 10, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 9, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 11, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 5, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 4, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 7, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 4, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 11, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 4, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 5, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 12, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", true, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 13, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, true, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 0, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 0, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 1, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 1, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n\"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 2, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 3, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 4, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 4, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 5, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 6, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 6, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 7, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 7, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 7, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 8, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 8, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 9, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 9, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 10, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 10, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 11, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 11, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 11, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 12, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 12, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 13, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 13, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 13, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 14, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 14, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 15, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 15, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 16, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 16, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 17, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 17, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 17, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 18, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 18, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 19, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 \"}, {\"line\": 17, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 19, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 19, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 19 \"}, {\"line\": 16, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 20, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 19 \"}, {\"line\": 15, \"event\": \"step_line\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 20, \"i\": 18}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 19 \"}, {\"line\": 15, \"event\": \"return\", \"func_name\": \"SieveOfEratosthenes\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [{\"func_name\": \"SieveOfEratosthenes\", \"is_parent\": false, \"frame_id\": 1, \"parent_frame_id_list\": [], \"encoded_locals\": {\"n\": 20, \"prime\": [\"REF\", 3], \"p\": 20, \"i\": 18, \"__return__\": null}, \"ordered_varnames\": [\"n\", \"prime\", \"p\", \"i\", \"__return__\"], \"is_zombie\": false, \"is_highlighted\": true, \"unique_hash\": \"SieveOfEratosthenes_f1\"}], \"heap\": {\"3\": [\"LIST\", false, false, true, true, false, true, false, true, false, false, false, true, false, true, false, false, false, true, false, true, false], \"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 19 \"}, {\"line\": 22, \"event\": \"return\", \"func_name\": \"<module>\", \"globals\": {\"SieveOfEratosthenes\": [\"REF\", 1], \"n\": 20}, \"ordered_globals\": [\"SieveOfEratosthenes\", \"n\"], \"stack_to_render\": [], \"heap\": {\"1\": [\"FUNCTION\", \"SieveOfEratosthenes(n)\", null]}, \"stdout\": \"The prime numbers smaller than or equal to 20 is\\n2 3 5 7 11 13 17 19 \"}], \"startingInstruction\": 72};\n})();"
  },
  {
    "path": "examples/sample-book/gfdl-mathbook.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2015-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is a faithful copy of Version 1.3 of the GFDL. -->\n<!-- The copyright assertion above only refers to the    -->\n<!-- addition of the MathBook XML elements employed to   -->\n<!-- render the license within a MathBook XML document   -->\n\n<appendix xml:id=\"appendix-gfdl\">\n    <title>GNU Free Documentation License</title>\n\n    <p>Version 1.3, 3 November 2008</p>\n\n    <p>Copyright <copyright /> 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. &lt;<url href=\"http://www.fsf.org/\" />&gt;</p>\n\n    <p>Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.</p>\n\n    <paragraphs xml:id=\"gfdl-section0\">\n        <title>0. PREAMBLE</title>\n\n        <p>The purpose of this License is to make a manual, textbook, or other functional and useful document <q>free</q> in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.</p>\n\n        <p>This License is a kind of <q>copyleft</q>, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.</p>\n\n        <p>We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section1\">\n        <title>1. APPLICABILITY AND DEFINITIONS</title>\n\n        <p>This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The <q>Document</q>, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as <q>you</q>. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.</p>\n\n        <p>A <q>Modified Version</q> of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.</p>\n\n        <p>A <q>Secondary Section</q> is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.</p>\n\n        <p>The <q>Invariant Sections</q> are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.</p>\n\n        <p>The <q>Cover Texts</q> are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.</p>\n\n        <p>A <q>Transparent</q> copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not <q>Transparent</q> is called <q>Opaque</q>.</p>\n\n        <p>Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.</p>\n\n        <p>The <q>Title Page</q> means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, <q>Title Page</q> means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.</p>\n\n        <p>The <q>publisher</q> means any person or entity that distributes copies of the Document to the public.</p>\n\n        <p>A section <q>Entitled XYZ</q> means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as <q>Acknowledgements</q>, <q>Dedications</q>, <q>Endorsements</q>, or <q>History</q>.) To <q>Preserve the Title</q> of such a section when you modify the Document means that it remains a section <q>Entitled XYZ</q> according to this definition.</p>\n\n        <p>The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section2\">\n        <title>2. VERBATIM COPYING</title>\n\n        <p>You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.</p>\n\n        <p>You may also lend copies, under the same conditions stated above, and you may publicly display copies.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section3\">\n        <title>3. COPYING IN QUANTITY</title>\n\n        <p>If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.</p>\n\n        <p>If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.</p>\n\n        <p>If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.</p>\n\n        <p>It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section4\">\n        <title>4. MODIFICATIONS</title>\n\n        <p>You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:<ol marker=\"A.\">\n            <li><p>Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.</p></li>\n\n            <li><p>List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.</p></li>\n\n            <li><p>State on the Title page the name of the publisher of the Modified Version, as the publisher.</p></li>\n\n            <li><p>Preserve all the copyright notices of the Document.</p></li>\n\n            <li><p>Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.</p></li>\n\n            <li><p>Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.</p></li>\n\n            <li><p>Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.</p></li>\n\n            <li><p>Include an unaltered copy of this License.</p></li>\n\n            <li><p>Preserve the section Entitled <q>History</q>, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled <q>History</q> in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.</p></li>\n\n            <li><p>Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on.  These may be placed in the <q>History</q> section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.</p></li>\n\n            <li><p>For any section Entitled <q>Acknowledgements</q> or <q>Dedications</q>, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.</p></li>\n\n            <li><p>Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.</p></li>\n\n            <li><p>Delete any section Entitled <q>Endorsements</q>. Such a section may not be included in the Modified Version.</p></li>\n\n            <li><p>Do not retitle any existing section to be Entitled <q>Endorsements</q> or to conflict in title with any Invariant Section.</p></li>\n\n            <li><p>Preserve any Warranty Disclaimers.</p></li>\n        </ol></p>\n\n        <p>If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.</p>\n\n        <p>You may add a section Entitled <q>Endorsements</q>, provided it contains nothing but endorsements of your Modified Version by various parties <mdash /> for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.</p>\n\n        <p>You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.</p>\n\n        <p>The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section5\">\n        <title>5. COMBINING DOCUMENTS</title>\n\n        <p>You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.</p>\n\n        <p>The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.</p>\n\n        <p>In the combination, you must combine any sections Entitled <q>History</q> in the various original documents, forming one section Entitled <q>History</q>; likewise combine any sections Entitled <q>Acknowledgements</q>, and any sections Entitled <q>Dedications</q>. You must delete all sections Entitled <q>Endorsements</q>.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section6\">\n        <title>6. COLLECTIONS OF DOCUMENTS</title>\n\n        <p>You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.</p>\n\n        <p>You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section7\">\n        <title>7. AGGREGATION WITH INDEPENDENT WORKS</title>\n\n        <p>A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an <q>aggregate</q> if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.</p>\n\n        <p>If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section8\">\n    <title>8. TRANSLATION</title>\n\n        <p>Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.</p>\n\n        <p>If a section in the Document is Entitled <q>Acknowledgements</q>, <q>Dedications</q>, or <q>History</q>, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section9\">\n        <title>9. TERMINATION</title>\n\n        <p>You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.</p>\n\n        <p>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.</p>\n\n        <p>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.</p>\n\n        <p>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, receipt of a copy of some or all of the same material does not give you any rights to use it.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section10\">\n        <title>10. FUTURE REVISIONS OF THIS LICENSE</title>\n\n        <p>The Free Software Foundation may publish new, revised versions of the GNU Free Documentation 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. See <url href=\"http://www.gnu.org/copyleft/\" />.</p>\n\n        <p>Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License <q>or any later version</q> applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-section11\">\n        <title>11. RELICENSING</title>\n\n        <p><q>Massive Multiauthor Collaboration Site</q> (or <q>MMC Site</q>) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A <q>Massive Multiauthor Collaboration</q> (or <q>MMC</q>) contained in the site means any set of copyrightable works thus published on the MMC site.</p>\n\n        <p><q>CC-BY-SA</q> means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.</p> <p><q>Incorporate</q> means to publish or republish a Document, in whole or in part, as part of another Document.</p>\n\n        <p>An MMC is <q>eligible for relicensing</q> if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.</p>\n\n        <p>The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.</p>\n    </paragraphs>\n\n    <paragraphs xml:id=\"gfdl-addendum\">\n        <title>ADDENDUM: How to use this License for your documents</title>\n\n        <p>To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:</p>\n\n        <pre>\n        Copyright (C)  YEAR  YOUR NAME.\n        Permission is granted to copy, distribute and/or modify this document\n        under the terms of the GNU Free Documentation License, Version 1.3\n        or any later version published by the Free Software Foundation;\n        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.\n        A copy of the license is included in the section entitled \"GNU\n        Free Documentation License\".\n        </pre>\n\n        <p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the <q>with<ellipsis /> Texts.</q> line with this:</p>\n\n        <pre>\n        with the Invariant Sections being LIST THEIR TITLES, with the\n        Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.\n        </pre>\n\n        <p>If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.</p>\n\n        <p>If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.</p>\n    </paragraphs>\n\n</appendix>\n"
  },
  {
    "path": "examples/sample-book/groups.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<chapter xml:id=\"groups\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Groups</title>\n    <author><xref ref=\"dfarmer\"/></author>\n\n    <introduction>\n        <p>We begin our study of algebraic structures by investigating sets associated with single operations that satisfy certain reasonable axioms; that is, we want to define an operation on a set in a way that will generalize such familiar structures as the integers <m>{\\mathbb Z}</m> together with the single operation of  addition, or invertible <m>2 \\times 2</m> matrices together with the single operation of matrix multiplication.  The integers and the <m>2 \\times 2</m> matrices, together with their respective single operations, are examples of algebraic structures known as groups.<fn>A test footnote, with no real content.</fn></p>\n\n        <p>The theory of groups occupies a central position in mathematics.  Modern group theory arose from an attempt to find the roots of a polynomial in terms of its coefficients.  Groups now play a central role in such areas as coding theory, counting, and the study of  symmetries; many areas of biology, chemistry, and physics have benefited from group theory.</p>\n\n        <p><xref ref=\"ajordan\" /> helped improve this chapter.</p>\n\n    </introduction>\n\n    <section xml:id=\"section-mod-n-sym\">\n        <title>Integer Equivalence Classes and Symmetries</title>\n        <author>Carl Friedrich Gauß</author>\n        <author>Leonhard Euler</author>\n\n        <introduction>\n\n            <p>Let us now investigate some mathematical structures that can be viewed as sets with single operations.</p>\n\n        </introduction>\n\n        <subsection>\n            <title>The Integers mod <m>n</m></title>\n            <author>Gottfried Wilhelm Leibniz</author>\n\n            <p>The integers mod <m>n</m> have become indispensable in the theory and applications of algebra.  In mathematics they are used in cryptography, coding theory, and the detection of errors in identification codes.</p>\n\n            <p>We have already seen that two integers <m>a</m> and <m>b</m> are equivalent mod <m>n</m> if <m>n</m> divides <m>a - b</m>.  The integers mod <m>n</m> also partition <m>{\\mathbb Z}</m> into <m>n</m> different equivalence classes; we will denote the set of these equivalence classes by <m>{\\mathbb Z}_n</m>. <notation><usage><m>\\mathbb Z_n</m></usage><description>the integers modulo <m>n</m></description></notation> Consider the integers modulo 12 and the corresponding partition of the integers:<md>\n                <mrow>{[0]} &amp; = \\{ \\ldots, -12, 0, 12, 24, \\ldots \\}</mrow>\n                <mrow> {[1]} &amp; = \\{ \\ldots, -11, 1, 13, 25, \\ldots \\}</mrow>\n                <mrow> &amp; \\vdots</mrow>\n                <mrow> {[11]} &amp; = \\{ \\ldots, -1, 11, 23, 35, \\ldots \\}</mrow>\n            </md>.</p>\n\n            <p>When no confusion can arise, we will use <m>0, 1, \\ldots, 11</m> to indicate the equivalence classes  <m>{[0]}, {[1]}, \\ldots, {[11]}</m> respectively.  We can do arithmetic on <m>{\\mathbb Z}_n</m>.  For two integers <m>a</m> and <m>b</m>, define addition modulo <m>n</m> to be <m>(a + b) \\pmod{n}</m>; that is, the remainder when <m>a + b</m> is divided by <m>n</m>.  Similarly, multiplication modulo <m>n</m> is defined as <m>(a  b) \\pmod{ n}</m>, the remainder when <m>a  b</m> is divided by <m>n</m>.</p>\n\n            <example xml:id=\"example-groups-zn-addition\">\n                <title>Modular Addition</title>\n                <p>The following examples illustrate integer arithmetic modulo <m>n</m>:<md>\n                    <mrow>7 + 4  &amp; \\equiv  1 \\pmod{ 5}   &amp; 7 \\cdot 3 &amp; \\equiv 1 \\pmod{ 5}</mrow> \n                    <mrow>3 + 5  &amp; \\equiv  0 \\pmod{ 8}   &amp; 3 \\cdot 5 &amp; \\equiv 7 \\pmod{ 8}</mrow>\n                    <mrow>3 + 4  &amp; \\equiv  7 \\pmod{ 12}  &amp; 3 \\cdot 4 &amp; \\equiv 0 \\pmod{ 12}</mrow>\n                </md>.</p>\n\n                <p>In particular, notice that it is possible that the product of two nonzero numbers modulo <m>n</m> can be equivalent to <m>0 </m> modulo <m>n</m>.</p>\n            </example>\n\n            <example xml:id=\"example-groups-zn-arithmetic-laws\">\n                <title>Modular Arithmetic</title>\n                <p>Most, but not all, of the usual laws of arithmetic hold for addition and multiplication in <m>{\\mathbb Z}_n</m>.  For instance, it is not necessarily true that there is a multiplicative inverse.  Consider the multiplication table for <m>{\\mathbb Z}_8</m> in <xref ref=\"figure-z8-mult\" />.  Notice that 2, 4, and 6 do not have multiplicative inverses; that is, for <m>n = 2</m>, 4, or 6, there is no integer <m>k</m> such that <m>k n \\equiv 1 \\pmod{ 8}</m>.</p>\n\n                <figure xml:id=\"figure-z8-mult\">\n                    <caption>Multiplication table for <m>{\\mathbb Z_8}</m></caption>\n                    <p><md>\\begin{array}{c|cccccccc}\n                    <![CDATA[\\cdot & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\\\\n                    \\hline\n                    0       & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n                    1       & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\\\\n                    2       & 0 & 2 & 4 & 6 & 0 & 2 & 4 & 6 \\\\\n                    3       & 0 & 3 & 6 & 1 & 4 & 7 & 2 & 5 \\\\\n                    4       & 0 & 4 & 0 & 4 & 0 & 4 & 0 & 4 \\\\\n                    5       & 0 & 5 & 2 & 7 & 4 & 1 & 6 & 3 \\\\\n                    6       & 0 & 6 & 4 & 2 & 0 & 6 & 4 & 2 \\\\\n                    7       & 0 & 7 & 6 & 5 & 4 & 3 & 2 & 1 ]]>\n                    \\end{array}</md></p>\n                </figure>\n            </example>\n\n            <proposition xml:id=\"proposition-zn-equiv-classes\">\n                <statement>\n                    <p>Let <m>{\\mathbb Z}_n</m> be the set of equivalence classes of the integers mod <m>n</m> and <m>a, b, c \\in {\\mathbb Z}_n</m>.<ol>\n                        <li>\n                            <p>Addition and multiplication are commutative:<md>\n                                <mrow> a + b  &amp; \\equiv  b + a \\pmod{ n}</mrow>\n                                <mrow> a  b   &amp; \\equiv  b  a \\pmod{ n}. </mrow>\n                            </md></p>\n                        </li>\n\n                        <li>\n                            <p>Addition and multiplication are associative:<md>\n                                <mrow> (a + b) + c  &amp; \\equiv  a + (b + c)\\pmod{ n}</mrow>\n                                <mrow> (a  b)  c    &amp; \\equiv  a   (b  c) \\pmod{ n}</mrow>\n                            </md>.</p>\n                        </li>\n\n                        <li>\n                            <p>There are both additive and multiplicative identities:<md>\n                                <mrow> a + 0  &amp; \\equiv  a \\pmod{ n}</mrow>\n                                <mrow> a \\cdot  1  &amp; \\equiv  a \\pmod{ n}</mrow>\n                            </md>.</p>\n                        </li>\n\n                        <li>\n                            <p>Multiplication distributes over addition:<md>\n                                <mrow>a  (b  + c)  \\equiv a  b + a  c  \\pmod{ n}</mrow>\n                            </md>.</p>\n                        </li>\n\n                        <li>\n                            <p>For every integer <m>a</m> there is an additive inverse <m>-a</m>:<md>\n                                <mrow> a + (-a)  \\equiv 0 \\pmod{ n}</mrow>\n                            </md>.</p>\n                        </li>\n\n                        <li>\n                            <p>Let <m>a</m> be a nonzero integer.  Then <m>\\gcd(a,n) = 1</m> if and only if there exists a multiplicative inverse <m>b</m> for <m>a \\pmod{n}</m>; that is, a nonzero integer <m>b</m> such that <md> a  b  \\equiv 1 \\pmod{ n}</md>.</p>\n                        </li>\n                    </ol></p>\n                </statement>\n\n                <proof>\n                    <p>We will prove (1) and (6) and leave the remaining properties to be proven in the exercises.</p>\n\n                    <p>(1) Addition and multiplication are commutative modulo <m>n</m> since the remainder of <m>a + b</m> divided by <m>n</m> is the same as the remainder of <m>b + a</m> divided by <m>n</m>.</p>\n\n                    <p>(6) Suppose that <m>\\gcd(a, n) = 1</m>.  Then there exist integers <m>r</m> and <m>s</m> such that <m>ar + ns = 1</m>.  Since <m>ns = 1 - ar</m>, it must be the case that <m>ar \\equiv 1 \\pmod{n}</m>.  Letting <m>b</m> be the equivalence class of <m>r</m>, <m>a b \\equiv 1\\pmod{n}</m>.</p>\n\n                    <p>Conversely, suppose that there exists an integer <m>b</m> such that <m>ab  \\equiv 1 \\pmod{ n}</m>.  Then <m>n</m> divides <m>ab -1</m>, so there is an integer <m>k</m> such that <m>ab - nk = 1</m>.  Let <m>d = \\gcd(a,n)</m>.  Since <m>d</m> divides <m>ab - nk</m>, <m>d</m> must also divide 1; hence, <m>d = 1</m>.</p>\n                </proof>\n            </proposition>\n        </subsection>\n\n        <subsection>\n            <title>Symmetries</title>\n\n            <!-- Symmetries of a rectangle  Replaced diagram with a tikz figure - TWJ 5/4/2010 -->\n            <figure xml:id=\"figure-groups-rectangle\">\n                <caption>Rigid motions of a rectangle</caption>\n                <image xml:id=\"groups-rectangle\">\n                    <latex-image><![CDATA[\n                        \\begin{tikzpicture}[scale=1.2]\n                        \\draw (-3,0) -- (-1.25,0) -- (-1.25,1) -- (-3,1) -- cycle;\n                        \\draw (3,0) -- (1.25,0) -- (1.25,1) -- (3,1) -- cycle;\n                        \\draw [->] (-1,0.5) -- (1,0.5);\n                        \\node [above] at (0,0.5) {\\emph{reflection}};\n                        \\node [below] at (0,0.5) {\\emph{horizontal axis}};\n                        \\node [above,left] at (-3,1) {$A$};\n                        \\node [below,left] at (-3,0) {$D$};\n                        \\node [above,right] at (-1.25,1) {$B$};\n                        \\node [below,right] at (-1.25,0) {$C$};\n                        \\node [above,right] at (3,1) {$C$};\n                        \\node [below,right] at (3,0) {$B$};\n                        \\node [above,left] at (1.25,1) {$D$};\n                        \\node [below,left] at (1.25,0) {$A$};\n\n                        \\draw (-3,2) -- (-1.25,2) -- (-1.25,3) -- (-3,3) -- cycle;\n                        \\draw (3,2) -- (1.25,2) -- (1.25,3) -- (3,3) -- cycle;\n                        \\draw [->] (-1,2.5) -- (1,2.5);\n                        \\node [above] at (0,2.5) {\\emph{reflection}};\n                        \\node [below] at (0,2.5) {\\emph{vertical axis}};\n                        \\node [above,left] at (-3,3) {$A$};\n                        \\node [below,left] at (-3,2) {$D$};\n                        \\node [above,right] at (-1.25,3) {$B$};\n                        \\node [below,right] at (-1.25,2) {$C$};\n                        \\node [above,right] at (3,3) {$A$};\n                        \\node [below,right] at (3,2) {$D$};\n                        \\node [above,left] at (1.25,3) {$B$};\n                        \\node [below,left] at (1.25,2) {$C$};\n\n                        \\draw (-3,4) -- (-1.25,4) -- (-1.25,5) -- (-3,5) -- cycle;\n                        \\draw (3,4) -- (1.25,4) -- (1.25,5) -- (3,5) -- cycle;\n                        \\draw [->] (-1,4.5) -- (1,4.5);\n                        \\node [above] at (0,4.5) {$180^\\circ$};\n                        \\node [below] at (0,4.5) {\\emph{rotation}};\n                        \\node [above,left] at (-3,5) {$A$};\n                        \\node [below,left] at (-3,4) {$D$};\n                        \\node [above,right] at (-1.25,5) {$B$};\n                        \\node [below,right] at (-1.25,4) {$C$};\n                        \\node [above,right] at (3,5) {$D$};\n                        \\node [below,right] at (3,4) {$A$};\n                        \\node [above,left] at (1.25,5) {$C$};\n                        \\node [below,left] at (1.25,4) {$B$};\n\n                        \\draw (-3,6) -- (-1.25,6) -- (-1.25,7) -- (-3,7) -- cycle;\n                        \\draw (3,6) -- (1.25,6) -- (1.25,7) -- (3,7) -- cycle;\n                        \\draw [->] (-1,6.5) -- (1,6.5);\n                        \\node [above] at (0,6.5) {\\emph{identity}};\n                        \\node [above,left] at (-3,7) {$A$};\n                        \\node [below,left] at (-3,6) {$D$};\n                        \\node [above,right] at (-1.25,7) {$B$};\n                        \\node [below,right] at (-1.25,6) {$C$};\n                        \\node [above,right] at (3,7) {$B$};\n                        \\node [below,right] at (3,6) {$C$};\n                        \\node [above,left] at (1.25,7) {$A$};\n                        \\node [below,left] at (1.25,6) {$D$};\n\n                        \\end{tikzpicture}]]>\n                    </latex-image>\n                </image>\n            </figure>\n\n            <p>A <term>symmetry</term> of a geometric figure is a rearrangement of the figure preserving the arrangement of its sides and vertices as well as its distances and angles.  A map from the plane to itself preserving the symmetry of an object is called a <term>rigid motion</term><idx><h>Rigid motion</h></idx>.  For example, if we look at the rectangle in <xref ref=\"figure-groups-rectangle\" />, it is easy to see that a rotation of <m>180^{\\circ}</m> or <m>360^{\\circ}</m> returns a rectangle in the plane with the same orientation as the original rectangle and the same relationship among the vertices.  A reflection of the rectangle across either the vertical axis or the horizontal axis can also be seen to be a symmetry.  However, a <m>90^{\\circ}</m> rotation in either direction cannot be a symmetry unless the rectangle is a square.</p>\n\n            <!-- Replaced diagram with a tikz figure - TWJ 5/5/2010 -->\n            <figure xml:id=\"figure-s3-symmetry\">\n                <caption>Symmetries of a triangle</caption>\n                <image xml:id=\"groups-s3-symmetry\">\n                    <latex-image><![CDATA[\n                        \\begin{tikzpicture}[scale=0.7]\n                        \\draw (0,0) -- (0:2) -- (60:2) -- cycle;\n                        \\node [left] at (0,0) {$A$};\n                        \\node at (1,2.1) {$B$};\n                        \\node [right] at (0:2) {$C$};\n\n                        \\draw [->] (2,1) -- (4,1);\n                        \\node [above] at (3,1) {\\emph{reflection}};\n\n                        \\draw (4,0) -- (0:6) -- ++(120:2) -- cycle;\n                        \\node [left] at (4,0) {$B$};\n                        \\node [right] at (0:6) {$C$};\n                        \\node at (5,2.1) {$A$};\n\n                        \\node [right] at (7,1) {$ \\mu_3 = \\begin{pmatrix}A & B & C \\\\ B & A & C\\end{pmatrix}$};\n\n                        \\draw (0,3) -- (2,3) -- ++(120:2) -- cycle;\n                        \\node [left] at (0,3) {$A$};\n                        \\node at (1,5.1) {$B$};\n                        \\node [right] at (2,3) {$C$};\n\n                        \\draw [->] (2,4) -- (4,4);\n                        \\node [above] at (3,4) {\\emph{reflection}};\n\n                        \\draw (4,3) -- (6,3) -- ++(120:2) -- cycle;\n                        \\node [left] at (4,3) {$C$};\n                        \\node [right] at (6,3) {$A$};\n                        \\node at (5,5.1) {$B$};\n                        \\node [right] at (7,4) {$ \\mu_2 = \\begin{pmatrix}A & B & C \\\\ C & B & A\\end{pmatrix}$};\n\n                        \\draw (0,6) -- (2,6) -- ++(120:2) -- cycle;\n                        \\node [left] at (0,6) {$A$};\n                        \\node at (1,8.1) {$B$};\n                        \\node [right] at (2,6) {$C$};\n\n                        \\draw [->] (2,7) -- (4,7);\n                        \\node [above] at (3,7) {\\emph{reflection}};\n\n                        \\draw (4,6) -- (6,6) -- ++(120:2) -- cycle;\n                        \\node [left] at (4,6) {$A$};\n                        \\node [right] at (6,6) {$B$};\n                        \\node at (5,8.1) {$C$};\n                        \\node [right] at (7,7) {$ \\mu_1 = \\begin{pmatrix}A & B & C \\\\ A & C & B\\end{pmatrix}$};\n\n                        \\draw (0,9) -- (2,9) -- ++(120:2) -- cycle;\n                        \\node [left] at (0,9) {$A$};\n                        \\node at (1,11.1) {$B$};\n                        \\node [right] at (2,9) {$C$};\n\n                        \\draw [->] (2,10) -- (4,10);\n                        \\node [above] at (3,10) {\\emph{rotation}};\n\n                        \\draw (4,9) -- (6,9) -- ++(120:2) -- cycle;\n                        \\node [left] at (4,9) {$B$};\n                        \\node [right] at (6,9) {$A$};\n                        \\node at (5,11.1) {$C$};\n                        \\node [right] at (7,10) {$ \\rho_2 = \\begin{pmatrix}A & B & C \\\\ C & A & B\\end{pmatrix}$};\n\n                        \\draw (0,12) -- (2,12) -- ++(120:2) -- cycle;\n                        \\node [left] at (0,12) {$A$};\n                        \\node at (1,14.1) {$B$};\n                        \\node [right] at (2,12) {$C$};\n\n                        \\draw [->] (2,13) -- (4,13);\n                        \\node [above] at (3,13) {\\emph{rotation}};\n\n                        \\draw (4,12) -- (6,12) -- ++(120:2) -- cycle;\n                        \\node [left] at (4,12) {$C$};\n                        \\node [right] at (6,12) {$B$};\n                        \\node at (5,14.1) {$A$};\n                        \\node [right] at (7,13) {$ \\rho_1 = \\begin{pmatrix}A & B & C \\\\ B & C & A\\end{pmatrix}$};\n\n                        \\draw (0,15) -- (2,15) -- ++(120:2) -- cycle;\n                        \\node [left] at (0,15) {$A$};\n                        \\node at (1,17.1) {$B$};\n                        \\node [right] at (2,15) {$C$};\n\n                        \\draw [->] (2,16) -- (4,16);\n                        \\node [above] at (3,16) {\\emph{identity}};\n\n                        \\draw (4,15) -- (6,15) -- ++(120:2) -- cycle;\n                        \\node [left] at (4,15) {$A$};\n                        \\node [right] at (6,15) {$C$};\n                        \\node at (5,17.1) {$B$};\n                        \\node [right] at (7,16) {$ id = \\begin{pmatrix}A & B & C \\\\ A & B & C\\end{pmatrix}$};\n\n                        \\end{tikzpicture}]]>\n                    </latex-image>\n                </image>\n            </figure>\n\n            <p>Let us find the symmetries of the equilateral triangle <m>\\bigtriangleup ABC</m>.  To find a symmetry of <m>\\bigtriangleup ABC</m>, we must first examine the permutations of the vertices <m>A</m>, <m>B</m>, and <m>C</m> and then ask if a permutation extends to a symmetry of the triangle.  Recall that a <term>permutation</term> of a set <m>S</m> is a one-to-one and onto map <m>\\pi :S \\rightarrow S</m>.  The three vertices have <m>3! = 6</m> permutations, so the triangle has at most six symmetries.  To see that there are six permutations, observe there are three different possibilities for the first vertex, and two for the second, and the remaining vertex is determined by the placement of the first two.  So we have <m>3 \\cdot 2 \\cdot 1 = 3! = 6</m> different arrangements.  To denote the permutation of the vertices of an equilateral triangle that sends <m>A</m> to <m>B</m>, <m>B</m> to <m>C</m>, and <m>C</m> to <m>A</m>, we write the array\n                <md>\\begin{pmatrix}<![CDATA[\n                A & B & C \\\\\n                B & C & A\n                ]]>\\end{pmatrix}</md>.\n            Notice that this particular permutation corresponds to the rigid motion of rotating the triangle by <m>120^{\\circ}</m> in a clockwise direction.  In fact, every permutation gives rise to a symmetry of the triangle.  All of these symmetries are shown in <xref ref=\"figure-s3-symmetry\" />.</p>\n\n            <p>A natural question to ask is what happens if one motion of the triangle <m>\\bigtriangleup ABC</m> is followed by another.  Which symmetry is <m>\\mu_1 \\rho_1</m>; that is, what happens when we do the permutation <m>\\rho_1</m> and then the permutation <m>\\mu_1</m>?  <em>Remember that we are composing functions here.  Although we usually multiply left to right, we compose functions right to left.</em> We have<md>\n                <mrow>(\\mu_1 \\rho_1)(A) &amp; = \\mu_1( \\rho_1( A ) ) = \\mu_1( B ) = C</mrow>\n                <mrow>(\\mu_1 \\rho_1)(B) &amp; = \\mu_1( \\rho_1( B ) ) = \\mu_1( C ) = B</mrow>\n                <mrow>(\\mu_1 \\rho_1)(C) &amp; = \\mu_1( \\rho_1( C ) ) = \\mu_1( A ) = A</mrow>\n            </md>.</p>\n\n            <p>This is the same symmetry as <m>\\mu_2</m>. Suppose we do these motions in the opposite order, <m>\\rho_1</m> then <m>\\mu_1</m>.  It is easy to determine that this is the same as the symmetry <m>\\mu_3</m>; hence, <m>\\rho_1 \\mu_1 \\neq \\mu_1 \\rho_1</m>.  A multiplication table for the symmetries of an equilateral triangle <m>\\bigtriangleup ABC</m> is given in <xref ref=\"figure-s3\" />.</p>\n\n            <p>Notice that in the multiplication table for the symmetries of an equilateral triangle, for every motion of the triangle <m>\\alpha</m> there is another motion <m>\\beta</m> such that <m>\\alpha \\beta = id</m>; that is, for every motion there is another  motion that takes the triangle back to its original orientation.</p>\n\n            <figure xml:id=\"figure-s3\">\n                <caption>Symmetries of an equilateral triangle</caption>\n                <p><md>\\begin{array}{c|cccccc}\n                <![CDATA[\\circ  & id     & \\rho_1 & \\rho_2 & \\mu_1 & \\mu_2 & \\mu_3 \\\\\n                \\hline\n                id     & id     & \\rho_1 & \\rho_2 & \\mu_1 & \\mu_2 & \\mu_3 \\\\\n                \\rho_1 & \\rho_1 & \\rho_2 & id     & \\mu_3 & \\mu_1 & \\mu_2 \\\\\n                \\rho_2 & \\rho_2 & id     & \\rho_1 & \\mu_2 & \\mu_3 & \\mu_1 \\\\\n                \\mu_1  & \\mu_1  & \\mu_2  & \\mu_3  & id    & \\rho_1& \\rho_2\\\\\n                \\mu_2  & \\mu_2  & \\mu_3  & \\mu_1  & \\rho_2 & id    & \\rho_1\\\\\n                \\mu_3  & \\mu_3  & \\mu_1  & \\mu_2  & \\rho_1 & \\rho_2& id]]>\n                \\end{array}</md></p>\n            </figure>\n\n        </subsection>\n    </section>\n\n    <section xml:id=\"section-groups-define\">\n        <title>Definitions and Examples</title>\n\n        <!-- % TWJ, 2010/03/31 -->\n        <!-- % Fixed the error  <m>(a,b) \\in G \\times G</m> -->\n\n        <subsection>\n            <title>Definition of a Group</title>\n\n            <p>The integers mod <m>n</m> and the symmetries of a triangle or a rectangle are examples of groups.  A <term>binary operation</term><idx><h>Binary operation</h></idx> or <term>law of composition</term> on a set <m>G</m> is a function <m>G \\times G \\rightarrow G</m> that assigns to each pair <m>(a,b) \\in G \\times G</m> a unique element <m>a \\circ b</m>, or <m>ab</m> in <m>G</m>, called the composition of <m>a</m> and <m>b</m>.  A <term>group</term><idx><h>Group</h><h>definition of</h></idx> <m>(G, \\circ )</m> is a set <m>G</m> together with a law of composition <m>(a,b) \\mapsto a \\circ b</m> that satisfies the following axioms.<ul>\n                <li><p> The law of composition is <term>associative</term>. That is, <md>(a \\circ b) \\circ c = a \\circ (b \\circ c)</md> for <m>a, b, c \\in G</m>.</p></li>\n                <li><p> There exists an element <m>e \\in G</m>, called the <term>identity element</term><idx><h>Element</h><h>identity</h></idx>, such that for any element <m>a \\in G</m> <md>e \\circ a = a \\circ e = a</md>.</p></li>\n                <li><p> For each element <m>a \\in G</m>, there exists an <term>inverse element</term><idx><h>Element</h><h>inverse</h></idx> in G, denoted by <m>a^{-1}</m>, such that <md>a \\circ a^{-1} = a^{-1} \\circ a = e</md>.</p></li>\n            </ul></p>\n\n            <p>A group <m>G</m> with the property that <m>a \\circ b = b \\circ a</m> for all <m>a, b \\in G</m> is called <term>abelian</term><idx><h>Abelian group</h></idx><idx><h>Group</h><h>abelian</h></idx> or <term>commutative</term><idx><h>Group</h><h>commutative</h></idx>.  Groups not satisfying this property are said to be  <term>nonabelian</term><idx><h>Group</h><h>nonabelian</h></idx> or <term>noncommutative</term><idx><h>Group</h><h>noncommutative</h></idx>.</p>\n        </subsection>\n\n        <subsection>\n            <title>Examples of Groups</title>\n\n            <example xml:id=\"example-groups-integers\">\n                <title>Group of All Integers</title>\n                <p>The integers <m>{\\mathbb Z } = \\{ \\ldots , -1, 0, 1, 2, \\ldots \\}</m> form a group under the operation of addition.  The binary operation on two integers <m>m, n \\in {\\mathbb Z}</m> is just their sum.  Since the integers under addition already have a well-established notation, we will use the operator <m>+</m> instead of <m>\\circ</m>; that is, we shall write <m>m + n</m> instead of <m>m \\circ n</m>.  The identity is 0, and the inverse of <m>n \\in {\\mathbb Z}</m> is written as <m>-n</m> instead of <m>n^{-1}</m>.  Notice that the set of integers under addition have the additional property that <m>m + n = n + m</m> and therefore form an abelian group.</p>\n            </example>\n\n            <p>Most of the time we will write <m>ab</m> instead of <m>a \\circ b</m>; however, if the group already has a natural operation such as addition in the integers, we will use that operation.  That is, if we are adding two integers, we still write <m>m + n</m>, <m>-n</m> for the inverse, and 0 for the identity as usual. We also write <m>m - n</m> instead of <m>m + (-n)</m>.</p>\n\n            <p>It is often convenient to describe a group in terms of an addition or multiplication table.  Such a table is called a <term>Cayley table</term><idx><h>Cayley table</h></idx>.</p>\n\n            <example xml:id=\"example-groups-z5\">\n                <title>Group of Integers Modulo <m>5</m></title>\n                <p>The integers mod <m>n</m> form a group under addition modulo <m>n</m>.  Consider <m>{\\mathbb Z}_5</m>, consisting of the equivalence classes of the integers 0, 1, 2, 3, and 4.  We define the group operation on <m>{\\mathbb Z}_5</m> by modular addition.  We write the binary operation on the group additively; that is, we write <m>m + n</m>.  The element 0 is the identity of the group and each element in <m>{\\mathbb Z}_5</m> has an inverse. For instance, <m>2 + 3 = 3 + 2 = 0</m>.  <xref ref=\"figure-z5-cayley\" /> is a Cayley table for <m>{\\mathbb Z}_5</m>  (Contributed by <xref ref=\"rbeezer\" />).  By <xref ref=\"proposition-zn-equiv-classes\" />, <m>{\\mathbb Z}_n = \\{0, 1, \\ldots, n-1 \\}</m> is a group under the binary operation of addition mod <m>n</m>.</p>\n\n                <figure xml:id=\"figure-z5-cayley\">\n                    <caption>Cayley table for <m>({\\mathbb Z_5}, +)</m></caption>\n                    <p><md>\\begin{array}{c|ccccc}\n                    <![CDATA[+ & 0 & 1 & 2 & 3 & 4 \\\\\n                    \\hline\n                      0 & 0 & 1 & 2 & 3 & 4 \\\\\n                      1 & 1 & 2 & 3 & 4 & 0 \\\\\n                      2 & 2 & 3 & 4 & 0 & 1 \\\\\n                      3 & 3 & 4 & 0 & 1 & 2 \\\\\n                      4 & 4 & 0 & 1 & 2 & 3]]>\n                    \\end{array}</md></p>\n                </figure>\n            </example>\n\n            <example xml:id=\"example-groups-z6-mult\">\n                <title>Multiplication of Integers Modulo <m>6</m></title>\n                <p>Not every set with a binary operation is a group.  For example, if we let modular multiplication be the binary operation on <m>{\\mathbb Z}_n</m>, then <m>{\\mathbb Z}_n</m> fails to be a group.  The element 1 acts as a group identity since <m>1 \\cdot k = k \\cdot 1 = k</m> for any <m>k \\in {\\mathbb Z}_n</m>; however, a multiplicative inverse for <m>0</m> does not exist since <m>0 \\cdot k = k \\cdot 0 = 0</m> for every <m>k</m> in <m>{\\mathbb Z}_n</m>.  Even if we consider the set <m>{\\mathbb Z}_n \\setminus \\{0 \\}</m>, we still may not have a group.  For instance, let <m>2 \\in {\\mathbb Z}_6</m>. Then 2 has no multiplicative inverse since<md>\n                    <mrow> 0 \\cdot 2 &amp; = 0 \\qquad 1 \\cdot 2 = 2</mrow>\n                    <mrow> 2 \\cdot 2 &amp; = 4 \\qquad 3 \\cdot 2 = 0</mrow>\n                    <mrow> 4 \\cdot 2 &amp; = 2 \\qquad 5 \\cdot 2 = 4</mrow>\n                </md>.</p>\n\n                <p>By <xref ref=\"proposition-zn-equiv-classes\" />, every nonzero <m>k</m> does have an inverse in <m>{\\mathbb Z}_n</m> if <m>k</m> is relatively prime to <m>n</m>.  Denote the set of all such nonzero elements in <m>{\\mathbb Z}_n</m> by <m>U(n)</m>. <notation><usage><m>U(n)</m></usage><description>group of units in <m>\\mathbb Z_n</m></description></notation>  Then <m>U(n)</m> is a group called the <term>group of units</term><idx><h>Group</h><h>of units</h></idx> of <m>{\\mathbb Z}_n</m>.  <xref ref=\"figure-cayley-u8\" /> is a Cayley table for the group <m>U(8)</m>.</p>\n\n                <figure xml:id=\"figure-cayley-u8\">\n                    <caption>Multiplication table for <m>U(8)</m></caption>\n                    <p><md>\\begin{array}{c|cccc}\n                    <![CDATA[\\cdot & 1 & 3 & 5 & 7 \\\\\n                    \\hline\n                    1       & 1 & 3 & 5 & 7 \\\\\n                    3       & 3 & 1 & 7 & 5 \\\\\n                    5       & 5 & 7 & 1 & 3 \\\\\n                    7       & 7 & 5 & 3 & 1]]>\n                    \\end{array}</md></p>\n                </figure>\n            </example>\n\n            <example xml:id=\"example-groups-nonabelian\">\n                <title>Symmetries of a Triangle is not Abelian</title>\n                <p>The symmetries of an equilateral triangle described in <xref ref=\"section-mod-n-sym\" /> form a nonabelian group. As we observed, it is not necessarily true that <m>\\alpha \\beta = \\beta \\alpha</m> for two symmetries <m>\\alpha</m> and <m>\\beta</m>.  Using <xref ref=\"figure-s3\" />, which is a Cayley table for this group, we can easily check that the symmetries of an equilateral triangle are indeed a group. We will denote this group by either <m>S_3</m> or <m>D_3</m>, for reasons that will be explained later.</p>\n            </example>\n\n            <example xml:id=\"example-groups-gl2\">\n                <title>Matrix Multiplication of <m>2\\times 2</m> Matrices is a Group</title>\n                <p>We use  <m>{\\mathbb M}_2 ( {\\mathbb R})</m> to denote the set of all <m>2 \\times 2</m> matrices.  Let <m>GL_2({\\mathbb R})</m> be the subset of <m>{\\mathbb M}_2 ( {\\mathbb R})</m> consisting of invertible matrices; that is, a matrix <notation><usage><m>\\mathbb M_n(\\mathbb R)</m></usage><description>the <m>n \\times n</m> matrices with entries in <m>\\mathbb R</m></description></notation>\n                    <md>A =\n                    \\begin{pmatrix}<![CDATA[\n                    a & b \\\\\n                    c & d\n                    ]]>\\end{pmatrix}</md> \n                is in  <m>GL_2( {\\mathbb R})</m> if there exists a matrix <m>A^{-1}</m> such that\n                <m>A A^{-1} = A^{-1} A = I</m>, where <m>I</m> is the <m>2 \\times 2</m> identity matrix. For <m>A</m> to have an inverse is equivalent to requiring that the determinant of <m>A</m> be nonzero; that is, <m>\\det A = ad - bc \\neq 0</m>. <notation><usage><m>\\det A</m></usage><description>the determinant of <m>A</m></description></notation> The set of invertible matrices forms a group called the <term>general linear group</term><idx><h>Group</h><h>general linear</h></idx>.  <notation><usage><m>GL_n(\\mathbb R)</m></usage><description>the general linear group</description></notation> The identity of the group is the identity matrix\n                    <md>I =\n                    \\begin{pmatrix}<![CDATA[\n                    1 & 0 \\\\\n                    0 & 1\n                    ]]>\\end{pmatrix}</md>.\n                The inverse of <m>A \\in GL_2( {\\mathbb R})</m> is\n                    <md>A^{-1} =\n                    \\frac{1}{ad-bc}\n                    \\begin{pmatrix}<![CDATA[\n                    d & -b \\\\\n                    -c & a\n                    ]]>\\end{pmatrix}</md>.\n                The product of two invertible matrices is again invertible. Matrix multiplication is associative, satisfying the other group axiom. For matrices it is not true in general that <m>AB = BA</m>; hence, <m>GL_2({\\mathbb R})</m> is another example of a nonabelian group.</p>\n            </example>\n\n            <!-- % Changed <m>AB \\neq BA</m> to <m>AB = BA</m>. Suggested by Isaac Coombs. TWJ 8/24/2011 -->\n\n            <example xml:id=\"example-groups-quaterions\">\n                <title>Group of Quaternions</title>\n                <p>Let<md>\n                    <mrow>1 &amp; = \n                    \\begin{pmatrix}<![CDATA[\n                    1 & 0\\\\\n                    0 & 1\n                    ]]>\\end{pmatrix}\n                    \\qquad\n                    I\n                    =\n                    \\begin{pmatrix}<![CDATA[\n                    0 & 1\\\\\n                    -1 & 0\n                    ]]>\\end{pmatrix}</mrow>\n                    <mrow>J &amp; = \n                    \\begin{pmatrix}<![CDATA[\n                    0 & i\\\\\n                    i & 0\n                    ]]>\\end{pmatrix}\n                    \\qquad\n                    K =\n                    \\begin{pmatrix}<![CDATA[\n                    i & 0\\\\\n                    0 & -i\n                    ]]>\\end{pmatrix}</mrow>\n                </md>, where <m>i^2 = -1</m>. Then the relations <m>I^2 = J^2 = K^2 = -1</m>, <m>IJ=K</m>, <m>JK = I</m>, <m>KI = J</m>, <m>JI = -K</m>, <m>KJ = -I</m>, and <m>IK = -J</m> hold. The set <m>Q_8 = \\{\\pm 1, \\pm I, \\pm J, \\pm K  \\}</m> is a group called the <term>quaternion group</term>. Notice that <m>Q_8</m> is noncommutative.<notation>\n                    <usage><m>Q_8</m></usage>\n                    <description>the group of quaternions</description>\n                </notation><idx>\n                    <h>Group</h>\n                    <h>quaternion</h>\n                </idx><idx>\n                    <h>Quaternions</h>\n                </idx></p>\n            </example>\n\n            <example xml:id=\"example-groups-c-star\">\n                <title>Group of Nonzero Complex Numbers</title>\n                <p>Let <m>{\\mathbb C}^\\ast</m>be the set of nonzero complex numbers. <notation><usage><m>\\mathbb C^*</m></usage><description>the multiplicative group of complex numbers</description></notation> Under the operation of multiplication <m>{\\mathbb C}^\\ast</m> forms a group.  The identity is 1. If <m>z = a+bi</m> is a nonzero complex number, then <md>z^{-1} = \\frac{a -bi}{a^2 +b^2}</md> is the inverse of <m>z</m>.  It is easy to see that the remaining group axioms hold.</p>\n            </example>\n\n            <p>A group is <term>finite</term><idx><h>Group</h><h>finite</h></idx>, or has <term>finite order</term>, if it contains a finite number of elements; otherwise, the group is said to be <term>infinite</term> or to have <term>infinite order</term><idx><h>Group</h><h>infinite</h></idx>. The <term>order</term><idx><h>Group</h><h>order of</h></idx> of a finite group is the number of elements that it contains. If <m>G</m> is a group containing <m>n</m> elements, we write <m>|G| = n</m>. <notation><usage><m>|G|</m></usage><description>the order of a group</description></notation> The group <m>{\\mathbb Z}_5</m> is a finite group of order 5; the integers <m>{\\mathbb Z}</m> form an infinite group under addition, and we sometimes write <m>|{\\mathbb Z}| = \\infty</m>.</p>\n        </subsection>\n\n        <subsection>\n            <title>Basic Properties of Groups</title>\n\n            <proposition>\n\n                <statement>\n                    <p>The identity element in a group <m>G</m> is unique; that is, there exists only one element <m>e \\in G</m> such that <m>eg = ge = g</m> for all <m>g \\in G</m>.</p>\n                </statement>\n\n                <proof>\n                    <p>Suppose that <m>e</m> and <m>e'</m> are both identities in <m>G</m>. Then <m>eg = ge = g</m> and <m>e'g = ge' = g</m> for all <m>g \\in G</m>. We need to show that <m>e = e'</m>. If we think of <m>e</m> as the identity, then <m>ee' = e'</m>; but if <m>e'</m> is the identity, then <m>ee' = e</m>. Combining these two equations, we have <m>e = ee' = e'</m>. (<xref ref=\"dfarmer\" /> helped with this proof.)</p>\n                </proof>\n            </proposition>\n\n            <p>Inverses in a group are also unique. If <m>g'</m> and <m>g''</m> are both inverses of an element <m>g</m> in a group <m>G</m>, then <m>gg' = g'g = e</m> and <m>gg'' = g''g = e</m>. We want to show that <m>g' = g''</m>, but <m>g' = g'e = g'(gg'') = (g'g)g'' = eg'' = g''</m>. We summarize this fact in the following proposition.</p>\n\n            <proposition>\n                <statement>\n                    <p>If <m>g</m> is any element in a group <m>G</m>, then the inverse of <m>g</m>, denoted by <m>g^{-1}</m>, is unique.</p>\n                </statement>\n            </proposition>\n\n            <proposition xml:id=\"proposition-inverse-of-products\">\n                <statement>\n                    <p>Let <m>G</m> be a group. If <m>a, b \\in G</m>, then <m>(ab)^{-1} = b^{-1}a^{-1}</m>.</p>\n                </statement>\n                <proof>\n                    <p> Let <m>a, b \\in G</m>. Then <m>abb^{-1}a^{-1} = aea^{-1} = aa^{-1} = e</m>. Similarly, <m>b^{-1}a^{-1}ab = e</m>. But by the previous proposition, inverses are unique; hence, <m>(ab)^{-1} = b^{-1}a^{-1}</m>.</p>\n                </proof>\n            </proposition>\n\n            <proposition>\n                <statement>\n                    <p>Let <m>G</m> be a group.  For any <m>a \\in G</m>, <m>(a^{-1})^{-1} = a</m>.</p>\n                </statement>\n\n                <proof>\n                    <p> Observe that <m>a^{-1} (a^{-1})^{-1} = e</m>. Consequently, multiplying both sides of this equation by <m>a</m>, we have <md>(a^{-1})^{-1} = e (a^{-1})^{-1} = a a^{-1} (a^{-1})^{-1} = ae = a</md>.</p>\n                </proof>\n            </proposition>\n\n            <p>It makes sense to write equations with group elements and group operations. If <m>a</m> and <m>b</m> are two elements in a group <m>G</m>, does there exist an element <m>x \\in G</m> such that <m>ax = b</m>? If such an <m>x</m> does exist, is it unique? The following proposition answers both of these questions positively.</p>\n\n            <proposition xml:id=\"proposition-group-equations\"> \n                <statement>\n                    <p>Let <m>G</m> be a group and <m>a</m> and <m>b</m> be any two elements in <m>G</m>. Then the equations <m>ax = b</m> and <m>xa = b</m> have unique solutions in <m>G</m>.</p>\n                </statement>\n\n                <proof>\n                    <p>Suppose that <m>ax = b</m>. We must show that such an <m>x</m> exists. Multiplying both sides of <m>ax = b</m> by <m>a^{-1}</m>, we have <m>x = ex = a^{-1}ax = a^{-1}b</m>.</p> \n\n                    <p>To show uniqueness, suppose that <m>x_1</m> and <m>x_2</m> are both solutions of <m>ax = b</m>; then <m>ax_1 = b = ax_2</m>. So <m>x_1 = a^{-1}ax_1 = a^{-1}ax_2 = x_2</m>. The proof for the existence and uniqueness of the solution of <m>xa = b</m> is similar.</p>\n                </proof>\n            </proposition>\n\n            <proposition>\n                <statement>\n                    <p>If <m>G</m> is a group and <m>a, b, c \\in G</m>, then <m>ba = ca</m> implies <m>b = c</m> and <m>ab = ac</m> implies <m>b = c</m>.</p>\n                </statement>\n            </proposition>\n\n            <p>This proposition tells us that the <term>right and  left cancellation laws</term><idx><h>Cancellation law</h><h>for groups</h></idx> are true in groups.  We leave the proof as an exercise.</p>\n\n            <p>We can use exponential notation for groups just as we do in ordinary algebra. If <m>G</m> is a group and <m>g \\in G</m>, then we define <m>g^0 = e</m>. For <m>n \\in {\\mathbb N}</m>, we define \n            <md>g^n = \\underbrace{g \\cdot g \\cdots g}_{n \\; \\text{times}}</md> \n            and \n            <md>g^{-n} = \\underbrace{g^{-1} \\cdot g^{-1} \\cdots g^{-1}}_{n \\; \\text{times}}</md>.</p>\n\n            <theorem xml:id=\"theorem-exponent-laws\">\n                <statement>\n                    <p>In a group, the usual laws of exponents hold; that is, for all <m>g, h \\in G</m>,<ol>\n                        <li><p><m>g^mg^n = g^{m+n}</m> for all <m>m, n \\in {\\mathbb Z}</m>;</p></li>\n                        <li><p><m>(g^m)^n = g^{mn}</m> for all <m>m, n \\in {\\mathbb Z}</m>;</p></li>\n                        <li><p><m>(gh)^n = (h^{-1}g^{-1})^{-n}</m> for all <m>n \\in {\\mathbb Z}</m>. Furthermore, if <m>G</m> is abelian, then <m>(gh)^n = g^nh^n</m>.</p></li>\n                    </ol></p>\n                </statement>\n            </theorem>\n\n                <p>We will leave the proof of this theorem as an exercise. Notice that <m>(gh)^n \\neq g^nh^n</m> in general, since the group may not be abelian. If the group is <m>{\\mathbb Z}</m> or <m>{\\mathbb Z}_n</m>, we write the group operation additively and the exponential operation multiplicatively; that is, we write <m>ng</m> instead of <m>g^n</m>. The laws of exponents now become<ol>\n                    <li><p><m>mg + ng = (m+n)g</m> for all <m>m, n \\in {\\mathbb Z}</m>;</p></li>\n                    <li><p><m>m(ng) = (mn)g</m> for all <m>m, n \\in {\\mathbb Z}</m>;</p></li>\n                    <li><p><m>m(g + h) = mg + mh</m> for all <m>n \\in {\\mathbb Z}</m>.</p></li>\n                </ol></p>\n\n            <p>It is important to realize that the last statement can be made only because <m>{\\mathbb Z}</m> and  <m>{\\mathbb Z}_n</m> are commutative groups.</p>\n\n        </subsection>\n\n        <subsection>\n            <title>Historical Note</title>\n\n            <p>Although the first clear axiomatic definition of a group was not given until the late 1800s, group-theoretic methods had been employed before this time in the development of  many areas of mathematics, including geometry and the theory of algebraic equations.</p>\n\n            <p>Joseph-Louis Lagrange<idx><h>Lagrange, Joseph-Louis</h></idx> used group-theoretic methods in a 1770<ndash />1771 memoir to study methods of solving polynomial equations.  Later, Évariste Galois<idx><h>Galois, Évariste</h></idx> (1811<ndash />1832) succeeded in developing the mathematics necessary to determine exactly which polynomial equations could be  solved in terms of the polynomial's coefficients. Galois' primary tool was group theory.</p>\n\n            <p>The study of geometry was revolutionized in 1872 when Felix Klein<idx><h>Klein, Felix</h></idx> proposed that geometric spaces should be studied by examining those properties that are invariant under a transformation of the space. Sophus Lie<idx><h>Lie, Sophus</h></idx>, a contemporary of Klein, used group theory to study solutions of partial differential equations.  One of the first modern treatments of group theory appeared in William Burnside's<idx><h>Burnside, William</h></idx> <pubtitle>The Theory of Groups of Finite Order</pubtitle> [1], first published in 1897.</p>\n        </subsection>\n\n    </section>\n\n    <section xml:id=\"section-subgroups\">\n        <title>Subgroups</title>\n\n        <subsection>\n            <title>Definitions and Examples</title>\n\n            <p>Sometimes we wish to investigate smaller groups sitting inside a larger group.   The set of even integers <m>2{\\mathbb Z} = \\{\\ldots, -2, 0, 2, 4, \\ldots \\}</m> is a group  under the operation of addition. This smaller group sits naturally inside of the group of integers under addition.  We define a <term>subgroup</term><idx><h>Subgroup</h><h>definition of</h></idx> <m>H</m> of a group <m>G</m> to be a subset <m>H</m> of <m>G</m> such that when the group operation of <m>G</m> is restricted to <m>H</m>, <m>H</m> is a group in its own right. Observe that every group <m>G</m> with at least two elements will always have at least two subgroups, the subgroup consisting of the identity element alone and the entire group itself. The subgroup <m>H = \\{ e \\}</m> of a group <m>G</m> is called the <term>trivial subgroup</term><idx><h>Subgroup</h><h>trivial</h></idx>.  A subgroup that is a proper subset of <m>G</m> is called a <term>proper subgroup</term><idx><h>Subgroup</h><h>proper</h></idx>. In many of the examples that we have investigated up to this point, there exist other subgroups besides the trivial and improper subgroups.</p>\n\n            <example xml:id=\"example-groups-multiplicative-subgroup\">\n                <title>A Subgroup of the Reals</title>\n                <p>Consider the set of nonzero real numbers, <m>{\\mathbb R}^*</m>, with the group operation of multiplication. <notation><usage><m>\\mathbb R^*</m></usage><description>the multiplicative group of real numbers</description></notation> The identity of this group is 1 and the inverse of any element <m>a \\in {\\mathbb R}^*</m> is just <m>1/a</m>. We will show that\n                    <md>{\\mathbb Q}^* = \\{ p/q : p\\text{ and }q\\text{ are nonzero integers}\\}</md>\n                is a subgroup of <m>{\\mathbb R}^*</m>. <notation><usage><m>\\mathbb Q^*</m></usage><description>the multiplicative group of rational numbers</description></notation> The identity of <m>{\\mathbb R}^*</m> is 1; however,  <m>1 = 1/1</m> is the quotient of two nonzero integers. Hence, the identity of <m>{\\mathbb R}^*</m> is in <m>{\\mathbb Q}^*</m>. Given two elements in <m>{\\mathbb Q}^*</m>, say <m>p/q</m> and <m>r/s</m>, their product <m>pr/qs</m> is also in <m>{\\mathbb Q}^*</m>. The inverse of any element <m>p/q \\in {\\mathbb Q}^*</m> is again in <m>{\\mathbb Q}^*</m> since <m>(p/q)^{-1} = q/p</m>. Since multiplication in <m>{\\mathbb R}^*</m> is associative, multiplication in <m>{\\mathbb Q}^*</m> is associative. </p> \n            </example>\n\n            <example xml:id=\"example-groups-subgroup-h\">\n                <title>A Subgroup of the Nonzero Complex Numbers</title>\n                <p>Recall that <m>{\\mathbb C}^{\\ast}</m>  is the multiplicative group of nonzero complex numbers. Let <m>H = \\{ 1, -1, i, -i \\}</m>. Then <m>H</m> is a subgroup of <m>{\\mathbb C}^{\\ast}</m>. It is quite easy to verify  that <m>H</m> is a group under multiplication and that <m>H \\subset {\\mathbb C}^{\\ast}</m>.</p>\n            </example>\n\n            <example xml:id=\"example-groups-sl2\">\n                <title>A Subgroup of Matrices With Determinant One</title>\n                <p>Let <m>SL_2( {\\mathbb R})</m> be the subset of <m>GL_2( {\\mathbb R })</m>consisting of matrices of determinant one; that is, a matrix <notation><usage><m>SL_n(\\mathbb R)</m></usage><description>the special linear group</description></notation>\n                    <md>A =\n                    \\begin{pmatrix}<![CDATA[\n                    a & b \\\\\n                    c & d\n                    ]]>\\end{pmatrix}</md>\n                    is in <m>SL_2( {\\mathbb R})</m> exactly when <m>ad - bc = 1</m>. To show that <m>SL_2( {\\mathbb R})</m> is a subgroup of the general linear group, we must show that it is a group under matrix multiplication.  The <m>2 \\times 2</m> identity matrix is in <m>SL_2( {\\mathbb R})</m>, as is the inverse of the matrix <m>A</m>:  \n                    <md>A^{-1} =\n                \\begin{pmatrix}<![CDATA[\n                d  & -b \\\\\n                -c &  a\n                ]]>\\end{pmatrix}</md>.\n                It remains to show that multiplication is closed; that is, that the product of two matrices of determinant one also has determinant one. We will leave this task as an exercise. The group <m>SL_2({\\mathbb R})</m> is called the <term>special linear group</term><idx><h>Group</h><h>special linear</h></idx>.</p>\n            </example>\n\n            <example xml:id=\"example-groups-gl2-subgroup\">\n                <title>Groups, Subsets, Operations</title>\n                <p>It is important to realize that a subset <m>H</m> of a group <m>G</m> can be a group without being a subgroup of <m>G</m>. For <m>H</m> to be a subgroup of <m>G</m> it must inherit <m>G</m>'s binary operation.  The set of all <m>2 \\times 2</m> matrices, <m>{\\mathbb M}_2(\\mathbb R)</m>, forms a group under the operation of addition. The <m>2 \\times 2</m> general linear group is a subset of <m>{\\mathbb M}_2(\\mathbb R)</m> and is a group under matrix multiplication, but it is not a subgroup of <m>{\\mathbb M}_2(\\mathbb R)</m>.  If we add two invertible matrices, we do not necessarily obtain another invertible matrix. Observe that<md>\\begin{pmatrix}<![CDATA[\n                1 & 0 \\\\\n                0 & 1\n                ]]>\\end{pmatrix}\n                +\n                \\begin{pmatrix}<![CDATA[\n                -1 &  0 \\\\\n                0  & -1\n                ]]>\\end{pmatrix}\n                =\n                \\begin{pmatrix}<![CDATA[\n                0 & 0 \\\\\n                0 & 0\n                ]]>\\end{pmatrix}</md>,\n                but the zero matrix is not in <m>GL_2( {\\mathbb R })</m>.</p>\n            </example>\n\n            <example xml:id=\"example-groups-z2xz2\">\n                <title>Structurally Different Groups</title>\n                <p>One way of telling whether or not two groups are the same is by examining their subgroups.  Other than the trivial subgroup and the group itself, the group <m>{\\mathbb Z}_4</m> has a single subgroup consisting of the elements 0 and 2. From the group <m>{\\mathbb Z}_2</m>, we can form another group of four elements as follows.  As a set this group is <m>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</m>. We perform the group operation coordinatewise; that is, <m>(a,b) + (c,d) = (a+c, b+d)</m>. <xref ref=\"figure-z2xz2\" /> is an addition table for <m>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</m>. Since there are three nontrivial proper subgroups of <m>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</m>, <m>H_1 = \\{ (0,0), (0,1) \\}</m>, <m>H_2 = \\{ (0,0), (1,0) \\}</m>, and <m>H_3 = \\{ (0,0), (1,1) \\}</m>, <m>{\\mathbb Z}_4</m> and <m>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</m> must be different groups.</p>\n\n                <figure xml:id=\"figure-z2xz2\">\n                    <caption>Addition table for <m>{\\mathbb Z}_2 \\times {\\mathbb Z}_2</m></caption>\n                    <p><md>\\begin{array}{c|cccc}\n                    <![CDATA[+     & (0,0) & (0,1) & (1,0) & (1,1) \\\\\n                    \\hline\n                    (0,0) & (0,0) & (0,1) & (1,0) & (1,1) \\\\\n                    (0,1) & (0,1) & (0,0) & (1,1) & (1,0) \\\\\n                    (1,0) & (1,0) & (1,1) & (0,0) & (0,1) \\\\\n                    (1,1) & (1,1) & (1,0) & (0,1) & (0,0)]]>\n                    \\end{array}</md></p>\n                </figure>\n            </example>\n\n\n        </subsection>\n\n        <subsection>\n            <title>Some Subgroup Theorems</title>\n\n            <p>Let us examine some criteria for determining exactly when a subset of\n            a group is a subgroup.</p>\n\n            <proposition>\n                <statement>\n                    <p>A subset <m>H</m> of <m>G</m> is a subgroup if and only if it satisfies the following conditions.<ol> \n                        <li><p>The identity <m>e</m> of <m>G</m> is in <m>H</m>.</p></li>\n                        <li><p>If <m>h_1, h_2 \\in H</m>, then <m>h_1h_2 \\in H</m>.</p></li>\n                        <li><p>If <m>h \\in H</m>, then <m>h^{-1} \\in H</m>.</p></li>\n                    </ol></p>\n                </statement>\n\n                <proof>\n                    <p> First suppose that <m>H</m> is a subgroup of <m>G</m>.  We must show that the three conditions hold.  Since <m>H</m> is a group, it must have an identity <m>e_H</m>.  We must show that <m>e_H = e</m>, where <m>e</m> is the identity of <m>G</m>. We know that <m>e_H e_H = e_H</m> and that <m>ee_H = e_H e = e_H</m>; hence, <m>ee_H = e_H e_H</m>.  By right-hand cancellation, <m>e =e_H</m>.  The second condition holds since a subgroup <m>H</m> is a group.  To prove the third condition, let <m>h \\in H</m>.  Since <m>H</m> is a group, there is  an element <m>h' \\in H</m> such that <m>hh' = h'h = e</m>.  By the uniqueness  of the inverse in <m>G</m>, <m>h' = h^{-1}</m>.</p>\n\n                    <p>Conversely, if the three conditions hold, we must show that <m>H</m> is a group under the same operation as <m>G</m>; however, these conditions plus the associativity of the binary operation are exactly the axioms stated in the definition of a group.</p>\n                </proof> \n            </proposition>\n             \n            <proposition xml:id=\"proposition-subgroup\">\n                <statement>\n                    <p>Let <m>H</m> be a subset of a group <m>G</m>.  Then <m>H</m> is a subgroup of <m>G</m> if and only if <m>H \\neq \\emptyset</m>, and whenever <m>g, h \\in H</m> then <m>gh^{-1}</m> is in <m>H</m>.</p>\n                </statement>\n\n                <proof>\n                    <p>First assume that <m>H</m> is a subgroup of <m>G</m>.  We wish to show that <m>gh^{-1} \\in H</m> whenever <m>g</m> and <m>h</m> are in <m>H</m>.  Since <m>h</m> is in <m>H</m>, its inverse <m>h^{-1}</m> must also be in <m>H</m>.  Because of the closure of the group operation, <m>gh^{-1} \\in H</m>.</p>\n\n                    <p>Conversely, suppose that <m>H \\subset G</m> such that <m>H \\neq \\emptyset</m> and  <m>g h^{-1} \\in H</m> whenever <m>g, h \\in H</m>.  If <m>g \\in H</m>, then <m>gg^{-1} = e</m> is in <m>H</m>.  If <m>g \\in H</m>, then <m>eg^{-1} = g^{-1}</m> is also in <m>H</m>. Now let <m>h_1, h_2 \\in H</m>. We must show that their product is also in <m>H</m>.  However, <m>h_1(h_2^{-1})^{-1} = h_1 h_2 \\in H</m>.  Hence, <m>H</m> is a subgroup of <m>G</m>.</p>\n                </proof>\n            </proposition>\n\n            <!-- % TWJ, 2012/11/21 -->\n            <!-- % Proof rewritten for clarity.  Suggested by R. Beezer. -->\n\n            <!-- Let <m>H</m> be a nonempty subset of <m>G</m>.  Then <m>H</m> contains some element <m>g</m>.  So <m>gg^{-1} = e</m> is in <m>H</m>.  If <m>g \\in H</m>, then <m>eg^{-1} = g^{-1}</m> is also in <m>H</m>. Finally, let <m>g, h \\in H</m>. We must show that their product is also in <m>H</m>.  However, <m>g(h^{-1})^{-1} = gh \\in H</m>.  Hence, <m>H</m> is indeed a subgroup of <m>G</m>. Conversely, if <m>g</m> and <m>h</m> are in <m>H</m>, we want to show that <m>gh^{-1} \\in H</m>.  Since <m>h</m> is in <m>H</m>, its inverse <m>h^{-1}</m> must also be in <m>H</m>.  Because of the closure of the group operation, <m>gh^{-1} \\in H</m>.  -->\n\n            <xi:include href=\"./sage/groups-info.xml\" />\n\n        </subsection>\n    </section>\n\n    <xi:include href=\"./sage/groups-sage.xml\" />\n\n    <xi:include href=\"./exercises/groups.xml\" />\n\n    <exercises>\n        <title>Additional Exercises: Detecting Errors</title>\n\n<!--EXERCISE GROUP\n\n        <introduction>\n            <p>Credit card companies, banks, book publishers, and supermarkets all take advantage of the properties of integer arithmetic modulo <m>n</m> and group theory to obtain error detection schemes for the identification codes that they use.</p>\n        </introduction>\n    -->\n\n        <!-- % TWJ, 2010/03/31 -->\n        <!-- % Fixed figure reference -->\n\n        <!-- % TWJ, 2012/10/21 -->\n        <!-- % Deleted the word \"now\" in the description of UPC symbols.  Suggested by R. Beezer. -->\n\n        <exercise>\n            <title>UPC Symbols</title>\n\n            <statement>\n                <p>Universal Product Code<idx><h>Universal Product Code</h></idx> (UPC) symbols are found on most products in grocery and retail stores. The UPC symbol is a 12-digit code identifying the manufacturer of a product and the product itself (<xref ref=\"figure-upc-codes\" />). The first 11 digits contain information about the product; the twelfth digit is used for error detection. If <m>d_1 d_2 \\cdots d_{12}</m> is a valid UPC number, then \n                <md>3 \\cdot d_1 + 1 \\cdot d_2 + 3 \\cdot d_3 + \\cdots + 3 \\cdot d_{11} + 1 \\cdot d_{12} \\equiv 0 \\pmod{10}</md>.</p>\n\n                <ol>\n                    <li><p>Show that the UPC number  0-50000-30042-6, which appears in <xref ref=\"figure-upc-codes\" />, is a valid UPC number.</p></li>\n                    <li><p>Show that the number 0-50000-30043-6 is not a valid UPC number.</p></li>\n                    <li><p>Write a  formula to calculate the check digit, <m>d_{12}</m>, in the UPC number.</p></li>\n                    <li><p>The  UPC error detection scheme can detect most transposition errors; that is, it can determine if two digits have been interchanged.  Show that the transposition error 0-05000-30042-6 is not detected.  Find a transposition error that is detected.  Can you find a general rule for the types of transposition errors that can be detected? </p></li>\n                    <!-- % Corrected exercise. Suggested by John Watterlond. TWJ 8/24/2011 -->\n                    <li><p>Write a program that will determine whether or not a UPC number is valid.</p></li>\n                </ol>\n\n                <figure xml:id=\"figure-upc-codes\">\n                    <caption>A UPC code</caption>\n                    <image width=\"30%\" source=\"UPCcode.png\" />\n                </figure>\n            </statement>\n        </exercise>\n\n        <exercise>\n            <statement>\n                <p>It is often useful to use an inner product notation for this type of error detection scheme; hence, we will use the notion\n                    <md>(d_1, d_2, \\ldots, d_k ) \\cdot (w_1, w_2, \\ldots, w_k ) \\equiv 0 \\pmod{ n }</md>\n                to mean\n                    <md>d_1 w_1 +  d_2 w_2 + \\cdots +  d_k w_k  \\equiv 0  \\pmod{ n}</md>.</p>\n\n                <p>Suppose that <m>(d_1, d_2, \\ldots, d_k ) \\cdot (w_1, w_2, \\ldots, w_k ) \\equiv 0 \\pmod{ n}</m> is an error detection scheme for the <m>k</m>-digit identification number <m>d_1 d_2 \\cdots d_k</m>, where <m>0 \\leq d_i \\lt n</m>.  Prove that all single-digit errors are detected if and only if <m>\\gcd( w_i, n ) = 1</m> for  <m>1 \\leq i \\leq k</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise>\n            <statement>\n                <p>Let <m>(d_1, d_2, \\ldots, d_k ) \\cdot (w_1, w_2, \\ldots, w_k ) \\equiv 0 \\pmod{ n}</m> be an error detection scheme for the <m>k</m>-digit identification number <m>d_1 d_2 \\cdots d_k</m>, where <m>0 \\leq d_i \\lt n</m>.  Prove that all transposition errors of two digits <m>d_i</m> and <m>d_j</m> are detected if and only if <m>\\gcd( w_i - w_j, n ) = 1</m> for <m>i</m> and  <m>j</m> between 1 and <m>k</m>.</p>\n            </statement>\n        </exercise>\n\n        <exercise>\n            <title>ISBN Codes</title>\n\n            <statement>\n                <p>Every book has an International Standard Book Number<idx><h>International standard book number</h></idx> (ISBN) code.  This is a 10-digit code indicating the book's publisher and title.  The tenth digit is a check digit satisfying \n                    <md>(d_1, d_2, \\ldots, d_{10} ) \\cdot (10, 9, \\ldots, 1 )  \\equiv 0 \\pmod{11}</md>.\n                One problem is that <m>d_{10}</m> might have to be a 10 to make the inner product zero; in this case, 11 digits would be  needed to make this scheme work.  Therefore, the character X is used for the eleventh digit.  So ISBN 3-540-96035-X is a valid ISBN code.</p>\n\n                <ol>\n                    <li><p>Is ISBN 0-534-91500-0 a valid ISBN code?  What about ISBN 0-534-91700-0 and ISBN 0-534-19500-0?</p></li>\n                    <li><p>Does this method detect all single-digit errors?  What about all transposition errors?</p></li>\n                    <li><p>How many different ISBN codes are there?</p></li>\n                    <li><p>Write a computer program that will calculate the check digit for the first nine digits of an ISBN code.</p></li>\n                    <li><p>A publisher has houses in Germany and the United States.  Its German prefix is <c>3-540</c>.  If its United States prefix will be <c>0-abc</c>, find <c>abc</c> such that the rest of the ISBN code will be the same for a book printed in Germany and in the United States. Under the ISBN coding method the first digit identifies the language; German is <c>3</c> and English is <c>0</c>.  The next group of numbers identifies the publisher, and the last group identifies the specific book.</p></li>\n                </ol>\n            </statement>\n        </exercise>\n\n    </exercises>\n\n    <xi:include href=\"./sage/groups-sage-exercises.xml\" />\n\n    <references>\n    <!--  references checked and updated - TWJ 6/22/2010 -->\n        <title>References and Suggested Readings</title>\n<!--Fix intro\n        <introduction>\n            <p>References [2] and [3] show how group theory can be used in error detection schemes.  Other sources cover more advanced topics in group theory.</p>\n        </introduction>\n-->\n        <!-- %Reference updated - TWJ 6/22/2010 -->\n        <!-- was [1] -->\n        <biblio type=\"raw\">Burnside, W. <title>Theory of Groups of Finite Order</title>. 2nd ed. Cambridge University Press, Cambridge, 1911; Dover, New York, 1953.  A classic.  Also available at books.google.com.</biblio>\n\n        <!-- was [2] -->\n        <biblio type=\"raw\">Gallian, J. A. and Winters, S. <q>Modular Arithmetic in the Marketplace,</q> <title>The American Mathematical Monthly</title> <volume> 95</volume> (1988): 548<ndash />51.</biblio>\n\n        <!-- %Reference updated - TWJ 6/22/2010 -->\n        <!-- was [3] -->\n        <biblio type=\"raw\">Gallian, J. A. <title>Contemporary Abstract Algebra</title>. 7th ed. Brooks/Cole, Belmont, CA, 2009. </biblio>\n\n        <!-- %Reference updated - TWJ 6/22/2010 -->\n        <!-- was [4] -->\n        <biblio type=\"raw\"> Hall, M. <title>Theory of Groups</title>. 2nd ed. American Mathematical Society, Providence, 1959.</biblio>\n\n        <!-- %Reference updated - TWJ 6/22/2010 -->\n        <!-- was [5] -->\n        <biblio type=\"raw\">Kurosh, A. E. <title>The Theory of Groups</title>, vols. I and II. American Mathematical Society, Providence, 1979.</biblio>\n\n        <!-- %  The following two books are out of print and probably not readily available - TWJ 6/22/2010  -->\n        <!-- [6] MacDonald, I. D. The Theory of Groups. Krieger, London, 1988. -->\n        <!-- [7] Rose, J. S. A Course on Group Theory. Cambridge University Press, Cambridge, 1978. -->\n\n        <!-- %Reference updated 6/22/2010 - TWJ -->\n        <!-- was [6] -->\n        <biblio type=\"raw\">Rotman, J. J. <title>An Introduction to the Theory of Groups</title>. 4th ed. Springer, New York, 1995.</biblio>\n    </references>\n\n</chapter>\n"
  },
  {
    "path": "examples/sample-book/integers.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<chapter xml:id=\"integers\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>The Integers</title>\n\n    <introduction>\n        <p>The integers are the building blocks of mathematics. In this chapter we will investigate  the fundamental properties of the integers, including mathematical induction, the division algorithm, and the Fundamental Theorem of Arithmetic.</p>\n    </introduction>\n\n    <section xml:id=\"section-math-induction\">\n        <title>Mathematical Induction and Math in a Title <m>A\\notsubset B</m></title>\n\n        <p>Suppose we wish to show that\n            <md>1 + 2 + \\cdots + n = \\frac{n(n + 1)}{2}</md>\n        for any natural number <m>n</m>. This formula is easily  verified for small numbers such as <m>n = 1</m>, 2, 3, or 4, but it is impossible to verify for all natural numbers on a case-by-case basis.  To prove the formula true in general, a more generic method is required.</p>\n\n        <p>Suppose we have verified the equation for the first <m>n</m> cases.  We will attempt to show that we can generate the formula for the <m>(n + 1)</m>th case from this knowledge.  The formula is true for <m>n = 1</m> since \n            <md>1 = \\frac{1(1 + 1)}{2}</md>.\n        If we have verified the first <m>n</m> cases, then<md>\n            <mrow>1 + 2 + \\cdots + n + (n + 1) &amp; = \\frac{n(n + 1)}{2} + n + 1</mrow>\n            <mrow>&amp; = \\frac{n^2 + 3n + 2}{2}</mrow>\n            <mrow>&amp; = \\frac{(n + 1)[(n + 1) + 1]}{2}</mrow>\n        </md>.</p>\n\n        <p>This is exactly the formula for the <m>(n + 1)</m>th case.</p>\n\n        <p>This method of proof is known as <term>mathematical induction</term>.  Instead of attempting to verify a statement about some subset <m>S</m> of the positive integers <m>{\\mathbb N}</m> on a case-by-case basis, an impossible task if <m>S</m> is an infinite set, we give a specific proof for the smallest integer being considered, followed by a generic argument showing that if the statement holds for a given case, then it must also hold for the next  case in the sequence.  We summarize mathematical induction in the following axiom. </p>\n\n        <principle>\n            <title>First Principle of Mathematical Induction</title>\n            <idx><h>Induction</h><h>first principle of</h></idx>\n            <statement>\n                <p>Let <m>S(n)</m> be a statement about integers for  <m>n \\in {\\mathbb N}</m> and suppose <m>S(n_0)</m> is true for some integer <m>n_0</m>.  If for all integers <m>k</m> with <m>k \\geq n_0</m>, <m>S(k)</m> implies that <m>S(k+1)</m> is true, then <m>S(n)</m> is true for all integers <m>n</m> greater than or equal to <m>n_0</m>.</p>\n            </statement>\n        </principle>\n\n        <!-- wording change.  Suggested by P. Diethelm.  TWJ 22/4/2013 -->\n\n        <example xml:id=\"example-integers-induction-greater-than\">\n            <title>An Inequality for Powers of <m>2</m></title>\n            <p>For all integers <m>n \\geq 3</m>, <m>2^n \\gt n + 4</m>. Since\n                <md>8 = 2^3 \\gt 3 + 4 = 7</md>,\n            the statement is true for <m>n_0 = 3</m>.  Assume that <m>2^k \\gt k + 4</m> for <m>k \\geq 3</m>.  Then <m>2^{k + 1} = 2 \\cdot 2^{k} \\gt 2(k + 4)</m>.  But \n                <md>2(k + 4) = 2k + 8 \\gt k + 5 = (k + 1) + 4</md>\n            since <m>k</m> is positive.  Hence, by induction, the statement holds for all integers <m>n \\geq 3</m>.</p>\n        </example>\n\n\n        <example xml:id=\"example-integers-induction-divisible\">\n            <title>Some Integers Divisible by <m>9</m></title>\n            <p>Every integer <m>10^{n + 1} + 3 \\cdot 10^n + 5</m> is divisible by 9 for <m>n \\in {\\mathbb N}</m>.  For <m>n = 1</m>, \n                <md>10^{1 + 1} + 3 \\cdot 10 + 5 = 135 = 9 \\cdot 15</md>\n            is divisible by 9.  Suppose that <m>10^{k + 1} + 3 \\cdot 10^k + 5</m> is divisible by 9 for <m>k \\geq 1</m>.  Then<md>\n                <mrow>10^{(k + 1) + 1} + 3 \\cdot 10^{k + 1} + 5&amp; = 10^{k + 2} + 3 \\cdot 10^{k + 1} + 50 - 45</mrow>\n                <mrow>&amp; = 10 (10^{k + 1} + 3 \\cdot 10^{k} + 5) - 45</mrow>\n            </md>is divisible by 9.</p>\n        </example>\n\n        <example xml:id=\"example-integers-binomial-theorem\">\n            <title>The Binomial Theorem</title>\n            <p>We will prove the binomial theorem using mathematical induction; that is, <md>(a + b)^n = \\sum_{k = 0}^{n} \\binom{n}{k} a^k b^{n - k}</md>, where <m>a</m> and <m>b</m> are real numbers, <m>n \\in \\mathbb{N}</m>, and <md>\\binom{n}{k} = \\frac{n!}{k! (n - k)!}</md> is the binomial coefficient.  We first show that <md>\\binom{n + 1}{k} = \\binom{n}{k} + \\binom{n}{k - 1}</md>. This result follows from<md>\n                <mrow>\\binom{n}{k} + \\binom{n}{k - 1} &amp; = \\frac{n!}{k!(n - k)!} +\\frac{n!}{(k-1)!(n - k + 1)!}</mrow>\n                <mrow>&amp; = \\frac{(n + 1)!}{k!(n + 1 - k)!}</mrow>\n                <mrow>&amp; =\\binom{n + 1}{k}</mrow>\n            </md>.<notation>\n                <usage><m>n!</m></usage>\n                <description><m>n</m> factorial</description>\n            </notation><notation>\n                <usage><m>\\binom{n}{k}</m></usage>\n                <description>binomial coefficient <m>n!/(k!(n-k)!)</m></description>\n            </notation></p>\n\n            <p>If <m>n = 1</m>, the binomial theorem is easy to verify. Now assume that the result is true for <m>n</m> greater than or equal to 1.  Then<md>\n                <mrow>(a + b)^{n + 1} &amp; = (a + b)(a + b)^n</mrow>\n                <mrow>&amp; = (a + b) \\left( \\sum_{k = 0}^{n} \\binom{n}{k} a^k b^{n - k}\\right)</mrow>\n                <mrow>&amp; = \\sum_{k = 0}^{n} \\binom{n}{k} a^{k + 1} b^{n - k} + \\sum_{k = 0}^{n} \\binom{n}{k} a^k b^{n + 1 - k}</mrow>\n                <mrow>&amp; = a^{n + 1} + \\sum_{k = 1}^{n} \\binom{n}{k - 1} a^{k} b^{n + 1 - k} + \\sum_{k = 1}^{n} \\binom{n}{k}  a^k b^{n + 1 - k} + b^{n + 1}</mrow>\n                <mrow>&amp;  = a^{n + 1} + \\sum_{k = 1}^{n} \\left[ \\binom{n}{k - 1} + \\binom{n}{k} \\right]a^k b^{n + 1 - k} + b^{n + 1}</mrow>\n                <mrow>&amp;  = \\sum_{k = 0}^{n + 1}   \\binom{n + 1}{k} a^k b^{n + 1- k}</mrow>\n            </md>.</p>\n        </example>\n\n        <p>We have an equivalent statement of the Principle of Mathematical Induction that is often very useful.</p>\n\n        <principle>\n            <title>Second Principle of Mathematical Induction</title>\n            <idx><h>Induction</h><h>second principle of</h></idx>\n            <statement>\n                <p>Let <m>S(n)</m> be a statement about integers for  <m>n \\in {\\mathbb N}</m> and suppose <m>S(n_0)</m> is true for some integer <m>n_0</m>.  If <m>S(n_0), S(n_0 + 1), \\ldots, S(k)</m> imply that <m>S(k + 1)</m> for <m>k \\geq n_0</m>, then the statement <m>S(n)</m> is true for all integers <m>n \\geq n_0</m>. </p>\n            </statement>\n        </principle>\t\t\n\n        <!-- wording change.  Suggested by P. Diethelm.  TWJ 22/4/2013 -->\n\n        <p>A  nonempty subset <m>S</m> of <m>{\\mathbb Z}</m> is <term>well-ordered</term><idx><h>Well-ordered set</h></idx> if <m>S</m> contains a least element.  Notice that the set <m>{\\mathbb Z}</m> is not well-ordered since it does not contain a smallest element.  However, the natural numbers are well-ordered.</p> \n\n        <principle>\n            <title>Principle of Well-Ordering</title>\n            <statement>\n                <p>Every nonempty subset of the natural numbers is well-ordered.</p>\n            </statement>\n        </principle>\t\t\n\n        <p>The Principle of Well-Ordering is equivalent to the Principle of Mathematical Induction.</p> \n\n        <lemma xml:id=\"lemma-integers-smallest-number\">\n            <statement>\n                <p>The Principle of Mathematical Induction implies that <m>1</m> is the least positive natural number.</p>\n            </statement>\n            <proof>\n                <p>Let <m>S = \\{ n \\in {\\mathbb N} : n \\geq 1 \\}</m>. Then <m>1 \\in S</m>.  Now assume that <m>n \\in S</m>; that is, <m>n \\geq 1</m>.  Since <m>n+1 \\geq 1</m>, <m>n+ 1 \\in S</m>; hence, by induction, every natural number is greater than or equal to 1.</p>\n            </proof>\n        </lemma>\n\n        <!--  Theorem reworded for clarity.  TWJ 12/17/2011 -->\n        <!--  Suggested by K. Halasz and R. Beezer. -->\n\n        <theorem xml:id=\"theorem-integers-pmi-implies-pwo\">\n            <statement>\n                <p>The Principle of Mathematical Induction implies the Principle of Well-Ordering.  That is, every nonempty subset of <m>\\mathbb N</m> contains a least element.</p>\n            </statement>\n            <proof>\n                <p>We must show that if <m>S</m> is a nonempty subset of the natural numbers, then <m>S</m> contains a least element.  If <m>S</m> contains 1, then the theorem is true by <xref ref=\"lemma-integers-smallest-number\" />.  Assume that if <m>S</m> contains an integer <m>k</m> such that <m>1 \\leq k \\leq n</m>, then <m>S</m> contains a least element.  We will show that if a set <m>S</m> contains an integer less than or equal to <m>n + 1</m>, then <m>S</m> has a least element.  If <m>S</m> does not contain an integer less than <m>n+1</m>, then <m>n+1</m> is the smallest integer in <m>S</m>.  Otherwise, since <m>S</m> is nonempty, <m>S</m> must contain an integer less than or equal to <m>n</m>. In this case, by induction, <m>S</m> contains a least element.</p>\n            </proof>\n        </theorem>\n\n        <!-- wording change.  Suggested by P. Diethelm.  TWJ 22/4/2013 -->\n\n        <p>Induction can also be very useful in formulating definitions. For instance, there are two ways to define <m>n!</m>, the factorial of a positive integer <m>n</m>.<ul>\n            <li><p>The <em>explicit</em> definition: <m>n! = 1 \\cdot 2 \\cdot 3 \\cdots (n - 1) \\cdot n</m>.</p></li>\n            <li><p>The <em>inductive</em> or <em>recursive</em> definition: <m>1! = 1</m> and <m>n! = n(n - 1)!</m> for <m>n \\gt 1</m>.</p></li>\n        </ul></p>\n\n        <p>Every good mathematician or computer scientist knows that looking at problems recursively, as opposed to explicitly, often results in better understanding of complex issues.</p>\n    </section>\n\n    <section xml:id=\"section-division-algorithm\">\n        <title>The Division Algorithm</title>\n\n        <introduction>\n\n            <p>An application of the Principle of Well-Ordering that we will use often is the division algorithm.</p> \n\n            <theorem xml:id=\"theorem-integers-division_algorithm\">\n                <title>Division Algorithm</title>\n                <idx><h>Division algorithm</h><h>for integers</h></idx>\n                <statement>\n                    <p>Let <m>a</m> and <m>b</m> be integers, with <m>b \\gt 0</m>.  Then there exist unique integers <m>q</m> and <m>r</m> such that \n                        <md>a = bq + r</md>\n                    where <m>0 \\leq r \\lt b</m>.</p>\n                </statement>\n                <proof>\n                    <p>This is a perfect example of the existence-and-uniqueness type of proof.  We must first prove that the numbers <m>q</m> and <m>r</m> actually  exist. Then we must show that if  <m>q'</m> and <m>r'</m> are two other such numbers, then <m>q = q'</m> and <m>r = r'</m>.</p>\n\n                    <p><em>Existence of <m>q</m> and <m>r</m>.</em> Let\n                        <md>S = \\{ a - bk : k \\in {\\mathbb Z} \\text{ and } a - bk \\geq 0 \\}</md>.\n                    If <m>0 \\in S</m>, then <m>b</m> divides <m>a</m>, and  we can let <m>q = a/b</m> and <m>r = 0</m>.  If <m>0 \\notin S</m>, we can use the Well-Ordering Principle.  We must first show that <m>S</m> is nonempty.  If <m>a \\gt 0</m>, then <m>a - b \\cdot 0 \\in S</m>. If <m>a \\lt 0</m>, then <m>a - b(2a) = a(1 - 2b) \\in S</m>.  In either case <m>S \\neq \\emptyset</m>.  By the Well-Ordering Principle, <m>S</m> must have a smallest member, say <m>r = a - bq</m>. Therefore, <m>a = bq + r</m>, <m>r \\geq 0</m>. We now show that <m>r \\lt b</m>. Suppose that <m>r \\gt b</m>. Then   \n                        <md>a - b(q + 1)= a - bq - b = r - b \\gt 0</md>.\n                    In this case we would have <m>a - b(q + 1)</m> in the set <m>S</m>. But then <m>a - b(q + 1) \\lt a - bq</m>, which would contradict the fact that <m>r = a - bq</m> is the smallest member  of <m>S</m>. So <m>r \\leq b</m>.  Since <m>0 \\notin S</m>, <m>r \\neq b</m> and so <m>r \\lt b</m>.</p>\n\n                    <p><em>Uniqueness of <m>q</m> and <m>r</m>.</em> Suppose there exist integers <m>r</m>, <m>r'</m>, <m>q</m>, and <m>q'</m> such that\n                        <md>a = bq + r, 0 \\leq r \\lt b \\quad \\text{and}\\quad a = bq' + r', 0 \\leq r' \\lt b</md>.\n                    Then <m> bq + r =  bq' + r'</m>.  Assume that <m>r' \\geq r</m>.  From the last equation we have <m>b(q - q') = r' - r</m>; therefore, <m>b</m> must divide <m>r' - r</m> and <m>0 \\leq r'- r \\leq r' \\lt b</m>.  This is possible only if <m>r' - r = 0</m>.  Hence, <m>r = r'</m> and  <m>q = q'</m>.</p>\n                </proof>\n            </theorem>\n\n            <p>Let <m>a</m> and <m>b</m> be integers.  If <m>b = ak</m> for some integer <m>k</m>, we write <m>a \\mid b</m>.  An integer <m>d</m> is called a <term>common divisor</term> of <m>a</m> and <m>b</m> if <m>d \\mid a</m> and <m>d \\mid b</m>.  The <term>greatest common divisor</term><idx><h>Greatest common divisor</h><h>of two integers</h></idx> of integers <m>a</m> and <m>b</m> is a positive integer <m>d</m> such that <m>d</m> is a common divisor  of <m>a</m> and <m>b</m> and if <m>d'</m> is any other common divisor of <m>a</m> and <m>b</m>, then <m>d' \\mid d</m>. <notation><usage><m>a \\mid b</m></usage><description><m>a</m> divides <m>b</m></description></notation><notation><usage><m>\\gcd(a, b)</m></usage><description>greatest common divisor of <m>a</m> and <m>b</m></description></notation>  We write <m>d = \\gcd(a, b)</m>; for example, <m>\\gcd( 24, 36) = 12</m> and <m>\\gcd(120, 102) = 6</m>.  We say that two integers <m>a</m> and <m>b</m> are <term>relatively prime</term> if <m>\\gcd( a, b ) = 1</m>.</p>\n\n            <theorem xml:id=\"theorem-integers-gcd\">\n                <statement>\n                    <p>Let <m>a</m> and <m>b</m> be nonzero integers. Then there exist integers <m>r</m> and <m>s</m> such that\n                        <md>\\gcd( a, b) = ar + bs</md>.\n                    Furthermore, the greatest common divisor of <m>a</m> and <m>b</m> is unique.</p>\n                </statement>\n                <proof>\n                    <p>Let\n                        <md>S = \\{ am + bn : m, n \\in {\\mathbb Z} \\text{ and } am + bn \\gt 0 \\}</md>.\n                    Clearly, the set <m>S</m> is nonempty; hence, by the Well-Ordering Principle <m>S</m> must have a smallest member, say <m>d = ar + bs</m>.  We claim that <m>d = \\gcd( a, b)</m>.  Write <m>a = dq + r'</m> where <m>0 \\leq r' \\lt d</m>. If <m>r' \\gt 0</m>, then<md>\n                        <!-- r changed to r' - TWJ 1/31/2011 -->\n                        <mrow>r'&amp; = a - dq</mrow>\n                        <mrow>&amp; = a - (ar + bs)q</mrow>\n                        <mrow>&amp; = a - arq - bsq</mrow>\n                        <mrow>&amp; = a( 1 - rq ) + b( -sq )</mrow>\n                    </md>,  which is in <m>S</m>.  But this would contradict the fact that <m>d</m> is the smallest member of <m>S</m>.  Hence, <m>r' = 0</m> and <m>d</m> divides <m>a</m>.  A similar argument shows that <m>d</m> divides <m>b</m>.  Therefore, <m>d</m> is a common divisor of <m>a</m> and <m>b</m>.</p>\n\n                    <p>Suppose that <m>d'</m> is another common divisor of <m>a</m> and <m>b</m>, and we want to show that <m>d' \\mid d</m>. If we let <m>a = d'h</m> and <m>b = d'k</m>, then\n                        <md>d = ar + bs = d'hr + d'ks = d'(hr + ks)</md>.\n                    So <m>d'</m> must divide <m>d</m>. Hence, <m>d</m> must be the unique greatest common divisor of <m>a</m> and <m>b</m>.</p>\n                </proof>\n                <!-- Notation error in proof fixed (pointed out by Rocco Rossi) - TWJ 9/13/2010 -->\n            </theorem>\n\n            <corollary xml:id=\"corollary-integers-coprime\">\n                <statement>\n                    <p>Let <m>a</m> and <m>b</m> be two integers that are relatively prime. Then there exist  integers <m>r</m> and <m>s</m> such that <m>ar + bs = 1</m>.</p>\n                </statement>\n            </corollary>\n\n        </introduction>\n\n        <subsection>\n            <title>The Euclidean Algorithm</title>\n\n            <p>Among other things, <xref ref=\"theorem-integers-gcd\" /> allows us to compute the greatest common divisor of two integers.</p>\n\n            <example xml:id=\"example-integers-gcd\">\n                <title>Greatest Common Divisor of Two Integers</title>\n                <p>Let us compute the greatest common divisor of <m>945</m> and <m>2415</m>.  First observe that<md>\n                    <mrow>2415 &amp; = 945 \\cdot 2 + 525</mrow>\n                    <mrow>945 &amp; = 525 \\cdot 1 + 420</mrow>\n                    <mrow>525 &amp; = 420 \\cdot 1 + 105</mrow>\n                    <mrow>420 &amp; = 105 \\cdot 4 + 0</mrow>\n                </md>.</p>\n\n                <p>Reversing our steps, 105 divides 420, 105 divides 525, 105 divides 945, and 105 divides 2415.  Hence, 105 divides both 945 and 2415.  If <m>d</m> were another common divisor of 945 and 2415, then <m>d</m> would also have to divide 105.  Therefore, <m>\\gcd( 945, 2415 ) = 105</m>.</p>\n\n                <p>If we work backward through the above sequence of equations, we can also obtain numbers <m>r</m> and <m>s</m> such that <m>945 r + 2415 s = 105</m>.  Observe that<md>\n                    <mrow>105 &amp; = 525 + (-1) \\cdot 420</mrow>\n                    <mrow>&amp; = 525 + (-1) \\cdot [945 + (-1) \\cdot 525]</mrow>\n                    <mrow>&amp; = 2 \\cdot 525 + (-1) \\cdot 945</mrow>\n                    <mrow>&amp; = 2 \\cdot [2415 + (-2) \\cdot 945] + (-1) \\cdot 945</mrow>\n                    <mrow>&amp; = 2 \\cdot 2415 + (-5) \\cdot 945</mrow>\n                </md>.</p>\n\n                <p>So <m>r = -5</m> and <m>s= 2</m>.  Notice that <m>r</m> and <m>s</m> are not unique, since <m>r = 41</m> and <m>s = -16</m> would also work.</p>\n            </example>\n\n            <p>To compute <m>\\gcd(a,b) = d</m>, we are using repeated divisions to obtain a decreasing sequence of positive integers <m>r_1 \\gt r_2 \\gt \\cdots \\gt r_n = d</m>; that is,<md>\n                <mrow>b &amp; = a q_1 + r_1</mrow>\n                <mrow>a &amp; = r_1 q_2 + r_2</mrow>\n                <mrow>r_1 &amp; = r_2 q_3 + r_3</mrow>\n                <mrow>&amp; \\vdots </mrow>\n                <mrow>r_{n - 2} &amp; = r_{n - 1} q_{n} + r_{n}</mrow>\n                <mrow>r_{n - 1} &amp; = r_n q_{n + 1}</mrow>\n            </md>.</p>\n\n            <p>To find <m>r</m> and <m>s</m> such that <m>ar + bs = d</m>, we begin with this last equation and substitute results obtained from the previous equations:<md>\n                <mrow>d &amp; = r_n</mrow>\n                <mrow>&amp; = r_{n - 2} - r_{n - 1} q_n</mrow>\n                <mrow>&amp; = r_{n - 2} - q_n( r_{n - 3} - q_{n - 1} r_{n - 2} )</mrow>\n                <mrow>&amp; = -q_n r_{n - 3} + ( 1+ q_n q_{n-1} ) r_{n - 2}</mrow>\n                <mrow>&amp; \\vdots </mrow>\n                <mrow>&amp; = ra + sb</mrow>\n            </md>.</p>\n\n            <p>The algorithm that we have just used to find the greatest common divisor <m>d</m> of two integers <m>a</m> and <m>b</m> and to write <m>d</m> as the linear combination of <m>a</m> and <m>b</m> is known as the <term>Euclidean algorithm</term><idx><h>Euclidean algorithm</h></idx><idx><h>Algorithm</h><h>Euclidean</h></idx>.</p> \n\n        </subsection>\n\n        <subsection>\n            <title>Prime Numbers</title>\n\n            <p>Let <m>p</m> be an integer such that <m>p \\gt 1</m>.  We say that <m>p</m> is a <term>prime number</term><idx><h>Prime integer</h></idx>, or simply <m>p</m> is <term>prime</term>, if the only positive numbers that divide <m>p</m> are 1 and <m>p</m> itself.  An integer <m>n \\gt 1</m> that is not prime is said to be <term>composite</term><idx><h>Composite integer</h></idx>.</p>\n\n            <lemma xml:id=\"theorem-integers-prime-divisor\">\n                <creator>Euclid</creator>\n\n                <statement>\n                    <p>Let <m>a</m> and <m>b</m> be integers and <m>p</m> be a prime number.  If <m>p \\mid ab</m>, then either <m>p \\mid a</m> or <m>p \\mid b</m>.</p>\n                </statement>\n                <proof>\n                    <p>Suppose that <m>p</m> does not divide <m>a</m>.  We must show that <m>p \\mid b</m>. Since <m>\\gcd( a, p ) = 1</m>, there exist integers <m>r</m> and <m>s</m> such that <m>ar + ps = 1</m>.  So \n                        <md>b = b(ar + ps) = (ab)r + p(bs)</md>.\n                    Since <m>p</m> divides both <m>ab</m> and itself, <m>p</m> must divide <m>b = (ab)r + p(bs)</m>.</p>\n                </proof>\n            </lemma>\n\n            <theorem xml:id=\"theorem-integers-infinite-primes\">\n                <creator>Euclid</creator>\n\n                <statement>\n                    <p>There exist an infinite number of primes.</p>\n                </statement>\n                <proof>\n                    <p>We will prove this theorem by contradiction.  Suppose that there are only a finite number of primes, say <m>p_1, p_2, \\ldots, p_n</m>.  Let <m>P = p_1  p_2  \\cdots  p_n + 1</m>.    Then <m>P</m> must be divisible by some <m>p_i</m> for <m>1 \\leq i \\leq n</m>. In this  case, <m>p_i</m> must divide <m>P - p_1 p_2 \\cdots p_n = 1</m>, which is a contradiction.  Hence, either <m>P</m> is prime or there exists an additional prime number <m>p \\neq p_i</m> that divides <m>P</m>.</p>\n                </proof>\n            </theorem>\n\n            <!-- Error in proof fixed.  Suggested by R. Rossi.  TWJ 12/19/2011 -->\n\n            <theorem xml:id=\"theorem-fund-theorem-arithmetic\">\n                <title>Fundamental Theorem of Arithmetic</title>\n                <idx><h>Fundamental Theorem</h><h>of Arithmetic</h></idx>\n                <statement>\n                    <p>Let <m>n</m> be an integer such that <m>n \\gt 1</m>. Then\n                        <md>n = p_1 p_2 \\cdots p_k</md>,\n                    where <m>p_1, \\ldots, p_k</m> are  primes (not necessarily distinct).  Furthermore, this factorization is unique; that is, if \n                        <md>n = q_1 q_2 \\cdots q_l</md>,\n                    then <m>k = l</m> and the <m>q_i</m>'s are just the <m>p_i</m>'s rearranged.</p>\n                </statement>\n                <proof>\n                    <p><em>Uniqueness.</em>  To show uniqueness we will use induction on <m>n</m>. The theorem is certainly true for <m>n = 2</m> since in this case <m>n</m> is prime.  Now assume that the result holds for all integers <m>m</m> such that <m>1 \\leq m \\lt n</m>, and \n                        <md>n = p_1 p_2 \\cdots p_k = q_1 q_2 \\cdots q_l</md>,\n                    where <m>p_1 \\leq p_2 \\leq \\cdots \\leq p_k</m> and <m>q_1 \\leq q_2 \\leq \\cdots \\leq q_l</m>. By <xref ref=\"theorem-integers-prime-divisor\" />, <m>p_1  \\mid  q_i</m> for some <m>i = 1, \\ldots, l</m> and <m>q_1  \\mid  p_j</m> for some <m>j = 1, \\ldots, k</m>.  Since all of the <m>p_i</m>'s and <m>q_i</m>'s are prime, <m>p_1 = q_i</m> and  <m>q_1 = p_j</m>. Hence, <m>p_1 = q_1</m> since <m>p_1 \\leq p_j = q_1 \\leq q_i = p_1</m>.  By the induction hypothesis, \n                        <md>n' = p_2 \\cdots p_k = q_2 \\cdots q_l</md>\n                    has a unique factorization.  Hence, <m>k = l</m> and <m>q_i = p_i</m> for <m>i = 1, \\ldots, k</m>.</p>\n\n                    <p><em>Existence.</em> To show existence, suppose that there is some integer that cannot be written as the product of primes.  Let <m>S</m> be the set of all such numbers.  By the Principle of Well-Ordering, <m>S</m> has a smallest number, say <m>a</m>.  If the only positive factors of <m>a</m> are <m>a</m> and 1, then <m>a</m> is prime, which is a contradiction.  Hence, <m>a = a_1 a_2</m> where <m>1 \\lt a_1 \\lt a</m> and <m>1 \\lt a_2 \\lt a</m>.  Neither <m>a_1\\in S</m> nor <m>a_2 \\in S</m>, since <m>a</m> is the smallest element in <m>S</m>.  So<md>\n                        <mrow>a_1 &amp; = p_1 \\cdots p_r</mrow>\n                        <mrow>a_2 &amp; = q_1 \\cdots q_s</mrow>\n                    </md>.</p>\n\n                    <p>Therefore, <md>a = a_1 a_2 = p_1 \\cdots p_r q_1 \\cdots q_s</md>.  So <m>a \\notin S</m>, which is a contradiction.</p>\n                </proof>\n            </theorem>\n\n        </subsection>\n\n        <subsection>\n            <title>Historical Note</title>\n\n            <p>Prime numbers were first studied by the ancient Greeks.  Two important results from antiquity are Euclid's proof that an infinite number of primes exist and the Sieve of Eratosthenes, a method of computing all of the prime numbers less than a fixed positive integer <m>n</m>.  One problem in number theory is to find a function <m>f</m> such that <m>f(n)</m> is prime for each integer <m>n</m>. Pierre Fermat (1601?<ndash />1665) conjectured that <m>2^{2^n} + 1</m> was prime for all <m>n</m>, but later it was shown by Leonhard Euler (1707<ndash />1783) that \n                <md>2^{2^5} + 1 = \\text{4,294,967,297}</md>\n            is a composite number. One of the many unproven conjectures about prime numbers is Goldbach's Conjecture.  In a letter to Euler in 1742, Christian Goldbach stated the conjecture that every even integer with the exception of 2 seemed to be the sum of two primes:  <m>4 = 2 + 2</m>, <m>6 = 3 + 3</m>, <m>8 =3 + 5</m>, <m>\\ldots</m>.  Although the conjecture has been verified for the numbers up through <m>4 \\times 10^{18}</m>, it has yet to be proven in general.  Since prime numbers play an important role in public key cryptography, there is currently a great deal of interest in determining whether or not a large number is prime.</p>\n\n            <xi:include href=\"./sage/integers-info.xml\" />\n\n        </subsection>\n\n        <!--Updated the numbers for which Goldbach's conjecture has been verified.  TWJ 4/7/2014-->\n\n    </section>\n\n    <xi:include href=\"./sage/integers-sage.xml\" />\n\n    <xi:include href=\"./exercises/integers.xml\" />\n\n    <exercises>\n        <title>Programming Exercises</title>\n\n        <exercise xml:id=\"sieve-primes\">\n            <title>The Sieve of Eratosthenes</title>\n            <idx><h>Sieve of Eratosthenes</h></idx>  \n            <statement>\n                <p>One method of computing all of the prime numbers less than a certain fixed positive integer <m>N</m> is to list all of the numbers <m>n</m> such that <m>1 \\lt n \\lt N</m>.  Begin by eliminating all of the multiples of 2.  Next eliminate all of the multiples of 3. Now eliminate all of the  multiples of 5.  Notice that 4 has already been crossed out.  Continue in this manner, noticing that we do not have to go all the way to <m>N</m>; it suffices to stop at <m>\\sqrt{N}</m>. Using this method, compute all of the prime numbers less than <m>N = 250</m>.  We can also use this method to find all of the integers that are relatively prime to an integer <m>N</m>.  Simply eliminate the prime factors of <m>N</m> and all of their multiples.  Using this method, find all of the numbers that are relatively prime to <m>N= 120</m>.  Using the Sieve of Eratosthenes, write a program that will compute all of the primes less than an integer <m>N</m>. </p>\n            </statement>\n        </exercise>\n\n        <exercise>\n            <idx><h>Ackermann's function</h></idx>\n            <statement>\n                <p>Let <m>{\\mathbb N}^0 = {\\mathbb N} \\cup \\{ 0 \\}</m>. Ackermann's function is the function <m>A :{\\mathbb N}^0 \\times {\\mathbb N}^0 \\rightarrow {\\mathbb N}^0</m> defined by the equations<md>\n                    <mrow>A(0, y) &amp; = y + 1</mrow>\n                    <mrow>A(x + 1, 0) &amp; = A(x, 1)</mrow>\n                    <mrow>A(x + 1, y + 1) &amp; = A(x, A(x + 1, y))</mrow>\n                </md>.</p>\n\n                <p>Use this definition to compute <m>A(3, 1)</m>.  Write a program to evaluate Ackermann's function.  Modify the  program to count the number of statements executed in the program when Ackermann's function is evaluated.  How many statements are executed in the evaluation of <m>A(4, 1)</m>?  What about <m>A(5, 1)</m>?</p>\n            </statement>\n        </exercise>\n\n        <exercise>\n            <statement>\n                <p>Write a computer program that will implement the Euclidean algorithm.  The program should accept two positive integers <m>a</m> and <m>b</m> as input and should output <m>\\gcd( a,b)</m> as well as integers <m>r</m> and <m>s</m> such that \n                    <md>\\gcd( a,b) = ra + sb</md>.</p>\n            </statement>\n        </exercise>\n\n    </exercises>\n\n    <xi:include href=\"./sage/integers-sage-exercises.xml\" />\n\n    <references>\n        <title>References and Suggested Readings</title>\n        <!-- References updated - TWJ 5/4/2010 -->\n\n        <!-- <p>References [2], [3], and [4] are good sources for elementary number theory.</p> -->\n\n        <biblio type=\"raw\"> <!-- was [1] -->\n        Brookshear, J. G. <title>Theory of Computation: Formal Languages, Automata, and Complexity</title>.  Benjamin/Cummings, Redwood City, CA, 1989. Shows the relationships of the theoretical aspects of computer science to set theory and the integers.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [2] -->\n        <!-- Updated - TWJ 5/4/2010 -->\n        Hardy, G. H. and Wright, E. M. <title>An Introduction to the Theory of Numbers</title>.  6th ed. Oxford University Press, New York, 2008. </biblio>\n\n        <biblio type=\"raw\"> <!-- was [3] -->\n        <!-- Checked reference - TWJ 5/4/2010 -->\n        Niven, I. and Zuckerman, H. S. <title>An Introduction to the Theory of Numbers</title>.  5th ed. Wiley, New York, 1991.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [4] -->\n        <!-- Checked reference - TWJ 5/4/2010 -->\n        Vanden Eynden, C. <title>Elementary Number Theory</title>. 2nd ed.  Waveland Press, Long Grove IL, 2001.</biblio>\n\n    </references>\n\n</chapter>\n"
  },
  {
    "path": "examples/sample-book/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project ptx-version=\"2\" source=\".\" publication=\".\">\n  <targets>\n    <target name=\"html\"\n      format=\"html\"\n      source=\"sample-book.xml\"\n      publication=\"publication-noparts.xml\" />\n    <target name=\"runestone\"\n      format=\"html\"\n      source=\"sample-book.xml\"\n      publication=\"publication-runestone-academy.xml\">\n      <!-- <stringparams debug.rs.dev=\"yes\" /> -->\n    </target>\n    <target name=\"pdf\"\n      format=\"pdf\"\n      source=\"sample-book.xml\"\n      publication=\"publication-noparts.xml\" />\n    <target name=\"latex\"\n      format=\"latex\"\n      source=\"sample-book.xml\"\n      publication=\"publication-noparts.xml\" />\n\n  </targets>\n</project>\n"
  },
  {
    "path": "examples/sample-book/publication-decorative.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is the \"decorative\" version for use when testing or -->\n<!-- building samples for the website, keep in sync with the  -->\n<!-- \"structural\" and \"noparts\" versions                      -->\n\n<publication>\n\n    <!-- managed directories, standard directory names in source  -->\n    <source>\n        <directories external=\"ext\" generated=\"gen\"/>\n        <version include=\"with-parts\"/>\n    </source>\n\n    <!-- EPUB-Specific Options -->\n    <!-- Specification of image locations, relative to main source file -->\n    <!-- NB: EPUB conversion needs attention -->\n    <!-- <epub cover=\"images/cover_aata_2014.png\" image-directory=\"images\"/> -->\n\n    <numbering>\n        <!-- defaults for a book with decorative parts -->\n        <divisions part-structure=\"decorative\"/>\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- Turn on a Runestone ActiveCode window, both for show, -->\n        <!-- and for testing purposes                              -->\n        <calculator activecode=\"python\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"frontmatter\", so this is  -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"sample-book\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version             -->\n        <!-- NB: the \"noparts\" version, for no particular reason   -->\n        <!--     could migrate to different versions               -->\n        <baseurl href=\"https://pretextbook.org/examples/noparts/decorative/html/\"/>\n        <!-- As of 2023-02-27 inline exercises with ActiveCode,    -->\n        <!-- etc would not render correctly, so we turn off their  -->\n        <!-- default knowlization.                                 -->\n        <knowl exercise-inline=\"no\"/>\n        <!-- A similar form of information-hiding is the tabbed    -->\n        <!-- viewer.  The elections here are meant to illustrate   -->\n        <!-- this, somewhat, in the sample book.                   -->\n        <exercises tabbed-tasks=\"inline project\"/>\n        <!-- Test-drive focused ToC just in sample book            -->\n        <tableofcontents focused=\"yes\"/>\n        <!-- Specify the theme for the HTML.                       -->\n        <!-- See the guide for options                             -->\n        <css theme=\"default-modern\" palette=\"blue-red\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <search variant=\"default\"/>\n    </html>\n\n    <latex>\n        <cover front=\"original-front-cover-aata.pdf\" back=\"plain-back-cover-aata.pdf\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-book/publication-noparts.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is the \"noparts\" version for use when testing or     -->\n<!-- building samples for the website, keep in sync with the   -->\n<!-- \"structural\", \"decorative\" and \"solution-manual\" versions -->\n\n<publication>\n\n    <!-- managed directories, standard directory names in source  -->\n    <source>\n        <directories external=\"ext\" generated=\"gen\"/>\n        <version include=\"no-parts\"/>\n    </source>\n\n    <!-- EPUB-Specific Options -->\n    <!-- Specification of image locations, relative to main source file -->\n    <!-- NB: EPUB conversion needs attention -->\n    <!-- <epub cover=\"images/cover_aata_2014.png\" image-directory=\"images\"/> -->\n\n    <numbering>\n        <!-- we just run with defaults for a book -->\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <!-- Switch @short-answer-responses to \"always\" to have writable  -->\n    <!-- text boxes even in output where they cannot be graded.       -->\n    <html short-answer-responses=\"graded\">\n        <!-- Turn on a Runestone ActiveCode window, both for show, -->\n        <!-- and for testing purposes                              -->\n        <calculator activecode=\"python\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"frontmatter\", so this is  -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"sample-book\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version             -->\n        <!-- NB: the \"noparts\" version, for no particular reason   -->\n        <!--     could migrate to different versions               -->\n        <baseurl href=\"https://pretextbook.org/examples/noparts/decorative/html/\"/>\n        <!-- As of 2023-02-27 inline exercises with ActiveCode,    -->\n        <!-- etc would not render correctly, so we turn off their  -->\n        <!-- default knowlization.                                 -->\n        <knowl exercise-inline=\"no\"/>\n        <!-- A similar form of information-hiding is the tabbed    -->\n        <!-- viewer.  The elections here are meant to illustrate   -->\n        <!-- this, somewhat, in the sample book.                   -->\n        <exercises tabbed-tasks=\"inline project\"/>\n        <!-- Test-drive focused ToC just in sample book            -->\n        <tableofcontents focused=\"yes\"/>\n        <!-- Specify the theme for the HTML.                       -->\n        <!-- See the guide for options                             -->\n        <css theme=\"default-modern\" palette=\"blue-red\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <search variant=\"default\"/>\n    </html>\n\n    <latex>\n        <cover front=\"original-front-cover-aata.pdf\" back=\"plain-back-cover-aata.pdf\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-book/publication-runestone-academy.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is the \"noparts\" version for use when testing or     -->\n<!-- building samples for the website, keep in sync with the   -->\n<!-- \"structural\", \"decorative\" and \"solution-manual\" versions -->\n\n<publication>\n\n    <!-- managed directories, standard directory names in source  -->\n    <source>\n        <directories external=\"ext\" generated=\"gen\"/>\n        <version include=\"no-parts\"/>\n    </source>\n\n    <!-- EPUB-Specific Options -->\n    <!-- Specification of image locations, relative to main source file -->\n    <!-- NB: EPUB conversion needs attention -->\n    <!-- <epub cover=\"images/cover_aata_2014.png\" image-directory=\"images\"/> -->\n\n    <numbering>\n        <!-- we just run with defaults for a book -->\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <html>\n    </html>\n\n    <html>\n        <!-- Turn on a Runestone ActiveCode window, both for show, -->\n        <!-- and for testing purposes.  This is not strictly       -->\n        <!-- necessary, due to this publisher file specifying a    -->\n        <!-- build for a Runestone server.  But the default is     -->\n        <!-- Python and we are specifying C++.                     -->\n        <calculator activecode=\"cpp\"/>\n        <!-- build for a Runestone server, not viewable otherwise  -->\n        <platform host=\"runestone\"/>\n        <!-- knowled checkpoints interfere with ActiveCode         -->\n        <!-- problems, perhaps keep this anyway, but knowl         -->\n        <!-- some limited range for testing                        -->\n        <knowl exercise-inline=\"no\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"frontmatter\", so this is  -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"sample-book\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version             -->\n        <!-- NB: the \"noparts\" version, for no particular reason   -->\n        <!--     could migrate to different versions               -->\n        <baseurl href=\"https://pretextbook.org/examples/noparts/decorative/html/\"/>\n        <!-- As of 2023-02-27 inline exercises with ActiveCode,    -->\n        <!-- etc would not render correctly, so we turn off their  -->\n        <!-- default knowlization.                                 -->\n        <knowl exercise-inline=\"no\"/>\n        <!-- Specify the theme for the HTML.                       -->\n        <!-- See the guide for options                             -->\n        <css theme=\"salem\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- native search with Javascript -->\n        <search variant=\"default\"/>\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-book/publication-solution-manual.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is the \"solution manual\" version for use when testing -->\n<!-- or building samples for the website, keep in sync with the -->\n<!-- \"nopart\" versions                                          -->\n\n<publication>\n\n    <!-- managed directories, standard directory names in source  -->\n    <!-- Separate main file, no version support needed, parts are -->\n    <!-- not used, and a separate preface is used.  Only chapter  -->\n    <!-- contents get recycled.                                   -->\n    <source>\n        <directories external=\"ext\" generated=\"gen\"/>\n        <version include=\"no-parts\"/>\n    </source>\n\n    <!-- EPUB-Specific Options -->\n    <!-- Specification of image locations, relative to main source file -->\n    <epub cover=\"images/cover_aata_2014.png\" image-directory=\"images\"/>\n\n    <!-- These switches default to \"yes\" if not set, so -->\n    <!-- we explicitly set most to \"no\" and only set    -->\n    <!-- \"divisional hint and solution\" to \"yes\".       -->\n    <common>\n        <exercise-inline     statement=\"no\"  hint=\"no\"  answer=\"no\"  solution=\"no\"/>\n        <exercise-divisional statement=\"yes\" hint=\"yes\" answer=\"yes\" solution=\"no\"/>\n        <exercise-worksheet  statement=\"yes\" hint=\"no\"  answer=\"no\"  solution=\"no\"/>\n        <exercise-reading    statement=\"yes\" hint=\"no\"  answer=\"no\"  solution=\"no\"/>\n        <exercise-project    statement=\"no\"  hint=\"no\"  answer=\"no\"  solution=\"no\"/>\n    </common>\n\n    <numbering>\n        <!-- we just run with defaults for a book -->\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"frontmatter\", so this is  -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"sample-book\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version             -->\n        <!-- NB: the \"noparts\" version, for no particular reason   -->\n        <!--     could migrate to different versions               -->\n        <baseurl href=\"https://pretextbook.org/examples/noparts/decorative/html/\"/>\n        <!-- Specify the theme for the HTML.                       -->\n        <!-- See the guide for options                             -->\n        <css theme=\"default-modern\" palette=\"blue-red\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <!-- <search google-cx=\"\"/> -->\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-book/publication-structural.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is the \"structural\" version for use when testing or -->\n<!-- building samples for the website, keep in sync with the  -->\n<!-- \"decorative\" and \"noparts\" versions                      -->\n\n<publication>\n\n    <!-- managed directories, standard directory names in source  -->\n    <source>\n        <directories external=\"ext\" generated=\"gen\"/>\n        <version include=\"with-parts\"/>\n    </source>\n\n    <!-- EPUB-Specific Options -->\n    <!-- Specification of image locations, relative to main source file -->\n    <!-- NB: EPUB conversion needs attention -->\n    <!-- <epub cover=\"images/cover_aata_2014.png\" image-directory=\"images\"/> -->\n\n    <numbering>\n        <!-- defaults for a book with structural parts -->\n        <divisions part-structure=\"structural\"/>\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- Turn on a Runestone ActiveCode window, both for show, -->\n        <!-- and for testing purposes                              -->\n        <calculator activecode=\"python\"/>\n        <calculator model=\"geogebra-classic\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"frontmatter\", so this is  -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"sample-book\"/>\n        <!-- As of 2023-02-27 inline exercises with ActiveCode,    -->\n        <!-- etc would not render correctly, so we turn off their  -->\n        <!-- default knowlization.                                 -->\n        <knowl exercise-inline=\"no\"/>\n        <!-- A similar form of information-hiding is the tabbed    -->\n        <!-- viewer.  The elections here are meant to illustrate   -->\n        <!-- this, somewhat, in the sample book.                   -->\n        <exercises tabbed-tasks=\"inline project\"/>\n        <!-- Test-drive focused ToC just in sample book            -->\n        <tableofcontents focused=\"yes\"/>\n        <!-- Specify the theme for the HTML.                       -->\n        <!-- See the guide for options                             -->\n        <css theme=\"default-modern\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- native search with Javascript -->\n        <search variant=\"default\"/>\n    </html>\n\n    <latex>\n        <cover front=\"original-front-cover-aata.pdf\" back=\"plain-back-cover-aata.pdf\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-book/rune-examples/activecode-ambles.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<listing>\n    <title>A Python program with preamble/postamble</title>\n    <program interactive='activecode' language=\"python\" label=\"program-activecode-python-ambles\" include-source=\"yes\">\n        <preamble>\n        def add(a, b):\n        </preamble>\n        <code>\n            # TODO - complete the add function\n\n        </code>\n        <postamble>\n        # Use the function\n        result = add(2, 3)\n        if result == 5:\n            print(\"Test passed\")\n        else:\n            print(\"Test failed\")\n        </postamble>\n    </program>\n</listing>\n"
  },
  {
    "path": "examples/sample-book/rune-examples/activecode-unittest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<exercise xml:id=\"unit-test-example\" label=\"coding-exercise-python-unit-test\" include-source=\"yes\">\n  <title>Coding Exercise, with Unit Tests</title>\n\n  <statement>\n      <p>Fix the following code so that it always correctly adds two numbers. [Ed. Unit test support is experimental.]</p>\n  </statement>\n  <program interactive=\"activecode\" language=\"python\">\n      <code>\n      def add(a,b):\n          return 4\n      </code>\n      <tests>\n      from unittest.gui import TestCaseGui\n\n      class myTests(TestCaseGui):\n\n         def testOne(self):\n             self.assertEqual(add(2,2), 4, \"Adding two identical integers\")\n             self.assertEqual(add(7,13), 20, \"Adding two different integers\")\n             self.assertAlmostEqual(add(2.0,3.0), 5.0, 5, \"Adding two decimal numbers\")\n\n      myTests().main()\n      </tests>\n  </program>\n  <answer>\n      <p>We're not really sure.  But it would begin as follows:</p>\n      <program language=\"c\">\n          <code>\n          #include &lt;stdio.h&gt;\n\n          int main(void)\n          </code>\n      </program>\n  </answer>\n</exercise>\n"
  },
  {
    "path": "examples/sample-book/rune-examples/static-listing-java.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<listing>\n  <title>A static Java program with highlighted lines</title>\n  <program language=\"java\" line-numbers=\"yes\" highlight-lines=\"2,6-8\" include-source=\"yes\">\n      <code>\n      import javax.swing.JFrame;  //Importing class JFrame\n      import javax.swing.JLabel;  //Importing class JLabel\n      public class HelloWorld {\n          public static void main(String[] args) {\n              JFrame frame = new JFrame();           //Creating frame\n              frame.setTitle(\"Hi!\");                 //Setting title frame\n              frame.add(new JLabel(\"Hello, world!\"));//Adding text to frame\n              frame.pack();                          //Setting size to smallest\n              frame.setLocationRelativeTo(null);     //Centering frame\n              frame.setVisible(true);                //Showing frame\n          }\n      }\n      </code>\n  </program>\n</listing>\n"
  },
  {
    "path": "examples/sample-book/rune.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2016/03/25)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n<chapter xml:id=\"rune\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Runestone Testing</title>\n\n    <introduction>\n        <p>We collect Runestone interactive items for testing here, in sections of their own.</p>\n        <p>Some of these samples only function if hosted on a Runestone server. To see those in action, visit the copy of the <url href=\"https://runestone.academy/ns/books/published/PTXSB/sample-book.html\">Sample Book hosted on Runestone</url></p>\n    </introduction>\n\n    <section xml:id=\"inactive-code\">\n        <title>Programs</title>\n\n        <p>First, some samples of programs that are not interactive. They will be syntax highlighted if a valid <attr>language</attr> is specified. Optionally, lines can be numbered and selected lines highlighted.</p>\n\n        <xi:include href=\"./rune-examples/static-listing-java.xml\"/>\n\n        <p>Instead of specifying <attr>language</attr> on each program, a default can be specified at <c>docinfo/programs/@language</c>. That value will be used for any program that lacks a <attr>language</attr> attribute. This sample does not specify it's own <attr>language</attr> and is relying on the default set in this book.</p>\n\n        <listing>\n            <title>Python program, relying on default programs language</title>\n            <program line-numbers=\"yes\" include-source=\"yes\">\n                <code>\n                def say_hello():\n                    print(\"Hello, World!\")\n\n                say_hello()\n                </code>\n            </program>\n        </listing>\n\n    </section>\n\n    <section xml:id=\"activecode\">\n        <title>ActiveCode</title>\n\n        <p>Programs in supported languages are made interactive in HTML when <attr>interactive</attr> is set to <c>activecode</c>. Some languages can be made interactive on any server, while others require being served from Runestone servers. See <url href=\"https://pretextbook.org/doc/guide/html/topic-program-console.html#interactive-program-capabilities\">Interactive Programs Capabilities in the PreTeXt Guide</url> for a list of what languages are supported in which environs.</p>\n\n        <listing xml:id=\"program-activecode-python\">\n            <title>An interactive Python program, using <pubtitle>Runestone</pubtitle></title>\n            <program xml:id=\"python-hello-world\" interactive='activecode' language=\"python\" label=\"hello-world\">\n                <code>\n                print(\"Hello, World!\")\n                </code>\n            </program>\n        </listing>\n\n        <p>Otherwise they are rendered as text with syntax coloring. Either way, if a <attr>language</attr> is not specified, <c>docinfo/programs/@language</c> will be checked to determine what language to assume the code is written in.\n        </p>\n\n        <listing xml:id=\"program-activecode-python2\">\n            <title>An interactive Python program, using <pubtitle>Runestone</pubtitle></title>\n            <program xml:id=\"python-hello-world2\" label=\"hello-world2\">\n                <code>\n                print(\"Hello, World!\")\n                </code>\n            </program>\n        </listing>\n\n        <p>A C program will only be interactive if hosted on a Runestone server.</p>\n\n        <listing xml:id=\"program-activecode-c\">\n            <title>An C program, interactive on a <pubtitle>Runestone</pubtitle> server</title>\n            <program xml:id=\"c-hello-world\" interactive='activecode' language=\"c\">\n                <code>\n                #include &lt;stdio.h&gt;\n\n                int main(void)\n                {\n                    puts(\"Hello, world!\");\n                }\n                </code>\n            </program>\n        </listing>\n\n        <p>A Java program will only be interactive if hosted on a Runestone server.</p>\n\n        <listing xml:id=\"program-activecode-java\">\n            <title>A Java program, interactive on a <pubtitle>Runestone</pubtitle> server</title>\n            <program xml:id=\"java-hello-world\" interactive='activecode' language=\"java\">\n                <code>\n                public class HelloWorld {\n                    public static void main(String[] args) {\n                        System.out.println(\"Hi world!\");\n                    }\n                }\n                </code>\n            </program>\n        </listing>\n\n        <p>Javascript programs are made interactive in HTML, on request.</p>\n\n        <listing xml:id=\"program-activecode-javascript\">\n            <title>An interactive JavaScript program, using <pubtitle>Runestone</pubtitle></title>\n            <program xml:id=\"javascript-hello-world\" interactive='activecode' language=\"javascript\">\n                <code>\n                document.write('Hello, world!');\n                </code>\n            </program>\n        </listing>\n\n        <p>Some languages, like Java or C++, are only interactive when run on a Runestone server where the code can be compiled and run. Those languages can specify <attr>compiler-args</attr> and <attr>linker-args</attr> or <attr>interpreter-args</attr> as appropriate to the language. Default values for those options can be set in <tag>docinfo/programs</tag> - any defaults set there will be used for any program that lacks the corresponding attribute.</p>\n\n        <listing>\n            <title>A C++ program with compiler-args and stdin</title>\n            <p>It may be convenient to set <attr>compiler-args</attr> and <attr>linker-args</attr> at the book level in <tag>docinfo/programs</tag>. Values specified in that location will be used for any <tag>program</tag> that does not override the values by specifying its own attributes.</p>\n            <program interactive=\"activecode\" label=\"hello-world-cpp\" language=\"cpp\" compiler-args=\"-std=c++17,-Wall,-g\" linker-args=\"-g,-s\" include-source=\"yes\">\n                <code>\n                    #include &lt;iostream&gt;\n                    #include &lt;string&gt;\n                    using namespace std;\n                    int main() {\n                        string name;\n                        cin &gt;&gt; name;\n                        cout &lt;&lt; \"Hello, \" &lt;&lt; name &lt;&lt; endl;\n                        return 0;\n                    }\n                </code>\n                <stdin>Jane</stdin>\n            </program>\n        </listing>\n\n        <listing xml:id=\"program-static-java\">\n            <title>A static Java program</title>\n            <program xml:id=\"java-static\" interactive='no' language=\"java\">\n                <code>\n                import javax.swing.JFrame;  //Importing class JFrame\n                import javax.swing.JLabel;  //Importing class JLabel\n                public class HelloWorld {\n                    public static void main(String[] args) {\n                        JFrame frame = new JFrame();           //Creating frame\n                        frame.setTitle(\"Hi!\");                 //Setting title frame\n                        frame.add(new JLabel(\"Hello, world!\"));//Adding text to frame\n                        frame.pack();                          //Setting size to smallest\n                        frame.setLocationRelativeTo(null);     //Centering frame\n                        frame.setVisible(true);                //Showing frame\n                    }\n                }\n                </code>\n            </program>\n        </listing>\n\n\n        <p>An Octave program will also only be interactive if hosted on a Runestone server.  Octave is meant to be a drop-in replacement for Matlab.</p>\n\n        <listing xml:id=\"program-activecode-octave\">\n            <title>A simple Octave program</title>\n            <program xml:id=\"octave-simple\" interactive='activecode' language=\"octave\" include-source=\"yes\">\n                <code>\n                x = 2 + 2\n                printf(\"%d\\n\", x)\n                </code>\n            </program>\n        </listing>\n\n        <p>Likewise, a Kotlin program will only be interactive if hosted on a Runestone server.</p>\n\n        <listing xml:id=\"program-activecode-kotlin\">\n            <title>A simple Kotlin program</title>\n            <program xml:id=\"kotlin-hello-world\" interactive='activecode' language=\"kotlin\" include-source=\"yes\">\n                <code>\n                fun main() {\n                    println(\"Hello, world!!\")\n                }\n                </code>\n            </program>\n        </listing>\n\n        <p>A language not supported by Runestone Services will always be rendered static.</p>\n\n        <listing xml:id=\"program-mistake-pascal\">\n            <title>A Pascal program that cannot be interactive on Runestone</title>\n            <program xml:id=\"pascal-mistake\" interactive='activecode' language=\"pascal\" include-source=\"yes\">\n                <code>\n                program HelloWorld;\n                begin\n                  WriteLn('Hello, world!');\n                end.\n                </code>\n            </program>\n        </listing>\n\n        <p>The <attr>highlight-lines</attr> works on ActiveCode programs, but the highlighted lines are only shown when viewing the initial code. Any version of the code that the reader has edited may have shifted lines of code and thus highlighting might affect the wrong lines, causing confusion.</p>\n\n        <program interactive='activecode' language=\"python\" label=\"program-activecode-highlights\" highlight-lines=\"1-2,5\" include-source=\"yes\">\n            def add(a, b):\n                return a + b\n\n            # Use the function\n            result = add(2, 3)\n            if result == 5:\n                print(\"Test passed\")\n            else:\n                print(\"Test failed\")\n        </program>\n\n        <p>A program can have a <tag>preamble</tag> and/or <tag>postamble</tag> which are added to the code that the user writes before it is run. They are visible by default, but can be made invisible with <attr>visible</attr> set to <c>\"no\"</c>. When visible, the code editor will prevent those regions from being modified. The indentation for lines in the <c>preamble/code/postamble</c> elements will be calculated relative to each other - make sure to indent them all to a similar extent. (In the source for the sample below, the <c># TODO...</c> is intentially indented one stop extra so that the user's code is part of the <c>add</c> function.</p>\n        <p><tag>tests</tag> are similar to <tag>postamble</tag> in that it represents code that is added to the users submission. However, <tag>tests</tag> is intended specifically for unit testing code (see examples below for unit testing in Python, Java, C++, SQL). Tests are invisble by default and can be made visible with <attr>visible</attr> set to <c>\"yes\"</c>. For historical reasons, the indentation of the <tag>tests</tag> is treated separately from the rest of the program.</p>\n\n        <xi:include href=\"./rune-examples/activecode-ambles.xml\"/>\n\n        <p>Here is the same Python program from the previous section, but now with a <tag>preamble</tag> and <tag>postamble</tag> that are invisible.  The user will not see the code that is added to their submission.  Not actually useful in this case, but it might be if you wanted to hide boilerplate setup from the reader.</p>\n\n        <listing>\n            <title>A Python program with invisible pre/post ambles</title>\n            <program interactive='activecode' language=\"python\" label=\"program-activecode-python-ambles-invisible\" include-source=\"yes\">\n                <preamble visible=\"no\">\n                def add(a, b):\n                </preamble>\n                <code>\n                    # TODO - complete the add function\n                </code>\n                <postamble visible=\"no\">\n\n                # Use the function\n                result = add(2, 3)\n                if result == 5:\n                    print(\"Test passed\")\n                else:\n                    print(\"Test failed\")\n                </postamble>\n            </program>\n        </listing>\n\n        <p>The following Python program is in a <tag>listing</tag> since we will want to reference it shortly.  The program does not do very much, it just defines four variables whose values are lists of statistics.  It should run, and there will be no syntax errors, but it is a bit boring since there is no output. Note that it does not have an <attr>language</attr> and is relying on the default one specified in <tag>docinfo/programs</tag></p>\n\n        <listing xml:id=\"listing-python-included\">\n            <title>A Python program that defines some statistics</title>\n            <program xml:id=\"python-statistics\" interactive='activecode' label=\"statistics\" include-source=\"yes\">\n                <code>\n                loan_amount = [1250.0, 500.0, 1450.0, 200.0, 700.0, 100.0, 250.0, 225.0, 1200.0, 150.0, 600.0, 300.0, 700.0, 125.0, 650.0, 175.0, 1800.0, 1525.0, 575.0, 700.0, 1450.0, 400.0, 200.0, 1000.0, 350.0]\n\n                country_name = ['Azerbaijan', 'El Salvador', 'Bolivia', 'Paraguay', 'El Salvador', 'Philippines', 'Philippines', 'Nicaragua', 'Guatemala', 'Philippines', 'Paraguay', 'Philippines', 'Bolivia', 'Philippines', 'Philippines', 'Madagascar', 'Georgia', 'Uganda', 'Kenya', 'Tajikistan', 'Jordan', 'Kenya', 'Philippines', 'Ecuador', 'Kenya']\n\n                time_to_raise = [193075.0, 1157108.0, 1552939.0, 244945.0, 238797.0, 1248909.0, 773599.0, 116181.0, 2288095.0, 51668.0, 26717.0, 48030.0, 1839190.0, 71117.0, 580401.0, 800427.0, 1156218.0, 1166045.0, 2924705.0, 470622.0, 24078.0, 260044.0, 445938.0, 201408.0, 2370450.0]\n\n                num_lenders_total = [38, 18, 51, 3, 21, 1, 10, 8, 42, 1, 18, 6, 28, 5, 16, 7, 54, 1, 18, 22, 36, 12, 8, 24, 8]\n                </code>\n            </program>\n        </listing>\n\n        <p>An ActiveCode running on the Runestone server (rather than in a browser) can be provided with attributes that are flags to influence the compiler and linker, as in this <tag>program</tag> recycled from before.</p>\n\n        <listing xml:id=\"program-activecode-java-flags\">\n            <title>A Java program, interactive on a <pubtitle>Runestone</pubtitle> server, with compiler and linker flags</title>\n            <program xml:id=\"java-hello-world-flags\" interactive='activecode' language=\"java\" compiler-args=\"-g\" linker-args=\"-s\">\n                <code>\n                import javax.swing.JFrame;  //Importing class JFrame\n                import javax.swing.JLabel;  //Importing class JLabel\n                public class HelloWorld {\n                    public static void main(String[] args) {\n                        JFrame frame = new JFrame();           //Creating frame\n                        frame.setTitle(\"Hi!\");                 //Setting title frame\n                        frame.add(new JLabel(\"Hello, world!\"));//Adding text to frame\n                        frame.pack();                          //Setting size to smallest\n                        frame.setLocationRelativeTo(null);     //Centering frame\n                        frame.setVisible(true);                //Showing frame\n                    }\n                }\n                </code>\n            </program>\n        </listing>\n\n        <p>Now a programming exercise.  The program upcoming is going to <term>include</term> all the code of the program preceding.  This is accomplished with an <attr>include</attr> attribute on the <em>including</em> program whose value is the <attr>xml:id</attr> of the <em>included</em> program.  So by running the next program, it should pass all of its three tests (for example another example using unit tests, see <xref ref=\"unit-test-example\"/>).  Now reload the page, do not run the program in the listing, and then see that the program in the exercise still runs correctly.</p>\n\n        <p>You'll see nothing that tells the reader that the one chunk of code is prefacing the other.  And in static formats it might be even less obvious.  So you will want to say <em>something</em> to alert the reader.  Here it is easy: <xref ref=\"exercise-python-including\"/> includes all the code from <xref ref=\"listing-python-included\"/>.</p>\n\n        <p>This program also makes use of <attr>autorun</attr> to execute on page load and the <attr>codelens</attr>to disable the codelens feature.</p>\n\n        <exercise xml:id=\"exercise-python-including\" include-source=\"yes\">\n            <title>A Python program, including another</title>\n            <statement>\n                <p>Compute the total amount of money loaned and store it in the variable <c>loan_total</c>.</p>\n            </statement>\n            <program autorun=\"yes\" codelens=\"no\" xml:id=\"python-summation\" interactive='activecode' language=\"python\" label=\"python-sum-total\" include=\"python-statistics\">\n                <code>\n                loan_total = 0\n                for loan in loan_amount:\n                    loan_total += loan\n                print(loan_total)\n                </code>\n                <tests>\n                from unittest.gui import TestCaseGui\n\n                class MyTests(TestCaseGui):\n\n                    def testOne(self):\n                        self.assertTrue('loan_total' in self.getEditorText(), \"you need a loan_total variable\")\n                        self.assertEqual(loan_total, sum(loan_amount), \"Use the accumulator pattern to add up all the loans\")\n                        self.assertFalse('sum(' in self.getEditorText(), \"you may not use sum()\")\n\n                MyTests().main()\n                </tests>\n            </program>\n        </exercise>\n\n        <p>Exact same exercise again, but now we include <em>three</em> programs.  We first get the simple <q>Hello, world!</q> program at <xref ref=\"program-activecode-python\"/>, then the program defining the variables with lists of statistics at <xref ref=\"listing-python-included\"/>, and finally the program from the appendix just to test linking to material there.</p>\n\n        <p>This program also makes use of <attr>hidecode</attr> to initially keep the code hidden and <attr>download</attr> to enable a file download of the program (that includes all the included code).</p>\n\n        <exercise xml:id=\"exercise-python-including-two\" include-source=\"yes\">\n            <title>A Python program, including two others</title>\n            <statement>\n                <p>Compute the total amount of money loaned and store it in the variable <c>loan_total</c>.</p>\n            </statement>\n            <program xml:id=\"python-summation-two\" interactive='activecode' language=\"python\" label=\"python-sum-total-two\" include=\"python-hello-world python-statistics program-appendix\" hidecode=\"yes\" download=\"yes\">\n                <code>\n                loan_total = 0\n                for loan in loan_amount:\n                    loan_total += loan\n                print(loan_total)\n                </code>\n                <tests>\n                from unittest.gui import TestCaseGui\n\n                class MyTests(TestCaseGui):\n\n                    def testOne(self):\n                        self.assertTrue('loan_total' in self.getEditorText(), \"you need a loan_total variable\")\n                        self.assertEqual(loan_total, sum(loan_amount), \"Use the accumulator pattern to add up all the loans\")\n                        self.assertFalse('sum(' in self.getEditorText(), \"you may not use sum\")\n\n                MyTests().main()\n                </tests>\n            </program>\n        </exercise>\n\n        <p>Here is an activecode with <attr>language</attr> set to <c>sql</c> uses the <attr>database</attr> to load a SQLite database file.</p>\n\n        <exercise xml:id=\"exercise-sql-using-db\" include-source=\"yes\">\n            <title>An SQL program that uses an SQLite database file</title>\n            <statement>\n                <p>Select all the columns of all the rows in the <c>test</c> database table.</p>\n            </statement>\n            <program xml:id=\"sql-using-db\" interactive='activecode' language=\"sql\" label=\"sql-using-db\" database=\"sql/test.db\">\n                <code>\n                    SELECT * FROM test\n                </code>\n                <tests>\n                    assert 1,1 == world\n                    assert 0,1 == hello\n                    assert 2,1 == 35\n                </tests>\n            </program>\n        </exercise>\n\n        <p>Now a C++ program that is spread across multiple files. This example will only be interactive on a Runestone server.</p>\n\n        <p>First, we have a <c>.h</c> file that defines an <attr>filename</attr>. It has an <attr>xml:id</attr> so other elements can reference it. It also has an <attr>label</attr> which is it's unique identifier in the Runestone database. (The label is intentionally different than the xml:id for demonstration purposes, but they can be the same.) The <attr>filename</attr> is used to indicate what to name to use when the contents of the element are written to a file on the server - other program code and/or tools on the server can look for it using this name. The <attr>filename</attr> need not be unique<mdash/>we could have multiple programs with <attr>filename=\"add.h\"</attr>. As we will see below, the author specifies which <q>version</q> of a file should be used in any given location with its unique xml:id.</p>\n\n        <p>The <tag>program</tag> is inside of a <tag>listing</tag> so that we have a place to add a title and so that we can reference the code sample, including that title, with an <tag>xref</tag> from elsewhere. The <tag>title</tag> of the <tag>listing</tag> is rendered with the program. It is also used if an <tag>xref</tag> links to the <tag>listing</tag> using <attr>text=\"title\"</attr>.</p>\n\n        <listing xml:id=\"addh-v1-listing\">\n            <title>add.h (version 1) - A very simple header file that lacks header guards.</title>\n            <program filename=\"add.h\" xml:id=\"addh-v1\" label=\"addh-v1-label\" language=\"cpp\" include-source=\"yes\">\n                int add(int a, int b);\n            </program>\n        </listing>\n\n        <p>Next, a <c>.cpp</c> file. Note that because it is part of an exercise, the <attr>label</attr> is applied to the exercise that contains it. The <attr>xml:id</attr> and <attr>filename</attr> still belong on the program itself.</p>\n\n        <p>It also has <attr>extra-compiler-args</attr>. These will be added to any default compiler args for the book. In this case, the <c>-c</c> indicates that we only want to compile this file when it is <q>Run</q> and not try to link it or actually run it.</p>\n\n        <exercise label=\"addcpp-v1\">\n            <statement>\n                <p>You can leave this code as is or modify it. When you click <q>Run</q>, the code will be compiled. However, it will not be run as this is not a standalone program. To run it, use the full program below.</p>\n            </statement>\n            <program filename=\"add.cpp\" xml:id=\"addcpp-v1\" extra-compiler-args=\"-c\" interactive=\"activecode\" language=\"cpp\" include-source=\"yes\">\n                int add(int a, int b) {\n                    return a + b;\n                }\n            </program>\n        </exercise>\n\n        <p>Finally, the core program. <attr>add-files</attr> is used to specify (by xml:id) the files that need to be added to the program directory. <attr>compile-also</attr> specifies files that must be compiled with this source file (they will be assumed to be also part of <attr>add-files</attr>). Notice that when using <attr>add-files</attr> to reference code we want to include, we use the xml:id of the target program - it has the contents we want to include. When making a textual reference with an <tag>xref</tag> we can't link to the program, as it lacks the contextual information required to create a valid reference. Instead, we should link to a listing (or some other container) that surrounds the code, like this: <xref ref=\"addh-v1-listing\"/> or <xref ref=\"addh-v1-listing\" text=\"title\"/></p>\n\n        <program label=\"multiple-file-program\" interactive=\"activecode\" add-files=\"addh-v1\" compile-also=\"addcpp-v1\" include-source=\"yes\" language=\"cpp\">\n            <![CDATA[\n            #include \"add.h\"\n            #include <iostream>\n            using namespace std;\n            int main() {\n                int a = 1;\n                int b = 2;\n                cout << \"The sum of \" << a << \" and \" << b << \" is \" << add(a, b) << endl;\n            }]]>\n        </program>\n\n        <p>Note that there is a cross page test of <attr>add-files</attr> located in <xref ref=\"runestone-hodgepodge\"/></p>\n\n        <p>A nonsense paragraph just to check on spacing.  A nonsense paragraph just to check on spacing.  A nonsense paragraph just to check on spacing.  A nonsense paragraph just to check on spacing.</p>\n    </section>\n\n    <section xml:id=\"code-lens\">\n        <title>Code Lens</title>\n\n        <p>CodeLens is an interactive tool for following program execution, much like a debugger, without the ability to influence flow control or variable values.  For use without a server, traces must be computed beforehand.  First, we have some trivial programs, to provide minimal testing.</p>\n\n        <listing xml:id=\"program-codelens-python\">\n            <title>A Python program, stepable with CodeLens</title>\n            <program label=\"python-hello-world-code-lens\" interactive=\"codelens\" language=\"python\">\n                <code>\n                print('Hello, World!')\n                </code>\n            </program>\n        </listing>\n\n        <listing xml:id=\"program-codelens-c\">\n            <title>An C program, stepable with CodeLens</title>\n            <program label=\"c-hello-world-code-lens\" interactive=\"codelens\" language=\"c\">\n                <code>\n                #include &lt;stdio.h&gt;\n\n                int main(void)\n                {\n                    puts(\"Hello, World!\");\n                }\n                </code>\n            </program>\n        </listing>\n\n        <listing xml:id=\"program-codelens-java\">\n            <title>A Java program, stepable with CodeLens</title>\n            <program label=\"java-hello-world-code-lens\" interactive=\"codelens\" language=\"java\">\n                <code>\n                public class HelloWorld {\n                    public static void main(String[] args) {\n                        System.out.println(\"Hello, World!\");\n                    }\n                }\n                </code>\n            </program>\n        </listing>\n\n        <p>Codelens interactives can be given one or more checkpoints where the user is asked a question as the code is executed:</p>\n\n        <listing xml:id=\"program-codelens-python-questions\">\n            <title>A Python program, stepable with CodeLens, with questions</title>\n            <program label=\"python-code-lens-questions\" interactive=\"codelens\" language=\"python\" include-source=\"yes\">\n                <code>\n                def foo(n):\n                    n = n + 1\n                    return n\n                x = 7\n                y = x // 3\n                z = foo(y)\n                </code>\n                <checkpoint line=\"4\" answer=\"x\">\n                    <prompt>What variable is being assigned to?</prompt>\n                </checkpoint>\n                <checkpoint line=\"5\" answer-variable=\"globals.y\">\n                    <prompt>What value will be assigned to <c>y</c>?</prompt>\n                    <feedback><c>//</c> does integer division</feedback>\n                </checkpoint>\n                <checkpoint line=\"3\" answer-variable=\"current_frame.n\">\n                    <prompt>What value will be returned?</prompt>\n                    <feedback>What is <c>n</c> right now?</feedback>\n                </checkpoint>\n            </program>\n        </listing>\n\n        <p>If a Codelens contains checkpoints, it is also possible to make it into an exercise. For use on Runestone, there should be an <attr>label</attr> on the exercise:</p>\n\n        <exercise label=\"program-codelens-cpp-questions\">\n            <title>A C++ program as CodeLens exercise</title>\n            <statement>Run the codelens and answer the questions it asks.</statement>\n            <program interactive=\"codelens\" language=\"cpp\" include-source=\"yes\">\n                <code><![CDATA[\n                  int foo() {\n                      int x = 2;\n                      int y = ++x;\n                      return y;\n                  }\n                  int main() {\n                      int x = foo();\n                      while (x < 20) {\n                        x *= 2;\n                      }\n                  }\n                  ]]>\n                </code>\n                <checkpoint line=\"3\" answer=\"3\">\n                    <prompt>What value will be assigned to <c>y</c>?</prompt>\n                    <feedback><c>++</c> has precedence over <c>=</c></feedback>\n                </checkpoint>\n                <checkpoint line=\"9\" answer-variable=\"current_frame.x\">\n                    <prompt>What value will be assigned to <c>x</c>?</prompt>\n                    <feedback>We are doubling it</feedback>\n                </checkpoint>\n            </program>\n        </exercise>\n\n        <p>Now some moderately more complicated programs to find the prime numbers less than <m>20</m>.  We do not vouch for the quality of these, or even their correctness!</p>\n\n        <listing xml:id=\"sieve-python\">\n            <title><url href=\"https://www.tutorialspoint.com/python-program-for-sieve-of-eratosthenes\" visual=\"www.tutorialspoint.com/python-program-for-sieve-of-eratosthenes\">Sieve of Eratosthenes</url>, Java</title>\n            <program label=\"sieve-codelens-python\" interactive=\"codelens\" language=\"python\" starting-step=\"73\" include-source=\"yes\">\n                <code><![CDATA[\n                def SieveOfEratosthenes(n):\n                   # array of type boolean with True values in it\n                   prime = [True for i in range(n + 1)]\n                   p = 2\n                   while (p * p <= n):\n                      # If it remain unchanged it is prime\n                      if (prime[p] == True):\n                         # updating all the multiples\n                         for i in range(p * 2, n + 1, p):\n                            prime[i] = False\n                      p += 1\n                   prime[0]= False\n                   prime[1]= False\n                   # Print\n                   for p in range(n + 1):\n                      if prime[p]:\n                         print (p,end=\" \")\n                # main\n                if __name__=='__main__':\n                   n = 20\n                   print (\"The prime numbers smaller than or equal to\", n,\"is\")\n                   SieveOfEratosthenes(n)\n                ]]>\n                </code>\n            </program>\n        </listing>\n\n        <listing xml:id=\"sieve-cpp\">\n            <title><url href=\"https://www.tutorialspoint.com/cplusplus-program-to-implement-sieve-of-eratosthenes-to-generate-prime-numbers-between-given-range\" visual=\"www.tutorialspoint.com/cplusplus-program-to-implement-sieve-of-eratosthenes-to-generate-prime-numbers-between-given-range\">Sieve of Eratosthenes</url>, C++</title>\n            <program label=\"sieve-codelens-cpp\" interactive=\"codelens\" language=\"cpp\">\n                <code> <![CDATA[\n                #include <stdio.h>\n                const int len = 20;\n                int main() {\n                   int arr[20] = {0};\n                   for (int i = 2; i < len; i++) {\n                      for (int j = i * i; j < len; j+=i) {\n                         arr[j - 1] = 1;\n                      }\n                   }\n                   for (int i = 1; i < len; i++) {\n                      if (arr[i - 1] == 0)\n                        printf(\" %d\", i);\n                   }\n                }\n                ]]>\n                </code>\n            </program>\n        </listing>\n\n        <listing xml:id=\"sieve-java\">\n            <title><url href=\"https://www.tutorialspoint.com/Sieve-of-Eratosthenes-in-java\" visual=\"www.tutorialspoint.com/Sieve-of-Eratosthenes-in-java\">Sieve of Eratosthenes</url>, Java</title>\n            <program label=\"sieve-codelens-java\" interactive=\"codelens\" language=\"java\">\n                <code><![CDATA[\n                public class SievePrimeFactors  {\n                   public static void main(String args[]) {\n                      int num = 20;\n                      boolean[] bool = new boolean[num];\n\n                      for (int i = 0; i< bool.length; i++) {\n                         bool[i] = true;\n                      }\n                      for (int i = 2; i < Math.sqrt(num); i++) {\n                         if(bool[i] == true) {\n                            for(int j = (i*i); j < num; j = j+i) {\n                               bool[j] = false;\n                            }\n                         }\n                      }\n                      System.out.println(\"List of prime numbers: \");\n                      for (int i = 2; i< bool.length; i++) {\n                         if(bool[i]==true) {\n                            System.out.println(i);\n                         }\n                      }\n                   }\n                }\n                ]]>\n                </code>\n            </program>\n        </listing>\n    </section>\n\n    <section xml:id=\"coding-exercises\">\n        <title>Coding Exercises</title>\n\n        <p>Program listings can be more that just live demonstrations, they can be exercises.  The first two also occur in the sample article where they just get a static rendering, if at all.</p>\n\n        <exercise label=\"coding-exercise-blank\" include-source=\"yes\">\n            <title>Inline Coding Exercise, No Help</title>\n\n            <statement>\n                <p>An exercise might ask a reader to write a computer program, that would go here in the <tag>statement</tag>.  But you can also add a <tag>program</tag> element after a <tag>statement</tag>.  Here we place no code at all, but we do say we want it to be interactive.  The purpose is to make it a live coding environment for a version of your output that allows the reader to perhaps submit a solution.  The <tag>program</tag> element is necessary so you can specify a programming language.</p>\n\n                <p>In interactive formats, try creating and running a Python program below.  Use CodeLens to step through the program.</p>\n            </statement>\n            <program interactive=\"activecode\" language=\"python\"/>\n            <hint><p>We didn't really ask you to do anything.</p></hint>\n        </exercise>\n\n        <exercise label=\"coding-exercise-partial-one\" include-source=\"yes\">\n            <title>Inline Coding Exercise, Partial</title>\n\n            <statement>\n                <p>Similar to above, but we provide a starting point for the exercise.</p>\n            </statement>\n            <program interactive=\"activecode\" language=\"c\">\n                <code>\n                #include &lt;stdio.h&gt;\n\n                int main(void)\n                </code>\n            </program>\n            <answer>\n                <p>We're not really sure.  But it would begin as follows:</p>\n                <program language=\"c\">\n                    <code>\n                    #include &lt;stdio.h&gt;\n\n                    int main(void)\n                    </code>\n                </program>\n            </answer>\n        </exercise>\n\n        <activity xml:id=\"coding-exercise-partial-two\" include-source=\"yes\">\n            <title>Activity Coding Exercise</title>\n\n            <statement>\n                <p>Similar to above, but now as a complete Python program inside an <tag>activity</tag>.  This demonstrates the possibility to use any <q>project-like</q> block (<tag>project</tag>, <tag>activity</tag>, <tag>exploration</tag>, <tag>investigation</tag>), but not in the case when structured with <tag>task</tag>.  (There is an empty <tag>tests</tag> element here, designed to test relief for an error this will cause on a Runestone server.)</p>\n            </statement>\n            <program label=\"activity-program\" interactive=\"activecode\" language=\"python\">\n                <code>\n                for i in range(10):\n                    print(i)\n                </code>\n                <tests>\n\n                </tests>\n            </program>\n            <answer><p>We're still not really sure.</p></answer>\n        </activity>\n\n        <exercise include-source=\"yes\">\n            <title>An Exercise with a Static Program</title>\n\n            <statement>\n                <p>Similar to above, again, but we place the <tag>program</tag> element <em>inside</em> the <tag>statement</tag>, not after it as a peer.  This signals that this is not a coding exercise and the program will render static, since it is explicitly labeled as not being interactive.</p>\n                <program xml:id=\"coding-exercise-static\" language=\"c\" interactive=\"no\">\n                    <code>\n                    #include &lt;stdio.h&gt;\n\n                    int main(void)\n                    </code>\n                </program>\n            </statement>\n            <solution><p>We're not really sure. Still.</p></solution>\n        </exercise>\n\n        <p>Unit testing can be used to automatically evaluate student work. Unit testing frameworks are available for Python, Java, and C++</p>\n\n        <xi:include href=\"./rune-examples/activecode-unittest.xml\"/>\n\n        <exercise xml:id=\"unit-test-example-java\" label=\"coding-exercise-java-unit-test\" include-source=\"yes\">\n            <title>Java Exercise, with Unit Tests</title>\n            <statement>\n                <p>Unit tests for Java can be written using junit.</p>\n            </statement>\n            <program interactive=\"activecode\" language=\"java\">\n                <code>\n                    public class Test1\n                    {\n                        public static void main(String[] args)\n                        {\n                            boolean isRaining = true;\n                            if (isRaining)\n                            {\n                                System.out.println(\"Take an umbrella!\");\n                            }\n                            System.out.println(\"Drive carefully\");\n                        }\n                    }\n                </code>\n                <tests>\n                    import static org.junit.Assert.*;\n                    import org.junit.*;\n                    import java.io.*;\n\n                    public class RunestoneTests extends CodeTestHelper\n                    {\n                        @Test\n                        public void testMain() throws IOException\n                        {\n                            String output = getMethodOutput(\"main\");\n                            String expect = \"Take an umbrella! \\nDrive carefully\";\n                            boolean passed = getResults(expect, output, \"Expected output from main\");\n                            assertTrue(passed);\n                        }\n                    }\n                </tests>\n            </program>\n        </exercise>\n\n        <exercise xml:id=\"unit-test-example-cpp\" label=\"coding-exercise-cpp-unit-test\" include-source=\"yes\">\n            <title>C++ Exercise, with Unit Tests</title>\n            <statement>\n                <p>Unit tests for C++ can be written using doctest or catch. Doctest based tests build substantially faster than catch based ones.</p>\n                <p>In an interactive environment, the tests in this exercise will be made visible, but uneditable, so that in the event of a failed test the student can see exactly what is being tested (Doctest does not report on individual passed tests and the feedback on failed tests generally won't make sense without the test itself).</p>\n            </statement>\n            <program interactive=\"activecode\" language=\"cpp\">\n                <code>\n                // Complete the function to return the sum of two numbers\n                int add(int a, int b) {\n\n                }\n                </code>\n                <tests visible=\"yes\">\n<![CDATA[\n\n//There should be two visible empty lines above this line\n#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN\n#include \"doctest.h\"\n\nTEST_CASE( \"Test the add function\" ) {\n    REQUIRE( add(2, 3) == 5 );\n    REQUIRE( add(6, 1) == 7 );\n    REQUIRE( add(-5, 5) == 0 );\n}\n]]>\n                </tests>\n            </program>\n        </exercise>\n\n        <p>For simple programs, or languages without an available unit testing framework, input-output testing can be done instead. IO testing can only be done on languages that are run on a Runestone server (Java/C/C++/Octave/Python3).</p>\n\n        <exercise xml:id=\"io-test-example-cpp\" label=\"coding-exercise-cpp-io-tests\" include-source=\"yes\">\n            <title>C++ Exercise, with IO Tests</title>\n            <statement>\n                <p>Read in an integer <c>n</c>. Print out a n by n square of asterisks.</p>\n            </statement>\n            <program interactive=\"activecode\" language=\"cpp\">\n                <code><![CDATA[\n                #include <iostream>\n                using namespace std;\n                int main() {\n                    int n;\n                    cin >> n;\n                    for (int i = 0; i < n; i++) {\n                        for (int j = 0; j < n; j++) {\n                            cout << \"*\";\n                        }\n                        cout << endl;\n                    }\n                } ]]>\n                </code>\n                <tests>\n                    <iotest>\n                        <input>1</input>\n                        <output>\n                            *\n                        </output>\n                    </iotest>\n                    <iotest>\n                        <input>3</input>\n                        <output>\n                            ***\n                            ***\n                            ***\n                        </output>\n                    </iotest>\n                    <iotest>\n                        <input>5</input>\n                        <output>\n                            *****\n                            *****\n                            *****\n                            *****\n                            *****\n                        </output>\n                    </iotest>\n                </tests>\n            </program>\n        </exercise>\n    </section>\n\n    <section xml:id=\"data-files\">\n        <title>Data Files</title>\n\n        <p>In the following file of climate data, the first column is Year, second column is Global Average Temperature (Celcius), and the third column is Global Emmisions C02 (Giga-tons).  [Normally you might place this inside a block with the <tag>datafile</tag>.]</p>\n\n        <!-- # Section 11.4 Think Like a Computer Scientist, Runestone 2023-01-23 -->\n        <datafile label=\"file-global-climate-one\" xml:id=\"file-global-climate-one\" filename=\"ccdata1.txt\" rows=\"18\" cols=\"40\" editable=\"yes\" include-source=\"yes\">\n            <pre>\n            1850    -0.37     2.24E-7\n            1860    -0.34     3.94E-7\n            1870    -0.28     6.6E-7\n            1880    -0.24     1.1\n            1890    -0.42     1.72\n            1900    -0.2      2.38\n            1910    -0.49     3.34\n            1920    -0.25     4.01\n            1930    -0.14     4.53\n            1940     0.01     5.5\n            1950    -0.17     6.63\n            1960    -0.05     10.5\n            1970    -0.03     16\n            1980     0.09     20.3\n            1990     0.3      22.6\n            2000     0.29     24.9\n            2010     0.56     32.7\n            2019     0.74     33.3\n            </pre>\n        </datafile>\n\n        <p>Browser based programs are automatically given access to data files by their filename.</p>\n\n        <program label=\"python-average-climate\" xml:id=\"python-average-climate\" interactive='activecode' language=\"python\" include-source=\"yes\">\n            <code>\n            ccfile = open(\"ccdata1.txt\", \"r\")\n\n            for aline in ccfile:\n                values = aline.split()\n                print('In', values[0], 'the average temp. was', values[1], '°C and CO2 emmisions were', values[2], 'gigatons.')\n\n            ccfile.close()\n            </code>\n        </program>\n\n        <!-- # Fundamentals of Python Programming, Stack Overflow Developer Survey, Runestone 2023-02-01 -->\n        <data>\n            <title>Stack Overflow Developer Survey</title>\n\n            <p>[A data file can go lots of places.  But to make it more prominent, and easy to cross-reference, it would be natural to put it into a <tag>data</tag> block.]</p>\n\n            <p>Now that you are experienced with working with files lets look at a bit of the data set. The survey had 98,855 respondents. We will work with a sample of 2000 of those responses for this lab. In addition we have narrowed down the questions from 129 to just 13.  The columns we have included in this data set are:<ol>\n                <li>Respondent</li>\n                <li>Country</li>\n                <li>JobSatisfaction</li>\n                <li>UndergradMajor</li>\n                <li>ConvertedSalary</li>\n                <li>Exercise</li>\n                <li>Gender</li>\n                <li>RaceEthnicity</li>\n                <li>EducationParents</li>\n                <li>HoursOutside</li>\n                <li>Age</li>\n                <li>LastNewJob</li>\n                <li>LanguageWorkedWith</li>\n            </ol></p>\n\n            <datafile label=\"stack-overflow-survey\" filename=\"so_survey.csv\" rows=\"10\" cols=\"65\" editable=\"no\" include-source=\"yes\">\n                <pre source=\"datafiles/stackoverflow.csv\"/>\n            </datafile>\n        </data>\n\n        <!-- 400px wide, so 400/600 = 66% -->\n        <datafile label=\"luther-bell\" filename=\"luther-bell.jpg\" include-source=\"yes\">\n            <image source=\"datafiles/LutherBellPic.jpg\" width=\"66%\"/>\n        </datafile>\n\n        <program label=\"python-one-pixel\" interactive='activecode' language=\"python\" include-source=\"yes\">\n            <code>\n            import image\n            img = image.Image(\"luther-bell.jpg\")\n\n            print(img.getWidth())\n            print(img.getHeight())\n\n            p = img.getPixel(45, 55)\n            print(p.getRed(), p.getGreen(), p.getBlue())\n            </code>\n        </program>\n\n        <computation>\n            <title>Golden Gate Bridge Image processing</title>\n\n            <p>This image has a Creative Commons license, but we've lost track of the exact terms.</p>\n\n            <p>[Now a data file and a program to process it, all bundled up inside a <tag>computation</tag>, since an <tag>example</tag> gets knowled and the ActiveCode does not fill.]</p>\n\n            <!-- 300px wide so 300/600 = 50% -->\n            <datafile label=\"golden-gate\" filename=\"golden_gate.png\" include-source=\"yes\">\n                <image source=\"datafiles/golden-gate-bridge.png\" width=\"50%\"/>\n            </datafile>\n\n            <p>This program changes every pixel of the image.</p>\n\n            <program label=\"python-change-pixels\" interactive='activecode' language=\"python\" include-source=\"yes\">\n                <code>\n                import image\n\n                img = image.Image(\"golden_gate.png\")\n                win = image.ImageWin(img.getWidth(), img.getHeight())\n                img.draw(win)\n\n                # img.setDelay(delay, number of pixels between delay)\n                # setDelay(1, 400) will speed up a lot\n                img.setDelay(1,15)\n\n                for row in range(img.getHeight()):\n                    for col in range(img.getWidth()):\n                        p = img.getPixel(col, row)\n\n                        newred = p.red * 1.4\n                        newgreen =  p.green * .75\n                        newblue =  p.blue * 1.1\n\n                        newpixel = image.Pixel(newred, newgreen, newblue)\n\n                        img.setPixel(col, row, newpixel)\n\n                img.draw(win)\n                win.exitonclick()\n                </code>\n            </program>\n        </computation>\n\n        <p>The examples above all use Python, which will run in your browser.   Other languages will only run when a project is hosted on Runestone Academy servers.  And in this case there is a small twist.  You need to indicate which existing <tag>datafile</tag> your program needs, even if that seems obvious by reading the code.  To do this, make sure each datafile has an <attr>xml:id</attr> and then use the <attr>add-files</attr> attribute on <tag>program</tag> to specify a list of xml:id's that you want to be available.  These datafiles will be written to the program's working directory using the filename specified by the <attr>filename</attr> attribute of the <tag>datafile</tag> element, and are the names you use in your program's code.  As before, no path information is needed, nor allowed.</p>\n\n        <p>When the <attr>language</attr> attribute of a <tag>program</tag> is set to <c>python3</c> that means in-browser Python is not good enough, and you want the greater power and flexibility of having your code run on a Runestone Academy server.  So this is our first example of using the <attr>datafile</attr> attribute.</p>\n\n        <p>The data file is an abbreviated version of the example above, just to be different.  And is not editable.</p>\n\n        <datafile label=\"file-global-climate-two\" xml:id=\"file-global-climate-two\" filename=\"ccdata2.txt\" rows=\"4\" cols=\"40\" editable=\"no\" include-source=\"yes\">\n            <pre>\n            1900    -0.2      2.38\n            1910    -0.49     3.34\n            1920    -0.25     4.01\n            1930    -0.14     4.53\n            1940     0.01     5.5\n            1950    -0.17     6.63\n            1960    -0.05     10.5\n            1970    -0.03     16\n            1980     0.09     20.3\n            1990     0.3      22.6\n            2000     0.29     24.9\n            2010     0.56     32.7\n            2019     0.74     33.3\n            </pre>\n        </datafile>\n\n        <p>The program is identical to the above, but we specify <c>python3</c> as the language, and use the smaller file.  So this example is only active when this content is hosted on a Runestone Academy server.</p>\n\n        <program label=\"python-average-climate-two\" interactive='activecode' language=\"python3\" add-files=\"file-global-climate-two\" include-source=\"yes\">\n            <code>\n            ccfile = open(\"ccdata2.txt\", \"r\")\n\n            for aline in ccfile:\n                values = aline.split()\n                print('In', values[0], 'the average temp. was', values[1], '°C and CO2 emmisions were', values[2], 'gigatons.')\n\n            ccfile.close()\n            </code>\n        </program>\n\n        <p>[2023-02-24 Testing Java with multiple data files]</p>\n\n        <data>\n            <title>Flowers</title>\n\n            <p>Two flower images as <tag>datafile</tag> for use in upcoming Java program.</p>\n\n            <!-- Images are 100 x 100.  So width are 100/600 = 17% -->\n\n            <datafile label=\"flower1-datafile\" xml:id=\"flower1-datafile\" filename=\"flower1.jpg\" include-source=\"yes\">\n                <image source=\"datafiles/flower-one.jpeg\" width=\"17%\"/>\n            </datafile>\n\n            <datafile label=\"flower2-datafile\" xml:id=\"flower2-datafile\" filename=\"flower2.jpg\" include-source=\"yes\">\n                <image source=\"datafiles/flower-two.jpeg\" width=\"17%\"/>\n            </datafile>\n        </data>\n\n        <program label=\"java-flower-collage\" interactive='activecode' language=\"java\" add-files=\"file-picture-classes-jar, flower1-datafile, flower2-datafile\" include-source=\"yes\">\n            <!-- About 10 XML characters, hence CDATA -->\n            <code><![CDATA[\n            import java.awt.*;\n            import java.awt.font.*;\n            import java.awt.geom.*;\n            import java.awt.image.BufferedImage;\n            import java.text.*;\n            import java.util.*;\n            import java.util.List;\n\n            /**\n             * A class that represents a picture.  This class inherits from\n             * SimplePicture and allows the student to add functionality to\n             * the Picture class.\n             *\n             * @author Barbara Ericson ericson@cc.gatech.edu\n             */\n            public class Picture extends SimplePicture\n            {\n              ///////////////////// constructors //////////////////////////////////\n\n              /**\n               * Constructor that takes no arguments\n               */\n              public Picture ()\n              {\n                /* not needed but use it to show students the implicit call to super()\n                 * child constructors always call a parent constructor\n                 */\n                super();\n              }\n\n              /**\n               * Constructor that takes a file name and creates the picture\n               * @param fileName the name of the file to create the picture from\n               */\n              public Picture(String fileName)\n              {\n                // let the parent class handle this fileName\n                super(fileName);\n              }\n\n              /**\n               * Constructor that takes the height and width\n               * @param height the height of the desired picture\n               * @param width the width of the desired picture\n               */\n              public Picture(int width, int height)\n              {\n                // let the parent class handle this width and height\n                super(width,height);\n              }\n\n              /**\n               * Constructor that takes a picture and creates a\n               * copy of that picture\n               * @param copyPicture the picture to copy\n               */\n              public Picture(Picture copyPicture)\n              {\n                // let the parent class do the copy\n                super(copyPicture);\n              }\n\n              /**\n               * Constructor that takes a buffered image\n               * @param image the buffered image to use\n               */\n              public Picture(BufferedImage image)\n              {\n                super(image);\n              }\n              ////////////////////// methods ///////////////////////////////////////\n\n              /**\n               * Method to return a string with information about this picture.\n               * @return a string with information about the picture such as fileName,\n               * height and width.\n               */\n              public String toString()\n              {\n                String output = \"Picture, filename \" + getFileName() +\n                  \" height \" + getHeight()\n                  + \" width \" + getWidth();\n                return output;\n              }\n\n              /**\n                zeroBlue() method sets the blue values at all pixels to zero\n             */\n              public void zeroBlue()\n              {\n                Pixel[][] pixels = this.getPixels2D();\n\n                for (Pixel[] rowArray : pixels)\n                 {\n                   for (Pixel p: rowArray)\n                   {\n                          p.setBlue(0);\n                   }\n                }\n              }\n\n              /* mirrorVertical() */\n              public void mirrorVertical()\n              {\n                   Pixel[][] pixels = this.getPixels2D();\n                   Pixel leftPixel = null;\n                   Pixel rightPixel = null;\n                   int width = pixels[0].length;\n                   for (int row = 0; row < pixels.length; row++)\n                   {\n                        for (int col = 0; col < width / 2; col++)\n                        {\n                             leftPixel = pixels[row][col];\n                             rightPixel = pixels[row][width - 1 - col];\n                             rightPixel.setColor(leftPixel.getColor());\n                        }\n                   }\n              }\n\n               /** copy from the passed fromPic to the\n                 * specified startRow and startCol in the\n                 * current picture\n                 * @param fromPic the picture to copy from\n                 * @param startRow the start row to copy to\n                 * @param startCol the start col to copy to\n                 */\n               public void copy(Picture fromPic,\n                              int startRow, int startCol)\n               {\n                 Pixel fromPixel = null;\n                 Pixel toPixel = null;\n                 Pixel[][] toPixels = this.getPixels2D();\n                 Pixel[][] fromPixels = fromPic.getPixels2D();\n                 for (int fromRow = 0, toRow = startRow;\n                      fromRow < fromPixels.length &&\n                      toRow < toPixels.length;\n                      fromRow++, toRow++)\n                 {\n                   for (int fromCol = 0, toCol = startCol;\n                        fromCol < fromPixels[0].length &&\n                        toCol < toPixels[0].length;\n                        fromCol++, toCol++)\n                   {\n                     fromPixel = fromPixels[fromRow][fromCol];\n                     toPixel = toPixels[toRow][toCol];\n                     toPixel.setColor(fromPixel.getColor());\n                   }\n                 }\n               }\n\n              public void createCollage()\n              {\n                   // You can also try butterfly.jpg and snowflake.jpg\n                   Picture flower1 = new Picture(\"flower1.jpg\");\n                   Picture flower2 = new Picture(\"flower2.jpg\");\n                   this.copy(flower1,0,0);\n                   this.copy(flower2,100,0);\n                   this.copy(flower1,200,0);\n                   Picture flowerNoBlue = new Picture(flower2);\n                   flowerNoBlue.zeroBlue();\n                   this.copy(flowerNoBlue,300,0);\n                   this.copy(flower1,400,0);\n                   this.copy(flower2,500,0);\n                   this.mirrorVertical();\n                   this.show();\n              }\n\n              /* Main method for testing\n               */\n              public static void main(String[] args)\n              {\n                 Picture p = new Picture(500,500);\n                 p.createCollage();\n              }\n            }\n            ]]>\n            </code>\n        </program>\n\n        <!-- Multi-file, Java -->\n        <!-- https://runestone.academy/ns/books/published/csawesome/Unit8-2DArray/pictureLabA8.html -->\n\n        <p>The following is experimental, as of 2023-07-05, and needs some organization, plus some credit to CSAwesome and Barb Ericson.</p>\n\n        <!-- https://runestone.academy/ns/books/published/csawesome/Unit8-2DArray/pictureLabA5.html -->\n        <!-- https://github.com/bhoffman0/CSAwesome/blob/master/_sources/Unit8-2DArray/pictureLabA5.rst -->\n\n        <datafile label=\"beach-datafile\" xml:id=\"beach-datafile\" filename=\"beach.jpg\" include-source=\"yes\">\n            <image source=\"datafiles/beach.jpg\" width=\"17%\"/>\n        </datafile>\n\n        <datafile label=\"file-picture-classes-jar\" xml:id=\"file-picture-classes-jar\" filename=\"pictureClasses1.jar\" editable=\"no\" hide=\"yes\" include-source=\"yes\">\n            <pre>\n            <![CDATA[\n            import java.awt.Image;\n            import java.awt.image.BufferedImage;\n\n            /**\n             * Interface to describe a digital picture.  A digital picture can have an\n             * associated file name.  It can have a title.  It has pixels\n             * associated with it and you can get and set the pixels.  You\n             * can get an Image from a picture or a BufferedImage.  You can load\n             * it from a file name or image.  You can show a picture.  You can\n             * explore a picture.  You can create a new image for it.\n             *\n             * @author Barb Ericson ericson@cc.gatech.edu\n             */\n            public interface DigitalPicture\n            {\n              public String getFileName(); // get the file name that the picture came from\n              public String getTitle(); // get the title of the picture\n              public void setTitle(String title); // set the title of the picture\n              public int getWidth(); // get the width of the picture in pixels\n              public int getHeight(); // get the height of the picture in pixels\n              public Image getImage(); // get the image from the picture\n              public BufferedImage getBufferedImage(); // get the buffered image\n              public int getBasicPixel(int x, int y); // get the pixel information as an int\n              public void setBasicPixel(int x, int y, int rgb); // set the pixel information\n              public Pixel getPixel(int x, int y); // get the pixel information as an object\n              public Pixel[] getPixels(); // get all pixels in row-major order\n              public Pixel[][] getPixels2D(); // get 2-D array of pixels in row-major order\n              public void load(Image image); // load the image into the picture\n              public boolean load(String fileName); // load the picture from a file\n              public void show(); // show the picture\n              public boolean write(String fileName); // write out a file\n            }\n\n            import java.awt.Color;\n\n            /**\n             * Class that references a pixel in a picture. Pixel\n             * stands for picture element where picture is\n             * abbreviated pix.  A pixel has a column (x) and\n             * row (y) location in a picture.  A pixel knows how\n             * to get and set the red, green, blue, and alpha\n             * values in the picture.  A pixel also knows how to get\n             * and set the color using a Color object.\n             *\n             * @author Barb Ericson ericson@cc.gatech.edu\n             */\n            public class Pixel\n            {\n\n              ////////////////////////// fields ///////////////////////////////////\n\n              /** the digital picture this pixel belongs to */\n              private DigitalPicture picture;\n\n              /** the x (column) location of this pixel in the picture; (0,0) is top left */\n              private int x;\n\n              /** the y (row) location of this pixel in the picture; (0,0) is top left */\n              private int y;\n\n              ////////////////////// constructors /////////////////////////////////\n\n              /**\n               * A constructor that takes the x and y location for the pixel and\n               * the picture the pixel is coming from\n               * @param picture the picture that the pixel is in\n               * @param x the x location of the pixel in the picture\n               * @param y the y location of the pixel in the picture\n               */\n              public Pixel(DigitalPicture picture, int x, int y)\n              {\n                // set the picture\n                this.picture = picture;\n\n                // set the x location\n                this.x = x;\n\n                // set the y location\n                this.y = y;\n\n              }\n\n              ///////////////////////// methods //////////////////////////////\n\n              /**\n               * Method to get the x location of this pixel.\n               * @return the x location of the pixel in the picture\n               */\n              public int getX() { return x; }\n\n              /**\n               * Method to get the y location of this pixel.\n               * @return the y location of the pixel in the picture\n               */\n              public int getY() { return y; }\n\n              /**\n               * Method to get the row (y value)\n               * @return the row (y value) of the pixel in the picture\n               */\n              public int getRow() { return y; }\n\n              /**\n               * Method to get the column (x value)\n               * @return the column (x value) of the pixel\n               */\n              public int getCol() { return x; }\n\n              /**\n               * Method to get the amount of alpha (transparency) at this pixel.\n               * It will be from 0-255.\n               * @return the amount of alpha (transparency)\n               */\n              public int getAlpha() {\n\n                /* get the value at the location from the picture as a 32 bit int\n                 * with alpha, red, green, blue each taking 8 bits from left to right\n                 */\n                int value = picture.getBasicPixel(x,y);\n\n                // get the alpha value (starts at 25 so shift right 24)\n                // then and it with all 1's for the first 8 bits to keep\n                // end up with from 0 to 255\n                int alpha = (value >> 24) & 0xff;\n\n                return alpha;\n              }\n\n              /**\n               * Method to get the amount of red at this pixel.  It will be\n               * from 0-255 with 0 being no red and 255 being as much red as\n               * you can have.\n               * @return the amount of red from 0 for none to 255 for max\n               */\n              public int getRed() {\n\n                /* get the value at the location from the picture as a 32 bit int\n                 * with alpha, red, green, blue each taking 8 bits from left to right\n                 */\n                int value = picture.getBasicPixel(x,y);\n\n                // get the red value (starts at 17 so shift right 16)\n                // then AND it with all 1's for the first 8 bits to\n                // end up with a resulting value from 0 to 255\n                int red = (value >> 16) & 0xff;\n\n                return red;\n              }\n\n              /**\n               * Method to get the red value from a pixel represented as an int\n               * @param value the color value as an int\n               * @return the amount of red\n               */\n              public static int getRed(int value)\n              {\n                int red = (value >> 16) & 0xff;\n                return red;\n              }\n\n              /**\n               * Method to get the amount of green at this pixel.  It will be\n               * from 0-255 with 0 being no green and 255 being as much green as\n               * you can have.\n               * @return the amount of green from 0 for none to 255 for max\n               */\n              public int getGreen() {\n\n                /* get the value at the location from the picture as a 32 bit int\n                 * with alpha, red, green, blue each taking 8 bits from left to right\n                 */\n                int value = picture.getBasicPixel(x,y);\n\n                // get the green value (starts at 9 so shift right 8)\n                int green = (value >>  8) & 0xff;\n\n                return green;\n              }\n\n              /**\n               * Method to get the green value from a pixel represented as an int\n               * @param value the color value as an int\n               * @return the amount of green\n               */\n              public static int getGreen(int value)\n              {\n                int green = (value >> 8) & 0xff;\n                return green;\n              }\n\n              /**\n               * Method to get the amount of blue at this pixel.  It will be\n               * from 0-255 with 0 being no blue and 255 being as much blue as\n               * you can have.\n               * @return the amount of blue from 0 for none to 255 for max\n               */\n              public int getBlue() {\n\n                /* get the value at the location from the picture as a 32 bit int\n                 * with alpha, red, green, blue each taking 8 bits from left to right\n                 */\n                int value = picture.getBasicPixel(x,y);\n\n                // get the blue value (starts at 0 so no shift required)\n                int blue = value & 0xff;\n\n                return blue;\n              }\n\n              /**\n               * Method to get the blue value from a pixel represented as an int\n               * @param value the color value as an int\n               * @return the amount of blue\n               */\n              public static int getBlue(int value)\n              {\n                int blue = value & 0xff;\n                return blue;\n              }\n\n              /**\n               * Method to get a color object that represents the color at this pixel.\n               * @return a color object that represents the pixel color\n               */\n              public Color getColor()\n              {\n                 /* get the value at the location from the picture as a 32 bit int\n                 * with alpha, red, green, blue each taking 8 bits from left to right\n                 */\n                int value = picture.getBasicPixel(x,y);\n\n                // get the red value (starts at 17 so shift right 16)\n                // then AND it with all 1's for the first 8 bits to\n                // end up with a resulting value from 0 to 255\n                int red = (value >> 16) & 0xff;\n\n                // get the green value (starts at 9 so shift right 8)\n                int green = (value >>  8) & 0xff;\n\n                // get the blue value (starts at 0 so no shift required)\n                int blue = value & 0xff;\n\n                return new Color(red,green,blue);\n              }\n\n              /**\n               * Method to set the pixel color to the passed in color object.\n               * @param newColor the new color to use\n               */\n              public void setColor(Color newColor)\n              {\n                // set the red, green, and blue values\n                int red = newColor.getRed();\n                int green = newColor.getGreen();\n                int blue = newColor.getBlue();\n\n                // update the associated picture\n                updatePicture(this.getAlpha(),red,green,blue);\n              }\n\n              /**\n               * Method to update the picture based on the passed color\n               * values for this pixel\n               * @param alpha the alpha (transparency) at this pixel\n               * @param red the red value for the color at this pixel\n               * @param green the green value for the color at this pixel\n               * @param blue the blue value for the color at this pixel\n               */\n              public void updatePicture(int alpha, int red, int green, int blue)\n              {\n                // create a 32 bit int with alpha, red, green blue from left to right\n                int value = (alpha << 24) + (red << 16) + (green << 8) + blue;\n\n                // update the picture with the int value\n                picture.setBasicPixel(x,y,value);\n              }\n\n              /**\n               * Method to correct a color value to be within 0 to 255\n               * @param the value to use\n               * @return a value within 0 to 255\n               */\n              private static int correctValue(int value)\n              {\n                if (value < 0)\n                  value = 0;\n                if (value > 255)\n                  value = 255;\n                return value;\n              }\n\n              /**\n               * Method to set the red to a new red value\n               * @param value the new value to use\n               */\n              public void setRed(int value)\n              {\n                // set the red value to the corrected value\n                int red = correctValue(value);\n\n                // update the pixel value in the picture\n                updatePicture(getAlpha(), red, getGreen(), getBlue());\n              }\n\n              /**\n               * Method to set the green to a new green value\n               * @param value the value to use\n               */\n              public void setGreen(int value)\n              {\n                // set the green value to the corrected value\n                int green = correctValue(value);\n\n                // update the pixel value in the picture\n                updatePicture(getAlpha(), getRed(), green, getBlue());\n              }\n\n              /**\n               * Method to set the blue to a new blue value\n               * @param value the new value to use\n               */\n              public void setBlue(int value)\n              {\n                // set the blue value to the corrected value\n                int blue = correctValue(value);\n\n                // update the pixel value in the picture\n                updatePicture(getAlpha(), getRed(), getGreen(), blue);\n              }\n\n               /**\n               * Method to set the alpha (transparency) to a new alpha value\n               * @param value the new value to use\n               */\n              public void setAlpha(int value)\n              {\n                // make sure that the alpha is from 0 to 255\n                int alpha = correctValue(value);\n\n                // update the associated picture\n                updatePicture(alpha, getRed(), getGreen(), getBlue());\n              }\n\n              /**\n              * Method to get the distance between this pixel's color and the passed color\n              * @param testColor the color to compare to\n              * @return the distance between this pixel's color and the passed color\n              */\n             public double colorDistance(Color testColor)\n             {\n               double redDistance = this.getRed() - testColor.getRed();\n               double greenDistance = this.getGreen() - testColor.getGreen();\n               double blueDistance = this.getBlue() - testColor.getBlue();\n               double distance = Math.sqrt(redDistance * redDistance +\n                                           greenDistance * greenDistance +\n                                           blueDistance * blueDistance);\n               return distance;\n             }\n\n             /**\n              * Method to compute the color distances between two color objects\n              * @param color1 a color object\n              * @param color2 a color object\n              * @return the distance between the two colors\n              */\n             public static double colorDistance(Color color1,Color color2)\n             {\n               double redDistance = color1.getRed() - color2.getRed();\n               double greenDistance = color1.getGreen() - color2.getGreen();\n               double blueDistance = color1.getBlue() - color2.getBlue();\n               double distance = Math.sqrt(redDistance * redDistance +\n                                           greenDistance * greenDistance +\n                                           blueDistance * blueDistance);\n               return distance;\n             }\n\n             /**\n              * Method to get the average of the colors of this pixel\n              * @return the average of the red, green, and blue values\n              */\n             public double getAverage()\n             {\n               double average = (getRed() + getGreen() + getBlue()) / 3.0;\n               return average;\n             }\n\n              /**\n               * Method to return a string with information about this pixel\n               * @return a string with information about this pixel\n               */\n              public String toString()\n              {\n                return \"Pixel row=\" + getRow() +\n                  \" col=\" + getCol() +\n                  \" red=\" + getRed() +\n                  \" green=\" + getGreen() +\n                  \" blue=\" + getBlue();\n              }\n\n            }\n\n            import javax.imageio.ImageIO;\n            import java.awt.image.BufferedImage;\n            import javax.swing.ImageIcon;\n            import java.awt.*;\n            import java.io.*;\n            import java.awt.geom.*;\n\n            import java.io.ByteArrayOutputStream;\n            //import javax.xml.bind.DatatypeConverter;\n            import java.util.Base64;\n\n            import java.util.Scanner;\n\n            /**\n             * A class that represents a simple picture.  A simple picture may have\n             * an associated file name and a title.  A simple picture has pixels,\n             * width, and height.  A simple picture uses a BufferedImage to\n             * hold the pixels. You can also explore a simple picture.\n             *\n             * @author Barb Ericson ericson@cc.gatech.edu\n             */\n            public class SimplePicture implements DigitalPicture\n            {\n\n              /////////////////////// Fields /////////////////////////\n\n              /**\n               * the file name associated with the simple picture\n               */\n              private String fileName;\n\n              /**\n               * the path name for the file\n               */\n              private String pathName;\n\n              /**\n               * the title of the simple picture\n               */\n              private String title;\n\n              /**\n               * buffered image to hold pixels for the simple picture\n               */\n              private BufferedImage bufferedImage;\n\n              /**\n               * extension for this file (jpg or bmp)\n               */\n              private String extension;\n\n\n             /////////////////////// Constructors /////////////////////////\n\n             /**\n              * A Constructor that takes no arguments.  It creates a picture with\n              * a width of 200 and a height of 100 that is all white.\n              * A no-argument constructor must be given in order for a class to\n              * be able to be subclassed.  By default all subclasses will implicitly\n              * call this in their parent's no-argument constructor unless a\n              * different call to super() is explicitly made as the first line\n              * of code in a constructor.\n              */\n             public SimplePicture()\n             {this(200,100);}\n\n             /**\n              * A Constructor that takes a file name and uses the file to create\n              * a picture\n              * @param fileName the file name to use in creating the picture\n              */\n             public SimplePicture(String fileName)\n             {\n\n               // load the picture into the buffered image\n               load(fileName);\n\n             }\n\n             /**\n              * A constructor that takes the width and height desired for a picture and\n              * creates a buffered image of that size.  This constructor doesn't\n              * show the picture.  The pixels will all be white.\n              * @param width the desired width\n              * @param height the desired height\n              */\n             public  SimplePicture(int width, int height)\n             {\n               bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);\n               title = \"None\";\n               fileName = \"None\";\n               extension = \"jpg\";\n               setAllPixelsToAColor(Color.white);\n             }\n\n             /**\n              * A constructor that takes the width and height desired for a picture and\n              * creates a buffered image of that size.  It also takes the\n              * color to use for the background of the picture.\n              * @param width the desired width\n              * @param height the desired height\n              * @param theColor the background color for the picture\n              */\n             public  SimplePicture(int width, int height, Color theColor)\n             {\n               this(width,height);\n               setAllPixelsToAColor(theColor);\n             }\n\n             /**\n              * A Constructor that takes a picture to copy information from\n              * @param copyPicture the picture to copy from\n              */\n             public SimplePicture(SimplePicture copyPicture)\n             {\n               if (copyPicture.fileName != null)\n               {\n                  this.fileName = new String(copyPicture.fileName);\n                  this.extension = copyPicture.extension;\n               }\n               if (copyPicture.title != null)\n                  this.title = new String(copyPicture.title);\n               if (copyPicture.bufferedImage != null)\n               {\n                 this.bufferedImage = new BufferedImage(copyPicture.getWidth(),  copyPicture.getHeight(), BufferedImage.TYPE_INT_RGB);\n                 this.copyPicture(copyPicture);\n               }\n             }\n\n             /**\n              * A constructor that takes a buffered image\n              * @param image the buffered image\n              */\n             public SimplePicture(BufferedImage image)\n             {\n               this.bufferedImage = image;\n               title = \"None\";\n               fileName = \"None\";\n               extension = \"jpg\";\n             }\n\n             ////////////////////////// Methods //////////////////////////////////\n\n             /**\n              * Method to get the extension for this picture\n              * @return the extension (jpg, bmp, giff, etc)\n              */\n             public String getExtension() { return extension; }\n\n             /**\n              * Method that will copy all of the passed source picture into\n              * the current picture object\n              * @param sourcePicture  the picture object to copy\n              */\n             public void copyPicture(SimplePicture sourcePicture)\n             {\n               Pixel sourcePixel = null;\n               Pixel targetPixel = null;\n\n               // loop through the columns\n               for (int sourceX = 0, targetX = 0;\n                    sourceX < sourcePicture.getWidth() &&\n                    targetX < this.getWidth();\n                    sourceX++, targetX++)\n               {\n                 // loop through the rows\n                 for (int sourceY = 0, targetY = 0;\n                      sourceY < sourcePicture.getHeight() &&\n                      targetY < this.getHeight();\n                      sourceY++, targetY++)\n                 {\n                   sourcePixel = sourcePicture.getPixel(sourceX,sourceY);\n                   targetPixel = this.getPixel(targetX,targetY);\n                   targetPixel.setColor(sourcePixel.getColor());\n                 }\n               }\n\n             }\n\n             /**\n              * Method to set the color in the picture to the passed color\n              * @param color the color to set to\n              */\n             public void setAllPixelsToAColor(Color color)\n             {\n               // loop through all x\n               for (int x = 0; x < this.getWidth(); x++)\n               {\n                 // loop through all y\n                 for (int y = 0; y < this.getHeight(); y++)\n                 {\n                   getPixel(x,y).setColor(color);\n                 }\n               }\n             }\n\n             /**\n              * Method to get the buffered image\n              * @return the buffered image\n              */\n             public BufferedImage getBufferedImage()\n             {\n                return bufferedImage;\n             }\n\n             /**\n              * Method to get a graphics object for this picture to use to draw on\n              * @return a graphics object to use for drawing\n              */\n             public Graphics getGraphics()\n             {\n               return bufferedImage.getGraphics();\n             }\n\n             /**\n              * Method to get a Graphics2D object for this picture which can\n              * be used to do 2D drawing on the picture\n              */\n             public Graphics2D createGraphics()\n             {\n               return bufferedImage.createGraphics();\n             }\n\n             /**\n              * Method to get the file name associated with the picture\n              * @return  the file name associated with the picture\n              */\n             public String getFileName() { return fileName; }\n\n             /**\n              * Method to set the file name\n              * @param name the full pathname of the file\n              */\n             public void setFileName(String name)\n             {\n               fileName = name;\n             }\n\n             /**\n              * Method to get the title of the picture\n              * @return the title of the picture\n              */\n             public String getTitle()\n             { return title; }\n\n             /**\n              * Method to set the title for the picture\n              * @param title the title to use for the picture\n              */\n             public void setTitle(String title)\n             {\n               this.title = title;\n             }\n\n             /**\n              * Method to get the width of the picture in pixels\n              * @return the width of the picture in pixels\n              */\n             public int getWidth() { return bufferedImage.getWidth(); }\n\n             /**\n              * Method to get the height of the picture in pixels\n              * @return  the height of the picture in pixels\n              */\n             public int getHeight() { return bufferedImage.getHeight(); }\n\n             /**\n              * Method to get an image from the picture\n              * @return  the buffered image since it is an image\n              */\n             public Image getImage()\n             {\n               return bufferedImage;\n             }\n\n             /**\n              * Method to return the pixel value as an int for the given x and y location\n              * @param x the x coordinate of the pixel\n              * @param y the y coordinate of the pixel\n              * @return the pixel value as an integer (alpha, red, green, blue)\n              */\n             public int getBasicPixel(int x, int y)\n             {\n                return bufferedImage.getRGB(x,y);\n             }\n\n             /**\n              * Method to set the value of a pixel in the picture from an int\n              * @param x the x coordinate of the pixel\n              * @param y the y coordinate of the pixel\n              * @param rgb the new rgb value of the pixel (alpha, red, green, blue)\n              */\n             public void setBasicPixel(int x, int y, int rgb)\n             {\n               bufferedImage.setRGB(x,y,rgb);\n             }\n\n             /**\n              * Method to get a pixel object for the given x and y location\n              * @param x  the x location of the pixel in the picture\n              * @param y  the y location of the pixel in the picture\n              * @return a Pixel object for this location\n              */\n             public Pixel getPixel(int x, int y)\n             {\n               // create the pixel object for this picture and the given x and y location\n               Pixel pixel = new Pixel(this,x,y);\n               return pixel;\n             }\n\n             /**\n              * Method to get a one-dimensional array of Pixels for this simple picture\n              * @return a one-dimensional array of Pixel objects starting with y=0\n              * to y=height-1 and x=0 to x=width-1.\n              */\n             public Pixel[] getPixels()\n             {\n               int width = getWidth();\n               int height = getHeight();\n               Pixel[] pixelArray = new Pixel[width * height];\n\n               // loop through height rows from top to bottom\n               for (int row = 0; row < height; row++)\n                 for (int col = 0; col < width; col++)\n                   pixelArray[row * width + col] = new Pixel(this,col,row);\n\n               return pixelArray;\n             }\n\n             /**\n              * Method to get a two-dimensional array of Pixels for this simple picture\n              * @return a two-dimensional array of Pixel objects in row-major order.\n              */\n             public Pixel[][] getPixels2D()\n             {\n               int width = getWidth();\n               int height = getHeight();\n               Pixel[][] pixelArray = new Pixel[height][width];\n\n               // loop through height rows from top to bottom\n               for (int row = 0; row < height; row++)\n                 for (int col = 0; col < width; col++)\n                   pixelArray[row][col] = new Pixel(this,col,row);\n\n               return pixelArray;\n             }\n\n             /**\n              * Method to load the buffered image with the passed image\n              * @param image  the image to use\n              */\n             public void load(Image image)\n             {\n               // get a graphics context to use to draw on the buffered image\n               Graphics2D graphics2d = bufferedImage.createGraphics();\n\n               // draw the image on the buffered image starting at 0,0\n               graphics2d.drawImage(image,0,0,null);\n\n               // show the new image\n               show();\n             }\n\n             /**\n              * Method to show the picture in a picture frame\n              */\n             public void show()\n             {\n                 try {\n                     ByteArrayOutputStream output = new ByteArrayOutputStream();\n                     ImageIO.write(this.bufferedImage, \"png\", output);\n                     String result = Base64.getEncoder().encodeToString(output.toByteArray());\n                     //BH: using Base64 instead of DatatypeConverter.printBase64Binary(output.toByteArray());\n                     System.out.println(\"&lt;img src=\\'data:image/\" + this.extension + \";base64,\" + result + \"\\'/>\");\n                 } catch (IOException e) {\n                     System.out.println(\"Errors occured in image conversion\");\n                 }\n             }\n\n             /**\n              * Method to open a picture explorer on a copy (in memory) of this\n              * simple picture\n              */\n             /*\n             public void explore()\n             {\n               // create a copy of the current picture and explore it\n               new PictureExplorer(new SimplePicture(this));\n             }\n             */\n\n             /**\n              * Method to load the picture from the passed file name\n              * @param fileName the file name to use to load the picture from\n              * @throws IOException if the picture isn't found\n              */\n             public void loadOrFail(String fileName) throws IOException\n             {\n                // set the current picture's file name\n               this.fileName = fileName;\n\n               // set the extension\n               int posDot = fileName.lastIndexOf('.');\n               if (posDot >= 0)\n                 this.extension = fileName.substring(posDot + 1);\n\n                // get file location\n                String[] paths = fileName.split(\"/\");\n                this.pathName = \"\";\n                if(paths.length != 1) {\n                    for(int i = 0; i < paths.length - 1; i++) {\n                        this.pathName = this.pathName + paths[i] + \"/\";\n                    }\n                }\n               // if the current title is null use the file name\n               if (title == null)\n                 title = fileName;\n\n               File file = new File(this.fileName);\n\n\n               if (!file.canRead())\n               {\n                 throw new IOException(this.fileName +\n                                     \" could not be opened. Check that you specified the path\");\n               }\n               this.bufferedImage = ImageIO.read(file);\n\n\n             }\n\n             /**\n              * Method to read the contents of the picture from a filename\n              * without throwing errors\n              * @param fileName the name of the file to write the picture to\n              * @return true if success else false\n              */\n             public boolean load(String fileName)\n             {\n                 try {\n                     this.loadOrFail(fileName);\n                     return true;\n\n                 } catch (Exception ex) {\n                     System.out.println(\"There was an error trying to open \" + fileName);\n                     bufferedImage = new BufferedImage(600,200,\n                                                       BufferedImage.TYPE_INT_RGB);\n                     addMessage(\"Couldn't load \" + fileName,5,100);\n                     return false;\n                 }\n\n             }\n\n             /**\n              * Method to load the picture from the passed file name\n              * this just calls load(fileName) and is for name compatibility\n              * @param fileName the file name to use to load the picture from\n              * @return true if success else false\n              */\n             public boolean loadImage(String fileName)\n             {\n                 return load(fileName);\n             }\n\n             /**\n              * Method to draw a message as a string on the buffered image\n              * @param message the message to draw on the buffered image\n              * @param xPos  the x coordinate of the leftmost point of the string\n              * @param yPos  the y coordinate of the bottom of the string\n              */\n             public void addMessage(String message, int xPos, int yPos)\n             {\n               // get a graphics context to use to draw on the buffered image\n               Graphics2D graphics2d = bufferedImage.createGraphics();\n\n               // set the color to white\n               graphics2d.setPaint(Color.white);\n\n               // set the font to Helvetica bold style and size 16\n               graphics2d.setFont(new Font(\"Helvetica\",Font.BOLD,16));\n\n               // draw the message\n               graphics2d.drawString(message,xPos,yPos);\n\n             }\n\n             /**\n              * Method to draw a string at the given location on the picture\n              * @param text the text to draw\n              * @param xPos the left x for the text\n              * @param yPos the top y for the text\n              */\n             public void drawString(String text, int xPos, int yPos)\n             {\n               addMessage(text,xPos,yPos);\n             }\n\n             /**\n               * Method to create a new picture by scaling the current\n               * picture by the given x and y factors\n               * @param xFactor the amount to scale in x\n               * @param yFactor the amount to scale in y\n               * @return the resulting picture\n               */\n              public Picture scale(double xFactor, double yFactor)\n              {\n                // set up the scale transform\n                AffineTransform scaleTransform = new AffineTransform();\n                scaleTransform.scale(xFactor,yFactor);\n\n                // create a new picture object that is the right size\n                Picture result = new Picture((int) (getHeight() * yFactor),\n                                             (int) (getWidth() * xFactor));\n\n                // get the graphics 2d object to draw on the result\n                Graphics graphics = result.getGraphics();\n                Graphics2D g2 = (Graphics2D) graphics;\n\n                // draw the current image onto the result image scaled\n                g2.drawImage(this.getImage(),scaleTransform,null);\n\n                return result;\n              }\n\n              /**\n               * Method to create a new picture of the passed width.\n               * The aspect ratio of the width and height will stay\n               * the same.\n               * @param width the desired width\n               * @return the resulting picture\n               */\n              public Picture getPictureWithWidth(int width)\n              {\n                // set up the scale transform\n                double xFactor = (double) width / this.getWidth();\n                Picture result = scale(xFactor,xFactor);\n                return result;\n              }\n\n              /**\n               * Method to create a new picture of the passed height.\n               * The aspect ratio of the width and height will stay\n               * the same.\n               * @param height the desired height\n               * @return the resulting picture\n               */\n              public Picture getPictureWithHeight(int height)\n              {\n                // set up the scale transform\n                double yFactor = (double) height / this.getHeight();\n                Picture result = scale(yFactor,yFactor);\n                return result;\n              }\n\n             /**\n              * Method to load a picture from a file name and show it in a picture frame\n              * @param fileName the file name to load the picture from\n              * @return true if success else false\n              */\n             public boolean loadPictureAndShowIt(String fileName)\n             {\n               boolean result = true;  // the default is that it worked\n\n               // try to load the picture into the buffered image from the file name\n               result = load(fileName);\n\n               // show the picture in a picture frame\n               show();\n\n               return result;\n             }\n\n             /**\n              * Method to write the contents of the picture to a file with\n              * the passed name\n              * @param fileName the name of the file to write the picture to\n              */\n             public void writeOrFail(String fileName) throws IOException\n             {\n               String extension = this.extension; // the default is current\n\n               // create the file object\n               File file = new File(this.pathName + fileName);\n               //File fileLoc = file.getParentFile(); // directory name\n\n               // if there is no parent directory use the current media dir\n               //if (fileLoc == null)\n               //{\n                 //fileName = FileChooser.getMediaPath(fileName);\n                 //file = new File(fileName);\n                 //fileLoc = file.getParentFile();\n               //}\n\n               // check that you can write to the directory\n               //if (!fileLoc.canWrite()) {\n                //    throw new IOException(fileName +\n                //    \" could not be opened. Check to see if you can write to the directory.\");\n               //}\n\n               // get the extension\n               int posDot = fileName.indexOf('.');\n               if (posDot >= 0)\n                   extension = fileName.substring(posDot + 1);\n\n               // write the contents of the buffered image to the file\n               ImageIO.write(bufferedImage, extension, file);\n\n             }\n\n             /**\n              * Method to write the contents of the picture to a file with\n              * the passed name without throwing errors\n              * @param fileName the name of the file to write the picture to\n              * @return true if success else false\n              */\n             public boolean write(String fileName)\n             {\n                 try {\n                     this.writeOrFail(fileName);\n                     return true;\n                 } catch (Exception ex) {\n                     System.out.println(\"There was an error trying to write \" + fileName);\n                     ex.printStackTrace();\n                     return false;\n                 }\n\n             }\n\n              /**\n               * Method to get the coordinates of the enclosing rectangle after this\n               * transformation is applied to the current picture\n               * @return the enclosing rectangle\n               */\n              public Rectangle2D getTransformEnclosingRect(AffineTransform trans)\n              {\n                int width = getWidth();\n                int height = getHeight();\n                double maxX = width - 1;\n                double maxY = height - 1;\n                double minX, minY;\n                Point2D.Double p1 = new Point2D.Double(0,0);\n                Point2D.Double p2 = new Point2D.Double(maxX,0);\n                Point2D.Double p3 = new Point2D.Double(maxX,maxY);\n                Point2D.Double p4 = new Point2D.Double(0,maxY);\n                Point2D.Double result = new Point2D.Double(0,0);\n                Rectangle2D.Double rect = null;\n\n                // get the new points and min x and y and max x and y\n                trans.deltaTransform(p1,result);\n                minX = result.getX();\n                maxX = result.getX();\n                minY = result.getY();\n                maxY = result.getY();\n                trans.deltaTransform(p2,result);\n                minX = Math.min(minX,result.getX());\n                maxX = Math.max(maxX,result.getX());\n                minY = Math.min(minY,result.getY());\n                maxY = Math.max(maxY,result.getY());\n                trans.deltaTransform(p3,result);\n                minX = Math.min(minX,result.getX());\n                maxX = Math.max(maxX,result.getX());\n                minY = Math.min(minY,result.getY());\n                maxY = Math.max(maxY,result.getY());\n                trans.deltaTransform(p4,result);\n                minX = Math.min(minX,result.getX());\n                maxX = Math.max(maxX,result.getX());\n                minY = Math.min(minY,result.getY());\n                maxY = Math.max(maxY,result.getY());\n\n                // create the bounding rectangle to return\n                rect = new Rectangle2D.Double(minX,minY,maxX - minX + 1, maxY - minY + 1);\n                return rect;\n              }\n\n              /**\n               * Method to get the coordinates of the enclosing rectangle after this\n               * transformation is applied to the current picture\n               * @return the enclosing rectangle\n               */\n              public Rectangle2D getTranslationEnclosingRect(AffineTransform trans)\n              {\n                return getTransformEnclosingRect(trans);\n              }\n\n             /**\n              * Method to return a string with information about this picture\n              * @return a string with information about the picture\n              */\n             public String toString()\n             {\n               String output = \"Simple Picture, filename \" + fileName +\n                 \" height \" + getHeight() + \" width \" + getWidth();\n               return output;\n             }\n\n            } // end of SimplePicture class\n            ]]>\n            </pre>\n            <!-- <pre source=\"datafiles/picture-classes-library.jar\"/> -->\n        </datafile>\n\n        <program label=\"java-only-blue\" interactive='activecode' language=\"java\" add-files=\"file-picture-classes-jar, beach-datafile\" include-source=\"yes\">\n            <code>\n                <![CDATA[\n                import java.awt.*;\n                import java.awt.font.*;\n                import java.awt.geom.*;\n                import java.awt.image.BufferedImage;\n                import java.text.*;\n                import java.util.*;\n                import java.util.List;\n\n                /**\n                 * A class that represents a picture.  This class inherits from\n                 * SimplePicture and allows the student to add functionality to\n                 * the Picture class.\n                 *\n                 * @author Barbara Ericson ericson@cc.gatech.edu\n                 */\n                public class Picture extends SimplePicture\n                {\n                  ///////////////////// constructors //////////////////////////////////\n\n                  /**\n                   * Constructor that takes no arguments\n                   */\n                  public Picture ()\n                  {\n                    /* not needed but use it to show students the implicit call to super()\n                     * child constructors always call a parent constructor\n                     */\n                    super();\n                  }\n\n                  /**\n                   * Constructor that takes a file name and creates the picture\n                   * @param fileName the name of the file to create the picture from\n                   */\n                  public Picture(String fileName)\n                  {\n                    // let the parent class handle this fileName\n                    super(fileName);\n                  }\n\n                  /**\n                   * Constructor that takes the height and width\n                   * @param height the height of the desired picture\n                   * @param width the width of the desired picture\n                   */\n                  public Picture(int height, int width)\n                  {\n                    // let the parent class handle this width and height\n                    super(width,height);\n                  }\n\n                  /**\n                   * Constructor that takes a picture and creates a\n                   * copy of that picture\n                   * @param copyPicture the picture to copy\n                   */\n                  public Picture(Picture copyPicture)\n                  {\n                    // let the parent class do the copy\n                    super(copyPicture);\n                  }\n\n                  /**\n                   * Constructor that takes a buffered image\n                   * @param image the buffered image to use\n                   */\n                  public Picture(BufferedImage image)\n                  {\n                    super(image);\n                  }\n                  ////////////////////// methods ///////////////////////////////////////\n\n                  /**\n                   * Method to return a string with information about this picture.\n                   * @return a string with information about the picture such as fileName,\n                   * height and width.\n                   */\n                  public String toString()\n                  {\n                    String output = \"Picture, filename \" + getFileName() +\n                      \" height \" + getHeight()\n                      + \" width \" + getWidth();\n                    return output;\n\n                  }\n\n                  /**\n                    zeroBlue() method sets the blue values at all pixels to zero\n                 */\n                  public void zeroBlue()\n                  {\n                    Pixel[][] pixels = this.getPixels2D();\n\n                    for (Pixel[] rowArray : pixels)\n                     {\n                       for (Pixel p: rowArray)\n                       {\n                              p.setBlue(0);\n                       }\n                    }\n                  }\n\n\n                 /*\n                    keepOnlyBlue() method sets the blue values at all pixels to zero.\n\n                    Add new method here and call it from main.\n                 */\n\n                  /* Main method for testing\n                   */\n                  public static void main(String[] args)\n                  {\n                    Picture pict = new Picture(\"beach.jpg\");\n                    pict.show();\n                    pict.zeroBlue(); // Change this to call keepOnlyBlue()\n                    pict.show();\n                  }\n                }\n                ]]>\n            </code>\n            <tests>\n                <![CDATA[\n                import static org.junit.Assert.*;\n                import org.junit.*;\n                import java.io.*;\n                import java.util.List;\n                import java.util.ArrayList;\n                import java.util.Arrays;\n\n                public class RunestoneTests extends CodeTestHelper\n                {\n                  @Test\n                  public void test1()\n                  {\n                    String target = \"public void keepOnlyBlue()\";\n                    boolean passed = checkCodeContains(\"keepOnlyBlue() method\",target);\n                    assertTrue(passed);\n                  }\n                  @Test\n                  public void test1b()\n                  {\n                    String target = \".keepOnlyBlue()\";\n                    boolean passed = checkCodeContains(\"Call to keepOnlyBlue() in main\",target);\n                    assertTrue(passed);\n                  }\n\n                  @Test\n                  public void test2()\n                  {\n                    String target = \".setGreen(0);\";\n                    boolean passed = checkCodeContains(\"keepOnlyBlue() setting green pixels to the number 0\",target);\n                    assertTrue(passed);\n                  }\n                   @Test\n                  public void test2b()\n                  {\n                    String target = \".setRed(0);\";\n                    boolean passed = checkCodeContains(\"keepOnlyBlue() setting red pixels to the number 0\",target);\n                    assertTrue(passed);\n                  }\n\n\n                  @Test\n                    public void test3()\n                    {\n                       String target = \"for\";\n                       String code = getCode();\n                       int index = code.indexOf(\"public void keepOnlyBlue()\");\n                       boolean passed = false;\n                       if (index > 0) {\n                        code = code.substring(index);\n                        int num = countOccurences(code, target);\n                        passed = num >= 2;\n                       }\n                       getResults(\"true\", \"\"+passed, \"Checking that keepOnlyBlue() contains 2 for loops\", passed);\n                       assertTrue(passed);\n                    }\n                }\n                ]]>\n            </tests>\n        </program>\n    </section>\n\n    <section xml:id=\"videos-in-runestone\">\n        <title>YouTube Videos</title>\n\n        <p>Runestone uses a YouTube API that broadcasts events when a reader interacts with a video.  In this way, Runestone can record video-watching as an activity.  As <pretext/> output we concede better behavior on small screens (<q>responsiveness</q>) to enable this feature in a Runestone version.  A <attr>label</attr> attribute is necessary for persistence in the Runestone database.  Various <pretext/> features, such as playlists, are not yet supported<mdash/>make a request.</p>\n\n        <video xml:id=\"yt-list-vars\" label=\"youtube-list-vars\" youtube=\"X1-UNHUajfk\" width=\"60%\" margins=\"5% 35%\" preview=\"yt-list-variables.png\">\n            <title>A List Variable Video</title>\n        </video>\n\n        <p>The margins here are asymmetric just as a test.  And this text is here to see where the video ends.</p>\n    </section>\n\n    <section xml:id=\"rune-nested-divisions\">\n        <title>Deeper</title>\n\n        <introduction>\n            <p>This is a stub of a <tag>section</tag>, but it contains two <tag>subsection</tag> which each contain a PROJECT-LIKE item that includes a <tag>program</tag> element, and thus is a coding exercise.  This tests migration to the Runestone assignment area, though Runestone only has divisions two-deep (<q>chapter</q> and <q>subchapter</q>, so both will show up associated with the same <tag>section</tag><mdash/>this one.</p>\n\n            <p>The first is a start of a C program, so will only be interactive on a Runestone server.  The second is a Python program, so will be interactive in all HTML outputs.</p>\n        </introduction>\n\n        <subsection>\n            <title>Subsection One</title>\n\n            <p>An <tag>activity</tag> next.  This one has a <tag>program</tag> so will be made interactive whenever possible.</p>\n\n            <activity label=\"activity-in-subsection\">\n                <title>Activity in a Subsection</title>\n\n                <statement>\n                    <p>We would suggest you do something here.</p>\n                </statement>\n                <program xml:id=\"coding-exercise-partial-three\" interactive=\"activecode\" language=\"c\">\n                    <code>\n                    #include &lt;stdio.h&gt;\n\n                    int main(void)\n                    </code>\n                </program>\n            </activity>\n\n            <p>Nothing suggests this next <tag>project</tag> is interactive.</p>\n\n            <project>\n                <title>Project in a Subsection</title>\n\n                <statement>\n                    <p>You would work this project on paper, most likely.  It is <em>never</em> interactive since there is no indication of a desire for that, even if hosted on a capable platform.</p>\n\n                    <p>A little bit of markup, to test a bug: <m>x^2</m>.  (The bug was only apparent under a deprecated method for specify a question to be an interactive short-answer question on Runestone Academy.)</p>\n                </statement>\n            </project>\n        </subsection>\n\n        <subsection>\n            <title>Subsection Two</title>\n\n            <p>An <tag>exploration</tag> next.</p>\n\n            <exploration label=\"exploration-with-always-static-program\">\n                <title>Exploration in a Subsection</title>\n\n                <statement>\n                    <p>We would suggest now that you explore something here.  In this case we simply provide a CodeLens, which would be graded as an <q>interaction</q>.</p>\n                </statement>\n                <program interactive=\"codelens\" language=\"python\">\n                    <code>\n                    for i in range(10):\n                        print(i)\n                    </code>\n                </program>\n            </exploration>\n\n            <p>The next simple <tag>exercise</tag> will be a <q>short answer</q> question on a capable interactive platform since we have included a <tag>response</tag> element.</p>\n\n            <exercise label=\"interactive-short-answer\">\n                <title>Inline Exercise in a Subsection</title>\n\n                <statement>\n                    <p>I am an interactive short answer question, but only on a capable platform.</p>\n                </statement>\n                <response/>\n            </exercise>\n        </subsection>\n    </section>\n\n    <exercises xml:id=\"true-false-exercises\">\n        <title>True/False Exercises</title>\n\n        <exercise xml:id=\"true-false-one\" label=\"vector-space-dimension\">\n            <title>True/False</title>\n            <idx>vector space</idx>\n            <statement correct=\"no\">\n                <p>Every vector space has finite dimension.</p>\n            </statement>\n            <feedback>\n                <p>The vector space of all polynomials with finite degree has a basis, <m>B = \\{1,x,x^2,x^3,\\dots\\}</m>, which is infinte.</p>\n            </feedback>\n            <hint>\n                <p><m>P_n</m>, the vector space of polynomials with degree at most <m>n</m>, has dimension <m>n+1</m> by <xref ref=\"theorem-exponent-laws\"/>.  [Cross-reference is just a demo, content is not relevant.]  What happens if we relax the defintion and remove the parameter <m>n</m>?</p>\n            </hint>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"multiple-choice-exercises\" groupwork=\"yes\" groupsize=\"5\" label=\"exercises-groupwork\">\n        <title>Multiple Choice Exercises</title>\n\n        <introduction>\n            <p>When this <tag>exercises</tag> division is hosted on Runestone Academy, it will be enabled for group work.  See group selection and submission features are at the end of the division.  See <xref ref=\"worksheet-groupwork\"/> for more detail.  (2024-07-24: experimental.)</p>\n        </introduction>\n\n        <exercise xml:id=\"multiple-choice-one\" label=\"multiple-choice-not-randomized\">\n            <title>Multiple-Choice, Not Randomized, One Answer</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>What color is a stop sign?</p>\n            </statement>\n            <!-- to appear as problem with potentially multiple correct -->\n            <!-- answers (even though there is only one), use           -->\n            <!--                                                        -->\n            <!--     <choices multiple-correct=\"yes\">                   -->\n            <!--                                                        -->\n            <choices>\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>White</p>\n                    </statement>\n                    <feedback>\n                        <p>White might be hard to see.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"multiple-choice-feedback-math\">\n            <title>Multiple-Choice, Math in Feedback</title>\n            <statement>\n                <p>\n                  What is the coefficient on <m>x^4y^4</m> in <m>(2x+5xy^2)^4</m>?\n                </p>\n            </statement>\n            <choices>\n                <choice>\n                    <statement>\n                    <p>\n                        <m>6</m>\n                    </p>\n                    </statement>\n                    <feedback>\n                    <p>\n                        Have you accounted for the <m>2</m> and <m>5</m> that are in the original binomial?\n                    </p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                    <p>\n                        <m>60</m>\n                    </p>\n                    </statement>\n                    <feedback>\n                    <p>\n                        What should the exponents on <m>2</m> and <m>5</m> be when you expand <m>(2x+5xy^2)^4</m>?\n                    </p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                    <p>\n                        <m>100</m>\n                    </p>\n                    </statement>\n                    <feedback>\n                    <p>\n                        Have you included something of the form <m>\\binom{n}{k}</m> in your computations?\n                    </p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                    <p>\n                        <m>600</m>\n                    </p>\n                    </statement>\n                    <feedback>\n                    <p>\n                        Correct! Using the binomial theorem, we get a term containing the monomial <m>x^4y^4</m> by taking two of the first term, and two of the second term in the expansion of <m>(2x+5xy^2)^4</m>, and so this term is equal to\n                        <md>\\binom{4}{2} (2x)^2 (5xy^2)^2 = 6 \\cdot 2^2 5^2 x^4 y^4 = 600 x^4 y^4</md>.\n                    </p>\n                    </feedback>\n                </choice>\n            </choices>\n        </exercise>\n\n        <exercise label=\"multiple-choice-multiple-answers\">\n            <title>Multiple-Choice, Not Randomized, Multiple Answers</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>Which colors might be found in a rainbow?  (Note that the radio buttons now allow multiple buttons to be selected.)</p>\n            </statement>\n            <choices>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is a definitely one of the colors.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Yellow</p>\n                    </statement>\n                    <feedback>\n                        <p>Yes, yellow is correct.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>Black</p>\n                    </statement>\n                    <feedback>\n                        <p>Remember the acronym<ellipsis/><acro>ROY G BIV</acro>.  <q>B</q> stands for blue.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Yes, green is one of the colors.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>Do you know the acronym<ellipsis/><acro>ROY G BIV</acro> for the colors of a rainbow, and their order?</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"multiple-choice-randomized\">\n            <title>Multiple-Choice, Randomized, One Answer</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>What color is a stop sign? [Static versions retain the order as authored.]</p>\n            </statement>\n            <choices randomize=\"yes\">\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>White</p>\n                    </statement>\n                    <feedback>\n                        <p>White might be hard to see.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"multiple-choice-randomized-forced-checkbox\">\n            <title>Multiple-Choice, Randomized, One Answer but with Checkboxes</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>What color is a stop sign? [Static versions retain the order as authored.]</p>\n            </statement>\n            <choices randomize=\"yes\" multiple-correct=\"yes\">\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>Yellow</p>\n                    </statement>\n                    <feedback>\n                        <p>Yellow means slow down.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"multiple-choice-randomized-multiple-answers\">\n            <title>Multiple-Choice, Randomized, Multiple Answers</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>Which colors might be found in a rainbow?  (Note that the radio buttons now allow multiple buttons to be selected.) [Static versions retain the order as authored.]</p>\n            </statement>\n            <choices randomize=\"yes\">\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is a definitely one of the colors.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Yellow</p>\n                    </statement>\n                    <feedback>\n                        <p>Yes, yellow is correct.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>Black</p>\n                    </statement>\n                    <feedback>\n                        <p>Remember the acronym<ellipsis/><acro>ROY G BIV</acro>.  <q>B</q> stands for blue.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Yes, green is one of the colors.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>Do you know the acronym<ellipsis/><acro>ROY G BIV</acro> for the colors of a rainbow, and their order?</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"mathematical-multiple-choice-multiple-answers\">\n            <title>Mathematical Multiple-Choice, Not Randomized, Multiple Answers</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>Which of the following is an antiderivative of <m>2\\sin(x)\\cos(x)</m>?</p>\n            </statement>\n            <choices>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p><m>\\sin^2(x)+832</m></p>\n                    </statement>\n                    <feedback>\n                        <p>Remember that when we write <m>+C</m> on an antiderivative that this is the way we communicate that there are <em>many</em> possible derivatives, but they all <q>differ by a constant</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p><m>\\sin^2(x)</m></p>\n                    </statement>\n                    <feedback>\n                        <p>The derivative given in the statement of the problem looks exactly like an application of the chain rule to <m>\\sin^2(x)</m>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p><m>-\\cos^2(x)</m></p>\n                    </statement>\n                    <feedback>\n                        <p>Take a derivative on <m>-\\cos^2(x)</m> to see that this answer is correct.  Extra credit: does this answer <q>differ by a constant</q> when subtracted from either of the other two correct answers?</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p><m>-2\\cos(x)\\sin(x)</m></p>\n                    </statement>\n                    <feedback>\n                        <p>The antiderivative of a product is not the product of the antiderivatives.  Use the product rule to take a derivative and see that this answer is not correct.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>You can take a derivative on any one of the choices to see if it is correct or not, rather than using techniques of integration to find <em>a single</em> correct answer.</p>\n            </hint>\n        </exercise>\n\n        <exercise xml:id=\"multiple-choice-in-columns\" label=\"multiple-choice-columns\">\n            <title>Multiple-Choice, Not Randomized, One Answer</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>What color is a stop sign?</p>\n                <p>Note: we are experimenting with choices in columns (2025-05-17).  Three columns here.</p>\n            </statement>\n            <!-- to appear as problem with potentially multiple correct -->\n            <!-- answers (even though there is only one), use           -->\n            <!--                                                        -->\n            <!--     <choices multiple-correct=\"yes\">                   -->\n            <!--                                                        -->\n            <choices cols=\"3\">\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>White</p>\n                    </statement>\n                    <feedback>\n                        <p>White might be hard to see.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>Purple</p>\n                    </statement>\n                    <feedback>\n                        <p>Hmmmmmmm.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>Pink</p>\n                    </statement>\n                    <feedback>\n                        <p>I have never seen a pink road sign!</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"parsons-exercises\">\n        <title>Parsons Exercises</title>\n\n        <exercise label=\"number-theory-proof\" adaptive=\"yes\">\n            <title>Parsons Problem, Mathematical Proof</title>\n            <idx>even numbers</idx>\n            <statement>\n                <p>Create a proof of the theorem: If <m>n</m> is an even number, then <m>n\\equiv 0\\mod 2</m>.</p>\n                <p>[Ed. If you examine the source, you will also notice the <tag>exercise</tag> lacks a <attr>language</attr> attribute. It is relying on the <c>docinfo/parsons/@language</c> value that is in bookinfo.xml. If present, that attribute will be used for any Parsons that lack a <attr>language</attr>.]</p>\n            </statement>\n            <blocks>\n                <block order=\"2\">\n                    <p>Suppose <m>n</m> is even.</p>\n                </block>\n                <block order=\"3\">\n                    <choice><p>Then <m>n</m> is a prime number.</p></choice>\n                    <choice correct=\"yes\"><p>Then there exists an <m>m</m> so that <m>n = 2m</m>.</p></choice>\n                    <choice><p>Then there exists an <m>m</m> so that <m>n = 2m + 1</m>.</p></choice>\n                </block>\n                <block order=\"1\" correct=\"no\">\n                    <p>Click the heels of your ruby slippers together three times.</p>\n                </block>\n                <block order=\"5\">\n                    <p>So <m>n = 2m + 0</m>.</p>\n                    <p>This is a superfluous second paragraph in this block.</p>\n                </block>\n                <block order=\"4\">\n                    <p>Thus <m>n\\equiv 0\\mod 2</m>.</p>\n                </block>\n                <block order=\"6\" correct=\"no\">\n                    <p>And a little bit of irrelevant multi-line math\n                        <md>\n                            <mrow>c^2&amp;a^2+b^2</mrow>\n                            <mrow>&amp;x^2+y^2</mrow>\n                        </md>.\n                    </p>\n                </block>\n            </blocks>\n            <hint><p>Dorothy will not be much help with this proof.</p></hint>\n        </exercise>\n\n        <exercise label=\"parsons-with-partial-order\" adaptive=\"yes\" indentation=\"hide\" language=\"python\">\n            <title>Parsons Problem, Partial Ordering</title>\n            <statement>\n                <p>Parsons problems can specify a partial ordering that allows for multiple valid solutions.</p>\n                <p>Try putting the blocks in a valid order to calculate and print<c>c</c> Only use the required blocks. There are many valid orderings.</p>\n            </statement>\n            <blocks>\n                <block order=\"5\" name=\"math\">\n                    <cline>import math</cline>\n                </block>\n                <block order=\"7\" correct=\"no\">\n                    <cline>import antigravity</cline>\n                </block>\n                <block order=\"6\" name=\"a\">\n                    <cline>a = 3</cline>\n                </block>\n                <block order=\"2\" name=\"b\">\n                    <choice correct=\"yes\">\n                        <cline>b = 4</cline>\n                    </choice>\n                    <choice>\n                        <cline>4 = b</cline>\n                    </choice>\n                </block>\n                <block order=\"3\" name=\"cSq\" depends=\"a b\">\n                    <cline>cSquared = a ** 2 + b ** 2</cline>\n                </block>\n                <block order=\"1\" name=\"c\" depends=\"cSq math\">\n                    <cline>c = math.sqrt(cSquared)</cline>\n                </block>\n                <block order=\"4\" depends=\"c\">\n                    <cline>print(c)</cline>\n                </block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"prime-number-program-indent-yes\" language=\"python\" adaptive=\"yes\" indentation=\"hide\">\n            <title>Parsons Problem, Programming</title>\n            <idx>prime numbers</idx>\n            <idx>Sieve of Eratosthenes</idx>\n            <statement>\n                <p>The Sieve of Eratosthenes computes prime numbers by starting with a finite list of the integers bigger than 1.  The first member of the list is a prime and is saved/recorded.  Then all multiples of that prime (which not a prime, excepting the prime itself!) are removed from the list.  Now the first number remaining in the list is the next prime number.  And the process repeats.</p>\n                <p>The code blocks below can be rearranged to form one of the many possible programs to implement this algorithm to compute a list of all the primes less than <m>250</m>. [Ed. this version of this problem requires the reader to provide the necessary indentation.]</p>\n                <p>This reprises <xref ref=\"sieve-primes\"/>.</p>\n            </statement>\n            <blocks>\n                <block order=\"6\">\n                    <cline>n = 250</cline>\n                </block>\n                <block order=\"2\">\n                    <choice correct=\"yes\">\n                        <cline>primes = []</cline>\n                        <cline>candidates = list(range(2,n))</cline>\n                    </choice>\n                    <choice>\n                        <cline>candidates = []</cline>\n                        <cline>primes = list(range(2,n))</cline>\n                    </choice>\n                </block>\n                <block order=\"7\" correct=\"no\">\n                    <cline>primes = candidates + [p]</cline>\n                </block>\n                <block order=\"8\">\n                    <cline>while candidates:</cline>\n                </block>\n                <block order=\"3\">\n                    <cline>    p = candidates[0]</cline>\n                    <cline>    primes.append(p)</cline>\n                </block>\n                <block order=\"1\">\n                    <cline>    for nonprime in range(p, n, p):</cline>\n                </block>\n                <block order=\"5\">\n                    <cline>        if nonprime in candidates:</cline>\n                    <cline>            candidates.remove(nonprime)</cline>\n                </block>\n                <block order=\"4\">\n                    <cline>print(primes)</cline>\n                </block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"parsons-with-executable\" language=\"python\" adaptive=\"yes\" indentation=\"show\">\n            <title>Parsons Problem with executable</title>\n            <statement>\n                <p>Parsons problems that have a <c>language</c> specified that corresponds to a valid activecode language can be made runnable.</p>\n                <p>Complete the Python function <c>isolateRed(p)</c> If either the blue or green is higher than the red, average the three color values and set red, green, and blue to be that average. Otherwise, do nothing to <c>p</c>.</p>\n                <p>After you check a correct answer you will be able to Run the code you created - it will be used to modify the image shown below.</p>\n\n                <!-- 300px wide so 300/600 = 50% -->\n                <datafile label=\"golden-gate2\" filename=\"golden-gate.png\">\n                    <image source=\"datafiles/golden-gate-bridge.png\" width=\"50%\"/>\n                </datafile>\n\n            </statement>\n            <blocks>\n                <block order=\"4\">\n                    <cline>def isolateRed(p):</cline>\n                </block>\n                <block order=\"2\">\n                    <cline>    if p.green &gt; p.red or p.blue &gt; p.red:</cline>\n                </block>\n                <block order=\"3\">\n                    <cline>        avg = (p.red + p.blue + p.green) / 3</cline>\n                </block>\n                <block order=\"1\">\n                    <cline>        p.red = avg</cline>\n                    <cline>        p.blue = avg</cline>\n                    <cline>        p.green = avg</cline>\n                </block>\n            </blocks>\n            <!-- note that the blank lines in pre and postabmbles are intentional to -->\n            <!-- separate those from user code, but you might not always want them   -->\n            <program-preamble>\n                print(\"Using your code to isolate the red in the Golden Gate Bridge image.\")\n                import image\n\n            </program-preamble>\n            <!-- the program is empty as its contents will be replaced by student code -->\n            <program datafile=\"golden-gate.png\" codelens=\"no\"/>\n            <program-postamble>\n\n                img = image.Image(\"golden-gate.png\")\n                win = image.ImageWin(img.getWidth(), img.getHeight())\n                img.draw(win)\n\n                # img.setDelay(delay, number of pixels between delay)\n                # setDelay(1, 400) will speed up a lot\n                img.setDelay(1,50)\n\n                for row in range(img.getHeight()):\n                    for col in range(img.getWidth()):\n                        p = img.getPixel(col, row)\n                        isolateRed(p)\n                        img.setPixel(col, row, p)\n            </program-postamble>\n        </exercise>\n\n        <exercise label=\"prime-number-program-indent-no\" language=\"python\" adaptive=\"yes\" indentation=\"show\">\n            <title>Parsons Problem, Programming</title>\n            <idx>prime numbers</idx>\n            <idx>Sieve of Eratosthenes</idx>\n            <statement>\n                <p>The Sieve of Eratosthenes computes prime numbers by starting with a finite list of the integers bigger than 1.  The first member of the list is a prime and is saved/recorded.  Then all multiples of that prime (which not a prime, excepting the prime itself!) are removed from the list.  Now the first number remaining in the list is the next prime number.  And the process repeats.</p>\n                <p>The code blocks below can be rearranged to form one of the many possible programs to implement this algorithm to compute a list of all the primes less than <m>250</m>. [Ed. this version of this problem does not require the reader to provide the necessary indentation, which is the default.]</p>\n                <p>This reprises <xref ref=\"sieve-primes\"/>.</p>\n            </statement>\n            <blocks>\n                <block order=\"6\">\n                    <cline>n = 250</cline>\n                </block>\n                <block order=\"2\">\n                    <choice correct=\"yes\">\n                        <cline>primes = []</cline>\n                        <cline>candidates = list(range(2,n))</cline>\n                    </choice>\n                    <choice>\n                        <cline>candidates = []</cline>\n                        <cline>primes = list(range(2,n))</cline>\n                    </choice>\n                </block>\n                <block order=\"7\" correct=\"no\">\n                    <cline>primes = candidates + [p]</cline>\n                </block>\n                <block order=\"8\">\n                    <cline>while candidates:</cline>\n                </block>\n                <block order=\"3\">\n                    <cline>    p = candidates[0]</cline>\n                    <cline>    primes.append(p)</cline>\n                </block>\n                <block order=\"1\">\n                    <cline>    for nonprime in range(p, n, p):</cline>\n                </block>\n                <block order=\"5\">\n                    <cline>        if nonprime in candidates:</cline>\n                    <cline>            candidates.remove(nonprime)</cline>\n                </block>\n                <block order=\"4\">\n                    <cline>print(primes)</cline>\n                </block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"number-theory-proof-numbered-left\" adaptive=\"yes\" language=\"natural\">\n            <title>Parsons Problem, Mathematical Proof, Numbered Blocks</title>\n            <idx>even numbers</idx>\n            <statement>\n                <p>Create a proof of the theorem: If <m>n</m> is an even number, then <m>n\\equiv 0\\mod 2</m>. [Ed.  This version has numbered blocks, online they are on the right end of the block.]</p>\n            </statement>\n            <blocks numbered=\"right\">\n                <block order=\"2\">\n                    <p>Suppose <m>n</m> is even.</p>\n                </block>\n                <block order=\"3\">\n                    <choice><p>Then <m>n</m> is a prime number.</p></choice>\n                    <choice correct=\"yes\"><p>Then there exists an <m>m</m> so that <m>n = 2m</m>.</p></choice>\n                    <choice><p>Then there exists an <m>m</m> so that <m>n = 2m + 1</m>.</p></choice>\n                </block>\n                <block order=\"1\" correct=\"no\">\n                    <p>Click the heels of your ruby slippers together three times.</p>\n                </block>\n                <block order=\"5\">\n                    <p>So <m>n = 2m + 0</m>.</p>\n                    <p>This is a superfluous second paragraph in this block.</p>\n                </block>\n                <block order=\"4\">\n                    <p>Thus <m>n\\equiv 0\\mod 2</m>.</p>\n                </block>\n            </blocks>\n            <hint><p>Dorothy will not be much help with this proof.</p></hint>\n        </exercise>\n\n        <exercise label=\"prime-number-program-numbered-right\" language=\"python\" adaptive=\"yes\" indentation=\"hide\">\n            <title>Parsons Problem, Programming</title>\n            <idx>prime numbers</idx>\n            <idx>Sieve of Eratosthenes</idx>\n            <statement>\n                <p>The Sieve of Eratosthenes computes prime numbers by starting with a finite list of the integers bigger than 1.  The first member of the list is a prime and is saved/recorded.  Then all multiples of that prime (which not a prime, excepting the prime itself!) are removed from the list.  Now the first number remaining in the list is the next prime number.  And the process repeats.</p>\n                <p>The code blocks below can be rearranged to form one of the many possible programs to implement this algorithm to compute a list of all the primes less than <m>250</m>. [Ed.  This version has numbered blocks, online they are on the left end of the block.]</p>\n                <p>This reprises <xref ref=\"sieve-primes\"/>.</p>\n            </statement>\n            <blocks numbered=\"left\">\n                <block order=\"6\">\n                    <cline>n = 250</cline>\n                </block>\n                <block order=\"2\">\n                    <choice correct=\"yes\">\n                        <cline>primes = []</cline>\n                        <cline>candidates = list(range(2,n))</cline>\n                    </choice>\n                    <choice>\n                        <cline>candidates = []</cline>\n                        <cline>primes = list(range(2,n))</cline>\n                    </choice>\n                </block>\n                <block order=\"7\" correct=\"no\">\n                    <cline>primes = candidates + [p]</cline>\n                </block>\n                <block order=\"8\">\n                    <cline>while candidates:</cline>\n                </block>\n                <block order=\"3\">\n                    <cline>    p = candidates[0]</cline>\n                    <cline>    primes.append(p)</cline>\n                </block>\n                <block order=\"1\">\n                    <cline>    for nonprime in range(p, n, p):</cline>\n                </block>\n                <block order=\"5\">\n                    <cline>        if nonprime in candidates:</cline>\n                    <cline>            candidates.remove(nonprime)</cline>\n                </block>\n                <block order=\"4\">\n                    <cline>print(primes)</cline>\n                </block>\n            </blocks>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"horizontal-parsons-exercises\">\n        <title>Horizontal Parsons Exercises</title>\n\n        <exercise label=\"horizontal-parson-sql-statement-simple\" language=\"sql\">\n            <title>Parsons Problem, SQL statement</title>\n            <statement>\n                <p>Form the SQL statement by rearranging the four blocks.</p>\n                <!-- <p>Note: for this SQL exercise, and the others following, blocks are authored as code via a <tag>c</tag> element, in order that the text pass through to the compiler with no changes.</p> -->\n            </statement>\n            <blocks layout=\"horizontal\" randomize=\"yes\">\n                <block order=\"2\"><c>SELECT</c></block>\n                <block order=\"1\"><c>*</c></block>\n                <block order=\"4\"><c>FROM</c></block>\n                <block order=\"3\"><c>test</c></block>\n            </blocks>\n        </exercise>\n        <exercise label=\"horizontal-parson-python-test\" language=\"python\">\n          <title>Parsons Problem, Python import</title>\n          <statement>\n              <p>Testing syntax highlighting.</p>\n          </statement>\n          <blocks layout=\"horizontal\" randomize=\"yes\">\n              <block order=\"2\"><c>from</c></block>\n              <block order=\"1\"><c>math</c></block>\n              <block order=\"4\"><c>import</c></block>\n              <block order=\"3\"><c>pi</c></block>\n          </blocks>\n        </exercise>\n        <exercise label=\"horizontal-parson-sql-statement-no-randomize\" language=\"sql\">\n            <title>Parsons Problem, SQL statement, no randomization</title>\n            <statement>\n                <p>Form the SQL statement by rearranging the four blocks.  This version of this problem will <em>always</em> present the blocks in the same fixed order (but incorrect, hopefully!), as prescribed by the author in the source.</p>\n            </statement>\n            <blocks layout=\"horizontal\" randomize=\"no\">\n                <block order=\"2\"><c>SELECT</c></block>\n                <block order=\"1\"><c>*</c></block>\n                <block order=\"4\"><c>FROM</c></block>\n                <block order=\"3\"><c>test</c></block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"horizontal-parson-sql-statement-with-db\" language=\"sql\" database=\"sql/test.db\">\n            <title>Parsons Problem, SQL statement, automatic feedback</title>\n            <statement>\n                <p>Form the SQL statement by rearranging the four blocks.</p>\n            </statement>\n            <blocks layout=\"horizontal\" randomize=\"yes\">\n                <block order=\"2\"><c>SELECT</c></block>\n                <block order=\"1\"><c>*</c></block>\n                <block order=\"4\"><c>FROM</c></block>\n                <block order=\"3\"><c>test</c></block>\n            </blocks>\n            <tests>\n            assert 1,1 == world\n            assert 0,1 == hello\n            assert 2,1 == 42\n            </tests>\n        </exercise>\n\n        <exercise label=\"horizontal-parson-natural\" language=\"natural\">\n            <title>Parsons Problem, Natural Language</title>\n            <statement>\n                <p>Form the sentence often used to show font samples.  You can reuse blocks as needed.</p>\n            </statement>\n            <blocks layout=\"horizontal\" reuse=\"yes\" randomize=\"yes\">\n                <block ref=\"font-the\" order=\"6\"/>\n                <block order=\"8\">quick</block>\n                <block order=\"2\">brown</block>\n                <block order=\"3\">fox</block>\n                <block order=\"1\">jumped</block>\n                <block order=\"5\">over</block>\n                <block xml:id=\"font-the\">the</block>\n                <block order=\"7\">lazy</block>\n                <block order=\"4\">dog</block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"horizontal-parson-natural-distractor\" language=\"natural\">\n            <title>Parsons Problem, Natural Language, with Distractors</title>\n            <statement>\n                <p>Form the sentence often used to show font samples.  Again, but now with distractors.</p>\n            </statement>\n            <blocks layout=\"horizontal\">\n                <block ref=\"font-the-two\" order=\"7\"/>\n                <block order=\"10\" correct=\"yes\">quick</block>\n                <block order=\"2\">brown</block>\n                <block order=\"3\">fox</block>\n                <block order=\"1\">jumped</block>\n                <block order=\"8\" correct=\"no\">foo</block>\n                <block order=\"6\">over</block>\n                <block xml:id=\"font-the-two\">the</block>\n                <block order=\"9\">lazy</block>\n                <block order=\"5\" correct=\"no\">bar</block>\n                <block order=\"4\">dog</block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"horizontal-parson-sql-statement-reusable\" language=\"sql\">\n            <title>Parsons Problem, SQL statement, reusable</title>\n            <statement>\n                <p>Form the SQL statement by rearranging the four blocks.  Same problem as above, but we allow blocks to be reused (even though the solution does not require that).</p>\n            </statement>\n            <blocks layout=\"horizontal\" reuse=\"yes\" randomize=\"yes\">\n                <block order=\"2\"><c>SELECT</c></block>\n                <block order=\"1\"><c>*</c></block>\n                <block order=\"4\"><c>FROM</c></block>\n                <block order=\"3\"><c>test</c></block>\n            </blocks>\n        </exercise>\n\n        <exercise label=\"horizontal-parson-math-test\" language=\"math\">\n            <title>Parsons Problem with math blocks</title>\n\n            <statement>\n                <p>\n                Testing math mode blocks - correct answer is <m>\\pi\\sum\\beta\\alpha</m>\n                </p>\n            </statement>\n            <blocks layout=\"horizontal\" randomize=\"yes\">\n                <block order=\"2\"><m>\\pi</m></block>\n                <block order=\"1\"><m>\\sum</m></block>\n                <block order=\"4\"><m>\\beta</m></block>\n                <block order=\"3\"><m>\\alpha</m></block>\n            </blocks>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"matching-exercises\">\n        <title>Matching Exercises</title>\n\n        <introduction>\n          <p>\n            Matching exercises come in two varieties. Their differences are most noticeable in interactive versions.\n            <dl>\n                <li>\n                    <title>Cardsort</title>\n                    <p>A <tag>cardsort</tag> asks users to match items in a 1-1 or many-1 fashion. The interactive version of these involves dragging <q>card</q>s from the left column (the <tag>premise</tag>s) into containers on the right (the <tag>response</tag>s).</p>\n                </li>\n                <li>\n                    <title>Matching</title>\n                    <p>A <tag>matching</tag> interactive asks users to form connections between the <tag>premise</tag>s in the left column and the <tag>response</tag>s on the right. This format supports many-many matches.</p>\n                </li>\n            </dl>\n          </p>\n        </introduction>\n\n        <!-- https://www.britannica.com/list/25-decade-defining-events-in-us-history -->\n        <exercise xml:id=\"matching-one\" label=\"matching-dates\">\n            <title>Cardsort Problem, Dates</title>\n            <idx>matching US dates</idx>\n            <statement>\n                <p>Match each event in United States history with the year it happened.</p>\n            </statement>\n            <feedback>\n                <p>Review <url href=\"https://www.britannica.com/list/25-decade-defining-events-in-us-history\" visual=\"www.britannica.com/list/25-decade-defining-events-in-us-history\">Encyclopedia Brittania, 25 Decade-Defining Events in U.S. History</url>url.</p>\n            </feedback>\n            <cardsort>\n                <match>\n                    <premise order=\"4\">Monroe Doctrine</premise>\n                    <response>1823</response>\n                </match>\n                <match>\n                    <premise order=\"3\">Haymarket Riot</premise>\n                    <response>1886</response>\n                </match>\n                <match>\n                    <premise order=\"1\">Louisiana Purchase</premise>\n                    <response>1803</response>\n                </match>\n                <match>\n                    <premise order=\"2\">Battle of Gettysburg</premise>\n                    <response>1863</response>\n                </match>\n            </cardsort>\n        </exercise>\n\n        <exercise label=\"matching-derivatives\">\n            <title>Cardsort Problem, Derivatives</title>\n            <idx>matching derivatives</idx>\n            <statement>\n                <p>Match each function with its derivative.</p>\n            </statement>\n            <feedback>\n                <p>Did you compute the derivative of each function in the premises (left column)?</p>\n            </feedback>\n            <cardsort>\n                <match>\n                    <premise order=\"1\"><m>x^3-6x^2+5</m></premise>\n                    <response><m>3x^2-12x</m></response>\n                </match>\n                <match>\n                    <premise order=\"3\"><m>x^{-3}</m></premise>\n                    <response><m>-3x^{-4}</m></response>\n                </match>\n                <match>\n                    <premise order=\"2\"><m>(x+1)^2</m></premise>\n                    <response><m>2x+2</m></response>\n                </match>\n            </cardsort>\n        </exercise>\n\n        <exercise label=\"matching-bases\">\n            <title>Cardsort Problem, Linear Algebra</title>\n            <idx>matching bases and subspaces</idx>\n            <statement>\n                <p>Match each subspace with a basis for that subspace. (You may assume that each set is really a basis for at least one of the subspaces.)</p>\n            </statement>\n            <feedback>\n                <p>Each putative basis is a subset of exactly one of the three subspaces.  So for each subspace, two of the three sets can be ruled out by simply testing that the vectors of the basis are members of the subspace, via the membership criteria.</p>\n            </feedback>\n            <cardsort>\n                <match>\n                    <premise order=\"1\"><m>\\left\\{\\langle x,y,z\\rangle\\mid - y + z = 0\\right\\}</m></premise>\n                    <response><m>\\left\\{\\langle -4, 3, 3\\rangle, \\langle 3, -2, -2 \\rangle\\right\\}</m></response>\n                </match>\n                <match>\n                    <premise order=\"3\"><m>\\left\\{\\langle x,y,z\\rangle\\mid -3x - 5y + z = 0\\right\\}</m></premise>\n                    <response><m>\\left\\{\\langle -4, 3, 3\\rangle, \\langle 5, -4, -5 \\rangle\\right\\}</m></response>\n                </match>\n                <match>\n                    <premise order=\"2\"><m>\\left\\{\\langle x,y,z\\rangle\\mid -2x - 5y + 2z = 0\\right\\}</m></premise>\n                    <response><m>\\left\\{\\langle 3, -2, -2 \\rangle, \\langle 5, -4, -5 \\rangle\\right\\}</m></response>\n                </match>\n            </cardsort>\n            <hint>\n                <p>For openers, a basis for a subspace must be a <em>subset</em> of the subspace.</p>\n            </hint>\n        </exercise>\n\n<exercise label=\"matching-function-types\">\n    <title>Cardsort Problem, Function Types</title>\n    <idx>matching function types</idx>\n    <statement>\n      <p>\n        Sort the following functions into their correct categories. \n      </p>\n    </statement>\n    <feedback>\n      <p>\n        Review\n        <url href=\"https://activecalculus.org/prelude/sec-changing-linear.html\" visual=\"A precalculus textbook that could help\"> Active Prelude to Calculus</url>\n        url.\n      </p>\n    </feedback>\n    <cardsort>\n    <match>\n      <response>Linear</response>\n      <premise order=\"4\"><m>y=5x+3</m></premise>\n      <premise order=\"5\"><m>\\pi x - 6y = \\sqrt{2}</m></premise>\n      <premise order=\"6\"><m>y=\\frac{-1}{2}x+e</m></premise>\n    </match>\n    <match>\n      <response>Quadratic</response>\n    </match>\n    <match>\n      <premise order=\"7\"><m>y=x^3-x</m></premise>\n    </match>\n    <match>\n      <response>Exponential</response>\n      <premise order=\"1\"><m>y=2^x</m></premise>\n    </match>\n    <match>\n      <response>Power</response>\n      <premise order=\"2\"><m>y=x^3</m></premise>\n      <premise order=\"3\"><m>y=\\sqrt{x}</m></premise>\n    </match>\n    </cardsort>\n  </exercise>\n\n\n        <exercise label=\"matching-playing-cards\">\n            <title>Matching Problem, Playing Cards</title>\n            <idx><h>matching</h><h>playing cards</h></idx>\n            <statement>\n              <p>\n                Associate each playing card with every applicable property.\n              </p>\n            </statement>\n            <feedback>\n              <p>\n                This one should not be very hard.  And we have a gratuitous image to test the use of HTML in this component.\n              </p>\n              <image source=\"datafiles/golden-gate-bridge.png\" width=\"50%\"/>\n            </feedback>\n            <matching>\n                <premise ref=\"jack heart\">Jack of Hearts</premise>\n                <premise ref=\"ace spade\">Ace of Spades</premise>\n                <premise ref=\"queen spade\">Queen of Spades</premise>\n                <premise ref=\"king club\">King of Clubs</premise>\n                <premise ref=\"queen diamond\">Queen of Diamonds</premise>\n                <!--  -->\n                <response xml:id=\"ace\" order=\"8\">Ace</response>\n                <response xml:id=\"king\" order=\"7\">King</response>\n                <response xml:id=\"queen\" order=\"6\">Queen</response>\n                <response xml:id=\"jack\" order=\"5\">Jack</response>\n                <response xml:id=\"heart\" order=\"4\">Heart</response>\n                <response xml:id=\"diamond\" order=\"3\">Diamond</response>\n                <response xml:id=\"club\" order=\"2\">Club</response>\n                <response xml:id=\"spade\" order=\"1\">Spade</response>\n            </matching>\n        </exercise>\n\n        <exercise label=\"matching-music-history\">\n            <title>Matching Problem, Popular Music History</title>\n            <idx>matching music history</idx>\n            <statement>\n              <p>\n                Drag each performer onto every applicable category.\n              </p>\n            </statement>\n            <feedback>\n              <p>\n                Paul McCartney, Ringo Starr, Eric Clapton, Elton John.  Jethro Tull is the name of a band, not a performer, and\n                its best-known member would be the flautist Ian Anderson.\n              </p>\n            </feedback>\n            <matching>\n                <premise ref=\"beatle\">Paul</premise>\n                <premise ref=\"beatle drum\">Ringo</premise>\n                <premise ref=\"guitar yardbirds\">Eric</premise>\n                <premise ref=\"piano\">Elton</premise>\n                <premise>Jethro</premise>\n                <!--  -->\n                <response xml:id=\"beatle\">Beatle</response>\n                <response xml:id=\"yardbirds\">Yardbirds</response>\n                <response xml:id=\"guitar\">Guitarist</response>\n                <response xml:id=\"drum\">Drummer</response>\n                <response xml:id=\"flute\">Flautist</response>\n                <response xml:id=\"harp\">Harpist</response>\n                <response xml:id=\"piano\">Pianist</response>\n                <response xml:id=\"math\"><em>Some</em> \"Math\": <m>\\sin(x^2)</m></response>\n            </matching>\n        </exercise>\n\n        <exercise xml:id=\"cardsort-basic\" label=\"cardsort-basic\">\n            <title>Cardsort Problem, Basic Arithmetic</title>\n            <idx>matching US dates</idx>\n            <statement>\n                <p>This is a simple exercise to test some grading behavior.</p>\n            </statement>\n            <cardsort>\n                <match>\n                    <premise order=\"1\">2 + 3</premise>\n                    <premise order=\"3\">4 + 1</premise>\n                    <response>5</response>\n                </match>\n                <match>\n                    <premise order=\"2\"><m>12 + 2</m></premise>\n                    <response>14</response>\n                </match>\n            </cardsort>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"clickable-area-exercises\">\n        <title>Clickable Area Exercises</title>\n\n        <exercise label=\"clickable-text\">\n            <title>Clickable Areas, <q>Regular</q> Text</title>\n\n            <statement>\n                <p>Identify (by clicking, or by circling) all of the nouns in this quotation by Eleanor Roosevelt.</p>\n            </statement>\n\n            <areas>\n                <p><q>The <area>future</area> belongs to <area correct=\"no\">those</area> who believe in the <area correct=\"yes\">beauty</area> of <area correct=\"no\">their</area> <area>dreams</area>.</q></p>\n            </areas>\n\n            <feedback>\n                <p>The incorrect words are pronouns.</p>\n            </feedback>\n        </exercise>\n\n        <exercise label=\"clickable-code\">\n            <title>Clickable Areas, Code</title>\n\n            <statement>\n                <p>Identify (by clicking, or by circling) all of the assignment statements in this Python function.</p>\n            </statement>\n\n            <areas language=\"python\">\n                <cline><area correct=\"no\">def main():</area></cline>\n                <cline>    <area correct=\"yes\">x = 4</area></cline>\n                <cline>    for i in range(5):</cline>\n                <cline>        <area>y = i</area></cline>\n                <cline>        <area correct=\"no\">if y > 2:</area></cline>\n                <cline>            print(y)</cline>\n            </areas>\n\n            <feedback>\n                <p>Remember, the operator <c>=</c> is used for assignment.</p>\n            </feedback>\n        </exercise>\n\n        <exercise label=\"clickable-table\">\n            <title>Clickable Areas, Text in a Table</title>\n\n            <statement>\n                <p>A two-dimensional array was created in Python with the list comprehension:<cd>\n                        <cline>[[0 for x in range(3)] for y in range(2)]</cline>\n                </cd>Then the values were (mostly) changed from zeros and the final array is shown below.</p>\n                <p>Identify (by clicking, or by circling) all of the boolean values in the array.</p>\n                <!-- <p>Note that every entry is inline code, authored with a <tag>c</tag>.</p> -->\n            </statement>\n\n            <areas>\n                <tabular top=\"minor\" bottom=\"minor\" left=\"minor\" right=\"minor\">\n                    <row>\n                        <cell><c>42</c></cell>\n                        <cell><area><c>True</c></area></cell>\n                        <cell><area correct=\"no\"><c>'towel'</c></area></cell>\n                    </row>\n                    <row>\n                        <cell><area correct=\"no\"><c>'true'</c></area></cell>\n                        <cell><c>0</c></cell>\n                        <cell><area><c>False</c></area></cell>\n                    </row>\n                </tabular>\n\n                <p>This second table has no <tag>area</tag>, in order to test CSS for tables.</p>\n\n                <tabular top=\"minor\" bottom=\"minor\" left=\"minor\" right=\"minor\">\n                    <row>\n                        <cell><c>42</c></cell>\n                        <cell><c>True</c></cell>\n                        <cell><c>'towel'</c></cell>\n                    </row>\n                    <row>\n                        <cell><c>'true'</c></cell>\n                        <cell><c>0</c></cell>\n                        <cell><c>False</c></cell>\n                    </row>\n                </tabular>\n            </areas>\n            <hint>\n                <p>Python boolean variables begin with capital latters.</p>\n            </hint>\n            <feedback>\n                <p>Python boolean variables are <c>True</c> and <c>False</c>.  A value in quotation marks is a string, not a boolean.</p>\n            </feedback>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"select-exercises\">\n        <title>Select Exercises</title>\n\n        <introduction>\n            <p>These <term>select</term> questions specify a list of extant questions, and the reader, or Runestone, selects questions from the list to be graded (in different ways). They are only really functional with a database of students in a course, i.e.<nbsp/>when hosted on Runestone.</p>\n        </introduction>\n\n        <!-- Select one at random -->\n        <exercise label=\"question-select\">\n            <title>Three-way Select Question</title>\n            <select grade=\"random\" questions=\"true-false-one multiple-choice-one matching-one\"/>\n        </exercise>\n\n        <!-- Select according to a student's group (A or B) -->\n        <exercise label=\"ab-experiment\">\n            <title>A/B Experiment Select Question</title>\n            <select grade=\"ab-experiment\" questions=\"true-false-one multiple-choice-one\" experiment-name=\"sample-book\"/>\n        </exercise>\n\n        <!-- Select grades first alwys, others to view -->\n        <exercise label=\"toggle-first\">\n            <title>Grade First Question</title>\n            <select grade=\"first\" questions=\"true-false-one multiple-choice-one\"/>\n        </exercise>\n\n        <!-- Select grades any one reader chooses -->\n        <exercise label=\"toggle-any\">\n            <title>Grade Any Question</title>\n            <select grade=\"any\" questions=\"true-false-one multiple-choice-one\"/>\n        </exercise>\n\n    </exercises>\n\n    <exercises xml:id=\"short-answer-exercises\">\n        <title>Short Answer Exercises</title>\n\n        <exercise label=\"short-answer-question\">\n            <title>Short Answer</title>\n\n            <statement>\n                <p>This sample book is configured to make some simple questions interactive on a capable platform, by adding a <tag>response</tag> element as a signal.</p>\n            </statement>\n            <response/>\n        </exercise>\n    </exercises>\n\n    <section xml:id=\"polling\" label=\"polling\">\n        <title>Polling</title>\n\n        <p>(2024-04-24) This section is experimental, and may not be fully functional as you view it.  No markup in the source document is final and may change at any time.</p>\n\n        <p>We begin with standalone queries, using the <tag>query</tag> element.  Runestone calls these <term>polls</term>.   We plan structures/blocks such as <tag>poll</tag>, <tag>survey</tag>, and <tag>questionnaire</tag>, that will be structured collections of <tag>query</tag>.</p>\n\n        <query label=\"stoplight-query\">\n            <statement>\n                <p>In my town, the stoplights have:</p>\n            </statement>\n            <choices>\n                <choice>\n                    <p>Solid yellow lights.</p>\n                </choice>\n                <choice>\n                    <p>Yellow lights that are solid left-turn arrows.</p>\n                </choice>\n                <choice>\n                    <p>Yellow lights that are blinking left-turn arrows.</p>\n                </choice>\n            </choices>\n        </query>\n\n        <query label=\"derivative-query\">\n            <statement>\n                <p>Which of the following is the derivative of <m>f(x)=x^4\\sin(x)</m>?</p>\n            </statement>\n            <choices>\n                <choice>\n                    <p><m>x^5 - \\cos(x)</m></p>\n                </choice>\n                <choice>\n                    <p><m>x^4\\cos(x) + 4x^3\\sin(x)</m></p>\n                </choice>\n                <choice>\n                    <p><m>4x^3\\cos(x)</m></p>\n                </choice>\n            </choices>\n        </query>\n\n        <query label=\"discipline-query\" scale=\"5\">\n            <statement>\n                <p>I like computer science better than mathematics.  <q>1</q> is <q>strongly disagree</q> and <q>5</q> is <q>strongly agree</q>.</p>\n            </statement>\n        </query>\n\n        <query label=\"animal-query-absurd\" scale=\"37\">\n            <statement>\n                <p>How many stuffed animal toys did you own growing up?  (Testing an absurdly large scale, especially in print.)</p>\n            </statement>\n        </query>\n\n        <query label=\"image-query\" scale=\"5\">\n            <statement>\n                <p>Which of the following paintings is your favorite?</p>\n            </statement>\n            <choices>\n                <choice>\n                    <!-- The Calydonian Boar Hunt by Peter Paul Rubens, CC0 -->\n                    <!-- https://www.rawpixel.com/image/14263399/the-calydonian-boar-hunt-peter-paul-rubens -->\n                    <p>The Calydonian Boar Hunt by Peter Paul Rubens</p>\n                    <image source=\"image-from-rawpixel-id-14263399-jpeg.jpg\" width=\"50%\"/>\n                </choice>\n                <choice>\n                    <!-- Lucas Cranach's The fountain of youth (1546) famous painting. CC0-->\n                    <!-- https://www.rawpixel.com/image/3984423/illustration-image-art-people-vintage -->\n                    <p>Lucas Cranach's The fountain of youth (1546)</p>\n                    <image source=\"image-from-rawpixel-id-3984423-jpeg.jpg\" width=\"50%\"/>\n                </choice>\n                <choice>\n                    <!-- William-Adolphe Bouguereau's Temptation (1880) -->\n                    <!-- https://www.rawpixel.com/image/8704110/image-frame-art-vintage -->\n                    <p>William-Adolphe Bouguereau's Temptation (1880)</p>\n                    <image source=\"image-from-rawpixel-id-8704110-jpeg.jpg\" width=\"50%\"/>\n                </choice>\n            </choices>\n        </query>\n    </section>\n\n    <section xml:id=\"doenet\">\n        <title>DoenetML</title>\n\n        <p>This preliminary DoenetML example is for testing use on a Runestone server, where it will use the SPLICE protocol to report out events.  To the reader, it should <em>behave</em> identically when not on a Runestone server.</p>\n\n        <!-- 2024-04-25: This exact interactive appears in the sample article, within a figure. -->\n        <interactive label=\"interactive-doenetml-example\" platform=\"doenetml\" width=\"100%\" aspect=\"3:2\">\n            <slate surface=\"doenetml\">\n                &lt;p&gt;\n                Adjust the vectors &lt;m&gt;\\vec u&lt;/m&gt;, &lt;m&gt;\\vec v&lt;/m&gt;, and &lt;m&gt;\\vec w&lt;/m&gt; in the\n                left graph to visualize the areas calculated by\n                &lt;m&gt;\\det[\\vec u\\hspace{0.5em}\\vec w]&lt;/m&gt;, &lt;m&gt;\\det[\\vec v\\hspace{0.5em}\\vec w]&lt;/m&gt;,\n                and\n                &lt;m&gt;\\det[\\vec u+\\vec v\\hspace{0.5em}\\vec w]&lt;/m&gt;.\n              &lt;/p&gt;\n              &lt;setup&gt;&lt;line through=&quot;(0,0) $v&quot; name=&quot;vLine&quot;/&gt;&lt;math simplify  name=&quot;c&quot;&gt;$cv.x/$v.x&lt;/math&gt;&lt;/setup&gt;\n              &lt;sideBySide&gt;\n                &lt;graph xmin=&quot;-4&quot; ymin=&quot;-4&quot; xmax=&quot;16&quot; ymax=&quot;16&quot;&gt;\n                  &lt;m draggable=&quot;false&quot; anchor=&quot;(10,14)&quot;&gt;\n                    \\det[\\vec u\\hspace{0.5em}\\vec w],\n                    \\det[\\vec v\\hspace{0.5em}\\vec w]\n                  &lt;/m&gt;\n                  &lt;point name=&quot;u&quot; styleNumber=&quot;3&quot;&gt;\n                    (6,2)\n                    &lt;label&gt;&lt;m&gt;\\vec u&lt;/m&gt;&lt;/label&gt;\n                  &lt;/point&gt;\n                  &lt;point name=&quot;w&quot; styleNumber=&quot;3&quot;&gt;\n                    (3,7)\n                    &lt;label&gt;&lt;m&gt;\\vec w&lt;/m&gt;&lt;/label&gt;\n                  &lt;/point&gt;\n                  &lt;point name=&quot;uPlusV&quot; styleNumber=&quot;4&quot;&gt;\n                    (9,5)\n                    &lt;label&gt;&lt;m&gt;\\vec v&lt;/m&gt;&lt;/label&gt;\n                  &lt;/point&gt;\n                  &lt;polygon vertices=&quot;(0,0) $u $u+$w $w&quot; filled draggable=&quot;false&quot; styleNumber=&quot;3&quot;/&gt;\n                  &lt;polygon vertices=&quot;$u $uPlusV $uPlusV+$w $u+$w&quot; filled draggable=&quot;false&quot; styleNumber=&quot;4&quot;/&gt;\n                  &lt;lineSegment endpoints=&quot;(0,0) $uPlusV&quot; styleNumber=&quot;6&quot;/&gt;\n                  &lt;lineSegment endpoints=&quot;$w $uPlusV+$w&quot; styleNumber=&quot;6&quot;/&gt;\n                &lt;/graph&gt;\n                &lt;graph xmin=&quot;-4&quot; ymin=&quot;-4&quot; xmax=&quot;16&quot; ymax=&quot;16&quot;&gt;\n                  &lt;m draggable=&quot;false&quot; anchor=&quot;(12,14)&quot;&gt;\n                    \\det[\\vec u+\\vec v\\hspace{0.5em}\\vec w]\n                  &lt;/m&gt;\n                  &lt;polygon vertices=&quot;(0,0) $uPlusV $uPlusV+$w $w&quot; filled draggable=&quot;false&quot; styleNumber=&quot;2&quot;/&gt;\n                  &lt;point draggable=&quot;false&quot; styleNumber=&quot;3&quot;&gt;\n                    $w\n                    &lt;label&gt;&lt;m&gt;\\vec w&lt;/m&gt;&lt;/label&gt;\n                  &lt;/point&gt;\n                  &lt;point draggable=&quot;false&quot; styleNumber=&quot;4&quot;&gt;\n                    $uPlusV\n                    &lt;label&gt;&lt;m&gt;\\vec u+\\vec v&lt;/m&gt;&lt;/label&gt;\n                  &lt;/point&gt;\n                  &lt;lineSegment endpoints=&quot;(0,0) $u&quot; styleNumber=&quot;6&quot;/&gt;\n                  &lt;lineSegment endpoints=&quot;$u $uPlusV&quot; styleNumber=&quot;6&quot;/&gt;\n                  &lt;lineSegment endpoints=&quot;$w $w+$u&quot; styleNumber=&quot;6&quot;/&gt;\n                  &lt;lineSegment endpoints=&quot;$w+$u $w+$uPlusV&quot; styleNumber=&quot;6&quot;/&gt;\n                &lt;/graph&gt;\n              &lt;/sideBySide&gt;\n            </slate>\n        </interactive>\n    </section>\n\n    <exercises xml:id=\"fill-in-exercises-old\">\n        <title>Fill-In Exercises (Old Style)</title>\n\n        <introduction>\n            <p>This section has <term>fill-in-the-blank</term> (<init>FITB</init>) exercises that use an old syntax.  They were designed for projects transitioning from Runestone's ReST syntax to <pretext/>.  So they are really only here for testing, and not for any sort of documentation.  They will not receive support or enhancements.  <foreign>Caveat emptor</foreign>.</p>\n        </introduction>\n\n        <exercise label=\"fillin-integer\">\n            <title>Fill-In, Integer Answer</title>\n\n            <statement>\n                <p>The game of bowling uses <var width=\"28\"/> pins that you try to knock down. (This answer blank has been set to be very wide.)</p>\n            </statement>\n            <setup>\n                <var>\n                    <condition number=\"10\">\n                        <feedback>\n                            <p>Arranged in a triangle, there are <m>1+2+3+4 = 10</m> pins, a so-called <term>triangular</term> number.</p>\n                        </feedback>\n                    </condition>\n                    <condition number=\"16\">\n                        <feedback>\n                            <p><em>Close</em>! You may have used hexadecimal notation, when you did not really mean to.</p>\n                        </feedback>\n                    </condition>\n                    <condition string=\".*\">\n                        <feedback>\n                            <p>Incorrect.</p>\n                        </feedback>\n                    </condition>\n                </var>\n            </setup>\n        </exercise>\n\n        <exercise label=\"fillin-string-integer\">\n            <title>Fill-In, String and Number Answers</title>\n\n            <statement>\n                <p>Complete the following line of a Python program so that it will declare an integer variable <c>age</c> with an initial value of <c>5</c>. (These two answer blanks have been set to be very short.)</p>\n                <p><var width=\"2\"/> <c>age = </c> <var width=\"3\"/><c>;</c></p>\n            </statement>\n            <setup>\n                <var>\n                    <condition string=\"int\">\n                        <feedback>\n                            <p>A variable of type <c>int</c> is appropriate for whole number ages.</p>\n                        </feedback>\n                    </condition>\n                    <condition string=\".*\">\n                        <feedback>\n                            <p>Remember that Java uses just the first three letters of the word <q>integer</q> to define an integral type.</p>\n                        </feedback>\n                    </condition>\n                </var>\n                <var>\n                    <condition number=\"5\">\n                        <feedback>\n                            <p>An integer variable may be initialized to a value.</p>\n                        </feedback>\n                    </condition>\n                    <condition string=\".*\">\n                        <feedback>\n                            <p>Use <c>5</c> as the initial value of the variable.</p>\n                        </feedback>\n                    </condition>\n                </var>\n            </setup>\n        </exercise>\n\n        <exercise label=\"fillin-case-insensitive\">\n            <title>Fill-In, Case-Insensitive Answer</title>\n\n            <statement>\n                <p>The word <var/> is the opposite of <q>yes</q>.  (Try a mixture of upper and lower-case letters.)</p>\n            </statement>\n            <setup>\n                <var case=\"insensitive\">\n                    <!-- Note, no \"p\" in \"feedback\" -->\n                    <condition string=\"no\">\n                        <feedback>The correct answers are  no, No, nO, and NO.</feedback>\n                    </condition>\n                    <condition string=\".*\">\n                        <feedback>Incorrect.</feedback>\n                    </condition>\n                </var>\n            </setup>\n        </exercise>\n\n        <exercise label=\"fillin-decimal\">\n            <title>Fill-In, Decimal Answer</title>\n\n            <statement>\n                <p>The decimal number <var/> is an approximation of <m>\\sfrac{1}{3}</m> to within three significant figures.  (<url href=\"https://en.wikipedia.org/wiki/Significant_figures\" visual=\"en.wikipedia.org/wiki/Significant_figures\">Wikipedia</url>).</p>\n            </statement>\n            <setup>\n                <var>\n                    <!-- Note, no \"p\" in \"feedback\" -->\n                    <condition number=\"0.333\" tolerance=\"0.0005\">\n                        <feedback>\n                            <p>Any value in the interval <m>0.333\\pm 0.0005</m> is correct.</p>\n                        </feedback>\n                    </condition>\n                    <condition string=\".*\">\n                        <feedback>\n                            <p>Incorrect. Did you provide three <em>significant figures</em>?</p>\n                        </feedback>\n                    </condition>\n                </var>\n            </setup>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"fill-in-exercises\">\n        <title>Fill-In Exercises</title>\n\n        <introduction>\n            <p>This section has <term>fill-in-the-blank</term> (<init>FITB</init>) exercises using newer syntax, and the subject of active development.</p>\n        </introduction>\n\n        <exercise label=\"fillin-numbers-many-tests\">\n            <title>Fill-In, New Markup Numbers</title>\n            <statement>\n                <p>I love <m>\\pi</m>. What number am I thinking of, accurate to two decimal places?</p>\n                <p><fillin width=\"5\" answer=\"3.14\"/></p>\n            </statement>\n            <evaluation>\n                <evaluate>\n                    <test correct=\"yes\">\n                        <numcmp use-answer=\"yes\"/>\n                        <feedback><p>The decimal approximation of <m>\\pi</m> is <m>3.1415926535\\ldots</m>, but to two decimal places we write <m>3.14</m>.</p></feedback>\n                    </test>\n                    <!-- Example B -->\n                    <test>\n                        <numcmp use-answer=\"yes\" tolerance=\"0.1\"/>\n                        <feedback><p>Your answer is within 0.1 of the value I wanted.</p></feedback>\n                    </test>\n                    <!-- Example C -->\n                    <test>\n                        <numcmp value=\"42\"/>\n                        <feedback><p>That is a reasonable guess, but no.</p></feedback>\n                    </test>\n                    <!-- Example D -->\n                    <test>\n                        <numcmp min=\"3\" max=\"4\"/>\n                        <feedback><p>You chose a value between 3 and 4.</p></feedback>\n                    </test>\n                    <!-- Example E -->\n                    <test>\n                        <numcmp value=\"3\" tolerance=\"0.5\"/>\n                        <feedback><p>You chose a value that rounds to 3.</p></feedback>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n\n        <exercise label=\"fillin-strings-\">\n            <title>Fill-In, New Markup Strings</title>\n            <statement>\n                <p>The word I'm thinking about is hinted at by the image.</p>\n                <p><image source=\"cartoon-magic.jpg\" width=\"50%\"/></p>\n                <p>What word am I thinking about? <fillin width=\"5\" answer=\"magic\"/> (Interactive feedback explores a variety of options: Try what happens if you mix the case, or type in a number, or include more than the word, or try <q>pizzazz</q>.\")</p>\n            </statement>\n            <evaluation>\n                <evaluate>\n                    <!-- Example A -->\n                    <test correct=\"yes\">\n                        <strcmp use-answer=\"yes\"/>\n                    </test>\n                    <!-- Example B -->\n                    <test>\n                        <strcmp use-answer=\"yes\" case=\"insensitive\"/>\n                        <feedback><p>Some of the characters used the wrong case.</p></feedback>\n                    </test>\n                    <!-- Example C -->\n                    <test>\n                        <strcmp>[0-9]+</strcmp>\n                        <feedback><p>You typed a word made out of digits.</p></feedback>\n                    </test>\n                    <!-- Example D -->\n                    <test>\n                        <strcmp use-answer=\"yes\" strip=\"no\"/>\n                        <feedback><p>Your answer includes the correct word but has extra text.</p></feedback>\n                    </test>\n                    <!-- Example E -->\n                    <test>\n                        <strcmp strip=\"no\" case=\"insensitive\">z.+z</strcmp>\n                        <feedback><p>Your answer includes text surrounded by z's.</p></feedback>\n                    </test>\n                </evaluate>\n            </evaluation>\n            <hint><p>Do you really need a hint? Carefully reread the question.</p></hint>\n        </exercise>\n\n        <exercise label=\"ex-demo-jscmp-primes\">\n            <title>Fill-In, Javascript test of numbers</title>\n            <statement>\n                <p>What is an example of a prime number less than 20? <fillin width=\"5\" answer=\"13\"/></p>\n            </statement>\n            <evaluation>\n                <evaluate>\n                    <test correct=\"yes\">\n                        <jscmp><!-- test if number is in a list -->\n                        [2, 3, 5, 7, 11, 13, 17, 19].includes(Number(ans))\n                        </jscmp>\n                        <feedback><p>Any number from the list <m>\\{2, 3, 5, 7, 11, 13, 17, 19\\}</m> is a prime number less than 20.</p></feedback>\n                    </test>\n                    <test>\n                        <jscmp><!-- find why it fails to be in list --><![CDATA[\n                        function(){\n                        const val=Number(ans);\n                        if (val <= 0) { return \"You need to give a positive integer.\" }\n                        if (val >= 20) { return \"The integer must be less than 20.\" }\n                        for (let i=2; i<=3; i++) {\n                            if (val % i == 0) { return `Your answer is composite; for example, it is divisible by ${i}.` }\n                        }\n                        return false;\n                        }()]]>\n                        </jscmp>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n\n        <exercise label=\"fillin-jscmp-palindrome\">\n            <title>Fill-In, Javascript test of strings</title>\n            <statement>\n                <p>What is an example of a palindrome? <fillin width=\"5\" answer=\"radar\"/></p>\n            </statement>\n            <evaluation>\n                <evaluate>\n                    <test correct=\"yes\">\n                        <jscmp><!-- test if string is palindrome -->\n                        function(){\n                            const r1 = new RegExp(\"^\\\\w+$\");\n                            var result=r1.test(ans);\n                            if (result) {\n                            let revAns = ans.split(\"\").reverse().join(\"\");\n                            result = (ans === revAns);\n                            }\n                            return result;\n                        }()\n                        </jscmp>\n                        <feedback><p>Any word that is the same forward and backward is a palindrome.</p></feedback>\n                    </test>\n                    <test>\n                        <strcmp strip=\"no\">\\w+\\s\\w+</strcmp>\n                        <feedback><p>Your response needs to be a single word.</p></feedback>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n\n        <exercise label=\"fillin-random-simple\">\n            <title>Fill-In, Simple Randomization with Numbers</title>\n            <statement>\n                <p>What is the square of <m>x=<eval obj=\"myNum\"/></m>? <m>x^2=</m><fillin width=\"5\" mode=\"number\" ansobj=\"mySquare\"/></p>\n            </statement>\n            <setup seed=\"1234\">\n                <setupScript>\n                v.myNum=RNG.randDiscrete(2, 12, 1);\n                v.mySquare=v.myNum**2;\n                </setupScript>\n            </setup>\n            <evaluation>\n                <evaluate>\n                    <test correct=\"yes\">\n                        <numcmp use-answer=\"yes\"/>\n                    </test>\n                    <test>\n                        <numcmp object=\"myNum\"/>\n                        <feedback><p>You responded with the original number. Now square it.</p></feedback>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n\n        <exercise label=\"fillin-math-solve-equation\">\n            <title>Fill-In, Dynamic Math with Simple Numerical Answer</title>\n            <statement>\n                <p>Solve the equation <md><eval obj=\"theFunction\"/>=0</md> to get the value of <m>x</m>.</p>\n                <p><m>x = </m> <fillin width=\"5\" mode=\"math\" ansobj=\"theAnswer\"/></p>\n            </statement>\n            <solution>\n                <p>We want to isolate the <m>x</m> in the equation <m><eval obj=\"theFunction\"/>=0</m>. Because addition of <m><eval obj=\"b\"/></m> is the last operation, we apply the inverse by adding <m><eval obj=\"negB\"/></m> to both sides. The new, but equivalent equation is now <m><eval obj=\"m\"/>x = <eval obj=\"negB\"/></m>. Dividing both sides of the equation by <m><eval obj=\"m\"/></m>, we obtain the solution <m>x=<eval obj=\"theAnswer\"/></m>.</p>\n            </solution>\n            <setup seed=\"12345\">\n                <de-object name=\"m\" context=\"number\">\n                    <de-random distribution=\"discrete\" nonzero=\"yes\" min=\"-4\" max=\"5\" by=\"1\" />\n                </de-object>\n                <de-object name=\"b\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-10\" max=\"10\" />\n                </de-object>\n                <de-object name=\"negB\" context=\"number\">\n                    <de-number reduce=\"yes\">-b</de-number>\n                </de-object>\n                <de-object name=\"theFunction\" context=\"formula\">\n                    <de-expression mode=\"formula\" reduce=\"yes\">m*x+b</de-expression>\n                </de-object>\n                <de-object name=\"theAnswer\" context=\"formula\">\n                    <de-expression mode=\"formula\" reduce=\"yes\">-b/m</de-expression>\n                </de-object>\n            </setup>\n            <evaluation>\n                <evaluate>\n                    <test correct=\"yes\">\n                        <mathcmp use-answer=\"yes\" />\n                    </test>\n                    <test>\n                        <de-expression mode=\"formula\">{{b}}/{{m}}</de-expression>\n                        <feedback>Check for a sign error while isolating <m>x</m>.</feedback>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n\n        <exercise label=\"fillin-math-find-derivatives\">\n            <title>Fill-In, Dynamic Math with Formulas as Answers</title>\n            <statement>\n                <p>Consider the function <m>f(x)=<eval obj=\"formula\"/></m>. Find <m>f'(x)</m> and <m>f''(x)</m>.</p>\n                <p><m>f'(x) = </m> <fillin mode=\"math\" width=\"15\" ansobj=\"correctD1\" name=\"firstD\"/> and <m>f''(x)=</m> <fillin mode=\"math\" width=\"15\" ansobj=\"correctD2\" name=\"secondD\"/></p>\n            </statement>\n            <solution>\n                <p>The derivative of a constant is zero, so <m>\\frac{d}{dx}[<eval obj=\"b\"/>]=0</m>. The term <m>x^{<eval obj=\"n\"/>}</m> is a power, so the power rule gives us <m>\\frac{d}{dx}[x^{<eval obj=\"n\"/>}]=<eval obj=\"n\"/>x^{<eval obj=\"nm1\"/>}</m>. Putting this together, we find <m>f'(x)=<eval obj=\"correctD1\"/></m>. Applying the power rule a second time, we find <m>f''(x)=<eval obj=\"correctD2\"/></m>.</p>\n            </solution>\n            <setup seed=\"1234\">\n                <de-object name=\"a\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-4\" max=\"5\" by=\"1\" nonzero=\"yes\"/>\n                </de-object>\n                <de-object name=\"n\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"2\" max=\"5\"/>\n                </de-object>\n                <de-object name=\"nm1\" context=\"number\">\n                    <de-number reduce=\"yes\">n-1</de-number>\n                </de-object>\n                <de-object name=\"nm2\" context=\"number\">\n                    <de-number reduce=\"yes\">n-2</de-number>\n                </de-object>\n                <de-object name=\"b\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-10\" max=\"10\" nonzero=\"yes\"/>\n                </de-object>\n                <de-object name=\"formula\" context=\"formula\">\n                    <de-expression mode=\"formula\">a*x^n+b</de-expression>\n                </de-object>\n                <de-object name=\"correctD1\" context=\"formula\">\n                    <de-expression mode=\"derivative\" reduce=\"yes\">\n                    <formula><eval obj=\"formula\"/></formula>\n                    <variable name=\"x\"/>\n                    </de-expression>\n                </de-object>\n                <de-object name=\"correctD2\" context=\"formula\">\n                    <de-expression mode=\"derivative\" reduce=\"yes\">\n                        <formula><eval obj=\"correctD1\"/></formula>\n                        <variable name=\"x\"/>\n                    </de-expression>\n                </de-object>\n            </setup>\n            <evaluation>\n                <evaluate submit=\"firstD\">\n                    <test correct=\"yes\">\n                        <mathcmp use-answer=\"yes\"/>\n                    </test>\n                    <test>\n                        <mathcmp obj=\"correctD2\"/>\n                        <feedback><p>You confused which derivative is which.</p></feedback>\n                    </test>\n                </evaluate>\n                <evaluate submit=\"secondD\">\n                    <test correct=\"yes\">\n                        <mathcmp use-answer=\"yes\"/>\n                    </test>\n                    <test>\n                        <eval obj=\"correctD1\"/>\n                        <feedback><p>You confused which derivative is which.</p></feedback>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n\n        <exercise label=\"fillin-math-decompose-function\">\n            <title>Fill-In, Dynamic Math with Interdependent Formula Checking</title>\n            <statement>\n                <p>Consider the function <md>h(x)=<eval obj=\"composition\"/></md>. Find two nontrivial functions <m>f(x)</m> and <m>g(x)</m> so that <m>h(x) = f(g(x))</m>.</p>\n                <p><m>f(x) = </m> <fillin mode=\"math\" width=\"15\" ansobj=\"outerFormula\" name=\"fGiven\"/> and <m>g(x)=</m> <fillin mode=\"math\" width=\"15\" ansobj=\"innerFormula\" name=\"gGiven\"/></p>\n            </statement>\n            <solution>\n                <p>Noticing that the expression <m><eval obj=\"innerFormula\"/></m> appears inside parentheses with a power, it makes sense to think of that as the inner function, defining <m>g(x) = <eval obj=\"innerFormula\"/></m>. The outer function describes what happens to that. If we imagined replacing the formula <m><eval obj=\"innerFormula\"/></m> with a box and then call that box our variable <m>x</m>, we find the outer function is given by <m>f(x) = <eval obj=\"outerFormula\"/></m>.</p>\n                <p>This is not the only non-trivial composition. Can you find others?</p>\n            </solution>\n            <setup seed=\"4321\">\n                <de-object name=\"a\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-4\" max=\"5\" by=\"1\" nonzero=\"yes\" />\n                </de-object>\n                <de-object name=\"n\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"2\" max=\"5\" />\n                </de-object>\n                <de-object name=\"b\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-10\" max=\"10\" by=\"1\" nonzero=\"yes\" />\n                </de-object>\n                <de-object name=\"c\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-4\" max=\"5\" by=\"1\" nonzero=\"yes\" />\n                </de-object>\n                <de-object name=\"d\" context=\"number\">\n                    <de-random distribution=\"discrete\" min=\"-10\" max=\"10\" by=\"1\" nonzero=\"yes\" />\n                </de-object>\n                <de-object name=\"outerFormula\" context=\"formula\">\n                    <de-expression mode=\"formula\" reduce=\"yes\">a*x^n+b</de-expression>\n                </de-object>\n                <de-object name=\"innerFormula\" context=\"formula\">\n                    <de-expression mode=\"formula\" reduce=\"yes\">c*x+d</de-expression>\n                </de-object>\n                <de-object name=\"identityFunction\" context=\"formula\">\n                    <de-expression mode=\"formula\">x</de-expression>\n                </de-object>\n                <de-object name=\"composition\" context=\"formula\" reduce=\"yes\">\n                    <de-expression mode=\"substitution\">\n                        <formula><eval obj=\"outerFormula\"/></formula>\n                        <variable name=\"x\"><eval obj=\"innerFormula\"/></variable>\n                    </de-expression>\n                </de-object>\n            </setup>\n            <evaluation answers-coupled=\"yes\">\n                <evaluate name=\"fGiven\">\n                    <test>\n                        <eval obj=\"identityFunction\"/>\n                        <feedback><p><m>f(x)=x</m> is not allowed for nontrivial compositions.</p></feedback>\n                    </test>\n                    <test>\n                        <logic op=\"not\">\n                            <mathcmp>\n                                <eval obj=\"composition\"/>\n                                <de-expression context=\"formula\" mode=\"substitution\">\n                                    <formula><eval obj=\"fGiven\"/></formula>\n                                    <variable name=\"x\"><eval obj=\"gGiven\"/></variable>\n                                </de-expression>\n                            </mathcmp>\n                        </logic>\n                        <mathcmp>\n                            <eval obj=\"composition\"/>\n                            <de-expression context=\"formula\" mode=\"substitution\">\n                                <formula><eval obj=\"gGiven\"/></formula>\n                                <variable name=\"x\"><eval obj=\"fGiven\"/></variable>\n                            </de-expression>\n                        </mathcmp>\n                        <feedback><p>You have composed in the wrong order.</p></feedback>\n                    </test>\n                </evaluate>\n                <evaluate name=\"gGiven\">\n                    <test>\n                        <eval obj=\"identityFunction\"/>\n                        <feedback><m>g(x)=x</m> is not allowed for nontrivial compositions.</feedback>\n                    </test>\n                </evaluate>\n                <evaluate all=\"yes\">\n                    <test correct=\"yes\">\n                        <mathcmp>\n                            <eval obj=\"composition\"/>\n                            <de-expression context=\"formula\" mode=\"substitution\">\n                                <formula><eval obj=\"fGiven\"/></formula>\n                                <variable name=\"x\"><eval obj=\"gGiven\"/></variable>\n                            </de-expression>\n                        </mathcmp>\n                        <logic op=\"not\">\n                            <mathcmp>\n                                <eval obj=\"fGiven\"/>\n                                <eval obj=\"identityFunction\"/>\n                            </mathcmp>\n                        </logic>\n                        <logic op=\"not\">\n                            <mathcmp>\n                                <eval obj=\"gGiven\"/>\n                                <eval obj=\"identityFunction\"/>\n                            </mathcmp>\n                        </logic>\n                    </test>\n                </evaluate>\n            </evaluation>\n        </exercise>\n    </exercises>\n\n    <exercises xml:id=\"runestone-hodgepodge\">\n        <title>Hodgepodge</title>\n\n        <exercise label=\"multifile-program-2\">\n            <statement>\n                <p>This is a test of accessing program resources across pages by relying on what is in the database.</p>\n            </statement>\n\n            <program interactive=\"activecode\" add-files=\"addh-v1 addcpp-v1\" compile-also=\"addcpp-v1\" language=\"cpp\" include-source=\"yes\">\n                <![CDATA[\n                #include \"add.h\"\n                #include <iostream>\n                using namespace std;\n                int main() {\n                    int a = 1;\n                    int b = 2;\n                    cout << \"The sum of \" << a << \" and \" << b << \" is \" << add(a, b) << endl;\n                }]]>\n            </program>\n        </exercise>\n\n        <exercise label=\"true-false-exercise-with-tasks-in-exercises\">\n            <title>With Tasks in an Exercises Division</title>\n            <introduction>\n                <p>Structured with task, recycled earlier from earlier, to make sure that the tasks do not get counted as Runestone reading activities (since they are inside an <tag>exercise</tag> inside of an <tag>exercises</tag> division.</p>\n            </introduction>\n\n            <task label=\"true-false-task-in-exercises\">\n                <title>True/False</title>\n                <idx>vector space</idx>\n                <statement correct=\"no\">\n                    <p>Every vector space has finite dimension.</p>\n                </statement>\n                <feedback>\n                    <p>The vector space of all polynomials with finite degree has a basis, <m>B = \\{1,x,x^2,x^3,\\dots\\}</m>, which is infinte.</p>\n                </feedback>\n                <hint>\n                    <p><m>P_n</m>, the vector space of polynomials with degree at most <m>n</m>, has dimension <m>n+1</m> by <xref ref=\"theorem-exponent-laws\"/>.  [Cross-reference is just a demo, content is not relevant.]  What happens if we relax the defintion and remove the parameter <m>n</m>?</p>\n                </hint>\n            </task>\n\n            <task label=\"short-answer-task-in-exercises\">\n                <statement>\n                    <p>Explain your reasoning in the previous question.</p>\n                </statement>\n                <response/>\n            </task>\n\n            <conclusion>\n                <p>A sequence of <tag>task</tag> can have a <tag>conclusion</tag>, like this one, even if they do not see much use in practice.</p>\n            </conclusion>\n        </exercise>\n    </exercises>\n\n    <section xml:id=\"exercises-timed\">\n        <title>Exercises that are Timed</title>\n\n        <p>This is a section that merely explains and holds an <tag>exercises</tag> division, which will be at the level of a <tag>subsection</tag>.  There is a <attr>time-limit</attr> attribute on <tag>exercises</tag>, set to the value <c>10</c>, which implies (a) the collection of (two) exercises is a <q>timed exam</q> when hosted on Runestone, and (b) a student will have 10 minutes to complete the collection.</p>\n\n        <p>Showing results, showing feedback, displaying a timer, and allowing pausing are all enabled by default.  To disable any of these features, set the corresponding attributes on the <tag>exercises</tag> division, <attr>results</attr>, <attr>feedback</attr>, <attr>timer</attr>, <attr>pause</attr>, to the value <c>no</c>.  As a test, we have turned off pausing.  Don't panic!</p>\n\n        <p>Of course, if you are not viewing this while online and hosted on a Runestone server, then these exercises will not look any different than in other places.</p>\n\n        <p>(Since this is an unstructured division, the number of the <tag>exercises</tag> is not displayed when born.  It does <em>have</em> a number, which is the same as the enclosing <tag>section</tag>.  To wit: <xref ref=\"exercises-timed\"/> versus <xref ref=\"timing-exercises\"/>.)</p>\n\n        <p>If you prefer that a given <tag>section</tag> has more than one <tag>exercises</tag> within it (timed or not), realize that you must then structure your <tag>section</tag> with a ssequence of <tag>subsection</tag> as peers of the multiple <tag>exercises</tag> you desire.</p>\n\n        <exercises xml:id=\"timing-exercises\" label=\"timed-exercises\" time-limit=\"10\" pause=\"no\">\n            <title>Timed Exercises</title>\n\n            <introduction>\n                <p>You have 10 minutes to do these exercises when hosted online on a Runestone server.</p>\n            </introduction>\n\n            <exercise label=\"vector-space-dimension-timed\">\n                <title>True/False</title>\n                <idx>vector space</idx>\n                <statement correct=\"no\">\n                    <p>Every vector space has finite dimension.</p>\n                </statement>\n                <feedback>\n                    <p>The vector space of all polynomials with finite degree has a basis, <m>B = \\{1,x,x^2,x^3,\\dots\\}</m>, which is infinte.</p>\n                </feedback>\n                <hint>\n                    <p><m>P_n</m>, the vector space of polynomials with degree at most <m>n</m>, has dimension <m>n+1</m> by <xref ref=\"theorem-exponent-laws\"/>.  [Cross-reference is just a demo, content is not relevant.]  What happens if we relax the defintion and remove the parameter <m>n</m>?</p>\n                </hint>\n            </exercise>\n\n            <exercise label=\"multiple-choice-not-randomized-timed\">\n                <title>Multiple-Choice, Not Randomized, One Answer</title>\n                <idx>stop signs</idx>\n                <statement>\n                    <p>What color is a stop sign?</p>\n                </statement>\n                <!-- to appear as problem with potentially multiple correct -->\n                <!-- answers (even though there is only one), use           -->\n                <!--                                                        -->\n                <!--     <choices multiple-correct=\"yes\">                   -->\n                <!--                                                        -->\n                <choices>\n                    <choice>\n                        <statement>\n                            <p>Green</p>\n                        </statement>\n                        <feedback>\n                            <p>Green means <q>go!</q>.</p>\n                        </feedback>\n                    </choice>\n                    <choice correct=\"yes\">\n                        <statement>\n                            <p>Red</p>\n                        </statement>\n                        <feedback>\n                            <p>Red is universally used for prohibited activities or serious warnings.</p>\n                        </feedback>\n                    </choice>\n                    <choice>\n                        <statement>\n                            <p>White</p>\n                        </statement>\n                        <feedback>\n                            <p>White might be hard to see.</p>\n                        </feedback>\n                    </choice>\n                </choices>\n                <hint>\n                    <p>What did you see last time you went driving?</p>\n                </hint>\n                <hint>\n                    <p>Maybe go out for a drive?</p>\n                </hint>\n            </exercise>\n        </exercises>\n    </section>\n\n    <section xml:id=\"interactive-projects\">\n        <title>Projects and Friends</title>\n\n        <p><q>PROJECT-LIKE</q> refers to the elements/blocks <tag>project</tag>, <tag>activity</tag>, <tag>activity</tag>, and <tag>exploration</tag>.  They are very similar to <tag>exercise</tag>, and here we stress that they can be interactive in all the same ways an <tag>exercise</tag> can.  Key differences are that they are blocks, and so are peers of other blocks like paragraphs and examples, and are children of divisions.  By default they have their own numbering scheme, though we expect this to convert to an elective behavior.</p>\n\n        <p>Both <tag>exercise</tag> and PROJECT-LIKE can be structured with <tag>task</tag>.  It would be natural to have a <tag>project</tag> with multiple <tag>task</tag>, each a possibly different interactive problem type.  We expect that to be possible soon.  For now, <tag>exercise</tag> and <tag>project</tag> (and friends) need to be structured with a <tag>statement</tag> (and their associated signal) in order to be interactive.</p>\n\n        <activity label=\"activity-multiple-choice-multiple-answers\">\n            <title>Multiple-Choice, Not Randomized, Multiple Answers</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>Which colors might be found in a rainbow?  (Note that the radio buttons now allow multiple buttons to be selected.)</p>\n            </statement>\n            <choices>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is a definitely one of the colors.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Yellow</p>\n                    </statement>\n                    <feedback>\n                        <p>Yes, yellow is correct.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>Black</p>\n                    </statement>\n                    <feedback>\n                        <p>Remember the acronym<ellipsis/><acro>ROY G BIV</acro>.  <q>B</q> stands for blue.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Yes, green is one of the colors.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>Do you know the acronym<ellipsis/><acro>ROY G BIV</acro> for the colors of a rainbow, and their order?</p>\n            </hint>\n        </activity>\n\n        <p>Now an <tag>exercise</tag> with three <tag>task</tag>.  Since the middle one is a short-answer question, it will only be interactive on a capable platform.</p>\n\n        <exercise label=\"true-false-exercise-with-tasks\">\n            <title>True/False and Explain</title>\n            <introduction>\n                <p>Structured with <tag>task</tag>, we can have an <tag>introduction</tag>.  If you are viewing this <tag>exercise</tag> in the Runestone assignment builder, you will notice that each of these three <tag>task</tag> appears as its own problem and therefore each one gets its own copy of this <tag>introduction</tag> you are reading right now.</p>\n            </introduction>\n\n            <task label=\"true-false-task\">\n                <title>True/False</title>\n                <idx>vector space</idx>\n                <statement correct=\"no\">\n                    <p>Every vector space has finite dimension.</p>\n                </statement>\n                <feedback>\n                    <p>The vector space of all polynomials with finite degree has a basis, <m>B = \\{1,x,x^2,x^3,\\dots\\}</m>, which is infinte.</p>\n                </feedback>\n                <hint>\n                    <p><m>P_n</m>, the vector space of polynomials with degree at most <m>n</m>, has dimension <m>n+1</m> by <xref ref=\"theorem-exponent-laws\"/>.  [Cross-reference is just a demo, content is not relevant.]  What happens if we relax the defintion and remove the parameter <m>n</m>?</p>\n                </hint>\n            </task>\n\n            <task label=\"short-answer-task\">\n                <statement>\n                    <p>Explain your reasoning in the previous question.</p>\n                </statement>\n                <response/>\n            </task>\n\n            <task label=\"matching-task\">\n                <title>Matching Problem, Dates</title>\n                <idx>matching US dates</idx>\n                <statement>\n                    <p>Match each event in United States history with the year it happened. (We are recycling this to test the static representation of a matching problem authored inside of <tag>task</tag>.)</p>\n                </statement>\n                <feedback>\n                    <p>Review <url href=\"https://www.britannica.com/list/25-decade-defining-events-in-us-history\" visual=\"www.britannica.com/list/25-decade-defining-events-in-us-history\">Encyclopedia Brittania, 25 Decade-Defining Events in U.S. History</url> url.</p>\n                </feedback>\n                <cardsort>\n                    <match>\n                        <premise order=\"4\">Monroe Doctrine</premise>\n                        <response>1823</response>\n                    </match>\n                    <match>\n                        <premise order=\"3\">Haymarket Riot</premise>\n                        <response>1886</response>\n                    </match>\n                    <match>\n                        <premise order=\"1\">Louisiana Purchase</premise>\n                        <response>1803</response>\n                    </match>\n                    <match>\n                        <premise order=\"2\">Battle of Gettysburg</premise>\n                        <response>1863</response>\n                    </match>\n                </cardsort>\n            </task>\n\n            <conclusion>\n                <p>A <tag>conclusion</tag> is possible and will be replicated after each of the three <tag>task</tag> when they are viewed individually in the Runestone assignment builder.</p>\n            </conclusion>\n        </exercise>\n\n        <p>Now an <tag>exploration</tag> nested two-deep with <em>the same two questions</em>, two times each, just for testing purposes.</p>\n\n        <exploration label=\"exploration-two-deep\">\n            <title>Exploring Two-Deep</title>\n\n            <introduction>\n                <p>This is a top-level introduction.</p>\n            </introduction>\n\n            <task>\n                <title>First Iterations of Each</title>\n\n                <introduction>\n                    <p>This is an introduction to the first iterations, at the second level.</p>\n                </introduction>\n\n                <task label=\"task-multiple-choice-first\">\n                    <title>Multiple-Choice, Not Randomized, One Answer (First Copy)</title>\n                    <idx>stop signs</idx>\n                    <statement>\n                        <p>What color is a stop sign?</p>\n                    </statement>\n                    <choices>\n                        <choice>\n                            <statement>\n                                <p>Green</p>\n                            </statement>\n                            <feedback>\n                                <p>Green means <q>go!</q>.</p>\n                            </feedback>\n                        </choice>\n                        <choice correct=\"yes\">\n                            <statement>\n                                <p>Red</p>\n                            </statement>\n                            <feedback>\n                                <p>Red is universally used for prohibited activities or serious warnings.</p>\n                            </feedback>\n                        </choice>\n                        <choice>\n                            <statement>\n                                <p>White</p>\n                            </statement>\n                            <feedback>\n                                <p>White might be hard to see.</p>\n                            </feedback>\n                        </choice>\n                    </choices>\n                    <hint>\n                        <p>What did you see last time you went driving?</p>\n                    </hint>\n                    <hint>\n                        <p>Maybe go out for a drive?</p>\n                    </hint>\n                </task>\n\n                <task label=\"task-active-code-first\">\n                    <title>Python ActiveCode (First Copy)</title>\n                    <statement>\n                        <p>Run the following program and observe the information provided at each step.</p>\n                    </statement>\n                    <program label=\"python-active-code-first\" interactive=\"activecode\" language=\"python\">\n                        <code>\n                        for i in range(10):\n                            print(i)\n                        </code>\n                    </program>\n                    <answer><p>We're still not really sure.</p></answer>\n                </task>\n\n                <conclusion>\n                    <p>We include a conclusion to the first iterations, at the second level (with no conclusion at the top-level).</p>\n                </conclusion>\n            </task>\n\n            <task>\n                <title>Second Iterations of Each</title>\n\n                <introduction>\n                    <p>This is an introduction to the second iterations, at the second level.</p>\n                </introduction>\n\n                <task label=\"task-multiple-choice-second\">\n                    <title>Multiple-Choice, Not Randomized, One Answer (Second Copy)</title>\n                    <idx>stop signs</idx>\n                    <statement>\n                        <p>What color is a stop sign?</p>\n                        <p>We include a spurious Python <tag>program</tag> element in the <tag>statement</tag> which should never convert this from a multiple-choice question into a programming exercise (on any host), but should still get syntax highlighting as part of rendering the exercise.</p>\n                        <program xml:id=\"python-in-statement\" language=\"python\">\n                            <code>\n                            sum = 0\n                            sum += 6\n                            for i in range(sum):\n                                print(\"Hello, World!\")\n                            </code>\n                        </program>\n                    </statement>\n                    <choices>\n                        <choice>\n                            <statement>\n                                <p>Green</p>\n                            </statement>\n                            <feedback>\n                                <p>Green means <q>go!</q>.</p>\n                            </feedback>\n                        </choice>\n                        <choice correct=\"yes\">\n                            <statement>\n                                <p>Red</p>\n                            </statement>\n                            <feedback>\n                                <p>Red is universally used for prohibited activities or serious warnings.</p>\n                            </feedback>\n                        </choice>\n                        <choice>\n                            <statement>\n                                <p>White</p>\n                            </statement>\n                            <feedback>\n                                <p>White might be hard to see.</p>\n                            </feedback>\n                        </choice>\n                    </choices>\n                    <hint>\n                        <p>What did you see last time you went driving?</p>\n                    </hint>\n                    <hint>\n                        <p>Maybe go out for a drive?</p>\n                    </hint>\n                </task>\n\n                <task label=\"task-active-code-second\">\n                    <title>Python ActiveCode (Second Copy)</title>\n                    <statement>\n                        <p>Run the following program and observe the information provided at each step.</p>\n                    </statement>\n                    <program label=\"python-active-code-second\" interactive=\"activecode\" language=\"python\">\n                        <code>\n                        for i in range(10):\n                            print(i)\n                        </code>\n                    </program>\n                    <answer><p>We're still not really sure.</p></answer>\n                </task>\n\n                <conclusion>\n                    <p>We include a conclusion to the first iterations, at the second level (with no conclusion at the top-level).</p>\n                </conclusion>\n            </task>\n            <!-- An overall conclusion would go here, which we omit for testing purposes -->\n        </exploration>\n\n        <p>This is an <tag>exercise</tag> which has been structured deeply with <tag>task</tag>.  It is here to allow for testing a tabbed viewer presentation in online outputs.</p>\n\n        <exercise xml:id=\"exercise-structured\" label=\"very-structured-exercise\">\n            <title>A very structured exercise</title>\n\n            <introduction>\n                <p>This is an over-arching introduction to the whole exercise.  We follow with some tasks.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n            </introduction>\n\n            <task>\n                <title>A super-simple task</title>\n                <p>This first task is very simple, just a paragraph.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n            </task>\n\n            <task>\n                <p>Now three paragraphs.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n            </task>\n\n            <task>\n                <title>A title of a task that has a subtask with an <tag>answer</tag> for the Solutions</title>\n                <introduction>\n                    <p>This second task is further divided by more tasks.  This is its introduction.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </introduction>\n                <task>\n                    <title>A task with a title and an <tag>answer</tag> for the Solutions</title>\n                    <statement>\n                        <p>A really simple subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        <p>A short paragraph, before an answer.</p>\n                    </statement>\n                    <answer>\n                        <p>With a proof.</p>\n                        <proof>\n                            <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        </proof>\n                        <p>And a bit more to say.</p>\n                    </answer>\n                </task>\n                <task>\n                    <statement>\n                        <p>A subtask with an answer.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    </statement>\n                    <answer>\n                        <p>Right!  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    </answer>\n                </task>\n                <task>\n                    <introduction>\n                        <p>Three simple sub-sub-tasks.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    </introduction>\n                    <task>\n                        <p>First subsubtask.  Short paragraph.</p>\n                    </task>\n                    <task>\n                        <title>A second three-deep subsubtask!</title>\n                        <p>Second subsubtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    </task>\n                    <task>\n                        <p>Third subsubtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                        <p>In interdum suscipit ullamcorper</p>\n                        <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    </task>\n                    <conclusion>\n                        <p>The conclusion of the structured subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    </conclusion>\n                </task>\n                <task>\n                    <p>A simple task as the last subtask.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </task>\n                <conclusion>\n                    <p>This concludes our structured second task.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </conclusion>\n            </task>\n\n            <task>\n                <statement>\n                    <p>This third top-level task is intermediate in complexity, you are reading the <c>statement</c>, which is followed by more items. In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </statement>\n                <hint>\n                    <p>One hint.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </hint>\n                <answer>\n                    <p>First answer.  In interdum suscipit ullamcorper.</p>\n                </answer>\n                <answer>\n                    <p>Second answer.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                    <p>In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </answer>\n                <solution>\n                    <p>At last, the solution.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n                </solution>\n            </task>\n\n            <conclusion>\n                <p>This is a conclusion where you could summarize the exercise.  In interdum suscipit ullamcorper. Morbi sit amet malesuada augue, id vestibulum magna. Nulla blandit dui metus, malesuada mollis sapien ullamcorper sit amet. Nulla at neque nisi. Integer vel porta felis.</p>\n            </conclusion>\n        </exercise>\n    </section>\n\n    <reading-questions>\n\n        <exercise label=\"simple-reading-question\">\n            <statement>\n                <p>This is a simple question.  Does this look like a short answer question?</p>\n                <p>Both questions in this <q>reading-questions</q> division should render in an interactive <q>short answer</q> form on a capable platform.</p>\n            </statement>\n            <response/>\n            <hint>\n                <p>Shouldn't be hard!</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"second-reading-question\" attachment=\"yes\">\n            <statement>\n                <p>And a second reading question, so we can test having more than one.  Specifically to be certain each goes into the manifest properly.  How about some math now, <m>a^2+b^2=c^2</m>.  Is that all right?</p>\n            </statement>\n            <response/>\n        </exercise>\n    </reading-questions>\n\n    <section xml:id=\"atomic-video\">\n        <title>YouTube Video Embedding</title>\n\n        <p>An <tag>video</tag> can be placed in five different ways:<ol>\n            <li>all by itself, as a peer of <tag>p</tag> typically, with layout control,</li>\n            <li>inside a <tag>figure</tag>, earning a number and caption,</li>\n            <li>inside a <tag>sidebyside</tag>, with size and layout configured,</li>\n            <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag>, with size and layout configured, with a number and caption, and</li>\n            <li>inside a <tag>figure</tag> inside a <tag>sidebyside</tag> inside a <tag>figure</tag>, with size and layout configured, with a number and caption, but now sub-numbered ((a), (b), (c),<ellipsis/>).</li>\n        </ol>Examples of each, and more.</p>\n\n        <p>A YouTube video is embedded much differently when hosted on a Runestone server, so that an <init>API</init> is available to report reader (student) interactions.  We are testing here the various possibilities.</p>\n\n\n\n        <p>All by itsef, with no layout specified, so showing the default size and placement.  Vivamus in congue massa. Morbi condimentum ac magna at accumsan. Vestibulum ac augue eu lorem semper gravida.</p>\n\n        <video xml:id=\"yt-list-vars-one\" label=\"youtube-list-vars-one\" youtube=\"X1-UNHUajfk\"/>\n\n        <p>Width set at 40%, so equal margins and thus centered.  Aenean faucibus augue tellus, et sollicitudin tortor finibus non. Maecenas semper dolor quis diam placerat, iaculis sollicitudin augue finibus. Vestibulum facilisis ligula lectus, ac tristique nisl aliquet non.</p>\n\n        <video xml:id=\"yt-list-vars-two\" label=\"youtube-list-vars-two\" youtube=\"X1-UNHUajfk\" width=\"40%\"/>\n\n        <p>Asymmetric margins of 20% and 40% given, implying 40% width, equal to previous instance.  Vivamus suscipit diam eget mi cursus viverra.</p>\n\n        <video xml:id=\"yt-list-vars-three\" label=\"youtube-list-vars-three\" youtube=\"X1-UNHUajfk\" margins=\"20% 40%\" />\n\n        <p>As a plain component of a <tag>sidebyside</tag>.  Widths here are 20% and 30%, margins and gaps are automatic, default alignment on top edges.  Nulla pharetra imperdiet elit, in sodales nibh blandit ultricies. Maecenas efficitur ac felis ut pharetra.</p>\n\n        <sidebyside widths=\"20% 30%\">\n            <video xml:id=\"yt-list-vars-four\" label=\"youtube-list-vars-four\" youtube=\"X1-UNHUajfk\"/>\n            <video xml:id=\"yt-list-vars-five\" label=\"youtube-list-vars-five\" youtube=\"X1-UNHUajfk\"/>\n        </sidebyside>\n\n        <p>Inside a <tag>figure</tag> with no adjustments, so default behavior.  Note how a <tag>figure</tag> occupies the entire width of the page, so then does the caption.</p>\n\n        <figure>\n            <caption>List Variables</caption>\n            <video xml:id=\"yt-list-vars-six\" label=\"youtube-list-vars-six\" youtube=\"X1-UNHUajfk\"/>\n        </figure>\n\n        <p>Inside a <tag>figure</tag> with asymmetric (large) margins of 30% and 60%.  Quisque finibus augue sit amet facilisis fringilla. Aenean faucibus augue tellus, et sollicitudin tortor finibus non.</p>\n\n        <figure>\n            <caption>List Variables</caption>\n            <video xml:id=\"yt-list-vars-seven\" label=\"youtube-list-vars-seven\" youtube=\"X1-UNHUajfk\" margins=\"30% 60%\"/>\n        </figure>\n\n        <p>Inside figures inside a <tag>sidebyside</tag>.  Same widths as previous <tag>sidebyside</tag> but alignment on bottoms of the panels, to partially align captions.  Note how the captions are constrained in width by the width of the panels of the side-by-side.</p>\n\n        <sidebyside widths=\"20% 30%\" valign=\"bottom\">\n            <figure>\n                <caption>List Variables</caption>\n                <video xml:id=\"yt-list-vars-eight\" label=\"youtube-list-vars-eight\" youtube=\"X1-UNHUajfk\"/>\n            </figure>\n            <figure>\n                <caption>List Variables (Again)</caption>\n                <video xml:id=\"yt-list-vars-nine\" label=\"youtube-list-vars-nine\" youtube=\"X1-UNHUajfk\"/>\n            </figure>\n        </sidebyside>\n\n        <p>Identical code to previous example, but now wrapped in an overall <tag>figure</tag>, which has its own caption and number, leaving the interior figures to be sub-numbered.  Cross-references use the full number: <xref ref=\"ups-video\" text=\"type-global\"/>.</p>\n\n        <figure>\n            <caption>Amalgamation of Videos</caption>\n            <sidebyside widths=\"20% 30%\" valign=\"bottom\">\n                <figure>\n                    <caption>List Variables</caption>\n                    <video xml:id=\"yt-list-vars-ten\" label=\"youtube-list-vars-ten\" youtube=\"X1-UNHUajfk\"/>\n                </figure>\n                <figure xml:id=\"ups-video\">\n                    <caption>List Variables</caption>\n                    <title>List Variables</title>\n                    <video xml:id=\"yt-list-vars-eleven\" label=\"youtube-list-vars-eleven\" youtube=\"X1-UNHUajfk\"/>\n                </figure>\n            </sidebyside>\n        </figure>\n    </section>\n\n    <section xml:id=\"section-runestone-assignment-testing\">\n        <title>Runestone Assignment Testing</title>\n        <p>\n            This is a section that is specifically for testing when exercises are migrated to a\n            Runestone Assignment page.\n        </p>\n        <exercises>\n            <exercise label=\"exercisegroup-exercise-zero\">\n                <statement>\n                    <p>\n                        This is an <tag>exercises</tag> division (at the level of a <tag>subsection</tag>) which is not being numbered.  We've hijacked this first exercise to say so, and to precede the <tag>exercisegroup</tag> following, which is the real test right now.\n                        What is <m>0+0</m>?\n                    </p>\n                </statement>\n            </exercise>\n\n            <exercisegroup>\n                <title>An Exercise Group</title>\n                <introduction>\n                    <p>\n                        This introduction should appear ahead of each exercise when it shows\n                        up in the Runestone Assignment page.\n                    </p>\n                    <tabular>\n                        <row>\n                            <cell><m>(0,0)</m></cell>\n                            <cell><m>(0,1)</m></cell>\n                        </row>\n                        <row>\n                            <cell><m>(1,0)</m></cell>\n                            <cell><m>(1,1)</m></cell>\n                        </row>\n                    </tabular>\n                    <image>\n                        <latex-image label=\"runestone-blue-square\">\n                            \\begin{tikzpicture}\n                                \\draw[fill=blue!20] (0,0) -| (1,1) -| cycle;\n                            \\end{tikzpicture}\n                        </latex-image>\n                        <shortdescription>a blue square</shortdescription>\n                    </image>\n                    <p>\n                        It has a table, and an image too, to check it all comes through.\n                    </p>\n                </introduction>\n                <exercise label=\"exercisegroup-exercise-one\">\n                    <statement>\n                        <p>\n                            What is <m>1+1</m>?\n                        </p>\n                    </statement>\n                    <choices>\n                        <choice correct=\"yes\">\n                            <statement>\n                                <p>Two</p>\n                            </statement>\n                        </choice>\n                        <choice>\n                            <statement>\n                                <p>Three</p>\n                            </statement>\n                        </choice>\n                     </choices>\n                </exercise>\n                <exercise label=\"exercisegroup-exercise-two\">\n                    <statement>\n                        <p>\n                            What is <m>2+2</m>?\n                        </p>\n                    </statement>\n                    <choices>\n                        <choice>\n                            <statement>\n                                <p>Two</p>\n                            </statement>\n                        </choice>\n                        <choice correct=\"yes\">\n                            <statement>\n                                <p>Four</p>\n                            </statement>\n                        </choice>\n                     </choices>\n                </exercise>\n            </exercisegroup>\n            <exercise label=\"exercisegroup-exercise-three\">\n                <statement>\n                    <p>\n                        What is <m>3+3</m>?\n                    </p>\n                </statement>\n            </exercise>\n        </exercises>\n        <p>And a final paragraph in the section, and a chance to say there is a trailing <tag>exercise</tag> outside the <tag>exercisegroup</tag>.</p>\n    </section>\n\n    <worksheet groupwork=\"yes\" groupsize=\"2\" xml:id=\"worksheet-groupwork\">\n        <title>A <q>Group Work</q> Worksheet</title>\n\n        <p>This is a <tag>worksheet</tag> which has a <attr>groupwork</attr> attribute set to <c>yes</c>, along with a <attr>label</attr> attribute to assist with the Runestone database.  Note, you can also set a <attr>groupsize</attr> attribute.  When hosted on Runestone, the exercises within will be available for a group of students to submit together.</p>\n\n        <exercise label=\"groupwork-multiple-choice\">\n            <title>Multiple-Choice, Group Work</title>\n            <idx>stop signs</idx>\n            <idx>group work</idx>\n            <statement>\n                <p>What color is a stop sign?</p>\n            </statement>\n            <choices>\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>White</p>\n                    </statement>\n                    <feedback>\n                        <p>White might be hard to see.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n\n        <p>Worksheets allow for material interleaved with the <tag>exercise</tag> throughout.</p>\n\n        <exercise label=\"groupwork-number-theory\" adaptive=\"yes\" language=\"natural\">\n            <title>Parsons Problem, Group Work</title>\n            <idx>even numbers</idx>\n            <idx>groupwork</idx>\n            <statement>\n                <p>Create a proof of the theorem: If <m>n</m> is an even number, then <m>n\\equiv 0\\mod 2</m>.</p>\n            </statement>\n            <blocks>\n                <block order=\"2\">\n                    <p>Suppose <m>n</m> is even.</p>\n                </block>\n                <block order=\"3\">\n                    <choice><p>Then <m>n</m> is a prime number.</p></choice>\n                    <choice correct=\"yes\"><p>Then there exists an <m>m</m> so that <m>n = 2m</m>.</p></choice>\n                    <choice><p>Then there exists an <m>m</m> so that <m>n = 2m + 1</m>.</p></choice>\n                </block>\n                <block order=\"1\" correct=\"no\">\n                    <p>Click the heels of your ruby slippers together three times.</p>\n                </block>\n                <block order=\"5\">\n                    <p>So <m>n = 2m + 0</m>.</p>\n                    <p>This is a superfluous second paragraph in this block.</p>\n                </block>\n                <block order=\"4\">\n                    <p>Thus <m>n\\equiv 0\\mod 2</m>.</p>\n                </block>\n                <block order=\"6\" correct=\"no\">\n                    <p>And a little bit of irrelevant multi-line math\n                        <md>\n                            <mrow>c^2&amp;a^2+b^2</mrow>\n                            <mrow>&amp;x^2+y^2</mrow>\n                        </md>.\n                    </p>\n                </block>\n            </blocks>\n            <hint><p>Dorothy will not be much help with this proof.</p></hint>\n        </exercise>\n    </worksheet>\n\n    <exercises xml:id=\"groupwork-title\" groupwork=\"yes\" label=\"exercises-title-groupwork\">\n        <introduction>\n            <p>This is an <tag>exercises</tag> division with no <tag>title</tag>, set as groupwork, and therefore its default title will automatically indicate it is meant for a group.  Otherwise, it is not of any new interest.</p>\n        </introduction>\n\n        <exercise xml:id=\"multiple-choice-five\" label=\"multiple-choice-not-randomized-five\">\n            <title>Multiple-Choice, Not Randomized, One Answer</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>What color is a stop sign?</p>\n            </statement>\n            <!-- to appear as problem with potentially multiple correct -->\n            <!-- answers (even though there is only one), use           -->\n            <!--                                                        -->\n            <!--     <choices multiple-correct=\"yes\">                   -->\n            <!--                                                        -->\n            <choices>\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>White</p>\n                    </statement>\n                    <feedback>\n                        <p>White might be hard to see.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n    </exercises>\n\n    <section xml:id=\"splice-integration\">\n        <title>SPLICE Integration</title>\n\n        <p><url href=\"https://cssplice.org/\" visual=\"cssplice.org\">SPLICE</url> is a project to supply documentation and infrastructure to help with adopting shared standards, protocols, and tools for web-based learning tools. The project has designed a <url href=\"https://cssplice.org/slcp/index.html\" visual=\"cssplice.org/slcp\">protocol</url> for an embedded iframe to communicate with its host page.</p>\n\n        <p>One aspect is the ability of an iframe to ask for a new size. Below is a test of that capability.</p>\n\n        <p>These are examples that use the <url href=\"https://cssplice.org/slcp/index.html\" visual=\"cssplice.org/slcp\">SPLICE</url> protocol for communicating with a server, such as Runestone. They are all integrated into this <pretext/> book as an <tag>interactive</tag> that uses an <attr>iframe</attr> attribute to embed an iframe from some other server.</p>\n\n        <p>This first sample tests the ability of an iframe to ask for a new size.</p>\n\n        <interactive xml:id=\"splice-resize-example\" platform=\"javascript\" width=\"60%\" aspect=\"2:1\" source=\"splice/splice-resize.js\"/>\n\n        <p>The next uses <url href=\"https://codecheck.io\" visual=\"codecheck.io\">CodeCheck</url>.</p>\n\n        <figure xml:id=\"horstmann-codecheck\">\n            <caption>CodeCheck <c>iframe</c></caption>\n            <interactive label=\"interactive-horstmann-codecheck\"\n                iframe=\"https://codecheck.io/files/wiley/ch-bj4cc-c06_exp_6_105\"\n                width=\"95%\"\n                aspect=\"1:1\"\n            />\n        </figure>\n\n        <p>And the remaing four are from the <url href=\"https://opendsax.cs.vt.edu/\" visual=\"opendsax.cs.vt.edu\">OpenDSA</url> project.</p>\n\n        <figure xml:id=\"opendsa-slideshow\">\n            <caption>Stack pop slideshow</caption>\n            <interactive label=\"opendsa-slideshow-pop\"\n                iframe=\"https://opendsax.cs.vt.edu/embed/astackPopCON\"\n                width=\"95%\"\n            />\n        </figure>\n\n        <figure xml:id=\"splice-integration-insert\">\n            <caption>A List Insertion Exercise</caption>\n            <interactive label=\"OpenDSA-list-insertion\"\n                iframe=\"https://opendsax.cs.vt.edu/OpenDSA/Exercises/List/AlistInsertPRO.html\"\n                width=\"100%\"\n            />\n        </figure>\n\n        <figure xml:id=\"splice-integration-bs\">\n            <caption>A Binary Search Exercise</caption>\n            <interactive label=\"OpenDSA-integration-bs\"\n                iframe=\"https://opendsax.cs.vt.edu/OpenDSA/AV/Searching/binarySearchPRO.html\"\n                width=\"175%\"\n                aspect=\"3:1\"\n            />\n        </figure>\n\n        <figure xml:id=\"splice-integration-dijkstra\">\n            <caption>Dijkstra's Algorithm Exercise</caption>\n            <interactive label=\"OpenDSA-integration-dijkstra\"\n                iframe=\"https://opendsax.cs.vt.edu/OpenDSA/AV/Graph/DijkstraPE.html\"\n                width=\"175%\"\n                aspect=\"1:1\"\n            />\n        </figure>\n\n        <!-- Following exercises should go into their own section, but that -->\n        <!-- messes up numbering and it is hard to see changes.  Wait until -->\n        <!-- this settles down some, and then split these off.              -->\n\n        <p>(2025-11-05) The following two exercises are <alert>strictly EXPERIMENTAL</alert>.  Do not incorporate them into your projects as they are likely to change dramatically.</p>\n\n        <!-- 2025-11-05: Donated by Matt Boelkins from Active Calculus  -->\n        <!-- where it has @xml:id \"doenet-interactive-exercise-1-1-1\" -->\n        <exercise>\n            <title>Finding the average velocity of a moving object from data (dual, Doenet)</title>\n            <dynamic>\n                <statement>\n                    <interactive label=\"doenet-velocity\" platform=\"doenetml\">\n                        <slate surface=\"doenetml\">\n                            <![CDATA[\n                              <setup>\n                                <math name=\"a\"><selectFromSequence from=\"0.3\" to=\"0.5\" step=\"0.1\"/></math>\n                                <math name=\"b\"><selectFromSequence from=\"1.3\" to=\"1.8\" step=\"0.1\"/></math>\n                                <math name=\"c\"><selectFromSequence from=\"1\" to=\"3\" step=\"1\"/></math>\n                                <function name=\"s\" symbolic=\"false\" >\n                                  $b*x^2\n                                </function>\n                              </setup>\n\n                            <!--\n                              <p><m>a=$a</m>, <m>b=$b</m>, <m>c=$c</m></p>\n                            -->\n\n                              <p>\n                                Consider a car whose position <m>s</m> (in feet) at time <m>t</m> (in seconds) is given by the table:\n                              </p>\n\n                              <table suppressTableNameInTitle=\"true\">\n                                <tabular top=\"minor\" bottom=\"minor\" left=\"minor\" right=\"minor\">\n                                  <row>\n                                    <cell><m>t</m> (sec)</cell>\n                                    <cell><m>0</m></cell>\n                                    <cell><math simplify>$a</math></cell>\n                                    <cell><math simplify>2$a</math></cell>\n                                    <cell><math simplify>3$a</math></cell>\n                                    <cell><math simplify>4$a</math></cell>\n                                    <cell><math simplify>5$a</math></cell>\n                                  </row>\n                                  <row>\n                                    <cell><m>s</m> (feet)</cell>\n                                    <cell><math simplify displayDigits=\"4\">$$s(0)</math></cell>\n                                    <cell><math simplify displayDigits=\"4\">$$s($a)</math></cell>\n                                    <cell><math simplify displayDigits=\"4\">$$s(2$a)</math></cell>\n                                    <cell><math simplify displayDigits=\"4\">$$s(3$a)</math></cell>\n                                    <cell><math simplify displayDigits=\"4\">$$s(4$a)</math></cell>\n                                    <cell><math simplify displayDigits=\"4\">$$s(5$a)</math></cell>\n                                  </row>\n                                </tabular>\n                              </table>\n\n                              <p>\n                                <ol marker=\"a\">\n                                  <li>\n                                    <p> What are the units on the average velocity of the car? </p>\n                                      <answer>\n                                        <choiceInput name=\"choice1\" inline>\n                                          <choice>miles per hour</choice>\n                                          <choice>feet</choice>\n                                          <choice credit=\"1\">feet per second</choice>\n                                          <choice>seconds</choice>\n                                        </choiceInput>\n                                      </answer>\n                                  </li>\n                                  <li>\n                                    <p>Find the average velocity of the car on the interval <m>0 \\le t \\le <math simplify>3*$a</math>.</m> </p>\n                                  </li>\n                                  <answer allowedErrorInNumbers=\"0.05\" allowedErrorIsAbsolute=\"true\">\n                                      ($$s(3*$a)-$$s(0*$a))/(3$a)\n                                  </answer>\n                                  <!--\n                                  <math simplify displayDigits=\"8\"> ($$s(3*$a)-$$s(0*$a))/(3$a) </math>, <math displayDigits=\"8\"> ($$s(3*$a)-$$s(0*$a))/(3$a) </math>\n                                  -->\n                                  <li>\n                                    <p>\n                                      Find the average velocity of the car on the interval <m>[<math simplify>$c*$a</math>, <math simplify>($c+2)*$a</math>]</m>.\n                                    </p>\n                                  </li>\n                                  <answer allowedErrorInNumbers=\"0.05\" allowedErrorIsAbsolute=\"true\">\n                                      ($$s(($c+2)*$a)-$$s($c*$a))/(2$a)\n                                  </answer>\n                                </ol>\n                              </p>\n                            ]]>\n                        </slate>\n                    </interactive>\n                </statement>\n            </dynamic>\n            <static>\n                <introduction>\n                  <p>\n                    Consider a car whose position <m>s</m> (in feet) at time <m>t</m> (in seconds) is given by the table:\n                  </p>\n                  <!-- $a = 0.3, $$s(x) = 1.3*x^2 -->\n                  <tabular top=\"minor\" bottom=\"minor\" left=\"minor\" right=\"minor\">\n                    <row>\n                      <cell><m>t</m> (sec)</cell>\n                      <cell><m>0</m></cell>\n                      <cell><m>0.3</m></cell>\n                      <cell><m>0.6</m></cell>\n                      <cell><m>0.9</m></cell>\n                      <cell><m>1.2</m></cell>\n                      <cell><m>1.5</m></cell>\n                    </row>\n                    <row>\n                      <cell><m>s</m> (feet)</cell>\n                      <cell><m>0</m></cell>\n                      <cell><m>0.117</m></cell>\n                      <cell><m>0.468</m></cell>\n                      <cell><m>1.053</m></cell>\n                      <cell><m>1.872</m></cell>\n                      <cell><m>2.925</m></cell>\n                    </row>\n                  </tabular>\n                </introduction>\n                <task>\n                  <statement>\n                    <p>\n                      What are the units on the average velocity of the car?\n                    </p>\n                  </statement>\n                  <hint>\n                    <p>\n                      Consider possibilities such as <q>feet</q>, <q>seconds</q>, <q>feet per second</q>, or <q>seconds per foot</q>.\n                    </p>\n                  </hint>\n                  <answer>\n                    <p>\n                      feet per second\n                    </p>\n                  </answer>\n                </task>\n                <task>\n                  <statement>\n                    <p>\n                      Find the average velocity of the car on the interval <m>0 \\le t \\le 0.9</m>.\n                    </p>\n                  </statement>\n                  <hint>\n                    <p>\n                      Recall that average velocity is <q>change in position divided by change in time</q>.\n                    </p>\n                  </hint>\n                  <answer>\n                    <p>\n                      The average velocity of the car on the interval <m>0 \\le t \\le 0.9</m> is <m>1.17</m> feet per second.\n                    </p>\n                  </answer>\n                </task>\n                <task>\n                  <statement>\n                    <p>\n                      <!-- $c = 3 -->\n                      Find the average velocity of the car on the interval <m>[0.9, 1.5]</m>.\n                    </p>\n                  </statement>\n                  <answer>\n                    <p>\n                      The average velocity of the car on the interval <m>[0.9,1.5]</m> is <m>3.12</m> feet per second.\n                    </p>\n                  </answer>\n                </task>\n            </static>\n        </exercise>\n\n        <exercise>\n            <title>OpenDSA List Insertion (Dual)</title>\n            <dynamic>\n                <statement>\n                    <p>Work this following problem. Note that this is really just a test to see if additional text (beyond an <tag>interactive</tag>) will show up.</p>\n                    <interactive label=\"OpenDSA-list-insertion-exercise\"\n                        iframe=\"https://opendsax.cs.vt.edu/OpenDSA/Exercises/List/AlistInsertPRO.html\"\n                        width=\"100%\"/>\n                </statement>\n            </dynamic>\n            <static>\n                <statement>\n                    <p>An exercise about array-based list insertion goes here.</p>\n                </statement>\n            </static>\n        </exercise>\n\n    <p>This example recreates the Show-Eval visualization from the Runestone Components, using a PreTexT <tag>interactive</tag>. It also records student activity using SPLICE.</p>\n    <p>It demonstrates how the Show-Eval tool can be used to visualize the evaluation of Python expressions step by step.</p>\n    <p>This could also be used for doing similar visualization of mathematical expressions.  Support for MathJax would take some work, but this example would be a good starting point.</p>\n    <figure xml:id=\"show-eval-visualization1\">\n        <caption>Show-Eval Visualization</caption>\n        <interactive label=\"show-eval-visualization\" platform=\"javascript\" source=\"https://runestone.academy/cdn/runestone/showEval-0.10.0.js\" width=\"100%\" >\n            <slate surface=\"html\">\n                <style>\n                    .showEval { font-family: monospace; font-size: 1.5em; }\n                    .showEval span { vertical-align: text-top; }\n                </style>\n                <button id=\"nextStep\">Next Step</button>\n                <button id=\"reset\">Reset</button>\n                <div class='showEval'>eggs = ['dogs', 'cats', 'moose']</div>\n                <div id=\"showeval\"></div>\n                <script>\n                    document.addEventListener(\"DOMContentLoaded\", function() {\n                        console.log(\"Document loaded\");\n                        // for each step, put the part to replaced in the first set of {{ }}, and the replacement text in the following {{ }}\n                        steps = [\"''.join({{eggs}}{{['dogs', 'cats', 'moose']}}).upper().join(eggs)\",\n                        \"{{''.join(['dogs', 'cats', 'moose'])}}{{'dogscatsmoose'}}.upper().join(eggs)\",\n                        \"{{'dogscatsmoose'.upper()}}{{'DOGSCATSMOOSE'}}.join(eggs)\",\n                        \"'DOGSCATSMOOSE'.join({{eggs}}{{['dogs', 'cats', 'moose']}})\",\n                        \"{{'DOGSCATSMOOSE'.join(['dogs', 'cats', 'moose'])}}{{'dogsDOGSCATSMOOSEcatsDOGSCATSMOOSEmoose'}}\"];\n                        s = new SHOWEVAL.ShowEval(document.querySelector('#showeval'), steps, false); });\n                </script>\n            </slate>\n        </interactive>\n        </figure>\n    </section>\n\n    <exercises xml:id=\"chapter-exam\" label=\"chapter-exam\" time-limit=\"15\" pause=\"yes\">\n        <title>Timed Chapter Exam</title>\n\n        <introduction>\n            <p>This is an <tag>exercises</tag> division, as a peer of the <tag>section</tag> in this <tag>chapter</tag> of a <tag>book</tag>.  It is also setup as a Runestone timed exam.  So it is an example of how you might have a per-chapter exam.  This contrasts with an earlier timed exam which is constructed as a per-section exam (<xref ref=\"timing-exercises\"/>).  The exercises are the same here, but in a different order.  As a test, this exam is <q>pauseable</q> and has a 15 minute time limit.</p>\n        </introduction>\n\n        <exercise label=\"multiple-choice-not-randomized-timed-two\">\n            <title>Multiple-Choice, Not Randomized, One Answer</title>\n            <idx>stop signs</idx>\n            <statement>\n                <p>What color is a stop sign?</p>\n            </statement>\n            <choices>\n                <choice>\n                    <statement>\n                        <p>Green</p>\n                    </statement>\n                    <feedback>\n                        <p>Green means <q>go!</q>.</p>\n                    </feedback>\n                </choice>\n                <choice correct=\"yes\">\n                    <statement>\n                        <p>Red</p>\n                    </statement>\n                    <feedback>\n                        <p>Red is universally used for prohibited activities or serious warnings.</p>\n                    </feedback>\n                </choice>\n                <choice>\n                    <statement>\n                        <p>White</p>\n                    </statement>\n                    <feedback>\n                        <p>White might be hard to see.</p>\n                    </feedback>\n                </choice>\n            </choices>\n            <hint>\n                <p>What did you see last time you went driving?</p>\n            </hint>\n            <hint>\n                <p>Maybe go out for a drive?</p>\n            </hint>\n        </exercise>\n\n        <exercise label=\"vector-space-dimension-timed-two\">\n            <title>True/False</title>\n            <idx>vector space</idx>\n            <statement correct=\"no\">\n                <p>Every vector space has finite dimension.</p>\n            </statement>\n            <feedback>\n                <p>The vector space of all polynomials with finite degree has a basis, <m>B = \\{1,x,x^2,x^3,\\dots\\}</m>, which is infinte.</p>\n            </feedback>\n            <hint>\n                <p><m>P_n</m>, the vector space of polynomials with degree at most <m>n</m>, has dimension <m>n+1</m> by <xref ref=\"theorem-exponent-laws\"/>.  [Cross-reference is just a demo, content is not relevant.]  What happens if we relax the defintion and remove the parameter <m>n</m>?</p>\n            </hint>\n        </exercise>\n    </exercises>\n</chapter>\n"
  },
  {
    "path": "examples/sample-book/sage/cyclic-info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2016/03/25)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<remark>\n    <title>Sage</title>\n\n    <p>Sage support for cyclic groups is a little spotty <mdash /> but we can still make effective use of Sage and perhaps this situation could change soon.</p>\n</remark>\n"
  },
  {
    "path": "examples/sample-book/sage/cyclic-sage-exercises.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2016/03/25)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<exercises xml:id=\"cyclic-sage-exercises\">\n    <title>Sage Exercises</title>\n\n    <introduction>\n        <p>This group of exercises is about the group of units mod <m>n</m>, <m>U(n)</m>, which is sometimes cyclic, sometimes not.  There are some commands in Sage that will answer some of these questions very quickly, but instead of using those now, just use the basic techniques described.  The idea here is to just work with elements, and lists of elements, to discern the subgroup structure of these groups.</p>\n    </introduction>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>Execute the statement <c>R = Integers(40)</c> to create the set <c>[0,1,2,...,39]</c>  This is a group under addition mod <m>40</m>, which we will ignore.  Instead we are interested in the subset of elements which have an inverse under <em>multiplication</em> mod <m>40</m>.  Determine how big this subgroup is by executing the command <c>R.unit_group_order()</c>, and then obtain a list of these elements with <c>R.list_of_elements_of_multiplicative_group()</c>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"2\">\n        <statement>\n            <p>You can create elements of this group by coercing regular integers into <c>U</c>, such as  with the statement <c>a = U(7)</c>.  (Don't confuse this with our mathematical notation <m>U(40)</m>.)  This will tell Sage that you want to view <m>7</m> as an element of <m>U</m>, subject to the corresponding operations.  Determine the elements of the cyclic subgroup of <m>U</m> generated by <m>7</m> with a list comprehension as follows:</p>\n\n            <sage type=\"display\">\n                <input>\n                R = Integers(40)\n                a = R(7)\n                [a^i for i in srange(16)]\n                </input>\n            </sage>\n\n            <p>What is the order of <m>7</m> in <m>U(40)</m>?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"3\">\n        <statement>\n            <p>The group <m>U(49)</m> is cyclic.  Using only the Sage commands described previously, use Sage to find a generator for this group.  Now using <em>only</em> theorems about the structure of cyclic groups, describe each of the subgroups of <m>U(49)</m> by specifying its order and by giving an explicit generator.  Do not repeat any of the subgroups <mdash/> in other words, present each subgroup <em>exactly</em> once.  You can use Sage to check your work on the subgroups, but your answer about the subgroups should rely only on theorems and be a nicely written paragraph with a table, etc.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"4\">\n        <statement>\n            <p>The group <m>U(35)</m> is not cyclic.  Again, using only the Sage commands described previously, use computations to provide irrefutable evidence of this.  How many of the <m>16</m> different subgroups of <m>U(35)</m> can you list?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"5\">\n        <statement>\n            <p>Again, using only the Sage commands described previously, explore the structure of <m>U(n)</m> for various values of <m>n</m> and see if you can formulate an interesting conjecture about some basic property of this group.  (Yes, this is a <em>very</em> open-ended question, but this is ultimately the real power of exploring mathematics with Sage.)</p>\n        </statement>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/sage/groups-info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n<!-- See the file COPYING for copying conditions.  -->\n\n<remark>\n    <title>Sage</title>\n\n    <p>The first half of this text is about group theory.  Sage includes Groups, Algorithms and Programming (GAP), a program designed primarly for just group theory, and in continuous development since 1986.  Many of Sage's computations for groups ultimately are performed by GAP.</p>\n</remark>\n"
  },
  {
    "path": "examples/sample-book/sage/groups-sage-exercises.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<exercises xml:id=\"groups-sage-exercises\">\n    <title>Sage Exercises</title>\n\n    <introduction>\n        <p>These exercises are about becoming comfortable working with groups in Sage.</p>\n    </introduction>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>Create the groups <c>CyclicPermutationGroup(8)</c> and <c>DihedralGroup(4)</c> and name these groups <c>C</c> and <c>D</c>, respectively.  We will understand these constructions better shortly, but for now just understand that both objects you create are actually groups.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"2\">\n        <statement>\n            <p>Check that <c>C</c> and <c>D</c> have the same size by using the <c>.order()</c> method.  Determine which group is abelian, and which is not, by using the <c>.is_abelian()</c> method.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"3\">\n        <statement>\n            <p>Use the <c>.cayley_table()</c> method to create the Cayley table for each group.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"4\">\n        <statement>\n            <p>Write a nicely formatted discussion identifying differences between the two groups that are discernible in properties of their Cayley tables.  In other words, what is {\\em different} about these two groups that you can <q>see</q> in the Cayley tables?  (In the Sage notebook, a Shift-click on a blue bar will bring up a mini-word-processor, and you can use use dollar signs to embed mathematics formatted using <tex/> syntax.)</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"5\">\n        <statement>\n            <p>For <c>C</c> locate the one subgroup of order <m>4</m>.  The group <c>D</c> has three subgroups of order <m>4</m>.  Select one of the three subgroups of <c>D</c> that has a different structure than the subgroup you obtained from <c>C</c>.</p>\n\n            <p>The <c>.subgroups()</c> method will give you a list of all of the subgroups to help you get started.  A Cayley table will help you tell the difference between the two subgroups.  What properties of these tables did you use to determine the difference in the structure of the subgroups?</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"6\">\n        <statement>\n            <p>The <c>.subgroup(elt_list)</c> method of a group will create the smallest subgroup containing the specified elements of the group, when given the elements as a list <c>elt_list</c>.  Use this command to discover the shortest list of elements necessary to recreate the subgroups you found in the previous exercise.  The equality comparison, <c>==</c>, can be used to test if two subgroups are equal.</p>\n        </statement>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/sage/groups-sage.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<section xml:id=\"groups-sage\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <title>Sage</title>\n\n    <introduction>\n        <p>Many of the groups discussed in this chapter are available for study in Sage.  It is important to understand that sets that form algebraic objects (groups in this chapter) are called <q>parents</q> in Sage, and elements of these objects are called, well, <q>elements.</q>  So every element belongs to a parent (in other words, is contained in some set).  We can ask about properties of parents (finite? order? abelian?), and we can ask about properties of individual elements (identity? inverse?).  In the following we will show you how to create some of these common groups and begin to explore their properties with Sage.</p>\n    </introduction>\n\n    <subsection>\n        <title>Integers mod n</title>\n\n        <sage>\n            <input>\n            Z8 = Integers(8)\n            Z8\n            </input>\n            <output>Ring of integers modulo 8</output>\n        </sage>\n\n        <sage>\n            <input>Z8.list()</input>\n            <output>[0, 1, 2, 3, 4, 5, 6, 7]</output>\n        </sage>\n\n        <sage>\n            <input>a = Z8.an_element(); a</input>\n            <output>0</output>\n        </sage>\n\n        <sage>\n            <input>a.parent()</input>\n            <output>Ring of integers modulo 8</output>\n        </sage>\n\n        <p>We would like to work with elements of <c>Z8</c>.  If you were to type a <c>6</c> into a compute cell right now, what would you mean?  The integer <m>6</m>, the rational number <m>\\frac{6}{1}</m>, the real number <m>6.00000</m>, or the complex number <m>6.00000+0.00000i</m>?  Or perhaps you really do want the integer <m>6</m> mod <m>8</m>?  Sage really has no idea what you mean or want.  To make this clear, you can <q>coerce</q> <c>6</c> into <c>Z8</c> with the syntax <c>Z8(6)</c>.  Without this, Sage will treat a input number like <c>6</c> as an integer, the simplest possible interpretation in some sense.  Study the following carefully, where we first work with <q>normal</q> integers and then with integers mod 8.</p>\n\n        <sage>\n            <input>\n            a = 6\n            a\n            </input>\n            <output>6</output>\n        </sage>\n\n        <sage>\n            <input>a.parent()</input>\n            <output>Integer Ring</output>\n        </sage>\n\n        <sage>\n            <input>\n            b = 7\n            c = a + b; c\n            </input>\n            <output>13</output>\n        </sage>\n\n        <sage>\n            <input>\n            d = Z8(6)\n            d\n            </input>\n            <output>6</output>\n        </sage>\n\n        <sage>\n            <input>d.parent()</input>\n            <output>Ring of integers modulo 8</output>\n        </sage>\n\n        <sage>\n            <input>\n            e = Z8(7)\n            f = d+e; f\n            </input>\n            <output>5</output>\n        </sage>\n\n        <sage>\n            <input>g = Z8(85); g</input>\n            <output>5</output>\n        </sage>\n\n        <sage>\n            <input>f == g</input>\n            <output>True</output>\n        </sage>\n\n        <p><c>Z8</c> is a bit unusual as a first example, since it has two operations defined, both addition and multiplication, with addition forming a group, and multiplication not forming a group.  Still, we can work with the additive portion, here forming the Cayley table for the addition.</p>\n\n        <sage>\n            <input>Z8.addition_table(names='elements')</input>\n            <output>\n            +  0 1 2 3 4 5 6 7\n             +----------------\n            0| 0 1 2 3 4 5 6 7\n            1| 1 2 3 4 5 6 7 0\n            2| 2 3 4 5 6 7 0 1\n            3| 3 4 5 6 7 0 1 2\n            4| 4 5 6 7 0 1 2 3\n            5| 5 6 7 0 1 2 3 4\n            6| 6 7 0 1 2 3 4 5\n            7| 7 0 1 2 3 4 5 6\n            </output>\n        </sage>\n\n        <p>When <m>n</m> is a prime number, the multipicative structure (excluding zero), will also form a group.</p>\n\n        <p>The integers mod <m>n</m> are very important, so Sage implements both addition and multiplication together.  Groups of symmetries are a better example of how Sage implements groups, since there is just one operation present.</p>\n\n        <sage type=\"practice\" />\n\n    </subsection>\n\n    <subsection>\n        <title>Groups of symmetries</title>\n\n        <!-- Two references to Chapter 5 are hard-coded here in sample, since it is abbreviated -->\n\n        <p>The symmetries of some geometric shapes are already defined in Sage, albeit with different names.  They are implemented as <q>permutation groups</q> which we will begin to study carefully in Chapter<nbsp />5.</p>\n\n        <p>Sage uses integers to label vertices, starting the count at <c>1</c>, instead of letters.  Elements by default are printed using <q>cycle notation</q> which we will see described carefully in Chapter<nbsp />5.    Here is an example, with both the mathematics and Sage.  For the Sage part, we create the group of symmetries and then create the symmetry <m>\\rho_2</m> with coercion, followed by outputting the element in cycle notation.  Then we create just the <em>bottom row</em> of the notation we are using for permutations.  <md>\\rho_2=\n        \\begin{pmatrix}<![CDATA[\n        A & B & C\\\\\n        C & A & B\n        ]]>\\end{pmatrix}\n        =\n        \\begin{pmatrix}<![CDATA[\n        1 & 2 & 3\\\\\n        3 & 1 & 2\n        ]]>\\end{pmatrix}</md>\n        </p>\n\n        <sage>\n            <input>\n            triangle = SymmetricGroup(3)\n            rho2 = triangle([3,1,2])\n            rho2\n            </input>\n            <output>(1,3,2)</output>\n        </sage>\n\n        <sage>\n            <input>[rho2(x) for x in triangle.domain()]</input>\n            <output>[3, 1, 2]</output>\n        </sage>\n\n        <p>The final list comprehension deserves comment.  The <c>.domain()</c> method gives a lait of the symbols used for the permutation group <c>triangle</c> and then <c>rho2</c> is employed with syntax like it is a function (it <em>is</em> a function) to create the images that would occupy the bottom row.</p>\n\n        <p>With a double list comprehension we can list all six elements of the group in the <q>bottom row</q> format.  A good exercise would be to pair up each element with its name as given in <xref ref=\"figure-s3-symmetry\" />.</p>\n\n        <sage>\n            <input>[[a(x) for x in triangle.domain()] for a in triangle]</input>\n            <output>[[1, 2, 3], [2, 1, 3], [2, 3, 1], [3, 1, 2], [1, 3, 2], [3, 2, 1]]</output>\n        </sage>\n\n        <p>Different books, different authors, different software all have different ideas about the order in which to write multiplication of functions.  This textbook builds on the idea of composition of functions, so that <m>fg</m> is the composition <m>(fg)(x)=f(g(x))</m> and it is natural to apply <m>g</m> first.  Sage takes the opposite view and since we write <m>fg</m>, Sage will understand that we want to do <m>f</m> first.  Neither approach is wrong, and neither is necessarily superior, they are just different and there are good arguments for either one.  When you consult other books that work with permutation groups, you want to first determine which approach it takes.</p>\n\n        <p>The translation here between the text and Sage will be worthwhile practice.  Here we will reprise the discussion at the end of <xref ref=\"section-mod-n-sym\" />, but reverse the order on each product to compute Sage-style and exactly mirror what the text does.</p>\n\n        <sage>\n            <input>\n            mu1 = triangle([1,3,2])\n            mu2 = triangle([3,2,1])\n            mu3 = triangle([2,1,3])\n            rho1 = triangle([2,3,1])\n            product = rho1*mu1\n            product == mu2\n            </input>\n            <output>True</output>\n        </sage>\n\n        <sage>\n            <input>[product(x) for x in triangle.domain()]</input>\n            <output>[3, 2, 1]</output>\n        </sage>\n\n        <sage>\n            <input>rho1*mu1 == mu1*rho1</input>\n            <output>False</output>\n        </sage>\n\n        <sage>\n            <input>mu1*rho1 == mu3</input>\n            <output>True</output>\n        </sage>\n\n        <p>Now that we understand that Sage does multiplication in reverse, we can compute the Cayley table for this group.  Default behavior is to just name elements of a group as letters, <c>a, b, c</c>, \\dots{} in the same order that the <c>.list()</c> command would produce the elements of the group.  But you can also print the elements in the table as themselves (that uses cycle notation here), or you can give the elements names.  We will use <c>u</c> as shorthand for <m>\\mu</m> and <c>r</c> as shorthand for <m>\\rho</m>.</p>\n\n        <sage>\n            <input>triangle.cayley_table()</input>\n            <output>\n            *  a b c d e f\n             +------------\n            a| a b c d e f\n            b| b a f e d c\n            c| c e d a f b\n            d| d f a c b e\n            e| e c b f a d\n            f| f d e b c a\n            </output>\n        </sage>\n\n        <sage>\n            <input>triangle.cayley_table(names='elements')</input>\n            <output>\n                  *       ()   (1,2) (1,2,3) (1,3,2)   (2,3)   (1,3)\n                   +------------------------------------------------\n                 ()|      ()   (1,2) (1,2,3) (1,3,2)   (2,3)   (1,3)\n              (1,2)|   (1,2)      ()   (1,3)   (2,3) (1,3,2) (1,2,3)\n            (1,2,3)| (1,2,3)   (2,3) (1,3,2)      ()   (1,3)   (1,2)\n            (1,3,2)| (1,3,2)   (1,3)      () (1,2,3)   (1,2)   (2,3)\n              (2,3)|   (2,3) (1,2,3)   (1,2)   (1,3)      () (1,3,2)\n              (1,3)|   (1,3) (1,3,2)   (2,3)   (1,2) (1,2,3)      ()\n            </output>\n        </sage>\n\n        <sage>\n            <input>triangle.cayley_table(names=['id','u1','u3','r1','r2','u2'])</input>\n            <output>\n             *  id u1 u3 r1 r2 u2\n              +------------------\n            id| id u1 u3 r1 r2 u2\n            u1| u1 id u2 r2 r1 u3\n            u3| u3 r2 r1 id u2 u1\n            r1| r1 u2 id u3 u1 r2\n            r2| r2 u3 u1 u2 id r1\n            u2| u2 r1 r2 u1 u3 id\n            </output>\n        </sage>\n\n        <p>You should verify that the table above is correct, just like Table 3.2 is correct.  Remember that the convention is to multiply a row label times a column label, in that order.  However, to do a check across the two tables, you will need to recall the difference in ordering between your textbook and Sage.</p>\n\n        <sage type=\"practice\" />\n\n    </subsection>\n\n    <subsection>\n        <title>Quaternions</title>\n\n        <p>Sage implements the quaternions, but the elements are not matrices, but rather are permutations.  Despite appearances the structure is identical.  It should not matter which version you have in mind (matrices or permutations) if you build the Cayley table and use the default behavior of using letters to name the elements.  As permutations, or as letters, can you identify <m>-1</m>, <m>I</m>, <m>J</m> and <m>K</m>?</p>\n\n        <sage>\n            <input>\n            Q = QuaternionGroup()\n            [[a(x) for x in Q.domain()] for a in Q]\n            </input>\n            <output>\n            [[1, 2, 3, 4, 5, 6, 7, 8], [2, 3, 4, 1, 6, 7, 8, 5],\n             [5, 8, 7, 6, 3, 2, 1, 4], [3, 4, 1, 2, 7, 8, 5, 6],\n             [6, 5, 8, 7, 4, 3, 2, 1], [8, 7, 6, 5, 2, 1, 4, 3],\n             [4, 1, 2, 3, 8, 5, 6, 7], [7, 6, 5, 8, 1, 4, 3, 2]]\n            </output>\n        </sage>\n\n        <sage>\n            <input>Q.cayley_table()</input>\n            <output>\n            *  a b c d e f g h\n             +----------------\n            a| a b c d e f g h\n            b| b d f g c h a e\n            c| c e d h g b f a\n            d| d g h a f e b c\n            e| e h b f d a c g\n            f| f c g e a d h b\n            g| g a e b h c d f\n            h| h f a c b g e d\n            </output>\n        </sage>\n\n        <p>It should be fairly obvious that <c>a</c> is the identity element of the group (<m>1</m>), either from its behavior in the table, or from its <q>bottom row</q> representation in the list above.  And if you prefer, you can ask Sage.</p>\n\n        <sage>\n            <input>\n            id = Q.identity()\n            [id(x) for x in Q.domain()]\n            </input>\n            <output>[1, 2, 3, 4, 5, 6, 7, 8]</output>\n        </sage>\n\n        <p>Now <m>-1</m> should have the property that <m>-1\\cdot -1= 1</m>.  We see that the identity element <c>a</c> is on the diagonal of the Cayley table only when we compute <c>c*c</c>.  We can verify this easily, borrowing the third <q>bottom row</q> element from the list above.  With this information, once we locate <m>I</m>, we can easily compute <m>-I</m>, and so on.</p>\n\n        <sage>\n            <input>\n            minus_one = Q([3, 4, 1, 2, 7, 8, 5, 6])\n            minus_one*minus_one == Q.identity()\n            </input>\n            <output>True</output>\n        </sage>\n\n        <p>See if you can pair up the letters with all eight elements of the quaternions.  Be a bit careful with your names, the symbol <c>I</c> is used by Sage for the imaginary number <m>i</m> (which we will use below), but Sage will silently let you redefine it to be anything you like.  Same goes for lower-case <c>i</c>.  So call your elements of the quaternions something like <c>QI, QJ, QK</c> to avoid confusion.</p>\n\n        <p>As we begin to work with groups it is instructive to work with the actual elements.  But many properties of groups are totally independent of the order we use for multiplication, or the names or representations we use for the elements.  Here are facts about the quaternions we can compute without any knowledge of just how the elements are written or multiplied.</p>\n\n        <sage>\n            <input>Q.is_finite()</input>\n            <output>True</output>\n        </sage>\n\n        <sage>\n            <input>Q.order()</input>\n            <output>8</output>\n        </sage>\n\n        <sage>\n            <input>Q.is_abelian()</input>\n            <output>False</output>\n        </sage>\n\n        <sage type=\"practice\" />\n\n    </subsection>\n\n    <subsection>\n        <title>Subgroups</title>\n\n        <p>The best techniques for creating subgroups will come in future chapters, but we can create some groups that are naturally subgroups of other groups.</p>\n\n        <p>Elements of the quaternions were represented by certain permutations of the integers 1 through 8.  We can also build the group of <em>all</em> permutations of these eight integers.  It gets pretty big, so do not list it unless you want a lot of output!  (I dare you.)</p>\n\n        <sage>\n            <input><xi:include href=\"../code/symmetric-group-8.sage\" parse=\"text\" /></input>\n            <output>[5, 2, 6, 4, 1, 8, 3, 7]</output>\n        </sage>\n\n        <p>As a demonstration of reusing chunks of Sage code, we duplicate the previous example.  But in each case the code lives in an external file, just once.  So if you wanted to use setup code in more than one division, you could put it in a file and incorporate it similarly.  Here we do not test the second instance, and so do not include expected output either.  Typically, you would do this copy somewhere further away.  Note that need to supply a path for the file that is relative to the location of teh source file containing the <tag>pretext</tag> element, since the repeated material is source <init>XML</init>.</p>\n\n        <sage doctest=\"not tested\">\n            <input><xi:include href=\"../code/symmetric-group-8.sage\" parse=\"text\" /></input>\n        </sage>\n\n        <sage>\n            <input>S8.order()</input>\n            <output>40320</output>\n        </sage>\n\n\n        <p>The quaternions, <c>Q</c>, is a subgroup of the full group of all permutations, the symmetric group <m>S_8</m> or <c>S8</c>, and Sage regards this as a property of <c>Q</c>.</p>\n\n        <sage>\n            <input>Q.is_subgroup(S8)</input>\n            <output>True</output>\n        </sage>\n\n        <p>In Sage the complex numbers are known by the name <c>CC</c>.  We can create a list of the elements in the subgroup described in <xref ref=\"example-groups-c-star\" />.  Then we can verify that this set is a subgroup by examining the Cayley table, using multiplication as the operation.</p>\n\n        <sage>\n            <input>\n            H = [CC(1), CC(-1), CC(I), CC(-I)]\n            CC.multiplication_table(elements=H,\n                                    names=['1', '-1', 'i', '-i'])\n            </input>\n            <output>\n            *   1 -1  i -i\n              +------------\n             1|  1 -1  i -i\n            -1| -1  1 -i  i\n             i|  i -i -1  1\n            -i| -i  i  1 -1\n            </output>\n        </sage>\n\n        <sage type=\"practice\" />\n\n    </subsection>\n</section>\n"
  },
  {
    "path": "examples/sample-book/sage/integers-info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<remark>\n    <title>Sage</title>\n\n    <p>Sage's original purpose was to support research in number theory, so it is perfect for the types of computations with the integers that we have in this chapter.</p>\n</remark>\n"
  },
  {
    "path": "examples/sample-book/sage/integers-sage-exercises.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<exercises xml:id=\"integers-sage-exercises\">\n    <title>Sage Exercises</title>\n\n    <introduction>\n        <p>These exercises are about investigating basic properties of the integers, something we will frequently do when investigating groups.  Use the editing capabilities of a Sage worksheet to annotate and explain your work.</p>\n    </introduction>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>Use the <c>next_prime()</c> command to construct two different 8-digit prime numbers and save them in variables named <c>a</c> and <c>b</c>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"2\">\n        <statement>\n            <p>Use the <c>.is_prime()</c> method to verify that your primes <c>a</c> and <c>b</c> are really prime.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"3\">\n        <statement>\n            <p>Verify that <m>1</m> is the greatest common divisor of your two primes from the previous exercises.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"4\">\n        <statement>\n            <p>Find two integers that make a <q>linear combination</q> of your two primes equal to <m>1</m>.  Include a verification of your result.</p>\n        </statement>\n    </exercise>\n\n\n    <exercise number=\"5\">\n        <statement>\n            <p>Determine a factorization into powers of primes for <m>c=4\\,598\\,037\\,234</m>.</p>\n        </statement>\n    </exercise>\n\n    <exercise number=\"6\">\n        <statement>\n            <p>Write a compute cell that defines the same value of <c>c</c> again, and then defines a candidate divisor of <c>c</c> named <c>d</c>.  The third line of the cell should return <c>True</c> if and only if <c>d</c> is a divisor of <c>c</c>.  Illustrate the use of your cell by testing your code with <m>d=7</m> and in a new copy of the cell, testing your code with <m>d=11</m>.</p>\n        </statement>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/sage/integers-sage.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<section xml:id=\"integers-sage\">\n    <title>Sage</title>\n\n    <introduction>\n        <p>Many properties of the algebraic objects we will study can be determined from properties of associated integers.  And Sage has many powerful functions for analyzing integers.</p>\n    </introduction>\n\n    <subsection>\n        <title>Division Algorithm</title>\n\n        <p>The code <c>a % b</c> will return the remainder upon division of <m>a</m> by <m>b</m>.  In other words, the result is the unique integer <m>r</m> such that (1) <m>0\\leq r\\lt b</m>, and (2) <m>a=bq+r</m> for some integer <m>q</m> (the quotient), as guaranteed by the Division Algorithm (<xref ref=\"theorem-integers-division_algorithm\" />).  Then <m>(a-r)/b</m> will equal <m>q</m>.  For example,</p>\n\n        <sage>\n            <input>\n            r = 14 % 3\n            r\n            </input>\n            <output>2</output>\n        </sage>\n\n        <sage>\n            <input>\n            q = (14 - r)/3\n            q\n            </input>\n            <output>4</output>\n        </sage>\n\n        <p>It is also possible to get both the quotient and remainder at the same time with the <c>.quo_rem()</c> method (quotient and remainder).</p>\n\n        <sage>\n            <input>\n            a = 14\n            b = 3\n            a.quo_rem(b)\n            </input>\n            <output>(4, 2)</output>\n        </sage>\n\n        <p>A remainder of zero indicates divisibility.  So <c>(a % b) == 0</c> will return <c>True</c> if <m>b</m> divides <m>a</m>, and will otherwise return <c>False</c>.</p>\n\n        <sage>\n            <input>(20 % 5) == 0</input>\n            <output>True</output>\n        </sage>\n\n        <sage>\n            <input>(17 % 4) == 0</input>\n            <output>False</output>\n        </sage>\n\n        <p>The <c>.divides()</c> method is another option.</p>\n\n        <sage>\n            <input>\n            c = 5\n            c.divides(20)\n            </input>\n            <output>True</output>\n        </sage>\n\n        <sage>\n            <input>\n            d = 4\n            d.divides(17)\n            </input>\n            <output>False</output>\n        </sage>\n    </subsection>\n\n    <subsection>\n        <title>Greatest Common Divisor</title>\n\n        <p>The greatest common divisor of <m>a</m> and <m>b</m> is obtained with the command <c>gcd(a, b)</c>, where in our first uses, <m>a</m> and <m>b</m> are integers.  Later, <m>a</m> and <m>b</m> can be other objects with a notion of divisibility and <q>greatness,</q> such as polynomials.  For example,</p>\n\n        <sage>\n            <input>gcd(2776, 2452)</input>\n            <output>4</output>\n        </sage>\n\n        <p>We can use the <c>gcd</c> command to determine if a pair of integers are relatively prime.</p>\n\n        <sage>\n            <input>\n            a = 31049\n            b = 2105\n            gcd(a, b) == 1\n            </input>\n            <output>True</output>\n        </sage>\n\n        <sage>\n            <input>\n            a = 3563\n            b = 2947\n            gcd(a, b) == 1\n            </input>\n            <output>False</output>\n        </sage>\n\n        <p>The command <c>xgcd(a,b)</c> (<q>eXtended GCD</q>) returns a triple where the first element is the greatest common divisor of <m>a</m> and <m>b</m> (as with the <c>gcd(a,b)</c> command above), but the next two elements are values of <m>r</m> and <m>s</m> such that <m>ra+sb=\\gcd(a,b)</m>.</p>\n\n        <sage>\n            <input>xgcd(633,331)</input>\n            <output>(1, -137, 262)</output>\n        </sage>\n\n        <p>Portions of the triple can be extracted using <c>[ ]</c> (<q>indexing</q>) to access the entries of the triple, starting with the first as number <c>0</c>.  For example, the following should always return the result <c>True</c>, even if you change the values of <c>a</c> and <c>b</c>.  Try changing the values of <c>a</c> and <c>b</c> below, to see that the result is always <c>True</c>.</p>\n\n        <sage>\n            <input>\n            a = 633\n            b = 331\n            extended = xgcd(a, b)\n            g = extended[0]\n            r = extended[1]\n            s = extended[2]\n            g == r*a + s*b\n            </input>\n            <output>True</output>\n        </sage>\n\n        <p>Studying this block of code will go a long way towards helping you get the most out of Sage's output.  Note that <c>=</c> is how a value is <em>assigned</em> to a variable, while as in the last line, <c>==</c> is how we compare two items for <em>equality</em>.</p>\n\n        </subsection>\n        <subsection>\n        <title>Primes and Factoring</title>\n\n        <p>The method <c>.is_prime()</c> will determine if an integer is prime or not.</p>\n\n        <sage>\n            <input>\n            a = 117371\n            a.is_prime()\n            </input>\n            <output>True</output>\n        </sage>\n\n        <sage>\n            <input>\n            b = 14547073\n            b.is_prime()\n            </input>\n            <output>False</output>\n        </sage>\n\n        <sage>\n            <input>b == 1597 * 9109</input>\n            <output>True</output>\n        </sage>\n\n        <p>The command <c>random_prime(a, proof=True)</c> will generate a random prime number between <m>2</m> and <m>a</m>. Experiment by executing the following two compute cells several times.  (Replacing <c>proof=True</c> by <c>proof=False</c> will speed up the search, but there will be a very, very, very small probability the result will not be prime.)</p>\n\n        <sage doctest=\"random\">\n            <input>\n            a = random_prime(10^21, proof=True)\n            a\n            </input>\n            <output>424729101793542195193</output>\n        </sage>\n\n        <sage>\n            <input>a.is_prime()</input>\n            <output>True</output>\n        </sage>\n\n        <p>The command <c>prime_range(a, b)</c> returns an ordered list of all the primes from <m>a</m> to <m>b-1</m>, inclusive.  For example,</p>\n\n        <sage>\n            <input>prime_range(500, 550)</input>\n            <output>[503, 509, 521, 523, 541, 547]</output>\n        </sage>\n\n        <p>The commands <c>next_prime(a)</c> and <c>previous_prime(a)</c> are other ways to get a single prime number of a desired size.  Give them a try below if you have an empty compute cell there (as you will if you are reading in the Sage Notebook, or are reading the online version).  (The hash symbol, <c>#</c>, is used to indicate a <q>comment</q> line, which will not be evaluated by Sage.  So erase this line, or start on the one below it.)</p>\n\n        <sage type=\"practice\"/>\n\n        <p>In addition to checking if integers are prime or not, or generating prime numbers, Sage can also decompose any integer into its prime factors, as described by the Fundamental Theorem of Arithmetic (<xref ref=\"theorem-fund-theorem-arithmetic\" />).</p>\n\n        <sage>\n            <input>\n            a = 2600\n            a.factor()\n            </input>\n            <output>2^3 * 5^2 * 13</output>\n        </sage>\n\n        <p>So <m>2600 = 2^3\\times 5^2\\times 13</m> and this is the unique way to write <m>2600</m> as a product of prime numbers (other than rearranging the order of the primes themselves in the product).</p>\n\n        <p>While Sage will print a factorization nicely, it is carried internally as a list of pairs of integers, with each pair being a base (a prime number) and an exponent (a positive integer).  Study the following carefully, as it is another good exercise in working with Sage output in the form of lists.</p>\n\n        <sage>\n            <input>\n            a = 2600\n            factored = a.factor()\n            first_term = factored[0]\n            first_term\n            </input>\n            <output>(2, 3)</output>\n        </sage>\n\n        <sage>\n            <input>\n            second_term = factored[1]\n            second_term\n            </input>\n            <output>(5, 2)</output>\n        </sage>\n\n        <sage>\n            <input>\n            third_term = factored[2]\n            third_term\n            </input>\n            <output>(13, 1)</output>\n        </sage>\n\n        <sage>\n            <input>\n            first_prime = first_term[0]\n            first_prime\n            </input>\n            <output>2</output>\n        </sage>\n\n        <sage>\n            <input>\n            first_exponent = first_term[1]\n            first_exponent\n            </input>\n            <output>3</output>\n        </sage>\n\n        <p>The next compute cell reveals the internal version of the factorization by asking for the actual list.  And we show how you could determine exactly how many terms the factorization has by using the length command, <c>len()</c>.</p>\n\n        <sage>\n            <input>list(factored)</input>\n            <output>[(2, 3), (5, 2), (13, 1)]</output>\n        </sage>\n\n        <sage>\n            <input>len(factored)</input>\n            <output>3</output>\n        </sage>\n\n        <p>Can you extract the next two primes, and their exponents, from <c>a</c>?</p>\n\n        <sage type=\"practice\"/>\n    </subsection>\n\n</section>\n"
  },
  {
    "path": "examples/sample-book/sage/sets-info.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<remark>\n    <title>Sage</title>\n\n    <p>Sage is free, open source, mathematical software, which has very impressive capabilities for the study of abstract algebra.  See the <xref ref=\"preface\" text=\"title\" /> for more information about obtaining Sage and the supplementary material in the electronic versions of this text that describe how to use Sage in the study of abstract algebra.  In this non-electronic version, we will have a brief explanation of Sage's relevant capabilities at the end of each chapter in a Remark.  Much like this one.</p>\n</remark>\n"
  },
  {
    "path": "examples/sample-book/sage/sets-sage-exercises.xml",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<exercises xml:id=\"sets-sage-exercises\">\n    <title>Sage Exercises</title>\n\n    <exercise number=\"1\">\n        <statement>\n            <p>This exercise is just about making sure you know how to use Sage.  Login to a Sage Notebook server and create a new worksheet.  Do some non-trivial computation, maybe a pretty plot or some gruesome numerical computation to an insane precision.   Create an interesting list and experiment with it some.  Maybe include some nicely formatted text or <tex/> using the included mini-word-processor of the Sage Notebook (hover until a blue bar appears between cells and then shift-click).</p>\n\n            <p>Use whatever mechanism your instructor has in place for submitting your work.  Or save your worksheet and then trade worksheets via email (or another electronic method) with a classmate.</p>\n        </statement>\n    </exercise>\n\n</exercises>\n"
  },
  {
    "path": "examples/sample-book/sage/sets-sage.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 2010-2014  Robert A. Beezer     -->\n\n<section xml:id=\"sets-sage\">\n    <title>Sage</title>\n\n    <introduction>\n        <p>Sage is a powerful system for studying and exploring many different areas of mathematics.  In this textbook, you will study a variety of algebraic structures, such as groups, rings and fields.  Sage does an excellent job of implementing many features of these objects as we will see in the chapters ahead.  But here and now, in this initial chapter, we will concentrate on a few general ways of getting the most out of working with Sage.</p>\n\n        <p>You may use Sage several different ways.  It may be used as a command-line program when installed on your own computer.  Or it might be a web application such as the SageMathCloud.  Our writing will assume that you are reading this as a worksheet within the Sage Notebook (a web browser interface), or this is a section of the entire book presented as web pages, and you are employing the Sage Cell Server via those pages.  After the first few chapters the explanations should work equally well for whatever vehicle you use to execute Sage commands.</p>\n\n    </introduction>\n\n    <subsection>\n        <title>Executing Sage Commands</title>\n\n        <p>Most of your interaction will be by typing commands into a <em>compute cell</em>.  If you are reading this in the Sage Notebook or as a webpage version of the book, then you will see a compute cell just below this paragraph.  Click once inside the compute cell and if you are in the Sage Notebook, you will get a more distinctive border around it, a blinking cursor inside, plus a cute little <q>evaluate</q> link below.</p>\n\n        <sage />\n\n        <p>At the cursor, type <c>2+2</c> and then click on the evaluate link.  Did a <c>4</c> appear below the cell?  If so, you have successfully sent a command off for Sage to evaluate and you have received back the (correct) answer.</p>\n\n        <p>Here is another compute cell.  Try evaluating the command <c>factorial(300)</c> here.</p>\n\n        <sage />\n\n        <p>Hmmmmm.  That is quite a big integer!  If you see slashes at the end of each line, this means the result is continued onto the next line, since there are 615 total digits in the result.</p>\n\n        <p>To make new compute cells in the Sage Notebook (only), hover your mouse just above another compute cell, or just below some output from a compute cell.  When you see a skinny blue bar across the width of your worksheet, click and you will open up a new compute cell, ready for input.  Note that your worksheet will remember any calculations you make, in the order you make them, no matter where you put the cells, so it is best to stay organized and add new cells at the bottom.</p>\n\n        <p>Try placing your cursor just below the monstrous value of <m>300!</m> that you have.  Click on the blue bar and try another factorial computation in the new compute cell.</p>\n\n        <p>Each compute cell will show output due to only the very last command in the cell.  Try to predict the following output before evaluating the cell.</p>\n\n        <!-- Doctest framework *will* create output from \"b\", contrary to notebook behavior -->\n        <!-- So doctest will fail, and doctest=\"not tested\" does not help the situation -->\n        <sage>\n            <input>\n            a = 10\n            b = 6\n            b = b - 10\n            a = a + 20\n            a\n            </input>\n            <output>30</output>\n        </sage>\n\n        <p>The following compute cell will not print anything since the one command does not create output.  But it will have an effect, as you can see when you execute the subsequent cell.  Notice how this uses the value of <c>b</c> from above.  Execute this compute cell <em>once</em>.  Exactly once.  Even if it <em>appears</em> to do nothing.  If you execute the cell twice, your credit card may be charged twice.</p>\n\n        <sage>\n            <input>b = b + 50</input>\n        </sage>\n\n        <p>Now execute this cell, which will produce some output.</p>\n\n        <sage>\n            <input>b + 20</input>\n            <output>66</output>\n        </sage>\n\n        <p>So <c>b</c> came into existence as <c>6</c>.  We subtracted <m>10</m> immediately afterward.  Then a subsequent cell added <c>50</c>.  This assumes you executed this cell <em>exactly</em> once!  In the last cell we create <c>b+20</c> (but do not save it) and it is this value (<m>66</m>) that is output, while <c>b</c> is still <m>46</m>.</p>\n\n        <p>You can combine several commands on one line with a semi-colon.  This is a great way to get multiple outputs from a compute cell.  The syntax for building a matrix should be somewhat obvious when you see the output, but if not, it is not particularly important to understand now.</p>\n\n        <sage>\n            <input>A = matrix([[3, 1], [5,2]]); A</input>\n            <output>\n            [3 1]\n            [5 2]\n            </output>\n        </sage>\n\n        <sage>\n            <input>print A; print ; A.inverse()</input>\n            <output><![CDATA[\n            [3 1]\n            [5 2]\n            <BLANKLINE>\n            [ 2 -1]\n            [-5  3]]]>\n            </output>\n        </sage>\n        </subsection>\n        <subsection>\n        <title>Immediate Help</title>\n\n        <p>Some commands in Sage are <q>functions,</q> an example is <c>factorial()</c> above.  Other commands are <q>methods</q> of an object and are like characteristics of objects, an example is <c>.inverse()</c> as a method of a matrix.  Once you know how to create an object (such as a matrix), then it is easy to see all the available methods.  Write the name of the object, place a period (<q>dot</q>) and hit the TAB key.  If you have <c>A</c> defined from above, then the compute cell below is ready to go, click into it and then hit TAB (not <q>evaluate</q>!).  You should get a long list of possible methods.</p>\n\n        <sage doctest=\"not tested\">\n            <input>A.</input>\n        </sage>\n\n        <p>To get some help on how to use a method with an object, write its name after a dot (with no parentheses) and then use a question-mark and hit TAB.  (Hit the escape key <q>ESC</q> to remove the list, or click on the text for a method.)</p>\n\n        <sage doctest=\"not tested\">\n            <input>A.inverse?</input>\n        </sage>\n\n        <p>With one more question-mark and a TAB you can see the actual computer instructions that were programmed into Sage to make the method work, once you scoll down past the documentation delimited by the triple quotes (<c>\"\"\"</c>):</p>\n\n        <sage doctest=\"not tested\">\n        <input>A.inverse??</input>\n        </sage>\n\n        <p>It is worthwhile to see what Sage does when there is an error.  You will probably see a lot of these at first, and initially they will be a bit intimidating.  But with time, you will learn how to use them effectively and you will also become more proficient with Sage and see them less often.  Execute the compute cell below, it asks for the inverse of a matrix that has no inverse.  Then reread the commentary.</p>\n\n        <sage>\n            <input>\n            B = matrix([[2, 20], [5, 50]])\n            B.inverse()\n            </input>\n            <output>\n            Traceback (most recent call last):\n            ...\n            ZeroDivisionError: Matrix is singular\n            </output>\n        </sage>\n\n        <p>Click just to the left of the error message to expand it fully (another click hides it totally, and a third click brings back the abbreviated form).  Read the bottom of an error message first, it is your best explanation.  Here a <c>ZeroDivisionError</c> is not 100% accurate, but is close.  The matrix is not invertible, not dissimilar to how we cannot divide scalars by zero.  The remainder of the message begins at the top showing were the error first happened in your code and then the various places where intermediate functions were called, until the actual piece of Sage where the problem occurred.  Sometimes this information will give you some clues, sometimes it is totally undecipherable.  So do not let it scare you if it seems mysterious, but do remember to always read the last line first, then go back and read the first few lines for something that looks like your code.</p>\n\n    </subsection>\n\n    <subsection>\n        <title>Annotating Your Work</title>\n\n        <p>It is easy to comment on your work when you use the Sage Notebook. (The following only applies if you are reading this within a Sage Notebook.  If you are not, then perhaps you can go open up a worksheet in the Sage Notebook and experiment there.)  You can open up a small word-processor by hovering your mouse until you get a skinny blue bar again, but now when you click, also hold the SHIFT key at the same time.  Experiment with fonts, colors, bullet lists, etc and then click the <q>Save changes</q> button to exit.  Double-click on your text if you need to go back and edit it later.</p>\n\n        <p>Open the word-processor again to create a new bit of text (maybe next to the empty compute cell just below).  Type all of the following <em>exactly</em>:</p>\n\n        <blockquote><p><c>Pythagorean Theorem: $c^2=a^2+b^2$</c></p></blockquote>\n\n        <p>and save your changes.  The symbols between the dollar signs are written according to the mathematical typesetting language known as <tex /> <mdash /> cruise the internet to learn more about this very popular tool. (Well, it is extremely popular among mathematicians and physical scientists.)</p>\n\n        <sage />\n\n        </subsection>\n        <subsection>\n        <title>Lists</title>\n\n        <p>Much of our interaction with sets will be through Sage lists.  These are not really sets <mdash /> they allow duplicates, and order matters.  But they are so close to sets, and so easy and powerful to use that we will use them regularly.  We will use a fun made-up list for practice, the quote marks mean the items are just text, with no special mathematical meaning.  Execute these compute cells as we work through them.</p>\n\n        <sage>\n            <input>\n            zoo = ['snake', 'parrot', 'elephant', 'baboon', 'beetle']\n            zoo\n            </input>\n            <output>\n            ['snake', 'parrot', 'elephant', 'baboon', 'beetle']\n            </output>\n        </sage>\n\n        <p>So the square brackets define the boundaries of our list, commas separate items, and we can give the list a name.  To work with just one element of the list, we use the name and a pair of brackets with an index.  Notice that lists have indices that <em>begin counting at zero</em>.  This will seem odd at first and will seem very natural later.</p>\n\n        <sage>\n            <input>zoo[2]</input>\n            <output>'elephant'</output>\n        </sage>\n\n        <p>We can add a new creature to the zoo, it is joined up at the far right end.</p>\n\n        <sage>\n            <input>zoo.append('ostrich'); zoo</input>\n            <output>['snake', 'parrot', 'elephant', 'baboon', 'beetle', 'ostrich']</output>\n        </sage>\n\n        <p>We can remove a creature.</p>\n\n        <sage>\n            <input>\n            zoo.remove('parrot')\n            zoo\n            </input>\n            <output>['snake', 'elephant', 'baboon', 'beetle', 'ostrich']</output>\n        </sage>\n\n        <p>We can extract a sublist.  Here we start with element 1 (the elephant) and go all the way up to, <em>but not including</em>, element 3 (the beetle).  Again a bit odd, but it will feel natural later.  For now, notice that we are extracting two elements of the lists, exactly <m>3-1=2</m> elements.</p>\n\n        <sage>\n            <input>\n            mammals = zoo[1:3]\n            mammals\n            </input>\n            <output>['elephant', 'baboon']</output>\n        </sage>\n\n        <p>Often we will want to see if two lists are equal.  To do that we will need to sort a list first.  A function creates a new, sorted list, leaving the original alone.  So we need to save the new one with a new name.</p>\n\n        <sage>\n            <input>\n            newzoo = sorted(zoo)\n            newzoo\n            </input>\n            <output>['baboon', 'beetle', 'elephant', 'ostrich', 'snake']</output>\n        </sage>\n\n        <sage>\n            <input>\n            zoo.sort()\n            zoo\n            </input>\n            <output>['baboon', 'beetle', 'elephant', 'ostrich', 'snake']</output>\n        </sage>\n\n        <p>Notice that if you run this last compute cell your zoo has changed and some commands above will not necessarily execute the same way.  If you want to experiment, go all the way back to the first creation of the zoo and start executing cells again from there with a fresh zoo.</p>\n\n        <p>A construction called a <term>list comprehension</term> is especially powerful, especially since it almost exactly mirrors notation we use to describe sets.  Suppose we want to form the plural of the names of the creatures in our zoo.  We build a new list, based on all of the elements of our old list.</p>\n\n        <sage>\n            <input>\n            plurality_zoo = [animal+'s' for animal in zoo]\n            plurality_zoo\n            </input>\n            <output>['baboons', 'beetles', 'elephants', 'ostrichs', 'snakes']</output>\n        </sage>\n\n        <p>Almost like it says: we add an <q>s</q> to each animal name, for each animal in the zoo, and place them in a new list.  Perfect.  (Except for getting the plural of <q>ostrich</q> wrong.)</p>\n\n        </subsection>\n        <subsection>\n        <title>Lists of Integers</title>\n\n        <p>One final type of list, with numbers this time.  The <c>srange()</c> function will create lists of integers.  (The <q>s</q> in the name stands for <q>Sage</q> and so will produce integers that Sage understands best.  Many early difficulties with Sage and group theory can be alleviated by using only this command to create lists of integers.)  In its simplest form an invocation like <c>srange(12)</c> will create a list of 12 integers, <em>starting at zero</em> and working up to, <em>but not including</em>, 12.  Does this sound familiar?</p>\n\n        <sage>\n            <input>dozen = srange(12); dozen</input>\n            <output>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]</output>\n        </sage>\n\n        <p>Here are two other forms, that you should be able to understand by studying the examples.</p>\n\n        <sage>\n            <input>teens = srange(13, 20); teens</input>\n            <output>[13, 14, 15, 16, 17, 18, 19]</output>\n        </sage>\n\n        <sage>\n            <input>decades = srange(1900, 2000, 10); decades</input>\n            <output>[1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990]</output>\n        </sage>\n    </subsection>\n\n    <subsection>\n        <title>Saving and Sharing Your Work</title>\n\n        <p>There is a <q>Save</q> button in the upper-right corner of the Sage Notebook.  This will save a current copy of your worksheet that you can retrieve your work from within your notebook again later, though you have to re-execute all the cells when you re-open the worksheet.</p>\n\n        <p>There is also a <q>File</q> drop-down list, on the left, just above your very top compute cell (not be confused with your browser's File menu item!).  You will see a choice here labeled  <q>Save worksheet to a file...</q>  When you do this, you are creating a copy of your worksheet in the <c>sws</c> format (short for <q>Sage WorkSheet</q>).  You can email this file, or post it on a website, for other Sage users and they can use the <q>Upload</q> link on the homepage of their notebook to incorporate a copy of your worksheet into their notebook.</p>\n\n        <p>There are other ways to share worksheets that you can experiment with, but this gives you one way to share any worksheet with anybody almost anywhere.</p>\n\n        <p>We have covered a lot here in this section, so come back later to pick up tidbits you might have missed.  There are also many more features in the Sage Notebook that we have not covered.</p>\n    </subsection>\n\n</section>\n"
  },
  {
    "path": "examples/sample-book/sample-book-parts.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra:  Theory and Applications   -->\n<!--                                                -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson      -->\n\n<!-- USE XINCLUDE SWITCH ON XSLTPROC -->\n\n<!-- Master file for AATA                           -->\n<!-- Use XSL stylesheets to create subsets          -->\n<!--    Important: Always process all of the source -->\n<!--    to preserve numbering and cross-references! -->\n<!--    So it is never advisable to edit this file  -->\n\n<!-- This version has parts, use the appropriate publication file -->\n\n<!-- Changing xml:lang causes many strings to change language -->\n<!-- See the  xsl/localizations  directory for details        -->\n<!-- Note the use of the \"xinclude\" namespace in order to use multiple files -->\n<!-- Each included file must contain exactly one top-level element, -->\n<!-- such as a chapter or section -->\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:lang=\"en-US\">\n<!-- <pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:lang=\"fr-FR\"> -->\n\n    <xi:include href=\"./bookinfo.xml\" /> <!-- ISBN, website, other metadata -->\n\n    <!-- Use the \"with-parts\" component -->\n    <book xml:id=\"sample-book\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n        <title><pretext/> Sample Book</title>\n        <subtitle>Abstract Algebra (SAMPLE ONLY)</subtitle>\n\n        <xi:include href=\"./frontmatter.xml\" />                 <!-- Title Page, Preface, etc. -->\n\n        <!-- Parts are optional, included here for testing   -->\n        <!-- Use \"structural\" parts for maximum effect      -->\n\n        <part xml:id=\"part-basics\">\n            <title>Basics</title>\n            <xi:include href=\"./sets.xml\" />                    <!-- Set Theory  -->\n            <xi:include href=\"./integers.xml\" />                <!-- Integers -->\n        </part>\n\n        <part xml:id=\"part-algebra\">\n            <title>Algebra (and Runestone)</title>\n            <xi:include href=\"./groups.xml\" />                  <!-- Groups -->\n            <xi:include href=\"./cyclic.xml\" />                  <!-- Cyclic Groups -->\n            <xi:include href=\"./rune.xml\" />                    <!-- Runestone -->\n        </part>\n\n        <!-- Many chapters removed from original AATA, here -->\n\n        <xi:include href=\"./backmatter.xml\" />                  <!-- GFDL, Hints, Notation -->\n\n    </book>\n\n</pretext>\n"
  },
  {
    "path": "examples/sample-book/sample-book-solutions-manual.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra:  Theory and Applications   -->\n<!--                                                -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson      -->\n\n<!-- USE XINCLUDE SWITCH ON XSLTPROC -->\n\n<!-- Master file for Sample Book Solution Manual from (AATA) -->\n\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <!-- Must get the relevant LaTeX macros, but this has more,  -->\n    <!-- so we might ideally want to subset this as well         -->\n    <xi:include href=\"./bookinfo.xml\" />\n\n    <book xml:id=\"sample-book-solutions-manual\">\n        <title>Abstract Algebra</title>\n        <subtitle>Solutions Manual (PRETEXT SAMPLE ONLY)</subtitle>\n\n\n        <!-- We include a subset of the front matter as a  -->\n        <!-- demonstration of what works and what doesn't  -->\n        <frontmatter xml:id=\"index\">\n            <titlepage>\n                <author>\n                    <personname>Thomas W. Judson</personname>\n                    <department>Department of Mathematics and Statistics</department>\n                    <institution>Stephen F. Austin State University</institution>\n                    <email>judsontw@sfasu.edu</email>\n                </author>\n                <credit>\n                    <title>Sage Exercises for Abstract Algebra</title>\n                    <author>\n                        <personname>Robert A. Beezer</personname>\n                        <department>Department of Mathematics and Computer Science</department>\n                        <institution>University of Puget Sound</institution>\n                        <email>beezer@pugetsound.edu</email>\n                    </author>\n                </credit>\n                <date><today /></date>\n            </titlepage>\n\n            <colophon xml:id=\"front-colophon\">\n                <edition>Annual Edition 2015</edition>\n                <website>\n                    <name><c>abstract.pugetsound.edu</c></name>\n                    <address>http://abstract.pugetsound.edu</address>\n                </website>\n                <copyright>\n                    <year>1997<ndash />2015</year>\n                    <holder>Thomas W. Judson, Robert A. Beezer</holder>\n                    <minilicense>GFDL License</minilicense>\n                    <shortlicense>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license is included in the appendix entitled <q>GNU Free Documentation License.</q>  All trademarks<trademark /> are the registered<registered /> marks of their respective owners.</shortlicense>\n                </copyright>\n            </colophon>\n\n            <preface xml:id=\"preface\">\n                <title>Preface to the Solutions Manual</title>\n\n                <p>This contains the publicly available hints and answers for the <pretext /> sample book.  Statements of the exercises are not reproduced.</p>\n\n                <p>See the text itself for much more information about the book.</p>\n            </preface>\n        </frontmatter>\n\n        <!-- This will go with the \"no parts\" version of the book           -->\n        <!-- All of the content of the book (the \"main matter\") needs       -->\n        <!-- to be here so that numbering will be consistent with the       -->\n        <!-- text itself.  So do not skip chapters or sections just because -->\n        <!-- they have no solutions.  PreTeXt will figure that out itself.  -->\n\n        <!-- This will match the \"no parts\" version of the sample book -->\n        <xi:include href=\"./sets.xml\" />                    <!-- Set Theory  -->\n        <xi:include href=\"./integers.xml\" />                <!-- Integers -->\n        <xi:include href=\"./groups.xml\" />                  <!-- Groups -->\n        <xi:include href=\"./cyclic.xml\" />                  <!-- Cyclic Groups -->\n        <xi:include href=\"./rune.xml\" />                    <!-- Runestone -->\n\n        <!-- Many chapters removed from original AATA, here -->\n\n        <!-- We include a subset of the back matter as a  -->\n        <!-- demonstration of what works and what doesn't -->\n        <backmatter xml:id=\"backmatter\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n            <title>Back Matter</title> <!-- mostly for HTML sectioning -->\n\n            <appendix>\n                <title>Notation</title>\n\n                <p>The following table defines the notation used in this book.  Included here in the solutions manual, the page references are missing.</p>\n\n                <notation-list />\n            </appendix>\n\n            <xi:include href=\"./gfdl-mathbook.xml\" />           <!-- GFDL License text -->\n\n            <colophon xml:id=\"back-colophon\">\n                <p>This solutions manual was authored in <pretext />.</p>\n            </colophon>\n        </backmatter>\n    </book>\n</pretext>\n"
  },
  {
    "path": "examples/sample-book/sample-book-solutions-manual.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n\n<!-- Copy current file (sample-book-solution-manual.xsl) into mathbook/user -->\n<!-- Then other imports are all relative to that directory                  -->\n\n<!-- This relative import will get XSL for building all the  -->\n<!-- solutions of a book that live anywhere inside a chapter. -->\n<xsl:import href=\"../xsl/pretext-solution-manual-latex.xsl\" />\n\n<!-- Move the following out to publisher settings once implemented  -->\n<!-- Using extra XSL like this is discouraged (and only historical) -->\n\n<!-- PDF Watermarking of Personal Copies    -->\n<!-- Non-empty string makes it happen       -->\n<!-- 36in parbox just fits \"DO NOT\" string  -->\n<!-- 0.30 scale fits most of width of page  -->\n<!-- http://tex.stackexchange.com/questions/125882/                        -->\n<!-- how-to-write-multiple-lines-as-watermark-and-images-with-transparency -->\n<xsl:param name=\"latex.watermark\" select=\"'\\parbox{36in}{\\centering Issued to: David Hilbert\\\\DO NOT COPY, POST, REDISTRIBUTE}'\"/>\n<xsl:param name=\"latex.watermark.scale\" select=\"0.30\"/>\n\n<xsl:param name=\"latex.font.size\" select=\"'11pt'\" />\n\n<!-- Print edition is 4 3/8 inches wide for body -->\n<!-- PDF only is wider, eg better for Sage material -->\n<!-- Default is \"letterpaper\", we could fine-tune margins if desired   -->\n<!-- 1.25 inch side margins, 0.75 inch top/bottom -->\n<xsl:param name=\"latex.geometry\">\n\t<xsl:text>left=1.25in,right=1.25in,top=0.75in,bottom=0.75in,headsep=0.25in</xsl:text>\n</xsl:param>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "examples/sample-book/sample-book.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra:  Theory and Applications   -->\n<!--                                                -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson      -->\n\n<!-- USE XINCLUDE SWITCH ON XSLTPROC -->\n\n<!-- Master file for AATA                           -->\n<!-- Use XSL stylesheets to create subsets          -->\n<!--    Important: Always process all of the source -->\n<!--    to preserve numbering and cross-references! -->\n<!--    So it is never advisable to edit this file  -->\n\n<!-- This version has parts, use the appropriate publication file -->\n\n<!-- Changing xml:lang causes many strings to change language -->\n<!-- See the  xsl/localizations  directory for details        -->\n<!-- Note the use of the \"xinclude\" namespace in order to use multiple files -->\n<!-- Each included file must contain exactly one top-level element, -->\n<!-- such as a chapter or section -->\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:lang=\"en-US\">\n<!-- <pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:lang=\"fr-FR\"> -->\n\n    <xi:include href=\"./bookinfo.xml\" /> <!-- ISBN, website, other metadata -->\n\n    <!-- Use the \"no-parts\" component -->\n    <book xml:id=\"sample-book\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n        <title><pretext/> Sample Book</title>\n        <subtitle>Abstract Algebra (SAMPLE ONLY)</subtitle>\n\n        <xi:include href=\"./frontmatter.xml\" />             <!-- Title Page, Preface, etc. -->\n\n        <xi:include href=\"./sets.xml\" />                    <!-- Set Theory  -->\n        <xi:include href=\"./integers.xml\" />                <!-- Integers -->\n        <xi:include href=\"./groups.xml\" />                  <!-- Groups -->\n        <xi:include href=\"./cyclic.xml\" />                  <!-- Cyclic Groups -->\n        <xi:include href=\"./rune.xml\" />                    <!-- Runestone -->\n\n        <!-- Many chapters removed from original AATA, here -->\n\n        <xi:include href=\"./backmatter.xml\" />                  <!-- GFDL, Hints, Notation -->\n\n    </book>\n\n</pretext>\n"
  },
  {
    "path": "examples/sample-book/sets.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<!-- This file was originally part of the book     -->\n<!-- (as copied on 2015/07/12)                     -->\n<!--                                               -->\n<!--   Abstract Algebra: Theory and Applications   -->\n<!--                                               -->\n<!-- Copyright (C) 1997-2014  Thomas W. Judson     -->\n\n<chapter xml:id=\"sets\" xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n<!-- % TWJ, 2010/03/31 -->\n<!-- % Chapters now begin with Chapter 1 -->\n\n<title>Preliminaries</title>\n\n\n    <introduction>\n        <p>A certain amount of mathematical maturity is necessary to find and study applications of abstract algebra.  A basic knowledge of set theory, mathematical induction, equivalence relations, and matrices is a must.  Even more important is the ability to read and understand mathematical proofs.  In this chapter we will outline the background needed for a course in abstract algebra.</p>\n\n        <p>It helps when testing to know when this sample document was generated: <today />, <timeofday />.</p>\n    </introduction>\n\n    <section xml:id=\"section-note-on-proofs\">\n        <title>A Short Note on Proofs</title>\n\n        <introduction>\n\n            <p>Abstract mathematics is different from other sciences. In laboratory sciences such as chemistry and physics, scientists perform experiments to discover new principles and verify theories.  Although mathematics is often motivated by physical experimentation or by computer simulations, it is made rigorous through the use of logical arguments.  In studying abstract mathematics, we take what is called an  axiomatic approach; that is, we take a collection of objects <m>\\mathcal S</m> and assume some rules about their structure.  These rules are called <term>axioms</term>.  Using the axioms for <m>\\mathcal S</m>, we wish to derive other information about <m>\\mathcal S</m> by using logical arguments.  We require that our axioms be consistent; that is, they should not contradict one another.  We also demand that there not be too many axioms. If a system of axioms is too restrictive,  there will be few examples of the mathematical structure.</p>  \n\n            <p>A <term>statement</term> in logic or mathematics is an assertion that is either true or false.  Consider the following examples:<ul>\n                <li><p><m>3 + 56 - 13 + 8/2 </m>.</p></li>\n                <li><p>All cats are black.</p></li>\n                <li><p><m>2 + 3 = 5</m>.</p></li>\n                <li><p><m>2x = 6</m> exactly when <m>x = 4</m>.</p></li>\n                <li><p>If <m>ax^2 + bx + c = 0</m> and <m>a \\neq 0</m>, then <md>x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}</md>.</p></li>\n                <li><p><m>x^3 - 4x^2 + 5 x - 6</m>.</p></li>\n            </ul>All but the first and last examples are statements, and must be either true or false.</p> \n\n            <p>A <term>mathematical proof</term> is nothing more than a convincing argument about the accuracy  of a statement. Such an argument should contain enough detail to convince the audience; for instance, we can see that the statement <q><m>2x = 6</m> exactly when <m>x = 4</m></q> is false by evaluating <m>2 \\cdot 4</m> and noting that <m>6 \\neq 8</m>, an argument that would satisfy anyone. Of course, audiences may vary widely: proofs can be addressed to another student, to a professor, or to the reader of a text.  If more detail than  needed is presented in the proof, then the  explanation will be either long-winded or poorly written.  If too much detail is omitted, then the proof may  not be convincing.  Again it is important to keep the audience in mind.  High school students require much more detail than do graduate students.  A good rule of thumb for an argument in an introductory abstract algebra course is that it should be written to convince one's peers, whether those peers be other students or other readers of the text.</p>\n\n            <p>Let us examine different types of statements.  A statement could be as simple as <q><m>10/5 = 2</m>;</q> however, mathematicians are usually interested in more complex statements such as <q>If <m>p</m>, then <m>q</m>,</q> where <m>p</m> and <m>q</m> are both statements.  If certain statements are known or assumed to be true, we wish to know what we can say about other statements.  Here <m>p</m> is called the <term>hypothesis</term> and <m>q</m> is known as the <term>conclusion</term>.  Consider the following statement: If <m>ax^2 + bx + c = 0</m> and <m>a \\neq 0</m>, then  \n                <md>x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}</md>.\n            The hypothesis is <m>ax^2 + bx + c = 0</m> and <m>a \\neq 0</m>; the conclusion is \n                <md>x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}</md>.\n            Notice that the  statement says nothing about whether or not the hypothesis is true. However, if this entire statement is true and we can show that <m>ax^2 + bx + c = 0</m> with <m>a \\neq 0</m> is true, then the conclusion <em>must</em> be true.  A proof of this statement might simply be a series of equations:<md>\n                <mrow>ax^2 + bx + c &amp; =  0</mrow>\n                <mrow>x^2 + \\frac{b}{a}x &amp; =  - \\frac{c}{a}</mrow>\n                <mrow>x^2 + \\frac{b}{a}x + \\left( \\frac{b}{2a} \\right)^2 &amp; =  \\left( \\frac{b}{2a} \\right)^2 - \\frac{c}{a}</mrow>\n                <mrow>\\left(x + \\frac{b}{2a} \\right)^2 &amp; =  \\frac{b^2 - 4ac}{4a^2}</mrow>\n                <mrow>x + \\frac{b}{2a}  &amp; =  \\frac{ \\pm \\sqrt{ b^2 -4ac}}{2a}</mrow>\n                <mrow>x &amp; =  \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}</mrow>\n            </md>.</p>\n\n            <p>If we can prove a statement true, then that statement is called a <term>proposition</term>.  A proposition of major importance is called a <term>theorem</term>.  Sometimes instead of proving a theorem or proposition all at once, we break the proof down into modules; that is, we prove several supporting propositions, which are called <term>lemmas</term>, and use the results of these propositions to prove the main result. If we can prove a proposition or a theorem, we will often, with very little effort, be able to derive other related propositions called <term>corollaries</term>.</p>\n\n        </introduction>\n\n        <subsection>\n            <title>Some Cautions and Suggestions</title>\n\n            <p>There are several different strategies for proving propositions.  In addition to using different methods of proof, students often make some common mistakes when they are first learning how to prove theorems. To aid students who are studying abstract mathematics for the first time, we list here some of the difficulties that they may encounter and some of the strategies of proof available to them. It is a good idea to keep referring back to this list as a reminder. (Other techniques of proof will become apparent throughout this chapter and the remainder of the text.)<ul>\n                <li><p>A theorem cannot be proved by example; however, the standard way to show that a statement is not a theorem is to provide a counterexample.</p></li>\n                <li><p>Quantifiers are important. Words and phrases such as <em>only</em>, <em>for all</em>, <em>for every</em>, and <em>for some</em> possess different meanings.</p></li>\n                <li><p>Never assume any hypothesis that is not explicitly stated in the theorem.  <em>You cannot take things for granted.</em></p></li>\n                <li><p>Suppose you wish to show that an object <em>exists</em> and is <em>unique</em>.  First show that there actually is such an object.  To show that it is unique, assume that there are two such objects, say <m>r</m> and <m>s</m>, and then show that <m>r = s</m>.</p></li>\n                <li><p>Sometimes it is easier to prove the contrapositive of a statement.  Proving the statement <q>If <m>p</m>, then <m>q</m></q> is exactly the same as proving the statement <q>If not <m>q</m>, then not <m>p</m>.</q></p></li>\n                <li><p>Although it is usually better to find a direct proof of a theorem, this task  can sometimes be difficult. It may be easier to assume that the theorem that you are trying to prove is false, and to hope that in the course of your argument you are forced to make some statement that cannot possibly be true.</p></li>\n            </ul></p>\n\n            <p>Remember that one of the main objectives of higher mathematics is proving theorems. Theorems are tools that make new and productive applications of mathematics possible.  We use examples to give insight  into existing theorems and to foster intuitions as to what new theorems might be true.  Applications, examples, and proofs are tightly interconnected<mdash />much more so than they may seem at first appearance.</p>\n\n        </subsection>\n\n    </section>\n\n    <section xml:id=\"section-sets-and-equivalence-relations\">\n        <title>Sets and Equivalence Relations</title>\n\n        <subsection>\n            <title>Set Theory</title>\n\n            <p>A <term>set</term> is a well-defined collection of objects; that is, it is defined in such a manner that we can determine for any given object <m>x</m> whether or not <m>x</m> belongs to the set.  The objects that belong to a set are called its <term>elements</term> or <term>members</term>. We will denote sets by capital letters, such as <m>A</m> or <m>X</m>; if <m>a</m> is an element of the set <m>A</m>, we write <m>a \\in A</m>.\n            <notation><usage><m>a \\in A</m></usage><description><m>a</m> is in the set <m>A</m></description></notation></p>\n\n            <!-- ToDo: Make notation table -->\n\n            <p>A set is usually specified either by listing all of its elements inside a pair of braces or by stating the property that determines whether or not an object <m>x</m> belongs to the set. We might write\n                <md>X = \\{ x_1, x_2, \\ldots, x_n \\}</md>\n            for a set containing elements <m>x_1, x_2, \\ldots, x_n</m> or\n                <md>X = \\{ x :x \\text{ satisfies }{\\mathcal P}\\}</md>\n            if each <m>x</m> in <m>X</m> satisfies a certain property <m>{\\mathcal P}</m>.  For example, if <m>E</m> is the set of even positive integers, we can describe <m>E</m> by writing either \n                <md>E = \\{2, 4, 6, \\ldots \\} \\quad \\text{or} \\quad E = \\{ x : x \\text{ is an even integer and } x \\gt 0 \\}</md>.\n            We write <m>2 \\in E</m> when we want to say that 2 is in the set <m>E</m>, and <m>-3 \\notin E</m> to say that <m>-3</m> is not in the set <m>E</m>.</p>\n\n            <p>Some of the more important sets that we will consider are the following:<md>\n                <mrow>{\\mathbb N} &amp;= \\{n: n \\text{ is a natural number}\\}  = \\{1, 2, 3, \\ldots \\}</mrow>\n                <mrow>{\\mathbb Z} &amp;= \\{n : n \\text{ is an integer} \\} = \\{\\ldots, -1, 0, 1,  2, \\ldots \\}</mrow>\n                <mrow>{\\mathbb Q} &amp;= \\{r : r \\text{ is a rational number}\\} = \\{p/q : p, q \\in {\\mathbb Z} \\text{ where } q \\neq 0\\}</mrow>\n                <mrow>{\\mathbb R} &amp;= \\{ x : x \\text{ is a real number} \\}</mrow>\n                <mrow>{\\mathbb C} &amp;= \\{z : z \\text{ is a complex number}\\}</mrow>\n            </md>.<notation>\n                <usage><m>{\\mathbb N}</m></usage>\n                <description>the natural numbers</description>\n            </notation><notation>\n                <usage><m>{\\mathbb Z}</m></usage>\n                <description>the integers</description>\n            </notation><notation>\n                <usage><m>{\\mathbb Q}</m></usage>\n                <description>the rational numbers</description>\n            </notation><notation>\n                <usage><m>{\\mathbb R}</m></usage>\n                <description>the real numbers</description></notation>\n            <notation>\n                <usage><m>{\\mathbb C}</m></usage>\n                <description>the complex numbers</description>\n            </notation></p>\n\n            <p>We can find various relations between sets as well as perform operations on sets.  A set <m>A</m> is a <term>subset</term> of <m>B</m>, written <m>A \\subset B</m> or <m>B \\supset A</m>, if every element of <m>A</m> is also an element of <m>B</m>.  <notation><usage><m>A \\subset B</m></usage><description><m>A</m> is a subset of <m>B</m></description></notation> For example,  \n                <md>\\{4,5,8\\} \\subset \\{2, 3, 4, 5, 6, 7, 8, 9 \\}</md>\n            and\n                <md>{\\mathbb N} \\subset {\\mathbb Z} \\subset {\\mathbb Q} \\subset {\\mathbb R} \\subset {\\mathbb C}</md>.\n            Trivially, every set is a subset of itself.  A set <m>B</m> is a <term>proper subset</term> of a set <m>A</m> if <m>B \\subset A</m> but <m>B \\neq A</m>. If <m>A</m> is not a subset of <m>B</m>, we write <m>A \\notsubset B</m>; for example, <m>\\{4, 7, 9\\} \\notsubset \\{2, 4, 5,  8, 9 \\}</m>.  Two sets are <term>equal</term>, written <m>A = B</m>, if we can show that <m>A \\subset B</m> and <m>B \\subset A</m>.</p>\n\n            <p>It is convenient to have a set with no elements in it.  This set is called the <term>empty set</term> and is denoted by <m>\\emptyset</m>.  Note that the empty set is a subset of every set. <notation><usage><m>\\emptyset</m></usage><description>the empty set</description></notation></p>  \t\n\n            <p>To construct new sets out of old sets, we can perform certain operations: the <term>union</term> <m>A \\cup B</m> of two sets <m>A</m> and <m>B</m> is defined as  \n                <md>A \\cup B = \\{x : x \\in A \\text{ or } x \\in B \\}</md>\n            and the <term>intersection</term> of <m>A</m> and <m>B</m>  is defined by\n                <md>A \\cap B = \\{x :  x \\in A \\text{ and } x \\in B \\}</md>.\n            <notation><usage><m>A \\cup B</m></usage><description>the union of sets <m>A</m> and <m>B</m></description></notation><notation><usage><m>A \\cap B</m></usage><description>the intersection of sets <m>A</m> and <m>B</m></description></notation> If <m>A = \\{1, 3, 5\\}</m> and <m>B = \\{ 1, 2, 3, 9 \\}</m>, then\n                <md>A \\cup B = \\{1, 2, 3, 5, 9 \\} \\quad \\text{and} \\quad A \\cap B = \\{ 1, 3 \\}</md>.\n            We can consider the union and the intersection of more than two sets.  In this case we write \n                <md>\\bigcup_{i = 1}^{n} A_{i} = A_{1} \\cup \\ldots \\cup A_n</md>\n            and\n                <md>\\bigcap_{i = 1}^{n} A_{i} = A_{1} \\cap \\ldots \\cap A_n</md>\n            for the union and intersection, respectively, of the sets <m>A_1, \\ldots, A_n</m>.</p>\n            \n<!-- Added comma after \\ldots - TWJ 12/16/2010 -->\n\n            <p>When two sets have no elements in common, they are said to be <term>disjoint</term>; for example, if <m>E</m> is the set of even integers and <m>O</m> is the set of odd integers, then <m>E</m> and <m>O</m> are disjoint.  Two sets <m>A</m> and <m>B</m> are disjoint exactly when <m>A \\cap B = \\emptyset</m>.</p> \n\n            <p>Sometimes we will work within one fixed set <m>U</m>, called the <term>universal set</term>.  For any set <m>A \\subset U</m>, we define the <term>complement</term> of <m>A</m>, denoted by <m>A'</m>, to be the set <notation><usage><m>A'</m></usage><description>complement of the set <m>A</m></description></notation>\n                <md>A' = \\{ x : x \\in U \\text{ and } x \\notin A \\}</md>.</p>\t\t\n\n            <p>We define the <term>difference</term> of two sets <m>A</m> and <m>B</m> to be <notation><usage><m>A \\setminus B</m></usage><description>difference between sets <m>A</m> and <m>B</m></description></notation>\n                <md>A \\setminus B = A \\cap B'  = \\{ x : x \\in A \\text{ and } x \\notin B \\}</md>.</p>\n\n        <example xml:id=\"example-sets-operations\">\n            <title>Set Operations</title>\n            <p>Let <m>{\\mathbb R}</m> be the universal set and suppose that\n                <md>A = \\{ x \\in {\\mathbb R} : 0 \\lt x \\leq 3 \\} \\quad \\text{and} \\quad B = \\{ x \\in {\\mathbb R} : 2 \\leq x \\lt 4 \\}</md>.\n            Then<md>\n                <mrow>A \\cap B &amp; =  \\{ x \\in {\\mathbb R} : 2 \\leq x \\leq 3 \\}</mrow>\n                <mrow>A \\cup B &amp; =  \\{ x \\in {\\mathbb R} : 0 \\lt x \\lt 4 \\}</mrow>\n                <mrow>A \\setminus B &amp; =  \\{ x \\in {\\mathbb R} : 0 \\lt x \\lt 2  \\}</mrow>\n                <mrow>A' &amp; =  \\{ x \\in {\\mathbb R} : x \\leq 0 \\text{ or } x \\gt 3 \\}</mrow>\n            </md>.</p>\n        </example>\n\n        <proposition>\n            <statement>\n                <p>Let <m>A</m>, <m>B</m>, and <m>C</m> be sets. Then<ol>\n                    <li><p><m>A \\cup A = A</m>, <m>A \\cap A = A</m>, and <m>A \\setminus A = \\emptyset</m>;</p></li>\n                    <li><p><m>A \\cup \\emptyset = A</m> and <m>A \\cap \\emptyset = \\emptyset</m>;</p></li>\n                    <li><p><m>A \\cup (B \\cup C) = (A \\cup B) \\cup C</m> and  <m>A \\cap (B \\cap C) = (A \\cap B) \\cap C</m>;</p></li>\n                    <li><p><m>A \\cup B = B \\cup A</m> and <m>A \\cap B = B \\cap A</m>;</p></li>\n                    <li><p><m>A \\cup (B \\cap C) = (A \\cup B) \\cap (A \\cup C)</m>;</p></li>\n                    <li><p><m>A \\cap (B \\cup C) = (A \\cap B) \\cup (A \\cap C)</m>.</p></li>\n                </ol></p>\n            </statement>\n            <proof>\n                <p>We will prove (1) and (3) and leave the remaining results to be proven in the exercises.</p>\n\n                <p>(1) Observe that<md>\n                    <mrow>A \\cup A &amp; =  \\{ x :  x \\in A \\text{ or } x \\in A \\}</mrow>\n                    <mrow>&amp; =  \\{ x : x \\in A \\}</mrow>\n                    <mrow>&amp; =  A</mrow>\n                    <intertext>and</intertext>\n                    <mrow>A \\cap A &amp; =  \\{ x : x \\in A \\text{ and } x \\in A \\}</mrow>\n                    <mrow>&amp; =  \\{ x : x \\in A  \\}</mrow>\n                    <mrow>&amp; =  A</mrow>\n                </md>.</p>\n\n                <p>Also, <m>A \\setminus A = A \\cap A' = \\emptyset</m>.</p>\n\n                <p>(3) For sets <m>A</m>, <m>B</m>, and <m>C</m>,<md>\n                    <mrow>A \\cup (B \\cup C) &amp; = A \\cup \\{ x : x \\in B \\text{ or } x \\in C \\}</mrow>\n                    <mrow>&amp; = \\{ x : x \\in A \\text{ or } x \\in B, \\text{ or } x \\in C \\}</mrow>\n                    <mrow>&amp; = \\{ x : x \\in A \\text{ or } x \\in B \\} \\cup C</mrow>\n                    <mrow>&amp; = (A \\cup B) \\cup C. </mrow>\n                </md></p>\n\n                <p>A similar argument proves that  <m>A \\cap (B \\cap C) = (A \\cap B) \\cap C</m>.</p>\n            </proof>\n        </proposition>\n\n        <theorem>\n            <title>De Morgan's Laws</title>\n            <creator>Augustus De Morgan, 1806<ndash />1871</creator>\n            <idx><h>De Morgan's laws</h><h>for sets</h></idx>\n            <statement>\n                <p>Let <m>A</m> and <m>B</m> be sets. Then<ol>\n                    <li><p><m>(A \\cup B)' = A' \\cap B'</m>;</p></li>\n                    <li><p><m>(A \\cap B)' = A' \\cup B'</m>.</p></li>\n                </ol></p>\n            </statement>\n            <proof>\n                <p>(1) We must show that <m>(A \\cup B)' \\subset A' \\cap B'</m> and <m>(A \\cup B)' \\supset A' \\cap B'</m>. Let <m>x \\in (A \\cup B)'</m>.  Then <m>x \\notin A \\cup B</m>. So <m>x</m> is neither in <m>A</m> nor in <m>B</m>, by the definition of the union of sets.  By the definition of the complement, <m>x \\in A'</m> and <m>x \\in B'</m>.  Therefore, <m>x \\in A' \\cap B'</m> and we have <m>(A \\cup B)' \\subset A' \\cap B'</m>.</p>\n\n                <p>To show the reverse inclusion, suppose that <m>x \\in A' \\cap B'</m>.  Then <m>x \\in A'</m> and <m>x \\in B'</m>, and so <m>x \\notin A</m> and <m>x \\notin B</m>. Thus <m>x \\notin A \\cup B</m> and so <m>x \\in (A \\cup B)'</m>.  Hence, <m>(A \\cup B)' \\supset A' \\cap B'</m> and so <m>(A \\cup B)' = A' \\cap B'</m>.</p>\n\n                <p>The proof of (2) is left as an exercise.</p>\n            </proof>\n        </theorem>\n\n        <example xml:id=\"example-sets-other-relations\">\n            <title>Other Relations on Sets</title>\n            <p>Other relations between sets often hold true. For example,\n                <md>( A \\setminus B) \\cap (B \\setminus A) = \\emptyset</md>.\n            To see that this is true, observe that<md>\n                <mrow>( A \\setminus B) \\cap (B \\setminus A) &amp; = ( A \\cap B') \\cap (B \\cap A')</mrow>\n                <mrow>&amp; = A \\cap A' \\cap B \\cap B'</mrow>\n                <mrow>&amp; = \\emptyset</mrow>\n            </md>.</p>\n        </example>\n\n    </subsection>\n\n    <subsection>\n        <title>Cartesian Products and Mappings</title>\n\n            <p>Given sets <m>A</m> and <m>B</m>, we can define a new set <m>A \\times B</m>, called the <term>Cartesian product</term>  of <m>A</m> and <m>B</m>, as a set of ordered pairs.  That is, <notation><usage><m>A \\times B</m></usage><description>Cartesian product of sets <m>A</m> and <m>B</m></description></notation>\n                <md>A \\times B = \\{ (a,b) : a \\in A \\text{ and } b \\in B \\}</md>.</p>\n\n        <example xml:id=\"example-sets-cartesian-products\">\n            <title>Cartesian Products</title>\n            <p>If <m>A = \\{ x, y \\}</m>, <m>B = \\{ 1, 2, 3 \\}</m>, and <m>C = \\emptyset</m>, then <m>A \\times B</m> is the set \n                <md>\\{ (x, 1), (x, 2), (x, 3), (y, 1), (y, 2), (y, 3) \\}</md>\n            and\n                <md>A \\times C = \\emptyset</md>.</p>\n        </example>\n\n        <p>We define the <term>Cartesian product of <m>n</m> sets</term> to be\n            <md>A_1 \\times \\cdots \\times A_n = \\{ (a_1, \\ldots, a_n): a_i \\in A_i \\text{ for } i = 1, \\ldots, n \\}</md>.\n        If <m>A = A_1 = A_2 = \\cdots = A_n</m>, we often write <m>A^n</m> for <m>A \\times \\cdots \\times A</m> (where <m>A</m> would be written <m>n</m> times).  <notation><usage><m>A^n</m></usage><description><m>A \\times \\cdots \\times A</m> (<m>n</m> times)</description></notation>For example, the set <m>{\\mathbb R}^3</m> consists of all of 3-tuples of real numbers.</p>\n\n\n\n        <p>Subsets of <m>A \\times B</m> are called <term>relations</term>.  We will define a  <term>mapping</term><idx><h>Mapping</h><see>Function</see></idx> or <term>function</term><idx><h>Function</h><h>definition of</h></idx> <m>f \\subset A \\times B</m> from a set <m>A</m> to a set <m>B</m> to be the special type of relation where <m>(a, b) \\in f</m> if for every element <m>a \\in A</m> there exists a unique element <m>b \\in B</m>. Another way of saying this is that for every element in <m>A</m>, <m>f</m> assigns a unique element in <m>B</m>.  We usually write <m>f:A \\rightarrow B</m> or <m>A \\stackrel{f}{\\rightarrow} B</m>.  Instead of writing down ordered pairs  <m>(a,b) \\in A \\times B</m>, we write <m>f(a) = b</m> or <m>f : a \\mapsto b</m>.  The set  <m>A</m> is called the <term>domain</term><idx><h>Function</h><h>domain of</h></idx> of <m>f</m> and   \n            <md>f(A) = \\{ f(a) : a \\in A \\} \\subset B</md>\n        is called the <term>range</term><idx><h>Function</h><h>range of</h></idx> or <term>image</term> of <m>f</m>.  We can think of the elements in the function's domain as input values and the elements in the function's range as output values.</p>\n\n        <figure xml:id=\"figure-sets-mappings\">\n            <caption>Mappings and relations</caption>\n\n             <!-- Changed the figure to a tikz diagram - TWJ 5/4/2010 -->\n            <image xml:id=\"sets-mappings\">\n                <latex-image><![CDATA[\n                    \\begin{tikzpicture}[scale=0.5]\n                    \\draw (0,0) ellipse (2 and 3);\n                    \\draw (7,0) ellipse (2 and 3);\n                    \\draw (0,8) ellipse (2 and 3);\n                    \\draw (7,8) ellipse (2 and 3);\n                    \\draw [->] (0.5,9.5) -- (6.5,8);\n                    \\draw [->] (0.5,8) -- (6.5,6.7);\n                    \\draw [->] (0.5,6.5) -- (6.5,6.5);\n                    \\draw [->] (0.5,1.5) -- (6.5,1.5);\n                    \\draw [->] (0.5,1.3) -- (6.5,0);\n                    \\draw [->] (0.5,0) -- (6.5,-1.5);\n                    \\draw [->] (0.5,-1.5) -- (6.5,1.3);\n                    \\node at (0, 1.5) {1};\n                    \\node at (0, 0) {2};\n                    \\node at (0, -1.5) {3};\n                    \\node at (7, 1.5) {$a$};\n                    \\node at (7, 0) {$b$};\n                    \\node at (7, -1.5) {$c$};\n                    \\node at (0, 9.5) {1};\n                    \\node at (0, 8) {2};\n                    \\node at (0, 6.5) {3};\n                    \\node at (7, 9.5) {$a$};\n                    \\node at (7, 8) {$b$};\n                    \\node at (7, 6.5) {$c$};\n                    \\node at (-1.5,11) {$A$};\n                    \\node at (5.5,11) {$B$};\n                    \\node at (-1.5,3) {$A$};\n                    \\node at (5.5,3) {$B$};\n                    \\node at (3.5,3) {$g$};\n                    \\node at (3.5,10) {$f$};\n                    \\end{tikzpicture}]]>\n                </latex-image>\n            </image>\n        <!-- Changed the caption to avoid confusion -->\n        <!--  Suggested by B. Torrence.  TWJ 10/1/2014 -->\n        </figure>\n\n        <example xml:id=\"example-sets-mappings\">\n            <title>Mappings</title>\n            <p>Suppose <m>A = \\{1, 2, 3 \\}</m> and <m>B = \\{a, b, c \\}</m>.  In <xref ref=\"figure-sets-mappings\" /> we define relations <m>f</m> and  <m>g</m> from <m>A</m> to <m>B</m>.  The relation <m>f</m> is a mapping, but <m>g</m> is not because <m>1 \\in A</m> is not assigned to a unique element in <m>B</m>; that is, <m>g(1) = a</m> and <m>g(1) = b</m>.</p>\n        </example>\n\n        <p>Given a function <m>f : A \\rightarrow B</m>, it is often possible to write a list describing what the function does to each specific element in the domain.  However, not all functions can be described in this manner.  For example, the function <m>f: {\\mathbb R} \\rightarrow {\\mathbb R}</m> that sends each real number to its cube is a mapping that must be described by writing <m>f(x) = x^3</m> or <m>f:x \\mapsto x^3</m>.</p>\n\n        <p>Consider the relation <m>f : {\\mathbb Q} \\rightarrow {\\mathbb Z}</m> given by <m>f(p/q) = p</m>.  We know that <m>1/2 = 2/4</m>, but is <m>f(1/2) = 1</m> or 2?  This relation cannot be a mapping because it is not well-defined.  A relation is <term>well-defined</term><idx><h>Well-defined map</h></idx> if each element in the domain is assigned to a <em>unique</em> element in the range.</p>\n\n        <p>If <m>f:A \\rightarrow B</m> is a map and the image of <m>f</m> is <m>B</m>, i.e., <m>f(A) = B</m>, then <m>f</m> is said to be <term>onto</term><idx><h>Function</h><h>onto</h></idx> or <term>surjective</term><idx><h>Function</h><h>surjective</h></idx>. In other words, if there exists an <m>a \\in A</m> for each <m>b \\in B</m> such that <m>f(a) = b</m>, then <m>f</m> is onto. A map is <term>one-to-one</term><idx><h>Function</h><h>one-to-one</h></idx> or <term>injective</term><idx><h>Function</h><h>injective</h></idx> if <m>a_1 \\neq a_2</m> implies <m>f(a_1) \\neq f(a_2)</m>.  Equivalently, a function is one-to-one if <m>f(a_1) = f(a_2)</m> implies <m>a_1 = a_2</m>.  A map that is both one-to-one and onto is called <term>bijective</term><idx><h>Function</h><h>bijective</h></idx>.</p> \n\n<!-- Added explanation for onto map - TWJ 1/25/2011 -->\n\n        <example xml:id=\"example-sets-one-to-one-onto\">\n            <title>One-to-One and Onto Mappings</title>\n            <p>Let <m>f:{\\mathbb Z} \\rightarrow {\\mathbb Q}</m> be defined by <m>f(n) = n/1</m>.  Then <m>f</m> is one-to-one but not onto.  Define <m>g : {\\mathbb Q} \\rightarrow {\\mathbb Z}</m> by <m>g(p/q) = p</m> where <m>p/q</m> is a rational number expressed in its lowest terms with a positive denominator.  The function <m>g</m> is onto but not one-to-one.</p>\n        </example>\n\n        <p>Given two functions, we can construct a new function by using the range of the first function as the domain of the second function.  Let <m>f : A \\rightarrow B</m> and <m>g : B \\rightarrow C</m> be mappings.  Define a new map, the <term>composition</term><idx><h>Function</h><h>composition of</h></idx> of <m>f</m> and <m>g</m> from <m>A</m> to <m>C</m>, by <m>(g \\circ f)(x) = g(f(x))</m>.</p>\n\n        <figure xml:id=\"figure-sets-composition\">\n            <caption>Composition of maps</caption>\n\n            <!-- Changed the figure to a tikz diagram - TWJ 5/4/2010 -->\n            <image xml:id=\"sets-composition\">\n                <latex-image><![CDATA[\n                    \\begin{tikzpicture}[scale=0.5]\n                    \\draw (-6,8) ellipse (2 and 3);\n                    \\draw (0,8) ellipse (2 and 3);\n                    \\draw (6,8) ellipse (2 and 3);\n\n                    \\node at (-7.5,11) {$A$};\n                    \\node at (-1.5,11) {$B$};\n                    \\node at (4.5,11) {$C$};\n                    \\node at (-6, 9.5) {1};\n                    \\node at (-6, 8) {2};\n                    \\node at (-6, 6.5) {3};\n                    \\node at (0, 9.5) {$a$};\n                    \\node at (0, 8) {$b$};\n                    \\node at (0, 6.5) {$c$};\n                    \\node at (6, 9.5) {$X$};\n                    \\node at (6, 8) {$Y$};\n                    \\node at (6, 6.5) {$Z$};\n                    \\node at (-3,10) {$f$};\n                    \\node at (3,10) {$g$};\n\n                    \\draw [->] (0.5,9.5) -- (5.5,6.7);\n                    \\draw [->] (0.5,8) -- (5.5,6.5);\n                    \\draw [->] (0.5,6.5) -- (5.5,9.5);\n\n                    \\draw [->] (-5.5,9.5) -- (-0.5,8);\n                    \\draw [->] (-5.5,8) -- (-0.5,6.5);\n                    \\draw [->] (-5.5,6.5) -- (-0.5,9.5);\n\n                    \\draw (-3,0) ellipse (2 and 3);\n                    \\draw (3,0) ellipse (2 and 3);\n\n                    \\node at (-5,3) {$A$};\n                    \\node at (1.5,3) {$C$};\n                    \\node at (-3, 1.5) {1};\n                    \\node at (-3, 0) {2};\n                    \\node at (-3, -1.5) {3};\n                    \\node at (3, 1.5) {$X$};\n                    \\node at (3, 0) {$Y$};\n                    \\node at (3, -1.5) {$Z$};\n                    \\node at (0,2.5) {$g \\circ f$};\n\n                    \\draw [->] (-2.5,1.5) -- (2.5,-1.3);\n                    \\draw [->] (-2.5,0) -- (2.5,1.5);\n                    \\draw [->] (-2.5,-1.5) -- (2.5,-1.5);\n\n                    \\end{tikzpicture}]]>\n                </latex-image>\n            </image>\n        </figure>\n\n        <example xml:id=\"example-sets-composition\">\n            <title>Composition of Mappings</title>\n            <p>Consider the functions <m>f: A \\rightarrow B</m> and <m>g: B \\rightarrow C</m> that are defined in <xref ref=\"figure-sets-composition\" /> (top).  The composition of these functions, <m>g \\circ f: A \\rightarrow C</m>, is defined in <xref ref=\"figure-sets-composition\" /> (bottom).</p>\n        </example>\n\n<!-- Changed figure references.  Suggested by P. Diethelm.  TWJ 22/4/2013 -->\n\n        <example xml:id=\"example-sets-composition-noncommute\">\n            <title>Composition is not Commutative</title>\n            <p>Let <m>f(x) = x^2</m> and <m>g(x) = 2x + 5</m>. Then\n                <md>(f \\circ g)(x) = f(g(x)) = (2x + 5)^2 = 4x^2 + 20x + 25</md>\n            and\n                <md>(g \\circ f)(x) = g(f(x)) = 2x^2 + 5</md>.\n            In general, order makes a difference; that is, in most cases <m>f \\circ g \\neq g \\circ f</m>.</p>\n        </example>\n\n        <example xml:id=\"example-sets-composition-commute\">\n            <title>Some Mappings Commute</title>\n            <p>Sometimes it is the case that <m>f \\circ g= g \\circ f</m>.  Let <m>f(x) = x^3</m> and <m>g(x) = \\sqrt[3]{x}</m>. Then \n                <md>(f \\circ g )(x) = f(g(x)) = f( \\sqrt[3]{x}\\, ) = (\\sqrt[3]{x}\\, )^3 = x</md>\n            and\n                <md>(g \\circ f )(x) = g(f(x)) = g( x^3) = \\sqrt[3]{ x^3} = x</md>.</p>\n        </example>\n\n        <example xml:id=\"example-sets-linear-map\">\n            <title>A Linear Map</title>\n            <p>Given a <m>2 \\times 2</m> matrix\n                <md>A =\n                \\begin{pmatrix}<![CDATA[\n                a & b \\\\\n                c & d\n                ]]>\\end{pmatrix}</md>,\n            we can define a map <m>T_A : {\\mathbb R}^2 \\rightarrow {\\mathbb R}^2</m> by \n                <md>T_A (x,y) = (ax + by, cx +dy)</md>\n            for <m>(x,y)</m> in <m>{\\mathbb R}^2</m>.  This is actually matrix multiplication; that is,\n                <md>\\begin{pmatrix}<![CDATA[\n                a & b \\\\\n                c & d\n                ]]>\\end{pmatrix}\n                \\begin{pmatrix}<![CDATA[\n                x \\\\ y\n                ]]>\\end{pmatrix}\n                =\n                \\begin{pmatrix}<![CDATA[\n                ax + by \\\\\n                cx +dy\n                ]]>\\end{pmatrix}</md>.\n            Maps from <m>{\\mathbb R}^n</m> to <m>{\\mathbb R}^m</m> given by matrices are called <term>linear maps</term> or <term>linear transformations</term><idx><h>Linear transformation</h><h>definition of</h></idx>.</p>\n        </example>\n\n        <example xml:id=\"example-sets-permutation\">\n            <title>A Permutation</title>\n            <p>Suppose that <m>S = \\{ 1,2,3  \\}</m>. Define a map <m>\\pi :S\\rightarrow S</m> by \n                <md>\\pi( 1 )  = 2, \\qquad \\pi( 2 )  = 1, \\qquad \\pi( 3 )  = 3</md>.\n            This is a bijective map.  An alternative way to  write <m>\\pi</m> is\n                <md>\\begin{pmatrix}<![CDATA[\n                1 & 2 & 3 \\\\\n                \\pi(1) & \\pi(2) & \\pi(3)\n                ]]>\\end{pmatrix}\n                =\n                \\begin{pmatrix}<![CDATA[\n                1 & 2 & 3 \\\\\n                2 & 1 & 3\n                ]]>\\end{pmatrix}</md>.\n            For any set <m>S</m>, a one-to-one and onto mapping <m>\\pi : S \\rightarrow S</m> is called a <term>permutation</term><idx><h>Permutation</h><h>definition of</h></idx> of <m>S</m>.</p>\n        </example>\n\n        <theorem>\n            <statement>\n                <p>Let <m>f : A \\rightarrow B</m>, <m>g : B \\rightarrow C</m>, and <m>h : C \\rightarrow D</m>. Then<ol>\n                    <li><p>The composition of mappings is associative; that is, <m>(h \\circ g) \\circ f = h \\circ (g \\circ f)</m>;</p></li>\n                    <li><p>If <m>f</m> and <m>g</m> are both one-to-one, then the mapping <m>g \\circ f</m> is one-to-one;</p></li> \n                    <li><p>If <m>f</m> and <m>g</m> are both onto, then the mapping <m>g \\circ f</m> is onto;</p></li>  \n                    <li><p>If <m>f</m> and <m>g</m> are bijective, then so is <m>g \\circ f</m>.</p></li>\n                </ol></p>\n            </statement>\n            <proof>\n                <p>We will prove (1) and (3). Part (2) is left as an exercise.  Part (4) follows directly from (2) and (3).</p> \n\n                <p>(1) We must show that\n                    <md>h \\circ (g \\circ f) = (h \\circ g) \\circ f</md>.\n                For <m>a \\in A</m> we have<md>\n                    <mrow>(h \\circ (g \\circ f))(a) &amp; = h((g \\circ f)(a))</mrow>\n                    <mrow>&amp; = h(g(f(a))) </mrow>\n                    <mrow>&amp; = (h \\circ g)(f(a))</mrow>\n                    <mrow>&amp; = ((h \\circ g) \\circ f)(a)</mrow>\n                </md>.</p>\n\n                <p>(3) Assume that <m>f</m> and <m>g</m> are both onto functions. Given <m>c \\in C</m>, we must show that there exists an <m>a \\in A</m> such that <m>(g \\circ f)(a) = g(f(a)) = c</m>. However, since <m>g</m> is onto, there is an element <m>b \\in B</m> such that <m>g(b) = c</m>. Similarly, there is an <m>a \\in A</m> such that <m>f(a) = b</m>. Accordingly, \n                    <md>(g \\circ f)(a) = g(f(a)) = g(b) = c</md>.</p>\n            </proof>\n        </theorem>\n\n            <p>If <m>S</m> is any set, we will use <m>id_S</m> or <m>id</m> to denote the <term>identity mapping</term><idx><h>Function</h><h>identity</h></idx> from <m>S</m> to itself.  Define this map by <m>id(s) = s</m> for all <m>s \\in S</m>.  A map <m>g: B \\rightarrow A</m> is an <term>inverse mapping</term> of <m>f: A \\rightarrow B</m> if <m>g \\circ f = id_A</m> and <m>f \\circ g = id_B</m>; in other words, the inverse function of a function simply <q>undoes</q> the function.   A map is said to be <term>invertible</term><idx><h>Function</h><h>invertible</h></idx> if it has an inverse.  We usually write <m>f^{-1}</m> for the inverse of <m>f</m>. <notation><usage><m>id</m></usage><description>identity mapping</description></notation><notation><usage><m>f^{-1}</m></usage><description>inverse of the function <m>f</m></description></notation></p> \n\n        <example xml:id=\"example-sets-inverse-function\">\n            <title>An Inverse Function</title>\n            <p>The function <m>f(x) = x^3</m> has inverse <m>f^{-1}(x) = \\sqrt[3]{x}</m> by <xref ref=\"example-sets-composition-commute\" />.</p>\n        </example>\n\n        <example xml:id=\"example-sets-exponential\">\n            <title>Exponential and Logarithmic Functions are Inverses</title>\n            <p>The natural logarithm and the exponential functions, <m>f(x) = \\ln x</m> and <m>f^{-1}(x) = e^x</m>, are inverses of each other provided that we are careful about choosing domains.  Observe that  \n                <md>f(f^{-1}(x)) = f(e^x) = \\ln e^x = x</md>\n            and\n                <md>f^{-1}(f(x)) = f^{-1}(\\ln x) = e^{\\ln x} = x</md>\n            whenever composition makes sense.</p>\n        </example>\n\n        <example xml:id=\"example-sets-inverse-matrix\">\n            <title>A Matrix Inverse Yields an Inverse of a Linear Map</title>\n            <p>Suppose that\n                    <md>A =\n                    \\begin{pmatrix}<![CDATA[\n                    3 & 1 \\\\\n                    5 & 2\n                    ]]>\\end{pmatrix}</md>.\n                Then <m>A</m> defines a map from <m>{\\mathbb R}^2</m> to <m>{\\mathbb R}^2</m> by\n                    <md>T_A (x,y) = (3x +  y, 5x + 2y)</md>.\n                We can find an inverse map of <m>T_A</m> by simply inverting the matrix <m>A</m>; that is, <m>T_A^{-1} = T_{A^{-1}}</m>. In this example,\n                    <md>A^{-1} =\n                    \\begin{pmatrix}<![CDATA[\n                    2  & -1 \\\\\n                    -5 &  3\n                    ]]>\\end{pmatrix}</md>\n                and hence, the inverse map is given by\n                    <md>T_A^{-1} (x,y) = (2x -  y, -5x + 3y)</md>.\n                It is easy to check that\n                    <md>T^{-1}_A \\circ T_A (x,y) = T_A \\circ T_A^{-1} (x,y) = (x,y)</md>.\n                Not every map has an inverse.  If we consider the map\n                    <md>T_B (x,y) = (3x , 0 )</md>\n                given by the matrix\n                    <md>B =\n                    \\begin{pmatrix}<![CDATA[\n                    3 & 0 \\\\\n                    0 & 0\n                    ]]>\\end{pmatrix}</md>,\n                then an inverse map would have to be of the form\n                    <md>T_B^{-1} (x,y) = (ax + by, cx +dy)</md>\n                and\n                    <md>(x,y) = T \\circ T_B^{-1} (x,y) = (3ax + 3by, 0)</md>\n                for all <m>x</m> and <m>y</m>.  Clearly this is  impossible because <m>y</m> might not be 0.</p>\n        </example>\n\n        <example xml:id=\"example-sets-inverse-permutation\">\n            <title>An Inverse Permutation</title>\n            <p>Given the permutation\n                <md>\\pi =\n                \\begin{pmatrix}<![CDATA[\n                1 & 2 & 3 \\\\\n                2 & 3 & 1\n                ]]>\\end{pmatrix}</md>\n            on <m>S = \\{ 1,2,3 \\}</m>, it is easy to see that the permutation defined by\n                <md>\\pi^{-1} =\n                \\begin{pmatrix}<![CDATA[\n                1 & 2 & 3 \\\\\n                3 & 1 & 2\n                ]]>\\end{pmatrix}</md>\n            is the inverse of <m>\\pi</m>.  In fact, any bijective mapping possesses an inverse, as we will see in the next theorem.</p>\n        </example>\n\n        <theorem>\n            <statement>\n                <p>A mapping is invertible if and only if it is both one-to-one and onto.</p>\n            </statement>\n            <proof>\n                <p>Suppose first that <m>f:A \\rightarrow B</m> is invertible with inverse <m>g: B \\rightarrow A</m>. Then <m>g \\circ f = id_A</m> is the identity map; that is, <m>g(f(a)) = a</m>. If <m>a_1, a_2 \\in A</m> with <m>f(a_1) = f(a_2)</m>, then <m>a_1 = g(f(a_1)) = g(f(a_2)) = a_2</m>.  Consequently, <m>f</m> is one-to-one.  Now suppose that <m>b \\in B</m>. To show that <m>f</m> is onto, it is necessary to find an <m>a \\in A</m> such that <m>f(a) = b</m>, but <m>f(g(b)) = b</m> with <m>g(b) \\in A</m>. Let <m>a = g(b)</m>.</p>\n\n                <p>Conversely, let <m>f</m> be bijective and let <m>b \\in B</m>.  Since <m>f</m> is onto, there exists an <m>a \\in A</m> such that <m>f(a) = b</m>.  Because <m>f</m> is one-to-one, <m>a</m> must be unique. Define <m>g</m> by letting <m>g(b) = a</m>.  We have now constructed the inverse of <m>f</m>.</p>\n            </proof>\n        </theorem>\n\n        </subsection>\n\n        <subsection>\n            <title>Equivalence Relations and Partitions</title>\n\n            <p>A fundamental notion in mathematics is that of equality.  We can generalize equality with equivalence relations and equivalence classes.  An <term>equivalence relation</term><idx><h>Equivalence relation</h></idx> on a set <m>X</m> is a relation <m>R \\subset X \\times X</m> such that<ul>\n                <li><p><m>(x, x) \\in R</m> for all <m>x \\in X</m> (<term>reflexive property</term>);</p></li>\n                <li><p><m>(x, y) \\in R</m> implies <m>(y, x) \\in R</m> (<term>symmetric property</term>);</p></li>\n                <li><p><m>(x, y)</m> and <m>(y, z) \\in R</m> imply <m>(x, z) \\in R</m> (<term>transitive property</term>).</p></li>\n            </ul></p>\n\n            <p>Given an equivalence relation <m>R</m>  on a set <m>X</m>, we usually write  <m>x \\sim y</m> instead of <m>(x, y) \\in R</m>. If the equivalence relation already has an associated notation such as <m>=</m>, <m>\\equiv</m>, or <m>\\cong</m>, we will use that notation.</p>\n\n            <example xml:id=\"example-sets-equivalent-fractions\">\n                <title>Equivalent Fractions</title>\n                <p>Let <m>p</m>, <m>q</m>, <m>r</m>, and <m>s</m> be integers, where <m>q</m> and <m>s</m> are nonzero.  Define <m>p/q \\sim r/s</m> if <m>ps = qr</m>.  Clearly <m>\\sim</m> is reflexive and symmetric.  To show that it is also transitive, suppose that <m>p/q \\sim r/s</m> and <m>r/s \\sim t/u</m>, with <m>q</m>, <m>s</m>, and <m>u</m> all nonzero.  Then <m>ps = qr</m> and <m>ru = st</m>. Therefore, \n                    <md>psu = qru = qst</md>.\n                Since <m>s \\neq 0</m>, <m>pu = qt</m>. Consequently, <m>p/q \\sim t/u</m>.</p>\n            </example>\n\n            <example xml:id=\"example-sets-equivalent-derivative\">\n                <title>An Equivalence Relation From Derivatives</title>\n                <p>Suppose that <m>f</m> and <m>g</m> are differentiable functions on <m>{\\mathbb R}</m>.  We can define an equivalence relation on such functions by letting <m>f(x) \\sim g(x)</m> if <m>f'(x) = g'(x)</m>. It is clear that <m>\\sim</m> is both reflexive and symmetric.  To demonstrate transitivity, suppose that <m>f(x) \\sim g(x)</m> and  <m>g(x) \\sim h(x)</m>.  From calculus we know that <m>f(x) - g(x) = c_1</m> and <m>g(x)- h(x) = c_2</m>, where <m>c_1</m> and <m>c_2</m> are both constants. Hence, \n                    <md>f(x) - h(x) = ( f(x) - g(x)) + ( g(x)- h(x))  = c_1 - c_2</md>\n                and <m>f'(x) - h'(x) = 0</m>. Therefore, <m>f(x) \\sim h(x)</m>.</p>\n            </example>\n\n            <example xml:id=\"example-sets-equivalent-circles\">\n                <title>Equivalent Circles</title>\n                <p>For <m>(x_1, y_1 )</m> and <m>(x_2, y_2)</m> in <m>{\\mathbb R}^2</m>, define <m>(x_1, y_1 ) \\sim (x_2, y_2)</m> if <m>x_1^2 + y_1^2 = x_2^2 + y_2^2</m>.  Then <m>\\sim</m> is an equivalence relation on <m>{\\mathbb R}^2</m>.</p>\n            </example>\n\n            <example xml:id=\"example-sets-equivalent-matrices\">\n                <title>Equivalent Matrices</title>\n                <p>Let <m>A</m> and <m>B</m> be <m>2 \\times 2</m> matrices with entries in the real numbers. We can define an equivalence relation on the set of <m>2 \\times 2</m> matrices, by saying <m>A \\sim B</m> if there exists an invertible matrix <m>P</m> such that <m>PAP^{-1} = B</m>.  For example, if \n                    <md>A =\n                    \\begin{pmatrix}<![CDATA[\n                    1 & 2 \\\\\n                    -1 & 1\n                    ]]>\\end{pmatrix}\n                    \\quad \\text{and} \\quad\n                    B =\n                    \\begin{pmatrix}<![CDATA[\n                    -18 & 33 \\\\\n                    -11 & 20\n                    ]]>\\end{pmatrix}</md>,\n                then <m>A \\sim B</m> since <m>PAP^{-1} = B</m> for\n                    <md>P =\n                    \\begin{pmatrix}<![CDATA[\n                    2 & 5 \\\\\n                    1 & 3\n                    ]]>\\end{pmatrix}</md>.\n                    Let <m>I</m> be the <m>2 \\times 2</m> identity matrix; that is,\n                    <md>I =\n                    \\begin{pmatrix}<![CDATA[\n                    1 & 0 \\\\\n                    0 & 1\n                    ]]>\\end{pmatrix}</md>.\n                Then <m>IAI^{-1} = IAI = A</m>; therefore, the relation is reflexive.  To show symmetry, suppose that <m>A \\sim B</m>.  Then there exists an invertible matrix <m>P</m> such that <m>PAP^{-1} = B</m>.  So \n                    <md>A = P^{-1} B P = P^{-1} B (P^{-1})^{-1}</md>.\n                Finally, suppose that <m>A \\sim B</m> and <m>B \\sim C</m>.  Then there exist invertible matrices <m>P</m> and <m>Q</m> such that <m>PAP^{-1} = B</m> and  <m>QBQ^{-1} = C</m>.  Since \n                    <md>C = QBQ^{-1} = QPAP^{-1} Q^{-1} = (QP)A(QP)^{-1}</md>,\n                the relation is transitive.  Two matrices that are equivalent in this manner are said to be <term>similar</term><idx><h>Matrix</h><h>similar</h></idx>.</p>\n            </example>\n\n            <p>A <term>partition</term><idx><h>Partitions</h></idx> <m>{\\mathcal P}</m> of a set <m>X</m> is a collection of nonempty sets <m>X_1, X_2, \\ldots</m> such that <m>X_i \\cap X_j = \\emptyset</m> for <m>i  \\neq j</m> and <m>\\bigcup_k X_k = X</m>. Let <m>\\sim</m> be an equivalence relation on a set <m>X</m> and let <m>x \\in X</m>.  Then <m>[x] = \\{ y \\in X : y \\sim x \\}</m> is called the <term>equivalence class</term><idx><h>Equivalence class</h></idx> of <m>x</m>.  We will see that an equivalence relation gives rise to a partition via equivalence classes.  Also, whenever a partition of a set exists, there is some natural  underlying equivalence relation, as the following theorem demonstrates.</p>  \n\n            <theorem>\n                <statement>\n                    <p>Given an equivalence relation <m>\\sim</m> on a set <m>X</m>, the equivalence classes of <m>X</m> form a partition of <m>X</m>.  Conversely, if <m>{\\mathcal P} = \\{ X_i\\}</m> is a partition of a set <m>X</m>, then there is an equivalence relation on <m>X</m> with equivalence classes <m>X_i</m>. </p>\n                </statement>\n                <proof>\n                    <p>Suppose there exists an equivalence relation <m>\\sim</m> on the set <m>X</m>.  For any <m>x \\in X</m>, the reflexive property shows that <m>x \\in [x]</m> and so <m>[x]</m> is nonempty.  Clearly <m>X = \\bigcup_{x \\in X} [x]</m>.  Now let <m>x, y \\in X</m>. We need to show that either <m>[x] = [y]</m> or <m>[x] \\cap [y] = \\emptyset</m>.  Suppose that the intersection of <m>[x]</m> and <m>[y]</m> is not empty and that <m>z \\in [x] \\cap [y]</m>. Then <m>z \\sim x</m> and <m>z \\sim y</m>.  By symmetry and transitivity <m>x \\sim y</m>; hence, <m>[x] \\subset [y]</m>.  Similarly, <m>[y] \\subset [x]</m> and so <m>[x] = [y]</m>.  Therefore, any two equivalence classes are either disjoint or exactly the same.</p>\n\n                    <p>Conversely, suppose that <m>{\\mathcal P} = \\{X_i\\}</m> is a partition of a set <m>X</m>.  Let two elements be equivalent if they are in the same partition.  Clearly, the relation is reflexive.  If <m>x</m> is in the same partition as <m>y</m>, then <m>y</m> is in the same partition as <m>x</m>, so <m>x \\sim y</m> implies <m>y \\sim x</m>.  Finally, if <m>x</m> is in the same partition as <m>y</m> and <m>y</m> is in the same partition as <m>z</m>, then <m>x</m> must be in the same partition as <m>z</m>, and transitivity holds.</p>\n                </proof>\n            </theorem>\n\n            <corollary>\n                <statement>\n                    <p>Two equivalence classes of an equivalence relation are either disjoint or equal.</p>\n                </statement>\n            </corollary>\n\n            <p>Let us examine some of the partitions given by the equivalence classes in the last set of examples.</p> \n\n            <example xml:id=\"example-sets-fraction-partition\">\n                <title>A Partition of Fractions</title>\n                <p>In the equivalence relation in <xref ref=\"example-sets-equivalent-fractions\" />, two pairs of integers, <m>(p,q)</m> and <m>(r,s)</m>, are in the same equivalence class when they reduce to the same fraction in its lowest terms.</p>\n            </example>\n\n            <example xml:id=\"example-sets-matrix-partition\">\n                <title>A Partition of Functions</title>\n                <p>In the equivalence relation in <xref ref=\"example-sets-equivalent-derivative\" />, two functions <m>f(x)</m> and <m>g(x)</m> are in the same partition when they differ by a constant.</p>\n            </example>\n\n            <example xml:id=\"example-sets-circle-partition\">\n                <title>A Partition of Circles</title>\n                <p>We defined an equivalence class on <m>{\\mathbb R}^2</m> by <m>(x_1, y_1 ) \\sim (x_2, y_2)</m> if <m>x_1^2 + y_1^2 = x_2^2 + y_2^2</m>.  Two pairs of real numbers are in the same partition when they lie on the same circle about the origin.</p>\n            </example>\n\n            <example xml:id=\"example-sets-congruent-integers\">\n                <title>A Partition of Integers</title>\n                <p>Let <m>r</m> and <m>s</m> be two integers and suppose that <m>n \\in {\\mathbb N}</m>.  We say that <m>r</m> is <term>congruent</term><idx><h>Congruence modulo <m>n</m></h></idx> to <m>s</m> <term>modulo</term> <m>n</m>, or <m>r</m> is congruent to <m>s</m> mod <m>n</m>, if <m>r - s</m> is evenly divisible by <m>n</m>; that is, <m>r - s = nk</m>  for some <m>k \\in {\\mathbb Z}</m>.  In this case we write <m>r \\equiv s \\pmod{n}</m>.  <notation><usage><m>a \\equiv b \\pmod{n}</m></usage><description><m>a</m> is congruent to <m>b</m> modulo <m>n</m></description></notation>  For example, <m>41 \\equiv 17 \\pmod{ 8}</m> since <m>41 - 17=24</m> is divisible by 8.  We claim that congruence modulo <m>n</m> forms an equivalence relation of <m>{\\mathbb Z}</m>.  Certainly any integer <m>r</m> is equivalent to itself since <m>r - r = 0</m> is divisible by <m>n</m>.  We will now show that the relation is symmetric.  If <m>r \\equiv s \\pmod{ n}</m>, then <m>r - s = -(s -r)</m> is divisible by <m>n</m>. So <m>s - r</m> is divisible by <m>n</m> and <m>s \\equiv r \\pmod{ n}</m>.  Now suppose that <m>r \\equiv s \\pmod{ n}</m> and <m>s \\equiv t \\pmod{ n}</m>.  Then there exist integers <m>k</m> and <m>l</m> such that <m>r -s = kn</m> and <m>s - t = ln</m>.  To show transitivity, it is necessary to prove that <m>r - t</m> is divisible by <m>n</m>.  However,   \n                    <md>r - t = r - s + s - t = kn + ln = (k + l)n</md>,\n                and so <m>r - t</m> is divisible by <m>n</m>.</p>\n\n\n\n                <p>If we consider the equivalence relation established by the integers modulo 3, then<md>\n                    <mrow>{[0]} &amp; = \\{ \\ldots, -3, 0, 3, 6, \\ldots \\}</mrow>\n                    <mrow>{[1]} &amp; = \\{ \\ldots, -2, 1, 4, 7, \\ldots \\}</mrow>\n                    <mrow>{[2]} &amp; = \\{ \\ldots, -1, 2, 5, 8, \\ldots \\}</mrow>\n                </md>.</p>\n\n                <p>Notice that <m>[0] \\cup [1] \\cup [2] = {\\mathbb Z}</m> and also that the sets are disjoint.  The sets <m>[0]</m>, <m>[1]</m>, and <m>[2]</m> form a partition of the integers.</p>\n\n                <p>The integers modulo <m>n</m> are a very important example in the study of abstract algebra and will become quite useful in our investigation of various algebraic structures such as groups and rings.  In our discussion of the integers modulo <m>n</m> we have actually assumed a result known as the division algorithm, which will be stated and proved in <xref ref=\"integers\" />.</p>\n            </example>\n\n        </subsection>\n    </section>\n\n    <xi:include href=\"./sage/sets-sage.xml\" />\n\n    <xi:include href=\"./exercises/sets.xml\" />\n\n    <xi:include href=\"./sage/sets-sage-exercises.xml\" />\n\n    <references>\n        <title>References and Suggested Readings</title>\n        <!--\n        <p>The following list contains references suitable for further reading.  With the exception of [8] and [9] and perhaps [1] and [3], all of these books are more or less  at the same level as this text.  Interesting applications of algebra  can be found in [2], [5], [10], and [11].</p>\n        -->\n\n        <biblio type=\"raw\"> <!-- was [1] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Artin, M. <title>Abstract Algebra</title>. 2nd ed. Pearson, Upper Saddle River, NJ, 2011.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [2] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Childs, L. <title>A Concrete Introduction to Higher Algebra</title>. 2nd ed. Springer-Verlag, New York, 1995.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [3] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Dummit, D. and Foote, R.  <title>Abstract Algebra</title>. 3rd ed. Wiley, New York, 2003.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [2] -->\n        <!--Seems to be out of print 5/4/2010 - TWJ -->\n        Ehrlich, G. <title>Fundamental Concepts of Algebra</title>. PWS-KENT, Boston, 1991.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [4] -->\n         <!-- Reference updated 5/4/2010 - TWJ -->\n        Fraleigh, J. B. <title>A First Course in Abstract Algebra</title>. 7th ed. Pearson, Upper Saddle River, NJ, 2003.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [5] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Gallian, J. A. <title>Contemporary Abstract Algebra</title>. 7th ed. Brooks/Cole, Belmont, CA, 2009.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [6] -->\n        <!-- I believe that this is not still in print, but it is certainly available through amazon.com 5/4/2010 - TWJ -->\n        Halmos, P. <title>Naive Set Theory</title>.  Springer, New York, 1991. One of the best references for set theory.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [7] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Herstein, I. N. \n        <title>Abstract Algebra</title>. 3rd ed. Wiley, New York, 1996.</biblio>\n\n        <biblio type=\"raw\"> <!-- was [8] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Hungerford, T. W. \n        <title>Algebra</title>. Springer, New York, 1974. One\n        of the standard graduate algebra texts.\n        </biblio>\n\n        <biblio type=\"raw\"> <!-- was [9] -->\n         <!-- Reference updated 5/4/2010 - TWJ -->\n        Lang, S. \n        <title>Algebra</title>. 3rd ed. Springer, New York, 2002.\n        Another standard graduate text.\n        </biblio>\n\n        <biblio type=\"raw\"> <!-- was [10] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Lidl, R. and Pilz, G. \n        <title>Applied Abstract Algebra</title>. 2nd ed. Springer,\n        New York, 1998. \n        </biblio>\n\n        <biblio type=\"raw\"> <!-- was [11] -->\n        <!-- No longer in print 5/4/2010 - TWJ -->\n        Mackiw, G. <title>Applications of Abstract Algebra</title>. Wiley, New York,\n        1985. \n        </biblio>\n\n        <biblio type=\"raw\"> <!-- was [12] -->\n        Nickelson, W. K. <!-- Reference updated 5/4/2010 - TWJ -->\n        <title>Introduction to Abstract Algebra</title>. 3rd ed. Wiley, New York,\n        2006. \n        </biblio>\n\n        <biblio type=\"raw\"> <!-- was [13] -->\n        <!-- Reference updated 5/4/2010 - TWJ -->\n        Solow, D. \n        <title>How to Read and Do Proofs</title>. 5th ed. Wiley, New York,\n        2009. \n        </biblio>\n\n        <biblio type=\"raw\"> <!-- was [14] -->\n        <!-- No longer in print 5/4/2010 - TWJ -->\n        van der Waerden, B. L. \n        <title>A History of Algebra</title>. Springer-Verlag,\n        New York, 1985. An account of the historical development of algebra. \n        </biblio>\n\n    </references> <!-- References need to be updated -->\n\n</chapter>\n"
  },
  {
    "path": "examples/sample-book/tikz/cyclic-roots-unity.tex",
    "content": "% Cyclic 8-th roots of unity\n% NB: comments are in TeX, not XML\n%\n\\begin{tikzpicture}[scale=1.65]\n\n\\draw [->]  (0,-1.5) -- (0,1.5);\n\\draw  [->] (-1.75,0) -- (1.75,0);\n\\node [right] at (0,1.5) {$y$};\n\\node [below] at (1.75,0) {$x$};\n\\node [below] at (0.1,0) {$0$};\n\n\\draw (0,0) circle (1);\n\n\\filldraw[fill=black, draw=black] (0:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (45:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (90:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (135:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (180:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (225:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (270:1) circle (0.03);\n\\filldraw[fill=black, draw=black] (315:1) circle (0.03);\n\n\n\\node [right] at (1,-0.15) {1};\n\\node [right] at (45:1) {$\\omega$};\n\\node [left] at (0,1.15) {$i$};\n\\node [left] at (135:1) {$\\omega^3$};\n\\node [left] at (-1,-0.15) {$-1$};\n\\node [left] at (225:1) {$\\omega^5$};\n\\node [left] at (0,-1.15) {$-i$};\n\\node [right] at (315:1) {$\\omega^7$};\n\n\\end{tikzpicture}\n"
  },
  {
    "path": "examples/sample-slideshow/external/custom.css",
    "content": "/* Sample of custom CSS to override/extend defaults */\n\n.reveal h4 {\n  color: #3b658f;\n}"
  },
  {
    "path": "examples/sample-slideshow/generated/asymptote/img-asymptote.html",
    "content": "<!DOCTYPE html>\n\n<!-- Use the following line to embed this file within another web page:\n\n<iframe src=\"/tmp/tmp11i4ffqm/out.html\" width=\"139\" height=\"151\" frameborder=\"0\"></iframe>\n\n-->\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmp11i4ffqm/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"user-scalable=no\"/>\n<style>\nbody {margin: 0;}\n</style>\n\n<script\nsrc=\"https://vectorgraphics.github.io/asymptote/base/webgl/asygl-1.02.js\">\n</script>\n\n<script>\n\ndocument.asy.canvasWidth=139;\ndocument.asy.canvasHeight=151;\n\ndocument.asy.webgl2=false;\ndocument.asy.ibl=false;\ndocument.asy.absolute=false;\n\ndocument.asy.minBound=[-69.41278,-75.25141,-3381.879];\ndocument.asy.maxBound=[69.41278,75.25143,-3127.095];\ndocument.asy.orthographic=true;\ndocument.asy.angleOfView=0;\ndocument.asy.initialZoom=1;\ndocument.asy.viewportMargin=[0.5,0.5];\n\ndocument.asy.zoomFactor=1.05;\ndocument.asy.zoomPinchFactor=10;\ndocument.asy.zoomPinchCap=100;\ndocument.asy.zoomStep=0.1;\ndocument.asy.shiftHoldDistance=20;\ndocument.asy.shiftWaitTime=200;\ndocument.asy.vibrateTime=25;\n\ndocument.asy.background=[1,1,1,1];\n\ndocument.asy.Transform=[0.07281966,\n0,\n0,\n0,\n0,\n0.01197148,\n-0.07182887,\n5.684342e-14,\n0,\n0.07182887,\n0.01197148,\n0,\n0,\n0,\n0,\n1];\n\nlight(\n[0.4477358,0.4972609,0.7431448],\n[1,1,1]);\n\nmaterial(\n[0.5,0.5,1,0.5],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\npatch([\n[0,-3.702485,-3269.974],\n[0,-27.30212,-3264.811],\n[0,-50.90176,-3259.649],\n[0,-74.50139,-3254.487],\n[-14.86519,-3.702485,-3269.974],\n[-9.910127,-27.30212,-3264.811],\n[-4.955063,-50.90176,-3259.649],\n[0,-74.50139,-3254.487],\n[-26.91581,-5.683595,-3258.087],\n[-17.94387,-28.62286,-3256.887],\n[-8.971936,-51.56213,-3255.687],\n[0,-74.50139,-3254.487],\n[-26.91581,-8.127417,-3243.424],\n[-17.94387,-30.25208,-3247.112],\n[-8.971936,-52.37673,-3250.799],\n[0,-74.50139,-3254.487]\n],0,0);\n\npatch([\n[26.91581,-8.127417,-3243.424],\n[17.94387,-30.25208,-3247.112],\n[8.971936,-52.37673,-3250.799],\n[0,-74.50139,-3254.487],\n[26.91581,-5.683595,-3258.087],\n[17.94387,-28.62286,-3256.887],\n[8.971936,-51.56213,-3255.687],\n[0,-74.50139,-3254.487],\n[14.86519,-3.702485,-3269.974],\n[9.910127,-27.30212,-3264.811],\n[4.955063,-50.90176,-3259.649],\n[0,-74.50139,-3254.487],\n[0,-3.702485,-3269.974],\n[0,-27.30212,-3264.811],\n[0,-50.90176,-3259.649],\n[0,-74.50139,-3254.487]\n],0,0);\n\npatch([\n[0,-12.55235,-3216.875],\n[0,-33.20203,-3229.412],\n[0,-53.85171,-3241.949],\n[0,-74.50139,-3254.487],\n[14.86519,-12.55235,-3216.875],\n[9.910127,-33.20203,-3229.412],\n[4.955063,-53.85171,-3241.949],\n[0,-74.50139,-3254.487],\n[26.91581,-10.57124,-3228.761],\n[17.94387,-31.88129,-3237.336],\n[8.971936,-53.19134,-3245.912],\n[0,-74.50139,-3254.487],\n[26.91581,-8.127417,-3243.424],\n[17.94387,-30.25208,-3247.112],\n[8.971936,-52.37673,-3250.799],\n[0,-74.50139,-3254.487]\n],0,0);\n\npatch([\n[-26.91581,-8.127417,-3243.424],\n[-17.94387,-30.25208,-3247.112],\n[-8.971936,-52.37673,-3250.799],\n[0,-74.50139,-3254.487],\n[-26.91581,-10.57124,-3228.761],\n[-17.94387,-31.88129,-3237.336],\n[-8.971936,-53.19134,-3245.912],\n[0,-74.50139,-3254.487],\n[-14.86519,-12.55235,-3216.875],\n[-9.910127,-33.20203,-3229.412],\n[-4.955063,-53.85171,-3241.949],\n[0,-74.50139,-3254.487],\n[0,-12.55235,-3216.875],\n[0,-33.20203,-3229.412],\n[0,-53.85171,-3241.949],\n[0,-74.50139,-3254.487]\n],0,0);\n\npatch([\n[7.928024e-15,0.6321415,-3270.922],\n[9.351002e-15,14.14022,-3273.868],\n[1.077398e-14,27.64831,-3276.814],\n[1.219696e-14,41.15639,-3279.761],\n[-5.013979,0.6321415,-3270.922],\n[-5.913924,14.14022,-3273.868],\n[-6.813869,27.64831,-3276.814],\n[-7.713814,41.15639,-3279.761],\n[-9.939624,0.415164,-3269.62],\n[-11.72366,13.8843,-3272.333],\n[-13.50769,27.35344,-3275.045],\n[-15.29173,40.82258,-3277.758],\n[-14.28186,0.003017435,-3267.147],\n[-16.84527,13.39818,-3269.416],\n[-19.40868,26.79334,-3271.685],\n[-21.97209,40.1885,-3273.953]\n],0,0);\n\npatch([\n[14.28186,0.003017435,-3267.147],\n[16.84527,13.39818,-3269.416],\n[19.40868,26.79334,-3271.685],\n[21.97209,40.1885,-3273.953],\n[9.939624,0.415164,-3269.62],\n[11.72366,13.8843,-3272.333],\n[13.50769,27.35344,-3275.045],\n[15.29173,40.82258,-3277.758],\n[5.013979,0.6321415,-3270.922],\n[5.913924,14.14022,-3273.868],\n[6.813869,27.64831,-3276.814],\n[7.713814,41.15639,-3279.761],\n[7.928024e-15,0.6321415,-3270.922],\n[9.351002e-15,14.14022,-3273.868],\n[1.077398e-14,27.64831,-3276.814],\n[1.219696e-14,41.15639,-3279.761]\n],0,0);\n\npatch([\n[-14.28186,0.003017435,-3267.147],\n[-16.84527,13.39818,-3269.416],\n[-19.40868,26.79334,-3271.685],\n[-21.97209,40.1885,-3273.953],\n[-18.62409,-0.4091291,-3264.674],\n[-21.96688,12.91206,-3266.499],\n[-25.30966,26.23325,-3268.324],\n[-28.65245,39.55443,-3270.149],\n[-22.22991,-1.001923,-3261.118],\n[-26.2199,12.21287,-3262.304],\n[-30.20988,25.42765,-3263.491],\n[-34.19987,38.64244,-3264.677],\n[-24.7369,-1.715781,-3256.835],\n[-29.17686,11.37088,-3257.252],\n[-33.61682,24.45754,-3257.67],\n[-38.05677,37.5442,-3258.088]\n],0,0);\n\npatch([\n[24.7369,-1.715781,-3256.835],\n[29.17686,11.37088,-3257.252],\n[33.61682,24.45754,-3257.67],\n[38.05677,37.5442,-3258.088],\n[22.22991,-1.001923,-3261.118],\n[26.2199,12.21287,-3262.304],\n[30.20988,25.42765,-3263.491],\n[34.19987,38.64244,-3264.677],\n[18.62409,-0.4091291,-3264.674],\n[21.96688,12.91206,-3266.499],\n[25.30966,26.23325,-3268.324],\n[28.65245,39.55443,-3270.149],\n[14.28186,0.003017435,-3267.147],\n[16.84527,13.39818,-3269.416],\n[19.40868,26.79334,-3271.685],\n[21.97209,40.1885,-3273.953]\n],0,0);\n\npatch([\n[-24.7369,-1.715781,-3256.835],\n[-29.17686,11.37088,-3257.252],\n[-33.61682,24.45754,-3257.67],\n[-38.05677,37.5442,-3258.088],\n[-27.24389,-2.42964,-3252.551],\n[-32.13382,10.52889,-3252.2],\n[-37.02375,23.48742,-3251.849],\n[-41.91368,36.44595,-3251.498],\n[-28.56371,-3.239411,-3247.693],\n[-33.69054,9.573777,-3246.47],\n[-38.81736,22.38696,-3245.246],\n[-43.94418,35.20015,-3244.023],\n[-28.56371,-4.063704,-3242.747],\n[-33.69054,8.601534,-3240.636],\n[-38.81736,21.26677,-3238.525],\n[-43.94418,33.93201,-3236.414]\n],0,0);\n\npatch([\n[28.56371,-4.063704,-3242.747],\n[33.69054,8.601534,-3240.636],\n[38.81736,21.26677,-3238.525],\n[43.94418,33.93201,-3236.414],\n[28.56371,-3.239411,-3247.693],\n[33.69054,9.573777,-3246.47],\n[38.81736,22.38696,-3245.246],\n[43.94418,35.20015,-3244.023],\n[27.24389,-2.42964,-3252.551],\n[32.13382,10.52889,-3252.2],\n[37.02375,23.48742,-3251.849],\n[41.91368,36.44595,-3251.498],\n[24.7369,-1.715781,-3256.835],\n[29.17686,11.37088,-3257.252],\n[33.61682,24.45754,-3257.67],\n[38.05677,37.5442,-3258.088]\n],0,0);\n\npatch([\n[-28.56371,-4.063704,-3242.747],\n[-33.69054,8.601534,-3240.636],\n[-38.81736,21.26677,-3238.525],\n[-43.94418,33.93201,-3236.414],\n[-28.56371,-4.887997,-3237.801],\n[-33.69054,7.629291,-3234.803],\n[-38.81736,20.14658,-3231.804],\n[-43.94418,32.66387,-3228.806],\n[-27.24389,-5.697768,-3232.943],\n[-32.13382,6.674176,-3229.072],\n[-37.02375,19.04612,-3225.201],\n[-41.91368,31.41806,-3221.331],\n[-24.7369,-6.411627,-3228.659],\n[-29.17686,5.832189,-3224.02],\n[-33.61682,18.076,-3219.381],\n[-38.05677,30.31982,-3214.741]\n],0,0);\n\npatch([\n[24.7369,-6.411627,-3228.659],\n[29.17686,5.832189,-3224.02],\n[33.61682,18.076,-3219.381],\n[38.05677,30.31982,-3214.741],\n[27.24389,-5.697768,-3232.943],\n[32.13382,6.674176,-3229.072],\n[37.02375,19.04612,-3225.201],\n[41.91368,31.41806,-3221.331],\n[28.56371,-4.887997,-3237.801],\n[33.69054,7.629291,-3234.803],\n[38.81736,20.14658,-3231.804],\n[43.94418,32.66387,-3228.806],\n[28.56371,-4.063704,-3242.747],\n[33.69054,8.601534,-3240.636],\n[38.81736,21.26677,-3238.525],\n[43.94418,33.93201,-3236.414]\n],0,0);\n\npatch([\n[-24.7369,-6.411627,-3228.659],\n[-29.17686,5.832189,-3224.02],\n[-33.61682,18.076,-3219.381],\n[-38.05677,30.31982,-3214.741],\n[-22.22991,-7.125486,-3224.376],\n[-26.2199,4.990201,-3218.968],\n[-30.20988,17.10589,-3213.56],\n[-34.19987,29.22158,-3208.152],\n[-18.62409,-7.71828,-3220.82],\n[-21.96688,4.291009,-3214.773],\n[-25.30966,16.3003,-3208.726],\n[-28.65245,28.30959,-3202.68],\n[-14.28186,-8.130426,-3218.347],\n[-16.84527,3.804887,-3211.856],\n[-19.40868,15.7402,-3205.366],\n[-21.97209,27.67551,-3198.875]\n],0,0);\n\npatch([\n[14.28186,-8.130426,-3218.347],\n[16.84527,3.804887,-3211.856],\n[19.40868,15.7402,-3205.366],\n[21.97209,27.67551,-3198.875],\n[18.62409,-7.71828,-3220.82],\n[21.96688,4.291009,-3214.773],\n[25.30966,16.3003,-3208.726],\n[28.65245,28.30959,-3202.68],\n[22.22991,-7.125486,-3224.376],\n[26.2199,4.990201,-3218.968],\n[30.20988,17.10589,-3213.56],\n[34.19987,29.22158,-3208.152],\n[24.7369,-6.411627,-3228.659],\n[29.17686,5.832189,-3224.02],\n[33.61682,18.076,-3219.381],\n[38.05677,30.31982,-3214.741]\n],0,0);\n\npatch([\n[-14.28186,-8.130426,-3218.347],\n[-16.84527,3.804887,-3211.856],\n[-19.40868,15.7402,-3205.366],\n[-21.97209,27.67551,-3198.875],\n[-9.939624,-8.542573,-3215.874],\n[-11.72366,3.318766,-3208.94],\n[-13.50769,15.1801,-3202.005],\n[-15.29173,27.04144,-3195.071],\n[-5.013979,-8.75955,-3214.572],\n[-5.913924,3.062844,-3207.404],\n[-6.813869,14.88524,-3200.236],\n[-7.713814,26.70763,-3193.068],\n[-2.378407e-14,-8.75955,-3214.572],\n[-2.805301e-14,3.062844,-3207.404],\n[-3.232194e-14,14.88524,-3200.236],\n[-3.659088e-14,26.70763,-3193.068]\n],0,0);\n\npatch([\n[-2.378407e-14,-8.75955,-3214.572],\n[-2.805301e-14,3.062844,-3207.404],\n[-3.232194e-14,14.88524,-3200.236],\n[-3.659088e-14,26.70763,-3193.068],\n[5.013979,-8.75955,-3214.572],\n[5.913924,3.062844,-3207.404],\n[6.813869,14.88524,-3200.236],\n[7.713814,26.70763,-3193.068],\n[9.939624,-8.542573,-3215.874],\n[11.72366,3.318766,-3208.94],\n[13.50769,15.1801,-3202.005],\n[15.29173,27.04144,-3195.071],\n[14.28186,-8.130426,-3218.347],\n[16.84527,3.804887,-3211.856],\n[19.40868,15.7402,-3205.366],\n[21.97209,27.67551,-3198.875]\n],0,0);\n\nmaterial(\n[1,1,1,0.5],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\npatch([\n[1.219696e-14,41.08866,-3279.772],\n[1.321337e-14,50.72116,-3281.879],\n[1.422979e-14,60.35367,-3283.986],\n[1.52462e-14,69.98617,-3286.093],\n[-7.713814,41.08866,-3279.772],\n[-8.356632,50.72116,-3281.879],\n[-8.99945,60.35367,-3283.986],\n[-9.642268,69.98617,-3286.093],\n[-15.29173,40.75485,-3277.769],\n[-16.56604,50.35953,-3279.709],\n[-17.84035,59.96422,-3281.65],\n[-19.11466,69.56891,-3283.59],\n[-21.97209,40.12078,-3273.965],\n[-23.8031,49.67262,-3275.588],\n[-25.6341,59.22447,-3277.211],\n[-27.46511,68.77632,-3278.834]\n],0,1);\n\npatch([\n[21.97209,40.12078,-3273.965],\n[23.8031,49.67262,-3275.588],\n[25.6341,59.22447,-3277.211],\n[27.46511,68.77632,-3278.834],\n[15.29173,40.75485,-3277.769],\n[16.56604,50.35953,-3279.709],\n[17.84035,59.96422,-3281.65],\n[19.11466,69.56891,-3283.59],\n[7.713814,41.08866,-3279.772],\n[8.356632,50.72116,-3281.879],\n[8.99945,60.35367,-3283.986],\n[9.642268,69.98617,-3286.093],\n[1.219696e-14,41.08866,-3279.772],\n[1.321337e-14,50.72116,-3281.879],\n[1.422979e-14,60.35367,-3283.986],\n[1.52462e-14,69.98617,-3286.093]\n],0,1);\n\npatch([\n[-21.97209,40.12078,-3273.965],\n[-23.8031,49.67262,-3275.588],\n[-25.6341,59.22447,-3277.211],\n[-27.46511,68.77632,-3278.834],\n[-28.65245,39.4867,-3270.16],\n[-31.04015,48.98571,-3271.466],\n[-33.42786,58.48472,-3272.773],\n[-35.81556,67.98373,-3274.079],\n[-34.19987,38.57471,-3264.688],\n[-37.04986,47.99772,-3265.538],\n[-39.89984,57.42073,-3266.389],\n[-42.74983,66.84374,-3267.239],\n[-38.05677,37.47647,-3258.099],\n[-41.22817,46.80796,-3258.4],\n[-44.39957,56.13945,-3258.701],\n[-47.57097,65.47094,-3259.002]\n],0,1);\n\npatch([\n[38.05677,37.47647,-3258.099],\n[41.22817,46.80796,-3258.4],\n[44.39957,56.13945,-3258.701],\n[47.57097,65.47094,-3259.002],\n[34.19987,38.57471,-3264.688],\n[37.04986,47.99772,-3265.538],\n[39.89984,57.42073,-3266.389],\n[42.74983,66.84374,-3267.239],\n[28.65245,39.4867,-3270.16],\n[31.04015,48.98571,-3271.466],\n[33.42786,58.48472,-3272.773],\n[35.81556,67.98373,-3274.079],\n[21.97209,40.12078,-3273.965],\n[23.8031,49.67262,-3275.588],\n[25.6341,59.22447,-3277.211],\n[27.46511,68.77632,-3278.834]\n],0,1);\n\npatch([\n[-38.05677,37.47647,-3258.099],\n[-41.22817,46.80796,-3258.4],\n[-44.39957,56.13945,-3258.701],\n[-47.57097,65.47094,-3259.002],\n[-41.91368,36.37823,-3251.509],\n[-45.40649,45.61819,-3251.261],\n[-48.89929,54.85816,-3251.013],\n[-52.3921,64.09813,-3250.765],\n[-43.94418,35.13242,-3244.035],\n[-47.60619,44.26858,-3243.164],\n[-51.26821,53.40473,-3242.293],\n[-54.93022,62.54088,-3241.422],\n[-43.94418,33.86428,-3236.426],\n[-47.60619,42.89475,-3234.921],\n[-51.26821,51.92523,-3233.416],\n[-54.93022,60.9557,-3231.91]\n],0,1);\n\npatch([\n[43.94418,33.86428,-3236.426],\n[47.60619,42.89475,-3234.921],\n[51.26821,51.92523,-3233.416],\n[54.93022,60.9557,-3231.91],\n[43.94418,35.13242,-3244.035],\n[47.60619,44.26858,-3243.164],\n[51.26821,53.40473,-3242.293],\n[54.93022,62.54088,-3241.422],\n[41.91368,36.37823,-3251.509],\n[45.40649,45.61819,-3251.261],\n[48.89929,54.85816,-3251.013],\n[52.3921,64.09813,-3250.765],\n[38.05677,37.47647,-3258.099],\n[41.22817,46.80796,-3258.4],\n[44.39957,56.13945,-3258.701],\n[47.57097,65.47094,-3259.002]\n],0,1);\n\npatch([\n[-43.94418,33.86428,-3236.426],\n[-47.60619,42.89475,-3234.921],\n[-51.26821,51.92523,-3233.416],\n[-54.93022,60.9557,-3231.91],\n[-43.94418,32.59614,-3228.817],\n[-47.60619,41.52093,-3226.678],\n[-51.26821,50.44573,-3224.539],\n[-54.93022,59.37052,-3222.399],\n[-41.91368,31.35034,-3221.342],\n[-45.40649,40.17131,-3218.58],\n[-48.89929,48.99229,-3215.818],\n[-52.3921,57.81327,-3213.056],\n[-38.05677,30.25209,-3214.753],\n[-41.22817,38.98155,-3211.441],\n[-44.39957,47.71101,-3208.13],\n[-47.57097,56.44046,-3204.819]\n],0,1);\n\npatch([\n[38.05677,30.25209,-3214.753],\n[41.22817,38.98155,-3211.441],\n[44.39957,47.71101,-3208.13],\n[47.57097,56.44046,-3204.819],\n[41.91368,31.35034,-3221.342],\n[45.40649,40.17131,-3218.58],\n[48.89929,48.99229,-3215.818],\n[52.3921,57.81327,-3213.056],\n[43.94418,32.59614,-3228.817],\n[47.60619,41.52093,-3226.678],\n[51.26821,50.44573,-3224.539],\n[54.93022,59.37052,-3222.399],\n[43.94418,33.86428,-3236.426],\n[47.60619,42.89475,-3234.921],\n[51.26821,51.92523,-3233.416],\n[54.93022,60.9557,-3231.91]\n],0,1);\n\npatch([\n[-38.05677,30.25209,-3214.753],\n[-41.22817,38.98155,-3211.441],\n[-44.39957,47.71101,-3208.13],\n[-47.57097,56.44046,-3204.819],\n[-34.19987,29.15385,-3208.163],\n[-37.04986,37.79178,-3204.303],\n[-39.89984,46.42972,-3200.443],\n[-42.74983,55.06766,-3196.582],\n[-28.65245,28.24186,-3202.691],\n[-31.04015,36.8038,-3198.375],\n[-33.42786,45.36573,-3194.059],\n[-35.81556,53.92767,-3189.742],\n[-21.97209,27.60779,-3198.887],\n[-23.8031,36.11688,-3194.253],\n[-25.6341,44.62598,-3189.62],\n[-27.46511,53.13508,-3184.987]\n],0,1);\n\npatch([\n[21.97209,27.60779,-3198.887],\n[23.8031,36.11688,-3194.253],\n[25.6341,44.62598,-3189.62],\n[27.46511,53.13508,-3184.987],\n[28.65245,28.24186,-3202.691],\n[31.04015,36.8038,-3198.375],\n[33.42786,45.36573,-3194.059],\n[35.81556,53.92767,-3189.742],\n[34.19987,29.15385,-3208.163],\n[37.04986,37.79178,-3204.303],\n[39.89984,46.42972,-3200.443],\n[42.74983,55.06766,-3196.582],\n[38.05677,30.25209,-3214.753],\n[41.22817,38.98155,-3211.441],\n[44.39957,47.71101,-3208.13],\n[47.57097,56.44046,-3204.819]\n],0,1);\n\npatch([\n[-21.97209,27.60779,-3198.887],\n[-23.8031,36.11688,-3194.253],\n[-25.6341,44.62598,-3189.62],\n[-27.46511,53.13508,-3184.987],\n[-15.29173,26.97371,-3195.082],\n[-16.56604,35.42997,-3190.132],\n[-17.84035,43.88623,-3185.182],\n[-19.11466,52.34249,-3180.231],\n[-7.713814,26.6399,-3193.079],\n[-8.356632,35.06834,-3187.962],\n[-8.99945,43.49679,-3182.845],\n[-9.642268,51.92523,-3177.728],\n[-3.659088e-14,26.6399,-3193.079],\n[-3.964012e-14,35.06834,-3187.962],\n[-4.268936e-14,43.49679,-3182.845],\n[-4.57386e-14,51.92523,-3177.728]\n],0,1);\n\npatch([\n[-3.659088e-14,26.6399,-3193.079],\n[-3.964012e-14,35.06834,-3187.962],\n[-4.268936e-14,43.49679,-3182.845],\n[-4.57386e-14,51.92523,-3177.728],\n[7.713814,26.6399,-3193.079],\n[8.356632,35.06834,-3187.962],\n[8.99945,43.49679,-3182.845],\n[9.642268,51.92523,-3177.728],\n[15.29173,26.97371,-3195.082],\n[16.56604,35.42997,-3190.132],\n[17.84035,43.88623,-3185.182],\n[19.11466,52.34249,-3180.231],\n[21.97209,27.60779,-3198.887],\n[23.8031,36.11688,-3194.253],\n[25.6341,44.62598,-3189.62],\n[27.46511,53.13508,-3184.987]\n],0,1);\n\nmaterial(\n[0,0,0,1],\n[0,0,0,1],\n[0,0,0,1],\n1,\n0,\n0.04);\n\ncylinder([-68.66278,-74.50139,-3254.487],0.25,137.3256,0,2,\n[1.570796,0],true);\n\nsphere([-68.66278,-74.50139,-3254.487],0.25,0,2,\n[1.570796,3.141593]);\n\nsphere([68.66278,-74.50139,-3254.487],0.25,0,2,\n[1.570796,0]);\n\ncylinder([0,-74.50139,-3254.487],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-74.50139,-3254.487],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-70.47429,-3253.815],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-66.44719,-3253.144],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-66.44719,-3253.144],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-62.42008,-3252.473],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-58.39298,-3251.802],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-58.39298,-3251.802],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-54.36588,-3251.131],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-50.33878,-3250.46],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-50.33878,-3250.46],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-46.31167,-3249.788],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-42.28457,-3249.117],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-42.28457,-3249.117],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-38.25747,-3248.446],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-34.23036,-3247.775],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-34.23036,-3247.775],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-30.20326,-3247.104],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-26.17616,-3246.432],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-26.17616,-3246.432],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-22.14906,-3245.761],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-18.12195,-3245.09],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-18.12195,-3245.09],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-14.09485,-3244.419],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-10.06775,-3243.748],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-10.06775,-3243.748],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,-6.040646,-3243.077],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,-2.013543,-3242.405],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,-2.013543,-3242.405],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,2.01356,-3241.734],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,6.040662,-3241.063],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,6.040662,-3241.063],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,10.06777,-3240.392],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,14.09487,-3239.721],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,14.09487,-3239.721],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,18.12197,-3239.049],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,22.14907,-3238.378],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,22.14907,-3238.378],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,26.17618,-3237.707],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,30.20328,-3237.036],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,30.20328,-3237.036],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,34.23038,-3236.365],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,38.25748,-3235.694],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,38.25748,-3235.694],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,42.28459,-3235.022],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,46.31169,-3234.351],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,46.31169,-3234.351],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,50.33879,-3233.68],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,54.36589,-3233.009],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,54.36589,-3233.009],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,58.393,-3232.338],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,62.4201,-3231.666],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,62.4201,-3231.666],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,66.4472,-3230.995],0.25,0,2,\n[1.405648,1.570796]);\n\ncylinder([0,70.47431,-3230.324],0.25,4.082652,0,2,\n[1.405648,1.570796],true);\n\nsphere([0,70.47431,-3230.324],0.25,0,2,\n[1.735945,-1.570796]);\n\nsphere([0,74.50141,-3229.653],0.25,0,2,\n[1.405648,1.570796]);\n\nmaterial(\n[0,0,1,0.5],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\npatch([\n[7.470638e-15,-3.702485,-3269.974],\n[7.6231e-15,-2.25761,-3270.29],\n[7.775562e-15,-0.8127342,-3270.606],\n[7.928024e-15,0.6321415,-3270.922],\n[-4.724711,-3.702485,-3269.974],\n[-4.821134,-2.25761,-3270.29],\n[-4.917557,-0.8127342,-3270.606],\n[-5.013979,0.6321415,-3270.922],\n[-9.366184,-3.906945,-3268.747],\n[-9.557331,-2.466242,-3269.038],\n[-9.748477,-1.025539,-3269.329],\n[-9.939624,0.415164,-3269.62],\n[-13.4579,-4.295314,-3266.417],\n[-13.73256,-2.862537,-3266.66],\n[-14.00721,-1.42976,-3266.904],\n[-14.28186,0.003017435,-3267.147]\n],0,3);\n\npatch([\n[13.4579,-4.295314,-3266.417],\n[13.73256,-2.862537,-3266.66],\n[14.00721,-1.42976,-3266.904],\n[14.28186,0.003017435,-3267.147],\n[9.366184,-3.906945,-3268.747],\n[9.557331,-2.466242,-3269.038],\n[9.748477,-1.025539,-3269.329],\n[9.939624,0.415164,-3269.62],\n[4.724711,-3.702485,-3269.974],\n[4.821134,-2.25761,-3270.29],\n[4.917557,-0.8127342,-3270.606],\n[5.013979,0.6321415,-3270.922],\n[7.470638e-15,-3.702485,-3269.974],\n[7.6231e-15,-2.25761,-3270.29],\n[7.775562e-15,-0.8127342,-3270.606],\n[7.928024e-15,0.6321415,-3270.922]\n],0,3);\n\npatch([\n[-13.4579,-4.295314,-3266.417],\n[-13.73256,-2.862537,-3266.66],\n[-14.00721,-1.42976,-3266.904],\n[-14.28186,0.003017435,-3267.147],\n[-17.54962,-4.683683,-3264.087],\n[-17.90778,-3.258832,-3264.283],\n[-18.26594,-1.83398,-3264.479],\n[-18.62409,-0.4091291,-3264.674],\n[-20.94742,-5.242277,-3260.735],\n[-21.37492,-3.828825,-3260.863],\n[-21.80241,-2.415374,-3260.99],\n[-22.22991,-1.001923,-3261.118],\n[-23.30977,-5.914951,-3256.699],\n[-23.78548,-4.515228,-3256.744],\n[-24.26119,-3.115505,-3256.789],\n[-24.7369,-1.715781,-3256.835]\n],0,3);\n\npatch([\n[23.30977,-5.914951,-3256.699],\n[23.78548,-4.515228,-3256.744],\n[24.26119,-3.115505,-3256.789],\n[24.7369,-1.715781,-3256.835],\n[20.94742,-5.242277,-3260.735],\n[21.37492,-3.828825,-3260.863],\n[21.80241,-2.415374,-3260.99],\n[22.22991,-1.001923,-3261.118],\n[17.54962,-4.683683,-3264.087],\n[17.90778,-3.258832,-3264.283],\n[18.26594,-1.83398,-3264.479],\n[18.62409,-0.4091291,-3264.674],\n[13.4579,-4.295314,-3266.417],\n[13.73256,-2.862537,-3266.66],\n[14.00721,-1.42976,-3266.904],\n[14.28186,0.003017435,-3267.147]\n],0,3);\n\npatch([\n[7.92802351293e-15,0.632141481964,-3270.92210702],\n[5.28534900862e-15,-0.93314045743,-3261.53041539],\n[2.64267450431e-15,-2.49842239682,-3252.13872375],\n[0,-4.06370433622,-3242.74703211],\n[-5.01397922523,0.632141481964,-3270.92210702],\n[-3.34265281682,-0.93314045743,-3261.53041539],\n[-1.67132640841,-2.49842239682,-3252.13872375],\n[0,-4.06370433622,-3242.74703211],\n[-9.93962411235,0.415163988081,-3269.62024206],\n[-6.6264160749,-1.07779212002,-3260.66250541],\n[-3.31320803745,-2.57074822812,-3251.70476876],\n[0,-4.06370433622,-3242.74703211],\n[-14.2818574954,0.00301743458218,-3267.14736274],\n[-9.5212383303,-1.35255648902,-3259.0139192],\n[-4.76061916515,-2.70813041262,-3250.88047566],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[14.2818574954,0.00301743458218,-3267.14736274],\n[9.5212383303,-1.35255648902,-3259.0139192],\n[4.76061916515,-2.70813041262,-3250.88047566],\n[0,-4.06370433622,-3242.74703211],\n[9.93962411235,0.415163988081,-3269.62024206],\n[6.6264160749,-1.07779212002,-3260.66250541],\n[3.31320803745,-2.57074822812,-3251.70476876],\n[0,-4.06370433622,-3242.74703211],\n[5.01397922523,0.632141481964,-3270.92210702],\n[3.34265281682,-0.93314045743,-3261.53041539],\n[1.67132640841,-2.49842239682,-3252.13872375],\n[0,-4.06370433622,-3242.74703211],\n[7.92802351293e-15,0.632141481964,-3270.92210702],\n[5.28534900862e-15,-0.93314045743,-3261.53041539],\n[2.64267450431e-15,-2.49842239682,-3252.13872375],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-14.2818574954,0.00301743458218,-3267.14736274],\n[-9.5212383303,-1.35255648902,-3259.0139192],\n[-4.76061916515,-2.70813041262,-3250.88047566],\n[0,-4.06370433622,-3242.74703211],\n[-18.6240908785,-0.409129118917,-3264.67448342],\n[-12.4160605857,-1.62732085802,-3257.36533298],\n[-6.20803029285,-2.84551259712,-3250.05618255],\n[0,-4.06370433622,-3242.74703211],\n[-22.229913196,-1.0019226563,-3261.11772219],\n[-14.8199421306,-2.02251654961,-3254.99415883],\n[-7.40997106532,-3.04311044291,-3248.87059547],\n[0,-4.06370433622,-3242.74703211],\n[-24.7369028086,-1.71578142713,-3256.83456957],\n[-16.491268539,-2.49842239682,-3252.13872375],\n[-8.24563426952,-3.28106336652,-3247.44287793],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[24.7369028086,-1.71578142713,-3256.83456957],\n[16.491268539,-2.49842239682,-3252.13872375],\n[8.24563426952,-3.28106336652,-3247.44287793],\n[0,-4.06370433622,-3242.74703211],\n[22.229913196,-1.0019226563,-3261.11772219],\n[14.8199421306,-2.02251654961,-3254.99415883],\n[7.40997106532,-3.04311044291,-3248.87059547],\n[0,-4.06370433622,-3242.74703211],\n[18.6240908785,-0.409129118917,-3264.67448342],\n[12.4160605857,-1.62732085802,-3257.36533298],\n[6.20803029285,-2.84551259712,-3250.05618255],\n[0,-4.06370433622,-3242.74703211],\n[14.2818574954,0.00301743458218,-3267.14736274],\n[9.5212383303,-1.35255648902,-3259.0139192],\n[4.76061916515,-2.70813041262,-3250.88047566],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-23.30977,-5.914951,-3256.699],\n[-23.78548,-4.515228,-3256.744],\n[-24.26119,-3.115505,-3256.789],\n[-24.7369,-1.715781,-3256.835],\n[-25.67213,-6.587626,-3252.663],\n[-26.19605,-5.201631,-3252.626],\n[-26.71997,-3.815635,-3252.589],\n[-27.24389,-2.42964,-3252.551],\n[-26.91581,-7.350679,-3248.085],\n[-27.46511,-5.980257,-3247.954],\n[-28.01441,-4.609834,-3247.823],\n[-28.56371,-3.239411,-3247.693],\n[-26.91581,-8.127417,-3243.424],\n[-27.46511,-6.772846,-3243.199],\n[-28.01441,-5.418275,-3242.973],\n[-28.56371,-4.063704,-3242.747]\n],0,3);\n\npatch([\n[26.91581,-8.127417,-3243.424],\n[27.46511,-6.772846,-3243.199],\n[28.01441,-5.418275,-3242.973],\n[28.56371,-4.063704,-3242.747],\n[26.91581,-7.350679,-3248.085],\n[27.46511,-5.980257,-3247.954],\n[28.01441,-4.609834,-3247.823],\n[28.56371,-3.239411,-3247.693],\n[25.67213,-6.587626,-3252.663],\n[26.19605,-5.201631,-3252.626],\n[26.71997,-3.815635,-3252.589],\n[27.24389,-2.42964,-3252.551],\n[23.30977,-5.914951,-3256.699],\n[23.78548,-4.515228,-3256.744],\n[24.26119,-3.115505,-3256.789],\n[24.7369,-1.715781,-3256.835]\n],0,3);\n\npatch([\n[-24.7369028086,-1.71578142713,-3256.83456957],\n[-16.491268539,-2.49842239682,-3252.13872375],\n[-8.24563426952,-3.28106336652,-3247.44287793],\n[0,-4.06370433622,-3242.74703211],\n[-27.2438924212,-2.42964019795,-3252.55141694],\n[-18.1625949475,-2.97432824404,-3249.28328867],\n[-9.08129747373,-3.51901629013,-3246.01516039],\n[0,-4.06370433622,-3242.74703211],\n[-28.5637149909,-3.23941122922,-3247.69279076],\n[-19.0424766606,-3.51417559822,-3246.04420454],\n[-9.5212383303,-3.78893996722,-3244.39561833],\n[0,-4.06370433622,-3242.74703211],\n[-28.5637149909,-4.06370433622,-3242.74703211],\n[-19.0424766606,-4.06370433622,-3242.74703211],\n[-9.5212383303,-4.06370433622,-3242.74703211],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[28.5637149909,-4.06370433622,-3242.74703211],\n[19.0424766606,-4.06370433622,-3242.74703211],\n[9.5212383303,-4.06370433622,-3242.74703211],\n[0,-4.06370433622,-3242.74703211],\n[28.5637149909,-3.23941122922,-3247.69279076],\n[19.0424766606,-3.51417559822,-3246.04420454],\n[9.5212383303,-3.78893996722,-3244.39561833],\n[0,-4.06370433622,-3242.74703211],\n[27.2438924212,-2.42964019795,-3252.55141694],\n[18.1625949475,-2.97432824404,-3249.28328867],\n[9.08129747373,-3.51901629013,-3246.01516039],\n[0,-4.06370433622,-3242.74703211],\n[24.7369028086,-1.71578142713,-3256.83456957],\n[16.491268539,-2.49842239682,-3252.13872375],\n[8.24563426952,-3.28106336652,-3247.44287793],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-28.5637149909,-4.06370433622,-3242.74703211],\n[-19.0424766606,-4.06370433622,-3242.74703211],\n[-9.5212383303,-4.06370433622,-3242.74703211],\n[0,-4.06370433622,-3242.74703211],\n[-28.5637149909,-4.88799744322,-3237.80127347],\n[-19.0424766606,-4.61323307422,-3239.44985969],\n[-9.5212383303,-4.33846870522,-3241.0984459],\n[0,-4.06370433622,-3242.74703211],\n[-27.2438924212,-5.69776847448,-3232.94264729],\n[-18.1625949475,-5.1530804284,-3236.21077556],\n[-9.08129747373,-4.60839238231,-3239.47890384],\n[0,-4.06370433622,-3242.74703211],\n[-24.7369028086,-6.41162724531,-3228.65949466],\n[-16.491268539,-5.62898627561,-3233.35534048],\n[-8.24563426952,-4.84634530592,-3238.0511863],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[24.7369028086,-6.41162724531,-3228.65949466],\n[16.491268539,-5.62898627561,-3233.35534048],\n[8.24563426952,-4.84634530592,-3238.0511863],\n[0,-4.06370433622,-3242.74703211],\n[27.2438924212,-5.69776847448,-3232.94264729],\n[18.1625949475,-5.1530804284,-3236.21077556],\n[9.08129747373,-4.60839238231,-3239.47890384],\n[0,-4.06370433622,-3242.74703211],\n[28.5637149909,-4.88799744322,-3237.80127347],\n[19.0424766606,-4.61323307422,-3239.44985969],\n[9.5212383303,-4.33846870522,-3241.0984459],\n[0,-4.06370433622,-3242.74703211],\n[28.5637149909,-4.06370433622,-3242.74703211],\n[19.0424766606,-4.06370433622,-3242.74703211],\n[9.5212383303,-4.06370433622,-3242.74703211],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-26.91581,-8.127417,-3243.424],\n[-27.46511,-6.772846,-3243.199],\n[-28.01441,-5.418275,-3242.973],\n[-28.56371,-4.063704,-3242.747],\n[-26.91581,-8.904155,-3238.764],\n[-27.46511,-7.565436,-3238.443],\n[-28.01441,-6.226717,-3238.122],\n[-28.56371,-4.887997,-3237.801],\n[-25.67213,-9.667208,-3234.186],\n[-26.19605,-8.344062,-3233.771],\n[-26.71997,-7.020915,-3233.357],\n[-27.24389,-5.697768,-3232.943],\n[-23.30977,-10.33988,-3230.15],\n[-23.78548,-9.030464,-3229.653],\n[-24.26119,-7.721046,-3229.156],\n[-24.7369,-6.411627,-3228.659]\n],0,3);\n\npatch([\n[23.30977,-10.33988,-3230.15],\n[23.78548,-9.030464,-3229.653],\n[24.26119,-7.721046,-3229.156],\n[24.7369,-6.411627,-3228.659],\n[25.67213,-9.667208,-3234.186],\n[26.19605,-8.344062,-3233.771],\n[26.71997,-7.020915,-3233.357],\n[27.24389,-5.697768,-3232.943],\n[26.91581,-8.904155,-3238.764],\n[27.46511,-7.565436,-3238.443],\n[28.01441,-6.226717,-3238.122],\n[28.56371,-4.887997,-3237.801],\n[26.91581,-8.127417,-3243.424],\n[27.46511,-6.772846,-3243.199],\n[28.01441,-5.418275,-3242.973],\n[28.56371,-4.063704,-3242.747]\n],0,3);\n\npatch([\n[-24.7369028086,-6.41162724531,-3228.65949466],\n[-16.491268539,-5.62898627561,-3233.35534048],\n[-8.24563426952,-4.84634530592,-3238.0511863],\n[0,-4.06370433622,-3242.74703211],\n[-22.229913196,-7.12548601613,-3224.37634204],\n[-14.8199421306,-6.10489212283,-3230.4999054],\n[-7.40997106532,-5.08429822952,-3236.62346875],\n[0,-4.06370433622,-3242.74703211],\n[-18.6240908785,-7.71827955352,-3220.81958081],\n[-12.4160605857,-6.50008781442,-3228.12873125],\n[-6.20803029285,-5.28189607532,-3235.43788168],\n[0,-4.06370433622,-3242.74703211],\n[-14.2818574954,-8.13042610702,-3218.34670149],\n[-9.5212383303,-6.77485218342,-3226.48014503],\n[-4.76061916515,-5.41927825982,-3234.61358857],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[14.2818574954,-8.13042610702,-3218.34670149],\n[9.5212383303,-6.77485218342,-3226.48014503],\n[4.76061916515,-5.41927825982,-3234.61358857],\n[0,-4.06370433622,-3242.74703211],\n[18.6240908785,-7.71827955352,-3220.81958081],\n[12.4160605857,-6.50008781442,-3228.12873125],\n[6.20803029285,-5.28189607532,-3235.43788168],\n[0,-4.06370433622,-3242.74703211],\n[22.229913196,-7.12548601613,-3224.37634204],\n[14.8199421306,-6.10489212283,-3230.4999054],\n[7.40997106532,-5.08429822952,-3236.62346875],\n[0,-4.06370433622,-3242.74703211],\n[24.7369028086,-6.41162724531,-3228.65949466],\n[16.491268539,-5.62898627561,-3233.35534048],\n[8.24563426952,-4.84634530592,-3238.0511863],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-2.37840705388e-14,-8.7595501544,-3214.57195721],\n[-1.58560470259e-14,-7.19426821501,-3223.96364884],\n[-7.92802351293e-15,-5.62898627561,-3233.35534048],\n[0,-4.06370433622,-3242.74703211],\n[5.01397922523,-8.7595501544,-3214.57195721],\n[3.34265281682,-7.19426821501,-3223.96364884],\n[1.67132640841,-5.62898627561,-3233.35534048],\n[0,-4.06370433622,-3242.74703211],\n[9.93962411235,-8.54257266052,-3215.87382217],\n[6.6264160749,-7.04961655242,-3224.83155882],\n[3.31320803745,-5.55666044432,-3233.78929547],\n[0,-4.06370433622,-3242.74703211],\n[14.2818574954,-8.13042610702,-3218.34670149],\n[9.5212383303,-6.77485218342,-3226.48014503],\n[4.76061916515,-5.41927825982,-3234.61358857],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-14.2818574954,-8.13042610702,-3218.34670149],\n[-9.5212383303,-6.77485218342,-3226.48014503],\n[-4.76061916515,-5.41927825982,-3234.61358857],\n[0,-4.06370433622,-3242.74703211],\n[-9.93962411235,-8.54257266052,-3215.87382217],\n[-6.6264160749,-7.04961655242,-3224.83155882],\n[-3.31320803745,-5.55666044432,-3233.78929547],\n[0,-4.06370433622,-3242.74703211],\n[-5.01397922523,-8.7595501544,-3214.57195721],\n[-3.34265281682,-7.19426821501,-3223.96364884],\n[-1.67132640841,-5.62898627561,-3233.35534048],\n[0,-4.06370433622,-3242.74703211],\n[-2.37840705388e-14,-8.7595501544,-3214.57195721],\n[-1.58560470259e-14,-7.19426821501,-3223.96364884],\n[-7.92802351293e-15,-5.62898627561,-3233.35534048],\n[0,-4.06370433622,-3242.74703211]\n],0,3);\n\npatch([\n[-23.30977,-10.33988,-3230.15],\n[-23.78548,-9.030464,-3229.653],\n[-24.26119,-7.721046,-3229.156],\n[-24.7369,-6.411627,-3228.659],\n[-20.94742,-11.01256,-3226.113],\n[-21.37492,-9.716867,-3225.534],\n[-21.80241,-8.421177,-3224.955],\n[-22.22991,-7.125486,-3224.376],\n[-17.54962,-11.57115,-3222.762],\n[-17.90778,-10.28686,-3222.114],\n[-18.26594,-9.00257,-3221.467],\n[-18.62409,-7.71828,-3220.82],\n[-13.4579,-11.95952,-3220.432],\n[-13.73256,-10.68316,-3219.737],\n[-14.00721,-9.406791,-3219.042],\n[-14.28186,-8.130426,-3218.347]\n],0,3);\n\npatch([\n[13.4579,-11.95952,-3220.432],\n[13.73256,-10.68316,-3219.737],\n[14.00721,-9.406791,-3219.042],\n[14.28186,-8.130426,-3218.347],\n[17.54962,-11.57115,-3222.762],\n[17.90778,-10.28686,-3222.114],\n[18.26594,-9.00257,-3221.467],\n[18.62409,-7.71828,-3220.82],\n[20.94742,-11.01256,-3226.113],\n[21.37492,-9.716867,-3225.534],\n[21.80241,-8.421177,-3224.955],\n[22.22991,-7.125486,-3224.376],\n[23.30977,-10.33988,-3230.15],\n[23.78548,-9.030464,-3229.653],\n[24.26119,-7.721046,-3229.156],\n[24.7369,-6.411627,-3228.659]\n],0,3);\n\npatch([\n[-13.4579,-11.95952,-3220.432],\n[-13.73256,-10.68316,-3219.737],\n[-14.00721,-9.406791,-3219.042],\n[-14.28186,-8.130426,-3218.347],\n[-9.366184,-12.34789,-3218.101],\n[-9.557331,-11.07945,-3217.359],\n[-9.748477,-9.811011,-3216.616],\n[-9.939624,-8.542573,-3215.874],\n[-4.724711,-12.55235,-3216.875],\n[-4.821134,-11.28808,-3216.107],\n[-4.917557,-10.02382,-3215.34],\n[-5.013979,-8.75955,-3214.572],\n[-2.241191e-14,-12.55235,-3216.875],\n[-2.28693e-14,-11.28808,-3216.107],\n[-2.332668e-14,-10.02382,-3215.34],\n[-2.378407e-14,-8.75955,-3214.572]\n],0,3);\n\npatch([\n[-2.241191e-14,-12.55235,-3216.875],\n[-2.28693e-14,-11.28808,-3216.107],\n[-2.332668e-14,-10.02382,-3215.34],\n[-2.378407e-14,-8.75955,-3214.572],\n[4.724711,-12.55235,-3216.875],\n[4.821134,-11.28808,-3216.107],\n[4.917557,-10.02382,-3215.34],\n[5.013979,-8.75955,-3214.572],\n[9.366184,-12.34789,-3218.101],\n[9.557331,-11.07945,-3217.359],\n[9.748477,-9.811011,-3216.616],\n[9.939624,-8.542573,-3215.874],\n[13.4579,-11.95952,-3220.432],\n[13.73256,-10.68316,-3219.737],\n[14.00721,-9.406791,-3219.042],\n[14.28186,-8.130426,-3218.347]\n],0,3);\n\ntube([[28.56371,-4.063704,-3242.747],\n[28.56371,-1.47026,-3258.308],\n[15.7753,0.6321415,-3270.922],\n[0,0.6321415,-3270.922]\n],0.25,0,2,true);\n\ntube([[0,0.6321415,-3270.922],\n[-15.7753,0.6321415,-3270.922],\n[-28.56371,-1.47026,-3258.308],\n[-28.56371,-4.063704,-3242.747]\n],0.25,0,2,true);\n\ntube([[-28.56371,-4.063704,-3242.747],\n[-28.56371,-6.657148,-3227.186],\n[-15.7753,-8.75955,-3214.572],\n[0,-8.75955,-3214.572]\n],0.25,0,2,true);\n\ntube([[0,-8.75955,-3214.572],\n[15.7753,-8.75955,-3214.572],\n[28.56371,-6.657148,-3227.186],\n[28.56371,-4.063704,-3242.747]\n],0.25,0,2,true);\n\ntube([[26.91581,-8.127417,-3243.424],\n[26.91581,-5.683595,-3258.087],\n[14.86519,-3.702485,-3269.974],\n[0,-3.702485,-3269.974]\n],0.25,0,2,true);\n\ntube([[0,-3.702485,-3269.974],\n[-14.86519,-3.702485,-3269.974],\n[-26.91581,-5.683595,-3258.087],\n[-26.91581,-8.127417,-3243.424]\n],0.25,0,2,true);\n\ntube([[-26.91581,-8.127417,-3243.424],\n[-26.91581,-10.57124,-3228.761],\n[-14.86519,-12.55235,-3216.875],\n[0,-12.55235,-3216.875]\n],0.25,0,2,true);\n\ntube([[0,-12.55235,-3216.875],\n[14.86519,-12.55235,-3216.875],\n[26.91581,-10.57124,-3228.761],\n[26.91581,-8.127417,-3243.424]\n],0.25,0,2,true);\n\nmaterial(\n[0,0,0,1],\n[1,0,0,1],\n[0,0,0,1],\n1,\n0,\n0.04);\n\ncylinder([27.46511,-14.4174,-3244.473],0.25,60.91278,0,4,\n[1.735945,-1.570796],true);\n\nsphere([27.46511,-14.4174,-3244.473],0.25,0,4,\n[1.405648,1.570796]);\n\nsphere([27.46511,-74.50139,-3254.487],0.25,0,4,\n[1.735945,-1.570796]);\n\nmaterial(\n[1,0,0,1],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\npatch([\n[29.4747295114,-14.4173990641,-3244.4726479],\n[29.4747295114,-14.5998625237,-3243.37786714],\n[28.5749924635,-14.7477783832,-3242.49037199],\n[27.4651105682,-14.7477783832,-3242.49037199],\n[29.4747295114,-14.2349356045,-3245.56742866],\n[28.7348082479,-14.4173990641,-3244.4726479],\n[27.4651105682,-14.6261360768,-3243.22022583],\n[26.3552286728,-14.7477783832,-3242.49037199],\n[28.5749924635,-14.087019745,-3246.45492382],\n[27.4651105682,-14.2086620514,-3245.72506998],\n[26.1954128885,-14.4173990641,-3244.4726479],\n[25.4554916249,-14.5998625237,-3243.37786714],\n[27.4651105682,-14.087019745,-3246.45492382],\n[26.3552286728,-14.087019745,-3246.45492382],\n[25.4554916249,-14.2349356045,-3245.56742866],\n[25.4554916249,-14.4173990641,-3244.4726479]\n],0,5);\n\npatch([\n[27.46511,-14.08702,-3246.455],\n[27.46511,-11.73116,-3245.383],\n[27.46511,-9.375303,-3244.311],\n[27.46511,-7.019445,-3243.24],\n[26.35523,-14.08702,-3246.455],\n[26.72519,-11.73116,-3245.383],\n[27.09515,-9.375303,-3244.311],\n[27.46511,-7.019445,-3243.24],\n[25.45549,-14.23494,-3245.567],\n[26.12536,-11.82977,-3244.792],\n[26.79524,-9.424608,-3244.016],\n[27.46511,-7.019445,-3243.24],\n[25.45549,-14.4174,-3244.473],\n[26.12536,-11.95141,-3244.062],\n[26.79524,-9.485429,-3243.651],\n[27.46511,-7.019445,-3243.24]\n],0,5);\n\npatch([\n[29.47473,-14.4174,-3244.473],\n[28.80486,-11.95141,-3244.062],\n[28.13498,-9.485429,-3243.651],\n[27.46511,-7.019445,-3243.24],\n[29.47473,-14.23494,-3245.567],\n[28.80486,-11.82977,-3244.792],\n[28.13498,-9.424608,-3244.016],\n[27.46511,-7.019445,-3243.24],\n[28.57499,-14.08702,-3246.455],\n[28.20503,-11.73116,-3245.383],\n[27.83507,-9.375303,-3244.311],\n[27.46511,-7.019445,-3243.24],\n[27.46511,-14.08702,-3246.455],\n[27.46511,-11.73116,-3245.383],\n[27.46511,-9.375303,-3244.311],\n[27.46511,-7.019445,-3243.24]\n],0,5);\n\npatch([\n[27.46511,-14.74778,-3242.49],\n[27.46511,-12.17167,-3242.74],\n[27.46511,-9.595556,-3242.99],\n[27.46511,-7.019445,-3243.24],\n[28.57499,-14.74778,-3242.49],\n[28.20503,-12.17167,-3242.74],\n[27.83507,-9.595556,-3242.99],\n[27.46511,-7.019445,-3243.24],\n[29.47473,-14.59986,-3243.378],\n[28.80486,-12.07306,-3243.332],\n[28.13498,-9.546251,-3243.286],\n[27.46511,-7.019445,-3243.24],\n[29.47473,-14.4174,-3244.473],\n[28.80486,-11.95141,-3244.062],\n[28.13498,-9.485429,-3243.651],\n[27.46511,-7.019445,-3243.24]\n],0,5);\n\npatch([\n[25.45549,-14.4174,-3244.473],\n[26.12536,-11.95141,-3244.062],\n[26.79524,-9.485429,-3243.651],\n[27.46511,-7.019445,-3243.24],\n[25.45549,-14.59986,-3243.378],\n[26.12536,-12.07306,-3243.332],\n[26.79524,-9.546251,-3243.286],\n[27.46511,-7.019445,-3243.24],\n[26.35523,-14.74778,-3242.49],\n[26.72519,-12.17167,-3242.74],\n[27.09515,-9.595556,-3242.99],\n[27.46511,-7.019445,-3243.24],\n[27.46511,-14.74778,-3242.49],\n[27.46511,-12.17167,-3242.74],\n[27.46511,-9.595556,-3242.99],\n[27.46511,-7.019445,-3243.24]\n],0,5);\n\npatch([\n[36.3781772416,-38.3418018417,-3248.84260121],\n[36.5370332416,-38.4532618417,-3248.84260121],\n[36.6958892416,-38.5647218417,-3248.84260121],\n[36.8547452416,-38.6761818417,-3248.84260121],\n[35.9969372416,-38.4136818417,-3248.84260121],\n[36.2392959083,-38.6614258417,-3248.84260121],\n[36.556654575,-38.8456258417,-3248.84260121],\n[36.8547452416,-38.9980578417,-3248.84260121],\n[35.8547372416,-38.6996178417,-3248.84260121],\n[36.017582575,-39.0081258417,-3248.84260121],\n[36.3304279083,-39.1895458417,-3248.84260121],\n[36.6047372416,-39.3074298417,-3248.84260121],\n[35.8547372416,-38.9261898417,-3248.84260121],\n[35.8547372416,-39.2121258417,-3248.84260121],\n[36.0797372416,-39.3074298417,-3248.84260121],\n[36.2469332416,-39.3074298417,-3248.84260121]\n],1,4);\n\npatch([\n[31.4547440416,-39.7730658417,-3248.84260121],\n[31.4547440416,-39.8199378417,-3248.84260121],\n[31.5464100416,-39.7688978417,-3248.84260121],\n[31.5031820416,-39.8793018417,-3248.84260121],\n[31.5874261416,-39.8281358417,-3248.84260121],\n[31.6380760416,-39.7647298417,-3248.84260121],\n[31.5859940416,-39.8793018417,-3248.84260121],\n[31.6813076416,-39.8793018417,-3248.84260121],\n[31.7063048416,-39.8089938417,-3248.84260121],\n[31.7297420416,-39.7605618417,-3248.84260121]\n],1,4);\n\npatch([\n[31.5391184416,-42.9324378417,-3248.84260121],\n[31.3802648416,-42.8209778417,-3248.84260121],\n[31.2214112416,-42.7095178417,-3248.84260121],\n[31.0625576416,-42.5980578417,-3248.84260121],\n[31.9672412416,-42.8480622417,-3248.84260121],\n[31.7106452416,-42.6003185083,-3248.84260121],\n[31.3946736416,-42.384865975,-3248.84260121],\n[31.0625576416,-42.2168094417,-3248.84260121],\n[32.0625572416,-42.4902450417,-3248.84260121],\n[31.9222792416,-42.241114375,-3248.84260121],\n[31.6632500416,-42.0565661083,-3248.84260121],\n[31.3719320416,-41.9668098417,-3248.84260121],\n[32.0625572416,-42.3480594417,-3248.84260121],\n[32.0625572416,-42.1089978417,-3248.84260121],\n[31.8844304416,-41.9668098417,-3248.84260121],\n[31.6578704416,-41.9668098417,-3248.84260121]\n],1,4);\n\npatch([\n[36.4500572416,-41.5011858417,-3248.84260121],\n[36.4500572416,-41.4418098417,-3248.84260121],\n[36.3583932416,-41.5173338417,-3248.84260121],\n[36.4016252416,-41.3933658417,-3248.84260121],\n[36.3184192416,-41.4427178417,-3248.84260121],\n[36.2667292416,-41.5334818417,-3248.84260121],\n[36.3313052416,-41.3933658417,-3248.84260121],\n[36.2234972416,-41.3933658417,-3248.84260121],\n[36.2109932416,-41.4543018417,-3248.84260121],\n[36.1750652416,-41.5496298417,-3248.84260121]\n],1,4);\n\npatch([\n[36.3781772416,-38.3418018417,-3248.84260121],\n[36.5370332416,-38.4532618417,-3248.84260121],\n[36.4243851161,-38.2717258109,-3248.84260121],\n[36.6958892416,-38.5647218417,-3248.84260121],\n[36.6331979209,-38.3515580651,-3248.84260121],\n[36.4705929906,-38.2016497802,-3248.84260121],\n[36.8547452416,-38.6761818417,-3248.84260121],\n[36.8547452416,-38.4304635683,-3248.84260121],\n[36.7166280841,-38.2507810393,-3248.84260121],\n[36.5168008651,-38.1315737495,-3248.84260121]\n],1,4);\n\npatch([\n[36.5168008651,-38.1315737495,-3248.84260121],\n[36.4705929906,-38.2016497802,-3248.84260121],\n[36.4243851161,-38.2717258109,-3248.84260121],\n[36.3781772416,-38.3418018417,-3248.84260121],\n[36.310016034,-38.0082158835,-3248.84260121],\n[36.2494044365,-38.0678512029,-3248.84260121],\n[36.1887928391,-38.1274865223,-3248.84260121],\n[36.1281812416,-38.1871218417,-3248.84260121],\n[36.0371490709,-37.9496178417,-3248.84260121],\n[35.9560331278,-38.0287858417,-3248.84260121],\n[35.8749171847,-38.1079538417,-3248.84260121],\n[35.7938012416,-38.1871218417,-3248.84260121],\n[35.7828692416,-37.9496178417,-3248.84260121],\n[35.7787012416,-38.0287858417,-3248.84260121],\n[35.7745332416,-38.1079538417,-3248.84260121],\n[35.7703652416,-38.1871218417,-3248.84260121]\n],1,4);\n\npatch([\n[31.9287686416,-38.7629043417,-3248.84260121],\n[31.9944714392,-38.8115290198,-3248.84260121],\n[32.0601742367,-38.860153698,-3248.84260121],\n[32.1258770343,-38.9087783761,-3248.84260121],\n[31.6156823416,-39.1859538417,-3248.84260121],\n[31.7358821569,-39.1658263418,-3248.84260121],\n[31.8560819721,-39.145698842,-3248.84260121],\n[31.9762817873,-39.1255713421,-3248.84260121],\n[31.4547440416,-39.6418158417,-3248.84260121],\n[31.582740312,-39.5625897157,-3248.84260121],\n[31.7107365823,-39.4833635897,-3248.84260121],\n[31.8387328527,-39.4041374637,-3248.84260121],\n[31.4547440416,-39.7730658417,-3248.84260121],\n[31.5464100416,-39.7688978417,-3248.84260121],\n[31.6380760416,-39.7647298417,-3248.84260121],\n[31.7297420416,-39.7605618417,-3248.84260121]\n],1,4);\n\npatch([\n[32.1258770343,-38.9087783761,-3248.84260121],\n[32.0601742367,-38.860153698,-3248.84260121],\n[31.9944714392,-38.8115290198,-3248.84260121],\n[31.9287686416,-38.7629043417,-3248.84260121],\n[32.5317458472,-38.3205945566,-3248.84260121],\n[32.4351155453,-38.3270146516,-3248.84260121],\n[32.3384852435,-38.3334347466,-3248.84260121],\n[32.2418549416,-38.3398548417,-3248.84260121],\n[33.0262873514,-38.1871218417,-3248.84260121],\n[32.9198879815,-38.1079538417,-3248.84260121],\n[32.8134886116,-38.0287858417,-3248.84260121],\n[32.7070892416,-37.9496178417,-3248.84260121],\n[33.2797412416,-38.1871218417,-3248.84260121],\n[33.2917212416,-38.1079538417,-3248.84260121],\n[33.3037012416,-38.0287858417,-3248.84260121],\n[33.3156812416,-37.9496178417,-3248.84260121]\n],1,4);\n\npatch([\n[31.5391184416,-42.9324378417,-3248.84260121],\n[31.3802648416,-42.8209778417,-3248.84260121],\n[31.4924757685,-43.0031719918,-3248.84260121],\n[31.2214112416,-42.7095178417,-3248.84260121],\n[31.2836130379,-42.9236842833,-3248.84260121],\n[31.4458330954,-43.0739061419,-3248.84260121],\n[31.0625576416,-42.5980578417,-3248.84260121],\n[31.0625576416,-42.8451394592,-3248.84260121],\n[31.1991538998,-43.0254478405,-3248.84260121],\n[31.3991904222,-43.1446402921,-3248.84260121]\n],1,4);\n\npatch([\n[31.3991904222,-43.1446402921,-3248.84260121],\n[31.4458330954,-43.0739061419,-3248.84260121],\n[31.4924757685,-43.0031719918,-3248.84260121],\n[31.5391184416,-42.9324378417,-3248.84260121],\n[31.6039539584,-43.2666493511,-3248.84260121],\n[31.6656761195,-43.2068078346,-3248.84260121],\n[31.7273982806,-43.1469663182,-3248.84260121],\n[31.7891204416,-43.0871248017,-3248.84260121],\n[31.8751914672,-43.3246199217,-3248.84260121],\n[31.9459787253,-43.2454548817,-3248.84260121],\n[32.0167659835,-43.1662898417,-3248.84260121],\n[32.0875532416,-43.0871248017,-3248.84260121],\n[32.1344372416,-43.3246199217,-3248.84260121],\n[32.1386012416,-43.2454548817,-3248.84260121],\n[32.1427652416,-43.1662898417,-3248.84260121],\n[32.1469292416,-43.0871248017,-3248.84260121]\n],1,4);\n\npatch([\n[34.5906812416,-43.3246199217,-3248.84260121],\n[34.6026612416,-43.2454548817,-3248.84260121],\n[34.6146412416,-43.1662898417,-3248.84260121],\n[34.6266212416,-43.0871248017,-3248.84260121],\n[35.8063052416,-43.3246199217,-3248.84260121],\n[35.5917212416,-43.2454548817,-3248.84260121],\n[35.3771372416,-43.1662898417,-3248.84260121],\n[35.1625532416,-43.0871248017,-3248.84260121],\n[36.4500572416,-41.7636858417,-3248.84260121],\n[36.2516172416,-42.0418098417,-3248.84260121],\n[36.0531772416,-42.3199338417,-3248.84260121],\n[35.8547372416,-42.5980578417,-3248.84260121],\n[36.4500572416,-41.5011858417,-3248.84260121],\n[36.3583932416,-41.5173338417,-3248.84260121],\n[36.2667292416,-41.5334818417,-3248.84260121],\n[36.1750652416,-41.5496298417,-3248.84260121]\n],1,4);\n\npatch([\n[34.6375532416,-39.4277418417,-3248.84260121],\n[34.6057812416,-39.2485778417,-3248.84260121],\n[34.5740092416,-39.0694138417,-3248.84260121],\n[34.5422372416,-38.8902498417,-3248.84260121],\n[34.8172412416,-38.7121218417,-3248.84260121],\n[34.7615132416,-38.6959778417,-3248.84260121],\n[34.7057852416,-38.6798338417,-3248.84260121],\n[34.6500572416,-38.6636898417,-3248.84260121],\n[35.2219292416,-38.1871218417,-3248.84260121],\n[35.1662012416,-38.1079538417,-3248.84260121],\n[35.1104732416,-38.0287858417,-3248.84260121],\n[35.0547452416,-37.9496178417,-3248.84260121],\n[35.7703652416,-38.1871218417,-3248.84260121],\n[35.7745332416,-38.1079538417,-3248.84260121],\n[35.7787012416,-38.0287858417,-3248.84260121],\n[35.7828692416,-37.9496178417,-3248.84260121]\n],1,4);\n\npatch([\n[34.5422372416,-38.8902498417,-3248.84260121],\n[34.3359892416,-38.9183738417,-3248.84260121],\n[34.1297412416,-38.9464978417,-3248.84260121],\n[33.9234932416,-38.9746218417,-3248.84260121],\n[34.2688052416,-37.9965018417,-3248.84260121],\n[34.1537012416,-38.2272298417,-3248.84260121],\n[34.0385972416,-38.4579578417,-3248.84260121],\n[33.9234932416,-38.6886858417,-3248.84260121],\n[33.5297372416,-37.9496178417,-3248.84260121],\n[33.6250532416,-38.0287858417,-3248.84260121],\n[33.7203692416,-38.1079538417,-3248.84260121],\n[33.8156852416,-38.1871218417,-3248.84260121],\n[33.3156812416,-37.9496178417,-3248.84260121],\n[33.3037012416,-38.0287858417,-3248.84260121],\n[33.2917212416,-38.1079538417,-3248.84260121],\n[33.2797412416,-38.1871218417,-3248.84260121]\n],1,4);\n\npatch([\n[33.3031772416,-41.7152418417,-3248.84260121],\n[33.3229692416,-41.9381610417,-3248.84260121],\n[33.3427612416,-42.1610802417,-3248.84260121],\n[33.3625532416,-42.3839994417,-3248.84260121],\n[33.1234892416,-42.4308750417,-3248.84260121],\n[33.1198452416,-42.5777498417,-3248.84260121],\n[33.1162012416,-42.7246246417,-3248.84260121],\n[33.1125572416,-42.8714994417,-3248.84260121],\n[32.7781772416,-43.0871248017,-3248.84260121],\n[32.7542212416,-43.1662898417,-3248.84260121],\n[32.7302652416,-43.2454548817,-3248.84260121],\n[32.7063092416,-43.3246199217,-3248.84260121],\n[32.1469292416,-43.0871248017,-3248.84260121],\n[32.1427652416,-43.1662898417,-3248.84260121],\n[32.1386012416,-43.2454548817,-3248.84260121],\n[32.1344372416,-43.3246199217,-3248.84260121]\n],1,4);\n\npatch([\n[33.3625532416,-42.3839994417,-3248.84260121],\n[33.5693252416,-42.3522270417,-3248.84260121],\n[33.7760972416,-42.3204546417,-3248.84260121],\n[33.9828692416,-42.2886822417,-3248.84260121],\n[33.5531852416,-43.0871248017,-3248.84260121],\n[33.6964132416,-42.9834772817,-3248.84260121],\n[33.8396412416,-42.8798297617,-3248.84260121],\n[33.9828692416,-42.7761822417,-3248.84260121],\n[34.1500532416,-43.3246199217,-3248.84260121],\n[34.1698452416,-43.2454548817,-3248.84260121],\n[34.1896372416,-43.1662898417,-3248.84260121],\n[34.2094292416,-43.0871248017,-3248.84260121],\n[34.5906812416,-43.3246199217,-3248.84260121],\n[34.6026612416,-43.2454548817,-3248.84260121],\n[34.6146412416,-43.1662898417,-3248.84260121],\n[34.6266212416,-43.0871248017,-3248.84260121]\n],1,4);\n\npatch([\n[34.6375532416,-39.4277418417,-3248.84260121],\n[34.3276572416,-39.6459738417,-3248.84260121],\n[34.0177612416,-39.8642058417,-3248.84260121],\n[33.7078652416,-40.0824378417,-3248.84260121],\n[34.6057812416,-39.2485778417,-3248.84260121],\n[34.3543959083,-39.335907175,-3248.84260121],\n[34.103010575,-39.4232365083,-3248.84260121],\n[33.8516252416,-39.5105658417,-3248.84260121],\n[34.5740092416,-39.0694138417,-3248.84260121],\n[34.357170575,-39.1253165083,-3248.84260121],\n[34.1403319083,-39.181219175,-3248.84260121],\n[33.9234932416,-39.2371218417,-3248.84260121],\n[34.5422372416,-38.8902498417,-3248.84260121],\n[34.3359892416,-38.9183738417,-3248.84260121],\n[34.1297412416,-38.9464978417,-3248.84260121],\n[33.9234932416,-38.9746218417,-3248.84260121]\n],1,4);\n\npatch([\n[33.3031772416,-41.7152418417,-3248.84260121],\n[33.6089092416,-41.4928498417,-3248.84260121],\n[33.9146412416,-41.2704578417,-3248.84260121],\n[34.2203732416,-41.0480658417,-3248.84260121],\n[33.3229692416,-41.9381610417,-3248.84260121],\n[33.5585599083,-41.9039626417,-3248.84260121],\n[33.794150575,-41.8697642417,-3248.84260121],\n[34.0297412416,-41.8355658417,-3248.84260121],\n[33.3427612416,-42.1610802417,-3248.84260121],\n[33.556130575,-42.1161142417,-3248.84260121],\n[33.7694999083,-42.0711482417,-3248.84260121],\n[33.9828692416,-42.0261822417,-3248.84260121],\n[33.3625532416,-42.3839994417,-3248.84260121],\n[33.5693252416,-42.3522270417,-3248.84260121],\n[33.7760972416,-42.3204546417,-3248.84260121],\n[33.9828692416,-42.2886822417,-3248.84260121]\n],1,4);\n\npatch([\n[34.22037,-41.04807,-3248.843],\n[34.63755,-39.42774,-3248.843],\n[33.70787,-40.08244,-3248.843],\n[33.30318,-41.71524,-3248.843]\n],1,4);\n\ncylinder([0,-6.772846,-3243.199],0.25,27.46511,0,4,\n[1.570796,0],true);\n\nsphere([0,-6.772846,-3243.199],0.25,0,4,\n[1.570796,3.141593]);\n\nsphere([27.46511,-6.772846,-3243.199],0.25,0,4,\n[1.570796,0]);\n\npatch([\n[15.6700524841,1.81835099907,-3243.19855575],\n[15.8169284841,1.70741099907,-3243.19855575],\n[15.9638044841,1.59647099907,-3243.19855575],\n[16.1106804841,1.48553099907,-3243.19855575],\n[15.2997444841,1.74803099907,-3243.19855575],\n[15.5263058174,1.48831099907,-3243.19855575],\n[15.8283911508,1.29213499907,-3243.19855575],\n[16.1106804841,1.12772699907,-3243.19855575],\n[15.1091124841,1.48553099907,-3243.19855575],\n[15.2643231508,1.16504699907,-3243.19855575],\n[15.5705818174,0.971650999074,-3243.19855575],\n[15.8372484841,0.841790999074,-3243.19855575],\n[15.1091124841,1.22303099907,-3243.19855575],\n[15.1091124841,0.937094999074,-3243.19855575],\n[15.3356844841,0.841790999074,-3243.19855575],\n[15.5028684841,0.841790999074,-3243.19855575]\n],2,4);\n\npatch([\n[11.3544300841,0.376154999074,-3243.19855575],\n[11.3544300841,0.329282999074,-3243.19855575],\n[11.4575552841,0.436054999074,-3243.19855575],\n[11.4028692841,0.269918999074,-3243.19855575],\n[11.4868527841,0.320173999074,-3243.19855575],\n[11.5606804841,0.495954999074,-3243.19855575],\n[11.4856800841,0.269918999074,-3243.19855575],\n[11.5809936841,0.269918999074,-3243.19855575],\n[11.5934928841,0.280850999074,-3243.19855575],\n[11.6638056841,0.555854999074,-3243.19855575]\n],2,4);\n\npatch([\n[11.9263056841,-2.87852700093,-3243.19855575],\n[11.9263056841,-3.04414908093,-3243.19855575],\n[12.1726612841,-2.87019420093,-3243.19855575],\n[12.0575556841,-3.17539908093,-3243.19855575],\n[12.2458366841,-3.07032278093,-3243.19855575],\n[12.4190168841,-2.86186140093,-3243.19855575],\n[12.2372484841,-3.17539908093,-3243.19855575],\n[12.3669324841,-3.17539908093,-3243.19855575],\n[12.5934924841,-3.09259140093,-3243.19855575],\n[12.6653724841,-2.85352860093,-3243.19855575]\n],2,4);\n\npatch([\n[15.6700524841,1.81835099907,-3243.19855575],\n[15.8169284841,1.70741099907,-3243.19855575],\n[15.7174364784,1.88364086462,-3243.19855575],\n[15.9638044841,1.59647099907,-3243.19855575],\n[15.9121774227,1.79074450011,-3243.19855575],\n[15.7648204726,1.94893073017,-3243.19855575],\n[16.1106804841,1.48553099907,-3243.19855575],\n[16.1106804841,1.69048454041,-3243.19855575],\n[16.0036642444,1.88144159633,-3243.19855575],\n[15.8122044669,2.01422059572,-3243.19855575]\n],2,4);\n\npatch([\n[15.8122044669,2.01422059572,-3243.19855575],\n[15.7648204726,1.94893073017,-3243.19855575],\n[15.7174364784,1.88364086462,-3243.19855575],\n[15.6700524841,1.81835099907,-3243.19855575],\n[15.6475131742,2.12843542111,-3243.19855575],\n[15.6034662775,2.0610099471,-3243.19855575],\n[15.5594193808,1.99358447309,-3243.19855575],\n[15.5153724841,1.92615899907,-3243.19855575],\n[15.4203402161,2.19960299907,-3243.19855575],\n[15.3879536388,2.12043499907,-3243.19855575],\n[15.3555670614,2.04126699907,-3243.19855575],\n[15.3231804841,1.96209899907,-3243.19855575],\n[15.1450524841,2.19960299907,-3243.19855575],\n[15.1408884841,2.12043499907,-3243.19855575],\n[15.1367244841,2.04126699907,-3243.19855575],\n[15.1325604841,1.96209899907,-3243.19855575]\n],2,4);\n\npatch([\n[14.1919284841,1.55585099907,-3243.19855575],\n[14.0013044841,1.45689099907,-3243.19855575],\n[13.8106804841,1.35793099907,-3243.19855575],\n[13.6200564841,1.25897099907,-3243.19855575],\n[14.3341164841,1.68709499907,-3243.19855575],\n[14.2627644841,1.78657499907,-3243.19855575],\n[14.1914124841,1.88605499907,-3243.19855575],\n[14.1200604841,1.98553499907,-3243.19855575],\n[14.6450604841,1.96209899907,-3243.19855575],\n[14.6528724841,2.04126699907,-3243.19855575],\n[14.6606844841,2.12043499907,-3243.19855575],\n[14.6684964841,2.19960299907,-3243.19855575],\n[15.1325604841,1.96209899907,-3243.19855575],\n[15.1367244841,2.04126699907,-3243.19855575],\n[15.1408884841,2.12043499907,-3243.19855575],\n[15.1450524841,2.19960299907,-3243.19855575]\n],2,4);\n\npatch([\n[13.5356844841,0.602726999074,-3243.19855575],\n[13.5716124841,0.710534999074,-3243.19855575],\n[13.5638084841,0.821474999074,-3243.19855575],\n[13.8935004841,1.29491099907,-3243.19855575],\n[13.7169314841,1.10089999907,-3243.19855575],\n[13.5919324841,1.04022299907,-3243.19855575],\n[14.1919284841,1.55585099907,-3243.19855575],\n[14.0013044841,1.45689099907,-3243.19855575],\n[13.8106804841,1.35793099907,-3243.19855575],\n[13.6200564841,1.25897099907,-3243.19855575]\n],2,4);\n\npatch([\n[11.7356820841,1.58084699907,-3243.19855575],\n[11.5325556841,1.15116299907,-3243.19855575],\n[11.7117232841,1.23918299907,-3243.19855575],\n[11.3544300841,0.435530999074,-3243.19855575],\n[11.5338576841,0.745041999074,-3243.19855575],\n[11.6877644841,0.897518999074,-3243.19855575],\n[11.3544300841,0.376154999074,-3243.19855575],\n[11.4575552841,0.436054999074,-3243.19855575],\n[11.5606804841,0.495954999074,-3243.19855575],\n[11.6638056841,0.555854999074,-3243.19855575]\n],2,4);\n\npatch([\n[12.1419300841,-1.94727420093,-3243.19855575],\n[12.0575556841,-2.25821700093,-3243.19855575],\n[12.3164108841,-2.24935900093,-3243.19855575],\n[11.9263056841,-2.81758860093,-3243.19855575],\n[12.2234424841,-2.62227770093,-3243.19855575],\n[12.4908916841,-2.55144380093,-3243.19855575],\n[11.9263056841,-2.87852700093,-3243.19855575],\n[12.1726612841,-2.87019420093,-3243.19855575],\n[12.4190168841,-2.86186140093,-3243.19855575],\n[12.6653724841,-2.85352860093,-3243.19855575]\n],2,4);\n\npatch([\n[12.5825604841,2.19960299907,-3243.19855575],\n[12.5705804841,2.12043499907,-3243.19855575],\n[12.5586004841,2.04126699907,-3243.19855575],\n[12.5466204841,1.96209899907,-3243.19855575],\n[12.1169328841,2.19960299907,-3243.19855575],\n[12.1013076841,2.12043499907,-3243.19855575],\n[12.0856824841,2.04126699907,-3243.19855575],\n[12.0700572841,1.96209899907,-3243.19855575],\n[11.8794300841,1.84334699907,-3243.19855575],\n[11.8674512841,1.65220299907,-3243.19855575],\n[11.8554724841,1.46105899907,-3243.19855575],\n[11.8434936841,1.26991499907,-3243.19855575],\n[11.7356820841,1.58084699907,-3243.19855575],\n[11.7117232841,1.23918299907,-3243.19855575],\n[11.6877644841,0.897518999074,-3243.19855575],\n[11.6638056841,0.555854999074,-3243.19855575]\n],2,4);\n\npatch([\n[12.3794364841,-0.970713000926,-3243.19855575],\n[12.6575604841,-0.875401000926,-3243.19855575],\n[12.9356844841,-0.780089000926,-3243.19855575],\n[13.2138084841,-0.684777000926,-3243.19855575],\n[12.3325524841,-1.19727300093,-3243.19855575],\n[12.6023444841,-1.11758500093,-3243.19855575],\n[12.8721364841,-1.03789700093,-3243.19855575],\n[13.1419284841,-0.958209000926,-3243.19855575],\n[12.2013072841,-1.73321700093,-3243.19855575],\n[12.3679756841,-2.07488180093,-3243.19855575],\n[12.5346440841,-2.41654660093,-3243.19855575],\n[12.7013124841,-2.75821140093,-3243.19855575],\n[12.1419300841,-1.94727420093,-3243.19855575],\n[12.3164108841,-2.24935900093,-3243.19855575],\n[12.4908916841,-2.55144380093,-3243.19855575],\n[12.6653724841,-2.85352860093,-3243.19855575]\n],2,4);\n\npatch([\n[13.6200564841,1.25897099907,-3243.19855575],\n[13.3851604841,1.31053499907,-3243.19855575],\n[13.1502644841,1.36209899907,-3243.19855575],\n[12.9153684841,1.41366299907,-3243.19855575],\n[13.5356844841,1.89021899907,-3243.19855575],\n[13.3289124841,1.84647099907,-3243.19855575],\n[13.1221404841,1.80272299907,-3243.19855575],\n[12.9153684841,1.75897499907,-3243.19855575],\n[13.0591164841,2.19960299907,-3243.19855575],\n[12.9835964841,2.12043499907,-3243.19855575],\n[12.9080764841,2.04126699907,-3243.19855575],\n[12.8325564841,1.96209899907,-3243.19855575],\n[12.5825604841,2.19960299907,-3243.19855575],\n[12.5705804841,2.12043499907,-3243.19855575],\n[12.5586004841,2.04126699907,-3243.19855575],\n[12.5466204841,1.96209899907,-3243.19855575]\n],2,4);\n\npatch([\n[12.7138044841,0.316790999074,-3243.19855575],\n[12.9440124841,0.241266999074,-3243.19855575],\n[13.1742204841,0.165742999074,-3243.19855575],\n[13.4044284841,0.0902189990745,-3243.19855575],\n[12.6023484841,-0.112377000926,-3243.19855575],\n[12.8499164841,-0.132345000926,-3243.19855575],\n[13.0974844841,-0.152313000926,-3243.19855575],\n[13.3450524841,-0.172281000926,-3243.19855575],\n[12.4908924841,-0.541545000926,-3243.19855575],\n[12.7516564841,-0.501789000926,-3243.19855575],\n[13.0124204841,-0.462033000926,-3243.19855575],\n[13.2731844841,-0.422277000926,-3243.19855575],\n[12.3794364841,-0.970713000926,-3243.19855575],\n[12.6575604841,-0.875401000926,-3243.19855575],\n[12.9356844841,-0.780089000926,-3243.19855575],\n[13.2138084841,-0.684777000926,-3243.19855575]\n],2,4);\n\npatch([\n[13.5356844841,0.602726999074,-3243.19855575],\n[13.2617244841,0.507414999074,-3243.19855575],\n[12.9877644841,0.412102999074,-3243.19855575],\n[12.7138044841,0.316790999074,-3243.19855575],\n[13.5638084841,0.821474999074,-3243.19855575],\n[13.3080778174,0.776682999074,-3243.19855575],\n[13.0523471508,0.731890999074,-3243.19855575],\n[12.7966164841,0.687098999074,-3243.19855575],\n[13.5919324841,1.04022299907,-3243.19855575],\n[13.3664111508,1.07720299907,-3243.19855575],\n[13.1408898174,1.11418299907,-3243.19855575],\n[12.9153684841,1.15116299907,-3243.19855575],\n[13.6200564841,1.25897099907,-3243.19855575],\n[13.3851604841,1.31053499907,-3243.19855575],\n[13.1502644841,1.36209899907,-3243.19855575],\n[12.9153684841,1.41366299907,-3243.19855575]\n],2,4);\n\npatch([\n[12.7138044841,0.316790999074,-3243.19855575],\n[12.9440124841,0.241266999074,-3243.19855575],\n[12.9877644841,0.412102999074,-3243.19855575],\n[13.1742204841,0.165742999074,-3243.19855575],\n[13.2210984841,0.339704999074,-3243.19855575],\n[13.2617244841,0.507414999074,-3243.19855575],\n[13.4044284841,0.0902189990745,-3243.19855575],\n[13.4528724841,0.257414999074,-3243.19855575],\n[13.4997444841,0.448034999074,-3243.19855575],\n[13.5356844841,0.602726999074,-3243.19855575]\n],2,4);\n\ncylinder([0,60.9557,-3231.91],0.25,54.93022,0,4,\n[1.570796,0],true);\n\nsphere([0,60.9557,-3231.91],0.25,0,4,\n[1.570796,3.141593]);\n\nsphere([54.93022,60.9557,-3231.91],0.25,0,4,\n[1.570796,0]);\n\npatch([\n[24.87214,66.88908,-3231.91],\n[24.87214,66.54377,-3231.91],\n[24.87214,66.54377,-3231.91],\n[25.17058,66.88908,-3231.91]\n],3,4);\n\npatch([\n[27.1127677682,64.8984608576,-3231.91046484],\n[27.0335997682,64.8984608576,-3231.91046484],\n[27.0335997682,64.7833560296,-3231.91046484],\n[26.9544317682,64.8984608576,-3231.91046484],\n[26.9544317682,64.7833560296,-3231.91046484],\n[26.9544317682,64.6682512016,-3231.91046484],\n[26.8752637682,64.8984608576,-3231.91046484],\n[26.8752637682,64.7833560296,-3231.91046484],\n[26.8752637682,64.6682512016,-3231.91046484],\n[26.8752637682,64.5531463736,-3231.91046484]\n],3,4);\n\npatch([\n[29.9862037682,64.5531463736,-3231.91046484],\n[29.9862037682,64.6682512016,-3231.91046484],\n[29.9065157682,64.6682512016,-3231.91046484],\n[29.9862037682,64.7833560296,-3231.91046484],\n[29.9065157682,64.7833560296,-3231.91046484],\n[29.8268277682,64.7833560296,-3231.91046484],\n[29.9862037682,64.8984608576,-3231.91046484],\n[29.9065157682,64.8984608576,-3231.91046484],\n[29.8268277682,64.8984608576,-3231.91046484],\n[29.7471397682,64.8984608576,-3231.91046484]\n],3,4);\n\npatch([\n[28.85339,66.54377,-3231.91],\n[30.05808,66.54377,-3231.91],\n[30.05808,66.88908,-3231.91],\n[28.85339,66.88908,-3231.91]\n],3,4);\n\npatch([\n[28.8533917682,72.3140888576,-3231.91046484],\n[28.8533917682,72.5390888576,-3231.91046484],\n[28.7221397682,72.3614848576,-3231.91046484],\n[28.8533917682,72.6000248576,-3231.91046484],\n[28.7082077682,72.5489838576,-3231.91046484],\n[28.5908877682,72.4088808576,-3231.91046484],\n[28.6862077682,72.6000248576,-3231.91046484],\n[28.5908917682,72.6000248576,-3231.91046484],\n[28.5549517682,72.6000248576,-3231.91046484],\n[28.4596357682,72.4562768576,-3231.91046484]\n],3,4);\n\npatch([\n[28.06745,66.88908,-3231.91],\n[25.17058,66.88908,-3231.91],\n[24.87214,66.54377,-3231.91],\n[28.00652,66.54377,-3231.91]\n],3,4);\n\npatch([\n[27.8860087682,65.0136931076,-3231.91046484],\n[27.9942575745,64.867953136,-3231.91046484],\n[28.1025063808,64.7222131643,-3231.91046484],\n[28.2107551872,64.5764731926,-3231.91046484],\n[27.7713607682,64.9285379576,-3231.91046484],\n[27.7787563092,64.8110000027,-3231.91046484],\n[27.7861518502,64.6934620478,-3231.91046484],\n[27.7935473912,64.575924093,-3231.91046484],\n[27.5479237682,64.8984608576,-3231.91046484],\n[27.3995585471,64.7898577199,-3231.91046484],\n[27.251193326,64.6812545822,-3231.91046484],\n[27.1028281049,64.5726514445,-3231.91046484],\n[27.1127677682,64.8984608576,-3231.91046484],\n[27.0335997682,64.7833560296,-3231.91046484],\n[26.9544317682,64.6682512016,-3231.91046484],\n[26.8752637682,64.5531463736,-3231.91046484]\n],3,4);\n\npatch([\n[28.2107551872,64.5764731926,-3231.91046484],\n[28.1025063808,64.7222131643,-3231.91046484],\n[27.9942575745,64.867953136,-3231.91046484],\n[27.8860087682,65.0136931076,-3231.91046484],\n[28.2948692161,64.5765838976,-3231.91046484],\n[28.1967984001,64.7506720176,-3231.91046484],\n[28.0987275841,64.9247601376,-3231.91046484],\n[28.0006567682,65.0988482576,-3231.91046484],\n[28.3678657327,64.5765838976,-3231.91046484],\n[28.2474157446,64.7974164176,-3231.91046484],\n[28.1269657564,65.0182489376,-3231.91046484],\n[28.0065157682,65.2390814576,-3231.91046484],\n[28.4237077682,64.5765838976,-3231.91046484],\n[28.2846437682,64.8708538176,-3231.91046484],\n[28.1455797682,65.1651237376,-3231.91046484],\n[28.0065157682,65.4593936576,-3231.91046484]\n],3,4);\n\npatch([\n[29.2272172682,64.5736542071,-3231.91046484],\n[29.2283128733,64.6912488027,-3231.91046484],\n[29.2294084784,64.8088433983,-3231.91046484],\n[29.2305040835,64.9264379939,-3231.91046484],\n[29.5416697682,64.5707245166,-3231.91046484],\n[29.4798720135,64.682686692,-3231.91046484],\n[29.4180742589,64.7946488675,-3231.91046484],\n[29.3562765042,64.9066110429,-3231.91046484],\n[29.8487017682,64.5648651356,-3231.91046484],\n[29.7404241674,64.6760637096,-3231.91046484],\n[29.6321465666,64.7872622836,-3231.91046484],\n[29.5238689658,64.8984608576,-3231.91046484],\n[29.9862037682,64.5531463736,-3231.91046484],\n[29.9065157682,64.6682512016,-3231.91046484],\n[29.8268277682,64.7833560296,-3231.91046484],\n[29.7471397682,64.8984608576,-3231.91046484]\n],3,4);\n\npatch([\n[29.2305040835,64.9264379939,-3231.91046484],\n[29.2294084784,64.8088433983,-3231.91046484],\n[29.2283128733,64.6912488027,-3231.91046484],\n[29.2272172682,64.5736542071,-3231.91046484],\n[28.8730512155,64.9827873944,-3231.91046484],\n[28.8862890664,64.8473862288,-3231.91046484],\n[28.8995269173,64.7119850632,-3231.91046484],\n[28.9127647682,64.5765838976,-3231.91046484],\n[28.8533917682,65.1334536475,-3231.91046484],\n[28.7658917682,64.9478303975,-3231.91046484],\n[28.6783917682,64.7622071476,-3231.91046484],\n[28.5908917682,64.5765838976,-3231.91046484],\n[28.8533917682,65.4593936576,-3231.91046484],\n[28.7101637682,65.1651237376,-3231.91046484],\n[28.5669357682,64.8708538176,-3231.91046484],\n[28.4237077682,64.5765838976,-3231.91046484]\n],3,4);\n\npatch([\n[28.0065157682,65.4593936576,-3231.91046484],\n[28.1455797682,65.1651237376,-3231.91046484],\n[28.2888077682,65.4593936576,-3231.91046484],\n[28.2846437682,64.8708538176,-3231.91046484],\n[28.4278717682,65.1651237376,-3231.91046484],\n[28.5710997682,65.4593936576,-3231.91046484],\n[28.4237077682,64.5765838976,-3231.91046484],\n[28.5669357682,64.8708538176,-3231.91046484],\n[28.7101637682,65.1651237376,-3231.91046484],\n[28.8533917682,65.4593936576,-3231.91046484]\n],3,4);\n\npatch([\n[28.00652,66.54377,-3231.91],\n[28.00652,65.45939,-3231.91],\n[28.85339,65.45939,-3231.91],\n[28.85339,66.54377,-3231.91]\n],3,4);\n\npatch([\n[28.06745,66.88908,-3231.91],\n[28.00652,66.54377,-3231.91],\n[28.85339,66.54377,-3231.91],\n[28.85339,66.88908,-3231.91]\n],3,4);\n\npatch([\n[28.45964,72.45628,-3231.91],\n[24.87214,66.88908,-3231.91],\n[25.17058,66.88908,-3231.91],\n[28.06745,71.38283,-3231.91]\n],3,4);\n\npatch([\n[28.06745,71.38283,-3231.91],\n[28.06745,66.88908,-3231.91],\n[28.85339,66.88908,-3231.91],\n[28.85339,72.31409,-3231.91]\n],3,4);\n\npatch([\n[28.8533917682,72.3140888576,-3231.91046484],\n[28.7221397682,72.3614848576,-3231.91046484],\n[28.5914117682,72.0036688576,-3231.91046484],\n[28.5908877682,72.4088808576,-3231.91046484],\n[28.4601597682,72.0510648576,-3231.91046484],\n[28.3294317682,71.6932488576,-3231.91046484],\n[28.4596357682,72.4562768576,-3231.91046484],\n[28.3289077682,72.0984608576,-3231.91046484],\n[28.1981797682,71.7406448576,-3231.91046484],\n[28.0674517682,71.3828288576,-3231.91046484]\n],3,4);\n\ncylinder([54.93022,53.31115,-3233.185],0.25,129.5756,0,4,\n[1.735945,-1.570796],true);\n\nsphere([54.93022,53.31115,-3233.185],0.25,0,4,\n[1.405648,1.570796]);\n\nsphere([54.93022,-74.50139,-3254.487],0.25,0,4,\n[1.735945,-1.570796]);\n\npatch([\n[56.9398400796,53.3111463904,-3233.18455699],\n[56.9398400796,53.1286829308,-3232.08977624],\n[56.0401030317,52.9807670713,-3231.20228108],\n[54.9302211363,52.9807670713,-3231.20228108],\n[56.9398400796,53.4936098501,-3234.27933775],\n[56.199918816,53.3111463904,-3233.18455699],\n[54.9302211363,53.1024093777,-3231.93213492],\n[53.820339241,52.9807670713,-3231.20228108],\n[56.0401030317,53.6415257096,-3235.16683291],\n[54.9302211363,53.5198834032,-3234.43697907],\n[53.6605234566,53.3111463904,-3233.18455699],\n[52.9206021931,53.1286829308,-3232.08977624],\n[54.9302211363,53.6415257096,-3235.16683291],\n[53.820339241,53.6415257096,-3235.16683291],\n[52.9206021931,53.4936098501,-3234.27933775],\n[52.9206021931,53.3111463904,-3233.18455699]\n],0,5);\n\npatch([\n[54.93022,53.64153,-3235.167],\n[54.93022,55.99738,-3234.095],\n[54.93022,58.35324,-3233.023],\n[54.93022,60.7091,-3231.952],\n[53.82034,53.64153,-3235.167],\n[54.1903,55.99738,-3234.095],\n[54.56026,58.35324,-3233.023],\n[54.93022,60.7091,-3231.952],\n[52.9206,53.49361,-3234.279],\n[53.59048,55.89877,-3233.503],\n[54.26035,58.30394,-3232.727],\n[54.93022,60.7091,-3231.952],\n[52.9206,53.31115,-3233.185],\n[53.59048,55.77713,-3232.774],\n[54.26035,58.24312,-3232.363],\n[54.93022,60.7091,-3231.952]\n],0,5);\n\npatch([\n[56.93984,53.31115,-3233.185],\n[56.26997,55.77713,-3232.774],\n[55.60009,58.24312,-3232.363],\n[54.93022,60.7091,-3231.952],\n[56.93984,53.49361,-3234.279],\n[56.26997,55.89877,-3233.503],\n[55.60009,58.30394,-3232.727],\n[54.93022,60.7091,-3231.952],\n[56.0401,53.64153,-3235.167],\n[55.67014,55.99738,-3234.095],\n[55.30018,58.35324,-3233.023],\n[54.93022,60.7091,-3231.952],\n[54.93022,53.64153,-3235.167],\n[54.93022,55.99738,-3234.095],\n[54.93022,58.35324,-3233.023],\n[54.93022,60.7091,-3231.952]\n],0,5);\n\npatch([\n[54.93022,52.98077,-3231.202],\n[54.93022,55.55688,-3231.452],\n[54.93022,58.13299,-3231.702],\n[54.93022,60.7091,-3231.952],\n[56.0401,52.98077,-3231.202],\n[55.67014,55.55688,-3231.452],\n[55.30018,58.13299,-3231.702],\n[54.93022,60.7091,-3231.952],\n[56.93984,53.12868,-3232.09],\n[56.26997,55.65549,-3232.044],\n[55.60009,58.18229,-3231.998],\n[54.93022,60.7091,-3231.952],\n[56.93984,53.31115,-3233.185],\n[56.26997,55.77713,-3232.774],\n[55.60009,58.24312,-3232.363],\n[54.93022,60.7091,-3231.952]\n],0,5);\n\npatch([\n[52.9206,53.31115,-3233.185],\n[53.59048,55.77713,-3232.774],\n[54.26035,58.24312,-3232.363],\n[54.93022,60.7091,-3231.952],\n[52.9206,53.12868,-3232.09],\n[53.59048,55.65549,-3232.044],\n[54.26035,58.18229,-3231.998],\n[54.93022,60.7091,-3231.952],\n[53.82034,52.98077,-3231.202],\n[54.1903,55.55688,-3231.452],\n[54.56026,58.13299,-3231.702],\n[54.93022,60.7091,-3231.952],\n[54.93022,52.98077,-3231.202],\n[54.93022,55.55688,-3231.452],\n[54.93022,58.13299,-3231.702],\n[54.93022,60.7091,-3231.952]\n],0,5);\n\npatch([\n[65.7371658723,-10.8022901713,-3243.19855575],\n[65.9086258098,-10.8432568869,-3243.19855575],\n[65.9017091848,-10.7427378857,-3243.19855575],\n[66.0761068098,-10.8611279544,-3243.19855575],\n[66.0704452317,-10.7725921589,-3243.19855575],\n[66.0662524973,-10.6831856,-3243.19855575],\n[66.2307958098,-10.8611279544,-3243.19855575],\n[66.2307958098,-10.7819630744,-3243.19855575],\n[66.2307958098,-10.7027981944,-3243.19855575],\n[66.2307958098,-10.6236333144,-3243.19855575]\n],4,4);\n\npatch([\n[58.9698478098,-10.2658163544,-3243.19855575],\n[58.8464122098,-10.2658163544,-3243.19855575],\n[58.8464122098,-10.3809211824,-3243.19855575],\n[58.7229766098,-10.2658163544,-3243.19855575],\n[58.7229766098,-10.3809211824,-3243.19855575],\n[58.7229766098,-10.4960260104,-3243.19855575],\n[58.5995410098,-10.2658163544,-3243.19855575],\n[58.5995410098,-10.3809211824,-3243.19855575],\n[58.5995410098,-10.4960260104,-3243.19855575],\n[58.5995410098,-10.6111308384,-3243.19855575]\n],4,4);\n\npatch([\n[62.3307958098,-10.6111308384,-3243.19855575],\n[62.3307958098,-10.4960260104,-3243.19855575],\n[62.2073558098,-10.4960260104,-3243.19855575],\n[62.3307958098,-10.3809211824,-3243.19855575],\n[62.2073558098,-10.3809211824,-3243.19855575],\n[62.0839158098,-10.3809211824,-3243.19855575],\n[62.3307958098,-10.2658163544,-3243.19855575],\n[62.2073558098,-10.2658163544,-3243.19855575],\n[62.0839158098,-10.2658163544,-3243.19855575],\n[61.9604758098,-10.2658163544,-3243.19855575]\n],4,4);\n\npatch([\n[60.6386038098,-2.6845643544,-3243.19855575],\n[60.4438118098,-2.9507123544,-3243.19855575],\n[60.2490198098,-3.2168603544,-3243.19855575],\n[60.0542278098,-3.4830083544,-3243.19855575],\n[60.3511078098,-3.0064403544,-3243.19855575],\n[60.0333998098,-3.2684203544,-3243.19855575],\n[59.7156918098,-3.5304003544,-3243.19855575],\n[59.3979838098,-3.7923803544,-3243.19855575],\n[59.7557878098,-3.4470683544,-3243.19855575],\n[59.4380798098,-3.5621723544,-3243.19855575],\n[59.1203718098,-3.6772763544,-3243.19855575],\n[58.8026638098,-3.7923803544,-3243.19855575],\n[58.5276682098,-3.4470683544,-3243.19855575],\n[58.5276682098,-3.5621723544,-3243.19855575],\n[58.5276682098,-3.6772763544,-3243.19855575],\n[58.5276682098,-3.7923803544,-3243.19855575]\n],4,4);\n\npatch([\n[59.9052028098,-10.1404273044,-3243.19855575],\n[60.0004653301,-10.2895627782,-3243.19855575],\n[60.0957278504,-10.438698252,-3243.19855575],\n[60.1909903707,-10.5878337258,-3243.19855575],\n[59.7651628098,-10.2298799544,-3243.19855575],\n[59.7385055008,-10.3494087763,-3243.19855575],\n[59.7118481918,-10.4689375981,-3243.19855575],\n[59.6851908827,-10.58846642,-3243.19855575],\n[59.4940678098,-10.2658163544,-3243.19855575],\n[59.2836975152,-10.3745275817,-3243.19855575],\n[59.0733272206,-10.483238809,-3243.19855575],\n[58.862956926,-10.5919500362,-3243.19855575],\n[58.9698478098,-10.2658163544,-3243.19855575],\n[58.8464122098,-10.3809211824,-3243.19855575],\n[58.7229766098,-10.4960260104,-3243.19855575],\n[58.5995410098,-10.6111308384,-3243.19855575]\n],4,4);\n\npatch([\n[60.1909903707,-10.5878337258,-3243.19855575],\n[60.0957278504,-10.438698252,-3243.19855575],\n[60.0004653301,-10.2895627782,-3243.19855575],\n[59.9052028098,-10.1404273044,-3243.19855575],\n[60.3032405107,-10.5876933144,-3243.19855575],\n[60.2172412771,-10.4087870944,-3243.19855575],\n[60.1312420434,-10.2298808744,-3243.19855575],\n[60.0452428098,-10.0509746544,-3243.19855575],\n[60.3999058664,-10.5876933144,-3243.19855575],\n[60.2846798475,-10.3611307944,-3243.19855575],\n[60.1694538287,-10.1345682744,-3243.19855575],\n[60.0542278098,-9.9080057544,-3243.19855575],\n[60.4714198098,-10.5876933144,-3243.19855575],\n[60.3323558098,-10.2897757944,-3243.19855575],\n[60.1932918098,-9.9918582744,-3243.19855575],\n[60.0542278098,-9.6939407544,-3243.19855575]\n],4,4);\n\npatch([\n[61.4280583098,-10.5906230049,-3243.19855575],\n[61.4289546311,-10.4757742246,-3243.19855575],\n[61.4298509523,-10.3609254444,-3243.19855575],\n[61.4307472736,-10.2460766641,-3243.19855575],\n[61.8034498098,-10.5935526954,-3243.19855575],\n[61.725529747,-10.4822526979,-3243.19855575],\n[61.6476096842,-10.3709527003,-3243.19855575],\n[61.5696896214,-10.2596527028,-3243.19855575],\n[62.1698578098,-10.5994120764,-3243.19855575],\n[62.0276970517,-10.4882135024,-3243.19855575],\n[61.8855362935,-10.3770149284,-3243.19855575],\n[61.7433755354,-10.2658163544,-3243.19855575],\n[62.3307958098,-10.6111308384,-3243.19855575],\n[62.2073558098,-10.4960260104,-3243.19855575],\n[62.0839158098,-10.3809211824,-3243.19855575],\n[61.9604758098,-10.2658163544,-3243.19855575]\n],4,4);\n\npatch([\n[61.4307472736,-10.2460766641,-3243.19855575],\n[61.4298509523,-10.3609254444,-3243.19855575],\n[61.4289546311,-10.4757742246,-3243.19855575],\n[61.4280583098,-10.5906230049,-3243.19855575],\n[60.8987045286,-10.194090837,-3243.19855575],\n[60.950025289,-10.3252916628,-3243.19855575],\n[61.0013460494,-10.4564924886,-3243.19855575],\n[61.0526668098,-10.5876933144,-3243.19855575],\n[60.8761078098,-10.0334169408,-3243.19855575],\n[60.8068358098,-10.218175732,-3243.19855575],\n[60.7375638098,-10.4029345232,-3243.19855575],\n[60.6682918098,-10.5876933144,-3243.19855575],\n[60.8761078098,-9.6939407544,-3243.19855575],\n[60.7412118098,-9.9918582744,-3243.19855575],\n[60.6063158098,-10.2897757944,-3243.19855575],\n[60.4714198098,-10.5876933144,-3243.19855575]\n],4,4);\n\npatch([\n[60.8761078098,-2.9705003544,-3243.19855575],\n[60.8761078098,-2.6955083544,-3243.19855575],\n[60.6021478098,-3.1413363544,-3243.19855575],\n[60.8761078098,-2.6845643544,-3243.19855575],\n[60.5823558098,-2.9772763544,-3243.19855575],\n[60.3281878098,-3.3121723544,-3243.19855575],\n[60.6386038098,-2.6845643544,-3243.19855575],\n[60.4438118098,-2.9507123544,-3243.19855575],\n[60.2490198098,-3.2168603544,-3243.19855575],\n[60.0542278098,-3.4830083544,-3243.19855575]\n],4,4);\n\npatch([\n[60.0542278098,-9.6939407544,-3243.19855575],\n[60.1932918098,-9.9918582744,-3243.19855575],\n[60.3281878098,-9.6939407544,-3243.19855575],\n[60.3323558098,-10.2897757944,-3243.19855575],\n[60.4672518098,-9.9918582744,-3243.19855575],\n[60.6021478098,-9.6939407544,-3243.19855575],\n[60.4714198098,-10.5876933144,-3243.19855575],\n[60.6063158098,-10.2897757944,-3243.19855575],\n[60.7412118098,-9.9918582744,-3243.19855575],\n[60.8761078098,-9.6939407544,-3243.19855575]\n],4,4);\n\npatch([\n[60.87611,-9.693941,-3243.199],\n[60.87611,-2.9705,-3243.199],\n[60.05423,-3.483008,-3243.199],\n[60.05423,-9.693941,-3243.199]\n],4,4);\n\npatch([\n[64.3245478098,-9.6689435544,-3243.19855575],\n[64.4995478098,-9.4824851544,-3243.19855575],\n[64.6745478098,-9.2960267544,-3243.19855575],\n[64.8495478098,-9.1095683544,-3243.19855575],\n[64.6725958098,-10.3486290444,-3243.19855575],\n[64.8065798098,-10.3684220144,-3243.19855575],\n[64.9405638098,-10.3882149844,-3243.19855575],\n[65.0745478098,-10.4080079544,-3243.19855575],\n[65.2227860598,-10.6793900244,-3243.19855575],\n[65.4317053098,-10.6608044544,-3243.19855575],\n[65.6406245598,-10.6422188844,-3243.19855575],\n[65.8495438098,-10.6236333144,-3243.19855575],\n[65.7371658723,-10.8022901713,-3243.19855575],\n[65.9017091848,-10.7427378857,-3243.19855575],\n[66.0662524973,-10.6831856,-3243.19855575],\n[66.2307958098,-10.6236333144,-3243.19855575]\n],4,4);\n\npatch([\n[67.6261078098,-9.0845603544,-3243.19855575],\n[67.8208998098,-9.2397723544,-3243.19855575],\n[68.0156918098,-9.3949843544,-3243.19855575],\n[68.2104838098,-9.5501963544,-3243.19855575],\n[67.3995478098,-10.3970663544,-3243.19855575],\n[67.5547558098,-10.3449835544,-3243.19855575],\n[67.7099638098,-10.2929007544,-3243.19855575],\n[67.8651718098,-10.2408179544,-3243.19855575],\n[66.6495478098,-10.6236333144,-3243.19855575],\n[66.8557958098,-10.7027981944,-3243.19855575],\n[67.0620438098,-10.7819630744,-3243.19855575],\n[67.2682918098,-10.8611279544,-3243.19855575],\n[66.2307958098,-10.6236333144,-3243.19855575],\n[66.2307958098,-10.7027981944,-3243.19855575],\n[66.2307958098,-10.7819630744,-3243.19855575],\n[66.2307958098,-10.8611279544,-3243.19855575]\n],4,4);\n\npatch([\n[63.8120398098,-6.7970603544,-3243.19855575],\n[64.1141238098,-6.7491483544,-3243.19855575],\n[64.4162078098,-6.7012363544,-3243.19855575],\n[64.7182918098,-6.6533243544,-3243.19855575],\n[63.8120398098,-7.9533203544,-3243.19855575],\n[64.1141238098,-7.7981123544,-3243.19855575],\n[64.4162078098,-7.6429043544,-3243.19855575],\n[64.7182918098,-7.4876963544,-3243.19855575],\n[63.8948518098,-8.8236323544,-3243.19855575],\n[64.1693318098,-8.6804043544,-3243.19855575],\n[64.4438118098,-8.5371763544,-3243.19855575],\n[64.7182918098,-8.3939483544,-3243.19855575],\n[64.3245478098,-9.6689435544,-3243.19855575],\n[64.4995478098,-9.4824851544,-3243.19855575],\n[64.6745478098,-9.2960267544,-3243.19855575],\n[64.8495478098,-9.1095683544,-3243.19855575]\n],4,4);\n\npatch([\n[67.7573518098,-6.6533243544,-3243.19855575],\n[68.0594358098,-6.7012363544,-3243.19855575],\n[68.3615198098,-6.7491483544,-3243.19855575],\n[68.6636038098,-6.7970603544,-3243.19855575],\n[67.7573518098,-7.4517563544,-3243.19855575],\n[68.0594358098,-7.4637363544,-3243.19855575],\n[68.3615198098,-7.4757163544,-3243.19855575],\n[68.6636038098,-7.4876963544,-3243.19855575],\n[67.7573518098,-8.3580083544,-3243.19855575],\n[68.0516238098,-8.4574883544,-3243.19855575],\n[68.3458958098,-8.5569683544,-3243.19855575],\n[68.6401678098,-8.6564483544,-3243.19855575],\n[67.6261078098,-9.0845603544,-3243.19855575],\n[67.8208998098,-9.2397723544,-3243.19855575],\n[68.0156918098,-9.3949843544,-3243.19855575],\n[68.2104838098,-9.5501963544,-3243.19855575]\n],4,4);\n\npatch([\n[64.2651718098,-4.0189403544,-3243.19855575],\n[64.4797518098,-4.0429003544,-3243.19855575],\n[64.6943318098,-4.0668603544,-3243.19855575],\n[64.9089118098,-4.0908203544,-3243.19855575],\n[63.9307918098,-4.7705003544,-3243.19855575],\n[64.1932918098,-4.7783163544,-3243.19855575],\n[64.4557918098,-4.7861323544,-3243.19855575],\n[64.7182918098,-4.7939483544,-3243.19855575],\n[63.8120398098,-5.5095683544,-3243.19855575],\n[64.1141238098,-5.5652963544,-3243.19855575],\n[64.4162078098,-5.6210243544,-3243.19855575],\n[64.7182918098,-5.6767523544,-3243.19855575],\n[63.8120398098,-6.7970603544,-3243.19855575],\n[64.1141238098,-6.7491483544,-3243.19855575],\n[64.4162078098,-6.7012363544,-3243.19855575],\n[64.7182918098,-6.6533243544,-3243.19855575]\n],4,4);\n\npatch([\n[67.6026718098,-4.2220643544,-3243.19855575],\n[67.7932958098,-4.1267523544,-3243.19855575],\n[67.9839198098,-4.0314403544,-3243.19855575],\n[68.1745438098,-3.9361283544,-3243.19855575],\n[67.7573518098,-4.9017563544,-3243.19855575],\n[68.0396438098,-4.8819643544,-3243.19855575],\n[68.3219358098,-4.8621723544,-3243.19855575],\n[68.6042278098,-4.8423803544,-3243.19855575],\n[67.7573518098,-5.8423763544,-3243.19855575],\n[68.0594358098,-5.8304003544,-3243.19855575],\n[68.3615198098,-5.8184243544,-3243.19855575],\n[68.6636038098,-5.8064483544,-3243.19855575],\n[67.7573518098,-6.6533243544,-3243.19855575],\n[68.0594358098,-6.7012363544,-3243.19855575],\n[68.3615198098,-6.7491483544,-3243.19855575],\n[68.6636038098,-6.7970603544,-3243.19855575]\n],4,4);\n\npatch([\n[66.2432878098,-2.6845643544,-3243.19855575],\n[66.2391238098,-2.7637323544,-3243.19855575],\n[66.2349598098,-2.8429003544,-3243.19855575],\n[66.2307958098,-2.9220683544,-3243.19855575],\n[65.5526758098,-2.6845643544,-3243.19855575],\n[65.6078798098,-2.7637323544,-3243.19855575],\n[65.6630838098,-2.8429003544,-3243.19855575],\n[65.7182878098,-2.9220683544,-3243.19855575],\n[64.7057878098,-3.0298763544,-3243.19855575],\n[64.8406838098,-3.1173763544,-3243.19855575],\n[64.9755798098,-3.2048763544,-3243.19855575],\n[65.1104758098,-3.2923763544,-3243.19855575],\n[64.2651718098,-4.0189403544,-3243.19855575],\n[64.4797518098,-4.0429003544,-3243.19855575],\n[64.6943318098,-4.0668603544,-3243.19855575],\n[64.9089118098,-4.0908203544,-3243.19855575]\n],4,4);\n\npatch([\n[66.2307958098,-2.9220683544,-3243.19855575],\n[66.2349598098,-2.8429003544,-3243.19855575],\n[66.2391238098,-2.7637323544,-3243.19855575],\n[66.2432878098,-2.6845643544,-3243.19855575],\n[66.6839158098,-2.9220683544,-3243.19855575],\n[66.7318358098,-2.8429003544,-3243.19855575],\n[66.7797558098,-2.7637323544,-3243.19855575],\n[66.8276758098,-2.6845643544,-3243.19855575],\n[67.3761118098,-3.1970603544,-3243.19855575],\n[67.4792358098,-3.1132083544,-3243.19855575],\n[67.5823598098,-3.0293563544,-3243.19855575],\n[67.6854838098,-2.9455043544,-3243.19855575],\n[67.6026718098,-4.2220643544,-3243.19855575],\n[67.7932958098,-4.1267523544,-3243.19855575],\n[67.9839198098,-4.0314403544,-3243.19855575],\n[68.1745438098,-3.9361283544,-3243.19855575]\n],4,4);\n\ncylinder([-43.94418,26.21973,-3237.7],0.25,102.1104,0,4,\n[1.735945,-1.570796],true);\n\nsphere([-43.94418,26.21973,-3237.7],0.25,0,4,\n[1.405648,1.570796]);\n\nsphere([-43.94418,-74.50139,-3254.487],0.25,0,4,\n[1.735945,-1.570796]);\n\npatch([\n[-41.9345579658,26.2197282086,-3237.69979336],\n[-41.9345579658,26.037264749,-3236.6050126],\n[-42.8342950137,25.8893488895,-3235.71751744],\n[-43.9441769091,25.8893488895,-3235.71751744],\n[-41.9345579658,26.4021916682,-3238.79457411],\n[-42.6744792294,26.2197282086,-3237.69979336],\n[-43.9441769091,26.0109911959,-3236.44737128],\n[-45.0540588044,25.8893488895,-3235.71751744],\n[-42.8342950137,26.5501075278,-3239.68206927],\n[-43.9441769091,26.4284652214,-3238.95221543],\n[-45.2138745888,26.2197282086,-3237.69979336],\n[-45.9537958523,26.037264749,-3236.6050126],\n[-43.9441769091,26.5501075278,-3239.68206927],\n[-45.0540588044,26.5501075278,-3239.68206927],\n[-45.9537958523,26.4021916682,-3238.79457411],\n[-45.9537958523,26.2197282086,-3237.69979336]\n],0,5);\n\npatch([\n[-43.94418,26.55011,-3239.682],\n[-43.94418,28.90597,-3238.61],\n[-43.94418,31.26182,-3237.539],\n[-43.94418,33.61768,-3236.467],\n[-45.05406,26.55011,-3239.682],\n[-44.6841,28.90597,-3238.61],\n[-44.31414,31.26182,-3237.539],\n[-43.94418,33.61768,-3236.467],\n[-45.9538,26.40219,-3238.795],\n[-45.28392,28.80736,-3238.019],\n[-44.61405,31.21252,-3237.243],\n[-43.94418,33.61768,-3236.467],\n[-45.9538,26.21973,-3237.7],\n[-45.28392,28.68571,-3237.289],\n[-44.61405,31.1517,-3236.878],\n[-43.94418,33.61768,-3236.467]\n],0,5);\n\npatch([\n[-41.93456,26.21973,-3237.7],\n[-42.60443,28.68571,-3237.289],\n[-43.2743,31.1517,-3236.878],\n[-43.94418,33.61768,-3236.467],\n[-41.93456,26.40219,-3238.795],\n[-42.60443,28.80736,-3238.019],\n[-43.2743,31.21252,-3237.243],\n[-43.94418,33.61768,-3236.467],\n[-42.8343,26.55011,-3239.682],\n[-43.20426,28.90597,-3238.61],\n[-43.57422,31.26182,-3237.539],\n[-43.94418,33.61768,-3236.467],\n[-43.94418,26.55011,-3239.682],\n[-43.94418,28.90597,-3238.61],\n[-43.94418,31.26182,-3237.539],\n[-43.94418,33.61768,-3236.467]\n],0,5);\n\npatch([\n[-43.94418,25.88935,-3235.718],\n[-43.94418,28.46546,-3235.967],\n[-43.94418,31.04157,-3236.217],\n[-43.94418,33.61768,-3236.467],\n[-42.8343,25.88935,-3235.718],\n[-43.20426,28.46546,-3235.967],\n[-43.57422,31.04157,-3236.217],\n[-43.94418,33.61768,-3236.467],\n[-41.93456,26.03726,-3236.605],\n[-42.60443,28.56407,-3236.559],\n[-43.2743,31.09088,-3236.513],\n[-43.94418,33.61768,-3236.467],\n[-41.93456,26.21973,-3237.7],\n[-42.60443,28.68571,-3237.289],\n[-43.2743,31.1517,-3236.878],\n[-43.94418,33.61768,-3236.467]\n],0,5);\n\npatch([\n[-45.9538,26.21973,-3237.7],\n[-45.28392,28.68571,-3237.289],\n[-44.61405,31.1517,-3236.878],\n[-43.94418,33.61768,-3236.467],\n[-45.9538,26.03726,-3236.605],\n[-45.28392,28.56407,-3236.559],\n[-44.61405,31.09088,-3236.513],\n[-43.94418,33.61768,-3236.467],\n[-45.05406,25.88935,-3235.718],\n[-44.6841,28.46546,-3235.967],\n[-44.31414,31.04157,-3236.217],\n[-43.94418,33.61768,-3236.467],\n[-43.94418,25.88935,-3235.718],\n[-43.94418,28.46546,-3235.967],\n[-43.94418,31.04157,-3236.217],\n[-43.94418,33.61768,-3236.467]\n],0,5);\n\ncylinder([-40.19418,33.86428,-3236.426],0.25,7.5,0,4,\n[1.570796,3.141593],true);\n\nsphere([-40.19418,33.86428,-3236.426],0.25,0,4,\n[1.570796,0]);\n\nsphere([-47.69418,33.86428,-3236.426],0.25,0,4,\n[1.570796,3.141593]);\n\npatch([\n[-49.171310795,-16.3580563828,-3245.45617393],\n[-49.4390178575,-16.4107740703,-3245.45617393],\n[-49.70672492,-16.4634917578,-3245.45617393],\n[-49.9744319825,-16.5162094453,-3245.45617393],\n[-49.4194559825,-16.2749021953,-3245.45617393],\n[-49.6030599825,-16.3235672786,-3245.45617393],\n[-49.7866639825,-16.372232362,-3245.45617393],\n[-49.9702679825,-16.4208974453,-3245.45617393],\n[-49.6877189825,-16.2302734453,-3245.45617393],\n[-49.7805139825,-16.262044112,-3245.45617393],\n[-49.8733089825,-16.2938147786,-3245.45617393],\n[-49.9661039825,-16.3255854453,-3245.45617393],\n[-49.9619399825,-16.2302734453,-3245.45617393],\n[-49.9619399825,-16.2302734453,-3245.45617393],\n[-49.9619399825,-16.2302734453,-3245.45617393],\n[-49.9619399825,-16.2302734453,-3245.45617393]\n],5,4);\n\npatch([\n[-51.6181919825,-19.4005894453,-3245.45617393],\n[-51.2093359825,-19.7063174453,-3245.45617393],\n[-50.8004799825,-20.0120454453,-3245.45617393],\n[-50.3916239825,-20.3177734453,-3245.45617393],\n[-51.6181919825,-19.4005894453,-3245.45617393],\n[-51.3018693159,-19.655968112,-3245.45617393],\n[-51.0256506492,-19.8639547786,-3245.45617393],\n[-50.4749559825,-20.2625654453,-3245.45617393],\n[-51.6181919825,-19.4005894453,-3245.45617393],\n[-51.3944026492,-19.6056187786,-3245.45617393],\n[-51.2508213159,-19.715864112,-3245.45617393],\n[-50.5582879825,-20.2073574453,-3245.45617393],\n[-51.6181919825,-19.4005894453,-3245.45617393],\n[-51.4869359825,-19.5552694453,-3245.45617393],\n[-51.4759919825,-19.5677734453,-3245.45617393],\n[-50.6416199825,-20.1521494453,-3245.45617393]\n],5,4);\n\npatch([\n[-47.8634999825,-17.9818414453,-3245.45617393],\n[-48.0265199825,-17.9860054453,-3245.45617393],\n[-48.1895399825,-17.9901694453,-3245.45617393],\n[-48.3525599825,-17.9943334453,-3245.45617393],\n[-47.8634999825,-17.2037104453,-3245.45617393],\n[-48.0265199825,-17.1807954453,-3245.45617393],\n[-48.1895399825,-17.1578804453,-3245.45617393],\n[-48.3525599825,-17.1349654453,-3245.45617393],\n[-48.4268752325,-16.6075189453,-3245.45617393],\n[-48.6562714825,-16.5770824453,-3245.45617393],\n[-48.8856677325,-16.5466459453,-3245.45617393],\n[-49.1150639825,-16.5162094453,-3245.45617393],\n[-49.171310795,-16.3580563828,-3245.45617393],\n[-49.4390178575,-16.4107740703,-3245.45617393],\n[-49.70672492,-16.4634917578,-3245.45617393],\n[-49.9744319825,-16.5162094453,-3245.45617393]\n],5,4);\n\npatch([\n[-51.5822519825,-17.7787174453,-3245.45617393],\n[-51.7452715825,-17.9141334453,-3245.45617393],\n[-51.9082911825,-18.0495494453,-3245.45617393],\n[-52.0713107825,-18.1849654453,-3245.45617393],\n[-51.5822519825,-17.0052694453,-3245.45617393],\n[-51.7452715825,-17.0370414453,-3245.45617393],\n[-51.9082911825,-17.0688134453,-3245.45617393],\n[-52.0713107825,-17.1005854453,-3245.45617393],\n[-50.7728759825,-16.5162094453,-3245.45617393],\n[-50.8957919825,-16.4208974453,-3245.45617393],\n[-51.0187079825,-16.3255854453,-3245.45617393],\n[-51.1416239825,-16.2302734453,-3245.45617393],\n[-49.9744319825,-16.5162094453,-3245.45617393],\n[-49.9702679825,-16.4208974453,-3245.45617393],\n[-49.9661039825,-16.3255854453,-3245.45617393],\n[-49.9619399825,-16.2302734453,-3245.45617393]\n],5,4);\n\npatch([\n[-51.8447471825,-22.3568374453,-3245.45617393],\n[-52.0275595825,-22.3568374453,-3245.45617393],\n[-52.2103719825,-22.3568374453,-3245.45617393],\n[-52.3931843825,-22.3568374453,-3245.45617393],\n[-51.8447471825,-21.4271494453,-3245.45617393],\n[-52.0275595825,-21.4469414453,-3245.45617393],\n[-52.2103719825,-21.4667334453,-3245.45617393],\n[-52.3931843825,-21.4865254453,-3245.45617393],\n[-51.1650599825,-20.6755894453,-3245.45617393],\n[-51.3759971825,-20.6797574453,-3245.45617393],\n[-51.5869343825,-20.6839254453,-3245.45617393],\n[-51.7978715825,-20.6880934453,-3245.45617393],\n[-50.3916239825,-20.3177734453,-3245.45617393],\n[-50.4749559825,-20.2625654453,-3245.45617393],\n[-50.5582879825,-20.2073574453,-3245.45617393],\n[-50.6416199825,-20.1521494453,-3245.45617393]\n],5,4);\n\npatch([\n[-49.3306919825,-19.8537094453,-3245.45617393],\n[-49.4098559825,-19.7979814453,-3245.45617393],\n[-49.4890199825,-19.7422534453,-3245.45617393],\n[-49.5681839825,-19.6865254453,-3245.45617393],\n[-48.7338119825,-19.5318334453,-3245.45617393],\n[-48.7817279825,-19.4563134453,-3245.45617393],\n[-48.8296439825,-19.3807934453,-3245.45617393],\n[-48.8775599825,-19.3052734453,-3245.45617393],\n[-47.8634999825,-18.9833974453,-3245.45617393],\n[-48.0265199825,-18.8958974453,-3245.45617393],\n[-48.1895399825,-18.8083974453,-3245.45617393],\n[-48.3525599825,-18.7208974453,-3245.45617393],\n[-47.8634999825,-17.9818414453,-3245.45617393],\n[-48.0265199825,-17.9860054453,-3245.45617393],\n[-48.1895399825,-17.9901694453,-3245.45617393],\n[-48.3525599825,-17.9943334453,-3245.45617393]\n],5,4);\n\npatch([\n[-50.9509919825,-18.7802734453,-3245.45617393],\n[-51.1733919825,-18.9870454453,-3245.45617393],\n[-51.3957919825,-19.1938174453,-3245.45617393],\n[-51.6181919825,-19.4005894453,-3245.45617393],\n[-51.1056839825,-18.6740254453,-3245.45617393],\n[-51.3879755825,-18.7813174453,-3245.45617393],\n[-51.6702671825,-18.8886094453,-3245.45617393],\n[-51.9525587825,-18.9959014453,-3245.45617393],\n[-51.5822519825,-18.3630934453,-3245.45617393],\n[-51.7452715825,-18.4386134453,-3245.45617393],\n[-51.9082911825,-18.5141334453,-3245.45617393],\n[-52.0713107825,-18.5896534453,-3245.45617393],\n[-51.5822519825,-17.7787174453,-3245.45617393],\n[-51.7452715825,-17.9141334453,-3245.45617393],\n[-51.9082911825,-18.0495494453,-3245.45617393],\n[-52.0713107825,-18.1849654453,-3245.45617393]\n],5,4);\n\npatch([\n[-49.9619399825,-24.0849674053,-3245.45617393],\n[-49.9661039825,-24.1922572853,-3245.45617393],\n[-49.9702679825,-24.2995471653,-3245.45617393],\n[-49.9744319825,-24.4068370453,-3245.45617393],\n[-50.9744399825,-24.0849674053,-3245.45617393],\n[-51.0463119825,-24.1922572853,-3245.45617393],\n[-51.1181839825,-24.2995471653,-3245.45617393],\n[-51.1900559825,-24.4068370453,-3245.45617393],\n[-51.8447471825,-23.3459026453,-3245.45617393],\n[-52.0275595825,-23.4375702453,-3245.45617393],\n[-52.2103719825,-23.5292378453,-3245.45617393],\n[-52.3931843825,-23.6209054453,-3245.45617393],\n[-51.8447471825,-22.3568374453,-3245.45617393],\n[-52.0275595825,-22.3568374453,-3245.45617393],\n[-52.2103719825,-22.3568374453,-3245.45617393],\n[-52.3931843825,-22.3568374453,-3245.45617393]\n],5,4);\n\npatch([\n[-48.0900599825,-22.5599614453,-3245.45617393],\n[-47.9072479825,-22.4328774453,-3245.45617393],\n[-47.7244359825,-22.3057934453,-3245.45617393],\n[-47.5416239825,-22.1787094453,-3245.45617393],\n[-48.0900599825,-23.4662170453,-3245.45617393],\n[-47.9072479825,-23.4542370453,-3245.45617393],\n[-47.7244359825,-23.4422570453,-3245.45617393],\n[-47.5416239825,-23.4302770453,-3245.45617393],\n[-49.0088039825,-24.0849674053,-3245.45617393],\n[-48.8895359825,-24.1922572853,-3245.45617393],\n[-48.7702679825,-24.2995471653,-3245.45617393],\n[-48.6509999825,-24.4068370453,-3245.45617393],\n[-49.9619399825,-24.0849674053,-3245.45617393],\n[-49.9661039825,-24.1922572853,-3245.45617393],\n[-49.9702679825,-24.2995471653,-3245.45617393],\n[-49.9744319825,-24.4068370453,-3245.45617393]\n],5,4);\n\npatch([\n[-49.56818,-19.68653,-3245.456],\n[-50.95099,-18.78027,-3245.456],\n[-51.61819,-19.40059,-3245.456],\n[-50.39162,-20.31777,-3245.456]\n],5,4);\n\npatch([\n[-49.3306919825,-19.8537094453,-3245.45617393],\n[-49.4098559825,-19.7979814453,-3245.45617393],\n[-49.6843359825,-20.0083974453,-3245.45617393],\n[-49.4890199825,-19.7422534453,-3245.45617393],\n[-49.7634999825,-19.9526694453,-3245.45617393],\n[-50.0379799825,-20.1630854453,-3245.45617393],\n[-49.5681839825,-19.6865254453,-3245.45617393],\n[-49.8426639825,-19.8969414453,-3245.45617393],\n[-50.1171439825,-20.1073574453,-3245.45617393],\n[-50.3916239825,-20.3177734453,-3245.45617393]\n],5,4);\n\npatch([\n[-48.9478679825,-21.2599654453,-3245.45617393],\n[-49.0754759825,-20.7912134453,-3245.45617393],\n[-49.2030839825,-20.3224614453,-3245.45617393],\n[-49.3306919825,-19.8537094453,-3245.45617393],\n[-48.6384959825,-21.4630894453,-3245.45617393],\n[-48.5588079825,-21.1172574453,-3245.45617393],\n[-48.4791199825,-20.7714254453,-3245.45617393],\n[-48.3994319825,-20.4255934453,-3245.45617393],\n[-48.0900599825,-21.8318374453,-3245.45617393],\n[-47.9072479825,-21.5417334453,-3245.45617393],\n[-47.7244359825,-21.2516294453,-3245.45617393],\n[-47.5416239825,-20.9615254453,-3245.45617393],\n[-48.0900599825,-22.5599614453,-3245.45617393],\n[-47.9072479825,-22.4328774453,-3245.45617393],\n[-47.7244359825,-22.3057934453,-3245.45617393],\n[-47.5416239825,-22.1787094453,-3245.45617393]\n],5,4);\n\npatch([\n[-49.3306919825,-19.8537094453,-3245.45617393],\n[-49.6843359825,-20.0083974453,-3245.45617393],\n[-49.2030839825,-20.3224614453,-3245.45617393],\n[-50.0379799825,-20.1630854453,-3245.45617393],\n[-49.5567279825,-20.4771494453,-3245.45617393],\n[-49.0754759825,-20.7912134453,-3245.45617393],\n[-50.3916239825,-20.3177734453,-3245.45617393],\n[-49.9103719825,-20.6318374453,-3245.45617393],\n[-49.4291199825,-20.9459014453,-3245.45617393],\n[-48.9478679825,-21.2599654453,-3245.45617393]\n],5,4);\n\ndocument.asy.Centers=[\n[27.46511,-40.63712,-3248.843],\n[13.73256,-6.772846,-3243.199],\n[27.46511,60.9557,-3231.91],\n[54.93022,-6.772846,-3243.199],\n[-43.94418,-20.31856,-3245.456],\n];\n</script>\n</head>\n\n<body style=\"overflow: hidden;\" onload=\"webGLStart();\">\n<canvas id=\"Asymptote\" width=\"139\" height=\"151\" style=\"border: none; cursor: pointer;\">\n</canvas>\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/sample-slideshow/generated/prefigure/annotated-prefigure-network-annotations.xml",
    "content": "<diagram>\n  <annotations>\n    <annotation id=\"figure\" speech2=\"A network with six nodes and nine edges.  We will remove four edges to form a spanning tree.\">\n      <grouped>figure</grouped>\n      <position>1</position>\n      <children>\n        <active>nodes</active>\n        <active>edges</active>\n      </children>\n      <components>\n        <active>nodes</active>\n        <active>edges</active>\n      </components>\n    </annotation>\n    <annotation id=\"nodes\" speech2=\"The six nodes are labeled from one to six.\">\n      <grouped>nodes</grouped>\n      <position>1</position>\n      <children>\n        <active>node-1</active>\n        <active>node-2</active>\n        <active>node-3</active>\n        <active>node-4</active>\n        <active>node-5</active>\n        <active>node-6</active>\n      </children>\n      <components>\n        <active>node-1</active>\n        <active>node-2</active>\n        <active>node-3</active>\n        <active>node-4</active>\n        <active>node-5</active>\n        <active>node-6</active>\n      </components>\n      <parents>\n        <grouped>figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"node-1\" speech2=\"The node 1\">\n      <active>node-1</active>\n      <position>1</position>\n      <parents>\n        <grouped>nodes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"node-2\" speech2=\"The node 2\">\n      <active>node-2</active>\n      <position>2</position>\n      <parents>\n        <grouped>nodes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"node-3\" speech2=\"The node 3\">\n      <active>node-3</active>\n      <position>3</position>\n      <parents>\n        <grouped>nodes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"node-4\" speech2=\"The node 4\">\n      <active>node-4</active>\n      <position>4</position>\n      <parents>\n        <grouped>nodes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"node-5\" speech2=\"The node 5\">\n      <active>node-5</active>\n      <position>5</position>\n      <parents>\n        <grouped>nodes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"node-6\" speech2=\"The node 6\">\n      <active>node-6</active>\n      <position>6</position>\n      <parents>\n        <grouped>nodes</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edges\" speech2=\"There are nine edges, four of which will be removed to form a spanning tree\">\n      <grouped>edges</grouped>\n      <position>2</position>\n      <children>\n        <active>kept-edges</active>\n        <active>removed-edges</active>\n      </children>\n      <components>\n        <active>kept-edges</active>\n        <active>removed-edges</active>\n      </components>\n      <parents>\n        <grouped>figure</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"kept-edges\" speech2=\"We will keep five edges\">\n      <grouped>kept-edges</grouped>\n      <position>1</position>\n      <children>\n        <active>edge-1-3</active>\n        <active>edge-1-5</active>\n        <active>edge-2-5</active>\n        <active>edge-6-2</active>\n        <active>edge-3-4</active>\n      </children>\n      <components>\n        <active>edge-1-3</active>\n        <active>edge-1-5</active>\n        <active>edge-2-5</active>\n        <active>edge-6-2</active>\n        <active>edge-3-4</active>\n      </components>\n      <parents>\n        <grouped>edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-1-3\" speech2=\"We keep the edge connecting nodes 1 and 3\">\n      <active>edge-1-3</active>\n      <position>1</position>\n      <parents>\n        <grouped>kept-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-1-5\" speech2=\"We keep the edge connecting nodes 1 and 5\">\n      <active>edge-1-5</active>\n      <position>2</position>\n      <parents>\n        <grouped>kept-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-2-5\" speech2=\"We keep the edge connecting nodes 2 and 5\">\n      <active>edge-2-5</active>\n      <position>3</position>\n      <parents>\n        <grouped>kept-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-6-2\" speech2=\"We keep the edge connecting nodes 2 and 6\">\n      <active>edge-6-2</active>\n      <position>4</position>\n      <parents>\n        <grouped>kept-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-3-4\" speech2=\"We keep the edge connecting nodes 3 and 4\">\n      <active>edge-3-4</active>\n      <position>5</position>\n      <parents>\n        <grouped>kept-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"removed-edges\" speech2=\"We will remove four edges\">\n      <grouped>removed-edges</grouped>\n      <position>2</position>\n      <children>\n        <active>edge-1-4</active>\n        <active>edge-2-4</active>\n        <active>edge-3-5</active>\n        <active>edge-6-4</active>\n      </children>\n      <components>\n        <active>edge-1-4</active>\n        <active>edge-2-4</active>\n        <active>edge-3-5</active>\n        <active>edge-6-4</active>\n      </components>\n      <parents>\n        <grouped>edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-1-4\" speech2=\"We remove the edge connecting nodes 1 and 4\">\n      <active>edge-1-4</active>\n      <position>1</position>\n      <parents>\n        <grouped>removed-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-2-4\" speech2=\"We remove the edge connecting nodes 2 and 4\">\n      <active>edge-2-4</active>\n      <position>2</position>\n      <parents>\n        <grouped>removed-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-3-5\" speech2=\"We remove the edge connecting nodes 3 and 5\">\n      <active>edge-3-5</active>\n      <position>3</position>\n      <parents>\n        <grouped>removed-edges</grouped>\n      </parents>\n    </annotation>\n    <annotation id=\"edge-6-4\" speech2=\"We remove the edge connecting nodes 4 and 6\">\n      <active>edge-6-4</active>\n      <position>4</position>\n      <parents>\n        <grouped>removed-edges</grouped>\n      </parents>\n    </annotation>\n  </annotations>\n</diagram>\n"
  },
  {
    "path": "examples/sample-slideshow/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- reveal.js testing publication file    -->\n<!-- Override defaults as much as possible -->\n<publication>\n\n    <source>\n        <directories external=\"external\" generated=\"generated\"/>\n    </source>\n\n    <revealjs>\n        <!-- theme=\"solarized\" is the default, see https://revealjs.com/themes/ -->\n        <!-- for other theme options.                                           -->\n        <!-- custom-css is a space-separated list of CSS files to include.      -->\n        <!-- They can be local or remote. If local, they should be under your   -->\n        <!-- \"external files\" directory if you want them automatically copied   -->\n        <!-- to the output folder.                                              -->\n        <appearance theme=\"solarized\" custom-css=\"external/custom.css\"/>\n        <!-- this is a \"resources\" default, but best for a sample -->\n        <resources host=\"cdn\"/>\n        <!-- display=\"yes\" is the default so we can see arrows          -->\n        <!-- tutorial=\"yes\" is the default                              -->\n        <!-- layout=\"bottom-right\" is the default, \"edges\" is an option -->\n        <!-- backarrows=\"faded\" is the default,                         -->\n        <!--     \"hidden and \"visible\" are options                      -->\n        <controls display=\"yes\" tutorial=\"yes\" layout=\"bottom-right\" backarrows=\"faded\"/>\n        <!-- mode=\"default\" is horizontal/vertical two-level navigation              -->\n        <!--   mode=\"grid\" allows direct movement between adjacent vertical segments -->\n        <!--   mode=\"linear\" is more traditional left/right movement for all slides  -->\n        <navigation mode=\"default\"/>\n    </revealjs>\n\n</publication>\n"
  },
  {
    "path": "examples/sample-slideshow/sample-slideshow.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2019 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n<pretext>\n\n    <docinfo>\n        <macros>\n        \\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4}\n        </macros>\n        <latex-image-preamble>\n            \\usepackage{tikz}\n            \\usepackage{nicematrix}             % for multi-run latex-image (label=\"latex-three-pass\")\n        </latex-image-preamble>\n    </docinfo>\n\n    <slideshow>\n        <title>PreTeXt</title>\n        <subtitle>A Slideshow</subtitle>\n\n        <frontmatter>\n            <bibinfo>\n                <author>\n                    <personname>Robert A. Beezer</personname>\n                    <institution>University of Puget Sound</institution>\n                </author>\n                <event>At a Test Conference</event>\n                <date><today/></date>\n            </bibinfo>\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n\n            <abstract>\n                <p>An <tag>abstract</tag> can appear on an early slide, optionally.  This is a standard component of a <pretext/> <tag>article</tag> (but not of a <tag>book</tag>).</p>\n\n                <p>This is a second paragraph of the abstract for this wonderful talk, just so we have something a bit more substantial.</p>\n            </abstract>\n        </frontmatter>\n\n        <section>\n            <title>Explanation</title>\n\n            <slide>\n                <title>What This Is</title>\n\n                <p>This is a <pretext/> <c>slideshow</c> designed mostly for testing new features.  As of 2019-11-16 it is only initiated, and not comprehensive.  If you improve a feature, please add examples here.</p>\n            </slide>\n        </section>\n\n        <section>\n            <title>Lists</title>\n\n\n            <slide>\n                <title>Ordered Lists, All At Once</title>\n\n                <p><ol>\n                    <li>Two conversions: print-on-demand, electronic <init>PDF</init></li>\n                    <li>Extensive use of the <c>tcolorbox</c> package (CSS-like)</li>\n                    <li>Evolving styling/themes (Andrew Rechnitzer, David Farmer)</li>\n                </ol></p>\n            </slide>\n\n\n            <slide>\n                <title>Ordered Lists, With Features</title>\n\n                <p>These are enumerated with capital letters.</p>\n\n                <p><ol marker=\"A\">\n                    <li>Two conversions: print-on-demand, electronic <init>PDF</init></li>\n                    <li>Extensive use of the <c>tcolorbox</c> package (CSS-like)</li>\n                    <li>Evolving styling/themes (Andrew Rechnitzer, David Farmer)</li>\n                </ol></p>\n\n                <p>These are inline</p>\n\n                <p><ol marker=\"i\" cols=\"2\">\n                    <li>print-on-demand</li>\n                    <li>electronic <init>PDF</init></li>\n                </ol></p>\n\n                <p>And these have pauses.</p>\n                <p><ol pause=\"yes\">\n                    <li>Two conversions: print-on-demand, electronic <init>PDF</init></li>\n                    <li>Extensive use of the <c>tcolorbox</c> package (CSS-like)</li>\n                    <li>Evolving styling/themes (Andrew Rechnitzer, David Farmer)</li>\n                </ol></p>\n            </slide>\n\n\n            <slide>\n                <title>Unordered Lists, All At Once</title>\n\n                <p><ul>\n                    <li><p>XML syntax is a nested hierarchy (a tree)<ul>\n                        <li><tag>foo</tag><ellipsis/><tag>/foo</tag></li>\n                        <li><tage>bar</tage></li>\n                        <li><c>&lt;baz qux=\"corge\"&gt;</c></li>\n                    </ul></p></li>\n                    <li>Does not have to be <em>UGLY</em>!</li>\n                    <li><pretext/> is <q>author-friendly</q> (Principle #2)</li>\n                </ul></p>\n            </slide>\n\n\n            <slide>\n                <title>Unordered Lists, With Pause</title>\n\n                <!-- Pauses in interior list only acts oddly -->\n                <p><ul pause=\"yes\">\n                    <li><p>XML syntax is a nested hierarchy (a tree)<ul pause=\"yes\">\n                        <li><tag>foo</tag><ellipsis/><tag>/foo</tag></li>\n                        <li><tage>bar</tage></li>\n                        <li><c>&lt;baz qux=\"corge\"&gt;</c></li>\n                    </ul></p></li>\n                    <li>Does not have to be <em>UGLY</em>!</li>\n                    <li><pretext/> is <q>author-friendly</q> (Principle #2)</li>\n                </ul></p>\n            </slide>\n\n\n            <slide>\n                <title>Description Lists, All At Once</title>\n\n                <p><dl>\n                    <li>\n                        <title>Central Processing Unit (CPU)</title>\n                        <p>Controls most of the activities of the computer, performs the arithmetic and logical operations, and contains a small amount of very fast memory.</p>\n                    </li>\n\n                    <li>\n                        <title>Memory</title>\n                        <p>Provides storage for the instructions for the CPU and the data they manipulate.</p>\n                    </li>\n\n                    <li>\n                        <title>Input/Output (I/O)</title>\n                        <p>Communicates with the outside world and with mass storage devices (e.g., disks).</p>\n                    </li>\n\n                    <li>\n                        <title>Bus!</title>\n                        <p>A communication pathway with a protocol specifying exactly how the pathway is used. (The punctuation is just for testing.)</p>\n                    </li>\n                </dl></p>\n            </slide>\n\n            <slide>\n                <title>Description Lists, With Pauses</title>\n\n                <p><dl pause=\"yes\">\n                    <li>\n                        <title>Central Processing Unit (CPU)</title>\n                        <p>Controls most of the activities of the computer, performs the arithmetic and logical operations, and contains a small amount of very fast memory.</p>\n                    </li>\n\n                    <li>\n                        <title>Memory</title>\n                        <p>Provides storage for the instructions for the CPU and the data they manipulate.</p>\n                    </li>\n\n                    <li>\n                        <title>Input/Output (I/O)</title>\n                        <p>Communicates with the outside world and with mass storage devices (e.g., disks).</p>\n                    </li>\n\n                    <li>\n                        <title>Bus!</title>\n                        <p>A communication pathway with a protocol specifying exactly how the pathway is used. (The punctuation is just for testing.)</p>\n                    </li>\n                </dl></p>\n            </slide>\n        </section>\n\n        <section>\n            <title>Blocks and code</title>\n\n            <slide>\n                <title>Blocks: <tag>definition</tag></title>\n\n                <definition xml:id=\"definition-indefinite-integral\">\n                    <idx>indefinite integral</idx><idx><h>integral</h><h>indefinite integral</h></idx>\n                    <notation>\n                        <usage><m>\\int\\,f(x)\\,dx</m></usage>\n                        <description>indefinite integral of <m>f(x)</m></description>\n                    </notation>\n                    <statement>\n                        <p>Suppose that <m>\\frac{d}{dx}F(x)=f(x)</m>.  Then the <term>indefinite integral</term> of <m>f(x)</m> is <m>F(x)</m> and is written as <md>\\int\\,f(x)\\,dx=F(x)</md>.</p>\n                    </statement>\n                </definition>\n            </slide>\n\n            <slide>\n                <title>Blocks: <tag>theorem</tag></title>\n\n                <p>This should also test other <q>theorem-like</q>, such as <tag>corollary</tag>.</p>\n\n                <theorem xml:id=\"theorem-FTC\">\n                    <title>The Fundamental Theorem of Calculus</title>\n                    <idx><h>Fundamental Theorem of Calculus</h></idx>\n\n                    <statement>\n                        <p>If <m>f(x)</m> is continuous, and the derivative of <m>F(x)</m> is <m>f(x)</m>, then <md>\\definiteintegral{a}{b}{f(x)}{x}=F(b)-F(a)</md><idx><h>test: buried in theorem/statement/p</h></idx></p>\n                    </statement>\n                    <proof>\n                        <p>Left to the reader.</p>\n                    </proof>\n                </theorem>\n            </slide>\n\n            <slide>\n                <title>Code</title>\n\n                <p>Here is an inline bit of code with surrounding text. <c>print(\"hello world\")</c>. Here is a more text. And some more. And yet more. And a full program... with Prism support.</p>\n                <program language=\"python\" line-numbers=\"yes\">\n                    <title>A simple program</title>\n                    <code>\n                        def f(x):\n                            return x**2\n                        \n                        # many intentional blank lines below...\n                        # you may to zoom out, but at some point better to scroll a long listing\n                        \n                        \n                        \n                        \n                        \n                        \n                        \n                        \n                        \n                        \n                        print(f(3))\n                    </code>\n                </program>\n            </slide>\n\n        </section>\n\n        <section>\n            <title>Sage Cell</title>\n\n            <slide>\n                <title>Ramanujan and Integration</title>\n\n                <p>This Sage Cell is testing styling.</p>\n\n                <p>We have some mathematics on the page, to look for Javascript interference with MathJax.  An identity due to Ramanujan:<md>\\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\ldots} } } }</md>.</p>\n\n                <sage>\n                    <input>numerical_integral(sin(x)^2, (0, 2))</input>\n                    <!-- need to use wildcard matching to make this doctestable -->\n                    <output>(1.189200623826982, 1.320277913471315e-14)</output>\n                </sage>\n\n                <p>And some more mathematics.  An identity due to Ramanujan:<md>\\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}} {1+\\frac{e^{-8\\pi}} {1+\\ldots} } } }</md>.</p>\n            </slide>\n        </section>\n\n        <section>\n            <title>Other features</title>\n\n            <slide>\n                <title>Pausing</title>\n\n                <p>Pausing doesn't always act how you expect from <latex />.  The first and third lines are always visible.</p>\n\n                <p pause=\"yes\">But this one needs you to advance the slide.</p>\n\n                <p>(Visible from the outset.)</p>\n            </slide>\n\n            <slide>\n                <title>Subslides</title>\n\n                <p>Subslides are another way to achieve pausing without lists.</p>\n\n                <subslide>\n                    <p>This is a subslide.  It always comes after a pause.</p>\n                    <p><ul pause=\"yes\">\n                        <li>You can also pause within it.</li>\n                        <li>Of course!</li>\n                    </ul></p>\n                </subslide>\n\n                <p>But this is still visible from the outset.</p>\n            </slide>\n\n            <slide>\n                <title>Images, from an external source</title>\n\n                <p>\n                    Images can be included from external sources.\n                    As with other <pretext/> formats,\n                    you can specify the location of your exteral images in the publication file.\n                    The image below also appears in the <pretext/> Sample Article,\n                    and originated at <c>www.texample.net</c>.\n                </p>\n\n                <image source=\"images/complete-graph\" width=\"65%\"/>\n                <p>\n                    You will want to ensure your image has an <attr>width</attr> if you want it to fit correctly in your slide.\n                </p>\n            </slide>\n\n            <slide>\n                <title>Images, from source</title>\n\n                <p>\n                    Images can also be generated from source. TikZ works well, and Asymptote.\n                    They can be placed in a <tag>sidebyside</tag>, and inside a <tag>figure</tag> (or both).\n                </p>\n\n                <p>\n                    Common formatting macros for TikZ and Asymptote (which you expect to use repeatedly)\n                    can be placed in <tag>docinfo</tag>, using <tag>latex-image-preamble</tag>\n                    and <tag>asymptote-preamble</tag>, respectively.\n                </p>\n\n                <p>\n                    Note that 3D Asymptote images will be rendered in WebGL, and will be interactive within your slide.\n                </p>\n\n                <figure xml:id=\"fig-image-demo\">\n                    <caption>Two cone images borrowed from the <pretext /> Sample Article. The one on the left is written in TiZ, and the one on the right is written in Asymptote</caption>\n                    <sidebyside widths=\"47% 47%\">\n                        <!-- <figure xml:id=\"fig-tikz-cone\"> -->\n                            <!-- <caption>The cone from <url href=\"http://www.frontiernet.net/~eugene.ressler/\" visual=\"www.frontiernet.net/~eugene.ressler/\">Sketch</url> used in the Sample Article</caption> -->\n                            <image>\n                                <shortdescription></shortdescription>\n                                <latex-image label=\"img-tikz\">\n                                    \\begin{tikzpicture}[join=round]\n                                    \\tikzstyle{conefill} = [fill=blue!20,fill opacity=0.8]\n                                    \\tikzstyle{ann} = [fill=white,font=\\footnotesize,inner sep=1pt]\n                                    \\tikzstyle{ghostfill} = [fill=white]\n                                        \\tikzstyle{ghostdraw} = [draw=black!50]\n                                    \\filldraw[conefill](-.775,1.922)--(-1.162,.283)--(-.274,.5)\n                                                        --(-.183,2.067)--cycle;\n                                    \\filldraw[conefill](-.183,2.067)--(-.274,.5)--(.775,.424)\n                                                        --(.516,2.016)--cycle;\n                                    \\filldraw[conefill](.516,2.016)--(.775,.424)--(1.369,.1)\n                                                        --(.913,1.8)--cycle;\n                                    \\filldraw[conefill](-.913,1.667)--(-1.369,-.1)--(-1.162,.283)\n                                                        --(-.775,1.922)--cycle;\n                                    \\draw(1.461,.107)--(1.734,.127);\n                                    \\draw[arrows=&lt;-&gt;](1.643,1.853)--(1.643,.12);\n                                    \\filldraw[conefill](.913,1.8)--(1.369,.1)--(1.162,-.283)\n                                                        --(.775,1.545)--cycle;\n                                    \\draw[arrows=-&gt;,line width=.4pt](.274,-.5)--(0,0)--(0,2.86);\n                                    \\draw[arrows=-,line width=.4pt](0,0)--(-1.369,-.1);\n                                    \\draw[arrows=-&gt;,line width=.4pt](-1.369,-.1)--(-2.1,-.153);\n                                    \\filldraw[conefill](-.516,1.45)--(-.775,-.424)--(-1.369,-.1)\n                                                        --(-.913,1.667)--cycle;\n                                    \\draw(-1.369,.073)--(-1.369,2.76);\n                                    \\draw(1.004,1.807)--(1.734,1.86);\n                                    \\filldraw[conefill](.775,1.545)--(1.162,-.283)--(.274,-.5)\n                                                        --(.183,1.4)--cycle;\n                                    \\draw[arrows=&lt;-&gt;](0,2.34)--(-.913,2.273);\n                                    \\draw(-.913,1.84)--(-.913,2.447);\n                                    \\draw[arrows=&lt;-&gt;](0,2.687)--(-1.369,2.587);\n                                    \\filldraw[conefill](.183,1.4)--(.274,-.5)--(-.775,-.424)\n                                                        --(-.516,1.45)--cycle;\n                                    \\draw[arrows=&lt;-,line width=.4pt](.42,-.767)--(.274,-.5);\n                                    \\node[ann] at (-.456,2.307) {$r_0$};\n                                    \\node[ann] at (-.685,2.637) {$r_1$};\n                                    \\node[ann] at (1.643,.987) {$h$};\n                                    \\path (.42,-.767) node[below] {$x$}\n                                        (0,2.86) node[above] {$y$}\n                                        (-2.1,-.153) node[left] {$z$};\n                                    % Second version of the cone\n                                    \\begin{scope}[xshift=3.5cm]\n                                    \\filldraw[ghostdraw,ghostfill](-.775,1.922)--(-1.162,.283)--(-.274,.5)\n                                                                --(-.183,2.067)--cycle;\n                                    \\filldraw[ghostdraw,ghostfill](-.183,2.067)--(-.274,.5)--(.775,.424)\n                                                                --(.516,2.016)--cycle;\n                                    \\filldraw[ghostdraw,ghostfill](.516,2.016)--(.775,.424)--(1.369,.1)\n                                                                --(.913,1.8)--cycle;\n                                    \\filldraw[ghostdraw,ghostfill](-.913,1.667)--(-1.369,-.1)--(-1.162,.283)\n                                                                --(-.775,1.922)--cycle;\n                                    \\filldraw[ghostdraw,ghostfill](.913,1.8)--(1.369,.1)--(1.162,-.283)\n                                                                --(.775,1.545)--cycle;\n                                    \\filldraw[ghostdraw,ghostfill](-.516,1.45)--(-.775,-.424)--(-1.369,-.1)\n                                                                --(-.913,1.667)--cycle;\n                                    \\filldraw[ghostdraw,ghostfill](.775,1.545)--(1.162,-.283)--(.274,-.5)\n                                                                --(.183,1.4)--cycle;\n                                    \\filldraw[fill=red,fill opacity=0.5](-.516,1.45)--(-.775,-.424)--(.274,-.5)\n                                                                        --(.183,1.4)--cycle;\n                                    \\fill(-.775,-.424) circle (2pt);\n                                    \\fill(.274,-.5) circle (2pt);\n                                    \\fill(-.516,1.45) circle (2pt);\n                                    \\fill(.183,1.4) circle (2pt);\n                                    \\path[font=\\footnotesize]\n                                            (.913,1.8) node[right] {$i\\hbox{$=$}0$}\n                                            (1.369,.1) node[right] {$i\\hbox{$=$}1$};\n                                    \\path[font=\\footnotesize]\n                                            (-.645,.513) node[left] {$j$}\n                                            (.228,.45) node[right] {$j\\hbox{$+$}1$};\n                                    \\draw (-.209,.482)+(-60:.25) [yscale=1.3,-&gt;] arc(-60:240:.25);\n                                    \\fill[black,font=\\footnotesize]\n                                                    (-.516,1.45) node [above] {$P_{00}$}\n                                                    (-.775,-.424) node [below] {$P_{10}$}\n                                                    (.183,1.4) node [above] {$P_{01}$}\n                                                    (.274,-.5) node [below] {$P_{11}$};\n                                    \\end{scope}\n                                    \\end{tikzpicture}\n                                </latex-image>\n                            </image>\n                        <!-- </figure> -->\n\n                        <!-- <figure xml:id=\"asy-cone\"> -->\n                            <!-- <caption>A 3D cone from the <url href=\"https://asymptote.sourceforge.io/\" visual=\"asymptote.sourceforge.io/\">Asymptote website</url>, which also appears in the Sample Article</caption> -->\n                            <image>\n                                <shortdescription></shortdescription>\n\n                                <asymptote label=\"img-asymptote\">\n                                    import solids;\n                                    size(0,150);\n                                    currentprojection=orthographic(0,-30,5);\n\n                                    real r=4;\n                                    real h=10;\n                                    real s=8;\n                                    real x=r*s/h;\n\n                                    real sr=5;\n                                    real xr=r*sr/h;\n\n                                    real s1=sr-0.1;\n                                    real x1=r*s1/h;\n\n                                    real s2=sr+0.2;\n                                    real x2=r*s2/h;\n\n                                    render render=render(compression=0,merge=true);\n\n                                    draw(scale(x1,x1,-s1)*shift(-Z)*unitcone,lightblue+opacity(0.5),render);\n\n                                    path3 p=(x2,0,s2)--(x,0,s+0.005);\n                                    revolution a=revolution(p,Z);\n                                    draw(surface(a),lightblue+opacity(0.5),render);\n\n                                    path3 q=(x,0,s)--(r,0,h);\n                                    revolution b=revolution(q,Z);\n                                    draw(surface(b),white+opacity(0.5),render);\n\n                                    draw((-r-1,0,0)--(r+1,0,0));\n                                    draw((0,0,0)--(0,0,h+1),dashed);\n\n                                    path3 w=(x1,0,s1)--(x2,0,s2)--(0,0,s2);\n                                    revolution b=revolution(w,Z);\n                                    draw(surface(b),blue+opacity(0.5),render);\n                                    draw(circle((0,0,s2),x2));\n                                    draw(circle((0,0,s1),x1));\n\n                                    draw(\"$x$\",(xr,0,0)--(xr,0,sr),red,Arrow3,PenMargin3);\n                                    draw(\"$r$\",(0,0,sr)--(xr,0,sr),N,red);\n                                    draw((string) r,(0,0,h)--(r,0,h),N,red);\n                                    draw((string) h,(r,0,0)--(r,0,h),red,Arrow3,PenMargin3);\n                                    draw((string) s,(-x,0,0)--(-x,0,s),W,red,Arrow3,Bar3,PenMargin3);\n                                </asymptote>\n                            </image>\n                        <!-- </figure> -->\n                    </sidebyside>\n                </figure>\n            </slide>\n\n            <slide>\n                <title>Annotated <prefigure/> diagrams</title>\n\n                <p>Annotated <prefigure/> diagrams also work well by including them in the usual way.</p>\n\n                <figure>\n                    <caption>An annotated <prefigure/> diagram that can be explored with a screenreader</caption>\n                    <image width=\"50%\">\n                        <prefigure xmlns=\"https://prefigure.org\"\n                                   label=\"annotated-prefigure-network\">\n\n                            <diagram dimensions=\"(500,400)\" margins=\"5\">\n                                <definition>graph={1:[3,4,5],2:[4,5],3:[4,5],6:[2,4]}</definition>\n                                <coordinates bbox=\"(-1,-1,1,1)\">\n                                    <network graph=\"graph\" scale=\"0.8\"\n\t                                     node-fill=\"#fcf\" node-stroke=\"black\"\n\t                                     seed=\"1\" labels=\"yes\" node-style=\"box\"\n\t                                     tactile-node-size=\"40\">\n                                        <edge vertices=\"[3,5]\" dash=\"9 9\"/>\n                                        <edge vertices=\"[1,4]\" dash=\"9 9\"/>\n                                        <edge vertices=\"[4,6]\" dash=\"9 9\"/>\n                                        <edge vertices=\"[2,4]\" dash=\"9 9\"/>\n                                    </network>\n                                </coordinates>\n\n                                <annotations>\n                                    <annotation ref=\"figure\"\n                                                text=\"A network with six nodes and nine edges.  We will remove four edges to form a spanning tree.\">\n                                        <annotation ref=\"nodes\"\n                                                    text=\"The six nodes are labeled from one to six.\">\n                                            <annotation ref=\"node-1\"\n                                                        text=\"The node 1\"/>\n                                            <annotation ref=\"node-2\"\n                                                        text=\"The node 2\"/>\n                                            <annotation ref=\"node-3\"\n                                                        text=\"The node 3\"/>\n                                            <annotation ref=\"node-4\"\n                                                        text=\"The node 4\"/>\n                                            <annotation ref=\"node-5\"\n                                                        text=\"The node 5\"/>\n                                            <annotation ref=\"node-6\"\n                                                        text=\"The node 6\"/>\n                                        </annotation>\n\n                                        <annotation ref=\"edges\"\n                                                    text=\"There are nine edges, four of which will be removed to form a spanning tree\">\n                                            <annotation ref=\"kept-edges\"\n                                                        text=\"We will keep five edges\">\n                                                <annotation ref=\"edge-1-3\"\n                                                            text=\"We keep the edge connecting nodes 1 and 3\"/>\n                                                <annotation ref=\"edge-1-5\"\n                                                            text=\"We keep the edge connecting nodes 1 and 5\"/>\n                                                <annotation ref=\"edge-2-5\"\n                                                            text=\"We keep the edge connecting nodes 2 and 5\"/>\n                                                <annotation ref=\"edge-6-2\"\n                                                            text=\"We keep the edge connecting nodes 2 and 6\"/>\n                                                <annotation ref=\"edge-3-4\"\n                                                            text=\"We keep the edge connecting nodes 3 and 4\"/>\n                                            </annotation>\n                                            <annotation ref=\"removed-edges\"\n                                                        text=\"We will remove four edges\">\n                                                <annotation ref=\"edge-1-4\"\n                                                            text=\"We remove the edge connecting nodes 1 and 4\"/>\n                                                <annotation ref=\"edge-2-4\"\n                                                            text=\"We remove the edge connecting nodes 2 and 4\"/>\n                                                <annotation ref=\"edge-3-5\"\n                                                            text=\"We remove the edge connecting nodes 3 and 5\"/>\n                                                <annotation ref=\"edge-6-4\"\n                                                            text=\"We remove the edge connecting nodes 4 and 6\"/>\n                                            </annotation>\n                                        </annotation>\n                                    </annotation>\n                                </annotations>\n\n                            </diagram>\n                        </prefigure>\n                    </image>\n                </figure>\n            </slide>\n\n        </section>\n    </slideshow>\n</pretext>\n"
  },
  {
    "path": "examples/showcase/README.md",
    "content": "#PreTeXt Showcase Article\n\nThis folder contains the components for the PreTeXt\nShowcase document.\n\n##Building the Showcase Article\n\nTo build the PreTeXt Showcase article:\n1. Install the PreTeXt CLI (https://github.com/PreTeXtBook/pretext-cli)\n2. From this folder, run `pretext build html` or `pretext build pdf`\n3. To view, run `pretext view html` or `pretext view pdf`\n\n##Notes for Contributors\n\nThis example has several purposes:\n* To demonstrate PreTeXt features\n* To demonstrate best practices when authoring\n* To serve as form of documentation for authors\nwho like to learn from examples\n\nTherefore:\n* Organize with division titles that promote browsing\n* Highlight novel features of PreTeXt, which is not the\nsame as providing a comprehensive example\n* Include comments in the source file where implementation\nis not obvious, such as when settings in `docinfo` are necessary\n* Please observe standards for high-quality source.\nRunning the pretty-printing script across the source\nshould only introduce minimal changes.\n* Do not provide commentary or instruction, just provide\nrealistic examples.  For example, if demonstrating the markup\nfor scientific units:\n  - Do not say, \"And you can put units in the denominator, like m/sec^2.\"\n  - Instead say, \"The acceleration due to gravity is 9.8 m/sec^2.\"\n* Review the existing documentation (in the Author's Guide)\nfor each new feature added, with an eye towards completeness\nand correctness.\n* Add any new generated assets (for example latex-images) to the\nrepository, including in all available formats.\n* Do not commit insignificant changes to the assets. For example\nsome insignificant file diff stemming from using different hardware\nwhile building latex-images.\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/AreaUnderCurve.asy",
    "content": "usepackage(\"amsmath\");\n\ntexpreamble(\"\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\");\n\n\n        import graph;\n        size (3 inch,0);\n        real f(real x) {return exp(-x^2);}\n        real xmin=-2, xmax=2;\n        real ymin=-.3, ymax=1.3;\n        path g=graph(f,xmin,xmax, operator ..);\n        path h=(xmax,f(xmax))--(xmax,0)--(xmin,0);\n        fill(g--h--cycle,lightyellow);\n        draw(g);\n        label(\"$f(x)=e^{-x^2}$\", (xmin,.7),.5*N);\n        draw((xmin,.7){SSE}..{SE}(-.8,f(-.8)),Arrow);\n        label(\"Area $=\\sqrt\\pi$\",(xmax,.7),.5*N);\n        draw((xmax,.7){S}..{W}(.3,.3),Arrow);\n        draw((xmin,0)--(xmax,0));\n        draw((0,ymin)--(0,ymax));\n        "
  },
  {
    "path": "examples/showcase/generated/asymptote/AreaUnderCurve.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%Creator: dvips(k) 2020.1 Copyright 2020 Radical Eye Software\n%%Title: /tmp/tmpy6xdnxcm/out_.dvi\n%%CreationDate: Thu Mar 24 08:49:36 2022\n%%Pages: 1\n%%PageOrder: Ascend\n%%BoundingBox: 197 364 414 427\n%%HiResBoundingBox: 197.5 364.42023 413.5 426.57977\n%%DocumentFonts: CMMI12 CMR12 CMSY8 CMMI8 CMR6 CMSY10\n%%EndComments\n%DVIPSWebPage: (www.radicaleye.com)\n%DVIPSCommandLine: dvips -R -Pdownload35 -D600 -O69.1bp,239.62bp\n%+ -T612bp,792bp -q -o/tmp/tmpy6xdnxcm/out_.ps /tmp/tmpy6xdnxcm/out_.dvi\n%DVIPSParameters: dpi=600\n%DVIPSSource:  TeX output 2022.03.24:0249\n%%BeginProcSet: tex.pro 0 0\n%!\n/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S\nN}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72\nmul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0\n0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{\nlandplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize\nmul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[\nmatrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round\nexch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{\nstatusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]\nN/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin\n/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array\n/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2\narray copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N\ndf-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A\ndefinefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get\n}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}\nB/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr\n1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S\n/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy\nsetcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask\nrestore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn\n/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put\n}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{\nbop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A\nmul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{\nSI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{\nuserdict/start-hook known{start-hook}if pop/VResolution X/Resolution X\n1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4\nindex cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N\n/dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3\ndef}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90\nrotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0\nN/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop\nfalse[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A\nlength product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}\nforall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{\nBDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat\n{BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch\nround exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0\nrlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B\n/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}\nB/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p\n-3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{\n0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end\n\n%%EndProcSet\n%%BeginProcSet: l3backend-dvips.pro 0 0\n%%\n%% This is file `l3backend-dvips.pro',\n%% generated with the docstrip utility.\n%%\n%% The original source files were:\n%%\n%% l3backend-header.dtx  (with options: `header,dvips')\n%% \n%% Copyright (C) 1990-2021 The LaTeX Project\n%% \n%% It may be distributed and/or modified under the conditions of\n%% the LaTeX Project Public License (LPPL), either version 1.3c of\n%% this license or (at your option) any later version.  The latest\n%% version of this license is in the file:\n%% \n%%    https://www.latex-project.org/lppl.txt\n%% \n%% This file is part of the \"l3backend bundle\" (The Work in LPPL)\n%% and all files in that bundle must be distributed together.\n%% \n%% File: l3backend-header.dtx\n/color.sc { } def\nTeXDict begin\n/TeXcolorseparation { setcolor } def\nend\ntrue setglobal\n/pdf.globaldict 4 dict def\nfalse setglobal\n/pdf.cvs { 65534 string cvs } def\n/pdf.dvi.pt { 72.27 mul Resolution div } def\n/pdf.pt.dvi { 72.27 div Resolution mul } def\n/pdf.rect.ht { dup 1 get neg exch 3 get add } def\n/pdf.linkmargin { 1 pdf.pt.dvi } def\n/pdf.linkdp.pad { 0 } def\n/pdf.linkht.pad { 0 } def\n/pdf.rect\n  { /Rect [ pdf.llx pdf.lly pdf.urx pdf.ury ] } def\n/pdf.save.ll\n  {\n    currentpoint\n    /pdf.lly exch def\n    /pdf.llx exch def\n  }\n    def\n/pdf.save.ur\n  {\n    currentpoint\n    /pdf.ury exch def\n    /pdf.urx exch def\n  }\n    def\n/pdf.save.linkll\n  {\n    currentpoint\n    pdf.linkmargin add\n    pdf.linkdp.pad add\n    /pdf.lly exch def\n    pdf.linkmargin sub\n    /pdf.llx exch def\n  }\n    def\n/pdf.save.linkur\n  {\n    currentpoint\n    pdf.linkmargin sub\n    pdf.linkht.pad sub\n    /pdf.ury exch def\n    pdf.linkmargin add\n    /pdf.urx exch def\n  }\n    def\n/pdf.dest.anchor\n  {\n    currentpoint exch\n    pdf.dvi.pt 72 add\n    /pdf.dest.x exch def\n    pdf.dvi.pt\n    vsize 72 sub exch sub\n    /pdf.dest.y exch def\n  }\n    def\n/pdf.dest.point\n  { pdf.dest.x pdf.dest.y } def\n/pdf.dest2device\n  {\n    /pdf.dest.y exch def\n    /pdf.dest.x exch def\n    matrix currentmatrix\n    matrix defaultmatrix\n    matrix invertmatrix\n    matrix concatmatrix\n    cvx exec\n    /pdf.dev.y exch def\n    /pdf.dev.x exch def\n    /pdf.tmpd exch def\n    /pdf.tmpc exch def\n    /pdf.tmpb exch def\n    /pdf.tmpa exch def\n    pdf.dest.x pdf.tmpa mul\n      pdf.dest.y pdf.tmpc mul add\n      pdf.dev.x add\n    pdf.dest.x pdf.tmpb mul\n     pdf.dest.y pdf.tmpd mul add\n     pdf.dev.y add\n  }\n    def\n/pdf.bordertracking false def\n/pdf.bordertracking.begin\n  {\n    SDict /pdf.bordertracking true put\n    SDict /pdf.leftboundary undef\n    SDict /pdf.rightboundary undef\n    /a where\n      {\n        /a\n          {\n            currentpoint pop\n            SDict /pdf.rightboundary known dup\n              {\n                SDict /pdf.rightboundary get 2 index lt\n                  { not }\n                if\n              }\n            if\n              { pop }\n              { SDict exch /pdf.rightboundary exch put }\n            ifelse\n            moveto\n            currentpoint pop\n            SDict /pdf.leftboundary known dup\n              {\n                SDict /pdf.leftboundary get 2 index gt\n                  { not }\n                if\n              }\n            if\n              { pop }\n              { SDict exch /pdf.leftboundary exch put }\n            ifelse\n          }\n        put\n      }\n    if\n  }\n    def\n/pdf.bordertracking.end\n  {\n    /a where { /a { moveto } put } if\n    /x where { /x { 0 exch rmoveto } put } if\n    SDict /pdf.leftboundary known\n      { pdf.outerbox 0 pdf.leftboundary put }\n    if\n    SDict /pdf.rightboundary known\n      { pdf.outerbox 2 pdf.rightboundary put }\n    if\n    SDict /pdf.bordertracking false put\n  }\n    def\n  /pdf.bordertracking.endpage\n{\n  pdf.bordertracking\n    {\n      pdf.bordertracking.end\n      true setglobal\n      pdf.globaldict\n        /pdf.brokenlink.rect [ pdf.outerbox aload pop ] put\n      pdf.globaldict\n        /pdf.brokenlink.skip pdf.baselineskip put\n      pdf.globaldict\n        /pdf.brokenlink.dict\n          pdf.link.dict pdf.cvs put\n      false setglobal\n      mark pdf.link.dict cvx exec /Rect\n        [\n          pdf.llx\n          pdf.lly\n          pdf.outerbox 2 get pdf.linkmargin add\n          currentpoint exch pop\n          pdf.outerbox pdf.rect.ht sub pdf.linkmargin sub\n        ]\n      /ANN pdf.pdfmark\n    }\n  if\n}\n  def\n/pdf.bordertracking.continue\n  {\n    /pdf.link.dict pdf.globaldict\n      /pdf.brokenlink.dict get def\n    /pdf.outerbox pdf.globaldict\n      /pdf.brokenlink.rect get def\n    /pdf.baselineskip pdf.globaldict\n      /pdf.brokenlink.skip get def\n    pdf.globaldict dup dup\n    /pdf.brokenlink.dict undef\n    /pdf.brokenlink.skip undef\n    /pdf.brokenlink.rect undef\n    currentpoint\n    /pdf.originy exch def\n    /pdf.originx exch def\n    /a where\n      {\n        /a\n          {\n            moveto\n            SDict\n            begin\n            currentpoint pdf.originy ne exch\n              pdf.originx ne or\n              {\n                pdf.save.linkll\n                /pdf.lly\n                  pdf.lly pdf.outerbox 1 get sub def\n                pdf.bordertracking.begin\n              }\n            if\n            end\n          }\n        put\n      }\n    if\n    /x where\n      {\n        /x\n          {\n            0 exch rmoveto\n            SDict\n            begin\n            currentpoint\n            pdf.originy ne exch pdf.originx ne or\n              {\n                pdf.save.linkll\n                /pdf.lly\n                  pdf.lly pdf.outerbox 1 get sub def\n                pdf.bordertracking.begin\n              }\n            if\n            end\n          }\n        put\n      }\n    if\n  }\n    def\n/pdf.breaklink\n  {\n    pop\n    counttomark 2 mod 0 eq\n      {\n        counttomark /pdf.count exch def\n          {\n           pdf.count 0 eq { exit } if\n           counttomark 2 roll\n           1 index /Rect eq\n             {\n               dup 4 array copy\n               dup dup\n                 1 get\n                 pdf.outerbox pdf.rect.ht\n                 pdf.linkmargin 2 mul add sub\n                 3 exch put\n               dup\n                 pdf.outerbox 2 get\n                 pdf.linkmargin add\n                 2 exch put\n               dup dup\n                 3 get\n                 pdf.outerbox pdf.rect.ht\n                 pdf.linkmargin 2 mul add add\n                 1 exch put\n               /pdf.currentrect exch  def\n               pdf.breaklink.write\n                 {\n                   pdf.currentrect\n                   dup\n                     pdf.outerbox 0 get\n                     pdf.linkmargin sub\n                     0 exch put\n                   dup\n                     pdf.outerbox 2 get\n                     pdf.linkmargin add\n                     2 exch put\n                   dup dup\n                     1 get\n                     pdf.baselineskip add\n                     1 exch put\n                   dup dup\n                     3 get\n                     pdf.baselineskip add\n                     3 exch put\n                   /pdf.currentrect exch def\n                   pdf.breaklink.write\n                  }\n                1 index 3 get\n                pdf.linkmargin 2 mul add\n                pdf.outerbox pdf.rect.ht add\n                2 index 1 get sub\n                pdf.baselineskip div round cvi 1 sub\n                exch\n              repeat\n              pdf.currentrect\n              dup\n                pdf.outerbox 0 get\n                pdf.linkmargin sub\n                0 exch put\n              dup dup\n                1 get\n                pdf.baselineskip add\n                1 exch put\n              dup dup\n                3 get\n                pdf.baselineskip add\n                3 exch put\n              dup 2 index 2 get  2 exch put\n              /pdf.currentrect exch def\n              pdf.breaklink.write\n              SDict /pdf.pdfmark.good false put\n              exit\n            }\n            { pdf.count 2 sub /pdf.count exch def }\n          ifelse\n        }\n      loop\n    }\n  if\n  /ANN\n}\n  def\n/pdf.breaklink.write\n  {\n    counttomark 1 sub\n    index /_objdef eq\n      {\n        counttomark -2 roll\n        dup wcheck\n          {\n            readonly\n            counttomark 2 roll\n          }\n          { pop pop }\n        ifelse\n      }\n    if\n    counttomark 1 add copy\n    pop pdf.currentrect\n    /ANN pdfmark\n  }\n    def\n/pdf.pdfmark\n  {\n    SDict /pdf.pdfmark.good true put\n    dup /ANN eq\n      {\n        pdf.pdfmark.store\n        pdf.pdfmark.dict\n          begin\n            Subtype /Link eq\n            currentdict /Rect known and\n            SDict /pdf.outerbox known and\n            SDict /pdf.baselineskip known and\n              {\n                Rect 3 get\n                pdf.linkmargin 2 mul add\n                pdf.outerbox pdf.rect.ht add\n                Rect 1 get sub\n                pdf.baselineskip div round cvi 0 gt\n                  { pdf.breaklink }\n                if\n              }\n            if\n          end\n        SDict /pdf.outerbox undef\n        SDict /pdf.baselineskip undef\n        currentdict /pdf.pdfmark.dict undef\n      }\n    if\n    pdf.pdfmark.good\n      { pdfmark }\n      { cleartomark }\n    ifelse\n  }\n    def\n/pdf.pdfmark.store\n  {\n    /pdf.pdfmark.dict 65534 dict def\n    counttomark 1 add copy\n    pop\n      {\n        dup mark eq\n          {\n            pop\n            exit\n          }\n          {\n            pdf.pdfmark.dict\n            begin def end\n          }\n        ifelse\n      }\n    loop\n}\n  def\n%% \n%%\n%% End of file `l3backend-dvips.pro'.\n\n%%EndProcSet\n%%BeginProcSet: texps.pro 0 0\n%!\nTeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2\nindex/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll\nexec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0\nne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{\npop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get\ndiv def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type\n/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end\ndefinefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup\nsin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll\nmul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[\nexch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}\nforall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def\nend\n\n%%EndProcSet\n%%BeginProcSet: special.pro 0 0\n%!\nTeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N\n/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N\n/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N\n/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{\n/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho\nX}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B\n/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{\n/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known\n{userdict/md get type/dicttype eq{userdict begin md length 10 add md\nmaxlength ge{/md md dup length 20 add dict copy def}if end md begin\n/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S\natan/pa X newpath clippath mark{transform{itransform moveto}}{transform{\nitransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll\ntransform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll\ncurveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf\npop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}\nif}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1\n-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3\nget ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip\nyflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub\nneg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{\nnoflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop\n90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get\nneg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr\n1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr\n2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4\n-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S\nTR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{\nResolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale\n}if 0 setgray}N/@beginspecial{SDict begin/SpecialSave save N gsave\nnormalscale currentpoint TR @SpecialDefaults count/ocount X/dcount\ncountdictstack N}N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto\n0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale\nang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}\nifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale\nllx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly\nlineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N\n/erasepage{}N/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{\ncount ocount sub{pop}repeat countdictstack dcount sub{end}repeat\ngrestore SpecialSave restore end}N/@defspecial{SDict begin}N\n/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX\ncurrentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY\nmoveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X\n/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0\n1 startangle endangle arc savematrix setmatrix}N end\n\n%%EndProcSet\n%%BeginFont: CMSY10\n%!PS-AdobeFont-1.0: CMSY10 003.002\n%%Title: CMSY10\n%Version: 003.002\n%%CreationDate: Mon Jul 13 16:17:00 2009\n%%Creator: David M. Jones\n%Copyright: Copyright (c) 1997, 2009 American Mathematical Society\n%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY10.\n% This Font Software is licensed under the SIL Open Font License, Version 1.1.\n% This license is in the accompanying file OFL.txt, and is also\n% available with a FAQ at: http://scripts.sil.org/OFL.\n%%EndComments\nFontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup\n/UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse\n{save true}{false}ifelse}{false}ifelse\n11 dict begin\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def\n/FontName /CMSY10 def\n/FontBBox {-29 -960 1116 775 }readonly def\n/PaintType 0 def\n/FontInfo 9 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\050c\\051 1997, 2009 American Mathematical Society \\050<http://www.ams.org>\\051, with Reserved Font Name CMSY10.) readonly def\n/FullName (CMSY10) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/ItalicAngle -14.04 def\n/isFixedPitch false def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 112 /radical put\nreadonly def\ncurrentdict end\ncurrentfile eexec\nD9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0\n7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81\nDE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91\n511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6\n1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD\n028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86\n1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4\n3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021\n91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2\nE0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A\n11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97\nC14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857\nD17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20\nB6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3\n93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F\n10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D\n7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF\nB933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B\n491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB\nF5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6\n019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6\n915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36\n356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0\n5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D\n9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64\n3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1\nFBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252\n720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5\nD434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726\nBD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5\n7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377\nDFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56\nAC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7\nA97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E\n0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743\nAD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18\nCBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023\n0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD\n5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B\n5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F\nE9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB\n54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809\nE13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F\nA140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906\n4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378\n4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4\n038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4\nB2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308\n5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC\nB645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837\nA3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD\n2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D\nCEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246\n455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE\nFAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03\n16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C\n16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F\n483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352\n67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2\n3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472\n1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770\n93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA\n051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B\n8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4\n8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436\n6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0\n06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7\n84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0\nD6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6\nDC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB\n0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD\n8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC\nC5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34\n754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406\n1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05\nCCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523\n1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F\n153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02\n905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718\n617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2\n8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A\n98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278\n53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B\n888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D\n052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A\nCA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501\nA01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F\n07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56\nB5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672\n10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2\nCA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D\n3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12\nD4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F\n849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16\n648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE\n84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA\n2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD\n2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204\n9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0\nB45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B\nD9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7\n135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE\nEB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939\nC1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782\n7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0\n4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2\n9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171\n050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486\n3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271\nC76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8\n843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342\nCD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B\nB91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50\n3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175\n19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946\nFF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0\n17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6\n8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B\nCC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003\nF11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194\n1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E\n4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194\n2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929\n9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593\nE74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB\n8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB\nBD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027\n04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5\nC69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404\nABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C\n4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909\n84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6\nC3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6\n09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777\nD9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503\n56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF\n035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB\nFE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333\nCB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663\nB678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A\nF974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD\nCD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B\n0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C\nB635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9\n33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6\n4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D\nF844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E\n2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A\nCFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5\n88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37\n17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0\n55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A\nA6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50\n2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3\n406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8\nAB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B\n60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388\nC27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6\n5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50\n822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E\n94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02\nD71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA\n343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE\n894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5\nDC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327\nDD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F\n8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324\nA718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA\nDA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270\nE7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947\nDFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC\n4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653\n5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1\n02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8\n88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70EB02A\n60651FC2E263002D3986B7B20CC2AA08330B9FC2E26765CD52266969A86EE30E\n71E0B41B6C1C6DA423D3A7E1553D2FAF26EF40DC183099322D362E4965695C52\n9FC3E5BD7ABD743CDCB717DB10372A722A39CE53FABB454EADE2179C4CBFC016\nA8E893C28EF549CA1692C8D8ADFC471DCCDE266FB4E97A1F3035801F3F034D44\nAE6ADA0192657E8078A1D27420093FEBA111333314658021B90DA4E7A8D4B829\nF1795501020D5FF0AD25584C1D568EB61E7A468B41B75891A32F6702E0FF3BAF\n79A37867B3E10F6F0EFF20DF7D7829ED6B654CD4FBD5592E82A5EAE68B9E9DEA\nA3B621EFDB9DDB9BFC5335B4D267D8411D91E7AF1E83A55024591A98ACDF3307\nF29891E6DD71C83FF87251BEBF638C493773407670A93B2E687C9BB9764EF06E\n6BB743E9D6FD1C2ED638BF46B08CBEA45460AD155927F4089109E79A071F621F\n0483122F72A4C8F0A1AA7F86A2826B08457592B7C6D170DAB85C0A169AEBAE83\n0904900C58F9062994FEC964697458FB0B1F6FCAA80640260715E80557944B91\n2054838E945F8E7D4D1DF87FA94F\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n{restore}if\n%%EndFont \n%%BeginFont: CMR6\n%!PS-AdobeFont-1.0: CMR6 003.002\n%%Title: CMR6\n%Version: 003.002\n%%CreationDate: Mon Jul 13 16:17:00 2009\n%%Creator: David M. Jones\n%Copyright: Copyright (c) 1997, 2009 American Mathematical Society\n%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR6.\n% This Font Software is licensed under the SIL Open Font License, Version 1.1.\n% This license is in the accompanying file OFL.txt, and is also\n% available with a FAQ at: http://scripts.sil.org/OFL.\n%%EndComments\nFontDirectory/CMR6 known{/CMR6 findfont dup/UniqueID known{dup\n/UniqueID get 5000789 eq exch/FontType get 1 eq and}{pop false}ifelse\n{save true}{false}ifelse}{false}ifelse\n11 dict begin\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def\n/FontName /CMR6 def\n/FontBBox {-20 -250 1193 750 }readonly def\n/PaintType 0 def\n/FontInfo 9 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\050c\\051 1997, 2009 American Mathematical Society \\050<http://www.ams.org>\\051, with Reserved Font Name CMR6.) readonly def\n/FullName (CMR6) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/ItalicAngle 0 def\n/isFixedPitch false def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 50 /two put\nreadonly def\ncurrentdict end\ncurrentfile eexec\nD9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551\nE6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078\n0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273\nC01924195A181D03F5054A93B71E5065F8D92FE23794D2DAE339BA29C1C6F656\n1DEF13780383DAE38A868377CC7D396B2A05F341AEE0F8BD0A0191F51AD11A4D\n2E927B848A1EF2BA15CFBE57A51E3AF07598275195C9613041F71C1AF39E61F9\nEFD5F6512FBDA76E29DE6B508F62F5CF9F73F5288DF1C7B0B82C92D3B6358BAD\nEC3CA20BDE55DAA7CC58004AA86B6CBF8C410D8287E88BF20588A39309C2B703\nCED322F030AA6069869064486CA651DA054FF3F5E56534CA358B0829A6B954D8\n9103436E6B06DAD1658BD4A95AB41343B01F5866FC87C4EDFC71F1477C98F8E1\n1DCF27EF743FF90BF918AB8C4E5AC35841E2F745480E5EDE1C1DEAFAD8D0018D\n2C1F1CFCAD9F6609859DEDFD1648A6CD23D8ABB80747F94899F17C8F3E6CA55A\nE176F19CDFDAA0D7C920B3A72051A4745560AC81978C92459EEE5AFE85AB247A\n32981139CBE352B248F4BE5F73503A084A3E91F05328EE521D9669E44E202584\n5407E7846F9FEE3D54EA18FFB144BF2D6803BF65AE402034B3CDBB40DD24217A\n3CE0E95E2717CACD603A958187C42B3558AA38D6B6390EEEDD396F96E6041FCF\n6F8888221AFA87EAD79F46E0E32CAED91E6C8500879AB6E580C581E8C8CE9B68\n2BB5EFE2604E8DCB2432D39D75EE556969F1B2FBDF6A4BC72D106AA7CF22C268\n464027898B311613E06E1584707F262F71D9F49D2149306A88E02BC60BBD6BDB\nEF41D90F19197BA9AEF32B5E63D5B9FF41B5602F9F786E76621DA54D574981AB\n87A72081EA05D6C6BA940EFEBD0904EA4E77BBCE17E20B42E1722617E0F6EF32\nF1ACDE9D758594E9C81049CCC10605A27C2A06872FBA9F159CB155609B496ADA\n4886F478E44029B5E620DE8319E257697E93E1CDFD27D560E2E4D34507020E2C\nD9FF06BFA14E056D81DF701FAC3ACE4BE6C098AE116E079F0044391EC1661F6E\n7A93B9320BD7F91E8FD2E8EB3F5CAE997D5CDD35107A1D35302260D1499B8B65\n39625B7925F97D917B66BAFEEA992873F07220714F192839948CEA080BDB9A03\n77B9DD032273DDB5629CB28B5D8797EDEFDBC601823E038384C90C79012A7D96\n8F27784DA15BACE21501C26E3AFA5DCCE81B52B0ABAF71A35D33103EA86F2415\nA39A830D559C5C6CA7423945BD3DFA942B20A06D7A8D8671F9831DBB52907AB4\n4E54776D29C6085CD9970B6DD21DD3EA8EB09C49CBEC6CDCEEB0BBB1B8827109\n3BDE64DDA024D67F098D6C1998506DDFF7907ABAADA1C39C759C850E0C6F8E89\nA392D1C9329ACFFA92D361218D75E115F70A47C53B73B356D703E9C499AAD098\nAA9C8119EE9E9708A9EA3049E976FA19AD04210D5F6092C7903FD155113F3A3F\n269B746560F70970AC9F8D09956E0E84DACE4112C4E7C7F6B3F0B63D26EFF95E\n2B2E9699D16BC8AFC4AD9113AA3A974C9E82E877288CF71E9169D2DCC61AAAA6\nC536E5604EF0716F6487292BBB677518504B52C63822BED3BD5FD14EB41EE6A8\nAD4B6CF90D39F98E12A765B645CBA3E8552FB9A986390212CE119E7C3DD675AC\n17BD006144BEC534DA2A860188619F17589008409C5A309CB83FBA70F6446B6E\n2B56991B6A03B1DE10C621591CEE45BECA27C54BC8B4F1754A9E8F660812710E\n117850E1BB6FD89BB13F8CE391C43DA89EA67E9C3E7A4697790EA26B0E4E2E80\nDCA508873A7AFFC11B8C02EF86C2316E8D8B6BCEA37F81A3A87546705F070C3B\n9D4D28C366CEBC1EE485B8E2357DBE46E86C87B9939DADA60888AA9F1B92FECC\nCC1C198DDB594BB70A8FE690ECAC21A414BAC89BF019F34D2A130F485EAE35B7\n2A10C67EA3A48A4D9734759CC93AD85C6A570500AE5AC9973FC76EFA06BF5DDC\n26E20E28D16B50957EE01AF2653F8D860817967AA5A9BF9BF7ABCDA710E9F34F\n4F0EBCC32B3C9C2971F6225D2DAA6A451366B83F32B2ACB83E746D365B2DE38D\nC1AB7447FE7B37F9630E410E5D8F0ECE74DF46C538947B3A167AD9F3E4A7EB3D\n60F5425AE75AC3A27D39311DA35696C3DC7282AF1532E7AECE63D13DDA0296A2\n01487185FDF1875AEF55A36C17D6A8DD329279D229259463A2F05CB7A874374B\nE2320E1F6CFECB9C1CE62FF468C29751ACD9754AF1EABE8E7696C2888914416E\n235B6766F20FFBEFF285277B639A51EA2F2E30D207BC891B00F0436008F980E0\n9EEE7FB375BB069B9E0BA11DA951A99D8E60B4F920A0495C247FA7DE904765AB\nDB5C3B2D634757E43EDD6FAA4DB3C67F82D6853E1170F0B2D8CE496DD4E72B0D\n28277BEF172F1402959F64527F9B640619F04416DDB9D05FB2ACD019CB9C119E\nE544D24EA6DAC5C69785394EA50E6EC9AAA9E14B904EAF29A733C6D7942B63F4\n85729686742F26DEF78DF0DA1CA7CEFBB684F4CAD99021A3B3D1FE03B9C5A4B1\nBD04CAC89BB91B11952A2B17A61789BEE0C54B46C03FE9A1AE73D17CF94BA30A\n237C29D414C3BCE8E3E2DDF83C0BD59DCB66C4D2C3DE73DA8378F3C6C8035D28\n7464399857E57651A53E9C4AA68DFCA91B2376CF98AC5290FDB9BDAD9EF1604E\n9B0A70EDDA1E564B6D2456E7BC722454ACA8C4950FDD44B6EB9AD01169A9F845\nB06A0DDB7897C847A5B1F42258AECF3807AE936C8F52C3A7A0A85D68160AE442\nFE81543DA6702D76AB6E8701F80DFC1D87C961E350D0E52AB2A298B9E5908600\n7E14D2A87309043CBF13F69AEAAB1BC239DEA88EB5176624F6046664B1D2691F\nFBB2071D3706F97DCCA355A6DCC4D09FD35DC078FBAAF672FFDECEC61050A120\n10B5A96629041303FD01ACCC7686165DED6AA712FF8E5E85DE33C4E7D877C49C\n6C469A90410BAF60BE65ECD91CDC2EE7AC0CA8BA7B53865F26092BFCAA0BCA77\nB80DC51DAD09C93C8DD8E43502B4B68F3D5918C3492196292447732BA90F5AB4\n9F5E1D634ADE1CCAAD028DE5EBA9535F6FC5908DBD2D643E0A7E059C8C386FDC\nE72659C0033F535C0D7F6B98D0335552D0BF3C6E302B672A5EAADFCEF81912E3\n8F54E6FB7EC2B325125159713D0AC50DEE3673B9B148643727E94C80971A2E73\n5E1E13237BE69C84FC039DCE02ECE2668AFD047F21A61BB94A9F498C9FE5CDEA\nB274B40728B6F6CA9B6C15BAAF92F465B0D7311B46545CBA90D874839443CCB9\n3110F052EB247B24B45A3D2FA6FBC7EB2A4BEC2A5892914B3C5EA3F4F9B9DCBF\n6F932D95700E045B49E4B1F2C9D2A42CF39CA2F5A2654E6E8E6E92473D28AACD\n5E35C6705EA728F704F5996D286BED433F976AB7E018621A577AED7C0AC0A84E\nA032FE1869F603E6F20386E3A190A30A21EA886249ECF8CDDE2C33D73BA8647A\n3DCA7A8DD9E8EC8D9A415D126BA38B6771C489DFC419303EE9C1B83FBFB3A0B8\n97D64F30E4BCBEC24DF603FF3BF541E00D5804B6B6543D3D2B661CC551D497A9\n9DFFF535AF424B2F3150BB39AAE8CDB306AAD37767BA10BADB031DC2FAB16955\nEE78342CCC0E8B5976BF98F215461A8C6F63EBE6E2F1A1104662DDE53388CB51\n8B44F3534853B8095F3B746A2459C2EF800FB1EF7F235EBAA9731E3AB3BE4369\n1D3636E3ADD5BDF0C34FA80E90D8A1DDE770943FD196E0A7C5F1FAF6970B34C6\n4673AACA6B2B5C12B9608521AE736C1F4B97209B063D991300ED5AF3D7F27E76\n68E0B858FD8BFF86581E2B9548C691E3E5D9EC4D39C9715CDE86C7D22223CCEB\n8A38C776A30AF14912390A7546DBECECD7A687D4F08646E57A12C80DCA022B7A\n33399761A50B8E0ABEFA1163EDEC3DFB5DA3248792EEEDD894872D4E6814B4C3\n548BAFCDE0CABBCDB97EC6D1BA47F2E77CC1389BF19D73661749AC33F46A618E\nA665A85776545BF9662F2179D7BFD604FA8EF4700591AF3AEC647E27B24B76F3\n133F9198DC15C1AED830E737909E43EB91C334C44BA35810007A3888E33F5DA5\nB3B2C35481C648AFE630CC3E08F77744E401B2934E407D1EC17ECE737606B076\nF8DE8EF3344F57495EF49D11580D6FB28AE0B1422521B320843B13467501CAE2\n3DB93D7BB779F73B6AA30050DA74BDBC3F8DBB30F32EAFD07734A151BB2BAED5\nC9B1F790059339B64BB4146470F30928C9A49AE88906BD6FDB7431A4B50809CE\n0F67ABA01CDCC2320B0B097187B9299E3D80CDD7BB5DD5BFA7B28D924C5633C5\n45A23CCEE097C41C3759C1FA8DBA0DD95034BCA89BD23FAC18C70093F40FF2F8\n0FAC5DD4835F2DFD40540E9A9E9FD951A8AF2CB766597DE00147B163BACFB7E6\nEFDA4DED594F1C746D8B46A1145E0E4058F5917B3F21E9BEBDE745EE72CDCA64\nFB31EF7A2E55265F32559480E2B6726D3DE26FFC97EB4E3160F117E890C4B2E5\n8DF310E6A728ABA85540F571C024F8DD58E1D7827FE97CED5EB31547EBC36415\n02B8C0E10B7E37D816F01D56A364B8552CBFAAA95BC4BDDCFDE91CE0EF005B4B\n7AB56FFB47A093AEDF0DE1EA48FC8103CA3CA1470864D2693E360006D05668A8\nAA422CCCED20DCEEBEA5CE0DA1EFB00FB93E922B18124FA11A88D0F6E0F719DA\n57603DD5DA42E1C56C2FD9E5415AA199D4F334C151C1157E75C107FBBFCEB706\n5F4EA47A29B54ED8CAEB8DDA2F53D2A703B95487619780A52DA1270011648A28\nAA64338E04AA5B92C1EDF3D8DA34FA6D227A0325EA6F22E9B38B6338C657BB21\nCD4C582DC04010330F62923F817E4EDC6E5C0E6500F2A975A8A95BAA30C4A134\nBB31B5AC45A2E7F6E9CDFC810D41344C4F606049445F8E93D74271C1E29DF7CB\n5459593BA28AECF64D903D3E4D77CF5C04B06DE44A41EE4D9FC769854503AC85\n69E4A5106E84016DE3D59865D4AB30BD6C9E45C45DCB5408421CC50CD6179C85\n34E55CC70FBD8FEFE9F1D5160664981716E3BC7F24B6F54E0323D9BC4B692971\n24419EE62D8B0BA726E2B4294A9A76F328B8101DA29E78BD5C4AC383350FE196\n4D42DB1653637D19530124858950C22F1E9CF5BC07D46B7A58CDE19CC88DCD2E\n7FE4EEFD8AA6047E919823C8CAB2EF5274F45E861E6508CC11A8AA90AED2403A\nB2BF1315C2157B3B50A3685205D93E40906EEE9DE5985405974BCE0B84BB37DB\n080A45C5237B269B93C0A7CF294A18B45464A41F604C494CBEF829A381155CFD\n71CEEA54CC39EEDB6DF58A9896246B09F95DC6BC40BA6916AAB5ED3D24F66154\n3662F8978FC63DA9280FF7ADB09EA5BA79D3B66E0C88BEC1EDD78DA93839073A\nA4D7B0E627000C4ABA76C47CCFEE92E319315333A5584A951E34C55412049C4A\nA5569FE65A006F77B416E0530AB6A8E7AD6C72340AD4CE25937158FABB2153EA\n281E1D840206F5DA38E00815E9081F81DAB9FAA8F4DAB305867AC84735DB4F52\nA36129929BD2084A8EA37BB6889695204BF7290B68D5E722540BF8A276F8BB6D\n451D582EE59D2FF03F6B97DDE05FA00C3D375D2D0AAC8FE298F85CC067B15481\n48D70B6A0354C705715B891915FE8EA45244677B9FCE81E72D66177E309F3F83\nF744B9EA9E55C3B30DEC6E5E03B3988FD526A82A5E8E1DC79127FC62B2FA7949\nB3AD3148868DE22BD4B5708E32CEAAE6ADEED1F463EAB9692411E18F8D6BF391\n126B2700B4CF3B59D02E3F8795130C96285A63FCD1E0F647ACB1D35E9C58BD01\n1DD06BABA00CA4343BEBEDBE677E053E9732B33A7495DF51782A07DA07F5646C\n770C957AD915CC70BA8E08BE7A1F4E6BA5BB9C603E38F6FB0A2578471C4D02F4\n283069856D926B9076EC73AA39CEB0A061AFF1575C7093FDAC9F89C3DC06EA45\n06F3C2A3BC9FF21128B10CB758DF0F099B459A5264A8C24C098110D2BA1A8532\n8FAE146A91BA7D033F591AB1A94B8A6FE0FFB610F698D216D58B4EF6C87B1524\n8037CBB7E23D8550A620341C6625A1A2ECE7CEE2598D66277F857231A36155E3\n984F147783E9B93975AC38A29F2FBCF704C8A04AD84C3E04A12D2321FA56811A\n5B6744813CCC187968C5C26BB8D3E6615A912FA5369C01CCF8C0DB790593B190\n1A90CFB5339B8771F325C5FC448D36C7312B11A15A8635BAB59CF3CAD176131E\n026F6E141B2619EF7F3048750CC9291397F141591EEC8B612D6656DD34DB54D6\nDBDD303CED74BE76664E7DC86FCFEEF2001C9DBA56418FB61F589566A47AF36E\nC94671C5E8939AF9F4D53C0DE7142B7B63C86AAFA65877EBBB48C64589AFB2CB\n1280AC099FC48058855CBDEB6C2D2A0D092267996591DC3B5EC8252984E9B27D\n2E9EDE8CD8303F0905DBFCAE497DE1B755B924452CDE11CF4F20893DD6FF7251\n427F520FE00580DAF1703FD968E0F8ECCDE618E1EA5820EE6CFED97C78864EF6\n26FAFEEE194A268F24249D44829AA360D731C34DC285501E966A959180718F72\n6330E4CC060588A2F65AE64A720DCAA818D49D4440F5D0B6C1F6C3A107E12445\nF1BED2D3FCBB87A9597F01C7332AA79143564056219BF87D4B907A04F77621AD\n054935E883B2B137D3D1C4BC792E8335CA08B6D83227F35736C41312A0BB077A\n60FC6488C5E02FD51A10AC113D4EF70038C649C1677B2204A77F2ECBE9B3C341\nF4126BECBCA61E3F3801F9188A3775924A62D30FB096B440286FA655EBA00A74\n9A4162904BEA07CE68EE76018346DEEE20839C9A2FF71179B58E1D4AB30856B5\nF5D97295A097174467010B15D733AAC5813CAA633746B430B1AAF9F997FDAAFD\n436844D1A56B8E25A89D2CC4BA6EE7ABD167818FD4F6C747E07B262C99EE2C35\n323F0B471586CA50F54C6381B052B15B0C58C19DEA82C0CA29F00400B727419B\n2379979CDCBFA966AD513FA903160C571C3BF1BA239540B11EF2371A3880837C\n6D6CA2F374280CFA1586427AE975A2AEC34244874E4D441DBAC6CD1828841C91\n069AA87FAE849C5DC7C9EC1B9876E59F3CCDF8BB23D939F5348D7486934BFB02\nCC5A22541ED352616830A510DE7732E5D8F7E785BBD31C2BC9D348CE5632654D\n2C1740F89D57FB2AA1FD8FA3304EA03F757BB8F498ED98E48485722E78D97B12\nA05F3A28438084D1CF90AC4C3FFCD7B3365941C45E1E02CB13CA1E99F7FA1D00\n1C9D489D5C95F019AB4CE89FA3B6604473DBD2CE8E278969E0A0FCBCE68C23F6\n9381882443D3FC16966555FC222F3FC4B1207522201AB7A15A7A6F22CDC9D392\n360BF4C95DAD35770E0AC7E5EFF015F2C74ED7391F40EC94B8D1C163B5DEE5B3\n911A20C2625AD3B24BD94D2A42405E655DA47D3F94F882CA2F479437B4E0BE71\n8AFA4482C6FB270F8D05B4599A01403DAAA90C01DF3AA7C2BC7E66AB6AA833AD\nFB6E5EE13E45CC7CE7E200FBFE639F9CFFF5D08512C02764997FD28368969BFB\n0876F236EF6189BE73AD827332DF1B2EADEAC0ED3B939CE5BC3CEC78975FC636\n44FCBC2CCF4396AC7343EC62E0E4F3DFFA2B880BF31D93ADFE201BE9CCEC8BA5\n0B9B919E05B851E0909968DA259EECC6AA0743F25247978CC09C28C4F878E29A\n5070E4023BCE95FE0ACCCC01D0EE219FA8344E8F6D7D4347563BF8AC030B9097\n41F24D4BC9494915A82EE9FD37FBB6A46BF077B728FB569B1258CEA5F51F36BE\n4F4D0F890D782E44748CA3FE8C8A515998371D9C7D2311F192B4B7E7C68FC6EE\n3F7136714C282A2570FE591F247A08319CE9EF1E43274E4E57166E31A2ECA506\n85350DA31AA4C33C9687F5210BA225EA1007C444FBFA2126769767E47A967884\n9F68589E4BAA9ED32A7A466DE35554C132810C68ABDAE536D9D884352F28EA02\n8A555D2CE11F30598F44A65E2D86B43ECCBDEED9E4E5B5B7DCDA20EAA09D9FF7\n422FC91F2201431A9E8FC624FF44D26C0100183D77BC7E6B1A6CFBD3FA8BABC1\nAE4CB0FD382E26BE0A83169B46D91429DCB746A0326243E212F802AF6A56C709\n6E70C6C7CA3775C382F911F6DF3D26A9F9F39C6A49A61FB0FDFD443ADEB01F74\n1254040BC520FE9C85FDDA97E17CACFC505669130254F9C16D813DDFFF35ABD9\nF6BB806C8138B974A5F04238A6E74C67684411B94915503133B27DCE131280E9\n6F1C994EB581AFAB29C433337F40D3DC691D98C47FE66C75B0B49A09E086BC38\nED8B4F690E0E9848B3602A13A3BD0FD800C618C6CA60EB9397A78C285BB8AC49\nCC99A84EE7C903DD48A13B074D142DBC3B5A765D05ED43D547D3D66879BEB840\n0B24834FF601400FC99396AC6411C9968F04EC643BB1005C0235743DD58FC6F3\n010CC1517CA0F37DA17F47FF62F3E48698FBB83E8F7C99F4D7F8BD922F3E5A9C\nE074FD9E33B80308783E17221E760F500A185C89E3279101A0DE477E268D236F\n\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n{restore}if\n%%EndFont \n%%BeginFont: CMMI8\n%!PS-AdobeFont-1.0: CMMI8 003.002\n%%Title: CMMI8\n%Version: 003.002\n%%CreationDate: Mon Jul 13 16:17:00 2009\n%%Creator: David M. Jones\n%Copyright: Copyright (c) 1997, 2009 American Mathematical Society\n%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI8.\n% This Font Software is licensed under the SIL Open Font License, Version 1.1.\n% This license is in the accompanying file OFL.txt, and is also\n% available with a FAQ at: http://scripts.sil.org/OFL.\n%%EndComments\nFontDirectory/CMMI8 known{/CMMI8 findfont dup/UniqueID known{dup\n/UniqueID get 5087383 eq exch/FontType get 1 eq and}{pop false}ifelse\n{save true}{false}ifelse}{false}ifelse\n11 dict begin\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def\n/FontName /CMMI8 def\n/FontBBox {-24 -250 1110 750 }readonly def\n/PaintType 0 def\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\050c\\051 1997, 2009 American Mathematical Society \\050<http://www.ams.org>\\051, with Reserved Font Name CMMI8.) readonly def\n/FullName (CMMI8) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/ItalicAngle -14.04 def\n/isFixedPitch false def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\n/ascent 750 def\nend readonly def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 120 /x put\nreadonly def\ncurrentdict end\ncurrentfile eexec\nD9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5\n45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4\n7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7\n72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E\nBEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89\n974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674\n11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBA9B440A6DD72BF8\n97084C906B05FAD969086ED21AF0AA1471613182B26117D7494DD9F9270EF3ED\n8DA4D957225F75D060237B6DAAD5A0AE3E702B3D1C437835B93B8AF1F9E7D966\nE739CF3AD5E256F90286A34069E5BB4122F94F18F3485658D0D25B938522A879\n8215A417CA2CBD20F71C5C5FCDE21EEA7BB27876D93BA667868A419287FE59BC\nF538980597DBBA743DBBDBEBC61E3286DA7977833DC8BFC5E52FF5DF5EFD9A92\nD070EB769E31E760A50FDE012DC0057835E8B9B046FCC83F1A0C40326AFB4E3A\n0CC3BFA35FCC64E32854F32EB7DF10A19F95830136BBB8139DE1663B7FD790CE\n464EA431AC109FCA0E03F3E0D355FAE20AC8774D6B1CE233C27680C77DDA7356\n560A27C75993E8C980CD1E3B0683F7E8A05119B3AD567DAB4851B66E418687B7\nF9B21B3BEF607918D5973421B68E65DFD8B6C8DFDCF1CAFE2637D365148EBCE3\nFA4CC00052A2A522205EA3AE3461CEE02042E1A3F11467CB6C8C849B200CCE3D\n0BC188EC7B934CBBC0AE2BF5DEA228181DBF0F774119F313516E7D97FF532621\n9278F856C166CA6547504F34991D588A0631A5CD06363F3FEE9FA0772C783447\nECD0A200929CB58EBFB6B72008E4082B5D14AA560C24915B9463A92F38237886\nC35CBB2D4DD6D0CA8C1D4EC46093041C6181C2F6586EE3E7D4E647A107B6DB23\nDAD9AB5A0C2905455FE58075EFF6B48597078BFCCDD84812B98986F34987CE49\n7EFB19814F2A58B0233A59331F6F8EB66401F04EE7B1ECAD9BC90A2BCEBE213D\nDDDB1F75C83609ED6A669A0CED58B2E269E76ECF73616D94F13CF827C9BF354A\nE82202988DCFE856786B8AE569AFF3105B55C72C58D310FFC0E10B2ABAC8DB06\n40D5F72E54770E9DED1AF4616008595B8481E3D9AF4191CC9A5BFD9DDD01C9F1\nFE7165D21E488DB40879E863D470CB31CA06E5B5F1F8C3CCE04B697CEB0F3557\nECAA358D2EC2B370519CE06138FA702314BA01F1F33881825EAE1230098BB3C9\n59666983275CA4E8D9DB34979F86535577E79393A72F84B0F768FE8C92692907\n15E9FE9894E98A0EBEA490CBC8C7E5A9F3E43B24C2C5A4BCD71DAAD3CC0B8B82\nAC13933543E295C163F61C9FD18371CB514493F90BF7FB460C029B8DD2E2BF05\nFD66B451DF277864DE1EE42100BF29E01A50258C2758F3EDE211BB3457B8243C\n20BE72983FD6FA2581C5A953D94381E32E80D6D6095F2E93A5455C101BA71E8C\nE560D4694E4C167EFA25FB1E9D214AEA745CE34CAA5468FAEF8F6BDB6C6BE8F4\n3D58836C26A2392E4C4DECE284A90DDB3858A16D6135FED655A600929DE71605\n6CA32F6851A2A6F71A9DF3D5D657593BB729CBCA2F4B059365B7263DC08AB211\n9C547096E6427F6AA53CB2EB87DF0AFE2ABCDBD15D7EF228D3396413B83C6B4A\n79E41F9BA55A2688F62A10472675E5658F151F9FD6634EC94EC0682C17448024\nCC1633077C07A93E4DA8749D974FB8F4332B5DECF97D749C10DB60D4C90ACBFA\nE65AE928C88BAE19234690EEABDB30BEDCEF2660D7464D5071058C30C572A2BC\n7DEE5384BD7614A4BEC4C84E18CF7EC81C810256E8CE6520466C033E2A36D3D3\n5D6074B3857415011D8D9D49A474D994571CDBB89AF92BEA879BEBAF67663F5C\n17ACAE809C2231EDD0A76641BA52FA7B19A2798D54A4A9B62C42F9905851229F\n2CEE0191C8AA5AC12BB0CE9E5E3E862683AB57DBB4AAD6AC0FA8BA4F408D41E0\n755F72B82B7C18EC6B13995BF7AFD66AF4BA0EA7523DA8B75EE751744EBA9CA4\n4E8BC1FB37734503A5B24FB9F2C2D07A47CFC477F02413D55BD7DC180B0344E8\n50248801FA6BE26C97F397797F5F9DF762967E7CD92CCB8B2E587C92177619A4\nBF8046CBC72C6E69DC78B8CB6B7381A290080EF59F5B9F29C1167B261C932E9D\n010D2D14BB425D157F22BC0305770AECC5BC80000F8CCFB9930255A68F299ED9\nD3B5B83A2CC00E3305EB281E1A7054734661B175C6CA0AF168790985F173DF03\nA8693B677BAFE23C3CF833FF6463B136FC370E4F0C29E322DBEF637F62C33CD9\nB0A8338FD67EC628E3BF2FCBF7CF0347D5CBA1DBE6DE878DD670176B85F69EF2\n3C5CCA1BD2B8A385F113EF1CE522F5A6AE053B9C1E39408C9459DE3E7FE2C4ED\n77F026B0081BB80D40185458139C16333EA27F43EF1204BFBF80BC5301B2A3AD\nB10F7EFBB4F5B7E04DA1167F68BB6D4049440B0F57385FF0A95E72760C6A12F8\n1335BB31CB74081FBAA319180DC00113CF50CC5A41D2E751E055DA1429CD75BB\n0060C21CED634FDA106C49A12B356129D010E29F2919301AA7F80222AF3905ED\n672FF85C9897A70241E8DDB9A53034B6BB44E140D9E739848E7A782F24B98AC8\n00DA09EBE4532787E5CF3ED815705F659D8E52DC2C2D4949374A3BF192BEEB99\n1D9A90A4F3250BF8A1FD40D91F5B34AF2CC561FD02FED712500B24330D87DA9E\n4AA46B6E34BCB40B1F73A1DDE07E002B9478E9651D2BF85E67585B6ED812BE03\nA594874A235B1C1840C4BF4BA6D863583D8C12DB49EF7F8CC24DCBB6B21FBCA9\n378F3E2DC406291AB324571F76E0805DF8826090F0E8B50599CA58D124653D16\n16C782B01C91A6F3DA6346482E3163D28D95EA49866360147296838A3FD0CC53\n920F91D895F839CB61FFD2FBA296CA4C6304EEE579782AE5FD33D0FA652BA7E2\nCEC7C01DD0D3E0D56E6177EE5F609A396F7FC8EADABB465DBA7F384E215C4DCB\nE64F807A50A461545107F9C3F7D7CC7D33E6EBD6D9228B1DCBFEF160703E6129\n0DCED8D45DD54E2A36E698A616E7906A50901E453BDB2A363EB77144E9EA6F2B\n6BD927495EB0EBA5755165707CCFBF8759CE5856881117C7F3EF6D494EDDA7EF\nE499BCA56C86467AC573DA9C2724FCC74BEB331E736FB093DCB67DAD42296655\n415D110F2729BD1D55E5C9CCE2E724116F45FB2E66AE0F790258851A5C808762\n68B8A110BD326F8D3EC45004E7CC08DA42F6CB80A6B6E7C286F139534A275BCD\n2F812993DD9C9A1AEB5E7E4BDB4805DFF3A7030263AB060C9B74F0C25C5B9005\n965284884450CC2815DF28D5F9B0496DC7A3AA85E1E42741E1538797175C28D9\nFD904699C771FB066397FFDEE8E8DD1ABBDF67E6BFEF95BB700A7C1BA91354C5\n42EC3864F6E19B379E79A1CC3C786C0DA146C6B0B8E507ED58DBB1F12F613A98\n0E1F8967991427A22ED323901C4B83336CD343212131E8B59C2F5D232702ACC5\n7891BFD4EBA5D0FA35AEF9F3520CA82D121BF6885BBDAF15248A9E4649ADB94D\n0735CC4D14E1D7275427D00C8E709579612F7F74DB6FC218C10C278CC63E2AE2\n37EC996B10C0229D687F0DB5E38A8C4DAFB3DD8A9E7ED37186FEFC97790A1EA6\n636A88FA9FB4D282234BAAD301A1F3AD33F252C5EEC49410562FC52809CEC466\nA0F6D148E9AF19D6DA2337C8283FBFF6005C37AAEB0B7F7217A8DC6F949B9984\n72DEF163E4D5ECE4288404448C96A7FF0AC76F732D50AD63A1D286C9180E80E7\nC218B1F48E3034FCABA6BF262CEECC284AC29E9F3CA1CFC1639A681ED66C1FBA\n666F073D45C84A286E05FF809D4764FE819B6A330E73695CCF2F448B4D4EB4B3\nF63E94EC289807A2F9A1159CF328C002B467B19D6E9454CCE36FC19E0A214190\nB251818DD456EF658B0398E275514B72D9C1DA5F806EABCF1DD56BC025D69FC8\nA0C2FAAC1892B64D2AF79EA2F57F103CA623E440307600D50E783FAA998EBD40\n51D23A0CEFF8D8649B48B982DC38D613F882DCCAE5F51233A641B3CFD783F830\nD984F116DEA3ED8F0D3369AE629A006BAD4523F8E3C7C6B39A6C972508B67AE9\n32613F28CCFFC4BBC86CF31A0C25C786554F7A1F3DE97F5CFD1A941F775067A4\n784385E2D02EE1FF886701B1E87D966D3F500E15591A5012E645837FE2DBE3E6\nA3D375C6CA0ADBF96B33EC3FCFFFD888D7344B31D40427B8A8BED0FEC6FBE038\n1FB5F0714C4B5A0E607E215B5B7F76ACF0FEAA4C9790EB7E13C0E3933B7C63FE\n5B934EA34F4B741C3667BF1735C685CECA63507E6FB9EB06AA010311F12AC1AB\n4CE3FE8D1EA1EDB3C700BEBA516FC71D740B1CA1A60D4578003973CC3EE21DB1\n58FB1CF7E2EAEB2A4A6C742EBC3575EE6378531C6EFA6E6986E68B8E25CEEA67\nA59623FC1ED2ADDA9D72DBA627D179E47DC7F5551E07EA4D54ADB6CC8109D340\n7279F288E552EFD79C17DA3431E53EED66D16F24BF86468C2FE7EFF421560500\n12FB048D6CE2F370BE4E560F8B4AA12362ACFEBC839351C1D5100C625B14CFDC\n747B66082D4AD5474A63EA0054E9C3E6295AF6B133348487B0471395857F4B73\n4BF8337DCE2FE2E1A4EAD7E7BEDC822BDDCE42B79B308C11897C98E3ADE253CD\n09CEEEC0CB1DB66AB072E36E1E04911F40B535B0FD85982C21B8A587D65C38D2\nDBC5A07A0A26DFFF7460F10781069490AC1B611CF7312A14B4AA6005A4582C5D\n336BCC30EB47749193BE8D457A43F54204B070DF5AC2057B6437E23705C7FE8F\n7BB150560F7044BE3E48EFDDA539FEEFB0D2A7856CD4E405FCE0F5EB190D91AE\n578E2EDEB9ECA218573BB1A8EF116043A27DD17A4047BCCC7C5F3C563A910778\n45ABCA32C7347E6180ACC86F9D665FF025DD8AF514FC3724B5C3510F3C37E0AC\n5101D1667C6ED4E8F37F06CC2BDF66CB5A9FB7C52CAD26344FD1557571336A1E\n1E340EBA149B4EB99016D1A411FB874914AAB2A415CE3F5FDFBBF5AFD7959B9F\nCB127BDC68D2A2F3F07FF3D4FF32046C0371CD2E68A6471E46B08413FC3C7A80\nA107EEE57979DB387B2206D2810DB310B7232B2DAA385256C8A58964B512003F\nA0C24ED21809E2576229627278118107B9C32345C1EE8C0CFB452CA362379369\n31320DEB5371037AFAD093B61E8AC7A6DCF7D49C7F8EC32DC0ECEAFD7E892810\n039570D2956289B15E078C2545911BF535F72F7DAC619BBDEEFA855BBAA81704\n18F7D351B0936357085A32157AD8E27438A58B2397D69264E748B0B8D01B33F4\nD04DC59326A7DED39E247A1C1A1AE49382BDBDE9478A1CB48F88BDF14A268B40\nA40B9FBFC4C87FD3DF1EB2464C3C14E36CA41E09EE0A9B75FEB0769F9ECEB1BA\nEBF73B818427FACDBC33BB95B9654F31C59A766E931C698A8608F15290FCDBD3\n5C535D9036A19CB7B55BF54E96F9B2206DC71624E2E55FE632FDFDEC8757AEA3\n1D83D190ABED5E7A7AAE2F41FCEBC7C18626BF58F9E9F02FBAE0C8AA85E9DB21\nA3D8907522DCBAE4923C6A2A09FD2F08FE32215C544AB577B337D929E625E704\nE041C2381AFCFEA37F3133B6CA20093EFD457C772E428325E56C9CBCC447EF9A\n05A8C3F28017DD4FFACC51B38E4896C5044266EAB4EB7C13FE855E790DCF8A17\nB61B1D30DD866BC57397EF6297C4891451FD6A5C6AD6D7446F58F56A68650908\n224D9F4C31C6906FD29BB51DC947465B808438E6260325752808963C808A4AAD\n60422ADD62CAF315F6AE92FACEC55D5B682089AC0BC051CE1E2C06A3874736CF\n0DB5F7C8F178479E4F11665402781D80397C75456F5CDF0A4F382A19EC6AD64F\n71A9275264800E178F212269154DD8352167C57EBC0A38BE794AAD1601C8E541\n7E1AB8E969A76E1EB4092644958FEA2AD29635E70C4DFE2EB0D9B3E1644FAAD9\nB27AD5466EFAC724718962B62E7B8C32F412B69DFFEB792587D571FB5C591D95\n4CD441662CD1B07595E245FA537FA9EB5A20A97E5C9251EED22C9961B48B25ED\n85BB7524F635F9CBA3714C6D60A6BF920C45A64F4C366C1F9D22F53084997C9A\nEFE2D79FBE3347111F5093E271DB7E3770B35D253DAF93653F6A23FA145AD775\nAF11E188EA0428137D9A14542E3EDA6F7B2E5AA86C9F3D3649A85ED2F020C696\n01A339FE6D7E42BC548C8F92A4E3809C67A986C99418772403D16D0E8662595A\n1F37563671D6DA0F36CAC99DAA8FEA215DF7D45E61314915A30A22FCA86A50D5\n2FF2EF08E240F9FAC030D92BDFBE40F1972DF413E6B452024CD11792BFDAA2D7\nC82716528AD4B3D637BB43E748336DCC86A952BE96F1EA423E31340FCACDC1EB\n02EE932F58734AF3A5B2279361B63F1D824EE3BA9F4D2EC7B33A300A1CE8CA43\n24616444176DB8099D85AC68329B1F85E4B5B16F3B396FE2AE7774F3065D0203\nAA140DC128D6F935C44733EF585F89E8639A2096A225A2E5E49D447D8AF9FD44\nCF6C1BAD5C5E5262AECC5543EC8199B00B72BE32A0F110F64A1D0D5CCEF38FD1\n155D6198E9A343702F8ECF5052333272CAC2FE016681E12745CBE14E1065EFD5\n407DA3686080989F6F6D650A9F1EB3A813B070C30C0D3B4A1E9C206E2E4DFD51\nD8DCBE9AECF956640A2E79F1B4FD0EB8E0449AE1B8FFEBC43275743B4D7F6605\n0673B61EB3189E74F51F3780A91E6A5C6464C8CF7D563D9958D46F39B1A12087\n6BBD4898BA9ABA468AE1F24115891FD3CBC2195F75958E26DF8BF1B93F7B521A\nC12112237AB23A8E5A7B7D0DC4C53692B35F3CD813EB463C0BD3A6486B0476C6\n3B36DA71FE512E5745D097FD4AF5D056E434DEE2AF926B2EE79F7FC4FEFD4130\nBB4B4BE01E5C720325A4884507CB51CBA4FFB615B78A4182444F0ECBE4161A58\nE86FE1DA2E39C2BECBCF1F1D7B9B776A26078FC252128FA8108CB83F673CFD37\nCCDA493234FB93E1550EF8D2DC049ED95B00A8A57834B024B277D3DF062E748C\nB61F183F2D72AD075474F8165528CE75E4F40B38B0FAAE45751C1907F8D31619\nE88EAB02EEED415F3EE3BC5BECC6AF565D34E0BA2958FF337A2B06012DD1858E\nC53DE52C108BD5AAB76C882198C72CDCC958D68EA8FD26F76F04EC1A08B2AC3F\nA6D0E8724D2656555DBC0C8C42A3E22ACA7E1BC8E9F897D9AB692E0FB9EC32EC\n59E31CCA4516A3C3BFD5411BAC3DEDCE374D48681CE7D67DEAB93F5B5C5290AC\nFEB29C5EA2C98095692873D36C7DA24847B66F31E4CA4C7AE5C79D7CE4F0532B\n78620582E3731A2A6533A03E7155B33E7CD142FE79F72721862EDB24959B9783\nF834CB616FFCB2A23497BA6D99AE34DC459A2F7B3E4DA2B54BED118ADCD92178\n66C40F4E60F6E1327D5DBCA645A2A7C770807E6D7E47E1265C753F8793BD2D1E\nBDCD749CC24D4AF9315A93F01180A0F9A7F420DA1B87664DA5FD967131273271\n9DCC45C3D57EB9B8AF14771E8E751D88B98D2FFDC72F5011D402EC34FD010ACF\nD3B0660304725191D64FEE106253FCB3470F1A16EB7B45C1489D3534BF94F740\nC2781DAFA5E8A9E7B25A85BD7935DF3ADDE08C960E283D8FC3976FDB4085DBB4\nB6B35FB239C28C785B18BE4FC98F3A5F410F562DB5FCA04E8074E4E790F4265E\nF88117B3D0833AFAE6E8B8A71D7731BA6F14FD6F217EDA3F8CC687A494FC3914\nB84FDC37C8C335AB1E7E0BEC7FB6B7A595C50CF8F0080C8D461BCB8B579A5155\nF963B6587873FA31C3A6572740C63EFBE58A2EBB723B7517D2A243F6CB08A038\n54F4DF0F6692022B2EE8C6F6B73735ED3166BAC58D9216A06EA6FC7B63B20031\nD0F0F99D83D9030B413C2360DD2C553E34BD67851B743C3FDA676AD63C5BD759\n9131358C6BCDF05FCC048F4EBB9005899ACDD8E9EC9BB8C5A08E83485047D263\n0ED69B4D1869A38068FDA03524022A1D32FA2AE0BF728D2A654E52B6A6C90A3A\n725F86627D7C3EC5AF5AC512976D35FE42AACA3FECB401788D0BFFD9F4743BB2\nEC5B4E7891F216DCA5A69E917A171E0069A03FB214ED307DE947225049D46E0C\n4707503F09811A597A9113921AAC23AB1CAA9866F81A02BDF349FAB129F23E86\nE384C043053055938D42ACBF9F0EE86CEBEB011BD5BB7D593104140E6AA9CFB0\n4E0B47C91E504BB6A95B2CBC36EC03BE01897C3D498EB30FBE4BD9584B9D766F\nCB3CC7C96FF46D3095DDFCD8F5E62795B9907B8C19AF413AEAB8977E08F2F125\n65F30421139AD2E57A997E79582A34C195CF9721665976289D00DEA1CC064F8A\nF2CA911F6A29FB107FCDE29514DE8E0ED6C778C91320A95D15F29A86D7D7F66D\n9DE59C354A24A6F2902CF1EBAD0A4D57BFBA226A3668634B39695A008E743395\n319CB7A55DD38ED03F0368225BE3A2EAC1B9975C0007DA5C40663F8170F13B96\nCDA0947F2C371687405C38625A85783B972469D50F8DE70F8A648C1E38930FB8\nE7011C371A0E0623E4DCA1C40FC17B326DF89B5DB6CB3A4E45496D22537656A2\nC442A2253CCBF4475404A09D93DB7DB6C4A52BEC00F00D141A687076E5B96A95\n386ADE86CAC13D4638AE817EC49C82B8F90897A719886054AE4630699C7C2C7D\n96C307FFF4E9037B734D7FA828F8E94C12A3E028AF5996E530524D22385A1D29\n6CA1554C59DEB01276F5A823A6\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n{restore}if\n%%EndFont \n%%BeginFont: CMSY8\n%!PS-AdobeFont-1.0: CMSY8 003.002\n%%Title: CMSY8\n%Version: 003.002\n%%CreationDate: Mon Jul 13 16:17:00 2009\n%%Creator: David M. Jones\n%Copyright: Copyright (c) 1997, 2009 American Mathematical Society\n%Copyright: (<http://www.ams.org>), with Reserved Font Name CMSY8.\n% This Font Software is licensed under the SIL Open Font License, Version 1.1.\n% This license is in the accompanying file OFL.txt, and is also\n% available with a FAQ at: http://scripts.sil.org/OFL.\n%%EndComments\nFontDirectory/CMSY8 known{/CMSY8 findfont dup/UniqueID known{dup\n/UniqueID get 5096649 eq exch/FontType get 1 eq and}{pop false}ifelse\n{save true}{false}ifelse}{false}ifelse\n11 dict begin\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def\n/FontName /CMSY8 def\n/FontBBox {-30 -955 1185 779 }readonly def\n/PaintType 0 def\n/FontInfo 9 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\050c\\051 1997, 2009 American Mathematical Society \\050<http://www.ams.org>\\051, with Reserved Font Name CMSY8.) readonly def\n/FullName (CMSY8) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/ItalicAngle -14.04 def\n/isFixedPitch false def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 0 /minus put\nreadonly def\ncurrentdict end\ncurrentfile eexec\nD9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0\n7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81\nDE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91\n511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6\n1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD\n028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86\n1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A4D80B73E7B6CB7548\n0E1D77FFC695988391DC44AEED8CC947B3D7E198B9620E2238DB3A2819182F03\n14498B8CDFBA48926DA721920B221FB33BC21A8456AF10891403501D0F6415F0\n7E041AFFE109F640E54FC1A365674711EFF94E752652A4C8DA62CDB1149DB899\n2C4A4BD77A06E81E93C5698C05DD02F74A0756082738BDB53003B483752AE498\nDD718AEA8F3FB5A6B7E2D2AE8F309065F3D556F9A34AB90C88833A54295E0982\n209C466A301BA3372AABEE20D862C6DC6B6FAC1463C8CBA8AD766ED1B4C9D712\n2BECB4E6ABF558D8AB5281C35726BB8D046982C0DDAE17BFFC9394125E4E84C0\nB283977D31460B8EED4346CCB09F64DA0ACB640C6DBF32F2DC30D54668C1CC12\n24C7280593088E9958C047125C323E9C842801346A9CE5F50413D69F6DE99471\n65D2E387765E92EA4C43F17B467DF6E266D92551009C0E52E7219AE9F5E2E8D2\n88852086FF3600BFB50AF3EAF8C009D8D5F084B510F792385F328F7EFA8C38AD\nCDAB2EEDFBC6AA45F6DD7364C2F02DD2BE6C79C8361E83D4267CEC2407689864\nB57B5D967FC80AB3BE8CA43955FB0FD3081D438437559AD24A7ADD484C1E4A77\nB00BDCB0D1B121FEE983412E1EA5489BDCE5DCB4A7310135956B230C0DE7BBED\n516369A92BC41FAC8D73490984942D930DC193BF0C774C1AEF627B969EE4B001\n11381AC57815D7581E2372A1DB740B09F4A7FB4318B765DA4E7B44E8805CEF85\n44EC3B10613FE7B397BF91B69A5CB2E9086D1E7A1FAE0A9ABF2A237A2D29ABFF\nE392A18AEACBF28274E775D3FBAED4F46B982B9DA4602E24094EDCCBC9D6FC0F\n67C60376879245606C0B9C9A678E8917516BE1CF097B1C75C9F0DDAD6899F08F\n81FB7A198D45FE060CD2A550D9B8D58B882B969D7BC3EC018A1FE92BDB262835\n26516FF97AC387EA525FF987E5EB1EAAE4EA5866C9CC043D183763C530F7D7A1\n2070E4044507C4E5611FCC117FBE4396E0B24F672CD53D5FDFA56D561FB86D40\n90A52A7C7F29A119DFFB694A8C445367746A49CA5FA83163BE448EB19625DF26\n609A8C8672631A10411036CAA3D6C2F822A4B2505DCBE8E1CE6916AE515E78CE\nE8C894B134BF811671D17C19248853131DFFAEDB24B15FF17EAC194662460642\n48D23515AD434C68DF56753806FE96DB3A29F9D4980E0B6EAED7383F9FAD2584\n8F85679D6D1933677ADF5D31FE6E43DABF137E834A1DEA632D36EA5728625159\n8F33348893C9D1C510501628E4A9A80587DF6E179FAF68B158406A3EBCD726E2\nAC17F2DF8B3607072824D2E5A6479F7BADE32E603E54E7A83BB2DFDEDB0D80CD\n1F1BDD4F6C9025CC3A8A3685DF10A8183FA80CE0F0FE2BFF2500F76B1037AE41\n56D2D7FB468C3CA7549E3599A2AACF66302572F1B35BC8EF7C23F6FC4B720228\n1D673D903111CE378AAE83480B4DEB7EA84BB35F4F7BE997DD4FFF5A9B5E7650\n3C7365BA0965B242DC369D03215651184024A08EC284F1798B0726152884B4D8\n46411B3BC8F5CB53A70AD53BD7B1AF23528849B56CF2F75609FE715878CF6448\n38579380688B47AE3D374B0DB6ECA5B8284414090123D47F3F9DF389E023F431\n6B4C0DDEE4190DEEF4CA772742012754DA9A44A8F550FADA6D8FB0C512D5BA2C\nBB7DF71B1DA41FB6936BA71B710CC6A80751E43436F0F5888F51AB370DD4A088\n40F402661E08732C960705C7E0D29B8DA1A8A3E119409E51EE575E9655F47568\n023977917C8EC610BEBDB9C1F4EBC192084D63EAA00EC87B53E86620BB5AE51A\n579B0F8E1972CE1DA02832FC75184F45409DD9D413402C2FA27BCB0AE6DB4CE1\n5AFB114E23232DE07C4674969A1FC94D152C6D3A611F029ACF4D949A2C0755D0\n31C7DACDBB4DFCFAF7E87295CCF5D4AE28D87ABC3533D87EEF1507B9FF9063F7\nF007DF03734A20BC3A198B049000C92D2849C62DDAA719FC28EB372793E20128\nD786670E08948808BA45C4F6AA0DD8A8357CCC47228A760C5C7864853BD9C9A4\n285E446CB72C5C9D3F03FAB000810DC5674061FA116153040743E846506CFA67\nFA8770E785D7DBC7293F37389A0859CC22275B23C44B57B92A033A7BD194340A\nD6BAC6E103402F8396A5394C617CB2A27D9500921D5DA06115EC81715EA8E360\n4A95DCE8689CBE268B8E6C8B806CFB0ECBF634250243C9E1AFFACAD65311FA4C\n1DB0988203537E5EF12B86FB454D06CF05E4F4FC4143D62920E99304245B6ABC\n82E21192BE94F5E980DB21E07FEDF0EB0CAF4ABDFC20EF08A2A44A7940E2862E\n08FABA516152DBA899D6CA561EB08C7C8298DD511084E5230CEBF28AB1D84C85\nB5BAF4616C28FE05AFA4BABB3BA03F8CEEF3F3EB0D3034BD3D8D06629B8E9EBD\n72484057E71C9EB4DFC7C2CE7749271AC926C2419D618FB0B60FD6F81F0F2C04\nE529CC74DCC9E4AF32D935D7CA65FBD0842A7BAF162D08F782E65DF3AD9EFE69\n198AFA9208B22BC21BC4ECABB9BFFBA84C8421B74748E1EAAACEB59E566838F2\nC439579D6C75074F94493F7D5C8942D881AAE6302C37A61003AF77684EE99AD7\nEB5EEEF050C52E75E4E842F8174470FA60CB213BB6F257EEB26CC55D1202931B\nB981DE2535A87CF37BFF912220C117EE166CCAE58BBF624170FFBC0716726B36\n304D698F2CA131675F7B1199E6581B8C812C4FAF75814282477BE2B7EBCBA7C2\nFA6356B2876F89698C6C2493989E9EB252DE03BB374622A7C88B8EE9FEB4851E\n02F85CF70CDCA7BED5EC94E81170FB557C3BFC6F32CD70B506E56A2CC5451592\n130C6F570C679577C44D60A811DCEFB3535D855259B1021AC168DB76DD38B459\nF1813E3DB20AD9275D58880CE94058490ABBBB0D8DD16D4A65F680B30057F15D\n07FF54D779CC978E90A850A2D8D79961EE276BB26B594C16F56557435671A3D8\nADD3DD0BC4BC73B0652B9DA8462FE614A14A11ADB2214EC4910823FB4CEC8938\n24354C5C62547EE5710FB5ECD93AA45DEA7411F6CA8D5B5FA222685E622AD73C\n1BD5DFD1C8F253352D6C7D14FF2FACF07CA5EB11392C6A33E9CABFD99F743BED\n55E8DEF49E07B9444171D1780C698E5B65B540F41F845AC188DC7C0C8B5BA5F3\n546BEAAA4F29F0DF30D5AC12A60862742623100074457BF2D820DCAAB340C1DF\n22FF26992DC02F276B40A7C528C84B72CD189A4088C90070486C49A1014FDDA3\n5093FC12DAF309FBC063653E6A33E14EB51B081126AB5BCB8016E975060B796D\n6CBFDFE6CB9E191F12E309254BDD6660E3227012F5DADE246B02B6D8127F1EE2\n248F48DC5ABBD229748444420C868450602120664984FE3A8B2373232CE5CA15\nE67172CAF7EA99F73A66AE33B1EDE5E8351DB02497CE3338930147873D4E46B5\nE918F5592A21789FA9F46232BE693DFC33240E2649D6AC1940B101D806089436\nF0CE230BF6D0363510378822891DBD3EEF3365430E74FB6C994BB40C8EEDA593\nCEDAFEBC3B87C7C04F52FBD7D557A77B44855CDBEC8A8D26F44D66446B5662AD\n15B6B79D13BD262D79BF51C09F8F690A61C7F11EC2E05F6BEDA273648E9E1EBC\n3D5F1D6ED486797F753064ADDA8494405556D43D395B1487EDE877CCC1EAE954\n1AEE2513DDA94897B733609E8179DFE1975590568202EF20D58A89B34874CC3A\nA5579473AC65E0EE61545AEF578ADE10BE3FB3E2CDC96678F613E4DEF7BC1B38\n8A551C93438A0540E292F65F1FA73D9AB30A5F545284085E4930A570C1807995\n7108AA8194607304488616DD4AB189F8EDC5F4507AEFD7847817A8ECFFDD2DD5\nDE95E04EAF2774F8AF661827229F01E769A32734097C457EB6FF056D90C46C5E\n9F936AA6BF2EE8244BBEDB8862E56423F5845BB10C8809730B011D650EA18945\n83C320A3F4ED095A5EF91929FC877ECC28A1C2CE74A53245E629BF46C6534983\n307B1C94EB35CECDEE86551F0C308F66690E591C5D9D8FE14F534CF3F5DB6D32\n39D7C799F392C4E65759B7BF61F4D8312E3B26C31466206A367A0DD7A90D25E2\n805D36ED5CE0A4BEBCAC0A348FADD2D2AAD670E28BE6E33F627B4A9F35078B1D\n6688084C4C18840673EF9B3526172EE14EF64E97C8B006C27DF6EF73BA6E6459\n3608F10EB1EC4B824DD5360B42AFF2084788B165747AABFB2C9C0EBBA9C6246C\n08F28143809315D6268E386F09BBAC54C34213438B56C386B34AA457D149CC39\nA3C163F56E3C2E637C63A79CF7F2DE969EF3AAFF75F3F20499A9ACA61279D545\n866FFE57D25998244F448AAB042B141952BD653007A889B1A716A4042CBBB827\nC1ED5E3C616C22D5FCB39D3B3539F9B71D50D25ECD2E5D953C7A5194C867DDB1\n75CE10B2C3A20E8CDE15AAE9F549D034838DC066CA649C31EE365D46450AF18B\n893748D055DD88C72391FD92DDF0AA1A1316051BC756F87BC9A425019B2FA7BD\nCA9F35E89E2229B3021DD24C9DF0DC3217F44DCF510116DDC9E92EFDA3E0A892\n491C8961CA484BA29B8CACD2FED2E246FA7414F892AF7B9F08698FDEC82D2E4D\n8C6ED1FD9E0BA2645663E7E97B0F780033D025F2EF3B364574C03F04FFC4E09A\n3D4182BBFCCCD8CA54A92434E2208803ED36F931D31C7498B7FCEE4B78AECF11\nB27123A10F031F9CBA36066680E4748E346D18FD0EFA395D1A9227530618ADD9\n64D96C50A0172F712CB427E8F7170F8A1691FB95B247A271499F0E63676BD64B\n167438333A3BD9CD9641AC637E0ADB17F1E394DF34AF5A2BD02030DD087BBA02\nE1209338B74075744A9A9966039AB6D223F385E06FF359257913E6C01BF32F5B\nA3640C7CA41A6C51F296E50DC1CD1D68491CE5D75E0ABDD4C5C4A97C8BE2BA35\nD91AF9F8F38E7AB8C1778B06A212D0416E6137087329AAA2679C51D014CC4DEF\n0F1543E2FD97621E552E19B29AA1368CB5046C188BA59B1E1875B25FB269DD2D\nC0678A42CD310702465694F2BF302AEBC43F714F7C657505132DDA71CD23D17D\n628BF3400EB5DDFCE2850F31B40C5913394649AA4241CF646F3939916C2077AD\nC11F8C3E478586AA7931E327333FCD8A2EB31DF4B47AA2F31B999556602DD998\n5848143C0CBD0B5187DF08E675550F2384D48C2954EA7D16AD2B94DF97C194D2\n302CC47BF968CB1F6C9641A87525D5C6972ACCA1D4A4B4DA8EC54BEA6E7312B3\n2737754A9FCBED3BA5F8220B751506BB0A5BB5CF706AFCC04BFD713A3BE3C842\n9FFDBAA0CA5691D0FCE76134841A169970903843163DE68FF09649E99945DB64\n491FD6D8B2DF237DBAF550D1B74263B3BF1EF6211F40D4DF2DEC46E4DE557088\n5D458A7CDC6F34B8C3F5C76582C8B7D24A333AAE0B43CA67436F8ECAD7C50B12\n35BAAD521033D8024E4DFCF01580AEC63BD5F8ADB778F822AC4FF0DA608EB7CC\n1A52A51B9F38FFADC0D2F4D8394C5D598123B483AE5AC1215F24F2492EBAA134\n3C58AD4E3B493AABDF753EBF1F04058C6981C353D6788C2D3294165B667D3765\n7883A8493F5D772F789F73979B254BB9397FDE4F8B76CA6FFF312F4B012949F4\n3EDCF1AC60FFF2681549DFF430B498405E79CB407DADFCEDCAB1E2FAD3B0F4C7\nB575A33EAFF9F67D37F50BB06D06834EA683862991C5BE340D4A7F8D131E733D\n289F72977870F9958102F5D835739F0F5A642E7194E8AF7FDA2937E5C0712CE4\nEE15CB475725030CE0F238C32775D3EC95CE3D0886046E3EEAE322F59D423E83\nDE88DDAB5CE0F70537487EBA5A16A9306BA7DDCA14A85A9F83B3BC3600DC9421\nBDADA2704A5A24F7174A3A486ACE68739EC5960038CB44D969A594E97AE1F42C\n42C1B7E3A456B3CDFC7683537B337AA8777F18CA45B22C8BEB18877DC624496B\n9E8EF9F386B7FE4D94ABD5CE3B5786E76FE04A35909C472C04654A4405932EE6\nA4A3E0F6DB088603FDD82F0EFCB85A962002A662D1AD0647A2F484B59075A1FA\n9F4327D542ED7962620B998ECC3A95CE736089593461CED9B5AAAB05C2DA3820\n5AF29B32904E1EEC357C8E282189C6D8F562DB11291091E6897E24CD8F8E2A34\n67F35D261E01336152E69831B0CC6B03FF1AC7EA22B745F513A25FE10F70E74A\n3FD71FE1EC9999BEDE7CFA6A97EA2DF621711BE950FF8960965685BAAEA71FA6\n36F165573A0A6A92DAEE41A9B0C97BF03419FF6BA1F44524D00FD671EACC4233\n9A857680DFD27B9F1E7A760058C8277B3761DB9969241D1824A7DADF70BBFC38\n89C6DB9091E3BFCB36851CB9662B365A4B7384BDBA1D385902D1E5DABA72A159\n63790096B927EA49299AE03E41C7F593F3B995D1155E91C62D5F68845ED3C797\n7798B56858F96C2FE2E37D812873B7801767082A6D6B60602CEB94B7F6D7A142\n72814734DC584A18D1FFEA7333D4C7E2DFE5B91E9AD92EB52533CA52FA888980\nC79FEEDF0FAFB3B20B497F9AB668BDAFA364B405916526D5C48E57DC30BC35B9\nBF684FDFAD199D9A28541327F3899AD505FBBBBB22F419E22E0149EE5FDD2B43\nAF442E2724EC16934C307FA731F90AD1C76B74569B78CDEA7C19808233C6364B\nD049F3F50A68D3EC5F29F2B96BC58C44AF90FE13F244B7129F14B5DAC3F3F310\nB330E67CA4EB76F895DAC8025F11EC7630EEB4826B5721348FA38F28B2AEEB1C\n5F7CA413C486C94B1DD96988F07F7A08D3635E28624878E55D4FFBEB5E183CB5\n93014D8A272EBCF3A09133603CFFEF43A6FF059BCE525706D3795884FB495748\nC8AFB50DB464459A5C36D7CD087631BC09C693A11BDF1C6011D9864FE66EE8C0\n4824A42E97D16E017C0BB73732D4537E2A5BB283B3568950E5681364DBC1D6DA\n058A122862A44ED85029A7B39F2FA7C362D859D0B429E056891339626AE6091D\n74F6110CA32F8F3E9507216997E6AD1A2F1FFBE8B407C9880DE230E234F6FD41\nA291851178BEAE5DB9DEB22E3443807E2BCEF12A4AE8C490AA9E3D2918329F47\n42314CD258A0760DE5FDAC4AF7209CEB530B8508B278952A3638CA8491C3B493\n516F461610DBAF32E923ACB834B15E2D169A10F2609EC0ACDF7BDBC777DD2C19\n2DB330FD557D3B06B78824D6AB237D8F2D57A7ED35F02CFA9290ED6893B41657\nA2485524A3F1642FF5808FDB77015D9467EDAC4A6BBE8A175833B1225A5554F7\n2C60207F7A2632A4023255E8EF1F38C1B8216C9B03319B60BEC9799E5378683F\n46E698FA75F2DFD40F17C603F3335F1EC70DBA1449C7A33EDDD46CC3DE4A6557\nEE67BF349AA8680FDBF415DC527129288B5879500180F75DF80394EC7CF11BC8\n9EE9A4ABD64DE3076A2963F83FA333F19FF74F79ECF36A87A31D6F125FD2415B\n3F6A6FC33C179F54CA164835F3C3DB62AF444BDF27AFF23098C7212477F688B8\n6F48D9AD080D544D57FEDD33D3D9AED9346CBB644C97C951D4AEEB2BF6F0CB18\nE2517BA7ADCFD00FE44E290E731D53E5C0D762FCBA08004562DCE6A5EF2FBB74\nB3053CBED3B6E896B1C3356DD9E8FCB69691AAF6BEBA0424D62B9F266D560B40\n89E20A9F35AD4A7F65A7183761ABBEE0F7EF26ED3565A25516A3A5A57143979A\n1EEED8CD52A69E4E1AE4795F3EE0CA21B9F4D166783A9AF54B08B6C56703932A\n310197E328C6E6A6BADAA11D66A952964F31FD690082FA02D1E2A4512A9F2742\n33B203FB770A3A1C7490ED630D0FAEB3066429D0237E18818EC368D0DA72EB08\n1951C70139EB0DD59EB53AF5039A7618C77F6CED9F0A066FED6FEE0C0E328351\nBA39746C1224A29D191D8B86491E0A306ABA070CAA2756C3A33990EB6DDF34E8\n06EAAFF94AE6686EEB06A17D6D020D1F4E59428D533DB0EDA6434E6E1A478D5C\n2A0D08CB39DA7D5F5200199FFFE3F41729478D4F63AE01FC0BF3B378FF6402D1\nCCF1BE5F191BAEAEC7FE400C9980E103D8776EC196E741AFE11D249E0C277263\n80FBD329524C55943E25631F113FBD8331C0044A7A2138637206A7941CF02590\n577043EB0F205392C34E18B1ADA47CE63CB8F01365A044CE570FA20446102210\nF03C0647CD0CC29E28B149F84C2F39256EE1457CDC3862C4082A95B44A61E8E1\nB4ABAD32DA3E2FB8D849B1C5CEE60F205007464DF38712737776BB6BB3223941\n95169B5BE578BA13DAE40B19AC184CB6F260A1EFE13CC8438ECB56EEBD30ACDD\n8E24F52934\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n{restore}if\n%%EndFont \n%%BeginFont: CMR12\n%!PS-AdobeFont-1.0: CMR12 003.002\n%%Title: CMR12\n%Version: 003.002\n%%CreationDate: Mon Jul 13 16:17:00 2009\n%%Creator: David M. Jones\n%Copyright: Copyright (c) 1997, 2009 American Mathematical Society\n%Copyright: (<http://www.ams.org>), with Reserved Font Name CMR12.\n% This Font Software is licensed under the SIL Open Font License, Version 1.1.\n% This license is in the accompanying file OFL.txt, and is also\n% available with a FAQ at: http://scripts.sil.org/OFL.\n%%EndComments\nFontDirectory/CMR12 known{/CMR12 findfont dup/UniqueID known{dup\n/UniqueID get 5000794 eq exch/FontType get 1 eq and}{pop false}ifelse\n{save true}{false}ifelse}{false}ifelse\n11 dict begin\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def\n/FontName /CMR12 def\n/FontBBox {-34 -251 988 750 }readonly def\n/PaintType 0 def\n/FontInfo 9 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\050c\\051 1997, 2009 American Mathematical Society \\050<http://www.ams.org>\\051, with Reserved Font Name CMR12.) readonly def\n/FullName (CMR12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/ItalicAngle 0 def\n/isFixedPitch false def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 40 /parenleft put\ndup 41 /parenright put\ndup 61 /equal put\ndup 65 /A put\ndup 97 /a put\ndup 101 /e put\ndup 114 /r put\nreadonly def\ncurrentdict end\ncurrentfile eexec\nD9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA\n0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93\n51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71\n7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551\nE6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078\n0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273\nC01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9C535A5E57376651\nF6823308463DC4E0339C78699AC82C769542FD3B410E236AF8AF68CF124D9224\nFD6EE92A38075CAAF82447C7AF41EF96F3ADF62F76FB425BEDE4C4124E7B1E0B\n8BF254D91912D3A99557F5427907A56514C5A3EB961B94112077FE9417B70DA0\nB2E1C1FA3E1D6F01D11F640CF848E45BE3E205258E64FE36AFBD4DF4E93F6B1A\n966C8E7FBE2CC8FF43C1F67BF6C361678B5E90F4BA524FE8A4CAD6AB28183E6E\nCA6C9636E884845105595A2E40CDBE8D4807A81AF4DB77B31873FEB221BCADD4\n2C4669459704CB58A7BC230FC59F867EEADE660E49AEEDEEB042BA9A7DD8193E\n56C3A36A1F639F7EA512EE4BC6992F52C2FC82A890EFDA730105B0AF7B819295\nEE00B48F64C2B5BCB275B1DD62F289CDAD4AD9B7EF057684642FA6FA6322C277\nE779CAC36D78F7779CB6DE12638B3C65B70C6B5F8A8C6421A379719B8DD44973\n5F52856A4A29B2ED37F2B1FBE6EF4B79B7C0CD6395C756A00FACD763C235914F\n847D1D99831023CE1FD89EFEC83AA7E313131C0C197248605EF5BA773D0A4000\n72F607551A8EA6F0FF19441ACA179177D1FF7B423FEBDF58B0C19CAE3C10EEF6\n3538D8FC4762B77C5AA023A8186C40D0365A4487DC3564265B3DF908572DEAA2\n57E29EC669DD72974F806EFF5ECAFA9ADF1F9D2A63087FB7BBD100F0F81C6FFB\nB1EA1C9DD46548AEDD147EE64B1B4894972DAE1DC3E8569D6A3CEF9F9E46DEB7\n547E10BB2959D374A33E47C58F1B20419920AB485F166062FCCC08EB5CC9AC88\nF388F0C0155027B727729488E44CCABB7064A1432E179189C4627453C5231535\n47D1F2B8BA43069696830CBB6E5F9A135CF22D3D1FE490A3A63C088EA32FF444\n24A2427BBA63033DFE2E06DF8CE67949B6AB02F26335A376B57376814D2A7DE7\n64A4347577EBE9A6E33DD2FC214A09C6D889C8FFBF1D567032548851B8F97204\n49E215CC7D222F593E1EF1439ED60AD922D41E0E9EFB5CA48F2FEFF75AC5FEE7\nFB6676D8B8D4DB6885FBE8B61B586313E4DAFB09D94CEDC0507E93000104F3DD\nF83865A2C6F6A7DA8562BF86F5DB233CC9B53391273A1462E40876A8AC2B098A\nDBADD5A160DEAC061F86A5FCCAB495EF8A9D121AF07928EAFD56F618E4EAEA97\nCF89A3AFD406FC9DE1E9769C1E1EB83BB883786BC075EB5DA2692CD59C4DD7C1\n7FD2FF9B18AC740A390C1DB38670DEB18C67721A1DCD502FE7368F47DB4281D5\n459B3F020595FA3B10544AAE9EF786A0645FB7C9BB29D091E1432CD878A05918\n1665643005BFD9A4B0FFD347ADC84CE22D6F9AD4EDC05E8C7179DCB360AB57D1\n6ABCD200A4B4AD56825DC345984D9A3DE11CDA5E9EC1E5006EE4181E4EFE0846\n67D8C27BEE8F84A1E01947E945BBE988702DEB2240C4BED952E433E5305484E5\n71965D3DE95C4115FF78CE9EC18E323C599727C8B93CDFBCD1CCA780DB8C81ED\nC4B5E596E1603624308972FFAE9A57B0EDB51FDDB6E23EDE2946F61BEB241345\n2A192D8CAD53E823D687F9C64A70A4B4B703291FA6317C051DC6A44BCCE0288E\n3839D726A8F2E39BFF429865E95C726E808E02CD06F36C1CC9AC77999F8E28BF\nCE9D74B699CA982479E9D0DD98EAB24D29C981EF0349721D6819549A39413801\nF80182D567EE316E2F0AB208068E15693E4C399A381BF9BBA625E597E6E109B8\n16F3A84C8EC92F2ADE288821092A421A8D3B907048FE947230810F0777EE2542\n29A3485223FEA079B359034F70464DAD2F0E420271A4E0CCF57A0ABBC20AB327\n0CA71B292126D395E0D083B19BEC6B48A9DE2BF470C3D01A8C3F52075BD4BE02\nA0C518355814478202FD4762EC542F8E7B9B1F7824F0554660CEB83E35635E1E\nDF0D03C94C903ECB36B4948ED98B6324E0094EB1DF70863142D4ED3A932D7346\n39D69F8F044B6084482D7748C27328AFD24A3A70B99D1F7D32CB984488672254\n28B6A9E9DCA2C9FF6A1B311D72413404B3CE5428BDB7FF3C36357D7975184F56\nFA6B32AD54C37D0AF7576663AB1397B80D4E998F0B4C4F6D90B483029EF2EDA9\nD4C4204C1546EFF3100629453EAE01918D09FE104E626ABA38646F17B6A94CE8\n116BC7A8D9C319434CA5B830859B4164DFADF1D7C3ECA5C78D8DEA930EA4AC3F\n59DBBF3148C91A2E807FB934E3439D4F67C6DBBA9972854E6E3688E1E0A34B74\n482217CFE031CD7B5DFEF727C3EF8DAEEEDA08F4C90289E62FB2AF2357EB2E45\n4BC547980FD479101FFEEE477AAC6268DD659E8DD9E244676FD3C6909713B71A\n323B211E571BE711D103FA23B5B9AF077D84E2D20FEE805E81D20C03501F0F17\nC3B081946CD0FD577F00E50B76CC37CFA97A61B89C25DD43911B28857284BEBB\n5BEC61FFE3A14C64BC5425A7A82326617F6F1FA4FEAE56071C9F559F91568179\n46369B394A5CE96FB7420FF8AB7C61CB83492FA5AE4A4B0799578594C9EA67E1\nE54498AA5CD6ABA34AD3417F04F5D8D664A7EB39D41E2D17643CAEBBCCD9C38C\nC5C9541641A09335EFBCE0D276A54253EFD68141807A66F1DFEB4BEA5889FFA3\n4D20BD52012206A9F8D3E0F6AFC03FDBBDF3E51506EC6336E249CEFB571AB84C\nBDF8E471E3795C04E38A5306BA6D450D72E50910D1AC385BB06CCD4B8E433A32\n5A4B7FACC976BB31FCAA1E62DB2C4FE06DDDE7367930E336B49F47DAD91C8735\n9A35D80CA2E117E86B52E41E9278046ED923454989E48610ACB3B1663F197117\n52659A9D7BFA561C7ACE0771794FC778675F83C5EDCB132AF124C7E6540A140B\nE0A268836C73A3C746DC964E482E63C56C0D396515283970FBFF182F9F684FE2\n655FD8F5D057D22246DDC3FD11B77552DB4D90ADBAB77BBB1FB1592129DE0AEC\nF822D7D36E52BCDABBD560B403A5C56C5E1BE789C3AC049318C7FAC5E5861E42\nFD66C3C0F46361078D7E036281682BCE9BBF77983C93ECBBEBA9B359769CA442\n87FCA1B98F4EEC4935CC93B08AAADDF355C99816453587310F08C50B9BA3D107\n5388A1F3AED2AE32BEFADF0285DA90436D1D7EA85D7B9B6DF2AC4B778CFADFF6\n6EEE54D1A1C5DEE3CCA7EFF57A7C2931933CEED90CA26DAAB45E4388EC4DC366\nB9E88518D6CF094861D2A59282044CC06E63EFB390A6DF4BA5EAC7CE39E1EE03\n3D84099F5BE96612789AF3EDED07266EF10A0FC23EA1EA97040B6BAA63138B1A\nA9CB8F5DED781260962D7618EDB200C3ED976033E8967A8CC676E9C11F74BE34\n343A7ECE7EE97E8F76F7E95517A6D6163527406EF5A669535CB2BF4031F29046\nBB2D0FFFB47A576F5EAB1D00A582965C56F28C00B3BB7BE2CC8D8391F789070D\n775EB775437F0CD53DA840BB3575104B63E4B0BF14E3F14B320EDEF65FD4CAF5\n8596DA491BBCF3153DED3B718F833D106432DF8DB8B8E6B34D5308C9010A5DD0\n7E0E53260BB84BAB3EA748E8D72F75901604F80F4416920D69B4B983DCDB72C5\nE9928F01A4A85954FD74578AE336C782CDF81D1EB7EBCEBFBAE7ED8AB4862584\n397928F502D65139CCD582CF0723C5262EE54B9D2B8C39614652A8A90E1C3B65\n7D26B99DA298FE4B9A7E98848F619C9BB4FF9FD215B72F99506F06355B332689\n37D80AFD9F9ACD8172CDC51FCD3A759ACA0F7D4EBB07840840EE42C2D5B8B257\n2C6DB3A7657B75F2F0B9730A20112745703E2D0FE709436CA6A5F36F59E64D9E\n37C0A23D6D289E1AC1DA273872F5FC5C3DA2B127F078A4D7AB3FD7E124455817\nDDC796D54EF26A1FBFD539D3A21B86DD4477DA49213259ABB3FF241424F2BE5F\n89151E02FF87E0BEE26E85C0E518D8BE7CC9214B8E9A9EA1DBB49C6C212CCF08\n90C0F23E9858947EE344062EBD9C574979087439975EAD4E85CD7BFAD3C91CF1\nEFF577843AF1427D06CB2F3BB519ED1591974218C43F0D2038665F9E2E3960B7\nFE68CD3CB2DB6B36C7997C6B21EC11CF1DE049541001FFF26D14C255E3AE862C\n5A5701292FD2FB3D04523D6E2F3547923BB117718DFB6E6520F0D0B5450C695B\n8C9242CC8671B7284CB2E1E9EB097A3DB1B4D5E8EEB93B4DC7E38C0A10474665\n54DDCBAF079B92EA494F6FA75A84C5AAFE280284D0823D7C22249A21044BB0E6\n4062074ECD17B62E03EDF4945A294BFEFB51F5FD870D9D7230FC91B83C1D85A8\n86CDDF326FC90E04362145D6E8630C50594484FB829DA18F5C078F2EE67D2F2B\n08DFF39AE2E8C9741FA989AE494C7166F122D2C5F71B97C973B7CE8500E9F87E\nD59C30F2E99CC4D34713DAB680598F41955FBDC26A14CF1E73D6BD6B9AAC8D3B\nB998F2D0D647356CD236DEAD6561389ED3A6746221B0CF15D6648412B35A6B54\n6A0EF5BBB34AA376D9BAF025BFC650C1B74333CE85413D0EBB2F4D082A26A5BC\n3C0A25D2B12CB159F140E00E262F1CFECCB2C802FF94CD34DA0CE9B4B3830FB1\nDA85B9B670D5169928990A2E9CC869891CA2FFAD9774E6B92549644DAA5FE00C\nA5BE4F5FF91A0B6D2FD8F96121D766391EC4ED3E73DADD476B7DAE1A50AFCD98\nDB7E27E44D30416088D9BC07D4661D9ECEC0806830ABF14CE55AA3CA2DF66E8E\n748B8ED46466F1EEB072AC0674FE6FED231E0DDA59ED7C42BC05EF00E176050A\nC4834D893DE42474EA20DB1E25059E84BD137EF65A02CC295B0FFDE4CDE95879\n0FE88BDF2519ABAE7F8CC3E6386ED35E04A14F1E3861922645E3A3F43B48A5AA\n1999A5EFE192515FCC625C829FF5A7B337AA422F5E920545F9BB269C869A821D\n6C4C26DD2AE746EF0F0B4C1E7E9871ADB5270E1CA9BE28225F7A0370D4C52422\nE25263EE101C4EC1C7811B05AD42F364844A56BB91EE72FC8ED53CC6954D2BD6\nF945D739BE4C61E36143CE890FC0CBF2F610018D678ECF7CEAB18FF5A0E48F76\nFDE2463D40A99380D679B3B76D39C664F4992D23E5988B0D1AF33DFB04894016\nE852EFD1EFFE586153C0F31ADBDBDE3F73FB49C5EE64D0D02E1504248FAFAC3D\n903FD44679BB09C30288139B41B1E90A10139CA3172677250B16535A1F3E5E4B\n6F4264DE58896E66051FC677030A121C5A285C47B6129CB5A3998830CE070D21\n2F093FC1B44089F603A21F45F60960F134A47226874C737EF6C085634B0A4A66\n139420501351F737A73F39D960EC38420BE46E5B09D298E7C16B8E32F01507D4\n0141FC52DA1DE718D634AD9C8B00E46EEEF84356759324D2B9A3473C5DA38DE9\nE30182B87F91B6A7F7BACF29A93B44C879CCDEDB063F9D2E51E0F1FC9F018FE1\n2433D85AF24B55DE3A61C4D0A2DA4FDE933F5F6FDF17E9FA9932BFC46E2D71F6\n585EEF5B2E4E89E797A24B799D7F064DD1A817A53677FC9EB8CC3E7F93FE50E8\nD50E3191052943FD6C98B573BDD1F6D70349E1F8011599E3F8FDF1D6E80A710E\n51E434E85801617C6FD8ACCF1B77B4BFCCDD35CB4C0367F4EB4D8D9DE8284D5E\nB4F43E2F8320C2C5A9AE90ECBA7E65D377E91DB69FEF27069235366AD3E126C3\nA73CE97F4C90BA00D206FA012C327FD69EE59AF4470A315B1799CDC0539BF90E\n512C8FC3BEFE4D1B01D969EA9E3FEF976CD6E0FA4C9ECEC955B265CFD58AB8E5\nF7371E479279EE14B689269205C5B506940606CF3E24A1E7EFF3CA96ED30AD6D\nE243DE57690C3D69A401AB3315FA49E4BF4ACD4DD1CA39272533E82EFDD508E5\n1C2CD286CCC5DE1202C7C7F654521750632EB637F918667E2233A43DF75239EB\nF28F3129EB5DEE2FC5BFC331FF709B0FE9B327CBBCE98BCA2C861C6547E50407\n1218CEBE6EB5F9BABA4F2E11BCC6FB553A544A567B459E06375102C69F8018DF\nBA6A227CFB13E2D74E6A521E01B74F2963E9A0A1C9FD87A88EE6356E3BFABF55\nBABC751D2BF85E6712E8EF57914920775906662E4BA68FFA21AD422D34E15578\n43CA0568B431101A1194F8AB1EF25E886BFCDFC10F4A5EBD9530816548BC298E\nAE4A0B6B52B8B59C644C409B4191B6F4203F52314F2675F02AEB65A72C66E92A\n2AC703E15D8D381522C0AC30C165B822A9B8D18CAECC094EDE020756018DCF51\nD0701B507519C4270B70D8CE94B436F640C15872F9B5B77892AA3D110E4D6A65\n8F0815C61A5127BA25815378683F46E69E54A391A8675977E7DF9C2D4E6FA991\n9F029E50CC2F266B31EE9F9F24452D5838905F330CB7E416B8AF836C5AC26AB8\nBE2ECC6EA4BDAA08C30995709E225C21D35DB6369167602CBFA8DB2697635925\n969002CD1BEE745DA2E56C17EF3F0C05E3847147F86963C37A221C8827195A8A\n3D38993E4939AC915BFD9A212F5FF3F826F742B952018986F9FBDDB69C3AC65A\n845F7F33C55D4BE60A1817EBBCA7E1538E8087E1BD5C083A320D52953BE65F31\nE8339C612A510B59CE48D2EF7061560C4AD258E7DC59694493E3AC878246F37D\n6DE89253EBC8830C6B209E818213C4AC4CF1F391AD91D57BE76FB0E2924A1407\nE4A949C905E44F54EAED6419F13D59942C8079336A172D4758BEB5D3E786FB93\n3CBE4FD2EB53E4E1DAC34E821EB30FD44BC6CB4298242C38F848FC23AEDC9733\n52BE6F32E31E25F18301370F8936810B0566B664B042C7AE0D78ACF0A87E5BF6\nF9B66E358168B2CEA30DCD940074F3ADB793CDB136161FE2522905E87B8E463F\n95D4DAB7E14A3DF7BCCE8141C5A08FCFA2BCE9F2D1B05A7642E75877EB840149\nAAB007CD239AE47AD115929427717F219B0A8907F0EC79ADE1B901DAEE87A2F8\n39361DAB43DFFF69650F601B24061A9353CFD619FF9626F63275FD09A5B13BB4\n8B3379EC4D147C41197E8387FC04DA7BE409524CEF74EA91DC066808A7FD0EF3\n957A44E2503EDA67B1C61827479486134E922E560A673BF314D601C66003CD07\n55569085AFC8428389A140EB976CCFB8F29E27587E46C413ABE2EFB51AF5913F\n53EEB74063162E0BA1E24CEDCA320377D3E11BD374F0B44E132A5C35835B6E2C\nD32948EF9DC7931D104C1385709DA882DED6458319F21C2329938396BC074106\nCB9CFB9E0A915F8DBC8435F386917AC87A2BA45D857EC30ECA66FB4044F5439E\nCDD556B82A0E43418D179AD883C85AC276E1190CEC242E3E1D86E725ADC39E46\nBB6C47FE9E17E29F8EA81E870302A00D91434F3B7A05F243176E6EF1082541A1\nB9052191EE5C2B8E94A2E02DB65FC769653CA8D1C07A13CB853544AEC7FC35C5\n218DE3128AA31952DCE19C55C23FD69BCEA2C661F57B11B8F9E86BFA718D1521\n3346E78C701A5E51923D6D937E62FDE3669B214D240538F069A100A542720A86\n31DE88116DE775F7ACC2A49EA6C02A24408271A846990669F2AF60AFAB4C16F9\n7F4E88E917F0FFDCE68F22998AC0AF2A60A73258C3A4BBC42A2F918123128195\n196D0E150D79AC3CF4628503D1F3FC528265ED8324E56849A47B3B07C29940B9\n1BC270071E221D355EA51E9942D3BD7F99816304FFFC8F5B036C953B38759341\nED5D7B9C8E6B70C409DD8362FD291201CC385E4A98D73E8518A4C0E544152563\n82032FBD2FCB6E403D34B85ED4053A8CB619BDD4DE001F4C3007B1F317579651\nE6D6662189CC2D95AB85D7473F65C5D7B4AC63B0FE928F3400035D5A9D443D0D\nF3532B99F3AC26CB25EA3CD64C341159061E02EFBC7C033C05CD919BBD827A6A\nBAD47EE10B9AECC871B76227228CA161EA7B61DABB252EF91E607AC8D3F85774\nDF0B1507B60BF52E4E9BC0FD04400A548D553D4A6EDB247875E0A2E013685C51\nD23EE8A56AF57025AD67D929CE8BE791BE91A4C4D9F00DB8B4F16252C04F7BC2\n02236296A9052306639F4672E90E3B9DDE466EAC17E200523B2AECD6C05A0A83\n66D4EBC86C0DF27B789D5597FE88BCDAD2925CFF60F5A8EA618FE867857D585A\nCE25A158AED63B8FE391030C518693AEC75AC0AADD0C11B0065E2ABCF51132F3\n82E3718B9A9FAAF727F2D8286177EE27BAD040C66D0D2D7C092B45D9330265B5\n6B5C8E29F71C9EF548BFA4BAFAB242B26455E4B7FC1882D68E408D25E6F58EC3\n03AE9B7A5F45D61E02D0AB82AFBE793D708ABEF45FEE865969895654C00A5FA2\n093A297AE74BF625A96FD85F58FF994921C9F1276635C8CB65FECFEE37C77BD7\nFBD692DBDF1079AD35F8A8198D63A3526ACB37FD507B639B1E4E4B9F5CF7C0EB\nD6C82F6C0744DB00237271FDD51C3689D1D79F2B876A309705C0663C50E4E4B5\n8DFACB0C8D61E3D97C0EA231ACBD46BB2EA31EA37F2595440E2FD1E74A4E0EA2\nB634608228883BCA642508FDD657F166F5AF13CF8B3854938B9EB74F4BFFEFBD\n3E6AAEDAC79D2F5DF17A135BC07F7E1900569397AA50F92CA49256E1E3626940\nEC87937436322B2D459B7932086720E40D3CA1A89C6F0B9082F6473E2E03730E\n623C9D7AEC559241D5B857A6864A7656C8B5B1486052A1950B96A9E07009BF4D\n22CACA43BF9DE9C60C82FE251AEA55FC46149EA01EDABF24F242EFD0428BC511\n2D97F2384EA05B9CD082C14D3C7BAA96C077E69F9F224D327600EBA9A8E283F5\nE79D9DC4DBE7D4C6D27E30F50B88E625A3038E9A9542CA266CE58585DADC2EBA\n769C6C4F3FB28AF32DFCD75147B2EF3FDD03E0A9FF6BD9AD302413751CE0BE16\nD10F9B3614868A00711A6E038AE633093358F44B9DFE0DEE815B76EE9F864668\nACE76AF30396BA17C7AC5740EE4098B7EE6C1C43573ACC6819F44A15C6705C17\n40A7AF4466D9A2A1DC80828382B83A55C652B6C5B05AAC400F9C442897DB7DEB\nD7303F917F03AB0AFF002243D6C4D6338BC53A3E2D8CB6517E22EDCC352A5BC6\n335319D504FB0B70ABC35314D6E712F9FC9E69233FC886645F10AE06BECF9E81\nDF5FDE31E3394FAF7F5B2CAA817C9C04099ACDD96ADA159A1BAFD3BC580FD614\nAB1103F418ED2B7DAB4C434C6ED1EF3C21B899448E31A2A0202F0935BEF1546F\nB25C1BA6C00DCB3F2A2308DA417B771C136745EEDD97DB29E18A7B4227C81C71\n63B4931626B5FD85667FAE11D7DC256DC01C3DEBCC59DB2FB154E0BCAEEEF649\n43EBF20656DD6DBB7993E932C841B577681AA2A392128B73565FF8DB4E541B07\n8822BB1142AA11989D9AD42FFB67B7FDFC540CD9F8DAF6957FD0075325807288\n0395CAEEAD87E3BEA1539CAF535CC8361D05FCFE394B9D308E7CF517A47D35C5\n3250DBA070350F8FF0C315934C9C8AC6E0A68FFFC092C57D4651D5C063B44221\nBEDA0C08CAFF65C7C6210816485D29DA806D6C83E4B45263325765714D23FCEE\nD76C88FE0327323296725DCCE4CE6F6752F35A220AC0B23B1623C926E2AB38C7\n8C6445F87952793E98BB9196F6D182B93632E57A125E1F9640558007CE3F9360\nD55445D29C15DF53A58832964B553EEF3E7BD14F7AB1887FC7DBEFCF77290094\n95AF32C5397D86192AA1CB0EA6E1F40293B7BCF95B75702A7A7753CB1B117BCA\nA917F9C3BD90BCF6ECCB6A35B94DE384D3C56CF9A798C6744E7F2E22BB15B4D3\n0286A274B97CC9C10C9E1FAD3929466D02F070B980AA397F44344475781A7C56\n778F210245850EF8EA362274729C74093231B72166898C3D737A781CA628253D\nE3E567DCE91824AB90EF7A12A9ABAA2E947A82A18DC082EA4746861C448DE464\n0107F2AB9F330A0FC600FFD77F2753A53E49030BF845075FB0A5D8E707BCF211\n8EF3C5AE13E9B44543BA353350E4737A90FBB0CAD101E4116829589407036733\n0D8AA70CF5301445BFA91C7E2B24D41616\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n{restore}if\n%%EndFont \n%%BeginFont: CMMI12\n%!PS-AdobeFont-1.0: CMMI12 003.002\n%%Title: CMMI12\n%Version: 003.002\n%%CreationDate: Mon Jul 13 16:17:00 2009\n%%Creator: David M. Jones\n%Copyright: Copyright (c) 1997, 2009 American Mathematical Society\n%Copyright: (<http://www.ams.org>), with Reserved Font Name CMMI12.\n% This Font Software is licensed under the SIL Open Font License, Version 1.1.\n% This license is in the accompanying file OFL.txt, and is also\n% available with a FAQ at: http://scripts.sil.org/OFL.\n%%EndComments\nFontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup\n/UniqueID get 5087386 eq exch/FontType get 1 eq and}{pop false}ifelse\n{save true}{false}ifelse}{false}ifelse\n11 dict begin\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def\n/FontName /CMMI12 def\n/FontBBox {-31 -250 1026 750 }readonly def\n/PaintType 0 def\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\050c\\051 1997, 2009 American Mathematical Society \\050<http://www.ams.org>\\051, with Reserved Font Name CMMI12.) readonly def\n/FullName (CMMI12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/ItalicAngle -14.04 def\n/isFixedPitch false def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\n/ascent 750 def\nend readonly def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 25 /pi put\ndup 101 /e put\ndup 102 /f put\ndup 120 /x put\nreadonly def\ncurrentdict end\ncurrentfile eexec\nD9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5\n45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4\n7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7\n72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E\nBEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89\n974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674\n11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBFE3573BF464E2BE\n882A715BE109B49A15C32F62CF5C10257E5EA12C24F72137EB63297C28625AC3\n2274038691582D6D75FE8F895A0813982793297E49CC9B54053BA2ABD429156A\n7FFCD7B19DAA44E2107720921B74185AE507AC33141819511A6AC20BC20FB541\n0B5AAEC5743673E9E39C1976D5E6EB4E4D8E2B31BEA302E5AF1B2FBCEC6D9E69\n987970648B9276232093695D55A806D87648B1749CB537E78BB08AA83A5001F7\n609CD1D17FFA1043EB3807AF0B596AF38C91A9675E2A53196FEF45849C95F7DC\n182A5EC0EC4435A8A4B6E1CDBF9A5AF457564EA72BF85228EB6FD244F2511F5A\nCA9B71A65D53CC06EF5F7EC3A85106139A4D312378BC22183C09A229577B793A\n1B7422611C03E84BF809F46C62CE52D3AE29CE01C32B202ACDAA5B72733EB0AE\nC31D7EF7BA88D2D14F85313F7A8B9B7A5B124B03AB923744D336C969E5CE304D\n3AD977A46664479EDEFB69F113024E761C05FA48A54072DF9E12C2F352ACB3E6\nD04F6EEFFDE209E7FA3DA22E5B1D1409461F4286B7F4F8251B44E5CB7805762E\nE129FF4A06A7458F3191926B1CAF70E32C6571AD2DC07C34FF62840896F4D200\n761B1A7FA356526D1E3AB4C542AF13623BAEB9F61B1BEEF79A9205B1FEFDAE24\n8799D516A9ACC30BC0139C63C9A0523E9D5439213B67D490C96F902958779B8F\n68BD8E9FDDCE8A3A2E35877DB6C94B7612382ED8F218EB1157D2ADD090A2448D\n10B99FBC9211C5629ED1C61C74FE93041E5AA03EA4AC3FFDA00C2B6E719CFAA4\n262FE17F66804A6B54D3669836EE4367D2A2991580C5564463C973CA0DA38AC6\n922716E13B4A807B50304B8826CEFEAA47C305FC07EB2AF25FA7945797237B16\n56CDE17AB0834F5C97E0CC5741B061C6FF3A8DD1A79B9A173B66A6A750538E26\n32FBC92E75BA15CFFE22A7302F47908547007402569158F62C29BA2956534FEA\n7DACF1E507AC309DAE8C325F2A6023D2FBD81EF42146BFCE6A16A6310A650460\n7B07BB7647C8760FADDF0DBBCD3DA6CC4645D1732DB3A22D8B76E1D2D48E4D4A\n46F4BEB80CE65F3517283A1AE08391FD1C10ED452133706BC6725AABC80107FD\n754A8BA47B0281D479F052CE26A723EFFACB79B213041A536542AB334769A2BF\n88505D82C498ABDD5A73EB539530F47CAC52825D16A969C8BB56D4A7F2830B8F\nCB63B92B576E7BD922A4B25E634751F8A3B7C4EBAFCB373EDC8B8281B1D1371A\n7844E9AD990CFF09F0D7ED73A5CF873D2D5C9E8A9923CFA31E1A4B4CCCC40760\n8B3AC8FC3C88BC08BD7407725281BB879A1A822D94997826418F1B89D303F2C0\nBE7A0102E6F529630CBF1BC5BF3E4578C164A3DDE45E62A957EF3FB7F0FBBA6B\nCA1E79A1ED195B6A11CFB345B663C5E72FA55D80476F604F6C4257B51686AE25\n8F7D159FE605DDA0AC74BAA5034F29FFFD403070013C6E2D8EF6A0990D91173B\nD5A3AEB98B64E412991505C3CB7C2CDE13C091FEB3DFBCAF30C4C19511102300\n135BD5D444BB55692013F52056908DFAB2ABFACE81A58423ACEC59344CEF7D4A\nC5A3EFFFFF70759BC3E593D878281225060B97D1BEE6B26EED90571FEAFA1812\n1115C0EEC892F5DE6FDD68321A0B3F10A2D771B79BD85476AF6018472A499A86\n07D64CFF4550866AFE590C471C80EB12CB3A989A60BC7BED39097C12D9286E39\n14C7952C4C64820B4DE44A1827B7B0B535244E93FDB80036D6332F90F95B472D\n7031E7E3819E881BD0313CFA112EB3AAE943C99C47635CCA7E34DC0306C04E5D\n2E9F60FF037EB11602BE74E8E6B711392E866E3E55D988F7C856417A2B9C186D\n639819B4786D039B77F8578EF63C088FF28BD08D8353031445C8498A8F445BC3\nD08923D32AC04BF3CAFEFCCC1E77EA894F4E846F47EF62D6841B8D8576FEAE8F\n90044626869D04D61D64D56E8C51AF8C18D6CC3FEF3B6C4F7D56FE3260354948\n10104F69B117FB8269292579A7D52FED688C663B643D8D99F13956612271073E\n1A337AED059B7A93819A28CDF01569CBEB51069D22ADAE25C47355560F402B2E\n8C9900DA82B79C64497C8494F42FABE5AC41791C2010D98FB7E593C744F250DC\nD837DB0EAA4F75D0016970F3AE8359878A08CF9A697A06C5EA945819151265B9\n1A12122B98F79185DF852257BB4798E7DC03712EA6ED34F6E6AE1476788DBC33\n9229FADB8D581BE1A63F596698DBD6DB98A092F67197A4FD4A50B648F2691875\nEE2495D6BB310078F516785A0CEC7EB6E8305FDBAEB1D15690409FE32DD9CFAE\nDBD3866FB63EBCAAB73E3E4BE5D7F3AA44793938AAF3F8341683F0790F1D46A3\n60CE083F9BEDDA22E0639A92393960F86602216FA51E2754BC2F4CD0BDECE3D8\nFFAB7E0E49613DD4956C9A10AEA798BDA1F756C755BEC12147ADECAB0FB73B7D\n203A11D84DD2AB5AA98FD38C1C2573570FD49A4924A94A106D2A7D850E793608\nFB135853E8C4204441CDBE697FD0CB330B1C3596F32D2BCBF263237EAB362D09\nDA6F531B40384DC91F30674760CA7B64BA1968F6A7FC9EBEF431A1AFC5E76D7F\n2D44DCB7F61C7F6B16196B3E8B47343F572DBA8B8B21B43E35BB6B2DD5C7982D\n244FD4304D254D6CCB5E8CF70E77F50812F41A988EEB3B26BF0F6F69BBA18077\n31134B5A5823D10FEF6201D045AEE7A24E0F25376E9FC66340C56C05F6CD810B\n724D85CC4BB8D789834A447CBBA159565D08BA5793D8599035BB5063271518E8\nF6C50E7DCE71B1D186270DDC860C6DC0CD506010EB5B1FDF6BE47A9A18CC15D7\nD657E58BED9EECAD5CE5D49F63139A39BC52C6584BB2C3264D51BD584B40F8EA\nAFCD8B83F548594386EB2B05CE803105E84931DC6E7A1398073D48E130E0D907\nCD0F1ECC3254EDF5D4DDBF44415DC9BA66C673820CDB0FDF033D59BE2B5EFCEF\n01FF9D33EDC88F8D522E07F1689D024DBCD09A16A63519E1764C8630FF36058D\nCFC07027E0ECDA01E0E85B166C613B22F587B4D355EB018BA93E92A36007B4DA\n287FF5A91F7D8A0EDF5554ACCF45AC8066E88865C5692E63EB99CAC81367B605\n8E6C19EB98EBFE0D2D161B447B9A70CDD1122C7B78A413369016E6D8481E2AE9\n9AA97B5DD0ACC9B0820F7742CEB2F46F89F3E2092621969A88DC0156B4F941A1\n6BF1546D4B136657C47B082A8A35FE96016BAF3D9679B8C32EDDD6AE6DF3BFB5\n7854074FA019707FC22BFA82299E72ADF9A980AE29A8E2434277E58B01F6B03C\n192E1E25DADD49F6E3F69799AE62B56E00B60A031BF8721DB8B2CB6D4A4C15CA\nAB1FDE010AB7DC0DDED977389B101B8E53A949222FAA126656E02817DD32B0D4\nA49516CEC2B97EA7C78FD66229B044EB92F502384BCC6CCDFFF995EABE3BB7A9\n50D5D1AED861E7D3BA8D333026C673C5762712E763E59261426044583D789C67\nA606B96F97663F92BF104CE02FBFDFC521EC0D6670B7D4F85A229F51426DE912\n3B729C4A535FB7C88D0A5E78074751B58885DD6BDD2DD9E9C83F105E8CF63DDF\nCA7DB39D0319CA7CC2E73F42747F007574DE25AE1538B4D493D22D0D5F0F80C6\n5F6FA3937C8391DE2F0116F81DB2DB0EF751EC838A7F85F163A6F48804E84B96\n8D715EF25B7E2A5CAECC558D80F421052A1D698F3B8452AC27E30A4E6226E3CE\n084C8A83ADA0818A110923CF7AC7AD4CB92AE4ABBE0A9EC1FF935FD02774C1F7\n92A278E513012AD17722A23C55EF82E18F8847B5CCE47F4FE3EC508BA563F7B2\nAE56C94285A18DED4D432FB0CEFC05A20BC17DDF9FF919C724810A8ED7358A27\n97EC93C1A13C443A91947FE1F6F528EA7B628917FA7E554A1D7B31ED46C5ABCF\n92BA57961C8876DB4041305EBB029B03D8351D5E2819FF87E97ED214D8F1CEF5\n7F7668DDE223721C0B810F4A4AC81CA4EAC86EAE546E1B15D91E626FB9A31824\n5BFF17C4E79FD56ADBF6DBF01BAF6453A81EBDCB38A5FC0FD0FF0646B3B0D199\n13E2E59A1B5CAB6DE5329BE389BA0E2A2AB55CA40B711ED746C24F1E48892E76\n6DACF7DA163CDC90CF076763008E7A899870CDED5A80758E6177BE6B93B07EB1\n5800A3BF7B9AAC3FA825CE594EF5B7546B181375FA8F37608DF17856D2F8EBD5\n6030A9E6F6BEAF224AD2AEF76D03B023E2FCB922CB8E3C6816AABB61FE6E4F83\nF21B4935102C860ECA03DBEFCA461F0E5B93E5A8D18440BCF7D1D6252A24CB6E\nA64FDAC8B67C4888519AA368D9C4A8C08C7155DF5BACD75C5196C571C3C456C4\n7CE8D90215FA6EE8CDD72C48740F7F5930EC3632DB63A9C8D2DA125088C0F05A\n9FC83D16B7F53163F4EB6FF372C6C3115F1E68EB35967D11126EDEDF0BF80817\nE68A698183B3EB0A207DB43786E1B9D289359D75AD5E465328CAA90E712C2962\nAE2A466173F2FF30EB535A6054BB0B875DC8552C16B49DF17CF84D98D35497BD\nF55E273FCBB0C735899529A69990E09149FBD2DDE64B7FA8D50AE83925DF03C8\n0B63EA158FBABB12A028803DA4B9DD6C48C0FEC469C4E730729F4BB420D5B003\n1918B4AE9CF35CFD31E8E62A44C0484E3D00143BF1D330235E821E5CFEAB4D31\n7CB4604DB1F310457FCF9075A3527279644D908DE847CCD00B6F50DBDEF91D3E\n38238CAF550FDCABA2C3A46237218DCC5A09AFAF69997E1EBDA7EFE6FC99ECC8\n5D4AFD5EE35FE2346BE79B499EC8EC436868154A947D13BC02C780EBA4B9E64F\n3026F1BF5DC1F8D64FEA1281EA40B4BC355638A3A59BD9055BCBB232FA45EA0B\nB405131B64F105814019BC55466EE78E9E9ABB62DB30EA452F7EFD7196C76A85\n15B2CFCD89922CADC0F392B0C54A231F3999AEFB53C24EB0C63B0C8A1A1ABB6B\nAAB2F93E5ECC7AB90EADA320E918106BAAFC1F8C425C617639984629018BA674\n6FF4F338AC43E23BC3740542911C058D43A49A11CB3A0CC8E3088BB5BA6048D6\nCC2AD250DE956BFBE83BB24C945C20D9C22E7105983F284EF478F9B68BFB0322\nEEB7D62802CBAAEFF1C2332159DCC7243EA40CE15C734EA905E04C476B178B82\nA08ABCB0B86A7330C75E62EE7844C9E22DDB013ADDF20AFE08122EE1B930A81D\n806A0F8CC584CB7FF5F56F9B35E5FF78FD93E7E4A40C64537464EAA275FE88F4\n461FC6A467C8A69B9A9FBC10D44AC1B753D313A8E7D97F5FAEB60F82855658D1\n4DCEE043C8FCDFD8A29DD091F3BA55874A458B2B8989F35055C72FC411382361\n9AADC717E602B48D7C9521D3971A6F7EB19D539445DDE9EFBC5B58FA9E5E426C\n172C45CDA24985FC4632287FC3B15849DEB56F5A061993AB10A6BC59868534E6\n69888175053108B77E4978D971B4EC57224C0F93EEA4C15AE92254140A94704E\nED5666FC06C5341F643F779CC88A9E81891565C63B6F7F6286E664F4E0A48690\n356DC96F1B98026C563700772485B83BFA06435D4E0793EF822F423C93FBACA0\nE5D889D2B76771C6F0EE997A5DB43C2F6921132890406E3C33F6F159B14C5D78\n7C151BDFFDD02B697315F191B5490073EB418A4FF2A398C68D44F0CD1B87CF9C\nB52F12728B72F94D752D23151196A256908135C87991E508B8906CE2539DCA8A\n31F86809C8C6C18A09F6129BD7CDC6B37E76B648788056851F22BD3E3B5772FF\nEC01D822B57FFDB3BAE624F05531292641FD6A7E3666152D18F6C653048DD7D7\n98A942C840C4A0FA662F260B21C64214152BB86F03662A330109C5AC0A5EBA30\nC6201F558858130703DF76AF4FBBEE069BDE45C0D9467077D85FFED4F9BA9C61\nAED87D67CDCA453A6528AC5BA153E1039D9CCC556CEA5CBB542265FF54A1B208\nE0E13740E7E7C26AA00AEE909F8F3ADC2726081A744D8EF6BB711BF5F611A900\n76F91C26A338DA13A7160A9F42410CCEB3190000D963D036FDA05A29F598EF40\n8FAE6F8E7E6F50C99C3304A573501C13A00023085F057DF331E3354CBE65D573\nCAE73BF15B3B96B502E0AAF2B4A86237E98A997AAEFFF4227D5A26E8972C48E7\n761F430733E6EF8AB2D903C17FAFBFA21C25F8A0AC157D397BF3CC1AE7598F0A\n2BE4FB46B29443CE57F41FD5F91122E9D86F903E94D5B55E2BB95949C156D138\n89883BEFD634311F9280C7F028DCA6408D3A682DF5B55B9F7ABF08F019190F60\nD39E4F0E80F0594235B09A5320109638B938633A2C196E4ED2B43DCD8643C3CF\nC6123B076B7F73352F906D96FDE0FBF50CCCA432712C574D5857838BAC30B485\nD25024EB254A7EFE57D1DF0892C275CDB3DF77602F0FED0FAEBC644BCACA04B8\nB424DB125E487794CAB36E01B5E1A26F5E1E97A739AA36D77A12F5B45338EB39\nAF36CEBDED55DCBFCF497FD475FC6BAB5530AD6153C6BD982564EE8712185F1F\nD5EA7ADF4104661168A01994C1FD773A50C8AD6A3E4D332E4D59521BB8BBC6C3\n866EB4AC3EA4532477E6CBF6BBF0860031C3B916AA25E3492670EA67F55CF4FD\n207C684A0DDB6F4AD21B2909CBA71BCE2E762012B0927BA72367A6AE0AF87F73\n756C9BC85E4EDE35317E2CCCD138C02C7A8013AFDC1A48C3A4BB8EF257BDEEA7\n60E012F54D12D31D18DC59D5E526F12567B8688B4B67E16B56713870300016BD\nA3B9DA87FDC865246AF8E94316799110D86B1DDADB8A673402D4226C519C058A\n1D1E5A5778584FC28AF12819B1924060BC4F54B1054EA6AB0149E04B8C4302D4\nA56D8A347EB5D3D2A0E12CF7E35059BDB53D9FF6BD25F6D9619BC4669CFC1048\nC6C9978B8751B840F27D82A69075832BE59F55C1737CBB1220FB8FF691FDBDF3\n03BD7D225A9372AC221C38245E48320E1CCF898D9EEDD678E5B8C65B7F588321\n1A3953EEB9B39EA9A8CB72DB08C3E9234DFFF5FDF9DF804C021D57E97DA7622B\n97F4CB6E0EB640E0DC9EA15C5193F92A3A7565F4C7A4C9CC327F7CD2C44900AE\nD9E76FFE62FC37FA376E77131B566AE67C3E09DA80F198BBB995EE8FA47EEDB8\n4B467C6C7DB8AEA745CF8C56B8BE56534E9C56FCB2B7006426DFE93D728FA4CF\n94F131C549814E54ECE7C914C5FE8E4961D3437CE7475D03534B62650F551D97\n201C794AA877445DBEB11C85ADF6119B05360700F8CEDE4766E3A1D7A35CDDC7\n9ABF7C619E3868A39D1852DBE1EEAF5D7898C78323873AC005542B68C43C5000\nCC58F675EB595F87C879694751494676465891E8A897158B481F11A171CCBBD7\n29603F00210CFD7FF31FE3D273933ECC34AFBCC4108D9B76D9ECE63EA06CF939\n4799092A54A749DACB82C1424E9879672C8BC084C360014C9C1B6D5D65C68AED\n66CE329C3AD712C0A36BE7EF03FDF339CAA2E0336D387A693B1DFAB5D5164E31\n14755A158168962C9B399F8F1DF3FF5060D7464D5071058C30C572A2BC7DEE53\n84BD7614A4BEC4C84E18CF7EC81C811724463BD46CECA5FB57B0F55EAE20CC74\n6AD815D1897B037C197D2456797B992C20C70B663BF99FE28C513B4E221C8E12\n49779F8C0AE8517048ADDF7CDF0D698E3EFE60071C4997B7F5EF12B6CB65390C\n224F13FBB99FFC034C0710F05019899689B6D3350BBA65C7CE7C2AB03D81B9A5\n5F3D65E4D462DAB189006669F7390A78A1B8908A4C913B15DB8827DFF15BB9A4\nA6037DDB643103B937257A7DAB025F09D53FBBC2BCB6B0BCD8D56B2B2784E498\n1F6CF8470DCC892AD0CFE11578718948BABF9C1427084643B66BB9181094E29D\n5FBE37708E1D8A6B7518A96876844CB66954227A7A6AF28DD075A462526DD5D6\n40EECC56FA366106E55C7068997B54B7F0D03AC1AD45D28C67C7ECA99DBEDB1C\nE18A79C353113E2E05B837E703278B202112B1C69E42A69D64B62F0E7D8F7E5B\nC1F93F0F99EC20EF312046F4B0CD7DAB31E422070B629A7FAE6D3AA20F6E3BAB\nB0B90ECC38D1125B6CE5FD3FE7DEB668F67CBF0D89A9C4746392E83E96D154A6\nE2E7C14C2D30131D2E083E6C5D87F9C357CA8E8A7A94618C07538BC6AB211386\nC644315FDBDE675F5F3CBF07920698300D557056E6E84EDC3A48DE2DFAD5A761\n696A31E67FA12266C93639B4BDF627234BF4D16FC39D6188342C6FD885565980\n2EF0112F969A5BCBA3DCC2291B1256AF839E5C3AEA9BA493732A0F4EBD347D21\n06359A5F31B04346ACA437D86E52CE1338436371CB810C626F03F3301E605610\n0CE38698E6DBF1E1995377C58A96B45FB997F72CD736AD7AE654A711BFF77768\n0FCF8EC212B174913AD5CD8561D1FA2261586FB46F513A1396DA74FB5F55F7B9\n6EF701A67C0044EEECB80FC89C829789984D95D93AF2F3A8717C53D1DA659A3D\n03F509C0F7BFD1EA8E68A1F6F1DE55E5076E6187136D6020511092BA8FE3F093\nFF9DA4D1A46CEE9343E51A07A83B234721E6015BCC998A03A8474122E6862724\n2C75E303F4A08E5C1FAED95449E02698DD3C5D019DE07B3906E0B6BAA5290C21\n393B73EE84B9BF5F95CDD62FBB789CD9C58EF58637F969F40F8F07435C27DACE\n3851462FE779A140A20F7104AA38B4C27B3B4821D7A5555C62776499A0629869\n0737A0556E746D1D740679C7239BAAECF22CEEEC4AE1C2A9CBE1F9D6846EE9E5\nA7FC358C12BA40782C87AEEF5DA6365B57432043F954D5F0124716ADD0F484D8\nDD4E760BFCF42ECB86F931081DFC07FF2F1E4760918B45AA6602EB3A459319DA\n5235D8628BFBE2AABD9272349EE0AB09B14A9755EBE916A86C83500235E0B109\n085BEF2EF1E7020C7986AAC2B0A5953A45D658ABE3B7A0463C0967F915B32B1A\n7C2685B5509E4363C98FAE0CDB417D77A92E671322A1E4CC86595C39BBEDF8BE\nE0363D80AACF05E20864F4DF9D8D4EF804A00CCAC77E76E12FF29E33734D07C6\nE881889727C51B25FC53F8CC4E1135CE4B1DAE898DF3CEB80B18F5227C2FA4E9\n3DD22A14DA94661E7A93F287DA34F6822C0173923A9FBC24FDC61601C6ACE61F\n76B41EC7C5F894AE6B78F549D4D60D627711A51FF0F2CF51C1256FC5ED6D73D1\n0544DC7823C406002E180B708EDF1C6BEA4E652C2CFEB14F07509E4E32A205F3\nCB962C4EA9FEAE806EBDEF78758B61B5BE0FACFA6888A6BF889D0DB66A105047\n77A0EC2112061FB66CA4F1DA18EEE0DEBA48948ED2B693A1AF6B724EB2FDA8FD\nE1\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n{restore}if\n%%EndFont \nTeXDict begin 40258584 52099344 1000 600 600 (/tmp/tmpy6xdnxcm/out_.dvi)\n@start /Fa 143[83 112[{}1 99.6264 /CMSY10 rf /Fb 205[30\n50[{}1 49.8132 /CMR6 rf /Fc 135[40 120[{}1 66.4176 /CMMI8\nrf /Fd 255[55{}1 66.4176 /CMSY8 rf /Fe 141[38 12[43 3[49\n31[73 3[76 19[38 38 40[{}7 99.6264 /CMR12 rf /Ff 135[55\n17[48 45 75[55 25[{}4 99.6264 /CMMI12 rf end\n%%EndProlog\n%%BeginSetup\n%%Feature: *Resolution 600dpi\nTeXDict begin\n end\n%%EndSetup\n%%Page: 1 1\nTeXDict begin 1 0 bop 1046 2963 a @beginspecial -108.558693\n@llx -11.811164 @lly 107.441307 @urx 50.348377 @ury 2160\n@rwi @setspecial\n%%BeginDocument: /tmp/tmpy6xdnxcm/out_0.eps\n%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: -109 -12 108 51\n%%HiResBoundingBox: -108.558695 -11.8111639 107.441305 50.3483768\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:36\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\nnewpath -77.0744259 0.705833676 moveto\n -76.5603756 0.743355225 -76.0465381 0.783737714 -75.5329374 0.826979266 curveto\n -75.0188421 0.870262452 -74.5049913 0.916409597 -73.9914489 0.965822069 curveto\n -73.4772775 1.01529505 -72.9634257 1.06804036 -72.4499603 1.12437165 curveto\n -71.9357029 1.18078984 -71.4218456 1.24080372 -70.9084718 1.30476682 curveto\n -70.394109 1.36885316 -69.8802469 1.43690205 -69.3669833 1.50926737 curveto\n -68.8524961 1.58180519 -68.3386284 1.65867749 -67.8254948 1.74024228 curveto\n -67.3108616 1.82204542 -66.7969883 1.90856512 -66.2840063 2.00015433 curveto\n -65.7692045 2.09206845 -65.2553255 2.18908363 -64.7425178 2.2915406 curveto\n -64.2275239 2.39443436 -63.7136395 2.50281061 -63.2010292 2.6169888 curveto\n -62.68582 2.73174589 -62.1719309 2.85235652 -61.6595407 2.97910924 curveto\n -61.1440939 3.1066181 -60.6302013 3.24033332 -60.1180522 3.38050242 curveto\n -59.6023483 3.52164444 -59.0884537 3.66931892 -58.5765637 3.82372219 curveto\n -58.0605871 3.97935815 -57.5466924 4.14181715 -57.0350752 4.31123474 curveto\n -56.5188156 4.48218956 -56.0049235 4.66021377 -55.4935867 4.84537356 curveto\n -54.977041 5.03241951 -54.4631541 5.22672862 -53.9520981 5.42829096 curveto\n -53.4352714 5.63212932 -52.9213928 5.84336469 -52.4106096 6.06190644 curveto\n -51.893516 6.28314813 -51.3796488 6.5118547 -50.8691211 6.74785276 curveto\n -50.3517849 6.98699816 -49.8379318 7.23360586 -49.3276326 7.48742049 curveto\n -48.810088 7.74483886 -48.2962516 8.00964397 -47.7861441 8.28150193 curveto\n -47.268435 8.55741103 -46.7546174 8.84055773 -46.2446555 9.13053549 curveto\n -45.726835 9.42498187 -45.2130376 9.72644441 -44.703167 10.0344517 curveto\n -44.1852957 10.3472923 -43.6715191 10.6668582 -43.1616785 10.9926223 curveto\n -42.6438231 11.3235075 -42.1300675 11.6607622 -41.62019 12.0038129 curveto\n -41.1024219 12.3521726 -40.5886868 12.706486 -40.0787015 13.0661425 curveto\n -39.5610947 13.4311739 -39.0473793 13.801689 -38.537213 14.1770484 curveto\n -38.0198426 14.5577081 -37.5061457 14.9433325 -36.9957244 15.3332603 curveto\n -36.478665 15.7282591 -35.9649854 16.1276598 -35.4542359 16.5307841 curveto\n -34.93756 16.9385859 -34.4238963 17.3501873 -33.9127474 17.7648955 curveto\n -33.3965243 18.1837204 -32.8828755 18.6057063 -32.3712589 19.0301458 curveto\n -31.8555535 19.4579775 -31.3419187 19.8882972 -30.8297704 20.3203804 curveto\n -30.3146423 20.7549776 -29.8010209 21.1913564 -29.2882818 21.6287694 curveto\n -28.7737844 22.0676824 -28.2601762 22.5076361 -27.7467933 22.9478522 curveto\n -27.2329727 23.3884436 -26.7193775 23.829298 -26.2053048 24.2695953 curveto\n -25.6921986 24.7090648 -25.1786166 25.1479792 -24.6638163 25.5854632 curveto\n -24.1514525 26.0208765 -23.6378834 26.4548716 -23.1223278 26.8865011 curveto\n -22.6107227 27.3148232 -22.0971662 27.740812 -21.5808393 28.1634305 curveto\n -21.0699957 28.5815608 -20.5564502 28.9963839 -20.0393507 29.4067531 curveto\n -19.5292546 29.8115644 -19.0157176 30.2120276 -18.4978622 30.6068654 curveto\n -17.9884792 30.9952436 -17.474946 31.3781573 -16.9563737 31.7541792 curveto\n -16.4476447 32.1230635 -15.9341083 32.4852842 -15.4148852 32.8392467 curveto\n -14.9067215 33.1856698 -14.3931713 33.5241411 -13.8733967 33.8528891 curveto\n -13.365674 34.1740144 -12.8520962 34.4858084 -12.3319081 34.7863248 curveto\n -11.824462 35.0794801 -11.3108388 35.3618375 -10.7904196 35.6312957 curveto\n -10.2830417 35.8940016 -9.76935269 36.144369 -9.24893111 36.3801881 curveto\n -8.74136949 36.61018 -8.22759397 36.8262465 -7.70744259 37.0261472 curveto\n -7.1994085 37.2213911 -6.68552909 37.4011214 -6.16595407 37.5631811 curveto\n -5.65713724 37.7218852 -5.14314509 37.8635522 -4.62446555 37.9862535 curveto\n -4.11455987 38.1068793 -3.6004599 38.209095 -3.08297704 38.2913623 curveto\n -2.57171483 38.3726408 -2.05752901 38.4343864 -1.54148852 38.4756027 curveto\n -1.02867786 38.516561 -0.514444194 38.537213 0 38.537213 curveto\n 0.514444194 38.537213 1.02867786 38.516561 1.54148852 38.4756027 curveto\n 2.05752901 38.4343864 2.57171483 38.3726408 3.08297704 38.2913623 curveto\n 3.6004599 38.209095 4.11455987 38.1068793 4.62446555 37.9862535 curveto\n 5.14314509 37.8635522 5.65713724 37.7218852 6.16595407 37.5631811 curveto\n 6.68552909 37.4011214 7.1994085 37.2213911 7.70744259 37.0261472 curveto\n 8.22759397 36.8262465 8.74136949 36.61018 9.24893111 36.3801881 curveto\n 9.76935269 36.144369 10.2830417 35.8940016 10.7904196 35.6312957 curveto\n 11.3108388 35.3618375 11.824462 35.0794801 12.3319081 34.7863248 curveto\n 12.8520962 34.4858084 13.365674 34.1740144 13.8733967 33.8528891 curveto\n 14.3931713 33.5241411 14.9067215 33.1856698 15.4148852 32.8392467 curveto\n 15.9341083 32.4852842 16.4476447 32.1230635 16.9563737 31.7541792 curveto\n 17.474946 31.3781573 17.9884792 30.9952436 18.4978622 30.6068654 curveto\n 19.0157176 30.2120276 19.5292546 29.8115644 20.0393507 29.4067531 curveto\n 20.5564502 28.9963839 21.0699957 28.5815608 21.5808393 28.1634305 curveto\n 22.0971662 27.740812 22.6107227 27.3148232 23.1223278 26.8865011 curveto\n 23.6378834 26.4548716 24.1514525 26.0208765 24.6638163 25.5854632 curveto\n 25.1786166 25.1479792 25.6921986 24.7090648 26.2053048 24.2695953 curveto\n 26.7193775 23.829298 27.2329727 23.3884436 27.7467933 22.9478522 curveto\n 28.2601762 22.5076361 28.7737844 22.0676824 29.2882818 21.6287694 curveto\n 29.8010209 21.1913564 30.3146423 20.7549776 30.8297704 20.3203804 curveto\n 31.3419187 19.8882972 31.8555535 19.4579775 32.3712589 19.0301458 curveto\n 32.8828755 18.6057063 33.3965243 18.1837204 33.9127474 17.7648955 curveto\n 34.4238963 17.3501873 34.93756 16.9385859 35.4542359 16.5307841 curveto\n 35.9649854 16.1276598 36.478665 15.7282591 36.9957244 15.3332603 curveto\n 37.5061457 14.9433325 38.0198426 14.5577081 38.537213 14.1770484 curveto\n 39.0473793 13.801689 39.5610947 13.4311739 40.0787015 13.0661425 curveto\n 40.5886868 12.706486 41.1024219 12.3521726 41.62019 12.0038129 curveto\n 42.1300675 11.6607622 42.6438231 11.3235075 43.1616785 10.9926223 curveto\n 43.6715191 10.6668582 44.1852957 10.3472923 44.703167 10.0344517 curveto\n 45.2130376 9.72644441 45.726835 9.42498187 46.2446555 9.13053549 curveto\n 46.7546174 8.84055773 47.268435 8.55741103 47.7861441 8.28150193 curveto\n 48.2962516 8.00964397 48.810088 7.74483886 49.3276326 7.48742049 curveto\n 49.8379318 7.23360586 50.3517849 6.98699816 50.8691211 6.74785276 curveto\n 51.3796488 6.5118547 51.893516 6.28314813 52.4106096 6.06190644 curveto\n 52.9213928 5.84336469 53.4352714 5.63212932 53.9520981 5.42829096 curveto\n 54.4631541 5.22672862 54.977041 5.03241951 55.4935867 4.84537356 curveto\n 56.0049235 4.66021377 56.5188156 4.48218956 57.0350752 4.31123474 curveto\n 57.5466924 4.14181715 58.0605871 3.97935815 58.5765637 3.82372219 curveto\n 59.0884537 3.66931892 59.6023483 3.52164444 60.1180522 3.38050242 curveto\n 60.6302013 3.24033332 61.1440939 3.1066181 61.6595407 2.97910924 curveto\n 62.1719309 2.85235652 62.68582 2.73174589 63.2010292 2.6169888 curveto\n 63.7136395 2.50281061 64.2275239 2.39443436 64.7425178 2.2915406 curveto\n 65.2553255 2.18908363 65.7692045 2.09206845 66.2840063 2.00015433 curveto\n 66.7969883 1.90856512 67.3108616 1.82204542 67.8254948 1.74024228 curveto\n 68.3386284 1.65867749 68.8524961 1.58180519 69.3669833 1.50926737 curveto\n 69.8802469 1.43690205 70.394109 1.36885316 70.9084718 1.30476682 curveto\n 71.4218456 1.24080372 71.9357029 1.18078984 72.4499603 1.12437165 curveto\n 72.9634257 1.06804036 73.4772775 1.01529505 73.9914489 0.965822069 curveto\n 74.5049913 0.916409597 75.0188421 0.870262452 75.5329374 0.826979266 curveto\n 76.0465381 0.783737714 76.5603756 0.743355225 77.0744259 0.705833676 curveto\n 77.0744259 0.705833676 lineto\n 77.0744259 0 lineto\n -77.0744259 0 lineto\n -77.0744259 0.705833676 lineto\nclosepath\n/Compatible .setblendmode\n1 1 0.5 setrgbcolor\n0.5 Setlinewidth\n1 setlinecap\n1 setlinejoin\n10 setmiterlimit\nfill\nnewpath -77.0744259 0.705833676 moveto\n -76.5603756 0.743355225 -76.0465381 0.783737714 -75.5329374 0.826979266 curveto\n -75.0188421 0.870262452 -74.5049913 0.916409597 -73.9914489 0.965822069 curveto\n -73.4772775 1.01529505 -72.9634257 1.06804036 -72.4499603 1.12437165 curveto\n -71.9357029 1.18078984 -71.4218456 1.24080372 -70.9084718 1.30476682 curveto\n -70.394109 1.36885316 -69.8802469 1.43690205 -69.3669833 1.50926737 curveto\n -68.8524961 1.58180519 -68.3386284 1.65867749 -67.8254948 1.74024228 curveto\n -67.3108616 1.82204542 -66.7969883 1.90856512 -66.2840063 2.00015433 curveto\n -65.7692045 2.09206845 -65.2553255 2.18908363 -64.7425178 2.2915406 curveto\n -64.2275239 2.39443436 -63.7136395 2.50281061 -63.2010292 2.6169888 curveto\n -62.68582 2.73174589 -62.1719309 2.85235652 -61.6595407 2.97910924 curveto\n -61.1440939 3.1066181 -60.6302013 3.24033332 -60.1180522 3.38050242 curveto\n -59.6023483 3.52164444 -59.0884537 3.66931892 -58.5765637 3.82372219 curveto\n -58.0605871 3.97935815 -57.5466924 4.14181715 -57.0350752 4.31123474 curveto\n -56.5188156 4.48218956 -56.0049235 4.66021377 -55.4935867 4.84537356 curveto\n -54.977041 5.03241951 -54.4631541 5.22672862 -53.9520981 5.42829096 curveto\n -53.4352714 5.63212932 -52.9213928 5.84336469 -52.4106096 6.06190644 curveto\n -51.893516 6.28314813 -51.3796488 6.5118547 -50.8691211 6.74785276 curveto\n -50.3517849 6.98699816 -49.8379318 7.23360586 -49.3276326 7.48742049 curveto\n -48.810088 7.74483886 -48.2962516 8.00964397 -47.7861441 8.28150193 curveto\n -47.268435 8.55741103 -46.7546174 8.84055773 -46.2446555 9.13053549 curveto\n -45.726835 9.42498187 -45.2130376 9.72644441 -44.703167 10.0344517 curveto\n -44.1852957 10.3472923 -43.6715191 10.6668582 -43.1616785 10.9926223 curveto\n -42.6438231 11.3235075 -42.1300675 11.6607622 -41.62019 12.0038129 curveto\n -41.1024219 12.3521726 -40.5886868 12.706486 -40.0787015 13.0661425 curveto\n -39.5610947 13.4311739 -39.0473793 13.801689 -38.537213 14.1770484 curveto\n -38.0198426 14.5577081 -37.5061457 14.9433325 -36.9957244 15.3332603 curveto\n -36.478665 15.7282591 -35.9649854 16.1276598 -35.4542359 16.5307841 curveto\n -34.93756 16.9385859 -34.4238963 17.3501873 -33.9127474 17.7648955 curveto\n -33.3965243 18.1837204 -32.8828755 18.6057063 -32.3712589 19.0301458 curveto\n -31.8555535 19.4579775 -31.3419187 19.8882972 -30.8297704 20.3203804 curveto\n -30.3146423 20.7549776 -29.8010209 21.1913564 -29.2882818 21.6287694 curveto\n -28.7737844 22.0676824 -28.2601762 22.5076361 -27.7467933 22.9478522 curveto\n -27.2329727 23.3884436 -26.7193775 23.829298 -26.2053048 24.2695953 curveto\n -25.6921986 24.7090648 -25.1786166 25.1479792 -24.6638163 25.5854632 curveto\n -24.1514525 26.0208765 -23.6378834 26.4548716 -23.1223278 26.8865011 curveto\n -22.6107227 27.3148232 -22.0971662 27.740812 -21.5808393 28.1634305 curveto\n -21.0699957 28.5815608 -20.5564502 28.9963839 -20.0393507 29.4067531 curveto\n -19.5292546 29.8115644 -19.0157176 30.2120276 -18.4978622 30.6068654 curveto\n -17.9884792 30.9952436 -17.474946 31.3781573 -16.9563737 31.7541792 curveto\n -16.4476447 32.1230635 -15.9341083 32.4852842 -15.4148852 32.8392467 curveto\n -14.9067215 33.1856698 -14.3931713 33.5241411 -13.8733967 33.8528891 curveto\n -13.365674 34.1740144 -12.8520962 34.4858084 -12.3319081 34.7863248 curveto\n -11.824462 35.0794801 -11.3108388 35.3618375 -10.7904196 35.6312957 curveto\n -10.2830417 35.8940016 -9.76935269 36.144369 -9.24893111 36.3801881 curveto\n -8.74136949 36.61018 -8.22759397 36.8262465 -7.70744259 37.0261472 curveto\n -7.1994085 37.2213911 -6.68552909 37.4011214 -6.16595407 37.5631811 curveto\n -5.65713724 37.7218852 -5.14314509 37.8635522 -4.62446555 37.9862535 curveto\n -4.11455987 38.1068793 -3.6004599 38.209095 -3.08297704 38.2913623 curveto\n -2.57171483 38.3726408 -2.05752901 38.4343864 -1.54148852 38.4756027 curveto\n -1.02867786 38.516561 -0.514444194 38.537213 0 38.537213 curveto\n 0.514444194 38.537213 1.02867786 38.516561 1.54148852 38.4756027 curveto\n 2.05752901 38.4343864 2.57171483 38.3726408 3.08297704 38.2913623 curveto\n 3.6004599 38.209095 4.11455987 38.1068793 4.62446555 37.9862535 curveto\n 5.14314509 37.8635522 5.65713724 37.7218852 6.16595407 37.5631811 curveto\n 6.68552909 37.4011214 7.1994085 37.2213911 7.70744259 37.0261472 curveto\n 8.22759397 36.8262465 8.74136949 36.61018 9.24893111 36.3801881 curveto\n 9.76935269 36.144369 10.2830417 35.8940016 10.7904196 35.6312957 curveto\n 11.3108388 35.3618375 11.824462 35.0794801 12.3319081 34.7863248 curveto\n 12.8520962 34.4858084 13.365674 34.1740144 13.8733967 33.8528891 curveto\n 14.3931713 33.5241411 14.9067215 33.1856698 15.4148852 32.8392467 curveto\n 15.9341083 32.4852842 16.4476447 32.1230635 16.9563737 31.7541792 curveto\n 17.474946 31.3781573 17.9884792 30.9952436 18.4978622 30.6068654 curveto\n 19.0157176 30.2120276 19.5292546 29.8115644 20.0393507 29.4067531 curveto\n 20.5564502 28.9963839 21.0699957 28.5815608 21.5808393 28.1634305 curveto\n 22.0971662 27.740812 22.6107227 27.3148232 23.1223278 26.8865011 curveto\n 23.6378834 26.4548716 24.1514525 26.0208765 24.6638163 25.5854632 curveto\n 25.1786166 25.1479792 25.6921986 24.7090648 26.2053048 24.2695953 curveto\n 26.7193775 23.829298 27.2329727 23.3884436 27.7467933 22.9478522 curveto\n 28.2601762 22.5076361 28.7737844 22.0676824 29.2882818 21.6287694 curveto\n 29.8010209 21.1913564 30.3146423 20.7549776 30.8297704 20.3203804 curveto\n 31.3419187 19.8882972 31.8555535 19.4579775 32.3712589 19.0301458 curveto\n 32.8828755 18.6057063 33.3965243 18.1837204 33.9127474 17.7648955 curveto\n 34.4238963 17.3501873 34.93756 16.9385859 35.4542359 16.5307841 curveto\n 35.9649854 16.1276598 36.478665 15.7282591 36.9957244 15.3332603 curveto\n 37.5061457 14.9433325 38.0198426 14.5577081 38.537213 14.1770484 curveto\n 39.0473793 13.801689 39.5610947 13.4311739 40.0787015 13.0661425 curveto\n 40.5886868 12.706486 41.1024219 12.3521726 41.62019 12.0038129 curveto\n 42.1300675 11.6607622 42.6438231 11.3235075 43.1616785 10.9926223 curveto\n 43.6715191 10.6668582 44.1852957 10.3472923 44.703167 10.0344517 curveto\n 45.2130376 9.72644441 45.726835 9.42498187 46.2446555 9.13053549 curveto\n 46.7546174 8.84055773 47.268435 8.55741103 47.7861441 8.28150193 curveto\n 48.2962516 8.00964397 48.810088 7.74483886 49.3276326 7.48742049 curveto\n 49.8379318 7.23360586 50.3517849 6.98699816 50.8691211 6.74785276 curveto\n 51.3796488 6.5118547 51.893516 6.28314813 52.4106096 6.06190644 curveto\n 52.9213928 5.84336469 53.4352714 5.63212932 53.9520981 5.42829096 curveto\n 54.4631541 5.22672862 54.977041 5.03241951 55.4935867 4.84537356 curveto\n 56.0049235 4.66021377 56.5188156 4.48218956 57.0350752 4.31123474 curveto\n 57.5466924 4.14181715 58.0605871 3.97935815 58.5765637 3.82372219 curveto\n 59.0884537 3.66931892 59.6023483 3.52164444 60.1180522 3.38050242 curveto\n 60.6302013 3.24033332 61.1440939 3.1066181 61.6595407 2.97910924 curveto\n 62.1719309 2.85235652 62.68582 2.73174589 63.2010292 2.6169888 curveto\n 63.7136395 2.50281061 64.2275239 2.39443436 64.7425178 2.2915406 curveto\n 65.2553255 2.18908363 65.7692045 2.09206845 66.2840063 2.00015433 curveto\n 66.7969883 1.90856512 67.3108616 1.82204542 67.8254948 1.74024228 curveto\n 68.3386284 1.65867749 68.8524961 1.58180519 69.3669833 1.50926737 curveto\n 69.8802469 1.43690205 70.394109 1.36885316 70.9084718 1.30476682 curveto\n 71.4218456 1.24080372 71.9357029 1.18078984 72.4499603 1.12437165 curveto\n 72.9634257 1.06804036 73.4772775 1.01529505 73.9914489 0.965822069 curveto\n 74.5049913 0.916409597 75.0188421 0.870262452 75.5329374 0.826979266 curveto\n 76.0465381 0.783737714 76.5603756 0.743355225 77.0744259 0.705833676 curveto\n0 setgray\nstroke\nnewpath -37.5088276 23.3966969 moveto\n -50.4777785 24.9099536 -70.1833795 10.3395913 -77.0744259 26.9760491 curveto\nstroke\nnewpath -30.8297704 20.3203804 moveto\n -32.2648192 22.9207723 -34.5222439 24.496047 -37.2673885 25.4658846 curveto\n -37.7325418 21.4794154 lineto\n -35.3483857 21.8154014 -33.0353788 21.5375647 -30.8297704 20.3203804 curveto\nclosepath\nfill\nnewpath -30.8297704 20.3203804 moveto\n -32.2648192 22.9207723 -34.5222439 24.496047 -37.2673885 25.4658846 curveto\n -37.7325418 21.4794154 lineto\n -35.3483857 21.8154014 -33.0353788 21.5375647 -30.8297704 20.3203804 curveto\nclosepath\nstroke\nnewpath 19.0569192 11.3380855 moveto\n 46.3558482 9.84950618 77.0744259 2.15273474 77.0744259 26.9760491 curveto\nstroke\nnewpath 11.5611639 11.5611639 moveto\n 13.9952252 10.9132552 16.4643985 10.1633895 18.9486117 9.35184262 curveto\n 19.1659085 13.3368315 lineto\n 16.5736998 12.8004676 14.0258287 12.2172187 11.5611639 11.5611639 curveto\nclosepath\nfill\nnewpath 11.5611639 11.5611639 moveto\n 13.9952252 10.9132552 16.4643985 10.1633895 18.9486117 9.35184262 curveto\n 19.1659085 13.3368315 lineto\n 16.5736998 12.8004676 14.0258287 12.2172187 11.5611639 11.5611639 curveto\nclosepath\nstroke\nnewpath -77.0744259 0 moveto\n 77.0744259 0 lineto\nstroke\nnewpath 0 -11.5611639 moveto\n 0 50.0983768 lineto\nstroke\nshowpage\n%%EOF\n\n%%EndDocument\n @endspecial 1046 2963 a\n0.000000 setgray\n 1046 2963 a 1058 2600 a Ff(f)11\nb Fe(\\()p Ff(x)p Fe(\\))28 b(=)g Ff(e)1425 2564 y Fd(\\000)p\nFc(x)1520 2540 y Fb(2)1046 2963 y\n0.000000 setgray\n 1046 2963 a 2352 2601\na Fe(Area)33 b(=)2692 2529 y Fa(p)p 2775 2529 59 4 v\n72 x Ff(\\031)p eop end\n%%Trailer\n\nuserdict /end-hook known{end-hook}if\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/AreaUnderCurve.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmpkltskq09/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.11.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='216pt' height='62.15954pt' viewBox='164.968144 104.206645 216 62.15954'>\n<defs>\n<path id='g1-112' d='M4.65056 10.221669L2.546451 5.571108C2.462765 5.379826 2.402989 5.379826 2.367123 5.379826C2.355168 5.379826 2.295392 5.379826 2.163885 5.475467L1.028144 6.336239C.872727 6.455791 .872727 6.491656 .872727 6.527522C.872727 6.587298 .908593 6.659029 .992279 6.659029C1.06401 6.659029 1.267248 6.491656 1.398755 6.396015C1.470486 6.336239 1.649813 6.204732 1.78132 6.109091L4.136488 11.285679C4.220174 11.476961 4.27995 11.476961 4.387547 11.476961C4.566874 11.476961 4.60274 11.40523 4.686426 11.237858L10.114072 0C10.197758-.167372 10.197758-.215193 10.197758-.239103C10.197758-.358655 10.102117-.478207 9.958655-.478207C9.863014-.478207 9.779328-.418431 9.683686-.227148L4.65056 10.221669Z'/>\n<path id='g4-50' d='M3.21594-1.117808H2.99477C2.982814-1.034122 2.923039-.639601 2.833375-.573848C2.791532-.537983 2.307347-.537983 2.223661-.537983H1.105853L1.870984-1.159651C2.074222-1.321046 2.606227-1.703611 2.791532-1.882939C2.970859-2.062267 3.21594-2.367123 3.21594-2.791532C3.21594-3.53873 2.540473-3.975093 1.739477-3.975093C.968369-3.975093 .430386-3.466999 .430386-2.905106C.430386-2.600249 .687422-2.564384 .753176-2.564384C.902615-2.564384 1.075965-2.67198 1.075965-2.887173C1.075965-3.01868 .998257-3.209963 .735243-3.209963C.872727-3.514819 1.23736-3.741968 1.649813-3.741968C2.27746-3.741968 2.612204-3.275716 2.612204-2.791532C2.612204-2.367123 2.331258-1.93076 1.912827-1.548194L.496139-.251059C.436364-.191283 .430386-.185305 .430386 0H3.030635L3.21594-1.117808Z'/>\n<path id='g2-120' d='M3.993026-3.180075C3.642341-3.092403 3.626401-2.781569 3.626401-2.749689C3.626401-2.574346 3.761893-2.454795 3.937235-2.454795S4.383562-2.590286 4.383562-2.933001C4.383562-3.387298 3.881445-3.514819 3.58655-3.514819C3.211955-3.514819 2.909091-3.251806 2.725778-2.940971C2.550436-3.363387 2.13599-3.514819 1.809215-3.514819C.940473-3.514819 .454296-2.518555 .454296-2.295392C.454296-2.223661 .510087-2.191781 .573848-2.191781C.669489-2.191781 .68543-2.231631 .70934-2.327273C.892653-2.909091 1.370859-3.291656 1.785305-3.291656C2.096139-3.291656 2.247572-3.068493 2.247572-2.781569C2.247572-2.622167 2.15193-2.255542 2.088169-2.000498C2.032379-1.769365 1.857036-1.060025 1.817186-.908593C1.705604-.478207 1.41868-.143462 1.060025-.143462C1.028144-.143462 .820922-.143462 .653549-.255044C1.020174-.342715 1.020174-.67746 1.020174-.68543C1.020174-.868742 .876712-.980324 .70137-.980324C.486177-.980324 .255044-.797011 .255044-.494147C.255044-.127522 .645579 .079701 1.052055 .079701C1.474471 .079701 1.769365-.239103 1.912827-.494147C2.088169-.103611 2.454795 .079701 2.83736 .079701C3.706102 .079701 4.184309-.916563 4.184309-1.139726C4.184309-1.219427 4.120548-1.243337 4.064757-1.243337C3.969116-1.243337 3.953176-1.187547 3.929265-1.107846C3.769863-.573848 3.315567-.143462 2.8533-.143462C2.590286-.143462 2.399004-.318804 2.399004-.653549C2.399004-.812951 2.446824-.996264 2.558406-1.44259C2.614197-1.681694 2.789539-2.383064 2.82939-2.534496C2.940971-2.948941 3.219925-3.291656 3.57858-3.291656C3.618431-3.291656 3.825654-3.291656 3.993026-3.180075Z'/>\n<path id='g0-0' d='M5.571108-1.809215C5.69863-1.809215 5.873973-1.809215 5.873973-1.992528S5.69863-2.175841 5.571108-2.175841H1.004234C.876712-2.175841 .70137-2.175841 .70137-1.992528S.876712-1.809215 1.004234-1.809215H5.571108Z'/>\n<path id='g5-40' d='M3.88543 2.905106C3.88543 2.86924 3.88543 2.84533 3.682192 2.642092C2.486675 1.43462 1.817186-.537983 1.817186-2.976837C1.817186-5.296139 2.379078-7.292653 3.765878-8.703362C3.88543-8.810959 3.88543-8.834869 3.88543-8.870735C3.88543-8.942466 3.825654-8.966376 3.777833-8.966376C3.622416-8.966376 2.642092-8.105604 2.056289-6.933998C1.446575-5.726526 1.171606-4.447323 1.171606-2.976837C1.171606-1.912827 1.338979-.490162 1.960648 .789041C2.666002 2.223661 3.646326 3.000747 3.777833 3.000747C3.825654 3.000747 3.88543 2.976837 3.88543 2.905106Z'/>\n<path id='g5-41' d='M3.371357-2.976837C3.371357-3.88543 3.251806-5.36787 2.582316-6.75467C1.876961-8.18929 .896638-8.966376 .765131-8.966376C.71731-8.966376 .657534-8.942466 .657534-8.870735C.657534-8.834869 .657534-8.810959 .860772-8.607721C2.056289-7.400249 2.725778-5.427646 2.725778-2.988792C2.725778-.669489 2.163885 1.327024 .777086 2.737733C.657534 2.84533 .657534 2.86924 .657534 2.905106C.657534 2.976837 .71731 3.000747 .765131 3.000747C.920548 3.000747 1.900872 2.139975 2.486675 .968369C3.096389-.251059 3.371357-1.542217 3.371357-2.976837Z'/>\n<path id='g5-61' d='M8.069738-3.873474C8.237111-3.873474 8.452304-3.873474 8.452304-4.088667C8.452304-4.315816 8.249066-4.315816 8.069738-4.315816H1.028144C.860772-4.315816 .645579-4.315816 .645579-4.100623C.645579-3.873474 .848817-3.873474 1.028144-3.873474H8.069738ZM8.069738-1.649813C8.237111-1.649813 8.452304-1.649813 8.452304-1.865006C8.452304-2.092154 8.249066-2.092154 8.069738-2.092154H1.028144C.860772-2.092154 .645579-2.092154 .645579-1.876961C.645579-1.649813 .848817-1.649813 1.028144-1.649813H8.069738Z'/>\n<path id='g5-65' d='M4.62665-8.320797C4.578829-8.464259 4.554919-8.53599 4.387547-8.53599S4.196264-8.500125 4.136488-8.308842L1.637858-1.159651C1.470486-.669489 1.135741-.358655 .37061-.3467V0C1.099875-.02391 1.123786-.02391 1.518306-.02391C1.853051-.02391 2.426899-.02391 2.737733 0V-.3467C2.235616-.358655 1.936737-.609714 1.936737-.944458C1.936737-1.016189 1.936737-1.0401 1.996513-1.195517L2.546451-2.785554H5.559153L6.216687-.908593C6.276463-.765131 6.276463-.74122 6.276463-.705355C6.276463-.3467 5.66675-.3467 5.36787-.3467V0C5.642839-.02391 6.587298-.02391 6.922042-.02391S8.117559-.02391 8.392528 0V-.3467C7.615442-.3467 7.400249-.3467 7.232877-.836862L4.62665-8.320797ZM4.052802-7.113325L5.439601-3.132254H2.666002L4.052802-7.113325Z'/>\n<path id='g5-97' d='M4.614695-3.19203C4.614695-3.837609 4.614695-4.315816 4.088667-4.782067C3.670237-5.164633 3.132254-5.332005 2.606227-5.332005C1.625903-5.332005 .872727-4.686426 .872727-3.90934C.872727-3.56264 1.099875-3.395268 1.374844-3.395268C1.661768-3.395268 1.865006-3.598506 1.865006-3.88543C1.865006-4.375592 1.43462-4.375592 1.255293-4.375592C1.530262-4.877709 2.10411-5.092902 2.582316-5.092902C3.132254-5.092902 3.837609-4.638605 3.837609-3.56264V-3.084433C1.43462-3.048568 .526027-2.044334 .526027-1.123786C.526027-.179328 1.625903 .119552 2.355168 .119552C3.144209 .119552 3.682192-.358655 3.90934-.932503C3.957161-.37061 4.327771 .059776 4.841843 .059776C5.092902 .059776 5.786301-.107597 5.786301-1.06401V-1.733499H5.523288V-1.06401C5.523288-.382565 5.236364-.286924 5.068991-.286924C4.614695-.286924 4.614695-.920548 4.614695-1.099875V-3.19203ZM3.837609-1.685679C3.837609-.514072 2.964882-.119552 2.450809-.119552C1.865006-.119552 1.374844-.549938 1.374844-1.123786C1.374844-2.701868 3.407223-2.84533 3.837609-2.86924V-1.685679Z'/>\n<path id='g5-101' d='M4.578829-2.773599C4.841843-2.773599 4.865753-2.773599 4.865753-3.000747C4.865753-4.208219 4.220174-5.332005 2.773599-5.332005C1.41071-5.332005 .358655-4.100623 .358655-2.618182C.358655-1.0401 1.578082 .119552 2.905106 .119552C4.327771 .119552 4.865753-1.171606 4.865753-1.422665C4.865753-1.494396 4.805978-1.542217 4.734247-1.542217C4.638605-1.542217 4.614695-1.482441 4.590785-1.422665C4.27995-.418431 3.478954-.143462 2.976837-.143462S1.267248-.478207 1.267248-2.546451V-2.773599H4.578829ZM1.279203-3.000747C1.374844-4.877709 2.426899-5.092902 2.761644-5.092902C4.040847-5.092902 4.112578-3.407223 4.124533-3.000747H1.279203Z'/>\n<path id='g5-114' d='M1.996513-2.785554C1.996513-3.945205 2.47472-5.033126 3.395268-5.033126C3.490909-5.033126 3.514819-5.033126 3.56264-5.021171C3.466999-4.97335 3.275716-4.901619 3.275716-4.578829C3.275716-4.23213 3.550685-4.100623 3.741968-4.100623C3.981071-4.100623 4.220174-4.25604 4.220174-4.578829C4.220174-4.937484 3.897385-5.272229 3.383313-5.272229C2.367123-5.272229 2.020423-4.172354 1.948692-3.945205H1.936737V-5.272229L.334745-5.140722V-4.794022C1.147696-4.794022 1.243337-4.710336 1.243337-4.124533V-.884682C1.243337-.3467 1.111831-.3467 .334745-.3467V0C.669489-.02391 1.327024-.02391 1.685679-.02391C2.008468-.02391 2.857285-.02391 3.132254 0V-.3467H2.893151C2.020423-.3467 1.996513-.478207 1.996513-.908593V-2.785554Z'/>\n<path id='g3-25' d='M3.096389-4.507098H4.447323C4.124533-3.16812 3.921295-2.295392 3.921295-1.338979C3.921295-1.171606 3.921295 .119552 4.411457 .119552C4.662516 .119552 4.877709-.107597 4.877709-.310834C4.877709-.37061 4.877709-.394521 4.794022-.573848C4.471233-1.398755 4.471233-2.426899 4.471233-2.510585C4.471233-2.582316 4.471233-3.431133 4.722291-4.507098H6.06127C6.216687-4.507098 6.611208-4.507098 6.611208-4.889664C6.611208-5.152677 6.38406-5.152677 6.168867-5.152677H2.235616C1.960648-5.152677 1.554172-5.152677 1.004234-4.566874C.6934-4.220174 .310834-3.58655 .310834-3.514819S.37061-3.419178 .442341-3.419178C.526027-3.419178 .537983-3.455044 .597758-3.526775C1.219427-4.507098 1.841096-4.507098 2.139975-4.507098H2.82142C2.558406-3.610461 2.259527-2.570361 1.279203-.478207C1.183562-.286924 1.183562-.263014 1.183562-.191283C1.183562 .059776 1.398755 .119552 1.506351 .119552C1.853051 .119552 1.948692-.191283 2.092154-.6934C2.283437-1.303113 2.283437-1.327024 2.402989-1.80523L3.096389-4.507098Z'/>\n<path id='g3-101' d='M2.139975-2.773599C2.462765-2.773599 3.275716-2.797509 3.849564-3.012702C4.758157-3.359402 4.841843-4.052802 4.841843-4.267995C4.841843-4.794022 4.387547-5.272229 3.598506-5.272229C2.343213-5.272229 .537983-4.136488 .537983-2.008468C.537983-.753176 1.255293 .119552 2.343213 .119552C3.969116 .119552 4.99726-1.147696 4.99726-1.303113C4.99726-1.374844 4.925529-1.43462 4.877709-1.43462C4.841843-1.43462 4.829888-1.422665 4.722291-1.315068C3.957161-.298879 2.82142-.119552 2.367123-.119552C1.685679-.119552 1.327024-.657534 1.327024-1.542217C1.327024-1.709589 1.327024-2.008468 1.506351-2.773599H2.139975ZM1.566127-3.012702C2.080199-4.853798 3.21594-5.033126 3.598506-5.033126C4.124533-5.033126 4.483188-4.722291 4.483188-4.267995C4.483188-3.012702 2.570361-3.012702 2.068244-3.012702H1.566127Z'/>\n<path id='g3-102' d='M5.332005-4.805978C5.571108-4.805978 5.66675-4.805978 5.66675-5.033126C5.66675-5.152677 5.571108-5.152677 5.355915-5.152677H4.387547C4.614695-6.38406 4.782067-7.232877 4.877709-7.615442C4.94944-7.902366 5.200498-8.177335 5.511333-8.177335C5.762391-8.177335 6.01345-8.069738 6.133001-7.962142C5.66675-7.914321 5.523288-7.567621 5.523288-7.364384C5.523288-7.12528 5.702615-6.981818 5.929763-6.981818C6.168867-6.981818 6.527522-7.185056 6.527522-7.639352C6.527522-8.141469 6.025405-8.416438 5.499377-8.416438C4.985305-8.416438 4.483188-8.033873 4.244085-7.567621C4.028892-7.149191 3.90934-6.718804 3.634371-5.152677H2.833375C2.606227-5.152677 2.486675-5.152677 2.486675-4.937484C2.486675-4.805978 2.558406-4.805978 2.797509-4.805978H3.56264C3.347447-3.694147 2.857285-.992279 2.582316 .286924C2.379078 1.327024 2.199751 2.199751 1.601993 2.199751C1.566127 2.199751 1.219427 2.199751 1.004234 1.972603C1.613948 1.924782 1.613948 1.398755 1.613948 1.3868C1.613948 1.147696 1.43462 1.004234 1.207472 1.004234C.968369 1.004234 .609714 1.207472 .609714 1.661768C.609714 2.175841 1.135741 2.438854 1.601993 2.438854C2.82142 2.438854 3.323537 .251059 3.455044-.3467C3.670237-1.267248 4.25604-4.447323 4.315816-4.805978H5.332005Z'/>\n<path id='g3-120' d='M5.66675-4.877709C5.284184-4.805978 5.140722-4.519054 5.140722-4.291905C5.140722-4.004981 5.36787-3.90934 5.535243-3.90934C5.893898-3.90934 6.144956-4.220174 6.144956-4.542964C6.144956-5.045081 5.571108-5.272229 5.068991-5.272229C4.339726-5.272229 3.93325-4.554919 3.825654-4.327771C3.550685-5.224408 2.809465-5.272229 2.594271-5.272229C1.374844-5.272229 .729265-3.706102 .729265-3.443088C.729265-3.395268 .777086-3.335492 .860772-3.335492C.956413-3.335492 .980324-3.407223 1.004234-3.455044C1.41071-4.782067 2.211706-5.033126 2.558406-5.033126C3.096389-5.033126 3.203985-4.531009 3.203985-4.244085C3.203985-3.981071 3.132254-3.706102 2.988792-3.132254L2.582316-1.494396C2.402989-.777086 2.056289-.119552 1.422665-.119552C1.362889-.119552 1.06401-.119552 .812951-.274969C1.243337-.358655 1.338979-.71731 1.338979-.860772C1.338979-1.099875 1.159651-1.243337 .932503-1.243337C.645579-1.243337 .334745-.992279 .334745-.609714C.334745-.107597 .896638 .119552 1.41071 .119552C1.984558 .119552 2.391034-.334745 2.642092-.824907C2.833375-.119552 3.431133 .119552 3.873474 .119552C5.092902 .119552 5.738481-1.446575 5.738481-1.709589C5.738481-1.769365 5.69066-1.817186 5.618929-1.817186C5.511333-1.817186 5.499377-1.75741 5.463512-1.661768C5.140722-.609714 4.447323-.119552 3.90934-.119552C3.490909-.119552 3.263761-.430386 3.263761-.920548C3.263761-1.183562 3.311582-1.374844 3.502864-2.163885L3.921295-3.789788C4.100623-4.507098 4.507098-5.033126 5.057036-5.033126C5.080946-5.033126 5.415691-5.033126 5.66675-4.877709Z'/>\n</defs>\n<g id='page1'>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 0 62.3926L 216.81 62.3926L 216.81 0L 0 0L 0 62.3926Z' fill='#ffffff'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 31.6023 49.8287C 32.1183 49.791 32.6341 49.7505 33.1496 49.7071C 33.6656 49.6637 34.1814 49.6173 34.6969 49.5677C 35.213 49.5181 35.7288 49.4651 36.2441 49.4086C 36.7603 49.352 37.2761 49.2917 37.7914 49.2275C 38.3077 49.1632 38.8235 49.0949 39.3387 49.0223C 39.8551 48.9494 40.3709 48.8723 40.8859 48.7904C 41.4025 48.7083 41.9183 48.6215 42.4332 48.5295C 42.95 48.4373 43.4658 48.3399 43.9805 48.237C 44.4974 48.1338 45.0132 48.025 45.5278 47.9104C 46.0449 47.7952 46.5607 47.6741 47.075 47.5469C 47.5924 47.4189 48.1082 47.2847 48.6223 47.144C 49.1399 47.0023 49.6558 46.8541 50.1696 46.6991C 50.6875 46.5429 51.2033 46.3798 51.7168 46.2098C 52.235 46.0382 52.7508 45.8595 53.2641 45.6736C 53.7826 45.4859 54.2984 45.2909 54.8114 45.0885C 55.3301 44.8839 55.8459 44.6719 56.3586 44.4525C 56.8777 44.2305 57.3935 44.0009 57.9059 43.764C 58.4252 43.524 58.941 43.2765 59.4532 43.0217C 59.9727 42.7633 60.4884 42.4975 61.0004 42.2246C 61.5201 41.9477 62.0358 41.6635 62.5477 41.3724C 63.0675 41.0769 63.5832 40.7743 64.095 40.4651C 64.6148 40.1511 65.1305 39.8303 65.6423 39.5033C 66.1621 39.1712 66.6777 38.8327 67.1895 38.4884C 67.7092 38.1387 68.2249 37.783 68.7368 37.422C 69.2563 37.0556 69.772 36.6837 70.2841 36.307C 70.8034 35.9249 71.319 35.5378 71.8313 35.1464C 72.3503 34.7499 72.8659 34.349 73.3786 33.9444C 73.8972 33.5351 74.4128 33.1219 74.9259 32.7057C 75.444 32.2853 75.9596 31.8617 76.4731 31.4357C 76.9908 31.0062 77.5063 30.5743 78.0204 30.1406C 78.5375 29.7044 79.053 29.2664 79.5677 28.8273C 80.0841 28.3867 80.5996 27.9451 81.1149 27.5033C 81.6307 27.061 82.1462 26.6185 82.6622 26.1766C 83.1772 25.7355 83.6928 25.2949 84.2095 24.8558C 84.7238 24.4187 85.2393 23.9831 85.7568 23.5499C 86.2703 23.1199 86.7858 22.6923 87.304 22.2681C 87.8168 21.8484 88.3323 21.4321 88.8513 21.0202C 89.3633 20.6138 89.8788 20.2119 90.3986 19.8155C 90.9099 19.4257 91.4253 19.0414 91.9458 18.6639C 92.4565 18.2937 92.9719 17.9301 93.4931 17.5748C 94.0032 17.2271 94.5186 16.8873 95.0404 16.5573C 95.55 16.235 96.0655 15.9221 96.5876 15.6204C 97.097 15.3262 97.6125 15.0427 98.1349 14.7723C 98.6442 14.5086 99.1598 14.2573 99.6822 14.0206C 100.192 13.7897 100.707 13.5728 101.229 13.3722C 101.739 13.1762 102.255 12.9958 102.777 12.8331C 103.287 12.6738 103.803 12.5316 104.324 12.4085C 104.836 12.2874 105.352 12.1848 105.871 12.1022C 106.384 12.0206 106.901 11.9587 107.419 11.9173C 107.933 11.8762 108.449 11.8555 108.966 11.8555C 109.482 11.8555 109.998 11.8762 110.513 11.9173C 111.031 11.9587 111.547 12.0206 112.06 12.1022C 112.58 12.1848 113.096 12.2874 113.608 12.4085C 114.128 12.5316 114.644 12.6738 115.155 12.8331C 115.676 12.9958 116.192 13.1762 116.702 13.3722C 117.224 13.5728 117.74 13.7897 118.249 14.0206C 118.772 14.2573 119.287 14.5086 119.797 14.7723C 120.319 15.0427 120.835 15.3262 121.344 15.6204C 121.866 15.9221 122.382 16.235 122.891 16.5573C 123.413 16.8873 123.928 17.2271 124.438 17.5748C 124.96 17.9301 125.475 18.2937 125.986 18.6639C 126.506 19.0414 127.022 19.4257 127.533 19.8155C 128.053 20.2119 128.568 20.6138 129.08 21.0202C 129.599 21.4321 130.115 21.8484 130.628 22.2681C 131.146 22.6923 131.661 23.1199 132.175 23.5499C 132.692 23.9831 133.208 24.4187 133.722 24.8558C 134.239 25.2949 134.754 25.7355 135.269 26.1766C 135.785 26.6185 136.301 27.061 136.817 27.5033C 137.332 27.9451 137.847 28.3867 138.364 28.8273C 138.879 29.2664 139.394 29.7044 139.911 30.1406C 140.425 30.5743 140.941 31.0062 141.458 31.4357C 141.972 31.8617 142.488 32.2853 143.006 32.7057C 143.519 33.1219 144.034 33.5351 144.553 33.9444C 145.066 34.349 145.581 34.7499 146.1 35.1464C 146.613 35.5378 147.128 35.9249 147.648 36.307C 148.16 36.6837 148.675 37.0556 149.195 37.422C 149.707 37.783 150.222 38.1387 150.742 38.4884C 151.254 38.8327 151.77 39.1712 152.289 39.5033C 152.801 39.8303 153.317 40.1511 153.837 40.4651C 154.348 40.7743 154.864 41.0769 155.384 41.3724C 155.896 41.6635 156.411 41.9477 156.931 42.2246C 157.443 42.4975 157.959 42.7633 158.478 43.0217C 158.991 43.2765 159.506 43.524 160.026 43.764C 160.538 44.0009 161.054 44.2305 161.573 44.4525C 162.086 44.6719 162.601 44.8839 163.12 45.0885C 163.633 45.2909 164.149 45.4859 164.667 45.6736C 165.181 45.8595 165.697 46.0382 166.215 46.2098C 166.728 46.3798 167.244 46.5429 167.762 46.6991C 168.276 46.8541 168.792 47.0023 169.309 47.144C 169.823 47.2847 170.339 47.4189 170.857 47.5469C 171.371 47.6741 171.887 47.7952 172.404 47.9104C 172.918 48.025 173.434 48.1338 173.951 48.237C 174.466 48.3399 174.982 48.4373 175.498 48.5295C 176.013 48.6215 176.529 48.7083 177.046 48.7904C 177.561 48.8723 178.076 48.9494 178.593 49.0223C 179.108 49.0949 179.624 49.1632 180.14 49.2275C 180.655 49.2917 181.171 49.352 181.687 49.4086C 182.203 49.4651 182.719 49.5181 183.235 49.5677C 183.75 49.6173 184.266 49.6637 184.782 49.7071C 185.298 49.7505 185.813 49.791 186.329 49.8287L 186.329 49.8287L 186.329 50.5372L 31.6023 50.5372L 31.6023 49.8287Z' fill='#ffff80'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 31.6023 49.8287C 32.1183 49.791 32.6341 49.7505 33.1496 49.7071C 33.6656 49.6637 34.1814 49.6173 34.6969 49.5677C 35.213 49.5181 35.7288 49.4651 36.2441 49.4086C 36.7603 49.352 37.2761 49.2917 37.7914 49.2275C 38.3077 49.1632 38.8235 49.0949 39.3387 49.0223C 39.8551 48.9494 40.3709 48.8723 40.8859 48.7904C 41.4025 48.7083 41.9183 48.6215 42.4332 48.5295C 42.95 48.4373 43.4658 48.3399 43.9805 48.237C 44.4974 48.1338 45.0132 48.025 45.5278 47.9104C 46.0449 47.7952 46.5607 47.6741 47.075 47.5469C 47.5924 47.4189 48.1082 47.2847 48.6223 47.144C 49.1399 47.0023 49.6558 46.8541 50.1696 46.6991C 50.6875 46.5429 51.2033 46.3798 51.7168 46.2098C 52.235 46.0382 52.7508 45.8595 53.2641 45.6736C 53.7826 45.4859 54.2984 45.2909 54.8114 45.0885C 55.3301 44.8839 55.8459 44.6719 56.3586 44.4525C 56.8777 44.2305 57.3935 44.0009 57.9059 43.764C 58.4252 43.524 58.941 43.2765 59.4532 43.0217C 59.9727 42.7633 60.4884 42.4975 61.0004 42.2246C 61.5201 41.9477 62.0358 41.6635 62.5477 41.3724C 63.0675 41.0769 63.5832 40.7743 64.095 40.4651C 64.6148 40.1511 65.1305 39.8303 65.6423 39.5033C 66.1621 39.1712 66.6777 38.8327 67.1895 38.4884C 67.7092 38.1387 68.2249 37.783 68.7368 37.422C 69.2563 37.0556 69.772 36.6837 70.2841 36.307C 70.8034 35.9249 71.319 35.5378 71.8313 35.1464C 72.3503 34.7499 72.8659 34.349 73.3786 33.9444C 73.8972 33.5351 74.4128 33.1219 74.9259 32.7057C 75.444 32.2853 75.9596 31.8617 76.4731 31.4357C 76.9908 31.0062 77.5063 30.5743 78.0204 30.1406C 78.5375 29.7044 79.053 29.2664 79.5677 28.8273C 80.0841 28.3867 80.5996 27.9451 81.1149 27.5033C 81.6307 27.061 82.1462 26.6185 82.6622 26.1766C 83.1772 25.7355 83.6928 25.2949 84.2095 24.8558C 84.7238 24.4187 85.2393 23.9831 85.7568 23.5499C 86.2703 23.1199 86.7858 22.6923 87.304 22.2681C 87.8168 21.8484 88.3323 21.4321 88.8513 21.0202C 89.3633 20.6138 89.8788 20.2119 90.3986 19.8155C 90.9099 19.4257 91.4253 19.0414 91.9458 18.6639C 92.4565 18.2937 92.9719 17.9301 93.4931 17.5748C 94.0032 17.2271 94.5186 16.8873 95.0404 16.5573C 95.55 16.235 96.0655 15.9221 96.5876 15.6204C 97.097 15.3262 97.6125 15.0427 98.1349 14.7723C 98.6442 14.5086 99.1598 14.2573 99.6822 14.0206C 100.192 13.7897 100.707 13.5728 101.229 13.3722C 101.739 13.1762 102.255 12.9958 102.777 12.8331C 103.287 12.6738 103.803 12.5316 104.324 12.4085C 104.836 12.2874 105.352 12.1848 105.871 12.1022C 106.384 12.0206 106.901 11.9587 107.419 11.9173C 107.933 11.8762 108.449 11.8555 108.966 11.8555C 109.482 11.8555 109.998 11.8762 110.513 11.9173C 111.031 11.9587 111.547 12.0206 112.06 12.1022C 112.58 12.1848 113.096 12.2874 113.608 12.4085C 114.128 12.5316 114.644 12.6738 115.155 12.8331C 115.676 12.9958 116.192 13.1762 116.702 13.3722C 117.224 13.5728 117.74 13.7897 118.249 14.0206C 118.772 14.2573 119.287 14.5086 119.797 14.7723C 120.319 15.0427 120.835 15.3262 121.344 15.6204C 121.866 15.9221 122.382 16.235 122.891 16.5573C 123.413 16.8873 123.928 17.2271 124.438 17.5748C 124.96 17.9301 125.475 18.2937 125.986 18.6639C 126.506 19.0414 127.022 19.4257 127.533 19.8155C 128.053 20.2119 128.568 20.6138 129.08 21.0202C 129.599 21.4321 130.115 21.8484 130.628 22.2681C 131.146 22.6923 131.661 23.1199 132.175 23.5499C 132.692 23.9831 133.208 24.4187 133.722 24.8558C 134.239 25.2949 134.754 25.7355 135.269 26.1766C 135.785 26.6185 136.301 27.061 136.817 27.5033C 137.332 27.9451 137.847 28.3867 138.364 28.8273C 138.879 29.2664 139.394 29.7044 139.911 30.1406C 140.425 30.5743 140.941 31.0062 141.458 31.4357C 141.972 31.8617 142.488 32.2853 143.006 32.7057C 143.519 33.1219 144.034 33.5351 144.553 33.9444C 145.066 34.349 145.581 34.7499 146.1 35.1464C 146.613 35.5378 147.128 35.9249 147.648 36.307C 148.16 36.6837 148.675 37.0556 149.195 37.422C 149.707 37.783 150.222 38.1387 150.742 38.4884C 151.254 38.8327 151.77 39.1712 152.289 39.5033C 152.801 39.8303 153.317 40.1511 153.837 40.4651C 154.348 40.7743 154.864 41.0769 155.384 41.3724C 155.896 41.6635 156.411 41.9477 156.931 42.2246C 157.443 42.4975 157.959 42.7633 158.478 43.0217C 158.991 43.2765 159.506 43.524 160.026 43.764C 160.538 44.0009 161.054 44.2305 161.573 44.4525C 162.086 44.6719 162.601 44.8839 163.12 45.0885C 163.633 45.2909 164.149 45.4859 164.667 45.6736C 165.181 45.8595 165.697 46.0382 166.215 46.2098C 166.728 46.3798 167.244 46.5429 167.762 46.6991C 168.276 46.8541 168.792 47.0023 169.309 47.144C 169.823 47.2847 170.339 47.4189 170.857 47.5469C 171.371 47.6741 171.887 47.7952 172.404 47.9104C 172.918 48.025 173.434 48.1338 173.951 48.237C 174.466 48.3399 174.982 48.4373 175.498 48.5295C 176.013 48.6215 176.529 48.7083 177.046 48.7904C 177.561 48.8723 178.076 48.9494 178.593 49.0223C 179.108 49.0949 179.624 49.1632 180.14 49.2275C 180.655 49.2917 181.171 49.352 181.687 49.4086C 182.203 49.4651 182.719 49.5181 183.235 49.5677C 183.75 49.6173 184.266 49.6637 184.782 49.7071C 185.298 49.7505 185.813 49.791 186.329 49.8287' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='166.467483' y='122.73685' xlink:href='#g3-102'/>\n<use x='173.513919' y='122.73685' xlink:href='#g5-40'/>\n<use x='178.066245' y='122.73685' xlink:href='#g3-120'/>\n<use x='184.718332' y='122.73685' xlink:href='#g5-41'/>\n<use x='192.591487' y='122.73685' xlink:href='#g5-61'/>\n<use x='205.016968' y='122.73685' xlink:href='#g3-101'/>\n<use x='210.442408' y='118.398413' xlink:href='#g0-0'/>\n<use x='217.028915' y='118.398413' xlink:href='#g2-120'/>\n<use x='221.795814' y='115.585627' xlink:href='#g4-50'/>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 71.3163 27.0527C 58.2987 25.5338 38.5192 40.1588 31.6023 23.46' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 78.0204 30.1406C 76.58 27.5305 74.3141 25.9493 71.5586 24.9758L 71.0918 28.9772C 73.4848 28.64 75.8065 28.9189 78.0204 30.1406Z' fill='#000000'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 78.0204 30.1406C 76.58 27.5305 74.3141 25.9493 71.5586 24.9758L 71.0918 28.9772C 73.4848 28.64 75.8065 28.9189 78.0204 30.1406Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<use x='321.733715' y='122.859817' xlink:href='#g5-65'/>\n<use x='330.509061' y='122.859817' xlink:href='#g5-114'/>\n<use x='335.061387' y='122.859817' xlink:href='#g5-101'/>\n<use x='340.264045' y='122.859817' xlink:href='#g5-97'/>\n<use x='350.019029' y='122.859817' xlink:href='#g5-61'/>\n<use x='362.44451' y='114.248783' xlink:href='#g1-112'/>\n<rect x='372.40718' y='113.770595' height='.478187' width='7.06927'/>\n<use x='372.40718' y='122.859817' xlink:href='#g3-25'/>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 128.094 39.1566C 155.495 40.6507 186.329 48.3764 186.329 23.46' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 120.57 38.9327C 123.013 39.583 125.492 40.3357 127.985 41.1503L 128.204 37.1503C 125.602 37.6887 123.044 38.2741 120.57 38.9327Z' fill='#000000'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 120.57 38.9327C 123.013 39.583 125.492 40.3357 127.985 41.1503L 128.204 37.1503C 125.602 37.6887 123.044 38.2741 120.57 38.9327Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 31.6023 50.5372L 186.329 50.5372' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(164.968 104.207)scale(.996264)'>\n<path d='M 108.966 62.1417L 108.966 0.250937' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/Deathstar.asy",
    "content": "usepackage(\"amsmath\");\n\ntexpreamble(\"\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\");\n\n\n        size (3 inch,0);\n        import three ;\n        currentprojection = perspective (21,25,15);\n        currentlight = White;\n        real phi = (1+ sqrt (5))/2;\n        // Vertices of the icosahedron are of the form\n        // (0, \\pm 1, \\pm\\ phi ), (\\ pm\\phi , 0, \\pm 1),\n        // (\\ pm 1, \\pm\\phi , 0)\n        triple [] Pts = {\n          (0,1,phi), (0,-1,phi), (phi,0,1),\n          (1,phi,0), (-1,phi,0), (-phi,0,1),\n          (phi,0,-1), (0,1,-phi), (-phi,0,-1),\n          (-1,-phi,0), (1,-phi,0), (0,-1,-phi)\n          };\n        // Faces listed as triples (i,j,k) corresponding\n        // to the face through Pts [i], Pts [j] and Pts [k].\n        triple [] faces = {\n          (0,1,2), (0,2,3), (0,3,4), (0,4,5), (0,5,1),\n          (11,6,7), (11,7,8), (11,8,9), (11,9,10), (11,10,6),\n          (10,1,2), (6,2,3), (7,3,4), (8,4,5), (9,5,1),\n          (3,6,7), (4,7,8), (5,8,9), (1,9,10), (2,10,6)\n          };\n        for(triple T: Pts) draw(shift(T)*scale3(.08)*unitsphere,lightyellow);\n        real t =2.5; // Scaling for stellation height\n        // Function to compute the stellation point\n        triple stell_point (triple u, triple v, triple w) {return t/3*( u+v+w);}\n        void stellate ( triple Face ) {\n          int i= round ( Face .x),\n          j= round ( Face .y),\n          k= round ( Face .z);\n          triple S= stell_point ( Pts [i], Pts [j], Pts [k ]);\n          draw ( shift (S)* scale3 (.08)* unitsphere , yellow );\n          draw (S--Pts[i], red );\n          draw (S--Pts[j], red );\n          draw (S--Pts[k], red );\n          draw ( surface (S-- Pts [i]-- Pts [j]-- cycle ), lightgreen );\n          draw ( surface (S-- Pts [i]-- Pts [k]-- cycle ), lightgreen );\n          draw ( surface (S-- Pts [j]-- Pts [k]-- cycle ), lightgreen );\n          draw (Pts[i]--Pts[j]--Pts[k]--cycle, red );\n          }\n        for ( triple Face : faces ) stellate ( Face );\n        "
  },
  {
    "path": "examples/showcase/generated/asymptote/Deathstar.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 197 287 414 504\n%%HiResBoundingBox: 197.01 287 413.99 504\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:41\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 197.01 287 translate\ngsave\n[ 216.98 0 0 217 0 0] concat\n/DeviceRGB setcolorspace\n<<\n/ImageType 1\n/Width 868\n/Height 868\n/BitsPerComponent 8\n/Decode [0 1 0 1 0 1 ]\n/ImageMatrix [868 0 0 868 0 0]\n/DataSource currentfile 1 (~>) /SubFileDecode filter /ASCII85Decode filter\n/FlateDecode filter\n>>\nimage\nGb\"-6q0,j#U&Y._J@8HN'c!tt$HP>j@Ech5&g1UTJ1r:n,`m[)KFim/0GESo#,PMDhJ8[^m;5\nX7[FTXEHJ;W:D8#o'cW]4UiOd\\8Q[\\\\k?jIWFcER%lSnINDCV:N7dV9<BRTJD8rB0sarrN0#z\nO7Uu<L0f5Oq\"(+FZ9JTp!!!!I_;G86qYAGH1[i\"iS2_*3.1qQ!_4*BC9:(U$-]JX$%*AL!z+G\n[/8%UH^agpKeBftLbAer#G+`R:S,02G95/-ZV#oB$4+o:(j.NsPdd!!!Z,jY)V,HUW\"^3-7^X\nfcqCR6tN2s[7\\Z80@J:eq!k(c5>)f,(BFL9!;si<?\\P)$55ip+mp<YOmth^/K*SN%Z+=,?>:5\n^f&Td)joQ2g-U?LKA/7'=oo[AogcO0^Q!!)HWS)<RXl(nFL]f5T;[I9YKH.s'LC9/;a[++_8O\ne49^1WAS*eeihoJg($_!WW3#J4oh%0;01gaF*0ABAS)a^r;5f:Rh\\13$<D4ZlWB*]NM=C035.\ncKnX!e/2;Ra(bn@I5&JC?aH#l$^P1Nia*@Juj,H!VTDZWPi<A9<FlV7;j7g;!ao5rR!!!#%o%\nn`5JHJK106b0UZ.k[&JYP^;qt;?'g=<mN^>\"r*J[.&sWPrhaR$oMEN\"Mn__,!6$ao9dbn]a\"d\n?iJK`Ho\\]ZX4X^HPa@;k&i\"<rp!BT3CG.:MrpFtRfq/iV!!'et55`beEC-0U,>OdBa,Z!DLB<\n5@h1,9CT>QF+Xf_!!Bp2Z*`cNJ':gginq!hh[=E3l*+o>2\"JglR9DPZ^R,PLO?NK%Df%VpmXY\nebX!1H3oH%mG*6-nGf+p9u3uT+h8*!5K&Xr]5/_9(:b)EV-1hE^Z:%m+ISEq!\\fs>T%qK7%^S\ncmrHBT:e[<g*HJ]<foZ0K*T?tk)k3<!-Vaf)*A`CP1c:-dH>A=D\\^IJn1GV@=Z5>>b/6j%ii.\nI-X%gr@;!8oi?^M]Dk[!T:7\\'HPQbV+/+#jgFHSc/F-gqET9lKY27\"s#l:SXM%*:(9mh*k6Bq\n;>(7(T5VFM^%PX\\c'o7\"\\FKMRB9Gr02Le*2G6bP.E`SM%4!4_;'LbGs*o[2#!!'l`q.8dRdGU\n<Bf)=?8[ViL5[+*V0lKXOIC6C%r!peHB&*tlOA=[Ql>qmq5gQjE/T77oFrP@maGJDo(iepUFq\nsL-?T7=)a(!YX\"W[_e=/hOJaH1\"q\"SS\\i+K*R;jB+3H8)#sX:^i=ho'4^]MCMBoLY^W[T[-Ym\n3dJV^?,kGAH[S/5S+EDKjH@!&S$Qjfqoi&.\\ZMj_\"n\"J?>bP]IX*]J09ni`mG\"e(oL;c@*$p-\n<c.oin\\=STQ!dW(>.(D/Jef8\"'c*r9UbOljjR+!!(q.J,XM&mp>>Ic`:)LA*a!aQ6MbPmARDA\nHHk?aKiY1?O^\\66s5Cl7hgG%+m#PsIToa9dB].=8DAOsL4*rl)r-7/HTg2OT[iIQAf@;0I<<Z\nR/ROfkkc:!^6CY^mol&m4eK*))R!'&8bIr*?\"CH8*Q6Hb^\"7lee\\?^Q=&J%kSJkk&uG'pFq:n\n,)^K?]k:qmH:OR6J&E=L(Ap/4tXu3R[XBa%Wjp`qXH@SqX3)1^$=lJH+?q[()L12[-<G]-<O@\n5CtOjG`>9]N+!1I_!5Mb:pr?32<R=^<R5:u%Cr$1r)biuLcaTcaoB4TN!]:XShO<rts!aN=Y>\n@d`kI$_ehD4B]X;>:e4(b#g5C?T\"gDAMKkME7@#=%t<W2?H\\='$cWG/_t\\gZQCcbRi)`kJ:Xl\nzD><1Ud)qWiOX$uL^)7f_DN`X5ag/ja3B`PgopNDLac.06Ie%`EIgPYK@*iDppu\\&8<L#6HZ%\n'NRVC(UDLHB^'5CE7bk2otZ%Gtm1PC1K8g\\4B:R:70CYGe*q\"98E%^[T&ETju-%A]o\\CLPlPR\n`K_T0-I(p6I`\\g6CSuilG1J?ClJc1N)EMj^=BfRSg!EE@]lbC/XtEOXheh,VDDa:CRlB4g&&*\n:nFgf7gk`h=-eC8@pDD]K7li7\"c!3YnOLS<c(_;B`D>TD@n`=b>;Mm'm5CtN./e??I;3X0IKr\n3c?17>9C(nb.7t_F!Pl/no$Ngt_ellZ9i9in(J#2uipYJEn&,BnIG;ia'-/rnG*&QX>IW*Xmd\naJX\\CUYe8a`=der<VC4'(DI##cT._rU7<\\BKG4!HKo#kC^rmUoJ!!\"d1k_aS+d9G/\\b:ag3%2\nKaarF'E>jbMfZPZS_,'c'uIR%8)b#@G\"1d5Toqrn\"pa?eHM=!!!!a#$nd6-[\"tA9d;%+\\ff(9\n6IQ>Z0=JO@N%'k[k?Bl=AnG4j#Nb%%ZYEM?s7hXjZ9KuB!!%NpU2WQil/LluLXrX>NZTpO:Uf\n3XCs&G#N<KL:@@$7rlg/[HBY%Y\\k0/2HmpG;#$crDL!!&b10MDd0<A:^/H;>>AqC&^Y6*P970\nmpKRK47H1Fa]?cM:8>)1&ip`1GEH:dRu65r##J7!.9`6FBL)><>U/@B^E?$/0EPd@c>*offdB\n:[pIIf@Ap^0Uf]G>h@66oo?&cWj`s5e`rlAB!0B]%Y37`K]X>L=Rl2s;c`HB#-;Q*03-k&0X!\n;t[5M=iXJ[t`*IW5>#*r2'&!!!#;7uXV7.:\"chc_'W.<BAfT`KlnV(j<l),9O\\&M]TG_#QOi)\n+9kNm$O1*`7??ZlX^?Fb<:%gDc'Vl%rQ><D!!%hEkRKn*;\\qMF(!W+1A,cB2pYS'A?Vd[j!!!\n#g2$pdehR_?2WCXE&!!!\"<LW!Fp@pSGs<:%sHW>5L7!5PKXm##!3@`20L]dlu4!WW4N:PnolD\nGTM+`)<l=,E#NZ!!!#W;e!Kq7seP.W`5ct\"98E%\\;bp>W/WF<\\pldg=6++6!!!#g*O`PR#.f&\n[</`q)GNOc6d/X.Hi%O*'Lg+@pN36.HbS=9T!<<,88(_ee=smU7\\lA%cGRN%G!!!#o$ccLL;-\nf-l<2<\\#!!!\"<e.p5qIqA5TYDQB\";CY.Z7B/cV!!)Kl2I3K<7CB(M0#h!C7W:er70!;fn-*tW\nJlYqh@kSR$>d=5PMc>T7!!(pbS9ID%F><JeZ/p3<eKOtn!;I70>Ytf5m-:ErEQld/MZ<_Wi,R\nOm7EN+Xh+R]UF[`<!!!!#g1<s.CXeIGf>:Og\\MS/Tm!!!!]Mo-@nW1o1VP_s1GhoO%T%0-A.*\n_1r89$kN[9#YJD7@%Te!!)L8P$HC7>th>!N7&H?('+C8^k4Uo&[rCaQuK#AN@RmY!WW4N#BB8\nFZlEAYUK!3#'r_rL!!'fMaEC\"mFYU&r\\)TI)6F@(!!!\"'.!EZp,([Wg9id.RGeKOtn!.]dhQR\nd6]MtWHW2O00I]->cL!!!\"D#C2)th9\\Sp9?$+#OfQ\"n!!'eZ.-?CFl_:MX@e>^4Z:\"cp!.[R9\ncP:<G7Cu43R&WT@BE/#4n,c4nU-6)$GGuF[.oIr#!!%QC8A0i66!\\T0</ep6W>5L7!'kn\\\\1k\nsP?$)rCN7AZB('+C85]>.q`V=T'NgKTbR-9U?:b;_K!.abkmu$Z!U.m<6UKRd#!!$B$dRDr7l\nCqdb@N;OA[0Qa4!4noi+m=T$dG[tX%Th_+D?'Y:ck<Hc0j7k)\\5[9a`TSCHA;LKj!!\"Uubn[k\nA7H[=_Zu;#7`)J=o6j!DhJ:;1qMI#G?o;,oD1N]f4</U_V!2(8<?c3tG0\"Oq1`pJXqW\"oC6!'\nhoR\\1f97?$,H4m6k6\"`9gAQ!WW4N:?_&%D0=72Qhkil(iJCUEEB(S!<<*b)`2cX]6)GZ>GYeF\ne`,Df8@8^'!!%><cUHVdl(S`lQ&7<+ieS(2[0Qa4!#hNn+m9DGr[M/*'bbRUY3#og!!!JtMCX\nF.7@-ZdW*HSP;.PLf!!!!^n;8_g.2C=+3Sr2p/$_PF!!%Q7GfUWU0,;+%(*e\\\\eKOtn!2tpd(\nNHoZG^stP<(u'^W>5L7!'k8j^G&/qW>N_lUC]ko70!;f:`B:<;/WA#(?(CpkZj6b&HDe2e4\"j\ngPZoV\\=tN2qMH#K6!!&Z?qHq/m]i=@N'k7hEW^Qmf!)OC.%md6m.b`m>>g3]X!!(08\\LT.-.^\njK=fL:oK)?9a;<((e/P]d\"LqqQ>,-!jY`M$<q[!4C2,'kP).YNopX!EZ(#\"98E%L!]W>DKSQ?\n)dSS@&HDe2'LLO^F&XY)D0/4H70!;f:^(]A;70<,`>'&9A<CU=!!!!u5u1Q]YZ+<np36tq+oh\nTCGQ_k:i`<9_CgAV>mYXu%!!!!A+$C-#X'$q+mYY8o%0-A.P0q_nPq<a<F[_U0!!!\"\\N4,mfA\nuV/0hi6DBd/X.H+<M%u;4X'M;(VhL!.`,;n02b891:45O_PI.!!&gggP%ZQQ\\nPJ,1Rk;!!()\n+2citn<-5tlW>5L7!'h#t\\Y9k9@[[D>>Gr;<!!#7c\\m<7V7B&hc#QOi)*^Qhod(5I!cFG-#F%\n=?%s**\\o[uE?'0OB+NGlE!Knn$hlIgF0q:]LIq)PWKIWdOiT40HX;*LUi[$2s-j7OVfi@Bd=H\nPa@;n.n+p$Qo7['Q3NhJNF2]H,l9A!!!$\\d5-CjT9Dpo1'9=]M6q?Au^G5HL'DqN^]mI`$?)\"\nc.CtKjG0,@\\n@f1JuYFh1@0DN0:Kk,[,!!!\"Id)Qmo.M\\ouh<1F1%))4(g?I)B:7b-?E^Z;Cf\n[(a!Dml[bJc_(#-72J%rVMN8Ajc8>\"TSPL#>Hi1euhtoe.nqu46-p%f_bO2UY^<4e:e:dNutj\nb`>q$.<L$[m7MHYs\\T:2OVAM,/r&XWCa!'+X('\">\"'/[6R8&nNT;-0PsCr8L;)1(>&m%=<*gc\nOt`5(C<$Z\"'(M2Dg4A>=;V^=LCaP=^jP(R$K'gNu\"Wh)mV[]!!%Nrkhq>eQAU^6,1U-A55;oQ\nHa_\\:CYu[EWV`)>JYP^;HhSlSfTB-;)lT\\HldgpSbJf&:,!4P*E3Z2aprOm,fcM(3!'gd2E(*\nJo`AAs'[nnZbk3md14o]opWDe@hk5qM/Si@l'+&4kCoEWXc&+A.jDcKeF_ZoG+`POs(P9VDKZ\nBj^4(Cf&i)?9b&H$$QP>Mi>@C=+oqHdC?T;`$Fkj2]-dUZ0WDZ#=!YF6EC+^-&X)nc%h=^rDA\n.Ur7;mlteD%ZC!=3>e4IermUoJ!6V(S+_Z9s72K3kC,*q:D](DiU8c7\\7WI<L@2NJ:cD3g_H6\n,)pCWDJ([-e[8ZGb7l@`jqNeZ4\\85;`E@JF[C5MY`Wr::oM&?-LLcH+!Ft=.tg*K3Pfg#G2qR\n6sZA9\\i$^/>LKrsh.g[+RlB5M?8467\"G>M[.l0Bd/0t*k!rr<LO7KHPf1Z&d\\=u?O/@%[QnG;\nIjqXpSgdRlr^F]H_t6?0H\\\\mNk_q9i1,*-=JtaN=k6TE!!uYFh-ZGl[mFF?k+Qe@egTqt>8mj\n40mmQfscB1/&WDST+7:Z$*6/;'>l8$1[-\\lg']H9,-R6'/O9i\\Te)QU2RdA6MBRG!!(@H[4gP\n55cNDI>'/%)W>85-lb>b>D$]P>MRb#rk>i%>BsQj`s#sU;>:,5bXIBs2ZUJJ<daFt?hL5.(lj\njI(!2'X5?^Tl);UI@'Ufn0Kl@3\\Vch-MEPpNoC.OlJ/5fV#poC>:=L33lJ<`\\r^LR.kqs8*Vc\nT+q>+5SFiT7F.3Um^T\"KX2S;;B_nE:M5cK@DPZ.b%3IduJWpj'@tmNK%HQYpHh#'%fq/uZ!'h\nV?G\"'`AMJ3RXaA'(p7MOUeif[pq\\@O59m@&%T7cOk02#d<s+k[qR!!#7t'Y]CX9;Q)W</XN!:\n)$n:kcgIZ^F)5;B)hp^`)6:@[-m[,bAp&/<K$64Yt_3R.fo\\N`/gq$W;B6d,e@G<?X:q4OXPr\niZ1ZmjrJ!/tQi1%f!!\"iD<EJg!WT^30qIPNO6kmN@FIV1Nk/,dms4mYT!,quc?.\"k4@[^NA>P\ntcpLI.W:S:;c+?lMsZ5<q\"lqiJSk/bHBA)=P4J]_.T\\qWl/E0,r5#B3`)_S31M5pgH_eVZQqG\n$7.@bp11->%b7::g_.U\"QIt-rN@Xj_DnZPVl;tuj/&?)W6uB(![`<OV`8\\beqg+Eh`LoL@5<g\n\"UjSpV.!$\">=$Zisa._>)+SuibQMIM>C1p6$Urpc&rN>nkop'EO%p5%P:7=DkGMl!9$lQ&o&`\nL&BSDdW,%i(\"lCA:I\\]!)6;9'g5eO]'P=2X;3%<@V5d\"Y36,)r%`BY;JL8oi5CJJj2V6lNemZ\n2/R>H['cT&5DZe>/ZgM<F2bs#2-]T0$A:Inc!)6;6'tmm&VRcTFU'Ia<Y!fP>[>MJgYB]@bA+\n/:BcThI!O+-`Jq=EE;S.LGcM8i\"^=!u/6`QFI?YY`Q4A[RF@7uH<ci5ZppA:J+i!9I)H,&V=c\nMW%A``^s7+(njpI(&brFml+RfhXfQI#JTb$Y6u/XSNJ>2+27-\"Rl=PI/Zr2!MMf@=fp47N*\\C\n-X11YlF!!)+Xmgujm?L\"GE.se!pN'\\4u76gD<^P?-A.IHro++3b3?IuB1pY<;E\\5tMG5[@ZgW\n_/M@M:JZGd\\UFPI-[<G`/.sbb2=Y>KOfRO!!'E(bS@hc;Ekn$Z'P]uk)N1N,7Mr4\\;o>0KL3\\\n@,Ctah]3W\"tmJQdql-k2n`rZJV-8d])DeS?8>8q7T((1MP#8a:3&YhgP$Ps6)*uk8GD%q%[5E\nq%'>Z'r93]^,s>UnV09fR>rp+HUiiTm[7f<,:<*\"f)EM_f\"aWDhgOEH1bmd]m:FcC]Td\\bXWi\ngU^Bc=smQI8urmkm#%Q.S+`6Gfk2J]+!1JJ@8sgCd3kc\"Rd8!uoNn8e(<+S%<P6KiH$,$8H0[\n&WVT-1pa4/(<a/g?n*>3_n-65>MaKs3Q3-FN.qYKV[<OZ7Rd3?aKVbIg<-CDdi\\:2+gp;[C<:\n`,H-62RHW%#8RP.Uj\"/cE:/`q`CIA/OL6MoV]^+9qn>toL%r9*)dap)o^*n8PMqR*BsC?;q(K\nMDG@.0&F7qPVkK$+XQL=r:U``3oB+QK57bm8p](:$UPp`\"Vc8oEMOIP'Z%ujG\"#R1E@D;XpFQ\n>usZ;PMrDCVC5YsW?^-L0jtgU8EYf6=9r9A6Zt@*7Qa[:8rPZ#HDXc5%iX8\\ng/)`O3rIs(el\n[8FpYI8qc>E^cP!`>D#uRK4=.oIT.^c\\CtRMW!dMU7stR=,SY76rfKeo4p/E(T&TufH=4s'#h\ni@$XC!C6r)&%lKe%*s8:KS5<T!s_C0K9U>JS^1eE`ZC/Z_(/rJ$bd(#eT\\RgW[5KCM%pMesJ_\n$ejY>Ztk_G$_r?1;gCQlO%Mcjqm/URfCgaV,jR_QR=OE]5?GspZ7aVPPkjh!)OVG%RL!NrpBE\nQ>3qX/75;pc)HZP@@7<#301m$CQTj%qp$/Loqt\"mP#+I*PA;TE$.p#n+ip,&pbV*\"uY^V'#I$\n'mK1,8obKo`qCjuM,0$ig:h;8X,3s&))3>Z'a#0eQ=^I'\"TqkUB[MM(OTu`r*^O_jf[.Y+&sm\n>F@@l)O_HoZ5.(/M\\fT?@R5RdaV!e%,!5\\Y%3(&:s8MVqIk^p'b+j\\AqQj.ck_eY+MfFS_oVE\nb7W%jhWM(PH8Wh]Ca^rHuC^M6ZMZ.&-51s('%T.,b@k#dLSrg90*1,D?Q.+6P,B$U>\"_1R[Gq\n9M:Jr`&t!.$\"G4khB!4Xt/A3(7!=eGXX>6=6.m`RdmL([P&7T'ZK04q@0#P@ShBcrZghQ3)GP\nO,Gn3njj6UlMKPWPo][PE,H7guj,\\]fNU1!k!.YP-E\"TQt9>r`5a'7u[77BhW\"@P!@!W$uIaK\n&OPi9m_X6VD5-7FMmq%-eQC`GhE?dI513]p9):s2&8Tdn$NLXJcD2]kUfaep-duj.H=hfk1;8\nk`C4$Nh8t`E$SJB^!p2Z'+i-M9#]Q\"C0o_j1/SaBXWL@JMdgHpCl.tOk.bI+FZr$(gq7A!nW+\njH^GZ&l%?^%8IP)@8E()(Q`Pb/!27dQ<gD[@AD(;n>\\g\"Dch77sZ%-hF')u/k?!$EF!E(*!XM\nUGd-I^PQI-q8Ka,-Ijs;&>'DM'B).!+5o70B2]arS%[jU<I@,@8VtnJAr<=,*jFXb6J`$70!>\nbOaRM(;DCo>nJ7PCU)fsF`rM)LasZm,1!0_84+(.mB2\\g2i^^\"!;C],nO4Bt!U):oNN@W-sXs\n,Tth3h.Q!5M@*\\g!uF3j.[i[:kaP`]$0CM@t_iNOBLpLarN,fRl:fUf:=<(#?KjgHJJnoiadh\n;$*<$O\"VhQCtYAkHpA9F\"9>YDGo(I!.^k?EO\"C!FB8O&m']Ue\\Hh$A:(J)&,N4VjG@7:.r4-=\nVn%]*Y3W),)>EdESN<>6*d`Ep3g`AnP`&ec'M8jr^[gQ:KRP`!VpU4_!jh4bb\\!.ET:H$,%Yf\nMj-9EA7s+#QWd*10fr>;.WgNW`lc6'GE#4Hh#1ONS%;X`c3^CXp>$c+HeA:k,!Na];#8SU'%-\nW)V;BS\\>#PH>pLc247f[#!.`>83!:6S'cE\\!8!2g`p/d0tLgkb`.cQ?Z@!@`HY:*9u!W^l-$s\n06(N\"?M#Mp@,fiWD$?(_=n+M0;%TLarN,fT5@$8?&PG/)!oR3[T`@&(%gqCcGH@gA$2->?>?c\n\"oq16f3OM:;'T.9oP/7k75=<5)HVk)LPnQIGNZCF/+R%\"!'oPRHP&35@[BsWOi:XH0@@63_`:\nT$AUqc8]>3ALd5b'7J-H\"X'6c+RTi?st8l^e_i`Mpn*Nh>\\f/Z]%n63fC9UJnj[)&\"OZ2O*\\p\n]HD`+om-<\\F,6=MV>UMCt59OU1dW-Gh[msF\\<*['oC5dM*.jF!+8#D\\g$leC[-ejU9>><&Oi0\npO]T$%=<tI&MEIsG!+6c6?GoR;W37^@<@td.MKTHUG;Rs];W2MUk`.&H5Q_#=M2R.^.2AV=C<\n'QH3)tWHd4J5&[oE\"!/'97Q>:e0q#8D/H!!#N.d1n)F@u=mKU5Pb5C<*`>5'=h_(\")t(d@E=\\\nLD9gim)L\\ZUf?u:/,&80>'*g[D7N]pGHQ2bf'L*s\\g`M!X9\\f6-Z6I=V4onRZ%K*fh%`B5#AB\n11U?j)/N@6j!4#9,(!'#Q\\(NEA'HH$\\H[9950(Id'`B[=8a!_$RV-//7Y5$S[\"^f=XM0S`O\\N\ni769jc3RLK4,L7=VP]pTY9KFaqT[bn'4%s#QWcscFY9s@baho=qnhb;068tmcBj<[jY0#aq[>\nd<WiE,)<Y:fQhl!R'lS;96C?otVC:/FXl<X$*.;2M,4G5p.!K;?*`-Bt\"orTLk:bg)Q\\l3uhK\n-YT[HOnH3`.B`G\"!EYh'2)%D)LWI>S-tO&Y)&g9rXLN<.8A_f<&f8rDP:C\\Y;QS/1OdJ.O'b&\nGutXY^g8\"(77tP;6ac-p!3M52W`g[J,DnUb#QS6g%_Ep]U:4F5Qb1eBF/>VrY,HN+fOB]C*`2\nM)!<'CAKmr_Oj.1CQ2r65pHd-g7H/m$^j7I'GGJ=O-rb);i$(Q*+8jttSU79]-mFNh&i/5YnM\n2Kf>rcH+t^'TK[VATU(l9n@+fX+57P_anm0k5qT5$TXD)#Wc>6aAp$!9fK-(NEA'qS<oa\\p/,\nfj%`[6:0aiuXt/d6,Ut4\"KDkGHU+(uG4dWa0^G*!,O4^j5Cu$R!DA:(/@cg?=Bp*`')+tc1r%\nKDnP6-9s3-epBpM\\e!`K.L8LmHL_[%d`16E[7YOk<,;jmLDGn^#+1J,O0HlIFBoa-'2i:-*A=\nd+g2Gm1VR)LoMq%=t8[Z',_Z33EZb1.#o?+A:I\\]clC)2Oo)V)N#'s<dn@'C\"13GWe>c&UYsa\nr9grBEN_Ro7T7uuO,e\"?>\\jd\"]cc6XJq/e/l*Wl=7<Z#6+7[`m1=lti_.>d5LJd75A5T,.KL`\n\\CPj<:lG+p2[ZHFF&K*-1TM;\\eU((lU40bB>;\":QX>KM>t_kNj2#rs*VA'$^!E=cj,,]OU:aa\n4=X04b'm&PA\\i=St3-EB*rK.+G>9(82Ro7XhY39Q,kk\"k'>Beo9Na'CF;/oGQm$ibFhgX<nC'\nn4Vnt#*u^O,3C[khXua,U>smgnd?RC%*PTX%I3fH=4t'SV6MegrP$Z;iK*r,G:$VZm,aEU45n\nV4tZNifV2dN`D!t?E;`@o=Ijkkuf:?&Of,0:i%0P4KKA,)2A`\\ZY'C'cNhZ9:S%t73KeLZn9t\n3-4j_Pp:N^fQ]NhOA,o/-LF689me&9=iinQO]p88)p4`SIV.2AD0T;tD)8k$d+;<K..`=c0t5\nd>1*k^rp4l`W[B0*`\"-&BBiiP:*ISS\"%C5KAE_:Hfi>-iD!#WeC4UZD%`mNM^;\"I=.DJ1R\\;Z\nX9`<t/OR1:'!#jjU.oIkneeNNl;_;bQMOG?<Xm8@YG@rS@ij\\sfU341&%_b\"n4BlP`TQp79Bo\n-<f?I@EXmG,7M/mTC*HhVrc/!cOZG/`.@Xh,@4P>-DB'`fF0*,n>=7A%2dmF@qH\"18$0W.0r.\nOXL^jpL2%$K^a0/?]Jj8Xn#'P*Z)lj0ls:ta3L6Q,)Y3g772^+Y7EHHFDkj&Vlm1,<L%^M@VM\ngL60IBf?na9E7^q^8Rq2O[!C0F#\\;6XO[sd\\%^$NJ%gU0r,:07'UOk=-\"._N<qbGbEE@U)7P5\n&51oNEnEp9\\R'dX\"/O5h(!/TXa>*4eC9ilR%h*)PBC`fMA=^qQCJqWQ1^]M>A&Eaq6+B0('&l\nVfR70<0D0B=\\f>X&OY483BW&%6[*oaQ<$Z3X-f-9eV%:pr$Xr,??INQ)#-1'A/$o.mo4BN8f5\n&uALS,G:[U/ZoSK4Z09E4UU&Oc\\U(V<t8;UNnU<@uq17([E?U(+9X@L/PR&p4mW='a3Z+cMNI\nV8MGtkcnrloa^39X0\"Guc)b)[?,U#J,kCOY;-^?`iR_F$p9/uEIuaQ;!.\\.UeJ0MJEQ'imQ$B\n_#jo?E_/)IrsHc?[S'YYD3Ot58]YbEm>(ce(kqReRW1o=D-@WAXfo8EG97:)SYNk_ZsHWI7pk\n*Niq@F+BK!;I,;0B/j.`\"cLsQ>4gl!P2A)YAWlDOk=-\".US.`@H)Z:;%k+3&G&-Br+n=hMjZB\n'lZ)LeXb4r&=X\"]iNjRm.gq.L^_LMLDZad_:!!(Z!#b\"X'=)=K3X$r?[khD^inuH!->9pY5U.\n2cd?);\"C\"18%ofNHFZA:EIoFq]cU(SaK)mq53`YqgI%Q&:I+Rl?i9pd^oT\"FpWZeJ0MJ?&2h-\n>C%T#/\\4&0\\+jeFb2Klu.p`k-40E8.TBCk]Z7)0VSDRo]%j*]i+#hK91G3%CEoi0uor@Q8B-I\n#aWrR\\%Yg4%5'jZ`IW^SkM<K-!r*kM:s)H##J!Q>OR0fg]38-gFc]KU+VT-ODMKRL!oWJE'JQ\nFNta.Ac#E=7f\"FfOB]k4eUFgiJ/0&S\"Vd2Yf#6K'bNk7E#SU+io[(d\\7/uSN8nYjRBC4P$hcl\nKfHQ3Am`oZA78j\\m/\"EZ7./bnm!:U(K?'rN&rS3?TO\"@^F=A2ApqZF5$+(Tgk1Zq4imeJ'S9;\n:W;=(H^`!;E_>'e'l'Ni(?99M;a^V./'ic&_%O,-f*\"[<Qb\"PcjdQmiENVS6LdA)$!p\\%TfH*\n`\"f%@9\\#jFf.-X'88Jl,&(HHpKHF7e8ZBf-$imG>dm`&VMR[-fDAHfkkk)9?r[\\[F.>ib+2F+\nT4\"+[H)E<r\"2&Qao?;,rNK:(>R!/eYiIMS=+\"en4u%)`q;e;Gg%C4l4VfbA+<HG&/7nI9n2-=\nJBFL:i,0LIX\"tWobd`TOK^65.S>X)X2T!GdDc3U,-eO(HE9jMa$1(bZ9AA@\";5lHmbc#!j7B_\niWl:jI9#\\_uBbZDQ&B2K\")5(-)IEUOI(Ac_1N47Y!?@UdUq.8U>B8qfcN>![u%mLKErb14#'\"\n`shQhoZuM29qm=*$=./J[:eTICL8'1IuLcG\"<fen9L'br;=maLH7:\\94jNX;#I%MFEFkG.*bt\n;%+9ao(.LKrcLd*B*9<<fS)>MMK5K\\,E(O9=e_DP.2=9E41%DXhqT$E.sh2'7Fl)nnrJ9RSp`\nM>s*h4kT.g[N?S=<S&h@\"MMC<)\\&0j]&+9#*\\R1oMVK95Fq$=5(\\=/8ep+hCa5VUrLBIDDTRm\n%V(mq)'%r2[?\\?:>7U8^mR^\\TE!t>0e\";8@Y^]Ae_Rb^IX\"tWp\">u8p:$%%O*<g0k+6)'P\"]B\n@YsVJjM:JZG_M'0]7nfIgl!g8KU9H?HaX87b*u;L^@[ATC.]O&^?*W\"`C@Q4j*^!ddY.?[-X=\nRr%MFdsT,?%JEN#;*[PPlTk27Q^EQ:R/%>>ZC,K)qG6fq3Zb<TpjBo%n]YR9*aDioJ4W!scci\nSRTbXZ#6+7[S4o;04rM:g;Um\\7DF<2gc7aqk6:=;^qgdY77Er_.u(+D;\"0mD4*,.O1=iY$[Wq\n>PS=C`9-h\\Q;W7PO-*pdSZ@jd.)OVknI4aAcB5@'EEfq3paNT\\W;s.+?<]_lg='.3k??I<l6Z\n8/Ia/1q_0k1tK*dF?-8X+Hsn*g6Ja_4r:6MNj!U7!D`!FfS\\n5@`'34gXG>ZSla9>qMqM%5`4\n4?b_@<n,(HBL\\G[rM%kf/7F;Wg@V]';nAC-JMSA1:s0M7<Q0stlG<^F4l.E8V^3tPQ4-F>oP:\nA$`ldq&[.n*m?Qo44'K8X6ZLoXSdfcM(o8n+qoWMi.*5Md%(^V^4\"p[+I+d#_O9)-jk$b*\"(2\no(,@^A.6'\"/jB-MTLUFD&]G7?q1f\\6(&c6=ru$.Ue^S['`7_KVj@O@dE+&_FHh[!tZ$Z6De^[\n6&AYQQ]3Y4GeNoc..a',Wjl&m4e;hISsf+kiG>H)k?=tD'C^Mi!\\dhSp`;E&EZ<a(s)Gd4*'R\n@/]Y%Xdoi6f4Y06kh_A[g-T,[.oqos4TGS8=VX_NZT(^c!oSE^nF+YY$;ilnmpY3g@\"(a@aus\n5Gk#WPS1qc_U+]kkPl7StUVqMi,,M#3nUN.P0,_NKYN:Yle`iP^VlX)]FntTb$Q\"i&TD\\>&j.\n<&;N5cM/o73Q2>`n^4ci!_(`pV[Bi'DA@JCq1um+N3,]D):\\BDNZ5r)cZf\\$E<oY..u1\\DC:l\nIR7<(,<e8&aSs]I;<#/@LJh!WGf(9jmk6AR3SUuFe`+T.dn35q(Ta46[:gP;(l]s?X\\K9P4@\"\n8d@7Aa[5P+$,`g/3R,$N[6?#87BlKaYBDstD_CU_I/^kN;mUr:u[l_fQb*u*;`-fMg?bl:mUL\n;.04?K,uo8k%:i!EYetGf#FZ(!f'JD&E*!eS/T+e!HAujR1*OY$pV9\\\"Yk7&#CJEkZ@c[f?j'\nJ5uSS8C94bfAu_o6<*!2cT\\$7WbEq,#A[+#Co1&\"11ZnGn[aKsjJh=q/MNiu*`WO7cAeg<?G&\n?h&=.Ed3@VKu=ls70M2,*snqosQ'F[ako0_r2-1KL[pldq%()ant^ou7d=a,M#i;-^Bcp;*'=\n9G(Mi0XWX]9P$e9=;p^!Y`lRLihf[S1V-YG@o<Q7/Pk31CK=_Hf%R^Z3C]T^%9#B<G]R4KY3<\nt.Re7OlIf*\\c_#glPM,b^bQ<JJ^ROKZt9:&hkjd;d0PpOl-\")4Ta_QMNP/`(_B)Y$:QO4Xt/;\n^s79h-JE%f%a-1[2J;=A`YipMHu.7Dg1B1GkJKben59[`>>5:RUC<IQp\"Z@d^WtQFdT#(aLZs\nb02H+hLpT\"$56'TK/X+r$@XDh-)^.scG=>+mA`Eem>X.Yu_o39#778lQG]J=HI>6=#qIun81c\nTfg84g'-9q4)aZ:&JP%U)(q2+CQi*>h'VnOBa6(gW8%;<@$@aJ/L8c]*1>,L95EU2M,MoXl][\n5!p9<qqKK&A&cKG`qoAE8X%*BWFF!alUTD@Ilp8hs4B7>0R@$C)^/g&F@BO$Vg,SO(<qp=>l%\njm-Dkg.5dA!QHL,'/en9fS7j!H1S?\\m[dO!r=<TEo<NPCuBbeI@Ufo*`_nOA>#=>&SCQ\\l3u.\nL0&IE7g`9`-W\"FZ9CW<(e3<2@[u;22#<260$L\"g<'U5j+p0Zr(i-cC5dNXA4P[No`*Qa9_Aap\nCrC5;>8?&OVoQ<Sp`<_dncStUobnXBR+b\"=n@cC%&PhsJPm5q%c77p!#U?V1`o@'/#)-?0$'W\nD`j\\>!UW<b-W57'V)qk2Ae>:\"0u!;^uMr*NMX#e!`bE!0&Br+-/RdaSH=%i_$V72u8Z8%ma,D\nC(sBJO]&GO;.On=/7'6f=eEMO>c\\_27NW5#.oIk^'(&qd;_@AgOc+5Wj,0qa?lMi^Ekr^n96@\n>XrS)We]13Vc(#+Ng]5s4>k`(?4=eEN*DLG`5Iu-qM)u5t1AYO678k&-A=1*i7,)WYF1Cl\"A5\n(h+Y<%Z,JNKfDP'?*DqP_qLk,?JE+DBk$$TGUD90gN'/K-NoJjFT=:Q7+B0TiBMr)S%&g@Km>\nkqUH<`T>;se+*'rk)gSqj3P'6\"8juI,.r#cAkP/:ZpP0JdT><hcW>;6\\)t?CSFQJCEMOI#$j\"\n1\\dLgh@o^r)&2cepc$<f;3tMKEtQ2l38\"d@sh:F/d6Mqr3V@#&)S#E#dsM\\_rHnd+':Q8k#kW\n^+9'U]meIfIWe.P7;rR(QY=$/'dC45V5!BTh\\CS:?9^h4EECZa@Dt=&8>ukIi/&a@;/bNFBSd\n;J'mZdNma8ldI97t>0i!>JrF&.GB5eUS<f8\\WA(5)Mf3a<iGf0<cIktDWanW(>MY-B0&Y6OC\\\n5[!heiJ[1Dt2ec(,!V3-!Ci+XNr!i+&n/\\]s5bCqB,_CrSeWJRBpOYjlKt%.T'.jlKa)SY8cZ\nN)on!Y+++W_q;7iM3kpK?;UHF\\\\Q\\W0WQ=Ld.oIjK*'AGd-#RG`cl<#J=l[M]eD7aUcCJGAG#\n;0_b0%Y['k6T9Od[c>N\"Q$bM)fX/+lE9;[Z_)?-l\"lY>Z$V+MY=WUV@P1tTd!#pad5Dri/M)-\n-8$qdLCXX6*&o(0RRBMqW2^JGel^I3G.*c#=c=1@IeZ8bHZnnr%n!Z&Mj-LTY\"5PUR4.BY^)E\nYi5gdU8qlh:11W[N/eRE1JG]_WV#7l!mE8`lkce`a8BOLjhZ\"o\\+/ZrG6MMjoP^<\"A,;l5B0_\naU1]@aUq.-_H'&s**]g*P!AjU6hV@,E\"`7'mW'lp?4S'ZTa\"PI!3RWb#B?&qT_04hg9;$Pq1`\nRIb^q=_lgLhUF7Q'M\\h;'!g/`oVG7kY#$GI.\\T<Mls!$9qPDcq\"'g3<iX$o7_,.fY6fX=aI'L\n=@#4lk$oM@N<DFRb.T]f5q'59\"t>ik<Bm=hWh?SX(dDg*G7O'.[.A7>n6j0f)ae+\"mg.'W%YB\ncVO?#*hH+:6$*(7a.f4WqI+nD'V0;6m2f;=I0N]E>.cqdNXiX@V>IZ9pKkG\\rQL\\FdA)8@qZ8\nj'#&7oUQ'GCX\\9bPb\\l?nG062-QZt\\*DMk`e#.t.>;H\"0@IaSjlMMh8+qm8B'*pGj$a+')p##\n)/^Rr&4/8P'7sqq#'r<RBpN.-Vjr8RnZuNf%BbgL5(%jC6CJl&o6*VjibW[KjrUa0n$WU-@4/\niZ!hZK+2',#,?L[?oNlK*QUR#tdCJI#5dNY,>&_REgQXT*4FC8$3[IOn(+2n8,=f\\'\"%gb^4g\n&-6HKNH#gU>p:;%ZpFhO:-rMJg&c\\8bQHj??g+GG&=\"0\\FYc.2=u`eW.+`G^r6tEQ*r,OnBTV\nJgIu_05\"M[RbF?-9pQtE4Xuni`W#h1Z-d[4LOSlj0c)GNXKV*.'dl]gaiT+uZQDrE\\msG8Iku\n5ZMmt2N]c*`I7B`#7LnZu6W7SqEXO!Of^0dU/='SVMZ`['ifje0Zq;\\V`U7ia7HhY5NpAMc\\m\n]Wb[[X#3%]Of%h;-7KpYF(J^l=+/@N,B@ZO0lu:S)6RDHK3ftk\"mOR39n#J-VHlL:in)=4fla\n$%-g0efU+V,C1(24W3<u7\\e`a6c\"u,MfX<B2[Pk+b.U`7VCY\";QbJ\\u9+t#k`K7WCUn't//hW\nGCR=sVH/_A5.JUQ-Dc`k,N=;UNBZ`tc9h.T.Y*(;0ocen7f\"hcG`hFihU64Z@3je^\\-P(@,6X\nk)\\ZVAh#<\"H+?p)QB[1O9<=KYAS$^WN-cH]ErT%)EQ@pic26D_I\\=`*bo]#G7ub3ePq,`^H9:\nCSZKO#E6kjX[cGKDdWl$!H`k4=$#Hh<G3T5]%edXX:+.DJ.`r(/M>\"]QfMlfl30@+rkbO!p>J\n+_@0+.kQ8G0\"1PI/M(aD-Sgn76$j;UJBZjpI3l%MOok9eY:(gB\\qP-^+8L>YTiBhk^i20&tN0\np4L_-Lil0IpMP_8o?>Y\\IAlc%>*`H=LjGkX#A-D&>HZ8l=iY=OV%@oF-S/'NMG:8FkVF,Lmg)\nK/Q1SiPEBM(]X6j6Za9W?+&qqR6%%kFqLK/QOX2WeSP*gi.$*HRf:hg2&)EO\"VbVBlun>1<)e\nR3Fe\"UnrpLXDS1F%g3\\2h'.`YdisblH=Pg,&+k,;+nNaqlDS1FfZFqSWLk8a/(uD/m*>#hUB-\nhV)0EaiLKoFraV2\",NZTp+6-B].o.<B^.'W%m1Xl1l1[4.TS=HC63=h.>40V(Rm*H\\5PK%PcW\n+4Hp_ga)f)o$O7E2gnYmJ0:s7;iU]La&u=<N1d&Jk#P7ONXGBalDLo*$+B+Eho'`eLD1f1+Yk\na2U.-T7<WhsA'P0d$O1]%MGZuU)fL\\.N\\.DIIc7._IeD6(YJ5PJQ*SC/p$hpW.oIkn,gqa_Gb\nA$s!CaQ%W;a\\lXO!Oc^98<iRBS#`jICdbM?_@.4tpQe^sonXK*=CscffZQ.8_hqJar@.a!?PI\n0%=ad7NKaD);OO1=)8nH]^[*Dpu3+)\\7t*g5JML?FQL)Vdu'&2m$QB(qXE@+MZ/IfC/JbJj8h\n][dH+e*en<>EhcGa'P>RN[``-XCJ(1@U`@Zt(P`:f`8)(`I=20'1p[1.\"4*T!*[OnPS,'DG9.\n16rPH\"#'pP`#Hs6s%laJ7a\"k*\\@S0en<>H%_6Zoo/FVcD)&`LF?I0WYqp+\\Z>>J&*FnWZs8Ch\n>^\\#sW,=glR2p^<pJ'RK<\\QcOTCtq\"`\\9L?X[!jsX^GcKh8_4g=66s.:^83$JW']!X7Fl+u*g\nZ\"b@XGMMpd-!^3d,WPcc7-BHM)$p[;2V::D]G1\\7\\TDI=:7T9dqSo:7=CsFAC,Ce9Rfe\\\"lSS\n)<,aK\\Y>st,&cmJ-gEptaSH<OJ0hdJ=*10?ZuMe\"5oi$:)uoY^s8;;s8)AKcrmb(#c^e9^j@I\no<ZSl_3Y$!Plfs1nl(6$P`*L]0A1qMoHa?&1PA#W\"iW(til=HW7o49F&B7g[MgN`M(H0@\\CLj\n1!n?EHCr8)lm:lXm5&n25a5'Ci1k=C<G;>/[M`<FlUL+X&_qI/fm5qhPff-+__p7nNisMMqY]\ncU8V$*+.uc/_,F/^FqgieBVu[30%KLl):\\!$r)%&iR6BQ[nruLs$5slT[VsKpWCc![3G%U3WQ\nUW(>e\"`pDXOb$ePi95$un>r]:sHN1`,2N(<'RAobfjqLKlla7<`?W(Dc;WlM/6#hS7;Pr+^M#\nF*$mFm5$7C;`AN[[W:K*U8\"o<H,FVj5K%tOe>Q@-@N78#o#$?LMVpdJs,uU>OYT;9[SV1HNn%\n'`/6nXLEqQdk>LGEIS6f*V]P*GlMSmkDYsE_$mQ\\\"UM^u(pWu70E<kKZ7P`\"BFW\"qIP`#1TSB\ns_lRDOnW(T+'ijSX(uY07QAedFd70@6CaWPIOaIl7tULMTSEM!Li[!4:?pL3cRUQ1NZ<%UFcj\nr3;l</5&O!-iT$M7Sc#j/&\\Pouo5W4o[3uc85Z-Vkl\\_dii,La;Ed(KPTjs6TgDB-DURtXOF\"\n#K#iS]Tq/Wg8P'p#X2.oIjKa.Z[Q(H#jhBVa%4Kc4[tG$K)W`<U(\"BD&%d_hq]t#ekh(na8C2\n^-=&XUKn6bdcef_G.^9*;@udU,&.V7XO#f@398L?g/X&KQAnG1a5TFnBSrafUC+RVDsl(&C:Y\nVT1\\_6AB[=4uP[u)f86g+&o.P\"XQtc^[FeW2>n6nc:BCHomdB0/9$ltrs-@X,sd\\pm8ECJDM7\n7:\"V./:\"jlSJ;JWl;U1Z\"gO\"Bsb?c6lL3,duQ%0GcHIUEO:XU\"#T=\"p_9_shmd-NhIsMXSf.H\nnBoGTXqJilG<2rpY@N8+;ROb[-K7DjA9<3;[L5o%Jj7C9V2c(`YMT7*IaR6-D_?7/+%kFqLKA\nYW6dB2E#C9]R/[&\\\"Z,E3P8C2qN6eJY\"l7=Cq7WQ=oEIYV[CSLaQ:>)_C!2G,2)1o_>S>Z$V]\nOTuT.N`*%$q@$cJ+d[,BdJNq(8n/jtLbpRrkDm#BG=<QLoK^p:/Vj!:i!p`Iq)5sXTqd`>>KT\nF2;3<h8/P7+Xfpt8;V/FIbI0R1`e`,DfkjoZQ)K/<^Cd]2TkDF:Q77>NB;.kDkI0O?me`*\\b6\ncUd<EL2YUUGlFTid:WKF.\\enLb#bp\"*=Nu>eUY'FF;N(pd0rsC@-nahWm\\&kclQ,YTiBh5f^)\nshhhpt>.!*)'3qKHg\"V55I_8+l!0&CQ/;cQkaSH;V$'sdZTj\"g/)WN4b\\_5a%fN9^t3Rr^0H7\np`Vd&bOn>sPfR.lno7M(I03m&duP\\m-`UJ>-,?Jh+,j\"*>\"&+u?UDhAGuRbl`s8,'BWh,Q2%>\nen9N3i/l-a:bB7$NH(;E8>@cAl]FUp#A?NQ_iar&,3q$M%.KEn>g[\\46lMo?Q>4gT;NWp4Grs\nFZB\\$gH)\";OQB`=/h9/I<rAW[j6\"_iq8)j*U.]-;1]o0_TM,3q$MbkUOd9,g;Vo:J8FJJkIVM\n:*5Jfn_Jrm#!D(d-T%AM8Y/a=e>`S`!;'&3`O&@'De/#T0Ld%O_R`*DaYM/F[`3$77>NNOo)@\n,lSCerGdgk8XG@NK:(PDCRVG]^,dL5kN=h?3nJ8%[lc0*bre\\PoRSj_?+hUf,7]D3G'<W*j7<\nOd76I\"h(3_UaJU3#erirMT`7@#I\\&Of;\\JGAWP+dY/&Z&L7h6`ZXM(2@.\\A$7CD;(Ak5q_5;s\n<b-U_YQ8U-kX6,I)-X5^[nuZWQip^BTi3P!U(8L7@7Aa[!8Gk8M7,hbR@uK4Hjd@.+)$W1O[\\\n\"t7Gch_gW1;+.2;l\"6^)7>Cl*<a+u?UoM.<7QXYe%!/_]NJe;8X7'Na?^70&fS\\6<]I,hf)Nb\ng;qQ*\"013UbN?\\[!.$i'R_%s+')p##-]3B%_4R$Ls46&9,n>I:S]]T=1#53jC0+$8'8`,XNpm\n,TZ.W#g#Il`-t8Z\\OVukGM7%0l[PZ-I74uS'K4PJ<XNpkV,&`=HrPT&n+pk0\\1e'):4XlAq*c\nJ;pJ7a!PiOJ63XNpmlid/!\\>nM'Fs!60Lg1*'ga&FW;?7I.VUa7WXXN:5Hi&Il=Ms;]71UK@[\nrBfn>S%YS@`Pg[\"`rh3p,q_E`aSH>'##83W$7[7MU<aL$fr4emhU/rE,4G3b!CbE`D@Y$pcN*\nBAGI=BZ,3\"J*S1$%,eF\\=3Qs;A[;N]e'[#^]ZaSH>'*]DiHUPg>)KGg53'BMQ_QS_0W]HuuE/\nVkV80WmR?aSH>'2@1q^g*n5r,3^XU0%@I'@l2_F*2OitmN\\:A[>,K\"T)n!aitAK%,.;J[W^Y?\n\"d4Ee)9;<0'8=`9q`3fW7obg\")d8c+]:rJ[h^-C%WU04GFPf>=]1\"H@D;'_:aN[qD!\"3@;0C=\n-OKfY1P-'hOaKAt`6t)S:B-0r@j2MfD:SET(=pen5!)Zod@.@7>\"mMTjEmVKB@F.rqt?jD$DA\n=6*g1&l%/,=HW7o5X+'Xd:#]?YTgN/)4Dh6a:!,`A4^86=,_0MAp5S!`e=G^obg\"$^9&0gQKV\naGC`R,$P'A0(e?Yl)Jh';h.O'`qqDdl\"XNpm00br+6?_85-s0&g['\"tE'/`EEm@W.ti)r5c[9\nP:LFc$TD65`ru!V]SrMI0Pd#-]7+095Fpb,&ne=Us]+WN74\\43]l12q7V5>TL`OOdgmt74p/;\n(MMNbqG8\"DYG$5eGX;3#hd-T%'N]9'bZT\\K$#E%/ZR%]@Pl)\\]C8/g6p@Y@Z3La%[/Nk-G#1P\n\"MYLs^okOgpnedV+)XB(0<=87U9eY75_eElR$'PFh'@<92;P,`t(\\YTiBhJ:jMN\\0B<GSLr=t\n8n5St]6*5[k+raKS'pan_5NN[aZ6[tN1Sb,FE\"E@';(^s*i)OV[`#_3'j7.0*!&Ke2pBW:Klg\nETL8FG3VgCm_hp/m3=VXE_cCHb8m)Z00c`3s90.WNsCtZ`eF%4B@0jqqUa+mFW2_oknnqJ$<,\n\"XK6%FD3&!-Wr<g(C>RU/!a#)oLo<)Y8.5Cu1_0kg8*PLC+M2R+'QLf?fUb<L(\")c'6)^0j.Y\n3-Vj\"iAB88oHhUW!j=s&b,T);AO\\ue,*`,70On^'dbJqWO\\Dif&Si^#$k00Q0a6\"I+3+r!Rgt\nLJ@%3)/\\(QY1EB6[V6^e'`])DL*3k54T.!C`/ZS9S0+N[RdT!lP>$kY.A;M;j@CNF?>@gQ>EY\n@.'M&2SJkA_5gX=SijRQd%Pj)aK;Md/2*Vm;Ne\\+dFeBp&K)I=9O1p&j?lR04t^,!Lq[lm@7A\na[J2fh,SIa6pd39S`e6uj7H\"t)qb#7,DmspfV=-fI@\\KL6r>IS3\\hOLlhh:.]?-^hP*B9&gHU\nIRO'E7>DRA.=j-*(8780gN'/\"2kV*kdi9B/J=&k^23]uJ+U-a.kY18HL>%cn`03O*mENTgZfN\nSW`%$_Auo<%Aa.VLoB21+3HJkSnl*G]pDuB/^NAQ[R`5Y8Uf7JQJZpGpLb:#:6W5QL*>=aYT1\nj_1h^d/.>ZbNoii,iaNujj9n6j)h]`l#kc)RnjfXs5SDV`eW.jbuHNlfH`2J(%[UIP3$AF`[:\nEe[,o%\\dHLIoqg@'`k&gmNN63F?.Rl7-bOgUn0QNi:Q8f-Vl?SG&6$/6Nou?'Ku3GQ4\"KeeCW\nk_<i0ce0Q#po8OZ'X9imiG[GTWAI3q_U4$%e_FR(('`V,'%=e>`+TTcJq7?lehbg8c,'U?qQj\nbIoHS&6')bW9ufiH*=F?bEnRN@X/R%\\#YqIrb*Ye#)dWa!6Kfp=MPoZT\\J5%$)V_(1q6SFlof\nsC)FL.pWhL!-ZA`slRqUr4*)>[o>;Mh77D1oqV)s2:<q3(1BsYN4>Sj)nAr7Nd`$iP(OKGMob\njDS.&+ReL*lb/f#m'BRe2>hm-WQ6lKU.5DU#,\\b;<^d@T?ECH23CVCSiXe2IXFRdFm2?.RlSk\nCqiIm5P$;t/!;l$j26bUcN&/S&Tn?q/J<Jq[:K3HFjhfiJsDV#i?,OFYu4^B1duE?\\u?u%abp\nsr.ju7&Pr8?VdlkVK+:@#Ic)'2@qUk\\L,3q#bMPsgZ(5\\oV0lQ^D`T'Ta-a-Z/`AGJl)lK<u4\n3Gd%%F`On=h/S$OsT/Obo8N]k0T'G_->=l>u)@-fi&Eh>jKXM>Y(*aEI_YL#%*!,C)^E?BU\\V\nCqX9g&J,]An77C^P/ffFTk0U:Qn+$7A-V@!oQS\"\\/<&D%V?t<$Xd.Hrrg\"F9LekA`iPuFr8U1\noRgV3.4/F;_\\qOnBT>$Atd3R%]@s1&lF11?kdl7H8I3B&o8UbcXY<n`6UmIg!GGr,L0u9nAfl\nCNsIRi3]kB)&\\(4MoKC/VjjjAP-?dOY8NHldQVh;XN:5HrW5O\\<i?dj?3uO!c2-[-c1>+Z1Mb\n'e&):AQY\"rB\\YjC^\"WMotu;?d8Vc_Sf)Q!,&A/W(.!O_pPoM-UWBZ9EnJ5S6-t>`i]a%RneC_\n_:jNEhrI(#>FJGEE^,V;u;gjn%F\"dJ<Uc^;`:Oq.#Ml#Od_DS(g@2Xen=J9.&,>2$r+*\"psji\n\\758$sRf@%V?*X-k-i/jK@aMVKV]YA9l<e'pN2C2Lg:Kl&LrYWIho6F5A:4[.Jg1%?</X07R%\ne9nhjH.o5LNjP_kl@J&)988R7BqP%*/\"[=C&1!@sn<JDJ%OurL*-TS`%DCXO#fj:deZFp\\b\\h\n'Af9uAdrH-MJYu)`*G+70MTgU[j590Z9Eom#[8L1kf`J05GDsTHpH(n=,^B?RORIt&CTe<,jp\nPkceoE'/eV#LhhE#;.$uVUZ,6UrN;87lLA*T#06(:ackuN7IrAF-O7r!m0mY\\`hNl(U%,01Pe\nr1gL2U'N9WC/_fdUfCkDm^EjR&4KfE\"]f8L\\2NAL;slt-Xh`Vl6O5<QM.K6^/T3q'dM=hi?4,\nO8V.%$lSI`0MFaHI1GhrPd>MJW[>O??d8=!3Y\\%]gN+U_>F\\a3aaSH<+JKg7Z_F9ANH6OGVNd\ncM%_%ipe]q)YT<b-U_4[9TN]V/LS'%>r6QKSS;nF;f%H,Em+`@d,^C\"+bl4KQX#$qc-rP(\\H<\n&h/\\.,YRb3F>upWT<dc2FF:uJM_r_,n9\\bN[V;O7n\\dRUZTa#9TSUP#0LHNJ'E&#jd1=SVcd5\nP?N%N&j\"-&0c5$)9C#3A)^M)1i/,]4qm;=*XQ7<MiinhAlDNGR'Y-GG6M=e@tp:dj;^E(/bi@\nQMUDCT47a.s<pHhr!bs8>BpVmpSXW7?A%;8DFP.1iXnJSn-7#'dM=h@:O,97^d$qM.;(M,Dq_\nCi'&P5OV+T^icGeF`@(t)gY_YdW%h1+WfoDIOnBTdjQj!:DnKNVgV4UZ^1^cbC4,r!./pssMF\naNI=!Z';N[)m?Q&9<WMf\"EXbF0#WPi@QT4fla$$siFbItW:@$cC3AZb`q&;-GFb/ei#6@bnWR\nfs=.hZgn%lTc!cL@7s!#M:=4H'8I4X8X>aH<Reu&,M.l+`lL(*EoM=GO\\uc8o?Vo@DVRe=]j'\njW-+7_.2)Sj\\#-i9LQp\"YIT.WTl&:OD2=gN^pq+[fG^X1e*,)SpeLMDt(T\"%S%Zlbs9//>R3`\n=?\\'2T%@/UMG^/JEB0ek`QH?BP_Q]13;qmTW(N4f8GLnX'2#X?Y!]'M%dkTU#N>t`1/j(O$3n\nnnE5#$25>sqHGZgU[7KXV+qH*A4[<fDMQt`k8>?NpaSH<Nnj!-fHL8,aRl;G\"EMM^%@nHRkM&\neZG<L$\\\"=tEi&B$IWIkXguVJ-\"[\"a2RW2_,!9)h>T3U*0DYAn-i%!88O,gU)<1rXmGSDpl(>P\ng)X7RraA7HBBYM>5&.ZSoAR19Icc>#*^+u-ElEb;b8&X21X/`1(0X@QHFaqX?M*\\>L(\"Z\\Mh<\nE%d4!5c,k3./OsQ4k>175kNA4<e\\sA^)<b-W50)=e5d#0QS^\\HeU0>@5NKa[Vp4W;tbf6UuTF\nN(O@Z\"Att[`genP*[Oo;QL*>#7V=/H3k:JBG>&lP$i)daca^FXh-)QXr1F_,LU6uU*$%2T-5,\n%q+KbhOhded8Ja!)SN\\&J^YZ:Ed*RkR>FSSh&_O<RPa#9CFFLr(/WLc_4h/#a)0'dIO!>9S_@\n0-OM(L)Xg6[[O%FC\\d`<aK9R5D3D46h^)cO^Q#s1NF7N&Z#VQp2WV/e/m/m,.j!K*NJTN;KZV\nPKM%dW`<NM&i\"U5Fi\\.2\">P50Fjq^_?=2pu5Y1NUL*lH0`Wm1k//>kZMQMl#RaE9[N94P;en9\nens8MK6N>o^/8&^;uin,u*porD_2sKPRLMtrbEUmYtg=kuVjjja)iaOW\\T&kjOaegHj-;P-0M\nF=Xed3=Dl:5C*sfU4Qc2FaJsqF(.`,3q$QaW#.8e^\\-d50FQL*\"[JjLg@WU%NO\\Prd=b.k/V4\nO]!]'-gptu?4_9M<2D$?plo)!8.I#ag$&L*1M^8/OH]l@6!F\"BUd\"rTL\"DMD9mOV3Fd&bP)-%\nGl/kgZTip?eTZ;=*.V*Ik5q%l?+bCM:5UY-*+O<FFk,gDb6`^3+Kl8kQR\\1EX\\EnG&62;:<5P\n',\"5_71s0J5KRA-WT`_aZ&LJ91HOo\\XNqFk5Q.RdBp5Kr'3hqLYA:,>2%upf$(.H#rqs?M@c^\n5JCeOQWSG`;?p@\"XNUT+A*[LhiC$r*IQm3c&j]4-/aU/,%!NAO+31Eqg\\>qtofMQG,8.pm`CC\n2UId!*rn`9KB2Q&=&O3O6.Oe?Z3WhV7>0(HV7+ol&($LCBhJeBDK;oPBeqld4nUY,]XlN5dAQ\n6*I\"LH.p$P(N7$.6Ct%?2o<9G)1W7,1Y8U'#>5dFFeQ.fG.\\cb!RPi[B/6QG=@W&>K.V<3:Q'\nV.@jmJDHbE$<T>`hF1e\"W6)!:<-TCa4qe)l%=e`\\%L0en9f\"+8s:%bHmd2/1_L41bN-Q`VcI/\na?%a)F/C7@B!S_*G4*TOlX)l^rg^UXm`20Z7#N`dP7HX.8JZXXB[7c=M9d$$`op]joblcOo?T\nc_DA\\j%#Lh,&[m-@23.J[8U\\T%5Q:O`XP*$o.F-D(Nj/087E`a6Z)2T]6=sRtEkXcP:#AB`2M\nf\"D-b*p^rgN;M3'j7.P62pA/d.6;7&L56DW?O.IMQ)E\\VctkrZFW*iKbk[-oVYO+Iko#71^U<\nU>0#lk/G9S#\\716A(m?\\#]4R$\"YTiBhfY[OSLQ3?/cCHbo>r/Wj2m-Jp@Xe:BZc3egKY%0S)5\n`8]@>6*\\ET$peHO\"4h0m[@%V_gj[TNRmQ3N*gP_P(-Y6X:Ks]*;qR0sWN'?Sf.DVS+.4&R:Ik\n)&*6a,YBEMMH#MJNGBnES/@p$j\"1@\\ICpjuBoLRZ^%\"?tB+HMu5(i,S9G>AXStW,!r>F3^ZEu\n8\"D&K\"KN.0d-@oSBV(h5DNW:)Y#fu&]Kc_(s$N's'f6i/ZWSn)i><5]O30ZKJp7X_,<ZN6Nf)\n>\"#@,RT2Bg4s\\D!C`nkEAXg8^GNr01MV-e:5>uCW<aE[0MS?t);9\"k.#PGDd(!P:`otsAZ2MR\ntG=7Qk&[[:]O[og8Zqhn-,`AE\"1p1MY1ra'bMG%H7%kFqLK;[q3B#GOCUZ%q95=EXcQM.Ip>H\n.D\".rl?X3Fe\"S)O9$RgCMZ4ceqr0eVjpc`9C)MH98E-ZEt^Hm4B'P(7d-Kh.t\"gY/pGJhM5O.\n\\.W&o_ia_EU=03$Y3;f@`bLHi87S-E'j70F0/-'5LVjPfeL2W!%LpdpUAMqIP;Kkc9t,CMOnB\nUi#fAK=/6%NKMtE2amL7IPU-$An9?l+8J7a36?c+Ql*!i_2V5S?rV+mrQciD>\\(71jP%V'TZ)\nI'ftlSAOY1pK!`d%6($-X#/iM@L*B</W4CA$\",Bgc\"!ZYTiBh^g/Wf':V=rk^f](J>,u=,-Ik\n0&fIR;Wu5,+X@T;rciFR(,iS7,5M`*-.,+-Im6hOfPV.q%er4cD@sEMfg[F+LWVrnr&Q&\\p&;\nFn^5^;1Y^/=/@9C')A5i[aMP@2XKf/=Xm`A<S1?i7hQ%c;KVqg4fCInKuB)hr&>=.#\\(N+s_C\n*%VgdECGns.$@!D^VjD6:1#c*mcl6Hb9q2R)\"chGa3'/0*]iquhS$ZgIt$5rrpZWJDoMe\"__=\neo$o>86;=,W%HWRS\\<:%O<W>:akK#;\\(dMQ4IERWL_*BS;AW_up#R_3%Ekfh7:aiR<f):GQm^\nRh>u*L?Y@(dJ`OVFf9GL=Rki5+pO@S$,iY>SM0H\"dA^8*I4.\"=uE.P-F7mIbQA+4m+sn3VC$`\niqPhHQj6+].R@QKOlI:98#PT]#0)5(fO(<_N#1*^3BbEk%Tll4OU6t&n!0&KYScji5p,1m5\\R\nX5Mj>@r\\E8eZs'.4P84D;97D/FT%g%8:F-C_S+Dr)m@(FMn$Eqo.\\(G6\\mrN-l$6Pu[l`,O+u\nqGHr397'`^B7Ru:ePG2BFGhtV:@,I=aM2b,g\"E]#a,eP2E+$to?'[!A<!:gVT2niFC!iZ[F68\nEP9mpXGkT?B[h(8Gm/qCAa9U!ah[A\\+F50;56D@Y%'U+W]^Qo6`Mq<<0_``6$:+$D[Ri5(#b`\nnC%Xfitn\\Q']g!]m=^DM,$hg3,VunP*5X2DuiKDL2#'g\\>$9+r$4q);UMlQR\\S6`jkH6/B-K4\nnn-OMUboN?Z0Y3u.GQ7Yr[C$mA2lE`_4([[)$1m;=10nn:KI=g!H/c\\pA$Wks!dFd$C!nKTct\nZ&K#8GpWMQRE8</[3B@elhc.F4Aq,E8tZN+8aoShklEY1/$k9R<^af!&`//6>M<)jm/n<-%QY\n=0A'Tr@Jf#6SM2tDaUq2=u6j\\7nQ3TdBf6T-7k,_)IrPV`lh.AoTN-:Cm`p04al8\\klWCbQ@A\nP\\mq$ui\"n3]Ee%Q?qW(qFpal9BPFsW$UU:-KCOq*I+^@O!j+8c&Dr>sfZAamkr?^(Et'u89P9\n`$fnd#(5XP:Wg\\AUqc8[EZoRZ\"9:4)rm3]*rB]o!p^dC089[M'S^>:L2'S3F;./69#^\"!OlJ$\n>VQD@<Xr1_,7e=s3rcIc/(WHa=!Y!OA$a(m`'QlG,gtic_/et.&7B/d>e#=kO1/*H27Z7qp<>\n_T]'4tqBU8XV/AiXk5@aq-./*`NT>g\\jG)Iio3!5l0.6FA5\\'\"'gCd\\^!.1-jlWg*S:NZt5WE\n(]i^50^\\+X?'/mL9i9F1!Q?t\"-u4@Q(%k7:Y*eu<h17:)N;tTH0^[8@B5\";66nuhD1-in>MB$\nQ^0_)Y^iktCo`^n>[i#3$Q?48WsCSIcl8X;92U;R)$C/N<qmtutRN#3di1`3)Q'P;%16r@_mb\n];oN79n7;Z,%.gX;UJ3Xb/>0\\.$9^-c-:O.*=(UECK?:2HNT5r(Gdr&Rtr_'8C6\"_[Pq&-#.k\nh)-8(A`I;*ODj\\N]!@5Q:X_kR]d32B:r?P&%-o+'JML*8S=,_KnDJb?IJ*9'P(aFR30MLdMW^\nYZ2d/tb!>\"=]QOe^9L`^*[bH^G9^U\\TC&_Rb!4(m.8fG@6fh/\\%PBU?EIfCiMo@9?\"DGO_Rb2\n\\D`>8%FZ=7,Ju?gb:lV*&nYfF0g_[CX,&9@*qrno^0qpi\"HX/3Zjrd59\\^8oFHWJCe/=p!76T\n\\>/&jMALTf9Cd7'!+5QVr8dn$5p_%dUt75(3BC%$rE%+)MYL6:VUYn#57a'MG:4>l%/1Dh?e*\n2ja?$o;uLU?JkG/?Rs^!1eWjEkFiM89Vu'`Y_FpfJ6$RFV/*dO9W_'?DnY\"(.D#&@Q7*lcj@3\n+eY6rD08ac!N9uVp[PVHP!%u/CX\\s+,7'TIV\\lLO?;8a2lMgRaJ]4PkrN5ZJ-R^pTYO[]=0Tk\n77Hbg8(IU/t-r[#UTO,-IkKjI9SZ2.O#5a=n(]4rC']:b>-cMB4t'Jh%H=,2W^e0ZH$!fQ'e,\n@g%l(_mF5]Ufr^.MB4t'dQ.jJcj@<.a'3YDHlJ%$(aIOhD%90JMu`FBAop2p)4G:pZ7(%U'#R\nST<2<^I0_.@\\nX?^M@l.J25gBq\"&O8)gUUsrh7MKi2@X$o!T3]Ih,)pF\\@`0)ajMN\\=<]K'dT\ndBQo,YRI%4@%qa)FhI9-\"r5Xe;Oodn,CAADuSC_0lk)?J4umZSIa7[)c?7L8X@qIYZ/OUr>>@\nQB9tGu:bt<-^%THj=3\\ei3ri0o(i`!R7+!A0=k^K^b,$;bW*A>PSjUNM\\n:<G(`B1OUqe\\O9U\nMMXMk])[1!@u=qUt%h*/2rnnf?$_A*e0%2UhMq1r]fo$Ik#XLMG5GU6qdp!)9l\">NFP0UXIf7\n(sO/?M8gAsq^hC1bJr:T)fNH)r;45Jk1;P1)OE)rJ+uB%p30O;07kq<MDeV3hbLJaNjGWeE(-\nBg^=9]$N,>Aq[5#,R@V]KOVQ]dVY2I^&WU&/o/R-0Uc!p'DZ$<OpbnX0SLsj`0Z\"(cY+,\"0SB\n*IcK%+BC<[kkBU:U7?f/u9bpW)_pES=@sZhAG!0`+Z\"looX%578oBb_[nnQLq5W?(J@E?r:qO\n\"?&TdSqY(d0\"i9*o-7&KC.Y)`:AkXa>X;652Op+o4%S+7P8N0-1Mj?q\\m-MG4)t,k-+E6sdi5\nh%rTgN;X?En:4W3$dR2Mg@%Od@Gm9bX9lMnXVYJd&uO57Yg7L'ljQ0Lf;%(/a_1-\"^jK5]aS,\nX2t#o=iT+VcudnWGN[ao(eL&Ihgb%I\"6[sP5CQk)]%GLXlKcEd9k*3VX'3`h&Mn$T0k7;.nb@\n)kp:!p\"+2BQNH[I\\<,DtG>>:S@oMH#L;7D?FVQ,XSLr3D[!\\6*\"GnGT!ZI-@&<p:GG2Sl;OTF\n0jN*7r7'8.OrB*2.GfJZ!`.Ui*nAgL(+ehQ39GJ,UE9a.\"H6/ArJ$bW\"sf1Op+o4DFM:G.:S6\nS:(Y$\\\"eL/9qsV2Hs0^I)?au2>nt\\6mpi`iC<@'P@'WY;>\\i>2RQoS)=Sh*?i&80<-ZG1ehp^\nE*9(0C-I[E(q*f$S8``YEWSHs9MmVD0-!dIYGA^u`bqY$C4?nRBr\"Z[ic;!f%9kR[TDJDbmC9\n%W'uQeuuQKkb97UB9#MUZ^0h'daV&W%E\\V+$/e#bVRoHFLA#Aia@V[UdB6He't&pH:K&FIoog\nkKpH3n0S3%NHIm.i>S2bq#*'7cDi]RMWhVZu\\]t1dmiG,X)e@IlBTYPTeET8TU]MtED-/JXMT\nP!OQ?Cdd85d<[XFKe_d`YCMjU/0isRL1M!qFl=N[5ad@.8HG>IQVetr55=?a+!Np$_sn1)8'J\n\"^\"(YanoAN#/hRo\\k?>#J@=kJ:JW%2FYC-G5%*$r1.sc#d7MOUtg%Y>'k)*,rqF&&qWK79@cW\n!tMO!^=,GiX['UugN#Z$1-7TgLt\\hAg\\6nt:_lHadh%b8!rS7<3EVo&QT(,O[iSi/uc4I_cj%\n,f26`G<@cNF-<B+kVtifMHWH_Vl>cJ\\k+2J4h#:7FE-2%lWQ`p&3G(?G4+_Rf_E/9]>*++6*F\nI'\\RL$%eLSq4d60Lta3`%Rmg9IB,LQi?$Ym\\\"j-^dRP:Vi%;7ciI=4A_j4\\_'_X*UYUgj2W:N\nZFjf6($N=FfY=nJSj-Ck)V*,>=qMhk7qXU(7CTHB?u$?H@EVpGJ6Ii]<ppCS,g8+A+[o4Mk\"=\n7&:Fds>Z%-7QS_-o=8'jq'r%eR\\fSmcAYo'0Fg[Jd>HI]:_ft5o?S2ZnXZLS2$[_@\"?a-OgYD\nk&AMu[VOqdE\\&C68`8,KK<T)HS2i%8Dsa/>)R0nN@gi/JVNs7]]g,<J[M2QBtf1^G,\\,eLKll\n/Ln%1kc?>?B2?@g=80toPhVl^@Z1<0iRaMqCKEn<,KK=i'chHdN^E%Fq5Pdn&mO5Lo\"mZX17Z\n3JCLoE3YdDn0'$Zf0\\8nG=R,Yu:f(s3?@WqH.-VlALH+Z7k-t8,8.cN[&e9$H-,YKuA\\l>J/e\n11$C9qj%j/^Y7m;s.1UG[tR/IHg\"I9:npm/1M9*QJ@KLOE9SgDtc'fe[2\\KDXM_8Xr3d11+aD\nG`#&N>_e6loG1@ca=`?g(=QDQ5'MAkdM.'%674rCuK@B]-)117s&Rt$)X$<+3b?CF\\jQ26B9^\n=R_.4Kh,N25CU*[>;]*PEl00h*eJ!DirLe;S^a+t$NfN:$d)Y,G@]S\"';LfMX**=COr\":?gMW\nbTd3[h)B_k(dD?NQsj9]PEKD.j2@2Z`b%=g53pT.3GnetpnX#[Fo[cBlc,mN%*\\m3dDq5E&Q^\n6e,@B<_[)<I?`:eJ&RUqE[-9a2$qBMb5*uPs'1*e)A7:_bi:_un<doo_/LgmHgW-bMrS)Z*S7\n)$MeAVog[@g#U90@l)>]-8V*@Z;>Y._=Vs</[25^<!i-M@i<j7=m5qW.h^>;<8[aP:U^l)Zqq\n\"W))KdS>2CKCn6A:!bd+>L1rNG78C/,m>?o7d't:1'DY+Q-\";f5WhY'g(j8?EW^Rt*N%Zdmd'\nt:1'DYttKIEib3_*nC>d+='&3:b?G_T7s>!s(bNgBt6hAgI],P'C1?;&eW:@,Q(jFSBP(!q,k\n<b-sI,YK>$kupLl?'/l!LWC8o/29%mA=*Qt\"Pmf^'i)8XOsRrS<%?mbUi#1^?K.^CJ^G?F\"ON\n<.kj.5[pSRT[k12bN'K8LleKU`D/)lH?7_\\4d-Xr#7qXXLK=3A]b/hS%AMeW.iro?Er&(;.sO\nX&2/a1VKl=!VW-?hpooN\"J<^rplEUCi1l[ZmfS0QF&FU7_b/beDHkmJXXK`X;RIj/@NK\\V'<(\n@8`Ye:*2;Y\\d2?Esd\"5>+]sqOjUpY!9XBRW+j2U?($V%icXoEI16b_daLharnEj`t[(40?7H_\nk1iN^E%Dq<gbDBT\"Tc_%(uHrq**Qm+SjniPI=-(QVq9ECSoqXP$'Lk+T?9l__-G7d8@bVCV4f\nU5a0]>\".%KO_RaKa>^o%/<Muu953I=*<>j0iu^L7ISJep]\\tYjbVUoVF]o`ZoU=18)&cAZ2sq\n.%\\0C/[ni\\ZF;%-Z<32R0W[ka5d0F].U;!<hc\"f<'D&]HZJW5:7U6FFm+(+3A7V#_K9,TT:e$\n:[rAro`<)/rbA/N;3Xj,/sn](?YY,JjIif3toTYC.9Yi[*u2!8J^(@m/\\,,e04C:0X<!.s#>G\n>a1BsAa01tI`mdFhBT*Ng+`<.2q5lbGW>O;*?*5%cSY6Wa-fXLo\\i7Z61l-N2lqeC#/CB^\"(/\nZnuIVo'09/OWoTF-DcX!gR^VOaY$3V)N5>eO08Ot0E^.NeIufO:?'h@eT,,1U.M`lN.6!'?$K\nI9(!J[bVZYal6Q1/JW7odV7bm@S5gYF,(&Td8Z$\\80c+[O=5+NcRK@Pp<M$TAAK\"#73=o(;=&\n+@mP%Uup)>7)#S8KmXO#=MBtLB6*`-r84rL#573/*jSJ\\1L[](%i7GEc`7i;>:U8pq-m&_.B+\n/ZrYQsd=X-orB@P`!.7hP*:m(nEah(0R@d7K<bIoU)Ak@6-M<a'C9;Op+p_>4brS(nFg(0h).\nCYkp.D=i5@:1GgI^gkjbf1p0@n7?>ia6S93#J.aj5R%jJqFF5H@36C/`gb'=]71q%qN6YC\\mM\ndCkV#f<0iqi#Y0HFr:a9.;P]:u@&,-FH\\7@V[B?'HXp(aFQbN:klO@6,`:6knI9X7,^[5SS3,\njeL;gbS%%20d;V8:Sb/>;:^[\\%Fa(oNV\\!o#J6M\"3Q^90r&-h7js[V%d:m^\">#`?UH'AngM\"?\ntofP$4Ler1JX1Q&3\\b-km[a7KCpX$odh\\/u$T=qkpEW^X=jg#sEL>!s/]7K>qTj\"\\O:NNpZ8H\n?\"(R;q%iHqt&]@+)Lr2?6%R0:2+aodL!_nUQ]=\"+-S]u=NZ.;fg@a@+sdjo79kss&cG2^cDj=\n!BU+SIDgr/.ql]J742tKC)?9^)`euJg2f9JqcPsY!I2@AWJ7K@@9JMQrZ-=tn=[$?=m_%#H(R\n]QF4QX&?K<Hl!=AtEtDV_\\=MoXr@%@](^^pnA[%N3l2<Q[+\",-H_PP$?=MFCpA1,Z,K?2rB:;\nodf(FQ/K)fU:+*%<f4;#78]2gbS9*WM;mOQms`m)T*:kpW]m9sX\"h%Rj,)l]/mTrPqsBrX]Ma\n%?<8jN<q1b#9>FVm;j7MHV-dJ>K3]D7r0_ikZ0mtB#Sfh=/r\"e0\"d(#h@d;O,eYXDDA8hn?2N\n_=m#Fm-u5e:%54rr$<p?==\\F^0Xc<Lm9JZI_M1-9ahsf(+p$0s*goqn'h=Md:[mqdMQ2an^ID\n50>1?ahKukAIX1P,P7()dgqDH_`U`R;X&i)'\\obf@\"f<m^1NbES3^pVAq(9<4'mk#77J5k'3`\n@U[R._?_I/.@;oP%5<P>7b<Id0nAA&eWU%pHPH>:\\:.\\#RF6Cb]LY(c\"K1=qkM+#3F3QI?#k<\nDeBT/UH7H3obCR.s7Y;+\\uP'if:?-QDM]BQCi$??qn<<O<\\GU-+:6HiNBjEY&eYh],d8PI5Tn\nIDhKEAK.E<mX3Nh#tA>^Yq&r`<#\\X^76]#bueN-ikfWF,DGq,P.MZ@sik['cC2p?J5^]RqA+P\nZ\\9D*l$U&hn$Dpr;!au:M2OC8ln]eW(8Hho'Y>GB`%LKldsHf[;&>!\\ljlT.Aj_@gYugHUft-\nKCcQSI:bAE\"(,<h4ep-)E0E0>fdeiKo^NT\",[PlHg'B84Q;->@=o>R\"I,!0#)V2<0L<P-o3U7\n#j&!\"WQ%l#X=:FsOcnkjifXem,enm_X[cB@!_EFXj_k@7>&#Z@`B\\bK:G)$C:&4[:%I\\frMR-\n:T[AL?(B[cEsC\"$+pf`B*BNpo/M`/@4e7Whrg.j(kA=_3>oP1tZ+4#J@TA[A/6&M_2fETc`OU\n'/eu`qAqNK6A3<6RMjd5%]OgPEmCMM;CSB3sA2Q*Zop$'q.9hd.-R^-7F-1C3RSX#Hh77H(gg\nkAt@bZS);@(J>.0]nUW\\0;5/Fr`UKcpas'.n'@Pr,gejs)Y9OZeTWlU8PELF5hkNY0KsGjXDV\njqt>je42h!g@c^2o+0Y+CS3O3Fm0<XcE5XKMY$#+qG48n^n`),qS]X!=1:*ro`QKnfDf!Y3Ff\nXko<skt-d\\JD%XI/q7C!XQ!?j*NN9Q<K78k!!I\";MjdS\\#>t>ca,`7>'JHn[qdEcCPcK:OAP\"\nq_g>rHK</_o(!WI[CBq7aNP>)$\"DI:Z#aR5SNB$A/HK+;j,PR3,eG8\"YV8i$QIaZ#85$%b90[\ne`ouN9fL5+5KO(MFks6GjBjp^ukR[0).\"DKOgi/L4HK_P=G9GF,\\HAeV0j.S9ZU;aH&IrK2(O\nD/D@-Veni>+WBUI=,8Rn>`KP`Pq+sMgl-e?#fRS0kZO0b*?/:70-YSj,PR3,lR5\\/]I8WpEpq\nAPU]U3Q!@I[=BV%s<L%U_5Z2<1I\")(Sk2hf`Shfr_nNXN@o)!V9%IEA>8>AIZ!)9k7mFZdLN%\nS9o3I:rh2+^FTNK)rM0i)<>j-MBX3dl<fAS&J(qJWl7=.D4qPFiqHpTDhY;#kh#d-5UA<g>!!\nhS$/#1p3o2^8*#LI^\"=:[)[Fe6\"/`84a[,$TP(B33@-+g>\\!&hs(BYQ[FsKP0iBnJ'[ps-i//\nf4fRE&>D4!_\\*\\$B6WufeJ;-,-**\"g`OT'GU.6\\kM<=8+:\"pCnC#gg&A[AnHpr,Yq\\#J6TMJb\nn^J%2pRsXG9j:;D9\\[)?+Um=h7H3)5C[Z=_%N/aq\\JAW/sN*_Z!T4?EGU)Qp;PWZ^J_f-PrZb\nN$m!jN(b$EsNG545Y\"1m8]nam4McNKk4m;Y'MuEOlJHKYbUAR9*>>aA4^VB_bbKcYf_ZmN5Hc\n:ji2JsN)c9#[`Fp2hDcCI.C:3qJ8p$1f-f?`6XA^6;Vo69V-+Os><Y[u!_q41Yk;uNGXQoK!D\n`q\\o;oJudabNr@l72f[>dYKjAMR]C%A,Ds@J8,[%N3XXNlrX*/g\\Z#S.M&?kk3%YS!qjPKRDM\n:QQR?tD;PdhtNnTn\"?+oV'pTJu9c!@Y]!F1QsQfN7JqusemHhdSC_ig5(ARnK#d^X2NbRGM'8\nP@:LRD*_'Pgn4QnaU+\"P*<qaY+E=;pL:lfG,2/qrjI:u)8%]jQoT]:'hJ\\q^.u&=-$HF,R7'P\nJ&_0NYm_-*kM_BI5%XH[/<L98cDH/:JmbLJUjgX!QM2`J)8]C=DOcn/eeQ8gNlbEE`ZX!T:N7\n3h:G)2l7P!=EqZ0elQ9q4@_g9dP[n*$T@-V.s9n^iV(n#4m8',Rd=Z$>Z[\"l&3),`5m(;&Z4e\n'kJ:)+4+./),^\\W9#]*7.^XoiW&h2a/lF8j;\\;*@\"dZ`%;;k5B;bIhVXAKXDWJL+Lq=1IbW_l\nG`oVA;mr6^R?E()Gi(E?BG^Co6RMOPE@(mcuQV8XZLbT8[q4*p%`On7bNZt.:WU1qs:06h2[p\n9]*Lk6=c$Snc8$00S]H7DCZCjGfC`\\0BIth;_%!lj/q_%'i;$CKW^TrnPuSiD2Z-mFpZm1Ik_\no:/=rh'/MD^d\\YA)79lA\\:/=;IdMH9g2Mu)Hn/tIjVWb2sjo8LG7'UgQ,`J-&4*&s&Tm*(F+I\n+U)9+3A2SO;'I+:Oo_79cR$o,PdZS\\#?]U:uL%\\4GtPgUDTJD;(7*>$deEiBje[M-.,U'GPeq\n?a%.gZhC`OHN,o((kpG:c[eNi,P(j[Im>9^(lU:L2Kk(JV'<'5Jr$d%q:fo``MX\\Y-[#ud>YJ\n#5Y'g/Pn%o7qPugq0715KDe#1M4#8GLEI3sImqBLKK0!<ij1bO4Qd3kN4;LV9lplI\"p<\\!*d\"\nAA(q0\"FBMLdB7R!UPT:Vp?BXfW-;:jGFI>@n4f=O>OPZCc(OmIb&[2Y.%LVpP-sh3I'a-5SpC\n8K=Ac('G3t@kMbVN3MD>)Ts!%sCt^P%_0D_RV:\"?)ZrLCoC=.,rFB+n,:q5R!N$@OBCBh\"(N]\ns<WL+#O-'n_XgSqbaT//q<teRDra`\"fOF'190`+p'/4I7u@X;2hA&L+80XogVPB>gZGhkKk)P\n%+5bKNX2f*TuRkZ/l<&-(%2PO,lK<`]%C.(rG0(g1<'<*UYU^T\\0A(hO\\dEK%?kI_6uY!nSN[\n:h)^hj?b5_2a=,XoHN\".?Wbo]2TgD.9UJgHj)f2deX,(NUic]O-['jNI=Bs`6?BRZpoD-*N:N\n/f;AF:Jj`X]n1*!PZI.dq;rSd8I+a[PZ^:Cr@'.7<:&C3jI;HADJHM&HNrgM+_kUg9ti[=6rK\ns]/<%sQ&V(H5i[a)%$h`b/ip:AUdtXP\"t(Hj%/\\2Rm9K0)Bae6&>/+mL<5]Nr&k.Q#TuLN->Y\nmh=*c^0o7=@VP0!<iDbnsP$/Qap\"r*DTmd=%]`$p2b5(3pQ85jp]#R%j#C-mSalnm?&<=,^B&\nUKf]0YDpdV+.ljnIdsl:\"Y7W_r*DUW\\0>\"JYsaMgesBWd'-BJ93,\\S/KID\"CMtV21Yba(AZ8\"\n[abcHl]>W[D@2La,;n_<dKhRQRd=X+Om`P.2gd^*E-Yl;sDUfX?q1gC_43_(5Q??0K*$kNKcR\nQa6OD;2n0fTS/cC5`29`^kj6fo<8U[=\\u1&iDP@W_2X80+&')p?a%c>9kMOfsAYb1#gmFrJ->\nV_DGaZgB2FaUFhTh;0Q<QI^OtU!ec2YVU'SU`c8F;4sZ-(f8Ma#WAEgKMmU;0%A(R/:OTpTWt\nX%6U9%&TfcrCk&BgAr7>o*K.H71j`&#_q(In*?52?WQ1tr+P74chmZ1oU]<o3n1M1_,T6pVM-\nk),^h0aqcTj@7AEUZ3:3@a:S4f@JOIe1#*j6IWl(\"0,P[\\lE9QWbQOi!\\nP\\(cG%r+\"g#X2<4\n%tfcGr\")C11KSILH6X$qn6J;A0k0h!+L.([Y<op*O)b/TCOfSYDrhL+q*pYR(mg2#SaD2i7E;\nUo5VPpe*p4*QR)lbnYq+urf6M\\@Iq(LIk0N/tP#ROs(VL?gE7=X&!_HZTig\"OI/S*E+f_-;1h\nNG\\?4_WE#gr?.>Z)G[h/fCco+:E-$*XGMdi=_[e-/p=`HIXe$#(/1q^K\\Z/ht]!udW84c\\Gij\n`u;`42b,U!8lgW^SJdVD39-c0?5J4`SV!`Ft.g3*WLee4U^tW#5]%NW8jV\\@G==]\\)E0bt\"pD\n+*ca2baC98'g6\\^SuO898Vu*/:[Hd]2K'?k3?f\\8,UA0`1W4qQ;'//pD1K-jNhXVA3LV\\'>%I\n:8JBg,cqAa'DFIOe(2TA:`Z*QC?/Eq6BQukdCji]CLgN2O?/M3RSa/(<[WNPYf?LB6l&psA1D\n;3dF`T1PaB9&EK:RjUV`2k@fMe3nNY,I7);C@orBNC&8RK3i5.F[JDMkW:=;.\"$2bo\"gW,gMt\nrkKg2Ic^YTlc-d@(SN]34\\bVZYlMdWVSpgLcWPo;ce0PpqMK@s\\9.mP`Mt+-G`\"d:2O=ZMTd?\nI%m>!rr'N5beFB;:eAiedq3j2afQY2?%$`D`\\!-+:0O;&#\"LT#Sc??@RCWCTl\"0[)^>3@e0-@\n(jb43Od2bJEW1>7MOsY84VQu9MVWsO/R:fM_\\/p^*N\"`77g+VPp0WsrS_Z98@MmPGX\"d4J>eR\nRAFgYmr&5>mYpi0/<05>8cF`mX9>^5N2q%8Al%4j%$86=TWZeZ@[P/P4kSjeS6b[1).Lfm)a7\nB4>BQH7G+3mi-ac#H.%-t3-cMWTd?Xr(7ZK;f_)GR\"p!MaN9L`TPrYEVQatGYfaLd%PnG2>o!\nS@Z$(,H$Nl>NqO?4@\\S[:lb@Q+TUAH%&3Wn/($uckc5)?keKV>3J>crW@u=,fU51<h@Z5l7EQ\n#dc1KX<\"/QEa1A1B&sH+EeF^]@5\"Kr;<-;cp!ThVu<)Z=8N078IghPkt6A0/&f^3BC>f>Kh7T\n>VT2TAE[jSpoD@fF:gqE0F+'h;`*S_9@q7W>s8@n(l:)p=YsO</g6diW(<bp=@dS!.4J-O\\Tb\n4q5]>APG35TuMkm.4kKi>i+'4L%^Z/\\2rHSA)B:k!70q.KY\\74rnaO&V_nQ1Vl9qlnH++S(XI\n/7Xk;=(4sEQ(JEEU)lkCY+I2gXQIngg#u.VfjQ4a:I>rb3t[k\\7SJ4X':aNqjp!bj/8a.4-h`\n\"NR:jB1u%tJ`S`>1TsM]Oj<U0<&\\qpn5(0l(.,p,H8E687K;@t,J%!\\>L$C3u:6%B\"\\94kC_]\n:hg[p-:sp$5%i[TL7Kh.fMPn>)rT>J54HS0d2WQ8Ecdoes$d1u%sqNSCU&1N^',!aKb3&HStb\nSYse7'1H.\\Eat?E5']uHF:fUuVT_pVf;qiI'A'B%X&lA#gM(BertH7s&eec@0'tT/ecU[KULB\n*n]-#R4!)$kdCqFek(0Q%f?nH3,,fdhLMR[+0UbOfWpn[_<-;PD^Z0K$KbEf+[ETpADnTi4hZ\n$<No`RIl5ijaHT`]hu>>GlU%7^L&E<t&Jn%%ZdQ%UJEj&[=_(F0Y*e7FQJ@i/1CQ`2kCtj+bl\nb5(%POTXf-/+3H-:+K!HJ1M5'cZ',DdSiP`Jn\\+:*ls)@3G*LBjn\\Z*RMBYE#]>m-m7M,[&Kl\n)l\">$2R<Y'=UCTKOg'R-n.<agAHSVCilQHc>J7X+p)61[*'@5,#\\R;!5[%g#@c;G.'encH\\u$\nSS2Sk!+6E*GtcTm9,)_q791rXQf-JA)eb1BMdI<@hXqY=cH](0[>6=7=9NtGT.P;O\"]mP.(rM\nQW8<5NpD1,BA9,K]O2!rhff?<e(^jPK/IC=hXiek1.`fQ6:R]UriG=@83c47Dk?kmK;IC>%^i\nek1.`fLGSAh0LC?*SIALa>)>9VMR3a+d6-Ca=nJU?UpTeiQi@$u.J5[dpuX'r_l&'<4J$PHij\ns7E[;\\`\"ajF?#%CINR;S($TjcO#4G0VBY*kFM58b1=,Z8d5kM>90h%#h`p\"rC;<7o?MAAd.dM\nV0rUY3d+8N+kBd9]nJ)*5Acm*>\\d%9jiO[&GHs</\\8\\eImTnG(5`re6paj0C7>)$r*;Vnh>n)\n0EGBPT<5jr&Qc>X*g4McNUaWLnZi)A\\85o=[W\"YdOncg?(P&GnX6Ht(DR/2Xp._K$]cS(bh_R\naV8YbraOeFSq#h:+a<3adAf`@h'/(uMIcDD[)9\\ZRZ['D2[-^(Vu(BL7`I?rqR6PON/RjKCp[\n&Gc`o1a^:+pef-d/\\o2T4<b=&OjGbhAJ@F\\qfPL6c)C`dV-[rN)ltp)*3tsTiqRQ(7Q:B[,Ve\n<?<r[.M[i;I[pX#oPgMOp8=`;'%+QPPJ_8qKU9/Y\"i/0-YOLJV60poD$.q4>\\UeiWE(kj!-c]\n/].>g]MWE].e)_6iI0aO$?.&TeUMJ*\\k;[eg\\+>g]qc8K+^CN$_kLThZkqKLn\"Nc<,Plm%g+%\n\\>!aPN&4`--tDnM74aQh*i_X/4gFpJ*+t0RY3<atV=DjX6.-'d2+H&1`[JGC6YE,pg8dYa&Kj\nCkIn\\8[U*q79C%<'r/%R=Ger1A)ar!!;UeW33VS-/D&e,BYQ9V81##Y#JFkgk0OO@g.0h/toY\ns`%tQp_$EMM7*?3cBj!Y\"3k5?thI`.&52A>8TC76c12dJFKi50h&#.`k`B]O9r/BgQ\\Il#$$T\n2M'NG%=p,*E$Qi;hTd\\oXUo3jleiV#E)0L-l/<N=VkTW8O=EXK,i$F8j+pg=3B%,-F9^D#%%%\nTu^_^$-C1or`dG0`mKDI)eXcp:P99\\0ndjn'gX7LuBhE^f7]@TKEC!CFT%dq:Uti]'siOq?*E\n1`A<?NnbAS6t1J@('0$(W_7A;/rI._#s6tGp\"\"Q3:4u]B)*/E]KPD)A-nKX;&Q-I]8V@CH1[9\n+I0t_7`3g!MokTW8F=RVWOgQj8IMT\"_#Q,_*Jkt#R/:gFZ+,h<BfBRh//hD%HCm`*'X8TaNb1\neLjA&#mGf9]s\\@FtA\":MBZt:Glg?G@c(!6!q_;fVU(&BY\"5:NDO\\X\"N%o%seA=Q@cCG?LG:lG\nA+&AFum$m]`&R>P'N5_[?Y$IcX.hWNEH*+QjAdmoPj3lK,.k6\\h$C5Ma3cF-2\\I#*P=<b\"ag8\ndXhd/Y1hD#2@MQ>Rp3)tJ'%.h\\W+\\Rt1f`7XBQ`nAJopD/$iC/R\\tj*0ru\\8L-HV<_c>\\'/,_\nYaD+?Z\"'.h\"+5mCQK00G!Q(mA82Sd=NH^*elI?_-2pZ2S>]Jgq>'YB[?=*!\\c#^1rVPU/M?a=\n-]@E)jC6t42UaT\\=X.ihPV'QHQN_/q2e%iM/\"'fBiB77C[7ro0J1kAT'24$-[3ie3dS4oNdD^\n))7f`86/%VLS7d,kt1f![t-l9G(.?'oBoY+cUCn)YqtshsYrWYrQmj]j=RH@U\\5Y]mCR_fJ.l\nnL0:QX9rXL9I+O`/;l2Z9F4it1^\\STV;U@jO4-hn(a:^pHOk;0g%]9.`Dt0Hc:&=Ieao?F@\\o\nm[qN?%lmY(`=1?<N\\$;A,=g^NfM@\"e.HsnQ1VV(;(nuEGF3Pe%bMg&o*e%K<)8soU4Mp\\0A1`\n[T9<5Zt,^hQZN0(R\\(A7r?6=#mutc+\\Mrs+WJsE/AsSc2();,hlrg]<leJ##l\"OiFk0JNkg9g\n$U//^<\\r@HF4oFhj8W#!4_=C_2d.#.#EGD6U]ZZ:rfW^'g\\9a?h\")coR94EDkHo]`I>k#ID#.\no2eoFR)t1>MG1\\b*:oF\\@m7fXuIX`FhDh8fs?I[T0HfAWi;kFkpIb+:b@8<Z,ZF(-&Q-@+tFF\nc'p;`?=*uDrl=*]@b,2$Np%92FFit[AZHo,ug!mCs^k(S+@W.#PVPK/X\\8]B\\7AF>@-I(@/a7\nQS4KS18D7;s9u=H^Qr(0m!S3bupu%j+QIX%Sd>E[7cu3i0DK[AG:QW[_T[re//*-+UPo[qqJE\nHM-pkjDeMpfO`6<<[:AM4DPdLF,1ih/qU^>^bJ8G&Q^6$c`2DO91n1o/!FKR*([008G%B^7Bs\n?^DVr1I]65dYZtX\\qk1$3&EI7Cijqb&555I;>^)d6J7AQ'u.nl\\R/Qgqu,,0lD&dK\\\"DsYKWY\nlt;($4BjkMnLD_ERGI-$bcH2`U;Tb9#WZ'Ah7:Q.62[jV+\\kp:=Ws9*cgi)-Y70[52[Su`#FR\n+6a[3&^]MOj&Ofre3$r?$eQ/3B>NbD+0g@U@iSM8+AE4!d+#e&*/O_B=@rcV\\\\CB#\"NK*%R#P\n4OVnU`tGdb(Z\\,)sOHBs/<\"7;srX:7k[`Las*nV)Wn_O!d,<GfcnSSEUtNb`^hmA]rk'S*$eV\n2_ut\">'g%``5Jne$\"Ke^An3QbSMHtX'g%2VOk;)LeKU2jE%7_[T@o4!9B<!GIKFLX@YO/O3T\\\nQ56,2e#ZgFTej5NO$1L.>&MH%O<bc)HtP>bB!bO>(L7jfUBMbP$MB&62:MIKt-Uhh:l%$P@D/\n>c17&Od_X3c8D\\pdO`@n>E^A7o)mP3$ib/jN5_\"=R]3tin1'&Z-j7p@n4\\c=YsUAU(Lnt^\"BA\n6Ft8PGW/3CL,o:MCVCou!M'B)n*0q(3/D)X,[OPEl`g4.KdjE;]S@WD4XOmugne[=ro\"t-E:A\nDY]=i3S36mgF%(84n7#@cOE7;fEhMSrrf.Z.MQ/U!qS3[o:cMBZUVZ#%cUE\"qFT;a_=>7H1NS\n,Dl]9,%W\"(>*q^16SRtr,,0lD&r.c(;2g)WEZKm:+]OBX&58NV,Dq5eUAT<h^M96U%`DB;MkW\n$_l%+CS0q,8dKUS8IW^X-TAk\\h\"U)4&8AAoaLE]QTCQr;<G=(FWl9F95nfGcWDcg8Zf'oDMpW\n[Q$2+!uKA<&LXlVW]48,DfUN7Be:S/BL0lECJm\"KHZ4RW\"pg$8Mn=1)Ji!pO\"%A&&Q^7'9A#t\nP6!\"I;NKfDJ_GDh9rJ:;)7;fEhMSsds6klciMI!'@#rRQ%mF<Dl#dtl@`tT+S>`h!!&W3;7>V\nU3NaFp\"8PkJjS8Mo(OkY@`^79ks709M0em9Hn@]4\\kIm]9js39,^b:)j&[1J^h*P2O5')XKb3\nVpC0n.?U6>q)QJ1M*]NX'K]RIoW-?4B(D*^X4GMIZ=V>XoeR+1*dMP>pM[e<oOm'.KX-^C'/$\nhGeVW;XR3daQL0(hqK;+\\\\G-&rnA$n9LEGS\\,[#Bsc.4O<;il8pWO1Dea>CH12nTq_U6NVpU&\nM-WjQfP@ia7S;I`/*V*MRFQnDk$Z0`LPn,EMF='*a)UTiTACn:I\"gQ]>&(Ydb)Y\\O[dbZkTX,\nqBH:#>'WhpOOm!kB7FAiP-m/6PMR9EcccFnTqb`E(lZRM_(MUf,>ok???q$f49T^WY((%-7oS\njHWBPUZXmAi?\\,C(tBMdSQ>F\\Ipe/Ck-189BeVU?Ee&I-<4ob!n_*#Z`0\"dq;(r;N\\+1^UVH?\nnYU(+Z$VEC7@1Sp#@4-fZI)[G=p,3FQ0C*!BXP'ROm!EF75=N8<G:-hc-aQH48gbUK\\Dt_(Vp\n_PAbq?6=tmH1M*+7cU4'(2SR(cZ^U0D*].$FJ_.8L3P/@o$b6D#n&LKQ5BLc.J)Em0TneB!\"+\nNd/tKPD)m`o(?am)H;NE((C2U*bb@F@?:)`L``=FEH6;7<B-9O28jN&OhT_=!WnrrlL\"W.,p,\nXrl*0*)!@a/>%A6T;9%O(MC_W3IW.^gG5S1GF@6^B%0%u+-I`M4P@uWN,H&lCA?eSamuI</_A\n,Y@M6\\OQ\\>\"tc6<h;A42Za*&`Jl\\6kprEc\\S<T_E)QIC8*A=Z1ll4fVhu\\S1AbJfkBPF/OK(`\nEr(_Cg+0ZW#q;a-U)h;$eoesW:c@#]kTWCs,F@I6MREnq8:lnZU51<<$eJg''dh=935uq:A;R\n$TK.E*-e$1&d3a;5F&Qao(9W7=iW^STW@u`\"D)oo\\/'hL*9jsif)d4-iD[W&/\\_'k7&VMHYS3\nmnb>\"%X(Zh+!33@g,`J(!VE;d<_Ki\"J[YYqTKR@]8%,Z,]G:YMQuoZ6JH'gNh]ja1R*lb$+^E\n=A&.`)Rk,$TY\"/W43hg<\"C=0;hfE'T4/.a/UTI0q;T+OM)\"BQj3`G2-'.p<W6eE2I\"&Tkp@,r\npdU@tH4oDIYt0[#lkNN?3+eH&<QUHo%IVHJ5DgF:f]bmph62U6C0ZP-2'e.,)`W>uW<I\"D))M\ndU\"L\\M2\"RJop?pr'V-%FOZX?$MB]3:=\"##_UPi*0&0AD(;e.hI,D.M0cEXZ'`nKT*1p5Io>_b\n$b>]PDbd;Sl?-os6VG>nL4ieh9,j[IQdeKV0K$V[Ml%b2bVM13odQ7+dU]Xig@Z&'mgM@P:G2\n7a'*U#5L1Rk0R1Y\"7n'MR]CETkoZI9VN[5oNRK2.(US3U<@$k;8a4*!bGkDTj!*\\d-6oAU?Ic\nuMJeHf6kNLB*F+@+0iX&B'KR756knGj>g]saSLAZkU;a<&j,3]NKK?V>/OJpiED2K@MJe>o74\nAXC)ba<L'$]'+'P$U8c*;N$LasAO'5DV$+sGt11V7X3(fi3!0K'ZbcIF,A#aC<3Kh4,n8Arti\n7+%RA(#9X0M^#;0h*]lJ.9)5P4V:J^=eb-6i/4[ph*hoWKO3Rtbe:AbMs)@,&Fko'DR-c4\\>$\n#JJ\"pj4MUm!jXO0CQ02LO7[/%4Y6JYs\"15U_q,!2ZX.(VONU3klQ'l>O[eosPT74[B?#rRo[p\nl<FU.3aWP=*.$(+c<Q!Y<lH:D%<^^Bj=[sEleJ!OW@@g'T%eHh3WTqE(+E[0qr@[C(XOS%5'%\nJW>7c3mdunnMPP;qa6i4Q9GDJ8cl#>\\LZ+DSgBi*#b\\eEk:iJi.a*FD8.tUVXEC.nr(KV:<oG\nLLO?%XXg2'!WVUg0<?GdnsM#mX2'R7+ZOE0oXi7$2R1>g\\[R^a_cX&^89-AL!OHgdkPf'Y2=P\nH4$h=]Js\"-4'^1%=.sV&-Y(o:O_W9dKQTs#;'Z/d>u>p%ZjY=lLZf@`Mdl&O[5lg>(3)cE@)M\n:akb<t@l^/lj8-4P]Mb]/i7F<4#NhLG]G@@NY23V]T&CrR)7$7*[>gY9GM(%A@?puV2Tr)\"8\"\nX+pcA;MK:1:X&7iZ:t8'uA=#\\85^3U;I:WqTNgs&q\"Xe#K0W:Lb\"'oYZTT\"\\j[t[iq+*c,U!=\nm[!URTMO&D(XO0CQ02J:HJSq^9FVlIQN[9qS1J8ERW503c*>aTBm/=!3<a2%\\W<g1IJI+3#>T\n?9_96.Pa6Ga#2B]$<u'`G:E[>6>\"BUCWMVHS'[Tc@!!'M3P3Iph=Z)dLd6EO.(QMVonW?8ciG\n`ArTl9G(,IOb?fFfIecm79gEE92s&'0\"ErsTT:NGMBp'sMY7COLb\")K1&*d<P@u<Th\"7!\\MF<\nfhMDbg9Lb\"(h0Pj)3q3&qaTDO*8A*oh2[\"%iUmD]U;[8jhegLp(1*!-f/oU4Mp,j`T:0[^In_\nKeS^\"B\"NA\"g:8QMI8ET:8m98Ir!o)+4b[$r(oJ#d^sRuaNYH([YSM<`9c/dgGU_)BPE'c4sPq\n1a?68P*HLBDHU`Il]tS`Ur)O_loFTJWL]e!Xpe\\%m/`MX!4nL-A'D>2TZiA.bLP8DrNMromV5\n7Yi?Empk85C&nkDO??6tW=j2o\"mNrMtW)\"L05--&SL6\\oklm>51o$2pP`7SK^:+D2uSf.,p*a\nh%O\\Z\\>Ee=?(Imma`IBiVnQKeer#(b7<,TbYsW&5M>2<M@tkgT6@S9t?*kA5*)koF$OL&Q#1g\nY/K.C+fLa&u-co[q+LIoRV<-%b\\kKa[OI/20rBD\\8],oR]?OX$U5>ZH^Jf;iY+aV$Ii*][-\">\nNbtG';*sm4Ldlm`tT+S[mbKm`\"d,*6kNK'#`TrRe8%^4SN]4+TDiR&qsTTZI(B9F1SUj?eCCN\niFFLsV\\lIhPLulf[]/XYr)Fe)DTUGbZJp[-59G(-DG(M_V(qCFAMRJH@I6eQe7=[)V@7#BcgR\nu`V#JU6;k]bp4n^=6tXf^U$M0;rO.MB@;X%P'C(RH]eEH,IQ<70F\"RJeXehP\\\\UU14hX_*Wd+\n.p=k1;@ub7i/6*r$B6QfV<Lr;rh%rXDs\\4)0#_)+dc^2_R.KK(B?mH.Mfj.s<E5WR'!ZAIfXX\npsgaFp67;Aik6uUp%pSU7Obl0K0Rt/t#Q71HGd?u-;MG=VT(c_N&3S(/F:ThlKXYEqMYJ9eEn\nr!1[$$#C'\\9LkU\\00MZ6q`H9\\[c'7_kVtt%k')l.4S6mF#IqPX&k4d1bip?QonONaBGpBh;.]\ncI:bEu?\"+U%`\"hYP6nt'2B+1=gHH>L9#.)(1!;+RKmqQEFl6a^=e&i;->GWa*'.78Cg:i(&et\ngmJ(Fgs4Pa&*c0)ee-dM3QL&2RsF/mZ=/c(jGJ3JaCe@r![_2Y,P^1ZOAD$)2)p=(D:?G2['u\ndg?H3:;u86`Q==<\\QO@Mo#ia8:Hj3ogA!I:T(fj+?CofX9rqKmB$cGOH03HAHf`CIZ_-'UoR'\n>p-&SQI]RtnRf>=\\Vk^R2Ld5jQ-ECBlfq!'BeackSe1:8:gfJ/ZF>&ibfkO@HERPqCIVI)cGV\nmuN6?83`p,U<dl:4Dcrc$H^gh3IV[9Tbeq<mX0;=,\"KcTjJD^0@9$M_%j)6NX\\\"sJkS*XlN^J\no#_ScK<85)j86n?&:fLMs]?_3,ikPRjAYhnS@VMei-r=!=2fBJbg!UTujlL2p][?ZQkJ&hM_-\nKVC`tT+S[*\\\"DZ/#pP(3&*A+,;A8*`a`LM?$N3b:e;:oj2?b77ErHV#=MsLsd@+#DIl3<8>2n\n^$K[f.Zp;di.jPX/?VS:0RZD)d6])UYT$#Yke\\[LBQas+0]KhSD2#AX\\0BR`2rE-9Y#Qh^GO8\n:0T(DO&St,_+omq3Uq>F2*Za.NtV'7/En[I@i2Z%c*8Is9_6r?H%FP+FHn.`.`%g+4h#IktPB\n[9eV>/V/l?@;a_YH#aW@YL7+Y@\"IkDf=O9+t[f`-6Y6ej[sZr,r%,$,NHn<qug(XK.bVcQ7,4\nsKs%E_6Vt^VVTcaPR?XiuNQ$!TEa]MJ>S/+TI.is]5MmD!X1%\"Y1L.Ush0RAg;>[iOe\"n@J\\2\n]Ok`QH>f0>IFufamC4\\h(s32\\'\".\\KCN/AIa[snZ5h\\'Q\"[l&KkmRrn+]\"UNaQX0mBck85R__\n,;!p*@NcbtW$q)rc!%*2Aj<0ik]0?/;%,o%+/m9K^Y2T>Om/lX\\ful-+a+6rLa^t5\\0=0`r9e\ndCVC&FI9tPF7]5^3MGuM=u9tP^OI=(^kcg7QN-!cN[\\o!:5Y6PHIEPe=F8(1`,MENFujDPgO'\nbNl]#$1p-8+GLl7;(Lg$)]6]hKeNl[nBt'[jcB:IlMF:7+%%b];\"OkTlEL$d\")G\"cV>*AA$rO\nFmYQq0>uCVNEtFsA>S0i??2SJZ9Wo4O70&..#H,oA'h&eCYZiqYIW]Vd23oXjLcp,XECE:CVQ\nmuTqW,3r_uE46!7%Ijo[t\"SW9:u`@m6M[.M]j(LM4K$'N[[:D&Ul/0l-ECgWdC`!W[i3l`Ya*\n]VE19VRf$7p8mu87m?UZpQsrCF,?VkWksj:KI]N=arHdqeMjXe.,$DQ]-7>j!!pf`s1@a;%lK\nac51%TFna>23(7lm\"M-71'eudep(@Ck<lBn:\\G2q4Q$bKm2M_/O9R<sWh[igS%%'Bj9(?\\c6d\nLI?71=apL]Ni-FEU-Z5p,kNF9V3q,N\"?k&MUmoBUF_94dDBe+iPcRJ<JWeh.jBlE%'Bj9<p\"=\nMoDRlCnL%)M*'YKcm$O]J7[01;pMR0?X'VS]Dk<=Q8S!<Xr;*!2)R2]Xl3@]V^cno7i&X7N^_\nIGMHcCOMg;LBZ\\0:nUi1l@u/mj)*eueD55QAgpiuUo.'bqoG:Mef71,;h:.!9OM.+'e@XIJhj\n<M;TYq\\$94Vp'_.'bNmh`nY;@<s4&FptO\\R5PnU3gM]=VZ_+pQl-c=S:5IV-jbis/WA/KiN`a\n##]jPjJ>VUQ3G]CT1it?tr(\"'l`=RopZ4f6GSd55PpdVV\\P/&qci`\"`<gja?\\tmA3I(hg\"1\\f\n3\\>\\>?ad\"POS=(\"U/Ae0!T].d`#e@<4b,,RaT0sF!$maoO2#n$U_g((L(]\\+a+6/EtCdp#$1p\n-$h>D>iVU_mi\\\"U3>eV2!rk.FdBhr66kK&dQ!s`:mM`l?2@`Jt`@=u/Pi]jq4EMC&0Our%c(E\nG%`!XfuK[)>!n,JY$+7GA#J\"98hho4cIoikbk=rk)o[';nTN)B/J%f0<;?qfkOuhnh_+mbM@$\n-BXiNdaH'c\"fbar0uJ).3NBs;0[CK)0P(_&Y,G^gV\\)eE'`l,3867p&>dUr>['YYLa$'+grGU\nM\\EpM;`R[Qa(M`lF\\Lb2iLlIG:)3,=gmmbF0[)rmKa(8_Z!M_.\\n1'\\\"be1(Ap&Q+L!be4@C.\nfquFr:61hX^Y4m3,q8A2N\"8\"7;ZnVX&m>K]fNF0H=2LYk2[plN/a+eQ]U^XX]mHJrSTR].Ml<\nZ?QjS#Y)\"L[3@7db\\0:opbId4XV5<J:Za<+p;iA/dX()V]mT3?9^V%3T@A1ce<S(GUY8/Q9_X\n!3'c_#XaHGp\\-r7:3>[lHphU<V74l40tQ.,$\\k+ok`)YJ0S8[!9d;`PI2d^]F,JQAQ%FJZ$09\n;c;W.[nlAGWO=?iAubV(,ps59EMMNCs6otEql+Fm!LKJ82.[7+Y)\"L[3G,k^\\d[3hFTDKYn]j\n5MSirgH8>WguPa%!P;Y<>)^+'l,DH1Un=g:<(imOZarqON.Aj<JYq=IVCp$:<Z/%g16CiS^(3\nAC2,**5NBD&T`c0l-ECgW^1>s0!4=/BSoMB[R*oD,V1DPfC?u(&<FYa\":N6\\ohK4.^^rX+[Mp\n#%=$nBr\\=e>Dnbain:;qX:]I4J1jJ+0o7pgD,Ss[`&:916[mV?rnkYM\"(\"8Gi[5#i>)*e9h!'\n^G<='=e4aA@X)2f;S`U@^ohM=T\\s*;,?,PS>F$M2@g]MM*Xspl3tQCGYt1s3M5r&iDP@Z;MFG\n\\[g^jl/@kaNa7ER\"LqnDU.D7s\"]pZ^<G5VL!!;cVVnSWZ[B_Q+>+01<V)2dsWt1LK<L+I<VdA\n)?Rd0_-%r9F=;Od3c^\\N?NU\\L^`R\"bf@?(Ipo&qu&!7(T<hI4DBRW*YT8F#`*8iJJhUU?V3Oc\n&$nWLarNl0RWGJn(KY$Yg=o^d,--%?EEk]'GYni8P2kXnk5V.cY,*uqP`i)Pp^M*Ge1;j?Xoi\njHrsC,]65VB:L3RV[g-2LarDk?@T]B\"nPbLkcmtP+;o[1o+ohbl+91Q:F@j)n?'F,ijbip.mT\nlI<%qSE5p,CmTI[9X\"gI)#\"+.b]@Y2Ad0ilD^/<i4/oqQH2LUl/3.\\q)Ad-&NZ(%$s6r9b4B4\n!8nJRqPa,I`P/OjroB%XO0uEBr4V+hrF4Zup:\"kA=s]>TN,neV6mL&8ks*UJ9K+\\ak93\\BPr`\n4U>r4^S+om-4plGIE^%GF]V+VktoB/7g/Y7\\$c]KH#.OnnbMU^C\"[Vf)HLFQ5ongi^ja2OV2E\n@@PFY[T=l;+)5&&6oeI^^^5,=6`6/kK^'6[Yj3Z:Ldo7P:).8f0?ruJ\"M/d`:iS5+&U9,EIG@\n,oUNuCla_D2X$\\q!.n1Y=kb@=X'`e<i^kX\"H7urOn(302X'LgEr+C4Nb='ccnf(NQA7Gi[u[D\n$\\[HF8oLnR=4sY%PS&5$+r=RJkW1!EY4R'[]?jj1bpAjg@+Y+ojlmH1*o`^]@;>0,beKb:fo?\nD:dA45B1.'IJm+ApW)@X\\%CYjjhg?V,UYg=On&)0YI!Cs-ZI$I7'Tfp6l/QkoW(Dc&HErrI/U\nIVXj)4^TXt#*?*+l^=&jMU*`V;;91h<lH\"mPsG-+;2(C:CrWiK46rV#J/^\\kdu:[Jj8`El!\\l\nW\"OkFk#=LY)\"^iM?!Wa*<5ep>(41hP#GPa^>6P2V5-MmBRBJkZ$GrS/W6SP-\"XlQIai')_`A0\n1Yuafpq>;nkm^65_OZpmIDHmbR!-IDE5Lq`0;HgSSYO]S_!gS32eG!e8W_15F.n!j@e4&6\"XZ\n,u*#ZhE[MOcq.9VO,+:9HQ-9!5ZVK-^p+!)_m:075W7hX#'$/lBdMNZIDDiqDb+$=lnl3iSL2\nUgB(FP1'*tf8l?uY`=?YgqAU)rD+,kBFErg=#=.uZUPJ9h9:AR!W\\V'B:nu,$Ih-N1G[IuH0n\ndHM5s[6Zo%H5D>F-%8Y1fsps22)[Fn@@3,liE7.K#>X$q-X'N_qs(#!V4A,m&=?m6\\Bm(7L>b\nK]]4>c:CFb&k:0]=9igeQ6NNs4h8\\1HH+Q0c3d[K.^=\\rj=`s<f71I,-D1O?okc8qp(d5DqVj\nE6bQt+l;_/tD(rJ/OJ7\"\"dhU(P)I8;6\\r<<l1e(^^!!$8ZlWl4J;>`>*C(XaYJ1KogMmsr2!4\nWM5PGTURa`M1%JLL@\\(G1r'Y,JZZied^9i&Y,U@PJj\"m.<jWAeL(U>/1mGe4!US!!$8ZMd93Z\nWl#FfDaUQ@d7\"GQU2IPu.fo^$lYrmT[[2k[LnYu5d5(6!KmmuXN`!BD.fo^$lYr[N7Oj:d5'9\n.dU<uCs'3qrDK.c/@!!(q<gujRkLuPle=,Whu@C5j5(o].IM?!Y73aCg)\\r!.'-ILC8.'=DL0\n&h`g!8oonjGMi#I+Ii24d0Oe,Xb]B?Pd]N!!$sYpR3fq\\754PEe=&hL,=`V(G4R&@HujoFW#N\n)i;ioYYQZY(Fc0+kkQbBM4$d5-N^suJ^\\i7rK?esk!!!##O4.C^=Aca23=KU7N@sLfYc>[hFH\nHS\\!!'MC8%W4e7.K#NW^V$W)Qjp/1#e&j!8pbFl\\\\OP76g\"1NEn7e?,RHY!5PEje.n`.MYB?!\nTh_?07GV6hBUGsT].W*#!!(qT1eg#r1b7&BcJG;jD4&it\\u<4k)Pi;$+ohVQ'Z[=X1e/8YTSq\nB?73cmd<s/L'Qf9Pt1fG+eTSmEX@r5!7kTL/p,-D1O!%u5VY%YNtG5@GXH>mlRr>.quMrCLJ[\nA^8]ied^9i)6*)MH1>.D^2A\"jY&o7O6Pq@]6*@r3pIol#QOiW`=]7d+]7mL,hb#V(kFF$M?!V\nV:2iYFM5$V]-dh.P&Zusr_2'TC!.[_Qf7;Q+'eLnmhhGJiU5K5d@YD=K.fo^$Ha2s!DX31S+*\n95pl1QU6Nk1#s!W[atZ)9*U>nm6j4,HEC_alK3@X,JO21!@2jf-i0@g2o5?mmpT7=0jM[h2Vu\nkb:AG(ksY@.KTU#X0J-Eg-ueTTSqBB`DDO+<s/L'=(<a^[$`?=M-psU/fNo1_<W;J#QOk-7an\n/]8I%'-\".^luhaUd$U5R%%@Z\\0W.fo^$X0L!.7JW&='1G.L@^KCFf;m8,kT[/8!!'1A-Ec!-.\nb[`6rBrQ#*lSM^H]*Aj:)MMjYI]N?!W[bOZ%FR\\?510)X]je>d/am:(qNdS`\"`:Q^suQD'qHJ\n)I[EN-fG+K*,H_:P!3X>qY36j&oFpa?)I52L't`!b>S-r9>`FGCn[j_*Nql9fEOCTT)XWDfFV\n.[X!!$)1<EHQnL7DR9(G5*56ZGNp!.YRIWJf;3dBTG0-fR]S]%Clt=/!N6RhJm?ECBj-E'\"h^\nFc4.+nQUFA7<GfhkZBE[(aH0h!!$oW9!7B*;=oJng;F`47h</D4OqQ''EJ16HGqYBkS@%fUW4\nVu>r:7M.2;j`!%d,emLmKWFfQ;*79gE)!5M\\n9hLjR2+01QTSp<(!!%QB0mdbt91@6h:6T@5d\n3!e?6K<q'!!!@)?.%2spoU.<U5X1h?5Te_[>6=7!!&DMMJa5!5>7ek70!;f.q=_m,)Y9o,T9_\ne!!'5SB\"0%Zp].m#U0Xp[\\0:nQJBgR='bSE&5SnE/!!!\"7&m\\R,'RN6_8[Ot0Z/$.e_\\E1P!-\nI4,UD4eN6kf`sCUNA0?2SSWc57SQk2;*s!!%nT]Xe8DllC1FO6B[tied^9!\".al&Q&t&Hb-0-\n,heg#LarN,!9fBXY)\"K\\L8O3;/\\4ap^N7A^&W'ujkTRF%Vt)2N!!'f2=%!`i7dipUgN6:G=/8\ndu!!$]Q0NUXV_ZX8pb7u8K79gE)!2(?,P=?q5:3Td($Ap6dM68@Nr,KgdUE?uQN@P&1!(;i%.\ni-l4778jmW\"pV6/n8R\"&HDg(*<TOY;:GVg;&<:B<u5jF!!%OmoQEYk;)\\oN7(Y`$ECBj-!'S`\n['bNkt0q_]lK.]@SMIG`nXp>\"-d#NRXpt`o%^<#RC\\qhj<!!&CE:9MZm*2>2q'('L@oXj+,=/\n!O[79gE)!2(>q>S0gi&7__/#OA+6D,,c7,-D1O!79\"S'oBjD&OjT'(ILkTA*=JH&Q])8!;MQ[\n?JU2]7L<QOd8&4\\>S-r95Yo7>778kV(fi4L;AZrh`DCXg<s/L'pl;R`&Q+KFk[Lo(0miPSgWN\nOk;[i^,cq`f-La\\^E@?]nPpKnd)$si5I'nat(8jr^[J-XFX.=P1p&4NX0I'kAP>GZ#$/pe2MI\nhhh=[5k`@!!#9/KX*K@;)B/CmmL)+ied^9!\"TaM.jBk:^mI^#RR,-S<r\"ECH6&Z:\\0:nQJ8PM\nQMMS!,0VDTc0,=G;FRS+*G?kX<MS86uXp>\"-n,Pba,,/a&FOe?R;=+3BCO]X.'`e:7FJCcr6k\nlbZIZnIF%HrT7aQC(dM^o\"]79gE)!8mkZ\\g!k^;08fR].\"I:r$cH^Mh/#tj,*g:!($4u-b`g>\n]l/oIA_o_Z<t:jc3dge8.>X]]cpJV]0,5T,.;Z#B@98As+ohVY2rFBopct$WD\"Ol;0/dY[g\"@\nQ5?HeogVCicD.=(^<S108g%>\\g5*N2s(^p^h1.fo\\NKZCk+S+\"e%\\=+=5>qINV`W#f[5@86]-\nF0pF@\\T5I98joDL.rSnB%3J<oLBUt9k;d`qjs<aIt-jbMnQ`3&%[QI!W[boq=\">hX0)%O1jJ<\nO4`tni(sC(?SipQ]HBFdO(+p;b-A`OF&;(4G[6G4P5,jtK]F^0DFn(#G3PkYFp<lB7&HDeR%0\n#YOI':4!J+d^YoB-@M52Gu.ED]r@g;SXFZ\"8hq\\Pc.rkKXg+-]@/[(GEKN/mQcIIUqZ%YU7c6\nQAQ4P/2kqqTNn``?,RHY!5QkWl;q.^9E4bDTD%1AgXHTIqDU?kA&lO(K;,;8m+<K4X:`XBMhD\n3fJ%ca]<X^'&>$Ekj*uTALoP-+f;R+]s@\\X`/LZaQJUPIW2T$\"SO!!$scJ,,#kp\"/6,?6/ga?\nVYn8]a<lIp$H_;iaT0>\\(J>rjQ%^p9M?/,B<-ZCRlACD\\`5LC_4`eSeA[MB`D/XU?)km#fB.1\nQMj0)!!8qHQr(q0Dnm&`RkN^U3QS-7a[X(]=n/OUV3I&nL;Bk]&`6Oq@GG<R8`KDNVaqQRMU:\n>HQf'EWs+Lie>_+^T@.2<s&=mVl@@8r/p+ohVQQES$n?+]69D&&BiGqNFqS3QI&F2fHTn^t+\\\n2)Tg*b@:ke4aZmYX]rcu[3?h_9ql:G<;0X<F5oI_e7\\L86P*p7YLR)YHZB0t+'f<+'kcN`!!!\n#Vrqtq_<L#Ol>+@[P,,OhZ.F7PEIG<JICMb)8kg1QNV(m7@lI=hip$.]uFN$7]`/GS*q=A*6g\nn7iX\"$oVTHWe''b\"lPr?,RHY!!%W6^%\\l9#K6/m8f)&6Ss1=DlKe=Q]/K*.X_C:d5$:o%PFo%\nucl4m!<NH$V>bieA/LX0fo[@0:rV-pD!@Q8UP_p\"N6l+Cn&6s3%Xp>\"-DWg>hIHSn$NuSakNQ\nN(W)FRl%d'Q!]c%Af_HM5^ZJXp)o^HBR&*O'A5i&BLPC%el#..fWYeu)L6_\",'m.fo\\NKZ&6+\nBk:jBl=+V43.+hFiBDM5;dJ5Bi5%Sl'f!\\HT\"I1jICkq6Y?2q\\&j0`:M3fk3rr2Y1RJl%T!e7\nn_rH3eWWf-jSnY:Z0H(\"E9^\\-j_P?D*+6b!JO?Pd]N!!$soDniFAg8/-@='6upbLHh4(#m\"0:\nO0LKZrF0fcHU4@gTkX`85+uQFmI-+s8L:#s8H*+*uomoRr?fZosaL%rpMQ_BniI@K3)k.S@2j\nFI.lLXq2aBW;/@>J[]F+RHN3b1T0>K9[<44RC(XMM!!\"tLjd3^XHES#LWJ**]KqbA2V79Y+j.\n8F!@`ucNC1g:VWcZ3DF`gjerpP'UIVK.>hu'AFgptISnrmKhYBsG6OtTS[e>V83s80NoPLV`7\na,a;?jO&%l\\qP8]1fp2-9`@Rf&HDgdbaWNcCY,T<q+30&d^XM)>,s'dh7[%W`.e`gb7t['PUd\ne<MC[D;DnbbTnOEFlYC5m&59Jk5T)L-<]XC`Y3i)ar5lUc*rsHik<<!];@\"B.R:2JVupW4dHh\n0s7Bl6<A:!!!QCT7?8jE59)%R;//@Y?*Alft(0pdj?quQ7fFaW=m2FGY_48bc@quRJjc0!^<6\n\"lBLK.p&<RH&%HR%VPV8\\d,:%h=B[18DaR,h;O]K8hm..A(ImGB!!!\"mEqc_Tqf_G0=X#.\\h-\nlGo\\9bQg`9#1mN&!\"\\,pgNOi'@3QT<Tld2Z2Yi^7.'pB@\"$T>!IAb,JC@UU!JiGI4HdVMMbAm\n]Od#t]pA[Y0Q3N`>LkD%_J!0d!!\",MIf4%h98du\\R[0T7?*Zji@oAIf`7S0h=QmG<6[ScSm@X\nF3BD,h%#lNZu>\"q`gY'\"H;B?l;H-XtAmIHLJ'QYL<.-nSGcgp_,6CY#F?\"q)3&l-hd'(WP7CW\nG?Wm]h,Tg'na7.N@P&1!-IA`O*qftC=fYi>eR.XpTDj/LOsL?q9QJ>Ej[gse1$Xr-U`BrFN'q\nTY)If)jmVTo+1#mX>)9P/Xm-X2A#1UI.k40BJ'5FBFO@i]-cg%\"qW.&*WB)R[#64`(YSdE:YJ\n.G'DbZ3j7$XN;`Sn_+g=h*JO$6lKe)0%5qHYg-9dD)N\\pF%R\\)2'ZjA@J*MntIJ.2;j`!5QF`\nqlWt!UfOQiA#u\\.>;Ri\\4dD9ejlIQZrHn7:92%?+lH$em\"&%Nun'X/PHtq0+=@j<K70!;f!6J\nG`Bj8#n[l1S\"<0WZI'Gl[Uqpa@>2f;SrR8QpF/M0'`o03[jZ#1Fb`\"`:Q!!\"9OI,WO2n)hke$\nZgBS+6Maem+n]Xk%rbI/jZD5MkhUoDXN28rU(-4+35A3LarN,!!)f)F\\>A#'<>/jFmIP3S8I\"\n[j9P5t1GdQQ`Hth?A#cQWroIL)8)o.OTSp<(!!!\"LT2.Z@?+[!$h<U&[(&j3YroKR=A,f^Xl&\n+TadG:=,[P%E[63jhT#?M$.!!\"rsqmPtK3UOfqXgHTIQmcJ\\0,=]phWre$>IUuc5PIVDJ]u]a\n+KIq9&HDe2>fE6q^8k>cde,+l1d0aq*!W;*,-D1O!!$DLbgT!c&HDe2^]m=C1ZO2:\\0:nQ!.Y\nM4WER4T!<<*\"m\"$%c)!\"\\1>S-r9!5O!+d)BCm79gE)!!'eI6sUUUFiE]%6Z+PQ<=]96!!!\"r'\n4\"o1eJ0MJ!<<*\"X@3hG&Q])8!!'5FdF(Hg&HDe2^m7AW(NDkD!!!#2@_=>e\\i'dp\"98E%YV*r\n]@c1u5<s/L'!3e9alQWJ;!!!\",Dsk:mg)s\\>'`e:7!:7tDC/Gn?oK$4hz*lbEU1p.)a!!(p[N\n7#V[=.sV&zgL,sm#,i;W70!;f!'=V>0&h`g!!!#E6#U&qaVD/&%(X&6<W.\">!!!\",,BVJTSm7\nCU&HDe2^oln!Mmsr2!!%NOd7G-o70!;f!,&$]0(uY1#?M$.!!'5dHK\\hIeKV.%!!!#W\"<r;'1\np.)a!!(qZ,(<rWXp>\"-!8qB3Rmc:oz%OV<``\"`:Q!!&Nb\\@U>[<G5VL!!!#7BnWOF?)pD!&HD\ne2^k%08Mmsr2!!%OR#[J6d70!;f!#H6A/jA?Rfjfcl?Cn1r,ldoF!8pC7dD^lGO\\ubk!!'h1\"\nKdT2=7!F(N@P&1!!'N\\i,mA]2Q*<R`\"`:Q!!(e@E%d1<4GLij!<<*\"gd5s5N5cS5!!!\"(8e@2\n\">S-r9!5Q;?VMhr.!!!\"LWsP__\\0:nQ!.`hg=Vq$<U&AbJE('a,!!&A6ZS$E#Mmsr2!!%Orks\n6-aY'BsA!SbU(34moAn]*i\"*u\"\\T!!(69P:i_6c<>F\"jP#KR%;VR3`>h_o-^'\\4]Qmu</oOs`\np4km-b^NRm!!!\"T3qmadmDVl_=$K\\j/ZPg=7>3-B(45b2%3*6kARaUb0k#Z9^\"RhmKQd7$cg8\n[U!!!\"LW:H:ug6IYl^>@>ci&Pu)UM7jfV(V2g+gSCA6@tRZ6]<!6Sp<fdjEU.KnX9?gz&3W5P\n5Wa-?k5>%+kKXN!FXj8^5o_m/b0.c\\]jgqdZ#lt$N>9p?MrDQR/mQcIIU3!S!!%ff?[qITE?j\no:eL07$Dp2F(%;fnHF5hkOWtUb`,!TFNfqPLcZo#%4Z'[:8N#3^5T@V58A,lT0!/M9&r2%uki\n-G:o61;KGif,l$\\$^LW.ipjR`mBEn@cpLkET;8S3+7F:a#M)czDW%S!HrmIq>?a6lYP,MIV9d\n,=*r5>_':ucr:K<[X\\6+`a[r5?3kZ+ZO8rB!!>>1P8/mP>4qnW:5!!'fRhKr$[F@_ob.kY*?(\nGCYekJZW6dM;X!44_0DVVhCO0a._ipMR6]ZcLEm#8cRL(R$5)?+]+ahY!<8li7\"c!+7@mr2$9\n)U8::]U,9kGB>hoUT'#0*Y$W8pn`&c4Wdaq^EU-YfPG;B&_#c?$L1gM`R-WAib^O^8!!!!QQ=\n'PV4)dGA2MtG2<19<<a.D>3++<h4.9E]JW35Pq;W>gA'AKsP2/E++U-4DMoe.pmq=N-CS,M[R\n!!!\",/FU6HmFruu*>8&<U7jlcr3F[+c]KH#?[hh@UIQE,XR,!9(&b;&Q6oL-*a?7\"`&mFX2uC\nDl!!!#7E;ns+Hqd=A.>0Q9C8[g([]2s>F7<R2AS'*brLUkmOdiC0kH&!lm^=)pOT*sLL]@;8T\n:>f;z&.O*Z'5dViop1pBqaFYUMYs-[>^[a0F5O_*[5jYCdM4oHYEo-js7O@gs8H*+T,I\\0!!&\nb05QA'nY0JP?ER,\\gQ`'Oq(D_n&,#M10rc-OBFU:)V8%fa#.4M.\"1A8mE5;;ts!<<*\"+F<tTL\nYAb.l9sX/9kp/loY]Lse[O;AM%(ERoN@&\\@\\QOi:!KuI^])mPk61hc!.a;'fk8$#?e+l=pSOd\nd=nC@TCAG;3:6&Ge;I+!.8.b=]T!GZscT^Cc1B7CTJ/e=F'AnfjhH@0aKt(re=MDH(&sk-]77\nD2TDq9C6WR'pD\"98E%!7U`!msH]=g+0@?2fEG\"7G`Utn$Qr\"$u]h\\!!!\"LcM[La4rL]!!WW3#\nzzHK\"l/6TERR~>\ngrestore\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/Deathstar.html",
    "content": "<!DOCTYPE html>\n\n<!-- Use the following line to embed this file within another web page:\n\n<iframe src=\"/tmp/tmpfkkrpwhe/out.html\" width=\"217\" height=\"217\" frameborder=\"0\"></iframe>\n\n-->\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmpfkkrpwhe/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"user-scalable=no\"/>\n<style>\nbody {margin: 0;}\n</style>\n\n<script\nsrc=\"https://vectorgraphics.github.io/asymptote/base/webgl/asygl-1.01.js\">\n</script>\n\n<script>\n\ncanvasWidth=217;\ncanvasHeight=217;\n\nwebgl2=false;\nibl=false;\nabsolute=false;\n\nminBound=[-104.5448,-109.9639,-1251.333];\nmaxBound=[111.2635,105.8178,-872.9407];\northographic=false;\nangleOfView=0.2034059;\ninitialZoom=1;\nviewportMargin=[0.5,0.5];\n\nzoomFactor=1.05;\nzoomPinchFactor=10;\nzoomPinchCap=100;\nzoomStep=0.1;\nshiftHoldDistance=20;\nshiftWaitTime=200;\nvibrateTime=25;\n\nLights=[new Light(\n[-0.7844645,-0.5883484,-0.1961161],\n[0.38,0.38,0.45]),\nnew Light(\n[0.5907962,0.3249379,-0.7384952],\n[0.6,0.6,0.67]),\nnew Light(\n[-0.2425356,0,0.9701425],\n[0.5,0.5,0.57]),\n];\n\nBackground=[1,1,1,1];\n\nTransform=[-0.02590265,\n-0.009083466,\n0.01977147,\n0.06818596,\n0.02175822,\n-0.01081365,\n0.02353746,\n-0.0955113,\n1.877859e-18,\n0.0307396,\n0.01412248,\n0.06372515,\n1.084202e-19,\n-5.421011e-20,\n0,\n1];\n\nmaterial(\n[1,1,0.5,1],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\nsphere([22.37269,31.94055,-1021.601],2.36487,0,0);\n\nsphere([-15.65395,50.83946,-1062.737],2.36487,0,0);\n\nsphere([-33.26467,11.94538,-1021.841],2.36487,0,0);\n\nsphere([11.48866,-25.30015,-1011.58],2.36487,0,0);\n\nsphere([56.75847,-9.425061,-1046.134],2.36487,0,0);\n\nsphere([39.98341,37.6318,-1077.751],2.36487,0,0);\n\nsphere([-33.26467,-41.77793,-1046.522],2.36487,0,0);\n\nsphere([22.37269,-54.98559,-1061.536],2.36487,0,0);\n\nsphere([39.98341,-16.0915,-1102.433],2.36487,0,0);\n\nsphere([-4.769923,21.15402,-1112.694],2.36487,0,0);\n\nsphere([-50.03973,5.278934,-1078.139],2.36487,0,0);\n\nsphere([-15.65395,-36.08668,-1102.673],2.36487,0,0);\n\nmaterial(\n[1,1,0,1],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\nsphere([-27.16067,82.04741,-995.2767],2.36487,0,1);\n\nmaterial(\n[0,0,0,1],\n[1,0,0,1],\n[0,0,0,1],\n1,\n0,\n0.04);\n\ncylinder([-27.16067,82.04741,-995.2767],0.25,75.21433,0,2,\n[1.92835,-0.7911539],true);\n\nsphere([-27.16067,82.04741,-995.2767],0.25,0,2,\n[1.213242,2.350439]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[1.92835,-0.7911539]);\n\ncylinder([-27.16067,82.04741,-995.2767],0.25,75.21433,0,2,\n[2.683514,-1.217551],true);\n\nsphere([-27.16067,82.04741,-995.2767],0.25,0,2,\n[0.4580786,1.924042]);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[2.683514,-1.217551]);\n\ncylinder([-27.16067,82.04741,-995.2767],0.25,75.21433,0,2,\n[1.93176,-1.65765],true);\n\nsphere([-27.16067,82.04741,-995.2767],0.25,0,2,\n[1.209833,1.483942]);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[1.93176,-1.65765]);\n\nmaterial(\n[0.5,1,0.5,1],\n[0,0,0,1],\n[0.75,0.75,0.75,1],\n0.7,\n0,\n0.04);\n\npatch([\n[-27.16067,82.04741,-995.2767],\n[22.37269,31.94055,-1021.601],\n[-15.65395,50.83946,-1062.737]\n],0,3,\n[-27.16067,31.94055,-1062.737],\n[22.37269,82.04741,-995.2767]);\n\npatch([\n[-27.16067,82.04741,-995.2767],\n[22.37269,31.94055,-1021.601],\n[-33.26467,11.94538,-1021.841]\n],0,3,\n[-33.26467,11.94538,-1021.841],\n[22.37269,82.04741,-995.2767]);\n\npatch([\n[-27.16067,82.04741,-995.2767],\n[-15.65395,50.83946,-1062.737],\n[-33.26467,11.94538,-1021.841]\n],0,3,\n[-33.26467,11.94538,-1062.737],\n[-15.65395,82.04741,-995.2767]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[1.566736,0.3450101]);\n\ncylinder([22.37269,31.94055,-1021.601],0.25,59.12175,0,2,\n[2.340313,2.680355],true);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[2.340313,2.680355]);\n\ncylinder([-15.65395,50.83946,-1062.737],0.25,59.12175,0,2,\n[0.8069181,-1.995965],true);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[0.8069181,-1.995965]);\n\ncylinder([-33.26467,11.94538,-1021.841],0.25,59.12175,0,2,\n[1.566736,0.3450101],true);\n\nsphere([-4.541824,18.59774,-952.6457],2.36487,0,1);\n\ncylinder([-4.541824,18.59774,-952.6457],0.25,75.21433,0,2,\n[2.730734,0.4602399],true);\n\nsphere([-4.541824,18.59774,-952.6457],0.25,0,2,\n[0.4108583,-2.681353]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[2.730734,0.4602399]);\n\ncylinder([-4.541824,18.59774,-952.6457],0.25,75.21433,0,2,\n[2.738801,-2.914],true);\n\nsphere([-4.541824,18.59774,-952.6457],0.25,0,2,\n[0.4027921,0.2275926]);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[2.738801,-2.914]);\n\ncylinder([-4.541824,18.59774,-952.6457],0.25,75.21433,0,2,\n[2.471147,-1.220666],true);\n\nsphere([-4.541824,18.59774,-952.6457],0.25,0,2,\n[0.6704454,1.920927]);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[2.471147,-1.220666]);\n\npatch([\n[-4.541824,18.59774,-952.6457],\n[22.37269,31.94055,-1021.601],\n[-33.26467,11.94538,-1021.841]\n],0,3,\n[-33.26467,11.94538,-1021.841],\n[22.37269,31.94055,-952.6457]);\n\npatch([\n[-4.541824,18.59774,-952.6457],\n[22.37269,31.94055,-1021.601],\n[11.48866,-25.30015,-1011.58]\n],0,3,\n[-4.541824,-25.30015,-1021.601],\n[22.37269,31.94055,-952.6457]);\n\npatch([\n[-4.541824,18.59774,-952.6457],\n[-33.26467,11.94538,-1021.841],\n[11.48866,-25.30015,-1011.58]\n],0,3,\n[-33.26467,-25.30015,-1021.841],\n[11.48866,18.59774,-952.6457]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[1.741117,1.382895]);\n\ncylinder([22.37269,31.94055,-1021.601],0.25,59.12175,0,2,\n[1.574857,-2.796583],true);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[1.574857,-2.796583]);\n\ncylinder([-33.26467,11.94538,-1021.841],0.25,59.12175,0,2,\n[1.396354,-0.6940927],true);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[1.396354,-0.6940927]);\n\ncylinder([11.48866,-25.30015,-1011.58],0.25,59.12175,0,2,\n[1.741117,1.382895],true);\n\nsphere([70.47746,0.789045,-972.8901],2.36487,0,1);\n\ncylinder([70.47746,0.789045,-972.8901],0.25,75.21433,0,2,\n[2.275256,2.566923],true);\n\nsphere([70.47746,0.789045,-972.8901],0.25,0,2,\n[0.8663367,-0.5746694]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[2.275256,2.566923]);\n\ncylinder([70.47746,0.789045,-972.8901],0.25,75.21433,0,2,\n[2.111091,-2.725183],true);\n\nsphere([70.47746,0.789045,-972.8901],0.25,0,2,\n[1.030502,0.4164101]);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[2.111091,-2.725183]);\n\ncylinder([70.47746,0.789045,-972.8901],0.25,75.21433,0,2,\n[2.912185,-2.501606],true);\n\nsphere([70.47746,0.789045,-972.8901],0.25,0,2,\n[0.2294073,0.6399866]);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[2.912185,-2.501606]);\n\npatch([\n[70.47746,0.789045,-972.8901],\n[22.37269,31.94055,-1021.601],\n[11.48866,-25.30015,-1011.58]\n],0,3,\n[11.48866,-25.30015,-1021.601],\n[70.47746,31.94055,-972.8901]);\n\npatch([\n[70.47746,0.789045,-972.8901],\n[22.37269,31.94055,-1021.601],\n[56.75847,-9.425061,-1046.134]\n],0,3,\n[22.37269,-9.425061,-1046.134],\n[70.47746,31.94055,-972.8901]);\n\npatch([\n[70.47746,0.789045,-972.8901],\n[11.48866,-25.30015,-1011.58],\n[56.75847,-9.425061,-1046.134]\n],0,3,\n[11.48866,-25.30015,-1046.134],\n[70.47746,0.789045,-972.8901]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[1.142894,2.264313]);\n\ncylinder([22.37269,31.94055,-1021.601],0.25,59.12175,0,2,\n[1.400475,-1.758698],true);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[1.400475,-1.758698]);\n\ncylinder([11.48866,-25.30015,-1011.58],0.25,59.12175,0,2,\n[2.195013,0.3372779],true);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[2.195013,0.3372779]);\n\ncylinder([56.75847,-9.425061,-1046.134],0.25,59.12175,0,2,\n[1.142894,2.264313],true);\n\nsphere([94.22309,53.23234,-1028.033],2.36487,0,1);\n\ncylinder([94.22309,53.23234,-1028.033],0.25,75.21433,0,2,\n[1.485172,-2.853502],true);\n\nsphere([94.22309,53.23234,-1028.033],0.25,0,2,\n[1.656421,0.288091]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[1.485172,-2.853502]);\n\ncylinder([94.22309,53.23234,-1028.033],0.25,75.21433,0,2,\n[1.813842,-2.109691],true);\n\nsphere([94.22309,53.23234,-1028.033],0.25,0,2,\n[1.327751,1.031902]);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[1.813842,-2.109691]);\n\ncylinder([94.22309,53.23234,-1028.033],0.25,75.21433,0,2,\n[2.29297,-2.86153],true);\n\nsphere([94.22309,53.23234,-1028.033],0.25,0,2,\n[0.8486228,0.2800627]);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[2.29297,-2.86153]);\n\npatch([\n[94.22309,53.23234,-1028.033],\n[22.37269,31.94055,-1021.601],\n[56.75847,-9.425061,-1046.134]\n],0,3,\n[22.37269,-9.425061,-1046.134],\n[94.22309,53.23234,-1021.601]);\n\npatch([\n[94.22309,53.23234,-1028.033],\n[22.37269,31.94055,-1021.601],\n[39.98341,37.6318,-1077.751]\n],0,3,\n[22.37269,31.94055,-1077.751],\n[94.22309,53.23234,-1021.601]);\n\npatch([\n[94.22309,53.23234,-1028.033],\n[56.75847,-9.425061,-1046.134],\n[39.98341,37.6318,-1077.751]\n],0,3,\n[39.98341,-9.425061,-1077.751],\n[94.22309,53.23234,-1028.033]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[0.318393,-2.829017]);\n\ncylinder([22.37269,31.94055,-1021.601],0.25,59.12175,0,2,\n[1.998699,-0.87728],true);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[1.998699,-0.87728]);\n\ncylinder([56.75847,-9.425061,-1046.134],0.25,59.12175,0,2,\n[2.13504,1.913237],true);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[2.13504,1.913237]);\n\ncylinder([39.98341,37.6318,-1077.751],0.25,59.12175,0,2,\n[0.318393,-2.829017],true);\n\nsphere([33.87941,103.4528,-1041.869],2.36487,0,1);\n\ncylinder([33.87941,103.4528,-1041.869],0.25,75.21433,0,2,\n[1.297954,-1.730334],true);\n\nsphere([33.87941,103.4528,-1041.869],0.25,0,2,\n[1.843639,1.411258]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[1.297954,-1.730334]);\n\ncylinder([33.87941,103.4528,-1041.869],0.25,75.21433,0,2,\n[2.06811,-1.478324],true);\n\nsphere([33.87941,103.4528,-1041.869],0.25,0,2,\n[1.073482,1.663268]);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[2.06811,-1.478324]);\n\ncylinder([33.87941,103.4528,-1041.869],0.25,75.21433,0,2,\n[1.851935,-2.326051],true);\n\nsphere([33.87941,103.4528,-1041.869],0.25,0,2,\n[1.289658,0.8155413]);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[1.851935,-2.326051]);\n\npatch([\n[33.87941,103.4528,-1041.869],\n[22.37269,31.94055,-1021.601],\n[39.98341,37.6318,-1077.751]\n],0,3,\n[22.37269,31.94055,-1077.751],\n[39.98341,103.4528,-1021.601]);\n\npatch([\n[33.87941,103.4528,-1041.869],\n[22.37269,31.94055,-1021.601],\n[-15.65395,50.83946,-1062.737]\n],0,3,\n[-15.65395,31.94055,-1062.737],\n[33.87941,103.4528,-1021.601]);\n\npatch([\n[33.87941,103.4528,-1041.869],\n[39.98341,37.6318,-1077.751],\n[-15.65395,50.83946,-1062.737]\n],0,3,\n[-15.65395,37.6318,-1077.751],\n[39.98341,103.4528,-1041.869]);\n\nsphere([22.37269,31.94055,-1021.601],0.25,0,2,\n[0.80128,-0.4612378]);\n\ncylinder([22.37269,31.94055,-1021.601],0.25,59.12175,0,2,\n[2.8232,0.3125757],true);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[2.8232,0.3125757]);\n\ncylinder([39.98341,37.6318,-1077.751],0.25,59.12175,0,2,\n[1.314033,2.908519],true);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[1.314033,2.908519]);\n\ncylinder([-15.65395,50.83946,-1062.737],0.25,59.12175,0,2,\n[0.80128,-0.4612378],true);\n\nsphere([-27.16067,-107.5989,-1082.405],2.36487,0,1);\n\ncylinder([-27.16067,-107.5989,-1082.405],0.25,75.21433,0,2,\n[1.843639,1.411258],true);\n\nsphere([-27.16067,-107.5989,-1082.405],0.25,0,2,\n[1.297954,-1.730334]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[1.843639,1.411258]);\n\ncylinder([-27.16067,-107.5989,-1082.405],0.25,75.21433,0,2,\n[1.073482,1.663268],true);\n\nsphere([-27.16067,-107.5989,-1082.405],0.25,0,2,\n[2.06811,-1.478324]);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[1.073482,1.663268]);\n\ncylinder([-27.16067,-107.5989,-1082.405],0.25,75.21433,0,2,\n[1.289658,0.8155413],true);\n\nsphere([-27.16067,-107.5989,-1082.405],0.25,0,2,\n[1.851935,-2.326051]);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[1.289658,0.8155413]);\n\npatch([\n[-27.16067,-107.5989,-1082.405],\n[-15.65395,-36.08668,-1102.673],\n[-33.26467,-41.77793,-1046.522]\n],0,3,\n[-33.26467,-107.5989,-1102.673],\n[-15.65395,-36.08668,-1046.522]);\n\npatch([\n[-27.16067,-107.5989,-1082.405],\n[-15.65395,-36.08668,-1102.673],\n[22.37269,-54.98559,-1061.536]\n],0,3,\n[-27.16067,-107.5989,-1102.673],\n[22.37269,-36.08668,-1061.536]);\n\npatch([\n[-27.16067,-107.5989,-1082.405],\n[-33.26467,-41.77793,-1046.522],\n[22.37269,-54.98559,-1061.536]\n],0,3,\n[-33.26467,-107.5989,-1082.405],\n[22.37269,-41.77793,-1046.522]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[2.340313,2.680355]);\n\ncylinder([-15.65395,-36.08668,-1102.673],0.25,59.12175,0,2,\n[0.318393,-2.829017],true);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[0.318393,-2.829017]);\n\ncylinder([-33.26467,-41.77793,-1046.522],0.25,59.12175,0,2,\n[1.82756,-0.233074],true);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[1.82756,-0.233074]);\n\ncylinder([22.37269,-54.98559,-1061.536],0.25,59.12175,0,2,\n[2.340313,2.680355],true);\n\nsphere([33.87941,-86.19354,-1128.996],2.36487,0,1);\n\ncylinder([33.87941,-86.19354,-1128.996],0.25,75.21433,0,2,\n[1.213242,2.350439],true);\n\nsphere([33.87941,-86.19354,-1128.996],0.25,0,2,\n[1.92835,-0.7911539]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[1.213242,2.350439]);\n\ncylinder([33.87941,-86.19354,-1128.996],0.25,75.21433,0,2,\n[0.4580786,1.924042],true);\n\nsphere([33.87941,-86.19354,-1128.996],0.25,0,2,\n[2.683514,-1.217551]);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[0.4580786,1.924042]);\n\ncylinder([33.87941,-86.19354,-1128.996],0.25,75.21433,0,2,\n[1.209833,1.483942],true);\n\nsphere([33.87941,-86.19354,-1128.996],0.25,0,2,\n[1.93176,-1.65765]);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[1.209833,1.483942]);\n\npatch([\n[33.87941,-86.19354,-1128.996],\n[-15.65395,-36.08668,-1102.673],\n[22.37269,-54.98559,-1061.536]\n],0,3,\n[-15.65395,-86.19354,-1128.996],\n[33.87941,-36.08668,-1061.536]);\n\npatch([\n[33.87941,-86.19354,-1128.996],\n[-15.65395,-36.08668,-1102.673],\n[39.98341,-16.0915,-1102.433]\n],0,3,\n[-15.65395,-86.19354,-1128.996],\n[39.98341,-16.0915,-1102.433]);\n\npatch([\n[33.87941,-86.19354,-1128.996],\n[22.37269,-54.98559,-1061.536],\n[39.98341,-16.0915,-1102.433]\n],0,3,\n[22.37269,-86.19354,-1128.996],\n[39.98341,-16.0915,-1061.536]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[1.574857,-2.796583]);\n\ncylinder([-15.65395,-36.08668,-1102.673],0.25,59.12175,0,2,\n[0.80128,-0.4612378],true);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[0.80128,-0.4612378]);\n\ncylinder([22.37269,-54.98559,-1061.536],0.25,59.12175,0,2,\n[2.334675,1.145627],true);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[2.334675,1.145627]);\n\ncylinder([39.98341,-16.0915,-1102.433],0.25,59.12175,0,2,\n[1.574857,-2.796583],true);\n\nsphere([11.26056,-22.74387,-1171.627],2.36487,0,1);\n\ncylinder([11.26056,-22.74387,-1171.627],0.25,75.21433,0,2,\n[0.4108583,-2.681353],true);\n\nsphere([11.26056,-22.74387,-1171.627],0.25,0,2,\n[2.730734,0.4602399]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[0.4108583,-2.681353]);\n\ncylinder([11.26056,-22.74387,-1171.627],0.25,75.21433,0,2,\n[0.4027921,0.2275926],true);\n\nsphere([11.26056,-22.74387,-1171.627],0.25,0,2,\n[2.738801,-2.914]);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[0.4027921,0.2275926]);\n\ncylinder([11.26056,-22.74387,-1171.627],0.25,75.21433,0,2,\n[0.6704454,1.920927],true);\n\nsphere([11.26056,-22.74387,-1171.627],0.25,0,2,\n[2.471147,-1.220666]);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[0.6704454,1.920927]);\n\npatch([\n[11.26056,-22.74387,-1171.627],\n[-15.65395,-36.08668,-1102.673],\n[39.98341,-16.0915,-1102.433]\n],0,3,\n[-15.65395,-36.08668,-1171.627],\n[39.98341,-16.0915,-1102.433]);\n\npatch([\n[11.26056,-22.74387,-1171.627],\n[-15.65395,-36.08668,-1102.673],\n[-4.769923,21.15402,-1112.694]\n],0,3,\n[-15.65395,-36.08668,-1171.627],\n[11.26056,21.15402,-1102.673]);\n\npatch([\n[11.26056,-22.74387,-1171.627],\n[39.98341,-16.0915,-1102.433],\n[-4.769923,21.15402,-1112.694]\n],0,3,\n[-4.769923,-22.74387,-1171.627],\n[39.98341,21.15402,-1102.433]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[1.400475,-1.758698]);\n\ncylinder([-15.65395,-36.08668,-1102.673],0.25,59.12175,0,2,\n[1.566736,0.3450101],true);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[1.566736,0.3450101]);\n\ncylinder([39.98341,-16.0915,-1102.433],0.25,59.12175,0,2,\n[1.745239,2.4475],true);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.745239,2.4475]);\n\ncylinder([-4.769923,21.15402,-1112.694],0.25,59.12175,0,2,\n[1.400475,-1.758698],true);\n\nsphere([-63.75872,-4.935172,-1151.383],2.36487,0,1);\n\ncylinder([-63.75872,-4.935172,-1151.383],0.25,75.21433,0,2,\n[0.8663367,-0.5746694],true);\n\nsphere([-63.75872,-4.935172,-1151.383],0.25,0,2,\n[2.275256,2.566923]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[0.8663367,-0.5746694]);\n\ncylinder([-63.75872,-4.935172,-1151.383],0.25,75.21433,0,2,\n[1.030502,0.4164101],true);\n\nsphere([-63.75872,-4.935172,-1151.383],0.25,0,2,\n[2.111091,-2.725183]);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.030502,0.4164101]);\n\ncylinder([-63.75872,-4.935172,-1151.383],0.25,75.21433,0,2,\n[0.2294073,0.6399866],true);\n\nsphere([-63.75872,-4.935172,-1151.383],0.25,0,2,\n[2.912185,-2.501606]);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[0.2294073,0.6399866]);\n\npatch([\n[-63.75872,-4.935172,-1151.383],\n[-15.65395,-36.08668,-1102.673],\n[-4.769923,21.15402,-1112.694]\n],0,3,\n[-63.75872,-36.08668,-1151.383],\n[-4.769923,21.15402,-1102.673]);\n\npatch([\n[-63.75872,-4.935172,-1151.383],\n[-15.65395,-36.08668,-1102.673],\n[-50.03973,5.278934,-1078.139]\n],0,3,\n[-63.75872,-36.08668,-1151.383],\n[-15.65395,5.278934,-1078.139]);\n\npatch([\n[-63.75872,-4.935172,-1151.383],\n[-4.769923,21.15402,-1112.694],\n[-50.03973,5.278934,-1078.139]\n],0,3,\n[-63.75872,-4.935172,-1151.383],\n[-4.769923,21.15402,-1078.139]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[1.998699,-0.87728]);\n\ncylinder([-15.65395,-36.08668,-1102.673],0.25,59.12175,0,2,\n[1.741117,1.382895],true);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.741117,1.382895]);\n\ncylinder([-4.769923,21.15402,-1112.694],0.25,59.12175,0,2,\n[0.9465796,-2.804315],true);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[0.9465796,-2.804315]);\n\ncylinder([-50.03973,5.278934,-1078.139],0.25,59.12175,0,2,\n[1.998699,-0.87728],true);\n\nsphere([-87.50435,-57.37846,-1096.24],2.36487,0,1);\n\ncylinder([-87.50435,-57.37846,-1096.24],0.25,75.21433,0,2,\n[1.656421,0.288091],true);\n\nsphere([-87.50435,-57.37846,-1096.24],0.25,0,2,\n[1.485172,-2.853502]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[1.656421,0.288091]);\n\ncylinder([-87.50435,-57.37846,-1096.24],0.25,75.21433,0,2,\n[1.327751,1.031902],true);\n\nsphere([-87.50435,-57.37846,-1096.24],0.25,0,2,\n[1.813842,-2.109691]);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[1.327751,1.031902]);\n\ncylinder([-87.50435,-57.37846,-1096.24],0.25,75.21433,0,2,\n[0.8486228,0.2800627],true);\n\nsphere([-87.50435,-57.37846,-1096.24],0.25,0,2,\n[2.29297,-2.86153]);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[0.8486228,0.2800627]);\n\npatch([\n[-87.50435,-57.37846,-1096.24],\n[-15.65395,-36.08668,-1102.673],\n[-50.03973,5.278934,-1078.139]\n],0,3,\n[-87.50435,-57.37846,-1102.673],\n[-15.65395,5.278934,-1078.139]);\n\npatch([\n[-87.50435,-57.37846,-1096.24],\n[-15.65395,-36.08668,-1102.673],\n[-33.26467,-41.77793,-1046.522]\n],0,3,\n[-87.50435,-57.37846,-1102.673],\n[-15.65395,-36.08668,-1046.522]);\n\npatch([\n[-87.50435,-57.37846,-1096.24],\n[-50.03973,5.278934,-1078.139],\n[-33.26467,-41.77793,-1046.522]\n],0,3,\n[-87.50435,-57.37846,-1096.24],\n[-33.26467,5.278934,-1046.522]);\n\nsphere([-15.65395,-36.08668,-1102.673],0.25,0,2,\n[2.8232,0.3125757]);\n\ncylinder([-15.65395,-36.08668,-1102.673],0.25,59.12175,0,2,\n[1.142894,2.264313],true);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[1.142894,2.264313]);\n\ncylinder([-50.03973,5.278934,-1078.139],0.25,59.12175,0,2,\n[1.006553,-1.228356],true);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[1.006553,-1.228356]);\n\ncylinder([-33.26467,-41.77793,-1046.522],0.25,59.12175,0,2,\n[2.8232,0.3125757],true);\n\nsphere([-87.50435,59.8294,-1042.392],2.36487,0,1);\n\ncylinder([-87.50435,59.8294,-1042.392],0.25,75.21433,0,2,\n[2.066065,-0.9689925],true);\n\nsphere([-87.50435,59.8294,-1042.392],0.25,0,2,\n[1.075528,2.1726]);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[2.066065,-0.9689925]);\n\ncylinder([-87.50435,59.8294,-1042.392],0.25,75.21433,0,2,\n[1.844694,-0.1244734],true);\n\nsphere([-87.50435,59.8294,-1042.392],0.25,0,2,\n[1.296898,3.017119]);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[1.844694,-0.1244734]);\n\ncylinder([-87.50435,59.8294,-1042.392],0.25,75.21433,0,2,\n[1.294035,-0.7232435],true);\n\nsphere([-87.50435,59.8294,-1042.392],0.25,0,2,\n[1.847558,2.418349]);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[1.294035,-0.7232435]);\n\npatch([\n[-87.50435,59.8294,-1042.392],\n[-50.03973,5.278934,-1078.139],\n[-15.65395,50.83946,-1062.737]\n],0,3,\n[-87.50435,5.278934,-1078.139],\n[-15.65395,59.8294,-1042.392]);\n\npatch([\n[-87.50435,59.8294,-1042.392],\n[-50.03973,5.278934,-1078.139],\n[-33.26467,11.94538,-1021.841]\n],0,3,\n[-87.50435,5.278934,-1078.139],\n[-33.26467,59.8294,-1021.841]);\n\npatch([\n[-87.50435,59.8294,-1042.392],\n[-15.65395,50.83946,-1062.737],\n[-33.26467,11.94538,-1021.841]\n],0,3,\n[-87.50435,11.94538,-1062.737],\n[-15.65395,59.8294,-1021.841]);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[2.831316,-2.763328]);\n\ncylinder([-50.03973,5.278934,-1078.139],0.25,59.12175,0,2,\n[1.307234,0.9242765],true);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[1.307234,0.9242765]);\n\ncylinder([-15.65395,50.83946,-1062.737],0.25,59.12175,0,2,\n[0.8069181,-1.995965],true);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[0.8069181,-1.995965]);\n\ncylinder([-33.26467,11.94538,-1021.841],0.25,59.12175,0,2,\n[2.831316,-2.763328],true);\n\nsphere([-50.90629,-42.83432,-973.4139],2.36487,0,1);\n\ncylinder([-50.90629,-42.83432,-973.4139],0.25,75.21433,0,2,\n[2.904403,0.05980929],true);\n\nsphere([-50.90629,-42.83432,-973.4139],0.25,0,2,\n[0.2371892,-3.081783]);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[2.904403,0.05980929]);\n\ncylinder([-50.90629,-42.83432,-973.4139],0.25,75.21433,0,2,\n[2.270316,1.259238],true);\n\nsphere([-50.90629,-42.83432,-973.4139],0.25,0,2,\n[0.8712764,-1.882355]);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[2.270316,1.259238]);\n\ncylinder([-50.90629,-42.83432,-973.4139],0.25,75.21433,0,2,\n[2.102991,0.2739535],true);\n\nsphere([-50.90629,-42.83432,-973.4139],0.25,0,2,\n[1.038602,-2.867639]);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[2.102991,0.2739535]);\n\npatch([\n[-50.90629,-42.83432,-973.4139],\n[-33.26467,-41.77793,-1046.522],\n[-33.26467,11.94538,-1021.841]\n],0,3,\n[-50.90629,-42.83432,-1046.522],\n[-33.26467,11.94538,-973.4139]);\n\npatch([\n[-50.90629,-42.83432,-973.4139],\n[-33.26467,-41.77793,-1046.522],\n[11.48866,-25.30015,-1011.58]\n],0,3,\n[-50.90629,-42.83432,-1046.522],\n[11.48866,-25.30015,-973.4139]);\n\npatch([\n[-50.90629,-42.83432,-973.4139],\n[-33.26467,11.94538,-1021.841],\n[11.48866,-25.30015,-1011.58]\n],0,3,\n[-50.90629,-42.83432,-1021.841],\n[11.48866,11.94538,-973.4139]);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[2.203134,-2.788805]);\n\ncylinder([-33.26467,-41.77793,-1046.522],0.25,59.12175,0,2,\n[1.140134,1.570796],true);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[1.140134,1.570796]);\n\ncylinder([-33.26467,11.94538,-1021.841],0.25,59.12175,0,2,\n[1.396354,-0.6940927],true);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[1.396354,-0.6940927]);\n\ncylinder([11.48866,-25.30015,-1011.58],0.25,59.12175,0,2,\n[2.203134,-2.788805],true);\n\nsphere([70.47746,-71.6494,-1006.17],2.36487,0,1);\n\ncylinder([70.47746,-71.6494,-1006.17],0.25,75.21433,0,2,\n[2.39811,2.808123],true);\n\nsphere([70.47746,-71.6494,-1006.17],0.25,0,2,\n[0.7434829,-0.33347]);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[2.39811,2.808123]);\n\ncylinder([70.47746,-71.6494,-1006.17],0.25,75.21433,0,2,\n[1.64278,2.475614],true);\n\nsphere([70.47746,-71.6494,-1006.17],0.25,0,2,\n[1.498813,-0.6659788]);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[1.64278,2.475614]);\n\ncylinder([70.47746,-71.6494,-1006.17],0.25,75.21433,0,2,\n[2.130971,1.787801],true);\n\nsphere([70.47746,-71.6494,-1006.17],0.25,0,2,\n[1.010622,-1.353792]);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[2.130971,1.787801]);\n\npatch([\n[70.47746,-71.6494,-1006.17],\n[22.37269,-54.98559,-1061.536],\n[11.48866,-25.30015,-1011.58]\n],0,3,\n[11.48866,-71.6494,-1061.536],\n[70.47746,-25.30015,-1006.17]);\n\npatch([\n[70.47746,-71.6494,-1006.17],\n[22.37269,-54.98559,-1061.536],\n[56.75847,-9.425061,-1046.134]\n],0,3,\n[22.37269,-71.6494,-1061.536],\n[70.47746,-9.425061,-1006.17]);\n\npatch([\n[70.47746,-71.6494,-1006.17],\n[11.48866,-25.30015,-1011.58],\n[56.75847,-9.425061,-1046.134]\n],0,3,\n[11.48866,-71.6494,-1046.134],\n[70.47746,-9.425061,-1006.17]);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[1.834359,-2.217316]);\n\ncylinder([22.37269,-54.98559,-1061.536],0.25,59.12175,0,2,\n[0.5642615,1.922222],true);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[0.5642615,1.922222]);\n\ncylinder([11.48866,-25.30015,-1011.58],0.25,59.12175,0,2,\n[2.195013,0.3372779],true);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[2.195013,0.3372779]);\n\ncylinder([56.75847,-9.425061,-1046.134],0.25,59.12175,0,2,\n[1.834359,-2.217316],true);\n\nsphere([108.8987,13.20563,-1095.393],2.36487,0,1);\n\ncylinder([108.8987,13.20563,-1095.393],0.25,75.21433,0,2,\n[1.664529,-2.739622],true);\n\nsphere([108.8987,13.20563,-1095.393],0.25,0,2,\n[1.477064,0.4019706]);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[1.664529,-2.739622]);\n\ncylinder([108.8987,13.20563,-1095.393],0.25,75.21433,0,2,\n[0.8567269,-2.732094],true);\n\nsphere([108.8987,13.20563,-1095.393],0.25,0,2,\n[2.284866,0.4094985]);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[0.8567269,-2.732094]);\n\ncylinder([108.8987,13.20563,-1095.393],0.25,75.21433,0,2,\n[1.334034,2.80097],true);\n\nsphere([108.8987,13.20563,-1095.393],0.25,0,2,\n[1.807559,-0.3406228]);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[1.334034,2.80097]);\n\npatch([\n[108.8987,13.20563,-1095.393],\n[39.98341,-16.0915,-1102.433],\n[56.75847,-9.425061,-1046.134]\n],0,3,\n[39.98341,-16.0915,-1102.433],\n[108.8987,13.20563,-1046.134]);\n\npatch([\n[108.8987,13.20563,-1095.393],\n[39.98341,-16.0915,-1102.433],\n[39.98341,37.6318,-1077.751]\n],0,3,\n[39.98341,-16.0915,-1102.433],\n[108.8987,37.6318,-1077.751]);\n\npatch([\n[108.8987,13.20563,-1095.393],\n[56.75847,-9.425061,-1046.134],\n[39.98341,37.6318,-1077.751]\n],0,3,\n[39.98341,-9.425061,-1095.393],\n[108.8987,37.6318,-1046.134]);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[2.001459,-1.570796]);\n\ncylinder([39.98341,-16.0915,-1102.433],0.25,59.12175,0,2,\n[0.3102762,0.3782647],true);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[0.3102762,0.3782647]);\n\ncylinder([56.75847,-9.425061,-1046.134],0.25,59.12175,0,2,\n[2.13504,1.913237],true);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[2.13504,1.913237]);\n\ncylinder([39.98341,37.6318,-1077.751],0.25,59.12175,0,2,\n[2.001459,-1.570796],true);\n\nsphere([11.26056,94.464,-1117.78],2.36487,0,1);\n\ncylinder([11.26056,94.464,-1117.78],0.25,75.21433,0,2,\n[1.503127,-1.786075],true);\n\nsphere([11.26056,94.464,-1117.78],0.25,0,2,\n[1.638466,1.355518]);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.503127,-1.786075]);\n\ncylinder([11.26056,94.464,-1117.78],0.25,75.21433,0,2,\n[1.009605,-1.10284],true);\n\nsphere([11.26056,94.464,-1117.78],0.25,0,2,\n[2.131987,2.038753]);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[1.009605,-1.10284]);\n\ncylinder([11.26056,94.464,-1117.78],0.25,75.21433,0,2,\n[0.7498194,-2.123592],true);\n\nsphere([11.26056,94.464,-1117.78],0.25,0,2,\n[2.391773,1.018001]);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[0.7498194,-2.123592]);\n\npatch([\n[11.26056,94.464,-1117.78],\n[-4.769923,21.15402,-1112.694],\n[39.98341,37.6318,-1077.751]\n],0,3,\n[-4.769923,21.15402,-1117.78],\n[39.98341,94.464,-1077.751]);\n\npatch([\n[11.26056,94.464,-1117.78],\n[-4.769923,21.15402,-1112.694],\n[-15.65395,50.83946,-1062.737]\n],0,3,\n[-15.65395,21.15402,-1117.78],\n[11.26056,94.464,-1062.737]);\n\npatch([\n[11.26056,94.464,-1117.78],\n[39.98341,37.6318,-1077.751],\n[-15.65395,50.83946,-1062.737]\n],0,3,\n[-15.65395,37.6318,-1117.78],\n[39.98341,94.464,-1062.737]);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[2.577331,-1.21937]);\n\ncylinder([-4.769923,21.15402,-1112.694],0.25,59.12175,0,2,\n[0.9384587,0.352788],true);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[0.9384587,0.352788]);\n\ncylinder([39.98341,37.6318,-1077.751],0.25,59.12175,0,2,\n[1.314033,2.908519],true);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[1.314033,2.908519]);\n\ncylinder([-15.65395,50.83946,-1062.737],0.25,59.12175,0,2,\n[2.577331,-1.21937],true);\n\nsphere([-4.541824,-98.61012,-1006.494],2.36487,0,1);\n\ncylinder([-4.541824,-98.61012,-1006.494],0.25,75.21433,0,2,\n[1.638466,1.355518],true);\n\nsphere([-4.541824,-98.61012,-1006.494],0.25,0,2,\n[1.503127,-1.786075]);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[1.638466,1.355518]);\n\ncylinder([-4.541824,-98.61012,-1006.494],0.25,75.21433,0,2,\n[2.131987,2.038753],true);\n\nsphere([-4.541824,-98.61012,-1006.494],0.25,0,2,\n[1.009605,-1.10284]);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[2.131987,2.038753]);\n\ncylinder([-4.541824,-98.61012,-1006.494],0.25,75.21433,0,2,\n[2.391773,1.018001],true);\n\nsphere([-4.541824,-98.61012,-1006.494],0.25,0,2,\n[0.7498194,-2.123592]);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[2.391773,1.018001]);\n\npatch([\n[-4.541824,-98.61012,-1006.494],\n[11.48866,-25.30015,-1011.58],\n[-33.26467,-41.77793,-1046.522]\n],0,3,\n[-33.26467,-98.61012,-1046.522],\n[11.48866,-25.30015,-1006.494]);\n\npatch([\n[-4.541824,-98.61012,-1006.494],\n[11.48866,-25.30015,-1011.58],\n[22.37269,-54.98559,-1061.536]\n],0,3,\n[-4.541824,-98.61012,-1061.536],\n[22.37269,-25.30015,-1006.494]);\n\npatch([\n[-4.541824,-98.61012,-1006.494],\n[-33.26467,-41.77793,-1046.522],\n[22.37269,-54.98559,-1061.536]\n],0,3,\n[-33.26467,-98.61012,-1061.536],\n[22.37269,-41.77793,-1006.494]);\n\nsphere([11.48866,-25.30015,-1011.58],0.25,0,2,\n[0.5642615,1.922222]);\n\ncylinder([11.48866,-25.30015,-1011.58],0.25,59.12175,0,2,\n[2.203134,-2.788805],true);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[2.203134,-2.788805]);\n\ncylinder([-33.26467,-41.77793,-1046.522],0.25,59.12175,0,2,\n[1.82756,-0.233074],true);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[1.82756,-0.233074]);\n\ncylinder([22.37269,-54.98559,-1061.536],0.25,59.12175,0,2,\n[0.5642615,1.922222],true);\n\nsphere([94.22309,-63.97553,-1081.881],2.36487,0,1);\n\ncylinder([94.22309,-63.97553,-1081.881],0.25,75.21433,0,2,\n[1.075528,2.1726],true);\n\nsphere([94.22309,-63.97553,-1081.881],0.25,0,2,\n[2.066065,-0.9689925]);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[1.075528,2.1726]);\n\ncylinder([94.22309,-63.97553,-1081.881],0.25,75.21433,0,2,\n[1.296898,3.017119],true);\n\nsphere([94.22309,-63.97553,-1081.881],0.25,0,2,\n[1.844694,-0.1244734]);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[1.296898,3.017119]);\n\ncylinder([94.22309,-63.97553,-1081.881],0.25,75.21433,0,2,\n[1.847558,2.418349],true);\n\nsphere([94.22309,-63.97553,-1081.881],0.25,0,2,\n[1.294035,-0.7232435]);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[1.847558,2.418349]);\n\npatch([\n[94.22309,-63.97553,-1081.881],\n[56.75847,-9.425061,-1046.134],\n[22.37269,-54.98559,-1061.536]\n],0,3,\n[22.37269,-63.97553,-1081.881],\n[94.22309,-9.425061,-1046.134]);\n\npatch([\n[94.22309,-63.97553,-1081.881],\n[56.75847,-9.425061,-1046.134],\n[39.98341,-16.0915,-1102.433]\n],0,3,\n[39.98341,-63.97553,-1102.433],\n[94.22309,-9.425061,-1046.134]);\n\npatch([\n[94.22309,-63.97553,-1081.881],\n[22.37269,-54.98559,-1061.536],\n[39.98341,-16.0915,-1102.433]\n],0,3,\n[22.37269,-63.97553,-1102.433],\n[94.22309,-16.0915,-1061.536]);\n\nsphere([56.75847,-9.425061,-1046.134],0.25,0,2,\n[0.3102762,0.3782647]);\n\ncylinder([56.75847,-9.425061,-1046.134],0.25,59.12175,0,2,\n[1.834359,-2.217316],true);\n\nsphere([22.37269,-54.98559,-1061.536],0.25,0,2,\n[1.834359,-2.217316]);\n\ncylinder([22.37269,-54.98559,-1061.536],0.25,59.12175,0,2,\n[2.334675,1.145627],true);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[2.334675,1.145627]);\n\ncylinder([39.98341,-16.0915,-1102.433],0.25,59.12175,0,2,\n[0.3102762,0.3782647],true);\n\nsphere([57.62503,38.6882,-1150.859],2.36487,0,1);\n\ncylinder([57.62503,38.6882,-1150.859],0.25,75.21433,0,2,\n[0.2371892,-3.081783],true);\n\nsphere([57.62503,38.6882,-1150.859],0.25,0,2,\n[2.904403,0.05980929]);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[0.2371892,-3.081783]);\n\ncylinder([57.62503,38.6882,-1150.859],0.25,75.21433,0,2,\n[0.8712764,-1.882355],true);\n\nsphere([57.62503,38.6882,-1150.859],0.25,0,2,\n[2.270316,1.259238]);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[0.8712764,-1.882355]);\n\ncylinder([57.62503,38.6882,-1150.859],0.25,75.21433,0,2,\n[1.038602,-2.867639],true);\n\nsphere([57.62503,38.6882,-1150.859],0.25,0,2,\n[2.102991,0.2739535]);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.038602,-2.867639]);\n\npatch([\n[57.62503,38.6882,-1150.859],\n[39.98341,37.6318,-1077.751],\n[39.98341,-16.0915,-1102.433]\n],0,3,\n[39.98341,-16.0915,-1150.859],\n[57.62503,38.6882,-1077.751]);\n\npatch([\n[57.62503,38.6882,-1150.859],\n[39.98341,37.6318,-1077.751],\n[-4.769923,21.15402,-1112.694]\n],0,3,\n[-4.769923,21.15402,-1150.859],\n[57.62503,38.6882,-1077.751]);\n\npatch([\n[57.62503,38.6882,-1150.859],\n[39.98341,-16.0915,-1102.433],\n[-4.769923,21.15402,-1112.694]\n],0,3,\n[-4.769923,-16.0915,-1150.859],\n[57.62503,38.6882,-1102.433]);\n\nsphere([39.98341,37.6318,-1077.751],0.25,0,2,\n[0.9384587,0.352788]);\n\ncylinder([39.98341,37.6318,-1077.751],0.25,59.12175,0,2,\n[2.001459,-1.570796],true);\n\nsphere([39.98341,-16.0915,-1102.433],0.25,0,2,\n[2.001459,-1.570796]);\n\ncylinder([39.98341,-16.0915,-1102.433],0.25,59.12175,0,2,\n[1.745239,2.4475],true);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.745239,2.4475]);\n\ncylinder([-4.769923,21.15402,-1112.694],0.25,59.12175,0,2,\n[0.9384587,0.352788],true);\n\nsphere([-63.75872,67.50327,-1118.103],2.36487,0,1);\n\ncylinder([-63.75872,67.50327,-1118.103],0.25,75.21433,0,2,\n[0.7434829,-0.33347],true);\n\nsphere([-63.75872,67.50327,-1118.103],0.25,0,2,\n[2.39811,2.808123]);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[0.7434829,-0.33347]);\n\ncylinder([-63.75872,67.50327,-1118.103],0.25,75.21433,0,2,\n[1.498813,-0.6659788],true);\n\nsphere([-63.75872,67.50327,-1118.103],0.25,0,2,\n[1.64278,2.475614]);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[1.498813,-0.6659788]);\n\ncylinder([-63.75872,67.50327,-1118.103],0.25,75.21433,0,2,\n[1.010622,-1.353792],true);\n\nsphere([-63.75872,67.50327,-1118.103],0.25,0,2,\n[2.130971,1.787801]);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[1.010622,-1.353792]);\n\npatch([\n[-63.75872,67.50327,-1118.103],\n[-15.65395,50.83946,-1062.737],\n[-4.769923,21.15402,-1112.694]\n],0,3,\n[-63.75872,21.15402,-1118.103],\n[-4.769923,67.50327,-1062.737]);\n\npatch([\n[-63.75872,67.50327,-1118.103],\n[-15.65395,50.83946,-1062.737],\n[-50.03973,5.278934,-1078.139]\n],0,3,\n[-63.75872,5.278934,-1118.103],\n[-15.65395,67.50327,-1062.737]);\n\npatch([\n[-63.75872,67.50327,-1118.103],\n[-4.769923,21.15402,-1112.694],\n[-50.03973,5.278934,-1078.139]\n],0,3,\n[-63.75872,5.278934,-1118.103],\n[-4.769923,67.50327,-1078.139]);\n\nsphere([-15.65395,50.83946,-1062.737],0.25,0,2,\n[1.307234,0.9242765]);\n\ncylinder([-15.65395,50.83946,-1062.737],0.25,59.12175,0,2,\n[2.577331,-1.21937],true);\n\nsphere([-4.769923,21.15402,-1112.694],0.25,0,2,\n[2.577331,-1.21937]);\n\ncylinder([-4.769923,21.15402,-1112.694],0.25,59.12175,0,2,\n[0.9465796,-2.804315],true);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[0.9465796,-2.804315]);\n\ncylinder([-50.03973,5.278934,-1078.139],0.25,59.12175,0,2,\n[1.307234,0.9242765],true);\n\nsphere([-102.18,-17.35176,-1028.88],2.36487,0,1);\n\ncylinder([-102.18,-17.35176,-1028.88],0.25,75.21433,0,2,\n[1.477064,0.4019706],true);\n\nsphere([-102.18,-17.35176,-1028.88],0.25,0,2,\n[1.664529,-2.739622]);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[1.477064,0.4019706]);\n\ncylinder([-102.18,-17.35176,-1028.88],0.25,75.21433,0,2,\n[2.284866,0.4094985],true);\n\nsphere([-102.18,-17.35176,-1028.88],0.25,0,2,\n[0.8567269,-2.732094]);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[2.284866,0.4094985]);\n\ncylinder([-102.18,-17.35176,-1028.88],0.25,75.21433,0,2,\n[1.807559,-0.3406228],true);\n\nsphere([-102.18,-17.35176,-1028.88],0.25,0,2,\n[1.334034,2.80097]);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[1.807559,-0.3406228]);\n\npatch([\n[-102.18,-17.35176,-1028.88],\n[-33.26467,11.94538,-1021.841],\n[-50.03973,5.278934,-1078.139]\n],0,3,\n[-102.18,-17.35176,-1078.139],\n[-33.26467,11.94538,-1021.841]);\n\npatch([\n[-102.18,-17.35176,-1028.88],\n[-33.26467,11.94538,-1021.841],\n[-33.26467,-41.77793,-1046.522]\n],0,3,\n[-102.18,-41.77793,-1046.522],\n[-33.26467,11.94538,-1021.841]);\n\npatch([\n[-102.18,-17.35176,-1028.88],\n[-50.03973,5.278934,-1078.139],\n[-33.26467,-41.77793,-1046.522]\n],0,3,\n[-102.18,-41.77793,-1078.139],\n[-33.26467,5.278934,-1028.88]);\n\nsphere([-33.26467,11.94538,-1021.841],0.25,0,2,\n[1.140134,1.570796]);\n\ncylinder([-33.26467,11.94538,-1021.841],0.25,59.12175,0,2,\n[2.831316,-2.763328],true);\n\nsphere([-50.03973,5.278934,-1078.139],0.25,0,2,\n[2.831316,-2.763328]);\n\ncylinder([-50.03973,5.278934,-1078.139],0.25,59.12175,0,2,\n[1.006553,-1.228356],true);\n\nsphere([-33.26467,-41.77793,-1046.522],0.25,0,2,\n[1.006553,-1.228356]);\n\ncylinder([-33.26467,-41.77793,-1046.522],0.25,59.12175,0,2,\n[1.140134,1.570796],true);\n\n</script>\n</head>\n\n<body style=\"overflow: hidden;\" onload=\"webGLStart();\">\n<canvas id=\"Asymptote\" width=\"217\" height=\"217\" style=\"border: none; cursor: pointer;\">\n</canvas>\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/FiveVenn.asy",
    "content": "usepackage(\"amsmath\");\n\ntexpreamble(\"\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\");\n\n\n        size(6cm,5cm);\n        path [] P ;\n        path Ellipse = shift(1.2,.2)*scale(3.25,1.5)*unitcircle;\n        pen [] Colourpen = {\n           rgb(.45,.05,.05), rgb(.05,.45,.05), rgb(.05,.05,.40),\n           rgb(.30,.30,0), rgb(.30,0,.30)\n           };\n        picture pic;\n        for (int k: sequence(5)) {\n           P[k]=rotate(k*72)*Ellipse;\n           fill(P[k],Colourpen[k]);\n           for (int l: sequence(k)) {\n              fill(pic, P[k], Colourpen[k]+Colourpen[l]);\n              clip(pic,P[l]);\n              add(pic);\n              for (int m: sequence(l)) {\n                 fill(pic, P[k], Colourpen[k]+Colourpen[l]+Colourpen[m]);\n                 clip(pic,P[l]); clip(pic,P[m]);\n                 add(pic);\n                 for (int n: sequence(m)) {\n                    fill(pic, P[k], Colourpen[k]+Colourpen[l]+Colourpen[m]+Colourpen[n]);\n                    clip(pic,P[l]); clip(pic,P[m]); clip(pic,P[n]);\n                    add(pic);\n                 }\n              }\n           }\n\n        }\n        fill(pic, P[0], Colourpen[0]+Colourpen[1]+Colourpen[2]+Colourpen[3]+Colourpen[4]);\n        for (int k: sequence(5)) {clip(pic,P[k]);}\n        for (int k: sequence(5)) {draw(P[k],linewidth(0.4));}\n        add(pic);\n        "
  },
  {
    "path": "examples/showcase/generated/asymptote/FiveVenn.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 236 324 375 467\n%%HiResBoundingBox: 236.47251 324.633858 374.52749 466.366142\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:37\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 300.63394 394.476514 translate\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\n/Compatible .setblendmode\n0.45 0.05 0.05 setrgbcolor\n0.5 Setlinewidth\n1 setlinecap\n1 setlinejoin\n10 setmiterlimit\nfill\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.05 0.45 0.05 setrgbcolor\nfill\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.05 0.05 0.4 setrgbcolor\nfill\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.3 0.3 0 setrgbcolor\nfill\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.3 0 0.3 setrgbcolor\nfill\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.75 0.35 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.75 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.727272727 0.363636364 setrgbcolor\nfill\ngrestore\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.75 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.727272727 0.363636364 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.35 0.7 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.75 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.727272727 0.363636364 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.35 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.363636364 0.681818182 setrgbcolor\nfill\ngrestore\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.75 0.35 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.727272727 0.363636364 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.35 0.7 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.363636364 0.681818182 setrgbcolor\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.7 0.8 0.75 setrgbcolor\nfill\ngrestore\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\n0 setgray\n0.4 Setlinewidth\nstroke\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nstroke\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nstroke\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nstroke\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\nstroke\ngsave\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\ngsave\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\nclip\nnewpath 19.6225939 71.1102169 moveto\n 6.57500986 75.349634 -11.4483878 55.8691876 -20.6337914 27.5994221 curveto\n -29.819195 -0.670343411 -26.6882791 -27.0242429 -13.640695 -31.26366 curveto\n -0.593110971 -35.503077 17.4302867 -16.0226306 26.6156903 12.2471349 curveto\n 35.8010939 40.5169004 32.670178 66.8707999 19.6225939 71.1102169 curveto\nclosepath\n0.5 0.5 0.1 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.5 0.1 0.45 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.1 0.5 0.45 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -61.5661202 40.6364613 moveto\n -69.6299706 29.5375234 -56.6725013 6.37646464 -32.6248024 -11.0952113 curveto\n -8.57710354 -28.5668872 17.4544505 -33.7330121 25.518301 -22.6340741 curveto\n 33.5821514 -11.5351362 20.6246821 11.6259225 -3.42301681 29.0975985 curveto\n -27.4707157 46.5692744 -53.5022697 51.7353993 -61.5661202 40.6364613 curveto\nclosepath\n0.55 0.55 0.5 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.75 0.35 0.05 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.75 0.05 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.8 0.1 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.35 0.35 0.4 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.8 0.4 0.45 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.4 0.8 0.45 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath -57.6725488 -45.9955026 moveto\n -49.6086983 -57.0944406 -23.5771443 -51.9283157 0.470554609 -34.4566398 curveto\n 24.5182535 -16.9849638 37.4757228 6.17609491 29.4118724 17.2750328 curveto\n 21.3480219 28.3739708 -4.68353213 23.2078459 -28.731231 5.73616998 curveto\n -52.7789299 -11.7355059 -65.7363992 -34.8965647 -57.6725488 -45.9955026 curveto\nclosepath\n0.85 0.85 0.5 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.75 0.05 0.35 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.45 0.35 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.5 0.4 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.35 0.05 0.7 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.8 0.1 0.75 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.4 0.5 0.75 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.85 0.55 0.8 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.6 0.3 0.3 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.333333333 0.333333333 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.75 0.35 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.727272727 0.363636364 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.65 0.35 0.7 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n1 0.363636364 0.681818182 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 25.9225248 -69.0632453 moveto\n 38.9701089 -64.8238282 42.1010248 -38.4699287 32.9156212 -10.2001632 curveto\n 23.7302175 18.0696023 5.70681992 37.5500487 -7.34076416 33.3106316 curveto\n -20.3883482 29.0712145 -23.5192641 2.71731504 -14.3338605 -25.5524505 curveto\n -5.14845687 -53.8222159 12.8749407 -73.3026623 25.9225248 -69.0632453 curveto\nclosepath\n0.7 0.8 0.75 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\nnewpath 73.6935502 3.31206967 moveto\n 73.6935502 17.0311114 49.5970085 28.1525922 19.872418 28.1525922 curveto\n -9.85217248 28.1525922 -33.9487141 17.0311114 -33.9487141 3.31206967 curveto\n -33.9487141 -10.4069721 -9.85217248 -21.5284529 19.872418 -21.5284529 curveto\n 49.5970085 -21.5284529 73.6935502 -10.4069721 73.6935502 3.31206967 curveto\nclosepath\n1 0.739130435 0.695652174 setrgbcolor\n0.5 Setlinewidth\nfill\ngrestore\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/FiveVenn.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmp3fmtri31/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.11.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='138.054979pt' height='141.732284pt' viewBox='120.570879 125.747895 138.054979 141.732284'>\n<defs>\n<clipPath id='Clip1'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip2'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip2)' id='Clip3'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip4'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip4)' id='Clip5'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip5)' id='Clip6'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip7'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip7)' id='Clip8'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip8)' id='Clip9'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip9)' id='Clip10'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip10)' id='Clip11'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip12'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip12)' id='Clip13'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip13)' id='Clip14'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip14)' id='Clip15'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip15)' id='Clip16'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip16)' id='Clip17'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip18'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip18)' id='Clip19'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip19)' id='Clip20'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip20)' id='Clip21'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip21)' id='Clip22'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip22)' id='Clip23'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip23)' id='Clip24'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip25'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip25)' id='Clip26'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip26)' id='Clip27'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip27)' id='Clip28'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip28)' id='Clip29'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip29)' id='Clip30'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip30)' id='Clip31'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip31)' id='Clip32'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip32)' id='Clip33'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip34'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip34)' id='Clip35'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip35)' id='Clip36'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip36)' id='Clip37'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip37)' id='Clip38'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip38)' id='Clip39'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip39)' id='Clip40'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip40)' id='Clip41'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip41)' id='Clip42'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip42)' id='Clip43'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip44'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip44)' id='Clip45'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip45)' id='Clip46'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip46)' id='Clip47'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip47)' id='Clip48'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip48)' id='Clip49'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip49)' id='Clip50'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip50)' id='Clip51'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip51)' id='Clip52'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip52)' id='Clip53'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip53)' id='Clip54'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip54)' id='Clip55'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip56'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip56)' id='Clip57'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip57)' id='Clip58'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip58)' id='Clip59'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip59)' id='Clip60'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip60)' id='Clip61'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip61)' id='Clip62'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip62)' id='Clip63'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip63)' id='Clip64'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip64)' id='Clip65'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip65)' id='Clip66'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip66)' id='Clip67'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip67)' id='Clip68'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip68)' id='Clip69'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip70'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip70)' id='Clip71'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip71)' id='Clip72'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip72)' id='Clip73'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip73)' id='Clip74'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip74)' id='Clip75'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip75)' id='Clip76'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip76)' id='Clip77'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip77)' id='Clip78'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip78)' id='Clip79'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip79)' id='Clip80'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip80)' id='Clip81'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip81)' id='Clip82'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip82)' id='Clip83'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip83)' id='Clip84'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip84)' id='Clip85'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip85)' id='Clip86'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip87'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip87)' id='Clip88'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip88)' id='Clip89'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip89)' id='Clip90'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip90)' id='Clip91'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip91)' id='Clip92'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip92)' id='Clip93'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip93)' id='Clip94'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip94)' id='Clip95'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip95)' id='Clip96'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip96)' id='Clip97'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip97)' id='Clip98'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip98)' id='Clip99'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip99)' id='Clip100'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip100)' id='Clip101'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip101)' id='Clip102'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip102)' id='Clip103'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip103)' id='Clip104'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip105'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip105)' id='Clip106'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip106)' id='Clip107'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip107)' id='Clip108'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip108)' id='Clip109'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip109)' id='Clip110'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip110)' id='Clip111'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip111)' id='Clip112'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip112)' id='Clip113'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip113)' id='Clip114'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip114)' id='Clip115'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip115)' id='Clip116'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip116)' id='Clip117'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip117)' id='Clip118'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip118)' id='Clip119'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip119)' id='Clip120'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip120)' id='Clip121'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip121)' id='Clip122'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip122)' id='Clip123'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip124'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip124)' id='Clip125'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip125)' id='Clip126'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip126)' id='Clip127'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip127)' id='Clip128'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip128)' id='Clip129'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip129)' id='Clip130'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip130)' id='Clip131'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip131)' id='Clip132'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip132)' id='Clip133'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip133)' id='Clip134'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip134)' id='Clip135'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip135)' id='Clip136'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip136)' id='Clip137'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip137)' id='Clip138'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip138)' id='Clip139'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip139)' id='Clip140'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip140)' id='Clip141'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip141)' id='Clip142'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip142)' id='Clip143'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip143)' id='Clip144'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip145'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip145)' id='Clip146'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip146)' id='Clip147'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip147)' id='Clip148'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip148)' id='Clip149'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip149)' id='Clip150'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip150)' id='Clip151'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip151)' id='Clip152'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip152)' id='Clip153'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip153)' id='Clip154'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip154)' id='Clip155'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip155)' id='Clip156'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip156)' id='Clip157'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip157)' id='Clip158'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip158)' id='Clip159'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip159)' id='Clip160'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip160)' id='Clip161'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip161)' id='Clip162'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip162)' id='Clip163'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip163)' id='Clip164'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip164)' id='Clip165'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip165)' id='Clip166'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip167'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip167)' id='Clip168'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip168)' id='Clip169'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip169)' id='Clip170'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip170)' id='Clip171'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip171)' id='Clip172'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip172)' id='Clip173'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip173)' id='Clip174'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip174)' id='Clip175'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip175)' id='Clip176'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip176)' id='Clip177'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip177)' id='Clip178'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip178)' id='Clip179'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip179)' id='Clip180'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip180)' id='Clip181'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip181)' id='Clip182'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip182)' id='Clip183'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip183)' id='Clip184'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip184)' id='Clip185'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip185)' id='Clip186'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip186)' id='Clip187'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip187)' id='Clip188'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip188)' id='Clip189'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip189)' id='Clip190'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip191'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip191)' id='Clip192'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip192)' id='Clip193'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip193)' id='Clip194'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip194)' id='Clip195'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip195)' id='Clip196'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip196)' id='Clip197'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip197)' id='Clip198'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip198)' id='Clip199'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip199)' id='Clip200'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip200)' id='Clip201'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip201)' id='Clip202'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip202)' id='Clip203'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip203)' id='Clip204'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip204)' id='Clip205'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip205)' id='Clip206'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip206)' id='Clip207'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip207)' id='Clip208'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip208)' id='Clip209'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip209)' id='Clip210'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip210)' id='Clip211'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip211)' id='Clip212'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip212)' id='Clip213'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip213)' id='Clip214'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip214)' id='Clip215'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip215)' id='Clip216'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip217'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip217)' id='Clip218'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip218)' id='Clip219'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip219)' id='Clip220'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip220)' id='Clip221'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip221)' id='Clip222'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip222)' id='Clip223'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip223)' id='Clip224'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip224)' id='Clip225'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip225)' id='Clip226'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip226)' id='Clip227'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip227)' id='Clip228'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip228)' id='Clip229'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip229)' id='Clip230'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip230)' id='Clip231'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip231)' id='Clip232'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip232)' id='Clip233'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip233)' id='Clip234'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip234)' id='Clip235'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip235)' id='Clip236'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip236)' id='Clip237'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip237)' id='Clip238'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip238)' id='Clip239'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip239)' id='Clip240'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip240)' id='Clip241'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip241)' id='Clip242'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip242)' id='Clip243'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip243)' id='Clip244'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip244)' id='Clip245'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip246'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip246)' id='Clip247'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip247)' id='Clip248'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip248)' id='Clip249'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip249)' id='Clip250'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip250)' id='Clip251'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip251)' id='Clip252'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip252)' id='Clip253'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip253)' id='Clip254'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip254)' id='Clip255'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip255)' id='Clip256'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip256)' id='Clip257'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip257)' id='Clip258'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip258)' id='Clip259'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip259)' id='Clip260'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip260)' id='Clip261'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip261)' id='Clip262'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip262)' id='Clip263'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip263)' id='Clip264'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip264)' id='Clip265'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip265)' id='Clip266'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip266)' id='Clip267'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip267)' id='Clip268'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip268)' id='Clip269'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip269)' id='Clip270'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip270)' id='Clip271'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip271)' id='Clip272'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip272)' id='Clip273'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip273)' id='Clip274'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip274)' id='Clip275'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip276'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip276)' id='Clip277'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip277)' id='Clip278'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip278)' id='Clip279'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip279)' id='Clip280'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip280)' id='Clip281'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip281)' id='Clip282'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip282)' id='Clip283'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip283)' id='Clip284'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip284)' id='Clip285'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip285)' id='Clip286'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip286)' id='Clip287'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip287)' id='Clip288'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip288)' id='Clip289'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip289)' id='Clip290'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip290)' id='Clip291'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip291)' id='Clip292'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip292)' id='Clip293'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip293)' id='Clip294'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip294)' id='Clip295'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip295)' id='Clip296'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip296)' id='Clip297'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip297)' id='Clip298'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip298)' id='Clip299'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip299)' id='Clip300'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip300)' id='Clip301'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip301)' id='Clip302'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip302)' id='Clip303'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip303)' id='Clip304'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip304)' id='Clip305'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip305)' id='Clip306'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip306)' id='Clip307'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip308'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip308)' id='Clip309'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip309)' id='Clip310'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip310)' id='Clip311'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip311)' id='Clip312'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip312)' id='Clip313'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip313)' id='Clip314'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip314)' id='Clip315'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip315)' id='Clip316'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip316)' id='Clip317'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip317)' id='Clip318'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip318)' id='Clip319'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip319)' id='Clip320'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip320)' id='Clip321'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip321)' id='Clip322'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip322)' id='Clip323'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip323)' id='Clip324'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip324)' id='Clip325'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip325)' id='Clip326'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip326)' id='Clip327'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip327)' id='Clip328'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip328)' id='Clip329'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip329)' id='Clip330'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip330)' id='Clip331'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip331)' id='Clip332'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip332)' id='Clip333'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip333)' id='Clip334'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip334)' id='Clip335'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip335)' id='Clip336'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip336)' id='Clip337'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip337)' id='Clip338'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip338)' id='Clip339'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip339)' id='Clip340'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip340)' id='Clip341'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip342'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip342)' id='Clip343'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip343)' id='Clip344'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip344)' id='Clip345'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip345)' id='Clip346'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip346)' id='Clip347'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip347)' id='Clip348'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip348)' id='Clip349'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip349)' id='Clip350'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip350)' id='Clip351'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip351)' id='Clip352'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip352)' id='Clip353'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip353)' id='Clip354'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip354)' id='Clip355'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip355)' id='Clip356'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip356)' id='Clip357'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip357)' id='Clip358'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip358)' id='Clip359'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip359)' id='Clip360'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip360)' id='Clip361'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip361)' id='Clip362'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip362)' id='Clip363'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip363)' id='Clip364'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip364)' id='Clip365'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip365)' id='Clip366'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip366)' id='Clip367'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip367)' id='Clip368'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip368)' id='Clip369'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip369)' id='Clip370'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip370)' id='Clip371'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip371)' id='Clip372'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip372)' id='Clip373'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip373)' id='Clip374'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip374)' id='Clip375'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip375)' id='Clip376'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip376)' id='Clip377'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip377)' id='Clip378'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip379'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip379)' id='Clip380'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip380)' id='Clip381'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip381)' id='Clip382'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip382)' id='Clip383'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip383)' id='Clip384'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip384)' id='Clip385'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip385)' id='Clip386'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip386)' id='Clip387'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip387)' id='Clip388'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip388)' id='Clip389'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip389)' id='Clip390'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip390)' id='Clip391'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip391)' id='Clip392'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip392)' id='Clip393'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip393)' id='Clip394'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip394)' id='Clip395'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip395)' id='Clip396'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip396)' id='Clip397'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip397)' id='Clip398'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip398)' id='Clip399'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip399)' id='Clip400'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip400)' id='Clip401'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip401)' id='Clip402'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip402)' id='Clip403'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip403)' id='Clip404'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip404)' id='Clip405'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip405)' id='Clip406'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip406)' id='Clip407'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip407)' id='Clip408'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip408)' id='Clip409'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip409)' id='Clip410'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip410)' id='Clip411'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip411)' id='Clip412'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip412)' id='Clip413'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip413)' id='Clip414'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip414)' id='Clip415'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip415)' id='Clip416'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip416)' id='Clip417'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip418'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip418)' id='Clip419'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip419)' id='Clip420'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip420)' id='Clip421'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip421)' id='Clip422'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip422)' id='Clip423'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip423)' id='Clip424'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip424)' id='Clip425'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip425)' id='Clip426'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip426)' id='Clip427'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip427)' id='Clip428'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip428)' id='Clip429'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip429)' id='Clip430'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip430)' id='Clip431'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip431)' id='Clip432'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip432)' id='Clip433'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip433)' id='Clip434'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip434)' id='Clip435'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip435)' id='Clip436'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip436)' id='Clip437'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip437)' id='Clip438'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip438)' id='Clip439'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip439)' id='Clip440'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip440)' id='Clip441'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip441)' id='Clip442'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip442)' id='Clip443'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip443)' id='Clip444'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip444)' id='Clip445'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip445)' id='Clip446'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip446)' id='Clip447'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip447)' id='Clip448'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip448)' id='Clip449'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip449)' id='Clip450'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip450)' id='Clip451'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip451)' id='Clip452'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip452)' id='Clip453'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip453)' id='Clip454'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip454)' id='Clip455'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip455)' id='Clip456'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip456)' id='Clip457'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip457)' id='Clip458'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip458)' id='Clip459'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip460'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip460)' id='Clip461'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip461)' id='Clip462'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip462)' id='Clip463'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip463)' id='Clip464'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip464)' id='Clip465'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip465)' id='Clip466'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip466)' id='Clip467'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip467)' id='Clip468'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip468)' id='Clip469'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip469)' id='Clip470'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip470)' id='Clip471'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip471)' id='Clip472'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip472)' id='Clip473'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip473)' id='Clip474'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip474)' id='Clip475'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip475)' id='Clip476'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip476)' id='Clip477'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip477)' id='Clip478'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip478)' id='Clip479'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip479)' id='Clip480'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip480)' id='Clip481'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip481)' id='Clip482'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip482)' id='Clip483'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip483)' id='Clip484'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip484)' id='Clip485'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip485)' id='Clip486'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip486)' id='Clip487'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip487)' id='Clip488'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip488)' id='Clip489'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip489)' id='Clip490'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip490)' id='Clip491'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip491)' id='Clip492'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip492)' id='Clip493'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip493)' id='Clip494'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip494)' id='Clip495'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip495)' id='Clip496'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip496)' id='Clip497'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip497)' id='Clip498'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip498)' id='Clip499'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip499)' id='Clip500'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip500)' id='Clip501'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip501)' id='Clip502'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip502)' id='Clip503'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip503)' id='Clip504'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath id='Clip505'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip505)' id='Clip506'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip506)' id='Clip507'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip507)' id='Clip508'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip508)' id='Clip509'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip509)' id='Clip510'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip510)' id='Clip511'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip511)' id='Clip512'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip512)' id='Clip513'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip513)' id='Clip514'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip514)' id='Clip515'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip515)' id='Clip516'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip516)' id='Clip517'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip517)' id='Clip518'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip518)' id='Clip519'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip519)' id='Clip520'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip520)' id='Clip521'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip521)' id='Clip522'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip522)' id='Clip523'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip523)' id='Clip524'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip524)' id='Clip525'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip525)' id='Clip526'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip526)' id='Clip527'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip527)' id='Clip528'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip528)' id='Clip529'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip529)' id='Clip530'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip530)' id='Clip531'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip531)' id='Clip532'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip532)' id='Clip533'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip533)' id='Clip534'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip534)' id='Clip535'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip535)' id='Clip536'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip536)' id='Clip537'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip537)' id='Clip538'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip538)' id='Clip539'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip539)' id='Clip540'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip540)' id='Clip541'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip541)' id='Clip542'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip542)' id='Clip543'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip543)' id='Clip544'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip544)' id='Clip545'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip545)' id='Clip546'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip546)' id='Clip547'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip547)' id='Clip548'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip548)' id='Clip549'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip549)' id='Clip550'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip550)' id='Clip551'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip551)' id='Clip552'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip552)' id='Clip553'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n\n<clipPath clip-path='url(#Clip553)' id='Clip554'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' transform='matrix(0.996264 0 0 0.996264 120.571 125.748)'/>\n</clipPath>\n</defs>\n<g id='page1'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 0 142.264L 138.573 142.264L 138.573 0L 0 0L 0 142.264Z' fill='#ffffff'/>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' fill='#730c0c'/>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#0c730c'/>\n</g>\n<g clip-path='url(#Clip1)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#0c0c66'/>\n</g>\n<g clip-path='url(#Clip3)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip2)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip6)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip5)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip4)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip11)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip10)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip9)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip8)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#4c4c00'/>\n</g>\n<g clip-path='url(#Clip17)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip16)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip15)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip14)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip12)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip24)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip23)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip22)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip21)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip19)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip18)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip33)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip32)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip31)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip30)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip28)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip27)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip26)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip43)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip42)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip41)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip40)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip38)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip37)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip36)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip34)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip55)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip54)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip53)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip52)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip50)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip49)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip48)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip46)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip45)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip69)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip68)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip67)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip66)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip64)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip63)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip62)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip60)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip59)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip57)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip86)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip85)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip84)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip83)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip81)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip80)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip79)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip77)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip76)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip74)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip72)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#4c004c'/>\n</g>\n<g clip-path='url(#Clip104)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip103)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip102)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip101)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip99)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip98)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip97)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip95)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip94)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip92)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip90)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip87)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip123)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip122)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip121)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip120)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip118)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip117)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip116)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip114)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip113)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip111)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip109)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip106)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip105)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip144)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip143)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip142)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip141)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip139)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip138)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip137)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip135)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip134)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip132)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip130)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip127)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip126)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip125)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip166)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip165)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip164)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip163)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip161)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip160)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip159)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip157)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip156)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip154)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip152)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip149)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip148)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip147)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip145)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip190)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip189)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip188)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip187)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip185)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip184)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip183)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip181)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip180)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip178)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip176)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip173)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip172)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip171)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip169)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip168)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip216)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip215)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip214)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip213)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip211)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip210)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip209)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip207)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip206)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip204)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip202)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip199)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip198)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip197)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip195)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip194)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip192)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip245)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip244)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip243)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip242)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip240)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip239)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip238)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip236)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip235)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip233)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip231)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip228)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip227)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip226)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip224)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip223)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip221)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip219)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip275)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip274)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip273)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip272)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip270)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip269)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip268)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip266)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip265)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip263)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip261)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip258)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip257)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip256)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip254)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip253)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip251)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip249)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip246)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip307)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip306)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip305)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip304)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip302)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip301)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip300)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip298)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip297)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip295)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip293)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip290)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip289)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip288)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip286)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip285)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip283)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip281)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip278)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip277)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip341)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip340)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip339)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip338)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip336)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip335)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip334)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip332)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip331)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip329)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip327)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip324)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip323)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip322)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip320)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip319)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip317)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip315)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip312)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip311)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip309)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a6c059'/>\n</g>\n</g>\n<g clip-path='url(#Clip378)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip377)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip376)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip375)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip373)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip372)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip371)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip369)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip368)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip366)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip364)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip361)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip360)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip359)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip357)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip356)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip354)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip352)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip349)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip348)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip346)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a6c059'/>\n</g>\n</g>\n<g clip-path='url(#Clip344)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ffba5d'/>\n</g>\n</g>\n<g clip-path='url(#Clip417)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip416)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip415)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip414)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip412)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip411)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip410)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip408)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip407)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip405)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip403)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip400)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip399)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip398)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip396)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip395)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip393)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip391)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip388)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip387)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip385)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a6c059'/>\n</g>\n</g>\n<g clip-path='url(#Clip383)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ffba5d'/>\n</g>\n</g>\n<g clip-path='url(#Clip380)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a659b3'/>\n</g>\n</g>\n<g clip-path='url(#Clip459)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip458)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip457)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip456)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip454)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip453)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip452)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip450)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip449)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip447)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip445)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip442)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip441)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip440)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip438)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip437)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip435)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip433)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip430)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip429)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip427)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a6c059'/>\n</g>\n</g>\n<g clip-path='url(#Clip425)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ffba5d'/>\n</g>\n</g>\n<g clip-path='url(#Clip422)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a659b3'/>\n</g>\n</g>\n<g clip-path='url(#Clip420)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5dae'/>\n</g>\n</g>\n<g clip-path='url(#Clip504)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip503)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip502)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip501)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip499)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip498)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip497)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip495)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip494)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip492)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip490)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip487)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip486)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip485)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip483)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip482)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip480)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip478)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip475)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip474)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip472)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a6c059'/>\n</g>\n</g>\n<g clip-path='url(#Clip470)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ffba5d'/>\n</g>\n</g>\n<g clip-path='url(#Clip467)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a659b3'/>\n</g>\n</g>\n<g clip-path='url(#Clip465)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5dae'/>\n</g>\n</g>\n<g clip-path='url(#Clip462)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#b3ccc0'/>\n</g>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.4015'/>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.4015'/>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.4015'/>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.4015'/>\n</g>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.4015'/>\n</g>\n<g clip-path='url(#Clip554)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 84.0982 0.782333C 71.0017 -3.47298 52.9107 16.0805 43.6909 44.4563C 34.471 72.8321 37.6137 99.2848 50.7102 103.54C 63.8067 107.795 81.8977 88.2419 91.1175 59.8662C 100.337 31.4904 97.1947 5.03765 84.0982 0.782333Z' fill='#808019'/>\n</g>\n</g>\n<g clip-path='url(#Clip553)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#801973'/>\n</g>\n</g>\n<g clip-path='url(#Clip552)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#198073'/>\n</g>\n</g>\n<g clip-path='url(#Clip551)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 2.60504 31.3704C -5.48905 42.5109 7.51701 65.7588 31.6549 83.296C 55.7928 100.833 81.9219 106.019 90.016 94.8782C 98.1101 83.7376 85.1041 60.4897 60.9662 42.9525C 36.8283 25.4153 10.6991 20.2298 2.60504 31.3704Z' fill='#8c8c80'/>\n</g>\n</g>\n<g clip-path='url(#Clip549)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#c0590c'/>\n</g>\n</g>\n<g clip-path='url(#Clip548)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#59c00c'/>\n</g>\n</g>\n<g clip-path='url(#Clip547)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cccc19'/>\n</g>\n</g>\n<g clip-path='url(#Clip545)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#595966'/>\n</g>\n</g>\n<g clip-path='url(#Clip544)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#cc6673'/>\n</g>\n</g>\n<g clip-path='url(#Clip542)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#66cc73'/>\n</g>\n</g>\n<g clip-path='url(#Clip540)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 6.51321 118.327C 14.6073 129.468 40.7365 124.282 64.8744 106.745C 89.0122 89.2079 102.018 65.96 93.9242 54.8194C 85.8301 43.6788 59.7009 48.8643 35.5631 66.4015C 11.4252 83.9387 -1.58088 107.187 6.51321 118.327Z' fill='#d9d980'/>\n</g>\n</g>\n<g clip-path='url(#Clip537)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#c00c59'/>\n</g>\n</g>\n<g clip-path='url(#Clip536)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#597359'/>\n</g>\n</g>\n<g clip-path='url(#Clip535)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc8066'/>\n</g>\n</g>\n<g clip-path='url(#Clip533)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#590cb3'/>\n</g>\n</g>\n<g clip-path='url(#Clip532)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#cc19c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip530)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#6680c0'/>\n</g>\n</g>\n<g clip-path='url(#Clip528)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#d98ccc'/>\n</g>\n</g>\n<g clip-path='url(#Clip525)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#994c4c'/>\n</g>\n</g>\n<g clip-path='url(#Clip524)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5555'/>\n</g>\n</g>\n<g clip-path='url(#Clip522)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a6c059'/>\n</g>\n</g>\n<g clip-path='url(#Clip520)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ffba5d'/>\n</g>\n</g>\n<g clip-path='url(#Clip517)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#a659b3'/>\n</g>\n</g>\n<g clip-path='url(#Clip515)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#ff5dae'/>\n</g>\n</g>\n<g clip-path='url(#Clip512)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 90.4218 141.481C 103.518 137.226 106.661 110.773 97.4411 82.3976C 88.2212 54.0219 70.1303 34.4684 57.0337 38.7237C 43.9372 42.979 40.7946 69.4317 50.0144 97.8075C 59.2343 126.183 77.3253 145.737 90.4218 141.481Z' fill='#b3ccc0'/>\n</g>\n</g>\n<g clip-path='url(#Clip509)'>\n<g transform='translate(120.571 125.748)scale(.996264)'>\n<path d='M 138.372 68.8347C 138.372 55.0642 114.185 43.901 84.349 43.901C 54.5129 43.901 30.326 55.0642 30.326 68.8347C 30.326 82.6052 54.5129 93.7684 84.349 93.7684C 114.185 93.7684 138.372 82.6052 138.372 68.8347Z' fill='#ffbdb2'/>\n</g>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/cflag.asy",
    "content": "usepackage(\"amsmath\");\n\ntexpreamble(\"\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\");\n\n\n        size(4cm,6cm);\n        pen canadared=rgb(235/256,45/256,55/256);\n        real flagwidth=4, flagheight=2;\n        path flag_outline=scale(flagwidth,flagheight)*unitsquare;\n        path  cbar1=scale(1,2)*unitsquare, cbar2=shift(3,0)*cbar1;\n        path mapleleafleft=\n        (0,-102) --(-5,-102)--(-2,-56) {dir(87)}..{dir(190)}\n        (-8,-53) --(-51,-61)--(-45,-45){dir(70)}..{dir(141)}\n        (-46,-41)--(-94,-3) --(-82,1)  {dir(25)}..{dir(108)}\n        (-81,6)  --(-90,34) --(-63,29) {dir(348)}..{dir(67)}\n        (-59,30) --(-54,43) --(-33,20) {dir(313)}..{dir(101)}\n        (-27,23) --(-38,76) --(-21,62) {dir(330)}..{dir(63)}\n        (-16,67) --(0,100);\n        path mapleleafright=reflect((0,0),(0,1))*reverse(mapleleafleft);\n        path mapleleaf=mapleleafleft--mapleleafright--cycle;\n        filldraw(flag_outline,white,black);\n        fill(cbar1,canadared);\n        fill(cbar2,canadared);\n        fill(shift(2,1)*scale(.008)*mapleleaf,canadared);\n        draw(flag_outline);\n        "
  },
  {
    "path": "examples/showcase/generated/asymptote/cflag.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 248 367 363 424\n%%HiResBoundingBox: 248.807087 367.028543 362.192913 423.971457\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:41\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 249.057087 367.278543 translate\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 56.4429134 lineto\n 0 56.4429134 lineto\n 0 0 lineto\nclosepath\n/Compatible .setblendmode\n1 setgray\n0.5 Setlinewidth\n1 setlinecap\n1 setlinejoin\n10 setmiterlimit\nfill\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 56.4429134 lineto\n 0 56.4429134 lineto\n 0 0 lineto\nclosepath\n0 setgray\nstroke\nnewpath 0 0 moveto\n 28.2214567 0 lineto\n 28.2214567 56.4429134 lineto\n 0 56.4429134 lineto\n 0 0 lineto\nclosepath\n0.91796875 0.17578125 0.21484375 setrgbcolor\nfill\nnewpath 84.6643701 0 moveto\n 112.885827 0 lineto\n 112.885827 56.4429134 lineto\n 84.6643701 56.4429134 lineto\n 84.6643701 0 lineto\nclosepath\nfill\nnewpath 56.4429134 5.19274803 moveto\n 55.3140551 5.19274803 lineto\n 55.9913701 15.5782441 lineto\n 56.0207842 16.1394982 55.321137 16.3762367 54.6367402 16.2555591 curveto\n 44.9285591 14.4493858 lineto\n 46.283189 18.0617323 lineto\n 46.4007061 18.3846078 46.3221702 18.7504262 46.0574173 18.9648189 curveto\n 35.220378 27.5441417 lineto\n 37.9296378 28.4472283 lineto\n 38.3114486 28.6252696 38.2988236 29.1347034 38.1554094 29.5760866 curveto\n 36.1234646 35.8976929 lineto\n 42.2192992 34.7688346 lineto\n 42.5806522 34.6920267 42.9899124 34.6825184 43.1223858 34.9946063 curveto\n 44.2512441 37.9296378 lineto\n 48.9924488 32.7368898 lineto\n 49.5360514 32.1539473 50.497044 32.6427003 50.3470787 33.4142047 curveto\n 47.8635906 45.3801024 lineto\n 51.7017087 42.2192992 lineto\n 52.2370957 41.9101934 52.5110872 42.7211432 52.8305669 43.3481575 curveto\n 56.4429134 50.798622 lineto\n 56.4429134 50.798622 lineto\n 60.0552598 43.3481575 lineto\n 60.3747396 42.7211432 60.6487311 41.9101934 61.1841181 42.2192992 curveto\n 65.0222362 45.3801024 lineto\n 62.538748 33.4142047 lineto\n 62.3887828 32.6427003 63.3497753 32.1539473 63.893378 32.7368898 curveto\n 68.6345827 37.9296378 lineto\n 69.7634409 34.9946063 lineto\n 69.8959144 34.6825184 70.3051745 34.6920267 70.6665276 34.7688346 curveto\n 76.7623622 35.8976929 lineto\n 74.7304173 29.5760866 lineto\n 74.5870032 29.1347034 74.5743782 28.6252696 74.956189 28.4472283 curveto\n 77.6654488 27.5441417 lineto\n 66.8284094 18.9648189 lineto\n 66.5636566 18.7504262 66.4851207 18.3846078 66.6026378 18.0617323 curveto\n 67.9572677 14.4493858 lineto\n 58.2490866 16.2555591 lineto\n 57.5646898 16.3762367 56.8650426 16.1394982 56.8944567 15.5782441 curveto\n 57.5717717 5.19274803 lineto\n 56.4429134 5.19274803 lineto\n 56.4429134 5.19274803 lineto\nclosepath\nfill\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 56.4429134 lineto\n 0 56.4429134 lineto\n 0 0 lineto\nclosepath\n0 setgray\nstroke\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/cflag.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmpfzlq74lq/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.11.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='113.385827pt' height='56.942913pt' viewBox='56.659449 110.551181 113.385827 56.942913'>\n<g id='page1'>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 0 57.1564L 113.811 57.1564L 113.811 0L 0 0L 0 57.1564Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 0.250937 56.9055L 113.56 56.9055L 113.56 0.250937L 0.250937 0.250937L 0.250937 56.9055Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 0.250937 56.9055L 113.56 56.9055L 113.56 0.250937L 0.250937 0.250937L 0.250937 56.9055Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 0.250937 56.9055L 28.5782 56.9055L 28.5782 0.250937L 0.250937 0.250937L 0.250937 56.9055Z' fill='#eb2d37'/>\n</g>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 85.2328 56.9055L 113.56 56.9055L 113.56 0.250937L 85.2328 0.250937L 85.2328 56.9055Z' fill='#eb2d37'/>\n</g>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 56.9055 51.6933L 55.7724 51.6933L 56.4523 41.2688C 56.4818 40.7055 55.7795 40.4679 55.0926 40.589L 45.348 42.4019L 46.7077 38.776C 46.8256 38.452 46.7468 38.0848 46.4811 37.8696L 35.6034 29.2581L 38.3228 28.3516C 38.7061 28.1729 38.6934 27.6616 38.5494 27.2185L 36.5099 20.8732L 42.6286 22.0063C 42.9913 22.0834 43.4021 22.0929 43.535 21.7797L 44.6681 18.8336L 49.4271 24.0459C 49.9727 24.631 50.9373 24.1404 50.7868 23.366L 48.294 11.3552L 52.1465 14.5279C 52.6839 14.8382 52.9589 14.0242 53.2796 13.3948L 56.9055 5.91639L 56.9055 5.91639L 60.5314 13.3948C 60.8521 14.0242 61.1271 14.8382 61.6645 14.5279L 65.517 11.3552L 63.0242 23.366C 62.8737 24.1404 63.8383 24.631 64.3839 24.0459L 69.1429 18.8336L 70.276 21.7797C 70.409 22.0929 70.8198 22.0834 71.1825 22.0063L 77.3012 20.8732L 75.2616 27.2185C 75.1176 27.6616 75.105 28.1729 75.4882 28.3516L 78.2076 29.2581L 67.33 37.8696C 67.0642 38.0848 66.9854 38.452 67.1033 38.776L 68.463 42.4019L 58.7185 40.589C 58.0315 40.4679 57.3292 40.7055 57.3587 41.2688L 58.0386 51.6933L 56.9055 51.6933L 56.9055 51.6933Z' fill='#eb2d37'/>\n</g>\n<g transform='translate(56.6594 110.551)scale(.996264)'>\n<path d='M 0.250937 56.9055L 113.56 56.9055L 113.56 0.250937L 0.250937 0.250937L 0.250937 56.9055Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/eflag.asy",
    "content": "usepackage(\"amsmath\");\n\ntexpreamble(\"\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\");\n\n\n        size(4cm,6cm);\n        pen euflagblue=rgb(31/256,68/256,186/256);\n        pen euflagyellow=rgb(254/256,203/256,11/256);\n        real flagheight=2.0, flagwidth=3;\n        path flag_outline=shift(-flagwidth/2,-flagheight/2)*scale(flagwidth,flagheight)*unitsquare;\n        filldraw(flag_outline,euflagblue);\n        path unitstar=dir(90)--dir(234)--dir(18)--dir(162)--dir(306)--cycle;\n        path star=scale(1/9)*unitstar;\n        for(int k: sequence(12)) {fill(shift(2/3*dir(k*30))*star,euflagyellow);}\n        "
  },
  {
    "path": "examples/showcase/generated/asymptote/eflag.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 248 357 363 434\n%%HiResBoundingBox: 248.807087 357.621391 362.192913 433.378609\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:37\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 305.5 395.5 translate\nnewpath -56.4429134 -37.6286089 moveto\n 56.4429134 -37.6286089 lineto\n 56.4429134 37.6286089 lineto\n -56.4429134 37.6286089 lineto\n -56.4429134 -37.6286089 lineto\nclosepath\n/Compatible .setblendmode\n0.12109375 0.265625 0.7265625 setrgbcolor\n0.5 Setlinewidth\n1 setlinecap\n1 setlinejoin\n10 setmiterlimit\nfill\nnewpath -56.4429134 -37.6286089 moveto\n 56.4429134 -37.6286089 lineto\n 56.4429134 37.6286089 lineto\n -56.4429134 37.6286089 lineto\n -56.4429134 -37.6286089 lineto\nclosepath\n0 setgray\nstroke\nnewpath 25.0857393 4.18095655 moveto\n 22.6282347 -3.3824649 lineto\n 29.0620653 1.29198663 lineto\n 21.1094133 1.29198663 lineto\n 27.5432439 -3.3824649 lineto\n 25.0857393 4.18095655 lineto\nclosepath\n0.9921875 0.79296875 0.04296875 setrgbcolor\nfill\nnewpath 21.7248875 16.7238262 moveto\n 19.2673829 9.16040474 lineto\n 25.7012135 13.8348563 lineto\n 17.7485615 13.8348563 lineto\n 24.1823921 9.16040474 lineto\n 21.7248875 16.7238262 lineto\nclosepath\nfill\nnewpath 12.5428696 25.905844 moveto\n 10.085365 18.3424226 lineto\n 16.5191956 23.0168741 lineto\n 8.56654367 23.0168741 lineto\n 15.0003742 18.3424226 lineto\n 12.5428696 25.905844 lineto\nclosepath\nfill\nnewpath 1.79206827e-15 29.2666958 moveto\n -2.4575046 21.7032744 lineto\n 3.97632597 26.3777259 lineto\n -3.97632597 26.3777259 lineto\n 2.4575046 21.7032744 lineto\n 1.79206827e-15 29.2666958 lineto\nclosepath\nfill\nnewpath -12.5428696 25.905844 moveto\n -15.0003742 18.3424226 lineto\n -8.56654367 23.0168741 lineto\n -16.5191956 23.0168741 lineto\n -10.085365 18.3424226 lineto\n -12.5428696 25.905844 lineto\nclosepath\nfill\nnewpath -21.7248875 16.7238262 moveto\n -24.1823921 9.16040474 lineto\n -17.7485615 13.8348563 lineto\n -25.7012135 13.8348563 lineto\n -19.2673829 9.16040474 lineto\n -21.7248875 16.7238262 lineto\nclosepath\nfill\nnewpath -25.0857393 4.18095655 moveto\n -27.5432439 -3.3824649 lineto\n -21.1094133 1.29198663 lineto\n -29.0620653 1.29198663 lineto\n -22.6282347 -3.3824649 lineto\n -25.0857393 4.18095655 lineto\nclosepath\nfill\nnewpath -21.7248875 -8.36191309 moveto\n -24.1823921 -15.9253345 lineto\n -17.7485615 -11.250883 lineto\n -25.7012135 -11.250883 lineto\n -19.2673829 -15.9253345 lineto\n -21.7248875 -8.36191309 lineto\nclosepath\nfill\nnewpath -12.5428696 -17.5439309 moveto\n -15.0003742 -25.1073524 lineto\n -8.56654367 -20.4329009 lineto\n -16.5191956 -20.4329009 lineto\n -10.085365 -25.1073524 lineto\n -12.5428696 -17.5439309 lineto\nclosepath\nfill\nnewpath -4.35216579e-15 -20.9047827 moveto\n -2.4575046 -28.4682042 lineto\n 3.97632597 -23.7937527 lineto\n -3.97632597 -23.7937527 lineto\n 2.4575046 -28.4682042 lineto\n -4.35216579e-15 -20.9047827 lineto\nclosepath\nfill\nnewpath 12.5428696 -17.5439309 moveto\n 10.085365 -25.1073524 lineto\n 16.5191956 -20.4329009 lineto\n 8.56654367 -20.4329009 lineto\n 15.0003742 -25.1073524 lineto\n 12.5428696 -17.5439309 lineto\nclosepath\nfill\nnewpath 21.7248875 -8.36191309 moveto\n 19.2673829 -15.9253345 lineto\n 25.7012135 -11.250883 lineto\n 17.7485615 -11.250883 lineto\n 24.1823921 -15.9253345 lineto\n 21.7248875 -8.36191309 lineto\nclosepath\nfill\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/eflag.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmp3tfsnwuj/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.11.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='113.385827pt' height='75.757217pt' viewBox='113.102362 91.736877 113.385827 75.757217'>\n<g id='page1'>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 0 76.0413L 113.811 76.0413L 113.811 0L 0 0L 0 76.0413Z' fill='#ffffff'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 0.250937 75.7904L 113.56 75.7904L 113.56 0.250937L 0.250937 0.250937L 0.250937 75.7904Z' fill='#1f44ba'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 0.250937 75.7904L 113.56 75.7904L 113.56 0.250937L 0.250937 0.250937L 0.250937 75.7904Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 82.0853 33.824L 79.6186 41.4158L 86.0766 36.7238L 78.0941 36.7238L 84.552 41.4158L 82.0853 33.824Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 78.7119 21.2341L 76.2451 28.8259L 82.7031 24.1339L 74.7206 24.1339L 81.1786 28.8259L 78.7119 21.2341Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 69.4954 12.0177L 67.0287 19.6094L 73.4867 14.9175L 65.5042 14.9175L 71.9621 19.6094L 69.4954 12.0177Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 56.9055 8.64421L 54.4388 16.236L 60.8967 11.544L 52.9143 11.544L 59.3722 16.236L 56.9055 8.64421Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 44.3156 12.0177L 41.8489 19.6094L 48.3068 14.9175L 40.3244 14.9175L 46.7823 19.6094L 44.3156 12.0177Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 35.0992 21.2341L 32.6324 28.8259L 39.0904 24.1339L 31.1079 24.1339L 37.5659 28.8259L 35.0992 21.2341Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 31.7257 33.824L 29.259 41.4158L 35.7169 36.7238L 27.7345 36.7238L 34.1924 41.4158L 31.7257 33.824Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 35.0992 46.4139L 32.6324 54.0057L 39.0904 49.3137L 31.1079 49.3137L 37.5659 54.0057L 35.0992 46.4139Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 44.3156 55.6304L 41.8489 63.2222L 48.3068 58.5302L 40.3244 58.5302L 46.7823 63.2222L 44.3156 55.6304Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 56.9055 59.0038L 54.4388 66.5956L 60.8967 61.9036L 52.9143 61.9036L 59.3722 66.5956L 56.9055 59.0038Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 69.4954 55.6304L 67.0287 63.2222L 73.4867 58.5302L 65.5042 58.5302L 71.9621 63.2222L 69.4954 55.6304Z' fill='#fecb0b'/>\n</g>\n<g transform='translate(113.102 91.7369)scale(.996264)'>\n<path d='M 78.7119 46.4139L 76.2451 54.0057L 82.7031 49.3137L 74.7206 49.3137L 81.1786 54.0057L 78.7119 46.4139Z' fill='#fecb0b'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/image-rotational-solid.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 206 296 405 495\n%%HiResBoundingBox: 206.01 296 404.99 495\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:40\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 206.01 296 translate\ngsave\n[ 198.98 0 0 199 0 0] concat\n/DeviceRGB setcolorspace\n<<\n/ImageType 1\n/Width 796\n/Height 796\n/BitsPerComponent 8\n/Decode [0 1 0 1 0 1 ]\n/ImageMatrix [796 0 0 796 0 0]\n/DataSource currentfile 1 (~>) /SubFileDecode filter /ASCII85Decode filter\n/FlateDecode filter\n>>\nimage\nGb\"-6l]5>lH02/kSF]P?@m3Ta@7K/L-%KARJcIQ*!ZA3Od3=P-bQ0$j#>#+_U)>dU[`hjN`5>\n6SRl?1IX9RL<kS>h@jOT'I:`;[[@<feL/tbUh&oV4n`uW,R3(L68-p4oK\\uTVM[H`3JlZr!:O\nD(Y@<RkE`If\"EJp\"%s2&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S\n%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/bL$@,h?e\no<Bnt2_lC']D6#_J_^6l>/06]qBooi4?j\"@3S%jeZ$cIJ'XJrMgH.OhVF-$A'B+Jfq!=L/m;a\nQ&.a%2do]P&-P91\">rWQ9#lIVIhPKZ5nF/b&C`1XXJ1GLN,+\"f#_F0).SuR9\"f?ko#_F0)P\"Q\n%\\^f1jJ5nF/b8h%%1eKmYt-4#2G#_J]NV-dF15nF/b&-PQmH[u7!+:*QA#_H=\"2m!-^5nF/b&\n-Q,D=9Uu%\"@3U[7DLAYJfk>N+>72Z/-Dpq#_F0)Julp5Z4*gd+:*QA#dP5,<Ts,_5nF/b7O!o\n@D0geRd0Cfs#XK\")6$D7UMKon0jA3Qj]b4g)=B,n85nIQY54o#UU7XdK%tYo0K\"M@I7>F;p8L\n5`/r<GV\"\"@;GW;fu+:*N8HFJ05,L+Eudig/[C@/3X.I\"@3U[/j)qA.fG;I4p)?!5nN*04AWR=\np4B2k4V^-_&-P91A1]o>402MMV#3=P]:\\j,5S+&aOIa0d*>WKXVP!Y$H[cS05nIQY0NEls4Xe\nPVFT<-Z5nF10#Y`cc8ZXCFE.s%=&-P91j@*IVDQ@rn,D@Y>VV#TN0W?0#Jfr-'@&cDHn,HOc.\nA.@X5nF0E&X]RGWYnj1.0tMJ#kBK\"'a-f6\"@8-]^f1jJ5nF/bmK-<Q&-P91\"M\"n6\"[N\\&5nN*\n00GO^V&-P:\\]>.AW\"@3S%61+eQ5nF/b&-TNO9Ed]n\"@3U[/he\"C5nF/bOLr;-&-P91\"@;GW;t\nWlWO;]*4\"$mJ$6%0!7lBV.^P^ugG\"@3T0/cHkuqFCcgoh,.&\"03OMJfr-<bbh%o<:Y]RrsGXg\n]_L$tMF.pX6'.jdWsVPN/+Fr$<ZH]6#_Mu3,1]h^KM54O\"f?ko#_J_rH?DfYY6#'3d[:G\\/4'\nmN5nK95b%7SV_AZqg5nF/b:dPo><33Hu?7k1f?kq1.28;b>KR3`O+=ON&AL_lVI*!IYgn_S6#\nRW-&<41>#q%pNV<\"K0u8Q7*:M>EIbiM=(<#`9o$-4pbfi$\\k_TS+eZWU:+ne%o![YI\"c;R3;i\nfZ;J/+eLH/Q?n/*>!`MAr\"QcD=0bjia8mj+SJtRJoVLkI]\"f?ko#g,YF.L7M*?n)G6TR>7\"._\nLcN6)=i\\\"[Vql*>JCG-<#cr$D7Pg\\Htq562@RhTd%uXadGa7[.#5iTHjS;'e1%:r=S@mM#4Oi\nZ=#.Y('IM!T+kc\\rS%QN<MK8D/<#M4X7hXoMK`92Qmrh^]t,KX58Ji-eSJjcjk^#:F^)7Z(CS\ni32'9,+nI@&\\;uLVbqMjD-NSjZYhgF@5#=?3:V)@^+(4qM+f<$g>;nu?Y$;Au#JZ1[ZdC/N0.\nlP?o8l4Sul+[jqHLf0*^\\>G1rK%!K5=,d9?9bM@W4)h,Ppe=dY6:^P=-E$q*ncC\\:JAO.+pM\"\nRqqBZ!VPZ]/%P:>hk7d-_^f2Te9[tYEWH+:ebMX2,R.\\BBe,R^MB.EJ=aaZiXas)>o4s@/1TR\nI5A<MI9.]b6\\^Xl</U';B7.<5YUP9$tCC3@Y>-2.s!l=CkRLe#Oq_M83(:$;Au#JZ0hA6B]Vb\n\"H[kCqEJ$!qb]52U8\"Wrj:CRj21);[4OFj\\jR*=J<MI9.]b6^TMiu^eRVF`Aptaj+>oo_bNhT\n*1d8.i=@J]+e=^Vt^jR*=J<MI9.]b6]);e8f>Y9nKVq;d_s1TD.RlE_m>ak*!]1u_!mT\"n;O$\n;Au#JZ5$J6qq\\r9hgI(MZ7faWSF<6cJ\\rKXpRj&U;0aA;W!ik\\'cTM^XT'LKWfgkCQ`H59kCA\nBH;1t-ru+k&^f2Te9[tY9O/WJoRj()rpiQg6'dT(GPV3fRW_Nmp<MI9.]i'\\\\<@B_9\"YKWlk&\nXOaN\\n\"u/oIJ#Jt`NE<MI9.]i):4Kd7ZAM55c(3-)TW!`P@40NG<@OJrSpS+)r\"Efd/&\"a*CE\nWY,K4lBQrV<M@nFE.WrYYc?Gm-Kr9F,mm>r/%IGNP&sMbATq[D;F[9P?r`!$2gV=4)8Dqa_kX\naRD$*`08_Z(hW_g;6:DkRZk^DFao5?ob^o@mF[eGBQ8edYm=)'KjP>\\]_-@cbo>^kKY]?`:HM\nh+m!(NZa`ecc@ReObU@rj9=+\"_rW3(ZA6G+)1GsL[l%EWa)7)$%i\"&?kih+.54cI6>7)96*4U\n#2m<X@ne%6=XU:mOJ.i'^(&s^>p2()X6t!##6BVh1+Ran^\"[T[*9]\\]sg.g4T+fJX_6Vg5Yb\"\nQ1m9bg8p!%/%%:7?*J+oMX3\\HtsK$V<AbJs'o=FpG$a8H1tP:?ics'l#[9[tLEGW-1Xer8-=c\noH+4tV!]s;U!s3aJfs80QjSF;<f'KRC4[S,_qLuSq_Os\"#_F6K>Ga`$'*LW\"']%mCMlF#9\\tQ\n!?`(YZFOJrSpRrD_\"&/8*4O'jYA&`O<6_@ra:$Hc>%;A27f&-Shpd],XnY7r9>/thu[?Z%.R+\n:*SsMB\\6t6O$@%,VW6%UpJj1g.g44+:'Gur5Qp'1\\umJ,o%[Z<NfA+mT)`tQC>%M5S2FReOjg\nH;^DcEeQ'$29kem0$If2E&Cd`2I2fe-5lsuM.jX@%#_F0I++^D3<h\\\"GE.T2<JpJh!<EasB+:\n*QAW#Ge:71f;+5S+&a;!/\"ZntK%KVV7;C\\KM61+NTnb<15:jRcJW*Q5bDu#_E*a%p<50:XW[^\n+UEZB.$4<!O=et\"nl=Dn\\)i>e#_J^_lJ=n::hoP,:(h\\f\\KM61+=Im<qN1)lOtMh'?#Bq\"+:-\n+sffipS[@<=XP?ccn2ZuEC=%+3DR6M]701u#$/X2]]^,<]*&-P9R`Li)om^!#D<7$COW$sZVW\n?;Iu@Z'&cJQ88-qa2-q9a(hs\"[N\\6:!BEMY1jWS4Cei-S,,]NEe124#_JeM[cLuMmC[0ahMN`\n7;A6jf<+%0]JtQcY;fu3EG#MRNU&m2@':9,Y+=N\\o<(.0d3_1kW'a-g!1kDV]=/\"+HE6:RV.L\n:X!BED,o+M:8N\"VR10JflJ1^f5;QW8.Sk.U?F3#_J^_!`SnmU!s3alF+K-&-P;H\"K'T`W!OqK\n?n)G6TP+C*eV)?tW(R1j5nF/f;\\,:r:qI%`\"Bc\"(\"[N\\69q>gp6E(:L\"F1fN$A'BKR`]1k,j?\nFB.52J>5u9E\"bZ';M9qWg]++^C6#_Jd\"/Q3BV9`QQ>'S35+#_Jd\"!`L76#=5<lVLforMC'uM<\nN+^VC4\\K\"0GO^V:c)lA<M@nFE.WBg0GO^V:c(%tWYJAr9b:9u^f1jJ6%ROmS'o.d';u4h63p6\ng5nIS/6BcMa-3sr%0GO^VO@4e#'>Op+iX8E`5nLu8##V$?#_Fl:VLfor@Nq$L+/4jmK:m)f9E\nd]n6kp31?oLAJ*sAHm+:+^qenB.*C4[R!?XP>hJflP>:PC&7\"@3ZOW?;IuR,i2]!Lt8<OpF_b\n5nF/b&EGGt'a-f6\"@8-]^f1jJ5nF/bmK-<Q&-P91\"M\"n6\"[N\\&5nN*00GO^V&-P:\\]>.AW\"@3\nS%61+eQ5nF/b&-TNO9Ed]n\"@3U[/he\"C5nF/bOLr;-&-P91\"@;GW;aCrt5nF10$VU^i&-P91j\n=W,$\"@3S%6'/^o<\"K0u&-P;e!`MAr\"@3S%\\I2(75nF/b&EGGt'a-f6\"@8-]^f1jJ5nF/bmK-<\nQ&-P91\"M\"n6\"[N\\&5nN*00GO^V&-P:\\]>.AW\"@3S%F\\/dN9(4/nI.aPD&s?]ir\\`%U+p3K@#_\nF0);T]T/^A?BlpY=6Z+9Mb05nF/b:iE1+8tCa3ZB,J'#!ie'6#i\\,9-C&t6\\iLn>n@-)&>YO'\nR0nPBqsM).EFYqL]682=RO]r1^UjG=El$Q(0.o]iBsceN5SjPh&C_@b^aV9!Gm'gRT\"-p$Ko5\n-Z/\"8F+=HJ#Ts-_r\"3PN'k_?ZRl\"^Snq#_F1t3+W.dpYL7@mFkf1.!)9FA)g#[<0fb4B=$A19\n^ZnO\\0)'/TS*r_;eU-u1mBn:^3fKcH3ELJ;ji@eK1/&/<oO0o5nF/bhURKZJ_3PN9ViRuJYGe\n2V&;>X'nX%ceeV?qJfk?I;$;8Ue9'SrMtc**l.WOP!1EJSLJ4NX'(5=N>;3H-#_J_<6K=9NEF\nREcT&\"25r+p]U:@]cQ5lmi<NB\"Gu\">*Fc\"@5jceKcOrp`rG].30ciPsp5&4GF-N]W`1</-pj#\nDC>WR[GmBCWX_^6&R_UE&WX8,B0d(3AM3ESjW0s]O)H_;Bn3/q7Or77JefaBJflJDC(TJn:iY\ntro_8VhR0K$.\\*sl229Gu05nF1pPqRr.&lcaBm(cR9!N%=jR\\44d=YR-(#_F&X\"er:HW+LRZ/\n-8LFBR$njGfg(p5nF/VjUP.U'3$d'<#,M3l;H+sMaK&OPH9lpKHLPpi]5.%U,\"*pAq6j3!_h/\n'@#2csZ8OSGJ63?cog^WH<,jg\\1;Hj)!N,-LYZ25R=[4MDK)-m21TGO99'=\"kVD8T7<?FQ7$6\nBceHj)f4&[F<i3Y,*4#7$X=1r*(=#gH@g5qML?\"@5&+Tp2r&eTlsc4ug>WV?*RZ6eJMm2.D-?\n+:-+U(4!U-R8NM[#FNXj^f5^f0<8K9=Pt\\8JmulbU\\YBrbm+K@au$n5I>AH8^`sWi$A+q(!_3\nE?E.Fo]\"&.7##e^T'.gU_N$QKo?_#^Dg%5:d(,3CA*Y94)X-dtt7E0PKqW@S*EeV?]'$8-]0\\\n:PiZaU\"`Y;-j;tAJ&=M5\"#m]@*2P)Y99e,1<T$9UV$i!as+W#I>HZZ_4%P-<tNl,Bj4JnpYE:\naNX?S1.Z4:*oc\\?^\"XC__>X;1fV4ZS=QIO>#VO;=;h$>^\"7=_B6&>cH0GN^h<K+QN?BqeQ_[9\n(MZ<c3Ge/-8MqLF@$T?sZ,q[q1Fpc.$'>gKJRtVQpI]<?It!<Nn0\\!*9_rVqb.L)r\"O.!N*..\n0NB3h)loWM?3.2O-nBR2WK(h23<tqo,/@0+M!hBsVKi?TJtRc(JPmNFeoD-PPsp5&q@FZR\"i(\niUALL/L+],0LgKGp)VQpI]<?IqGWrTY]T]Auh;to-qGO8Qu*MrV:XecI\\Psp5&q@L>D\"XCMY=\n[A.]FE2cYQ.inHma7f^f#e7PPsp5&q@NU1\"Wb+)D$<3X;Wd`o'7AH`&dF`G,/@0+Ln:f%5$WZ\n?+@o!p@k&Hj@9\\X*?n.'7;tV<<$8dud\"ksB9jO,l^,+QB&D(WU5K;hNH9\\\"p6.b\"N=\"[PW#_3\ni*J(-000('1;t6XUWs6/`/25mS)pDG8#>.2LRe,0Va.au$n5I0cp+4CDAZ:fBD3'd'8S?sAOC\n_dFtC!)rP6YR6g\"gBrPnBtf8?<%Y>V7@7L;Q\"bcJq@Ha4UX6BM5ZU_%PdrMK$Z'SjAf+3Q)IT\nR/\"BN>kaQ$dtg+V$Yq;U7X5upgK<>J<V^pY\"eL;?id!N,-L?kobqlmH#HhV#PEBNp%hTV<a+W\nI3-AXat=@_@2'r9ERu=LVPBA#MDo*Q6N<:64l:YS<Pjq-VCYZ[ME;+_,R94VWpNV's*%#.N7k\n=G1]hlr[OJ9BOG&&0Z.9Jdf<>>+g;=)d:=^FniCrU'pPW-5uTVEX[SUc0U6@&WVR0.\"mZ^S'a\nnS>&7bt+TJ\"V+%;]elAf+3Q)ITR/\"BN?\"PY=LJA-M'Go'u#Y:!pbb(1Ds6<2K\\nl9eqoX@&2N\nBRm1Wga'2'MP_g@f[_7j0UU!>^f5^fXFbR30bk.Z'pO>39N*dPX[SUc0U6@&WVR0.\"m`C#.N4\nPQeul^@lk^#7JqC#o1dqN$>(dat;jdiWWXjY\\YRYHGU2fhhh9DFCSe\\I:nuJA/'Feko&S;kRA\nK\"sV4p4p&3ZOQFL+!uH_[>t5ejB\"(dM*.,CCt0gj%OT;EC?27CE21,`\\]u\\Pp$+liQ%,Ij;%n\n@qrE<.YRW<[70@'(\"]DBaeR=o@JSd!U$l@#bqP6N0B@EN(i4s0hg,DQ9!Z3+X@.UW5O%_u06<\n:lOa?h(tWl$Y^\"5@\"4):\"JGjO@-9.9XX02-\";k(l0\\=@.UW5mn?0FQ)n@q5t:.;4iIKW>(dbg\na]&mlMEjlLYDagSa,.XN.g,Y6aT&h-PrqIQ\"kGF8Cd-D^LoG'<X<;:9mA^*3'Feko&S=!8;mk\nVK05r\\@UT'0HVr\"LapNrY;f.:C8pWC@uG?L#W<W4?R;\\r#)s%IkjrU&ZQ\"]r5(r`;XlreUi6J\n[Ii\")VBH(+t-C;+:gc6![2uKm&C!2'Feko&S=!.;`+m()P?*'6ikDcNfMm9c2GL*((OSrIcn<\noaM4bTPGd7_1%pC`1'C[gEW&<=X+*Gj9[$nIgsope:_kr2LPW`F,8aIC[U;n9^pY\"eL-75U(P\n6D+;jB#jnsY/sS,k&V;i,#EfA@iNs)ToI/TXuDFP3o7-juN*6c<C_)BuHg<^CramA\\)%mT]$$\n:!pbb(1Dr7R&U?fq?5>`3XNHr.UT't+l-c\\A[Fdj`8`ViXo;052BV7@a](*cWB_;$:oca%hgN\n2PYHb2uQshSDnc_lPhU;.eN&Ur6AV42]f$Xf*)J+%$Z*=%+7sq0P_6AO2eI#8K+-Ksff0(4)S\n/H3W.LV'4iDZfSA<Nqp;[&4/CGeCNPHoGOl3(I&o<F<$9LT&<(\"CJ%n^UQ$^TVuJr&?LFb#CJ\nn.3Y]_:_*7'VFna*X\\f2&(!8:F#LNhc$_*3\",\\3ne%'+hMA5BIk8'gYiSe\"'2$s--1onG1keZ\nsG6CW-Ob+!$i^G`k29PN#M&+B^GLr0GsUTQGX3@]!n[&nMMq^UGn>EBr*GKTV0mVM0`Ka#_X(\n'oc83$<YhqeUX[mjh@>Df0(4)W8RTPNGIFMQtk*re.>W$U&r)K7j*I=eM+sXIHkUS@]JTM%5b\n2em$NYL75Y5)aK\">/N@_0Dq$NUPFl^>;UGg!sH,'oj#un#[p\\\"HumeQ@#L*3\\/EQqmMWR=(3q\nr9aq7C6E+c^Cg,kLPI.paSqH_WG>KR4o?b(fl'H-;]\\JIp_qtp`>$\\PT[0=bZ#7B>;CLr4edr\nkeR8*Gq(8eh@&b=K]S_B#_BY@YQ7tu'$Cd*!AAqLmJRJ_`l@rImdO\":YH@B5qI/*E/67HM<D7\non6MQ*I:aap4G+5a'#c((bl7[,K'&MbV!d&[ST6=aNhn5X55_WG>K\\M4hYRUHB$l@<s`W+s`O\nqmtt.2\\%9/%7m_QhF_*mj8+ZK;a'daa[*n75S@=+c:jMp\\hM(NiN(IIL!@Y!nmnat)ciZFWa+\nfOqtTCNIGOMRl\\=2[>2cE6M-$\"(n`BZso'FY`WH*IPDZls._Rb]0=FMq[\\AIB<*SE3u#^O4ga\n:>.<]t^at5(#f_TbK)@)XM^LH4dlR[E4W3ik=tsPplf6q>?ZWk#GZr_WG>K3AVBZj8k1)2,K9\nYIp_qtpqi[\\V1DOgOqKnbZXp.-M*E\\Z@2P>1)24r5'a:bEq,g/d9JllP'e:)n)YO*DmeQA<+Y\nfhs.)k3,me9m`BmjVD]?BLp;ajk1,Ie(J<nMf$UBm_8!NQQl,>aAGIp_qtpo>PnVGns4@kdcl\n!NO^M)OS\\0o\"\\5P<_!Ct_UqoAI&s(WVA]K9MNU%tNI$(]pO)aN@nMVV3Y+M1Q-JF`S#JfIB@s\n0!<I!8un!fA*'Z<tG-*1:^p?oWg!irUB%od)EaHB[+eYr6:Fao0\"2l9]4F1j&@a[7aLVTSh5^\nJXHfC3\\et=e/A8<Q^tR`<t<f[ZrXOolp\"INj>%0`6k?(s7:^E<opA#:m&^@94kZa4hn2t3;cg\nGWoa\"L?AOdjr^L$G<R)uj/RMr$REB1o!JA8>8ks=Zn]JWt=nQe+nJ&qseHf9BZ\"b`&[;5/\\C=\nN.X\\mN@Ad$.jscf4J]-W?jk?H]M`9U3pBXlKU\\mWe&\"%BJ8VXnoI$G`@<BMEIH-VjCoZf\"6u*\n!j'O;?>?G6kkTY_Qf0H/b1<psk0^tD2HSOXVFjcb-&plGgZ5-D^`;06:=.e)lHA<'+L5H+Ssl\n*63,6p>YlIhd,O[lTlMZ.erS\\!VWR8k0>b4Ff;qYDar_+'teA\"lOOt&asUrOJ2el$[3UM44<p\nG\\^P&XfUlWC[uCW_Bd:RqJB4p&;\\nq!cE!cI8\"Fd?H&DcZ(Y(bn]rDWUa;k1\",*_Xa%/\"2QSs\nRq1O\\<9I0]e$YiSZRPec_OBB.ejU8\"V]t^a448bO17;6N6V:\"-M^1_8WpB$m?;[%VPkPrufW!\nK8X0F@P0<QeB&OB#pPTC?:0<8R!hrReF;mSco`#5M>lWIS\"=<I<,3o4Dn_cCWqF*?9MafgiLI\nm@J$L4^XF,d,i8Hq7lP\\!`LZSiSJ']-V3BE<E<Y\\_9F?.LmTY82)W4,O4i3uF*\"BJrhRP5^oE\ndmfK#WC4hn242Z2-:T>+',/T`&n\\`Nh]F?f%,$)V/hiL)9`m&D=AeV7(0gO*H6H2MO8HA=mhe\nC4UK8[L5fM/D!FdmcR?QVfbd:;D;6g#9CeqrBTqjp5ZJdD/^>(MV&lo35PM0m8F^W_opWV0FA\nmQ)r[JX6sdf^-feU]!E+H;Nj:Ch07cAiAIj>+t-^I&,13jL<nUQqVIGU;e[T+ba>D?Q-ZnVZ\"\nC$!2[sjukD-#t[TM7WohH\\U/$WO5Oj1orS<J%i9VnAW$PY^%D;85Vf'sYd*!OU`iP+a$n5k-T\nY\\A&sig&KrV:)@4og5+n]3[;D?[Q%2`C3rb'm[sJDgAHX9U06^eO]^=6uGAs@F^(V7i[(QRhS\nO2a):Ie<+rNX9gQ+71qJ*BGC915^2N\"rKo&k\\j![Uc<%Z1$N]^5sdnKSuraNY7(RM*j-D4R2m\nOunLWfbEd?^M0_\\le[gZP8Q!&+E9#A]pX7WQBsq7ZEUI:fnH!TsK2)3cJI#FSN7khtB\\j8]7>\n,UN5RGQn%f&IrTOZqWh#d;sB>kpBr2f\\\\2(Ef5E[Ng:6j9r&:6qq@APZ+s9-n-TN)jA?&N\"1?\n7XA_Q!qdAl8fTqU$]..f):*)GogGCTuj$P<7WY7LS<5<Ls`bqK7Ch$qD!rN:W3l$EK/%#!$K`\nV=YiHB9E`['f(;*`LBh;o#YN+cj`u)<:kJ2%&d8gqGP^W1m?')nH#Mm]1t'18n;.(AXSnG.]b\n+s>&/LXTO\"?ddKM(:l6K;fO9#ch3$qY):snIbo0B^3\\K%/&EQFn&6^)6fVR!g/0\\&d+>>h:^g\n\\\"Z'X>\\pB@?p(+JYL4A8Je>4WN/]M63]-&Qq9_slB+R<RT)^B7A#@]!u9E>+f7hBqBuACfj&/\n=9GRQW5Q*me^N_!@[N7qVDd7d3RAoh_Wl-/g0IH$8;]u5[6Hl5Ldn]=qE$eS1:snIbf77VTQ&\n9BUR6F.3@B(MHqP+(gZ5?Q(Mg)_?C)-/dV=lZPa-(OP.T<2_NE]E(!4j[a,uo4edHBHrJ1BIj\na4!C$+/UOIUqc\"a/VU0u7(+CANn7=6_YT1#D&0Ro0th]AeC8Q:6<0:X7B<46$nD*9r)sOEpOm\n\\351i%eN3&VPR&Yt\\hZun5*W\\p6S?49-CKk,!nMUd(S$$i^8I),u@&ag=Wr+<O8Q?0uoQg4K7\nHnVmNm%eFGt'B_.QW7ti_mTl<oYqF+!3W2C<\"e(=M_#4'0k6_8aTH!`bog)P)_=5X=@T:9rcR\njl,>nVT8,''WqZ`a(6:@-Q-H.WWN=+),d`U3;m!pp_!QiHf60pgdkWdTI.>_9(O`/-'pEa0WC\nF+l4=OlbH5TQ,oANJP&HUE17=gQ>=*!C$CbE+<VM`7.!H[&\\.b2S,lGtX@p\\nW6q_&7M;5Tf<\nrC-9IJ%!`0VLhh076FL;0W>D0MEVQCR8fC57m#TKNB^P*RoFPa(hUWa\"hjOe!`M)f/]m\\?<N=\nYO@H#!TT&9@%V^DE[[AogeqI8juYY)hZh.N`\"X=@l%CeIb4<:kJ2d]D=SKh5kSAR*&NYnDP_]\n_\"-4MlEGq8]EZ`?);ja'j@]=*I!$6![d.8;o,JS<;a[Aekcr)nf>G$lSgRn_tdtaB]o!J_c5;\nQO^\"t(9P$:BRn-MXhHYcG<Af&7mQeVL&<]V2_,R1LWsVO3.`t^F9rb:gU<g`DB)P17BfP:RL:\n,?k8a]CR6lm>Y9t3VJ#+Cb60]uiDQ8QgsUroE0]t\"KSWjJ1i7nc?rJ6GrDru$Y>rmn.oGLI@9\nWa64nY=[h#XBgE%R&\\.[o$A\\Q^\\G/C];l*63K1,*bA1C;(9;3=B>CMOPOs[1aN\"9]Q%c`dhjm\nK2mXV;54+-KDQ#jGLGSe1q9qQ0LmhLR6jIZhNWTL\\&VK>JH<#uj6Kk[BpKW1>=<AE%LT-FHj@\n$85Xe^:-l+V:$`6=?f=OlPqVPH'VAidY0V.IbW6W@XEuV]'uZnM]>99_J=\\Jb%h%VQ,ELoUf!\nWHL!'-oH1E>Wq>3BcbNKh-Ktn:NDNMa.kjtdaDq!>WMiD=8GpFkN5kBjQ31&g0Hm3[q7TjON@\nBo)%&Rct,ThK10M9KG<h[L46Mdn2,lM1%PZ1eAB<&(<n&0M902ng*(tf@j-N5(dX3pZkQAJ2p\nf\\%\\eVD=]!7Q'^1Wf[B^Oi<dHnlf+_C/fdbV-g2S=p8#.)GJR4VF!k>Km9J`T\"`Z\\W/)DG%=e\n5s@+/NQ`9X1(QZMB^3HFQS\"K&K8?sBMV*%[JW,s:kmd(_oh.\\NbmMFkT_O@!1s\"Y`rhaDUe%=\n&(pX=/VugeR5C&N@Q$A@UL[T$O0NiN%Su2=/nno!DO;.9[Y/_6CGEU-rZ7R>:QKO;tY;.doXg\nYnbQC';N3J4&sLJOJd\"hZ2W7;I+S'FkJuQcP-i9&VrCV5.._r'I1.dOoC4n?b.tO[_6uKnlq8\naprGJ#dYi7'/O0@?R68XM!Y3H93n)O.3H/OjM4<=DgF>#!6BV@CdBFnmNF<+RMBoT#nQR6$^-\n;dcUNOk]BO*aLlio3k'd%Ao$?kL7WG.lgP]Z)B`_R=^WX/u.,n#,V_GR[*0\\<N',%:Siht9VR\n;9`Cd/G<13ke-&J^Xs72#mcTZPg\\F5'thY1fr^\\ET3N'-3)P3;i2*l3k17=`MpSB>HDlk_LrM\nc?iGh5]1LGBPl-&*+:0.S)!B<KbF<pm\"E>J85*S9r9[(WI-CbQ\\SWQRE@0ZJZ7q`RsdlY8?Yo\nsB,+fS$((ih\"Y%AG(&CitMgU7dR8cD`4e04>A?,E[dBMecHa^2MWNo;7\\M0;rl%*6BBPSMBF=\nPhkX)R.n@.1N!S[W$-24+M?\"Y%AG(&Fk!MgU7dR8aDT*^+jk7/hD#WKKA0I\">N5R7cA7WgtC`\n._#OYH!/V;U&7NW?3RY&AG(.QK2pH0&hk&r&==q=A2='oPNq*!d?.3oLT^5BPq(8Al`l^5pLc\nX9^?V[ce0I8=\\]FbLflM2p:faT31=]dq'j+HF-37%2$;m\\3s8KVD'4@hbOid*Z9e$3D25VQnA\n<Tqp4[.SI]k3XtWN72UY4)>fpud9BDb6m!o='@O>,-n:.cjj@Y6$qJ92#MiWf9Tc<00GM^02P\n<ps;BP-RZ`0nKNbIO-ru-9JtIOl.G(mpsnUM/%BoK<%b4J,ZD[A,-38>V7Jih%<c$Jht8G\".Z\nR)H`)O+)3ge&VA?N^IOX#Y?O-rrmT\"R.Q]h6WJ>F7Mp^X&h8#?FWgb42dR<'H&)4QMdmMH(dC\n4mc1WoA,c-^;$oH'3J6SPOs[1W(@/iZ4P>]KM1@<qNh:`,`Lg%YFAL]<OHX@m<EC\\Q`9m(Jch\nljq<_Q>QXT\"fOrV&B'in!Xo(D;7hY0f@?_?6IF')Em9[Z#\"R[C$GK>:GUigG\\J@2u<t3E2f6j\nMS0j<1HsrnAOXGWJ6CrPTr;m4ITbf.[T$&V@l<H,up+#FkJ6`-5H?&Fb[j,#7K\"i@9'E`8ai$\n]EjEOa0U7c,IJ*%&^CR3!)JP!,nqk]=*4g-%k%^HdQE7*M49\"s7p.NXtC-m\\_#9Y0g\\NG&O<;\nB$5<gDl0AZNU?W[4M\\c<_ej<O8^@<66f2iVG-olDn9o3!%IZ)fL8+U.3kqT09bV[`WpUD^bn&\n0,(3$/lboj`%&NY^JRn+Ed?f!WUc*JQqC>W/mJS:U`qn9m+'Li2p\"\"^RT7o$oO!*8MA<'gVLh\nBN.\\<X!PZ345;@QuF;B>SojN_sE55k1gqLd>%X&0r+IM72U0U:C2[puH6/[)^WMNWH73E=iY7\n$[&S<>[ZoWp7_OT9*ttKW1\"!\\j;\\j<`OX:MA<(BWU+`kdbUn%AYt>p<Iq,I%:<^Fm<OaH<V:h\n^pimM)Wq-/FIuL?N[P2_A9@6H+r2,&2W@0'GZDhG\"d>EG@X3bHVd;=G^s#RmD;up$\"s-W)0ai\nQ3Ms*Z0lN:kb+eYctfK#HJ)<Y^uOamdh-e]rARI2*r6Q1r5S#Ya@RgF]RZ/E6SnfD<9^UN4e4\nXn^M^$G8qfI:[Nq#29p7Q`RO\"=+?+)$@QHb4-PkPhKU8&TG/fs<+P\\L-h#'[Wk_S*L9G/dZ$-\n3D$t)W-nt,UqV9AftnmT(&2:<TV0NAULg9M'u8[[a[dD9UnkAKgZ_q>,6UT)+8DjZCs;h:pL`\nL(E;p:G=G.POm#i=Cr$*oDBKA5Y!q^I2Pt%gcV1Gs=W(<JW#%.]+u\\_nhJi[<#lo<(02(,up_\nK[nuCk:s8\\m>HCZ%lG1GRWmDEV@`;;S.Vgc9g:?fm*30E?'n?\"VNdPm<l*j).eZis-Q4n`lXK\n#E'Se>dh)ZD!m.XaLV%)\\]]9M[nX;]/*\\oPQr@<R#Y(>6T!a<@qTYc1R$p-75`kJ>]:4>e6.<\n:^RnJ.Pc?tpYKI^'pu!o_]Kk(4Lt2Y9:sNFPDV%o.rGf/Xq\"YlJ=`?AJ^Pr80GX8[C,?*kZAH\n(bV)-bOU=N:PFVT.oWlh8(&-3NIWYHlF5#^uW'IG3.nIds79LYA,`.8#7R8jtYr<K3W4FA*3l\nGt>+5C<\"GoET%&]KbOZO[lOgg8@+j'd&C<-sV>&167$SWn(-XGnk'Z<L$FhC_!\\L`gNY\"9Z9]\n*mG#HVp0p^<jN(W`WX=M]@&fU3[l13l5#f5d;uL(2g+#lEletV8.#t9-kN'^$RLP4'jWcIE8V\nfEBjr+*F<3*8&U+&pTWg`5S;t23bP.LdmZ4pdu1@5dV6<@0<WF??eaeX5uGjq/rKgONQdo@\"g\nJ5tRBlmH3k?VM[L<Xn%0@(j2m?n1OTFk\"Vkpb+;N.Qhh0'W>D>c1QUdpf=!i\"/_s2<0lO3MSt\n&JX%X8LWWH*f)ud-7[K!#Uqp?tb2qC<(4RkqMd'<Vo2cb'[WBrFqLjK#-.^.mW.[I:3aR+uQ0\n<R'q#uJI<l8DQqPDU^d#R8ZGJuL;#A#^bDmdA`4SGin,<Iq-D%:<\")ARJD-YfaDe.U:tOP`D^\nMHH<O\"5FBUZGdE:hAEAi\\#Z**/Pp&u?Wp2K@eP%HE!FRBmeX1)(]N#-4MDkC=7i+UZ<-\"2&W_\nRJLAlZ_u>JhrS,7.%TF8]JrP:3E+lH&AOhCHVncS%sm5dbUfKb:l'c%0W:FAu!%<9=*]<?5\\O\nVFebH$`:4+PGr:tQ$9;2;oKXRb9oJ<qnq03-C(OiqD)*64k\\)a$JIHO9P&;D?n.?gUSNe&P%5\nT\".af+M;uONY,s/6KF1:qM!ICbd5HUrg1)8D#IFY-^\"&h4Ya]*>41Orl535]YhWE+1599Vt^=\nQtq_q0#Pa.U;3MR*+Rf_,R9fQMHE!2bY')^U,\\?r`f-3ikeZC[]6p]<%R?**r\"`h:P!6j9]_p\nJVOC`3!!__h!2bW-r-\"9=AVY(^N(29lOrIGJWPHjkU\\ILti[!a/!N%WDZ##hcZ`!S\"r\"c_HG\\\n#(7N2[`C>H=cf9\\#U)j2VP)ZB0mA_R6EG;ahP;]TPn:kB$HGW7%J^0WZJV7sq0`rM@7@R*%O3\n/?'9/'J5t%\\,80YI4Fb&YqYc`YH4bl0pO0Qa,_$1AK_Xabr+3Tq8+U8<TrDb/#d'-5+=,<1pO\n(2Y\\GD`#l'O8WA:k4oS3FD15rk<W`j+OkIWD9]);-AG:R]@Is]uTGG_*/'i#eEKX[ts<1-7?W\nC0lRI_9&<$V?_#/kir>Qn%atX\\Ghh((/WI<?#(0^^i,abn.Zi(6b'+]%>5riU!PMdi\\('1]](\nMVICJJDcLpDrRWd$P%=OdnUd_k,\\O-f!;5VbWh@7R0r_O[dnL9%Ni_6i*J(2+L&e*VR'br?/k\nu&!)QA)c<8W#[*;O(*`N#Ytl92DP]#7Q`f?1CJr-6%W(/cp<g_*X^9mO(F^f3UT0/9Fq/hIcb\nOO_4t`<^TV?n.Wh3&B+_QIdD$7@dthA0k4iV:q)\\[:Z\"18bpS1G#K'OH=Y8coR;[s<CJFgHX]\nutM5eQ\\8@!^BGem>pdU=U<]6AVF!.q2e%:=!NH\"`o07TKn\\k6Y0@57Y9Q9;)G@rJc1Yeao77'\n!U^J;^Eik'%BY+lmY,CX,8U]2su1WfX;0:Xf=QaWcsN',X=3lVK.bF;gBpq!`Odl^42?Hd@eL\nJX9RE4*Lf0@Er.0WUM]'(RAi7:dbb=(ANatZ/4suPio,Z?Bqe;om<'3N;u*i$qTr38HV?:S,m\n:5.0U78IR;-UWX1k*kpm4^E^2Un<0NFe)>FSS:8IG\\lVW,[3@G:t&<'sXt]6hJ/WmVQ1,A3kl\nb^MC`jY\\_lOKbQ1*e*<S/R\"o%q/0aX]s=Y!``,S,\"]JPsT;gtQ7\\KcB3Vh!j2Vi@mX2%\\cL2U\np,=gh-\\N2k:h[L4[0<fF+B_%i?[Ae],VV4<;X9_IG<<tTZ5!hKTK.@S\\^WS09Xb#H9T?<-:_T\n>pW)r`E0+@]BYT<3Hn$b$#QS2)0*k,majS$8MIF:OIWRcj`i<Ph`'TC8%::X$%Fj($tqXWcq.\nuK-e<4p/C/Q\"!B=q$u'I`@OTVrFk02OEfu\"d;t]=PR\\H4-^1G<OlK_g/*A<f&65E6P20Hs9[L\n,\\C@eaSs/kY!SPAHrlX4%4g0\\4--:0)6m_;6os?[Q%2j!Zt(</JKH#=*0#=jb_9r6/DW9LZ\\O\npo7<^a\\aqW1)9-2%Ao\"-$`5+tfqi4\"9]^]t8s>,TNG/@aej;[A<%UpjnG7+Mq]u*n<\\^!lMjO\nG$;^DlSVU@j]>FJ`,Wp($8Hh\\dr.WW<$W`8GD<E1GG;4uXR'20-:G\"b=@C\\R8^.u>]UJZ69m5\nBE#\\\"EgciF#7_a4h-Bk<8Df`DZlqX#g8A\\,tb]c;_@atoEQ>d^<ZSRH`U38K2knq;_apH;oOt\nY;pc^H%ZaW=dqZ/i;u%HJd\\N$J7[)&lC;+LTa\\!5L`-`;fWB*kK4p\"YCcCY$U5Tcgbd1h)B4o\n3NN``0O7l?Y\\*o2\\k29Z7+aY$H7DGQLPR8WHJ%[tIa[;[.M40U6:JRfDa@lrAt]BNh>]/Q3P'\nQ.W_N;qVQ^9]\\$VnrEh3-ojnF25Zhi4@<8P;I/`=P:c\"Jm*-#E<Fmm\"%odoL<6+etq';=WP2)\nI?cEJNAR*+IY#=fS+m_+d)$O(\\4:\\(.D_q!]b<@mYTR*'\"`?n.MrCE:$I,o+jqC.@S!ARC_fU\nUF*d4(_J-`)JUe3d@n*PO7,@<0?6qWTM4H\"I*C2R*+IY:Q^Y,l*lBPYDIKND$u&[Kh5h\\=1^(\ndZ,B]_f3\\YZ)%QjDjUeI=<Vi#G*D3m8i$CY]fY\\M>:\\Bk%8p/kfo@/=e\\nY4[_,TJEI,I6t:k\n>TTaqn\"$NRq3&b,`<W^4sC=;XOKT[*9pVW?g)'R<I)!Xu8Ic^1++A:KF**@1L,qih\\k8!N*/`\n-&u/r\\lbM7WT5Ht=3?r12QV=ts!Hj.;LR&;X\"&UripE]`:k>TTas0j0/R]C)M/$R$_^[@*YMh\n.&<,^M37MEh<&m^,jim/CCQC2LYA(0F\\$]=/f97J0?Q\"`)QW.i@b,h*eK5/ATQ_GlR[FIrLbj\n0;LqgK%>:9I0on0NCgBAL\\U=_[9*!Ab_:N<\"W:^N-lrNjAEbDLJ+nr=7&ZrJ?M\"tp`\"d`F@)G\nJ>A.NH+URUKk71N-4[YVXW@YeU/Y^-`<OPS$bP/CG'ppJJ686qp\"06[a$;BPmpl6\\$KGFn>mt\nj9j;eF.ag:6R&JuM.cAVaGr.fJ$KP,W\\^;Un8H#anAX-i_@o;J5^9n,Jl8)cMltH.3lceN7SI\njiLIZHYV08b._Nj'ppJJ!\\r51UW3GR.PR-SiQG\"jQ@JXfdm>3ci_T7*W0h>S9s&UDjbP4Z/23\n@gCrBg5Q`fm+&CjJA/Sr$qSJ'4rYX<oi/T)\"1[G0SKV>@.&<`OlJe]db.3,nWFB3Tln9GLLbQ\ntgN8f6XQGe_7E=.bEXoI,ab(5J/R&W?d8H7&s(DOn]SP3%CfZrccP8_CD`?&5-bKJZ6Y<6?,\\\n!,:FdmC+GE]rP6JLrh=mXOD'fKa%CJh<RLf<bc1_Cq2JRl:L[+NWT#EV;m?i5hn<dLRO\\NAN/\nh33;KuV\"(R$=PFh4N$HYfRZ\"clc_I)R8[@/##u97K%[$M75)jQI(P\"X5@S;Y*eRWd.Sc/(I-_\n3t+9PL07Ls8H7eh<6]e4R9Pe:\"f@0\\#Y[*7IQ/HY.MA0TflSn&R7_0k8IhMPBi;A4Di]th;(r\n_,%MmX4jS<;LkD,dj@;2Cb*N!SWP;PYV+A,XKhWbX#F'JF.n:\\WFMRlB1.b4?iC-#j)jhOitj\nlhkT+.+O7i\\2)V>%)RRr=r6K*>-r#E+^Ys8L6BU-B:YDfqK^=D)Yk&>*pG`K)FGM&SQH&/XQ#\nOhb5oBjYbF__Z#tG00<<&Pg7=@*\\eYtVUN(5=<I4/Q0R^8jj$t.adGc9*$%_<<\\^#\"IPB?V?Y\n(_3,6GIkN_Iu@;Q[S=Ubo(1Zqs;\\p`$at<@n\\e+7=E(a?O2qb#1$\\.;RTKf3`o/735.qr2,%d\nWj6.b&NI>-;_(-o2a,5ErPp]ocq=!!SZ83AWLEOFB\"edLPsgb&MT\",]Ic\\BNY;A<moYdtSA?'\ng:C5&XO-<6QO$4.Aq,C`D;Ej_F\"[JZ2S77ELMEAc,o)l=OtIPeh$2-m)B^lgc=Z%Io8'3+9F^\nD*OP?)c,NWbsXn8B\"OcHcdbo#Gt+f,YUY$fkI--AEC[-nk(CnXr)\"o:RLnrq-toMeLlofQ7fN\nsICD\\Lr?#%5_^El7fR'HcWANRhrXaB>9ABKSEW&<=Sm<ZL;b_bgZ7b+N9sg3cjjR)#G(t%a9(\ne3I<UlKWBhsT^H%N$$;C\\Q4)_YIb:Fa_FWT9=Dnii\\nWmfEDr^KbP8tKO0#H]teAK)!s:fU3.\nR*>b_,l,fH&\"P'[jPlZs;pt8EEjhu_9GOp4^&$]o=&7)tm\"SLTPGq`\"C=fV<T:Z%+4.lXR`Df\n1$U<u(IYhOnt2,cN(<&(H&,:3<l%Ab:'Ps!):$k[8dJ6R/nZMPerQth>DlK)l^nO`B+.#\"Wi+\nY2)5h<P\"XLT+HkMV;\"8Zi>L<d(e<9'ppJJOu!i4rfEC&;\\`_=M4Q.^*\\0gMb1G8@jcJD$'^eT\n8<38Vg)`;1n-LtjKC6Qc)2jqh&;I/==S1Yg^'7m-OV,R$J^6tB=ha`2(9N?a$@4E1D.'g-g.]\n#_%6_D\\e[\"Wk6a,1\\1,#^W9+4fSHWH:I^],FOl4)pX&chkn.qe_\\)ESUd2Eb&';-=ikKj><p#\n1+B2;10&+d\\s??mGO/^MXK%peebWl\"H0Xq-k[:DgPSI-A[2io/0s\\)p.]#]_5E*UrKnA97XWl\nDRq+U=q<9.d#;i*+d%9(pijG_LmR^p#6kP[-4deHV,BI'\"3k0r++/D2i0.-'r,lRE$SWmDWa.\nM,Mb8uGir-%Mse;/T(H5&\":K.gr5#q8DH/%c'srK-pACSQ[Fd@]F*u^QCaXZC^Qe6?D9*B!..\nKQ.9>T`)MJ`>JF#V;iQ!Ip\\XLKL/m?+WC/RCZ_tT<`@4T[@\\5^/Mh0uQPm(*W4h<%mU.kE2NZ\nokMdP7$HV8(4U9GKdF,upoTWG,XlAuBj`mqj!!Yc9f@PpoFYWQJ,a9LY_aaJrLN11_pUP:D>O\nT-NkN2.hR?-p1F2^@^S(cTM1JI3=uu\\(=n.U&8]`>'JqfLX*7$QH\"F&nj=HX7tU[i\\Rp:fqNL\ndiQ;j\\EUdh]uc&%-Se]J_h5GXRA1u!8,WCg%e9Jn1m\"dV\\[VG-)\\;RPqYiBjm^8#q_a%h;+,P\n+-e6NuMjY@WC:DT=a9X!=A<-R57k/V36<d^%*M;j^@ap7\\8j/&Q:P+<V^L3ciL2iOf:`*V13;\n'R&Ui8_,Tc2fpW7!Ml_l)b0d#BBb9Cq`ZKPH3&6c;g`qmTRN&\"n7!:sAB+1>eTDNC-8;e@YCr\nZKV\":dAlIJpF+07'6:mnjj!N>c/Or)ThYb.\"CPR7]kGVPhXgWCg#R9LY_aP>snZA].PgPA6=V\nT?g@mM8,/T;_],NHTN!:Q1-50DEUuMS*ARC3rBb>3Egj&j;es\\Wt;j?Sc8P-XXX^UP1(-43i*\n?U@&d+(*)k+%A0o>%Ad_]:9VjSFP^P`j<MtnrF;Ht-2\\Ig0:A0Z1M^8mOnoG.al#0NV;csWDH\n*)RG.3_rII#*0AZrWH&'d?VWe\":!G<Fs*JIVB-_<L*u'.e_7)eQHI!>8]-Fr+BYTA`%6f-<7G\n<F:$blH\\a@j,$]6Y]s\"Sei;Y\\-0%aZ5rmIFZ#E<M4]\\V.+VUCkP-\"AGi0M:?I0`<A+L!Z+MX]\nAHBQqBbFHq/9?-j!>4U8\"'5I>eJ8Q')^.A?*Jn`KPYP\\/[sOe\"hkhp_,e\"fgDuHLLXjVGV;l(\n(gs@OiUU.QrM11K<\"UV1RoWN<ks+9.;GL0eF]2\\Jda\\Aq@\\HI$k!2t99Qc5/BMZD1EYqMEP=k\nK8ThFCkih8i6A`Op=;cu?$j\\lD]P5UIP0pOMYCu;>+,QC?hOt,QCKW\\:Pb=@u#/?;D8Pb]]BP\nbu5qAZ8<r`BNAR`X?M>8r'Bf9Ib;l.WPn#dCY1VbHM0uq1HS=WB/Ko?#p=<`s&@2'`:Iia!sZ\ng?F9GCPcN0$??q*QC%+h3b-J%9:J$Bt7K1XY9nB:d;YQQ9IGj]J[F/J58!>FnX*0qg5LW^#gE\n/6jc4$(t?NSIdYV2lBs6dEueG%'aKs[csNIP+gh^T'B>09iYg1[Ve93n:=V@)Z=WFJUB3olL%\n^f4mEX%YCK9idD88r'C1-RR%6HoerUB6^A1k[MUHiN\\.knu[R5pgj*bTU.%>680,^nhD!J\\f?\np5T&2A<SKD34Ps[KNUBtWfW>`fDICIc>Zuf=lFJX;WrBJD&DeeQtk\\WN4AlE*;%]e>X291iEW\n/*Sl>Uc*+jV+8YrS_V(8L<isku=3kIV:LIQlU\\Q:=FaiO2(?[O;pbOVTS5$5J==lgA,WQQqG(\nX\\V77\\Pm/!^6*'Z_M:\"J_ZO0Hml?^'4EE3g\"Je4TDS@g)@.@1kI^f2=Q+..r)9#\"3nc0,NA>Q\nlE(,u_@D<2$AA727%p4SJ9`+8gsHI2OYBQqC[O>a@r=>/H?:Y0/l/NYeQ:+3s]NSc_ornCsd3\ne'=+QQKB[L=/tR@<@Lu!&MD<uJ?$Ug'W!##'UYmOonoa$Ve+&;4/m$H3E%4^W=3uk6;udO^G;\nRQgN\\f\\T6`T-$WD0snM`5&54ZQiOt#ZD;i)j>it-;tMqstnWt;j?I?_3@Fel-KMJ&qK`Y=f?;\n\"^$OkR]#Q(W+\"RS>kQrQ#^qe2lVbEBU:[WC][;lFZ<kuF(_MLeH&V!-amkYJp(+TgqkUh.*i`\n\"W)V*lW]D?lInkOZM'q^Np?_u]og+\"<.Wuo]C9'=5-\"/:\"8L<is3O3tde99b^c%]d+c0($M4p\nk[I_kK$S!)k0S;)(tm;=I'aBYGi,\\l*s@P?$.J9\\&\"^gU?LpP>C$A=+UpZlAWMX27Oi@2*%Xd\n.i5LS0U8D),pSiJLH*UW7M*O/TN7]Q&W!ENQ#$X*VM[.-*$VG9s4AgBm:b4C1h]\\X;$NpJ.oD\n1B1UVZ.*>5?%$;=H]^f7EpR\\U%<UMV;d.X.(K68Hmbp\\,rrakFFg(H_/\"o&-`^.V41BUlm=UL\nrr[IZP8%koNP;6_H52H8]t)@BLOK'$\\e!ZhKu9#3`T=C;PH'J?n+]G?n0:#(Et4T@Of,>Q1B9\n8TI32\"9&bU`;g#1/8i`WNd?VUKAhC$'AZ@#2e7budh*#Fi;VoHk0DTp17N0aUdR:(&RJ&O;?n\n+]G?n-T7'\"o[6_j-Cg>+*OhUj@@H1>cIq\"@UeC8(=LeD;oI:VU?O5f]^Id.\\h\"F&>GX?r[<_+\nJPojWopg0(JFHVC[]5Q?V0Oa:QjV7UQqBU,H\\-:J;OU[h9VjSF=s$bW)-&cf,4l1N'#7';]E;\n)8X9Ft@BOm;*1L5^s(&n\"N?/kb/eI]o5gBhCjl(aKaQi^3;WU'bbM@<Q\\VU@2u=ES_$;NK2S;\nucO8R!F>fM*LAQ%[]k06t;to;hYY)6Y\\rC%9&6n@BEF5;IcAF?>!7H5C<(b6eB\"R<B;PI)GD\"\nh,m1#r1^0cI!`tPRWu>5#R7_0kOme%3[AIWhMYr9%PP>O0<+Knhm!1h897IO$\"AG(P#YV2WSm\n?$@$I()c=/q/iCR)*W5.#F\\(`^2*B2p[HdWD>P)GG^]+AIEd]YkDAJp%K&CY)l9_9AsH:OIWR\nd#I/i6Bp);If\"2oL<PR#F&)XmCmh:a`b!Kn-,&pUVFnQ*g6\"ruQ,P4TpJb5ceOm'[%7XCK&Nr\ne0.)?.c!`QW;9GJGJeuZDKJsf\\]HPZp65<*`B\\nDoVecY*LpOC;Vk-!9s3E(bmePM)e_^i*+W\n^qu]Li9#=WUblc8uaFCU\"QBeU8PScY?J'.-;tr4[\\RSP.<h!X;aI8^;al3e^547J.M>N>rqV'\nD5Hd2\\p;49\\?Ljj4^-r!Pheh`WI\"hsL)i11#IhY5V3<W$P3N01`(<9Bo/!8USPl@]q9@0nIL$\n!gNE]](,6@\\JPDqD'?QMrt?D+UubSU>3%0*.r%1^0b6!*?Oa.-7N,n%Wo3]l-`Q>5P_BI;Jl$\n%I5Z1qKl6?q4G;Y3:P%X6d%33eu?u.bXVbpJ7#n\"`)I>DX%X8C'$3:)1DB?q[T`oHV7Lg=Hpq\n7uIV[d>I,pt[2uV]0C/pB*djVik*MpPNOK$#pdGiLOCiTFM/&1a]Dg^XsDifHnAF88l=SqqnJ\n,IT\"s/f5s5A:>\\X5d!j6\\=l/F%7Fd*80X%-UD2hri@.\\VG*hV8MHEA`*k-jTk+isPZ6><Jn_'\nm>nF^o9XWjR/q.;IKiJZ?s\"=,uq<4T3\"9sGn8qEtW<.5\"JML\\THa>=0!OoH^Lnt4,WSt>r>o`\n\"00SQ_HHV.\\Y3Bu`<5p0FSD`VW_Y(F$I2g$<*JV^G%5=Zn`<R7]Z,3PP-`(LX8E,'cbFodX'F\nW[i_gAo)*A1]-]Mho@D<rH-4)I70K\\`;TF;H0CqOrofCY=W<$--j?K\"9Eh;N^elr0+0sk?n>\"\n<jceLLnmjd-k:*6R3#$1r+.]-tPYNQ`YR!.5D96oPNI#Y]mnX&')Im1lkJjAAo&)IFfKoY5Le\n6&o+QV-qU+1Qo#A\"2>hl\\)6tn,)/n]9Xtt+*hCZ@b&&4<=lG[s82TOMt)o69Ef,;9GIW*^@IO\nJW#ruTW]'d/k<>pf$4!_t]nHWB.h]mHY*r>WRDJh\\ao4)`^#&Cb!enRq$(L_5J>j_?rb.nE4i\nhrs*\"=!#\"mL87<95i!Gk8nFn$4pekC)oV(;Fkg]B;^As-t,F8,q8U%S+'?H%tO8'Q#BRAF!R$\nc<F0LV$?g829R&@4`/<@igVE6gK&H]qU7\\-`O^3\\rP9R\\@1a0U^f6Dm^f2@PWp*-`%f]bJs0j\nBLh`A+D@ihR`n^Hr43qhV\\L02^u+PhEKrMr22-*_7V8c4S=@k&]gU;19Z1Y,6\"Gn)W3I50:DR\ng)TgigG[0JC1R!O][H6Q+Wp8KrJ8)J+?5)Z+SqeqBje9<2]Fr*UNa_`69V#]2tIOI.t60jnGr\n(#TaPAilNY[?\\,1!9nB9+U6LJ/C;YPfp\\pe^8]A`lh<uB=HJudun'HPIHajFF@PO'=k$f>JgW\ndARQ38eFHGIL1.O?aqZ4g06o&]YcYG\\DKLeC\"`>SOUj1tuTa<4/-1ih@7d.s/.IQD1dAE+,bY\nNj?&j]k0`j2CLcA2ok3ug40(noEXISk\"k`2=]GS2(fR\\IE:qu#r<A+OE!<+j1^0asj=!`eieP\n9WmH\\MNC?pRSkZW_AR?+C.fU<IiF4?`m.p:lXlG6oI<0DhKMG0alQ4>Ru9DTkkV])C>Wf[9#h\n!:qQ!RDT]4n8BcP8A!o.US>!gsnGGd98msY!T0h7:/_HjXB]O(e9]ONSi_jn%22rlK%rU<V:t\nde=!<C=5fZ\"0GUB40U35B8ID:&Qtfng0=@6J/TKudotoY$X1W_spo<.IG=JZf65\"bmF/C.BM;\npgF;hRhtVLC;j8i)+N_FlojVXc[Q_61th(]<Ag72D\":FR*:i``aS41QKrM\\-fT@rTp5IWrt;,\n]m>t+RJ4)dVusM(+2#QPWeOEPAYfXcXfBK7+]HMYapVI*W?=odWAJ>3cBYEKo<X@94SZp+^OO\nANUfuVrp4$?73TGU?k:=f\\MFN;%V'Q%0;Pn2'eWK$rLoJH_6irSJ7u*L)Ice'%57p2JaE$pu>\n%pX0/Gi@'g)][pa,<l_8EfkH[tZ0H>G']NR[EkjkKYaR.Dd`CJZ0bdJZ3`fb(ZVcR%OB=RpZ%\nC3E)JnjrGJ+9(EX?o8:#]9_jQak?^d?Dm[A\\X<Li9(a;51eOtB5,;rIP\\SuPUb%Pn>W$N43ZB\ncp;(ZCGobuKkUQLDLj\"h/!S[,[\\nT=D[@<K*\\$9'JT?e#K/,ph!Nk\"\\s;n.kh^6.57\"iV**0?\nNFR_[2lqF5_Ghn,^INgse>/6t/Oa?+=EK<\\p>dO*D:6--2'XW,`*^c;+uCTTW`Ji:Xc\\4U!)k\nn45&9C]QKStsiDpSnJdeAgZ1!\"X<;bK*1Y6!hH@^Q;foDhr)]ad!#AuJ-!4:kq(UsNF6(.jRn\nMJ5-V>R&%N>I'9q2'a52lsV6@4Ht&79so48S*c]3f-2[hQIf\"Y'igbUIJ))V]01sbpU$,j'nl\nZV,<RjFEA+^as`^[V,(5#9<.2*e-J[]Yai2&G_.,Df!2=naS.uEPT$m.p4#1eFOQ.JeI#CED*\n]2J!`MCRl8_ds2Q$7/G'K/9&d5.$9VjSFa:;-sI5<UWP^K;qXI#N(NrW0q)/?MHW;#^^8qLdn\nMAt*E.j&<`1=b%[*tNO###iJI*Qk+L'tL,t&_,LO\\&ckdm>!?_em$_JU<`,?IV-$g<9O(40\\&\nt6-S&o8_5[K9<KjL@D(@:TUoE3+<M53u;,EI6Cd&K/;OUR,POZ8)aUq0PKA,ZR.OiNgg&EW0W\nYlkGWn`g;kg3)lI(-.6lD)RjWYnOR@Qh,$G7L4G]Gsg*'RNZ/rO4\\d^\\$aY$1#];+fb2m^#hd\nPJBC)TKs[jRi<i6^BrZ)F7G-k@#N$[:#GkO!PDX/j,,WdCWKbrtMU6h@L*7>c:6.QKg<mV5%C\n]3=.bUP3><T$9G9j,!G\\!fX^G#OSDko)>o=jA+K;g$tUFaDa[ElM`FbuD+BUHa`5UBkh*hnlV\n;9]FNZ@*=^E_?A>m7s@WW`HWEbmB!$+AMN^WH_L%10$0\"Rc@'k#u`:fkZLl_4#0fWX#th\"et?\nb5ZaB6D\\9WD_j&7bN?LFp]1Pmq:Xg*A(Bh*lAmS>IM9]\\)#QYUZB;6`fk%uj]qS\"c@<<GUnTk\n$g4;ag_gqS>g8,\"re;C=\"U6AePCd9[AmDu.[F)b,cdAN\"f?l.eTn$,k4lfaTe$O_;Mgc5r@Q@\nOUp>m35.T1KDgC6@^-^+oh!EclSW8\"]aAK@DQ\"dY[=f)@+qFmaPE<N.Z!J]=&G\\8La(0-cUUn\nil%(&O_Fr972tMu98\\CJBWj[:0\"['!:!59quE&Kr@rm7^oBcE:q!KmuW?NC,;6W:j&/)GadVt\nWQ7cPRoCT/MIBEYAuaE@&8Bt>M-]T?mShZP7K?<&VndO9GU(efB.Bb*O_KBX??Dd<9ZNN#:e[\nnd::&OWdoXZk/q<Hd?!k9hT\"+:<pYSs,9(X&sc%'9R:m,9_)lB)'?l5S84bZndKI[+'pYPeIr\nd06)Wnsb>9I6F4,YZ1H<3=oDqCig0/JKb1l(5\"4<T=NVqNje#8pgE\\oO\"X8Kac^tlC>('@]aQ\n5Cqs\"=^@\\<>@&b2UfTrk=AW#lYIY__QQPr6]LfMD$?QJ&\"*fj)@&'?+qYnL[C57CDg5$Y@m:@\n,aoP?i[aXK%X][DX>72K$/>mQ<ch<G0f-VUBjW0.'WJ9WHZ\\9mIS8pD++)dG,l_;_8sZD&fCN\nZsS]&)cG-[V\"15l_Gl2i>+]B=]@Gl,r_.S>9]ZmS!B<YCSu@-S^f9>s][Qb]ZTF36*n2=,+j%\nHDA?'(28p/N7Rf;7;JK$91rB\"Uk`C^+\"9Z?:rpmb_KZ3!siU2DZM;9-tL9N<mJ>.:p#/JLV#]\nJ'Cda*1jeg\\C<:hDF4?H*gJ8h=62`W?gqk1O#nBZV4^@&XV[Irh9Xbb#]\"jaCJ@&cLQ95q7F=\nA#CAZp^&M^1^!KqS:2W3h^@KHH/1\\d@@A'J)KW,1Q5,(`9`2[S'W(/0b0NBPOSZ+0o9LWHk(O\nl#PnX1?(YB%$f/Og*OX5GXiq,,2)IYS&9WX.0YZXm1>(r#f*;_llqHLW>-GVqVb7U5Sn7/*/G\n;urlEN+!!&dKl;MX+.AJ0BL\\q5IRU9Qh-JLVAcmkh$[2]:,]o(hCBscDU%YLGnR/Mo\\NsB-,F\nP>\"f<b<jYE+6BIX7a3d,c<o^nET#HmTd6Z$&V0r\\&NVpB9F=3KnATK9dd>3h[-Ob;2D1l6\"cH\n9J.ZpMn/Oqh2X*ABdjQ2=jrO=J)!r.);XbLMr<2K1u3@V:BR[pJd?IHkfF8q<FF[S0QuI4VtG\n&SX+2jW`5>Z;M[S=@&d+(,#_Xn<(s/m0r[@<2-o1/.RTDW=]4TZ/q8S^Sgm=J]Om6Q'Wk61mu\n5G1LoQ3+&uIF4Ul(c+6\");f;pBgd>cgkR*E*E4%at\"\"1XdG94`jU9P;M0FY`;b-&f$Ca^/'Hm\n^F3GdVW.P)8%<<9<*+NEZjY#p-hi*'^SugJWES9'03Nk*8l8_bj[`<)R;0j>C@RX8VTQiQC6k\n=7Da)cV2P334d2=9)e]`$_lmu=6eXB1-:Lmg+Ac4GEEl2(+UKK/qMIY+F9Qa&+5A^-m:L8?re\n\"E!b-(lc6CHsi^V1Z/DqI&asXTp-INFn6'#-h7=L/GgJE__g5_YLuhoATWuhM&DuX6+:B)OFs\n(hLD[(70g\"DZ)Wb/IYJsq0NBPOKrM`3<&CIeXeasc[@rUP'tAsL`0(`JRT=jdB<EOVr5h=E<:\n[T]PDN:tXoJ:3(SA36jZ<'l\\8i#FPClE=\\9En2?I\\rb>CP($`De]7Q(3^EF-s)Gel9R\\B2h#$\nL?#DjoL!kuKt6`Coi-mRXNdeZQ0Qo^ZgXYgrBDn1W;B9pJuM@>r_2F9VP5f1aJ@h)2>+BkVM0\nUa]/PuJb9G]pWP'D9Cf1^\"R7``DD/F58.H5Aq=\"u^OG\\!h@SpBcPO.XUNWT=$kcV#mm`=$6,(\n+sP@Vc'(7ThEr9e,!l!rX;(/X9)=cU7@Xo4&*\\&.Z$a9[PaUF/q.\"Q-rGlZk=,?T_D7DPEJ1&\n(<\\fpqWTs7I>>AE9'!(+9gEAj=NL5O$::6omXdP'=OS27]jD]8<%sSUHVM\\MS2:Urg^h3joH=\n\"!cD2:f,3l@qWWc:/icTN3QVCG#[10#HcMSiC$c[AiZ#7I-TFBaZ8;DFCSCMYX%Z'&la^&Qeo\nqSQ-d^PGR[HtEQI#VCm:nkikMSKUdpK=<*?d0^gM@&nuF;osO7nkWIN+M7>&B(N,*A^jDL<Zf\nF#5<OA<lBbqu<09hR9RA4q2YGV5>47aAb=n2bW#@=%.(bQUR&Uj3aA`;:B_P9j1_kS@WlF<#D\nb9jQZDZ)ODh@]YCnd/k%kg-q-hHVF2T$grQ%#5`FGkhCYOQ+=!a@7*]!#G8XpI,U5HQYehE)t\nH04d:e@]EkloUke+1c'clr?O_+HMnD1\\5nk2VK*h10NBREMQ)3];fS0sDGnl!m?'7.j^Buh/J\nOW[51;YhIS^NA.YlAuHlFY<NN%Bl[`V`/<RO=`RB(;eEaJtS=3S4L4,eqeFVX5F10\"[^as0j8\na@[,H^f7-Y';gXS;k]UOBi<>qm2Pf7ik:$IV(#uXPVON=+SgS@kmpSY^Lm\"Gh02isE+^Yk;lp\n^&ekEKYNj5!e]^97TMp`#:8X8aaq)q*U<d&WFl*m35e[:f[R)5loc;^ZO\"f<b<3A;0MWmER;R\n]2Mu(#@G!XHT)P-;VN_NmI7N4aH-O\\YQ5jh<MhM];%ipVc\";2aNZdCd<YS&?n+?DgJ5a!CSm8\n[<;@S:LfIj?k$FQ??R$u6Q0MjQ(#>ks`)K76;h8>V;O!KH,1BLfVU@2u['hj*lL^N\"jeZi\\ma\n[)(Wb:ABW$b.6JZ45UQ0Ch,?%X_-%3qbMJs%^.V:a2\\F@Yn(WEu(QaAu;#VU?_?0NBPo`DeRU\nI;tWHa.spVbVpV'VgQ`r!bN.C=>>H'0i\\U,iibD_FQQalVXbE]16pGk;n7iDm@ps`Iec[V/pO\nVtI6K#L^[ugI``JX<Q5bfn<J>$7-!>eu8l64uqT;mr84$6@RHiG`7AWREG+3F*s,(Vs':VsKR\na3WZnNUBDpoD9j_%A97<1:]E)fi2@lD>f.,/C7/0\"6T!f(7`q+Z*-fQ0QRas2i20o:+(:@o_?\n_>02cDZ)Ze;<K4))X9)=cU<$\"C\\kbXBVQ(8Y#B)+e.`+Lkem4B&qQuYi4AC)c7>ljTnJ@Lj,1\n`]FWEP#bVM_Z-qD2_D1hhVTWaTBB,?s0tVr\"4Ojg]^rB/lbg'pGV#aU1^AMIJ=Uc1b)!.MYb`\n@O`C^MJeohD/Hq>67pFuNi)TpCYpL@^+X\\\\WKc<=1OnY-#c;V]C\"c#'T<SqpCKUhuGU_pW:79\n8d]4#c8793DIR&Ym@@&d*=LT1&PFLs>nF(QmrPD\\cRZ6QhZ=t&n5k989$P09'XP9%aCl'PGA?\ni'@7?n.M*VHjo7)%/1+#YZQ5WUB=h:$W4oq;JHU&F$qT9Z<4G_[g+BR'8e-&53g5&X]TlEaSR\n.9&HFZhq#=9iV6>i7]*0=jbYUk=%nm#i_Ob5%,8c;cW$lJ<&reRED!5TjSjlP4k84YJjs;$3l\nAA&$K8(dKM4h>MD,bOlVj1e<7)DKW@1U5ePdJu.SZ+aV3==%)Z;b)a%K*pU*4gDRGZQ2<&W\\u\n]qVb=j?YTSFh&knPs^HZpKJko<Rnej+jtiL`,1O;ehpDu<h^JoRjs)tWmWZQOemB(s7Y?!@=8\nJ=Qn\"QA0pS^3<6(@ue\"gI;Uuo*$5LW[A>!0!0*Y\"LZ-;lNteP'fB]00T&@0U<.?n)qoLb%_hY\n5&QfOK\"uHs3-%n8._6dmGEAFKIKrQWM1gQ;b<F'G)<1l9rcpU[^qkhH*KE`+]/]0B&ZUlXk?3\np2m=Q$<?89Lqu*gAItu,Ygsfc4_61uXed\\\"ho`B_#Q)Di<SD7K;E[Z:7o<75^P*KR4,P;#[KW\n1!!*u#!XMQ@@_e]dc1Q)RGO.^lJ0^7*1@I\"i-U`1ME]Z])Cf7=,Zi?i#]MMP]?lS^CpsUBbf-\nR*,:038YX[Ot'7q:#RQ)Yc=-^.dQ_+k7`HTWK8i7GcN;9VP7Kk<a_q@o#junB?bOQWH:h6k\"\\\n8:Zu8-IDQLOU@6(UMcqjS]\\$^TMc;\\AE<6q!eQ,tDr4&a\\`4G'Ohk:LBD0,daugKO!$:,ZoXC\nGo!Q_kF34gmH4uX2%]^jH6Du&+Afm;]Rs4G]rd*q-I#F(4%kJ$2tH<$O+:lRV(b2rfl/@-II+\n9d`hZdAZFoP%JZ=o;eaN])Q!kK+rZa3P,OM.JuJfU<>dQW&Qs[aU<+3Man'r:@k)4kSNUpdc;\n_3k/0sNDrM;EO,lK<amr<\\dWW:q:LRi'-m2GYN9LV-H[)XE+-t\"Ot.L84e^,da^A?+4FV+#9m\nmSVO!bW@K$B/lhiPq>pK@MP7[R_1>>5#?BVWJ$O9*%+RHMO\"LOA7'1X95[X!qHGkM;e7bM#/5\n\\g]J*?,-=\\`pBd't;O.VbC6\\6:aTJ7clM6>Ok(8FI=j%i`\"HSI58;)L?i'i.jSX9)<hP<2\\\\!\nED(Gl@g=.IXL9Iq\\I4he?l6Oeg-rtXekuFD3Xf7(7tEP_,i<jThK#raIODO2<SiLk823=es5O\nf1VE`+@4FjlKqP=nkKd+JX9)<hP9X\"o!`_1HlIb&ajjTWp5=j9R^rNmk6T6O13g!!FReRg;c;\n_ra;NR7E&foTY2l<ktEr8A2QoDdTMp,-f[n?>E)4!4f$>3?R_,M&K!`MOO$WC1.<<nm`Al>`6\n\"01KhcYmT5>:>jcre=]kWZWW'Qtg20^f2*@`kkA?<IC\\7Q2[i/0IsH/D6W!#W`#3VKN2E[BX2\n5\"4.tj=;oq``qDF/We5%DtBsiIl\\$`$^l,oP+9U0IFWOrX\"rhAUEd#tC35#iO/g)7c8)&@A#$\n=m-O`)Nj@\"f@/(4/T:fWm[;-DGm`X:UH(\\Q+P\\WVC:m>;noHFXbjb+K;iks0U7tJa'TOmWUi*\nbpe3!FCl<YBFbZB?<E6spF*2`s\\mMM</>d/k'ppJ>/=>]ahmm/)<2DC9`2)D=<fkf[/T5DsP:\nA7b=dW0_D(W51ALa8#$()&n'm*=>VJ^4#DMQ^e@4FL,lJf6g9uDk=<-YdMMIWY2j#n0n<7,7!\n<.F[u[iTqd*G_;tR]/\\%'e>cLGI5\"XM/I*C>:9pWa&G)'l4O`T.WT1%V69u40U9Ck/eOJnrK*\nHn9JuH?WNKuYb8XK@i]LCE,r-4S.XL7J`f5maW]2bCWelR>gjf@YRl5][Ji)REe\\ZC\"SXF2k%\nB,]@nulGC>>+jag+MnSlnhY_8N<aN;[J5LY!nVr>9dBE<@Xm:P5\\D*0Jfg*'3'B_<J<3YOVP@\njJHr@5Hg`/G.Y@;\\lHfHGEW,b.*e![L@j?RlRAt\"l^Ah5L>N\"6\"1QpeiQFF9p(DF5R;!qqYIC\nn6-<CGhBEts#B<$'@(%^[Vgb7UVI.[a)oUJbB=L?Xc$4QiX\"DH^%'A1ALIoLFi6hL\"@UHPXFs\nTr#k1Zmbm6s7kdJ1R'uF<&Kl>QLA=WX:l_'g4m#=-Z#J19[6Ug9?\"\\G3od=Q^\\iC-MbuuN'^O\nF^iRh!N'iTsT`os;KTAene_%X#Egi[m%DH0i;s%6q(V0].10NA8?0GSrX:O\\%=LRG/S;Mhu[-\nqu2&XZcO-Gn3!O/X]]grf\":n&6H\"P9r:N`TH7^@?n,NYNk?dkZfc+_$(8rL;Vc#@q)fd2.S$P\n>'24++WYeVh'g\\f(++/jp;\"^-RGa\"!dea]QoCd+V:T$*Bp[E_:uNpZGlg8$L[el\"r#WH91KAM\nDZ_%g5i,)R[mumIf$9<)T!CWJ8]`l4u0L?bua+1KW^_s4l#%!`MCR;DK!G+2V!`ZX<?jWF#Ai\nY>6.N9m6[G:hc1\"*4ksuqMPZh[@ult@6^0[R$[ff<*i)>VUWMep3g_0.&fh^<0$3-M]&[bmHM\n*0qW,WkV`o40Wk-,J?hqj=o$)S:Q*o[H<U9&*:Sq;Tnk3.a/cdHHc%5e_%;T<H\\?.3cPH+3Z4\nZk\\*-iSj$9NB;0Ipab0ULmHiiE+'/.[Q<u`'0GjV7PIkP7<LZebn\"uq>B<CcYrj)g8aET;^je\n%JuPgt@B*qGoR8RGZ,;LM!E)Xbic\\g+UP!A3O$7YLiO1'<5NV]n*G2<L$Igq7!DJd;U:<miQX\nLf9K($>%`N$55@G5/MjK?[:J,[RN`MY%H[;2eh-)UP8f?\"GK.do/\"VQuM@WQ;Hu>#FsSWN,7U\nK=>Q$^@\"g;)ig63Z/bt'=Ebo3;n41QXLGUY;.D)].\"g@EK;mqZ*N!lC1`ga9N$:Y]<>J9Y=<P\n2e.]k0nT5(4?#5JM0JKLEWfp5?j(04GUQtgg<$c5l+#;MUg=sBgf\"A=9&Q;R=CWK&!*4Rr'uP\n*Fj#gSCPr:dY'81%AniX[S6g;itpe0NC&,V9rY(*11Jio/ZN;N:X;MfV0k6Xl95?R^BUid/oF\npX=D=l2k]gPZfsNUn&C:?hdT]!A6!c2WTMq*:gbb+C1SmBD\"ipg?MMq2a*(d7EUpaFW.lWG(&\n9ot[l)4ET?FYY1R_\"&k,#h#;$p5b^M1Jq2;6)7<Ve?q;d#ljbpm7frj/2)2I.[@gci1D(;[\"`\n->o2S<S_.73EC^1XOUi2^3N&kRHiG``T,kUR2i/[H<jPgYp<j0a2FUn[MCYmRAuX@r_->n9U4\nS2=NmJrP,]LhWjP]h:8PPF$o=sLVu&[Vaj/Ye9`C5i<E1E78qL&N.Vgo0MJo*5B;VCMPnL$;q\nL\"HQRG?23%nsrAmYO0KD(SqY10$%^rTUKepNb3rmn?/6DtBIEJZ0XPcu2KUo%Y=H<_H\\3<Op=\nm\"`cD#LBk\"eT;p[HVOEuiY?(s-=f]PAnf2GKQth*HP@ID$Y-]i=9rc?`?@$@ag=G$mIu`8eZl\n!:&%D!r<nY`]#A17bq/uN9\\g;JTBgujc[<jtR:QE-*;V7P[q4.`J-@A[eA<sMZ,X2\\,`GQ%B[\n<6rlCra\\Wlp!Y[q`qT:pD(U-^!G-RMo1;n$;t2[pMXE26=isZ)hZZqi[4(Ha=:<CB6%!4[<-F\nPl/Mh3`@>mP?XJuadeQeT1!iE7=cW%%8qXp)PT\":Y[&(3MBC-8VaKW,[M/\\T)0qmL)NiC>pKB\n<(A7W9^MdQn$!BYm\\Y`@klD*EdsgA<ud^k``,;aX/aoJeU0!%WN=&pQ'-<:_Gnk-0$aLmgWFs\noRO2&%l_OKfjo?Z5&qB<'>-&n2#FJ,]I7/Jr]#7Ps>#YZ7.`mNl;4/nd8p0kGG-S&.cVud&$;\n>\"_SuLe-^Rd+oc2-\\;\"fCrDDHK0o[l%NL5Gr?M$;IcCen;#B?M`,R\"cK9qB:(/KMlL`1EK>n)\njMOqao1F-Y1Mgo.Fe5RIO(L)2[2;gk'7W/RWh8Xln^@,(b\"%UlT2.]+RVhglr&JV08XN,R5eX\n7crcD27cV.n/I.ts\"I&=1dBg0'ldD\\a.ebq1eX]<mVVW(q_\"B/H]0pU1_l2ssJ5J-^MNlsJ/'\n?r_5c\"D>8VXfoFo<k]S%`VJ=/5Xr$\"Y`rCR*&o1Q.%49W)R^1Cm%D5iu&V;YgBE(p;M(X^Z[I\nPnLjloWN8OVl9!n6TerbF^f9/bWoc*#1/fWkko\"?]AMI14MlCf!!DF6C9Kh15TdZlq.3?ZiWC\n/6_@RtE2-*jNt^=]cuf1\\'B=]JiZCJgs4ZfYm]SC;>Pnn_21G)XMEN\"sQEP5)B:ekuX<$;Atr\nVAdTMW_A;jZHE+T\"dS?sL6TreY872X<`Mq_MHNqe.Vk/<,A9]:8t#J?4B'L#IrbJa5L\\;F/Qs\nP^D/1$%nYb6pZ3`3\"R&VN-ANErF<Cg;mmZFK9^K7bA[SPb*DPeGEHGWX&.ot2E^2jBMALB6IP\n/CsZ`Djkf0.P.`L:/ZJ]PVF2iA^;)f[d>7IASLaV*CMN!)n$!WI0t1A]RjIQ0KE'R.p?\"X/\\e\nlrSUGO<Ri1gU/og52*V1AfnoQ)3[Rk9RHfJJI=?S+7VJ\"._mX.iIM73[\\$^0@R;0XN$d(EQ97\n5u\"B,/3]nQSrr]eq&]<CVbnjHfZ^RT-<aSRMLsA\\qD=X/\\BX27I*r4n?[L?n+5qcVX$W;oLJj\n,&_7G'7\\lJ[6R$GlHtC4G;A]dZO/j.W['0r6Ji\\f%]RR3WJ9,ll@*B5I7S&JDp54rX&SO&;pE\nU:6!mgu;d&<;s)O66:A`77hG#Ik>GPreReOampMDKYjNLRN%pUKl@MC1/!\"Yr)7f;mc6Di0QC\nn==s=fLh;L=s6(<3#\\MWRt]!9P'o7gTJoIBqLf.iOR:[bc!T9l^Lidb:D;Tjur5N@Ts3P3AXY\nE?$)ft2de+HFH<D3bqKN<WhEaq]([(#C8q92Ji!Y.HJqAdT@eWda#qs9N(2[945.+i\\'urAIj\n)8.&<SbISNLk>IeW_IWmK-VVNNdRe3B`U>GfiJ<\"C_$qFq_$``0=f)GF]c0\\+$]T:Oj9IaC9N\nQJ7kG>;f)Hc0h9(&6!FJV^O_>psPdVi@%`hcq4/_^KF50JZ4m]4f0.o8H38E<'$<06't:!Wp1\nO%Tg+gMHHoJCr:nkk%c/8n\\uaq+=SMWugt&cFosm,pEgTHZaT5cF;_8ukWbN;A[9Vc*lI6*;+\nJtUbI#e%3?n*i$fi=m^%=pIm\"3n(4WQIA7Wpb>u`aA`,@VS4Y:X;5:r75CCR;1^%0?FY\\fWFY\nBF?L'ZWuSkHfY]GP[1J20E8-i=ctBA30E#To'fEDAAZFoP%Ho'iWSBl3ek&B!WmLj\"Y>c%O<-\nkGlpQ2B*XSLPXD-'UK8pNIEp<KO05OTsu;3U:hbZ/ole54oK:pWb.V@&R_$b*86N?Xa)W/Xe6\n$#$[QR4oBO*6rIdQ].p'[]#()CWI!bd3u!:RAiRp0\\DHhSuASr<Iq+l:%apRW(C\"&nL&bL:Z%\nsGZ<<]7/PtF[kdKV.8n\"`n*`eQL<;\\\"3I[\\;q;3dHHL3ecL1K0-b^tcJnVc51KWZEqG,EI6Im\n'E=]-C\")NB;R_5Gd4iF%UQ>*\\rUQo<'\";P[C.s%l?##e=ss<(rf2^D)?hkGE!^-F<Tngls!pK\nsHEC+Hm;9eiR7_N5I/Z/\\Q#hb-_UDA;m8U9pWd;`c\":PPWUaD>Co]iK8O$A)gT1i7m:cN]hhS\njNTE:<C4]WJ_EVooCnj]U%MVTS(t5Q3N*SZ6h'<M2u9mk6//kl@S9rcM)*8lAQ`F%B$f9JmN3\nj.e\\Tcl!UiWm%QEIPMYS!s/e.3Me\"KQi?j'<6HVRC@CiDk;28/(,#,9lqm+'X-<Nbdjhn:V-F\n0.;9*jpIr'tj9`'a\"WU,+?XBWU(OIH*88lDX;I-9Ua-RuQrWm%QE*\\u93/Y>3$i&`?d1/`%=W\nh%mo5u\"AQC@B\\.WNp5L*&R1ElkWO]OSE=Z`[]:(CL%+%DPCMgq)k/F\\dXtKB-Wa2+fSFjEU%I\noRcJLi$;:V;Wh8r`H_.amDHdEZBUVmik\"j?@/SO-^#c?#VgP<'9X/&GN(T>,K2ST_qjXET_lG\noL/FCLU+o[9$Z>Y;P,eO-2X@\";>Y/C[%a3^!AeF&-.I\"V3=\"Bg-g%bb*6U'e]#8/:si2h0a&;\n`=eSRW1='-Y(FVIJh1Ra(M_H*IpK-[6XEY:n#0%c;opQ?rVRGI9e*EJ^AH_M1)9)R/G.PDr@\\\nfts4Aj!@[0o&\\!$M,?H)<2?(E$_>>nk4A)_E/!`P3^DHQd^EOij7$X9;L$!*Jj<:Y*Lk\\o]f0\n83j,(0*)-%;W#E#c8M4/(OUr$3=(*3&boD^'7oMW]\"_Z,?*R757>0pL&iWDJ>llMdHAREIr]l\n82<@<'Dc1:MVha-[PS`]cbrpQR+p35bU%<<%b3,V9Q>>OE8-CiFHE(OMRf;6tY04jFNm^,pVb\n9\\u\\O@7#b3*<DNIl!#a.IfNr?^&I.*bgmnb[4n<Y^u/dT#+klIb(7_7ktF]3k.Fp=nadcF+KL\nnMfeA;e>XM?Sdoa5kum/B.[hf?Wj\"bc8!j'DYal;jY9r&Qt1MMSGJ`%p+jlTdTq:VWWH*b>.S\nh?bGhIJon9;X:TD7T[G('#[$pseq2DP[77d=c42b*D-N7&L:mqELY6(,C;`ik?;[p@^<7W?qV\n(gH(D=,F:*oD6GWuf/1fXDL9<%D#\"SaV's=$M*#bPj3G`5Fn>oj@_lC-j@FDnS#OVJs#4MH3W\n_m!dt9Ndble@abgoX[PeY%Dc#KJg['8hC+e,YkriI(X>6D/X<DfW<.dE<E0T/2(R5A$qIgQaf\nd%8cr/KNW`\"8aWk,NJo<5%coSBKfZi5qCr\\ZR,Pc+L7<E2UJF/.H.g3,]0,LXgG=_6(10U7^;\nh_9DSU0l>-XLh:i;ou)?PY>Wh&n!3@hZ]nJ*AqW'cEPVeF`FWGjO/O%QE7)>;d!+.W`%=gVE/\nmFOlknm9Vm$hg1A`\"Chn#'J&CW@MCtX/5?6E,$9I>s&#JMT0U68BQ`1*@4I3rc[H4/>9REcE:\n&cf[h(Wnm]W&b4/Ql(\\VR!5;<2GC+eWqeZc-Cdc@A[K\\ePNLIYrW$d5+e_&l*>0Nm9I:`M*KD\n;jV'[K(&\"IgeN2t;6R,2&Q,-Gla+C;-KVG87nA8[<9NA,&@l#+YB;SKtQtj;6k<CM#<NE#IK;\nkME;5VcXqcPOM0p??#hYlXJXD_\")<i=-L2)hC1>dL?HT4I4B#p#m8qpM+L:eL=tJuLROArE\\a\n[t[?JY:QQN%><!1DWa9o?ci_eW)^g(MOgd&H)@%!qUME8?`#07njJm\\@cAJRn,AZV1)4_*%E5\nq$Fd7TJ<$A\\-V6T/5nL'a9Z#J_jVp!P!WeA>j3\\<L1IhPLe*ALbtJZ1s=?`D>sE4ENI2ojRrq\n9sba18[ZT<Q/T#&d/^f;c0D96qWh=RJn_$W>;*&X>4f8*jX0O20Rm1RT(H=[:kC]q:)N9,,Sh\n=@K&rs\"KGmcQth*A3J.4/T'\"EqrQC(t6ld#\"A#^[W2Z*u=X&L0^`jhdYG&I9U/JJ0&T;p[TVB\nR:iA]n^o.QamRFi%*MX/\\RbWd7S1^X[^]Uj4mr93K<5EhO39gKLu&T4I5Q,Fq3@01sM`7I-q;\n`)8[4VJ)iQIa`iF0:9n/aAZKK\"##e9fKf3L%TKE61H,&Yh>=n#HYW*npf!G>bZ(Y`#Y\\eQ``,\nHgI&XKQ8n=rj8Mq4NIe7?ThLs]5`UC5N1[ui\\]&`ojB`pRP7eq9'e+uf[\\Ah;qQqBT;Q)Q,[2\n)J&-Q,lqKF0!Q)L`<m-JB.YB1)5;=Eb)4#-;tKhTVhdBW@Z!^;G]8O.#t9q-Ikq7>h[?d@*5h\n3*@\\tr[MC[h-^qWO86nnHPVQ8&l;jJ&l(q30],I<lJs_Ehp&*rn@&cK>#Gts?WQfC<Hau.Nbc\n7C2`Lj.MfrBqL<3ro<&>l2\"X+70#`%r-r9_&],X/\\.VC78*h_=#@Y%OUL0m@6f?]<*OJ$G]Vg\n,WD]g04Wm>;+VKKY'S\"3@[W+u3LD9aR$L\\dbZ*%5S3Cne2T'u^B@42&qV1a.q8ppaJ'Xae*8.\n?L``/0-:nqp1>0g!T<E0f5^$t&hT/_)-kp\\K6^KSr-FuDY0IHR+mo=1p%'7VLXc$4<Q[?gs0A\nBC32RjVp\\'J6CqSlLcIkl89=?!o/:kVcA-Q;eUA<7EH;m/*_>_drKdqmI<A9(IifrP/%gEII<\nMrbhX5jeu3[*2[2Z$CJt>25ZO@<Fmo8_NA36H:lH<YM$7\\SOOT&.\"p7(+t*@nV_41kXi:4+C,\nesb'VG/MQ6upR<;L%\\U<:i&9m(4gV>gm6.QWkoHU\"UV0Y-)_^?pA>07P2[Inn('h`Y,=s1#N&\nZ)t#c9N<SG!`N7#GrCZ#W[`h(6mgHgD>.hjTJa!sV1esY?e_#E5Od<!PsODJ=@2G:\"XPZ_PW]\neHWrT$V_nJR)8#?W=?Pje];_D!KlT\"L`R=dHjLT_f*@ZQf3^1V4]VEPt]!ALNR'o/d@li1?BC\nGhN;eu,oZ<<Y+BaJ9_4G!AP&X`gmn5nm\\\\R^+$FpV^E[lKSDIMDJ?gQ-j\\B8cNAC<)&r8Q`5^\nk\\dS7)Fj5>t!#9(F<*!!%VP;W*7uhs'VK,OtWQ:=PRf@DrMOILWB0U.eb%eP\\Us+1eYf]n>-]\n^q93Ut^k\\pQi\"WH*7J0>]2hWOto\\haIhf7O;&'1R0AJlgdJ9;EA$?MQ*3FK`:Zj<`K:\"C0\"Af\nW@ZP0W]>'!<@LU19rbP[?%#cB9lB^S0D\"nfkfM#VQ6buZba,6JleFm%eI@^7\\I)^o0,*>h;1a\nOO8QFG;[K\"rgn!3#^Cg!aOA0*5,IOkb'm<R\\PrU!1XWmFF>Hg$*]XOYHm,-38JWK&!*Pjjau\\\nPX'AI-&bgChlTTJ&>NZW`J9eV?0],:Pdms#o`X\\(!:-gK=@j9ou9m5<iR7U7D<m0Diti6D8\"%\n$+,k,<\"_F^riuUm*/J1q+ETLqH0icceoAFK-SRQTQ\\c11uAb]`7pkcbZkeWCgI<ot=?n*jqqh\n4`MPZ/r/_a[hBBVl]l>[paNLW/e5qH6$$[%<.><LGNUZ`:b>]e=m1gm@+X<KdI!<7[3d<V*Sd\n,+(u7;Gk2QAbXZ%a=^Ijq6I$U[l#0?\"B0lNMul]'&ge^eKM84L;H5bVO_Cl50KoDr!gV0bjCP\n2l.KZ<A.aRS_3O>`oD#SI$:T7%<RZdeO=\\HV2c.UC7W>$Zoa&G)G8]s'Nb$F?[U#s(k.G5h?i\nbt3\"mSAV;oU\";f,(_,.b&\"Y`[&?TDCM9#5Fb$IH/(H5%C<4*_Qcc<8`)NJbBeYg[j@iRCoDG\"\nK?:i,nS'$niekO7,=!B=u\\7A*i9\\!gpg<*CkbAA,).`%W#B.Eco<W3a[FD-t>Fb$GZX/T7$:B\n,Bn2M6sf(t;!_W^8BSH)se9rMioW\"/^+'P,[TRN`DK'Q*QR1h4)H/?Ih!5R[l\\!Yf^ri9:5Jn\n[QZZK-iTQo=@Gp6NPo3$.e*HkR**mJG[-K[+YP6Q_s[S(%0`f3;lRLDFgk@].:^o+ih3GTW?0\nQh$Gf^&;,3_LZlp0Ob*R4;MKQ#CS>gU(.XH$I3;#3G-<9HiZm.*AD(T2UDjVhL[3!*aVDA+<@\n&flX_Ib%>DjM7SFc<;%;,cj8aMH;E@q87jCfj[gr>3t`o$15*F6LD=f$[tV2ZGj^r.!BTQ)7,\nAn'.2B]WG1;,OY/;Q]rRQDemKS>_5.'19=@A5#X>9(JJBYSS+srhB=c4@&fonVn*!^h7m[p9U\n3Pro#k!qX<3hP;4:09[uu*/R/\"]aR7br(,&q)DHcMbEp%_k+';^+@mBF`E>>o\\n*J18:c;_6m\nI\"SCT-XZX!;O8<e*)b6'V@kIolQg_[mWkZJVQd)u16j-N#GuO+5#]]X'isG<<%n15oA_Vc1q-\n38AgSFOd9'eAbI3]pnMe\\M_9m9p)GCnDV8&[3_GoS044n[9(T*ok),(bkF@rPo_c3@iY$%alC\nJ1``<L&'(\\N2iTrRa+.5<UdPK+H,1IUFWq))2l.VqSH<1\\l(0B<#Hs(H#R]+Lg+qVr'MJs-iL\nsC*#j^C9'2[>aK:ZD;oK$_1SM*nnZ_2A?+Q@r<3WDVBW?dC?N4>1\"H3aF5MB'>`h^Vs!q\"))E\nK0ESRJOl?qpGhFhd*He<k!l4Wr`(<TBFFPYZ6PQ*otG8kHQJREEUH,.H<b;h(RKq\\ee=qM(:.\n[['&G2pAHp]lgui9GKJU(O$MQ9JtIFfqNCM:o8Pfe)6?G/R;K=c'WX3.NaQ]/X.7j2QXM%HPQ\nJ7)RUHK=/oKV]8E>:WON=l?r]WT6Q&SZ72AQcJ]\\n3]JGh88O`?Cj#\\nEG<ZJU=L7UU2,besr\n!gJAU<&1jm,0$,;j!PeIe1,29P'!J?5=hj-kE;&oV(lI@B-$.;OrKuc*5;h_mi_^R&UkR1\"Df\nZ:!@9EASP,*d+S@K%3LR.Coj$SH/`b0a+H`>jM!F8eRp!E;pkD:b>b?o]D5`sBV?uV9#+CLB=\nRbOVr'\"AN`9%J4&\\STWk_T1aI9*0Z-\"^u)4=I2:g(L/BiM!'6>em>0i\\^?^L8/o%crcc0NI12\nK;gCK/T@,(%_%1uUacgPH2>P.i_tguo5*GMrm[Du4k5OdQ)TKMXXY-a3dC/;D;2c-;oOk,;qY\nTE8#A%!WG&!2Eqe%a:7(n^ET+JL;rs,9)s6\\K:_(%U<+Wi:B=J:V.cI2rJ>n:'P,\\ZX<8&\"!2\noBH7q209bT'E0rA?&a4Pr2JPTUM;E=\"mW23AQj'<dA5UL$(W]1SY*dr.A\"SqrsJIHFlSG@:d8\nS3`H[,U`,`6eEt^26`r.Dfe<<G=$_1.PQ@Wg[jWsuroL1Rn,4j<iP)?LX'>IIV;![o4%)b\"N+\nH#B0bjjAo\"W9E7?]f3R:;F7VQ(Q4n%Y]5..IgKq<k.l;J?e5e$-.1eo[hj9Z<aJ<*`,o%Dc\"e\nPL^8AOrl!?N2_2@(Tk54!`Z(@^=t3GOJbAr6Gc_\"M]q&\\.LW+_5]m5&<\"\\5GWJn(((K9Rf<5\\\n70/Kp/JO9[SCls=>M,k7e&]#XoLd[q1aJ>pC;9$EBp]dfm_IkbV4M=q4j<,>JJ]m\\i5`g?L#g\nefrfX=@/GidhG1'iVi6MIDd5XLp6PO\\&P'n<UJU%L+<Q-^3<BZqN<K`1MGBiWkiCInl4/V@'d\n\\O[J\\j-VL[PmH[&b8jo'*Re\\VjZt\\\\C?WNGFWJ49O.O1gj!>UtOVE?UK`MtLo5*Ip/pVKn\\-I\njfo,=s\\)R4&AiEm#j#[lSXL,lT'-a2_elkd(;eZC/(rD_ul%[RnbDj?$Y;]qQRn[gAJZ_9=c/\n0=?#;73?l;pV*/s,Z^26;jI$DWX2X4WgNA#<'\"o^4&`i^j'SE<Gh^N>)G50;[h]=>;12GL@Oc\nXB/,a<.>2jIf'2qIDOZZR]Gj,`4V>T9i0U5Rp.ZGb\"LT)Qu9\\E+Is4XGXmo=R[UOB_PeZHkaF\nZEA0`E&8-;jDKmMUGH;W5)@ejdiB8AED*9$V,ZF%mS=n9!nK+[ntEX<[Ohf:nWhs*R1CC9O7R\nXN1+CZm_/6??Ni-KCu.Le;on.Q(lH(aYqL31h%@ha'@S%dBYAHC-E@$TAYj]_`Ka-9?NXjh^K\n-V_W?a_4VM_?<9I7M)8#C;`WJ7/'08`=YCqP)3Q`i>t]8h(EVJ=C1cVto8VNS+aQqB8T+n(YC\nDN1?SWCXt_0uh)cWoCd<<f''4GDe\"r!->\"UE`NoLs7s(&j@n*mmfQK7;)kEcOd..i)4=I+2cT\n,2(WW<i[_9u1b1E+nPuZg>1j)Ba020pi(]mXh\"dl;4VW)egXWBHR,F*[WWp;?=FU^-.LBjl\\X\n];C5>?)lEP1roCWqZqG<-+&9FVgo125sbpC#o5;6\\hU/9TuPu9DjXD/jUJg=k0L'WL=1tV@lC\nKQqF`.,\\AO>&:MU+56&LC-D87Ur&)tRe_R@-<i4:J.POjr7:<-a>NN_$VC#;Y/WK>VW1Y;P]>\ns@f3l`bH@B.g7lIA2Ni^4bK`Di\"#B`5]]<0DOm%9!]>T7\"6G6oMNp6Fq:jBDRp#lYBh#Ee]3I\nWp;F*po#*$X/a9@b'Y:u.Z*.='i.j@55:-q;]Rs4k\\*l%hO?7A7&Q;)4'eD1AG;\"s2eKp+o(?\nHce\\.1G``Bp'Ag@tGWKo^t?!o/4B>,LcEh*Q(&5;-:$Ti2S4ImA`?`D>)-;tA+=]IR_l.]-EW\nq_In<\"uA=;irapG*thMkO[VKpU3iiHS\\]F3Xs?o+fK``[K<nf[!ZkO^+j6ji6Z#7:;6?J?Ni-\nKCu,:YLAjI)(*uO_b#FAIH2UlqL;PmK117+9<Y]*o$_RQ\"`DgBFRTlei,#\"i^ES]?E)G9tbqA\nBOCWmbZq1)7P1#R_'V<.Z!\"9GK\\[Qbp$1;qZlG`sB@,8YWVgC5f-nn^?#mLqbNFcZ$BdFa^,*\nL9[a,;]4]o^f3miKW.LU*b;$];N3op>$ED^hj\\U[WhD=L24:[<<r.0*a2m>X!N#os=\\`8,Y9B\n=h)LOA+s's=DK&NOg,d04TRGgDrl=N^)^oBG7i8:E0NU8/K<ICWP.f.KfA>LuZ`ZK'gU.#\";N\n,2B$opA@gK^AT,`MV]7LWR3b9`EsH<fog^WYA;C;pcZsVFhF5V@#@!U9LLDUDXi,bHXt$LoH,\n8XX`U1&YL=V#?5*2QqGP$4B>%pb,CIqDGlJMS'kC/\",.4`Bt!m!O(FA<<d?BanlYsiZM9hqWc\n3lZ.PbG4>+3c`ZdSNG\"Q-a0/(I@^MU/H:=B,Kup?_U,`9cj*l(=XXVFmfJ9Vk*W^+-*spSRkR\nr8mF=gsKO[jUg(YiG63Vh'b%'E+h#W2]k$2ad<\"fX,n]-OTub,%PUoDBGM3MRuaN?aC@1J;q<\n`EU/Kh\"V\\5W%XD(\\>>'-5%dm$2;9U/YH0NF+6Gc^IO;XsLYecm(aWO.E,\\FO7><=$+WiPD50<\n0+*uFRl7mq'tII<($%._VeAE-`.e?.&)/E<g_$b5[X0UB/i;U\\g^PeV,e<S*.=9MIgDo$79M?\nF.p3aX<*EE\\H>c9V:8ae5\\@A(!(U2V.M(NdnE9K)X-PLts0U9i2JZ6.Zn2hSi-m`Q\\)0:PG=/\noIYQ,K^!mW\\-ffqSPI>3Q`gWYB$c<'42%T)Rp51H../I*E^no\\PO6SPDQJE7%JZ.K>FSYDRTZ\nQ-S%Zb>\\uEJN[JB0KfQ%h\\rU/LT0Q!^+_!)UD]@sWfq(KKiM^#<'s$R9&=e\"9N?u@A1C&L5MZ\n'YK=t=j1Y9nl;Vt3;4W^YNo>$>2-IkrcE3W(68]!,c-%BmtN4l\\o76].P?'iB,OpKZ,+Si.e)\nRXB_4nn,_&4=a^S<?KeSMS$L@E2?9<`Nq@%np!%Eb;<fIe<I+R2^eC&*_nLR7h\"pdQ`P@r1(U\n;O-5l06e0)n-1RnI]:B>4P!:qs@]G7/WHLu5ij%D@'o`[gs-X#ef@<)mpXu;Pr<)lQk5V9:Dm\n'!(Ob`pe`AaoJ82J=uZUMueWAHh+2Es+mXW\\%#951P\\`GD>bk@-KiIOis8REGGVk:`TE<U%jE\nR&V_!bZ)Um0=(?C#Yba<ga\"&[.fFujc5aK:HKLu%e]X,2M[gMKs(Z9?dulpToU4t`pV.@=V*>\nEdi`X>KrmQAl2;Jed$?FfMf709C4.F4b#hf..e@1/\\HngoHee*Cd7<r4O8p+pHiX=ma<n3gln\n)\"Tqcu%eLVCG$f1)2[Gq\"pW/PfU'a3\\<9j,o$jq;s@\\`a!ZJX-COeJU!H[Wecg?`c]jP!AYIn\n2Z'd\\+3Scu1MGAV9LdK?ciW?II*9ArnP!#q%<FqNo>J:a<M8NOt>;lN9hVJ4/#t87%;Nrb3/N\nid\\R@1L:3(I!XY)H-!%JT:O:<8hQ:uY8jb;[XmdE\\0R_*K]1?Cl1lC!TSM+0GoC@&+u5_I+>6\nI7D\\\\2VqMd9Z>aAc-<.$4S1RcQsh_e*\\5d3R&Y.*%C<),qgX3s8l;0R<V<0AInScJ;6lqL5k5\nH+T@Q/LTR&4dIs?;>[8]5?LoGJ9Bue/acK*L3L9CKdZk!YXaX`/(b#CuD.N4V%k:</frq3>lj\nXW!H+TGg]^[m_Wm^ZsLMr2qW3TQMR+*\\prZH,%<b>^jsb?F5o_n[KmP]E1#O-Su_9JrXEV.Vt\n9f7.7ZQ2]gF.c$k7^f7-Y:Snbm<:pde&m674H249WDem'+88b\\2HTt36qh^[iPtBLI9?k);[Q\ng2@ZqMb`5,5\"ToH.u.F3g+TohHjT7,c0@rl]q\\8aq4Mim7Vd(NZ?1^V5g5q$2h&r9G<jiUjY\"\ncQU'QI4UcgRtSCg\\5aqU;=A^sTEO/J1'tQ1Q<7-Vop40&[J]]Ik1X5#8(IM!LMkcc<<K*J72[\nkGd\\LX7*QOe$8*A\\nM@+(6TF@^WpB9p=l`\"1Y<A%XQ?'kK;VuH\"aI#KB[5bdc.(iMUG5bdAdj\n\"aW]YQ2,Q(fnPVg<5j)MsB,na])b/p!.c^(*#.5)\"OUDfA#2OWS.^!9TT4[l1m?29W;?WE]C'\n'9N?s*A1C<;M?_tb8Q*L@r#oFI'i`tXJR=LWALaf`;%ba8B6-DgVNe(Tlp(ijC/*5q=SLKur2\np!a%k2c),VW5/%#]aE,(hBPCXMO'm#rC>>p.PeT*+cQnf)aGjf;:-N2]e&Lt8<XAlY+Y<<]6L\n7Cb/'$U=W5Fh43_@5P*Yk:0N\",X\\HW\\[teSY.-57X2e\"W0*F<+<@^7e1S'cOP_t^t\"&.ehA:9\n_sBApA$Q*nJ[(;!A'D7r2d0idTf:%m;$a_#=Z?1h*pY/sZ6n+CK-\\$2mJ<2D!%VHPtM978`g@\ndhfo=7WQ]o:38[_4%@O^94tn%;f%Aa]G2dEPM:u!G#*Js52]/rqKJuBtj1WoLhiY3`6KlkVn?\nm#dkk=Gb_NNJDplNc%m1mW\"T`+^t;gBeg*W#&jbO0#!!fb2=-\\Q*:F`mil*<_Xg1X+;U6aE&g\n]A-,0!!if<Q$4O96[=;sc?l\\*oBhp#DQ@Vs\\sS*?ei1oBiGn<IMUES6H/o8i:S3.!NglS@E6r\n>.k.`fTtlt`e.t]e^0T(6(R;9[D1*=abKDeRaG(LR&Uk\"@]K&GQ/am67B;Z`RCFTrkUpZ)$\\-\nDY@Ec</4^\\6[>HK]pA_:\\ua>An[@&cTs'9&pqLs*Ll5`8iPef(9a?B/cLWNf+X&5s$8LT3mJ[\ntg.Ergi<aVXgF[S&7(%<R#3W$;=HW<&%BdP03fpc^.GABoc)paX^@bV7lBMZuKJVlfOj2#c\\2\n+Xa853fP(m'^f6-pVD4?G:`Kco'&;csBK^CngS8D%g+R>fhYtEdF5+\"&0]#H9$<*dFWcskGYf\nXi\\P6@_^^f7.$%oYnBWC\"r,lkT`aAp6jhREF^)P(pj2`q<n[rVk\"$ot0=>c//Gc-9-#3K7uct\n9Qg$=$RW0K7V,Q_T[_AI>9olL]]\\,%-',b(/@/aP>8]O2=+C$!.8Q5aWSV0cOaY1FP6@_^^f7\n.$%o`!EWEP\"^3`X`0MNNOjRdVhSIX^6hh;5bkbO;E.:N[XaqT?dR>O>0uj,G:E2><lh-_B4!]\n`UsihS-g*^'<_-WnnT8CF-8e/\"L5`CRhAY0<*>1M*2f7Sa$EX^@g+Xg>\"PPBr]d\"s&9`#WY?m\nj.b5kF/$46kjgBcF)q!&B.W'l(_CAkF55!Ln$pcb%b4&C=YmaHsBS\"`NUF`9?)\"reATIqoHrm\n@5>k$,iVKqloRD$jiW`4GR691t1%cGJrqZ5f8Pp@.r7S&ePXSa'g&0L/Vo<T6cYo1=s\\D`kG6\nH24A<^f7.$#u_!RWA]?'_<iLn>'%#M(?^FQ(/nctr3[Z)OJ&=PT\"9`#@:@!CaI6+ZW=m*24GK\niDf,bVC'ZXj\"50poL-(5?)D<\\8`Oeo_gQi:l\"BW$/tCG8#=E]9!<PB`t)^f7.$\"&jn#WP%M-_\nt.PTDT]apPGti%r^\\/hOJ$uET@S27h0im(=^W]\\&#ma%DPltJW/,)r$X.P7AJ$HWG%pqHB<!+\ngCiucPD?PgjrH8.$FjeJi<<]6L72hPN0hKnSO2_\\5LjGc41R^u`;ts\"@W1'CES*#B2]5-ea9K\nQ3&!N%(1OHZY!5+a*beXOP;%?FI'6(Vid%XP`$41[^kR;*s/<<]6L72hQY`D]jJP#QjnaFA)J\n^f?Stp^2LFN_4l$<XpUmBnU1*m-\\>k\"fq<Sdf:sR'nM-^9P'j0MlV&i:e:@5b#4+!,\"sl$S=5\n01qu:0(;uQXS59F(ol'X\"T<<]6L7G4)DkJlS\\0)6loJhCd&SO&rjPI;f?1DOcc0-qLt?c^F-<\n0pBC^V0>Kka#cZ/\"^oLENB>@,4I;5X5:mrq+rr:9(V)-T#f'9`JRj.q\\Si.am<3`:VQ)]<$u=\nYNPJL.R&Uj3B<%(>eaDlZ?:U$:!D320#8D,W1KAb[000t.P_L+6M/k;8fup>JM7`#R&m5T97H\n!-T=$od)f'49FMi3UN,Zb=34dqUXB^+=C_IbW6-1TMfWf$*@$aZSAI/JtANR(lfLhA3Xja\\MR\n.POjOb0*cE8ZLSWA5JG(#Y56dnd08HREG,KX]D#F3Z/YA;=0o&a2UF%qU,hn:>/o;b_o\\5.KU\n-aK6.Z1]19M=VJ:k]!RIi2qR+iqa(;N=pkk]CDR<%WH[Y'PNR#-&5#\\#)WA^9G.RQL0WY1S`W\nBr\\GU<iY2SXZ`Q)?a--WP$O.])Ep:Eo5X9aXF0Tnu4Cp:lJG&L,NC>mK-=t@u-4N_q.&E,A\"r\nn_,OD^/KET,7@(\\\\>IV4;oZdnWc;+&h^PATX\\$8\"pAXTPn<OKu!@&d+hOf?ViHgU^NJ*l-DST\n<\"gqV8^q\"(+*8B'oY+eP,(\"\\F$)fpAWWrHnn=K`fZC_*&5$E];n@LS+rMAb*/0>Cq\"nKl@Vfc\nWSC9H'=$Qlb(WsCPYTT:m9Ym0?Mng8QAdV\"lnodU<b9I(FfMHArW?)aU5Ve=ii+Fi-hhXd7cS\nl%mcN;`Qj%\"\"8NiF+@XSWe$rGc*q[\\%'QAGMgNb\"BSN?bSl>sgSl>X$gRf73Hj4*8Z3;OGU^M\n\\7'%H!k;gI7d2pH,tAZ$EFV;a\\:f!3,i-@1\\>ONO/]]leb#`=^f7-Y(K9iNWJ8_BfgoX'mhkn\nqA=.,hb(]\\)$0<RdA<a*RK<RXI@DpQI!NOD0eSZ#D1I'>-LR)gp1=`)N^W2t),%*/3R779P2=\nsS^*AS_!_@!:R3g_D(#K(NncVUN#;sgd]@2u6r0NBRE`Df,p.`\\=@5Pps`3YD'aq9GGKPWuDH\ns\"5o&T0$u+'ZX'+&2eRuXo-1)]CAT?bReS24r&0;KIWjn7AG)H_,P6rE:?kCh=bcr#hgMX3n=\n%nC;]L@AM@+5b/.,%IK#jkP#Oa1I#af_,gTFJbX-;Wn*cQ\\\\[8S[-)dsoS;aJ`<4\\iK'J?#&h\nS,^$pNMqO:IStBQqG;b'Y\\>!<D?3UjpKEO\\l*f`T_ujQ<8CMRpJ;#I<@Q)-<+#RY5JD/cYVt*\nmTHr(OAM0->'j',dg?O_naJ78[@LK&2&H,;1IV`e2\"\\]Y=,FE5u):+VKcj8a6B(B^8rl[/eO^\n)]WZr?U?Wj=J2L.A6N9N?tU0\\(_9I`-=GNR,H$!_cUh<)@;td-Ar;+8k(mA`r\"M-Jg`0P:=Ye\nfZJ(OM7JtP#+1:f7PN@X7(6,!74;Lpht$XtI-u1`pAU*;jS#6AF`+)1adX=.hKWdJkNYcAJZ2\n7=*iAe8Dmt#\\j6_.J4`28%@k)tml>;Y=&7nr*MlV&-=P7ognDDoK25,],KJsCIWggE0`0^Ja7\nj69\\Gr!phV-BpjXsl)*-(Z3]q9\")g>[I=;@;!1kA,JF=\\X@3MH2d!E?iT/1TDAYWWX&nee_+T\n=h=^SnXtLA.NR5j^bT%L;dirG)#aBAZokqEp^\\0TD:`6c@_H4Sn#7>t[UQF]i%%58b']BX(@&\nj!Qpuo>cNAG?7o$:YP*m<IXrgi<e9]`pek4*AAWQL;V;n_hqeLuC>+8qTW1eHg#/g1O\"q):p\"\n^9uQU4eT@JjQ.mGQ%f9;OZ?#-J5)!%$uhY8Lngg3`o\"P#UKS%/rJjRB^LDdFs%[\\;VV5ur<V+\nglGl#o3^f:.Va])oFHggl2QO_g@,>Y0\\4QhocWG#4.rJS\"'SKHiA)7T`HBa?C-R?M$Yi?1?'c\nHT52ke;7W<ma:85;P%:=.sTpfr6UB<3B3N+-(aW9N?TgRHgV]IVU!l\".t\"dPGs/Zq=NoHO(PE\n,IA2&G&:I0N)aVN!ql`jr+h;Tc5s8lq1c*\\/d2^gA9Z:iYi>P]Xm$YNWKIbADFW%(1)!e2:h>\ndhYdO?oJZ:QP;[+GcT7N\\bZ,aD/LH72_B=fFK#IrB=h4sea=kjO6nCDSR38T#M]:_+HJ0NF'q\n?n/'7&LT&)/O\\E-VX#oB>^:Lmb;#9gX/^FI+IGd!`0e[oWQYJ)a](r*.SlqI2!(-j,!8DRot+\nWn@S(GW./X7.JnClX)dk-cpn+M#dI?D<<-9J'Pu\"<h(fP;@UoM40@Zk0\"3_?`!r=WN\\VP66:e\n!$bYg84S)2eT]TQk6O<<#Pg37HPk_.`rjIDf(=@H_,N5Jh*HgF\\/HFQ6WA,<F@:2aY6_cV\"/%\nGnoI\"N9U-EjlB&P03+Y5U;eZLk'q(8-7oW3PWNncg.od>LYYXhiL9!i4^#\\T\\(X5nG/k;)#Wk\n_SC&n%_OP0/ufpl\\T.VAcT,8RAupKd)+L9<jHY%I/rR;c*_W&QKKS._@6:>eOpNr3q,Y#,5:`\naAd:a\\8mo>QhS.>i3QL3)m4\"W8s6/3(fF@A.PV5`<AR5._c1&9.dnSrRS:,<s(-C`9)eg!VSZ\n\\R\\.Qo-8dKeQ1oNJ;9LWYBd2/5!RAtbrYPjHKL.^mU8p!$@D:O:iZPgIOcthNdn<];37@pL\\;\ni-@#WEMkC+/TB+k;0L7B-tfQ]t[dcjnJ2]PaR'=0.Y-YrZ'>_o<q]R<Wag]mfWuI%WfEbKP&M\nmWSCjORe&T/9Pc=R<\"AfC<S_M'Qth%d99Q84S>iO]YCCNf],uR&FGcQe>\"P_kV@'qo`k1_!g+\nh,P9F3LTG)GebH0\\G[&7SL6<d$DY#FLCsbS`*7Q_=8k*)2Knl555U3c4Q:h*70;.S$N(n:Q5g\nc4_9&V5h=1@U`oKDN\\b!WQ:9&mZ&al)IIEIdQZ/aejdFA7T1(ib't*r*!9,Z$qchYSX%use7`\nfG'X!`;YH4n>IF$aLs)4Nc^TojDRVaXBWM3<k?n*n910$8)j^p!rF$>\"c.PFEE;+g_Ica$$GU\nk>X57fc9uBkH<tjYP^*;odSG'#YbRZiB8W9BV&NC2rd]4)TPos43\\3fQI2Va\\2[*M19<<We*:\n^_,OlQAZ?PB?0O,*K;hDeq/hu!b^?\\i7Ob%1)p:ZfK^^O7`[tsiV2+3UYG>H2D1JT6bq+XLps\nR#7()>csOiP[AC<4Pq-7D5^Fl)$]VuGesA+?,T?n*o$1\"FriYO*&'3m9Cu<9Zt(cbu'>/A7WT\nMj:8feh/=]D&p:H\"Q(7tH@VtCbp5?EMKW\"a`@&Cn`DMP*_GmWZepRfkfO`=*hV*g><0^mlo-`\nQ/<<,sSM3\"W^P>i$h$;4:aXu-HLq6VlArGkk*>)(A7?.W;^hIXR/O3F-%^f5tQF[QsE$<K1lj\n_9j3\"\\O`Q>.5Jt[^(sU<@h)!f`T,k-DD#N!)n`2M5ecaHgU^NJ),Hfe.&;?4C_g_Hp7?Vo9Yq\nr3bW9,s'-LA.JXnGohi]C.Lp;VF(R!X'sXAF'@8Hk6GZ7P1TY#EP$*/P[iG7?XZ-Z>2HBF&Vf\nks<dH?\"2WPl`n<%jiSZL],N?dbp?W?TX`>lXA!DOML/Qi^4*IoLEb)N\"jf;m`;\"VMb,3LoH+O\nIffPO@>tn(\\(s9M4)Mr)<edS[5-^<Og5%ol'20]!%]47lWAXrqImHZ+ST?kWHZaV[]5_c\\WF@\n>'H$/#pL>TT7@jN=<X/nGo9L\\<GT66o1$sZmr;`[!#/8A2'140;*FkcN_#Y3U+S?-m3<JIIcY\n,VM$M2?ka*(d/:VXdM\\%9<7VNgWea<#WIN#(0U'lhHL*(hG9h5!d`u#c8g>F8t'=s'G?X@=L6\n5Zb[?9MO<0Q$*N%^a%(rJ<V)c_Lf>+V8ke;>j\\A_H16kXub\"Yf##:\"bui]f$0FVtX.6e>*U5&\n8$!]3*Gg9LUqBs)e41L^Pa1&oh+*WkoA$=\"6ds6h>=\"A<hD?171[-j@nZ1;K\\CB1eC,,;t>\"Y\n*G#ubA?<tgF:X'gDSi<UkUlt6_q5Bc.]&^uMS]!LdmODkZ`5]Jp5(6_E*Q_pd;\"qA<j/%ke]Z\nj1^Ju.F,plfm)GO+PREBLe%67.nkGI_PJ!GUsMTWLjHdW@(!#YPgbl]@<paq`0;LV(^>C:nDT\ngpa6LoNHh<Sj#k@>@bsU7nqo$<d>ceA#6J(8%T.;i-?sWEsoIl79oah47D;VA_MYF,6]Z(H)d\nUSP)'H*DAn>*EA>Emic%_k.t5OZ$#ikk/s\\O;qX!rNV`*([!Gf;W=Fpd<P<kgC[fkP8WKa<4B\n#g0W=jA6rLuY_Z8,,Ho#\\^PPt+bQ?n*lC1=a[dkpPA/>ens&WpVm>mbH=^V6Ar@SW@:+AhX(9\n@O/F*V;-Eb2nGc'H2ZCHb)5B3kf'u,V@'.?q(F:-Q6q*n;6m2MGH!-K8M3'\"+tJ$&B672iQqC\n&*9]_J6C,/dJ8S&qs8#;:3)E9%DT8\"VV2Q\"p\\M>g%VWnu\\%Vg@Ou3>:)J)mg;Q-/qg*%MP-ie\n&f`fe]siqa1\"\"!qGh4/$;;`m.]2c1;DjlBRAB+B:UU%rW3/WlZMKj-%q$jrdE>MD#Ob7[]\"uW\njaAYgK\\%J\\_q/r1>gmLK0QDlcc+0+7kWWH+UM2J8pP>k8RZ:?<&MLEa`.B4XnQFY[1>I,.F'N\nta=MAq9AY8bXAqd[)L9I4872M^CD?3aUnYj*Q6I<;N1:oXjr,pj8%3r@]ZkF]?HPGG4Har[8G\naF.uR^=Gf>UrkPR\"f?$J6nHrketGAmH5+dL-SUf\\VU?6$A#f/roqCRq.n@IVAh&#)CAmH?SGq\np]@&f/0@B,Zcq<cHUqq]h9RHb`Hrnj9U?ZHt[R-(]/eIP@(%F#@IWmV&Y.XFb(<8L++3`.&e_\nh;C[]4!TZcVi[RVA`30*IdL=hg+46DQ4%;-)Pd]$;+3!VYZMVoM^7.Wi.FZfiPpT$\\-s_C#I4\n/!)lTRdZ:?L^8f7B`Y0)-3R#/hH'SN$9XW8l<K0(?\"f;o23`?2.WNO\"hGA1LEMPG<Oql.lTqI\nt\\>N7O809D23_;^Fp0&QO3W6P[pKq;uCoF^*uYn7X8TbuB[%PqE$H;cR3T0dSST:m.i*<.`GQ\nk_.dVH0=>7&\"inDiYH8_Q%f9;Z+-7b+de/cs-mr_(Aj5LaNA=i/Z.f-<RmZ*h,G,V8kb(8jdD\nn_3\\%u/7!/!?G$_%D;YU>mPoF*\\(0@n!Q+\"ca;O,X<^/\"@XkVcS3Xn0m<F1]>iS#U3EWmF@<J\nZ6SP_Gm*uWjq\\c%ItcEhRQc(:(D[&E=DJ=\"&-\\n.[\\@3Ej\\m.FdTR8]c2ub<EuO29I6PMVA`0\n,Fjj9_f,o&ran=H5P#MZbonMt!<HNbj=Bl#.8U4=1_c_HL/m5Sg$$9NSdnEbmWPfLq<23$bhX\nje2ouA%JE^lp(;YWnoNrErL))\\a]!gnk\\<Q.XcQ7?d-7jI'Bh-15n=S9h#Y$70\\W@BTeR%g\"k\nSYU!$<G6]9oeE%*Y9VZ^T-[F8gX3f9*3Omm]L03D8AJZ;&&>VCNK13q3q(i#bM2_qkpEJoDcI\n!?M(+Ia*(d0eH=&'pYs-'5.YZGfG\"16b^L/N,=4:?VZg[\\++^_=smP&!h^(3$7q;a'PhtpS9@\nJ.]iD`^isoi3kW.P\\msePMEdUu#a:YA&:9kFAa\\PBG\"ee?rio^f2;9fQs*:`to6]01\"83c?S2\n[Fe,L*o[X&p^\\lYrWX;EGVDtH!n^NhAP)?'l<sRXWTW+O'/+FkR=GI+R`)-M5d28?\\A+gpMhC\nIOu'f7n?E=KBN<V85P0CO2\\^`?JtrQB\\3UoM40@Z\"QnDgnJ8.K&R.;K[O?R\\hRs`!)N#RroB`\n-LW@5WG%5jbZ*;ZV=I1s%8<%`Oj$;><&P_Ulb08I0U8\"LR-IoUrE$*H'eN6^b__6/F)qD:5<e\nDK</I@MVP5d\\9I48:6AI]K=&Q`N<7ScU$PoeSW@AQh.N*pqe`.0III?(G?iJ>o02NtGqeU4qf\n4:;=e%c/AQ%f9;E>bgEW>*?7R4?fCnm/,ud7RMDXQl[_9Rs*Q'ZsCQ+90U2>6`[eJ#ufMCjIT\n0q\\8c@!AKcglceX)eu/nBPAq;P<&DUHW<2IMU^JIYkNZ\"g@]HF=X3A<Ud$Lpo;cP0[<&+eiW\\\n^R0IGs]TD3AY4hNuMeh\"W$W2lBOJA$XC]:1fKSJ2nK;Ta7Mn=M8Gg$`47;@CjhGE0`/u%]69&\ng8gP5]RT^krjGR%JZ6R%`)JC]\\oQca^NfS8S)b#XFU5W\\00_CnOecHl::W@l8YAnWdWWi9O0K\n\"J(P,RTj.e\"^H1`jkQ;2Q];cS85<>MY#<#(cm7fH)(p=X6=5Q9u`s7YdEpKqM6W_0&hE4/G/O\n?s(K.0qUB;kt[F^f9\\#0/ZF'jlfYcAL\\X3p-67'Yh?sp[6K/mVQ.F21@f(XQ_(qfb44kSn,:l\n\">COm$<&/)N$I;F0Kg.9A1]g@ik\\[DbWcicpONc@UE`g%Sh34h^#<TZpB:i:R]nobhjU5HG3I\n*C1fk7LZ5P`n,]pJLL<0\\0q$d['H0a\"t/BM^&oKd)mV@@F%5>;0&bLh1C%3@s'em`AH%K:Q.n\nZrmN:>l8Qu4tr7`4IPK2Vlr;TQ+*(R]ZUOZ@Mb8ZWUs;J#'H)+.\"\\FU#V_O2A#27<]Wc`<<V9\n3!mJP[-$`csOW<D;\"<+hi:p5Q7^rKCHgnGuWIdI0/C$@b+=RhB[P*!J#2RC?S(E5uLh@+lS9m\nSrpnW]GpdI2NSi,p4;,HK`1\\gd\"k6o_ZqPQiTmW+^1X+;Ek=`h=)1R'c:C[0SL!0G,kEq<Rh*\n*?ECa(:Z\"82gj<EY-B0dG1#EDUc0H8aIrf5h8)t2>A3L5lV8p0(q3,A(0!?AO>$1l)d<H%r&i\n?_4LF&:j+Jrn*DAT@fq\"],?HM/@5'pD+TlCkt=YO5&uD9nKf^[Mc1hbG@R2^_Z$,I\\-ll6N,)\nVP<]@[Z[J+a-SW\"SkLH@_?Veq[JNP`*jkp+#MsHuWk_T]E\\l7.,9JNih;m<DIHD@GqnIQ?j)u\n''mdqG/S(-5`?4r\"D3rKNQ3aYm&N<4rr?n*,CPq7VN^0&I`<9\\L,Clo6>Wh\"=:KD1`d>kVO:=\nS:$JJZ2c4@&au=R1X`DhUa`S9)/<@0U3::o_VPi;j#]<VFpJZkDh2/1+cKe*>[s?%qVc@Za$s\nCb&$KXM[*1CCP\\t$5\\3F'N%$bc#q)]%WOY%&_B6=2qO'rgJ>me\\\"]J!\\2@YFQEWQhHe`FI[<]\nOId\"B.a)LoH?fh&$#LQqI@>J!mi-8RMNsBa?C-YJ\"<n.FY0QYfo-D_,OFlp=dG78#cni's1f>\nC*fi#fY:]&.lgPMDld=r-.Yf=,5G(9;\\@alV@!ib&sujXAP*ST9[u3WAj[ZB!.q2EeRbc;Wa@\nojZqQa]5UJ0D-X$5>[8+Hu4.-(In_+AJM@/d/K4]mA^E2+3c8_]d*>b?f.POl0\\kLXYos6s0<\n*:sk!crF_)&P^+jD2Jn#r!*t]jN<Uhko?dl^Nrl9\\#W4)T=0[<O>q'2,s7T6-E6<1)41H%G\"8\n(,5G(9;\\@b'[6JE_nMU2%%>P,DI#M[;C>]K$]3cRP's/f]3N@Q$YS&]kY\"T#ngmi=`$V[B?^f\n7u?m_=*iEA;QLd_+V`\"?0C1GF3_C94=hDgiYGSJZ5BoA1C+\"Y9$^oVTK/cgiIPR<NTCYQ-R:H\n\\t]8&U(+FW?!Orue5GBi^.bb+C?5qHGNl\"ZeI_.0;H7,)B[of<Y56\\d9#XaI_1R)PlDK@&eeN\n0T%@Cn=&Rh[0*FGpe;f\\7J;bLQ!.Qg]7VM\\F!<23$bMNk*M_8EN$ZHc0EKg0T-TX%>mXYcIK9\nZ?ERQn$ZG^6U8I%^Z00M+m$!WiE<29GK/&<!Ns5qe2.mU15[(UBY`nQ)_]n>,Ia-.Sh2&<9t*\nIWM5!PV+SM?X?V.X;cU`Vf387Y;ankbe]Q%LO!^hU3i:'3V6\\CkC\"!-N8jeid<,0UUD25r,K%\n<Z<@D3gJSZ*UMf<#%)WM3rt>?cH(EUj\"T,ZR:O<8\"<^Huh+@O&h-\\?n0#j.#=kZ3IT1@Fp#c*\n##bh32^O7T3n;]IWYuqLDQ4%;'eNpa:FB.*XQ`ED]fO.l2m`Nt79EVZK=^1F;mAD(hAB20N\\:\nrk:f3+f9Y192;`R=FQ)Zli&53h<(L@r.h6/i?M+j`hPJ]=<-_Gi2Ymq6.[%gG/;\\`:/$U(5aP\nT=*RR%U/fLRC3R8XQLr*h??3C1RQB'rdruDZZ2nWQ\\iHf#dN?9Vinr__a;0i*m;L9qFJ$8\"h'\n&.O?:!W%)B!(C6lE?AcWoSa'0JjdE,P>^V$<m<pZgKUPTr0)UhcQ%o7%Bl7\\$`?MD4n-g!O?n\n)JH\"'mKia-X&k,>hC$_]2;h'iS,hWN,po56OnRW6&$,_I&R5q\\(qU_<Z[8R@A7_\"Yc3r!)lIV\n%&SmkVF4-E%WaIl&MfW$=4I[3j9Cjs[(6\"kV`ucR<(]&INk%0*_B4VWBM^&u\"Y^[La^?SapSR\n+-H.de2W>m\"`a]'UI*mMqXV9-K?WZK`)VU@gP*-602Kg-49d%F,t$=G>!PJL4MmS2#9EX,cAQ\n2%r2:o^NqrW?)Qb.j@E*nG#%dR,#pF&PX;:;:p-0e+Ts+*l'aN/dEMZjETB#V]8QHfQbYAN<H\n@kX*HlQ!^QVe\">JGAjN!q/c8TT9Vj+.<AD]l<Bm$plbHJB1f;E6-^JX-0Ot)B$<LUbJH/WF\"@\nl*bE=UI#FgSQkb3rABUoK\"\\>55-2QqAJmjj3>TF&PjAN]Y$U,gi>8Mbj$_/Ql5d)T!sXPs?0Z\n0.u)Gs$`os*FHTIg6l9;_mH!\"j@nZ\\X\"p'b?Xc\\TPK(_c<:f&O0NEE9;DPmAKM;)`h,r2I\"fe\n/D0NBViO/OOGa6*pd<CQb,S\"-H-^Jkr8b$SUOV(IZo4#c>$pe/*!'X(W\"qmOTp7qo/`<P<4TM\nlG9gD69miWAl)X$;0+D=bHW7JJ&tM\"A96%)G4#'V(,5L9Vj<u5s%$5&Yit(9(@e\"WGI-(Zk9t\nuS6l$n;oo00.PYW\"H\\i4GG,fU;<Afl<6;(=K6=9SiU6nP]C4^VHC*Q3mf$2@<hQTSO;64LF:)\n@hP9XT<<T(Mg^VWnAQ9%(MS3_X,%&5s/\\Wc7GKZ]$_j&PNq;TG,i@@1?ctKrGBq\\Z(Z-2-W\"\\\nVXiu:o(eKo;4s@b@&e*pW?_qCWl%fV8h_u\"e[L:+9g)5Q9ViC_#j8'O@ao5MbaGKQ/T.GcS>i\nON-r=%RVWnAQ.PYV_BI_M?Wad?BC4Fc!k8W.),:('(3g#&6DU&\\(;QS=RfTK*ET14C3iaJk<)\n%PKOZ+s>NHj3NkH8no[8PJ&PWiC!8##dsHS#Op*Ti?)3m16/E3h:dQ*1f=Y<@h'/W2U/\"%Y:U\nZ^a#l%h=8$=\"B1HDlWBRTS#QNg7>RG4eF'#0F&VH:W7/>gjn)Hf^RqNL[<6\"nU;0`.i\"8uNme\nEkLGY(WW%]?LZX@uW:[PKU;KXdFBm2ekW2q@nX3j\"mF?.%X2hOequa^AL+_XN%gMr+\"\"K(+ql\nU)d!A95^VAV5h=1&RmmrJc#^Db/]u\\DU,KUQY7D,b!5gMVm<J63m?(GacDKi4#huq;b;9p@>E\n=bP+/GNh5MkX<J4K#r7&B1P0D/g(B.45UUid'-;cSIkW.qhH)co_[,?/+o7R3>-0aBq*DZ5mJ\n>o!:.POkUpm=\\.\"b5oPRpp8ML.8n5[a$uGL8j=$er,?q/]r&ikYOKD'<>j`$>ig^0ib?$<Wg0\n;,T`,U<0cljiak7S9N<rj\"^n>9nM-;&%OWK\"c*Qo+@bj-Y1aneek3g,&L>MfC^@^T<p_B1=&R\n_X2TPCHpJAWftUC:)O!\">`^d,sK9on_[&V4T]pkN4l7Ijrs\"WHt=25rDAr&lJLnT:ns?F.h)0\n\"&(\"Wj0Th%8_M3>Pm-)%X,l6[of.Z>qWGaqqKX<6DU+OZ^f7\\gALa<oO??Id1J(T#*)SSE*M:\nkO<D:AU8\\-u];Kafh<F$]J!t.V=hd;m??iBS).fHtlinW%ULsorV)Us2P2FP[JW>n(g@&di6+\n&N3=Encu\\)YaH&W_1nc`L+dVe\"NUZ@&c2?[T&5AQ-9gIM)->qDX($9nO8sjBMeF3cc^+PRAq0\n#<M>h\\mC&Y)?n)d.-gu\"rVn*^D<P'4\"_,N]-D5eFb.[_P^?Dc/CLuXCQlfRP9B_Yu#0N66)R4\n?;:C$bWJD%q%NA#_$H>Bqiu15'$p!V0;g99l!G8h#XobfuQBZ+s<?iBHb;,%@RGnfJ3gD7@>\\\n6oHB`W%]*dMOUq<9U5D%iMF:'\"gq=?RAuLG=N]Du=N6M/*5GMTdA.f/1I'q!8%klO0NHkE0GR\n$PT;XF]LZ:F+`0e\\$!+,Lp;,I)7_,R6VWN+'GYbIYeAtI]A7fBK^US&BKNdBJ.!E8dsQqH\"&0\no*qE<Jf9*;#!\\MJ#^Z-<2Ck>.U92%CRr>d?J]Ym;X;YRhY3B38K:D]o4BJ%LVZqh:5V'%Of9N\nce[$qEP#QGlJ,@R.<!j9u6\\,VG,crT\\_%;FM\\t4m.m<&@F'iXe6<4/*.k\"2SqqhQ^UQ&h+X/Q\nEI*3&D!d_c/&^OiY<82oJZN7jq3QPRai1ri-.!8rQTD@a.hOIAn\\1r`\\9+7+K5!HmU4>>,jP%\n/u\\[q_c/TaJP)Nq^EKI(CYo7n8Qr%=[(Kh.9\\7We<Iq.I_T-1@'pXuG%d,GD\"XPARR0q2<.Ip\n/4oeKN5h<?iWk%7c,3'GiDWEM%1UHWul'd6LubC=3&l7j8P-0XE;*\"I!VJ>lB?UQnWTWgB[ll\n;#+a,i_,i.I2lOD4.W]TjD3u.1QtG<RjZ@Tp_q$E%i#(UjOt0E]A\"5cbI:iJ>nX+U6SNSWln?\nfDOOr_1$a_WD4,'DS_T,!b!/B?$VVid?n,S@,ot98rpt%^j(9bdWAl`'Wp2?>M48+qgdL*Sc8\npKS4)2:r6)j9#O<!ZhVA]mtQ*?\\JES0.XDPfa`MF4LF<>V^I9NB\"7J*k8n9gM\\._)K[o*9H(g\nFH`]TO);##,Wa^qWBrC@O5XIr;D[?.<8_i-Le`(nVF$H':[SQtMlFY#2de*]!N+9V9r?W.GYe\n/=Co44oV!9\\ij+o0=Q\"NLWW%^f?Wk9-><i/3HMH,ZD@#Lukh(_:[-456Bf&>8,mSTXW]S!3=i\nH%C%R*%YQ2NFatm$YBD@k&b'\\E0Xh2OUS`mdqIE0Tn\"3f&>8,mSTX'1:p56_I)'h0rq4`j(C)\nFhI6ARl?l9Z,aEn7.Y(6j.^;(k#+/$&3r$]X$<.Ko>H05QYpQI@Q<GIq#?-bR):;>><Mleo-8\nH6523Uu>.TZ4C!,JG]2b@!Qc:o#PU9+MrEK:0p_l^EJ^f50s_,PLgf2=J7LOH=)k$TZ<r?Tot\n!N_]hga#l'0S\":o;:%d>3`D:\\?n,SLjW2XY!fV#rj@n)*.O:treA\\HNmsWG7e^i\\XjX-t,8V;\nR8l\\]IST/fj#jhHk)lsl[c31?g-SqF\"QrKMLcHhkun%jbj<Zr(C3$`h#6R9pf.g>'/<DN_\",R\n@>W&79bNOFb*D_\"b)r@1/*BI<KH<N.amgcG0S1gd<[2m;k`KC;,+.'D9nKf^[MaM<q[8mJ*;X\negshafb'?9QiRU^JpmB2FU(4'cnU0\\ZWbLqs*\"gmi,2dG6<0^rS'/C<&IbE9<='o;3c10=3Mp\n=PO%L-=@R0RN!$I)P`0mZ5&QmspZTAI[GPrj1[aAf,7A_6.:2._L)gdL*Sg:@Vb,r,h7-D*Nn\nfI&n4/\"3FAD0NRnNN)RE#DShKTZpo*E9-GcQjSTr.++9`b&_HP$DOXQY!Kb&?t-/$HE%<DW^5\nCU<2:+PU4S?AC<M)P9Eh(e,tY1IIB\\WAWm\"DucT3n]bDZLi9%<R/R&YrJH@Y1o<0#s/3`D_*?\n(o3@.Q^S./c6@\"<'##@1;V\"1kDq`[_V_$R?n,;PkNVJt-](NN^3$cO5S;@UDLr4iXXhd^rIpE\nk;(0`QU'\"*.@B\"`LQ'fJB;cUN%l7#C1TMhr@YmO1DC0c\\aJZ04@[[5!5qOd&GQE$?,<Ai.&*m\nIXaWZkD!<fPC![=uB^0ib)#/&5,0Cj-pt\"f@0#eajYZkcgj1ED-P/.S/Z1e`bf,<Y]IWFoA/O\nU9?2t+(2*\"iBEuN5!(rFk[^^[jhL5Mq?Wr\":_flpYmO1DB3c7$4>J+,'_%bf4$RO@Qms`d0<(\n?M;cS6A=t!;MW!ZN@Wufp.XdlKJEta8BB^9R6)/SqCUB%?kSHi(JK]fhK=ZP:)h@F'F!*.E%K\n6?g\"8I6pAgr)AkD&j$!*X,Xtm<iVAPs+#fkc0)eRA/HLn'=r5WbJE)3ZsfIaZ:7e4:8;rg3G@\neO/kGl.d1uAeX#@8k/gT)PL>L5\"],r8;R\":u2c9@.[a%@!%I-CK42%BhVNQ,:1o;`H4ASqDS&\n;AQBU#L?DYq6KD-T4[0br)Bjd;NP2^p'MrogXg@Y=M=VpCdPr\\5Td61*\\neGrOi)`q\\fS$ohp\n$MD+>97M:'R#8dBjTb#E2I[@mFLtAqD`Bt/7+D]iHs1$r<5#`i<Da!\"!N>.RDSk\\_g/$QbOoH\nl4L?BljJ'lj'quaq+nccu8R&[[OTFJpR<GHaU,4O-\\V+Rl-I*o$Qp+fXKh?T^B[TZe@]Qj+rW\nerjqd+g0rLWXKT4HpokZN6Ke[SXF@AZBM?$!4b!(Vs'7/QHO+ArZY4lS;Hj4U%LIK3DBR,[j[\nm;s@F\"h90!L]6lnaK;mF_D69lRlF*9S3nXAYR&ZAf?%1u$E.''JMlF;\\5.ol6'6W'1Z6u`\"kG\nICYT:QM5]r[X4DjX.pLJs':0NGXaV@kd&%bheLC8O>2&,K+*_Q%ftW_HBj$68H0+m^V=&FB3;\nO.?LX#FQ+\"iec&UC1ce9D)Qb4d5-NV;\"'$Okt,!.WG&DdLKR(i`GNLi&+%'c!gO5lYM\"C^rD=\nb;kt-!/_gN/UAqsO,2Ocl.WV-/^rY\"lfW28@(Q1,Ylh79Mqn>@b5a&JmO2r.>%ESD&S-^JYP+\nj)R*%?T+rq-Y[lDtQ39)K2-jp%[h$b6se1:I2\\Z-EMknJ_dk>+q.uga0J`ZK6f!$9m7;G+'M$\n+#,iU,r3uCOm;IQW#0e5LU2%+u5-;;S',BZonG+:n3OHB2]SQ1o1nnm)8ur^4VBWCM%Q(*lO$\n`J+CQN7=@A0*eWl&;2q;!ZC+`%Q-;)QZ?TA3YkM$e<Fpl,rjSlnGT'GR46KGA\\[YVe@:pkuRu\nf5H45AOdo+WJ7Y\"6!T3brqAE;[iJi(gDN&2oFqukq,1U9D?:$:XkWMQYYfQX&o2tf<Q4iB+B+\nP'is&G)O%MZ`$B!2,.I_[krQ1mKW2D57MTEA7^BGQf7tKa7^Y[j:WbTJ%0GULp6S2<\\*DVZh@\nNX#s:n2hF<k%J,HJ`%<Z>.ZZ'`Oi/CIY!,l@h\\g;n9f:a?l-4<2G8CV/!jW>FK:AqiID$8E:m\nDW[=e/gdH<3g:Cmh6!\\pR=<HA1k6_s>*rj&Uiq?.\"iGRrqdSg^f\\tq[/p2r&(M06FZ*B&e9!f\n?*BPH!i9TY$85joM?B[s*uF&%,/`VB?BA-EKbZWh,\\.r'aiArq/%7Wg\"iohGGEc]Pa9T16k!7\nFQ\"Gf<RpfXmt`Il4+8VSqp6WHqAo9j?CF3c%h]EY=k.T\":_Lhd?n)UOc;ZB1Wr&d2<5$\\+7$[\n`l^S%L<pQ?Hn%f:p3VN@C$`'d7!751\"P\"`RpE<G52`<IJhtj$X&)<W<VPbb)n8Y9YGt>m3qgg\n>jS2s*\"S4gq8$oH1P$,D;hZ@VGcjCoR_t\"HBV<Ni9`b\\&:gaImHpLD:p.^/.7ge\"aND49k]9Y\n#SX]%/ck-cR>/(=jZ]\"r#;`TpGDuU7V!LSa#H;@Kgd:(B9</QFOb+9=4-7aXKdAInrb8Qnp1(\n$uSjZk.He_h\"'a](=-hc\"R*%aYnhU>09:e7rPAk18KiR`e]GQTd*gL6r0DWI;k$L7la2^ECi1\nFnjB@YC>r@TIHgU%?]1;X-K*?S,:bnQ`JUgI:+N6+i[K_/QM805%c(OR?9j5k)NeFFBbc04)E\n50^MiT7D0nNHckPO`X&c9dR@\"dkp&P7>U:[LlHRk(ZE:k1S!N,Gc1N?8Q;jFcN(Dknn.^]c@1\n10c,FO1^Y!BJ6$/dS%/pqO6IhQOBWV`D?3>.M,jPe3jBSu%OL9tag3X.je8Ehi;\\CNJ,TVL$F\n5TIFP`Z=Ggp&6sV]CTB\\nGs`.jMXIcNDW)+OW[_dW<Or+d(^8_WrWI%=lgW8da.Okpo(#@V;-\nhF/LR8]QPoGl[Ki=uU7mZI$muE!eWc^mm#)=4150t!#+$%EBmUJc@asXu()Bsm7m%o0UJ'D*p\n.ln#KWj8@Ep0C.CIEHr1.;3U>(Bfl/nqkr'<c3P9d?2:Fp57q^YMbYFQr*i^adOdLn>0c(rV7\n*To0L`ZOLC%,f!8=oK6kpR%p4ab=i3\\1PSBK7EYQ;gZ6i4*>T\\po(S:b'6'.EqdoM\"\">t`u@A\nIX@.>beO2[_B/T&m+rd9\\#r6dIJA_Wqo3d9Z8+9qjK7mIVTU9\\?>A4'2tPQ#]e\"W[K9\\k\"&,O\n7;OFINWetO*FrsQbVW.4#53I;'f8#t/TbJ,<&/6U<g'VeA@ssgR;\\eru;su+OVV44Y:L)GXS#\nX>:aq<#^U'aT5'Wb!i3;abQ.0q+0i6&IA23tYE)q7MnWl3)G$p3-SFUM%^R2ik=QiFj#]*9Hp\n#PCcbc3FtCN#Ec@aids'Cr03<5/@OqF'1k_HH&fQ^KdbXW]JqK;YJG3T5)tCJ>r==c3L4.4Gm\n%8nNd_q7akBG+5J;(LWib>=Y$uN=*bEa=:%kt)@/$^T[2!qqkFj=$A-4W\"':[>$\\G?7\">0^V&\nn!1\\T0jV'8jQ8cRPS3\"WAFaF8kFQ4`-gEF]jpBt.3F=r;@lg+6K.4m:V9kWgD-)J6\\)/#\"IMe\n.CeN=@^9o,>lN>Ia;@kYcH,A*=HtrPm]fU3+:[>2\"R_5XZNlrfAhd1X@%I1Jn!DK=5RR^>.WO\nT(eH00<4>c4A;#G)$o+K/Oj_UX4&m5fMm(15T28+UUsK`!6KWAI$7Lak(nCXc$XF-Ja4\"dFV3\n.B/'&+MQ87=7sR1FQ'Fe_l5+>Q)5*PjVtI7n(M7^Y<7)Dok/0&!_Pc*jQ2T<C3Eotjsr-NL&b\n0:#r!*$G]lXZV''HCnq8O<SaFm6WmUuCV'j&X[*dq_GF'\"?$A'BNccTY%ZX!lEfo6(Cl?Qkp9\nN?DUYQ@a#6o7C7V'$%Y.@RHG1q25!!tFO@@kpaNcKTBsZ@@h/YlI]k74:YL,m?S2W.KnZ=^E/\nV)[?_\"H\"/U'Kfmne,))eB;@it\"b<L:&i[aHrFtf29Qjcnf+R12O^f8!Uefs^F%iba=O:h`e<V\nQGXg(Y<i8je-.oRn*9c,IZh[0ONIFgR0j1>hlB;%NjZ<!6R9;HSc]mUk)'3df(t0uo$?0u-b7\nif,1D?!OruieH>>75GhCF7'&g$A'C;$KWe$/pFX;D!kL`9SJi41'X+<<S4\\GgmG+`;4blXE\"i\nF@74=2\",#VOqbr#Vn5ul-[WGHp,.iAMNJfnatC@YA0$EMH]FX[^1\\V@mJW/=/%<=>O;HatLlJ\nYO=nR]7Q0=EPC[93E&A@lM^U?n,/2%Amn57&<-_3!t813@HM6eYK8K.mH,\"GkTM4\\Y2D,66O'\nCWhN=el8Ft*',6U,&-P9NV'B$AiuNq%'4<:i@?7A@3daOU;d\"\\rKICdR\"@8,:KSWW,(-md&^f\n7>N*`9>UDbUa@%CME&U*'_nZD`IZZ*hFiciRc)#+/\"_fH[D>7O/XGFU9P))lf6t!)X:16$u9r\nA.>BA!*Tu>]mb9KAJIn8-d5Zu0NDDnCZ88L5p6[@5nKh^M2<c*ck<r0\\u`ESIV`e2\"\\ba?aI0\n&tH>;%\",4GnQ-jYEtZ:%,ac-g$K.Of\\Nl7bo>IIJ9tAZmIZR*%P5Da$`k]E:Gc&-P^0KTrn&m\n*W,3AbMu]Yh&O%K-mmR$q),29NC8HH7O2Hq@!W:Jfk=+<gU)t6-JUhblV>^\\gC?IZj.ddrtpP\nQ/5oh:r),1*2=jSjPrf47JY4+kJtQ<.T[aEUX\\*'/4oW\\R9?M7*WH,sS]'7Si\\H@b&G>?)QTI\n/S1\"@3SeX'X-sA?CPTHi03oe!&g,-Fd%*(;WsDd;3[Z:,`3G+:*Rllk3^.DM$'<[O>'b\"B5+d\noDF._;X/+9,,_:]Dur3h&-P;Q1rNQ;\\E,uZhBJ^VpJlu]&o>!MAb/Hp<0A2dRcb28Ochpj!Lt\n8<JtUQR^b'H`o#Z=1d7o5c`pon/R-;eUoqGV<Z]SWk*CKbbT0@#OO]n_08QZn--En-d5nGkc\\\nVWtN]>h['@<3gmnmfA3(<UGB;.EBB6i<.1L_>gVe-&&K\"@:EbNk5kY(aUIN'*LT4\"DNr.G6,U\ne0G6n_Jfk>NVQC+4.ili#5mWDP5nF/bOGl`G9Ip01&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-\nP91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b&-P91\"@3S%5nF/b\n&-P91\"@3S%5nF/b&-P9teUIRS.qRZ~>\ngrestore\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/image-washer.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 206 296 405 495\n%%HiResBoundingBox: 206.01 296 404.99 495\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:36\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 206.01 296 translate\ngsave\n[ 198.98 0 0 199 0 0] concat\n/DeviceRGB setcolorspace\n<<\n/ImageType 1\n/Width 796\n/Height 796\n/BitsPerComponent 8\n/Decode [0 1 0 1 0 1 ]\n/ImageMatrix [796 0 0 796 0 0]\n/DataSource currentfile 1 (~>) /SubFileDecode filter /ASCII85Decode filter\n/FlateDecode filter\n>>\nimage\nGb\"0W:TGf)IGjY]G`iljYJ@3qBc4&tDgI\\22a\\?T18(JbC;AI1paBPVK.m=Y$\"O[Q0jY83JtX\n\">15e.:fM&s\",Qol3i_4<YKOA5on]%UkeQqH<Fe(R9Wp6R]lM:&IjG.2IZ?4Xk:OVn_SpTnc,\n6.]Dzzzzzzzzzz!!#9_oD*c;Y5)EFrItCS,c%E7qtp9&Kpo)(q@*Z08BZmldSp2HQeJNUbW5H\n6s0SQYA,q,o[BVROU/Y>tdGH&HJ.-S$Wgd-K^V0[J.Prr^g-<i^$39\"QR9AYH%fg\"kS?+cdZJ\nXC>!0EoMGH1]DQlrF0!&c\"$!!\"os3h>^,mUR%45`\"jKf#T<@J.T!n!+6JG$34HImDUPX\"T\\-O\n:X%:(*j:jm<`KU4TFLsCFA::K6O2>;oqn^'e#fW,'`]e*)-:ZLl)6X'rW@[9()1=qj8!:6FWU\nfO&cc;[9i\\Wi0C7B,;Iri3!%V`_Jh8GuX\"\")TTrACMcQl3g!)[I1K$Ad.:M5.W&4f`bXo6gGG\nLQX92GI10htI?Uqp8<]CL;m6i_OO_#6<^><UlrIrra&:CdM&8Dt$+8]4u*\\HU.f8S'Y-\"k^O+\nNs2Pap^FQ5_+G?Vla'`=%V#XmjRL0$;S>H>f#cFX%!5`G\"!.]$W$323=V?-`'Vl9Xr_J(J\"J8\ngqa!$If/!WWM(WTnSSjlj/T!6V\"7C=E13^\\_+1]KZBuVu%pSh31f:eY[\\SHbTZuC>JKgh,1QV\n$I@;'BIWuffBoOA606d'%o!3-S*R6.Gdc0j;ZT-/D-=EM>R=+.!\"^d?VWsdY+8rVJ!4C\"ZWS4\nhorUu-2590Xa_\"It6?Dfeg!'\"#V:\";?ig5CI*D`p]@<VLJsU&2!0T*PG;b-\\/EDg!aO1T\\r1<\nV?5]8cb_7e#'FKU-eiZ![)'B2V\"R@:o-@E$6WpU2AO_2;ZW[f;aE#m'gTnu($%\\[!MjPY<:)U\nX\\YK?7dSp2q)`6+'gU+Yg+J_A'jfAEM(qu;:@doi\"hX<<=D5pI\"U#dL%p8\"\\YeUQJ%\"dhol>#\nV-j9r5.'d1;/'A'q35VTP7GCPBFM.hpE2.Z<\"sqtY9AnB7o1b*U.aKtPkb[.uMPmgELt_QWpl\nYPlc8r6>NhHk7O*cED'`Q\\B5AWE@4$[6ia7Q+6N$`&<IN?g@IH(Vfaj47C+'WqPhH<E):`jic\n\\l6JgtGR/XSZn;d?3:YSX(?[>XT;]gMeER]K^p9ZR2hZD6\"WUf0@=s<A,]M+\"--JPFO]W#*ur\nL9B3p,%9+q:\"2Lqs>,R)QU:GYWMcBi,G,7?QQBcnkMtTlugdOI-UY#0E6&o;f,#^ItaFlWrG`\nAr]9EA2r2r?$Tnnd9;SWYjmcLtn+?SG<__%/ea8g:C)Z<E;Jg<Z*HcR28e$4Yn&fLIe+.E$n<\nmK19pIAmf*Zf$a,iVF9k`C6GM[W.=+974DFRUW;;M9!8n81_,&TT:\\Y[_Rq=8d4OE^P9Z*-'>\n)#Z`VS`VO(h;A1eY+tj&bqD/Ys&W,t]32_Fo\"C-]dT$&5Gcd'OqLk*b9fK+eqB,+bO$A*VSTh\nZ$)GR1mMlG`YX/bE.FT4_U-Z>,(<PCS%.oc=+^#3Y:l#_=e@PO.\"2QPskTY/!,_),0+.Y#+^W\nVC[`b11Sm),@G`k46r\\PY03uXD6X4Hb<)>92jrQpr=nOb'9gsIC8=T?aoaB0;VQ)1TN?4WAIV\nhb':S)81sB'Ph/VY=4=PM=#K*KON2WLji8L08lOh%QcCTq9';bJRc'Y1LO^(.;roO#a\"+dTo:\n;In2;K:![0^`6<Ah;A2eo@?BrVMWr_@[FM,LJNOYP=NI`TX2ijE,@YC5(dGpm=eUoEXcigl\\3\n\\k+akcY;A(E6e8u?2?:$HMq[a5+%8Xs6=q+[F@Q(0:Jn-U[N<T\"ID%(;m#hNmCsF8O7ol%+)f\nu%glmM6<_f*`)OI(urF/@oONqp#b/p[;3:kCZVCIP*9i**<<?&-,OX!Sc*J\\`5Vs_a9XF`9CW\nW]:Ji)9SF$i*s8$.;e.8@b2W>]#'l=]Ic11fZZ@2?DPnGr8,`R&14Qo\"%CM6$XIM6-;%71t;`\nqT_hW.o/$.%p^^9!WD]mr4'.oE%eE?XjS06`<Cp-\"g'\"3fIOSt\\86.H>Q1DLX2$)1mWLs5/23\nhnX9%AA&]D:Q_In)ZlYLl[FUm`dpC:\\Jo$&GJWl8S`pH:q25XT(][N2X\\oT:rDG!F0BS#0oI.\no6l+Fo?O@4N2B3mh5$Ki1puLm'46Fi#Ci>ml*F?jd(4G4C'*&Cl,p-.p.MQ]b/iN'gRY4A_mQ\n@6\\XMqkD$!>Z[8U.-QSmm*>S[OieiQT+J]j/C=s`9Fng+Gf=MLrk0?)c!6XT\\1TrEp6o\"%CM!\nF4Zs`j2J@18UE>+=Wa/=XdG$SZ>Hbn0UkP/?db1!+jMVYpI,%C5qA>C'&q]1f_&MX6J?@aU;b\n^^pZ)M*%=t<h5[MM-SP*!!1VD9SZ8hNBds,8<`MkZo\"&Pu$fRN]!4Gm0;lQX^1_g\",/%_ZN\\X\nMsWH.=69\"T[:LZ`0t9g2mTp\"V@.F1fKm=RO[EA;]4+B9iD)2f)J@s4B]gOHnZ^M;lQXYBe\"Yc\nI&3r>85l?i9m?D<D*!?rFF^<Y#E;edY0G4gEj_l;RL11;OHg!;\\pUCd6H(*ROYde<<19gdG\"i\nBY.Y+HS<PD^T@M)<<&='+bS95KLd8U*CBr](I]P^VA-.,Zl;/*$NW$YE8W;r[@<1?FhRdOEti\nY>/k&=',]cdaAJVPsQidStWDYFAK)JM\\*,<4+TKC8+n#$6ZA>RO[E6\\oY99j(KomW%r3>=.<S\nH9a)).Z;$VT\\k+cA,>A=QeU^GkRUAp[$6Z@I9pK`Vh7;6-AMb,e<8gR5C(k,D;ZT9DVl<R#2l\nS-k8Q,XXFkK`\\Q(j_?!1F7&'A%D%LEFjM>]#)F1_mfRXu6=4BI\\Nr=.=__1_iit5t%\\!?l_rF\ne?#X6r?KJ8-7G%S!bunipnk^VeKgZX<14/mg$5G49u):V!bsW5p8=@075P`U\\SL*dVj`-)1_g\n!U3)'PV&5H.)!//g#!!(t7'`^KY9a(M.:/_/nK[Wm#!9#aL!'iM<\"TT*/;ZQlOdo6;IiA;8L5\nWDIA!\"_n(!<@f%;ucpW1_g!U3)'PV&5H.)!//g#!!(t7'`^KY9a(M.:/_/nK[Wm#!9#aL!'iM\n<\"TT*/;ZQlOdo6;IiA;8L5WDIA!\"_n(!<@f%;ucpW1_g!U3)'PV&5H.)!//g#!!(t7'`^KY9a\n(M.:/_/nK[Wm#!9#aL!'iM<\"TT*/;ZQlOdo6;IiA;8L5WDIA!\"_n(!<@f%;ucpW1_g!U3)'PV\n&5H.)!//g#!!(t7'`^KY9a(M.:/_/nK[Wm#!9#aL!'iM<\"TT*/;ZQlOdo6;IiA;8L5WDIA!\"_\nn(!<@f%;ucpW1_g!U3)'PV&5H.)!//g#!!(t7'`^KY9a(M.:/_/nK[Wm#!9#aL!'iM<\"TT*/;\nZQlOdo6;IiA;8L5WDIA!\"_n(!<@f%;ucpW1_g!U3)'PV&5H.)!//g#!!(t7'`^KY9a(M.:/_/\nnK[Wm#!9#aL!'iM<\"TT*/;ZQlOdo6;IiA;8L5WDIA!\"_n(!<@f%;ucpW1_g!U3)'PV&5H.)!/\n/g#!!(t7'`^KY9a(M.:/_/nK[Wm#!9#aL!'iM<\"TT*/;ZQlOdo6;IiA;8L5WDIA!\"_n(!<@f%\n;ucpW1_g!U3)'PV&5H.)!//g#:q#u+q)&,!Rbn8k##,93)cY9omdD7dmQR9*G@_LS%%7OO\\#>\na5NiW;<5uU&n-GjJ22;K7EkQ%+$<3Vj/f1h\\@+=W`d2KWam4am2%r;$+EIn3K=7&?kjO^tMlR\n1DN0I!?L#k)X7,J>b:>$tNO9e\"`lB@ae<+C!R1GMo'1N2/+Oj@qdDb<TL__;ZS.:;ir``Uo=@\nBTrCSNC=6&]\\^4:qY-tB*RL5]YRYi+f2]Y)N$6V6$`?nP_ihNIQ@ae<#UmeS19a))tVP;DeVG\n]o_!Q:k7l?'/!XIDg&9a))tVQ*SdITB0CNMZc59iKRkUo@<lNh`QR@ae9k3hL>_n[[@QfOuab\nfJHT^/t;.3TS-6PUT\"6&do:H.SGb;Ugqt61-L,7oJCl\\YSHc-pVb\\nA$6MtG&=]PsQ;ppbUT\"\n6&do=l'WiBej'i:Lnq0\\X5q3,='4drB_<`SgOV?4oh2:_[(rS<1i^XQ6L`i?&1d8WBIg:6F7<\nV)i,Lo:>K<B7+[8k)_[`G6ZtbGmpU7T3=4WiD60<'Uo(WmOcc_Q'Vjd8W@?1_n'Z<&KW3!c\"C\n-30rU>)FdX+2:,;BcDmo>d8W@?G&F=r$Y0]QdQpg^af;B9d8W@?2K,V[QPCNh>qA^(<E7_IWI\nPli2UuA)9ioe#9iWdGWj5,n!At-sWrC1GD*h1Obc7]$d8W@?6CMY._d$+P_Q'Wod8W@?%W&0B\n=#:X4X/]&f;ZSb3g/N\\Haun&-`R7_-XK\"l59a0#hn35Aj1:>XhoC&i]BN\\=M3LU;R6/_M9D=r\n,)<3uk1.SWp_BI]YZRYoVe=&k:\\ar!hVe3Hrp)TR?hNMZblTW(JAS*K*pV?1M*WCW+N<FMZ%J\n/W)N&nG!BfOub-#+CE+=]L_DRL6!EVBS`8<@*X%!c\"C-8=!7U0r(^u)JCU`AQ;aSBI]YZRYm>\n4<L#;-$7JUBj8&O9L/1a11-_e9N6tTi@Ch!\"^VB5db]36H2&.S3UM:,Q9a)6.gJ\\Pr8lLj-a+\n\"8OV?4ok-C-e0M/uV/JC.=]%7W!Rm7(#/LK.@BUT\"6&do=P\"<L*Gp.Y-/.'f/umANcIh+>us5\n9NG.rO/;u79iEd=<E6c.W;pDV<6SuTQ1&B9JCl[nMc`tj3gpBu2GM.7<`PQJV?2QJ;mDQe<K<\niR!+ODV/>]=d*)-SJS#0XDa+$+0V?2QJ;mCpS<Hb.:!+ODVXC,%nh.S9gfJF?/=B4H?RL1/q9\nuT.o<I'S$!f0QLZ'nZm7\\cp_@ae;XAlY,DBI\\Pb1_h18WcAtO\"V@0#,(rrr/u,BG@ae9ZZDu&\nV1_i8lRYjA!.Z;\\R!3p5f!]g8'@PefbCmp6#<`SCFV?2QJ;\\@<T.fIao!3p5f2ITUNph2.-fJ\nF>4Yc:<C1_i8lRYn4L<M_gH$6V6$`E'(?;BAO9&=]P+6WR4/Nhul69iJ;?X/]]#;ZXh6WS!M:\n<LT\\^!+ODVCeI^'3LU9t2GM0!*<2iqRL1/q9uZ7rWY-:G\"V@0#@WPRM$'(kaLeUe[K2kodUT\"\n6&do=7n<L)9O.Y-/.'p2Tu,rM+u+>uq_,Z[o:NMZc59iDXb<E2)TW;pDV<5`9HQ-O%mJCl[n;\n-?mF17AOm2GHV>K2n26dSp4CdT\"09?WB,cdo6=DdT\"0Ipb.?K;uf;Ko?4=lgWfQn^58k-Rbtg\nT-T?Nj=O'Y6'Ll\"%);@3$5+DPhC$1o*XcSZ['sO]!Ho)S\"OJRqY@/T(C92eQ;A]Un:nBk3#FR\nr-s,:,,:)bb[V`2ZF.!I;;F9M2;B\\QN:6CI_E*RL2UAF>]n\\9[/3cq9kSWI/<3_-Z?]K:%Pt/\ns)uXOro*;Id<-G0.SU'dD^(\\]WM\\3[Phs0CJ+B^[]m0SUDOTIBppY&<nahXCCXJud<jAYcE&8\n;/k?9t7&5J-=WLtV)gnoDfioPjnFV_sK%KY],-e>T'3bgJd'Pm_l\\sZ4qA^[<pUT#$RblEY?>\nuk0nXK%:!9a)g[c)8h@8M[E=?-iK_R7!]a['cnB/ZYm=7T2TbG0$Rsm3J+N:5qtjF!dVsgYAe\naZo$;VUT#AMQNacs5#!T!WbSG;%aH7VeKG0IZ\"JjI\\dY^H.a.A>+eu\"Z+Ya>HdV4\"a<=1P^T4\n0Xd2@6MF.a+i,s3XebR*?\"R1nV-R!orY9`WVUd[CoUKCLpgT<`T$XVLnaT+tBC]jO8hsJ(:<n\nNg\\.Y>.IY!<RoBiW?@q;,3lJ,jO8jIDc;p@n@/!oL=V*EPuqKu<UDo;$F[<56n,(o7T1Tr)cg\n!cM.K\\pk@c=N&fsmWWe,6aQe?1T=U?@><Rm\\9WF2u[7tjHt05qYbVA`3Q)n&Hjl_)2%WnM;H(\n#0S7N1,d*llIe.;qO=[7MDVtZMp]GqMfE+:g&@+'sk*FWcf=U\"lhq8;2[>0\"[$#os#;*K<7F.\n[(8IkOT>8C&]Y^tSg1N5WHtN%,b(Ze1Gh-5\\ZbPcPn>pTp'pb`NB/C@2lV_KF1905/Po#[Q0q\n-7t;-CO*Q/fW-7T30ZFm\"'3b,h0$S'!K?lWJX4(sl>b<BH/:U)#7?auAOPNCHj7WEH^I>1cnW\n<BH/:U1AfqjXZAEBUo$h\\[-1-26X3bWa_$dU,4pRUc4abXIL\"UXQt:G<>Bj;'nob9eQbV4d>;\nqAVQ%cDZUJ5(<CIp&7G\\fVP`@eDEk24FWD\")6[]e!NVu+*4<E5jB<9.]>l(3o-A9)Ca3)aNie\nbr8#D\\i&sq<n6(GA=&?/$#ZZ7oPP0q(!m7AO7_1$.RU,?;^`a=l*4%4[&c\"o@&aa4<OR2(GM;\n8e?)7j*G%R7aaii-kHW.#mH2l9I,gD;V-Zsh]=7fAhuE]G^D)76N0slM^2NgTQLr_RT&)D;-*\n@;>;irIW2.qgBikP:G5n[']:%Q$trkUCg]8@-*6`.q#X0/X<a-FAB0q+!,bY0I`HgMOC`W+XC\nb,!3/HM?79\\)&T[RX`,70N2>DHoAZuX&#?Ns7D00e]+A`8A`f>Wk\"lsSX[_XaJ>Ylo]4-=]-V\n_uo+)\\d?oRDPpun`RWF!muhg5(V],uLmf(3LleQ/HE30KN+D'm-!T1j<P.?R*b^])RP3T&_dm\nd@YH+9#luDm1k-VP>[!ii4Q+](u!q%mU!3_i+7r:)d:7r8m*+s2sq?HtfUa`7=Kn.LmStb+:W\nP1gNi1p<pV?=ZQ)&NpZ)\\Pgnkkn_U);58/F.oU8]`M<@pA:%e9r<Rj!-4+I'Q%mU$L_nU[!_k\nsNRe[j.-m&I0:.94TNk0oi>$EU*n9enAKU)Gpi]J$\\k=)Zh:^a=qS3k#S0Xb'Jdp-2`1<Ro=6\n?[MS<[pN`I45t\"oBI`^0B/(^/&tb#.]%0XB_J)au-'1]Vm+53pbR(N(h/t<Yg=A;IZo$=6)-p\n5OAl2f5?<3MPLnn\"aF'2<Qq6[N\"VQ2/T?CE+dVOHOWG:efWdFR#'ZjKR-<AV=g=qOi$YH9Vr;\n;=:oP>XusBL.@8e$X?KZ'qP$gf-4<MloLN[4&CK.SE]Gba_[u\\=,FHMCmXh9M)2tAnF?RcR8+\n%9?BnN9mCGZL=YY4P#BnEdAgr(>ZF[&RYkt+>YI_g6Y6m,+U'`l:YP'!)Op#\\dFOa(=u.\\p19\ni[djK)H`/WHf'elJ5s+;RmicHV06;c*%!4.>GheY+j(=^>M8i?,e(_nX5Gq&-96<]&>LY,XVu\ne5WM+]pOs\\4&:)h>o&ZPg5`%6j\"e!-<n=JRlJlg\\`pG@DH#lunkkNJl@\"1!JMp84M.2@12,>(\n8h92f\\;7:coD=oBq<`9L(lnR'A*?nl5hWE<Q&VC\\TfR!qO/7[/MYQ_oXOBk:!d<lKJ%E`5.!9\nX'ld5u#=8e!Hp_VP;@(7u=0lBWD\">.VjKBV6IftoIbQf<E3%7.o!tsa*`Zd\\rID#$.Dk/R@dS\n1XKW1OWn=AP)V.rXMK*BGk6^T*&X>%EQ&:$\"X^5G$HUPB]WiGEnQ)8$3V5`9_77UKMj[iCIB\\\na#2X1h3s-+!;M<@qK\\APlKsMU1+[.4M[HF=FVlUI8(Q1fX`l-J#T==rLI62V$jUX/a%Z8lP8C\nRbD2]P^;d]*E=%QQ(L(7K`/W\"5-Kl(*'@t92=j'enZpSB[7d3j;Z6?t%AnWdf;4^lWfO%\"gW^\nfWdI4-Zj]-2*iXT3nc!4I!>?72m?7FB'41TdU\\NQ^cH_W$dU[\"MO$F+Jop!%EhS:$W(LTd`K/\nLsOqWTG]u$8ki9bWjqL;G'I05uSM3;.#%4]K0L7=]K$7<gp$Lf@El8C@ti/eBQH*.9.6[<OeN\nHQ!7Liel92EQ):R;RbDpsVNfOm1f[PQ040]FCJQUdOuiR]/Z[:/3kVON<>F$5L9i_5F;11D:@\njfR8]Fc!X/\\0qWrpO;;jD:nlBI`@0l9WV.@/F^[@=_>8h$o@?<&:U<gp%!U[+n2CF[d,%h9@R\n;MsQm'q\\VC=%ATWqQ$WF=^AXP[:`NSW\\R9gp(^_/m;1NVF3aQV'_>ufL??G)d;,df<`SB8X>E\nq.*;0Q]bqhO4`Bp#NX!ZgUJMY-$<`LT5Q)6$'D23P/:VWd&'\\h#7gbqC\"FtB],<`O4`.V`!uW\ncD@IVps5?BiF;t?[[=qCoXA.'PhD4(:Y5`ql[',>?+Ca<Rc_fVCKEiootoV3>PQ[6;t//[@=G\nuY,sHb<?4t<ROW[8;sS$j9h?clU8_75k1V:s=lm8qlBg$27tI*YA(FTEAtl.RVMIT<Z%6\\1eX\n\"alB.knl`/1MrRVJIKQ);]hp!ek5^=6E\"1hAC19U^hj9qM_]=Bjm9r&:OT2T[FCQ)2m$;H\"7X\neWaQ-NhEB(hS*Q$`i?%G<\\Y@jROUOSTX(/XSng4FR#`8%.Unf0&DXFi8m566>?GU>S6Z%t8_!\nE4U`]98gJ$4`P[[.OMWdO]<rK(\"_.?X!Wp3bjKe0;^<AsP8n&r2>e.dbe<:\"/T5VT^Lb$.m=b\nA*5pQ);]Vo0,$#c869JMH3cWXf?jDh&\">3P?\"&$\".)<MVFG@$I>%e]7=$d*#FN#9[C3/7>?,O\nm<'T3u*)KQ[D<D:+q+gOHiUZZ=e.g$O<#k/V<NB,2Q.i6Qo*JQ%BrZ7iG2=&\"G1PkcT:-rYRY\np-2/$\"B])jo?Z.T0;Q0!+2GQ)7/QH09T1R]?0@)8/)-VFZZC+r-GUe\\17bm&V[c<RmAbdW7ZJ\nQ(mi$C@c/k;bs\"qCW^s\\,\\\\aVEqt^U99''T2q>@gTD$U2RgU`@PoN)4F\"Z'CC5TB4.ZtHaa_L\nM=?Zo0:dtQt8ROTn@C3m%bVplDpdo7T-if_i&<fO8^E_NA+AMkj91fZjFeaus>OY'9rdRGlm9\neNM:=&fD_e]b,C<2gF.'6C^U;H%*p;iuWHATd*C<67l-79QIdOs$\\MAop24VT=Xl+rd:A#An9\nc<Ps_EN+Q)iHI^rC!B&Et\"P%Tj=\\k/E9gqfh0<?X.<HVk1]!0U^#8:(gB(W`39p$et7=Ji\"XQ\nj%j9k9Nd3g-/I2U;1JMl%[k1DX$AY,XstlF3CW2:XDaeO34on\"VG&MN!NIXBn,qC0jnGB%?_F\nrr2>eW=I;Q=pq>j6)CI\"T;EfNQOBkN3FL+4Wp-VUM8#1&p5]DXUn9W:p]r>VV5YlZ?t&a)*,r\n-^Wi`6IZH=Qk*X3^Pc_$9J`C*XiRTkB$EbR!10tOUcnAG7*Wj^s&M6-9)*aSOuWZlMb+&jjh;\n&i;!;(`o#T=jo,--(N8o^.F+r8.5HeX-=\"+7ARo=`lp!O+(.F/bZmM9Ufc.<,.<MBIZXGk2Yg\nW-Vo6emYAcbWg]UWT>12s5CMkd7ct;Rr9QLhk;KB0TK:o\"1f[fKV$ecQUo>chA6,P>Wg_Qt2=\njT[2>Hq'qnZWhn#r5V+7K5H'2BY)4^OV-J+r_BGNYj#5.aU5J+c]sA^305g.\"n9#>IXThRm1F\nACW&G4`ALn[8g5AUF(.Ybr\"D/(0!4WptjmmI.*uXr5mRjp%Q5nMl*&6hu<.IIXX;lrhWu7nbQ\n4/-]b\\ab'Q\"Gn8h&b75Zn:-+gIeMS6%TB@>m^WB^FKlTb5a?[h$smb4D7M5;Phg4C66k)VFfF\nR@D\"rfs)dS&tgcL@S+<!h3ro?%*hL'MVM'\\?W-hC/oEDW33mQC6Ih\"^@m2OI.oa*0t$Uc?iS/\ni^GO$0b=0m%:u.Z3VNOs6Ep>S(<'Jq_SYi-/@p'P\\WZ%t+#'[r]NV'.Kp)j=o]:VdcQT!'cAP\nH`YYa+cSr<*idUoC<0799B3DgqJrYMTO+4gsZ/KX^P[^[a#kGJa7CVAP<\"AQ*m,D5)OFB1XDJ\nW04$P()L-HkAU=H`.d^(45o\"Ln8%ot*S*rS2:^0:4S#pk8Muk^.=H;8+&,0mH4R`>\\@_ddh0F\n=iPZ/?6gf2W\"c6csmQ;mg&0:c9\\.]RMQSR9*gptbmeh4<GPor:a<?@8EATGhaK_(rj501:*Cm\n^H1mBm\"0bWMmt_f;uPF\\$(/3bca8,oM=?Dal1'W=AsMCD8NdZouF$R(\"6,]AU*V(aep6[k2/:\nKqo=INcS8.:R8ps&XC+WMN=RE%VQ$N=nE.nuT0.Mgj5RE1C/\\7d\"L=i7(0!J`W/mgM2C#9&GC\nTDWH[g<cp)MX_*ebagWO`])<)6FiTaFk$;bcrCZMIaj<8BP,\"&24L``H//B@W!=ZDq*K9.4ml\n8HkQ?>)fV`hLADl$/gf?HEaDQ`PGnCQ;m@2VP6hnXf?7tQ,hl^%fX&EUk2Z)(\"K=!<HYpQ4;j\nK+nCN[=LY\"?teZ*@a263]=*#EVaf8`d>GYM+6Zgh$qM-2^:W?/.@QKWhj6s<L%Gk(RV7k]@=G\nW<ra.N^Ir9iFoqnYRf+\"E86W=]N_RcXj+nS#Z;M`5o96;u(s;DOQHON?A2Ngf2i71Z`kLC;Zq\n6r_ar1h4;mTdmE62^5cnW.Taa^ho_hePe8?`VM^LK5$HUpTNgQg^VAYRX#(QVbC3Iah1'_Fc9\nK)Am8cqmo.W\\r:\">6*-G+'YW+i'(=g_&^BI\\hGWg[!NaYhV$)_s5EVEZ.P*+q]@Be%b*XB!e7\n9f6k?2jNLBW#`V:08n4W*2LiZ`glp*m@Ui)>G\\=WZ%CU->i/MPQ(p1dK4A@#f#H..Mc+Cp7=T\nqH'tc<9WiEM,4=b?u<\"I]PK6=5pRouSe?tU^bWe.t^Dcp\"%37GE,;e[]o0JfclDmTR[.VP*\\W\nX<Jj=/mle.SW>Mk%%KhP#e\"Yp,'(TdSq9SUGS5H&s>!L&9+\\bh8ElL9a*+Cj`*;IVXd#>8iG\"\nqq;HGj$TLD?7ZRN*s2j4[Uo@7fWI0ehR..3BGLVM:(\"H8;0O.V+jl_E^OJYX4VXd#>H31G<[/\n?iYBI]B'>ZH4:(E\\,)?One69pH^%U]01/2b6g#7I.6O;o.UR>ZGL<NVRjLQQIS=84Z#?@r#+U\neV^4B]TB`el7d0@SaZ$mKrq@3e]'Grji<50g`R',ZYK-Q#YtEpS&&J3jL#\\0i8nUjWN]BfVV7\nE7no7\"56F(@;R\\jdK(hu6kRSUl-<`PT'@tT\\`R``YWM<XSC\\(@a.e5UDOeI&%T<L'H8SnmU%Y\n,RVfIbsGB2OY!0n9Y+2fW%PBD6Kbq^DAOE5PjU*DccjT?)]#>rQA',$BEM\\:mSJgdT\"uUXf7c\n==][]^2jFmg;R6>mT;I3!BI_2\\R<H2?[6mlHN8m-GfA.^E/uAN-s\"kJ'U\"<9,Vn[Z[oOh_Trr\nk9F0+6CA;K_f_U;2V%rh83Ja+'Nb5'O8WB\\Hsc<Rl<njlL0U_N]/=.V,W\\f[6G\\e'?!`RL26&\nnVB;WpnM\\,<?!jHWk[&hVXfP5aX\\i_@o^KSk%@SA:Sk$uDdu9tS#r^!RN7j>XlK3ss7r$j?h8\nbDZMRU?V#KuUp!.!P<RmeL^8^H=VHHp,1Y?R@YT]n;K)2!%9iJk_Y!3ni>?1(D<5'^7A5tLU<\nBbGZVZ\"6De.2I!2&15958ai2<@ql6:WB64Wk,IoA1olC<F/09%Wgs@R/<mu5uY<2Z[u1W4&,e\n/99UmX[SQ9+C]>^2US`XoX_2,2X/_FZjdA)l(KD=NpsJ.je%P*\\s2@2UC[1$oiO1QXbWNMZH;\nui3W>ti<1\\_NeWflK1U:W84k#;:Emp&dC9a*<`D?d/A17QFL@5YNoA/.TO/?B=QWK*jMG\"Wm1\nrDcj(a+(Fab+gYP>?09=Q98<KK;PAX$]f,p4oUr$<0gL7XK&F7Ps2)URYn*s>V+r_;giXaGmL\nQ_<TPH_MJ4R*[;)b(l)O#l;`Ur4KZiWo+&oP'dV10\\[J&:?l)O#l;ctPcV=G;8(GB*TXJ/=UM\nFn&BdH%g;]$XKC<84GK\"E;^eZAP)a.V][+8]YmOFeboeWOCmkE%nST3bU\"CZc2Mg]2dB\\;d!#\n;OFC59/sKl]K[EcKA^Q_0qElXB<RoWsnt_3,n;C;qe[0Brq-]s!RYltR>ocU$FC)U>rO]hhBN\n92_WLWfRec1_hZ)UEuRUd.Udo=h+gU!7`0@'U^#8sYD`gb,Mh[ZC;=&6&hA/,j.<)b$djd(jC\n<K/i#8)$5U^K;e_?mD+tnjRo(jkWm2rH9EdA/076<\"ptIj\"-splGKKFqN4^k?-0+oXD5Vds\"a\n\\FO$dJIc867^MuOpCAQ:U(Wk4H0_;8_Q[Bd*BU(j&R@dW^lb@O[r[Ac:*p*?\\NAsJ&bH.#ZVB\nuc!1(9=J*V@ll*P>u\\0ap0;>dSuI.q)[;Y)\"77Pb$n@.dSuf@8!-fWMF)#,MDBE[mIe7eIoS@\nBWr'-#eWFCm[B/ZN>'CHIDDW*i\\9q%/?_;Of<2I@0)E-.1k][fJC8.d^(KS\\9*,$foYkr_'jW\nqO>qY#uBJ,,]o<H;X#6rja4<fR7'JYjW<#G(Su-J_\\P[t\">F[?$rponfP<OfY!(.gml5U8c5d\nja-4=Vc&DQW`MLZnGWeiPqH2sSQ-G+j?lk.X3pUi?5KR2BWBZMV5[?o>?3?SdE`S/A3s4WT>]\n;Zh5#2kf*a'&Q%?bAp!NekOB,:C>[LS^.oN+@a@ppGWW&^!Wd6J\"*kq0^kKc?B<#MWO@C:20(\nKS\\9P\\;PPOm77m5=qrV/qWBIqk#dsWN#G2X/9NO@AU%rK;Kgpf4le'oi-DN?<)sg<V(BJWgm=\n+eQ9N^q#0Y'rir$@-nCIVWCY`V9uZmopD\"K,Y0:=TW^$K4&&8.RT*J@p;r@GI%B9Y-Q(:3A4a\nHVnm+GhI#-lusa2XmU8;sDi?'eWjiiT*_:Q;T6a8r?ADu]UkK>2[+&-%'^T'AdDj_+4NC_'ZN\n-/2DdN*`ef<ZFD(OeT`(qnaBuH`sHPSG2\\H;s!:b@J/K(c2i]AD.09BfU&HZ/\\<%s7@sHY<AT\n6l5uV?3o5h^cpJ.bZ=`H8m74KX!.`o<de$I)pC2eahH;Hb<Wn_H<%TmIE[A0f_Ni(f\\A_#;RH\n1fC=];iHT5h3K/IQ<js\"JZ@*bH`TZR:aahZ4^5,TW'nERo4sj<'*sHC<:e%)bj=gbC9Q']O@Y\n9\\sXrsCF^UU<#jiM@]FsIl:mN'^F#oYo3Zp[SsgHp&\"9LP1Da)h*G*2r1_mX&USbWUE`LYmVu\n#S)Z\\.O/;jHP:Pt$d^%BK-!/Lq'X`2'Bb8S'd0c=X,WdIl#M\"ffCPWWHIQaUno]l*7Z@)GNY*\n':5SRY,Q;*=&i\\pWGXOmYsrY63=<DZF37*[Z&kh,QANR[*AuABd&JR?4k5Oh.bs5bTN;B33R\\\n4bieiFH'cWWK9\\!*@h5jaZD7#o\"7T5Su_CB)nf2g0\"R7C2\\NL;4q=\\Z<1GZD0-HE%oY<=<@Q1\n=fKZd8Ydf53&\\a0m,Kt=&iJ.Vn18TFh.3OJ]_`ibZnA//)I)$=NP#eakU3&?)ss/oi*l=W]Hp\nTZD4K:c-<Y]\\Dg5OMIg\\&Pf;.;\\[neUC?c?/n*mQ\"U\\.SFR]99;b3H\\7*l%A\"AMn\\M(%Z)gAs\no8hC?iqM<`PbL<I8lR5Q5r(oi*l=WbS;qXPS7r=Y657B7g)ldT?+h<(r^D;F`=91AmhXrDhCk\nj1k><'(<&C0U`>[[Frc,>?P948Q.?Q;+_k:R**(@?EU<bqBXp+hdA8UT,G>VY,p4!MR_)97FP\n4`VX(2!;_$rjJ+_.UTDY>-Ij(G3qVf%NN4PVG7T8ifCR;,ee`uDYb4;QMR]:Ne=&MpGE12P]o\n;I!(^!i2Fo#@]pfr))jWZ=gQOKsa#Q<+gM<0`VE]?TZ1HMOLco&P1BIt)\\1s6B%Dl`-p$2c3U\n^FWk_da-F@gKr1lkr6meX[E6'a;r+YEWVO=.Wp9C$Di:K%b-b==om0Z.bbC:eI?cT_<Od/l-)\nC\\+8kl^#/^L>9s';nUW_-30gWd$E+;d;#Q<3o42k$a3M`T!QC>82!S?/^XX((]#G@\"9`.d\"<c\n0u-eiD.i,(8mg[F;\\`bU7nK[t[VDgf2:]CPG$\\0_.MfXAM-XA'21^0%Z'(f[En-5L'ceTsVIt\n?k[41e!YJ*+=R8HnRSQAg[MNoO2b1\\>b/3Ou[_FfZ^b/oNPP`Ap+F.-iQ0f<*4h)htC51EOWD\n;qQqKk7[<$P'@B?<L\\W9iE?Th(hSm`La<&lL\\.XZ&eoA'cWOSC/rSCpAKJs6bffM<l-[n>#n.\nXNnS,`?CG'g-#:ie5>B+_k,b\\\"Lo[:_oa:\"?YuK;O1tBE/,\"bAm2JXs?h0eDSG#M[FZ+]D-.c\nX2VrLYSYZGKLB>LQQ`)AH.Y7-UZ&e#(V1a*cM*[]7bT`%pjM)%'JMV;G7)#u<+;'gP\\d'OFV%\n;+F@\\N,OVa^57o5I9'@:MWeZTXYPm:9P9R-;H^>?Wm/I1-lo_e`*Z2Dg1OE^WS#>;[8e)WJsj\nnbM)AI>>\"_erF.#h)$gKLA'\\\"9^]pO[U;r'sm%]_'R`SSa$'.dVtM%s,q'<P8/BPFIqU[8bY:\nK9h_(AAAP/uBhB:\"WlSV5ZG51Vo\"s7V,:F[>N-Z9m&=`_V8e3TF-^X_5,jcK9Y)60fAe^(jf8\nZWArQ.1Vk*k.cmj/WD022RZgqn(0<(^'g%p\"<#.8SV0;lDNkMI@<2<u#>Xdp.9bfFMQ*kmNbq\n-$iU8sBQRRj:miH-ZD'NCNbE(]dfKVP]M1_n-CFsbk&X*<HLr5L[c$t_2gTbXc=k\"\"%;!L@V%\nh9;\\IaY_gKngXO*P>ZV:T(,O5\\uO1X,\\ge*-*@TBCTY!3D?U6sW_V<GW>>/&$CR]\\$D'[8Pt\"\nKU1_j#[rYb7cWk:nQ[l3NYe,B4a9sq.`p@\"X(F\"Noh;soid8p-jLs(Ns'1?Zs5%bIl-;)=>=B\nh-e>mL?(hhk&2_8>aRLE_WfhaZlWuiiT4;'j5Q4BL_/sF<+=fGr4'r;HgPFdSuW0f28B?<%$P\n&8lLk]R;le`AHjs*^:*71rL.JM(HIa:UXQ&=o.Qoa^QoY\";LO[.<LSe39ZP\\Sjd\"M:QM9%rl-\nhS[.\\qH6ObkfZVgB_e<%$+o8lJTUkr\\9u=6><!4b*H#;f-c1_jJt1s)bH/Pj413WmXk2Cu+YS\n?gTX,?*hpX-C*h>eGRe/Jl8T^@o]A)W5>:jQ+ksb1mKfmbdEH\\qK-Y9bu[o6MX&Dm?KiuHd:b\n#9pFP^1RSp/lq5R%c;6QJ4.t(te)GOf:R#m?..AcmL>ubSgGU]l#,aOi<9f4[`*WAMJ*>M%B6\n!R([apQ>I)GN(E9i-91OfV_B3bgb2*rfq(QnkSCXK]pNd8].9<Aejo&Z)82[c+5Y;o)]hqT9/\ng]GaLU(=0oSC8.K']P8L$_c;u!Ji.06e]ehpb,Sr.Q+9'DQ;N9_Pa#?_X&YF^Jl)E[>.VRss*\nY-+22nCf,;U?;o/fQ4\"l!clV5[j4lW.+#X6@r1AlqkQ&Z)6HfOS!YW?@r2/$-q4E`Q;hBW<!6\nEXgRs9@NfpZAdMh-EAUj\"oDGe=>Lar.9Di(l?YU^Wr*`?6\\RpmNnRe6W_-4+@0.)mrQ<PfY=D\nMCQn1F;AepVeb\"DH/8lJ#*Q6oXmPu[-`WWeSo;f,N2+t@khX\"$gIM&IYjk*77\"FrX5Ac!9C08\n3r*2g^I4`RL4q[<FlK=h+(D?3/d?A>sX=G%/!\\%999*0'kD,dAZZ4iXVEa_lJRM]:C=*u+if)\n$$Au.#ZDL!)U:'j.Q/GB(1e(F20r*^7<B_k1C4tAAf2PSVbK:/&X_YK?c#:<9X0%<-<1D.WE4\nXUqJbc+7C9i.cV5^+WJY=qW[jG-[Psq%:=tgW?1aee/[?GuIbj&2nV?/rf8SHB+DUfG,Rd0L4\n:8WItD&?%=M1sN_W\\bGEAMgb<jjo=Qas=dFDlT;'Zo\"2Z%4Cti6L.ZPRL3/2oA#cP?'jf`,/E\nn(Z(.7tIN;]EV)bff3gjloPAjtU.ooZ=$J=3'D?Ug-de&uAY`KK%fPI$7e[jZFWM?;X'HTng2\nGVt_pf=Jr1_m7(l/LDH\\cNgeBq&Ct=3Yo7p?[d9HM218i0fs$/JL:1jsQ@-+ot><<LO7ccHYR\n1QX4[cm.BA\\)bm_?i#U64iNXYraMcLK<MQOD>g5sG@iOdbSF56Q3p=hEgIPe1&tP?dW#AA6e7\n*-ED-(Ct2q?=`dR\\>rU>nI4\"gH\"069F#\\^X6$82NJ2sBGTE'f2MaT2-'<=;u'<!q3\\psdSp4O\nBe%3Ur)K#Z!f0QL6.TYNW\\bGUCmk^:2KMlpW;pDV<04^PX\"$gI&=]PKgs&u%Be\"Yc1_g__k,M\n$P!Q:k7TE$oP<LO7;2GF?dQsNd,.Y-/.'pM!_!?=a25oHP\\s\"kHUCmk]g0sRb,;uj1;.O`<TW\n_-1j`29N,,hH'sRL1/q9a)iR[]7bT!3p5f.*UnT8lGc/VQ$4BUT5k=\"V@0#K(<0LW\\bGUCmk^\nRF1J;c7T0=UV5^+YK2pH0I%g^Z:/aH@1_mgO1_g^=E;ZW5!+ODV:o]@PPtuLPc\"SXUe\\nK1-T\n]'*1_g_kg8`:C3l'l7'bp#gWlc\\M^udHgP\\kMBjV&YBF.*HY2S,pZM%6aM9a/MJ>ZLSf#M>QD\nK&U(=WdLNCCednp%Jm-*VQZH2!ao6$$>Rpp<V\\0NLd=s*-/,H+U]Q??;aER8RM&R\"O_?3EJ8g\nqa!$If/!WWM(W;lq8Bds+5E1.+6+Io;1!!oL%!!'lM.KG!<RL0$;S>H>f#cFX%!5`G\"!.]$W$\n323=V?-`'Vl9Xr_J(J\"J8gqa!$If/!WWM(W;qHrS^6KJL$$/*s\"2Vt!'k]s;sOA]^?q?N5O>\"\nBRL0&99@HQ.Y7+H0D.p=gFnnO;do6<47_58(ek>D&Y^b;=.KCS9m3ZRo!S-;VSqhib$38/dbp\n?Bi:YWEs1_g\"PMlp9%(<c]X.SU'HA>-bdRXb7E>Ma$C!$DZMRk\"-3WrN$PRL0$chotssO'=Qn\nkf[C?^+P_K!W[7\\Ic]^a[dNMN>!%^Edkjc&!#/gT;iRC+L!Wd!5jfED]P7mnQtn/OJ/&<=RL0\n%&@)\\%&c\"sER`sBu$CA%;TDh%8m#<Vt05lcF0FP!7QrX@o3T>*Lgq[7SVfe8i[$U&](r%r$dJ\nCR]PeE($_nG^t2WKqGG!!%2nJ*DT'`H90sU:JrVGA^L`!3$mLSCGcL\"5SVn'`_(1mT%h^\\A,D\nXW@Y\"KJ;eTR9GMn-1oI;mquHfn>4Fod/+d1L<)WetjltAle<7ANWcFL7!%>`KX/btiAP!%*Uo\n+#q^PQ&rnZuq1cr:!1^?4dTp1^OB=/n(l!0FoT]sLR64^M8k\\P*/,UbA9%e`4<>ZD7O%'%FV!\nkFDEKZ$/U2a+'Nb!6@M(@q`$adV^`8ftB,/$38/p`2[R](T6Ol2jMQc!'n]\\=&_/oEqs40Dna\nl@L8LH_OpV31_P!lO9<%n00Xt#WW;lp!(p'_WquHf!E36)jW;lq\\do6;Ii<EA`1_g#+3rN&Yg\nJfe(!<=Znfi48:!!#[bO8h$O!5N?%S*HFL!+:M0;n5R*!3f55W@Y\"K!7oj'a#=)#'WG;:Bds+\n5e_6mHqsCjuV?-a\"XZcZiU]LN%FF*'4[fQOPDs(2^IObBuzzzzzzzzz!!!#WV=XM13h;_s*rU\nfn!+b?l>2*$9$34J5VOd/Dn!f-us#6k-PSF26*)/EKh;.anWn\"OY6WO3fgse74BKO<c!.^KkV\nA``?4\\cb/!!&SSVJ914fD[/u!3PZYqR'%^<>>L!\\EQEt!!%(^a+%,i!!%*4?^[qo&lht4!!\"h\nJpJI8gAQ8m60ZUT5kj=tAD(;S9!.YC)YF3c9;,%2o0]D/R.9EML!,fB99YUB7!8s_7CFH55!.\n\\ch028OA1_g#+ZoPVB2&-,,9s.Fr!/,Ei$324(S2HP.!W]aPX&K*\"KQEss!+:NP/,e@Jr!*5+\neEN77J)g;7!+:qdMZt[\\9a(O$<.!9LYG:O\\c]os[JGGWdC@^V0<TR5\\!!!dK:B9.T]\"+_bS?^\n6=!2r`+Wk.X:Cp'r>:Rq@a!\"?6&Um(iZzzzzzzz!!!#O`;^(?*jP,~>\ngrestore\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/usflag.asy",
    "content": "usepackage(\"amsmath\");\n\ntexpreamble(\"\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\");\n\n\n        size(4cm,6cm);\n        pen usflagred=rgb(178/256,34/256,52/256);\n        pen usflagblue=rgb(60/256,59/256,110/256);\n        currentpen=linewidth(0.2pt);\n        real flagheight=2.0, flagwidth=3.8,\n             unionheight=7/13*flagheight, unionwidth=2/5*flagwidth;\n        path flag_outline=scale(flagwidth,flagheight)*unitsquare;\n        path union_outline=scale(unionwidth,unionheight)*unitsquare;\n        path stripe=scale(flagwidth,1/13*flagheight)*unitsquare;\n        path unitstar=dir(90)--dir(234)--dir(18)--dir(162)--dir(306)--cycle;\n        path star=scale(0.0616)*unitstar;\n        pair union_origin=(0,6/13*flagheight);\n        real starhshift=unionwidth/12, starvshift=unionheight/10;\n        filldraw(flag_outline,white,black);\n        for (int k: sequence(13))\n           if (k%2==0) fill(shift(0,k/13*flagheight)*stripe,usflagred);\n        fill(shift(union_origin)*union_outline, usflagblue);\n        for (int i: sequence(1,11))\n           for (int j: sequence(1,9))\n              if ((i+j)%2==0)\n                 fill(shift(union_origin+(i*starhshift,j*starvshift))*star,white);\n        draw(flag_outline);\n        "
  },
  {
    "path": "examples/showcase/generated/asymptote/usflag.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%%BoundingBox: 248 365 363 426\n%%HiResBoundingBox: 248.807087 365.543203 362.192913 425.456797\n%%Creator: Asymptote 2.79git2.79\n%%CreationDate: 2022.03.24 02:49:37\n%%Pages: 1\n%%Page: 1 1\n/Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse\nidtransform setlinewidth pop} bind def\ngsave\n 249.057087 365.793203 translate\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 59.413593 lineto\n 0 59.413593 lineto\n 0 0 lineto\nclosepath\n/Compatible .setblendmode\n1 setgray\n0.5 Setlinewidth\n1 setlinecap\n1 setlinejoin\n10 setmiterlimit\nfill\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 59.413593 lineto\n 0 59.413593 lineto\n 0 0 lineto\nclosepath\n0 setgray\nstroke\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 4.57027639 lineto\n 0 4.57027639 lineto\n 0 0 lineto\nclosepath\n0.6953125 0.1328125 0.203125 setrgbcolor\nfill\nnewpath 0 9.14055278 moveto\n 112.885827 9.14055278 lineto\n 112.885827 13.7108292 lineto\n 0 13.7108292 lineto\n 0 9.14055278 lineto\nclosepath\nfill\nnewpath 0 18.2811056 moveto\n 112.885827 18.2811056 lineto\n 112.885827 22.8513819 lineto\n 0 22.8513819 lineto\n 0 18.2811056 lineto\nclosepath\nfill\nnewpath 0 27.4216583 moveto\n 112.885827 27.4216583 lineto\n 112.885827 31.9919347 lineto\n 0 31.9919347 lineto\n 0 27.4216583 lineto\nclosepath\nfill\nnewpath 0 36.5622111 moveto\n 112.885827 36.5622111 lineto\n 112.885827 41.1324875 lineto\n 0 41.1324875 lineto\n 0 36.5622111 lineto\nclosepath\nfill\nnewpath 0 45.7027639 moveto\n 112.885827 45.7027639 lineto\n 112.885827 50.2730403 lineto\n 0 50.2730403 lineto\n 0 45.7027639 lineto\nclosepath\nfill\nnewpath 0 54.8433167 moveto\n 112.885827 54.8433167 lineto\n 112.885827 59.413593 lineto\n 0 59.413593 lineto\n 0 54.8433167 lineto\nclosepath\nfill\nnewpath 0 27.4216583 moveto\n 45.1543307 27.4216583 lineto\n 45.1543307 59.413593 lineto\n 0 59.413593 lineto\n 0 27.4216583 lineto\nclosepath\n0.234375 0.23046875 0.4296875 setrgbcolor\nfill\nnewpath 3.76286089 32.4507905 moveto\n 2.68724993 29.1404003 lineto\n 5.50323598 31.1863339 lineto\n 2.0224858 31.1863339 lineto\n 4.83847185 29.1404003 lineto\n 3.76286089 32.4507905 lineto\nclosepath\n1 setgray\nfill\nnewpath 3.76286089 38.8491774 moveto\n 2.68724993 35.5387873 lineto\n 5.50323598 37.5847209 lineto\n 2.0224858 37.5847209 lineto\n 4.83847185 35.5387873 lineto\n 3.76286089 38.8491774 lineto\nclosepath\nfill\nnewpath 3.76286089 45.2475643 moveto\n 2.68724993 41.9371742 lineto\n 5.50323598 43.9831078 lineto\n 2.0224858 43.9831078 lineto\n 4.83847185 41.9371742 lineto\n 3.76286089 45.2475643 lineto\nclosepath\nfill\nnewpath 3.76286089 51.6459513 moveto\n 2.68724993 48.3355611 lineto\n 5.50323598 50.3814948 lineto\n 2.0224858 50.3814948 lineto\n 4.83847185 48.3355611 lineto\n 3.76286089 51.6459513 lineto\nclosepath\nfill\nnewpath 3.76286089 58.0443382 moveto\n 2.68724993 54.7339481 lineto\n 5.50323598 56.7798817 lineto\n 2.0224858 56.7798817 lineto\n 4.83847185 54.7339481 lineto\n 3.76286089 58.0443382 lineto\nclosepath\nfill\nnewpath 7.52572178 35.6499839 moveto\n 6.45011082 32.3395938 lineto\n 9.26609688 34.3855274 lineto\n 5.78534669 34.3855274 lineto\n 8.60133274 32.3395938 lineto\n 7.52572178 35.6499839 lineto\nclosepath\nfill\nnewpath 7.52572178 42.0483709 moveto\n 6.45011082 38.7379807 lineto\n 9.26609688 40.7839144 lineto\n 5.78534669 40.7839144 lineto\n 8.60133274 38.7379807 lineto\n 7.52572178 42.0483709 lineto\nclosepath\nfill\nnewpath 7.52572178 48.4467578 moveto\n 6.45011082 45.1363677 lineto\n 9.26609688 47.1823013 lineto\n 5.78534669 47.1823013 lineto\n 8.60133274 45.1363677 lineto\n 7.52572178 48.4467578 lineto\nclosepath\nfill\nnewpath 7.52572178 54.8451448 moveto\n 6.45011082 51.5347546 lineto\n 9.26609688 53.5806882 lineto\n 5.78534669 53.5806882 lineto\n 8.60133274 51.5347546 lineto\n 7.52572178 54.8451448 lineto\nclosepath\nfill\nnewpath 11.2885827 32.4507905 moveto\n 10.2129717 29.1404003 lineto\n 13.0289578 31.1863339 lineto\n 9.54820758 31.1863339 lineto\n 12.3641936 29.1404003 lineto\n 11.2885827 32.4507905 lineto\nclosepath\nfill\nnewpath 11.2885827 38.8491774 moveto\n 10.2129717 35.5387873 lineto\n 13.0289578 37.5847209 lineto\n 9.54820758 37.5847209 lineto\n 12.3641936 35.5387873 lineto\n 11.2885827 38.8491774 lineto\nclosepath\nfill\nnewpath 11.2885827 45.2475643 moveto\n 10.2129717 41.9371742 lineto\n 13.0289578 43.9831078 lineto\n 9.54820758 43.9831078 lineto\n 12.3641936 41.9371742 lineto\n 11.2885827 45.2475643 lineto\nclosepath\nfill\nnewpath 11.2885827 51.6459513 moveto\n 10.2129717 48.3355611 lineto\n 13.0289578 50.3814948 lineto\n 9.54820758 50.3814948 lineto\n 12.3641936 48.3355611 lineto\n 11.2885827 51.6459513 lineto\nclosepath\nfill\nnewpath 11.2885827 58.0443382 moveto\n 10.2129717 54.7339481 lineto\n 13.0289578 56.7798817 lineto\n 9.54820758 56.7798817 lineto\n 12.3641936 54.7339481 lineto\n 11.2885827 58.0443382 lineto\nclosepath\nfill\nnewpath 15.0514436 35.6499839 moveto\n 13.9758326 32.3395938 lineto\n 16.7918187 34.3855274 lineto\n 13.3110685 34.3855274 lineto\n 16.1270545 32.3395938 lineto\n 15.0514436 35.6499839 lineto\nclosepath\nfill\nnewpath 15.0514436 42.0483709 moveto\n 13.9758326 38.7379807 lineto\n 16.7918187 40.7839144 lineto\n 13.3110685 40.7839144 lineto\n 16.1270545 38.7379807 lineto\n 15.0514436 42.0483709 lineto\nclosepath\nfill\nnewpath 15.0514436 48.4467578 moveto\n 13.9758326 45.1363677 lineto\n 16.7918187 47.1823013 lineto\n 13.3110685 47.1823013 lineto\n 16.1270545 45.1363677 lineto\n 15.0514436 48.4467578 lineto\nclosepath\nfill\nnewpath 15.0514436 54.8451448 moveto\n 13.9758326 51.5347546 lineto\n 16.7918187 53.5806882 lineto\n 13.3110685 53.5806882 lineto\n 16.1270545 51.5347546 lineto\n 15.0514436 54.8451448 lineto\nclosepath\nfill\nnewpath 18.8143045 32.4507905 moveto\n 17.7386935 29.1404003 lineto\n 20.5546796 31.1863339 lineto\n 17.0739294 31.1863339 lineto\n 19.8899154 29.1404003 lineto\n 18.8143045 32.4507905 lineto\nclosepath\nfill\nnewpath 18.8143045 38.8491774 moveto\n 17.7386935 35.5387873 lineto\n 20.5546796 37.5847209 lineto\n 17.0739294 37.5847209 lineto\n 19.8899154 35.5387873 lineto\n 18.8143045 38.8491774 lineto\nclosepath\nfill\nnewpath 18.8143045 45.2475643 moveto\n 17.7386935 41.9371742 lineto\n 20.5546796 43.9831078 lineto\n 17.0739294 43.9831078 lineto\n 19.8899154 41.9371742 lineto\n 18.8143045 45.2475643 lineto\nclosepath\nfill\nnewpath 18.8143045 51.6459513 moveto\n 17.7386935 48.3355611 lineto\n 20.5546796 50.3814948 lineto\n 17.0739294 50.3814948 lineto\n 19.8899154 48.3355611 lineto\n 18.8143045 51.6459513 lineto\nclosepath\nfill\nnewpath 18.8143045 58.0443382 moveto\n 17.7386935 54.7339481 lineto\n 20.5546796 56.7798817 lineto\n 17.0739294 56.7798817 lineto\n 19.8899154 54.7339481 lineto\n 18.8143045 58.0443382 lineto\nclosepath\nfill\nnewpath 22.5771654 35.6499839 moveto\n 21.5015544 32.3395938 lineto\n 24.3175404 34.3855274 lineto\n 20.8367903 34.3855274 lineto\n 23.6527763 32.3395938 lineto\n 22.5771654 35.6499839 lineto\nclosepath\nfill\nnewpath 22.5771654 42.0483709 moveto\n 21.5015544 38.7379807 lineto\n 24.3175404 40.7839144 lineto\n 20.8367903 40.7839144 lineto\n 23.6527763 38.7379807 lineto\n 22.5771654 42.0483709 lineto\nclosepath\nfill\nnewpath 22.5771654 48.4467578 moveto\n 21.5015544 45.1363677 lineto\n 24.3175404 47.1823013 lineto\n 20.8367903 47.1823013 lineto\n 23.6527763 45.1363677 lineto\n 22.5771654 48.4467578 lineto\nclosepath\nfill\nnewpath 22.5771654 54.8451448 moveto\n 21.5015544 51.5347546 lineto\n 24.3175404 53.5806882 lineto\n 20.8367903 53.5806882 lineto\n 23.6527763 51.5347546 lineto\n 22.5771654 54.8451448 lineto\nclosepath\nfill\nnewpath 26.3400262 32.4507905 moveto\n 25.2644153 29.1404003 lineto\n 28.0804013 31.1863339 lineto\n 24.5996512 31.1863339 lineto\n 27.4156372 29.1404003 lineto\n 26.3400262 32.4507905 lineto\nclosepath\nfill\nnewpath 26.3400262 38.8491774 moveto\n 25.2644153 35.5387873 lineto\n 28.0804013 37.5847209 lineto\n 24.5996512 37.5847209 lineto\n 27.4156372 35.5387873 lineto\n 26.3400262 38.8491774 lineto\nclosepath\nfill\nnewpath 26.3400262 45.2475643 moveto\n 25.2644153 41.9371742 lineto\n 28.0804013 43.9831078 lineto\n 24.5996512 43.9831078 lineto\n 27.4156372 41.9371742 lineto\n 26.3400262 45.2475643 lineto\nclosepath\nfill\nnewpath 26.3400262 51.6459513 moveto\n 25.2644153 48.3355611 lineto\n 28.0804013 50.3814948 lineto\n 24.5996512 50.3814948 lineto\n 27.4156372 48.3355611 lineto\n 26.3400262 51.6459513 lineto\nclosepath\nfill\nnewpath 26.3400262 58.0443382 moveto\n 25.2644153 54.7339481 lineto\n 28.0804013 56.7798817 lineto\n 24.5996512 56.7798817 lineto\n 27.4156372 54.7339481 lineto\n 26.3400262 58.0443382 lineto\nclosepath\nfill\nnewpath 30.1028871 35.6499839 moveto\n 29.0272762 32.3395938 lineto\n 31.8432622 34.3855274 lineto\n 28.362512 34.3855274 lineto\n 31.1784981 32.3395938 lineto\n 30.1028871 35.6499839 lineto\nclosepath\nfill\nnewpath 30.1028871 42.0483709 moveto\n 29.0272762 38.7379807 lineto\n 31.8432622 40.7839144 lineto\n 28.362512 40.7839144 lineto\n 31.1784981 38.7379807 lineto\n 30.1028871 42.0483709 lineto\nclosepath\nfill\nnewpath 30.1028871 48.4467578 moveto\n 29.0272762 45.1363677 lineto\n 31.8432622 47.1823013 lineto\n 28.362512 47.1823013 lineto\n 31.1784981 45.1363677 lineto\n 30.1028871 48.4467578 lineto\nclosepath\nfill\nnewpath 30.1028871 54.8451448 moveto\n 29.0272762 51.5347546 lineto\n 31.8432622 53.5806882 lineto\n 28.362512 53.5806882 lineto\n 31.1784981 51.5347546 lineto\n 30.1028871 54.8451448 lineto\nclosepath\nfill\nnewpath 33.865748 32.4507905 moveto\n 32.7901371 29.1404003 lineto\n 35.6061231 31.1863339 lineto\n 32.1253729 31.1863339 lineto\n 34.941359 29.1404003 lineto\n 33.865748 32.4507905 lineto\nclosepath\nfill\nnewpath 33.865748 38.8491774 moveto\n 32.7901371 35.5387873 lineto\n 35.6061231 37.5847209 lineto\n 32.1253729 37.5847209 lineto\n 34.941359 35.5387873 lineto\n 33.865748 38.8491774 lineto\nclosepath\nfill\nnewpath 33.865748 45.2475643 moveto\n 32.7901371 41.9371742 lineto\n 35.6061231 43.9831078 lineto\n 32.1253729 43.9831078 lineto\n 34.941359 41.9371742 lineto\n 33.865748 45.2475643 lineto\nclosepath\nfill\nnewpath 33.865748 51.6459513 moveto\n 32.7901371 48.3355611 lineto\n 35.6061231 50.3814948 lineto\n 32.1253729 50.3814948 lineto\n 34.941359 48.3355611 lineto\n 33.865748 51.6459513 lineto\nclosepath\nfill\nnewpath 33.865748 58.0443382 moveto\n 32.7901371 54.7339481 lineto\n 35.6061231 56.7798817 lineto\n 32.1253729 56.7798817 lineto\n 34.941359 54.7339481 lineto\n 33.865748 58.0443382 lineto\nclosepath\nfill\nnewpath 37.6286089 35.6499839 moveto\n 36.552998 32.3395938 lineto\n 39.368984 34.3855274 lineto\n 35.8882338 34.3855274 lineto\n 38.7042199 32.3395938 lineto\n 37.6286089 35.6499839 lineto\nclosepath\nfill\nnewpath 37.6286089 42.0483709 moveto\n 36.552998 38.7379807 lineto\n 39.368984 40.7839144 lineto\n 35.8882338 40.7839144 lineto\n 38.7042199 38.7379807 lineto\n 37.6286089 42.0483709 lineto\nclosepath\nfill\nnewpath 37.6286089 48.4467578 moveto\n 36.552998 45.1363677 lineto\n 39.368984 47.1823013 lineto\n 35.8882338 47.1823013 lineto\n 38.7042199 45.1363677 lineto\n 37.6286089 48.4467578 lineto\nclosepath\nfill\nnewpath 37.6286089 54.8451448 moveto\n 36.552998 51.5347546 lineto\n 39.368984 53.5806882 lineto\n 35.8882338 53.5806882 lineto\n 38.7042199 51.5347546 lineto\n 37.6286089 54.8451448 lineto\nclosepath\nfill\nnewpath 41.3914698 32.4507905 moveto\n 40.3158589 29.1404003 lineto\n 43.1318449 31.1863339 lineto\n 39.6510947 31.1863339 lineto\n 42.4670808 29.1404003 lineto\n 41.3914698 32.4507905 lineto\nclosepath\nfill\nnewpath 41.3914698 38.8491774 moveto\n 40.3158589 35.5387873 lineto\n 43.1318449 37.5847209 lineto\n 39.6510947 37.5847209 lineto\n 42.4670808 35.5387873 lineto\n 41.3914698 38.8491774 lineto\nclosepath\nfill\nnewpath 41.3914698 45.2475643 moveto\n 40.3158589 41.9371742 lineto\n 43.1318449 43.9831078 lineto\n 39.6510947 43.9831078 lineto\n 42.4670808 41.9371742 lineto\n 41.3914698 45.2475643 lineto\nclosepath\nfill\nnewpath 41.3914698 51.6459513 moveto\n 40.3158589 48.3355611 lineto\n 43.1318449 50.3814948 lineto\n 39.6510947 50.3814948 lineto\n 42.4670808 48.3355611 lineto\n 41.3914698 51.6459513 lineto\nclosepath\nfill\nnewpath 41.3914698 58.0443382 moveto\n 40.3158589 54.7339481 lineto\n 43.1318449 56.7798817 lineto\n 39.6510947 56.7798817 lineto\n 42.4670808 54.7339481 lineto\n 41.3914698 58.0443382 lineto\nclosepath\nfill\nnewpath 0 0 moveto\n 112.885827 0 lineto\n 112.885827 59.413593 lineto\n 0 59.413593 lineto\n 0 0 lineto\nclosepath\n0 setgray\n0.199252802 Setlinewidth\nstroke\ngrestore\nshowpage\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/asymptote/usflag.html",
    "content": "<!DOCTYPE html>\n\n<html lang=\"\">\n\n<head>\n<title>/tmp/tmpuzanunpi/out</title>\n\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/>\n<style>\nsvg, #container {\ndisplay: block;\nwidth: 100vw;\nheight: 100vh;\n}\nbody {margin: 0;}\n</style>\n</head>\n\n<body>\n\n<!-- This file was generated by dvisvgm 2.11.1 -->\n<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='113.385827pt' height='59.913593pt' viewBox='56.659449 113.521861 113.385827 59.913593'>\n<g id='page1'>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0 60.1383L 113.811 60.1383L 113.811 0L 0 0L 0 60.1383Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 59.8873L 113.56 59.8873L 113.56 0.250937L 0.250937 0.250937L 0.250937 59.8873Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 59.8873L 113.56 59.8873L 113.56 0.250937L 0.250937 0.250937L 0.250937 59.8873Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.501875'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 59.8873L 113.56 59.8873L 113.56 55.2999L 0.250937 55.2999L 0.250937 59.8873Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 50.7125L 113.56 50.7125L 113.56 46.1251L 0.250937 46.1251L 0.250937 50.7125Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 41.5377L 113.56 41.5377L 113.56 36.9503L 0.250937 36.9503L 0.250937 41.5377Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 32.3628L 113.56 32.3628L 113.56 27.7754L 0.250937 27.7754L 0.250937 32.3628Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 23.188L 113.56 23.188L 113.56 18.6006L 0.250937 18.6006L 0.250937 23.188Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 14.0132L 113.56 14.0132L 113.56 9.42577L 0.250937 9.42577L 0.250937 14.0132Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 4.83835L 113.56 4.83835L 113.56 0.250937L 0.250937 0.250937L 0.250937 4.83835Z' fill='#b22234'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 32.3628L 45.5746 32.3628L 45.5746 0.250937L 0.250937 0.250937L 0.250937 32.3628Z' fill='#3c3b6e'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 4.02791 27.3149L 2.94826 30.6377L 5.77481 28.584L 2.28101 28.584L 5.10755 30.6377L 4.02791 27.3149Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 4.02791 20.8925L 2.94826 24.2153L 5.77481 22.1617L 2.28101 22.1617L 5.10755 24.2153L 4.02791 20.8925Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 4.02791 14.4701L 2.94826 17.7929L 5.77481 15.7393L 2.28101 15.7393L 5.10755 17.7929L 4.02791 14.4701Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 4.02791 8.04771L 2.94826 11.3705L 5.77481 9.31691L 2.28101 9.31691L 5.10755 11.3705L 4.02791 8.04771Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 4.02791 1.62533L 2.94826 4.94813L 5.77481 2.89453L 2.28101 2.89453L 5.10755 4.94813L 4.02791 1.62533Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 7.80488 24.1037L 6.72524 27.4265L 9.55178 25.3729L 6.05798 25.3729L 8.88453 27.4265L 7.80488 24.1037Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 7.80488 17.6813L 6.72524 21.0041L 9.55178 18.9505L 6.05798 18.9505L 8.88453 21.0041L 7.80488 17.6813Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 7.80488 11.2589L 6.72524 14.5817L 9.55178 12.5281L 6.05798 12.5281L 8.88453 14.5817L 7.80488 11.2589Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 7.80488 4.83652L 6.72524 8.15932L 9.55178 6.10572L 6.05798 6.10572L 8.88453 8.15932L 7.80488 4.83652Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 11.5819 27.3149L 10.5022 30.6377L 13.3288 28.584L 9.83495 28.584L 12.6615 30.6377L 11.5819 27.3149Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 11.5819 20.8925L 10.5022 24.2153L 13.3288 22.1617L 9.83495 22.1617L 12.6615 24.2153L 11.5819 20.8925Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 11.5819 14.4701L 10.5022 17.7929L 13.3288 15.7393L 9.83495 15.7393L 12.6615 17.7929L 11.5819 14.4701Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 11.5819 8.04771L 10.5022 11.3705L 13.3288 9.31691L 9.83495 9.31691L 12.6615 11.3705L 11.5819 8.04771Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 11.5819 1.62533L 10.5022 4.94813L 13.3288 2.89453L 9.83495 2.89453L 12.6615 4.94813L 11.5819 1.62533Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 15.3588 24.1037L 14.2792 27.4265L 17.1057 25.3729L 13.6119 25.3729L 16.4385 27.4265L 15.3588 24.1037Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 15.3588 17.6813L 14.2792 21.0041L 17.1057 18.9505L 13.6119 18.9505L 16.4385 21.0041L 15.3588 17.6813Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 15.3588 11.2589L 14.2792 14.5817L 17.1057 12.5281L 13.6119 12.5281L 16.4385 14.5817L 15.3588 11.2589Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 15.3588 4.83652L 14.2792 8.15932L 17.1057 6.10572L 13.6119 6.10572L 16.4385 8.15932L 15.3588 4.83652Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 19.1358 27.3149L 18.0562 30.6377L 20.8827 28.584L 17.3889 28.584L 20.2154 30.6377L 19.1358 27.3149Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 19.1358 20.8925L 18.0562 24.2153L 20.8827 22.1617L 17.3889 22.1617L 20.2154 24.2153L 19.1358 20.8925Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 19.1358 14.4701L 18.0562 17.7929L 20.8827 15.7393L 17.3889 15.7393L 20.2154 17.7929L 19.1358 14.4701Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 19.1358 8.04771L 18.0562 11.3705L 20.8827 9.31691L 17.3889 9.31691L 20.2154 11.3705L 19.1358 8.04771Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 19.1358 1.62533L 18.0562 4.94813L 20.8827 2.89453L 17.3889 2.89453L 20.2154 4.94813L 19.1358 1.62533Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 22.9128 24.1037L 21.8331 27.4265L 24.6597 25.3729L 21.1659 25.3729L 23.9924 27.4265L 22.9128 24.1037Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 22.9128 17.6813L 21.8331 21.0041L 24.6597 18.9505L 21.1659 18.9505L 23.9924 21.0041L 22.9128 17.6813Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 22.9128 11.2589L 21.8331 14.5817L 24.6597 12.5281L 21.1659 12.5281L 23.9924 14.5817L 22.9128 11.2589Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 22.9128 4.83652L 21.8331 8.15932L 24.6597 6.10572L 21.1659 6.10572L 23.9924 8.15932L 22.9128 4.83652Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 26.6897 27.3149L 25.6101 30.6377L 28.4366 28.584L 24.9428 28.584L 27.7694 30.6377L 26.6897 27.3149Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 26.6897 20.8925L 25.6101 24.2153L 28.4366 22.1617L 24.9428 22.1617L 27.7694 24.2153L 26.6897 20.8925Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 26.6897 14.4701L 25.6101 17.7929L 28.4366 15.7393L 24.9428 15.7393L 27.7694 17.7929L 26.6897 14.4701Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 26.6897 8.04771L 25.6101 11.3705L 28.4366 9.31691L 24.9428 9.31691L 27.7694 11.3705L 26.6897 8.04771Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 26.6897 1.62533L 25.6101 4.94813L 28.4366 2.89453L 24.9428 2.89453L 27.7694 4.94813L 26.6897 1.62533Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 30.4667 24.1037L 29.3871 27.4265L 32.2136 25.3729L 28.7198 25.3729L 31.5464 27.4265L 30.4667 24.1037Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 30.4667 17.6813L 29.3871 21.0041L 32.2136 18.9505L 28.7198 18.9505L 31.5464 21.0041L 30.4667 17.6813Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 30.4667 11.2589L 29.3871 14.5817L 32.2136 12.5281L 28.7198 12.5281L 31.5464 14.5817L 30.4667 11.2589Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 30.4667 4.83652L 29.3871 8.15932L 32.2136 6.10572L 28.7198 6.10572L 31.5464 8.15932L 30.4667 4.83652Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 34.2437 27.3149L 33.164 30.6377L 35.9906 28.584L 32.4968 28.584L 35.3233 30.6377L 34.2437 27.3149Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 34.2437 20.8925L 33.164 24.2153L 35.9906 22.1617L 32.4968 22.1617L 35.3233 24.2153L 34.2437 20.8925Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 34.2437 14.4701L 33.164 17.7929L 35.9906 15.7393L 32.4968 15.7393L 35.3233 17.7929L 34.2437 14.4701Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 34.2437 8.04771L 33.164 11.3705L 35.9906 9.31691L 32.4968 9.31691L 35.3233 11.3705L 34.2437 8.04771Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 34.2437 1.62533L 33.164 4.94813L 35.9906 2.89453L 32.4968 2.89453L 35.3233 4.94813L 34.2437 1.62533Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 38.0207 24.1037L 36.941 27.4265L 39.7676 25.3729L 36.2738 25.3729L 39.1003 27.4265L 38.0207 24.1037Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 38.0207 17.6813L 36.941 21.0041L 39.7676 18.9505L 36.2738 18.9505L 39.1003 21.0041L 38.0207 17.6813Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 38.0207 11.2589L 36.941 14.5817L 39.7676 12.5281L 36.2738 12.5281L 39.1003 14.5817L 38.0207 11.2589Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 38.0207 4.83652L 36.941 8.15932L 39.7676 6.10572L 36.2738 6.10572L 39.1003 8.15932L 38.0207 4.83652Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 41.7976 27.3149L 40.718 30.6377L 43.5445 28.584L 40.0507 28.584L 42.8773 30.6377L 41.7976 27.3149Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 41.7976 20.8925L 40.718 24.2153L 43.5445 22.1617L 40.0507 22.1617L 42.8773 24.2153L 41.7976 20.8925Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 41.7976 14.4701L 40.718 17.7929L 43.5445 15.7393L 40.0507 15.7393L 42.8773 17.7929L 41.7976 14.4701Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 41.7976 8.04771L 40.718 11.3705L 43.5445 9.31691L 40.0507 9.31691L 42.8773 11.3705L 41.7976 8.04771Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 41.7976 1.62533L 40.718 4.94813L 43.5445 2.89453L 40.0507 2.89453L 42.8773 4.94813L 41.7976 1.62533Z' fill='#ffffff'/>\n</g>\n<g transform='translate(56.6594 113.522)scale(.996264)'>\n<path d='M 0.250937 59.8873L 113.56 59.8873L 113.56 0.250937L 0.250937 0.250937L 0.250937 59.8873Z' fill='none' stroke='#000000' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='0.2'/>\n</g>\n</g>\n</svg>\n\n</body>\n\n</html>\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-building-parabola.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2315\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 131 579 328 732\n%%HiResBoundingBox: 131.48 579.92792 327.88 731.1175\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n131.48 579.92792 196.4 151.18958 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1.00009 0 0.013] cm\nq\n[1 0 0 1 60.387 -147.009] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\nQ\nq\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 60.387 -147.009] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 60.387 -147.009] cm\nQ\nQ\nQ\nQ\nq\nQ\nq\nQ\nq\nQ\nq\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 60.387 -147.009] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\nq\n[1 0 0 1 60.387 -147.009] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\n0 0 194.2676 161.39636 re\nW\nq\n/DeviceRGB {} CS\n[0.6196 0.0471 0.0588] SC\n/DeviceRGB {} cs\n[0.6196 0.0471 0.0588] sc\n/DeviceRGB {} cs\n[0.8859 0.7141 0.7176] sc\n32.37793 10.08727 43.17058 80.69818 re\nf\n32.37793 10.08727 43.17058 80.69818 re\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 18.15709 m\n64.75586 18.15709 l\n64.75586 13.11345 l\n69.07292 13.11345 l\n69.07292 18.15709 l\n64.75586 18.15709 l\n66.91438 18.15709 l\n66.91438 13.11345 l\n66.91438 15.63525 l\n64.75586 15.63525 l\n69.07292 15.63525 l\nf\n69.07292 18.15709 m\n64.75586 18.15709 l\n64.75586 13.11345 l\n69.07292 13.11345 l\n69.07292 18.15709 l\n64.75586 18.15709 l\n66.91438 18.15709 l\n66.91438 13.11345 l\n66.91438 15.63525 l\n64.75586 15.63525 l\n69.07292 15.63525 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 18.15709 m\n38.85352 18.15709 l\n38.85352 13.11345 l\n43.17058 13.11345 l\n43.17058 18.15709 l\n38.85352 18.15709 l\n41.01204 18.15709 l\n41.01204 13.11345 l\n41.01204 15.63525 l\n38.85352 15.63525 l\n43.17058 15.63525 l\nf\n43.17058 18.15709 m\n38.85352 18.15709 l\n38.85352 13.11345 l\n43.17058 13.11345 l\n43.17058 18.15709 l\n38.85352 18.15709 l\n41.01204 18.15709 l\n41.01204 13.11345 l\n41.01204 15.63525 l\n38.85352 15.63525 l\n43.17058 15.63525 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[0.6] sc\n49.64616 10.08727 8.63411 9.07855 re\nf\n49.64616 10.08727 8.63411 9.07855 re\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n53.96321 10.08727 m\n53.96321 19.16582 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 28.24435 m\n38.85352 28.24435 l\n38.85352 23.20071 l\n43.17058 23.20071 l\n43.17058 28.24435 l\n38.85352 28.24435 l\n41.01204 28.24435 l\n41.01204 23.20071 l\n41.01204 25.72253 l\n38.85352 25.72253 l\n43.17058 25.72253 l\nf\n43.17058 28.24435 m\n38.85352 28.24435 l\n38.85352 23.20071 l\n43.17058 23.20071 l\n43.17058 28.24435 l\n38.85352 28.24435 l\n41.01204 28.24435 l\n41.01204 23.20071 l\n41.01204 25.72253 l\n38.85352 25.72253 l\n43.17058 25.72253 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 38.33163 m\n38.85352 38.33163 l\n38.85352 33.288 l\n43.17058 33.288 l\n43.17058 38.33163 l\n38.85352 38.33163 l\n41.01204 38.33163 l\n41.01204 33.288 l\n41.01204 35.8098 l\n38.85352 35.8098 l\n43.17058 35.8098 l\nf\n43.17058 38.33163 m\n38.85352 38.33163 l\n38.85352 33.288 l\n43.17058 33.288 l\n43.17058 38.33163 l\n38.85352 38.33163 l\n41.01204 38.33163 l\n41.01204 33.288 l\n41.01204 35.8098 l\n38.85352 35.8098 l\n43.17058 35.8098 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 48.4189 m\n38.85352 48.4189 l\n38.85352 43.37526 l\n43.17058 43.37526 l\n43.17058 48.4189 l\n38.85352 48.4189 l\n41.01204 48.4189 l\n41.01204 43.37526 l\n41.01204 45.89708 l\n38.85352 45.89708 l\n43.17058 45.89708 l\nf\n43.17058 48.4189 m\n38.85352 48.4189 l\n38.85352 43.37526 l\n43.17058 43.37526 l\n43.17058 48.4189 l\n38.85352 48.4189 l\n41.01204 48.4189 l\n41.01204 43.37526 l\n41.01204 45.89708 l\n38.85352 45.89708 l\n43.17058 45.89708 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 58.50618 m\n38.85352 58.50618 l\n38.85352 53.46254 l\n43.17058 53.46254 l\n43.17058 58.50618 l\n38.85352 58.50618 l\n41.01204 58.50618 l\n41.01204 53.46254 l\n41.01204 55.98434 l\n38.85352 55.98434 l\n43.17058 55.98434 l\nf\n43.17058 58.50618 m\n38.85352 58.50618 l\n38.85352 53.46254 l\n43.17058 53.46254 l\n43.17058 58.50618 l\n38.85352 58.50618 l\n41.01204 58.50618 l\n41.01204 53.46254 l\n41.01204 55.98434 l\n38.85352 55.98434 l\n43.17058 55.98434 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 68.59344 m\n38.85352 68.59344 l\n38.85352 63.5498 l\n43.17058 63.5498 l\n43.17058 68.59344 l\n38.85352 68.59344 l\n41.01204 68.59344 l\n41.01204 63.5498 l\n41.01204 66.07162 l\n38.85352 66.07162 l\n43.17058 66.07162 l\nf\n43.17058 68.59344 m\n38.85352 68.59344 l\n38.85352 63.5498 l\n43.17058 63.5498 l\n43.17058 68.59344 l\n38.85352 68.59344 l\n41.01204 68.59344 l\n41.01204 63.5498 l\n41.01204 66.07162 l\n38.85352 66.07162 l\n43.17058 66.07162 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n43.17058 78.68073 m\n38.85352 78.68073 l\n38.85352 73.63708 l\n43.17058 73.63708 l\n43.17058 78.68073 l\n38.85352 78.68073 l\n41.01204 78.68073 l\n41.01204 73.63708 l\n41.01204 76.15889 l\n38.85352 76.15889 l\n43.17058 76.15889 l\nf\n43.17058 78.68073 m\n38.85352 78.68073 l\n38.85352 73.63708 l\n43.17058 73.63708 l\n43.17058 78.68073 l\n38.85352 78.68073 l\n41.01204 78.68073 l\n41.01204 73.63708 l\n41.01204 76.15889 l\n38.85352 76.15889 l\n43.17058 76.15889 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n56.12175 28.24435 m\n51.80469 28.24435 l\n51.80469 23.20071 l\n56.12175 23.20071 l\n56.12175 28.24435 l\n51.80469 28.24435 l\n53.96321 28.24435 l\n53.96321 23.20071 l\n53.96321 25.72253 l\n51.80469 25.72253 l\n56.12175 25.72253 l\nf\n56.12175 28.24435 m\n51.80469 28.24435 l\n51.80469 23.20071 l\n56.12175 23.20071 l\n56.12175 28.24435 l\n51.80469 28.24435 l\n53.96321 28.24435 l\n53.96321 23.20071 l\n53.96321 25.72253 l\n51.80469 25.72253 l\n56.12175 25.72253 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n56.12175 38.33163 m\n51.80469 38.33163 l\n51.80469 33.288 l\n56.12175 33.288 l\n56.12175 38.33163 l\n51.80469 38.33163 l\n53.96321 38.33163 l\n53.96321 33.288 l\n53.96321 35.8098 l\n51.80469 35.8098 l\n56.12175 35.8098 l\nf\n56.12175 38.33163 m\n51.80469 38.33163 l\n51.80469 33.288 l\n56.12175 33.288 l\n56.12175 38.33163 l\n51.80469 38.33163 l\n53.96321 38.33163 l\n53.96321 33.288 l\n53.96321 35.8098 l\n51.80469 35.8098 l\n56.12175 35.8098 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n56.12175 48.4189 m\n51.80469 48.4189 l\n51.80469 43.37526 l\n56.12175 43.37526 l\n56.12175 48.4189 l\n51.80469 48.4189 l\n53.96321 48.4189 l\n53.96321 43.37526 l\n53.96321 45.89708 l\n51.80469 45.89708 l\n56.12175 45.89708 l\nf\n56.12175 48.4189 m\n51.80469 48.4189 l\n51.80469 43.37526 l\n56.12175 43.37526 l\n56.12175 48.4189 l\n51.80469 48.4189 l\n53.96321 48.4189 l\n53.96321 43.37526 l\n53.96321 45.89708 l\n51.80469 45.89708 l\n56.12175 45.89708 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n56.12175 58.50618 m\n51.80469 58.50618 l\n51.80469 53.46254 l\n56.12175 53.46254 l\n56.12175 58.50618 l\n51.80469 58.50618 l\n53.96321 58.50618 l\n53.96321 53.46254 l\n53.96321 55.98434 l\n51.80469 55.98434 l\n56.12175 55.98434 l\nf\n56.12175 58.50618 m\n51.80469 58.50618 l\n51.80469 53.46254 l\n56.12175 53.46254 l\n56.12175 58.50618 l\n51.80469 58.50618 l\n53.96321 58.50618 l\n53.96321 53.46254 l\n53.96321 55.98434 l\n51.80469 55.98434 l\n56.12175 55.98434 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n56.12175 68.59344 m\n51.80469 68.59344 l\n51.80469 63.5498 l\n56.12175 63.5498 l\n56.12175 68.59344 l\n51.80469 68.59344 l\n53.96321 68.59344 l\n53.96321 63.5498 l\n53.96321 66.07162 l\n51.80469 66.07162 l\n56.12175 66.07162 l\nf\n56.12175 68.59344 m\n51.80469 68.59344 l\n51.80469 63.5498 l\n56.12175 63.5498 l\n56.12175 68.59344 l\n51.80469 68.59344 l\n53.96321 68.59344 l\n53.96321 63.5498 l\n53.96321 66.07162 l\n51.80469 66.07162 l\n56.12175 66.07162 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n56.12175 78.68073 m\n51.80469 78.68073 l\n51.80469 73.63708 l\n56.12175 73.63708 l\n56.12175 78.68073 l\n51.80469 78.68073 l\n53.96321 78.68073 l\n53.96321 73.63708 l\n53.96321 76.15889 l\n51.80469 76.15889 l\n56.12175 76.15889 l\nf\n56.12175 78.68073 m\n51.80469 78.68073 l\n51.80469 73.63708 l\n56.12175 73.63708 l\n56.12175 78.68073 l\n51.80469 78.68073 l\n53.96321 78.68073 l\n53.96321 73.63708 l\n53.96321 76.15889 l\n51.80469 76.15889 l\n56.12175 76.15889 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 28.24435 m\n64.75586 28.24435 l\n64.75586 23.20071 l\n69.07292 23.20071 l\n69.07292 28.24435 l\n64.75586 28.24435 l\n66.91438 28.24435 l\n66.91438 23.20071 l\n66.91438 25.72253 l\n64.75586 25.72253 l\n69.07292 25.72253 l\nf\n69.07292 28.24435 m\n64.75586 28.24435 l\n64.75586 23.20071 l\n69.07292 23.20071 l\n69.07292 28.24435 l\n64.75586 28.24435 l\n66.91438 28.24435 l\n66.91438 23.20071 l\n66.91438 25.72253 l\n64.75586 25.72253 l\n69.07292 25.72253 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 38.33163 m\n64.75586 38.33163 l\n64.75586 33.288 l\n69.07292 33.288 l\n69.07292 38.33163 l\n64.75586 38.33163 l\n66.91438 38.33163 l\n66.91438 33.288 l\n66.91438 35.8098 l\n64.75586 35.8098 l\n69.07292 35.8098 l\nf\n69.07292 38.33163 m\n64.75586 38.33163 l\n64.75586 33.288 l\n69.07292 33.288 l\n69.07292 38.33163 l\n64.75586 38.33163 l\n66.91438 38.33163 l\n66.91438 33.288 l\n66.91438 35.8098 l\n64.75586 35.8098 l\n69.07292 35.8098 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 48.4189 m\n64.75586 48.4189 l\n64.75586 43.37526 l\n69.07292 43.37526 l\n69.07292 48.4189 l\n64.75586 48.4189 l\n66.91438 48.4189 l\n66.91438 43.37526 l\n66.91438 45.89708 l\n64.75586 45.89708 l\n69.07292 45.89708 l\nf\n69.07292 48.4189 m\n64.75586 48.4189 l\n64.75586 43.37526 l\n69.07292 43.37526 l\n69.07292 48.4189 l\n64.75586 48.4189 l\n66.91438 48.4189 l\n66.91438 43.37526 l\n66.91438 45.89708 l\n64.75586 45.89708 l\n69.07292 45.89708 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 58.50618 m\n64.75586 58.50618 l\n64.75586 53.46254 l\n69.07292 53.46254 l\n69.07292 58.50618 l\n64.75586 58.50618 l\n66.91438 58.50618 l\n66.91438 53.46254 l\n66.91438 55.98434 l\n64.75586 55.98434 l\n69.07292 55.98434 l\nf\n69.07292 58.50618 m\n64.75586 58.50618 l\n64.75586 53.46254 l\n69.07292 53.46254 l\n69.07292 58.50618 l\n64.75586 58.50618 l\n66.91438 58.50618 l\n66.91438 53.46254 l\n66.91438 55.98434 l\n64.75586 55.98434 l\n69.07292 55.98434 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 68.59344 m\n64.75586 68.59344 l\n64.75586 63.5498 l\n69.07292 63.5498 l\n69.07292 68.59344 l\n64.75586 68.59344 l\n66.91438 68.59344 l\n66.91438 63.5498 l\n66.91438 66.07162 l\n64.75586 66.07162 l\n69.07292 66.07162 l\nf\n69.07292 68.59344 m\n64.75586 68.59344 l\n64.75586 63.5498 l\n69.07292 63.5498 l\n69.07292 68.59344 l\n64.75586 68.59344 l\n66.91438 68.59344 l\n66.91438 63.5498 l\n66.91438 66.07162 l\n64.75586 66.07162 l\n69.07292 66.07162 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} cs\n[1] sc\n69.07292 78.68073 m\n64.75586 78.68073 l\n64.75586 73.63708 l\n69.07292 73.63708 l\n69.07292 78.68073 l\n64.75586 78.68073 l\n66.91438 78.68073 l\n66.91438 73.63708 l\n66.91438 76.15889 l\n64.75586 76.15889 l\n69.07292 76.15889 l\nf\n69.07292 78.68073 m\n64.75586 78.68073 l\n64.75586 73.63708 l\n69.07292 73.63708 l\n69.07292 78.68073 l\n64.75586 78.68073 l\n66.91438 78.68073 l\n66.91438 73.63708 l\n66.91438 76.15889 l\n64.75586 76.15889 l\n69.07292 76.15889 l\nS\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0 10.08727 m\n194.2676 10.08727 l\nS\nQ\nq\n/DeviceRGB {} CS\n[0 0.5019 0.6] SC\n/DeviceRGB {} cs\n[0 0.5019 0.6] sc\n64.75586 90.78545 m\n64.75586 90.78545 70.32567 106.52785 72.46489 111.78343 c\n74.60411 117.03903 78.0347 124.5511 80.17392 128.66418 c\n82.31314 132.77727 85.74374 138.45714 87.88297 141.42769 c\n90.02219 144.39825 93.45277 148.24588 95.592 150.07391 c\n97.73122 151.90193 101.1618 153.91737 103.30103 154.60287 c\n105.44025 155.28839 108.87083 155.4716 111.01006 155.0146 c\n113.14928 154.5576 116.57988 152.90855 118.7191 151.30904 c\n120.85832 149.70952 124.28891 146.2283 126.42813 143.48627 c\n128.56735 140.74423 131.99794 135.43088 134.13716 131.5463 c\n136.27638 127.66173 139.70697 120.51599 141.84619 115.48888 c\n143.98541 110.46176 147.41602 101.48392 149.55524 95.31429 c\n151.69446 89.14465 155.12505 78.3345 157.26427 71.02237 c\n159.40349 63.71024 162.83408 51.0681 164.9733 42.61345 c\n167.11252 34.1588 172.68233 10.0871 172.68233 10.0871 c\nS\nQ\nQ\nq\n/DeviceRGB {} CS\n[0 0.5019 0.6] SC\n/DeviceRGB {} cs\n[0 0.5019 0.6] sc\n/DeviceRGB {} CS\n[0 0.5019 0.6] SC\n/DeviceRGB {} cs\n[0 0.5019 0.6] sc\n66.74841 90.78545 m\n66.74841 91.88593 65.85634 92.778 64.75586 92.778 c\n63.6554 92.778 62.7633 91.88593 62.7633 90.78545 c\n62.7633 89.68498 63.6554 88.7929 64.75586 88.7929 c\n65.85634 88.7929 66.74841 89.68498 66.74841 90.78545 c\nh\nf\n66.74841 90.78545 m\n66.74841 91.88593 65.85634 92.778 64.75586 92.778 c\n63.6554 92.778 62.7633 91.88593 62.7633 90.78545 c\n62.7633 89.68498 63.6554 88.7929 64.75586 88.7929 c\n65.85634 88.7929 66.74841 89.68498 66.74841 90.78545 c\nh\nS\n74.45744 111.78343 m\n74.45744 112.88391 73.56535 113.77599 72.46489 113.77599 c\n71.36443 113.77599 70.47234 112.88391 70.47234 111.78343 c\n70.47234 110.68297 71.36443 109.79088 72.46489 109.79088 c\n73.56535 109.79088 74.45744 110.68297 74.45744 111.78343 c\nh\nf\n74.45744 111.78343 m\n74.45744 112.88391 73.56535 113.77599 72.46489 113.77599 c\n71.36443 113.77599 70.47234 112.88391 70.47234 111.78343 c\n70.47234 110.68297 71.36443 109.79088 72.46489 109.79088 c\n73.56535 109.79088 74.45744 110.68297 74.45744 111.78343 c\nh\nS\n82.16647 128.66418 m\n82.16647 129.76466 81.27438 130.65674 80.17392 130.65674 c\n79.07344 130.65674 78.18137 129.76466 78.18137 128.66418 c\n78.18137 127.56372 79.07344 126.67163 80.17392 126.67163 c\n81.27438 126.67163 82.16647 127.56372 82.16647 128.66418 c\nh\nf\n82.16647 128.66418 m\n82.16647 129.76466 81.27438 130.65674 80.17392 130.65674 c\n79.07344 130.65674 78.18137 129.76466 78.18137 128.66418 c\n78.18137 127.56372 79.07344 126.67163 80.17392 126.67163 c\n81.27438 126.67163 82.16647 127.56372 82.16647 128.66418 c\nh\nS\n89.87552 141.42769 m\n89.87552 142.52817 88.98343 143.42024 87.88297 143.42024 c\n86.78249 143.42024 85.89041 142.52817 85.89041 141.42769 c\n85.89041 140.32722 86.78249 139.43513 87.88297 139.43513 c\n88.98343 139.43513 89.87552 140.32722 89.87552 141.42769 c\nh\nf\n89.87552 141.42769 m\n89.87552 142.52817 88.98343 143.42024 87.88297 143.42024 c\n86.78249 143.42024 85.89041 142.52817 85.89041 141.42769 c\n85.89041 140.32722 86.78249 139.43513 87.88297 139.43513 c\n88.98343 139.43513 89.87552 140.32722 89.87552 141.42769 c\nh\nS\n97.58455 150.07391 m\n97.58455 151.17438 96.69246 152.06647 95.592 152.06647 c\n94.49152 152.06647 93.59944 151.17438 93.59944 150.07391 c\n93.59944 148.97343 94.49152 148.08136 95.592 148.08136 c\n96.69246 148.08136 97.58455 148.97343 97.58455 150.07391 c\nh\nf\n97.58455 150.07391 m\n97.58455 151.17438 96.69246 152.06647 95.592 152.06647 c\n94.49152 152.06647 93.59944 151.17438 93.59944 150.07391 c\n93.59944 148.97343 94.49152 148.08136 95.592 148.08136 c\n96.69246 148.08136 97.58455 148.97343 97.58455 150.07391 c\nh\nS\n105.29358 154.60287 m\n105.29358 155.70335 104.40149 156.59543 103.30103 156.59543 c\n102.20055 156.59543 101.30847 155.70335 101.30847 154.60287 c\n101.30847 153.50241 102.20055 152.61032 103.30103 152.61032 c\n104.40149 152.61032 105.29358 153.50241 105.29358 154.60287 c\nh\nf\n105.29358 154.60287 m\n105.29358 155.70335 104.40149 156.59543 103.30103 156.59543 c\n102.20055 156.59543 101.30847 155.70335 101.30847 154.60287 c\n101.30847 153.50241 102.20055 152.61032 103.30103 152.61032 c\n104.40149 152.61032 105.29358 153.50241 105.29358 154.60287 c\nh\nS\n113.00261 155.0146 m\n113.00261 156.11507 112.11052 157.00716 111.01006 157.00716 c\n109.90958 157.00716 109.0175 156.11507 109.0175 155.0146 c\n109.0175 153.91412 109.90958 153.02205 111.01006 153.02205 c\n112.11052 153.02205 113.00261 153.91412 113.00261 155.0146 c\nh\nf\n113.00261 155.0146 m\n113.00261 156.11507 112.11052 157.00716 111.01006 157.00716 c\n109.90958 157.00716 109.0175 156.11507 109.0175 155.0146 c\n109.0175 153.91412 109.90958 153.02205 111.01006 153.02205 c\n112.11052 153.02205 113.00261 153.91412 113.00261 155.0146 c\nh\nS\n120.71165 151.30904 m\n120.71165 152.40952 119.81956 153.30159 118.7191 153.30159 c\n117.61862 153.30159 116.72655 152.40952 116.72655 151.30904 c\n116.72655 150.20857 117.61862 149.31648 118.7191 149.31648 c\n119.81956 149.31648 120.71165 150.20857 120.71165 151.30904 c\nh\nf\n120.71165 151.30904 m\n120.71165 152.40952 119.81956 153.30159 118.7191 153.30159 c\n117.61862 153.30159 116.72655 152.40952 116.72655 151.30904 c\n116.72655 150.20857 117.61862 149.31648 118.7191 149.31648 c\n119.81956 149.31648 120.71165 150.20857 120.71165 151.30904 c\nh\nS\n128.42068 143.48627 m\n128.42068 144.58673 127.5286 145.47882 126.42813 145.47882 c\n125.32765 145.47882 124.43558 144.58673 124.43558 143.48627 c\n124.43558 142.3858 125.32765 141.49371 126.42813 141.49371 c\n127.5286 141.49371 128.42068 142.3858 128.42068 143.48627 c\nh\nf\n128.42068 143.48627 m\n128.42068 144.58673 127.5286 145.47882 126.42813 145.47882 c\n125.32765 145.47882 124.43558 144.58673 124.43558 143.48627 c\n124.43558 142.3858 125.32765 141.49371 126.42813 141.49371 c\n127.5286 141.49371 128.42068 142.3858 128.42068 143.48627 c\nh\nS\n136.12971 131.5463 m\n136.12971 132.64677 135.23763 133.53885 134.13716 133.53885 c\n133.03668 133.53885 132.1446 132.64677 132.1446 131.5463 c\n132.1446 130.44583 133.03668 129.55374 134.13716 129.55374 c\n135.23763 129.55374 136.12971 130.44583 136.12971 131.5463 c\nh\nf\n136.12971 131.5463 m\n136.12971 132.64677 135.23763 133.53885 134.13716 133.53885 c\n133.03668 133.53885 132.1446 132.64677 132.1446 131.5463 c\n132.1446 130.44583 133.03668 129.55374 134.13716 129.55374 c\n135.23763 129.55374 136.12971 130.44583 136.12971 131.5463 c\nh\nS\n143.83875 115.48888 m\n143.83875 116.58934 142.94666 117.48143 141.84619 117.48143 c\n140.74571 117.48143 139.85364 116.58934 139.85364 115.48888 c\n139.85364 114.3884 140.74571 113.49632 141.84619 113.49632 c\n142.94666 113.49632 143.83875 114.3884 143.83875 115.48888 c\nh\nf\n143.83875 115.48888 m\n143.83875 116.58934 142.94666 117.48143 141.84619 117.48143 c\n140.74571 117.48143 139.85364 116.58934 139.85364 115.48888 c\n139.85364 114.3884 140.74571 113.49632 141.84619 113.49632 c\n142.94666 113.49632 143.83875 114.3884 143.83875 115.48888 c\nh\nS\n151.54779 95.31429 m\n151.54779 96.41475 150.6557 97.30684 149.55524 97.30684 c\n148.45476 97.30684 147.56268 96.41475 147.56268 95.31429 c\n147.56268 94.2138 148.45476 93.32173 149.55524 93.32173 c\n150.6557 93.32173 151.54779 94.2138 151.54779 95.31429 c\nh\nf\n151.54779 95.31429 m\n151.54779 96.41475 150.6557 97.30684 149.55524 97.30684 c\n148.45476 97.30684 147.56268 96.41475 147.56268 95.31429 c\n147.56268 94.2138 148.45476 93.32173 149.55524 93.32173 c\n150.6557 93.32173 151.54779 94.2138 151.54779 95.31429 c\nh\nS\n159.25682 71.02237 m\n159.25682 72.12285 158.36473 73.01492 157.26427 73.01492 c\n156.16379 73.01492 155.27171 72.12285 155.27171 71.02237 c\n155.27171 69.9219 156.16379 69.02982 157.26427 69.02982 c\n158.36473 69.02982 159.25682 69.9219 159.25682 71.02237 c\nh\nf\n159.25682 71.02237 m\n159.25682 72.12285 158.36473 73.01492 157.26427 73.01492 c\n156.16379 73.01492 155.27171 72.12285 155.27171 71.02237 c\n155.27171 69.9219 156.16379 69.02982 157.26427 69.02982 c\n158.36473 69.02982 159.25682 69.9219 159.25682 71.02237 c\nh\nS\n166.96585 42.61345 m\n166.96585 43.71391 166.07376 44.606 164.9733 44.606 c\n163.87282 44.606 162.98074 43.71391 162.98074 42.61345 c\n162.98074 41.51297 163.87282 40.6209 164.9733 40.6209 c\n166.07376 40.6209 166.96585 41.51297 166.96585 42.61345 c\nh\nf\n166.96585 42.61345 m\n166.96585 43.71391 166.07376 44.606 164.9733 44.606 c\n163.87282 44.606 162.98074 43.71391 162.98074 42.61345 c\n162.98074 41.51297 163.87282 40.6209 164.9733 40.6209 c\n166.07376 40.6209 166.96585 41.51297 166.96585 42.61345 c\nh\nS\n174.67488 10.0871 m\n174.67488 11.18758 173.78279 12.07965 172.68233 12.07965 c\n171.58185 12.07965 170.68977 11.18758 170.68977 10.0871 c\n170.68977 8.98663 171.58185 8.09454 172.68233 8.09454 c\n173.78279 8.09454 174.67488 8.98663 174.67488 10.0871 c\nh\nf\n174.67488 10.0871 m\n174.67488 11.18758 173.78279 12.07965 172.68233 12.07965 c\n171.58185 12.07965 170.68977 11.18758 170.68977 10.0871 c\n170.68977 8.98663 171.58185 8.09454 172.68233 8.09454 c\n173.78279 8.09454 174.67488 8.98663 174.67488 10.0871 c\nh\nS\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 60.387 -147.009] cm\nQ\nQ\nQ\nQ\nq\nQ\nq\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-building-parabola.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\definecolor{ruby}{HTML}{9e0c0f}\n\\definecolor{turquoise}{HTML}{008099}\n\\begin{tikzpicture}\n  \\begin{axis}[\n    axis x line=none,\n    axis y line=none,\n    xmin=-3,xmax=6,\n    ymin=-10,\n    ymax=150,\n    grid=none\n  ]\n    \\addplot[color=ruby, fill=ruby!30] coordinates{(-1.5,0)(-1.5,80)(0.5,80)(0.5,0)(-1.5,0)};\n    \\addplot[color=black,fill=white] coordinates{(0.2,8)(0,8)(0,3)(0.2,3)(0.2,8)(0,8)(0.1,8)(0.1,3)(0.1,5.5)(0,5.5)(0.2,5.5)};\n    \\addplot[color=black,fill=white] coordinates{(-1,8)(-1.2,8)(-1.2,3)(-1,3)(-1,8)(-1.2,8)(-1.1,8)(-1.1,3)(-1.1,5.5)(-1.2,5.5)(-1,5.5)};\n    \\addplot[color=black,fill=black!40] coordinates{(-0.3,9)(-0.3,0)(-0.7,0)(-0.7,9)(-0.3,9)};\n    \\addplot[color=black] coordinates{(-0.5,0)(-0.5,9)};\n    \\foreach \\x in {0,...,2}\n      \\foreach \\y in {0,...,5}\n        {\\addplot[color=black,fill=white] coordinates{(0.6*\\x-1,18+10*\\y)(0.6*\\x-1.2,18+10*\\y)(0.6*\\x-1.2,13+10*\\y)(0.6*\\x-1,13+10*\\y)(0.6*\\x-1,18+10*\\y)(0.6*\\x-1.2,18+10*\\y)(0.6*\\x-1.1,18+10*\\y)(0.6*\\x-1.1,13+10*\\y)(0.6*\\x-1.1,15.5+10*\\y)(0.6*\\x-1.2,15.5+10*\\y)(0.6*\\x-1,15.5+10*\\y)};}\n    \\addplot[color=black] coordinates{(-3,0)(6,0)};\n    \\addplot[mark=*, samples=15, variable=\\t, domain=0:5, smooth, -, color=turquoise] ({t}, {-16*t^2+64*t+80});\n  \\end{axis}\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-gaussian-sum-proof.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2315\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 135 570 435 732\n%%HiResBoundingBox: 135.32 570.33374 434.92 731.1175\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%BeginResource: font QLBTNG+CMMI12\n%!FontType1-1.0: QLBTNG+CMMI12003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMMI12.) readonly def\n/FullName (CMMI12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle -14.04 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /QLBTNG+CMMI12 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-31 -250 1026 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 107 /k put\ndup 110 /n put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A303DCB3A46C281B472F99892DCADA5FC6E4C2524AE72\n569652A7D664B73CC839B5405D299F805DA5E9FE5C41F969093CFD7B26C9805B\n6EC2DA5C4EA81C285458F5CCCDC02F82AC0E127BDB8F9E0A94383740D13431F8\n554EF5B7648E7C56F5F38740D67CB57E0007961013F2F16CDB5BA3F5C1414F66\nAECF5AFFA42AA51168B07908FD53D54A2CFEF17624741ECA22F7626685779284\n56899ED3A87EB156921AFFE08F658C5379DF758C777CCB51DFBDA39A6D5A2A69\n807BC97310A8AF1387EE2FDA5CD976F4AF9B2FA6EE99C852696D32CAA771EC9A\nFAF67CC02D5C15B131BBD34A67D80AAE3E564144E0A3A4D60817F7828C81FB77\n85405DCBDC816070D1DFBE75904D700DB911679FF27A87F86B5129899F596734\n9FD023B88E6A87FB9D92B592BEC58F3B2D1AB05ADCF2D27EEC4C29B7A1B93721\n19EF276959CDB26D9D8C197EEB64D68473E9C160DA49E02C4F3592E4B59FF4FB\n6AABB8A2059D28FA6BE2055F4E5A41510609F9D8FF0A39DC4F971E5A2779B392\nCCEE6AEF7966B720213DFF06FDBB88846EB4F24C481D319A1FEC6DFE773F13AC\nFC6EC3DDE015157EB4294D261130436BE4F2C8E9D4AEB1551853C5FF17456628\nDF11477A8F97BA6E7C730C9A59F57DFF73BF2A436B3FC0A7A1022F0DA3382AD7\n390FD833CEBFE5195B356107561694DF948DD0198C3355573733AA9DE22409B2\n9E2E63707D26B57E4002D15044BD03B52EBEEA661FFC33B9F2967DCD0DE94BE5\n7FBD3C3918545974942108D935469EC62267033C02DE3135CFEB244EFE7BE256\n6B8AD9589C74119264DAE09F944EF4215CA919CDDF77B4C1CCED4527E386ED00\nF19083DFE2FBF5DB0384565B0B19B52056CF06849BB35B586FCB8A6E8DDF43CA\nC93D89C7A618C1513F0E4778770529811EF73DF011EAAA4E949F5398BEBB5F68\n8291850D3F4B6942B6DF3AC600EFAFB691D8AEAA46C7CF5700EBE38E6C4108E0\n783A8EA1F62276C2C59F9FD8C35EB54C4FD5540A63126992763A0AFBEE5CB08C\nEE088CED6A557359E8B5330E84169622D8A9F43C6D3BE23F062873285BED40E6\n5E68D3D90A771E7E062B8E7DFC7611C3AEFC7D7259677BEC88C17F1C83E333D9\n0C77320A12E6\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F15_0 /QLBTNG+CMMI12 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font IWZFZI+CMEX10\n%!FontType1-1.0: IWZFZI+CMEX10003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMEX10.) readonly def\n/FullName (CMEX10) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle 0 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /IWZFZI+CMEX10 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-24 -2960 1454 772] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 0 /parenleftbig put\ndup 1 /parenrightbig put\ndup 80 /summationtext put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF88E0EEDCEC117F47331582B284EFD293832F1E76DEBD75D6F0A97DBD8069165\n0089C16EE84B8D38202565E2C8CB90418069398CB8BF65B84E0C5EA652EC3CA4\n8DD518AE213F41B9BD6A1357D8129E946E4D9D82D6C1AD2CFD36161FB9A5E663\n0919C0D7688B53A31CDE97B0DAFE2986E037411E06F2FB90E98996FE8855DF2F\n941DFB981689246E2ADC3D5BEE0A94D5B2EB390E861407D2CCB3C07D5FC548B7\n1019C9F9ECF3190F010616E16177AE79C4DF907534D8E1793E27B3B7862EE781\n853423D117260459426E0A49A10677B3F63FD6C44D606B46E1EFA24239EC9E30\nA40365E229626BB809F59159A2C3FF49A90AE91585B27FF99F5C16554605FC48\n13EA075F6C199C362C6B8E3EDDCD3C675B0C152860DD909B75DD02DD36392DB6\n2E11DDEE9081882ABCBC549E79A2CACA917F3424F04CD246FF3DDF92BDB07F74\nB03EEC2A1B3849E51D4E3924663A03A754CB77E3CE3F014C0371CB1293E62FA3\nF66A75A5E5F0668F28F604E02E877A4B2263539921F3F85B2F8C5F537A3426FA\n2A27AA0C78BD6D52A714B04EF971934EABE6BCDE2802F753ED8C3CDEE5259A8D\n0DA4F3D399EB4063F42E293AE4EB08725C0B2BB207EC3F8C054B973B4ADAA3E6\n80087F5EE0DF2EE11E269E8CF12DCBD19BA9E35B4AF0BB7F79C71E76C1717E02\n33A28C838FF43F0E70C9AB725E0344018AB56C4BC0C1979F61ABDC9078DA81D7\n01E471BB3B33B5A0CC677C26F4C426B0035CD6297E926291C203516D14C1C7D1\n3A47A0743E38B4CF0D0B84ED6F3C40ADA63F7B45643B136A77C4477BD07DC856\n8E700FD9435DA6AF742183ECED2CFCC6B99EDF5FBC148079F5C34DB1C78C3903\nA562FBD8745A0F5FA3399E22B0550C34C9CFA35F796DD56E5A424B4789287D3E\n352C9A0F437C990DC44A3A70D1F63F1C6CC393C899E5FDC78E4BBB6CDD4D8116\nA9F68C4C17542308F09379D9844760966B2C3BFB961715CAFE94154420D2262F\n5D112B2062AED83FD3807CAD3567599EBA5CE673B1A26C8009F4DA\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F20_0 /IWZFZI+CMEX10 1 1\n[ /parenleftbig/parenrightbig/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /summationtext/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font ZZDDUJ+CMR17\n%!FontType1-1.0: ZZDDUJ+CMR17003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMR17.) readonly def\n/FullName (CMR17) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle 0 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /ZZDDUJ+CMR17 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-33 -250 945 749] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 43 /plus put\ndup 49 /one put\ndup 50 /two put\ndup 61 /equal put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF5\nCCB914A848C8A20E9504E76E0E15D6FE273055B678E306DE5C9C2AC731C8E619\n46C9379C438862EA00EFA22BE1C5CFA195B0B4FFD19DF45AEF25BC18A2057789\nF38B681977E9318A38753EB2A3F34BEF36D543328303B7021BD9DEA71D7DBFEF\n5BCC58D21D07D7316F8EBB118B7C8B43AA6786DA852E032F10A26E28EF583D9E\n06B3C6E414223880FCAEDAF9D971653CB8EE1131BCB8F77148BEA6F335A06EE7\nC4271886A4309E598F947B9AD9C090704CA37107E3E9F4D2AA3347DC83F9E339\n14B285CFC2D45AA28147D465EB5E31E1D545EE1C4DF722F4FF69E4E436B53E86\n9954C99896DDD984CB3C66C2146F1FF42E324755D16F79F874102D9DE56820BE\nB48ADBCB0E89CA15C251E847098DD1B99F8DECB863CDE3E7F3142CFD9CD86E75\n0691994185B62A5E908C8BFC7A29EF7862071650CBBD6CD70C70A84AAFC49785\n9CDAB9F5526FA6CC43B25EBC0EED6B4A3A48CECF8E904175A2FAA6A5FDF2C75B\nA51217F50A07AFCD3E35FCF2F2A16888AF85EEE9BEC482A9488C8EBAF33409EC\nA8865B8BD3DAB00E14E8C9CAD09D5F5DE9EE699D0823ED9638F52043241BD3C0\nC6E21B0A05A7D97AFC84E2BD3A48FA3748A7EE0108BEEF6830EBB9843B1D6E2A\nE727C0349BD02D7F1A4B68462BABEA9504595664FC5791FA042B338B5ADBC803\n289C8FD8A3122187B3FE77E3C12EA6A9D62DB5DF62DE8F469A236F5FC035C00A\n080414B7F540914490F157D56C231E2616674D4A82D5B3667A602DBC7FDCC2DC\nBEC8C669F423ACEFA208EF03965DFF21462ADF7C98DACFB2DA042A8CD156965B\n192073F10A2503C70B3CE99C8953D13025EB6725BCED3728C7D2656E3468562C\nAD33E10074A0821DE3E5BF97FFDC0EE5669361157A5182CCA3F6460BD2746B73\n412E27E8C826200B63AC9B855B84CB6A4501514EA5A98A725438D9C941B8FD58\n0EE7AA32551F01297D984EB7DD73A90A3E86C4E9A5443D1EA542F46EBF19BF46\n0DA61DDBBA46A9D5E72CAF1C548B56F2AC5D89469839B3427A9BFC2A88E9205B\nDCA23A5E3E6E151D3199A2955E7248BA237D944077B8618978F1D4ED5FB27961\n375E856E3BA21B9DC339696C0431144999\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F25_0 /ZZDDUJ+CMR17 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n135.32 570.33374 299.6 160.78376 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1.00003 0 0 1 -0.001 0] cm\nq\n[1 0 0 1 142.436 28.772] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\n[2.98883 2.98883] 0 d\n-77.95372 -159.5693 m\n106.30052 -159.5693 l\nS\nQ\nq\n1.19553 w\n-42.5202 -171.84387 m\n0 -98.19649 l\n42.5202 -171.84387 l\nS\nQ\nq\n19.84267 -24.5491 m\n19.84267 -21.41801 17.30447 -18.87984 14.17339 -18.87984 c\n11.0423 -18.87984 8.50412 -21.41801 8.50412 -24.5491 c\n8.50412 -27.68019 11.0423 -30.21838 14.17339 -30.21838 c\n17.30447 -30.21838 19.84267 -27.68019 19.84267 -24.5491 c\nh\nW\n[1 0 0 1 14.17337 -24.54909] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc0_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc0_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc0_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc0_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc0_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc0_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc0_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc0_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n5.66927 -49.09824 m\n5.66927 -45.96715 3.13109 -43.42896 0 -43.42896 c\n-3.13109 -43.42896 -5.66927 -45.96715 -5.66927 -49.09824 c\n-5.66927 -52.22932 -3.13109 -54.7675 0 -54.7675 c\n3.13109 -54.7675 5.66927 -52.22932 5.66927 -49.09824 c\nh\nW\n[1 0 0 1 0 -49.09822] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc1_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc1_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc1_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc1_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc1_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc1_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc1_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc1_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n34.01608 -49.09824 m\n34.01608 -45.96715 31.47789 -43.42896 28.3468 -43.42896 c\n25.21571 -43.42896 22.67754 -45.96715 22.67754 -49.09824 c\n22.67754 -52.22932 25.21571 -54.7675 28.3468 -54.7675 c\n31.47789 -54.7675 34.01608 -52.22932 34.01608 -49.09824 c\nh\nW\n[1 0 0 1 28.34679 -49.09822] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc2_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc2_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc2_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc2_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc2_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc2_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc2_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc2_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-8.50412 -73.64735 m\n-8.50412 -70.51627 -11.0423 -67.97809 -14.17339 -67.97809 c\n-17.30447 -67.97809 -19.84267 -70.51627 -19.84267 -73.64735 c\n-19.84267 -76.77846 -17.30447 -79.31664 -14.17339 -79.31664 c\n-11.0423 -79.31664 -8.50412 -76.77846 -8.50412 -73.64735 c\nh\nW\n[1 0 0 1 -14.17337 -73.64734] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc3_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc3_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc3_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc3_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc3_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc3_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc3_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc3_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n19.84267 -73.64735 m\n19.84267 -70.51627 17.30447 -67.97809 14.17339 -67.97809 c\n11.0423 -67.97809 8.50412 -70.51627 8.50412 -73.64735 c\n8.50412 -76.77846 11.0423 -79.31664 14.17339 -79.31664 c\n17.30447 -79.31664 19.84267 -76.77846 19.84267 -73.64735 c\nh\nW\n[1 0 0 1 14.17337 -73.64734] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc4_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc4_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc4_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc4_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc4_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc4_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc4_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc4_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n48.18947 -73.64735 m\n48.18947 -70.51627 45.65129 -67.97809 42.5202 -67.97809 c\n39.38911 -67.97809 36.85092 -70.51627 36.85092 -73.64735 c\n36.85092 -76.77846 39.38911 -79.31664 42.5202 -79.31664 c\n45.65129 -79.31664 48.18947 -76.77846 48.18947 -73.64735 c\nh\nW\n[1 0 0 1 42.5202 -73.64734] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc5_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc5_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc5_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc5_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc5_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc5_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc5_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc5_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-22.67754 -98.19649 m\n-22.67754 -95.0654 -25.21571 -92.5272 -28.3468 -92.5272 c\n-31.47789 -92.5272 -34.01608 -95.0654 -34.01608 -98.19649 c\n-34.01608 -101.32758 -31.47789 -103.86577 -28.3468 -103.86577 c\n-25.21571 -103.86577 -22.67754 -101.32758 -22.67754 -98.19649 c\nh\nW\n[1 0 0 1 -28.34679 -98.19647] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc6_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc6_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc6_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc6_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc6_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc6_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc6_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc6_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n5.66927 -98.19649 m\n5.66927 -95.0654 3.13109 -92.5272 0 -92.5272 c\n-3.13109 -92.5272 -5.66927 -95.0654 -5.66927 -98.19649 c\n-5.66927 -101.32758 -3.13109 -103.86577 0 -103.86577 c\n3.13109 -103.86577 5.66927 -101.32758 5.66927 -98.19649 c\nh\nW\n[1 0 0 1 0 -98.19647] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc7_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc7_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc7_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc7_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc7_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc7_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc7_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc7_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n34.01608 -98.19649 m\n34.01608 -95.0654 31.47789 -92.5272 28.3468 -92.5272 c\n25.21571 -92.5272 22.67754 -95.0654 22.67754 -98.19649 c\n22.67754 -101.32758 25.21571 -103.86577 28.3468 -103.86577 c\n31.47789 -103.86577 34.01608 -101.32758 34.01608 -98.19649 c\nh\nW\n[1 0 0 1 28.34679 -98.19647] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc8_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc8_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc8_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc8_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc8_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc8_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc8_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc8_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n62.36288 -98.19649 m\n62.36288 -95.0654 59.8247 -92.5272 56.69362 -92.5272 c\n53.56252 -92.5272 51.02434 -95.0654 51.02434 -98.19649 c\n51.02434 -101.32758 53.56252 -103.86577 56.69362 -103.86577 c\n59.8247 -103.86577 62.36288 -101.32758 62.36288 -98.19649 c\nh\nW\n[1 0 0 1 56.69362 -98.19647] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc9_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc9_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc9_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc9_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc9_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc9_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc9_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc9_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-36.85092 -122.74562 m\n-36.85092 -119.61452 -39.38911 -117.07634 -42.5202 -117.07634 c\n-45.65129 -117.07634 -48.18947 -119.61452 -48.18947 -122.74562 c\n-48.18947 -125.87671 -45.65129 -128.41489 -42.5202 -128.41489 c\n-39.38911 -128.41489 -36.85092 -125.87671 -36.85092 -122.74562 c\nh\nW\n[1 0 0 1 -42.5202 -122.7456] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc10_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc10_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc10_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc10_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc10_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc10_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc10_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc10_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-8.50412 -122.74562 m\n-8.50412 -119.61452 -11.0423 -117.07634 -14.17339 -117.07634 c\n-17.30447 -117.07634 -19.84267 -119.61452 -19.84267 -122.74562 c\n-19.84267 -125.87671 -17.30447 -128.41489 -14.17339 -128.41489 c\n-11.0423 -128.41489 -8.50412 -125.87671 -8.50412 -122.74562 c\nh\nW\n[1 0 0 1 -14.17337 -122.7456] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc11_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc11_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc11_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc11_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc11_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc11_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc11_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc11_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n19.84267 -122.74562 m\n19.84267 -119.61452 17.30447 -117.07634 14.17339 -117.07634 c\n11.0423 -117.07634 8.50412 -119.61452 8.50412 -122.74562 c\n8.50412 -125.87671 11.0423 -128.41489 14.17339 -128.41489 c\n17.30447 -128.41489 19.84267 -125.87671 19.84267 -122.74562 c\nh\nW\n[1 0 0 1 14.17337 -122.7456] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc12_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc12_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc12_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc12_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc12_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc12_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc12_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc12_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n48.18947 -122.74562 m\n48.18947 -119.61452 45.65129 -117.07634 42.5202 -117.07634 c\n39.38911 -117.07634 36.85092 -119.61452 36.85092 -122.74562 c\n36.85092 -125.87671 39.38911 -128.41489 42.5202 -128.41489 c\n45.65129 -128.41489 48.18947 -125.87671 48.18947 -122.74562 c\nh\nW\n[1 0 0 1 42.5202 -122.7456] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc13_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc13_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc13_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc13_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc13_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc13_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc13_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc13_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n76.53629 -122.74562 m\n76.53629 -119.61452 73.9981 -117.07634 70.867 -117.07634 c\n67.73592 -117.07634 65.19774 -119.61452 65.19774 -122.74562 c\n65.19774 -125.87671 67.73592 -128.41489 70.867 -128.41489 c\n73.9981 -128.41489 76.53629 -125.87671 76.53629 -122.74562 c\nh\nW\n[1 0 0 1 70.86699 -122.7456] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc14_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc14_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc14_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc14_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc14_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc14_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc14_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc14_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-51.02434 -147.29474 m\n-51.02434 -144.16365 -53.56252 -141.62547 -56.69362 -141.62547 c\n-59.8247 -141.62547 -62.36288 -144.16365 -62.36288 -147.29474 c\n-62.36288 -150.42583 -59.8247 -152.96402 -56.69362 -152.96402 c\n-53.56252 -152.96402 -51.02434 -150.42583 -51.02434 -147.29474 c\nh\nW\n[1 0 0 1 -56.69362 -147.29472] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc15_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc15_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc15_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc15_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc15_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc15_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc15_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc15_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-22.67754 -147.29474 m\n-22.67754 -144.16365 -25.21571 -141.62547 -28.3468 -141.62547 c\n-31.47789 -141.62547 -34.01608 -144.16365 -34.01608 -147.29474 c\n-34.01608 -150.42583 -31.47789 -152.96402 -28.3468 -152.96402 c\n-25.21571 -152.96402 -22.67754 -150.42583 -22.67754 -147.29474 c\nh\nW\n[1 0 0 1 -28.34679 -147.29472] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc16_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc16_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc16_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc16_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc16_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc16_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc16_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc16_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n5.66927 -147.29474 m\n5.66927 -144.16365 3.13109 -141.62547 0 -141.62547 c\n-3.13109 -141.62547 -5.66927 -144.16365 -5.66927 -147.29474 c\n-5.66927 -150.42583 -3.13109 -152.96402 0 -152.96402 c\n3.13109 -152.96402 5.66927 -150.42583 5.66927 -147.29474 c\nh\nW\n[1 0 0 1 0 -147.29472] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc17_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc17_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc17_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc17_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc17_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc17_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc17_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc17_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n34.01608 -147.29474 m\n34.01608 -144.16365 31.47789 -141.62547 28.3468 -141.62547 c\n25.21571 -141.62547 22.67754 -144.16365 22.67754 -147.29474 c\n22.67754 -150.42583 25.21571 -152.96402 28.3468 -152.96402 c\n31.47789 -152.96402 34.01608 -150.42583 34.01608 -147.29474 c\nh\nW\n[1 0 0 1 28.34679 -147.29472] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc18_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc18_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc18_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc18_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc18_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc18_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc18_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc18_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n62.36288 -147.29474 m\n62.36288 -144.16365 59.8247 -141.62547 56.69362 -141.62547 c\n53.56252 -141.62547 51.02434 -144.16365 51.02434 -147.29474 c\n51.02434 -150.42583 53.56252 -152.96402 56.69362 -152.96402 c\n59.8247 -152.96402 62.36288 -150.42583 62.36288 -147.29474 c\nh\nW\n[1 0 0 1 56.69362 -147.29472] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc19_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc19_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc19_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc19_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc19_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc19_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc19_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc19_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n90.7097 -147.29474 m\n90.7097 -144.16365 88.17151 -141.62547 85.04042 -141.62547 c\n81.90933 -141.62547 79.37115 -144.16365 79.37115 -147.29474 c\n79.37115 -150.42583 81.90933 -152.96402 85.04042 -152.96402 c\n88.17151 -152.96402 90.7097 -150.42583 90.7097 -147.29474 c\nh\nW\n[1 0 0 1 85.0404 -147.29472] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.162 mul 0.9595 add\n1 index 1 exp -0.162 mul 0.9595 add\n2 index 1 exp -0.00901 mul 0.99776 add\n4 3 roll pop \n}\n/xpdfFunc20_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.2865 mul 0.7975 add\n1 index 1 exp -0.2865 mul 0.7975 add\n2 index 1 exp -0.29925 mul 0.98875 add\n4 3 roll pop \n}\n/xpdfFunc20_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.146 mul 0.511 add\n1 index 1 exp -0.146 mul 0.511 add\n2 index 1 exp -0.197 mul 0.6895 add\n4 3 roll pop \n}\n/xpdfFunc20_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.365 mul 0.365 add\n1 index 1 exp -0.365 mul 0.365 add\n2 index 1 exp -0.4925 mul 0.4925 add\n4 3 roll pop \n}\n/xpdfFunc20_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc20_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc20_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc20_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc20_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-65.19774 -171.84387 m\n-65.19774 -168.71278 -67.73592 -166.17459 -70.867 -166.17459 c\n-73.9981 -166.17459 -76.53629 -168.71278 -76.53629 -171.84387 c\n-76.53629 -174.97496 -73.9981 -177.51314 -70.867 -177.51314 c\n-67.73592 -177.51314 -65.19774 -174.97496 -65.19774 -171.84387 c\nh\nW\n[1 0 0 1 -70.86699 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc21_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc21_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc21_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc21_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc21_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc21_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc21_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc21_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-36.85092 -171.84387 m\n-36.85092 -168.71278 -39.38911 -166.17459 -42.5202 -166.17459 c\n-45.65129 -166.17459 -48.18947 -168.71278 -48.18947 -171.84387 c\n-48.18947 -174.97496 -45.65129 -177.51314 -42.5202 -177.51314 c\n-39.38911 -177.51314 -36.85092 -174.97496 -36.85092 -171.84387 c\nh\nW\n[1 0 0 1 -42.5202 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc22_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc22_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc22_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc22_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc22_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc22_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc22_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc22_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-8.50412 -171.84387 m\n-8.50412 -168.71278 -11.0423 -166.17459 -14.17339 -166.17459 c\n-17.30447 -166.17459 -19.84267 -168.71278 -19.84267 -171.84387 c\n-19.84267 -174.97496 -17.30447 -177.51314 -14.17339 -177.51314 c\n-11.0423 -177.51314 -8.50412 -174.97496 -8.50412 -171.84387 c\nh\nW\n[1 0 0 1 -14.17337 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc23_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc23_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc23_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc23_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc23_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc23_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc23_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc23_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n19.84267 -171.84387 m\n19.84267 -168.71278 17.30447 -166.17459 14.17339 -166.17459 c\n11.0423 -166.17459 8.50412 -168.71278 8.50412 -171.84387 c\n8.50412 -174.97496 11.0423 -177.51314 14.17339 -177.51314 c\n17.30447 -177.51314 19.84267 -174.97496 19.84267 -171.84387 c\nh\nW\n[1 0 0 1 14.17337 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc24_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc24_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc24_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc24_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc24_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc24_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc24_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc24_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n48.18947 -171.84387 m\n48.18947 -168.71278 45.65129 -166.17459 42.5202 -166.17459 c\n39.38911 -166.17459 36.85092 -168.71278 36.85092 -171.84387 c\n36.85092 -174.97496 39.38911 -177.51314 42.5202 -177.51314 c\n45.65129 -177.51314 48.18947 -174.97496 48.18947 -171.84387 c\nh\nW\n[1 0 0 1 42.5202 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc25_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc25_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc25_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc25_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc25_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc25_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc25_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc25_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n76.53629 -171.84387 m\n76.53629 -168.71278 73.9981 -166.17459 70.867 -166.17459 c\n67.73592 -166.17459 65.19774 -168.71278 65.19774 -171.84387 c\n65.19774 -174.97496 67.73592 -177.51314 70.867 -177.51314 c\n73.9981 -177.51314 76.53629 -174.97496 76.53629 -171.84387 c\nh\nW\n[1 0 0 1 70.86699 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc26_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc26_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc26_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc26_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc26_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc26_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc26_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc26_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n104.88309 -171.84387 m\n104.88309 -168.71278 102.34491 -166.17459 99.21382 -166.17459 c\n96.08273 -166.17459 93.54454 -168.71278 93.54454 -171.84387 c\n93.54454 -174.97496 96.08273 -177.51314 99.21382 -177.51314 c\n102.34491 -177.51314 104.88309 -174.97496 104.88309 -171.84387 c\nh\nW\n[1 0 0 1 99.21382 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.024 mul 0.994 add\n1 index 1 exp -0.13201 mul 0.967 add\n2 index 1 exp -0.23999 mul 0.94 add\n4 3 roll pop \n}\n/xpdfFunc27_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.298 mul 0.97 add\n1 index 1 exp -0.28899 mul 0.83499 add\n2 index 1 exp -0.28001 mul 0.70001 add\n4 3 roll pop \n}\n/xpdfFunc27_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.192 mul 0.672 add\n1 index 1 exp -0.156 mul 0.546 add\n2 index 1 exp -0.12 mul 0.42 add\n4 3 roll pop \n}\n/xpdfFunc27_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.48 mul 0.48 add\n1 index 1 exp -0.39 mul 0.39 add\n2 index 1 exp -0.3 mul 0.3 add\n4 3 roll pop \n}\n/xpdfFunc27_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc27_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc27_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc27_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc27_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 79.328 -57.558] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceRGB {} CS\n[0.1 0.1 0.95] SC\n/DeviceRGB {} cs\n[0.1 0.1 0.95] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n154.181 52.32 Td\n/F15_0 20.6625 Tf\n(n)\n[12.077231\n0] Tj\n147.137 47.363 Td\n/F20_0 24.7871 Tf\n(P)\n[26.165263\n0] Tj\n142.436 4.095 Td\n/F15_0 20.6625 Tf\n(k)\n[10.523411\n0] Tj\n153.652 4.095 Td\n/F25_0 20.6625 Tf\n(=1)\n[14.872867\n0\n9.475823\n0] Tj\n182.133 28.772 Td\n/F15_0 24.7871 Tf\n(k)\n[12.62407\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n202.474 28.772 Td\n/F25_0 24.7871 Tf\n(=)\n[17.841755\n0] Tj\n/DeviceRGB {} CS\n[0.9 0.45 0] SC\n/DeviceRGB {} cs\n[0.9 0.45 0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n227.201 48.85 Td\n/F20_0 24.7871 Tf\n(\\000)\n[11.359928\n0] Tj\n238.562 39.771 Td\n/F15_0 20.6625 Tf\n(n)\n[12.077231\n0] Tj\n250.639 39.771 Td\n/F25_0 20.6625 Tf\n(+1)\n[14.872867\n0\n9.475823\n0] Tj\n252.038 20.225 Td\n(2)\n[9.475823\n0] Tj\n274.989 48.85 Td\n/F20_0 24.7871 Tf\n(\\001)\n[11.359928\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceRGB {} CS\n[0.1 0.1 0.95] SC\n/DeviceRGB {} cs\n[0.1 0.1 0.95] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n5.66927 -98.19649 m\n5.66927 -95.0654 3.13109 -92.5272 0 -92.5272 c\n-3.13109 -92.5272 -5.66927 -95.0654 -5.66927 -98.19649 c\n-5.66927 -101.32758 -3.13109 -103.86577 0 -103.86577 c\n3.13109 -103.86577 5.66927 -101.32758 5.66927 -98.19649 c\nh\nW\n[1 0 0 1 0 -98.19647] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.53999 mul 0.865 add\n1 index 1 exp -0.53999 mul 0.865 add\n2 index 1 exp -0.03 mul 0.9925 add\n4 3 roll pop \n}\n/xpdfFunc28_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.25501 mul 0.32501 add\n1 index 1 exp -0.25501 mul 0.32501 add\n2 index 1 exp -0.2975 mul 0.9625 add\n4 3 roll pop \n}\n/xpdfFunc28_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.02 mul 0.07 add\n1 index 1 exp -0.02 mul 0.07 add\n2 index 1 exp -0.19001 mul 0.665 add\n4 3 roll pop \n}\n/xpdfFunc28_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.05 mul 0.05 add\n1 index 1 exp -0.05 mul 0.05 add\n2 index 1 exp -0.47499 mul 0.47499 add\n4 3 roll pop \n}\n/xpdfFunc28_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc28_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc28_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc28_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc28_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n-36.85092 -171.84387 m\n-36.85092 -168.71278 -39.38911 -166.17459 -42.5202 -166.17459 c\n-45.65129 -166.17459 -48.18947 -168.71278 -48.18947 -171.84387 c\n-48.18947 -174.97496 -45.65129 -177.51314 -42.5202 -177.51314 c\n-39.38911 -177.51314 -36.85092 -174.97496 -36.85092 -171.84387 c\nh\nW\n[1 0 0 1 -42.5202 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.06001 mul 0.985 add\n1 index 1 exp -0.33 mul 0.9175 add\n2 index 1 exp -0.6 mul 0.85 add\n4 3 roll pop \n}\n/xpdfFunc29_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.295 mul 0.92499 add\n1 index 1 exp -0.2725 mul 0.5875 add\n2 index 1 exp -0.25 mul 0.25 add\n4 3 roll pop \n}\n/xpdfFunc29_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.17999 mul 0.62999 add\n1 index 1 exp -0.09001 mul 0.315 add\n2 index 1 exp 0 mul 0 add\n4 3 roll pop \n}\n/xpdfFunc29_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.45 mul 0.45 add\n1 index 1 exp -0.22499 mul 0.22499 add\n2 index 1 exp 0 mul 0 add\n4 3 roll pop \n}\n/xpdfFunc29_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc29_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc29_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc29_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc29_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nq\n48.18947 -171.84387 m\n48.18947 -168.71278 45.65129 -166.17459 42.5202 -166.17459 c\n39.38911 -166.17459 36.85092 -168.71278 36.85092 -171.84387 c\n36.85092 -174.97496 39.38911 -177.51314 42.5202 -177.51314 c\n45.65129 -177.51314 48.18947 -174.97496 48.18947 -171.84387 c\nh\nW\n[1 0 0 1 42.5202 -171.84386] cm\n[1 0 0 1 0 0] cm\n[0.22679 0 0 0.22679 0 0] cm\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 142.436 28.772] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 92.436 -21.228] cm\nq\n[1 0 0 1 0 0] cm\n0 0 100 100 re\nW\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceRGB {} cs\n/x0 40.00052 def\n/x1 50.00064 def\n/dx 10.00012 def\n/y0 60.00076 def\n/y1 50.00064 def\n/dy -10.00012 def\n/r0 0 def\n/r1 50.00064 def\n/dr 50.00064 def\n/t0 0 def\n/t1 50.00064 def\n/dt 50.00064 def\n/n 3 def\n/encl true def\n/a1 0 def\n/a2 360 def\n/func { dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.06001 mul 0.985 add\n1 index 1 exp -0.33 mul 0.9175 add\n2 index 1 exp -0.6 mul 0.85 add\n4 3 roll pop \n}\n/xpdfFunc30_0 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.295 mul 0.92499 add\n1 index 1 exp -0.2725 mul 0.5875 add\n2 index 1 exp -0.25 mul 0.25 add\n4 3 roll pop \n}\n/xpdfFunc30_1 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.17999 mul 0.62999 add\n1 index 1 exp -0.09001 mul 0.315 add\n2 index 1 exp 0 mul 0 add\n4 3 roll pop \n}\n/xpdfFunc30_2 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\n0 index 1 exp -0.45 mul 0.45 add\n1 index 1 exp -0.22499 mul 0.22499 add\n2 index 1 exp 0 mul 0 add\n4 3 roll pop \n}\n/xpdfFunc30_3 exch def\n{ dup 0 lt { pop 0 } { dup 50.00064 gt { pop 50.00064 } if } ifelse\ndup 9.00009 lt { 0 sub 0.11111 mul 0 add xpdfFunc30_0 } {\ndup 18.00021 lt { 9.00009 sub 0.11111 mul 0 add xpdfFunc30_1 } {\ndup 25.00032 lt { 18.00021 sub 0.142855 mul 0 add xpdfFunc30_2 } {\n25.00032 sub 0.039999 mul 0 add xpdfFunc30_3\n} ifelse\n} ifelse\n} ifelse\n}\ndef\n0 1 0 radialSH\n0 radialCol sc\n40.00052 60.00076 0 0 360 arc h f*\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 142.436 28.772] cm\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%+ font QLBTNG+CMMI12\n%%+ font IWZFZI+CMEX10\n%%+ font ZZDDUJ+CMR17\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-gaussian-sum-proof.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n{\n  \\definecolor{summand}{rgb}{0.1, 0.1, 0.95}\n  \\definecolor{pair}{rgb}{0.9, 0.45, 0}\n  \\huge\n  \\begin{tikzpicture}\n    \\draw [dashed] (0.5-0.5*6.5,-0.866025*6.5) -- (7-0.5*6.5,-0.866025*6.5);\n    \\draw [very thick] (2-0.5*7,-0.866025*7) -- (2-0.5*4,-0.866025*4) -- (5-0.5*7,-0.866025*7);\n    \\foreach \\x in {1,...,6}\n      \\foreach \\y in {1,...,\\x}\n        \\shade[ball color=summand!30]  (\\y-0.5*\\x,-0.866025*\\x) circle (0.2cm);\n    \\foreach \\y in {1,...,7}\n      \\shade[ball color=pair!40]  (\\y-0.5*7,-0.866025*7) circle (0.2cm);\n    \\node at (2.5,-0.5) [anchor=north west]{$\\color{summand}\\sum\\limits_{k=1}^nk\\color{black}=\\color{pair}\\binom{n+1}{2}$};\n    \\shade[ball color=summand]  (2-0.5*4,-0.866025*4) circle (0.2cm);\n    \\shade[ball color=pair]  (2-0.5*7,-0.866025*7) circle (0.2cm);\n    \\shade[ball color=pair]  (5-0.5*7,-0.866025*7) circle (0.2cm);\n  \\end{tikzpicture}\n}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-implicitly-defined-curve.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2315\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 123 524 366 736\n%%HiResBoundingBox: 123.8 524.76136 365.32 735.43489\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%BeginResource: font OWIGFN+CMSY10\n%!FontType1-1.0: OWIGFN+CMSY10003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMSY10.) readonly def\n/FullName (CMSY10) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle -14.04 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /OWIGFN+CMSY10 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-29 -960 1116 775] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 0 /minus put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nFCC85D7215D6A753D1600581E5546F14F3D65234054555B96FD9B9668401E43D\nDAC0F02F812EB053F8E70788172E1CEFDE15EF41FC327A1B4488DC9CE002C7AB\nD3F3F73476C713CC9F115984E4E692F942E2B7B0C31BE8E40ABCBDA71B68EC65\n9576CD50435DCBFC0FCF66B6B1A59C43A1CEDBB8E2B23C02C62E02886B2EA345\nC51B0E22860BD89B19F40FE6A64CBC103B28CC542CFC9DCF7965DAE07EA5F142\n9C40F87BE010EACE6DA600DA48B29E516AF6FF7626EF6D645DB3A1D89BB83D16\n6322E851DF9669F701B330C92390ACF5271FC4ED3404A1E9E0D9A71FFF797EA1\n92CFE925F3E7F2917E5D63A58913E86BEFB82DEE4B29F90F9D9025AB6C9D6FB4\n74F955694CE206CF15D0EB5B4EC46CEAE9562934D2F2A41D8F91428C285A5646\nAAF4273C49DC086BBD712E6E854C35327FC77ABF96D670850990B498DBD17033\n3013A4008635B23F7CCDCD8A087934D2FF449D6F2B90C31AAD0EF5F5AFB312E0\nFD496FBF5177999EBA15A448E6BBA45F5460FA0E\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F7_0 /OWIGFN+CMSY10 1 1\n[ /minus/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font CNXUVF+CMR10\n%!FontType1-1.0: CNXUVF+CMR10003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMR10.) readonly def\n/FullName (CMR10) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle 0 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /CNXUVF+CMR10 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-40 -250 1009 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 48 /zero put\ndup 49 /one put\ndup 50 /two put\ndup 52 /four put\ndup 54 /six put\ndup 56 /eight put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nFA6B0AF338BD4E48F07258C8AB349EE790EF474E6D540CD5017BDA227D234CDE\nC5B56DC44D44AB50DFB075E5E1022F04510349EA668084E7A051605C83646AF5\n902E437867493A954EAEF35981EA89706F0AC717DFC491968979A7EF87F475E4\n8F22A3A7D7750B755878A9B88483EDC2409C0D58BE116764B583FF78D1FBF3AD\n289831C79680B7183956FD64718B7BBE2D8DF65EB9DAA46A90706B45496ACFE9\n78439069B8944845B613846CACD0BD317E15DCE9A145DE8422B266E8CBC8A5CD\n07CACD5E0FA463C120BA209A233883345CC16C7ADA020E9DF7F7FE743B732243\n88F14566F41A69F9C092E078B741533D1E39573218CE940A0B2B28AC3B6B328A\nE9A743E33C8C7A3BAF9AE51808EE1C9465B0F491CE6C85AEDA62767AB8A69D86\nDAC68CE4DF29AF3F22F1FE2C22A9BE52777EE86B0963076C036AA316519C04E1\n1173EAC9977A31AA8E35658572E5239D6D7BA798583E84268E6864DC3ADBD7CB\nD03EF93B4EE9635B813A13A65612E211A5A7BF4EA95C0C794EC23ED8ACA2AF11\nC2CE5F4AFE416E93283B29010F72D5613B8357B02F5A769CF2C9BE02B818CFF1\n848779642524E34B8FAA798DB586875841CD456D75CE01B416794CF8FAEE5DE8\nFB73F28EF759A9F9DA7EEE354EE6F578B522799A217BD90768E3D53E2AC01904\nB4FC711F57A64EAB38098C7A1C727BCB1A1FD0A35701BB16BFF863B96C7D870B\nDCD62344F12F41188AE456D036C6ECD53A516C84AD87F8D21421D643FD4B2FF7\n09F785C2A65A9FC4F18F23C9EBB3F99AD6B3EB6E57AA76449FB55E7B2DF592A6\n7C3DE3A52E819C5EF03C8B878C60EE2CC7D91FF9B254680C3F7E337572B50387\nC0E5AFBE223BEBD5A1853EC61B182D0569D31EFB3F3841C1535A426326A94D34\n62C2FBBE9A941B23925DADBDB07320F748837F665A7AA8F4C2B2CB2F7097EACE\n0E7197F0948744C6D268B24DF848BD75BBCC874DA05E5B2439A4AD40A373FFBE\nD6EC6C968240816306BA0FF419328C1AD57290F77DCC618A7300006370DC255A\n23D67A6C88E51A697A43B5EE44B4982D6B26CD391448D2DF8DF5967018590C15\nB3B913D79E5168C006950D7C10480AD5A2CF65A67E20FAB30BAA303394ACA633\nBC3DA04EB1F4F71106FAD0F9F56DA0BD9B9E0BC4964EB50936D50BF0EEED1BE5\n5EA2A549605BA19DBC4228AC7B9796C15FAF58BD5EE15E309EC6F2A9586E22AF\n6B787375E8961E285F4AB8AC14BBC5E67CDE876AD397E3A33CA7EDF4433798CC\n230F5DB5D5DCB3261B0D700AAB715279EAA9A3205A5906997F9B6EA3DD899CE7\n3E81DE8AA4985A311B8E6F2A8A7F082AC09F035ED371760103034E4CAB72C76F\nDF91931259E6ED5183F6AED470EB0817D8882D34D1E4A98434EBFC216775268C\n0224AC4F5A3F903F2C31D12C9604E262D969E15E2C891BEBB535699709C16BB3\nA34E54C860351B2897647CF13CB6ED7427204938E0C80F4F7EE44C5DDEBCE15C\n56DA5FBEB3BF72F8412B92738050D50DE395A24B30B0C1B95C657B39B79E7452\nB9CEDC9A72E526DFF66FA49FEE02F1C2047A83D806288A4A4655AA8F09EB8C8E\n372E359E03A30A20998E85487F0B132DBCBFE4677E0ED991B725AFEF14571BBF\nD54DCC42DC48DA\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F12_0 /CNXUVF+CMR10 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font UNXGZS+CMMI12\n%!FontType1-1.0: UNXGZS+CMMI12003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMMI12.) readonly def\n/FullName (CMMI12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle -14.04 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /UNXGZS+CMMI12 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-31 -250 1026 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 120 /x put\ndup 121 /y put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A303DCB3A46C281B472F99892DCADA5FC6E4C2524AE72\n569652A7D664B73CC839B5405D299F805DA5E9FE5C41F969093CFD7B26C9805B\n6EC2DA5C4EA81C285458F5CCCDC02F82AC0E127BDB8F9E0A94383740D13431F8\n554EF5B7648E7C56F5F38740D67CB57E0007961013F2F16CDB5BA3F5C1414F66\nAECF5AFFA42AA51168B07908FD53D54A2CFEF17624741ECA22F7626685779284\n56899ED3A87EB156921AFFE08F658C5379DF758C777CCB51DFBDA39A6D5A2A69\n807BC97310A8AF1387EE2FDA4F5D42C3E58C41911DCB0FC5EE8F46ECCEF5C075\n05521206F702D8881449A147D69FDD3D944095A74B6E1F29EFDD56C32DEB618B\n2758D0DC792DF98B452F414B024D650A9AF099970874268CF84629A882B117FF\n5FEDAC17EA58ADE2BE25B84C2DF4E83CB4E6CE24F7C167CD5B708212EAB4ABC9\n64EA89F08396E45C4F7B364A5DB9454DF68A7A50AB000A903D9DB6B0E5DDA6C9\n5C6939973123F19EF5104A2F5FBC2D2E8944159CDD9D0ED97FEB8AD151DD88C3\nE0B0A5187FB3E4251E43F54BD496DF4D93477A28605259957616123B41DE79F6\n770536CDEDE60317CD11F24C201E4CA936E468A8FFDADBA6D05CBB75E16CB6D1\nF77C20003F7BDFF60C92B23F00FC8FD2758090688D709B109BB52FC5626B230E\n6D3D3854EF6CAFA13E4B45EF94822526C6A08024C323824BA08888B609EB26D1\nDDAC35918625B38ACE3ED915E5E53A3B9A791CD31C03C5A8DEFF4197DD30A797\n1B9D473B797BB11F3CA50CB56DE9A2C1863ACA9F3BFCF7A9054818BA26A8C0A7\n96ACE57DB1AD3541D99E61E6ADFF8101F23D6E52F11A116CDCF92BA1CB780880\nB27240426B63B53D18F72ABAB46A39CEA9F91E4A94102C3BAD969A067EA20893\nB5EDB87452FFD4975293595992C57B07A201D78994479FB42E6298B64EB37FEA\nC4FA62F59172943CE274EFE7D64BFD87E46B2E92136E732A1FAB5D3DB00C86C3\nB8838403D9D59F39A7EA2AE4A35B0448467DD2E38F3EEEB9D4FB37C321DA930A\n4E3B3FBA90D56CFAAD\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F17_0 /UNXGZS+CMMI12 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font QIFWWR+CMR12\n%!FontType1-1.0: QIFWWR+CMR12003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMR12.) readonly def\n/FullName (CMR12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle 0 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /QIFWWR+CMR12 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-34 -251 988 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 40 /parenleft put\ndup 41 /parenright put\ndup 52 /four put\ndup 61 /equal put\ndup 99 /c put\ndup 111 /o put\ndup 115 /s put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A37E2724CD63F484F47C6447F507C11793B061A71C2EB\n7D651F93505835EBF9032E361AE5C694F562A11D768CB4FB2540B4281CECEE7D\n3A31CE697DC0DEFB6C96B38A970EDFE1B25B852DF4F12D7FA0932E9DE6181BBE\nDCD1306A9EB0AFEF37E8FCBE25FB1A843A2D67AB2CEB0D8AAC217FEAE0C1F3A9\n6EA27594AD85747780D7B015C4E8064EEDC329E82E9BF096E7CE83A8493E591B\nED192F9E0BBC812B8A27B7C34952D4D896884F29DFEB29B79256454542DF3112\n4025128FD9396DB4FF2F8889181195E2A3D5FBF1E595A8480D10FEA58DF1839D\nC0870F22B952146A006B4C3320189F800105B2815AEC32B5A1D09812868CF6B3\n134435ED1F6538514481429FB47758AF72FAF06D4A79053FEE5484662376D733\nB2254C967457FCF0D257A453E3BF78C16AE34F2CA28EED422CA9DE52778FE6C1\nE144E4F9CFC0402F12B29C4854DBDD43C32F00B0D1621453BD3EC0D53932403E\nE812C3952F694FBFE12BE95645399DC1E0391C9DF8E0AFB8970DF859341A3F1E\n560449BAACCF3D46A46E622DC48584ECDE07FE00EB2E78B54A116426946963DF\nE5DEB03AE0FB6546A85C42711228D6B111CF2615220DC5BD793FCE854F9DFCE9\n3CF63F95E95AD48D69911E47FB2A86595809471FF37A3DB909FFF1796FA2927C\nE37A30879F3836E47753E580064A16FB2E02B4D2BF47390EDA535E9EA0BC07F1\n7E385D65E7A26013280B62754EE89C986903BBB45DF26A72B7C13D0B88E4DC8D\nB3E3B7FE367A77E146578D51411ECE4537B0F56D9E7DAA938EE497CD7EB7A4A7\nD0BD836303ABD264BD0E89C8F32A98D446BC7FA0820983E60E1BF65ABDAA225E\nD7AB778ABC9D73A35D41A50C4A38D0B91114063EB0C67D165BC7C23581329DD6\n0F3A3594F9442897E8A77E391923621C95AF476C809782B455FCEE7B92115E62\n3EACC5BD262BF3BE49F679BFEC6509CBCFA65E429ED3178927F755EADDDD7AE2\nEBB624536952F5A3115B4A4F9CD130409051C10F55CB364C405EFB15713F2075\nF47339B3F3E794F2E3A0C5E0A7304C1A2AFDC0807AA847E0391C87B0F5FBD642\n7B3B66C5EDAE26DCF5BB75E18203077B71CA5399B3908506E8B532DB3A6F48B9\nF3639AA8C6C6039F98480C87A558001753334550C08B4D8A54C00E927EF7910A\nB6F06AF19B580E83CDBF85BE58F7144007BF0873AC2041AE24D8EBECF303CFC7\n978B5EB427636A202912E147B8E5600AFEC5E556B337DC90B02B9B503954FE2B\n5250CE506814E1E4A9EBE7A00129CB694241238612EA83D913A803AFBF3B12CF\n1F140A87925F4963EA1A36B80DB7B6B12359A2624E29C4B5F4928019EAF6E13F\n714A5475F87FE242D7BFE58DB0D02348091920EF946985A219BD96E0DFD65067\n152508D9182E9919CCADCA5EBAC1A63DFA6F830747E0F9044D8823DA0A50E502\nB1F685E041F7ACCEFFF35E72F3183E661209CB8F121569322401314A090FCA32\n3EA60833F9D4044D3AFB907B570543CD3ADAF9B0718221638BD088E8963A4750\n2968954C61B83E9D2E0B5DB6C1ACB0A2D56F6918058A420FE8F0C9151F39F9A1\n59AD9FF9C3CBD70D2C1E5675E463942EC0659B4853057B2E926243CFA48E3FAB\nAC8C1F6FA9C9AF0704D5E64B03A5E1C3F6DC93241EA4AB80223A5CE9B0A328CE\n2C8B7672F4E344D25F1F48D6F2122EF06803B0158C365C2018C2DEA908DC71E6\nAAB4B7E8D3C48E400C71DDBA096944CF8454324C028E4C3E780813F1811C81E1\n11FBA3157D325528085C6A\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F22_0 /QIFWWR+CMR12 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n123.8 524.76136 241.52 210.67353 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1.00002 0 0 1.00006 -0.001 0.012] cm\nq\n[1 0 0 1 52.792 -192.038] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\nQ\nq\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.792 -192.038] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.792 -192.038] cm\nQ\nQ\nQ\nQ\nq\nQ\nq\nQ\nq\nQ\nq\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.792 -192.038] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 -0.199 -5.341] cm\nq\n[1 0 0 1 52.045 -186.697] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\n/DeviceRGB {} CS\n[1 0 0] SC\n/DeviceRGB {} cs\n[1 0 0] sc\n[] 0 d\nq\nq\nq\n0.3985 w\n/DeviceGray {} CS\n[0.75] SC\n/DeviceGray {} cs\n[0.75] sc\n[] 0 d\n/DeviceGray {} CS\n[0.8] SC\n/DeviceGray {} cs\n[0.8] sc\n0.9461 0 m\n0.9461 206.22824 l\n18.024 0 m\n18.024 206.22824 l\n35.10191 0 m\n35.10191 206.22824 l\n52.17981 0 m\n52.17981 206.22824 l\n69.2577 0 m\n69.2577 206.22824 l\n86.33562 0 m\n86.33562 206.22824 l\n103.41351 0 m\n103.41351 206.22824 l\n120.49142 0 m\n120.49142 206.22824 l\n137.56932 0 m\n137.56932 206.22824 l\n154.64723 0 m\n154.64723 206.22824 l\n171.72513 0 m\n171.72513 206.22824 l\n188.80302 0 m\n188.80302 206.22824 l\n205.88094 0 m\n205.88094 206.22824 l\n222.95883 0 m\n222.95883 206.22824 l\n240.03674 0 m\n240.03674 206.22824 l\nS\n/DeviceGray {} CS\n[0.75] SC\n/DeviceGray {} cs\n[0.75] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nq\nq\n0.3985 w\n/DeviceGray {} CS\n[0.75] SC\n/DeviceGray {} cs\n[0.75] sc\n[] 0 d\n/DeviceGray {} CS\n[0.8] SC\n/DeviceGray {} cs\n[0.8] sc\n0.9461 0 m\n240.03674 0 l\n0.9461 14.12521 m\n240.03674 14.12521 l\n0.9461 28.25044 m\n240.03674 28.25044 l\n0.9461 42.37566 m\n240.03674 42.37566 l\n0.9461 56.50089 m\n240.03674 56.50089 l\n0.9461 70.6261 m\n240.03674 70.6261 l\n0.9461 84.75133 m\n240.03674 84.75133 l\n0.9461 98.87654 m\n240.03674 98.87654 l\n0.9461 113.00177 m\n240.03674 113.00177 l\n0.9461 127.127 m\n240.03674 127.127 l\n0.9461 141.25221 m\n240.03674 141.25221 l\n0.9461 155.37744 m\n240.03674 155.37744 l\n0.9461 169.50266 m\n240.03674 169.50266 l\n0.9461 183.62788 m\n240.03674 183.62788 l\n0.9461 197.7531 m\n240.03674 197.7531 l\nS\n/DeviceGray {} CS\n[0.75] SC\n/DeviceGray {} cs\n[0.75] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nq\nq\n0.19925 w\n/DeviceGray {} CS\n[0.5] SC\n/DeviceGray {} cs\n[0.5] sc\n0.9461 55.08318 m\n0.9461 57.9186 l\n18.024 55.08318 m\n18.024 57.9186 l\n35.10191 55.08318 m\n35.10191 57.9186 l\n52.17981 55.08318 m\n52.17981 57.9186 l\n69.2577 55.08318 m\n69.2577 57.9186 l\n86.33562 55.08318 m\n86.33562 57.9186 l\n103.41351 55.08318 m\n103.41351 57.9186 l\n120.49142 55.08318 m\n120.49142 57.9186 l\n137.56932 55.08318 m\n137.56932 57.9186 l\n154.64723 55.08318 m\n154.64723 57.9186 l\n171.72513 55.08318 m\n171.72513 57.9186 l\n188.80302 55.08318 m\n188.80302 57.9186 l\n205.88094 55.08318 m\n205.88094 57.9186 l\n222.95883 55.08318 m\n222.95883 57.9186 l\n240.03674 55.08318 m\n240.03674 57.9186 l\nS\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n0.19925 w\n/DeviceGray {} CS\n[0.5] SC\n/DeviceGray {} cs\n[0.5] sc\n52.17981 54.37456 m\n52.17981 58.6272 l\n86.33562 54.37456 m\n86.33562 58.6272 l\n154.64723 54.37456 m\n154.64723 58.6272 l\n188.80302 54.37456 m\n188.80302 58.6272 l\nS\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nq\nq\n0.19925 w\n/DeviceGray {} CS\n[0.5] SC\n/DeviceGray {} cs\n[0.5] sc\n119.07399 0 m\n121.90887 0 l\n119.07399 14.12521 m\n121.90887 14.12521 l\n119.07399 28.25044 m\n121.90887 28.25044 l\n119.07399 42.37566 m\n121.90887 42.37566 l\n119.07399 56.50089 m\n121.90887 56.50089 l\n119.07399 70.6261 m\n121.90887 70.6261 l\n119.07399 84.75133 m\n121.90887 84.75133 l\n119.07399 98.87654 m\n121.90887 98.87654 l\n119.07399 113.00177 m\n121.90887 113.00177 l\n119.07399 127.127 m\n121.90887 127.127 l\n119.07399 141.25221 m\n121.90887 141.25221 l\n119.07399 155.37744 m\n121.90887 155.37744 l\n119.07399 169.50266 m\n121.90887 169.50266 l\n119.07399 183.62788 m\n121.90887 183.62788 l\n119.07399 197.7531 m\n121.90887 197.7531 l\nS\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n0.19925 w\n/DeviceGray {} CS\n[0.5] SC\n/DeviceGray {} cs\n[0.5] sc\n118.36546 0 m\n122.61737 0 l\n118.36546 28.25044 m\n122.61737 28.25044 l\n118.36546 84.75133 m\n122.61737 84.75133 l\n118.36546 113.00177 m\n122.61737 113.00177 l\n118.36546 141.25221 m\n122.61737 141.25221 l\n118.36546 169.50266 m\n122.61737 169.50266 l\n118.36546 197.7531 m\n122.61737 197.7531 l\nS\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\n1.40439 56.50089 m\n239.57846 56.50089 l\nS\nq\n[-1 0 0 -1 1.40439 56.50089] cm\nq\n0.31879 w\n[] 0 d\n1 J\n1 j\n-1.19551 1.59401 m\n-1.09587 0.99626 0 0.09961 0.29886 0 c\n0 -0.09961 -1.09587 -0.99626 -1.19551 -1.59401 c\nS\nQ\nQ\nq\n[1 0 0 1 239.57846 56.50089] cm\nq\n0.31879 w\n[] 0 d\n1 J\n1 j\n-1.19551 1.59401 m\n-1.09587 0.99626 0 0.09961 0.29886 0 c\n0 -0.09961 -1.09587 -0.99626 -1.19551 -1.59401 c\nS\nQ\nQ\n120.49142 0.45827 m\n120.49142 205.76996 l\nS\nq\n[0 -1 1 0 120.49142 0.45827] cm\nq\n0.31879 w\n[] 0 d\n1 J\n1 j\n-1.19551 1.59401 m\n-1.09587 0.99626 0 0.09961 0.29886 0 c\n0 -0.09961 -1.09587 -0.99626 -1.19551 -1.59401 c\nS\nQ\nQ\nq\n[0 1 -1 0 120.49142 205.76996] cm\nq\n0.31879 w\n[] 0 d\n1 J\n1 j\n-1.19551 1.59401 m\n-1.09587 0.99626 0 0.09961 0.29886 0 c\n0 -0.09961 -1.09587 -0.99626 -1.19551 -1.59401 c\nS\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 45.815 43.77] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F7_0 9.9626 Tf\n(\\000)\n[7.74891\n0] Tj\n59.793 -186.697 Td\n/F12_0 9.9626 Tf\n(4)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 79.971 43.77] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F7_0 9.9626 Tf\n(\\000)\n[7.74891\n0] Tj\n59.793 -186.697 Td\n/F12_0 9.9626 Tf\n(2)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 152.157 43.77] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(2)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 186.312 43.77] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(4)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 103.72 -2.795] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F7_0 9.9626 Tf\n(\\000)\n[7.74891\n0] Tj\n59.793 -186.697 Td\n/F12_0 9.9626 Tf\n(4)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 103.72 25.455] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F7_0 9.9626 Tf\n(\\000)\n[7.74891\n0] Tj\n59.793 -186.697 Td\n/F12_0 9.9626 Tf\n(2)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 111.469 81.541] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(2)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 111.469 109.792] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(4)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 111.469 138.042] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(6)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 111.469 166.292] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(8)\n[4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 106.488 194.543] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F12_0 9.9626 Tf\n(10)\n[4.9813\n0\n4.9813\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\n0.9461 0 239.09064 206.22824 re\nW\nq\n120.49142 113.00133 m\n120.52731 112.97165 l\n120.63522 112.88246 l\n120.81583 112.7338 l\n121.0703 112.5269 l\n121.40012 112.2663 l\n121.80708 111.96262 l\n122.29283 111.63602 l\n122.85785 111.32045 l\n123.50032 111.06721 l\n124.21434 110.9468 l\n124.98802 111.04456 l\n125.80333 111.45044 l\n126.6374 112.23808 l\n127.4686 113.4401 l\n128.28372 115.02753 l\n129.08298 116.89702 l\n129.88307 118.8755 l\n130.71681 120.72646 l\n131.63525 122.16391 l\n132.70895 122.86345 l\n134.0412 122.47217 l\n135.79288 120.61504 l\n138.24971 116.8817 l\n142.01813 110.73715 l\nS\nQ\nq\n142.01913 110.73543 m\n142.35472 110.207 l\n142.70396 109.66267 l\n143.06822 109.10052 l\n143.44838 108.52124 l\n143.84631 107.92262 l\n144.26335 107.30424 l\n144.70088 106.6652 l\n145.1613 106.00334 l\n145.64632 105.31877 l\n146.15984 104.60764 l\n146.7043 103.86891 l\n147.28357 103.10048 l\n147.90247 102.29915 l\n148.56749 101.45937 l\n149.28613 100.57709 l\n150.06915 99.64456 l\n150.92664 98.65707 l\n151.88026 97.59796 l\n152.95753 96.44968 l\n154.1962 95.18925 l\n155.67105 93.7667 l\n157.52757 92.08876 l\n160.1347 89.92645 l\n167.26266 84.98358 l\nS\nQ\nq\n181.8781 85.07541 m\n177.71895 87.17442 l\n175.90341 88.20232 l\n174.68182 88.94041 l\n173.65613 89.59027 l\n172.75287 90.18636 l\n171.99307 90.70802 l\n171.34001 91.17247 l\n170.70387 91.63695 l\n170.1386 92.0626 l\n169.59842 92.4797 l\n169.11424 92.86427 l\n168.64291 93.24664 l\n168.21921 93.59982 l\n167.83376 93.92874 l\n167.43617 94.27306 l\n167.07227 94.59535 l\n166.71173 94.92021 l\n166.38179 95.22426 l\n166.05219 95.53242 l\n165.74701 95.82387 l\n165.4449 96.11667 l\n165.17471 96.38484 l\n164.9013 96.65912 l\n164.62755 96.93729 l\nS\nQ\nq\n164.62772 96.93723 m\n161.2007 100.85313 l\n158.80672 104.17157 l\n156.96384 107.15788 l\n155.48422 109.90599 l\n154.25578 112.48024 l\n153.22174 114.90361 l\n152.3441 117.19019 l\n151.59267 119.35397 l\n150.94917 121.39757 l\n150.39568 123.33197 l\n149.92741 125.1442 l\n149.5329 126.83987 l\n149.20586 128.41785 l\n148.94218 129.87146 l\n148.73827 131.19865 l\n148.59344 132.38995 l\n148.50276 133.44835 l\n148.46861 134.36058 l\n148.48875 135.1267 l\n148.56407 135.74031 l\n148.69557 136.1954 l\n148.88583 136.48476 l\n149.13686 136.60425 l\n149.45299 136.54521 l\nS\nQ\nq\n149.45299 136.54523 m\n149.70863 136.40082 l\n149.99828 136.16783 l\n150.32532 135.84244 l\n150.69028 135.4273 l\n151.09587 134.9186 l\n151.54587 134.3111 l\n152.04626 133.60216 l\n152.6013 132.7901 l\n153.21268 131.87022 l\n153.89409 130.84323 l\n154.6421 129.70294 l\n155.4772 128.43672 l\n156.40625 127.04678 l\n157.44287 125.52837 l\n158.6093 123.86075 l\n159.92601 122.04561 l\n161.43228 120.0526 l\n163.16226 117.8761 l\n165.19283 115.47696 l\n167.60594 112.8248 l\n170.5809 109.82373 l\n174.37563 106.39198 l\n179.6117 102.26927 l\n188.06697 96.80193 l\nS\nQ\nq\n188.06697 96.80193 m\n188.46829 96.57404 l\n188.9089 96.326 l\n189.3256 96.09232 l\n189.79184 95.83429 l\n190.24611 95.58667 l\n190.6833 95.35127 l\n191.23322 95.05798 l\n191.74725 94.78978 l\n192.30742 94.49904 l\n192.81804 94.2397 l\n193.47212 93.90912 l\n194.03398 93.63109 l\n194.75296 93.27931 l\n195.38144 92.97969 l\n196.19434 92.59557 l\n196.89624 92.27153 l\n197.75868 91.88051 l\n198.63477 91.49188 l\n199.57918 91.08104 l\n200.69609 90.60855 l\n201.84714 90.13234 l\n203.25606 89.56715 l\n204.78624 88.97447 l\n206.78777 88.22844 l\nS\nQ\nq\n236.73729 85.2294 m\n221.526 89.57655 l\n215.66656 91.63542 l\n211.7045 93.18602 l\n208.62022 94.49446 l\n206.12001 95.62924 l\n203.88965 96.70178 l\n202.02132 97.65048 l\n200.32037 98.55528 l\n198.78506 99.40709 l\n197.39151 100.21414 l\n196.08505 100.99753 l\n194.90155 101.73515 l\n193.80515 102.4414 l\n192.77536 103.12517 l\n191.778 103.80939 l\n190.89166 104.43607 l\n190.03777 105.05655 l\n189.22656 105.66072 l\n188.46147 106.24805 l\n187.71346 106.83382 l\n187.01668 107.39465 l\n186.35065 107.94203 l\n185.71191 108.47926 l\n185.07834 109.02434 l\nS\nQ\nq\n185.07834 109.02434 m\n179.23598 114.69702 l\n175.15437 119.5268 l\n172.09572 123.78041 l\n169.71335 127.57748 l\n167.81941 130.99103 l\n166.29436 134.05902 l\n165.06987 136.79527 l\n164.093 139.21674 l\n163.32622 141.33656 l\n162.74556 143.14766 l\n162.3374 144.65103 l\n162.08636 145.84386 l\n161.99072 146.72137 l\n162.04196 147.27573 l\n162.2452 147.50192 l\n162.60211 147.39265 l\n163.1264 146.93584 l\n163.82658 146.12212 l\n164.72661 144.94296 l\n165.85033 143.37833 l\n167.23364 141.41602 l\n168.93459 139.0226 l\n171.0164 136.18753 l\n173.60199 132.85374 l\nS\nQ\nq\n173.60199 132.85374 m\n174.31073 131.97435 l\n175.0485 131.07956 l\n175.83064 130.14763 l\n176.66063 129.1789 l\n177.54869 128.1699 l\n178.48457 127.12813 l\n179.49045 126.04164 l\n180.57147 124.90373 l\n181.72424 123.72905 l\n182.96408 122.50513 l\n184.3013 121.22926 l\n185.76144 119.88753 l\n187.34286 118.49126 l\n189.07626 117.02594 l\n191.00949 115.46266 l\n193.1374 113.82932 l\n195.56418 112.06996 l\n198.31543 110.19427 l\n201.50557 108.16553 l\n205.31737 105.92508 l\n210.00012 103.41624 l\n216.01837 100.53459 l\n224.5966 96.97212 l\n240.03674 91.80386 l\nS\nQ\nq\n239.97354 97.40813 m\n227.44519 102.28452 l\n219.39809 106.09955 l\n213.4806 109.3528 l\n208.78587 112.26228 l\n204.98433 114.87839 l\n201.74808 117.31332 l\n198.98146 119.5717 l\n196.55469 121.70139 l\n194.42506 123.70245 l\n192.51576 125.60925 l\n190.80115 127.42244 l\n189.24193 129.15984 l\n187.84325 130.80557 l\n186.54532 132.40076 l\n185.36523 133.92305 l\n184.27739 135.38219 l\n183.28345 136.77934 l\n182.35953 138.12126 l\n181.50221 139.41875 l\n180.71664 140.65233 l\n179.98058 141.84508 l\n179.306 142.97774 l\n178.68095 144.06526 l\n178.09688 145.1093 l\nS\nQ\nq\n178.09688 145.10931 m\n177.0466 147.08284 l\n176.15341 148.86958 l\n175.402 150.47023 l\n174.78206 151.89146 l\n174.27657 153.13164 l\n173.88377 154.19435 l\n173.59688 155.07426 l\n173.40901 155.7754 l\n173.32361 156.2951 l\n173.33044 156.63205 l\n173.43974 156.78441 l\n173.64638 156.7505 l\n173.9538 156.52682 l\n174.36879 156.11052 l\n174.89137 155.50208 l\n175.5335 154.69197 l\n176.302 153.67882 l\n177.21056 152.4594 l\n178.27109 151.0303 l\n179.50752 149.37596 l\n180.94037 147.49107 l\n182.60034 145.36992 l\n184.53355 142.98672 l\n186.78784 140.33499 l\nS\nQ\nq\n186.78784 140.335 m\n187.58195 139.43463 l\n188.41365 138.50725 l\n189.29828 137.54488 l\n190.22562 136.55219 l\n191.21101 135.52509 l\n192.25278 134.46321 l\n193.3543 133.36574 l\n194.5378 132.22087 l\n195.78789 131.04358 l\n197.14558 129.80498 l\n198.56818 128.54646 l\n200.1291 127.21121 l\n201.79248 125.84315 l\n203.60274 124.40535 l\n205.5889 122.89352 l\n207.73389 121.33047 l\n210.11282 119.67918 l\n212.76845 117.9264 l\n215.73488 116.0798 l\n219.11801 114.09688 l\n223.01689 111.9668 l\n227.57158 109.66505 l\n233.07408 107.12303 l\n240.01794 104.23245 l\nS\nQ\nq\n240.00258 110.34631 m\n236.83633 111.84276 l\n233.92625 113.295 l\n231.29115 114.67926 l\n228.94122 115.97386 l\n226.69888 117.2618 l\n224.66492 118.48456 l\n222.77097 119.66739 l\n221.05293 120.78374 l\n219.40663 121.89082 l\n217.85767 122.96774 l\n216.40263 124.01286 l\n215.03297 125.0307 l\n213.74019 126.02063 l\n212.54132 126.96494 l\n211.3766 127.90889 l\n210.26996 128.83002 l\n209.21454 129.73154 l\n208.20865 130.61336 l\n207.24716 131.47604 l\n206.32837 132.32005 l\n205.45056 133.1464 l\n204.60863 133.95645 l\n203.80424 134.75104 l\n203.02722 135.52983 l\nS\nQ\nq\n203.02722 135.52986 m\n199.13687 139.70662 l\n195.97063 143.47566 l\n193.35771 146.8837 l\n191.18712 149.95581 l\n189.37343 152.71986 l\n187.86374 155.18855 l\n186.61365 157.3742 l\n185.59409 159.27748 l\n184.7829 160.90651 l\n184.15613 162.267 l\n183.70528 163.35612 l\n183.42691 164.17104 l\n183.30565 164.71474 l\n183.34834 164.98541 l\n183.54645 164.98 l\n183.91022 164.69629 l\n184.44304 164.13034 l\n185.15689 163.2757 l\n186.06374 162.12599 l\n187.17892 160.68216 l\n188.52977 158.92908 l\n190.1573 156.84802 l\n192.09052 154.44104 l\n194.39946 151.67706 l\nS\nQ\nq\n194.39946 151.67708 m\n195.17139 150.7806 l\n195.9843 149.8508 l\n196.8416 148.8862 l\n197.74844 147.88696 l\n198.70822 146.85 l\n199.72606 145.76947 l\n200.79684 144.66202 l\n201.93253 143.50961 l\n203.15189 142.30493 l\n204.4498 141.05656 l\n205.82628 139.77 l\n207.29669 138.43591 l\n208.88835 137.03204 l\n210.57906 135.59248 l\n212.4269 134.07474 l\n214.4028 132.51323 l\n216.55804 130.87543 l\n218.93185 129.14812 l\n221.53453 127.33984 l\n224.38312 125.46234 l\n227.59036 123.45732 l\n231.18184 121.34511 l\n235.2942 119.07825 l\n240.05724 116.64052 l\nS\nQ\nq\n240.02307 123.28209 m\n226.26854 132.23354 l\n217.22919 139.6034 l\n210.7208 145.91359 l\n205.8297 151.37143 l\n202.06572 156.09825 l\n199.12834 160.1794 l\n196.86209 163.63191 l\n195.12698 166.509 l\n193.84955 168.81413 l\n192.97858 170.55888 l\n192.48332 171.74478 l\n192.34328 172.36987 l\n192.55504 172.43362 l\n193.12373 171.92744 l\n194.06133 170.84616 l\n195.41559 169.16907 l\n197.22926 166.8843 l\n199.58772 163.96288 l\n202.60197 160.37259 l\n206.4445 156.0705 l\n211.3971 150.9675 l\n217.93622 144.93013 l\n226.8526 137.7931 l\n240.03162 129.07837 l\nS\nQ\nq\n240.04356 136.21646 m\n230.20157 143.60294 l\n222.9964 149.9788 l\n217.4905 155.55132 l\n213.19882 160.41812 l\n209.80544 164.6558 l\n207.11055 168.32095 l\n204.99287 171.43361 l\n203.34828 174.02905 l\n202.13403 176.09932 l\n201.29381 177.66194 l\n200.81221 178.71783 l\n200.66705 179.26454 l\n200.85661 179.30383 l\n201.38603 178.82619 l\n202.26895 177.82742 l\n203.52759 176.30379 l\n205.21661 174.22935 l\n207.38379 171.5957 l\n210.12137 168.376 l\n213.55574 164.53494 l\n217.85938 160.02922 l\n223.33968 154.77211 l\n230.45602 148.65508 l\n240.03331 141.49516 l\nS\nQ\nq\n240.05724 149.1628 m\n232.9699 155.20667 l\n227.42128 160.54597 l\n223.01007 165.25137 l\n219.43738 169.41483 l\n216.53925 173.064 l\n214.19446 176.22856 l\n212.3193 178.92801 l\n210.85571 181.17216 l\n209.76445 182.95897 l\n208.99936 184.31279 l\n208.56046 185.22017 l\n208.42554 185.68819 l\n208.58778 185.71272 l\n209.05742 185.29514 l\n209.84471 184.42235 l\n210.96844 183.09723 l\n212.45593 181.30667 l\n214.35156 179.03554 l\n216.71858 176.2681 l\n219.62865 172.99007 l\n223.20303 169.16884 l\n227.61427 164.75203 l\n233.08432 159.70421 l\n240.03162 153.90578 l\nS\nQ\nq\n240.04698 162.14226 m\n235.09097 166.8897 l\n230.99911 171.16061 l\n227.62622 174.96173 l\n224.81007 178.35457 l\n222.48065 181.3401 l\n220.5628 183.93933 l\n219.01213 186.15083 l\n217.78764 187.99535 l\n216.86201 189.47057 l\n216.21306 190.58578 l\n215.83223 191.33665 l\n215.7161 191.72267 l\n215.85101 191.74557 l\n216.24722 191.40381 l\n216.90643 190.69263 l\n217.84741 189.60934 l\n219.08727 188.14363 l\n220.6482 186.29929 l\n222.5763 184.05087 l\n224.91083 181.39793 l\n227.71332 178.3286 l\n231.0879 174.7992 l\n235.13708 170.80243 l\n240.04185 166.28796 l\nS\nQ\nq\n239.9855 175.20073 m\n236.71849 178.68584 l\n233.93138 181.8424 l\n231.54901 184.6867 l\n229.47406 187.28654 l\n227.76796 189.52771 l\n226.34196 191.48488 l\n225.17043 193.16171 l\n224.21407 194.59224 l\n223.5207 195.68738 l\n223.01007 196.55359 l\n222.71461 197.12773 l\n222.61557 197.43268 l\n222.71461 197.46762 l\n223.02544 197.21 l\n223.54631 196.67172 l\n224.2448 195.89345 l\n225.20116 194.78757 l\n226.42906 193.35175 l\n227.8602 191.69394 l\n229.55603 189.748 l\n231.55585 187.50597 l\n234.01677 184.82303 l\n236.7612 181.94331 l\n239.95988 178.73146 l\nS\nQ\nq\n239.98209 188.26198 m\n238.15987 190.41797 l\n236.44867 192.51382 l\n235.00218 194.35242 l\n233.74011 196.00705 l\n232.58565 197.56659 l\n231.6713 198.85135 l\n230.86539 200.01482 l\n230.25793 200.93411 l\n229.79033 201.67775 l\n229.44673 202.26154 l\n229.25119 202.65009 l\n229.18356 202.86761 l\n229.25032 202.90463 l\n229.44963 202.76306 l\n229.80263 202.41655 l\n230.27568 201.91354 l\n230.9028 201.21237 l\n231.66139 200.34906 l\n232.62834 199.2322 l\n233.70255 197.99939 l\n234.98338 196.53572 l\n236.41621 194.92534 l\n238.14963 193.00449 l\n240.00429 191.00044 l\nS\nQ\nq\n240.05553 201.34506 m\n239.29794 202.3431 l\n238.58324 203.3017 l\n237.97646 204.13524 l\n237.41425 204.92145 l\n236.99516 205.53223 l\n236.56787 206.15767 l\n236.23024 206.67093 l\n235.95546 207.10559 l\n235.7314 207.4758 l\n235.58112 207.75049 l\n235.48666 207.95236 l\n235.45866 208.067 l\n235.48991 208.10341 l\n235.57753 208.06549 l\n235.72475 207.94905 l\n235.94487 207.73782 l\n236.21777 207.45831 l\n236.5689 207.07924 l\n236.97006 206.63689 l\n237.4363 206.11496 l\n237.99353 205.48172 l\n238.59673 204.79683 l\n239.27403 204.02646 l\n240.06065 203.13092 l\nS\nQ\nq\n167.26575 84.98167 m\n168.03629 84.52095 l\nS\nQ\nq\n240.05211 66.9856 m\n236.11224 67.3708 l\n232.36705 67.76361 l\n228.78581 68.16579 l\n225.37024 68.57666 l\n222.08957 68.99864 l\n218.94553 69.43051 l\n215.91591 69.8753 l\n212.9973 70.33228 l\n210.18797 70.80173 l\n207.4555 71.28888 l\n204.81015 71.79138 l\n202.22626 72.3145 l\n199.72264 72.85594 l\n197.26854 73.42168 l\n194.85202 74.01547 l\n192.45769 74.6438 l\n190.0873 75.30905 l\n187.7254 76.01894 l\n185.3328 76.79 l\n182.88213 77.64066 l\n180.32043 78.60106 l\n177.53674 79.73718 l\n174.27998 81.2065 l\n168.04825 84.51253 l\nS\nQ\nq\n181.8781 85.07541 m\n183.30394 84.42723 l\nS\nQ\nq\n183.30394 84.42723 m\n188.9721 82.13751 l\n192.05125 81.05559 l\n194.75638 80.1806 l\n197.07556 79.48274 l\n199.26666 78.86229 l\n201.37236 78.2991 l\n203.47806 77.76367 l\n205.50522 77.27438 l\n207.55115 76.80334 l\n209.53902 76.3666 l\n211.58495 75.93752 l\n213.566 75.53958 l\n215.56923 75.15437 l\n217.70909 74.75912 l\n219.7482 74.39883 l\n221.8146 74.04866 l\n224.0228 73.68904 l\n226.14386 73.35822 l\n228.43231 73.01477 l\n230.63365 72.69829 l\n232.86745 72.38994 l\n235.22076 72.0769 l\n237.55362 71.77942 l\n240.07602 71.4697 l\nS\nQ\nq\n206.78777 88.22813 m\n219.20682 84.25034 l\nS\nQ\nq\n239.21016 79.54918 m\n239.00864 79.58963 l\n238.43141 79.70401 l\n237.63559 79.86241 l\n236.87221 80.0166 l\n236.28642 80.13673 l\n235.87485 80.22221 l\n235.24638 80.35303 l\n234.64523 80.47992 l\n233.98091 80.62158 l\n233.53517 80.7175 l\n232.66762 80.90594 l\n231.97939 81.05783 l\n231.27066 81.2163 l\n230.51923 81.38559 l\n229.77463 81.55678 l\n228.96342 81.74522 l\n228.12662 81.94228 l\n227.24368 82.15422 l\n226.62376 82.3051 l\n225.6025 82.55699 l\n224.49585 82.83588 l\n223.22354 83.16312 l\n221.68823 83.56856 l\n219.21194 84.24821 l\nS\nQ\nq\n188.72618 56.58084 m\n188.69714 56.62253 l\n188.67665 56.67299 l\n188.67154 56.73212 l\n188.6869 56.79996 l\n188.73471 56.8763 l\n188.82864 56.96095 l\n188.97723 57.05365 l\n189.20094 57.1539 l\n189.51346 57.26117 l\n189.9336 57.37471 l\n190.48862 57.4935 l\n191.19907 57.61635 l\n192.10588 57.74174 l\n193.24841 57.86783 l\n194.66588 57.99245 l\n196.41977 58.11311 l\n198.58867 58.22676 l\n201.27332 58.32999 l\n204.6001 58.41899 l\n208.73634 58.4896 l\n213.91437 58.53732 l\n220.48424 58.55713 l\n228.9361 58.54398 l\n240.04356 58.49255 l\nS\nQ\nq\n0.94098 51.98997 m\n8.83951 51.53392 l\n15.36156 51.07843 l\n20.78038 50.6262 l\n25.29407 50.18039 l\n29.04268 49.74461 l\n32.15256 49.32175 l\n34.69716 48.91571 l\n36.7431 48.52992 l\n38.34158 48.1682 l\n39.52167 47.8342 l\n40.30896 47.53201 l\n40.71028 47.26573 l\n40.73079 47.03957 l\n40.3619 46.85767 l\n39.59169 46.7237 l\n38.38087 46.6427 l\n36.68672 46.61887 l\n34.44783 46.65623 l\n31.5702 46.75975 l\n27.9309 46.93385 l\n23.35915 47.18279 l\n17.60048 47.51215 l\n10.31161 47.92554 l\n0.9444 48.42856 l\nS\nQ\nq\n0.93585 38.94551 m\n5.26169 38.16876 l\n8.9266 37.4439 l\n12.06041 36.76692 l\n14.73138 36.13847 l\n16.98567 35.56187 l\n18.86081 35.0392 l\n20.40466 34.56993 l\n21.62915 34.15767 l\n22.57869 33.79836 l\n23.24472 33.49855 l\n23.64604 33.25832 l\n23.79633 33.07649 l\n23.68533 32.95773 l\n23.31303 32.90135 l\n22.68285 32.90848 l\n21.76747 32.98254 l\n20.5669 33.12227 l\n19.04698 33.3305 l\n17.18378 33.60928 l\n14.93974 33.95895 l\n12.26363 34.38269 l\n9.09227 34.8819 l\n5.34195 35.45927 l\n0.95123 36.11017 l\nS\nQ\nq\n0.94952 25.79329 m\n2.58046 25.29004 l\n4.05257 24.81512 l\n5.34026 24.37956 l\n6.47421 23.97847 l\n7.45619 23.61287 l\n8.28448 23.28674 l\n8.98639 22.99394 l\n9.54652 22.74022 l\n9.98715 22.52097 l\n10.29112 22.34125 l\n10.47557 22.19781 l\n10.53876 22.0929 l\n10.4807 22.02481 l\n10.30138 21.99562 l\n9.99397 22.00587 l\n9.55849 22.05551 l\n8.99834 22.14386 l\n8.3084 22.2706 l\n7.46986 22.44012 l\n6.48618 22.64993 l\n5.36415 22.89769 l\n4.06624 23.19006 l\n2.59412 23.52516 l\n0.94098 23.90028 l\nS\nQ\nq\n120.49142 113.00133 m\n120.46742 113.02118 l\n120.39548 113.08066 l\n120.27594 113.17932 l\n120.10928 113.3161 l\n119.89616 113.48878 l\n119.63731 113.69331 l\n119.33351 113.92282 l\n118.98549 114.16699 l\n118.59349 114.4109 l\n118.15727 114.63437 l\n117.67567 114.81123 l\n117.14606 114.90898 l\n116.56395 114.88914 l\n115.92223 114.70703 l\n115.21042 114.31352 l\n114.41373 113.65681 l\n113.51184 112.6851 l\n112.4759 111.35046 l\n111.26917 109.61626 l\n109.84215 107.46881 l\n108.13641 104.93498 l\n106.0973 102.12654 l\n103.73218 99.33116 l\n101.28459 97.19336 l\nS\nQ\nq\n101.28459 97.19336 m\n100.79121 96.91272 l\n100.33931 96.73495 l\n99.93732 96.66821 l\n99.59456 96.72443 l\n99.31601 96.9073 l\n99.10391 97.21791 l\n98.95772 97.65393 l\n98.87097 98.205 l\n98.8392 98.8646 l\n98.85371 99.62125 l\n98.90666 100.46243 l\n98.98982 101.37714 l\n99.0969 102.35683 l\n99.2214 103.39075 l\n99.35803 104.47021 l\n99.5013 105.58699 l\n99.64851 106.73378 l\n99.79573 107.90385 l\n99.94072 109.09149 l\n100.08144 110.29076 l\n100.21535 111.49625 l\n100.34189 112.70236 l\n100.45921 113.90431 l\n100.56664 115.09805 l\nS\nQ\nq\n100.56664 115.09853 m\n100.70667 116.8625 l\n100.8199 118.58192 l\n100.90358 120.24004 l\n100.95601 121.82318 l\n100.97496 123.31581 l\n100.95857 124.70274 l\n100.90427 125.96954 l\n100.8105 127.1009 l\n100.67336 128.08122 l\n100.49046 128.89621 l\n100.25734 129.52997 l\n99.96907 129.96608 l\n99.62016 130.18993 l\n99.20381 130.18648 l\n98.71146 129.93993 l\n98.13217 129.43318 l\n97.45195 128.64813 l\n96.65442 127.56848 l\n95.71684 126.17482 l\n94.60934 124.4458 l\n93.28699 122.34578 l\n91.69193 119.84567 l\n89.73003 116.88892 l\n87.24416 113.38522 l\nS\nQ\nq\n87.24416 113.38522 m\n86.80988 112.80188 l\n86.35986 112.20836 l\n85.88681 111.59375 l\n85.39154 110.96135 l\n84.8763 110.31665 l\n84.32811 109.64183 l\n83.75497 108.95206 l\n83.14632 108.23415 l\n82.50266 107.49213 l\n81.82841 106.73633 l\n81.10193 105.93997 l\n80.31975 105.10493 l\n79.47849 104.23367 l\n78.5766 103.32993 l\n77.59753 102.38132 l\n76.50882 101.36307 l\n75.32002 100.29724 l\n73.9712 99.13869 l\n72.44359 97.89124 l\n70.65007 96.50592 l\n68.50047 94.95213 l\n65.73795 93.10724 l\n61.79005 90.7343 l\n52.75822 86.24657 l\nS\nQ\nq\n30.81706 85.03926 m\n42.77672 89.46748 l\n46.98813 91.39456 l\n49.97334 92.91113 l\n52.29251 94.1919 l\n54.22061 95.33003 l\n55.8362 96.34372 l\n57.28098 97.29974 l\n58.56181 98.18979 l\n59.7197 99.0298 l\n60.77512 99.82852 l\n61.74344 100.59073 l\n62.65369 101.33238 l\n63.48538 102.0357 l\n64.26242 102.7148 l\n64.98824 103.37114 l\n65.67477 104.00986 l\n66.32373 104.63046 l\n66.9351 105.23468 l\n67.51918 105.82384 l\n68.08275 106.40771 l\n68.60875 106.97017 l\n69.1211 107.52994 l\n69.61464 108.07838 l\n70.08257 108.61491 l\nS\nQ\nq\n70.07574 108.60715 m\n74.04977 113.71193 l\n76.9052 118.14856 l\n79.06897 122.09866 l\n80.75114 125.64694 l\n82.0832 128.8408 l\n83.1301 131.69182 l\n83.94641 134.21649 l\n84.55951 136.40758 l\n84.9933 138.26881 l\n85.26823 139.79375 l\n85.38266 140.9673 l\n85.34338 141.78337 l\n85.15382 142.22754 l\n84.80373 142.28801 l\n84.28627 141.95016 l\n83.57924 141.19667 l\n82.66386 140.01326 l\n81.50769 138.37494 l\n80.05608 136.25412 l\n78.25093 133.62614 l\n75.97957 130.44316 l\n73.0695 126.61401 l\n69.24918 122.04324 l\n63.93623 116.48375 l\nS\nQ\nq\n63.93623 116.48375 m\n63.26337 115.8403 l\n62.55463 115.17447 l\n61.79466 114.47478 l\n61.0125 113.77368 l\n60.19106 113.0532 l\n59.31837 112.30415 l\n58.40642 111.54149 l\n57.42955 110.745 l\n56.40318 109.93227 l\n55.28458 109.07025 l\n54.10107 108.18797 l\n52.84584 107.28055 l\n51.4557 106.3113 l\n49.98187 105.31909 l\n48.35095 104.26561 l\n46.55264 103.15182 l\n44.52037 101.95119 l\n42.27292 100.69153 l\n39.66171 99.30865 l\n36.5484 97.7635 l\n32.7793 96.03203 l\n27.8267 93.95638 l\n20.613 91.2879 l\n0 85.36601 l\nS\nQ\nq\n1.11688 90.96199 m\n15.1959 95.62552 l\n23.01245 98.82312 l\n28.58498 101.4524 l\n32.90227 103.73503 l\n36.42032 105.78244 l\n39.40895 107.67134 l\n41.96552 109.41103 l\n44.23859 111.06514 l\n46.21278 112.59465 l\n48.02477 114.07779 l\n49.64032 115.47426 l\n51.1278 116.82335 l\n52.48721 118.11789 l\n53.75098 119.37297 l\n54.91397 120.57729 l\n56.00185 121.7489 l\n57.00774 122.87532 l\n57.94702 123.96753 l\n58.83337 125.03436 l\n59.66164 126.06424 l\n60.45235 127.0784 l\n61.18669 128.0525 l\n61.88518 129.00581 l\n62.5495 129.94064 l\nS\nQ\nq\n62.5495 129.94066 m\n64.99849 133.63882 l\n66.971 136.96014 l\n68.56606 139.92287 l\n69.86226 142.55997 l\n70.89891 144.8789 l\n71.71523 146.88223 l\n72.33003 148.57236 l\n72.7621 149.95265 l\n73.02852 151.01949 l\n73.12756 151.76991 l\n73.06609 152.20053 l\n72.84578 152.30386 l\n72.45468 152.0749 l\n71.89113 151.50584 l\n71.13628 150.59048 l\n70.17479 149.31512 l\n68.9725 147.66856 l\n67.49527 145.62991 l\n65.69698 143.19023 l\n63.49222 140.30962 l\n60.78535 136.95778 l\n57.40224 133.07085 l\n53.06787 128.54881 l\n47.32968 123.26785 l\nS\nQ\nq\n47.32968 123.26785 m\n46.4997 122.5635 l\n45.65263 121.86064 l\n44.75946 121.13155 l\n43.82701 120.3877 l\n42.84674 119.6223 l\n41.83571 118.85236 l\n40.74104 118.03738 l\n39.62073 117.22394 l\n38.43552 116.38657 l\n37.15295 115.50278 l\n35.8021 114.60117 l\n34.38805 113.68501 l\n32.83737 112.71062 l\n31.21667 111.72617 l\n29.42691 110.67628 l\n27.48515 109.57973 l\n25.42386 108.46284 l\n23.09955 107.25641 l\n20.59764 106.01735 l\n17.72343 104.6648 l\n14.54695 103.25131 l\n10.78297 101.67732 l\n6.45201 99.9899 l\n1.02295 98.04047 l\nS\nQ\nq\n0.97855 103.87164 m\n6.96948 106.4194 l\n11.83669 108.70667 l\n15.92513 110.79855 l\n19.48929 112.76826 l\n22.55135 114.58336 l\n25.27016 116.29732 l\n27.70377 117.92516 l\n29.93925 119.50137 l\n31.9408 120.9859 l\n33.80228 122.43341 l\n35.48787 123.80449 l\n37.06929 125.14677 l\n38.52943 126.43404 l\n39.88715 127.67952 l\n41.15602 128.88568 l\n42.35147 130.06415 l\n43.46666 131.20044 l\n44.51695 132.30414 l\n45.5126 133.3843 l\n46.44505 134.42755 l\n47.33652 135.44984 l\n48.18018 136.44682 l\n48.97258 137.40858 l\n49.73083 138.35349 l\nS\nQ\nq\n49.73083 138.35353 m\n50.99802 139.98647 l\n52.16785 141.56203 l\n53.22498 143.04733 l\n54.20866 144.47743 l\n55.10696 145.83917 l\n55.93353 147.13605 l\n56.69179 148.37025 l\n57.392 149.54634 l\n58.0341 150.65837 l\n58.62502 151.71844 l\n59.15955 152.71078 l\n59.64969 153.6498 l\n60.09712 154.5343 l\n60.50357 155.36362 l\n60.86392 156.12814 l\n61.19011 156.84264 l\n61.4753 157.49878 l\n61.72635 158.099 l\n61.94325 158.64595 l\n62.12256 159.13135 l\n62.27115 159.56767 l\n62.38557 159.94328 l\n62.46924 160.26442 l\n62.51877 160.52654 l\nS\nQ\nq\n62.51877 160.52658 m\n62.53073 160.84616 l\n62.45387 161.00087 l\n62.2831 160.98868 l\n62.01839 160.80937 l\n61.65634 160.46103 l\n61.19524 159.93988 l\n60.62312 159.24394 l\n59.94171 158.36885 l\n59.13564 157.31586 l\n58.19806 156.07356 l\n57.11191 154.64363 l\n55.86522 153.02051 l\n54.43237 151.18706 l\n52.7912 149.15053 l\n50.89897 146.8822 l\n48.72325 144.38618 l\n46.19058 141.62352 l\n43.21733 138.57678 l\n39.70612 135.22769 l\n35.46909 131.50871 l\n30.22617 127.34811 l\n23.52992 122.63542 l\n14.48717 117.16066 l\n0.97514 110.451 l\nS\nQ\nq\n0.93074 116.79466 m\n3.5556 118.17953 l\n5.9653 119.50888 l\n8.18542 120.78801 l\n10.29454 122.05095 l\n12.2124 123.24655 l\n14.00388 124.40427 l\n15.66383 125.51485 l\n17.3016 126.64424 l\n18.77373 127.69627 l\n20.17754 128.73099 l\n21.51302 129.7409 l\n22.80753 130.7499 l\n24.0064 131.71077 l\n25.1472 132.65013 l\n26.25214 133.57974 l\n27.29218 134.48021 l\n28.28441 135.36078 l\n29.25955 136.24295 l\n30.16127 137.07832 l\n31.05273 137.92462 l\n31.89127 138.73618 l\n32.7127 139.54915 l\n33.48633 140.32933 l\n34.23947 141.1038 l\nS\nQ\nq\n34.23947 141.10382 m\n38.18788 145.42943 l\n41.39 149.3106 l\n44.02682 152.80261 l\n46.18718 155.90025 l\n47.96669 158.64688 l\n49.42685 161.05946 l\n50.60352 163.14066 l\n51.52744 164.8912 l\n52.21909 166.32265 l\n52.7024 167.43237 l\n52.97905 168.2183 l\n53.05933 168.6863 l\n52.9449 168.82878 l\n52.63237 168.64417 l\n52.11833 168.13144 l\n51.3891 167.28049 l\n50.42761 166.0858 l\n49.21849 164.54459 l\n47.72418 162.64066 l\n45.91393 160.36867 l\n43.72282 157.70108 l\n41.08942 154.63118 l\n37.8873 151.10585 l\n33.9816 147.09697 l\nS\nQ\nq\n33.9816 147.09698 m\n33.21309 146.34456 l\n32.42067 145.5826 l\n31.58897 144.7939 l\n30.72655 143.989 l\n29.84532 143.18326 l\n28.918 142.34961 l\n27.94286 141.48854 l\n26.91646 140.59752 l\n25.85422 139.69589 l\n24.76465 138.79155 l\n23.58969 137.83401 l\n22.37033 136.86351 l\n21.10315 135.8787 l\n19.75911 134.85852 l\n18.35359 133.82205 l\n16.86272 132.74644 l\n15.30179 131.65414 l\n13.62985 130.5153 l\n11.85547 129.34264 l\n9.94444 128.12038 l\n7.95146 126.88628 l\n5.79109 125.59671 l\n3.4685 124.25961 l\n0.93414 122.85612 l\nS\nQ\nq\n0.92049 129.73135 m\n12.55565 137.87633 l\n20.68645 144.77698 l\n26.69275 150.72034 l\n31.30548 155.89792 l\n34.9038 160.39587 l\n37.73361 164.27919 l\n39.94862 167.58356 l\n41.64444 170.32077 l\n42.90138 172.51608 l\n43.75868 174.17259 l\n44.25395 175.29675 l\n44.3974 175.88272 l\n44.19931 175.93216 l\n43.6494 175.43863 l\n42.73232 174.39111 l\n41.4156 172.78159 l\n39.65659 170.5938 l\n37.3818 167.80461 l\n34.48882 164.38437 l\n30.83243 160.29794 l\n26.18211 155.47472 l\n20.17581 149.82658 l\n12.15433 143.1765 l\n0.95465 135.28993 l\nS\nQ\nq\n0.9444 142.69827 m\n9.29549 149.39235 l\n15.63823 155.24463 l\n20.60277 160.39977 l\n24.54092 164.91959 l\n27.70206 168.88023 l\n30.22958 172.29956 l\n32.24135 175.22057 l\n33.79715 177.63713 l\n34.96187 179.57661 l\n35.76624 181.03903 l\n36.23247 182.02167 l\n36.3742 182.5299 l\n36.19661 182.56064 l\n35.69281 182.10822 l\n34.85428 181.16881 l\n33.65541 179.73524 l\n32.06204 177.7936 l\n30.01782 175.33426 l\n27.46126 172.33717 l\n24.2711 168.7595 l\n20.3244 164.5843 l\n15.38547 159.7463 l\n9.10251 154.15053 l\n0.94098 147.69423 l\nS\nQ\nq\n0.93074 155.64943 m\n6.89775 161.05034 l\n11.68297 165.8478 l\n15.57332 170.11334 l\n18.76347 173.88979 l\n21.38835 177.21938 l\n23.5265 180.10837 l\n25.24625 182.57114 l\n26.59712 184.6184 l\n27.61325 186.25864 l\n28.31856 187.49083 l\n28.73186 188.3231 l\n28.86165 188.74948 l\n28.70964 188.7717 l\n28.27417 188.38882 l\n27.55005 187.59702 l\n26.51001 186.38501 l\n25.13695 184.74632 l\n23.40697 182.68729 l\n21.25343 180.1769 l\n18.62173 177.19928 l\n15.42303 173.73561 l\n11.54465 169.76816 l\n6.80382 165.24014 l\n0.93585 160.09122 l\nS\nQ\nq\n0.89487 168.59816 m\n5.07211 172.81747 l\n8.41255 176.45601 l\n11.3568 179.86569 l\n13.72379 182.77632 l\n15.79533 185.45782 l\n17.43483 187.69356 l\n18.83862 189.68996 l\n19.94356 191.34398 l\n20.7428 192.6154 l\n21.33028 193.61539 l\n21.66159 194.26445 l\n21.77602 194.61917 l\n21.65305 194.6401 l\n21.29784 194.33997 l\n20.71548 193.72466 l\n19.88379 192.78319 l\n18.77542 191.48701 l\n17.37845 189.84422 l\n15.67067 187.85292 l\n13.705 185.61319 l\n11.26627 182.9073 l\n8.44159 179.89041 l\n5.0243 176.40654 l\n0.96829 172.49728 l\nS\nQ\nq\n0.95976 181.68047 m\n3.52145 184.55606 l\n5.74158 187.17043 l\n7.71407 189.59473 l\n9.27158 191.59973 l\n10.72319 193.52838 l\n11.91013 195.1698 l\n12.88867 196.57721 l\n13.69441 197.77902 l\n14.27626 198.70067 l\n14.72336 199.45 l\n14.96193 199.92181 l\n15.04527 200.18379 l\n14.9587 200.21446 l\n14.70543 200.01869 l\n14.26738 199.57495 l\n13.68057 198.93584 l\n12.88014 198.02287 l\n11.9067 196.9 l\n10.701 195.49977 l\n9.30403 193.89467 l\n7.62527 191.99237 l\n5.72792 189.88919 l\n3.47876 187.4606 l\n1.02979 184.90775 l\nS\nQ\nq\n0.95465 194.77126 m\n2.24915 196.38437 l\n3.44647 197.91258 l\n4.46587 199.25452 l\n5.3891 200.4998 l\n6.16068 201.57277 l\n6.84428 202.54648 l\n7.39388 203.35844 l\n7.85274 204.05942 l\n8.19156 204.60754 l\n8.43391 205.0309 l\n8.5847 205.33456 l\n8.62842 205.49637 l\n8.57736 205.53142 l\n8.42844 205.4367 l\n8.17671 205.20595 l\n7.82883 204.84953 l\n7.36705 204.3465 l\n6.81526 203.7312 l\n6.13608 202.95786 l\n5.36227 202.07433 l\n4.44263 201.0213 l\n3.43127 199.87154 l\n2.25034 198.53775 l\n0.96489 197.10889 l\nS\nQ\nq\n0.92816 208.06232 m\n1.19203 208.44069 l\n1.41386 208.76733 l\n1.61214 209.06496 l\n1.80887 209.36139 l\n1.96259 209.60323 l\n2.09682 209.82011 l\n2.21123 210.01218 l\n2.30551 210.17828 l\n2.39192 210.3347 l\n2.44162 210.44318 l\n2.47133 210.52596 l\n2.48175 210.58296 l\n2.47269 210.61551 l\n2.43854 210.61452 l\n2.38644 210.59026 l\n2.31319 210.53842 l\n2.21567 210.4554 l\n2.0992 210.34769 l\n1.96378 210.21516 l\n1.80734 210.05658 l\n1.63177 209.87299 l\n1.43607 209.66426 l\n1.1968 209.4006 l\n0.95566 209.13564 l\nS\nQ\nq\n188.72618 56.58084 m\n188.91916 56.42198 l\nS\nQ\nq\n188.91916 56.42198 m\n188.98747 56.38193 l\n189.08652 56.3338 l\n189.21631 56.27773 l\n189.38539 56.21388 l\n189.6057 56.14249 l\n189.88406 56.06381 l\n190.23586 55.97826 l\n190.66794 55.88625 l\n191.20418 55.78842 l\n191.85997 55.68556 l\n192.6541 55.57858 l\n193.60533 55.46844 l\n194.75296 55.3566 l\n196.12262 55.24438 l\n197.75356 55.13351 l\n199.70215 55.02606 l\n202.02986 54.92413 l\n204.80502 54.83017 l\n208.13692 54.74696 l\n212.16048 54.67749 l\n217.05159 54.625 l\n223.06471 54.59317 l\n230.54826 54.58557 l\n240.04185 54.60664 l\nS\nQ\nq\n240.03674 45.47539 m\n233.98091 44.75479 l\n228.91731 44.06662 l\n224.69736 43.41743 l\n221.15883 42.8058 l\n218.20605 42.2347 l\n215.7605 41.70616 l\n213.77434 41.22443 l\n212.18951 40.79022 l\n210.9804 40.40677 l\n210.11795 40.07492 l\n209.58342 39.79796 l\n209.36993 39.57814 l\n209.47412 39.41779 l\n209.90448 39.31949 l\n210.66786 39.2849 l\n211.78305 39.31668 l\n213.28079 39.4178 l\n215.20546 39.59065 l\n217.59467 39.83597 l\n220.52353 40.15833 l\n224.08257 40.5585 l\n228.40668 41.0415 l\n233.64107 41.60747 l\n240.02307 42.26044 l\nS\nQ\nq\n240.03674 32.38959 m\n237.1796 31.69887 l\n234.68451 31.05382 l\n232.52075 30.45795 l\n230.66096 29.91112 l\n229.06078 29.4106 l\n227.70992 28.95944 l\n226.59985 28.55922 l\n225.70155 28.20769 l\n225.0133 27.90793 l\n224.52829 27.65941 l\n224.23456 27.46286 l\n224.13208 27.31909 l\n224.22089 27.22847 l\n224.50267 27.19188 l\n224.97914 27.21048 l\n225.65884 27.28503 l\n226.54861 27.41591 l\n227.65355 27.60324 l\n228.99588 27.84879 l\n230.59267 28.15408 l\n232.46951 28.52017 l\n234.64523 28.94649 l\n237.14032 29.43141 l\n240.03674 29.98474 l\nS\nQ\nq\n240.03674 19.1081 m\n239.42365 18.86516 l\n238.86348 18.63625 l\n238.36311 18.42493 l\n237.91737 18.23033 l\n237.52458 18.05089 l\n237.18814 17.8885 l\n236.90465 17.74371 l\n236.6724 17.61426 l\n236.49478 17.50365 l\n236.36668 17.40915 l\n236.29155 17.33188 l\n236.26593 17.27151 l\n236.28815 17.22757 l\n236.36668 17.20227 l\n236.49136 17.19289 l\n236.6724 17.20229 l\n236.90125 17.2275 l\n237.18303 17.27132 l\n237.52116 17.3328 l\n237.90712 17.41064 l\n238.35286 17.50693 l\n238.85495 17.62155 l\n239.4168 17.75441 l\n240.03844 17.9053 l\nS\nQ\nq\n30.81706 85.03926 m\n28.97093 84.46336 l\nS\nQ\nq\n28.97093 84.46336 m\n25.06863 83.32333 l\n22.98514 82.75226 l\n21.5301 82.3687 l\n20.02725 81.98445 l\n18.69858 81.65416 l\n17.42628 81.34642 l\n16.2479 81.06728 l\n15.46402 80.88634 l\n14.20538 80.59967 l\n13.14998 80.36525 l\n12.1492 80.14716 l\n11.15698 79.93454 l\n10.3492 79.76472 l\n9.39796 79.56783 l\n8.4638 79.37796 l\n7.58427 79.20221 l\n6.68427 79.02448 l\n5.94138 78.88083 l\n5.06358 78.7124 l\n4.2114 78.55205 l\n3.34384 78.39058 l\n2.49506 78.23474 l\n1.78804 78.10808 l\n0.95123 77.95863 l\nS\nQ\nq\n52.75822 86.24657 m\n45.18642 83.25607 l\nS\nQ\nq\n0.88121 73.17674 m\n2.54971 73.4195 l\n4.20116 73.66702 l\n5.76036 73.90746 l\n7.55013 74.191 l\n9.1708 74.45615 l\n10.78981 74.7285 l\n12.3234 74.99509 l\n13.9236 75.28078 l\n15.52892 75.57559 l\n17.14961 75.88327 l\n18.76518 76.19934 l\n20.3893 76.52681 l\n21.94168 76.85135 l\n23.59651 77.20767 l\n25.4341 77.61678 l\n27.06332 77.99316 l\n28.81383 78.41309 l\n30.60358 78.859 l\n32.46678 79.34196 l\n34.43246 79.87302 l\n36.56035 80.47575 l\n38.75829 81.13066 l\n41.4583 81.98236 l\n45.18642 83.25546 l\nS\nQ\nq\n0.94098 60.79326 m\n14.66136 61.51508 l\n25.59634 62.28035 l\n34.47685 63.08748 l\n41.79645 63.9338 l\n47.883 64.8144 l\n52.99443 65.72472 l\n57.28781 66.65639 l\n60.89978 67.6003 l\n63.91061 68.54184 l\n66.37495 69.4627 l\n68.33209 70.34068 l\n69.78372 71.14572 l\n70.70934 71.84079 l\n71.06796 72.38356 l\n70.78448 72.72812 l\n69.7598 72.83264 l\n67.87439 72.66888 l\n64.94896 72.2235 l\n60.7939 71.5104 l\n55.08305 70.55342 l\n47.35017 69.38731 l\n36.82164 68.0488 l\n22.17393 66.57219 l\n0.9461 64.9871 l\nS\nQ\nq\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 127.445 25.262] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F17_0 11.9552 Tf\n(x)\n[6.651873\n0] Tj\n60.689 -186.697 Td\n/F22_0 11.9552 Tf\n(cos\\()\n[5.202903\n0\n5.853266\n0\n4.617098\n0\n4.55254\n0] Tj\n80.915 -186.697 Td\n/F17_0 11.9552 Tf\n(xy)\n[6.651873\n0\n5.707412\n0] Tj\n93.703 -186.697 Td\n/F22_0 11.9552 Tf\n(\\))\n[4.55254\n0] Tj\n-277 TJm\n(=)\n[9.10508\n0] Tj\n-278 TJm\n(4)\n[5.853266\n0] Tj\n122.512 -186.697 Td\n/F7_0 11.9552 Tf\n(\\000)\n[9.298755\n0] Tj\n134.467 -186.697 Td\n/F17_0 11.9552 Tf\n(y)\n[5.707412\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 229.25 60.697] cm\n/DeviceRGB {} CS\n[1 0 0] SC\n/DeviceRGB {} cs\n[1 0 0] sc\n/DeviceRGB {} CS\n[1 0 0] SC\n/DeviceRGB {} cs\n[1 0 0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F17_0 11.9552 Tf\n(x)\n[6.651873\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 52.045 -186.697] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 124.693 196.944] cm\n/DeviceRGB {} CS\n[1 0 0] SC\n/DeviceRGB {} cs\n[1 0 0] sc\n/DeviceRGB {} CS\n[1 0 0] SC\n/DeviceRGB {} cs\n[1 0 0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n52.045 -186.697 Td\n/F17_0 11.9552 Tf\n(y)\n[5.707412\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.045 -186.697] cm\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 52.792 -192.038] cm\nQ\nQ\nQ\nQ\nq\nQ\nq\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%+ font OWIGFN+CMSY10\n%%+ font CNXUVF+CMR10\n%%+ font UNXGZS+CMMI12\n%%+ font QIFWWR+CMR12\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-implicitly-defined-curve.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\begin{tikzpicture}[\n  declare function={\n    c(\\x)= cos(\\x^2*180/3.14159265359);\n    sp(\\x)=sqrt(4+\\x^2*c(\\x));\n    sm(\\x)=sqrt(4-\\x^2*c(\\x));\n    m(\\x)= 2+sm(\\x);\n    o(\\x)= 2-sm(\\x);\n    p(\\x)= 2+sp(\\x);\n    q(\\x)= 2-sp(\\x);\n    f(\\x)= \\x^2/m(\\x);\n    g(\\x)= m(\\x)/c(\\x);\n    h(\\x)= -\\x^2/p(\\x);\n    k(\\x)= p(\\x)/c(\\x);\n  }\n]\n  \\begin{axis}[\n    xmin = -7,\n    xmax = 7,\n    ymin = -4,\n    ymax = 10.6,\n    xtick = {-4,-2,...,4},\n    ytick = {-4,-2,...,10},\n    minor xtick = {-7,-6,...,7},\n    minor ytick = {-4,-3,...,10},\n    variable = v,\n    color = red,\n    mark = none,\n    solid,\n    axis lines = center,\n    axis line style = {<->},\n    xlabel = {$x$},\n    ylabel = {$y$},\n    yticklabel style={inner sep=0.333ex},\n    scale only axis,\n    tick label style={font=\\footnotesize, color = black},\n    grid = minor,\n    grid style = {solid,gray!40},\n  ]\n    \\addplot[domain=0:2.2] ({f(v)},{m(v)});\n    \\addplot[domain=2.2:2.3499859792] ({f(v)},{m(v)});\n    \\addplot[domain=2.6965731707:2.72] ({f(v)},{m(v)});\n    \\addplot[domain=2.72:3.1] ({f(v)},{m(v)});\n    \\addplot[domain=3.1:3.36] ({f(v)},{m(v)});\n    \\addplot[domain=3.36:3.369] ({f(v)},{m(v)});\n    \\addplot[domain=3.7207600255:3.75] ({f(v)},{m(v)});\n    \\addplot[domain=3.75:4.1] ({f(v)},{m(v)});\n    \\addplot[domain=4.1:4.1826819343] ({f(v)},{m(v)});\n    \\addplot[domain=4.5013070528:4.6] ({f(v)},{m(v)});\n    \\addplot[domain=4.6:4.8] ({f(v)},{m(v)});\n    \\addplot[domain=4.8:4.8632109381] ({f(v)},{m(v)});\n    \\addplot[domain=5.1649321939:5.2] ({f(v)},{m(v)});\n    \\addplot[domain=5.2:5.4] ({f(v)},{m(v)});\n    \\addplot[domain=5.4:5.4596904128] ({f(v)},{m(v)});\n    \\addplot[domain=5.7524607477:5.9970858912] ({f(v)},{m(v)});\n    \\addplot[domain=6.2854560605:6.4899313929] ({f(v)},{m(v)});\n    \\addplot[domain=6.7769950285:6.9475348363] ({f(v)},{m(v)});\n    \\addplot[domain=7.2357791015:7.3762238487] ({f(v)},{m(v)});\n    \\addplot[domain=7.6680608384:7.7804196739] ({f(v)},{m(v)});\n    \\addplot[domain=8.0787873209:8.1630812697] ({f(v)},{m(v)});\n    \\addplot[domain=8.4729783943:8.525239357] ({f(v)},{m(v)});\n    \\addplot[mark=none] coordinates {({f(2.3499859792)},{m(2.3499859792)}) ({g(2.3499859793)},{o(2.3499859793)})};\n    \\addplot[domain=2.2795725971:2.3499859793] ({g(v)},{o(v)});\n    \\addplot[mark=none] coordinates {({f(2.6965731707)},{m(2.6965731707)}) ({g(2.696573171)},{o(2.696573171)})};\n    \\addplot[domain=2.696573171:2.7240684007] ({g(v)},{o(v)});\n    \\addplot[mark=none] coordinates {({f(3.369)},{m(3.369)}) ({g(3.3697995683)},{o(3.3697995683)})};\n    \\addplot[domain=3.36795:3.3697995683] ({g(v)},{o(v)});\n    \\addplot[domain=0.15:0.9934229315] ({g(v)},{o(v)});\n    \\addplot[domain=1.4952570458:2.0001872665] ({g(v)},{o(v)});\n    \\addplot[domain=2.9496641015:3.178782971] ({g(v)},{o(v)});\n    \\addplot[domain=3.9009258917:4.0194955921] ({g(v)},{o(v)});\n    \\addplot[domain=0:1.8] ({h(v)},{p(v)});\n    \\addplot[domain=1.8:2.2] ({h(v)},{p(v)});\n    \\addplot[domain=2.2:2.8] ({h(v)},{p(v)});\n    \\addplot[domain=2.8:2.89] ({h(v)},{p(v)});\n    \\addplot[domain=3.2571424315:3.3] ({h(v)},{p(v)});\n    \\addplot[domain=3.3:3.75] ({h(v)},{p(v)});\n    \\addplot[domain=3.75:3.7971078497] ({h(v)},{p(v)});\n    \\addplot[domain=4.1295834659:4.2] ({h(v)},{p(v)});\n    \\addplot[domain=4.2:4.5] ({h(v)},{p(v)});\n    \\addplot[domain=4.5:4.5356939968] ({h(v)},{p(v)});\n    \\addplot[domain=4.844517562:4.9] ({h(v)},{p(v)});\n    \\addplot[domain=4.9:5] ({h(v)},{p(v)});\n    \\addplot[domain=5:5.170055092] ({h(v)},{p(v)});\n    \\addplot[domain=5.4665876095:5.5] ({h(v)},{p(v)});\n    \\addplot[domain=5.5:5.7] ({h(v)},{p(v)});\n    \\addplot[domain=5.7:5.7347036241] ({h(v)},{p(v)});\n    \\addplot[domain=6.0248230446:6.2484075213] ({h(v)},{p(v)});\n    \\addplot[domain=6.5357897386:6.7226893127] ({h(v)},{p(v)});\n    \\addplot[domain=7.0100484639:7.1651804638] ({h(v)},{p(v)});\n    \\addplot[domain=7.4549045114:7.5811656127] ({h(v)},{p(v)});\n    \\addplot[domain=7.8758321028:7.9743147713] ({h(v)},{p(v)});\n    \\addplot[domain=8.2775481783:8.3468023025] ({h(v)},{p(v)});\n    \\addplot[domain=8.6671994161:8.6968286602] ({h(v)},{p(v)});\n    \\addplot[mark=none] coordinates {({g(0.15)},{o(0.15)}) ({k(0.15)},{q(0.15)})};\n    \\addplot[domain=0.15:0.9690222774] ({k(v)},{q(v)});\n    \\addplot[domain=2.3375568425:2.6564493594] ({k(v)},{q(v)});\n    \\addplot[domain=3.4567020839:3.6249982793] ({k(v)},{q(v)});\n    \\addplot[domain=4.3047344897:4.3734360266] ({k(v)},{q(v)});\n    \\addplot[mark=none] coordinates {({h(3.2571424315)},{p(3.2571424315)}) ({k(3.2571424316)},{q(3.2571424316)})};\n    \\addplot[domain=3.2571424316:3.2608706576] ({k(v)},{q(v)});\n    \\addplot[mark=none] coordinates {({h(2.89)},{p(2.89)}) ({k(2.89)},{q(2.89)})};\n    \\addplot[domain=2.8754877926:2.89] ({k(v)},{q(v)});\n    \\addplot[domain=1.4584452866:2.0506909475] ({k(v)},{q(v)});\n    \\addplot[mark=none] coordinates {(3,-2)} node[black] {$x \\cos(x y) = 4 - y$};\n  \\end{axis}\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/image-parametrized-surface.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\begin{tikzpicture}\n  \\begin{axis}[\n    compat=1.9,\n    x={(-0.2cm,-0.1cm)},\n    y={(.375cm,0.0cm)},\n    z={(0cm,0.375cm)},\n    xlabel={},\n    ylabel={},\n    zlabel={},\n    xmin = -4, xmax = 4,\n    ymin = -4, ymax = 4.5,\n    zmin = -4, zmax = 4.5,\n    xtick = {10},\n    ytick = {10},\n    ztick = {10},\n    samples = 10,\n    samples y = 10,\n    axis lines = center,\n  ]\n    \\addplot3[surf, shader = faceted interp, domain = -2:0, y domain = -2:0,] ({x+y}, {x^2}, {y^2});\n    \\addplot3[<->, domain = -2:2, samples y= 0] ({-1+x}, {1^2}, {x^2});\n    \\addplot3[<->>, domain = -2:2, samples y= 0] ({-1.5+x}, {x^2}, {1.5^2});\n    \\addplot3[surf, shader = faceted interp, domain = 0:2, y domain = -2:0,] ({x+y}, {x^2}, {y^2});\n    \\addplot3[<->, domain = -2:2, samples y= 0] ({1.2+x}, {1.2^2}, {x^2});\n    \\addplot3[surf, shader = faceted interp, domain = -2:0, y domain = 0:2,] ({x+y}, {x^2}, {y^2});\n    \\addplot3[<->, domain = 0:2, samples y= 0] ({-1+x}, {1^2}, {x^2});\n    \\addplot3[<->>, domain = -2:2, samples y= 0] ({0.9+x}, {x^2}, {0.9^2});\n    \\addplot3[surf, shader = faceted interp, domain = 0:2, y domain = -2:0,] ({(x+y)*(abs(x^2-y^2)/(x^2-y^2)+1)/2}, {x^2}, {y^2*(abs(x^2-y^2)/(x^2-y^2)+1)/2 + x^2*(abs(y^2-x^2)/(y^2-x^2)+1)/2});\n    \\addplot3[->>, domain = 1.5:2, samples y= 0] ({-1.5+x}, {x^2}, {1.5^2});\n    \\addplot3[surf, shader = faceted interp, domain = 0:2, y domain = 0:2,] ({x+y}, {x^2}, {y^2});\n    \\addplot3[->>, domain = 0.1:2, samples y= 0] ({0.9+x}, {x^2}, {0.9^2});\n    \\addplot3[<->>, domain = -2:2, samples y= 0] ({2+x}, {x^2}, {2^2});\n    \\addplot3[<->>, domain = -2:2, samples y= 0] ({-2+x}, {x^2}, {2^2});\n    \\addplot3[<->, domain = -2:2, samples y= 0] ({2+x}, {2^2}, {x^2});\n    \\addplot3[<->, domain = -2:2, samples y= 0] ({-2+x}, {2^2}, {x^2});\n    \\addplot3[->, domain = 0:2, samples y= 0] ({1.2+x}, {1.2^2}, {x^2});\n    \\addplot3[mark=none] coordinates {(0, 1, -2)} node {$r(u,v)=(u+v,u^2,v^2)$};\n  \\end{axis}\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-midpoints-of-quadrilateral.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2314\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 123 618 241 736\n%%HiResBoundingBox: 123.8 618.30466 241 735.9146\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n123.8 618.30466 117.2 117.60994 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1.00003 0 0.003] cm\nq\n[1 0 0 1 53.389 -99.787] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n1.59404 w\n0 0 m\n113.38766 0 l\n90.71013 90.71013 l\n45.35506 113.38766 l\n0 0 l\nS\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[2.98883 2.98883] 0 d\n1.19553 w\n56.69382 0 m\n102.04889 45.35506 l\n68.0326 102.04889 l\n22.67752 56.69382 l\n56.69382 0 l\nS\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-midpoints-of-quadrilateral.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\begin{tikzpicture}[xscale=0.8, yscale=0.8]\n\\draw[style={black, ultra thick}] (0,0) -- (5,0) -- (4,4) -- (2,5) -- (0,0);\n\\draw[style={black, dashed, very thick}] (2.5, 0) -- (4.5, 2) -- (3, 4.5) -- (1, 2.5) -- (2.5, 0);\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-triangle-cyclic-medians-copy.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2315\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 128 630 264 734\n%%HiResBoundingBox: 128.12 630.7771 263.56 733.51605\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%BeginResource: font WJTTVM+CMMI12\n%!FontType1-1.0: WJTTVM+CMMI12003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMMI12.) readonly def\n/FullName (CMMI12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle -14.04 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /WJTTVM+CMMI12 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-31 -250 1026 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 65 /A put\ndup 66 /B put\ndup 67 /C put\ndup 77 /M put\ndup 80 /P put\ndup 126 /vector put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A303DCB3A46C281B472F99892DCADA5FC6E4C2524AE72\n569652A7D664B73CC839B5405D299F805DA5E9FE5C41F969093CFD7B26C9805B\n6EC2DA5C4EA81C285458F5CCCDC02F82AC0E127BDB8F9E0A94383740D13431F8\n554EF5B7648E7C56F5F38740D67CB57E0007961013F2F16CDB5BA3F5C1414F66\nAECF5AFFA42AA51168B07908FD53D54A2CFEF17624741ECA22F7626685779280\n1CDB4E854995AC7EC9568E01A81AC3E0871CAA7B9B97ED69C06767E2F9CBF6BA\n37EE0F6542F1CF06D3BB45F72F0C8606A583416C0A4E0BE47DE004AFD54B7384\n3333A15D247A858696D6C7A89D76211A7398CBD8EE7DEDA431F9CFCC9EEA8D3B\n263BA229B14CB5B43558716E0C5D8A33FAC2CD7552B2E1423B2121DA3B0349D8\nF70CF4704F18A9BDDCE6F3649EE603B1E8F15AB47448A32E884D7C809DA69537\nE21A971FE4214D1ECC56E2E6633738BA4E4544AE4EFFF373F873C0837A7AAFC3\nDD4070D9372824C6E1F92975DB672C15F0B784F6B8989DB013009A897F452E76\n2AF573C31A6B13CDEC7740737E7BD257B2501A47D51A087EB12974BA00D53F3F\nF452910BB0D46D8FE2B6D19E07E15410093A22E72CCD74A98533FB2A647089E3\n9E60E43856DC48D29267A652AA9B2501DF49E9E4B70E9C686AAA5306D97DE438\nA3138AF5D01F6A273659EDB0C57DFA2E0693A5D6A5A933227D0AA3F9CFD4E144\nF3500DCB1D670D9946B0DB5F702A0B26527B62F9B4E6392BF6D0B99F0C0FB254\n0180FE2842835170FE28B86A5FD9CC58A7A894FCECAE9FED1553EC0516FD3BF3\n14E1E12EF69001D808EBEAF0DF86FB39C8987D2B21CA32869CF252342F4B7A39\nE371783525F28D042C9A1F0928956982C08389B359F9DD169A5BB4EB99F1ED8C\n3F52710F16959080C1AD7566EE9B06383CEC5E539A8F8520A305CB7FF56F99A5\nD11DDDD9B9126B55C3A23C1507EF08561BE1BB6C63B9D31C256FDDEA0AF2AC74\n2D2C9358086138023E648A190E5B96626D3EEF5FA99C54FC8F34C53BB9156C7D\n4194637494B650598EED19BA285B496436CFE33E73D505E67F18D42CFE6ED5C5\nAEB43812E881BE63A805B896EF777E68B950F7580EEC6CFB67DF5322937DF7CA\n5058FCDD4706795FFB53A1586BC17A959CE58D5AC61A4040BE17E8DA5A44548A\nACBA6B7C873B917217E932FC3CB27810928B1EB7B4102D2587ABD3836A100656\nB8039B480EBBF19351F376F169D246996D7D8CE44AFE979392309C37A7C51C7C\nA26BD01A079E2E9862F811D82FAFA2D4828A6BA7B92E2975AA336F72E4F623CA\n8AB9F63ECD1E34B9F012E1795603E3AB71327B3CA9037DAD19C14CD8CD2B7848\nEFB20FDE00C8D5DD84EBC65775638724017D01DDC0E65637AB1249492A94B0C2\n3CA53594D7AA80018090D1C06E28B77D52130DCC8C275D82E6A6630CEDB34CDB\n0AF54197D75853CBF6AC1AF4BF55A12447B82895DAF0EC0C2E4B2C8C14CCF18D\n5AF1B77E8C169D5B9FF084D5BF10CE0231A56E3886860960BF0AE59C64430D5B\n62F412EAE5F25C2BDAF43F68D7D833E559D50EF4D5655B9A8762750DC87B0892\n09FD308685201AA98E802092F3369990F279A445538DB77E8CB59AA158C63724\nE531780B80F24C47CA3D67823F4D6D350F27D30D49B5A07AA0628C1128C28790\n8C5864FDDC8CD9255A038C6BDD3963BE9C9139985C51C18A5C6DA03BC0BE1F33\nA0924BF226D0BAADFDC52B2C2BB2CD6CC88079E2F7E36C4C232628F916296E06\n827170DE48490B6CE049DCE6296BD4E781FEF831B8ED9991DD00ACF493747B01\nE0AFE8735B56767B792D9095248520ECD320C57390960E6895676861B7F98EB7\n28E9523A749570C0C980FFD55FE157979F82EA18018ACF3ECAED45A9F2A4A093\n042B8292AC81DA977B4D511A859B26F2E26EE2004E3CF57236ED4EDB7A1A8863\nB773E4E1C1C09FFC11428BAE775B302B3315FA4D745FBDC43358324DDE36A75A\nCF908F630BA9D86A021C93D56C8925\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F7_0 /WJTTVM+CMMI12 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/vector/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font YDMGVX+CMR8\n%!FontType1-1.0: YDMGVX+CMR8003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMR8.) readonly def\n/FullName (CMR8) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle 0 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /YDMGVX+CMR8 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-36 -250 1070 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 49 /one put\ndup 50 /two put\ndup 51 /three put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A37E2724CD63F484F47C6447F507C11793B061A71C2EB\n7D651F93505835EBF9032E361AE5C694F562A11D768CB4FB2540B4281CECEE7D\n3A31CE697DC0DEFB6C96B38A970EDFE1B25B852DF4F12D7FA0932E9C23309A9B\n5CEBA0ACEF0E3995BA632D87588518DDCFAD1F932C2AC298854B8BE70E7DD281\n1D3EFD74AAF10F1EAD0973929C21B1810FBCC69541899C362724B7EFAE962F89\n3A1B0CF3FDDD78525A09CE879C0E37FBFFE7EC63524D43EF6909157ACE7282BD\n8DB134CEB68F1D3E7FB10B417C6E8E3371D5B1373A70F9EAD42A4A9B9393FBFF\nDA7CA62FEE95179ED829A8B8017B258F94A2996BDD52C6B6280012FC72DE816F\nFEE42C853DEF7E65E798E746AD78D178977835165DE6B82F895DE65C5A37E550\n0687153CA8964477F9C6961568440F70217EE7FCA7DCDD4765399E931D6E5E1B\n4BA6BF22458A8AFF9926085C2884A1FD7DCC0F0701850F8F4BB88D7A27AEEE98\nFD528C1A38AE6B349705CC4B7C893A43C61DFA20379A5EAA573190499BDD3816\n8CA18E492440922F4D24470DC9960DE10A4B44AA931F6E42421D14F8A2E69723\n5CC9D0C971A21577FC4D517205AC812DC86B68510B66F6035446498C71B1CB2C\nE173844092957E86C3AD5F60F03FCB47B605FD8FDACF0BE6DBA31421BD7A90FC\n23E3B3508083F18A87186DA8B22BC94DD27F8476F4DEBB33D98A0CA935C23105\n1E557467F00708B83BD148F0194A1770E347968938F8021552A9325D5A75D759\nEB8E64029DCACA87CD525D22BAB65601FA3BA89ABCBA8E003852B136E12250D2\nE4AF15E6B8456B7B6C6526C30C221637F5C27DFAB6C87B73D7763519D65E2278\nFDC91C1C1474F90BC324962FB4E1764BB6F4B64F10B7CD5573156689B6E4A530\n5AB5404EF937EDFCD34B373DD496318A394AC06EFC946B4D82422BA0D0726E3E\n0EF9614FBD9DF05881BFC8B1884005AF2A62616DE4996736EAF9DE60A824058C\n8D6C24A36370201EB772518EAD77E0777CE65466568EC08AA63B4D6F91F8CAE7\n8F5A604C0EFE969F7DDD4003AE7D70D781F81C\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F12_0 /YDMGVX+CMR8 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n128.12 630.7771 135.44 102.73895 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1.00009 0 0 1 -0.004 0] cm\nq\n[1 0 0 1 62.419 -72.571] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n0 0 m\n97.7966 0 l\n122.89815 0 l\nS\nq\n[1 0 0 1 122.89815 0] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 93.409 -15.927] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.586 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(A)\n[8.775117\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n127.56062 0 m\n62.50475 65.05586 l\n45.81706 81.74356 l\nS\nq\n[-0.7071 0.7071 -0.7071 -0.7071 45.81708 81.74355] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 68.892 71.443] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.296 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(B)\n[8.893473\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n42.5202 85.04042 m\n9.77945 19.55956 l\n2.08493 4.17 l\nS\nq\n[-0.44717 -0.89438 0.89438 -0.44717 2.08493 4.17001] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 -5.842 25.947] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.165 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(C)\n[8.374618\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.59776 w\n[2.98883 2.98883] 0 d\n42.5202 85.04042 m\n49.60645 56.69339 l\n62.78003 4.00128 l\nS\nq\n[0.24252 -0.97012 0.97012 0.24252 62.78001 4.00128] cm\nq\n4.1245 0 m\n2.9024 0.22913 0.91655 0.91655 -0.45827 1.71854 c\n-0.45827 -1.71854 l\n0.91655 -0.91655 2.9024 -0.22913 4.1245 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 41.578 51.818] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n65.835 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(M)\n[11.325161\n0] Tj\n73.743 -74.364 Td\n/F12_0 7.9701 Tf\n(1)\n[4.234514\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.59776 w\n[2.98883 2.98883] 0 d\n0 0 m\n28.34636 14.17317 l\n81.35162 40.67584 l\nS\nq\n[0.89436 0.44717 -0.44717 0.89436 81.35162 40.67583] cm\nq\n4.1245 0 m\n2.9024 0.22913 0.91655 0.91655 -0.45827 1.71854 c\n-0.45827 -1.71854 l\n0.91655 -0.91655 2.9024 -0.22913 4.1245 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 20.318 9.298] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n65.835 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(M)\n[11.325161\n0] Tj\n73.743 -74.364 Td\n/F12_0 7.9701 Tf\n(2)\n[4.234514\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.59776 w\n[2.98883 2.98883] 0 d\n127.56062 0 m\n92.12668 14.17317 l\n25.08942 40.9885 l\nS\nq\n[-0.92844 0.37137 -0.37137 -0.92844 25.08943 40.9885] cm\nq\n4.1245 0 m\n2.9024 0.22913 0.91655 0.91655 -0.45827 1.71854 c\n-0.45827 -1.71854 l\n0.91655 -0.91655 2.9024 -0.22913 4.1245 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 84.098 9.298] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n65.835 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(M)\n[11.325161\n0] Tj\n73.743 -74.364 Td\n/F12_0 7.9701 Tf\n(3)\n[4.234514\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} cs\n[0] sc\n59.51122 28.34636 m\n59.51122 29.90262 58.24963 31.1642 56.69339 31.1642 c\n55.13713 31.1642 53.87555 29.90262 53.87555 28.34636 c\n53.87555 26.7901 55.13713 25.52852 56.69339 25.52852 c\n58.24963 25.52852 59.51122 26.7901 59.51122 28.34636 c\nh\nf\n59.51122 28.34636 m\n59.51122 29.90262 58.24963 31.1642 56.69339 31.1642 c\n55.13713 31.1642 53.87555 29.90262 53.87555 28.34636 c\n53.87555 26.7901 55.13713 25.52852 56.69339 25.52852 c\n58.24963 25.52852 59.51122 26.7901 59.51122 28.34636 c\nh\nS\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[0.5 0 0 0.5 87.903 -7.939] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 59.46 35.932] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n62.419 -72.571 Td\n/F7_0 11.9552 Tf\n(P)\n[7.544927\n0] Tj\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%+ font WJTTVM+CMMI12\n%%+ font YDMGVX+CMR8\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-triangle-cyclic-medians-copy.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n\\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n\\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n\\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n\\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n{$\\vec{M}_{1}$} -- (1.5,0);\n\\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n{$\\vec{M}_{2}$} -- (2,1);\n\\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n{$\\vec{M}_{3}$} -- (0.5,1);\n\\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n\\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-triangle-cyclic-medians.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2314\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 128 630 264 734\n%%HiResBoundingBox: 128.12 630.7771 263.56 733.51605\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%BeginResource: font DTNDPG+CMMI12\n%!FontType1-1.0: DTNDPG+CMMI12003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMMI12.) readonly def\n/FullName (CMMI12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle -14.04 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /DTNDPG+CMMI12 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-31 -250 1026 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 65 /A put\ndup 66 /B put\ndup 67 /C put\ndup 77 /M put\ndup 80 /P put\ndup 126 /vector put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A303DCB3A46C281B472F99892DCADA5FC6E4C2524AE72\n569652A7D664B73CC839B5405D299F805DA5E9FE5C41F969093CFD7B26C9805B\n6EC2DA5C4EA81C285458F5CCCDC02F82AC0E127BDB8F9E0A94383740D13431F8\n554EF5B7648E7C56F5F38740D67CB57E0007961013F2F16CDB5BA3F5C1414F66\nAECF5AFFA42AA51168B07908FD53D54A2CFEF17624741ECA22F7626685779280\n1CDB4E854995AC7EC9568E01A81AC3E0871CAA7B9B97ED69C06767E2F9CBF6BA\n37EE0F6542F1CF06D3BB45F72F0C8606A583416C0A4E0BE47DE004AFD54B7384\n3333A15D247A858696D6C7A89D76211A7398CBD8EE7DEDA431F9CFCC9EEA8D3B\n263BA229B14CB5B43558716E0C5D8A33FAC2CD7552B2E1423B2121DA3B0349D8\nF70CF4704F18A9BDDCE6F3649EE603B1E8F15AB47448A32E884D7C809DA69537\nE21A971FE4214D1ECC56E2E6633738BA4E4544AE4EFFF373F873C0837A7AAFC3\nDD4070D9372824C6E1F92975DB672C15F0B784F6B8989DB013009A897F452E76\n2AF573C31A6B13CDEC7740737E7BD257B2501A47D51A087EB12974BA00D53F3F\nF452910BB0D46D8FE2B6D19E07E15410093A22E72CCD74A98533FB2A647089E3\n9E60E43856DC48D29267A652AA9B2501DF49E9E4B70E9C686AAA5306D97DE438\nA3138AF5D01F6A273659EDB0C57DFA2E0693A5D6A5A933227D0AA3F9CFD4E144\nF3500DCB1D670D9946B0DB5F702A0B26527B62F9B4E6392BF6D0B99F0C0FB254\n0180FE2842835170FE28B86A5FD9CC58A7A894FCECAE9FED1553EC0516FD3BF3\n14E1E12EF69001D808EBEAF0DF86FB39C8987D2B21CA32869CF252342F4B7A39\nE371783525F28D042C9A1F0928956982C08389B359F9DD169A5BB4EB99F1ED8C\n3F52710F16959080C1AD7566EE9B06383CEC5E539A8F8520A305CB7FF56F99A5\nD11DDDD9B9126B55C3A23C1507EF08561BE1BB6C63B9D31C256FDDEA0AF2AC74\n2D2C9358086138023E648A190E5B96626D3EEF5FA99C54FC8F34C53BB9156C7D\n4194637494B650598EED19BA285B496436CFE33E73D505E67F18D42CFE6ED5C5\nAEB43812E881BE63A805B896EF777E68B950F7580EEC6CFB67DF5322937DF7CA\n5058FCDD4706795FFB53A1586BC17A959CE58D5AC61A4040BE17E8DA5A44548A\nACBA6B7C873B917217E932FC3CB27810928B1EB7B4102D2587ABD3836A100656\nB8039B480EBBF19351F376F169D246996D7D8CE44AFE979392309C37A7C51C7C\nA26BD01A079E2E9862F811D82FAFA2D4828A6BA7B92E2975AA336F72E4F623CA\n8AB9F63ECD1E34B9F012E1795603E3AB71327B3CA9037DAD19C14CD8CD2B7848\nEFB20FDE00C8D5DD84EBC65775638724017D01DDC0E65637AB1249492A94B0C2\n3CA53594D7AA80018090D1C06E28B77D52130DCC8C275D82E6A6630CEDB34CDB\n0AF54197D75853CBF6AC1AF4BF55A12447B82895DAF0EC0C2E4B2C8C14CCF18D\n5AF1B77E8C169D5B9FF084D5BF10CE0231A56E3886860960BF0AE59C64430D5B\n62F412EAE5F25C2BDAF43F68D7D833E559D50EF4D5655B9A8762750DC87B0892\n09FD308685201AA98E802092F3369990F279A445538DB77E8CB59AA158C63724\nE531780B80F24C47CA3D67823F4D6D350F27D30D49B5A07AA0628C1128C28790\n8C5864FDDC8CD9255A038C6BDD3963BE9C9139985C51C18A5C6DA03BC0BE1F33\nA0924BF226D0BAADFDC52B2C2BB2CD6CC88079E2F7E36C4C232628F916296E06\n827170DE48490B6CE049DCE6296BD4E781FEF831B8ED9991DD00ACF493747B01\nE0AFE8735B56767B792D9095248520ECD320C57390960E6895676861B7F98EB7\n28E9523A749570C0C980FFD55FE157979F82EA18018ACF3ECAED45A9F2A4A093\n042B8292AC81DA977B4D511A859B26F2E26EE2004E3CF57236ED4EDB7A1A8863\nB773E4E1C1C09FFC11428BAE775B302B3315FA4D745FBDC43358324DDE36A75A\nCF908F630BA9D86A021C93D56C8925\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F7_0 /DTNDPG+CMMI12 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/vector/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%BeginResource: font KRKITJ+CMR8\n%!FontType1-1.0: KRKITJ+CMR8003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMR8.) readonly def\n/FullName (CMR8) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle 0 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /KRKITJ+CMR8 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-36 -250 1070 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 49 /one put\ndup 50 /two put\ndup 51 /three put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A37E2724CD63F484F47C6447F507C11793B061A71C2EB\n7D651F93505835EBF9032E361AE5C694F562A11D768CB4FB2540B4281CECEE7D\n3A31CE697DC0DEFB6C96B38A970EDFE1B25B852DF4F12D7FA0932E9C23309A9B\n5CEBA0ACEF0E3995BA632D87588518DDCFAD1F932C2AC298854B8BE70E7DD281\n1D3EFD74AAF10F1EAD0973929C21B1810FBCC69541899C362724B7EFAE962F89\n3A1B0CF3FDDD78525A09CE879C0E37FBFFE7EC63524D43EF6909157ACE7282BD\n8DB134CEB68F1D3E7FB10B417C6E8E3371D5B1373A70F9EAD42A4A9B9393FBFF\nDA7CA62FEE95179ED829A8B8017B258F94A2996BDD52C6B6280012FC72DE816F\nFEE42C853DEF7E65E798E746AD78D178977835165DE6B82F895DE65C5A37E550\n0687153CA8964477F9C6961568440F70217EE7FCA7DCDD4765399E931D6E5E1B\n4BA6BF22458A8AFF9926085C2884A1FD7DCC0F0701850F8F4BB88D7A27AEEE98\nFD528C1A38AE6B349705CC4B7C893A43C61DFA20379A5EAA573190499BDD3816\n8CA18E492440922F4D24470DC9960DE10A4B44AA931F6E42421D14F8A2E69723\n5CC9D0C971A21577FC4D517205AC812DC86B68510B66F6035446498C71B1CB2C\nE173844092957E86C3AD5F60F03FCB47B605FD8FDACF0BE6DBA31421BD7A90FC\n23E3B3508083F18A87186DA8B22BC94DD27F8476F4DEBB33D98A0CA935C23105\n1E557467F00708B83BD148F0194A1770E347968938F8021552A9325D5A75D759\nEB8E64029DCACA87CD525D22BAB65601FA3BA89ABCBA8E003852B136E12250D2\nE4AF15E6B8456B7B6C6526C30C221637F5C27DFAB6C87B73D7763519D65E2278\nFDC91C1C1474F90BC324962FB4E1764BB6F4B64F10B7CD5573156689B6E4A530\n5AB5404EF937EDFCD34B373DD496318A394AC06EFC946B4D82422BA0D0726E3E\n0EF9614FBD9DF05881BFC8B1884005AF2A62616DE4996736EAF9DE60A824058C\n8D6C24A36370201EB772518EAD77E0777CE65466568EC08AA63B4D6F91F8CAE7\n8F5A604C0EFE969F7DDD4003AE7D70D781F81C\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F12_0 /KRKITJ+CMR8 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/asciitilde/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n128.12 630.7771 135.44 102.73895 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1.00009 0 0 1 -0.004 0] cm\nq\n[1 0 0 1 62.419 -72.571] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n0 0 m\n97.7966 0 l\n122.89815 0 l\nS\nq\n[1 0 0 1 122.89815 0] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 93.409 -15.927] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.586 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(A)\n[8.775117\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n127.56062 0 m\n62.50475 65.05586 l\n45.81706 81.74356 l\nS\nq\n[-0.7071 0.7071 -0.7071 -0.7071 45.81708 81.74355] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 68.892 71.443] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.296 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(B)\n[8.893473\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n42.5202 85.04042 m\n9.77945 19.55956 l\n2.08493 4.17 l\nS\nq\n[-0.44717 -0.89438 0.89438 -0.44717 2.08493 4.17001] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 -5.842 25.947] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.165 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(C)\n[8.374618\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.59776 w\n[2.98883 2.98883] 0 d\n42.5202 85.04042 m\n49.60645 56.69339 l\n62.78003 4.00128 l\nS\nq\n[0.24252 -0.97012 0.97012 0.24252 62.78001 4.00128] cm\nq\n4.1245 0 m\n2.9024 0.22913 0.91655 0.91655 -0.45827 1.71854 c\n-0.45827 -1.71854 l\n0.91655 -0.91655 2.9024 -0.22913 4.1245 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 41.578 51.818] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n65.835 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(M)\n[11.325161\n0] Tj\n73.743 -74.364 Td\n/F12_0 7.9701 Tf\n(1)\n[4.234514\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.59776 w\n[2.98883 2.98883] 0 d\n0 0 m\n28.34636 14.17317 l\n81.35162 40.67584 l\nS\nq\n[0.89436 0.44717 -0.44717 0.89436 81.35162 40.67583] cm\nq\n4.1245 0 m\n2.9024 0.22913 0.91655 0.91655 -0.45827 1.71854 c\n-0.45827 -1.71854 l\n0.91655 -0.91655 2.9024 -0.22913 4.1245 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 20.318 9.298] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n65.835 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(M)\n[11.325161\n0] Tj\n73.743 -74.364 Td\n/F12_0 7.9701 Tf\n(2)\n[4.234514\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.59776 w\n[2.98883 2.98883] 0 d\n127.56062 0 m\n92.12668 14.17317 l\n25.08942 40.9885 l\nS\nq\n[-0.92844 0.37137 -0.37137 -0.92844 25.08943 40.9885] cm\nq\n4.1245 0 m\n2.9024 0.22913 0.91655 0.91655 -0.45827 1.71854 c\n-0.45827 -1.71854 l\n0.91655 -0.91655 2.9024 -0.22913 4.1245 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 84.098 9.298] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n65.835 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(M)\n[11.325161\n0] Tj\n73.743 -74.364 Td\n/F12_0 7.9701 Tf\n(3)\n[4.234514\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} cs\n[0] sc\nq\n/DeviceGray {} cs\n[0] sc\n59.51122 28.34636 m\n59.51122 29.90262 58.24963 31.1642 56.69339 31.1642 c\n55.13713 31.1642 53.87555 29.90262 53.87555 28.34636 c\n53.87555 26.7901 55.13713 25.52852 56.69339 25.52852 c\n58.24963 25.52852 59.51122 26.7901 59.51122 28.34636 c\nh\nf\n59.51122 28.34636 m\n59.51122 29.90262 58.24963 31.1642 56.69339 31.1642 c\n55.13713 31.1642 53.87555 29.90262 53.87555 28.34636 c\n53.87555 26.7901 55.13713 25.52852 56.69339 25.52852 c\n58.24963 25.52852 59.51122 26.7901 59.51122 28.34636 c\nh\nS\nQ\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[0.5 0 0 0.5 87.903 -7.939] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 59.46 35.932] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n62.419 -72.571 Td\n/F7_0 11.9552 Tf\n(P)\n[7.544927\n0] Tj\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%+ font DTNDPG+CMMI12\n%%+ font KRKITJ+CMR8\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-triangle-cyclic-medians.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n\\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n\\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n\\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n\\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n{$\\vec{M}_{1}$} -- (1.5,0);\n\\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n{$\\vec{M}_{2}$} -- (2,1);\n\\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n{$\\vec{M}_{3}$} -- (0.5,1);\n\\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n\\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-triangle-cyclic-vectors.eps",
    "content": "%!PS-Adobe-3.0 EPSF-3.0\n%Produced by poppler pdftops version: 0.90.1 (http://poppler.freedesktop.org)\n%%Creator:  XeTeX output 2022.03.23:2315\n%%LanguageLevel: 2\n%%DocumentSuppliedResources: (atend)\n%%BoundingBox: 128 630 264 734\n%%HiResBoundingBox: 128.12 630.7771 263.56 733.51605\n%%DocumentSuppliedResources: (atend)\n%%EndComments\n%%BeginProlog\n%%BeginResource: procset xpdf 3.00 0\n%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC\n/xpdf 75 dict def xpdf begin\n% PDF special state\n/pdfDictSize 15 def\n/pdfSetup {\n  /setpagedevice where {\n    pop 2 dict begin\n      /Policies 1 dict dup begin /PageSize 6 def end def\n      { /Duplex true def } if\n    currentdict end setpagedevice\n  } {\n    pop\n  } ifelse\n} def\n/pdfSetupPaper {\n  % Change paper size, but only if different from previous paper size otherwise\n  % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size\n  % so we use the same when checking if the size changes.\n  /setpagedevice where {\n    pop currentpagedevice\n    /PageSize known {\n      2 copy\n      currentpagedevice /PageSize get aload pop\n      exch 4 1 roll\n      sub abs 5 gt\n      3 1 roll\n      sub abs 5 gt\n      or\n    } {\n      true\n    } ifelse\n    {\n      2 array astore\n      2 dict begin\n        /PageSize exch def\n        /ImagingBBox null def\n      currentdict end\n      setpagedevice\n    } {\n      pop pop\n    } ifelse\n  } {\n    pop\n  } ifelse\n} def\n/pdfStartPage {\n  pdfDictSize dict begin\n  /pdfFillCS [] def\n  /pdfFillXform {} def\n  /pdfStrokeCS [] def\n  /pdfStrokeXform {} def\n  /pdfFill [0] def\n  /pdfStroke [0] def\n  /pdfFillOP false def\n  /pdfStrokeOP false def\n  /pdfLastFill false def\n  /pdfLastStroke false def\n  /pdfTextMat [1 0 0 1 0 0] def\n  /pdfFontSize 0 def\n  /pdfCharSpacing 0 def\n  /pdfTextRender 0 def\n  /pdfPatternCS false def\n  /pdfTextRise 0 def\n  /pdfWordSpacing 0 def\n  /pdfHorizScaling 1 def\n  /pdfTextClipPath [] def\n} def\n/pdfEndPage { end } def\n% PDF color state\n/cs { /pdfFillXform exch def dup /pdfFillCS exch def\n      setcolorspace } def\n/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def\n      setcolorspace } def\n/sc { pdfLastFill not { pdfFillCS setcolorspace } if\n      dup /pdfFill exch def aload pop pdfFillXform setcolor\n     /pdfLastFill true def /pdfLastStroke false def } def\n/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if\n      dup /pdfStroke exch def aload pop pdfStrokeXform setcolor\n     /pdfLastStroke true def /pdfLastFill false def } def\n/op { /pdfFillOP exch def\n      pdfLastFill { pdfFillOP setoverprint } if } def\n/OP { /pdfStrokeOP exch def\n      pdfLastStroke { pdfStrokeOP setoverprint } if } def\n/fCol {\n  pdfLastFill not {\n    pdfFillCS setcolorspace\n    pdfFill aload pop pdfFillXform setcolor\n    pdfFillOP setoverprint\n    /pdfLastFill true def /pdfLastStroke false def\n  } if\n} def\n/sCol {\n  pdfLastStroke not {\n    pdfStrokeCS setcolorspace\n    pdfStroke aload pop pdfStrokeXform setcolor\n    pdfStrokeOP setoverprint\n    /pdfLastStroke true def /pdfLastFill false def\n  } if\n} def\n% build a font\n/pdfMakeFont {\n  4 3 roll findfont\n  4 2 roll matrix scale makefont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /Encoding exch def\n    currentdict\n  end\n  definefont pop\n} def\n/pdfMakeFont16 {\n  exch findfont\n  dup length dict begin\n    { 1 index /FID ne { def } { pop pop } ifelse } forall\n    /WMode exch def\n    currentdict\n  end\n  definefont pop\n} def\n% graphics state operators\n/q { gsave pdfDictSize dict begin } def\n/Q {\n  end grestore\n  /pdfLastFill where {\n    pop\n    pdfLastFill {\n      pdfFillOP setoverprint\n    } {\n      pdfStrokeOP setoverprint\n    } ifelse\n  } if\n} def\n/cm { concat } def\n/d { setdash } def\n/i { setflat } def\n/j { setlinejoin } def\n/J { setlinecap } def\n/M { setmiterlimit } def\n/w { setlinewidth } def\n% path segment operators\n/m { moveto } def\n/l { lineto } def\n/c { curveto } def\n/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n      neg 0 rlineto closepath } def\n/h { closepath } def\n% path painting operators\n/S { sCol stroke } def\n/Sf { fCol stroke } def\n/f { fCol fill } def\n/f* { fCol eofill } def\n% clipping operators\n/W { clip newpath } def\n/W* { eoclip newpath } def\n/Ws { strokepath clip newpath } def\n% text state operators\n/Tc { /pdfCharSpacing exch def } def\n/Tf { dup /pdfFontSize exch def\n      dup pdfHorizScaling mul exch matrix scale\n      pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put\n      exch findfont exch makefont setfont } def\n/Tr { /pdfTextRender exch def } def\n/Tp { /pdfPatternCS exch def } def\n/Ts { /pdfTextRise exch def } def\n/Tw { /pdfWordSpacing exch def } def\n/Tz { /pdfHorizScaling exch def } def\n% text positioning operators\n/Td { pdfTextMat transform moveto } def\n/Tm { /pdfTextMat exch def } def\n% text string operators\n/xyshow where {\n  pop\n  /xyshow2 {\n    dup length array\n    0 2 2 index length 1 sub {\n      2 index 1 index 2 copy get 3 1 roll 1 add get\n      pdfTextMat dtransform\n      4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put\n    } for\n    exch pop\n    xyshow\n  } def\n}{\n  /xyshow2 {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval show moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval show moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/cshow where {\n  pop\n  /xycp {\n    0 3 2 roll\n    {\n      pop pop currentpoint 3 2 roll\n      1 string dup 0 4 3 roll put false charpath moveto\n      2 copy get 2 index 2 index 1 add get\n      pdfTextMat dtransform rmoveto\n      2 add\n    } exch cshow\n    pop pop\n  } def\n}{\n  /xycp {\n    currentfont /FontType get 0 eq {\n      0 2 3 index length 1 sub {\n        currentpoint 4 index 3 index 2 getinterval false charpath moveto\n        2 copy get 2 index 3 2 roll 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } {\n      0 1 3 index length 1 sub {\n        currentpoint 4 index 3 index 1 getinterval false charpath moveto\n        2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get\n        pdfTextMat dtransform rmoveto\n      } for\n    } ifelse\n    pop pop\n  } def\n} ifelse\n/Tj {\n  fCol\n  0 pdfTextRise pdfTextMat dtransform rmoveto\n  currentpoint 4 2 roll\n  pdfTextRender 1 and 0 eq {\n    2 copy xyshow2\n  } if\n  pdfTextRender 3 and dup 1 eq exch 2 eq or {\n    3 index 3 index moveto\n    2 copy\n    currentfont /FontType get 3 eq { fCol } { sCol } ifelse\n    xycp currentpoint stroke moveto\n  } if\n  pdfTextRender 4 and 0 ne {\n    4 2 roll moveto xycp\n    /pdfTextClipPath [ pdfTextClipPath aload pop\n      {/moveto cvx}\n      {/lineto cvx}\n      {/curveto cvx}\n      {/closepath cvx}\n    pathforall ] def\n    currentpoint newpath moveto\n  } {\n    pop pop pop pop\n  } ifelse\n  0 pdfTextRise neg pdfTextMat dtransform rmoveto\n} def\n/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0\n       pdfTextMat dtransform rmoveto } def\n/TJmV { 0.001 mul pdfFontSize mul neg 0 exch\n        pdfTextMat dtransform rmoveto } def\n/Tclip { pdfTextClipPath cvx exec clip newpath\n         /pdfTextClipPath [] def } def\n/Tclip* { pdfTextClipPath cvx exec eoclip newpath\n         /pdfTextClipPath [] def } def\n% Level 2/3 image operators\n/pdfImBuf 100 string def\n/pdfImStr {\n  2 copy exch length lt {\n    2 copy get exch 1 add exch\n  } {\n    ()\n  } ifelse\n} def\n/skipEOD {\n  { currentfile pdfImBuf readline\n    not { pop exit } if\n    (%-EOD-) eq { exit } if } loop\n} def\n/pdfIm { image skipEOD } def\n/pdfImM { fCol imagemask skipEOD } def\n/pr { 2 index 2 index 3 2 roll putinterval 4 add } def\n/pdfImClip {\n  gsave\n  0 2 4 index length 1 sub {\n    dup 4 index exch 2 copy\n    get 5 index div put\n    1 add 3 index exch 2 copy\n    get 3 index div put\n  } for\n  pop pop rectclip\n} def\n/pdfImClipEnd { grestore } def\n% shading operators\n/colordelta {\n  false 0 1 3 index length 1 sub {\n    dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt {\n      pop true\n    } if\n  } for\n  exch pop exch pop\n} def\n/funcCol { func n array astore } def\n/funcSH {\n  dup 0 eq {\n    true\n  } {\n    dup 6 eq {\n      false\n    } {\n      4 index 4 index funcCol dup\n      6 index 4 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      5 index 5 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      6 index 8 index funcCol dup\n      3 1 roll colordelta 3 1 roll\n      colordelta or or or\n    } ifelse\n  } ifelse\n  {\n    1 add\n    4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch\n    6 index 6 index 4 index 4 index 4 index funcSH\n    2 index 6 index 6 index 4 index 4 index funcSH\n    6 index 2 index 4 index 6 index 4 index funcSH\n    5 3 roll 3 2 roll funcSH pop pop\n  } {\n    pop 3 index 2 index add 0.5 mul 3 index  2 index add 0.5 mul\n    funcCol sc\n    dup 4 index exch mat transform m\n    3 index 3 index mat transform l\n    1 index 3 index mat transform l\n    mat transform l pop pop h f*\n  } ifelse\n} def\n/axialCol {\n  dup 0 lt {\n    pop t0\n  } {\n    dup 1 gt {\n      pop t1\n    } {\n      dt mul t0 add\n    } ifelse\n  } ifelse\n  func n array astore\n} def\n/axialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index axialCol 2 index axialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index axialSH\n    exch 3 2 roll axialSH\n  } {\n    pop 2 copy add 0.5 mul\n    axialCol sc\n    exch dup dx mul x0 add exch dy mul y0 add\n    3 2 roll dup dx mul x0 add exch dy mul y0 add\n    dx abs dy abs ge {\n      2 copy yMin sub dy mul dx div add yMin m\n      yMax sub dy mul dx div add yMax l\n      2 copy yMax sub dy mul dx div add yMax l\n      yMin sub dy mul dx div add yMin l\n      h f*\n    } {\n      exch 2 copy xMin sub dx mul dy div add xMin exch m\n      xMax sub dx mul dy div add xMax exch l\n      exch 2 copy xMax sub dx mul dy div add xMax exch l\n      xMin sub dx mul dy div add xMin exch l\n      h f*\n    } ifelse\n  } ifelse\n} def\n/radialCol {\n  dup t0 lt {\n    pop t0\n  } {\n    dup t1 gt {\n      pop t1\n    } if\n  } ifelse\n  func n array astore\n} def\n/radialSH {\n  dup 0 eq {\n    true\n  } {\n    dup 8 eq {\n      false\n    } {\n      2 index dt mul t0 add radialCol\n      2 index dt mul t0 add radialCol colordelta\n    } ifelse\n  } ifelse\n  {\n    1 add 3 1 roll 2 copy add 0.5 mul\n    dup 4 3 roll exch 4 index radialSH\n    exch 3 2 roll radialSH\n  } {\n    pop 2 copy add 0.5 mul dt mul t0 add\n    radialCol sc\n    encl {\n      exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      0 360 arc h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      360 0 arcn h f\n    } {\n      2 copy\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arcn\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arcn h\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a1 a2 arc\n      dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add\n      a2 a1 arc h f\n    } ifelse\n  } ifelse\n} def\nend\n%%EndResource\n%%EndProlog\n%%BeginSetup\nxpdf begin\n%%BeginResource: font YGQSIE+CMMI12\n%!FontType1-1.0: YGQSIE+CMMI12003.002\n12 dict begin\n/FontInfo 10 dict dup begin\n/version (003.002) readonly def\n/Notice (Copyright \\(c\\) 1997, 2009 American Mathematical Society \\(<htt\\\np://www.ams.org>\\), with Reserved Font Name CMMI12.) readonly def\n/FullName (CMMI12) readonly def\n/FamilyName (Computer Modern) readonly def\n/Weight (Medium) readonly def\n/isFixedPitch false def\n/ItalicAngle -14.04 def\n/UnderlinePosition -100 def\n/UnderlineThickness 50 def\nend readonly def\n/FontName /YGQSIE+CMMI12 def\n/PaintType 0 def\n/FontType 1 def\n/FontMatrix [0.001 0 0 0.001 0 0] readonly def\n/FontBBox [-31 -250 1026 750] readonly def\n/StrokeWidth 0 def\n/Encoding 256 array\n0 1 255 {1 index exch /.notdef put} for\ndup 65 /A put\ndup 66 /B put\ndup 67 /C put\ndup 126 /vector put\nreadonly def\ncurrentdict end\ncurrentfile eexec\n5AA4F71255501637F1A431BAB555283D093E1B588B45B0281559110D21315C62\nBD638C6B34BA54AA75227715D9947EBCD51A104CAEA657499E94138F5645BF68\n368BB1B1EC8E4776F067FFF2CE9B89FB7E63A7DB304498C1036D399C47A4CB79\nBD517EDB02BEB90195FD7DDAF3E839BCE2DB156D9337DBB2305A465B3E0FFB97\n1985C79DC71C47E26F9F0F042B2CDEE97B679358059256FB93D662D43C7ECB5B\n1A564DFCECB963478373C69F52172F071E0AA6082A3E10D9E1CE2851CFA210EE\n7BD5FCB1AAE15E89D1FB339D587D218B89C18A32F47C7451A80CB1FC07CF5EF6\nF95CB8F8CEBD4396C74A303DCB3A46C281B472F99892DCADA5FC6E4C2524AE72\n569652A7D664B73CC839B5405D299F805DA5E9FE5C41F969093CFD7B26C9805B\n6EC2DA5C4EA81C285458F5CCCDC02F82AC0E127BDB8F9E0A94383740D13431F8\n554EF5B7648E7C56F5F38740D67CB57E0007961013F2F16CDB5BA3F5C1414F66\nAECF5AFFA42AA51168B07908FD53D54A2CFEF17624741ECA22F7626685779282\nF94CF731BE27385E5E72D45F4B1DB660026AB862C3D2D82DFE08374FC83EC6D6\n7D95B5E0CE0B6B598F7135D8C8A3F56DFC15EDB95FB0329D4E8DAC86D935D45D\nD394D8D57B7E5801A1EF2CC03DBCEBC08D4432717FA1C8230743AD0C976B5FC1\nBF3ABE08DE7FA1B5ABBA67B17D416D6CFF0F2B693D4D525D4D0C67B283250E5E\n1FDAB58F0B7C1B88F41C172701B60566CD49937F0691025D5BECEB6FEF70485C\nDC79746A1BED4DF8DB30D87EB18EFEC99B3AAB041F8E6F4495AE8C783183EFEE\n98827EAC3D76ABAD63D7713CC2A45A788C69DBE08E674318930C9E4609DC6148\n75F7DB354D0F455B53F2582C2803FD9C0BF9D387B45A297643E5440E51BC2300\n8C79903128AEA88799D13E3AB6329ECAB526BC6E49CAC3E1A05D9ECA610DAF2F\nD6B80358877F71E59563AD1DDACF37579A6EB2AE469A066B6636EFAB6D7509D6\nD2D9A5A90030E082E38D5559A70D5CB1E71215AD31DC9711004FB55807F34CFF\nCD25E2A3D30A23D1572C2A9DA26105A2E7270D3803156E305E4DD8BEEBC05346\nDB1F2DEA869658EF85E03DA5BF833D93786DBF07187C7B3C23957C662E9934BA\nC05F716F0DFA9F05DEEA54F420E5AD5E0F795E64FB1B359A7DF550AAFC940BA0\n384A856C4BB2C4EA7AFEFDABAE5095B291BCFA8DA61A03B7D0CEF32422669341\nF0327424B3427FE95A8464B9EFE732504172CADD4B7C8C20150F20726DB8D4BF\n2BFAC51E856D3194B8622128052947D40290DE9BF9970BA8FEC400FBE85CFDBA\nCB79F75428BDF3DF6F26C1072E7A034EB49F3290CA348C462AAC9E4C00D989EE\nF6A860B38EF58B2075CD15480FF8B82B1EE8B4CA009031FA775881239BDFE355\n3DE229403611C7D330E15BFA726D1FE8FE1F4869342400E7910F1F94AE1478E2\nFAA1CB5CD7B6B5EDE4D895DC9BB8EB75B3C8B67FA83B755CA8943B41D429AA41\n9E4BD93612139CD18121C944269AE148D4F1A76DCB0A0DB3959FB62F166BFEED\n7F954DC080F0F06EB2E89E94645EFF9AB05805E3D75CFAD8A42CD2C0332D5903\nBEB12701BE8634456DC4FF1847C360131E5075830C2270F7FC6B7D16FF99679E\n15163E3DE15D5215273A894378FD986DA50EBDEF6D6ECD5DC25DFC1964FB3F60\n85475CACBA52F627CC5A10CD366FAB28\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\n0000000000000000000000000000000000000000000000000000000000000000\ncleartomark\n%%EndResource\n/F7_0 /YGQSIE+CMMI12 1 1\n[ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n  /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash\n  /zero/one/two/three/four/five/six/seven\n  /eight/nine/colon/semicolon/less/equal/greater/question\n  /at/A/B/C/D/E/F/G\n  /H/I/J/K/L/M/N/O\n  /P/Q/R/S/T/U/V/W\n  /X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore\n  /quoteleft/a/b/c/d/e/f/g\n  /h/i/j/k/l/m/n/o\n  /p/q/r/s/t/u/v/w\n  /x/y/z/braceleft/bar/braceright/vector/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/exclamdown/cent/sterling/fraction/yen/florin/section\n  /currency/quotesingle/quotedblleft/guillemotleft/guilsinglleft/guilsinglright/fi/fl\n  /.notdef/endash/dagger/daggerdbl/periodcentered/.notdef/paragraph/bullet\n  /quotesinglbase/quotedblbase/quotedblright/guillemotright/ellipsis/perthousand/.notdef/questiondown\n  /.notdef/grave/acute/circumflex/tilde/macron/breve/dotaccent\n  /dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut/ogonek/caron\n  /emdash/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n  /.notdef/AE/.notdef/ordfeminine/.notdef/.notdef/.notdef/.notdef\n  /Lslash/Oslash/OE/ordmasculine/.notdef/.notdef/.notdef/.notdef\n  /.notdef/ae/.notdef/.notdef/.notdef/dotlessi/.notdef/.notdef\n  /lslash/oslash/oe/germandbls/.notdef/.notdef/.notdef/.notdef]\npdfMakeFont\n%%EndSetup\npdfStartPage\n%%EndPageSetup\n[] 0 d\n1 i\n0 j\n0 J\n10 M\n1 w\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\nfalse op\nfalse OP\n{} settransfer\n128.12 630.7771 135.44 102.73895 re\nW\nq\nq\n[1 0 0 1 72 720] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1.00009 0 0 1 -0.004 0] cm\nq\n[1 0 0 1 62.419 -72.571] cm\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.3985 w\nq\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n0 0 m\n97.7966 0 l\n122.89815 0 l\nS\nq\n[1 0 0 1 122.89815 0] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 93.409 -15.927] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.586 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(A)\n[8.775117\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n127.56062 0 m\n62.50475 65.05586 l\n45.81706 81.74356 l\nS\nq\n[-0.7071 0.7071 -0.7071 -0.7071 45.81708 81.74355] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 68.892 71.443] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.296 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(B)\n[8.893473\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nq\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n0.79701 w\n42.5202 85.04042 m\n9.77945 19.55956 l\n2.08493 4.17 l\nS\nq\n[-0.44717 -0.89438 0.89438 -0.44717 2.08493 4.17001] cm\nq\n4.66248 0 m\n3.28098 0.25902 1.0361 1.0361 -0.51805 1.94269 c\n-0.51805 -1.94269 l\n1.0361 -1.0361 3.28098 -0.25902 4.66248 0 c\nf\nQ\nQ\nq\nq\nq\n[-1 0 0 -1 0 0] cm\nq\nQ\nq\n[1 0 0 1 62.419 -72.571] cm\n[-1 0 0 -1 0 0] cm\nq\nQ\n0 J\n[] 0 d\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 -5.842 25.947] cm\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n[1 0 0 1 0 0] Tm\n0 0 Td\n64.165 -69.549 Td\n/F7_0 11.9552 Tf\n(~)\n[5.853266\n0] Tj\n62.419 -72.571 Td\n(C)\n[8.374618\n0] Tj\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\n/DeviceGray {} CS\n[1] SC\n/DeviceGray {} cs\n[1] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nq\n[1 0 0 1 62.419 -72.571] cm\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nQ\nQ\nQ\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\n/DeviceGray {} CS\n[0] SC\n/DeviceGray {} cs\n[0] sc\nQ\nQ\nshowpage\n%%PageTrailer\npdfEndPage\n%%Trailer\nend\n%%DocumentSuppliedResources:\n%%+ font YGQSIE+CMMI12\n%%EOF\n"
  },
  {
    "path": "examples/showcase/generated/latex-image/worksheet-triangle-cyclic-vectors.tex",
    "content": "\\documentclass[12pt]{article}\n\\usepackage{geometry}\n\\geometry{letterpaper,total={408pt,9.0in}}\n%% Custom Page Layout Adjustments (use latex.geometry)\n\\usepackage{amsmath,amssymb}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning}\n\\usepgfplotslibrary{fillbetween}\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\\ifdefined\\tikzset\n\\tikzset{ampersand replacement = \\amp}\n\\fi\n\\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n\\newcommand{\\lt}{<}\n\\newcommand{\\gt}{>}\n\\newcommand{\\amp}{&}\n\\begin{document}\n\\pagestyle{empty}\n\\resizebox{\\width}{\\height}{\n\\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n\\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n\\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n\\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n\\end{tikzpicture}\n}\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/webwork/answer-type-variety.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-answer-type-variety\" assembly-id=\"answer-type-variety\">\n  <static seed=\"5\">\n    <statement><p>Consider the function <m>f</m> defined by <m>f(x)={\\sqrt{x}}\\text{.}</m>\n<ol label=\"a.\">\n<li>\n<p>The exact value of <m>f(12)</m> is <fillin characters=\"10\" name=\"AnSwEr0001\"/> and a decimal approximation for this is <fillin characters=\"10\" name=\"AnSwEr0002\"/>.</p>\n</li>\n<li>\n<p>The domain of this function, in interval notation, is <fillin characters=\"10\" name=\"AnSwEr0003\"/>.</p>\n</li>\n<li>\n<p>The graph of <m>y={\\sqrt{x}}</m> intersects the graph of <m>y=6-x</m> at <fillin characters=\"10\" name=\"AnSwEr0004\"/>.</p>\n</li>\n<li>\n<p><m>\\frac{d}{dx}{\\sqrt{x}}={}</m> <fillin characters=\"10\" name=\"AnSwEr0005\"/>.</p>\n</li>\n<li>\n<p>The formula for <m>f(x)^2\\text{,}</m> including its restricted domain, is <fillin characters=\"20\" name=\"AnSwEr0006\"/>.</p>\n</li>\n<li>\n<p><m>f</m> is a <ul form=\"popup\" name=\"AnSwEr0007\"><li>\n<p>?</p>\n</li><li>\n<p>power</p>\n</li><li>\n<p>exponential</p>\n</li><li>\n<p>linear</p>\n</li><li>\n<p>quadratic</p>\n</li></ul> function.</p>\n</li>\n<li>\n<p>Which is true of the word <lq/>radical<rq/>?</p>\n<p><ul form=\"buttons\" name=\"AnSwEr0008\">\n<li>\n<p>It shares ancestry with \"radius\", as in the radius of a circle.</p>\n</li>\n<li>\n<p>It shares ancestry with \"radish\", a vegetable.</p>\n</li>\n<li>\n<p>It shares ancestry with \"radler\", a mixture of beer and grapefruit soda.</p>\n</li>\n</ul></p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>2\\sqrt{3}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>3.4641</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\left[0,\\infty \\right)</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\left(4,2\\right)</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\frac{1}{2\\sqrt{x}}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>x, x\\ge 0</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\text{power}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\text{Choice 2}</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"PreTeXt_Showcase/6_1-Answer_Type_Variety.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserPopUp.pl\",\n  \"parserRadioButtons.pl\",\n  \"contextForm.pl\",\n  \"contextLimitedRadical.pl\",\n  \"contextRestrictedDomains.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Numeric\");\n$f = Formula(\"sqrt(x)\");\n$derivative = Formula(\"1/(2sqrt(x))\");\n$popup = PopUp(['?','power','exponential','linear','quadratic'],1);\n$radio = RadioButtons([\n  'It shares ancestry with \"radius\", as in the radius of a circle.',\n  'It shares ancestry with \"radish\", a vegetable.',\n  'It shares ancestry with \"radler\", a mixture of beer and grapefruit soda.',\n],1);\nContext(\"LimitedRadical\");\n$a = Formula(\"2sqrt(3)\");\nContext(\"LimitedNumeric\");\n$b = Real(sqrt(12));\nContext(\"Interval\");\n$domain = Interval(\"[0,inf)\");\nContext(\"Point\");\n$point = Point(\"(4,2)\");\nContext(\"RestrictedDomains\");\n$restricted = Formula(\"x, x >= 0\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the function [`f`] defined by [`f(x)=[$f]\\text{.}`]\na.  The exact value of [`f(12)`] is [_]{$a}{10} and a decimal approximation for this is [_]{$b}{10}.\n\na.  The domain of this function, in interval notation, is [_]{$domain}{10}.\n\na.  The graph of [`y=[$f]`] intersects the graph of [`y=6-x`] at [_]{$point}{10}.\n\na.  [`\\frac{d}{dx}[$f]={}`] [_]{$derivative}{10}.\n\na.  The formula for [`f(x)^2\\text{,}`] including its restricted domain, is [_]{$restricted}{20}.\n\na.  [`f`] is a [_]{$popup}{5} function.\n\na.  Which is true of the word \"radical\"?\n\n    [_]{$radio}{5}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/showcase/generated/webwork/images/string-answers-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning} % for worksheet\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\n\\begin{document}\n\\begin{tikzpicture}\n  \\draw[fill=red, opacity=0.5] (0,0) circle (2cm) node[below left=1.5cm, opacity=1] {Has a Bill} node[below left, opacity=1] {Duck};\n  \\draw[fill=green, opacity=0.5] (60:2cm) circle (2cm) node [above=2.1cm, opacity=1] {Is Venemous} node[above=0.5cm, opacity=1] {Jellyfish};\n  \\draw[fill=blue, opacity=0.5] (0:2cm) circle (2cm) node [below right=1.5cm, opacity=1] {Has Fur} node[below right, opacity=1] {Beaver};\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/showcase/generated/webwork/open-problem-library.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-open-problem-library\" assembly-id=\"open-problem-library\">\n  <static seed=\"15\" source=\"Library/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\">\n    <statement><p>Find the prime factorization of <m>35</m>.</p>\n<p><m>35={}</m><fillin characters=\"11\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>5\\cdot 7</m>\n      </p>\n    </answer>\n    <solution><p>After checking to see if small prime numbers divide <m>35</m>, we find that <m>5</m> is one divisor. So <m>35=5\\cdot7</m>.</p>\n<p>Since both <m>5</m> and <m>7</m> are prime, the prime factorization of <m>35</m> is <m>5\\cdot7</m>.</p>\n</solution>\n  </static>\n  <rendering-data sourceFilePath=\"Library/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\" origin=\"webwork2\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg source=\"Library/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\"/>\n</webwork-reps>\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/6_1-Answer_Type_Variety.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserPopUp.pl\",\n  \"parserRadioButtons.pl\",\n  \"contextForm.pl\",\n  \"contextLimitedRadical.pl\",\n  \"contextRestrictedDomains.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Numeric\");\n$f = Formula(\"sqrt(x)\");\n$derivative = Formula(\"1/(2sqrt(x))\");\n$popup = PopUp(['?','power','exponential','linear','quadratic'],1);\n$radio = RadioButtons([\n  'It shares ancestry with \"radius\", as in the radius of a circle.',\n  'It shares ancestry with \"radish\", a vegetable.',\n  'It shares ancestry with \"radler\", a mixture of beer and grapefruit soda.',\n],1);\nContext(\"LimitedRadical\");\n$a = Formula(\"2sqrt(3)\");\nContext(\"LimitedNumeric\");\n$b = Real(sqrt(12));\nContext(\"Interval\");\n$domain = Interval(\"[0,inf)\");\nContext(\"Point\");\n$point = Point(\"(4,2)\");\nContext(\"RestrictedDomains\");\n$restricted = Formula(\"x, x >= 0\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the function [`f`] defined by [`f(x)=[$f]\\text{.}`]\na.  The exact value of [`f(12)`] is [_]{$a}{10} and a decimal approximation for this is [_]{$b}{10}.\n\na.  The domain of this function, in interval notation, is [_]{$domain}{10}.\n\na.  The graph of [`y=[$f]`] intersects the graph of [`y=6-x`] at [_]{$point}{10}.\n\na.  [`\\frac{d}{dx}[$f]={}`] [_]{$derivative}{10}.\n\na.  The formula for [`f(x)^2\\text{,}`] including its restricted domain, is [_]{$restricted}{20}.\n\na.  [`f`] is a [_]{$popup}{5} function.\n\na.  Which is true of the word \"radical\"?\n\n    [_]{$radio}{5}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/6_2-Special_Feedback.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"bizarroArithmetic.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext()->operators->set(\n'*' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n' *' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n'* ' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n);\n$given = Formula(\"x^2 x^5\");\n$answer = Formula(\"x^7\");\n$special = Formula(\"x^10\");\n$evaluator = $answer -> cmp(\n  checker=>sub{\n    my ( $correct, $student, $ansHash ) = @_;\n    Value::Error(\"When multiplying powers with the same base, you do not multiply the exponents.\") if ($special == $student);\n    return 0 if $ansHash->{isPreview} || $correct != $student;\n    Context()->flags->set(bizarroMul=>1);\n    delete $correct->{test_values}; delete $student->{test_values};\n    my $OK = ($correct == $student);\n    Context()->flags->set(bizarroMul=>0);\n    Value::Error(\n      \"Your answer is equivalent to the correct answer, but not in the expected form.\n      Maybe it needs to be simplified, factored, expanded, have its denominator rationalized, etc.\"\n    ) unless $OK;\n    return $OK;\n  }\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSimplify the expression [`[$given]\\text{.}`]\n\n[_]{$evaluator}{10}\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\nAdd the exponents.\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTo simplify the product of two powers of the same base, add the exponents.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n[$given]\\amp=x^{2+5}\\\\\n\\amp=[$answer]\n\\end{aligned}\n```]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/6_3-String_Answers.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"contextArbitraryString.pl\",\n  \"PTXSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"ArbitraryString\");\n$platypus = Compute(\"platypus\")->cmp(checker => sub {\n  my ($correct,$student,$ans) = @_;\n  $correct = $correct->value;\n  $student = $student->value;\n  $student = lc($student);\n  $student =~ s/ +/ /;\n  $student =~ s/^ //;\n  $student =~ s/ $//;\n  return ($student eq $correct);\n});\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n  \\draw[fill=red, opacity=0.5] (0,0) circle (2cm) node[below left=1.5cm, opacity=1] {Has a Bill} node[below left, opacity=1] {Duck};\n  \\draw[fill=green, opacity=0.5] (60:2cm) circle (2cm) node [above=2.1cm, opacity=1] {Is Venemous} node[above=0.5cm, opacity=1] {Jellyfish};\n  \\draw[fill=blue, opacity=0.5] (0:2cm) circle (2cm) node [below right=1.5cm, opacity=1] {Has Fur} node[below right, opacity=1] {Beaver};\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis Venn Diagram groups animals by certain characteristics.\n\n>> [@image(insertGraph($image_1), width=>300)@]*  <<\n\nName an animal that belongs in the center region. Spelling counts!\n\n[_]{$platypus}{30}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/6_5-Structured_with_Tasks.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$quadratic = Formula(\"2 x^2 - 7 x - 15\")->reduce;\n$x1 = Fraction(5,1);\n$x2 = Fraction(-3,2);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\nContext(\"FiniteSolutionSets\");\n$solutions = Formula(\"-3/2,5\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis problem has multiple parts that must be completed in order. Try answering the second part with various things you might expect a user to enter.\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => always,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nConsider the equation\n\n[```[$quadratic] = 0```]\n\nIdentify the coefficients for the quadratic equation using the standard form from Subsection[$NBSP]*1.1.\n\n[`a=`] [_]{2}{4}, [`b=`] [_]{-7}{4}, [`c=`] [_]{-15}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{,}`] the coefficient of [`x`] for [`b\\text{,}`] and the constant for [`c\\text{.}`] _In this case_, they are [`a = 2\\text{,}`] [`b = -7\\text{,}`] [`c = -15\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUse the quadratic formula to find the solution set to\n\n[```[$quadratic]=0```]\n\n[_]{$solutions}{30}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Subsection[$NBSP]*1.1.\n\nYou already identified [`a = 2\\text{,}`] [`b = -7\\text{,}`] and [`c = -15\\text{,}`] and the results from using these in the quadratic formula are [`-\\frac{3}{2}`] and [`5\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/6_6-Units_in_Answers.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserNumberWithUnits.pl\",\n  \"contextCurrency.pl\",\n  \"contextPercent.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$newUnits = [\n  {name=>'gallons',conversion=>{factor=>0.00378541,m=>3}},\n  {name=>'gallon',conversion=>{factor=>0.00378541,m=>3}},\n  {name=>'gal',conversion=>{factor=>0.00378541,m=>3}},\n];\nContext()->flags->set(tolType=>'absolute',tolerance=>0.1);\n$volume = NumberWithUnits(\"20/2.78 gal\", {newUnit=>$newUnits});\nContext(\"Percent\");\nContext()->flags->set(tolerance=>0.01);\n$increase = Percent(352/278-1);\nContext(\"Currency\");\n$cost = Currency(3.52*1.028);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  The average cost of gasoline in the United States in 2010 was \\$2.78 per gallon. How much gasoline would \\$20 get you in 2010, on average?\n\n    [_]{$volume}{10}\n\na.  In 2011, the average cost was \\$3.52 per gallon. What percent increase was that from 2010?\n\n    [_]{$increase}{10}\n\na.  In 2012, the cost had risen 2.8% from the 2011 cost. What was the cost of a gallon of gasoline in 2012?\n\n    [_]{$cost}{10}   \n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/def/setPreTeXt_Showcase.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = PreTeXt_Showcase/header/PreTeXt_Showcase.pg\nscreenHeaderFile  = PreTeXt_Showcase/header/PreTeXt_Showcase.pg\ndescription       = PreTeXt Showcase\nproblemListV2\nproblem_start\nsource_file = PreTeXt_Showcase/6_1-Answer_Type_Variety.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = PreTeXt_Showcase/6_2-Special_Feedback.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = PreTeXt_Showcase/6_3-String_Answers.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Library/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = PreTeXt_Showcase/6_5-Structured_with_Tasks.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = PreTeXt_Showcase/6_6-Units_in_Answers.pg\nproblem_id = 6\nproblem_end\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/header/PreTeXt_Showcase.pg",
    "content": "# Header file for problem set PreTeXt_Showcase\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Article  of PreTeXt Showcase.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/showcase/generated/webwork/pg/PreTeXt_Showcase/macros/PTXSC.pl",
    "content": "#############################################################################\n# This macro library supports WeBWorK problems from the PreTeXt project named\n# PreTeXt Showcase\n#############################################################################\n\n\n# Return a string containing the latex-image-preamble contents.\n# To be used by LaTeXImage objects as in:\n# $image->addToPreamble(latexImagePreamble())\n\nsub latexImagePreamble {\nreturn <<'END_LATEX_IMAGE_PREAMBLE'\n\\usepackage{tikz}\n\\usepackage{pgfplots}\n\\usetikzlibrary{positioning} % for worksheet\n\\usepackage{pstricks}\n\\usepackage{phaistos}\n\\usepackage{xcolor}\n\nEND_LATEX_IMAGE_PREAMBLE\n}\n"
  },
  {
    "path": "examples/showcase/generated/webwork/special-feedback.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-special-feedback\" assembly-id=\"special-feedback\">\n  <static seed=\"9\">\n    <statement><p>Simplify the expression <m>{x^{2}x^{5}}\\text{.}</m></p>\n<p><fillin characters=\"10\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <hint><p>Add the exponents.</p>\n</hint>\n    <answer>\n      <p>\n        <m>x^{7}</m>\n      </p>\n    </answer>\n    <solution><p>To simplify the product of two powers of the same base, add the exponents.</p>\n<p><me>\\begin{aligned}\n{x^{2}x^{5}}\\amp=x^{2+5}\\\\\n\\amp={x^{7}}\n\\end{aligned}</me></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"PreTeXt_Showcase/6_2-Special_Feedback.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"bizarroArithmetic.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext()->operators->set(\n'*' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n' *' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n'* ' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n);\n$given = Formula(\"x^2 x^5\");\n$answer = Formula(\"x^7\");\n$special = Formula(\"x^10\");\n$evaluator = $answer -> cmp(\n  checker=>sub{\n    my ( $correct, $student, $ansHash ) = @_;\n    Value::Error(\"When multiplying powers with the same base, you do not multiply the exponents.\") if ($special == $student);\n    return 0 if $ansHash->{isPreview} || $correct != $student;\n    Context()->flags->set(bizarroMul=>1);\n    delete $correct->{test_values}; delete $student->{test_values};\n    my $OK = ($correct == $student);\n    Context()->flags->set(bizarroMul=>0);\n    Value::Error(\n      \"Your answer is equivalent to the correct answer, but not in the expected form.\n      Maybe it needs to be simplified, factored, expanded, have its denominator rationalized, etc.\"\n    ) unless $OK;\n    return $OK;\n  }\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSimplify the expression [`[$given]\\text{.}`]\n\n[_]{$evaluator}{10}\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\nAdd the exponents.\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTo simplify the product of two powers of the same base, add the exponents.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n[$given]\\amp=x^{2+5}\\\\\n\\amp=[$answer]\n\\end{aligned}\n```]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/showcase/generated/webwork/string-answers.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-string-answers\" assembly-id=\"string-answers\">\n  <static seed=\"12\">\n    <statement><p>This Venn Diagram groups animals by certain characteristics.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/string-answers-image-1\" width=\"50%\"/>\n<p>Name an animal that belongs in the center region. Spelling counts!</p>\n<p><fillin characters=\"30\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>{\\text{platypus}}</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"PreTeXt_Showcase/6_3-String_Answers.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"contextArbitraryString.pl\",\n  \"PTXSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"ArbitraryString\");\n$platypus = Compute(\"platypus\")->cmp(checker => sub {\n  my ($correct,$student,$ans) = @_;\n  $correct = $correct->value;\n  $student = $student->value;\n  $student = lc($student);\n  $student =~ s/ +/ /;\n  $student =~ s/^ //;\n  $student =~ s/ $//;\n  return ($student eq $correct);\n});\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n  \\draw[fill=red, opacity=0.5] (0,0) circle (2cm) node[below left=1.5cm, opacity=1] {Has a Bill} node[below left, opacity=1] {Duck};\n  \\draw[fill=green, opacity=0.5] (60:2cm) circle (2cm) node [above=2.1cm, opacity=1] {Is Venemous} node[above=0.5cm, opacity=1] {Jellyfish};\n  \\draw[fill=blue, opacity=0.5] (0:2cm) circle (2cm) node [below right=1.5cm, opacity=1] {Has Fur} node[below right, opacity=1] {Beaver};\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis Venn Diagram groups animals by certain characteristics.\n\n>> [@image(insertGraph($image_1), width=>300)@]*  <<\n\nName an animal that belongs in the center region. Spelling counts!\n\n[_]{$platypus}{30}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/showcase/generated/webwork/structured-with-tasks.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-structured-with-tasks\" assembly-id=\"structured-with-tasks\">\n  <static seed=\"18\">\n    <introduction><p>This problem has multiple parts that must be completed in order. Try answering the second part with various things you might expect a user to enter.</p>\n</introduction>\n    <task><title>Identify Coefficients</title>\n<statement><p>Consider the equation</p>\n<p><me>{2x^{2}-7x-15} = 0</me></p>\n<p>Identify the coefficients for the quadratic equation using the standard form from Subsection<nbsp/>1.1.</p>\n<p><m>a=</m> <fillin characters=\"4\" name=\"AnSwEr0001\"/>, <m>b=</m> <fillin characters=\"4\" name=\"AnSwEr0002\"/>, <m>c=</m> <fillin characters=\"4\" name=\"AnSwEr0003\"/></p>\n</statement><answer><p><m>2</m></p></answer><answer><p><m>-7</m></p></answer><answer><p><m>-15</m></p></answer><solution><p>Take the coefficient of <m>x^2</m> for the value of <m>a\\text{,}</m> the coefficient of <m>x</m> for <m>b\\text{,}</m> and the constant for <m>c\\text{.}</m> <em>In this case</em>, they are <m>a = 2\\text{,}</m> <m>b = -7\\text{,}</m> <m>c = -15\\text{.}</m></p>\n</solution></task>\n    <task><title>Use the Quadratic Formula</title>\n<statement><p>Use the quadratic formula to find the solution set to</p>\n<p><me>{2x^{2}-7x-15}=0</me></p>\n<p><fillin characters=\"30\" name=\"AnSwEr0004\"/></p>\n</statement><answer><p><m>\\frac{-3}{2}, 5</m></p></answer><solution><p>Recall that the quadratic formula is given in Subsection<nbsp/>1.1.</p>\n<p>You already identified <m>a = 2\\text{,}</m> <m>b = -7\\text{,}</m> and <m>c = -15\\text{,}</m> and the results from using these in the quadratic formula are <m>-\\frac{3}{2}</m> and <m>5\\text{.}</m></p>\n</solution></task>\n  </static>\n  <rendering-data problemSource=\"PreTeXt_Showcase/6_5-Structured_with_Tasks.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$quadratic = Formula(\"2 x^2 - 7 x - 15\")->reduce;\n$x1 = Fraction(5,1);\n$x2 = Fraction(-3,2);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\nContext(\"FiniteSolutionSets\");\n$solutions = Formula(\"-3/2,5\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis problem has multiple parts that must be completed in order. Try answering the second part with various things you might expect a user to enter.\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => always,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nConsider the equation\n\n[```[$quadratic] = 0```]\n\nIdentify the coefficients for the quadratic equation using the standard form from Subsection[$NBSP]*1.1.\n\n[`a=`] [_]{2}{4}, [`b=`] [_]{-7}{4}, [`c=`] [_]{-15}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{,}`] the coefficient of [`x`] for [`b\\text{,}`] and the constant for [`c\\text{.}`] _In this case_, they are [`a = 2\\text{,}`] [`b = -7\\text{,}`] [`c = -15\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUse the quadratic formula to find the solution set to\n\n[```[$quadratic]=0```]\n\n[_]{$solutions}{30}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Subsection[$NBSP]*1.1.\n\nYou already identified [`a = 2\\text{,}`] [`b = -7\\text{,}`] and [`c = -15\\text{,}`] and the results from using these in the quadratic formula are [`-\\frac{3}{2}`] and [`5\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/showcase/generated/webwork/units-in-answers.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-units-in-answers\" assembly-id=\"units-in-answers\">\n  <static seed=\"20\">\n    <statement><p><ol label=\"a.\">\n<li>\n<p>The average cost of gasoline in the United States in 2010 was $2.78 per gallon. How much gasoline would $20 get you in 2010, on average?</p>\n<p><fillin characters=\"10\" name=\"AnSwEr0001\"/></p>\n</li>\n<li>\n<p>In 2011, the average cost was $3.52 per gallon. What percent increase was that from 2010?</p>\n<p><fillin characters=\"10\" name=\"AnSwEr0002\"/></p>\n</li>\n<li>\n<p>In 2012, the cost had risen 2.8% from the 2011 cost. What was the cost of a gallon of gasoline in 2012?</p>\n<p><fillin characters=\"10\" name=\"AnSwEr0003\"/></p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>7.19424\\ {\\rm gal}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>26.6\\%</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\$3.62</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"PreTeXt_Showcase/6_6-Units_in_Answers.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:26:17-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(6.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserNumberWithUnits.pl\",\n  \"contextCurrency.pl\",\n  \"contextPercent.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$newUnits = [\n  {name=>'gallons',conversion=>{factor=>0.00378541,m=>3}},\n  {name=>'gallon',conversion=>{factor=>0.00378541,m=>3}},\n  {name=>'gal',conversion=>{factor=>0.00378541,m=>3}},\n];\nContext()->flags->set(tolType=>'absolute',tolerance=>0.1);\n$volume = NumberWithUnits(\"20/2.78 gal\", {newUnit=>$newUnits});\nContext(\"Percent\");\nContext()->flags->set(tolerance=>0.01);\n$increase = Percent(352/278-1);\nContext(\"Currency\");\n$cost = Currency(3.52*1.028);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  The average cost of gasoline in the United States in 2010 was \\$2.78 per gallon. How much gasoline would \\$20 get you in 2010, on average?\n\n    [_]{$volume}{10}\n\na.  In 2011, the average cost was \\$3.52 per gallon. What percent increase was that from 2010?\n\n    [_]{$increase}{10}\n\na.  In 2012, the cost had risen 2.8% from the 2011 cost. What was the cost of a gallon of gasoline in 2012?\n\n    [_]{$cost}{10}   \n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/showcase/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/pretext-showcase.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <target name=\"html\">\n      <format>html</format>\n      <source>source/pretext-showcase.ptx</source>\n      <publication>publisher/publication.xml</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"latex\">\n      <format>latex</format>\n      <source>source/pretext-showcase.ptx</source>\n      <publication>publisher/publication.xml</publication>\n      <output-dir>output/latex</output-dir>\n    </target>\n    <target name=\"pdf\" pdf-method=\"pdflatex\">\n      <format>pdf</format>\n      <source>source/pretext-showcase.ptx</source>\n      <publication>publisher/publication.xml</publication>\n      <output-dir>output/pdf</output-dir>\n    </target>\n    <target name=\"subset\">\n      <format>html</format>\n      <source>source/pretext-showcase.ptx</source>\n      <publication>publisher/publication.xml</publication>\n      <output-dir>output/subset</output-dir>\n      <stringparam key=\"debug.skip-knowls\" value=\"yes\"/>\n      <!-- edit this to change the section/chapter/etc. to build -->\n      <xmlid-root>ch-first</xmlid-root>\n    </target>\n  </targets>\n  <executables>\n      <latex>latex</latex>\n      <pdflatex>pdflatex</pdflatex>\n      <xelatex>xelatex</xelatex>\n      <asy>asy</asy>\n      <sage>sage</sage>\n      <pdfpng>convert</pdfpng>\n      <pdfeps>pdftops</pdfeps>\n      <pdfcrop>pdf-crop-margins</pdfcrop>\n      <pageres>pageres</pageres>\n      <node>node</node>\n      <liblouis>file2brl</liblouis>\n    </executables>\n</project>\n"
  },
  {
    "path": "examples/showcase/publisher/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <html>\n        <baseurl href=\"https://pretextbook.org/examples/pretext-showcase/html\" />\n        <calculator model=\"geogebra-classic\"/>\n        <css theme=\"default-modern\" palette=\"blue-red\"/>\n    </html>\n\n    <!-- Relative path, relative to \"main\" source file -->\n    <source>\n\t    <directories generated=\"../generated\" external=\"../external\"/>\n    </source>\n\n    <!-- These are the defaults but written explicitly here to serve as a model. -->\n    <webwork\n        server=\"https://webwork-ptx.aimath.org\"\n        course=\"anonymous\"\n        user=\"anonymous\"\n        password=\"anonymous\"\n        />\n\n</publication>\n"
  },
  {
    "path": "examples/showcase/source/environments.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2019 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<section xml:id=\"environments\">\n  <title>Environments</title>\n  <author>Oscar Levin</author>\n  <objectives>\n    <ul>\n      <li>\n        <p>\n          Demonstrate block environments.\n        </p>\n      </li>\n      <li>\n        <p>\n          Illustrate styling.\n        </p>\n      </li>\n    </ul>\n  </objectives>\n\n  <introduction>\n    <p>\n      This section will demonstrate some of the <q>environments</q> available in <pretext />.  In addition to cataloging the options an author has to break up content, this will be a nice place to play with various styles that are under development.\n    </p>\n    <p>\n      Maybe a better way to describe what this section will do is by specifying our objectives.  Luckily there is an environment for that.\n    </p>\n\n  </introduction>\n  <subsection>\n    <title>Traditional Structure</title>\n    <p>\n      Many mathematics papers and textbook chapters are organized in the traditional definition-lemma-proof-theorem-proof format.  Depending on how friendly the paper is, or who the intended audience is, there might be quite a bit of exposition surrounding these elements.  This subsection is intended to be an illustration of this structure.\n    </p>\n    <p>\n      We begin with some basic definitions.  Depending on the narrative style of your text, you might want to define terms in the middle of paragraphs.  We might call this an  <term>inline definition</term>, which can be accomplished using the <tag>term</tag> tag.\n    </p>\n\n    <p>\n      More formal texts will likely want numbered definitions.\n    </p>\n    <definition xml:id=\"def-numbered-definition\">\n      <statement>\n        <p>\n          A <term>numbered definition</term> is a definition that gets a number.  Note that we should still put the term being defined in <tag>term</tag> tags.\n        </p>\n      </statement>\n    </definition>\n    <p>\n      One advantage to having numbered definitions (see <xref ref=\"def-numbered-definition\"/>) is that you can refer to them, just like we just did.  We can also refer to titled definitions (see <xref ref=\"def-titled-definition\"/>).\n    </p>\n    <definition xml:id=\"def-titled-definition\">\n      <title>Titled definitions</title>\n      <statement>\n        <p>\n          When a definition is a numbered definition that also gets a title, we call it a <term>titled definition</term>.\n        </p>\n      </statement>\n    </definition>\n\n    <p>\n      At this point it might be useful to give a few examples of the terms defined by your definitions.  Of course here the definitions are examples of definitions, so instead will illustrate our point with an example of an example.\n    </p>\n\n    <example>\n      <p>\n        This example is an example of an example that stands alone.  It does not have a question in it, so it does not need a solution.\n      </p>\n      <p>\n        Of course examples can consist of more than one paragraph, as this is also an example of.  In fact, we could put an ordered list of things that could go in an example:\n        <ol>\n          <li>\n            <p>\n              There could just be a paragraph or two.\n            </p>\n          </li>\n          <li>\n            <p>\n              There could be a list of examples.\n            </p>\n          </li>\n          <li>\n            <p>\n              All of the above.\n            </p>\n          </li>\n        </ol>\n      </p>\n    </example>\n\n    <p>\n      While on this topic, it is worth mentioning that many authors choose to include examples of problems that can be solved.  This suggests that part of an example is the solution.  For example:\n    </p>\n\n    <example>\n      <idx><h>example</h><h>of example</h></idx>\n      <statement>\n        <p>\n          How do you include an example that has a solution, and maybe also a hint?\n        </p>\n      </statement>\n      <hint>\n        <p>\n          Make sure you put the <q>question</q> is the <tag>statement</tag>.\n        </p>\n      </hint>\n      <solution>\n        <p>\n          As mentioned in the hint, you must structure the example as a statement, followed by a hint, answer, and/or solution.\n        </p>\n        <p>\n          This example is not an example of an example that has a separate answer, but of course you could have an answer as well.\n        </p>\n      </solution>\n    </example>\n\n    <example>\n      <title>Examples with titles</title>\n      <statement>\n        <p>\n          Can examples have titles?\n        </p>\n      </statement>\n      <answer>\n        <p>\n          Yes.\n        </p>\n      </answer>\n    </example>\n\n    <p>\n      Returning to our main goal of establishing new mathematical theory, we might next state an axiom or two (especially if we are named Euclid).  In <pretext /> the environments for axioms are not <q>definition-like</q> (the only definition-like environment is a definition).  There are quite a few <q>axiom-like</q> environments.\n    </p>\n    <axiom xml:id=\"axiom-example\">\n      <statement>\n        <p>\n          Axiom-like environments consist of: axiom, conjecture, principle, heuristic, hypothesis, and assumption.\n        </p>\n      </statement>\n    </axiom>\n\n    <p>\n      Once you have defined your terms and stated your axioms, you will likely want to prove something.  Perhaps you will start with a <term>lemma</term> or two, use them to prove a <term>theorem</term>, followed by a few <term>corollaries</term>.  If you are not as confident in the importance of your results, you might call them <term>propositions</term> or just <term>facts</term>.\n    </p>\n    <lemma xml:id=\"lem-example\">\n      <statement>\n        <p>\n          There exist lemmas that are presented without proof.\n        </p>\n      </statement>\n    </lemma>\n    <p>\n      The lemma above did not have a proof, since it's proof is obvious.\n    </p>\n    <lemma xml:id=\"lem-with-proof\">\n      <statement>\n        <p>\n          Lemmas can have proofs.\n        </p>\n      </statement>\n      <proof>\n        <p>\n          This is clear, as it follows from the proof of <xref ref=\"lem-with-proof\"/>.\n        </p>\n      </proof>\n    </lemma>\n    <p>\n      Using the two lemmas above, we arrive at the following:\n    </p>\n    <theorem xml:id=\"thm-example\">\n      <title>The Fundamental Theorem of Nonsense</title>\n      <statement>\n        <p>\n          Let <m>P</m> be any statement that follows from the two lemmas above.  Then <m>P</m> is true.\n        </p>\n      </statement>\n    </theorem>\n    <p>\n      There is no reason you need to prove a theorem right away.  You can always have some text, like this paragraph, before the proof.  You could even have an example of how a theorem could be applied before pulling the reader back in for the eagerly awaited proof.\n    </p>\n\n     <example>\n       <p>\n         This is an example of how you might interject an example before completing a proof.  As such it is put between the statement of the theorem and its proof.\n       </p>\n     </example>\n\n    <p>\n      Note that if you don't give a proof a title, it will get titled <q>proof</q> automatically.  It makes sense to put a custom title in this case since you are referring to a proof of the a theorem that was stated without proof earlier.\n    </p>\n\n    <proof>\n      <title>Proof of <xref ref=\"thm-example\"/></title>\n      <p>\n        Let <m>P</m> be as described in the theorem. By the lemmas, <m>P</m> is true.\n      </p>\n      <p>\n        Therefore, <m>P</m>.\n      </p>\n    </proof>\n\n    <corollary xml:id=\"cor-example\">\n      <statement>\n        <p>\n          The previous theorem is not useful.\n        </p>\n      </statement>\n    </corollary>\n\n    <p>\n      Lemmas, theorems, and corollaries naturally go together.  There are other theorem-like environments that you might view as parallel to these.  Here is an example.\n    </p>\n\n    <proposition xml:id=\"prop-example\">\n      <statement>\n        <p>\n          Propositions are like theorems, but perhaps not as important.\n        </p>\n      </statement>\n    </proposition>\n\n    <p>\n      If students are reading your textbook, it might be time to collect the main points that you have made for your students and put them in a box.  You could also put your result in the box and let your student roam free.  The following is an <tag>assemblage</tag>.\n    </p>\n\n    <assemblage xml:id=\"assemblage-example\">\n      <title>Types of environments</title>\n      <p>\n        <pretext /> allows for a variety of environments:\n        <ul>\n          <li>\n            <p>\n            Definitions\n            </p>\n          </li>\n          <li>\n            <p>\n            Theorem-like environments\n            </p>\n          </li>\n          <li>\n            <p>\n            Assemblages, to assemble or summarize important connected ideas.\n            </p>\n          </li>\n        </ul>\n      </p>\n    </assemblage>\n\n    <p>\n      Your paper will likely have lots of remarks about its content as the connecting text between theorems, as this section exemplifies.  However, it might also be useful to highlight important remarks, or to set off remarks that do not otherwise fit into the main flow of the text.\n    </p>\n\n    <remark>\n      <p>\n        Resist the temptation to use assemblages just because they give you the desired styling.\n      </p>\n    </remark>\n\n    <p>\n      If your remark is far removed from your main content, you might make it as an aside.\n    </p>\n\n    <aside>\n      <p>\n        The <tag>aside</tag> environment might be styled so that it is literally on the side of the page.  Also, some cats are better than some dogs, but some dogs are better than all cats.\n      </p>\n    </aside>\n\n    <note>\n      <p>\n        Another environment like a remark is a <term>note</term>.  Other <q>remark-like</q> environments are <tag>convention</tag>, <tag>observation</tag>, <tag>warning</tag>, and <tag>insight</tag>.\n      </p>\n    </note>\n\n    <p>\n      No self-respecting paper on self-reference would be complete without some open questions.  You might make some conjectures, which are axiom-like environments in <pretext />.\n    </p>\n    <conjecture xml:id=\"conj-example\">\n      <statement>\n        <p>\n          All the conjectures made in this paper are false.\n        </p>\n      </statement>\n    </conjecture>\n\n    <p>\n      You might also present a question for your readers.  The <tag>question</tag> and <tag>problem</tag> environments might be appropriate, although note that these are example-like, as they can receive hints, answers, and solutions.\n    </p>\n\n    <question xml:id=\"question-example\">\n      <statement>\n        <p>\n          What's the difference between an example and a question or problem?\n        </p>\n      </statement>\n      <solution>\n        <p>\n          Basically, it's just the name of the environment.  Practically, the different environments might have pedagogical uses, and potentially they could be styled differently.\n        </p>\n      </solution>\n    </question>\n    <problem>\n      <p>\n        Find a better solution to <xref ref=\"question-example\"/>.\n      </p>\n    </problem>\n\n\n    <p>\n      As a final example, we present a renamed environment.  In <pretext />, one of the theorem-like environments is fact.  But perhaps you would rather use <q>Self Evident Fact</q> as your environment name.  The following is coded as <tag>fact</tag>, but  using <tag>rename</tag> in <tag>docinfo</tag> we can get the following\n    </p>\n\n    <fact xml:id=\"fact-example\">\n      <statement>\n        <p>\n          It goes without saying!\n        </p>\n      </statement>\n    </fact>\n    <p>\n      In addition to <tag>example</tag>, <pretext /> provides two more <q>example-like</q> environments: question and problem.\n    </p>\n\n  </subsection>\n\n  <subsection xml:id=\"subsec-the-rest\">\n    <title>Inquiry Based Structure</title>\n    <p>\n      Another way you might structure a chapter is to give students more opportunities to actively engage in the material.  You might give a long list of definitions, and then a list of theorems to prove.  That would look a lot like the previous section (perhaps with fewer paragraphs between elements).\n    </p>\n    <p>\n      Alternatively, you can mix inquiry based learning (<acro>IBL</acro>) structure into a more traditionally formatted section using appropriate environments.  You might start a section with an <tag>activity</tag>, for example.\n    </p>\n    <activity>\n      <statement>\n        <p>\n          Make a list of all the project-like environments, such as this activity.\n        </p>\n      </statement>\n    </activity>\n\n    <p>\n      You might want to break down the activity into smaller tasks, which can be done by specifying each <tag>task</tag>, as in the following project.\n    </p>\n\n    <project>\n      <introduction>\n        <p>\n          First you give an introduction to the project to tie the tasks together.  Then:\n        </p>\n      </introduction>\n      <task>\n        <p>\n          Specify the first task.\n        </p>\n      </task>\n      <task>\n        <statement>\n          <p>\n            Should the second task have a hint?\n          </p>\n        </statement>\n        <hint>\n          <p>\n            It could.\n          </p>\n        </hint>\n      </task>\n      <task>\n        <statement>\n          <p>\n            Can tasks, or stand alone projects, have answers or solutions?\n          </p>\n        </statement>\n        <answer>\n          <p>\n            Yes.  They can have both.\n          </p>\n        </answer>\n        <solution>\n          <p>\n            Yes, they can.  Depending on how the publisher chooses to produce your book, these could be hidden completely, moved to the back of the book, or displayed as knowls.\n          </p>\n        </solution>\n      </task>\n      <conclusion>\n        <p>\n          You might end the project with a conclusion.\n        </p>\n      </conclusion>\n    </project>\n\n    <p>\n      Of course you might still have definitions, theorems, and examples in a document like this.\n    </p>\n\n    <definition xml:id=\"def-inquiry\">\n      <statement>\n        <p>\n          A definition is <term>illustrative</term> if it serves the purpose of illustrating something.\n        </p>\n      </statement>\n    </definition>\n\n    <p>\n      And then you might have an example.\n    </p>\n\n    <example>\n      <statement>\n        <p>\n          Should an example always follow a definition?\n        </p>\n      </statement>\n      <solution>\n        <p>\n          No, but it could.\n        </p>\n      </solution>\n    </example>\n\n    <p>\n      Examples are a good way to ask students to think about a problem but provide a solution right away.  To encourage students to think about a problem more before giving the solution, you could use an exercise.  In <pretext />, exercises that occur inside a section, along with other content, are called <q>checkpoints</q>, even though they are coded simply as <tag>exercise</tag>\n    </p>\n\n    <exercise>\n      <statement>\n        <p>\n          Write an exercise inside a section to show what they look like.\n        </p>\n      </statement>\n      <answer>\n        <p>\n          Done.\n        </p>\n      </answer>\n    </exercise>\n\n    <p>\n      Of course, in this style of document, collecting important ideas is especially important.\n    </p>\n\n    <assemblage xml:id=\"assemblage-ibl\">\n      <title>Components of good IBL writing</title>\n      <p>\n        Texts that support inquiry based learning should contain lots of opportunities for students to engage with the material, but can still be friendly and help students along their journey of discovery.\n      </p>\n    </assemblage>\n  </subsection>\n</section>\n"
  },
  {
    "path": "examples/showcase/source/exercises.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2019 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<section xml:id=\"exercises\">\n  <title>Exercises</title>\n\n  <p>\n    An interesting concept from group theory is that of a Sylow-<m>p</m> subgroup.\n  </p>\n\n  <definition>\n    <title>Sylow-<m>p</m> subgroup</title>\n    <statement>\n      <p>\n        If <m>G</m> is a finite group, and <m>p</m> is a prime number,\n        and <m>p^k</m> is the largest power of <m>p</m> dividing <m>\\order{G}</m>,\n        then a <term>Sylow-<m>p</m> subgroup</term> of <m>G</m> is a subgroup of <m>G</m>\n        with order <m>p^k</m>.\n      </p>\n    </statement>\n  </definition>\n\n  <p>\n    This definition allows <m>k</m> to be <m>0</m>, so <m>p</m> might not divide <m>\\order{G}</m>.\n    There is a theorem that gives information about how many Sylow-<m>p</m> subgroups a finite group might have.\n  </p>\n\n  <theorem xml:id=\"theorem-sylow\">\n    <title>Sylow Theorem</title>\n    <statement>\n      <p>\n        If <m>G</m> is a finite group and <m>p</m> is a prime dividing <m>\\order{G}</m>,\n        then the number of Sylow-<m>p</m> subgroups of <m>G</m> divides <m>\\order{G}</m>\n        and is congruent to <m>1</m> modulo <m>p</m>.\n      </p>\n    </statement>\n  </theorem>\n\n  <example>\n    <title>Sylow-<m>3</m> subgroups, group of order <m>45</m></title>\n    <p>\n      If <m>G</m> is a group of order <m>45</m>, how many Sylow-<m>3</m> subgroups could <m>G</m> have?\n    </p>\n    <p>\n      Write <m>n_3</m> to represent the number of Sylow-<m>3</m> subgroups.\n      We factor <m>45=9\\cdot5</m>, separating the maximal power of <m>3</m> from its complement.\n      Since <m>n_3</m> divides <m>45</m> and <m>n_3\\equiv1</m> modulo <m>3</m>,\n      it follows that <m>n_3</m> divides <m>5</m>. So either <m>n_3=1</m> or <m>n_3=5</m>.\n      But of those two options, only <m>1</m> is congruent to <m>1</m> mod <m>3</m>.\n      So <m>G</m> must have <m>1</m> Sylow-<m>3</m> subgroup.\n    </p>\n  </example>\n\n  <exercise>\n    <title>Sylow-<m>7</m> subgroups, group of order <m>63</m></title>\n    <statement>\n      <p>\n        If <m>G</m> is a group of order <m>63</m>, how many Sylow-<m>7</m> subgroups could <m>G</m> have?\n      </p>\n    </statement>\n    <hint>\n      <p>\n        Factor <m>63</m> and use <xref ref=\"theorem-sylow\"/>.\n      </p>\n    </hint>\n    <answer>\n      <p>\n        <m>G</m> has <m>1</m> Sylow-<m>7</m> subgroup.\n      </p>\n    </answer>\n    <solution>\n      <p>\n        Write <m>n_7</m> to represent the number of Sylow-<m>7</m> subgroups.\n        We factor <m>63=9\\cdot7</m>, separating the maximal power of <m>7</m> from its complement.\n        Since <m>n_7</m> divides <m>63</m> and <m>n_7\\equiv1</m> modulo <m>7</m>,\n        it follows that <m>n_7</m> divides <m>9</m>. So either <m>n_7=1</m>, <m>n_7=3</m>, or <m>n_7=9</m>.\n        But of those, only <m>1</m> is a real possibility, since only <m>1</m> is congruent to <m>1</m> mod <m>7</m>.\n        So <m>G</m> has <m>1</m> Sylow-<m>7</m> subgroup.\n      </p>\n    </solution>\n  </exercise>\n\n  <exercise>\n    <title>Sylow-<m>3</m> subgroups, group of order <m>63</m></title>\n    <statement>\n      <p>\n        If <m>G</m> is a group of order <m>63</m>, how many Sylow-<m>3</m> subgroups could <m>G</m> have?\n      </p>\n    </statement>\n    <hint>\n      <p>\n        Factor <m>63</m> and use <xref ref=\"theorem-sylow\"/>.\n      </p>\n    </hint>\n    <answer>\n      <p>\n        <m>G</m> either has <m>1</m> Sylow-<m>3</m> subgroup or it has <m>7</m>.\n      </p>\n    </answer>\n    <solution>\n      <p>\n        Write <m>n_3</m> to represent the number of Sylow-<m>3</m> subgroups.\n        We factor <m>63=9\\cdot7</m>, separating the maximal power of <m>3</m> from its complement.\n        Since <m>n_3</m> divides <m>63</m> and <m>n_3\\equiv1</m> modulo <m>3</m>,\n        it follows that <m>n_3</m> divides <m>7</m>. So either <m>n_3=1</m> or <m>n_3=7</m>.\n        Both of those are real possibilities, since both are congruent to <m>1</m> mod <m>3</m>.\n        So <m>G</m> either has <m>1</m> Sylow-<m>3</m> subgroup or it has <m>7</m>.\n      </p>\n    </solution>\n  </exercise>\n\n  <p>\n    Understanding how to count Sylow-<m>p</m> subgroups will help us later when we are classifying finite groups.\n  </p>\n\n  <reading-questions>\n    <exercise>\n      <statement>\n        <p>\n          Does a group of order <m>21</m> have a Sylow-<m>5</m> subgroup?\n        </p>\n      </statement>\n    </exercise>\n    <exercise>\n      <statement>\n        <p>\n          Does <xref ref=\"theorem-sylow\"/> always tell you exactly how many Sylow-<m>p</m> subgroups a finite group <m>G</m> has\n          when you know the order of <m>G</m>?\n        </p>\n      </statement>\n    </exercise>\n  </reading-questions>\n\n  <exercises>\n    <subexercises>\n      <title>Vocabulary</title>\n      <exercise>\n        <statement>\n          <p>\n            Research <q>Sylow</q> and explain who this person was with a short, one-paragraph biography.\n          </p>\n        </statement>\n      </exercise>\n      <exercise>\n        <statement>\n          <p>\n            Given a group <m>G</m> of order <m>72</m>, what would be the order of a Sylow-<m>2</m> subgroup?\n          </p>\n        </statement>\n      </exercise>\n    </subexercises>\n\n    <subexercises>\n      <title>Calculations</title>\n      <exercise>\n        <statement>\n          <p>\n            If <m>G</m> is a group of order <m>2p</m> for an odd prime <m>p</m>,\n            how many Sylow-<m>p</m> subgroups might <m>G</m> have?\n          </p>\n        </statement>\n      </exercise>\n      <exercisegroup cols=\"3\">\n        <introduction>\n          <p>\n            Let <m>G</m> be a group of order <m>30</m>.\n            For each <m>p</m>, how many Sylow-<m>p</m> subgroups might <m>G</m> have?\n          </p>\n        </introduction>\n        <exercise>\n          <statement>\n            <p>\n              <m>p=2</m>\n            </p>\n          </statement>\n        </exercise>\n        <exercise>\n          <statement>\n            <p>\n              <m>p=3</m>\n            </p>\n          </statement>\n        </exercise>\n        <exercise>\n          <statement>\n            <p>\n              <m>p=5</m>\n            </p>\n          </statement>\n        </exercise>\n      </exercisegroup>\n    </subexercises>\n\n    <subexercises>\n      <title>Thinking Deeper</title>\n      <exercise>\n        <statement>\n          <p>\n            If <m>G</m> has only one Sylow-<m>p</m> subgroup for some prime <m>p</m>,\n            prove that it is a normal subgroup.\n          </p>\n        </statement>\n      </exercise>\n      <exercise>\n        <statement>\n          <p>\n            If <m>\\order{G}=pq</m> for primes <m>p\\lt q</m>,\n            what conditions on <m>p</m> and <m>q</m> guarantee that <m>G\\cong C_p\\times C_q</m>?\n          </p>\n        </statement>\n      </exercise>\n    </subexercises>\n  </exercises>\n</section>\n"
  },
  {
    "path": "examples/showcase/source/latex-image.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2019 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<section xml:id=\"latex-image\">\n  <title>Images and Diagrams</title>\n  <subsection>\n    <title>Images and Diagrams from <latex/> Code</title>\n    <!-- TODO: examples of other tex-based image production: xy-pic, picture, etc -->\n\n    <figure>\n      <caption><c>tikz</c> Examples</caption>\n      <idx><h>image</h><h>TikZ source</h></idx>\n      <sidebyside margins=\"0%\" widths=\"41% 53%\" valign=\"bottom\">\n        <image xml:id=\"image-building-parabola\">\n          <!-- diagram from ORCCA by Ross Kouzes and Alex Jordan -->\n          <shortdescription>\n            a drawing of a tall building and a tennis ball being launched upward;\n            the path of the ball is an arc that goes upward and then downward to the ground\n          </shortdescription>\n          <latex-image>\n            \\definecolor{ruby}{HTML}{9e0c0f}\n            \\definecolor{turquoise}{HTML}{008099}\n            \\begin{tikzpicture}\n              \\begin{axis}[\n                axis x line=none,\n                axis y line=none,\n                xmin=-3,xmax=6,\n                ymin=-10,\n                ymax=150,\n                grid=none\n              ]\n                \\addplot[color=ruby, fill=ruby!30] coordinates{(-1.5,0)(-1.5,80)(0.5,80)(0.5,0)(-1.5,0)};\n                \\addplot[color=black,fill=white] coordinates{(0.2,8)(0,8)(0,3)(0.2,3)(0.2,8)(0,8)(0.1,8)(0.1,3)(0.1,5.5)(0,5.5)(0.2,5.5)};\n                \\addplot[color=black,fill=white] coordinates{(-1,8)(-1.2,8)(-1.2,3)(-1,3)(-1,8)(-1.2,8)(-1.1,8)(-1.1,3)(-1.1,5.5)(-1.2,5.5)(-1,5.5)};\n                \\addplot[color=black,fill=black!40] coordinates{(-0.3,9)(-0.3,0)(-0.7,0)(-0.7,9)(-0.3,9)};\n                \\addplot[color=black] coordinates{(-0.5,0)(-0.5,9)};\n                \\foreach \\x in {0,...,2}\n                  \\foreach \\y in {0,...,5}\n                    {\\addplot[color=black,fill=white] coordinates{(0.6*\\x-1,18+10*\\y)(0.6*\\x-1.2,18+10*\\y)(0.6*\\x-1.2,13+10*\\y)(0.6*\\x-1,13+10*\\y)(0.6*\\x-1,18+10*\\y)(0.6*\\x-1.2,18+10*\\y)(0.6*\\x-1.1,18+10*\\y)(0.6*\\x-1.1,13+10*\\y)(0.6*\\x-1.1,15.5+10*\\y)(0.6*\\x-1.2,15.5+10*\\y)(0.6*\\x-1,15.5+10*\\y)};}\n                \\addplot[color=black] coordinates{(-3,0)(6,0)};\n                \\addplot[mark=*, samples=15, variable=\\t, domain=0:5, smooth, -, color=turquoise] ({t}, {-16*t^2+64*t+80});\n              \\end{axis}\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n\n        <image xml:id=\"image-gaussian-sum-proof\">\n          <!-- design by Alex Jordan -->\n          <shortdescription>\n            visual proof of the identity that the sum of k from k=1 to k=n is equal to n+1 choose 2\n          </shortdescription>\n          <description>\n            <p>\n              There is a single ball at the top; beneath that there is a row with two balls;\n              beneath that there is a row with three balls, then four, then five, then six.\n            </p>\n            <p>\n              Below all this is a row with seven balls and a particular subset of two of those balls\n              is highlighted. The diagram illustrates a correspondence from that pair to a particular\n              ball in the upper collection.\n            </p>\n          </description>\n          <latex-image>\n            {\n              \\definecolor{summand}{rgb}{0.1, 0.1, 0.95}\n              \\definecolor{pair}{rgb}{0.9, 0.45, 0}\n              \\huge\n              \\begin{tikzpicture}\n                \\draw [dashed] (0.5-0.5*6.5,-0.866025*6.5) -- (7-0.5*6.5,-0.866025*6.5);\n                \\draw [very thick] (2-0.5*7,-0.866025*7) -- (2-0.5*4,-0.866025*4) -- (5-0.5*7,-0.866025*7);\n                \\foreach \\x in {1,...,6}\n                  \\foreach \\y in {1,...,\\x}\n                    \\shade[ball color=summand!30]  (\\y-0.5*\\x,-0.866025*\\x) circle (0.2cm);\n                \\foreach \\y in {1,...,7}\n                  \\shade[ball color=pair!40]  (\\y-0.5*7,-0.866025*7) circle (0.2cm);\n                \\node at (2.5,-0.5) [anchor=north west]{$\\color{summand}\\sum\\limits_{k=1}^nk\\color{black}=\\color{pair}\\binom{n+1}{2}$};\n                \\shade[ball color=summand]  (2-0.5*4,-0.866025*4) circle (0.2cm);\n                \\shade[ball color=pair]  (2-0.5*7,-0.866025*7) circle (0.2cm);\n                \\shade[ball color=pair]  (5-0.5*7,-0.866025*7) circle (0.2cm);\n              \\end{tikzpicture}\n            }\n          </latex-image>\n        </image>\n      </sidebyside>\n    </figure>\n\n    <figure>\n      <caption><c>pgfplots</c> Examples</caption>\n      <idx><h>image</h><h><c>pgfplots</c> source</h></idx>\n      <sidebyside margins=\"0%\" widths=\"47% 47%\" valign=\"bottom\">\n        <image xml:id=\"image-implicitly-defined-curve\">\n          <!-- plot from CLM by Alex Jordan -->\n          <shortdescription>\n            a plot of the implicitly defined curve x cos(x y) = 4 - y;\n            the viewing window is [-7,7] x [-4,10.6]\n          </shortdescription>\n          <latex-image>\n            \\begin{tikzpicture}[\n              declare function={\n                c(\\x)= cos(\\x^2*180/3.14159265359);\n                sp(\\x)=sqrt(4+\\x^2*c(\\x));\n                sm(\\x)=sqrt(4-\\x^2*c(\\x));\n                m(\\x)= 2+sm(\\x);\n                o(\\x)= 2-sm(\\x);\n                p(\\x)= 2+sp(\\x);\n                q(\\x)= 2-sp(\\x);\n                f(\\x)= \\x^2/m(\\x);\n                g(\\x)= m(\\x)/c(\\x);\n                h(\\x)= -\\x^2/p(\\x);\n                k(\\x)= p(\\x)/c(\\x);\n              }\n            ]\n              \\begin{axis}[\n                xmin = -7,\n                xmax = 7,\n                ymin = -4,\n                ymax = 10.6,\n                xtick = {-4,-2,...,4},\n                ytick = {-4,-2,...,10},\n                minor xtick = {-7,-6,...,7},\n                minor ytick = {-4,-3,...,10},\n                variable = v,\n                color = red,\n                mark = none,\n                solid,\n                axis lines = center,\n                axis line style = {&lt;->},\n                xlabel = {$x$},\n                ylabel = {$y$},\n                yticklabel style={inner sep=0.333ex},\n                scale only axis,\n                tick label style={font=\\footnotesize, color = black},\n                grid = minor,\n                grid style = {solid,gray!40},\n              ]\n                \\addplot[domain=0:2.2] ({f(v)},{m(v)});\n                \\addplot[domain=2.2:2.3499859792] ({f(v)},{m(v)});\n                \\addplot[domain=2.6965731707:2.72] ({f(v)},{m(v)});\n                \\addplot[domain=2.72:3.1] ({f(v)},{m(v)});\n                \\addplot[domain=3.1:3.36] ({f(v)},{m(v)});\n                \\addplot[domain=3.36:3.369] ({f(v)},{m(v)});\n                \\addplot[domain=3.7207600255:3.75] ({f(v)},{m(v)});\n                \\addplot[domain=3.75:4.1] ({f(v)},{m(v)});\n                \\addplot[domain=4.1:4.1826819343] ({f(v)},{m(v)});\n                \\addplot[domain=4.5013070528:4.6] ({f(v)},{m(v)});\n                \\addplot[domain=4.6:4.8] ({f(v)},{m(v)});\n                \\addplot[domain=4.8:4.8632109381] ({f(v)},{m(v)});\n                \\addplot[domain=5.1649321939:5.2] ({f(v)},{m(v)});\n                \\addplot[domain=5.2:5.4] ({f(v)},{m(v)});\n                \\addplot[domain=5.4:5.4596904128] ({f(v)},{m(v)});\n                \\addplot[domain=5.7524607477:5.9970858912] ({f(v)},{m(v)});\n                \\addplot[domain=6.2854560605:6.4899313929] ({f(v)},{m(v)});\n                \\addplot[domain=6.7769950285:6.9475348363] ({f(v)},{m(v)});\n                \\addplot[domain=7.2357791015:7.3762238487] ({f(v)},{m(v)});\n                \\addplot[domain=7.6680608384:7.7804196739] ({f(v)},{m(v)});\n                \\addplot[domain=8.0787873209:8.1630812697] ({f(v)},{m(v)});\n                \\addplot[domain=8.4729783943:8.525239357] ({f(v)},{m(v)});\n                \\addplot[mark=none] coordinates {({f(2.3499859792)},{m(2.3499859792)}) ({g(2.3499859793)},{o(2.3499859793)})};\n                \\addplot[domain=2.2795725971:2.3499859793] ({g(v)},{o(v)});\n                \\addplot[mark=none] coordinates {({f(2.6965731707)},{m(2.6965731707)}) ({g(2.696573171)},{o(2.696573171)})};\n                \\addplot[domain=2.696573171:2.7240684007] ({g(v)},{o(v)});\n                \\addplot[mark=none] coordinates {({f(3.369)},{m(3.369)}) ({g(3.3697995683)},{o(3.3697995683)})};\n                \\addplot[domain=3.36795:3.3697995683] ({g(v)},{o(v)});\n                \\addplot[domain=0.15:0.9934229315] ({g(v)},{o(v)});\n                \\addplot[domain=1.4952570458:2.0001872665] ({g(v)},{o(v)});\n                \\addplot[domain=2.9496641015:3.178782971] ({g(v)},{o(v)});\n                \\addplot[domain=3.9009258917:4.0194955921] ({g(v)},{o(v)});\n                \\addplot[domain=0:1.8] ({h(v)},{p(v)});\n                \\addplot[domain=1.8:2.2] ({h(v)},{p(v)});\n                \\addplot[domain=2.2:2.8] ({h(v)},{p(v)});\n                \\addplot[domain=2.8:2.89] ({h(v)},{p(v)});\n                \\addplot[domain=3.2571424315:3.3] ({h(v)},{p(v)});\n                \\addplot[domain=3.3:3.75] ({h(v)},{p(v)});\n                \\addplot[domain=3.75:3.7971078497] ({h(v)},{p(v)});\n                \\addplot[domain=4.1295834659:4.2] ({h(v)},{p(v)});\n                \\addplot[domain=4.2:4.5] ({h(v)},{p(v)});\n                \\addplot[domain=4.5:4.5356939968] ({h(v)},{p(v)});\n                \\addplot[domain=4.844517562:4.9] ({h(v)},{p(v)});\n                \\addplot[domain=4.9:5] ({h(v)},{p(v)});\n                \\addplot[domain=5:5.170055092] ({h(v)},{p(v)});\n                \\addplot[domain=5.4665876095:5.5] ({h(v)},{p(v)});\n                \\addplot[domain=5.5:5.7] ({h(v)},{p(v)});\n                \\addplot[domain=5.7:5.7347036241] ({h(v)},{p(v)});\n                \\addplot[domain=6.0248230446:6.2484075213] ({h(v)},{p(v)});\n                \\addplot[domain=6.5357897386:6.7226893127] ({h(v)},{p(v)});\n                \\addplot[domain=7.0100484639:7.1651804638] ({h(v)},{p(v)});\n                \\addplot[domain=7.4549045114:7.5811656127] ({h(v)},{p(v)});\n                \\addplot[domain=7.8758321028:7.9743147713] ({h(v)},{p(v)});\n                \\addplot[domain=8.2775481783:8.3468023025] ({h(v)},{p(v)});\n                \\addplot[domain=8.6671994161:8.6968286602] ({h(v)},{p(v)});\n                \\addplot[mark=none] coordinates {({g(0.15)},{o(0.15)}) ({k(0.15)},{q(0.15)})};\n                \\addplot[domain=0.15:0.9690222774] ({k(v)},{q(v)});\n                \\addplot[domain=2.3375568425:2.6564493594] ({k(v)},{q(v)});\n                \\addplot[domain=3.4567020839:3.6249982793] ({k(v)},{q(v)});\n                \\addplot[domain=4.3047344897:4.3734360266] ({k(v)},{q(v)});\n                \\addplot[mark=none] coordinates {({h(3.2571424315)},{p(3.2571424315)}) ({k(3.2571424316)},{q(3.2571424316)})};\n                \\addplot[domain=3.2571424316:3.2608706576] ({k(v)},{q(v)});\n                \\addplot[mark=none] coordinates {({h(2.89)},{p(2.89)}) ({k(2.89)},{q(2.89)})};\n                \\addplot[domain=2.8754877926:2.89] ({k(v)},{q(v)});\n                \\addplot[domain=1.4584452866:2.0506909475] ({k(v)},{q(v)});\n                \\addplot[mark=none] coordinates {(3,-2)} node[black] {$x \\cos(x y) = 4 - y$};\n              \\end{axis}\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n\n        <image xml:id=\"image-parametrized-surface\">\n          <!-- plot by Alex Jordan -->\n          <shortdescription>\n            a 3D partial plot of the surface defined by r(u,v) = (u + v, u^2, v^2)\n          </shortdescription>\n          <latex-image>\n            \\begin{tikzpicture}\n              \\begin{axis}[\n                compat=1.9,\n                x={(-0.2cm,-0.1cm)},\n                y={(.375cm,0.0cm)},\n                z={(0cm,0.375cm)},\n                xlabel={},\n                ylabel={},\n                zlabel={},\n                xmin = -4, xmax = 4,\n                ymin = -4, ymax = 4.5,\n                zmin = -4, zmax = 4.5,\n                xtick = {10},\n                ytick = {10},\n                ztick = {10},\n                samples = 10,\n                samples y = 10,\n                axis lines = center,\n              ]\n                \\addplot3[surf, shader = faceted interp, domain = -2:0, y domain = -2:0,] ({x+y}, {x^2}, {y^2});\n                \\addplot3[&lt;->, domain = -2:2, samples y= 0] ({-1+x}, {1^2}, {x^2});\n                \\addplot3[&lt;->>, domain = -2:2, samples y= 0] ({-1.5+x}, {x^2}, {1.5^2});\n                \\addplot3[surf, shader = faceted interp, domain = 0:2, y domain = -2:0,] ({x+y}, {x^2}, {y^2});\n                \\addplot3[&lt;->, domain = -2:2, samples y= 0] ({1.2+x}, {1.2^2}, {x^2});\n                \\addplot3[surf, shader = faceted interp, domain = -2:0, y domain = 0:2,] ({x+y}, {x^2}, {y^2});\n                \\addplot3[&lt;->, domain = 0:2, samples y= 0] ({-1+x}, {1^2}, {x^2});\n                \\addplot3[&lt;->>, domain = -2:2, samples y= 0] ({0.9+x}, {x^2}, {0.9^2});\n                \\addplot3[surf, shader = faceted interp, domain = 0:2, y domain = -2:0,] ({(x+y)*(abs(x^2-y^2)/(x^2-y^2)+1)/2}, {x^2}, {y^2*(abs(x^2-y^2)/(x^2-y^2)+1)/2 + x^2*(abs(y^2-x^2)/(y^2-x^2)+1)/2});\n                \\addplot3[->>, domain = 1.5:2, samples y= 0] ({-1.5+x}, {x^2}, {1.5^2});\n                \\addplot3[surf, shader = faceted interp, domain = 0:2, y domain = 0:2,] ({x+y}, {x^2}, {y^2});\n                \\addplot3[->>, domain = 0.1:2, samples y= 0] ({0.9+x}, {x^2}, {0.9^2});\n                \\addplot3[&lt;->>, domain = -2:2, samples y= 0] ({2+x}, {x^2}, {2^2});\n                \\addplot3[&lt;->>, domain = -2:2, samples y= 0] ({-2+x}, {x^2}, {2^2});\n                \\addplot3[&lt;->, domain = -2:2, samples y= 0] ({2+x}, {2^2}, {x^2});\n                \\addplot3[&lt;->, domain = -2:2, samples y= 0] ({-2+x}, {2^2}, {x^2});\n                \\addplot3[->, domain = 0:2, samples y= 0] ({1.2+x}, {1.2^2}, {x^2});\n                \\addplot3[mark=none] coordinates {(0, 1, -2)} node {$r(u,v)=(u+v,u^2,v^2)$};\n              \\end{axis}\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n      </sidebyside>\n    </figure>\n\n    <!-- This figure is commented out until such time as pstricks is supported by pdflatex and/or xelatex -->\n    <!-- It was briefly supported for LaTeX 2019, but not supported as of LaTeX 2020.                     -->\n    <!-- <figure> -->\n      <!-- images taken from a calculus classroom project by Alex Jordan -->\n      <!-- <caption><c>pstricks</c> Examples</caption>\n      <idx><h>image</h><h><c>pstricks</c> source</h></idx>\n      <sidebyside margins=\"0%\" widths=\"47% 47%\" valign=\"top\">\n        <image xml:id=\"image-raindrop-refraction-and-reflection\">\n          <description>\n            diagram illustrating light entering a raindrop and refracting some,\n            then reflecting internally, and then refracting someas it exits the raindrop;\n            the net effect is that the light reflected by some angle omega\n          </description>\n          <latex-image>\n            \\definecolor{waterblue}{HTML}{256D7B}\n            \\begin{pspicture*}(-6,-2.7)(4.1,2.1)\n              \\pscircle*[linecolor=waterblue!50](0,0){2}\n              \\psline[linewidth=2pt]{->}(-6,1)(-1.73,1)\n              \\psline[linewidth=1pt,linestyle=dashed](-6,1)(4,1)\n              \\psline[linewidth=1pt,linestyle=dashed](-3,-2.6)(4,1)\n              \\psline[linewidth=1pt,linestyle=dashed](0,0)(-3.46,2)\n              \\psline[linewidth=1pt,linestyle=dashed](0,0)(-1.2,-1.68)\n              \\psline[linewidth=1pt,linestyle=dashed](0,0)(1.9,0.5)\n              \\psline[linewidth=2pt]{->}(-1.73,1)(1.9,0.5)\n              \\psline[linewidth=2pt]{->}(1.9,0.5)(-1.2,-1.7)\n              \\psline[linewidth=2pt]{->}(-1.2,-1.68)(-3,-2.6)\n              \\psarc[linewidth=1pt](-1.73,1){1}{150}{180}\n              \\psarc[linewidth=1pt](-1.73,1){1.1}{150}{180}\n              \\uput{0.6}[165](-1.73,1){$\\alpha$}\n              \\psarc[linewidth=1pt](-1.73,1){1}{-30}{-9}\n              \\psarc[linewidth=1pt](-1.73,1){1.1}{-30}{-9}\n              \\psarc[linewidth=1pt](-1.73,1){1.2}{-30}{-9}\n              \\uput{0.6}[-25](-1.73,1){$\\beta$}\n              \\psarc[linewidth=1pt](4,1){1}{-180}{-150}\n              \\uput{0.6}[-165](4,1){$\\omega$}\n            \\end{pspicture*}\n          </latex-image>\n        </image>\n\n        <image xml:id=\"image-rainbow-perception\">\n          <description>\n            diagram illustrating sunlight hitting many raindrops,\n            reflecting by an angle back in the general direction of a figure stanging on the ground;\n            different colors reflect at slightly different angles,\n            giving the figure the impression of seeing a rainbow\n          </description>\n          <latex-image>\n            \\definecolor{waterblue}{HTML}{256D7B}\n            \\definecolor{sunyelloworange}{HTML}{FDB813}\n            \\begin{pspicture*}(-6,-3.4)(2.4,2)\n              \\psset{linecolor=waterblue}\n              \\qdisk(0,1.5){4pt}\n              \\qdisk(1,1.5){4pt}\n              \\qdisk(-0.416667,1){4pt}\n              \\qdisk(0.46429,1){4pt}\n              \\qdisk(1.5,1){4pt}\n              \\qdisk(-0.833333,0.5){4pt}\n              \\qdisk(-0.071429,0.5){4pt}\n              \\qdisk(0.82432,0.5){4pt}\n              \\qdisk(2,0.5){4pt}\n              \\qdisk(-0.60714,0){4pt}\n              \\qdisk(0.14865,0){4pt}\n              \\qdisk(1.14063,0){4pt}\n              \\psline[linewidth=1pt,linecolor=red]{->}(0,1.5)(-3.5,-2.7)\n              \\psline[linewidth=1pt,linecolor=orange]{->}(1,1.5)(-3.5,-2.7)\n              \\psline[linewidth=2pt,linecolor=red]{->}(-0.416667,1)(-3.5,-2.7)\n              \\psline[linewidth=2pt,linecolor=orange]{->}(0.46429,1)(-3.5,-2.7)\n              \\psline[linewidth=1pt,linecolor=yellow]{->}(1.5,1)(-3.5,-2.7)\n              \\psline[linewidth=3pt,linecolor=red]{->}(-0.833333,0.5)(-3.5,-2.7)\n              \\psline[linewidth=3pt,linecolor=orange]{->}(-0.071429,0.5)(-3.5,-2.7)\n              \\psline[linewidth=2pt,linecolor=yellow]{->}(0.82432,0.5)(-3.5,-2.7)\n              \\psline[linewidth=1pt,linecolor=green]{->}(2,0.5)(-3.5,-2.7)\n              \\psline[linewidth=3pt,linecolor=orange]{->}(-0.60714,0)(-3.5,-2.7)\n              \\psline[linewidth=3pt,linecolor=yellow]{->}(0.14865,0)(-3.5,-2.7)\n              \\psline[linewidth=2pt,linecolor=green]{->}(1.14063,0)(-3.5,-2.7)\n              \\psline[linewidth=1pt,linecolor=sunyelloworange](-6,1.5)(1,1.5)\n              \\psline[linewidth=1pt,linecolor=sunyelloworange](-6,1)(1.5,1)\n              \\psline[linewidth=1pt,linecolor=sunyelloworange](-6,0.5)(2,0.5)\n              \\psline[linewidth=1pt,linecolor=sunyelloworange](-6,0)(1.5,0)\n              \\psset{linecolor=black}\n              \\rput(-3.6,-2.97){\\PHchild}\n              \\pscircle*[linecolor=sunyelloworange](-6,0.75){1.5}\n            \\end{pspicture*}\n          </latex-image>\n        </image>\n      </sidebyside>\n    </figure> -->\n  </subsection>\n\n  <subsection>\n  <title>Images and Diagrams from Asymptote</title>\n    <sidebyside margins=\"0%\" widths=\"30% 30% 30%%\" valign=\"middle\">\n\n    <figure>\n      <caption>Canada</caption>\n      <image xml:id=\"cflag\" archive=\"asy\">\n        <shortdescription>Canadian flag</shortdescription>\n        <asymptote>\n        size(4cm,6cm);\n        pen canadared=rgb(235/256,45/256,55/256);\n        real flagwidth=4, flagheight=2;\n        path flag_outline=scale(flagwidth,flagheight)*unitsquare;\n        path  cbar1=scale(1,2)*unitsquare, cbar2=shift(3,0)*cbar1;\n        path mapleleafleft=\n        (0,-102) --(-5,-102)--(-2,-56) {dir(87)}..{dir(190)}\n        (-8,-53) --(-51,-61)--(-45,-45){dir(70)}..{dir(141)}\n        (-46,-41)--(-94,-3) --(-82,1)  {dir(25)}..{dir(108)}\n        (-81,6)  --(-90,34) --(-63,29) {dir(348)}..{dir(67)}\n        (-59,30) --(-54,43) --(-33,20) {dir(313)}..{dir(101)}\n        (-27,23) --(-38,76) --(-21,62) {dir(330)}..{dir(63)}\n        (-16,67) --(0,100);\n        path mapleleafright=reflect((0,0),(0,1))*reverse(mapleleafleft);\n        path mapleleaf=mapleleafleft--mapleleafright--cycle;\n        filldraw(flag_outline,white,black);\n        fill(cbar1,canadared);\n        fill(cbar2,canadared);\n        fill(shift(2,1)*scale(.008)*mapleleaf,canadared);\n        draw(flag_outline);\n        </asymptote>\n      </image>\n    </figure>\n\n    <figure>\n      <caption>European Union</caption>\n      <image xml:id=\"eflag\" archive=\"asy\">\n        <shortdescription>European Union flag</shortdescription>\n        <asymptote>\n        size(4cm,6cm);\n        pen euflagblue=rgb(31/256,68/256,186/256);\n        pen euflagyellow=rgb(254/256,203/256,11/256);\n        real flagheight=2.0, flagwidth=3;\n        path flag_outline=shift(-flagwidth/2,-flagheight/2)*scale(flagwidth,flagheight)*unitsquare;\n        filldraw(flag_outline,euflagblue);\n        path unitstar=dir(90)--dir(234)--dir(18)--dir(162)--dir(306)--cycle;\n        path star=scale(1/9)*unitstar;\n        for(int k: sequence(12)) {fill(shift(2/3*dir(k*30))*star,euflagyellow);}\n        </asymptote>\n      </image>\n    </figure>\n\n    <figure>\n      <caption>United States</caption>\n      <image xml:id=\"usflag\" archive=\"asy\">\n        <shortdescription>American flag</shortdescription>\n        <asymptote>\n        size(4cm,6cm);\n        pen usflagred=rgb(178/256,34/256,52/256);\n        pen usflagblue=rgb(60/256,59/256,110/256);\n        currentpen=linewidth(0.2pt);\n        real flagheight=2.0, flagwidth=3.8,\n             unionheight=7/13*flagheight, unionwidth=2/5*flagwidth;\n        path flag_outline=scale(flagwidth,flagheight)*unitsquare;\n        path union_outline=scale(unionwidth,unionheight)*unitsquare;\n        path stripe=scale(flagwidth,1/13*flagheight)*unitsquare;\n        path unitstar=dir(90)--dir(234)--dir(18)--dir(162)--dir(306)--cycle;\n        path star=scale(0.0616)*unitstar;\n        pair union_origin=(0,6/13*flagheight);\n        real starhshift=unionwidth/12, starvshift=unionheight/10;\n        filldraw(flag_outline,white,black);\n        for (int k: sequence(13))\n           if (k%2==0) fill(shift(0,k/13*flagheight)*stripe,usflagred);\n        fill(shift(union_origin)*union_outline, usflagblue);\n        for (int i: sequence(1,11))\n           for (int j: sequence(1,9))\n              if ((i+j)%2==0)\n                 fill(shift(union_origin+(i*starhshift,j*starvshift))*star,white);\n        draw(flag_outline);\n        </asymptote>\n      </image>\n    </figure>\n    </sidebyside>\n\n\n    <figure>\n      <caption>Area under the curve <m>f(x)=e^{-x^2}</m></caption>\n      <image xml:id=\"AreaUnderCurve\" archive=\"asy\" width=\"70%\">\n        <shortdescription>\n          graphic showing the area under the plot of the function e^(-x^2)\n        </shortdescription>\n        <asymptote>\n        import graph;\n        size (3 inch,0);\n        real f(real x) {return exp(-x^2);}\n        real xmin=-2, xmax=2;\n        real ymin=-.3, ymax=1.3;\n        path g=graph(f,xmin,xmax, operator ..);\n        path h=(xmax,f(xmax))--(xmax,0)--(xmin,0);\n        fill(g--h--cycle,lightyellow);\n        draw(g);\n        label(\"$f(x)=e^{-x^2}$\", (xmin,.7),.5*N);\n        draw((xmin,.7){SSE}..{SE}(-.8,f(-.8)),Arrow);\n        label(\"Area $=\\sqrt\\pi$\",(xmax,.7),.5*N);\n        draw((xmax,.7){S}..{W}(.3,.3),Arrow);\n        draw((xmin,0)--(xmax,0));\n        draw((0,ymin)--(0,ymax));\n        </asymptote>\n      </image>\n    </figure>\n\n    <figure>\n      <caption>Five set Venn diagram using ellipses</caption>\n      <image xml:id=\"FiveVenn\" archive=\"asy\" width=\"50%\">\n        <shortdescription>Venn diagram with five sets using ellipses</shortdescription>\n        <asymptote>\n        size(6cm,5cm);\n        path [] P ;\n        path Ellipse = shift(1.2,.2)*scale(3.25,1.5)*unitcircle;\n        pen [] Colourpen = {\n           rgb(.45,.05,.05), rgb(.05,.45,.05), rgb(.05,.05,.40),\n           rgb(.30,.30,0), rgb(.30,0,.30)\n           };\n        picture pic;\n        for (int k: sequence(5)) {\n           P[k]=rotate(k*72)*Ellipse;\n           fill(P[k],Colourpen[k]);\n           for (int l: sequence(k)) {\n              fill(pic, P[k], Colourpen[k]+Colourpen[l]);\n              clip(pic,P[l]);\n              add(pic);\n              for (int m: sequence(l)) {\n                 fill(pic, P[k], Colourpen[k]+Colourpen[l]+Colourpen[m]);\n                 clip(pic,P[l]); clip(pic,P[m]);\n                 add(pic);\n                 for (int n: sequence(m)) {\n                    fill(pic, P[k], Colourpen[k]+Colourpen[l]+Colourpen[m]+Colourpen[n]);\n                    clip(pic,P[l]); clip(pic,P[m]); clip(pic,P[n]);\n                    add(pic);\n                 }\n              }\n           }\n\n        }\n        fill(pic, P[0], Colourpen[0]+Colourpen[1]+Colourpen[2]+Colourpen[3]+Colourpen[4]);\n        for (int k: sequence(5)) {clip(pic,P[k]);}\n        for (int k: sequence(5)) {draw(P[k],linewidth(0.4));}\n        add(pic);\n        </asymptote>\n      </image>\n    </figure>\n\n    <figure>\n      <caption>\n      Rotatable\n      <url href=\"https://pretextbook.org/examples/sample-article/annotated/graphics.html#graphics-asymptote-webgl\" visual=\"pretextbook.org/examples/sample-article/annotated/graphics.html#graphics-asymptote-webgl\"/>\n      Deathstar</caption>\n      <image xml:id=\"Deathstar\" archive=\"asy\" width=\"70%\">\n        <shortdescription>three-dimensional graphic of stellated icosahedron</shortdescription>\n        <asymptote>\n        size (3 inch,0);\n        import three ;\n        currentprojection = perspective (21,25,15);\n        currentlight = White;\n        real phi = (1+ sqrt (5))/2;\n        // Vertices of the icosahedron are of the form\n        // (0, \\pm 1, \\pm\\ phi ), (\\ pm\\phi , 0, \\pm 1),\n        // (\\ pm 1, \\pm\\phi , 0)\n        triple [] Pts = {\n          (0,1,phi), (0,-1,phi), (phi,0,1),\n          (1,phi,0), (-1,phi,0), (-phi,0,1),\n          (phi,0,-1), (0,1,-phi), (-phi,0,-1),\n          (-1,-phi,0), (1,-phi,0), (0,-1,-phi)\n          };\n        // Faces listed as triples (i,j,k) corresponding\n        // to the face through Pts [i], Pts [j] and Pts [k].\n        triple [] faces = {\n          (0,1,2), (0,2,3), (0,3,4), (0,4,5), (0,5,1),\n          (11,6,7), (11,7,8), (11,8,9), (11,9,10), (11,10,6),\n          (10,1,2), (6,2,3), (7,3,4), (8,4,5), (9,5,1),\n          (3,6,7), (4,7,8), (5,8,9), (1,9,10), (2,10,6)\n          };\n        for(triple T: Pts) draw(shift(T)*scale3(.08)*unitsphere,lightyellow);\n        real t =2.5; // Scaling for stellation height\n        // Function to compute the stellation point\n        triple stell_point (triple u, triple v, triple w) {return t/3*( u+v+w);}\n        void stellate ( triple Face ) {\n          int i= round ( Face .x),\n          j= round ( Face .y),\n          k= round ( Face .z);\n          triple S= stell_point ( Pts [i], Pts [j], Pts [k ]);\n          draw ( shift (S)* scale3 (.08)* unitsphere , yellow );\n          draw (S--Pts[i], red );\n          draw (S--Pts[j], red );\n          draw (S--Pts[k], red );\n          draw ( surface (S-- Pts [i]-- Pts [j]-- cycle ), lightgreen );\n          draw ( surface (S-- Pts [i]-- Pts [k]-- cycle ), lightgreen );\n          draw ( surface (S-- Pts [j]-- Pts [k]-- cycle ), lightgreen );\n          draw (Pts[i]--Pts[j]--Pts[k]--cycle, red );\n          }\n        for ( triple Face : faces ) stellate ( Face );\n        </asymptote>\n      </image>\n    </figure>\n  </subsection>\n</section>\n"
  },
  {
    "path": "examples/showcase/source/mathematics.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2019 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<section xml:id=\"mathematics\">\n  <title>Mathematics</title>\n\n  <subsection xml:id=\"subsection-the-quadratic-formula\">\n    <title>The Quadratic Formula</title>\n\n    <p>\n      There is a derivation of the quadratic formula that avoids using fractions\n      until the very end. Suppose that we have an equation <m>ax^2+bx+c=0</m>,\n      where <m>a\\neq0</m>. Since <m>4a</m> is also not equal to <m>0</m>,\n      we may multiply each side of the equation by <m>4a</m> and not lose any information:\n      <idx><h>mathematics</h><h>intertext</h></idx>\n      <idx><h>mathematics</h><h>aligned equations</h></idx>\n      <md>\n        <mrow>4a^2x^2+4abx+4ac\\amp=0</mrow>\n        <intertext>Subtract <m>4ac</m> from each side:</intertext>\n        <mrow>4a^2x^2+4abx\\amp=-4ac</mrow>\n        <intertext>Complete the square on the left side by adding <m>b^2</m> to each side:</intertext>\n        <mrow>4a^2x^2+4abx+b^2\\amp=b^2-4ac</mrow>\n        <mrow>(2ax+b)^2\\amp=b^2-4ac</mrow>\n        <mrow>\\lvert 2ax+b\\rvert\\amp=\\sqrt{b^2-4ac}</mrow>\n        <mrow>2ax+b\\amp=\\pm\\sqrt{b^2-4ac}</mrow>\n        <mrow>2ax\\amp=-b\\pm\\sqrt{b^2-4ac}</mrow>\n        <intertext>Since <m>a\\neq0</m>, we may divide by <m>2a</m> on each side:</intertext>\n        <mrow>x\\amp=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}</mrow>\n      </md>\n      And this is the famous quadratic formula.\n    </p>\n  </subsection>\n\n  <subsection>\n    <title>Some Amusing Identities</title>\n\n    <p>\n      These equations are amusing, although maybe only to mathematicians. Largely taken from\n      <url href=\"https://math.stackexchange.com/questions/505367/surprising-identities-equations\" visual=\"math.stackexchange.com/questions/505367/surprising-identities-equations\">math.stackexchange.com</url>.\n      <idx><h>mathematics</h><h>displayed equations</h></idx>\n      <md>\n        \\sqrt[\\sqrt{2}]{2}=\\sqrt{2}^{\\sqrt{2}}\n      </md>\n      <md>\n        2592=2^59^2\n      </md>\n      <md>\n        \\sqrt{2025}=20+25\n      </md>\n      <md>\n        \\sum_{n=1}^{\\infty}\\frac{1}{n^n}=\\int_{0}^1\\frac{1}{x^x}\\,dx\n      </md>\n      <md>\n        3^3 + 4^4 + 3^3 + 5^5 = 3435\n      </md>\n      <md>\n        \\int_{-\\infty}^{\\infty}\\frac{\\sin x}{x}\\,dx=\\int_{-\\infty}^{\\infty}\\frac{\\sin^2 x}{x^2}\\,dx\n      </md>\n      <md>\n        \\log(1+2+3)=\\log(1)+\\log(2)+\\log(3)\n      </md>\n      <md>\n        \\int_{0}^{\\infty}\\frac1{1+x^2}\\frac1{1+x^{\\pi}}\\,dx=\\int_{0}^{\\infty}\\frac1{1+x^2}\\frac1{1+x^e}\\,dx\n      </md>\n    </p>\n  </subsection>\n\n</section>\n"
  },
  {
    "path": "examples/showcase/source/pretext-showcase.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2019 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n  <docinfo>\n    <brandlogo url=\"https://pretextbook.org\" source=\"ptx-logo.png\" />\n\n    <images>\n      <archive>eps pdf png svg tex</archive>\n    </images>\n\n    <macros>\n      \\newcommand{\\order}[1]{\\left\\lvert#1\\right\\rvert}\n    </macros>\n\n    <latex-image-preamble>\n      \\usepackage{tikz}\n      \\usepackage{pgfplots}\n      \\usetikzlibrary{positioning} % for worksheet\n      \\usepackage{pstricks}\n      \\usepackage{phaistos}\n      \\usepackage{xcolor}\n    </latex-image-preamble>\n\n    <initialism>PTXSC</initialism>\n\n    <document-id>pretext-SC</document-id>\n\n    <html>\n      <favicon/>\n    </html>\n\n    <rename element=\"fact\" xml:lang=\"en-US\">Self Evident Fact</rename>\n\n  </docinfo>\n\n  <article xml:id=\"pretext-showcase\">\n    <title><pretext/> Showcase</title>\n\n    <frontmatter xml:id=\"frontmatter\">\n      <bibinfo>\n        <author>\n          <personname>Many Contributors</personname>\n          <department>Some From Academic Departments</department>\n          <institution>\n            <line>From Many Institutions</line>\n            <line>In Many Locations</line>\n          </institution>\n          <email>beezer@pugetsound.edu</email>\n        </author>\n\n        <date><today /></date>\n      </bibinfo>\n\n      <titlepage>\n        <titlepage-items/>\n      </titlepage>\n\n      <abstract>\n        <p>\n          This is a showcase of <pretext/> features.\n          It is meant to be viewed in multiple output forms (HTML, PDF)\n          to demonstrate what is possible from <pretext/> source.\n        </p>\n      </abstract>\n    </frontmatter>\n\n    <xi:include href=\"mathematics.ptx\" />\n    <xi:include href=\"environments.ptx\" />\n    <xi:include href=\"latex-image.ptx\" />\n    <xi:include href=\"exercises.ptx\" />\n    <xi:include href=\"worksheets.ptx\" />\n    <xi:include href=\"webwork.ptx\" />\n\n    <backmatter>\n      <index>\n        <title>Index</title>\n\n          <p>\n            Entries are alphabetized word-by-word, not letter-by-letter.\n            Topics indexed are <pretext/> features, not any actual content.\n          </p>\n\n        <index-list />\n      </index>\n\n      <colophon>\n        <p>\n          This article was authored in, and produced with, <pretext/>.\n          It is typeset with the Latin Modern font.\n        </p>\n      </colophon>\n    </backmatter>\n\n  </article>\n\n</pretext>\n"
  },
  {
    "path": "examples/showcase/source/webwork.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2019 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<section xml:id=\"webwork\">\n  <title><webwork/></title>\n\n  <p>\n    These exercises demonstrate some <webwork/> features.\n  </p>\n  <!-- TODO: Add an array answer once the current WW distribution is returning PTX content for that. -->\n\n  <exercise label=\"answer-type-variety\">\n    <title>Answer Type Variety</title>\n    <idx><h><webwork/></h><h>answer types</h></idx>\n    <introduction>\n      <p>\n        This problem demonstrates that <webwork/> can process many kinds of answers.\n      </p>\n    </introduction>\n    <webwork>\n      <pg-code>\n        Context(\"Numeric\");\n        $f = Formula(\"sqrt(x)\");\n        $derivative = Formula(\"1/(2sqrt(x))\");\n        $popup = PopUp(['?','power','exponential','linear','quadratic'],1);\n        $radio = RadioButtons([\n          'It shares ancestry with \"radius\", as in the radius of a circle.',\n          'It shares ancestry with \"radish\", a vegetable.',\n          'It shares ancestry with \"radler\", a mixture of beer and grapefruit soda.',\n        ],1);\n        Context(\"LimitedRadical\");\n        $a = Formula(\"2sqrt(3)\");\n        Context(\"LimitedNumeric\");\n        $b = Real(sqrt(12));\n        Context(\"Interval\");\n        $domain = Interval(\"[0,inf)\");\n        Context(\"Point\");\n        $point = Point(\"(4,2)\");\n        Context(\"RestrictedDomains\");\n        $restricted = Formula(\"x, x >= 0\");\n      </pg-code>\n      <statement>\n        <p>\n          Consider the function <m>f</m> defined by <m>f(x)=<var name=\"$f\"/></m>.\n          <ol>\n            <li>\n              <p>\n                The exact value of <m>f(12)</m> is <var name=\"$a\" width=\"10\"/>\n                and a decimal approximation for this is <var name=\"$b\" width=\"10\"/>.\n              </p>\n            </li>\n            <li>\n              <p>\n                The domain of this function, in interval notation, is <var name=\"$domain\" width=\"10\"/>.\n              </p>\n            </li>\n            <li>\n              <p>\n                The graph of <m>y=<var name=\"$f\"/></m> intersects the graph of <m>y=6-x</m> at <var name=\"$point\" width=\"10\"/>.\n              </p>\n            </li>\n            <li>\n              <p>\n                <m>\\frac{d}{dx}<var name=\"$f\"/>={}</m> <var name=\"$derivative\" width=\"10\"/>.\n              </p>\n            </li>\n            <li>\n              <p>\n                The formula for <m>f(x)^2</m>, including its restricted domain, is <var name=\"$restricted\" width=\"20\"/>.\n              </p>\n            </li>\n            <li>\n              <p>\n                <m>f</m> is a <var name=\"$popup\" form=\"popup\"/> function.\n              </p>\n            </li>\n            <li>\n              <p>\n                Which is true of the word <q>radical</q>?\n              </p>\n              <p>\n                <var name=\"$radio\" form=\"buttons\"/>\n              </p>\n            </li>\n          </ol>\n        </p>\n      </statement>\n    </webwork>\n  </exercise>\n\n  <exercise label=\"special-feedback\">\n    <title>Special Feedback</title>\n    <idx><h><webwork/></h><h>custom feedback</h></idx>\n    <idx><h><webwork/></h><h>hint</h></idx>\n    <idx><h><webwork/></h><h>solution</h></idx>\n    <introduction>\n      <p>\n        Try multiplying the exponents to see what feedback you get.\n        Also, try something no one should get credit for, like <c>x^2*x^5</c>.\n      </p>\n    </introduction>\n    <webwork>\n      <pg-code>\n        Context()->operators->set(\n        '*' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n        ' *' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n        '* ' => {class => 'bizarro::BOP::multiply', isCommand => 1},\n        );\n        $given = Formula(\"x^2 x^5\");\n        $answer = Formula(\"x^7\");\n        $special = Formula(\"x^10\");\n        $evaluator = $answer -> cmp(\n          checker=>sub{\n            my ( $correct, $student, $ansHash ) = @_;\n            Value::Error(\"When multiplying powers with the same base, you do not multiply the exponents.\") if ($special == $student);\n            return 0 if $ansHash->{isPreview} || $correct != $student;\n            Context()->flags->set(bizarroMul=>1);\n            delete $correct->{test_values}; delete $student->{test_values};\n            my $OK = ($correct == $student);\n            Context()->flags->set(bizarroMul=>0);\n            Value::Error(\n              \"Your answer is equivalent to the correct answer, but not in the expected form.\n              Maybe it needs to be simplified, factored, expanded, have its denominator rationalized, etc.\"\n            ) unless $OK;\n            return $OK;\n          }\n        );\n      </pg-code>\n      <statement>\n        <p>\n          Simplify the expression <m><var name=\"$given\"/></m>.\n        </p>\n        <p>\n          <var name=\"$evaluator\" width=\"10\"/>\n        </p>\n      </statement>\n      <hint>\n        <p>\n          Add the exponents.\n        </p>\n      </hint>\n      <solution>\n        <p>\n          To simplify the product of two powers of the same base,\n          add the exponents.\n          <md>\n            <mrow><var name=\"$given\"/>\\amp=x^{2+5}</mrow>\n            <mrow>\\amp=<var name=\"$answer\"/></mrow>\n          </md>\n        </p>\n      </solution>\n    </webwork>\n  </exercise>\n\n  <exercise label=\"string-answers\">\n    <title>String Answers</title>\n    <idx><h><webwork/></h><h>string answers</h></idx>\n    <idx><h><webwork/></h><h>algorithmic image</h></idx>\n    <introduction>\n      <p>\n        Spelling counts, but not capitalization or spaces.\n      </p>\n    </introduction>\n    <webwork>\n      <pg-code>\n        Context(\"ArbitraryString\");\n        $platypus = Compute(\"platypus\")->cmp(checker => sub {\n          my ($correct,$student,$ans) = @_;\n          $correct = $correct->value;\n          $student = $student->value;\n          $student = lc($student);\n          $student =~ s/ +/ /;\n          $student =~ s/^ //;\n          $student =~ s/ $//;\n          return ($student eq $correct);\n        });\n      </pg-code>\n      <statement>\n        <p>\n          This Venn Diagram groups animals by certain characteristics.\n        </p>\n        <image width=\"50%\">\n          <latex-image>\n            \\begin{tikzpicture}\n              \\draw[fill=red, opacity=0.5] (0,0) circle (2cm) node[below left=1.5cm, opacity=1] {Has a Bill} node[below left, opacity=1] {Duck};\n              \\draw[fill=green, opacity=0.5] (60:2cm) circle (2cm) node [above=2.1cm, opacity=1] {Is Venemous} node[above=0.5cm, opacity=1] {Jellyfish};\n              \\draw[fill=blue, opacity=0.5] (0:2cm) circle (2cm) node [below right=1.5cm, opacity=1] {Has Fur} node[below right, opacity=1] {Beaver};\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n        <p>\n          Name an animal that belongs in the center region. Spelling counts!\n        </p>\n        <p>\n          <var name=\"$platypus\" width=\"30\"/>\n        </p>\n      </statement>\n    </webwork>\n  </exercise>\n\n  <exercise label=\"open-problem-library\">\n    <title>Open Problem Library</title>\n    <idx><h><webwork/></h><h>Open Problem Library</h></idx>\n    <introduction>\n      <p>\n        <webwork/> has an Open Problem Library with over 40,000 exercises.\n        One of them is this exercise, with file path\n        <url href=\"https://github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\" visual=\"github.com/openwebwork/webwork-open-problem-library/blob/master/OpenProblemLibrary/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\"><c>Library/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg</c></url>.\n      </p>\n    </introduction>\n    <webwork source=\"Library/PCC/BasicAlgebra/NumberBasics/FactorInteger10.pg\"/>\n  </exercise>\n\n  <exercise label=\"structured-with-tasks\">\n    <title>Structured with Tasks</title>\n    <idx><h><webwork/></h><h>tasks</h></idx>\n    <idx><h><webwork/></h><h>flexible answer syntax</h></idx>\n    <webwork>\n      <pg-code>\n        Context(\"Fraction\");\n        $quadratic = Formula(\"2 x^2 - 7 x - 15\")->reduce;\n        $x1 = Fraction(5,1);\n        $x2 = Fraction(-3,2);\n        Context()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n        Context(\"FiniteSolutionSets\");\n        $solutions = Formula(\"-3/2,5\");\n      </pg-code>\n      <introduction>\n        <p>\n          This problem has multiple parts that must be completed in order.\n          Try answering the second part with various things you might expect a user to enter.\n        </p>\n      </introduction>\n      <task>\n        <title>Identify Coefficients</title>\n        <statement>\n          <p>\n            Consider the equation\n            <md><var name=\"$quadratic\" /> = 0</md>\n            Identify the coefficients for the quadratic equation using the standard form from\n            <xref ref=\"subsection-the-quadratic-formula\" />.\n          </p>\n          <p>\n            <m>a=</m> <var name=\"2\" width=\"4\"/>,\n            <m>b=</m> <var name=\"-7\" width=\"4\"/>,\n            <m>c=</m> <var name=\"-15\" width=\"4\"/>\n          </p>\n        </statement>\n        <solution>\n          <p>\n            Take the coefficient of <m>x^2</m> for the value of <m>a</m>,\n            the coefficient of <m>x</m> for <m>b</m>, and the constant for <m>c</m>.\n            <em>In this case</em>, they are <m>a = 2</m>,\n            <m>b = -7</m>, <m>c = -15</m>.\n          </p>\n        </solution>\n      </task>\n      <task>\n        <title>Use the Quadratic Formula</title>\n        <statement>\n          <p>\n            Use the quadratic formula to find the solution set to\n            <md><var name=\"$quadratic\"/>=0</md>\n          </p>\n          <p>\n            <var name=\"$solutions\" width=\"30\"/>\n          </p>\n        </statement>\n        <solution>\n          <p>\n            Recall that the quadratic formula is given in <xref ref=\"subsection-the-quadratic-formula\" />.\n          </p>\n          <p>\n            You already identified <m>a = 2</m>, <m>b = -7</m>, and <m>c = -15</m>,\n            and the results from using these in the quadratic formula are <m>-\\frac{3}{2}</m> and <m>5</m>.\n          </p>\n        </solution>\n      </task>\n    </webwork>\n  </exercise>\n\n  <exercise label=\"units-in-answers\">\n    <title>Units in Answers</title>\n    <idx><h><webwork/></h><h>unit answers</h></idx>\n    <introduction>\n      <p>\n        The answers in this exercise require that units be used.\n      </p>\n    </introduction>\n    <webwork>\n      <pg-code>\n        $newUnits = [\n          {name=>'gallons',conversion=>{factor=>0.00378541,m=>3}},\n          {name=>'gallon',conversion=>{factor=>0.00378541,m=>3}},\n          {name=>'gal',conversion=>{factor=>0.00378541,m=>3}},\n        ];\n        Context()->flags->set(tolType=>'absolute',tolerance=>0.1);\n        $volume = NumberWithUnits(\"20/2.78 gal\", {newUnit=>$newUnits});\n        Context(\"Percent\");\n        Context()->flags->set(tolerance=>0.01);\n        $increase = Percent(352/278-1);\n        Context(\"Currency\");\n        $cost = Currency(3.52*1.028);\n      </pg-code>\n      <statement>\n        <p>\n          <ol>\n            <li>\n              <p>\n                The average cost of gasoline in the United States in 2010 was $2.78 per gallon.\n                How much gasoline would $20 get you in 2010, on average?\n              </p>\n              <p>\n                <var name=\"$volume\" width=\"10\"/>\n              </p>\n            </li>\n            <li>\n              <p>\n                In 2011, the average cost was $3.52 per gallon. What percent increase was that from 2010?\n              </p>\n              <p>\n                <var name=\"$increase\" width=\"10\"/>\n              </p>\n            </li>\n            <li>\n              <p>\n                In 2012, the cost had risen 2.8% from the 2011 cost.\n                What was the cost of a gallon of gasoline in 2012?\n              </p>\n              <p>\n                <var name=\"$cost\" width=\"10\"/>\n              </p>\n            </li>\n          </ol>\n        </p>\n      </statement>\n    </webwork>\n  </exercise>\n</section>\n"
  },
  {
    "path": "examples/showcase/source/worksheets.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- This file is part of the PreTeXt Showcase article. -->\n<!--                                                    -->\n<!-- Copyright (©) 2021 The PreTeXt Organization.       -->\n<!-- See the README file for contributing guidelines.   -->\n\n<section xml:id=\"worksheets\">\n  <title>Worksheets</title>\n\n  <worksheet>\n    <title>A Geometric Prelude</title>\n    <!-- <author>Dave Rosoff</author> -->\n    <objectives xml:id=\"objectives\">\n      <ul>\n        <li>Practice visualizing vector addition</li>\n        <li>Use vectors without explicit coordinates</li>\n      </ul>\n    </objectives>\n    <introduction>\n      <p>It was known to Euclid, and probably earlier, that the midpoints of the sides of any quadrilateral all lie in the same plane (even if the vertices of the quadrilateral do not). In fact, these midpoints are the vertices of a parallelogram, as pictured in <xref ref=\"figure-midpoints-of-quadrilateral\" text=\"type-global\"/>.</p>\n      <sidebyside width=\"30%\">\n        <figure xml:id=\"figure-midpoints-of-quadrilateral\">\n          <caption>The midpoints of the sides of a quadrilateral are the vertices of a parallelogram.</caption>\n          <image xml:id=\"worksheet-midpoints-of-quadrilateral\">\n            <latex-image>\n              \\begin{tikzpicture}[xscale=0.8, yscale=0.8]\n              \\draw[style={black, ultra thick}] (0,0) -- (5,0) -- (4,4) -- (2,5) -- (0,0);\n              \\draw[style={black, dashed, very thick}] (2.5, 0) -- (4.5, 2) -- (3, 4.5) -- (1, 2.5) -- (2.5, 0);\n              \\end{tikzpicture}\n            </latex-image>\n          </image>\n        </figure>\n        <figure xml:id=\"figure-triangle-cyclic-vectors\">\n          <caption>The sides of a triangle presented as vectors.</caption>\n          <image xml:id=\"worksheet-triangle-cyclic-vectors\">\n            <latex-image>\n              \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n              \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n              \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n              \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n              \\end{tikzpicture}\n            </latex-image>\n          </image>\n        </figure>\n        <figure xml:id=\"figure-triangle-cyclic-medians\">\n          <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n          <image xml:id=\"worksheet-triangle-cyclic-medians\" width=\"50%\">\n            <latex-image>\n              \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n              \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n              \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n              \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n              \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n              {$\\vec{M}_{1}$} -- (1.5,0);\n              \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n              {$\\vec{M}_{2}$} -- (2,1);\n              \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n              {$\\vec{M}_{3}$} -- (0.5,1);\n              \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n              \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n              \\end{tikzpicture}\n            </latex-image>\n          </image>\n        </figure>\n      </sidebyside>\n      <p>In this exercise, we'll use vectors to show that the medians of any triangle (<xref ref=\"figure-triangle-cyclic-vectors\" text=\"type-global\"/>) intersect at a point. Recall that medians are the lines connecting the vertices of the triangle to the midpoints of their opposite edges, as in the figure. We'll do this in a few steps.</p>\n    </introduction>\n\n    <page>\n      <exercise xml:id=\"ex-cyclic\" workspace=\"4in\">\n        <statement>\n          <p>What is the value of <m>\\vec{A} + \\vec{B} + \\vec{C}</m>?</p>\n        </statement>\n      </exercise>\n    </page>\n\n    <page>\n      <p><xref ref=\"figure-triangle-cyclic-medians\" text=\"type-global\"/> from the previous page is reproduced for your convenience.</p>\n      <figure xml:id=\"figure-triangle-cyclic-medians-copy\">\n        <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n        <image xml:id=\"worksheet-triangle-cyclic-medians-copy\" width=\"50%\">\n          <latex-image>\n            \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n            \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n            \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n            \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n            \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n            {$\\vec{M}_{1}$} -- (1.5,0);\n            \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n            {$\\vec{M}_{2}$} -- (2,1);\n            \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n            {$\\vec{M}_{3}$} -- (0.5,1);\n            \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n            \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n      </figure>\n      <sidebyside margins=\"0%\" widths=\"30% 60%\" valign=\"top\">\n        <exercise xml:id=\"exercise-vector-addition\" workspace=\"4.5in\">\n          <statement>\n            <p>Show that <m>\\vec{M}_{1} + \\vec{M}_{2} + \\vec{M}_{3} = 0</m>.</p>\n          </statement>\n          <hint>\n            <p>Use <xref ref=\"ex-cyclic\" text=\"type-global\"/>.</p>\n          </hint>\n        </exercise>\n        <exercise workspace=\"2in\">\n          <statement>\n            <p>To show that the point <m>P</m> exists (as the common intersection of the <m>\\vec{M}_{i}</m>), show that <md>\n            \\vec{A} + \\frac{2}{3} \\vec{M}_{3} = \\frac{2}{3} \\vec{M}_{2} = <fillin characters=\"10\"/>\n            </md>.</p>\n          </statement>\n        </exercise>\n      </sidebyside>\n      <exercise workspace=\"2.54cm\">\n        <p>If you have time, try to devise a vector proof of Euclid's result presented at the beginning of the workshop. Recall that a <term>parallelogram</term> is a four-sided polygon whose opposite sides are parallel.</p>\n      </exercise>\n    </page>\n\n    <conclusion>\n      <title>Wrap-up</title>\n      <p>It's possible to do interesting things with vector arithmetic in a coordinate-free way: we didn't specify an origin, or any entries of any vectors in the examples.</p>\n    </conclusion>\n  </worksheet>\n</section>\n"
  },
  {
    "path": "examples/stack/README.md",
    "content": "# STACK examples\n\nThese examples demonstrate how to author, and process, [STACK](https://stack-assessment.org/) problems for inclusion in a [PreTeXt](https://pretextbook.org) document.\n\nThe process is more involved when your document includes a STACK problem, and requires the support of a server with the STACK API runnin both for one-off generation of a static document, and for ongoing support of students' interactions with dynamic materials.\n\n* The example scripts call the public STACK API server at [https://stack-api.maths.ed.ac.uk/](https://stack-api.maths.ed.ac.uk/)  This server is intended for demonstration and testing only.\n"
  },
  {
    "path": "examples/stack/minimal/assets/stack/01_integration_with_feedback.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<quiz>\n<!-- question: 17332  -->\n  <question type=\"stack\">\n    <name>\n      <text>Integration</text>\n    </name>\n    <questiontext format=\"html\">\n      <text><![CDATA[<p>Find \\[ \\int {@p@} d{@v@}\\] [[input:ans1]] [[validation:ans1]]</p>]]></text>\n    </questiontext>\n    <generalfeedback format=\"html\">\n      <text><![CDATA[<p>We can either do this question by inspection (i.e. spot the answer) or in a more formal manner by using the substitution \\[ u = ({@v@}-{@a@}).\\] Then, since \\(\\frac{d}{d{@v@}}u=1\\) we have \\[ \\int {@p@} d{@v@} = \\int u^{@n@} du = \\frac{u^{@n+1@}}{@n+1@}+c = {@ta@}+c.\\]</p>]]></text>\n    </generalfeedback>\n    <defaultgrade>1</defaultgrade>\n    <penalty>0.1</penalty>\n    <hidden>0</hidden>\n    <idnumber></idnumber>\n    <stackversion>\n      <text>2025030700</text>\n    </stackversion>\n    <questionvariables>\n      <text>n:rand(5)+3;\n a:rand(5)+3;\n v:x\n p:(v-a)^n;\n ta:(v-a)^(n+1)/(n+1);</text>\n    </questionvariables>\n    <specificfeedback format=\"html\">\n      <text><![CDATA[<p>[[feedback:prt1]]</p>]]></text>\n    </specificfeedback>\n    <questionnote format=\"moodle_auto_format\">\n      <text>\\(\\int {@p@} d{@v@} = {@ta@}+c\\)</text>\n    </questionnote>\n    <questiondescription format=\"moodle_auto_format\">\n      <text></text>\n    </questiondescription>\n    <questionsimplify>1</questionsimplify>\n    <assumepositive>0</assumepositive>\n    <assumereal>0</assumereal>\n    <prtcorrect format=\"html\">\n      <text><![CDATA[Correct answer, well done.]]></text>\n    </prtcorrect>\n    <prtpartiallycorrect format=\"html\">\n      <text><![CDATA[Your answer is partially correct.]]></text>\n    </prtpartiallycorrect>\n    <prtincorrect format=\"html\">\n      <text><![CDATA[Incorrect answer.]]></text>\n    </prtincorrect>\n    <decimals>.</decimals>\n    <scientificnotation>*10</scientificnotation>\n    <multiplicationsign>dot</multiplicationsign>\n    <sqrtsign>1</sqrtsign>\n    <complexno>i</complexno>\n    <inversetrig>cos-1</inversetrig>\n    <logicsymbol>lang</logicsymbol>\n    <matrixparens>[</matrixparens>\n    <variantsselectionseed></variantsselectionseed>\n    <input>\n      <name>ans1</name>\n      <type>algebraic</type>\n      <tans>ta+c</tans>\n      <boxsize>20</boxsize>\n      <strictsyntax>1</strictsyntax>\n      <insertstars>0</insertstars>\n      <syntaxhint></syntaxhint>\n      <syntaxattribute>0</syntaxattribute>\n      <forbidwords>int</forbidwords>\n      <allowwords></allowwords>\n      <forbidfloat>1</forbidfloat>\n      <requirelowestterms>1</requirelowestterms>\n      <checkanswertype>1</checkanswertype>\n      <mustverify>1</mustverify>\n      <showvalidation>1</showvalidation>\n      <options></options>\n    </input>\n    <prt>\n      <name>prt1</name>\n      <value>1.0000000</value>\n      <autosimplify>1</autosimplify>\n      <feedbackstyle>1</feedbackstyle>\n      <feedbackvariables>\n        <text></text>\n      </feedbackvariables>\n      <node>\n        <name>0</name>\n        <description></description>\n        <answertest>Int</answertest>\n        <sans>ans1</sans>\n        <tans>ta</tans>\n        <testoptions>v</testoptions>\n        <quiet>0</quiet>\n        <truescoremode>=</truescoremode>\n        <truescore>1</truescore>\n        <truepenalty></truepenalty>\n        <truenextnode>-1</truenextnode>\n        <trueanswernote>1-0-T </trueanswernote>\n        <truefeedback format=\"html\">\n          <text></text>\n        </truefeedback>\n        <falsescoremode>=</falsescoremode>\n        <falsescore>0</falsescore>\n        <falsepenalty></falsepenalty>\n        <falsenextnode>-1</falsenextnode>\n        <falseanswernote>1-0-F </falseanswernote>\n        <falsefeedback format=\"html\">\n          <text></text>\n        </falsefeedback>\n      </node>\n    </prt>\n    <deployedseed>1001758021</deployedseed>\n    <deployedseed>165520961</deployedseed>\n    <deployedseed>1575780430</deployedseed>\n    <deployedseed>1893097548</deployedseed>\n    <deployedseed>196914510</deployedseed>\n    <deployedseed>119069312</deployedseed>\n    <deployedseed>2028726687</deployedseed>\n    <deployedseed>788370893</deployedseed>\n    <deployedseed>400217408</deployedseed>\n    <deployedseed>1304537090</deployedseed>\n    <deployedseed>1439331987</deployedseed>\n    <deployedseed>193373653</deployedseed>\n    <qtest>\n      <testcase>1</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ta+c</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>1.0000000</expectedscore>\n        <expectedpenalty>0.0000000</expectedpenalty>\n        <expectedanswernote>1-0-T</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>2</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ta</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>1-0-F</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>3</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ev(n*(v-a)^(n-1),simp)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>1-0-F</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>4</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>(v-a)^(n+1)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore>0.0000000</expectedscore>\n        <expectedpenalty>0.1000000</expectedpenalty>\n        <expectedanswernote>1-0-F</expectedanswernote>\n      </expected>\n    </qtest>\n    <qtest>\n      <testcase>5</testcase>\n      <description></description>\n      <testinput>\n        <name>ans1</name>\n        <value>ev(float(ta),simp)</value>\n      </testinput>\n      <expected>\n        <name>prt1</name>\n        <expectedscore></expectedscore>\n        <expectedpenalty></expectedpenalty>\n        <expectedanswernote>NULL</expectedanswernote>\n      </expected>\n    </qtest>\n  </question>\n\n</quiz>\n"
  },
  {
    "path": "examples/stack/minimal/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <target name=\"html\">\n      <format>html</format>\n      <source>source/main.ptx</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"latex\">\n      <format>latex</format>\n      <source>source/main.ptx</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/latex</output-dir>\n    </target>\n    <target name=\"pdf\">\n      <format>pdf</format>\n      <source>source/main.ptx</source>\n      <publication>publication/publication.ptx</publication>\n      <output-dir>output/pdf</output-dir>\n    </target>\n  </targets>\n  <executables>\n      <latex>latex</latex>\n      <pdflatex>pdflatex</pdflatex>\n      <xelatex>xelatex</xelatex>\n      <asy>asy</asy>\n      <sage>sage</sage>\n      <pdfpng>convert</pdfpng>\n      <pdfeps>pdftops</pdfeps>\n      <pdfcrop>pdf-crop-margins</pdfcrop>\n      <pageres>pageres</pageres>\n      <node>node</node>\n      <liblouis>file2brl</liblouis>\n    </executables>\n</project>\n"
  },
  {
    "path": "examples/stack/minimal/publication/publication.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <source>\n      <directories generated=\"generated\" external=\"../assets\"/>\n    </source>\n\n    <!-- This public server is for testing and demonstration only. -->\n    <stack server=\"https://stack-api.maths.ed.ac.uk\" />\n\n    <html>\n        <!-- Native search with Javascript. -->\n        <search variant=\"default\"/>\n        <!-- For this demonstration, we want all the problems dynamic. -->\n        <stack divisional=\"dynamic\"/>\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/stack/minimal/source/main.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- To process this file with PreTeXt-CLI do                                                     -->\n<!--                                                                                              -->\n<!-- (1) HTML:                                                                                    -->\n<!--     pretext build html                                                                       -->\n<!--                                                                                              -->\n<!-- (2) LaTeX:                                                                                   -->\n<!--     pretext build latex                                                                      -->\n<!--                                                                                              -->\n<!-- (3) PDF:                                                                                     -->\n<!--     pretext build pdf                                                                        -->\n\n\n<!-- To process this file with xsltproc do                                                        -->\n<!--                                                                                              -->\n<!-- (1) LaTeX/PDF:                                                                               -->\n<!--     xsltproc -o minimal.tex PATH_TO/mathbook/xsl/pretext-latex.xsl source/main.ptx           -->\n<!--     pdflatex minimal.tex                                                                     -->\n<!--     xelatex minimal.tex                                                                      -->\n<!--                                                                                              -->\n<!-- (2) HTML:                                                                                    -->\n<!--     xsltproc PATH_TO/mathbook/xsl/pretext-html.xsl source/main.ptx                           -->\n<!--     <browser>  minimal.html                                                                  -->\n<!--                                                                                              -->\n<!-- (3) CoCalc worksheet (parameter causes a single file for output)                             -->\n<!--     REMOVE the \"X\" in the double dash (which is not legal in an XML comment)                 -->\n<!--     xsltproc -X-stringparam chunk.level 0 PATH_TO/mathbook/xsl/pretext-smc.xsl source/main.ptx   -->\n<!--     <CoCalc> minimal.sagews                                                                  -->\n<!--                                                                                              -->\n<!-- (4) Sage doctesting                                                                          -->\n<!--     REMOVE the \"X\" in the double dash (which is not legal in an XML comment)                 -->\n<!--     xsltproc -X-stringparam chunk.level 0 PATH_TO/mathbook/xsl/pretext-sage-doctest.xsl source/main.ptx  -->\n<!--     <read further instructions in> minimal.py                                                -->\n\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <docinfo>\n        <macros>\n        \\newcommand{\\doubler}[1]{2#1}\n        </macros>\n    </docinfo>\n\n    <article xml:id=\"minimal\">\n        <title>A minimal article containing a STACK question</title>\n\n        <frontmatter>\n\n            <bibinfo>\n                <author>\n                    <personname>Chris Sangwin</personname>\n                    <institution>University of Edinburgh</institution>\n                </author>\n                <date><today /></date>\n            </bibinfo>\n\n            <abstract>\n                <p>This is a very short article, illustrating the use of STACK questions within PreTeXt.</p>\n            </abstract>\n\n        </frontmatter>\n\n        <introduction>\n            <p>This is a very short article, illustrating the use of STACK questions within PreTeXt.</p>\n        </introduction>\n\n        <section xml:id=\"section-stack\">\n            <title>STACK question</title>\n\n            <p>The following illustrated embedding a STACK question.</p>\n\n            <exercise>\n                <title>STACK integration question</title>\n\n                <introduction>\n                    <p>A test question. (2025-08-15: you may need to ask for a \"new\" question to make this render.)</p>\n                </introduction>\n\n                <!-- A @label is required, becomes a filename in output -->\n                <stack label=\"stack-integration\" source=\"stack/01_integration_with_feedback.xml\"/>\n            </exercise>\n\n        </section>\n\n    </article>\n\n</pretext>\n"
  },
  {
    "path": "examples/webwork/Makefile",
    "content": "## ********************************************************************* ##\n## Copyright 2015-7                                                      ##\n## Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             ##\n##                                                                       ##\n## This file is part of PreTeXt.                                         ##\n##                                                                       ##\n## PreTeXt is free software: you can redistribute it and/or modify       ##\n## it under the terms of the GNU General Public License as published by  ##\n## the Free Software Foundation, either version 2 or version 3 of the    ##\n## License (at your option).                                             ##\n##                                                                       ##\n## PreTeXt is distributed in the hope that it will be useful,            ##\n## but WITHOUT ANY WARRANTY; without even the implied warranty of        ##\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         ##\n## GNU General Public License for more details.                          ##\n##                                                                       ##\n## You should have received a copy of the GNU General Public License     ##\n## along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.       ##\n## ********************************************************************* ##\n\n#######################\n# DO NOT EDIT THIS FILE\n#######################\n\n#   1) Make a copy of Makefile.paths.original\n#      as Makefile.paths\n#   2) Edit Makefile.paths as directed there, possibly\n#      using Makefile.paths.example as an example\n#   3) This file (Makefile), Makefile.paths.original,\n#      and Makefile.paths.example are managed by version\n#      control and edits will conflict\n#   4) See updated history in Makefile.paths.original\n#      for changes, or follow the revision control history\n\n##############\n# Introduction\n##############\n\n# This is not a \"true\" makefile, since it does not\n# operate on dependencies.  It is more of a shell\n# script, sharing common configurations\n\n######################\n# System Prerequisites\n######################\n\n#   install         (system tool to make directories)\n#   jing-trang      (only for source validation)\n#   <helpers>       (PDF viewer, web browser, pager, Sage executable, etc)\n\n#####\n# Use\n#####\n\n#\tA) Change directory to the location of this file\n#\tB) At command line:  make <some-target>\n#    where <some-target> is one of the recipes below\n#    for example, sample-chapter-representations\n\n# The included file contains customized versions\n# of locations of the principal components of this\n# project and names of various helper executables\ninclude Makefile.paths\n\n# These paths are subdirectories of\n# the PreTeXt distribution\nPTXXSL = $(PTX)/xsl\nWWEXAMPLE = $(PTX)/examples/webwork\n\n# XML to apply templates to\nSMPC = $(WWEXAMPLE)/sample-chapter/sample-chapter.ptx\nMINI = $(WWEXAMPLE)/minimal/mini.xml\n\n# Publisher files\nSMPCPUB = $(WWEXAMPLE)/sample-chapter/publisher/publication.xml\nSMPRSPUB = $(WWEXAMPLE)/sample-chapter/publisher/publication-academy.xml\nMINIPUB = $(WWEXAMPLE)/minimal/publication.xml\n\n# These paths are subdirectories of\n# the scratch directory\nTEXOUT     = $(SCRATCH)/latex\nPDFOUT     = $(SCRATCH)/pdf\nIMGOUT     = $(SCRATCH)/images\nHTMLOUT    = $(SCRATCH)/html\nRSOUT      = $(SCRATCH)/runestone\nEPUBOUT    = $(SCRATCH)/epub\nPGOUT      = $(SCRATCH)/pg\n\n\n##################\n# Targets for make\n##################\n\n# Build representations first\n#   Then build PDF or Build HTML\n# Build PG (does not need representations)\n\n#########################################################################\n# Verbose Output\n# Applications of the pretext/pretext  script use extra-verbose output\n# via the  -vv  switch so that temporary directories are preserved for\n# testing purposes.This should not be taken as necessary or best\n# practice for a real PreTeXt project using WeBWorK problems.\n\n\n#########################################################################\n#  Construct macros file. This must be uploaded into the macros folder\n#  of the server's host course before building representations below.\n#  This file will be built inside a folder tree in my-generated/webwork/pg\n#  or if there is no generated folder, into the destination folder. The\n#  folder tree will be in the form PROJECT_TITLE/macros/INITIALISM.pl.\n#  If building representations locally, this must be run first and\n#  the macros file will be in the right place relative to the generated\n#  folder. There are no macros for the minimal example, so omitted.\n\nsample-chapter-macros:\n\tinstall -d $(PGOUT)/macros\n\tcd $(PGOUT)/macros; \\\n\t$(PTX)/pretext/pretext -v -c pg-macros -p $(SMPCPUB) $(SMPC)\n\n\n#########################################################################\n#  Extract webwork problems into a single XML file.\n#  Location is within generated folder (named in the publisher file),\n#  within \"webwork\" subfolder\n\nsample-chapter-representations:\n\t$(PTX)/pretext/pretext -v -c webwork -p $(SMPCPUB) $(SMPC)\n\nmini-representations:\n\t$(PTX)/pretext/pretext -v -c webwork -p $(MINIPUB) $(MINI)\n\n\n#########################################################################\n# PDF versions\n\nsample-chapter-pdf:\n\t-rm -r $(PDFOUT)\n\tinstall -d $(PDFOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f pdf -p $(SMPCPUB) -d $(PDFOUT) $(SMPC)\n\nmini-pdf:\n\t-rm -r $(PDFOUT)\n\tinstall -d $(PDFOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f pdf -p $(MINIPUB) -d $(PDFOUT) $(MINI)\n\n\n#########################################################################\n# TeX versions\n# use -x latex.fillin.style box for box answer blanks instead of underlines\n\nsample-chapter-latex:\n\t-rm -r $(TEXOUT)\n\tinstall -d $(TEXOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f latex -p $(SMPCPUB) -d $(TEXOUT) $(SMPC)\n\nmini-latex:\n\t-rm -r $(TEXOUT)\n\tinstall -d $(TEXOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f latex -p $(MINIPUB) -d $(TEXOUT) $(MINI)\n\n\n#########################################################################\n# HTML output\n# Note that for the sample chapter, first we make the latex-image svg.\n# We turn off dates in file headers, so when we use these for testing we\n# can get more accurate diffs. Dates are useful for single file output\n# (or at least less of an annoyance).  This should not be taken as necessary\n# or best practice for a real PreTeXt project using WeBWorK problems.\n\nsample-chapter-html:\n\t-rm -r $(WWEXAMPLE)/sample-chapter/my-generated/latex-image\n\t$(PTX)/pretext/pretext -vv -c latex-image -f svg -p $(SMPCPUB) $(SMPC)\n\t-rm -r $(HTMLOUT)\n\tinstall -d $(HTMLOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f html -p $(SMPCPUB) -x debug.datedfiles no -d $(HTMLOUT) $(SMPC); \\\n\nsample-chapter-runestone:\n\t-rm -r $(WWEXAMPLE)/sample-chapter/my-generated/latex-image\n\t$(PTX)/pretext/pretext -c latex-image -f svg -p $(SMPRSPUB) $(SMPC)\n\t-rm -r $(RSOUT)\n\tinstall -d $(RSOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f html -p $(SMPRSPUB) -x debug.datedfiles no -d $(RSOUT) $(SMPC); \\\n\nmini-html:\n\t-rm -r $(HTMLOUT)\n\tinstall -d $(HTMLOUT)\n\t$(PTX)/pretext/pretext -vv -c all -f html -p $(MINIPUB) -x debug.datedfiles no -d $(HTMLOUT) $(MINI); \\\n\n\n#########################################################################\n# PG output\n# Make an archive of webwork problem sets for each \"section\" (as specified\n# by chunk level) with set definition files, set header files, and problem\n# files in a file tree. Separate problem sets for inline and divisional\n# problems. This does not require having the representations file.\n# Adding a \"-z\" switch will create a \"tgz\" compressed archive\n\nsample-chapter-problem-sets:\n\tinstall -d $(PGOUT)\n\tcd $(PGOUT); \\\n\trm -r Integrating_WeBWorK_into_Textbooks; \\\n\t$(PTX)/pretext/pretext -v -c all -f webwork-sets -p $(SMPCPUB) $(SMPC)\n\nmini-problem-sets:\n\tinstall -d $(PGOUT)\n\tcd $(PGOUT); \\\n\trm -r WeBWorK_Minimal_Example; \\\n\t$(PTX)/pretext/pretext -v -c all -f webwork-sets -p $(MINIPUB) $(MINI)\n\n\n#########################################################################\n# Verify Source integrity\n# Leaves \"jingreport.txt\" in SCRATCH\n# Automatically invokes the \"less\" pager, could configure as $(PAGER)\n\nsample-chapter-check:\n\tinstall -d $(SCRATCH)\n\t-rm $(SCRATCH)/jingreport.txt\n\t-java -classpath $(JINGTRANG) -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration -jar $(JINGTRANG)/jing.jar $(PTX)/schema/pretext.rng $(SMPC) > $(SCRATCH)/jingreport.txt\n\tless $(SCRATCH)/jingreport.txt\n\nwebwork-mini-check:\n\tinstall -d $(SCRATCH)\n\t-rm $(SCRATCH)/jingreport.txt\n\t-java -classpath $(JINGTRANG) -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration -jar $(JINGTRANG)/jing.jar $(PTX)/schema/pretext.rng $(MINI) > $(SCRATCH)/jingreport.txt\n\tless $(SCRATCH)/jingreport.txt\n"
  },
  {
    "path": "examples/webwork/Makefile.paths.example",
    "content": "## ********************************************************************* ##\n## Copyright 2015-7                                                      ##\n## Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             ##\n##                                                                       ##\n## This file is part of PreTeXt.                                         ##\n##                                                                       ##\n## PreTeXt is free software: you can redistribute it and/or modify       ##\n## it under the terms of the GNU General Public License as published by  ##\n## the Free Software Foundation, either version 2 or version 3 of the    ##\n## License (at your option).                                             ##\n##                                                                       ##\n## PreTeXt is distributed in the hope that it will be useful,            ##\n## but WITHOUT ANY WARRANTY; without even the implied warranty of        ##\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         ##\n## GNU General Public License for more details.                          ##\n##                                                                       ##\n## You should have received a copy of the GNU General Public License     ##\n## along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.       ##\n## ********************************************************************* ##\n\n#######################\n# DO NOT EDIT THIS FILE\n#######################\n\n#   1) Do make a copy of Makefile.paths.original\n#      as Makefile.paths\n#   2) Edit Makefile.paths as directed there\n#   3) Makefile and this file (Makefile.paths.original)\n#      are managed by revision control and edits will conflict\n#   4) See updated history in Makefile.paths.original\n#      for changes, or follow the revision control history\n#   5) See Makefile.paths.example for guidance\n\n\n# Change History\n#     2021/11/27: Change MB to PTX\n#     2017/09/25: Local path for jing-trang\n#     2015/07/22: First release\n\n###########\n# Variables\n###########\n\n# Provide full paths for principal variables,\n# each without a trailing slash\n\n# PreTeXt distribution root\nPTX = /Users/alex.jordan/mathbook\n\n# Products are built in subdirectories\n# of a \"scratch\" directory\nSCRATCH = /Users/alex.jordan/scratch\n\n# Jing-Trang for RELAX-NG schema validation\nJINGTRANG = /Users/alex.jordan/jing-trang/build\n\n# These are executables to helper applications\n# Provide as much of a path as is needed\n\n# LaTeX engine, executable\n# xelatex is preferable, but pdflatex is another option\nENGINE = xelatex\n\n# Text file viewer (eg, DTD errors)\n# \"more\" or \"less\" are likely system utilities\nPAGER = less\n\n# HTML viewer  (eg \"open -a firefox\", \"open -a safari\", on Mac)\nHTMLVIEWER = firefox\n"
  },
  {
    "path": "examples/webwork/Makefile.paths.original",
    "content": "## ********************************************************************* ##\n## Copyright 2015-7                                                      ##\n## Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             ##\n##                                                                       ##\n## This file is part of PreTeXt.                                         ##\n##                                                                       ##\n## PreTeXt is free software: you can redistribute it and/or modify       ##\n## it under the terms of the GNU General Public License as published by  ##\n## the Free Software Foundation, either version 2 or version 3 of the    ##\n## License (at your option).                                             ##\n##                                                                       ##\n## PreTeXt is distributed in the hope that it will be useful,            ##\n## but WITHOUT ANY WARRANTY; without even the implied warranty of        ##\n## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         ##\n## GNU General Public License for more details.                          ##\n##                                                                       ##\n## You should have received a copy of the GNU General Public License     ##\n## along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.       ##\n## ********************************************************************* ##\n\n#######################\n# DO NOT EDIT THIS FILE\n#######################\n\n#   1) Do make a copy of Makefile.paths.original\n#      as Makefile.paths\n#   2) Edit Makefile.paths as directed there\n#   3) Makefile and this file (Makefile.paths.original)\n#      are managed by revision control and edits will conflict\n#   4) See updated history in Makefile.paths.original\n#      for changes, or follow the revision control history\n#   5) See Makefile.paths.example for guidance\n\n\n# Change History\n#     2021/11/27: Change MB to PTX\n#     2017/09/25: Local path for jing-trang\n#     2015/07/22: First release\n\n###########\n# Variables\n###########\n\n# Provide full paths for principal variables,\n# each without a trailing slash\n\n# PreTeXt distribution root\nPTX =\n\n# Products are built in subdirectories\n# of a \"scratch\" directory\nSCRATCH = \n\n# Jing-Trang for RELAX-NG schema validation\nJINGTRANG = \n\n# These are executables to helper applications\n# Provide as much of a path as is needed\n\n# LaTeX engine, executable\n# xelatex is preferable, but pdflatex is another option\nENGINE = xelatex\n\n# Text file viewer (eg, DTD errors)\n# \"more\" or \"less\" are likely system utilities\nPAGER = more\n\n# HTML viewer  (eg \"open -a firefox\", \"open -a safari\", on Mac)\nHTMLVIEWER = firefox\n"
  },
  {
    "path": "examples/webwork/README.md",
    "content": "# WeBWorK examples\n\nThese examples demonstrate how to author, and process, [WeBWorK](http://webwork.maa.org/) automated homework problems for inclusion in a [PreTeXt](https://pretextbook.org) document.\n\nBecause the process can be a bit more involved when your document includes a WW problem, we provide a makefile to process the examples and as concrete documentation of how to process your own document.\n\n* copy `Makefile.paths.original` and populate the variables as shown in the `.example` version\n* use the `make` command to build various outputs\n* read comments in `Makefile` to understand the various scenarios\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/add-integers.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-add-integers\" assembly-id=\"add-integers\">\n  <static seed=\"3\">\n    <statement><p>Compute the sum of <m>{3}</m> and <m>{1}\\text{:}</m></p>\n<p><m>{3} + {1} =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <hint><p>Add <m>{3}</m> and <m>{1}</m> together.</p>\n</hint>\n    <answer>\n      <p>\n        <m>4</m>\n      </p>\n    </answer>\n    <solution><p><m>{3} + {1} = {4}\\text{.}</m></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"WeBWorK_Minimal_Example/1-WeBWorK_Minimal_Section/1_1.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:25:22-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = Compute(random(1, 9, 1));\n$b = Compute(random(1, 9, 1));\n$c = $a + $b;\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5}\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\nAdd [`[$a]`] and [`[$b]`] together.\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/cylinder-volume.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-cylinder-volume\" assembly-id=\"cylinder-volume\">\n  <static seed=\"4\" source=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\">\n    <statement><p>A cylinder<rsq/>s base<rsq/>s radius is <m>{2\\ {\\rm m}}</m>, and its height is <m>{5\\ {\\rm m}}</m>.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/cylinder-volume-image-1.png\" width=\"40%\"/>\n<p><ol label=\"a.\">\n<li>\n<p>This cylinder<rsq/>s volume, in terms of <m>\\pi</m>, is <fillin characters=\"13\" name=\"AnSwEr0001\"/>.</p>\n</li>\n<li>\n<p>This cylinder<rsq/>s volume, rounded to the hundredth place, is <fillin characters=\"13\" name=\"AnSwEr0002\"/>.</p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>20\\pi\\ {\\rm m^{3}}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>62.83\\ {\\rm m^{3}}</m>\n      </p>\n    </answer>\n    <solution><p>We use <m>r</m> to represent the base<rsq/>s radius, and <m>h</m> to represent the cylinder<rsq/>s height.</p>\n<p>A cylinder<rsq/>s volume formula is <m>V= (\\text{base area}) \\cdot \\text{height}</m>. A cylinder<rsq/>s base is a circle, with its area formula <m>A = \\pi r^{2}</m>.</p>\n<p>Putting together these two formulas, we have a cylinder<rsq/>s volume formula:</p>\n<p><m>\\displaystyle{ V= \\pi r^{2} h }</m></p>\n<p>Throughout these computations, all quantities have units attached, and we only show them in the final step.</p>\n<p><ol label=\"a.\">\n<li>\n<p>Using the volume formula, we have:</p>\n<p><m>\\displaystyle{\\begin{aligned}\n      V \\amp  = \\pi r^{2} h \\\\\n        \\amp  = \\pi \\cdot 2^{2} \\cdot 5 \\\\\n        \\amp  = \\pi \\cdot 20 \\\\\n        \\amp  = 20 \\pi \\textrm{ m}^3\n      \\end{aligned}}</m></p>\n<p>Don<rsq/>t forget the volume unit <m>\\textrm{m}^3</m>.</p>\n</li>\n<li>\n<p>To find the decimal version, we replace <m>\\pi</m> with its decimal value, and we have:</p>\n<p><m>\\displaystyle{\\begin{aligned}[t]\n      V\\amp  = 20 \\pi \\\\\n       \\amp  \\approx 20 \\cdot 3.14\\ldots \\\\\n       \\amp  \\approx {62.83\\ {\\rm m^{3}}}\n     \\end{aligned}}</m></p>\n<p>Don<rsq/>t forget the volume unit <m>\\textrm{m}^3</m>.</p>\n</li>\n</ol></p>\n</solution>\n  </static>\n  <rendering-data sourceFilePath=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\" origin=\"webwork2\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg source=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\"/>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/pg/WeBWorK_Minimal_Example/1-WeBWorK_Minimal_Section/1_1.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:25:22-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = Compute(random(1, 9, 1));\n$b = Compute(random(1, 9, 1));\n$c = $a + $b;\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5}\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\nAdd [`[$a]`] and [`[$b]`] together.\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/pg/WeBWorK_Minimal_Example/1-WeBWorK_Minimal_Section/1_3.pg",
    "content": "## DESCRIPTION\n## Give a value for pi\n## ENDDESCRIPTION\n\n## KEYWORDS('template', 'pi')\n\n## DBsubject('Algebra')\n## DBchapter('Fundamentals')\n## DBsection('Real Numbers')\n## Date('')\n## Author('')\n## Institution('')\n\nDOCUMENT();\n\nloadMacros(\n    \"PGstandard.pl\",    # Standard macros for PG language\n    \"PGML.pl\",          # PGML markup and Math Objects\n    \"PGcourse.pl\",      # Customization file for the course\n);\n\n# Uncomment the following if you don't want to show which\n# answers are correct and which are incorrect\n#$showPartialCorrectAnswers = 0;\n\n$pi = Real(\"pi\");\n\nBEGIN_PGML\nEnter a value for [`\\pi`].\n\n[_]{$pi}{5}\nEND_PGML\n\nBEGIN_PGML_SOLUTION\nYou could type [|pi|]* or [|3.14|]*, or [|22/7|]*,\namong other options.\nEND_PGML_SOLUTION\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/pg/WeBWorK_Minimal_Example/def/set1-WeBWorK_Minimal_Section.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = WeBWorK_Minimal_Example/header/1-WeBWorK_Minimal_Section.pg\nscreenHeaderFile  = WeBWorK_Minimal_Example/header/1-WeBWorK_Minimal_Section.pg\ndescription       = WeBWorK Minimal Section\nproblemListV2\nproblem_start\nsource_file = WeBWorK_Minimal_Example/1-WeBWorK_Minimal_Section/1_1.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = WeBWorK_Minimal_Example/1-WeBWorK_Minimal_Section/1_3.pg\nproblem_id = 3\nproblem_end\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/pg/WeBWorK_Minimal_Example/header/1-WeBWorK_Minimal_Section.pg",
    "content": "# Header file for problem set 1-WeBWorK_Minimal_Section\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1 of WeBWorK Minimal Example.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/pg/WeBWorK_Minimal_Example/macros/WeBWorK_Minimal_Example.pl",
    "content": "#############################################################################\n# This macro library supports WeBWorK problems from the PreTeXt project named\n# WeBWorK Minimal Example\n#############################################################################\n"
  },
  {
    "path": "examples/webwork/minimal/generated/webwork/value-of-pi.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-value-of-pi\" assembly-id=\"value-of-pi\">\n  <static seed=\"5\">\n    <statement><p>Enter a value for <m>\\pi</m>.</p>\n<p><fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>3.14159</m>\n      </p>\n    </answer>\n    <solution><p>You could type <c>pi</c> or <c>3.14</c>, or <c>22/7</c>,\namong other options.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"WeBWorK_Minimal_Example/1-WeBWorK_Minimal_Section/1_3.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n## DESCRIPTION\n## Give a value for pi\n## ENDDESCRIPTION\n\n## KEYWORDS('template', 'pi')\n\n## DBsubject('Algebra')\n## DBchapter('Fundamentals')\n## DBsection('Real Numbers')\n## Date('')\n## Author('')\n## Institution('')\n\nDOCUMENT();\n\nloadMacros(\n    \"PGstandard.pl\",    # Standard macros for PG language\n    \"PGML.pl\",          # PGML markup and Math Objects\n    \"PGcourse.pl\",      # Customization file for the course\n);\n\n# Uncomment the following if you don't want to show which\n# answers are correct and which are incorrect\n#$showPartialCorrectAnswers = 0;\n\n$pi = Real(\"pi\");\n\nBEGIN_PGML\nEnter a value for [`\\pi`].\n\n[_]{$pi}{5}\nEND_PGML\n\nBEGIN_PGML_SOLUTION\nYou could type [|pi|]* or [|3.14|]*, or [|22/7|]*,\namong other options.\nEND_PGML_SOLUTION\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/minimal/mini.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- ********************************************************************* -->\n<!-- Copyright 2015-7                                                      -->\n<!-- Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             -->\n<!--                                                                       -->\n<!-- This file is part of PreTeXt.                                         -->\n<!--                                                                       -->\n<!-- PreTeXt is free software: you can redistribute it and/or modify       -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- PreTeXt is distributed in the hope that it will be useful,            -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.       -->\n<!-- ********************************************************************* -->\n\n\n<!-- This is a skeleton file to hold WeBWorK problems authored in PreTeXt. -->\n\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n  <article xml:id=\"webwork-mini\">\n    <title><webwork /> Minimal Example</title>\n    <frontmatter>\n      <bibinfo>\n        <author>\n          <personname>Jane Doe</personname>\n        </author>\n      </bibinfo>\n      <titlepage>\n        <titlepage-items/>\n      </titlepage>\n    </frontmatter>\n    <section>\n      <title><webwork /> Minimal Section</title>\n      <!-- An exercise \"generated\" from PTX source -->\n      <exercise label=\"add-integers\">\n        <webwork>\n          <pg-code>\n            $a = Compute(random(1, 9, 1));\n            $b = Compute(random(1, 9, 1));\n            $c = $a + $b;\n          </pg-code>\n          <statement>\n            <p>\n              Compute the sum of <m><var name=\"$a\" /></m> and <m><var name=\"$b\" /></m>:\n            </p>\n            <p>\n              <m><var name=\"$a\" /> + <var name=\"$b\" /> =</m> <var name=\"$c\" width=\"5\" />\n            </p>\n          </statement>\n          <hint>\n            <p>\n              Add <m><var name=\"$a\" /></m> and <m><var name=\"$b\" /></m> together.\n            </p>\n          </hint>\n          <solution>\n            <p>\n              <m><var name=\"$a\" /> + <var name=\"$b\" /> = <var name=\"$c\" /></m>.\n            </p>\n          </solution>\n        </webwork>\n      </exercise>\n      <!-- An exercise with source from a \"webwork2\" server           -->\n      <!-- The path is relative to the host course's templates folder -->\n      <exercise label=\"cylinder-volume\">\n        <webwork source=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\"/>\n      </exercise>\n      <!-- An exercise with source from a pg file. This is the default new problem file template -->\n      <!-- from a webwork2 server. The path is relative to this current file we are in.          -->\n      <exercise label=\"value-of-pi\">\n        <webwork><xi:include parse=\"text\" href=\"pg/newProblem.pg\"/></webwork>\n      </exercise>\n    </section>\n  </article>\n</pretext>\n"
  },
  {
    "path": "examples/webwork/minimal/pg/newProblem.pg",
    "content": "## DESCRIPTION\n## Give a value for pi\n## ENDDESCRIPTION\n\n## KEYWORDS('template', 'pi')\n\n## DBsubject('Algebra')\n## DBchapter('Fundamentals')\n## DBsection('Real Numbers')\n## Date('')\n## Author('')\n## Institution('')\n\nDOCUMENT();\n\nloadMacros(\n    \"PGstandard.pl\",    # Standard macros for PG language\n    \"PGML.pl\",          # PGML markup and Math Objects\n    \"PGcourse.pl\",      # Customization file for the course\n);\n\n# Uncomment the following if you don't want to show which\n# answers are correct and which are incorrect\n#$showPartialCorrectAnswers = 0;\n\n$pi = Real(\"pi\");\n\nBEGIN_PGML\nEnter a value for [`\\pi`].\n\n[_]{$pi}{5}\nEND_PGML\n\nBEGIN_PGML_SOLUTION\nYou could type [|pi|]* or [|3.14|]*, or [|22/7|]*,\namong other options.\nEND_PGML_SOLUTION\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/minimal/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <common>\n        <chunking level=\"1\"/>\n    </common>\n\n    <source>\n      <directories generated=\"generated\" external=\"external\"/>\n    </source>\n\n    <!-- These are the defaults but written explicitly here to serve as a model. -->\n    <webwork\n        server=\"https://webwork-ptx.aimath.org\"\n        course=\"anonymous\"\n        user=\"anonymous\"\n        password=\"anonymous\"\n        task-reveal=\"preceding-correct\"\n        static-processing=\"webwork2\"\n        />\n\n</publication>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/.gitkeep",
    "content": ""
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/an-exercisegroup-exercise.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-an-exercisegroup-exercise\" assembly-id=\"an-exercisegroup-exercise\">\n  <static seed=\"112\">\n    <statement><p>What is <m>1+1\\text{?}</m></p>\n<p><fillin characters=\"5\" name=\"AnSwEr0001\"/>&gt;</p>\n</statement>\n    <answer>\n      <p>\n        <m>2</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_5-Runestone_Assignment_Testing/2_5_1.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.5.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$introduction_image_1 = createLaTeXImage();\n$introduction_image_1->addToPreamble(latexImagePreamble());\n$introduction_image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw[fill=blue!20] (0,0) -| (1,1) -| cycle;\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis introduction should appear ahead of the exercise when it shows up in the Assignment page.\n\n>> [@DataTable(\n  [\n    [PGML('[`(0,0)`]'),\n     PGML('[`(0,1)`]'),\n    ],\n    [PGML('[`(1,0)`]'),\n     PGML('[`(1,1)`]'),\n    ],\n  ],\n      align => '*{2}{l}',\n      valign => 'middle',);@]* <<\n\n>> [@image(insertGraph($introduction_image_1), width=>600, alt=>qq\"a blue square\")@]*  <<\n\nIt has a table and an image too to check it all comes through.\n\nWhat is [`1+1\\text{?}`]\n\n[_]{'2'}{5}>\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/answer-arrays.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-answer-arrays\" assembly-id=\"answer-arrays\">\n  <static seed=\"81\">\n    <statement><p>These answer blanks are all expecting some sort of answer in an array format.</p>\n<p><m>{\\left(0,0\\right)} = {}</m><fillin cols=\"2\"/></p>\n<p><m>{\\left\\lt 1,2\\right&gt;} = {}</m><fillin cols=\"2\"/></p>\n<p><m>{\\left[\\begin{array}{c}3\\\\4\\\\\\end{array}\\right]} = {}</m><fillin rows=\"2\"/></p>\n<p><m>{\\left[\\begin{array}{cc}\n1 \\amp 2\\cr\n3 \\amp 4\n\\end{array}\\right]} = {}</m><fillin cols=\"2\" rows=\"2\"/></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_6-Answer_Arrays.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Point\");\n$p = Point(0,0);\nContext(\"Vector\");\n$v = Vector(1,2);\n$c = ColumnVector(3,4);\nContext(\"Matrix\");\n$m = Matrix([[1,2],[3,4]]);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese answer blanks are all expecting some sort of answer in an array format.\n\n[`[$p] = {}`][_]*{$p}{5}\n\n[`[$v] = {}`][_]*{$v}{5}\n\n[`[$c] = {}`][_]*{$c}{5}\n\n[`[$m] = {}`][_]*{$m}{5}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/antiderivative-exp.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-antiderivative-exp\" assembly-id=\"antiderivative-exp\">\n  <static seed=\"47\">\n    <statement><p><m>f(x)=e^x</m></p>\n<p><fillin characters=\"20\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>e^{x}+C</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_5.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserFormulaUpToConstant.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$answer = FormulaUpToConstant(\"e^x\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nFor the given function [`f\\text{,}`] find [`\\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\\indefiniteintegral{f(x)}{x}\\text{.}`]\n\nNote that these common instructions are phrased in such a way that they would read well if they were applied to only one exercise at a time. That will happen if these exercises are exported as [|.pg|]* files, for example to be used in online homework from a WeBWorK server.\n\n[`f(x)=e^x`]\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/antiderivative-sin.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-antiderivative-sin\" assembly-id=\"antiderivative-sin\">\n  <static seed=\"46\">\n    <statement><p><m>f(x)=\\sin(x)</m></p>\n<p><fillin characters=\"20\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>-\\cos\\mathopen{}\\left(x\\right)+C</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_4.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserFormulaUpToConstant.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$answer = FormulaUpToConstant(\"-cos(x)\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nFor the given function [`f\\text{,}`] find [`\\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\\indefiniteintegral{f(x)}{x}\\text{.}`]\n\nNote that these common instructions are phrased in such a way that they would read well if they were applied to only one exercise at a time. That will happen if these exercises are exported as [|.pg|]* files, for example to be used in online homework from a WeBWorK server.\n\n[`f(x)=\\sin(x)`]\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/box-diagonal-five.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-box-diagonal-five\" assembly-id=\"box-diagonal-five\">\n  <static seed=\"70\">\n    <statement><p>Find <m>D</m> when <m>L=4</m> and <m>W=3\\text{.}</m></p>\n<p><fillin characters=\"10\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>5</m>\n      </p>\n    </answer>\n    <solution><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/box-diagonal-five-image-1\" width=\"100%\"/>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_1.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$introduction_image_1 = createLaTeXImage();\n$introduction_image_1->addToPreamble(latexImagePreamble());\n$introduction_image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(L\\)} --++ (0,3) node[right,pos=0.5] {\\(W\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(D\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(4\\)} --++ (0,3) node[right,pos=0.5] {\\(3\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(5\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis exercisegroup has a [|<latex-image>|]* image in its introduction. In standalone versions of the exercise, this image should be repeated.\n\n>> [@image(insertGraph($introduction_image_1), width=>300)@]*  <<\n\nFind [`D`] when [`L=4`] and [`W=3\\text{.}`]\n\n[_]{'5'}{10}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($image_1), width=>600)@]*  <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/box-diagonal-thirteen.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-box-diagonal-thirteen\" assembly-id=\"box-diagonal-thirteen\">\n  <static seed=\"71\">\n    <statement><p>Find <m>D</m> when <m>L=12</m> and <m>W=5\\text{.}</m></p>\n<p><fillin characters=\"10\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>13</m>\n      </p>\n    </answer>\n    <solution><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/box-diagonal-thirteen-image-1\" width=\"100%\"/>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_2.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$introduction_image_1 = createLaTeXImage();\n$introduction_image_1->addToPreamble(latexImagePreamble());\n$introduction_image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(L\\)} --++ (0,3) node[right,pos=0.5] {\\(W\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(D\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(12\\)} --++ (0,3) node[right,pos=0.5] {\\(5\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(13\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis exercisegroup has a [|<latex-image>|]* image in its introduction. In standalone versions of the exercise, this image should be repeated.\n\n>> [@image(insertGraph($introduction_image_1), width=>300)@]*  <<\n\nFind [`D`] when [`L=12`] and [`W=5\\text{.}`]\n\n[_]{'13'}{10}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($image_1), width=>600)@]*  <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/choose-one.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-choose-one\" assembly-id=\"choose-one\">\n  <static seed=\"55\">\n    <statement><p>Which of the following suggest that differentiation and integration are inverse processes?</p>\n<p><ul form=\"buttons\" name=\"AnSwEr0001\">\n<li>\n<p>The Quadratic Formula</p>\n</li>\n<li>\n<p>The Fundamental Theorem of Calculus</p>\n</li>\n<li>\n<p>The Fundamental Theorem of Arithmetic</p>\n</li>\n<li>\n<p>None of these</p>\n</li>\n</ul></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{The Fundamental ... of Calculus}</m>\n      </p>\n    </answer>\n    <solution><p>The correct answer is The Fundamental ... of Calculus.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_2-Choose_one.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserRadioButtons.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$theorem = RadioButtons(\n  [\"The Quadratic Formula\",\"The Fundamental Theorem of Calculus\",\"The Fundamental Theorem of Arithmetic\",\"None of these\"],\n  1, # index of correct answer; could also just be the correct answer\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nWhich of the following suggest that differentiation and integration are inverse processes?\n\n[_]{$theorem}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$theorem].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/copy-webwork-add-numbers-exploration.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-copy-webwork-add-numbers-exploration\" assembly-id=\"copy-webwork-add-numbers-exploration\">\n  <static seed=\"512\">\n    <statement><p>Compute the sum of <m>7</m> and <m>1\\text{:}</m></p>\n<p><m>7 + 1 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>8</m>\n      </p>\n    </answer>\n    <solution><p><m>7 + 1 = {8}\\text{.}</m></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/Exploration-1_1_2-Inside_an_exploration.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/copy-webwork-add-numbers.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-copy-webwork-add-numbers\" assembly-id=\"copy-webwork-add-numbers\">\n  <static seed=\"511\">\n    <statement><p>Compute the sum of <m>6</m> and <m>5\\text{:}</m></p>\n<p><m>6 + 5 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>11</m>\n      </p>\n    </answer>\n    <solution><p><m>6 + 5 = {11}\\text{.}</m></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/Project-1_1_1-Inside_a_project.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/copy-with-tasks.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-copy-with-tasks\" assembly-id=\"copy-with-tasks\">\n  <static seed=\"832\">\n    <introduction><p>Consider the quadratic equation <m>{2x^{2}-5x-25} = 0\\text{.}</m></p>\n</introduction>\n    <task><title>Identify Coefficients</title>\n<statement><p>Identify the coefficients for the quadratic equation using the standard form from Theorem<nbsp/>1.2.1.</p>\n<p><m>a=</m> <fillin characters=\"4\" name=\"AnSwEr0001\"/>, <m>b=</m> <fillin characters=\"4\" name=\"AnSwEr0002\"/>, <m>c=</m> <fillin characters=\"4\" name=\"AnSwEr0003\"/></p>\n</statement><answer><p><m>2</m></p></answer><answer><p><m>-5</m></p></answer><answer><p><m>-25</m></p></answer><solution><p>Take the coefficient of <m>x^2</m> for the value of <m>a\\text{,}</m> the coefficient of <m>x</m> for <m>b\\text{,}</m> and the constant for <m>c\\text{.}</m> <em>In this case</em>, they are <m>a = {2}\\text{,}</m> <m>b = {-5}\\text{,}</m> <m>c = {-25}\\text{.}</m></p>\n</solution></task>\n    <task><title>Use the Quadratic Formula</title>\n<statement><p>Using the quadratic formula, solve the equation.</p>\n<p><fillin characters=\"40\" name=\"AnSwEr0004\"/></p>\n</statement><answer><p><m>\\left\\{5,\\frac{-5}{2}\\right\\}</m></p></answer><solution><p>Recall that the quadratic formula is given in Theorem<nbsp/>1.2.1.</p>\n<p>You already identified <m>a = {2}\\text{,}</m> <m>b = {-5}\\text{,}</m> and <m>c = {-25}\\text{,}</m> so the results are:</p>\n<p><me>x = {\\frac{-\\left(-5\\right)+\\sqrt{\\left(-5\\right)^{2}-4\\cdot 2\\cdot \\left(-25\\right)}}{2\\cdot 2}} = {5}</me></p>\n<p>or</p>\n<p><me>x = {\\frac{-\\left(-5\\right)-\\sqrt{\\left(-5\\right)^{2}-4\\cdot 2\\cdot \\left(-25\\right)}}{2\\cdot 2}} = {-{\\frac{5}{2}}}</me></p>\n</solution></task>\n    <conclusion><p>This conclusion is just here for testing.</p>\n</conclusion>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_2-Solving_Quadratic_Equations.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg copied-from=\"quadratic-equation\"><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"answerHints.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\nCOMMENT(q\"Find a quadratic equation's solutions.\", 'One positive integer solution and one negative fraction solution.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$a = Compute(random(2,6,1));\ndo {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n$r = Compute(random(2,6,1));\n$c = $k*-$r;\n$b = $a*-$r+$k;\n$quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n$x1 = Fraction($r,1);\n$x2 = Fraction(-$k,$a);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n$sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n    [-$a] => \"Do you have the sign correct?\")\n);\n$evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n    [-$b] => \"Do you have the sign correct?\")\n);\n$evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n    [-$c] => \"Do you have the sign correct?\")\n);\nContext(\"FiniteSolutionSets\");\n$solutionset = Formula(\"{$x1,$x2}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the quadratic equation [`[$quadratic] = 0\\text{.}`]\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nIdentify the coefficients for the quadratic equation using the standard form from Theorem[$NBSP]*1.2.1.\n\n[`a=`] [_]{$evaluatorfora}{4}, [`b=`] [_]{$evaluatorforb}{4}, [`c=`] [_]{$evaluatorforc}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{,}`] the coefficient of [`x`] for [`b\\text{,}`] and the constant for [`c\\text{.}`] _In this case_, they are [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] [`c = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUsing the quadratic formula, solve the equation.\n\n[_]{$solutionset}{40}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Theorem[$NBSP]*1.2.1.\n\nYou already identified [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] and [`c = [$c]\\text{,}`] so the results are:\n\n[```x = [$sol1] = [$x1]```]\n\nor\n\n[```x = [$sol2] = [$x2]```]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nBEGIN_PGML\nThis conclusion is just here for testing.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/cylinder-volume.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-cylinder-volume\" assembly-id=\"cylinder-volume\">\n  <static seed=\"8435\" source=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\">\n    <statement><p>A cylinder<rsq/>s base<rsq/>s radius is <m>{6\\ {\\rm m}}</m>, and its height is <m>{10\\ {\\rm m}}</m>.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/cylinder-volume-image-1.png\" width=\"40%\"/>\n<p><ol label=\"a.\">\n<li>\n<p>This cylinder<rsq/>s volume, in terms of <m>\\pi</m>, is <fillin characters=\"13\" name=\"AnSwEr0001\"/>.</p>\n</li>\n<li>\n<p>This cylinder<rsq/>s volume, rounded to the hundredth place, is <fillin characters=\"13\" name=\"AnSwEr0002\"/>.</p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>360\\pi\\ {\\rm m^{3}}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>1130.97\\ {\\rm m^{3}}</m>\n      </p>\n    </answer>\n    <solution><p>We use <m>r</m> to represent the base<rsq/>s radius, and <m>h</m> to represent the cylinder<rsq/>s height.</p>\n<p>A cylinder<rsq/>s volume formula is <m>V= (\\text{base area}) \\cdot \\text{height}</m>. A cylinder<rsq/>s base is a circle, with its area formula <m>A = \\pi r^{2}</m>.</p>\n<p>Putting together these two formulas, we have a cylinder<rsq/>s volume formula:</p>\n<p><m>\\displaystyle{ V= \\pi r^{2} h }</m></p>\n<p>Throughout these computations, all quantities have units attached, and we only show them in the final step.</p>\n<p><ol label=\"a.\">\n<li>\n<p>Using the volume formula, we have:</p>\n<p><m>\\displaystyle{\\begin{aligned}\n      V \\amp  = \\pi r^{2} h \\\\\n        \\amp  = \\pi \\cdot 6^{2} \\cdot 10 \\\\\n        \\amp  = \\pi \\cdot 360 \\\\\n        \\amp  = 360 \\pi \\textrm{ m}^3\n      \\end{aligned}}</m></p>\n<p>Don<rsq/>t forget the volume unit <m>\\textrm{m}^3</m>.</p>\n</li>\n<li>\n<p>To find the decimal version, we replace <m>\\pi</m> with its decimal value, and we have:</p>\n<p><m>\\displaystyle{\\begin{aligned}[t]\n      V\\amp  = 360 \\pi \\\\\n       \\amp  \\approx 360 \\cdot 3.14\\ldots \\\\\n       \\amp  \\approx {1130.97\\ {\\rm m^{3}}}\n     \\end{aligned}}</m></p>\n<p>Don<rsq/>t forget the volume unit <m>\\textrm{m}^3</m>.</p>\n</li>\n</ol></p>\n</solution>\n  </static>\n  <rendering-data sourceFilePath=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\" origin=\"webwork2\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg source=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\"/>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/deep-nested-lists.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-deep-nested-lists\" assembly-id=\"deep-nested-lists\">\n  <static seed=\"85\">\n    <statement><p>Ordered list.</p>\n<p><ol label=\"a.\">\n<li>\n<p>Level 1, first.</p>\n</li>\n<li>\n<p>Level 1, second.\n<ol label=\"i.\">\n<li>\n<p>Level 2, first.</p>\n</li>\n<li>\n<p>Level 2, second.\n<ol label=\"A.\">\n<li>\n<p>Level 3, first.</p>\n</li>\n<li>\n<p>Level 3, second.\n<ol label=\"1.\">\n<li>\n<p>Level 4, first.</p>\n</li>\n<li>\n<p>Level 4, second.</p>\n</li>\n<li>\n<p>Level 4, third.</p>\n</li>\n</ol></p>\n</li>\n<li>\n<p>Level 3, third.</p>\n</li>\n</ol></p>\n</li>\n<li>\n<p>Level 2, third.</p>\n</li>\n</ol></p>\n</li>\n<li>\n<p>Level 1, third.</p>\n</li>\n</ol></p>\n<p>Unordered list.</p>\n<p><ul label=\"disc\">\n<li>\n<p>Level 1, first.</p>\n</li>\n<li>\n<p>Level 1, second.\n<ul label=\"circle\">\n<li>\n<p>Level 2, first.</p>\n</li>\n<li>\n<p>Level 2, second.\n<ul label=\"square\">\n<li>\n<p>Level 3, first.</p>\n</li>\n<li>\n<p>Level 3, second.\n<ul label=\"disc\">\n<li>\n<p>Level 4, first.</p>\n</li>\n<li>\n<p>Level 4, second.</p>\n</li>\n<li>\n<p>Level 4, third.</p>\n</li>\n</ul></p>\n</li>\n<li>\n<p>Level 3, third.</p>\n</li>\n</ul></p>\n</li>\n<li>\n<p>Level 2, third.</p>\n</li>\n</ul></p>\n</li>\n<li>\n<p>Level 1, third.</p>\n</li>\n</ul></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_4-Deepnested_lists.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nOrdered list.\n\na.  Level 1, first.\n\na.  Level 1, second.\n    i.  Level 2, first.\n\n    i.  Level 2, second.\n        A.  Level 3, first.\n\n        A.  Level 3, second.\n            1.  Level 4, first.\n\n            1.  Level 4, second.\n\n            1.  Level 4, third.\n\n        A.  Level 3, third.\n\n    i.  Level 2, third.\n\na.  Level 1, third.\n\nUnordered list.\n\n* Level 1, first.\n\n* Level 1, second.\n    o Level 2, first.\n\n    o Level 2, second.\n        + Level 3, first.\n\n        + Level 3, second.\n            * Level 4, first.\n\n            * Level 4, second.\n\n            * Level 4, third.\n\n        + Level 3, third.\n\n    o Level 2, third.\n\n* Level 1, third.   \n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-bare.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-bare\" assembly-id=\"divisional-bare\">\n  <static seed=\"96\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_1.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-conclusion\" assembly-id=\"divisional-conclusion\">\n  <static seed=\"100\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_5.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-introduction-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-introduction-conclusion\" assembly-id=\"divisional-introduction-conclusion\">\n  <static seed=\"102\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_7.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.7)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-introduction.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-introduction\" assembly-id=\"divisional-introduction\">\n  <static seed=\"98\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_3.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-title-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-title-conclusion\" assembly-id=\"divisional-title-conclusion\">\n  <static seed=\"101\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_6-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-title-introduction-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-title-introduction-conclusion\" assembly-id=\"divisional-title-introduction-conclusion\">\n  <static seed=\"103\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_8-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.8)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-title-introduction.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-title-introduction\" assembly-id=\"divisional-title-introduction\">\n  <static seed=\"99\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_4-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/divisional-title.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-divisional-title\" assembly-id=\"divisional-title\">\n  <static seed=\"97\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_2-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/empty-statement.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-empty-statement\" assembly-id=\"empty-statement\">\n  <static seed=\"86\">\n    <statement/>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_5.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-bare.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-bare\" assembly-id=\"exercisegroup-bare\">\n  <static seed=\"104\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_9.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.9)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-conclusion\" assembly-id=\"exercisegroup-conclusion\">\n  <static seed=\"108\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_13.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.13)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-introduction-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-introduction-conclusion\" assembly-id=\"exercisegroup-introduction-conclusion\">\n  <static seed=\"110\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_15.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.15)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-introduction.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-introduction\" assembly-id=\"exercisegroup-introduction\">\n  <static seed=\"106\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_11.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.11)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-title-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-title-conclusion\" assembly-id=\"exercisegroup-title-conclusion\">\n  <static seed=\"109\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_14-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.14)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-title-introduction-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-title-introduction-conclusion\" assembly-id=\"exercisegroup-title-introduction-conclusion\">\n  <static seed=\"111\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_16-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.16)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-title-introduction.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-title-introduction\" assembly-id=\"exercisegroup-title-introduction\">\n  <static seed=\"107\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_12-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.12)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/exercisegroup-title.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-exercisegroup-title\" assembly-id=\"exercisegroup-title\">\n  <static seed=\"105\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_10-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.10)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/function-with-domain-issues.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-function-with-domain-issues\" assembly-id=\"function-with-domain-issues\">\n  <static seed=\"77\">\n    <statement><p><ol label=\"a.\">\n<li>\n<p>Suppose the correct answer is <m>\\displaystyle {\\sqrt{x-4}}\\text{.}</m></p>\n<p><ul label=\"square\">\n<li>\n<p><fillin characters=\"15\" name=\"AnSwEr0001\"/></p>\n</li>\n</ul></p>\n</li>\n<li>\n<p>Suppose the correct answer is <m>\\displaystyle {\\ln\\mathopen{}\\left(\\left|\\frac{x}{x-4}\\right|\\right)}\\text{.}</m></p>\n<p><ul label=\"square\">\n<li>\n<p><fillin characters=\"15\" name=\"AnSwEr0002\"/></p>\n</li>\n</ul></p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\sqrt{x-4}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\ln\\mathopen{}\\left(\\left|\\frac{x}{x-4}\\right|\\right)</m>\n      </p>\n    </answer>\n    <solution><p>Solution explanation goes here.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_2-Answer_is_a_function_with_domain_issues.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"answerHints.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(2,5,1);\n$answer1 = Compute(\"sqrt(x-$a)\");\n$answer1->{limits} = [$a+1,$a+4];\n$answer2 = Compute(\"ln(abs( x / (x-$a) ))\");\n$answer2->{test_points} = [[-5],[-4],[1],[$a-1],[7],[8]];\n$answer2evaluator = $answer2 -> cmp() -> withPostFilter( AnswerHints( [Compute(\"ln(abs((x-$a)/x))\"),] => \"This is the opposite of correct...\",));\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Suppose the correct answer is [`\\displaystyle [$answer1]\\text{.}`]\n\n    + [_]{$answer1}{15} [@AnswerFormatHelp('formulas')@]*\n\na.  Suppose the correct answer is [`\\displaystyle [$answer2]\\text{.}`]\n\n    + [_]{$answer2evaluator}{15} [@AnswerFormatHelp('formulas')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nSolution explanation goes here.\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/images/box-diagonal-five-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={$x$},\n        ylabel={$y$},\n        grid = both,\n    }\n}\n\n\\begin{document}\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(4\\)} --++ (0,3) node[right,pos=0.5] {\\(3\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(5\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/images/box-diagonal-thirteen-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={$x$},\n        ylabel={$y$},\n        grid = both,\n    }\n}\n\n\\begin{document}\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(12\\)} --++ (0,3) node[right,pos=0.5] {\\(5\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(13\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/images/latex-image-with-preamble-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={$x$},\n        ylabel={$y$},\n        grid = both,\n    }\n}\n\n\\begin{document}\n\\begin{tikzpicture}\n    \\begin{axis}\n        \\addplot[domain=-2:3,smooth] {(x--1)*(x-1)*(x-2)};\n    \\end{axis}\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/images/randomized-latex-image-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={$x$},\n        ylabel={$y$},\n        grid = both,\n    }\n}\n\n\\begin{document}\n\\begin{tikzpicture}\n    \\draw[fill=blue!20] (0,0) --++ (6,0) node[pos=0.5,below] {\\(6\\)\\,cm} --++ (0,4) node[pos=0.5,right] {\\(4\\)\\,cm} --++ (-6,0) -- cycle;\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/images/special-characters-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={$x$},\n        ylabel={$y$},\n        grid = both,\n    }\n}\n\n\\begin{document}\n\\begin{tikzpicture}\n    \\node at (0,0) {I need about \\$3.50.};\n    \\node at (0,1) {You gotta give 110\\%.};  %This is a comment.\n    \\node at (0,2) {Send email user@domain.com.};\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/images/static-latex-image-image-1.tex",
    "content": "\\documentclass{standalone}\n\\usepackage[svgnames]{xcolor}\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={$x$},\n        ylabel={$y$},\n        grid = both,\n    }\n}\n\n\\begin{document}\n\\begin{tikzpicture}\n    \\draw[dashed] (0.5-0.5*6.5,-0.866025*6.5) -- (7-0.5*6.5,-0.866025*6.5);\n    \\draw[very thick] (2-0.5*7,-0.866025*7) -- (2-0.5*4,-0.866025*4) -- (5-0.5*7,-0.866025*7);\n    \\foreach \\x in {1,...,6}\n        \\foreach \\y in {1,...,\\x}\n            \\shade[ball color=blue!30] (\\y-0.5*\\x,-0.866025*\\x) circle (0.2cm);\n    \\foreach \\y in {1,...,7}\n        \\shade[ball color=orange!40] (\\y-0.5*7,-0.866025*7) circle (0.2cm);\n    \\node at (2.5,-0.5) [anchor=north west]{\\(\\color{blue}\\sum\\limits_{k=1}^nk\\color{black}\\)};\n    \\shade[ball color=blue] (2-0.5*4,-0.866025*4) circle (0.2cm);\n    \\shade[ball color=orange] (2-0.5*7,-0.866025*7) circle (0.2cm);\n    \\shade[ball color=orange] (5-0.5*7,-0.866025*7) circle (0.2cm);\n\\end{tikzpicture}\n\n\n\\end{document}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-bare.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-bare\" assembly-id=\"inline-bare\">\n  <static seed=\"88\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_1.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-conclusion\" assembly-id=\"inline-conclusion\">\n  <static seed=\"92\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_5.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-introduction-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-introduction-conclusion\" assembly-id=\"inline-introduction-conclusion\">\n  <static seed=\"94\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_7.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.7)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-introduction.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-introduction\" assembly-id=\"inline-introduction\">\n  <static seed=\"90\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_3.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-title-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-title-conclusion\" assembly-id=\"inline-title-conclusion\">\n  <static seed=\"93\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_6-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-title-introduction-conclusion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-title-introduction-conclusion\" assembly-id=\"inline-title-introduction-conclusion\">\n  <static seed=\"95\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_8-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.8)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-title-introduction.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-title-introduction\" assembly-id=\"inline-title-introduction\">\n  <static seed=\"91\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_4-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/inline-title.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-inline-title\" assembly-id=\"inline-title\">\n  <static seed=\"89\">\n    <statement><p><m>1+1=2</m></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2-Has_a_Title.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/integer-addition-with-control-seed.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-integer-addition-with-control-seed\" assembly-id=\"integer-addition-with-control-seed\">\n  <static seed=\"1\">\n    <statement><p>Compute the sum of <m>1</m> and <m>2\\text{:}</m></p>\n<p><m>1 + 2 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>3</m>\n      </p>\n    </answer>\n    <solution><p><m>1 + 2 = {3}\\text{.}</m></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_3-Controlling_Randomness.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\nif ($envir{problemSeed}==1){$a=1;$b=2};\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/integer-addition-with-seed.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-integer-addition-with-seed\" assembly-id=\"integer-addition-with-seed\">\n  <static seed=\"510\">\n    <statement><p>Compute the sum of <m>5</m> and <m>8\\text{:}</m></p>\n<p><m>5 + 8 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>13</m>\n      </p>\n    </answer>\n    <solution><p><m>5 + 8 = {13}\\text{.}</m></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_1-Adding_SingleDigit_Integers.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg copied-from=\"integer-addition\"><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/integer-addition.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-integer-addition\" assembly-id=\"integer-addition\">\n  <static seed=\"6\">\n    <statement><p>Compute the sum of <m>6</m> and <m>1\\text{:}</m></p>\n<p><m>6 + 1 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>7</m>\n      </p>\n    </answer>\n    <solution><p><m>6 + 1 = {7}\\text{.}</m></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_1-Adding_SingleDigit_Integers.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/intertext.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-intertext\" assembly-id=\"intertext\">\n  <static seed=\"53\">\n    <statement><p>Here, we solve an equation.</p>\n<p><me>\\begin{aligned}\n2x+1 \\amp= 3\n\\end{aligned}</me></p>\n<p>Now subtract <m>1</m> from each side.</p>\n<p><me>\\begin{aligned}\n2x   \\amp= 2\n\\end{aligned}</me></p>\n<p>Now divide by <m>2</m> on each side.</p>\n<p><me>\\begin{aligned}\nx    \\amp= 1\n\\end{aligned}</me></p>\n<p>We should also test when the <c>&lt;md&gt;</c> is within a list.\n<ol label=\"a.\">\n<li>\n<p>Start a list.</p>\n</li>\n<li>\n<p><nbsp/></p>\n<p><me>\\begin{aligned}\n    2x+1 \\amp= 3\n    \\end{aligned}</me></p>\n<p>Now subtract <m>1</m> from each side.</p>\n<p><me>\\begin{aligned}\n    2x   \\amp= 2\n    \\end{aligned}</me></p>\n<p>Now divide by <m>2</m> on each side.</p>\n<p><me>\\begin{aligned}\n    x    \\amp= 1\n    \\end{aligned}</me></p>\n</li>\n<li>\n<p>Still in the list?</p>\n</li>\n</ol></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_5-Math_Content/1_5_2-Intertext.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.5.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nHere, we solve an equation.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n2x+1 \\amp= 3\n\\end{aligned}\n```]\n\nNow subtract [`1`] from each side.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n2x   \\amp= 2\n\\end{aligned}\n```]\n\nNow divide by [`2`] on each side.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\nx    \\amp= 1\n\\end{aligned}\n```]\n\nWe should also test when the [|<md>|]* is within a list.\na.  Start a list.\n\na.  [$NBSP]*\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    2x+1 \\amp= 3\n    \\end{aligned}\n    ```]\n\n    Now subtract [`1`] from each side.\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    2x   \\amp= 2\n    \\end{aligned}\n    ```]\n\n    Now divide by [`2`] on each side.\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    x    \\amp= 1\n    \\end{aligned}\n    ```]\n\na.  Still in the list?\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/latex-image-with-preamble.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-latex-image-with-preamble\" assembly-id=\"latex-image-with-preamble\">\n  <static seed=\"67\">\n    <statement><p>What are the roots of this polynomial?</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/latex-image-with-preamble-image-1\" width=\"50%\">\n<shortdescription>the graph of a polynomial that crosses the x-axis at -1, 1, and 2.</shortdescription>\n</image>\n<p><fillin characters=\"20\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>-1, 1, 2</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_3-A_lateximage_graph_affected_by_lateximagepreamble.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"PGchoicemacros.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n@roots = (-3..3)[NchooseK(7,3)];\n@roots = num_sort(@roots);\n$answer = List(@roots);\n$xmin = min(-1,@roots)-1;\n$xmax = max(1,@roots)+1;\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\begin{axis}\n        \\addplot[domain=$xmin:$xmax,smooth] {(x-$roots[0])*(x-$roots[1])*(x-$roots[2])};\n    \\end{axis}\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nWhat are the roots of this polynomial?\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"the graph of a polynomial that crosses the x-axis at $roots[0], $roots[1], and $roots[2].\")@]*  <<\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/list-indentation-with-images-and-tables.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-list-indentation-with-images-and-tables\" assembly-id=\"list-indentation-with-images-and-tables\">\n  <static seed=\"84\">\n    <statement><p xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><ol label=\"a.\">\n<li>\n<p>Structured item</p>\n<image pi:generated=\"webwork/images/list-indentation-with-images-and-tables-image-1.png\" width=\"17%\"/>\n</li>\n<li>\n<image pi:generated=\"webwork/images/list-indentation-with-images-and-tables-image-1.png\" width=\"17%\"/>\n</li>\n</ol></p>\n<p>Structured item</p>\n<p xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"><ol label=\"a.\">\n<li>\n<p>Structured item</p>\n<image pi:generated=\"webwork/images/list-indentation-with-images-and-tables-image-1.png\" width=\"17%\"/>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p>Structured item</p>\n<tabular>\n<col/>\n<col/>\n<row>\n<cell>a</cell>\n<cell>b</cell>\n</row>\n<row>\n<cell>c</cell>\n<cell>d</cell>\n</row>\n</tabular>\n</li>\n<li>\n<tabular left=\"major\">\n<col halign=\"right\" right=\"minor\"/>\n<col halign=\"center\" right=\"medium\"/>\n<col right=\"minor\"/>\n<row left=\"none\">\n<cell halign=\"right\">1</cell>\n<cell>two</cell>\n<cell><m>\\lfloor\\pi\\rfloor</m></cell>\n</row>\n<row bottom=\"major\" valign=\"bottom\">\n<cell bottom=\"minor\"><m>\\text{I}+\\text{I}</m>\n<m>{}+\\text{I}+\\text{I}</m></cell>\n<cell><m>5</m></cell>\n<cell>six</cell>\n</row>\n<row bottom=\"major\">\n<cell><m>2^3-1</m></cell>\n<cell colspan=\"2\">VIII</cell>\n</row>\n</tabular>\n</li>\n</ol></p>\n<p>Structured item</p>\n<p><ol label=\"a.\">\n<li>\n<p>Structured item</p>\n<tabular>\n<col/>\n<col/>\n<row>\n<cell>a</cell>\n<cell>b</cell>\n</row>\n<row>\n<cell>c</cell>\n<cell>d</cell>\n</row>\n</tabular>\n<p>Second paragraph</p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n</ol></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_3-Checking_Proper_Indentation_In_Lists_with_Images_and_Tables.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGgraphmacros.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$g=init_graph(-1,-1,1,1,axes=>[0,0]);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Structured item\n\n    [@image(insertGraph($g), width=>102)@]* \n\na.  [@image(insertGraph($g), width=>102)@]* \n\nStructured item\n\na.  Structured item\n\n    [@image(insertGraph($g), width=>102)@]* \n\na.  Structured item\n\na.  Structured item\n\n    [@DataTable(\n      [\n        [PGML('a'),\n         PGML('b'),\n        ],\n        [PGML('c'),\n         PGML('d'),\n        ],\n      ],\n          align => '*{2}{l}',\n          valign => 'middle',    );@]*\n\na.  [@DataTable(\n      [\n        [[PGML('1'),\n          halign => 'r',],\n         PGML('two'),\n         PGML('[`\\lfloor\\pi\\rfloor`]'),\n        ],\n        [[PGML('[`\\text{I}+\\text{I}`]  \n[`{}+\\text{I}+\\text{I}`]  \n'),\n          rowbottom => '3',\n          midrule => '1',\n          bottom => '1',\n          valign => 'bottom',],\n         PGML('[`5`]'),\n         PGML('six'),\n        ],\n        [[PGML('[`2^3-1`]'),\n          rowbottom => '3',\n          midrule => '1',],\n         [PGML('VIII'),\n          colspan => '2',],\n        ],\n      ],\n          align => '!{\\vrule width 0.11em}r|c!{\\vrule width 0.07em}l|',\n          valign => 'middle',\n          top => '3',    );@]*\n\nStructured item\n\na.  Structured item\n\n    [@DataTable(\n      [\n        [PGML('a'),\n         PGML('b'),\n        ],\n        [PGML('c'),\n         PGML('d'),\n        ],\n      ],\n          align => '*{2}{l}',\n          valign => 'middle',    );@]*\n\n    Second paragraph\n\na.  Structured item\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/list-indentation.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-list-indentation\" assembly-id=\"list-indentation\">\n  <static seed=\"83\">\n    <statement><p><ol label=\"a.\">\n<li>\n<p>Simple item</p>\n</li>\n<li>\n<p>Simple item</p>\n</li>\n<li>\n<p>Simple item</p>\n</li>\n</ol></p>\n<p><ol label=\"a.\">\n<li>\n<p>Simple item</p>\n</li>\n<li>\n<p>Simple item</p>\n</li>\n<li>\n<p>Simple item</p>\n</li>\n</ol></p>\n<p>Text before.\n<ol label=\"a.\">\n<li>\n<p>Simple item</p>\n</li>\n<li>\n<p>Simple item</p>\n</li>\n<li>\n<p>Simple item</p>\n</li>\n</ol></p>\n<p>And after.</p>\n<p><ol label=\"a.\">\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n</ol></p>\n<p>Text before.\n<ol label=\"a.\">\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n</ol></p>\n<p>And after.</p>\n<p><ol label=\"a.\">\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p><nbsp/>\n<ol label=\"A.\">\n<li>\n<p>Sublist Item</p>\n</li>\n<li>\n<p>Sublist Item</p>\n</li>\n<li>\n<p>Sublist Item</p>\n</li>\n</ol></p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n</ol></p>\n<p>Text before.\n<ol label=\"a.\">\n<li>\n<p>Structured item</p>\n</li>\n<li>\n<p>Text before.\n<ol label=\"i.\">\n<li>\n<p>Sublist Item</p>\n</li>\n<li>\n<p>Sublist Item</p>\n</li>\n<li>\n<p>Sublist Item</p>\n</li>\n</ol></p>\n<p>And after.</p>\n</li>\n<li>\n<p>Structured item</p>\n</li>\n</ol></p>\n<p>And after.</p>\n<p><ol label=\"a.\">\n<li>\n<p>Structured item</p>\n<p>Second paragraph</p>\n</li>\n<li>\n<p><nbsp/>\n<ol label=\"I.\">\n<li>\n<p>Sublist Item</p>\n<p>Second paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p>Second paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n</li>\n<li>\n<p>Structured item</p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>Text before.\n<ol label=\"a.\">\n<li>\n<p>Structured item</p>\n<p>Second paragraph</p>\n</li>\n<li>\n<p>Text before.\n<ol label=\"1.\">\n<li>\n<p>Sublist Item</p>\n<p>Second paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p>Second paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>And after.</p>\n</li>\n<li>\n<p>Structured item</p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>And after.</p>\n<p><ol label=\"a.\">\n<li>\n<p><nbsp/></p>\n<p><me>1+1=2</me></p>\n<p>Structured item</p>\n<p>Second</p>\n<p><me>1+1=2</me></p>\n<p>paragraph</p>\n</li>\n<li>\n<p><nbsp/>\n<ol label=\"a.\">\n<li>\n<p>Sublist</p>\n<p><me>1+1=2</me></p>\n<p>Item</p>\n<p>Second paragraph</p>\n<p><me>1+1=2</me></p>\n</li>\n<li>\n<p><nbsp/></p>\n<p><me>1+1=2</me></p>\n<p>Sublist Item</p>\n<p>Second</p>\n<p><me>1+1=2</me></p>\n<p>paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p><me>1+1=2</me></p>\n<p><me>1+1=2</me></p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n</li>\n<li>\n<p>Structured</p>\n<p><me>1+1=2</me></p>\n<p>item</p>\n<p>Second paragraph</p>\n<p><me>1+1=2</me></p>\n</li>\n</ol></p>\n<p>Text before.\n<ol label=\"a.\">\n<li>\n<p>Structured</p>\n<p><me>1+1=2</me></p>\n<p>item</p>\n<p>Second paragraph</p>\n<p><me>1+1=2</me></p>\n</li>\n<li>\n<p><nbsp/></p>\n<p><me>1+1=2</me></p>\n<p>Text before.\n<ol label=\"A.\">\n<li>\n<p>Sublist</p>\n<p><me>1+1=2</me></p>\n<p>Item</p>\n<p>Second paragraph</p>\n<p><me>1+1=2</me></p>\n</li>\n<li>\n<p><nbsp/></p>\n<p><me>1+1=2</me></p>\n<p>Sublist Item</p>\n<p>Second</p>\n<p><me>1+1=2</me></p>\n<p>paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p><me>1+1=2</me></p>\n<p><me>1+1=2</me></p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>And</p>\n<p><me>1+1=2</me></p>\n<p>after.</p>\n</li>\n<li>\n<p>Structured item</p>\n<p><me>1+1=2</me></p>\n<p><me>1+1=2</me></p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>And after.</p>\n<p>Text before.\n<ol label=\"a.\">\n<li>\n<p>Structured</p>\n<p><me>\\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}</me></p>\n<p>item</p>\n<p>Second paragraph</p>\n<p><me>\\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}</me></p>\n</li>\n<li>\n<p><nbsp/></p>\n<p><me>\\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}</me></p>\n<p>Text before.\n<ol label=\"i.\">\n<li>\n<p>Sublist</p>\n<p><me>\\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}</me></p>\n<p>Item</p>\n<p>Second paragraph</p>\n<p><me>\\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}</me></p>\n</li>\n<li>\n<p><nbsp/></p>\n<p><me>\\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}</me></p>\n<p>Sublist Item</p>\n<p>Second</p>\n<p><me>\\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}</me></p>\n<p>paragraph</p>\n</li>\n<li>\n<p>Sublist Item</p>\n<p><me>\\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}</me></p>\n<p><me>\\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}</me></p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>And</p>\n<p><me>\\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}</me></p>\n<p>after.</p>\n</li>\n<li>\n<p>Structured item</p>\n<p><me>\\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}</me></p>\n<p><me>\\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}</me></p>\n<p>Second paragraph</p>\n</li>\n</ol></p>\n<p>And after.</p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_2-Checking_Proper_Indentation_In_Lists.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Simple item\na.  Simple item\na.  Simple item   \n\na.  Simple item\na.  Simple item\na.  Simple item   \n\nText before.\na.  Simple item\na.  Simple item\na.  Simple item   \n\nAnd after.\n\na.  Structured item\n\na.  Structured item\n\na.  Structured item\n\nText before.\na.  Structured item\n\na.  Structured item\n\na.  Structured item\n\nAnd after.\n\na.  Structured item\n\na.  [$NBSP]*\n    A.  Sublist Item\n\n    A.  Sublist Item\n\n    A.  Sublist Item\n\na.  Structured item\n\nText before.\na.  Structured item\n\na.  Text before.\n    i.  Sublist Item\n\n    i.  Sublist Item\n\n    i.  Sublist Item\n\n    And after.\n\na.  Structured item\n\nAnd after.\n\na.  Structured item\n\n    Second paragraph\n\na.  [$NBSP]*\n    I.  Sublist Item\n\n        Second paragraph\n\n    I.  Sublist Item\n\n        Second paragraph\n\n    I.  Sublist Item\n\n        Second paragraph\n\na.  Structured item\n\n    Second paragraph\n\nText before.\na.  Structured item\n\n    Second paragraph\n\na.  Text before.\n    1.  Sublist Item\n\n        Second paragraph\n\n    1.  Sublist Item\n\n        Second paragraph\n\n    1.  Sublist Item\n\n        Second paragraph\n\n    And after.\n\na.  Structured item\n\n    Second paragraph\n\nAnd after.\n\na.  [$NBSP]*\n\n    [```1+1=2```]\n\n    Structured item\n\n    Second\n\n    [```1+1=2```]\n\n    paragraph\n\na.  [$NBSP]*\n    a.  Sublist\n\n        [```1+1=2```]\n\n        Item\n\n        Second paragraph\n\n        [```1+1=2```]\n\n    a.  [$NBSP]*\n\n        [```1+1=2```]\n\n        Sublist Item\n\n        Second\n\n        [```1+1=2```]\n\n        paragraph\n\n    a.  Sublist Item\n\n        [```1+1=2```]\n\n        \n\n        [```1+1=2```]\n\n        Second paragraph\n\na.  Structured\n\n    [```1+1=2```]\n\n    item\n\n    Second paragraph\n\n    [```1+1=2```]\n\nText before.\na.  Structured\n\n    [```1+1=2```]\n\n    item\n\n    Second paragraph\n\n    [```1+1=2```]\n\na.  [$NBSP]*\n\n    [```1+1=2```]\n\n    Text before.\n    A.  Sublist\n\n        [```1+1=2```]\n\n        Item\n\n        Second paragraph\n\n        [```1+1=2```]\n\n    A.  [$NBSP]*\n\n        [```1+1=2```]\n\n        Sublist Item\n\n        Second\n\n        [```1+1=2```]\n\n        paragraph\n\n    A.  Sublist Item\n\n        [```1+1=2```]\n\n        \n\n        [```1+1=2```]\n\n        Second paragraph\n\n    And\n\n    [```1+1=2```]\n\n    after.\n\na.  Structured item\n\n    [```1+1=2```]\n\n    \n\n    [```1+1=2```]\n\n    Second paragraph\n\nAnd after.\n\nText before.\na.  Structured\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    item\n\n    Second paragraph\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\na.  [$NBSP]*\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    Text before.\n    i.  Sublist\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        Item\n\n        Second paragraph\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n    i.  [$NBSP]*\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        Sublist Item\n\n        Second\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        paragraph\n\n    i.  Sublist Item\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        \n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        Second paragraph\n\n    And\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    after.\n\na.  Structured item\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    \n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    Second paragraph\n\nAnd after.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/local-pg-file.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-local-pg-file\" assembly-id=\"local-pg-file\">\n  <static seed=\"20\">\n    <statement><p>Compute the sum of <m>2</m> and <m>2\\text{:}</m></p>\n<p><m>2 + 2 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>4</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_8-Local_PG_File.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\nDOCUMENT();\n\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Add two positive single-digit integers.');\n\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/local-pg.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-local-pg\" assembly-id=\"local-pg\">\n  <static seed=\"19\">\n    <statement><p>Compute the sum of <m>1</m> and <m>5\\text{:}</m></p>\n<p><m>1 + 5 =</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>6</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_7-Local_PG.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\nDOCUMENT();\n\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Add two positive single-digit integers.');\n\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/math-and-alignment.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-math-and-alignment\" assembly-id=\"math-and-alignment\">\n  <static seed=\"52\">\n    <statement><p>If <m>a=5</m> and <m>b=12\\text{,}</m> then</p>\n<p><me>a^2+b^2=13^2\\text{.}</me></p>\n<p>Here, we solve an equation.</p>\n<p><me>\\begin{aligned}\n2x+1 \\amp= 3\\\\\n2x   \\amp= 2\\\\\nx    \\amp= 1\n\\end{aligned}</me></p>\n<p>Here we have a three-way inequality to solve.</p>\n<p><me>\\begin{gathered}\n1 \\lt 2x+1 \\lt 3\\\\\n0 \\lt 2x   \\lt 2\\\\\n0 \\lt x    \\lt 1\n\\end{gathered}</me></p>\n<p>And here, we see a system of equations.</p>\n<p><me>\\begin{alignedat}{3}\n2x + 2y \\amp {}+{} \\amp z \\amp {}={} \\amp 10\\\\\ny \\amp {}-{} \\amp  4z \\amp {}={} \\amp 9\\\\\n\\amp\\amp   3z \\amp {}={} \\amp -6\n\\end{alignedat}</me></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_5-Math_Content/1_5_1-Math_Elements_and_Alignment.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.5.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nIf [`a=5`] and [`b=12\\text{,}`] then\n\n[```a^2+b^2=13^2\\text{.}```]\n\nHere, we solve an equation.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n2x+1 \\amp= 3\\\\\n2x   \\amp= 2\\\\\nx    \\amp= 1\n\\end{aligned}\n```]\n\nHere we have a three-way inequality to solve.\n\n[```\\newcommand{\\lt}{<}\n\\begin{gathered}\n1 \\lt 2x+1 \\lt 3\\\\\n0 \\lt 2x   \\lt 2\\\\\n0 \\lt x    \\lt 1\n\\end{gathered}\n```]\n\nAnd here, we see a system of equations.\n\n[```\\newcommand{\\amp}{&}\n\\begin{alignedat}{3}\n2x + 2y \\amp {}+{} \\amp z \\amp {}={} \\amp 10\\\\\ny \\amp {}-{} \\amp  4z \\amp {}={} \\amp 9\\\\\n\\amp\\amp   3z \\amp {}={} \\amp -6\n\\end{alignedat}\n```]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/mathobject-string-answers.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-mathobject-string-answers\" assembly-id=\"mathobject-string-answers\">\n  <static seed=\"73\">\n    <statement><p><ol label=\"a.\">\n<li>\n<p>Special characters used by XML, character escaping: &lt;&gt;&amp;'\";</p>\n<p>Now as a MathObject: &lt;&gt;&amp;'\";</p>\n<p><fillin characters=\"6\" name=\"AnSwEr0001\"/></p>\n</li>\n<li>\n<p>Special characters used by LaTeX, where LaTeX <c>\\text</c> and MathJax <c>\\text</c> disagree: #%&amp;&lt;&gt;\\^_`|~</p>\n<p>Now as a MathObject: #%&amp;&lt;&gt;\\^_`|~</p>\n<p><fillin characters=\"11\" name=\"AnSwEr0002\"/></p>\n</li>\n<li>\n<p>Special characters used by LaTeX, where LaTeX <c>\\text</c> and MathJax <c>\\text</c> can agree: ${}</p>\n<p>Now as a MathObject: ${}</p>\n<p><fillin characters=\"3\" name=\"AnSwEr0003\"/></p>\n</li>\n<li>\n<p>Alphanumeric characters: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</p>\n<p>Now as a MathObject: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</p>\n<p><fillin characters=\"62\" name=\"AnSwEr0004\"/></p>\n</li>\n<li>\n<p>Other characters: !()*+,-./:=?@[]</p>\n<p>Now as a MathObject: !()*+,-./:=?@[]</p>\n<p><fillin characters=\"15\" name=\"AnSwEr0005\"/></p>\n</li>\n</ol></p>\n<p>In answers, because of <tex/> and MathJax divergence, the first two should come out in verbatim. (And so should any string containing even one of those characters.) The latter three should come out in regular text.</p>\n</statement>\n    <answer>\n      <p>\n        <m>{\\verb!&lt;&gt;&amp;'\";!}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>{\\verb!#%&amp;&lt;&gt;\\^_`|~!}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>{\\text{\\$\\{\\}}}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\text{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>{\\text{!()*+,-./:=?@[]}}</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_2.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.1.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"contextABCD.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$xmlchars = q(<>&'\";);\n$latex0 = '#%&<>\\^_`|~';\n$latex1 = '${}';\n$alphanumeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n$otherchars = '!()*+,-./:=?@[]';\nContext()->strings->add($xmlchars=>{});\nContext()->strings->add($latex0=>{});\nContext()->strings->add($latex1=>{});\nContext()->strings->add($alphanumeric=>{});\nContext()->strings->add($otherchars=>{});\n$xmlcharsMO = String($xmlchars);\n$latex0MO = String($latex0);\n$latex1MO = String($latex1);\n$alphanumericMO = String($alphanumeric);\n$othercharsMO = String($otherchars);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Special characters used by XML, character escaping: [$xmlchars]\n\n    Now as a MathObject: [$xmlcharsMO]\n\n    [_]{$xmlchars}{6}\n\na.  Special characters used by LaTeX, where LaTeX [|\\text|]* and MathJax [|\\text|]* disagree: [$latex0]\n\n    Now as a MathObject: [$latex0MO]\n\n    [_]{$latex0}{11}\n\na.  Special characters used by LaTeX, where LaTeX [|\\text|]* and MathJax [|\\text|]* can agree: [$latex1]\n\n    Now as a MathObject: [$latex1MO]\n\n    [_]{$latex1}{3}\n\na.  Alphanumeric characters: [$alphanumeric]\n\n    Now as a MathObject: [$alphanumericMO]\n\n    [_]{$alphanumeric}{62}\n\na.  Other characters: [$otherchars]\n\n    Now as a MathObject: [$othercharsMO]\n\n    [_]{$otherchars}{15}\n\nIn answers, because of [$LATEX]* and MathJax divergence, the first two should come out in verbatim. (And so should any string containing even one of those characters.) The latter three should come out in regular text.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/multiple-choice-popup-or-radio-buttons.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-multiple-choice-popup-or-radio-buttons\" assembly-id=\"multiple-choice-popup-or-radio-buttons\">\n  <static seed=\"78\">\n    <statement><p>My favorite color is <ul form=\"popup\" name=\"AnSwEr0001\"><li>\n<p>?</p>\n</li><li>\n<p>Red</p>\n</li><li>\n<p>Blue</p>\n</li><li>\n<p>Green</p>\n</li></ul>.</p>\n<p>My favorite color is</p>\n<p><ul form=\"buttons\" name=\"AnSwEr0002\">\n<li>\n<p>Red</p>\n</li>\n<li>\n<p>Blue</p>\n</li>\n<li>\n<p>Green</p>\n</li>\n<li>\n<p>None of these</p>\n</li>\n</ul></p>\n<p>My favorite color is</p>\n<p><ul form=\"checkboxes\" name=\"AnSwEr0003\">\n<li>\n<p>Red</p>\n</li>\n<li>\n<p>Blue</p>\n</li>\n<li>\n<p>Green</p>\n</li>\n<li>\n<p>None of these</p>\n</li>\n</ul></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{Blue}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\text{Blue}</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\text{Blue}</m>\n      </p>\n    </answer>\n    <solution><p>The correct answer is Blue.</p>\n<p>The correct answer is Blue.</p>\n<p>The correct answer is Blue.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_3-Multiple_Choice_by_Popup_Radio_Buttons_or_Checkboxes.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"parserPopUp.pl\",\n  \"parserRadioButtons.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$color1 = PopUp([\"?\",\"Red\",\"Blue\",\"Green\"], 2);\n$color2 = RadioButtons([\"Red\",\"Blue\",\"Green\",\"None of these\"], 1);\n$color3 = CheckboxList([\"Red\",\"Blue\",\"Green\",\"None of these\"], [1]);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nMy favorite color is [_]{$color1}{5}.\n\nMy favorite color is\n\n[_]{$color2}{5}\n\nMy favorite color is\n\n[_]{$color3}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$color1].\n\nThe correct answer is [$color2].\n\nThe correct answer is [$color3].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/multiple-choice.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-multiple-choice\" assembly-id=\"multiple-choice\">\n  <static seed=\"54\">\n    <statement><p>The number <m>\\sqrt{2}</m> <ul form=\"popup\" name=\"AnSwEr0001\"><li>\n<p>?</p>\n</li><li>\n<p>is</p>\n</li><li>\n<p>is not</p>\n</li></ul> rational.</p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{is not}</m>\n      </p>\n    </answer>\n    <solution><p>If <m>\\sqrt{2}</m> were rational, then <m>\\sqrt{2}=\\frac{p}{q}\\text{,}</m> with <m>p</m> and <m>q</m> coprime. But then <m>2q^2=p^2\\text{.}</m> By <url href=\"\">the Fundamental Theorem of Arithmetic</url>, the power of <m>2</m> dividing the left side is odd, while the power of <m>2</m> dividing the right side is even. This is a contradiction, so <m>\\sqrt{2}</m> is not rational.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_1-DropdownPopup.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserPopUp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$rational = PopUp(\n    [\"?\",\"is\",\"is not\",],\n    \"is not\",\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThe number [`\\sqrt{2}`] [_]{$rational}{5} rational.\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nIf [`\\sqrt{2}`] were rational, then [`\\sqrt{2}=\\frac{p}{q}\\text{,}`] with [`p`] and [`q`] coprime. But then [`2q^2=p^2\\text{.}`] By [@htmlLink(\"https://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmetic#Canonical_representation_of_a_positive_integer\",\"the Fundamental Theorem of Arithmetic\",\"TARGET='_blank'\")@]*, the power of [`2`] dividing the left side is odd, while the power of [`2`] dividing the right side is even. This is a contradiction, so [`\\sqrt{2}`] [$rational] rational.\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/nested-tasks.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-nested-tasks\" assembly-id=\"nested-tasks\">\n  <static seed=\"29\">\n    <introduction><p>Consider the quadratic equation <m>{3x^{2}-16x-12} = 0\\text{.}</m></p>\n</introduction>\n    <task><title>Identify Coefficients</title>\n<introduction><p>Identify the coefficients for the quadratic equation using the standard form from Theorem<nbsp/>1.2.1.</p>\n</introduction><task><statement><p><m>a=</m> <fillin characters=\"4\" name=\"AnSwEr0001\"/>,</p>\n</statement><answer><p><m>3</m></p></answer><solution><p>Take the coefficient of <m>x^2</m> for the value of <m>a\\text{.}</m> <em>In this case</em>, <m>a = {3}\\text{.}</m></p>\n</solution></task><task><statement><p><m>b=</m> <fillin characters=\"4\" name=\"AnSwEr0002\"/>,</p>\n</statement><answer><p><m>-16</m></p></answer><solution><p>Take the coefficient of <m>x</m> for the value of <m>b\\text{.}</m> <em>In this case</em>, <m>b = {-16}\\text{.}</m></p>\n</solution></task><task><statement><p><m>c=</m> <fillin characters=\"4\" name=\"AnSwEr0003\"/></p>\n</statement><answer><p><m>-12</m></p></answer><solution><p>Take the constant term for the value of <m>c\\text{.}</m> <em>In this case</em>, <m>c = {-12}\\text{.}</m></p>\n</solution></task></task>\n    <task><title>Use the Quadratic Formula</title>\n<statement><p>Using the quadratic formula, solve the equation.</p>\n<p><fillin characters=\"40\" name=\"AnSwEr0004\"/></p>\n</statement><answer><p><m>\\left\\{6,\\frac{-2}{3}\\right\\}</m></p></answer><solution><p>Recall that the quadratic formula is given in Theorem<nbsp/>1.2.1.</p>\n<p>You already identified <m>a = {3}\\text{,}</m> <m>b = {-16}\\text{,}</m> and <m>c = {-12}\\text{,}</m> so the results are:</p>\n<p><me>x = {\\frac{-\\left(-16\\right)+\\sqrt{\\left(-16\\right)^{2}-4\\cdot 3\\cdot \\left(-12\\right)}}{2\\cdot 3}} = {6}</me></p>\n<p>or</p>\n<p><me>x = {\\frac{-\\left(-16\\right)-\\sqrt{\\left(-16\\right)^{2}-4\\cdot 3\\cdot \\left(-12\\right)}}{2\\cdot 3}} = {-{\\frac{2}{3}}}</me></p>\n</solution></task>\n    <conclusion><p>This conclusion is just here for testing.</p>\n</conclusion>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_3-Nested_tasks.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"answerHints.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\nCOMMENT(q\"Find a quadratic equation's solutions.\", 'One positive integer solution and one negative fraction solution.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$a = Compute(random(2,6,1));\ndo {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n$r = Compute(random(2,6,1));\n$c = $k*-$r;\n$b = $a*-$r+$k;\n$quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n$x1 = Fraction($r,1);\n$x2 = Fraction(-$k,$a);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n$sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n    [-$a] => \"Do you have the sign correct?\")\n);\n$evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n    [-$b] => \"Do you have the sign correct?\")\n);\n$evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n    [-$c] => \"Do you have the sign correct?\")\n);\nContext(\"FiniteSolutionSets\");\n$solutionset = Formula(\"{$x1,$x2}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the quadratic equation [`[$quadratic] = 0\\text{.}`]\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nIdentify the coefficients for the quadratic equation using the standard form from Theorem[$NBSP]*1.2.1.\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered=>1);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n[`a=`] [_]{$evaluatorfora}{4},\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{.}`] _In this case_, [`a = [$a]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n[`b=`] [_]{$evaluatorforb}{4},\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x`] for the value of [`b\\text{.}`] _In this case_, [`b = [$b]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n[`c=`] [_]{$evaluatorforc}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the constant term for the value of [`c\\text{.}`] _In this case_, [`c = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUsing the quadratic formula, solve the equation.\n\n[_]{$solutionset}{40}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Theorem[$NBSP]*1.2.1.\n\nYou already identified [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] and [`c = [$c]\\text{,}`] so the results are:\n\n[```x = [$sol1] = [$x1]```]\n\nor\n\n[```x = [$sol2] = [$x2]```]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nBEGIN_PGML\nThis conclusion is just here for testing.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/no-random.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-no-random\" assembly-id=\"no-random\">\n  <static seed=\"18\">\n    <statement><p><m>1+2=</m> <fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>3</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_6-No_Randomization.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+2=`] [_]{3}{5}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/number-or-function.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-number-or-function\" assembly-id=\"number-or-function\">\n  <static seed=\"76\">\n    <statement><p><ol label=\"a.\">\n<li>\n<p>Suppose the correct answer is <m>{-2}\\text{.}</m></p>\n<p><ul label=\"square\">\n<li>\n<p><fillin characters=\"15\" name=\"AnSwEr0001\"/></p>\n</li>\n</ul></p>\n</li>\n<li>\n<p>Suppose the correct answer is <m>\\displaystyle {\\frac{7-2x^{7}}{x}}\\text{.}</m></p>\n<p><ul label=\"square\">\n<li>\n<p><fillin characters=\"15\" name=\"AnSwEr0002\"/></p>\n</li>\n</ul></p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>-2</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>\\frac{7-2x^{7}}{x}</m>\n      </p>\n    </answer>\n    <solution><p>Solution explanation goes here.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_1-Answer_is_a_number_or_a_function.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = non_zero_random(-9,9,1);\ndo { $b = random(2,9,1); } until ( $b != $a );\n$answer1 = Compute(\"$a\");\n$answer2 = Compute(\"($a x^($b) + $b)/x\")->reduce();\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Suppose the correct answer is [`[$answer1]\\text{.}`]\n\n    + [_]{$answer1}{15} [@AnswerFormatHelp('numbers')@]*\n\na.  Suppose the correct answer is [`\\displaystyle [$answer2]\\text{.}`]\n\n    + [_]{$answer2}{15} [@AnswerFormatHelp('formulas')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nSolution explanation goes here.\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/options-subset-auto-label.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-options-subset-auto-label\" assembly-id=\"options-subset-auto-label\">\n  <static seed=\"57\">\n    <statement><p>Select all expressions that are equivalent to <m>e^{x^2 + 1/x}\\text{.}</m> There may be more than one correct answer.</p>\n<p><ol form=\"checkboxes\" marker=\"A\" name=\"AnSwEr0001\">\n<li>\n<p><m>e^{x^2} e^{x^{-1}}</m></p>\n</li>\n<li>\n<p><m>e^{ (x^3+1) / x}</m></p>\n</li>\n<li>\n<p><m>\\dfrac{ e^{x^2} }{ e^x }</m></p>\n</li>\n<li>\n<p><m>e^{x^2} e^{1/x}</m></p>\n</li>\n<li>\n<p><m>e^{x^2} + e^{1/x}</m></p>\n</li>\n<li>\n<p>None of the above</p>\n</li>\n</ol></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{A, B, D}</m>\n      </p>\n    </answer>\n    <solution><p>The correct answer is A, B, D.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_4-Choose_a_Subset_of_Options_with_Automated_Labeling.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$checks = CheckboxList(\n    [\n        [\n            \"${BM}e^{x^2} e^{1/x}${EM}\",\n            \"${BM}e^{x^2} e^{x^{-1}}${EM}\",\n            \"${BM}e^{ (x^3+1) / x}${EM}\",\n            \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\",\n            \"${BM}e^{x^2} + e^{1/x}${EM}\"\n        ],\n        \"None of the above\"\n    ],\n    [0, 1, 2],\n    labels => \"ABC\",   # \"abc\", \"123\", \"roman\", \"Roman\"\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSelect all expressions that are equivalent to [`e^{x^2 + 1/x}\\text{.}`] There may be more than one correct answer.\n\n[_]{$checks}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$checks].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/options-subset-explicit-labeling.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-options-subset-explicit-labeling\" assembly-id=\"options-subset-explicit-labeling\">\n  <static seed=\"58\">\n    <statement><p>Select all expressions that are equivalent to <m>e^{x^2 + 1/x}\\text{.}</m> There may be more than one correct answer.</p>\n<p><dl form=\"checkboxes\" name=\"AnSwEr0001\" width=\"narrow\">\n<li>\n<title>SUSHI</title>\n<p><m>e^{ (x^3+1) / x}</m></p>\n</li>\n<li>\n<title>BURRITO</title>\n<p><m>e^{x^2} + e^{1/x}</m></p>\n</li>\n<li>\n<title>BURGER</title>\n<p><m>\\dfrac{ e^{x^2} }{ e^x }</m></p>\n</li>\n<li>\n<title>TACO</title>\n<p><m>e^{x^2} e^{1/x}</m></p>\n</li>\n<li>\n<title>PIZZA</title>\n<p><m>e^{x^2} e^{x^{-1}}</m></p>\n</li>\n<li>\n<title>HUNGRY</title>\n<p>None of the above</p>\n</li>\n</dl></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{SUSHI, TACO, PIZZA}</m>\n      </p>\n    </answer>\n    <solution><p>The correct answer is SUSHI, TACO, PIZZA.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_5-Choose_a_Subset_of_Options_with_Explicit_Labeling.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$checks = CheckboxList(\n    [\n        [\n            {TACO => \"${BM}e^{x^2} e^{1/x}${EM}\"},\n            {PIZZA => \"${BM}e^{x^2} e^{x^{-1}}${EM}\"},\n            {SUSHI => \"${BM}e^{ (x^3+1) / x}${EM}\"},\n            {BURGER => \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\"},\n            {BURRITO => \"${BM}e^{x^2} + e^{1/x}${EM}\"}\n        ],\n        {HUNGRY => \"None of the above\"}\n    ],\n    [0, 1, 2],\n    displayLabels => 1\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSelect all expressions that are equivalent to [`e^{x^2 + 1/x}\\text{.}`] There may be more than one correct answer.\n\n[_]{$checks}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$checks].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/options-subset.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-options-subset\" assembly-id=\"options-subset\">\n  <static seed=\"56\">\n    <statement><p>Select all expressions that are equivalent to <m>e^{x^2 + 1/x}\\text{.}</m> There may be more than one correct answer.</p>\n<p><ul form=\"checkboxes\" name=\"AnSwEr0001\">\n<li>\n<p><m>e^{x^2} e^{x^{-1}}</m></p>\n</li>\n<li>\n<p><m>\\dfrac{ e^{x^2} }{ e^x }</m></p>\n</li>\n<li>\n<p><m>e^{x^2} e^{1/x}</m></p>\n</li>\n<li>\n<p><m>e^{x^2} + e^{1/x}</m></p>\n</li>\n<li>\n<p><m>e^{ (x^3+1) / x}</m></p>\n</li>\n<li>\n<p>None of the above</p>\n</li>\n</ul></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{Choice 1, Choice 3, Choice 5}</m>\n      </p>\n    </answer>\n    <solution><p>The correct answer is Choice 1, Choice 3, Choice 5.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_3-Choose_a_Subset_of_Options.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$checks = CheckboxList(\n    [\n        [\n            \"${BM}e^{x^2} e^{1/x}${EM}\",\n            \"${BM}e^{x^2} e^{x^{-1}}${EM}\",\n            \"${BM}e^{ (x^3+1) / x}${EM}\",\n            \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\",\n            \"${BM}e^{x^2} + e^{1/x}${EM}\"\n        ],\n        \"None of the above\"\n    ],\n    [0, 1, 2]\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSelect all expressions that are equivalent to [`e^{x^2 + 1/x}\\text{.}`] There may be more than one correct answer.\n\n[_]{$checks}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$checks].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_1-Adding_SingleDigit_Integers.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_3-Controlling_Randomness.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\nif ($envir{problemSeed}==1){$a=1;$b=2};\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_4-Special_Answer_Checking.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PCCmacros.pl\",\n  \"answerHints.pl\",\n  \"contextForm.pl\",\n  \"contextLimitedPolynomial.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = $a + $b;\n$expression = Formula(\"x^($a)*x^($b)\");\n\nContext(\"LimitedPolynomial-Strict\");\n# custom error message\nContext()->{error}{msg}{\"A variable can appear only once in each term of a polynomial\"}\n    = \"Your answer must be fully simplified\";\n\n$answer = Formula(\"x^($c)\");\n$product = $a*$b;\n$evaluator = $answer->cmp()->withPostFilter(AnswerHints(\n    [Compute(\"x^($product)\")] =>\n    \"When multiplying terms with the same base, you do not multiply the exponents.\"));\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nUse the properties of exponents to simplify [`[$expression]\\text{.}`]\n\n[@KeyboardInstructions('To enter a power, use a [|^|]*, as in [|x^2|]* for [`x^2\\text{.}`]')@]**\n\n[`[$expression]=`] [_]{$evaluator}{8} [@AnswerFormatHelp('formulas')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nWe _add_ the exponents as follows, while including a gratuitous reference to the quadratic formula:\n\n[```\n\\begin{aligned}\n[$expression]&=x^{[$a]+[$b]}&\\text{Theorem 1.2.1}\\\\\n&=x^{[$c]}\n\\end{aligned}\n```]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_5-Using_Hints.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"contextForm.pl\",\n  \"contextLimitedRadical.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\ndo {\n    $a = list_random(2,3,5,6);\n    $b = random(1, 5, 1);\n   } until (gcd($a,$b) == 1);\n$c = $a * $b**2;\nContext()->flags->set(reduceConstantFunctions=>0);\n$expression = Formula(\"sqrt($c)\");\n\nContext(\"LimitedRadical\");\n\n$answer = Formula(\"$b sqrt($a)\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSimplify the expression [`[$expression]\\text{.}`]\n\n[`[$expression]=`] [_]{$answer}{10}\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\nFactor the number inside the radical.\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n\n[```[$expression]=\\sqrt{[$b]^2\\cdot [$a]}=[$b]\\sqrt{[$a]}```]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_6-No_Randomization.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+2=`] [_]{3}{5}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_7-Local_PG.pg",
    "content": "DOCUMENT();\n\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Add two positive single-digit integers.');\n\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_8-Local_PG_File.pg",
    "content": "DOCUMENT();\n\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Add two positive single-digit integers.');\n\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/Exploration-1_1_2-Inside_an_exploration.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/Project-1_1_1-Inside_a_project.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('Add two positive single-digit integers.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n[`[$a] + [$b] = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_2-Solving_Quadratic_Equations.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"answerHints.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\nCOMMENT(q\"Find a quadratic equation's solutions.\", 'One positive integer solution and one negative fraction solution.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$a = Compute(random(2,6,1));\ndo {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n$r = Compute(random(2,6,1));\n$c = $k*-$r;\n$b = $a*-$r+$k;\n$quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n$x1 = Fraction($r,1);\n$x2 = Fraction(-$k,$a);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n$sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n    [-$a] => \"Do you have the sign correct?\")\n);\n$evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n    [-$b] => \"Do you have the sign correct?\")\n);\n$evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n    [-$c] => \"Do you have the sign correct?\")\n);\nContext(\"FiniteSolutionSets\");\n$solutionset = Formula(\"{$x1,$x2}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the quadratic equation [`[$quadratic] = 0\\text{.}`]\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nIdentify the coefficients for the quadratic equation using the standard form from Theorem[$NBSP]*1.2.1.\n\n[`a=`] [_]{$evaluatorfora}{4}, [`b=`] [_]{$evaluatorforb}{4}, [`c=`] [_]{$evaluatorforc}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{,}`] the coefficient of [`x`] for [`b\\text{,}`] and the constant for [`c\\text{.}`] _In this case_, they are [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] [`c = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUsing the quadratic formula, solve the equation.\n\n[_]{$solutionset}{40}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Theorem[$NBSP]*1.2.1.\n\nYou already identified [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] and [`c = [$c]\\text{,}`] so the results are:\n\n[```x = [$sol1] = [$x1]```]\n\nor\n\n[```x = [$sol2] = [$x2]```]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nBEGIN_PGML\nThis conclusion is just here for testing.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_3-Nested_tasks.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"answerHints.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\nCOMMENT(q\"Find a quadratic equation's solutions.\", 'One positive integer solution and one negative fraction solution.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$a = Compute(random(2,6,1));\ndo {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n$r = Compute(random(2,6,1));\n$c = $k*-$r;\n$b = $a*-$r+$k;\n$quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n$x1 = Fraction($r,1);\n$x2 = Fraction(-$k,$a);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n$sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n    [-$a] => \"Do you have the sign correct?\")\n);\n$evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n    [-$b] => \"Do you have the sign correct?\")\n);\n$evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n    [-$c] => \"Do you have the sign correct?\")\n);\nContext(\"FiniteSolutionSets\");\n$solutionset = Formula(\"{$x1,$x2}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the quadratic equation [`[$quadratic] = 0\\text{.}`]\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nIdentify the coefficients for the quadratic equation using the standard form from Theorem[$NBSP]*1.2.1.\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered=>1);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n[`a=`] [_]{$evaluatorfora}{4},\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{.}`] _In this case_, [`a = [$a]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n[`b=`] [_]{$evaluatorforb}{4},\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x`] for the value of [`b\\text{.}`] _In this case_, [`b = [$b]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n[`c=`] [_]{$evaluatorforc}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the constant term for the value of [`c\\text{.}`] _In this case_, [`c = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUsing the quadratic formula, solve the equation.\n\n[_]{$solutionset}{40}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Theorem[$NBSP]*1.2.1.\n\nYou already identified [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] and [`c = [$c]\\text{,}`] so the results are:\n\n[```x = [$sol1] = [$x1]```]\n\nor\n\n[```x = [$sol2] = [$x2]```]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nBEGIN_PGML\nThis conclusion is just here for testing.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_2-Every_Continuous_Function_has_an_Antiderivative.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGessaymacros.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nExplain how we can use Corollary[$NBSP]*1.4.3 to say that every continuous function _always_ has a derivative. (And we will demonstrate here that you can use a  macro from [|docinfo|]*: [`\\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4}\\definiteintegral{1}{2}{\\frac{1}{x}}{x}=\\ln(2)\\text{.}`] It will work in the WeBWorK problem, regardless of whether you are using images, MathJax, or hardcopy.)\n\n[@ANS(essay_cmp()); essay_box(6,76)@]* [@essay_help()@]*\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_3-Inverse_Processes.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGessaymacros.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n\"Differentiation and integration are inverse processes.\"  Cite *specific results* from this section in an explanation of how they justify this (somewhat imprecise) claim.\n\n[@ANS(essay_cmp()); essay_box(6,40)@]* [@essay_help()@]*\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_4.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserFormulaUpToConstant.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$answer = FormulaUpToConstant(\"-cos(x)\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nFor the given function [`f\\text{,}`] find [`\\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\\indefiniteintegral{f(x)}{x}\\text{.}`]\n\nNote that these common instructions are phrased in such a way that they would read well if they were applied to only one exercise at a time. That will happen if these exercises are exported as [|.pg|]* files, for example to be used in online homework from a WeBWorK server.\n\n[`f(x)=\\sin(x)`]\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_5.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserFormulaUpToConstant.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$answer = FormulaUpToConstant(\"e^x\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nFor the given function [`f\\text{,}`] find [`\\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\\indefiniteintegral{f(x)}{x}\\text{.}`]\n\nNote that these common instructions are phrased in such a way that they would read well if they were applied to only one exercise at a time. That will happen if these exercises are exported as [|.pg|]* files, for example to be used in online homework from a WeBWorK server.\n\n[`f(x)=e^x`]\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_6-Show_Your_Work.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGessaymacros.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$answer = Formula('2x');\n$showwork = '[@ explanation_box(message => \"Show your work.\") @]*';\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nUse the definition of the derivative to find [`\\frac{d}{dx}x^2\\text{.}`]\n\n[_]{$answer}{10}\n\n[$showwork]**\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_5-Math_Content/1_5_1-Math_Elements_and_Alignment.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.5.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nIf [`a=5`] and [`b=12\\text{,}`] then\n\n[```a^2+b^2=13^2\\text{.}```]\n\nHere, we solve an equation.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n2x+1 \\amp= 3\\\\\n2x   \\amp= 2\\\\\nx    \\amp= 1\n\\end{aligned}\n```]\n\nHere we have a three-way inequality to solve.\n\n[```\\newcommand{\\lt}{<}\n\\begin{gathered}\n1 \\lt 2x+1 \\lt 3\\\\\n0 \\lt 2x   \\lt 2\\\\\n0 \\lt x    \\lt 1\n\\end{gathered}\n```]\n\nAnd here, we see a system of equations.\n\n[```\\newcommand{\\amp}{&}\n\\begin{alignedat}{3}\n2x + 2y \\amp {}+{} \\amp z \\amp {}={} \\amp 10\\\\\ny \\amp {}-{} \\amp  4z \\amp {}={} \\amp 9\\\\\n\\amp\\amp   3z \\amp {}={} \\amp -6\n\\end{alignedat}\n```]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_5-Math_Content/1_5_2-Intertext.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.5.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nHere, we solve an equation.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n2x+1 \\amp= 3\n\\end{aligned}\n```]\n\nNow subtract [`1`] from each side.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\n2x   \\amp= 2\n\\end{aligned}\n```]\n\nNow divide by [`2`] on each side.\n\n[```\\newcommand{\\amp}{&}\n\\begin{aligned}\nx    \\amp= 1\n\\end{aligned}\n```]\n\nWe should also test when the [|<md>|]* is within a list.\na.  Start a list.\n\na.  [$NBSP]*\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    2x+1 \\amp= 3\n    \\end{aligned}\n    ```]\n\n    Now subtract [`1`] from each side.\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    2x   \\amp= 2\n    \\end{aligned}\n    ```]\n\n    Now divide by [`2`] on each side.\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    x    \\amp= 1\n    \\end{aligned}\n    ```]\n\na.  Still in the list?\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_1-DropdownPopup.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserPopUp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$rational = PopUp(\n    [\"?\",\"is\",\"is not\",],\n    \"is not\",\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThe number [`\\sqrt{2}`] [_]{$rational}{5} rational.\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nIf [`\\sqrt{2}`] were rational, then [`\\sqrt{2}=\\frac{p}{q}\\text{,}`] with [`p`] and [`q`] coprime. But then [`2q^2=p^2\\text{.}`] By [@htmlLink(\"https://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmetic#Canonical_representation_of_a_positive_integer\",\"the Fundamental Theorem of Arithmetic\",\"TARGET='_blank'\")@]*, the power of [`2`] dividing the left side is odd, while the power of [`2`] dividing the right side is even. This is a contradiction, so [`\\sqrt{2}`] [$rational] rational.\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_2-Choose_one.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserRadioButtons.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$theorem = RadioButtons(\n  [\"The Quadratic Formula\",\"The Fundamental Theorem of Calculus\",\"The Fundamental Theorem of Arithmetic\",\"None of these\"],\n  1, # index of correct answer; could also just be the correct answer\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nWhich of the following suggest that differentiation and integration are inverse processes?\n\n[_]{$theorem}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$theorem].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_3-Choose_a_Subset_of_Options.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$checks = CheckboxList(\n    [\n        [\n            \"${BM}e^{x^2} e^{1/x}${EM}\",\n            \"${BM}e^{x^2} e^{x^{-1}}${EM}\",\n            \"${BM}e^{ (x^3+1) / x}${EM}\",\n            \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\",\n            \"${BM}e^{x^2} + e^{1/x}${EM}\"\n        ],\n        \"None of the above\"\n    ],\n    [0, 1, 2]\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSelect all expressions that are equivalent to [`e^{x^2 + 1/x}\\text{.}`] There may be more than one correct answer.\n\n[_]{$checks}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$checks].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_4-Choose_a_Subset_of_Options_with_Automated_Labeling.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$checks = CheckboxList(\n    [\n        [\n            \"${BM}e^{x^2} e^{1/x}${EM}\",\n            \"${BM}e^{x^2} e^{x^{-1}}${EM}\",\n            \"${BM}e^{ (x^3+1) / x}${EM}\",\n            \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\",\n            \"${BM}e^{x^2} + e^{1/x}${EM}\"\n        ],\n        \"None of the above\"\n    ],\n    [0, 1, 2],\n    labels => \"ABC\",   # \"abc\", \"123\", \"roman\", \"Roman\"\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSelect all expressions that are equivalent to [`e^{x^2 + 1/x}\\text{.}`] There may be more than one correct answer.\n\n[_]{$checks}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$checks].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_5-Choose_a_Subset_of_Options_with_Explicit_Labeling.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.6.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$checks = CheckboxList(\n    [\n        [\n            {TACO => \"${BM}e^{x^2} e^{1/x}${EM}\"},\n            {PIZZA => \"${BM}e^{x^2} e^{x^{-1}}${EM}\"},\n            {SUSHI => \"${BM}e^{ (x^3+1) / x}${EM}\"},\n            {BURGER => \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\"},\n            {BURRITO => \"${BM}e^{x^2} + e^{1/x}${EM}\"}\n        ],\n        {HUNGRY => \"None of the above\"}\n    ],\n    [0, 1, 2],\n    displayLabels => 1\n);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSelect all expressions that are equivalent to [`e^{x^2 + 1/x}\\text{.}`] There may be more than one correct answer.\n\n[_]{$checks}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$checks].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_7-Tables/1_7_1-Complete_this_Table.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.7.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n@a = (random(2,9,1),random(2,9,1));\n@b = (random(2,9,1),random(2,9,1));\nfor my$i(0..3){$p[$i]=$a[int($i/2)]*$b[$i % 2]};\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nComplete this multiplication table.\n\n>> [@DataTable(\n  [\n    [[PGML('[`\\times`]'),\n      rowbottom => '3',\n      midrule => '1',],\n     PGML('[`[$a[0]]`]'),\n     PGML('[`[$a[1]]`]'),\n    ],\n    [[PGML('[`[$b[0]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[_]{$p[0]}{5}'),\n     PGML('[_]{$p[2]}{5}'),\n    ],\n    [[PGML('[`[$b[1]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[_]{$p[1]}{5}'),\n     PGML('[_]{$p[3]}{5}'),\n    ],\n  ],\n      align => 'r!{\\vrule width 0.11em}c|c|',\n      valign => 'middle',);@]* <<\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@DataTable(\n  [\n    [[PGML('[`\\times`]'),\n      rowbottom => '3',\n      midrule => '1',],\n     PGML('[`[$a[0]]`]'),\n     PGML('[`[$a[1]]`]'),\n    ],\n    [[PGML('[`[$b[0]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[`[$p[0]]`]'),\n     PGML('[`[$p[2]]`]'),\n    ],\n    [[PGML('[`[$b[1]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[`[$p[1]]`]'),\n     PGML('[`[$p[3]]`]'),\n    ],\n  ],\n      align => 'r!{\\vrule width 0.11em}c|c|',\n      valign => 'middle',);@]* <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_1-A_static_lateximage_graph.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"PCCmacros.pl\",\n  \"parserOneOf.pl\",\n  \"contextForm.pl\",\n  \"contextIntegerFunctions.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"IntegerFunctions\");\nContext()->variables->are(n=>'Real');\n$answer = OneOf(Formula(\"C(n+1,2)\"),Formula(\"(n+1)n/2\"));\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw[dashed] (0.5-0.5*6.5,-0.866025*6.5) -- (7-0.5*6.5,-0.866025*6.5);\n    \\draw[very thick] (2-0.5*7,-0.866025*7) -- (2-0.5*4,-0.866025*4) -- (5-0.5*7,-0.866025*7);\n    \\foreach \\x in {1,...,6}\n        \\foreach \\y in {1,...,\\x}\n            \\shade[ball color=blue!30] (\\y-0.5*\\x,-0.866025*\\x) circle (0.2cm);\n    \\foreach \\y in {1,...,7}\n        \\shade[ball color=orange!40] (\\y-0.5*7,-0.866025*7) circle (0.2cm);\n    \\node at (2.5,-0.5) [anchor=north west]{\\(\\color{blue}\\sum\\limits_{k=1}^nk\\color{black}\\)};\n    \\shade[ball color=blue] (2-0.5*4,-0.866025*4) circle (0.2cm);\n    \\shade[ball color=orange] (2-0.5*7,-0.866025*7) circle (0.2cm);\n    \\shade[ball color=orange] (5-0.5*7,-0.866025*7) circle (0.2cm);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis image is a visual proof that [`\\sum_{k=1}^{n}k`] equals what?\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"21 blue balls are arranged in a triangular formation, with one at the top, then a row of two, a row of three, and so on until a row of six; there is a seventh row with seven orange balls; one blue ball is highlighted, and two lines extend downward from that ball, one to the left and one to the right, parallel to the sides of the triangle, until they intersect two orange balls; the effect is that each of the 1\\+2\\+3\\+4\\+5\\+6 blue balls corresponds to one pair from the 7 orange balls\")@]*  <<\n\n[@KeyboardInstructions('You may enter the answer using [|C(n,k)|]* notation.')@]**\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_1.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$introduction_image_1 = createLaTeXImage();\n$introduction_image_1->addToPreamble(latexImagePreamble());\n$introduction_image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(L\\)} --++ (0,3) node[right,pos=0.5] {\\(W\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(D\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(4\\)} --++ (0,3) node[right,pos=0.5] {\\(3\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(5\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis exercisegroup has a [|<latex-image>|]* image in its introduction. In standalone versions of the exercise, this image should be repeated.\n\n>> [@image(insertGraph($introduction_image_1), width=>300)@]*  <<\n\nFind [`D`] when [`L=4`] and [`W=3\\text{.}`]\n\n[_]{'5'}{10}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($image_1), width=>600)@]*  <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_2-A_randomized_lateximage_graph.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"parserNumberWithUnits.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(4,6,1);\n$b = $a + random(2,4,1);\n$area = NumberWithUnits($a*$b, 'cm^2');\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw[fill=blue!20] (0,0) --++ (6,0) node[pos=0.5,below] {\\($b\\)\\,cm} --++ (0,4) node[pos=0.5,right] {\\($a\\)\\,cm} --++ (-6,0) -- cycle;\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nFind the area of the rectangle.\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"a rectangle whose width is labeled $b cm and height is labeled $a cm\")@]*  <<\n\n[_]{$area}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_2.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$introduction_image_1 = createLaTeXImage();\n$introduction_image_1->addToPreamble(latexImagePreamble());\n$introduction_image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(L\\)} --++ (0,3) node[right,pos=0.5] {\\(W\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(D\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(12\\)} --++ (0,3) node[right,pos=0.5] {\\(5\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(13\\)} --++ (0,3) --++ (4,0);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis exercisegroup has a [|<latex-image>|]* image in its introduction. In standalone versions of the exercise, this image should be repeated.\n\n>> [@image(insertGraph($introduction_image_1), width=>300)@]*  <<\n\nFind [`D`] when [`L=12`] and [`W=5\\text{.}`]\n\n[_]{'13'}{10}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($image_1), width=>600)@]*  <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_3-A_lateximage_graph_affected_by_lateximagepreamble.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"PGchoicemacros.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n@roots = (-3..3)[NchooseK(7,3)];\n@roots = num_sort(@roots);\n$answer = List(@roots);\n$xmin = min(-1,@roots)-1;\n$xmax = max(1,@roots)+1;\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\begin{axis}\n        \\addplot[domain=$xmin:$xmax,smooth] {(x-$roots[0])*(x-$roots[1])*(x-$roots[2])};\n    \\end{axis}\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nWhat are the roots of this polynomial?\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"the graph of a polynomial that crosses the x-axis at $roots[0], $roots[1], and $roots[2].\")@]*  <<\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_4-Special_characters.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\node at (0,0) {I need about \\~~$3.50.};\n    \\node at (0,1) {You gotta give 110\\~~%.};  %This is a comment.\n    \\node at (0,2) {Send email user~~@domain.com.};\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThe code below has a printed dollar sign, a printed percent sign, a printed at sign, and a percent sign used as a comment marker.\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"this image has pictures of text with special characters like \\$, %, and @\")@]*  <<\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_5-Solve_using_a_graph.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGgraphmacros.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$a = random(1,3,1);\n$gr = init_graph(-1,-1,4,4,\naxes=>[0,0],\ngrid=>[5,5],\nsize=>[300,180]\n);\nadd_functions($gr, \"x^3/$a^3 for x in <-1,4> using color:blue and weight:2\");\n$second_x = Real($a*2**(1/3));\n$solgr = init_graph(-1,-1,4,4,\naxes=>[0,0],\ngrid=>[5,5],\nsize=>[300,180]\n);\nadd_functions($solgr, \"x^3/$a^3 for x in <-1,4> using color:blue and weight:2\");\n$solgr->moveTo(0,1);\n$solgr->lineTo($a,1,'black',3);\n$solgr->arrowTo($a,0,'black',3);\nContext(\"FiniteSolutionSets\");\n$answer = Formula(\"{$a}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThe graph below is a graph of [`y=f(x)\\text{.}`] Use the graph to solve the equation [`f(x)=1\\text{.}`]\n\n>> [@image(insertGraph($gr), width=>300, alt=>qq\"a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points ($a,1) and ($second_x,2) before leaving the graph moving more and more upward and to the right.\")@]*  <<\n\n[_]{$answer}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe graph reveals that the solution set to [`f(x)=1`] is [`[$answer]\\text{.}`]\n\n>> [@image(insertGraph($solgr), width=>300, alt=>qq\"a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points ($a,1) and ($second_x,2) before leaving the graph moving more and more upward and to the right; a horizontal line segment moves rightward from y=1 on the y-axis until it reaches a point on the curve; a vertical line segment moves down from this point to x=$a on the x-axis.\")@]*  <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_1-PGML_Formatting.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.1.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSmart double quotes: \"Life is about making an impact, not making an income.\"\n\nSmart single quotes: 'Whatever the mind of man can conceive and believe, it can achieve.'\n\nRegular apostrophes: My siblings' mother's daughter isn't my daughter's siblings' mother.\n\nEmphasis: _very important_\n\nAlert: *do not* do it\n\nBraces: \\{text that looks like a set\\}\n\n```\n    Some pre-formatted text\n                with an indented line\nand an out-dented line\nThis should not be altered *a problem*\nAnd this [$NDASH]* should not be an en-dash\n```\n\nHere is some inline [|code with special characters & < > \" ' # $ % ^ _ { } ~ \\ * [ ]|]*, and here is some\n```\nsingle-line display code with special characters & < > \" ' # $ % ^ _ { } ~ \\ * [ ]\n```\nand here is some\n```\nmulti-line display   \ncode with special characters & < > \" ' # $ % ^ _ { } ~ \\ * [ ]   \n```\n\nSome raw characters, XML/HTML:    & < > \" '\n\nSome raw characters, [$LATEX]*:    \\# \\$ % ^ & \\_ \\{ \\} ~ \\\\\n\nSome raw characters, PGML:        \\\\ \\* \\# \\{ \\} \\[ \\]\n\nSome characters that need special handling for PGML conversion to HTML or [$LATEX]*:\n\nA non[$NBSP]*breaking space (invisble where a hyphen should be)\n\nAn ndash[$NDASH]*right here.\n\nAn mdash[$MDASH]*right here.\n\nSome constructions in \"normal\" text, which need to be manipulated, lest they get interpreted as PGML markup:\n\n\\>\\>This should not be a centered line <<\n\n\\>\\>Nor a right-justified line, either\n\nWe should not get \\_a phrase in italics\\_ in the midst of this sentence.\n\nBrackets, unpaired; \\] with content between \\[\n\nBrackets, paired, in PGML constructions; \\[\\$NDASH\\]\\*, \\[\\_\\_\\_\\]\\{\\$answer\\}\n\n\\#\\#\\# This should not be a level 3 heading\n\n=\\==   Not a horizontal rule from three equal signs\n\n==    Not a horizontal rule from two equal signs\n\n=\\==== Not a horizontal rule from five equal signs\n\n-\\-\\-   Not a horizontal rule from three hyphens\n\n-\\-    Not a horizontal rule from two hyphens\n\n-\\---\\- Not a horizontal rule from five hyphens\n\n\\+ Not an unordered list item\n\n\\- Not an unordered list item\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_2.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.1.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"contextABCD.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$xmlchars = q(<>&'\";);\n$latex0 = '#%&<>\\^_`|~';\n$latex1 = '${}';\n$alphanumeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n$otherchars = '!()*+,-./:=?@[]';\nContext()->strings->add($xmlchars=>{});\nContext()->strings->add($latex0=>{});\nContext()->strings->add($latex1=>{});\nContext()->strings->add($alphanumeric=>{});\nContext()->strings->add($otherchars=>{});\n$xmlcharsMO = String($xmlchars);\n$latex0MO = String($latex0);\n$latex1MO = String($latex1);\n$alphanumericMO = String($alphanumeric);\n$othercharsMO = String($otherchars);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Special characters used by XML, character escaping: [$xmlchars]\n\n    Now as a MathObject: [$xmlcharsMO]\n\n    [_]{$xmlchars}{6}\n\na.  Special characters used by LaTeX, where LaTeX [|\\text|]* and MathJax [|\\text|]* disagree: [$latex0]\n\n    Now as a MathObject: [$latex0MO]\n\n    [_]{$latex0}{11}\n\na.  Special characters used by LaTeX, where LaTeX [|\\text|]* and MathJax [|\\text|]* can agree: [$latex1]\n\n    Now as a MathObject: [$latex1MO]\n\n    [_]{$latex1}{3}\n\na.  Alphanumeric characters: [$alphanumeric]\n\n    Now as a MathObject: [$alphanumericMO]\n\n    [_]{$alphanumeric}{62}\n\na.  Other characters: [$otherchars]\n\n    Now as a MathObject: [$othercharsMO]\n\n    [_]{$otherchars}{15}\n\nIn answers, because of [$LATEX]* and MathJax divergence, the first two should come out in verbatim. (And so should any string containing even one of those characters.) The latter three should come out in regular text.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_3.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.1.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$statement = 'some PGML math: [`\\frac{1}{2}+\\frac{3}{2}=2`]; and some *bold text*';\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[$statement] makes:\n\n[$statement]**\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_1-Answer_is_a_number_or_a_function.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = non_zero_random(-9,9,1);\ndo { $b = random(2,9,1); } until ( $b != $a );\n$answer1 = Compute(\"$a\");\n$answer2 = Compute(\"($a x^($b) + $b)/x\")->reduce();\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Suppose the correct answer is [`[$answer1]\\text{.}`]\n\n    + [_]{$answer1}{15} [@AnswerFormatHelp('numbers')@]*\n\na.  Suppose the correct answer is [`\\displaystyle [$answer2]\\text{.}`]\n\n    + [_]{$answer2}{15} [@AnswerFormatHelp('formulas')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nSolution explanation goes here.\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_2-Answer_is_a_function_with_domain_issues.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"answerHints.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(2,5,1);\n$answer1 = Compute(\"sqrt(x-$a)\");\n$answer1->{limits} = [$a+1,$a+4];\n$answer2 = Compute(\"ln(abs( x / (x-$a) ))\");\n$answer2->{test_points} = [[-5],[-4],[1],[$a-1],[7],[8]];\n$answer2evaluator = $answer2 -> cmp() -> withPostFilter( AnswerHints( [Compute(\"ln(abs((x-$a)/x))\"),] => \"This is the opposite of correct...\",));\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Suppose the correct answer is [`\\displaystyle [$answer1]\\text{.}`]\n\n    + [_]{$answer1}{15} [@AnswerFormatHelp('formulas')@]*\n\na.  Suppose the correct answer is [`\\displaystyle [$answer2]\\text{.}`]\n\n    + [_]{$answer2evaluator}{15} [@AnswerFormatHelp('formulas')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nSolution explanation goes here.\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_3-Multiple_Choice_by_Popup_Radio_Buttons_or_Checkboxes.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserCheckboxList.pl\",\n  \"parserPopUp.pl\",\n  \"parserRadioButtons.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$color1 = PopUp([\"?\",\"Red\",\"Blue\",\"Green\"], 2);\n$color2 = RadioButtons([\"Red\",\"Blue\",\"Green\",\"None of these\"], 1);\n$color3 = CheckboxList([\"Red\",\"Blue\",\"Green\",\"None of these\"], [1]);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nMy favorite color is [_]{$color1}{5}.\n\nMy favorite color is\n\n[_]{$color2}{5}\n\nMy favorite color is\n\n[_]{$color3}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe correct answer is [$color1].\n\nThe correct answer is [$color2].\n\nThe correct answer is [$color3].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_4.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserRadioButtons.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$expressions = RadioButtons(['\\(x\\)','\\(x^2\\)','\\(2^x\\)'], 2);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThere is math in each option for this question. Which expression is not a polynomial?\n\n[_]{$expressions}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe answer is [$expressions].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_5-Tables.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$x = Real(5);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nA table with minimal XML source.\n\n>> [@DataTable(\n  [\n    [PGML('A'),\n     PGML('B'),\n     PGML('C'),\n    ],\n    [PGML('D'),\n     PGML('E'),\n     PGML('F'),\n    ],\n    [PGML('G'),\n     PGML('H'),\n     PGML('I'),\n    ],\n  ],\n      align => '*{3}{l}',\n      valign => 'middle',);@]* <<\n\nFinish this table.\n\n>> [@DataTable(\n  [\n    [[PGML('1'),\n      halign => 'r',],\n     PGML('two'),\n     PGML('[`\\lfloor\\pi\\rfloor`]'),\n    ],\n    [[PGML('[`\\text{I}+\\text{I}`]  \n[`{}+\\text{I}+\\text{I}`]  \n'),\n      rowbottom => '3',\n      midrule => '1',\n      bottom => '1',\n      valign => 'bottom',],\n     PGML('[_]{$x}{5}'),\n     PGML('six'),\n    ],\n    [[PGML('[`2^3-1`]'),\n      rowbottom => '3',\n      midrule => '1',],\n     [PGML('VIII'),\n      colspan => '2',],\n    ],\n  ],\n      align => '!{\\vrule width 0.11em}r|c!{\\vrule width 0.07em}l|',\n      valign => 'middle',\n      top => '3',);@]* <<\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe missing number is [$x].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_6-Answer_Arrays.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Point\");\n$p = Point(0,0);\nContext(\"Vector\");\n$v = Vector(1,2);\n$c = ColumnVector(3,4);\nContext(\"Matrix\");\n$m = Matrix([[1,2],[3,4]]);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese answer blanks are all expecting some sort of answer in an array format.\n\n[`[$p] = {}`][_]*{$p}{5}\n\n[`[$v] = {}`][_]*{$v}{5}\n\n[`[$c] = {}`][_]*{$c}{5}\n\n[`[$m] = {}`][_]*{$m}{5}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_1-PTX_problem_source_with_servergenerated_images.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGgraphmacros.pl\",\n  \"scaffold.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\nfor my $i(0..7){$gr[$i] = init_graph(-1,-1,4,4,axes=>[0,0],grid=>[5,5],size=>[150,150]);};\nadd_functions($gr[0], \"1 for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[1], \"x for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[2], \"x^2 for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[3], \"x^3 for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[4], \"e^x for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[5], \"sin(x) for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[6], \"cos(x) for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[7], \"exp(-x^2) for x in <-1,4> using color:blue and weight:2\");\n\n############################################################\n# Body\n############################################################\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n>> [@image(insertGraph($gr[0]), width=>150)@]*  <<\n\n>> [@image(insertGraph($gr[1]), width=>150)@]*  <<\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($gr[2]), width=>150)@]*  <<\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n>> [@image(insertGraph($gr[3]), width=>150)@]*  <<\n\n>> [@image(insertGraph($gr[4]), width=>150)@]*  <<\n\n>> [@image(insertGraph($gr[5]), width=>150)@]*  <<\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\n>> [@image(insertGraph($gr[6]), width=>150)@]*  <<\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($gr[7]), width=>150)@]*  <<\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_2-Checking_Proper_Indentation_In_Lists.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Simple item\na.  Simple item\na.  Simple item   \n\na.  Simple item\na.  Simple item\na.  Simple item   \n\nText before.\na.  Simple item\na.  Simple item\na.  Simple item   \n\nAnd after.\n\na.  Structured item\n\na.  Structured item\n\na.  Structured item\n\nText before.\na.  Structured item\n\na.  Structured item\n\na.  Structured item\n\nAnd after.\n\na.  Structured item\n\na.  [$NBSP]*\n    A.  Sublist Item\n\n    A.  Sublist Item\n\n    A.  Sublist Item\n\na.  Structured item\n\nText before.\na.  Structured item\n\na.  Text before.\n    i.  Sublist Item\n\n    i.  Sublist Item\n\n    i.  Sublist Item\n\n    And after.\n\na.  Structured item\n\nAnd after.\n\na.  Structured item\n\n    Second paragraph\n\na.  [$NBSP]*\n    I.  Sublist Item\n\n        Second paragraph\n\n    I.  Sublist Item\n\n        Second paragraph\n\n    I.  Sublist Item\n\n        Second paragraph\n\na.  Structured item\n\n    Second paragraph\n\nText before.\na.  Structured item\n\n    Second paragraph\n\na.  Text before.\n    1.  Sublist Item\n\n        Second paragraph\n\n    1.  Sublist Item\n\n        Second paragraph\n\n    1.  Sublist Item\n\n        Second paragraph\n\n    And after.\n\na.  Structured item\n\n    Second paragraph\n\nAnd after.\n\na.  [$NBSP]*\n\n    [```1+1=2```]\n\n    Structured item\n\n    Second\n\n    [```1+1=2```]\n\n    paragraph\n\na.  [$NBSP]*\n    a.  Sublist\n\n        [```1+1=2```]\n\n        Item\n\n        Second paragraph\n\n        [```1+1=2```]\n\n    a.  [$NBSP]*\n\n        [```1+1=2```]\n\n        Sublist Item\n\n        Second\n\n        [```1+1=2```]\n\n        paragraph\n\n    a.  Sublist Item\n\n        [```1+1=2```]\n\n        \n\n        [```1+1=2```]\n\n        Second paragraph\n\na.  Structured\n\n    [```1+1=2```]\n\n    item\n\n    Second paragraph\n\n    [```1+1=2```]\n\nText before.\na.  Structured\n\n    [```1+1=2```]\n\n    item\n\n    Second paragraph\n\n    [```1+1=2```]\n\na.  [$NBSP]*\n\n    [```1+1=2```]\n\n    Text before.\n    A.  Sublist\n\n        [```1+1=2```]\n\n        Item\n\n        Second paragraph\n\n        [```1+1=2```]\n\n    A.  [$NBSP]*\n\n        [```1+1=2```]\n\n        Sublist Item\n\n        Second\n\n        [```1+1=2```]\n\n        paragraph\n\n    A.  Sublist Item\n\n        [```1+1=2```]\n\n        \n\n        [```1+1=2```]\n\n        Second paragraph\n\n    And\n\n    [```1+1=2```]\n\n    after.\n\na.  Structured item\n\n    [```1+1=2```]\n\n    \n\n    [```1+1=2```]\n\n    Second paragraph\n\nAnd after.\n\nText before.\na.  Structured\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    item\n\n    Second paragraph\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\na.  [$NBSP]*\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    Text before.\n    i.  Sublist\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        Item\n\n        Second paragraph\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n    i.  [$NBSP]*\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        Sublist Item\n\n        Second\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        paragraph\n\n    i.  Sublist Item\n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        \n\n        [```\\newcommand{\\amp}{&}\n        \\begin{aligned}\n        1+1\\amp=2\\\\\n        2\\amp=2\n        \\end{aligned}\n        ```]\n\n        Second paragraph\n\n    And\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    after.\n\na.  Structured item\n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    \n\n    [```\\newcommand{\\amp}{&}\n    \\begin{aligned}\n    1+1\\amp=2\\\\\n    2\\amp=2\n    \\end{aligned}\n    ```]\n\n    Second paragraph\n\nAnd after.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_3-Checking_Proper_Indentation_In_Lists_with_Images_and_Tables.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGgraphmacros.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$g=init_graph(-1,-1,1,1,axes=>[0,0]);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\na.  Structured item\n\n    [@image(insertGraph($g), width=>102)@]* \n\na.  [@image(insertGraph($g), width=>102)@]* \n\nStructured item\n\na.  Structured item\n\n    [@image(insertGraph($g), width=>102)@]* \n\na.  Structured item\n\na.  Structured item\n\n    [@DataTable(\n      [\n        [PGML('a'),\n         PGML('b'),\n        ],\n        [PGML('c'),\n         PGML('d'),\n        ],\n      ],\n          align => '*{2}{l}',\n          valign => 'middle',    );@]*\n\na.  [@DataTable(\n      [\n        [[PGML('1'),\n          halign => 'r',],\n         PGML('two'),\n         PGML('[`\\lfloor\\pi\\rfloor`]'),\n        ],\n        [[PGML('[`\\text{I}+\\text{I}`]  \n[`{}+\\text{I}+\\text{I}`]  \n'),\n          rowbottom => '3',\n          midrule => '1',\n          bottom => '1',\n          valign => 'bottom',],\n         PGML('[`5`]'),\n         PGML('six'),\n        ],\n        [[PGML('[`2^3-1`]'),\n          rowbottom => '3',\n          midrule => '1',],\n         [PGML('VIII'),\n          colspan => '2',],\n        ],\n      ],\n          align => '!{\\vrule width 0.11em}r|c!{\\vrule width 0.07em}l|',\n          valign => 'middle',\n          top => '3',    );@]*\n\nStructured item\n\na.  Structured item\n\n    [@DataTable(\n      [\n        [PGML('a'),\n         PGML('b'),\n        ],\n        [PGML('c'),\n         PGML('d'),\n        ],\n      ],\n          align => '*{2}{l}',\n          valign => 'middle',    );@]*\n\n    Second paragraph\n\na.  Structured item\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_4-Deepnested_lists.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nOrdered list.\n\na.  Level 1, first.\n\na.  Level 1, second.\n    i.  Level 2, first.\n\n    i.  Level 2, second.\n        A.  Level 3, first.\n\n        A.  Level 3, second.\n            1.  Level 4, first.\n\n            1.  Level 4, second.\n\n            1.  Level 4, third.\n\n        A.  Level 3, third.\n\n    i.  Level 2, third.\n\na.  Level 1, third.\n\nUnordered list.\n\n* Level 1, first.\n\n* Level 1, second.\n    o Level 2, first.\n\n    o Level 2, second.\n        + Level 3, first.\n\n        + Level 3, second.\n            * Level 4, first.\n\n            * Level 4, second.\n\n            * Level 4, third.\n\n        + Level 3, third.\n\n    o Level 2, third.\n\n* Level 1, third.   \n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_5.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_6.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n>> [@DataTable(\n  [\n    [PGML(q\"What's up, Doc?\"),\n    ],\n  ],\n      align => '*{1}{l}',\n      valign => 'middle',);@]* <<\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_1.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_1.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_10-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.10)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_11.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.11)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_12-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.12)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_13.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.13)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_14-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.14)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_15.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.15)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_16-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.16)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_2-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_3.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_4-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_5.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_6-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_7.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.7)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_8-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.8)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_9.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.2.9)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThese are inside an exercisegroup.\n\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_3.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_4-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_5.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_6-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_7.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.7)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_8-Has_a_Title.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.4.8)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[`1+1=2`]\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_5-Runestone_Assignment_Testing/2_5_1.pg",
    "content": "#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.5.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$introduction_image_1 = createLaTeXImage();\n$introduction_image_1->addToPreamble(latexImagePreamble());\n$introduction_image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw[fill=blue!20] (0,0) -| (1,1) -| cycle;\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis introduction should appear ahead of the exercise when it shows up in the Assignment page.\n\n>> [@DataTable(\n  [\n    [PGML('[`(0,0)`]'),\n     PGML('[`(0,1)`]'),\n    ],\n    [PGML('[`(1,0)`]'),\n     PGML('[`(1,1)`]'),\n    ],\n  ],\n      align => '*{2}{l}',\n      valign => 'middle',);@]* <<\n\n>> [@image(insertGraph($introduction_image_1), width=>600, alt=>qq\"a blue square\")@]*  <<\n\nIt has a table and an image too to check it all comes through.\n\nWhat is [`1+1\\text{?}`]\n\n[_]{'2'}{5}>\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_1-Arithmetic.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_1-Arithmetic.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_1-Arithmetic.pg\ndescription       = Arithmetic\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_1-Adding_SingleDigit_Integers.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_1-Adding_SingleDigit_Integers.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_3-Controlling_Randomness.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_4-Special_Answer_Checking.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_5-Using_Hints.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_6-No_Randomization.pg\nproblem_id = 6\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_7-Local_PG.pg\nproblem_id = 7\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_8-Local_PG_File.pg\nproblem_id = 8\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/Project-1_1_1-Inside_a_project.pg\nproblem_id = \nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/Exploration-1_1_2-Inside_an_exploration.pg\nproblem_id = \nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_2-The_Quadratic_Formula.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_2-The_Quadratic_Formula.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_2-The_Quadratic_Formula.pg\ndescription       = The Quadratic Formula\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_2-Solving_Quadratic_Equations.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_3-Nested_tasks.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_2-Solving_Quadratic_Equations.pg\nproblem_id = 4\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_3-Open_Problem_Library.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_3-Open_Problem_Library.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_3-Open_Problem_Library.pg\ndescription       = Open Problem Library\nproblemListV2\nproblem_start\nsource_file = Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\nproblem_id = 1\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_4-Antidifferentiation_Exercises.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_4-Antidifferentiation_Exercises.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_4-Antidifferentiation_Exercises.pg\ndescription       = Antidifferentiation\nproblemListV2\nproblem_start\nsource_file = Library/ma122DB/set12/s5_4_26.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_2-Every_Continuous_Function_has_an_Antiderivative.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_3-Inverse_Processes.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_4.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_5.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_6-Show_Your_Work.pg\nproblem_id = 6\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_5-Math_Content.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_5-Math_Content.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_5-Math_Content.pg\ndescription       = Math Content\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_5-Math_Content/1_5_1-Math_Elements_and_Alignment.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_5-Math_Content/1_5_2-Intertext.pg\nproblem_id = 2\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_6-Multiple_Choice.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_6-Multiple_Choice.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_6-Multiple_Choice.pg\ndescription       = Multiple Choice\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_1-DropdownPopup.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_2-Choose_one.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_3-Choose_a_Subset_of_Options.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_4-Choose_a_Subset_of_Options_with_Automated_Labeling.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_6-Multiple_Choice/1_6_5-Choose_a_Subset_of_Options_with_Explicit_Labeling.pg\nproblem_id = 5\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_7-Tables.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_7-Tables.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_7-Tables.pg\ndescription       = Tables\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_7-Tables/1_7_1-Complete_this_Table.pg\nproblem_id = 1\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_8-Graphics_in_Exercises.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_8-Graphics_in_Exercises.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_8-Graphics_in_Exercises.pg\ndescription       = Graphics in Exercises\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_1-A_static_lateximage_graph.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_2-A_randomized_lateximage_graph.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_3-A_lateximage_graph_affected_by_lateximagepreamble.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_4-Special_characters.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_5-Solve_using_a_graph.pg\nproblem_id = 5\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set1_8-Graphics_in_Exercises_Exercises.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/1_8-Graphics_in_Exercises_Exercises.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/1_8-Graphics_in_Exercises_Exercises.pg\ndescription       = Graphics in Exercises\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_1.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_2.pg\nproblem_id = 2\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set2_1-PGML_Formatting_and_Verbatim_Calisthenics.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/2_1-PGML_Formatting_and_Verbatim_Calisthenics.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/2_1-PGML_Formatting_and_Verbatim_Calisthenics.pg\ndescription       = PGML Formatting and Verbatim Calisthenics\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_1-PGML_Formatting.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_2.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_3.pg\nproblem_id = 3\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set2_2-Subject_Area_Templates.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/2_2-Subject_Area_Templates.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/2_2-Subject_Area_Templates.pg\ndescription       = Subject Area Templates\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_1-Answer_is_a_number_or_a_function.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_2-Answer_is_a_function_with_domain_issues.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_3-Multiple_Choice_by_Popup_Radio_Buttons_or_Checkboxes.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_4.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_5-Tables.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_6-Answer_Arrays.pg\nproblem_id = 6\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set2_3-Stress_Tests.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/2_3-Stress_Tests.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/2_3-Stress_Tests.pg\ndescription       = Stress Tests\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_1-PTX_problem_source_with_servergenerated_images.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_2-Checking_Proper_Indentation_In_Lists.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_3-Checking_Proper_Indentation_In_Lists_with_Images_and_Tables.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_4-Deepnested_lists.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_5.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_6.pg\nproblem_id = 6\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set2_4-Layout_Configuration_Testing.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/2_4-Layout_Configuration_Testing.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/2_4-Layout_Configuration_Testing.pg\ndescription       = Layout Configuration Testing\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_1.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2-Has_a_Title.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_3.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_4-Has_a_Title.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_5.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_6-Has_a_Title.pg\nproblem_id = 6\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_7.pg\nproblem_id = 7\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_8-Has_a_Title.pg\nproblem_id = 8\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set2_4-Layout_Configuration_Testing_Exercises.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/2_4-Layout_Configuration_Testing_Exercises.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/2_4-Layout_Configuration_Testing_Exercises.pg\ndescription       = Layout Configuration Testing\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_1.pg\nproblem_id = 1\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_2-Has_a_Title.pg\nproblem_id = 2\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_3.pg\nproblem_id = 3\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_4-Has_a_Title.pg\nproblem_id = 4\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_5.pg\nproblem_id = 5\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_6-Has_a_Title.pg\nproblem_id = 6\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_7.pg\nproblem_id = 7\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_8-Has_a_Title.pg\nproblem_id = 8\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_9.pg\nproblem_id = 9\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_10-Has_a_Title.pg\nproblem_id = 10\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_11.pg\nproblem_id = 11\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_12-Has_a_Title.pg\nproblem_id = 12\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_13.pg\nproblem_id = 13\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_14-Has_a_Title.pg\nproblem_id = 14\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_15.pg\nproblem_id = 15\nproblem_end\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_4-Layout_Configuration_Testing/2_4_2_16-Has_a_Title.pg\nproblem_id = 16\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/def/set2_5-Runestone_Assignment_Testing_Exercises.def",
    "content": "openDate          = 05/15/2026 at 12:00am\ndueDate           = 11/15/2026 at 10:00pm\nanswerDate        = 11/15/2026 at 10:00pm\npaperHeaderFile   = Integrating_WeBWorK_into_Textbooks/header/2_5-Runestone_Assignment_Testing_Exercises.pg\nscreenHeaderFile  = Integrating_WeBWorK_into_Textbooks/header/2_5-Runestone_Assignment_Testing_Exercises.pg\ndescription       = Runestone Assignment Testing\nproblemListV2\nproblem_start\nsource_file = Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_5-Runestone_Assignment_Testing/2_5_1.pg\nproblem_id = 1\nproblem_end\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_1-Arithmetic.pg",
    "content": "# Header file for problem set 1_1-Arithmetic\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.1 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_2-The_Quadratic_Formula.pg",
    "content": "# Header file for problem set 1_2-The_Quadratic_Formula\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.2 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_3-Open_Problem_Library.pg",
    "content": "# Header file for problem set 1_3-Open_Problem_Library\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.3 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_4-Antidifferentiation_Exercises.pg",
    "content": "# Header file for problem set 1_4-Antidifferentiation\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.4 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_5-Math_Content.pg",
    "content": "# Header file for problem set 1_5-Math_Content\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.5 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_6-Multiple_Choice.pg",
    "content": "# Header file for problem set 1_6-Multiple_Choice\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.6 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_7-Tables.pg",
    "content": "# Header file for problem set 1_7-Tables\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.7 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_8-Graphics_in_Exercises.pg",
    "content": "# Header file for problem set 1_8-Graphics_in_Exercises\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.8 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/1_8-Graphics_in_Exercises_Exercises.pg",
    "content": "# Header file for problem set 1_8-Graphics_in_Exercises\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 1.8 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/2_1-PGML_Formatting_and_Verbatim_Calisthenics.pg",
    "content": "# Header file for problem set 2_1-PGML_Formatting_and_Verbatim_Calisthenics\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 2.1 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/2_2-Subject_Area_Templates.pg",
    "content": "# Header file for problem set 2_2-Subject_Area_Templates\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 2.2 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/2_3-Stress_Tests.pg",
    "content": "# Header file for problem set 2_3-Stress_Tests\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 2.3 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/2_4-Layout_Configuration_Testing.pg",
    "content": "# Header file for problem set 2_4-Layout_Configuration_Testing\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 2.4 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/2_4-Layout_Configuration_Testing_Exercises.pg",
    "content": "# Header file for problem set 2_4-Layout_Configuration_Testing\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 2.4 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/header/2_5-Runestone_Assignment_Testing_Exercises.pg",
    "content": "# Header file for problem set 2_5-Runestone_Assignment_Testing\n# This header file can be used for both the screen and hardcopy output\n\nDOCUMENT();\n\nloadMacros(\n    \"PG.pl\",\n    \"PGbasicmacros.pl\",\n    \"PGML.pl\",\n    \"PGcourse.pl\",\n);\n\nTEXT($BEGIN_ONE_COLUMN);\n\n$texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\nif (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n$texTopLine .= \"\\par\";\n\n####################################################\n#\n# MODES provides for distinct output for TeX and HTML\n#\n####################################################\n\nTEXT(MODES(\n    TeX =>\"$texTopLine\",\n    HTML=>\"\",\n));\n\nTEXT(MODES(\n    TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n          \"\\noindent \\bigskip \",\n    HTML=>\"<span style='font-variant: small-caps; font-size:large;'>WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. </span>$PAR\",\n));\n\nTEXT(\"This assignment contains exercises from Section 2.5 of Integrating WeBWorK into Textbooks.\");\n\nTEXT($END_ONE_COLUMN);\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pg/Integrating_WeBWorK_into_Textbooks/macros/WWSC.pl",
    "content": "#############################################################################\n# This macro library supports WeBWorK problems from the PreTeXt project named\n# Integrating WeBWorK into Textbooks\n#############################################################################\n\n\n# Return a string containing the latex-image-preamble contents.\n# To be used by LaTeXImage objects as in:\n# $image->addToPreamble(latexImagePreamble())\n\nsub latexImagePreamble {\nreturn <<'END_LATEX_IMAGE_PREAMBLE'\n\\usepackage{pgfplots}\n\\pgfplotsset{\n    every axis/.append style={\n        axis lines=middle,\n        xlabel={\\(x\\)},\n        ylabel={\\(y\\)},\n        grid = both,\n    }\n}\n\nEND_LATEX_IMAGE_PREAMBLE\n}\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/pgml-data-attribute.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-pgml-data-attribute\" assembly-id=\"pgml-data-attribute\">\n  <static seed=\"74\">\n    <statement><p>some PGML math: [`\\frac{1}{2}+\\frac{3}{2}=2`]; and some *bold text* makes:</p>\n<p>some PGML math: <m>\\frac{1}{2}+\\frac{3}{2}=2</m>; and some <alert>bold text</alert></p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_3.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.1.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$statement = 'some PGML math: [`\\frac{1}{2}+\\frac{3}{2}=2`]; and some *bold text*';\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n[$statement] makes:\n\n[$statement]**\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/ptx-source-with-server-images.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-ptx-source-with-server-images\" assembly-id=\"ptx-source-with-server-images\">\n  <static seed=\"82\">\n    <task>\n      <statement><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-1.png\" width=\"25%\"/>\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-2.png\" width=\"25%\"/>\n</statement>\n      <solution><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-3.png\" width=\"25%\"/>\n</solution>\n    </task>\n    <task>\n      <statement><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-4.png\" width=\"25%\"/>\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-5.png\" width=\"25%\"/>\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-6.png\" width=\"25%\"/>\n</statement>\n      <hint><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-7.png\" width=\"25%\"/>\n</hint>\n      <solution><!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/ptx-source-with-server-images-image-8.png\" width=\"25%\"/>\n</solution>\n    </task>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_1-PTX_problem_source_with_servergenerated_images.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGgraphmacros.pl\",\n  \"scaffold.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\nfor my $i(0..7){$gr[$i] = init_graph(-1,-1,4,4,axes=>[0,0],grid=>[5,5],size=>[150,150]);};\nadd_functions($gr[0], \"1 for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[1], \"x for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[2], \"x^2 for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[3], \"x^3 for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[4], \"e^x for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[5], \"sin(x) for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[6], \"cos(x) for x in <-1,4> using color:blue and weight:2\");\nadd_functions($gr[7], \"exp(-x^2) for x in <-1,4> using color:blue and weight:2\");\n\n############################################################\n# Body\n############################################################\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n>> [@image(insertGraph($gr[0]), width=>150)@]*  <<\n\n>> [@image(insertGraph($gr[1]), width=>150)@]*  <<\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($gr[2]), width=>150)@]*  <<\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"\");\n\nBEGIN_PGML\n>> [@image(insertGraph($gr[3]), width=>150)@]*  <<\n\n>> [@image(insertGraph($gr[4]), width=>150)@]*  <<\n\n>> [@image(insertGraph($gr[5]), width=>150)@]*  <<\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\n>> [@image(insertGraph($gr[6]), width=>150)@]*  <<\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@image(insertGraph($gr[7]), width=>150)@]*  <<\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/quadratic-equation.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-quadratic-equation\" assembly-id=\"quadratic-equation\">\n  <static seed=\"28\">\n    <introduction><p>Consider the quadratic equation <m>{2x^{2}-5x-12} = 0\\text{.}</m></p>\n</introduction>\n    <task><title>Identify Coefficients</title>\n<statement><p>Identify the coefficients for the quadratic equation using the standard form from Theorem<nbsp/>1.2.1.</p>\n<p><m>a=</m> <fillin characters=\"4\" name=\"AnSwEr0001\"/>, <m>b=</m> <fillin characters=\"4\" name=\"AnSwEr0002\"/>, <m>c=</m> <fillin characters=\"4\" name=\"AnSwEr0003\"/></p>\n</statement><answer><p><m>2</m></p></answer><answer><p><m>-5</m></p></answer><answer><p><m>-12</m></p></answer><solution><p>Take the coefficient of <m>x^2</m> for the value of <m>a\\text{,}</m> the coefficient of <m>x</m> for <m>b\\text{,}</m> and the constant for <m>c\\text{.}</m> <em>In this case</em>, they are <m>a = {2}\\text{,}</m> <m>b = {-5}\\text{,}</m> <m>c = {-12}\\text{.}</m></p>\n</solution></task>\n    <task><title>Use the Quadratic Formula</title>\n<statement><p>Using the quadratic formula, solve the equation.</p>\n<p><fillin characters=\"40\" name=\"AnSwEr0004\"/></p>\n</statement><answer><p><m>\\left\\{4,\\frac{-3}{2}\\right\\}</m></p></answer><solution><p>Recall that the quadratic formula is given in Theorem<nbsp/>1.2.1.</p>\n<p>You already identified <m>a = {2}\\text{,}</m> <m>b = {-5}\\text{,}</m> and <m>c = {-12}\\text{,}</m> so the results are:</p>\n<p><me>x = {\\frac{-\\left(-5\\right)+\\sqrt{\\left(-5\\right)^{2}-4\\cdot 2\\cdot \\left(-12\\right)}}{2\\cdot 2}} = {4}</me></p>\n<p>or</p>\n<p><me>x = {\\frac{-\\left(-5\\right)-\\sqrt{\\left(-5\\right)^{2}-4\\cdot 2\\cdot \\left(-12\\right)}}{2\\cdot 2}} = {-{\\frac{3}{2}}}</me></p>\n</solution></task>\n    <conclusion><p>This conclusion is just here for testing.</p>\n</conclusion>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_2-The_Quadratic_Formula/1_2_2-Solving_Quadratic_Equations.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"scaffold.pl\",\n  \"answerHints.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"contextFraction.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\nCOMMENT('This problem is scaffolded with multiple parts');\nCOMMENT(q\"Find a quadratic equation's solutions.\", 'One positive integer solution and one negative fraction solution.');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"Fraction\");\n$a = Compute(random(2,6,1));\ndo {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n$r = Compute(random(2,6,1));\n$c = $k*-$r;\n$b = $a*-$r+$k;\n$quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n$x1 = Fraction($r,1);\n$x2 = Fraction(-$k,$a);\nContext()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n$sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n$evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n    [-$a] => \"Do you have the sign correct?\")\n);\n$evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n    [-$b] => \"Do you have the sign correct?\")\n);\n$evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n    [-$c] => \"Do you have the sign correct?\")\n);\nContext(\"FiniteSolutionSets\");\n$solutionset = Formula(\"{$x1,$x2}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nConsider the quadratic equation [`[$quadratic] = 0\\text{.}`]\n\nEND_PGML\n\n############################################################\n# Scaffold\n############################################################\nScaffold::Begin(numbered => 1,is_open => \"correct_or_first_incorrect\",can_open => when_previous_correct,);\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Identify Coefficients\");\n\nBEGIN_PGML\nIdentify the coefficients for the quadratic equation using the standard form from Theorem[$NBSP]*1.2.1.\n\n[`a=`] [_]{$evaluatorfora}{4}, [`b=`] [_]{$evaluatorforb}{4}, [`c=`] [_]{$evaluatorforc}{4}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nTake the coefficient of [`x^2`] for the value of [`a\\text{,}`] the coefficient of [`x`] for [`b\\text{,}`] and the constant for [`c\\text{.}`] _In this case_, they are [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] [`c = [$c]\\text{.}`]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\n############################################################\n# Section\n############################################################\nSection::Begin(\"Use the Quadratic Formula\");\n\nBEGIN_PGML\nUsing the quadratic formula, solve the equation.\n\n[_]{$solutionset}{40}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nRecall that the quadratic formula is given in Theorem[$NBSP]*1.2.1.\n\nYou already identified [`a = [$a]\\text{,}`] [`b = [$b]\\text{,}`] and [`c = [$c]\\text{,}`] so the results are:\n\n[```x = [$sol1] = [$x1]```]\n\nor\n\n[```x = [$sol2] = [$x2]```]\n\nEND_PGML_SOLUTION\n\nSection::End();\n\nScaffold::End();\n\nBEGIN_PGML\nThis conclusion is just here for testing.\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/radio-buttons-with-math.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-radio-buttons-with-math\" assembly-id=\"radio-buttons-with-math\">\n  <static seed=\"79\">\n    <statement><p>There is math in each option for this question. Which expression is not a polynomial?</p>\n<p><ul form=\"buttons\" name=\"AnSwEr0001\">\n<li>\n<p><m>x</m></p>\n</li>\n<li>\n<p><m>x^2</m></p>\n</li>\n<li>\n<p><m>2^x</m></p>\n</li>\n</ul></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\text{Choice 3}</m>\n      </p>\n    </answer>\n    <solution><p>The answer is Choice 3.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_4.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"parserRadioButtons.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$expressions = RadioButtons(['\\(x\\)','\\(x^2\\)','\\(2^x\\)'], 2);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThere is math in each option for this question. Which expression is not a polynomial?\n\n[_]{$expressions}{5}\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe answer is [$expressions].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/randomized-latex-image.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-randomized-latex-image\" assembly-id=\"randomized-latex-image\">\n  <static seed=\"66\">\n    <statement><p>Find the area of the rectangle.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/randomized-latex-image-image-1\" width=\"50%\">\n<shortdescription>a rectangle whose width is labeled 6 cm and height is labeled 4 cm</shortdescription>\n</image>\n<p><fillin characters=\"20\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>24\\ {\\rm cm^{2}}</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_2-A_randomized_lateximage_graph.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"parserNumberWithUnits.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$a = random(4,6,1);\n$b = $a + random(2,4,1);\n$area = NumberWithUnits($a*$b, 'cm^2');\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw[fill=blue!20] (0,0) --++ (6,0) node[pos=0.5,below] {\\($b\\)\\,cm} --++ (0,4) node[pos=0.5,right] {\\($a\\)\\,cm} --++ (-6,0) -- cycle;\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nFind the area of the rectangle.\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"a rectangle whose width is labeled $b cm and height is labeled $a cm\")@]*  <<\n\n[_]{$area}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/single-quote-in-table-cell.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-single-quote-in-table-cell\" assembly-id=\"single-quote-in-table-cell\">\n  <static seed=\"87\">\n    <statement><!-- PTX:WARNING: PGML wanted to center align here. -->\n<tabular>\n<col/>\n<row>\n<cell>What<rsq/>s up, Doc?</cell>\n</row>\n</tabular>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_3-Stress_Tests/2_3_6.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.3.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n>> [@DataTable(\n  [\n    [PGML(q\"What's up, Doc?\"),\n    ],\n  ],\n      align => '*{1}{l}',\n      valign => 'middle',);@]* <<\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/solving-with-graph.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-solving-with-graph\" assembly-id=\"solving-with-graph\">\n  <static seed=\"69\">\n    <statement><p>The graph below is a graph of <m>y=f(x)\\text{.}</m> Use the graph to solve the equation <m>f(x)=1\\text{.}</m></p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/solving-with-graph-image-1.png\" width=\"50%\">\n<shortdescription>a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points (2,1) and (2.51984,2) before leaving the graph moving more and more upward and to the right.</shortdescription>\n</image>\n<p><fillin characters=\"5\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\left\\{2\\right\\}</m>\n      </p>\n    </answer>\n    <solution><p>The graph reveals that the solution set to <m>f(x)=1</m> is <m>{\\left\\{2\\right\\}}\\text{.}</m></p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/solving-with-graph-image-2.png\" width=\"50%\">\n<shortdescription>a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points (2,1) and (2.51984,2) before leaving the graph moving more and more upward and to the right; a horizontal line segment moves rightward from y=1 on the y-axis until it reaches a point on the curve; a vertical line segment moves down from this point to x=2 on the x-axis.</shortdescription>\n</image>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_5-Solve_using_a_graph.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGgraphmacros.pl\",\n  \"contextFiniteSolutionSets.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$a = random(1,3,1);\n$gr = init_graph(-1,-1,4,4,\naxes=>[0,0],\ngrid=>[5,5],\nsize=>[300,180]\n);\nadd_functions($gr, \"x^3/$a^3 for x in <-1,4> using color:blue and weight:2\");\n$second_x = Real($a*2**(1/3));\n$solgr = init_graph(-1,-1,4,4,\naxes=>[0,0],\ngrid=>[5,5],\nsize=>[300,180]\n);\nadd_functions($solgr, \"x^3/$a^3 for x in <-1,4> using color:blue and weight:2\");\n$solgr->moveTo(0,1);\n$solgr->lineTo($a,1,'black',3);\n$solgr->arrowTo($a,0,'black',3);\nContext(\"FiniteSolutionSets\");\n$answer = Formula(\"{$a}\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThe graph below is a graph of [`y=f(x)\\text{.}`] Use the graph to solve the equation [`f(x)=1\\text{.}`]\n\n>> [@image(insertGraph($gr), width=>300, alt=>qq\"a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points ($a,1) and ($second_x,2) before leaving the graph moving more and more upward and to the right.\")@]*  <<\n\n[_]{$answer}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe graph reveals that the solution set to [`f(x)=1`] is [`[$answer]\\text{.}`]\n\n>> [@image(insertGraph($solgr), width=>300, alt=>qq\"a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points ($a,1) and ($second_x,2) before leaving the graph moving more and more upward and to the right; a horizontal line segment moves rightward from y=1 on the y-axis until it reaches a point on the curve; a vertical line segment moves down from this point to x=$a on the x-axis.\")@]*  <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/special-answer-checking.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-special-answer-checking\" assembly-id=\"special-answer-checking\">\n  <static seed=\"14\">\n    <statement><p>Use the properties of exponents to simplify <m>{x^{5}x^{3}}\\text{.}</m></p>\n<p><m>{x^{5}x^{3}}=</m> <fillin characters=\"8\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>x^{8}</m>\n      </p>\n    </answer>\n    <solution><p>We <em>add</em> the exponents as follows, while including a gratuitous reference to the quadratic formula:</p>\n<p><me>\\begin{aligned}\n{x^{5}x^{3}}\\amp =x^{5+3}\\amp \\text{Theorem 1.2.1}\\\\\n\\amp =x^{8}\n\\end{aligned}</me></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_4-Special_Answer_Checking.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PCCmacros.pl\",\n  \"answerHints.pl\",\n  \"contextForm.pl\",\n  \"contextLimitedPolynomial.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = $a + $b;\n$expression = Formula(\"x^($a)*x^($b)\");\n\nContext(\"LimitedPolynomial-Strict\");\n# custom error message\nContext()->{error}{msg}{\"A variable can appear only once in each term of a polynomial\"}\n    = \"Your answer must be fully simplified\";\n\n$answer = Formula(\"x^($c)\");\n$product = $a*$b;\n$evaluator = $answer->cmp()->withPostFilter(AnswerHints(\n    [Compute(\"x^($product)\")] =>\n    \"When multiplying terms with the same base, you do not multiply the exponents.\"));\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nUse the properties of exponents to simplify [`[$expression]\\text{.}`]\n\n[@KeyboardInstructions('To enter a power, use a [|^|]*, as in [|x^2|]* for [`x^2\\text{.}`]')@]**\n\n[`[$expression]=`] [_]{$evaluator}{8} [@AnswerFormatHelp('formulas')@]*\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nWe _add_ the exponents as follows, while including a gratuitous reference to the quadratic formula:\n\n[```\n\\begin{aligned}\n[$expression]&=x^{[$a]+[$b]}&\\text{Theorem 1.2.1}\\\\\n&=x^{[$c]}\n\\end{aligned}\n```]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/special-characters.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-special-characters\" assembly-id=\"special-characters\">\n  <static seed=\"68\">\n    <statement><p>The code below has a printed dollar sign, a printed percent sign, a printed at sign, and a percent sign used as a comment marker.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/special-characters-image-1\" width=\"50%\">\n<shortdescription>this image has pictures of text with special characters like $, %, and @</shortdescription>\n</image>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_4-Special_characters.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.4)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\node at (0,0) {I need about \\~~$3.50.};\n    \\node at (0,1) {You gotta give 110\\~~%.};  %This is a comment.\n    \\node at (0,2) {Send email user~~@domain.com.};\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThe code below has a printed dollar sign, a printed percent sign, a printed at sign, and a percent sign used as a comment marker.\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"this image has pictures of text with special characters like \\$, %, and @\")@]*  <<\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/static-latex-image.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-static-latex-image\" assembly-id=\"static-latex-image\">\n  <static seed=\"65\">\n    <statement><p>This image is a visual proof that <m>\\sum_{k=1}^{n}k</m> equals what?</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<image xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:generated=\"webwork/images/static-latex-image-image-1\" width=\"50%\">\n<shortdescription>21 blue balls are arranged in a triangular formation, with one at the top, then a row of two, a row of three, and so on until a row of six; there is a seventh row with seven orange balls; one blue ball is highlighted, and two lines extend downward from that ball, one to the left and one to the right, parallel to the sides of the triangle, until they intersect two orange balls; the effect is that each of the 1+2+3+4+5+6 blue balls corresponds to one pair from the 7 orange balls</shortdescription>\n</image>\n<p><fillin characters=\"20\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>\\mathop{\\rm C}\\nolimits\\mathopen{}\\left(n+1,2\\right)\\hbox{ or }\\frac{\\left(n+1\\right)n}{2}</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_8-Graphics_in_Exercises/1_8_1-A_static_lateximage_graph.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.8.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGlateximage.pl\",\n  \"PCCmacros.pl\",\n  \"parserOneOf.pl\",\n  \"contextForm.pl\",\n  \"contextIntegerFunctions.pl\",\n  \"WWSC.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext(\"IntegerFunctions\");\nContext()->variables->are(n=>'Real');\n$answer = OneOf(Formula(\"C(n+1,2)\"),Formula(\"(n+1)n/2\"));\n\n$image_1 = createLaTeXImage();\n$image_1->addToPreamble(latexImagePreamble());\n$image_1->BEGIN_LATEX_IMAGE\n\\begin{tikzpicture}\n    \\draw[dashed] (0.5-0.5*6.5,-0.866025*6.5) -- (7-0.5*6.5,-0.866025*6.5);\n    \\draw[very thick] (2-0.5*7,-0.866025*7) -- (2-0.5*4,-0.866025*4) -- (5-0.5*7,-0.866025*7);\n    \\foreach \\x in {1,...,6}\n        \\foreach \\y in {1,...,\\x}\n            \\shade[ball color=blue!30] (\\y-0.5*\\x,-0.866025*\\x) circle (0.2cm);\n    \\foreach \\y in {1,...,7}\n        \\shade[ball color=orange!40] (\\y-0.5*7,-0.866025*7) circle (0.2cm);\n    \\node at (2.5,-0.5) [anchor=north west]{\\(\\color{blue}\\sum\\limits_{k=1}^nk\\color{black}\\)};\n    \\shade[ball color=blue] (2-0.5*4,-0.866025*4) circle (0.2cm);\n    \\shade[ball color=orange] (2-0.5*7,-0.866025*7) circle (0.2cm);\n    \\shade[ball color=orange] (5-0.5*7,-0.866025*7) circle (0.2cm);\n\\end{tikzpicture}\n\nEND_LATEX_IMAGE\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nThis image is a visual proof that [`\\sum_{k=1}^{n}k`] equals what?\n\n>> [@image(insertGraph($image_1), width=>300, alt=>qq\"21 blue balls are arranged in a triangular formation, with one at the top, then a row of two, a row of three, and so on until a row of six; there is a seventh row with seven orange balls; one blue ball is highlighted, and two lines extend downward from that ball, one to the left and one to the right, parallel to the sides of the triangle, until they intersect two orange balls; the effect is that each of the 1\\+2\\+3\\+4\\+5\\+6 blue balls corresponds to one pair from the 7 orange balls\")@]*  <<\n\n[@KeyboardInstructions('You may enter the answer using [|C(n,k)|]* notation.')@]**\n\n[_]{$answer}{20}\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/table-completion.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-table-completion\" assembly-id=\"table-completion\">\n  <static seed=\"62\">\n    <statement><p>Complete this multiplication table.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<tabular>\n<col halign=\"right\" right=\"major\"/>\n<col halign=\"center\" right=\"minor\"/>\n<col halign=\"center\" right=\"minor\"/>\n<row bottom=\"major\">\n<cell><m>\\times</m></cell>\n<cell><m>8</m></cell>\n<cell><m>6</m></cell>\n</row>\n<row bottom=\"minor\">\n<cell><m>6</m></cell>\n<cell><fillin characters=\"5\" name=\"AnSwEr0001\"/>\n</cell>\n<cell><fillin characters=\"5\" name=\"AnSwEr0002\"/>\n</cell>\n</row>\n<row bottom=\"minor\">\n<cell><m>9</m></cell>\n<cell><fillin characters=\"5\" name=\"AnSwEr0003\"/>\n</cell>\n<cell><fillin characters=\"5\" name=\"AnSwEr0004\"/>\n</cell>\n</row>\n</tabular>\n</statement>\n    <answer>\n      <p>\n        <m>48</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>36</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>72</m>\n      </p>\n    </answer>\n    <answer>\n      <p>\n        <m>54</m>\n      </p>\n    </answer>\n    <solution><!-- PTX:WARNING: PGML wanted to center align here. -->\n<tabular>\n<col halign=\"right\" right=\"major\"/>\n<col halign=\"center\" right=\"minor\"/>\n<col halign=\"center\" right=\"minor\"/>\n<row bottom=\"major\">\n<cell><m>\\times</m></cell>\n<cell><m>8</m></cell>\n<cell><m>6</m></cell>\n</row>\n<row bottom=\"minor\">\n<cell><m>6</m></cell>\n<cell><m>48</m></cell>\n<cell><m>36</m></cell>\n</row>\n<row bottom=\"minor\">\n<cell><m>9</m></cell>\n<cell><m>72</m></cell>\n<cell><m>54</m></cell>\n</row>\n</tabular>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_7-Tables/1_7_1-Complete_this_Table.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.7.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n@a = (random(2,9,1),random(2,9,1));\n@b = (random(2,9,1),random(2,9,1));\nfor my$i(0..3){$p[$i]=$a[int($i/2)]*$b[$i % 2]};\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nComplete this multiplication table.\n\n>> [@DataTable(\n  [\n    [[PGML('[`\\times`]'),\n      rowbottom => '3',\n      midrule => '1',],\n     PGML('[`[$a[0]]`]'),\n     PGML('[`[$a[1]]`]'),\n    ],\n    [[PGML('[`[$b[0]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[_]{$p[0]}{5}'),\n     PGML('[_]{$p[2]}{5}'),\n    ],\n    [[PGML('[`[$b[1]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[_]{$p[1]}{5}'),\n     PGML('[_]{$p[3]}{5}'),\n    ],\n  ],\n      align => 'r!{\\vrule width 0.11em}c|c|',\n      valign => 'middle',);@]* <<\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n>> [@DataTable(\n  [\n    [[PGML('[`\\times`]'),\n      rowbottom => '3',\n      midrule => '1',],\n     PGML('[`[$a[0]]`]'),\n     PGML('[`[$a[1]]`]'),\n    ],\n    [[PGML('[`[$b[0]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[`[$p[0]]`]'),\n     PGML('[`[$p[2]]`]'),\n    ],\n    [[PGML('[`[$b[1]]`]'),\n      rowbottom => '1',\n      midrule => '1',],\n     PGML('[`[$p[1]]`]'),\n     PGML('[`[$p[3]]`]'),\n    ],\n  ],\n      align => 'r!{\\vrule width 0.11em}c|c|',\n      valign => 'middle',);@]* <<\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/tables.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-tables\" assembly-id=\"tables\">\n  <static seed=\"80\">\n    <statement><p>A table with minimal XML source.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<tabular>\n<col/>\n<col/>\n<col/>\n<row>\n<cell>A</cell>\n<cell>B</cell>\n<cell>C</cell>\n</row>\n<row>\n<cell>D</cell>\n<cell>E</cell>\n<cell>F</cell>\n</row>\n<row>\n<cell>G</cell>\n<cell>H</cell>\n<cell>I</cell>\n</row>\n</tabular>\n<p>Finish this table.</p>\n<!-- PTX:WARNING: PGML wanted to center align here. -->\n<tabular left=\"major\">\n<col halign=\"right\" right=\"minor\"/>\n<col halign=\"center\" right=\"medium\"/>\n<col right=\"minor\"/>\n<row left=\"none\">\n<cell halign=\"right\">1</cell>\n<cell>two</cell>\n<cell><m>\\lfloor\\pi\\rfloor</m></cell>\n</row>\n<row bottom=\"major\" valign=\"bottom\">\n<cell bottom=\"minor\"><m>\\text{I}+\\text{I}</m>\n<m>{}+\\text{I}+\\text{I}</m></cell>\n<cell><fillin characters=\"5\" name=\"AnSwEr0001\"/>\n</cell>\n<cell>six</cell>\n</row>\n<row bottom=\"major\">\n<cell><m>2^3-1</m></cell>\n<cell colspan=\"2\">VIII</cell>\n</row>\n</tabular>\n</statement>\n    <answer>\n      <p>\n        <m>5</m>\n      </p>\n    </answer>\n    <solution><p>The missing number is 5.</p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_2-Subject_Area_Templates/2_2_5-Tables.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.2.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"niceTables.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$x = Real(5);\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nA table with minimal XML source.\n\n>> [@DataTable(\n  [\n    [PGML('A'),\n     PGML('B'),\n     PGML('C'),\n    ],\n    [PGML('D'),\n     PGML('E'),\n     PGML('F'),\n    ],\n    [PGML('G'),\n     PGML('H'),\n     PGML('I'),\n    ],\n  ],\n      align => '*{3}{l}',\n      valign => 'middle',);@]* <<\n\nFinish this table.\n\n>> [@DataTable(\n  [\n    [[PGML('1'),\n      halign => 'r',],\n     PGML('two'),\n     PGML('[`\\lfloor\\pi\\rfloor`]'),\n    ],\n    [[PGML('[`\\text{I}+\\text{I}`]  \n[`{}+\\text{I}+\\text{I}`]  \n'),\n      rowbottom => '3',\n      midrule => '1',\n      bottom => '1',\n      valign => 'bottom',],\n     PGML('[_]{$x}{5}'),\n     PGML('six'),\n    ],\n    [[PGML('[`2^3-1`]'),\n      rowbottom => '3',\n      midrule => '1',],\n     [PGML('VIII'),\n      colspan => '2',],\n    ],\n  ],\n      align => '!{\\vrule width 0.11em}r|c!{\\vrule width 0.07em}l|',\n      valign => 'middle',\n      top => '3',);@]* <<\n\nEND_PGML\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\nThe missing number is [$x].\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/using-hints.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-using-hints\" assembly-id=\"using-hints\">\n  <static seed=\"16\">\n    <statement><p>Simplify the expression <m>{\\sqrt{48}}\\text{.}</m></p>\n<p><m>{\\sqrt{48}}=</m> <fillin characters=\"10\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <hint><p>Factor the number inside the radical.</p>\n</hint>\n    <answer>\n      <p>\n        <m>4\\sqrt{3}</m>\n      </p>\n    </answer>\n    <solution><p><me>{\\sqrt{48}}=\\sqrt{4^2\\cdot 3}=4\\sqrt{3}</me></p>\n</solution>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_1-Arithmetic/1_1_5-Using_Hints.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.1.5)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"contextForm.pl\",\n  \"contextLimitedRadical.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\ndo {\n    $a = list_random(2,3,5,6);\n    $b = random(1, 5, 1);\n   } until (gcd($a,$b) == 1);\n$c = $a * $b**2;\nContext()->flags->set(reduceConstantFunctions=>0);\n$expression = Formula(\"sqrt($c)\");\n\nContext(\"LimitedRadical\");\n\n$answer = Formula(\"$b sqrt($a)\");\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSimplify the expression [`[$expression]\\text{.}`]\n\n[`[$expression]=`] [_]{$answer}{10}\n\nEND_PGML\n\n############################################################\n# Hint\n############################################################\n#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints\n\nBEGIN_PGML_HINT\nFactor the number inside the radical.\n\nEND_PGML_HINT\n\n############################################################\n# Solution\n############################################################\n\nBEGIN_PGML_SOLUTION\n\n[```[$expression]=\\sqrt{[$b]^2\\cdot [$a]}=[$b]\\sqrt{[$a]}```]\n\nEND_PGML_SOLUTION\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/ww-PGML-format.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-ww-PGML-format\" assembly-id=\"ww-PGML-format\">\n  <static seed=\"72\">\n    <statement><p>Smart double quotes: <lq/>Life is about making an impact, not making an income.<rq/></p>\n<p>Smart single quotes: <lsq/>Whatever the mind of man can conceive and believe, it can achieve.<rsq/></p>\n<p>Regular apostrophes: My siblings<rsq/> mother<rsq/>s daughter isn<rsq/>t my daughter<rsq/>s siblings<rsq/> mother.</p>\n<p>Emphasis: <em>very important</em></p>\n<p>Alert: <alert>do not</alert> do it</p>\n<p>Braces: {text that looks like a set}</p>\n<pre>\n<cline>    Some pre-formatted text</cline>\n<cline>                with an indented line</cline>\n<cline>and an out-dented line</cline>\n<cline>This should not be altered *a problem*</cline>\n<cline>And this [$NDASH]* should not be an en-dash</cline>\n</pre>\n<p>Here is some inline <c>code with special characters &amp; &lt; &gt; \" ' # $ % ^ _ { } ~ \\ * [ ]</c>, and here is some</p>\n<pre>\n<cline>single-line display code with special characters &amp; &lt; &gt; \" ' # $ % ^ _ { } ~ \\ * [ ]</cline>\n</pre>\n<p>and here is some</p>\n<pre>\n<cline>multi-line display   </cline>\n<cline>code with special characters &amp; &lt; &gt; \" ' # $ % ^ _ { } ~ \\ * [ ]   </cline>\n</pre>\n<p>Some raw characters, XML/HTML:    &amp; &lt; &gt; <lq/> <lsq/></p>\n<p>Some raw characters, <tex/>:    # $ % ^ &amp; _ { } ~ \\</p>\n<p>Some raw characters, PGML:        \\ * # { } [ ]</p>\n<p>Some characters that need special handling for PGML conversion to HTML or <tex/>:</p>\n<p>A non<nbsp/>breaking space (invisble where a hyphen should be)</p>\n<p>An ndash<ndash/>right here.</p>\n<p>An mdash<mdash/>right here.</p>\n<p>Some constructions in <lq/>normal<rq/> text, which need to be manipulated, lest they get interpreted as PGML markup:</p>\n<p>&gt;&gt;This should not be a centered line &lt;&lt;</p>\n<p>&gt;&gt;Nor a right-justified line, either</p>\n<p>We should not get _a phrase in italics_ in the midst of this sentence.</p>\n<p>Brackets, unpaired; ] with content between [</p>\n<p>Brackets, paired, in PGML constructions; [$NDASH]*, [___]{$answer}</p>\n<p>### This should not be a level 3 heading</p>\n<p>===   Not a horizontal rule from three equal signs</p>\n<p>==    Not a horizontal rule from two equal signs</p>\n<p>===== Not a horizontal rule from five equal signs</p>\n<p>---   Not a horizontal rule from three hyphens</p>\n<p>--    Not a horizontal rule from two hyphens</p>\n<p>----- Not a horizontal rule from five hyphens</p>\n<p>+ Not an unordered list item</p>\n<p>- Not an unordered list item</p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/2-Technical_Examples/2_1-PGML_Formatting_and_Verbatim_Calisthenics/2_1_1-PGML_Formatting.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(2.1.1)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nSmart double quotes: \"Life is about making an impact, not making an income.\"\n\nSmart single quotes: 'Whatever the mind of man can conceive and believe, it can achieve.'\n\nRegular apostrophes: My siblings' mother's daughter isn't my daughter's siblings' mother.\n\nEmphasis: _very important_\n\nAlert: *do not* do it\n\nBraces: \\{text that looks like a set\\}\n\n```\n    Some pre-formatted text\n                with an indented line\nand an out-dented line\nThis should not be altered *a problem*\nAnd this [$NDASH]* should not be an en-dash\n```\n\nHere is some inline [|code with special characters & < > \" ' # $ % ^ _ { } ~ \\ * [ ]|]*, and here is some\n```\nsingle-line display code with special characters & < > \" ' # $ % ^ _ { } ~ \\ * [ ]\n```\nand here is some\n```\nmulti-line display   \ncode with special characters & < > \" ' # $ % ^ _ { } ~ \\ * [ ]   \n```\n\nSome raw characters, XML/HTML:    & < > \" '\n\nSome raw characters, [$LATEX]*:    \\# \\$ % ^ & \\_ \\{ \\} ~ \\\\\n\nSome raw characters, PGML:        \\\\ \\* \\# \\{ \\} \\[ \\]\n\nSome characters that need special handling for PGML conversion to HTML or [$LATEX]*:\n\nA non[$NBSP]*breaking space (invisble where a hyphen should be)\n\nAn ndash[$NDASH]*right here.\n\nAn mdash[$MDASH]*right here.\n\nSome constructions in \"normal\" text, which need to be manipulated, lest they get interpreted as PGML markup:\n\n\\>\\>This should not be a centered line <<\n\n\\>\\>Nor a right-justified line, either\n\nWe should not get \\_a phrase in italics\\_ in the midst of this sentence.\n\nBrackets, unpaired; \\] with content between \\[\n\nBrackets, paired, in PGML constructions; \\[\\$NDASH\\]\\*, \\[\\_\\_\\_\\]\\{\\$answer\\}\n\n\\#\\#\\# This should not be a level 3 heading\n\n=\\==   Not a horizontal rule from three equal signs\n\n==    Not a horizontal rule from two equal signs\n\n=\\==== Not a horizontal rule from five equal signs\n\n-\\-\\-   Not a horizontal rule from three hyphens\n\n-\\-    Not a horizontal rule from two hyphens\n\n-\\---\\- Not a horizontal rule from five hyphens\n\n\\+ Not an unordered list item\n\n\\- Not an unordered list item\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/ww-antiderivatives.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-ww-antiderivatives\" assembly-id=\"ww-antiderivatives\">\n  <static seed=\"39\" source=\"Library/ma122DB/set12/s5_4_26.pg\">\n    <statement><p><m>\\displaystyle \\int_0^{2} (4 e^x+2 \\sin x)\\, dx</m> =  <fillin characters=\"20\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>28.3885180688169</m>\n      </p>\n    </answer>\n    <solution><p>SOLUTION</p>\n<p><me>\\begin{array}{rcl} \\displaystyle \\int_0^{2} (4 e^x+2 \\sin x)\\, dx \\amp =\\amp   \n\\displaystyle  4 e^x-2 \\cos x  \\Big]_0^{2}\n\\\\ \\amp =\\amp  (4 e^{2} - 2 \\cos 2) - (4 e^0 - 2 \\cos0 ) \n\\\\ \\amp =\\amp  4 e^{2} - 2 \\cos 2 - 2 \n\\end{array}</me></p>\n</solution>\n  </static>\n  <rendering-data sourceFilePath=\"Library/ma122DB/set12/s5_4_26.pg\" origin=\"webwork2\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg source=\"Library/ma122DB/set12/s5_4_26.pg\"/>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/ww-discuss-always-antiderivative.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-ww-discuss-always-antiderivative\" assembly-id=\"ww-discuss-always-antiderivative\">\n  <static seed=\"42\">\n    <statement><p>Explain how we can use Corollary<nbsp/>1.4.3 to say that every continuous function <em>always</em> has a derivative. (And we will demonstrate here that you can use a  macro from <c>docinfo</c>: <m>\\definiteintegral{1}{2}{\\frac{1}{x}}{x}=\\ln(2)\\text{.}</m> It will work in the WeBWorK problem, regardless of whether you are using images, MathJax, or hardcopy.)</p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_2-Every_Continuous_Function_has_an_Antiderivative.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.2)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGessaymacros.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nExplain how we can use Corollary[$NBSP]*1.4.3 to say that every continuous function _always_ has a derivative. (And we will demonstrate here that you can use a  macro from [|docinfo|]*: [`\\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4}\\definiteintegral{1}{2}{\\frac{1}{x}}{x}=\\ln(2)\\text{.}`] It will work in the WeBWorK problem, regardless of whether you are using images, MathJax, or hardcopy.)\n\n[@ANS(essay_cmp()); essay_box(6,76)@]* [@essay_help()@]*\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/ww-discuss-inverse-processes.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-ww-discuss-inverse-processes\" assembly-id=\"ww-discuss-inverse-processes\">\n  <static seed=\"44\">\n    <statement><p><lq/>Differentiation and integration are inverse processes.<rq/>  Cite <alert>specific results</alert> from this section in an explanation of how they justify this (somewhat imprecise) claim.</p>\n</statement>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_3-Inverse_Processes.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.3)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGessaymacros.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\n\"Differentiation and integration are inverse processes.\"  Cite *specific results* from this section in an explanation of how they justify this (somewhat imprecise) claim.\n\n[@ANS(essay_cmp()); essay_box(6,40)@]* [@essay_help()@]*\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/my-generated/webwork/ww-use-the-definition-of-the-derivative.xml",
    "content": "<?xml version='1.0' encoding='utf-8'?>\n<webwork-reps version=\"2\" webwork2_major_version=\"2\" webwork2_minor_version=\"20\" xml:id=\"extracted-ww-use-the-definition-of-the-derivative\" assembly-id=\"ww-use-the-definition-of-the-derivative\">\n  <static seed=\"51\">\n    <statement><p>Use the definition of the derivative to find <m>\\frac{d}{dx}x^2\\text{.}</m></p>\n<p><fillin characters=\"10\" name=\"AnSwEr0001\"/></p>\n</statement>\n    <answer>\n      <p>\n        <m>2x</m>\n      </p>\n    </answer>\n  </static>\n  <rendering-data problemSource=\"Integrating_WeBWorK_into_Textbooks/1-Instructive_Examples/1_4-Antidifferentiation/1_4_2_6-Show_Your_Work.pg\" origin=\"generated\" domain=\"https://webwork-ptx.aimath.org\" course-id=\"anonymous\" user-id=\"anonymous\" passwd=\"anonymous\" language=\"en-US\"/>\n  <pg><![CDATA[\n#############################################\n###       Generated from PreTeXt source      \n###       on 2026-05-15T12:29:44-07:00       \n###   A recent stable commit (2022-07-01):   \n### 6c761d3dba23af92cba35001c852aac04ae99a5f \n###                                          \n###         https://pretextbook.org          \n###                                          \n#############################################\n## DBsubject()\n## DBchapter()\n## DBsection()\n## Level()\n## KEYWORDS()\n## TitleText1()\n## EditionText1()\n## AuthorText1()\n## Section1(not reported)\n## Problem1(1.4.2.6)\n## Author()\n## Institution()\n## Language(en-US)\n\nDOCUMENT();\n\n############################################################\n# Load Macros\n############################################################\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGessaymacros.pl\",\n  \"contextForm.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Authored in PreTeXt');\n\n############################################################\n# Header\n############################################################\nTEXT(beginproblem());\n\n############################################################\n# PG Setup Code\n############################################################\nContext('Numeric');\n$answer = Formula('2x');\n$showwork = '[@ explanation_box(message => \"Show your work.\") @]*';\n\n############################################################\n# Body\n############################################################\n\nBEGIN_PGML\nUse the definition of the derivative to find [`\\frac{d}{dx}x^2\\text{.}`]\n\n[_]{$answer}{10}\n\n[$showwork]**\n\nEND_PGML\n\n############################################################\n# End Problem\n############################################################\n\nENDDOCUMENT();\n]]></pg>\n</webwork-reps>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/pg/Adding_SingleDigit_Integers.pg",
    "content": "DOCUMENT();\n\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Add two positive single-digit integers.');\n\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\nENDDOCUMENT();\n"
  },
  {
    "path": "examples/webwork/sample-chapter/project.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<!--\n    This file provides the overall configuration for your PreTeXt\n    project. To edit the content of your document, open `source/main.ptx`\n    (default location).\n-->\n<project>\n  <targets>\n    <!-- To build this target, run `pretext build web` -->\n    <target name=\"html\">\n      <format>html</format>\n      <source>sample-chapter.ptx</source>\n      <publication>publisher/publication.xml</publication>\n      <output-dir>output/html</output-dir>\n    </target>\n    <target name=\"runestone\">\n      <format>html</format>\n      <source>sample-chapter.ptx</source>\n      <publication>publisher/publication-academy.xml</publication>\n      <output-dir>published/PTXWW</output-dir>\n    </target>\n    <target name=\"pdf\" pdf-method=\"xelatex\">\n      <format>pdf</format>\n      <source>sample-chapter.ptx</source>\n      <publication>publisher/publication.ptx</publication>\n      <output-dir>output/print</output-dir>\n    </target>\n    <target name=\"tex\">\n      <format>latex</format>\n      <source>sample-chapter.ptx</source>\n      <publication>publisher/publication.ptx</publication>\n      <output-dir>output/print-latex</output-dir>\n    </target>\n  </targets>\n  <executables>\n    <latex>latex</latex>\n    <pdflatex>pdflatex</pdflatex>\n    <xelatex>xelatex</xelatex>\n    <pdfsvg>pdf2svg</pdfsvg>\n    <asy>asy</asy>\n    <sage>sage</sage>\n    <pdfpng>convert</pdfpng>\n    <pdfeps>pdftops</pdfeps>\n    <pdfcrop>pdf-crop-margins</pdfcrop>\n    <pageres>pageres</pageres>\n    <node>node</node>\n    <liblouis>file2brl</liblouis>\n  </executables>\n</project>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/publisher/publication-academy.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n    <common>\n        <chunking level=\"2\"/>\n    </common>\n\n    <source>\n        <directories generated=\"my-generated\" external=\"my-external\"/>\n    </source>\n\n    <!-- These are the defaults but written explicitly here to serve as a model. -->\n    <webwork server=\"https://webwork-ptx.aimath.org\" course=\"anonymous\" user=\"anonymous\" password=\"anonymous\" task-reveal=\"preceding-correct\" />\n\n    <html>\n        <platform host=\"runestone\"/>\n        <!-- native search with Javascript -->\n        <search variant=\"default\"/>\n        <!-- for this demonstration, we want all the problems dynamic -->\n        <webwork divisional=\"dynamic\"/>\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/publisher/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n    <common>\n        <chunking level=\"2\"/>\n    </common>\n\n    <source>\n      <directories generated=\"my-generated\" external=\"my-external\"/>\n    </source>\n\n    <!-- These are the defaults but written explicitly here to serve as a model. -->\n    <webwork\n        server=\"https://webwork-ptx.aimath.org\"\n        course=\"anonymous\"\n        user=\"anonymous\"\n        password=\"anonymous\"\n        task-reveal=\"preceding-correct\"\n        static-processing=\"webwork2\"\n        />\n\n    <html>\n        <!-- native search with Javascript -->\n        <search variant=\"default\"/>\n        <!-- for this demonstration, we want all the problems dynamic -->\n        <webwork divisional=\"dynamic\"/>\n    </html>\n\n</publication>\n"
  },
  {
    "path": "examples/webwork/sample-chapter/sample-chapter.ptx",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- ********************************************************************* -->\n<!-- Copyright 2015-7                                                      -->\n<!-- Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             -->\n<!--                                                                       -->\n<!-- This file is part of PreTeXt.                                         -->\n<!--                                                                       -->\n<!-- PreTeXt is free software: you can redistribute it and/or modify       -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- PreTeXt is distributed in the hope that it will be useful,            -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.       -->\n<!-- ********************************************************************* -->\n\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\" xml:lang=\"en-US\">\n    <!-- Other languages can be used to internationalize parts of a document -->\n    <!-- <pretext xml:lang=\"pt-BR\"> -->\n\n    <!-- \"docinfo\" is like metadata, it is necessary technical -->\n    <!-- information which a reader mostly will never see. -->\n\n    <docinfo>\n\n        <!-- To aid uniqueness of database identifiers in Runestone -->\n        <document-id edition=\"2\">PTXWW</document-id>\n        <!-- In the HTML version there is room for a   -->\n        <!-- picture or logo in the upper left corner. -->\n        <brandlogo url=\"http://webwork.maa.org/\" source=\"images/webwork-logo.png\" />\n\n        <!-- For WeBWorK problems, these LaTeX macros must          -->\n        <!-- (a) be entirely on one line                            -->\n        <!-- (b) not employ a previous custom macro                 -->\n        <!-- (c) be defined only via \\newcommand{<name>}{<command>} -->\n        <macros>\n        \\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4}\n        \\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2} % comments get stripped\n        </macros>\n\n        <!-- this is the default, but supresses a warning -->\n        <cross-references text=\"type-global\" />\n\n        <!-- \n        This initialism specifies the filename of the macro file (WWSC.pl) that \n        must be present in the WeBWorK server to be able to generate latex-image\n        images. Make sure this macro file is in your server (a copy is\n        included in  pg-macros folder), and that the macro filename is changed \n        if the initialism is changed.\n        -->\n        <initialism>WWSC</initialism>\n\n        <latex-image-preamble>\n            \\usepackage{pgfplots}\n            \\pgfplotsset{\n                every axis/.append style={\n                    axis lines=middle,\n                    xlabel={\\(x\\)},\n                    ylabel={\\(y\\)},\n                    grid = both,\n                }\n            }\n        </latex-image-preamble>\n    </docinfo>\n\n    <book xml:id=\"sample-ww-chapter\">\n        <title>Integrating <webwork /> into Textbooks</title>\n        <subtitle>Sample Exercises</subtitle>\n\n        <frontmatter xml:id=\"frontmatter\">\n\n            <bibinfo>\n                <!-- There can be several authors here -->\n                <author>\n                    <personname>Robert Beezer</personname>\n                    <department>Department of Mathematics and Computer Science</department>\n                    <institution>\n                        <line>University of Puget Sound</line>\n                        <line>Tacoma, Washington, USA</line>\n                    </institution>\n                    <email>beezer@pugetsound.edu</email>\n                </author>\n\n                <author>\n                    <personname>Alex Jordan</personname>\n                    <department>Department of Mathematics</department>\n                    <institution>\n                        <line>Portland Community College</line>\n                        <line>Portland, Oregon, USA</line>\n                    </institution>\n                    <email>alex.jordan@pcc.edu</email>\n                </author>\n\n                <!-- Can set date manually or use the \"today\" element -->\n                <date><today /></date>\n\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n\n            <preface>\n                <p>This is a sample book to demonstrate integrating <webwork /> homework problems into content authored with <pretext />.  It is structured as a book whose chapters are again structured with sections (no introductions or conclusions) so that it fits Ruestone's chaper/subchapter model and can be used for testing on Runestone Academy.</p>\n                <p>This work was funded with grants from <url href=\"http://openoregon.org/\">OpenOregon</url> and the <url href=\"http://pugetsound.edu\">University of Puget Sound</url>.</p>\n                <p>Rob Beezer (University of Puget Sound) and Alex Jordan (Portland Community College) worked on the <pretext /> enhancements that make this possible. Mike Gage (Univeristy of Rochester), Geoff Goehle (Western Carolina University), and Alex Jordan made this possible by enhancing the <webwork /> end, and generally maintaining <webwork /> software.</p>\n                <p>This book assumes a mild familiarity with both <url href=\"https://pretextbook.org/\"><pretext /></url> and <url href=\"http://webwork.maa.org/wiki/Main_Page\"><webwork /></url>. For more information about either project, follow the links.</p>\n            </preface>\n\n        </frontmatter>\n\n        <chapter>\n            <title>Instructive Examples</title>\n\n            <section>\n                <title>Arithmetic</title>\n\n                <p>Some questions with quantitative answers.</p>\n\n                <exercise label=\"integer-addition\">\n                    <title>Adding Single-Digit Integers</title>\n\n                    <introduction>\n                        <p>A simple, but functional example to begin with. If you are just learning how to add, you can test yourself here.</p>\n                    </introduction>\n\n                    <webwork xml:id=\"webwork-add-numbers\">\n                        <description>\n                            Add two positive single-digit integers.\n                        </description>\n\n                        <pg-code>\n                            $a = random(1, 9, 1);\n                            $b = random(1, 9, 1);\n                            $c = Compute($a + $b);\n                        </pg-code>\n\n                        <statement>\n                            <p>Compute the sum of <m><var name=\"$a\" /></m> and <m><var name=\"$b\" /></m>:</p>\n                            <p><m><var name=\"$a\" /> + <var name=\"$b\" /> =</m> <var name=\"$c\" width=\"5\" category=\"integer\" /></p>\n                        </statement>\n\n                        <solution>\n                            <p><m><var name=\"$a\" /> + <var name=\"$b\" /> = <var name=\"$c\" /></m>.</p>\n                        </solution>\n                    </webwork>\n\n                    <conclusion>\n                        <p>That was a simple problem.  Let's move on.</p>\n                    </conclusion>\n                </exercise>\n\n                <p>If you are familiar with <webwork />, then it may be a surprise to you to be interacting with a <webwork /> problem this way, without having logged in to <webwork />.</p>\n\n                <exercise label=\"integer-addition-with-seed\">\n                    <title>Declaring a Problem Seed</title>\n\n                    <introduction>\n                        <p>You can also declare a <c>seed</c> to specify a version of any problem that has randomization. Here is the same problem (<q>copied</q> in the <pretext/> source), but with a <c>seed</c> specified.</p>\n                    </introduction>\n\n                    <webwork copy=\"webwork-add-numbers\" seed=\"510\"/>\n\n                </exercise>\n\n                <exercise label=\"integer-addition-with-control-seed\">\n                    <title>Controlling Randomness</title>\n\n                    <introduction>\n                        <p>You can code your problem with randomization, but then use a specific <c>seed</c> and <webwork />'s <c>$envir{problemSeed}</c> to override that randomization for the purposes of the version that will appear in HTML and print output.</p>\n                    </introduction>\n\n                    <webwork seed=\"1\">\n                        <pg-code>\n                            $a = random(1, 9, 1);\n                            $b = random(1, 9, 1);\n                            if ($envir{problemSeed}==1){$a=1;$b=2};\n                            $c = Compute($a + $b);\n                        </pg-code>\n\n                        <statement>\n                            <p>Compute the sum of <m><var name=\"$a\" /></m> and <m><var name=\"$b\" /></m>:</p>\n                            <p><m><var name=\"$a\" /> + <var name=\"$b\" /> =</m> <var name=\"$c\" width=\"5\" category=\"integer\" /></p>\n                        </statement>\n\n                        <solution>\n                            <p><m><var name=\"$a\" /> + <var name=\"$b\" /> = <var name=\"$c\" /></m>.</p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n\n                <exercise label=\"special-answer-checking\">\n                    <title>Special Answer Checking</title>\n\n                    <introduction>\n                        <p>One of the strengths of <webwork /> is its ability to give intelligent feedback for incorrect answers.<ul>\n                            <li><p>There is general feedback for when the student's answer is in an entirely different ballpark from the correct answer. Try entering something like <q><c>y</c></q>.</p></li>\n                            <li><p>There is general feedback for when the student's answer is not in the right form. Try entering <q><c>x^2*x^3</c></q>, which, right or wrong, is unsimplified.</p></li>\n                            <li><p>And problems can be written to detect and respond to common mistakes. Try entering an answer where you multiply the two exponents (instead of adding them, which would be correct.)</p></li>\n                        </ul></p>\n                    </introduction>\n\n                    <webwork>\n                        <pg-code>\n                            $a = random(1, 9, 1);\n                            $b = random(1, 9, 1);\n                            $c = $a + $b;\n                            $expression = Formula(\"x^($a)*x^($b)\");\n\n                            Context(\"LimitedPolynomial-Strict\");\n                            # custom error message\n                            Context()->{error}{msg}{\"A variable can appear only once in each term of a polynomial\"}\n                                = \"Your answer must be fully simplified\";\n\n                            $answer = Formula(\"x^($c)\");\n                            $product = $a*$b;\n                            $evaluator = $answer->cmp()->withPostFilter(AnswerHints(\n                                [Compute(\"x^($product)\")] =>\n                                \"When multiplying terms with the same base, you do not multiply the exponents.\"));\n                        </pg-code>\n\n                        <statement>\n                            <p>Use the properties of exponents to simplify <m><var name=\"$expression\" /></m>.</p>\n\n                            <instruction>To enter a power, use a <c>^</c>, as in <c>x^2</c> for <m>x^2</m>.</instruction>\n\n                            <p><m><var name=\"$expression\" />=</m> <var name=\"$answer\" evaluator=\"$evaluator\" width=\"8\" category=\"formula\" /></p>\n\n                        </statement>\n\n                        <solution>\n                            <p>We <em>add</em> the exponents as follows, while including a gratuitous reference to the quadratic formula:<md>\n                                <mrow><var name=\"$expression\" />&amp;=x^{<var name=\"$a\" />+<var name=\"$b\" />}&amp;<xref ref=\"theorem-quadratic-formula\" text=\"type-global\"/></mrow>\n                                <mrow>&amp;=x^{<var name=\"$c\" />}</mrow>\n                            </md></p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"using-hints\">\n                    <title>Using Hints</title>\n                    <introduction>\n                        <p>Hints can be inserted into exercises. Whether a hint is visible in the HTML depends on the value of <c>$showHint</c> in <c>PGcourse.pl</c> in the <webwork /> course that is hosting these exercises. How the hint is displayed in the pdf output is controlled in the usual way that an PTX hint is controlled.</p>\n                    </introduction>\n\n                    <webwork>\n                        <pg-code>\n                            do {\n                                $a = list_random(2,3,5,6);\n                                $b = random(1, 5, 1);\n                               } until (gcd($a,$b) == 1);\n                            $c = $a * $b**2;\n                            Context()->flags->set(reduceConstantFunctions=>0);\n                            $expression = Formula(\"sqrt($c)\");\n\n                            Context(\"LimitedRadical\");\n\n                            $answer = Formula(\"$b sqrt($a)\");\n                        </pg-code>\n\n                        <statement>\n                            <p>Simplify the expression <m><var name=\"$expression\"/></m>.</p>\n                            <p><m><var name=\"$expression\"/>=</m> <var name=\"$answer\" width=\"10\"/></p>\n                        </statement>\n\n                        <hint>\n                            <p>Factor the number inside the radical.</p>\n                        </hint>\n\n                        <solution>\n                            <p><md><var name=\"$expression\"/>=\\sqrt{<var name=\"$b\"/>^2\\cdot <var name=\"$a\"/>}=<var name=\"$b\"/>\\sqrt{<var name=\"$a\"/>}</md></p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"no-random\">\n                    <title>No Randomization</title>\n                    <introduction>\n                        <p>This problem has no randomization at all, not even if it were exported to be part of a problem set on a <webwork /> server. As such, it really doesn't need any lines of Perl code in its setup, so you have the option of skipping that part of the authoring process.</p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                            <p><m>1+2=</m> <var name=\"3\" width=\"5\" /></p>\n                        </statement>\n                    </webwork>\n                    <conclusion>\n                        <p>For more about problems that do not require any randomization, see the <url href=\"https://pretextbook.org/documentation.html\">PTX Author Guide</url>.</p>\n                    </conclusion>\n                </exercise>\n\n                <exercise label=\"local-pg\">\n                    <title>Local PG</title>\n                    <introduction>\n                        <p>\n                            The complete text of a <c>.pg</c> file can be used as the content of a\n                            <tag>webwork</tag>. Attention should be given to newlines and white\n                            space within the <tag>webwork</tag>, as they will be included in the PG\n                            problem that is rendered.\n                        </p>\n                    </introduction>\n                    <webwork><![CDATA[DOCUMENT();\n\nloadMacros(\n  \"PGstandard.pl\",\n  \"PGML.pl\",\n  \"AnswerFormatHelp.pl\",\n  \"PGcourse.pl\",\n);\nCOMMENT('Add two positive single-digit integers.');\n\nContext('Numeric');\n$a = random(1, 9, 1);\n$b = random(1, 9, 1);\n$c = Compute($a + $b);\n\nBEGIN_PGML\nCompute the sum of [`[$a]`] and [`[$b]\\text{:}`]\n\n[`[$a] + [$b] =`] [_]{$c}{5} [@AnswerFormatHelp('numbers')@]*\n\nEND_PGML\n\nENDDOCUMENT();\n]]></webwork>\n                </exercise>\n\n                <exercise label=\"local-pg-file\">\n                    <title>Local PG File</title>\n                    <introduction>\n                        <p>\n                            It is convenient to get the text of a <c>.pg</c> file using\n                            <c>xi:include</c>. This may help with file management and management of\n                            to not have to manage whitespace.\n                        </p>\n                    </introduction>\n                    <webwork><xi:include parse=\"text\" href=\"pg/Adding_SingleDigit_Integers.pg\"/></webwork>\n                </exercise>\n\n                <project label=\"copy-webwork-add-numbers\">\n                    <title>Inside a <tag>project</tag></title>\n                    <introduction>\n                        <p>\n                            If you like, you can have a <webwork/> inside a <tag>project</tag>.\n                            Just like with an <tag>exercise</tag>, it can be preceded with an\n                            optional <tag>introduction</tag> and followed by an optional\n                            <tag>conclusion</tag>.\n                        </p>\n                    </introduction>\n                    <webwork seed=\"511\">\n                        <description>\n                            Add two positive single-digit integers.\n                        </description>\n                        <pg-code>\n                            $a = random(1, 9, 1);\n                            $b = random(1, 9, 1);\n                            $c = Compute($a + $b);\n                        </pg-code>\n                        <statement>\n                            <p>\n                                Compute the sum of <m><var name=\"$a\" /></m> and\n                                <m><var name=\"$b\" /></m>:\n                            </p>\n                            <p>\n                                <m><var name=\"$a\" /> + <var name=\"$b\" /> =</m>\n                                <var name=\"$c\" width=\"5\" category=\"integer\" />\n                            </p>\n                        </statement>\n                        <solution>\n                            <p><m><var name=\"$a\" /> + <var name=\"$b\" /> = <var name=\"$c\" /></m>.</p>\n                        </solution>\n                    </webwork>\n                </project>\n\n                <exploration label=\"copy-webwork-add-numbers-exploration\">\n                    <title>Inside an <tag>exploration</tag></title>\n                    <introduction>\n                        <p>\n                            There are other <q>project-like</q> tags besides <tag>project</tag>.\n                            Here, we use an <tag>exploration</tag>.\n                        </p>\n                    </introduction>\n                    <webwork seed=\"512\">\n                        <description>\n                            Add two positive single-digit integers.\n                        </description>\n                        <pg-code>\n                            $a = random(1, 9, 1);\n                            $b = random(1, 9, 1);\n                            $c = Compute($a + $b);\n                        </pg-code>\n                        <statement>\n                            <p>\n                                Compute the sum of <m><var name=\"$a\" /></m> and\n                                <m><var name=\"$b\" /></m>:\n                            </p>\n                            <p>\n                                <m><var name=\"$a\" /> + <var name=\"$b\" /> =</m>\n                                <var name=\"$c\" width=\"5\" category=\"integer\" />\n                            </p>\n                        </statement>\n                        <solution>\n                            <p><m><var name=\"$a\" /> + <var name=\"$b\" /> = <var name=\"$c\" /></m>.</p>\n                        </solution>\n                    </webwork>\n                </exploration>\n            </section>\n\n            <section xml:id=\"section-the-quadratic-formula\">\n                <title>The Quadratic Formula</title>\n\n                <p>In the previous section, we saw relatively simple <webwork /> questions. This section demonstrates how even very complicated <webwork /> problems can still behave well.</p>\n\n                <p>Here is a theorem that gives us a formula for the solutions of a second-degree polynomial equation. Note later how the <webwork /> problem references the theorem by its number. This seemingly minor detail demonstrates the degree to which <webwork /> and <pretext /> have been integrated.</p>\n\n                <theorem xml:id=\"theorem-quadratic-formula\">\n                    <title>Quadratic Formula</title>\n\n                    <statement>\n                        <p>Given the second-degree polynomial equation <m>ax^2 + bx + c = 0</m>, where <m>a\\neq0</m>, solutions are given by <md>x = \\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}.</md></p>\n                    </statement>\n                    <proof>\n                        <p><md>\n                            <mrow>ax^2 + bx + c &amp;= 0</mrow>\n                            <mrow>ax^2 + bx &amp;= -c</mrow>\n                            <mrow>4ax^2 + 4bx &amp;= -4c</mrow>\n                            <mrow>4ax^2 + 4bx + b^2 &amp;= b^2 - 4ac</mrow>\n                            <mrow>(2ax + b)^2 &amp;= b^2 - 4ac</mrow>\n                            <mrow>2ax + b &amp;=\\pm\\sqrt{b^2 - 4ac}</mrow>\n                            <mrow>2ax &amp;=-b\\pm\\sqrt{b^2 - 4ac}</mrow>\n                            <mrow>x &amp;=\\frac{-b\\pm\\sqrt{b^2 - 4ac}}{2a}</mrow>\n                        </md></p>\n                    </proof>\n                </theorem>\n\n                <exercise xml:id=\"quadratic-equation\" label=\"quadratic-equation\">\n                    <title>Solving Quadratic Equations</title>\n                    <webwork xml:id=\"webwork-solve-quadratic\">\n                        <description>\n                            <line>Find a quadratic equation's solutions.</line>\n                            <line>One positive integer solution and one negative fraction solution.</line>\n                        </description>\n                        <pg-code>\n                            Context(\"Fraction\");\n                            $a = Compute(random(2,6,1));\n                            do {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n                            $r = Compute(random(2,6,1));\n                            $c = $k*-$r;\n                            $b = $a*-$r+$k;\n                            $quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n                            $x1 = Fraction($r,1);\n                            $x2 = Fraction(-$k,$a);\n                            Context()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n                            $sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n                            $sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n                            $evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n                                [-$a] => \"Do you have the sign correct?\")\n                            );\n                            $evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n                                [-$b] => \"Do you have the sign correct?\")\n                            );\n                            $evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n                                [-$c] => \"Do you have the sign correct?\")\n                            );\n                            Context(\"FiniteSolutionSets\");\n                            $solutionset = Formula(\"{$x1,$x2}\");\n                        </pg-code>\n                        <introduction>\n                            <p>\n                                Consider the quadratic equation <m><var name=\"$quadratic\" /> = 0</m>.\n                            </p>\n                        </introduction>\n                        <task>\n                            <title>Identify Coefficients</title>\n                            <statement>\n                                <p>\n                                    Identify the coefficients for the quadratic equation\n                                    using the standard form from <xref ref=\"theorem-quadratic-formula\" />.\n                                </p>\n                                <p>\n                                    <m>a=</m> <var name=\"$a\" width=\"4\" evaluator=\"$evaluatorfora\"/>,\n                                    <m>b=</m> <var name=\"$b\" width=\"4\" evaluator=\"$evaluatorforb\"/>,\n                                    <m>c=</m> <var name=\"$c\" width=\"4\" evaluator=\"$evaluatorforc\"/>\n                                </p>\n                            </statement>\n                            <solution>\n                                <p>\n                                    Take the coefficient of <m>x^2</m> for the value of <m>a</m>,\n                                    the coefficient of <m>x</m> for <m>b</m>,\n                                    and the constant for <m>c</m>.\n                                    <em>In this case</em>, they are <m>a = <var name=\"$a\" /></m>,\n                                    <m>b = <var name=\"$b\" /></m>, <m>c = <var name=\"$c\" /></m>.\n                                </p>\n                            </solution>\n                        </task>\n                        <task>\n                            <title>Use the Quadratic Formula</title>\n                            <statement>\n                                <p>\n                                    Using the quadratic formula, solve the equation.\n                                </p>\n                                <p>\n                                    <var name=\"$solutionset\" width=\"40\"/>\n                                </p>\n                            </statement>\n                            <solution>\n                                <p>\n                                    Recall that the quadratic formula is given in <xref ref=\"theorem-quadratic-formula\"/>.\n                                </p>\n                                <p>\n                                    You already identified <m>a = <var name=\"$a\"/></m>,\n                                    <m>b = <var name=\"$b\"/></m>, and <m>c = <var name=\"$c\"/></m>,\n                                    so the results are:\n                                    <md>x = <var name=\"$sol1\"/> = <var name=\"$x1\"/></md>\n                                    or\n                                    <md>x = <var name=\"$sol2\"/> = <var name=\"$x2\"/></md>\n                                </p>\n                            </solution>\n                        </task>\n                        <conclusion>\n                            <p>\n                                This conclusion is just here for testing.\n                            </p>\n                        </conclusion>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"nested-tasks\">\n                    <title>Nested tasks</title>\n                    <introduction>\n                        <p>\n                            This exercise tests that nested tasks work.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <description>\n                            <line>Find a quadratic equation's solutions.</line>\n                            <line>One positive integer solution and one negative fraction solution.</line>\n                        </description>\n                        <pg-code>\n                            Context(\"Fraction\");\n                            $a = Compute(random(2,6,1));\n                            do {$k = Compute(random(2,6,1))} until (gcd($a,$k)==1);\n                            $r = Compute(random(2,6,1));\n                            $c = $k*-$r;\n                            $b = $a*-$r+$k;\n                            $quadratic = Formula(\"$a x^2 + $b x + $c\")->reduce;\n                            $x1 = Fraction($r,1);\n                            $x2 = Fraction(-$k,$a);\n                            Context()->flags->set(reduceConstants=>0,reduceConstantFunctions=>0);\n                            $sol1 = Formula(\"(-$b+sqrt(($b)**2-4($a)($c)))/(2($a))\");\n                            $sol2 = Formula(\"(-$b-sqrt(($b)**2-4($a)($c)))/(2($a))\");\n                            $evaluatorfora = $a->cmp()->withPostFilter(AnswerHints(\n                                [-$a] => \"Do you have the sign correct?\")\n                            );\n                            $evaluatorforb = $b->cmp()->withPostFilter(AnswerHints(\n                                [-$b] => \"Do you have the sign correct?\")\n                            );\n                            $evaluatorforc = $c->cmp()->withPostFilter(AnswerHints(\n                                [-$c] => \"Do you have the sign correct?\")\n                            );\n                            Context(\"FiniteSolutionSets\");\n                            $solutionset = Formula(\"{$x1,$x2}\");\n                        </pg-code>\n                        <introduction>\n                            <p>\n                                Consider the quadratic equation <m><var name=\"$quadratic\" /> = 0</m>.\n                            </p>\n                        </introduction>\n                        <task>\n                            <title>Identify Coefficients</title>\n                            <introduction>\n                                <p>\n                                    Identify the coefficients for the quadratic equation using the standard form from <xref ref=\"theorem-quadratic-formula\"/>.\n                                </p>\n                            </introduction>\n                            <task>\n                                <statement>\n                                    <p>\n                                        <m>a=</m> <var name=\"$a\" width=\"4\" evaluator=\"$evaluatorfora\"/>,\n                                    </p>\n                                </statement>\n                                <solution>\n                                    <p>\n                                        Take the coefficient of <m>x^2</m> for the value of <m>a</m>.\n                                        <em>In this case</em>, <m>a = <var name=\"$a\" /></m>.\n                                    </p>\n                                </solution>\n                            </task>\n                            <task>\n                                <statement>\n                                    <p>\n                                        <m>b=</m> <var name=\"$b\" width=\"4\" evaluator=\"$evaluatorforb\"/>,\n                                    </p>\n                                </statement>\n                                <solution>\n                                    <p>\n                                        Take the coefficient of <m>x</m> for the value of <m>b</m>.\n                                        <em>In this case</em>, <m>b = <var name=\"$b\" /></m>.\n                                    </p>\n                                </solution>\n                            </task>\n                            <task>\n                                <statement>\n                                    <p>\n                                        <m>c=</m> <var name=\"$c\" width=\"4\" evaluator=\"$evaluatorforc\"/>\n                                    </p>\n                                </statement>\n                                <solution>\n                                    <p>\n                                        Take the constant term for the value of <m>c</m>.\n                                        <em>In this case</em>, <m>c = <var name=\"$c\" /></m>.\n                                    </p>\n                                </solution>\n                            </task>\n                        </task>\n                        <task>\n                            <title>Use the Quadratic Formula</title>\n                            <statement>\n                                <p>\n                                    Using the quadratic formula, solve the equation.\n                                </p>\n                                <p>\n                                    <var name=\"$solutionset\" width=\"40\"/>\n                                </p>\n                            </statement>\n                            <solution>\n                                <p>\n                                    Recall that the quadratic formula is given in <xref ref=\"theorem-quadratic-formula\"/>.\n                                </p>\n                                <p>\n                                    You already identified <m>a = <var name=\"$a\"/></m>,\n                                    <m>b = <var name=\"$b\"/></m>, and <m>c = <var name=\"$c\"/></m>,\n                                    so the results are:\n                                    <md>x = <var name=\"$sol1\"/> = <var name=\"$x1\"/></md>\n                                    or\n                                    <md>x = <var name=\"$sol2\"/> = <var name=\"$x2\"/></md>\n                                </p>\n                            </solution>\n                        </task>\n                        <conclusion>\n                            <p>\n                                This conclusion is just here for testing.\n                            </p>\n                        </conclusion>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"copy-with-tasks\">\n                    <title>Copy a Problem with Tasks</title>\n\n                    <introduction>\n                        <p>We are testing copying the quadratic equation problem above (<xref ref=\"quadratic-equation\"/>), since it is structured with <tag>task</tag>, and we also provide a new seed.</p>\n                    </introduction>\n\n                    <webwork copy=\"webwork-solve-quadratic\" seed=\"832\"/>\n\n                </exercise>\n            </section>\n\n            <section>\n                <title>Open Problem Library</title>\n\n\n                    <p>The <url href=\"http://webwork.maa.org/wiki/Open_Problem_Library\">Open Problem Library</url> (OPL) is a repository of curated <webwork /> problems. At last count it had something like 30,000 problems, searchable by topic.</p>\n\n                    <p>Most of the problems in this sample chapter have their source authored within the same document as the narrative.  However the problems in this section are from the OPL and elsewhere on the server that is hosting the <webwork /> caclulations.  For HTML output we can connect to the server and render the problem here in an interactive fashion.  For print/PDF we use the <c>pretext</c> script to connect to the server to produce <pretext /> code for the problem.  We can use the <c>exercise.text.*</c> switches to control which parts of the problem (statements, solutions, hints) are incorporated.</p>\n\n                    <p>Problems do not have to be in the OPL to reside on a server; any problem that is accessbile from the <webwork /> course which is hosting the <webwork /> computation may be used this way.</p>\n\n                <exercise label=\"cylinder-volume\">\n                    <title>Cylinder Volume</title>\n\n                    <introduction>\n                        <p>This problem is one that Portland Community College has donated to the Open Problem Library.</p>\n                    </introduction>\n\n                    <webwork source=\"Library/PCC/BasicAlgebra/Geometry/CylinderVolume10.pg\" seed=\"8435\"/>\n                </exercise>\n\n                <p>This uninteresting image, authored in <latex/> syntax, is here only to make sure its automatically-assigned identifier is correct, given that the <init>OPL</init> problem just above is going to generate another image for its static representation.</p>\n\n                <image>\n                    <latex-image>\n                        \\begin{tikzpicture}\n                            \\draw[fill=white] (0,0) ellipse (3 and 0.45);\n                        \\end{tikzpicture}\n                    </latex-image>\n                </image>\n\n                <warning>\n                    <title>Incompatible Problems</title>\n\n                    <p>Not all problems that come from the OPL are compatible with <pretext />. The reasons vary. Perhaps the problem uses older <webwork /> macros that cannot be augmented to provide <pretext /> output. Perhaps the problem nests a table within a table, which <pretext /> will not support. Perhaps there are graphics in the problem that are not sized appropriately for <pretext /> output and there's nothing you can do about it. And there are many more reasons.</p>\n\n                    <p>Unfortunately the variety of reasons for which a problem may be incompatible means that at present, there is no way to validate a problem automatically. Using an incompatible problem might not raise any errors at any stage of the <pretext /> processing, but large chunks of the problem may be missing, especially in print output. So we recommend that you review all output modes when using an OPL problem. Chances are that if it is behaving in print, it will behave elsewhere. But that is an unproven theory at this point.</p>\n                </warning>\n            </section>\n\n            <section>\n                <title>Antidifferentiation</title>\n\n                <subsection>\n                    <title>A Few More Features</title>\n\n                    <p>This subsection demonstrates a few more features.</p>\n\n                    <definition xml:id=\"definition-antiderivative\">\n                        <title>Antiderivative of a Function</title>\n\n                        <statement>\n                            <p>Suppose that <m>f(x)</m> and <m>F(x)</m> are two functions such that <md>F^\\prime(x) = f(x).</md>  Then we say <m>F</m> is an <term>antiderivative</term> of <m>f</m>.</p>\n                        </statement>\n                    </definition>\n\n                    <p>The Fundamental Theorem of Calculus in one of the high points of a course in single-variable course.</p>\n\n                    <theorem xml:id=\"theorem-FTC\">\n                        <title>The Fundamental Theorem of Calculus</title>\n                        <idx>Fundamental Theorem of Calculus</idx>\n                        <statement>\n                            <p>If <m>f(x)</m> is continuous, and the derivative of <m>F(x)</m> is <m>f(x)</m>, then <md>\\definiteintegral{a}{b}{f(x)}{x}=F(b)-F(a)</md></p>\n                        </statement>\n                        <proof>\n                            <p>Left to the reader.</p>\n                        </proof>\n                    </theorem>\n\n                    <p>We state an equivalent version of the FTC, which is less-suited for computation, but which perhaps is a more interesting theoretical statement.</p>\n\n                    <corollary xml:id=\"corollary-FTC-derivative\">\n                        <statement>\n                            <p>Suppose <m>f(x)</m> is a continuous function.  Then <md number=\"yes\" xml:id=\"equation-alternate-FTC\">\\frac{d}{dx}\\definiteintegral{a}{x}{f(t)}{t}=f(x)</md></p>\n                        </statement>\n                        <proof xml:id=\"proof-FTC-corollary\">\n                            <p>We simply take the indicated derivative, applying <xref ref=\"theorem-FTC\" /> at <xref ref=\"equation-use-FTC\" />.<md number=\"yes\">\n                                <mrow xml:id=\"equation-use-FTC\">\\frac{d}{dx}\\definiteintegral{a}{x}{f(t)}{t}&amp;=\\frac{d}{dx}\\left(F(x)-F(a)\\right)</mrow>\n                                <mrow number=\"no\">&amp;=\\frac{d}{dx}F(x)-\\frac{d}{dx}F(a)</mrow>\n                                <mrow>&amp;=f(x)-0 = f(x)</mrow>\n                            </md></p>\n                        </proof>\n                    </corollary>\n                </subsection>\n\n                <exercises>\n                    <title><webwork /> Exercises</title>\n\n                    <introduction>\n                        <p>The first problem in this list is coming from the <webwork /> Open Problem Library. One implication of this is that we might want to provide some commentary that connects the problem to the text.  The other two ask for essay answers, which would be graded by an instructor, so in the HTML output there is no opportunity to provide an answer.</p>\n                    </introduction>\n\n                    <exercise label=\"ww-antiderivatives\">\n                        <title>Antiderivatives</title>\n\n                        <introduction>\n                            <p>Consult <xref ref=\"definition-antiderivative\" /> and the <xref ref=\"theorem-FTC\" text=\"title\" /> to assist you with the following problem.</p>\n                        </introduction>\n\n                        <webwork source=\"Library/ma122DB/set12/s5_4_26.pg\" />\n\n                        <conclusion>\n                            <p>Unless the OPL has changed this problem out from under us, note the <q>SOLUTION</q> appearing in the solution. That is hard-coded into the OPL version of the problem. This is an example of something undesirable that may happen when using OPL problems that were not originally written with <pretext /> in mind.</p>\n                        </conclusion>\n                    </exercise>\n\n                    <exercise label=\"ww-discuss-always-antiderivative\">\n                        <title>Every Continuous Function has an Antiderivative</title>\n\n                        <introduction>\n                            <p><webwork /> problems can allow for open-ended essay responses that are intended to be assessed later by the instructor. For anonymous access, no text field is provided. But if this problem were used within <webwork /> as part of a homework set, users could submit an answer.</p>\n                        </introduction>\n\n                        <webwork>\n                            <statement>\n                                <p>Explain how we can use <xref ref=\"corollary-FTC-derivative\" /> to say that every continuous function <em>always</em> has a derivative. (And we will demonstrate here that you can use a  macro from <c>docinfo</c>: <m>\\definiteintegral{1}{2}{\\frac{1}{x}}{x}=\\ln(2)</m>. It will work in the <webwork /> problem, regardless of whether you are using images, MathJax, or hardcopy.)</p>\n                                <p><var form=\"essay\" /></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n\n                    <exercise label=\"ww-discuss-inverse-processes\">\n                        <title>Inverse Processes</title>\n\n                        <webwork>\n                            <statement>\n                                <p><q>Differentiation and integration are inverse processes.</q>  Cite <alert>specific results</alert> from this section in an explanation of how they justify this (somewhat imprecise) claim.</p>\n                                <p><var form=\"essay\" width=\"40\"/></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n\n                    <exercisegroup cols=\"2\">\n                        <introduction>\n                            <p>\n                                For the given function <m>f</m>, find <m>\\indefiniteintegral{f(x)}{x}</m>.\n                            </p>\n                            <p>\n                                Note that these common instructions are phrased in such a way\n                                that they would read well if they were applied to only one exercise at a time.\n                                That will happen if these exercises are exported as <c>.pg</c> files,\n                                for example to be used in online homework from a <webwork/> server.\n                            </p>\n                        </introduction>\n\n                        <exercise label=\"antiderivative-sin\">\n                            <webwork>\n                                <pg-code>\n                                    $answer = FormulaUpToConstant(\"-cos(x)\");\n                                </pg-code>\n                                <statement>\n                                    <p>\n                                        <m>f(x)=\\sin(x)</m>\n                                    </p>\n                                    <p>\n                                        <var name=\"$answer\" width=\"20\"/>\n                                    </p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n\n                        <exercise label=\"antiderivative-exp\">\n                            <webwork>\n                                <pg-code>\n                                    $answer = FormulaUpToConstant(\"e^x\");\n                                </pg-code>\n                                <statement>\n                                    <p>\n                                        <m>f(x)=e^x</m>\n                                    </p>\n                                    <p>\n                                        <var name=\"$answer\" width=\"20\"/>\n                                    </p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n                    </exercisegroup>\n\n                    <exercise label=\"ww-use-the-definition-of-the-derivative\">\n                        <title>Show Your Work</title>\n                        <introduction>\n                            <p>\n                                Sometimes you would like a student to give a <q>simple</q> answer that <webwork/> can automatically assess,\n                                but you would also like the student to show their work or reasoning.\n                                Perhaps there is a particular method that you want to see the student use to find the answer.\n                                So you have a regular answer blank and also an essay blank.\n                                For practical reasons, you may wish to use the same problem on your <webwork/> server, but omit the essay part.\n                                For example, if you want to use that problem but leave out the manual grading.\n                                For this, <webwork/> has the <c>explanation_box</c> tool, demonstrated here.\n                            </p>\n                        </introduction>\n\n                        <webwork>\n                            <pg-code>\n                                $answer = Formula('2x');\n                                $showwork = '[@ explanation_box(message => \"Show your work.\") @]*';\n                            </pg-code>\n                            <statement>\n                                <p>\n                                    Use the definition of the derivative to find <m>\\frac{d}{dx}x^2</m>.\n                                </p>\n                                <p>\n                                    <var name=\"$answer\" width=\"10\"/>\n                                </p>\n                                <p>\n                                    <var name=\"$showwork\" data=\"pgml\"/>\n                                </p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n\n                </exercises>\n            </section>\n\n            <section>\n                <title>Math Content</title>\n\n                <p>\n                    This section helps with testing aspects of math content.\n                </p>\n\n                <exercise label=\"math-and-alignment\">\n                    <title>Math Elements and Alignment</title>\n                    <introduction>\n                        <p>\n                            In this exercise we demonstrate the allowed math elements: <tag>m</tag> and <tag>md</tag>.\n                            The latter may have attribute <attr>alignment</attr> with options <c>gather</c>, <c>align</c>, or <c>alignat</c>.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                            <p>\n                                If <m>a=5</m> and <m>b=12</m>, then <md>a^2+b^2=13^2</md>.\n                            </p>\n                            <p>\n                                Here, we solve an equation.\n                                <md>\n                                    <mrow>2x+1 \\amp= 3</mrow>\n                                    <mrow>2x   \\amp= 2</mrow>\n                                    <mrow>x    \\amp= 1</mrow>\n                                </md>\n                                Here we have a three-way inequality to solve.\n                                <md>\n                                    <mrow>1 \\lt 2x+1 \\lt 3</mrow>\n                                    <mrow>0 \\lt 2x   \\lt 2</mrow>\n                                    <mrow>0 \\lt x    \\lt 1</mrow>\n                                </md>\n                                And here, we see a system of equations.\n                                <md alignment=\"alignat\">\n                                    <mrow>2x + 2y \\amp {}+{} \\amp z \\amp {}={} \\amp 10</mrow>\n                                    <mrow>y \\amp {}-{} \\amp  4z \\amp {}={} \\amp 9</mrow>\n                                    <mrow>\\amp\\amp   3z \\amp {}={} \\amp -6</mrow>\n                                </md>\n                            </p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"intertext\">\n                    <title>Intertext</title>\n                    <introduction>\n                        <p>\n                            With an <tag>md</tag> you might have <tag>intertext</tag> among the rows.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                            <p>\n                                Here, we solve an equation.\n                                <md>\n                                    <mrow>2x+1 \\amp= 3</mrow>\n                                    <intertext> Now subtract <m>1</m> from each side.</intertext>\n                                    <mrow>2x   \\amp= 2</mrow>\n                                    <intertext> Now divide by <m>2</m> on each side.</intertext>\n                                    <mrow>x    \\amp= 1</mrow>\n                                </md>\n                            </p>\n                            <p>\n                                We should also test when the <tag>md</tag> is within a list.\n                                <ol>\n                                    <li>\n                                        <p>\n                                            Start a list.\n                                        </p>\n                                    </li>\n                                    <li>\n                                        <p>\n                                            <md>\n                                                <mrow>2x+1 \\amp= 3</mrow>\n                                                <intertext> Now subtract <m>1</m> from each side.</intertext>\n                                                <mrow>2x   \\amp= 2</mrow>\n                                                <intertext> Now divide by <m>2</m> on each side.</intertext>\n                                                <mrow>x    \\amp= 1</mrow>\n                                            </md>\n                                        </p>\n                                    </li>\n                                    <li>\n                                        <p>\n                                            Still in the list?\n                                        </p>\n                                    </li>\n                                </ol>\n                            </p>\n                        </statement>\n                    </webwork>\n                </exercise>\n            </section>\n\n            <section>\n                <title>Multiple Choice</title>\n\n                <p>While free-response questions are generally preferred, sometimes the nature of a question lends itself to multiple choice.</p>\n\n                <exercise label=\"multiple-choice\">\n                    <title>Drop-down/Popup</title>\n\n                    <introduction>\n                        <p>Note also that the solution to this problem uses an external link.</p>\n                    </introduction>\n\n                    <webwork>\n\n                        <pg-code>\n                            $rational = PopUp(\n                                [\"?\",\"is\",\"is not\",],\n                                \"is not\",\n                            );\n                        </pg-code>\n\n                        <statement>\n                            <p>The number <m>\\sqrt{2}</m> <var name=\"$rational\" form=\"popup\"/> rational.</p>\n\n                        </statement>\n\n                        <solution>\n                            <p>If <m>\\sqrt{2}</m> were rational, then <m>\\sqrt{2}=\\frac{p}{q}</m>, with <m>p</m> and <m>q</m> coprime. But then <m>2q^2=p^2</m>. By <url href=\"https://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmetic#Canonical_representation_of_a_positive_integer\">the Fundamental Theorem of Arithmetic</url>, the power of <m>2</m> dividing the left side is odd, while the power of <m>2</m> dividing the right side is even. This is a contradiction, so <m>\\sqrt{2}</m> <var name=\"$rational\"/> rational.</p>\n                        </solution>\n\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"choose-one\">\n                    <title>Choose one</title>\n\n                    <webwork>\n\n                        <pg-code>\n                            $theorem = RadioButtons(\n                              [\"The Quadratic Formula\",\"The Fundamental Theorem of Calculus\",\"The Fundamental Theorem of Arithmetic\",\"None of these\"],\n                              1, # index of correct answer; could also just be the correct answer\n                            );\n                        </pg-code>\n\n                        <statement>\n                            <p>Which of the following suggest that differentiation and integration are inverse processes?</p>\n                            <p><var name=\"$theorem\" form=\"buttons\"/></p>\n                        </statement>\n\n                        <solution>\n                            <p>The correct answer is <var name=\"$theorem\"/>.</p>\n                        </solution>\n\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"options-subset\">\n                    <title>Choose a Subset of Options</title>\n                    <webwork>\n                        <pg-code>\n                            $checks = CheckboxList(\n                                [\n                                    [\n                                        \"${BM}e^{x^2} e^{1/x}${EM}\",\n                                        \"${BM}e^{x^2} e^{x^{-1}}${EM}\",\n                                        \"${BM}e^{ (x^3+1) / x}${EM}\",\n                                        \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\",\n                                        \"${BM}e^{x^2} + e^{1/x}${EM}\"\n                                    ],\n                                    \"None of the above\"\n                                ],\n                                [0, 1, 2]\n                            );\n                        </pg-code>\n                        <statement>\n                            <p>\n                                Select all expressions that are equivalent to <m>e^{x^2 + 1/x}</m>.\n                                There may be more than one correct answer.\n                            </p>\n                            <p>\n                                <var name=\"$checks\" form=\"checkboxes\"/>\n                            </p>\n                        </statement>\n                        <solution>\n                            <p>\n                                The correct answer is <var name=\"$checks\"/>.\n                            </p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"options-subset-auto-label\">\n                    <title>Choose a Subset of Options with Automated Labeling</title>\n                    <webwork>\n                        <pg-code>\n                            $checks = CheckboxList(\n                                [\n                                    [\n                                        \"${BM}e^{x^2} e^{1/x}${EM}\",\n                                        \"${BM}e^{x^2} e^{x^{-1}}${EM}\",\n                                        \"${BM}e^{ (x^3+1) / x}${EM}\",\n                                        \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\",\n                                        \"${BM}e^{x^2} + e^{1/x}${EM}\"\n                                    ],\n                                    \"None of the above\"\n                                ],\n                                [0, 1, 2],\n                                labels => \"ABC\",   # \"abc\", \"123\", \"roman\", \"Roman\"\n                            );\n                        </pg-code>\n                        <statement>\n                            <p>\n                                Select all expressions that are equivalent to <m>e^{x^2 + 1/x}</m>.\n                                There may be more than one correct answer.\n                            </p>\n                            <p>\n                                <var name=\"$checks\" form=\"checkboxes\"/>\n                            </p>\n                        </statement>\n                        <solution>\n                            <p>\n                                The correct answer is <var name=\"$checks\"/>.\n                            </p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"options-subset-explicit-labeling\">\n                    <title>Choose a Subset of Options with Explicit Labeling</title>\n                    <webwork>\n                        <pg-code>\n                            $checks = CheckboxList(\n                                [\n                                    [\n                                        {TACO => \"${BM}e^{x^2} e^{1/x}${EM}\"},\n                                        {PIZZA => \"${BM}e^{x^2} e^{x^{-1}}${EM}\"},\n                                        {SUSHI => \"${BM}e^{ (x^3+1) / x}${EM}\"},\n                                        {BURGER => \"${BM}\\dfrac{ e^{x^2} }{ e^x }${EM}\"},\n                                        {BURRITO => \"${BM}e^{x^2} + e^{1/x}${EM}\"}\n                                    ],\n                                    {HUNGRY => \"None of the above\"}\n                                ],\n                                [0, 1, 2],\n                                displayLabels => 1\n                            );\n                        </pg-code>\n                        <statement>\n                            <p>\n                                Select all expressions that are equivalent to <m>e^{x^2 + 1/x}</m>.\n                                There may be more than one correct answer.\n                            </p>\n                            <p>\n                                <var name=\"$checks\" form=\"checkboxes\"/>\n                            </p>\n                        </statement>\n                        <solution>\n                            <p>\n                                The correct answer is <var name=\"$checks\"/>.\n                            </p>\n                        </solution>\n                    </webwork>\n                </exercise>\n            </section>\n\n            <section>\n                <title>Tables</title>\n\n                <p>Although a <webwork /> problem written in <pretext /> source can't have a <q>table</q> (which would be captioned and cause trouble with free-standing PG output), they can have a <q>tabular</q>. Tabulars can be made using the existing syntax and options that PTX offers for table-making, with some exceptions. As of summer 2017, the exceptions are that individual cells cannot have <c>bottom</c> border attributes and individual columns cannot have <c>top</c> border attributes. Also, while PTX table borders are generally <c>minor</c>, <c>medium</c>, or <c>major</c>, when these borders are used in a <webwork /> problem that is rendered as a hard copy problem from within <webwork />, the only thickness option corresponds to <c>minor</c>. Several more features (like rules in general) do not carry through to static output (print or HTML-preview). However we hope this is only temporary.</p>\n\n                <exercise label=\"table-completion\">\n                    <title>Complete this Table</title>\n\n                    <webwork>\n                        <pg-code>\n                            @a = (random(2,9,1),random(2,9,1));\n                            @b = (random(2,9,1),random(2,9,1));\n                            for my$i(0..3){$p[$i]=$a[int($i/2)]*$b[$i % 2]};\n                        </pg-code>\n\n                        <statement>\n                            <p>Complete this multiplication table.</p>\n\n                            <tabular bottom=\"minor\" right=\"minor\" halign=\"center\">\n                                <col halign=\"right\" right=\"major\"/>\n                                <col />\n                                <col />\n                                <row bottom=\"major\">\n                                    <cell><m>\\times</m></cell>\n                                    <cell><m><var name=\"$a[0]\"/></m></cell>\n                                    <cell><m><var name=\"$a[1]\"/></m></cell>\n                                </row>\n                                <row>\n                                    <cell><m><var name=\"$b[0]\"/></m></cell>\n                                    <cell><var name=\"$p[0]\" form=\"none\" category=\"integer\"/></cell>\n                                    <cell><var name=\"$p[2]\" form=\"none\" category=\"integer\"/></cell>\n                                </row>\n                                <row>\n                                    <cell><m><var name=\"$b[1]\"/></m></cell>\n                                    <cell><var name=\"$p[1]\" form=\"none\" category=\"integer\"/></cell>\n                                    <cell><var name=\"$p[3]\" form=\"none\" category=\"integer\"/></cell>\n                                </row>\n                            </tabular>\n                        </statement>\n\n                        <solution>\n                            <tabular bottom=\"minor\" right=\"minor\" halign=\"center\">\n                                <col halign=\"right\" right=\"major\"/>\n                                <col />\n                                <col />\n                                <row bottom=\"major\">\n                                    <cell><m>\\times</m></cell>\n                                    <cell><m><var name=\"$a[0]\"/></m></cell>\n                                    <cell><m><var name=\"$a[1]\"/></m></cell>\n                                </row>\n                                <row>\n                                    <cell><m><var name=\"$b[0]\"/></m></cell>\n                                    <cell><m><var name=\"$p[0]\"/></m></cell>\n                                    <cell><m><var name=\"$p[2]\"/></m></cell>\n                                </row>\n                                <row>\n                                    <cell><m><var name=\"$b[1]\"/></m></cell>\n                                    <cell><m><var name=\"$p[1]\"/></m></cell>\n                                    <cell><m><var name=\"$p[3]\"/></m></cell>\n                                </row>\n                            </tabular>\n\n                        </solution>\n                    </webwork>\n\n                </exercise>\n\n            </section>\n\n            <section>\n                <title>Graphics in Exercises</title>\n                <p>\n                    It is natural for exercises to have graphics.\n                    For example, an exercise might produce a graph of some kind,\n                    and ask the reader to extract some information from that graph.\n                </p>\n                <p>\n                    If your <webwork/> server is version 2.16 or later,\n                    <webwork/> problems can process <tag>latex-image</tag> code. Here is an example.\n                </p>\n                <exercise label=\"static-latex-image\">\n                    <title>A static <tag>latex-image</tag> graph</title>\n                    <webwork>\n                        <pg-code>\n                            Context(\"IntegerFunctions\");\n                            Context()->variables->are(n=>'Real');\n                            $answer = OneOf(Formula(\"C(n+1,2)\"),Formula(\"(n+1)n/2\"));\n                        </pg-code>\n                        <statement>\n                            <p>\n                                This image is a visual proof that <m>\\sum_{k=1}^{n}k</m> equals what?\n                            </p>\n                            <image width=\"50%\">\n                               <description>\n                                    21 blue balls are arranged in a triangular formation,\n                                    with one at the top, then a row of two, a row of three,\n                                    and so on until a row of six;\n                                    there is a seventh row with seven orange balls;\n                                    one blue ball is highlighted, and two lines extend downward from that ball,\n                                    one to the left and one to the right, parallel to the sides of the triangle,\n                                    until they intersect two orange balls;\n                                    the effect is that each of the 1+2+3+4+5+6 blue balls corresponds\n                                    to one pair from the 7 orange balls\n                                </description>\n                                <latex-image>\n                                    \\begin{tikzpicture}\n                                        \\draw[dashed] (0.5-0.5*6.5,-0.866025*6.5) -&#x2d; (7-0.5*6.5,-0.866025*6.5);\n                                        \\draw[very thick] (2-0.5*7,-0.866025*7) -&#x2d; (2-0.5*4,-0.866025*4) -&#x2d; (5-0.5*7,-0.866025*7);\n                                        \\foreach \\x in {1,...,6}\n                                            \\foreach \\y in {1,...,\\x}\n                                                \\shade[ball color=blue!30] (\\y-0.5*\\x,-0.866025*\\x) circle (0.2cm);\n                                        \\foreach \\y in {1,...,7}\n                                            \\shade[ball color=orange!40] (\\y-0.5*7,-0.866025*7) circle (0.2cm);\n                                        \\node at (2.5,-0.5) [anchor=north west]{\\(\\color{blue}\\sum\\limits_{k=1}^nk\\color{black}\\)};\n                                        \\shade[ball color=blue] (2-0.5*4,-0.866025*4) circle (0.2cm);\n                                        \\shade[ball color=orange] (2-0.5*7,-0.866025*7) circle (0.2cm);\n                                        \\shade[ball color=orange] (5-0.5*7,-0.866025*7) circle (0.2cm);\n                                    \\end{tikzpicture}\n                                </latex-image>\n                            </image>\n                            <instruction>\n                                You may enter the answer using <c>C(n,k)</c> notation.\n                            </instruction>\n                            <p>\n                                <var name=\"$answer\" width=\"20\"/>\n                            </p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"randomized-latex-image\">\n                    <title>A randomized <tag>latex-image</tag> graph</title>\n                    <introduction>\n                        <p>\n                            These images may depend on the random seed.\n                            In this problem, the height and width of the rectangle are randomized.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <pg-code>\n                            $a = random(4,6,1);\n                            $b = $a + random(2,4,1);\n                            $area = NumberWithUnits($a*$b, 'cm^2');\n                        </pg-code>\n                        <statement>\n                            <p>\n                                Find the area of the rectangle.\n                            </p>\n                            <image width=\"50%\">\n                                <description>\n                                    a rectangle whose width is labeled <var name=\"$b\"/> cm\n                                    and height is labeled <var name=\"$a\"/> cm\n                                </description>\n                                <latex-image>\n                                    \\begin{tikzpicture}\n                                        \\draw[fill=blue!20] (0,0) -&#x2d;++ (6,0) node[pos=0.5,below] {\\($b\\)\\,cm} -&#x2d;++ (0,4) node[pos=0.5,right] {\\($a\\)\\,cm} -&#x2d;++ (-6,0) -&#x2d; cycle;\n                                    \\end{tikzpicture}\n                                </latex-image>\n                            </image>\n                            <p>\n                                <var name=\"$area\" width=\"20\"/>\n                            </p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"latex-image-with-preamble\">\n                    <title>A <tag>latex-image</tag> graph affected by <tag>latex-image-preamble</tag></title>\n                    <introduction>\n                        <p>\n                            This sample chapter's <tag>docinfo</tag> has a <tag>latex-image-preamble</tag>.\n                            This exercise has graph styling that is affected by that.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <pg-code>\n                            @roots = (-3..3)[NchooseK(7,3)];\n                            @roots = num_sort(@roots);\n                            $answer = List(@roots);\n                            $xmin = min(-1,@roots)-1;\n                            $xmax = max(1,@roots)+1;\n                        </pg-code>\n                        <statement>\n                            <p>\n                                What are the roots of this polynomial?\n                            </p>\n                            <image width=\"50%\">\n                                <description>\n                                    the graph of a polynomial that crosses the x-axis at <var name=\"$roots[0]\"/>,\n                                    <var name=\"$roots[1]\"/>, and <var name=\"$roots[2]\"/>.\n                                </description>\n                                <latex-image>\n                                    \\begin{tikzpicture}\n                                        \\begin{axis}\n                                            \\addplot[domain=$xmin:$xmax,smooth] {(x-$roots[0])*(x-$roots[1])*(x-$roots[2])};\n                                        \\end{axis}\n                                    \\end{tikzpicture}\n                                </latex-image>\n                            </image>\n                            <p>\n                                <var name=\"$answer\" width=\"20\"/>\n                            </p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"special-characters\">\n                    <title>Special characters</title>\n                    <introduction>\n                        <p>\n                            This exercise is to test that special characters behave.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                            <p>\n                                The code below has a printed dollar sign, a printed percent sign,\n                                a printed at sign, and a percent sign used as a comment marker.\n                            </p>\n                            <image width=\"50%\">\n                                <description>\n                                    this image has pictures of text with special characters like $, %, and @\n                                </description>\n                                <latex-image>\n                                    \\begin{tikzpicture}\n                                        \\node at (0,0) {I need about \\$3.50.};\n                                        \\node at (0,1) {You gotta give 110\\%.};  %This is a comment.\n                                        \\node at (0,2) {Send email user@domain.com.};\n                                    \\end{tikzpicture}\n                                </latex-image>\n                            </image>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <!-- TODO: Support for packages, such as pgfplots -->\n\n                <p>\n                    An older mechanism for creating images is supported\n                    and demonstrated here.\n                </p>\n\n                <exercise label=\"solving-with-graph\">\n                    <title>Solve using a graph</title>\n                    <webwork>\n                        <pg-code>\n                            $a = random(1,3,1);\n                            $gr = init_graph(-1,-1,4,4,\n                            axes=>[0,0],\n                            grid=>[5,5],\n                            size=>[300,180]\n                            );\n                            add_functions($gr, \"x^3/$a^3 for x in &lt;-1,4&gt; using color:blue and weight:2\");\n                            $second_x = Real($a*2**(1/3));\n                            $solgr = init_graph(-1,-1,4,4,\n                            axes=>[0,0],\n                            grid=>[5,5],\n                            size=>[300,180]\n                            );\n                            add_functions($solgr, \"x^3/$a^3 for x in &lt;-1,4&gt; using color:blue and weight:2\");\n                            $solgr->moveTo(0,1);\n                            $solgr->lineTo($a,1,'black',3);\n                            $solgr->arrowTo($a,0,'black',3);\n                            Context(\"FiniteSolutionSets\");\n                            $answer = Formula(\"{$a}\");\n                        </pg-code>\n                        <statement>\n                            <p>\n                                The graph below is a graph of <m>y=f(x)</m>.\n                                Use the graph to solve the equation <m>f(x)=1</m>.\n                            </p>\n                            <image pg-name=\"$gr\" width=\"50%\">\n                                <description>\n                                    a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points (<var name=\"$a\"/>,1) and (<var name=\"$second_x\"/>,2) before leaving the graph moving more and more upward and to the right.\n                                </description>\n                            </image>\n                            <p>\n                                <var name=\"$answer\" width=\"5\" category=\"number\"/>\n                            </p>\n                        </statement>\n                        <solution>\n                            <p>\n                                The graph reveals that the solution set to <m>f(x)=1</m> is <m><var name=\"$answer\"/></m>.\n                            </p>\n                            <image pg-name=\"$solgr\" width=\"50%\">\n                                <description>\n                                    a plot of a curve on a cartesian set of axes; the x axis ranges from -1 to 4, and the y-axis ranges from -1 to 4; the curve enters from the left, below the x-axis, and curves upward and to the right until it reaches the point (0,0); from here it continues predominantly rightward for a bit, bending slightly upward more and more as it progresses; it passes through the points (<var name=\"$a\"/>,1) and (<var name=\"$second_x\"/>,2) before leaving the graph moving more and more upward and to the right; a horizontal line segment moves rightward from y=1 on the y-axis until it reaches a point on the curve; a vertical line segment moves down from this point to x=<var name=\"$a\"/> on the x-axis.\n                                </description>\n                            </image>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercises>\n                    <exercisegroup cols=\"2\">\n                        <introduction>\n                            <p>\n                                This exercisegroup has a <tag>latex-image</tag> image in its introduction.\n                                In standalone versions of the exercise, this image should be repeated.\n                            </p>\n                            <image width=\"50%\">\n                              <latex-image>\n                                \\begin{tikzpicture}\n                                    \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(L\\)} --++ (0,3) node[right,pos=0.5] {\\(W\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(D\\)} --++ (0,3) --++ (4,0);\n                                \\end{tikzpicture}\n                              </latex-image>\n                            </image>\n                        </introduction>\n                        <exercise label=\"box-diagonal-five\">\n                            <webwork>\n                                <statement>\n                                    <p>\n                                        Find <m>D</m> when <m>L=4</m> and <m>W=3</m>.\n                                    </p>\n                                    <p>\n                                        <var name=\"'5'\" width=\"10\"/>\n                                    </p>\n                                </statement>\n                                <solution>\n                                    <image>\n                                      <latex-image>\n                                        \\begin{tikzpicture}\n                                            \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(4\\)} --++ (0,3) node[right,pos=0.5] {\\(3\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(5\\)} --++ (0,3) --++ (4,0);\n                                        \\end{tikzpicture}\n                                      </latex-image>\n                                    </image>\n                                </solution>\n                            </webwork>\n                        </exercise>\n                        <exercise label=\"box-diagonal-thirteen\">\n                            <webwork>\n                                <statement>\n                                    <p>\n                                        Find <m>D</m> when <m>L=12</m> and <m>W=5</m>.\n                                    </p>\n                                    <p>\n                                        <var name=\"'13'\" width=\"10\"/>\n                                    </p>\n                                </statement>\n                                <solution>\n                                    <image>\n                                      <latex-image>\n                                        \\begin{tikzpicture}\n                                            \\draw (0,0) --++ (4,0) node[below,pos=0.5] {\\(12\\)} --++ (0,3) node[right,pos=0.5] {\\(5\\)} --++ (-4,-3) node[above,sloped,pos=0.5] {\\(13\\)} --++ (0,3) --++ (4,0);\n                                        \\end{tikzpicture}\n                                      </latex-image>\n                                    </image>\n                                </solution>\n                            </webwork>\n                        </exercise>\n                    </exercisegroup>\n                </exercises>\n\n            </section>\n\n        </chapter>\n\n        <chapter>\n            <title>Technical Examples</title>\n\n            <section>\n                <title>PGML Formatting and Verbatim Calisthenics</title>\n\n                <p>This section is designed to test various PGML formatting rules and verbatim content returned in answer hashes. Consult the source to see how the special characters and formatting are realized.</p>\n\n                <exercise label=\"ww-PGML-format\">\n                    <title>PGML Formatting</title>\n\n                    <webwork>\n                        <statement>\n                            <p>Smart double quotes: <q>Life is about making an impact, not making an income.</q></p>\n                            <p>Smart single quotes: <sq>Whatever the mind of man can conceive and believe, it can achieve.</sq></p>\n                            <p>Regular apostrophes: My siblings' mother's daughter isn't my daughter's siblings' mother.</p>\n                            <p>Emphasis: <em>very important</em></p>\n                            <p>Alert: <alert>do not</alert> do it</p>\n                            <p>Braces: {text that looks like a set}</p>\n                            <!-- uncomment next to test, will not activate generally in sample document -->\n                            <!-- <p>Verbatim: code, <c>with banned substring: [|</c></p>                -->\n                            <pre>\n                                Some pre-formatted text\n                                            with an indented line\n                            and an out-dented line\n                            This should not be altered *a problem*\n                            And this [$NDASH]* should not be an en-dash\n                            </pre>\n\n                            <p>\n                                Here is some inline <c>code with special characters &amp; &lt; &gt; \" ' # $ % ^ _ { } ~ \\ * [ ]</c>,\n                                and here is some <cd>single-line display code with special characters &amp; &lt; &gt; \" ' # $ % ^ _ { } ~ \\ * [ ]</cd>\n                                and here is some\n                                <cd>\n                                    <cline>multi-line display</cline>\n                                    <cline>code with special characters &amp; &lt; &gt; \" ' # $ % ^ _ { } ~ \\ * [ ]</cline>\n                                </cd>\n                            </p>\n\n                            <p>Some raw characters, XML/HTML:    &amp; &lt; &gt; \" '</p>\n                            <p>Some raw characters, <latex/>:    # $ % ^ &amp; _ { } ~ \\</p>\n                            <p>Some raw characters, PGML:        \\ * # { } [ ]</p>\n\n                            <p>Some characters that need special handling for PGML conversion to HTML or <latex />:</p>\n\n                            <p>A non<nbsp />breaking space (invisble where a hyphen should be)</p>\n                            <p>An ndash<ndash />right here.</p>\n                            <p>An mdash<mdash />right here.</p>\n\n                            <p>Some constructions in <q>normal</q> text, which need to be manipulated, lest they get interpreted as PGML markup:</p>\n\n                            <p>&gt;&gt; This should not be a centered line &lt;&lt;</p>\n\n                            <p>&gt;&gt; Nor a right-justified line, either</p>\n\n                            <p>We should not get _a phrase in italics_ in the midst of this sentence.</p>\n\n                            <p>Brackets, unpaired; ] with content between [</p>\n\n                            <p>Brackets, paired, in PGML constructions; [$NDASH]*, [___]{$answer}</p>\n\n                            <p>### This should not be a level 3 heading</p>\n\n                            <p>===   Not a horizontal rule from three equal signs</p>\n                            <p>==    Not a horizontal rule from two equal signs</p>\n                            <p>===== Not a horizontal rule from five equal signs</p>\n                            <p>---   Not a horizontal rule from three hyphens</p>\n                            <p>--    Not a horizontal rule from two hyphens</p>\n                            <p>----- Not a horizontal rule from five hyphens</p>\n\n                            <p>+ Not an unordered list item</p>\n                            <p>- Not an unordered list item</p>\n\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <p>Here we make MathObject String answers to see how they turn out in answer elements.</p>\n\n                <exercise label=\"mathobject-string-answers\">\n                    <webwork>\n                        <pg-code>\n                            $xmlchars = q(&lt;>&amp;'\";);\n                            $latex0 = '#%&amp;&lt;>\\^_`|~';\n                            $latex1 = '${}';\n                            $alphanumeric = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n                            $otherchars = '!()*+,-./:=?@[]';\n                            Context()->strings->add($xmlchars=>{});\n                            Context()->strings->add($latex0=>{});\n                            Context()->strings->add($latex1=>{});\n                            Context()->strings->add($alphanumeric=>{});\n                            Context()->strings->add($otherchars=>{});\n                            $xmlcharsMO = String($xmlchars);\n                            $latex0MO = String($latex0);\n                            $latex1MO = String($latex1);\n                            $alphanumericMO = String($alphanumeric);\n                            $othercharsMO = String($otherchars);\n                        </pg-code>\n\n                        <statement>\n                            <p><ol>\n                                <li>\n                                    <p>Special characters used by XML, character escaping: <var name=\"$xmlchars\" /></p>\n                                    <p>Now as a MathObject: <var name=\"$xmlcharsMO\" /></p>\n                                    <p><var name=\"$xmlchars\" width=\"6\" /></p>\n                                </li>\n                                <li>\n                                    <p>Special characters used by LaTeX, where LaTeX <c>\\text</c> and MathJax <c>\\text</c> disagree: <var name=\"$latex0\" /></p>\n                                    <p>Now as a MathObject: <var name=\"$latex0MO\" /></p>\n                                    <p><var name=\"$latex0\" width=\"11\" /></p>\n                                </li>\n                                <li>\n                                    <p>Special characters used by LaTeX, where LaTeX <c>\\text</c> and MathJax <c>\\text</c> can agree: <var name=\"$latex1\" /></p>\n                                    <p>Now as a MathObject: <var name=\"$latex1MO\" /></p>\n                                    <p><var name=\"$latex1\" width=\"3\" /></p>\n                                </li>\n                                <li>\n                                    <p>Alphanumeric characters: <var name=\"$alphanumeric\" /></p>\n                                    <p>Now as a MathObject: <var name=\"$alphanumericMO\" /></p>\n                                    <p><var name=\"$alphanumeric\" width=\"62\" /></p>\n                                </li>\n                                <li>\n                                    <p>Other characters: <var name=\"$otherchars\" /></p>\n                                    <p>Now as a MathObject: <var name=\"$othercharsMO\" /></p>\n                                    <p><var name=\"$otherchars\" width=\"15\" /></p>\n                                </li>\n                            </ol></p>\n                            <p>In answers, because of <latex/> and MathJax divergence, the first two should come out in verbatim. (And so should any string containing even one of those characters.) The latter three should come out in regular text.</p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <p>\n                    Occasionally (and probably very rarely) your PG code will include a string variable where the content is PGML syntax.\n                    If this is put into the exercise statement, it will be inserted <em>after</em> PGML processing is done,\n                    and therefore it won't render as you might expect. To insert this content and also have it processed as PGML,\n                    use <c>data=\"pgml\"</c>. (This is not in the <pretext/> schema as of 3/26/2020, and is subject to change.)\n                </p>\n\n                <exercise label=\"pgml-data-attribute\">\n                    <webwork>\n                        <pg-code>\n                            $statement = 'some PGML math: [`\\frac{1}{2}+\\frac{3}{2}=2`]; and some *bold text*';\n                        </pg-code>\n                        <statement>\n                            <p>\n                                <var name=\"$statement\"/> makes:\n                            </p>\n                            <p>\n                                <var name=\"$statement\" data=\"pgml\"/>\n                            </p>\n                        </statement>\n                    </webwork>\n                </exercise>\n            </section>\n\n            <section>\n                <title>Subject Area Templates</title>\n\n                <p>This section samples the subject area template problems found on the <webwork /> wiki at <url href=\"http://webwork.maa.org/wiki/SubjectAreaTemplates\"/>.</p>\n\n                <exercise label=\"number-or-function\">\n                    <title>Answer is a number or a function</title>\n\n                    <webwork>\n\n                        <pg-code>\n                            $a = non_zero_random(-9,9,1);\n                            do { $b = random(2,9,1); } until ( $b != $a );\n                            $answer1 = Compute(\"$a\");\n                            $answer2 = Compute(\"($a x^($b) + $b)/x\")->reduce();\n                        </pg-code>\n\n                        <statement>\n                            <p><ol>\n                                <li>\n                                    <p>Suppose the correct answer is <m><var name=\"$answer1\"/></m>.</p>\n                                    <p><ul marker=\"square\">\n                                        <li>\n                                            <p><var name=\"$answer1\" width=\"15\" category=\"integer\"/></p>\n                                        </li>\n                                    </ul></p>\n                                </li>\n                                <li>\n                                    <p>Suppose the correct answer is <m>\\displaystyle <var name=\"$answer2\"/></m>.</p>\n                                    <p><ul marker=\"square\">\n                                        <li>\n                                            <p><var name=\"$answer2\" width=\"15\" category=\"formula\"/></p>\n                                        </li>\n                                    </ul></p>\n                                </li>\n                            </ol></p>\n\n                        </statement>\n\n                        <solution>\n                            <p>Solution explanation goes here.</p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"function-with-domain-issues\">\n                    <title>Answer is a function with domain issues</title>\n\n                    <webwork>\n\n                        <pg-code>\n                            $a = random(2,5,1);\n                            $answer1 = Compute(\"sqrt(x-$a)\");\n                            $answer1->{limits} = [$a+1,$a+4];\n                            $answer2 = Compute(\"ln(abs( x / (x-$a) ))\");\n                            $answer2->{test_points} = [[-5],[-4],[1],[$a-1],[7],[8]];\n                            $answer2evaluator = $answer2 -> cmp() -> withPostFilter( AnswerHints( [Compute(\"ln(abs((x-$a)/x))\"),] => \"This is the opposite of correct...\",));\n                        </pg-code>\n\n                        <statement>\n                            <p><ol>\n                                <li>\n                                    <p>Suppose the correct answer is <m>\\displaystyle <var name=\"$answer1\"/></m>.</p>\n                                    <p><ul marker=\"square\">\n                                        <li>\n                                            <p><var name=\"$answer1\" width=\"15\" category=\"formula\"/></p>\n                                        </li>\n                                    </ul></p>\n                                </li>\n                                <li>\n                                    <p>Suppose the correct answer is <m>\\displaystyle <var name=\"$answer2\"/></m>.</p>\n                                    <p><ul marker=\"square\">\n                                        <li>\n                                            <p><var name=\"$answer2\" width=\"15\" evaluator=\"$answer2evaluator\" category=\"formula\"/></p>\n                                        </li>\n                                    </ul></p>\n                                </li>\n                            </ol></p>\n\n                        </statement>\n\n                        <solution>\n                            <p>Solution explanation goes here.</p>\n                        </solution>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"multiple-choice-popup-or-radio-buttons\">\n                    <title>Multiple Choice by Popup, Radio Buttons, or Checkboxes</title>\n\n                    <webwork>\n                        <pg-code>\n                            $color1 = PopUp([\"?\",\"Red\",\"Blue\",\"Green\"], 2);\n                            $color2 = RadioButtons([\"Red\",\"Blue\",\"Green\",\"None of these\"], 1);\n                            $color3 = CheckboxList([\"Red\",\"Blue\",\"Green\",\"None of these\"], [1]);\n                        </pg-code>\n                        <statement>\n                            <p>My favorite color is <var name=\"$color1\" form=\"popup\"/>.</p>\n\n                            <p>My favorite color is</p>\n                            <p><var name=\"$color2\" form=\"buttons\"/></p>\n\n                            <p>My favorite color is</p>\n                            <p><var name=\"$color3\" form=\"checkboxes\"/></p>\n                        </statement>\n\n                        <solution>\n                            <p>The correct answer is <var name=\"$color1\"/>.</p>\n                            <p>The correct answer is <var name=\"$color2\"/>.</p>\n                            <p>The correct answer is <var name=\"$color3\"/>.</p>\n                        </solution>\n\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"radio-buttons-with-math\">\n                    <webwork>\n                        <pg-code>\n                              $expressions = RadioButtons(['\\(x\\)','\\(x^2\\)','\\(2^x\\)'], 2);\n                        </pg-code>\n                        <statement>\n                            <p>\n                                There is math in each option for this question. Which expression is not a polynomial?\n                            </p>\n                            <p>\n                                <var name=\"$expressions\" form=\"buttons\"/>\n                            </p>\n                        </statement>\n                        <solution>\n                            <p>The answer is <var name=\"$expressions\"/>.</p>\n                        </solution>\n                    </webwork>\n\n                </exercise>\n\n                <exercise label=\"tables\">\n                    <title>Tables</title>\n\n                    <webwork>\n\n                        <pg-code>\n                            $x = Real(5);\n                        </pg-code>\n\n                        <statement>\n                            <p>A table with minimal XML source.</p>\n\n                            <tabular>\n                                <row>\n                                    <cell>A</cell>\n                                    <cell>B</cell>\n                                    <cell>C</cell>\n                                </row>\n                                <row>\n                                    <cell>D</cell>\n                                    <cell>E</cell>\n                                    <cell>F</cell>\n                                </row>\n                                <row>\n                                    <cell>G</cell>\n                                    <cell>H</cell>\n                                    <cell>I</cell>\n                                </row>\n                            </tabular>\n                            <p>Finish this table.</p>\n\n                            <tabular top=\"major\" left=\"major\" bottom=\"major\" right=\"minor\" halign=\"center\">\n                                <col halign=\"right\" top=\"minor\"/>\n                                <col right=\"medium\"/>\n                                <col halign=\"left\"/>\n                                <row bottom=\"none\" left=\"none\">\n                                <cell right=\"minor\">1</cell>\n                                    <cell>two</cell>\n                                    <cell><m>\\lfloor\\pi\\rfloor</m></cell>\n                                </row>\n                                <row valign=\"bottom\">\n                                    <cell bottom=\"minor\"><line><m>\\text{I}+\\text{I}</m></line><line><m>{}+\\text{I}+\\text{I}</m></line></cell>\n                                    <cell><var name=\"$x\" form=\"none\" category=\"integer\"/></cell>\n                                    <cell>six</cell>\n                                </row>\n                                <row halign=\"right\">\n                                    <cell><m>2^3-1</m></cell>\n                                    <cell colspan=\"2\" halign=\"center\">VIII</cell>\n                                </row>\n                            </tabular>\n                        </statement>\n\n                        <solution>\n                            <p>The missing number is <var name=\"$x\"/>.</p>\n                        </solution>\n\n                    </webwork>\n\n                </exercise>\n\n                <exercise label=\"answer-arrays\">\n                    <title>Answer Arrays</title>\n                    <webwork>\n                      <pg-code>\n                        Context(\"Point\");\n                        $p = Point(0,0);\n                        Context(\"Vector\");\n                        $v = Vector(1,2);\n                        $c = ColumnVector(3,4);\n                        Context(\"Matrix\");\n                        $m = Matrix([[1,2],[3,4]]);\n                      </pg-code>\n                      <statement>\n                        <p>\n                          These answer blanks are all expecting some sort of answer in an array format.\n                        </p>\n                        <p>\n                          <m><var name=\"$p\"/> = {}</m><var name=\"$p\" form=\"array\"/>\n                        </p>\n                        <p>\n                          <m><var name=\"$v\"/> = {}</m><var name=\"$v\" form=\"array\"/>\n                        </p>\n                        <p>\n                          <m><var name=\"$c\"/> = {}</m><var name=\"$c\" form=\"array\"/>\n                        </p>\n                        <p>\n                          <m><var name=\"$m\"/> = {}</m><var name=\"$m\" form=\"array\"/>\n                        </p>\n                      </statement>\n                    </webwork>\n                </exercise>\n            </section>\n\n            <section>\n                <title>Stress Tests</title>\n\n                <exercise label=\"ptx-source-with-server-images\">\n                    <title>PTX problem source with server-generated images</title>\n                    <webwork>\n                        <pg-code>\n                            for my $i(0..7){$gr[$i] = init_graph(-1,-1,4,4,axes=>[0,0],grid=>[5,5],size=>[150,150]);};\n                            add_functions($gr[0], \"1 for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[1], \"x for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[2], \"x^2 for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[3], \"x^3 for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[4], \"e^x for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[5], \"sin(x) for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[6], \"cos(x) for x in &lt;-1,4> using color:blue and weight:2\");\n                            add_functions($gr[7], \"exp(-x^2) for x in &lt;-1,4> using color:blue and weight:2\");\n                        </pg-code>\n                        <task>\n                            <statement>\n                                <image pg-name=\"$gr[0]\" width=\"25%\"/>\n                                <image pg-name=\"$gr[1]\" width=\"25%\"/>\n                            </statement>\n                            <solution>\n                                <image pg-name=\"$gr[2]\" width=\"25%\"/>\n                            </solution>\n                        </task>\n                        <task>\n                            <statement>\n                                <image pg-name=\"$gr[3]\" width=\"25%\"/>\n                                <image pg-name=\"$gr[4]\" width=\"25%\"/>\n                                <image pg-name=\"$gr[5]\" width=\"25%\"/>\n                            </statement>\n                            <hint>\n                                <image pg-name=\"$gr[6]\" width=\"25%\"/>\n                            </hint>\n                            <solution>\n                                <image pg-name=\"$gr[7]\" width=\"25%\"/>\n                            </solution>\n                        </task>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"list-indentation\">\n                    <title>Checking Proper Indentation In Lists</title>\n                    <introduction>\n                        <p>One long exercise, where ordered sublists test the specification of their labels.</p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                            <p><ol>\n                                <li>Simple item</li>\n                                <li>Simple item</li>\n                                <li>Simple item</li>\n                            </ol></p>\n\n                            <p><ol>\n                                <li>Simple item</li>\n                                <li>Simple item</li>\n                                <li>Simple item</li>\n                            </ol></p>\n\n                            <p>Text before.<ol>\n                                <li>Simple item</li>\n                                <li>Simple item</li>\n                                <li>Simple item</li>\n                            </ol>And after.</p>\n\n                            <p><ol>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                            </ol></p>\n\n                            <p>Text before.<ol>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                            </ol>And after.</p>\n\n                            <p><ol>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p><ol marker=\"A\">\n                                        <li>\n                                            <p>Sublist Item</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                        </li>\n                                    </ol></p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                            </ol></p>\n\n                            <p>Text before.<ol>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Text before.<ol marker=\"i\">\n                                        <li>\n                                            <p>Sublist Item</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                        </li>\n                                    </ol>And after.</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                            </ol>And after.</p>\n\n                            <p><ol>\n                                <li>\n                                    <p>Structured item</p>\n                                    <p>Second paragraph</p>\n                                </li>\n                                <li>\n                                    <p><ol marker=\"I\">\n                                        <li>\n                                            <p>Sublist Item</p>\n                                            <p>Second paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                            <p>Second paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                            <p>Second paragraph</p>\n                                        </li>\n                                    </ol></p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                    <p>Second paragraph</p>\n                                </li>\n                            </ol></p>\n\n                            <p>Text before.<ol>\n                                <li>\n                                    <p>Structured item</p>\n                                    <p>Second paragraph</p>\n                                </li>\n                                <li>\n                                    <p>Text before.<ol marker=\"1\">\n                                        <li>\n                                            <p>Sublist Item</p>\n                                            <p>Second paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                            <p>Second paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item</p>\n                                            <p>Second paragraph</p>\n                                        </li>\n                                    </ol>And after.</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                    <p>Second paragraph</p>\n                                </li>\n                            </ol>And after.</p>\n\n                            <p><ol>\n                                <li>\n                                    <p><md>1+1=2</md>Structured item</p>\n                                    <p>Second<md>1+1=2</md> paragraph</p>\n                                </li>\n                                <li>\n                                    <p><ol marker=\"a\">\n                                        <li>\n                                            <p>Sublist<md>1+1=2</md> Item</p>\n                                            <p>Second paragraph<md>1+1=2</md></p>\n                                        </li>\n                                        <li>\n                                            <p><md>1+1=2</md>Sublist Item</p>\n                                            <p>Second<md>1+1=2</md> paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item<md>1+1=2</md></p>\n                                            <p><md>1+1=2</md>Second paragraph</p>\n                                        </li>\n                                    </ol></p>\n                                </li>\n                                <li>\n                                    <p>Structured<md>1+1=2</md> item</p>\n                                    <p>Second paragraph<md>1+1=2</md></p>\n                                </li>\n                            </ol></p>\n\n                            <p>Text before.<ol>\n                                <li>\n                                    <p>Structured<md>1+1=2</md> item</p>\n                                    <p>Second paragraph<md>1+1=2</md></p>\n                                </li>\n                                <li>\n                                    <p><md>1+1=2</md>Text before.<ol marker=\"A\">\n                                        <li>\n                                            <p>Sublist<md>1+1=2</md> Item</p>\n                                            <p>Second paragraph<md>1+1=2</md></p>\n                                        </li>\n                                        <li>\n                                            <p><md>1+1=2</md>Sublist Item</p>\n                                            <p>Second<md>1+1=2</md> paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item<md>1+1=2</md></p>\n                                            <p><md>1+1=2</md>Second paragraph</p>\n                                        </li>\n                                    </ol>And<md>1+1=2</md> after.</p>\n                                </li>\n                                <li>\n                                    <p>Structured item<md>1+1=2</md></p>\n                                    <p><md>1+1=2</md>Second paragraph</p>\n                                </li>\n                            </ol>And after.</p>\n\n                            <p>Text before.<ol>\n                                <li>\n                                    <p>Structured<md>\n                                        <mrow>1+1\\amp=2</mrow>\n                                        <mrow>2\\amp=2</mrow>\n                                    </md> item</p>\n                                    <p>Second paragraph<md>\n                                        <mrow>1+1\\amp=2</mrow>\n                                        <mrow>2\\amp=2</mrow>\n                                    </md></p>\n                                </li>\n                                <li>\n                                    <p><md>\n                                        <mrow>1+1\\amp=2</mrow>\n                                        <mrow>2\\amp=2</mrow>\n                                    </md>Text before.<ol marker=\"i\">\n                                        <li>\n                                            <p>Sublist<md>\n                                                <mrow>1+1\\amp=2</mrow>\n                                                <mrow>2\\amp=2</mrow>\n                                            </md> Item</p>\n                                            <p>Second paragraph<md>\n                                                <mrow>1+1\\amp=2</mrow>\n                                                <mrow>2\\amp=2</mrow>\n                                            </md></p>\n                                        </li>\n                                        <li>\n                                            <p><md>\n                                                <mrow>1+1\\amp=2</mrow>\n                                                <mrow>2\\amp=2</mrow>\n                                            </md>Sublist Item</p>\n                                            <p>Second<md>\n                                                <mrow>1+1\\amp=2</mrow>\n                                                <mrow>2\\amp=2</mrow>\n                                            </md> paragraph</p>\n                                        </li>\n                                        <li>\n                                            <p>Sublist Item<md>\n                                                <mrow>1+1\\amp=2</mrow>\n                                                <mrow>2\\amp=2</mrow>\n                                            </md></p>\n                                            <p><md>\n                                                <mrow>1+1\\amp=2</mrow>\n                                                <mrow>2\\amp=2</mrow>\n                                            </md>Second paragraph</p>\n                                        </li>\n                                    </ol>And<md>\n                                    <mrow>1+1\\amp=2</mrow>\n                                    <mrow>2\\amp=2</mrow>\n                                </md> after.</p>\n                                </li>\n                                <li>\n                                    <p>Structured item<md>\n                                        <mrow>1+1\\amp=2</mrow>\n                                        <mrow>2\\amp=2</mrow>\n                                    </md></p>\n                                    <p><md>\n                                        <mrow>1+1\\amp=2</mrow>\n                                        <mrow>2\\amp=2</mrow>\n                                    </md>Second paragraph</p>\n                                </li>\n                            </ol>And after.</p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"list-indentation-with-images-and-tables\">\n                    <title>Checking Proper Indentation In Lists with Images and Tables</title>\n                    <webwork>\n                        <pg-code>\n                            $g=init_graph(-1,-1,1,1,axes=>[0,0]);\n                        </pg-code>\n                        <statement>\n                            <p><ol>\n                                <li>\n                                    <p>Structured item</p>\n                                    <image pg-name=\"$g\" width=\"17%\"/>\n                                </li>\n                                <li>\n                                    <image pg-name=\"$g\" width=\"17%\"/>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                    <image pg-name=\"$g\" width=\"17%\"/>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                            </ol></p>\n\n                            <p><ol>\n                                <li>\n                                    <p>Structured item</p>\n                                    <tabular>\n                                        <row>\n                                            <cell>a</cell>\n                                            <cell>b</cell>\n                                        </row>\n                                        <row>\n                                            <cell>c</cell>\n                                            <cell>d</cell>\n                                        </row>\n                                    </tabular>\n                                </li>\n                                <li>\n                                    <tabular top=\"major\" left=\"major\" bottom=\"major\" right=\"minor\" halign=\"center\">\n                                        <col halign=\"right\" top=\"minor\"/>\n                                        <col right=\"medium\"/>\n                                        <col halign=\"left\"/>\n                                        <row bottom=\"none\" left=\"none\">\n                                        <cell right=\"minor\">1</cell>\n                                            <cell>two</cell>\n                                            <cell><m>\\lfloor\\pi\\rfloor</m></cell>\n                                        </row>\n                                        <row valign=\"bottom\">\n                                            <cell bottom=\"minor\"><line><m>\\text{I}+\\text{I}</m></line><line><m>{}+\\text{I}+\\text{I}</m></line></cell>\n                                            <cell><m>5</m></cell>\n                                            <cell>six</cell>\n                                        </row>\n                                        <row halign=\"right\">\n                                            <cell><m>2^3-1</m></cell>\n                                            <cell colspan=\"2\" halign=\"center\">VIII</cell>\n                                        </row>\n                                    </tabular>\n                                    <p>Structured item</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                    <tabular>\n                                        <row>\n                                            <cell>a</cell>\n                                            <cell>b</cell>\n                                        </row>\n                                        <row>\n                                            <cell>c</cell>\n                                            <cell>d</cell>\n                                        </row>\n                                    </tabular>\n                                    <p>Second paragraph</p>\n                                </li>\n                                <li>\n                                    <p>Structured item</p>\n                                </li>\n                            </ol></p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"deep-nested-lists\">\n                    <title>Deep-nested lists</title>\n                    <webwork>\n                        <statement>\n                            <p>Ordered list.</p>\n                            <p><ol>\n                                <li><p>Level 1, first.</p></li>\n                                <li><p>Level 1, second.<ol>\n                                    <li><p>Level 2, first.</p></li>\n                                    <li><p>Level 2, second.<ol>\n                                        <li><p>Level 3, first.</p></li>\n                                        <li><p>Level 3, second.<ol>\n                                            <li><p>Level 4, first.</p></li>\n                                            <li><p>Level 4, second.</p></li>\n                                            <li><p>Level 4, third.</p></li>\n                                        </ol></p></li>\n                                        <li><p>Level 3, third.</p></li>\n                                    </ol></p></li>\n                                    <li><p>Level 2, third.</p></li>\n                                </ol></p></li>\n                                <li><p>Level 1, third.</p></li>\n                            </ol></p>\n                            <p>Unordered list.</p>\n                            <p><ul>\n                                <li><p>Level 1, first.</p></li>\n                                <li><p>Level 1, second.<ul>\n                                    <li><p>Level 2, first.</p></li>\n                                    <li><p>Level 2, second.<ul>\n                                        <li><p>Level 3, first.</p></li>\n                                        <li><p>Level 3, second.<ul>\n                                            <li><p>Level 4, first.</p></li>\n                                            <li><p>Level 4, second.</p></li>\n                                            <li><p>Level 4, third.</p></li>\n                                        </ul></p></li>\n                                        <li><p>Level 3, third.</p></li>\n                                    </ul></p></li>\n                                    <li><p>Level 2, third.</p></li>\n                                </ul></p></li>\n                                <li><p>Level 1, third.</p></li>\n                            </ul></p>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"empty-statement\">\n                    <introduction>\n                        <p>\n                            This exercise has no content in its statement.\n                            It should throw a PTX warning during the representations build.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                        </statement>\n                    </webwork>\n                </exercise>\n\n                <exercise label=\"single-quote-in-table-cell\">\n                    <introduction>\n                        <p>\n                            This exercise has a single quote in it.\n                            A single quote is the first option for a delimiter for perl's q\n                            function which is used by extract-pg.xsl in table cells.\n                            So if working, it should move on to the next delimiter option.\n                        </p>\n                    </introduction>\n                    <webwork>\n                        <statement>\n                            <tabular>\n                                <row>\n                                    <cell>What's up, Doc?</cell>\n                                </row>\n                            </tabular>\n                        </statement>\n                    </webwork>\n                </exercise>\n            </section>\n\n            <section>\n                <title>Layout Configuration Testing</title>\n\n                <introduction>\n                    <p>This section is to provide a single page demonstrating all of the combinations that may factor into a problem's layout.</p>\n                </introduction>\n\n                <subsection>\n                    <title>Inline Exercises</title>\n                    <p>Some <q>inline</q> exercises, as distinguished from the <q>divisional</q> exercises below.</p>\n                    <exercise label=\"inline-bare\">\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"inline-title\">\n                        <title>Has a Title</title>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"inline-introduction\">\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"inline-title-introduction\">\n                        <title>Has a Title</title>\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"inline-conclusion\">\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercise label=\"inline-title-conclusion\">\n                        <title>Has a Title</title>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercise label=\"inline-introduction-conclusion\">\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercise label=\"inline-title-introduction-conclusion\">\n                        <title>Has a Title</title>\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                </subsection>\n\n                <exercises>\n                    <title>Divisional Exercises</title>\n                    <exercise label=\"divisional-bare\">\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"divisional-title\">\n                        <title>Has a Title</title>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"divisional-introduction\">\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"divisional-title-introduction\">\n                        <title>Has a Title</title>\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                    </exercise>\n                    <exercise label=\"divisional-conclusion\">\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercise label=\"divisional-title-conclusion\">\n                        <title>Has a Title</title>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercise label=\"divisional-introduction-conclusion\">\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercise label=\"divisional-title-introduction-conclusion\">\n                        <title>Has a Title</title>\n                        <introduction>\n                            <p>Has an introduction.</p>\n                        </introduction>\n                        <webwork>\n                            <statement>\n                                <p><m>1+1=2</m></p>\n                            </statement>\n                        </webwork>\n                        <conclusion>\n                            <p>Has a conclusion.</p>\n                        </conclusion>\n                    </exercise>\n                    <exercisegroup>\n                        <introduction>\n                            <p>These are inside an exercisegroup.</p>\n                        </introduction>\n                        <exercise label=\"exercisegroup-bare\">\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n                        <exercise label=\"exercisegroup-title\">\n                            <title>Has a Title</title>\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n                        <exercise label=\"exercisegroup-introduction\">\n                            <introduction>\n                                <p>Has an introduction.</p>\n                            </introduction>\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n                        <exercise label=\"exercisegroup-title-introduction\">\n                            <title>Has a Title</title>\n                            <introduction>\n                                <p>Has an introduction.</p>\n                            </introduction>\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n                        <exercise label=\"exercisegroup-conclusion\">\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                            <conclusion>\n                                <p>Has a conclusion.</p>\n                            </conclusion>\n                        </exercise>\n                        <exercise label=\"exercisegroup-title-conclusion\">\n                            <title>Has a Title</title>\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                            <conclusion>\n                                <p>Has a conclusion.</p>\n                            </conclusion>\n                        </exercise>\n                        <exercise label=\"exercisegroup-introduction-conclusion\">\n                            <introduction>\n                                <p>Has an introduction.</p>\n                            </introduction>\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                            <conclusion>\n                                <p>Has a conclusion.</p>\n                            </conclusion>\n                        </exercise>\n                        <exercise label=\"exercisegroup-title-introduction-conclusion\">\n                            <title>Has a Title</title>\n                            <introduction>\n                                <p>Has an introduction.</p>\n                            </introduction>\n                            <webwork>\n                                <statement>\n                                    <p><m>1+1=2</m></p>\n                                </statement>\n                            </webwork>\n                            <conclusion>\n                                <p>Has a conclusion.</p>\n                            </conclusion>\n                        </exercise>\n                    </exercisegroup>\n                </exercises>\n            </section>\n\n            <section xml:id=\"section-runestone-testing\">\n                <title>Runestone Assignment Testing</title>\n                <p>\n                    This section is specifically for testing when exercises are migrated to a\n                    Runestone Assignment page.\n                </p>\n                <exercises>\n                    <exercisegroup>\n                        <introduction>\n                            <p>\n                                This introduction should appear ahead of the exercise when it shows\n                                up in the Assignment page.\n                            </p>\n                            <tabular>\n                                <row>\n                                    <cell><m>(0,0)</m></cell>\n                                    <cell><m>(0,1)</m></cell>\n                                </row>\n                                <row>\n                                    <cell><m>(1,0)</m></cell>\n                                    <cell><m>(1,1)</m></cell>\n                                </row>\n                            </tabular>\n                            <image>\n                                <latex-image>\n                                    \\begin{tikzpicture}\n                                        \\draw[fill=blue!20] (0,0) -| (1,1) -| cycle;\n                                    \\end{tikzpicture}\n                                </latex-image>\n                                <shortdescription>a blue square</shortdescription>\n                            </image>\n                            <p>\n                                It has a table and an image too to check it all comes through.\n                            </p>\n                        </introduction>\n                        <exercise label=\"an-exercisegroup-exercise\">\n                            <webwork>\n                                <statement>\n                                    <p>\n                                        What is <m>1+1</m>?\n                                    </p>\n                                    <p>\n                                        <var name=\"'2'\" width=\"5\"/>>\n                                    </p>\n                                </statement>\n                            </webwork>\n                        </exercise>\n                    </exercisegroup>\n                </exercises>\n            </section>\n\n            <section xml:id=\"section-deprecations\">\n                <title>Deprecations</title>\n\n                <p>\n                    This section is for testing if deprecated features are still supported.\n                    No such tests are being performed now.\n                </p>\n            </section>\n\n        </chapter>\n\n        <backmatter>\n            <solutions inline=\"hint answer solution\" divisional=\"hint answer solution\">\n                <title>Hints, Answers, and Solutions</title>\n            </solutions>\n        </backmatter>\n    </book>\n</pretext>\n"
  },
  {
    "path": "examples/workbook/README.md",
    "content": "## Sample Workbooks\n\nAs of 2024-11-22 these are first attempts at coherent \ncollections of worksheets, thus known as workbooks.\n\nThey are not complete, correct, nor authoritative.\nThere present purpose is to support development work.\n\n\n"
  },
  {
    "path": "examples/workbook/workbook-article-publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <!-- Common Options -->\n    <common>\n        <!-- How deep to go for separate files, in HTML the -->\n        <!-- default for an article with sections is 1      -->\n        <chunking level=\"1\"/>\n        <!-- How deep to nest a Table of Contents, for an article   -->\n        <!-- with subsections in HTML, the default is 2, but in the -->\n        <!-- LateX conversion the default is no ToC at all.  So we  -->\n        <!-- let these conversion-specific defaults play out, and   -->\n        <!-- just leave this example as a comment.                  -->\n        <!-- <tableofcontents level=\"2\"/> -->\n        <!-- These \"exercise component visibility\" settings are the -->\n        <!-- defaults, but can be switched to \"no\" in order to hide -->\n        <!-- parts of an exercise, where born.                      -->\n        <exercise-inline hint=\"yes\"/>\n        <exercise-project answer=\"yes\"/>\n        <!-- fillin styles are \"underline\" (the default for text),  -->\n        <!-- \"box\", and \"shade\" (the default for math)              -->\n        <fillin textstyle=\"underline\" mathstyle=\"shade\"/>\n        <qrcode image=\"misc/ptx-logo-square.png\"/>\n    </common>\n\n    <!-- we use customizations-two for the oscarlevin style example -->\n    <source>\n        <directories external=\"media\" generated=\"gen\"/>\n        <!-- this is an example of placing @generated *outside* of revision control -->\n        <!-- <directories external=\"media\" generated=\"../../../altgen\"/> -->\n    </source>\n\n    <!-- For an \"article\" with \"section\" we can only go 3 levels    -->\n    <!-- deep (section > subsection > subsubsection) and this is    -->\n    <!-- the default for divisions' levels.  For numbers on smaller -->\n    <!-- pieces of content, the default is XX.NN, i.e. level 1.     -->\n    <!-- Read the PreTeXt Guide for more on numbering and levels.   -->\n    <numbering>\n        <divisions level=\"1\"/>\n        <blocks    level=\"1\"/>\n        <projects  level=\"1\"/>\n        <equations level=\"1\"/>\n        <footnotes level=\"1\"/>\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- links below images to open full-size, must be elected -->\n        <asymptote links=\"yes\"/>\n        <!-- Several embedded calculators are available            -->\n        <!-- Use \"none\" to turn this off (or remove the element)   -->\n        <calculator model=\"geogebra-classic\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version              -->\n        <baseurl href=\"https://pretextbook.org/examples/sample-article/html/\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"article\", which is not    -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"workbook-article\"/>\n        <!-- Certain blocks may be electively knowled.  Defaults   -->\n        <!-- are variable.  We exercise two such switches here,    -->\n        <!-- the values are defaults so should make no discernable -->\n        <!-- difference.                                           -->\n        <knowl example=\"no\" remark=\"no\" proof=\"no\" example-solution=\"no\"/>\n        <!-- specify the style of the html by giving names to      -->\n        <!-- override defaults.  Ex: to use \"style_oscarlevin.css\" -->\n        <!-- put <css style=\"oscarlevin\"/>                         -->\n        <css style=\"default\" colors=\"blue_red\" toc=\"default\" banner=\"default\" navbar=\"default\" shell=\"default\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <!-- <search google-cx=\"\"/> -->\n        <!-- Request fewer tracking cookies for YouTube videos     -->\n        <!-- This is the default, here for documentation/testing   -->\n        <video privacy=\"yes\"/>\n        <!-- native search via Javascript library -->\n        <search variant=\"default\"/>\n        <!-- With a <feedback> element, in the HTML version, you get a button     -->\n        <!-- for reporting typos and errors.  You might link to a Google Docs     -->\n        <!-- spreadsheet or something similar.  Default is to get a button        -->\n        <!-- labeled \"Feedback\", which will be localized to your target language. -->\n        <!-- You can override this with some text of your choosing, but then you  -->\n        <!-- lose the localization feature.                                       -->\n        <!-- (The feedback element could be empty, we place text in a comment to  -->\n        <!-- suggest how the text can be changed/specified.)                      -->\n        <feedback href=\"http://example.com/not-implemented.html\"><!-- My Button Text --></feedback>\n    </html>\n\n    <!-- 10pt font is the default   -->\n    <!-- draft mode default is \"no\" -->\n    <!-- snapshot default is \"no\", but we elect to stress the supported package -->\n    <latex print=\"no\" sides=\"two\" font-size=\"10\" draft=\"no\" snapshot=\"yes\">\n        <!-- these are the default alignments, given just as an example -->\n        <!-- Even if you set  @crop-marks  to something like \"letter\" or \"a4\"    -->\n        <!-- you may not see a change.  You need to use the  geometery  package  -->\n        <!-- to set a smaller (logical) page size.                               -->\n        <page right-alignment=\"flush\" bottom-alignment=\"ragged\" crop-marks=\"none\"/>\n        <!-- worksheets are formatted separately by default.   -->\n        <!-- change to \"no\" to format as regular sections.     -->\n        <worksheet formatted=\"yes\"/>\n        <asymptote links=\"yes\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/workbook/workbook-article.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Overall element for a PreTeXt document; mandatory, always  -->\n<!-- Experiment with the \"xml:lang\" attribute to see localization    -->\n<!-- changes, the  xsl/localizations  directory has more information -->\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <!--\n    \"docinfo\" is like metadata, it is necessary technical\n    information which a reader mostly will never see.  LaTeX\n    macros and Web analytics project numbers are good examples.\n    If you are getting started, you do not need any of this initially.\n    So on a first reading, skip ahead to the article tag.\n    -->\n    <docinfo>\n        <!--\n        In the HTML version there is room for a picture or logo\n        in the upper left corner.  An image of a cover for a\n        physical version is a good choice to go here.  We use\n        16th Century Art Book Cover, 176x240 pixels, Public Domain, due to age\n        http://commons.wikimedia.org/wiki/File:Book_Cover_-_Google_Art_Project.jpg\n        -->\n        <brandlogo url=\"https://pretextbook.org\"/>\n        <macros>\n        \\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4} % this comment will be stripped\n        \\newcommand{\\myequation}[2]{#1\\amp =#2} % testing alignment override\n        % comments anywhere get stripped, with or without faux % comment \\% characters\n        \\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\n        \\newcommand{\\testingescapedpercent}{ \\% } % just testing\n        \\newcommand{\\bvec}{{\\mathbf b}}\n        \\newcommand{\\vvec}{{\\mathbf v}}\n        </macros>\n        <!-- We control the appearance of the text of cross-references here           -->\n        <!-- (these are the \"xref\" elements).  Because this changes the words         -->\n        <!-- that appear in your output, it is a decision with stays with the source. -->\n        <!-- Experiment here with different choices and a few different \"xref\"        -->\n        <!-- elements before you decide on a final choice.  We set this to 'global',  -->\n        <!-- not because we think it is a good choice, but for historical reasons.    -->\n        <!-- The default is 'type-global', which produces text like \"Theorem 5.2\",    -->\n        <!-- where \"Theorem\" will be translated into the document language            -->\n        <cross-references text=\"global\" />\n        <!--\n        Extra packages, package options, and package settings for latex-based images.\n        Inserted in the preamble for LaTeX output.\n        Inserted in the preamble to each standalone latex-based image for HTML SVG output.\n        -->\n        <latex-image-preamble>\n        \\usepackage{pgfplots}               % loads tikz package\n        \\usepackage{smartdiagram}           % for a circular diagram\n        \\pgfplotsset{axis x line = middle,\n                     axis y line = middle}\n        \\usetikzlibrary{backgrounds}\n        \\usetikzlibrary{arrows,matrix}\n        \\usetikzlibrary{positioning}        % for Dave R's worksheet\n        \\usepackage{circuitikz}             % for Virgil P's worksheet\n        \\usepackage{nicematrix}             % for multi-run latex-image (label=\"latex-three-pass\")\n        </latex-image-preamble>\n        <!--\n        The Sage Notebook has its own interface and worksheet list.\n        To use the sorting features optimally, it helps to have subdivisions\n        begin with the same short prefix.  An \"initialism\" (nee acronym)\n        here will be used for that purpose if present.  This is only employed\n        for producing Sage notebook versions and in the title shown in the\n        browser. (If not present, you will get a harmless warning just for\n        Sage worksheet production.)\n        -->\n        <initialism>SWA</initialism>\n        <!-- For various purposes, it is helpful to have a unique identifier    -->\n        <!-- for your entire document.  As of 2019-01-02 this will be used as   -->\n        <!-- the HTML id attribute on the body element of *every* page created  -->\n        <!-- by the HTML conversion.                                            -->\n        <!--                                                                    -->\n        <!--   * Start with a letter                                            -->\n        <!--   * No strange characters, just 52 Latin letters, and 10 digits    -->\n        <!--   * No spaces                                                      -->\n        <!--   * Use only a hyphen (-) to separate words                        -->\n        <!--                                                                    -->\n        <!-- Make it so there is a reasonable expectation of being unique.      -->\n        <!-- \"my-book\" is a poor choice, \"beezer-first-course-linear-algebra\"   -->\n        <!-- is better.  And maybe something in-between is best: \"beezer-FCLA\". -->\n        <document-id>pretext-SWA</document-id>\n        <latex-output>\n            <!-- turn this on once it is easier to make   -->\n            <!-- standalone worksheets, uncomment to test -->\n            <!-- <worksheet top=\"3cm\" left=\"4cm\" margin=\"12cm\"/> -->\n        </latex-output>\n\n    </docinfo>\n\n    <!--\n    The article element is top-level for anything short of a book.\n    There is a book element, which is not demonstrated here.\n    The \"xml:id\" attribute will be used for the filename of the\n    HTML output.\n    -->\n    <article xml:id=\"workbook-article\" label=\"workbook-article\">\n        <title>Derivatives and Integrals</title>\n        <subtitle>An Annotated Discourse</subtitle>\n\n        <!--\n        The frontmatter contains a variety of items that precede\n        the actual content.  They should be placed in the proper order,\n        here the title material should precede a table of contents.\n        They differ from \"docinfo\" items in that they will be *content*\n        that a reader will actually see.\n        -->\n\n        <frontmatter xml:id=\"frontmatter\" label=\"frontmatter\">\n            <!--\n            Items typically on the main title page of a book,\n            but here as an article they are handled more compactly\n             -->\n\n             <bibinfo>\n             <!-- There can be several authors here -->\n                <author>\n                    <personname>Robert Beezer</personname>\n                    <!-- department here is one line, so unstructured -->\n                    <department>Department of Mathematics and Computer Science</department>\n                    <!-- institution uses two lines, so structured as such -->\n                    <institution>\n                        <line>University of Puget Sound</line>\n                        <line>Tacoma, Washington, USA</line>\n                    </institution>\n                    <email>beezer@pugetsound.edu</email>\n                </author>\n\n                <!-- Can set date manually or use the \"today\" element -->\n                <date><today /></date>\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n\n            <abstract>\n                <p>This is a sample of many of the things you can do with <pretext />.  Sometimes the math makes sense, sometimes it seems to be written in the first person, sort of like this Abstract.</p>\n            </abstract>\n            <!--\n            Acknowledgements, dedications, colophon (ISBN, copyright, etc)\n            are supported in the book document type.  Such a diverse range\n            is not yet available for articles.  Send requests.\n             -->\n        </frontmatter>\n        <xi:include href=\"ws-geometric-prelude.xml\" />\n        <xi:include href=\"ws-networks.xml\" />\n        <xi:include href=\"ws-testing.xml\" />\n        <xi:include href=\"ws-exercisegroup.xml\" />\n        <xi:include href=\"ws-dot-products.xml\" />\n        <xi:include href=\"ws-activity-with-task.xml\" />\n      </article>\n</pretext>\n"
  },
  {
    "path": "examples/workbook/workbook-book-publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<publication>\n\n    <!-- Common Options -->\n    <common>\n        <!-- How deep to go for separate files, in HTML the -->\n        <!-- This puts each worksheet in its own HTML file  -->\n        <chunking level=\"2\"/>\n        <!-- How deep to nest a Table of Contents, for an article   -->\n        <!-- with subsections in HTML, the default is 2, but in the -->\n        <!-- LateX conversion the default is no ToC at all.  So we  -->\n        <!-- let these conversion-specific defaults play out, and   -->\n        <!-- just leave this example as a comment.                  -->\n        <!-- <tableofcontents level=\"2\"/> -->\n        <!-- These \"exercise component visibility\" settings are the -->\n        <!-- defaults, but can be switched to \"no\" in order to hide -->\n        <!-- parts of an exercise, where born.                      -->\n        <exercise-inline hint=\"yes\"/>\n        <exercise-project answer=\"yes\"/>\n        <!-- fillin styles are \"underline\" (the default for text),  -->\n        <!-- \"box\", and \"shade\" (the default for math)              -->\n        <fillin textstyle=\"underline\" mathstyle=\"shade\"/>\n        <qrcode image=\"misc/ptx-logo-square.png\"/>\n    </common>\n\n    <!-- we use customizations-two for the oscarlevin style example -->\n    <source>\n        <directories external=\"media\" generated=\"gen\"/>\n        <!-- this is an example of placing @generated *outside* of revision control -->\n        <!-- <directories external=\"media\" generated=\"../../../altgen\"/> -->\n    </source>\n\n    <!-- For an \"article\" with \"section\" we can only go 3 levels    -->\n    <!-- deep (section > subsection > subsubsection) and this is    -->\n    <!-- the default for divisions' levels.  For numbers on smaller -->\n    <!-- pieces of content, the default is XX.NN, i.e. level 1.     -->\n    <!-- Read the PreTeXt Guide for more on numbering and levels.   -->\n    <numbering>\n        <divisions level=\"2\"/>\n        <blocks    level=\"1\"/>\n        <projects  level=\"1\"/>\n        <equations level=\"1\"/>\n        <footnotes level=\"1\"/>\n    </numbering>\n\n    <!-- HTML-Specific Options -->\n    <html>\n        <!-- links below images to open full-size, must be elected -->\n        <asymptote links=\"yes\"/>\n        <!-- Several embedded calculators are available            -->\n        <!-- Use \"none\" to turn this off (or remove the element)   -->\n        <calculator model=\"none\"/>\n        <!-- A location for a hosted HTML version, as certain      -->\n        <!-- aspects of the LaTeX/PDF version will link to         -->\n        <!-- corresponding aspects of the HTML version              -->\n        <baseurl href=\"https://pretextbook.org/examples/sample-workbook-book/html/\"/>\n        <!-- @xml:id of a page to be target of index.html redirect -->\n        <!-- This is the @xml:id of the \"article\", which is not    -->\n        <!-- default behavior, but we do this as a test and as an  -->\n        <!-- illustration                                          -->\n        <index-page ref=\"workbook-book\"/>\n        <!-- Certain blocks may be electively knowled.  Defaults   -->\n        <!-- are variable.  We exercise two such switches here,    -->\n        <!-- the values are defaults so should make no discernable -->\n        <!-- difference.                                           -->\n        <knowl example=\"no\" remark=\"no\" proof=\"no\" example-solution=\"no\"/>\n        <!-- specify the style of the html by giving names to      -->\n        <!-- override defaults.  Ex: to use \"style_oscarlevin.css\" -->\n        <!-- put <css style=\"oscarlevin\"/>                         -->\n        <css style=\"default\" colors=\"blue_red\" toc=\"default\" banner=\"default\" navbar=\"default\" shell=\"default\"/>\n        <!-- Magic IDs identify HTML pages to analytics services   -->\n        <!-- Presence implies relevant Javascript will be added    -->\n        <!-- StatCounter requires both values to be set            -->\n        <analytics google-gst=\"UA-48811660-1\"\n                   statcounter-project=\"9664088\"\n                   statcounter-security=\"6e60c510\"/>\n        <!-- Google search, via masthead textbox is switched on    -->\n        <!-- and associated with a Google account via CX number    -->\n        <!-- <search google-cx=\"\"/> -->\n        <!-- Request fewer tracking cookies for YouTube videos     -->\n        <!-- This is the default, here for documentation/testing   -->\n        <video privacy=\"yes\"/>\n        <!-- native search via Javascript library -->\n        <search variant=\"default\"/>\n        <!-- With a <feedback> element, in the HTML version, you get a button     -->\n        <!-- for reporting typos and errors.  You might link to a Google Docs     -->\n        <!-- spreadsheet or something similar.  Default is to get a button        -->\n        <!-- labeled \"Feedback\", which will be localized to your target language. -->\n        <!-- You can override this with some text of your choosing, but then you  -->\n        <!-- lose the localization feature.                                       -->\n        <!-- (The feedback element could be empty, we place text in a comment to  -->\n        <!-- suggest how the text can be changed/specified.)                      -->\n        <feedback href=\"http://example.com/not-implemented.html\"><!-- My Button Text --></feedback>\n    </html>\n\n    <!-- 10pt font is the default   -->\n    <!-- draft mode default is \"no\" -->\n    <!-- snapshot default is \"no\", but we elect to stress the supported package -->\n    <latex print=\"no\" sides=\"two\" font-size=\"10\" draft=\"no\" snapshot=\"yes\">\n        <!-- these are the default alignments, given just as an example -->\n        <!-- Even if you set  @crop-marks  to something like \"letter\" or \"a4\"    -->\n        <!-- you may not see a change.  You need to use the  geometery  package  -->\n        <!-- to set a smaller (logical) page size.                               -->\n        <page right-alignment=\"flush\" bottom-alignment=\"ragged\" crop-marks=\"none\"/>\n        <!-- worksheets are formatted separately by default.   -->\n        <!-- change to \"no\" to format as regular sections.     -->\n        <worksheet formatted=\"yes\"/>\n        <asymptote links=\"yes\"/>\n    </latex>\n\n</publication>\n"
  },
  {
    "path": "examples/workbook/workbook-book.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Overall element for a PreTeXt document; mandatory, always  -->\n<!-- Experiment with the \"xml:lang\" attribute to see localization    -->\n<!-- changes, the  xsl/localizations  directory has more information -->\n<pretext xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n\n    <!--\n    \"docinfo\" is like metadata, it is necessary technical\n    information which a reader mostly will never see.  LaTeX\n    macros and Web analytics project numbers are good examples.\n    If you are getting started, you do not need any of this initially.\n    So on a first reading, skip ahead to the article tag.\n    -->\n    <docinfo>\n        <!--\n        In the HTML version there is room for a picture or logo\n        in the upper left corner.  An image of a cover for a\n        physical version is a good choice to go here.  We use\n        16th Century Art Book Cover, 176x240 pixels, Public Domain, due to age\n        http://commons.wikimedia.org/wiki/File:Book_Cover_-_Google_Art_Project.jpg\n        -->\n        <brandlogo url=\"https://pretextbook.org\"/>\n        <macros>\n        \\newcommand{\\definiteintegral}[4]{\\int_{#1}^{#2}\\,#3\\,d#4} % this comment will be stripped\n        \\newcommand{\\myequation}[2]{#1\\amp =#2} % testing alignment override\n        % comments anywhere get stripped, with or without faux % comment \\% characters\n        \\newcommand{\\indefiniteintegral}[2]{\\int#1\\,d#2}\n        \\newcommand{\\testingescapedpercent}{ \\% } % just testing\n        \\newcommand{\\bvec}{{\\mathbf b}}\n        \\newcommand{\\vvec}{{\\mathbf v}}\n        </macros>\n        <!-- We control the appearance of the text of cross-references here           -->\n        <!-- (these are the \"xref\" elements).  Because this changes the words         -->\n        <!-- that appear in your output, it is a decision with stays with the source. -->\n        <!-- Experiment here with different choices and a few different \"xref\"        -->\n        <!-- elements before you decide on a final choice.  We set this to 'global',  -->\n        <!-- not because we think it is a good choice, but for historical reasons.    -->\n        <!-- The default is 'type-global', which produces text like \"Theorem 5.2\",    -->\n        <!-- where \"Theorem\" will be translated into the document language            -->\n        <cross-references text=\"global\" />\n        <!--\n        Extra packages, package options, and package settings for latex-based images.\n        Inserted in the preamble for LaTeX output.\n        Inserted in the preamble to each standalone latex-based image for HTML SVG output.\n        -->\n        <latex-image-preamble>\n        \\usepackage{pgfplots}               % loads tikz package\n        \\usepackage{smartdiagram}           % for a circular diagram\n        \\pgfplotsset{axis x line = middle,\n                     axis y line = middle}\n        \\usetikzlibrary{backgrounds}\n        \\usetikzlibrary{arrows,matrix}\n        \\usetikzlibrary{positioning}        % for Dave R's worksheet\n        \\usepackage{circuitikz}             % for Virgil P's worksheet\n        \\usepackage{nicematrix}             % for multi-run latex-image (label=\"latex-three-pass\")\n        </latex-image-preamble>\n        <!--\n        The Sage Notebook has its own interface and worksheet list.\n        To use the sorting features optimally, it helps to have subdivisions\n        begin with the same short prefix.  An \"initialism\" (nee acronym)\n        here will be used for that purpose if present.  This is only employed\n        for producing Sage notebook versions and in the title shown in the\n        browser. (If not present, you will get a harmless warning just for\n        Sage worksheet production.)\n        -->\n        <initialism>SWB</initialism>\n        <!-- For various purposes, it is helpful to have a unique identifier    -->\n        <!-- for your entire document.  As of 2019-01-02 this will be used as   -->\n        <!-- the HTML id attribute on the body element of *every* page created  -->\n        <!-- by the HTML conversion.                                            -->\n        <!--                                                                    -->\n        <!--   * Start with a letter                                            -->\n        <!--   * No strange characters, just 52 Latin letters, and 10 digits    -->\n        <!--   * No spaces                                                      -->\n        <!--   * Use only a hyphen (-) to separate words                        -->\n        <!--                                                                    -->\n        <!-- Make it so there is a reasonable expectation of being unique.      -->\n        <!-- \"my-book\" is a poor choice, \"beezer-first-course-linear-algebra\"   -->\n        <!-- is better.  And maybe something in-between is best: \"beezer-FCLA\". -->\n        <document-id>pretext-SWB</document-id>\n        <latex-output>\n            <!-- turn this on once it is easier to make   -->\n            <!-- standalone worksheets, uncomment to test -->\n            <!-- <worksheet top=\"3cm\" left=\"4cm\" margin=\"12cm\"/> -->\n        </latex-output>\n\n    </docinfo>\n\n    <!--\n    The article element is top-level for anything short of a book.\n    There is a book element, which is not demonstrated here.\n    The \"xml:id\" attribute will be used for the filename of the\n    HTML output.\n    -->\n    <book xml:id=\"workbook-book\" label=\"workbook-book\">\n        <title><pretext/> Workbook</title>\n        <subtitle>In Book Format</subtitle>\n\n        <!--\n        The frontmatter contains a variety of items that precede\n        the actual content.  They should be placed in the proper order,\n        here the title material should precede a table of contents.\n        They differ from \"docinfo\" items in that they will be *content*\n        that a reader will actually see.\n        -->\n\n        <frontmatter xml:id=\"frontmatter\" label=\"frontmatter\">\n            <!--\n            Items typically on the main title page of a book,\n            but here as an article they are handled more compactly\n             -->\n\n             <bibinfo>\n             <!-- There can be several authors here -->\n                <author>\n                    <personname>Robert Beezer</personname>\n                    <!-- department here is one line, so unstructured -->\n                    <department>Department of Mathematics and Computer Science</department>\n                    <!-- institution uses two lines, so structured as such -->\n                    <institution>\n                        <line>University of Puget Sound</line>\n                        <line>Tacoma, Washington, USA</line>\n                    </institution>\n                    <email>beezer@pugetsound.edu</email>\n                </author>\n\n                <!-- Can set date manually or use the \"today\" element -->\n                <date><today /></date>\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n            <!--\n            Acknowledgements, dedications, colophon (ISBN, copyright, etc)\n            are supported in the book document type.  Such a diverse range\n            is not yet available for articles.  Send requests.\n             -->\n        </frontmatter>\n\n        <chapter xml:id=\"ch-triplet\">\n          <title>Four Worksheets</title>\n            <xi:include href=\"ws-geometric-prelude.xml\" />\n            <xi:include href=\"ws-networks.xml\" />\n            <xi:include href=\"ws-testing.xml\" />\n            <xi:include href=\"ws-exercisegroup.xml\" />\n          </chapter>\n          <chapter xml:id=\"ch-duo\">\n            <title>Two Worksheet Chapter</title>\n            <xi:include href=\"ws-dot-products.xml\" />\n            <xi:include href=\"ws-activity-with-task.xml\" />\n          </chapter>\n          </book>\n</pretext>\n"
  },
  {
    "path": "examples/workbook/ws-activity-with-task.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<worksheet label=\"worksheet-activity-with-task\">\n  <page>\n    <activity>\n      <introduction>\n        <p>\n          This is going to be an activity with tasks.\n        </p>\n      </introduction>\n      <task workspace=\"0.75in\">\n        <statement>\n          <p>\n            Here is the first task.\n          </p>\n        </statement>\n      </task>\n      <task workspace=\"0.25in\">\n        <statement>\n          <p>\n            Here is the second task.\n          </p>\n        </statement>\n      </task>\n      <task workspace=\"1.75in\">\n        <statement>\n          <p>\n            Here is the third task.\n          </p>\n        </statement>\n      </task>\n      <conclusion>\n        <p>\n          This is a conclusion that comes after the last task.\n        </p>\n      </conclusion>\n    </activity>\n  </page>\n</worksheet>\n"
  },
  {
    "path": "examples/workbook/ws-dot-products.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<worksheet label=\"worksheet-dot-products\" courseid=\"MAT-150\" series=\"Activity\" seriescode=\"13\">\n  <title>Dot products and projection</title>\n    <page>\n        <sidebyside width=\"45%\" margins=\"0%\">\n            <exercise>\n                <introduction>\n                    <p>Let\n                    <m>{\\vec v}_1 = (-4,1)</m>,\n                    <m>{\\vec v}_2 = (2,2)</m>,\n                    <m>{\\vec v}_3 = (1,2,3)</m>,\n                    <m>{\\vec v}_4 = (-2,1,0)</m>.\n                    Find the values of the following expressions:</p>\n                </introduction>\n                <task workspace=\"1in\">\n                  <p><m>{\\vec v}_1 \\cdot {\\vec v}_2 = <fillin/></m></p>\n                </task>\n                <task workspace=\"1.0in\">\n                  <p><m>{\\vec v}_3 \\cdot {\\vec v}_4 = <fillin/></m></p>\n                </task>\n                <task workspace=\"1in\">\n                  <p><m>\\lVert{\\vec v}_1\\rVert = <fillin/></m></p>\n                </task>\n                <task workspace=\"1in\">\n                  <p><m>\\lVert{\\vec v}_4\\rVert = <fillin/></m></p>\n                </task>\n                <task workspace=\"1in\">\n                  <p>Are any of these vectors perpendicular to each other? <fillin/></p>\n              </task>\n            </exercise>\n\n            <exercise workspace=\"3in\">\n                <statement>\n                    <p>The vectors <m>\\vec a = (3,9)</m> and <m>\\vec u = (4,2)</m> are pictured below.  Derive the formula for projection on a line and use it to find the projection of <m>\\vec a</m> on the line spanned by <m>\\vec u</m>. Also compute the length of the residual vector.</p>\n                    <image width=\"100%\" source=\"images/projection1.png\">\n                        <shortdescription>two vectors in a Cartesian plane</shortdescription>\n                    </image>\n                </statement>\n            </exercise>\n        </sidebyside>\n    </page>\n\n    <page>\n        <sidebyside width=\"48%\" margins=\"0%\">\n            <exercise workspace=\"1.25in\">\n                <introduction>\n                    <p>Consider the vector equation\n                    <md>\n                    m \\begin{bmatrix}2 \\\\ 5\\end{bmatrix} = \\begin{bmatrix}3 \\\\ 7\\end{bmatrix}\n                    </md>.</p>\n                </introduction>\n                <task>\n                    <p>Check that there is no solution <m>m</m> that makes the equation true.</p>\n                </task>\n\n                <task>\n                    <p>Use projection to find the best approximation <m>\\hat m</m>.</p>\n                </task>\n\n                <task>\n                    <p>Compute <m>\\hat m \\begin{bmatrix}2 \\\\ 5\\end{bmatrix} </m>.</p>\n                </task>\n\n                <task>\n                    <p>Compute the residual vector.</p>\n                </task>\n\n                <task>\n                    <p>Compute the length of the residual vector and explain what it means.</p>\n                </task>\n            </exercise>\n\n            <exercise>\n                <introduction>\n                    <p>Consider the system of equations\n                    <md>\n                        <mrow>3t \\amp =5</mrow>\n                        <mrow> 2t \\amp = 9 </mrow>\n                    </md>.</p>\n                </introduction>\n                <task workspace=\"2in\">\n                    <p>Write the system in vector form.</p>\n                </task>\n                <task workspace=\"3.9in\">\n                    <p>Find the best estimate, <m>\\hat t</m>, of <m>t</m> using projection.</p>\n                </task>\n                <task workspace=\"2in\">\n                    <p>Compute the length of the residual vector.</p>\n                </task>\n            </exercise>\n        </sidebyside>\n    </page>\n</worksheet>\n"
  },
  {
    "path": "examples/workbook/ws-exercisegroup.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- NB: this is duplicated in the sam[ple article -->\n<worksheet label=\"worksheet-exercisegroup\" margin=\"1cm\">\n  <introduction>\n    <p>\n      This is a mock worksheet for testing the use of <attr>workspace</attr> for <tag>exercise</tag> within an <tag>exercisegroup</tag>.\n    </p>\n  </introduction>\n\n  <page>\n    <exercisegroup cols=\"2\" workspace=\"1in\">\n        <introduction>\n            <p>\n                Do things to the following.\n            </p>\n        </introduction>\n        <exercise>\n            <statement>\n                <p>\n                    Apple\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Banana\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Cherry\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Durian\n                </p>\n            </statement>\n        </exercise>\n        <exercise workspace=\"2in\">\n            <statement>\n                <p>\n                    Elderberry (with workspace override)\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Fig\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Guava\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Habanero\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    I can't think of an <q>I</q> fruit.\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Jackfruit\n                </p>\n            </statement>\n        </exercise>\n    </exercisegroup>\n  </page>\n  <page>\n    <exercisegroup workspace=\"0.25in\">\n        <introduction>\n            <p>\n                Now with one column, do things to the following.\n            </p>\n        </introduction>\n        <exercise>\n            <statement>\n                <p>\n                    Apple\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Banana\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Cherry\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Durian\n                </p>\n            </statement>\n        </exercise>\n        <exercise workspace=\"2in\">\n            <statement>\n                <p>\n                    Elderberry (with workspace override)\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Fig\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Guava\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Habanero\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    I can't think of an <q>I</q> fruit.\n                </p>\n            </statement>\n        </exercise>\n        <exercise>\n            <statement>\n                <p>\n                    Jackfruit\n                </p>\n            </statement>\n        </exercise>\n    </exercisegroup>\n  </page>\n</worksheet>\n</section>\n"
  },
  {
    "path": "examples/workbook/ws-geometric-prelude.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<worksheet label=\"worksheet-geometric-prelude\">\n  <title>A Geometric Prelude</title>\n  <!-- <author>Dave Rosoff</author> -->\n  <objectives xml:id=\"objectives\">\n    <ul>\n      <li>Practice visualizing vector addition</li>\n      <li>Use vectors without explicit coordinates</li>\n    </ul>\n  </objectives>\n  <introduction>\n    <p>This two-page worksheet was generously donated to the sample article by Dave Rosoff at a CuratedCourses workshop in August<nbsp/>2018.  It has the default (skinny) margins.</p>\n\n    <p>It was known to Euclid, and probably earlier, that the midpoints of the sides of any quadrilateral all lie in the same plane (even if the vertices of the quadrilateral do not). In fact, these midpoints are the vertices of a parallelogram, as pictured in <xref ref=\"figure-midpoints-of-quadrilateral\" text=\"type-global\"/>.</p>\n    <sidebyside width=\"30%\">\n      <figure xml:id=\"figure-midpoints-of-quadrilateral\">\n        <caption>The midpoints of the sides of a quadrilateral are the vertices of a parallelogram.</caption>\n        <image xml:id=\"worksheet-midpoints-of-quadrilateral\">\n          <latex-image>\n            \\begin{tikzpicture}[xscale=0.8, yscale=0.8]\n             \\draw[style={black, ultra thick}] (0,0) -- (5,0) -- (4,4) -- (2,5) -- (0,0);\n             \\draw[style={black, dashed, very thick}] (2.5, 0) -- (4.5, 2) -- (3, 4.5) -- (1, 2.5) -- (2.5, 0);\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n      </figure>\n      <figure xml:id=\"figure-triangle-cyclic-vectors\">\n        <caption>The sides of a triangle presented as vectors.</caption>\n        <image xml:id=\"worksheet-triangle-cyclic-vectors\">\n          <latex-image>\n            \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n              \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n              \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n              \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n              % \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n              %   {} -- (1.5,0) node[below right=0mm and 3mm] {$\\vec{A}$};\n              %\\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n              %  {} -- (2,1) node[above left=5mm and 1mm] {$\\vec{B}$};\n              %\\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n              %  {} -- (0.5,1) node[below left=1mm and 3mm] {$\\vec{C}$};\n              %\\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n              %\\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n              % \\node {$P$} (1.3333,0.6667);\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n      </figure>\n      <figure xml:id=\"figure-triangle-cyclic-medians\">\n        <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n        <image xml:id=\"worksheet-triangle-cyclic-medians\" width=\"50%\">\n          <latex-image>\n            \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n              \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n              \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n              \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n              \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n                {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n              \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n               {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n              \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n               {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n              \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n              \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n              % \\node {$P$} (1.3333,0.6667);\n            \\end{tikzpicture}\n          </latex-image>\n        </image>\n      </figure>\n    </sidebyside>\n    <p>In this exercise, we'll use vectors to show that the medians of any triangle (<xref ref=\"figure-triangle-cyclic-vectors\" text=\"type-global\"/>) intersect at a point. Recall that medians are the lines connecting the vertices of the triangle to the midpoints of their opposite edges, as in the figure. We'll do this in a few steps.</p>\n  </introduction>\n\n  <page>\n    <exercise xml:id=\"ex-cyclic\" workspace=\"4in\">\n      <statement>\n        <p>What is the value of <m>\\vec{A} + \\vec{B} + \\vec{C}</m>?</p>\n      </statement>\n    </exercise>\n  </page>\n\n  <page>\n  <p><xref ref=\"figure-triangle-cyclic-medians\" text=\"type-global\"/> from the previous page is reproduced for your convenience.</p>\n  <figure xml:id=\"figure-triangle-cyclic-medians-copy\">\n    <caption>The medians of the triangle are <m>\\vec{M}_1</m>, <m>\\vec{M}_2</m>, and <m>\\vec{M}_3</m>.</caption>\n    <image xml:id=\"worksheet-triangle-cyclic-medians-copy\" width=\"50%\">\n      <latex-image>\n        \\begin{tikzpicture}[xscale=1.5, yscale=1.5]\n          \\draw[->,>=latex, style={black, thick}] (0,0) -- (2.30 , 0) node [below] {$\\vec{A}$} --  (3,0);\n          \\draw[->,>=latex, style={black, thick}] (3,0) -- (1.47, 1.53) node [above right =1mm] {$\\vec{B}$} -- (1,2);\n          \\draw[->,>=latex, style={black, thick}] (1,2) -- (0.23 , 0.46) node [above left=1mm] {$\\vec{C}$} -- (0,0);\n          \\draw[->,>=latex, style={black,semithick,dashed}] (1,2) -- (7/6, 4/3) node\n            {$\\vec{M}_{1}$} -- (1.5,0);% node[below right=0mm and 3mm] {$\\vec{A}$};\n          \\draw[->,>=latex, style={black,semithick,dashed}] (0,0) -- (2/3, 1/3) node\n           {$\\vec{M}_{2}$} -- (2,1);% node[above left=5mm and 1mm] {$\\vec{B}$};\n          \\draw[->,>=latex, style={black,semithick,dashed}] (3,0) -- (13/6,1/3) node\n           {$\\vec{M}_{3}$} -- (0.5,1);% node[below left=1mm and 3mm] {$\\vec{C}$};\n          \\node[draw,shape=circle,fill=black,name=P,scale=0.5] at (4/3,2/3) {};\n          \\node[above right=1.2mm and -0.5mm of P] at (4/3,2/3) {$P$};\n          % \\node {$P$} (1.3333,0.6667);\n        \\end{tikzpicture}\n      </latex-image>\n    </image>\n  </figure>\n  <sidebyside margins=\"0%\" widths=\"30% 60%\" valign=\"top\">\n    <exercise xml:id=\"exercise-vector-addition\" workspace=\"3.5in\">\n      <statement>\n        <p>Show that <m>\\vec{M}_{1} + \\vec{M}_{2} + \\vec{M}_{3} = 0</m>.</p>\n      </statement>\n      <hint>\n        <p>Use <xref ref=\"ex-cyclic\" text=\"type-global\"/>.</p>\n      </hint>\n    </exercise>\n    <exercise workspace=\"2in\">\n      <statement>\n        <p>To show that the point <m>P</m> exists (as the common intersection of the <m>\\vec{M}_{i}</m>), show that <md>\n          \\vec{A} + \\frac{2}{3} \\vec{M}_{3} = \\frac{2}{3} \\vec{M}_{2} = <fillin fill=\"\\frac{2}{3} \\vec{M}_{1}-\\vec{C}\"/>\n        </md>.</p>\n      </statement>\n    </exercise>\n  </sidebyside>\n  <exercise workspace=\"2.54cm\">\n    <p>If you have time, try to devise a vector proof of Euclid's result presented at the beginning of the workshop. Recall that a <term>parallelogram</term> is a four-sided polygon whose opposite sides are parallel.</p>\n  </exercise>\n  </page>\n\n  <conclusion>\n    <title>Wrap-up</title>\n    <p>It's possible to do interesting things with vector arithmetic in a coordinate-free way: we didn't specify an origin, or any entries of any vectors in the examples.</p>\n  </conclusion>\n</worksheet>\n"
  },
  {
    "path": "examples/workbook/ws-networks.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<worksheet label=\"worksheet-networks\" top=\"3cm\" bottom=\"1.2in\">\n  <title>Networks Worksheet</title>\n  <!-- <subtitle>An Activity Using Linear Algebra to Solve Network Applications</subtitle> -->\n\n  <introduction>\n      <title>Basic laws for electrical circuits</title>\n\n      <p>This two-page worksheet was generously donated to the sample article by Virgil Pierce at a CuratedCourses workshop in August<nbsp/>2018.  It has default (skinny) left and right margins, but we have specified longer top and bottom margins, with the top being the larger of the two.</p>\n\n      <theorem>\n          <title> Ohms Law </title>\n          <p> The current through a resistor is proportional to the ratio of the <em> Voltage </em> to the <em> Resistance </em>\n              <md> I = \\frac{V}{R} </md>\n              Or for our purposes\n              <md> I R = V </md>\n          </p>\n      </theorem>\n\n      <theorem>\n          <title>Kirchoffs Current Law</title>\n          <p> The sum of the currents in a network meeting at a point is zero.\n              <md> \\sum_{k=1}^n I_k = 0 </md>\n          </p>\n      </theorem>\n\n      <example>\n          <title> Kirchoff's Current Law </title>\n          <p> For the circuit below <m> I_1 + I_2 = I_3 </m>.</p>\n          <image xml:id=\"worksheet-kirchoff-law\" width=\"40%\">\n              <latex-image>\n              \\begin{circuitikz}\n              \\draw (0,0)\n              to[R, i=$I_1$, *-o](2,2);\n              \\draw (0,0)\n              to[R, i=$I_2$, *-o](2,-2);\n              \\draw (-3, 0)\n              to[R, i=$I_3$, o-*](0,0);\n              \\end{circuitikz}\n              </latex-image>\n          </image>\n      </example>\n\n      <theorem>\n          <title> Kirchoffs Voltage Law </title>\n          <p> The sum of the voltages around any closed circuit (or subcircuit) is zero.\n              <md> \\sum_{k=1}^n V_k = 0 </md>\n          </p>\n      </theorem>\n\n      <p> Kirchoffs Current Law and Kirkoffs Voltage Law combined with Ohms Law gives for any circuit of resistors and sources a linear system that may (or may not) determine the currents.\n      </p>\n  </introduction>\n\n\n  <page>\n  </page>\n\n  <page>\n      <sidebyside width=\"45%\" margins=\"0%\">\n          <exercise workspace=\"1.5in\">\n              <statement>\n              <p>For the simple network pictured, calculuate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n              <image xml:id=\"worksheet-simple-network\">\n                  <latex-image>\n                  \\begin{circuitikz}\n                  \\draw (0,0)\n                  to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                  to[short](2,3)\n                  to[R, R=$4\\quad \\mbox{ohm}$] (3, 3)\n                  to[short](4,3)\n                  to[R, R=$3\\quad \\mbox{ohm}$](4,0)\n                  to[short](3,0)\n                  to[R, R=$3\\quad \\mbox{ohm}$](2,0)\n                  to[short](0,0);\n                  \\end{circuitikz}\n                  </latex-image>\n              </image>\n             </statement>\n          </exercise>\n\n          <exercise workspace=\"2in\">\n              <statement>\n              <p> Compare it with a parallel circuit network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n              <image xml:id=\"worksheet-parallel-circuit\">\n                  <latex-image>\n                  \\begin{circuitikz}\n                  \\draw(0,0)\n                  to[V, v=$11\\quad \\mbox{volt}$](0, 3)\n                  to[short](5,3)\n                  to[R, R=$4\\quad \\mbox{ohm}$](6,3)\n                  to[short](7,3)\n                  to[R, R=$3\\quad \\mbox{ohm}$](7,0)\n                  to[short](6,0)\n                  to[R, R=$3\\quad \\mbox{ohm}$](5,0)\n                  to[short](0,0);\n                  \\draw(4,0)\n                  to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n                  \\end{circuitikz}\n                  </latex-image>\n              </image>\n              </statement>\n          </exercise>\n      </sidebyside>\n\n      <exercise workspace=\"1in\">\n          <statement>\n          <p> Now for a more complicated network. Calculate the amperage in each part of the network by setting up a system of linear equations for the amperages. </p>\n          <image xml:id=\"worksheet-complicated-network\">\n              <latex-image>\n              \\begin{circuitikz}\n              \\draw(0,0)\n              to[V, v=$11 \\quad \\mbox{volt}$](0, 3)\n              to[short](5,3)\n              to[R, R=$4 \\quad \\mbox{ohm}$](6,3)\n              to[short](9,3)\n              to[R, R=$4 \\quad \\mbox{ohm}$](10,3)\n              to[short](11,3)\n              to[R, R=$3 \\quad \\mbox{ohm}$](11, 0)\n              to[short](10,0)\n              to[R, R=$2\\quad \\mbox{ohm}$](9,0)\n              to[short](6,0)\n              to[R, R=$2\\quad \\mbox{ohm}$](5,0)\n              to[short](0,0);\n              \\draw(4,0)\n              to[R, R=$3\\quad \\mbox{ohm}$](4,3);\n              \\draw(8,0)\n              to[R, R=$1\\quad \\mbox{ohm}$](8,3);\n              \\end{circuitikz}\n              </latex-image>\n          </image>\n          </statement>\n      </exercise>\n  </page>\n\n  <page>\n      <exercise workspace=\"3in\">\n          <statement>\n              <p> Now generalize these ideas to a context outside of electrical circuits. Consider the network of streets given in the diagram (with one-way directions as indicated).</p>\n\n              <image xml:id=\"worksheet-street-network\" width=\"65%\">\n                  <latex-image>\n                  <![CDATA[\n                  \\begin{tikzpicture}[>=stealth]\n                  \\draw[->, very thick] (0,0) -- (10, 0) node[midway, below]{East Bound Winooski Ave};\n                  \\draw[<-, very thick] (0, 1) -- (10, 1) node[midway, above]{West Bound Winooski Ave};\n                      \\draw[<-, very thick] (0, 4) -- (10, 4) node[midway, above]{Shelburne St};\n                      \\draw[<-, very thick] (1, -1) -- (1, 5) node[midway, above, sloped]{Willow};\n                      \\draw[->, very thick] (9, -1) -- (9, 5) node[midway, above, sloped]{Jay};\n                      \\end{tikzpicture}\n                  ]]>\n                  </latex-image>\n              </image>\n\n              <p>A traffic engineer counts the hourly flow of cars into and out of this network at the entrances.  They get (EB = East Bound; WB = West Bound): </p>\n\n              <table>\n                  <title>Estimated hourly traffic flow for the road network</title>\n                  <tabular row-headers=\"yes\" halign=\"center\">\n                      <row header=\"yes\">\n                          <cell>\n                          </cell>\n                          <cell>\n                              EB Winooski\n                          </cell>\n                          <cell>\n                              WB Winooski\n                          </cell>\n                          <cell>\n                              Shelburne St\n                          </cell>\n                          <cell>\n                              Willow\n                          </cell>\n                          <cell>\n                              Jay\n                          </cell>\n                      </row>\n                      <row>\n                          <cell halign=\"left\">\n                              into\n                          </cell>\n                          <cell>\n                              50\n                          </cell>\n                          <cell>\n                              400\n                          </cell>\n                          <cell>\n                              0\n                          </cell>\n                          <cell>\n                              10\n                          </cell>\n                          <cell>\n                              50\n                          </cell>\n                      </row>\n                      <row>\n                          <cell halign=\"left\">\n                              out of\n                          </cell>\n                          <cell>\n                              55\n                          </cell>\n                          <cell>\n                              390\n                          </cell>\n                          <cell>\n                              20\n                          </cell>\n                          <cell>\n                              15\n                          </cell>\n                          <cell>\n                              30\n                          </cell>\n                      </row>\n                  </tabular>\n              </table>\n\n              <p> Use a variable for each segment inside of the network and set up a system of linear equations restricting the flow. Solve the system.  Note that you should not get a unique solution as traffic should be able to flow through the network in various ways. </p>\n          </statement>\n      </exercise>\n  </page>\n</worksheet>\n"
  },
  {
    "path": "examples/workbook/ws-testing.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!--********************************************************************\nCopyright 2024 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<worksheet label=\"worksheet-testing\" margin=\"1cm\">\n  <introduction>\n      <p>This is a mock one-page worksheet for testing purposes. We have specified an overall margin just slightly less than the default.</p>\n  </introduction>\n\n  <page>\n      <sidebyside width=\"45%\" margins=\"0%\">\n          <exercise workspace=\"1in\">\n              <statement>\n                  <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n              </statement>\n          </exercise>\n\n          <exercise workspace=\"1in\">\n              <statement>\n                  <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n              </statement>\n          </exercise>\n      </sidebyside>\n\n      <p>A two-line paragraph interspersed to check on spacing, breaks and all that.</p>\n\n      <exercise workspace=\"1.5in\">\n          <title>A full-width exercise</title>\n          <statement>\n              <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n              <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n          </statement>\n      </exercise>\n\n      <p>Another two-line paragraph interspersed to check on spacing, breaks and all that.</p>\n\n      <sidebyside width=\"30%\" margins=\"0%\">\n          <exercise>\n              <statement>\n                  <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n              </statement>\n          </exercise>\n\n          <exercise workspace=\"0.5in\">\n              <!-- <title>The Tallest</title> -->\n              <statement>\n                  <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n              </statement>\n          </exercise>\n\n          <exercise workspace=\"1in\">\n              <statement>\n                  <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n              </statement>\n          </exercise>\n      </sidebyside>\n\n      <activity>\n          <title>A Mock Activity</title>\n\n          <statement>\n              <p>The problem, as we see it.</p>\n          </statement>\n          <hint>\n              <p>A worksheet could have hints, no?  But no spacing. Note row below has widths set to balance the heights.</p>\n          </hint>\n      </activity>\n\n      <sidebyside widths=\"25% 40% 25%\" margins=\"0%\">\n          <exercise workspace=\"0.5in\">\n              <statement>\n                  <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n              </statement>\n          </exercise>\n\n          <exercise workspace=\"0.5in\">\n              <!-- <title>Balanced Heights</title> -->\n              <statement>\n                  <p>Integer sagittis dictum turpis vel aliquet. Fusce ut suscipit dolor, nec tristique nisl. Aenean luctus, leo et ornare fermentum, nibh dui vulputate leo, nec tincidunt augue ipsum sed odio. Nunc non erat sollicitudin, iaculis eros consequat, dapibus eros.</p>\n              </statement>\n          </exercise>\n\n          <exercise workspace=\"0.5in\">\n              <statement>\n                  <p>Praesent rutrum scelerisque felis sit amet adipiscing. Phasellus in mollis velit. Nunc malesuada felis sit amet massa cursus, eget elementum neque viverra.</p>\n              </statement>\n          </exercise>\n      </sidebyside>\n  </page>\n</worksheet>\n"
  },
  {
    "path": "journals/README.md",
    "content": "# Journals supported by PreTeXt\n\nThis folder contains a single `journals.xml` file which holds all relevant data about the journals currently supported by PreTeXt.\n\nThis file is the one source of truth for data about these journals.  It is used in the following ways:\n\n- By running the `build.sh` file, the `journals.xml` file will be transformed into a pretext table (via the `journals-to-table.xsl` file) that is placed in the correct location for when the pretext guide is built.\n- The pretext script parses `journals.xml` to find the correct latex-style to apply based on the journal code provided in the authors publication file.\n\n"
  },
  {
    "path": "journals/build.sh",
    "content": "#!/bin/bash\n\n# When journals.xml is updated, run this script from the journals directory to create a pretext table in the guide's appendices folder which \"journals.xml\" will import.\n\n# Build the journals-table for the documentation\nxsltproc journals-to-table.xsl journals.xml > ../doc/guide/appendices/journals-table.xml\n"
  },
  {
    "path": "journals/journals-to-table.xsl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n\n<xsl:output method=\"xml\" version=\"1.0\" encoding=\"UTF-8\" indent=\"yes\"/>\n\n<xsl:template match=\"/ptx-journals\">\n    <table>\n        <title>Journals supported by PreTeXt</title>\n        <tabular>\n            <row header=\"yes\">\n                <cell>Full Journal Name</cell><cell>Code</cell>\n            </row>\n            <xsl:apply-templates select=\"journal\"/>\n        </tabular>\n    </table>\n\n</xsl:template>\n\n\n<xsl:template match=\"journal\">\n    <row bottom=\"minor\">\n        <cell><xsl:value-of select=\"name\"/></cell>\n        <cell><xsl:value-of select=\"code\"/></cell>\n    </row>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "journals/journals.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<ptx-journals>\n  <!-- We might want some categories or other way to break these up?  More likely just use tags -->\n\n  <journal>\n    <code>ams</code>\n    <name>AMS journals</name>\n    <publisher>American Mathematical Society</publisher>\n  </journal>\n\n  <journal>\n    <code>elsevier</code>\n    <name>Elsevier journals</name>\n    <publisher>Elsevier</publisher>\n  </journal>\n\n  <journal>\n    <code>springer-nature</code>\n    <name>Springer Nature journals</name>\n    <publisher>Springer Nature</publisher>\n  </journal>\n\n  <journal>\n    <code>taylor-francis</code>\n    <name>Taylor Francis journals</name>\n    <publisher>Taylor &amp; Francis</publisher>\n  </journal>\n\n  <journal>\n    <code>ann-pure-appl-logic</code>\n    <name>Annals of Pure and Applied Logic</name>\n    <publisher>Elsevier</publisher>\n    <method texstyle=\"elsevier\"/>\n  </journal>\n\n  <journal>\n    <code>bull-amer-math-soc</code>\n    <name>Bulletin (New Series) of the American Mathematical Society</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>conform-geom-dyn</code>\n    <name>Conformal Geometry and Dynamics</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>electron-j-combin</code>\n    <name>Electronic Journal of Combinatorics</name>\n    <publisher>Electronic Journal of Combinatorics</publisher>\n  </journal>\n\n  <journal>\n    <code>exp-math</code>\n    <name>Experimental Mathematics</name>\n    <publisher>Taylor &amp; Francis</publisher>\n    <method texstyle=\"taylor-francis\"/>\n  </journal>\n\n  <journal>\n    <code>j-algebraic-geom</code>\n    <name>Journal of Algebraic Geometry</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n\n  <journal>\n    <code>j-amer-math-soc</code>\n    <name>Journal of the American Mathematical Society</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>math-comp</code>\n    <name>Mathematics of Computation</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>quart-appl-math</code>\n    <name>Quarterly of Applied Mathematics</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>proc-amer-math-soc</code>\n    <name>Proceedings of the American Mathematical Society</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>represent-theory</code>\n    <name>Representation Theory</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>theory-probab-math-statist</code>\n    <name>Theory of Probability and Mathematical Statistics</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n  <journal>\n    <code>trans-ams</code>\n    <name>Transactions of the American Mathematical Society</name>\n    <publisher>American Mathematical Society</publisher>\n    <method dependent=\"yes\"/>\n  </journal>\n\n</ptx-journals>\n"
  },
  {
    "path": "journals/texstyles/ams.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>ams</code>\n        <name>AMS journals</name>\n        <publisher>American Mathematical Society</publisher>\n        <latex-engine command=\"pdflatex\"/>\n        <bibliography-style>spbasic</bibliography-style>\n\n        <style-author>Oscar Levin</style-author>\n        <date>2025-03-12</date>\n    </metadata>\n\n    <documentclass name=\"amsart\"/>\n\n\n    <ptx-preamble>\n        <theoremstyle name=\"plain\" environments=\"theorem, proposition, lemma, corollary, claim, fact, identity, conjecture\"/>\n        <theoremstyle name=\"definition\" environments=\", definition, axiom,, principle, heuristic, hypothesis, assumption, openproblem, openquestion, algorithm, question, activity, exercise, inlineexercise, investigation, exploration, problem, example, project\"/>\n        <theoremstyle name=\"remark\" environments=\"remark, warning, convention, insight, note, observation, computation, technology, data\"/>\n    </ptx-preamble>\n\n    <begin-document/>\n\n    <title cmd=\"title\">\n        <opt><ptx-short-title/></opt>\n        <arg><ptx-title/></arg>\n    </title>\n\n    <author-list>\n        <author cmd=\"author\" corresponding=\"author*\">\n            <arg><ptx-personname/></arg>\n        </author>\n        <affiliation cmd=\"address\">\n            <arg><ptx-affiliation/></arg>\n        </affiliation>\n        <email cmd=\"email\">\n            <arg><ptx-email/></arg>\n        </email>\n        <support cmd=\"thanks\">\n            <arg><ptx-support/></arg>\n        </support>\n    </author-list>\n\n    <keywords authority=\"msc\" cmd=\"subjclass\" variant-style=\"opt\" sep=\", \"/>\n\n    <date cmd=\"date\">\n        <arg><ptx-date/></arg>    \n    </date>\n\n    <dedication cmd=\"dedicatory\">\n        <arg><ptx-dedication/></arg>\n    </dedication>\n\n\n    <keywords authority=\"author\" cmd=\"keywords\" sep=\", \"/>\n\n    <abstract env=\"abstract\">\n        <ptx-abstract/>\n    </abstract>\n\n    <maketitle/>\n\n\n    <mainmatter/>\n\n\n    <acknowledgments heading=\"\\section*{Acknowledgments}\"/>\n\n    <appendices />\n\n    <bibliography cmd=\"bibliography\">\n        <arg><bib-file/></arg>\n    </bibliography>\n\n    <end-document/>\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/bull-amer-math-soc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>bull-amer-math-soc</code>\n        <name>Bulletin (New Series) of the American Mathematical Society</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"bull-l.cls\" href=\"https://www.ams.org/arc/journals/packages/bull/bull_amslatex/bull-l.cls\" />\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"bull-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/conform-geom-dyn.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>conform-geom-dyn</code>\n        <name>Conformal Geometry and Dynamics</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"ecgd-l.cls\" href=\"https://www.ams.org/arc/journals/packages/ecgd/ecgd_amslatex/ecgd-l.cls\" />\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"ecgd-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/j-algebraic-geom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>j-algebraic-geom</code>\n        <name>Journal of Algebraic Geometry</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"jag-l.cls\" href=\"https://www.ams.org/arc/journals/packages/jag/jag_amslatex/jag-l.cls\" />\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"jag-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/j-amer-math-soc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>j-amer-math-soc</code>\n        <name>Journal of the American Mathematical Society</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"jams-l.cls\" href=\"https://www.ams.org/arc/journals/packages/jams/jams_amslatex/jams-l.cls\" />\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"jams-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/math-comp.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>math-comp</code>\n        <name>Mathematics of Computation</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"mcom-l.cls\" href=\"https://www.ams.org/arc/journals/packages/mcom/mcom_amslatex/mcom-l.cls\" />\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"mcom-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/proc-amer-math-soc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>proc-amer-math-soc</code>\n        <name>Proceedings of the American Mathematical Society</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file href=\"https://www.ams.org/arc/journals/packages/proc/proc_amslatex/proc-l.cls\" name=\"proc-l.cls\"/>\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"proc-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/quart-appl-math.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>quart-appl-math</code>\n        <name>Quarterly of Applied Mathematics</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"qam-l.cls\" href=\"https://www.ams.org/arc/journals/packages/qam/qam_amslatex/qam-l.cls\"/>\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"qam-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/represent-theory.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>represent-theory</code>\n        <name>Representation Theory</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"ert-l.cls\" href=\"https://www.ams.org/arc/journals/packages/ert/ert_amslatex/ert-l.cls\"/>\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"ert-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/theory-probab-math-statist.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>theory-probab-math-statist</code>\n        <name>Theory of Probability and Mathematical Statistics</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"tpms-l.cls\" href=\"https://probability.knu.ua/tims/tpms_amslatex.zip\" path=\"tpms_amslatex/tpms-l.cls\"/>\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-03-12</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"tpms-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/dependents/trans-ams.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>trans-ams</code>\n        <name>Transactions of the American Mathematical Society</name>\n        <publisher>American Mathematical Society</publisher>\n        <extends>ams</extends>\n        <required-files>\n            <file name=\"tran-l.cls\" href=\"https://www.ams.org/arc/journals/packages/tran/tran_amslatex/tran-l.cls\" />\n        </required-files>\n        <style-author>Oscar Levin</style-author>\n        <date>2025-03-12</date>\n    </metadata>\n\n<!-- Override the document class.  Everything else is the same. -->\n    <documentclass name=\"tran-l\"/>\n\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/electron-j-combin.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>electron-j-combin</code>\n        <name>Electronic Journal of Combinatorics</name>\n        <publisher>Electronic Journal of Combinatorics</publisher>\n        <required-files>\n            <file name=\"e-jc.sty\" href=\"https://www.combinatorics.org/files/e-jc.sty\" />\n        </required-files>\n        <latex-engine command=\"pdflatex\"/>\n        <!--<bibliography-style>spbasic</bibliography-style>-->\n\n        <style-author>Oscar Levin</style-author>\n        <date>2025-03-23</date>\n    </metadata>\n\n<documentclass name=\"article\"/>\n\n<packages>\n    \\usepackage[amsmath]{e-jc}\n</packages>\n\n<!-- the e-jc.cls provides some theorem environments; we add the pretext ones it misses. -->\n<ptx-preamble>\n    <theoremstyle name=\"plain\" environments=\"identity\" define-counter=\"no\"/>\n    <theoremstyle name=\"definition\" environments=\"axiom, principle, heuristic, hypothesis, assumption, openproblem, openquestion, algorithm, activity, exercise, inlineexercise, investigation, exploration, project\"/>\n    <theoremstyle name=\"remark\" environments=\"warning, convention, insight, computation, technology, data\"/>\n</ptx-preamble>\n\n    <date cmd=\"dateline\">\n        <arg><ptx-date/></arg>\n        <arg><text>TBD</text></arg>\n        <arg><text>TBD</text></arg>\n    </date>\n\n    <keywords authority=\"msc\" cmd=\"MSC\" sep=\", \"/>\n\n    <copyright cmd=\"Copyright\">\n        <arg>The author.</arg>\n    </copyright>\n\n    <title cmd=\"title\">\n        <arg><ptx-title/></arg>\n    </title>\n\n    <author cmd=\"author\">\n        <arg>\n            <author-list sep=\"&#xa;\\and&#xa;\">\n                <ptx-personname/>\n                <fnmark cmd=\"authornote\" arg=\"ordinal\"/>\n            </author-list>\n        </arg>\n    </author>\n\n    <author-list>\n        <fntext cmd=\"authortext\" arg=\"ordinal\">\n            <arg>\n                <ptx-affiliation after=\"\\\\\"/>\n                <ptx-email/>\n            </arg>\n        </fntext>\n    </author-list>\n\n\n    <begin-document/>\n\n    <maketitle/>\n\n    <abstract env=\"abstract\">\n        <ptx-abstract/>\n        <keywords authority=\"author\" style=\"bf-heading\" sep=\", \" before=\"\\par\\medskip\"/>\n    </abstract>\n\n\n\n\n    <mainmatter/>\n\n\n    <acknowledgments heading=\"\\section*{Acknowledgments}\"/>\n\n\n    <appendices cmd=\"appendix\"/>\n\n\n    <bibliography cmd=\"bibliography\">\n        <arg><bib-file/></arg>\n    </bibliography>\n\n\n    <end-document/>\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/elsevier.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>elsevier</code>\n        <name>Eslevier journals</name>\n        <publisher>Elsevier</publisher>\n        <!-- Each file element of required files should have an href to a location where wget can download the file.  @compression describes how the file is compressed (or None).  @path gives the path to the file relative to the extracted resource.  The file at this path will be copied to the build directory before running xelatex/pdflatex -->\n        <!--<required-files>\n            <file href=\"https://resource-cms.springernature.com/springer-cms/rest/v1/content/18782940/data/v13.zip\" compression=\"zip\" path=\"sn-article-template/sn-jnl.cls\"/>\n        </required-files>-->\n        <latex-engine command=\"pdflatex\"/>\n        <!--<bibliography-style>spbasic</bibliography-style>-->\n\n        <style-author>Oscar Levin</style-author>\n        <date>2025-03-21</date>\n    </metadata>\n\n<documentclass name=\"elsarticle\"/>\n\n\n\n    <ptx-preamble/>\n\n\n    <begin-document/>\n\n    <frontmatter env=\"frontmatter\">\n\n        <title cmd=\"title\">\n            <arg><ptx-title/></arg>\n        </title>\n\n\n        <author-list>\n            <author cmd=\"author\">\n                <arg>\n                    <ptx-personname/>\n                    <fnmark cmd=\"fnref\" arg=\"unique-id\"/>\n                </arg>\n            </author>\n            <fntext cmd=\"fntext\" opt=\"unique-id\">\n                <arg><ptx-support/></arg>\n            </fntext>\n            <affiliation cmd=\"affiliation\">\n                <arg><ptx-affiliation sep=\", \"/></arg>\n            </affiliation>\n            <email cmd=\"ead\">\n                <arg><ptx-email/></arg>\n            </email>\n        </author-list>\n\n\n        <abstract env=\"abstract\">\n            <arg><ptx-abstract/></arg>\n        </abstract>\n\n        <keywords env=\"keyword\">\n            <keywords authority=\"author\" sep=\" \\sep \"/>\n\n            <keywords authority=\"msc\" cmd=\"MSC\" variant-style=\"opt\" sep=\" \\sep \"/>\n        </keywords>\n\n    <!--<maketitle/>-->\n    </frontmatter>\n\n    <mainmatter/>\n\n\n    <acknowledgments heading=\"\\section*{Acknowledgments}\"/>\n\n\n    <appendices cmd=\"appendix\"/>\n\n\n    <bibliography cmd=\"bibliography\">\n        <arg><bib-file/></arg>\n    </bibliography>\n\n\n    <end-document/>\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/springer-nature.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>springer-nature</code>\n        <name>Springer Nature journals</name>\n        <publisher>Springer Nature</publisher>\n        <required-files>\n            <file name=\"sn-jnl.cls\" href=\"https://resource-cms.springernature.com/springer-cms/rest/v1/content/18782940/data/v13.zip\" path=\"sn-article-template/sn-jnl.cls\"/>\n        </required-files>\n        <latex-engine command=\"pdflatex\"/>\n        <bibliography-style>spbasic</bibliography-style>\n\n        <style-author>Oscar Levin</style-author>\n        <date>2025-04-01</date>\n    </metadata>\n\n<documentclass name=\"sn-jnl\" opt=\"pdflatex\"/>\n\n\n    <packages>\n        \\usepackage{multirow}%\n        \\usepackage{amsfonts}%\n        \\usepackage{mathrsfs}%\n        \\usepackage[title]{appendix}%\n        \\usepackage{textcomp}%\n        \\usepackage{manyfoot}%\n        \\usepackage{booktabs}%\n        \\usepackage{listings}%\n    </packages>\n\n    <ptx-preamble hyperref=\"no\">\n        <theoremstyle\n            name=\"thmstyleone\"\n            environments=\"theorem, proposition, lemma, corollary, claim, fact, identity, conjecture\"\n        />\n        <theoremstyle\n            name=\"thmstyletwo\"\n            environments=\"definition, axiom, principle, algorithm, heuristic, hypothesis, assumption, openproblem, openquestion, question, activity, exercise, inlineexercise, investigation, exploration, problem, example, project\"\n        />\n        <theoremstyle\n            name=\"thmstylethree\"\n            environments=\"remark, warning, convention, insight, note, observation, computation, technology, data\"\n        />\n    </ptx-preamble>\n\n    <preamble-addition>\n        % Redefine some commands that are usually in the table preamble chunk\n        % Note that this no longer distinguishes between these rule widths.\n        \\renewcommand{\\crulethin}{\\cmidrule}\n        \\renewcommand{\\crulemedium}{\\cmidrule}\n        \\renewcommand{\\crulethick}{\\cmidrule}\n    </preamble-addition>\n\n\n    <begin-document/>\n\n    <title cmd=\"title\">\n        <opt><ptx-short-title/></opt>\n        <arg><ptx-title/></arg>\n    </title>\n\n\n    <author-list>\n        <author cmd=\"author\" corresponding=\"author*\">\n            <opt><affiliation-ordinal/></opt>\n            <arg><ptx-personname/></arg>\n        </author>\n        <email cmd=\"email\">\n            <arg><ptx-email/></arg>\n        </email>\n    </author-list>\n\n    <affiliation-list>\n        <affiliation cmd=\"affil\" current=\"affil*\">\n            <opt><affiliation-ordinal/></opt>\n            <arg><ptx-affiliation/></arg>\n        </affiliation>\n    </affiliation-list>\n\n\n\n\n    <abstract cmd=\"abstract\">\n        <arg><ptx-abstract/></arg>\n    </abstract>\n\n    <keywords authority=\"author\" cmd=\"keywords\" sep=\", \"/>\n\n    <keywords authority=\"msc\" cmd=\"pacs\" variant-style=\"opt\" sep=\", \"/>\n\n    <maketitle/>\n\n\n    <mainmatter>\n        <content/>\n    </mainmatter>\n\n\n    <backmatter cmd=\"backmatter\"/>\n\n    <supplement heading=\"\\bmhead{Supplementary information}\">\n        <content/>\n    </supplement>\n\n    <acknowledgments heading=\"\\bmhead{Acknowledgments}\">\n        <content/>\n    </acknowledgments>\n\n    <declarations heading=\"\\section*{Declarations}\" required=\"yes\">\n        <content/>\n    </declarations>\n\n    <appendices env=\"appendices\">\n        <content/>\n    </appendices>\n\n\n    <bibliography cmd=\"bibliography\">\n        <arg><bib-file/></arg>\n    </bibliography>\n\n\n    <end-document/>\n</texstyle>\n"
  },
  {
    "path": "journals/texstyles/taylor-francis.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<texstyle>\n    <metadata>\n        <code>taylor-francis</code>\n        <name>Taylor Francis General - All other Taylor-Francis journals</name>\n        <publisher>Taylor-Francis</publisher>\n        <latex-engine command=\"pdflatex\"/>\n        <bibliography-style>spbasic</bibliography-style>\n\n        <style-author>Oscar Levin</style-author>\n        <date>2025-03-17</date>\n    </metadata>\n\n    <documentclass name=\"article\"/>\n\n\n    <ptx-preamble/>\n\n\n    <title cmd=\"title\">\n        <arg>\n            <ptx-title/>\n            <support cmd=\"support\">\n                <arg><ptx-bibinfo-support/></arg>\n            </support>\n        </arg>\n    </title>\n\n    <author cmd=\"author\">\n        <arg>\n            <author-list sep=\"\\and\">\n                <ptx-personname/>\n                <support cmd=\"thanks\" after=\"\\\\\">\n                    <arg><ptx-support/></arg>\n                </support>\n                <ptx-affiliation sep=\"\\\\&#xa;\" after=\"\\\\\"/>\n                <ptx-email/>\n            </author-list>\n        </arg>\n    </author>\n\n    <date cmd=\"date\">\n        <arg><ptx-date/></arg>\n    </date>\n\n    <begin-document/>\n\n    <maketitle/>\n\n    <abstract env=\"abstract\">\n        <ptx-abstract/>\n         <!--  heading=\"\\noindent{\\bfseries Keywords}.\" -->\n        <keywords authority=\"author\" style=\"bf-heading\" sep=\", \" before=\"\\par\\medskip\" />\n        <keywords authority=\"msc\" style=\"bf-heading\" variant-style=\"before\" sep=\", \" before=\"\\par\\medskip\"/>\n        <!--<subj-class heading=\"\\noindent{\\bfseries {@variant} Mathematics Subject Classification}.\"/>-->\n    </abstract>\n\n    <mainmatter/>\n\n\n\n    <acknowledgments heading=\"\\section*{Acknowledgments}\"/>\n\n\n    <appendices/>\n\n\n    <bibliography cmd=\"bibliography\">\n        <arg><bib-file/></arg>\n    </bibliography>\n\n\n    <end-document/>\n</texstyle>\n"
  },
  {
    "path": "js/diagcess/diagcess.js",
    "content": "/**\n * Skipped minification because the original files appears to be already minified.\n * Original file: /npm/diagcess@1.3.3/dist/diagcess.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.diagcess=e():t.diagcess=e()}(this,()=>(()=>{\"use strict\";var t={38:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.CustomEvent=e.EventType=e.KeyCodes=void 0,function(t){t[t.RETURN=13]=\"RETURN\",t[t.ENTER=13]=\"ENTER\",t[t.ESC=27]=\"ESC\",t[t.SPACE=32]=\"SPACE\",t[t.LEFT=37]=\"LEFT\",t[t.UP=38]=\"UP\",t[t.RIGHT=39]=\"RIGHT\",t[t.DOWN=40]=\"DOWN\",t[t.A=65]=\"A\",t[t.B=66]=\"B\",t[t.C=67]=\"C\",t[t.D=68]=\"D\",t[t.E=69]=\"E\",t[t.F=70]=\"F\",t[t.G=71]=\"G\",t[t.H=72]=\"H\",t[t.I=73]=\"I\",t[t.J=74]=\"J\",t[t.K=75]=\"K\",t[t.L=76]=\"L\",t[t.M=77]=\"M\",t[t.N=78]=\"N\",t[t.O=79]=\"O\",t[t.P=80]=\"P\",t[t.Q=81]=\"Q\",t[t.R=82]=\"R\",t[t.S=83]=\"S\",t[t.T=84]=\"T\",t[t.U=85]=\"U\",t[t.V=86]=\"V\",t[t.W=87]=\"W\",t[t.X=88]=\"X\",t[t.Y=89]=\"Y\",t[t.Z=90]=\"Z\",t[t.COMMA=188]=\"COMMA\",t[t.PERIOD=190]=\"PERIOD\"}(e.KeyCodes||(e.KeyCodes={})),function(t){t.CLICK=\"click\",t.DBLCLICK=\"dblclick\",t.MOUSEDOWN=\"mousedown\",t.MOUSEUP=\"mouseup\",t.MOUSEOVER=\"mouseover\",t.MOUSEOUT=\"mouseout\",t.MOUSEMOVE=\"mousemove\",t.SELECTSTART=\"selectstart\",t.KEYPRESS=\"keypress\",t.KEYDOWN=\"keydown\",t.KEYUP=\"keyup\",t.TOUCHSTART=\"touchstart\",t.TOUCHMOVE=\"touchmove\",t.TOUCHEND=\"touchend\",t.TOUCHCANCEL=\"touchcancel\"}(e.EventType||(e.EventType={}));var n=function(){function t(t,e,n){this.src=t,this.type=e,this.callback=n,this.src=t,this.type=e,this.callback=n}return t.prototype.add=function(){this.src.addEventListener(this.type,this.callback)},t.prototype.remove=function(){this.src.removeEventListener(this.type,this.callback)},t}();e.CustomEvent=n},108:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.ChemObj=void 0;var r=n(502),i=[\"circular\"],c=function(){function t(t,e){var n,c;this.annotation_=t,this.diagram_=e,this.drawnElements=null,this.attributes=new Map,this.up=null,this.down=[],this.link=!1,this.drawn_=null,this.id_=this.getId_(),this.parent_=this.getParent_(),this.position=this.getPosition_();try{for(var a=o(i),s=a.next();!s.done;s=a.next()){var l=s.value,u=r.getAttribute(t,l);u&&this.attributes.set(l,u)}}catch(t){n={error:t}}finally{try{s&&!s.done&&(c=a.return)&&c.call(a)}finally{if(n)throw n.error}}}return t.prototype.getAnnotation=function(){return this.annotation_},t.prototype.getDiagram=function(){return this.diagram_},t.prototype.getId=function(){return this.id_},t.prototype.setDrawnElement=function(t){this.drawn_=t},t.prototype.getDrawnElement=function(){return this.drawn_},t.prototype.getDrawnElements=function(){return this.drawnElements||(this.drawnElements=[],this.drawn_&&this.drawnElements.push(this.drawn_)),this.drawnElements},t.prototype.complete=function(){if(this.down.length&&this.down.sort(function(t,e){return!t.position&&e.position?1:t.position-e.position}),this.parent_){var t=this.getDiagram().get(this.parent_);this.up=t,t.down.push(this)}},t.prototype.getParent=function(){return this.parent_},t.prototype.getKey=function(){return this.id_+this.parent_},t.prototype.getUp=function(){return this.up?[this.up]:[]},t.prototype.getDown=function(){return this.down},t.prototype.getRight=function(){if(!this.up)return[];var t=this.up.getDown(),e=t.indexOf(this);if(t.length>e+1){var n=t[e+1];return n.position?[n]:[]}return this.up.attributes.get(\"circular\")?[t[0]]:[]},t.prototype.getLeft=function(){if(!this.up)return[];var t=this.up.getDown(),e=t.indexOf(this);if(e>0){var n=t[e-1];return n.position?[n]:[]}return this.up.attributes.get(\"circular\")?[t[t.length-1]]:[]},t.prototype.getId_=function(){var t=this.getAnnotation().firstElementChild;return t?t.textContent:\"\"},t.prototype.getParent_=function(){var t=this.getAnnotation().querySelector(\"parents > *\");return t?r.getTextContent(t):\"\"},t.prototype.getPosition_=function(){return parseInt(r.getTextContent(this.getAnnotation().querySelector(\"position\")),10)},t}();e.ChemObj=c},187:(t,e)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Diagram=void 0;var n=function(){function t(t){this.languages=t,this.diagram_={}}return t.prototype.set=function(t,e){this.diagram_[t]=e},t.prototype.get=function(t){return this.diagram_[t]},t.prototype.forEach=function(t){for(var e in this.diagram_)t.call(this,this.diagram_[e])},t.prototype.find=function(t){for(var e in this.diagram_){var n=this.diagram_[e];if(t.call(this,n))return n}return null},t.prototype.translate=function(t){return this.languages?this.languages.translate(t):t},t.prototype.nextLanguage=function(){return this.languages?(this.languages.nextLanguage(),this.languages.active):null},t}();e.Diagram=n},196:(t,e,n)=>{var o;Object.defineProperty(e,\"__esModule\",{value:!0}),e.rewriteUseElements=e.rewriteTransformations=e.SelectedElements=e.SelectedTypes=void 0;var r,i=n(502),c=[\"text\",\"polyline\",\"line\",\"rect\",\"polygon\",\"use\",\"circle\",\"path\"],a=[\"stroke\",\"stroke-width\",\"color\",\"fill\",\"background-color\",\"transform\"];function s(t){var e=t,n=[];do{var o=e.getAttribute(\"transform\");o&&n.unshift(o),e=e.parentNode}while(\"svg\"!==e.tagName);return t.setAttribute(\"transform\",n.join(\" \")),t}function l(t){var e=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"),n=t.getAttribute(\"id\");return n&&(e.setAttribute(\"id\",n),t.removeAttribute(\"id\")),t.parentNode.replaceChild(e,t),e.appendChild(t),e}function u(t){var e=t;do{(e=e.parentNode).removeAttribute(\"transform\")}while(\"svg\"!==e.tagName)}!function(t){t.DEFS=\"defs\",t.SUB_DEFS=\"subDefs\",t.SUB_SVG=\"subSvg\"}(r=e.SelectedTypes||(e.SelectedTypes={})),e.SelectedElements=((o={})[r.DEFS]=[],o[r.SUB_DEFS]=[],o[r.SUB_SVG]=[],o),e.rewriteTransformations=function(t){var n=i.toArray(t.querySelectorAll(c.join(\",\")));e.SelectedElements.SUB_SVG=i.toArray(t.querySelectorAll(\"svg svg\"));var o=i.toArray(t.querySelectorAll(c.map(function(t){return\"svg svg \"+t}).join(\",\")));e.SelectedElements.SUB_DEFS=i.toArray(t.querySelectorAll(c.map(function(t){return\"svg defs \"+t}).join(\",\")));var r=n.filter(function(t){return!o.includes(t)&&!e.SelectedElements.SUB_DEFS.includes(t)});return function(t,e){e.forEach(s),t.forEach(s),e.forEach(u),t.forEach(u),e.forEach(function(t){var e=l(t),n=t.getAttribute(\"transform\");n&&(e.setAttribute(\"transform\",n),t.removeAttribute(\"transform\"))}),t.filter(function(t){return t.hasAttribute(\"id\")}).forEach(l)}(r,e.SelectedElements.SUB_SVG),r},e.rewriteUseElements=function(t){var n=a.map(function(t){return\"\".concat(t,\":inherit;\")}).join(\" \");e.SelectedElements.SUB_DEFS.forEach(function(t){var o,r=null===(o=t.parentElement)||void 0===o?void 0:o.parentElement;r&&e.SelectedElements.SUB_SVG.includes(r)||t.setAttribute(\"style\",n)})}},216:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.ControllerFactory=void 0;var r=n(225),i=n(226),c=n(778),a=n(853),s=n(881),l=n(234),u=n(875);!function(t){var e,n=((e={})[r.magnifiers.SIMPLE]=function(t){return new a.SimpleMagnifier(t)},e[r.magnifiers.STEP]=function(t){return new a.StepMagnifier(t)},e[r.magnifiers.DUMMY]=function(t){return new a.DummyMagnifier(t)},e[r.colors.MONOCHROME]=function(t){return new i.Monochrome(t)},e[r.colors.CONTRAST]=function(t){return new i.Contrast(t)},e[r.speech.DETAIL]=function(t){return new u.Detail(t)},e[r.speech.EXPERT]=function(t){return new u.Expert(t)},e[r.speech.LANGUAGE]=function(t){return new u.Language(t)},e[r.regions.SPEECH]=function(t){return new s.Speech(t)},e[r.regions.SUBTITLE]=function(t){return new s.Subtitle(t)},e[r.explorers.KEY]=function(t){return new c.KeyExplorer(t)},e[r.explorers.MENU]=function(t){return new c.MenuExplorer(t)},e[r.sound.OSCILLATOR]=function(t){return new l.Oscillator(t)},e[r.sound.VOICING]=function(t){return new l.Voicing(t)},e);t.get=function(t){var e,i,c=[],a=[].concat(r.options.magnifiers,r.options.regions,r.options.colors,r.options.speech,r.options.sound,r.options.explorers);try{for(var s=o(a),l=s.next();!l.done;l=s.next()){var u=l.value,p=n[u];if(p){var h=p(t);c.push(h)}}}catch(t){e={error:t}}finally{try{l&&!l.done&&(i=s.return)&&i.call(s)}finally{if(e)throw e.error}}return c}}(e.ControllerFactory||(e.ControllerFactory={}))},221:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.AbstractController=void 0;var r=n(38),i=function(){function t(t){this.container=t,this._active=!1,this.internalEvents_=[],this.customEvents()}return Object.defineProperty(t.prototype,\"active\",{get:function(){return this._active},set:function(t){this._active=t},enumerable:!1,configurable:!0}),t.prototype.activate=function(){this.active=!0,this.addEvents()},t.prototype.deactivate=function(){this.removeEvents(),this.active=!1},t.prototype.registerEvent=function(t,e,n){this.internalEvents_.push(new r.CustomEvent(t,e,n))},t.prototype.addEvents=function(){var t,e;try{for(var n=o(this.internalEvents_),r=n.next();!r.done;r=n.next()){r.value.add()}}catch(e){t={error:e}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t.prototype.removeEvents=function(){var t,e;try{for(var n=o(this.internalEvents_),r=n.next();!r.done;r=n.next()){r.value.remove()}}catch(e){t={error:e}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},t}();e.AbstractController=i},225:(t,e)=>{var n,o,r,i,c,a;Object.defineProperty(e,\"__esModule\",{value:!0}),e.config=e.options=e.sound=e.speech=e.colors=e.regions=e.magnifiers=e.explorers=e.version=void 0,e.version=\"1.3.3\",function(t){t.KEY=\"key\",t.MENU=\"menu\"}(n=e.explorers||(e.explorers={})),function(t){t.DUMMY=\"dummy\",t.STEP=\"step\",t.SIMPLE=\"simple\"}(o=e.magnifiers||(e.magnifiers={})),function(t){t.SUBTITLE=\"subtitle\",t.SPEECH=\"speech\"}(r=e.regions||(e.regions={})),function(t){t.MONOCHROME=\"monochrome\",t.CONTRAST=\"contrast\"}(i=e.colors||(e.colors={})),function(t){t.LANGUAGE=\"language\",t.EXPERT=\"expert\",t.DETAIL=\"detail\"}(c=e.speech||(e.speech={})),function(t){t.OSCILLATOR=\"oscillator\",t.VOICING=\"voicing\"}(a=e.sound||(e.sound={})),e.options={explorers:[n.KEY,n.MENU],magnifiers:[o.STEP,o.SIMPLE,o.DUMMY],regions:[r.SUBTITLE,r.SPEECH],colors:[i.MONOCHROME,i.CONTRAST],speech:[c.LANGUAGE,c.EXPERT,c.DETAIL],sound:[a.OSCILLATOR,a.VOICING]},e.config={MSG_VISIBLE:!0,MAG_ACTIVE:o.STEP,SONIFY:!1,VOICING:!0,VOICE_LANG:\"en\",ACTIVE_LANG:\"en\",SUB_VISIBLE:!1,SUBTITLE:null,POLYLINE:!1}},226:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Contrast=e.Monochrome=e.AbstractColor=void 0;var i=n(854),c=n(38),a=n(225),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.prototype.update=function(){},e}(n(221).AbstractController);e.AbstractColor=s;var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.colors.MONOCHROME,e}return r(e,t),e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(e){return e.keyCode===c.KeyCodes.T&&i.toggleMonochrome(t.container.molecule.svg),e.stopPropagation(),!1})},e}(s);e.Monochrome=l;var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.colors.CONTRAST,e.scheme=0,e}return r(e,t),e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(e){return e.keyCode===c.KeyCodes.C&&t.container.replaceStyles(i.pickScheme(t.container.molecule,++t.scheme)),e.stopPropagation(),!1})},e}(s);e.Contrast=u},234:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Voicing=e.Oscillator=e.AbstractSoundController=void 0;var i=n(502),c=n(38),a=n(225),s=n(221),l=n(899),u=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.prototype.activate=function(){t.prototype.activate.call(this),this.active=this.on()},e.prototype.deactivate=function(){this.stop(),t.prototype.deactivate.call(this)},e.prototype.update=function(){this.stop()},e.prototype.getStopKey=function(){return c.KeyCodes.K},e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(e){return e.keyCode===t.getActivationKey()&&(t.active=!t.active,t.toggle(t.active),t.active?t.update():t.stop()),e.keyCode===t.getRepeatKey()&&t.update(),e.keyCode===t.getStopKey()&&t.stop(),e.stopPropagation(),!1})},e}(s.AbstractController);e.AbstractSoundController=u;var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.sound.OSCILLATOR,e.currentOscillators=[],e}return r(e,t),e.prototype.update=function(){t.prototype.update.call(this),this.currentOscillators=l.Sonify.sonify(this.container.activeElement)},e.prototype.on=function(){return a.config.SONIFY},e.prototype.toggle=function(t){a.config.SONIFY=t},e.prototype.stop=function(){this.currentOscillators.forEach(function(t){return t.stop()})},e.prototype.getActivationKey=function(){return c.KeyCodes.O},e.prototype.getRepeatKey=function(){return c.KeyCodes.P},e}(u);e.Oscillator=p;var h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.sound.VOICING,e.languages=null,e}return r(e,t),e.prototype.update=function(){t.prototype.update.call(this);var e=new SpeechSynthesisUtterance(this.container.activeElement.getSpeech());e.lang=this.languages?this.languages.active:a.config.VOICE_LANG,speechSynthesis.speak(e)},e.prototype.activate=function(){i.hasSpeech()&&(this.languages=this.container.molecule.cmlStructure.getRootElement().getDiagram().languages,this.languages&&this.languages.updateActive(),t.prototype.activate.call(this))},e.prototype.getActivationKey=function(){return c.KeyCodes.Y},e.prototype.getRepeatKey=function(){return c.KeyCodes.U},e.prototype.on=function(){return a.config.VOICING},e.prototype.toggle=function(t){a.config.VOICING=t},e.prototype.stop=function(){i.hasSpeech()&&speechSynthesis.cancel()},e}(u);e.Voicing=h},270:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.AtomSet=void 0;var c=n(502),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.prototype.getDrawnElements=function(){var t,e,n=this;if(this.drawnElements)return this.drawnElements;this.drawnElements=[];var o={},r=function(t){o[t.id]||(o[t.id]=!0,n.drawnElements.push(t))},a=this.getDrawnElement();a&&r(a);try{for(var s=i(this.getDown()),l=s.next();!l.done;l=s.next()){(h=l.value).getDrawnElements().forEach(r),(a=h.getDrawnElement())&&r(a)}}catch(e){t={error:e}}finally{try{l&&!l.done&&(e=s.return)&&e.call(s)}finally{if(t)throw t.error}}for(var u=this.getAnnotation().querySelectorAll(\"component bond,passive\"),p=0;p<u.length;p++){var h,f=(0,c.getTextContent)(u[p]);(h=this.getDiagram().get(f)).getDrawnElements().forEach(r),(a=h.getDrawnElement())&&r(a)}return this.drawnElements},e}(n(736).NeighbourHood);e.AtomSet=a},280:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Bond=void 0;var i=n(502),c=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ends=[],e}return r(e,t),e.prototype.complete=function(){for(var t=this.getAnnotation().querySelectorAll(\"component > atom,active\"),e=0,n=void 0;n=t[e];e++){var o=this.getDiagram().get((0,i.getTextContent)(n));o&&this.ends.push(o)}},e}(n(736).NeighbourHood);e.Bond=c},285:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.Languages=void 0;var r=n(225),i=n(406),c=function(){function t(t){this.cmlDocument=t,this.languages={},this.insertLanguages(),this.active=this.defaultActive()}return t.createLanguages=function(e){return 0===Array.from(e.querySelectorAll(\"messages\")).filter(function(t){return t.childNodes.length}).length?null:new t(e)},t.prototype.insertLanguages=function(){var t,e,n=this.cmlDocument.querySelectorAll(\"messages\");try{for(var r=o(Array.from(n)),c=r.next();!c.done;c=r.next()){var a=c.value,s=a.querySelector(\"language\");s&&(this.languages[s.textContent]=new i.Language(a))}}catch(e){t={error:e}}finally{try{c&&!c.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}},t.prototype.updateActive=function(){this.active=this.languages[r.config.ACTIVE_LANG]?r.config.ACTIVE_LANG:this.defaultActive()},t.prototype.defaultActive=function(){return this.languages[r.config.VOICE_LANG]?r.config.VOICE_LANG:Object.keys(this.languages)[0]},t.prototype.translate=function(t){return this.languages[this.active].translate(t)},t.prototype.nextLanguage=function(){var t=Object.keys(this.languages),e=t.indexOf(this.active)+1;this.active=t.length>e?t[e]:t[0],r.config.ACTIVE_LANG=this.active},t}();e.Languages=c},297:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Via=void 0;var o=n(502),r=function(){function t(t,e){this.neighbour_=t,this.annotation_=e,this.type_=o.getAttribute(this.annotation_,o.attr.TYPE);var n=o.children(this.annotation_);this.connectedBy_=this.getConnectedBy_(n[0]),\"Connecting bond\"===this.type_&&\"external\"===this.neighbour_.location&&(this.neighbour_.from().link=!0),void 0!==this.connectedBy_&&(this.connectedBy_.link=!0),this.position_=parseInt(o.getTextContent(n[1]),10)}return t.prototype.getDrawnElements=function(){return this.connectedBy_.getDrawnElements()||[]},t.prototype.getType=function(){return this.type_||\"\"},t.prototype.getPosition=function(){return this.position_},t.prototype.getConnectedBy_=function(t){var e=this.neighbour_.from().getDiagram(),n=o.getTextContent(t),r=e.get(n);return r||e.get(n+this.neighbour_.from().getId())},t}();e.Via=r},343:function(t,e){var n=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.Bbox=void 0;var o=function(){function t(t,e,n,o){this.x=t,this.y=e,this.width=n,this.height=o}return t.fromSvgRect=function(e){return new t(e.x,e.y,e.width,e.height)},t.fromSvgViewBox=function(e){return new t(e.baseVal.x,e.baseVal.y,e.baseVal.width,e.baseVal.height)},t.getClipBox=function(t,e){var n=t.getBBox();if(0!==n.x||0!==n.y||0!==n.width||0!==n.height)return n;var o=t.cloneNode(!0);return e.appendChild(o),n=o.getBBox(),e.removeChild(o),n},t.combineClips=function(e,n){var o=e.map(function(e){return t.fromSvgRect(t.getClipBox(e,n))});if(1===o.length)return o[0];var r=o[0];return o.slice(1).reduce(function(t,e){return t.combine(e)},r)},t.getBboxStandard=function(t){var e,n,o,r,i,c=t.getBBox();if(0===c.x&&0===c.y&&0===c.width&&0===c.height&&t.childNodes&&(null===(e=t.childNodes[0])||void 0===e?void 0:e.transform)){var a=t.childNodes[0],s=void 0,l=void 0,u=void 0,p=void 0;if(a.x&&a.y&&a.width&&a.height)s=a.x.baseVal.value,l=a.y.baseVal.value,u=a.width.baseVal.value,p=a.height.baseVal.value;else{var h=a.getBBox();s=(null===(n=h.baseVal)||void 0===n?void 0:n.x)||h.x,l=(null===(o=h.baseVal)||void 0===o?void 0:o.y)||h.y,u=(null===(r=h.baseVal)||void 0===r?void 0:r.width)||h.width,p=(null===(i=h.baseVal)||void 0===i?void 0:i.height)||h.height}var f=t.ownerSVGElement.createSVGPoint(),v=a.transform.baseVal;f.x=s,f.y=l;for(var d=v.length-1;d>=0;d--)f=f.matrixTransform(v.getItem(d).matrix);c.x=f.x,c.y=f.y,c.width=u,c.height=p}return c},t.combineBboxes=function(e){var n=new Set,o=function(e){var o=t.getBboxStandard(e);return e.querySelectorAll(\"*[clip-path]\").forEach(function(t){return n.add(t)}),o},r=t.fromSvgRect(o(e[0]));if(1===e.length)return r=t.performClipping(r,n);var i=e.slice(1).reduce(function(t,e){return t.combine(o(e))},r);return i=t.performClipping(i,n)},t.performClipping=function(e,o){var r,i;if(!o.size)return e;var c=o.values().next().value.ownerSVGElement,a=function(t){var e=new Map;return t.querySelectorAll(\"defs\").forEach(function(t){t.childNodes.forEach(function(t){t instanceof SVGElement&&e.set(t.id,t)})}),e}(c),s=new Set;try{for(var l=n(o),u=l.next();!u.done;u=l.next()){var p=u.value.getAttribute(\"clip-path\").match(/^url\\(#(.*)\\)/),h=p&&a.get(p[1]);h&&s.add(h)}}catch(t){r={error:t}}finally{try{u&&!u.done&&(i=l.return)&&i.call(l)}finally{if(r)throw r.error}}return s.forEach(function(n){var o=Array.from(n.childNodes).filter(function(t){return t.getBBox}),r=t.combineClips(o,c);e=e.intersect(r)}),e},t.prototype.add=function(e){return new t(this.x+e.x,this.y+e.y,this.width+e.width,this.height+e.height)},t.prototype.difference=function(t,e,n){var o=this.add(t.scale(-1));return e&&(o.x=o.x-e/2,o.width=o.width+e),n&&(o.y=o.y-n/2,o.height=o.height+n),o},t.prototype.scale=function(e){return new t(this.x*e,this.y*e,this.width*e,this.height*e)},t.prototype.combine=function(e){var n=Math.min(this.x,e.x),o=Math.min(this.y,e.y);return new t(n,o,Math.max(this.x+this.width,e.x+e.width)-n,Math.max(this.y+this.height,e.y+e.height)-o)},t.prototype.intersect=function(e){var n=Math.max(this.x,e.x),o=Math.max(this.y,e.y);return new t(n,o,Math.min(this.x+this.width,e.x+e.width)-n,Math.min(this.y+this.height,e.y+e.height)-o)},t.prototype.viewBoxValue=function(){return this.x+\" \"+this.y+\" \"+this.width+\" \"+this.height},t}();e.Bbox=o},406:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Language=void 0;var o=n(502),r=function(){function t(t){this.cmlDocument=t,this.messages={},this.language=this.getLanguage(),this.insertMessages()}return t.prototype.getLanguage=function(){var t=this.cmlDocument.querySelector(\"language\");return t?t.textContent:\"\"},t.prototype.insertMessages=function(){for(var t=this.cmlDocument.querySelectorAll(\"message\"),e=0,n=void 0;n=t[e];e++)this.messages[(0,o.getAttribute)(n,\"msg\")]=n.textContent},t.prototype.translate=function(t){return this.messages[t]},t}();e.Language=r},428:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},r=this&&this.__read||function(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),c=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)c.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return c};Object.defineProperty(e,\"__esModule\",{value:!0}),e.ViewBox=e.ZoomOptions=void 0;var i=n(502),c=n(343),a=function(){};e.ZoomOptions=a;var s=function(){function t(t){this.svg=t,this.focusgroups=new Map,this.defaultZoomOptions={xPad:this.svg.width.baseVal.value/15,yPad:this.svg.height.baseVal.value/15,duration:100,delay:10,wait:0,callback:function(){}},this.reset()}return t.prototype.reset=function(){var t=c.Bbox.fromSvgRect(this.svg.getBBox()),e=new Set(Array.from(this.svg.querySelectorAll(\"svg *[clip-path]\")));c.Bbox.performClipping(t,e)},t.prototype.setClass=function(t,e){for(var n=0;n<t.length;n++)i.classList.add(t[n],e)},t.prototype.clearClass=function(t,e){for(var n=0;n<t.length;n++)i.classList.remove(t[n],e)},t.prototype.clearActive=function(){var t,e;try{for(var n=o(this.focusgroups),i=n.next();!i.done;i=n.next()){var c=r(i.value,2),a=c[0],s=c[1];this.clearClass(s,a)}}catch(e){t={error:e}}finally{try{i&&!i.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this.focusgroups.clear()},t.prototype.select=function(t,e){var n=e||\"cacc-active\",o=this.focusgroups.get(n);o&&this.clearClass(o,n),this.setClass(t,n),this.focusgroups.set(n,t)},t.prototype.zoom=function(t,e){var n=this.focusgroups.get(t);n&&0!==n.length&&this.setViewBox_(c.Bbox.combineBboxes(n),e)},t.prototype.setViewBox_=function(t,e){var n=this;if(e){for(var o=this.completeZoomOptions_(e),r=this.retrieveViewBox_(),i=t.difference(r,o.xPad,o.yPad),c=Math.ceil(o.duration/o.delay),a=i.scale(1/c),s=function(t){return function(){return n.svg.setAttribute(\"viewBox\",r.add(a.scale(t)).viewBoxValue())}},l=1;l<=c;l++)setTimeout(s(l),l*o.delay);o.callback&&setTimeout(o.callback,o.wait+o.duration)}},t.prototype.completeZoomOptions_=function(t){return t?Object.assign({},this.defaultZoomOptions,t):this.defaultZoomOptions},t.prototype.retrieveViewBox_=function(){try{return c.Bbox.fromSvgViewBox(this.svg.viewBox)}catch(t){return new c.Bbox(0,0,0,0)}},t}();e.ViewBox=s},441:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.CML=void 0;var r=n(187),i=n(285),c=n(528),a=n(270),s=n(280),l=function(){function t(t){this.cmlDocument=t,this.root=null,this.map=new r.Diagram(i.Languages.createLanguages(t)),this.initMap_()}return t.prototype.getMap=function(){return this.map},t.prototype.getRootElement=function(){return this.root||(this.root=this.map.find(function(t){return!(t instanceof s.Bond||t.up)})),this.root},t.prototype.initMap_=function(){var t,e,n=Array.from(this.cmlDocument.querySelectorAll(\"annotations > annotation\"));try{for(var r=o(n),i=r.next();!i.done;i=r.next()){var l=i.value,u=l.firstElementChild;if(u){var p=void 0;switch(u.localName.toLowerCase()){case\"atom\":case\"active\":p=new c.Atom(l,this.map),this.map.set(p.getKey(),p);break;case\"bond\":case\"passive\":p=new s.Bond(l,this.map),this.map.set(p.getId(),p);break;case\"atomset\":case\"grouped\":p=new a.AtomSet(l,this.map),this.map.set(p.getId(),p)}}}}catch(e){t={error:e}}finally{try{i&&!i.done&&(e=r.return)&&e.call(r)}finally{if(t)throw t.error}}this.map.forEach(function(t){return t.complete()})},t}();e.CML=l},502:(t,e)=>{function n(t){return e.prefix_+\"-\"+t}Object.defineProperty(e,\"__esModule\",{value:!0}),e.noMove=e.attr=e.hasSpeech=e.getDocument=e.children=e.classList=e.getAttribute=e.getTextContent=e.toggleExpertMode=e.EXPERT_MODE=e.toArray=e.getId=e.idCounter_=e.addPrefix=e.prefix_=void 0,e.prefix_=\"cacc\",e.addPrefix=n,e.idCounter_=0,e.getId=function(){return n(\"Id-\"+e.idCounter_++)},e.toArray=function(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n]);return e},e.EXPERT_MODE=!0,e.toggleExpertMode=function(){e.EXPERT_MODE=!e.EXPERT_MODE},e.getTextContent=function(t){var e=t.textContent;return\" \"!==e&&(e=e.replace(/^\\s*/,\"\")),e},e.getAttribute=function(t,e){return t.getAttribute(e)||t.getAttributeNS(\"http://www.chemaccess.org/sre-schema\",e)||t.getAttribute(\"sre:\"+e)},function(t){function e(t,e){t.classList&&t.classList.add?t.classList.add(e):t.className?o(t.className)?t.className.baseVal+=\" \"+e:t.className+=\" \"+e:t.className=e}function n(t,e){if(t.classList&&t.classList.remove&&t.classList.remove(e),t.className){var n=t.className;o(n)?n.baseVal=n.baseVal.replace(\" \"+e,\"\"):t.className=t.className.replace(\" \"+e,\"\")}}function o(t){return\"string\"!=typeof t}t.add=e,t.remove=n,t.toggle=function(t,r){t.classList&&t.classList.toggle?t.classList.toggle(r):t.className?!function(t,e){return-1!==(o(t)?t.baseVal:t).search(e)}(t.className,r)?e(t,r):n(t,r):t.className=r}}(e.classList||(e.classList={})),e.children=function(t){if(t.children)return Array.prototype.slice.call(t.children);for(var e=[],n=t.childNodes,o=0,r=void 0;r=n[o];o++)1===r.nodeType&&e.push(r);return e},e.getDocument=function(){var t;return(null===(t=null===window||void 0===window?void 0:window.top)||void 0===t?void 0:t.document)||document},e.hasSpeech=function(){return!(\"undefined\"==typeof speechSynthesis)},function(t){t.EXPERT_SPEECH=\"speech2\",t.SIMPLE_SPEECH=\"speech\",t.LOCATION=\"location\",t.TYPE=\"type\"}(e.attr||(e.attr={})),e.noMove=function(){var t=new AudioContext,e=t.createOscillator();e.frequency.value=300,e.connect(t.destination),e.start(t.currentTime),e.stop(t.currentTime+.05)}},516:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},r=this&&this.__read||function(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),c=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)c.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return c};Object.defineProperty(e,\"__esModule\",{value:!0}),e.Base=void 0;var i=n(765),c=n(502),a=n(854),s=n(225),l=n(626);!function(t){t.molMap={},t.init=function(e){var n,u,p,h;void 0===e&&(e=!1);var f=l.forDocument();if(Object.keys(f).length>0&&(a.documentCmlStyle(),s.config.SUBTITLE=function(){var t=c.getDocument(),e=t.createElement(\"p\");e.classList.add(\"explorer\"),e.classList.add(\"cacc-message\");var n=a.getScheme_(1);e.style.cssText+=\"position:fixed;left:0;bottom:0;\"+\"background-color: \".concat(n.bkd,\"; color: \").concat(n.frgd),a.regionStyle_(t.body),s.config.SUB_VISIBLE||e.classList.add(\"cacc-text-invisible\");return e}()),e){try{for(var v=o(Object.values(t.molMap)),d=v.next();!d.done;d=v.next()){d.value.removeEvents()}}catch(t){n={error:t}}finally{try{d&&!d.done&&(u=v.return)&&u.call(v)}finally{if(n)throw n.error}}t.molMap={}}try{for(var g=o(Object.entries(f)),y=g.next();!y.done;y=g.next()){var m=r(y.value,2),E=m[0],b=m[1];t.molMap[E]||(t.molMap[E]=new i.Container(E,b))}}catch(t){p={error:t}}finally{try{y&&!y.done&&(h=g.return)&&h.call(g)}finally{if(p)throw p.error}}}}(e.Base||(e.Base={}))},528:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.Atom=void 0;var c=n(502),a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.speech=\"\",e.links=!1,e}return r(e,t),e.prototype.getSpeech=function(){if(this.link&&this.links)return this.speakLinks();var t=[];this.neighbourhood.forEach(function(e){\"external\"!==e.location&&t.push(e.getSpeech())});var e=this.getMessage();return this.speech=this.getDiagram().translate(e)+\" \"+t.join(\" \"),this.speech},e.prototype.getDrawnElements=function(){if(this.drawnElements)return this.drawnElements;this.drawnElements=[];var t=this.getDrawnElement();t&&this.drawnElements.push(t);for(var e=this.getAnnotation().querySelectorAll(\"component *\"),n=0;n<e.length;n++){(t=this.getDiagram().get((0,c.getTextContent)(e[n])).getDrawnElement())&&-1===this.drawnElements.indexOf(t)&&this.drawnElements.push(t)}return this.drawnElements},e.prototype.getUpperNeighbour_=function(){var t,e;try{for(var n=i(this.up.neighbourhood),o=n.next();!o.done;o=n.next()){var r=o.value;if(-1!==r.via().map(function(t){return t.getPosition()}).indexOf(this.position))return r}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}return null},e.prototype.speakLinks=function(){var t=this.getUpperNeighbour_(),e=t?t.getSpeech():\"\";if(e)return e;var n=[];this.neighbourhood.forEach(function(t){\"external\"===t.location&&n.push(t.getSpeech())});var o=this.getMessage();return this.speech=this.getDiagram().translate(o)+\" \"+n.join(\" \"),this.speech},e}(n(736).NeighbourHood);e.Atom=a},626:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.fromUri_=e.getUrlParameters_=e.getParam_=e.getData_=e.getMol_=e.forDocument=void 0;var r=n(196),i=0;function c(t){if(t.querySelector(\"div.svg\")){t.setAttribute(\"has-svg\",\"true\");var e=t.querySelector(\"div.svg > svg\");r.rewriteTransformations(e),r.rewriteUseElements(e)}else a(t,\"svg\",\"data-src\",\".svg\");t.querySelector(\"div.cml\")?t.setAttribute(\"has-cml\",\"true\"):a(t,\"cml\",\"data-cml\",\".xml\")}function a(t,e,n,o){var i=t.getAttribute(n)||s(t,n,o);i?u(i,function(n){if(n){t.setAttribute(\"has-\"+e,\"true\");var o=document.createElement(\"div\");o.classList.add(e),\"svg\"===e&&(r.rewriteTransformations(n),r.rewriteUseElements(n)),o.appendChild(n.documentElement),t.appendChild(o)}else t.setAttribute(\"has-\"+e,\"false\")}):t.setAttribute(\"has-\"+e,\"false\")}function s(t,e,n){if(!t.id)return null;var o=l()[t.id];return o?(o+=n,t.setAttribute(e,o),o):null}function l(){for(var t,e={},n=window.location.href.slice(window.location.href.indexOf(\"?\")+1).split(\"&\"),o=0;o<n.length;o++)e[(t=n[o].split(\"=\"))[0]]=t[1];return e}function u(t,e){if(\"file:\"!==location.protocol){var n=new DOMParser,o=new XMLHttpRequest;o.onreadystatechange=function(){4===o.readyState&&200===o.status&&e(n.parseFromString(o.responseText,\"text/xml\"))},o.open(\"GET\",t,!0),o.send(null)}else e(null)}e.forDocument=function(t){var e,n,r=t||document,a=Array.from(r.querySelectorAll(\"div.ChemAccess-element\")),s={};try{for(var l=o(a),u=l.next();!u.done;u=l.next()){var p=u.value;c(p),p.id||(p.id=\"ChemAccess-element\"+i++),s[p.id]=p}}catch(t){e={error:t}}finally{try{u&&!u.done&&(n=l.return)&&n.call(l)}finally{if(e)throw e.error}}return s},e.getMol_=c,e.getData_=a,e.getParam_=s,e.getUrlParameters_=l,e.fromUri_=u},736:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.NeighbourHood=void 0;var i=n(502),c=n(108),a=n(914),s=function(t){function e(e,n){var o=t.call(this,e,n)||this;return o.neighbourhood=[],o}return r(e,t),e.prototype.complete=function(){t.prototype.complete.call(this);for(var e=this.getAnnotation().querySelectorAll(\"neighbours neighbour\"),n=0,o=void 0;o=e[n];n++)this.neighbourhood.push(new a.Neighbour(this,o))},e.prototype.getSpeech=function(){return this.getDiagram().translate(this.getMessage())},e.prototype.getMessage=function(){var t=i.getAttribute(this.getAnnotation(),i.attr.EXPERT_SPEECH),e=i.getAttribute(this.getAnnotation(),i.attr.SIMPLE_SPEECH);return i.EXPERT_MODE?t||e:e||t},e.prototype.getNeighbours=function(){return this.neighbourhood},e}(c.ChemObj);e.NeighbourHood=s},765:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),i=this&&this.__awaiter||function(t,e,n,o){return new(n||(n=Promise))(function(r,i){function c(t){try{s(o.next(t))}catch(t){i(t)}}function a(t){try{s(o.throw(t))}catch(t){i(t)}}function s(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(c,a)}s((o=o.apply(t,e||[])).next())})},c=this&&this.__generator||function(t,e){var n,o,r,i,c={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(s){return function(a){if(n)throw new TypeError(\"Generator is already executing.\");for(;i&&(i=0,a[0]&&(c=0)),c;)try{if(n=1,o&&(r=2&a[0]?o.return:a[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,a[1])).done)return r;switch(o=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return c.label++,{value:a[1],done:!1};case 5:c.label++,o=a[1],a=[0];continue;case 7:a=c.ops.pop(),c.trys.pop();continue;default:if(!(r=c.trys,(r=r.length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){c.label=a[1];break}if(6===a[0]&&c.label<r[1]){c.label=r[1],r=a;break}if(r&&c.label<r[2]){c.label=r[2],c.ops.push(a);break}r[2]&&c.ops.pop(),c.trys.pop();continue}a=e.call(t,c)}catch(t){a=[6,t],o=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}},a=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")},s=this&&this.__read||function(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),c=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)c.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return c};Object.defineProperty(e,\"__esModule\",{value:!0}),e.Container=void 0;var l=n(854),u=n(38),p=n(225),h=n(221),f=n(216),v=n(981),d=n(428),g=function(t){function e(e,n){var o=t.call(this,null)||this;return o.key=e,o.mol=n,o.name=\"Container\",o.controllers=[],o.initElement().then(function(){o.viewBox=new d.ViewBox(o.molecule.svg),o.controllers=o.controllers.concat(f.ControllerFactory.get(o)),o.styles=l.moleculeStyle(o.molecule),o.activeElement=o.molecule.cmlStructure.getRootElement(),o.customEvents(),o.getDefaultExplorer()}).catch(function(){console.error(\"Failed to initialize element \".concat(e))}),o}return r(e,t),e.loadElement=function(t){return i(this,void 0,void 0,function(){var e;return c(this,function(n){return e=0,[2,new Promise(function(n,o){var r=function(){t.hasAttribute(\"has-svg\")&&t.hasAttribute(\"has-cml\")?n():e>5?o(t):(e++,setTimeout(r,100))};r()}).catch(function(t){\"true\"!==t.getAttribute(\"has-svg\")&&console.error(\"Failed to load SVG diagram.\"),\"true\"!==t.getAttribute(\"has-cml\")&&console.error(\"Failed to load XML annotation.\")})]})})},e.prototype.initElement=function(){return i(this,void 0,void 0,function(){var t=this;return c(this,function(n){return[2,e.loadElement(this.mol).then(function(){if(\"true\"!==t.mol.getAttribute(\"has-svg\")||\"true\"!==t.mol.getAttribute(\"has-cml\"))return Promise.reject(\"Loading of components failed.\");var e=t.mol.querySelector(\"div.svg\").children[0],n=t.mol.querySelector(\"div.cml\").children[0];return e&&n?(t.mol.setAttribute(\"tabindex\",\"0\"),t.mol.setAttribute(\"role\",\"application\"),e.setAttribute(\"aria-hidden\",\"true\"),n.setAttribute(\"aria-hidden\",\"true\"),t.mol.hasAttribute(\"aria-label\")||t.mol.setAttribute(\"aria-label\",\"Navigatable \".concat(n.tagName)),t.molecule=new v.Molecule(t.mol,e,n),Promise.resolve()):Promise.reject(\"Empty Diagram elements.\")}).catch(function(t){console.error(\"Molecule Structure initialisation failed with:\",t)})]})})},e.prototype.update=function(t){t&&(this.activeElement=t),this.controllers.forEach(function(t){t.active&&t.update()})},e.prototype.activate=function(){this.molecule.svg.parentElement&&(t.prototype.activate.call(this),this.addStyles(),this.controllers.forEach(function(t){return t.activate()}))},e.prototype.deactivate=function(){this.update(this.molecule.cmlStructure.getRootElement()),this.controllers.forEach(function(t){return t.deactivate()}),this.removeStyles(),t.prototype.deactivate.call(this)},e.prototype.replaceStyles=function(t){var e,n;this.removeStyles();try{for(var o=a(t),r=o.next();!r.done;r=o.next()){var i=r.value;this.styles.set(i.className,i)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(e)throw e.error}}this.addStyles()},e.prototype.customEvents=function(){var t,e=this;(null===(t=this.molecule)||void 0===t?void 0:t.node)&&(this.registerEvent(this.molecule.node,u.EventType.KEYDOWN,function(t){return t.keyCode===u.KeyCodes.SPACE&&(e.update(),t.preventDefault(),t.stopPropagation()),!1}),new u.CustomEvent(this.molecule.node,u.EventType.KEYDOWN,function(t){return e.defaultExplorer&&!e.active&&t.keyCode===u.KeyCodes.ENTER&&(e.defaultExplorer.active=!0,e.activate(),t.preventDefault(),t.stopPropagation()),!1}).add(),new u.CustomEvent(this.molecule.node,u.EventType.CLICK,function(t){return e.defaultExplorer&&!e.active&&(e.defaultExplorer.active=!0,e.activate(),t.stopPropagation()),!1}).add())},e.prototype.getDefaultExplorer=function(){this.defaultExplorer=this.controllers.find(function(t){return t.name===p.explorers.KEY}),this.defaultExplorer||(this.defaultExplorer=this.controllers.find(function(t){return t.name===p.explorers.MENU}))},e.prototype.addStyles=function(){var t,e;try{for(var n=a(this.styles),o=n.next();!o.done;o=n.next()){var r=s(o.value,2)[1];this.molecule.node.appendChild(r)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},e.prototype.removeStyles=function(){var t,e;try{for(var n=a(this.styles),o=n.next();!o.done;o=n.next()){var r=s(o.value,2)[1];try{this.molecule.node.removeChild(r)}catch(t){}}}catch(e){t={error:e}}finally{try{o&&!o.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}},e}(h.AbstractController);e.Container=g},778:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.MenuExplorer=e.KeyExplorer=e.AbstractExplorer=void 0;var i=n(502),c=n(38),a=n(225),s=function(t){function e(e){var n=t.call(this,e)||this;return n.container=e,n.setupControls(),n}return r(e,t),e.prototype.activate=function(){this.active&&(this.container.update(),this.addControls(),t.prototype.activate.call(this))},e.prototype.deactivate=function(){this.active&&(t.prototype.deactivate.call(this),this.removeControls())},e.prototype.addEvents=function(){this.active&&t.prototype.addEvents.call(this)},e.prototype.setupControls=function(){},e.prototype.addControls=function(){},e.prototype.removeControls=function(){},e.prototype.update=function(){},e.prototype.customEvents=function(){var t=this,e=this.container.molecule.node;new c.CustomEvent(e,c.EventType.KEYDOWN,function(e){return t.active&&e.keyCode===c.KeyCodes.ESC&&t.container.deactivate(),t.container.active||e.keyCode===t.getActivationKey()&&(t.active=!0,t.container.activate(),e.preventDefault()),e.stopPropagation(),!1}).add()},e}(n(221).AbstractController);e.AbstractExplorer=s;var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.explorers.KEY,e}return r(e,t),e.prototype.setupControls=function(){var t=this,e=function(e,n){var o=n();o.length>0?t.container.update(o[0]):(0,i.noMove)(),e.preventDefault()};this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(n){switch(n.keyCode){case c.KeyCodes.DOWN:case c.KeyCodes.D:e(n,function(){return t.container.activeElement.getDown()});break;case c.KeyCodes.UP:case c.KeyCodes.E:e(n,function(){return t.container.activeElement.getUp()});break;case c.KeyCodes.RIGHT:case c.KeyCodes.F:e(n,function(){return t.container.activeElement.getRight()});break;case c.KeyCodes.LEFT:case c.KeyCodes.S:e(n,function(){return t.container.activeElement.getLeft()})}return n.stopPropagation(),!1})},e.prototype.getActivationKey=function(){return c.KeyCodes.A},e}(s);e.KeyExplorer=l;var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.explorers.MENU,e}return r(e,t),e.prototype.setupControls=function(){var t=this,e=this.container.molecule.createElement(\"ul\");e.classList.add(\"cacc-controls\"),e.setAttribute(\"role\",\"navigation\"),this.control_=e;var n=function(e,n){var o=n();o.length>0?t.container.update(o[0]):(0,i.noMove)()},o=function(e,o){t.registerEvent(e,c.EventType.KEYDOWN,function(t){return t.keyCode!==c.KeyCodes.ENTER&&t.keyCode!==c.KeyCodes.SPACE||(n(0,o),t.preventDefault(),t.stopPropagation()),!1}),t.registerEvent(e,c.EventType.CLICK,function(t){return n(0,o),t.stopPropagation(),!1})};o(this.makeButton_(\"Down\",e),function(){return t.container.activeElement.getDown()}),o(this.makeButton_(\"Up\",e),function(){return t.container.activeElement.getUp()}),o(this.makeButton_(\"Next\",e),function(){return t.container.activeElement.getRight()}),o(this.makeButton_(\"Previous\",e),function(){return t.container.activeElement.getLeft()})},e.prototype.addControls=function(){var t=this.container.molecule.node,e=t.querySelector(\".cacc-message\");e?t.insertBefore(this.control_,e):t.appendChild(this.control_)},e.prototype.removeControls=function(){this.control_.parentNode.removeChild(this.control_)},e.prototype.getActivationKey=function(){return c.KeyCodes.B},e.prototype.makeButton_=function(t,e){var n=this.container.molecule.createElement(\"li\");return n.setAttribute(\"role\",\"button\"),n.setAttribute(\"aria-controls\",this.container.molecule.node.getAttribute(\"id\")),n.classList.add(\"cacc-button\"),n.setAttribute(\"tabindex\",\"0\"),n.setAttribute(\"title\",t),n.appendChild(document.createTextNode(t)),e.appendChild(n),n},e}(s);e.MenuExplorer=u},853:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.StepMagnifier=e.SimpleMagnifier=e.DummyMagnifier=e.AbstractMagnifier=void 0;var i=n(38),c=n(225),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),Object.defineProperty(e.prototype,\"active\",{get:function(){return this._active&&c.config.MAG_ACTIVE===this.name},set:function(t){this._active=t},enumerable:!1,configurable:!0}),e.prototype.update=function(){this.container.viewBox.select(this.container.activeElement.getDrawnElements())},e.prototype.deactivate=function(){this.active&&(this.container.viewBox.clearActive(),this.container.viewBox.reset(),t.prototype.deactivate.call(this))},e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,i.EventType.KEYDOWN,function(e){return e.keyCode===t.getActivationKey()&&c.config.MAG_ACTIVE!==t.name&&(c.config.MAG_ACTIVE=t.name,t.update()),e.stopPropagation(),!1})},e}(n(221).AbstractController);e.AbstractMagnifier=a;var s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=c.magnifiers.DUMMY,e}return r(e,t),e.prototype.getActivationKey=function(){return i.KeyCodes.N},e.prototype.update=function(){this.container.viewBox.reset(),t.prototype.update.call(this)},e}(a);e.DummyMagnifier=s;var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=c.magnifiers.SIMPLE,e}return r(e,t),e.prototype.update=function(){this.container.viewBox.select(this.container.activeElement.getDrawnElements()),this.container.viewBox.zoom(\"cacc-active\")},e.prototype.getActivationKey=function(){return i.KeyCodes.COMMA},e}(a);e.SimpleMagnifier=l;var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=c.magnifiers.STEP,e.lastActive=null,e}return r(e,t),e.prototype.update=function(){var t=this.container.activeElement,e=this.container.viewBox,n=this.lastActive?this.lastActive.getDrawnElements():[];this.container.viewBox.select(t.getDrawnElements(),\"cacc-almost\"),e.select(t.getDrawnElements().concat(n),\"cacc-dummy\"),this.lastActive=t,e.zoom(\"cacc-dummy\",{duration:250,delay:25,wait:300,callback:function(){e.select([],\"cacc-almost\"),e.select(t.getDrawnElements(),\"cacc-active\"),e.zoom(\"cacc-active\",{duration:250,delay:25,wait:300})}})},e.prototype.getActivationKey=function(){return i.KeyCodes.M},e}(a);e.StepMagnifier=u},854:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.addStyle=e.replaceStyle_=e.removeStyle_=e.svgForegroundStyle_=e.svgBackgroundStyle_=e.svgHighlightStyle_=e.regionStyle_=e.svgBaseStyle_=e.nodeBackgroundStyle_=e.pickScheme=e.moleculeStyle=e.getScheme_=e.colorSchemes_=e.toggleMonochrome=e.toggleTextVisibility=e.documentCmlStyle=void 0;var r=n(502),i=n(225);function c(t){return e.colorSchemes_[t%e.colorSchemes_.length]}function a(t,e){var n=c(e);return[p(t,n.bkd),s(t,n.bkd),h(t,n.frgd),u(t,n.active,n.almost)]}function s(t,e){var n=\"\";return f(n+=\"div.\".concat(t.node.id,\" { background-color: \").concat(e,\"; }\"),\"cacc-general-background\")}function l(t){var e=\"svg.\"+t.id,n=\"\";return n+=\"\".concat(e,\" { overflow: hidden; }\"),n+=\"\".concat(e,\" text tspan[baseline-shift] { font-weight: 200; font-size: 13px; }\"),n+=\"\".concat(e,\" line, svg rect { stroke-width: 1.0;  stroke-linecap: round; }\"),n+=\"\".concat(e,\" line.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" line { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" line.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" line { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" g.\").concat(\"cacc-active\",\" text { font-weight: bold; }\"),n+=\"\".concat(e,\" g#gridSVG g.\").concat(\"cacc-active\",\" text { font-weight: bold; }\"),n+=\"ul.\".concat(\"cacc-controls\",\" { list-style-type: none; }\"),n+=\"\".concat(e,\" polyline.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" polyline { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" polyline.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" polyline { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" polygon.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" polygon { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" polygon.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" polygon { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" path.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" path { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" path.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" path { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" rect.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" rect { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" rect.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" rect { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" circle.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" circle { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" circle.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" circle { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" ellipse.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" ellipse { stroke-width: 3.0; }\"),n+=\"\".concat(e,\" ellipse.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" ellipse { stroke-width: 2.0; }\"),n+=\"\".concat(e,\" use.\").concat(\"cacc-active\",\", svg g.\").concat(\"cacc-active\",\" use { stroke-width: 3.0; }\"),f(n+=\"\".concat(e,\" use.\").concat(\"cacc-almost\",\", svg g.\").concat(\"cacc-almost\",\" use { stroke-width: 2.0; }\"),\"cacc-base\")}function u(t,e,n){var o=\"svg.\"+t.id,r=\"\";return r+=\"\".concat(o,\" line.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" line { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" line.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" line { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" g.\").concat(\"cacc-active\",\" text { fill: \").concat(e,\"; }\"),r+=\"\".concat(o,\" g.\").concat(\"cacc-almost\",\" text { fill: \").concat(n,\"; }\"),r+=\"\".concat(o,\" g#gridSVG g.\").concat(\"cacc-active\",\" text { fill: \").concat(e,\"; }\"),r+=\"\".concat(o,\" g#gridSVG g.\").concat(\"cacc-almost\",\" text { fill: \").concat(n,\"; }\"),r+=\"\".concat(o,\" polyline.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" polyline { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" polyline.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" polyline { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" polygon.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" polygon { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" polygon.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" polygon { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" path.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" path { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" path.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" path { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" rect.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" rect { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" rect.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" rect { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" circle.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" circle { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" circle.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" circle { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" ellipse.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" ellipse { stroke: \").concat(e,\"; }\"),r+=\"\".concat(o,\" ellipse.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" ellipse { stroke: \").concat(n,\"; }\"),r+=\"\".concat(o,\" use.\").concat(\"cacc-active\",\", g.\").concat(\"cacc-active\",\" use { stroke: \").concat(e,\"; }\"),f(r+=\"\".concat(o,\" use.\").concat(\"cacc-almost\",\", g.\").concat(\"cacc-almost\",\" use { stroke: \").concat(n,\"; }\"),\"cacc-color-highlight\")}function p(t,e){var n=\"svg.\"+t.id,o=\"\";return o+=\"\".concat(n,\" { background-color: \").concat(e,\"; }\"),o+=\"\".concat(n,\" g.atom rect { stroke: \").concat(e,\"; fill: \").concat(e,\"; }\"),o+=\"div.container { background-color: \".concat(e,\"; }\"),o+=\"p.\".concat(t.id,\".\").concat(\"cacc-message\",\" { background-color: \").concat(e,\"; }\"),f(o+=\"p.\".concat(t.id,\".\").concat(\"cacc-message\",\".\").concat(\"cacc-text-invisible\",\" { color: \").concat(e,\"; }\"),\"cacc-color-background\")}function h(t,e){var n=\"svg.\"+t.id,o=\"\";return o+=\"\".concat(n,\" line { stroke: \").concat(e,\"; fill: \").concat(e,\"; }\"),o+=\"\".concat(n,\".\").concat(\"cacc-text-monochrome\",\" text\"),o+=\" { stroke: \".concat(e,\"; fill: \").concat(e,\"; }\"),o+=\"\".concat(n,\" g#gridSVG text { stroke: \").concat(e,\"; fill: \").concat(e,\"; }\"),o+=\"div.container { color: \".concat(e,\"; }\"),o+=\"p.\".concat(t.id,\".\").concat(\"cacc-message\",\" { color: \").concat(e,\"; }\"),o+=\"ul.\".concat(t.id,\".\").concat(\"cacc-controls\",\" { color: \").concat(e,\"; }\"),i.config.POLYLINE&&(o+=\"\".concat(n,\" polyline { stroke: \").concat(e,\"; fill: \").concat(e,\"; }\")),o+=\"\".concat(n,\" polygon { stroke: \").concat(e,\"; fill: \").concat(e,\"; }\"),o+=\"\".concat(n,\" path { stroke: \").concat(e,\"; }\"),o+=\"\".concat(n,\" rect { stroke: \").concat(e,\"; }\"),o+=\"\".concat(n,\" circle { stroke: \").concat(e,\"; }\"),o+=\"\".concat(n,\" ellipse { stroke: \").concat(e,\"; }\"),f(o+=\"\".concat(n,\" use { stroke: \").concat(e,\"; }\"),\"cacc-color-elements\")}function f(t,e){var n=document.createElement(\"style\");return n.setAttribute(\"class\",e),n.innerHTML=t,n}function v(t,e){var n=t.querySelector(\"style.\"+e);return!!n&&(t.removeChild(n),!0)}function d(t,e){t.appendChild(e)}e.documentCmlStyle=function(){document.body&&d(document.body,f(\"div.cml { display:none; }\",\"cacc-cml\"))},e.toggleTextVisibility=function(t){r.classList.toggle(t,\"cacc-text-invisible\")},e.toggleMonochrome=function(t){r.classList.toggle(t,\"cacc-text-monochrome\")},e.colorSchemes_=[{frgd:\"#000\",bkd:\"#fff\",active:\"#fd6\",almost:\"#6df\"},{frgd:\"#fff\",bkd:\"#000\",active:\"#fd6\",almost:\"#6df\"},{frgd:\"#3C3\",bkd:\"#000\",active:\"#fd6\",almost:\"#6df\"},{frgd:\"#ee0\",bkd:\"#00e\",active:\"#4f4\",almost:\"#e3e\"}],e.getScheme_=c,e.moleculeStyle=function(t){var e,n,r=new Map,i=l(t);r.set(i.className,i);try{for(var c=o(a(t,0)),s=c.next();!s.done;s=c.next()){var u=s.value;r.set(u.className,u)}}catch(t){e={error:t}}finally{try{s&&!s.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}return r},e.pickScheme=a,e.nodeBackgroundStyle_=s,e.svgBaseStyle_=l,e.regionStyle_=function(t){d(t,f(\"p.\".concat(\"cacc-message\",\".\").concat(\"cacc-text-invisible\",\" { font-size: 0px; }\"),\"cacc-region\"))},e.svgHighlightStyle_=u,e.svgBackgroundStyle_=p,e.svgForegroundStyle_=h,e.removeStyle_=v,e.replaceStyle_=function(t,e,n){v(t,n),d(t,f(e,n))},e.addStyle=d},875:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Language=e.Expert=e.Detail=e.AbstractSpeech=void 0;var i=n(502),c=n(38),a=n(225),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.prototype.update=function(){},e}(n(221).AbstractController);e.AbstractSpeech=s;var l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.speech.DETAIL,e}return r(e,t),e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(e){return e.keyCode===c.KeyCodes.W&&(t.container.activeElement.link?(t.container.activeElement.links=!0,t.container.update(),t.container.activeElement.links=!1):((0,i.toggleExpertMode)(),t.container.update(),(0,i.toggleExpertMode)())),e.stopPropagation(),!1})},e}(s);e.Detail=l;var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.speech.EXPERT,e}return r(e,t),e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(e){return e.keyCode===c.KeyCodes.X&&((0,i.toggleExpertMode)(),t.container.update()),e.stopPropagation(),!1})},e}(s);e.Expert=u;var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=a.speech.LANGUAGE,e}return r(e,t),e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,c.EventType.KEYDOWN,function(e){e.keyCode===c.KeyCodes.L&&(t.container.molecule.cmlStructure.getMap().nextLanguage()&&t.container.active&&t.container.update());return e.stopPropagation(),!1})},e}(s);e.Language=p},881:function(t,e,n){var o,r=this&&this.__extends||(o=function(t,e){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},o(t,e)},function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});Object.defineProperty(e,\"__esModule\",{value:!0}),e.Speech=e.Subtitle=e.LiveRegion=void 0;var i=n(502),c=n(854),a=n(38),s=n(225),l=function(t){function e(e){var n=t.call(this,e)||this;return n.container=e,n.setupMessage(),n}return r(e,t),e.prototype.setupMessage=function(){var t=this.container.molecule.createElement(\"p\");t.classList.add(\"explorer\"),t.setAttribute(\"aria-live\",\"assertive\"),i.hasSpeech()&&(speechSynthesis.onvoiceschanged=function(){speechSynthesis.getVoices().length&&t.removeAttribute(\"aria-live\")}),t.setAttribute(\"tabindex\",\"-1\"),t.classList.add(\"cacc-message\"),this.message=t},e.prototype.activate=function(){this.active||(this.addMessage(),t.prototype.activate.call(this))},e.prototype.deactivate=function(){this.active&&(t.prototype.deactivate.call(this),this.removeMessage())},e.prototype.removeMessage=function(){var t;null===(t=this.message.parentNode)||void 0===t||t.removeChild(this.message)},e.prototype.update=function(){this.message.textContent=this.container.activeElement.getSpeech()},e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,a.EventType.KEYDOWN,function(e){return e.keyCode===a.KeyCodes.Z&&(t.toggleMessageVisibility(),s.config.MSG_VISIBLE=!s.config.MSG_VISIBLE),e.stopPropagation(),!1})},e.prototype.toggleMessageVisibility=function(){c.toggleTextVisibility(this.message)},e}(n(221).AbstractController);e.LiveRegion=l;var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=s.regions.SUBTITLE,e}return r(e,t),e.prototype.addMessage=function(){this.container.molecule.node.parentNode.appendChild(this.message),s.config.MSG_VISIBLE||this.message.classList.add(\"cacc-text-invisible\")},e}(l);e.Subtitle=u;var p=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.name=s.regions.SPEECH,e}return r(e,t),e.prototype.setupMessage=function(){this.message=s.config.SUBTITLE},e.prototype.addMessage=function(){this.message.parentNode||i.getDocument().body.appendChild(this.message)},e.prototype.customEvents=function(){var t=this;this.registerEvent(this.container.molecule.node,a.EventType.KEYDOWN,function(e){return e.keyCode===a.KeyCodes.V&&(t.toggleMessageVisibility(),s.config.SUB_VISIBLE=!s.config.SUB_VISIBLE),e.stopPropagation(),!1})},e}(l);e.Speech=p},899:function(t,e,n){var o=this&&this.__values||function(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],o=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&o>=t.length&&(t=void 0),{value:t&&t[o++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")};Object.defineProperty(e,\"__esModule\",{value:!0}),e.Sonify=void 0;var r=n(502),i=function(){function t(t){this.path=[],this.points=[],this.context=new AudioContext,this.prepare(t),this.sonifiable=this.path.length}return t.sonify=function(e){var n=e.getAnnotation().querySelectorAll(\"sonification > *\"),o=[];n.length&&(o=Array.from(n).map(function(t){var n=(0,r.getTextContent)(t),o=t.tagName.toLowerCase(),i=n+(\"active\"!==o&&\"sre:active\"!==o?\"\":n===e.getId()?e.getParent():e.getId());return e.getDiagram().get(i)}));var i=new t(o);return i.sonifiable?i.sonify():[]},t.prototype.prepare=function(t){var e,n;try{for(var r=o(t),i=r.next();!i.done;i=r.next()){var c=i.value;if(c.getDrawnElement()){for(var a=c.getDrawnElement().querySelectorAll(\"polyline\"),s=0;s<a.length;s++){var l=a[s];this.path.push(l);for(var u=0;u<l.points.length;u++)console.log(l.points[u]),this.points.push([l.points[u].x,l.points[u].y])}a=c.getDrawnElement().querySelectorAll(\"path\");for(s=0;s<a.length;s++){l=a[s];this.path.push(l);for(u=0;u<l.getTotalLength();u+=1){var p=l.getPointAtLength(u);this.points.push([p.x,p.y])}}a=c.getDrawnElement().querySelectorAll(\"rect\");for(s=0;s<a.length;s++){l=a[s];this.path.push(l),this.points.push([l.x.animVal.value,l.height.animVal.value?l.y.animVal.value+l.height.animVal.value:0])}}}}catch(t){e={error:t}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(e)throw e.error}}},t.prototype.sonifyOld=function(){for(var e=[],n=0;n<this.points.length;n++){var o=this.context.createOscillator();e.push(o),o.frequency.value=this.points[n][1]?t.BASE_FREQUENCY+10*this.points[n][1]:0,o.type=\"sine\",o.connect(this.context.destination);var r=void 0,i=void 0;this.points.length>20?(r=n/10+.01,i=n/10+.1):(r=n/2+.01,i=n/2+.5),o.start(this.context.currentTime+r),o.stop(this.context.currentTime+i)}return e},t.prototype.sonify=function(){var e,n,o=[],r=this.context.createOscillator();o.push(r),r.type=\"sine\",r.connect(this.context.destination);for(var i=0;i<this.points.length;i++)this.points.length>20?(e=i/10+.01,n=i/10):(e=i/2+.01,n=i/2+.5),console.log(e),i?r.frequency.setValueAtTime(this.points[i][1]?t.BASE_FREQUENCY-this.points[i][1]:0,this.context.currentTime+n):(r.frequency.setValueAtTime(t.BASE_FREQUENCY-this.points[i][1],this.context.currentTime),r.start(this.context.currentTime));return r.stop(this.context.currentTime+n),o},t.prototype.smooth=function(){if(this.points.length){for(var e=[this.points[0]],n=0;n<this.points.length-1;n++){for(var o=this.points[n][0],r=this.points[n][1],i=this.points[n+1][0],c=this.points[n+1][1],a=Math.abs(o-i)/t.SMOOTH_VALUE,s=Math.abs(r-c)/t.SMOOTH_VALUE,l=Math.sign(c-r),u=1;u<t.SMOOTH_VALUE;u++)e.push([o+u*a,r+l*u*s]);e.push([i,c])}this.points=e}},t.BASE_FREQUENCY=300,t.SMOOTH_VALUE=4,t}();e.Sonify=i},914:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Neighbour=void 0;var o=n(502),r=n(297),i=function(){function t(t,e){var n=this;this.from_=t,this.annotation_=e,this.speech=null,this.speech2=null;var i=o.children(this.annotation_);this.to_=this.from_.getDiagram().get(o.getTextContent(i[0])),this.location=o.getAttribute(this.annotation_,o.attr.LOCATION),this.via_=i.slice(1).map(function(t){return new r.Via(n,t)})}return t.prototype.from=function(){return this.from_},t.prototype.to=function(){return this.to_},t.prototype.via=function(){return this.via_},t.prototype.getSpeech=function(){return this.from_.getDiagram().translate(this.getMessage())},t.prototype.getMessage=function(){if(o.EXPERT_MODE){if(this.speech2)return this.speech2;if(this.speech2=o.getAttribute(this.annotation_,o.attr.EXPERT_SPEECH),this.speech2)return this.speech2}return this.speech||(this.speech=o.getAttribute(this.annotation_,o.attr.SIMPLE_SPEECH)),this.speech},t}();e.Neighbour=i},981:(t,e,n)=>{Object.defineProperty(e,\"__esModule\",{value:!0}),e.Molecule=void 0;var o=n(502),r=n(441),i=function(){function t(t,e,n){this.node=t,this.svg=e,this.cml=n,this.id=o.getId(),o.classList.add(this.svg,this.id),o.classList.add(this.cml,this.id),this.cmlStructure=new r.CML(this.cml),this.topLevelDescription=this.cmlStructure.getRootElement().getSpeech(),this.combine_()}return t.prototype.createElement=function(t){var e=document.createElement(t);return e.classList.add(this.id),e},t.prototype.combine_=function(){var t=this;this.cmlStructure.getMap().forEach(function(e){var n=t.svg.getElementById(e.getId());n&&e.setDrawnElement(n)})},t}();e.Molecule=i}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var i=e[o]={exports:{}};return t[o].call(i.exports,i,i.exports,n),i.exports}var o={};return(()=>{var t=o;Object.defineProperty(t,\"__esModule\",{value:!0}),t.version=t.Config=t.Base=void 0;var e=n(225),r=n(516);t.Base=r.Base,t.Config=e.config,t.version=e.version})(),o})());"
  },
  {
    "path": "js/knowl.js",
    "content": "// Code controlling behavior of xref knowls and born hidden knowls\n\n// Assumes this file is loaded as part of initial page\nwindow.addEventListener(\"load\", (event) => {\n  addKnowls(document);\n});\n\nfunction addKnowls(target) {\n  const xrefs = target.querySelectorAll(\"[data-knowl]\");\n  for (const xref of xrefs) {\n    LinkKnowl.initializeXrefKnowl(xref);\n  }\n\n  const bornHiddens = target.querySelectorAll(\".born-hidden-knowl\");\n  for (const bhk of bornHiddens) {\n    const summary = bhk.querySelector(\":scope > summary\");\n    const contents = bhk.querySelector(\":scope > summary + *\");\n    new SlideRevealer(summary, contents, bhk);\n  }\n}\n\n// Used to animate both types of knowls\nclass SlideRevealer {\n  static STATE = Object.freeze({\n    INACTIVE: 0,\n    CLOSING: 1,\n    EXPANDING: 2\n  });\n\n  // triggerElement is the element clicked to open/close\n  // contentElement is the element that will hide/reveal\n  // animatedElement is the element that will grow/shrink as contentElement is modified\n  //    may be the same as contentElement or a parent of it\n  constructor(triggerElement, contentElement, animatedElement) {\n    this.triggerElement = triggerElement;\n    this.contentElement = contentElement;\n    this.animatedElement = animatedElement;\n\n    // mid animation state tracking\n    this.animation = null;\n    this.animationState = SlideRevealer.STATE.INACTIVE;\n    this.animatedElementInlineStyle = null;\n\n    this.triggerElement.addEventListener('click', (e) => this.onClick(e));\n  }\n\n  isBusy() {\n    return this.animationState !== SlideRevealer.STATE.INACTIVE || this.animatedElementInlineStyle !== null;\n  }\n\n  storeAnimatedElementInlineStyle() {\n    if (this.animatedElementInlineStyle !== null) return;\n\n    this.animatedElementInlineStyle = {\n      overflow: this.animatedElement.style.overflow,\n      height: this.animatedElement.style.height,\n      paddingTop: this.animatedElement.style.paddingTop,\n      paddingBottom: this.animatedElement.style.paddingBottom\n    };\n  }\n\n  restoreAnimatedElementInlineStyle() {\n    if (this.animatedElementInlineStyle === null) return;\n\n    this.animatedElement.style.overflow = this.animatedElementInlineStyle.overflow;\n    this.animatedElement.style.height = this.animatedElementInlineStyle.height;\n    this.animatedElement.style.paddingTop = this.animatedElementInlineStyle.paddingTop;\n    this.animatedElement.style.paddingBottom = this.animatedElementInlineStyle.paddingBottom;\n    this.animatedElementInlineStyle = null;\n  }\n\n  onClick(e) {\n    // Stop default behavior from the browser\n    if (e) e.preventDefault();\n\n    if (this.isBusy()) return;\n\n    // Add an overflow on the <details> to avoid content overflowing\n    this.storeAnimatedElementInlineStyle();\n    this.animatedElement.style.overflow = 'hidden';\n\n    // Check if the element is being closed or is already closed\n    if (this.animationState === SlideRevealer.STATE.CLOSING || !this.animatedElement.hasAttribute(\"open\")) {\n      // Force the [open] attributes - allow for similar targetting of xref and born-hidden knowls\n      this.animatedElement.setAttribute(\"open\",\"\");\n      this.triggerElement.setAttribute(\"open\",\"\");\n      this.contentElement.style.display = '';\n      this.contentElement.style.visibility = 'hidden';\n\n      let closedHeight = 0;\n      if (this.animatedElement.contains(this.triggerElement))\n        closedHeight = this.triggerElement.offsetHeight;\n\n      const naturalStyle = window.getComputedStyle(this.animatedElement);\n      const naturalPaddingTop = naturalStyle.paddingTop;\n      const naturalPaddingBottom = naturalStyle.paddingBottom;\n\n      this.animatedElement.style.height = `${closedHeight}px`;\n      this.animatedElement.style.paddingTop = '0px';\n      this.animatedElement.style.paddingBottom = '0px';\n\n      // Trigger the animation to expand or collapse the knowl\n      // We assume content is already rendered and size is accurate.\n      // If not, there may be a jump at the end of the animation when styles are cleared\n      const expandingMeasurements = {\n        fullHeight: this.contentElement === this.animatedElement\n          ? this.contentElement.scrollHeight\n          : closedHeight + this.contentElement.offsetHeight,\n        paddingTop: naturalPaddingTop,\n        paddingBottom: naturalPaddingBottom\n      };\n      this.contentElement.style.visibility = '';\n      this.toggle(true, expandingMeasurements);\n    } else if (this.animationState === SlideRevealer.STATE.EXPANDING || this.animatedElement.hasAttribute(\"open\")) {\n      this.toggle(false);\n    }\n  }\n\n  toggle(expanding, expandingMeasurements = null) {\n    let closedHeight = 0;\n    if (this.animatedElement.contains(this.triggerElement))\n      closedHeight = this.triggerElement.offsetHeight;\n\n    const computedStyle = window.getComputedStyle(this.animatedElement);\n    const fullHeight = expandingMeasurements?.fullHeight ?? closedHeight + this.contentElement.offsetHeight;\n\n    const startHeight = `${expanding ? closedHeight : this.animatedElement.offsetHeight}px`;\n    const endHeight = `${expanding ? fullHeight : closedHeight}px`;\n\n    const currentPaddingTop = computedStyle.paddingTop;\n    const currentPaddingBottom = computedStyle.paddingBottom;\n    const endPaddingTop = expandingMeasurements?.paddingTop ?? currentPaddingTop;\n    const endPaddingBottom = expandingMeasurements?.paddingBottom ?? currentPaddingBottom;\n\n    const startPadTop = expanding ? '0px' : currentPaddingTop;\n    const endPadTop = expanding ? endPaddingTop : '0px';\n    const startPadBottom = expanding ? '0px' : currentPaddingBottom;\n    const endPadBottom = expanding ? endPaddingBottom : '0px';\n\n    // Cancel any existing animation\n    if (this.animation) {\n      this.animation.cancel();\n    }\n\n    // Animate ~400 pixels per second with max of 0.75 second and min of 0.25\n    const animDuration = Math.max( Math.min( (Math.abs(closedHeight - fullHeight) / 400 * 1000), 750), 250);\n\n    // Start animation\n    this.animationState = expanding ? SlideRevealer.STATE.EXPANDING : SlideRevealer.STATE.CLOSING;\n    this.animation = this.animatedElement.animate({\n      height: [startHeight, endHeight],\n      paddingTop: [startPadTop, endPadTop],\n      paddingBottom: [startPadBottom, endPadBottom]\n    }, {\n      duration: animDuration,\n      easing: 'ease-out'\n    });\n\n    this.animation.onfinish = () => { this.onAnimationFinish(expanding); };\n    this.animation.oncancel = () => {\n      this.animationState = SlideRevealer.STATE.INACTIVE;\n      this.restoreAnimatedElementInlineStyle();\n    };\n  }\n\n  onAnimationFinish(isOpen) {\n    // Clear animation state\n    this.animation = null;\n    this.animationState = SlideRevealer.STATE.INACTIVE;\n\n    // Make sure animated element has open (needed for details)\n    if(!isOpen) {\n      this.animatedElement.removeAttribute(\"open\");\n      this.triggerElement.removeAttribute(\"open\");\n    }\n\n    // Clear styles used in animation\n    this.restoreAnimatedElementInlineStyle();\n    if (!isOpen)\n      this.contentElement.style.display = 'none';\n    this.contentElement.style.visibility = '';\n\n    if (isOpen) {\n      let hasCallback = this.contentElement.querySelectorAll(\"[data-knowl-callback]\");\n      hasCallback.forEach((el) => {\n        window[el.getAttribute(\"data-knowl-callback\")](el, open);\n      });\n    }\n  }\n}\n\n\n\n// A LinkKnowl manages a single link based knowl\nclass LinkKnowl {\n  // Used to uniquely identify XrefKnowls\n  static xrefCount = 0;\n\n  // Factory to create an XrefKnowl from a knowl link\n  // Will avoid duplicate initialization\n  // This should be used by outside code to create XrefKnowls\n  static initializeXrefKnowl(knowlLinkElement) {\n    if (knowlLinkElement.getAttribute(\"data-knowl-uid\") === null) {\n      return new LinkKnowl(knowlLinkElement);\n    }\n  }\n\n  // \"Private\" constructor - should only be called by initializeXrefKnowl\n  constructor(knowlLinkElement) {\n    this.linkElement = knowlLinkElement;\n    this.outputElement = null;\n    this.slideHandler = null;\n    this.uid = LinkKnowl.xrefCount++;\n    knowlLinkElement.setAttribute(\"data-knowl-uid\", this.uid);\n\n    // Xref's behavior is that of a button\n    knowlLinkElement.setAttribute(\"role\", \"button\");\n\n    // Stash a copy of the original title for use in aria-label\n    // If no title, use textContent\n    knowlLinkElement.setAttribute(\"data-base-title\", knowlLinkElement.getAttribute(\"title\") || this.linkElement.textContent);\n\n    knowlLinkElement.classList.add(\"knowl__link\");\n\n    this.updateLabels(false);\n\n    // Bind required to force \"this\" of event handler to be this object\n    knowlLinkElement.addEventListener(\"click\", this.handleLinkClick.bind(this));\n  }\n\n  // Set aria-label and title based on visibility of knowl\n  updateLabels(isVisible) {\n    const verb = isVisible\n      ? this.linkElement.getAttribute(\"data-close-label\") || \"Close\"\n      : this.linkElement.getAttribute(\"data-reveal-label\") || \"Reveal\";\n    const targetDescript = this.linkElement.getAttribute(\"data-base-title\");\n    const helpText = verb + \" \" + targetDescript;\n\n    this.linkElement.setAttribute(\"aria-label\", helpText);\n    this.linkElement.setAttribute(\"title\", helpText);\n  }\n\n  // Toggle the state of the knowl link and output elements\n  // Assumes output is already created\n  toggle() {\n    this.linkElement.classList.toggle(\"active\");\n    const isActive = this.linkElement.classList.contains(\"active\");\n    this.updateLabels(isActive);\n\n    // Scroll to reveal if needed\n    if (isActive) {\n      const h = this.outputElement.getBoundingClientRect().height;\n      if (h > window.innerHeight) {\n        // knowl is taller than window, scroll to top of knowl\n        this.outputElement.scrollIntoView(true);\n      } else {\n        // reveal full knowl\n        if (this.outputElement.getBoundingClientRect().bottom > window.innerHeight)\n          this.outputElement.scrollIntoView(false);\n      }\n    }\n  }\n\n  // Returns element the knowl output should be inserted after\n  findOutputLocation() {\n    const invalidParents = \"table, mjx-container, div.tabular-box, .runestone > .parsons\";\n    // Start with the link's parent, move up as long as there are invalid parents\n    let el = this.linkElement.parentElement;\n    let problemAncestor = el.closest(invalidParents);\n    while (problemAncestor && problemAncestor !== el) {\n      el = problemAncestor;\n      problemAncestor = el.closest(invalidParents);\n    }\n    return el;\n  }\n\n  // Create the knowl output element\n  createOutputElement() {\n    const outputId = \"knowl-uid-\" + this.uid;\n    const outputContentsId = \"knowl-output-\" + this.uid;\n    const linkTarget = this.linkElement.getAttribute(\"data-knowl\");\n\n    const placeholderText = `<div class='knowl__content' style='display:none;' id='${outputId}' aria-live='polite' id='${outputContentsId}'>`\n      + `Loading '${linkTarget}'`\n      + `</div>`;\n\n    const temp = document.createElement(\"template\");\n    temp.innerHTML = placeholderText;\n    this.outputElement = temp.content.children[0];\n\n    const insertLoc = this.findOutputLocation(this.linkElement);\n    insertLoc.after(this.outputElement);\n  }\n\n  // Get content for knowl as dom element. Returns promise that resolves to knowl content\n  async getContent() {\n    const contentURL = this.linkElement.getAttribute(\"data-knowl\");\n    const knowlContent = await fetch(contentURL)\n      .then((response) => response.text())\n      .then((data) => {\n        // knowls are full HTML pages, need to just extract body\n        let knowlDoc = (new DOMParser()).parseFromString(data, \"text/html\");\n        let tempContainer = knowlDoc.body;\n        // grab any scripts from head of knowl doc and add them to the output\n        let scripts = knowlDoc.querySelectorAll(\"head script\");\n        tempContainer.append(...scripts);\n        return tempContainer;\n      })\n      .catch((error) => {\n        const destination = this.linkElement.getAttribute(\"href\");\n        const text = this.linkElement.textContent;\n        const err_message = `<div class='knowl-output__error'>`\n          + `<div class='para'>Error fetching content. (<em>${error}</em>)</div>`\n          + `<div class='para'><a href='${destination}'>Navigate to ${text}</a> instead.</div>`\n          + `<div class='para'>If you are viewing this book from your local filesystem, this is expected behavior. To view the book with all features, you must serve the book from a web server. See the <a href=\"https://pretextbook.org/doc/guide/html/author-faq.html#how-do-i-view-my-book-locally\">PreTeXt FAQ</a> for more information.</div>`\n          + `</div>`;\n        return err_message;\n      });\n    return knowlContent;\n  }\n\n  // Handle a click on the knowl link\n  handleLinkClick(event) {\n    // prevent navigation\n    event.preventDefault();\n\n    if (this.slideHandler?.isBusy()) {\n      return;\n    }\n\n    if (this.outputElement !== null) {\n      // output already created, toggle visibility\n      this.toggle();\n    } else {\n      this.createOutputElement();\n\n      this.slideHandler = new SlideRevealer(this.linkElement, this.outputElement, this.outputElement);\n      //slideHandler is now responsible for handling clicks to this element\n      this.linkElement.addEventListener('click', this.slideHandler);\n\n      // Wait up to a half second in hopes of avoiding double content change\n      // then render to show loading message\n      let loadingTimeout = setTimeout(() => {\n        loadingTimeout = null;\n        this.slideHandler.onClick(); //fake initial click\n        this.toggle();\n      }, 500);\n\n      const content = this.getContent();\n\n      // Content is a promise at this point, insert when resolved\n      content\n        .then((tempContainer) => {\n          // if timeout still active, cancel it and render\n          if (loadingTimeout !== null) {\n            clearTimeout(loadingTimeout);\n          }\n          // Now give code that follows .1 seconds to render before making visible\n          setTimeout(() => {\n            this.slideHandler.onClick(); //fake initial click\n            this.toggle();\n          }, 100);\n\n          // check embedded runestone interactives by loading content into a temp container\n          // we want to not render any that already are on page. Dupe IDs probably bad\n          const runestoneElements = tempContainer.querySelectorAll(\".ptx-runestone-container\");\n          [...runestoneElements].forEach((e) => {\n            const rsId = e.querySelector(\"[data-component]\")?.id;\n            const onPage = document.getElementById(rsId);\n            if (onPage) {\n              e.innerHTML = `<div class=\"para\">The interactive that belongs here is already on the page and cannot appear multiple times. <a href=\"#${rsId}\">Scroll to interactive.</a>`;\n            } else {\n              // let runestone start rendering it\n              window.runestoneComponents.renderOneComponent(e);\n            }\n          });\n\n          // now move all contents to the real output element\n          const children = [...tempContainer.children];\n          this.outputElement.innerHTML = \"\";\n          this.outputElement.append(...children);\n\n          // render any knowls and mathjax in the knowl\n          addKnowls(this.outputElement);\n          MathJax.typesetPromise([this.outputElement]);\n\n          // try prism highlighting\n          Prism.highlightAllUnder(this.outputElement);\n\n          // force any scripts (e.g. sagecell) to execute by evaling them\n          [...this.outputElement.getElementsByTagName(\"script\")].forEach((s) => {\n            if (\n              s.getAttribute(\"type\") === null ||\n              s.getAttribute(\"type\") === \"text/javascript\"\n            ) {\n              eval(s.innerHTML);\n            }\n          });\n        })\n        .catch((data) => {\n          console.log(\"Error fetching knowl content: \" + data);\n        });\n    }\n  }\n}\n"
  },
  {
    "path": "js/lti_iframe_resizer.js",
    "content": "// SPLICE resize handling - https://cssplice.org/\n// Expected message format:\n// {\n//   subject: lti.frameResize',\n//   message_id: (a unique string ID),  // optional - not used\n//   height: ...,\n//   width: ...\n// }\n\nwindow.addEventListener('message', function (event) {\n    let edata = event.data;\n\n    //MoM sends event.data as a string instead of JSON\n    if (typeof event.data == 'string' && event.data.match(/lti\\.frameResize/)) {\n        edata = JSON.parse(event.data);\n    }\n\n    if (edata.subject === \"lti.frameResize\") {\n        if (\"frame_id\" in edata) {\n            // MoM may send frame_id\n            let el = document.getElementById(edata['frame_id']);\n            document.getElementById(edata['frame_id']).style.height = edata.height + 'px';\n            if (edata.wrapheight && document.getElementById(edata['frame_id'] + 'wrap')) {\n                document.getElementById(edata['frame_id'] + 'wrap').style.height = edata.wrapheight + 'px';\n            }\n        } else if (\"iframe_resize_id\" in edata) {\n            // MoM may send iframe_resize_id\n            document.getElementById(edata['iframe_resize_id']).style.height = edata.height + 'px';\n        } else {\n            // No target element specified, so resize the iframe that sent the message\n            // event.source.frameElement is only accessible if the iframe is on the same domain\n            // so loop through iframes to find the one that sent the message\n            const iFrames = document.getElementsByTagName('iframe');\n            for(const iFrame of iFrames) {\n                if(iFrame.contentWindow === event.source) {\n                    if (edata.height) {\n                      iFrame.height = edata.height;\n                      iFrame.style.height = edata.height + 'px';\n                    }\n                    if (edata.width) {\n                      iFrame.width = edata.width;\n                      iFrame.style.width = edata.width + 'px';\n                    }\n                    break;\n                }\n            }\n        }\n    }\n  });\n\n  // Currently only used by My Open Math to request a resize after knowls open\n  function sendResizeRequest(el) {\n    el.contentWindow.postMessage(\"requestResize\", \"*\");\n  }\n"
  },
  {
    "path": "js/mathjax_startup.js",
    "content": "/***************************************************************\n * Implements startup of MathJax v4\n ***************************************************************/\n\n// Base config options. Will be supplemented by optional parts later\nlet mathJaxOpts = {\n  \"tex\": {\n    \"inlineMath\": [\n      [\n        \"\\\\(\",\n        \"\\\\)\"\n      ]\n    ],\n    \"tags\": \"none\",\n    \"tagSide\": \"right\",\n    \"tagIndent\": \".8em\",\n    \"packages\": {\n      \"[+]\": [\n        \"amscd\",\n        \"color\",\n        \"knowl\"\n      ]\n    }\n  },\n  \"options\": {\n    \"ignoreHtmlClass\": \"tex2jax_ignore|ignore-math\",\n    \"processHtmlClass\": \"process-math\",\n  },\n  \"chtml\": {\n    \"scale\": 0.98,\n    \"mtextInheritFont\": true\n  },\n  \"loader\": {\n    \"load\": [\n      \"input/asciimath\",\n      \"[tex]/amscd\",\n      \"[tex]/color\",\n    ]\n  }\n};\n\n\nexport function startMathJax(opts) {\n  if(opts.hasWebworkReps || opts.hasSage) {\n    mathJaxOpts['renderActions'] = {\n      \"findScript\": [\n        10,\n        function (doc) {\n          document.querySelectorAll('script[type^=\"math/tex\"]').forEach(function (node) {\n            var display = !!node.type.match(/; *mode=display/);\n            var math = new doc.options.MathItem(node.textContent, doc.inputJax[0], display);\n            var text = document.createTextNode('');\n            node.parentNode.replaceChild(text, node);\n            math.start = { node: text, delim: '', n: 0 };\n            math.end = { node: text, delim: '', n: 0 };\n            doc.math.push(math);\n          });\n        },\n        \"\"\n      ]\n    }\n  }\n\n  if(opts.isReact) {\n    mathJaxOpts['startup'] = {\n      typeset: false,\n    }\n  } else {\n    mathJaxOpts['startup'] = {\n      ready() {\n        const { Configuration } = MathJax._.input.tex.Configuration;\n        const configuration = Configuration.create(\"knowl\", {\n          handler: {\n            macro: [\"knowl\"]\n          }\n        });\n\n        const NodeUtil = MathJax._.input.tex.NodeUtil.default;\n\n        function GetArgumentMML(parser, name) {\n          const arg = parser.ParseArg(name);\n          if (!NodeUtil.isInferred(arg)) {\n            return arg;\n          }\n          const children = NodeUtil.getChildren(arg);\n          if (children.length === 1) {\n            return children[0];\n          }\n          const mrow = parser.create(\"node\", \"mrow\");\n          NodeUtil.copyChildren(arg, mrow);\n          NodeUtil.copyAttributes(arg, mrow);\n          return mrow;\n        };\n\n        const CommandMap = MathJax._.input.tex.TokenMap.CommandMap;\n        new CommandMap(\n          \"knowl\",\n          {\n            knowl(parser, name) {\n              const url = parser.GetArgument(name);\n              const arg = GetArgumentMML(parser, name);\n              const mrow = parser.create(\"node\", \"mrow\", [arg], { tabindex: '0', \"data-knowl\": url });\n              parser.Push(mrow);\n            }\n          }\n        );\n\n        MathJax.startup.defaultReady();\n      },\n      pageReady() {\n        return MathJax.startup.defaultPageReady().then(rsMathReady);\n      },\n    }\n  }\n\n  if(opts.htmlPresentation) {\n    mathJaxOpts['options']['menuOptions'] = {\n      \"settings\": {\n        \"zoom\": \"Click\",\n        \"zscale\": \"300%\"\n      }\n    }\n  }\n\n  // Apply the options\n  window.MathJax = mathJaxOpts;\n\n  // Lets Runestone know that MathJax is ready\n  const runestoneMathReady = new Promise((resolve) => window.rsMathReady = resolve);\n  window.runestoneMathReady = runestoneMathReady;\n}\n\n"
  },
  {
    "path": "js/pretext-stack/stackapicalls.js",
    "content": "const timeOutHandler = new Object();\nconst inputPrefix = 'stackapi_input_';\nconst feedbackPrefix = 'stackapi_fb_';\nconst validationPrefix = 'stackapi_val_';\n// const stack_api_url = // This is pulled from the publication file\n\nconst stackstring = {\n  \"teacheranswershow_mcq\":\"A correct answer is: {$a->display}\",\n  \"api_which_typed\":\"which can be typed as follows\",\n  \"api_valid_all_parts\":\"Please enter valid answers for all parts of the question.\",\n  \"api_out_of\":\"out of\",\n  \"api_marks_sub\":\"Marks for this submission\",\n  \"api_submit\":\"Submit Answers\",\n  \"generalfeedback\":\"General feedback\",\n  \"score\":\"Score\",\n  \"api_response\":\"Response summary\",\n  \"api_correct\":\"Correct answers\"\n};\n\n\nfunction wrap_math(content) {\n  // Wrap instances of \\[ ... \\] and \\( ... \\) into the tags configured to be processed by MathJax\n  // Here we make sure that the backslashes are not escaped like \\\\[ \n  content = content.replace(/(?<!\\\\)(\\\\\\(.*?(?<!\\\\)\\\\\\))/gs, \"<span class=\\\"process-math\\\">$1</span>\");\n  return content.replace(/(?<!\\\\)(\\\\\\[.*?(?<!\\\\)\\\\\\])/gs, \"<span class=\\\"process-math\\\">$1</span>\");\n}\n\n// Create data for call to API.\nasync function collectData(qfile, qname, qprefix) {\n  let res = \"\";\n\n    await getQuestionFile(qfile, qname).then((response)=>{\n      if (response.questionxml != \"<quiz>\\nnull\\n</quiz>\") {\n        res = {\n          questionDefinition: response.questionxml,\n          answers: collectAnswer(qprefix),\n          seed: response.seed,\n          renderInputs: qprefix + inputPrefix,\n          readOnly: false,\n        };\n      };\n    });\n  // }\n  return res;\n}\n\n// Get the different input elements by tag and return object with values.\nfunction collectAnswer(qprefix) {\n  const inputs = document.getElementsByTagName('input');\n  const textareas = document.getElementsByTagName('textarea');\n  const selects = document.getElementsByTagName('select');\n  let res = {};\n  res = processNodes(res, inputs, qprefix);\n  res = processNodes(res, textareas, qprefix);\n  res = processNodes(res, selects, qprefix);\n  return res;\n}\n\n// Return object of values of valid entries in an HTMLCollection.\nfunction processNodes(res, nodes, qprefix) {\n  for (let i = 0; i < nodes.length; i++) {\n    const element = nodes[i];\n    if (element.name.indexOf(qprefix+inputPrefix) === 0 && element.name.indexOf('_val') === -1) {\n      if (element.type === 'checkbox' || element.type === 'radio') {\n        if (element.checked) {\n          res[element.name.slice((qprefix+inputPrefix).length)] = element.value;\n        }\n      } else {\n        res[element.name.slice((qprefix+inputPrefix).length)] = element.value;\n      }\n    }\n  }\n  return res;\n}\n\n// Display rendered question and solution.\nfunction send(qfile, qname, qprefix) {\n  const http = new XMLHttpRequest();\n  const url = stack_api_url + '/render';\n  http.open(\"POST\", url, true);\n  http.setRequestHeader('Content-Type', 'application/json');\n  http.onreadystatechange = function() {\n    if(http.readyState == 4) {\n      try {\n        const json = JSON.parse(http.responseText);\n        if (json.message) {\n          console.log(json);\n          document.getElementById(`${qprefix+\"errors\"}`).innerText = json.message;\n          return;\n        } else {\n          document.getElementById(`${qprefix+\"errors\"}`).innerText = '';\n        }\n        renameIframeHolders();\n        let question = json.questionrender;\n        const inputs = json.questioninputs;\n        const seed = json.questionseed;\n        let correctAnswers = '';\n        // Show correct answers.\n        for (const [name, input] of Object.entries(inputs)) {\n          question = question.replace(`[[input:${name}]]`, input.render);\n          // question = question.replaceAll(`${inputPrefix}`,`${qprefix+inputPrefix}`);\n          question = question.replace(`[[validation:${name}]]`, `<span name='${qprefix+validationPrefix + name}'></span>`);\n          // This is a bit of a hack. The question render returns an <a href=\"...\"> calling the download function with\n          // two arguments. We add the additional arguments that we need for context (question definition) here.\n          question = question.replace(/javascript:download\\(([^,]+?),([^,]+?)\\)/, `javascript:download($1,$2, '${qfile}', '${qname}', '${qprefix}', ${seed})`);\n          question = wrap_math(question);\n          if (input.samplesolutionrender && name !== 'remember') {\n            // Display render of answer and matching user input to produce the answer.\n            correctAnswers += `<p>\n                  ${stackstring['teacheranswershow_mcq']} \\\\[{${input.samplesolutionrender}}\\\\],\n                  ${stackstring['api_which_typed']}: `;\n            for (const [name, solution] of Object.entries(input.samplesolution)) {\n              if (name.indexOf('_val') === -1) {\n                correctAnswers += `<span class='correct-answer'>${wrap_math(solution)}</span>`;\n              }\n            }\n            correctAnswers += '.</p>';\n          } else if (name !== 'remember') {\n            // For dropdowns, radio buttons, etc, only the correct option is displayed.\n            for (const solution of Object.values(input.samplesolution)) {\n              if (input.configuration.options) {\n                correctAnswers += `<p class='correct-answer'>${input.configuration.options[solution]}</p>`;\n              }\n            }\n          }\n        }\n        // Convert Moodle plot filenames to API filenames.\n        for (const [name, file] of Object.entries(json.questionassets)) {\n          const plotUrl = getPlotUrl(file);\n          question = question.replace(name, plotUrl);\n          json.questionsamplesolutiontext = json.questionsamplesolutiontext.replace(name, plotUrl);\n          correctAnswers = correctAnswers.replace(name, plotUrl);\n        }\n\n        question = replaceFeedbackTags(question,qprefix);\n        qoutput = document.getElementById(`${qprefix+'output'}`);\n        qoutput.innerHTML = question;\n        // Only display results sections once question retrieved.\n        document.getElementById(`${qprefix+'stackapi_qtext'}`).style.display = 'block';\n        document.getElementById(`${qprefix+'stackapi_correct'}`).style.display = 'block';\n\n        // Setup a validation call on inputs. Timeout length is reset if the input is updated\n        // before the validation call is made.\n        for (const inputName of Object.keys(inputs)) {\n          const inputElements = document.querySelectorAll(`[name^=${qprefix+inputPrefix + inputName}]`);\n          for (const inputElement of Object.values(inputElements)) {\n            inputElement.oninput = (event) => {\n              const currentTimeout = timeOutHandler[event.target.id];\n              if (currentTimeout) {\n                window.clearTimeout(currentTimeout);\n              }\n              timeOutHandler[event.target.id] = window.setTimeout(validate.bind(null, event.target, qfile, qname, qprefix), 1000);\n            };\n          }\n        }\n        let sampleText = json.questionsamplesolutiontext;\n        if (sampleText) {\n          sampleText = replaceFeedbackTags(sampleText,qprefix);\n          document.getElementById(`${qprefix+'generalfeedback'}`).innerHTML = wrap_math(sampleText);\n          document.getElementById(`${qprefix+'stackapi_generalfeedback'}`).style.display = 'block';\n        } else {\n          // If the question is updated, there may no longer be general feedback.\n          document.getElementById(`${qprefix+'stackapi_generalfeedback'}`).style.display = 'none';\n        }\n        document.getElementById(`${qprefix+'stackapi_score'}`).style.display = 'none';\n        document.getElementById(`${qprefix+'stackapi_validity'}`).innerText = '';\n        const innerFeedback = document.getElementById(`${qprefix+'specificfeedback'}`);\n        innerFeedback.innerHTML = '';\n        innerFeedback.classList.remove('feedback');\n        document.getElementById(`${qprefix+'formatcorrectresponse'}`).innerHTML = correctAnswers;\n\n        // Hide General feedback and correct answers for now\n        document.getElementById(`${qprefix+'stackapi_generalfeedback'}`).style.display = 'none';\n        document.getElementById(`${qprefix+'stackapi_correct'}`).style.display = 'none';\n\n        createIframes(json.iframes);\n        MathJax.typeset();\n      }\n      catch(e) {\n        console.log(e);\n        document.getElementById(`${qprefix+'errors'}`).innerText = http.responseText;\n        return;\n      }\n    }\n  };\n  collectData(qfile, qname, qprefix).then((data)=>{\n    let submitbutton = document.getElementById(`${qprefix + 'stackapi_qtext'}`).querySelector('input[type=\"button\"]');\n    submitbutton.addEventListener('click', function() {answer(qfile, qname, qprefix, data.seed)});\n    http.send(JSON.stringify(data));\n    let questioncontainer = document.getElementById(`${qprefix+'stack'}`).parentElement;\n    if (questioncontainer.getBoundingClientRect().top<0){\n      questioncontainer.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    };\n  });\n}\n\n// Validate an input. Called a set amount of time after an input is last updated.\nfunction validate(element, qfile, qname, qprefix) {\n  const http = new XMLHttpRequest();\n  const url = stack_api_url + '/validate';\n  http.open(\"POST\", url, true);\n  // Remove API prefix and subanswer id.\n  const answerNamePrefixTrim = (qprefix+inputPrefix).length;\n  const answerName = element.name.slice(answerNamePrefixTrim).split('_', 1)[0];\n  http.setRequestHeader('Content-Type', 'application/json');\n  http.onreadystatechange = function() {\n    if(http.readyState == 4) {\n      try {\n        const json = JSON.parse(http.responseText);\n        if (json.message) {\n          document.getElementById(`${qprefix+'errors'}`).innerText = json.message;\n          return;\n        } else {\n          document.getElementById(`${qprefix+'errors'}`).innerText = '';\n        }\n        renameIframeHolders();\n        const validationHTML = json.validation;\n        const element = document.getElementsByName(`${qprefix+validationPrefix + answerName}`)[0];\n        element.innerHTML = wrap_math(validationHTML);\n        if (validationHTML) {\n          element.classList.add('validation');\n        } else {\n          element.classList.remove('validation');\n        }\n        createIframes(json.iframes);\n        MathJax.typeset();\n      }\n      catch(e) {\n        document.getElementById(`${qprefix+'errors'}`).innerText = http.responseText;\n        return;\n      }\n    }\n  };\n  collectData(qfile, qname, qprefix).then((data)=>{\n    data.inputName = answerName;\n    http.send(JSON.stringify(data));\n  });\n}\n\n// Submit answers.\nfunction answer(qfile, qname, qprefix, seed) {\n  const http = new XMLHttpRequest();\n  const url = stack_api_url + '/grade';\n  http.open(\"POST\", url, true);\n\n  if (!document.getElementById(`${qprefix+'output'}`).innerText) {\n    return;\n  }\n\n  http.setRequestHeader('Content-Type', 'application/json');\n  http.onreadystatechange = function() {\n    if(http.readyState == 4) {\n      try {\n        const json = JSON.parse(http.responseText);\n        if (json.message) {\n          document.getElementById(`${qprefix+'errors'}`).innerText = json.message;\n          return;\n        } else {\n          document.getElementById(`${qprefix+'errors'}`).innerText = '';\n        }\n        if (!json.isgradable) {\n          document.getElementById(`${qprefix+'stackapi_validity'}`).innerText\n              = ' ' + stackstring[\"api_valid_all_parts\"];\n          return;\n        }\n        renameIframeHolders();\n        document.getElementById(`${qprefix+'score'}`).innerText\n            = (json.score * json.scoreweights.total).toFixed(2) +\n            ' ' + stackstring[\"api_out_of\"] + ' ' + json.scoreweights.total;\n        document.getElementById(`${qprefix+'stackapi_score'}`).style.display = 'block';\n        document.getElementById(`${qprefix+'response_summary'}`).innerText = json.responsesummary;\n\n        // Show General feedback and correct answers, hide summary\n        document.getElementById(`${qprefix+'stackapi_generalfeedback'}`).style.display = 'block';\n\n        document.getElementById(`${qprefix+'stackapi_summary'}`).style.display = 'none';\n\n        const feedback = json.prts;\n        const specificFeedbackElement = document.getElementById(`${qprefix+'specificfeedback'}`);\n        // Replace tags and plots in specific feedback and then display.\n        if (json.specificfeedback) {\n          for (const [name, file] of Object.entries(json.gradingassets)) {\n            json.specificfeedback = json.specificfeedback.replace(name, getPlotUrl(file));\n          }\n          json.specificfeedback = replaceFeedbackTags(json.specificfeedback,qprefix);\n          specificFeedbackElement.innerHTML = wrap_math(json.specificfeedback);\n          specificFeedbackElement.classList.add('feedback');\n        } else {\n          specificFeedbackElement.classList.remove('feedback');\n        }\n        // Replace plots in tagged feedback and then display.\n        for (let [name, fb] of Object.entries(feedback)) {\n          for (const [name, file] of Object.entries(json.gradingassets)) {\n            fb = fb.replace(name, getPlotUrl(file));\n          }\n          const elements = document.getElementsByName(`${qprefix+feedbackPrefix + name}`);\n          if (elements.length > 0) {\n            const element = elements[0];\n            if (json.scores[name] !== undefined) {\n              fb = fb + `<div>${stackstring['api_marks_sub']}:\n                    ${(json.scores[name] * json.scoreweights[name] * json.scoreweights.total).toFixed(2)}\n                      / ${(json.scoreweights[name] * json.scoreweights.total).toFixed(2)}.</div>`;\n            }\n            element.innerHTML = wrap_math(fb);\n            // if (fb) {\n//                   element.classList.add('feedback');\n//                 } else {\n//                   element.classList.remove('feedback');\n//                 }\n          }\n        }\n        createIframes(json.iframes);\n        MathJax.typeset();\n      }\n      catch(e) {\n        console.log(e);\n        document.getElementById(`${qprefix+'errors'}`).innerText = http.responseText;\n        return;\n      }\n    }\n  };\n  // Clear previous answers and score.\n  const specificFeedbackElement = document.getElementById(`${qprefix+'specificfeedback'}`);\n  specificFeedbackElement.innerHTML = \"\";\n  specificFeedbackElement.classList.remove('feedback');\n  document.getElementById(`${qprefix+'response_summary'}`).innerText = \"\";\n  document.getElementById(`${qprefix+'stackapi_summary'}`).style.display = 'none';\n  const inputElements = document.querySelectorAll(`[name^=${qprefix+feedbackPrefix}]`);\n  for (const inputElement of Object.values(inputElements)) {\n    inputElement.innerHTML = \"\";\n    inputElement.classList.remove('feedback');\n  }\n  document.getElementById(`${qprefix+'stackapi_score'}`).style.display = 'none';\n  document.getElementById(`${qprefix+'stackapi_validity'}`).innerText = '';\n  collectData(qfile, qname, qprefix).then((data) => {\n    data.seed = seed;\n    http.send(JSON.stringify(data));\n  });\n}\n\nfunction download(filename, fileid, qfile, qname, qprefix, seed) {\n  const http = new XMLHttpRequest();\n  const url = stack_api_url + '/download';\n  http.open(\"POST\", url, true);\n  http.setRequestHeader('Content-Type', 'application/json');\n  // Something funky going on with closures and callbacks. This seems\n  // to be the easiest way to pass through the file details.\n  http.filename = filename;\n  http.fileid = fileid;\n  http.onreadystatechange = function() {\n    if(http.readyState == 4) {\n      try {\n        // Only download the file once. Replace call to download controller with link\n        // to downloaded file.\n        const blob = new Blob([http.responseText], {type: 'application/octet-binary', endings: 'native'});\n        // We're matching the three additional arguments that are added in the send function here.\n        const selector = CSS.escape(`javascript\\:download\\(\\'${http.filename}\\'\\, ${http.fileid}\\, \\'${qfile}\\'\\, \\'${qname}\\'\\, \\'${qprefix}\\'\\, ${seed}\\)`);\n        const linkElements = document.querySelectorAll(`a[href^=${selector}]`);\n        const link = linkElements[0];\n        link.setAttribute('href', URL.createObjectURL(blob));\n        link.setAttribute('download', filename);\n        link.click();\n      }\n      catch(e) {\n        document.getElementById('errors').innerText = http.responseText;\n        return;\n      }\n    }\n  };\n  collectData(qfile, qname, qprefix).then((data)=>{\n    data.filename = filename;\n    data.fileid = fileid;\n    data.seed = seed;\n    http.send(JSON.stringify(data));\n  });\n}\n\n// Save contents of question editor locally.\nfunction saveState(key, value) {\n  if (typeof(Storage) !== \"undefined\") {\n    localStorage.setItem(key, value);\n  }\n}\n\n// Load locally stored question on page refresh.\nfunction loadState(key) {\n  if (typeof(Storage) !== \"undefined\") {\n    return localStorage.getItem(key) || '';\n  }\n  return '';\n}\n\nfunction renameIframeHolders() {\n  // Each call to STACK restarts numbering of iframe holders so we need to rename\n  // any old ones to make sure new iframes end up in the correct place.\n  for (const iframe of document.querySelectorAll(`[id^=stack-iframe-holder]:not([id$=old]`)) {\n    iframe.id = iframe.id + '_old';\n  }\n}\n\nfunction createIframes (iframes) {\n  const corsFragment = \"/cors.php?name=\";\n\n  for (const iframe of iframes) {\n    create_iframe(\n      iframe[0],\n      iframe[1].replaceAll(corsFragment, stack_api_url + corsFragment),\n      ...iframe.slice(2)\n    );\n  }\n}\n\n// Replace feedback tags in some text with an approproately named HTML div.\nfunction replaceFeedbackTags(text, qprefix) {\n  let result = text;\n  const feedbackTags = text.match(/\\[\\[feedback:.*?\\]\\]/g);\n  if (feedbackTags) {\n    for (const tag of feedbackTags) {\n      // Part name is between '[[feedback:' and ']]'.\n      result = result.replace(tag, `<div name='${qprefix+feedbackPrefix + tag.slice(11, -2)}'></div>`);\n    }\n  }\n  return result;\n}\n\nasync function getQuestionFile(questionURL, questionName) {\n  let res = \"\";\n  if (questionURL) {\n    await fetch(questionURL)\n        .then(result => result.text())\n        .then((result) => {\n          res = loadQuestionFromFile(result, questionName);\n        });\n  }\n  return res;\n}\n\nfunction loadQuestionFromFile(fileContents, questionName) {\n  const parser = new DOMParser();\n  const xmlDoc = parser.parseFromString(fileContents, \"text/xml\");\n\n  let thequestion = null;\n  let randSeed = \"\";\n  for (const question of xmlDoc.getElementsByTagName(\"question\")) {\n    if (question.getAttribute('type').toLowerCase() === 'stack' && (!questionName || question.querySelectorAll(\"name text\")[0].textContent === questionName)) {\n      thequestion = question.outerHTML;\n      let seeds = question.querySelectorAll('deployedseed');\n      if (seeds.length) {\n        randSeed = parseInt(seeds[Math.floor(Math.random()*seeds.length)].textContent);\n      }\n      break;\n    }\n  }\n  return {questionxml:setQuestion(thequestion),seed:randSeed};\n}\n\nfunction setQuestion(question) {\n  return '<quiz>\\n' + question + '\\n</quiz>';\n}\n\nfunction createQuestionBlocks() {\n  questionBlocks = document.getElementsByClassName(\"que stack\");\n  let i=0;\n\n  for (questionblock of questionBlocks){\n    i++;\n    let questionPrefix = \"q\" + i.toString() + \"_\";\n    var qfile = questionblock.dataset.qfile;\n    var qname = questionblock.dataset.qname || \"\";\n    questionblock.innerHTML =\n        `\n                <div class=\"collapsiblecontent\" id=${questionPrefix + \"stack\"}>\n                    <div class=\"vstack gap-3 ms-3 col-lg-8\">\n                        <div id=${questionPrefix + \"errors\"}></div>\n                        <div id=${questionPrefix + \"stackapi_qtext\"} class=\"col-lg-8\" style=\"display: none\">\n                          <!--<h2>${stackstring['questiontext']}:</h2>-->\n                          <div id=${questionPrefix + \"output\"} class=\"formulation\"></div>\n                          <div id=${questionPrefix + \"specificfeedback\"}></div>\n                          <br>\n                          <!-- <input type=\"button\" onclick=\"answer('${qfile}', '${qname}', '${questionPrefix}')\" class=\"btn btn-primary\" value=${stackstring[\"api_submit\"]}/>-->\n                          <input type=\"button\" class=\"btn btn-primary\" value=${stackstring[\"api_submit\"]}/>\n                          <span id=${questionPrefix + \"stackapi_validity\"} style=\"color:darkred\"></span>\n                        </div>\n                        <div id=${questionPrefix + \"stackapi_generalfeedback\"} class=\"col-lg-8\" style=\"display: none\">\n                          <h2>${stackstring['generalfeedback']}:</h2>\n                          <div id=${questionPrefix + \"generalfeedback\"} class=\"feedback\"></div>\n                        </div>\n                        <h2 id=${questionPrefix + \"stackapi_score\"} style=\"display: none\">${stackstring['score']}: <span id=${questionPrefix + \"score\"}></span></h2>\n                        <div id=${questionPrefix + \"stackapi_summary\"} class=\"col-lg-10\" style=\"display: none\">\n                          <h2>${stackstring['api_response']}:</h2>\n                          <div id=${questionPrefix + \"response_summary\"} class=\"feedback\"></div>\n                        </div>\n                        <div id=${questionPrefix + \"stackapi_correct\"} class=\"col-lg-10\" style=\"display: none\">\n                          <h2>${stackstring['api_correct']}:</h2>\n                          <div id=${questionPrefix + \"formatcorrectresponse\"} class=\"feedback\"></div>\n                        </div>\n                    </div>\n                    <div id=${questionPrefix + \"newquestionbutton\"}>\n                      <input type=\"button\" onclick=\"send('${qfile}', '${qname}', '${questionPrefix}')\" class=\"btn btn-primary\" value=\"Show new example question\"/>\n                    </div>\n                </div>\n              `;\n  }\n}\n\nfunction addCollapsibles(){\n  var collapsibles = document.querySelectorAll(\".level2>h2, .stack>h2\");\n  for (let i=0; i<collapsibles.length; i++) {\n    collapsibles[i].addEventListener(\"click\", () => collapseFunc(this));\n  }\n}\n\nfunction collapseFunc(e){\n  e.classList.toggle(\"collapsed\");\n}\n\nfunction stackSetup(){\n  createQuestionBlocks();\n  addCollapsibles();\n}\n\nfunction getPlotUrl(file) {\n  return `${stack_api_url}/plots/${file}`;\n}\n"
  },
  {
    "path": "js/pretext-stack/stackjsvle.js",
    "content": "/**\n * A javascript module to handle separation of author sourced scripts into\n * IFRAMES. All such scripts will have limited access to the actual document\n * on the VLE side and this script represents the VLE side endpoint for\n * message handling needed to give that access. When porting STACK onto VLEs\n * one needs to map this script to do the following:\n *\n *  1. Ensure that searches for target elements/inputs are limited to questions\n *     and do not return any elements outside them.\n *\n *  2. Map any identifiers needed to identify inputs by name.\n *\n *  3. Any change handling related to input value modifications through this\n *     logic gets connected to any such handling on the VLE side.\n *\n *\n * This script is intenttionally ordered so that the VLE specific bits should\n * be at the top.\n *\n *\n * This script assumes the following:\n *\n *  1. Each relevant IFRAME has an `id`-attribute that will be told to this\n *     script.\n *\n *  2. Each such IFRAME exists within the question itself, so that one can\n *     traverse up the DOM tree from that IFRAME to find the border of\n *     the question.\n *\n * @module     qtype_stack/stackjsvle\n * @copyright  2023 Aalto University\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n    'use strict';\n    // Note the VLE specific include of logic.\n\n    /* All the IFRAMES have unique identifiers that they give in their\n     * messages. But we only work with those that have been created by\n     * our logic and are found from this map.\n     */\n    let IFRAMES = {};\n\n    /* For event handling, lists of IFRAMES listening particular inputs.\n     */\n    let INPUTS = {};\n\n    /* For event handling, lists of IFRAMES listening particular inputs\n     * and their input events. By default we only listen to changes.\n     * We report input events as changes to the other side.\n     */\n    let INPUTS_INPUT_EVENT = {};\n\n    /* A flag to disable certain things. */\n    let DISABLE_CHANGES = false;\n\n\n    /**\n     * Returns an element with a given id, if an only if that element exists\n     * inside a portion of DOM that represents a question.\n     *\n     * If not found or exists outside the restricted area then returns `null`.\n     *\n     * @param {String} id the identifier of the element we want.\n     */\n    function vle_get_element(id) {\n        /* In the case of Moodle we are happy as long as the element is inside\n           something with the `formulation`-class. */\n        let candidate = document.getElementById(id);\n        let iter = candidate;\n        while (iter && !iter.classList.contains('formulation')) {\n            iter = iter.parentElement;\n        }\n        if (iter && iter.classList.contains('formulation')) {\n            return candidate;\n        }\n\n        return null;\n    }\n\n    /**\n     * Returns an input element with a given name, if and only if that element\n     * exists inside a portion of DOM that represents a question.\n     *\n     * Note that, the input element may have a name that multiple questions\n     * use and to pick the preferred element one needs to pick the one\n     * within the same question as the IFRAME.\n     *\n     * Note that the input can also be a select. In the case of radio buttons\n     * returning one of the possible buttons is enough.\n     *\n     * If not found or exists outside the restricted area then returns `null`.\n     *\n     * @param {String} name the name of the input we want\n     * @param {String} srciframe the identifier of the iframe wanting it\n     */\n    function vle_get_input_element(name, srciframe) {\n        /* In the case of Moodle we are happy as long as the element is inside\n           something with the `formulation`-class. */\n        let initialcandidate = document.getElementById(srciframe);\n        let iter = initialcandidate;\n        while (iter && !iter.classList.contains('formulation')) {\n            iter = iter.parentElement;\n        }\n        if (iter && iter.classList.contains('formulation')) {\n            // iter now represents the borders of the question containing\n            // this IFRAME.\n            let possible = iter.querySelector('input[id$=\"_' + name + '\"]');\n            if (possible !== null) {\n                return possible;\n            }\n            // Radios have interesting ids, but the name makes sense\n            possible = iter.querySelector('input[id$=\"_' + name + '_1\"][type=radio]');\n            if (possible !== null) {\n                return possible;\n            }\n            possible = iter.querySelector('select[id$=\"_' + name + '\"]');\n            if (possible !== null) {\n                return possible;\n            }\n        }\n        // If none found within the question itself, search everywhere.\n        let possible = document.querySelector('.formulation input[id$=\"_' + name + '\"]');\n        if (possible !== null) {\n            return possible;\n        }\n        // Radios have interesting ids, but the name makes sense\n        possible = document.querySelector('.formulation input[id$=\"_' + name + '_1\"][type=radio]');\n        if (possible !== null) {\n            return possible;\n        }\n        possible = document.querySelector('.formulation select[id$=\"_' + name + '\"]');\n        return possible;\n    }\n\n    /**\n     * Triggers any VLE specific scripting related to updates of the given\n     * input element.\n     *\n     * @param {HTMLElement} inputelement the input element that has changed\n     */\n    function vle_update_input(inputelement) {\n        // Triggering a change event may be necessary.\n        const c = new Event('change');\n        inputelement.dispatchEvent(c);\n        // Also there are those that listen to input events.\n        const i = new Event('input');\n        inputelement.dispatchEvent(i);\n    }\n\n    /**\n     * Triggers any VLE specific scripting related to DOM updates.\n     *\n     * @param {HTMLElement} modifiedsubtreerootelement element under which changes may have happened.\n     */\n    function vle_update_dom(modifiedsubtreerootelement) {\n        CustomEvents.notifyFilterContentUpdated(modifiedsubtreerootelement);\n    }\n\n    /**\n     * Does HTML-string cleaning, i.e., removes any script payload. Returns\n     * a DOM version of the given input string.\n     *\n     * This is used when receiving replacement content for a div.\n     *\n     * @param {String} src a raw string to sanitise\n     */\n    function vle_html_sanitize(src) {\n        // This can be implemented with many libraries or by custom code\n        // however as this is typically a thing that a VLE might already have\n        // tools for we have it at this level so that the VLE can use its own\n        // tools that do things that the VLE developpers consider safe.\n\n        // As Moodle does not currently seem to have such a sanitizer in\n        // the core libraries, here is one implementation that shows what we\n        // are looking for.\n\n        // TO-DO: look into replacing this with DOMPurify or some such.\n\n        let parser = new DOMParser();\n        let doc = parser.parseFromString(src, \"text/html\");\n\n        // First remove all <script> tags. Also <style> as we do not want\n        // to include too much style.\n        for (let el of doc.querySelectorAll('script, style')) {\n            el.remove();\n        }\n\n        // Check all elements for attributes.\n        for (let el of doc.querySelectorAll('*')) {\n            for (let {name, value} of el.attributes) {\n                if (is_evil_attribute(name, value)) {\n                    el.removeAttribute(name);\n                }\n            }\n        }\n\n        return doc.body;\n    }\n\n    /**\n     * Utility function trying to determine if a given attribute is evil\n     * when sanitizing HTML-fragments.\n     *\n     * @param {String} name the name of an attribute.\n     * @param {String} value the value of an attribute.\n     */\n    function is_evil_attribute(name, value) {\n        const lcname = name.toLowerCase();\n        if (lcname.startsWith('on')) {\n            // We do not allow event listeners to be defined.\n            return true;\n        }\n        if (lcname === 'src' || lcname.endsWith('href')) {\n            // Do not allow certain things in the urls.\n            const lcvalue = value.replace(/\\s+/g, '').toLowerCase();\n            // Ignore es-lint false positive.\n            /* eslint-disable no-script-url */\n            if (lcvalue.includes('javascript:') || lcvalue.includes('data:text')) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n\n    /*************************************************************************\n     * Above this are the bits that one would probably tune when porting.\n     *\n     * Below is the actuall message handling and it should be left alone.\n     */\n    window.addEventListener(\"message\", (e) => {\n        // NOTE! We do not check the source or origin of the message in\n        // the normal way. All actions that can bypass our filters to trigger\n        // something are largely irrelevant and all traffic will be kept\n        // \"safe\" as anyone could be listening.\n\n        // All messages we receive are strings, anything else is for someone\n        // else and will be ignored.\n        if (!(typeof e.data === 'string' || e.data instanceof String)) {\n            return;\n        }\n\n        // That string is a JSON encoded dictionary.\n        let msg = null;\n        try {\n            msg = JSON.parse(e.data);\n        } catch (e) {\n            // Only JSON objects that are parseable will work.\n            return;\n        }\n\n        // All messages we handle contain a version field with a particular\n        // value, for now we leave the possibility open for that value to have\n        // an actual version number suffix...\n        if (!(('version' in msg) && msg.version.startsWith('STACK-JS'))) {\n            return;\n        }\n\n        // All messages we handle must have a source and a type,\n        // and that source must be one of the registered ones.\n        if (!(('src' in msg) && ('type' in msg) && (msg.src in IFRAMES))) {\n            return;\n        }\n        let element = null;\n        let input = null;\n\n        let response = {\n            version: 'STACK-JS:1.1.0'\n        };\n\n        switch (msg.type) {\n        case 'register-input-listener':\n            // 1. Find the input.\n            input = vle_get_input_element(msg.name, msg.src);\n\n            if (input === null) {\n                // Requested something that is not available.\n                response.type = 'error';\n                response.msg = 'Failed to connect to input: \"' + msg.name + '\"';\n                response.tgt = msg.src;\n                IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(response), '*');\n                return;\n            }\n\n            response.type = 'initial-input';\n            response.name = msg.name;\n            response.tgt = msg.src;\n\n            // 2. What type of an input is this? Note that we do not\n            // currently support all types in sensible ways. In particular,\n            // anything with multiple values will be a problem.\n            if (input.nodeName.toLowerCase() === 'select') {\n                response.value = input.value;\n                response['input-type'] = 'select';\n                response['input-readonly'] = input.hasAttribute('disabled');\n            } else if (input.type === 'checkbox') {\n                response.value = input.checked;\n                response['input-type'] = 'checkbox';\n                response['input-readonly'] = input.hasAttribute('disabled');\n            } else {\n                response.value = input.value;\n                response['input-type'] = input.type;\n                response['input-readonly'] = input.hasAttribute('readonly');\n            }\n            if (input.type === 'radio') {\n                response['input-readonly'] = input.hasAttribute('disabled');\n                response.value = '';\n                for (let inp of document.querySelectorAll('input[type=radio][name=' + CSS.escape(input.name) + ']')) {\n                    if (inp.checked) {\n                        response.value = inp.value;\n                    }\n                }\n            }\n\n            // 3. Add listener for changes of this input.\n            if (input.id in INPUTS) {\n                if (msg.src in INPUTS[input.id]) {\n                    // DO NOT BIND TWICE!\n                    return;\n                }\n                if (input.type !== 'radio') {\n                    INPUTS[input.id].push(msg.src);\n                } else {\n                    let radgroup = document.querySelectorAll('input[type=radio][name=' + CSS.escape(input.name) + ']');\n                    for (let inp of radgroup) {\n                        INPUTS[inp.id].push(msg.src);\n                    }\n                }\n            } else {\n                if (input.type !== 'radio') {\n                    INPUTS[input.id] = [msg.src];\n                } else {\n                    let radgroup = document.querySelectorAll('input[type=radio][name=' + CSS.escape(input.name) + ']');\n                    for (let inp of radgroup) {\n                        INPUTS[inp.id] = [msg.src];\n                    }\n                }\n                if (input.type !== 'radio') {\n                    input.addEventListener('change', () => {\n                        if (DISABLE_CHANGES) {\n                            return;\n                        }\n                        let resp = {\n                            version: 'STACK-JS:1.0.0',\n                            type: 'changed-input',\n                            name: msg.name\n                        };\n                        if (input.type === 'checkbox') {\n                            resp['value'] = input.checked;\n                        } else {\n                            resp['value'] = input.value;\n                        }\n                        for (let tgt of INPUTS[input.id]) {\n                            resp['tgt'] = tgt;\n                            IFRAMES[tgt].contentWindow.postMessage(JSON.stringify(resp), '*');\n                        }\n                    });\n                } else {\n                    // Assume that if we received a radio button that is safe\n                    // then all its friends are also safe.\n                    let radgroup = document.querySelectorAll('input[type=radio][name=' + CSS.escape(input.name) + ']');\n                    radgroup.forEach((inp) => {\n                        inp.addEventListener('change', () => {\n                            if (DISABLE_CHANGES) {\n                                return;\n                            }\n                            let resp = {\n                                version: 'STACK-JS:1.0.0',\n                                type: 'changed-input',\n                                name: msg.name\n                            };\n                            if (inp.checked) {\n                                resp.value = inp.value;\n                            } else {\n                                // What about unsetting?\n                                return;\n                            }\n                            for (let tgt of INPUTS[inp.id]) {\n                                resp['tgt'] = tgt;\n                                IFRAMES[tgt].contentWindow.postMessage(JSON.stringify(resp), '*');\n                            }\n                        });\n                    });\n                }\n            }\n\n            if (('track-input' in msg) && msg['track-input'] && input.type !== 'radio') {\n                if (input.id in INPUTS_INPUT_EVENT) {\n                    if (msg.src in INPUTS_INPUT_EVENT[input.id]) {\n                        // DO NOT BIND TWICE!\n                        return;\n                    }\n                    INPUTS_INPUT_EVENT[input.id].push(msg.src);\n                } else {\n                    INPUTS_INPUT_EVENT[input.id] = [msg.src];\n\n                    input.addEventListener('input', () => {\n                        if (DISABLE_CHANGES) {\n                            return;\n                        }\n                        let resp = {\n                            version: 'STACK-JS:1.0.0',\n                            type: 'changed-input',\n                            name: msg.name\n                        };\n                        if (input.type === 'checkbox') {\n                            resp['value'] = input.checked;\n                        } else {\n                            resp['value'] = input.value;\n                        }\n                        for (let tgt of INPUTS_INPUT_EVENT[input.id]) {\n                            resp['tgt'] = tgt;\n                            IFRAMES[tgt].contentWindow.postMessage(JSON.stringify(resp), '*');\n                        }\n                    });\n                }\n            }\n\n            // 4. Let the requester know that we have bound things\n            //    and let it know the initial value.\n            if (!(msg.src in INPUTS[input.id])) {\n                IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(response), '*');\n            }\n\n            break;\n        case 'changed-input':\n            // 1. Find the input.\n            input = vle_get_input_element(msg.name, msg.src);\n\n            if (input === null) {\n                // Requested something that is not available.\n                const ret = {\n                    version: 'STACK-JS:1.0.0',\n                    type: 'error',\n                    msg: 'Failed to modify input: \"' + msg.name + '\"',\n                    tgt: msg.src\n                };\n                IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(ret), '*');\n                return;\n            }\n\n            // Disable change events.\n            DISABLE_CHANGES = true;\n\n            // TO-DO: Radio buttons should we check that value is possible?\n            if (input.type === 'checkbox') {\n                input.checked = msg.value;\n            } else {\n                input.value = msg.value;\n            }\n\n            // Trigger VLE side actions.\n            vle_update_input(input);\n\n            // Enable change tracking.\n            DISABLE_CHANGES = false;\n\n            // Tell all other frames, that care, about this.\n            response.type = 'changed-input';\n            response.name = msg.name;\n            response.value = msg.value;\n\n            for (let tgt of INPUTS[input.id]) {\n                if (tgt !== msg.src) {\n                    response.tgt = tgt;\n                    IFRAMES[tgt].contentWindow.postMessage(JSON.stringify(response), '*');\n                }\n            }\n\n            break;\n        case 'toggle-visibility':\n            // 1. Find the element.\n            element = vle_get_element(msg.target);\n\n            if (element === null) {\n                // Requested something that is not available.\n                const ret = {\n                    version: 'STACK-JS:1.0.0',\n                    type: 'error',\n                    msg: 'Failed to find element: \"' + msg.target + '\"',\n                    tgt: msg.src\n                };\n                IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(ret), '*');\n                return;\n            }\n\n            // 2. Toggle display setting.\n            if (msg.set === 'show') {\n                element.style.display = 'block';\n                // If we make something visible we should let the VLE know about it.\n                vle_update_dom(element);\n            } else if (msg.set === 'hide') {\n                element.style.display = 'none';\n            }\n\n            break;\n        case 'change-content':\n            // 1. Find the element.\n            element = vle_get_element(msg.target);\n\n            if (element === null) {\n                // Requested something that is not available.\n                response.type = 'error';\n                response.msg = 'Failed to find element: \"' + msg.target + '\"';\n                response.tgt = msg.src;\n                IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(response), '*');\n                return;\n            }\n\n            // 2. Secure content.\n            // 3. Switch the content.\n            element.replaceChildren(vle_html_sanitize(msg.content));\n            // If we tune something we should let the VLE know about it.\n            vle_update_dom(element);\n\n            break;\n        case 'get-content':\n            // 1. Find the element.\n            element = vle_get_element(msg.target);\n            // 2. Build the message.\n            response.type = 'xfer-content';\n            response.tgt = msg.src;\n            response.target = msg.target;\n            response.content = null;\n            if (element !== null) {\n                // TO-DO: Should we sanitise the content? Probably not as using\n                // this to interrogate neighbouring questions only allows\n                // messing with the other questions and not anything outside\n                // them. If we do not sanitise it we allow some interesting\n                // question-analytics tooling, and if we do we really don't\n                // gain anything sensible.\n                // Matti's opinnion is to not sanitise at this point as\n                // interraction between questions is not inherently evil\n                // and could be of use even at the level of reading code from\n                // from other questions.\n                response.content = element.innerHTML;\n            }\n            IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(response), '*');\n            break;\n        case 'resize-frame':\n            // 1. Find the frames wrapper div.\n            element = IFRAMES[msg.src].parentElement;\n\n            // 2. Set the wrapper size.\n            element.style.width = msg.width;\n            element.style.height = msg.height;\n\n            // 3. Reset the frame size.\n            IFRAMES[msg.src].style.width = '100%';\n            IFRAMES[msg.src].style.height = '100%';\n\n            // Only touching the size but still let the VLE know.\n            vle_update_dom(element);\n            break;\n        case 'ping':\n            // This is for testing the connection. The other end will\n            // send these untill it receives a reply.\n            // Part of the logic for startup.\n            response.type = 'ping';\n            response.tgt = msg.src;\n\n            IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(response), '*');\n            return;\n        case 'initial-input':\n        case 'error':\n            // These message types are for the other end.\n            break;\n\n        default:\n            // If we see something unexpected, lets let the other end know\n            // and make sure that they know our version. Could be that this\n            // end has not been upgraded.\n            response.type = 'error';\n            response.msg = 'Unknown message-type: \"' + msg.type + '\"';\n            response.tgt = msg.src;\n\n            IFRAMES[msg.src].contentWindow.postMessage(JSON.stringify(response), '*');\n        }\n\n    });\n\n\n\n        /* To avoid any logic that forbids IFRAMEs in the VLE output one can\n           also create and register that IFRAME through this logic. This\n           also ensures that all relevant security settigns for that IFRAME\n           have been correctly tuned.\n\n           Here the IDs are for the secrect identifier that may be present\n           inside the content of that IFRAME and for the question that contains\n           it. One also identifies a DIV element that marks the position of\n           the IFRAME and limits the size of the IFRAME (all IFRAMEs this\n           creates will be 100% x 100%).\n\n           @param {String} iframeid the id that the IFRAME has stored inside\n                  it and uses for communication.\n           @param {String} the full HTML content of that IFRAME.\n           @param {String} targetdivid the id of the element (div) that will\n                  hold the IFRAME.\n           @param {String} title a descriptive name for the iframe.\n           @param {bool} scrolling whether we have overflow:scroll or\n                  overflow:hidden.\n           @param {bool} evil allows certain special cases to act without\n                  sandboxing, this is a feature that will be removed so do\n                  not rely on it only use it to test STACK-JS before you get your\n                  thing to run in a sandbox.\n         */\n        function create_iframe(iframeid, content, targetdivid, title, scrolling, evil) {\n            const frm = document.createElement('iframe');\n            frm.id = iframeid;\n            frm.style.width = '100%';\n            frm.style.height = '100%';\n            frm.style.border = 0;\n            if (scrolling === false) {\n                frm.scrolling = 'no';\n                frm.style.overflow = 'hidden';\n            } else {\n                frm.scrolling = 'yes';\n            }\n            frm.title = title;\n            // Somewhat random limitation.\n            frm.referrerpolicy = 'no-referrer';\n            // We include that allow-downloads as an example of XLS-\n            // document building in JS has been seen.\n            // UNDER NO CIRCUMSTANCES DO WE ALLOW-SAME-ORIGIN!\n            // That would defeat the whole point of this.\n            if (!evil) {\n                frm.sandbox = 'allow-scripts allow-downloads';\n            }\n\n            // As the SOP is intentionally broken we need to allow\n            // scripts from everywhere.\n\n            // NOTE: this bit commented out as long as the csp-attribute\n            // is not supported by more browsers.\n            // frm.csp = \"script-src: 'unsafe-inline' 'self' '*';\";\n            // frm.csp = \"script-src: 'unsafe-inline' 'self' '*';img-src: '*';\";\n\n            // Plug the content into the frame.\n            frm.srcdoc = content;\n\n            // The target DIV will have its children removed.\n            // This allows that div to contain some sort of loading\n            // indicator until we plug in the frame.\n            // Naturally the frame will then start to load itself.\n            document.getElementById(targetdivid).replaceChildren(frm);\n            IFRAMES[iframeid] = frm;\n\n\n    };"
  },
  {
    "path": "js/pretext-webwork/2.16/pretext-webwork.js",
    "content": "//Critical:\n// TODO: Think about what should be done for an essay question.\n\n//Accessibility:\n\n//Enhancement:\n// TODO: In a scaffold problem, adjust the green bar for when one part is correct.\n// TODO: Have randomize check that new seed is actually producing new HTML.\n// TODO: Don't offer randomize or button unless we know a new version can be produced after trying a few seeds.\n// TODO: In a staged problem, Make Interactive button is adjacent to solution knowls; move it.\n// TODO: MathQuill\n// TODO: Image pop up.\n// TODO: Deal with singleResult MultiAnswer problems.\n\n//Styling:\n// TODO: Review all styling in all scenarios (staged/not, correct/partly-correct/incorrect/blank, single/multiple)\n// TODO: Sean: I think I'd like to see a slightly larger font size on the buttons\n\nfunction handleWW(ww_id, action) {\n    const ww_container = document.getElementById(ww_id);\n    const ww_domain = ww_container.dataset.domain;\n    const ww_problemSource = ww_container.dataset.problemsource;\n    const ww_sourceFilePath = ww_container.dataset.sourcefilepath;\n    const ww_course_id = ww_container.dataset.courseid;\n    const ww_user_id = ww_container.dataset.userid;\n    const ww_course_password = ww_container.dataset.coursepassword;\n    const localize_correct = (ww_container.dataset.localizeCorrect ? ww_container.dataset.localizeCorrect : \"Correct\");\n    const localize_incorrect = (ww_container.dataset.localizeIncorrect ? ww_container.dataset.localizeIncorrect : \"Incorrect\");\n    const localize_check_responses = (ww_container.dataset.localizeCheckResponses ? ww_container.dataset.localizeCheckResponses : \"Check Responses\");\n    const localize_randomize = (ww_container.dataset.localizeRandomize ? ww_container.dataset.localizeRandomize : \"Randomize\");\n    const localize_reset = (ww_container.dataset.localizeReset ? ww_container.dataset.localizeReset : \"Reset\");\n    // will be null on pages generated prior to late December 2022\n    const activate_button = document.getElementById(ww_id + '-button')\n\n    // Set the current seed\n    if (!action) ww_container.dataset.current_seed = ww_container.dataset.seed;\n    else if (action == 'randomize') ww_container.dataset.current_seed = Number(ww_container.dataset.current_seed) + 100;\n\n    let loader = document.createElement('div');\n    loader.style.position = 'absolute';\n    loader.style.left = 0;\n    loader.style.top = 0;\n    loader.style.backgroundColor = 'rgba(0.2, 0.2, 0.2, 0.4)';\n    loader.style.color = 'white';\n    loader.style.width = '100%';\n    loader.style.height = '100%';\n    loader.style.display = 'flex';\n    loader.style.alignItems = 'center';\n    loader.style.justifyContent = 'center';\n    loader.style.marginTop = '0';\n    loader.tabIndex = -1;\n    const loaderText = document.createElement('span');\n    loaderText.textContent = 'Loading';\n    loaderText.style.fontSize = '2rem';\n    loader.appendChild(loaderText);\n    ww_container.appendChild(loader);\n    loader.focus();\n\n    if (!action) {\n        // Determine if static version shows hints, solutions, or answers and save that information in the container dataset for later runs.\n        ww_container.dataset.hasHint = ww_container.getElementsByClassName('hint').length > 0;\n        ww_container.dataset.hasSolution = ww_container.getElementsByClassName('solution').length > 0;\n        ww_container.dataset.hasAnswer = ww_container.getElementsByClassName('answer').length > 0;\n        // Get (possibly localized) label text for hints and solutions.\n        ww_container.dataset.hintLabelText = ww_container.dataset.hasHint == 'true'\n            ? ww_container.querySelectorAll('.hint-knowl span.type')[0].textContent : 'Hint';\n        ww_container.dataset.solutionLabelText = ww_container.dataset.hasSolution == 'true'\n            ? ww_container.querySelectorAll('.solution-knowl span.type')[0].textContent : 'Solution';\n\n        ww_container.tabIndex = -1;\n    }\n\n    let url;\n\n    if (action == 'check') {\n        const iframe = ww_container.querySelector('.problem-iframe');\n        const formData = new FormData(iframe.contentDocument.getElementById(ww_id + \"-form\"));\n        const params = new URLSearchParams(formData);\n        url = new URL(ww_domain + '/webwork2/html2xml?' + params.toString())\n        url.searchParams.append(\"answersSubmitted\", '1');\n        url.searchParams.append('WWsubmit', \"1\");\n    } else {\n        url = new URL(ww_domain + '/webwork2/html2xml');\n        url.searchParams.append(\"problemSeed\", ww_container.dataset.current_seed);\n        if (ww_problemSource) url.searchParams.append(\"problemSource\", ww_problemSource);\n        else if (ww_sourceFilePath) url.searchParams.append(\"sourceFilePath\", ww_sourceFilePath);\n        url.searchParams.append(\"answersSubmitted\", '0');\n        url.searchParams.append(\"displayMode\", \"MathJax\");\n        url.searchParams.append(\"courseID\", ww_course_id);\n        url.searchParams.append(\"userID\", ww_user_id);\n        url.searchParams.append(\"course_password\", ww_course_password);\n        url.searchParams.append(\"outputformat\", \"raw\");\n        // note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n        url.searchParams.append(\"showSolutions\", ww_container.dataset.hasSolution == 'true' ? '1' : '0');\n        url.searchParams.append(\"showHints\", ww_container.dataset.hasHint == 'true' ? '1' : '0');\n        url.searchParams.append(\"problemUUID\",ww_id);\n    }\n\n    // get the json and do stuff with what we get\n    $.getJSON(url.toString(), (data) => {\n        // Create the form that will contain the text and input fields of the interactive problem.\n        const form = document.createElement(\"form\");\n        form.id = ww_id + \"-form\";\n\n        // Create a div for the problem text.\n        const body_div = document.createElement(\"div\");\n        body_div.id = ww_id + \"-body\";\n        body_div.classList.add(\"exercise\", \"exercise-like\");\n        body_div.lang = data.lang;\n        body_div.dir = data.dir;\n\n        // Dump the problem text, answer blanks, etc.\n        body_div.innerHTML = data.rh_result.text;\n\n        // Replace all hn headings with h6 headings.\n        for (const tag_name of ['h6', 'h5', 'h4', 'h3', 'h2', 'h1']) {\n            const headings = body_div.getElementsByTagName(tag_name);\n            for (heading of headings) {\n                const new_heading = document.createElement(\"h6\");\n                new_heading.innerHTML = heading.innerHTML;\n                cloneAttributes(new_heading, heading);\n                new_heading.classList.add('webwork-part');\n                heading.replaceWith(new_heading);\n            }\n        }\n\n        adjustSrcHrefs(body_div, ww_domain);\n\n        translateHintSol(ww_id, body_div, ww_domain,\n            ww_container.dataset.hasHint == 'true', ww_container.dataset.hasSolution == 'true',\n            ww_container.dataset.hintLabelText, ww_container.dataset.solutionLabelText)\n\n        // insert our cleaned up problem text\n        form.appendChild(body_div);\n\n        // Set up hidden input fields that the form uses\n        const wwInputs = {\n            problemSeed:      data.inputs_ref.problemSeed,\n            problemUUID:      data.inputs_ref.problemUUID,\n            psvn:             data.inputs_ref.psvn,\n            courseName:       ww_course_id,\n            courseID:         ww_course_id,\n            userID:           ww_user_id,\n            course_password:  ww_course_password,\n            displayMode:      \"MathJax\",\n            session_key:      data.rh_result.session_key,\n            outputformat:     \"raw\",\n            language:         data.formLanguage,\n            showSummary:      data.showSummary,\n            // note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n            showSolutions:    ww_container.dataset.hasSolution == 'true' ? '1' : '0',\n            showHints:        ww_container.dataset.hasHint == 'true' ? '1' : '0',\n            forcePortNumber:  data.forcePortNumber\n        };\n\n        if (ww_sourceFilePath) wwInputs.sourceFilePath = ww_sourceFilePath;\n        else if (ww_problemSource) wwInputs.problemSource = ww_problemSource;\n\n        for (const wwInputName of Object.keys(wwInputs)) {\n            const input = document.createElement('input');\n            input.type = 'hidden';\n            input.name = wwInputName;\n            input.value = wwInputs[wwInputName];\n            form.appendChild(input);\n        }\n\n        // Prepare answers object\n        const answers = {};\n        // id the answers even if we won't populate them\n        Object.keys(data.rh_result.answers).forEach(function(id) {\n            answers[id] = {};\n        }, data.rh_result.answers);\n        if (ww_container.dataset.hasAnswer == 'true') {\n            // Update answer data\n            Object.keys(data.rh_result.answers).forEach(function(id) {\n                answers[id] = {\n                    correct_ans: this[id].correct_ans,\n                    correct_ans_latex_string: this[id].correct_ans_latex_string,\n                    correct_choice: this[id].correct_choice\n                };\n            }, data.rh_result.answers);\n        }\n\n        let buttonContainer = ww_container.querySelector('.problem-buttons.webwork');\n        // Create the submission buttons if they have not yet been created.\n        if (!buttonContainer) {\n            // Hide the original div that contains the old make active button.\n            ww_container.querySelector('.problem-buttons').classList.add('hidden-content');\n            // And the newer activate button if it is there\n            if (activate_button != null) {activate_button.classList.add('hidden-content');};\n\n            // Create a new div for the webwork buttons.\n            buttonContainer = document.createElement('div');\n            buttonContainer.classList.add('problem-buttons', 'webwork');\n            if (activate_button != null) {\n                // Make sure the button container follows the activate button in the DOM\n                activate_button.after(buttonContainer);\n            } else {\n                ww_container.prepend(buttonContainer);\n            }\n\n            // Check button\n            const check = document.createElement(\"button\");\n            check.type = \"button\";\n            check.id = ww_id + '-check';\n\t\t\tcheck.style.marginRight = \"0.25rem\";\n            check.classList.add('webwork-button');\n\n            // Adjust if more than one answer to check\n            const answerCount = body_div.querySelectorAll(\"input:not([type=hidden])\").length +\n                body_div.querySelectorAll(\"select:not([type=hidden])\").length;\n\n            check.textContent = localize_check_responses;\n            check.addEventListener('click', () => handleWW(ww_id, \"check\"));\n\n            buttonContainer.appendChild(check);\n\n            // Show correct answers button if original PTX has answer knowl.\n            if (ww_container.dataset.hasAnswer == 'true') {\n                const correct = document.createElement(\"button\");\n                correct.classList.add(\"show-correct\", 'webwork-button');\n                correct.type = \"button\";\n\t\t\t\tcorrect.style.marginRight = \"0.25rem\";\n                correct.textContent = answerCount > 1 ? \"Show Correct Answers\" : \"Show Correct Answer\";\n                correct.addEventListener('click', () => WWshowCorrect(ww_id, answers));\n                buttonContainer.appendChild(correct);\n            }\n\n            // randomize button\n            const randomize = document.createElement(\"button\")\n            randomize.type = \"button\";\n            randomize.classList.add('webwork-button');\n\t\t\trandomize.style.marginRight = \"0.25rem\";\n\t\t\trandomize.textContent = localize_randomize;\n            randomize.addEventListener('click', () => handleWW(ww_id, 'randomize'));\n            buttonContainer.appendChild(randomize)\n\n            // reset button\n            const reset = document.createElement(\"button\")\n            reset.type = \"button\"\n            reset.classList.add('webwork-button');\n            reset.textContent = localize_reset;\n            reset.addEventListener('click', () => resetWW(ww_id));\n            buttonContainer.appendChild(reset)\n        } else {\n            // Update the click handler for the show correct button.\n            if (ww_container.dataset.hasAnswer == 'true') {\n                const correct = buttonContainer.querySelector('.show-correct');\n                const correctNew = correct.cloneNode(true);\n                correctNew.addEventListener('click', () => WWshowCorrect(ww_id, answers));\n                correct.replaceWith(correctNew);\n            }\n        }\n\n        if (action == 'check') {\n            // Runestone trigger\n            // TODO: chondition on platform=Runestone\n            $(\"body\").trigger('runestone_ww_check', data)\n\n            const inputs = body_div.querySelectorAll(\"input:not([type=hidden])\");\n            for (const input of inputs) {\n                const name = input.name;\n                if (input.type == 'text' && answers[name]) {\n                    const score = data.rh_result.answers[name].score;\n                    let title = '';\n                    if (score == 1) {\n                        title = `<span class=\"correct\">${localize_correct}!</span>`;\n                    } else if (score > 0 && score < 1) {\n                        title = `<span class=\"partly-correct\">${Math.round(score * 100)}% ${localize_correct}.</span>`;\n                    } else if (data.rh_result.answers[name].student_ans == '') {\n                        // do nothing if the submitted answer is blank and the problem has not already been scored as correct\n                        continue;\n                    } else if (score == 0) {\n                        title = `<span class=\"incorrect\">${localize_incorrect}.</span>`;\n                    }\n\n                    input.after(createFeedbackButton(`${ww_id}-${name}`, title, data.rh_result.answers[name].ans_message));\n                }\n\n                if (input.type == 'radio' && answers[name]) {\n                    if (input.value == data.rh_result.answers[name].student_value) {\n                        const feedbackButton = createFeedbackButton(`${ww_id}-${name}`,\n                            data.rh_result.answers[name].student_value == data.rh_result.answers[name].correct_choice\n                            ? `<span class=\"correct\">${localize_correct}!</span>` : `<span class=\"incorrect\">${localize_incorrect}.</span>`)\n                        feedbackButton.style.marginRight = '0.25rem';\n                        input.after(feedbackButton);\n                    }\n                }\n            }\n\n            const hiddenInputs = body_div.querySelectorAll(\"input[type=hidden]\");\n            for (const input of hiddenInputs) {\n                const name = input.name;\n\t\t\t\tif (!input.nextElementSibling) continue;\n\t\t\t\tconst graphtoolContainer = input.nextElementSibling.nextElementSibling;\n                if (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n\t\t\t\t\tgraphtoolContainer.style.position = 'relative';\n                    const score = data.rh_result.answers[name].score;\n                    let title = '';\n                    if (score == 1) {\n                        title = `<span class=\"correct\">${localize_correct}!</span>`;\n                    } else if (score > 0 && score < 1) {\n                        title = `<span class=\"partly-correct\">${Math.round(score * 100)}% ${localize_correct}.</span>`;\n                    } else if (data.rh_result.answers[name].student_ans == '') {\n                        // do nothing if the submitted answer is blank and the problem has not already been scored as correct\n                        continue;\n                    } else if (score == 0) {\n                        title = `<span class=\"incorrect\">${localize_incorrect}.</span>`;\n                    }\n\n\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`, title, data.rh_result.answers[name].ans_message);\n\t\t\t\t\tfeedbackButton.style.position = 'absolute';\n\t\t\t\t\tfeedbackButton.style.left = '100%';\n\t\t\t\t\tfeedbackButton.style.top = 0;\n\t\t\t\t\tfeedbackButton.style.marginLeft = '0.5rem';\n\t\t\t\t\tfeedbackButton.dataset.container = 'body';\n                    graphtoolContainer.appendChild(feedbackButton);\n                }\n\t\t\t}\n\n\t\t\tconst selects = body_div.querySelectorAll(\"select:not([type=hidden])\");\n            for (const select of selects) {\n                const name = select.name;\n                const feedbackButton = createFeedbackButton(`${ww_id}-${name}`,\n                    data.rh_result.answers[name].score == 1 ? `<span class=\"correct\">${localize_correct}!</span>`\n                    : `<span class=\"incorrect\">${localize_incorrect}.</span>`)\n                feedbackButton.style.marginRight = '0.25rem';\n                feedbackButton.style.marginLeft = '0.5rem';\n                select.after(feedbackButton);\n            }\n        }\n\n        let iframeContents = '<!DOCTYPE html><head>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/jquery/dist/jquery.min.js\"></script>' +\n            `<script>window.MathJax = {\n              tex: {\n                inlineMath: [['\\\\\\\\(','\\\\\\\\)']],\n                tags: \"none\",\n                useLabelIds: true,\n                tagSide: \"right\",\n                tagIndent: \".8em\",\n                packages: {'[+]': ['base', 'extpfeil', 'ams', 'amscd', 'newcommand', 'knowl']}\n              },\n              options: {\n                ignoreHtmlClass: \"tex2jax_ignore\",\n                processHtmlClass: \"has_am\",\n                renderActions: {\n                    findScript: [10, function (doc) {\n                        document.querySelectorAll('script[type^=\"math/tex\"]').forEach(function(node) {\n                            const display = !!node.type.match(/; *mode=display/);\n                            const math = new doc.options.MathItem(node.textContent, doc.inputJax[0], display);\n                            const text = document.createTextNode('');\n                            node.parentNode.replaceChild(text, node);\n                            math.start = {node: text, delim: '', n: 0};\n                            math.end = {node: text, delim: '', n: 0};\n                            doc.math.push(math);\n                        });\n                    }, '']\n                },\n              },\n              chtml: {\n                scale: 0.88,\n                mtextInheritFont: true\n              },\n              loader: {\n                load: ['input/asciimath', '[tex]/extpfeil', '[tex]/amscd', '[tex]/newcommand', '[pretext]/mathjaxknowl3.js'],\n                paths: {pretext: \"https://pretextbook.org/js/lib\"},\n              },\n            };\n            </script>` +\n            '<script src=\"' + ww_domain + '/webwork2_files/mathjax/es5/tex-chtml.js\" id=\"MathJax-script\" defer></script>' +\n            '<script src=\"https://pretextbook.org/js/lib/knowl.js\" defer></script>' +\n            '<link rel=\"stylesheet\" href=\"' + ww_domain + '/webwork2_files/js/vendor/bootstrap/css/bootstrap.css\"/>' +\n            '<link rel=\"stylesheet\" href=\"' + ww_domain + '/webwork2_files/themes/math4/math4.css\"/>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/js/vendor/bootstrap/js/bootstrap.js\" id=\"MathJax-script\" defer></script>';\n\n        // Determine javascript and css dependencies\n        const extra_css_files = [];\n        const extra_js_files = [];\n        //if (data.rh_result.flags.extra_js_files) {\n        //    for (const jsFile of data.rh_result.flags.extra_js_files) {\n        //        if (jsFile.file == \"js/apps/GraphTool/graphtool.min.js\" || jsFile.file == \"js/apps/Scaffold/scaffold.js\") {\n        //            extra_css_files.push({ file: 'js/vendor/bootstrap/css/bootstrap.css', external: '0' });\n        //            extra_css_files.push({ file: 'themes/math4/math4.css', external: '0' });\n        //            extra_js_files.push({ file: 'js/vendor/bootstrap/js/bootstrap.js', external: '0' });\n        //        }\n        //    }\n        //}\n\n        if (data.rh_result.flags.extra_css_files) data.rh_result.flags.extra_css_files.unshift(...extra_css_files);\n        else data.rh_result.flags.extra_css_files = extra_css_files;\n        for (const cssFile of data.rh_result.flags.extra_css_files) {\n            iframeContents += '<link rel=\"stylesheet\" href=\"' + (cssFile.external !== '1' ? (ww_domain + '/webwork2_files/') : '') + cssFile.file + '\"/>';\n        }\n\n        if (data.rh_result.flags.extra_js_files) data.rh_result.flags.extra_js_files.unshift(...extra_js_files);\n        else data.rh_result.flags.extra_js_files = extra_js_files;\n        for (const jsFile of data.rh_result.flags.extra_js_files) {\n            iframeContents += '<script src=\"' + (jsFile.external !== '1' ? (ww_domain + '/webwork2_files/') : '') + jsFile.file + '\" ' +\n                Object.keys(jsFile.attributes || {}).reduce((ret, key) => {\n                    ret += key + '=\"' + jsFile.attributes[key] + '\" '; return ret;\n                }, \"\") + '></script>';\n        }\n\n        iframeContents +=\n            '<link rel=\"stylesheet\" href=\"https://pretextbook.org/css/0.31/pretext_add_on.css\"/>' +\n            '<link rel=\"stylesheet\" href=\"https://pretextbook.org/css/0.31/knowls_default.css\"/>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js\"></script>' +\n            `<style>\n            html { overflow-y: hidden; }\n            html body { background:unset; margin: 0; }\n            body { font-size: initial; line-height: initial; }\n            .hidden-content { display: none; }\n            input[type=\"text\"], input[type=\"radio\"], label, select {\n                height: auto;\n                width: auto;\n                max-width: unset;\n                margin: 0;\n                font-size: initial;\n                font-family: sans-serif;\n                line-height: initial;\n            }\n            input[type=\"text\"] {\n                padding: 1px;\n                padding-inline: 2px;\n                border-width: 1px;\n                border-style: inset;\n                border-color: rgb(133, 133, 133);\n                border-radius: 0;\n                box-shadow: unset;\n                transition: none;\n            }\n            input[type=\"text\"]:focus, input[type=\"text\"]:active {\n                box-shadow: unset;\n                border-width: 1px;\n                border-style: inset;\n                border-radius: 4px;\n                border-color: rgb(133, 133, 133);\n                outline: auto;\n            }\n            input[type=\"radio\"] {\n                box-sizing: border-box;\n                margin-block: 3px 0;\n                margin-inline: 5px 3px;\n                vertical-align: unset;\n            }\n            label {\n                display: inline-block;\n            }\n            select {\n            \tmargin: 0;\n            \tborder-width: 1px;\n            \tborder-style: inset;\n            \tdisplay: inline-block;\n            \tpadding-block: 1px;\n            \tvertical-align: baseline;\n                background-color: unset;\n                padding-inline: 0;\n            }\n            .popover-title, .popover-content {\n                text-align: center;\n            }\n            .popover-title.correct {\n                background-color: #8F8;\n            }\n            .accordion-body.expanded {\n                overflow-y: visible;\n                overflow-x: clip;\n            }\n\t\t\t.graphtool-answer-container .graphtool-graph {\n\t\t\t\tmargin: 0;\n\t\t\t\twidth: 300px;\n\t\t\t\theight: 300px;\n\t\t\t}\n            div.PGML img.image-view-elt {\n                 max-width:100%;\n            }\n            </style>` +\n            '</head><body><main class=\"pretext-content\">' + form.outerHTML + '</main></body>' +\n            '</html>';\n\n        let iframe;\n        // If there is no action this is the initialization call.\n        if (!action) {\n            // Create the iframe.\n            iframe = document.createElement('iframe');\n            iframe.style.width = '1px';\n            iframe.style.minWidth = '100%';\n            iframe.classList.add('problem-iframe');\n\n            // Hide the static problem\n            ww_container.querySelector('.problem-contents').classList.add('hidden-content');\n\n            if (activate_button != null) {\n                // Make sure the iframe follows the activate button in the DOM\n                activate_button.after(iframe);\n            } else {\n                ww_container.prepend(iframe);\n            }\n\n            iFrameResize({ checkOrigin: false, scrolling: 'omit', heightCalculationMethod: 'min' }, iframe);\n\n            iframe.addEventListener('load', () => {\n                // Set up form submission from inside the iframe.\n                const iframeForm = iframe.contentDocument.getElementById(ww_id + '-form');\n                iframeForm.addEventListener('submit', (e) => {\n                    handleWW(ww_id, \"check\");\n                    e.preventDefault();\n                });\n\n                iframe.contentDocument.querySelectorAll('.collapse.in').forEach(collapse => collapse.classList.add('expanded'));\n                iframe.contentWindow.jQuery('.collapse').on('shown', function(e) { if (e.target != this) return; this.classList.add('expanded'); });\n                iframe.contentWindow.jQuery('.collapse').on('hide', function(e) { if (e.target != this) return; this.classList.remove('expanded'); });\n\n                iframe.contentDocument.querySelectorAll(\"button.ww-feedback[data-content]\").forEach(button => {\n                    iframe.contentWindow.jQuery(button).popover(\"show\");\n                    const content = iframe.contentDocument.getElementById(button.id.replace(\"-feedback-button\", \"-content\"));\n                    const popover = content.parentNode.parentNode;\n                    popover.id = button.id.replace(\"-feedback-button\", \"-feedback\")\n                    button.setAttribute('aria-describedby', popover.id);\n                    if (button.previousElementSibling)\n                        button.previousElementSibling.setAttribute('aria-describedby', popover.id);\n                    popover.querySelector('.arrow').remove();\n                    const title = popover.querySelector('.popover-title');\n                    if (button.dataset.emptyContent) {\n                        title.style.borderBottomWidth = 0;\n                        content.parentNode.remove();\n                    }\n                    if (title.textContent == localize_correct + '!') title.classList.add('correct');\n                });\n                iframe.contentWindow.MathJax.startup.promise.then(() => iframe.contentWindow.MathJax.typesetPromise(['.popover', '.popover-content']));\n            });\n        } else {\n            iframe = ww_container.querySelector('.problem-iframe');\n        }\n\n        iframe.srcdoc = iframeContents;\n\n        iframe.addEventListener('load', () => {\n            // Remove the loader overlay\n            loader.remove();\n        }, { once: true })\n\n        // Place focus on the problem.\n        ww_container.focus()\n    });\n}\n\nfunction WWshowCorrect(ww_id, answers) {\n    const ww_container = document.getElementById(ww_id);\n    const iframe = ww_container.querySelector('.problem-iframe');\n\n    const body = iframe.contentDocument.getElementById(ww_id + '-body')\n    $(\"body\").trigger(\"runestone_show_correct\", {\n        \"ww_id\": ww_id,\n        \"answers\": answers\n    });\n\n    let inputs = body.querySelectorAll(\"input:not([type=hidden])\");\n    for (const input of inputs) {\n        const name = input.name;\n        const span_id = `${ww_id}-${name}-correct`;\n\n        if (input.type == 'text' && answers[name] && !(iframe.contentDocument.getElementById(span_id))) {\n            const feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n            if (feedbackButton) {\n                feedbackButton.remove();\n                iframe.contentWindow.jQuery(feedbackButton).popover(\"hide\");\n            }\n            label = iframe.contentDocument.getElementById(`${span_id}-label`);\n            if (label) {\n                label.parentElement.insertBefore(input, label);\n                label.remove();\n            }\n            input.type = \"hidden\";\n            // we need to convert things like &lt; in answers to <\n            const correct_ans_text = iframe.contentDocument.createElement('div');\n            correct_ans_text.innerHTML = answers[name].correct_ans;\n            input.value = correct_ans_text.textContent;\n            const show_span = iframe.contentDocument.createElement('span');\n            show_span.id = span_id;\n            show_span.appendChild(answers[name].correct_ans_latex_string\n                ? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n                : iframe.contentDocument.createTextNode(answers[name].correct_ans));\n            input.parentElement.insertBefore(show_span, input);\n        }\n\n        if (input.type == 'radio' && answers[name]) {\n            const feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n            if (feedbackButton) {\n                feedbackButton.remove();\n                iframe.contentWindow.jQuery(feedbackButton).popover(\"hide\");\n            }\n            correct_value = answers[name].correct_choice;\n            if (input.value == correct_value) input.checked = true;\n        }\n    }\n\n\tconst hiddenInputs = body.querySelectorAll(\"input[type=hidden]\");\n\tfor (const input of hiddenInputs) {\n\t\tconst name = input.name;\n\t\tif (!input.nextElementSibling) continue;\n\t\tconst graphtoolContainer = input.nextElementSibling.nextElementSibling;\n\t\tif (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tfeedbackButton.remove();\n\t\t\t\tiframe.contentWindow.jQuery(feedbackButton).popover(\"hide\");\n\t\t\t}\n            const correct_ans_div = iframe.contentDocument.createElement('div');\n\t\t\tinput.parentElement.insertBefore(correct_ans_div, graphtoolContainer);\n\t\t\tgraphtoolContainer.style.display = 'none';\n\t\t\tinput.value = answers[name].correct_ans;\n            iframe.contentWindow.jQuery(correct_ans_div).html(answers[name].correct_ans_latex_string);\n\t\t\tconst script = iframe.contentDocument.createElement('script');\n\t\t\tscript.textContent = correct_ans_div.querySelector('script').textContent\n\t\t\t\t.replace('\\nwindow.addEventListener(\"DOMContentLoaded\",', '(')\n\t\t\t\t.replace(/;\\n$/, '();');\n\t\t\tiframe.contentDocument.body.appendChild(script);\n\t\t}\n\t}\n\n    let selects = body.querySelectorAll(\"select:not([type=hidden])\");\n    for (const select of selects) {\n        const name = select.name;\n        const span_id = `${ww_id}-${name}-correct`;\n        if (answers[name] && !iframe.contentDocument.getElementById(span_id)) {\n            const feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n            if (feedbackButton) {\n                feedbackButton.remove();\n                iframe.contentWindow.jQuery(feedbackButton).popover(\"hide\");\n            }\n            select.style.display = \"none\";\n            select.value = answers[name].correct_ans;\n            const show_span = iframe.contentDocument.createElement('span');\n            show_span.id = span_id;\n            show_span.appendChild(answers[name].correct_ans_latex_string\n                ? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n                : iframe.contentDocument.createTextNode(answers[name].correct_ans));\n            select.parentElement.insertBefore(show_span, select);\n        }\n    }\n\n    // run MathJax on our new rendering\n    // FIXME: We only need to typeset the added elements, not the entire body.\n    const mathjaxTypesetScript = iframe.contentDocument.createElement('script');\n    mathjaxTypesetScript.textContent = 'MathJax.startup.promise.then(() => MathJax.typesetPromise([document.body]));';\n    iframe.contentDocument.body.appendChild(mathjaxTypesetScript);\n}\n\nfunction resetWW(ww_id) {\n    const ww_container = document.getElementById(ww_id);\n    const activate_button = document.getElementById(ww_id + '-button');\n\n    ww_container.dataset.current_seed = ww_container.dataset.seed;\n\n    iframe = ww_container.querySelector('.problem-iframe');\n    iframe.remove();\n\n    ww_container.querySelector('.problem-contents').classList.remove('hidden-content');\n\n    ww_container.querySelector('.problem-buttons.webwork').remove();\n    ww_container.querySelector('.problem-buttons').classList.remove('hidden-content');\n    // if the newer activate button is there (but hidden) bring it back too\n    if (activate_button != null) {activate_button.classList.remove('hidden-content');};\n}\n\nfunction adjustSrcHrefs(container,ww_domain) {\n    container.querySelectorAll('[href]').forEach((node) => {\n        const href = node.attributes.href.value;\n        if (href !== '#' && !href.match(/^[a-z]+:\\/\\//i)) node.href = ww_domain + '/' + href;\n    });\n    container.querySelectorAll('[src]').forEach((node) => {\n        node.src = ww_domain + '/' + node.attributes.src.value;\n    });\n}\n\nfunction translateHintSol(ww_id, body_div, ww_domain, b_ptx_has_hint, b_ptx_has_solution, hint_label_text, solution_label_text) {\n    // the problem text may come with \"hint\"s and \"solution\"s\n    // each one is an \"a\" with content \"Hint\" or \"Solution\", and an attribute with base64-encoded HTML content\n    // the WeBWorK knowl js would normally handle this, but we want PreTeXt knowl js to handle it\n    // so we replace the \"a\" with the content that should be there for PTX knowl js\n    // also if hint/sol were missing from the static version, we want these removed here\n\n    const ww_container = document.getElementById(ww_id);\n\n    const hintsolnodes = document.evaluate(\"//p[a/b]\", body_div, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);\n    if (hintsolnodes) {\n        let solutionlikewrapper;\n        for (let i = 0; i < hintsolnodes.snapshotLength; i++) {\n            const hintsolp = hintsolnodes.snapshotItem(i);\n            if (!hintsolp) continue;\n            const hintSolType = hintsolp.textContent.trim().toLowerCase().replace(':', '');\n\n            if (hintsolp.previousElementSibling.textContent.trim() != 'Hint:' && hintsolp.previousElementSibling.textContent.trim() != 'Solution:') {\n                solutionlikewrapper = document.createElement('div');\n                solutionlikewrapper.classList.add('webwork', 'solutions');\n                hintsolp.parentNode.insertBefore(solutionlikewrapper, hintsolp);\n            }\n\n            if ((hintSolType == 'solution' && !b_ptx_has_solution) || (hintSolType == 'hint' && !b_ptx_has_hint)) continue;\n\n            const knowlDetails = document.createElement('details');\n            knowlDetails.classList.add(hintSolType);\n            knowlDetails.classList.add('solution-like');\n            knowlDetails.classList.add('born-hidden-knowl');\n\n            const knowlSummary = document.createElement('summary');\n            const summaryLabel = document.createElement('span');\n            summaryLabel.classList.add('type');\n            summaryLabel.innerHTML = hintSolType == 'hint' ? hint_label_text : solution_label_text;\n            knowlSummary.appendChild(summaryLabel);\n            knowlDetails.appendChild(knowlSummary);\n\n            const knowlContents = document.createElement('div');\n            knowlContents.classList.add(hintSolType);\n            knowlContents.classList.add('solution-like');\n            knowlContents.innerHTML = hintsolp.firstElementChild.dataset.knowlContents;\n            knowlDetails.appendChild(knowlContents);\n\n            adjustSrcHrefs(knowlContents, ww_domain)\n            solutionlikewrapper.appendChild(knowlDetails);\n        }\n    }\n    for (let i = 0; i < hintsolnodes.snapshotLength; i++) {\n        hintsolnodes.snapshotItem(i).remove();\n    }\n}\n\nfunction cloneAttributes(target, source) {\n    [...source.attributes].forEach( attr => { target.setAttribute(attr.nodeName ,attr.nodeValue) });\n}\n\nfunction createFeedbackButton(id, title, content) {\n    const feedbackButton = document.createElement('button');\n    feedbackButton.dataset.title = title;\n    feedbackButton.dataset.content = `<div id=\"${id}-content\">${content || ''}</div>`;\n    if (!content) feedbackButton.dataset.emptyContent = '1';\n\tconst contentSpan = document.createElement('span');\n\tcontentSpan.style.fontWeight = 1000;\n\tcontentSpan.textContent = '\\uD83D\\uDDE9'\n    feedbackButton.appendChild(contentSpan);\n    feedbackButton.type = 'button';\n    feedbackButton.classList.add('ww-feedback');\n    feedbackButton.style.borderRadius = 0;\n\n    feedbackButton.id = `${id}-feedback-button`;\n    feedbackButton.dataset.html = true;\n    feedbackButton.dataset.placement = 'bottom';\n    feedbackButton.dataset.trigger = 'click';\n\n    return feedbackButton;\n}\n"
  },
  {
    "path": "js/pretext-webwork/2.17/pretext-webwork.js",
    "content": "//Critical:\n// TODO: Think about what should be done for an essay question.\n\n//Accessibility:\n\n//Enhancement:\n// TODO: In a scaffold problem, adjust the green bar for when one part is correct.\n// TODO: Have randomize check that new seed is actually producing new HTML.\n// TODO: Don't offer randomize or button unless we know a new version can be produced after trying a few seeds.\n// TODO: In a staged problem, Make Interactive button is adjacent to solution knowls; move it.\n// TODO: MathQuill\n// TODO: Image pop up.\n// TODO: Deal with singleResult MultiAnswer problems.\n\n//Styling:\n// TODO: Review all styling in all scenarios (staged/not, correct/partly-correct/incorrect/blank, single/multiple)\n// TODO: Sean: I think I'd like to see a slightly larger font size on the buttons\n\nfunction handleWW(ww_id, action) {\n\tconst ww_container = document.getElementById(ww_id);\n\tconst ww_domain = ww_container.dataset.domain;\n\tconst ww_problemSource = ww_container.dataset.problemsource;\n\tconst ww_sourceFilePath = ww_container.dataset.sourcefilepath;\n\tconst ww_course_id = ww_container.dataset.courseid;\n\tconst ww_user_id = ww_container.dataset.userid;\n\tconst ww_course_password = ww_container.dataset.coursepassword || ww_container.dataset.passwd;\n\tconst localize_correct = ww_container.dataset.localizeCorrect || \"Correct\";\n\tconst localize_incorrect = ww_container.dataset.localizeIncorrect || \"Incorrect\";\n\tconst localize_blank = ww_container.dataset.localizeBlank || \"Blank\";\n\tconst localize_submit = ww_container.dataset.localizeSubmit || \"Submit\";\n\tconst localize_check_responses = ww_container.dataset.localizeCheckResponses || \"Check Responses\";\n\tconst localize_reveal = ww_container.dataset.localizeReveal || \"Reveal\";\n\tconst localize_randomize = ww_container.dataset.localizeRandomize || \"Randomize\";\n\tconst localize_reset = ww_container.dataset.localizeReset || \"Reset\";\n\tconst runestone_logged_in = (typeof eBookConfig !== 'undefined' && eBookConfig.username !== '');\n\t// will be null on pages generated prior to late December 2022\n\tconst activate_button = document.getElementById(ww_id + '-button')\n\n\t// Set the current seed\n\tif (!action) {\n\t\tww_container.dataset.current_seed = ww_container.dataset.seed;\n\t\tif (runestone_logged_in) {\n\t\t\tww_container.dataset.current_seed = webworkSeedHash(eBookConfig.username + ww_container.dataset.current_seed);\n\t\t}\n\t}\n\telse if (action == 'randomize') ww_container.dataset.current_seed = Number(ww_container.dataset.current_seed) + 100;\n\n\tlet loader = document.createElement('div');\n\tloader.style.position = 'absolute';\n\tloader.style.left = 0;\n\tloader.style.top = 0;\n\tloader.style.backgroundColor = 'rgba(0.2, 0.2, 0.2, 0.4)';\n\tloader.style.color = 'white';\n\tloader.style.width = '100%';\n\tloader.style.height = '100%';\n\tloader.style.display = 'flex';\n\tloader.style.alignItems = 'center';\n\tloader.style.justifyContent = 'center';\n\tloader.style.marginTop = '0';\n\tloader.tabIndex = -1;\n\tconst loaderText = document.createElement('span');\n\tloaderText.textContent = 'Loading';\n\tloaderText.style.fontSize = '2rem';\n\tloader.appendChild(loaderText);\n\tww_container.appendChild(loader);\n\tloader.focus();\n\n\tif (!action) {\n\t\t// Determine if static version shows hints, solutions, or answers and save that information in the container dataset for later runs.\n\t\tww_container.dataset.hasHint = ww_container.getElementsByClassName('hint').length > 0;\n\t\tww_container.dataset.hasSolution = ww_container.getElementsByClassName('solution').length > 0;\n\t\tww_container.dataset.hasAnswer = ww_container.getElementsByClassName('answer').length > 0;\n\t\t// Get (possibly localized) label text for hints and solutions.\n\t\tww_container.dataset.hintLabelText = ww_container.dataset.hasHint == 'true'\n\t\t\t? ww_container.querySelectorAll('.hint-knowl span.type, details.hint span.type')[0].textContent : 'Hint';\n\t\tww_container.dataset.solutionLabelText = ww_container.dataset.hasSolution == 'true'\n\t\t\t? ww_container.querySelectorAll('.solution-knowl span.type, details.solution span.type')[0].textContent : 'Solution';\n\n\t\tww_container.tabIndex = -1;\n\t}\n\n\tlet url;\n\n\tif (action == 'check') {\n\t\tconst iframe = ww_container.querySelector('.problem-iframe');\n\t\tconst formData = new FormData(iframe.contentDocument.getElementById(ww_id + \"-form\"));\n\t\tconst params = new URLSearchParams(formData);\n\t\turl = new URL(ww_domain + '/webwork2/html2xml?' + params.toString())\n\t\turl.searchParams.append(\"answersSubmitted\", '1');\n\t\turl.searchParams.append('WWsubmit', \"1\");\n\t} else {\n\t\turl = new URL(ww_domain + '/webwork2/html2xml');\n\t\turl.searchParams.append(\"problemSeed\", ww_container.dataset.current_seed);\n\t\tif (ww_problemSource) url.searchParams.append(\"problemSource\", ww_problemSource);\n\t\telse if (ww_sourceFilePath) url.searchParams.append(\"sourceFilePath\", ww_sourceFilePath);\n\t\turl.searchParams.append(\"answersSubmitted\", '0');\n\t\turl.searchParams.append(\"displayMode\", \"MathJax\");\n\t\turl.searchParams.append(\"courseID\", ww_course_id);\n\t\turl.searchParams.append(\"userID\", ww_user_id);\n\t\turl.searchParams.append(\"course_password\", ww_course_password);\n\t\turl.searchParams.append(\"outputformat\", \"raw\");\n\t\t// note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n\t\turl.searchParams.append(\"showSolutions\", ww_container.dataset.hasSolution == 'true' ? '1' : '0');\n\t\turl.searchParams.append(\"showHints\", ww_container.dataset.hasHint == 'true' ? '1' : '0');\n\t\turl.searchParams.append(\"problemUUID\",ww_id);\n\t}\n\n\t// get the json and do stuff with what we get\n\t$.getJSON(url.toString(), (data) => {\n\t\t// Create the form that will contain the text and input fields of the interactive problem.\n\t\tconst form = document.createElement(\"form\");\n\t\tform.id = ww_id + \"-form\";\n\n\t\t// Create a div for the problem text.\n\t\tconst body_div = document.createElement(\"div\");\n\t\tbody_div.id = ww_id + \"-body\";\n\t\tbody_div.classList.add(\"exercise\", \"exercise-like\");\n\t\tbody_div.lang = data.lang;\n\t\tbody_div.dir = data.dir;\n\n\t\t// Dump the problem text, answer blanks, etc.\n\t\tbody_div.innerHTML = data.rh_result.text;\n\n\t\t// Replace all hn headings with h6 headings.\n\t\tfor (const tag_name of ['h6', 'h5', 'h4', 'h3', 'h2', 'h1']) {\n\t\t\tconst headings = body_div.getElementsByTagName(tag_name);\n\t\t\tfor (heading of headings) {\n\t\t\t\tconst new_heading = document.createElement(\"h6\");\n\t\t\t\tnew_heading.innerHTML = heading.innerHTML;\n\t\t\t\tcloneAttributes(new_heading, heading);\n\t\t\t\tnew_heading.classList.add('webwork-part');\n\t\t\t\theading.replaceWith(new_heading);\n\t\t\t}\n\t\t}\n\n\t\tadjustSrcHrefs(body_div, ww_domain);\n\n\t\ttranslateHintSol(ww_id, body_div, ww_domain,\n\t\t\tww_container.dataset.hasHint == 'true', ww_container.dataset.hasSolution == 'true',\n\t\t\tww_container.dataset.hintLabelText, ww_container.dataset.solutionLabelText)\n\n\t\t// insert previous answers\n\t\tif (runestone_logged_in) {\n\t\t\tconst answersObject = (wwList[ww_id.replace(/-ww-rs$/,'')].answers ? wwList[ww_id.replace(/-ww-rs$/,'')].answers : {'answers' : [], 'mqAnswers' : []});\n\t\t\tconst mqAnswers = answersObject.mqAnswers;\n\t\t\tfor (const mqAnswer in mqAnswers) {\n\t\t\t\tconst mqInput = body_div.querySelector('input[id=' + mqAnswer + ']');\n\t\t\t\tif (mqInput && mqInput.value == '') {\n\t\t\t\t\tmqInput.setAttribute('value', mqAnswers[mqAnswer]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst answers = answersObject.answers;\n\t\t\tfor (const answer in answers) {\n\t\t\t\tconst input = body_div.querySelector('input[id=' + answer + ']');\n\t\t\t\tif (input && input.value == '') {\n\t\t\t\t\tinput.setAttribute('value', answers[answer]);\n\t\t\t\t}\n\t\t\t\tif (input && input.type.toUpperCase() == 'RADIO') {\n\t\t\t\t\tconst buttons = body_div.querySelectorAll('input[name=' + answer + ']');\n\t\t\t\t\tfor (const button of buttons) {\n\t\t\t\t\t\tif (button.value == answers[answer]) {\n\t\t\t\t\t\t\tbutton.setAttribute('checked', 'checked');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (input && input.type.toUpperCase() == 'CHECKBOX') {\n\t\t\t\t\tconst checkboxes = body_div.querySelectorAll('input[name=' + answer + ']');\n\t\t\t\t\tfor (const checkbox of checkboxes) {\n\t\t\t\t\t\t// This is not a bulletproof approach if the problem used input values that are weird\n\t\t\t\t\t\t// For example, with commas in them\n\t\t\t\t\t\t// However, we are stuck with WW providing answers[answer] as a string like `[value0, value1]`\n\t\t\t\t\t\t// and note that it is not `[\"value0\", \"value1\"]`, so we cannot cleanly parse it into an array\n\t\t\t\t\t\tlet checkbox_regex = new RegExp('(\\\\[|, )' + checkbox.value + '(, |\\\\])');\n\t\t\t\t\t\tif (answers[answer].match(checkbox_regex)) {\n\t\t\t\t\t\t\tcheckbox.setAttribute('checked', 'checked');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar select = body_div.querySelector('select[id=' + answer + ']');\n\t\t\t\tif (select && answers[answer]) {\n\t\t\t\t\t// answers[answer] may be wrapped in \\text{...} that we want to remove, since value does not have this.\n\t\t\t\t\tlet this_answer = answers[answer];\n\t\t\t\t\tif (/^\\\\text\\{.*\\}$/.test(this_answer)) {this_answer = this_answer.match(/^\\\\text\\{(.*)\\}$/)[1]};\n\t\t\t\t\tlet quote_escaped_answer = this_answer.replace(/\"/g, '\\\\\"');\n\t\t\t\t\tconst option = body_div.querySelector(`select[id=\"${answer}\"] option[value=\"${quote_escaped_answer}\"]`);\n\t\t\t\t\tif (option) {option.setAttribute('selected', 'selected')};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// insert our cleaned up problem text\n\t\tform.appendChild(body_div);\n\n\t\t// Set up hidden input fields that the form uses\n\t\tconst wwInputs = {\n\t\t\tproblemSeed:      data.inputs_ref.problemSeed,\n\t\t\tproblemUUID:      data.inputs_ref.problemUUID,\n\t\t\tpsvn:             data.inputs_ref.psvn,\n\t\t\tcourseName:       ww_course_id,\n\t\t\tcourseID:         ww_course_id,\n\t\t\tuserID:           ww_user_id,\n\t\t\tcourse_password:  ww_course_password,\n\t\t\tdisplayMode:      \"MathJax\",\n\t\t\tsession_key:      data.rh_result.session_key,\n\t\t\toutputformat:     \"raw\",\n\t\t\tlanguage:         data.formLanguage,\n\t\t\tshowSummary:      data.showSummary,\n\t\t\t// note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n\t\t\tshowSolutions:    ww_container.dataset.hasSolution == 'true' ? '1' : '0',\n\t\t\tshowHints:        ww_container.dataset.hasHint == 'true' ? '1' : '0',\n\t\t\tforcePortNumber:  data.forcePortNumber\n\t\t};\n\n\t\tif (ww_sourceFilePath) wwInputs.sourceFilePath = ww_sourceFilePath;\n\t\telse if (ww_problemSource) wwInputs.problemSource = ww_problemSource;\n\n\t\tfor (const wwInputName of Object.keys(wwInputs)) {\n\t\t\tconst input = document.createElement('input');\n\t\t\tinput.type = 'hidden';\n\t\t\tinput.name = wwInputName;\n\t\t\tinput.value = wwInputs[wwInputName];\n\t\t\tform.appendChild(input);\n\t\t}\n\n\t\t// Prepare answers object\n\t\tconst answers = {};\n\t\t// id the answers even if we won't populate them\n\t\tObject.keys(data.rh_result.answers).forEach(function(id) {\n\t\t\tanswers[id] = {};\n\t\t}, data.rh_result.answers);\n\t\tif (ww_container.dataset.hasAnswer == 'true') {\n\t\t\t// Update answer data\n\t\t\tObject.keys(data.rh_result.answers).forEach(function(id) {\n\t\t\t\tanswers[id] = {\n\t\t\t\t\tcorrect_ans: this[id].correct_ans,\n\t\t\t\t\tcorrect_ans_latex_string: this[id].correct_ans_latex_string,\n\t\t\t\t\tcorrect_choice: this[id].correct_choice,\n\t\t\t\t\tcorrect_choices: this[id].correct_choices,\n\t\t\t\t};\n\t\t\t}, data.rh_result.answers);\n\t\t}\n\n\t\tlet buttonContainer = ww_container.querySelector('.problem-buttons.webwork');\n\t\t// Create the submission buttons if they have not yet been created.\n\t\tif (!buttonContainer) {\n\t\t\t// Hide the original div that contains the old make active button.\n\t\t\tww_container.querySelector('.problem-buttons').classList.add('hidden-content');\n\t\t\t// And the newer activate button if it is there\n\t\t\tif (activate_button != null) {activate_button.classList.add('hidden-content');};\n\n\t\t\t// Create a new div for the webwork buttons.\n\t\t\tbuttonContainer = document.createElement('div');\n\t\t\tbuttonContainer.classList.add('problem-buttons', 'webwork');\n\t\t\tif (activate_button != null) {\n\t\t\t\t// Make sure the button container follows the activate button in the DOM\n\t\t\t\tactivate_button.after(buttonContainer);\n\t\t\t} else {\n\t\t\t\tww_container.prepend(buttonContainer);\n\t\t\t}\n\n\t\t\t// Check button\n\t\t\tconst check = document.createElement(\"button\");\n\t\t\tcheck.type = \"button\";\n\t\t\tcheck.id = ww_id + '-check';\n\t\t\tcheck.style.marginRight = \"0.25rem\";\n\t\t\tcheck.classList.add('webwork-button');\n\n\t\t\t// Adjust if more than one answer to check\n\t\t\tconst answerCount = body_div.querySelectorAll(\"input:not([type=hidden])\").length +\n\t\t\t\tbody_div.querySelectorAll(\"select:not([type=hidden])\").length;\n\n\t\t\tcheck.textContent = runestone_logged_in ? localize_submit : localize_check_responses;\n\t\t\tcheck.addEventListener('click', () => handleWW(ww_id, \"check\"));\n\n\t\t\tbuttonContainer.appendChild(check);\n\n\t\t\t// Show correct answers button if original PTX has answer knowl.\n\t\t\tif (ww_container.dataset.hasAnswer == 'true') {\n\t\t\t\tconst correct = document.createElement(\"button\");\n\t\t\t\tcorrect.classList.add(\"show-correct\", 'webwork-button');\n\t\t\t\tcorrect.type = \"button\";\n\t\t\t\tcorrect.style.marginRight = \"0.25rem\";\n\t\t\t\tcorrect.textContent = localize_reveal;\n\t\t\t\tcorrect.addEventListener('click', () => WWshowCorrect(ww_id, answers));\n\t\t\t\tbuttonContainer.appendChild(correct);\n\t\t\t}\n\n\t\t\t// randomize button\n\t\t\tconst randomize = document.createElement(\"button\")\n\t\t\trandomize.type = \"button\";\n\t\t\trandomize.classList.add('webwork-button');\n\t\t\trandomize.style.marginRight = \"0.25rem\";\n\t\t\trandomize.textContent = localize_randomize;\n\t\t\trandomize.addEventListener('click', () => handleWW(ww_id, 'randomize'));\n\t\t\tbuttonContainer.appendChild(randomize)\n\n\t\t\t// reset button\n\t\t\tconst reset = document.createElement(\"button\")\n\t\t\treset.type = \"button\"\n\t\t\treset.classList.add('webwork-button');\n\t\t\treset.textContent = localize_reset;\n\t\t\treset.addEventListener('click', () => resetWW(ww_id));\n\t\t\tbuttonContainer.appendChild(reset)\n\t\t} else {\n\t\t\t// Update the click handler for the show correct button.\n\t\t\tif (ww_container.dataset.hasAnswer == 'true') {\n\t\t\t\tconst correct = buttonContainer.querySelector('.show-correct');\n\t\t\t\tconst correctNew = correct.cloneNode(true);\n\t\t\t\tcorrectNew.addEventListener('click', () => WWshowCorrect(ww_id, answers));\n\t\t\t\tcorrect.replaceWith(correctNew);\n\t\t\t}\n\t\t}\n\n\t\tif (action == 'check') {\n\t\t\t// Runestone trigger\n\t\t\t// TODO: condition on platform=Runestone\n\t\t\t$(\"body\").trigger('runestone_ww_check', data)\n\n\t\t\tconst inputs = body_div.querySelectorAll(\"input:not([type=hidden])\");\n\t\t\tfor (const input of inputs) {\n\t\t\t\tconst name = input.name;\n\t\t\t\tif (input.type == 'text' && answers[name]) {\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tlet headline = '';\n\t\t\t\t\tlet correctClass = '';\n\t\t\t\t\tif (score >= 1) {\n\t\t\t\t\t\theadline = localize_correct + '!';\n\t\t\t\t\t\tcorrectClass = 'correct';\n\t\t\t\t\t} else if (score > 0 && score < 1) {\n\t\t\t\t\t\theadline = `${Math.round(score * 100)}% ${localize_correct}.`;\n\t\t\t\t\t\tcorrectClass = 'partly-correct';\n\t\t\t\t\t} else if (data.rh_result.answers[name].student_ans == '') {\n\t\t\t\t\t\theadline = localize_blank + '.';\n\t\t\t\t\t\tcorrectClass = 'blank';\n\t\t\t\t\t} else if (score <= 0) {\n\t\t\t\t\t\theadline = localize_incorrect + '.';\n\t\t\t\t\t\tcorrectClass = 'incorrect';\n\t\t\t\t\t}\n\t\t\t\t\tlet title = `<span class=\"${correctClass}\">${headline}</span>`;\n\t\t\t\t\tlet message = (data.rh_result.answers[name].ans_message ? data.rh_result.answers[name].ans_message : '');\n\t\t\t\t\tinput.classList.add(correctClass);\n\t\t\t\t\t// make a span that contains feedback\n\t\t\t\t\tfeedbackSpan = document.createElement('span');\n\t\t\t\t\tfeedbackSpan.id = `${ww_id}-${name}-feedback`;\n\t\t\t\t\tfeedbackHeadline = document.createElement('span');\n\t\t\t\t\tfeedbackHeadline.id = `${ww_id}-${name}-headline`;\n\t\t\t\t\tfeedbackHeadline.textContent = headline;\n\t\t\t\t\tfeedbackSpan.appendChild(feedbackHeadline);\n\t\t\t\t\tfeedbackMessage = document.createElement('span');\n\t\t\t\t\tfeedbackMessage.id = `${ww_id}-${name}-message`;\n\t\t\t\t\tfeedbackMessage.textContent = message;\n\t\t\t\t\tfeedbackSpan.appendChild(feedbackMessage);\n\t\t\t\t\t// make a non breaking span to surround input, sr span, and feedback button\n\t\t\t\t\tlet nbSpan = document.createElement('span');\n\t\t\t\t\tnbSpan.classList.add(\"nobreak\");\n\t\t\t\t\tinput.parentNode.insertBefore(nbSpan, input);\n\t\t\t\t\tnbSpan.appendChild(input);\n\t\t\t\t\t// put a visibly hidden (screen-reader only) span with feedback\n\t\t\t\t\tlet srSpan = document.createElement('span');\n\t\t\t\t\tsrSpan.classList.add(\"visually-hidden\");\n\t\t\t\t\tsrSpan.appendChild(feedbackSpan);\n\t\t\t\t\tnbSpan.appendChild(srSpan);\n\t\t\t\t\t// give the feedback to sr users immediately\n\t\t\t\t\tinput.setAttribute('aria-describedby',`${ww_id}-${name}-feedback`);\n\t\t\t\t\t// make the feedback button\n\t\t\t\t\tsrSpan.after(createFeedbackButton(`${ww_id}-${name}`, title, message));\n\t\n\t\t\t\t}\n\n\t\t\t\tif (input.type.toUpperCase() == 'RADIO' && answers[name]) {\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tconst student_ans = data.rh_result.answers[name].student_value || data.rh_result.answers[name].student_ans;\n\t\t\t\t\tconst correct_ans = data.rh_result.answers[name].correct_choice || data.rh_result.answers[name].correct_ans;\n\t\t\t\t\tif (input.value == student_ans) {\n\t\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\t\tinput.parentNode.classList.add('correct');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tinput.parentNode.classList.add('incorrect');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`,\n\t\t\t\t\t\t\t(student_ans == correct_ans)\n\t\t\t\t\t\t\t? `<span class=\"correct\">${localize_correct}</span>` : `<span class=\"incorrect\">${localize_incorrect}.</span>`)\n\t\t\t\t\t\tfeedbackButton.style.marginRight = '0.25rem';\n\t\t\t\t\t\tinput.after(feedbackButton);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (input.type.toUpperCase() == 'CHECKBOX' && answers[name]) {\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tconst student_ans = data.rh_result.answers[name].student_ans;\n\t\t\t\t\tconst correct_ans = data.rh_result.answers[name].correct_ans;\n\t\t\t\t\tif (input.value == data.rh_result.answers[name].firstElement) {\n\t\t\t\t\t\tconst checkbox_div = input.parentNode.parentNode;\n\t\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\t\tcheckbox_div.classList.add('correct');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcheckbox_div.classList.add('incorrect');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`,\n\t\t\t\t\t\t\t(student_ans == correct_ans)\n\t\t\t\t\t\t\t? `<span class=\"correct\">${localize_correct}</span>` : `<span class=\"incorrect\">${localize_incorrect}.</span>`)\n\t\t\t\t\t\tcheckbox_div.insertBefore(feedbackButton, checkbox_div.firstChild);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst hiddenInputs = body_div.querySelectorAll(\"input[type=hidden]\");\n\t\t\tfor (const input of hiddenInputs) {\n\t\t\t\tconst name = input.name;\n\t\t\t\tif (!input.nextElementSibling) continue;\n\t\t\t\tconst graphtoolContainer = input.nextElementSibling.nextElementSibling;\n\t\t\t\tif (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n\t\t\t\t\tgraphtoolContainer.style.position = 'relative';\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tlet title = '';\n\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\ttitle = `<span class=\"correct\">${localize_correct}</span>`;\n\t\t\t\t\t} else if (score > 0 && score < 1) {\n\t\t\t\t\t\ttitle = `<span class=\"partly-correct\">${Math.round(score * 100)}% ${localize_correct}.</span>`;\n\t\t\t\t\t} else if (data.rh_result.answers[name].student_ans == '') {\n\t\t\t\t\t\t// do nothing if the submitted answer is blank and the problem has not already been scored as correct\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (score == 0) {\n\t\t\t\t\t\ttitle = `<span class=\"incorrect\">${localize_incorrect}.</span>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`, title, data.rh_result.answers[name].ans_message);\n\t\t\t\t\tfeedbackButton.style.position = 'absolute';\n\t\t\t\t\tfeedbackButton.style.left = '100%';\n\t\t\t\t\tfeedbackButton.style.top = 0;\n\t\t\t\t\tfeedbackButton.style.marginLeft = '0.5rem';\n\t\t\t\t\tfeedbackButton.dataset.bsContainer = 'body';\n\t\t\t\t\tgraphtoolContainer.appendChild(feedbackButton);\n\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\tgraphtoolContainer.classList.add('correct');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgraphtoolContainer.classList.add('incorrect');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst selects = body_div.querySelectorAll(\"select:not([type=hidden])\");\n\t\t\tfor (const select of selects) {\n\t\t\t\tconst name = select.name;\n\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\tlet title = '';\n\t\t\t\tif (score == 1) {\n\t\t\t\t\theadline = localize_correct + '!';\n\t\t\t\t\tcorrectClass = 'correct';\n\t\t\t\t} else {\n\t\t\t\t\theadline = localize_incorrect + '.';\n\t\t\t\t\tcorrectClass = 'incorrect';\n\t\t\t\t}\n\t\t\t\tselect.classList.add(correctClass);\n\t\t\t\ttitle = `<span class=\"${correctClass}\">${headline}</span>`;\n\t\t\t\t// make a span that contains feedback\n\t\t\t\tfeedbackSpan = document.createElement('span');\n\t\t\t\tfeedbackSpan.id = `${ww_id}-${name}-feedback`;\n\t\t\t\tfeedbackHeadline = document.createElement('span');\n\t\t\t\tfeedbackHeadline.id = `${ww_id}-${name}-headline`;\n\t\t\t\tfeedbackHeadline.textContent = headline;\n\t\t\t\tfeedbackSpan.appendChild(feedbackHeadline);\n\t\t\t\t// make a non breaking span to surround select, sr span, and feedback button\n\t\t\t\tlet nbSpan = document.createElement('span');\n\t\t\t\tnbSpan.classList.add(\"nobreak\");\n\t\t\t\tselect.parentNode.insertBefore(nbSpan, select);\n\t\t\t\tnbSpan.appendChild(select);\n\t\t\t\t// put a span around select since select does not support ::after pseudo elements\n\t\t\t\tlet psSpan = document.createElement('span');\n\t\t\t\tpsSpan.classList.add(\"select-wrapper\", correctClass);\n\t\t\t\tselect.parentNode.insertBefore(psSpan, select);\n\t\t\t\tpsSpan.appendChild(select);\n\t\t\t\t// put a visibly hidden (screen-reader only) span with feedback\n\t\t\t\tlet srSpan = document.createElement('span');\n\t\t\t\tsrSpan.classList.add(\"visually-hidden\");\n\t\t\t\tsrSpan.appendChild(feedbackSpan);\n\t\t\t\tnbSpan.appendChild(srSpan);\n\t\t\t\t// give the feedback to sr users immediately\n\t\t\t\tselect.setAttribute('aria-describedby',`${ww_id}-${name}-feedback`);\n\t\t\t\t// make the feedback button\n\t\t\t\tsrSpan.after(createFeedbackButton(`${ww_id}-${name}`, title));\n\t\t\t}\n\t\t}\n\n\t\tlet iframeContents = '<!DOCTYPE html><head>' +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/jquery/dist/jquery.min.js\"></script>' +\n\t\t\t`<script>window.MathJax = {\n\t\t\t  tex: {\n\t\t\t\tinlineMath: [['\\\\\\\\(','\\\\\\\\)']],\n\t\t\t\ttags: \"none\",\n\t\t\t\tuseLabelIds: true,\n\t\t\t\ttagSide: \"right\",\n\t\t\t\ttagIndent: \".8em\",\n\t\t\t\tpackages: {'[+]': ['base', 'extpfeil', 'ams', 'amscd', 'newcommand', 'knowl']}\n\t\t\t  },\n\t\t\t  options: {\n\t\t\t\tignoreHtmlClass: \"tex2jax_ignore\",\n\t\t\t\tprocessHtmlClass: \"has_am\",\n\t\t\t\trenderActions: {\n\t\t\t\t\tfindScript: [10, function (doc) {\n\t\t\t\t\t\tdocument.querySelectorAll('script[type^=\"math/tex\"]').forEach(function(node) {\n\t\t\t\t\t\t\tconst display = !!node.type.match(/; *mode=display/);\n\t\t\t\t\t\t\tconst math = new doc.options.MathItem(node.textContent, doc.inputJax[0], display);\n\t\t\t\t\t\t\tconst text = document.createTextNode('');\n\t\t\t\t\t\t\tnode.parentNode.replaceChild(text, node);\n\t\t\t\t\t\t\tmath.start = {node: text, delim: '', n: 0};\n\t\t\t\t\t\t\tmath.end = {node: text, delim: '', n: 0};\n\t\t\t\t\t\t\tdoc.math.push(math);\n\t\t\t\t\t\t});\n\t\t\t\t\t}, '']\n\t\t\t\t},\n\t\t\t  },\n\t\t\t  chtml: {\n\t\t\t\tscale: 0.88,\n\t\t\t\tmtextInheritFont: true\n\t\t\t  },\n\t\t\t  loader: {\n\t\t\t\tload: ['input/asciimath', '[tex]/extpfeil', '[tex]/amscd', '[tex]/newcommand', '[pretext]/mathjaxknowl3.js'],\n\t\t\t\tpaths: {pretext: \"https://pretextbook.org/js/lib\"},\n\t\t\t  },\n\t\t\t};\n\t\t\t</script>` +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/mathjax/es5/tex-chtml.js\" id=\"MathJax-script\" defer></script>' +\n\t\t\t'<script src=\"https://pretextbook.org/js/lib/knowl.js\" defer></script>' +\n\t\t\t'<link rel=\"stylesheet\" href=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/css/bootstrap.min.css\"/>' +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js\" defer></script>';\n\n\t\t// Determine javascript and css dependencies\n\t\tconst extra_css_files = [];\n\t\tconst extra_js_files = [];\n\t\t//if (data.rh_result.flags.extra_js_files) {\n\t\t//    for (const jsFile of data.rh_result.flags.extra_js_files) {\n\t\t//        if (jsFile.file == \"js/apps/GraphTool/graphtool.min.js\" || jsFile.file == \"js/apps/Scaffold/scaffold.js\") {\n\t\t//            extra_css_files.push({ file: 'js/vendor/bootstrap/css/bootstrap.css', external: '0' });\n\t\t//            extra_css_files.push({ file: 'themes/math4/math4.css', external: '0' });\n\t\t//            extra_js_files.push({ file: 'js/vendor/bootstrap/js/bootstrap.js', external: '0' });\n\t\t//        }\n\t\t//    }\n\t\t//}\n\n\t\tif (data.extra_css_files) data.extra_css_files.unshift(...extra_css_files);\n\t\telse data.extra_css_files = extra_css_files;\n\t\tfor (const cssFile of data.extra_css_files) {\n\t\t\tif (/knowl/.test(cssFile.file)) continue;\n\t\t\tiframeContents += '<link rel=\"stylesheet\" href=\"' + (cssFile.external !== '1' ? ww_domain : '') + cssFile.file + '\"/>';\n\t\t}\n\n\t\tif (data.extra_js_files) data.extra_js_files.unshift(...extra_js_files);\n\t\telse data.extra_js_files = extra_js_files;\n\t\tfor (const jsFile of data.extra_js_files) {\n\t\t\tif (/knowl/.test(jsFile.file)) continue;\n\t\t\tiframeContents += '<script src=\"' + (jsFile.external !== '1' ? ww_domain : '') + jsFile.file + '\" ' +\n\t\t\t\tObject.keys(jsFile.attributes || {}).reduce((ret, key) => {\n\t\t\t\t\tret += key + '=\"' + jsFile.attributes[key] + '\" '; return ret;\n\t\t\t\t}, \"\") + '></script>';\n\t\t}\n\n\t\tiframeContents +=\n\t\t\t'<link rel=\"stylesheet\" href=\"https://pretextbook.org/css/0.31/pretext_add_on.css\"/>' +\n\t\t\t'<link rel=\"stylesheet\" href=\"https://pretextbook.org/css/0.31/knowls_default.css\"/>' +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js\"></script>' +\n\t\t\t`<style>\n\t\t\thtml { overflow-y: hidden; }\n\t\t\thtml body { background:unset; margin: 0; }\n\t\t\tbody { font-size: initial; line-height: initial; padding:2px; }\n\t\t\t.hidden-content { display: none; }\n\t\t\tinput[type=\"text\"], input[type=\"radio\"], label, select {\n\t\t\t\theight: auto;\n\t\t\t\twidth: auto;\n\t\t\t\tmax-width: unset;\n\t\t\t\tmargin: 0;\n\t\t\t\tfont-size: initial;\n\t\t\t\t/*font-family: sans-serif;*/\n\t\t\t\tline-height: initial;\n\t\t\t}\n\t\t\tinput[type=\"text\"] {\n\t\t\t\tpadding: 1px;\n\t\t\t\tpadding-inline: 2px;\n\t\t\t\tborder-width: 1px;\n\t\t\t\tborder-style: inset;\n\t\t\t\tborder-color: rgb(133, 133, 133);\n\t\t\t\tborder-radius: 0;\n\t\t\t\tbox-shadow: unset;\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t\tinput[type=\"text\"]:focus, input[type=\"text\"]:active {\n\t\t\t\tbox-shadow: unset;\n\t\t\t\tborder-width: 1px;\n\t\t\t\tborder-style: inset;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tborder-color: rgb(133, 133, 133);\n\t\t\t\toutline: auto;\n\t\t\t}\n\t\t\tinput[type=\"radio\"] {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tmargin-block: 3px 0;\n\t\t\t\tmargin-inline: 5px 3px;\n\t\t\t\tvertical-align: unset;\n\t\t\t}\n\t\tspan.nobreak {\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\tinput[type=\"text\"].blank, input[type=\"text\"].correct, input[type=\"text\"].partly-correct, input[type=\"text\"].incorrect, select.correct, select.incorrect {\n\t\t\tbackground-size: auto 100%;\n\t\t\tbackground-position: right;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tpadding-right: 29px;\n\t\t}\n\t\tinput[type=\"text\"].blank {\n\t\t\tbackground-color: #CDF;\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='20px' width='20px'><text x='19' y='16' fill='%230049DB' text-anchor='end'>⚠</text></svg>\");\n\t\t}\n\t\tinput[type=\"text\"].correct, select.correct, input[type=\"text\"].correct + span.mq-editable-field {\n\t\t\tbackground-color: #8F8;\n\t\t}\n\t\tinput[type=\"text\"].correct {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='20px' width='20px'><text x='19' y='16' fill='%23060' text-anchor='end'>✓</text></svg>\");\n\t\t}\n\t\t\tpadding-left: 2rem;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position-y: center;\n\t\t}\n\t\tinput[type=\"text\"].partly-correct, input[type=\"text\"].partly-correct + span.mq-editable-field {\n\t\t\tbackground-color: #CDF;\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='22px' width='30px'><text x='28' y='18' fill='%235C5C00' text-anchor='end'>⚠</text></svg>\");\n\t\t}\n\t\tinput[type=\"text\"].incorrect, select.incorrect, input[type=\"text\"].incorrect + span.mq-editable-field {\n\t\t\tbackground-color: #DAA;\n\t\t}\n\t\tinput[type=\"text\"].incorrect {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='22px' width='30px'><text x='28' y='18' fill='%23943D3D' text-anchor='end'>⚠</text></svg>\");\n\t\t}\n\t\tinput[type=\"text\"].partly-correct, input[type=\"text\"].incorrect {\n\t\t\tbackground-size: auto 70%;\n\t\t}\n\t\tlabel {\n\t\t\tpadding-left: 1.8em;\n\t\t}\n\t\tlabel.correct::before {\n\t\t\tcolor: #060;\n\t\t\tcontent: '✓';\n\t\t}\n\t\tlabel.incorrect::before {\n\t\t\tcolor: #943D3D;\n\t\t\tcontent: '⚠';\n\t\t\tfont-size: small;\n\t\t}\n\t\tlabel.correct::before, label.incorrect::before {\n\t\t\tdisplay:inline-block;\n\t\t\twidth: 0;\n\t\t\tdirection: rtl;\n\t\t}\n\t\t.select-wrapper.correct::before {\n\t\t\tcolor: #060;\n\t\t\tcontent: '✓';\n\t\t\tmargin-right: 2pt;\n\t\t}\n\t\t.select-wrapper.incorrect::before {\n\t\t\tcolor: #943D3D;\n\t\t\tcontent: '⚠';\n\t\t\tmargin-right: 2pt;\n\t\t\tfont-size: small;\n\t\t}\n\t\t.checkboxes-container.correct label input, .checkboxes-container.incorrect label input {\n\t\t\tborder-radius: 2px;\n\t\t\tappearance: none;\n\t\t\t-webkit-appearance: none;\n\t\t\t-moz-appearance: none;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tcursor: pointer;\n\t\t\tposition: relative;\n\t\t\ttop: 5px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\t\t.checkboxes-container.correct label input {\n\t\t\tbackground-color: #8F8;\n\t\t\tborder: #060 solid;\n\t\t}\n\t\t.checkboxes-container.correct label input:checked {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='14px' width='14px'><text x='13' y='13' text-anchor='end'>✓</text></svg>\");\n\t\t}\n\t\t.checkboxes-container.incorrect label input {\n\t\t\tbackground-color: #DAA;\n\t\t\tborder: #943D3D solid;\n\t\t}\n\t\t.checkboxes-container.incorrect label input:checked {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='14px' width='14px'><text x='13' y='13' text-anchor='end'>✘</text></svg>\");\n\t\t}\n\t\tdiv.PGML img.image-view-elt {\n\t\t\tmax-width:100%;\n\t\t}\n\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t\tselect {\n\t\t\t\tmargin: 0;\n\t\t\t\tborder-width: 1px;\n\t\t\t\tborder-style: inset;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding-block: 1px;\n\t\t\t\tvertical-align: baseline;\n\t\t\t\tbackground-color: unset;\n\t\t\t\tpadding-inline: 0;\n\t\t\t}\n\t\t\t.result-popover .popover-header, .result-popover .popover-content {\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.result-popover .popover-header.correct {\n\t\t\t\tbackground-color: #8F8;\n\t\t\t}\n\t\t\t.result-popover.nocontent .popover-header {\n\t\t\t\tborder-radius: calc(.3rem - 1px);\n\t\t\t}\n\t\t\t.result-popover.nocontent .popover-header::before {\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t\t.accordion-body.expanded {\n\t\t\t\toverflow-y: visible;\n\t\t\t\toverflow-x: clip;\n\t\t\t}\n\t\t\t.graphtool-answer-container .graphtool-graph {\n\t\t\t\tmargin: 0;\n\t\t\t\twidth: 300px;\n\t\t\t\theight: 300px;\n\t\t\t}\n\t\t\t.graphtool-answer-container .graphtool-number-line {\n\t\t\t\theight: 57px;\n\t\t\t}\n\t\t\t.checkboxes-container .ww-feedback {\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 2px;\n\t\t\t}\n\t\t\t.graphtool-container.correct .graphtool-graph {\n\t\t\t\tbackground-color: #8F8;\n\t\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='20px' width='20px'><text x='19' y='16' fill='%23060' text-anchor='end'>✓</text></svg>\");\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t}\n\t\t\t.graphtool-container.incorrect .graphtool-graph {\n\t\t\t\tbackground-color: #DAA;\n\t\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='22px' width='30px'><text x='28' y='18' fill='%235C5C00' text-anchor='end'>⚠</text></svg>\");\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t}\n\t\t\t</style>` +\n\t\t\t'</head><body><main class=\"pretext-content\">' + form.outerHTML + '</main></body>' +\n\t\t\t'</html>';\n\n\t\tlet iframe;\n\t\t// If there is no action this is the initialization call.\n\t\tif (!action) {\n\t\t\t// Create the iframe.\n\t\t\tiframe = document.createElement('iframe');\n\t\t\tiframe.style.width = '1px';\n\t\t\tiframe.style.minWidth = '100%';\n\t\t\tiframe.classList.add('problem-iframe');\n\n\t\t\t// Hide the static problem\n\t\t\tww_container.querySelector('.problem-contents').classList.add('hidden-content');\n\n\t\t\tif (activate_button != null) {\n\t\t\t\t// Make sure the iframe follows the activate button in the DOM\n\t\t\t\tactivate_button.after(iframe);\n\t\t\t} else {\n\t\t\t\tww_container.prepend(iframe);\n\t\t\t}\n\n\t\t\tiFrameResize({ checkOrigin: false, scrolling: 'omit', heightCalculationMethod: 'min' }, iframe);\n\n\t\t\tiframe.addEventListener('load', () => {\n\t\t\t\t// Set up form submission from inside the iframe.\n\t\t\t\tconst iframeForm = iframe.contentDocument.getElementById(ww_id + '-form');\n\t\t\t\tiframeForm.addEventListener('submit', (e) => {\n\t\t\t\t\thandleWW(ww_id, \"check\");\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\n\t\t\t\tiframe.contentDocument.querySelectorAll('.collapse.in').forEach(collapse => collapse.classList.add('expanded'));\n\t\t\t\tiframe.contentWindow.jQuery('.collapse').on('shown', function(e) { if (e.target != this) return; this.classList.add('expanded'); });\n\t\t\t\tiframe.contentWindow.jQuery('.collapse').on('hide', function(e) { if (e.target != this) return; this.classList.remove('expanded'); });\n\n\t\t\t\tiframe.contentDocument.querySelectorAll(\"button.ww-feedback[data-bs-content]\").forEach(button => {\n\t\t\t\t\tconst bsPopover = new iframe.contentWindow.bootstrap.Popover(button, {\n\t\t\t\t\t\thtml: true,\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\tfallbackPlacements: [],\n\t\t\t\t\t\ttrigger: 'click',\n\t\t\t\t\t\tcustomClass: 'result-popover' + (button.dataset.emptyContent ? ' nocontent' : '')\n\t\t\t\t\t});\n\t\t\t\t\tbsPopover.show();\n\t\t\t\t\tconst content = iframe.contentDocument.getElementById(button.id.replace(\"-feedback-button\", \"-content\"));\n\t\t\t\t\tconst popover = content.parentNode.parentNode;\n\t\t\t\t\tbsPopover.hide();\n\n\t\t\t\t\t/*button.addEventListener('shown.bs.popover', () => {\n\t\t\t\t\t\t// Note that the button itself has the aria-describedby attribute set by bootstrap automatically.\n\t\t\t\t\t\tbutton.previousElementSibling?.setAttribute('aria-describedby', popover.id);\n\t\t\t\t\t});*/\n\n\t\t\t\t\tbutton.addEventListener('click', () => bsPopover.show(), { once: true });\n\n\t\t\t\t\tpopover.querySelector('.popover-arrow').remove();\n\t\t\t\t\tconst title = popover.querySelector('.popover-header');\n\t\t\t\t\tif (button.dataset.emptyContent) content.parentNode.remove();\n\t\t\t\t\tif (title.textContent == localize_correct + '!') title.classList.add('correct');\n\t\t\t\t});\n\t\t\t\tiframe.contentWindow.MathJax.startup.promise.then(() => iframe.contentWindow.MathJax.typesetPromise(['.popover', '.popover-content']));\n\t\t\t});\n\t\t} else {\n\t\t\tiframe = ww_container.querySelector('.problem-iframe');\n\t\t}\n\n\t\tiframe.srcdoc = iframeContents;\n\n\t\tiframe.addEventListener('load', () => {\n\t\t\t// Remove the loader overlay\n\t\t\tloader.remove();\n\t\t}, { once: true })\n\n\t\t// Place focus on the problem.\n\t\tww_container.focus()\n\t});\n}\n\nfunction WWshowCorrect(ww_id, answers) {\n\tconst ww_container = document.getElementById(ww_id);\n\tconst iframe = ww_container.querySelector('.problem-iframe');\n\n\tconst body = iframe.contentDocument.getElementById(ww_id + '-body')\n\t$(\"body\").trigger(\"runestone_show_correct\", {\n\t\t\"ww_id\": ww_id,\n\t\t\"answers\": answers\n\t});\n\n\tlet inputs = body.querySelectorAll(\"input:not([type=hidden])\");\n\tfor (const input of inputs) {\n\t\tconst name = input.name;\n\t\tconst span_id = `${ww_id}-${name}-correct`;\n\n\t\tif (input.type == 'text' && answers[name] && !(iframe.contentDocument.getElementById(span_id))) {\n\t\t\tconst input_id = input.id;\n\t\t\tconst mq_span = iframe.contentDocument.getElementById(`mq-answer-${input_id}`);\n\t\t\tif (mq_span) {\n\t\t\t\tmq_span.style.display = 'none';\n\t\t\t}\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tlabel = iframe.contentDocument.getElementById(`${span_id}-label`);\n\t\t\tif (label) {\n\t\t\t\tlabel.parentElement.insertBefore(input, label);\n\t\t\t\tlabel.remove();\n\t\t\t}\n\t\t\tinput.type = \"hidden\";\n\t\t\t// we need to convert things like &lt; in answers to <\n\t\t\tconst correct_ans_text = iframe.contentDocument.createElement('div');\n\t\t\tcorrect_ans_text.innerHTML = answers[name].correct_ans;\n\t\t\tinput.value = correct_ans_text.textContent;\n\t\t\tconst show_span = iframe.contentDocument.createElement('span');\n\t\t\tshow_span.id = span_id;\n\t\t\tshow_span.appendChild(answers[name].correct_ans_latex_string\n\t\t\t\t? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n\t\t\t\t: iframe.contentDocument.createTextNode(answers[name].correct_ans));\n\t\t\tinput.parentElement.insertBefore(show_span, input);\n\t\t}\n\n\t\tif (input.type.toUpperCase() == 'RADIO' && answers[name]) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tconst correct_ans = answers[name].correct_choice || answers[name].correct_ans;\n\t\t\tif (input.value == correct_ans) {\n\t\t\t\tinput.checked = true;\n\t\t\t\t//input.setAttribute('checked', 'checked');\n\t\t\t} else {\n\t\t\t\tinput.checked = false;\n\t\t\t}\n\t\t}\n\n\t\tif (input.type.toUpperCase() == 'CHECKBOX' && answers[name]) {\n\t\t\tconst correct_choices = answers[name].correct_choices;\n\t\t\tif (correct_choices.includes(input.value)) {\n\t\t\t\tinput.checked = true;\n\t\t\t//\tinput.setAttribute('checked', 'checked');\n\t\t\t} else {\n\t\t\t\tinput.checked = false;\n\t\t\t//\t input.setAttribute('checked', false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst hiddenInputs = body.querySelectorAll(\"input[type=hidden]\");\n\tfor (const input of hiddenInputs) {\n\t\tconst name = input.name;\n\t\tif (!input.nextElementSibling) continue;\n\t\tconst graphtoolContainer = input.nextElementSibling.nextElementSibling;\n\t\tif (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tconst correct_ans_div = iframe.contentDocument.createElement('div');\n\t\t\tinput.parentElement.insertBefore(correct_ans_div, graphtoolContainer);\n\t\t\tgraphtoolContainer.style.display = 'none';\n\t\t\tinput.value = answers[name].correct_ans;\n\t\t\tiframe.contentWindow.jQuery(correct_ans_div).html(answers[name].correct_ans_latex_string);\n\t\t\tconst script = iframe.contentDocument.createElement('script');\n\t\t\tscript.textContent = correct_ans_div.querySelector('script').textContent\n\t\t\t\t.replace('\\nwindow.addEventListener(\"DOMContentLoaded\",', '(')\n\t\t\t\t.replace(/;\\n$/, '();');\n\t\t\tiframe.contentDocument.body.appendChild(script);\n\t\t}\n\t}\n\n\tlet selects = body.querySelectorAll(\"select:not([type=hidden])\");\n\tfor (const select of selects) {\n\t\tconst name = select.name;\n\t\tconst span_id = `${ww_id}-${name}-correct`;\n\t\tif (answers[name] && !iframe.contentDocument.getElementById(span_id)) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tselect.style.display = \"none\";\n\t\t\tselect.value = answers[name].correct_ans;\n\t\t\tconst show_span = iframe.contentDocument.createElement('span');\n\t\t\tshow_span.id = span_id;\n\t\t\tshow_span.appendChild(answers[name].correct_ans_latex_string\n\t\t\t\t? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n\t\t\t\t: iframe.contentDocument.createTextNode(answers[name].correct_ans));\n\t\t\tselect.parentElement.insertBefore(show_span, select);\n\t\t}\n\t}\n\n\t// run MathJax on our new rendering\n\t// FIXME: We only need to typeset the added elements, not the entire body.\n\tconst mathjaxTypesetScript = iframe.contentDocument.createElement('script');\n\tmathjaxTypesetScript.textContent = 'MathJax.startup.promise.then(() => MathJax.typesetPromise([document.body]));';\n\tiframe.contentDocument.body.appendChild(mathjaxTypesetScript);\n}\n\nfunction resetWW(ww_id) {\n\tconst ww_container = document.getElementById(ww_id);\n\tconst activate_button = document.getElementById(ww_id + '-button');\n\n\tww_container.dataset.current_seed = ww_container.dataset.seed;\n\n\tiframe = ww_container.querySelector('.problem-iframe');\n\tiframe.remove();\n\n\tww_container.querySelector('.problem-contents').classList.remove('hidden-content');\n\n\tww_container.querySelector('.problem-buttons.webwork').remove();\n\tww_container.querySelector('.problem-buttons').classList.remove('hidden-content');\n\t// if the newer activate button is there (but hidden) bring it back too\n\tif (activate_button != null) {activate_button.classList.remove('hidden-content');};\n}\n\nfunction adjustSrcHrefs(container,ww_domain) {\n\tcontainer.querySelectorAll('[href]').forEach((node) => {\n\t\tconst href = node.attributes.href.value;\n\t\tif (href !== '#' && !href.match(/^[a-z]+:\\/\\//i)) node.href = ww_domain + '/' + href;\n\t});\n\tcontainer.querySelectorAll('[src]').forEach((node) => {\n\t\tnode.src = new URL(node.attributes.src.value, ww_domain).href;\n\t});\n}\n\nfunction translateHintSol(ww_id, body_div, ww_domain, b_ptx_has_hint, b_ptx_has_solution, hint_label_text, solution_label_text) {\n\t// the problem text may come with \"hint\"s and \"solution\"s\n\t// Each one is an \"a\" with the class \".knowl\" and the data-type attribute of either \"hint\" or \"solution\".\n\t// the WeBWorK knowl js would normally handle this, but we want PreTeXt knowl js to handle it\n\t// so we replace the \"a\" with the content that should be there for PTX knowl js\n\t// also if hint/sol were missing from the static version, we want these removed here\n\n\tconst hintSols = body_div.querySelectorAll('.knowl[data-type=\"hint\"],.knowl[data-type=\"solution\"]');\n\tlet solutionlikewrapper;\n\tfor (const hintSol of hintSols) {\n\t\tconst hintsolp = hintSol.parentNode;\n\t\tif (!hintsolp) continue;\n\t\tconst hintsolpp = hintsolp.parentNode;  //the div that contains each p with a knowl anchor\n\t\tconst hintSolType = hintSol.dataset.type;\n\n\t\tif (hintsolpp.querySelectorAll(\".webwork.solutions\").length == 0)\n\t\t{\n\t\t\tsolutionlikewrapper = document.createElement('div');\n\t\t\tsolutionlikewrapper.classList.add('webwork', 'solutions');\n\t\t\thintsolpp.insertBefore(solutionlikewrapper, hintsolp);\n\t\t}\n\n\t\tif ((hintSolType == 'solution' && !b_ptx_has_solution) ||\n\t\t\t(hintSolType == 'hint' && !b_ptx_has_hint))\n\t\t\tcontinue;\n\n\t\tconst knowlDetails = document.createElement('details');\n\t\tknowlDetails.classList.add(hintSolType);\n\t\tknowlDetails.classList.add('solution-like');\n\t\tknowlDetails.classList.add('born-hidden-knowl');\n\n\t\tconst knowlSummary = document.createElement('summary');\n\t\tconst summaryLabel = document.createElement('span');\n\t\tsummaryLabel.classList.add('type');\n\t\tsummaryLabel.innerHTML = hintSolType == 'hint' ? hint_label_text : solution_label_text;\n\t\tknowlSummary.appendChild(summaryLabel);\n\t\tknowlDetails.appendChild(knowlSummary);\n\n\t\tconst knowlContents = document.createElement('div');\n\t\tknowlContents.classList.add(hintSolType);\n\t\tknowlContents.classList.add('solution-like');\n\t\tknowlContents.innerHTML = hintsolp.firstElementChild.dataset.knowlContents;\n\t\tknowlDetails.appendChild(knowlContents);\n\n\t\tadjustSrcHrefs(knowlContents, ww_domain)\n\t\tsolutionlikewrapper.appendChild(knowlDetails);\n\t}\n\tfor (const hintSol of hintSols) {\n\t\thintSol.parentNode?.remove();\n\t}\n}\n\nfunction cloneAttributes(target, source) {\n\t[...source.attributes].forEach( attr => { target.setAttribute(attr.nodeName ,attr.nodeValue) });\n}\n\nfunction createFeedbackButton(id, title, content) {\n\tconst feedbackButton = document.createElement('button');\n\tfeedbackButton.dataset.bsTitle = title;\n\tfeedbackButton.dataset.bsContent = `<div id=\"${id}-content\">${content || ''}</div>`;\n\tif (!content) feedbackButton.dataset.emptyContent = '1';\n\tconst contentSpan = document.createElement('span');\n\tcontentSpan.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" fill=\"none\" stroke-width=\"2\" viewBox=\"0 0 24 24\" color=\"#000000\"><path stroke=\"#000000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 11.5v5M12 7.51l.01-.011M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"></path></svg>`;\n\tfeedbackButton.appendChild(contentSpan);\n\tfeedbackButton.type = 'button';\n\tfeedbackButton.classList.add('ww-feedback');\n\n\tfeedbackButton.id = `${id}-feedback-button`;\n\tfeedbackButton.dataset.bsToggle = 'popover';\n\n\treturn feedbackButton;\n}\n\nfunction webworkSeedHash(string) {\n\tvar hash = 0, i, chr;\n\tif (string.length === 0) return hash;\n\tfor (i = 0; i < string.length; i++) {\n\t\tchr   = string.charCodeAt(i);\n\t\thash  = ((hash << 5) - hash) + chr;\n\t\thash |= 0; //Convert to 32bit integer\n\t}\n\treturn Math.abs(hash);\n};\n"
  },
  {
    "path": "js/pretext-webwork/2.18/pretext-webwork.js",
    "content": "//Critical:\n// TODO: Think about what should be done for an essay question.\n\n//Accessibility:\n\n//Enhancement:\n// TODO: In a scaffold problem, adjust the green bar for when one part is correct.\n// TODO: Have randomize check that new seed is actually producing new HTML.\n// TODO: Don't offer randomize or button unless we know a new version can be produced after trying a few seeds.\n// TODO: In a staged problem, Make Interactive button is adjacent to solution knowls; move it.\n// TODO: MathQuill\n// TODO: Image pop up.\n// TODO: Deal with singleResult MultiAnswer problems.\n\n//Styling:\n// TODO: Review all styling in all scenarios (staged/not, correct/partly-correct/incorrect/blank, single/multiple)\n// TODO: Sean: I think I'd like to see a slightly larger font size on the buttons\n\nfunction handleWW(ww_id, action) {\n\tconst ww_container = document.getElementById(ww_id);\n\tconst ww_domain = ww_container.dataset.domain;\n\tconst ww_problemSource = ww_container.dataset.problemsource;\n\tconst ww_sourceFilePath = ww_container.dataset.sourcefilepath;\n\tconst ww_course_id = ww_container.dataset.courseid;\n\tconst ww_user_id = ww_container.dataset.userid;\n\tconst ww_course_password = ww_container.dataset.coursepassword;\n\tconst localize_correct = ww_container.dataset.localizeCorrect || \"Correct\";\n\tconst localize_incorrect = ww_container.dataset.localizeIncorrect || \"Incorrect\";\n\tconst localize_blank = ww_container.dataset.localizeBlank || \"Blank\";\n\tconst localize_submit = ww_container.dataset.localizeSubmit || \"Submit\";\n\tconst localize_check_responses = ww_container.dataset.localizeCheckResponses || \"Check Responses\";\n\tconst localize_reveal = ww_container.dataset.localizeReveal || \"Reveal\";\n\tconst localize_randomize = ww_container.dataset.localizeRandomize || \"Randomize\";\n\tconst localize_reset = ww_container.dataset.localizeReset || \"Reset\";\n\tconst runestone_logged_in = (typeof eBookConfig !== 'undefined' && eBookConfig.username !== '');\n\t// will be null on pages generated prior to late December 2022\n\tconst activate_button = document.getElementById(ww_id + '-button')\n\n\t// Set the current seed\n\tif (!action) {\n\t\tww_container.dataset.current_seed = ww_container.dataset.seed;\n\t\tif (runestone_logged_in) {\n\t\t\tww_container.dataset.current_seed = webworkSeedHash(eBookConfig.username + ww_container.dataset.current_seed);\n\t\t}\n\t}\n\telse if (action == 'randomize') ww_container.dataset.current_seed = Number(ww_container.dataset.current_seed) + 100;\n\n\tlet loader = document.createElement('div');\n\tloader.style.position = 'absolute';\n\tloader.style.left = 0;\n\tloader.style.top = 0;\n\tloader.style.backgroundColor = 'rgba(0.2, 0.2, 0.2, 0.4)';\n\tloader.style.color = 'white';\n\tloader.style.width = '100%';\n\tloader.style.height = '100%';\n\tloader.style.display = 'flex';\n\tloader.style.alignItems = 'center';\n\tloader.style.justifyContent = 'center';\n\tloader.style.marginTop = '0';\n\tloader.tabIndex = -1;\n\tconst loaderText = document.createElement('span');\n\tloaderText.textContent = 'Loading';\n\tloaderText.style.fontSize = '2rem';\n\tloader.appendChild(loaderText);\n\tww_container.appendChild(loader);\n\tloader.focus();\n\n\tif (!action) {\n\t\t// Determine if static version shows hints, solutions, or answers and save that information in the container dataset for later runs.\n\t\tww_container.dataset.hasHint = ww_container.getElementsByClassName('hint').length > 0;\n\t\tww_container.dataset.hasSolution = ww_container.getElementsByClassName('solution').length > 0;\n\t\tww_container.dataset.hasAnswer = ww_container.getElementsByClassName('answer').length > 0;\n\t\t// Get (possibly localized) label text for hints and solutions.\n\t\tww_container.dataset.hintLabelText = ww_container.dataset.hasHint == 'true'\n\t\t\t? ww_container.querySelectorAll('.hint-knowl span.type, details.hint span.type')[0].textContent : 'Hint';\n\t\tww_container.dataset.solutionLabelText = ww_container.dataset.hasSolution == 'true'\n\t\t\t? ww_container.querySelectorAll('.solution-knowl span.type, details.solution span.type')[0].textContent : 'Solution';\n\n\t\tww_container.tabIndex = -1;\n\t}\n\n\tlet url;\n\n\tif (action == 'check') {\n\t\tconst iframe = ww_container.querySelector('.problem-iframe');\n\t\tconst formData = new FormData(iframe.contentDocument.getElementById(ww_id + \"-form\"));\n\t\tconst params = new URLSearchParams(formData);\n\t\turl = new URL(ww_domain + '/webwork2/html2xml?' + params.toString())\n\t\turl.searchParams.append(\"answersSubmitted\", '1');\n\t\turl.searchParams.append('WWsubmit', \"1\");\n\t} else {\n\t\turl = new URL(ww_domain + '/webwork2/html2xml');\n\t\turl.searchParams.append(\"problemSeed\", ww_container.dataset.current_seed);\n\t\tif (ww_problemSource) url.searchParams.append(\"problemSource\", ww_problemSource);\n\t\telse if (ww_sourceFilePath) url.searchParams.append(\"sourceFilePath\", ww_sourceFilePath);\n\t\turl.searchParams.append(\"answersSubmitted\", '0');\n\t\turl.searchParams.append(\"displayMode\", \"MathJax\");\n\t\turl.searchParams.append(\"courseID\", ww_course_id);\n\t\turl.searchParams.append(\"userID\", ww_user_id);\n\t\turl.searchParams.append(\"course_password\", ww_course_password);\n\t\turl.searchParams.append(\"outputformat\", \"raw\");\n\t\t// note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n\t\turl.searchParams.append(\"showSolutions\", ww_container.dataset.hasSolution == 'true' ? '1' : '0');\n\t\turl.searchParams.append(\"showHints\", ww_container.dataset.hasHint == 'true' ? '1' : '0');\n\t\turl.searchParams.append(\"problemUUID\",ww_id);\n\t}\n\n\t// get the json and do stuff with what we get\n\t$.getJSON(url.toString(), (data) => {\n\t\t// Create the form that will contain the text and input fields of the interactive problem.\n\t\tconst form = document.createElement(\"form\");\n\t\tform.id = ww_id + \"-form\";\n\n\t\t// Create a div for the problem text.\n\t\tconst body_div = document.createElement(\"div\");\n\t\tbody_div.id = ww_id + \"-body\";\n\t\tbody_div.classList.add(\"exercise\", \"exercise-like\");\n\t\tbody_div.lang = data.lang;\n\t\tbody_div.dir = data.dir;\n\n\t\t// Dump the problem text, answer blanks, etc.\n\t\tbody_div.innerHTML = data.rh_result.text;\n\n\t\t// Replace all hn headings with h6 headings.\n\t\tfor (const tag_name of ['h6', 'h5', 'h4', 'h3', 'h2', 'h1']) {\n\t\t\tconst headings = body_div.getElementsByTagName(tag_name);\n\t\t\tfor (heading of headings) {\n\t\t\t\tconst new_heading = document.createElement(\"h6\");\n\t\t\t\tnew_heading.innerHTML = heading.innerHTML;\n\t\t\t\tcloneAttributes(new_heading, heading);\n\t\t\t\tnew_heading.classList.add('webwork-part');\n\t\t\t\theading.replaceWith(new_heading);\n\t\t\t}\n\t\t}\n\n\t\tadjustSrcHrefs(body_div, ww_domain);\n\n\t\ttranslateHintSol(ww_id, body_div, ww_domain,\n\t\t\tww_container.dataset.hasHint == 'true', ww_container.dataset.hasSolution == 'true',\n\t\t\tww_container.dataset.hintLabelText, ww_container.dataset.solutionLabelText)\n\n\t\t// insert previous answers\n\t\tif (runestone_logged_in) {\n\t\t\tconst answersObject = (wwList[ww_id.replace(/-ww-rs$/,'')].answers ? wwList[ww_id.replace(/-ww-rs$/,'')].answers : {'answers' : [], 'mqAnswers' : []});\n\t\t\tconst mqAnswers = answersObject.mqAnswers;\n\t\t\tfor (const mqAnswer in mqAnswers) {\n\t\t\t\tconst mqInput = body_div.querySelector('input[id=' + mqAnswer + ']');\n\t\t\t\tif (mqInput && mqInput.value == '') {\n\t\t\t\t\tmqInput.setAttribute('value', mqAnswers[mqAnswer]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst answers = answersObject.answers;\n\t\t\tfor (const answer in answers) {\n\t\t\t\tconst input = body_div.querySelector('input[id=' + answer + ']');\n\t\t\t\tif (input && input.value == '') {\n\t\t\t\t\tinput.setAttribute('value', answers[answer]);\n\t\t\t\t}\n\t\t\t\tif (input && input.type.toUpperCase() == 'RADIO') {\n\t\t\t\t\tconst buttons = body_div.querySelectorAll('input[name=' + answer + ']');\n\t\t\t\t\tfor (const button of buttons) {\n\t\t\t\t\t\tif (button.value == answers[answer]) {\n\t\t\t\t\t\t\tbutton.setAttribute('checked', 'checked');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (input && input.type.toUpperCase() == 'CHECKBOX') {\n\t\t\t\t\tconst checkboxes = body_div.querySelectorAll('input[name=' + answer + ']');\n\t\t\t\t\tfor (const checkbox of checkboxes) {\n\t\t\t\t\t\t// This is not a bulletproof approach if the problem used input values that are weird\n\t\t\t\t\t\t// For example, with commas in them\n\t\t\t\t\t\t// However, we are stuck with WW providing answers[answer] as a string like `[value0, value1]`\n\t\t\t\t\t\t// and note that it is not `[\"value0\", \"value1\"]`, so we cannot cleanly parse it into an array\n\t\t\t\t\t\tlet checkbox_regex = new RegExp('(\\\\[|, )' + checkbox.value + '(, |\\\\])');\n\t\t\t\t\t\tif (answers[answer].match(checkbox_regex)) {\n\t\t\t\t\t\t\tcheckbox.setAttribute('checked', 'checked');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar select = body_div.querySelector('select[id=' + answer + ']');\n\t\t\t\tif (select && answers[answer]) {\n\t\t\t\t\t// answers[answer] may be wrapped in \\text{...} that we want to remove, since value does not have this.\n\t\t\t\t\tlet this_answer = answers[answer];\n\t\t\t\t\tif (/^\\\\text\\{.*\\}$/.test(this_answer)) {this_answer = this_answer.match(/^\\\\text\\{(.*)\\}$/)[1]};\n\t\t\t\t\tlet quote_escaped_answer = this_answer.replace(/\"/g, '\\\\\"');\n\t\t\t\t\tconst option = body_div.querySelector(`select[id=\"${answer}\"] option[value=\"${quote_escaped_answer}\"]`);\n\t\t\t\t\tif (option) {option.setAttribute('selected', 'selected')};\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// insert our cleaned up problem text\n\t\tform.appendChild(body_div);\n\n\t\t// Set up hidden input fields that the form uses\n\t\tconst wwInputs = {\n\t\t\tproblemSeed:      data.inputs_ref.problemSeed,\n\t\t\tproblemUUID:      data.inputs_ref.problemUUID,\n\t\t\tpsvn:             data.inputs_ref.psvn,\n\t\t\tcourseName:       ww_course_id,\n\t\t\tcourseID:         ww_course_id,\n\t\t\tuserID:           ww_user_id,\n\t\t\tcourse_password:  ww_course_password,\n\t\t\tdisplayMode:      \"MathJax\",\n\t\t\tsession_key:      data.rh_result.session_key,\n\t\t\toutputformat:     \"raw\",\n\t\t\tlanguage:         data.formLanguage,\n\t\t\tshowSummary:      data.showSummary,\n\t\t\t// note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n\t\t\tshowSolutions:    ww_container.dataset.hasSolution == 'true' ? '1' : '0',\n\t\t\tshowHints:        ww_container.dataset.hasHint == 'true' ? '1' : '0',\n\t\t\tforcePortNumber:  data.forcePortNumber\n\t\t};\n\n\t\tif (ww_sourceFilePath) wwInputs.sourceFilePath = ww_sourceFilePath;\n\t\telse if (ww_problemSource) wwInputs.problemSource = ww_problemSource;\n\n\t\tfor (const wwInputName of Object.keys(wwInputs)) {\n\t\t\tconst input = document.createElement('input');\n\t\t\tinput.type = 'hidden';\n\t\t\tinput.name = wwInputName;\n\t\t\tinput.value = wwInputs[wwInputName];\n\t\t\tform.appendChild(input);\n\t\t}\n\n\t\t// Prepare answers object\n\t\tconst answers = {};\n\t\t// id the answers even if we won't populate them\n\t\tObject.keys(data.rh_result.answers).forEach(function(id) {\n\t\t\tanswers[id] = {};\n\t\t}, data.rh_result.answers);\n\t\tif (ww_container.dataset.hasAnswer == 'true') {\n\t\t\t// Update answer data\n\t\t\tObject.keys(data.rh_result.answers).forEach(function(id) {\n\t\t\t\tanswers[id] = {\n\t\t\t\t\tcorrect_ans: this[id].correct_ans,\n\t\t\t\t\tcorrect_ans_latex_string: this[id].correct_ans_latex_string,\n\t\t\t\t\tcorrect_choice: this[id].correct_choice,\n\t\t\t\t\tcorrect_choices: this[id].correct_choices,\n\t\t\t\t};\n\t\t\t}, data.rh_result.answers);\n\t\t}\n\n\t\tlet buttonContainer = ww_container.querySelector('.problem-buttons.webwork');\n\t\t// Create the submission buttons if they have not yet been created.\n\t\tif (!buttonContainer) {\n\t\t\t// Hide the original div that contains the old make active button.\n\t\t\tww_container.querySelector('.problem-buttons').classList.add('hidden-content');\n\t\t\t// And the newer activate button if it is there\n\t\t\tif (activate_button != null) {activate_button.classList.add('hidden-content');};\n\n\t\t\t// Create a new div for the webwork buttons.\n\t\t\tbuttonContainer = document.createElement('div');\n\t\t\tbuttonContainer.classList.add('problem-buttons', 'webwork');\n\t\t\tif (activate_button != null) {\n\t\t\t\t// Make sure the button container follows the activate button in the DOM\n\t\t\t\tactivate_button.after(buttonContainer);\n\t\t\t} else {\n\t\t\t\tww_container.prepend(buttonContainer);\n\t\t\t}\n\n\t\t\t// Check button\n\t\t\tconst check = document.createElement(\"button\");\n\t\t\tcheck.type = \"button\";\n\t\t\tcheck.id = ww_id + '-check';\n\t\t\tcheck.style.marginRight = \"0.25rem\";\n\t\t\tcheck.classList.add('webwork-button');\n\n\t\t\t// Adjust if more than one answer to check\n\t\t\tconst answerCount = body_div.querySelectorAll(\"input:not([type=hidden])\").length +\n\t\t\t\tbody_div.querySelectorAll(\"select:not([type=hidden])\").length;\n\n\t\t\tcheck.textContent = runestone_logged_in ? localize_submit : localize_check_responses;\n\t\t\tcheck.addEventListener('click', () => handleWW(ww_id, \"check\"));\n\n\t\t\tbuttonContainer.appendChild(check);\n\n\t\t\t// Show correct answers button if original PTX has answer knowl.\n\t\t\tif (ww_container.dataset.hasAnswer == 'true') {\n\t\t\t\tconst correct = document.createElement(\"button\");\n\t\t\t\tcorrect.classList.add(\"show-correct\", 'webwork-button');\n\t\t\t\tcorrect.type = \"button\";\n\t\t\t\tcorrect.style.marginRight = \"0.25rem\";\n\t\t\t\tcorrect.textContent = localize_reveal;\n\t\t\t\tcorrect.addEventListener('click', () => WWshowCorrect(ww_id, answers));\n\t\t\t\tbuttonContainer.appendChild(correct);\n\t\t\t}\n\n\t\t\t// randomize button\n\t\t\tconst randomize = document.createElement(\"button\")\n\t\t\trandomize.type = \"button\";\n\t\t\trandomize.classList.add('webwork-button');\n\t\t\trandomize.style.marginRight = \"0.25rem\";\n\t\t\trandomize.textContent = localize_randomize;\n\t\t\trandomize.addEventListener('click', () => handleWW(ww_id, 'randomize'));\n\t\t\tbuttonContainer.appendChild(randomize)\n\n\t\t\t// reset button\n\t\t\tconst reset = document.createElement(\"button\")\n\t\t\treset.type = \"button\"\n\t\t\treset.classList.add('webwork-button');\n\t\t\treset.textContent = localize_reset;\n\t\t\treset.addEventListener('click', () => resetWW(ww_id));\n\t\t\tbuttonContainer.appendChild(reset)\n\t\t} else {\n\t\t\t// Update the click handler for the show correct button.\n\t\t\tif (ww_container.dataset.hasAnswer == 'true') {\n\t\t\t\tconst correct = buttonContainer.querySelector('.show-correct');\n\t\t\t\tconst correctNew = correct.cloneNode(true);\n\t\t\t\tcorrectNew.addEventListener('click', () => WWshowCorrect(ww_id, answers));\n\t\t\t\tcorrect.replaceWith(correctNew);\n\t\t\t}\n\t\t}\n\n\t\tif (action == 'check') {\n\t\t\t// Runestone trigger\n\t\t\t// TODO: condition on platform=Runestone\n\t\t\t$(\"body\").trigger('runestone_ww_check', data)\n\n\t\t\tconst inputs = body_div.querySelectorAll(\"input:not([type=hidden])\");\n\t\t\tfor (const input of inputs) {\n\t\t\t\tconst name = input.name;\n\t\t\t\tif (input.type == 'text' && answers[name]) {\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tlet headline = '';\n\t\t\t\t\tlet correctClass = '';\n\t\t\t\t\tif (score >= 1) {\n\t\t\t\t\t\theadline = localize_correct + '!';\n\t\t\t\t\t\tcorrectClass = 'correct';\n\t\t\t\t\t} else if (score > 0 && score < 1) {\n\t\t\t\t\t\theadline = `${Math.round(score * 100)}% ${localize_correct}.`;\n\t\t\t\t\t\tcorrectClass = 'partly-correct';\n\t\t\t\t\t} else if (data.rh_result.answers[name].student_ans == '') {\n\t\t\t\t\t\theadline = localize_blank + '.';\n\t\t\t\t\t\tcorrectClass = 'blank';\n\t\t\t\t\t} else if (score <= 0) {\n\t\t\t\t\t\theadline = localize_incorrect + '.';\n\t\t\t\t\t\tcorrectClass = 'incorrect';\n\t\t\t\t\t}\n\t\t\t\t\tlet title = `<span class=\"${correctClass}\">${headline}</span>`;\n\t\t\t\t\tlet message = (data.rh_result.answers[name].ans_message ? data.rh_result.answers[name].ans_message : '');\n\t\t\t\t\tinput.classList.add(correctClass);\n\t\t\t\t\t// make a span that contains feedback\n\t\t\t\t\tfeedbackSpan = document.createElement('span');\n\t\t\t\t\tfeedbackSpan.id = `${ww_id}-${name}-feedback`;\n\t\t\t\t\tfeedbackHeadline = document.createElement('span');\n\t\t\t\t\tfeedbackHeadline.id = `${ww_id}-${name}-headline`;\n\t\t\t\t\tfeedbackHeadline.textContent = headline;\n\t\t\t\t\tfeedbackSpan.appendChild(feedbackHeadline);\n\t\t\t\t\tfeedbackMessage = document.createElement('span');\n\t\t\t\t\tfeedbackMessage.id = `${ww_id}-${name}-message`;\n\t\t\t\t\tfeedbackMessage.textContent = message;\n\t\t\t\t\tfeedbackSpan.appendChild(feedbackMessage);\n\t\t\t\t\t// make a non breaking span to surround input, sr span, and feedback button\n\t\t\t\t\tlet nbSpan = document.createElement('span');\n\t\t\t\t\tnbSpan.classList.add(\"nobreak\");\n\t\t\t\t\tinput.parentNode.insertBefore(nbSpan, input);\n\t\t\t\t\tnbSpan.appendChild(input);\n\t\t\t\t\t// put a visibly hidden (screen-reader only) span with feedback\n\t\t\t\t\tlet srSpan = document.createElement('span');\n\t\t\t\t\tsrSpan.classList.add(\"visually-hidden\");\n\t\t\t\t\tsrSpan.appendChild(feedbackSpan);\n\t\t\t\t\tnbSpan.appendChild(srSpan);\n\t\t\t\t\t// give the feedback to sr users immediately\n\t\t\t\t\tinput.setAttribute('aria-describedby',`${ww_id}-${name}-feedback`);\n\t\t\t\t\t// make the feedback button\n\t\t\t\t\tsrSpan.after(createFeedbackButton(`${ww_id}-${name}`, title, message));\n\t\n\t\t\t\t}\n\n\t\t\t\tif (input.type.toUpperCase() == 'RADIO' && answers[name]) {\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tconst student_ans = data.rh_result.answers[name].student_value || data.rh_result.answers[name].student_ans;\n\t\t\t\t\tconst correct_ans = data.rh_result.answers[name].correct_choice || data.rh_result.answers[name].correct_ans;\n\t\t\t\t\tif (input.value == student_ans) {\n\t\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\t\tinput.parentNode.classList.add('correct');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tinput.parentNode.classList.add('incorrect');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`,\n\t\t\t\t\t\t\t(student_ans == correct_ans)\n\t\t\t\t\t\t\t? `<span class=\"correct\">${localize_correct}</span>` : `<span class=\"incorrect\">${localize_incorrect}.</span>`)\n\t\t\t\t\t\tfeedbackButton.style.marginRight = '0.25rem';\n\t\t\t\t\t\tinput.after(feedbackButton);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (input.type.toUpperCase() == 'CHECKBOX' && answers[name]) {\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tconst student_ans = data.rh_result.answers[name].student_ans;\n\t\t\t\t\tconst correct_ans = data.rh_result.answers[name].correct_ans;\n\t\t\t\t\tif (input.value == data.rh_result.answers[name].firstElement) {\n\t\t\t\t\t\tconst checkbox_div = input.parentNode.parentNode;\n\t\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\t\tcheckbox_div.classList.add('correct');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcheckbox_div.classList.add('incorrect');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`,\n\t\t\t\t\t\t\t(student_ans == correct_ans)\n\t\t\t\t\t\t\t? `<span class=\"correct\">${localize_correct}</span>` : `<span class=\"incorrect\">${localize_incorrect}.</span>`)\n\t\t\t\t\t\tcheckbox_div.insertBefore(feedbackButton, checkbox_div.firstChild);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst hiddenInputs = body_div.querySelectorAll(\"input[type=hidden]\");\n\t\t\tfor (const input of hiddenInputs) {\n\t\t\t\tconst name = input.name;\n\t\t\t\tif (!input.nextElementSibling) continue;\n\t\t\t\tconst graphtoolContainer = input.nextElementSibling.nextElementSibling;\n\t\t\t\tif (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n\t\t\t\t\tgraphtoolContainer.style.position = 'relative';\n\t\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\t\tlet title = '';\n\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\ttitle = `<span class=\"correct\">${localize_correct}</span>`;\n\t\t\t\t\t} else if (score > 0 && score < 1) {\n\t\t\t\t\t\ttitle = `<span class=\"partly-correct\">${Math.round(score * 100)}% ${localize_correct}.</span>`;\n\t\t\t\t\t} else if (data.rh_result.answers[name].student_ans == '') {\n\t\t\t\t\t\t// do nothing if the submitted answer is blank and the problem has not already been scored as correct\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (score == 0) {\n\t\t\t\t\t\ttitle = `<span class=\"incorrect\">${localize_incorrect}.</span>`;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst feedbackButton = createFeedbackButton(`${ww_id}-${name}`, title, data.rh_result.answers[name].ans_message);\n\t\t\t\t\tfeedbackButton.style.position = 'absolute';\n\t\t\t\t\tfeedbackButton.style.left = '100%';\n\t\t\t\t\tfeedbackButton.style.top = 0;\n\t\t\t\t\tfeedbackButton.style.marginLeft = '0.5rem';\n\t\t\t\t\tfeedbackButton.dataset.bsContainer = 'body';\n\t\t\t\t\tgraphtoolContainer.appendChild(feedbackButton);\n\t\t\t\t\tif (score == 1) {\n\t\t\t\t\t\tgraphtoolContainer.classList.add('correct');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgraphtoolContainer.classList.add('incorrect');\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst selects = body_div.querySelectorAll(\"select:not([type=hidden])\");\n\t\t\tfor (const select of selects) {\n\t\t\t\tconst name = select.name;\n\t\t\t\tconst score = data.rh_result.answers[name].score;\n\t\t\t\tlet title = '';\n\t\t\t\tif (score == 1) {\n\t\t\t\t\theadline = localize_correct + '!';\n\t\t\t\t\tcorrectClass = 'correct';\n\t\t\t\t} else {\n\t\t\t\t\theadline = localize_incorrect + '.';\n\t\t\t\t\tcorrectClass = 'incorrect';\n\t\t\t\t}\n\t\t\t\tselect.classList.add(correctClass);\n\t\t\t\ttitle = `<span class=\"${correctClass}\">${headline}</span>`;\n\t\t\t\t// make a span that contains feedback\n\t\t\t\tfeedbackSpan = document.createElement('span');\n\t\t\t\tfeedbackSpan.id = `${ww_id}-${name}-feedback`;\n\t\t\t\tfeedbackHeadline = document.createElement('span');\n\t\t\t\tfeedbackHeadline.id = `${ww_id}-${name}-headline`;\n\t\t\t\tfeedbackHeadline.textContent = headline;\n\t\t\t\tfeedbackSpan.appendChild(feedbackHeadline);\n\t\t\t\t// make a non breaking span to surround select, sr span, and feedback button\n\t\t\t\tlet nbSpan = document.createElement('span');\n\t\t\t\tnbSpan.classList.add(\"nobreak\");\n\t\t\t\tselect.parentNode.insertBefore(nbSpan, select);\n\t\t\t\tnbSpan.appendChild(select);\n\t\t\t\t// put a span around select since select does not support ::after pseudo elements\n\t\t\t\tlet psSpan = document.createElement('span');\n\t\t\t\tpsSpan.classList.add(\"select-wrapper\", correctClass);\n\t\t\t\tselect.parentNode.insertBefore(psSpan, select);\n\t\t\t\tpsSpan.appendChild(select);\n\t\t\t\t// put a visibly hidden (screen-reader only) span with feedback\n\t\t\t\tlet srSpan = document.createElement('span');\n\t\t\t\tsrSpan.classList.add(\"visually-hidden\");\n\t\t\t\tsrSpan.appendChild(feedbackSpan);\n\t\t\t\tnbSpan.appendChild(srSpan);\n\t\t\t\t// give the feedback to sr users immediately\n\t\t\t\tselect.setAttribute('aria-describedby',`${ww_id}-${name}-feedback`);\n\t\t\t\t// make the feedback button\n\t\t\t\tsrSpan.after(createFeedbackButton(`${ww_id}-${name}`, title));\n\t\t\t}\n\t\t}\n\n\t\tlet iframeContents = '<!DOCTYPE html><head>' +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/jquery/dist/jquery.min.js\"></script>' +\n\t\t\t`<script>window.MathJax = {\n\t\t\t  tex: {\n\t\t\t\tinlineMath: [['\\\\\\\\(','\\\\\\\\)']],\n\t\t\t\ttags: \"none\",\n\t\t\t\tuseLabelIds: true,\n\t\t\t\ttagSide: \"right\",\n\t\t\t\ttagIndent: \".8em\",\n\t\t\t\tpackages: {'[+]': ['base', 'extpfeil', 'ams', 'amscd', 'newcommand', 'knowl']}\n\t\t\t  },\n\t\t\t  options: {\n\t\t\t\tignoreHtmlClass: \"tex2jax_ignore\",\n\t\t\t\tprocessHtmlClass: \"has_am\",\n\t\t\t\trenderActions: {\n\t\t\t\t\tfindScript: [10, function (doc) {\n\t\t\t\t\t\tdocument.querySelectorAll('script[type^=\"math/tex\"]').forEach(function(node) {\n\t\t\t\t\t\t\tconst display = !!node.type.match(/; *mode=display/);\n\t\t\t\t\t\t\tconst math = new doc.options.MathItem(node.textContent, doc.inputJax[0], display);\n\t\t\t\t\t\t\tconst text = document.createTextNode('');\n\t\t\t\t\t\t\tnode.parentNode.replaceChild(text, node);\n\t\t\t\t\t\t\tmath.start = {node: text, delim: '', n: 0};\n\t\t\t\t\t\t\tmath.end = {node: text, delim: '', n: 0};\n\t\t\t\t\t\t\tdoc.math.push(math);\n\t\t\t\t\t\t});\n\t\t\t\t\t}, '']\n\t\t\t\t},\n\t\t\t  },\n\t\t\t  chtml: {\n\t\t\t\tscale: 0.88,\n\t\t\t\tmtextInheritFont: true\n\t\t\t  },\n\t\t\t  loader: {\n\t\t\t\tload: ['input/asciimath', '[tex]/extpfeil', '[tex]/amscd', '[tex]/newcommand', '[pretext]/mathjaxknowl3.js'],\n\t\t\t\tpaths: {pretext: \"https://pretextbook.org/js/lib\"},\n\t\t\t  },\n\t\t\t};\n\t\t\t</script>` +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/mathjax/es5/tex-chtml.js\" id=\"MathJax-script\" defer></script>' +\n\t\t\t'<script src=\"https://pretextbook.org/js/lib/knowl.js\" defer></script>' +\n\t\t\t'<link rel=\"stylesheet\" href=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/css/bootstrap.min.css\"/>' +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js\" defer></script>';\n\n\t\t// Determine javascript and css dependencies\n\t\tconst extra_css_files = [];\n\t\tconst extra_js_files = [];\n\t\t//if (data.rh_result.flags.extra_js_files) {\n\t\t//    for (const jsFile of data.rh_result.flags.extra_js_files) {\n\t\t//        if (jsFile.file == \"js/apps/GraphTool/graphtool.min.js\" || jsFile.file == \"js/apps/Scaffold/scaffold.js\") {\n\t\t//            extra_css_files.push({ file: 'js/vendor/bootstrap/css/bootstrap.css', external: '0' });\n\t\t//            extra_css_files.push({ file: 'themes/math4/math4.css', external: '0' });\n\t\t//            extra_js_files.push({ file: 'js/vendor/bootstrap/js/bootstrap.js', external: '0' });\n\t\t//        }\n\t\t//    }\n\t\t//}\n\n\t\tif (data.extra_css_files) data.extra_css_files.unshift(...extra_css_files);\n\t\telse data.extra_css_files = extra_css_files;\n\t\tfor (const cssFile of data.extra_css_files) {\n\t\t\tif (/knowl/.test(cssFile.file)) continue;\n\t\t\tiframeContents += '<link rel=\"stylesheet\" href=\"' + (cssFile.external !== '1' ? ww_domain : '') + cssFile.file + '\"/>';\n\t\t}\n\n\t\tif (data.extra_js_files) data.extra_js_files.unshift(...extra_js_files);\n\t\telse data.extra_js_files = extra_js_files;\n\t\tfor (const jsFile of data.extra_js_files) {\n\t\t\tif (/knowl/.test(jsFile.file)) continue;\n\t\t\tiframeContents += '<script src=\"' + (jsFile.external !== '1' ? ww_domain : '') + jsFile.file + '\" ' +\n\t\t\t\tObject.keys(jsFile.attributes || {}).reduce((ret, key) => {\n\t\t\t\t\tret += key + '=\"' + jsFile.attributes[key] + '\" '; return ret;\n\t\t\t\t}, \"\") + '></script>';\n\t\t}\n\n\t\tiframeContents +=\n\t\t\t'<link rel=\"stylesheet\" href=\"https://pretextbook.org/css/0.31/pretext_add_on.css\"/>' +\n\t\t\t'<link rel=\"stylesheet\" href=\"https://pretextbook.org/css/0.31/knowls_default.css\"/>' +\n\t\t\t'<script src=\"' + ww_domain + '/webwork2_files/node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js\"></script>' +\n\t\t\t`<style>\n\t\t\thtml { overflow-y: hidden; }\n\t\t\thtml body { background:unset; margin: 0; }\n\t\t\tbody { font-size: initial; line-height: initial; padding:2px; }\n\t\t\t.hidden-content { display: none; }\n\t\t\tinput[type=\"text\"], input[type=\"radio\"], label, select {\n\t\t\t\theight: auto;\n\t\t\t\twidth: auto;\n\t\t\t\tmax-width: unset;\n\t\t\t\tmargin: 0;\n\t\t\t\tfont-size: initial;\n\t\t\t\t/*font-family: sans-serif;*/\n\t\t\t\tline-height: initial;\n\t\t\t}\n\t\t\tinput[type=\"text\"] {\n\t\t\t\tpadding: 1px;\n\t\t\t\tpadding-inline: 2px;\n\t\t\t\tborder-width: 1px;\n\t\t\t\tborder-style: inset;\n\t\t\t\tborder-color: rgb(133, 133, 133);\n\t\t\t\tborder-radius: 0;\n\t\t\t\tbox-shadow: unset;\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t\tinput[type=\"text\"]:focus, input[type=\"text\"]:active {\n\t\t\t\tbox-shadow: unset;\n\t\t\t\tborder-width: 1px;\n\t\t\t\tborder-style: inset;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tborder-color: rgb(133, 133, 133);\n\t\t\t\toutline: auto;\n\t\t\t}\n\t\t\tinput[type=\"radio\"] {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\tmargin-block: 3px 0;\n\t\t\t\tmargin-inline: 5px 3px;\n\t\t\t\tvertical-align: unset;\n\t\t\t}\n\t\tspan.nobreak {\n\t\t\twhite-space: nowrap;\n\t\t}\n\t\tinput[type=\"text\"].blank, input[type=\"text\"].correct, input[type=\"text\"].partly-correct, input[type=\"text\"].incorrect, select.correct, select.incorrect {\n\t\t\tbackground-size: auto 100%;\n\t\t\tbackground-position: right;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tpadding-right: 29px;\n\t\t}\n\t\tinput[type=\"text\"].blank {\n\t\t\tbackground-color: #CDF;\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='20px' width='20px'><text x='19' y='16' fill='%230049DB' text-anchor='end'>⚠</text></svg>\");\n\t\t}\n\t\tinput[type=\"text\"].correct, select.correct, input[type=\"text\"].correct + span.mq-editable-field {\n\t\t\tbackground-color: #8F8;\n\t\t}\n\t\tinput[type=\"text\"].correct {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='20px' width='20px'><text x='19' y='16' fill='%23060' text-anchor='end'>✓</text></svg>\");\n\t\t}\n\t\t\tpadding-left: 2rem;\n\t\t\tbackground-repeat: no-repeat;\n\t\t\tbackground-position-y: center;\n\t\t}\n\t\tinput[type=\"text\"].partly-correct, input[type=\"text\"].partly-correct + span.mq-editable-field {\n\t\t\tbackground-color: #CDF;\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='22px' width='30px'><text x='28' y='18' fill='%235C5C00' text-anchor='end'>⚠</text></svg>\");\n\t\t}\n\t\tinput[type=\"text\"].incorrect, select.incorrect, input[type=\"text\"].incorrect + span.mq-editable-field {\n\t\t\tbackground-color: #DAA;\n\t\t}\n\t\tinput[type=\"text\"].incorrect {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='22px' width='30px'><text x='28' y='18' fill='%23943D3D' text-anchor='end'>⚠</text></svg>\");\n\t\t}\n\t\tinput[type=\"text\"].partly-correct, input[type=\"text\"].incorrect {\n\t\t\tbackground-size: auto 70%;\n\t\t}\n\t\tlabel {\n\t\t\tpadding-left: 1.8em;\n\t\t}\n\t\tlabel.correct::before {\n\t\t\tcolor: #060;\n\t\t\tcontent: '✓';\n\t\t}\n\t\tlabel.incorrect::before {\n\t\t\tcolor: #943D3D;\n\t\t\tcontent: '⚠';\n\t\t\tfont-size: small;\n\t\t}\n\t\tlabel.correct::before, label.incorrect::before {\n\t\t\tdisplay:inline-block;\n\t\t\twidth: 0;\n\t\t\tdirection: rtl;\n\t\t}\n\t\t.select-wrapper.correct::before {\n\t\t\tcolor: #060;\n\t\t\tcontent: '✓';\n\t\t\tmargin-right: 2pt;\n\t\t}\n\t\t.select-wrapper.incorrect::before {\n\t\t\tcolor: #943D3D;\n\t\t\tcontent: '⚠';\n\t\t\tmargin-right: 2pt;\n\t\t\tfont-size: small;\n\t\t}\n\t\t.checkboxes-container.correct label input, .checkboxes-container.incorrect label input {\n\t\t\tborder-radius: 2px;\n\t\t\tappearance: none;\n\t\t\t-webkit-appearance: none;\n\t\t\t-moz-appearance: none;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tcursor: pointer;\n\t\t\tposition: relative;\n\t\t\ttop: 5px;\n\t\t\tbackground-repeat: no-repeat;\n\t\t}\n\t\t.checkboxes-container.correct label input {\n\t\t\tbackground-color: #8F8;\n\t\t\tborder: #060 solid;\n\t\t}\n\t\t.checkboxes-container.correct label input:checked {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='14px' width='14px'><text x='13' y='13' text-anchor='end'>✓</text></svg>\");\n\t\t}\n\t\t.checkboxes-container.incorrect label input {\n\t\t\tbackground-color: #DAA;\n\t\t\tborder: #943D3D solid;\n\t\t}\n\t\t.checkboxes-container.incorrect label input:checked {\n\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='14px' width='14px'><text x='13' y='13' text-anchor='end'>✘</text></svg>\");\n\t\t}\n\t\tdiv.PGML img.image-view-elt {\n\t\t\tmax-width:100%;\n\t\t}\n\n\t\t\tlabel {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t\tselect {\n\t\t\t\tmargin: 0;\n\t\t\t\tborder-width: 1px;\n\t\t\t\tborder-style: inset;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tpadding-block: 1px;\n\t\t\t\tvertical-align: baseline;\n\t\t\t\tbackground-color: unset;\n\t\t\t\tpadding-inline: 0;\n\t\t\t}\n\t\t\t.result-popover .popover-header, .result-popover .popover-content {\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.result-popover .popover-header.correct {\n\t\t\t\tbackground-color: #8F8;\n\t\t\t}\n\t\t\t.result-popover.nocontent .popover-header {\n\t\t\t\tborder-radius: calc(.3rem - 1px);\n\t\t\t}\n\t\t\t.result-popover.nocontent .popover-header::before {\n\t\t\t\tborder: none;\n\t\t\t}\n\t\t\t.accordion-body.expanded {\n\t\t\t\toverflow-y: visible;\n\t\t\t\toverflow-x: clip;\n\t\t\t}\n\t\t\t.graphtool-answer-container .graphtool-graph {\n\t\t\t\tmargin: 0;\n\t\t\t\twidth: 300px;\n\t\t\t\theight: 300px;\n\t\t\t}\n\t\t\t.graphtool-answer-container .graphtool-number-line {\n\t\t\t\theight: 57px;\n\t\t\t}\n\t\t\t.checkboxes-container .ww-feedback {\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 2px;\n\t\t\t}\n\t\t\t.graphtool-container.correct .graphtool-graph {\n\t\t\t\tbackground-color: #8F8;\n\t\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='20px' width='20px'><text x='19' y='16' fill='%23060' text-anchor='end'>✓</text></svg>\");\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t}\n\t\t\t.graphtool-container.incorrect .graphtool-graph {\n\t\t\t\tbackground-color: #DAA;\n\t\t\t\tbackground-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='22px' width='30px'><text x='28' y='18' fill='%235C5C00' text-anchor='end'>⚠</text></svg>\");\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t}\n\t\t\t</style>` +\n\t\t\t'</head><body><main class=\"pretext-content\">' + form.outerHTML + '</main></body>' +\n\t\t\t'</html>';\n\n\t\tlet iframe;\n\t\t// If there is no action this is the initialization call.\n\t\tif (!action) {\n\t\t\t// Create the iframe.\n\t\t\tiframe = document.createElement('iframe');\n\t\t\tiframe.style.width = '1px';\n\t\t\tiframe.style.minWidth = '100%';\n\t\t\tiframe.classList.add('problem-iframe');\n\n\t\t\t// Hide the static problem\n\t\t\tww_container.querySelector('.problem-contents').classList.add('hidden-content');\n\n\t\t\tif (activate_button != null) {\n\t\t\t\t// Make sure the iframe follows the activate button in the DOM\n\t\t\t\tactivate_button.after(iframe);\n\t\t\t} else {\n\t\t\t\tww_container.prepend(iframe);\n\t\t\t}\n\n\t\t\tiFrameResize({ checkOrigin: false, scrolling: 'omit', heightCalculationMethod: 'min' }, iframe);\n\n\t\t\tiframe.addEventListener('load', () => {\n\t\t\t\t// Set up form submission from inside the iframe.\n\t\t\t\tconst iframeForm = iframe.contentDocument.getElementById(ww_id + '-form');\n\t\t\t\tiframeForm.addEventListener('submit', (e) => {\n\t\t\t\t\thandleWW(ww_id, \"check\");\n\t\t\t\t\te.preventDefault();\n\t\t\t\t});\n\n\t\t\t\tiframe.contentDocument.querySelectorAll('.collapse.in').forEach(collapse => collapse.classList.add('expanded'));\n\t\t\t\tiframe.contentWindow.jQuery('.collapse').on('shown', function(e) { if (e.target != this) return; this.classList.add('expanded'); });\n\t\t\t\tiframe.contentWindow.jQuery('.collapse').on('hide', function(e) { if (e.target != this) return; this.classList.remove('expanded'); });\n\n\t\t\t\tiframe.contentDocument.querySelectorAll(\"button.ww-feedback[data-bs-content]\").forEach(button => {\n\t\t\t\t\tconst bsPopover = new iframe.contentWindow.bootstrap.Popover(button, {\n\t\t\t\t\t\thtml: true,\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\tfallbackPlacements: [],\n\t\t\t\t\t\ttrigger: 'click',\n\t\t\t\t\t\tcustomClass: 'result-popover' + (button.dataset.emptyContent ? ' nocontent' : '')\n\t\t\t\t\t});\n\t\t\t\t\tbsPopover.show();\n\t\t\t\t\tconst content = iframe.contentDocument.getElementById(button.id.replace(\"-feedback-button\", \"-content\"));\n\t\t\t\t\tconst popover = content.parentNode.parentNode;\n\t\t\t\t\tbsPopover.hide();\n\n\t\t\t\t\t/*button.addEventListener('shown.bs.popover', () => {\n\t\t\t\t\t\t// Note that the button itself has the aria-describedby attribute set by bootstrap automatically.\n\t\t\t\t\t\tbutton.previousElementSibling?.setAttribute('aria-describedby', popover.id);\n\t\t\t\t\t});*/\n\n\t\t\t\t\tbutton.addEventListener('click', () => bsPopover.show(), { once: true });\n\n\t\t\t\t\tpopover.querySelector('.popover-arrow').remove();\n\t\t\t\t\tconst title = popover.querySelector('.popover-header');\n\t\t\t\t\tif (button.dataset.emptyContent) content.parentNode.remove();\n\t\t\t\t\tif (title.textContent == localize_correct + '!') title.classList.add('correct');\n\t\t\t\t});\n\t\t\t\tiframe.contentWindow.MathJax.startup.promise.then(() => iframe.contentWindow.MathJax.typesetPromise(['.popover', '.popover-content']));\n\t\t\t});\n\t\t} else {\n\t\t\tiframe = ww_container.querySelector('.problem-iframe');\n\t\t}\n\n\t\tiframe.srcdoc = iframeContents;\n\n\t\tiframe.addEventListener('load', () => {\n\t\t\t// Remove the loader overlay\n\t\t\tloader.remove();\n\t\t}, { once: true })\n\n\t\t// Place focus on the problem.\n\t\tww_container.focus()\n\t});\n}\n\nfunction WWshowCorrect(ww_id, answers) {\n\tconst ww_container = document.getElementById(ww_id);\n\tconst iframe = ww_container.querySelector('.problem-iframe');\n\n\tconst body = iframe.contentDocument.getElementById(ww_id + '-body')\n\t$(\"body\").trigger(\"runestone_show_correct\", {\n\t\t\"ww_id\": ww_id,\n\t\t\"answers\": answers\n\t});\n\n\tlet inputs = body.querySelectorAll(\"input:not([type=hidden])\");\n\tfor (const input of inputs) {\n\t\tconst name = input.name;\n\t\tconst span_id = `${ww_id}-${name}-correct`;\n\n\t\tif (input.type == 'text' && answers[name] && !(iframe.contentDocument.getElementById(span_id))) {\n\t\t\tconst input_id = input.id;\n\t\t\tconst mq_span = iframe.contentDocument.getElementById(`mq-answer-${input_id}`);\n\t\t\tif (mq_span) {\n\t\t\t\tmq_span.style.display = 'none';\n\t\t\t}\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tlabel = iframe.contentDocument.getElementById(`${span_id}-label`);\n\t\t\tif (label) {\n\t\t\t\tlabel.parentElement.insertBefore(input, label);\n\t\t\t\tlabel.remove();\n\t\t\t}\n\t\t\tinput.type = \"hidden\";\n\t\t\t// we need to convert things like &lt; in answers to <\n\t\t\tconst correct_ans_text = iframe.contentDocument.createElement('div');\n\t\t\tcorrect_ans_text.innerHTML = answers[name].correct_ans;\n\t\t\tinput.value = correct_ans_text.textContent;\n\t\t\tconst show_span = iframe.contentDocument.createElement('span');\n\t\t\tshow_span.id = span_id;\n\t\t\tshow_span.appendChild(answers[name].correct_ans_latex_string\n\t\t\t\t? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n\t\t\t\t: iframe.contentDocument.createTextNode(answers[name].correct_ans));\n\t\t\tinput.parentElement.insertBefore(show_span, input);\n\t\t}\n\n\t\tif (input.type.toUpperCase() == 'RADIO' && answers[name]) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tconst correct_ans = answers[name].correct_choice || answers[name].correct_ans;\n\t\t\tif (input.value == correct_ans) {\n\t\t\t\tinput.checked = true;\n\t\t\t\t//input.setAttribute('checked', 'checked');\n\t\t\t} else {\n\t\t\t\tinput.checked = false;\n\t\t\t}\n\t\t}\n\n\t\tif (input.type.toUpperCase() == 'CHECKBOX' && answers[name]) {\n\t\t\tconst correct_choices = answers[name].correct_choices;\n\t\t\tif (correct_choices.includes(input.value)) {\n\t\t\t\tinput.checked = true;\n\t\t\t//\tinput.setAttribute('checked', 'checked');\n\t\t\t} else {\n\t\t\t\tinput.checked = false;\n\t\t\t//\t input.setAttribute('checked', false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst hiddenInputs = body.querySelectorAll(\"input[type=hidden]\");\n\tfor (const input of hiddenInputs) {\n\t\tconst name = input.name;\n\t\tif (!input.nextElementSibling) continue;\n\t\tconst graphtoolContainer = input.nextElementSibling.nextElementSibling;\n\t\tif (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tconst correct_ans_div = iframe.contentDocument.createElement('div');\n\t\t\tinput.parentElement.insertBefore(correct_ans_div, graphtoolContainer);\n\t\t\tgraphtoolContainer.style.display = 'none';\n\t\t\tinput.value = answers[name].correct_ans;\n\t\t\tiframe.contentWindow.jQuery(correct_ans_div).html(answers[name].correct_ans_latex_string);\n\t\t\tconst script = iframe.contentDocument.createElement('script');\n\t\t\tscript.textContent = correct_ans_div.querySelector('script').textContent\n\t\t\t\t.replace('\\nwindow.addEventListener(\"DOMContentLoaded\",', '(')\n\t\t\t\t.replace(/;\\n$/, '();');\n\t\t\tiframe.contentDocument.body.appendChild(script);\n\t\t}\n\t}\n\n\tlet selects = body.querySelectorAll(\"select:not([type=hidden])\");\n\tfor (const select of selects) {\n\t\tconst name = select.name;\n\t\tconst span_id = `${ww_id}-${name}-correct`;\n\t\tif (answers[name] && !iframe.contentDocument.getElementById(span_id)) {\n\t\t\tconst feedbackButton = iframe.contentDocument.getElementById(`${ww_id}-${name}-feedback-button`);\n\t\t\tif (feedbackButton) {\n\t\t\t\tiframe.contentWindow.bootstrap.Popover.getInstance(feedbackButton)?.hide();\n\t\t\t\tfeedbackButton.remove();\n\t\t\t}\n\t\t\tselect.style.display = \"none\";\n\t\t\tselect.value = answers[name].correct_ans;\n\t\t\tconst show_span = iframe.contentDocument.createElement('span');\n\t\t\tshow_span.id = span_id;\n\t\t\tshow_span.appendChild(answers[name].correct_ans_latex_string\n\t\t\t\t? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n\t\t\t\t: iframe.contentDocument.createTextNode(answers[name].correct_ans));\n\t\t\tselect.parentElement.insertBefore(show_span, select);\n\t\t}\n\t}\n\n\t// run MathJax on our new rendering\n\t// FIXME: We only need to typeset the added elements, not the entire body.\n\tconst mathjaxTypesetScript = iframe.contentDocument.createElement('script');\n\tmathjaxTypesetScript.textContent = 'MathJax.startup.promise.then(() => MathJax.typesetPromise([document.body]));';\n\tiframe.contentDocument.body.appendChild(mathjaxTypesetScript);\n}\n\nfunction resetWW(ww_id) {\n\tconst ww_container = document.getElementById(ww_id);\n\tconst activate_button = document.getElementById(ww_id + '-button');\n\n\tww_container.dataset.current_seed = ww_container.dataset.seed;\n\n\tiframe = ww_container.querySelector('.problem-iframe');\n\tiframe.remove();\n\n\tww_container.querySelector('.problem-contents').classList.remove('hidden-content');\n\n\tww_container.querySelector('.problem-buttons.webwork').remove();\n\tww_container.querySelector('.problem-buttons').classList.remove('hidden-content');\n\t// if the newer activate button is there (but hidden) bring it back too\n\tif (activate_button != null) {activate_button.classList.remove('hidden-content');};\n}\n\nfunction adjustSrcHrefs(container,ww_domain) {\n\tcontainer.querySelectorAll('[href]').forEach((node) => {\n\t\tconst href = node.attributes.href.value;\n\t\tif (href !== '#' && !href.match(/^[a-z]+:\\/\\//i)) node.href = ww_domain + '/' + href;\n\t});\n\tcontainer.querySelectorAll('[src]').forEach((node) => {\n\t\tnode.src = new URL(node.attributes.src.value, ww_domain).href;\n\t});\n}\n\nfunction translateHintSol(ww_id, body_div, ww_domain, b_ptx_has_hint, b_ptx_has_solution, hint_label_text, solution_label_text) {\n\t// the problem text may come with \"hint\"s and \"solution\"s\n\t// Each one is an \"a\" with the class \".knowl\" and the data-type attribute of either \"hint\" or \"solution\".\n\t// the WeBWorK knowl js would normally handle this, but we want PreTeXt knowl js to handle it\n\t// so we replace the \"a\" with the content that should be there for PTX knowl js\n\t// also if hint/sol were missing from the static version, we want these removed here\n\n\tconst hintSols = body_div.querySelectorAll('.knowl[data-type=\"hint\"],.knowl[data-type=\"solution\"]');\n\tlet solutionlikewrapper;\n\tfor (const hintSol of hintSols) {\n\t\tconst hintsolp = hintSol.parentNode;\n\t\tif (!hintsolp) continue;\n\t\tconst hintsolpp = hintsolp.parentNode;  //the div that contains each p with a knowl anchor\n\t\tconst hintSolType = hintSol.dataset.type;\n\n\t\tif (hintsolpp.querySelectorAll(\".webwork.solutions\").length == 0)\n\t\t{\n\t\t\tsolutionlikewrapper = document.createElement('div');\n\t\t\tsolutionlikewrapper.classList.add('webwork', 'solutions');\n\t\t\thintsolpp.insertBefore(solutionlikewrapper, hintsolp);\n\t\t}\n\n\t\tif ((hintSolType == 'solution' && !b_ptx_has_solution) ||\n\t\t\t(hintSolType == 'hint' && !b_ptx_has_hint))\n\t\t\tcontinue;\n\n\t\tconst knowlDetails = document.createElement('details');\n\t\tknowlDetails.classList.add(hintSolType);\n\t\tknowlDetails.classList.add('solution-like');\n\t\tknowlDetails.classList.add('born-hidden-knowl');\n\n\t\tconst knowlSummary = document.createElement('summary');\n\t\tconst summaryLabel = document.createElement('span');\n\t\tsummaryLabel.classList.add('type');\n\t\tsummaryLabel.innerHTML = hintSolType == 'hint' ? hint_label_text : solution_label_text;\n\t\tknowlSummary.appendChild(summaryLabel);\n\t\tknowlDetails.appendChild(knowlSummary);\n\n\t\tconst knowlContents = document.createElement('div');\n\t\tknowlContents.classList.add(hintSolType);\n\t\tknowlContents.classList.add('solution-like');\n\t\tknowlContents.innerHTML = hintsolp.firstElementChild.dataset.knowlContents;\n\t\tknowlDetails.appendChild(knowlContents);\n\n\t\tadjustSrcHrefs(knowlContents, ww_domain)\n\t\tsolutionlikewrapper.appendChild(knowlDetails);\n\t}\n\tfor (const hintSol of hintSols) {\n\t\thintSol.parentNode?.remove();\n\t}\n}\n\nfunction cloneAttributes(target, source) {\n\t[...source.attributes].forEach( attr => { target.setAttribute(attr.nodeName ,attr.nodeValue) });\n}\n\nfunction createFeedbackButton(id, title, content) {\n\tconst feedbackButton = document.createElement('button');\n\tfeedbackButton.dataset.bsTitle = title;\n\tfeedbackButton.dataset.bsContent = `<div id=\"${id}-content\">${content || ''}</div>`;\n\tif (!content) feedbackButton.dataset.emptyContent = '1';\n\tconst contentSpan = document.createElement('span');\n\tcontentSpan.innerHTML = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20px\" height=\"20px\" fill=\"none\" stroke-width=\"2\" viewBox=\"0 0 24 24\" color=\"#000000\"><path stroke=\"#000000\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 11.5v5M12 7.51l.01-.011M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"></path></svg>`;\n\tfeedbackButton.appendChild(contentSpan);\n\tfeedbackButton.type = 'button';\n\tfeedbackButton.classList.add('ww-feedback');\n\n\tfeedbackButton.id = `${id}-feedback-button`;\n\tfeedbackButton.dataset.bsToggle = 'popover';\n\n\treturn feedbackButton;\n}\n\nfunction webworkSeedHash(string) {\n\tvar hash = 0, i, chr;\n\tif (string.length === 0) return hash;\n\tfor (i = 0; i < string.length; i++) {\n\t\tchr   = string.charCodeAt(i);\n\t\thash  = ((hash << 5) - hash) + chr;\n\t\thash |= 0; //Convert to 32bit integer\n\t}\n\treturn Math.abs(hash);\n};\n"
  },
  {
    "path": "js/pretext-webwork/2.19/pretext-webwork.js",
    "content": "//Critical:\n// TODO: Think about what should be done for an essay question.\n\n//Accessibility:\n\n//Enhancement:\n// TODO: Have randomize check that new seed is actually producing new HTML.\n// TODO: Don't offer randomize button unless we know a new version can be produced after trying a few seeds.\n\n//Styling:\n// TODO: Review all styling in all scenarios (staged/not, correct/partly-correct/incorrect/blank, single/multiple)\n\nasync function handleWW(ww_id, action) {\n    const ww_container = document.getElementById(ww_id);\n    const ww_domain = ww_container.dataset.domain;\n    const ww_processing = 'webwork2';\n    const ww_origin = ww_container.dataset.origin;\n    const ww_problemSource = ww_container.dataset.problemsource;\n    const ww_sourceFilePath = ww_container.dataset.sourcefilepath;\n    const ww_course_id = ww_container.dataset.courseid;\n    const ww_user_id = ww_container.dataset.userid;\n    const ww_passwd = ww_container.dataset.coursepassword;\n    const localize_submit = ww_container.dataset.localizeSubmit || \"Submit\";\n    const localize_check_responses = ww_container.dataset.localizeCheckResponses || \"Check Responses\";\n    const localize_reveal = ww_container.dataset.localizeReveal || \"Reveal\";\n    const localize_randomize = ww_container.dataset.localizeRandomize || \"Randomize\";\n    const localize_reset = ww_container.dataset.localizeReset || \"Reset\";\n    const runestone_logged_in = (typeof eBookConfig !== 'undefined' && eBookConfig.username !== '');\n    // will be null on pages generated prior to late December 2022\n    const activate_button = document.getElementById(ww_id + '-button')\n\n    // Set the current seed\n    if (!action) {\n        ww_container.dataset.current_seed = ww_container.dataset.seed;\n        if (runestone_logged_in) {\n            ww_container.dataset.current_seed = webworkSeedHash(eBookConfig.username + ww_container.dataset.current_seed);\n        }\n    }\n    else if (action == 'randomize') ww_container.dataset.current_seed = Number(ww_container.dataset.current_seed) + 100;\n\n    let loader = document.createElement('div');\n    loader.style.position = 'absolute';\n    loader.style.left = 0;\n    loader.style.top = 0;\n    loader.style.backgroundColor = 'rgba(0.2, 0.2, 0.2, 0.4)';\n    loader.style.color = 'white';\n    loader.style.width = '100%';\n    loader.style.height = '100%';\n    loader.style.display = 'flex';\n    loader.style.alignItems = 'center';\n    loader.style.justifyContent = 'center';\n    loader.style.marginTop = '0';\n    loader.tabIndex = -1;\n    const loaderText = document.createElement('span');\n    loaderText.textContent = 'Loading';\n    loaderText.style.fontSize = '2rem';\n    loader.appendChild(loaderText);\n    ww_container.appendChild(loader);\n    loader.focus();\n\n    if (!action) {\n        // Determine if static version shows hints, solutions, or answers and save that information in the container dataset for later runs.\n        ww_container.dataset.hasHint = ww_container.getElementsByClassName('hint').length > 0;\n        ww_container.dataset.hasSolution = ww_container.getElementsByClassName('solution').length > 0;\n        ww_container.dataset.hasAnswer = ww_container.getElementsByClassName('answer').length > 0;\n        // Get (possibly localized) label text for hints and solutions.\n        ww_container.dataset.hintLabelText = ww_container.dataset.hasHint == 'true'\n            ? ww_container.querySelectorAll('.hint-knowl span.type, details.hint span.type')[0].textContent : 'Hint';\n        ww_container.dataset.solutionLabelText = ww_container.dataset.hasSolution == 'true'\n            ? ww_container.querySelectorAll('.solution-knowl span.type, details.solution span.type')[0].textContent : 'Solution';\n\n        ww_container.tabIndex = -1;\n    }\n\n    let url;\n    if (ww_processing == 'webwork2') {\n        url = new URL(ww_domain + '/webwork2/render_rpc');\n    }\n    let formData = new FormData();\n    let generatedPG = 'generated/webwork/pg/';\n    if (runestone_logged_in) {\n        generatedPG = `/ns/books/published/${eBookConfig.basecourse}/${generatedPG}`;\n    }\n\n    if (action == 'check' || action =='reveal') {\n        const iframe = ww_container.querySelector('.problem-iframe');\n        formData = new FormData(iframe.contentDocument.getElementById(ww_id + \"-form\"));\n        formData.set(\"answersSubmitted\", '1');\n        formData.set('WWsubmit', \"1\");\n        if (action == 'reveal' && ww_container.dataset.hasAnswer == 'true') {\n            formData.set('WWcorrectAnsOnly', \"1\");\n        }\n        if (ww_origin == 'generated') {\n            const rawProblemSource = await fetch(generatedPG + ww_problemSource).then((r) => r.text());\n            formData.set(\"rawProblemSource\", rawProblemSource);\n        }\n        else if (ww_origin == 'webwork2') formData.set(\"sourceFilePath\", ww_sourceFilePath);\n    } else {\n        formData.set(\"problemSeed\", ww_container.dataset.current_seed);\n        if (ww_origin == 'generated') {\n            const rawProblemSource = await fetch(generatedPG + ww_problemSource).then((r) => r.text());\n            formData.set(\"rawProblemSource\", rawProblemSource);\n        }\n        else if (ww_origin == 'webwork2') formData.set(\"sourceFilePath\", ww_sourceFilePath);\n        formData.set(\"answersSubmitted\", '0');\n        formData.set(\"displayMode\", \"MathJax\");\n        formData.set(\"courseID\", ww_course_id);\n        formData.set(\"user\", ww_user_id);\n        formData.set(\"userID\", ww_user_id);\n        formData.set(\"passwd\", ww_passwd);\n        formData.set(\"disableCookies\", '1');\n        formData.set(\"outputformat\", \"raw\");\n        // note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n        formData.set(\"showSolutions\", ww_container.dataset.hasSolution == 'true' ? '1' : '0');\n        formData.set(\"showHints\", ww_container.dataset.hasHint == 'true' ? '1' : '0');\n        formData.set(\"problemUUID\",ww_id);\n    }\n\n    // If in Runestone, check if there are previous answer submissions and get them now to use in the form.\n    let checkboxesString = '';\n    if (runestone_logged_in && !action) {\n        const answersObject = (wwList[ww_id.replace(/-ww-rs$/,'')].answers ? wwList[ww_id.replace(/-ww-rs$/,'')].answers : {'answers' : [], 'mqAnswers' : []});\n        const previousAnswers = answersObject.answers;\n        if (previousAnswers !== null) {\n            formData.set('WWsubmit', 1);\n        }\n        for (const answer in previousAnswers) {\n            if (previousAnswers[answer].constructor === Array) {\n                for (const k in previousAnswers[answer]) {\n                    checkboxesString += '&';\n                    checkboxesString += answer;\n                    checkboxesString += '=';\n                    checkboxesString += previousAnswers[answer][k];\n                }\n            } else {\n                formData.set(answer, previousAnswers[answer]);\n            }\n        }\n    }\n    // Need to get form data as a string, including possible repeated checkbox names\n    // Do not pass post data as an object, or checkbox names will overwrite one another\n    const formString = new URLSearchParams(formData).toString();\n\n    $.post(url, formString + checkboxesString, (data) => {\n        // Create the form that will contain the text and input fields of the interactive problem.\n        const form = document.createElement(\"form\");\n        form.id = ww_id + \"-form\";\n        form.dataset.iframeHeight = 1;\n\n        // Create a div for the problem text.\n        const body_div = document.createElement(\"div\");\n        body_div.id = ww_id + \"-body\";\n        body_div.classList.add(\"exercise\", \"exercise-like\");\n        body_div.lang = data.lang;\n        body_div.dir = data.dir;\n\n        // Dump the problem text, answer blanks, etc.\n        body_div.innerHTML = data.rh_result.text;\n\n        // If showPartialCorrectAnswers = 0, alter the feedback buttons according to whether or not the score is 100%.\n        if ('showPartialCorrectAnswers' in data.rh_result.flags && data.rh_result.flags.showPartialCorrectAnswers == 0) {\n            if ('score' in data.rh_result.problem_result && data.rh_result.problem_result.score >= 1) {\n                body_div.querySelectorAll('button.ww-feedback-btn').forEach(\n                    function(button) {\n                        button.classList.remove('btn-info');\n                        button.classList.add('btn-success');\n                        button.setAttribute('aria-label', 'Correct');\n                        button.dataset.bsCustomClass = button.dataset.bsCustomClass + ' correct';\n                        button.dataset.bsTitle = button.dataset.bsTitle.replace('Answer Preview', 'Correct');\n                        button.firstChild.classList.add('correct')\n                    }\n                );\n            } else {\n                body_div.querySelectorAll('button.ww-feedback-btn').forEach(\n                    function(button) {\n                        button.setAttribute('aria-label', 'One or more answers incorrect');\n                        button.dataset.bsTitle = button.dataset.bsTitle.replace('Answer Preview', 'One or more answers incorrect');\n                    }\n                );\n            }\n        }\n\n        // Replace all hn headings with h6 headings.\n        for (const tag_name of ['h6', 'h5', 'h4', 'h3', 'h2', 'h1']) {\n            const headings = body_div.getElementsByTagName(tag_name);\n            for (heading of headings) {\n                const new_heading = document.createElement(\"h6\");\n                new_heading.innerHTML = heading.innerHTML;\n                cloneAttributes(new_heading, heading);\n                new_heading.classList.add('webwork-part');\n                heading.replaceWith(new_heading);\n            }\n        }\n\n        // Hide textarea input and hide associated buttons\n        var textareas = body_div.getElementsByTagName(\"textarea\");\n        for(var i = 0, max = textareas.length; i < max; i++)\n        {\n            textareas[i].style.display = \"none\";\n            textareas[i].className = '';\n        }\n        var textareabuttons = body_div.querySelectorAll(\".latexentry-preview\");\n        for(var i = 0, max = textareabuttons.length; i < max; i++)\n        {\n            textareabuttons[i].remove();\n        }\n\n        adjustSrcHrefs(body_div, ww_domain);\n\n        translateHintSol(ww_id, body_div, ww_domain,\n            ww_container.dataset.hasHint == 'true', ww_container.dataset.hasSolution == 'true',\n            ww_container.dataset.hintLabelText, ww_container.dataset.solutionLabelText)\n\n        // insert previous answers\n        if (runestone_logged_in) {\n            const answersObject = (wwList[ww_id.replace(/-ww-rs$/,'')].answers ? wwList[ww_id.replace(/-ww-rs$/,'')].answers : {'answers' : [], 'mqAnswers' : []});\n            const mqAnswers = answersObject.mqAnswers;\n            for (const mqAnswer in mqAnswers) {\n                const mqInput = body_div.querySelector('input[id=' + mqAnswer + ']');\n                if (mqInput && mqInput.value == '') {\n                    mqInput.setAttribute('value', mqAnswers[mqAnswer]);\n                }\n            }\n            const answers = answersObject.answers;\n            for (const answer in answers) {\n                const input = body_div.querySelector('input[id=' + answer + ']');\n                if (input && input.value == '') {\n                    input.setAttribute('value', answers[answer]);\n                }\n            }\n        }\n\n        // insert our cleaned up problem text\n        form.appendChild(body_div);\n\n        // Set up hidden input fields that the form uses\n        const wwInputs = {\n            problemSeed:      data.inputs_ref.problemSeed,\n            problemUUID:      data.inputs_ref.problemUUID,\n            psvn:             data.inputs_ref.psvn,\n            courseName:       ww_course_id,\n            courseID:         ww_course_id,\n            user:             ww_user_id,\n            passwd:           ww_passwd,\n            displayMode:      \"MathJax\",\n            session_key:      data.rh_result.session_key,\n            outputformat:     \"raw\",\n            language:         data.formLanguage,\n            showSummary:      data.showSummary,\n            disableCookies:   '1',\n            // note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n            showSolutions:    ww_container.dataset.hasSolution == 'true' ? '1' : '0',\n            showHints:        ww_container.dataset.hasHint == 'true' ? '1' : '0',\n            forcePortNumber:  data.forcePortNumber\n        };\n\n        if (ww_sourceFilePath) wwInputs.sourceFilePath = ww_sourceFilePath;\n        else if (ww_problemSource && ww_origin == 'webwork2') wwInputs.problemSource = ww_problemSource;\n\n        for (const wwInputName of Object.keys(wwInputs)) {\n            const input = document.createElement('input');\n            input.type = 'hidden';\n            input.name = wwInputName;\n            input.value = wwInputs[wwInputName];\n            form.appendChild(input);\n        }\n\n        let buttonContainer = ww_container.querySelector('.problem-buttons.webwork');\n        // Create the submission buttons if they have not yet been created.\n        if (!buttonContainer) {\n            // Hide the original div that contains the Activate.\n            ww_container.querySelector('.problem-buttons').classList.add('hidden-content', 'hidden');\n\n            // Create a new div for the webwork buttons.\n            buttonContainer = document.createElement('div');\n            buttonContainer.classList.add('problem-buttons', 'webwork');\n            if (activate_button != null) {\n                // Make sure the button container follows the activate button in the DOM\n                activate_button.after(buttonContainer);\n            } else {\n                ww_container.prepend(buttonContainer);\n            }\n\n            // Check button\n            const check = document.createElement(\"button\");\n            check.type = \"button\";\n            check.id = ww_id + '-check';\n            check.style.marginRight = \"0.25rem\";\n            check.classList.add('webwork-button');\n\n            check.textContent = runestone_logged_in ? localize_submit : localize_check_responses;\n\n            check.addEventListener('click', () => handleWW(ww_id, \"check\"));\n\n            buttonContainer.appendChild(check);\n\n            // Show correct answers button if original PTX has answer knowl.\n            if (ww_container.dataset.hasAnswer == 'true') {\n                const correct = document.createElement(\"button\");\n                correct.classList.add(\"show-correct\", 'webwork-button');\n                correct.type = \"button\";\n                correct.style.marginRight = \"0.25rem\";\n                correct.textContent = localize_reveal;\n                correct.addEventListener('click', () => handleWW(ww_id, 'reveal'));\n                buttonContainer.appendChild(correct);\n            }\n\n            // randomize button\n            const randomize = document.createElement(\"button\")\n            randomize.type = \"button\";\n            randomize.classList.add('webwork-button');\n            randomize.style.marginRight = \"0.25rem\";\n            randomize.textContent = localize_randomize;\n            randomize.addEventListener('click', () => handleWW(ww_id, 'randomize'));\n            buttonContainer.appendChild(randomize)\n\n            // reset button\n            const reset = document.createElement(\"button\")\n            reset.type = \"button\"\n            reset.classList.add('webwork-button');\n            reset.textContent = localize_reset;\n            reset.addEventListener('click', () => resetWW(ww_id));\n            buttonContainer.appendChild(reset)\n        }\n\n        if (runestone_logged_in && action == 'check') {\n            // Runestone trigger\n            $(\"body\").trigger('runestone_ww_check', data)\n        }\n        let courseUrlBase = '';\n        if (runestone_logged_in){\n            courseUrlBase = '/ns/books/published/' + eBookConfig.basecourse + '/';\n        }\n        let iframeContents = '<!DOCTYPE html><head>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/jquery/dist/jquery.min.js\"></script>' +\n            `<script>\n                window.MathJax = {\n                    tex: { packages: { '[+]': ['noerrors'] } },\n                    loader: { load: ['input/asciimath', '[tex]/noerrors'] },\n                    startup: {\n                        ready() {\n                            const AM = MathJax.InputJax.AsciiMath.AM;\n\n                            // Modify existing AsciiMath triggers.\n                            AM.symbols[AM.names.indexOf('**')] = {\n                                input: '**',\n                                tag: 'msup',\n                                output: '^',\n                                tex: null,\n                                ttype: AM.TOKEN.INFIX\n                            };\n\n                            const i = AM.names.indexOf('infty');\n                            AM.names[i] = 'infinity';\n                            AM.symbols[i] = { input: 'infinity', tag: 'mo', output: '\\u221E', tex: 'infty', ttype: AM.TOKEN.CONST };\n\n                            return MathJax.startup.defaultReady();\n                        }\n                    },\n                    options: {\n                        processHtmlClass: \"process-math\",\n                        renderActions: {\n                            findScript: [\n                                10,\n                                (doc) => {\n                                    for (const node of document.querySelectorAll('script[type^=\"math/tex\"]')) {\n                                        const math = new doc.options.MathItem(\n                                            node.textContent,\n                                            doc.inputJax[0],\n                                            !!node.type.match(/; *mode=display/)\n                                        );\n                                        const text = document.createTextNode('');\n                                        node.parentNode.replaceChild(text, node);\n                                        math.start = { node: text, delim: '', n: 0 };\n                                        math.end = { node: text, delim: '', n: 0 };\n                                        doc.math.push(math);\n                                    }\n                                },\n                                ''\n                            ]\n                        },\n                        ignoreHtmlClass: 'tex2jax_ignore'\n                    }\n                };\n            </script>` +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/mathjax/es5/tex-chtml.js\" id=\"MathJax-script\" defer></script>' +\n            `<script src=\"${courseUrlBase}_static/pretext/js/lib/knowl.js\" defer></script>` +\n            '<link rel=\"stylesheet\" href=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/css/bootstrap.min.css\"/>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js\" defer></script>';\n\n        // Determine javascript and css dependencies\n        const extra_css_files = [];\n        const extra_js_files = [];\n\n        if (data.extra_css_files) data.extra_css_files.unshift(...extra_css_files);\n        else data.extra_css_files = extra_css_files;\n        for (const cssFile of data.extra_css_files) {\n            iframeContents += '<link rel=\"stylesheet\" href=\"' + (cssFile.external !== '1' ? ww_domain : '') + cssFile.file + '\"/>';\n        }\n\n        if (data.extra_js_files) data.extra_js_files.unshift(...extra_js_files);\n        else data.extra_js_files = extra_js_files;\n        for (const jsFile of data.extra_js_files) {\n            iframeContents += '<script src=\"' + (jsFile.external !== '1' ? ww_domain : '') + jsFile.file + '\" ' +\n                Object.keys(jsFile.attributes || {}).reduce((ret, key) => {\n                    ret += key + '=\"' + jsFile.attributes[key] + '\" '; return ret;\n                }, \"\") + '></script>';\n        }\n\n        iframeContents +=\n            `<link rel=\"stylesheet\" href=\"${courseUrlBase}_static/pretext/css/theme.css\"/>` +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js\"></script>' +\n            `<style>\n                html { overflow-y: hidden; }\n                html body { background:unset; margin: 0; }\n                body { font-size: initial; line-height: initial; padding:2px; }\n                .hidden-content { display: none; }\n                span.nobreak { white-space: nowrap; }\n                div.PGML img.image-view-elt { max-width:100%; }\n                .graphtool-answer-container .graphtool-graph { margin: 0; width: 300px; height: 300px; }\n                .graphtool-answer-container .graphtool-number-line { height: 57px; }\n                .quill-toolbar { scrollbar-width: thin; overflow-x: hidden; }\n            </style>` +\n            '</head><body>' +\n            '<main class=\"pretext-content problem-content\" data-iframe-height=\"1\">' + form.outerHTML + '</main></body>' +\n            '</html>';\n\n        let iframe;\n        // If there is no action this is the initialization call.\n        if (!action) {\n            // Create the iframe.\n            iframe = document.createElement('iframe');\n            iframe.style.width = '1px';\n            iframe.style.minWidth = '100%';\n            iframe.classList.add('problem-iframe');\n\n            // Hide the static problem\n            ww_container.querySelector('.problem-contents').classList.add('hidden-content', 'hidden');\n\n            if (activate_button != null) {\n                // Make sure the iframe follows the activate button in the DOM\n                activate_button.after(iframe);\n            } else {\n                ww_container.prepend(iframe);\n            }\n\n            iFrameResize({ checkOrigin: false, scrolling: 'omit', heightCalculationMethod: 'taggedElement' }, iframe);\n\n            iframe.addEventListener('load', () => {\n                // Set up form submission from inside the iframe.\n                const iframeForm = iframe.contentDocument.getElementById(ww_id + '-form');\n                iframeForm.addEventListener('submit', (e) => {\n                    handleWW(ww_id, \"check\");\n                    e.preventDefault();\n                });\n\n                iframe.contentDocument.querySelectorAll('.collapse.in').forEach(collapse => collapse.classList.add('expanded'));\n                iframe.contentWindow.jQuery('.collapse').on('shown', function(e) { if (e.target != this) return; this.classList.add('expanded'); });\n                iframe.contentWindow.jQuery('.collapse').on('hide', function(e) { if (e.target != this) return; this.classList.remove('expanded'); });\n\n                iframe.contentWindow.MathJax.startup.promise.then(() => iframe.contentWindow.MathJax.typesetPromise(['.popover', '.popover-content']));\n            });\n        } else {\n            iframe = ww_container.querySelector('.problem-iframe');\n        }\n\n        iframe.srcdoc = iframeContents;\n\n        iframe.addEventListener('load', () => {\n            // Remove the loader overlay\n            loader.remove();\n        }, { once: true })\n\n        // Place focus on the problem.\n        ww_container.focus()\n    }, \"json\");\n}\n\nfunction WWshowCorrect(ww_id, answers) {\n    const ww_container = document.getElementById(ww_id);\n    const iframe = ww_container.querySelector('.problem-iframe');\n\n    const body = iframe.contentDocument.getElementById(ww_id + '-body')\n    $(\"body\").trigger(\"runestone_show_correct\", {\n        \"ww_id\": ww_id,\n        \"answers\": answers\n    });\n\n    let inputs = body.querySelectorAll(\"input:not([type=hidden])\");\n    for (const input of inputs) {\n        const name = input.name;\n        const span_id = `${ww_id}-${name}-correct`;\n\n        if (input.type == 'text' && answers[name] && !(iframe.contentDocument.getElementById(span_id))) {\n            const input_id = input.id;\n            const mq_span = iframe.contentDocument.getElementById(`mq-answer-${input_id}`);\n            if (mq_span) {\n                mq_span.style.display = 'none';\n            }\n            label = iframe.contentDocument.getElementById(`${span_id}-label`);\n            if (label) {\n                label.parentElement.insertBefore(input, label);\n                label.remove();\n            }\n            input.type = \"hidden\";\n            // we need to convert things like &lt; in answers to <\n            const correct_ans_text = iframe.contentDocument.createElement('div');\n            correct_ans_text.innerHTML = answers[name].correct_ans;\n            input.value = correct_ans_text.textContent;\n            const show_span = iframe.contentDocument.createElement('span');\n            show_span.id = span_id;\n            show_span.appendChild(answers[name].correct_ans_latex_string\n                ? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n                : iframe.contentDocument.createTextNode(answers[name].correct_ans));\n            input.parentElement.insertBefore(show_span, input);\n        }\n\n        if (input.type.toUpperCase() == 'RADIO' && answers[name]) {\n            const correct_ans = answers[name].correct_choice || answers[name].correct_ans;\n            if (input.value == correct_ans) {\n                input.checked = true;\n            } else {\n                input.checked = false;\n            }\n        }\n\n        if (input.type.toUpperCase() == 'CHECKBOX' && answers[name]) {\n            const correct_choices = answers[name].correct_choices;\n            if (correct_choices.includes(input.value)) {\n                input.checked = true;\n            } else {\n                input.checked = false;\n            }\n        }\n    }\n\n    const hiddenInputs = body.querySelectorAll(\"input[type=hidden]\");\n    for (const input of hiddenInputs) {\n        const name = input.name;\n        if (!input.nextElementSibling) continue;\n        const graphtoolContainer = input.nextElementSibling.nextElementSibling;\n        if (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n            const correct_ans_div = iframe.contentDocument.createElement('div');\n            input.parentElement.insertBefore(correct_ans_div, graphtoolContainer);\n            graphtoolContainer.style.display = 'none';\n            input.value = answers[name].correct_ans;\n            iframe.contentWindow.jQuery(correct_ans_div).html(answers[name].correct_ans_latex_string);\n            const script = iframe.contentDocument.createElement('script');\n            script.textContent = correct_ans_div.querySelector('script').textContent\n                .replace('\\nwindow.addEventListener(\"DOMContentLoaded\",', '(')\n                .replace(/;\\n$/, '();');\n            iframe.contentDocument.body.appendChild(script);\n        }\n    }\n\n    let selects = body.querySelectorAll(\"select:not([type=hidden])\");\n    for (const select of selects) {\n        const name = select.name;\n        const span_id = `${ww_id}-${name}-correct`;\n        if (answers[name] && !iframe.contentDocument.getElementById(span_id)) {\n            select.style.display = \"none\";\n            select.value = answers[name].correct_ans;\n            const show_span = iframe.contentDocument.createElement('span');\n            show_span.id = span_id;\n            show_span.appendChild(answers[name].correct_ans_latex_string\n                ? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n                : iframe.contentDocument.createTextNode(answers[name].correct_ans));\n            select.parentElement.insertBefore(show_span, select);\n        }\n    }\n\n    // run MathJax on our new rendering\n    // FIXME: We only need to typeset the added elements, not the entire body.\n    const mathjaxTypesetScript = iframe.contentDocument.createElement('script');\n    mathjaxTypesetScript.textContent = 'MathJax.startup.promise.then(() => MathJax.typesetPromise([document.body]));';\n    iframe.contentDocument.body.appendChild(mathjaxTypesetScript);\n}\n\nfunction resetWW(ww_id) {\n    const ww_container = document.getElementById(ww_id);\n    const activate_button = document.getElementById(ww_id + '-button');\n\n    ww_container.dataset.current_seed = ww_container.dataset.seed;\n\n    iframe = ww_container.querySelector('.problem-iframe');\n    iframe.remove();\n\n    ww_container.querySelector('.problem-contents').classList.remove('hidden-content', 'hidden');\n\n    ww_container.querySelector('.problem-buttons.webwork').remove();\n    ww_container.querySelector('.problem-buttons').classList.remove('hidden-content', 'hidden');\n    // if the newer activate button is there (but hidden) bring it back too\n    if (activate_button != null) {activate_button.classList.remove('hidden-content', 'hidden');};\n}\n\nfunction adjustSrcHrefs(container,ww_domain) {\n    container.querySelectorAll('[href]').forEach((node) => {\n        const href = node.attributes.href.value;\n        if (href !== '#' && !href.match(/^[a-z]+:\\/\\//i)) node.href = ww_domain + '/' + href;\n    });\n    container.querySelectorAll('[data-knowl-url]').forEach((node) => {\n        const dku = node.dataset.knowlUrl;\n        if (dku !== '#' && !dku.match(/^[a-z]+:\\/\\//i)) node.dataset.knowlUrl = ww_domain + dku;\n    });\n    container.querySelectorAll('[src]').forEach((node) => {\n        node.src = new URL(node.attributes.src.value, ww_domain).href;\n    });\n}\n\nfunction translateHintSol(ww_id, body_div, ww_domain, b_ptx_has_hint, b_ptx_has_solution, hint_label_text, solution_label_text) {\n    // The problem text may come with \"hint\"s and \"solution\"s\n    // Each one is a div.accordion > details.accordion-item > summary.accordion-button\n    // Styling is not the PTX way, so we change it to one div.solutions\n    // with (potentially multiple) details.born-hidden-knowl > summary.knowl__link\n    // Also if hint/sol were missing from the static version, we want these removed here\n\n    const hintSols = body_div.querySelectorAll('.accordion.hint,.accordion.solution');\n    if (hintSols.length == 0) {return};\n\n    for (const hintSol of hintSols) {\n        const parent = hintSol.parentNode;\n        solutionlikewrapper = document.createElement('div');\n        solutionlikewrapper.classList.add('solutions');\n        parent.insertBefore(solutionlikewrapper, hintSol);\n\n        const hintSolType = hintSol.classList.contains('hint') ? 'hint' : 'solution';\n\n        if ((hintSolType == 'solution' && !b_ptx_has_solution) ||\n            (hintSolType == 'hint' && !b_ptx_has_hint))\n            continue;\n\n        const knowlDetails = hintSol.getElementsByTagName('details')[0];\n        knowlDetails.className = '';\n        knowlDetails.classList.add(hintSolType, 'solution-like', 'born-hidden-knowl');\n        solutionlikewrapper.appendChild(knowlDetails);\n\n        const knowlSummary = knowlDetails.getElementsByTagName('summary')[0];\n        knowlSummary.className = '';\n        knowlSummary.classList.add('knowl__link');\n\n        const summaryLabel = knowlSummary.children[0];\n        summaryLabel.remove();\n\n        const newLabelSpan = document.createElement('span');\n        newLabelSpan.innerHTML = hintSolType == 'hint' ? hint_label_text : solution_label_text;\n        knowlSummary.appendChild(newLabelSpan);\n\n        const newLabelPeriod = document.createElement('span');\n        newLabelPeriod.innerHTML = '.';\n        knowlSummary.appendChild(newLabelPeriod);\n\n        adjustSrcHrefs(knowlDetails, ww_domain);\n        hintSol.remove();\n\n        const originalDetailsContent = knowlDetails.getElementsByTagName('div')[0];\n        const newDetailsContent = originalDetailsContent.getElementsByTagName('div')[0];\n        newDetailsContent.className = '';\n        newDetailsContent.classList.add(hintSolType, 'solution-like', 'knowl__content');\n        knowlDetails.appendChild(newDetailsContent);\n        originalDetailsContent.remove();\n    }\n}\n\nfunction cloneAttributes(target, source) {\n    [...source.attributes].forEach( attr => { target.setAttribute(attr.nodeName ,attr.nodeValue) });\n}\n\nfunction webworkSeedHash(string) {\n    var hash = 0, i, chr;\n    if (string.length === 0) return hash;\n    for (i = 0; i < string.length; i++) {\n        chr   = string.charCodeAt(i);\n        hash  = ((hash << 5) - hash) + chr;\n        hash |= 0; //Convert to 32bit integer\n    }\n    return Math.abs(hash);\n};\n"
  },
  {
    "path": "js/pretext-webwork/2.20/pretext-webwork.js",
    "content": "//Critical:\n// TODO: Think about what should be done for an essay question.\n\n//Accessibility:\n\n//Enhancement:\n// TODO: Have randomize check that new seed is actually producing new HTML.\n// TODO: Don't offer randomize button unless we know a new version can be produced after trying a few seeds.\n\n//Styling:\n// TODO: Review all styling in all scenarios (staged/not, correct/partly-correct/incorrect/blank, single/multiple)\n\nasync function handleWW(ww_id, action) {\n    const ww_container = document.getElementById(ww_id);\n    const ww_domain = ww_container.dataset.domain;\n    const ww_processing = 'webwork2';\n    const ww_origin = ww_container.dataset.origin;\n    const ww_problemSource = ww_container.dataset.problemsource;\n    let ww_baseCourse = ww_container.dataset.documentid;\n    const ww_sourceFilePath = ww_container.dataset.sourcefilepath;\n    const ww_course_id = ww_container.dataset.courseid;\n    const ww_user_id = ww_container.dataset.userid;\n    const ww_passwd = ww_container.dataset.coursepassword;\n    const localize_submit = ww_container.dataset.localizeSubmit || \"Submit\";\n    const localize_check_responses = ww_container.dataset.localizeCheckResponses || \"Check Responses\";\n    const localize_reveal = ww_container.dataset.localizeReveal || \"Reveal\";\n    const localize_randomize = ww_container.dataset.localizeRandomize || \"Randomize\";\n    const localize_reset = ww_container.dataset.localizeReset || \"Reset\";\n    const runestone_logged_in = (typeof eBookConfig !== 'undefined' && eBookConfig.username !== '');\n    // will be null on pages generated prior to late December 2022\n    const activate_button = document.getElementById(ww_id + '-button')\n\n    // Set the current seed\n    if (!action) {\n        ww_container.dataset.current_seed = ww_container.dataset.seed;\n        if (runestone_logged_in) {\n            ww_container.dataset.current_seed = webworkSeedHash(eBookConfig.username + ww_container.dataset.current_seed);\n        }\n    }\n    else if (action == 'randomize') ww_container.dataset.current_seed = Number(ww_container.dataset.current_seed) + 100;\n\n    let loader = document.createElement('div');\n    loader.style.position = 'absolute';\n    loader.style.left = 0;\n    loader.style.top = 0;\n    loader.style.backgroundColor = 'rgba(0.2, 0.2, 0.2, 0.4)';\n    loader.style.color = 'white';\n    loader.style.width = '100%';\n    loader.style.height = '100%';\n    loader.style.display = 'flex';\n    loader.style.alignItems = 'center';\n    loader.style.justifyContent = 'center';\n    loader.style.marginTop = '0';\n    loader.tabIndex = -1;\n    const loaderText = document.createElement('span');\n    loaderText.textContent = 'Loading';\n    loaderText.style.fontSize = '2rem';\n    loader.appendChild(loaderText);\n    ww_container.appendChild(loader);\n    loader.focus();\n\n    if (!action) {\n        // Determine if static version shows hints, solutions, or answers and save that information in the container dataset for later runs.\n        ww_container.dataset.hasHint = ww_container.getElementsByClassName('hint').length > 0;\n        ww_container.dataset.hasSolution = ww_container.getElementsByClassName('solution').length > 0;\n        ww_container.dataset.hasAnswer = ww_container.getElementsByClassName('answer').length > 0;\n        // Get (possibly localized) label text for hints and solutions.\n        ww_container.dataset.hintLabelText = ww_container.dataset.hasHint == 'true'\n            ? ww_container.querySelectorAll('.hint-knowl span.type, details.hint span.type')[0].textContent : 'Hint';\n        ww_container.dataset.solutionLabelText = ww_container.dataset.hasSolution == 'true'\n            ? ww_container.querySelectorAll('.solution-knowl span.type, details.solution span.type')[0].textContent : 'Solution';\n\n        ww_container.tabIndex = -1;\n    }\n\n    let url;\n    if (ww_processing == 'webwork2') {\n        url = new URL(ww_domain + '/webwork2/render_rpc');\n    }\n    let formData = new FormData();\n    let generatedPG = 'generated/webwork/pg/';\n    // For Runestone, we specify where to find the generated problems.\n    if (runestone_logged_in) {\n        if (ww_problemSource && !ww_baseCourse) {\n            // WeBWorK authored in source, generated after 2025/10/15-ish, should have a baseCourse specified. We fall back to parsing the baseCourse from ww_id, which *should* always start with the base course prior to the first underscore (although this is not guaranteed). If no underscore is found, we fall back to eBookConfig.basecourse.\n            // This is only needed for webwork problems authored in source, not OPL problems, so we only check when ww_problemSource is set.\n            const parts = ww_id.split('_');\n            ww_baseCourse = parts.length > 1 ? parts[0] : eBookConfig.basecourse;\n            console.log(\"using the base course \" + ww_baseCourse);\n        }\n        generatedPG = `/ns/books/published/${ww_baseCourse}/${generatedPG}`;\n    }\n\n    if (action == 'check' || action =='reveal') {\n        const iframe = ww_container.querySelector('.problem-iframe');\n        formData = new FormData(iframe.contentDocument.getElementById(ww_id + \"-form\"));\n        formData.set(\"answersSubmitted\", '1');\n        formData.set('WWsubmit', \"1\");\n        if (action == 'reveal' && ww_container.dataset.hasAnswer == 'true') {\n            formData.set('WWcorrectAnsOnly', \"1\");\n        }\n        if (ww_origin == 'generated') {\n            const rawProblemSource = await fetch(generatedPG + ww_problemSource).then((r) => r.text());\n            formData.set(\"rawProblemSource\", rawProblemSource);\n        }\n        else if (ww_origin == 'webwork2') formData.set(\"sourceFilePath\", ww_sourceFilePath);\n    } else {\n        formData.set(\"problemSeed\", ww_container.dataset.current_seed);\n        if (ww_origin == 'generated') {\n            const rawProblemSource = await fetch(generatedPG + ww_problemSource).then((r) => r.text());\n            formData.set(\"rawProblemSource\", rawProblemSource);\n        }\n        else if (ww_origin == 'webwork2') formData.set(\"sourceFilePath\", ww_sourceFilePath);\n        formData.set(\"answersSubmitted\", '0');\n        formData.set(\"displayMode\", \"MathJax\");\n        formData.set(\"courseID\", ww_course_id);\n        formData.set(\"user\", ww_user_id);\n        formData.set(\"userID\", ww_user_id);\n        formData.set(\"passwd\", ww_passwd);\n        formData.set(\"disableCookies\", '1');\n        formData.set(\"outputformat\", \"raw\");\n        // note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n        formData.set(\"showSolutions\", ww_container.dataset.hasSolution == 'true' ? '1' : '0');\n        formData.set(\"showHints\", ww_container.dataset.hasHint == 'true' ? '1' : '0');\n        formData.set(\"problemUUID\",ww_id);\n    }\n\n    // If in Runestone, check if there are previous answer submissions and get them now to use in the form.\n    let checkboxesString = '';\n    if (runestone_logged_in && !action) {\n        const answersObject = (wwList[ww_id.replace(/-ww-rs$/,'')].answers ? wwList[ww_id.replace(/-ww-rs$/,'')].answers : {'answers' : [], 'mqAnswers' : []});\n        const previousAnswers = answersObject.answers;\n        if (previousAnswers !== null) {\n            formData.set('WWsubmit', 1);\n        }\n        for (const answer in previousAnswers) {\n            if (previousAnswers[answer].constructor === Array) {\n                for (const k in previousAnswers[answer]) {\n                    checkboxesString += '&';\n                    checkboxesString += answer;\n                    checkboxesString += '=';\n                    checkboxesString += previousAnswers[answer][k];\n                }\n            } else {\n                formData.set(answer, previousAnswers[answer]);\n            }\n        }\n    }\n    // Need to get form data as a string, including possible repeated checkbox names\n    // Do not pass post data as an object, or checkbox names will overwrite one another\n    const formString = new URLSearchParams(formData).toString();\n\n    $.post(url, formString + checkboxesString, (data) => {\n        // Create the form that will contain the text and input fields of the interactive problem.\n        const form = document.createElement(\"form\");\n        form.id = ww_id + \"-form\";\n        form.dataset.iframeHeight = 1;\n\n        // Create a div for the problem text.\n        const body_div = document.createElement(\"div\");\n        body_div.id = ww_id + \"-body\";\n        body_div.classList.add(\"exercise\", \"exercise-like\");\n        body_div.lang = data.lang;\n        body_div.dir = data.dir;\n\n        // Dump the problem text, answer blanks, etc.\n        body_div.innerHTML = data.rh_result.text;\n\n        // If showPartialCorrectAnswers = 0, alter the feedback buttons according to whether or not the score is 100%.\n        if ('showPartialCorrectAnswers' in data.rh_result.flags && data.rh_result.flags.showPartialCorrectAnswers == 0) {\n            if ('score' in data.rh_result.problem_result && data.rh_result.problem_result.score >= 1) {\n                body_div.querySelectorAll('button.ww-feedback-btn').forEach(\n                    function(button) {\n                        button.classList.remove('btn-info');\n                        button.classList.add('btn-success');\n                        button.setAttribute('aria-label', 'Correct');\n                        button.dataset.bsCustomClass = button.dataset.bsCustomClass + ' correct';\n                        button.dataset.bsTitle = button.dataset.bsTitle.replace('Answer Preview', 'Correct');\n                        button.firstChild.classList.add('correct')\n                    }\n                );\n            } else {\n                body_div.querySelectorAll('button.ww-feedback-btn').forEach(\n                    function(button) {\n                        button.setAttribute('aria-label', 'One or more answers incorrect');\n                        button.dataset.bsTitle = button.dataset.bsTitle.replace('Answer Preview', 'One or more answers incorrect');\n                    }\n                );\n            }\n        }\n\n        // Replace all hn headings with h6 headings.\n        for (const tag_name of ['h6', 'h5', 'h4', 'h3', 'h2', 'h1']) {\n            const headings = body_div.getElementsByTagName(tag_name);\n            for (heading of headings) {\n                const new_heading = document.createElement(\"h6\");\n                new_heading.innerHTML = heading.innerHTML;\n                cloneAttributes(new_heading, heading);\n                new_heading.classList.add('webwork-part');\n                heading.replaceWith(new_heading);\n            }\n        }\n\n        // Hide textarea input and hide associated buttons\n        var textareas = body_div.getElementsByTagName(\"textarea\");\n        for(var i = 0, max = textareas.length; i < max; i++)\n        {\n            textareas[i].style.display = \"none\";\n            textareas[i].className = '';\n        }\n        var textareabuttons = body_div.querySelectorAll(\".latexentry-preview\");\n        for(var i = 0, max = textareabuttons.length; i < max; i++)\n        {\n            textareabuttons[i].remove();\n        }\n\n        adjustSrcHrefs(body_div, ww_domain);\n\n        translateHintSol(ww_id, body_div, ww_domain,\n            ww_container.dataset.hasHint == 'true', ww_container.dataset.hasSolution == 'true',\n            ww_container.dataset.hintLabelText, ww_container.dataset.solutionLabelText)\n\n        // insert previous answers\n        if (runestone_logged_in) {\n            const answersObject = (wwList[ww_id.replace(/-ww-rs$/,'')].answers ? wwList[ww_id.replace(/-ww-rs$/,'')].answers : {'answers' : [], 'mqAnswers' : []});\n            const mqAnswers = answersObject.mqAnswers;\n            for (const mqAnswer in mqAnswers) {\n                const mqInput = body_div.querySelector('input[id=' + mqAnswer + ']');\n                if (mqInput && mqInput.value == '') {\n                    mqInput.setAttribute('value', mqAnswers[mqAnswer]);\n                }\n            }\n            const answers = answersObject.answers;\n            for (const answer in answers) {\n                const input = body_div.querySelector('input[id=' + answer + ']');\n                if (input && input.value == '') {\n                    input.setAttribute('value', answers[answer]);\n                }\n            }\n        }\n\n        // insert our cleaned up problem text\n        form.appendChild(body_div);\n\n        // Set up hidden input fields that the form uses\n        const wwInputs = {\n            problemSeed:      data.inputs_ref.problemSeed,\n            problemUUID:      data.inputs_ref.problemUUID,\n            psvn:             data.inputs_ref.psvn,\n            courseName:       ww_course_id,\n            courseID:         ww_course_id,\n            user:             ww_user_id,\n            passwd:           ww_passwd,\n            displayMode:      \"MathJax\",\n            session_key:      data.rh_result.session_key,\n            outputformat:     \"raw\",\n            language:         data.formLanguage,\n            showSummary:      data.showSummary,\n            disableCookies:   '1',\n            // note ww_container.dataset.hasSolution is a string, possibly 'false' which is true\n            showSolutions:    ww_container.dataset.hasSolution == 'true' ? '1' : '0',\n            showHints:        ww_container.dataset.hasHint == 'true' ? '1' : '0',\n            forcePortNumber:  data.forcePortNumber\n        };\n\n        if (ww_sourceFilePath) wwInputs.sourceFilePath = ww_sourceFilePath;\n        else if (ww_problemSource && ww_origin == 'webwork2') wwInputs.problemSource = ww_problemSource;\n\n        for (const wwInputName of Object.keys(wwInputs)) {\n            const input = document.createElement('input');\n            input.type = 'hidden';\n            input.name = wwInputName;\n            input.value = wwInputs[wwInputName];\n            form.appendChild(input);\n        }\n\n        let buttonContainer = ww_container.querySelector('.problem-buttons.webwork');\n        // Create the submission buttons if they have not yet been created.\n        if (!buttonContainer) {\n            // Hide the original div that contains the Activate.\n            ww_container.querySelector('.problem-buttons').classList.add('hidden-content', 'hidden');\n\n            // Create a new div for the webwork buttons.\n            buttonContainer = document.createElement('div');\n            buttonContainer.classList.add('problem-buttons', 'webwork');\n            if (activate_button != null) {\n                // Make sure the button container follows the activate button in the DOM\n                activate_button.after(buttonContainer);\n            } else {\n                ww_container.prepend(buttonContainer);\n            }\n\n            // Check button\n            const check = document.createElement(\"button\");\n            check.type = \"button\";\n            check.id = ww_id + '-check';\n            check.style.marginRight = \"0.25rem\";\n            check.classList.add('webwork-button');\n\n            check.textContent = runestone_logged_in ? localize_submit : localize_check_responses;\n\n            check.addEventListener('click', () => handleWW(ww_id, \"check\"));\n\n            buttonContainer.appendChild(check);\n\n            // Show correct answers button if original PTX has answer knowl.\n            if (ww_container.dataset.hasAnswer == 'true') {\n                const correct = document.createElement(\"button\");\n                correct.classList.add(\"show-correct\", 'webwork-button');\n                correct.type = \"button\";\n                correct.style.marginRight = \"0.25rem\";\n                correct.textContent = localize_reveal;\n                correct.addEventListener('click', () => handleWW(ww_id, 'reveal'));\n                buttonContainer.appendChild(correct);\n            }\n\n            // randomize button\n            const randomize = document.createElement(\"button\")\n            randomize.type = \"button\";\n            randomize.classList.add('webwork-button');\n            randomize.style.marginRight = \"0.25rem\";\n            randomize.textContent = localize_randomize;\n            randomize.addEventListener('click', () => handleWW(ww_id, 'randomize'));\n            buttonContainer.appendChild(randomize)\n\n            // reset button\n            const reset = document.createElement(\"button\")\n            reset.type = \"button\"\n            reset.classList.add('webwork-button');\n            reset.textContent = localize_reset;\n            reset.addEventListener('click', () => resetWW(ww_id));\n            buttonContainer.appendChild(reset)\n        }\n\n        if (runestone_logged_in && action == 'check') {\n            // Runestone trigger\n            $(\"body\").trigger('runestone_ww_check', data)\n        }\n        let courseUrlBase = '';\n        if (runestone_logged_in){\n            courseUrlBase = '/ns/books/published/' + eBookConfig.basecourse + '/';\n        }\n        let iframeContents = '<!DOCTYPE html><head>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/jquery/dist/jquery.min.js\"></script>' +\n            `<script>\n                window.MathJax = {\n                    tex: { packages: { '[+]': ['noerrors'] } },\n                    loader: { load: ['input/asciimath', '[tex]/noerrors'] },\n                    startup: {\n                        ready() {\n                            const AM = MathJax.InputJax.AsciiMath.AM;\n\n                            // Modify existing AsciiMath triggers.\n                            AM.symbols[AM.names.indexOf('**')] = {\n                                input: '**',\n                                tag: 'msup',\n                                output: '^',\n                                tex: null,\n                                ttype: AM.TOKEN.INFIX\n                            };\n\n                            const i = AM.names.indexOf('infty');\n                            AM.names[i] = 'infinity';\n                            AM.symbols[i] = { input: 'infinity', tag: 'mo', output: '\\u221E', tex: 'infty', ttype: AM.TOKEN.CONST };\n\n                            return MathJax.startup.defaultReady();\n                        }\n                    },\n                    options: {\n                        processHtmlClass: \"process-math\",\n                        renderActions: {\n                            findScript: [\n                                10,\n                                (doc) => {\n                                    for (const node of document.querySelectorAll('script[type^=\"math/tex\"]')) {\n                                        const math = new doc.options.MathItem(\n                                            node.textContent,\n                                            doc.inputJax[0],\n                                            !!node.type.match(/; *mode=display/)\n                                        );\n                                        const text = document.createTextNode('');\n                                        node.parentNode.replaceChild(text, node);\n                                        math.start = { node: text, delim: '', n: 0 };\n                                        math.end = { node: text, delim: '', n: 0 };\n                                        doc.math.push(math);\n                                    }\n                                },\n                                ''\n                            ]\n                        },\n                        ignoreHtmlClass: 'tex2jax_ignore'\n                    }\n                };\n            </script>` +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/mathjax/es5/tex-chtml.js\" id=\"MathJax-script\" defer></script>' +\n            `<script src=\"${courseUrlBase}_static/pretext/js/lib/knowl.js\" defer></script>` +\n            '<link rel=\"stylesheet\" href=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/css/bootstrap.min.css\"/>' +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js\" defer></script>';\n\n        // Determine javascript and css dependencies\n        const extra_css_files = [];\n        const extra_js_files = [];\n\n        if (data.extra_css_files) data.extra_css_files.unshift(...extra_css_files);\n        else data.extra_css_files = extra_css_files;\n        for (const cssFile of data.extra_css_files) {\n            iframeContents += '<link rel=\"stylesheet\" href=\"' + (cssFile.external !== '1' ? ww_domain : '') + cssFile.file + '\"/>';\n        }\n\n        if (data.extra_js_files) data.extra_js_files.unshift(...extra_js_files);\n        else data.extra_js_files = extra_js_files;\n        for (const jsFile of data.extra_js_files) {\n            iframeContents += '<script src=\"' + (jsFile.external !== '1' ? ww_domain : '') + jsFile.file + '\" ' +\n                Object.keys(jsFile.attributes || {}).reduce((ret, key) => {\n                    ret += key + '=\"' + jsFile.attributes[key] + '\" '; return ret;\n                }, \"\") + '></script>';\n        }\n\n        iframeContents +=\n            `<link rel=\"stylesheet\" href=\"${courseUrlBase}_static/pretext/css/theme.css\"/>` +\n            '<script src=\"' + ww_domain + '/webwork2_files/node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js\"></script>' +\n            `<style>\n                html { overflow-y: hidden; }\n                html body { background:unset; margin: 0; }\n                body { font-size: initial; line-height: initial; padding:2px; }\n                .hidden-content { display: none; }\n                span.nobreak { white-space: nowrap; }\n                div.PGML img.image-view-elt { max-width:100%; }\n                .graphtool-answer-container .graphtool-graph { margin: 0; width: 300px; height: 300px; }\n                .graphtool-answer-container .graphtool-number-line { height: 57px; }\n                .quill-toolbar { scrollbar-width: thin; overflow-x: hidden; }\n            </style>` +\n            '</head><body>' +\n            '<main class=\"pretext-content problem-content\" data-iframe-height=\"1\">' + form.outerHTML + '</main></body>' +\n            '</html>';\n\n        let iframe;\n        // If there is no action this is the initialization call.\n        if (!action) {\n            // Create the iframe.\n            iframe = document.createElement('iframe');\n            iframe.style.width = '1px';\n            iframe.style.minWidth = '100%';\n            iframe.classList.add('problem-iframe');\n\n            // Hide the static problem\n            ww_container.querySelector('.problem-contents').classList.add('hidden-content', 'hidden');\n\n            if (activate_button != null) {\n                // Make sure the iframe follows the activate button in the DOM\n                activate_button.after(iframe);\n            } else {\n                ww_container.prepend(iframe);\n            }\n\n            iFrameResize({ checkOrigin: false, scrolling: 'omit', heightCalculationMethod: 'taggedElement' }, iframe);\n\n            iframe.addEventListener('load', () => {\n                // Set up form submission from inside the iframe.\n                const iframeForm = iframe.contentDocument.getElementById(ww_id + '-form');\n                iframeForm.addEventListener('submit', (e) => {\n                    handleWW(ww_id, \"check\");\n                    e.preventDefault();\n                });\n\n                iframe.contentDocument.querySelectorAll('.collapse.in').forEach(collapse => collapse.classList.add('expanded'));\n                iframe.contentWindow.jQuery('.collapse').on('shown', function(e) { if (e.target != this) return; this.classList.add('expanded'); });\n                iframe.contentWindow.jQuery('.collapse').on('hide', function(e) { if (e.target != this) return; this.classList.remove('expanded'); });\n\n                iframe.contentWindow.MathJax.startup.promise.then(() => iframe.contentWindow.MathJax.typesetPromise(['.popover', '.popover-content']));\n            });\n        } else {\n            iframe = ww_container.querySelector('.problem-iframe');\n        }\n\n        iframe.srcdoc = iframeContents;\n\n        iframe.addEventListener('load', () => {\n            // Remove the loader overlay\n            loader.remove();\n        }, { once: true })\n\n        // Place focus on the problem.\n        ww_container.focus()\n    }, \"json\");\n}\n\nfunction WWshowCorrect(ww_id, answers) {\n    const ww_container = document.getElementById(ww_id);\n    const iframe = ww_container.querySelector('.problem-iframe');\n\n    const body = iframe.contentDocument.getElementById(ww_id + '-body')\n    $(\"body\").trigger(\"runestone_show_correct\", {\n        \"ww_id\": ww_id,\n        \"answers\": answers\n    });\n\n    let inputs = body.querySelectorAll(\"input:not([type=hidden])\");\n    for (const input of inputs) {\n        const name = input.name;\n        const span_id = `${ww_id}-${name}-correct`;\n\n        if (input.type == 'text' && answers[name] && !(iframe.contentDocument.getElementById(span_id))) {\n            const input_id = input.id;\n            const mq_span = iframe.contentDocument.getElementById(`mq-answer-${input_id}`);\n            if (mq_span) {\n                mq_span.style.display = 'none';\n            }\n            label = iframe.contentDocument.getElementById(`${span_id}-label`);\n            if (label) {\n                label.parentElement.insertBefore(input, label);\n                label.remove();\n            }\n            input.type = \"hidden\";\n            // we need to convert things like &lt; in answers to <\n            const correct_ans_text = iframe.contentDocument.createElement('div');\n            correct_ans_text.innerHTML = answers[name].correct_ans;\n            input.value = correct_ans_text.textContent;\n            const show_span = iframe.contentDocument.createElement('span');\n            show_span.id = span_id;\n            show_span.appendChild(answers[name].correct_ans_latex_string\n                ? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n                : iframe.contentDocument.createTextNode(answers[name].correct_ans));\n            input.parentElement.insertBefore(show_span, input);\n        }\n\n        if (input.type.toUpperCase() == 'RADIO' && answers[name]) {\n            const correct_ans = answers[name].correct_choice || answers[name].correct_ans;\n            if (input.value == correct_ans) {\n                input.checked = true;\n            } else {\n                input.checked = false;\n            }\n        }\n\n        if (input.type.toUpperCase() == 'CHECKBOX' && answers[name]) {\n            const correct_choices = answers[name].correct_choices;\n            if (correct_choices.includes(input.value)) {\n                input.checked = true;\n            } else {\n                input.checked = false;\n            }\n        }\n    }\n\n    const hiddenInputs = body.querySelectorAll(\"input[type=hidden]\");\n    for (const input of hiddenInputs) {\n        const name = input.name;\n        if (!input.nextElementSibling) continue;\n        const graphtoolContainer = input.nextElementSibling.nextElementSibling;\n        if (graphtoolContainer && answers[name] && graphtoolContainer.classList.contains('graphtool-container')) {\n            const correct_ans_div = iframe.contentDocument.createElement('div');\n            input.parentElement.insertBefore(correct_ans_div, graphtoolContainer);\n            graphtoolContainer.style.display = 'none';\n            input.value = answers[name].correct_ans;\n            iframe.contentWindow.jQuery(correct_ans_div).html(answers[name].correct_ans_latex_string);\n            const script = iframe.contentDocument.createElement('script');\n            script.textContent = correct_ans_div.querySelector('script').textContent\n                .replace('\\nwindow.addEventListener(\"DOMContentLoaded\",', '(')\n                .replace(/;\\n$/, '();');\n            iframe.contentDocument.body.appendChild(script);\n        }\n    }\n\n    let selects = body.querySelectorAll(\"select:not([type=hidden])\");\n    for (const select of selects) {\n        const name = select.name;\n        const span_id = `${ww_id}-${name}-correct`;\n        if (answers[name] && !iframe.contentDocument.getElementById(span_id)) {\n            select.style.display = \"none\";\n            select.value = answers[name].correct_ans;\n            const show_span = iframe.contentDocument.createElement('span');\n            show_span.id = span_id;\n            show_span.appendChild(answers[name].correct_ans_latex_string\n                ? iframe.contentDocument.createTextNode('\\\\(' + answers[name].correct_ans_latex_string + '\\\\)')\n                : iframe.contentDocument.createTextNode(answers[name].correct_ans));\n            select.parentElement.insertBefore(show_span, select);\n        }\n    }\n\n    // run MathJax on our new rendering\n    // FIXME: We only need to typeset the added elements, not the entire body.\n    const mathjaxTypesetScript = iframe.contentDocument.createElement('script');\n    mathjaxTypesetScript.textContent = 'MathJax.startup.promise.then(() => MathJax.typesetPromise([document.body]));';\n    iframe.contentDocument.body.appendChild(mathjaxTypesetScript);\n}\n\nfunction resetWW(ww_id) {\n    const ww_container = document.getElementById(ww_id);\n    const activate_button = document.getElementById(ww_id + '-button');\n\n    ww_container.dataset.current_seed = ww_container.dataset.seed;\n\n    iframe = ww_container.querySelector('.problem-iframe');\n    iframe.remove();\n\n    ww_container.querySelector('.problem-contents').classList.remove('hidden-content', 'hidden');\n\n    ww_container.querySelector('.problem-buttons.webwork').remove();\n    ww_container.querySelector('.problem-buttons').classList.remove('hidden-content', 'hidden');\n    // if the newer activate button is there (but hidden) bring it back too\n    if (activate_button != null) {activate_button.classList.remove('hidden-content', 'hidden');};\n}\n\nfunction adjustSrcHrefs(container,ww_domain) {\n    container.querySelectorAll('[href]').forEach((node) => {\n        const href = node.attributes.href.value;\n        if (href !== '#' && !href.match(/^[a-z]+:\\/\\//i)) node.href = ww_domain + '/' + href;\n    });\n    container.querySelectorAll('[data-knowl-url]').forEach((node) => {\n        const dku = node.dataset.knowlUrl;\n        if (dku !== '#' && !dku.match(/^[a-z]+:\\/\\//i)) node.dataset.knowlUrl = ww_domain + dku;\n    });\n    container.querySelectorAll('[src]').forEach((node) => {\n        node.src = new URL(node.attributes.src.value, ww_domain).href;\n    });\n}\n\nfunction translateHintSol(ww_id, body_div, ww_domain, b_ptx_has_hint, b_ptx_has_solution, hint_label_text, solution_label_text) {\n    // The problem text may come with \"hint\"s and \"solution\"s\n    // Each one is a div.accordion > details.accordion-item > summary.accordion-button\n    // Styling is not the PTX way, so we change it to one div.solutions\n    // with (potentially multiple) details.born-hidden-knowl > summary.knowl__link\n    // Also if hint/sol were missing from the static version, we want these removed here\n\n    const hintSols = body_div.querySelectorAll('.accordion.hint,.accordion.solution');\n    if (hintSols.length == 0) {return};\n\n    for (const hintSol of hintSols) {\n        const parent = hintSol.parentNode;\n        solutionlikewrapper = document.createElement('div');\n        solutionlikewrapper.classList.add('solutions');\n        parent.insertBefore(solutionlikewrapper, hintSol);\n\n        const hintSolType = hintSol.classList.contains('hint') ? 'hint' : 'solution';\n\n        if ((hintSolType == 'solution' && !b_ptx_has_solution) ||\n            (hintSolType == 'hint' && !b_ptx_has_hint))\n            continue;\n\n        const knowlDetails = hintSol.getElementsByTagName('details')[0];\n        knowlDetails.className = '';\n        knowlDetails.classList.add(hintSolType, 'solution-like', 'born-hidden-knowl');\n        solutionlikewrapper.appendChild(knowlDetails);\n\n        const knowlSummary = knowlDetails.getElementsByTagName('summary')[0];\n        knowlSummary.className = '';\n        knowlSummary.classList.add('knowl__link');\n\n        const summaryLabel = knowlSummary.children[0];\n        summaryLabel.remove();\n\n        const newLabelSpan = document.createElement('span');\n        newLabelSpan.innerHTML = hintSolType == 'hint' ? hint_label_text : solution_label_text;\n        knowlSummary.appendChild(newLabelSpan);\n\n        const newLabelPeriod = document.createElement('span');\n        newLabelPeriod.innerHTML = '.';\n        knowlSummary.appendChild(newLabelPeriod);\n\n        adjustSrcHrefs(knowlDetails, ww_domain);\n        hintSol.remove();\n\n        const originalDetailsContent = knowlDetails.getElementsByTagName('div')[0];\n        const newDetailsContent = originalDetailsContent.getElementsByTagName('div')[0];\n        newDetailsContent.className = '';\n        newDetailsContent.classList.add(hintSolType, 'solution-like', 'knowl__content');\n        knowlDetails.appendChild(newDetailsContent);\n        originalDetailsContent.remove();\n    }\n}\n\nfunction cloneAttributes(target, source) {\n    [...source.attributes].forEach( attr => { target.setAttribute(attr.nodeName ,attr.nodeValue) });\n}\n\nfunction webworkSeedHash(string) {\n    var hash = 0, i, chr;\n    if (string.length === 0) return hash;\n    for (i = 0; i < string.length; i++) {\n        chr   = string.charCodeAt(i);\n        hash  = ((hash << 5) - hash) + chr;\n        hash |= 0; //Convert to 32bit integer\n    }\n    return Math.abs(hash);\n};\n"
  },
  {
    "path": "js/pretext.js",
    "content": "/*******************************************************************************\n * pretext.js\n *******************************************************************************\n * The main front-end controller for PreTeXt documents.\n *\n * Homepage: pretextbook.org\n * Repository: https://github.com/PreTeXtBook/JS_core\n *\n * Authors: David Farmer, Rob Beezer\n *\n *******************************************************************************\n */\n\n// from https://stackoverflow.com/questions/34422189/get-item-offset-from-the-top-of-page\nfunction getOffsetTop(e) {\n    // recursively walk up the DOM via offsetParent, accumulating offsetTop as we go\n    if (!e) return 0;\n    return getOffsetTop(e.offsetParent) + e.offsetTop;\n};\n\nfunction scrollTocToActive() {\n    //Try to figure out current TocItem from URL\n    let fileNameWHash = window.location.href.split(\"/\").pop();\n    let fileName = fileNameWHash.split(\"#\")[0];\n\n    //Find just the filename in ToC\n    let tocEntry = document.querySelector('#ptx-toc a[href=\"' + fileName + '\"]');\n    if (!tocEntry) {\n        return; //complete failure, get out\n    }\n\n    let tocEntryTop = 0;\n    //See if we can also match fileName#hash (assuming there is a fragment)\n    if (fileNameWHash.includes('#')) {\n        let tocEntryWHash = document.querySelector(\n            '#ptx-toc a[href=\"' + fileNameWHash + '\"]'\n        );\n        if (tocEntryWHash) {\n            //Matched something below a subsection - activate the list item that contains it\n            tocEntry.closest(\"li\").querySelectorAll(\"li\").forEach(li => {\n                li.classList.remove(\"active\");\n            });\n            tocEntryWHash.closest(\"li\").classList.add(\"active\");\n            tocEntryTop = getOffsetTop(tocEntryWHash);\n        }\n    }\n    if (!tocEntryTop) {\n        tocEntryTop = getOffsetTop(tocEntry);\n    }\n\n    //Now activate ToC item for fileName and scroll to it\n    //  Don't use scrollIntoView because it changes users tab position in Chrome\n    //  and messes up keyboard navigation\n    tocEntry.closest(\"li\").classList.add(\"active\");\n    // Scroll only if the tocEntry is below the bottom half of the window,\n    // scrolling to that position.\n    let toc = document.querySelector(\"#ptx-toc\");\n    let tocTop = getOffsetTop(toc);\n    toc.scrollTop = tocEntryTop - tocTop - 0.4 * self.innerHeight;\n}\n\nfunction toggletoc() {\n   thesidebar = document.getElementById(\"ptx-sidebar\");\n   if (thesidebar.classList.contains(\"hidden\") || thesidebar.classList.contains(\"visible\")) {\n       thesidebar.classList.toggle(\"hidden\");\n       thesidebar.classList.toggle(\"visible\");\n   } else if (thesidebar.offsetParent === null) {  /* not currently visible */\n       thesidebar.classList.toggle(\"visible\");\n   } else {\n       thesidebar.classList.toggle(\"hidden\");\n   }\n   scrollTocToActive();\n}\n\nfunction samePageLink(a) {\n    if (!(a instanceof HTMLAnchorElement)) return false;\n\n    try {\n        const linkUrl = new URL(a.href, document.baseURI);\n        const currentUrl = new URL(window.location.href);\n\n        const sameDocument =\n              linkUrl.origin === currentUrl.origin &&\n              linkUrl.pathname === currentUrl.pathname &&\n              linkUrl.search === currentUrl.search;\n\n        return sameDocument && !!linkUrl.hash;\n    } catch (e) {\n        // Invalid URL\n        return false;\n    }\n}\n\n\nwindow.addEventListener(\"DOMContentLoaded\",function(event) {\n    thetocbutton = document.getElementsByClassName(\"toc-toggle\")[0];\n    thetocbutton.addEventListener(\"click\", (e) => {\n        toggletoc();\n        e.stopPropagation(); // keep global click handler from immediately toggling it back\n    });\n\n    // For themes that want it, install click handlers to auto close the toc\n    // when the reader clicks anywhere outside it or selects a subsection.\n    // (Selecting other sections or chapters navigates away from the page so\n    // effectively closes the TOC.)\n    if (getComputedStyle(document.documentElement).getPropertyValue('--auto-collapse-toc') == \"yes\") {\n\n        const sidebar = document.getElementById(\"ptx-sidebar\");\n\n        // Handle all clicks outside the sidebar\n        window.addEventListener(\"click\", function(event) {\n            if (sidebar.classList.contains(\"visible\")) {\n                if (!event.composedPath().includes(sidebar)) {\n                    toggletoc();\n                }\n            }\n        });\n\n        // Handle clicks inside the sidebar but on link within a subsection.\n        sidebar.addEventListener(\"click\", function (event) {\n            if (samePageLink(event.target.closest('a'))) {\n                toggletoc();\n            }\n        });\n\n        // Handle persistent sidebar if the page is restored from cache on back/forward buttons.\n        window.addEventListener('pageshow', (e) => {\n            if (e.persisted) {\n                sidebar.classList.remove('visible');\n                sidebar.classList.add('hidden');\n            }\n        });\n    }\n});\n\n\n//-----------------------------------------------------------------------------\n// Dynamic TOC logic\n//-----------------------------------------------------------------------------\n\n//item is assumed to be expander in toc-item\nfunction toggleTOCItem(expander) {\n    let listItem = expander.closest(\".toc-item\");\n    listItem.classList.toggle(\"expanded\");\n    let expanded = listItem.classList.contains(\"expanded\");\n\n    let itemType = getTOCItemType(listItem);\n    if(expanded) {\n        expander.title = \"Close\" + (itemType !== \"\" ? \" \" + itemType : \"\");\n    } else {\n        expander.title = \"Expand\" + (itemType !== \"\" ? \" \" + itemType : \"\");\n    }\n\n    //should be one of each... for/of for safety and built in null avoidance\n    for (const childUL of listItem.querySelectorAll(\":scope > ul.toc-item-list\")) {\n        for (const childItem of childUL.querySelectorAll(\":scope > li.toc-item\")) {\n            if(expanded) {\n                childItem.classList.add(\"visible\");\n                childItem.classList.remove(\"hidden\");\n            } else {\n                childItem.classList.remove(\"visible\");\n                childItem.classList.add(\"hidden\");\n            }\n        }\n    }\n}\n\n//finds item type from classes or empty string on failure\nfunction getTOCItemType(item) {\n    //Type should be class that looks like toc-X where X is not item. Find it and return X\n    for(let className of item.classList) {\n        if(className !== \"toc-item\" && className.length > 3 && className.slice(0,4) === \"toc-\")\n            return className.slice(4);\n    }\n    return \"\";\n}\n\n//finds depth of toc-item as defined by number .toc-item-lists it is in\nfunction getTOCItemDepth(item) {\n    let depth = 0;\n    let curParent = item.closest(\".toc-item-list\");\n    while(curParent !== null) {\n        depth++;\n        curParent = curParent.parentElement.closest(\".toc-item-list\");\n    }\n    return depth;\n}\n\nwindow.addEventListener(\"DOMContentLoaded\", function(event) {\n    if(document.querySelector(\".ptx-toc.focused\") === null)\n        return;  //only in focused mode\n\n    let maxDepth = 1000;  //how deep TOC goes\n    //check toc for depth class and get value from there\n    for(let className of document.querySelector(\".ptx-toc\").classList)\n        if(className.length > 5 && className.slice(0,5) === \"depth\")\n            maxDepth = Number(className.slice(5));\n\n    let preexpandedLevels = 1; //how many levels to preexpand\n    let tocDataSet = document.querySelector(\".ptx-toc\").dataset;\n    if(typeof tocDataSet.preexpandedLevels !== 'undefined')\n        preexpandedLevels = Number(tocDataSet.preexpandedLevels);\n\n    let tocItems = document.querySelectorAll(\".ptx-toc ul.structural > .toc-item\");\n    for (const tocItem of tocItems) {\n        let hasChildren = tocItem.querySelector('ul.structural') !== null;\n        let depth = getTOCItemDepth(tocItem);\n\n        if(hasChildren && depth < maxDepth) {\n            let expander = document.createElement(\"button\");\n            expander.classList.add('toc-expander');\n            expander.classList.add('toc-chevron-surround');\n            expander.title = 'toc-expander';\n            // content of span is set by CSS :before rule.\n            expander.innerHTML = '<span class=\"icon material-symbols-outlined\" aria-hidden=\"true\"></span>';\n            tocItem.querySelector(\".toc-title-box\").append(expander);\n            expander.addEventListener('click', () => {\n                toggleTOCItem(expander);\n            });\n\n            let isActive = tocItem.classList.contains(\"contains-active\") || tocItem.classList.contains(\"active\");\n            let preExpanded = isActive || depth < preexpandedLevels;\n            let itemType = getTOCItemType(tocItem);\n            if(preExpanded) {\n                toggleTOCItem(expander);\n            } else {\n                expander.title = \"Expand\" + (itemType !== \"\" ? \" \" + itemType : \"\");\n            }\n        }\n    }\n\n    //Do we have a hash in the URL? If so, we need to identify up to make sure\n    // all parents of that item are expanded\n    if(window.location.hash) {\n        let hash = window.location.hash;\n        // find the link in the TOC that has an href ending in this hash\n        let hashLink = document.querySelector(`.ptx-toc a[href$=\"${hash}\"]`);\n        if(hashLink) {\n            let parentTocItem = hashLink.closest(\".toc-item\");\n            while(parentTocItem && !parentTocItem.classList.contains(\"contains-active\")) {\n                parentTocItem.classList.add(\"contains-active\");\n                let expander = parentTocItem.querySelector(\".toc-expander\");\n                if(expander) {\n                    //make sure it is expanded\n                    if(!parentTocItem.classList.contains(\"expanded\")) {\n                        toggleTOCItem(expander);\n                    }\n                }\n                parentTocItem = parentTocItem.parentElement.closest(\".toc-item\");\n            }\n        }\n    }\n\n});\n\n// This needs to be after the TOC's geometry is settled\nwindow.addEventListener(\"DOMContentLoaded\",function(event) {\n    scrollTocToActive();\n});\n\nwindow.onhashchange = scrollTocToActive;\n"
  },
  {
    "path": "js/pretext_add_on.js",
    "content": "/*******************************************************************************\n * pretext_add_on.js\n *******************************************************************************\n * Javascript for supplementary material in PreTeXt documents.\n *\n * Homepage: pretextbook.org\n * Repository: https://github.com/PreTeXtBook/JS_core\n *\n * Authors: David Farmer, Rob Beezer, Alex Jordan\n *\n *******************************************************************************\n */\n\n/*\nconsole.log(\"thisbrowser.userAgent\", window.navigator.userAgent);\n*/\n\n/* scrollbar width from https://stackoverflow.com/questions/13382516/getting-scroll-bar-width-using-javascript */\nfunction getScrollbarWidth() {\n    var outer = document.createElement(\"div\");\n    outer.style.visibility = \"hidden\";\n    outer.style.width = \"100px\";\n    outer.style.msOverflowStyle = \"scrollbar\"; // needed for WinJS apps\n\n    document.body.appendChild(outer);\n\n    var widthNoScroll = outer.offsetWidth;\n    // force scrollbars\n    outer.style.overflow = \"scroll\";\n\n    // add innerdiv\n    var inner = document.createElement(\"div\");\n    inner.style.width = \"100%\";\n    outer.appendChild(inner);\n\n    var widthWithScroll = inner.offsetWidth;\n\n    // remove divs\n    outer.parentNode.removeChild(outer);\n\n    return widthNoScroll - widthWithScroll;\n}\n\n/*\n  copy permalink address to clipboard\n  requires browser support, otherwise does nothing\n*/\nasync function copyPermalink(linkNode) {\n    // structure borrowed from https://flaviocopes.com/clipboard-api/\n    if (!navigator.clipboard) {\n        // Clipboard API not available\n        console.log(\"Error: Clipboard API not available\");\n        return\n    }\n    console.log(\"copying permalink for\", linkNode);\n    var elem = linkNode.parentElement\n    if (!linkNode) {\n        console.log(\"Error: Something went wrong finding permalink URL\")\n        return\n    }\n    const this_permalink_url = linkNode.href;\n    const this_permalink_description = elem.getAttribute('data-description');\n    var link     = \"<a href=\\\"\"                    + this_permalink_url + \"\\\">\" + this_permalink_description + \"</a>\";\n    var msg_link = \"<a class=\\\"internal\\\" href=\\\"\" + this_permalink_url + \"\\\">\" + this_permalink_description + \"</a>\";\n    var text_fallback = this_permalink_description + \" \\r\\n\" + this_permalink_url;\n    var copy_success = true;\n    try {\n        // NOTE: this method will only work in Firefox if the user has\n        //    dom.events.asyncClipboard.clipboardItem\n        // set to true in their about:config.\n        // Annoyingly, this setting is turned off by default.\n        // If that setting is off, this try block will fail and we'll use the\n        // fallback method lower down instead.\n        await navigator.clipboard.write([\n            new ClipboardItem({\n                'text/html': new Blob([link], { type: 'text/html' }),\n                'text/plain': new Blob([text_fallback], { type: 'text/plain' }),\n            })\n        ]);\n    } catch (err) {\n        console.log('Permalink-to-clipboard using ClipboardItem failed, falling back to clipboard.writeText', err);\n        copy_success = false;\n    }\n    if (! copy_success) {\n        try {\n            await navigator.clipboard.writeText(text_fallback);\n        } catch (err) {\n            console.log('Permalink-to-clipboard using clipboard.writeText failed', err);\n            console.error('Failed to copy link to clipboard!');\n            return\n        }\n    }\n\n    console.log(`copied '${this_permalink_url}' to clipboard`);\n    // temporary element to alert user that link was copied\n    let copied_msg = document.createElement('p');\n    copied_msg.setAttribute('role', 'alert');\n    copied_msg.className = \"permalink-alert\";\n    copied_msg.innerHTML = \"Link to \" + msg_link  + \" copied to clipboard\";\n    elem.parentElement.insertBefore(copied_msg, elem);\n    // show confirmation for a couple seconds\n    await new Promise((resolve, reject) => setTimeout(resolve, 1500));\n    copied_msg.remove();\n\n}\n\n// Add event listener to add onClick handler for permalinks\nwindow.addEventListener(\"DOMContentLoaded\", function() {\n    const permalinks = document.querySelectorAll('.autopermalink > a');\n    permalinks.forEach(link => {\n        link.addEventListener('click', function(event) {\n            event.preventDefault(); // Prevent default anchor behavior\n            copyPermalink(link);\n        });\n    });\n});\n\n\nwindow.addEventListener(\"load\",function(event) {\n\n\n    /* click an image to magnify */\n    $('body').on('click','.image-box > img:not(.draw_on_me):not(.mag_popup), .sbspanel > img:not(.draw_on_me):not(.mag_popup), figure > img:not(.draw_on_me):not(.mag_popup), figure > div > img:not(.draw_on_me):not(.mag_popup)', function(){\n        var img_big = document.createElement('div');\n        img_big.setAttribute('style', 'background:#fff;');\n        img_big.setAttribute('class', 'mag_popup_container');\n        img_big.innerHTML = '<img src=\"' + $(this).attr(\"src\") + '\" style=\"width:100%\" class=\"mag_popup\"/>';\n // place_to_put_big_img = $(this).parents(\".sbsrow, figure, li\").last();\n        place_to_put_big_img = $(this).parents(\".image-box, .sbsrow, figure, li, .cols2 article:nth-of-type(2n)\").last();\n  // for .cols2, the even ones have to go inside the previous odd one\n        if (place_to_put_big_img.prop(\"tagName\") == \"ARTICLE\") {\n           place_to_put_big_img = place_to_put_big_img.prev().children().first();\n        }\n        $(img_big).insertBefore(place_to_put_big_img);\n    });\n\n    /* click the big image to make it go away */\n    $('body').on('click','img.mag_popup', function(){\n        this.parentNode.remove();\n    });\n\n    /* add ids to p that have none */\n    p_no_id = document.querySelectorAll('.main p:not([id])');\n    for (var n=p_no_id.length - 1; n >= 0; --n) {\n        e = p_no_id[n];\n        if (e.hasAttribute('id')) {\n/*\n            console.log(e, \"was id'd in a previous round\");\n*/\n            continue\n        }\n/*\nconsole.log(\"this is e\", e);\n*/\n        if (e.classList.contains('watermark')) {\n            console.log(e, \"skipping the watermark\");\n            continue\n        }\n/*\n        console.log(\"\\n                    XXXXXXXXX  p with no id\", e);\n*/\n        prev_p = $(e).prevAll(\"p\");\n        console.log(\"prev_p\", prev_p, \"xx\");\n        if(prev_p.length == 0) {\n            console.log(\"   PPP   problem: prev_p has no length:\", prev_p);\n            continue\n        }\n        console.log(\"which has id\", prev_p[0].id);\n        var parts_found = 1;\n        var parts_to_id = [e];\n        for (var i=0; i < prev_p.length; ++i) {\n            this_previous = prev_p[i];\n            console.log(\"i\", i, \"this_previous\", this_previous, \"id\", this_previous.id, \"???\", this_previous.hasAttribute('id'))\n            if (!this_previous.hasAttribute('id')) {\n                parts_to_id.unshift(this_previous)\n            }\n            else {\n                base_id = this_previous.id;\n                console.log(\"base_id\", base_id);\n                console.log(\"ready to add id to\", parts_to_id);\n                for (var j=0; j < parts_to_id.length; ++j) {\n                    ++parts_found;\n                    var next_id = base_id + \"-part\" + parts_found.toString();\n                    console.log(\"parts_found\", parts_found, \"next_id\", next_id);\n                    parts_to_id[j].setAttribute(\"id\", next_id);\n                }\n                break // because we found the id that is the base for the missing ids\n            }\n        }\n    }\n\n    console.log(\"adding video popouts\");\n    all_iframes = document.querySelectorAll('body iframeXXXX');\n    // for now, we just want the iframes that hace youtube in the src\n    for (var i = 0; i < all_iframes.length; i++) {\n      this_item = all_iframes[i];\n      this_item_src = this_item.src;\n //     console.log(\"this_item_src\", this_item_src);\n      if(this_item_src.includes(\"youtube\")) {\n        this_item_id = this_item.id;\n        this_item_width = this_item.width;\n        this_item_height = this_item.height;\n        if(this_item_height < 150) { continue }\n        console.log(\"found a youtube video on\", this_item_id);\n        var empty_div = document.createElement('div');\n        var this_videomag_container = document.createElement('div');\n       parent_tag = this_item.parentElement.tagName;\n       if(parent_tag == \"FIGURE\") {\n         this_videomag_container.setAttribute(\"class\", \"videobig\");\n       } else {\n         this_videomag_container.setAttribute(\"class\", \"videobig nofigure\");\n       }\n/*\n        this_videomag_container.setAttribute('class', 'videobig');\n*/\n        this_videomag_container.setAttribute('video-id', this_item_id);\n        this_videomag_container.setAttribute('data-width', this_item_width);\n        this_videomag_container.setAttribute('data-height', this_item_height);\n        this_videomag_container.innerHTML = 'fit width';\n\n/* replace this with a surrounding div, for placement, containing a inline-block so the background looks right */\n        this_item.insertAdjacentElement(\"beforebegin\", empty_div); // because of hard-coded permalinks being inline-block */\n        this_item.insertAdjacentElement(\"beforebegin\", this_videomag_container);\n        this_item.insertAdjacentElement(\"beforebegin\", empty_div); // because of hard-coded permalinks being inline-block */\n      }\n    }\n\n/* replace this with a single class fo rthe button, with supplementary classes that say to shrink or grow */\n    $(\".videobig\").click(function(){\n       parent_video_id = this.getAttribute(\"video-id\");\n       console.log(\"clicked videobig for\", parent_video_id);\n       this_video = document.getElementById(parent_video_id);\n       console.log(\"make big: \", this_video);\n       original_width =  this.getAttribute(\"data-width\");\n       original_height =  this.getAttribute(\"data-height\");\n\n       browser_width = $(window).width();\n       width_ratio = browser_width/original_width;\n       console.log(\"the browser is wider by a factor of\",width_ratio);\n       this_video.setAttribute(\"width\", width_ratio*original_width);\n       this_video.setAttribute(\"height\", width_ratio*original_height);\n       this_video.setAttribute(\"style\", \"position:relative; left:-260px; z-index:1000\");\n\n       this.setAttribute(\"class\", \"videosmall\");\n       this.innerHTML = \"make small\";\n      $(\".videosmall\").click(function(){\n         console.log(\"clicked videosmall\");\n         parent_video_id = this.getAttribute(\"video-id\");\n         this_video = document.getElementById(parent_video_id);\n         original_width =  this.getAttribute(\"data-width\");\n         original_height =  this.getAttribute(\"data-height\");\n\n         this_video.removeAttribute(\"style\");\n         this_video.setAttribute(\"width\", original_width);\n         this_video.setAttribute(\"height\", original_height);\n         this.setAttribute(\"class\", \"videobig\");\n         this.innerHTML = \"fit width\";\n      });\n    });\n\n},\nfalse);\n\n/* for the random WW problems */\n\nfunction updateURLParameter(url, param, paramVal){\n  var newAdditionalURL = \"\";\n  var tempArray = url.split(\"?\");\n  var baseURL = tempArray[0];\n  var additionalURL = tempArray[1];\n  var temp = \"\";\n  if (additionalURL) {\n    tempArray = additionalURL.split(\"&\");\n    for (var i=0; i<tempArray.length; i++){\n      if(tempArray[i].split('=')[0] != param){\n        newAdditionalURL += temp + tempArray[i];\n        temp = \"&\";\n      }\n    }\n  }\n  var rows_txt = temp + \"\" + param + \"=\" + paramVal;\n  return baseURL + \"?\" + newAdditionalURL + rows_txt;\n}\n\nfunction process_workspace() {\n    console.log(\"processing workspace\");\n    MathJax.typesetPromise();\n}\n/* for the GeoGebra calculator */\n\nfunction pretext_geogebra_calculator_onload() {\n    $(\"#calculator-toggle\").focus();\n    var inputfield = $(\"input.gwt-SuggestBox.TextField\")[0];\n    console.log(\"inputfield\", inputfield);\n    inputfield.focus();\n}\nwindow.addEventListener(\"load\",function(event) {\n\n   /* scrolling on GG plot should scale, not move browser body */\n//     var scrollWidth = 15;  //currently correct for FF, Ch, and Saf, but would be better to calculate\n     var scrollWidth = getScrollbarWidth();\n     if ( (navigator.userAgent.match(/Mozilla/i) != null) ) {\n        // scrollWidth += 0.5\n     }\n     console.log(\"scrollWidth\", scrollWidth);\n     calcoffsetR = 5;\n     calcoffsetB = 5;\n     $('body').on('mouseover','#geogebra-calculator canvas', function(){\n         $('body').css('overflow', 'hidden');\n         $('html').css('margin-right', '15px');\n         $('#calculator-container').css('right', (calcoffsetR+scrollWidth).toString() + 'px');\n         $('#calculator-container').css('bottom', (calcoffsetB+scrollWidth).toString() + 'px');\n     });\n\n     $('body').on('mouseout','#geogebra-calculator canvas', function(){\n         $('body').css('overflow', 'scroll')\n         $('html').css('margin-right', '0');\n         $('#calculator-container').css('right', calcoffsetR.toString() + 'px');\n         $('#calculator-container').css('bottom', calcoffsetB.toString() + 'px');\n     });\n\n     $('body').on('click', '#calculator-toggle', function() {\n         if ($('#calculator-container').css('display') == 'none') {\n             $('#calculator-container').css('display', 'block');\n             $('#calculator-toggle').addClass('open');\n             $('#calculator-toggle').attr('title', 'Hide calculator');\n             $('#calculator-toggle').attr('aria-expanded', 'true');\n             create_calc_script = document.getElementById(\"create_ggb_calc\");\n             if (!create_calc_script) {\n                 var ggbscript = document.createElement(\"script\");\n                 ggbscript.id = \"create_ggb_calc\";\n                 ggbscript.innerHTML = \"ggbApp.inject('geogebra-calculator')\";\n                 document.body.appendChild(ggbscript);\n             } else {\n                 pretext_geogebra_calculator_onload();\n             }\n         } else {\n             $('#calculator-container').css('display', 'none');\n             $('#calculator-toggle').removeClass('open');\n             $('#calculator-toggle').attr('title', 'Show calculator');\n             $('#calculator-toggle').attr('aria-expanded', 'false');\n         }\n     });\n});\n\n\nwindow.addEventListener(\"load\",function(event) {\n    document.onkeyup = function(event)\n    {\n        var e = (!event) ? window.event : event;\n        switch(e.keyCode)\n        {\n            case 13:  //CR\n                 just_hit_escape = false;\n                 if ($(document.activeElement).hasClass(\"workspace\")) {\n                    process_workspace()\n                 }\n            case 27: //esc\n         //       var parent_sage_cell = $(this).closest(\".sagecell_editor\");\n                var parent_sage_cell = document.activeElement.closest(\".sagecell_editor\");\n                if (parent_sage_cell && !just_hit_escape) {\n                    console.log(\"staying in the sage cell\", parent_sage_cell, document.activeElement)\n                    just_hit_escape = true;\n                    setTimeout(function(){ just_hit_escape = false }, 1000);\n                } else\n                if(knowl_focus_stack.length > 0 ) {\n                   most_recently_opened = knowl_focus_stack.pop();\n                   knowl_focus_stack_uid.pop();\n                   most_recently_opened.focus();\n                   console.log(\"moved back one knowl\");\n                } else {\n                   console.log(\"no open knowls being tracked\");\n                   break;\n                }\n            break;\n        }\n};\n},\nfalse);\n\n\n// when the anchor is a knowl, open it\nwindow.addEventListener(\"load\",function(event) {\n   if (window.location.hash.length) {\n       let id = window.location.hash.substring(1);\n       var the_anchor = document.getElementById(id);\n       console.log(\"id\", id, \"the_anchor\", the_anchor);\n       if (the_anchor.tagName == \"ARTICLE\") {\n         var contained_knowl = the_anchor.querySelector(\"a[data-knowl]\");\n         if (contained_knowl && contained_knowl.parentElement == the_anchor) {\n           console.log(\"found a knowl\", contained_knowl);\n       //    knowl_click_handler($(contained_knowl))\n           contained_knowl.click()\n         }\n       } else if (the_anchor.hasAttribute(\"data-knowl\")) {\n           the_anchor.click()\n       } else {\n           // if it is a hidden knowl, find the knowl and open it\n           var this_hidden_content = the_anchor.closest(\".hidden-content\");\n           if (this_hidden_content) {\n               console.log(\"linked to a hidden knowl with this_hidden_content\", this_hidden_content);\n               var the_refid = this_hidden_content.id;\n               var this_knowl = document.querySelector('[data-refid=\"' + the_refid + '\"]');\n               this_knowl.click()\n           }\n       }\n   }\n});\n\n\n// The new method for creating pages and adjusting workspace //\n\n// Unwrap section.paragraphs containers so their children flow directly\n// into the parent, enabling CSS page breaks between the inner elements.\nfunction flattenParagraphsSections(printout) {\n    const paragraphsSections = printout.querySelectorAll('section.paragraphs');\n    paragraphsSections.forEach(section => {\n        const parent = section.parentNode;\n        // Move all children out of the section wrapper and into the parent\n        while (section.firstChild) {\n            parent.insertBefore(section.firstChild, section);\n        }\n        // Remove the now-empty section wrapper\n        parent.removeChild(section);\n    });\n}\n\n// Wait for all images inside a container to finish loading.\n// Returns a promise that resolves when every <img> has loaded (or on timeout).\nfunction waitForImages(container, timeoutMs = 5000) {\n    const images = container.querySelectorAll('img');\n    const promises = [];\n    for (const img of images) {\n        if (!img.complete) {\n            promises.push(new Promise(resolve => {\n                img.addEventListener('load', resolve, { once: true });\n                img.addEventListener('error', resolve, { once: true });\n            }));\n        }\n    }\n    if (promises.length === 0) return Promise.resolve();\n    // Race all image loads against a timeout so broken images don't block forever\n    return Promise.race([\n        Promise.all(promises),\n        new Promise(resolve => setTimeout(resolve, timeoutMs))\n    ]);\n}\n\n// This is used multiple places to set height of workspace divs to their author-provided heights\nfunction setInitialWorkspaceHeights() {\n    const workspaces = document.querySelectorAll('.workspace');\n    workspaces.forEach(ws => {\n        ws.style.height = ws.getAttribute('data-space') || '0px';\n        ws.setAttribute(\"contenteditable\", \"true\");\n    });\n}\n\n// If a printout (worksheet or handout) includes authored pages, we only need to put content before the first page and after the last page into the first and last pages, respectively.\nfunction adjustPrintoutPages() {\n    console.log(\"*** Adjusting printout pages.\");\n    const printout = document.querySelector('section.worksheet, section.handout');\n    if (!printout) {\n        console.warn(\"No printout found, exiting adjustPrintoutPages.\");\n        return;\n    }\n    const pages = printout.querySelectorAll('.onepage');\n    if (pages.length === 0) {\n        console.warn(\"No pages found in printout, exiting adjustPrintoutPages.\");\n        return;\n    }\n    // Find all children before the first .onepage element:\n    const firstPage = pages[0];\n    const lastPage = pages[pages.length - 1];\n    // Move all children before the first page into the first page\n    const pageFirstChild = firstPage.firstChild;\n    let currentChild = printout.firstChild;\n    while (currentChild && currentChild !== firstPage) {\n        const nextChild = currentChild.nextSibling; // Save the next sibling before removing\n        firstPage.insertBefore(currentChild, pageFirstChild); // Move to the first page\n        currentChild = nextChild; // Move to the next child\n    }\n    // Now find all children after the last .onepage element:\n    let nextChild = lastPage.nextSibling;\n    while (nextChild) {\n        const tempChild = nextChild;\n        nextChild = nextChild.nextSibling;\n        lastPage.appendChild(tempChild);\n    }\n    console.log(\"Moved all content before the first page and after the last page into the respective pages.\");\n}\n\n// This is the main function we will call then a printout does not come from the XSL with pages already defined (for now, the XSL will keep the <page> behavior as an option).\nfunction createPrintoutPages(margins) {\n    console.log(\"*** Creating printout pages with margins:\", margins);\n\n    // Assumptions: needs to work for both letter (8.5in x 11in) and a4 (210mm x 297mm) paper sizes.  We will work in pixels (96/in): those are 816px x 1056px and 794px x 1122.5px respectively (1 inch = 96 px, 1 cm = 37.8 px).  We assume that the printing interface of the browser will do the right thing with these.\n\n    // For purposes of finding page breaks, we will use 794 as our width and 1056 as our height (so A4 width and letter height).  Then we will rescale workspace on each page to fit the actual paper size selected.\n\n    const conservativeContentHeight = 1056 - (margins.top + margins.bottom); // in pixels\n    const conservativeContentWidth = 794 - (margins.left + margins.right); // in pixels\n\n    const printout = document.querySelector('section.worksheet, section.handout');\n    if (!printout) {\n        console.warn(\"No printout found, exiting createPrintoutPages.\");\n        return;\n    }\n    printout.style.width = toString(conservativeContentWidth + margins.left + margins.right) + 'px';\n    // Set the height of each workspace based on its data-space attribute\n    setInitialWorkspaceHeights(printout);\n\n    // We want to consider each \"block\" of the printout.  Some of these will be direct children of the printout, some will be nested inside these children.  So first create a list of the elements that we consider blocks.\n    let rows = [];\n    for (const child of printout.children) {\n        if (child.classList.contains('sidebyside')) {\n            // sidebyside could have tasks, but we don't want to dive further into them.\n            rows.push(child);\n        } else if (child.querySelector('.task')) {\n            // Keep the child as a block, but put each task after the first one as its own row:\n            rows.push(child);\n            const tasks = child.querySelectorAll('.task, .conclusion');\n\n            //Determine how many levels of nesting each task has.  If parent is an .exercise, leave alone.  If parent is a .task, add .subtask class.  If grandparent is .task, add .subsubtask to it so it can be indented by css:\n            for (let i = 0; i < tasks.length; i++) {\n                let parent = tasks[i].parentElement;\n                let grandparent = parent.parentElement;\n                if (grandparent.classList.contains('task')) {\n                    tasks[i].classList.add('subsubtask');\n                } else if (parent.classList.contains('task')) {\n                    tasks[i].classList.add('subtask');\n                }\n            }\n            for (let i = tasks.length-1; i > 0; i--) {\n                // Move the task out of the original child and place it directly after it in the printout.  We do this in reverse order so when every task is moved, they return to the original order. They will then be added to the rows list as their own blocks.\n                printout.insertBefore(tasks[i], child.nextSibling);\n            }\n        // Skipping separate treatment of exercisegroups for now.\n        } else {\n            rows.push(child);\n        }\n    }\n    // Loop through the blocks and create a list of objects including the block, its height, and its workspace height.  Only include blocks that have height (this will remove autopermalinks, as desired).\n    let blockList = [];\n    for (const row of rows) {\n        let blockHeight = getElementTotalHeight(row);\n        if (blockHeight === 0) {\n            console.log(\"Skipping row with zero height:\", row);\n            continue;\n        }\n        let totalWorkspaceHeight = 0;\n        if (row.querySelector('.workspace')) {\n            // Workspace height is not just sum of workspace heights; we need to be careful with sidebyside and columns\n            totalWorkspaceHeight = getElemWorkspaceHeight(row);\n        }\n        blockList.push({elem: row, height: blockHeight, workspaceHeight: totalWorkspaceHeight});\n    }\n\n    // Now find pageBreaks so that extra workspace is as uniform as possible.\n    const pageBreaks = findPageBreaks(blockList, conservativeContentHeight);\n\n    // Create page divs and insert rows into them\n    for (let i = 0; i < pageBreaks.length; i++) {\n        const pageDiv = document.createElement('section');\n        pageDiv.classList.add('onepage');\n        if (i === 0) {\n            pageDiv.classList.add('firstpage');\n        }\n        // A single page will be both first and last\n        if (i === pageBreaks.length - 1) {\n            pageDiv.classList.add('lastpage');\n        }\n        // The pageBreaks array gives the indices of blocks that should start a page.\n        // So we will want to look for go through the blocks selecting those starting with the previous index (or 0) up to but not including the current index.\n        const start = pageBreaks[i-1] || 0;\n        const end = pageBreaks[i];\n        for (let j = start; j < end; j++) {\n            const row = blockList[j].elem;\n            pageDiv.appendChild(row);\n        }\n        printout.appendChild(pageDiv);\n    }\n\n    // remove any old content that is not in a page\n    for (const child of printout.children) {\n        if (!child.classList.contains('onepage')) {\n            console.log(\"Removing old child not in a page:\", child);\n            printout.removeChild(child);\n        }\n    }\n}\n\n// Add headers and footers to all pages in a printout.  Start with this set to be hidden by default; a toggle later will show/hide them.\nfunction addHeadersAndFootersToPrintout() {\n    const printout = document.querySelector('section.worksheet, section.handout');\n    if (!printout) {\n        console.warn(\"No printout found, exiting addHeadersAndFootersToPrintout.\");\n        return;\n    }\n    const pages = printout.querySelectorAll('.onepage');\n    // Loop through pages and add header and footer divs\n    pages.forEach((page, index) => {\n        const isFirstPage = index === 0;\n        // Add header\n        const headerDiv = document.createElement('div');\n        headerDiv.classList.add(isFirstPage ? 'first-page-header' : 'running-header', 'hidden');\n        headerDiv.innerHTML = `<div class=\"header-left\" contenteditable=\"true\"></div><div class=\"header-center\" contenteditable=\"true\"></div><div class=\"header-right\" contenteditable=\"true\"></div>`;\n        page.insertBefore(headerDiv, page.firstChild);\n        // Add footer\n        const footerDiv = document.createElement('div');\n        footerDiv.classList.add(isFirstPage ? 'first-page-footer' : 'running-footer', 'hidden');\n        footerDiv.innerHTML = `<div class=\"footer-left\" contenteditable=\"true\"></div><div class=\"footer-center\" contenteditable=\"true\"></div><div class=\"footer-right\" contenteditable=\"true\"></div>`;\n        page.appendChild(footerDiv);\n    });\n    // Add content based on local storage if available, otherwise from data-attributes on the printout\n    const headerFooterKeys = ['header-first-left', 'header-first-center', 'header-first-right', 'footer-first-left', 'footer-first-center', 'footer-first-right', 'header-running-left', 'header-running-center', 'header-running-right', 'footer-running-left', 'footer-running-center', 'footer-running-right'];\n    const headerFooterContent = {};\n    headerFooterKeys.forEach(key => {\n        headerFooterContent[key] = localStorage.getItem(key) || printout.getAttribute(`data-${key}`) || '';\n    });\n    // First page header and footer\n    document.querySelector('.first-page-header').querySelector('.header-left').innerHTML = headerFooterContent['header-first-left'];\n    document.querySelector('.first-page-header').querySelector('.header-center').innerHTML = headerFooterContent['header-first-center'];\n    document.querySelector('.first-page-header').querySelector('.header-right').innerHTML = headerFooterContent['header-first-right'];\n    document.querySelector('.first-page-footer').querySelector('.footer-left').innerHTML = headerFooterContent['footer-first-left'];\n    document.querySelector('.first-page-footer').querySelector('.footer-center').innerHTML = headerFooterContent['footer-first-center'];\n    document.querySelector('.first-page-footer').querySelector('.footer-right').innerHTML = headerFooterContent['footer-first-right'];\n    // Running headers and footers\n    document.querySelectorAll('.running-header').forEach(headerDiv => {\n        headerDiv.querySelector('.header-left').innerHTML = headerFooterContent['header-running-left'];\n        headerDiv.querySelector('.header-center').innerHTML = headerFooterContent['header-running-center'];\n        headerDiv.querySelector('.header-right').innerHTML = headerFooterContent['header-running-right'];\n    });\n    document.querySelectorAll('.running-footer').forEach(footerDiv => {\n        footerDiv.querySelector('.footer-left').innerHTML = headerFooterContent['footer-running-left'];\n        footerDiv.querySelector('.footer-center').innerHTML = headerFooterContent['footer-running-center'];\n        footerDiv.querySelector('.footer-right').innerHTML = headerFooterContent['footer-running-right'];\n    });\n    // Add event listeners to update local storage when content is edited\n    headerFooterKeys.forEach(key => {\n        const selectorMap = {\n            'header-first-left': '.first-page-header .header-left',\n            'header-first-center': '.first-page-header .header-center',\n            'header-first-right': '.first-page-header .header-right',\n            'footer-first-left': '.first-page-footer .footer-left',\n            'footer-first-center': '.first-page-footer .footer-center',\n            'footer-first-right': '.first-page-footer .footer-right',\n            'header-running-left': '.running-header .header-left',\n            'header-running-center': '.running-header .header-center',\n            'header-running-right': '.running-header .header-right',\n            'footer-running-left': '.running-footer .footer-left',\n            'footer-running-center': '.running-footer .footer-center',\n            'footer-running-right': '.running-footer .footer-right'\n        };\n        const elements = document.querySelectorAll(selectorMap[key]);\n        elements.forEach(elem => {\n            elem.addEventListener('input', () => {\n                localStorage.setItem(key, elem.innerHTML);\n            });\n        });\n    });\n}\n\n\n// We look at each page and adjust the heights of the workspaces to fit it nicely into the page.\n// The width and height of the page will now depend on the letter or a4 setting.\nfunction adjustWorkspaceToFitPage({paperSize, margins}) {\n    console.log(\"*** Adjusting workspace to fit page size:\", paperSize, \"with margins:\", margins);\n\n    // Toggle off workspace highlight if it is on, so it doesn't interfere with resizing\n    const highlightWorkspaceCheckbox = document.getElementById(\"highlight-workspace-checkbox\");\n    const wasHighlighted = highlightWorkspaceCheckbox && highlightWorkspaceCheckbox.checked;\n    if (wasHighlighted) {\n        toggleWorkspaceHighlight(false);\n    }\n\n    let paperWidth, paperHeight;\n    if (paperSize === 'a4' || document.body.classList.contains('a4')) {\n        console.log(\"Setting page size to A4\");\n        paperWidth = 794; // 210mm in px\n        paperHeight = 1122.5; // 297mm in px 794px x 1122.5px\n    } else {\n        console.log(\"Setting page size to Letter\");\n        paperWidth = 816; // 8.5in in px\n        paperHeight = 1056; // 11in in px\n    }\n    const paperContentHeight = paperHeight - (margins.top + margins.bottom);\n\n    // Reset the heights of workspace divs to their author-provided heights\n    setInitialWorkspaceHeights();\n\n    const pages = document.querySelectorAll('.onepage');\n    pages.forEach(page => {\n        console.log(\"Adjusting workspace height for page:\", page);\n        // Set width to get accurate calculations\n        page.style.width = paperWidth + 'px';\n        const rows = page.children;\n        let totalContentHeight = 0;\n        let totalWorkspaceHeight = 0;\n        for (const row of rows) {\n            totalContentHeight += getElementTotalHeight(row);\n            totalWorkspaceHeight += getElemWorkspaceHeight(row);\n        }\n        if (totalWorkspaceHeight === 0) {\n            console.log(\"No workspaces on this page, skipping workspace adjustment.\");\n            // Reset the style for the page\n            page.style.width = \"\";\n            return;\n        }\n        const extraHeight = paperContentHeight - totalContentHeight;\n        console.log(\"Extra height to distribute across workspaces:\", extraHeight, \"px.\");\n        // Determine the factor by which to multiply each workspace to make the total height fit the paperContentHeight\n        const workspaceAdjustmentFactor = (totalWorkspaceHeight + extraHeight) / totalWorkspaceHeight;\n        console.log(\"Workspace adjustment factor for page:\", workspaceAdjustmentFactor);\n        // Now adjust each workspace in the page by this factor\n        const pageWorkspaces = page.querySelectorAll('.workspace');\n        pageWorkspaces.forEach(ws => {\n            const originalHeight = ws.offsetHeight;\n            const newHeight = originalHeight * workspaceAdjustmentFactor;\n            ws.style.height = newHeight + \"px\";\n        });\n        // Reset the style for the page\n        page.style.width = \"\";\n    });\n    console.log(\"Set page sizes to content area of paper size.\");\n\n    // Reset the highlight workspace checkbox state\n    if (wasHighlighted) {\n        toggleWorkspaceHighlight(true);\n    }\n}\n\n// Helper functions for calculating heights and workspace sizes\nfunction getElementTotalHeight(elem) {\n    // Calculate the total height of the element, including padding, border, and top margin.\n    const style = getComputedStyle(elem);\n    const marginTop = parseFloat(style.marginTop);\n    const marginBottom = parseFloat(style.marginBottom);\n    const height = elem.offsetHeight;\n    return height + marginTop + marginBottom;\n}\n\nfunction getElemWorkspaceHeight(elem) {\n    // Calculate the total height of all workspaces in the element.\n    // This is easy for elements stacked vertically, but we must be careful for side-by-side workspaces.  Since we will multiply each workspace by a factor to fit the page, taking the largest workspace height should give us an upper bound for the amount of vertical space that is workspace.\n    // Note that this won't work well if we need to reduce the workspace, since there we would want to take the minimum heights.\n    if (elem.classList.contains('sidebyside')) {\n        const sbspanels = elem.querySelectorAll('.sbspanel');\n        let max = 0;\n        sbspanels.forEach(panel => {\n            const workspaces = panel.querySelectorAll('.workspace');\n            let totalHeight = 0;\n            workspaces.forEach(workspace => {\n                const workspaceHeight = workspace.offsetHeight;\n                if (workspaceHeight) {\n                    totalHeight += workspaceHeight;\n                }\n            });\n            if (totalHeight > max) {\n                max = totalHeight; // Take the maximum height of workspaces in sidebyside\n            }\n        });\n        return max; // Return the maximum height of workspaces in sidebyside\n    }\n    // We can take care of exercisegroups and single colomn regular layout together.\n    let columns = 1;\n    if (elem.classList.contains('exercisegroup')) {\n        // Check for column classes and set columns accordingly\n        for (let i = 2; i <= 6; i++) {\n            if (elem.querySelector(`.cols${i}`)) {\n            columns = i;\n            console.log(\"Found exercisegroup with columns:\", columns);\n            break;\n            }\n        }\n    }\n    const workspaces = elem.querySelectorAll('.workspace');\n    let totalHeight = 0;\n    workspaces.forEach(ws => {\n        const workspaceHeight = ws.offsetHeight;\n        if (workspaceHeight) {\n            totalHeight += workspaceHeight;\n        }\n    });\n    return totalHeight / columns; // Divide by columns if sidebyside to get average height per column\n}\n\n// Functions for finding the optimal page breaks\nfunction findPageBreaks(rows, pageHeight) {\n    console.log(\"*** Finding page breaks for\", rows.length, \"rows with page height:\", pageHeight);\n    // An array for the page breaks.  The nth element will be the index of the first row on page n+1.\n    let pageBreaks = [];\n    // An array for the minimum cost possible for rows i to the end.\n    let minCost = Array(rows.length + 1).fill(Infinity);\n    minCost[rows.length] = 0; // No cost for no rows\n    // An array to keep track of the next row to start a new page after i in minCost.\n    let nextPageBreak = Array(rows.length).fill(-1);\n\n    // Now loop through the rows in reverse order to find the optimal page breaks.\n    for (let i = rows.length - 1; i >= 0; i--) {\n        let cumulativeHeight = 0;\n        let cumulativeWorkspaceHeight = 0;\n        // Loop through the rows starting from i to find the best page break\n        for (let j = i; j < rows.length; j++) {\n            cumulativeHeight += rows[j].height;\n            cumulativeWorkspaceHeight += rows[j].workspaceHeight;\n            if (cumulativeHeight > pageHeight) {\n                if (j === i) {\n                    // The page height is too big for a single row.  We make this row its own page and move on.\n                    console.log(\"Row\", i, \"exceeds page height by itself, setting as its own page.\");\n                    minCost[i] = 0; // No cost for a single row\n                    nextPageBreak[i] = i + 1; // The next page break is after this row\n                    break; // Move to the next row\n                } else {\n                    // We have already set minCost and NextPageBreak at an earlier point in the loop.  This means we have done the best we can for this row so we stop and move to the next earlier row.\n                    break; // Stop if we exceed the page height\n                }\n            }\n\n            const cost = (pageHeight - cumulativeHeight)**2 + minCost[j+1]; // Cost is how much space is left on the page, plus the cost of the following pages.\n            if (cost < minCost[i]) {\n                minCost[i] = cost;\n                nextPageBreak[i] = j+1; // Set the next page break to be after row j\n            }\n        }\n    }\n    // Backtrack to find the actual page breaks based on nextPageBreak\n    // Note: the nextPage = 1 is not an indexing mistake; we always assume that row 0 is a title and will go on the same page as row 1.\n    let nextPage = 1;\n    while (nextPage < rows.length) {\n        pageBreaks.push(nextPageBreak[nextPage]);\n        nextPage = nextPageBreak[nextPage];\n    }\n    return pageBreaks;\n}\n\n// Function to set CSS variables and @page rules for page geometry.  This will be called whenever the paper size or margins change (in practice, only when page size changes, since margins are fixed for now).\nfunction setPageGeometryCSS({paperSize, margins}) {\n    console.log(\"*** Setting page geometry CSS for paper size:\", paperSize, \"with margins:\", margins);\n    // Remove any existing geometry CSS to avoid duplicates\n    const existingStyle = document.getElementById(\"page-geometry-css\");\n    if (existingStyle) {\n        existingStyle.remove();\n    }\n    let wsWidth = paperSize === \"letter\" ? \"816px\" : \"794px\"; // 8.5in for Letter, 210mm for A4\n    let wsHeight = paperSize === \"letter\" ? \"1056px\" : \"1123px\"; // 11in for Letter, 297mm for A4\n    // Create a new style element for geometry CSS\n    const style = document.createElement(\"style\");\n    // Add an identifier to the style element to avoid conflicts\n    style.id = \"page-geometry-css\";\n    // NB we need to add the fallback values for the margins in @page because some browsers do not support CSS variables in @page rules.\n    style.textContent = `\n        :root {\n            --ws-width: ${wsWidth};\n            --ws-height: ${wsHeight};\n            --ws-top-margin: ${margins.top}px;\n            --ws-right-margin: ${margins.right}px;\n            --ws-bottom-margin: ${margins.bottom}px;\n            --ws-left-margin: ${margins.left}px;\n        }\n        @page {\n            margin: var(--ws-top-margin, ${margins.top}px) var(--ws-right-margin, ${margins.right}px) var(--ws-bottom-margin, ${margins.bottom}px) var(--ws-left-margin, ${margins.left}px);\n        }\n    `;\n    document.head.appendChild(style);\n}\n\nfunction toggleWorkspaceHighlight(isChecked) {\n    if (isChecked) {\n        // Toggle the highlight class on the body based on the checkbox state\n        document.body.classList.add(\"highlight-workspace\");\n        // If we haven't already inserted divs to show the original workspace heights, do that now\n        if (!document.querySelector('.workspace-container')) {\n            console.log(\"adding original workspace divs\");\n            // Insert divs to show the original workspace\n            document.querySelectorAll('.workspace').forEach(workspace => {\n                // Create a container div to hold the workspace div and the original div\n                const container = document.createElement('div');\n                container.classList.add('workspace-container');\n                // Set the container height to the current workspace height\n                container.style.height = window.getComputedStyle(workspace).height;\n                const original = document.createElement('div');\n                original.classList.add('original-workspace');\n                const originalHeight = workspace.getAttribute('data-space') || '0px';\n                original.setAttribute('title', 'Author-specified workspace height (' + originalHeight + ')');\n                // Use the data-space attribute for height of original workspace\n                original.style.height = originalHeight;\n                // insert original div before the workspace content\n                container.appendChild(original);\n                // Add a warning class if the original height is greater than the current height\n                if (original.offsetHeight > workspace.offsetHeight) {\n                    original.classList.add('warning');\n                }\n                // Move the workspace into the container\n                workspace.parentNode.insertBefore(container, workspace);\n                container.appendChild(workspace);\n            });\n        }\n    } else {\n        document.body.classList.remove(\"highlight-workspace\");\n        // Remove the original workspace divs.  We don't want to keep these in, as they interfere with changing page sizes and workspace heights.\n        document.querySelectorAll('.workspace-container').forEach(container => {\n            const workspace = container.querySelector('.workspace');\n            // Move the workspace out of the container\n            container.parentNode.insertBefore(workspace, container);\n            // Remove the container\n            container.remove();\n        });\n    }\n}\n\nfunction getPaperSize() {\n    let paperSize = localStorage.getItem(\"papersize\");\n    if (paperSize) {\n      return paperSize;\n    } else {\n        // Try to set papersize based on user's geographic region\n        // Default to 'letter' for North and South America, 'a4' elsewhere\n        try {\n          fetch('https://ipapi.co/json/')\n            .then(response => response.json())\n            .then(data => {\n          let continent = data && data.continent_code ? data.continent_code : \"\";\n          paperSize = (continent === \"NA\" || continent === \"SA\") ? \"letter\" : \"a4\";\n          const radio = document.querySelector(`input[name=\"papersize\"][value=\"${paperSize}\"]`);\n          if (radio) {\n            radio.checked = true;\n            localStorage.setItem(\"papersize\", paperSize);\n          }\n          document.body.classList.remove(\"a4\", \"letter\");\n          document.body.classList.add(paperSize);\n          console.log(\"Setting papersize to\", paperSize);\n            })\n            .catch((err) => {\n            // rethrow to be caught by the outer catch\n            throw err;\n            });\n        } catch (e) {\n          // fallback: default to letter\n          const radio = document.querySelector(`input[name=\"papersize\"][value=\"letter\"]`);\n          if (radio) radio.checked = true;\n        }\n    }\n    return paperSize || \"letter\";\n}\n\n// Function to load the printout section and switch to print stylesheet.  This will run whenever a user clicks on a print preview link (which adds ?printpreview=sectionID to the URL).\nasync function loadPrintout(printableSectionID) {\n\n    // Switch to print-worksheet.css for print preview\n    const themeStylesheetLink = document.querySelector('link[rel=\"stylesheet\"][href*=\"theme\"]');\n    // get the href of the theme stylesheet link\n    const themeStylesheetHref = themeStylesheetLink ? themeStylesheetLink.getAttribute('href') : null;\n    if (themeStylesheetHref) {\n        // replace 'theme.css' with 'print-worksheet.css' in the href\n        const printStylesheetHref = themeStylesheetHref.replace(/theme.*\\.css/, 'print-worksheet.css');\n        // update the href of the theme stylesheet link\n        themeStylesheetLink.setAttribute('href', printStylesheetHref);\n        // Wait for the new stylesheet to load.  This is important to ensure the styles are applied before the calling function tries to compute workspace sizes.\n        await new Promise((resolve) => {\n            themeStylesheetLink.addEventListener('load', resolve, { once: true });\n        });\n    }\n\n    // Find the section with this ID\n    const printableSection = document.getElementById(printableSectionID);\n    if (!printableSection) {\n        console.error(\"No section found with ID:\", printableSectionID);\n        return;\n    }\n    // Remove any existing sections from .ptx-content and add only the printable section\n    const ptxContent = document.querySelector('.ptx-content');\n    const existingSections = ptxContent.querySelectorAll(':scope > section');\n    existingSections.forEach(sec => ptxContent.removeChild(sec));\n    ptxContent.appendChild(printableSection);\n}\n\n// Function to redo solutions details to divs with summary as title\nfunction rewriteSolutions() {\n    var born_hidden_knowls = document.querySelectorAll('.worksheet details, .handout details');\n    born_hidden_knowls.forEach(function(detail) {\n        const summary = detail.querySelector('summary');\n        const content = detail.innerHTML.replace(summary.outerHTML, '');\n        const div = document.createElement('div');\n        div.classList = detail.classList;\n        if (summary) {\n            const title = document.createElement('h5');\n            title.innerHTML = summary.innerHTML;\n            div.appendChild(title);\n        }\n        const body = document.createElement('div');\n        body.innerHTML = content;\n        div.appendChild(body);\n        detail.parentNode.replaceChild(div, detail);\n    });\n}\n\n// Utility to convert various CSS length units to pixels\nfunction toPixels(value) {\n    if (typeof value === \"number\") return value;\n    if (typeof value !== \"string\") return 0;\n    value = value.trim();\n    if (value.endsWith(\"px\")) {\n        return parseFloat(value);\n    } else if (value.endsWith(\"in\")) {\n        return Math.floor(parseFloat(value) * 96);\n    } else if (value.endsWith(\"cm\")) {\n        return Math.floor(parseFloat(value) * 37.8);\n    } else if (value.endsWith(\"mm\")) {\n        return Math.floor(parseFloat(value) * 3.78);\n    } else if (value.endsWith(\"pt\")) {\n        return Math.floor(parseFloat(value) * (96 / 72));\n    } else {\n        // fallback: try to parse as px\n        return parseFloat(value) || 0;\n    }\n}\n\n// Event listener for page load to handle print preview setup\nwindow.addEventListener(\"DOMContentLoaded\", async function(event) {\n    const urlParams = new URLSearchParams(window.location.search);\n    // We condition on the existence of the papersize radio buttons, which only appear in the printout print preview.\n    if (urlParams.has(\"printpreview\")) {\n        const printableSectionID = urlParams.get(\"printpreview\");\n        await loadPrintout(printableSectionID);\n\n        // First, get the margins for pages to be passed around as needed.\n        const marginList = document.querySelector('section.worksheet, section.handout').getAttribute('data-margins').split(' ');\n        // Convert margin values to pixels if they are not already numbers\n        const margins = {\n            top: toPixels(marginList[0] || \"0.75in\"), // Default to 0.75in if not specified\n            right: toPixels(marginList[1] || \"0.75in\"),\n            bottom: toPixels(marginList[2] || \"0.75in\"),\n            left: toPixels(marginList[3] || \"0.75in\")\n        }\n\n        // Transform all solutions details elements to divs with the summary as a title\n        rewriteSolutions();\n\n        // Get the papersize from localStorage or set it based on user's geographic region.  This will always return a value (defaulting to 'letter' if all else fails).\n        let paperSize = getPaperSize();\n        if (paperSize) {\n        const radio = document.querySelector(`input[name=\"papersize\"][value=\"${paperSize}\"]`);\n        if (radio) {\n            radio.checked = true;\n        }\n        // Set the papersize class on body\n        document.body.classList.remove(\"a4\", \"letter\");\n        document.body.classList.add(paperSize);\n        setPageGeometryCSS({paperSize: paperSize, margins: margins});\n        } else {\n            console.warning(\"Bug: paperSize should always have a value here.\");\n        }\n        // Add event listeners to the papersize radio buttons to handle changes\n        const papersizeRadios = document.querySelectorAll('input[name=\"papersize\"]');\n        papersizeRadios.forEach(radio => {\n            radio.addEventListener('change', function() {\n                if (this.checked) {\n                    document.body.classList.remove(\"a4\", \"letter\");\n                    document.body.classList.add(this.value);\n                    localStorage.setItem(\"papersize\", this.value);\n                    setPageGeometryCSS({paperSize: this.value, margins: margins});\n                    adjustWorkspaceToFitPage({paperSize: this.value, margins: margins});\n                }\n            });\n        });\n\n        // Add event listeners to the hide hints/answers/solutions checkboxes\n        for (const solutionType of [\"hint\", \"answer\", \"solution\"]) {\n            const checkbox = document.getElementById(`hide-${solutionType}-checkbox`);\n            if (checkbox) {\n                const storageKey = `hide-${solutionType}`;\n                // by default, hide answer and solution divs\n                if (solutionType === \"answer\" || solutionType === \"solution\") {\n                    if (!localStorage.getItem(storageKey)) {\n                        checkbox.checked = true;\n                        localStorage.setItem(storageKey, \"true\");\n                    }\n                }\n                // Now adjust based on local storage\n                // set visibility based on current checkbox state\n                checkbox.checked = localStorage.getItem(storageKey) === \"true\";\n                document.querySelectorAll(`div.${solutionType}`).forEach(elem => {\n                    // add hidden to class list\n                    if (checkbox.checked) {\n                        elem.classList.add(\"hidden\");\n                    } else {\n                        elem.classList.remove(\"hidden\");\n                    }\n                });\n                // Add event listener to toggle visibility\n                checkbox.addEventListener(\"change\", function() {\n                    localStorage.setItem(storageKey, this.checked);\n                    // toggle visibility of solution divs\n                    document.querySelectorAll(`div.${solutionType}`).forEach(elem => {\n                        if (checkbox.checked) {\n                            elem.classList.add(\"hidden\");\n                        } else {\n                            elem.classList.remove(\"hidden\");\n                        }\n                        //adjustPrintoutPages();\n                        adjustWorkspaceToFitPage({paperSize: paperSize, margins: margins});\n                    });\n                });\n            }\n        }\n\n        // Finally, with everything set up, we create or adjust the printout pages as needed.\n\n        // Flatten paragraphs sections so page breaks can occur inside them.\n        const printoutSection = document.querySelector('section.worksheet, section.handout');\n        if (printoutSection) {\n            flattenParagraphsSections(printoutSection);\n        }\n\n        // Wait for all images to load so height measurements are accurate.\n        if (printoutSection) {\n            await waitForImages(printoutSection);\n        }\n\n        // If the printout has authored pages, there will be at least one .onepage element.\n        if (document.querySelector('.onepage')) {\n            adjustPrintoutPages();\n        } else {\n            createPrintoutPages(margins);\n        }\n\n        // Add headers and footers to all pages in the printout\n        addHeadersAndFootersToPrintout();\n\n        // Add event listeners to the print header/footer checkboxes\n        for (const hf of [\"first-page-header\", \"running-header\", \"first-page-footer\", \"running-footer\"]) {\n            const checkbox = document.getElementById(`print-${hf}-checkbox`);\n            if (checkbox) {\n                // set visibility based on current checkbox state\n                checkbox.checked = localStorage.getItem(`print-${hf}`) === \"true\";\n                document.querySelectorAll(`.${hf}`).forEach(elem => {\n                    // add hidden to class list\n                    if (checkbox.checked) {\n                        elem.classList.remove(\"hidden\");\n                    } else {\n                        elem.classList.add(\"hidden\");\n                    }\n                });\n                // Add event listener to toggle visibility\n                checkbox.addEventListener(\"change\", function() {\n                    localStorage.setItem(`print-${hf}`, this.checked);\n                    // toggle visibility of header/footer divs\n                    document.querySelectorAll(`.${hf}`).forEach(elem => {\n                        if (checkbox.checked) {\n                            elem.classList.remove(\"hidden\");\n                        } else {\n                            elem.classList.add(\"hidden\");\n                        }\n                        adjustWorkspaceToFitPage({paperSize: paperSize, margins: margins});\n                    });\n                });\n            }\n        }\n\n        // After pages are set up, we adjust the workspace heights to fit the page (based on the paper size).\n        adjustWorkspaceToFitPage({paperSize: paperSize, margins: margins});\n\n        // Get the 'highlight workspace' checkbox state from localStorage or set it to false by default\n        // NB we need to do this after the adjustment of workspace heights so that the additional original workspace divs don't throw off the calculations when the page is reloaded.\n        const highlightWorkspaceCheckbox = document.getElementById(\"highlight-workspace-checkbox\");\n        if (highlightWorkspaceCheckbox) {\n            highlightWorkspaceCheckbox.checked = localStorage.getItem(\"highlightWorkspace\") === \"true\";\n            highlightWorkspaceCheckbox.addEventListener(\"change\", function() {\n                localStorage.setItem(\"highlightWorkspace\", this.checked);\n                toggleWorkspaceHighlight(this.checked);\n            });\n            // Initial toggle to apply the highlight class if checked\n            toggleWorkspaceHighlight(highlightWorkspaceCheckbox.checked);\n        }\n\n        console.log(\"finished adjusting workspace\");\n    }\n});\n\n\n\n//-----------------------------------------------------------------\n// Dark/Light mode swiching\n\nfunction isDarkMode() {\n    if (document.documentElement.dataset.darkmode === 'disabled')\n        return false;\n\n    const currentTheme = localStorage.getItem(\"theme\");\n    if (currentTheme === \"dark\")\n        return true;\n    else if (currentTheme === \"light\")\n        return false;\n\n    return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\nfunction setDarkMode(isDark) {\n    if(document.documentElement.dataset.darkmode === 'disabled')\n        return;\n\n    const parentHtml = document.documentElement;\n    const iframes = document.querySelectorAll(\"iframe[data-dark-mode-enabled]\");\n\n    // Update the parent document\n    if (isDark) {\n        parentHtml.classList.add(\"dark-mode\");\n    } else {\n        parentHtml.classList.remove(\"dark-mode\");\n    }\n\n    // Sync each iframe's <html> class with the parent\n    for (const iframe of iframes) {\n        try {\n            const iframeHtml = iframe.contentWindow.document.documentElement;\n            if (isDark) {\n              iframeHtml.classList.add(\"dark-mode\")\n            } else {\n              iframeHtml.classList.remove(\"dark-mode\")\n            }\n        } catch (err) {\n            console.warn(\"Dark mode sync to iframe failed:\", err);\n        }\n    }\n\n    const modeButton = document.getElementById(\"light-dark-button\");\n    if (modeButton) {\n        modeButton.querySelector('.icon').innerText = isDark ? \"light_mode\" : \"dark_mode\";\n        modeButton.querySelector('.name').innerText = isDark ? \"Light Mode\" : \"Dark Mode\";\n    }\n}\n\n// Run this as soon as possible to avoid flicker\nsetDarkMode(isDarkMode());\n\n// Rest of dark mode setup logic waits until after load\nwindow.addEventListener(\"DOMContentLoaded\", function(event) {\n    // Rerun setDarkMode now that it can update buttons\n    const isDark = isDarkMode();\n    setDarkMode(isDark);\n\n    const modeButton = document.getElementById(\"light-dark-button\");\n    modeButton.addEventListener(\"click\", function() {\n        const wasDark = isDarkMode();\n        setDarkMode(!wasDark);\n        localStorage.setItem(\"theme\", wasDark ? \"light\" : \"dark\");\n    });\n});\n\n// Share button and embed in LMS code\nwindow.addEventListener(\"DOMContentLoaded\", function(event) {\n    const shareButton = document.getElementById(\"embed-button\");\n    if (shareButton) {\n        const sharePopup = document.getElementById(\"embed-popup\");\n        const embedCode = \"<iframe src='\" + window.location.href + \"?embed' width='100%' height='1000px' frameborder='0'></iframe>\";\n        const embedTextbox = document.getElementById(\"embed-code-textbox\");\n        if (embedTextbox) {\n            embedTextbox.value = embedCode;\n        }\n        shareButton.addEventListener(\"click\", function() {\n            sharePopup.classList.toggle(\"hidden\");\n        });\n        const copyButton = document.getElementById(\"copy-embed-button\");\n        if (copyButton) {\n            copyButton.addEventListener(\"click\", function() {\n                const embedTextbox = document.getElementById(\"embed-code-textbox\");\n                if (embedTextbox) {\n                    navigator.clipboard.writeText(embedCode).then(() => {\n                        console.log(\"Embed code copied to clipboard!\");\n                    }).catch(err => {\n                        console.error(\"Failed to copy embed code: \", err);\n                    });\n                    //copyButton.innerHTML = \"✓✓\";\n                    // show confirmation for 2 seconds:\n                    copyButton.querySelector('.icon').innerText = \"library_add_check\";\n                    setTimeout(function() {\n                        copyButton.querySelector('.icon').innerText = \"content_copy\";\n                        sharePopup.classList.add(\"hidden\");\n                    }, 450);\n                }\n            });\n        }\n    }\n});\n\n// Hide everything except the content when the URL has \"embed\" in it\nwindow.addEventListener(\"DOMContentLoaded\", function(event) {\n    const urlParams = new URLSearchParams(window.location.search);\n    if (urlParams.has(\"embed\")) {\n        // Set dark mode based on value of param\n        if (urlParams.get(\"embed\") === \"dark\") {\n            setDarkMode(true);\n        } else {\n            setDarkMode(false);\n        }\n        const elemsToHide = [\n            \"ptx-navbar\",\n            \"ptx-masthead\",\n            \"ptx-page-footer\",\n            \"ptx-sidebar\",\n            \"ptx-content-footer\"\n        ];\n        for (let id of elemsToHide) {\n            const elem = document.getElementById(id);\n            if (elem) {\n                elem.classList.add(\"hidden\");\n            }\n        }\n    }\n});\n\n// START Support for code-copy button functionality\ndocument.addEventListener(\"click\", (ev) => {\n    const codeBox = ev.target.closest(\".clipboardable\");\n    if (!navigator.clipboard || !codeBox) return;\n    const button = ev.target.closest(\".code-copy\");\n    const preContent = codeBox.querySelector(\"pre\").textContent;\n    navigator.clipboard.writeText(preContent);\n    button.classList.toggle(\"copied\")\n    setTimeout(() => button.classList.toggle(\"copied\"), 1000);\n});\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n    const elements = document.querySelectorAll(\".clipboardable\");\n    for (el of elements) {\n        const div = document.createElement(\"div\");\n        div.classList.add(\"clipboardable\");\n        el.classList.remove(\"clipboardable\");\n        el.replaceWith(div);\n        div.insertAdjacentElement(\"afterbegin\", el);\n        div.insertAdjacentHTML(\"beforeend\", `\n    <button class=\"code-copy\" title=\"Copy code\" role=\"button\" aria-label=\"Copy code\" >\n        <span class=\"copyicon material-symbols-outlined\">content_copy</span>\n        <span class=\"checkmark material-symbols-outlined\">check</span>\n    </button>\n            `.trim());\n    }\n});\n// END Support for code-copy button functionality\n"
  },
  {
    "path": "js/pretext_search.js",
    "content": "\n// next comment is out of date: there are more search options\n// from lunr-pretext-search-index.js we will have either\n// var ptx_lunr_search_style = \"default\";\n//   or\n// var ptx_lunr_search_style = \"reference\";\n\n// since there is only one search box now, this can be simplified\nfunction doSearch(searchlocation=\"A\") {\n    // Get the search terms from the input text box\n    var terms;\n    if(searchlocation == \"A\") {\n        terms = document.getElementById(\"ptxsearch\").value;\n    } else {\n        terms = document.getElementById(\"ptxsearchB\").value;\n    }\n    \n    localStorage.setItem('last-search-terms', JSON.stringify({terms: terms, time: Date.now()}));\n    \n    // Where do we want to put the results?\n    let resultArea = document.getElementById(\"searchresults\")\n    resultArea.innerHTML = \"\";  // clear out any previous results\n    // assume AND for multiple words\n    var searchterms = terms;\n    if(searchlocation == \"B\") {\n        document.getElementById(\"ptxsearch\").value = searchterms\n        console.log(\"ptxsearch value\", document.getElementById(\"ptxsearch\").value);\n    } else {\n        searchterms = terms;\n    }\n\n    searchterms = searchterms.toLowerCase().trim();\n    let pageResult = [];\n    if(searchterms != \"\") {\n        pageResult = ptx_lunr_idx.query((q) => {\n            for(let term of searchterms.split(' ')) {\n                q.term(term, { fields: [\"title\"], boost: 20 }); //exact title match with 20x weight\n                q.term(term, { wildcard: lunr.Query.wildcard.TRAILING, fields: [\"title\"], boost: 10 }); //inexact title 10x weight\n                q.term(term, { fields: [\"body\"], boost: 5 }); //exact body 5x weight\n                q.term(term, { wildcard: lunr.Query.wildcard.TRAILING, fields: [\"body\"] }); //inexact body\n            }\n        });\n    }\n    // Number the documents from first to last so we can order the results by their\n    // position in the book.\n    snum = 0;\n    for (let doc of ptx_lunr_docs) {\n        doc.snum = snum;\n        snum += 1;\n    }\n\n    //Limit to a sane number of results - otherwise search like 'e' matches every page\n    const MAX_RESULTS = 100;\n    let numUnshown = (pageResult.length > MAX_RESULTS) ? pageResult.length - MAX_RESULTS : 0;\n    pageResult.slice(0, MAX_RESULTS);\n\n    // Transfer meta data from the document to the results to make it easy to add \n    // our lists later.\n    augmentResults(pageResult, ptx_lunr_docs);\n    pageResult.sort(comparePosition);\n    addResultToPage(terms, pageResult, ptx_lunr_docs, numUnshown, resultArea);\n    MathJax.typeset();\n}\n\n// Find the entry for a search result in the original document index\nfunction findEntry(resultId, db) {\n    for (const page of db) {\n        if (page.id === resultId) {\n            return page;\n        }\n    }\n    return resultId;\n}\n\nfunction augmentResults(result, docs) {\n    for (let res of result) {\n        let info = findEntry(res.ref, docs);\n        res.number = info.number;\n        res.type = info.type;\n        res.title = info.title;\n        res.url = info.url;\n        res.level = info.level;\n        res.snum = info.snum;\n        res.score = parseFloat(res.score);\n\n        //extra score multiplier based on level - prioritize sections over subsections/exercises/etc...\n        const LEVEL_WEIGHTS = [3, 2, 1.5]\n        if( res.level < 2 ) \n            res.score *= LEVEL_WEIGHTS[res.level];\n\n        res.body = '';\n        //Add body snippets and highlights\n        const REVEAL_WINDOW = 30;\n        let titleMarked = false;\n        for (const hit in res.matchData.metadata) {\n            if(res.matchData.metadata[hit].title) {\n                //only show one match in title as locations change after first markup\n                if(!titleMarked) {\n                    if(!res.matchData.metadata[hit].title.position)\n                        continue;\n                    let positionData = res.matchData.metadata[hit].title.position[0];\n                    const startClipInd = positionData[0];\n                    const endClipInd = positionData[0] + positionData[1];\n                    res.title = res.title.substring(0, endClipInd) + '</span>' + res.title.substring(endClipInd);\n                    res.title = res.title.substring(0, startClipInd) + '<span class=\"search-result-clip-highlight\">' + res.title.substring(startClipInd);\n                    titleMarked = true;\n                }\n            } else if (res.matchData.metadata[hit].body) {\n                if(!res.matchData.metadata[hit].body.position)\n                    continue;\n                const bodyContent = info.body;\n                let positionData = res.matchData.metadata[hit].body.position[0];\n                const startInd = positionData[0] - REVEAL_WINDOW;\n                const endInd = positionData[0] + positionData[1] + REVEAL_WINDOW;\n                const startClipInd = positionData[0];\n                const endClipInd = positionData[0] + positionData[1];\n                let resultSnippet = (startInd > 0 ? '...' : '' ) + bodyContent.substring(startInd, startClipInd);\n                resultSnippet += '<span class=\"search-result-clip-highlight\">' + bodyContent.substring(startClipInd, endClipInd) + '</span>';\n                resultSnippet += bodyContent.substring(endClipInd, endInd) + (endInd < bodyContent.length ? '...' : '' ) + '<br/>';\n                res.body += resultSnippet;\n            }\n        }\n    }\n}\n\nfunction rearrangedArray(arry) {\n   // return a new array which is arry (with depth) sorted according to meas,\n   // again as an array with depth.\n   // \"with depth'' means that large children drag along their parents.\n   let newarry = [];\n   let startind = 0;\n   let numtograb = 0;\nlet ct = 1;\n   while (arry.length > 0 && ct < 500) {\n++ct;  // just in case something goes wrong\n       const locofmax = maxLocation(arry)\n       let segmentstart = locofmax;\n       let segmentlength = 1;\n       while (arry[segmentstart].level == \"2\") {\n           --segmentstart\n       }\n       while (segmentstart + segmentlength < arry.length && arry[segmentstart + segmentlength].level == \"2\") {\n           ++segmentlength\n       }\n// console.log(\"locofmax\", locofmax, \"starting\", segmentstart, \"going\", segmentlength, \"from\", arry.length);\n       newarry.push(...arry.splice(segmentstart,segmentlength));\n   }\n// console.log(\"newarry\", newarry);\n    return newarry\n}\nfunction maxLocation(arry) {\n    let maxloc = 0;\n    let maxvalsofar = -1;\n    for (let index = 0; index < arry.length; ++index) {\n        if (arry[index].score > maxvalsofar) {\n            maxloc = index;\n            maxvalsofar = arry[index].score\n        }\n    }\n    return maxloc\n}\n\nfunction comparePosition(a, b) {\n    if (a.snum < b.snum) {\n        return -1;\n    }\n    if (a.snum > b.snum) {\n        return 1;\n    }\n    return 0;\n}\nfunction compareScoreDesc(a, b) {\n    if (a.score < b.score) {\n        return 1;\n    }\n    if (a.score > b.score) {\n        return -1;\n    }\n    return 0;\n}\n\nfunction addResultToPage(searchterms, result, docs, numUnshown, resultArea) {\n    /* backward compatibility for old html */\n    if (document.getElementById(\"searchempty\")) {\n        document.getElementById(\"searchempty\").style.display = \"none\";\n    }\n    let len = result.length;\n    console.log(\"first result\", result[0]);\n    if (len == 0) {\n        if (document.getElementById(\"searchempty\")) {\n            document.getElementById(\"searchempty\").style.display = \"block\";\n        } else {\n            let noresults = document.createElement(\"div\");\n            noresults.classList.add(\"noresults\");\n            search_no_results_string = \"No results were found\"\n            noresults.innerHTML = search_no_results_string + \".\";\n   //     console.log(\"the new variable\", search_results_heading_string);\n            resultArea.appendChild(noresults);\n        }\n        document.getElementById(\"searchresultsplaceholder\").style.display = null;\n        return\n    }\n// console.log(\"result\",result);\n    let allScores = result.map(function (r) { return r.score });\n// console.log(typeof allScores[0], \"allScores\",allScores);\n    allScores.sort((a,b) => (a - b));\n    allScores.reverse();\n// console.log(\"allScores, sorted\",allScores);\n\n//    let high = result[Math.floor(len*0.25)].score;\n//    let med = result[Math.floor(len*0.5)].score;\n//    let low = result[Math.floor(len*0.75)].score;\n    // sort the results by their position in the book, not their score\n    let high = allScores[Math.floor(len*0.20)];\n    let med = allScores[Math.floor(len*0.40)];\n    let low = allScores[Math.floor(len*0.75)];\n    if (ptx_lunr_search_style == \"reference\") {\n        result = rearrangedArray(result);\n    }\n    let indent = \"1\";\n    let currIndent = indent;\n    let origResult = resultArea;\n    // Create list entries indenting as needed.  \n    for (const res of result) {\n        let link = document.createElement(\"a\")\n        // add a class so we can colorize the results based on their rank in terms\n        // of search score.\n        if (res.score >= high) {\n            link.classList.add(\"high_result\")\n        } else if (res.score >= med) {\n            link.classList.add(\"medium_result\")\n        } else if (res.score >= low) {\n            link.classList.add(\"low_result\")\n        } else { \n            link.classList.add(\"no_result\")\n        }\n        currIndent = res.level;\n        if (currIndent > indent) {\n            indent = currIndent;\n            let ilist = document.createElement(\"ul\")\n            ilist.classList.add(\"detailed_result\");\n            resultArea.appendChild(ilist);\n            resultArea = ilist;\n        } else if (currIndent < indent) {\n            resultArea = origResult;\n            indent = currIndent;\n        }\n        link.href = `${res.url}`;\n        link.innerHTML = `${res.type} ${res.number} ${res.title}`;\n        let clip = document.createElement(\"div\");\n        clip.classList.add(\"search-result-clip\");\n        clip.innerHTML = `${res.body}`;\n        let bullet = document.createElement(\"li\");\n        bullet.classList.add('search-result-bullet');\n        bullet.appendChild(link);\n        bullet.appendChild(clip);\n        let p = document.createElement(\"text\");\n        p.classList.add('search-result-score');\n        p.innerHTML = `  (${res.score.toFixed(2)})`;\n        bullet.appendChild(p);\n        resultArea.appendChild(bullet);\n    }\n\n    // Auto-close search results when a result is clicked in case result is on\n    // the same page search started from\n    const resultsDiv = document.getElementById('searchresultsplaceholder');\n    const backDiv = document.querySelector('.searchresultsbackground');\n    resultArea.querySelectorAll(\"a\").forEach((link) => {\n        link.addEventListener('click', (e) => {\n            backDiv.style.display = 'none';\n            resultsDiv.style.display = 'none';\n        });\n    });\n    //Could print message about how many results are not shown. No way to localize it though...\n    // if(numUnshown > 0) {\n    //     let bullet = document.createElement(\"li\");\n    //     bullet.classList.add('search-results-bullet');\n    //     bullet.classList.add('search-results-unshown-count');\n    //     let p = document.createElement(\"text\");\n    //     p.innerHTML = `${parseInt(numUnshown)} unshown results...`;\n    //     bullet.appendChild(p);\n    //     resultArea.appendChild(bullet);\n    // }\n    document.getElementById(\"searchresultsplaceholder\").style.display = null;\n    MathJax.typesetPromise();\n}\n\nwindow.addEventListener(\"load\", function (event) {\n    const resultsDiv = document.getElementById('searchresultsplaceholder');\n\n    //insert a div to be backgroud behind searchresultsplaceholder\n    const backDiv = document.createElement(\"div\");\n    backDiv.classList.add(\"searchresultsbackground\");\n    backDiv.style.display = 'none';\n    resultsDiv.parentNode.appendChild(backDiv);\n\n    document.getElementById(\"searchbutton\").addEventListener('click', (e) => {\n        resultsDiv.style.display = null;\n        backDiv.style.display = null;\n        let searchInput = document.getElementById(\"ptxsearch\");\n        searchInput.value = JSON.parse(localStorage.getItem(\"last-search-terms\")).terms;\n        searchInput.select();\n        doSearch();\n    });\n\n    document.getElementById(\"ptxsearch\").addEventListener('input', (e) => {\n        doSearch();\n    });\n\n    document.getElementById(\"closesearchresults\").addEventListener('click', (e) => {\n        resultsDiv.style.display = 'none';\n        backDiv.style.display = 'none';\n        document.getElementById('searchbutton').focus();\n    });\n});\n"
  },
  {
    "path": "js/ptx_scorm_events.js",
    "content": "/**\n * ptx-scorm-events.js — PreTeXt SCORM Tracking Adapter\n *\n * PURPOSE\n * -------\n * When a PreTeXt book is exported as a SCORM package (compression=\"scorm\" in\n * project.ptx), the resulting zip is uploaded to an LMS (Canvas, Moodle, …).\n * The LMS hosts the content in an iframe and exposes a JavaScript object\n * called the \"SCORM API\" on the parent window.  This script acts as the\n * bridge between PreTeXt/Runestone interactive exercises and that SCORM API.\n *\n * WHAT IT DOES\n * ------------\n * 1. Discovers the SCORM API exposed by the LMS (supports both SCORM 1.2 and\n *    SCORM 2004).\n * 2. Initializes a SCORM session the first time the learner answers a question.\n * 3. Monkey-patches RunestoneBase.prototype.logBookEvent so that every\n *    Runestone exercise submission is intercepted.\n * 4. For each graded submission, writes a SCORM \"interaction\" record (type,\n *    learner response, result, timestamp) to the LMS grade book.\n * 5. Maintains a running score (percentage correct across all answered\n *    questions on all pages visited in this session) and reports it as\n *    cmi.score.scaled (SCORM 2004) or cmi.core.score.raw (SCORM 1.2).\n * 6. Persists the running totals in cmi.suspend_data so that navigating to\n *    a new page does not reset the accumulated score.\n * 7. Marks the SCO as \"completed\" after the first question is answered\n *    (completion means \"visited and interacted\", not \"all correct\").\n *\n * SCORING POLICY\n * --------------\n * The score is simply:  (sum of per-question percentage scores) / (questions answered)\n * No pass/fail threshold is applied here.  The LMS can apply its own mastery\n * score to determine pass/fail based on the reported scaled score.\n *\n * INCLUDED EXERCISE TYPES\n * -----------------------\n * All standard Runestone interactive types are handled:\n *   - multiplechoice / clickablearea  → SCORM interaction type \"choice\"\n *   - fillintheblank / webwork        → \"fill-in\"\n *   - parsons / hparsons              → \"sequencing\"\n *   - dragndrop / matching            → \"matching\"\n *   - unittest (ActiveCode tests)     → \"performance\"\n *   - shortanswer / journal           → \"long-fill-in\" (no automatic score;\n *                                       recorded as neutral result)\n *\n * HOW TO INCLUDE\n * --------------\n * This file is placed in _static/pretext/js/ by the PreTeXt build system and\n * injected into every HTML page via a <script> tag generated by the XSL\n * template named \"scorm-js\" in pretext-html.xsl.  It is only emitted when\n * the build target has html.scorm = 'yes' (i.e. compression=\"scorm\").\n *\n * SCORM 1.2 vs SCORM 2004\n * -----------------------\n * The two versions use different function names (LMSInitialize vs Initialize,\n * different cmi.* paths, different interaction field names).  This script\n * abstracts those differences through the thin wrapper functions Get/Set/Commit\n * defined in Section 2 below.\n */\n\n(function () {\n    'use strict';\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 1 — SCORM API DISCOVERY\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // The LMS embeds the SCO content in an iframe (or nested iframes).  The\n    // SCORM API object lives somewhere on the parent window chain — usually\n    // window.parent, but sometimes higher up.  We walk up at most 10 levels\n    // to locate it.\n    //\n    // SCORM 2004 exposes: window.API_1484_11\n    // SCORM 1.2  exposes: window.API\n    //\n    // We store the discovered object in _api and record the version in _ver\n    // so the wrapper functions in Section 2 can use the right method names.\n\n    var _api = null;   // the LMS SCORM API object once found\n    var _ver = null;   // '2004' or '1.2'\n\n    (function discoverApi() {\n        var win = window;\n        for (var i = 0; i < 10; i++) {\n            // SCORM 2004 API object\n            if (win.API_1484_11) {\n                _api = win.API_1484_11;\n                _ver = '2004';\n                return;\n            }\n            // SCORM 1.2 API object\n            if (win.API) {\n                _api = win.API;\n                _ver = '1.2';\n                return;\n            }\n            // Stop climbing if we have reached the top of the frame hierarchy\n            if (win.parent === win) break;\n            win = win.parent;\n        }\n        // Running without a SCORM LMS is fine — exercises still work, we just\n        // cannot report to any grade book.\n        console.warn('[PTX-SCORM] No SCORM API found. ' +\n                     'Exercises will work normally but scores will not be reported.');\n    })();\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 2 — THIN WRAPPER AROUND THE SCORM API\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // SCORM 1.2 and 2004 have different function names for the same operations.\n    // These three helpers (Get, Set, Commit) hide that difference so the rest\n    // of the code can be version-agnostic.\n\n    /**\n     * Read a SCORM data model element from the LMS.\n     * Returns an empty string when no API is present.\n     */\n    function Get(key) {\n        if (!_api) return '';\n        var val = (_ver === '2004')\n            ? _api.GetValue(key)\n            : _api.LMSGetValue(key);\n        return String(val);\n    }\n\n    /**\n     * Write a value to a SCORM data model element.\n     * Does nothing when no API is present.\n     */\n    function Set(key, val) {\n        if (!_api) return;\n        if (_ver === '2004') {\n            _api.SetValue(key, String(val));\n        } else {\n            _api.LMSSetValue(key, String(val));\n        }\n    }\n\n    /**\n     * Flush pending writes to the LMS (equivalent to a \"save\").\n     * The SCORM spec calls this Commit (2004) or LMSCommit (1.2).\n     * Should be called after every batch of SetValue calls that\n     * represents a meaningful checkpoint (e.g. after each answer).\n     */\n    function Commit() {\n        if (!_api) return;\n        if (_ver === '2004') {\n            _api.Commit('');\n        } else {\n            _api.LMSCommit('');\n        }\n    }\n\n    /**\n     * Return the most recent SCORM error code as a string.\n     * Error code '0' means \"no error\".\n     */\n    function lastError() {\n        if (!_api) return '0';\n        var code = (_ver === '2004')\n            ? _api.GetLastError()\n            : _api.LMSGetLastError();\n        return String(code);\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 3 — SESSION STATE\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // A SCORM \"session\" corresponds to one visit by the learner.  Within a\n    // session the learner may navigate through many pages of the book.  Each\n    // page is a separate HTML file, so each page load starts a fresh\n    // JavaScript context — there is no shared memory between pages.\n    //\n    // We persist the running score totals in cmi.suspend_data (a free-form\n    // string field provided by the SCORM spec for exactly this purpose) so\n    // that when the learner arrives on page 3, we can pick up the scores\n    // accumulated on pages 1 and 2.\n    //\n    // _state fields:\n    //   correct  — running sum of per-question percentage scores (0.0–1.0 each)\n    //   graded   — count of questions that have been answered (and can be graded)\n    //   iCount   — index of the next interaction slot to write in cmi.interactions.*\n    //              (interactions are append-only; we must never reuse an index)\n    //   answers  — map of {divId: {answer, correct, percent}} for every question\n    //              answered in any session; persisted in cmi.suspend_data so the\n    //              UI can be restored when the learner returns in a future session.\n    //              (cmi.interactions.* would also work but the LMS resets those\n    //              records at the start of each new attempt, making them useless\n    //              for cross-session restore.  suspend_data persists forever.)\n\n    var _initialized = false;           // true once Initialize() has succeeded\n    var _state = {\n        correct: 0,   // sum of percentage scores for graded questions\n        graded:  0,   // total number of graded question answers received\n        iCount:  0,   // next available cmi.interactions index (session-local)\n        answers: {}   // {divId: {answer, correct, percent}} — persisted across sessions\n    };\n\n    // Total auto-gradeable questions found on this page (computed at DOM ready).\n    // Used as the score denominator so unanswered questions count as zero,\n    // rather than being silently excluded.  Not persisted in suspend_data because\n    // it is page-specific; for a single-page SCORM assignment (the expected case)\n    // this is simply the total number of questions on the assignment.\n    var _totalQuestions = 0;\n\n    // ── localStorage persistence ──────────────────────────────────────────────\n    //\n    // Many LMSes (Canvas in particular) reset cmi.suspend_data at the start of\n    // each new session/attempt, making it unreliable for cross-session restore.\n    // We therefore also persist _state in the browser's localStorage, keyed by\n    // the learner's ID so that different students sharing a browser stay separate.\n    //\n    // localStorage survives page reloads and browser restarts for the same student\n    // on the same device.  It is not shared across devices, so for cross-device\n    // scenarios we still write to suspend_data (and read it if localStorage is\n    // empty — e.g. the student's first visit on a new device).\n    //\n    // _learnerId is populated once, immediately after Initialize() succeeds.\n    var _learnerId = '';   // cmi.learner_id (2004) or cmi.core.student_id (1.2)\n\n    /**\n     * Build the localStorage key for the current learner and page.\n     *\n     * window.location.pathname includes the LMS course ID in its path (e.g.\n     * Canvas embeds \"/courses/12345/\" in the iframe URL), so different course\n     * instances of the same package get distinct keys automatically.\n     */\n    function lsKey() {\n        return 'ptx-scorm:' + (_learnerId || 'anon') + ':' + window.location.pathname;\n    }\n\n    /** Serialize _state to localStorage.  Silently ignores storage errors. */\n    function saveToLocalStorage() {\n        try {\n            localStorage.setItem(lsKey(), JSON.stringify(_state));\n        } catch (e) {\n            // Quota exceeded, private browsing, or storage disabled — not fatal.\n        }\n    }\n\n    /** Read _state from localStorage.  Returns null if nothing is stored yet. */\n    function loadFromLocalStorage() {\n        try {\n            var raw = localStorage.getItem(lsKey());\n            return raw ? JSON.parse(raw) : null;\n        } catch (e) {\n            return null;\n        }\n    }\n\n    /**\n     * initSession() — Start (or re-join) the SCORM session.\n     *\n     * This is called lazily on the first graded answer rather than on page\n     * load, so that pages without exercises don't create spurious incomplete\n     * records in the LMS.\n     *\n     * Safe to call multiple times — subsequent calls are no-ops once\n     * _initialized is true.\n     */\n    function initSession() {\n        if (_initialized || !_api) return;\n\n        // Initialize() tells the LMS we are starting a communication session.\n        // Error code 103 (\"already initialized\") is harmless — it means another\n        // script or frame already called Initialize() and we can safely proceed.\n        var result = (_ver === '2004')\n            ? _api.Initialize('')\n            : _api.LMSInitialize('');\n        var err = lastError();\n\n        if (result !== 'true' && err !== '103') {\n            console.warn('[PTX-SCORM] Initialize() failed (error=' + err + '). ' +\n                         'Score reporting will be disabled for this page.');\n            return;\n        }\n        _initialized = true;\n\n        // ── Restore accumulated totals from previous pages ──────────────────\n        // cmi.suspend_data is a free-form string that persists across pages\n        // within a session.  We use it to store our running score as JSON.\n        var raw = Get('cmi.suspend_data');\n        if (raw) {\n            try {\n                // Merge saved values into _state; unknown keys are ignored\n                Object.assign(_state, JSON.parse(raw));\n            } catch (e) {\n                // Malformed suspend_data is not fatal; we just start fresh\n                console.warn('[PTX-SCORM] Could not parse suspend_data:', e);\n            }\n        }\n\n        // ── Set session interaction index from LMS ──────────────────────────\n        // cmi.interactions._count is session-local: the LMS resets it to 0 at\n        // the start of each new attempt.  We always derive iCount from the LMS\n        // value (not from anything saved in suspend_data) so that new interaction\n        // records are appended correctly after whatever the LMS already wrote\n        // this session, without trying to reuse or skip existing indices.\n        var lmsCount = parseInt(Get('cmi.interactions._count') || '0', 10);\n        _state.iCount = isNaN(lmsCount) ? 0 : lmsCount;\n\n        // ── Mark the SCO as \"incomplete\" on first page visit ────────────────\n        // This lets the LMS distinguish \"never opened\" from \"opened but not\n        // finished\".  We only set this if the status is still the default\n        // (\"not attempted\" in SCORM 2004, \"\" in SCORM 1.2).\n        var completionKey = (_ver === '2004')\n            ? 'cmi.completion_status'\n            : 'cmi.core.lesson_status';\n        var currentStatus = Get(completionKey);\n        if (currentStatus === 'not attempted' ||\n            currentStatus === 'unknown'       ||\n            currentStatus === '') {\n            Set(completionKey, 'incomplete');\n            Commit();\n        }\n\n        console.log('[PTX-SCORM] Session ready (SCORM ' + _ver + ').' +\n                    '  Prior interactions: ' + _state.iCount + ',' +\n                    '  Prior score: ' + _state.correct + '/' + _state.graded);\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 4 — EXERCISE TYPE MAPPING\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // Runestone fires logBookEvent with an \"event\" field that names the\n    // exercise type.  SCORM requires us to classify each interaction into one\n    // of its own type codes.  This table maps Runestone event names to the\n    // corresponding SCORM 2004 interaction type.\n    //\n    // For SCORM 1.2, \"long-fill-in\" is not a valid type and is narrowed to\n    // \"fill-in\" at the point of use (see recordInteraction below).\n    //\n    // Events NOT present in this map (e.g. video plays, page visits, activecode\n    // edits that are not test runs) are ungraded and are silently ignored.\n\n    var RUNESTONE_TO_SCORM_TYPE = {\n        mChoice:        'choice',        // Multiple-choice question\n        clickableArea:  'choice',        // Clickable-area question (pick the right region)\n        fillb:          'fill-in',       // Fill-in-the-blank\n        webwork:        'fill-in',       // WeBWorK problem (scored as fill-in)\n        parsons:        'sequencing',    // Parsons problem (arrange code blocks in order)\n        hparsonsAnswer: 'sequencing',    // Horizontal Parsons variant\n        dragNdrop:      'matching',      // Drag-and-drop matching\n        matching:       'matching',      // Traditional matching exercise\n        unittest:       'performance',   // ActiveCode with unit tests (auto-graded)\n        shortanswer:    'long-fill-in',  // Short-answer / journal (no automatic grade)\n        splice:         'performance',   // SPLICE protocol iframe activity (see Section 10)\n    };\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 5 — PAGE QUESTION COUNT\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // To report a score out of the total number of questions (not just the\n    // number attempted), we count auto-gradeable Runestone components in the\n    // DOM after the page loads.  Unanswered questions then implicitly score 0.\n    //\n    // Each graded exercise type has a distinct data-component value on its\n    // root element.  Short-answer / journal questions (data-component=\"shortanswer\")\n    // are excluded because they have no automatic score and would unfairly\n    // reduce the percentage.\n    //\n    // ActiveCode unit tests share data-component=\"activecode\" with non-graded\n    // code windows; we distinguish them by the \"--unittest--\" separator that\n    // the PreTeXt XSL embeds in the textarea when a <tests> block is present.\n\n    // CSS attribute selectors for every auto-gradeable Runestone component type.\n    // These map 1-to-1 with the event names in RUNESTONE_TO_SCORM_TYPE (minus\n    // shortanswer, which has no automatic score, and unittest, handled below).\n    var GRADEABLE_SELECTORS = [\n        '[data-component=\"multiplechoice\"]',\n        '[data-component=\"parsons\"]',\n        '[data-component=\"hparsons\"]',\n        '[data-component=\"fillintheblank\"]',\n        '[data-component=\"dragndrop\"]',\n        '[data-component=\"matching\"]',\n        '[data-component=\"clickablearea\"]',\n        '[data-component=\"webwork\"]',\n        '[data-component=\"splice\"]',       // SPLICE protocol iframe activities\n    ];\n\n    /**\n     * Count all auto-gradeable questions on the current page and store the\n     * result in _totalQuestions.  Called once at DOMContentLoaded.\n     */\n    function countPageQuestions() {\n        var count = 0;\n\n        // Count each straightforward component type\n        GRADEABLE_SELECTORS.forEach(function (sel) {\n            count += document.querySelectorAll(sel).length;\n        });\n\n        // ActiveCode with unit tests: the XSL writes \"--unittest--\" into the\n        // textarea as a separator between student code and test code.  We look\n        // for that marker to distinguish graded activecodes from plain ones.\n        document.querySelectorAll('[data-component=\"activecode\"] textarea').forEach(function (ta) {\n            if ((ta.value       && ta.value.indexOf('--unittest--')       !== -1) ||\n                (ta.textContent && ta.textContent.indexOf('--unittest--') !== -1)) {\n                count++;\n            }\n        });\n\n        _totalQuestions = count;\n        console.log('[PTX-SCORM] Gradeable questions on this page: ' + _totalQuestions);\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 6 — SCORE EXTRACTION\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // Runestone events carry score information in several different formats\n    // depending on the exercise type.  This function normalizes them all to\n    // a single float in [0.0, 1.0], or null for exercises without an\n    // automatic score (e.g. short-answer journals).\n\n    /**\n     * Extract a [0.0, 1.0] score from a Runestone event object.\n     *\n     * Runestone uses several conventions:\n     *\n     *   ev.percent        — a float already in [0,1] (most types)\n     *   ev.correct        — 'T'/'F' or true/false (multiple choice)\n     *   ev.act            — a colon-delimited string encoding the result;\n     *                       examples:\n     *                         unittest: \"percent:100.0:passed:2:failed:0\"\n     *                         webwork:  \"actual:3:expected:5:...pct:0.6\"\n     *\n     * Returns null for short-answer exercises (no automatic score).\n     */\n    function extractScore(ev) {\n        // Most Runestone types set ev.percent directly\n        if (typeof ev.percent === 'number') {\n            return ev.percent;\n        }\n\n        if (ev.act) {\n            // ActiveCode unit tests: \"percent:75.0:passed:3:failed:1:...\"\n            var unitMatch = ev.act.match(/(?:^|:)percent:([\\d.]+)/);\n            if (unitMatch) return parseFloat(unitMatch[1]) / 100;\n\n            // WeBWorK: \"actual:3:expected:5:...pct:0.6\"\n            var pctMatch = ev.act.match(/pct:([\\d.]+)/);\n            if (pctMatch) return parseFloat(pctMatch[1]);\n        }\n\n        // Simple correct/incorrect flag (multiple choice, clickable area)\n        var c = ev.correct;\n        if (c === 'T' || c === true)  return 1.0;\n        if (c === 'F' || c === false) return 0.0;\n\n        // Short-answer / journal: no automatic grade\n        return null;\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 7 — TIMESTAMP HELPERS\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // SCORM 2004 wants timestamps in ISO-8601 format (e.g. \"2025-01-15T14:23:00Z\").\n    // SCORM 1.2 wants a simpler \"HH:MM:SS\" string.\n\n    /** Return the current UTC time as an ISO-8601 string (SCORM 2004 format). */\n    function isoTimestamp() {\n        // Remove sub-second precision (.sssZ → Z) to keep strings compact\n        return new Date().toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n    }\n\n    /** Return the current local time as \"HH:MM:SS\" (SCORM 1.2 format). */\n    function hhmmssTime() {\n        var d = new Date();\n        return ('0' + d.getHours()).slice(-2)   + ':' +\n               ('0' + d.getMinutes()).slice(-2) + ':' +\n               ('0' + d.getSeconds()).slice(-2);\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 8 — CORE INTERACTION RECORDER\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // This function is called for every Runestone logBookEvent.  It:\n    //   a) Checks whether the event type is one we track (RUNESTONE_TO_SCORM_TYPE)\n    //   b) Initializes the SCORM session if not already done\n    //   c) Writes a cmi.interactions.N.* record describing this answer\n    //   d) Updates the running score in cmi.score.*\n    //   e) Marks the SCO as \"completed\" (the learner has engaged with it)\n    //   f) Saves state to cmi.suspend_data for the next page\n\n    function recordInteraction(ev) {\n        // ── a) Guard: only handle graded exercise types ──────────────────────\n        var scormType = RUNESTONE_TO_SCORM_TYPE[ev.event];\n        if (!scormType) {\n            // This event type is not an exercise submission (e.g. a video play,\n            // page view, or activecode edit).  Silently ignore it.\n            return;\n        }\n\n        // ── b) Lazy session initialization ───────────────────────────────────\n        initSession();\n        if (!_initialized) return;  // API unavailable; nothing to report\n\n        // SCORM 1.2 does not support the \"long-fill-in\" interaction type\n        // (only SCORM 2004 does).  Narrow it to the closest valid 1.2 type.\n        if (_ver === '1.2' && scormType === 'long-fill-in') {\n            scormType = 'fill-in';\n        }\n\n        // ── c) Write the interaction record ──────────────────────────────────\n        //\n        // SCORM interactions are indexed from 0.  Each call to this function\n        // appends a new record.  The LMS uses these records to show question-\n        // by-question detail in its grade book.\n        //\n        // _state.iCount is our local counter; we increment it after each write\n        // so the next interaction lands in the next slot.\n\n        var idx = _state.iCount;\n        var prefix = 'cmi.interactions.' + idx + '.';\n\n        // Interaction ID: use the exercise's xml:id (div_id in Runestone),\n        // truncated to 255 characters (SCORM spec maximum)\n        Set(prefix + 'id', (ev.div_id || 'unknown').substring(0, 255));\n\n        // Interaction type: the SCORM category (choice, fill-in, sequencing, …)\n        Set(prefix + 'type', scormType);\n\n        // Timestamp: format differs between SCORM versions\n        if (_ver === '2004') {\n            Set(prefix + 'timestamp', isoTimestamp());\n        } else {\n            Set(prefix + 'time', hhmmssTime());\n        }\n\n        // Learner's response: the actual answer they submitted.\n        // Use ev.answer when available; fall back to ev.act (the raw action\n        // string used by some Runestone types).\n        var response = (ev.answer != null) ? ev.answer : (ev.act || '');\n        if (typeof response !== 'string') {\n            response = JSON.stringify(response);\n        }\n        var responseKey = (_ver === '2004') ? 'learner_response' : 'student_response';\n        Set(prefix + responseKey, response.substring(0, 255));\n\n        // Result: translate our [0,1] score to a SCORM result string.\n        //   \"correct\"   — full marks\n        //   \"incorrect\" — zero marks\n        //   \"neutral\"   — no automatic grade (short-answer, journal)\n        //   0.0000–1.0000 — partial credit (SCORM 2004 only; we still use\n        //                   \"correct\"/\"incorrect\" at the boundaries)\n        var score = extractScore(ev);\n        var result;\n        if      (score === null) result = 'neutral';\n        else if (score >= 1.0)  result = 'correct';\n        else if (score <= 0.0)  result = 'incorrect';\n        else                    result = score.toFixed(4);   // partial credit\n\n        Set(prefix + 'result', result);\n\n        _state.iCount++;   // advance to the next available interaction slot\n\n        // ── d) Update the running score ───────────────────────────────────────\n        //\n        // Short-answer / journal questions have no automatic score (score === null).\n        // We accumulate fractional points only for auto-graded questions, but the\n        // denominator is always the total number of gradeable questions on the page\n        // so that unanswered questions count as zero (not as an absence).\n        //\n        // _totalQuestions is set at DOMContentLoaded by countPageQuestions().\n        // If for some reason it is 0 (e.g. dynamic content not yet in DOM), we\n        // fall back to _state.graded so the score still reflects something sensible.\n        if (score !== null) {\n            // ── Handle re-submission ──────────────────────────────────────────────\n            // If the student submits the same question again (e.g. changes their\n            // answer), we must remove the previous attempt's contribution before\n            // adding the new one.  Without this, each re-submission inflates both\n            // _state.correct and _state.graded, producing a score above 100%.\n            var prevEntry = _state.answers[ev.div_id || 'unknown'];\n            if (prevEntry !== undefined &&\n                prevEntry.percent !== null &&\n                prevEntry.percent !== undefined) {\n                _state.correct -= prevEntry.percent;\n                _state.graded  -= 1;\n            }\n\n            _state.correct += score;    // accumulate fractional points\n            _state.graded  += 1;        // one more question has been answered\n\n            // Use page total as denominator; fall back to answered count if needed\n            var denom = _totalQuestions > 0 ? _totalQuestions : _state.graded;\n            var scaled = _state.correct / denom;\n\n            if (_ver === '2004') {\n                // SCORM 2004 uses separate score fields\n                Set('cmi.score.scaled', scaled.toFixed(4));         // 0.0000–1.0000\n                Set('cmi.score.raw',    (scaled * 100).toFixed(1)); // 0.0–100.0\n                Set('cmi.score.min',    '0');\n                Set('cmi.score.max',    '100');\n                // We intentionally do NOT set cmi.success_status here.\n                // Pass/fail is determined by the LMS using its own mastery score\n                // setting, not by this script.\n            } else {\n                // SCORM 1.2 has a single score field (0–100 range)\n                Set('cmi.core.score.raw', (scaled * 100).toFixed(1));\n                // We do NOT set cmi.core.lesson_status to 'passed'/'failed';\n                // we set it to 'completed' (below) and let the LMS decide.\n            }\n        }\n\n        // ── e) Note: completion_status intentionally stays \"incomplete\" ──────\n        //\n        // Setting completion_status=\"completed\" (or lesson_status=\"completed\"\n        // in SCORM 1.2) causes Canvas — and many other LMSes — to treat the\n        // next visit as a brand-new attempt, resetting all runtime data\n        // including cmi.suspend_data.  Keeping the status as \"incomplete\"\n        // (set at session start in loadRestoreData) tells the LMS the student\n        // is still working and the same attempt should be resumed next time.\n        //\n        // Canvas records the score independently of completion status, so the\n        // grade will appear correctly in the gradebook.  For Canvas module\n        // completion requirements, instructors should use \"must score at\n        // least X%\" rather than \"must complete this item.\"\n\n        // ── f) Persist state for the next page ───────────────────────────────\n        //\n        // cmi.suspend_data is our cross-page scratchpad.  We serialise _state\n        // to JSON and write it here so that when the learner navigates to the\n        // next page, initSession() can restore the running totals.\n        //\n        // We also save this answer to _state.answers so that loadRestoreData()\n        // can rebuild the UI restore map from suspend_data on future visits.\n        // We cannot rely on cmi.interactions.* for this because many LMSes reset\n        // that collection at the start of each new attempt — suspend_data persists.\n        _state.answers[ev.div_id || 'unknown'] = {\n            answer:  response,\n            correct: score === null ? null : (score >= 1.0),\n            percent: score\n        };\n\n        var suspendJson = JSON.stringify(_state);\n        console.log('[PTX-SCORM] Saving suspend_data (' + suspendJson.length + ' chars), ' +\n                    'answers keys: ' + JSON.stringify(Object.keys(_state.answers)));\n        Set('cmi.suspend_data', suspendJson);\n\n        // Flush all pending writes to the LMS\n        Commit();\n\n        // Also save to localStorage so that answers survive even when the LMS\n        // resets suspend_data at the start of the next session (Canvas does this).\n        saveToLocalStorage();\n\n        // ── Diagnostic log ────────────────────────────────────────────────────\n        var logDenom = _totalQuestions > 0 ? _totalQuestions : _state.graded;\n        var pctLabel = logDenom > 0\n            ? (_state.correct / logDenom * 100).toFixed(0) + '%'\n              + ' (' + _state.correct.toFixed(2) + ' / ' + logDenom + ')'\n            : 'n/a';\n        console.log('[PTX-SCORM] ' + ev.event + ' \"' + (ev.div_id || '?') +\n                    '\" → ' + result +\n                    '  Score: ' + pctLabel +\n                    '  (' + _state.iCount + ' total interactions)');\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 9 — RUNESTONE HOOK INSTALLATION\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // Every Runestone interactive component (multiple choice, Parsons, FITB, …)\n    // extends RunestoneBase and calls this.logBookEvent(eventData) when the\n    // learner submits an answer.\n    //\n    // We intercept that call by replacing RunestoneBase.prototype.logBookEvent\n    // with a wrapper that first calls our recordInteraction() and then delegates\n    // to the original method.  This technique is called \"monkey-patching\" and\n    // is safe here because:\n    //   - We hold a reference to the original function and always call it.\n    //   - We guard against double-patching with the __ptxScormHooked sentinel.\n    //   - Any exceptions in our code are caught so Runestone's own logging\n    //     is never disrupted.\n    //\n    // TIMING: The Runestone bundle loads synchronously, so window.RunestoneBase\n    // should already be defined when this script runs.  The DOMContentLoaded\n    // and runestone:pre-login-complete listeners are fallbacks for edge cases\n    // (e.g. deferred or async loading).\n\n    function installHook() {\n        // Only patch once; bail if RunestoneBase isn't available yet\n        if (!window.RunestoneBase || window.RunestoneBase.__ptxScormHooked) return;\n\n        // Save a reference to the original method so we can chain to it\n        var originalLogBookEvent = window.RunestoneBase.prototype.logBookEvent;\n\n        // Replace with our wrapper\n        window.RunestoneBase.prototype.logBookEvent = function (eventData) {\n            // Our tracking code runs first; any error is caught so it cannot\n            // prevent Runestone's own event handling from executing\n            try {\n                recordInteraction(eventData);\n            } catch (err) {\n                console.error('[PTX-SCORM] Error in recordInteraction:', err);\n            }\n            // Always call the original so Runestone continues to function normally\n            return originalLogBookEvent.call(this, eventData);\n        };\n\n        // Sentinel prevents double-patching if installHook() is called again\n        window.RunestoneBase.__ptxScormHooked = true;\n\n        var rsVersion = (window.eBookConfig && window.eBookConfig.runestone_version)\n            ? ' (Runestone v' + window.eBookConfig.runestone_version + ')'\n            : '';\n        console.log('[PTX-SCORM] Runestone hook installed' + rsVersion + '.');\n    }\n\n    // Attempt installation immediately (Runestone is usually already loaded)\n    installHook();\n\n    // Fallback: Runestone fires this event when its components are ready after\n    // the user logs in.  In some configurations RunestoneBase isn't available\n    // until this point.\n    document.addEventListener('runestone:pre-login-complete', installHook);\n\n    // Final fallback: re-try hook installation after the full DOM is built,\n    // count gradeable questions, then initialize SCORM eagerly so we can\n    // restore saved answers before Runestone's components call checkServer.\n    document.addEventListener('DOMContentLoaded', function () {\n        installHook();\n        countPageQuestions();\n        var restoreMap = loadRestoreData();\n        installRestoreHook(restoreMap);\n        requestParentResize();\n        installWeBWorKSrcdocIntercept();\n        installWeBWorKAjaxIntercept();\n\n        // Add status badges to WeBWorK problems that the student has already answered.\n        // WeBWorK is not a RunestoneBase component so the restore hook's decorateStatus\n        // path never fires for it.  We add a lightweight badge to .problem-buttons so\n        // it appears on page load (before Activate), matching the position of the\n        // checkmarks Runestone shows for other exercise types.\n        Object.keys(_state.answers).forEach(function (divId) {\n            var container = document.getElementById(divId);\n            // data-domain identifies WeBWorK exercise-wrapper elements.\n            if (!container || !container.dataset || !container.dataset.domain) return;\n            addWeBWorKBadge(container, _state.answers[divId]);\n        });\n    });\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 10 — PARENT FRAME RESIZE REQUEST\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // Canvas (and many other LMSes) embed SCORM content in an iframe whose\n    // default height is too small for a page full of interactive exercises.\n    // Canvas honors the same \"lti.frameResize\" postMessage that LTI tools and\n    // SPLICE activities use to request a taller frame.\n    //\n    // We send this message at DOMContentLoaded (initial render) and again\n    // whenever the page body grows taller — Runestone loads its components\n    // asynchronously via webpack dynamic imports, so the page height can\n    // increase significantly after the initial paint.\n    //\n    // If the parent frame is not Canvas (or does not support lti.frameResize),\n    // the message is silently ignored — it has no effect on SCORM behavior.\n\n    /**\n     * Measure the current page height and ask the parent frame to match it.\n     * Called at DOMContentLoaded and again by the ResizeObserver below.\n     */\n    function requestParentResize() {\n        // Don't send if we are already the top-level window (not in an iframe)\n        if (window.parent === window) return;\n\n        // scrollHeight reflects the full content height even when the iframe\n        // itself is clipped.  We take the larger of the two scroll height\n        // properties for cross-browser compatibility, with a 600px floor so\n        // the frame is never unreasonably tiny even on a nearly empty page.\n        var height = Math.max(\n            document.documentElement.scrollHeight,\n            document.body ? document.body.scrollHeight : 0,\n            600\n        );\n\n        var msg = { subject: 'lti.frameResize', height: height };\n\n        // Send to the immediate parent (the SCORM player frame).\n        window.parent.postMessage(msg, '*');\n\n        // Also send to the top-level Canvas page.  Canvas's SCORM player\n        // (iad.scorm.canvaslms.com) wraps our content in its own iframe, so\n        // window.parent is the SCORM player — not Canvas itself.  The outer\n        // iframe's height is constrained by CSS on the Canvas page, and the\n        // SCORM player does not forward resize requests upward on our behalf.\n        // Sending directly to window.top gives Canvas's own JS a chance to\n        // intercept the message and resize the outer iframe.  Whether Canvas\n        // honours lti.frameResize from SCORM content (vs. LTI tools) is\n        // LMS-version-dependent and not guaranteed, but the message is harmless.\n        if (window.top !== window.parent) {\n            try {\n                window.top.postMessage(msg, '*');\n            } catch (e) {\n                // Blocked by browser security in rare sandboxed-iframe configs\n            }\n        }\n    }\n\n    // Watch the document body for size changes and re-request a resize each\n    // time it grows (e.g. as Runestone components finish rendering, or as a\n    // student expands a knowl or feedback panel).\n    //\n    // ResizeObserver is supported by all modern browsers.  If it is somehow\n    // unavailable we rely on the single DOMContentLoaded call above, which\n    // is better than nothing.\n    if (window.ResizeObserver) {\n        var _resizeObserver = new ResizeObserver(function () {\n            requestParentResize();\n        });\n        // Start observing once the body exists.  At script-parse time the body\n        // is already present (this script runs before </body>), but we guard\n        // with a DOMContentLoaded fallback just in case.\n        if (document.body) {\n            _resizeObserver.observe(document.body);\n        } else {\n            document.addEventListener('DOMContentLoaded', function () {\n                _resizeObserver.observe(document.body);\n            });\n        }\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 11 — SPLICE ACTIVITY EVENT HANDLING\n    // ═══════════════════════════════════════════════════════════════════════\n    // SPLICE (Supporting Pedagogy and Learning In Computing Education) is a\n    // protocol that lets third-party interactive activities embedded in iframes\n    // report events and scores to a parent page via window.postMessage.\n    // See: https://cssplice.github.io/\n    //\n    // In a PreTeXt/Runestone context, a SPLICE activity lives in an <iframe>\n    // wrapped by a <div data-component=\"splice\"> element.  When the student\n    // completes an activity, the iframe sends a \"SPLICE.sendEvent\" postMessage.\n    // Runestone's SpliceComponent intercepts this and calls logBookEvent() —\n    // but it does NOT pass the score through to logBookEvent (it only passes\n    // the event name in the act field).  Our logBookEvent monkey-patch in\n    // Section 9 therefore sees these events but gets no score to record.\n    //\n    // We solve this by listening for \"message\" events directly on the window,\n    // extracting the score from the raw SPLICE payload, and forwarding a\n    // synthetic event to recordInteraction().\n    //\n    // SPLICE sendEvent message format (from the SPLICE spec):\n    //   {\n    //     subject:          \"SPLICE.sendEvent\",\n    //     activity_id:      \"...\",   // tool-assigned identifier for this activity\n    //     name:             \"...\",   // event type, e.g. \"answer\", \"attempt\", \"hint\"\n    //     score:            0.8,     // [0.0, 1.0] learner score (optional)\n    //     completionStatus: \"...\",   // \"completed\", \"incomplete\", etc. (optional)\n    //     data:             { ... }  // additional event-specific data (optional)\n    //   }\n    //\n    // We only record events that carry a numeric score.  Unscored events (e.g.\n    // \"hint\", \"started\") are silently ignored, consistent with how we treat\n    // short-answer submissions that have no automatic grade.\n\n    window.addEventListener('message', function (event) {\n        var data = event.data;\n\n        // Guard: only handle SPLICE.sendEvent messages with a numeric score.\n        // Non-object data (e.g. the resize request string from lti_iframe_resizer)\n        // is skipped by the typeof check.\n        if (!data || typeof data !== 'object') return;\n        if (data.subject !== 'SPLICE.sendEvent') return;\n        if (typeof data.score !== 'number') return;\n\n        // ── Resolve the exercise div_id from the source iframe ────────────────\n        //\n        // The SPLICE activity runs inside an <iframe>.  We identify which iframe\n        // sent the message by matching its contentWindow against event.source,\n        // then walk up the DOM to the enclosing <div data-component=\"splice\">\n        // which carries the Runestone-assigned xml:id for this activity.\n        // This mirrors the logic in Runestone's SpliceComponent.getUniqueID().\n        //\n        // Fallback: if we can't find the enclosing container, use activity_id\n        // from the SPLICE message itself.\n        var divId = data.activity_id || 'splice-unknown';\n        var iframes = document.getElementsByTagName('iframe');\n        for (var i = 0; i < iframes.length; i++) {\n            if (iframes[i].contentWindow === event.source) {\n                var container = iframes[i].closest('[data-component=\"splice\"]');\n                if (container && container.id) {\n                    divId = container.id;\n                }\n                break;\n            }\n        }\n\n        // ── Normalize the score to [0.0, 1.0] ────────────────────────────────\n        //\n        // The SPLICE spec defines score as a value in [0, 1], but some activities\n        // send a percentage in [0, 100].  Values greater than 1 are treated as\n        // percentage points and divided by 100.\n        var score = data.score;\n        if (score > 1) score = score / 100;\n        score = Math.max(0, Math.min(1, score));\n\n        // ── Forward to recordInteraction as a synthetic event ─────────────────\n        //\n        // We reuse the same recordInteraction() path as all other exercise types.\n        // The synthetic event must have:\n        //   ev.event   — key in RUNESTONE_TO_SCORM_TYPE ('splice' → 'performance')\n        //   ev.div_id  — the exercise's stable Runestone/xml:id\n        //   ev.percent — numeric score in [0, 1], read by extractScore()\n        //   ev.answer  — the learner's response string (we use the SPLICE event name)\n        try {\n            recordInteraction({\n                event:   'splice',\n                div_id:  divId,\n                answer:  data.name || '',\n                percent: score\n            });\n        } catch (err) {\n            console.error('[PTX-SCORM] Error recording SPLICE event:', err);\n        }\n    });\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 12 — WEBWORK AJAX EVENT HANDLING\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // WeBWorK problems in PreTeXt are rendered in iframes but graded by an\n    // external WeBWorK server.  Runestone's pretext-webwork.js makes a jQuery\n    // AJAX call from the parent page to the WeBWorK server and, upon success,\n    // fires a \"runestone_ww_check\" event on the document body — BUT only when\n    // eBookConfig.username !== '' (i.e. the user is logged in to Runestone).\n    //\n    // In a SCORM package, eBookConfig.username is always '' (no Runestone login),\n    // so runestone_ww_check never fires and our logBookEvent hook in Section 9\n    // never sees WeBWorK submissions.\n    //\n    // FIX: We intercept jQuery's ajaxComplete event directly.  ajaxComplete fires\n    // for every jQuery AJAX call regardless of Runestone login state.  We inspect\n    // the response and, if it looks like a WeBWorK grading result, we extract the\n    // score and answer data and call recordInteraction() ourselves.\n    //\n    // WeBWorK server response format:\n    //   {\n    //     rh_result: {\n    //       answers: {\n    //         ans1: { score: 0|1, student_value: \"...\", correct_value: \"...\" },\n    //         ans2: { ... },\n    //         ...\n    //       }\n    //     },\n    //     inputs_ref: {\n    //       problemUUID: \"my-ww-problem-ww-rs\",  // Runestone container id\n    //       WWcorrectAnsOnly: 1,                 // present for \"show answer\" only\n    //       ans1: \"student answer value\",         // newer WW versions\n    //       ...\n    //     },\n    //     ww_version: \"2.18\"                     // or \"2.16\", \"2.20\", etc.\n    //   }\n    //\n    // Score calculation mirrors Runestone's processCurrentAnswers():\n    //   overall = (sum of per-part scores) / (number of answer parts)\n    //\n    // Answer object format (matching what Runestone's logBookEvent receives):\n    //   JSON.stringify({ answers: {ans1: \"val\"}, mqAnswers: {MaThQuIlL_ans1: \"val\"} })\n\n    // Add a small status badge to a WeBWorK container's .problem-buttons row,\n    // matching the visual position of Runestone's checkmarks on other components.\n    // Called at page-load time so it appears before the student clicks Activate.\n    function addWeBWorKBadge(container, saved) {\n        var existing = container.querySelector('.ptx-scorm-ww-badge');\n        if (existing) existing.remove();\n\n        var badge = document.createElement('span');\n        badge.className = 'ptx-scorm-ww-badge';\n\n        var pct = typeof saved.percent === 'number' ? saved.percent : null;\n        var correct = saved.correct;\n        if (correct === true || pct >= 1) {\n            badge.textContent = '✓';\n            badge.style.cssText = 'float:right;color:green;font-weight:bold;';\n        } else if (correct === false || (pct !== null && pct < 1)) {\n            badge.textContent = '✗';\n            badge.style.cssText = 'float:right;color:#c00;font-weight:bold;';\n        } else {\n            return; // no meaningful status — skip badge\n        }\n\n        // Add to .problem-buttons so it sits on the same row as the Activate button.\n        var buttons = container.querySelector('.problem-buttons');\n        if (buttons) {\n            buttons.appendChild(badge);\n        } else {\n            container.insertBefore(badge, container.firstChild);\n        }\n    }\n\n    // Answer restoration for WeBWorK uses two complementary steps:\n    //\n    // 1. ajaxSend pre-seeds the answer values in the WeBWorK init request so the\n    //    server renders the form inputs with value= attributes already filled in.\n    //    We do NOT use WWsubmit=1 here: submitted-state rendering causes MathQuill\n    //    to re-initialise from scratch (discarding any pre-rendered overlay spans),\n    //    producing the \"flash then blank\" symptom.\n    //\n    // 2. patchWeBWorKSrcdoc / installWeBWorKSrcdocIntercept intercept the srcdoc\n    //    set by pretext-webwork.js.  After the iframe loads, we drive the MathQuill\n    //    display directly via window.MathQuill.MathField(input).latex(value), which\n    //    is the only reliable way to update MathQuill's overlay spans after the\n    //    library has already initialised.\n\n    /**\n     * Called synchronously when pretext-webwork.js sets iframe.srcdoc.\n     * Injects saved answer values into empty <input value=\"\"> elements (belt),\n     * then schedules a post-load MathQuill API call to update the overlay display\n     * (suspenders) — necessary because MathQuill re-initialises its overlay from\n     * the <input> element's value at load time, ignoring pre-rendered markup.\n     */\n    function patchWeBWorKSrcdoc(iframe, html) {\n        try {\n            // Walk up from the iframe to the exercise-wrapper element (has data-domain).\n            var container = iframe.parentElement;\n            while (container && !container.dataset.domain) {\n                container = container.parentElement;\n            }\n            if (!container) return html;\n\n            var divId = container.id.replace(/-ww-rs$/, '');\n            var saved = _state.answers[divId] || _state.answers[container.id];\n            if (!saved || !saved.answer) return html;\n\n            var answerObj;\n            try { answerObj = JSON.parse(saved.answer); } catch (e) { return html; }\n            if (!answerObj || !answerObj.answers) return html;\n\n            var answers = answerObj.answers;\n            var keys = Object.keys(answers);\n            if (keys.length === 0) return html;\n\n            var doc = new DOMParser().parseFromString(html, 'text/html');\n            var injected = [];\n\n            keys.forEach(function (k) {\n                var input = doc.getElementById(k);\n                if (!input) return;\n                var cur = input.getAttribute('value');\n                // Only inject when absent or empty; trust the server value otherwise.\n                if (cur === null || cur === '') {\n                    input.setAttribute('value', String(answers[k]));\n                    injected.push(k);\n                }\n            });\n\n            if (injected.length > 0) {\n                html = '<!DOCTYPE html>' + doc.documentElement.outerHTML;\n            }\n\n            // After the iframe loads, drive MathQuill's overlay display via its API.\n            // Setting the HTML value= attribute alone is not enough: MathQuill manages\n            // its own overlay spans and re-initialises them from the <input> on load.\n            // window.MathQuill (the v2 interface) and window.answerQuills (WeBWorK's\n            // per-answer MathField registry) are both available at this point.\n            iframe.addEventListener('load', function () {\n                setTimeout(function () {\n                    try {\n                        var iWin = iframe.contentWindow;\n                        var iDoc = iframe.contentDocument;\n                        if (!iWin || !iDoc) return;\n\n                        var answerQuills = iWin.answerQuills;\n\n                        // Resolve the MathQuill v2 interface.  In this WeBWorK version\n                        // window.MathQuill IS the interface (not the factory), so we use\n                        // .MathField(el) rather than calling MQI(el) directly.\n                        var MQraw = iWin.MathQuill || iWin.MQ;\n                        var MQI = MQraw\n                            ? (typeof MQraw.getInterface === 'function' ? MQraw.getInterface(2) : MQraw)\n                            : null;\n\n                        function getMathField(inp) {\n                            if (!MQI) return null;\n                            if (typeof MQI.MathField === 'function') return MQI.MathField(inp);\n                            if (typeof MQI === 'function')            return MQI(inp);\n                            return null;\n                        }\n\n                        var restored = [];\n                        keys.forEach(function (k) {\n                            var val = String(answers[k]);\n\n                            // Try WeBWorK's answerQuills registry first (MathField stored\n                            // as a named property on the wrapper object).\n                            var aq = answerQuills && answerQuills[k];\n                            if (aq) {\n                                var mqf = aq.mathField || aq.mathfield || aq.mq || aq._mathField;\n                                if (mqf && typeof mqf.latex === 'function') {\n                                    try { mqf.latex(val); restored.push(k); return; } catch (e) {}\n                                }\n                                if (typeof aq.setLatex === 'function') {\n                                    try { aq.setLatex(val); restored.push(k); return; } catch (e) {}\n                                }\n                                if (typeof aq.latex === 'function') {\n                                    try { aq.latex(val); restored.push(k); return; } catch (e) {}\n                                }\n                            }\n\n                            var inp = iDoc.getElementById(k);\n                            if (!inp) return;\n\n                            // Fall back to MathQuill API on the input element.\n                            try {\n                                var mf = getMathField(inp);\n                                if (mf && typeof mf.latex === 'function') {\n                                    mf.latex(val); restored.push(k); return;\n                                }\n                            } catch (e) { /* fall through */ }\n\n                            // Last resort: plain value assignment for non-MathQuill inputs.\n                            inp.value = val;\n                            inp.dispatchEvent(new Event('input', { bubbles: true }));\n                            restored.push(k);\n                        });\n\n                        if (restored.length > 0) {\n                            console.log('[PTX-SCORM] WeBWorK: restored \"' + divId + '\" (' + restored.join(', ') + ').');\n                        } else {\n                            console.warn('[PTX-SCORM] WeBWorK: no answer inputs found for \"' + divId + '\".');\n                        }\n                    } catch (e) {\n                        console.error('[PTX-SCORM] WeBWorK post-load error:', e);\n                    }\n                }, 150);\n            }, { once: true });\n\n            return html;\n        } catch (e) {\n            console.error('[PTX-SCORM] WeBWorK srcdoc patch error:', e);\n            return html;\n        }\n    }\n\n    /**\n     * Override HTMLIFrameElement.prototype.srcdoc so that whenever\n     * pretext-webwork.js sets iframe content on a .problem-iframe element,\n     * we inject the saved answer into the <input value=\"\"> before MathQuill\n     * initialises.  This is the synchronous counterpart to Runestone's own\n     * DOM patching in pretext-webwork.js lines 223-240.\n     */\n    function installWeBWorKSrcdocIntercept() {\n        var proto = HTMLIFrameElement.prototype;\n        var desc = Object.getOwnPropertyDescriptor(proto, 'srcdoc');\n        if (!desc || !desc.set) {\n            console.warn('[PTX-SCORM] Cannot intercept iframe.srcdoc — descriptor unavailable.');\n            return;\n        }\n        var originalSet = desc.set;\n        Object.defineProperty(proto, 'srcdoc', {\n            configurable: true,\n            get: desc.get,\n            set: function (html) {\n                if (this.classList && this.classList.contains('problem-iframe')) {\n                    html = patchWeBWorKSrcdoc(this, html);\n                }\n                originalSet.call(this, html);\n            }\n        });\n        console.log('[PTX-SCORM] WeBWorK srcdoc intercept installed.');\n    }\n\n    /**\n     * Parse one WeBWorK AJAX response and call recordInteraction() if it is a\n     * student submission.  Called from the jQuery ajaxComplete handler below.\n     */\n    function handleWeBWorKAjaxResponse(xhr) {\n        var responseText = xhr && xhr.responseText;\n        if (!responseText) return;\n\n        var data;\n        try { data = JSON.parse(responseText); } catch (e) { return; }\n\n        // Identify WeBWorK grading responses by their distinctive structure\n        if (!data || !data.rh_result || !data.rh_result.answers) return;\n        if (!data.inputs_ref) return;\n\n        // Skip \"show correct answer\" (reveal) requests — these are not student submissions\n        if (data.inputs_ref.WWcorrectAnsOnly) return;\n\n        // Resolve the Runestone component div_id from problemUUID.\n        // Embedded WeBWorK appends \"-ww-rs\" to the Runestone container id;\n        // strip that suffix to get the actual div_id used in _state.answers.\n        var wwId = data.inputs_ref.problemUUID || '';\n        if (!wwId) return;\n        var divId = wwId.replace(/-ww-rs$/, '');\n\n        var rhAnswers = data.rh_result.answers;\n        var keys = Object.keys(rhAnswers);\n        if (keys.length === 0) return;\n\n        // ── Calculate overall score ───────────────────────────────────────────\n        // Each answer part has a 0–1 score.  Overall percent = mean of parts.\n        var totalScore = 0;\n        var numCorrect = 0;\n        keys.forEach(function (key) {\n            var partScore = parseFloat(rhAnswers[key].score) || 0;\n            totalScore += partScore;\n            if (partScore >= 1) numCorrect++;\n        });\n        var percent = totalScore / keys.length;\n\n        // ── Reconstruct answerObj (matches Runestone's this.answerObj) ────────\n        // Newer WeBWorK (2.20+) stores student answers in inputs_ref[key].\n        // Older versions (2.16–2.18) store them in rh_result.answers[key].student_value\n        // or rh_result.answers[key].original_student_ans.\n        // MathQuill answers are keyed \"MaThQuIlL_<key>\" and go into mqAnswers.\n        var answerValues = {};\n        var mqAnswerValues = {};\n        keys.forEach(function (key) {\n            var part = rhAnswers[key];\n            var studentAns = (data.inputs_ref[key] != null)\n                ? data.inputs_ref[key]\n                : (part.student_value || part.original_student_ans || '');\n\n            if (key.indexOf('MaThQuIlL_') === 0) {\n                mqAnswerValues[key] = studentAns;\n            } else {\n                answerValues[key] = studentAns;\n            }\n        });\n        var answerObj = { answers: answerValues, mqAnswers: mqAnswerValues };\n\n        // ── Build actString matching pretext-webwork.js format ────────────────\n        // Format: \"check:actual:N:expected:M:correct:K:count:T:pct:P\"\n        var actString = 'check:actual:' + numCorrect +\n                        ':expected:' + keys.length +\n                        ':correct:' + numCorrect +\n                        ':count:' + keys.length +\n                        ':pct:' + percent.toFixed(4);\n\n        console.log('[PTX-SCORM] WeBWorK AJAX response intercepted — div_id: \"' + divId +\n                    '\", score: ' + (percent * 100).toFixed(0) + '%');\n\n        try {\n            recordInteraction({\n                event:   'webwork',\n                div_id:  divId,\n                act:     actString,\n                answer:  JSON.stringify(answerObj),\n                percent: percent\n            });\n        } catch (err) {\n            console.error('[PTX-SCORM] Error recording WeBWorK event:', err);\n        }\n    }\n\n    /**\n     * Register the jQuery ajaxComplete listener that drives handleWeBWorKAjaxResponse.\n     *\n     * jQuery is loaded by the Runestone bundle asynchronously; at DOMContentLoaded it\n     * may or may not be available yet.  We try immediately, then fall back to\n     * window \"load\" (fired after all scripts have executed).\n     *\n     * We guard the actual interception on eBookConfig.username === '' so that we\n     * never double-count in a Runestone-logged-in context (where runestone_ww_check\n     * would fire AND we would also see the AJAX response).\n     */\n\n    function installWeBWorKAjaxIntercept() {\n        // Tracks which jQuery XHR objects correspond to student \"check\" submissions.\n        // ajaxComplete fires for ALL jQuery AJAX calls — including the automatic\n        // \"render problem\" request that WeBWorK makes on activation, which also\n        // returns rh_result.answers (the correct answer key, not a student submission).\n        // We use ajaxSend to inspect the outgoing request parameters and mark only\n        // genuine check submissions, then ignore everything else in ajaxComplete.\n        // Plain arrays (not Set) for maximum compatibility — short-lived entries only.\n        var _pendingChecks = [];\n\n\n        function doInstall() {\n            if (!window.jQuery) return false;\n\n            // Only intercept when Runestone services are off (SCORM context).\n            // If someone is logged in to Runestone, runestone_ww_check will fire\n            // and our logBookEvent hook (Section 9) handles it — no need for AJAX interception.\n            var runestoneLoggedIn = (typeof eBookConfig !== 'undefined' && eBookConfig.username !== '');\n            if (runestoneLoggedIn) {\n                console.log('[PTX-SCORM] Runestone login detected — WeBWorK AJAX intercept skipped.');\n                return true;\n            }\n\n            // ajaxSend fires before the request is sent.  Inspect the posted form data\n            // (URL-encoded string) to identify WeBWorK \"Check Answers\" submissions.\n            //\n            // pretext-webwork.js uses two different calls to the WeBWorK render_rpc endpoint:\n            //   Init/activation (no action arg): answersSubmitted=0  — renders the problem UI\n            //   Student check  (action=\"check\"): answersSubmitted=1  — grades the answers\n            //   Reveal answer  (action=\"reveal\"): answersSubmitted=1 + WWcorrectAnsOnly=1\n            //\n            // Note: \"action\" is a local JS variable in handleWW(), NOT a form field.\n            // The correct discriminator in the request body is answersSubmitted.\n            jQuery(document).on('ajaxSend', function (event, xhr, settings) {\n                try {\n                    var urlData = settings.data;\n                    if (typeof urlData !== 'string') return;\n                    var params = new URLSearchParams(urlData);\n                    // answersSubmitted=1 means student submitted; WWcorrectAnsOnly=1 means reveal\n                    if (params.get('answersSubmitted') === '1' && !params.get('WWcorrectAnsOnly')) {\n                        _pendingChecks.push(xhr);\n                    } else if (params.get('answersSubmitted') === '0' && params.get('problemUUID')) {\n                        // Init/activation call.  Pre-seed saved answer values so WeBWorK renders\n                        // the inputs with value=\"...\" baked into the HTML.  Step 2 (patchWeBWorKSrcdoc\n                        // post-load) then drives MathQuill to display those values visually.\n                        var problemUUID = params.get('problemUUID');\n                        var divId = problemUUID.replace(/-ww-rs$/, '');\n                        var saved = _state.answers[divId] || _state.answers[problemUUID];\n                        if (saved && saved.answer) {\n                            try {\n                                var ansObj = JSON.parse(saved.answer);\n                                if (ansObj && ansObj.answers) {\n                                    var ansKeys = Object.keys(ansObj.answers);\n                                    if (ansKeys.length > 0) {\n                                        ansKeys.forEach(function (k) {\n                                            params.set(k, String(ansObj.answers[k]));\n                                        });\n                                        // Do NOT set WWsubmit=1: submitted-state rendering causes\n                                        // MathQuill to re-init from an empty <input>, overwriting the\n                                        // pre-rendered overlay spans with a blank widget (\"flash then blank\").\n                                        // Instead we send a fresh render with the values pre-populated and\n                                        // inject via MathQuill API after the iframe loads (patchWeBWorKSrcdoc).\n                                        settings.data = params.toString();\n                                        console.log('[PTX-SCORM] WeBWorK init: pre-seeded form for \"' + divId + '\" — keys: ' + ansKeys.join(', '));\n                                    }\n                                }\n                            } catch (e) { /* leave data unmodified on error */ }\n                        }\n                    }\n                } catch (e) { /* ignore parse errors */ }\n            });\n\n            // ajaxComplete fires after every request (success or error).\n            // Only process requests we marked in ajaxSend above.\n            jQuery(document).on('ajaxComplete', function (event, xhr) {\n                var checkIdx = _pendingChecks.indexOf(xhr);\n                if (checkIdx !== -1) {\n                    _pendingChecks.splice(checkIdx, 1);\n                    try { handleWeBWorKAjaxResponse(xhr); } catch (err) {\n                        console.error('[PTX-SCORM] Error in WeBWorK AJAX handler:', err);\n                    }\n                }\n            });\n\n            console.log('[PTX-SCORM] WeBWorK AJAX intercept registered (check-action only).');\n            return true;\n        }\n\n        if (!doInstall()) {\n            // jQuery not yet available — retry after all scripts have loaded\n            window.addEventListener('load', doInstall);\n        }\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 13 — ANSWER RESTORATION\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // Runestone normally fetches each student's saved answer from the Runestone\n    // Academy server in RunestoneBase.checkServer().  A SCORM package has no\n    // such server, so the original checkServer falls through to checkLocalStorage()\n    // — which is empty when the student opens the page in a new browser session.\n    //\n    // We solve this by:\n    //   1. Calling SCORM Initialize() eagerly at DOMContentLoaded so we can read\n    //      cmi.suspend_data before any Runestone component calls checkServer.\n    //   2. Building a \"restore map\" from _state.answers (which is persisted in\n    //      suspend_data): a plain object keyed by div_id whose values match the\n    //      data shape that restoreAnswers() expects — {answer, correct, percent, div_id}.\n    //   3. Monkey-patching RunestoneBase.prototype.checkServer so that, if we have\n    //      a saved answer for a component, we call its restoreAnswers() directly\n    //      instead of going to the (absent) server.\n    //\n    // WHY suspend_data AND NOT cmi.interactions.*\n    // -------------------------------------------\n    // cmi.interactions.* would seem like the natural place to read saved answers\n    // from — after all, that is where we write them.  The problem is that the SCORM\n    // spec allows (and many LMSes implement) resetting cmi.interactions at the start\n    // of each new attempt, so a student who opens the course a second time would see\n    // an empty interactions collection and get no answers restored.\n    //\n    // cmi.suspend_data is explicitly defined in the SCORM spec as a persistent store\n    // for SCO state and is guaranteed to survive across sessions.  We therefore store\n    // the answers map in _state.answers (part of suspend_data) in addition to writing\n    // individual records to cmi.interactions.* (for the LMS grade-book display).\n    //\n    // TIMING: Runestone lazy-loads component code via webpack dynamic imports.\n    // checkServer() is therefore called asynchronously — well after DOMContentLoaded\n    // has fired.  Our patched checkServer is installed synchronously during the\n    // DOMContentLoaded handler, so it is always in place before any component runs.\n    //\n    // ANSWER FORMAT: ev.answer is stored in _state.answers[divId].answer.  For\n    // compound types (FITB arrays, Parsons arrangements) this is the JSON-stringified\n    // form that Runestone wrote; restoreAnswers() calls JSON.parse() internally so\n    // the round-trip is transparent.\n    //\n    // NOTE ON STORAGE SIZE: cmi.suspend_data is typically limited to 4096 characters\n    // by the SCORM spec (though many LMSes allow more).  For assignments with many\n    // long answers (e.g. verbose short-answer responses) this limit could be reached.\n    // In practice, auto-graded exercise answers (MC selections, Parsons orderings, etc.)\n    // are short and this limit is rarely hit for realistic assignments.\n\n    /**\n     * loadRestoreData() — Initialize SCORM eagerly and return a map of saved answers.\n     *\n     * Reads the answers map from cmi.suspend_data (where recordInteraction() stored it).\n     * Called at DOMContentLoaded so the session is open and _state is fully populated\n     * before Runestone's components call checkServer() (which happens asynchronously,\n     * but always after DOMContentLoaded).\n     *\n     * After this call, initSession() is effectively a no-op (it guards on _initialized).\n     *\n     * Returns {divId: {answer, correct, percent, div_id}} for every previously answered\n     * question, or {} if this is the student's first visit.\n     */\n    function loadRestoreData() {\n        if (!_api) return {};\n\n        // Open the SCORM session.  Error 103 (\"already initialized\") is harmless —\n        // it means another frame already called Initialize() and we can proceed.\n        var initResult = (_ver === '2004') ? _api.Initialize('') : _api.LMSInitialize('');\n        var err = lastError();\n        if (initResult !== 'true' && err !== '103') {\n            console.warn('[PTX-SCORM] Initialize() failed during restore (error=' + err + ').');\n            return {};\n        }\n        _initialized = true;\n\n        // Cache the learner ID now that the session is open.  This is used as part\n        // of the localStorage key so different students on the same browser are kept\n        // separate.  (SCORM read calls only work after Initialize().)\n        _learnerId = (_ver === '2004')\n            ? Get('cmi.learner_id')\n            : Get('cmi.core.student_id');\n\n        // cmi.entry (2004) / cmi.core.entry (1.2) tells us how the LMS launched this\n        // session:\n        //   \"ab-initio\" — fresh start; the LMS has reset all runtime data\n        //   \"resume\"    — the LMS is resuming a suspended attempt; data should be intact\n        //   \"\"          — first visit, or the LMS does not distinguish\n        //\n        // If we see \"ab-initio\" on a return visit it confirms the LMS started a new\n        // attempt (and has already cleared suspend_data).  We log it here so that\n        // unexpected data-loss can be diagnosed by looking at the console.\n        var entry = Get(_ver === '2004' ? 'cmi.entry' : 'cmi.core.entry');\n        console.log('[PTX-SCORM] Session entry mode: ' + (entry || '(empty — first visit or LMS omits field)'));\n\n        // ── Restore state — try suspend_data first, then localStorage ─────────\n        //\n        // We attempt both stores and use whichever has more saved answers,\n        // because different LMSes behave differently:\n        //\n        //   • Some LMSes (Moodle, SCORM Cloud) persist suspend_data across sessions\n        //     → suspend_data will have the answers.\n        //   • Canvas and others reset suspend_data at the start of each new session\n        //     → suspend_data will be empty; localStorage has the answers.\n        //   • First visit: both are empty — student starts fresh.\n        //\n        // We also read from localStorage when suspend_data is present so that a\n        // student who answered on two devices gets the union of both sets of answers\n        // (or the richer one, since we pick whichever has more keys).\n\n        // --- suspend_data ---\n        var raw = Get('cmi.suspend_data');\n        console.log('[PTX-SCORM] suspend_data raw value: ' + (raw || '(empty)'));\n        if (raw) {\n            try {\n                var saved = JSON.parse(raw);\n                console.log('[PTX-SCORM] suspend_data parsed — answers keys: ' +\n                            JSON.stringify(Object.keys(saved.answers || {})));\n                if (typeof saved.correct === 'number') _state.correct = saved.correct;\n                if (typeof saved.graded  === 'number') _state.graded  = saved.graded;\n                if (saved.answers && typeof saved.answers === 'object') {\n                    _state.answers = saved.answers;\n                }\n            } catch (e) {\n                console.warn('[PTX-SCORM] Could not parse suspend_data:', e);\n            }\n        }\n\n        // --- localStorage ---\n        // Use localStorage data when it has more answers than suspend_data\n        // (e.g. suspend_data was just reset by the LMS at session start).\n        var lsData = loadFromLocalStorage();\n        if (lsData && lsData.answers) {\n            var lsCount = Object.keys(lsData.answers).length;\n            var sdCount = Object.keys(_state.answers).length;\n            if (lsCount > sdCount) {\n                if (typeof lsData.correct === 'number') _state.correct = lsData.correct;\n                if (typeof lsData.graded  === 'number') _state.graded  = lsData.graded;\n                _state.answers = lsData.answers;\n                console.log('[PTX-SCORM] Using localStorage state (' + lsCount +\n                            ' answers — more than suspend_data\\'s ' + sdCount + ').');\n            }\n        }\n\n        // ── Set session interaction index from LMS ───────────────────────────\n        //\n        // cmi.interactions._count is the number of interactions already recorded in\n        // this session.  Using it as the starting iCount ensures new answers are\n        // appended rather than overwriting slots that were already written this session.\n        // We do NOT carry over iCount from suspend_data here — in a new attempt the\n        // LMS has reset interactions to 0 and we must start from there.\n        var lmsCount = parseInt(Get('cmi.interactions._count') || '0', 10);\n        _state.iCount = isNaN(lmsCount) ? 0 : lmsCount;\n\n        // ── Mark the SCO \"incomplete\" on very first visit ─────────────────────\n        //\n        // \"incomplete\" signals \"the student has opened this content but not yet\n        // finished\".  We set it here so the LMS doesn't keep showing \"not attempted\"\n        // after the student's first page load, even before they answer anything.\n        var completionKey = (_ver === '2004') ? 'cmi.completion_status' : 'cmi.core.lesson_status';\n        var currentStatus = Get(completionKey);\n        if (currentStatus === 'not attempted' || currentStatus === 'unknown' || currentStatus === '') {\n            Set(completionKey, 'incomplete');\n            Commit();\n        }\n\n        // ── Build restore map from saved answers ─────────────────────────────\n        //\n        // _state.answers holds every answer the student has ever submitted, keyed by\n        // div_id.  Turn it into the shape that installRestoreHook/restoreAnswers expect.\n        var map = {};\n        var divIds = Object.keys(_state.answers || {});\n\n        divIds.forEach(function (divId) {\n            var entry = _state.answers[divId];\n            var restoreEntry = {\n                answer:  entry.answer,\n                correct: entry.correct,\n                percent: entry.percent,\n                div_id:  divId\n            };\n            map[divId] = restoreEntry;\n            // WeBWorK: we strip the '-ww-rs' suffix when saving (from inputs_ref.problemUUID)\n            // but the Runestone component's this.divid retains the suffix in the DOM.\n            // Add both keys so the restore hook fires regardless of which form is used.\n            if (divId.indexOf('-ww-rs') === -1) {\n                map[divId + '-ww-rs'] = restoreEntry;\n            }\n        });\n\n        // ── Re-report accumulated score to LMS ───────────────────────────────\n        //\n        // Without this the LMS shows 0 (or the new-session default) until the\n        // student explicitly answers another question.  Re-reporting here keeps the\n        // grade book accurate even when the student only reviews the page.\n        //\n        // _totalQuestions is already set: countPageQuestions() runs just before this\n        // function in the DOMContentLoaded handler.\n        if (_state.graded > 0) {\n            var denom = _totalQuestions > 0 ? _totalQuestions : _state.graded;\n            var restoredScaled = _state.correct / denom;\n\n            if (_ver === '2004') {\n                Set('cmi.score.scaled', restoredScaled.toFixed(4));\n                Set('cmi.score.raw',    (restoredScaled * 100).toFixed(1));\n                Set('cmi.score.min',    '0');\n                Set('cmi.score.max',    '100');\n            } else {\n                Set('cmi.core.score.raw', (restoredScaled * 100).toFixed(1));\n            }\n            // Write back the full _state (now including the restored answers map)\n            // so suspend_data is always coherent with what we have in memory.\n            Set('cmi.suspend_data', JSON.stringify(_state));\n            Commit();\n\n            console.log('[PTX-SCORM] Restored score: ' +\n                        (restoredScaled * 100).toFixed(0) + '%' +\n                        '  (' + _state.correct.toFixed(2) + ' / ' + denom + ')' +\n                        '  [' + _state.graded + ' answered, ' + _totalQuestions + ' total]');\n        }\n\n        var n = Object.keys(map).length;\n        if (n === 0) {\n            console.log('[PTX-SCORM] No saved answers found (first visit or no prior submissions).');\n        } else {\n            console.log('[PTX-SCORM] Loaded ' + n + ' saved answer(s) for UI restoration.');\n        }\n        return map;\n    }\n\n    /**\n     * installRestoreHook(restoreMap) — Patch checkServer to restore SCORM answers.\n     *\n     * RunestoneBase.prototype.checkServer is the method each Runestone component\n     * calls during initialization to fetch the student's previously saved answer.\n     * We replace it with a version that consults restoreMap first.\n     *\n     * If we have SCORM data for a component:\n     *   - Call component.restoreAnswers(data) with the saved answer.\n     *   - Call component.setLocalStorage(data) so the answer is also cached in\n     *     the browser, enabling the component's own internal restore logic.\n     *   - Call component.decorateStatus() to show the correct/incorrect indicator.\n     *\n     * If we have no data for a component (e.g. the student never answered it):\n     *   - Fall through to the original checkServer, which calls checkLocalStorage().\n     *\n     * The checkServerComplete Promise is created and resolved in both paths so\n     * that any Runestone code awaiting component initialization can proceed.\n     */\n    function installRestoreHook(restoreMap) {\n        if (!window.RunestoneBase || window.RunestoneBase.__ptxScormRestoreHooked) return;\n\n        var n = Object.keys(restoreMap).length;\n        if (n === 0) {\n            console.log('[PTX-SCORM] Skipping restore hook (no saved answers).');\n            return;\n        }\n\n        var originalCheckServer = window.RunestoneBase.prototype.checkServer;\n\n        window.RunestoneBase.prototype.checkServer = function (event, skipSelf) {\n            var self = this;\n\n            // checkServerComplete is a Promise that Runestone uses to sequence\n            // component setup steps.  We must create and resolve it whether or\n            // not we have SCORM data for this component.\n            this.checkServerComplete = new Promise(function (resolve) {\n                self.csresolver = resolve;\n            });\n\n            var data = restoreMap[this.divid];\n\n            if (data !== undefined && data.answer) {\n                // ── Restore from SCORM ──────────────────────────────────────────\n                try {\n                    // WeBWorK stores answerObj as a JSON string (since recordInteraction\n                    // always stringifies the answer).  WeBWorK's restoreAnswers(e) does\n                    // `this.answers = e.answer` and expects the parsed object, not the\n                    // string.  We detect WeBWorK components by checking the DOM element\n                    // and parse the answer back to an object before calling restoreAnswers.\n                    var restoreData = data;\n                    var compEl = document.getElementById(this.divid);\n                    var isWeBWorK = compEl &&\n                                    compEl.getAttribute('data-component') === 'webwork';\n                    if (isWeBWorK && typeof data.answer === 'string') {\n                        try {\n                            var parsed = JSON.parse(data.answer);\n                            if (parsed && typeof parsed === 'object' && parsed.answers) {\n                                restoreData = { answer: parsed, correct: data.correct,\n                                                percent: data.percent, div_id: data.div_id };\n                            }\n                        } catch (e) { /* leave as string if parse fails */ }\n                    }\n\n                    // Repopulate the component's UI with the saved answer.\n                    this.restoreAnswers(restoreData);\n\n                    // restoreAnswers() repopulates the UI (e.g. checks the right\n                    // radio buttons) but most components do NOT set their internal\n                    // result properties (this.correct, this.percent, this.answer)\n                    // from the data argument.  decorateStatus() reads those properties\n                    // to decide which badge to show, so we set them explicitly here.\n                    if (data.correct !== null && data.correct !== undefined) {\n                        this.correct = data.correct;\n                    }\n                    if (data.percent !== null && data.percent !== undefined) {\n                        this.percent = data.percent;\n                    }\n                    // Use restoreData.answer so WeBWorK gets the parsed object form\n                    if (restoreData.answer) {\n                        this.answer = restoreData.answer;\n                    }\n\n                    // Cache the answer in localStorage so the component's own\n                    // internal machinery (which may read localStorage later) also\n                    // sees the restored state.  Pass restoreData so WeBWorK caches\n                    // the parsed answerObj rather than the raw JSON string.\n                    if (typeof this.setLocalStorage === 'function') {\n                        this.setLocalStorage(restoreData);\n                    }\n                } catch (err) {\n                    // Restoration failed for this component; let Runestone try\n                    // its own fallback (localStorage) rather than showing nothing.\n                    console.error('[PTX-SCORM] restoreAnswers failed for \"' + this.divid + '\":', err);\n                    return originalCheckServer.call(this, event, skipSelf);\n                }\n\n                // decorateStatus() is called OUTSIDE the main try-catch so that a failure\n                // here (e.g. WeBWorK iframe not yet rendered before activation) does not\n                // cause us to fall back to originalCheckServer and lose the restored answer.\n                // The badge will appear after the student's next submission if this fails.\n                try {\n                    if (typeof this.decorateStatus === 'function') {\n                        this.decorateStatus();\n                    }\n                } catch (e) { /* WeBWorK: iframe not yet active — badge deferred */ }\n\n                var statusLabel = data.correct === true  ? 'correct'\n                                : data.correct === false ? 'incorrect'\n                                : 'neutral';\n                console.log('[PTX-SCORM] Restored \"' + this.divid + '\" (' + statusLabel + ').');\n            } else {\n                // ── No SCORM answer; use original Runestone flow ──────────────\n                // This handles: components the student never answered, and any\n                // answers that may have been cached in localStorage this session.\n                return originalCheckServer.call(this, event, skipSelf);\n            }\n\n            // Resolve the promise so downstream Runestone initialization can proceed.\n            if (typeof this.csresolver === 'function') this.csresolver();\n        };\n\n        window.RunestoneBase.__ptxScormRestoreHooked = true;\n        console.log('[PTX-SCORM] Restore hook installed (' + n + ' saved answers available).');\n    }\n\n\n    // ═══════════════════════════════════════════════════════════════════════\n    // SECTION 14 — PAGE-UNLOAD SAVE\n    // ═══════════════════════════════════════════════════════════════════════\n    //\n    // When the learner navigates away from a page (clicking the Next button,\n    // closing the browser tab, etc.) we want to make sure any buffered writes\n    // are flushed to the LMS before the page is destroyed.\n    //\n    // IMPORTANT: We call Commit() here but NOT Terminate()/LMSFinish().\n    // Terminate() would close the SCORM session entirely, which would prevent\n    // the learner from resuming later.  We only terminate when the learner\n    // explicitly exits the course (which the LMS typically handles itself).\n\n    window.addEventListener('beforeunload', function () {\n        if (!_initialized) return;\n\n        // Re-save the current state in case anything changed since the last Commit.\n        // We write to both stores: suspend_data for LMSes that preserve it across\n        // sessions, and localStorage for LMSes (like Canvas) that reset suspend_data.\n        var json = JSON.stringify(_state);\n        Set('cmi.suspend_data', json);\n\n        // Set cmi.exit = \"suspend\" — the standard SCORM signal meaning \"save this\n        // attempt and resume it next time the student opens this content.\"\n        //\n        // Without this the LMS may treat the next visit as a new attempt (ab-initio)\n        // and clear all saved data.  Combined with keeping completion_status as\n        // \"incomplete\" (never \"completed\"), this gives Canvas the clearest possible\n        // signal to preserve suspend_data across sessions.\n        //\n        // SCORM 2004: cmi.exit  (valid values: suspend, logout, time-out, \"\")\n        // SCORM 1.2:  cmi.core.exit  (valid values: suspend, logout, time-out, \"\")\n        Set(_ver === '2004' ? 'cmi.exit' : 'cmi.core.exit', 'suspend');\n\n        Commit();\n        saveToLocalStorage();\n        console.log('[PTX-SCORM] Page unloading — state saved. exit=suspend set.');\n    });\n\n})();  // end IIFE — no symbols leak into the global scope\n"
  },
  {
    "path": "js/ptx_search.js",
    "content": "function doSearch() {\n    // Get the search terms from the input text box\n    let terms = document.getElementById(\"ptxsearch\").value;\n    // Where do we want to put the results?\n    let resultArea = document.getElementById(\"searchresults\")\n    resultArea.innerHTML = \"\";  // clear out any previous results\n    // do the search using the provided index\n    let pageResult = ptx_lunr_idx.search(terms);\n    // Number the documents from first to last so we can order the results by their\n    // position in the book.\n    snum = 0;\n    for (let doc of ptx_lunr_docs) {\n        doc.snum = snum;\n        snum += 1;\n    }\n    // Transfer meta data from the document to the results to make it easy to add \n    // our lists later.\n    augmentResults(pageResult, ptx_lunr_docs);\n    addResultToPage(pageResult, ptx_lunr_docs, resultArea);\n    MathJax.typeset();\n}\n\n// Find the entry for a search result in the original document index\nfunction findEntry(resultId, db) {\n    for (const page of db) {\n        if (page.id === resultId) {\n            return page;\n        }\n    }\n    return resultId;\n}\n\nfunction augmentResults(result, docs) {\n    for (let res of result) {\n        let info = findEntry(res.ref, docs);\n        res.number = info.number;\n        res.type = info.type;\n        res.title = info.title;\n        res.url = info.url;\n        res.level = info.level;\n        res.snum = info.snum;\n    }\n}\n\n\nfunction comparePosition(a, b) {\n    if (a.snum < b.snum) {\n        return -1;\n    }\n    if (a.snum > b.snum) {\n        return 1;\n    }\n    return 0;\n}\n\nfunction addResultToPage(result, docs, resultArea) {\n    let len = result.length\n    let high = result[Math.floor(len*0.25)].score;\n    let med = result[Math.floor(len*0.5)].score;\n    let low = result[Math.floor(len*0.75)].score;\n    // sort the results by their position in the book, not their score\n    result = result.sort(comparePosition)\n    let indent = \"1\";\n    let currIndent = indent;\n    let origResult = resultArea;\n    // Create list entries indenting as needed.  \n    for (const res of result) {\n        let link = document.createElement(\"a\")\n        // add a class so we can colorize the results based on their rank in terms\n        // of search score.\n        if (res.score >= high) {\n            link.classList.add(\"high_result\")\n        } else if (res.score >= med) {\n            link.classList.add(\"medium_result\")\n        } else if (res.score >= low) {\n            link.classList.add(\"low_result\")\n        }\n        currIndent = res.level;\n        if (currIndent > indent) {\n            indent = currIndent;\n            let ilist = document.createElement(\"ul\")\n            ilist.classList.add(\"detailed_result\");\n            resultArea.appendChild(ilist);\n            resultArea = ilist;\n        } else if (currIndent < indent) {\n            resultArea = origResult;\n            indent = currIndent;\n        }\n        let bullet = document.createElement(\"li\")\n        bullet.style.marginTop = \"5px\";\n        link.href = `${res.url}`;\n        link.innerHTML = `${res.type} ${res.number} ${res.title}`;\n        bullet.appendChild(link)\n        let p = document.createElement(\"text\");\n        p.innerHTML = `  (${res.score.toFixed(2)})`;\n        bullet.appendChild(p);\n        resultArea.appendChild(bullet);\n    }\n\n}\n\n\nfunction showHelp() {\n    let state = document.getElementById(\"helpme\").style.display;\n    if (state == \"none\") {\n        document.getElementById(\"helpme\").style.display = \"block\";\n        document.getElementById(\"helpbutt\").innerHTML = \"Hide Help\"\n    } else {\n        document.getElementById(\"helpme\").style.display = \"none\";\n        document.getElementById(\"helpbutt\").innerHTML = \"Show Help\"\n    }\n}\n"
  },
  {
    "path": "legal/gpl-license-v2.txt",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc.,\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicense is intended to guarantee your freedom to share and change free\nsoftware--to make sure the software is free for all its users.  This\nGeneral Public License applies to most of the Free Software\nFoundation's software and to any other program whose authors commit to\nusing it.  (Some other Free Software Foundation software is covered by\nthe GNU Lesser General Public License instead.)  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthis service if you wish), that you receive source code or can get it\nif you want it, that you can change the software or use pieces of it\nin new free programs; and that you know you can do these things.\n\n  To protect your rights, we need to make restrictions that forbid\nanyone to deny you these rights or to ask you to surrender the rights.\nThese restrictions translate to certain responsibilities for you if you\ndistribute copies of the software, or if you modify it.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must give the recipients all the rights that\nyou have.  You must make sure that they, too, receive or can get the\nsource code.  And you must show them these terms so they know their\nrights.\n\n  We protect your rights with two steps: (1) copyright the software, and\n(2) offer you this license which gives you legal permission to copy,\ndistribute and/or modify the software.\n\n  Also, for each author's protection and ours, we want to make certain\nthat everyone understands that there is no warranty for this free\nsoftware.  If the software is modified by someone else and passed on, we\nwant its recipients to know that what they have is not the original, so\nthat any problems introduced by others will not reflect on the original\nauthors' reputations.\n\n  Finally, any free program is threatened constantly by software\npatents.  We wish to avoid the danger that redistributors of a free\nprogram will individually obtain patent licenses, in effect making the\nprogram proprietary.  To prevent this, we have made it clear that any\npatent must be licensed for everyone's free use or not licensed at all.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                    GNU GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License applies to any program or other work which contains\na notice placed by the copyright holder saying it may be distributed\nunder the terms of this General Public License.  The \"Program\", below,\nrefers to any such program or work, and a \"work based on the Program\"\nmeans either the Program or any derivative work under copyright law:\nthat is to say, a work containing the Program or a portion of it,\neither verbatim or with modifications and/or translated into another\nlanguage.  (Hereinafter, translation is included without limitation in\nthe term \"modification\".)  Each licensee is addressed as \"you\".\n\nActivities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning the Program is not restricted, and the output from the Program\nis covered only if its contents constitute a work based on the\nProgram (independent of having been made by running the Program).\nWhether that is true depends on what the Program does.\n\n  1. You may copy and distribute verbatim copies of the Program's\nsource code as you receive it, in any medium, provided that you\nconspicuously and appropriately publish on each copy an appropriate\ncopyright notice and disclaimer of warranty; keep intact all the\nnotices that refer to this License and to the absence of any warranty;\nand give any other recipients of the Program a copy of this License\nalong with the Program.\n\nYou may charge a fee for the physical act of transferring a copy, and\nyou may at your option offer warranty protection in exchange for a fee.\n\n  2. You may modify your copy or copies of the Program or any portion\nof it, thus forming a work based on the Program, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) You must cause the modified files to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    b) You must cause any work that you distribute or publish, that in\n    whole or in part contains or is derived from the Program or any\n    part thereof, to be licensed as a whole at no charge to all third\n    parties under the terms of this License.\n\n    c) If the modified program normally reads commands interactively\n    when run, you must cause it, when started running for such\n    interactive use in the most ordinary way, to print or display an\n    announcement including an appropriate copyright notice and a\n    notice that there is no warranty (or else, saying that you provide\n    a warranty) and that users may redistribute the program under\n    these conditions, and telling the user how to view a copy of this\n    License.  (Exception: if the Program itself is interactive but\n    does not normally print such an announcement, your work based on\n    the Program is not required to print an announcement.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Program,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Program, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote it.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Program.\n\nIn addition, mere aggregation of another work not based on the Program\nwith the Program (or with a work based on the Program) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may copy and distribute the Program (or a work based on it,\nunder Section 2) in object code or executable form under the terms of\nSections 1 and 2 above provided that you also do one of the following:\n\n    a) Accompany it with the complete corresponding machine-readable\n    source code, which must be distributed under the terms of Sections\n    1 and 2 above on a medium customarily used for software interchange; or,\n\n    b) Accompany it with a written offer, valid for at least three\n    years, to give any third party, for a charge no more than your\n    cost of physically performing source distribution, a complete\n    machine-readable copy of the corresponding source code, to be\n    distributed under the terms of Sections 1 and 2 above on a medium\n    customarily used for software interchange; or,\n\n    c) Accompany it with the information you received as to the offer\n    to distribute corresponding source code.  (This alternative is\n    allowed only for noncommercial distribution and only if you\n    received the program in object code or executable form with such\n    an offer, in accord with Subsection b above.)\n\nThe source code for a work means the preferred form of the work for\nmaking modifications to it.  For an executable work, complete source\ncode means all the source code for all modules it contains, plus any\nassociated interface definition files, plus the scripts used to\ncontrol compilation and installation of the executable.  However, as a\nspecial exception, the source code distributed need not include\nanything that is normally distributed (in either source or binary\nform) with the major components (compiler, kernel, and so on) of the\noperating system on which the executable runs, unless that component\nitself accompanies the executable.\n\nIf distribution of executable or object code is made by offering\naccess to copy from a designated place, then offering equivalent\naccess to copy the source code from the same place counts as\ndistribution of the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  4. You may not copy, modify, sublicense, or distribute the Program\nexcept as expressly provided under this License.  Any attempt\notherwise to copy, modify, sublicense or distribute the Program is\nvoid, and will automatically terminate your rights under this License.\nHowever, parties who have received copies, or rights, from you under\nthis License will not have their licenses terminated so long as such\nparties remain in full compliance.\n\n  5. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Program or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Program (or any work based on the\nProgram), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Program or works based on it.\n\n  6. Each time you redistribute the Program (or any work based on the\nProgram), the recipient automatically receives a license from the\noriginal licensor to copy, distribute or modify the Program subject to\nthese terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties to\nthis License.\n\n  7. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Program at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Program by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Program.\n\nIf any portion of this section is held invalid or unenforceable under\nany particular circumstance, the balance of the section is intended to\napply and the section as a whole is intended to apply in other\ncircumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system, which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  8. If the distribution and/or use of the Program is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Program under this License\nmay add an explicit geographical distribution limitation excluding\nthose countries, so that distribution is permitted only in or among\ncountries not thus excluded.  In such case, this License incorporates\nthe limitation as if written in the body of this License.\n\n  9. The Free Software Foundation may publish revised and/or new versions\nof the General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Program\nspecifies a version number of this License which applies to it and \"any\nlater version\", you have the option of following the terms and conditions\neither of that version or of any later version published by the Free\nSoftware Foundation.  If the Program does not specify a version number of\nthis License, you may choose any version ever published by the Free Software\nFoundation.\n\n  10. If you wish to incorporate parts of the Program into other free\nprograms whose distribution conditions are different, write to the author\nto ask for permission.  For software which is copyrighted by the Free\nSoftware Foundation, write to the Free Software Foundation; we sometimes\nmake exceptions for this.  Our decision will be guided by the two goals\nof preserving the free status of all derivatives of our free software and\nof promoting the sharing and reuse of software generally.\n\n                            NO WARRANTY\n\n  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\nFOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\nOTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\nPROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\nOR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\nTO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\nPROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\nREPAIR OR CORRECTION.\n\n  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\nREDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\nINCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\nOUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\nTO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\nYOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\nPROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGES.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License along\n    with this program; if not, write to the Free Software Foundation, Inc.,\n    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n\nAlso add information on how to contact you by electronic and paper mail.\n\nIf the program is interactive, make it output a short notice like this\nwhen it starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C) year name of author\n    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, the commands you use may\nbe called something other than `show w' and `show c'; they could even be\nmouse-clicks or menu items--whatever suits your program.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the program, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the program\n  `Gnomovision' (which makes passes at compilers) written by James Hacker.\n\n  <signature of Ty Coon>, 1 April 1989\n  Ty Coon, President of Vice\n\nThis General Public License does not permit incorporating your program into\nproprietary programs.  If your program is a subroutine library, you may\nconsider it more useful to permit linking proprietary applications with the\nlibrary.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.\n"
  },
  {
    "path": "legal/gpl-license-v3.txt",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <http://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<http://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<http://www.gnu.org/philosophy/why-not-lgpl.html>.\n"
  },
  {
    "path": "pretext/README.md",
    "content": "PreTeXt `pretext` Python Package\n================================\n\n`pretext.py`\n------------\n\nA Python module to automate various aspects of manipulating\nPreTeXt source via XSL stylesheets and using external programs\non some of the results.\n\n`module-test.py`\n----------------\n\nA minimal example of using the `pretext` module to build\na Python application.\n\n`pretext`\n---------\n\nA Python \"helper\" script to do things XSL will not do, or cannot do easily.\n\nRequires Python 3.6, as of 2021-05-21.\n\nExecute  pretext -h  to see the various command-line options.\n\nExample: TikZ code for graphics images can be extracted and written\ninto \"standalone\" files with XSL, and then this script will continue\non to apply LaTeX to the files, creating a PDF, then optionally\nconvert these PDFS into other formats, e.g. creating  SVG images\nvia the  pyMuPDF library.\n\n`pretext.cfg`\n-------------\n\nAn INI-style configuration file, mostly for specifying the location,\nor choice, of executables necessary for the `pretext` script to\nperform various tasks.  Look inside the file for instructions on\nmaking, placing, and employing a customized version.\n\n**NEVER EDIT THE ORIGINAL VERSION OF** `pretext.cfg`\n\n`runestone`\n-----------\n\nSelected modules from RunestoneComponents to support the formulation of trace data for\nPython programs to CodeLens interactive programs written in Python.\n"
  },
  {
    "path": "pretext/__init__.py",
    "content": ""
  },
  {
    "path": "pretext/lib/__init__.py",
    "content": ""
  },
  {
    "path": "pretext/lib/braille_format.py",
    "content": "# ********************************************************************\n# Copyright 2010-2020 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n# *********************************************************************\n\n# A routine PreTeXt package/module, so\n# natural to import at the module level\n# needs warning if not available\nimport lxml.etree as ET\n\n# could import in a routine, but will do here in the module\n# Note: an import into the BRF class requires changes to the static method\ntry:\n    import louis\nexcept ImportError:\n    msg = 'The \"louis\" module, providing Python bindings for LibLouis, is required for Braille output.  See the PreTeXt Guide for instructions.'\n    raise ImportError(msg)\n\n# A  Cursor  object tracks location in a BRF file:\n# location in a line, line in a page, overall page number\n# It is initialized with the overall shape/body of a page\n# The location in a line is redundant given that it is easily\n# computable from the state of the line buffer.  But we can\n# base an assertion on a comparison of the two objects.  So\n# during active development we use both objects as a check\n# on the use of the line buffer.\n\nclass Cursor:\n\n    def __init__(self, width, height, page_format):\n        # page shape, dimensions, at creation time\n        self.page_width = width\n        self.page_height = height\n        # Finally, we interpret `page_format`\n        if page_format == 'emboss':\n            self.emboss = True\n        elif page_format == 'electronic':\n            self.emboss = False\n        else:\n            print(\"BUG: page format not recognized, so embossing\")\n            self.emboss = True\n        # we allow for variable length lines, in\n        # order to allow for insertion of page numbers\n        self.text_width = width\n        # initialize clean slate\n        # chars, lines are *remaining* room\n        # they will decrement to zero\n        self.chars_left = self.text_width\n        # Default brehavior is to form pages for embossing, which requires\n        # a lot of attention to page breaks and page numbers.  BUT, if we\n        # start with an absurd number of lines available, AND we never\n        # decrement the number of lines available then we will never think\n        # we are at the bottom of a page.  No page breaks, no adjustment of\n        # the page number, no writing out page numbers.   It is like the\n        # file is an infinitely long page.  See companion discussion\n        # at Cursor.advance_line().\n        if self.emboss:\n            self.lines_left = self.page_height\n        else:\n            self.lines_left = 2*self.page_height\n        # page_num is the page being produced\n        # increment as a new page begins\n        self.page_num = 1\n\n    # this includes the line currently under formation\n    def remaining_lines(self):\n        return self.lines_left\n\n    def remaining_characters(self):\n        return self.chars_left\n\n    def at_page_start(self):\n        return (self.chars_left == self.text_width) and (self.lines_left == self.page_height)\n\n    def page_number(self):\n        return self.page_num\n\n    def embossing(self):\n        return self.emboss\n\n    #########\n    # Actions\n    #########\n\n    def new_page(self):\n        # refresh lines remaining\n        self.lines_left = self.page_height\n        # increment page number\n        self.page_num += 1\n\n    def advance_line(self):\n        # decrement the lines available\n        # This is where we decrement the number of lines available\n        # on a page.  And it is the only place.  If not embossing,\n        # then no page, so we conspire to never change the lines\n        # available count.  It is like the file is an infinitely\n        # long page.  See companion discussion at Cursor.__init__().\n        if self.emboss:\n            self.lines_left -= 1\n        else:\n            pass\n\n        # Restore the number of available characters\n        self.chars_left = self.text_width\n\n        # falling off page end provokes new page\n        if self.lines_left == 0:\n            self.new_page()\n\n    # Note: it is possible to adjust text width\n    # while in the middle of forming a line\n    def adjust_text_width(self, adjustment):\n        self.text_width  += adjustment\n        self.chars_left  += adjustment\n\n    def advance(self, nchars):\n        # do not do this unless there is room\n        # does not provoke a new line\n        self.chars_left -= nchars\n        if self.chars_left < 0:\n            print(\"BUG: negative chars\")\n\n# The line buffer is used to break a long line of words into\n# a sequence of lines that fit width-wise on a braille page.\n# The orignal `fragment` is assumed to have no line-breaks.\n# As we fill the line buffer, some spaces become newlines.\n# So in the usual parlance this is \"text-wrapping\".  However,\n# we also manage automatic page breaks once a page is full.\n\n\nclass LineBuffer:\n\n    def __init__(self, width):\n        self.contents = ''\n        self.page_width = width\n        self.text_width = width\n\n    # Properties\n\n    def is_room(self, text):\n        return len(self.contents) + len(text) <= self.text_width\n\n    def is_empty(self):\n        return self.contents == ''\n\n    def remaining_chars(self):\n        return self.text_width - len(self.contents)\n\n    # Actions\n\n    def add(self, text):\n        self.contents += text\n\n    def adjust_text_width(self, adjustment):\n        self.text_width += adjustment\n\n    def flush(self, brf):\n        # Flushing the line buffer places the contents into\n        # the `out_buffer` of the BRF object provided.\n\n        # this does not write a newline character as we\n        # may want to end without provoking a new page\n        # Non-breaking spaces have done their job, and we\n        # do not want to see them in the BRF file.  Thanks,\n        # you are dismissed.\n        self.contents = self.contents.replace(\"\\xA0\", \" \")\n\n        # Unlikely a non-breaking space may be at the end of a line,\n        # but we do this in a particular order just in case.\n        # Remove trailing spaces which are important for spacing off\n        # mixed content, but can end up at the end of a line where they\n        # are not needed.  This does not harm line-breaking, since if\n        # another word would fit, then the space would need to be there.\n        if not(self.contents == '') and self.contents[-1] == \" \":\n            self.contents = self.contents[:-1]\n\n        # OK, the main event\n        brf.write(self.contents)\n        # Once written, reset contents\n        self.contents = ''\n\n\nclass Segment:\n\n    def __init__(self, s):\n\n        self.xml = s\n\n        # For switching from indentation to runover\n        self.first_line = True\n\n        # decipher, record attributes\n        attrs = s.attrib\n        if (\"newpage\" in attrs) and (attrs[\"newpage\"] == \"yes\"):\n            self.newpage = True\n        else:\n            self.newpage = False\n\n        if (\"ownpage\" in attrs) and (attrs[\"ownpage\"] == \"yes\"):\n            self.ownpage = True\n        else:\n            self.ownpage = False\n\n        if (\"centered\" in attrs) and (attrs[\"centered\"] == \"yes\"):\n            self.centered = True\n        else:\n            self.centered = False\n\n        if (\"breakable\" in attrs) and (attrs[\"breakable\"] == \"no\"):\n            self.breakable = False\n        else:\n            self.breakable = True\n\n        if \"indentation\" in attrs:\n            self.indentation = int(attrs[\"indentation\"])\n        else:\n            self.indentation = 0\n\n        if \"runover\" in attrs:\n            self.runover = int(attrs[\"runover\"])\n        else:\n            self.runover = 0\n\n        if \"lines-before\" in attrs:\n            self.lines_before = int(attrs[\"lines-before\"])\n        else:\n            self.lines_before = 0\n\n        if \"lines-after\" in attrs:\n            self.lines_after = int(attrs[\"lines-after\"])\n        else:\n            self.lines_after = 0\n\n        if \"lines-following\" in attrs:\n            self.lines_following = int(attrs[\"lines-following\"])\n        else:\n            self.lines_following = 0\n\n        if \"heading-id\" in attrs:\n            self.heading_id = attrs[\"heading-id\"]\n        else:\n            self.heading_id = None\n\n\nclass Block:\n\n    def __init__(self, b):\n\n        self.xml = b\n\n        # decipher, record attributes\n        attrs = b.attrib\n\n        if (\"newpage\" in attrs) and (attrs[\"newpage\"] == \"yes\"):\n            self.newpage = True\n        else:\n            self.newpage = False\n\n        if (\"ownpage\" in attrs) and (attrs[\"ownpage\"] == \"yes\"):\n            self.ownpage = True\n        else:\n            self.ownpage = False\n\n        if (\"breakable\" in attrs) and (attrs[\"breakable\"] == \"no\"):\n            self.breakable = False\n        else:\n            self.breakable = True\n\n        if \"lines-before\" in attrs:\n            self.lines_before = int(attrs[\"lines-before\"])\n        else:\n            self.lines_before = 0\n\n        if \"lines-after\" in attrs:\n            self.lines_after = int(attrs[\"lines-after\"])\n        else:\n            self.lines_after = 0\n\n        if \"lines-following\" in attrs:\n            self.lines_following = int(attrs[\"lines-following\"])\n        else:\n            self.lines_following = 0\n\n        if \"box\" in attrs:\n            self.box = attrs[\"box\"]\n        else:\n            self.box = None\n\n        if \"punctuation\" in attrs:\n            self.punctuation = attrs[\"punctuation\"]\n        else:\n            self.punctuation = None\n\n\nclass BRF:\n\n    # spaces prior to a page number, duplicated in Cursor\n    page_num_sep = 3\n\n    # Nemeth switch indicators, class variables for convenience\n    nemeth_open = \"\\u2838\\u2829\"\n    nemeth_close = \"\\u2838\\u2831\"\n\n    # We need to connect the \"trans1\" emphasis scheme of the liblouis\n    # \"en-ueb-g1.ctb\" table with a typeform bit we can use to switch\n    # to this variant when we translate inline code phrases\n    trans1_bit = louis.getTypeformForEmphClass([\"en-ueb-g2.ctb\"], 'trans1')\n\n    def __init__(self, page_format, width, height):\n        self.out_buffer = ''\n        self.accumulator = []\n        self.toc_dict = {}\n        self.toc_mode = False\n        self.cursor = Cursor(width, height, page_format)\n        self.line_buffer = LineBuffer(width)\n\n    # Properties (boolean functions) reported\n    # by the current line buffer or default/embedded cursor\n\n    def is_room_on_line(self, text):\n        return self.line_buffer.is_room(text)\n\n    def at_line_start(self):\n        return self.line_buffer.is_empty()\n\n    # Designed for segments and blocks, to avoid poor placement\n    # near a page break.  Key is a trial/sandbox BRF object and\n    # its associated cursor.\n    #\n    #  * Trial does not provoke a page break.  Good.\n    #  * Trial provokes two page breaks.  Too bad, nothing to be done.\n    #  * Trial provokes exactly one page break.\n    #     - if content is more than a page, that's life\n    #     - see if content fits on a page, recommend a page advance\n    #\n    # Note: this is a bit disingenuous.  This allows both a segment\n    # and a block as an argument, on the assumption they have common\n    # attributes employed here.  Really they should be derived from\n    # a common object.  A switch on object type is necessary to call\n    # the two different BRF \"process\" methods, no matter what.\n    def needs_page_advance(self, seg):\n        import copy\n\n        # A \"page\" only makes sense if embossing\n        if not(self.cursor.embossing()):\n            return False\n\n        # If segment explicitly creates a new page,\n        # then the question of space is moot\n        if seg.ownpage or seg.newpage:\n            return False\n\n        # Line numbers could be actual line numbers for first and\n        # last line of content produced by the sandbox BRF.\n        # Formula would be\n        #\n        #     line-number = page-height - remaining-lines + 1\n        #\n        # We will subtract the starting line from the finishing line,\n        # so the page-heights and the \"+1\" will cancel out.  Thus\n        # definitions are just the negatives of the remaining lines.\n        #\n        # Segment processing always ends on a new line, so the finishing\n        # line has a \"-1\" to walk it back a line (and if the segment reset\n        # goes to a new page, then the remaining lines would be zero on\n        # the previous page, set to negative zero here).\n\n        orginal_cursor = self.cursor\n        start_page = orginal_cursor.page_number()\n        start_line = -orginal_cursor.remaining_lines()\n        # all changes (cursor movement, text-wrapping) will\n        # occur in the temporary/sandbox/throwaway cursor\n        sandbox_brf = copy.deepcopy(self)\n        sandbox_cursor = sandbox_brf.cursor\n        # Do the deal, in a sandbox\n        # Type will be \"Block\" or \"Segment\"\n        if type(seg) == Segment:\n            sandbox_brf.process_segment(seg)\n        else:\n            sandbox_brf.process_block(seg)\n        # Attach some lines of content, virtually\n        for i in range(seg.lines_following):\n            sandbox_cursor.advance_line()\n\n        finish_page = sandbox_cursor.page_number()\n        finish_line = -sandbox_cursor.remaining_lines() - 1\n        # Except, segment finishes ready-to-go,\n        # which could be the tip-top of the next page.\n        if sandbox_cursor.at_page_start():\n            finish_page -= 1\n            finish_line = -0\n\n        # Fine as-is, no page boundary has been broached\n        if (finish_page - start_page) == 0:\n            return False\n        # Really long, hopeless, a break doesn't help\n        elif (finish_page - start_page) > 1:\n            return False\n        # Exactly one page-break, so look to line numbers\n        # More than a page-full, since finish is later\n        elif finish_line - start_line >= 0:\n            return False\n        # There would be a break, and content would fit on the next\n        # page, so go for it and report the need for a page advance\n        else:\n            return True\n\n\n    # Actions\n\n    def adjust_text_width(self, adjustment):\n        # Temporarily adjust the width of a page\n        # For example, to construct a centered heading,\n        # or to reserve space for a trailing page number.\n        # Argument is an adjustment to the current width\n        # (reduce with negative, then quickly restore with positive).\n        # A reduction must be while preparing a line, the ensuing\n        # expansion can (and often will) occur while mid-line.\n        if (adjustment < 0):\n            assert self.at_line_start(), \"BUG: reducing text width, when not at a line start\"\n        self.cursor.adjust_text_width(adjustment)\n        self.line_buffer.adjust_text_width(adjustment)\n\n    def write(self, text):\n        self.out_buffer += text\n\n    def advance_one_line(self):\n        # The last line needs a page number at its conclusion, so\n        # we need to (a) shorten the buffer going *into* forming\n        # that line, and (b) actually tack on the number. These\n        # booleans identify the line we are completing as we enter\n        # this method.\n        finish_penultimate = (self.cursor.remaining_lines() == 2)\n        finish_last = (self.cursor.remaining_lines() == 1)\n\n        # We need a braille version of the page number, for actual\n        # printing on the last line, or for adjusting the size of\n        # the line buffer for the last line prior to its formation.\n        if finish_penultimate or finish_last:\n            num = str(self.cursor.page_number())\n            braille_num = self.translate_segment('text', num)\n\n        # before leaving last line, add a page number, flush right\n        if finish_last:\n            # a character (period?) here can aid debugging\n            gap = \" \" * (self.line_buffer.remaining_chars() + BRF.page_num_sep)\n            # this can exceed buffer, but we have no checks for that\n            self.line_buffer.add(gap + braille_num)\n\n        # flush the BRF's line buffer into its\n        # `out_buffer` while adding a newline\n        # TODO: have line_buffer return contents as\n        # a string, and .write() onto `out_buffer`\n        self.line_buffer.flush(self)\n        self.write(\"\\n\")\n\n        # Record the advance to new line.\n        # Note: this changes the number of remaining lines, which\n        # explains the two booleans above recording the situation\n        self.cursor.advance_line()\n\n        # If we flushed penultimate line, set up a reduced\n        # buffer for formation of the last line so there\n        # will be room for a page number\n        # Otherwise, restore the line buffer to its usual width\n        if finish_penultimate:\n            self.adjust_text_width( -(BRF.page_num_sep + len(braille_num)))\n        if finish_last:\n            self.adjust_text_width(  (BRF.page_num_sep + len(braille_num)))\n\n        # this can cause the cursor to move to the start of a new\n        # page if there were no more lines available on the page.\n        # So add FF (trl-L, ASCII 12, hex 0C) to the `out_buffer`\n        if self.cursor.at_page_start():\n            self.write(\"\\x0C\")\n\n    def blank_line(self):\n        # We assume this method is only called when\n        # we are at the start of a fresh line, so\n        # flushing the line buffer does not produce\n        # any text (unless a page number is printed)\n        assert self.at_line_start(), \"BUG: creating a blank line, but not at the start of a line\"\n        # `advance_one_line()` should flush an empty buffer,\n        # write a newline, and manage page number output\n        self.advance_one_line()\n\n    def advance_page(self):\n        # It might look silly to call this complicated function when we\n        # could just drop a bunch of newlines into the `out_buffer`.\n        # But we can be sure a partial line is handled correctly and we\n        # can be sure a page number gets written properly in all cases.\n        # And the FF for the end of the page.\n\n        for i in range(self.cursor.remaining_lines()):\n            self.advance_one_line()\n        self.flush()\n        if self.cursor.embossing():\n            assert self.cursor.at_page_start(), \"Page advance did not reach exactly the start of a new page\"\n\n    def write_word(self, word):\n        # This assumes there is room on the current line\n        # so no adjustments are made to the cursor\n        assert self.line_buffer.remaining_chars() == self.cursor.remaining_characters(), \"Cursor and LineBuffer have desynced\"\n        self.cursor.advance(len(word))\n        self.line_buffer.add(word)\n\n    def write_fragment(self, typeface, aline, math_punctuation, seg):\n\n        # Nemeth math needs special care, and is already braille\n        # Otherwise, have liblouis translate with correct typeface\n        # After this, `aline` is a BRF string, with spaces, nbsps\n        if typeface == \"math\":\n            aline = self.massage_math(aline, math_punctuation)\n        else:\n            aline = BRF.translate_segment(typeface, aline)\n\n        # When a word is output, it gets the space from the previous split,\n        # unless it is the first word of a line and the prior space became\n        # a newline character.\n        prior_space = \"\"\n\n        # We chop down `aline` until there is nothing left.  When the first\n        # space is at the end of `aline` the split will yield an empty string\n        # as the second piece.  We do want this string to pass through the\n        # `while` again, to pick up the space we split on via `prior_space`.\n        # THEN the split yields just one piece and the while ends.  This is\n        # all a long excplnation of why we control the halting of the `while`\n        # loop rather than just testing that `aline` is empty.\n\n        while aline != None:\n            pieces = aline.split(\" \", 1)\n            word = pieces[0]\n            # if we add to current output line, how many characters would\n            # be left? A negative number is indicative of no room\n            # there *is* room for previous split and next word\n            next_text = prior_space + word\n\n            # `aline` is non-empty, check if at line start\n            # first line:  indent and flip switch permanently to False\n            # later lines: use runover instead\n            if self.at_line_start():\n                if seg.first_line:\n                    pad = seg.indentation\n                    seg.first_line = False\n                else:\n                    pad = seg.runover\n                next_text = (\" \" * pad) + next_text\n\n            if self.is_room_on_line(next_text):\n                # TODO: sanitize non-breaking space now, as it has\n                # served its purpose, but we don't want it in output\n                self.write_word(next_text)\n                prior_space = \" \"\n                # update, or nullify, aline\n                if len(pieces) == 2:\n                    aline = pieces[1]\n                else:\n                    # A 1-piece list after a split indicates there was no\n                    # space to split on, so `word` will have been written out.\n                    # Set `aline` to `None` as sentinel.  See above for rationale.\n                    aline = None\n            elif not(self.at_line_start()):\n                # no room, have a partial line already in place\n                # so move to a new line, i.e. \"go around again\"\n                # do not update  aline  as it can split again\n                prior_space = \"\"\n                self.advance_one_line()\n            else:\n                # this is bad - we are at the start of a new line already\n                # (on accident or by having gone around) and there is\n                # *still* not enough room\n                # So we brutally hypentate the word to just fit with a hyphen\n                whole_line = word[:(self.line_buffer.remaining_chars() - 1)] + \"-\"\n                # Put `aline` back together, but without the string `whole_line`.\n                # If there are more pieces we need to add back the space that\n                # disappeared in the split.  Otherwise this is the last word\n                # and it just got smaller.\n                aline = word[(self.line_buffer.remaining_chars() - 1):]\n                if len(pieces) == 2:\n                    aline += \" \" + pieces[1]\n                self.write_word(whole_line)\n\n    def center(self):\n        # Centered headings, may have blank lines\n        lines = self.out_buffer.split(\"\\x0A\")\n        nlines = len(lines)\n        # Replacing contents\n        self.out_buffer = \"\"\n        for i in range(nlines):\n            line = lines[i]\n            if line == \"\":\n                self.out_buffer += line\n            else:\n                pad = \" \" * ((self.line_buffer.text_width - len(line))//2)\n                self.out_buffer += pad + line\n            # Restore n-1 separators\n            if i != (nlines - 1):\n                self.out_buffer += \"\\x0A\"\n\n    def process_segment(self, s):\n        '''For actual output, and for trial output with a disposable BRF'''\n\n        # Note: this routine will fill a buffer that is part of a BRF\n        # object.  It is independent of any file, so does not ever\n        # actually output anything.  There is a separate method for that.\n        # In this way, the method can be used in a trial fashion with a\n        # scratch/temporary BRF object to see how the Cursor behaves and\n        # thus if a segmant might cross a page boundary.\n\n        # Will always start a new segment at a fresh line\n        assert self.at_line_start(), \"BUG: starting a segment, but not at the start of a line\"\n\n        if s.newpage and self.cursor.embossing():\n            self.advance_page()\n\n        if s.ownpage and self.cursor.embossing():\n            self.advance_page()\n\n        # Lines before (but not if at the start of a page)\n        if not(self.cursor.at_page_start()):\n            for i in range(s.lines_before):\n                self.blank_line()\n\n        # Any page adjustments are now concluded, including a sandbox\n        # trial that may have necessitated a move to a new page.  If\n        # the segment is a heading it is about to be written on the\n        # page and the cursor knows the page number\n        if s.heading_id and self.cursor.embossing() and not(self.toc_mode):\n            self.toc_dict[s.heading_id] = self.cursor.page_number()\n\n        # Centered\n        # [BANA 2016],  4.4.2\n        # At least three blank cells must precede and follow a centered heading.\n        #\n        # So shrink line buffer to get extra space\n        if s.centered:\n            self.adjust_text_width(-6)\n\n        # If making segments/headings into ToC entries, then\n        # reserve 6 spaces to the right at all times, until\n        # just about to write the guide dots and page number\n        if self.toc_mode:\n            self.adjust_text_width(-6)\n\n        sxml = s.xml\n        if sxml.text:\n            self.write_fragment(\"text\", sxml.text, None, s)\n        children = list(sxml)\n        for c in children:\n            if c.text:\n                if 'punctuation' in c.attrib:\n                    math_punctuation = c.attrib['punctuation']\n                else:\n                    math_punctuation = None\n                # Following can help debug nested segments\n                # print(\"SUSPECT TYPEFACE\", c.tag, c.text)\n                self.write_fragment(c.tag, c.text, math_punctuation, s)\n            if c.tail:\n                self.write_fragment(\"text\", c.tail, None, s)\n\n        # Release width restriction to finish ToC entry\n        if self.toc_mode:\n            self.adjust_text_width(6)\n            # Page numbers iff embossing\n            if self.cursor.embossing():\n                page_num = str(self.toc_dict[s.heading_id])\n                guide_dots = self.cursor.remaining_characters() - (1 + len(page_num))\n                guide = ['', '', '']\n                if guide_dots > 0:\n                    guide[0] = ' '\n                    guide_dots -= 1\n                if guide_dots > 0:\n                    guide[2] = ' '\n                    guide_dots -= 1\n                if guide_dots > 0:\n                    guide[1] = '\\u2810' * guide_dots\n                self.write_fragment(\"text\", ''.join(guide) + page_num, None, s)\n\n        # finished with a segment\n        # flush buffer, move to new line, maybe a new page\n        # BUT not if we landed in this state anyway\n        if not(self.at_line_start()):\n            self.advance_one_line()\n        # Necessary to restore for subsequent centering\n        if s.centered:\n            self.adjust_text_width(6)\n        # Lines after\n        for i in range(s.lines_after):\n            self.blank_line()\n        # post-process before any use\n        if s.centered:\n            self.center()\n\n        # Dedicated page, so off we go (reqires something was written on page)\n        if s.ownpage and self.cursor.embossing():\n            self.advance_page()\n\n\n    def massage_math(self, aline, punctuation):\n\n        # available width will change across lines,\n        # so this assumption is mildly flawed\n        width = self.line_buffer.page_width\n\n        # Unicode versions of Nemeth switch indicators.\n        # We control separating spaces below as a way to\n        # influence line-breaking for inline math\n        # Local versions for convenience and manipulation\n        nemeth_open = BRF.nemeth_open\n        nemeth_close = BRF.nemeth_close\n\n        # Join trailing punctuation to the closing indicator and\n        # record influence on overall length for line-breaking.\n        if punctuation:\n            nemeth_close += punctuation\n            punct_len = len(punctuation)\n        else:\n            punct_len = 0\n\n        # Actual Nemeth braille, plus 3, plus 3 for indicators, and punctuation\n        math_len = len(aline) + 6 + punct_len\n\n        if math_len <= width:\n            # fuse all blanks, force onto one line if needed\n            aline = nemeth_open + \"\\xA0\" + aline.replace(\" \", \"\\xA0\") + \"\\xA0\" + nemeth_close\n        elif math_len <= width + 3:\n            # fuse all blanks, except let Nemeth-close break off\n            aline = nemeth_open + \"\\xA0\" + aline.replace(\" \", \"\\xA0\") + \" \" + nemeth_close\n        elif math_len <= width + 6 + punct_len:\n            # fuse all blanks, except let both Nemeth break off\n            aline = nemeth_open + \" \" + aline.replace(\" \", \"\\xA0\") + \" \" + nemeth_close\n        else:\n            # fuse on the indicators, then break at any space\n            aline = nemeth_open + \"\\xA0\" + aline + \"\\xA0\" + nemeth_close\n\n        # Unicode characters translate, one for one, into BRF\n        # characters and we assume punctuation does the same.\n        # If not, we could map a few punctuation marks to Unicode.\n        # Or perhaps set argument to do uncontracted braille.\n        return louis.translateString([\"en-ueb-g2.ctb\"], aline, None, 0)\n\n    def process_block(self, blk):\n\n        if blk.ownpage and self.cursor.embossing():\n            self.advance_page()\n\n        # We don't want to start block material right at the bottom of\n        # the page when there are not enough lines to really get moving.\n        # Never start when there is one line left.  Most box material needs\n        # three lines, a preceding blank line, a box line, and a heading\n        # (maybe four lines? but three seems OK experimentally).\n        # Likely this needs refinement.\n        initial_lines = 1\n        if blk.box:\n            initial_lines += 2\n        if (self.cursor.remaining_lines() < initial_lines) and self.cursor.embossing():\n            self.advance_page()\n\n        # Lines before (but not if at the start of a page)\n        if not(self.cursor.at_page_start()):\n            for i in range(blk.lines_before):\n                self.blank_line()\n\n        if blk.box == \"standard\":\n            top_line = \"7\" * self.line_buffer.text_width\n            self.write_word(top_line)\n            self.advance_one_line()\n        elif blk.box == \"nemeth\":\n            open_brf = louis.translateString([\"en-ueb-g2.ctb\"], BRF.nemeth_open, None, 0)\n            self.write_word(open_brf)\n            self.advance_one_line()\n            self.blank_line()\n\n        inner_segments = blk.xml.xpath(\"segment|block\")\n        for s in inner_segments:\n            if s.tag == \"segment\":\n                seg = Segment(s)\n                self.write_segment(seg)\n            elif s.tag == \"block\":\n                innerblk = Block(s)\n                self.write_block(innerblk)\n\n        if blk.box == \"standard\":\n            bottom_line = \"g\" * self.line_buffer.text_width\n            self.write_word(bottom_line)\n            self.advance_one_line()\n        elif blk.box == \"nemeth\":\n            self.blank_line()\n            # add punctuation that was mined from trailing text\n            # node.  Note: only for Nemeth box/display math\n            close_brf = BRF.nemeth_close\n            if blk.punctuation:\n                close_brf += blk.punctuation\n            close_brf = louis.translateString([\"en-ueb-g2.ctb\"], close_brf, None, 0)\n            self.write_word(close_brf)\n            self.advance_one_line()\n\n        # Lines after\n        for i in range(blk.lines_after):\n            self.blank_line()\n            self.flush()\n\n        # Dedicated page, so off we go (reqires something was written on page)\n        if blk.ownpage and self.cursor.embossing():\n            self.advance_page()\n\n\n    # The next two \"write\" routines simply check if a page advance\n    # is necessary/desirable for the block or segment in question,\n    # and then call the \"process\" versions, where the real action\n    # happens.  Then a flush.\n\n    def write_segment(self, seg):\n        # See if a page advance will improve awkward page breaks\n        if not(seg.breakable) and self.needs_page_advance(seg):\n            self.advance_page()\n        self.process_segment(seg)\n        self.flush()\n\n    def write_block(self, blk):\n        # See if a page advance will improve awkward page breaks\n        if not(blk.breakable) and self.needs_page_advance(blk):\n            self.advance_page()\n        self.process_block(blk)\n        self.flush()\n\n    def flush(self):\n        # The `accumulator` *is* the final document, as a list of\n        # strings, so here we move the (completed) string for the\n        # segment into the list that will be concatenated.  And\n        # prepare the `out_buffer` for the next segment.\n        self.accumulator.append(self.out_buffer)\n        self.out_buffer = ''\n\n    # Concatenate the strings of the `accumulator`\n    def get_brf(self):\n        return ''.join(self.accumulator)\n\n    # Static methods\n\n    @staticmethod\n    def translate_segment(typeface, aline):\n\n        # g2 includes g1 explicitly\n        tableList = [\"en-ueb-g2.ctb\"]\n\n        # Typeforms bits\n        #    from Python, which is from C header, louis.h\n        # plain_text = 0x0000\n        # emph_1 = comp_emph_1 = italic = 0x0001 = 1\n        # emph_2 = comp_emph_2 = underline = 0x0002 = 2\n        # emph_3 = comp_emph_3 = bold = 0x0004 = 4\n        # computer_braille = 0x0400 = 1024\n        # no_contract = 0x1000 = 4096\n\n        # `BRF.trans1_bit` is a class variable provided by the louis\n        # package for switching into a transcriber-defined emphasis class\n        # 2023-03-09: apparently  0x0020 = 32  for \"trans1\" (could change?)\n\n        if typeface == \"text\":\n            typeforms = None\n        elif typeface == \"italic\":\n            typeforms = [1] * len(aline)\n        elif typeface == \"bold\":\n            typeforms = [4] * len(aline)\n        elif typeface == \"code\":\n            typeforms = [BRF.trans1_bit] * len(aline)\n        else:\n            print('BUG: did not recognize typeface \"{}\"'.format(typeface) )\n            # May be the Python error:\n            #    UnboundLocalError: local variable 'typeforms' referenced before assignment\n            # When this error message reports \"segment\" as the typeface,\n            # it means there are nested segments.  Search this module for\n            # \"SUSPECT TYPEFACE\" to find a useful debugging statement to use.\n            # Setting \"typeforms = None\" here can keep processing alive but is\n            # likely to lead to incorrect reesults.\n\n        return louis.translateString(tableList, aline, typeforms, 0)\n\n    # End BRF object definition\n\n\n# Current entry point, sort of\ndef parse_segments(xml_simple, out_file, page_format):\n\n    # Embossed, page shape\n    brf = BRF(page_format, 40,25)\n\n    # this routine converts XML information into arguments\n    # to Python routines, but not exclusively yet\n\n    huge_parser = ET.XMLParser(huge_tree=True)\n    src_tree = ET.parse(xml_simple, parser=huge_parser)\n\n    top_elts = src_tree.xpath(\"/brf/segment|/brf/block\")\n\n    for elt in top_elts:\n        if elt.tag == \"segment\":\n            seg = Segment(elt)\n            brf.write_segment(seg)\n        elif elt.tag == \"block\":\n            blk = Block(elt)\n            brf.write_block(blk)\n        brf.flush()\n\n    # Prepare a new BRF object, but copy out ToC page numbers\n    front = BRF(page_format, 40,25)\n    front.toc_mode = True\n    front.toc_dict = brf.toc_dict\n\n    headings = src_tree.xpath(\"/brf/segment[@heading-id]\")\n    for head in headings:\n        seg = Segment(head)\n        seg.newpage = False\n        seg.ownpage = False\n        seg.centered = False\n        seg.breakable = False\n        # indentation, runover\n        seg.lines_before = 0\n        seg.lines_after = 0\n        seg.lines_following = 0\n        front.write_segment(seg)\n    # Fill out frontmatter final page\n    if page_format == 'emboss':\n        front.advance_page()\n\n    # We assume `out_file` has been error-checked\n    # It would be better to use a context manager\n    brf_file = open(out_file, \"w\")\n    brf_file.write(front.get_brf())\n    brf_file.write(brf.get_brf())\n    brf_file.close()\n"
  },
  {
    "path": "pretext/lib/pretext.py",
    "content": "# ********************************************************************\n# Copyright 2010-2020 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n# *********************************************************************\n\n# Python Version History\n# vermin is a great linter/checker to check versions required\n#     https://github.com/netromdk/vermin.git\n# 2023-10-13: this module expects Python 3.8 or newer\n#     shutil.copytree now has dirs_exist_ok argument\n# 2021-05-21: this module expects Python 3.6 or newer\n#\n#     subprocess.run() requires Python 3.5\n#     shutil.which() member requires 3.3\n#     otherwise Python 3.0 might be sufficient\n# 2020-05-20: this module expects Python 3.4 or newer\n\n# Set up logging package:\nimport logging\nlog = logging.getLogger('ptxlogger')\n\n# Can show full traceback, and then continue processing\n# https://stackoverflow.com/questions/3702675/\n# how-to-catch-and-print-the-full-exception-traceback-without-halting-exiting-the\nimport traceback  # format_exc()\n\n########################\n# Module/Package Imports\n########################\n\n#   IMPORTANT NOTES:\n#\n# * Never use the forms:\n#   from foo import *\n#   from foo import bar, baz\n#\n#   Always use the forms:\n#   import foo\n#   import foo as BAR\n#\n#   Only use the latter sparingly, only for module-level imports,\n#   and with recognizable and rational aliases\n#\n#   This makes debugging easier (we always know where a function is coming from)\n#   and it makes maintenance easier (search, and replace, are both more reliable)\n#\n# * For standard libraries used routinely, place import statements\n#   here at the module level, with some documentation of the necessity\n#\n# * For standard libraries used infrequently (in three or fewer functions?),\n#   include imports in the functions\n\n# primarily directory manipulations (creating, switching, deleting)\nimport os\n\n# primarily joining paths, but sometimes splitting\nimport os.path\n\n# primarily copying entire directory trees of files, also which()\n# we limit ourselves to shutil.copy2 and shutil.copytree\n# Study: https://www.techbeamers.com/python-copy-file/\nimport shutil\n\n# \"shelling out\" to run executables\n# TODO: run() is preferable to call()\nimport subprocess\n\n# version and platform inspection\nimport sys\n\n# creation of zip'ed output or bundles\nimport zipfile\n\n# regular expression tools\nimport re\n\n# contextmanager tools\nimport contextlib\n\nimport time\n\n# cleanup multiline strings used as source code\nimport textwrap\n\n# * For non-standard packages (such as those installed via PIP) try to keep\n#   dependencies to a minimum by *not* importing at the module-level\n#   (with justified exceptions)\n#\n# * For non-standard packages always import within a try/except block\n#   and use the provided warning message for failures\n#\n# * The \"requests\" module would be a candidate for a module-level\n#   import but we prefer to leave it as an optional dependency\n\n# This is a convenience for a uniform (detailed) warning when\n# an \"extraneous\" module fails to load, which is indicative of\n# some problem with an author's working environment\n__module_warning = \"\\n\".join(\n    [\n        'PTX ERROR: the \"{}\" module has failed to load, and',\n        \"  this is necessary for the task you have requested.  Perhaps\",\n        \"  you have not installed it?  Or perhaps you have forgotten to\",\n        \"  use a Python virtual environment you set up for this purpose?\",\n    ]\n)\n\n# Not much can be done without the \"lxml\" module which mimics\n# the \"xsltproc\" executable (they share the same libraries)\ntry:\n    import lxml.etree as ET\nexcept ImportError:\n    raise ImportError(__module_warning.format(\"lxml\"))\n\n\n#############################\n#\n#  Math as LaTeX on web pages\n#\n#############################\n\n\ndef mathjax_latex(xml_source, pub_file, out_file, dest_dir, math_format):\n    \"\"\"Convert PreTeXt source to a structured file of representations of mathematics\"\"\"\n    # formats:  'svg', 'mml', 'nemeth', 'speech', 'kindle'\n    # Internal calls will specify out_file with complete path\n    # External calls might only specify a destination directory\n    import fileinput  # for &nbsp; fix\n\n    log.info(\"converting LaTeX from {} into {} format\".format(xml_source, math_format))\n    log.debug(\"converting LaTeX from {} into {} format\".format(xml_source, math_format))\n\n    # construct filenames for pre- and post- XSL stylesheets in xsl/support\n    extraction_xslt = os.path.join(get_ptx_xsl_path(), \"support/extract-math.xsl\")\n    cleaner_xslt = os.path.join(get_ptx_xsl_path(), \"support/package-math.xsl\")\n\n    # Extraction stylesheet makes a simple, mock web page for MathJax\n    # And MathJax executables preserve the page while changing the math\n    tmp_dir = get_temporary_directory()\n    mjinput = os.path.join(tmp_dir, \"mj-input-latex.html\")\n    mjintermediate = os.path.join(tmp_dir, \"mj-intermediate.html\")\n    mjoutput = os.path.join(tmp_dir, \"mj-output-{}.html\".format(math_format))\n\n    log.debug(\"temporary directory for MathJax work: {}\".format(tmp_dir))\n    log.debug(\"extracting LaTeX from {} and collected in {}\".format(xml_source, mjinput))\n\n    # SVG, MathML, and PNG are visual and we help authors move punctuation into\n    # displays, but not into inline versions.  Nemeth braille and speech are not,\n    # so we leave punctuation outside.\n    # 2022-11-01: extraction stylesheet now supports a subtree root,\n    # which we could pass from the interface, into this function, then\n    # into the string parameters.  However, we don't see a real need yet\n    # for this, so we just leave this comment instead.\n    if math_format in [\"svg\", \"mml\", \"kindle\"]:\n        punctuation = \"display\"\n    elif math_format in [\"nemeth\", \"speech\"]:\n        punctuation = \"none\"\n    params = {}\n    params[\"math.punctuation\"] = punctuation\n    if pub_file:\n        params[\"publisher\"] = pub_file\n    xsltproc(extraction_xslt, xml_source, mjinput, None, params)\n    # Trying to correct baseline for inline math in Kindle, so we\n    # insert a \\mathstrut into all the inline math before feeding to MathJax\n    if math_format == \"kindle\":\n        with fileinput.FileInput(mjinput, inplace=True) as file:\n            for line in file:\n                print(line.replace(r\"\\(\", r\"\\(\\mathstrut \"), end=\"\")\n\n    # shell out to process with MathJax/SRE node program\n    msg = (\n        \"calling MathJax to convert LaTeX from {} into raw representations as {} in {}\"\n    )\n    log.debug(msg.format(mjinput, math_format, mjoutput))\n\n    # process with  pretext.js  executable from  MathJax (Davide Cervone, Volker Sorge)\n    node_exec_cmd = get_executable_cmd(\"node\")\n    mjsre_page = os.path.join(get_ptx_path(), \"script\", \"mjsre\", \"mj-sre-page.js\")\n    output = {\n        \"svg\": \"svg\",\n        \"kindle\": \"mathml\",\n        \"nemeth\": \"braille\",\n        \"speech\": \"speech\",\n        \"mml\": \"mathml\",\n    }\n    try:\n        mj_var = output[math_format]\n    except KeyError:\n        raise ValueError(\n            'PTX:ERROR: incorrect format (\"{}\") for MathJax conversion'.format(\n                math_format\n            )\n        )\n    mj_option = \"--\" + mj_var\n    mj_tag = \"mj-\" + mj_var\n    mjpage_cmd = node_exec_cmd + [mjsre_page, mj_option, mjinput]\n    with open(mjoutput, \"w\") as outfile:\n        subprocess.run(mjpage_cmd, stdout=outfile)\n\n    # the 'mjpage' executable converts spaces inside of a LaTeX\n    # \\text{} into &nbsp; entities, which is a good idea, and\n    # fine for HTML, but subsequent conversions expecting XHTML\n    # do not like &nbsp; nor &#xa0.  Be careful just below, as\n    # repl contains a *non-breaking space* not a generic space.\n    orig = \"&nbsp;\"\n    repl = \" \"\n    xhtml_elt = re.compile(orig)\n    # the inplace facility of the fileinput module gets\n    # confused about temporary backup files if the working\n    # directory is not where the file lives\n    # Also, print() here actual writes on the file, as\n    # another facility of the fileinput module, but we need\n    # to kill the \"extra\" newline that print() creates\n    with working_directory(tmp_dir):\n        html_file = mjoutput\n        with fileinput.FileInput(html_file, inplace=True) as file:\n            for line in file:\n                print(xhtml_elt.sub(repl, line), end=\"\")\n\n    # clean up and package MJ representations, font data, etc\n    derivedname = get_output_filename(\n        xml_source, out_file, dest_dir, \"-\" + math_format + \".xml\"\n    )\n    log.debug(\n        \"packaging math as {} from {} into XML file {}\".format(\n            math_format, mjoutput, out_file\n        )\n    )\n    xsltproc(cleaner_xslt, mjoutput, derivedname)\n    log.info(\"XML file of math representations deposited as {}\".format(derivedname))\n\n\n##############################################\n#\n#  Graphics Language Extraction and Processing\n#\n##############################################\n\ndef prefigure_conversion(xml_source, pub_file, stringparams, xmlid_root, dest_dir, outformat, ext_converter):\n    \"\"\"Extract PreFigure code for diagrams and convert to graphics formats\"\"\"\n    # ext_converter: an optinal hook for external libraries to patch\n    #                the conversion of individual images.  The intent is that ext_converter\n    #                attempts to use a cached version of the image, or else calls\n    #                individual_prefigure_conversion() to generate the image (and cache it).\n    #\n    # stringparams is a dictionary, best for lxml parsing\n    import glob\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    msg = 'converting PreFigure diagrams from {} to {} graphics for placement in {}'\n    log.info(msg.format(xml_source, outformat.upper(), dest_dir))\n\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory: {}\".format(tmp_dir))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-prefigure.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # no output (argument 3), stylesheet writes out per-image file\n    # outputs a list of ids, but we just loop over created files\n    log.info(\"extracting PreFigure diagrams from {}\".format(xml_source))\n    log.info(\"string parameters passed to extraction stylesheet: {}\".format(stringparams))\n\n    xsltproc(extraction_xslt, xml_source, None, tmp_dir, stringparams)\n\n    # Resulting prefigure files are in tmp_dir, switch there to work\n    with working_directory(tmp_dir):\n        if outformat == \"source\" or outformat == \"all\":\n            log.info(\"copying PreFigure source files into {}\".format(dest_dir))\n            shutil.copytree(\n                tmp_dir,\n                dest_dir,\n                dirs_exist_ok=True\n            )\n\n        # get a list of all the source files and remove the publication file\n        pf_source_files = os.listdir(tmp_dir)\n        try:\n            pf_source_files.remove('pf_publication.xml')\n        except ValueError:\n            pass\n\n        # Need to copy entire \"external\" directory\n        # Also data (e.g. for plots) is made available\n        # NB: we might really do this sooner, but then all\n        # the files in \"external\" and \"data\" get added\n        # into the list of source files, pf_source_files\n        _, external_dir = get_managed_directories(xml_source, pub_file)\n        data_dir = get_source_directories(xml_source)\n        copy_managed_directories(tmp_dir, external_abs=external_dir, data_abs=data_dir)\n\n        # make output/tactile directory if the outformat is \"all\"\n        # PreFigure makes 'output' but we also want to create 'output/tactile'\n        if outformat == \"all\":\n            os.mkdir('output')\n            os.mkdir('output/tactile')\n\n        # Process each pf_source_file for requested format\n        for pfdiagram in pf_source_files:\n            if ext_converter:\n                ext_converter(pfdiagram, outformat, tmp_dir)\n            else:\n                individual_prefigure_conversion(pfdiagram, outformat)\n\n        # Check to see if we made some diagrams before copying the tree\n        if os.path.exists('output'):\n            log.info(\"copying PreFigure output to {}\".format(dest_dir))\n            shutil.copytree(\n                'output',\n                dest_dir,\n                dirs_exist_ok=True\n            )\n\ndef individual_prefigure_conversion(pfdiagram, outformat):\n    # We need to import prefig for this function.  Okay that we do it for each\n    # diagram; python will cache the module after the first import.\n    try:\n        import prefig\n    except ImportError:\n        raise ImportError(__module_warning.format(\"prefig\"))\n\n    if outformat == \"tactile\" or outformat == \"all\":\n        # THe tactile outformat produces a pdf, but is different from the pdf outformat.\n        # After producing the output, it must be moved to the tactile subdirectory.\n        # NB we must do this before the pdf outformat option to avoid overwriting the regular pdf.\n        log.info(\"compiling PreFigure source file {} to tactile PDF\".format(pfdiagram))\n        prefig.engine.pdf('tactile', pfdiagram)\n        pdf_name = pfdiagram[:-4] + '.pdf'\n        shutil.move('output/'+pdf_name, 'output/tactile/'+pdf_name)\n\n    if outformat == \"svg\" or outformat == \"all\":\n        log.info(\"compiling PreFigure source file {} to SVG\".format(pfdiagram))\n        prefig.engine.build('svg', pfdiagram)\n\n    if outformat == \"pdf\" or outformat == \"all\":\n        log.info(\"compiling PreFigure source file {} to PDF\".format(pfdiagram))\n        prefig.engine.pdf('svg', pfdiagram, dpi=100)\n\n    if outformat == \"png\" or outformat == \"all\":\n        log.info(\"compiling PreFigure source file {} to PNG\".format(pfdiagram))\n        prefig.engine.png('svg', pfdiagram)\n\n\n\ndef asymptote_conversion(\n    xml_source, pub_file, stringparams, xmlid_root, dest_dir, outformat, method, ext_converter\n):\n    \"\"\"Extract asymptote code for diagrams and convert to graphics formats\"\"\"\n    # stringparams is a dictionary, best for lxml parsing\n    # method == 'local': use a system executable from pretext.cfg\n    # method == 'server': hit a server at U of Alberta, Asymptote HQ\n    # ext_converter: an optinal hook for external libraries to patch\n    #                the conversion of individual images.  The intent is that ext_converter\n    #                attempts to use a cached version of the image, or else calls\n    #                individual_asymptote_conversion() to generate the image (and cache it).\n    #\n    # If buggy, and server/communication is suspected, try an Asy\n    # source file generated by this script (located in temporary\n    # directory preserved by -vv), using, e.g.,\n    #   curl --data-binary @source.asy 'asymptote.ualberta.ca:10007?f=svg' > output.svg\n    import glob\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    try:\n        import requests  # post()\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    msg = 'converting Asymptote diagrams from {} to {} graphics for placement in {} with method \"{}\"'\n    log.info(msg.format(xml_source, outformat.upper(), dest_dir, method))\n\n    # front-ends and calling routines should guarantee the following\n    if not (method in [\"local\", \"server\"]):\n        raise ValueError(\n            \"{} is not a method for Asymptote diagram generation\".format(method)\n        )\n\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory: {}\".format(tmp_dir))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-asymptote.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # no output (argument 3), stylesheet writes out per-image file\n    # outputs a list of ids, but we just loop over created files\n    log.info(\"extracting Asymptote diagrams from {}\".format(xml_source))\n    log.info(\n        \"string parameters passed to extraction stylesheet: {}\".format(stringparams)\n    )\n    xsltproc(extraction_xslt, xml_source, None, tmp_dir, stringparams)\n    # Resulting *.asy files are in tmp_dir, switch there to work\n    with working_directory(tmp_dir):\n        # simply copy for source file output\n        # no need to check executable or server, PreTeXt XSL does it all\n        if outformat == \"source\" or outformat == \"all\":\n            for asydiagram in os.listdir(tmp_dir):\n                log.info(\"copying source file {}\".format(asydiagram))\n                shutil.copy2(asydiagram, dest_dir)\n        # consolidated process for five possible output formats\n        # parameterized for places where  method  differs\n        if outformat == \"all\":\n            outformats = [\"html\", \"svg\", \"png\", \"pdf\", \"eps\"]\n        elif outformat in [\"html\", \"svg\", \"png\", \"pdf\", \"eps\"]:\n            outformats = [outformat]\n        else:\n            outformats = []\n        for outform in outformats:\n            # initialize variables for each method\n            asy_cli = []\n            alberta = \"\"\n            asyversion = \"\"\n            # setup, depending on the method\n            if method == \"local\":\n                asy_executable_cmd = get_executable_cmd(\"asy\")\n                # perhaps replace following stock advisory\n                # with a real version check.  Perhaps see:\n                # https://stackoverflow.com/questions/11887762/how-do-i-compare-version-numbers-in-python\n                proc = subprocess.Popen(\n                    [asy_executable_cmd[0], \"--version\"], stderr=subprocess.PIPE\n                )\n                # bytes -> ASCII, strip final newline\n                asyversion = proc.stderr.read().decode(\"ascii\")[:-1]\n                # build command line to suit\n                # 2021-12-10, Michael Doob: \"-noprc\" is default for the server,\n                # and newer CLI versions.  Retain for explicit use locally when\n                # perhaps an older version is being employed\n                asy_cli = asy_executable_cmd + [\"-f\", outform, \"-noV\"]\n                if outform in [\"pdf\", \"eps\"]:\n                    asy_cli += [\"-noprc\", \"-iconify\", \"-tex\", \"xelatex\", \"-batchMask\"]\n                elif outform in [\"svg\", \"png\"]:\n                    asy_cli += [\"-render=4\", \"-tex\", \"xelatex\", \"-iconify\"]\n            if method == \"server\":\n                alberta = \"http://asymptote.ualberta.ca:10007?f={}\".format(outform)\n            # loop over .asy files, doing conversions\n            for asydiagram in glob.glob(os.path.join(tmp_dir, \"*.asy\")):\n                if ext_converter:\n                    ext_converter(asydiagram, outform, method, asy_cli, asyversion, alberta, dest_dir)\n                else:\n                    individual_asymptote_conversion(asydiagram, outform, method, asy_cli, asyversion, alberta, dest_dir)\n\ndef individual_asymptote_conversion(asydiagram, outform, method, asy_cli, asyversion, alberta, dest_dir):\n    try:\n        import requests  # post()\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    filebase, _ = os.path.splitext(asydiagram)\n    asyout = \"{}.{}\".format(filebase, outform)\n    log.info(\"converting {} to {}\".format(asydiagram, asyout))\n    # do the work, depending on method\n    if method == \"local\":\n        asy_cmd = asy_cli + [asydiagram]\n        log.debug(\"asymptote conversion {}\".format(asy_cmd))\n        subprocess.call(asy_cmd, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)\n    if method == \"server\":\n        log.debug(\"asymptote server query {}\".format(alberta))\n        with open(asydiagram) as f:\n            # protect against Unicode (in comments?)\n            data = f.read().encode(\"utf-8\")\n            response = requests.post(url=alberta, data=data)\n            open(asyout, \"wb\").write(response.content)\n    # copy resulting image file, or warn/advise about failure\n    if os.path.exists(asyout):\n        shutil.copy2(asyout, dest_dir)\n    else:\n        msg = [\n            \"the Asymptote output {} was not built\".format(asyout),\n            \"             Perhaps your code has errors (try testing in the Asymptote web app).\",\n        ]\n        if method == \"local\":\n            msg += [\n                \"             Or your local copy of Asymtote may precede version 2.66 that we expect.\",\n                \"             In this case, not every image can be built in every possible format.\",\n                \"\",\n                \"             Your Asymptote reports its version within the following:\",\n                \"             {}\".format(asyversion),\n            ]\n        log.warning(\"\\n\".join(msg))\n\ndef sage_conversion(\n    xml_source, pub_file, stringparams, xmlid_root, dest_dir, outformat, ext_converter\n):\n\n    # ext_converter: an optinal hook for external libraries to patch\n    #                the conversion of individual images.  The intent is that ext_converter\n    #                attempts to use a cached version of the image, or else calls\n    #                individual_sage_conversion() to generate the image (and cache it).\n    #\n    # To make all four formats, just call this routine\n    # four times and halt gracefully with an explicit \"return\"\n    if outformat == \"all\":\n        log.info('Pass 1 for \"all\" formats, now generating PDF')\n        sage_conversion(xml_source, pub_file, stringparams, xmlid_root, dest_dir, \"pdf\", ext_converter)\n        log.info('Pass 2 for \"all\" formats, now generating SVG')\n        sage_conversion(xml_source, pub_file, stringparams, xmlid_root, dest_dir, \"svg\", ext_converter)\n        log.info('Pass 3 for \"all\" formats, now generating PNG')\n        sage_conversion(xml_source, pub_file, stringparams, xmlid_root, dest_dir, \"png\", ext_converter)\n        log.info('Pass 4 for \"all\" formats, now generating HTML')\n        sage_conversion(\n            xml_source, pub_file, stringparams, xmlid_root, dest_dir, \"html\", ext_converter\n        )\n        return None\n    # The real routine, which is thinly parameterized by \"outformat\",\n    # thus necessitating the four separate calls above due to the\n    # extraction stylesheet producing slightly different Sage code\n    # for each possible output format\n    log.info(\n        \"converting Sage diagrams from {} to {} graphics for placement in {}\".format(\n            xml_source, outformat.upper(), dest_dir\n        )\n    )\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory: {}\".format(tmp_dir))\n    sage_executable_cmd = get_executable_cmd(\"sage\")\n    # TODO why this debug line? get_executable_cmd() outputs the same debug info\n    log.debug(\"sage executable: {}\".format(sage_executable_cmd[0]))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-sageplot.xsl\")\n    log.info(\"extracting Sage diagrams from {}\".format(xml_source))\n    # extraction stylesheet is parameterized by fileformat\n    # this is an internal parameter only, do not use otherwise\n    stringparams[\"sageplot.fileformat\"] = outformat\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    xsltproc(extraction_xslt, xml_source, None, tmp_dir, stringparams)\n    with working_directory(tmp_dir):\n        failed_images = []\n        for sageplot in os.listdir(tmp_dir):\n            try:\n                if ext_converter:\n                    ext_converter(sageplot, outformat, dest_dir, sage_executable_cmd)\n                else:\n                    individual_sage_conversion(sageplot, outformat, dest_dir, sage_executable_cmd)\n            except Exception as e:\n                failed_images.append(sageplot)\n                log.warning(e)\n    # raise an error if there were *any* failed images\n    if failed_images:\n        msg = \"\\n\".join(\n            [\n                'Sage conversion failed for {} sageplot(s).',\n                \"Build with '-v debug' option and review the log for error messages.\",\n                \"Images are:\",\n            ]\n        ).format(len(failed_images))\n        # 2-space indentation\n        image_list = \"\\n  \" + \"\\n  \".join(failed_images)\n        raise ValueError(msg + image_list)\n\ndef individual_sage_conversion(sageplot, outformat, dest_dir, sage_executable_cmd):\n    filebase, _ = os.path.splitext(sageplot)\n    sageout = \"{0}.{1}\".format(filebase, outformat)\n    sage_cmd = sage_executable_cmd + [sageplot]\n    log.info(\"converting {} to {}\".format(sageplot, sageout))\n    log.debug(\"sage conversion {}\".format(sage_cmd))\n\n    result = subprocess.run(sage_cmd, capture_output=True, encoding=\"utf-8\")\n    if result.returncode:\n        log.debug(result.stderr)\n        raise Exception(\"sage conversion of {} failed\".format(sageplot))\n    else:\n        shutil.copy2(sageout, dest_dir)\n\ndef latex_image_conversion(\n    xml_source, pub_file, stringparams, xmlid_root, dest_dir, outformat, method, ext_converter\n):\n    # stringparams is a dictionary, best for lxml parsing\n    # ext_converter: an optinal hook for external libraries to patch\n    #                the conversion of individual images.  The intent is that ext_converter\n    #                attempts to use a cached version of the image, or else calls\n    #                individual_latex_image_conversion() to generate the image (and cache it).\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    log.info(\n        \"converting latex-image pictures from {} to {} graphics for placement in {}\".format(\n            xml_source, outformat, dest_dir\n        )\n    )\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory for latex-image conversion: {}\".format(tmp_dir))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    log.info(\"extracting latex-image pictures from {}\".format(xml_source))\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    log.info(\n        \"string parameters passed to extraction stylesheet: {}\".format(stringparams)\n    )\n    # Need to copy entire external directory in the managed case.\n    # Making data files available for latex image compilation is\n    # not supported outside of the managed directory scheme (2021-07-28)\n    _, external_dir = get_managed_directories(xml_source, pub_file)\n    data_dir = get_source_directories(xml_source)\n    copy_managed_directories(tmp_dir, external_abs=external_dir, data_abs=data_dir)\n    # now create all the standalone LaTeX source files\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-latex-image.xsl\")\n    # no output (argument 3), stylesheet writes out per-image file\n    xsltproc(extraction_xslt, xml_source, None, tmp_dir, stringparams)\n    # now work in temporary directory\n    with working_directory(tmp_dir):\n        # and maintain a list of failures for later\n        failed_images = []\n        # files *only*, from top-level\n        files = list(filter(os.path.isfile, os.listdir(tmp_dir)))\n        for latex_image in files:\n            try:\n                if ext_converter:\n                    ext_converter(latex_image, outformat, dest_dir, method)\n                else:\n                    individual_latex_image_conversion(latex_image, outformat, dest_dir, method)\n            except ImportError:\n                # re-raise the ImportError pdfCropMargins or pyMuPDF is not imported.\n                raise\n            except Exception as e:\n                failed_images.append(latex_image)\n                # We continue to try to process other images, but log a warning.\n                log.warning(e)\n\n    # raise an error if there were *any* failed images\n    if failed_images:\n        msg = \"\\n\".join(\n            [\n                'LaTeX compilation failed for {} \"latex-image\"(s).',\n                \"Review the log for error messages, and LaTeX transcripts.\",\n                \"Images are:\",\n            ]\n        ).format(len(failed_images))\n        # 2-space indentation\n        image_list = \"\\n  \" + \"\\n  \".join(failed_images)\n        raise ValueError(msg + image_list)\n\ndef individual_latex_image_conversion(latex_image, outformat, dest_dir, method):\n    # external module, often forgotten\n    try:\n        import pdfCropMargins\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"pdfCropMargins\"))\n    try:\n        import fitz # for svg and png conversion\n    except ImportError:\n        raise ImportError(__module_warning.format(\"pyMuPDF\"))\n\n    if outformat == \"source\":\n        shutil.copy2(latex_image, dest_dir)\n        log.info(\"copying {} to {}\".format(latex_image, dest_dir))\n    else:\n        filebase, _ = os.path.splitext(latex_image)\n        latex_image_pdf = \"{}.pdf\".format(filebase)\n        latex_image_svg = \"{}.svg\".format(filebase)\n        latex_image_png = \"{}.png\".format(filebase)\n        latex_image_eps = \"{}.eps\".format(filebase)\n        latex_image_log = \"{}.log\".format(filebase)\n        # process with a  latex  engine\n        latex_key = get_deprecated_tex_fallback(method)\n        tex_executable_cmd = get_executable_cmd(latex_key)\n        # TODO why this debug line? get_executable_cmd() outputs the same debug info\n        log.debug(\"tex executable: {}\".format(tex_executable_cmd[0]))\n        latex_cmd = tex_executable_cmd + [\"-interaction=nonstopmode\", \"-halt-on-error\", latex_image]\n        log.info(\"converting {} to {}\".format(latex_image, latex_image_pdf))\n        result = _latex_compile(latex_cmd, latex_image_log, latex_image, capture_output=True)\n\n        if result.returncode != 0:\n            # failed to compile the LaTeX image\n            # we help as much as we can\n            msg = \"\\n\".join(\n                [\n                    \"LaTeX compilation of {} failed.\",\n                    'Re-run, requesting \"source\" as the format, to analyze the image.',\n                    \"Likely creating the entire document as PDF will fail similarly.\",\n                    \"The transcript of the LaTeX run follows.\",\n                ]\n            ).format(latex_image)\n            log.error(msg)\n            print(\n                \"##################################################################\"\n            )\n            print(result.stdout)\n            print(\n                \"##################################################################\"\n            )\n            # and raise an exception so the calling function can add the image to the list of failed images\n            raise Exception(\"LaTeX compilation of {} failed\".format(latex_image))\n        else:\n            # Threshold implies only byte value 255 is white, which\n            # assumes these images are *produced* on white backgrounds\n            pcm_cmd = [\n                latex_image_pdf,\n                \"-o\",\n                \"cropped-\" + latex_image_pdf,\n                \"-t\",\n                \"254\",\n                \"-p\",\n                \"0\",\n                \"-a\",\n                \"-1\",\n            ]\n            log.info(\n                \"cropping {} to {}\".format(\n                    latex_image_pdf, \"cropped-\" + latex_image_pdf\n                )\n            )\n            pdfCropMargins.crop(pcm_cmd)\n            if not os.path.exists(\"cropped-\" + latex_image_pdf):\n                log.error(\n                    \"There was a problem cropping {} and {} was not created\".format(\n                        latex_image_pdf, \"cropped-\" + latex_image_pdf\n                    )\n                )\n            shutil.move(\"cropped-\" + latex_image_pdf, latex_image_pdf)\n            log.info(\n                \"renaming {} to {}\".format(\n                    \"cropped-\" + latex_image_pdf, latex_image_pdf\n                )\n            )\n            if outformat == \"all\":\n                shutil.copy2(latex_image, dest_dir)\n            if outformat == \"pdf\" or outformat == \"all\":\n                shutil.copy2(latex_image_pdf, dest_dir)\n            if outformat == \"svg\" or outformat == \"all\":\n                # create svg using pymupdf:\n                log.info(\"converting {} to {}\".format(latex_image_pdf, latex_image_svg))\n                with fitz.Document(latex_image_pdf) as doc:\n                    svg = doc.load_page(0).get_svg_image()\n                with open(latex_image_svg, \"w\") as f:\n                    f.write(svg)\n\n                if not os.path.exists(latex_image_svg):\n                    log.error(\n                        \"There was a problem converting {} to svg and {} was not created\".format(\n                            latex_image_pdf, latex_image_svg\n                        )\n                    )\n                shutil.copy2(latex_image_svg, dest_dir)\n            if outformat == \"png\" or outformat == \"all\":\n                # create high-quality png using pymupdf:\n                log.info(\"converting {} to {}\".format(latex_image_pdf, latex_image_png))\n                with fitz.Document(latex_image_pdf) as doc:\n                    png = doc.load_page(0).get_pixmap(dpi=300, alpha=True)\n                png.save(latex_image_png)\n                shutil.copy2(latex_image_png, dest_dir)\n\n                if not os.path.exists(latex_image_png):\n                    log.error(\n                        \"There was a problem converting {} to png and {} was not created\".format(\n                            latex_image_pdf, latex_image_png\n                        )\n                    )\n                shutil.copy2(latex_image_png, dest_dir)\n            if outformat == \"eps\" or outformat == \"all\":\n                pdfeps_executable_cmd = get_executable_cmd(\"pdfeps\")\n                # TODO why this debug line? get_executable_cmd() outputs the same debug info\n                log.debug(\"pdfeps executable: {}\".format(pdfeps_executable_cmd[0]))\n                eps_cmd = pdfeps_executable_cmd + [\n                    \"-eps\",\n                    latex_image_pdf,\n                    latex_image_eps,\n                ]\n                log.info(\n                    \"converting {} to {}\".format(latex_image_pdf, latex_image_eps)\n                )\n                subprocess.call(eps_cmd)\n                if not os.path.exists(latex_image_eps):\n                    log.error(\n                        \"There was a problem converting {} to eps and {} was not created\".format(\n                            latex_image_pdf, latex_image_eps\n                        )\n                    )\n                shutil.copy2(latex_image_eps, dest_dir)\n\n#############################################\n#\n# Binary Source Files to Base 64 in XML Files\n#\n#############################################\n\ndef datafiles_to_xml(xml_source, pub_file, stringparams, xmlid_root, dest_dir):\n    \"\"\"Convert certain  files in source to text representations in XML files\"\"\"\n    # stringparams is a dictionary, best for lxml parsing\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    import base64\n\n    msg = 'converting data files from {} to text representations in XML files for placement in {}'\n    log.info(msg.format(xml_source, dest_dir))\n\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory: {}\".format(tmp_dir))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-datafile.xsl\")\n    the_files = os.path.join(tmp_dir, 'datafile-list.txt')\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # no output (argument 3), stylesheet writes out per-image file\n    # outputs a list of ids, but we just loop over created files\n    log.info(\"extracting source files from {}\".format(xml_source))\n    log.info(\"string parameters passed to extraction stylesheet: {}\".format(stringparams) )\n    xsltproc(extraction_xslt, xml_source, the_files, None, stringparams)\n\n    # Copy in external resources (e.g., js code)\n    generated_abs, external_abs = get_managed_directories(xml_source, pub_file)\n\n    # Each file receives a single element as its root\n    # element. These are templates for that entry\n    image_info = '<pi:image-b64 xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\" pi:mime-type=\"{}\" pi:base64=\"{}\"/>'\n    text_info  = '<pi:text-file xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">{}</pi:text-file>'\n\n    # read lines, one-per-binary\n    with open(the_files, \"r\") as datafile_list:\n        dfs = datafile_list.readlines()\n    for df in dfs:\n        visible_id, file_type, relative_path = df.split()\n        data_file = os.path.join(external_abs, relative_path)\n        log.debug(\"converting data file {} to a text/XML file\".format(data_file))\n\n        # Now condition of the \"kind\" of file given in source\n        # according to the use of certain PTX elements\n        # Each stanza should produce the contents of a UTF-8 XML file\n        if file_type == \"image\":\n            # best guess of image type, as a MIME type\n            # https://en.wikipedia.org/wiki/Media_type\n            # https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n            # https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types\n            _, extension = os.path.splitext(data_file)\n            # normalize, drop leading period\n            # in rough popularity order\n            lcext = extension[1:].lower()\n            if lcext in [\"jpeg\", \"jpg\"]:\n                mime_type = \"image/jpeg\"\n            elif lcext == \"png\":\n                mime_type = \"image/png\"\n            elif lcext ==\"gif\":\n                mime_type = \"image/gif\"\n            elif lcext ==\"webp\":\n                mime_type = \"image/webp\"\n            elif lcext ==\"avif\":\n                mime_type = \"image/avif\"\n            elif lcext ==\"apng\":\n                mime_type = \"image/apng\"\n            # Do we want to base64 an XML file???\n            elif lcext ==\"svg\":\n                mime_type = \"image/svg+xml\"\n            else:\n                log.info(\"PTX:WARNING : MIME type of image {} not determined\".format(data_file))\n                mime_type = \"unknown\"\n\n            # Open binary file and encode in base64 with standard module\n            with open(data_file, \"rb\") as f:\n                base64version = base64.b64encode(f.read()).decode(\"utf8\")\n            xml_representation = image_info.format(mime_type, base64version)\n        elif file_type == \"pre\":\n            with open(data_file, \"rb\") as f:\n                rawtext = f.read().decode(\"utf8\")\n            xml_representation = text_info.format(rawtext)\n        else:\n            xml_representation = \"<oops/>\"\n\n        # Open as a text file (i.e. not binary), since we have\n        # built text/XML representations, we know this really is\n        # \"straight\" ASCII.  The XML header says \"UTF-8\", which\n        # is not a problem?\n        out_filename = os.path.join(dest_dir, visible_id + '.xml')\n        with open(out_filename, \"w\") as f:\n            f.write(__xml_header)\n            f.write(xml_representation)\n\n\n#######################\n#\n#  LaTeX Tactile Images\n#\n#######################\n\n\ndef latex_tactile_image_conversion(xml_source, pub_file, stringparams, dest_dir, outformat):\n    '''Support for tactile versions of \"latex-image\" removed 2024-07-29'''\n\n    msg = \"\\n\".join(['Support for production of \"latex-image\" as tactile',\n                     \"graphics with braille labels was discontinued on 2024-07-29.\",\n                     \"Instead, investigate the PreFigure project at prefigure.org.\"])\n    raise ValueError(msg)\n\n\n#####################\n# Traces for CodeLens\n#####################\n\n# Convert program source code into traces for the interactive\n# CodeLens tool in Runestone\n\ndef tracer(xml_source, pub_file, stringparams, xmlid_root, dest_dir):\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    try:\n        import requests  # post()\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    # Trace Server: language abbreviation goes in argument\n    url_string = \"http://tracer.runestone.academy:5000/trace{}\"\n    server_error_msg = '\\n'.join([\n           \"the server at {} could not process program source file {}.\",\n           \"No trace file was produced.  The generated traceback follows, other files will still be processed.\"\n           ])\n\n    log.info(\n        \"creating trace data from {} for placement in {}\".format(xml_source, dest_dir)\n    )\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-trace.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Build list of id's, languages, sources into a scratch directory/file\n    tmp_dir = get_temporary_directory()\n    code_filename = os.path.join(tmp_dir, \"codelens.txt\")\n    log.debug(\"Program sources for traces temporarily in {}\".format(code_filename))\n    xsltproc(extraction_xslt, xml_source, code_filename, None, stringparams)\n    # get trace file contents minus trailing blank line\n    with open(code_filename, \"r\") as code_file:\n        contents = code_file.read().rstrip()\n\n    if contents == \"\":\n        log.info(\"no traces found to generate in {}\".format(code_filename))\n        return\n\n    # special line separates groups\n    program_groups = contents.split(\"!end_codelens_trace_group!\")\n    # will be one extra empty group, remove it\n    program_groups.pop()\n    for program_group in program_groups:\n        lines = program_group.split(\"\\n\")\n        visible_id = lines[0]\n        runestone_id = lines[1]\n        if runestone_id.strip() == \"\":\n            log.error(\"No runestone_id found for visible_id {}. Codelens must have a label or be the child of exercise like element with a label.\".format(visible_id))\n            continue\n        trace_filename = lines[2]\n        language = lines[3]\n        source = lines[4]\n        starting_instruction = int(lines[5])\n        questions = lines[6:]\n\n        if language == 'python':\n            url = url_string.format('py')\n        else:\n            # c, cpp, java\n            url = url_string.format(language)\n        # instead use  .decode('string_escape')  somehow\n        # as part of reading the file?\n        source = source.replace(\"\\\\n\", \"\\n\")\n        log.info(\"converting {} source {} to tracefile {}...\".format(language, visible_id, trace_filename))\n\n        # success will replace this empty string\n        trace = \"\"\n        if (language == \"c\") or (language == \"cpp\"):\n            try:\n                r = requests.post(url, data=dict(src=source), timeout=30)\n                if r.status_code == 200:\n                    trace = r.text[r.text.find('{\"code\":') :]\n            except Exception as e:\n                log.critical(traceback.format_exc())\n                log.critical(server_error_msg.format(url, visible_id))\n        elif language == \"java\":\n            try:\n                r = requests.post(url, data=dict(src=source), timeout=30)\n                if r.status_code == 200:\n                    trace = r.text\n            except Exception as e:\n                log.critical(traceback.format_exc())\n                log.critical(server_error_msg.format(url, visible_id))\n        elif language == \"python\":\n            try:\n                r = requests.post(url, data=dict(src=source), timeout=30)\n                if r.status_code == 200:\n                    trace = r.text\n            except Exception as e:\n                log.critical(traceback.format_exc())\n                log.critical(server_error_msg.format(url, visible_id))\n\n        # should now have a trace, except for timing out\n        # no trace, then do not even try to produce a file\n        if trace:\n            import json\n            trace_dict = json.loads(trace)\n            # add startingInstruction to the trace\n            trace_dict[\"startingInstruction\"] = starting_instruction\n            # inject questions into trace\n            if questions:\n                trace_steps = trace_dict.get(\"trace\")\n                for question in questions:\n                    if question.strip() == '':\n                        continue\n                    question_line, answer_raw, feedback, prompt = question.split(\":||:\")\n                    question_line = int(question_line)\n                    answer_type, answer_value = answer_raw.split(\"-\", 2)\n                    question_dict = {\n                      \"text\": prompt,\n                      (\"correctText\" if answer_type == \"literal\" else \"correct\"): answer_value\n                    }\n                    if feedback:\n                        question_dict['feedback'] = feedback\n\n                    for trace_step in trace_steps:\n                        if trace_step['line'] == question_line and trace_step['event'] == \"step_line\":\n                            trace_step['question'] = question_dict\n            trace = json.dumps(trace_dict)\n\n            # We will hardcode in the ID based on the runestone_id as built. It will be a fallback.\n            # But also try to dynamically grab the ID of the containing codelens so\n            # Eventually we could maybe deprecate the hardcoded value.\n            script_template = \"\"\"\n                if (allTraceData === undefined) {{\n                    var allTraceData = {{}};\n                }}\n                (function() {{ // IIFE to avoid variable collision\n                    let codelensID = \"{}\";  //fallback\n                    let partnerCodelens = document.currentScript.parentElement.querySelector(\".pytutorVisualizer\");\n                    if (partnerCodelens) {{\n                        codelensID = partnerCodelens.id;\n                    }}\n                    allTraceData[codelensID] = {};\n                }})();\"\"\"\n            script_template = textwrap.dedent(script_template)\n            trace = script_template.format(runestone_id, trace.rstrip())\n            trace_file = os.path.join(dest_dir, trace_filename)\n            with open(trace_file, \"w\") as f:\n                f.write(trace)\n\n\n################################\n#\n#  Dynamic Exercise Static Representations\n#\n################################\ndef dynamic_substitutions(xml_source, pub_file, stringparams, xmlid_root, dest_dir, ext_rs_methods):\n    # Standard reference locations\n    ptx_dir = get_ptx_path()\n    ptx_xsl_dir = get_ptx_xsl_path()\n    node_exec_cmd = get_executable_cmd(\"node\")\n    # Identify resource files to process dynamic exercises\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-dynamic.xsl\")\n    script = os.path.join(ptx_dir, \"script\", \"dynsub\", \"dynamic_extract.mjs\")\n    # Where to store the results\n    dyn_subs_file = os.path.join(dest_dir, \"dynamic_substitutions.xml\")\n\n    # Make a copy of stringparams to modify\n    stringparams = stringparams.copy()\n\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Always act as though web is the target\n    stringparams[\"host-platform\"] = \"web\"\n\n    # Build temporary json file to include how each dynamic problem is setup\n    # and all of the substitutions that will be required\n    tmp_dir = get_temporary_directory()\n    json_file = os.path.join(tmp_dir, \"dynamic-setup.json\")\n    log.info(\"Creating temporary dynamic exercise setup JSON: {}\".format(json_file))\n    xsltproc(extraction_xslt, xml_source, json_file, tmp_dir, stringparams)\n\n    # Use Node (Deno) to process the JSON to create the XML substitution file\n    log.info(\"Generating substitutions.\")\n    import subprocess\n    try:\n        result = subprocess.run(\n            node_exec_cmd + [\n            # The next two arguments would be used for permissions when change to deno\n            #\"--allow-read={}\".format(json_file),\n            #\"--allow-write={}\".format(dyn_subs_file),\n            script,\n            \"--input={}\".format(json_file),\n            \"--output={}\".format(dyn_subs_file)\n            ],\n            capture_output=True, text=True\n        )\n        # See if successful (empty stdout)\n        if (len(result.stderr) > 0):\n            log.error(f\"Dynamic substitution process failed: {result.stderr}\")\n    except Exception as e:\n        root_cause = str(e)\n        msg = (\"PTX:ERROR:   There was a problem generating dynamic substitutions.\\n\")\n        raise ValueError(msg + root_cause)\n\n################################\n#\n#  WeBWorK Extraction Processing\n#\n################################\n\n\ndef webwork_to_xml(\n    xml_source, pub_file, stringparams, xmlid_root, abort_early, server_params, dest_dir\n):\n    # import what we will need\n    import urllib.parse  # urlparse()\n    import base64  # b64encode()\n    import copy\n    import tarfile\n\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    log.info(\n        \"string parameters passed to extraction stylesheet: {}\".format(stringparams)\n    )\n\n    # dest_dir is already resolved by get_destination_directory() in the CLI:\n    #   explicit -d > managed directories (generated/webwork/) > cwd fallback.\n    # Warn when managed directories are not in use, since WeBWorK output\n    # landing in the current directory is likely unintentional.\n    generated_dir, external_dir = get_managed_directories(xml_source, pub_file)\n    if not generated_dir:\n        msg = \"\".join(\n            [\n                \"a publisher file specifying /publication/source/directories/@generated \",\n                \"is not in use. WeBWorK representations will be in {}\",\n            ]\n        )\n        log.warning(msg.format(dest_dir))\n    ww_reps_dir = dest_dir\n    ww_images_dir = os.path.join(dest_dir, \"images\")\n\n    # per-exercise representation files live in this directory, named {assembly-id}.xml\n\n    # where generated pg problem files will live (each .pg file will usually be deeper in a folder\n    # tree based on document structure and chunking level)\n    ww_pg_dir = os.path.join(ww_reps_dir, \"pg\")\n\n    # create these directories if they don't already exist\n    if not (os.path.isdir(ww_reps_dir)):\n        os.mkdir(ww_reps_dir)\n    if not (os.path.isdir(ww_images_dir)):\n        os.mkdir(ww_images_dir)\n    if not (os.path.isdir(ww_pg_dir)):\n        os.mkdir(ww_pg_dir)\n\n    # execute XSL extraction to get back a tree with fundamental\n    # information about webwork exercises in the project\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-pg.xsl\")\n\n    # Build the tree into a scratch file\n    tmp_dir = get_temporary_directory()\n    extracted_pg_filename = os.path.join(tmp_dir, \"extracted-pg.xml\")\n    log.debug(\"Exctracted PG temporarily in {}\".format(extracted_pg_filename))\n    xsltproc(extraction_xslt, xml_source, extracted_pg_filename, None, stringparams)\n\n    # build necessary variables by reading xml with lxml\n    extracted_pg_xml = ET.parse(extracted_pg_filename).getroot()\n    localization = extracted_pg_xml.get(\"localization\")\n    webwork2_server = extracted_pg_xml.find(\"server-params-pub\").get(\"webwork2-server\")\n    numbered_title_filesafe = extracted_pg_xml.get(\"numbered-title-filesafe\")\n    ww_project_dir = os.path.join(ww_reps_dir, \"pg\", numbered_title_filesafe)\n    if not (os.path.isdir(ww_project_dir)):\n        os.mkdir(ww_project_dir)\n    ww_macros_dir = os.path.join(ww_project_dir, \"macros\")\n    if not (os.path.isdir(ww_macros_dir)):\n        os.mkdir(ww_macros_dir)\n\n    # construct the generated pg files, etc, which may need to be read later for rendering problems\n    webwork_sets(xml_source, pub_file, stringparams, ww_pg_dir, False, False)\n    pg_macros(xml_source, pub_file, stringparams, ww_macros_dir)\n\n    no_publication_file = False\n    if webwork2_server is not None:\n        server_params_pub = {\n            \"webwork2_domain\": webwork2_server,\n            \"courseID\": extracted_pg_xml.find(\"server-params-pub\").get(\"course-id\"),\n            \"user\": extracted_pg_xml.find(\"server-params-pub\").get(\"user-id\"),\n            \"passwd\": extracted_pg_xml.find(\"server-params-pub\").get(\"password\"),\n            \"disableCookies\": '1',\n        }\n        static_processing = extracted_pg_xml.find(\"processing\").attrib[\"static\"]\n        pg_location = extracted_pg_xml.find(\"processing\").attrib[\"pg-location\"]\n    else:\n        no_publication_file = True\n        server_params_pub = {\n            \"webwork2_domain\": \"https://webwork-ptx.aimath.org\",\n            \"courseID\": \"anonymous\",\n            \"user\": \"anonymous\",\n            \"passwd\": \"anonymous\",\n            \"disableCookies\": '1',\n        }\n        static_processing = 'webwork2'\n        pg_location = '/opt/webwork/pg'\n\n    # ideally, pub_file is in use, in which case server_params_pub is nonempty.\n    # if no pub_file in use, rely on server_params argument.\n    # if both present, use server_params_pub and give warning\n    # if neither in use give warning and fail\n    if no_publication_file and server_params is None:\n        raise ValueError(\"Either use a publication file or pass a --server argument\")\n    elif no_publication_file:\n        # We rely on the argument server_params\n        # This is deprecated in favor of using a publication file\n        log.warning(\"WeBWorK server declared using -s argument.\\n\" +\n              \"              Please consider using a publication file with publication/webwork instead.\")\n        server_params = server_params.strip()\n        if (server_params.startswith(\"(\") and server_params.endswith(\")\")):\n            server_params = server_params.strip(\"()\")\n            split_server_params = server_params.split(\",\")\n            webwork2_domain = sanitize_url(split_server_params[0])\n            courseID = sanitize_alpha_num_underscore(split_server_params[1])\n            user = sanitize_alpha_num_underscore(split_server_params[2])\n            passwd = sanitize_alpha_num_underscore(split_server_params[3])\n        else:\n            webwork2_domain = sanitize_url(server_params)\n            courseID        = \"anonymous\"\n            user            = \"anonymous\"\n            passwd          = \"anonymous\"\n    else:\n        # Now we know we had a publication file\n        # Use it, and warn if server_params argument is also present\n        if server_params is not None:\n            log.warning(\"Publication file in use and -s argument passed for WeBWorK server.\\n\"\n                  + \"              -s argument will be ignored.\\n\"\n                  + \"              Using publication/webwork values (or defaults) instead.\")\n        webwork2_domain = sanitize_url(server_params_pub[\"webwork2_domain\"])\n        courseID        = server_params_pub[\"courseID\"]\n        user            = server_params_pub[\"user\"]\n        passwd          = server_params_pub[\"passwd\"]\n\n    webwork2_domain_webwork2 = webwork2_domain + \"/webwork2/\"\n    webwork2_render_rpc = webwork2_domain_webwork2 + \"render_rpc\"\n    webwork2_html2xml = webwork2_domain_webwork2 + \"html2xml\"\n\n    webwork2_version = None\n    webwork2_major_version = None\n    webwork2_minor_version = None\n\n    # Establish if there is any need to use webwork2\n    need_for_webwork2 = (\n        (static_processing == 'webwork2')\n        or (extracted_pg_xml.xpath(\"//problem[@origin='webwork2']\"))\n    )\n\n    # Establish if there is any need to use a socket\n    need_for_socket = (\n        (static_processing == 'local')\n        and (extracted_pg_xml.xpath(\"//problem[@origin!='webwork2']\"))\n    )\n\n    # at least on Mac installations, requests module is not standard\n    try:\n        import requests  # webwork server\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    # Establish WW server version, for live rendering if nothing else\n    # First try to identify the WW version according to what a response hash says it is.\n    # This should work for 2.17 and beyond.\n    try:\n        params_for_version_determination = dict(\n            problemSeed=1,\n            displayMode='PTX',\n            courseID=courseID,\n            user=user,\n            userID=user,\n            passwd=passwd,\n            disableCookies='1',\n            outputformat='raw'\n        )\n        # Always use html2xml for this; we don't know the server version yet\n        version_determination_json = requests.get(url=webwork2_html2xml, params=params_for_version_determination).json()\n        if \"ww_version\" in version_determination_json:\n            webwork2_version = version_determination_json[\"ww_version\"]\n            webwork2_version_match = re.search(\n                r\"((\\d+)\\.(\\d+)(\\+develop)?)\", webwork2_version, re.I\n            )\n    except Exception as e:\n        root_cause = str(e)\n        msg = (\"PTX:ERROR:   There was a problem contacting the WeBWorK server.\\n\")\n        raise ValueError(msg.format(webwork2_domain_webwork2) + root_cause)\n\n    # Now if that failed, try to infer the version from what is printed on the landing page.\n    if webwork2_version == None:\n        try:\n            landing_page = requests.get(webwork2_domain_webwork2)\n        except Exception as e:\n            root_cause = str(e)\n            msg = (\n                \"PTX:ERROR:   There was a problem contacting the WeBWorK server.\\n\"\n                + \"             Is there a WeBWorK landing page at {}?\\n\"\n            )\n            raise ValueError(msg.format(webwork2_domain_webwork2) + root_cause)\n        landing_page_text = landing_page.text\n\n        webwork2_version_match = re.search(\n            r\"WW.VERSION:\\s*((\\d+)\\.(\\d+)(\\+develop)?)\", landing_page_text, re.I\n        )\n\n    try:\n        webwork2_version = webwork2_version_match.group(1)\n        webwork2_major_version = int(webwork2_version_match.group(2))\n        webwork2_minor_version = int(webwork2_version_match.group(3))\n    except AttributeError as e:\n        root_cause = str(e)\n        msg = (\n            \"PTX:ERROR:   PreTeXt was unable to discern the version of the WeBWorK server.\\n\"\n            + \"                         Is there a WeBWorK landing page at {}?\\n\"\n            + \"                         And does it display the WeBWorK version?\\n\"\n        )\n        raise ValueError(msg.format(webwork2_version, webwork2_domain))\n\n    webwork2_path = webwork2_render_rpc if (webwork2_major_version == 2 and webwork2_minor_version >= 19) else webwork2_html2xml\n\n    # initialize dictionaries for all the problem features\n    origin = {}\n    copied_from = {}\n    seed = {}\n    path = {}\n    pghuman = {}\n    pgdense = {}\n    for problem in extracted_pg_xml.iter(\"problem\"):\n        origin[problem.get(\"id\")] = problem.get(\"origin\")\n        seed[problem.get(\"id\")]   = problem.get(\"seed\")\n        path[problem.get(\"id\")]   = problem.get(\"path\")\n        if problem.get(\"copied-from\") is not None:\n            copied_from[problem.get(\"id\")] = problem.get(\"copied-from\")\n        else:\n            copied_from[problem.get(\"id\")] = None\n        if problem.get(\"origin\") == \"generated\":\n            pghuman[problem.get(\"id\")] = problem.find(\"pghuman\").text\n            pgdense[problem.get(\"id\")] = problem.find(\"pgdense\").text\n\n    if webwork2_major_version != 2 or webwork2_minor_version < 16:\n        msg = (\n            \"PTX:ERROR:   PreTeXt supports WeBWorK 2.16 and later, and it appears you are attempting to use version: {}\\n\"\n            + \"                         Server: {}\\n\"\n            + \"                         You may want to use the AIM WeBWorK server at webwork-ptx.aimath.org.\\n\"\n        )\n        raise ValueError(msg.format(ww_version, ww_domain))\n\n    # using a \"Session()\" will pool connection information\n    # since we always hit the same server, this should increase performance\n    if need_for_webwork2:\n        webwork2_session = requests.Session()\n\n    clientsocket = None\n\n    if need_for_socket:\n        import socket\n        import json\n\n        perl_executable_cmd = get_executable_cmd('perl')[0]\n        pgscript = os.path.join(get_ptx_path(), 'script', 'webwork', 'pg-ptx.pl')\n\n        extra_macro_dirs = []\n\n        if os.path.exists(ww_macros_dir):\n            extra_macro_dirs.append('--extraMacroDir')\n            extra_macro_dirs.append(ww_macros_dir)\n\n        if os.path.exists(os.path.join(external_dir, 'macros')):\n            extra_macro_dirs.append('--extraMacroDir')\n            extra_macro_dirs.append(os.path.join(external_dir, 'macros'))\n\n        proc = subprocess.Popen([\n            perl_executable_cmd, pgscript,\n            '--externalFileDir', external_dir,\n            '--tempDirectory', tmp_dir,\n            *extra_macro_dirs,\n        ], stdin=None, stdout=None, stderr=None, env={\"PG_ROOT\": pg_location, \"MOJO_MODE\": 'production'})\n        clientsocket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)\n\n        count = 1\n        while count > 0 and count < 10:\n            try:\n                clientsocket.connect(tmp_dir + '/pg-ptx.sock')\n                count = 0\n            except:\n                ++count\n        if count > 0:\n            raise ValueError(\"PTX:ERROR: unable to establish connection to local socket\")\n\n    NSMAP = {\"xml\": \"http://www.w3.org/XML/1998/namespace\"}\n    XML = \"http://www.w3.org/XML/1998/namespace\"\n    # Choose one of the dictionaries to take its keys as what to loop through\n    for problem in origin:\n        if origin[problem] == \"webwork2\":\n            msg = \"building representations of webwork2-hosted WeBWorK problem\"\n        elif origin[problem] == \"generated\":\n            msg = \"building representations of generated WeBWorK problem\"\n        else:\n            raise ValueError(\n                \"PTX:ERROR: problem origin should be 'webwork2' or 'generated', not '{}'\".format(\n                    origin[problem]\n                )\n            )\n        log.info(msg)\n\n        # If and only if the server is version 2.16, we adjust PG code to use PGtikz.pl\n        # instead of PGlateximage.pl\n        if webwork2_major_version == 2 and webwork2_minor_version == 16 and origin[problem] == \"generated\":\n            pgdense[problem] = pgdense[problem].replace('PGlateximage.pl','PGtikz.pl')\n            pgdense[problem] = pgdense[problem].replace('createLaTeXImage','createTikZImage')\n            pgdense[problem] = pgdense[problem].replace('BEGIN_LATEX_IMAGE','BEGIN_TIKZ')\n            pgdense[problem] = pgdense[problem].replace('END_LATEX_IMAGE','END_TIKZ')\n            pghuman[problem] = pghuman[problem].replace('PGlateximage.pl','PGtikz.pl')\n            pghuman[problem] = pghuman[problem].replace('createLaTeXImage','createTikZImage')\n            pghuman[problem] = pghuman[problem].replace('BEGIN_LATEX_IMAGE','BEGIN_TIKZ')\n            pghuman[problem] = pghuman[problem].replace('END_LATEX_IMAGE','END_TIKZ')\n            # We crudely remove tikzpicture environment delimiters\n            pgdense[problem] = pgdense[problem].replace('\\\\begin{tikzpicture}','')\n            pgdense[problem] = pgdense[problem].replace('\\\\end{tikzpicture}','')\n            pghuman[problem] = pghuman[problem].replace('\\\\begin{tikzpicture}','')\n            pghuman[problem] = pghuman[problem].replace('\\\\end{tikzpicture}','')\n\n        # The code in pgdense[problem] may have `$refreshCachedImages=1;`\n        # We want to keep this for the code that is sent to the server for static harvesting,\n        # but kill this for the code that is used repeatedly by embedded problems in HTML\n        # So here we branch a copy for embedding where we kill `$refreshCachedImages=1;`\n        # But we can't literally just remove that, since an author may have used something\n        # like `$refreshCachedImages  =  'true' ;` so instead, we change `$refreshCachedImages`\n        # to something inert\n        if origin[problem] == \"generated\":\n            embed_problem = re.sub(r'(refreshCachedImages)(?![\\w\\d])', r'\\1Inert', pgdense[problem])\n\n        # make base64 for PTX problems for webwork prior to 2.19\n        if origin[problem] == \"generated\":\n            if webwork2_minor_version < 19:\n                pgbase64 = base64.b64encode(bytes(pgdense[problem], \"utf-8\")).decode(\"utf-8\")\n                embed_problem_base64 = base64.b64encode(bytes(embed_problem, \"utf-8\")).decode(\"utf-8\")\n\n        if static_processing == 'local' and origin[problem] != 'webwork2':\n            socket_params = { \"problemSeed\": seed[problem], \"problemUUID\": problem }\n\n            if origin[problem] == 'generated':\n                socket_params[\"source\"] = pgdense[problem]\n            else:\n                socket_params[\"sourceFilePath\"] = os.path.join(external_dir, path[problem])\n\n            msg = \"sending {} to socket to save in {}: origin is '{}'\"\n            log.info(msg.format(problem, ww_reps_dir, origin[problem]))\n            clientsocket.send(json.dumps(socket_params).encode('utf-8'))\n\n            buffer = bytearray()\n            while True:\n                received = clientsocket.recv(4096)\n                if not received: break\n                buffer.extend(received)\n                if buffer.endswith(b'ENDOFSOCKETDATA'): break\n\n            response = buffer.decode().replace('ENDOFSOCKETDATA', '')\n\n        else:\n            # Construct URL to get static version from server\n            # First establish how the acctual problem code\n            # should be delivered to whatever will render it\n            if webwork2_minor_version >= 19:\n                if origin[problem] == \"webwork2\":\n                    server_params_source = {\"sourceFilePath\":path[problem]}\n                else:\n                    server_params_source = {\"rawProblemSource\":pgdense[problem]}\n            else:\n                # server_params_source is tuple rather than dictionary to enforce consistent order in url parameters\n                if origin[problem] == \"webwork2\":\n                    server_params_source = ((\"sourceFilePath\", path[problem]))\n                else:\n                    server_params_source = ((\"problemSource\", pgbase64))\n\n            if webwork2_minor_version >= 19:\n                server_params = {\n                    \"showSolutions\": \"1\",\n                    \"showHints\": \"1\",\n                    \"displayMode\": \"PTX\",\n                    \"courseID\": courseID,\n                    \"user\": user,\n                    \"passwd\": passwd,\n                    \"outputformat\": \"ptx\",\n                    \"disableCookies\": '1',\n                    \"problemSeed\": seed[problem],\n                    \"problemUUID\": problem,\n                }\n                server_params.update(server_params_source)\n            else:\n                # server_params is tuple rather than dictionary to enforce consistent order in url parameters\n                server_params = (\n                    (\"answersSubmitted\", \"0\"),\n                    (\"showSolutions\", \"1\"),\n                    (\"showHints\", \"1\"),\n                    (\"displayMode\", \"PTX\"),\n                    (\"courseID\", courseID),\n                    (\"userID\", user),\n                    (\"course_password\", passwd),\n                    (\"outputformat\", \"ptx\"),\n                    server_params_source,\n                    (\"problemSeed\", seed[problem]),\n                    (\"problemUUID\", problem),\n                )\n\n            msg = \"sending {} to server to save in {}: origin is '{}'\"\n            log.info(msg.format(problem, ww_reps_dir, origin[problem]))\n            if origin[problem] == \"webwork2\":\n                log.debug(\n                    \"server-to-ptx: {}\\n{}\\n{}\\n{}\".format(\n                        problem, webwork2_path, path[problem], ww_reps_dir\n                    )\n                )\n            elif origin[problem] == \"generated\":\n                log.debug(\n                    \"server-to-ptx: {}\\n{}\\n{}\\n{}\".format(\n                        problem, webwork2_path, pgdense[problem], ww_reps_dir\n                    )\n                )\n\n            # Ready, go out on the wire\n            try:\n                if webwork2_minor_version >= 19:\n                    response = webwork2_session.post(webwork2_path, data=server_params)\n                else:\n                    response = webwork2_session.get(webwork2_path, params=server_params)\n                log.debug(\"Getting problem response from: \" + response.url)\n\n            except requests.exceptions.RequestException as e:\n                root_cause = str(e)\n                msg = \"PTX:ERROR: there was a problem collecting a problem,\\n Server: {}\\nRequest Parameters: {}\\n\"\n                raise ValueError(msg.format(webwork2_path, server_params) + root_cause)\n\n            # TODO: Instead of this use a different variable shared by the local script approach.\n            response = response.text\n\n        # Check for errors with PG processing\n        # Get booleans signaling badness: file_empty, no_compile, bad_xml, no_statement\n        file_empty = \"ERROR:  This problem file was empty!\" in response\n\n        no_compile = (\n            \"ERROR caught by Translator while processing\" in response\n        )\n\n        bad_xml = False\n        try:\n            response_root = ET.fromstring(bytes(response, encoding='utf-8'))\n        except:\n            response_root = ET.Element(\"webwork\")\n            bad_xml = True\n\n        no_statement = False\n        if not bad_xml:\n            if response_root.find(\".//statement\") is None:\n                no_statement = True\n        badness = file_empty or no_compile or bad_xml or no_statement\n\n        # Custom responses for each type of badness\n        # message for terminal log\n        # tip reminding about -a (abort) option\n        # value for @failure attribute in static element\n        # base64 for a shell PG problem that simply indicates there was an issue and says what the issue was\n        badness_msg = \"\"\n        badness_tip = \"\"\n        badness_type = \"\"\n        badness_base64 = \"\"\n        # NB: in WeBWorK 2.17+, the response from a nonexistent problem is not distinguishable from\n        # the response from a problem that has broken code. So even when a file is empty, file_empty\n        # will be false and instead no_compile will be true.\n        if file_empty:\n            badness_msg = \"PTX:ERROR: WeBWorK problem {} was empty\\n\"\n            badness_tip = \"\"\n            badness_type = \"empty\"\n            badness_base64 = \"RE9DVU1FTlQoKTsKbG9hZE1hY3JvcygiUEdzdGFuZGFyZC5wbCIsIlBHTUwucGwiLCJQR2NvdXJzZS5wbCIsKTtURVhUKGJlZ2lucHJvYmxlbSgpKTtDb250ZXh0KCdOdW1lcmljJyk7CgpCRUdJTl9QR01MCldlQldvcksgUHJvYmxlbSBGaWxlIFdhcyBFbXB0eQoKRU5EX1BHTUwKCkVORERPQ1VNRU5UKCk7\"\n        elif no_compile:\n            badness_msg = (\n                \"PTX:ERROR: WeBWorK problem {} with seed {} is either empty or failed to compile  \\n{}\\n\"\n            )\n            badness_tip = (\n                \"  Use -a to halt with full PG and returned content\"\n                if (origin[problem] == \"generated\")\n                else \"  Use -a to halt with returned content\"\n            )\n            badness_type = \"compile\"\n            badness_base64 = \"RE9DVU1FTlQoKTsKbG9hZE1hY3JvcygiUEdzdGFuZGFyZC5wbCIsIlBHTUwucGwiLCJQR2NvdXJzZS5wbCIsKTtURVhUKGJlZ2lucHJvYmxlbSgpKTtDb250ZXh0KCdOdW1lcmljJyk7CgpCRUdJTl9QR01MCldlQldvcksgUHJvYmxlbSBEb2VzIE5vdCBFeGlzdCBPciBEaWQgTm90IENvbXBpbGUKCkVORF9QR01MCgpFTkRET0NVTUVOVCgpOw==\"\n        elif bad_xml:\n            badness_msg = \"PTX:ERROR: WeBWorK problem {} with seed {} does not return valid XML  \\n  It may not be PTX compatible  \\n{}\\n\"\n            badness_tip = \"  Use -a to halt with returned content\"\n            badness_type = \"xml\"\n            badness_base64 = \"RE9DVU1FTlQoKTsKbG9hZE1hY3JvcygiUEdzdGFuZGFyZC5wbCIsIlBHTUwucGwiLCJQR2NvdXJzZS5wbCIsKTtURVhUKGJlZ2lucHJvYmxlbSgpKTtDb250ZXh0KCdOdW1lcmljJyk7CgpCRUdJTl9QR01MCldlQldvcksgUHJvYmxlbSBEaWQgTm90IEdlbmVyYXRlIFZhbGlkIFhNTAoKRU5EX1BHTUwKCkVORERPQ1VNRU5UKCk7\"\n        elif no_statement:\n            badness_msg = \"PTX:ERROR: WeBWorK problem {} with seed {} does not have a statement tag \\n  Maybe it uses something other than BEGIN_TEXT or BEGIN_PGML to print the statement in its PG code \\n{}\\n\"\n            badness_tip = \"  Use -a to halt with returned content\"\n            badness_type = \"statement\"\n            badness_base64 = \"RE9DVU1FTlQoKTsKbG9hZE1hY3JvcygiUEdzdGFuZGFyZC5wbCIsIlBHTUwucGwiLCJQR2NvdXJzZS5wbCIsKTtURVhUKGJlZ2lucHJvYmxlbSgpKTtDb250ZXh0KCdOdW1lcmljJyk7CgpCRUdJTl9QR01MCldlQldvcksgUHJvYmxlbSBEaWQgTm90IEhhdmUgYSBbfHN0YXRlbWVudHxdKiBUYWcKCkVORF9QR01MCgpFTkRET0NVTUVOVCgpOw==\"\n\n        # If we are aborting upon recoverable errors...\n        if abort_early:\n            if badness:\n                debugging_help = response\n                if origin[problem] == \"generated\" and no_compile:\n                    debugging_help += \"\\n\" + pghuman[problem]\n                raise ValueError(\n                    badness_msg.format(\n                        path[problem], seed[problem], debugging_help\n                    )\n                )\n\n        # Now a block where we edit the text from the response before using it to build XML\n        # First some special handling for verbatim in answers.\n        # Then change targets of img (while downloading the original target as an image file)\n\n        # When a PG Math Object is a text string that has to be rendered in a math environment,\n        # depending on the string's content and the version of WeBWorK, it can come back as:\n\n        # \\text{string}            only when the string is built solely from -A-Za-z0-9 ,.;:+=?()[]\n        # \\verb\\x1Fstring\\x1F      WW HTML output for 2.15+\n        # {\\verb\\rstring\\r}        WW PTX (and TeX) output starting with 2.15, hopefully stable\n\n        # We would like to replace all instances with \\text{string},\n        # but in addition to character escaping issues, \\text does not behave equally in TeX and MathJax.\n        # Certain characters _need_ to be escaped in TeX, but must _not_ be escaped in MathJax.\n        # So we make the change after checking that none of the dangerous characters are present,\n        # and otherwise leave \\verb in place. But we replace the delimiter with the first available\n        # \"normal\" character.\n        # \\r would be valid XML, but too unpredictable in translations\n\n        verbatim_split = re.split(\n            r\"(\\\\verb\\x1F.*?\\x1F|\\\\verb\\r.*?\\r)\", response\n        )\n        response_text = \"\"\n        for item in verbatim_split:\n            if re.match(r\"^\\\\verb(\\x1F|\\r).*?\\1$\", item):\n                (original_delimiter, verbatim_content) = re.search(\n                    r\"\\\\verb(\\x1F|\\r)(.*?)\\1\", item\n                ).group(1, 2)\n                if set(\n                    [\"#\", \"%\", \"&\", \"<\", \">\", \"\\\\\", \"^\", \"_\", \"`\", \"|\", \"~\"]\n                ).intersection(set(list(verbatim_content))):\n                    index = 33\n                    while index < 127:\n                        if (\n                            index in [42, 34, 38, 39, 59, 60, 62]\n                            or chr(index) in verbatim_content\n                        ):\n                            # the one character you cannot use with \\verb as a delimiter is chr(42), *\n                            # the others excluded here are the XML control characters,\n                            # and semicolon for good measure (as the closer for escaped characters)\n                            index += 1\n                        else:\n                            break\n                    if index == 127:\n                        log.warning(\n                            \"Could not find delimiter for verbatim expression\"\n                        )\n                        return \"!Could not find delimiter for verbatim expression.!\"\n                    else:\n                        response_text += item.replace(original_delimiter, chr(index))\n                else:\n                    # These three characters are escaped in both TeX and MathJax\n                    text_content = verbatim_content.replace(\"$\", \"\\\\$\")\n                    text_content = text_content.replace(\"{\", \"\\\\{\")\n                    text_content = text_content.replace(\"}\", \"\\\\}\")\n                    response_text += \"\\\\text{\" + text_content + \"}\"\n            else:\n                response_text += item\n\n        # need to loop through content looking for images with pattern:\n        #\n        #   <image source=\"relative-path-to-temporary-image-on-server\"\n        #\n        graphics_pattern = re.compile(r'<image.*?source=\"([^\"]+)\"')\n\n        # replace filenames, download images with new filenames\n        count = 0\n        # ww_image_url will be the URL to an image file used by the problem on the ww server\n        for match in re.finditer(graphics_pattern, response_text):\n            ww_image_full_path = match.group(1)\n            if static_processing == 'local' and origin[problem] != 'webwork2':\n                ww_image_scheme = ''\n            else:\n                ww_image_url = urllib.parse.urljoin(webwork2_domain, ww_image_full_path)\n                # strip away the scheme and location, if present (e.g 'https://webwork-ptx.aimath.org/')\n                ww_image_url_parsed = urllib.parse.urlparse(ww_image_url)\n                ww_image_scheme = ww_image_url_parsed.scheme\n                ww_image_full_path = ww_image_url_parsed.path\n            count += 1\n            # split the full path into (path, file). path could theoretically be empty.\n            ww_image_path, ww_image_filename = os.path.split(ww_image_full_path)\n            # split the filename into (name, extension). extension can be empty or like '.png'.\n            ww_image_name, image_extension = os.path.splitext(ww_image_filename)\n            # rename, eg, webwork-representations/webwork-5-image-3.png\n            ptx_image_name = problem + \"-image-\" + str(count)\n            ptx_image_filename = ptx_image_name + image_extension\n            if image_extension == \".tgz\":\n                ptx_image = ptx_image_name\n            else:\n                ptx_image = ptx_image_name + image_extension\n            if ww_image_scheme:\n                image_url = ww_image_url\n            else:\n                image_url = urllib.parse.urljoin(webwork2_domain, ww_image_full_path)\n            # modify PTX problem source to include local versions\n            if generated_dir:\n                if \"xmlns:pi=\" not in response_text:\n                    response_text = response_text.replace(\n                        \"<webwork>\",\n                        '<webwork xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\">',\n                    )\n                response_text = re.sub(\n                    r\"(<image[^>]*? )source=\",\n                    r\"\\1pi:generated=\",\n                    response_text,\n                    count=0,\n                    flags=0,\n                )\n                # the filepath constructed below will be used for web addresses of image files\n                # and filepaths in LaTeX for image inclusion. Even for a Windows user, forward\n                # slashes are in play, not backward slashes. So we inteentionally do not use\n                # os.path.join(). Perhaps in the future we decide to use a posix path constructor.\n                response_text = response_text.replace(\n                    ww_image_full_path, \"webwork/images/\" + ptx_image\n                )\n            else:\n                # see note above about posix path construction\n                response_text = response_text.replace(\n                    ww_image_full_path, \"images/\" + ptx_image\n                )\n            if static_processing == 'local' and origin[problem] != 'webwork2':\n                image_local_path = ww_image_full_path.replace('/pg_files/tmp', tmp_dir)\n                destination_image_file = os.path.join(ww_images_dir, ptx_image_filename)\n\n                try:\n                    log.info(\n                        \"saving image file {} {} in {}\".format(\n                            ptx_image_filename,\n                            \"(contents)\" if image_extension == \".tgz\" else \"\",\n                            ww_images_dir\n                        )\n                    )\n                    shutil.copy2(image_local_path, destination_image_file)\n                except Exception as e:\n                    raise ValueError(\"PTX:ERROR:   There was an error copying the image file {} to {}.\\n\".format(\n                        image_local_path, destination_image_file\n                    ) + str(e))\n            else:\n                # download actual image files\n                # http://stackoverflow.com/questions/13137817/how-to-download-image-using-requests\n                try:\n                    image_response = webwork2_session.get(image_url)\n                except requests.exceptions.RequestException as e:\n                    root_cause = str(e)\n                    msg = \"PTX:ERROR: there was a problem downloading an image file,\\n URL: {}\\n\"\n                    raise ValueError(msg.format(image_url) + root_cause)\n                # and save the image itself\n                destination_image_file = os.path.join(ww_images_dir, ptx_image_filename)\n                try:\n                    with open(destination_image_file, \"wb\") as image_file:\n                        msg = \"saving image file {} {} in {}\"\n                        qualifier = \"\"\n                        if image_extension == \".tgz\":\n                            qualifier = \"(contents)\"\n                        log.info(msg.format(ptx_image_filename, qualifier, ww_images_dir))\n                        image_file.write(image_response.content)\n                except Exception as e:\n                    root_cause = str(e)\n                    msg = \"PTX:ERROR: there was a problem saving an image file,\\n Filename: {}\\n\"\n                    raise ValueError(\n                        msg.format(destination_image_file)\n                        + root_cause\n                    )\n            # unpack if it's a tgz\n            if image_extension == \".tgz\":\n                tgzfile = tarfile.open(destination_image_file)\n                tgzfile.extractall(os.path.join(ww_images_dir))\n                tgzfile.close()\n                # template for error message(s)\n                msg = \"{} did not contain a .{} file\"\n                # attempt to recover four file formats, with warnings\n                for ext in [\"tex\", \"pdf\", \"svg\", \"png\"]:\n                    try:\n                        os.rename(\n                            os.path.join(ww_images_dir, \"image.{}\".format(ext)),\n                            os.path.join(ww_images_dir, ptx_image_name + \".{}\".format(ext)),\n                        )\n                    except:\n                        log.warning(msg.format(destination_image_file, ext))\n                os.remove(os.path.join(ww_images_dir, ptx_image_filename))\n\n        # Use \"webwork-reps\" as the root tag for this problem's representation file\n        webwork_reps = ET.Element(\"webwork-reps\", nsmap=NSMAP)\n        # There once was a \"version 1\" structure to the representations file before \"version 2\".\n        # For a while, both were supported. Neither was officially defined anywhere, and now\n        # \"version 1\" is a thing of the past. We still mark the current representations file as\n        # \"version 2\" here, but it has no effect as all the code elsewhere now assumes \"version 2\".\n        webwork_reps.set(\"version\", \"2\")\n        webwork_reps.set(\"webwork2_major_version\", str(webwork2_major_version))\n        webwork_reps.set(\"webwork2_minor_version\", str(webwork2_minor_version))\n        webwork_reps.set(\"{%s}id\" % (XML), \"extracted-\" + problem)\n        webwork_reps.set(\"assembly-id\", problem)\n        static = ET.SubElement(webwork_reps, \"static\")\n        static.set(\"seed\", seed[problem])\n        if origin[problem] == \"webwork2\":\n            static.set(\"source\", path[problem])\n\n        # If there is \"badness\"...\n        # Build 'shell' problems to indicate failures.  Fall through (no\n        # \"continue\") so that rendering-data, pg, and the per-exercise file\n        # write below all execute — those sections have explicit \"if badness\"\n        # branches that produce a minimal faux problem, and assembly relies\n        # on the file existing for every WeBWorK exercise.\n        if badness:\n            log.error(badness_msg.format(path[problem], seed[problem], badness_tip))\n            static.set(\"failure\", badness_type)\n            statement = ET.SubElement(static, \"statement\")\n            p = ET.SubElement(statement, \"p\")\n            p.text = badness_msg.format(path[problem], seed[problem], badness_tip)\n        else:\n            # Start appending XML children\n            response_root = ET.fromstring(bytes(response_text, encoding='utf-8'))\n\n            # This recursive function is needed in the case of nested tasks.\n            # It is written in such a way to handle task with no nesting, and even an exercise without any task.\n\n            def static_webwork_level(write, read):\n                # (tree we are building, tree we take from)\n                # since write is a tree and read is a tree, we use deepcopy to make sure\n                # that when we append nodes we are appending new ones, not intertwining the trees\n\n                tasks = read.findall(\"./task\")\n                if tasks:\n                    titles = read.xpath(\"./title\")\n                    if titles:\n                        for ttl in list(titles):\n                            title = copy.deepcopy(ttl)\n                            write.append(title)\n                    introductions = read.xpath(\n                        \"./statement[following-sibling::task]|./statement[following-sibling::stage]\"\n                    )\n                    if introductions:\n                        introduction = ET.SubElement(write, \"introduction\")\n                        for intro in list(introductions):\n                            for child in intro:\n                                chcopy = copy.deepcopy(child)\n                                introduction.append(chcopy)\n                    for tsk in list(tasks):\n                        task = ET.SubElement(write, \"task\")\n                        static_webwork_level(task, tsk)\n                    conclusions = read.xpath(\"./statement[preceding-sibling::task]\")\n                    if conclusions:\n                        conclusion = ET.SubElement(write, \"conclusion\")\n                        for conc in list(conclusions):\n                            for child in conc:\n                                chcopy = copy.deepcopy(child)\n                                conclusion.append(chcopy)\n                else:\n                    titles = read.xpath(\"./title\")\n                    if titles:\n                        for ttl in list(titles):\n                            title = copy.deepcopy(ttl)\n                            write.append(title)\n                    statements = read.xpath(\n                        \"./statement[not(preceding-sibling::task or following-sibling::task)]\"\n                    )\n                    if statements:\n                        statement = ET.SubElement(write, \"statement\")\n                        for stat in list(statements):\n                            for child in stat:\n                                chcopy = copy.deepcopy(child)\n                                statement.append(chcopy)\n                    hints = read.xpath(\"./hint\")\n                    if hints:\n                        hint = ET.SubElement(write, \"hint\")\n                        for hnt in list(hints):\n                            for child in hnt:\n                                chcopy = copy.deepcopy(child)\n                                hint.append(chcopy)\n                    answer_names = read.xpath(\".//fillin/@name|.//var/@name|.//ul/@name|.//ol/@name|.//dl/@name\")\n                    answer_hashes = response_root.find(\"./answerhashes\")\n                    if answer_hashes is not None:\n                        for ans in list(answer_hashes):\n                            if ans.get(\"ans_name\") in list(answer_names):\n                                correct_ans = ans.get(\"correct_ans\", \"\")\n                                correct_ans_latex_string = ans.get(\n                                    \"correct_ans_latex_string\", \"\"\n                                )\n                                if correct_ans != \"\" or correct_ans_latex_string != \"\":\n                                    answer = ET.SubElement(write, \"answer\")\n                                    p = ET.SubElement(answer, \"p\")\n                                    if correct_ans_latex_string:\n                                        m = ET.SubElement(p, \"m\")\n                                        m.text = correct_ans_latex_string\n                                    elif correct_ans:\n                                        p.text = correct_ans\n                    solutions = read.xpath(\"./solution\")\n                    if solutions:\n                        solution = ET.SubElement(write, \"solution\")\n                        for sol in list(solutions):\n                            for child in sol:\n                                chcopy = copy.deepcopy(child)\n                                solution.append(chcopy)\n\n            static_webwork_level(static, response_root)\n\n        # Add rendering-data element with attribute data for rendering a problem\n        if (badness or origin[problem] == \"generated\" or (webwork2_minor_version < 19 and origin[problem] != \"webwork2\")):\n            source_key = \"problemSource\"\n        else:\n            source_key = \"sourceFilePath\"\n\n        if badness:\n            source_value = badness_base64\n        else:\n            if origin[problem] == \"webwork2\":\n                source_value = path[problem]\n            else:\n                if webwork2_minor_version < 19:\n                    source_value = embed_problem_base64\n                else:\n                    if copied_from[problem] is not None:\n                        source_value = path[copied_from[problem]]\n                    else:\n                        source_value = path[problem]\n\n        rendering_data = ET.SubElement(webwork_reps, \"rendering-data\")\n        rendering_data.set(source_key, source_value)\n        rendering_data.set(\"origin\", origin[problem])\n        rendering_data.set(\"domain\", webwork2_domain)\n        rendering_data.set(\"course-id\", courseID)\n        rendering_data.set(\"user-id\", user)\n        rendering_data.set(\"passwd\", passwd)\n        rendering_data.set(\"language\", localization)\n\n        # Add PG for PTX-authored problems\n        # Empty tag with @source for server problems\n        pg = ET.SubElement(webwork_reps, \"pg\")\n        try:\n            pg.set(\"copied-from\", copied_from[problem])\n        except Exception:\n            pass\n\n        if origin[problem] == \"generated\":\n            if badness:\n                pg_shell = \"DOCUMENT();\\nloadMacros('PGstandard.pl','PGML.pl','PGcourse.pl');\\nTEXT(beginproblem());\\nBEGIN_PGML\\n{}END_PGML\\nENDDOCUMENT();\"\n                formatted_pg = pg_shell.format(\n                    badness_msg.format(path[problem], seed[problem], badness_tip)\n                )\n            else:\n                formatted_pg = pghuman[problem]\n            pg.text = ET.CDATA(\"\\n\" + formatted_pg)\n        elif origin[problem] == \"webwork2\":\n            pg.set(\"source\", path[problem])\n\n        # write one file per exercise, named by @assembly-id\n        include_file_name = os.path.join(ww_reps_dir, problem + \".xml\")\n        try:\n            with open(include_file_name, \"wb\") as include_file:\n                include_file.write(\n                    ET.tostring(\n                        webwork_reps,\n                        encoding=\"utf-8\",\n                        xml_declaration=True,\n                        pretty_print=True,\n                    )\n                )\n        except Exception as e:\n            root_cause = str(e)\n            msg = \"PTX:ERROR: there was a problem writing a problem to the file: {}\\n\"\n            raise ValueError(msg.format(include_file_name) + root_cause)\n\n    # close session to avoid resource wanrnings\n    try:\n        webwork2_session.close()\n    except:\n        pass\n\n    # close the socket\n    if clientsocket:\n        clientsocket.send(b'quit')\n\n################################\n#\n#  WeBWorK Problem Sets\n#\n################################\n\n\ndef webwork_sets(xml_source, pub_file, stringparams, dest_dir, tgz, need_macros):\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"pretext-ww-problem-sets.xsl\")\n    tmp_dir = get_temporary_directory()\n    xsltproc(extraction_xslt, xml_source, None, output_dir=tmp_dir, stringparams=stringparams)\n    # We don't explicitly know the name of the folder that has all of the sets\n    # But it is the only thing in the tmp_dir\n    folder_name = os.listdir(tmp_dir)[0]\n    folder = os.path.join(tmp_dir, folder_name)\n    macros_folder = os.path.join(folder, 'macros')\n    os.mkdir(macros_folder)\n    if need_macros:\n        pg_macros(xml_source, pub_file, stringparams, macros_folder)\n    if tgz:\n        archive_file = os.path.join(tmp_dir, folder_name + \".tgz\")\n        targz(archive_file, folder)\n        shutil.copy2(archive_file, dest_dir)\n    else:\n        # with multiple files, we need to copy a tree\n        # see comments at  copy_build_directory()\n        # before replacing with  shutil.copytree()\n        copy_build_directory(folder, os.path.join(dest_dir,folder_name))\n\n\n################################\n#\n#  WeBWorK PG Macro Library\n#\n################################\n\n\ndef pg_macros(xml_source, pub_file, stringparams, dest_dir):\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"support\", \"pretext-pg-macros.xsl\")\n    xsltproc(extraction_xslt, xml_source, None, output_dir=dest_dir, stringparams=stringparams)\n\n############################################################\n#\n#  References and Citations via Citation Stylesheet Language\n#\n############################################################\n\n# A helper function to clean up references and Citations\n# Likely preferable to use a CiteProc formatter object\ndef _pretextify(biblio):\n    \"\"\"Convert a string from CiteProc light HTML markup to PreTeXt internal markup\"\"\"\n\n    # biblio: some string formated by the CiteProc HTML formatter\n    # Return: string with better PreTeXt (internal) markup\n\n    # italics\n    biblio = re.sub(r'<i>', r'<pi:italic>', biblio)\n    biblio = re.sub(r'</i>', r'</pi:italic>', biblio)\n    # bold\n    biblio = re.sub(r'<b>', r'<pi:bold>', biblio)\n    biblio = re.sub(r'</b>', r'</pi:bold>', biblio)\n    # Unicode en dash, U+2013, e.g. for date ranges\n    # Escape sequence only, not \"raw\" r\n    biblio = re.sub('\\u2013', r'<ndash/>', biblio)\n    # TODO: curly quotes as left/right pair/group\n    # THEN as left/right characters, U+201C, U+201D\n    biblio = re.sub('\\u201C', r'<lq/>', biblio)\n    biblio = re.sub('\\u201D', r'<rq/>', biblio)\n\n    return biblio\n\n\ndef references(xml_source, pub_file, stringparams, xmlid_root, dest_dir):\n\n    ### Verify need for CSL processing ###\n    #\n    # * Examine publisher file, get string for CSL file name\n    # * Use of CSL styles in \"opt-in\", condition here\n    # * Abandon with an error message if not possible\n\n    # Compute publisher variable report one time, collecting results\n    pub_vars = get_publisher_variable_report(xml_source, pub_file, stringparams)\n    # style file name selected by the publisher, no path information\n    # citeproc-py looks in their DATAPATH/STYLES_PATH = data/styles\n    # so place by a given style file by hand right now\n    # Call below does not need an extension, so we do not supply it\n    csl_style = get_publisher_variable(pub_vars, 'csl-style-file')\n    # XSL \"value-of\" for boolean reports strings \"true\" or \"false\"\n    using_csl_styles = get_publisher_variable(pub_vars, 'b-using-csl-styles')\n\n    if using_csl_styles == \"false\":\n        msg = \" \".join([\"requesting formatted references and citations is not possible\",\n              \"without a CSL style file specified in the publication file.\",\n              \"No action is being taken.\"])\n        log.error(msg)\n        # bail out and do not do *anything*\n        return\n\n    ### Imports, Constants, Helpers ###\n    #\n    import json  # parse JSON CSL for cite\n\n    # Requires the \"citeproc-py\" Python package to do\n    # most (all?) of the processing of a citation\n    # https://github.com/citeproc-py/citeproc-py\n\n    import citeproc.source.json  # CiteProcJSON\n    import citeproc  # CitationStylesStyle, CitationStylesBibliography, formatter, CitationItem, Citation\n\n    # Necessary namespace information for creating\n    # a file of bibliographic information later\n    # \"cs\"/CSL might be avoided when we better\n    #   understand querying the style with CiteProc\n    XML = \"http://www.w3.org/XML/1998/namespace\"\n    PI = \"http://pretextbook.org/2020/pretext/internal\"\n    CSL = \"http://purl.org/net/xbiblio/csl\"\n    NSMAP = {\"xml\": XML, \"pi\": PI, \"cs\": CSL}\n\n    # callback for non-existent citation\n    # copied from citeproc-py example\n    def warn(citation_item):\n        log.warning(\"PTX:WARNING: Reference with key '{}' not found in the bibliography.\"\n          .format(citation_item.key))\n\n    ### XSL Stylesheet To Analyze Author's Source Bibliography ###\n    #\n    # * xsl/extract-biblio-csl.xsl\n    # * JSON blob of \"biblio\" information, indexed by biblio/@xml:id\n    # * Note that author's markup (e.g. \"m\" in a title) was converted\n    #   to text as it entered the JSON blob\n    # * Space separated list of xref/@ref, indexed by xref/@xml:id,\n    #   only when the xref/@ref points to backmatter/references/biblio\n\n    stringparams = stringparams.copy()\n\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-biblio-csl.xsl\")\n\n    # And a place to work and a file there for result tree\n    tmp_dir = get_temporary_directory()\n    biblio_xml = os.path.join(tmp_dir, \"biblio-csl.xml\")\n\n    # Harvest bibliographic items and citations, converted to JSON\n    xsltproc(extraction_xslt, xml_source, biblio_xml, None, stringparams)\n\n    # parse for lxml access\n    biblio_tree = ET.parse(biblio_xml)\n\n    ### Initialize CSL Style File ###\n    #\n    # * Examine publisher file, get string for CSL file name\n    # * Needs to be moved manually to <cite-proc>/data/styles\n    # * Need to automate placing the style file\n    # * We interrogate the punctuation of citations\n\n    # Initialize use of the chosen style\n    style = citeproc.CitationStylesStyle(csl_style, validate=False)\n\n    # The citepoc-py \"CitationStylesStyle\" object is derived ultimately\n    # from an lxml Element Tree in a \"xml\" property of the object.  We\n    # can inspect this as needed, but there are better ways provided by\n    # the package.  Still, we preserve a bit of code that was functional\n    # on 2025-05-29 in case an example is useful later.  The\n    # CSL  /style/citation/layout  XML element has children that describe\n    # how a citation is rendered.  Compare this with ways to access\n    # (and manipulate!) these elements below.\n    #\n    # style_layout = style.xml.xpath(\"/cs:style/cs:citation/cs:layout\", namespaces=NSMAP)[0]\n    # citation_punct = style_layout.attrib\n    # if \"prefix\" in citation_punct:\n    #     prefix = citation_punct[\"prefix\"]\n    # else:\n    #     prefix = \"\"\n\n    # Some aspects of styles are not supported\n    # and some influence behavior later.\n\n    # style/@class: \"in-text\" or \"note\"\n    style_class = style.root.get(\"class\")\n    # Bail-out on a value we do not know\n    if not(style_class in [\"in-text\", \"note\"]):\n        msg = \" \".join(['The requested CSL style file (\"{}\") has a /style/@class',\n                        'attribute value (\"{}\") we do not recognize.',\n                        'No action is being taken.'])\n        log.error(msg.format(csl_style, style_class))\n        return\n    # Bail-out for footnote/endnote styles\n    if style_class == \"note\":\n        msg = \" \".join(['The requested CSL style file (\"{}\") uses a footnote/endnote',\n                        'style for citations, which PreTeXt does not yet support.',\n                        'No action is being taken.'])\n        log.error(msg.format(csl_style))\n        return\n\n\n    # We need to know about a \"numeric\" style later\n    # style/info/category/@citation-format: \"numeric\", \"author-date\", \"note\"\n    style_citation_format = style.root.info.category.get(\"citation-format\")\n    # Bail-out on a value we do not know\n    if not(style_citation_format in [\"numeric\", \"author-date\", \"note\"]):\n        msg = \" \".join(['The requested CSL style file (\"{}\") has a'\n                        '/style/info/category/@citation-format',\n                        'attribute value (\"{}\") we do not recognize.',\n                        'No action is being taken.'])\n        log.error(msg.format(csl_style, style_citation_format))\n        return\n    is_numeric = (style_citation_format == \"numeric\")\n\n    \"\"\"\n    Typical CSL XML structure for the suffix used with numeric\n    identification, for example\n        \"6. \"    ->  \". \"\n        \"[6]\"    ->  \"]\"\n        \"(6)  \"  ->  \")  \"\n\n    <bibliography entry-spacing=\"0\" second-field-align=\"flush\">\n        <layout suffix=\".\">\n            <text variable=\"citation-number\" prefix=\"[\" suffix=\"]\"/>\n    \"\"\"\n\n    # Assume reference is identified numerically until shown otherwise.\n    # If numeric, grab the \"suffix\" to help with parsing out numeric\n    # identification is loosely structured/formatted output from the\n    # cite processor.\n    numeric_suffix = None\n    if is_numeric:\n        layout_element  = style.xml.xpath(\"/cs:style/cs:bibliography/cs:layout/cs:text[@variable = 'citation-number']\", namespaces=NSMAP)[0]\n        numeric_suffix = layout_element.get(\"suffix\")\n\n\n    ### Import JSON References to CiteProc ###\n    #\n    # \"references\" collects a single overall JSON blob of the\n    # PTX \"references\" backmatter division. We \"load\" the json\n    # and feed it to the CiteProcJSON constructor\n    # lxml makes a list of length 1, which we massage some\n\n    references_blob = biblio_tree.xpath(\"/pi:pretext-biblio-csl/pi:biblio-csl\", namespaces=NSMAP)\n    json_raw = references_blob[0].text\n    json_parsed = json.loads(json_raw)\n    # Process the JSON data to generate a citeproc-py BibliographySource.\n    references_source = citeproc.source.json.CiteProcJSON(json_parsed)\n    # Initialize a CitationStylesBibliography with a style,\n    # the internalized source, and a formatter.  You would think\n    # we had nicely formatted reference items now. No, we need\n    # to supply the actual citations\n    references = citeproc.CitationStylesBibliography(style, references_source, citeproc.formatter.html)\n    # You would think we had nicely formatted reference items now.\n    # No, we need to supply the actual citations since their\n    # appearance and order affects the references.  For example,\n    # if a reference is never cited, it does not appear in the\n    # references.\n\n    ### Citations ###\n    #\n    # * Retrieve citations/xref from analysis of author's source,\n    #   as a space separated list of @ref that point to \"biblio\"\n    # * Per citation/xref make a list of CitationItem that\n    #   correspond to the @ref values/ids.\n    # * Wrap as a Citation object representing a multi-target\n    #   citation from the author.\n    # * Register each one with the CiteProc references (bibliography)\n\n    citation_xref = biblio_tree.xpath(\"/pi:pretext-biblio-csl/pi:xref-csl\", namespaces=NSMAP)\n\n    # citations/xref never get sorted until part of a\n    # multi-part overall citation.  Here are two useful\n    # parallel Python lists we can make now and use later\n\n    # A citation has an @xml:id on an originating xref, it is\n    # the @id attribute in the XML derived from the author's source\n    xref_ids = [c.attrib[\"id\"] for c in citation_xref]\n\n    # Each citation is a list, @ref in author's source of the\n    # values of @xml:id on the biblio.  XML has a space-separated list\n    xref_refs = [c.text.split() for c in citation_xref]\n\n    # Now make CiteProc objects, and register\n    citeproc_citations = []\n    for ref_list in xref_refs:\n        citeproc_citation_items = []\n        for ref in ref_list:\n            citeproc_citation_items.append(citeproc.CitationItem(ref))\n        citeproc_citation = citeproc.Citation(citeproc_citation_items)\n        citeproc_citations.append(citeproc_citation)\n        # CiteProc *must* see a Citation() being registered.\n        references.register(citeproc_citation)\n\n    ### References formatted ###\n    #\n    # * Sort the references since we will eventually absorb \"biblio\"\n    #   from an external BibTeX-like file. And have no real control\n    #   over ordering.  Presumably different styles will have different\n    #   sort orders.\n    # * Replace resuts of HTML formatter with PreTeXt internal\n    #   non-semantic font-changing markup.  And other sensible\n    #   PreTeXt markup.\n    # * Eventually we will have an integrated formatter\n    # * Wrap up as \"csl-biblio\" elements to pass into PreTeXt\n\n    # Here is the formatted version: a string representation of each reference\n    # Author's XML is here still and is still text.\n    # Note: attributes the pre-processor added are being capitalized?\n    # str() is necessary here, and results are strings, not objects [checked]\n    # Note markup conversion from CiteProc HTML to \"internal\" PreTeXt (mostly)\n    references.sort()\n    references_formatted = [_pretextify(str(item)) for item in references.bibliography()]\n\n\n    # references.keys gets sorted along, since these are the biblio/@xml:id,\n    # so we can continue to track the sorted version of the references\n    # for references with numeric identifiers, we split that identifier\n    # off as an attribute, which presumes it has no markup\n    references_wrapped = []\n    biblio_pattern = '<pi:csl-biblio numeric=\"{}\" xml:id=\"{}\" xmlns:{}=\"{}\">{}</pi:csl-biblio>'\n    for k, rf in zip(references.keys, references_formatted):\n        numeric = \"\"\n        if numeric_suffix:\n            numeric, rf = rf.split(numeric_suffix, 1)\n            numeric = numeric + numeric_suffix\n            #(strip down numeric trailing whitespace?)\n\n        # references are text right now, we make a proper\n        # snippet of XML that can be parsed by the lxml\n        # \"fromstring()\" function into an ET element object.\n        # \"xml\" namespace seems to be known to lxml anyway\n        references_wrapped.append(biblio_pattern.format(numeric, k, \"pi\", PI, rf))\n\n    ### Citations formatted ###\n    #\n    # Now the formatted versions of the citations.  These are multi-part,\n    # which is going to be a big problem, as we want each part to be\n    # realized as a cross-refeence in various outputs as hyperlinks, knowls, etc.\n\n    #  Strategy\n    #  We will get back from CiteProc citations that might look like\n    #\n    #    (Brown, et al. 2025, Blue 1933)\n    #\n    #  and we want to turn them into PreTeXt source that looks like\n    #\n    #    (<xref ref=\"brown-paper\">Brown, et al. 2025</xref>, <xref ref=\"blue-book\">Grey 1933</xref>)\n    #\n    #  Not only is it hard to reliably find the separator (\", \") but\n    #  the actual citations get re-ordered from whatever order the\n    #  actual \"xref\" are made.  So..\n    #\n    #  We first *replace* the separator, so we can reliably split\n    #  the multi-part citation, and then we mimic the sorting operation\n\n    # A faux separator on citations, which should be so rare\n    # that we can reliably match it.  Linux mkpasswd of \"beezer\"\n    rare = \"P1zXvPN5SACeY\"\n\n    # citeproc.py has a slew of objects that encapsulate parts of\n    # the CSL XML specification. These can be located from our\n    # style variable via a hierarchy from the root. Here we get\n    # the layout for citations, to retrieve the overall formatting\n    # of citation AND we make a change, by *inserting* our rare\n    # separator (delimiter).\n    layout = style.root.citation.layout\n    prefix = layout.get(\"prefix\", \"\")\n    real_delimiter = layout.get(\"delimiter\", \"\")\n    suffix = layout.get(\"suffix\", \"\")\n    layout.set(\"delimiter\", rare)\n\n    # Similarly citeproc-py has a \"sort\" *object* inside\n    # \"citation\" which in turn has an optional \"sort\" object,\n    # which has a \"sort\" method\n    citation = style.root.citation\n    sorter = citation.sort\n\n    # Here we go, we collect formatted citations\n    citations_wrapped = []\n    solo_xref_pattern = '<xref ref=\"{}\" pi:custom-text=\"yes\" xmlns:{}=\"{}\">{}</xref>'\n    citation_pattern = '<pi:csl-citation xml:id=\"{}\" xmlns:{}=\"{}\">{}</pi:csl-citation>'\n    for c, xref_id in zip(citeproc_citations, xref_ids) :\n        # version with rare separator\n        # strip the prefix and suffix,\n        # and blow it up into pieces\n        rough = references.cite(c, warn)\n        rough = rough[len(prefix):-len(suffix)]\n        rough = rough.split(rare)\n\n        # get the permutation from the re-ordering\n        # this is all borrowed from the Layout Class\n        # and its render_citation() method\n        cites = c.cites\n        # generic sort on keys, this is the \"natural\" order\n        # of the appearnce in the sorted bibliography\n        cites.sort(key=lambda x: references.keys.index(x.key))\n        # but if there is a sorting specified, do that\n        if sorter is not None:\n            cites = sorter.sort(cites, layout)\n        one_citation = []\n        for text_cite, cite_cite in zip(rough, cites):\n            ptx_cite = solo_xref_pattern.format(cite_cite.key, \"pi\", PI, text_cite)\n            one_citation.append(ptx_cite)\n        a_cite = _pretextify(prefix + real_delimiter.join(one_citation) + suffix)\n        a_cite = citation_pattern.format(xref_id, \"pi\", PI, a_cite)\n        citations_wrapped.append(a_cite)\n\n    ### Produce Useful XML ###\n    #\n    # * Build up a simple XML tree from pieces above\n    # * Make available as a generated product to be saved\n    # * Components will be assembled into source, as\n    #   replacements of backmatter/references and xref\n\n    # Root element of produced XML file, \"pi:csl-references\"\n    csl_references = ET.Element(ET.QName(NSMAP[\"pi\"], \"csl-references\"), nsmap=NSMAP)\n    # Somewhat like \"versioning\" a file, set an attribute\n    # (@csl-style-file) on the root element of the file.\n    # In the XSL processing this can be compared to the\n    # value from the current publication file as a check\n    # that production and consumption are in-sync at the\n    # time of consumption.  The Python string here was\n    # determined at the time of production (i.e. now).\n    csl_references.set(\"csl-style-file\", csl_style)\n\n    index = 1\n    for rw in references_wrapped:\n        biblio_tree = ET.fromstring(rw)\n        csl_references.insert(index, biblio_tree)\n        index = index + 1\n    # not sure how to *start* with next_child,\n    # so keep index running for more insertions\n    for cw in citations_wrapped:\n        xref_tree = ET.fromstring(cw)\n        csl_references.insert(index, xref_tree)\n        index = index + 1\n\n    # Fill an XML file with the  csl_references  tree\n    bib_file = os.path.join(dest_dir, \"csl-bibliography.xml\")\n\n    try:\n        with open(bib_file, \"wb\") as f:\n            f.write(ET.tostring(csl_references, encoding=\"utf-8\",\n                    xml_declaration=True, pretty_print=True))\n    except Exception as e:\n        root_cause = str(e)\n        msg = \"PTX:ERROR: there was a problem writing a references file: {}\\n\"\n        raise ValueError(msg.format(f) + root_cause)\n\n\n##############################\n#\n#  You Tube thumbnail scraping\n#\n##############################\n\n\ndef youtube_thumbnail(xml_source, pub_file, stringparams, xmlid_root, dest_dir):\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    try:\n        import requests  # YouTube server\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    log.info(\n        \"downloading YouTube thumbnails from {} for placement in {}\".format(\n            xml_source, dest_dir\n        )\n    )\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-youtube.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Build list of id's into a scratch directory/file\n    tmp_dir = get_temporary_directory()\n    id_filename = os.path.join(tmp_dir, \"youtube-ids.txt\")\n    log.debug(\"YouTube id list temporarily in {}\".format(id_filename))\n    xsltproc(extraction_xslt, xml_source, id_filename, None, stringparams)\n    # \"run\" an assignment for the list of triples of strings\n    with open(id_filename, \"r\") as id_file:\n        # read lines, but only lines that are comma delimited\n        thumbs = [t.strip() for t in id_file.readlines() if \",\" in t]\n\n    for thumb in thumbs:\n        thumb_pair = thumb.split(\",\")\n        url = \"http://i.ytimg.com/vi/{}/default.jpg\".format(thumb_pair[0])\n        path = os.path.join(dest_dir, thumb_pair[1] + \".jpg\")\n        log.info(\"downloading {} as {}...\".format(url, path))\n        # http://stackoverflow.com/questions/13137817/how-to-download-image-using-requests/13137873\n        # removed some settings wrapper from around the URL, otherwise verbatim\n        r = requests.get(url, stream=True, timeout=10)\n        if r.status_code == 200:\n            with open(path, \"wb\") as f:\n                r.raw.decode_content = True\n                shutil.copyfileobj(r.raw, f)\n        else:\n            msg = \"PTX:ERROR: download returned a bad status code ({}), perhaps try {} manually?\"\n            raise OSError(msg.format(r.status_code, url))\n    log.info(\"YouTube thumbnail download complete\")\n\n\n##########################\n#\n#  Video Play Button Image\n#\n##########################\n\ndef play_button(dest_dir):\n    '''Copy generic static video image to a directory'''\n\n    ptx_xsl_dir = get_ptx_xsl_path()\n    play_button_provided_image = os.path.join(ptx_xsl_dir, \"support\", \"play-button\", \"play-button.png\")\n    log.info('Generating generic video preview, aka \"play button\" into {}'.format(dest_dir))\n    shutil.copy2(play_button_provided_image, dest_dir)\n\n\n########################\n#\n#  QR Code manufacturing\n#\n########################\n\n\ndef qrcode(xml_source, pub_file, stringparams, xmlid_root, dest_dir):\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    # Establish whether there is an image from pub file\n    has_image = False\n    try:\n        pub_vars = get_publisher_variable_report(xml_source, pub_file, stringparams)\n        image = get_publisher_variable(pub_vars, 'qrcode-image')\n        _, external_dir = get_managed_directories(xml_source, pub_file)\n        image_path = os.path.join(external_dir, image)\n        if (image != '' and os.path.exists(image_path)):\n            has_image = True\n    except:\n        pass\n\n    # https://pypi.org/project/qrcode/\n    try:\n        import qrcode  # YouTube server\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"qrcode\"))\n\n    import qrcode.image.styledpil\n\n    log.info(\n        \"manufacturing QR codes from {} for placement in {}\".format(\n            xml_source, dest_dir\n        )\n    )\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-qrcode.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    import glob\n    import xml.etree.ElementTree as ET\n\n    # Extraction writes sidecar XML files (one per element) into dest_dir\n    # via exsl:document, each containing standalone and in-context URLs.\n    xsltproc(extraction_xslt, xml_source, None, dest_dir, stringparams)\n    # Read sidecar XML files to get URLs for QR code generation\n    pi_ns = {'pi': 'http://pretextbook.org/2020/pretext/internal'}\n    url_files = sorted(glob.glob(os.path.join(dest_dir, \"*-url.xml\")))\n    for url_file in url_files:\n        tree = ET.parse(url_file)\n        url = tree.find('pi:standalone-url', pi_ns).text\n        # Derive visible-id from filename: {id}-url.xml\n        basename = os.path.splitext(os.path.basename(url_file))[0]\n        the_id = basename.rsplit('-url', 1)[0]\n        path = os.path.join(dest_dir, the_id + \".png\")\n        log.info('creating URL with content \"{}\" as {}...'.format(url, path))\n        # Using more elaborate (class) calls to simply get a zero border,\n        # rather than cropping (ala https://stackoverflow.com/questions/9870876)\n        # Simple version: qr_image = qrcode.make(url), has border\n        if has_image:\n            # error correction up to 30%\n            # 2025-08-29: upgraded, as \"Q\" produces fatal errors\n            error_correction = qrcode.constants.ERROR_CORRECT_H\n        else:\n            # error correction up to 7%\n            error_correction = qrcode.constants.ERROR_CORRECT_L\n        qr = qrcode.QRCode(version=None,\n                           error_correction=error_correction,\n                           box_size=10,\n                           border=0\n                           )\n        qr.add_data(url)\n        if has_image:\n            qr_image = qr.make_image(image_factory=qrcode.image.styledpil.StyledPilImage, embedded_image_path=image_path)\n        else:\n            qr_image = qr.make_image(fill_color=\"black\", back_color=\"white\")\n        # Now save as a PNG\n        qr_image.save(path)\n    log.info(\"QR code creation complete\")\n\n\n#####################################\n#\n#  Mermaid images\n#\n#####################################\n\ndef mermaid_images(xml_source, pub_file, stringparams, xmlid_root, dest_dir, outformat):\n\n    import glob  # locate *.mmd files\n    import json  # Mermaid configuration files\n\n    msg = 'converting Mermaid diagrams from {} to {} graphics for placement in {}'\n    log.info(msg.format(xml_source, outformat, dest_dir))\n\n    mmd_executable_cmd = get_executable_cmd(\"mermaid\")\n    log.debug(\"Mermaid executable command: {}\".format(mmd_executable_cmd))\n\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory: {}\".format(tmp_dir))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-mermaid.xsl\")\n\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n\n    log.info(\"extracting Mermaid diagrams from {}\".format(xml_source))\n    log.info(\n        \"string parameters passed to extraction stylesheet: {}\".format(stringparams)\n    )\n    #generate mmd files with markdown to be converted to png\n    xsltproc(extraction_xslt, xml_source, None, tmp_dir, stringparams)\n\n    pub_vars = get_publisher_variable_report(xml_source, pub_file, stringparams)\n    mermaid_theme = get_publisher_variable(pub_vars, 'mermaid-theme')\n    mermaid_layout_engine = get_publisher_variable(pub_vars, 'mermaid-layout-engine')\n\n    # Resulting *.mmd files are in tmp_dir, switch there to work\n    with working_directory(tmp_dir):\n        # Write a config file as JSON in working directory\n        mmd_config = {\n            \"theme\": mermaid_theme,\n            \"layout\": mermaid_layout_engine\n        }\n        mmd_config_file = os.path.join(tmp_dir, \"mermaid-config.json\")\n        with open(mmd_config_file, 'w') as config_file:\n            json.dump(mmd_config, config_file, indent=4)\n        log.debug(\"Mermaid configuration file: {}\".format(mmd_config_file))\n        # loop over each diagram\n        for mmddiagram in glob.glob(os.path.join(tmp_dir, \"*.mmd\")):\n            filebase, _ = os.path.splitext(mmddiagram)\n            # file format PNG or SVG\n            # mmdc executable just switches on filename extension\n            if outformat in [\"png\", \"svg\"]:\n                mmdout = \"{}.{}\".format(filebase, outformat)\n            else:\n                log.error(\"cannot make Mermaid diagrams in {} file format\".format(outformat))\n            mmd_cmd = mmd_executable_cmd + [\"-i\", mmddiagram, \"-o\", mmdout, \"-s\", \"4\", \"-c\", \"mermaid-config.json\"]\n            log.debug(\"mermaid conversion command: {}\".format(\" \".join(mmd_cmd)))\n            subprocess.call(mmd_cmd, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)\n            if os.path.exists(mmdout):\n                shutil.copy2(mmdout, dest_dir)\n            else:\n                msg = \"the Mermaid output {} was not built\"\n                log.warning(msg.format(mmdout))\n\n\n#####################################\n#\n#  STACK exercises (static)\n#\n#####################################\n\n# 2025-08-16: verbatim from\n#   https://github.com/PreTeXtBook/pretext/pull/2576\n# procedure name modified\ndef _stack_replace_latex(text):\n\n    # Replace multiline environments\n    def process_match(match):\n        has_asterisk = match.group(2) == \"*\"\n        content = match.group(3).strip().replace('&', r'\\amp ')\n\n        # Process lines\n        lines = [line.strip() for line in content.split(r'\\\\') if line.strip()]\n        xml_rows = \"\\n\".join([f\"<mrow>{line}</mrow>\" for line in lines])\n\n        opening_tag = '<md number=\"yes\">' if has_asterisk else '<md>'\n        return f\"{opening_tag}\\n{xml_rows}\\n</md>\"\n    # Pattern to find \\( \\begin{align} ... \\end{align} \\) and similar\n    # (align|gather)     -> Group 1: The environment name\n    # (\\*?)              -> Group 2: The optional asterisk\n    # (.*?)              -> Group 3: The content (non-greedy)\n    # \\\\end\\{\\1\\2\\}      -> Matches the closing tag using backreferences to groups 1 and 2\n    pattern = r'\\\\[\\[\\(]\\s*\\\\begin\\{(align|gather|eqnarray|multline)(\\*?)\\}(.*?)\\\\end\\{\\1\\2\\}\\s*\\\\[\\]\\)]'\n    # re.DOTALL allows the '.' to match newlines\n    text = re.sub(pattern, process_match, text, flags=re.DOTALL)\n\n    # Replace simple environment\n    text = re.sub(r\"\\\\\\((.*?[^\\\\])\\\\\\)\", r\"<m>\\1</m>\", text, flags=re.DOTALL)\n    text = re.sub(r\"\\\\\\[(.*?[^\\\\])\\\\]\", r\"<me>\\1</me>\", text, flags=re.DOTALL)\n\n    return text\n\n_stack_tag_map = {\n    \"b\": \"alert\",\n    \"strong\": \"alert\",\n    \"i\": \"em\",\n    \"code\": \"c\",\n    \"tt\": \"c\",\n    \"table\": \"tabular\",\n    \"tr\": \"row\",\n    \"td\": \"cell\",\n    \"th\": \"cell\",\n    \"a\": \"url\",\n}\n\ndef _stack_replace_tags(text, asset_prefix_rel, mathmode=False):\n    if not text.strip():\n        return text\n    # We should also replace other HTML entities with their equivalents (e.g. unicode)\n    text = text.replace('&nbsp;', '<nbsp/>')\n\n    from lxml import html\n\n    tree = html.fragment_fromstring(text, create_parent='p')\n    # Find all <img> tags, make width relative, update source path\n    for img in tree.xpath('//img'):\n        img.tag = 'image'\n        if 'src' in img.attrib:\n            # we assume images don't link to random sources on the internet\n            src = img.attrib.pop('src')\n            new_src = f\"{asset_prefix_rel}-{src}\"\n            if src.endswith(\".svg\"):\n                new_src = new_src.replace(\".svg\", \".pdf\")\n            img.attrib['pi:generated'] = new_src\n            img.attrib['xmlns:pi'] = \"http://pretextbook.org/2020/pretext/internal\"\n        if 'width' in img.attrib and not '%' in img.attrib['width']:\n            # image width percentage relative to 600 px\n            img.attrib['width'] = f\"{int(img.attrib['width']) // 6}%\"\n        if 'height' in img.attrib:\n            img.attrib.pop('height')\n    # Some heuristic HTML replacements\n    for tag, replacement in _stack_tag_map.items():\n        for elem in tree.xpath(f\"//{tag}\"):\n            elem.tag = replacement\n    for elem in tree.xpath(\"//thead|//tbody\"):\n        elem.drop_tag()\n\n    # Convert back to a string\n    # method=\"xml\" ensures we get the self-closing <image ... />, <br/>, ... style\n    new_text = html.tostring(tree, encoding='unicode', method='xml')\n    if mathmode:\n        new_text = new_text.removeprefix(\"<p>\").removesuffix(\"</p>\")\n    return new_text\n\ndef _stack_postprocess(text, asset_prefix_rel):\n    text = _stack_replace_latex(text)\n    return _stack_replace_tags(text, asset_prefix_rel)\n\ndef _stack_download_assets(assets, api_url, asset_prefix_abs, stack_file):\n    import requests\n    try:\n        import fitz # for svg/pdf conversion\n    except ImportError:\n        raise ImportError(__module_warning.format(\"pyMuPDF\"))\n\n    # Download assets (images, plots)\n    for filename, urlname in assets.items():\n        plots_url = api_url.replace('/render', '/plots')\n        full_url = f\"{plots_url}/{urlname}\";\n        response = requests.get(full_url)\n        if response.status_code == 200:\n            response.raw.decode_content = True\n            asset_file = f\"{asset_prefix_abs}-{filename}\"\n            asset_file_out = asset_file.replace(\".svg\", \".pdf\")\n            log.debug(f\"Extracting asset {asset_file} from {stack_file}.\")\n            if asset_file.endswith(\".svg\"):\n                with fitz.Document(stream=response.content) as doc:\n                    log.info(f\"converting {asset_file} to PDF\")\n                    pdfbytes = doc.convert_to_pdf()\n                    with open(asset_file_out, \"wb\") as pdfout:\n                        pdfout.write(pdfbytes)\n            else:\n                with open(asset_file, 'wb') as f:\n                    f.write(response.content)\n        else:\n            log.warning(f\"Failed to download image {filename} for {stack_file}.\")\n\n# 2025-08-16: verbatim from\n#   https://github.com/PreTeXtBook/pretext/pull/2576\n# procedure name modified\ndef _stack_process_response(qdict, asset_prefix_rel, stack_file, base_url):\n    if \"isinteractive\" not in qdict:\n        log.warning(f\"An error occurred while processing {stack_file}: {qdict.get('message')}\")\n        return \"<statement><p>An error occurred while processing this question.</p></statement>\"\n    # For now, return a default message for interactive questions\n    if qdict[\"isinteractive\"]:\n        # We could generate a QR code to an online version in the future\n        log.warning(f\"{stack_file} contains interactive elements\")\n        message = \"<p>This question contains interactive elements.</p>\"\n        if base_url:\n            message += f'\\n<p>Browse the <url href=\"{base_url}\">online version of this book</url> to view this question.</p>'\n        return f\"<statement>\\n{message}\\n</statement>\"\n    qtext = qdict[\"questionrender\"]\n    soltext = qdict[\"questionsamplesolutiontext\"]\n\n    # Strip validation and specific feedback\n    qtext = re.sub(r\"\\[\\[validation:(\\w+)\\]\\]\", \"\", qtext)\n    qtext = re.sub(r\"\\[\\[feedback:(\\w+)\\]\\]\", \"\", qtext)\n\n    # Iterate over inputs. For each input with ID ansid:\n    ansids = re.findall(r\"\\[\\[input:(\\w+)\\]\\]\", qtext)\n    answers = []\n    for ansid in ansids:\n        ansdata = qdict[\"questioninputs\"][ansid]\n\n        ansconfig = ansdata[\"configuration\"]\n        input_type = ansconfig[\"type\"]\n        answer = _stack_replace_tags(ansdata[\"samplesolutionrender\"], asset_prefix_rel, mathmode=True)\n        if input_type in [\"algebraic\", \"numerical\", \"singlechar\", \"string\", \"units\"] \\\n                or input_type in [\"equiv\", \"notes\", \"textarea\", \"varmatrix\", \"matrix\"]:\n            if input_type == \"singlechar\":\n                width = 1\n            else:\n                width = ansconfig[\"boxWidth\"]\n            input_render = f'<fillin characters=\"{width}\" name=\"{ansid}\"/>'\n        elif input_type in [\"checkbox\", \"radio\", \"dropdown\"]:\n            # Remove the \"(Clear my choice)\" option\n            options = [opt_render for opt_id, opt_render in ansconfig[\"options\"].items() if opt_id]\n            if input_type == \"dropdown\":\n                options_render = ' | '.join(options)\n                input_render = f\"[ {options_render} ]\"\n            else:\n                options_render = '\\n'.join(f\"<li>{option}</li>\" for option in options)\n                input_render = f'<ol marker=\"(1)\">\\n{options_render}\\n</ol>'\n            if input_type == \"checkbox\":\n                answer = ', '.join([f\"({i})\" for i in ansdata[\"samplesolution\"].values()])\n            elif input_type == \"radio\":\n                answer = f'({ansdata[\"samplesolution\"][\"\"]})'\n            else:\n                ans_id = ansdata[\"samplesolution\"][\"\"]\n                answer = _stack_replace_tags(ansconfig[\"options\"][ans_id], asset_prefix_rel, mathmode=True)\n        elif input_type == \"boolean\":\n            input_render = f\"[ true | false ]\"\n        else:\n            input_render = f\"[[input:{ansid}]]\"\n            log.warning(f\"{stack_file} contains unsupported input type\")\n\n        qtext = qtext.replace(f\"[[input:{ansid}]]\", input_render)\n        if input_type not in [\"singlechar\", \"notes\", \"dropdown\"]:\n            answer = f\"<m>{answer}</m>\"\n        answers.append(f'<answer><p>{answer}</p></answer>')\n\n    qtext = _stack_postprocess(qtext, asset_prefix_rel)\n    soltext = _stack_postprocess(soltext, asset_prefix_rel)\n\n    render_output = f'    <statement>{qtext}</statement>\\n'\n    if soltext:\n        render_output += f'    <solution>{soltext}</solution>\\n'\n    if answers:\n        render_output += \"    \" + \"\\n    \".join(answers)\n    return render_output\n\ndef stack_extraction(xml_source, pub_file, stringparams, xmlid_root, dest_dir ):\n    '''Convert a STACK question to a static PreTeXt version via a STACK server'''\n\n    import json\n    import urllib\n\n    try:\n        import requests  # to access STACK server\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    pub_vars = get_publisher_variable_report(xml_source, pub_file, stringparams)\n    stack_server = get_publisher_variable(pub_vars, 'stack-server')\n    api_url = urllib.parse.urljoin(stack_server, 'render')\n    base_url = get_publisher_variable(pub_vars, 'baseurl')\n    log.info(\"Using STACK API server at {}\".format(api_url))\n\n    os.makedirs(dest_dir, exist_ok=True)\n    msg = 'converting STACK exercises from {} to static forms for placement in {}'\n    log.info(msg.format(xml_source, dest_dir))\n\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory: {}\".format(tmp_dir))\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-stack.xsl\")\n\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n\n    log.info(\"extracting STACK exercises from {}\".format(xml_source))\n    log.info(\"string parameters passed to extraction stylesheet: {}\".format(stringparams) )\n\n    # Build list of stack/@source into a scratch directory/file\n    tmp_dir = get_temporary_directory()\n    source_filename = os.path.join(tmp_dir, \"stack-source.txt\")\n    log.debug(\"STACK source filenames temporarily in {}\".format(source_filename))\n    xsltproc(extraction_xslt, xml_source, source_filename, None, stringparams)\n\n    # Course over (source, id) pairs in file created by\n    # extraction stylesheet, converting source STACK files\n    # to PreTeXt files based on id/label. Innermost loop\n    # is modeled after work provided in\n    #   https://github.com/PreTeXtBook/pretext/pull/2576\n\n    # location of external directory for STACK files\n    generated_dir, external_dir = get_managed_directories(xml_source, pub_file)\n\n    with open(source_filename, \"r\") as source_file:\n        for source in source_file:\n\n            # source is the  stack/@source  attribute\n            # label is the \"assembly-id\" used for base filename\n            source, label = source.split()\n            # external directory plus authored @source is STACK question\n            stack_file = os.path.join(external_dir, source)\n            # destination directory, label/id filename, PTX extension is\n            # static version of question, to be melded in by assembly stylesheet\n            pretext_file = os.path.join(dest_dir, label + '.ptx')\n            msg = 'converting STACK question file \"{}\" to static PreTeXt XML file \"{}\"'\n            log.debug(msg.format(stack_file, pretext_file))\n\n            # Relative and absolute path to store assets in\n            asset_path = os.path.join(generated_dir, \"stack\", \"images\")\n            os.makedirs(asset_path, exist_ok=True)\n            asset_prefix_abs = os.path.join(asset_path, f\"{label}\")\n            asset_prefix_rel = os.path.join(\"stack\", \"images\", f\"{label}\")\n\n            # Open STACK XML file, send to server, unravel JSON response into\n            # a text version of the static PreTeXt XML question\n            question_data = open(stack_file).read()\n            # JSON blob for STACK API server request\n            # TODO: accomodate per-question seed somehow (interrogate XML?)\n            request_data = {\"questionDefinition\": question_data, \"seed\": None}\n            question_json = requests.post(api_url, json=request_data)\n            question_dict = json.loads(question_json.text)\n            response = _stack_process_response(question_dict, asset_prefix_rel, stack_file, base_url)\n            _stack_download_assets(question_dict.get(\"questionassets\", {}), api_url, asset_prefix_abs, stack_file)\n            wrap_response = \"<stack-static>\\n{}\\n</stack-static>\"\n            question_pretext = wrap_response.format(response)\n\n            # PreTeXt filename formed above, write result into dest_dir\n            # This well-formed XML file will get picked up by the\n            # pretext-assembly.xsl stylesheet as part of forming a version\n            # of source suitable for static output formats (that are not\n            # as capable as HTML)\n            with open(pretext_file, 'w', encoding='utf-8') as ptxfile:\n                ptxfile.write(question_pretext)\n                ptxfile.close()\n\n\n#####################################\n#\n#  Interactive preview screenshotting\n#\n#####################################\n\n\ndef preview_images(xml_source, pub_file, stringparams, xmlid_root, dest_dir, method):\n    \"\"\"\n    Generate preview images for interactive elements using playwright.\n    'method' is expected to be \"fast\" or \"slow\", corresponding to a 5000 or 10000 ms timeout.\n    \"\"\"\n    import asyncio  # get_event_loop()\n\n    # external module, often forgotten\n    # imported here, used only in interior\n    # routine to launch browser\n    try:\n        import playwright.async_api  # launch()\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"playwright\"))\n\n    # Interior asynchronous routine to manage the Chromium headless browser.\n    # Use the same page instance for the generation of all interactive previews\n    async def generate_previews(interactives, baseurl, dest_dir, timeout):\n\n        # interactives:  list containing the interactive hash/fragment ids [1:]\n        # baseurl:       local server's base url (includes local port)\n        # dest_dir:      folder where images are saved\n        # timeout:       delay in milliseconds to wait for the interactive to load\n\n        # Open playwright's asynchronous api to load a browser and page\n        async with playwright.async_api.async_playwright() as pw:\n            browser = await pw.chromium.launch()\n            page = await browser.new_page()\n            # First index contains original baseurl of hosted site (not used)\n            for preview_fragment in interactives:\n                # loaded page url containing interactive\n                input_page = baseurl + \"/\" + preview_fragment + \".html\"\n                # filename of saved preview image\n                filename = preview_fragment + \"-preview.png\"\n\n                # the \"standalone\" page has one \"iframe\" known by HTML id \"preview_fragment\"\n                xpath = \"//iframe[@id='{}'][1]\".format(preview_fragment)\n\n                # progress report\n                msg = 'automatic screenshot of interactive with identifier \"{}\" on page {} to file {}'\n                log.info(msg.format(preview_fragment, input_page, filename))\n\n                # goto page and wait for content to load\n                await page.goto(input_page, wait_until='domcontentloaded')\n                # wait again, according to the value of the timeout,\n                # for more than just splash screens, etc\n                await page.wait_for_timeout(timeout)\n                # list of locations, need first (and only) one\n                elt = page.locator(xpath)\n                await elt.screenshot(path=filename, scale=\"css\")\n\n                # copy\n                shutil.copy2(filename, dest_dir)\n            await browser.close()\n\n    # Start http server in a thread\n    def start_server():\n        '''\n        Starts a simple http.server on port 8888 if available, or finds a random port.  Returns the port and the server object.\n        '''\n        try:\n            import http.server\n            import socketserver\n            import threading\n            import random\n        except ImportError:\n            raise ImportError(\"http.server, socketserver, threading, random\")\n\n        # Subclass SimpleHTTPRequestHandler to send messages to log.debug:\n        class MyHandler(http.server.SimpleHTTPRequestHandler):\n            def log_message(self, format, *args):\n                log.debug(\"http.server: \" + format % args)\n                return\n        # Find a port to use\n        port = 8888\n        attempts = 0\n        max_attempts = 10\n        while attempts < max_attempts:\n            try:\n                log.debug(\"Trying http.server on port {}\".format(port))\n                server = socketserver.TCPServer((\"localhost\", port), MyHandler)\n                thread = threading.Thread(target=server.serve_forever)\n                thread.start()\n                log.debug(f\"Started http.server on port {port}\")\n                return port, server\n            except Exception as e:\n                log.debug(\"http.server error: port {} in use; (error {})\".format(port, e))\n                port = random.randint(49152, 65535)\n                attempts += 1\n        else:\n            raise OSError(\"Unable to open http.server for interactive previews\")\n\n    def stop_server(server):\n        try:\n            log.debug(\"Stopping http.server\")\n            server.shutdown()\n            log.debug(\"http.server shutdown successful\")\n        except Exception as e:\n            log.warning(\"http.server shutdown failed; perhaps it wasn't running? error: {}\".format(e))\n\n    # Main content of preview_images function:\n    log.info(\n        \"using playwright package to create previews for interactives from {} for placement in {}\".format(\n            xml_source, dest_dir\n        )\n    )\n\n    # Translate the fast/slow timeout to a time in milliseconds\n    timeout = 10000 if method == \"slow\" else 5000\n\n    # Identify interactives that will be processed\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-interactive.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Build list of id's into a scratch directory/file\n    tmp_dir = get_temporary_directory()\n    id_filename = os.path.join(tmp_dir, \"interactives-ids.txt\")\n    log.debug(\"Interactives id list temporarily in {}\".format(id_filename))\n    log.debug(\"Interactives html files temporarily in {}\".format(tmp_dir))\n    # This next call may be unique in that the stylesheet outputs the\n    # list of ids *and* produce a pile of files (the \"standalone\") pages\n    xsltproc(extraction_xslt, xml_source, id_filename, tmp_dir, stringparams)\n    # read the list of interactive identifiers just generated\n    with open(id_filename, \"r\") as id_file:\n        interactives = [f.strip() for f in id_file.readlines() if not f.isspace()]\n\n    # Copy in external resources (e.g., js code)\n    _, external_abs = get_managed_directories(xml_source, pub_file)\n    copy_managed_directories(tmp_dir, external_abs=external_abs)\n    # place JS in scratch directory\n    copy_html_js(tmp_dir)\n\n    # filenames lead to placement in current working directory\n    # so change to temporary directory, and copy out\n    # TODO: just write to \"dest_dir\"?\n    with working_directory(tmp_dir):\n        # event loop and copy, terminating server process even if interrupted\n        try:\n            log.debug(\"Starting event loop for playwright, after starting server\")\n            port, server = start_server()\n            baseurl = \"http://localhost:{}\".format(port)\n            asyncio.get_event_loop().run_until_complete(\n                generate_previews(interactives, baseurl, dest_dir, timeout)\n            )\n            # if this blows up, search for 'asyncio.get_event_loop() warning' in this file\n        finally:\n            # close the server\n            log.info(\"Closing http.server thread\")\n            if server:\n                stop_server(server)\n\n\n############\n# All Images\n############\n\n\ndef all_images(xml, pub_file, stringparams, xmlid_root):\n    \"\"\"All images, in all necessary formats, in subdirectories, for production of any project\"\"\"\n\n    # parse source, no harm to assume\n    # xinclude modularization is necessary\n    # NB: see general  \"xsltproc()\"  for construction of a HUGE parser\n    src_tree = ET.parse(xml)\n    src_tree.xinclude()\n\n    # explore source for various PreTeXt elements needing assistance\n    # no element => empty list => boolean is False\n    has_latex_image = bool(src_tree.xpath(\"/pretext/*[not(docinfo)]//latex-image\"))\n    has_asymptote = bool(src_tree.xpath(\"/pretext/*[not(docinfo)]//asymptote\"))\n    has_sageplot = bool(src_tree.xpath(\"/pretext/*[not(docinfo)]//sageplot\"))\n    has_youtube = bool(src_tree.xpath(\"/pretext/*[not(docinfo)]//video[@youtube]\"))\n    has_preview = bool(\n        src_tree.xpath(\"/pretext/*[not(docinfo)]//interactive[not(@preview)]\")\n    )\n\n    # debugging comment/uncomment or True/False\n    # has_latex_image = False\n    # has_asymptote = False\n    # has_sageplot = False\n    # has_youtube = False\n    # has_preview = False\n\n    # get the target output directory from the publisher file\n    # this is *required* so fail if pieces are missing\n    if not (pub_file):\n        msg = \" \".join(\n            [\n                \"creating all images requires a directory specification\",\n                \"in a publisher file, and no publisher file has been given\",\n            ]\n        )\n        raise ValueError(msg)\n    generated_dir, _ = get_managed_directories(xml, pub_file)\n\n    # correct attribute and not a directory gets caught earlier\n    # but could have publisher file and bad elements/attributes\n    if not (generated_dir):\n        msg = \" \".join(\n            [\n                \"creating all images requires a directory specified in the\",\n                \"publisher file in the attribute /publication/source/directories/@generated\",\n            ]\n        )\n        raise ValueError(msg)\n\n    # first stanza has code comments, and subsequent follow this\n    # model so only comments are for important distinctions\n\n    # latex-image\n    #\n    if has_latex_image:\n        # empty last part implies directory separator\n        dest_dir = os.path.join(generated_dir, \"latex-image\", \"\")\n        # make directory if not already present\n        if not (os.path.isdir(dest_dir)):\n            os.mkdir(dest_dir)\n        latex_image_conversion(xml, pub_file, stringparams, xmlid_root, dest_dir, \"pdf\", True, None)\n        latex_image_conversion(xml, pub_file, stringparams, xmlid_root, dest_dir, \"svg\", True, None)\n\n    # Asymptote\n    #\n    if has_asymptote:\n        dest_dir = os.path.join(generated_dir, \"asymptote\", \"\")\n        if not (os.path.isdir(dest_dir)):\n            os.mkdir(dest_dir)\n        asymptote_conversion(xml, pub_file, stringparams, xmlid_root, dest_dir, \"pdf\", None)\n        asymptote_conversion(xml, pub_file, stringparams, xmlid_root, dest_dir, \"html\", None)\n\n    # Sage plots\n    #\n    if has_sageplot:\n        dest_dir = os.path.join(generated_dir, \"sageplot\", \"\")\n        if not (os.path.isdir(dest_dir)):\n            os.mkdir(dest_dir)\n        # for 3D images might produce a single PNG instead of an SVG and a PDF\n        # conversions look for this PNG as a fallback absent SVG or PDF\n        sage_conversion(xml, pub_file, stringparams, xmlid_root, dest_dir, \"pdf\", None)\n        sage_conversion(xml, pub_file, stringparams, xmlid_root, dest_dir, \"svg\", None)\n\n    # YouTube previews\n    #\n    if has_youtube:\n        dest_dir = os.path.join(generated_dir, \"youtube\", \"\")\n        if not (os.path.isdir(dest_dir)):\n            os.mkdir(dest_dir)\n        # no format, they are what they are (*.jpg)\n        youtube_thumbnail(xml, pub_file, stringparams, xmlid_root, dest_dir)\n\n    # Previews (headless screenshots)\n    #\n    if has_preview:\n        dest_dir = os.path.join(generated_dir, \"preview\", \"\")\n        if not (os.path.isdir(dest_dir)):\n            os.mkdir(dest_dir)\n        # no format, they are what they are (*.png)\n        preview_images(xml, pub_file, stringparams, xmlid_root, dest_dir)\n\n\n#####################################\n#\n#  MyOpenMath static problem scraping\n#\n#####################################\n\n\ndef mom_static_problems(xml_source, pub_file, stringparams, xmlid_root, dest_dir):\n\n    import urllib.parse\n    import PIL.Image # save images provided by MOM\n    import shutil\n    import asyncio # for playwright\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    try:\n        import requests  # to access MyOpenMath server\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n    try:\n        import playwright.async_api # for conversion to PDF and PNG\n    except ImportError:\n        raise ImportError(__module_warning.format(\"playwright\"))\n\n    log.info(\n        \"downloading MyOpenMath static problems from {} for placement in {}\".format(\n            xml_source, dest_dir\n        )\n    )\n    ptx_xsl_dir = get_ptx_xsl_path()\n    extraction_xslt = os.path.join(ptx_xsl_dir, \"extract-mom.xsl\")\n    # support publisher file, subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Build list of id's into a scratch directory/file\n    tmp_dir = get_temporary_directory()\n    id_filename = os.path.join(tmp_dir, \"mom-ids.txt\")\n    log.debug(\"MyOpenMath id list temporarily in {}\".format(id_filename))\n    xsltproc(extraction_xslt, xml_source, id_filename, None, stringparams)\n    images_dir = os.path.join(dest_dir, 'images')\n    if not (os.path.isdir(images_dir)):\n        os.mkdir(images_dir)\n    # \"run\" an assignment for the list of problem numbers\n    with open(id_filename, \"r\") as id_file:\n        # read lines, skipping blank lines\n        problems = [p.strip() for p in id_file.readlines() if not p.isspace()]\n\n    for problem in problems:\n        # &preservesvg=true is MOM flag to preserve embedded SVG\n        url = f\"https://www.myopenmath.com/util/mbx.php?id={problem}&preservesvg=true\"\n        path = os.path.join(dest_dir, f\"mom-{problem}.xml\")\n        log.info(f\"downloading MOM #{problem} to {path}...\")\n\n        try:\n            r = requests.get(url, timeout=10)\n            r.raise_for_status()  # Raise HTTPError for bad responses (4xx or 5xx)\n\n            xml_content = f'<?xml version=\"1.0\" encoding=\"utf-8\"?>\\n{r.text}'\n            xml_content = xml_content.replace('<myopenmath', '<myopenmath xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"')\n            tree = ET.fromstring(xml_content.encode(\"utf-8\"))\n\n            # Process images\n            image_elements = tree.xpath(\"//image[contains(@source, 'http')]\")\n            count = 1\n            for image_element in image_elements:\n                image_url = image_element.get(\"source\")\n                image_url_parsed = urllib.parse.urlparse(image_url)\n                source_filename = os.path.basename(image_url_parsed.path)\n                _, source_ext = os.path.splitext(source_filename)\n                if source_ext:\n                    image_filename = f'mom-{problem}-{count}{source_ext}'\n                # uncertain this is necessary: MOM won't likely allow file without extension\n                else:\n                    image_filename = f'mom-{problem}-{count}'\n                    log.info(f'No file name extension for MOM {problem} image {count}; results are unpredictable.')\n                imageloc = f'problems/images/{image_filename}'\n                image_path = os.path.join(images_dir, image_filename)\n\n                try:\n                    imageresp = requests.get(image_url, stream=True, timeout=10)\n                    imageresp.raise_for_status()\n                    # save the image file\n                    with open(image_path, \"wb\") as imagefile:\n                        imageresp.raw.decode_content = True\n                        shutil.copyfileobj(imageresp.raw, imagefile)\n                    # find the width of the image for setting PreTeXt width tag\n                    try:\n                        img = PIL.Image.open(image_path)\n                        imgwidthtag = min(100, round(img.width / 6))\n                        img.close()\n                    except Exception as e:\n                        log.error(f\"Unable to read image width of {image_path}: {e}\")\n\n                    image_element.set(\"width\", f\"{imgwidthtag}%\")\n                    del image_element.attrib[\"source\"]\n                    image_element.set(\"{http://pretextbook.org/2020/pretext/internal}generated\", imageloc)\n                except requests.exceptions.RequestException as e:\n                    log.error(f\"Error downloading image {image_url}: {e}\")\n                count += 1\n\n            # Process embedded SVGs\n            image_svg_elements = tree.xpath(\"//image/*[local-name()='svg']\")\n            for svg_element in image_svg_elements:\n                if svg_element is not None:\n                    svg_string = f'<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\\n{ET.tostring(svg_element, encoding=\"unicode\")}'\n                    # kludge: no nice way to remove namespace inherited from MyOpenMath element\n                    svg_string = svg_string.replace(' xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"','')\n                    # generate file names for image files\n                    svgname = f'images/mom-{problem}-{count}'\n                    svgname_ext = f'{svgname}.svg'\n                    svgpath = os.path.join(dest_dir, svgname_ext)\n                    pdfname_ext = f'{svgname}.pdf'\n                    pdfpath = os.path.join(dest_dir, pdfname_ext)\n                    pngname_ext = f'{svgname}.png'\n                    pngpath = os.path.join(dest_dir, pngname_ext)\n\n                    # write out the embedded SVG to file\n                    with open(svgpath, 'w', encoding='utf-8') as svgfile:\n                        svgfile.write(svg_string)\n                        svgfile.close()\n\n                    # SVG width and height needed for PDF conversion and PreTeXt <image>\n                    # Note that these are assumed to be present, if not, fix the SVG image in MOM\n                    svg_width = svg_element.get('width')\n                    svg_height = svg_element.get('height')\n                    svg_viewbox = svg_element.get('viewBox')\n                    svg_width_parsed = re.search(r\"([0-9\\.]+)([a-zA-Z%]*)\",svg_width)\n                    svg_height_parsed = re.search(r\"([0-9\\.]+)([a-zA-Z%]*)\",svg_height)\n                    if svg_width:\n                        svg_units = svg_width_parsed.group(2).lower()\n                        # assume that width and height have the same units\n\n                    width = svg_width\n                    height = svg_height\n                    if svg_units == '%':\n                        # if height or width is in percentage fall back to viewBox\n                        height = None\n                        width = None\n                    elif svg_units == 'pt':\n                        # playwright doesn't support pt units, transform to px\n                        height = str(float(svg_height_parsed.group(1)) / 72 * 96) + 'px'\n                        width = str(float(svg_width_parsed.group(1)) / 72 * 96) + 'px'\n\n                    if (not height or not width) and svg_viewBox:\n                        viewBox_values = svg_viewbox.split(' ')\n                        height = str(float(viewBox_values[3]) - float(viewBox_values[1])) + 'px'\n                        width = str(float(viewBox_values[2]) - float(viewBox_values[0])) + 'px'\n\n                    async def write_pdf(svg_string):\n                        # convert SVG to PDF and PNG\n                        static_html = f'''\n                        <!DOCTYPE html>\n                        <html lang=\"en\">\n                        <head>\n                            <meta charset=\"utf-8\" />\n                            <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n                            <style>\n                            /* prevent page breaks after svg */\n                            * {{\n                                margin:0;\n                                padding:0;\n                                white-space:nowrap;\n                                overflow: hidden;\n                                line-height: 0;\n                            }}\n                            </style>\n                            </head>\n                        <body>\n                        {svg_string}\n                        </body>\n                        </html>'''\n\n                        async with playwright.async_api.async_playwright() as pw:\n                            browser = await pw.chromium.launch()\n                            page = await browser.new_page()\n                            await page.set_content(static_html)\n                            await page.pdf(path=pdfpath, width=width, height=height)\n                            await page.locator(\"svg\").screenshot(path=pngpath,scale=\"device\")\n\n                            await browser.close()\n\n                    # convert to PDF\n                    asyncio.get_event_loop().run_until_complete(write_pdf(svg_string))\n                    # asyncio.get_event_loop() warning: this code assumes we are running from an synchronous context.\n                    # If called from some asynch function, by an outside tool, this will break. As will other uses in this file.\n                    # For a possible emergency fix see:\n                    # https://github.com/RunestoneInteractive/rs/pull/723\n                    # nested_asyncio did not work for RS as there were conflicts with other libraries.\n                    # get_event_loop is deprecated, so at some point we need to replace it - a permanent fix at that point would be nice\n                    # Official advice appears to be \"rewrite anything that uses async to be async all the way up\"\n                    # https://discuss.python.org/t/calling-coroutines-from-sync-code-2/24093/5\n                    # this warning referenced in other places... search for 'asyncio.get_event_loop() warning'\n\n                    # Try to read the SVG width and set PreTeXt width based on document width assumptions\n                    if svg_width_parsed:\n                        if svg_units:\n                            if svg_units==\"mm\":\n                                svg_scale = 158.8\n                            elif svg_units==\"cm\":\n                                svg_scale = 15.88\n                            elif svg_units==\"in\":\n                                svg_scale = 6.25\n                            else:\n                                svg_scale = 600\n                            imgwidthtag = min(100, round(100*float(svg_width_parsed.group(1)) / svg_scale))\n                        else:\n                            # this condition should never happen: implies badly formed width element\n                            imgwidthtag = 100\n                    else:\n                        imgwidthtag = 100\n                    svg_element.getparent().set(\"width\", f\"{imgwidthtag}%\")\n                    # update the <image> element in MyOpenMath xml to reference the file\n                    svg_element.getparent().set(\"{http://pretextbook.org/2020/pretext/internal}generated\", f'problems/{svgname}')\n                    svg_element.getparent().remove(svg_element)\n\n                    count += 1\n\n            # Write the modified XML back to file\n            with open(path, \"wb\") as f:\n                f.write(ET.tostring(tree, encoding=\"utf-8\", xml_declaration=True))\n\n        except requests.exceptions.RequestException as e:\n            log.error(f\"Error downloading MOM #{problem}: {e}\")\n        except ET.XMLSyntaxError as e:\n            log.error(f\"Error parsing XML for MOM #{problem}: {e}\")\n        except Exception as e:\n            log.error(f\"An unexpected error occurred for MOM #{problem}: {e}\")\n\n    log.info(\"MyOpenMath static problem download complete\")\n\n\n#######################\n# Conversion to Braille\n#######################\n\n\ndef braille(xml_source, pub_file, stringparams, out_file, dest_dir, page_format):\n    \"\"\"Produce a complete document in BRF format ( = Braille ASCII, plus formatting control)\"\"\"\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    # general message for this entire procedure\n    log.info(\n        \"converting {} into BRF in {} combining UEB2 and Nemeth\".format(\n            xml_source, dest_dir\n        )\n    )\n\n    # get chunk level from publisher file, start with sentinel\n    # eventually passed to routine that splits up a BRF\n    chunk_level = ''\n    if pub_file:\n        # parse publisher file, xinclude is conceivable\n        # for multiple similar publisher files with common parts\n        pub_tree = ET.parse(pub_file)\n        pub_tree.xinclude()\n        # \"chunking\" element => single-item list\n        # no \"chunking\" element => empty list\n        chunk_elt = pub_tree.xpath(\"/publication/common/chunking\")\n        if chunk_elt:\n            # attribute dictionary\n            attrs = chunk_elt[0].attrib\n            # check for attribute @level\n            if \"level\" in attrs:\n                chunk_level = chunk_elt[0].attrib['level']\n                # respected values are '0' and '1', as *strings*\n                if chunk_level in ['0', '1']:\n                    msg = 'braille chunking level (from publisher file) set to \"{}\"'\n                    log.info(msg.format(chunk_level))\n                else:\n                    msg = 'braille chunking level in publisher file should be \"0\" or \"1\", not \"{}\".'\n                    log.warning(msg.format(chunk_level))\n                    chunk_level = ''\n    # never set, or set to an improper value\n    # latter will have issued a warning above\n    if chunk_level == '':\n        msg = 'braille chunking level was never elected properly in a publisher file, using default value, \"0\".'\n        log.debug(msg)\n        chunk_level = '0'\n\n    # Temporarily neuter all of above\n    log.warning(\"Any elective chunking is temporarily disabled\")\n    chunk_level = '0'\n\n    # Build into a scratch directory\n    tmp_dir = get_temporary_directory()\n    log.debug(\"Braille manufacture in temporary directory: {}\".format(tmp_dir))\n\n    # use of  math_format is for consistency\n    # with MathJax used to make EPUB\n    math_format = \"nemeth\"\n    math_representations = os.path.join(\n        tmp_dir, \"math-representations-{}.xml\".format(math_format)\n    )\n\n    # ripping out LaTeX as math representations\n    msg = \"converting raw LaTeX from {} into clean {} format placed into {}\"\n    log.debug(msg.format(xml_source, math_format, math_representations))\n    mathjax_latex(xml_source, pub_file, math_representations, None, math_format)\n\n    # use XSL to make a simplified BRF-like XML version, \"preprint\"\n    msg = \"converting source ({}) and clean representations ({}) into preprint XML file ({})\"\n    stringparams[\"mathfile\"] = math_representations.replace(os.sep, \"/\")\n    # pass in the page format (for messages about graphics, etc.)\n    stringparams[\"page-format\"] = page_format\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    preprint = os.path.join(tmp_dir, \"preprint.xml\")\n    braille_xslt = os.path.join(get_ptx_xsl_path(), \"pretext-braille-preprint.xsl\")\n    xsltproc(braille_xslt, xml_source, preprint, tmp_dir, stringparams)\n\n    # use Python to format simplified BRF as a real BRF\n    from . import braille_format as braille\n\n    # Build a BRF in the *temporary* directory: final or chunkable\n    temp_brf = os.path.join(tmp_dir, \"temporary.brf\")\n    # Python formatting call\n    braille.parse_segments(preprint, temp_brf, page_format)\n\n    # move out of temporary directory as final product(s)\n    # chunk level is either '0' or '1' (exclusive \"if\" follow)\n    if chunk_level == '0':\n        # monolithic file\n        final_brf = get_output_filename(xml_source, out_file, dest_dir, \".brf\")\n        shutil.copyfile(temp_brf, final_brf)\n        log.info(\"Single BRF file deposited as {}\".format(final_brf))\n    if chunk_level == '1':\n        # chunked into chapters\n        # directory switch could be moved to split routine,\n        # or it could be done in temporary directory and copied out\n        with working_directory(dest_dir):\n            _split_brf(temp_brf)\n            log.info(\"BRF file chunked and deposited in {}\".format(dest_dir))\n\n############################\n# Splitting braille chapters\n############################\n\ndef _split_brf(filename):\n    \"\"\"Decompose a BRF file for a book into multiple files of chapters\"\"\"\n\n    # Original author: Alexei Kolesnikov, 2022-12-30\n    # Incorporation into pretext/pretext script: Rob Beezer, 2023-01-01\n\n    # Comments from original version:\n    # This is a script to split a long brf document\n    # that contains many chapters into shorter brf files with a\n    # single chapter each. The script expects that:\n    #\n    # * All the pages are numbered, the number is on the last line of\n    # a page. Chapter titles are at the top of a page,\n    # * There is a table of contents, with specific formatting described\n    # in the comments below.\n    # * The TOC begins with a centered title \"3t5ts\" (\"contents\", in BRF).\n    # * The TOC ends with a centered chapter title on a new page, followed\n    # by a blank line.\n    # * Chapter line in TOC is indented 2 spaces.\n    #\n    # There are limited checks to let the user know when something goes wrong.\n\n\n    # Utilities to convert BRF digits into ASCII digits\n    brf_numbers = 'abcdefghij'\n    num_numbers = '1234567890'\n    brf_to_num_dict = dict(zip(brf_numbers,num_numbers))\n    num_to_brf_dict = dict(zip(num_numbers,brf_numbers))\n\n    def brf_to_num(string):\n        out = ''\n        for char in string:\n            out += brf_to_num_dict[char]\n        return(int(out))\n\n    def num_to_brf(num):\n        out = ''\n        for char in str(num):\n            out += num_to_brf_dict[char]\n        return(out)\n\n    # Wrapper class for chapter number, chapter page range,\n    # chapter body\n    class Chapter():\n        def __init__(self,start_page_num, numbered_chapter,chapter_number):\n            self.start_page = start_page_num\n            self.numbered = numbered_chapter\n            self.number = chapter_number\n            # Placeholder values\n            self.end_page = -1\n            self.body = []\n            self.front_matter = True\n\n        def get_body(self,pages):\n            for page_num in range(self.start_page,self.end_page):\n                self.body += pages[page_num]\n\n        def write_body(self):\n        # The last two cases will be used if we want to split frontmatter or backmatter\n            if self.numbered:\n                out_filename = f\"chapter_{self.number:02d}.brf\"\n            elif self.front_matter:\n                out_filename = f\"frontmatter_{self.number}.brf\"\n            else:\n                out_filename = f\"backmatter_{self.number}.brf\"\n\n            with open(out_filename,'w') as g:\n                g.writelines(self.body)\n\n    def is_chapter_name(line):\n        # If a TOC line starts with two spaces followed by \",\" (capital letter sign) or \"#\"\n        # then it is a chapter line\n        if len(re.findall(\"^[ ]{2}[,|#]\", line)) > 0:\n            chapter_name = True\n            if len(re.findall(\"^[ ]{2}#([a-j]+?) \", line)) > 0:\n                numbered_chapter = True\n                chapter_number = brf_to_num(re.findall(\"^[ ]{2}#([a-j]+?) \", line)[0])\n            elif len(re.findall(\"^[ ]{2},\\\\*apt} #([a-j]+?) \", line)) > 0:\n                numbered_chapter = True\n                chapter_number = brf_to_num(re.findall(\"^[ ]{2},\\\\*apt} #([a-j]+?) \", line)[0])\n            else:\n                numbered_chapter = False\n                chapter_number = -1\n        else:\n            chapter_name = False\n            numbered_chapter = False\n            chapter_number = -1\n        # Return whether the TOC line starts a chapter name, whether it is a numbered chapter\n        # and if yes, the chapter number (-1 if not a numbered chapter).\n        return(chapter_name, numbered_chapter, chapter_number)\n\n    # Input line, output a pair (page_num_found, page_num)\n    # The first is a Boolean; True if the page number is found on the line,\n    # the second is an integer\n    #\n    # Logic:\n    #\n    # * Are there lead-to characters?\n    #\n    # If yes, we win:\n    # ,foo ''''''' #abc\n    # abc is the page of chapter 'foo'; the number at the end of the lead-to characters is the page number\n    #\n    # If not, either the chapter name is too long to have lead-to characters, but the page number is there,\n    # or the number will be on one of the next lines. There are two cases:\n    #\n    # If the line is short <40 characters, then definitely the number is on a line below\n    #\n    # If the line is not short, there are three subcases:\n        # * If the line ends with \" #abc #de\", then the first one is the chapter\n            # page number and the second is the TOC page number\n        # * If the line ends with only one number precedeed by more than 3 spaces, then the chapter page\n            # number is on a line below.\n        # * If the line ends with only one number precedeed by no more than 3 spaces, then this is the\n            # chapter page number.\n    #\n    # This does take into account some crazy chapter names:\n    # \"Key algebro-topological properties of 42  123\"\n    # Asked Michael Cantino more about spacing, he is saying the Liblouis spacing\n    # we have is incorrect.\n\n    def find_chapter_page_num(line):\n        # Are there lead-to characters \" ' \"?\n        if len(re.findall(\" [']{2,35} #\",line)) > 0:\n            m = re.search(\"[']{2,35} #(.+?)[ |\\n]\",line)\n\n            return(True, brf_to_num(m.group(1)))\n        elif len(line) < 40:\n            return(False, -1)\n        elif len(re.findall(\" #([a-j]+?)  #[a-j]+?$\",line)) > 0:\n            page = brf_to_num(re.findall(\" #([a-j]+?)  #[a-j]+?$\",line)[0])\n            return(True, page)\n        elif len(re.findall(\"[ ]{4,35}#[a-j]+?$\",line)) > 0:\n            return(False, -1)\n        elif len(re.findall(\"[ ]{1,3}#([a-j]+?)$\",line)) > 0:\n            page = brf_to_num(re.findall(\"[ ]{1,3}#([a-j]+?)$\",line)[0])\n            return(True, page)\n        else:\n            raise ValueError(f\"A weird long TOC line found:\\n{line}\")\n\n    # The idea is to scan the BRF file for the word 'contents', or '3t5ts' in ASCII Braille\n    # that appears on a short centered line. This would mark the beginning of the TOC.\n    #\n    # Then keep scanning the TOC until we get the next chapter.\n    # Adding running heads will mess with this! So need to revisit when that happens.\n    #\n    # Will return three things: TOC, the entire front matter (ending with TOC), and the \"body\"\n    # All are returned as lists of lines.\n\n    def get_TOC(filename):\n        f = open(filename,'r', encoding=\"latin-1\")\n        front_matter = [] # We want to keep the entire front matter up to and including TOC, it'll be one of the chunks\n        TOC = [] # This will keep the TOC only\n        text_body = [] # We want to get the text body, to be split into pages and then chapters\n\n        is_contents = False\n\n        while not is_contents:\n            line = f.readline()\n            front_matter.append(line)\n            if line == '':\n                raise ValueError(\"Reached the end of file while looking for Table of Contents\")\n\n            if len(re.findall(\"3t5ts\",line)) > 0: # if a line contains the word 'contents', in the middle\n                if re.search(\"3t5ts\",line).start() > 10 and re.search(\"3t5ts\",line).end() < 30:\n                    is_contents = True\n                    log.debug(\"TOC found\")\n\n        while is_contents:\n            line = f.readline()\n\n            if line == '':\n                raise ValueError(\"Reached end of file while reading the Table of Contents\")\n\n            # Check if the line is likely centered and at the top of the page:\n            trailing_spaces = 40 - len(line) - 2 # -2 for good luck\n            pattern = f\"\\f[ ]{ {trailing_spaces} }\"\n            if len(re.findall(pattern,line)) == 0:\n                # if not centered at the top, then add to the TOC list and move on\n                TOC.append(line)\n                front_matter.append(line)\n            else:\n                temp_line = line\n                line = f.readline()\n\n                if line == '\\n':\n                    # if the line after the centered one is empty,\n                    # then we are likely at the start of the next chapter, so done with TOC\n                    is_contents = False\n                    log.debug(f\"Found the end of TOC:\\n{temp_line}\")\n                    text_body.append(temp_line)\n                    text_body.append(line)\n                else:\n                    # False alarm\n                    TOC.append(temp_line)\n                    TOC.append(line)\n                    front_matter.append(temp_line)\n                    front_matter.append(line)\n\n        while line != '':\n            line = f.readline()\n            text_body.append(line)\n\n        f.close()\n        return(TOC, front_matter, text_body)\n\n    # Scan TOC, if a Chapter line is detected (two spaces followed by [,|#] -- anything else?),\n    # then look for a page number of the chapter and append to the list of chapter pages\n\n    def get_chapter_list(TOC):\n        chapter_list = []\n        line_number = 0\n\n        while line_number < len(TOC) - 1:\n            line = TOC[line_number]\n            (chapter_name, numbered_chapter, chapter_number) = is_chapter_name(line)\n            if chapter_name:\n                (page_num_found, start_page_num) = find_chapter_page_num(line)\n                while not page_num_found:\n                    line_number += 1\n                    if line_number == len(TOC)-1:\n                        raise ValueError(\"Reached end of TOC while looking for the page number\")\n\n                    line = TOC[line_number]\n                    (page_num_found, start_page_num) = find_chapter_page_num(line)\n\n                chapter_list.append(Chapter(start_page_num, numbered_chapter,chapter_number))\n\n            line_number += 1\n        return(chapter_list)\n\n    def split_body_into_pages(text_body):\n    # text_body is a list of lines, let's make it into a dictionary of pages\n    # Each element of 'pages' is a list of lines on the same page, indexed by the\n    # number of the page in BRF file\n        pages = dict()\n\n        if len(re.findall(\"\\f\", text_body[0])) == 0:\n            raise ValueError(\"Unexpected first line of body text: does not start with new page character\")\n        current_page = [text_body[0]]\n\n        for number, line in enumerate(text_body[1:]):\n            if line != '': # if we are not at the end\n                if len(re.findall(\"\\f\", line)) == 0:\n                # if we are not starting a new page\n                    current_page.append(line)\n                else: # get the page number of the current page, put it in dict and start a new current page\n                    prev_line = text_body[number] # not 'number - 1' because we are starting with text_body[1]\n\n                    if len(re.findall(\"[ ]{2}#([a-j]+?)$\",prev_line)) == 0:\n                        raise ValueError(f\"Page number not found, expected to be on the line\\n{prev_line}\")\n                    else:\n                        page_num = brf_to_num(re.findall(\"[ ]{2}#([a-j]+?)$\",prev_line)[0])\n                        pages[page_num] = current_page\n                        current_page = [line]\n            # if we are at the last line, nothing to be done\n        log.debug(f\"Successfully split text into {page_num} pages\")\n        return(pages)\n\n    def write_chapters(chapter_list, front_matter, text_body, \\\n                       split_frontmatter = False, split_backmatter = False):\n\n        pages = split_body_into_pages(text_body)\n        is_front_matter = True\n        unnumbered_counter = 1\n        back_matter = []\n\n        for index in range(len(chapter_list)):\n            # Assume that un-numbered chapters at the start are part of front matter.\n            # Followed by numbered chapters\n            # Followed by un-numbered back-matter\n\n            chapter = chapter_list[index]\n            # End page of a chapter is either the first page of the next chapter\n            # (keeping in mind Python range conventions) or the last page of the document\n            if index < len(chapter_list) - 1:\n                chapter.end_page = chapter_list[index + 1].start_page\n            else:\n                chapter.end_page = max([num for num in pages.keys()]) + 1\n            # Now we get the pages for each chapter:\n            chapter.get_body(pages)\n\n            if chapter.numbered:\n                is_front_matter = False # Somewhat inefficient because we do it\n                unnumbered_counter = 1  # more than once, but no harm\n\n                chapter.write_body()\n\n            elif is_front_matter:\n                chapter.front_matter = True\n                if split_frontmatter:\n                    chapter.number = unnumbered_counter\n                    chapter.write_body()\n                    unnumbered_counter += 1\n                else:\n                    front_matter += chapter.body\n\n            else: # Must be back matter\n                chapter.front_matter = False\n                if split_backmatter:\n                    chapter.number = unnumbered_counter\n                    chapter.write_body()\n                    unnumbered_counter += 1\n                else:\n                    back_matter += chapter.body\n\n\n            # Now everything was written except the TOC front matter and backmatter\n            # if we were not splitting\n\n            with open(\"frontmatter.brf\",'w') as g:\n                g.writelines(front_matter)\n            if back_matter != []:\n                with open(\"backmatter.brf\",'w') as g:\n                    g.writelines(back_matter)\n\n            # TODO: add debug message listing all the chapters?\n\n    toc, frontmatter, bodytext = get_TOC(filename)\n    chapters = get_chapter_list(toc)\n    write_chapters(chapters, frontmatter, bodytext)\n\n\n####################\n# Conversion to EPUB\n####################\n\n\ndef epub(xml_source, pub_file, out_file, dest_dir, file_format, math_format, stringparams):\n    \"\"\"Produce complete document in an EPUB container\"\"\"\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    # math_format is a string that parameterizes this process\n    #   'svg': mathematics as SVG\n    #   'mml': mathematics as MathML\n    import fileinput\n\n    # for building a cover image\n    # modules from the PIL package\n    import PIL.Image  # new()\n    import PIL.ImageDraw  # Draw()\n    import PIL.ImageFont  # truetype(), load_default()\n\n    # general message for this entire procedure\n    log.info(\n        \"converting {} into EPUB in {} with math as {}\".format(\n            xml_source, dest_dir, math_format\n        )\n    )\n\n    # Build into a scratch directory\n    tmp_dir = get_temporary_directory()\n    log.debug(\"EPUB manufacture in temporary directory: {}\".format(tmp_dir))\n\n    # Before making a zip file, the temporary directory should look\n    # like the unzipped version of an EPUB file.  For us, that goes:\n\n    # mimetype\n    # EPUB\n    #   package.opf\n    #   css\n    #   xhtml\n    #     generated images (customizable)\n    #     external images (customizable)\n    # META-INF\n\n    source_dir = get_source_path(xml_source)\n    epub_xslt = os.path.join(get_ptx_xsl_path(), \"pretext-epub.xsl\")\n    math_representations = os.path.join(\n        tmp_dir, \"math-representations-{}.xml\".format(math_format)\n    )\n    # speech representations are just for SVG images, but we define the filename always anyway\n    speech_representations = os.path.join(\n        tmp_dir, \"math-representations-{}.xml\".format(\"speech\")\n    )\n    packaging_file = os.path.join(tmp_dir, \"packaging.xml\")\n    xhtml_dir = os.path.join(tmp_dir, \"EPUB\", \"xhtml\")\n\n    # ripping out LaTeX as math representations\n    msg = \"converting raw LaTeX from {} into clean {} format placed into {}\"\n    log.debug(msg.format(xml_source, math_format, math_representations))\n    mathjax_latex(xml_source, pub_file, math_representations, None, math_format)\n    # optionally, build a file of speech versions of the math\n    if math_format == \"svg\":\n        log.debug(msg.format(xml_source, \"speech\", speech_representations))\n        mathjax_latex(xml_source, pub_file, speech_representations, None, \"speech\")\n\n    # Build necessary content and infrastructure EPUB files,\n    # using SVG images of math.  Most output goes into the\n    # EPUB/xhtml directory via exsl:document templates in\n    # the EPUB XSL conversion.  The stylesheet does record,\n    # and produce some information needed for the packaging here.\n    log.info(\n        \"converting source ({}) and clean representations ({}) into EPUB files\".format(\n            xml_source, math_representations\n        )\n    )\n    params = {}\n\n    # the EPUB production is parmameterized by how math is produced\n    params[\"mathfile\"] = math_representations.replace(os.sep, \"/\")\n    # It is convenient for the subsequent XSL to always get a 'speechfile'\n    # string parameter.  An empty string seems to not provoke an error,\n    # though perhaps the resulting variable is crazy.  We'll just be\n    # sure not to access the variable unless making SVG images.\n    if math_format == \"svg\":\n        params[\"speechfile\"] = speech_representations.replace(os.sep, \"/\")\n    else:\n        params[\"speechfile\"] = \"\"\n    params[\"math.format\"] = math_format\n    params[\"tmpdir\"] = tmp_dir.replace(os.sep, \"/\")\n    if pub_file:\n        params[\"publisher\"] = pub_file\n    xsltproc(epub_xslt, xml_source, packaging_file, tmp_dir, {**params, **stringparams})\n\n    # XHTML files lack an overall namespace,\n    # while EPUB validation expects it\n    # Kindle needs an encoding declaration to avoid assuming ASCII\n    # regex inplace to end up with:\n    #   <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n    #   <html xmlns=\"http://www.w3.org/1999/xhtml\">\n    orig = \"<html\"\n    repl = __xml_header + '<html xmlns=\"http://www.w3.org/1999/xhtml\"'\n    # the inoplace facility of the fileinput module gets\n    # confused about temporary backup files if the working\n    # directory is not where the file lives\n    # Also, print() here actual writes on the file, as\n    # another facility of the fileinput module, but we need\n    # to kill the \"extra\" newline that print() creates\n    with working_directory(xhtml_dir):\n        html_elt = re.compile(orig)\n        for root, dirs, files in os.walk(xhtml_dir):\n            for fn in files:\n                with fileinput.FileInput(fn, inplace=True) as file:\n                    for line in file:\n                        print(html_elt.sub(repl, line), end=\"\")\n\n    # EPUB stylesheet writes an XHTML file with\n    # bits of info necessary for packaging\n    packaging_tree = ET.parse(packaging_file)\n\n    # Stage CSS files in EPUB/css, coordinate\n    # with names in manifest and *.xhtml via XSL.\n    # CSS files live in distribution in \"css\" directory,\n    # which is a peer of the \"xsl\" directory\n    # EPUB exists from above xsltproc call\n    css_dir = os.path.join(tmp_dir, \"EPUB\", \"css\")\n    os.mkdir(css_dir)\n\n    # All styles are baked into one of these two files\n    if math_format == \"kindle\":\n        css = os.path.join(get_ptx_xsl_path(), \"..\", \"css\", \"dist\", \"kindle.css\")\n        shutil.copy2(css, css_dir)\n    else:\n        css = os.path.join(get_ptx_xsl_path(), \"..\", \"css\", \"dist\", \"epub.css\")\n        shutil.copy2(css, css_dir)\n\n    # EPUB Cover File\n\n    # The /packaging/cover/ entry has the (relative) paths for the author's\n    # provided cover image file and where it should land in the XHTML directory\n    # of files, consistent with the manifest, etc.\n    #\n    # @authored-cover is 'yes' or 'no'.  In the latter case most of the\n    # action happens here in the Python\n\n    is_cover_authored = (packaging_tree.xpath(\"/packaging/cover/@authored-cover\")[0] == 'yes')\n    if is_cover_authored:\n        # Build absolute paths and mirror directory structure, except for the\n        # transition from authors name for \"external\" to the actual use of\n        # \"external\" in the XHTML.  These details were handled in the creation\n        # of the relevant publisher variables, which then migrated to the\n        # packaging file, and then here\n        cover_source_file = packaging_tree.xpath(\"/packaging/cover/@source\")[0]\n        cover_dest_file = packaging_tree.xpath(\"/packaging/cover/@dest\")[0]\n        cover_source = os.path.join(source_dir, str(cover_source_file))\n        cover_dest = os.path.join(xhtml_dir, str(cover_dest_file))\n        # https://stackoverflow.com/questions/2793789, Python 3.2\n        os.makedirs(os.path.dirname(cover_dest), exist_ok=True)\n        shutil.copy2(cover_source, cover_dest)\n    else:\n        # When an author does not provide an image, we try to manufacture one.\n        # The file will be named \"cover.png\" and will be a top-level file in\n        # the XHTML directory.  A publisher variable maintains consistency as\n        # to what land in the XHTML files themselves (and manifest, etc.)\n        cover_source = os.path.join(tmp_dir, \"cover.png\")\n        cover_dest = os.path.join(xhtml_dir, \"cover.png\")\n        # Get some useful things from the packaging file\n        title = packaging_tree.xpath(\"/packaging/title\")[0].xpath(\"string()\").__str__()\n        subtitle = (\n            packaging_tree.xpath(\"/packaging/subtitle\")[0].xpath(\"string()\").__str__()\n        )\n        author = (\n            packaging_tree.xpath(\"/packaging/author\")[0].xpath(\"string()\").__str__()\n        )\n        title_ASCII = \"\".join([x if ord(x) < 128 else \"?\" for x in title])\n        subtitle_ASCII = \"\".join([x if ord(x) < 128 else \"?\" for x in subtitle])\n        author_ASCII = \"\".join([x if ord(x) < 128 else \"?\" for x in author])\n        log.info(\"attempting to construct cover image using LaTeX and ImageMagick\")\n        try:\n            # process with the  xelatex  engine (better Unicode support)\n            latex_key = get_deprecated_tex_fallback(\"xelatex\")\n            tex_executable_cmd = get_executable_cmd(latex_key)\n            cover_tex_template = \"\\\\documentclass[20pt]{{scrartcl}}\\\\begin{{document}}\\\\title{{ {} }}\\\\subtitle{{ {} }}\\\\author{{ {} }}\\\\date{{}}\\\\maketitle\\\\thispagestyle{{empty}}\\\\end{{document}}\"\n            if \"xelatex\" in tex_executable_cmd:\n                cover_tex = cover_tex_template.format(\n                    title, subtitle, author.replace(\", \", \"\\\\\\\\\")\n                )\n            else:\n                cover_tex = cover_tex_template.format(\n                    title_ASCII, subtitle_ASCII, author_ASCII\n                )\n            cover_tex_file = os.path.join(tmp_dir, \"cover.tex\")\n            with open(cover_tex_file, \"w\") as tex:\n                tex.write(cover_tex)\n            latex_cmd = tex_executable_cmd + [\"-interaction=batchmode\", cover_tex_file]\n            cover_pdf_file = os.path.join(tmp_dir, \"cover.pdf\")\n            # Presume ImageMagick's \"convert\" executable is on the path\n            pdfpng_executable_cmd = [\"convert\"]\n            png_cmd = pdfpng_executable_cmd + [\n                \"-quiet\",\n                \"-density\",\n                \"300\",\n                cover_pdf_file + \"[0]\",\n                \"-gravity\",\n                \"center\",\n                \"-crop\",\n                \"5:8\",\n                \"-background\",\n                \"white\",\n                \"-alpha\",\n                \"remove\",\n                \"-quality\",\n                \"100\",\n                cover_source,\n            ]\n            with working_directory(tmp_dir):\n                subprocess.run(latex_cmd)\n                subprocess.run(png_cmd)\n        except:\n            msg = '\\n'.join([\"failed to construct cover image using LaTeX and ImageMagick\",\n                             'perhaps because the \"convert\" executable is not on your path.'])\n            log.warning(msg)\n            log.info('attempting to construct cover image using \"Arial.ttf\" and \"Arial Bold.ttf\"')\n            try:\n                title_size = 100\n                title_font = PIL.ImageFont.truetype(\"Arial Bold.ttf\", title_size)\n                subtitle_size = int(title_size * 0.6)\n                subtitle_font = PIL.ImageFont.truetype(\n                    \"Arial Bold.ttf\", subtitle_size\n                )\n                author_size = subtitle_size\n                author_font = PIL.ImageFont.truetype(\"Arial.ttf\", author_size)\n                title_words = title.split()\n                subtitle_words = subtitle.split()\n                author_names = [x.strip() for x in author.split(\",\")]\n                png_width = 1280\n                png_height = int(png_width * 1.6)\n                # build an array of lines for the title (and subtitle), each line fitting within 80% of png_width\n                title_lines = [\"\"]\n                for word in title_words:\n                    last_line = title_lines[-1]\n                    (line_width, line_height) = title_font.getsize(\n                        last_line + \" \" + word\n                    )\n                    if line_width <= 0.8 * png_width:\n                        title_lines[-1] += \" \" + word\n                    else:\n                        title_lines.append(word)\n                multiline_title = \"\\n\".join(title_lines).strip()\n                subtitle_lines = [\"\"]\n                for word in subtitle_words:\n                    last_line = subtitle_lines[-1]\n                    (line_width, line_height) = subtitle_font.getsize(\n                        last_line + \" \" + word\n                    )\n                    if line_width <= 0.8 * png_width:\n                        subtitle_lines[-1] += \" \" + word\n                    else:\n                        subtitle_lines.append(word)\n                multiline_subtitle = \"\\n\".join(subtitle_lines).strip()\n                # each author on own line\n                multiline_author = \"\\n\".join(author_names).strip()\n                # create new image\n                cover_png = PIL.Image.new(\n                    mode=\"RGB\", size=(png_width, png_height), color=\"white\"\n                )\n                draw = PIL.ImageDraw.Draw(cover_png)\n                title_depth = int(png_height // 4)\n                subtitle_depth = (\n                    title_depth + len(title_lines) * title_size + 0.2 * title_size\n                )\n                author_depth = (\n                    subtitle_depth\n                    + len(subtitle_lines) * subtitle_size\n                    + 0.8 * title_size\n                )\n                draw.multiline_text(\n                    (int(png_width // 2), title_depth),\n                    multiline_title,\n                    font=title_font,\n                    fill=\"black\",\n                    anchor=\"ma\",\n                    align=\"center\",\n                )\n                draw.multiline_text(\n                    (int(png_width // 2), subtitle_depth),\n                    multiline_subtitle,\n                    font=subtitle_font,\n                    fill=\"gray\",\n                    anchor=\"ma\",\n                    align=\"center\",\n                )\n                draw.multiline_text(\n                    (int(png_width // 2), author_depth),\n                    multiline_author,\n                    font=author_font,\n                    fill=\"black\",\n                    anchor=\"ma\",\n                    align=\"center\",\n                )\n                cover_png.save(cover_source)\n            except:\n                log.warning(\n                    'failed to construct cover image using \"Arial.ttf\" and \"Arial Bold.ttf\"'\n                )\n                log.info(\"attempting to construct crude bitmap font cover image\")\n                try:\n                    title_words = title_ASCII.split()\n                    title_font = PIL.ImageFont.load_default()\n                    cover_png = PIL.Image.new(\n                        mode=\"RGB\", size=(120, 192), color=\"white\"\n                    )\n                    draw = PIL.ImageDraw.Draw(cover_png)\n                    y = 20\n                    for word in title_words:\n                        draw.text((20, y), word, font=title_font, fill=\"black\")\n                        y += 10\n                    cover_png.save(cover_source)\n                except:\n                    # We failed to build a cover.png so we remove all references to cover.png\n                    log.warning(\"failed to construct a cover image\")\n        try:\n            shutil.copy2(cover_source, cover_dest)\n        except:\n            log.info(\"removing references to cover image from package.opf\")\n            package_opf = os.path.join(tmp_dir, \"EPUB/package.opf\")\n            package_opf_tree = ET.parse(package_opf)\n            for meta in package_opf_tree.xpath(\n                \"//opf:meta[@name='cover']\",\n                namespaces={\"opf\": \"http://www.idpf.org/2007/opf\"},\n            ):\n                meta.getparent().remove(meta)\n            for item in package_opf_tree.xpath(\n                \"//opf:item[@id='cover-image']\",\n                namespaces={\"opf\": \"http://www.idpf.org/2007/opf\"},\n            ):\n                item.getparent().remove(item)\n            package_opf_tree.write(package_opf)\n\n    # position image files\n    images = packaging_tree.xpath(\"/packaging/images/image[@filename]\")\n    for im in images:\n        sourcename = str(im.get(\"sourcename\"))\n        filename = str(im.get(\"filename\"))\n        try:\n            source = os.path.join(source_dir, sourcename)\n            dest = os.path.join(xhtml_dir, filename)\n            os.makedirs(os.path.dirname(dest), exist_ok=True)\n            shutil.copy2(source, dest)\n        except Exception as e:\n            msg = 'PTX:BUG: error copying image with sourcename \"{}\" and filename \"{}\".  Traceback follows:'\n            # traceback.print_exc()\n            log.warning(msg.format(sourcename, filename))\n            log.warning(traceback.format_exc())\n\n    # The build/temp directory has a lot of cruft\n    # Leave it for the nozip option (debugging)\n    # Remove it before zipping\n    #\n    # cover manufacture (cover.log, cover.aux, etc)\n    # os.remove(packaging_file)\n    # os.remove(math_representations)\n\n    ##########################################\n    # Notes on packaging an EPUB as a ZIP file\n    ##########################################\n\n    # mimetype parameters: -0Xq\n    # -0 no compression\n    # -X no extra fields, eg uid/gid on Unix\n    # -q quiet (not relevant)\n\n    # remainder parameters: -Xr9Dq\n    # -X no extra fields, eg uid/gid on Unix\n    # -r recursive travel\n    # -9 maximum compression\n    # -D no directory entries\n    # -q quiet (not relevant)\n\n    # https://www.w3.org/publishing/epub3/epub-ocf.html#sec-container-zip\n    # Spec says only \"deflated compression\"\n\n    # recursize walking\n    # https://www.tutorialspoint.com/How-to-zip-a-folder-recursively-using-Python\n\n    # Python 3.7 - compress level 0 to 9\n\n    if file_format == 'epub':\n        title_file_element = packaging_tree.xpath(\"/packaging/filename\")[0]\n        title_file = ET.tostring(title_file_element, method=\"text\").decode(\"ascii\")\n        epub_file = \"{}-{}.epub\".format(title_file, math_format)\n        log.info(\"packaging an EPUB temporarily as {}\".format(epub_file))\n        with working_directory(tmp_dir):\n            with zipfile.ZipFile(epub_file, mode=\"w\", compression=zipfile.ZIP_DEFLATED) as epub:\n                epub.write(\"mimetype\", compress_type=zipfile.ZIP_STORED)\n                for root, dirs, files in os.walk(\"EPUB\"):\n                    for name in files:\n                        epub.write(os.path.join(root, name))\n                for root, dirs, files in os.walk(\"META-INF\"):\n                    for name in files:\n                        epub.write(os.path.join(root, name))\n            derivedname = get_output_filename(xml_source, out_file, dest_dir, \".epub\")\n            log.info(\"EPUB file deposited as {}\".format(derivedname))\n            shutil.copy2(epub_file, derivedname)\n    elif file_format == 'nozip':\n        copy_build_directory(tmp_dir, dest_dir)\n        msg = 'EPUB build files produced, but not zipped into a single file; results placed in {}'\n        log.info(msg.format(dest_dir))\n    else:\n        msg = 'PTX:BUG: conversion to EPUB got an unrecognized file format (\"{}\").  No output results.'\n        log.warning(msg.format(file_format))\n\n\n####################\n# Conversion to HTML\n####################\n\n# Leads with various helper functions, see\n# also the dynamic_subsitutions() function\n\ndef _parse_runestone_services(et):\n    # Unpack contents into format for XSL string parameters\n    # This mirrors the XML file format, including multiple \"item\"\n    #\n    # creates PreTeXt-specific format for passing to XSL to unpack\n\n    # colon-delimited string of the JS files\n    rs_js = ''\n    for js in et.xpath(\"/all/js/item\"):\n        rs_js = rs_js + js.text + ':'\n    rs_js = rs_js[:-1]\n    # colon-delimited string of the CSS files\n    rs_css = ''\n    for css in et.xpath(\"/all/css/item\"):\n        rs_css = rs_css + css.text + ':'\n    rs_css = rs_css[:-1]\n    # single CDN URL\n    rs_cdn_url = et.xpath(\"/all/cdn-url\")[0].text\n    # single Runestone Services version\n    rs_version = et.xpath(\"/all/version\")[0].text\n\n    return (rs_js, rs_css, rs_cdn_url, rs_version)\n\n# Update stringparams with Runestone Services information\ndef _set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version):\n    stringparams[\"rs-js\"] = rs_js\n    stringparams[\"rs-css\"] = rs_css\n    stringparams[\"rs-version\"] = rs_version\n\n# A helper function to query the latest Runestone\n# Services file, while failing gracefully\n\ndef _runestone_services(stringparams, ext_rs_methods):\n    \"\"\"Query the very latest Runestone Services file from the RS CDN\"\"\"\n\n    # stringparams - string parameter dictionary, this gains three\n    #                new keys which are passed on to the XSL eventually\n    # ext_rs_methods - an optional function that can replace the querying\n    #                   of the Runestone Services file\n    # Result - returns five pieces of discovered or set information,\n    #          see *two* return statements, one is intermediate.\n    #          Failure is an option, if a network request fails\n\n    # Canonical location of file of redirections to absolute-latest\n    # released version of Runestone Services when parameterized by\n    # \"latest\", otherwise will get a specific previous version\n    services_url_template = 'https://runestone.academy/cdn/runestone/{}/webpack_static_imports.xml'\n\n    # First, set the URL to hit on Runestone servers to initiate discovery\n    # 1. debugging with a specific (old) version, set a URL and warn\n    # 2. The generic  debug.rs.dev  requires developer to populate _static\n    # 3. The \"usual\" case is provided by Runestone's \"latest\" directory, set a URL\n    # (2) always succeeds, (1) and (3) can fail due to network errors\n    if \"debug.rs.version\" in stringparams:\n        rs_debug_version = stringparams[\"debug.rs.version\"]\n        services_url = services_url_template.format(rs_debug_version)\n        msg = '\\n'.join([\"Requested Runestone Services, version {} from Runestone servers via the  debug.rs.version  string parameter.\",\n            \"This is strictly for DEBUGGING and not for PRODUCTION.  The requested version may not exist,\",\n            \"or there could be a network error and you will get something you did not expect.\",\n            \"Subsequent diagnostic messages may be inaccurate.  Verify your HTML output is as intended.\"\n            ])\n        log.info(msg.format(rs_debug_version))\n        # could remove the  debug.rs.version  key here,\n        # no longer necessary to distinguish this case\n    elif \"debug.rs.dev\" in stringparams:\n        # basically a \"pass\"\n        log.info(\"Building for local developmental Runestone Services. Make sure to build Runestone Services to _static in the output directory.\")\n    else:\n        services_url = services_url_template.format(\"latest\")\n\n    # Predictable and convenient debugging situation\n    # Developer is responsible for placement of the right files in _static\n    # ** Simply return early with stock values (or None) **\n    if \"debug.rs.dev\" in stringparams:\n        rs_js, rs_css, rs_cdn_url, rs_version, services_xml = _runestone_debug_service_info()\n        _set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version)\n        return (rs_js, rs_css, rs_cdn_url, rs_version, services_xml)\n\n    # Otherwise, we have a URL pointing to the Runestone server/CDN\n    # which may be successful and may not.\n    try:\n        if ext_rs_methods and \"debug.rs.version\" not in stringparams:\n            # ext_rs_methods can be passed by the calling function.\n            # It should only accept keyword arguments, including `format` to\n            # distinguish between different types of requests.  Here we use\n            # format=\"xml\" to indicate we are getting the small XML file containing\n            # data about the services and returning it as a string.\n            services_xml = ext_rs_methods(url=services_url, format=\"xml\")\n        else:\n            # Network failure is fatal.  query_runestone_services() will raise an exception\n            # if it cannot get the Runestone Services file\n            services_xml = query_runestone_services(services_url)\n    except Exception as e:\n        raise Exception(e)\n\n    # Now services_xml should be meaningful since we haven't raised an exception.\n\n    services = ET.fromstring(services_xml)\n    # Interrogate the services XML\n    rs_js, rs_css, rs_cdn_url, rs_version = _parse_runestone_services(services)\n\n    # Return, plus side-effect\n    _set_runestone_stringparams(stringparams, rs_js, rs_css, rs_version)\n    return (rs_js, rs_css, rs_cdn_url, rs_version, services_xml)\n\ndef _runestone_debug_service_info():\n    \"\"\"Return hardcoded values used for debugging Runestone Services (debug.rs.dev)\"\"\"\n    rs_js = \"prefix-runtime.bundle.js:prefix-runtime-libs.bundle.js:prefix-runestone.bundle.js\"\n    rs_css = \"prefix-runtime-libs.css:prefix-runestone.css\"\n    rs_cdn_url = None\n    rs_version = \"dev\"\n    services_xml = None\n    return (rs_js, rs_css, rs_cdn_url, rs_version, services_xml)\n\ndef _cdn_runestone_services(stringparams, ext_rs_methods):\n    \"\"\"Version of _runestone_services function to query the Runestone Services file from the PreTeXt html-static CDN\"\"\"\n\n    # stringparams - string parameter dictionary, this gains three\n    #                new keys which are passed on to the XSL eventually\n    # ext_rs_methods - an optional function that can replace the querying\n    #                   of the Runestone Services file\n    # Result - returns None, but updates stringparams dictionary with relevant rs values.\n\n    # CDN url for runestone services xml file\n    services_url_template = 'https://cdn.jsdelivr.net/gh/pretextbook/html-static@{}/dist/_static/runestone_services.xml'\n\n    # When builing portable html using the pretext CDN, it doesn't make sense to\n    # use the rs.version or rs.dev stringparams.  We warn if either of these are set.\n    if \"debug.rs.version\" in stringparams:\n        log.warning(\"Building portable html so ignoring the debug.rs.version string param\")\n        stringparams.pop(\"debug.rs.version\")\n    if \"debug.rs.dev\" in stringparams:\n        log.warning(\"Building portable html so ignoring the debug.rs.dev string param\")\n        stringparams.pop(\"debug.rs.dev\")\n\n    # set version to \"latest\" unless cli set cdn version\n    rs_version = stringparams.get(\"cli.version\") or \"latest\"\n    log.info(\"Using rs services version {} from the PreTeXt CDN\".format(rs_version))\n    services_url = services_url_template.format(rs_version)\n\n    # Otherwise, we have a URL pointing to the Runestone server/CDN\n    # which may be successful and may not.\n    try:\n        if ext_rs_methods:\n            # ext_rs_methods can be passed by the calling function.\n            # It should only accept keyword arguments, including `format` to\n            # distinguish between different types of requests.  Here we use\n            # format=\"xml\" to indicate we are getting the small XML file containing\n            # data about the services and returning it as a string.\n            services_xml = ext_rs_methods(url=services_url, format=\"xml\")\n        else:\n            # Network failure is fatal.  query_runestone_services() will raise an exception\n            # if it cannot get the Runestone Services file\n            services_xml = query_runestone_services(services_url)\n    except Exception as e:\n        raise Exception(e)\n\n    # Now services_xml should be meaningful since we haven't raised an exception.\n    services = ET.fromstring(services_xml)\n    # Interrogate the services XML\n    rs_js, rs_css, rs_cdn_url, rs_version = _parse_runestone_services(services)\n\n    # Set rs stringparams\n    stringparams[\"rs-js\"] = rs_js\n    stringparams[\"rs-css\"] = rs_css\n    stringparams[\"rs-version\"] = rs_version\n    return None\n\n\ndef query_runestone_services(services_url):\n    \"\"\"Query the Runestone Services file from the Runestone CDN.  Returns the response object's text (xml) or raises an exception if the network request fails.\"\"\"\n\n    # We assume an online query is a success, until we learn otherwise\n    online_success = True\n\n    # Test if (optional) requests module is installed\n    try:\n        import requests\n    except ImportError:\n        msg = 'the \"requests\" module is not available and is necessary for querying the Runestone CDN'\n        log.debug(msg)\n        online_success = False\n\n    # Make a request with requests, which could fail if offline\n    if online_success:\n        try:\n            services_response = requests.get(services_url, timeout=(1,10)) # 1 second connect, 10 second read\n        except requests.exceptions.RequestException as e:\n            msg = '\\n'.join(['there was a network problem while trying to retrieve \"{}\"',\n                             'from the Runestone CDN and the reported problem is:',\n                             '{}'\n                             ])\n            log.debug(msg.format(services_url, e))\n            online_success = False\n\n    # Check that an online request was \"OK\", HTTP response code 200\n    if online_success:\n        response_status_code = services_response.status_code\n        if response_status_code != 200:\n            msg = '\\n'.join([\"the file {} was not found at the Runestone CDN\",\n                             \"the server returned response code {}\"\n                             ])\n            log.debug(msg.format(services_url, response_status_code))\n            online_success = False\n\n    if not(online_success):\n        msg = '\\n'.join([\"unable to get Runestone Services from the Runestone CDN.\",\n                         \"This is due to an error reported immediately prior in the log.\",\n                         \"Unable to proceed and build useful HTML output without this.\"\n                         ])\n        log.debug(msg)\n        # fatal error here, a URL is not doing the job\n        raise Exception(msg)\n    # Return the XML from the services response\n    return services_response.text\n\n\ndef _place_runestone_services(tmp_dir, stringparams, ext_rs_methods):\n    '''Obtain Runestone Services and place in _static directory of build'''\n\n    # stringparams - this will be changed, receives Runestone Services information\n    #                also contains potential debugging switches to influence behavior\n    # ext_rs_methods - an optional function that can replace the querying and\n    #                  downloading of the Runestone Services file\n\n    # See if we can get Runestone Services, or interpret debugging selections\n    # This call will always change  stringparams (absent network failures)\n    # These get communicated eventually to the XSL to formulate the HTML #head\n    rs_js, rs_css, rs_cdn_url, rs_version, services_xml = _runestone_services(stringparams, ext_rs_methods)\n    # A URL to the Runestone servers will have been successful\n    # in the \"usual\" and  debug.rs.version  cases\n    if \"debug.rs.dev\" not in stringparams:\n        # Previous line will raise a fatal error if the Runestone servers\n        # do not cooperate, so we assume we have good information for\n        # locating the most recent version of Runestone Services\n        msg = 'Runestone Services via online CDN query: version {}'\n        log.info(msg.format(rs_version))\n\n        # Get all the Runestone files and place in _static\n        # We \"build\" in tmp_dir, place \"output\" in dest_dir\n        build_dir = os.path.join(tmp_dir, \"_static\")\n        services_file_name = \"dist-{}.tgz\".format(rs_version)\n        services_build_path = os.path.join(build_dir, services_file_name)\n        # services_record is copy of services xml file\n        # predictable name, contains version information\n        services_record_build_path = os.path.join(build_dir, \"_runestone-services.xml\")\n        try:\n            msg = 'Downloading Runestone Services, version {}'\n            log.info(msg.format(rs_version))\n            if ext_rs_methods:\n                # ext_rs_methods can be passed by the calling function.\n                # It should only accept keyword arguments, including `format` to\n                # distinguish between different types of requests.  Here we use\n                # the format \"tgz\" to indicate that we are finding the full\n                # tgz archive of Runestone Services.\n                ext_rs_methods(url=rs_cdn_url + services_file_name, out_path=services_build_path, format=\"tgz\")\n            else:\n                download_file(rs_cdn_url + services_file_name, services_build_path)\n            log.info(\"Extracting Runestone Services from archive file\")\n            import tarfile\n            services_file = tarfile.open(services_build_path)\n            services_file.extractall(build_dir)\n            services_file.close()\n            # once unpacked, archive no longer necessary\n            os.remove(services_build_path)\n            # write the services_record XML file for potential\n            # version checking with a caching implementation\n            services_record = open(services_record_build_path, 'w')\n            services_record.write(services_xml)\n            services_record.close()\n        except Exception as e:\n            log.warning(e)\n            log.warning(\"Failed to download all Runestone Services files\")\n\n# Helper to move a prebuilt css theme into the build directory as theme.css\ndef _move_prebuilt_theme(theme_name, theme_opts, tmp_dir):\n    css_src = os.path.join(get_ptx_path(), \"css\", \"dist\")\n    css_dest = os.path.join(tmp_dir, \"_static\", \"pretext\", \"css\")\n\n    src = os.path.join(get_ptx_path(), \"css\", \"dist\", \"theme-{}.css\".format(theme_name))\n    dest = os.path.join(get_ptx_path(), os.path.join(css_dest, \"theme.css\"))\n\n    # ugly to have this here - it exists for more general use in _palette-dual.scss,\n    # but to support prebuilt default theme we need to look up its colors here\n    color_schemes = {\n      \"blue-red\": {\n        \"primary-color\": \"#195684\",\n        \"secondary-color\": \"#932c1c\",\n      },\n      \"blue-green\": {\n        \"primary-color\": \"#195684\",\n        \"secondary-color\": \"#28803f\",\n      },\n      \"green-blue\": {\n        \"primary-color\": \"#1a602d\",\n        \"secondary-color\": \"#2a5ea4\",\n      },\n      \"greens\": {\n        \"primary-color\": \"#193e1c\",\n        \"secondary-color\": \"#347a3a\",\n      },\n      \"blues\": {\n        \"primary-color\": \"hsl(217, 70%, 20%)\",\n        \"secondary-color\": \"hsl(216, 42%, 47%)\",\n      }\n    }\n\n    scheme = \"blue-red\"\n    if 'palette' in theme_opts['options'].keys():\n        if theme_opts['options']['palette']:\n            selected_palette = theme_opts['options']['palette']\n            if selected_palette in color_schemes.keys():\n                scheme = theme_opts['options']['palette']\n            else:\n                log.warning(\"Selected palette \" + selected_palette + \" not found in color schemes. Using default scheme.\")\n\n    if 'primary-color' not in theme_opts['options'].keys():\n        theme_opts['options']['primary-color'] = color_schemes[scheme]['primary-color']\n\n    if 'secondary-color' not in theme_opts['options'].keys():\n        theme_opts['options']['secondary-color'] = color_schemes[scheme]['secondary-color']\n\n    log.info(\"Using prebuilt CSS theme: \" + theme_name + \" with options: \" + str(theme_opts))\n\n    # copy src -> dest with modifications\n    with open(src, 'r') as theme_file:\n        filedata = theme_file.read()\n\n        # modify file so that it points to the map file theme.css.map\n        filedata = re.sub(r'sourceMappingURL=[^\\s]*', r'sourceMappingURL=theme.css.map', filedata)\n\n        # append some css variables to the file so that colors can be customized\n        # without rebuilding the theme\n        regular_vars = {k:v for k, v in theme_opts['options'].items() if \"-dark\" not in k}\n        if regular_vars:\n            filedata += \"\\n/* generated from pub variables */\\n:root:not(.dark-mode) {\"\n            for key, value in regular_vars.items():\n                filedata += \"--{}: {};\".format(key, value)\n            filedata += \"}\"\n\n        dark_vars = {k.replace(\"-dark\",\"\"):v for k, v in theme_opts['options'].items() if \"-dark\" in k}\n        if dark_vars:\n            filedata += \"\\n/* generated from pub variables */\\n:root.dark-mode {\"\n            for key, value in dark_vars.items():\n                filedata += \"--{}: {};\".format(key, value)\n            filedata += \"}\"\n\n        os.makedirs(os.path.dirname(dest), exist_ok=True)\n        with open(dest, 'w+') as file:\n            file.write(filedata)\n\n    # map file copied to theme.css.map\n    if os.path.exists(src + \".map\"):\n        shutil.copy(src + \".map\", dest + \".map\")\n\n    # print-worksheet\n    for file in [\"print-worksheet.css\", \"print-worksheet.css.map\"]:\n        src = os.path.join(css_src, file)\n        dest = os.path.join(css_dest, file)\n        if os.path.exists(src):\n            shutil.copy(src, dest)\n\n\n# Helper to build a custom version of a theme\ndef _build_custom_theme(xml, theme_name, theme_opts, tmp_dir):\n    ptx_path = get_ptx_path()\n    script = os.path.join(ptx_path, \"script\", \"cssbuilder\", \"cssbuilder.mjs\")\n    css_dest = os.path.join(tmp_dir, \"_static\", \"pretext\", \"css\")\n\n    # if doing building a completely custom theme, update entry-point to include full path as string\n    if theme_name == \"custom\":\n        theme_opts['options']['entry-point'] = os.path.join(get_source_path(xml), theme_opts['options']['entry-point'])\n\n    # attempt build\n    error_message = \"Node.js is required to build themes other than default-modern. Make sure it is installed and in your PATH. Then do 'npm install' in the pretext/script/cssbuilder directory. https://pretextbook.org/doc/guide/html/node-and-npm.html\"\n    try:\n        import subprocess, json\n        node_exec_cmd = get_executable_cmd(\"node\")\n        # theme name is prefixed with \"theme-\" in the cssbuilder script output\n        full_name = \"theme-{}\".format(theme_name)\n        log.info(\"Building custom css theme: \" + full_name)\n        log.debug(\"Theme options:\" + json.dumps(theme_opts))\n        result = subprocess.run(node_exec_cmd + [script, \"-t\", full_name, \"-o\", css_dest, \"-c\", json.dumps(theme_opts)], capture_output=True, timeout=60)\n        if result.stdout:\n            log.debug(result.stdout.decode())\n        if result.stderr:\n            error_message = result.stderr.decode()\n            raise Exception(\"Failed to build custom theme\")\n    except Exception as e:\n        log.error(error_message)\n        raise e\n\ndef check_color_contrast(color1, color2):\n    try:\n        from coloraide import Color\n        contrast = Color(color1).contrast(color2, method='wcag21')\n        if contrast < 4.5:\n            log.warning(\"Color \" + color1 + \" does not have enough contrast with expected background color \" + color2 + \". Contrast ratio is \" + str(contrast) + \" but should be at least 4.5. Adjust your publisher file html/css/variables to ensure sufficient contrast.\")\n    except ImportError:\n        log.warning(\"The coloraide module is not available and is necessary for checking color contrast. Install it with 'pip install coloraide' or by using the requirements.txt file.\")\n\ndef build_or_copy_theme(xml, pub_var_dict, tmp_dir):\n    theme_name = get_publisher_variable(pub_var_dict, 'html-theme-name')\n    theme_opts_json = get_publisher_variable(pub_var_dict, 'html-theme-options')\n    import json\n    theme_opts = json.loads(theme_opts_json)\n\n    # attempt basic sanity check of colors\n    for var, check_color in theme_opts['contrast-checks'].items():\n        if var in theme_opts['options']:\n            check_color_contrast(theme_opts['options'][var], check_color)\n\n    # use prerolled theme if legacy or default-modern and no node available\n    use_prerolled = False\n    if \"-legacy\" in theme_name:\n        use_prerolled = True\n    elif theme_name == \"default-modern\":\n        try:\n            get_executable_cmd(\"node\")\n            if not os.path.exists(os.path.join(get_ptx_path(), \"script\", \"cssbuilder\", \"node_modules\")):\n                log.info(\"CSSBuilder packages not installed. Relying on prebuilt default-modern. To fix this, run 'npm install' in the pretext/script/cssbuilder directory. https://pretextbook.org/doc/guide/html/node-and-npm.html\")\n                use_prerolled = True\n        except Exception as e:\n            log.info(\"Node.js not available. Relying on prebuilt default-modern.\")\n            use_prerolled = True\n\n    if use_prerolled:\n        _move_prebuilt_theme(theme_name, theme_opts, tmp_dir)\n    else:\n        _build_custom_theme(xml, theme_name, theme_opts, tmp_dir)\n\n# entry point for pretext script to only build the theme\ndef update_theme(xml_source, publication_file, stringparams, dest_dir):\n    tmp_dir = get_temporary_directory()\n    pub_vars = get_publisher_variable_report(xml_source, publication_file, stringparams)\n    build_or_copy_theme(xml_source, pub_vars, tmp_dir)\n    copy_build_directory(tmp_dir, dest_dir)\n\n# todo - rewrite other code that does similar things to use this function?\ndef get_web_asset(url):\n    \"\"\"Get the contents of an http request\"\"\"\n    try:\n        import requests\n    except ImportError:\n        msg = 'The \"requests\" module is not available and is necessary for downloading files.'\n        log.debug(msg)\n        raise Exception(msg)\n\n    # Set a user-agent to mimic a browser. This is what chrome on windows sends as of 2025-11-19.\n    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36'}\n\n    try:\n        services_response = requests.get(url, timeout=(1,10), headers=headers)\n    except requests.exceptions.RequestException as e:\n        msg = '\\n'.join(['There was a network problem while trying to download \"{}\"',\n                            'and the reported problem is:',\n                            '{}'\n                            ])\n        log.debug(msg.format(url, e))\n        raise Exception(msg.format(url, e))\n\n    # Check that an online request was \"OK\", HTTP response code 200\n    response_status_code = services_response.status_code\n    if response_status_code != 200:\n        msg = '\\n'.join([\"The file {} was not found\",\n                            \"the server returned response code {}\"\n                            ])\n        log.debug(msg.format(url, response_status_code))\n        raise Exception(msg.format(url, response_status_code))\n\n    return services_response.content\n\ndef download_file(url, dest_filename):\n    \"\"\"Write a web asset to a local file\"\"\"\n    contents = get_web_asset(url)\n    try:\n        dest_dir = os.path.dirname(dest_filename)\n        os.makedirs(dest_dir, exist_ok=True)\n\n        with open(dest_filename, 'wb') as f:\n            f.write(contents)\n    except Exception as e:\n        raise Exception(\"Failed to save download\", dest_filename)\n\ndef html(xml, pub_file, stringparams, xmlid_root, file_format, extra_xsl, out_file, dest_dir, ext_rs_methods):\n    \"\"\"Convert XML source to HTML files, in destination directory or as zip file\"\"\"\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    log_time_info = stringparams.get(\"debug.profile\", False) == \"yes\"\n    time_logger = Stopwatch(\"html()\", log_time_info)\n\n    # Consult publisher file for locations of images\n    generated_abs, external_abs = get_managed_directories(xml, pub_file)\n    # Consult source for additional files\n    data_dir = get_source_directories(xml)\n\n    # names for scratch directories\n    tmp_dir = get_temporary_directory()\n\n    pub_vars = get_publisher_variable_report(xml, pub_file, stringparams)\n    include_static_files = get_publisher_variable(pub_vars, 'portable-html') != \"yes\"\n    time_logger.log(\"pubvars loaded\")\n\n    if include_static_files:\n        # interrogate Runestone server (or debugging switches) and populate\n        # NB: stringparams is augmented with Runestone Services information\n        _place_runestone_services(tmp_dir, stringparams, ext_rs_methods)\n    else:\n        # even if we don't need static files, we need to set stringparams for\n        # Runestone Services information.\n        _cdn_runestone_services(stringparams, ext_rs_methods)\n    time_logger.log(\"runestone placed\")\n\n    # support publisher file, and subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Build SCORM manifest if requested\n    if file_format == \"scorm\":\n        stringparams[\"html.scorm\"] = \"yes\"\n    # Optional extra XSL could be None, or sanitized full filename\n    if extra_xsl:\n        extraction_xslt = extra_xsl\n    else:\n        extraction_xslt = os.path.join(get_ptx_xsl_path(), \"pretext-html.xsl\")\n\n    # place managed directories - some of these (Asymptote HTML) are\n    # consulted during the XSL run and so need to be placed beforehand\n    copy_managed_directories(tmp_dir, external_abs=external_abs, generated_abs=generated_abs, data_abs=data_dir)\n    time_logger.log(\"managed directories copied\")\n\n    if include_static_files:\n        # Copy js and css, but only if not building portable html\n        # place JS in scratch directory\n        copy_html_js(tmp_dir)\n        build_or_copy_theme(xml, pub_vars, tmp_dir)\n        time_logger.log(\"css/js copied\")\n\n    # Write output into temporary directory\n    log.info(\"converting {} to HTML in {}\".format(xml, tmp_dir))\n    xsltproc(extraction_xslt, xml, None, tmp_dir, stringparams)\n    time_logger.log(\"xsltproc complete\")\n\n    if not(include_static_files):\n        # remove latex-image generated directories for portable builds\n        shutil.rmtree(os.path.join(tmp_dir, \"generated\", \"latex-image\"), ignore_errors=True)\n\n    if file_format  == \"html\":\n        # with multiple files, we need to copy a tree\n        # see comments at  copy_build_directory()\n        # before replacing with  shutil.copytree()\n        copy_build_directory(tmp_dir, dest_dir)\n    elif file_format == \"zip\" or file_format == \"scorm\":\n        # working in temporary directory gets simple paths in zip file\n        with working_directory(tmp_dir):\n            zip_file = \"html-output.zip\"\n            log.info(\n                \"packaging a zip file temporarily as {}\".format(\n                    os.path.join(tmp_dir, zip_file)\n                )\n            )\n            with zipfile.ZipFile(zip_file, mode=\"w\", compression=zipfile.ZIP_DEFLATED) as epub:\n                for root, dirs, files in os.walk(\".\"):\n                    for name in files:\n                        # Avoid recursively zipping the zip file\n                        # Small chance we might be clobbering an existing\n                        # \"html-output.zip\" that could be part of a project.\n                        # TODO: zip directly into the derivedname below?\n                        #       Or, zip into some new temporary directory?\n                        if name != zip_file:\n                            epub.write(os.path.join(root, name))\n            derivedname = get_output_filename(xml, out_file, dest_dir, \".zip\")\n            shutil.copy2(zip_file, derivedname)\n            log.info(\"zip file of HTML output deposited as {}\".format(derivedname))\n    else:\n        raise ValueError(\"PTX:BUG: HTML file format not recognized\")\n\n    time_logger.log(\"build completed\")\n\n\ndef revealjs(\n    xml, pub_file, stringparams, xmlid_root, file_format, extra_xsl, out_file, dest_dir\n):\n    \"\"\"Convert XML source \"slideshow\" to reveal.js HTML file\"\"\"\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    # Consult publisher file for locations of images\n    generated_abs, external_abs = get_managed_directories(xml, pub_file)\n\n    # names for scratch directories\n    tmp_dir = get_temporary_directory()\n\n    # support publisher file, and subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    if xmlid_root:\n        stringparams[\"subtree\"] = xmlid_root\n    # Optional extra XSL could be None, or sanitized full filename\n    if extra_xsl:\n        extraction_xslt = extra_xsl\n    else:\n        extraction_xslt = os.path.join(get_ptx_xsl_path(), \"pretext-revealjs.xsl\")\n\n    # place managed directories - some of these (Asymptote HTML) are\n    # consulted during the XSL run and so need to be placed beforehand\n    copy_managed_directories(tmp_dir, external_abs=external_abs, generated_abs=generated_abs)\n\n    # place JS in scratch directory\n    # TODO: audit what JS is really needed/used\n    copy_html_js(tmp_dir)\n\n    # copy CSS\n    css_src = os.path.join(get_ptx_path(), \"css\", \"dist\", \"pretext-reveal.css\")\n    css_dest = os.path.join(tmp_dir, \"_static\", \"pretext\", \"css\", \"pretext-reveal.css\")\n    with open(css_src, 'r') as theme_file:\n        filedata = theme_file.read()\n        os.makedirs(os.path.dirname(css_dest), exist_ok=True)\n        with open(css_dest, 'w+') as file:\n            file.write(filedata)\n\n    # Write output into temporary directory\n    log.info(\"converting {} to HTML in {}\".format(xml, tmp_dir))\n    derivedname = get_output_filename(xml, out_file, dest_dir, \".html\")\n    xsltproc(extraction_xslt, xml, derivedname, tmp_dir, stringparams)\n    # with multiple files, we need to copy a tree\n    # see comments at  copy_build_directory()\n    # before replacing with  shutil.copytree()\n    copy_build_directory(tmp_dir, dest_dir)\n\n\n##################\n# Assembled Source\n##################\n\n# AKA the aftermath of the pre-processor\n# Parameterized by static v. dynamic exercises\n\n# N.B. Keep this in-sync with the `assembly_internal` method\n\ndef assembly(xml, pub_file, stringparams, out_file, dest_dir, method):\n    \"\"\"Convert XML source to pre-processed PreTeXt in destination directory\"\"\"\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    # support publisher file, not subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    # method dictates which type of exercises are produced\n    # parameter is exclusive to utility styleheet below\n    if method in [\"static\", \"dynamic\", \"pg-problems\"]:\n        stringparams[\"debug.assembly.exercise\"] = method\n    elif method == \"version\":\n        stringparams[\"assembly.version-only\"] = \"yes\"\n    else:\n        log.error(\"assembly method {} not recognized\".format(method))\n    # \"extra_xsl\" would be silly in this context (?)\n    extraction_xslt = os.path.join(\n        get_ptx_xsl_path(), \"utilities\", \"pretext-enhanced-source.xsl\"\n    )\n    # form output filename based on source filename,\n    # unless an  out_file  has been specified\n    derivedname = get_output_filename(xml, out_file, dest_dir, \".xml\")\n    # Write output into working directory, no scratch space needed\n    log.info(\n        \"converting {} to enhanced (pre-processed) PreTeXt source as {}\".format(\n            xml, derivedname\n        )\n    )\n    xsltproc(extraction_xslt, xml, derivedname, None, stringparams)\n\n# lxml element tree as return value. for use internally\n\n# N.B. Keep this in-sync with the `assembly` method\n\ndef assembly_internal(xml, pub_file, stringparams, method):\n    \"\"\"Assembled source as an lxml element tree, provided as a return value\"\"\"\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n    # support publisher file\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    # method dictates which type of exercises are produced\n    if method in [\"static\", \"dynamic\", \"pg-problems\"]:\n        stringparams[\"debug.assembly.exercise\"] = method\n    elif method == \"version\":\n        stringparams[\"assembly.version-only\"] = \"yes\"\n    else:\n        log.error(\"assembly method {} not recognized\".format(method))\n    # use the right xsl template\n    extraction_xslt = os.path.join(\n        get_ptx_xsl_path(), \"utilities\", \"pretext-enhanced-source.xsl\"\n    )\n    log.debug(\"converting {} to enhanced (pre-processed) PreTeXt source for internal use\".format(xml))\n    return xsltproc(extraction_xslt, xml, None, None, stringparams)\n\n#####################\n# Conversion to LaTeX\n#####################\n\ndef get_latex_style(xml, pub_file, stringparams):\n    \"\"\"\n    Returns the name of a latex_style to be used for processing to latex.\n      - Checks the value of the publisher variable 'journal-name'.\n      - If it finds a journal name, tries to resolve that using the list of\n        journals, returning the corresponding latex-style entry for that journal.\n        Also adds the texstyle file name to the string params\n      - If there is no journal-name publisher variable, or the variable is not in the\n        list of journals, checks for the publisher variable 'latex-style' and returns this.\n    \"\"\"\n    pub_vars = get_publisher_variable_report(xml, pub_file, stringparams)\n    journal_name = get_publisher_variable(pub_vars, \"journal-name\")\n    pub_latex_style = get_publisher_variable(pub_vars, \"latex-style\")\n    if len(journal_name) > 0:\n        journal_info = get_journal_info(journal_name)\n        log.debug(f\"Journal Info: {journal_info}\")\n        stringparams[\"journal.texstyle.file\"] = journal_info.get(\"texstyle-file\", \"\")\n        latex_style = journal_info.get(\"latex-style\", \"\")\n        if len(latex_style) == 0:\n            msg = \"The journal name {} in your publication file is invalid or does not correspond to a valid latex-style.  Using the default LaTeX style instead.\"\n            log.warning(msg.format(journal_name))\n            latex_style = pub_latex_style\n        if len(pub_latex_style) > 0 and pub_latex_style != latex_style:\n            msg = \"Your publication file specifies a latex-style of {}, but a journal name of {}.  Building with the latex style {} which matches that journal instead.\"\n            log.warning(msg.format(pub_latex_style, journal_name, latex_style))\n    else:\n        latex_style = pub_latex_style\n    return latex_style\n\ndef latex_package(xml, pub_file, stringparams, dest_dir):\n    \"\"\"\n    Fetch latex packages (.sty/.cls files) required for building a\n    latex document in a particular journal's style (as specified by\n    a texstyle file).  This always downloads a fresh version of the files.\n    \"\"\"\n    pub_vars = get_publisher_variable_report(xml, pub_file, stringparams)\n    journal_name = get_publisher_variable(pub_vars, \"journal-name\")\n    if journal_name:\n        tmp_dir = get_temporary_directory()\n        # place_latex_package_files checks if tmp_dir already has the files, which it won't, so new files will always be downloaded.\n        dest_dir = os.path.join(dest_dir, journal_name)\n        place_latex_package_files(dest_dir, journal_name, tmp_dir)\n        log.info(\"latex package files downloaded to \" + dest_dir)\n    else:\n        log.warning(\"No journal name found in publication file, so no latex package files downloaded.\")\n\n\n# This is not a build target, there is no such thing as a \"latex build.\"\n# Instead, this is a conveience for developers who want to compare\n# different versions of this file during development and testing.\ndef latex(xml, pub_file, stringparams, extra_xsl, out_file, dest_dir):\n    \"\"\"Convert XML source to LaTeX in destination directory\"\"\"\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    # support publisher file, not subtree argument\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n\n    # Get potential extra XSL for LaTeX style from publication file\n    latex_style = get_latex_style(xml, pub_file, stringparams)\n\n    # Optional extra XSL could be None, or sanitized full filename\n    if extra_xsl:\n        extraction_xslt = extra_xsl\n        if latex_style:\n            log.warning(\"Ignoring the publisher file's latex-style in favor of the extra XSL specified.\")\n    elif latex_style:\n        log.debug(\"Using LaTeX style: {}\".format(latex_style))\n        extraction_xslt = os.path.join(get_ptx_xsl_path(), \"latex\", f\"pretext-latex-{latex_style}.xsl\")\n    else:\n        extraction_xslt = os.path.join(get_ptx_xsl_path(), \"pretext-latex.xsl\")\n    # form output filename based on source filename,\n    # unless an  out_file  has been specified\n    derivedname = get_output_filename(xml, out_file, dest_dir, \".tex\")\n    # Write output into working directory, no scratch space needed\n    log.info(\"converting {} to LaTeX as {}\".format(xml, derivedname))\n    xsltproc(extraction_xslt, xml, derivedname, None, stringparams)\n\n\n###################\n# Conversion to PDF\n###################\n\n\ndef _latex_compile(latex_cmd, log_file, source_name, max_passes=10, capture_output=False):\n    \"\"\"Compile a LaTeX file, rerunning until cross-references settle.\n\n    Runs the initial pass, then reruns while the log file requests\n    \"Rerun to get\" and the pass limit has not been reached.\n\n    Returns the CompletedProcess from the final pass.  Sets returncode\n    to 1 if the pass limit is reached without convergence.\n    \"\"\"\n    run_kwargs = {\"stdout\": subprocess.PIPE, \"encoding\": \"utf-8\"} if capture_output else {}\n    result = subprocess.run(latex_cmd, **run_kwargs)\n    pass_count = 1\n    while (result.returncode == 0\n           and os.path.isfile(log_file)\n           and \"Rerun to get\" in open(log_file).read()\n           and pass_count < max_passes):\n        log.info(\"Rerunning LaTeX for {} (pass {})\".format(source_name, pass_count + 1))\n        result = subprocess.run(latex_cmd, **run_kwargs)\n        pass_count += 1\n    if pass_count == max_passes and result.returncode == 0:\n        log.warning(\"LaTeX compilation of {} required {} passes and may not have converged.\".format(source_name, max_passes))\n        result.returncode = 1\n    return result\n\n\ndef pdf(xml, pub_file, stringparams, extra_xsl, out_file, dest_dir, method, outputs):\n    \"\"\"\n    Generate a PDF from an XML source using LaTeX as an intermediate format.\n\n    Args:\n        xml (str): Path to the XML source file.\n        pub_file (str or None): Path to the publisher configuration file, or None if not used.\n        stringparams (dict): Dictionary of string parameters to control the transformation.\n        extra_xsl (str or None): Path to an additional XSL stylesheet, or None if not used.\n        out_file (str or None): Path to the output PDF file. If None, the PDF is copied to      dest_dir.\n        dest_dir (str): Directory where the output PDF should be placed if out_file is not specified.\n        method (str): The LaTeX engine or processing method to use (e.g., 'pdflatex', 'xelatex').\n        outputs (str or None): Specify which files should be copied to dest_dir.  Possible values are pdf-only (default), all (.tex, assets, pdf, and *.log, *.aux, etc), all-clean (same as all but no *.log, *.aux, etc), or prebuild (same as all-clean but no pdf).\n\n    Returns:\n        None\n\n    Side Effects:\n        - Copies the generated PDF to the specified output location.\n    \"\"\"\n    # Warn if outputs variable is something other than expected options\n    outputs_options = [\"pdf-only\", \"prebuild\", \"all\", \"all-clean\"]\n    if (outputs not in outputs_options):\n        log.warning(\"You requested outputs of {}, but this is not a recognized option.  Defaulting to 'pdf-only'.\".format(outputs))\n    # to ensure provided stringparams aren't mutated unintentionally\n    stringparams = stringparams.copy()\n\n    generated_abs, external_abs = get_managed_directories(xml, pub_file)\n    # Consult source for additional files\n    data_dir = get_source_directories(xml)\n\n    # perhaps necessary (so drop \"if\"), but maybe not; needs to be supported\n    if pub_file:\n        stringparams[\"publisher\"] = pub_file\n    # names for scratch directories\n    tmp_dir = get_temporary_directory()\n\n    # make the LaTeX source file in scratch directory\n    # (1) pass None as out_file to derive from XML source filename\n    # (2) pass tmp_dir (scratch) as destination directory\n    latex(xml, pub_file, stringparams, extra_xsl, None, tmp_dir)\n\n    # Create localized filenames for pdflatex conversion step\n    # sourcename  needs to match behavior of latex() with above arguments\n    basename = os.path.splitext(os.path.split(xml)[1])[0]\n    sourcename = basename + \".tex\"\n    pdfname = basename + \".pdf\"\n\n    # Copy directories as indicated in publisher file\n    # A \"None\" value will indicate there was no information\n    # (an empty string is impossible due to a slash always being present?)\n\n    # Make data files available, such as for TikZ images\n    copy_managed_directories(tmp_dir, external_abs=external_abs, generated_abs=generated_abs, data_abs=data_dir)\n\n    # If we are building for a journal, we might need extra files\n    pub_vars = get_publisher_variable_report(xml, pub_file, stringparams)\n    journal_name = get_publisher_variable(pub_vars, \"journal-name\")\n    if journal_name:\n        place_latex_package_files(tmp_dir, journal_name, os.path.join(generated_abs, \"latex-packages\"))\n\n    # If requested, copy the LaTeX source and asset folders to dest_dir.\n    # Note that outputs == \"all\" needs to wait until after the build to copy build_dir.\n    if outputs == \"all-clean\" or outputs == \"prebuild\":\n        copy_build_directory(tmp_dir, dest_dir)\n        # prebuild means no pdf, so stop here.\n        if outputs == \"prebuild\":\n            return\n\n    # now work in temporary directory since LaTeX is a bit incapable\n    # of working outside of the current working directory\n    with working_directory(tmp_dir):\n        # process with a  latex  engine\n        latex_key = get_deprecated_tex_fallback(method)\n        latex_exec_cmd = get_executable_cmd(latex_key)\n        # -halt-on-error will give an exit code to examine\n        # First pass always needed, second resolves cross-references.\n        # Additional passes may be required by packages like nicematrix\n        # (which uses TikZ \"remember picture\" for cell coloring) or\n        # tcolorbox.  We check the .log for \"Rerun to get\" requests,\n        # matching the strategy used for standalone latex-image compilation.\n        latex_cmd = latex_exec_cmd + [\"-halt-on-error\", sourcename]\n        logname = basename + \".log\"\n        result = _latex_compile(latex_cmd, logname, sourcename)\n\n        # If we want all outputs, we copy the entire build directory now that the PDF is built\n        # so we can get the *.log, *.aux, etc build files.\n        if outputs == \"all\":\n            copy_build_directory(tmp_dir, dest_dir)\n        else:\n            # Copy just the PDF output\n            # out_file: not(None) only if provided in CLI\n            # dest_dir: always defined, if only current directory of CLI invocation\n            if out_file:\n                shutil.copy2(pdfname, out_file)\n            else:\n                shutil.copy2(pdfname, dest_dir)\n\n\n\n#################\n# XSLT Processing\n#################\n\n# Pythonic replacement for xsltproc executable\ndef xsltproc(xsl, xml, result, output_dir=None, stringparams={}):\n    \"\"\"\n    Apply an XSL stylesheet to an XML source, with control over location of results.\n\n    xsl          - filename (string) for XSL stylesheet\n    xml          - filename (string) for XML source\n    result       - filename (string) for result tree of the stylesheet\n                   None if stylesheet 100% writes its own files,\n                   i.e. expecting an empty result tree\n    output_dir   - a directory for exsl:document() templates to write to\n    stringparams - a dictionary of option/value string:string pairs to\n                   pass to  xsl:param  elements of the stylesheet\n\n    N.B. The value of a \"publisher\" string parameter passed in the\n    \"stringparams\" argument must be a complete path, since a relative\n    path can be rendered incorrect by the change to an \"output_dir\"\n    different than that at the time of the command-line invocation.\n\n    N.B. A stylesheet may output text to be captured in the \"result\"\n    file, and it may *also simultaneously* produce many files to be\n    collected in the \"output_dir\" directory.  An example is in the\n    formation of preview images for interactives.\n\n    Return: an lxml element tree data structure of the result.\n    This is whatever the stylesheet creates in the file whose name\n    is given by the `result` argument.  It could be empty, or it might\n    be only a partial result of the stylesheet, since the stylesheet\n    could independently produce multiple files with fixed names.  This\n    return value may be useful to consumers of this module (and that\n    is the intent).  Normally the return value is ignored.\n    \"\"\"\n    import threading  # Thread()\n\n    log.info(\"XSL conversion of {} by {}\".format(xml, xsl))\n    debug_string = (\n        \"XSL conversion via {} of {} to {} and/or into directory {} with parameters {}\"\n    )\n    log.debug(debug_string.format(xsl, xml, result, output_dir, stringparams))\n\n    # string parameters arrive in a \"plain\" string:string dictionary\n    # but the values need to be prepped for lxml use, always\n    stringparams = {\n        key: ET.XSLT.strparam(value) for (key, value) in stringparams.items()\n    }\n\n    # Parse source, no harm to assume\n    # xinclude modularization is necessary.\n    src_tree = guarded_xml_include_parser(xml)\n\n    # parse xsl, and build a transformation object\n    # allow writing if an output directory is given\n    # this is the default, but we are explicit here\n    control = None\n    if output_dir:\n        control = ET.XSLTAccessControl(write_file=True)\n    xsl_tree = ET.parse(xsl)\n    xslt = ET.XSLT(xsl_tree, access_control=control)\n\n    # do the transformation, with parameterization\n    # possibly change/restore directories to capture\n    # (multi-)file output from  exsl:document() calls\n    owd = os.getcwd()\n    if output_dir:\n        os.chdir(output_dir)\n    # clear global errors, apply the xsl transform\n    ET.clear_error_log()\n    result_tree = []\n    texc = None\n\n    def transform():\n        nonlocal result_tree, texc\n        try:\n            result_tree = xslt(src_tree, **stringparams)\n        except Exception as e:\n            texc = e\n\n    try:\n        parse_t = threading.Thread(target=transform)\n        parse_t.start()\n        still_alive = True\n        start = 0\n        while still_alive:\n            parse_t.join(0.5)  # Wait 0.5 seconds for thread to complete\n            still_alive = parse_t.is_alive()\n\n            end = len(xslt.error_log)\n\n            # if there are any messages and we are just\n            # starting out, produce an explanatory line\n            # start will be reset to non-zero, so this is\n            # one-time only, and never if there are no messages\n            if (start == 0) and (end > 0):\n                log.info(\"messages from the log for XSL processing:\")\n            # print out any unprinted messages from error_log\n            for line in xslt.error_log[start:end]:\n                if \"PTX:FATAL\" in line.message:\n                    log.critical(f\"* {line.message}\")\n                elif \"PTX:ERROR\" in line.message or \"PTX:BUG\" in line.message:\n                    log.error(f\"* {line.message}\")\n                elif \"PTX:WARNING\" in line.message or \"PTX:DEPRECATE\" in line.message:\n                    log.warning(f\"* {line.message}\")\n                elif \"PTX:DEBUG\" in line.message:\n                    log.debug(f\"* {line.message}\")\n                else:\n                    log.info(f\"* {line.message}\")\n            start = end\n        if texc is None:\n            log.info(\"successful application of {}\".format(xsl))\n        else:\n            raise (texc)\n    except Exception as e:\n        log.error(\"processing with {} has failed\\n\".format(xsl))\n        # report any errors on failure (indented)\n        raise (e)\n    finally:\n        # wait until thread is done\n        if parse_t.is_alive():\n            parse_t.join()\n        # restore directory in success or failure\n        os.chdir(owd)\n\n    # write a serialized version of `result_tree` to a file\n    # write_output() is an lxml method which respects/interprets\n    # the stylesheet's xsl:output/@encoding attribute value\n    # An error traced back here could be a stylesheet with no explicit\n    # encoding given, so determine which `xsl` is in use and check\n    try:\n        if result:\n            result_tree.write_output(result)\n        # Regardless, return the result_tree, which might be useful for the calling function\n        return result_tree\n    except LookupError as e:\n        root_cause = str(e)\n        msg = \"\".join(\n            [\n                \"PTX:ERROR: the stylesheet: {}\\n\",\n                \"has a problem with xsl:output/@encoding.\\n\",\n                \"The lxml error message is:\\n\",\n                '\"{}\"',\n            ]\n        ).format(xsl, root_cause)\n        raise ValueError(msg)\n\n\n########################\n#\n# JaaS\n# Jing as a Service\n# (Validation with Jing)\n#\n########################\n\ndef validate(xml_source, out_file, dest_dir):\n\n    try:\n        import requests  # post()\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n\n    # JaaS server location\n    server_url = 'https://mathgenealogy.org:9000/validate'\n    # Alias for XInclude namespace\n    NSMAP = {\"xi\": \"http://www.w3.org/2001/XInclude\"}\n    # home for zip file construction\n    tmp_dir = get_temporary_directory()\n\n    # directory location of main source file, every filename collected\n    # below (in *_files lists) is relative to this directory\n    d = os.path.split(xml_source)[0]\n    base = os.path.split(xml_source)[1]\n\n    # Initialize with overall source file's\n    # name (base), relative to its location (d)\n    # all_files will be the eventual result\n    all_files = [base]\n    # new_files is refreshed for each pass of the while loop,\n    # non-empty ensures the while loop happens at least once\n    new_files = [base]\n    while new_files:\n        # accumulator to become the subsequent new_files\n        next_files = []\n        for f in new_files:\n            # construct full filename for parse operation\n            # do not xinclude, that would defeat the purpose\n            file_tree = ET.parse(os.path.join(d, f))\n            includes = file_tree.xpath(\"//xi:include\", namespaces=NSMAP)\n            # @href attributes are relative to the location\n            #  of f, which we compute as f_dir\n            f_dir = os.path.split(f)[0]\n            for elt in includes:\n                # the href, required/expected/necessary\n                if \"href\" in elt.attrib:\n                    href = elt.attrib[\"href\"]\n                else:\n                    raise ValueError(\"an xi:include element lacks the expected @href attribute\")\n                # the normaized filename, relative to the main file location (d)\n                # this is where the eventual results are first created\n                rel_path = os.path.normpath(os.path.join(f_dir, href))\n                # always of interest, always add to result, even\n                # a text file might be needed to feed the schema\n                all_files.append(rel_path)\n                # if including a text file, then lxml inspection\n                # will fail, AND we don't need to examine it further,\n                # as it is a dead-end in the tree (can't xi:include anyway)\n                parsing = None\n                if 'parse' in elt.attrib:\n                    parsing = elt.attrib['parse']\n                # Usually we want to inspect a file for more includes,\n                # so we add most to the list of files to examine next\n                if not(parsing == 'text'):\n                    next_files.append(rel_path)\n        # recycle next_files into new_files, and next_file\n        # will be re-initialized as while loop resumes\n        new_files = next_files\n\n    # Build a zip file of the source, files with relative paths\n    # zipfile.ZIP_DEFLATED is the \"usual  ZIP compression method\"\n    zip_filename = os.path.join(tmp_dir, \"test.zip\")\n    log.info(\"packaging source temporarily as {}\".format(zip_filename))\n    with working_directory(d):\n        with zipfile.ZipFile(zip_filename, mode=\"w\", compression=zipfile.ZIP_DEFLATED) as zip_file:\n            # set() will avoid duplicate files included twice (or more)\n            for f in set(all_files):\n                zip_file.write(f)\n\n\n    # fresh schema from the PreTeXt distribution\n    schema_filename = os.path.join(get_ptx_path(), \"schema\", \"pretext.rng\")\n    files = {'source': open(zip_filename,'rb'), 'rng': open(schema_filename,'rb')}\n    data = {'mainfile': base}\n    log.info(\"communicating with server at {}\".format(server_url))\n    r = requests.post(server_url, data=data, files=files)\n\n    derivedname = get_output_filename(xml_source, out_file, dest_dir, \".jing\")\n    with open(derivedname, \"w\") as f:\n        f.writelines(r.text)\n    log.info(\"messages from validation in {}\".format(derivedname))\n\n\n###################\n#\n# Utility Functions\n#\n###################\n\n\ndef guarded_xml_include_parser(xml):\n    \"\"\"\n    Attempt parsing of XML including xi:includes processing.\n    Returns an lxml element tree.\n    On error, generate readable exception trace.\n    \"\"\"\n\n    # Seems a depth of 256 was exceeded for an SVG image:\n    # lxml.etree.XMLSyntaxError: Excessive depth in document: 256 use XML_PARSE_HUGE option\n    huge_parser = ET.XMLParser(huge_tree=True)\n    src_tree = ET.parse(xml, parser=huge_parser)\n    try:\n        # Try using default xinclude() first. But it does not generate good error messages.\n        # So on exception, we redo with a custom loader that will give better error messages.\n        # Undefined namespace prefixes (e.g. xi:) go in error log of XInclude object\n        # but do not cause it to fail/throw\n        includer = ET.XInclude()\n        includer(src_tree.getroot())\n        if includer.error_log:\n            namespace_xi_error = False\n            log.debug(\"XInclude error(s) found:\")\n            for line in includer.error_log:\n                log.debug(f\"* {line.message}\")\n                if \"Namespace prefix xi on include is not defined\" in line.message:\n                    log.error(\"You are trying to use 'xi:include' in a file that does not contain 'xmlns:xi=\\\"http://www.w3.org/2001/XInclude\\\"' in its root element.\")\n                    namespace_xi_error = True\n            # If the error was due to an undefined namespace prefix, raise an error\n            if namespace_xi_error:\n                raise ET.XIncludeError(\"Missing namespace declaration for 'xi'\")\n        return src_tree\n    except ET.XIncludeError as e:\n        # xinclude() does not show what file a parsing error occured in\n        # So if there was an error, build a custom loader and redo with ElementInclude\n        # which will include the file name in the stack dump.\n        # ElementInclude is a limited version of xinclude(), so can't rely\n        # on it for the real include process.\n\n        # Generate custom loader\n        from lxml import ElementInclude\n        def my_loader(href, parse, encoding=None, parser=None):\n            try:\n                ret = ElementInclude._lxml_default_loader(href, parse, encoding, parser)\n            except Exception as e:\n                log.error(f\"Error loading {href}: {e}\")\n                raise\n            return ret\n\n        # Reparse the tree (was modified in try clause) and run ElementInclude\n        # This should also fail, but will give a better error message\n        # NB this might report false positives (duplicate xml:id even if controlled by versions)\n        src_tree = ET.parse(xml, parser=huge_parser)\n        ElementInclude.include(src_tree, loader=my_loader, max_depth=100)\n        return src_tree # should never actually reach\n        \n\ndef python_version():\n    \"\"\"Return 'major.minor' version number as string/info\"\"\"\n\n    return \"{}.{}\".format(sys.version_info[0], sys.version_info[1])\n\n\ndef check_python_version():\n    \"\"\"Raise error with Python 2 (or less)\"\"\"\n\n    # This test could be more precise,\n    # but only handling 2to3 switch when introduced\n    msg = \"\".join(\n        [\n            \"PreTeXt script/module expects Python 3.8, not Python 2 or older\\n\",\n            \"You have Python {}\\n\",\n            \"** Try prefixing your command-line with 'python3 ' **\",\n        ]\n    )\n    if sys.version_info[0] <= 2:\n        raise (OSError(msg.format(python_version())))\n\n\ndef set_ptx_path(path=None):\n    \"\"\"Set (or discover) path to root of PreTeXt distribution\"\"\"\n    # necessary to locate configuration files, XSL stylesheets\n    # since authors can drop distribution *anywhere* in their system\n    # Default (path=None) will assume the location is relative to\n    # this module in the PreTeXt distribution.  Otherwise, a\n    # simple assignment is made\n\n    global __ptx_path\n\n    if path:\n        __ptx_path = path\n    else:\n        # full path to pretext.py module file itself\n        # <distribution-root>/pretext/lib/pretext.py\n        this_file_path = os.path.abspath(__file__)\n        # split off \"python.py\" off module's full path\n        lib_path, _ = os.path.split(this_file_path)\n        # now split off the \"lib\" directory\n        module_dir, _ = os.path.split(lib_path)\n        # now split off \"pretext\" directory\n        # to arrive at the root of the distribution\n        __ptx_path, _ = os.path.split(module_dir)\n    return None\n\n\ndef get_ptx_path():\n    \"\"\"Returns path to root of PreTeXt distribution\"\"\"\n    global __ptx_path\n\n    return __ptx_path\n\n\ndef get_ptx_xsl_path():\n    \"\"\"Returns path of PreTeXt XSL directory\"\"\"\n\n    return os.path.join(get_ptx_path(), \"xsl\")\n\n\ndef get_source_path(source_file):\n    \"\"\"Returns path of source XML file\"\"\"\n\n    # split path off filename\n    source_dir, _ = os.path.split(source_file)\n    log.info(\"discovering source file's directory name: {}\".format(source_dir))\n    return os.path.normpath(source_dir)\n\n\ndef _git_symbolic_to_hash(symbolic):\n    '''Convert a branch name to its commit hash at the tip'''\n\n    repo = get_ptx_path();\n    # e.g. .git/refs/heads/master\n    commit_filename = os.path.join(repo, '.git', 'refs', 'heads', symbolic)\n    try:\n        with open(commit_filename, 'r') as f:\n            # always a commit hash in hex\n            # strip a trailing newline (OK assumption?)\n            return f.readline()[:-1]\n    except Exception as e:\n        log.critical(traceback.format_exc())\n        log.critical(\"the full PreTeXt repository may not be available, so determination of commits is not possible\")\n        return None\n\n\n# presumes PreTeXt repo publishes \"master\" as mainline branchh\ndef get_git_master_commit():\n    \"\"\"Return the full commit hash of master branch\"\"\"\n    # Note: no guarantee this is the branch in use\n    return _git_symbolic_to_hash('master')\n\n\ndef get_git_head():\n    '''Returns a pair for active branch: (symbolic name, hash)'''\n    # Note: in \"detached state\" the symbolic name is None\n\n    import string\n\n    repo = get_ptx_path();\n    # .git/refs/heads/master\n    branch_filename = os.path.join(repo, '.git', 'HEAD')\n    try:\n        with open(branch_filename, 'r') as f:\n            # strip a trailing newline (OK assumption?)\n            head = f.readline()[:-1]\n    except Exception as e:\n        log.critical(traceback.format_exc())\n        log.critical(\"the full PreTeXt repository may not be available, so determination of commits is not possible\")\n        return (None, None)\n\n    # head is normally a full symbolic reference\n    # but on a \"checkout\" is \"detached\" and is a hash\n    # https://stackoverflow.com/questions/11592261/check-if-a-string-is-hexadecimal\n    # https://stackoverflow.com/a/11592279\n    if all(c in string.hexdigits for c in head):\n        return (None, head)\n    else:\n        # strip leading 16 characters: \"ref: refs/heads/\"\n        branch = head[16:]\n        commit = _git_symbolic_to_hash(branch)\n        return (branch, commit)\n\n\ndef build_info_message():\n    '''Return a string with useful information about build environment'''\n    # Presumes the git repository is present, may need an override\n    branch, commit = get_git_head()\n    master = get_git_master_commit()\n    msg = 'built with {} using commit {} at tip of branch \"{}\" (\"master\": {})'\n    return msg.format(\"pretext/pretext script\", commit, branch, master)\n\n\ndef set_executables(adict):\n    global __executables\n\n    __executables = adict\n\n\ndef get_executable_cmd(exec_name):\n    \"\"\"Queries configuration file for executable name, verifies existence in Unix\"\"\"\n\n    global __executables\n\n    # get the name, but then see if it really, really works\n    log.debug(\n        'locating \"{}\" in [executables] section of configuration file'.format(exec_name)\n    )\n    # 'tex' deprecated, and replaced by 'latex', 'pdflatex', and 'xelatex'\n    if exec_name == \"tex\":\n        msg = \"\\n\".join(\n            [\n                \"'tex'  is deprecated as a key for a LaTeX executable (2022-01-31)'\",\n                \"             and has been replaced by 'latex', 'pdflatex', or 'xelatex'.\",\n                \"***  We will attempt to honor your existing LaTeX engine choice.                ***\",\n                '***  Edit the configuration file  (\"pretext.cfg\" or \"project.ptx\") accordingly  ***',\n            ]\n        )\n        # upgrade to an ERROR/exception after some interval\n        log.warning(msg)\n    config_cmd_line = __executables[exec_name].split()\n\n    # Returns the full-path version of the command, as if the PATH was employed\n    # \"None\" indicates the executable does not exist on the system\n    # https://stackoverflow.com/questions/377017/test-if-executable-exists-in-python\n    normalized_exec = shutil.which(config_cmd_line[0])\n\n    error_messages = []\n    if normalized_exec == None:\n        error_messages += [\n            \"PTX:ERROR: cannot locate executable with configuration name `{}` as command `{}`\".format(\n                exec_name, config_cmd_line[0]\n            ),\n            '***  Edit the configuration file  (\"pretext.cfg\" or \"project.ptx\") and/or install  ***',\n            \"***  the necessary program and/or make sure the executable is on your PATH         ***\",\n        ]\n    if error_messages:\n        raise OSError(\"\\n\".join(error_messages))\n    log.debug(\n        \"{} executable: {}, options: {}\".format(\n            exec_name, config_cmd_line[0], \" \".join(config_cmd_line[1:])\n        )\n    )\n    return config_cmd_line\n\n\ndef get_deprecated_tex_fallback(key):\n    \"\"\"Return the best executable key in light of deprecation\"\"\"\n    global __executables\n\n    # Input: 'latex', 'pdflatex', or 'xelatex', as\n    #         enforced in the user interface\n    #\n    # Output: simply echo input, unless such an executable key\n    # does not exist AND there is a stale (deprecated) 'tex' key.\n    # In this case, generate the 'tex' key.  Warning will come\n    # from the  get_executable_cmd()  function.\n    if not (key in __executables) and (\"tex\" in __executables):\n        return \"tex\"\n    else:\n        return key\n\n\ndef sanitize_url(url):\n    \"\"\"Verify a server address\"\"\"\n    log.info(\"validating, cleaning server URL: {}\".format(url))\n    try:\n        import requests  # test a URL\n    except ImportError:\n        global __module_warning\n        raise ImportError(__module_warning.format(\"requests\"))\n    try:\n        requests.get(url, timeout=10)\n    except requests.exceptions.RequestException as e:\n        root_cause = str(e)\n        msg = \"PTX:ERROR: there was a problem with the server URL, {}\\n\".format(url)\n        raise ValueError(msg + root_cause)\n    return url\n\n\ndef sanitize_alpha_num_underscore(param):\n    \"\"\"Verify parameter is a string containing only alphanumeric and undescores\"\"\"\n    import string\n\n    allowed = set(string.ascii_letters + string.digits + \"_\")\n    log.info(\"verifying parameter: {}\".format(param))\n    if not (set(param) <= allowed):\n        raise ValueError(\n            \"PTX:ERROR: param {} contains characters other than a-zA-Z0-9_ \".format(\n                param\n            )\n        )\n    return param\n\n\ndef get_temporary_directory():\n    \"\"\"Create, record, and return a scratch directory\"\"\"\n    import tempfile  #  mkdtemp()\n\n    global __temps  #  cache of temporary directories\n\n    temp_dir = tempfile.mkdtemp(prefix=\"ptx-\")\n    # Register the directory for cleanup at the end of successful\n    # execution iff the verbosity is set to level 2 (\"debug\")\n    # So errors, or requesting gross debugging info, will leave the\n    # directories behind for inspection, otherwise they get removed\n    __temps.append(temp_dir)\n    return temp_dir\n\n\ndef get_output_filename(xml, out_file, dest_dir, suffix):\n    \"\"\"Formulate a filename for single-file output\"\"\"\n    #  out_file  is None, or full path\n    #  dest_dir is at least current working directory\n\n    if out_file:\n        return out_file\n    # split off source filename, replace suffix\n    derivedname = os.path.splitext(os.path.split(xml)[1])[0] + suffix\n    return os.path.join(dest_dir, derivedname)\n\n\ndef release_temporary_directories():\n    \"\"\"Release scratch directories unless requesting debugging info\"\"\"\n\n    global __temps\n\n    # log.level is 10 for debug, greater for all other levels.\n    if log.level > 10:\n        for td in __temps:\n            log.info(\"Removing temporary directory {}\".format(td))\n            # conservatively, raise exception on errors\n            shutil.rmtree(td, ignore_errors=False)\n            # reset list of temp direcotries to empty, to avoid duplicate requests\n            __temps = []\n    else:\n        log.debug(\"Temporary directories left behind for inspection: {}\".format(__temps))\n\n\ndef verify_input_directory(inputdir):\n    \"\"\"Verify directory exists, or raise error.  Return absolute path\"\"\"\n\n    log.info(\"verifying and expanding input directory: {}\".format(inputdir))\n    if not (os.path.isdir(inputdir)):\n        raise ValueError(\"directory {} does not exist\".format(inputdir))\n    absdir = os.path.abspath(inputdir)\n    log.info(\"input directory expanded to absolute path: {}\".format(absdir))\n    return absdir\n\n\ndef get_managed_directories(xml_source, pub_file):\n    \"\"\"Returns pair: (generated, external) absolute paths, derived from publisher file\"\"\"\n\n    # N.B. manage attributes carefully to distinguish\n    # absent (None) versus empty string value ('')\n\n    # Examine /publication/source/directories element carefully\n    # for attributes which we code here for convenience\n    gen_attr = \"generated\"\n    ext_attr = \"external\"\n\n    # prepare for relative paths later\n    source_dir = get_source_path(xml_source)\n    # some parameterized error messages used later\n    pub_abs_path_error = \" \".join(\n        [\n            \"the directory path for a managed directory, given in the\",\n            'publisher file as \"source/directories/@{}\" must be relative to',\n            'the PreTeXt source file location, and not the absolute path \"{}\"',\n        ]\n    )\n    pub_missing_dir_error = \" \".join(\n        [\n            'the directory \"{}\" implied by the value \"{}\" in the',\n            '\"source/directories/@{}\" entry of the publisher file does not',\n            \"exist. Check the spelling, create the necessary directory, or entirely\",\n            'remove the whole \"source/directories\" element of the publisher file.'\n        ]\n    )\n\n    # Unknown until running the gauntlet\n    generated = None\n    external = None\n    if pub_file:\n        # parse publisher file, xinclude is conceivable\n        # for multiple similar publisher files with common parts\n        pub_tree = ET.parse(pub_file)\n        pub_tree.xinclude()\n        # \"source\" element => single-item list\n        # no \"source\" element => empty list => triple of None returned\n        element_list = pub_tree.xpath(\"/publication/source/directories\")\n        if element_list:\n            attributes_dict = element_list[0].attrib\n            # common error messages\n            # attribute absent => None\n            if gen_attr in attributes_dict.keys():\n                raw_path = attributes_dict[gen_attr]\n                if os.path.isabs(raw_path):\n                    raise ValueError(pub_abs_path_error.format(gen_attr, raw_path))\n                else:\n                    abs_path = os.path.join(source_dir, raw_path)\n                try:\n                    generated = verify_input_directory(abs_path)\n                except:\n                    raise ValueError(pub_missing_dir_error.format(abs_path, raw_path, gen_attr))\n            # attribute absent => None\n            if ext_attr in attributes_dict.keys():\n                raw_path = attributes_dict[ext_attr]\n                if os.path.isabs(raw_path):\n                    raise ValueError(pub_abs_path_error.format(ext_attr, raw_path))\n                else:\n                    abs_path = os.path.join(source_dir, raw_path)\n                try:\n                    external = verify_input_directory(abs_path)\n                except:\n                    raise ValueError(pub_missing_dir_error.format(abs_path, raw_path, ext_attr))\n\n    # pair of discovered absolute paths\n    return (generated, external)\n\n\ndef get_source_directories(xml_source):\n    '''Directories given in source's \"docinfo\" element'''\n\n    # Examine <source>/docinfo/directories element carefully\n    # for attributes which we code here for convenience\n    data_attr = \"data\"\n\n    # prepare for relative paths later\n    source_dir = get_source_path(xml_source)\n\n    # some parameterized error messages used later\n    source_abs_path_error = \" \".join(\n        [\n            \"the directory path for a managed directory, given in the\",\n            'source file as \"docinfo/directories/@{}\" must be relative to',\n            'the PreTeXt source file location, and not the absolute path \"{}\"',\n        ]\n    )\n    source_missing_dir_error = \" \".join(\n        [\n            'the directory \"{}\" implied by the value \"{}\" in the',\n            '\"docinfo/directories/@{}\" entry of the source file does not',\n            \"exist. Check the spelling, create the necessary directory, or entirely\",\n            'remove the whole \"docinfo/directories\" element of the source file.'\n        ]\n    )\n\n    # Data holds files necessary for building parts\n    # of a project, and are only necessary for that role.\n    # As a component of the source it is given in the \"docinfo\"\n    data = None\n\n    src_tree = guarded_xml_include_parser(xml_source)\n    directories_list = src_tree.xpath(\"/pretext/docinfo/directories\")\n    if directories_list:\n        attributes_dict = directories_list[0].attrib\n        if data_attr in attributes_dict:\n            raw_path = attributes_dict[data_attr]\n            if os.path.isabs(raw_path):\n                raise ValueError(source_abs_path_error.format(data_attr, raw_path))\n            else:\n                abs_path = os.path.join(source_dir, raw_path)\n            try:\n                data = verify_input_directory(abs_path)\n            except:\n                raise ValueError(source_missing_dir_error.format(abs_path, raw_path, data_attr))\n\n    return data\n\n\ndef get_platform_host(pub_file):\n    '''Reports the html/platform/@host value from the publication file'''\n\n    # \"web\": the default\n    # \"runestone\": electing to host on a Runestone server\n\n    # NB: this interrogates the publisher file as authored, and provides\n    # a default value if not explicitly set otherwise. Thus, very different\n    # from  get_publisher_variable()  and a bit dangerous if the publisher\n    # file computations change.  In use by the PreTeXt-CLI to ascertain a\n    # Runestone build. (2024-09-25)\n\n    if not(pub_file):\n        return \"web\"\n\n    pub_tree = ET.parse(pub_file)\n    pub_tree.xinclude()\n    element_list = pub_tree.xpath(\"/publication/html/platform\")\n    if not(element_list):\n        return \"web\"\n\n    # assume at most one, schema may enforce\n    platform = element_list[0]\n    attrs = platform.attrib\n    if not('host') in attrs:\n        return \"web\"\n\n    return attrs['host']\n\n\ndef copy_managed_directories(build_dir, external_abs=None, generated_abs=None, data_abs=None):\n    # Copies external and generated directories from absolute paths set in external_abs\n    # and generated_abs (unless set to None) into a build directory.  Since the\n    # build directory is fresh for each build, these directories should not exist\n    # in advance and the  shutil.copytree()  function should raise an error.\n    if external_abs is not None:\n        external_dir = os.path.join(build_dir, \"external\")\n        shutil.copytree(external_abs, external_dir)\n\n    if generated_abs is not None:\n        generated_dir = os.path.join(build_dir, \"generated\")\n        shutil.copytree(generated_abs, generated_dir)\n\n    if data_abs is not None:\n        generated_dir = os.path.join(build_dir, \"data\")\n        shutil.copytree(data_abs, generated_dir)\n\n\ndef copy_html_js(work_dir):\n    '''Copy all necessary CSS and JS into working directory'''\n\n    # Place support files where expected.\n    # We are not careful about placing only modules that are needed, all are copied.\n    js_src = os.path.join(get_ptx_path(), \"js\")\n    js_dest = os.path.join(work_dir, \"_static\", \"pretext\", \"js\")\n    shutil.copytree(js_src, js_dest)\n\n\ndef copy_build_directory(build_dir, dest_dir):\n    '''Copy final product from build directory into desired destination directory'''\n\n    # Both directories exist when this is called.\n    # build_dir is a temporary directory we have created\n    # dest_dir will have been error-checked once specified\n\n    # 2024-01-17:  It is tempting to replace this function by\n    # shutil.copytree().  As of Python 3.8, this function allows\n    # the destination directory to exist beforehand, but will\n    # replace the permissions with those of the  build_dir.\n    # When the build_dir is a temporary directory, the permissions\n    # are 700 which was problematic.  We also choose not to\n    # touch, in any way, the permissions on whatever directory is\n    # given as the destination.\n    #\n    # So instead, we iterate over the top level of the build\n    # directory and copy files and directories there individually.\n\n    for filename in os.listdir(build_dir):\n        src = os.path.join(build_dir, filename)\n        if os.path.isfile(src):\n            shutil.copy2(src, dest_dir)\n        elif os.path.isdir(src):\n            dest = os.path.join(dest_dir, filename)\n            # repeated builds may land in the same place,\n            # so allow directories to clobber existing ones\n            shutil.copytree(src, dest, dirs_exist_ok=True)\n        else:\n            msg = \"the build directory {} contained an unexpected object, {}\"\n            log.debug(msg.format(build_dir, src))\n\n\ndef targz(output, source_dir):\n    \"\"\"Creates a zipped tar file, output; the root of the archive has a single folder, source_dir\"\"\"\n    import tarfile\n\n    with tarfile.open(output, \"w:gz\") as tar:\n        tar.add(source_dir, arcname=os.path.basename(source_dir))\n\n@contextlib.contextmanager\ndef working_directory(path):\n    \"\"\"\n    Temporarily change the current working directory.\n\n    Usage:\n    with working_directory(path):\n        do_things()   # working in the given path\n    do_other_things() # back to original path\n    \"\"\"\n    current_directory = os.getcwd()\n    os.chdir(path)\n    log.debug(f\"Now working in directory {path}\")\n    try:\n        yield\n    finally:\n        os.chdir(current_directory)\n        log.debug(f\"Successfully changed directory back to {current_directory}\")\n\n\ndef get_publisher_variable_report(xml_source, pub_file, params):\n    \"\"\"Parse the pubfile and return a dict containing the variables\"\"\"\n\n    # IMPORTANT: to report the value of a (computed) publisher variable,\n    # two related routines are involved.  For a variable not previously\n    # supported, a developer must take action to implement a report. The\n    # XSL in the \"utilities/report-publisher-variable.xsl\" stylesheet must\n    # include the report of a value, which will be captured in a temporary\n    # file to be read by the Python routine \"get_publisher_variable_report()\".\n\n    # NB: this will always be consistent with what *is computed* from\n    # the publisher file.  An eception is given by the  get_platform_host()\n    # routine, which directly examines the authored file. (2024-09-25)\n\n    # NB: there may not be a publication file (pub_file = None)\n    # Variables are still computed and should have reasonable default values\n    log.debug(\"parsing the publisher file variables\")\n\n    # to ensure provided stringparams aren't mutated unintentionally\n    params = params.copy()\n\n    if pub_file:\n        params[\"publisher\"] = pub_file\n\n    # construct filename for the XSL to report variable/value pairs\n    reporting_xslt = os.path.join(get_ptx_xsl_path(), \"utilities\",\"report-publisher-variables.xsl\")\n    # Short-circuit the assembly (pre-processor) stylesheet to only\n    # make the \"version\" tree.  This is as much as is needed for the\n    # determination of the publisher variables and will be significantly\n    # faster (by a factor of 15 or so wuih the sample article.  So every\n    # place we call \"get_publisher_variable_report()\" will see a reduction\n    # in time.   \"assembly.version-only\" is defined in pretext-assembly.xsl,\n    # which is im[ported by the stylesheet just defined.\n    params[\"assembly.version-only\"] = \"yes\"\n\n    # file to receive result of stylesheet\n    tmp_dir = get_temporary_directory()\n    log.debug(\"temporary directory for publisher variables: {}\".format(tmp_dir))\n    temp_file = os.path.join(tmp_dir, \"pub_var.txt\")\n    log.debug(\"file of publisher variables: {}\".format(temp_file))\n\n    # Apply the stylesheet, with source and publication file\n    xsltproc(reporting_xslt, xml_source, temp_file, None, params)\n\n    # parse file into a dictionary\n    variables = {}\n    with open(temp_file, 'r') as f:\n        for line in f:\n            parts = line.split()\n            # careful: value could be empty string,\n            # then split() returns 1 part only\n            if len(parts) == 1:\n                variables[parts[0]] = ''\n            else:\n                # value could have spaces, so rejoin other parts\n                variables[parts[0]] = \" \".join(parts[1:])\n\n    return variables\n\n\ndef get_publisher_variable(variable_dict, variable_name):\n    \"\"\"Get a computed publisher-variable's value via variable name\"\"\"\n\n    # Actually parsing the pub file is relatively expensive, so callers must do that\n    # and pass the resulting dict to this function, hopefully retaining the dict\n    # for any other calls within the scope of the computed dictionary.\n\n    log.debug(\"determining value of publisher variable '{}'\".format(variable_name))\n\n    if variable_name in variable_dict:\n        return variable_dict[variable_name]\n    else:\n        msg = '\\n'.join([\"the publisher variable '{}' could not be located.\",\n                        \"Did you spell it correctly or does it need implementation?\",\n                        \"If the latter, read instructions in code comments in the relevant routines.\"])\n        raise ValueError(msg.format(variable_name))\n\n\ndef get_journal_info(journal_name):\n    \"\"\"\n    Returns a dictionary of data for a journal based on\n    a master list of journals in journals/journals.xml.\n\n    Arguments:\n    journal_name: The code name of the journal to look up, such as bull-amer-math-soc. This is the <code> element of the journals.xml file, and will usually agree with the name of the texstyle file.\n    \"\"\"\n    journal_xml = os.path.join(get_ptx_path(), \"journals\", \"journals.xml\")\n    log.debug(\"Reading list of journals in {}\".format(journal_xml))\n    journals_tree = ET.parse(journal_xml)\n    journals_tree.xinclude()\n\n    # Find the node with <code> value journal_name:\n    try:\n        journal = journals_tree.xpath(f\"//journal[code='{journal_name.lower()}']\")[0]\n    except Exception as e:\n        log.warning(\"The journal name {} specified in the publication file is not supported.\".format(journal_name))\n        return {\"latex-style\": \"\"}\n\n    # name, code, and publisher are nodes containing text\n    keys = [\"name\", \"code\", \"publisher\"]\n    journal_info = {}\n    for key in keys:\n        element = journal.find(key)\n        journal_info[key] = element.text if element is not None else None\n    # get the attribute values of the optional 'method' element.  Possible attributes are @latex-style, @texstyle, and @dependent\n    if journal.find(\"method\") is not None:\n        for attr in [\"latex-style\", \"texstyle\", \"dependent\"]:\n            if attr in journal.find(\"method\").attrib:\n                journal_info[attr] = journal.find(\"method\").attrib[attr]\n\n    # If any of these are not yet set (or are None), set them to the default values\n    journal_info[\"latex-style\"] = journal_info.get(\"latex-style\", \"texstyle\")\n    journal_info[\"texstyle\"] = journal_info.get(\"texstyle\", journal_info.get(\"code\"))\n    journal_info[\"dependent\"] = journal_info.get(\"dependent\", \"no\")\n    log.debug(\"Using the journal code {} as the texstyle value.\".format(journal_info.get(\"texstyle\")))\n\n    # If the latex-style is \"texstyle\", then find a filename for the texstyle file (as a relative path inside journals/texstyles).  What this is depends on whether dependent is \"yes\"\n    if journal_info[\"latex-style\"] == \"texstyle\":\n        # If dependent is \"yes\", then we need to set the texstyle-file to the filename of the texstyle file, which is the code value.\n        if journal_info[\"dependent\"] == \"yes\":\n            journal_info[\"texstyle-file\"] = \"dependents/\" + journal_info.get(\"texstyle\") + \".xml\"\n            log.debug(\"Using texstyle-file {}.\".format(journal_info[\"texstyle-file\"]))\n        # If dependent is \"no\", then we need to set the texstyle-file to the filename of the texstyle file, which is the code value.\n        else:\n            journal_info[\"texstyle-file\"] =  journal_info.get(\"texstyle\") + \".xml\"\n            log.debug(\"Using texstyle-file {}.\".format(journal_info[\"texstyle-file\"]))\n\n    return journal_info\n\ndef place_latex_package_files(dest_dir, journal_name, cache_dir):\n    \"\"\"\n    Check whether the latex requires additional files specified in a texstyle file.\n    If so, either copy them from cache_dir or download them from the internet (and also store a copy in the cache_dir).\n    \"\"\"\n    # Get the texstyle file for the journal name\n    texstyle_file = get_journal_info(journal_name).get(\"texstyle-file\")\n    # Double check that there is a texstyle file\n    if texstyle_file is None:\n        return\n    # Otherwise, parse this file and check for any <file> elements.\n    texstyle_tree = ET.parse(os.path.join(get_ptx_path(), \"journals\", \"texstyles\", texstyle_file))\n    texstyle_file_elements = texstyle_tree.xpath(\"//required-files/file\")\n    if not texstyle_file_elements:\n        log.debug(\"No required files found in the texstyle file.\")\n        return\n    # Check whether the journal code is present in the metadata element of the texstyle file\n    journal_code = texstyle_tree.xpath(\"//metadata/code\")[0].text\n    cache_dir = os.path.join(cache_dir, journal_code)\n    # Create the cache_dir if it doesn't exist\n    os.makedirs(cache_dir, exist_ok=True)\n\n    for file in texstyle_file_elements:\n        file_path = os.path.join(cache_dir, file.attrib[\"name\"])\n        if not os.path.exists(file_path):\n            # download the file if it is not already in the cache_dir\n            log.debug(\"Downloading required file {} from {}\".format(file.attrib[\"name\"], file.attrib[\"href\"]))\n            url = file.attrib[\"href\"]\n            # The url might be to the file, or to a compressed archive.  We do slightly different things in each case.  TODO: other archive formats.\n            if url.endswith(\".zip\"):\n                tmp_zip = os.path.join(cache_dir, \"tmp.zip\")\n                download_file(url, tmp_zip)\n                with zipfile.ZipFile(tmp_zip, 'r') as zip_ref:\n                    with open(file_path, 'wb') as f:\n                        f.write(zip_ref.read(file.attrib[\"path\"]))\n                os.remove(tmp_zip)\n            else:\n                download_file(url, file_path)\n            log.debug(\"Saved file {} to {}\".format(file.attrib[\"name\"], file_path))\n        else:\n            log.debug(\"File {} already exists in the generated assets directory.\".format(file.attrib[\"name\"]))\n        # Copy required resource to the destination directory\n        shutil.copy2(file_path, dest_dir)\n\n\nclass Stopwatch:\n    \"\"\"A simple stopwatch class for measuring elapsed time.\n\n    print_log controls whether log messages are printed when the log() is called\n    \"\"\"\n\n    def __init__(self, name:str=\"\", print_log:bool=True):\n        self.name = name\n        self.print_log = print_log\n        self.start_time = time.time()\n        self.last_log_time = self.start_time\n\n    def reset(self):\n        \"\"\"Reset the log timer to the current time.\"\"\"\n        self.last_log_time = time.time()\n\n    def log(self, timepoint_description:str=\"\"):\n        \"\"\"Print a log message with the elapsed time since the last log event.\"\"\"\n        if self.print_log:\n            cur_time = time.time()\n            elapsed_time = cur_time - self.start_time\n            since_last_log_time = cur_time - self.last_log_time\n            self.reset()\n            log.info(f\"** Timing report from {self.name}: {timepoint_description}, {since_last_log_time:.2f}s since last watch reset. {elapsed_time:.2f}s total elapsed time.\")\n\n\n###########################\n#\n#  Module-level definitions\n#\n###########################\n\n# One-time set-up for global use in the module\n# Module provides, and depends on these variables,\n# whose scope is the module, so must be declared\n# by employing routines as non-local (\"global\")\n#\n#  __xml_header - standard first line of an XML file.\n#                 a convenience here\n#\n#  __ptx_path - root directory of installed PreTeXt distribution\n#              necessary to locate stylesheets and other support\n#\n#  __config - parsed values from an INI-style configuration file\n#\n#  __temps - created temporary directories, to report or release\n#\n#  __module_warning - stock import-failure warning message\n\n# NB: some uses of this module last for longer than processing\n# just one document, for example, on Runestone Academy when\n# building many books at once with the CLI.  These variables\n# then also have a long life, and so some care needs to be\n# exercised that they do not contain document-specific information.\n\n# Convenience\n__xml_header = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n'\n\n# Discover and set distribution path once at start-up\n__ptx_path = None\nset_ptx_path()\n\n# Configuration as a dictionary\n__executables = None\n\n#  cache of temporary directories\n__temps = []\n"
  },
  {
    "path": "pretext/module-test.py",
    "content": "#!/usr/bin/env python3\n# ********************************************************************\n# Copyright 2010-2020 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n# *********************************************************************\n\n# 2021-05-21: this script expects Python 3.6 or newer\n# 2020-05-20: this script expects Python 3.4 or newer\n\n# This is an extremely simple demonstration of how to\n# employ the pretext module in a Python application\n\n# Import the module into the local namespace as \"ptx\"\nfrom lib import pretext as ptx\n\n# Read arguments from the command line with the standard \"sys\" module\nimport sys  # argv\n\nimport os.path  # abspath()\n\n# module is parameterized by the level of console output\n# Not necessary, default is 0 and no output\n# Maximum level set here\nptx.set_verbosity(2)\n\n# directory/file locations provided on command-line by user\n# routines in module expect complete absolute paths\nxml_source = os.path.abspath(sys.argv[1])\ndest_dir = os.path.abspath(sys.argv[2])\n\n# we do one minimal task as the demonstration\n# each <latex-image> in the source will give rise to a TeX file (only)\n# various options are not employed\n# function signature is\n#\n# latex_image_conversion(xml_source, stringparams, root_xmlid, data_dir, dest_dir, 'source')\n#\nptx.latex_image_conversion(xml_source, None, \"\", None, dest_dir, \"source\")\n"
  },
  {
    "path": "pretext/pretext",
    "content": "#!/usr/bin/env python3\n# ********************************************************************\n# Copyright 2010-2020 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n# *********************************************************************\n\n# 2023-10-13: this script expects Python 3.8 or newer\n# 2021-05-21: this script expects Python 3.6 or newer\n#     argparse is backported to 3.1 (?)\n# 2020-05-20: this script expects Python 3.4 or newer\n\nfrom lib import pretext as ptx\n\n# Set up logging (replacing _verbose/_debug).\n# Use log.info(<string>) or log.debug(<string>).\n# Also available now are log.critical(), log.error(), and log.warning().\n# 0-level verbosity will be set to only show log.critical() messages.\nimport logging\n#ptxlogger will be compatible with the CLI logger.\nlog = logging.getLogger('ptxlogger')\nlog.setLevel(logging.DEBUG)\n# Create stream handler for console output.\n# Later we will set the level with log.setLevel(logging.[level])\nconsole_log = logging.StreamHandler()\nlog_format = logging.Formatter('PTX:%(levelname)-8s: %(message)s')\nconsole_log.setFormatter(log_format)\nlog.addHandler(console_log)\n\n###################\n# Utility Functions\n###################\n\n# Check and expand directories, files provided\n# by author/publisher on the command line\n# Use pretext module console messaging routines\n\n\ndef verify_input_file(f, file_type):\n    \"\"\"Verify file exists, or raise error.  Return absolute path\"\"\"\n    # file_type is 'source' or 'publisher' or 'config'\n    #    the source gets fed into the lxml routines and so we\n    #    let Python deal with separators, etc.  However the\n    #    publisher file is passed around until an XSL stylesheet\n    #    actually opens it for reading, so we need to make\n    #    separators all of a style the XSL command expects\n    #    Bonus, we can customize logging messages\n    import os  # .sep\n    import os.path  # isfile(), abspath()\n\n    # print representation AND error-check\n    if file_type == \"source\":\n        file_descriptor = \"XML source\"\n    elif file_type == \"publisher\":\n        file_descriptor = \"publisher\"\n    elif file_type == \"stylesheet\":\n        file_descriptor = \"extra XSL stylesheet\"\n    elif file_type == \"config\":\n        file_descriptor = \"executables configuration\"\n    else:\n        msg = \"input file verification should receive a 'source', 'publisher', 'stylesheet', or 'config' parameter, not '{}'\"\n        raise ValueError(msg.format(file_type))\n\n    log.info(\"verifying and expanding {} file: {}\".format(file_descriptor, f))\n    if not (os.path.isfile(f)):\n        msg = \"{} file {}{} does not exist\".format(\n            file_descriptor,\n            f,\n            \" from the command line\" if file_type == \"config\" else \"\",\n        )\n        if file_type == \"config\":\n            log.warning(msg)\n            return None\n        else:\n            raise ValueError(msg)\n    absf = os.path.abspath(f)\n    if file_type == \"publisher\":\n        absf = absf.replace(os.sep, \"/\")\n    log.info(\n        \"input {} file expanded to absolute path: {}\".format(file_descriptor, absf)\n    )\n    return absf\n\n\ndef get_output_file(file_path):\n    \"\"\"Expand provided filename, or return None\"\"\"\n    import os  # getcwd, isdir\n\n    # if specified and is an extant directory then this is\n    # a misunderstanding and the defaults for a directory\n    # can make a realmess (especially in one's repository)\n    if file_path and os.path.isdir(file_path):\n        msg = '\"{}\" is a directory and appears where the name of a single file is expected'\n        raise ValueError(msg.format(file_path))\n    # if specified, return absolute path\n    # does not need to exist\n    if file_path:\n        return os.path.abspath(file_path)\n    # else leave unspecified\n    return None\n\n\ndef get_destination_directory(directory, xml_source, pub_file, component):\n    \"\"\"Check and expand provided directory, or return current working directory\"\"\"\n    import os  # getcwd(), mkdir()\n    import os.path  # join()\n\n    # directory names presumed within \"generated\" directory of\n    # the managed directories scheme, indexed by the \"component\",\n    component_dirs = {\n        \"prefigure\": \"prefigure\",\n        \"asy\": \"asymptote\",\n        \"dynamic\": \"dynamic_subs\",\n        \"latex-image\": \"latex-image\",\n        \"mom\": \"problems\",\n        \"preview\": \"preview\",\n        \"sageplot\": \"sageplot\",\n        \"mermaid\": \"mermaid\",\n        \"stack\": \"stack\",\n        \"trace\": \"trace\",\n        \"youtube\": \"youtube\",\n        \"qrcode\": \"qrcode\",\n        \"datafile\": \"datafile\",\n        \"play-button\": \"play-button\",\n        \"latex-package\": \"latex-packages\",\n        \"references\" : \"references\",\n        \"webwork\": \"webwork\",\n    }\n    # if specified, check, sanitize, return absolute path\n    if directory:\n        return ptx.verify_input_directory(directory)\n    # explore a default provided by the  managed directories\n    # scheme, as specified in the publication file.  \"generated\"\n    # will be sanitized as an absolute path, so we run with it\n    generated, _ = ptx.get_managed_directories(xml_source, pub_file)\n    # generated is \"None\" means publisher has not\n    #   opted-in for managed directories\n    # \"missing\" key means we are not creating a component\n    #   with pieces distributed to directories\n    if generated and (component in component_dirs):\n        # generally the component directory already exists (so the\n        # error does not concern us), but we create the directory the\n        # first time it is filled as part of a *managed* scheme\n        subdirectory = os.path.join(generated, component_dirs[component])\n        try:\n            os.mkdir(subdirectory)\n        except FileExistsError:\n            pass\n        # good - we've formed it and ensured it exists - ship it and finish\n        return subdirectory\n    # else, absent managed directories, default to current working directory\n    return os.getcwd()\n\n\ndef string_parameters_as_dict(pairs):\n    \"\"\"Convert flat list of consecutive keys and values into a dictionary\"\"\"\n    # Expects a list, and argparse below defaults to that\n    # But still includes reasonable behavior for input of None\n    if not (pairs):\n        return {}\n    if (len(pairs) % 2) == 1:\n        msg = \"There are an odd number of items in option/value list ({})\".format(pairs)\n        raise ValueError(msg)\n    # safe to assume even length, so floor division\n    params = {}\n    for i in range(len(pairs) // 2):\n        params[pairs[2 * i]] = pairs[2 * i + 1]\n    return params\n\n\ndef sanitize_method(method, component, format):\n    \"\"\"Returns a string appropriate for the component and format, else None\"\"\"\n    if component == \"asy\":\n        # unset by command-line, use default\n        if not (method):\n            return \"server\"\n        # set, but illegal\n        elif not (method in [\"local\", \"server\"]):\n            msg = \"\\n\".join(\n                [\n                    'the method given for generating Asymptote diagrams (\"{}\") is not \"local\" or \"server\",',\n                    '              so using the default method instead (\"server\")',\n                ]\n            )\n            log.warning(msg.format(method))\n            return \"server\"\n        # set correctly\n        else:\n            return method\n    elif (((component == \"doc\") or (component == \"all\")) and ((format == \"pdf\") or format == \"pdf-plus\")) or (component == \"latex-image\"):\n        # \"all\" component is deprecated for \"doc\"\n        # we will arbitrarily set xelatex as the default\n        if not (method):\n            return \"xelatex\"\n        # set, but illegal\n        elif not (method in [\"pdflatex\", \"xelatex\"]):\n            msg = \"\\n\".join(\n                [\n                    'the method given for the \"{}\" component and format \"{}\" (\"{}\") is not \"pdflatex\" or \"xelatex\",',\n                    '             so using the default method instead (\"xelatex\")',\n                ]\n            )\n            log.warning(msg.format(component, format, method))\n            return \"xelatex\"\n        # set correctly\n        else:\n            return method\n    elif component == \"preview\":\n        # unset by command-line, use default\n        if not (method):\n            return \"fast\"\n        # set, but illegal\n        elif not (method in [\"fast\", \"slow\"]):\n            msg = \"\\n\".join(\n                [\n                    'the method given for generating preview images (\"{}\") is not \"fast\" or \"slow\",',\n                    '             so using the default method instead (\"fast\")',\n                ]\n            )\n            log.warning(msg.format(method))\n            return \"fast\"\n        # set correctly\n        else:\n            return method\n    # inappropriate attempt to use this argument\n    elif method:\n        msg = \"\".join(\n            [\n                'the method \"{}\" is not applicable for ',\n                'component \"{}\" and format \"{}\".  It is being ignored.',\n            ]\n        )\n        log.warning(msg.format(method, component, format))\n        return None\n    # not relevant, not attempted\n    return None\n\n\n####################\n# Configuration File\n####################\n\n\ndef get_executables(arg_supplied_config_file):\n    \"\"\"Query the configuration file, return dictionary of executables/commands\"\"\"\n\n    import configparser  # ConfigParser()\n    import os.path  # join()\n\n    # parse user configuration(s), contains locations of executables\n    # in the \"executables\" section of the INI-style file\n\n    ptx_dir = ptx.get_ptx_path()\n    config_filename = \"pretext.cfg\"\n    default_config_file = os.path.join(ptx_dir, \"pretext\", config_filename)\n    user_config_file = os.path.join(ptx_dir, \"user\", config_filename)\n    # 2020-05-21: obsolete'd mbx script and associated config filenames\n    # Try to read old version, but prefer new version\n    stale_user_config_file = os.path.join(ptx_dir, \"user\", \"mbx.cfg\")\n    config_file_list = [default_config_file, stale_user_config_file, user_config_file]\n    if arg_supplied_config_file:\n        arg_supplied_config_file = verify_input_file(arg_supplied_config_file, \"config\")\n    if arg_supplied_config_file:\n        config_file_list.append(arg_supplied_config_file)\n\n    # report on which configuration files are being examined\n    log.info(\"parsing possible configuration files: {}\".format(config_file_list))\n\n    config = configparser.ConfigParser()\n    files_read = config.read(config_file_list)\n    # report on which configuration files were used\n    log.debug(\"configuration files actually used/read: {}\".format(files_read))\n    if not (user_config_file in files_read) and not (\n        arg_supplied_config_file in files_read\n    ):\n        log.info(\"using default configuration only\")\n    if not (user_config_file in files_read):\n        msg = \"custom configuration file not used at {}\"\n        log.info(msg.format(user_config_file))\n    if arg_supplied_config_file and not (arg_supplied_config_file in files_read):\n        msg = \"command-line specified config file not used at {}\"\n        log.info(msg.format(arg_supplied_config_file))\n\n    executable_dict = dict(config[\"executables\"])\n    # report the dictionary of keys\n    log.info(\"dictionary of executables/commands: {}\".format(executable_dict))\n\n    return executable_dict\n\n\n#####################\n# Command-Line Parser\n#####################\n\n\ndef get_cli_arguments():\n    \"\"\"Return the CLI arguments in parser object\"\"\"\n    import argparse\n\n    parser = argparse.ArgumentParser(\n        description=\"PreTeXt utility script (requires Python 3.8)\",\n        formatter_class=argparse.RawTextHelpFormatter,\n    )\n\n    verbose_help = \"\\n\".join(\n        [\n            \"verbosity of information on progress of the program\",\n            \"  -v  is actions being performed\",\n            \"  -vv is some additional raw debugging information\",\n        ]\n    )\n    parser.add_argument(\"-v\", \"--verbose\", help=verbose_help, action=\"count\")\n\n    config_help = \"\\n\".join(\n        [\n            \"filename for pretext script config file\",\n            \"  Settings in the specified file will override both defaults in\",\n            \"  {}/pretext/pretext.cfg\".format(ptx.get_ptx_path()),\n            \"  and user overrides in\",\n            \"  {}/user/pretext.cfg\".format(ptx.get_ptx_path()),\n            \"  (if it exists)\",\n        ]\n    )\n    parser.add_argument(\n        \"-C\", \"--config\", help=config_help, action=\"store\", dest=\"config_file\"\n    )\n\n    component_info = [\n        (\"prefigure\", \"PreFigure graphics\"),\n        (\"asy\", \"Asymptote diagrams (method: [server], local)\"),\n        (\"sageplot\", \"Sage graphics\"),\n        (\"mermaid\", \"Mermaid diagrams (PNG, SVG)\"),\n        (\"latex-image\", \"LaTeX pictures (method: [xelatex], pdflatex)\"),\n        (\n            \"webwork\",\n            \"WeBWorK problems in authored, PG, url, and static representations\",\n        ),\n        (\"stack\", \"STACK exercises (static representations)\"),\n        (\"references\", \"References and citations via Citation Stylesheet Language\"),\n        (\"pg-macros\", \"Server-side macros for WeBWorK problem generation\"),\n        (\"dynamic\", \"Expression subsitutions for dynamically generated exercises\"),\n        (\"youtube\", \"Thumbnails for YouTube videos (JPEG only)\"),\n        (\"play-button\", \"generate generic static video image\"),\n        (\"qrcode\", \"QR codes for static versions of interactive content\"),\n        (\"preview\", \"Static preview images for interactives\"),\n        (\"mom\", \"MyOpenMath problem files, static versions\"),\n        (\"math\", \"Math elements for MathJax conversion (only)\"),\n        (\"theme\", \"theme.css file for HTML build. Any theme options which require HTML changes will not be updated.\"),\n        (\"trace\", \"Program trace data for CodeLens\"),\n        (\"datafile\", \"data files to text representations\"),\n        (\"latex-package\", \"LaTeX external packages for journals\"),\n        (\"doc\", \"Complete document (in various formats) (for pdf, method: [xelatex], pdflatex)\"),\n        (\"all\", \"Complete document (in various formats) [DEPRECATED])\"),\n        (\"tikz\", \"tikz pictures (removed, use latex-image)\"),\n    ]\n    component_help = \"Possible components are:\\n\" + \"\\n\".join(\n        [\"  {} - {}\".format(info[0], info[1]) for info in component_info]\n    )\n    parser.add_argument(\n        \"-c\", \"--component\", help=component_help, action=\"store\", dest=\"component\"\n    )\n\n    format_info = [\n        (\"svg\", \"Scalable Vector Graphics file(s)\"),\n        (\"pdf\", \"Portable Document Format file(s)\"),\n        (\"pdf-plus\", \"PDF and LaTeX, asset, and log files used/generated when building PDF\"),\n        (\"png\", \"Portable Network Graphics file(s)\"),\n        (\"eps\", \"Encapsulated Post Script file(s)\"),\n        (\"mml\", \"MathML (math elements)\"),\n        (\"braille\", \"Nemeth Braille (math elements only)\"),\n        (\"braille-emboss\", \"UEB + Nemeth braille, for print\"),\n        (\"braille-electronic\", \"UEB + Nemeth Braille, for one-line display\"),\n        (\"tactile\", \"Tactile PreFigure diagrams with braille labels\"),\n        (\"speech\", \"Speech (math elements)\"),\n        (\"source\", \"Standalone source files\"),\n        (\"latex\", \"LaTeX source file (only, an intermediate format for developers)\"),\n        (\"latex-plus\", \"LaTeX source file and all necessary build files\"),\n        (\"html\", \"HyperText Markup Language (online/web pages)\"),\n        (\"html-zip\", \"HyperText Markup Language (single zip file)\"),\n        (\"html-scorm\", \"HyperText Markup Language (single zip file including SCORM manifest)\"),\n        (\"revealjs\", \"PreTeXt slideshow to reveal.js HTML format\"),\n        (\"epub-svg\", \"EPUB container, math as SVG\"),\n        (\"epub-mml\", \"EPUB container, math as MathML\"),\n        (\"epub-speech\", \"EPUB container, math as speech\"),\n        (\"epub-kindle\", \"EPUB container, math as MathML, PNG images\"),\n        (\"epub-svg-nozip\", \"EPUB build files, math as SVG\"),\n        (\"epub-mml-nozip\", \"EPUB build files, math as MathML\"),\n        (\"epub-speech-nozip\", \"EPUB build files, math as speech\"),\n        (\"epub-kindle-nozip\", \"EPUB build files, math as MathML, PNG images\"),\n        (\n            \"assembly-static\",\n            \"PreTeXt source, after pre-processor, static exercises (for developers)\",\n        ),\n        (\n            \"assembly-dynamic\",\n            \"PreTeXt source, after pre-processor, dynamic exercises (for developers)\",\n        ),\n        (\n            \"assembly-pg\",\n            \"PreTeXt source, after pre-processor, WeBWorK problem set PG exercises (for developers)\",\n        ),\n        (\"assembly-version\", \"PreTeXt source, after pre-processor resolves versions and customizations (for developers)\", ),\n        (\"sagenb\", \"Sage worksheet conversion (removed)\"),\n        (\"webwork-sets\", \"Folder tree of PG files, set definitions, and set headers\"),\n        (\"all\", \"All available output formats\"),\n    ]\n    format_help = \"Output formats are:\\n\" + \"\\n\".join(\n        [\"  {} - {}\".format(info[0], info[1]) for info in format_info]\n    )\n    parser.add_argument(\n        \"-f\", \"--format\", help=format_help, action=\"store\", dest=\"format\"\n    )\n\n    parser.add_argument(\n        \"-p\",\n        \"--publication\",\n        \"--publisher\",\n        help=\"filename for publication file (--publisher is deprecated as a switch)\",\n        action=\"store\",\n        dest=\"publication_file\",\n    )\n    # \"nargs\" allows multiple options following the flag\n    # separate by spaces, can't use \"-stringparam\"\n    # stringparams is a list of strings on return, defaults to empty list\n    parser.add_argument(\n        \"-x\",\n        \"--parameters\",\n        nargs=\"+\",\n        help=\"extra stringparam options to pass to XSLT extraction stylesheet (multiple option/value pairs, not as last argument)\",\n        action=\"store\",\n        dest=\"stringparams\",\n        default=[],\n    )\n    # filename for \"eXtra\" XSL, really alternate XSL\n    parser.add_argument(\n        \"-X\",\n        \"--XSL\",\n        help=\"filename for extra XSL stylesheet (only PDF, HTML, LaTeX formats)\",\n        action=\"store\",\n        dest=\"extra_stylesheet\",\n    )\n    # an option of sorts, called method, default will be per-component\n    parser.add_argument(\n        \"-M\",\n        \"--method\",\n        help=\"method to use for a component/format (values and defaults vary)\",\n        action=\"store\",\n        dest=\"method\",\n        default=\"\",\n    )\n    # default to an empty string, which signals root to XSL stylesheet\n    parser.add_argument(\n        \"-r\",\n        \"--restrict\",\n        help=\"restrict to subtree rooted at element with specified xml:id\",\n        action=\"store\",\n        dest=\"xmlid\",\n        default=\"\",\n    )\n    parser.add_argument(\n        \"-s\",\n        \"--server\",\n        help=\"base URL for server (webwork only)\",\n        action=\"store\",\n        dest=\"server\",\n    )\n\n    # recognize this switch, but only warn later that it is being ignored\n    parser.add_argument(\n        \"-i\",\n        \"--include\",\n        help=\"external data directory, deprecated 2021-07-26, IGNORED\",\n        action=\"store\",\n        dest=\"data_dir\",\n    )\n    parser.add_argument(\n        \"-o\",\n        \"--output\",\n        help=\"file for output, only when when output is a single file (supersedes -d)\",\n        action=\"store\",\n        dest=\"out\",\n    )\n    parser.add_argument(\n        \"-d\",\n        \"--directory\",\n        help=\"directory for output, defaults to managed directories from publication file\\nfor generated components, otherwise default is current directory\",\n        action=\"store\",\n        dest=\"dir\",\n    )\n    parser.add_argument(\n        \"-a\",\n        \"--abort\",\n        help=\"abort script upon recoverable errors\",\n        action=\"store_true\",\n        dest=\"abort\",\n    )\n    parser.add_argument(\n        \"-z\",\n        \"--tgz\",\n        help=\"output a compressed tar archive (WeBWorK problem sets)\",\n        action=\"store_true\",\n        dest=\"tgz\",\n    )\n    # Needs help-file, once public\n    # Will default to False\n    parser.add_argument(\"-V\", \"--validate\", action=\"store_true\", dest=\"validate\")\n    parser.add_argument(\n        \"xml_file\", help=\"PreTeXt source file with content\", action=\"store\"\n    )\n\n    return parser.parse_args()\n\n\n############################################\n# Interface Command-Line to Module Functions\n############################################\n\n\ndef main():\n    \"\"\"React to command-line switches in order to perform basic tasks\"\"\"\n\n    # always check version, raises fatal error for Python 2 or less\n    ptx.check_python_version()\n\n    # grab command line arguments\n    args = get_cli_arguments()\n\n    # set verbosity of supplied console messages\n    # based on CLI argument, if supplied (0,1,2)\n    # Parser can return None, this is critical logs only\n    if not (args.verbose) or args.verbose == 0:\n        log.setLevel(logging.CRITICAL)\n    elif args.verbose == 1:\n        log.setLevel(logging.INFO)\n    else:\n        log.setLevel(logging.DEBUG) #not strictly necessary, we set this as the default earlier\n\n    # Now, and only now, we can report some setup,\n    # since we had to wait for the vebosity to be reported and set\n\n    # Report the command-line arguments just obtained\n    log.debug(\"Parsed CLI args {}\".format(vars(args)))\n\n    # Issue command-line argument deprecations\n    if args.data_dir:\n        msg = \"\\n\".join(\n            [\n                \"the '-i/--include' switch is deprecated and ignored, as of 2021-07-26.\",\n                \"Transition to using a publisher file to set managed directories.  See the PreTeXt Guide.\",\n            ]\n        )\n        raise ValueError(msg)\n\n    # Report Python version in debugging output\n    log.debug(\n        \"Python version: {} (expecting 3.8 or newer)\".format(ptx.python_version())\n    )\n\n    # Check discovering directory locations as\n    # realized by PreTeXt installation\n    # Necessary for locating configuration files (next)\n    log.debug(\n        \"PreTeXt distribution and xsl directories: {}, {}\".format(\n            ptx.get_ptx_path(), ptx.get_ptx_xsl_path()\n        )\n    )\n\n    # The \"get\" will report 'executables' in configuration file\n    ptx.set_executables(get_executables(args.config_file))\n\n    # check and sanitize XML source, presumed to exist\n    xml_source = verify_input_file(args.xml_file, \"source\")\n\n    # data directory is optional, so allow for None here\n    if args.data_dir:\n        data_dir = ptx.verify_input_directory(args.data_dir)\n    else:\n        data_dir = None\n    # publisher file is optional, so allow for None here\n    if args.publication_file:\n        publication_file = verify_input_file(args.publication_file, \"publisher\")\n    else:\n        publication_file = None\n    # extra XSL is optional, so allow for None here\n    if args.extra_stylesheet:\n        extra_stylesheet = verify_input_file(args.extra_stylesheet, \"stylesheet\")\n    else:\n        extra_stylesheet = None\n    # directory/file locations provided on command-line by user\n    # Expanded here to be complete paths, or set to defaults\n    # output file expanded; if not specified, then no\n    # natural default, so could be left undefined (None)\n    # We don't assume it exists, it is being created\n    out_file = get_output_file(args.out)\n    # output directory: CLI switch or default to cwd\n    # must exist first if given, return value always exists\n    dest_dir = get_destination_directory(\n        args.dir, xml_source, publication_file, args.component\n    )\n    # method may not be required, but when it may apply we use a\n    # routine to error-check and sanitize possible values and defaults\n    # varies by component and format\n    method = sanitize_method(args.method, args.component, args.format)\n    # convert list of string parameters into a dictionary\n    # routines in module expect a dictionary, so convert here and now\n    stringparams = string_parameters_as_dict(args.stringparams)\n    # if 'publisher' is passed as stringparam, there could be a conflict\n    # since we also have a specification of a publisher file (exclusively)\n    # Here we follow the discouragement of using string parameters\n    # and eventually cast aside a \"publisher\" string parameter\n    if \"publisher\" in stringparams:\n        if publication_file:\n            msg = '\\n'.join([\"publication file specified with a string parameter as '{}',\",\n                             \"              but instead using additional supplied '-p' argument, '{}'\"\n                             ])\n            log.info(msg.format(stringparams[\"publisher\"], publication_file))\n        else:\n            publication_file = verify_input_file(stringparams[\"publisher\"], \"publisher\")\n        # remove from  stringparams  dictionary, so no confusion\n        del stringparams[\"publisher\"]\n\n    log.info(\"Done examining environment and initializing setup info\")\n\n    # The big switch\n    # Validation trumps everything, since it is an easy switch\n    if args.validate:\n        ptx.validate(xml_source, out_file, dest_dir)\n    elif args.component == \"prefigure\":\n        if args.format in [\"source\", \"svg\", \"pdf\", \"png\", \"tactile\", \"all\"]:\n            ptx.prefigure_conversion(xml_source, publication_file, stringparams, args.xmlid, dest_dir, args.format, None)\n        else:\n            raise NotImplementedError('cannot make Prefigure graphics in \"{}\" format'.format(args.format) )\n    elif args.component == \"asy\":\n        if args.format in [\"html\", \"pdf\", \"svg\", \"png\", \"eps\", \"source\", \"all\"]:\n            ptx.asymptote_conversion(\n                xml_source,\n                publication_file,\n                stringparams,\n                args.xmlid,\n                dest_dir,\n                args.format,\n                method,\n                None,\n            )\n        else:\n            raise NotImplementedError(\n                'cannot make Asymptote diagrams in \"{}\" format'.format(args.format)\n            )\n    elif args.component == \"sageplot\":\n        if args.format in [\"pdf\", \"svg\", \"png\", \"html\", \"all\"]:\n            ptx.sage_conversion(\n                xml_source,\n                publication_file,\n                stringparams,\n                args.xmlid,\n                dest_dir,\n                args.format,\n                None,\n            )\n        else:\n            raise NotImplementedError(\n                'cannot make Sage graphics in \"{}\" format'.format(args.format)\n            )\n    elif args.component == \"mermaid\":\n        if args.format in [\"svg\", \"png\"]:\n            ptx.mermaid_images(\n                    xml_source,\n                    publication_file,\n                    stringparams,\n                    args.xmlid,\n                    dest_dir,\n                    args.format\n                )\n        else:\n            raise NotImplementedError(\n                'cannot make Mermaid graphics in \"{}\" format'.format(args.format)\n            )\n    elif args.component == \"latex-image\":\n        if args.format in [\"pdf\", \"svg\", \"png\", \"eps\", \"source\", \"all\"]:\n            ptx.latex_image_conversion(\n                xml_source,\n                publication_file,\n                stringparams,\n                args.xmlid,\n                dest_dir,\n                args.format,\n                method,\n                None,\n            )\n        elif args.format in [\"tactile\"]:\n            ptx.latex_tactile_image_conversion(\n                xml_source, publication_file, stringparams, dest_dir, args.format\n            )\n        else:\n            raise NotImplementedError(\n                'cannot make LaTeX pictures in \"{}\" format'.format(args.format)\n            )\n    elif args.component == \"webwork-tex\":\n        wtdep = (\n            'the \"webwork-tex\" component has been replaced by the \"webwork\" component, '\n            \"and behaves very differently\"\n        )\n        raise NotImplementedError(wtdep)\n    elif args.component == \"webwork\":\n        ptx.webwork_to_xml(\n            xml_source,\n            publication_file,\n            stringparams,\n            args.xmlid,\n            args.abort,\n            args.server,\n            dest_dir,\n        )\n    elif args.component == \"stack\":\n        ptx.stack_extraction(xml_source, publication_file, stringparams, args.xmlid, dest_dir)\n    elif args.component == \"references\":\n        ptx.references(xml_source, publication_file, stringparams, args.xmlid, dest_dir)\n    elif args.component == \"pg-macros\":\n        ptx.pg_macros(xml_source, publication_file, stringparams, dest_dir)\n    elif args.component == \"youtube\":\n        ptx.youtube_thumbnail(\n            xml_source, publication_file, stringparams, args.xmlid, dest_dir\n        )\n    elif args.component == \"play-button\":\n        ptx.play_button(dest_dir)\n    elif args.component == \"qrcode\":\n        ptx.qrcode(\n            xml_source, publication_file, stringparams, args.xmlid, dest_dir\n        )\n    elif args.component == \"preview\":\n        ptx.preview_images(\n            xml_source, publication_file, stringparams, args.xmlid, dest_dir, method\n        )\n    elif args.component == \"mom\":\n        ptx.mom_static_problems(\n            xml_source, publication_file, stringparams, args.xmlid, dest_dir\n        )\n    elif args.component == \"math\":\n        if args.format in [\"svg\", \"mml\", \"nemeth\", \"speech\"]:\n            ptx.mathjax_latex(\n                xml_source, publication_file, out_file, dest_dir, args.format\n            )\n        else:\n            raise NotImplementedError(\n                'cannot convert math elements to \"{}\" format'.format(args.format)\n            )\n    elif args.component == \"trace\":\n        ptx.tracer(xml_source, publication_file, stringparams, args.xmlid, dest_dir)\n    elif args.component == \"datafile\":\n        ptx.datafiles_to_xml(xml_source, publication_file, stringparams, args.xmlid, dest_dir)\n    elif args.component == \"dynamic\":\n        ptx.dynamic_substitutions(\n            xml_source, publication_file, stringparams, args.xmlid, dest_dir, None\n        )\n    elif args.component == \"theme\":\n        ptx.update_theme(xml_source, publication_file, stringparams, dest_dir)\n    elif args.component == \"latex-package\":\n        ptx.latex_package(xml_source, publication_file, stringparams, dest_dir)\n    elif (args.component == \"doc\") or (args.component == \"all\"):\n        # \"all\" component is deprecated for \"doc\"\n        if args.format == \"html\":\n            ptx.html(\n                xml_source,\n                publication_file,\n                stringparams,\n                args.xmlid,\n                \"html\",\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n                None\n            )\n        elif args.format == \"html-zip\":\n            # no \"subtree root\" build is possible\n            ptx.html(\n                xml_source,\n                publication_file,\n                stringparams,\n                None,\n                \"zip\",\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n                None\n            )\n        elif args.format == \"html-scorm\":\n            # same as html-zip, but with SCORM manifest\n            ptx.html(\n                xml_source,\n                publication_file,\n                stringparams,\n                None,\n                \"scorm\",\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n                None\n            )\n        elif args.format == \"revealjs\":\n            ptx.revealjs(\n                xml_source,\n                publication_file,\n                stringparams,\n                args.xmlid,\n                \"revealjs\",\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n            )\n        elif args.format == \"pdf\":\n            ptx.pdf(\n                xml_source,\n                publication_file,\n                stringparams,\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n                method,\n                \"pdf-only\",\n            )\n        elif args.format == \"pdf-plus\":\n            ptx.pdf(\n                xml_source,\n                publication_file,\n                stringparams,\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n                method,\n                \"all\",\n            )\n        elif args.format == \"latex\":\n            ptx.latex(\n                xml_source,\n                publication_file,\n                stringparams,\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n            )\n        elif args.format == \"latex-plus\":\n            ptx.pdf(\n                xml_source,\n                publication_file,\n                stringparams,\n                extra_stylesheet,\n                out_file,\n                dest_dir,\n                method,\n                \"prebuild\",\n            )\n        elif args.format == \"braille-emboss\":\n            ptx.braille(xml_source, publication_file, stringparams, out_file, dest_dir, \"emboss\")\n        elif args.format == \"braille-electronic\":\n            ptx.braille(xml_source, publication_file, stringparams, out_file, dest_dir, \"electronic\")\n        elif args.format == \"epub-svg\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"epub\", \"svg\", stringparams)\n        elif args.format == \"epub-mml\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"epub\", \"mml\", stringparams)\n        elif args.format == \"epub-speech\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"epub\", \"speech\", stringparams)\n        elif args.format == \"epub-kindle\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"epub\", \"kindle\", stringparams)\n        elif args.format == \"epub-svg-nozip\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"nozip\", \"svg\", stringparams)\n        elif args.format == \"epub-mml-nozip\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"nozip\", \"mml\", stringparams)\n        elif args.format == \"epub-speech-nozip\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"nozip\", \"speech\", stringparams)\n        elif args.format == \"epub-kindle-nozip\":\n            ptx.epub(xml_source, publication_file, out_file, dest_dir, \"nozip\", \"kindle\", stringparams)\n        elif args.format == \"assembly-static\":\n            ptx.assembly(\n                xml_source, publication_file, stringparams, out_file, dest_dir, \"static\"\n            )\n        elif args.format == \"assembly-dynamic\":\n            ptx.assembly(\n                xml_source,\n                publication_file,\n                stringparams,\n                out_file,\n                dest_dir,\n                \"dynamic\",\n            )\n        elif args.format == \"assembly-pg\":\n            ptx.assembly(\n                xml_source, publication_file, stringparams, out_file, dest_dir, \"pg-problems\"\n            )\n        elif args.format == \"assembly-version\":\n            ptx.assembly(xml_source, publication_file, stringparams, out_file, dest_dir, \"version\" )\n        elif args.format == \"webwork-sets\":\n            ptx.webwork_sets(xml_source, publication_file, stringparams, dest_dir, args.tgz, True)\n        # 2020-05-19 MathBookXMLtoSWS class removed\n        elif args.format == \"sagenb\":\n            raise NotImplementedError(\n                \"conversion to Sage notebook format removed (2020-05-18)\"\n            )\n        # 2020-08-19 Deprecated in favor of -emboss, -electronic\n        elif args.format == \"braille\":\n            raise NotImplementedError(\n                \"'braille' format deprecated (2020-08-19), 'braille-emboss' is replacement\"\n            )\n        else:\n            raise NotImplementedError(\n                'cannot make entire document in \"{}\" format'.format(args.format)\n            )\n    elif args.component == \"images\":\n        ptx.all_images(xml_source, publication_file, stringparams, args.xmlid)\n    # 2020-05-19 tikz_conversion() function removed\n    elif args.component == \"tikz\":\n        raise NotImplementedError(\n            'conversion of TikZ pictures has been subsumed into the \"latex-image\" component (2020-05-19)'\n        )\n    else:\n        raise ValueError(\n            'the \"{}\" component is not a conversion option'.format(args.component)\n        )\n\n    # Cleanup, if execution does not raise errors\n    ptx.release_temporary_directories()\n\n\n# Do it - lone top-level command\nmain()\n"
  },
  {
    "path": "pretext/pretext.cfg",
    "content": "# Configuration file for PreTeXt's \"pretext\" script\n\n# **********************************************************************\n# Copyright 2014 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n# ***********************************************************************\n\n# ***********************************************************************\n#                       DO NOT EDIT THIS FILE\n#\n#   IT WILL BE OVERWRITTEN WITH UPDATES AND YOUR CHANGES WILL BE LOST\n#\n# Instead, make a copy as  pretext/user/pretext.cfg\n# (Create the  user  directory at the same level as the pretext/pretext directory)\n# And perhaps delete/replace this notice, as it may confuse you.\n# Only the options needing changes need to be listed in custom version.\n# Once you make a copy, you will need to add new configuration items\n# \"by hand\", which is why there is a history of changes below.\n# ***********************************************************************\n\n# History\n#\n# 2015-12-20  Initiated history to track changes, additions, removals\n# 2016-05-06  Added pdfcrop executable line\n# 2018-04-27  Added pageres executable line\n# 2020-05-21  Rename:  script/mbx.cfg => pretext/pretext.cfg\n# 2020-06-12  Added mathjax \"mjpage\" node.js script\n# 2020-06-12  Added \"liblouis\" file2brl executable\n# 2020-07-07  Replaced pdfcrop with pdf-crop-margins\n# 2020-07-22  Remove \"xslt\" key (xsltproc executable) dependency\n# 2020-08-08  Remove \"mjpage\" key\n# 2020-08-08  Added \"node\" key\n# 2022-01-31  Deprecated 'tex' key gracefully\n# 2022-01-31  Added 'latex', 'pdflatex', 'xelatex' keys\n# 2022-06-17  PDFCropMargins via a Python package,\n#             \"pdfcrop\" key is only useful for options\n# 2022-06-24  Remove use of \"pdfcrop\" for options\n# 2022-06-28  Remove pageres key, in favor of pyppeteer package\n# 2024-06-30  Remove pdfsvg key, in favor of pyMuPDF library\n# 2025-01-03  Remove pdfpng key, in favor of pyMuPDF library\n# 2025-05-29  Added perl executable line\n\n\n[executables]\nlatex = latex\npdflatex = pdflatex\nxelatex = xelatex\nasy = asy\nmermaid = mmdc\nsage = sage\npdfeps = pdftops\nnode = node\nliblouis = file2brl\nperl = perl\n"
  },
  {
    "path": "pretext/requirements.txt",
    "content": "# Python packages to be installed by pip.\n# From this folder, run `pip install` to ensure all the following are installed.\n\ncoloraide\nlxml\npdfCropMargins >= 1.0.9, < 1.1\nplaywright\nPyPDF2 >= 2.5, <2.6\npyMuPDF\nqrcode\nrequests\n"
  },
  {
    "path": "release-notes.md",
    "content": "===========================\nRelease Notes, MathBook XML\n===========================\n\n----------------\n0.03, 2016/04/23\n----------------\n\n'''''''\nSummary\n'''''''\n * Stable release, many new features\n * LaTeX, HTML conversions stable\n * Preliminary conversions to EPUB, Sage Notebook, SageMathCloud, Jupyter Notebooks\n * DTD (Document Type Definition)\n * More examples (sample book)\n * Author's Guide (documentation)\n * WeBWorK homework problems\n\n'''''''\nChanges\n'''''''\n * Improvements to front matter, back matter\n * Initial support for poetry\n * Improved chunking for all formats\n * Localizations for Portugese, French\n * More flexible cross-references\n * Improvements to mbx script\n * Letter and memo document types\n * Improved program, console, verbatim text\n * Index support for HTML\n * Deprecated: `html.chunk.level` stringparam is now just `chunk.level`\n * Deprecated: ordered lists can no longer have empty levels\n * Deprecated: autonam'ed cross-references no longer have a plural form\n\n----------------\n0.02, 2015/03/18\n----------------\n\n'''''''\nSummary\n'''''''\n * Stable release, many new features, all anticipated deprecations in place\n * Basic or preliminary support for most common document components\n * LaTeX, HTML conversions stable\n * Preliminary conversions to Sage Notebook and SageMathCloud\n\n'''''''\nChanges\n'''''''\n * Variable level chunking for HTML output\n * Improved numbering scheme, with defaults and customization\n * `<exercises>` sections at any level\n * `<references>` sections at any level\n * New Sage cells: display only, straight copy of other cells, practice\n * Basic index functionality for LaTeX output\n * Automatic names in cross-references (optionally)\n * Program listings for a variety of languages\n * Asymptote, Sage graphics support\n * General LaTeX image code support (tikz, pgfplots, etc.)\n * Basic support for Unicode characters\n * `<conclusion>`, just like `<introduction>`\n * Improved author tools\n * Improved Sage doctest creation\n * New front matter sections\n * New exercise groups\n * Localization: Brazilian Portugese\n * Localization: Spanish Spanish\n * Reference autonaming, with localizations\n * Sage worksheet creation, via XSL and Python script\n * SageMathCloud worksheet creation, via pure XSL\n * Greatly revamped HTML output for better navigation\n * Preliminary support for Unicode characters\n * Added contrib directory for user examples\n * Notation lists in back matter\n * Solutions in back matter\n * Greatly improved nested lists\n * Slanted fraction support\n * Images can have descriptions for HTML alt text\n * Side-by-side objects, horizontal layouts\n * SI units formatting support in text\n * User-supplied CSS enabled\n * `<algorithm>` element, like `<theorem>`\n * Tables reimagined, old style no longer supported\n * Deprecated: filebase attribute replaced by xml:id\n * Deprecated: `<cite>`, just use `<xref>` instead\n * Deprecated: `<tikz>`, use `<latex-image-code>`\n * Deprecated: `<paragraph>`, use `<paragraphs>` instead\n * Deprecated: `<tbody>`, `<entry>`, etc, use `<tabular>`, `<cell>`, etc\n\n\n----------------\n0.01, 2014/04/30\n----------------\n\n'''''''\nSummary\n'''''''\n\n * Stable release, but incomplete and subject to change\n"
  },
  {
    "path": "schema/README.md",
    "content": "# PreTeXt RELAX-NG Schema\n\nA RELAX-NG schema is the formal specification of the PreTeXt vocabulary, with additional Schematron rules.  Read the Author's Guide for complete documentation.\n\n## RELAX-NG Grammar\n\n* `pretext.xml`: original version of the RELAX-NG schema, using\n   compact notation, as a PreTeXt literate program.  Submit pull requests\n   against this version only, all the others are derived copies.\n* `pretext.rnc`: direct product from `pretext.xml`, RELAX-NG compact syntax\n* `pretext.rng`: conversion from `pretext.xml` via `trang`, RELAX-NG XML syntax\n* `pretext.xsd`: conversion from `pretext.rng` via `trang`, to W3C XSD syntax,\n   with resultant minor inaccuracies\n\n## Schematron Rules\n\n* `pretext.sch`: original version of Schematron rules\n* `iso_schematron_cli.xsl`: extension using Schematron API.\n  For developer use and requires a copy of the Schematron distribution.\n* `pretext-schematron.xsl`: stylesheet for author use.  Invoke with\n  an xslt processor (e.g. `xsltproc`) on your PreTeXt source to get \n  messages from the Schematron rules.\n\n## Build Script\n\n* `build.sh`: build script for above. Copy and edit local paths,\n  or consult as documentation\n"
  },
  {
    "path": "schema/build.sh",
    "content": "#!/bin/bash\n#\n# ********************************************************************\n# Copyright 2017-2019 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n# *********************************************************************\n#\n# Schema build script\n#\n# History\n#\n#  2017-06-19  Initiated\n#  2017-07-21  For release\n#  2019-05-24  Updates as DocFlex becomes FlexDoc (and v1.12.3)\n#  2020-11-11  FlexDoc v1.12.5\n#  2025-11-12  Removed FlexDoc in favor of Siefken's browser\n\n#  This is designed for use in distributing derived products\n#  from the PreTeXt schema.  So make a copy and adjust paths\n#  to suit your particular purposes.\n\n#  Prerequites\n#\n#  1.  PreTeXt repository (where this file lives)\n#  2.  \"trang\" conversion tool, on your $PATH\n#       a.  \"trang\" package for Debian\n#       b.  \"jing-trang\" package for Ubuntu\n\n# Usage\n#\n# 1.  Assumes  ${PTX}/schema  is current working directory\n# 2.  No arguments, just \"./build.sh\"\n\nshopt -s -o nounset\n\n# ***********\n# Local paths\n# ***********\n\n# PreTeXt distribution\n# Likely \"/path/to/pretext\"\n# RAB's path is historical\ndeclare PTX=${HOME}/mathbook/mathbook\n\n# *************\n# Derived paths\n# *************\n\n# XSL for literate programming tool\ndeclare XSL=${PTX}/xsl\n\n# ******************\n# Grammar generation\n# ******************\n\n# PreTeXt extraction of RELAX-NG compact schema\nxsltproc ${XSL}/pretext-litprog.xsl pretext.xml\n\n# System trang conversion to RELAX-NG XML schema\ntrang -I rnc -O rng pretext.rnc pretext.rng\ntrang -I rnc -O rng pretext-dev.rnc pretext-dev.rng\n\n# System trang conversion to W3C XSD schema\n# \"abstract groups\" make schema browser too obtuse\ntrang -o disable-abstract-elements -I rnc -O xsd pretext.rnc pretext.xsd\n\n# And the same steps for the publication-schema\nxsltproc ${XSL}/pretext-litprog.xsl publication-schema.xml\ntrang -I rnc -O rng publication-schema.rnc publication-schema.rng\ntrang -o disable-abstract-elements -I rnc -O xsd publication-schema.rnc publication-schema.xsd\n\n# exit cleanly\nexit 0\n"
  },
  {
    "path": "schema/pf.xsd",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\" targetNamespace=\"https://prefigure.org\" xmlns:pf=\"https://prefigure.org\">\n  <xs:import schemaLocation=\"pretext.xsd\"/>\n  <xs:import namespace=\"http://www.w3.org/XML/1998/namespace\" schemaLocation=\"xml.xsd\"/>\n  <xs:element name=\"prefigure\">\n    <xs:complexType mixed=\"true\">\n      <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AnyPFContent\"/>\n      <xs:attribute name=\"label\"/>\n    </xs:complexType>\n  </xs:element>\n</xs:schema>\n"
  },
  {
    "path": "schema/pretext-dev.rnc",
    "content": "\n              namespace xhtml = \"http://www.w3.org/1999/xhtml\"\n                grammar {\n\n                include \"pretext.rnc\"\n            \n            Interactive =\n                element interactive {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    attribute aspect { text }?,\n                    attribute width { text }?,\n                    attribute platform { text }?,\n                    attribute preview { text }?,\n                    attribute iframe { text }?,\n                    attribute source { text }?,\n                    attribute version { text }?,\n                    attribute circuitjs { text }?,\n                    attribute calcplot3d { text }?,\n                    attribute variant { text }?,\n                    attribute dark-mode-enabled { text }?,\n                    attribute resize-behavior { text }?,\n                    (\n                      ImageShortDescription? &\n                      ImageDescription? &\n                      (\n                        Slate |\n                        SideBySideNoCaption |\n                        SideBySideGroupNoCaption\n                      )* &\n                      element instructions { mixed { MetaDataTitleOptional, BlockText } }? &\n                      element static { Image }?\n                    )\n\n                }\n\n            Stack |=\n                element stack {\n                    (\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Slate\n                    )+\n                }\n\n            Slate =\n                element slate {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    (\n                      JessieCodeAtt |\n                      (\n                        attribute surface { text },\n                        (\n                          attribute source { text } |\n                          attribute material { text }\n                        )?,\n                        attribute aspect { text }?,\n                        (\n                          Paragraph |\n                          Tabular |\n                          SideBySideNoCaption |\n                          SlateInput |\n                          element xhtml:button {\n                            attribute type { text },\n                            attribute id { text },\n                            text*\n                          }? |\n                          text*\n                        )*\n                      )\n                    )\n                }\n\n              JessieCodeAtt =\n                attribute surface {\"jessiecode\"},\n                attribute axis {\"true\" | \"false\"}?,\n                attribute grid {\"true\" | \"false\"}?,\n                (\n                  attribute source {text} |\n                  text*\n                )\n\n              SlateInput =\n                element input {\n                  attribute type {text}?,\n                  attribute value {text}?,\n                  attribute onkeypress {text}?,\n                  attribute onclick {text}?,\n                  attribute style {text}?\n                }\n\n            # add Interactives where used\n            BlockStatement |= Interactive\n\n            Figure |= element figure { MetaDataCaption, Interactive }\n\n            SideBySide |= element sidebyside {\n                SidebySideAttributes,\n                (Interactive | Slate)+\n            }\n\n            SideBySideNoCaption |= element sidebyside {\n                SidebySideAttributes,\n                (Interactive | Slate)+\n            }\n\n            Exercises |= element exercises {\n                MetaDataAltTitleOptional,\n                IntroductionDivision?,\n                (\n                (Exercise | ExerciseGroup)+ |\n                Subexercises+ | Interactive\n                ),\n                ConclusionDivision?\n            }\n            \n            ShortLicense_X =\n                element shortlicense {\n                    TextLong &\n                    Footnote*\n                }\n            ShortLicense |= ShortLicense_X\n            Website_X = element website {\n                element name {TextShort},\n                element address {text}\n            }\n            Website |= Website_X\n            \n            Configuration |=\n                element blurb {\n                    attribute shelf {text},\n                    text\n                }\n            \n            Configuration |=\n                element document-id {\n                    attribute edition {text}?,\n                    text\n                }\n            \n            ProofLike =\n                MetaDataTitleOptional,\n                (BlockStatement | Case)+\n            Proof |=\n                element proof {ProofLike} |\n                element argument {ProofLike} |\n                element justification {ProofLike} |\n                element reasoning {ProofLike} |\n                element explanation {ProofLike}\n            \n            Figure |=\n                element figure {\n                    MetaDataCaption,\n                    Tabular\n                }\n\n            \n            # Main handout definition\n            Handout =\n                element handout {\n                    PrintoutAttributes,\n                    MetaDataAltTitleOptional,\n                    (Objectives? & IntroductionDivision?),\n                    (Page+ | PrintoutBlock+),\n                    (Outcomes? & ConclusionDivision?)\n                }\n            # Add Handout to Printout options\n            Printout |=\n                Handout\n            \n            Solutions |=\n                element solutions {\n                    MetaDataAltTitleOptional,\n                    attribute inline {text}?,\n                    attribute divisional {text}?,\n                    attribute project {text}?,\n                    attribute worksheet {text}?,\n                    attribute reading {text}?,\n                    attribute scope {text}?,\n                    attribute admit {\"all\"|\"odd\"|\"even\"}?,\n                    IntroductionDivision?,\n                    ConclusionDivision?\n                }\n            \n            MyOpenMath =\n                MetaDataTitleOptional,\n                IntroductionText?,\n                element myopenmath {\n                    attribute problem {text},\n                    attribute params {text}?\n                },\n                ConclusionText?\n            TrueFalse =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                element statement {\n                    attribute correct {\"yes\"|\"no\"},\n                    Paragraph\n                },\n                Feedback?, Hint*, Answer*, Solution*\n            MultipleChoice =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                element choices {\n                    attribute randomize {\"yes\"|\"no\"}?,\n                    Choice+\n                },\n                Hint*, Answer*, Solution*\n            Choice =\n                element choice {\n                    attribute correct {\"yes\"|\"no\"}?,\n                    ((mixed {BlockText?})\n                    | (StatementExercise, Feedback?))\n                }\n            Parsons =\n                    MetaDataTitleOptional,\n                    attribute number {text}?,\n                    attribute language {text}?,\n                    attribute adaptive {\"yes\"|\"no\"}?,\n                    attribute indentation {text}?,\n                    StatementExercise,\n                    element blocks {\n                        attribute layout {\"horizontal\"}?,\n                        attribute randomize {\"yes\"|\"no\"}?,\n                        Block+\n                    },\n                    Hint*, Answer*, Solution*,\n                    (\n                        element preamble {\n                            attribute indent {text}?,\n                            text\n                        }?,\n                        Program,\n                        element postamble {\n                            attribute indent {text}?,\n                            text\n                        }?\n                    )?\n            Block =\n                element block {\n                    attribute order {xsd:integer}?,\n                    ((\n                        attribute correct {\"yes\"|\"no\"}?,\n                        mixed {BlockText?, CodeLine?}+\n                    ) |\n                    (\n                        element choice {\n                            attribute correct {\"yes\"|\"no\"}?,\n                            mixed {BlockText?, CodeLine?}+\n                        }+\n                    ))\n                }\n            Matching =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Feedback?,\n                Matches,\n                Hint*, Answer*, Solution*\n            Matches = (\n                element cardsort {\n                    Match+\n                } |\n                element matching {\n                    element premise {\n                        attribute ref {text}?,\n                        TextLong\n                    }+,\n                    element response {\n                        UniqueID,\n                        attribute order {xsd:integer}?,\n                        TextLong\n                    }+\n                })\n            Match =\n                element match {\n                    element premise {\n                        attribute order {xsd:integer}?,\n                        TextLong\n                    }+,\n                    element response {\n                        TextLong\n                    }\n                }\n            FreeResponse =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                attribute attachment {\"yes\" | \"no\"}?,\n                (\n                (ExerciseBody, Response?) |\n                (StatementExercise, Response?, Hint*, Answer*, Solution*) |\n                (IntroductionStatement?, Task+, ConclusionStatement?)\n                )\n            Response =\n                element response {empty}\n\n\n            # Selectable areas\n            Area =\n                element area {\n                    attribute correct {\"yes\"|\"no\"}?,\n                    TextLong\n                }\n            TextLongAreas =  mixed { (\n                  Area |\n                  Character |\n                  Generator |\n                  Verbatim |\n                  GroupAreas |\n                  MathInline |\n                  Music |\n                  Reference |\n                  WWVariable)* }\n            GroupAreas |=\n                element q {TextLongAreas} |\n                element sq {TextLongAreas}\n            TextParagraphAreas = mixed { (\n              Character |\n              Generator |\n              Verbatim |\n              Group |\n              WWVariable |\n              MathInline |\n              Music |\n              Reference |\n              CodeDisplay |\n              MathDisplay |\n              List |\n              Footnote |\n              Notation |\n              Index |\n              Area |\n              GroupAreas)* }\n            ParagraphAreas =\n                element p {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    TextParagraphAreas\n                }\n            Areas =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Feedback?,\n                element areas {\n                  ParagraphAreas+\n                },\n                Hint*, Answer*, Solution*\n\n            # General feedback element\n            Feedback =\n                element feedback {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            # Fill-in-the-blank exercises (new-style evaluation)\n            FillInBlank =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Evaluation,\n                Hint*, Answer*, Solution*\n            Evaluation =\n                element evaluation {\n                    attribute answers-coupled {\"yes\"|\"no\"}?,\n                    Evaluate+\n                }\n            Evaluate =\n                element evaluate {\n                    attribute name {text}?,\n                    attribute submit {text}?,\n                    attribute all {\"yes\"|\"no\"}?,\n                    FITBTest+\n                }\n            FITBTest =\n                element test {\n                    attribute correct {\"yes\"|\"no\"}?,\n                    FITBComparison,\n                    Feedback?\n                }\n            FITBComparison =\n                FITBNumcmp | FITBStrcmp | FITBJscmp | FITBMathcmp | FITBLogic\n            FITBNumcmp =\n                element numcmp {\n                    attribute use-answer {\"yes\"|\"no\"}?,\n                    attribute value {text}?,\n                    attribute tolerance {text}?,\n                    attribute min {text}?,\n                    attribute max {text}?,\n                    attribute object {text}?\n                }\n            FITBStrcmp =\n                element strcmp {\n                    attribute use-answer {\"yes\"|\"no\"}?,\n                    attribute case {\"insensitive\"}?,\n                    attribute strip {\"no\"}?,\n                    text\n                }\n            FITBJscmp =\n                element jscmp {\n                    text\n                }\n            FITBMathcmp =\n                element mathcmp {\n                    attribute obj {text}?,\n                    mixed {AnyElement*}\n                }\n            FITBLogic =\n                element logic {\n                    attribute op {\"and\"|\"or\"|\"not\"},\n                    (FITBComparison)+\n                }\n            AnyElement =\n                element * {\n                    attribute * {text}*,\n                    mixed {AnyElement*}\n                }\n            # Extended fillin with interactive attributes\n            FillIn |=\n                element fillin {\n                    attribute characters {xsd:integer}?,\n                    attribute cols {xsd:integer}?,\n                    attribute rows {xsd:integer}?,\n                    attribute width {text}?,\n                    attribute answer {text}?,\n                    attribute mode {\"string\"|\"number\"|\"math\"}?,\n                    attribute name {text}?,\n                    attribute ansobj {text}?,\n                    attribute fill {text}?\n                }\n\n            # Datafile element for student data\n            Datafile =\n                element datafile {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    attribute filename {text},\n                    attribute rows {xsd:integer}?,\n                    attribute cols {xsd:integer}?,\n                    attribute editable {\"yes\"|\"no\"}?,\n                    attribute include-source {\"yes\"|\"no\"}?,\n                    (\n                        element pre {\n                            attribute source {text}?,\n                            text\n                        } |\n                        Image\n                    )\n                }\n            BlockStatement |= Datafile\n\n            # Query (poll/survey) element\n            Query =\n                element query {\n                    LabelID?,\n                    attribute scale {xsd:integer}?,\n                    StatementExercise,\n                    element choices {\n                        Choice+\n                    }?\n                }\n            BlockStatement |= Query\n\n            # Coding exercise: an interactive program (typically\n            # activecode) whose \"tests\" hold unit tests\n            CodingExercise =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Program,\n                Hint*, Answer*, Solution*\n            # Include all exercise types in exercise and activity\n            Exercise |=\n                element exercise {\n                    attribute workspace {text}?,\n                    (\n                    MyOpenMath |\n                    TrueFalse |\n                    MultipleChoice |\n                    Parsons |\n                    Matching |\n                    FreeResponse |\n                    FillInBlank |\n                    Areas |\n                    CodingExercise\n                    )\n                }\n            # STACK assessment exercise type\n            Exercise |=\n                element exercise {\n                    MetaDataTitleOptional,\n                    IntroductionStatement?,\n                    element stack {\n                        LabelID?,\n                        attribute source {text}?\n                    },\n                    ConclusionStatement?\n                }\n            ProjectLike |=\n                MyOpenMath |\n                TrueFalse |\n                MultipleChoice |\n                Parsons |\n                Matching |\n                FreeResponse |\n                FillInBlank |\n                Areas\n            \n                }\n            "
  },
  {
    "path": "schema/pretext-dev.rng",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<grammar xmlns:xhtml=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://relaxng.org/ns/structure/1.0\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\">\n  <include href=\"pretext.rng\"/>\n  <define name=\"Interactive\">\n    <element name=\"interactive\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"aspect\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"platform\"/>\n      </optional>\n      <optional>\n        <attribute name=\"preview\"/>\n      </optional>\n      <optional>\n        <attribute name=\"iframe\"/>\n      </optional>\n      <optional>\n        <attribute name=\"source\"/>\n      </optional>\n      <optional>\n        <attribute name=\"version\"/>\n      </optional>\n      <optional>\n        <attribute name=\"circuitjs\"/>\n      </optional>\n      <optional>\n        <attribute name=\"calcplot3d\"/>\n      </optional>\n      <optional>\n        <attribute name=\"variant\"/>\n      </optional>\n      <optional>\n        <attribute name=\"dark-mode-enabled\"/>\n      </optional>\n      <optional>\n        <attribute name=\"resize-behavior\"/>\n      </optional>\n      <interleave>\n        <optional>\n          <ref name=\"ImageShortDescription\"/>\n        </optional>\n        <optional>\n          <ref name=\"ImageDescription\"/>\n        </optional>\n        <zeroOrMore>\n          <choice>\n            <ref name=\"Slate\"/>\n            <ref name=\"SideBySideNoCaption\"/>\n            <ref name=\"SideBySideGroupNoCaption\"/>\n          </choice>\n        </zeroOrMore>\n        <optional>\n          <element name=\"instructions\">\n            <mixed>\n              <ref name=\"MetaDataTitleOptional\"/>\n              <ref name=\"BlockText\"/>\n            </mixed>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"static\">\n            <ref name=\"Image\"/>\n          </element>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Stack\" combine=\"choice\">\n    <element name=\"stack\">\n      <oneOrMore>\n        <choice>\n          <ref name=\"Tabular\"/>\n          <ref name=\"Image\"/>\n          <ref name=\"Video\"/>\n          <ref name=\"Program\"/>\n          <ref name=\"Console\"/>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"Preformatted\"/>\n          <ref name=\"List\"/>\n          <ref name=\"Slate\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Slate\">\n    <element name=\"slate\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <choice>\n        <ref name=\"JessieCodeAtt\"/>\n        <group>\n          <attribute name=\"surface\"/>\n          <optional>\n            <choice>\n              <attribute name=\"source\"/>\n              <attribute name=\"material\"/>\n            </choice>\n          </optional>\n          <optional>\n            <attribute name=\"aspect\"/>\n          </optional>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Paragraph\"/>\n              <ref name=\"Tabular\"/>\n              <ref name=\"SideBySideNoCaption\"/>\n              <ref name=\"SlateInput\"/>\n              <optional>\n                <element name=\"xhtml:button\">\n                  <attribute name=\"type\"/>\n                  <attribute name=\"id\"/>\n                  <zeroOrMore>\n                    <text/>\n                  </zeroOrMore>\n                </element>\n              </optional>\n              <zeroOrMore>\n                <text/>\n              </zeroOrMore>\n            </choice>\n          </zeroOrMore>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"JessieCodeAtt\">\n    <attribute name=\"surface\">\n      <value>jessiecode</value>\n    </attribute>\n    <optional>\n      <attribute name=\"axis\">\n        <choice>\n          <value>true</value>\n          <value>false</value>\n        </choice>\n      </attribute>\n    </optional>\n    <optional>\n      <attribute name=\"grid\">\n        <choice>\n          <value>true</value>\n          <value>false</value>\n        </choice>\n      </attribute>\n    </optional>\n    <choice>\n      <attribute name=\"source\"/>\n      <zeroOrMore>\n        <text/>\n      </zeroOrMore>\n    </choice>\n  </define>\n  <define name=\"SlateInput\">\n    <element name=\"input\">\n      <optional>\n        <attribute name=\"type\"/>\n      </optional>\n      <optional>\n        <attribute name=\"value\"/>\n      </optional>\n      <optional>\n        <attribute name=\"onkeypress\"/>\n      </optional>\n      <optional>\n        <attribute name=\"onclick\"/>\n      </optional>\n      <optional>\n        <attribute name=\"style\"/>\n      </optional>\n    </element>\n  </define>\n  <!-- add Interactives where used -->\n  <define name=\"BlockStatement\" combine=\"choice\">\n    <ref name=\"Interactive\"/>\n  </define>\n  <define name=\"Figure\" combine=\"choice\">\n    <element name=\"figure\">\n      <ref name=\"MetaDataCaption\"/>\n      <ref name=\"Interactive\"/>\n    </element>\n  </define>\n  <define name=\"SideBySide\" combine=\"choice\">\n    <element name=\"sidebyside\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Interactive\"/>\n          <ref name=\"Slate\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SideBySideNoCaption\" combine=\"choice\">\n    <element name=\"sidebyside\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Interactive\"/>\n          <ref name=\"Slate\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Exercises\" combine=\"choice\">\n    <element name=\"exercises\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <choice>\n        <oneOrMore>\n          <choice>\n            <ref name=\"Exercise\"/>\n            <ref name=\"ExerciseGroup\"/>\n          </choice>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"Subexercises\"/>\n        </oneOrMore>\n        <ref name=\"Interactive\"/>\n      </choice>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"ShortLicense_X\">\n    <element name=\"shortlicense\">\n      <interleave>\n        <ref name=\"TextLong\"/>\n        <zeroOrMore>\n          <ref name=\"Footnote\"/>\n        </zeroOrMore>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"ShortLicense\" combine=\"choice\">\n    <ref name=\"ShortLicense_X\"/>\n  </define>\n  <define name=\"Website_X\">\n    <element name=\"website\">\n      <element name=\"name\">\n        <ref name=\"TextShort\"/>\n      </element>\n      <element name=\"address\">\n        <text/>\n      </element>\n    </element>\n  </define>\n  <define name=\"Website\" combine=\"choice\">\n    <ref name=\"Website_X\"/>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"blurb\">\n      <attribute name=\"shelf\"/>\n      <text/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"document-id\">\n      <optional>\n        <attribute name=\"edition\"/>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"ProofLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <oneOrMore>\n      <choice>\n        <ref name=\"BlockStatement\"/>\n        <ref name=\"Case\"/>\n      </choice>\n    </oneOrMore>\n  </define>\n  <define name=\"Proof\" combine=\"choice\">\n    <choice>\n      <element name=\"proof\">\n        <ref name=\"ProofLike\"/>\n      </element>\n      <element name=\"argument\">\n        <ref name=\"ProofLike\"/>\n      </element>\n      <element name=\"justification\">\n        <ref name=\"ProofLike\"/>\n      </element>\n      <element name=\"reasoning\">\n        <ref name=\"ProofLike\"/>\n      </element>\n      <element name=\"explanation\">\n        <ref name=\"ProofLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Figure\" combine=\"choice\">\n    <element name=\"figure\">\n      <ref name=\"MetaDataCaption\"/>\n      <ref name=\"Tabular\"/>\n    </element>\n  </define>\n  <!-- Main handout definition -->\n  <define name=\"Handout\">\n    <element name=\"handout\">\n      <ref name=\"PrintoutAttributes\"/>\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <interleave>\n        <optional>\n          <ref name=\"Objectives\"/>\n        </optional>\n        <optional>\n          <ref name=\"IntroductionDivision\"/>\n        </optional>\n      </interleave>\n      <choice>\n        <oneOrMore>\n          <ref name=\"Page\"/>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"PrintoutBlock\"/>\n        </oneOrMore>\n      </choice>\n      <interleave>\n        <optional>\n          <ref name=\"Outcomes\"/>\n        </optional>\n        <optional>\n          <ref name=\"ConclusionDivision\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <!-- Add Handout to Printout options -->\n  <define name=\"Printout\" combine=\"choice\">\n    <ref name=\"Handout\"/>\n  </define>\n  <define name=\"Solutions\" combine=\"choice\">\n    <element name=\"solutions\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <attribute name=\"inline\"/>\n      </optional>\n      <optional>\n        <attribute name=\"divisional\"/>\n      </optional>\n      <optional>\n        <attribute name=\"project\"/>\n      </optional>\n      <optional>\n        <attribute name=\"worksheet\"/>\n      </optional>\n      <optional>\n        <attribute name=\"reading\"/>\n      </optional>\n      <optional>\n        <attribute name=\"scope\"/>\n      </optional>\n      <optional>\n        <attribute name=\"admit\">\n          <choice>\n            <value>all</value>\n            <value>odd</value>\n            <value>even</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"MyOpenMath\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <ref name=\"IntroductionText\"/>\n    </optional>\n    <element name=\"myopenmath\">\n      <attribute name=\"problem\"/>\n      <optional>\n        <attribute name=\"params\"/>\n      </optional>\n    </element>\n    <optional>\n      <ref name=\"ConclusionText\"/>\n    </optional>\n  </define>\n  <define name=\"TrueFalse\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <element name=\"statement\">\n      <attribute name=\"correct\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n      <ref name=\"Paragraph\"/>\n    </element>\n    <optional>\n      <ref name=\"Feedback\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MultipleChoice\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <ref name=\"StatementExercise\"/>\n    <element name=\"choices\">\n      <optional>\n        <attribute name=\"randomize\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Choice\"/>\n      </oneOrMore>\n    </element>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"Choice\">\n    <element name=\"choice\">\n      <optional>\n        <attribute name=\"correct\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <choice>\n        <mixed>\n          <optional>\n            <ref name=\"BlockText\"/>\n          </optional>\n        </mixed>\n        <group>\n          <ref name=\"StatementExercise\"/>\n          <optional>\n            <ref name=\"Feedback\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Parsons\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <optional>\n      <attribute name=\"language\"/>\n    </optional>\n    <optional>\n      <attribute name=\"adaptive\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </optional>\n    <optional>\n      <attribute name=\"indentation\"/>\n    </optional>\n    <ref name=\"StatementExercise\"/>\n    <element name=\"blocks\">\n      <optional>\n        <attribute name=\"layout\">\n          <value>horizontal</value>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"randomize\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Block\"/>\n      </oneOrMore>\n    </element>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n    <optional>\n      <optional>\n        <element name=\"preamble\">\n          <optional>\n            <attribute name=\"indent\"/>\n          </optional>\n          <text/>\n        </element>\n      </optional>\n      <ref name=\"Program\"/>\n      <optional>\n        <element name=\"postamble\">\n          <optional>\n            <attribute name=\"indent\"/>\n          </optional>\n          <text/>\n        </element>\n      </optional>\n    </optional>\n  </define>\n  <define name=\"Block\">\n    <element name=\"block\">\n      <optional>\n        <attribute name=\"order\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <choice>\n        <group>\n          <optional>\n            <attribute name=\"correct\">\n              <choice>\n                <value>yes</value>\n                <value>no</value>\n              </choice>\n            </attribute>\n          </optional>\n          <oneOrMore>\n            <mixed>\n              <optional>\n                <ref name=\"BlockText\"/>\n              </optional>\n              <optional>\n                <ref name=\"CodeLine\"/>\n              </optional>\n            </mixed>\n          </oneOrMore>\n        </group>\n        <oneOrMore>\n          <element name=\"choice\">\n            <optional>\n              <attribute name=\"correct\">\n                <choice>\n                  <value>yes</value>\n                  <value>no</value>\n                </choice>\n              </attribute>\n            </optional>\n            <oneOrMore>\n              <mixed>\n                <optional>\n                  <ref name=\"BlockText\"/>\n                </optional>\n                <optional>\n                  <ref name=\"CodeLine\"/>\n                </optional>\n              </mixed>\n            </oneOrMore>\n          </element>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Matching\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <ref name=\"StatementExercise\"/>\n    <optional>\n      <ref name=\"Feedback\"/>\n    </optional>\n    <ref name=\"Matches\"/>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"Matches\">\n    <choice>\n      <element name=\"cardsort\">\n        <oneOrMore>\n          <ref name=\"Match\"/>\n        </oneOrMore>\n      </element>\n      <element name=\"matching\">\n        <oneOrMore>\n          <element name=\"premise\">\n            <optional>\n              <attribute name=\"ref\"/>\n            </optional>\n            <ref name=\"TextLong\"/>\n          </element>\n        </oneOrMore>\n        <oneOrMore>\n          <element name=\"response\">\n            <ref name=\"UniqueID\"/>\n            <optional>\n              <attribute name=\"order\">\n                <data type=\"integer\"/>\n              </attribute>\n            </optional>\n            <ref name=\"TextLong\"/>\n          </element>\n        </oneOrMore>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Match\">\n    <element name=\"match\">\n      <oneOrMore>\n        <element name=\"premise\">\n          <optional>\n            <attribute name=\"order\">\n              <data type=\"integer\"/>\n            </attribute>\n          </optional>\n          <ref name=\"TextLong\"/>\n        </element>\n      </oneOrMore>\n      <element name=\"response\">\n        <ref name=\"TextLong\"/>\n      </element>\n    </element>\n  </define>\n  <define name=\"FreeResponse\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <optional>\n      <attribute name=\"attachment\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </optional>\n    <choice>\n      <group>\n        <ref name=\"ExerciseBody\"/>\n        <optional>\n          <ref name=\"Response\"/>\n        </optional>\n      </group>\n      <group>\n        <ref name=\"StatementExercise\"/>\n        <optional>\n          <ref name=\"Response\"/>\n        </optional>\n        <zeroOrMore>\n          <ref name=\"Hint\"/>\n        </zeroOrMore>\n        <zeroOrMore>\n          <ref name=\"Answer\"/>\n        </zeroOrMore>\n        <zeroOrMore>\n          <ref name=\"Solution\"/>\n        </zeroOrMore>\n      </group>\n      <group>\n        <optional>\n          <ref name=\"IntroductionStatement\"/>\n        </optional>\n        <oneOrMore>\n          <ref name=\"Task\"/>\n        </oneOrMore>\n        <optional>\n          <ref name=\"ConclusionStatement\"/>\n        </optional>\n      </group>\n    </choice>\n  </define>\n  <define name=\"Response\">\n    <element name=\"response\">\n      <empty/>\n    </element>\n  </define>\n  <!-- Selectable areas -->\n  <define name=\"Area\">\n    <element name=\"area\">\n      <optional>\n        <attribute name=\"correct\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"TextLongAreas\">\n    <mixed>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"Area\"/>\n          <ref name=\"Character\"/>\n          <ref name=\"Generator\"/>\n          <ref name=\"Verbatim\"/>\n          <ref name=\"GroupAreas\"/>\n          <ref name=\"MathInline\"/>\n          <ref name=\"Music\"/>\n          <ref name=\"Reference\"/>\n          <ref name=\"WWVariable\"/>\n        </choice>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"GroupAreas\" combine=\"choice\">\n    <choice>\n      <element name=\"q\">\n        <ref name=\"TextLongAreas\"/>\n      </element>\n      <element name=\"sq\">\n        <ref name=\"TextLongAreas\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"TextParagraphAreas\">\n    <mixed>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"Character\"/>\n          <ref name=\"Generator\"/>\n          <ref name=\"Verbatim\"/>\n          <ref name=\"Group\"/>\n          <ref name=\"WWVariable\"/>\n          <ref name=\"MathInline\"/>\n          <ref name=\"Music\"/>\n          <ref name=\"Reference\"/>\n          <ref name=\"CodeDisplay\"/>\n          <ref name=\"MathDisplay\"/>\n          <ref name=\"List\"/>\n          <ref name=\"Footnote\"/>\n          <ref name=\"Notation\"/>\n          <ref name=\"Index\"/>\n          <ref name=\"Area\"/>\n          <ref name=\"GroupAreas\"/>\n        </choice>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"ParagraphAreas\">\n    <element name=\"p\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <ref name=\"TextParagraphAreas\"/>\n    </element>\n  </define>\n  <define name=\"Areas\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <ref name=\"StatementExercise\"/>\n    <optional>\n      <ref name=\"Feedback\"/>\n    </optional>\n    <element name=\"areas\">\n      <oneOrMore>\n        <ref name=\"ParagraphAreas\"/>\n      </oneOrMore>\n    </element>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n  </define>\n  <!-- General feedback element -->\n  <define name=\"Feedback\">\n    <element name=\"feedback\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"BlockSolution\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <!-- Fill-in-the-blank exercises (new-style evaluation) -->\n  <define name=\"FillInBlank\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <ref name=\"StatementExercise\"/>\n    <ref name=\"Evaluation\"/>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"Evaluation\">\n    <element name=\"evaluation\">\n      <optional>\n        <attribute name=\"answers-coupled\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Evaluate\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Evaluate\">\n    <element name=\"evaluate\">\n      <optional>\n        <attribute name=\"name\"/>\n      </optional>\n      <optional>\n        <attribute name=\"submit\"/>\n      </optional>\n      <optional>\n        <attribute name=\"all\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <oneOrMore>\n        <ref name=\"FITBTest\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"FITBTest\">\n    <element name=\"test\">\n      <optional>\n        <attribute name=\"correct\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <ref name=\"FITBComparison\"/>\n      <optional>\n        <ref name=\"Feedback\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"FITBComparison\">\n    <choice>\n      <ref name=\"FITBNumcmp\"/>\n      <ref name=\"FITBStrcmp\"/>\n      <ref name=\"FITBJscmp\"/>\n      <ref name=\"FITBMathcmp\"/>\n      <ref name=\"FITBLogic\"/>\n    </choice>\n  </define>\n  <define name=\"FITBNumcmp\">\n    <element name=\"numcmp\">\n      <optional>\n        <attribute name=\"use-answer\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"value\"/>\n      </optional>\n      <optional>\n        <attribute name=\"tolerance\"/>\n      </optional>\n      <optional>\n        <attribute name=\"min\"/>\n      </optional>\n      <optional>\n        <attribute name=\"max\"/>\n      </optional>\n      <optional>\n        <attribute name=\"object\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"FITBStrcmp\">\n    <element name=\"strcmp\">\n      <optional>\n        <attribute name=\"use-answer\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"case\">\n          <value>insensitive</value>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"strip\">\n          <value>no</value>\n        </attribute>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"FITBJscmp\">\n    <element name=\"jscmp\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"FITBMathcmp\">\n    <element name=\"mathcmp\">\n      <optional>\n        <attribute name=\"obj\"/>\n      </optional>\n      <mixed>\n        <zeroOrMore>\n          <ref name=\"AnyElement\"/>\n        </zeroOrMore>\n      </mixed>\n    </element>\n  </define>\n  <define name=\"FITBLogic\">\n    <element name=\"logic\">\n      <attribute name=\"op\">\n        <choice>\n          <value>and</value>\n          <value>or</value>\n          <value>not</value>\n        </choice>\n      </attribute>\n      <oneOrMore>\n        <ref name=\"FITBComparison\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"AnyElement\">\n    <element>\n      <anyName/>\n      <zeroOrMore>\n        <attribute>\n          <anyName/>\n        </attribute>\n      </zeroOrMore>\n      <mixed>\n        <zeroOrMore>\n          <ref name=\"AnyElement\"/>\n        </zeroOrMore>\n      </mixed>\n    </element>\n  </define>\n  <!-- Extended fillin with interactive attributes -->\n  <define name=\"FillIn\" combine=\"choice\">\n    <element name=\"fillin\">\n      <optional>\n        <attribute name=\"characters\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"cols\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"rows\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"answer\"/>\n      </optional>\n      <optional>\n        <attribute name=\"mode\">\n          <choice>\n            <value>string</value>\n            <value>number</value>\n            <value>math</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"name\"/>\n      </optional>\n      <optional>\n        <attribute name=\"ansobj\"/>\n      </optional>\n      <optional>\n        <attribute name=\"fill\"/>\n      </optional>\n    </element>\n  </define>\n  <!-- Datafile element for student data -->\n  <define name=\"Datafile\">\n    <element name=\"datafile\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <attribute name=\"filename\"/>\n      <optional>\n        <attribute name=\"rows\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"cols\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"editable\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"include-source\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <choice>\n        <element name=\"pre\">\n          <optional>\n            <attribute name=\"source\"/>\n          </optional>\n          <text/>\n        </element>\n        <ref name=\"Image\"/>\n      </choice>\n    </element>\n  </define>\n  <define name=\"BlockStatement\" combine=\"choice\">\n    <ref name=\"Datafile\"/>\n  </define>\n  <!-- Query (poll/survey) element -->\n  <define name=\"Query\">\n    <element name=\"query\">\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <attribute name=\"scale\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <ref name=\"StatementExercise\"/>\n      <optional>\n        <element name=\"choices\">\n          <oneOrMore>\n            <ref name=\"Choice\"/>\n          </oneOrMore>\n        </element>\n      </optional>\n    </element>\n  </define>\n  <define name=\"BlockStatement\" combine=\"choice\">\n    <ref name=\"Query\"/>\n  </define>\n  <!--\n    Coding exercise: an interactive program (typically\n    activecode) whose \"tests\" hold unit tests\n  -->\n  <define name=\"CodingExercise\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <optional>\n      <attribute name=\"number\"/>\n    </optional>\n    <ref name=\"StatementExercise\"/>\n    <ref name=\"Program\"/>\n    <zeroOrMore>\n      <ref name=\"Hint\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Answer\"/>\n    </zeroOrMore>\n    <zeroOrMore>\n      <ref name=\"Solution\"/>\n    </zeroOrMore>\n  </define>\n  <!-- Include all exercise types in exercise and activity -->\n  <define name=\"Exercise\" combine=\"choice\">\n    <element name=\"exercise\">\n      <optional>\n        <attribute name=\"workspace\"/>\n      </optional>\n      <choice>\n        <ref name=\"MyOpenMath\"/>\n        <ref name=\"TrueFalse\"/>\n        <ref name=\"MultipleChoice\"/>\n        <ref name=\"Parsons\"/>\n        <ref name=\"Matching\"/>\n        <ref name=\"FreeResponse\"/>\n        <ref name=\"FillInBlank\"/>\n        <ref name=\"Areas\"/>\n        <ref name=\"CodingExercise\"/>\n      </choice>\n    </element>\n  </define>\n  <!-- STACK assessment exercise type -->\n  <define name=\"Exercise\" combine=\"choice\">\n    <element name=\"exercise\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionStatement\"/>\n      </optional>\n      <element name=\"stack\">\n        <optional>\n          <ref name=\"LabelID\"/>\n        </optional>\n        <optional>\n          <attribute name=\"source\"/>\n        </optional>\n      </element>\n      <optional>\n        <ref name=\"ConclusionStatement\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"ProjectLike\" combine=\"choice\">\n    <choice>\n      <ref name=\"MyOpenMath\"/>\n      <ref name=\"TrueFalse\"/>\n      <ref name=\"MultipleChoice\"/>\n      <ref name=\"Parsons\"/>\n      <ref name=\"Matching\"/>\n      <ref name=\"FreeResponse\"/>\n      <ref name=\"FillInBlank\"/>\n      <ref name=\"Areas\"/>\n    </choice>\n  </define>\n</grammar>\n"
  },
  {
    "path": "schema/pretext-schematron.xsl",
    "content": "<?xml version=\"1.0\" standalone=\"yes\"?>\n<axsl:stylesheet xmlns:axsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:sch=\"http://www.ascc.net/xml/schematron\" xmlns:iso=\"http://purl.oclc.org/dsdl/schematron\" version=\"1.0\"><!--Implementers: please note that overriding process-prolog or process-root is \n    the preferred method for meta-stylesheets to use where possible. -->\n<axsl:param name=\"archiveDirParameter\"/><axsl:param name=\"archiveNameParameter\"/><axsl:param name=\"fileNameParameter\"/><axsl:param name=\"fileDirParameter\"/>\n\n<!--PHASES-->\n\n\n<!--PROLOG-->\n<axsl:output method=\"text\"/>\n\n<!--KEYS-->\n\n\n<!--DEFAULT RULES-->\n\n\n<!--MODE: SCHEMATRON-SELECT-FULL-PATH-->\n<!--This mode can be used to generate an ugly though full XPath for locators-->\n<axsl:template match=\"*\" mode=\"schematron-select-full-path\"><axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/></axsl:template>\n\n<!--MODE: SCHEMATRON-FULL-PATH-->\n<!--This mode can be used to generate an ugly though full XPath for locators-->\n<axsl:template match=\"*\" mode=\"schematron-get-full-path\"><axsl:apply-templates select=\"parent::*\" mode=\"schematron-get-full-path\"/><axsl:text>/</axsl:text><axsl:choose><axsl:when test=\"namespace-uri()=''\"><axsl:value-of select=\"name()\"/><axsl:variable name=\"p_1\" select=\"1+    count(preceding-sibling::*[name()=name(current())])\"/><axsl:if test=\"$p_1&gt;1 or following-sibling::*[name()=name(current())]\">[<axsl:value-of select=\"$p_1\"/>]</axsl:if></axsl:when><axsl:otherwise><axsl:text>*[local-name()='</axsl:text><axsl:value-of select=\"local-name()\"/><axsl:text>' and namespace-uri()='</axsl:text><axsl:value-of select=\"namespace-uri()\"/><axsl:text>']</axsl:text><axsl:variable name=\"p_2\" select=\"1+   count(preceding-sibling::*[local-name()=local-name(current())])\"/><axsl:if test=\"$p_2&gt;1 or following-sibling::*[local-name()=local-name(current())]\">[<axsl:value-of select=\"$p_2\"/>]</axsl:if></axsl:otherwise></axsl:choose></axsl:template><axsl:template match=\"@*\" mode=\"schematron-get-full-path\"><axsl:text>/</axsl:text><axsl:choose><axsl:when test=\"namespace-uri()=''\">@<axsl:value-of select=\"name()\"/></axsl:when><axsl:otherwise><axsl:text>@*[local-name()='</axsl:text><axsl:value-of select=\"local-name()\"/><axsl:text>' and namespace-uri()='</axsl:text><axsl:value-of select=\"namespace-uri()\"/><axsl:text>']</axsl:text></axsl:otherwise></axsl:choose></axsl:template>\n\n<!--MODE: SCHEMATRON-FULL-PATH-2-->\n<!--This mode can be used to generate prefixed XPath for humans-->\n<axsl:template match=\"node() | @*\" mode=\"schematron-get-full-path-2\"><axsl:for-each select=\"ancestor-or-self::*\"><axsl:text>/</axsl:text><axsl:value-of select=\"name(.)\"/><axsl:if test=\"preceding-sibling::*[name(.)=name(current())]\"><axsl:text>[</axsl:text><axsl:value-of select=\"count(preceding-sibling::*[name(.)=name(current())])+1\"/><axsl:text>]</axsl:text></axsl:if></axsl:for-each><axsl:if test=\"not(self::*)\"><axsl:text/>/@<axsl:value-of select=\"name(.)\"/></axsl:if></axsl:template>\n\n<!--MODE: GENERATE-ID-FROM-PATH -->\n<axsl:template match=\"/\" mode=\"generate-id-from-path\"/><axsl:template match=\"text()\" mode=\"generate-id-from-path\"><axsl:apply-templates select=\"parent::*\" mode=\"generate-id-from-path\"/><axsl:value-of select=\"concat('.text-', 1+count(preceding-sibling::text()), '-')\"/></axsl:template><axsl:template match=\"comment()\" mode=\"generate-id-from-path\"><axsl:apply-templates select=\"parent::*\" mode=\"generate-id-from-path\"/><axsl:value-of select=\"concat('.comment-', 1+count(preceding-sibling::comment()), '-')\"/></axsl:template><axsl:template match=\"processing-instruction()\" mode=\"generate-id-from-path\"><axsl:apply-templates select=\"parent::*\" mode=\"generate-id-from-path\"/><axsl:value-of select=\"concat('.processing-instruction-', 1+count(preceding-sibling::processing-instruction()), '-')\"/></axsl:template><axsl:template match=\"@*\" mode=\"generate-id-from-path\"><axsl:apply-templates select=\"parent::*\" mode=\"generate-id-from-path\"/><axsl:value-of select=\"concat('.@', name())\"/></axsl:template><axsl:template match=\"*\" mode=\"generate-id-from-path\" priority=\"-0.5\"><axsl:apply-templates select=\"parent::*\" mode=\"generate-id-from-path\"/><axsl:text>.</axsl:text><axsl:value-of select=\"concat('.',name(),'-',1+count(preceding-sibling::*[name()=name(current())]),'-')\"/></axsl:template><!--MODE: SCHEMATRON-FULL-PATH-3-->\n<!--This mode can be used to generate prefixed XPath for humans \n\t(Top-level element has index)-->\n<axsl:template match=\"node() | @*\" mode=\"schematron-get-full-path-3\"><axsl:for-each select=\"ancestor-or-self::*\"><axsl:text>/</axsl:text><axsl:value-of select=\"name(.)\"/><axsl:if test=\"parent::*\"><axsl:text>[</axsl:text><axsl:value-of select=\"count(preceding-sibling::*[name(.)=name(current())])+1\"/><axsl:text>]</axsl:text></axsl:if></axsl:for-each><axsl:if test=\"not(self::*)\"><axsl:text/>/@<axsl:value-of select=\"name(.)\"/></axsl:if></axsl:template>\n\n<!--MODE: GENERATE-ID-2 -->\n<axsl:template match=\"/\" mode=\"generate-id-2\">U</axsl:template><axsl:template match=\"*\" mode=\"generate-id-2\" priority=\"2\"><axsl:text>U</axsl:text><axsl:number level=\"multiple\" count=\"*\"/></axsl:template><axsl:template match=\"node()\" mode=\"generate-id-2\"><axsl:text>U.</axsl:text><axsl:number level=\"multiple\" count=\"*\"/><axsl:text>n</axsl:text><axsl:number count=\"node()\"/></axsl:template><axsl:template match=\"@*\" mode=\"generate-id-2\"><axsl:text>U.</axsl:text><axsl:number level=\"multiple\" count=\"*\"/><axsl:text>_</axsl:text><axsl:value-of select=\"string-length(local-name(.))\"/><axsl:text>_</axsl:text><axsl:value-of select=\"translate(name(),':','.')\"/></axsl:template><!--Strip characters--><axsl:template match=\"text()\" priority=\"-1\"/>\n\n<!--SCHEMA METADATA-->\n<axsl:template match=\"/\">\n** Begin checking PreTeXt Schematron rules      **\n<axsl:apply-templates select=\"/\" mode=\"M0\"/><axsl:apply-templates select=\"/\" mode=\"M1\"/><axsl:apply-templates select=\"/\" mode=\"M2\"/><axsl:apply-templates select=\"/\" mode=\"M3\"/><axsl:apply-templates select=\"/\" mode=\"M4\"/><axsl:apply-templates select=\"/\" mode=\"M5\"/>** Finished checking PreTeXt Schematron rules   **\n\n</axsl:template>\n\n<!--SCHEMATRON PATTERNS-->\n\n\n<!--PATTERN -->\n\n\n\t<!--RULE -->\n<axsl:template match=\"@filebase\" priority=\"1000\" mode=\"M0\">\n\n\t\t<!--REPORT -->\n<axsl:if test=\"true()\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         true()\nExplanation:       the @filebase attribute is deprecated (2014-05-04) and no code remains (2018-07-21), convert to using @xml:id for this purpose <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M0\"/></axsl:template><axsl:template match=\"text()\" priority=\"-1\" mode=\"M0\"/><axsl:template match=\"@*|node()\" priority=\"-2\" mode=\"M0\"><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M0\"/></axsl:template>\n\n<!--PATTERN -->\n\n\n\t<!--RULE -->\n<axsl:template match=\"cite\" priority=\"1000\" mode=\"M1\">\n\n\t\t<!--REPORT -->\n<axsl:if test=\"true()\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         true()\nExplanation:       the &lt;cite&gt; element is deprecated (2014-06-25) and no code remains (2018-07-21), convert to an &lt;xref&gt; <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M1\"/></axsl:template><axsl:template match=\"text()\" priority=\"-1\" mode=\"M1\"/><axsl:template match=\"@*|node()\" priority=\"-2\" mode=\"M1\"><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M1\"/></axsl:template>\n\n<!--PATTERN -->\n\n\n\t<!--RULE -->\n<axsl:template match=\"circum\" priority=\"1000\" mode=\"M2\">\n\n\t\t<!--REPORT -->\n<axsl:if test=\"true()\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         true()\nExplanation:       the &lt;circum&gt; element is deprecated (2015-01-28) and no code remains (2018-07-22), convert to a &lt;circumflex&gt; <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M2\"/></axsl:template><axsl:template match=\"text()\" priority=\"-1\" mode=\"M2\"/><axsl:template match=\"@*|node()\" priority=\"-2\" mode=\"M2\"><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M2\"/></axsl:template>\n\n<!--PATTERN -->\n\n\n\t<!--RULE -->\n<axsl:template match=\"var\" priority=\"1000\" mode=\"M3\">\n\n\t\t<!--ASSERT -->\n<axsl:choose><axsl:when test=\"ancestor::webwork\"/><axsl:otherwise>Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nRequirement:      ancestor::webwork\nExplanation:       the &lt;var&gt; element is exclusive to a WeBWorK problem, and so must only appear within a &lt;webwork&gt; element <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:otherwise></axsl:choose><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M3\"/></axsl:template><axsl:template match=\"text()\" priority=\"-1\" mode=\"M3\"/><axsl:template match=\"@*|node()\" priority=\"-2\" mode=\"M3\"><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M3\"/></axsl:template>\n\n<!--PATTERN -->\n\n\n\t<!--RULE -->\n<axsl:template match=\"author/xref\" priority=\"1000\" mode=\"M4\">\n\n\t\t<!--ASSERT -->\n<axsl:choose><axsl:when test=\"id(@ref)/self::contributor\"/><axsl:otherwise>Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nRequirement:      id(@ref)/self::contributor\nExplanation:       an &lt;xref&gt; within an &lt;author&gt; must point to a &lt;contributor&gt; <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:otherwise></axsl:choose><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M4\"/></axsl:template><axsl:template match=\"text()\" priority=\"-1\" mode=\"M4\"/><axsl:template match=\"@*|node()\" priority=\"-2\" mode=\"M4\"><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M4\"/></axsl:template>\n\n<!--PATTERN -->\n\n\n\t<!--RULE -->\n<axsl:template match=\"webwork//tabular\" priority=\"1000\" mode=\"M5\">\n\n\t\t<!--REPORT -->\n<axsl:if test=\"col/@top\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         col/@top\nExplanation:       column-specific top border attributes are not implemented for the output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if>\n\n\t\t<!--REPORT -->\n<axsl:if test=\"cell/@bottom\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         cell/@bottom\nExplanation:       cell-specific bottom border attributes are not implemented for the output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if>\n\n\t\t<!--REPORT -->\n<axsl:if test=\"//*[@top='major' or @bottom='major' or @left='major' or @right='major']\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         //*[@top='major' or @bottom='major' or @left='major' or @right='major']\nExplanation:       'major' table rule attributes will be handled as 'minor' in the output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if>\n\n\t\t<!--REPORT -->\n<axsl:if test=\"//*[@top='medium' or @bottom='medium' or @left='medium' or @right='medium']\">Location:         <axsl:apply-templates select=\".\" mode=\"schematron-get-full-path\"/>\nCondition:         //*[@top='medium' or @bottom='medium' or @left='medium' or @right='medium']\nExplanation:       'medium' table rule attributes will be handled as 'minor' in the output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine <axsl:text/>\n            <axsl:text/><axsl:value-of select=\"'&#10;Enclosing Title:    &quot;'\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"ancestor::*[title][1]/title\"/><axsl:text/>\n            <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[title][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/> <axsl:text/>\n                <axsl:text/><axsl:value-of select=\"'&#10;Enclosing xml:id: &quot;'\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"ancestor::*[@xml:id][1]/@xml:id\"/><axsl:text/>\n                <axsl:text/><axsl:value-of select=\"concat('&quot; (on a &lt;', local-name(ancestor::*[@xml:id][1]), '&gt;)')\"/><axsl:text/>\n        <axsl:text/>\n- - - - - - - - -\n</axsl:if><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M5\"/></axsl:template><axsl:template match=\"text()\" priority=\"-1\" mode=\"M5\"/><axsl:template match=\"@*|node()\" priority=\"-2\" mode=\"M5\"><axsl:apply-templates select=\"@*|*|comment()|processing-instruction()\" mode=\"M5\"/></axsl:template></axsl:stylesheet>\n"
  },
  {
    "path": "schema/pretext-validation-plus.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!-- NB: directories affect location -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../xsl/entities.ent\">\n    %entities;\n]>\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\">\n\n<!-- Report on console, or redirect/option to a file -->\n<xsl:output method=\"text\"/>\n\n<!-- Single line output allows for sorting on \"fields\" with the     -->\n<!-- sort utility. So design messages to *lead* with something      -->\n<!-- precise and unique that will sort cleanly with other messages. -->\n<xsl:param name=\"single.line.output\" select=\"'no'\"/>\n<xsl:variable name=\"b-single-line\" select=\"$single.line.output = 'yes'\"/>\n\n<!-- Walk the tree, so messages appear in document order, not topically.  -->\n<!-- Be sure to recurse into larger elements after interrupting to        -->\n<!-- process certain situations.  This is not necessary for templates     -->\n<!-- matching attributes or elements guarnteed to be empty and without    -->\n<!-- any attributes, ever.                                                -->\n<!--                                                                      -->\n<!-- Sections:                                                            -->\n<!--   * Deprecations:                                                    -->\n<!--       moved here once old, to minimize usual start-up times,         -->\n<!--       includes explanations of necessity and alternatives,           -->\n<!--   * Real-Time Checks:                                                -->\n<!--       items the usual schema checking cannot compute                 -->\n<!--   * WeBWorK:                                                         -->\n<!--       WW-specific items that the schema suggests are OK, but are not -->\n\n<!-- ############ -->\n<!-- Deprecations -->\n<!-- ############ -->\n\n<!-- Comments are copied from original warnings in -common templates -->\n\n<!-- 2014-05-04  @filebase has been replaced in function by @xml:id -->\n<!-- 2018-07-21  remove all relevant code                           -->\n<xsl:template match=\"@filebase\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'error'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>The @filebase attribute is deprecated (2014-05-04) and no code&#xa;</xsl:text>\n            <xsl:text>remains (2018-07-21), convert to using @xml:id for this purpose</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- 2014-06-25  xref once had cite as a variant -->\n<!-- 2018-07-21  remove all relevant code        -->\n<xsl:template match=\"cite\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'error'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>The &lt;cite&gt; element is deprecated (2014-06-25) and no&#xa;</xsl:text>\n            <xsl:text>code remains (2018-07-21), convert to an &lt;xref&gt;</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- 2015-01-28  once both circum and circumflex existed, circumflex won -->\n<!-- 2018-07-21  remove all relevant code                                -->\n<xsl:template match=\"circum\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'error'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>The &lt;circum&gt; element is deprecated (2015-01-28) and no&#xa;</xsl:text>\n            <xsl:text>code remains (2018-07-22), convert to a &lt;circumflex&gt;</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- 2017-12-21 remove sage/@copy               -->\n<!-- 2021-02-25 remove all code due to id() use -->\n<xsl:template match=\"sage[@copy]\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'error'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>@copy on a &quot;sage&quot; element was deprecated (2017-12-21)</xsl:text>\n            <xsl:text>Use the xinclude mechanism with common code in an external file</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- 2017-12-21 remove image/@copy              -->\n<!-- 2021-02-25 remove all code due to id() use -->\n<xsl:template match=\"image[@copy]\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'error'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>@copy on an &quot;image&quot; element was deprecated (2017-12-21)</xsl:text>\n            <xsl:text>Perhaps use the xinclude mechanism with common code in an external file</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Real-Time Checks -->\n<!-- ################ -->\n\n<!-- Checks that the schema cannot perform since some -->\n<!-- sort of look-up or source analysis is necessary  -->\n\n<!-- More information about an \"author\" is achieved   -->\n<!-- with a cross-reference to a \"contributor\". Only. -->\n<xsl:template match=\"author/xref\">\n    <xsl:if test=\"not(id(@ref)/self::contributor)\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>An &lt;xref&gt; within an &lt;author&gt; is meant to point&#xa;</xsl:text>\n                <xsl:text>to a &lt;contributor&gt;, not to a &lt;</xsl:text>\n                <xsl:value-of select=\"local-name(id(@ref))\"/>\n                <xsl:text>&gt;</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- Docinfo should have at most one latex-image-preamble -->\n<!-- of each value for @syntax (including no @syntax)     -->\n<xsl:template match=\"latex-image-preamble[not(@syntax)][1]\">\n    <xsl:if test=\"count(parent::docinfo/latex-image-preamble[not(@syntax)]) > 1\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>There should be at most one &lt;latex-image-preamble&gt; without a&#xa;</xsl:text>\n                <xsl:text>@syntax within the &lt;docinfo&gt; element. There are more than one,&#xa;</xsl:text>\n                <xsl:text>and they should be consolidated.</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- @workspace is only relevant on exercises and tasks that -->\n<!-- are within a worksheet or a handout, see the template  -->\n<!-- \"sanitize-workspace\" in pretext-common.xsl             -->\n<xsl:template match=\"exercise[@workspace]|task[@workspace]\">\n    <xsl:if test=\"not(ancestor::worksheet) and not(ancestor::handout)\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>The @workspace attribute is only relevant for an exercise or&#xa;</xsl:text>\n                <xsl:text>task within a worksheet or a handout, and will be ignored here</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- ########## -->\n<!-- Advisories -->\n<!-- ########## -->\n\n<xsl:template match=\"sidebyside[not(parent::interactive)]\">\n    <xsl:if test=\"count(*[not(&METADATA-FILTER;)]) = 1\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>A &lt;sidebyside&gt; normally does not have a single panel.&#xa;</xsl:text>\n                <xsl:text>If this construct is only for layout control, try moving&#xa;</xsl:text>\n                <xsl:text>layout onto the element used as panel (\"</xsl:text>\n                <xsl:value-of select=\"local-name(*[not(&METADATA-FILTER;)])\"/>\n                <xsl:text>\") and remove the &lt;sidebyside&gt;&#xa;</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<xsl:template match=\"title[m]\">\n    <xsl:if test=\"parent::chapter|appendix|preface|acknowledgement|biography|foreword|dedication|colophon|section|subsection|subsubsection|slide|exercises|worksheet|reading-questions|solutions|references|glossary|backmatter and not(following-sibling::shorttitle)\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>You have a title containing m but no shorttitle.&#xa;</xsl:text>\n                <xsl:text>Because this title will be used many places, errors may result.&#xa;</xsl:text>\n                <xsl:text>Please add a shorttitle.</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- Image elements should have meaningful descriptions.   -->\n<!-- We catch any \"image\" that does not either declare     -->\n<!-- @decorative=\"yes\" or have a non-empty description.    -->\n<!-- Warn if there is a description and @decorative=\"yes\". -->\n<!-- Warn if a description length is over 125 characters.  -->\n<xsl:template match=\"image\">\n    <xsl:if test=\"not(@decorative = 'yes') and description = ''\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>You have an image without a description and do not declare the image to be decorative.&#xa;</xsl:text>\n                <xsl:text>Because of this, output may not be accessible.&#xa;</xsl:text>\n                <xsl:text>If the image does not add information that is not already present, use @decorative=\"yes\".&#xa;</xsl:text>\n                <xsl:text>Otherwise, provide a &lt;description&gt;.</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <xsl:if test=\"@decorative = 'yes' and not(description = '')\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>You have an image with @decorative=\"yes\" that has a nonempty description.&#xa;</xsl:text>\n                <xsl:text>The description may not appear in output.&#xa;</xsl:text>\n                <xsl:text>Either remove the description, remove @decorative, or change @decorative to \"no\".</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <xsl:if test=\"string-length(description) > 125\">\n        <xsl:apply-templates select=\".\" mode=\"messaging\">\n            <xsl:with-param name=\"severity\" select=\"'advice'\"/>\n            <xsl:with-param name=\"message\">\n                <xsl:text>You have an image description that is more than 125 characters long.&#xa;</xsl:text>\n                <xsl:text>Some screen readers will cut off reading alt text after the 125th character.&#xa;</xsl:text>\n                <xsl:text>Rewrite the description to be 125 characters or fewer.</xsl:text>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n\n<!-- ####### -->\n<!-- WeBWorK -->\n<!-- ####### -->\n\n<!-- Certain constructions are only meant for use in WW problems, -->\n<!-- but we allow them (apparently) everywhere when writing the   -->\n<!-- official schema.  We indicate these situations here.         -->\n\n<!-- \"var\" is specific to WW -->\n<xsl:template match=\"var[not(ancestor::webwork)]\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'error'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>The &lt;var&gt; element is exclusive to a WeBWorK problem,&#xa;</xsl:text>\n            <xsl:text>and so must only appear within a &lt;webwork&gt; element,&#xa;</xsl:text>\n            <xsl:text>not here.  It will be ignored.</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- WW tables can't express the range of borders/rules that PreTeXt can -->\n\n<xsl:template match=\"webwork//tabular/col/@top\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>Column-specific top border attributes are not implemented for the&#xa;</xsl:text>\n            <xsl:text>output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"webwork//tabular/cell/@bottom\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>Cell-specific bottom border border attributes are not implemented for the&#xa;</xsl:text>\n            <xsl:text>output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"webwork//tabular/*[@top='medium' or @bottom='medium' or @left='medium' or @right='medium' or @top='major' or @bottom='major' or @left='major' or @right='major']\">\n    <xsl:apply-templates select=\".\" mode=\"messaging\">\n        <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n        <xsl:with-param name=\"message\">\n            <xsl:text>'medium' or 'major' table rule attributes will be handled as 'minor' in the&#xa;</xsl:text>\n            <xsl:text>output of a WeBWorK PG table produced by WeBWorK's hardcopy production engine</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- recurse further -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- ############################### -->\n<!-- Text and Troublesome Characters -->\n<!-- ############################### -->\n\n<!-- When converting from other sources (Word, Google Drive, etc.) we -->\n<!-- often see smart quotes, fancy apostrophes, em-dashes, etc that   -->\n<!-- come through as Unicode characters.  They may not be obvious     -->\n<!-- (rendered similarly) or they may even be actual entities         -->\n<!-- (&#dddd in decimal or &#xhhhh in hex).                           -->\n<!--     ** They are all the same character to the   **               -->\n<!--     ** XML processor once we get to this point. **               -->\n<!-- We employ the hex versions to match the U+hhhh notation common   -->\n<!-- for Unicode.  Note: some characters, like a dumb apostrophe      -->\n<!-- (U+0027), might be entities in source, but invisible to us here. -->\n\n<!-- Note: a single text node can have many problems, -->\n<!-- we catch such a node and then test for problems  -->\n<xsl:template match=\"text()[contains(., '&#x00B0;') or contains(., '&#x00D7;') or contains(., '&#x200B;') or contains(., '&#x2013;') or contains(., '&#x2014;') or contains(., '&#x2018;') or contains(., '&#x2019;') or contains(., '&#x201C;') or contains(., '&#x201D;')]\">\n    <!-- These characters do process properly in math mode -->\n    <!-- and can be useful in \\text{} then, so we allow them there -->\n    <xsl:if test=\"not(parent::m or parent::me or parent::men or parent::mrow)\">\n        <!-- Unicode Character 'DEGREE SIGN' (U+00B0) decimal: 176 -->\n        <xsl:if test=\"contains(., '&#x00B0;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains a Unicode character for a degree symbol (U+00B0, decimal 176).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>The symbol will behave better as the empty element \"&lt;degree/&gt;\"</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- Unicode Character 'MULTIPLICATION SIGN' (U+00D7) decimal: 215 -->\n        <xsl:if test=\"contains(., '&#x00D7;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains a Unicode character for a multiplication sign (U+00D7, decimal 215).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>The symbol will behave better as the empty element \"&lt;times/&gt;\"</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- Unicode Character 'ZERO WIDTH SPACE' (U+200B) decimal: 8203 -->\n        <xsl:if test=\"contains(., '&#x200B;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains a Unicode character for zero-width character (U+200B, decimal 8203).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>It is unnecessary and likely to cause errors.  It should be removed.</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- Unicode Character 'EN DASH' (U+2013) decimal: 8211 -->\n        <xsl:if test=\"contains(., '&#x2013;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains a Unicode character for an en-dash (U+2013, decimal 8211).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>The en-dash will behave better as the empty element \"&lt;ndash/&gt;\".&#xa;</xsl:text>\n                    <xsl:text>Understand the difference between an en-dash and an em-dash before editing.&#xa;</xsl:text>\n                    <xsl:text>An en-dash is used for a range, such as the years 2013-22.</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- Unicode Character 'EM DASH' (U+2014) decimal: 8212 -->\n        <xsl:if test=\"contains(., '&#x2014;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains a Unicode character for an em-dash (U+2014, decimal 8212).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>The em-dash will behave better as the empty element \"&lt;mdash/&gt;\".&#xa;</xsl:text>\n                    <xsl:text>Understand the difference between an en-dash and an em-dash before editing.&#xa;</xsl:text>\n                    <xsl:text>An em-dash is used for a pause in a sentence, and should not be authored with a space on either side.</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- Unicode Character 'LEFT SINGLE QUOTATION MARK' (U+2018) decimal: 8216 -->\n        <!-- Unicode Character 'RIGHT SINGLE QUOTATION MARK' (U+2019) decimal: 8217 -->\n        <xsl:if test=\"contains(., '&#x2018;') or contains(., '&#x2019;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains Unicode characters for single quotation marks (U+2018, decimal 8216; U+2019, decimal 8217).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>A U+2019 in isolation could be an apostrophe.  Replace it with the keyboard version: U+0027.&#xa;</xsl:text>\n                    <xsl:text>A matching pair U+2018, U+2019 should be replaced by the \"&lt;sq&gt;\" element enclosing content.&#xa;</xsl:text>\n                    <xsl:text>In rare cases, U+2018 might be replaced by the empty element \"&lt;lsq/&gt;\".&#xa;</xsl:text>\n                    <xsl:text>In rare cases, U+2019 might be replaced by the empty element \"&lt;rsq/&gt;\".</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- Unicode Character 'LEFT DOUBLE QUOTATION MARK' (U+201C) decimal: 8220 -->\n        <!-- Unicode Character 'RIGHT DOUBLE QUOTATION MARK' (U+201D) decimal: 8221-->\n        <xsl:if test=\"contains(., '&#x201C;') or contains(., '&#x201D;')\">\n            <xsl:apply-templates select=\".\" mode=\"messaging\">\n                <xsl:with-param name=\"severity\" select=\"'warn'\"/>\n                <xsl:with-param name=\"message\">\n                    <xsl:text>A run of text contains Unicode characters for double quotation marks (U+201C, decimal 8220; U+201D, decimal 8221).&#xa;</xsl:text>\n                    <xsl:text>Likely this was introduced in a conversion of source material authored in a word-processor.&#xa;</xsl:text>\n                    <xsl:text>A matching pair U+201C, U+201D should be replaced by the \"&lt;q&gt;\" element enclosing content.&#xa;</xsl:text>\n                    <xsl:text>In rare cases, U+201C might be replaced by the empty element \"&lt;lq/&gt;\".&#xa;</xsl:text>\n                    <xsl:text>In rare cases, U+201D might be replaced by the empty element \"&lt;rq/&gt;\".</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n    </xsl:if>\n    <!--                                                              -->\n    <!-- there is no recursing further, a text() node has no children -->\n    <!--                                                              -->\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- Infrastructure -->\n<!-- ############## -->\n\n<!-- Entry template -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- Traverse the tree, looking for trouble -->\n<xsl:template match=\"@*|node()\">\n    <xsl:apply-templates select=\"@*|node()\"/>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Messaging -->\n<!-- ######### -->\n\n<xsl:template match=\"*|text()\" mode=\"messaging\">\n    <xsl:param name=\"severity\"/>\n    <xsl:param name=\"message\"/>\n\n    <!-- Separator is noise for (sortable) single-line output -->\n    <xsl:if test=\"not($b-single-line)\">\n        <xsl:text>################################################################&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>PTX:</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$severity = 'error'\">\n            <xsl:text>ERROR</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$severity = 'warn'\">\n            <xsl:text>WARNING</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$severity = 'advice'\">\n            <xsl:text>ADVICE</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>################################################################</xsl:message>\n            <xsl:message>Validation+ stylesheet is passing incorrect severity (\"<xsl:value-of select=\"$severity\"/>\")</xsl:message>\n            <xsl:message>################################################################</xsl:message>\n            <xsl:message terminate='yes'/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>: </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"numbered-path\"/>\n    <!-- Consolidating output on a single line? space or newline here -->\n    <!-- Then consolidate $message into one line, or leave alone      -->\n    <xsl:choose>\n        <xsl:when test=\"$b-single-line\">\n            <xsl:text>&#x20;</xsl:text>\n            <xsl:value-of select=\"translate($message, '&#xa;', '&#x20;')\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:value-of select=\"$message\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- supply final newline always -->\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*|text()\" mode=\"numbered-path\">\n    <!-- If \"self\" is a text node, then this variable will not include it -->\n    <!-- since it is not an element, but it will begin with the element   -->\n    <!-- *containing* the text node of interest, and hence be locatable.  -->\n    <xsl:variable name=\"ancestors\" select=\"ancestor-or-self::*\"/>\n    <xsl:for-each select=\"$ancestors\">\n        <xsl:text>/</xsl:text>\n        <xsl:value-of select=\"local-name(.)\"/>\n        <xsl:text>[</xsl:text>\n        <xsl:number/>\n        <xsl:text>]</xsl:text>\n    </xsl:for-each>\n</xsl:template>\n\n</xsl:stylesheet>\n\n\n"
  },
  {
    "path": "schema/pretext.rnc",
    "content": "\n                    namespace pf = \"https://prefigure.org\"\n                    grammar {\n                \n            start = PretextRoot | DocInfo | Part | Chapter | Section | Subsection | Subsubsection | Printout | Paragraphs | ReadingQuestions | Exercises | Subexercises |  Solutions | BookFrontMatter | ArticleFrontMatter | BookBackMatter | ArticleBackMatter | Preface | Acknowledgement | ArticleAppendix | BookAppendix | IndexDivision | References | Glossary | Figure | WebWork\n            \n            PretextRoot =\n                element pretext {\n                    XMLLang?,\n                    DocInfo?,\n                    (Book | Article | Letter | Memorandum)\n                }\n            \n            Article =\n                element article {\n                    MetaDataLinedSubtitle,\n                    ArticleFrontMatter?,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? & ReadingQuestions? & Exercises? &\n                             Solutions? & References? & Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? & IntroductionDivision?),\n                            (Section | Printout),\n                            (Section | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? & ConclusionDivision?),\n                            ArticleBackMatter?\n                        )\n                    )\n                }\n            Book =\n                ## Here is what a book looks like.\n                element book {\n                    MetaDataLinedSubtitle,\n                    BookFrontMatter?,\n                    (Part+ | Chapter+ | Printout+),\n                    BookBackMatter?\n                }\n            Letter =\n                element letter {empty}\n            Memorandum =\n                element memo {empty}\n            \n            Part =\n                element part {\n                    MetaDataLinedTitle, Chapter+\n                }\n            Chapter =\n                element chapter {\n                    MetaDataLinedTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? & ReadingQuestions? & Exercises? &\n                             Solutions? & References? & Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? & IntroductionDivision?),\n                            (Section | Printout),\n                            (Section | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? & ConclusionDivision?)\n                        )\n                    )\n                }\n            Section =\n                element section {\n                    MetaDataLinedTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? &ReadingQuestions? & Exercises? &\n                             Solutions? & References? & Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? & IntroductionDivision?),\n                            (Subsection | Printout),\n                            (Subsection | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? & ConclusionDivision?)\n                        )\n                    )\n                }\n            Subsection =\n                element subsection {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? & ReadingQuestions? & Exercises? &\n                             Solutions? & References? & Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? & IntroductionDivision?),\n                            (Subsubsection | Printout),\n                            (Subsubsection | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? & ConclusionDivision?)\n                        )\n                    )\n                }\n            Subsubsection =\n                element subsubsection {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    Objectives?,\n                    (BlockDivision | Paragraphs)+,\n                    (Printout? & ReadingQuestions? & Exercises? &\n                     Solutions? & References? & Glossary?),\n                    Outcomes?\n                }\n            ArticleAppendix =\n                element appendix {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs | NotationList)+,\n                            (Printout? & ReadingQuestions? & Exercises? &\n                             Solutions? & References? & Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? & IntroductionDivision?),\n                            (Subsection | Printout),\n                            (Subsection | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? & ConclusionDivision?)\n                        )\n                    )\n                }\n            BookAppendix =\n                element appendix {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs | NotationList)+,\n                            (Printout? & ReadingQuestions? & Exercises? &\n                             Solutions? & References? & Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? & IntroductionDivision?),\n                            (Section | Printout),\n                            (Section | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? & ConclusionDivision?)\n                        )\n                    )\n                }\n            IndexDivision =\n                element index {\n                    MetaDataAltTitleOptional,\n                    IndexList\n                }\n            \n            ArticleFrontMatter =\n                element frontmatter {\n                    MetaDataTitleOptional,\n                    Bibinfo,\n                    TitlePage,\n                    Abstract?\n                }\n            BookFrontMatter = element frontmatter {\n                    MetaDataTitleOptional,\n                    Bibinfo,\n                    TitlePage,\n                    ColophonFront?,\n                    Biography*,\n                    Dedication?,\n                    Acknowledgement?,\n                    Preface*\n                }\n            Bibinfo =\n                element bibinfo {\n                    (\n                        (Author+, Editor*)\n                        |\n                        (Editor+)\n                    )?,\n                    ((Credit | ColophonCredit)* &\n                    Date? &\n                    Edition? &\n                    Keywords* &\n                    Support? &\n                    Website? &\n                    Copyright?)\n                }\n            TitlePage =\n                element titlepage {\n                    element titlepage-items {empty}\n                }\n            Email = element email {text}\n            PersonName = element personname {TextSimple}\n            Affiliation =\n                element affiliation {\n                    Department? &\n                    Institution? &\n                    Location?\n                }\n            Department = element department {TextSimple | ShortLine+}\n            Institution = element institution {TextSimple | ShortLine+}\n            Support = element support {TextParagraph}\n            Location = element location {TextSimple | ShortLine+}\n            Keywords = element keywords {\n                attribute authority {text}?,\n                attribute variant {text}?,\n                Title?,\n                Keyword+\n            }\n            Keyword = element keyword {\n                attribute primary {\"yes\"|\"no\"}?,\n                TextSimple\n            }\n            Edition = element edition {text}\n            Event = element event {\n                TextLong\n            }\n            Author =\n                element author {\n                    attribute corresponding {\"yes\" | \"no\"}?,\n                    attribute xml:id {text}?,\n                    PersonName,\n                    (\n                        (Department? & Institution? & Location?) |\n                        Affiliation+\n                    )?,\n                    Email?,\n                    Biography?,\n                    Support?\n                }\n            Editor =\n                element editor {\n                    PersonName,\n                    (\n                        (Department? & Institution? & Location?) |\n                        Affiliation+\n                    )?,\n                    Email?\n                }\n            Credit =\n                element credit {\n                    Title,\n                    Author+\n                }\n            Date =\n                element date {\n                    mixed {(Character | Generator)*}\n                }\n            Abstract =\n                element abstract {\n                    MetaDataTarget,\n                    BlockText+\n                }\n            ColophonCredit = element credit {\n                    element role {TextShort},\n                    element entity {TextLong}\n                }\n            ShortLicense = element shortlicense {TextLong}\n            Website = element website {Url}\n            Copyright =\n                element copyright {\n                    element year {TextShort},\n                    element holder {text},\n                    element minilicense {TextShort}?,\n                    ShortLicense?\n                }\n            ColophonFront =\n                element colophon {\n                    MetaDataTarget,\n                    element colophon-items {empty}\n                }\n            Biography =\n                element biography {\n                    MetaDataTitleOptional,\n                    (BlockStatementNoCaption | ParagraphsNoNumber)+\n                }\n            Dedication =\n                element dedication {\n                    MetaDataTitleOptional,\n                    (Paragraph|ParagraphLined)+\n                }\n            Acknowledgement =\n                element acknowledgement {\n                    MetaDataTitleOptional,\n                    (BlockStatementNoCaption | ParagraphsNoNumber)+\n                }\n            Preface =\n                element preface {\n                    MetaDataTitleOptional,\n                    (\n                        (\n                            (BlockStatementNoCaption | ParagraphsNoNumber)+,\n                            Attribution*\n                        )\n                        |\n                        (\n                            (BlockStatementNoCaption | ParagraphsNoNumber )*,\n                            Contributors,\n                            (BlockStatementNoCaption | ParagraphsNoNumber)*\n                        )\n                    )\n                }\n            \n            ArticleBackMatter =\n                element backmatter {\n                    MetaDataTitleOptional,\n                    (ArticleAppendix|Solutions)*,\n                    References?,\n                    IndexDivision?,\n                    ColophonBack?\n                }\n            BookBackMatter =\n                element backmatter {\n                    MetaDataTitleOptional,\n                    (BookAppendix|Solutions)*,\n                    Glossary?,\n                    References?,\n                    IndexDivision?,\n                    ColophonBack?\n                }\n            ColophonBack =\n                element colophon {\n                    MetaDataTarget,\n                    (BlockText | SideBySideNoCaption | SideBySideGroupNoCaption)+\n                }\n            \n            Paragraphs =\n                element paragraphs {\n                    MetaDataTitle,\n                    Index*,\n                    BlockDivision+\n                }\n            ParagraphsNoNumber =\n                element paragraphs {\n                    MetaDataTitle,\n                    Index*,\n                    BlockStatementNoCaption+\n                }\n            \n            ReadingQuestions =\n                element reading-questions {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    Exercise+,\n                    ConclusionDivision?\n                }\n            Exercises =\n                element exercises {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    (\n                        (Exercise | ExerciseGroup)+ |\n                        Subexercises+\n                    ),\n                    ConclusionDivision?\n                }\n            Subexercises =\n                element subexercises {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    (Exercise | ExerciseGroup)+,\n                    ConclusionDivision?\n                }\n            Solutions =\n                element solutions {\n                    MetaDataAltTitleOptional,\n                    attribute inline {text}?,\n                    attribute divisional {text}?,\n                    attribute project {text}?,\n                    attribute admit {\"all\"|\"odd\"|\"even\"}?,\n                    IntroductionDivision?,\n                    ConclusionDivision?\n                }\n            References =\n                element references {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    BibliographyItem+,\n                    ConclusionDivision?\n                }\n            Glossary =\n                element glossary {\n                    MetaDataAltTitleOptional,\n                    HeadNote?,\n                    GlossaryItem+\n                }\n            \n            PrintoutAttributes =\n                attribute margin { text }?,\n                attribute top { text }?,\n                attribute bottom { text }?,\n                attribute right { text }?,\n                attribute left { text }?\n\n            PrintoutBlock =\n                BlockStatement | Remark | Computation | Theorem | Proof | Definition |\n                Axiom | Example | PrintoutExercise | Project |\n                Poem | Assemblage | ListGenerator | Fragment |\n                PrintoutSideBySide | Paragraphs\n\n            # Allow exercise in sidebyside\n            PrintoutSideBySide =\n                element sidebyside {\n                    SidebySideAttributes,\n                    (\n                        Figure |\n                        Poem |\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Stack |\n                        PrintoutExercise |\n                        PrintoutTask\n                    )+\n                }\n            # Exercises and tasks can have workspace:\n            PrintoutExercise =\n                element exercise {\n                    MetaDataTitleOptional,\n                    attribute number {text}?,\n                    attribute workspace {text}?,\n                    (\n                    ExerciseBody |\n                    (StatementExercise, Hint*, Answer*, Solution*) |\n                    (IntroductionText?, WebWork, ConclusionText?) |\n                    (IntroductionStatement?, PrintoutTask+, ConclusionStatement?)\n                    )\n                }\n            PrintoutTask =\n                element task {\n                    MetaDataTitleOptional,\n                    attribute workspace {text}?,\n                    (\n                        BlockStatement+ |\n                        (Statement, Hint*, Answer*, Solution*) |\n                        (IntroductionStatement?, PrintoutTask+, ConclusionStatement?)\n                    )\n                }\n\n            # Page can contain a printout block or be empty\n            Page =\n                element page {\n                    PrintoutBlock+ | empty\n                }\n            # Main worksheet definition\n            Worksheet =\n                element worksheet {\n                    PrintoutAttributes,\n                    MetaDataAltTitleOptional,\n                    (Objectives? & IntroductionDivision?),\n                    (Page+ | PrintoutBlock+),\n                    (Outcomes? & ConclusionDivision?)\n                }\n\n            # Printout currently just means a Worksheet, but could be extended later.\n            Printout =\n                Worksheet\n            \n            BlockText =\n                Paragraph | BlockQuote | Preformatted |\n                Image | Video | Program | Console | Tabular\n            BlockStatementNoCaption =\n                BlockText | Aside |\n                SideBySideNoCaption | SideBySideGroupNoCaption\n            BlockStatement =\n                BlockText |\n                Figure | Aside |\n                SideBySide | SideBySideGroup | Sage\n            BlockSolution =\n                BlockStatement | Proof\n            BlockDivision =\n                BlockStatement |\n                Remark | Computation | Theorem | Proof | Definition |\n                Axiom | Example | Exercise | Project |\n                Poem | Assemblage | ListGenerator | Fragment\n            \n            Prelude =\n                element prelude {BlockText+}\n            Interlude =\n                element interlude {BlockText+}\n            Postlude =\n                element postlude {BlockText+}\n            Statement =\n                element statement {\n                    BlockStatement+\n                }\n            Hint =\n                element hint {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            Answer =\n                element answer {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            Solution =\n                element solution {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            \n            IntroductionText =\n                element introduction {BlockText+}\n            ConclusionText =\n                element conclusion {BlockText+}\n            IntroductionStatementNoCaption =\n                element introduction {BlockStatementNoCaption+}\n            ConclusionStatementNoCaption =\n                element conclusion {BlockStatementNoCaption+}\n            IntroductionStatement =\n                element introduction {BlockStatement+}\n            ConclusionStatement =\n                element conclusion {BlockStatement+}\n            IntroductionDivision =\n                element introduction {\n                    MetaDataTitleOptional,\n                    BlockDivision+\n                }\n            ConclusionDivision =\n                element conclusion {\n                    MetaDataTitleOptional?,\n                    BlockDivision+\n                }\n            HeadNote =\n                element headnote {BlockStatementNoCaption+}\n            \n            Objectives =\n                element objectives {\n                    MetaDataTitleOptional,\n                    IntroductionText?,\n                    List,\n                    ConclusionText?\n                }\n            Outcomes =\n                element outcomes {\n                    MetaDataTitleOptional,\n                    IntroductionText?,\n                    List,\n                    ConclusionText?\n                }\n            \n            BlockQuote =\n                element blockquote {\n                    MetaDataTitleOptional,\n                    Paragraph+,\n                    Attribution?\n                }\n            SimpleLine =\n                element line {TextSimple}\n            ShortLine =\n                element line {TextShort}\n            LongLine =\n                element line {TextLong}\n            \n            CodeLine =\n                element cline {text}\n            CodeDisplay =\n                element cd {\n                    attribute latexsep {text}?,\n                    (text | CodeLine+)\n                }\n            Preformatted =\n                element pre {\n                    text | CodeLine+\n                }\n            ConsoleOutput =\n                element output {text}\n            ConsoleInput =\n                element input {\n                    attribute prompt {text}?,\n                    attribute continuation {text}?,\n                    text\n                }\n            Console =\n                element console {\n                    Component?,\n                    attribute prompt {text}?,\n                    attribute continuation {text}?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    (\n                        ConsoleInput,\n                        ConsoleOutput?\n                    )+\n                }\n            ProgramPreamble =\n                element preamble {\n                    attribute visible {\"yes\"|\"no\"}?,\n                    text\n                }\n            ProgramCode = element code {text}\n            ProgramPostamble =\n                element postamble {\n                    attribute visible {\"yes\"|\"no\"}?,\n                    text\n                }\n            ProgramTests =\n                element tests {\n                    attribute visible {\"yes\"|\"no\"}?,\n                    (\n                        text\n                    |\n                        element iotest {\n                            element input {text},\n                            element output {text}\n                        }+\n                    )\n                }\n            ProgramStdin =\n                element stdin {\n                    text\n                }\n            CodelensCheckpoint =\n                element checkpoint {\n                    attribute line {text},\n                    (\n                        attribute answer {text}\n                    |\n                        attribute answer-variable {text}\n                    ),\n                    element prompt {BlockText+},\n                    element feedback {BlockText+}?\n                }\n            Program =\n                element program {\n                    Component?,\n                    LabelID?,\n                    UniqueID?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute autorun {\"yes\"|\"no\"}?,\n                    attribute chatcodes {\"yes\"|\"no\"}?,\n                    attribute codelens {\"yes\"|\"no\"}?,\n                    attribute starting-step {\"yes\"|\"no\"}?,\n                    attribute compiler-args {text}?,\n                    attribute extra-compiler-args {text}?,\n                    attribute database {text}?,\n                    attribute add-files {text}?,\n                    attribute compile-also {text}?,\n                    attribute download {\"yes\"|\"no\"}?,\n                    attribute hidecode {\"yes\"|\"no\"}?,\n                    attribute highlight-lines {text}?,\n                    attribute include {text}?,\n                    attribute filename {text}?,\n                    attribute interactive {\"codelens\"|\"activecode\"|\"no\"}?,\n                    attribute interpreter-args {text}?,\n                    attribute language {text}?,\n                    attribute line-numbers {\"yes\"|\"no\"}?,\n                    attribute linker-args {text}?,\n                    attribute timelimit {text}?,\n                    (\n                        text\n                    |\n                        (\n                            ProgramPreamble?,\n                            ProgramCode,\n                            ProgramPostamble?,\n                            ProgramTests?,\n                            ProgramStdin?,\n                            CodelensCheckpoint*\n                        )\n                    )\n                }\n            \n            ListItem = element li {\n                (\n                    (MetaDataTarget, TextParagraph)\n                |\n                    (MetaDataTitleOptional, BlockStatement+)\n                )\n            }\n            DefinitionListItem = element li {\n                MetaDataTitle,\n                BlockStatement+\n            }\n            List =\n                element ol {\n                    Component?,\n                    attribute cols {\"2\"|\"3\"|\"4\"|\"5\"|\"6\"}?,\n                    attribute marker {text}?,\n                    ListItem+\n                } |\n                element ul {\n                    Component?,\n                    attribute cols {\"2\"|\"3\"|\"4\"|\"5\"|\"6\"}?,\n                    attribute marker {\"disc\" | \"circle\" | \"square\" | \"\"}?,\n                    ListItem+\n                } |\n                element dl {\n                    Component?,\n                    attribute width {\"narrow\" | \"medium\" | \"wide\"}?,\n                    DefinitionListItem+\n                }\n            \n            DefinitionLike =\n                MetaDataTitleOptional,\n                Notation*,\n                Statement\n            Definition =\n                element definition {DefinitionLike}\n            \n            Case =\n                element case {\n                   MetaDataTitleOptional,\n                   attribute direction {text}?,\n                   BlockStatement+\n                   }\n            Proof =\n                element proof {\n                    MetaDataTitleOptional,\n                    (BlockStatement | Case)+\n                }\n            TheoremLike =\n                MetaDataTitleCreatorOptional,\n                (BlockStatement+ | (Statement, Proof*))\n            Theorem =\n                element theorem {TheoremLike} |\n                element lemma {TheoremLike} |\n                element corollary {TheoremLike} |\n                element claim {TheoremLike} |\n                element proposition {TheoremLike} |\n                element algorithm {TheoremLike} |\n                element fact {TheoremLike} |\n                element identity {TheoremLike}\n            \n            AxiomLike =\n                MetaDataTitleCreatorOptional,\n                Statement\n            Axiom =\n                element axiom {AxiomLike} |\n                element principle {AxiomLike} |\n                element conjecture {AxiomLike} |\n                element heuristic {AxiomLike} |\n                element hypothesis {AxiomLike} |\n                element assumption {AxiomLike}\n            \n            ExampleLike =\n                MetaDataTitleOptional,\n                (\n                    (BlockStatement)+ |\n                    (Statement, Hint*, Answer*, Solution*) |\n                    (IntroductionStatement?, Task+, ConclusionStatement?)\n                )\n            Example =\n                element example {ExampleLike} |\n                element question {ExampleLike} |\n                element problem {ExampleLike}\n            \n            ProjectLike =\n                MetaDataTitleOptional,\n                (\n                    (BlockStatement+) |\n                    (\n                       Prelude?,\n                       (\n                          (Statement, Hint*, Answer*, Solution*) |\n                          (IntroductionStatement?, Task+, ConclusionStatement?) |\n                          (IntroductionText?, WebWork, ConclusionText?)\n                       ),\n                       Postlude?\n                    )\n                )\n            Project =\n                element activity {ProjectLike} |\n                element investigation {ProjectLike} |\n                element exploration {ProjectLike} |\n                element project {ProjectLike}\n            Task =\n                element task {\n                    MetaDataTitleOptional,\n                    attribute workspace {text}?,\n                    (\n                        BlockStatement+ |\n                        (Statement, Hint*, Answer*, Solution*) |\n                        (IntroductionStatement?, Task+, ConclusionStatement?)\n                    )\n                }\n            \n            RemarkLike =\n                MetaDataTitleOptional,\n                BlockStatement+\n            Remark =\n                element remark {RemarkLike} |\n                element convention {RemarkLike} |\n                element note {RemarkLike} |\n                element observation {RemarkLike} |\n                element warning {RemarkLike} |\n                element insight {RemarkLike}\n            \n            ComputationLike =\n                MetaDataTitleOptional,\n                BlockStatement+\n            Computation =\n                element computation {ComputationLike} |\n                element technology {ComputationLike} |\n                element data {ComputationLike}\n            \n            AsideLike =\n                MetaDataTitleOptional,\n                BlockText+\n            Aside =\n                element aside {AsideLike} |\n                element biographical {AsideLike} |\n                element historical {AsideLike}\n            \n            Assemblage =\n                element assemblage {\n                    MetaDataTitleOptional,\n                    (BlockText | SideBySideNoCaption | SideBySideGroupNoCaption)+\n                }\n            \n            Caption =\n                element caption {TextLong}\n            Landscape =\n                attribute landscape {\"yes\" | \"no\"}\n            Figure =\n                element figure {\n                    MetaDataCaption,\n                    Landscape?,\n                    (\n                        Image |\n                        Video |\n                        SideBySide |\n                        SideBySideGroup |\n                        MuseScore\n                    )\n                } |\n                element table {\n                    MetaDataAltTitle,\n                    Landscape?,\n                    Tabular\n                } |\n                element listing {\n                    MetaDataAltTitle,\n                    Landscape?,\n                    (\n                        Program |\n                        Console\n                    )\n                } |\n                element list {\n                    MetaDataAltTitle,\n                    Landscape?,\n                    IntroductionText?,\n                    List,\n                    ConclusionText?\n                }\n            \n            Stack =\n                element stack {\n                    (\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List\n                    )+\n                }\n            SidebySideAttributes =\n                Component?,\n                attribute margins {text}?,\n                (attribute width {text} | attribute widths {text})?,\n                (AlignmentVertical | attribute valigns {text})?\n            SideBySide =\n                element sidebyside {\n                    SidebySideAttributes,\n                    (\n                        Figure |\n                        Poem |\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Stack\n                    )+\n                }\n            SideBySideNoCaption =\n                element sidebyside {\n                    SidebySideAttributes,\n                    (\n                        Poem |\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Stack\n                    )+\n                }\n            SideBySideGroup =\n                element sbsgroup {\n                    SidebySideAttributes,\n                    SideBySide+\n                }\n            SideBySideGroupNoCaption =\n                element sbsgroup {\n                    SidebySideAttributes,\n                    SideBySideNoCaption+\n                }\n            \n            Image = ImageRaster | ImageCode\n            ImageDescription = element description {(Paragraph | Tabular)+}\n            ImageShortDescription = element shortdescription {text}\n            ImageShortDescriptionCode = element shortdescription {\n                (text | WWVariable)+\n            }\n            ImageRaster =\n                element image {\n                    UniqueID?,\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute rotate {text}?,\n                    attribute archive {text}?,\n                    attribute source {text},\n                    (\n                      attribute decorative {\"yes\"} |\n                      (\n                        attribute decorative {\"no\"}?,\n                        (\n                          ImageShortDescription? &\n                          ImageDescription?\n                        )\n                      )\n                    )\n                }\n            CodeLatexImage =\n                element latex-image {\n                    LabelID?,\n                    Component?,\n                    text\n                }\n            AnyPFContent = text | element * { attribute * { text }*, AnyPFContent* }\n            ImageCode =\n                element image {\n                    UniqueID?,\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute archive {text}?,\n                    (\n                      attribute decorative {\"yes\"} |\n                      (\n                        attribute decorative {\"no\"}?,\n                        (\n                          ImageShortDescriptionCode ? &\n                          ImageDescription? &\n                          (\n                            CodeLatexImage |\n                            element asymptote {\n                              LabelID?,\n                              Component?,\n                              text\n                            } |\n                            element sageplot {\n                                LabelID?,\n                                Component?,\n                                attribute variant {'2d'|'3d'}?,\n                                attribute aspect {text}?,\n                                text\n                            } |\n                            element mermaid {\n                                LabelID?,\n                                Component?,\n                                text\n                            } |\n                            element pf:prefigure {\n                                attribute label {text}?,\n                                AnyPFContent*\n                            }\n                          )\n                        )\n                      )\n                    )\n                }\n            WWLatexImage = element latex-image {\n                text\n              }\n            ImageWW =\n                element image {\n                    attribute pg-name {text}?,\n                    attribute width {text}?,\n                    (\n                      attribute decorative {\"yes\"} |\n                      (\n                        attribute decorative {\"no\"}?,\n                        (\n                          ImageShortDescriptionCode? &\n                          ImageDescription? &\n                          WWLatexImage?\n                        )\n                      )\n                    )\n                }\n            \n            BorderThickness = \"none\" | \"minor\" | \"medium\" | \"major\"\n            BorderTop =\n                attribute top {BorderThickness}\n            BorderBottom =\n                attribute bottom {BorderThickness}\n            BorderLeft =\n                attribute left {BorderThickness}\n            BorderRight =\n                attribute right {BorderThickness}\n            AlignmentHorizontal =\n                attribute halign {\"left\" | \"center\" | \"right\" | \"justify\"}\n            AlignmentVertical =\n                attribute valign {\"top\" | \"middle\" | \"bottom\"}\n\n            TableCell =\n                element cell {\n                    AlignmentHorizontal?,\n                    BorderBottom?,\n                    BorderRight?,\n                    attribute colspan {text}?,\n                    (\n                        TextLong |\n                        LongLine+ |\n                        Paragraph+\n                    )\n                }\n            TableRow =\n                element row {\n                    attribute header {\"yes\" | \"no\" | \"vertical\"}?,\n                    AlignmentHorizontal?,\n                    AlignmentVertical?,\n                    BorderBottom?,\n                    BorderLeft?,\n                    TableCell+\n                }\n            TableColumn =\n                element col {\n                    AlignmentHorizontal?,\n                    BorderTop?,\n                    BorderRight?,\n                    attribute width {text}?\n                }\n            Tabular =\n                element tabular {\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute row-headers {\"yes\" | \"no\"}?,\n                    AlignmentHorizontal?,\n                    AlignmentVertical?,\n                    BorderTop?,\n                    BorderBottom?,\n                    BorderLeft?,\n                    BorderRight?,\n                    TableColumn*,\n                    TableRow+\n                }\n            \n            SageOutput = element output {text}\n            SageInput = element input {text}\n            Sage = element sage {\n                Component?,\n                attribute doctest {text}?,\n                attribute tolerance {text}?,\n                attribute auto-evaluate {'no'|'yes'}?,\n                attribute language {text}?,\n                attribute type {text}?,\n                (SageInput, SageOutput?)?\n            }\n            \n            MuseScore =\n                element score {\n                    attribute musescoreuser {text},\n                    attribute musescore {text}\n                }\n            \n            Video =\n                element video {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute aspect {text}?,\n                    attribute start {xsd:integer}?,\n                    attribute end {xsd:integer}?,\n                    attribute play-at {\"embed\" | \"popout\" | \"select\"}?,\n                    attribute preview {\"default\" | \"generic\" | text}?,\n                    (AttributesSourceFile | AttributesNetwork | AttributesYouTube |\n                     AttributesYouTubePlaylist | AttributesVimeo),\n                    Track*\n                }\n            Track =\n                element track {\n                    attribute kind {text},\n                    attribute listing {text}?,\n                    XMLLang?,\n                    attribute source {text},\n                    attribute default {\"yes\"}?\n                }\n            AttributesSourceFile =\n                attribute source {text}\n            AttributesNetwork =\n                attribute href {text}\n            AttributesYouTube =\n                attribute youtube {text}\n            AttributesYouTubePlaylist =\n                attribute youtubeplaylist {text}\n            AttributesVimeo =\n                attribute vimeo {text}\n            \n            ExerciseOrderedList =\n                element ol {\n                    attribute cols {text}?,\n                    attribute marker {text}?,\n                    ExerciseListItem+\n                }\n            ExerciseListItem = element li {\n                MetaDataTarget,\n                (TextParagraph | BlockText+)\n            }\n            ExerciseBody =\n                (\n                    BlockStatement |\n                    ExerciseOrderedList\n                )+\n            StatementExercise =\n                element statement { ExerciseBody }\n            Exercise =\n                element exercise {\n                    MetaDataTitleOptional,\n                    attribute number {text}?,\n                    attribute workspace {text}?,\n                    (\n                    ExerciseBody |\n                    (StatementExercise, Hint*, Answer*, Solution*) |\n                    (IntroductionStatement?, Task+, ConclusionStatement?) |\n                    (IntroductionText?, WebWork, ConclusionText?)\n                    )\n                }\n            ExerciseGroup =\n                element exercisegroup {\n                    MetaDataTitleOptional,\n                    attribute cols {\"2\"|\"3\"|\"4\"|\"5\"|\"6\"}?,\n                    IntroductionStatementNoCaption,\n                    Exercise+,\n                    ConclusionStatementNoCaption?\n                }\n            \n            AlignmentPoem = attribute halign {\"left\" | \"center\" | \"right\"}\n            PoemAuthor =\n                element author {\n                    AlignmentPoem?,\n                    TextShort\n                }\n            Poem =\n                element poem {\n                    MetaDataTitleOptional,\n                    AlignmentPoem?,\n                    PoemAuthor?,\n                    (PoemLine+ | Stanza+)\n                }\n            Stanza =\n                element stanza {\n                    MetaDataTitleOptional,\n                    PoemLine+\n                }\n            PoemLine =\n                element line {\n                    attribute indent {xsd:integer}?,\n                    TextShort\n                }\n            \n            TextBib = mixed { (Character | MathInline)* }\n            BibliographyItem =\n                element biblio {\n                    MetaDataTarget,\n                    ((\n                        attribute type {\"raw\"},\n                        (TextLong |\n                        Ibid |\n                        BibTitle |\n                        BibYear |\n                        BibJournal |\n                        BibNumber |\n                        BibVolume |\n                        BibNote)*\n                    ) |\n                    (\n                        attribute type {\"bibtex\"},\n                        (BibTitle |\n                        BibAuthor |\n                        BibEditor |\n                        BibYear |\n                        BibJournal |\n                        BibNumber |\n                        BibVolume |\n                        BibSeries |\n                        BibPublisher |\n                        BibPages |\n                        BibNote)*\n                    ))\n                }\n            Ibid = element ibid {empty}\n            BibYear = element year {text}\n            BibJournal = element journal { TextBib }\n            BibNumber = element number {text}\n            BibVolume = element volume {text}\n            BibTitle = element title {TextLong}\n            BibNote = element note {UniqueID?, Paragraph+}\n            BibAuthor = element author {text}\n            BibEditor = element editor {text}\n            BibSeries = element series {text}\n            BibPublisher = element publisher {text}\n            BibPages = element pages {\n                (\n                    attribute start {text},\n                    attribute end {text},\n                    empty\n                ) |\n                (\n                    text\n                )\n                }\n            \n            GlossaryItem =\n                element gi {\n                    MetaDataTitle,\n                    BlockStatementNoCaption+\n                }\n            \n            Contributor =\n                element contributor {\n                    MetaDataTarget,\n                    PersonName,\n                    (\n                        (\n                        Department?,\n                        Institution?,\n                        Location?\n                        )\n                        |\n                        Affiliation+\n                    )?,\n                    Email?\n                }\n            Contributors =\n                element contributors {\n                    Contributor+\n                }\n            AuthorByline =\n                element author {(TextSimple|Xref)}\n            \n            WebWork = (WebWorkAuthored | WebWorkSource)\n            WebWorkSource =\n                element webwork {\n                    attribute source {text}?,\n                    attribute seed {xsd:integer}?\n                }\n            WWDescription =\n                element description {\n                    (\n                        TextSimple |\n                        SimpleLine+\n                    )\n                }\n            WebWorkAuthored =\n                element webwork {\n                    (\n                        UniqueID?,\n                        LabelID?,\n                        Component?,\n                        attribute seed {xsd:integer}?,\n                        attribute copy {text}?,\n                        WWDescription?,\n                        WWMacros?,\n                        element pg-code {text}?,\n                        (\n                            (StatementExerciseWW, HintWW?, SolutionWW?)\n                        |\n                            (IntroductionText?, TaskWW+, ConclusionText?)\n                        )\n                    ) |\n                    text\n                }\n            BlockStatementWW =\n                        Paragraph |\n                        Preformatted |\n                        Tabular |\n                        ImageWW\n            StatementExerciseWW =\n                element statement {\n                    (BlockStatementWW|WWInstruction)+\n                }\n            TaskWW =\n                element task {\n                    MetaDataTitleOptional,\n                    (\n                        (StatementExerciseWW, HintWW?, SolutionWW?) |\n                        (IntroductionText?, TaskWW+, ConclusionText?)\n                    )\n                }\n            WWMacros =\n                element pg-macros {\n                    element macro-file {text}+\n                }\n            WWVariable =\n                ## The WeBWorK \"var\" element appears in the RELAX-NG schema as a child of many elements, but almost always as a descendant of a \"p\" element or a \"cell\" element.  As an element that is only relevant for a WeBWorK problem, occurrences of \"var\" must be within a \"webwork\" element.  A Schematron rule will check on these two situations.\n                element var {\n                    (attribute name {text},\n                    attribute evaluator {text}?,\n                    attribute width {text}?,\n                    attribute category {\n                                        \"angle\" | \"decimal\" | \"exponent\"\n                                      | \"formula\" | \"fraction\" | \"inequality\"\n                                      | \"integer\" | \"interval\" | \"logarithm\"\n                                      | \"limit\" | \"number\" | \"point\"\n                                      | \"syntax\" | \"quantity\" | \"vector\"\n                                      }?,\n                    attribute form {\"popup\"|\"buttons\"|\"checkboxes\"|\"none\"}?) |\n                    (attribute form {\"essay\"},\n                    attribute width {text}?)\n                }\n            WWInstruction =\n                element instruction {TextShort}\n            HintWW =\n                element hint {\n                    (BlockStatementWW)+\n                }\n            SolutionWW =\n                element solution {\n                    (BlockStatementWW)+\n                }\n            \n            Fragment =\n                element fragment {\n                    (\n                        attribute xml:id {text}\n                    |\n                        (\n                            attribute filename {text},\n                            attribute xml:id {text}?\n                         )\n                    ),\n                    Title,\n                    (\n                        element code {text} |\n                        element fragref {\n                            attribute ref {text}\n                        }\n                    )+\n                }\n            \n            \n            Attribution =\n                element attribution {\n                    (TextLong | LongLine+)\n                }\n            \n            UniqueID =\n                attribute xml:id {text}\n            LabelID =\n                attribute label {text}\n            Component =\n                attribute component {text}\n            Title =\n                element title {TextLong}\n            LinedTitle =\n                element title {LongLine+}\n            Subtitle =\n                element subtitle {TextLong}\n            LinedSubtitle =\n                element subtitle {LongLine+}\n            ShortTitle =\n                element shorttitle {TextShort}\n            PlainTitle =\n                element plaintitle {text}\n            Creator =\n                element creator {TextShort}\n            XMLBase = attribute xml:base {text}\n            XMLLang = attribute xml:lang {text}\n            MetaDataTarget =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                Index*\n            MetaDataTitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title,\n                Index*\n            MetaDataAltTitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title,\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataLinedTitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                (Title | LinedTitle),\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataSubtitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title,\n                Subtitle?,\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataLinedSubtitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                (Title | LinedTitle),\n                (Subtitle | LinedSubtitle)?,\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataTitleOptional =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title?,\n                Index*\n            MetaDataAltTitleOptional =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                (Title, ShortTitle?, PlainTitle?)?,\n                Index*\n            MetaDataTitleCreatorOptional =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title?,\n                Creator?,\n                Index*\n            MetaDataCaption =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title?,\n                Caption,\n                Index*\n            \n            TextParagraph = mixed { (\n                Character |\n                Generator |\n                Verbatim |\n                Group |\n                WWVariable |\n                MathInline |\n                Music |\n                Reference |\n                Custom |\n                CodeDisplay |\n                MathDisplay |\n                List |\n                Footnote |\n                Notation |\n                Index)* }\n            Paragraph =\n                element p {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    TextParagraph\n                }\n            ParagraphLined =\n                element p {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    element line {TextShort}+\n                }\n            \n            TextSimple = mixed {\n                Character* }\n            TextShort = mixed { (\n                Character |\n                Generator |\n                Verbatim |\n                Group |\n                MathInline |\n                Music)* }\n            TextLong =  mixed { (\n                Character |\n                Generator |\n                Verbatim |\n                Group |\n                MathInline |\n                Music |\n                Reference |\n                Custom |\n                WWVariable)* }\n                \n            Footnote =\n                element fn {\n                    MetaDataTarget,\n                    TextLong\n                }\n            \n            IdxHeading =\n                element h {\n                    attribute sortby {text}?,\n                    TextShort\n                }\n            Index =\n                element idx {\n                    MetaDataTarget,\n                    attribute sortby {text}?,\n                    attribute start {text}?,\n                    attribute finish {text}?,\n                    (\n                        TextShort\n                    |\n                        (\n                        IdxHeading,\n                        IdxHeading?,\n                        IdxHeading?,\n                        (element see {TextShort} | element seealso {TextShort})?\n                        )\n                    )\n                }\n            IndexList = element index-list {empty}\n            \n            XrefTextStyle =\n                \"local\" | \"global\" | \"hybrid\" | \"type-local\" | \"type-global\" |\n                \"type-hybrid\" | \"phrase-global\" | \"phrase-hybrid\" |\n                \"type-local-title\" | \"type-global-title\" |\n                \"title\" | \"custom\"\n            Reference = Url | Xref | DataUrl\n            Custom =\n                element custom {\n                    attribute ref {text},\n                    empty\n                }\n            DataUrl =\n                element dataurl {\n                    (attribute href {text} | attribute source {text}),\n                    attribute visual {text}?,\n                    TextShort?\n                }\n            Url =\n                element url {\n                    attribute href {text},\n                    attribute visual {text}?,\n                    TextShort?\n                }\n            Xref =\n                element xref {\n                        (\n                            attribute ref {text} |\n                            (attribute first {text}, attribute last {text}) |\n                            attribute provisional {text}\n                        ),\n                        attribute text { XrefTextStyle }?,\n                        attribute detail {text}?,\n                        TextShort\n                }\n            NotationDescription =\n                element description {\n                    TextShort\n                }\n            Notation =\n                element notation {\n                    element usage {MathInline},\n                    NotationDescription\n                }\n            \n            FillInMath = element fillin {\n                             (attribute fill{text}?|attribute characters {xsd:integer}?),\n                             empty\n                         }\n            MathInline =\n                element m {\n                    mixed {(FillInMath | WWVariable)*}\n                }\n            TagSymbol = \"star\" | \"dstar\" | \"tstar\" |\n                        \"dagger\" | \"ddagger\" | \"tdagger\" |\n                        \"daggerdbl\" | \"ddaggerdbl\" | \"tdaggerdbl\" |\n                        \"hash\" | \"dhash\" | \"thash\" |\n                        \"maltese\" | \"dmaltese\" | \"tmaltese\"\n            MathRow =\n                element mrow {\n                    MetaDataTarget,\n                    (\n                        attribute number {\"yes\" | \"no\"} |\n                        attribute tag { TagSymbol }\n                    )?,\n                    attribute break {\"yes\" | \"no\"}?,\n                    mixed {(Xref | FillInMath | WWVariable)*}\n                }\n            MathIntertext = element intertext {TextLong}\n            MathDisplay =\n                element md {\n                    # common to both forms\n                    Component?,\n                    Index*,\n                    (\n                        # single-line: text content, optional @xml:id\n                        # makes it a cross-reference target, no @label;\n                        # @number and @tag are mutually exclusive,\n                        # @number defaults to \"no\"\n                        (\n                            UniqueID?,\n                            (\n                                attribute number {\"yes\" | \"no\"} |\n                                attribute tag { TagSymbol }\n                            )?,\n                            mixed {(Xref | FillInMath | WWVariable)*}\n                        ) |\n                        # multi-line: \"mrow\" content, not itself a\n                        # cross-reference target, so no @xml:id, no @label;\n                        # @number defaults to \"no\" and applies to each \"mrow\"\n                        (\n                            attribute number {\"yes\" | \"no\"}?,\n                            attribute break {\"yes\" | \"no\"}?,\n                            attribute alignment {text}?,\n                            attribute alignat-columns {text}?,\n                            MathRow, (MathRow | MathIntertext)*\n                        )\n                    )\n                }\n            \n            Verbatim =\n                element c {text} |\n                Email |\n                element pf {\n                    attribute language {text}?,\n                    text\n                }\n            \n            Group |=\n                element abbr {TextSimple} |\n                element acro {TextSimple} |\n                element init {TextSimple}\n            \n            Group |=\n                element q {TextLong} |\n                element sq {TextLong} |\n                element angles {TextLong} |\n                element dblbrackets {TextLong}\n                \n            Group |=\n                element em {TextLong} |\n                element term {TextLong} |\n                element alert {TextLong} |\n                element pubtitle {TextLong} |\n                element articletitle {TextLong} |\n                element foreign {\n                  XMLLang?,\n                  TextLong\n                }\n            \n            Group |=\n                element delete {TextLong} |\n                element insert {TextLong} |\n                element stale {TextLong}\n                \n            Group |=\n                element tag {text} |\n                element tage {text} |\n                element attr {text}\n            \n            Group |=\n                element taxon {\n                    attribute ncbi {xsd:integer}?,\n                    (\n                        text |\n                        (\n                            element genus {text}?,\n                            element species {text}?\n                        )\n                    )\n                }\n            \n            Generator =\n                element today {empty} |\n                element timeofday {empty} |\n                element tex {empty} |\n                element latex {empty} |\n                element xetex {empty} |\n                element xelatex {empty} |\n                element pretext {empty} |\n                element prefigure {empty} |\n                element webwork {empty} |\n                element ad {empty} |\n                element am {empty} |\n                element bc {empty} |\n                element ca {empty} |\n                element eg {empty} |\n                element etal {empty} |\n                element etc {empty} |\n                element ie {empty} |\n                element nb {empty} |\n                element pm {empty} |\n                element ps {empty} |\n                element vs {empty} |\n                element viz {empty}\n            \n            FillInText =\n                element fillin {\n                    attribute characters {xsd:integer}?,\n                    attribute rows {xsd:integer}?,\n                    attribute cols {xsd:integer}?,\n                    empty\n                }\n            Generator |=\n                FillInText\n            \n            UnitSpecification =\n                    attribute prefix {text}?,\n                    attribute base {text},\n                    attribute exp {xsd:integer}?\n            Generator |=\n                element quantity {\n                    element mag {text}?,\n                    element unit {UnitSpecification}*,\n                    element per {UnitSpecification}*\n                }\n            \n            Character |=\n                element nbsp {empty} |\n                element ndash {empty} |\n                element mdash {empty}\n            \n            Character =\n                element lsq {empty} |\n                element rsq {empty} |\n                element rq {empty} |\n                element lq {empty} |\n                element ldblbracket {empty} |\n                element rdblbracket {empty} |\n                element langle {empty}|\n                element rangle {empty}\n            \n            Character |=\n                element minus {empty} |\n                element times {empty} |\n                element solidus {empty} |\n                element obelus {empty} |\n                element plusminus {empty} |\n                element degree {empty} |\n                element prime {empty} |\n                element dblprime {empty}\n            \n            CopyrightCharacter =\n                element copyright {empty}\n            Character |=\n                element ellipsis {empty} |\n                element midpoint {empty} |\n                element swungdash {empty} |\n                element permille {empty} |\n                element pilcrow {empty} |\n                element section-mark {empty} |\n                element copyleft {empty} |\n                CopyrightCharacter |\n                element registered {empty} |\n                element trademark {empty} |\n                element phonomark {empty} |\n                element servicemark {empty}\n            \n            Character |=\n                element icon {\n                    attribute name {text}\n                }\n                \n            Character |=\n                element kbd {\n                    (text | attribute name {text})\n                }\n            \n            MusicFlat =\n                element flat {empty}\n            MusicSharp =\n                element sharp {empty}\n            Music =\n                element doublesharp {empty} |\n                MusicSharp |\n                element natural {empty} |\n                MusicFlat |\n                element doubleflat {empty} |\n                element scaledeg {\"0\"|\"1\"|\"2\"|\"3\"|\"4\"|\"5\"|\"6\"|\"7\"|\"8\"|\"9\"|\"10\"} |\n                element timesignature {\n                    attribute top {text},\n                    attribute bottom {text}\n                } |\n                element n {\n                    attribute pc {\n                        \"A\"|\"B\"|\"C\"|\"D\"|\"E\"|\"F\"|\"G\"|\"a\"|\"b\"|\"c\"|\"d\"|\"e\"|\"f\"|\"g\"|\n                        \"1\"|\"2\"|\"3\"|\"4\"|\"5\"|\"6\"|\"7\"|\"8\"|\"9\"|\"10\"\n                    },\n                    attribute acc {\"doublesharp\"|\"sharp\"|\"flat\"|\"doubleflat\"}?,\n                    attribute octave {\"1\"|\"2\"|\"3\"|\"4\"|\"5\"}?\n                } |\n                element chord {\n                    attribute root {text}?,\n                    attribute mode {text}?,\n                    attribute bps {text}?,\n                    attribute bass {text}?,\n                    attribute suspended {\"yes\"|\"no\"}?,\n                    attribute parentheses {\"yes\"|\"no\"}?,\n                    element alteration {\n                        (TextSimple |\n                        MusicSharp |\n                        MusicFlat)*\n                    }*\n                }\n                \n            ListGenerator =\n                element list-of {\n                    attribute elements {text},\n                    attribute scope {text}?,\n                    attribute divisions {text}?,\n                    attribute empty {\"yes\" | \"no\"}?\n                }\n            NotationList =\n                element notation-list {empty}\n            \n            DocInfo =\n                element docinfo {\n                    XMLBase?,\n                    XMLLang?,\n                    Configuration+\n                }\n            \n            Configuration |=\n                element brandlogo {\n                    attribute url {text}?,\n                    attribute source {text}\n                }\n            \n            Configuration |=\n                    element math-package {\n                        attribute latex-name {text},\n                        attribute mathjax-name {text}\n                    }*\n            Configuration |=\n                element latex-image-preamble {text}\n            Configuration |=\n                element asymptote-preamble {text}\n            \n            Configuration |=\n                element macros {text}\n            \n            Configuration |=\n                element\n                    cross-references {\n                        attribute text { XrefTextStyle }\n                    }\n            \n            Configuration |=\n                element initialism {text}\n            \n            FeedbackUrl = element url {text}\n            Configuration |=\n                element feedback {\n                    FeedbackUrl\n                }\n            \n            Configuration |=\n                element rename {\n                    attribute element {text},\n                    attribute xml:lang {text}?,\n                    text\n                }\n            \n            Configuration |=\n                element images {\n                    element archive {\n                        attribute from {text}?,\n                        text\n                    }+\n                }\n            \n            Configuration |=\n                element author-biographies {\n                    attribute length {\"short\" | \"long\"}\n                }\n            \n            Configuration |=\n                element numbering {\n                    element division {\n                        attribute part {\"decorative\" | \"structural\"}\n                    }?\n                }\n            \n            Configuration |=\n                element programs {\n                    attribute language {text}?,\n                    attribute compiler-args {text}?,\n                    attribute download {\"yes\"|\"no\"}?,\n                    attribute linenumbers {\"yes\"|\"no\"}?,\n                    attribute linker-args {text}?,\n                    attribute interpreter-args {text}?,\n                    attribute timeout {text}?\n                }\n            \n            Configuration |=\n                element parsons {\n                    attribute language {text}?\n                }\n            \n                    }\n                "
  },
  {
    "path": "schema/pretext.rng",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<grammar xmlns:a=\"http://relaxng.org/ns/compatibility/annotations/1.0\" xmlns:pf=\"https://prefigure.org\" xmlns=\"http://relaxng.org/ns/structure/1.0\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\">\n  <start>\n    <choice>\n      <ref name=\"PretextRoot\"/>\n      <ref name=\"DocInfo\"/>\n      <ref name=\"Part\"/>\n      <ref name=\"Chapter\"/>\n      <ref name=\"Section\"/>\n      <ref name=\"Subsection\"/>\n      <ref name=\"Subsubsection\"/>\n      <ref name=\"Printout\"/>\n      <ref name=\"Paragraphs\"/>\n      <ref name=\"ReadingQuestions\"/>\n      <ref name=\"Exercises\"/>\n      <ref name=\"Subexercises\"/>\n      <ref name=\"Solutions\"/>\n      <ref name=\"BookFrontMatter\"/>\n      <ref name=\"ArticleFrontMatter\"/>\n      <ref name=\"BookBackMatter\"/>\n      <ref name=\"ArticleBackMatter\"/>\n      <ref name=\"Preface\"/>\n      <ref name=\"Acknowledgement\"/>\n      <ref name=\"ArticleAppendix\"/>\n      <ref name=\"BookAppendix\"/>\n      <ref name=\"IndexDivision\"/>\n      <ref name=\"References\"/>\n      <ref name=\"Glossary\"/>\n      <ref name=\"Figure\"/>\n      <ref name=\"WebWork\"/>\n    </choice>\n  </start>\n  <define name=\"PretextRoot\">\n    <element name=\"pretext\">\n      <optional>\n        <ref name=\"XMLLang\"/>\n      </optional>\n      <optional>\n        <ref name=\"DocInfo\"/>\n      </optional>\n      <choice>\n        <ref name=\"Book\"/>\n        <ref name=\"Article\"/>\n        <ref name=\"Letter\"/>\n        <ref name=\"Memorandum\"/>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Article\">\n    <element name=\"article\">\n      <ref name=\"MetaDataLinedSubtitle\"/>\n      <optional>\n        <ref name=\"ArticleFrontMatter\"/>\n      </optional>\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"Objectives\"/>\n          </optional>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockDivision\"/>\n              <ref name=\"Paragraphs\"/>\n            </choice>\n          </oneOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Printout\"/>\n            </optional>\n            <optional>\n              <ref name=\"ReadingQuestions\"/>\n            </optional>\n            <optional>\n              <ref name=\"Exercises\"/>\n            </optional>\n            <optional>\n              <ref name=\"Solutions\"/>\n            </optional>\n            <optional>\n              <ref name=\"References\"/>\n            </optional>\n            <optional>\n              <ref name=\"Glossary\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"Outcomes\"/>\n          </optional>\n        </group>\n        <group>\n          <interleave>\n            <optional>\n              <ref name=\"Objectives\"/>\n            </optional>\n            <optional>\n              <ref name=\"IntroductionDivision\"/>\n            </optional>\n          </interleave>\n          <choice>\n            <ref name=\"Section\"/>\n            <ref name=\"Printout\"/>\n          </choice>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Section\"/>\n              <ref name=\"Printout\"/>\n              <ref name=\"ReadingQuestions\"/>\n              <ref name=\"Exercises\"/>\n              <ref name=\"Solutions\"/>\n              <ref name=\"References\"/>\n              <ref name=\"Glossary\"/>\n            </choice>\n          </zeroOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Outcomes\"/>\n            </optional>\n            <optional>\n              <ref name=\"ConclusionDivision\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"ArticleBackMatter\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Book\">\n    <element name=\"book\">\n      <a:documentation>Here is what a book looks like.</a:documentation>\n      <ref name=\"MetaDataLinedSubtitle\"/>\n      <optional>\n        <ref name=\"BookFrontMatter\"/>\n      </optional>\n      <choice>\n        <oneOrMore>\n          <ref name=\"Part\"/>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"Chapter\"/>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"Printout\"/>\n        </oneOrMore>\n      </choice>\n      <optional>\n        <ref name=\"BookBackMatter\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Letter\">\n    <element name=\"letter\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"Memorandum\">\n    <element name=\"memo\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"Part\">\n    <element name=\"part\">\n      <ref name=\"MetaDataLinedTitle\"/>\n      <oneOrMore>\n        <ref name=\"Chapter\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Chapter\">\n    <element name=\"chapter\">\n      <ref name=\"MetaDataLinedTitle\"/>\n      <zeroOrMore>\n        <ref name=\"AuthorByline\"/>\n      </zeroOrMore>\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"Objectives\"/>\n          </optional>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockDivision\"/>\n              <ref name=\"Paragraphs\"/>\n            </choice>\n          </oneOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Printout\"/>\n            </optional>\n            <optional>\n              <ref name=\"ReadingQuestions\"/>\n            </optional>\n            <optional>\n              <ref name=\"Exercises\"/>\n            </optional>\n            <optional>\n              <ref name=\"Solutions\"/>\n            </optional>\n            <optional>\n              <ref name=\"References\"/>\n            </optional>\n            <optional>\n              <ref name=\"Glossary\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"Outcomes\"/>\n          </optional>\n        </group>\n        <group>\n          <interleave>\n            <optional>\n              <ref name=\"Objectives\"/>\n            </optional>\n            <optional>\n              <ref name=\"IntroductionDivision\"/>\n            </optional>\n          </interleave>\n          <choice>\n            <ref name=\"Section\"/>\n            <ref name=\"Printout\"/>\n          </choice>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Section\"/>\n              <ref name=\"Printout\"/>\n              <ref name=\"ReadingQuestions\"/>\n              <ref name=\"Exercises\"/>\n              <ref name=\"Solutions\"/>\n              <ref name=\"References\"/>\n              <ref name=\"Glossary\"/>\n            </choice>\n          </zeroOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Outcomes\"/>\n            </optional>\n            <optional>\n              <ref name=\"ConclusionDivision\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Section\">\n    <element name=\"section\">\n      <ref name=\"MetaDataLinedTitle\"/>\n      <zeroOrMore>\n        <ref name=\"AuthorByline\"/>\n      </zeroOrMore>\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"Objectives\"/>\n          </optional>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockDivision\"/>\n              <ref name=\"Paragraphs\"/>\n            </choice>\n          </oneOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Printout\"/>\n            </optional>\n            <optional>\n              <ref name=\"ReadingQuestions\"/>\n            </optional>\n            <optional>\n              <ref name=\"Exercises\"/>\n            </optional>\n            <optional>\n              <ref name=\"Solutions\"/>\n            </optional>\n            <optional>\n              <ref name=\"References\"/>\n            </optional>\n            <optional>\n              <ref name=\"Glossary\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"Outcomes\"/>\n          </optional>\n        </group>\n        <group>\n          <interleave>\n            <optional>\n              <ref name=\"Objectives\"/>\n            </optional>\n            <optional>\n              <ref name=\"IntroductionDivision\"/>\n            </optional>\n          </interleave>\n          <choice>\n            <ref name=\"Subsection\"/>\n            <ref name=\"Printout\"/>\n          </choice>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Subsection\"/>\n              <ref name=\"Printout\"/>\n              <ref name=\"ReadingQuestions\"/>\n              <ref name=\"Exercises\"/>\n              <ref name=\"Solutions\"/>\n              <ref name=\"References\"/>\n              <ref name=\"Glossary\"/>\n            </choice>\n          </zeroOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Outcomes\"/>\n            </optional>\n            <optional>\n              <ref name=\"ConclusionDivision\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Subsection\">\n    <element name=\"subsection\">\n      <ref name=\"MetaDataAltTitle\"/>\n      <zeroOrMore>\n        <ref name=\"AuthorByline\"/>\n      </zeroOrMore>\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"Objectives\"/>\n          </optional>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockDivision\"/>\n              <ref name=\"Paragraphs\"/>\n            </choice>\n          </oneOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Printout\"/>\n            </optional>\n            <optional>\n              <ref name=\"ReadingQuestions\"/>\n            </optional>\n            <optional>\n              <ref name=\"Exercises\"/>\n            </optional>\n            <optional>\n              <ref name=\"Solutions\"/>\n            </optional>\n            <optional>\n              <ref name=\"References\"/>\n            </optional>\n            <optional>\n              <ref name=\"Glossary\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"Outcomes\"/>\n          </optional>\n        </group>\n        <group>\n          <interleave>\n            <optional>\n              <ref name=\"Objectives\"/>\n            </optional>\n            <optional>\n              <ref name=\"IntroductionDivision\"/>\n            </optional>\n          </interleave>\n          <choice>\n            <ref name=\"Subsubsection\"/>\n            <ref name=\"Printout\"/>\n          </choice>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Subsubsection\"/>\n              <ref name=\"Printout\"/>\n              <ref name=\"ReadingQuestions\"/>\n              <ref name=\"Exercises\"/>\n              <ref name=\"Solutions\"/>\n              <ref name=\"References\"/>\n              <ref name=\"Glossary\"/>\n            </choice>\n          </zeroOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Outcomes\"/>\n            </optional>\n            <optional>\n              <ref name=\"ConclusionDivision\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Subsubsection\">\n    <element name=\"subsubsection\">\n      <ref name=\"MetaDataAltTitle\"/>\n      <zeroOrMore>\n        <ref name=\"AuthorByline\"/>\n      </zeroOrMore>\n      <optional>\n        <ref name=\"Objectives\"/>\n      </optional>\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockDivision\"/>\n          <ref name=\"Paragraphs\"/>\n        </choice>\n      </oneOrMore>\n      <interleave>\n        <optional>\n          <ref name=\"Printout\"/>\n        </optional>\n        <optional>\n          <ref name=\"ReadingQuestions\"/>\n        </optional>\n        <optional>\n          <ref name=\"Exercises\"/>\n        </optional>\n        <optional>\n          <ref name=\"Solutions\"/>\n        </optional>\n        <optional>\n          <ref name=\"References\"/>\n        </optional>\n        <optional>\n          <ref name=\"Glossary\"/>\n        </optional>\n      </interleave>\n      <optional>\n        <ref name=\"Outcomes\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"ArticleAppendix\">\n    <element name=\"appendix\">\n      <ref name=\"MetaDataAltTitle\"/>\n      <zeroOrMore>\n        <ref name=\"AuthorByline\"/>\n      </zeroOrMore>\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"Objectives\"/>\n          </optional>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockDivision\"/>\n              <ref name=\"Paragraphs\"/>\n              <ref name=\"NotationList\"/>\n            </choice>\n          </oneOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Printout\"/>\n            </optional>\n            <optional>\n              <ref name=\"ReadingQuestions\"/>\n            </optional>\n            <optional>\n              <ref name=\"Exercises\"/>\n            </optional>\n            <optional>\n              <ref name=\"Solutions\"/>\n            </optional>\n            <optional>\n              <ref name=\"References\"/>\n            </optional>\n            <optional>\n              <ref name=\"Glossary\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"Outcomes\"/>\n          </optional>\n        </group>\n        <group>\n          <interleave>\n            <optional>\n              <ref name=\"Objectives\"/>\n            </optional>\n            <optional>\n              <ref name=\"IntroductionDivision\"/>\n            </optional>\n          </interleave>\n          <choice>\n            <ref name=\"Subsection\"/>\n            <ref name=\"Printout\"/>\n          </choice>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Subsection\"/>\n              <ref name=\"Printout\"/>\n              <ref name=\"ReadingQuestions\"/>\n              <ref name=\"Exercises\"/>\n              <ref name=\"Solutions\"/>\n              <ref name=\"References\"/>\n              <ref name=\"Glossary\"/>\n            </choice>\n          </zeroOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Outcomes\"/>\n            </optional>\n            <optional>\n              <ref name=\"ConclusionDivision\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"BookAppendix\">\n    <element name=\"appendix\">\n      <ref name=\"MetaDataAltTitle\"/>\n      <zeroOrMore>\n        <ref name=\"AuthorByline\"/>\n      </zeroOrMore>\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"Objectives\"/>\n          </optional>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockDivision\"/>\n              <ref name=\"Paragraphs\"/>\n              <ref name=\"NotationList\"/>\n            </choice>\n          </oneOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Printout\"/>\n            </optional>\n            <optional>\n              <ref name=\"ReadingQuestions\"/>\n            </optional>\n            <optional>\n              <ref name=\"Exercises\"/>\n            </optional>\n            <optional>\n              <ref name=\"Solutions\"/>\n            </optional>\n            <optional>\n              <ref name=\"References\"/>\n            </optional>\n            <optional>\n              <ref name=\"Glossary\"/>\n            </optional>\n          </interleave>\n          <optional>\n            <ref name=\"Outcomes\"/>\n          </optional>\n        </group>\n        <group>\n          <interleave>\n            <optional>\n              <ref name=\"Objectives\"/>\n            </optional>\n            <optional>\n              <ref name=\"IntroductionDivision\"/>\n            </optional>\n          </interleave>\n          <choice>\n            <ref name=\"Section\"/>\n            <ref name=\"Printout\"/>\n          </choice>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"Section\"/>\n              <ref name=\"Printout\"/>\n              <ref name=\"ReadingQuestions\"/>\n              <ref name=\"Exercises\"/>\n              <ref name=\"Solutions\"/>\n              <ref name=\"References\"/>\n              <ref name=\"Glossary\"/>\n            </choice>\n          </zeroOrMore>\n          <interleave>\n            <optional>\n              <ref name=\"Outcomes\"/>\n            </optional>\n            <optional>\n              <ref name=\"ConclusionDivision\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"IndexDivision\">\n    <element name=\"index\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <ref name=\"IndexList\"/>\n    </element>\n  </define>\n  <define name=\"ArticleFrontMatter\">\n    <element name=\"frontmatter\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <ref name=\"Bibinfo\"/>\n      <ref name=\"TitlePage\"/>\n      <optional>\n        <ref name=\"Abstract\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"BookFrontMatter\">\n    <element name=\"frontmatter\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <ref name=\"Bibinfo\"/>\n      <ref name=\"TitlePage\"/>\n      <optional>\n        <ref name=\"ColophonFront\"/>\n      </optional>\n      <zeroOrMore>\n        <ref name=\"Biography\"/>\n      </zeroOrMore>\n      <optional>\n        <ref name=\"Dedication\"/>\n      </optional>\n      <optional>\n        <ref name=\"Acknowledgement\"/>\n      </optional>\n      <zeroOrMore>\n        <ref name=\"Preface\"/>\n      </zeroOrMore>\n    </element>\n  </define>\n  <define name=\"Bibinfo\">\n    <element name=\"bibinfo\">\n      <optional>\n        <choice>\n          <group>\n            <oneOrMore>\n              <ref name=\"Author\"/>\n            </oneOrMore>\n            <zeroOrMore>\n              <ref name=\"Editor\"/>\n            </zeroOrMore>\n          </group>\n          <oneOrMore>\n            <ref name=\"Editor\"/>\n          </oneOrMore>\n        </choice>\n      </optional>\n      <interleave>\n        <zeroOrMore>\n          <choice>\n            <ref name=\"Credit\"/>\n            <ref name=\"ColophonCredit\"/>\n          </choice>\n        </zeroOrMore>\n        <optional>\n          <ref name=\"Date\"/>\n        </optional>\n        <optional>\n          <ref name=\"Edition\"/>\n        </optional>\n        <zeroOrMore>\n          <ref name=\"Keywords\"/>\n        </zeroOrMore>\n        <optional>\n          <ref name=\"Support\"/>\n        </optional>\n        <optional>\n          <ref name=\"Website\"/>\n        </optional>\n        <optional>\n          <ref name=\"Copyright\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"TitlePage\">\n    <element name=\"titlepage\">\n      <element name=\"titlepage-items\">\n        <empty/>\n      </element>\n    </element>\n  </define>\n  <define name=\"Email\">\n    <element name=\"email\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"PersonName\">\n    <element name=\"personname\">\n      <ref name=\"TextSimple\"/>\n    </element>\n  </define>\n  <define name=\"Affiliation\">\n    <element name=\"affiliation\">\n      <interleave>\n        <optional>\n          <ref name=\"Department\"/>\n        </optional>\n        <optional>\n          <ref name=\"Institution\"/>\n        </optional>\n        <optional>\n          <ref name=\"Location\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Department\">\n    <element name=\"department\">\n      <choice>\n        <ref name=\"TextSimple\"/>\n        <oneOrMore>\n          <ref name=\"ShortLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Institution\">\n    <element name=\"institution\">\n      <choice>\n        <ref name=\"TextSimple\"/>\n        <oneOrMore>\n          <ref name=\"ShortLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Support\">\n    <element name=\"support\">\n      <ref name=\"TextParagraph\"/>\n    </element>\n  </define>\n  <define name=\"Location\">\n    <element name=\"location\">\n      <choice>\n        <ref name=\"TextSimple\"/>\n        <oneOrMore>\n          <ref name=\"ShortLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Keywords\">\n    <element name=\"keywords\">\n      <optional>\n        <attribute name=\"authority\"/>\n      </optional>\n      <optional>\n        <attribute name=\"variant\"/>\n      </optional>\n      <optional>\n        <ref name=\"Title\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Keyword\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Keyword\">\n    <element name=\"keyword\">\n      <optional>\n        <attribute name=\"primary\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <ref name=\"TextSimple\"/>\n    </element>\n  </define>\n  <define name=\"Edition\">\n    <element name=\"edition\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Event\">\n    <element name=\"event\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"Author\">\n    <element name=\"author\">\n      <optional>\n        <attribute name=\"corresponding\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"xml:id\"/>\n      </optional>\n      <ref name=\"PersonName\"/>\n      <optional>\n        <choice>\n          <interleave>\n            <optional>\n              <ref name=\"Department\"/>\n            </optional>\n            <optional>\n              <ref name=\"Institution\"/>\n            </optional>\n            <optional>\n              <ref name=\"Location\"/>\n            </optional>\n          </interleave>\n          <oneOrMore>\n            <ref name=\"Affiliation\"/>\n          </oneOrMore>\n        </choice>\n      </optional>\n      <optional>\n        <ref name=\"Email\"/>\n      </optional>\n      <optional>\n        <ref name=\"Biography\"/>\n      </optional>\n      <optional>\n        <ref name=\"Support\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Editor\">\n    <element name=\"editor\">\n      <ref name=\"PersonName\"/>\n      <optional>\n        <choice>\n          <interleave>\n            <optional>\n              <ref name=\"Department\"/>\n            </optional>\n            <optional>\n              <ref name=\"Institution\"/>\n            </optional>\n            <optional>\n              <ref name=\"Location\"/>\n            </optional>\n          </interleave>\n          <oneOrMore>\n            <ref name=\"Affiliation\"/>\n          </oneOrMore>\n        </choice>\n      </optional>\n      <optional>\n        <ref name=\"Email\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Credit\">\n    <element name=\"credit\">\n      <ref name=\"Title\"/>\n      <oneOrMore>\n        <ref name=\"Author\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Date\">\n    <element name=\"date\">\n      <mixed>\n        <zeroOrMore>\n          <choice>\n            <ref name=\"Character\"/>\n            <ref name=\"Generator\"/>\n          </choice>\n        </zeroOrMore>\n      </mixed>\n    </element>\n  </define>\n  <define name=\"Abstract\">\n    <element name=\"abstract\">\n      <ref name=\"MetaDataTarget\"/>\n      <oneOrMore>\n        <ref name=\"BlockText\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ColophonCredit\">\n    <element name=\"credit\">\n      <element name=\"role\">\n        <ref name=\"TextShort\"/>\n      </element>\n      <element name=\"entity\">\n        <ref name=\"TextLong\"/>\n      </element>\n    </element>\n  </define>\n  <define name=\"ShortLicense\">\n    <element name=\"shortlicense\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"Website\">\n    <element name=\"website\">\n      <ref name=\"Url\"/>\n    </element>\n  </define>\n  <define name=\"Copyright\">\n    <element name=\"copyright\">\n      <element name=\"year\">\n        <ref name=\"TextShort\"/>\n      </element>\n      <element name=\"holder\">\n        <text/>\n      </element>\n      <optional>\n        <element name=\"minilicense\">\n          <ref name=\"TextShort\"/>\n        </element>\n      </optional>\n      <optional>\n        <ref name=\"ShortLicense\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"ColophonFront\">\n    <element name=\"colophon\">\n      <ref name=\"MetaDataTarget\"/>\n      <element name=\"colophon-items\">\n        <empty/>\n      </element>\n    </element>\n  </define>\n  <define name=\"Biography\">\n    <element name=\"biography\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockStatementNoCaption\"/>\n          <ref name=\"ParagraphsNoNumber\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Dedication\">\n    <element name=\"dedication\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"ParagraphLined\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Acknowledgement\">\n    <element name=\"acknowledgement\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockStatementNoCaption\"/>\n          <ref name=\"ParagraphsNoNumber\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Preface\">\n    <element name=\"preface\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <choice>\n        <group>\n          <oneOrMore>\n            <choice>\n              <ref name=\"BlockStatementNoCaption\"/>\n              <ref name=\"ParagraphsNoNumber\"/>\n            </choice>\n          </oneOrMore>\n          <zeroOrMore>\n            <ref name=\"Attribution\"/>\n          </zeroOrMore>\n        </group>\n        <group>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"BlockStatementNoCaption\"/>\n              <ref name=\"ParagraphsNoNumber\"/>\n            </choice>\n          </zeroOrMore>\n          <ref name=\"Contributors\"/>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"BlockStatementNoCaption\"/>\n              <ref name=\"ParagraphsNoNumber\"/>\n            </choice>\n          </zeroOrMore>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"ArticleBackMatter\">\n    <element name=\"backmatter\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"ArticleAppendix\"/>\n          <ref name=\"Solutions\"/>\n        </choice>\n      </zeroOrMore>\n      <optional>\n        <ref name=\"References\"/>\n      </optional>\n      <optional>\n        <ref name=\"IndexDivision\"/>\n      </optional>\n      <optional>\n        <ref name=\"ColophonBack\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"BookBackMatter\">\n    <element name=\"backmatter\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"BookAppendix\"/>\n          <ref name=\"Solutions\"/>\n        </choice>\n      </zeroOrMore>\n      <optional>\n        <ref name=\"Glossary\"/>\n      </optional>\n      <optional>\n        <ref name=\"References\"/>\n      </optional>\n      <optional>\n        <ref name=\"IndexDivision\"/>\n      </optional>\n      <optional>\n        <ref name=\"ColophonBack\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"ColophonBack\">\n    <element name=\"colophon\">\n      <ref name=\"MetaDataTarget\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockText\"/>\n          <ref name=\"SideBySideNoCaption\"/>\n          <ref name=\"SideBySideGroupNoCaption\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Paragraphs\">\n    <element name=\"paragraphs\">\n      <ref name=\"MetaDataTitle\"/>\n      <zeroOrMore>\n        <ref name=\"Index\"/>\n      </zeroOrMore>\n      <oneOrMore>\n        <ref name=\"BlockDivision\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ParagraphsNoNumber\">\n    <element name=\"paragraphs\">\n      <ref name=\"MetaDataTitle\"/>\n      <zeroOrMore>\n        <ref name=\"Index\"/>\n      </zeroOrMore>\n      <oneOrMore>\n        <ref name=\"BlockStatementNoCaption\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ReadingQuestions\">\n    <element name=\"reading-questions\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Exercise\"/>\n      </oneOrMore>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Exercises\">\n    <element name=\"exercises\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <choice>\n        <oneOrMore>\n          <choice>\n            <ref name=\"Exercise\"/>\n            <ref name=\"ExerciseGroup\"/>\n          </choice>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"Subexercises\"/>\n        </oneOrMore>\n      </choice>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Subexercises\">\n    <element name=\"subexercises\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Exercise\"/>\n          <ref name=\"ExerciseGroup\"/>\n        </choice>\n      </oneOrMore>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Solutions\">\n    <element name=\"solutions\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <attribute name=\"inline\"/>\n      </optional>\n      <optional>\n        <attribute name=\"divisional\"/>\n      </optional>\n      <optional>\n        <attribute name=\"project\"/>\n      </optional>\n      <optional>\n        <attribute name=\"admit\">\n          <choice>\n            <value>all</value>\n            <value>odd</value>\n            <value>even</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"References\">\n    <element name=\"references\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionDivision\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"BibliographyItem\"/>\n      </oneOrMore>\n      <optional>\n        <ref name=\"ConclusionDivision\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Glossary\">\n    <element name=\"glossary\">\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <optional>\n        <ref name=\"HeadNote\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"GlossaryItem\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"PrintoutAttributes\">\n    <optional>\n      <attribute name=\"margin\"/>\n    </optional>\n    <optional>\n      <attribute name=\"top\"/>\n    </optional>\n    <optional>\n      <attribute name=\"bottom\"/>\n    </optional>\n    <optional>\n      <attribute name=\"right\"/>\n    </optional>\n    <optional>\n      <attribute name=\"left\"/>\n    </optional>\n  </define>\n  <define name=\"PrintoutBlock\">\n    <choice>\n      <ref name=\"BlockStatement\"/>\n      <ref name=\"Remark\"/>\n      <ref name=\"Computation\"/>\n      <ref name=\"Theorem\"/>\n      <ref name=\"Proof\"/>\n      <ref name=\"Definition\"/>\n      <ref name=\"Axiom\"/>\n      <ref name=\"Example\"/>\n      <ref name=\"PrintoutExercise\"/>\n      <ref name=\"Project\"/>\n      <ref name=\"Poem\"/>\n      <ref name=\"Assemblage\"/>\n      <ref name=\"ListGenerator\"/>\n      <ref name=\"Fragment\"/>\n      <ref name=\"PrintoutSideBySide\"/>\n      <ref name=\"Paragraphs\"/>\n    </choice>\n  </define>\n  <!-- Allow exercise in sidebyside -->\n  <define name=\"PrintoutSideBySide\">\n    <element name=\"sidebyside\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Figure\"/>\n          <ref name=\"Poem\"/>\n          <ref name=\"Tabular\"/>\n          <ref name=\"Image\"/>\n          <ref name=\"Video\"/>\n          <ref name=\"Program\"/>\n          <ref name=\"Console\"/>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"Preformatted\"/>\n          <ref name=\"List\"/>\n          <ref name=\"Stack\"/>\n          <ref name=\"PrintoutExercise\"/>\n          <ref name=\"PrintoutTask\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <!-- Exercises and tasks can have workspace: -->\n  <define name=\"PrintoutExercise\">\n    <element name=\"exercise\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <attribute name=\"number\"/>\n      </optional>\n      <optional>\n        <attribute name=\"workspace\"/>\n      </optional>\n      <choice>\n        <ref name=\"ExerciseBody\"/>\n        <group>\n          <ref name=\"StatementExercise\"/>\n          <zeroOrMore>\n            <ref name=\"Hint\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Answer\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Solution\"/>\n          </zeroOrMore>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionText\"/>\n          </optional>\n          <ref name=\"WebWork\"/>\n          <optional>\n            <ref name=\"ConclusionText\"/>\n          </optional>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionStatement\"/>\n          </optional>\n          <oneOrMore>\n            <ref name=\"PrintoutTask\"/>\n          </oneOrMore>\n          <optional>\n            <ref name=\"ConclusionStatement\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"PrintoutTask\">\n    <element name=\"task\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <attribute name=\"workspace\"/>\n      </optional>\n      <choice>\n        <oneOrMore>\n          <ref name=\"BlockStatement\"/>\n        </oneOrMore>\n        <group>\n          <ref name=\"Statement\"/>\n          <zeroOrMore>\n            <ref name=\"Hint\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Answer\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Solution\"/>\n          </zeroOrMore>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionStatement\"/>\n          </optional>\n          <oneOrMore>\n            <ref name=\"PrintoutTask\"/>\n          </oneOrMore>\n          <optional>\n            <ref name=\"ConclusionStatement\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <!-- Page can contain a printout block or be empty -->\n  <define name=\"Page\">\n    <element name=\"page\">\n      <choice>\n        <oneOrMore>\n          <ref name=\"PrintoutBlock\"/>\n        </oneOrMore>\n        <empty/>\n      </choice>\n    </element>\n  </define>\n  <!-- Main worksheet definition -->\n  <define name=\"Worksheet\">\n    <element name=\"worksheet\">\n      <ref name=\"PrintoutAttributes\"/>\n      <ref name=\"MetaDataAltTitleOptional\"/>\n      <interleave>\n        <optional>\n          <ref name=\"Objectives\"/>\n        </optional>\n        <optional>\n          <ref name=\"IntroductionDivision\"/>\n        </optional>\n      </interleave>\n      <choice>\n        <oneOrMore>\n          <ref name=\"Page\"/>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"PrintoutBlock\"/>\n        </oneOrMore>\n      </choice>\n      <interleave>\n        <optional>\n          <ref name=\"Outcomes\"/>\n        </optional>\n        <optional>\n          <ref name=\"ConclusionDivision\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <!-- Printout currently just means a Worksheet, but could be extended later. -->\n  <define name=\"Printout\">\n    <ref name=\"Worksheet\"/>\n  </define>\n  <define name=\"BlockText\">\n    <choice>\n      <ref name=\"Paragraph\"/>\n      <ref name=\"BlockQuote\"/>\n      <ref name=\"Preformatted\"/>\n      <ref name=\"Image\"/>\n      <ref name=\"Video\"/>\n      <ref name=\"Program\"/>\n      <ref name=\"Console\"/>\n      <ref name=\"Tabular\"/>\n    </choice>\n  </define>\n  <define name=\"BlockStatementNoCaption\">\n    <choice>\n      <ref name=\"BlockText\"/>\n      <ref name=\"Aside\"/>\n      <ref name=\"SideBySideNoCaption\"/>\n      <ref name=\"SideBySideGroupNoCaption\"/>\n    </choice>\n  </define>\n  <define name=\"BlockStatement\">\n    <choice>\n      <ref name=\"BlockText\"/>\n      <ref name=\"Figure\"/>\n      <ref name=\"Aside\"/>\n      <ref name=\"SideBySide\"/>\n      <ref name=\"SideBySideGroup\"/>\n      <ref name=\"Sage\"/>\n    </choice>\n  </define>\n  <define name=\"BlockSolution\">\n    <choice>\n      <ref name=\"BlockStatement\"/>\n      <ref name=\"Proof\"/>\n    </choice>\n  </define>\n  <define name=\"BlockDivision\">\n    <choice>\n      <ref name=\"BlockStatement\"/>\n      <ref name=\"Remark\"/>\n      <ref name=\"Computation\"/>\n      <ref name=\"Theorem\"/>\n      <ref name=\"Proof\"/>\n      <ref name=\"Definition\"/>\n      <ref name=\"Axiom\"/>\n      <ref name=\"Example\"/>\n      <ref name=\"Exercise\"/>\n      <ref name=\"Project\"/>\n      <ref name=\"Poem\"/>\n      <ref name=\"Assemblage\"/>\n      <ref name=\"ListGenerator\"/>\n      <ref name=\"Fragment\"/>\n    </choice>\n  </define>\n  <define name=\"Prelude\">\n    <element name=\"prelude\">\n      <oneOrMore>\n        <ref name=\"BlockText\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Interlude\">\n    <element name=\"interlude\">\n      <oneOrMore>\n        <ref name=\"BlockText\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Postlude\">\n    <element name=\"postlude\">\n      <oneOrMore>\n        <ref name=\"BlockText\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Statement\">\n    <element name=\"statement\">\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Hint\">\n    <element name=\"hint\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"BlockSolution\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Answer\">\n    <element name=\"answer\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"BlockSolution\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Solution\">\n    <element name=\"solution\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"BlockSolution\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"IntroductionText\">\n    <element name=\"introduction\">\n      <oneOrMore>\n        <ref name=\"BlockText\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ConclusionText\">\n    <element name=\"conclusion\">\n      <oneOrMore>\n        <ref name=\"BlockText\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"IntroductionStatementNoCaption\">\n    <element name=\"introduction\">\n      <oneOrMore>\n        <ref name=\"BlockStatementNoCaption\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ConclusionStatementNoCaption\">\n    <element name=\"conclusion\">\n      <oneOrMore>\n        <ref name=\"BlockStatementNoCaption\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"IntroductionStatement\">\n    <element name=\"introduction\">\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ConclusionStatement\">\n    <element name=\"conclusion\">\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"IntroductionDivision\">\n    <element name=\"introduction\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"BlockDivision\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ConclusionDivision\">\n    <element name=\"conclusion\">\n      <optional>\n        <ref name=\"MetaDataTitleOptional\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"BlockDivision\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"HeadNote\">\n    <element name=\"headnote\">\n      <oneOrMore>\n        <ref name=\"BlockStatementNoCaption\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Objectives\">\n    <element name=\"objectives\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionText\"/>\n      </optional>\n      <ref name=\"List\"/>\n      <optional>\n        <ref name=\"ConclusionText\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Outcomes\">\n    <element name=\"outcomes\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <ref name=\"IntroductionText\"/>\n      </optional>\n      <ref name=\"List\"/>\n      <optional>\n        <ref name=\"ConclusionText\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"BlockQuote\">\n    <element name=\"blockquote\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"Paragraph\"/>\n      </oneOrMore>\n      <optional>\n        <ref name=\"Attribution\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"SimpleLine\">\n    <element name=\"line\">\n      <ref name=\"TextSimple\"/>\n    </element>\n  </define>\n  <define name=\"ShortLine\">\n    <element name=\"line\">\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"LongLine\">\n    <element name=\"line\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"CodeLine\">\n    <element name=\"cline\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"CodeDisplay\">\n    <element name=\"cd\">\n      <optional>\n        <attribute name=\"latexsep\"/>\n      </optional>\n      <choice>\n        <text/>\n        <oneOrMore>\n          <ref name=\"CodeLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Preformatted\">\n    <element name=\"pre\">\n      <choice>\n        <text/>\n        <oneOrMore>\n          <ref name=\"CodeLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"ConsoleOutput\">\n    <element name=\"output\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"ConsoleInput\">\n    <element name=\"input\">\n      <optional>\n        <attribute name=\"prompt\"/>\n      </optional>\n      <optional>\n        <attribute name=\"continuation\"/>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"Console\">\n    <element name=\"console\">\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"prompt\"/>\n      </optional>\n      <optional>\n        <attribute name=\"continuation\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"margins\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"ConsoleInput\"/>\n        <optional>\n          <ref name=\"ConsoleOutput\"/>\n        </optional>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ProgramPreamble\">\n    <element name=\"preamble\">\n      <optional>\n        <attribute name=\"visible\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"ProgramCode\">\n    <element name=\"code\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"ProgramPostamble\">\n    <element name=\"postamble\">\n      <optional>\n        <attribute name=\"visible\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"ProgramTests\">\n    <element name=\"tests\">\n      <optional>\n        <attribute name=\"visible\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <choice>\n        <text/>\n        <oneOrMore>\n          <element name=\"iotest\">\n            <element name=\"input\">\n              <text/>\n            </element>\n            <element name=\"output\">\n              <text/>\n            </element>\n          </element>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"ProgramStdin\">\n    <element name=\"stdin\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"CodelensCheckpoint\">\n    <element name=\"checkpoint\">\n      <attribute name=\"line\"/>\n      <choice>\n        <attribute name=\"answer\"/>\n        <attribute name=\"answer-variable\"/>\n      </choice>\n      <element name=\"prompt\">\n        <oneOrMore>\n          <ref name=\"BlockText\"/>\n        </oneOrMore>\n      </element>\n      <optional>\n        <element name=\"feedback\">\n          <oneOrMore>\n            <ref name=\"BlockText\"/>\n          </oneOrMore>\n        </element>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Program\">\n    <element name=\"program\">\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"margins\"/>\n      </optional>\n      <optional>\n        <attribute name=\"autorun\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"chatcodes\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"codelens\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"starting-step\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"compiler-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"extra-compiler-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"database\"/>\n      </optional>\n      <optional>\n        <attribute name=\"add-files\"/>\n      </optional>\n      <optional>\n        <attribute name=\"compile-also\"/>\n      </optional>\n      <optional>\n        <attribute name=\"download\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"hidecode\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"highlight-lines\"/>\n      </optional>\n      <optional>\n        <attribute name=\"include\"/>\n      </optional>\n      <optional>\n        <attribute name=\"filename\"/>\n      </optional>\n      <optional>\n        <attribute name=\"interactive\">\n          <choice>\n            <value>codelens</value>\n            <value>activecode</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"interpreter-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"language\"/>\n      </optional>\n      <optional>\n        <attribute name=\"line-numbers\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"linker-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"timelimit\"/>\n      </optional>\n      <choice>\n        <text/>\n        <group>\n          <optional>\n            <ref name=\"ProgramPreamble\"/>\n          </optional>\n          <ref name=\"ProgramCode\"/>\n          <optional>\n            <ref name=\"ProgramPostamble\"/>\n          </optional>\n          <optional>\n            <ref name=\"ProgramTests\"/>\n          </optional>\n          <optional>\n            <ref name=\"ProgramStdin\"/>\n          </optional>\n          <zeroOrMore>\n            <ref name=\"CodelensCheckpoint\"/>\n          </zeroOrMore>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"ListItem\">\n    <element name=\"li\">\n      <choice>\n        <group>\n          <ref name=\"MetaDataTarget\"/>\n          <ref name=\"TextParagraph\"/>\n        </group>\n        <group>\n          <ref name=\"MetaDataTitleOptional\"/>\n          <oneOrMore>\n            <ref name=\"BlockStatement\"/>\n          </oneOrMore>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"DefinitionListItem\">\n    <element name=\"li\">\n      <ref name=\"MetaDataTitle\"/>\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"List\">\n    <choice>\n      <element name=\"ol\">\n        <optional>\n          <ref name=\"Component\"/>\n        </optional>\n        <optional>\n          <attribute name=\"cols\">\n            <choice>\n              <value>2</value>\n              <value>3</value>\n              <value>4</value>\n              <value>5</value>\n              <value>6</value>\n            </choice>\n          </attribute>\n        </optional>\n        <optional>\n          <attribute name=\"marker\"/>\n        </optional>\n        <oneOrMore>\n          <ref name=\"ListItem\"/>\n        </oneOrMore>\n      </element>\n      <element name=\"ul\">\n        <optional>\n          <ref name=\"Component\"/>\n        </optional>\n        <optional>\n          <attribute name=\"cols\">\n            <choice>\n              <value>2</value>\n              <value>3</value>\n              <value>4</value>\n              <value>5</value>\n              <value>6</value>\n            </choice>\n          </attribute>\n        </optional>\n        <optional>\n          <attribute name=\"marker\">\n            <choice>\n              <value>disc</value>\n              <value>circle</value>\n              <value>square</value>\n              <value/>\n            </choice>\n          </attribute>\n        </optional>\n        <oneOrMore>\n          <ref name=\"ListItem\"/>\n        </oneOrMore>\n      </element>\n      <element name=\"dl\">\n        <optional>\n          <ref name=\"Component\"/>\n        </optional>\n        <optional>\n          <attribute name=\"width\">\n            <choice>\n              <value>narrow</value>\n              <value>medium</value>\n              <value>wide</value>\n            </choice>\n          </attribute>\n        </optional>\n        <oneOrMore>\n          <ref name=\"DefinitionListItem\"/>\n        </oneOrMore>\n      </element>\n    </choice>\n  </define>\n  <define name=\"DefinitionLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <zeroOrMore>\n      <ref name=\"Notation\"/>\n    </zeroOrMore>\n    <ref name=\"Statement\"/>\n  </define>\n  <define name=\"Definition\">\n    <element name=\"definition\">\n      <ref name=\"DefinitionLike\"/>\n    </element>\n  </define>\n  <define name=\"Case\">\n    <element name=\"case\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <attribute name=\"direction\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Proof\">\n    <element name=\"proof\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockStatement\"/>\n          <ref name=\"Case\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"TheoremLike\">\n    <ref name=\"MetaDataTitleCreatorOptional\"/>\n    <choice>\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n      <group>\n        <ref name=\"Statement\"/>\n        <zeroOrMore>\n          <ref name=\"Proof\"/>\n        </zeroOrMore>\n      </group>\n    </choice>\n  </define>\n  <define name=\"Theorem\">\n    <choice>\n      <element name=\"theorem\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"lemma\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"corollary\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"claim\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"proposition\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"algorithm\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"fact\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n      <element name=\"identity\">\n        <ref name=\"TheoremLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"AxiomLike\">\n    <ref name=\"MetaDataTitleCreatorOptional\"/>\n    <ref name=\"Statement\"/>\n  </define>\n  <define name=\"Axiom\">\n    <choice>\n      <element name=\"axiom\">\n        <ref name=\"AxiomLike\"/>\n      </element>\n      <element name=\"principle\">\n        <ref name=\"AxiomLike\"/>\n      </element>\n      <element name=\"conjecture\">\n        <ref name=\"AxiomLike\"/>\n      </element>\n      <element name=\"heuristic\">\n        <ref name=\"AxiomLike\"/>\n      </element>\n      <element name=\"hypothesis\">\n        <ref name=\"AxiomLike\"/>\n      </element>\n      <element name=\"assumption\">\n        <ref name=\"AxiomLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"ExampleLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <choice>\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n      <group>\n        <ref name=\"Statement\"/>\n        <zeroOrMore>\n          <ref name=\"Hint\"/>\n        </zeroOrMore>\n        <zeroOrMore>\n          <ref name=\"Answer\"/>\n        </zeroOrMore>\n        <zeroOrMore>\n          <ref name=\"Solution\"/>\n        </zeroOrMore>\n      </group>\n      <group>\n        <optional>\n          <ref name=\"IntroductionStatement\"/>\n        </optional>\n        <oneOrMore>\n          <ref name=\"Task\"/>\n        </oneOrMore>\n        <optional>\n          <ref name=\"ConclusionStatement\"/>\n        </optional>\n      </group>\n    </choice>\n  </define>\n  <define name=\"Example\">\n    <choice>\n      <element name=\"example\">\n        <ref name=\"ExampleLike\"/>\n      </element>\n      <element name=\"question\">\n        <ref name=\"ExampleLike\"/>\n      </element>\n      <element name=\"problem\">\n        <ref name=\"ExampleLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"ProjectLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <choice>\n      <oneOrMore>\n        <ref name=\"BlockStatement\"/>\n      </oneOrMore>\n      <group>\n        <optional>\n          <ref name=\"Prelude\"/>\n        </optional>\n        <choice>\n          <group>\n            <ref name=\"Statement\"/>\n            <zeroOrMore>\n              <ref name=\"Hint\"/>\n            </zeroOrMore>\n            <zeroOrMore>\n              <ref name=\"Answer\"/>\n            </zeroOrMore>\n            <zeroOrMore>\n              <ref name=\"Solution\"/>\n            </zeroOrMore>\n          </group>\n          <group>\n            <optional>\n              <ref name=\"IntroductionStatement\"/>\n            </optional>\n            <oneOrMore>\n              <ref name=\"Task\"/>\n            </oneOrMore>\n            <optional>\n              <ref name=\"ConclusionStatement\"/>\n            </optional>\n          </group>\n          <group>\n            <optional>\n              <ref name=\"IntroductionText\"/>\n            </optional>\n            <ref name=\"WebWork\"/>\n            <optional>\n              <ref name=\"ConclusionText\"/>\n            </optional>\n          </group>\n        </choice>\n        <optional>\n          <ref name=\"Postlude\"/>\n        </optional>\n      </group>\n    </choice>\n  </define>\n  <define name=\"Project\">\n    <choice>\n      <element name=\"activity\">\n        <ref name=\"ProjectLike\"/>\n      </element>\n      <element name=\"investigation\">\n        <ref name=\"ProjectLike\"/>\n      </element>\n      <element name=\"exploration\">\n        <ref name=\"ProjectLike\"/>\n      </element>\n      <element name=\"project\">\n        <ref name=\"ProjectLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Task\">\n    <element name=\"task\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <attribute name=\"workspace\"/>\n      </optional>\n      <choice>\n        <oneOrMore>\n          <ref name=\"BlockStatement\"/>\n        </oneOrMore>\n        <group>\n          <ref name=\"Statement\"/>\n          <zeroOrMore>\n            <ref name=\"Hint\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Answer\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Solution\"/>\n          </zeroOrMore>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionStatement\"/>\n          </optional>\n          <oneOrMore>\n            <ref name=\"Task\"/>\n          </oneOrMore>\n          <optional>\n            <ref name=\"ConclusionStatement\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"RemarkLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <oneOrMore>\n      <ref name=\"BlockStatement\"/>\n    </oneOrMore>\n  </define>\n  <define name=\"Remark\">\n    <choice>\n      <element name=\"remark\">\n        <ref name=\"RemarkLike\"/>\n      </element>\n      <element name=\"convention\">\n        <ref name=\"RemarkLike\"/>\n      </element>\n      <element name=\"note\">\n        <ref name=\"RemarkLike\"/>\n      </element>\n      <element name=\"observation\">\n        <ref name=\"RemarkLike\"/>\n      </element>\n      <element name=\"warning\">\n        <ref name=\"RemarkLike\"/>\n      </element>\n      <element name=\"insight\">\n        <ref name=\"RemarkLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"ComputationLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <oneOrMore>\n      <ref name=\"BlockStatement\"/>\n    </oneOrMore>\n  </define>\n  <define name=\"Computation\">\n    <choice>\n      <element name=\"computation\">\n        <ref name=\"ComputationLike\"/>\n      </element>\n      <element name=\"technology\">\n        <ref name=\"ComputationLike\"/>\n      </element>\n      <element name=\"data\">\n        <ref name=\"ComputationLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"AsideLike\">\n    <ref name=\"MetaDataTitleOptional\"/>\n    <oneOrMore>\n      <ref name=\"BlockText\"/>\n    </oneOrMore>\n  </define>\n  <define name=\"Aside\">\n    <choice>\n      <element name=\"aside\">\n        <ref name=\"AsideLike\"/>\n      </element>\n      <element name=\"biographical\">\n        <ref name=\"AsideLike\"/>\n      </element>\n      <element name=\"historical\">\n        <ref name=\"AsideLike\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Assemblage\">\n    <element name=\"assemblage\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockText\"/>\n          <ref name=\"SideBySideNoCaption\"/>\n          <ref name=\"SideBySideGroupNoCaption\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Caption\">\n    <element name=\"caption\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"Landscape\">\n    <attribute name=\"landscape\">\n      <choice>\n        <value>yes</value>\n        <value>no</value>\n      </choice>\n    </attribute>\n  </define>\n  <define name=\"Figure\">\n    <choice>\n      <element name=\"figure\">\n        <ref name=\"MetaDataCaption\"/>\n        <optional>\n          <ref name=\"Landscape\"/>\n        </optional>\n        <choice>\n          <ref name=\"Image\"/>\n          <ref name=\"Video\"/>\n          <ref name=\"SideBySide\"/>\n          <ref name=\"SideBySideGroup\"/>\n          <ref name=\"MuseScore\"/>\n        </choice>\n      </element>\n      <element name=\"table\">\n        <ref name=\"MetaDataAltTitle\"/>\n        <optional>\n          <ref name=\"Landscape\"/>\n        </optional>\n        <ref name=\"Tabular\"/>\n      </element>\n      <element name=\"listing\">\n        <ref name=\"MetaDataAltTitle\"/>\n        <optional>\n          <ref name=\"Landscape\"/>\n        </optional>\n        <choice>\n          <ref name=\"Program\"/>\n          <ref name=\"Console\"/>\n        </choice>\n      </element>\n      <element name=\"list\">\n        <ref name=\"MetaDataAltTitle\"/>\n        <optional>\n          <ref name=\"Landscape\"/>\n        </optional>\n        <optional>\n          <ref name=\"IntroductionText\"/>\n        </optional>\n        <ref name=\"List\"/>\n        <optional>\n          <ref name=\"ConclusionText\"/>\n        </optional>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Stack\">\n    <element name=\"stack\">\n      <oneOrMore>\n        <choice>\n          <ref name=\"Tabular\"/>\n          <ref name=\"Image\"/>\n          <ref name=\"Video\"/>\n          <ref name=\"Program\"/>\n          <ref name=\"Console\"/>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"Preformatted\"/>\n          <ref name=\"List\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SidebySideAttributes\">\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <attribute name=\"margins\"/>\n    </optional>\n    <optional>\n      <choice>\n        <attribute name=\"width\"/>\n        <attribute name=\"widths\"/>\n      </choice>\n    </optional>\n    <optional>\n      <choice>\n        <ref name=\"AlignmentVertical\"/>\n        <attribute name=\"valigns\"/>\n      </choice>\n    </optional>\n  </define>\n  <define name=\"SideBySide\">\n    <element name=\"sidebyside\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Figure\"/>\n          <ref name=\"Poem\"/>\n          <ref name=\"Tabular\"/>\n          <ref name=\"Image\"/>\n          <ref name=\"Video\"/>\n          <ref name=\"Program\"/>\n          <ref name=\"Console\"/>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"Preformatted\"/>\n          <ref name=\"List\"/>\n          <ref name=\"Stack\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SideBySideNoCaption\">\n    <element name=\"sidebyside\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <choice>\n          <ref name=\"Poem\"/>\n          <ref name=\"Tabular\"/>\n          <ref name=\"Image\"/>\n          <ref name=\"Video\"/>\n          <ref name=\"Program\"/>\n          <ref name=\"Console\"/>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"Preformatted\"/>\n          <ref name=\"List\"/>\n          <ref name=\"Stack\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SideBySideGroup\">\n    <element name=\"sbsgroup\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <ref name=\"SideBySide\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SideBySideGroupNoCaption\">\n    <element name=\"sbsgroup\">\n      <ref name=\"SidebySideAttributes\"/>\n      <oneOrMore>\n        <ref name=\"SideBySideNoCaption\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Image\">\n    <choice>\n      <ref name=\"ImageRaster\"/>\n      <ref name=\"ImageCode\"/>\n    </choice>\n  </define>\n  <define name=\"ImageDescription\">\n    <element name=\"description\">\n      <oneOrMore>\n        <choice>\n          <ref name=\"Paragraph\"/>\n          <ref name=\"Tabular\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ImageShortDescription\">\n    <element name=\"shortdescription\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"ImageShortDescriptionCode\">\n    <element name=\"shortdescription\">\n      <oneOrMore>\n        <choice>\n          <text/>\n          <ref name=\"WWVariable\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ImageRaster\">\n    <element name=\"image\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"margins\"/>\n      </optional>\n      <optional>\n        <attribute name=\"rotate\"/>\n      </optional>\n      <optional>\n        <attribute name=\"archive\"/>\n      </optional>\n      <attribute name=\"source\"/>\n      <choice>\n        <attribute name=\"decorative\">\n          <value>yes</value>\n        </attribute>\n        <group>\n          <optional>\n            <attribute name=\"decorative\">\n              <value>no</value>\n            </attribute>\n          </optional>\n          <interleave>\n            <optional>\n              <ref name=\"ImageShortDescription\"/>\n            </optional>\n            <optional>\n              <ref name=\"ImageDescription\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"CodeLatexImage\">\n    <element name=\"latex-image\">\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"AnyPFContent\">\n    <choice>\n      <text/>\n      <element>\n        <anyName/>\n        <zeroOrMore>\n          <attribute>\n            <anyName/>\n          </attribute>\n        </zeroOrMore>\n        <zeroOrMore>\n          <ref name=\"AnyPFContent\"/>\n        </zeroOrMore>\n      </element>\n    </choice>\n  </define>\n  <define name=\"ImageCode\">\n    <element name=\"image\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"margins\"/>\n      </optional>\n      <optional>\n        <attribute name=\"archive\"/>\n      </optional>\n      <choice>\n        <attribute name=\"decorative\">\n          <value>yes</value>\n        </attribute>\n        <group>\n          <optional>\n            <attribute name=\"decorative\">\n              <value>no</value>\n            </attribute>\n          </optional>\n          <interleave>\n            <optional>\n              <ref name=\"ImageShortDescriptionCode\"/>\n            </optional>\n            <optional>\n              <ref name=\"ImageDescription\"/>\n            </optional>\n            <choice>\n              <ref name=\"CodeLatexImage\"/>\n              <element name=\"asymptote\">\n                <optional>\n                  <ref name=\"LabelID\"/>\n                </optional>\n                <optional>\n                  <ref name=\"Component\"/>\n                </optional>\n                <text/>\n              </element>\n              <element name=\"sageplot\">\n                <optional>\n                  <ref name=\"LabelID\"/>\n                </optional>\n                <optional>\n                  <ref name=\"Component\"/>\n                </optional>\n                <optional>\n                  <attribute name=\"variant\">\n                    <choice>\n                      <value>2d</value>\n                      <value>3d</value>\n                    </choice>\n                  </attribute>\n                </optional>\n                <optional>\n                  <attribute name=\"aspect\"/>\n                </optional>\n                <text/>\n              </element>\n              <element name=\"mermaid\">\n                <optional>\n                  <ref name=\"LabelID\"/>\n                </optional>\n                <optional>\n                  <ref name=\"Component\"/>\n                </optional>\n                <text/>\n              </element>\n              <element name=\"pf:prefigure\">\n                <optional>\n                  <attribute name=\"label\"/>\n                </optional>\n                <zeroOrMore>\n                  <ref name=\"AnyPFContent\"/>\n                </zeroOrMore>\n              </element>\n            </choice>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"WWLatexImage\">\n    <element name=\"latex-image\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"ImageWW\">\n    <element name=\"image\">\n      <optional>\n        <attribute name=\"pg-name\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <choice>\n        <attribute name=\"decorative\">\n          <value>yes</value>\n        </attribute>\n        <group>\n          <optional>\n            <attribute name=\"decorative\">\n              <value>no</value>\n            </attribute>\n          </optional>\n          <interleave>\n            <optional>\n              <ref name=\"ImageShortDescriptionCode\"/>\n            </optional>\n            <optional>\n              <ref name=\"ImageDescription\"/>\n            </optional>\n            <optional>\n              <ref name=\"WWLatexImage\"/>\n            </optional>\n          </interleave>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"BorderThickness\">\n    <choice>\n      <value>none</value>\n      <value>minor</value>\n      <value>medium</value>\n      <value>major</value>\n    </choice>\n  </define>\n  <define name=\"BorderTop\">\n    <attribute name=\"top\">\n      <ref name=\"BorderThickness\"/>\n    </attribute>\n  </define>\n  <define name=\"BorderBottom\">\n    <attribute name=\"bottom\">\n      <ref name=\"BorderThickness\"/>\n    </attribute>\n  </define>\n  <define name=\"BorderLeft\">\n    <attribute name=\"left\">\n      <ref name=\"BorderThickness\"/>\n    </attribute>\n  </define>\n  <define name=\"BorderRight\">\n    <attribute name=\"right\">\n      <ref name=\"BorderThickness\"/>\n    </attribute>\n  </define>\n  <define name=\"AlignmentHorizontal\">\n    <attribute name=\"halign\">\n      <choice>\n        <value>left</value>\n        <value>center</value>\n        <value>right</value>\n        <value>justify</value>\n      </choice>\n    </attribute>\n  </define>\n  <define name=\"AlignmentVertical\">\n    <attribute name=\"valign\">\n      <choice>\n        <value>top</value>\n        <value>middle</value>\n        <value>bottom</value>\n      </choice>\n    </attribute>\n  </define>\n  <define name=\"TableCell\">\n    <element name=\"cell\">\n      <optional>\n        <ref name=\"AlignmentHorizontal\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderBottom\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderRight\"/>\n      </optional>\n      <optional>\n        <attribute name=\"colspan\"/>\n      </optional>\n      <choice>\n        <ref name=\"TextLong\"/>\n        <oneOrMore>\n          <ref name=\"LongLine\"/>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"Paragraph\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"TableRow\">\n    <element name=\"row\">\n      <optional>\n        <attribute name=\"header\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n            <value>vertical</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <ref name=\"AlignmentHorizontal\"/>\n      </optional>\n      <optional>\n        <ref name=\"AlignmentVertical\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderBottom\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderLeft\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"TableCell\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"TableColumn\">\n    <element name=\"col\">\n      <optional>\n        <ref name=\"AlignmentHorizontal\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderTop\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderRight\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Tabular\">\n    <element name=\"tabular\">\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"margins\"/>\n      </optional>\n      <optional>\n        <attribute name=\"row-headers\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <ref name=\"AlignmentHorizontal\"/>\n      </optional>\n      <optional>\n        <ref name=\"AlignmentVertical\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderTop\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderBottom\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderLeft\"/>\n      </optional>\n      <optional>\n        <ref name=\"BorderRight\"/>\n      </optional>\n      <zeroOrMore>\n        <ref name=\"TableColumn\"/>\n      </zeroOrMore>\n      <oneOrMore>\n        <ref name=\"TableRow\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SageOutput\">\n    <element name=\"output\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"SageInput\">\n    <element name=\"input\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Sage\">\n    <element name=\"sage\">\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"doctest\"/>\n      </optional>\n      <optional>\n        <attribute name=\"tolerance\"/>\n      </optional>\n      <optional>\n        <attribute name=\"auto-evaluate\">\n          <choice>\n            <value>no</value>\n            <value>yes</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"language\"/>\n      </optional>\n      <optional>\n        <attribute name=\"type\"/>\n      </optional>\n      <optional>\n        <ref name=\"SageInput\"/>\n        <optional>\n          <ref name=\"SageOutput\"/>\n        </optional>\n      </optional>\n    </element>\n  </define>\n  <define name=\"MuseScore\">\n    <element name=\"score\">\n      <attribute name=\"musescoreuser\"/>\n      <attribute name=\"musescore\"/>\n    </element>\n  </define>\n  <define name=\"Video\">\n    <element name=\"video\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <optional>\n        <attribute name=\"width\"/>\n      </optional>\n      <optional>\n        <attribute name=\"margins\"/>\n      </optional>\n      <optional>\n        <attribute name=\"aspect\"/>\n      </optional>\n      <optional>\n        <attribute name=\"start\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"end\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"play-at\">\n          <choice>\n            <value>embed</value>\n            <value>popout</value>\n            <value>select</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"preview\">\n          <choice>\n            <value>default</value>\n            <value>generic</value>\n            <text/>\n          </choice>\n        </attribute>\n      </optional>\n      <choice>\n        <ref name=\"AttributesSourceFile\"/>\n        <ref name=\"AttributesNetwork\"/>\n        <ref name=\"AttributesYouTube\"/>\n        <ref name=\"AttributesYouTubePlaylist\"/>\n        <ref name=\"AttributesVimeo\"/>\n      </choice>\n      <zeroOrMore>\n        <ref name=\"Track\"/>\n      </zeroOrMore>\n    </element>\n  </define>\n  <define name=\"Track\">\n    <element name=\"track\">\n      <attribute name=\"kind\"/>\n      <optional>\n        <attribute name=\"listing\"/>\n      </optional>\n      <optional>\n        <ref name=\"XMLLang\"/>\n      </optional>\n      <attribute name=\"source\"/>\n      <optional>\n        <attribute name=\"default\">\n          <value>yes</value>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"AttributesSourceFile\">\n    <attribute name=\"source\"/>\n  </define>\n  <define name=\"AttributesNetwork\">\n    <attribute name=\"href\"/>\n  </define>\n  <define name=\"AttributesYouTube\">\n    <attribute name=\"youtube\"/>\n  </define>\n  <define name=\"AttributesYouTubePlaylist\">\n    <attribute name=\"youtubeplaylist\"/>\n  </define>\n  <define name=\"AttributesVimeo\">\n    <attribute name=\"vimeo\"/>\n  </define>\n  <define name=\"ExerciseOrderedList\">\n    <element name=\"ol\">\n      <optional>\n        <attribute name=\"cols\"/>\n      </optional>\n      <optional>\n        <attribute name=\"marker\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"ExerciseListItem\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ExerciseListItem\">\n    <element name=\"li\">\n      <ref name=\"MetaDataTarget\"/>\n      <choice>\n        <ref name=\"TextParagraph\"/>\n        <oneOrMore>\n          <ref name=\"BlockText\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"ExerciseBody\">\n    <oneOrMore>\n      <choice>\n        <ref name=\"BlockStatement\"/>\n        <ref name=\"ExerciseOrderedList\"/>\n      </choice>\n    </oneOrMore>\n  </define>\n  <define name=\"StatementExercise\">\n    <element name=\"statement\">\n      <ref name=\"ExerciseBody\"/>\n    </element>\n  </define>\n  <define name=\"Exercise\">\n    <element name=\"exercise\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <attribute name=\"number\"/>\n      </optional>\n      <optional>\n        <attribute name=\"workspace\"/>\n      </optional>\n      <choice>\n        <ref name=\"ExerciseBody\"/>\n        <group>\n          <ref name=\"StatementExercise\"/>\n          <zeroOrMore>\n            <ref name=\"Hint\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Answer\"/>\n          </zeroOrMore>\n          <zeroOrMore>\n            <ref name=\"Solution\"/>\n          </zeroOrMore>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionStatement\"/>\n          </optional>\n          <oneOrMore>\n            <ref name=\"Task\"/>\n          </oneOrMore>\n          <optional>\n            <ref name=\"ConclusionStatement\"/>\n          </optional>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionText\"/>\n          </optional>\n          <ref name=\"WebWork\"/>\n          <optional>\n            <ref name=\"ConclusionText\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"ExerciseGroup\">\n    <element name=\"exercisegroup\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <attribute name=\"cols\">\n          <choice>\n            <value>2</value>\n            <value>3</value>\n            <value>4</value>\n            <value>5</value>\n            <value>6</value>\n          </choice>\n        </attribute>\n      </optional>\n      <ref name=\"IntroductionStatementNoCaption\"/>\n      <oneOrMore>\n        <ref name=\"Exercise\"/>\n      </oneOrMore>\n      <optional>\n        <ref name=\"ConclusionStatementNoCaption\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"AlignmentPoem\">\n    <attribute name=\"halign\">\n      <choice>\n        <value>left</value>\n        <value>center</value>\n        <value>right</value>\n      </choice>\n    </attribute>\n  </define>\n  <define name=\"PoemAuthor\">\n    <element name=\"author\">\n      <optional>\n        <ref name=\"AlignmentPoem\"/>\n      </optional>\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"Poem\">\n    <element name=\"poem\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <optional>\n        <ref name=\"AlignmentPoem\"/>\n      </optional>\n      <optional>\n        <ref name=\"PoemAuthor\"/>\n      </optional>\n      <choice>\n        <oneOrMore>\n          <ref name=\"PoemLine\"/>\n        </oneOrMore>\n        <oneOrMore>\n          <ref name=\"Stanza\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Stanza\">\n    <element name=\"stanza\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <oneOrMore>\n        <ref name=\"PoemLine\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"PoemLine\">\n    <element name=\"line\">\n      <optional>\n        <attribute name=\"indent\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"TextBib\">\n    <mixed>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"Character\"/>\n          <ref name=\"MathInline\"/>\n        </choice>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"BibliographyItem\">\n    <element name=\"biblio\">\n      <ref name=\"MetaDataTarget\"/>\n      <choice>\n        <group>\n          <attribute name=\"type\">\n            <value>raw</value>\n          </attribute>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"TextLong\"/>\n              <ref name=\"Ibid\"/>\n              <ref name=\"BibTitle\"/>\n              <ref name=\"BibYear\"/>\n              <ref name=\"BibJournal\"/>\n              <ref name=\"BibNumber\"/>\n              <ref name=\"BibVolume\"/>\n              <ref name=\"BibNote\"/>\n            </choice>\n          </zeroOrMore>\n        </group>\n        <group>\n          <attribute name=\"type\">\n            <value>bibtex</value>\n          </attribute>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"BibTitle\"/>\n              <ref name=\"BibAuthor\"/>\n              <ref name=\"BibEditor\"/>\n              <ref name=\"BibYear\"/>\n              <ref name=\"BibJournal\"/>\n              <ref name=\"BibNumber\"/>\n              <ref name=\"BibVolume\"/>\n              <ref name=\"BibSeries\"/>\n              <ref name=\"BibPublisher\"/>\n              <ref name=\"BibPages\"/>\n              <ref name=\"BibNote\"/>\n            </choice>\n          </zeroOrMore>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Ibid\">\n    <element name=\"ibid\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"BibYear\">\n    <element name=\"year\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibJournal\">\n    <element name=\"journal\">\n      <ref name=\"TextBib\"/>\n    </element>\n  </define>\n  <define name=\"BibNumber\">\n    <element name=\"number\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibVolume\">\n    <element name=\"volume\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibTitle\">\n    <element name=\"title\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"BibNote\">\n    <element name=\"note\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Paragraph\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"BibAuthor\">\n    <element name=\"author\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibEditor\">\n    <element name=\"editor\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibSeries\">\n    <element name=\"series\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibPublisher\">\n    <element name=\"publisher\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"BibPages\">\n    <element name=\"pages\">\n      <choice>\n        <group>\n          <attribute name=\"start\"/>\n          <attribute name=\"end\"/>\n          <empty/>\n        </group>\n        <text/>\n      </choice>\n    </element>\n  </define>\n  <define name=\"GlossaryItem\">\n    <element name=\"gi\">\n      <ref name=\"MetaDataTitle\"/>\n      <oneOrMore>\n        <ref name=\"BlockStatementNoCaption\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Contributor\">\n    <element name=\"contributor\">\n      <ref name=\"MetaDataTarget\"/>\n      <ref name=\"PersonName\"/>\n      <optional>\n        <choice>\n          <group>\n            <optional>\n              <ref name=\"Department\"/>\n            </optional>\n            <optional>\n              <ref name=\"Institution\"/>\n            </optional>\n            <optional>\n              <ref name=\"Location\"/>\n            </optional>\n          </group>\n          <oneOrMore>\n            <ref name=\"Affiliation\"/>\n          </oneOrMore>\n        </choice>\n      </optional>\n      <optional>\n        <ref name=\"Email\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Contributors\">\n    <element name=\"contributors\">\n      <oneOrMore>\n        <ref name=\"Contributor\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"AuthorByline\">\n    <element name=\"author\">\n      <choice>\n        <ref name=\"TextSimple\"/>\n        <ref name=\"Xref\"/>\n      </choice>\n    </element>\n  </define>\n  <define name=\"WebWork\">\n    <choice>\n      <ref name=\"WebWorkAuthored\"/>\n      <ref name=\"WebWorkSource\"/>\n    </choice>\n  </define>\n  <define name=\"WebWorkSource\">\n    <element name=\"webwork\">\n      <optional>\n        <attribute name=\"source\"/>\n      </optional>\n      <optional>\n        <attribute name=\"seed\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"WWDescription\">\n    <element name=\"description\">\n      <choice>\n        <ref name=\"TextSimple\"/>\n        <oneOrMore>\n          <ref name=\"SimpleLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"WebWorkAuthored\">\n    <element name=\"webwork\">\n      <choice>\n        <group>\n          <optional>\n            <ref name=\"UniqueID\"/>\n          </optional>\n          <optional>\n            <ref name=\"LabelID\"/>\n          </optional>\n          <optional>\n            <ref name=\"Component\"/>\n          </optional>\n          <optional>\n            <attribute name=\"seed\">\n              <data type=\"integer\"/>\n            </attribute>\n          </optional>\n          <optional>\n            <attribute name=\"copy\"/>\n          </optional>\n          <optional>\n            <ref name=\"WWDescription\"/>\n          </optional>\n          <optional>\n            <ref name=\"WWMacros\"/>\n          </optional>\n          <optional>\n            <element name=\"pg-code\">\n              <text/>\n            </element>\n          </optional>\n          <choice>\n            <group>\n              <ref name=\"StatementExerciseWW\"/>\n              <optional>\n                <ref name=\"HintWW\"/>\n              </optional>\n              <optional>\n                <ref name=\"SolutionWW\"/>\n              </optional>\n            </group>\n            <group>\n              <optional>\n                <ref name=\"IntroductionText\"/>\n              </optional>\n              <oneOrMore>\n                <ref name=\"TaskWW\"/>\n              </oneOrMore>\n              <optional>\n                <ref name=\"ConclusionText\"/>\n              </optional>\n            </group>\n          </choice>\n        </group>\n        <text/>\n      </choice>\n    </element>\n  </define>\n  <define name=\"BlockStatementWW\">\n    <choice>\n      <ref name=\"Paragraph\"/>\n      <ref name=\"Preformatted\"/>\n      <ref name=\"Tabular\"/>\n      <ref name=\"ImageWW\"/>\n    </choice>\n  </define>\n  <define name=\"StatementExerciseWW\">\n    <element name=\"statement\">\n      <oneOrMore>\n        <choice>\n          <ref name=\"BlockStatementWW\"/>\n          <ref name=\"WWInstruction\"/>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"TaskWW\">\n    <element name=\"task\">\n      <ref name=\"MetaDataTitleOptional\"/>\n      <choice>\n        <group>\n          <ref name=\"StatementExerciseWW\"/>\n          <optional>\n            <ref name=\"HintWW\"/>\n          </optional>\n          <optional>\n            <ref name=\"SolutionWW\"/>\n          </optional>\n        </group>\n        <group>\n          <optional>\n            <ref name=\"IntroductionText\"/>\n          </optional>\n          <oneOrMore>\n            <ref name=\"TaskWW\"/>\n          </oneOrMore>\n          <optional>\n            <ref name=\"ConclusionText\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"WWMacros\">\n    <element name=\"pg-macros\">\n      <oneOrMore>\n        <element name=\"macro-file\">\n          <text/>\n        </element>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"WWVariable\">\n    <element name=\"var\">\n      <a:documentation>The WeBWorK \"var\" element appears in the RELAX-NG schema as a child of many elements, but almost always as a descendant of a \"p\" element or a \"cell\" element.  As an element that is only relevant for a WeBWorK problem, occurrences of \"var\" must be within a \"webwork\" element.  A Schematron rule will check on these two situations.</a:documentation>\n      <choice>\n        <group>\n          <attribute name=\"name\"/>\n          <optional>\n            <attribute name=\"evaluator\"/>\n          </optional>\n          <optional>\n            <attribute name=\"width\"/>\n          </optional>\n          <optional>\n            <attribute name=\"category\">\n              <choice>\n                <value>angle</value>\n                <value>decimal</value>\n                <value>exponent</value>\n                <value>formula</value>\n                <value>fraction</value>\n                <value>inequality</value>\n                <value>integer</value>\n                <value>interval</value>\n                <value>logarithm</value>\n                <value>limit</value>\n                <value>number</value>\n                <value>point</value>\n                <value>syntax</value>\n                <value>quantity</value>\n                <value>vector</value>\n              </choice>\n            </attribute>\n          </optional>\n          <optional>\n            <attribute name=\"form\">\n              <choice>\n                <value>popup</value>\n                <value>buttons</value>\n                <value>checkboxes</value>\n                <value>none</value>\n              </choice>\n            </attribute>\n          </optional>\n        </group>\n        <group>\n          <attribute name=\"form\">\n            <value>essay</value>\n          </attribute>\n          <optional>\n            <attribute name=\"width\"/>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"WWInstruction\">\n    <element name=\"instruction\">\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"HintWW\">\n    <element name=\"hint\">\n      <oneOrMore>\n        <ref name=\"BlockStatementWW\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"SolutionWW\">\n    <element name=\"solution\">\n      <oneOrMore>\n        <ref name=\"BlockStatementWW\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Fragment\">\n    <element name=\"fragment\">\n      <choice>\n        <attribute name=\"xml:id\"/>\n        <group>\n          <attribute name=\"filename\"/>\n          <optional>\n            <attribute name=\"xml:id\"/>\n          </optional>\n        </group>\n      </choice>\n      <ref name=\"Title\"/>\n      <oneOrMore>\n        <choice>\n          <element name=\"code\">\n            <text/>\n          </element>\n          <element name=\"fragref\">\n            <attribute name=\"ref\"/>\n          </element>\n        </choice>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Attribution\">\n    <element name=\"attribution\">\n      <choice>\n        <ref name=\"TextLong\"/>\n        <oneOrMore>\n          <ref name=\"LongLine\"/>\n        </oneOrMore>\n      </choice>\n    </element>\n  </define>\n  <define name=\"UniqueID\">\n    <attribute name=\"xml:id\"/>\n  </define>\n  <define name=\"LabelID\">\n    <attribute name=\"label\"/>\n  </define>\n  <define name=\"Component\">\n    <attribute name=\"component\"/>\n  </define>\n  <define name=\"Title\">\n    <element name=\"title\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"LinedTitle\">\n    <element name=\"title\">\n      <oneOrMore>\n        <ref name=\"LongLine\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Subtitle\">\n    <element name=\"subtitle\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"LinedSubtitle\">\n    <element name=\"subtitle\">\n      <oneOrMore>\n        <ref name=\"LongLine\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"ShortTitle\">\n    <element name=\"shorttitle\">\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"PlainTitle\">\n    <element name=\"plaintitle\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Creator\">\n    <element name=\"creator\">\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"XMLBase\">\n    <attribute name=\"xml:base\"/>\n  </define>\n  <define name=\"XMLLang\">\n    <attribute name=\"xml:lang\"/>\n  </define>\n  <define name=\"MetaDataTarget\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataTitle\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <ref name=\"Title\"/>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataAltTitle\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <ref name=\"Title\"/>\n    <optional>\n      <ref name=\"ShortTitle\"/>\n    </optional>\n    <optional>\n      <ref name=\"PlainTitle\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataLinedTitle\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <choice>\n      <ref name=\"Title\"/>\n      <ref name=\"LinedTitle\"/>\n    </choice>\n    <optional>\n      <ref name=\"ShortTitle\"/>\n    </optional>\n    <optional>\n      <ref name=\"PlainTitle\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataSubtitle\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <ref name=\"Title\"/>\n    <optional>\n      <ref name=\"Subtitle\"/>\n    </optional>\n    <optional>\n      <ref name=\"ShortTitle\"/>\n    </optional>\n    <optional>\n      <ref name=\"PlainTitle\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataLinedSubtitle\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <choice>\n      <ref name=\"Title\"/>\n      <ref name=\"LinedTitle\"/>\n    </choice>\n    <optional>\n      <choice>\n        <ref name=\"Subtitle\"/>\n        <ref name=\"LinedSubtitle\"/>\n      </choice>\n    </optional>\n    <optional>\n      <ref name=\"ShortTitle\"/>\n    </optional>\n    <optional>\n      <ref name=\"PlainTitle\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataTitleOptional\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <optional>\n      <ref name=\"Title\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataAltTitleOptional\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <optional>\n      <ref name=\"Title\"/>\n      <optional>\n        <ref name=\"ShortTitle\"/>\n      </optional>\n      <optional>\n        <ref name=\"PlainTitle\"/>\n      </optional>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataTitleCreatorOptional\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <optional>\n      <ref name=\"Title\"/>\n    </optional>\n    <optional>\n      <ref name=\"Creator\"/>\n    </optional>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"MetaDataCaption\">\n    <optional>\n      <ref name=\"UniqueID\"/>\n    </optional>\n    <optional>\n      <ref name=\"LabelID\"/>\n    </optional>\n    <optional>\n      <ref name=\"Component\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLBase\"/>\n    </optional>\n    <optional>\n      <ref name=\"XMLLang\"/>\n    </optional>\n    <optional>\n      <ref name=\"Title\"/>\n    </optional>\n    <ref name=\"Caption\"/>\n    <zeroOrMore>\n      <ref name=\"Index\"/>\n    </zeroOrMore>\n  </define>\n  <define name=\"TextParagraph\">\n    <mixed>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"Character\"/>\n          <ref name=\"Generator\"/>\n          <ref name=\"Verbatim\"/>\n          <ref name=\"Group\"/>\n          <ref name=\"WWVariable\"/>\n          <ref name=\"MathInline\"/>\n          <ref name=\"Music\"/>\n          <ref name=\"Reference\"/>\n          <ref name=\"Custom\"/>\n          <ref name=\"CodeDisplay\"/>\n          <ref name=\"MathDisplay\"/>\n          <ref name=\"List\"/>\n          <ref name=\"Footnote\"/>\n          <ref name=\"Notation\"/>\n          <ref name=\"Index\"/>\n        </choice>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"Paragraph\">\n    <element name=\"p\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <ref name=\"TextParagraph\"/>\n    </element>\n  </define>\n  <define name=\"ParagraphLined\">\n    <element name=\"p\">\n      <optional>\n        <ref name=\"UniqueID\"/>\n      </optional>\n      <optional>\n        <ref name=\"LabelID\"/>\n      </optional>\n      <optional>\n        <ref name=\"Component\"/>\n      </optional>\n      <oneOrMore>\n        <element name=\"line\">\n          <ref name=\"TextShort\"/>\n        </element>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"TextSimple\">\n    <mixed>\n      <zeroOrMore>\n        <ref name=\"Character\"/>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"TextShort\">\n    <mixed>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"Character\"/>\n          <ref name=\"Generator\"/>\n          <ref name=\"Verbatim\"/>\n          <ref name=\"Group\"/>\n          <ref name=\"MathInline\"/>\n          <ref name=\"Music\"/>\n        </choice>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"TextLong\">\n    <mixed>\n      <zeroOrMore>\n        <choice>\n          <ref name=\"Character\"/>\n          <ref name=\"Generator\"/>\n          <ref name=\"Verbatim\"/>\n          <ref name=\"Group\"/>\n          <ref name=\"MathInline\"/>\n          <ref name=\"Music\"/>\n          <ref name=\"Reference\"/>\n          <ref name=\"Custom\"/>\n          <ref name=\"WWVariable\"/>\n        </choice>\n      </zeroOrMore>\n    </mixed>\n  </define>\n  <define name=\"Footnote\">\n    <element name=\"fn\">\n      <ref name=\"MetaDataTarget\"/>\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"IdxHeading\">\n    <element name=\"h\">\n      <optional>\n        <attribute name=\"sortby\"/>\n      </optional>\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"Index\">\n    <element name=\"idx\">\n      <ref name=\"MetaDataTarget\"/>\n      <optional>\n        <attribute name=\"sortby\"/>\n      </optional>\n      <optional>\n        <attribute name=\"start\"/>\n      </optional>\n      <optional>\n        <attribute name=\"finish\"/>\n      </optional>\n      <choice>\n        <ref name=\"TextShort\"/>\n        <group>\n          <ref name=\"IdxHeading\"/>\n          <optional>\n            <ref name=\"IdxHeading\"/>\n          </optional>\n          <optional>\n            <ref name=\"IdxHeading\"/>\n          </optional>\n          <optional>\n            <choice>\n              <element name=\"see\">\n                <ref name=\"TextShort\"/>\n              </element>\n              <element name=\"seealso\">\n                <ref name=\"TextShort\"/>\n              </element>\n            </choice>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"IndexList\">\n    <element name=\"index-list\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"XrefTextStyle\">\n    <choice>\n      <value>local</value>\n      <value>global</value>\n      <value>hybrid</value>\n      <value>type-local</value>\n      <value>type-global</value>\n      <value>type-hybrid</value>\n      <value>phrase-global</value>\n      <value>phrase-hybrid</value>\n      <value>type-local-title</value>\n      <value>type-global-title</value>\n      <value>title</value>\n      <value>custom</value>\n    </choice>\n  </define>\n  <define name=\"Reference\">\n    <choice>\n      <ref name=\"Url\"/>\n      <ref name=\"Xref\"/>\n      <ref name=\"DataUrl\"/>\n    </choice>\n  </define>\n  <define name=\"Custom\">\n    <element name=\"custom\">\n      <attribute name=\"ref\"/>\n      <empty/>\n    </element>\n  </define>\n  <define name=\"DataUrl\">\n    <element name=\"dataurl\">\n      <choice>\n        <attribute name=\"href\"/>\n        <attribute name=\"source\"/>\n      </choice>\n      <optional>\n        <attribute name=\"visual\"/>\n      </optional>\n      <optional>\n        <ref name=\"TextShort\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Url\">\n    <element name=\"url\">\n      <attribute name=\"href\"/>\n      <optional>\n        <attribute name=\"visual\"/>\n      </optional>\n      <optional>\n        <ref name=\"TextShort\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Xref\">\n    <element name=\"xref\">\n      <choice>\n        <attribute name=\"ref\"/>\n        <group>\n          <attribute name=\"first\"/>\n          <attribute name=\"last\"/>\n        </group>\n        <attribute name=\"provisional\"/>\n      </choice>\n      <optional>\n        <attribute name=\"text\">\n          <ref name=\"XrefTextStyle\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"detail\"/>\n      </optional>\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"NotationDescription\">\n    <element name=\"description\">\n      <ref name=\"TextShort\"/>\n    </element>\n  </define>\n  <define name=\"Notation\">\n    <element name=\"notation\">\n      <element name=\"usage\">\n        <ref name=\"MathInline\"/>\n      </element>\n      <ref name=\"NotationDescription\"/>\n    </element>\n  </define>\n  <define name=\"FillInMath\">\n    <element name=\"fillin\">\n      <choice>\n        <optional>\n          <attribute name=\"fill\"/>\n        </optional>\n        <optional>\n          <attribute name=\"characters\">\n            <data type=\"integer\"/>\n          </attribute>\n        </optional>\n      </choice>\n      <empty/>\n    </element>\n  </define>\n  <define name=\"MathInline\">\n    <element name=\"m\">\n      <mixed>\n        <zeroOrMore>\n          <choice>\n            <ref name=\"FillInMath\"/>\n            <ref name=\"WWVariable\"/>\n          </choice>\n        </zeroOrMore>\n      </mixed>\n    </element>\n  </define>\n  <define name=\"TagSymbol\">\n    <choice>\n      <value>star</value>\n      <value>dstar</value>\n      <value>tstar</value>\n      <value>dagger</value>\n      <value>ddagger</value>\n      <value>tdagger</value>\n      <value>daggerdbl</value>\n      <value>ddaggerdbl</value>\n      <value>tdaggerdbl</value>\n      <value>hash</value>\n      <value>dhash</value>\n      <value>thash</value>\n      <value>maltese</value>\n      <value>dmaltese</value>\n      <value>tmaltese</value>\n    </choice>\n  </define>\n  <define name=\"MathRow\">\n    <element name=\"mrow\">\n      <ref name=\"MetaDataTarget\"/>\n      <optional>\n        <choice>\n          <attribute name=\"number\">\n            <choice>\n              <value>yes</value>\n              <value>no</value>\n            </choice>\n          </attribute>\n          <attribute name=\"tag\">\n            <ref name=\"TagSymbol\"/>\n          </attribute>\n        </choice>\n      </optional>\n      <optional>\n        <attribute name=\"break\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <mixed>\n        <zeroOrMore>\n          <choice>\n            <ref name=\"Xref\"/>\n            <ref name=\"FillInMath\"/>\n            <ref name=\"WWVariable\"/>\n          </choice>\n        </zeroOrMore>\n      </mixed>\n    </element>\n  </define>\n  <define name=\"MathIntertext\">\n    <element name=\"intertext\">\n      <ref name=\"TextLong\"/>\n    </element>\n  </define>\n  <define name=\"MathDisplay\">\n    <element name=\"md\">\n      <optional>\n        <!-- common to both forms -->\n        <ref name=\"Component\"/>\n      </optional>\n      <zeroOrMore>\n        <ref name=\"Index\"/>\n      </zeroOrMore>\n      <choice>\n        <!--\n          single-line: text content, optional @xml:id\n          makes it a cross-reference target, no @label;\n          @number and @tag are mutually exclusive,\n          @number defaults to \"no\"\n        -->\n        <group>\n          <optional>\n            <ref name=\"UniqueID\"/>\n          </optional>\n          <optional>\n            <choice>\n              <attribute name=\"number\">\n                <choice>\n                  <value>yes</value>\n                  <value>no</value>\n                </choice>\n              </attribute>\n              <attribute name=\"tag\">\n                <ref name=\"TagSymbol\"/>\n              </attribute>\n            </choice>\n          </optional>\n          <mixed>\n            <zeroOrMore>\n              <choice>\n                <ref name=\"Xref\"/>\n                <ref name=\"FillInMath\"/>\n                <ref name=\"WWVariable\"/>\n              </choice>\n            </zeroOrMore>\n          </mixed>\n        </group>\n        <!--\n          multi-line: \"mrow\" content, not itself a\n          cross-reference target, so no @xml:id, no @label;\n          @number defaults to \"no\" and applies to each \"mrow\"\n        -->\n        <group>\n          <optional>\n            <attribute name=\"number\">\n              <choice>\n                <value>yes</value>\n                <value>no</value>\n              </choice>\n            </attribute>\n          </optional>\n          <optional>\n            <attribute name=\"break\">\n              <choice>\n                <value>yes</value>\n                <value>no</value>\n              </choice>\n            </attribute>\n          </optional>\n          <optional>\n            <attribute name=\"alignment\"/>\n          </optional>\n          <optional>\n            <attribute name=\"alignat-columns\"/>\n          </optional>\n          <ref name=\"MathRow\"/>\n          <zeroOrMore>\n            <choice>\n              <ref name=\"MathRow\"/>\n              <ref name=\"MathIntertext\"/>\n            </choice>\n          </zeroOrMore>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Verbatim\">\n    <choice>\n      <element name=\"c\">\n        <text/>\n      </element>\n      <ref name=\"Email\"/>\n      <element name=\"pf\">\n        <optional>\n          <attribute name=\"language\"/>\n        </optional>\n        <text/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Group\" combine=\"choice\">\n    <choice>\n      <element name=\"abbr\">\n        <ref name=\"TextSimple\"/>\n      </element>\n      <element name=\"acro\">\n        <ref name=\"TextSimple\"/>\n      </element>\n      <element name=\"init\">\n        <ref name=\"TextSimple\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Group\" combine=\"choice\">\n    <choice>\n      <element name=\"q\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"sq\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"angles\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"dblbrackets\">\n        <ref name=\"TextLong\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Group\" combine=\"choice\">\n    <choice>\n      <element name=\"em\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"term\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"alert\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"pubtitle\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"articletitle\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"foreign\">\n        <optional>\n          <ref name=\"XMLLang\"/>\n        </optional>\n        <ref name=\"TextLong\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Group\" combine=\"choice\">\n    <choice>\n      <element name=\"delete\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"insert\">\n        <ref name=\"TextLong\"/>\n      </element>\n      <element name=\"stale\">\n        <ref name=\"TextLong\"/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Group\" combine=\"choice\">\n    <choice>\n      <element name=\"tag\">\n        <text/>\n      </element>\n      <element name=\"tage\">\n        <text/>\n      </element>\n      <element name=\"attr\">\n        <text/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Group\" combine=\"choice\">\n    <element name=\"taxon\">\n      <optional>\n        <attribute name=\"ncbi\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <choice>\n        <text/>\n        <group>\n          <optional>\n            <element name=\"genus\">\n              <text/>\n            </element>\n          </optional>\n          <optional>\n            <element name=\"species\">\n              <text/>\n            </element>\n          </optional>\n        </group>\n      </choice>\n    </element>\n  </define>\n  <define name=\"Generator\">\n    <choice>\n      <element name=\"today\">\n        <empty/>\n      </element>\n      <element name=\"timeofday\">\n        <empty/>\n      </element>\n      <element name=\"tex\">\n        <empty/>\n      </element>\n      <element name=\"latex\">\n        <empty/>\n      </element>\n      <element name=\"xetex\">\n        <empty/>\n      </element>\n      <element name=\"xelatex\">\n        <empty/>\n      </element>\n      <element name=\"pretext\">\n        <empty/>\n      </element>\n      <element name=\"prefigure\">\n        <empty/>\n      </element>\n      <element name=\"webwork\">\n        <empty/>\n      </element>\n      <element name=\"ad\">\n        <empty/>\n      </element>\n      <element name=\"am\">\n        <empty/>\n      </element>\n      <element name=\"bc\">\n        <empty/>\n      </element>\n      <element name=\"ca\">\n        <empty/>\n      </element>\n      <element name=\"eg\">\n        <empty/>\n      </element>\n      <element name=\"etal\">\n        <empty/>\n      </element>\n      <element name=\"etc\">\n        <empty/>\n      </element>\n      <element name=\"ie\">\n        <empty/>\n      </element>\n      <element name=\"nb\">\n        <empty/>\n      </element>\n      <element name=\"pm\">\n        <empty/>\n      </element>\n      <element name=\"ps\">\n        <empty/>\n      </element>\n      <element name=\"vs\">\n        <empty/>\n      </element>\n      <element name=\"viz\">\n        <empty/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"FillInText\">\n    <element name=\"fillin\">\n      <optional>\n        <attribute name=\"characters\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"rows\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"cols\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <empty/>\n    </element>\n  </define>\n  <define name=\"Generator\" combine=\"choice\">\n    <ref name=\"FillInText\"/>\n  </define>\n  <define name=\"UnitSpecification\">\n    <optional>\n      <attribute name=\"prefix\"/>\n    </optional>\n    <attribute name=\"base\"/>\n    <optional>\n      <attribute name=\"exp\">\n        <data type=\"integer\"/>\n      </attribute>\n    </optional>\n  </define>\n  <define name=\"Generator\" combine=\"choice\">\n    <element name=\"quantity\">\n      <optional>\n        <element name=\"mag\">\n          <text/>\n        </element>\n      </optional>\n      <zeroOrMore>\n        <element name=\"unit\">\n          <ref name=\"UnitSpecification\"/>\n        </element>\n      </zeroOrMore>\n      <zeroOrMore>\n        <element name=\"per\">\n          <ref name=\"UnitSpecification\"/>\n        </element>\n      </zeroOrMore>\n    </element>\n  </define>\n  <define name=\"Character\" combine=\"choice\">\n    <choice>\n      <element name=\"nbsp\">\n        <empty/>\n      </element>\n      <element name=\"ndash\">\n        <empty/>\n      </element>\n      <element name=\"mdash\">\n        <empty/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Character\">\n    <choice>\n      <element name=\"lsq\">\n        <empty/>\n      </element>\n      <element name=\"rsq\">\n        <empty/>\n      </element>\n      <element name=\"rq\">\n        <empty/>\n      </element>\n      <element name=\"lq\">\n        <empty/>\n      </element>\n      <element name=\"ldblbracket\">\n        <empty/>\n      </element>\n      <element name=\"rdblbracket\">\n        <empty/>\n      </element>\n      <element name=\"langle\">\n        <empty/>\n      </element>\n      <element name=\"rangle\">\n        <empty/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Character\" combine=\"choice\">\n    <choice>\n      <element name=\"minus\">\n        <empty/>\n      </element>\n      <element name=\"times\">\n        <empty/>\n      </element>\n      <element name=\"solidus\">\n        <empty/>\n      </element>\n      <element name=\"obelus\">\n        <empty/>\n      </element>\n      <element name=\"plusminus\">\n        <empty/>\n      </element>\n      <element name=\"degree\">\n        <empty/>\n      </element>\n      <element name=\"prime\">\n        <empty/>\n      </element>\n      <element name=\"dblprime\">\n        <empty/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"CopyrightCharacter\">\n    <element name=\"copyright\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"Character\" combine=\"choice\">\n    <choice>\n      <element name=\"ellipsis\">\n        <empty/>\n      </element>\n      <element name=\"midpoint\">\n        <empty/>\n      </element>\n      <element name=\"swungdash\">\n        <empty/>\n      </element>\n      <element name=\"permille\">\n        <empty/>\n      </element>\n      <element name=\"pilcrow\">\n        <empty/>\n      </element>\n      <element name=\"section-mark\">\n        <empty/>\n      </element>\n      <element name=\"copyleft\">\n        <empty/>\n      </element>\n      <ref name=\"CopyrightCharacter\"/>\n      <element name=\"registered\">\n        <empty/>\n      </element>\n      <element name=\"trademark\">\n        <empty/>\n      </element>\n      <element name=\"phonomark\">\n        <empty/>\n      </element>\n      <element name=\"servicemark\">\n        <empty/>\n      </element>\n    </choice>\n  </define>\n  <define name=\"Character\" combine=\"choice\">\n    <element name=\"icon\">\n      <attribute name=\"name\"/>\n    </element>\n  </define>\n  <define name=\"Character\" combine=\"choice\">\n    <element name=\"kbd\">\n      <choice>\n        <text/>\n        <attribute name=\"name\"/>\n      </choice>\n    </element>\n  </define>\n  <define name=\"MusicFlat\">\n    <element name=\"flat\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"MusicSharp\">\n    <element name=\"sharp\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"Music\">\n    <choice>\n      <element name=\"doublesharp\">\n        <empty/>\n      </element>\n      <ref name=\"MusicSharp\"/>\n      <element name=\"natural\">\n        <empty/>\n      </element>\n      <ref name=\"MusicFlat\"/>\n      <element name=\"doubleflat\">\n        <empty/>\n      </element>\n      <element name=\"scaledeg\">\n        <choice>\n          <value>0</value>\n          <value>1</value>\n          <value>2</value>\n          <value>3</value>\n          <value>4</value>\n          <value>5</value>\n          <value>6</value>\n          <value>7</value>\n          <value>8</value>\n          <value>9</value>\n          <value>10</value>\n        </choice>\n      </element>\n      <element name=\"timesignature\">\n        <attribute name=\"top\"/>\n        <attribute name=\"bottom\"/>\n      </element>\n      <element name=\"n\">\n        <attribute name=\"pc\">\n          <choice>\n            <value>A</value>\n            <value>B</value>\n            <value>C</value>\n            <value>D</value>\n            <value>E</value>\n            <value>F</value>\n            <value>G</value>\n            <value>a</value>\n            <value>b</value>\n            <value>c</value>\n            <value>d</value>\n            <value>e</value>\n            <value>f</value>\n            <value>g</value>\n            <value>1</value>\n            <value>2</value>\n            <value>3</value>\n            <value>4</value>\n            <value>5</value>\n            <value>6</value>\n            <value>7</value>\n            <value>8</value>\n            <value>9</value>\n            <value>10</value>\n          </choice>\n        </attribute>\n        <optional>\n          <attribute name=\"acc\">\n            <choice>\n              <value>doublesharp</value>\n              <value>sharp</value>\n              <value>flat</value>\n              <value>doubleflat</value>\n            </choice>\n          </attribute>\n        </optional>\n        <optional>\n          <attribute name=\"octave\">\n            <choice>\n              <value>1</value>\n              <value>2</value>\n              <value>3</value>\n              <value>4</value>\n              <value>5</value>\n            </choice>\n          </attribute>\n        </optional>\n      </element>\n      <element name=\"chord\">\n        <optional>\n          <attribute name=\"root\"/>\n        </optional>\n        <optional>\n          <attribute name=\"mode\"/>\n        </optional>\n        <optional>\n          <attribute name=\"bps\"/>\n        </optional>\n        <optional>\n          <attribute name=\"bass\"/>\n        </optional>\n        <optional>\n          <attribute name=\"suspended\">\n            <choice>\n              <value>yes</value>\n              <value>no</value>\n            </choice>\n          </attribute>\n        </optional>\n        <optional>\n          <attribute name=\"parentheses\">\n            <choice>\n              <value>yes</value>\n              <value>no</value>\n            </choice>\n          </attribute>\n        </optional>\n        <zeroOrMore>\n          <element name=\"alteration\">\n            <zeroOrMore>\n              <choice>\n                <ref name=\"TextSimple\"/>\n                <ref name=\"MusicSharp\"/>\n                <ref name=\"MusicFlat\"/>\n              </choice>\n            </zeroOrMore>\n          </element>\n        </zeroOrMore>\n      </element>\n    </choice>\n  </define>\n  <define name=\"ListGenerator\">\n    <element name=\"list-of\">\n      <attribute name=\"elements\"/>\n      <optional>\n        <attribute name=\"scope\"/>\n      </optional>\n      <optional>\n        <attribute name=\"divisions\"/>\n      </optional>\n      <optional>\n        <attribute name=\"empty\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"NotationList\">\n    <element name=\"notation-list\">\n      <empty/>\n    </element>\n  </define>\n  <define name=\"DocInfo\">\n    <element name=\"docinfo\">\n      <optional>\n        <ref name=\"XMLBase\"/>\n      </optional>\n      <optional>\n        <ref name=\"XMLLang\"/>\n      </optional>\n      <oneOrMore>\n        <ref name=\"Configuration\"/>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"brandlogo\">\n      <optional>\n        <attribute name=\"url\"/>\n      </optional>\n      <attribute name=\"source\"/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <zeroOrMore>\n      <element name=\"math-package\">\n        <attribute name=\"latex-name\"/>\n        <attribute name=\"mathjax-name\"/>\n      </element>\n    </zeroOrMore>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"latex-image-preamble\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"asymptote-preamble\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"macros\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"cross-references\">\n      <attribute name=\"text\">\n        <ref name=\"XrefTextStyle\"/>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"initialism\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"FeedbackUrl\">\n    <element name=\"url\">\n      <text/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"feedback\">\n      <ref name=\"FeedbackUrl\"/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"rename\">\n      <attribute name=\"element\"/>\n      <optional>\n        <attribute name=\"xml:lang\"/>\n      </optional>\n      <text/>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"images\">\n      <oneOrMore>\n        <element name=\"archive\">\n          <optional>\n            <attribute name=\"from\"/>\n          </optional>\n          <text/>\n        </element>\n      </oneOrMore>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"author-biographies\">\n      <attribute name=\"length\">\n        <choice>\n          <value>short</value>\n          <value>long</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"numbering\">\n      <optional>\n        <element name=\"division\">\n          <attribute name=\"part\">\n            <choice>\n              <value>decorative</value>\n              <value>structural</value>\n            </choice>\n          </attribute>\n        </element>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"programs\">\n      <optional>\n        <attribute name=\"language\"/>\n      </optional>\n      <optional>\n        <attribute name=\"compiler-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"download\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"linenumbers\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"linker-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"interpreter-args\"/>\n      </optional>\n      <optional>\n        <attribute name=\"timeout\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Configuration\" combine=\"choice\">\n    <element name=\"parsons\">\n      <optional>\n        <attribute name=\"language\"/>\n      </optional>\n    </element>\n  </define>\n</grammar>\n"
  },
  {
    "path": "schema/pretext.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--   = one, mandatory -->\n<!-- ? = one, optional  -->\n<!-- * = zero or more   -->\n<!-- + = one or more    -->\n\n<pretext>\n\n    <docinfo>\n        <cross-references text=\"type-global\" />\n    </docinfo>\n\n    <article xml:id=\"pretext\">\n        <title>PreTeXt RELAX-NG Schema</title>\n\n        <!-- necessary to get title to appear -->\n        <frontmatter>\n            <bibinfo>\n\n               <!-- There can be several authors here -->\n                <author>\n                    <personname>Robert A.<nbsp/>Beezer</personname>\n                    <!-- department here is one line, so unstructured -->\n                    <department>Department of Mathematics and Computer Science</department>\n                    <!-- institution uses two lines, so structured as such -->\n                    <institution>\n                        <line>University of Puget Sound</line>\n                        <line>Tacoma, Washington, USA</line>\n                    </institution>\n                    <email>beezer@pugetsound.edu</email>\n                </author>\n\n                <!-- Can set date manually or use the \"today\" element -->\n                <date><today/></date>\n\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items/>\n            </titlepage>\n        </frontmatter>\n\n    <introduction>\n        <p>This is a literate programming version of the <init>RELAX-NG</init> schema for <pretext/>.  As such, it is used to generate the <init>RELAX-NG</init> compact syntax version (<c>pretext.rnc</c>) and other versions are derived from the compact version with standard tools.</p>\n\n        <p>We intend this to be helpful for both authors and implementers.  The schema is the contract between authors and implementers.  If an author's source validates against the schema, then an implementer's conversion should render the content accurately, or warn about why it cannot.  That said, it is still a work in progress:<ul>\n            <li>New features are not added until they are reasonably stable.  Validating the sample article can be a good way to see what these are.</li>\n            <li>Even for stable features, the schema will sometimes lag behind the code.</li>\n            <li>There will be other inaccuracies here, so reports or pull requests are welcome.</li>\n        </ul></p>\n\n        <p>The <init>RELAX-NG</init> syntax is built on <term>patterns</term>, which describe how <init>XML</init> elements and attributes may be combined.  It begins with a <c>start</c> pattern.  Patterns separated by commas must appear in that order.  Elements separated by a vertical bar represent a choice.  Parentheses are used for grouping.  Braces are basic syntax, reminiscent of the syntax for Java.  An equals sign is assignment and <c>|=</c> is a continuation of an assignment.  Finally, optional and/or multiple occurrences can be specified with modifiers:<dl>\n            <li>\n                <title><c>?</c></title>\n                <p>Zero or one.  Optional, at most one.</p>\n            </li>\n            <li>\n                <title><c>*</c></title>\n                <p>Zero or more.  Optional, with no limit.</p>\n            </li>\n            <li>\n                <title><c>+</c></title>\n                <p>One or more.  Required, with no limit.</p>\n            </li>\n        </dl><xref ref=\"fragment-list\"/> contains a list of all the fragments described here, in order of appearance, and may be useful if you are looking for some particular topic, element, or attribute.</p>\n    </introduction>\n\n    <section>\n        <title>Start Elements</title>\n\n        <p>To support modular source files, we specify which elements can naturally be the root of a <em>fragment</em> file in a <pretext /> document.  These include the <c>pretext</c> element itself, as well as most divisions.  All of these are defined as elements later in the schema.</p>\n\n        <fragment xml:id=\"start-elements\">\n            <title>Start elements</title>\n            <code>\n            start = PretextRoot | DocInfo | Part | Chapter | Section | Subsection | Subsubsection | Printout | Paragraphs | ReadingQuestions | Exercises | Subexercises |  Solutions | BookFrontMatter | ArticleFrontMatter | BookBackMatter | ArticleBackMatter | Preface | Acknowledgement | ArticleAppendix | BookAppendix | IndexDivision | References | Glossary | Figure | WebWork\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Gross Structure</title>\n\n        <p>A <pretext/> document is always a single <c>pretext</c> element below the root.  There are two divisions, a <c>docinfo</c>, which is a database of sorts about the document, along with a sibling element that indicates the type of the document and contains all the content.</p>\n\n        <fragment xml:id=\"gross-structure\">\n            <title>Gross structure</title>\n            <code>\n            PretextRoot =\n                element pretext {\n                    XMLLang?,\n                    DocInfo?,\n                    (Book | Article | Letter | Memorandum)\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Document Types</title>\n\n        <p><c>letter</c> and <c>memo</c> elements are not documented.</p>\n\n        <fragment xml:id=\"document-types\">\n            <title>Document types</title>\n            <code>\n            Article =\n                element article {\n                    MetaDataLinedSubtitle,\n                    ArticleFrontMatter?,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? &amp; ReadingQuestions? &amp; Exercises? &amp;\n                             Solutions? &amp; References? &amp; Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? &amp; IntroductionDivision?),\n                            (Section | Printout),\n                            (Section | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? &amp; ConclusionDivision?),\n                            ArticleBackMatter?\n                        )\n                    )\n                }\n            Book =\n                ## Here is what a book looks like.\n                element book {\n                    MetaDataLinedSubtitle,\n                    BookFrontMatter?,\n                    (Part+ | Chapter+ | Printout+),\n                    BookBackMatter?\n                }\n            Letter =\n                element letter {empty}\n            Memorandum =\n                element memo {empty}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Document Structure</title>\n\n        <p>A document is typically divided into sections.  But we reserve the word <c>section</c> for one very specific type of division.  To avoid confusion, we speak generically of <term>divisions</term>.  So, for example, a <c>section</c> is a division of a <c>chapter</c>.  Here we list all of the possible divisions, even if they are not available in each document type.</p>\n\n        <p>An <c>appendix</c> looks like a chapter of a <c>book</c>, with the option to have a <c>notation-list</c> as its entire contents.  It is possible this is not the best structure for an <c>article</c>, which might best be divided by <c>subsection</c>.</p>\n\n        <p>There are several things to note (expand this): always a title, dead-end with blocks, or subdivide with optional intro and conclusion.</p>\n\n        <fragment xml:id=\"divisions\">\n            <title>Divisions</title>\n            <code>\n            Part =\n                element part {\n                    MetaDataLinedTitle, Chapter+\n                }\n            Chapter =\n                element chapter {\n                    MetaDataLinedTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? &amp; ReadingQuestions? &amp; Exercises? &amp;\n                             Solutions? &amp; References? &amp; Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? &amp; IntroductionDivision?),\n                            (Section | Printout),\n                            (Section | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? &amp; ConclusionDivision?)\n                        )\n                    )\n                }\n            Section =\n                element section {\n                    MetaDataLinedTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? &amp;ReadingQuestions? &amp; Exercises? &amp;\n                             Solutions? &amp; References? &amp; Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? &amp; IntroductionDivision?),\n                            (Subsection | Printout),\n                            (Subsection | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? &amp; ConclusionDivision?)\n                        )\n                    )\n                }\n            Subsection =\n                element subsection {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs)+,\n                            (Printout? &amp; ReadingQuestions? &amp; Exercises? &amp;\n                             Solutions? &amp; References? &amp; Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? &amp; IntroductionDivision?),\n                            (Subsubsection | Printout),\n                            (Subsubsection | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? &amp; ConclusionDivision?)\n                        )\n                    )\n                }\n            Subsubsection =\n                element subsubsection {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    Objectives?,\n                    (BlockDivision | Paragraphs)+,\n                    (Printout? &amp; ReadingQuestions? &amp; Exercises? &amp;\n                     Solutions? &amp; References? &amp; Glossary?),\n                    Outcomes?\n                }\n            ArticleAppendix =\n                element appendix {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs | NotationList)+,\n                            (Printout? &amp; ReadingQuestions? &amp; Exercises? &amp;\n                             Solutions? &amp; References? &amp; Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? &amp; IntroductionDivision?),\n                            (Subsection | Printout),\n                            (Subsection | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? &amp; ConclusionDivision?)\n                        )\n                    )\n                }\n            BookAppendix =\n                element appendix {\n                    MetaDataAltTitle,\n                    AuthorByline*,\n                    (\n                        (\n                            Objectives?,\n                            (BlockDivision | Paragraphs | NotationList)+,\n                            (Printout? &amp; ReadingQuestions? &amp; Exercises? &amp;\n                             Solutions? &amp; References? &amp; Glossary?),\n                            Outcomes?\n                        )\n                    |\n                        (\n                            (Objectives? &amp; IntroductionDivision?),\n                            (Section | Printout),\n                            (Section | Printout | ReadingQuestions | Exercises |\n                             Solutions | References | Glossary)*,\n                            (Outcomes? &amp; ConclusionDivision?)\n                        )\n                    )\n                }\n            IndexDivision =\n                element index {\n                    MetaDataAltTitleOptional,\n                    IndexList\n                }\n            </code>\n        </fragment>\n    </section>\n\n\n    <section>\n        <title>Lightweight Divisions</title>\n\n        <p>The <c>paragraphs</c> element, which is not to be confused with a <em>real</em> paragraph as implemented by the <c>p</c> element, is an exceptional type of division (both in design and utility).  It must have a <c>title</c>, can appear anywhere within any of the divisions, cannot be further subdivided, and is not ever numbered.  Its contents are conceptually a run of paragraphs, but as described here allow much more than that.</p>\n\n        <p>It is especially useful in a short document (like a class handout, letter, memorandum, or short proposal) where numbered divisions might feel like overkill.</p>\n\n        <p>The <c>NoNumber</c> variant allows for light-weight sectioning of un-numbered divisions, such as a Preface.</p>\n\n        <!-- 2025-03-08: removed \"commentary\" from schema -->\n\\\n        <fragment xml:id=\"paragraphs\">\n            <title>Paragraphs division</title>\n            <code>\n            Paragraphs =\n                element paragraphs {\n                    MetaDataTitle,\n                    Index*,\n                    BlockDivision+\n                }\n            ParagraphsNoNumber =\n                element paragraphs {\n                    MetaDataTitle,\n                    Index*,\n                    BlockStatementNoCaption+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Specialized Divisions</title>\n\n        <p>We add specialized divisions, which may appear within any of the above divisions.  Titles will be provided as defaults.</p>\n\n        <fragment xml:id=\"universal\">\n            <title>Specialized divisions</title>\n            <code>\n            ReadingQuestions =\n                element reading-questions {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    Exercise+,\n                    ConclusionDivision?\n                }\n            Exercises =\n                element exercises {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    (\n                        (Exercise | ExerciseGroup)+ |\n                        Subexercises+\n                    ),\n                    ConclusionDivision?\n                }\n            Subexercises =\n                element subexercises {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    (Exercise | ExerciseGroup)+,\n                    ConclusionDivision?\n                }\n            Solutions =\n                element solutions {\n                    MetaDataAltTitleOptional,\n                    attribute inline {text}?,\n                    attribute divisional {text}?,\n                    attribute project {text}?,\n                    attribute admit {\"all\"|\"odd\"|\"even\"}?,\n                    IntroductionDivision?,\n                    ConclusionDivision?\n                }\n            References =\n                element references {\n                    MetaDataAltTitleOptional,\n                    IntroductionDivision?,\n                    BibliographyItem+,\n                    ConclusionDivision?\n                }\n            Glossary =\n                element glossary {\n                    MetaDataAltTitleOptional,\n                    HeadNote?,\n                    GlossaryItem+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Solutions (experimental)</title>\n\n        <p>The solutions division can now have additional attributes: <attr>scope</attr>, <attr>reading</attr>, and <attr>worksheet</attr>.  We collect these three here.</p>\n\n        <fragment xml:id=\"solutions-dev\">\n            <title>Solutions (experimental)</title>\n            <code>\n            Solutions |=\n                element solutions {\n                    MetaDataAltTitleOptional,\n                    attribute inline {text}?,\n                    attribute divisional {text}?,\n                    attribute project {text}?,\n                    attribute worksheet {text}?,\n                    attribute reading {text}?,\n                    attribute scope {text}?,\n                    attribute admit {\"all\"|\"odd\"|\"even\"}?,\n                    IntroductionDivision?,\n                    ConclusionDivision?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Printout Divisions</title>\n\n        <p>A printout division (currently only a <tag>worksheet</tag>) is a specialized division, allowing for some additional control of spacing and page delineation, to allow for workspace.</p>\n\n        <p>The attributes on a printout include margin information to control layout.  Inside a printout we can have either a number of <tag>page</tag> elements that holding the content or just the content itself.</p>\n\n        <p>The contents of a printout can include the same blocks as a division, namely BlockDivision.</p>\n        <fragment xml:id=\"printout\">\n            <title>Printout</title>\n            <code>\n            PrintoutAttributes =\n                attribute margin { text }?,\n                attribute top { text }?,\n                attribute bottom { text }?,\n                attribute right { text }?,\n                attribute left { text }?\n\n            PrintoutBlock =\n                BlockStatement | Remark | Computation | Theorem | Proof | Definition |\n                Axiom | Example | PrintoutExercise | Project |\n                Poem | Assemblage | ListGenerator | Fragment |\n                PrintoutSideBySide | Paragraphs\n\n            # Allow exercise in sidebyside\n            PrintoutSideBySide =\n                element sidebyside {\n                    SidebySideAttributes,\n                    (\n                        Figure |\n                        Poem |\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Stack |\n                        PrintoutExercise |\n                        PrintoutTask\n                    )+\n                }\n            # Exercises and tasks can have workspace:\n            PrintoutExercise =\n                element exercise {\n                    MetaDataTitleOptional,\n                    attribute number {text}?,\n                    attribute workspace {text}?,\n                    (\n                    ExerciseBody |\n                    (StatementExercise, Hint*, Answer*, Solution*) |\n                    (IntroductionText?, WebWork, ConclusionText?) |\n                    (IntroductionStatement?, PrintoutTask+, ConclusionStatement?)\n                    )\n                }\n            PrintoutTask =\n                element task {\n                    MetaDataTitleOptional,\n                    attribute workspace {text}?,\n                    (\n                        BlockStatement+ |\n                        (Statement, Hint*, Answer*, Solution*) |\n                        (IntroductionStatement?, PrintoutTask+, ConclusionStatement?)\n                    )\n                }\n\n            # Page can contain a printout block or be empty\n            Page =\n                element page {\n                    PrintoutBlock+ | empty\n                }\n            # Main worksheet definition\n            Worksheet =\n                element worksheet {\n                    PrintoutAttributes,\n                    MetaDataAltTitleOptional,\n                    (Objectives? &amp; IntroductionDivision?),\n                    (Page+ | PrintoutBlock+),\n                    (Outcomes? &amp; ConclusionDivision?)\n                }\n\n            # Printout currently just means a Worksheet, but could be extended later.\n            Printout =\n                Worksheet\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Handouts (experimental)</title>\n\n        <p>A handout is a specialized division very similar to a worksheet, allowing for some additional control of spacing, to allow for workspace.</p>\n\n        <p>The attributes on a handout include margin information to control layout, just like worksheets.  Also like worksheets, a handout we can contain either a number of <tag>page</tag> elements that holding the content or just the content itself.</p>\n\n        <p>The contents of a handout can include the same blocks as a division, namely BlockDivision.  Any such division can get a <attr>workspace</attr> attribute.  This is currently not implemented in the schema (stable or experimental), but the plan is to allow <attr>workspace</attr> to be placed on any element that will be respected inside a handout, treating this as a hint that will be ignored when not inside a printout.</p>\n\n        <p>Note: when handouts moves to the stable schema, we will need to go to every division and for the option of an unstructured division, include Worksheet and Handout as separate elements so an unstructured division can have one of each.</p>\n\n        <fragment xml:id=\"handout\">\n            <title>Handouts (experimental)</title>\n            <code>\n            # Main handout definition\n            Handout =\n                element handout {\n                    PrintoutAttributes,\n                    MetaDataAltTitleOptional,\n                    (Objectives? &amp; IntroductionDivision?),\n                    (Page+ | PrintoutBlock+),\n                    (Outcomes? &amp; ConclusionDivision?)\n                }\n            # Add Handout to Printout options\n            Printout |=\n                Handout\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Paragraphs</title>\n\n        <p>Most <pretext/> elements are about delineating structure.  What you actually write happens in very few places.  Principally paragraphs, but also titles, captions, index headings, and other short bursts.  The shorter the burst, the more likely the text will be recycled in other places (Table of Contents, List of Figures, or Index perhaps).  And the more text gets re-purposed, the more care we need to take with its contents.</p>\n\n        <p><term>Simple text</term> is simply runs of characters, some of which is accomplished with empty elements.  This is used for names of people, <etc/>  It should not be confused with the RELAX-NG keyword <c>text</c> which matches runs of (Unicode) characters, with no intervening markup.  So the latter is used for things like <init>URL</init>s, internal identifiers, configuration parameters, and so on.</p>\n\n        <p><term>Short text</term> is used for titles, subtitles, names, index headings, and so on.  It allows a variety of characters, font styling, groupings, and convenience constructions.  It does not allow for references, nor anything that typographically requires more than the linearity of a sentence.  In other words, no lists, no images, no tables, no displayed equations.  Because of the potential for movement, we also do not include footnotes within short text.</p>\n\n        <p><term>Long text</term> is everything that is short text, but also allows for references, both external (internet <init>URL</init>s) and internal (cross-references).  It is used for the content of footnotes and captions.  The <webwork/> variant allows for variables in inline mathematics.</p>\n\n        <fragment xml:id=\"shorttext\">\n            <title>Running text</title>\n            <code>\n            TextSimple = mixed {\n                Character* }\n            TextShort = mixed { (\n                Character |\n                Generator |\n                Verbatim |\n                Group |\n                MathInline |\n                Music)* }\n            TextLong =  mixed { (\n                Character |\n                Generator |\n                Verbatim |\n                Group |\n                MathInline |\n                Music |\n                Reference |\n                Custom |\n                WWVariable)* }\n                </code>\n        </fragment>\n\n        <p>A paragraph is a key bottleneck between structure and prose.  You can use a variety of constructs in a paragraph, and you may use a paragraph in many places.  So the name of the element is very simple, just a <c>p</c>.  Now you can include footnotes, display mathematics, display verbatim text, and lists.  Note that a list can <em>only</em> occur in a paragraph, so to make nested lists you must structure a list item of the exterior list with a paragraph to contain the interior list.  A paragraph can contain some metadata, like index entries and mathematical notation.  It does not have a title, nor is it ever numbered.  It can be the target of a cross-reference, but only with some care.</p>\n\n        <p>A <term>lined paragraph</term> is a variant, for use when the line-by-line structure is necessary.  The <webwork/> variant of a <c>p</c> element allows for using the <c>var</c> element as an answer blank or generated content, possibly inside mathematics, and possibly inside lists.</p>\n\n        <p>Note: A paragraph effectively could have the <c>MetaDataTarget</c> pattern, except that we allow index elements (<tag>idx</tag>) to go anywhere within the paragraph.</p>\n\n        <fragment xml:id=\"paragraph\">\n            <title>Paragraphs</title>\n            <code>\n            TextParagraph = mixed { (\n                Character |\n                Generator |\n                Verbatim |\n                Group |\n                WWVariable |\n                MathInline |\n                Music |\n                Reference |\n                Custom |\n                CodeDisplay |\n                MathDisplay |\n                List |\n                Footnote |\n                Notation |\n                Index)* }\n            Paragraph =\n                element p {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    TextParagraph\n                }\n            ParagraphLined =\n                element p {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    element line {TextShort}+\n                }\n            </code>\n        </fragment>\n\n        <p>Fundamentally <pretext/> allows for conversion to other markup languages, such as <latex/> or <init>HTML</init>, and of course <init>XML</init> is a syntax for designing a markup vocabulary.  As such, certain characters traditionally found on keyboards have been co-opted for special purposes.  And once you actually want one of those special characters, you need an escape character to indicate a <q>normal</q> use.  For these reasons, certain characters have empty elements to represent them.</p>\n\n        <p>Special characters for <init>XML</init> are the ampersand, less than, greater than, single quote and double quote: <c>&amp;</c>, <c>&lt;</c>, <c>&gt;</c>, <c>'</c>, <c>\"</c>.  The ampersand is the escape character for <init>XML</init>.  In practice, the first two characters are the most important, since processing of your <init>XML</init> will be confused by any attempt to use them directly.  So in regular text (not mathematics, not verbatim), always use the the escaped versions:  <c>&amp;amp;</c>, <c>&amp;lt;</c>, and perhaps <c>&amp;gt;</c>.</p>\n\n        <p>See below for elements that can be used to form <em>groupings</em> with left and right delimiters.  For example, a simple quotation should use a left double quote and a right double quote, and these characters should look different (so-called <term>smart</term> quotes).  Notice that a keyboard only has a single <term>dumb</term> quote.  If you need these characters <em>in isolation</em> (<ie/>, not in pairs), these elements are the best way to ensure you get what you want in all possible conversions.  Note that left and right braces , <c>{</c>, <c>}</c> (<q>curly brackets</q>); brackets, <c>[</c>, <c>]</c>; may be used directly.  To create individual, left or right, create angle brackets us the elements here, not the keyboard characters (which are different).</p>\n\n        <fragment xml:id=\"delimiter-character\">\n            <title>Delimiter characters</title>\n            <code>\n            Character =\n                element lsq {empty} |\n                element rsq {empty} |\n                element rq {empty} |\n                element lq {empty} |\n                element ldblbracket {empty} |\n                element rdblbracket {empty} |\n                element langle {empty}|\n                element rangle {empty}\n            </code>\n        </fragment>\n\n        <p>A space is a space.  But sometimes you want a space between two associated items which will not get split across two lines (<eg/>, Chapter<nbsp/>23).  An element will create a <term>non-breaking space</term> using the right technique for the conversion at hand.</p>\n\n        <p>There is a variety of dashes of various lengths.  Use the keyboard character for a <term>hyphen</term>, use an <term>ndash</term> to separate a range of numbers or dates, and use an <term>mdash</term> as punctuation within a sentence to isolate a clause.  These are implemented differently for different conversions, so their use is strongly encouraged.</p>\n\n        <fragment xml:id=\"dash-character\">\n            <title>Dash characters</title>\n            <code>\n            Character |=\n                element nbsp {empty} |\n                element ndash {empty} |\n                element mdash {empty}\n            </code>\n        </fragment>\n\n        <p>We define a few characters to help with simple arithmetic expressions authored within regular text.  (Perhaps you are writing a novel with <pretext/>.)  These are for simple uses in regular text, not for actual mathematics, which is described later.  The <term>solidus</term> is slightly different from the <term>slash</term> found on a keyboard and is used for fractions and ratios.  The <tage>minus</tage> is for subtraction and negation, and is not a hyphen or dash.  An <term>obelus</term> is better known as a division sign.  <tage>degree</tage>, <tage>prime</tage>, and <tage>dblprime</tage> are designed for specifying coordinates in degrees, minutes, and seconds.  Use the unambiguous <c>+</c> keyboard character for addition.</p>\n\n        <fragment xml:id=\"arithmetic-character\">\n            <title>Arithmetic characters</title>\n            <code>\n            Character |=\n                element minus {empty} |\n                element times {empty} |\n                element solidus {empty} |\n                element obelus {empty} |\n                element plusminus {empty} |\n                element degree {empty} |\n                element prime {empty} |\n                element dblprime {empty}\n            </code>\n        </fragment>\n\n        <p>The following are largely conveniences.  They are typically not available on keyboards, and their implementations for various conversions can involve some subtleties.  Again, their use is encouraged for the best quality output.</p>\n\n        <fragment xml:id=\"exotic-character\">\n            <title>Exotic characters</title>\n            <code>\n            CopyrightCharacter =\n                element copyright {empty}\n            Character |=\n                element ellipsis {empty} |\n                element midpoint {empty} |\n                element swungdash {empty} |\n                element permille {empty} |\n                element pilcrow {empty} |\n                element section-mark {empty} |\n                element copyleft {empty} |\n                CopyrightCharacter |\n                element registered {empty} |\n                element trademark {empty} |\n                element phonomark {empty} |\n                element servicemark {empty}\n            </code>\n        </fragment>\n\n        <p>Icons are available through a <attr>name</attr> attribute, which is meant to usually be more semantic than just a description of the picture, though that may sometimes be the case.  These are intended for use when describing elements of computer interfaces.  Icons which are decorative should be supplied as part of styling, not as part of the source language.</p>\n\n        <fragment xml:id=\"icon-character\">\n            <title>Icon characters</title>\n            <code>\n            Character |=\n                element icon {\n                    attribute name {text}\n                }\n                </code>\n        </fragment>\n\n        <p>The <tag>kbd</tag> element will produce something akin to a calculator key or a keyboard key.  It may have (simple) content, which will be reproduced as the label of the key, or it may have a <attr>name</attr> attribute which describes a key that looks more like a graphic, such as an arrow key.</p>\n\n        <!-- TODO: restrict @name to known/supported values? -->\n\n        <fragment xml:id=\"keyboard-character\">\n            <title>Keyboard characters</title>\n            <code>\n            Character |=\n                element kbd {\n                    (text | attribute name {text})\n                }\n            </code>\n        </fragment>\n\n        <p>We support musical notation as if they were characters: accidentals, scale degrees, notes, and chords.  Implementation of these is about as complicated as inline mathematical notation, hence they have identical rules about placement.</p>\n\n        <fragment xml:id=\"music-character\">\n            <title>Music characters</title>\n            <code>\n            MusicFlat =\n                element flat {empty}\n            MusicSharp =\n                element sharp {empty}\n            Music =\n                element doublesharp {empty} |\n                MusicSharp |\n                element natural {empty} |\n                MusicFlat |\n                element doubleflat {empty} |\n                element scaledeg {\"0\"|\"1\"|\"2\"|\"3\"|\"4\"|\"5\"|\"6\"|\"7\"|\"8\"|\"9\"|\"10\"} |\n                element timesignature {\n                    attribute top {text},\n                    attribute bottom {text}\n                } |\n                element n {\n                    attribute pc {\n                        \"A\"|\"B\"|\"C\"|\"D\"|\"E\"|\"F\"|\"G\"|\"a\"|\"b\"|\"c\"|\"d\"|\"e\"|\"f\"|\"g\"|\n                        \"1\"|\"2\"|\"3\"|\"4\"|\"5\"|\"6\"|\"7\"|\"8\"|\"9\"|\"10\"\n                    },\n                    attribute acc {\"doublesharp\"|\"sharp\"|\"flat\"|\"doubleflat\"}?,\n                    attribute octave {\"1\"|\"2\"|\"3\"|\"4\"|\"5\"}?\n                } |\n                element chord {\n                    attribute root {text}?,\n                    attribute mode {text}?,\n                    attribute bps {text}?,\n                    attribute bass {text}?,\n                    attribute suspended {\"yes\"|\"no\"}?,\n                    attribute parentheses {\"yes\"|\"no\"}?,\n                    element alteration {\n                        (TextSimple |\n                        MusicSharp |\n                        MusicFlat)*\n                    }*\n                }\n                </code>\n        </fragment>\n\n        <fragment xml:id=\"character\">\n            <title>Characters</title>\n            <fragref ref=\"dash-character\" />\n            <fragref ref=\"delimiter-character\" />\n            <fragref ref=\"arithmetic-character\" />\n            <fragref ref=\"exotic-character\" />\n            <fragref ref=\"icon-character\" />\n            <fragref ref=\"keyboard-character\" />\n            <fragref ref=\"music-character\" />\n        </fragment>\n\n        <p>There are empty elements to generate certain items, like the date, or names of commonly referenced tools, such as <pretext/> itself.  These include some common <term>Latin abbreviations</term>, for the purpose of handling the periods properly in conversions to <latex/>.</p>\n\n        <!-- webwork, latex will need work -->\n        <fragment xml:id=\"generator\">\n            <title>Text generators</title>\n            <code>\n            Generator =\n                element today {empty} |\n                element timeofday {empty} |\n                element tex {empty} |\n                element latex {empty} |\n                element xetex {empty} |\n                element xelatex {empty} |\n                element pretext {empty} |\n                element prefigure {empty} |\n                element webwork {empty} |\n                element ad {empty} |\n                element am {empty} |\n                element bc {empty} |\n                element ca {empty} |\n                element eg {empty} |\n                element etal {empty} |\n                element etc {empty} |\n                element ie {empty} |\n                element nb {empty} |\n                element pm {empty} |\n                element ps {empty} |\n                element vs {empty} |\n                element viz {empty}\n            </code>\n        </fragment>\n\n        <p>A <c>fillin</c> blank is not really a character, but maybe a really long, low dash?  The <c>characters</c> attribute controls the length.  It is atomic, indivisible, and content-less, like all the other characters.  <c>fillin</c> is also unusual due to its allowed use within mathematics.</p>\n\n        <fragment xml:id=\"fillin-character\">\n            <title>Fill-in blank character</title>\n            <code>\n            FillInText =\n                element fillin {\n                    attribute characters {xsd:integer}?,\n                    attribute rows {xsd:integer}?,\n                    attribute cols {xsd:integer}?,\n                    empty\n                }\n            Generator |=\n                FillInText\n            </code>\n        </fragment>\n\n        <p>A large class of similarly indivisible items are units on physical quantities.  The <tag>quantity</tag> element is allowed to be empty, and the code should silently produce no output.  Expressing non-emptiness here might get a bit messy, so a Schematron warning could be a good alternative.</p>\n\n        <fragment xml:id=\"siunit\">\n            <title>SI units</title>\n            <code>\n            UnitSpecification =\n                    attribute prefix {text}?,\n                    attribute base {text},\n                    attribute exp {xsd:integer}?\n            Generator |=\n                element quantity {\n                    element mag {text}?,\n                    element unit {UnitSpecification}*,\n                    element per {UnitSpecification}*\n                }\n            </code>\n        </fragment>\n\n        <p>Some markup is for just ASCII characters, in other words, unadorned verbatim text.</p>\n\n        <fragment xml:id=\"verbatim\">\n            <title>Verbatim text</title>\n            <code>\n            Verbatim =\n                element c {text} |\n                Email |\n                element pf {\n                    attribute language {text}?,\n                    text\n                }\n            </code>\n        </fragment>\n\n        <p>Simple markup is groupings of text that gets a different typographic appearance, either through font changes or through delimiters.  Examples are emphasis or paired quotations, non-examples are cross-references or footnotes.</p>\n\n        <p>Abbreviations are sequences of characters that shorten some longer word or words (<eg/> <abbr>vs.</abbr> for the Latin <foreign>versus</foreign>), initialisms are formed from the first letters of a sequence of words (<eg/> <init>HTML</init>), acronyms are pronounceable as words (<eg/> <acro>SCUBA</acro>).</p>\n\n        <fragment xml:id=\"abbreviation-group\">\n            <title>Abbreviations</title>\n            <code>\n            Group |=\n                element abbr {TextSimple} |\n                element acro {TextSimple} |\n                element init {TextSimple}\n            </code>\n        </fragment>\n\n        <p>Notice that long text can be part of a grouping construction, and that long text can can contain a group construction.  The effect is that these groupings can be nested arbitrarily deep.</p>\n\n        <fragment xml:id=\"delimiter-group\">\n            <title>Delimited groups</title>\n            <code>\n            Group |=\n                element q {TextLong} |\n                element sq {TextLong} |\n                element angles {TextLong} |\n                element dblbrackets {TextLong}\n                </code>\n        </fragment>\n\n        <fragment xml:id=\"highlight-group\">\n            <title>Highlighted groups</title>\n            <code>\n            Group |=\n                element em {TextLong} |\n                element term {TextLong} |\n                element alert {TextLong} |\n                element pubtitle {TextLong} |\n                element articletitle {TextLong} |\n                element foreign {\n                  XMLLang?,\n                  TextLong\n                }\n            </code>\n        </fragment>\n\n        <fragment xml:id=\"editing-group\">\n            <title>Editing groups</title>\n            <code>\n            Group |=\n                element delete {TextLong} |\n                element insert {TextLong} |\n                element stale {TextLong}\n                </code>\n        </fragment>\n\n        <p>We use elements to get consistent typography when discussing <pretext/> itself.  We could probably limit the content of these elements to lowercase letters and a hyphen.  The definitions here will preclude any contained markup.</p>\n\n        <fragment xml:id=\"xml-syntax-group\">\n            <title><init>XML</init> syntax groups</title>\n            <code>\n            Group |=\n                element tag {text} |\n                element tage {text} |\n                element attr {text}\n            </code>\n        </fragment>\n\n        <p>An empty <c>taxon</c> will match either version.</p>\n\n        <fragment xml:id=\"scientific-name-group\">\n            <title>Taxonomic groups</title>\n            <code>\n            Group |=\n                element taxon {\n                    attribute ncbi {xsd:integer}?,\n                    (\n                        text |\n                        (\n                            element genus {text}?,\n                            element species {text}?\n                        )\n                    )\n                }\n            </code>\n        </fragment>\n\n        <fragment xml:id=\"group\">\n            <title>Text groups</title>\n            <fragref ref=\"abbreviation-group\" />\n            <fragref ref=\"delimiter-group\" />\n            <fragref ref=\"highlight-group\" />\n            <fragref ref=\"editing-group\" />\n            <fragref ref=\"xml-syntax-group\" />\n            <fragref ref=\"scientific-name-group\" />\n        </fragment>\n    </section>\n\n    <section>\n        <title>Mathematics</title>\n\n        <p>All mathematics appears inside paragraphs, and the syntax is that of <latex/>, as supported by MathJax, whose supported commands and macros are meant to be very similar to those of the AMSMath package.  Note that the content is typically unstructured, excepting <q>fill-in-the-blank</q>, <webwork/> variables (see variants), and internal cross-references in multi-row display mathematics. Also, displayed mathematics, <c>md</c>, comes in two forms.  A single-line <c>md</c> has no <c>mrow</c> children and may carry an <attr>xml:id</attr> to be a cross-reference target; it does not use a <attr>label</attr>.  A multi-row <c>md</c> has <c>mrow</c> children and is not itself a target of cross-references, so takes neither an <attr>xml:id</attr> nor a <attr>label</attr>, though its rows can be targets.  Either form may carry a <attr>number</attr> attribute, defaulting to <q>no</q>; on a multi-row <c>md</c> it applies to each <c>mrow</c> that does not override it.  A single-line <c>md</c> may carry a <attr>tag</attr> attribute as an alternative to <attr>number</attr>, supplying a symbolic local tag in place of a number; the two attributes are mutually exclusive.  Fill-in blanks have a variant attribute <attr>fill</attr> more suited for mathematics.</p>\n\n        <fragment xml:id=\"mathematics\">\n            <title>Mathematics</title>\n            <code>\n            FillInMath = element fillin {\n                             (attribute fill{text}?|attribute characters {xsd:integer}?),\n                             empty\n                         }\n            MathInline =\n                element m {\n                    mixed {(FillInMath | WWVariable)*}\n                }\n            TagSymbol = \"star\" | \"dstar\" | \"tstar\" |\n                        \"dagger\" | \"ddagger\" | \"tdagger\" |\n                        \"daggerdbl\" | \"ddaggerdbl\" | \"tdaggerdbl\" |\n                        \"hash\" | \"dhash\" | \"thash\" |\n                        \"maltese\" | \"dmaltese\" | \"tmaltese\"\n            MathRow =\n                element mrow {\n                    MetaDataTarget,\n                    (\n                        attribute number {\"yes\" | \"no\"} |\n                        attribute tag { TagSymbol }\n                    )?,\n                    attribute break {\"yes\" | \"no\"}?,\n                    mixed {(Xref | FillInMath | WWVariable)*}\n                }\n            MathIntertext = element intertext {TextLong}\n            MathDisplay =\n                element md {\n                    # common to both forms\n                    Component?,\n                    Index*,\n                    (\n                        # single-line: text content, optional @xml:id\n                        # makes it a cross-reference target, no @label;\n                        # @number and @tag are mutually exclusive,\n                        # @number defaults to \"no\"\n                        (\n                            UniqueID?,\n                            (\n                                attribute number {\"yes\" | \"no\"} |\n                                attribute tag { TagSymbol }\n                            )?,\n                            mixed {(Xref | FillInMath | WWVariable)*}\n                        ) |\n                        # multi-line: \"mrow\" content, not itself a\n                        # cross-reference target, so no @xml:id, no @label;\n                        # @number defaults to \"no\" and applies to each \"mrow\"\n                        (\n                            attribute number {\"yes\" | \"no\"}?,\n                            attribute break {\"yes\" | \"no\"}?,\n                            attribute alignment {text}?,\n                            attribute alignat-columns {text}?,\n                            MathRow, (MathRow | MathIntertext)*\n                        )\n                    )\n                }\n            </code>\n        </fragment>\n    </section>\n\n\n    <section>\n        <title>Blocks</title>\n\n        <p>A <term>text block</term> is very similar to a paragraph.  It can be an actual paragraph, a sequence of paragraphs enclosed as a block quote (with attribution, perhaps), or a large chunk of unformatted text presented typically in a monospace font.  Certain <q>atomic</q> objects, such as an <tag>image</tag> may be placed as peers of paragraph-like objects.</p>\n\n        <p>A <term>statement block</term> is used in statements.  What are those?  Theorems have statements, exercises have statements, questions have statements.  Some of these blocks with statements also have peers of statements that are proofs, hints, answers, and solutions.  In statements, and their peers, we include text blocks, captioned items, asides, side-by-side layouts, and Sage computations, but exclude many of the numbered and titled division blocks. A slight extension is a <term>solution block</term>, which is everything that can go in a <tag>statement</tag>, plus one or more <tag>proof</tag>, only as part of a <tag>hint</tag>, <tag>answer</tag>, or <tag>solution</tag>.</p>\n\n        <p>A <term>division block</term> includes text blocks, statement blocks, plus topical chunks of text that can have numbered headings or numbered captions, with optional titles, and are set apart slightly from the surrounding narrative.  These are placed mostly as children of divisions, and so one cannot contain another.  They certainly contain paragraphs, and all that goes into them, such as mathematics (inline and display) and figures (and other captioned items).  The <c>sidebyside</c> element can be used to illustrate a division block with a variety of images and displayed text in flexible layouts.</p>\n\n        <p>A <tag>fragment</tag> is used for literate programming, and is numbered, so it is allowed places where other numbered items go.</p>\n\n        <p>Other division blocks include <c>poem</c>, <c>aside</c>, and <c>assemblage</c>.  These are never numbered, but can have titles.  The <c>list-of</c> mechanism is a convenience device to automatically create lists of contents, and so we leave surrounding divisional structure to the author.  A <c>sidebyside</c>, and its cousin, <c>sbsgroup</c>, are strictly layout devices.  The <c>sage</c> element is unique for its possibilities in certain electronic formats.</p>\n\n        <!-- BlockText is enforced via XSL for assemblage, keep synchronized -->\n        <!-- BlockText is enforced via XSL for Aside, keep synchronized      -->\n        <fragment xml:id=\"block\">\n            <title>Blocks</title>\n            <code>\n            BlockText =\n                Paragraph | BlockQuote | Preformatted |\n                Image | Video | Program | Console | Tabular\n            BlockStatementNoCaption =\n                BlockText | Aside |\n                SideBySideNoCaption | SideBySideGroupNoCaption\n            BlockStatement =\n                BlockText |\n                Figure | Aside |\n                SideBySide | SideBySideGroup | Sage\n            BlockSolution =\n                BlockStatement | Proof\n            BlockDivision =\n                BlockStatement |\n                Remark | Computation | Theorem | Proof | Definition |\n                Axiom | Example | Exercise | Project |\n                Poem | Assemblage | ListGenerator | Fragment\n            </code>\n        </fragment>\n\n        <p>Blocks are often structured, in a light way.  Hints, answers, and solutions adorn exercises, examples, and projects.  A simple introduction or conclusion is sometimes useful.  A <c>prelude</c> or <c>postlude</c> are authored inside a block and so are associated with it.  But they are presented before and after the block visually.  An <c>interlude</c> will be used between the statement of a theorem and its proof.</p>\n\n        <p>When a block is structured to allow some of the ancillary parts, a <c>statement</c> element is used to structure the main part.  Hints, answers, and solutions can be the target of cross-references, but do not get author-supplied titles.</p>\n\n        <fragment xml:id=\"block-component\">\n            <title>Common components of blocks</title>\n            <code>\n            Prelude =\n                element prelude {BlockText+}\n            Interlude =\n                element interlude {BlockText+}\n            Postlude =\n                element postlude {BlockText+}\n            Statement =\n                element statement {\n                    BlockStatement+\n                }\n            Hint =\n                element hint {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            Answer =\n                element answer {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            Solution =\n                element solution {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Introductions, Conclusions, and Headnotes</title>\n\n        <p>The <c>introduction</c> and <c>conclusion</c> containers can be used in a variety of other structured elements.  They come in three levels, according to what they can contain, and are meant to be consonant with their surroundings.  As children of a division, they may carry a <c>title</c>, which in turn allows them to be cross-referenced by that text.</p>\n\n        <p>A <tag>headnote</tag> is like an <tag>introduction</tag>, but does not have a symmetric concluding element, and is typically meant for specialized divisions, such as a <tag>glossary</tag>.</p>\n\n        <fragment xml:id=\"introduction-conclusion-headnote\">\n            <title>Introductions, conclusions, headnotes</title>\n            <code>\n            IntroductionText =\n                element introduction {BlockText+}\n            ConclusionText =\n                element conclusion {BlockText+}\n            IntroductionStatementNoCaption =\n                element introduction {BlockStatementNoCaption+}\n            ConclusionStatementNoCaption =\n                element conclusion {BlockStatementNoCaption+}\n            IntroductionStatement =\n                element introduction {BlockStatement+}\n            ConclusionStatement =\n                element conclusion {BlockStatement+}\n            IntroductionDivision =\n                element introduction {\n                    MetaDataTitleOptional,\n                    BlockDivision+\n                }\n            ConclusionDivision =\n                element conclusion {\n                    MetaDataTitleOptional?,\n                    BlockDivision+\n                }\n            HeadNote =\n                element headnote {BlockStatementNoCaption+}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>References</title>\n\n        <p>There are a variety of referencing mechanisms, external references, internal cross-references, index entries, and specialized support for a table of mathematical notation.</p>\n\n        <fragment xml:id=\"reference\">\n            <title>Cross-references</title>\n            <code>\n            XrefTextStyle =\n                \"local\" | \"global\" | \"hybrid\" | \"type-local\" | \"type-global\" |\n                \"type-hybrid\" | \"phrase-global\" | \"phrase-hybrid\" |\n                \"type-local-title\" | \"type-global-title\" |\n                \"title\" | \"custom\"\n            Reference = Url | Xref | DataUrl\n            Custom =\n                element custom {\n                    attribute ref {text},\n                    empty\n                }\n            DataUrl =\n                element dataurl {\n                    (attribute href {text} | attribute source {text}),\n                    attribute visual {text}?,\n                    TextShort?\n                }\n            Url =\n                element url {\n                    attribute href {text},\n                    attribute visual {text}?,\n                    TextShort?\n                }\n            Xref =\n                element xref {\n                        (\n                            attribute ref {text} |\n                            (attribute first {text}, attribute last {text}) |\n                            attribute provisional {text}\n                        ),\n                        attribute text { XrefTextStyle }?,\n                        attribute detail {text}?,\n                        TextShort\n                }\n            NotationDescription =\n                element description {\n                    TextShort\n                }\n            Notation =\n                element notation {\n                    element usage {MathInline},\n                    NotationDescription\n                }\n            </code>\n        </fragment>\n\n        <p>Footnotes are especially dangerous.  They should contain quite a bit of content, and should be targets of cross-references.  So the content is not as expansive as a regular paragraph, which is possibly too restrictive.</p>\n\n        <fragment xml:id=\"footnote\">\n            <title>Footnotes</title>\n            <code>\n            Footnote =\n                element fn {\n                    MetaDataTarget,\n                    TextLong\n                }\n            </code>\n        </fragment>\n\n        <p>Index entries have two forms, simple and structured.  The <c>start</c> and <c>finish</c> attributes are meant to use <c>xml:id</c> to create an index range that crosses <init>XML</init> boundaries.  (Replace principal tags with <c>idx/h/h</c>.)</p>\n\n        <p>The actual index is generated within the <tag>index</tag> division via the <c>index-list</c> element.</p>\n\n        <p>Note that we might point to another index entry as part of a <q>see also</q> mechanism.</p>\n\n        <fragment xml:id=\"index-entries\">\n            <title>Index entries</title>\n            <code>\n            IdxHeading =\n                element h {\n                    attribute sortby {text}?,\n                    TextShort\n                }\n            Index =\n                element idx {\n                    MetaDataTarget,\n                    attribute sortby {text}?,\n                    attribute start {text}?,\n                    attribute finish {text}?,\n                    (\n                        TextShort\n                    |\n                        (\n                        IdxHeading,\n                        IdxHeading?,\n                        IdxHeading?,\n                        (element see {TextShort} | element seealso {TextShort})?\n                        )\n                    )\n                }\n            IndexList = element index-list {empty}\n            </code>\n        </fragment>\n\n    </section>\n\n    <section>\n        <title>Objectives</title>\n\n        <p>A division may lead (first) with an optional list of objectives for the division and may be followed by a (final) optional list of outcomes.  The element names are only chosen to reflect a pre- and post- behavior and so could be used for objectives, outcomes, and standards in a variety of ways.</p>\n\n        <fragment xml:id=\"objective-outcome\">\n            <title>Objectives and outcomes</title>\n            <code>\n            Objectives =\n                element objectives {\n                    MetaDataTitleOptional,\n                    IntroductionText?,\n                    List,\n                    ConclusionText?\n                }\n            Outcomes =\n                element outcomes {\n                    MetaDataTitleOptional,\n                    IntroductionText?,\n                    List,\n                    ConclusionText?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Block Quotes</title>\n\n        <p>These are a run of paragraphs, but may optionally have an <c>attribution</c>.</p>\n\n        <fragment xml:id=\"blockquote\">\n            <title>Block quotes</title>\n            <code>\n            BlockQuote =\n                element blockquote {\n                    MetaDataTitleOptional,\n                    Paragraph+,\n                    Attribution?\n                }\n            SimpleLine =\n                element line {TextSimple}\n            ShortLine =\n                element line {TextShort}\n            LongLine =\n                element line {TextLong}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Verbatim Text</title>\n\n        <p>Large blocks of verbatim material, rather than just little bits in a sentence.  A code display, <c>cd</c>, is an analog of a math display, and meant to be used <em>within</em> a paragraph, either as a single line of text, or optionally structured as several lines by using code lines, <c>cline</c>.   <c>pre</c> is a block, which preserves line breaks and sanitizes whitespace to the left.  It can be optionally structured as code lines.  It should be thought of as a monospace analogue of a <q>regular</q> paragraph, minus indentation and automatic line-breaking.  A <tag>program</tag> maybe structured with a <tag>code</tag> element, or simply text.</p>\n\n        <fragment xml:id=\"verbatimdisplay\">\n            <title>Verbatim displays</title>\n            <code>\n            CodeLine =\n                element cline {text}\n            CodeDisplay =\n                element cd {\n                    attribute latexsep {text}?,\n                    (text | CodeLine+)\n                }\n            Preformatted =\n                element pre {\n                    text | CodeLine+\n                }\n            ConsoleOutput =\n                element output {text}\n            ConsoleInput =\n                element input {\n                    attribute prompt {text}?,\n                    attribute continuation {text}?,\n                    text\n                }\n            Console =\n                element console {\n                    Component?,\n                    attribute prompt {text}?,\n                    attribute continuation {text}?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    (\n                        ConsoleInput,\n                        ConsoleOutput?\n                    )+\n                }\n            ProgramPreamble =\n                element preamble {\n                    attribute visible {\"yes\"|\"no\"}?,\n                    text\n                }\n            ProgramCode = element code {text}\n            ProgramPostamble =\n                element postamble {\n                    attribute visible {\"yes\"|\"no\"}?,\n                    text\n                }\n            ProgramTests =\n                element tests {\n                    attribute visible {\"yes\"|\"no\"}?,\n                    (\n                        text\n                    |\n                        element iotest {\n                            element input {text},\n                            element output {text}\n                        }+\n                    )\n                }\n            ProgramStdin =\n                element stdin {\n                    text\n                }\n            CodelensCheckpoint =\n                element checkpoint {\n                    attribute line {text},\n                    (\n                        attribute answer {text}\n                    |\n                        attribute answer-variable {text}\n                    ),\n                    element prompt {BlockText+},\n                    element feedback {BlockText+}?\n                }\n            Program =\n                element program {\n                    Component?,\n                    LabelID?,\n                    UniqueID?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute autorun {\"yes\"|\"no\"}?,\n                    attribute chatcodes {\"yes\"|\"no\"}?,\n                    attribute codelens {\"yes\"|\"no\"}?,\n                    attribute starting-step {\"yes\"|\"no\"}?,\n                    attribute compiler-args {text}?,\n                    attribute extra-compiler-args {text}?,\n                    attribute database {text}?,\n                    attribute add-files {text}?,\n                    attribute compile-also {text}?,\n                    attribute download {\"yes\"|\"no\"}?,\n                    attribute hidecode {\"yes\"|\"no\"}?,\n                    attribute highlight-lines {text}?,\n                    attribute include {text}?,\n                    attribute filename {text}?,\n                    attribute interactive {\"codelens\"|\"activecode\"|\"no\"}?,\n                    attribute interpreter-args {text}?,\n                    attribute language {text}?,\n                    attribute line-numbers {\"yes\"|\"no\"}?,\n                    attribute linker-args {text}?,\n                    attribute timelimit {text}?,\n                    (\n                        text\n                    |\n                        (\n                            ProgramPreamble?,\n                            ProgramCode,\n                            ProgramPostamble?,\n                            ProgramTests?,\n                            ProgramStdin?,\n                            CodelensCheckpoint*\n                        )\n                    )\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Lists</title>\n\n        <p>Are complicated.  Maybe we need a special type of paragraph which does not allow nesting a description list down into some other list?</p>\n\n        <p>As a container, the lists themselves get no metadata.  But the numbered or titled list items do get metadata.  To point to an entire list, make it a <term>named list</term> and point to that.</p>\n\n        <fragment xml:id=\"list\">\n            <title>Lists</title>\n            <code>\n            ListItem = element li {\n                (\n                    (MetaDataTarget, TextParagraph)\n                |\n                    (MetaDataTitleOptional, BlockStatement+)\n                )\n            }\n            DefinitionListItem = element li {\n                MetaDataTitle,\n                BlockStatement+\n            }\n            List =\n                element ol {\n                    Component?,\n                    attribute cols {\"2\"|\"3\"|\"4\"|\"5\"|\"6\"}?,\n                    attribute marker {text}?,\n                    ListItem+\n                } |\n                element ul {\n                    Component?,\n                    attribute cols {\"2\"|\"3\"|\"4\"|\"5\"|\"6\"}?,\n                    attribute marker {\"disc\" | \"circle\" | \"square\" | \"\"}?,\n                    ListItem+\n                } |\n                element dl {\n                    Component?,\n                    attribute width {\"narrow\" | \"medium\" | \"wide\"}?,\n                    DefinitionListItem+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Definitions</title>\n\n        <p>Definitions are special, there is nothing else quite like them.  A statement, no proof, and also a natural place for notation entries.</p>\n\n        <fragment xml:id=\"definition-like\">\n            <title>Definitions</title>\n            <code>\n            DefinitionLike =\n                MetaDataTitleOptional,\n                Notation*,\n                Statement\n            Definition =\n                element definition {DefinitionLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Theorems, And Other Results</title>\n\n        <p>Theorems, corollaries, lemmas <mdash/> they all have statements, and should have proof(s).  Otherwise they are all the same.  A proof may be divided with cases, in no particular rigid way, just as a marker of any number of different, non-overlapping portions of a proof.  Titles can be used to describe each case, or implication arrows may be used (typically with a proof of an equivalence).  A <c>proof</c> is also allowed to stand on its own as a block, independent of a structure like a <c>theorem</c> or <c>algorithm</c>.</p>\n\n        <fragment xml:id=\"theorem-like\">\n            <title>Theorems, and similar</title>\n            <code>\n            Case =\n                element case {\n                   MetaDataTitleOptional,\n                   attribute direction {text}?,\n                   BlockStatement+\n                   }\n            Proof =\n                element proof {\n                    MetaDataTitleOptional,\n                    (BlockStatement | Case)+\n                }\n            TheoremLike =\n                MetaDataTitleCreatorOptional,\n                (BlockStatement+ | (Statement, Proof*))\n            Theorem =\n                element theorem {TheoremLike} |\n                element lemma {TheoremLike} |\n                element corollary {TheoremLike} |\n                element claim {TheoremLike} |\n                element proposition {TheoremLike} |\n                element algorithm {TheoremLike} |\n                element fact {TheoremLike} |\n                element identity {TheoremLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Proof-like (experimental)</title>\n        <p>\n            We extend the types of elements that are types of proofs, as well as create a <c>ProofLike</c> named pattern for what can go in them.\n        </p>\n\n        <fragment xml:id=\"proof-like\">\n            <title>Proofs, and similar</title>\n            <code>\n            ProofLike =\n                MetaDataTitleOptional,\n                (BlockStatement | Case)+\n            Proof |=\n                element proof {ProofLike} |\n                element argument {ProofLike} |\n                element justification {ProofLike} |\n                element reasoning {ProofLike} |\n                element explanation {ProofLike}\n            </code>\n        </fragment>\n    </section>\n    <section>\n        <title>Axioms and Other Mathematical Statements</title>\n\n        <p>Mathematical statements that do not have proofs (in other words, no proof is known, or a proof is not appropriate).</p>\n\n        <fragment xml:id=\"axiom-like\">\n            <title>Axioms, and similar</title>\n            <code>\n            AxiomLike =\n                MetaDataTitleCreatorOptional,\n                Statement\n            Axiom =\n                element axiom {AxiomLike} |\n                element principle {AxiomLike} |\n                element conjecture {AxiomLike} |\n                element heuristic {AxiomLike} |\n                element hypothesis {AxiomLike} |\n                element assumption {AxiomLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Projects and Activities</title>\n\n        <p>A favorite of Inquiry-Based Learning textbooks.  Numbered independently.  Possibly structured with <c>task</c>.  Three different ways to structure this, we combine the second two so that the derived XML Schema (XSD) version is less-confusing to certain tools (<eg/> the Red Hat XML schema validator used within VS Code).</p>\n\n        <fragment xml:id=\"project-like\">\n            <title>Projects, and similar</title>\n            <code>\n            ProjectLike =\n                MetaDataTitleOptional,\n                (\n                    (BlockStatement+) |\n                    (\n                       Prelude?,\n                       (\n                          (Statement, Hint*, Answer*, Solution*) |\n                          (IntroductionStatement?, Task+, ConclusionStatement?) |\n                          (IntroductionText?, WebWork, ConclusionText?)\n                       ),\n                       Postlude?\n                    )\n                )\n            Project =\n                element activity {ProjectLike} |\n                element investigation {ProjectLike} |\n                element exploration {ProjectLike} |\n                element project {ProjectLike}\n            Task =\n                element task {\n                    MetaDataTitleOptional,\n                    attribute workspace {text}?,\n                    (\n                        BlockStatement+ |\n                        (Statement, Hint*, Answer*, Solution*) |\n                        (IntroductionStatement?, Task+, ConclusionStatement?)\n                    )\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Remarks and Other Comments</title>\n\n        <p>Really simple blocks, they do not have much structure, and so are just runs of paragraphs, though <tag>figure</tag>, <tag>table</tag>, <tag>listing</tag>, and <tag>list</tag> may be included.</p>\n\n        <fragment xml:id=\"remark-like\">\n            <title>Remarks, and similar</title>\n            <code>\n            RemarkLike =\n                MetaDataTitleOptional,\n                BlockStatement+\n            Remark =\n                element remark {RemarkLike} |\n                element convention {RemarkLike} |\n                element note {RemarkLike} |\n                element observation {RemarkLike} |\n                element warning {RemarkLike} |\n                element insight {RemarkLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Computations and Technology</title>\n\n        <p>Somewhat simple blocks, they do not have much structure, but can hold more than a Remark.</p>\n\n        <fragment xml:id=\"computation-like\">\n            <title>Computation, and similar</title>\n            <code>\n            ComputationLike =\n                MetaDataTitleOptional,\n                BlockStatement+\n            Computation =\n                element computation {ComputationLike} |\n                element technology {ComputationLike} |\n                element data {ComputationLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Asides</title>\n\n        <p>An aside is a deviation from the narrative, and might physically move in the presentation (say, to a margin, or to a knowl).  <c>biographical</c> and <c>historical</c> may be further developed.</p>\n\n        <!-- BlockText is enforced via XSL for Aside, keep synchronized -->\n        <fragment xml:id=\"aside\">\n            <title>Asides, and similar</title>\n            <code>\n            AsideLike =\n                MetaDataTitleOptional,\n                BlockText+\n            Aside =\n                element aside {AsideLike} |\n                element biographical {AsideLike} |\n                element historical {AsideLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Assemblages</title>\n\n        <p>Since an <c>assemblage</c> is meant to accumulate significant content (as a review or summary, or for initial presentation) lists are allowed here, an exception to their restriction to paragraphs.  We are also mildly restrictive about what can be content here<mdash/>in particular blocks are excluded, despite not strictly being blocks themselves.</p>\n\n        <!-- BlockText + SBS is enforced via XSL, keep synchronized -->\n        <fragment xml:id=\"assemblage\">\n            <title>Assemblages</title>\n            <code>\n            Assemblage =\n                element assemblage {\n                    MetaDataTitleOptional,\n                    (BlockText | SideBySideNoCaption | SideBySideGroupNoCaption)+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Figures, Tables, Listings and Named Lists</title>\n\n        <p>These are containers that all carry titles (mandatory and optional), captions for two, and numbers.  They need to be filled with other (atomic) items, which we generally call <term>planar</term> due to their two-dimensional and rigid characteristics.  These have also called <term>captioned items</term> in the code, even if not all allow a caption.  The option for a lanscape orientation is only relevant for print, and not within a <c>sidebyside</c>.</p>\n        <!-- 2021-12-29: should add audio and interacive to figure, once ready -->\n\n        <fragment xml:id=\"table-figure\">\n            <title>Captioned and titled displays</title>\n            <code>\n            Caption =\n                element caption {TextLong}\n            Landscape =\n                attribute landscape {\"yes\" | \"no\"}\n            Figure =\n                element figure {\n                    MetaDataCaption,\n                    Landscape?,\n                    (\n                        Image |\n                        Video |\n                        SideBySide |\n                        SideBySideGroup |\n                        MuseScore\n                    )\n                } |\n                element table {\n                    MetaDataAltTitle,\n                    Landscape?,\n                    Tabular\n                } |\n                element listing {\n                    MetaDataAltTitle,\n                    Landscape?,\n                    (\n                        Program |\n                        Console\n                    )\n                } |\n                element list {\n                    MetaDataAltTitle,\n                    Landscape?,\n                    IntroductionText?,\n                    List,\n                    ConclusionText?\n                }\n            </code>\n        </fragment>\n\n        <p>The guts of a table go in a <c>tabular</c> element.</p>\n\n        <fragment xml:id=\"tabular\">\n            <title>Tabular display</title>\n            <code>\n            BorderThickness = \"none\" | \"minor\" | \"medium\" | \"major\"\n            BorderTop =\n                attribute top {BorderThickness}\n            BorderBottom =\n                attribute bottom {BorderThickness}\n            BorderLeft =\n                attribute left {BorderThickness}\n            BorderRight =\n                attribute right {BorderThickness}\n            AlignmentHorizontal =\n                attribute halign {\"left\" | \"center\" | \"right\" | \"justify\"}\n            AlignmentVertical =\n                attribute valign {\"top\" | \"middle\" | \"bottom\"}\n\n            TableCell =\n                element cell {\n                    AlignmentHorizontal?,\n                    BorderBottom?,\n                    BorderRight?,\n                    attribute colspan {text}?,\n                    (\n                        TextLong |\n                        LongLine+ |\n                        Paragraph+\n                    )\n                }\n            TableRow =\n                element row {\n                    attribute header {\"yes\" | \"no\" | \"vertical\"}?,\n                    AlignmentHorizontal?,\n                    AlignmentVertical?,\n                    BorderBottom?,\n                    BorderLeft?,\n                    TableCell+\n                }\n            TableColumn =\n                element col {\n                    AlignmentHorizontal?,\n                    BorderTop?,\n                    BorderRight?,\n                    attribute width {text}?\n                }\n            Tabular =\n                element tabular {\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute row-headers {\"yes\" | \"no\"}?,\n                    AlignmentHorizontal?,\n                    AlignmentVertical?,\n                    BorderTop?,\n                    BorderBottom?,\n                    BorderLeft?,\n                    BorderRight?,\n                    TableColumn*,\n                    TableRow+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Figure (experimental)</title>\n        <p>\n            We add tabular as a valid child of a figure.\n        </p>\n        <fragment xml:id=\"figure-dev\">\n            <title>Figure (experimental)</title>\n            <code>\n            Figure |=\n                element figure {\n                    MetaDataCaption,\n                    Tabular\n                }\n\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Side-By-Side Layout</title>\n\n        <p>Page width or screen width, both are at a premium.  Height goes on forever (barring physical page breaks) and we have many devices for demarcating that flow.  But sometimes you need to organize items horizontally, <ie/> side-by-side.  We place the components of a <c>sidebyside</c> into generic regions of specified width called <term>panels</term>.</p>\n\n        <p>This is a pure layout device.  So you cannot title it, nor caption it.  It does not admit a <c>xml:id</c> attribute, since you cannot make it the target of a cross-reference.  Nor can you reference it from the index (but you can point to its surroundings from the index).</p>\n\n        <p>Because of its utility, it can go anywhere a block can go (<ie/>, as a child of a division) and it can go many other places as a sibling of a paragraph (such as to illustrate an <c>example</c>).</p>\n\n        <p>Note that widths give on a <c>sidebyside</c> override any width given to the components of the panels.</p>\n\n        <p>A <tag>stack</tag> allows non-captioned, non-titled elements to accumulate vertically in a single panel.  It is a basic container.</p>\n\n        <p>A group of side-by-sides is designed to stack vertically with common controls on widths, etc.  Its implementation is entirely experimental right now, even if we are relatively confident of the markup.</p>\n\n        <fragment xml:id=\"sidebyside\">\n            <title>Side-by-side layouts</title>\n            <code>\n            Stack =\n                element stack {\n                    (\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List\n                    )+\n                }\n            SidebySideAttributes =\n                Component?,\n                attribute margins {text}?,\n                (attribute width {text} | attribute widths {text})?,\n                (AlignmentVertical | attribute valigns {text})?\n            SideBySide =\n                element sidebyside {\n                    SidebySideAttributes,\n                    (\n                        Figure |\n                        Poem |\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Stack\n                    )+\n                }\n            SideBySideNoCaption =\n                element sidebyside {\n                    SidebySideAttributes,\n                    (\n                        Poem |\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Stack\n                    )+\n                }\n            SideBySideGroup =\n                element sbsgroup {\n                    SidebySideAttributes,\n                    SideBySide+\n                }\n            SideBySideGroupNoCaption =\n                element sbsgroup {\n                    SidebySideAttributes,\n                    SideBySideNoCaption+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Images and Graphics</title>\n\n        <p>Raster, and described by languages, plus 100% duplicates.  The <webwork/> variant is quite different.</p>\n\n        <p>Note: the <c>ImageCode</c> pattern allows an <attr>xml:id</attr> attribute since it is used to construct a filename.</p>\n\n        <fragment xml:id=\"image\">\n            <title>Images</title>\n            <code>\n            Image = ImageRaster | ImageCode\n            ImageDescription = element description {(Paragraph | Tabular)+}\n            ImageShortDescription = element shortdescription {text}\n            ImageShortDescriptionCode = element shortdescription {\n                (text | WWVariable)+\n            }\n            ImageRaster =\n                element image {\n                    UniqueID?,\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute rotate {text}?,\n                    attribute archive {text}?,\n                    attribute source {text},\n                    (\n                      attribute decorative {\"yes\"} |\n                      (\n                        attribute decorative {\"no\"}?,\n                        (\n                          ImageShortDescription? &amp;\n                          ImageDescription?\n                        )\n                      )\n                    )\n                }\n            CodeLatexImage =\n                element latex-image {\n                    LabelID?,\n                    Component?,\n                    text\n                }\n            AnyPFContent = text | element * { attribute * { text }*, AnyPFContent* }\n            ImageCode =\n                element image {\n                    UniqueID?,\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute archive {text}?,\n                    (\n                      attribute decorative {\"yes\"} |\n                      (\n                        attribute decorative {\"no\"}?,\n                        (\n                          ImageShortDescriptionCode ? &amp;\n                          ImageDescription? &amp;\n                          (\n                            CodeLatexImage |\n                            element asymptote {\n                              LabelID?,\n                              Component?,\n                              text\n                            } |\n                            element sageplot {\n                                LabelID?,\n                                Component?,\n                                attribute variant {'2d'|'3d'}?,\n                                attribute aspect {text}?,\n                                text\n                            } |\n                            element mermaid {\n                                LabelID?,\n                                Component?,\n                                text\n                            } |\n                            element pf:prefigure {\n                                attribute label {text}?,\n                                AnyPFContent*\n                            }\n                          )\n                        )\n                      )\n                    )\n                }\n            WWLatexImage = element latex-image {\n                text\n              }\n            ImageWW =\n                element image {\n                    attribute pg-name {text}?,\n                    attribute width {text}?,\n                    (\n                      attribute decorative {\"yes\"} |\n                      (\n                        attribute decorative {\"no\"}?,\n                        (\n                          ImageShortDescriptionCode? &amp;\n                          ImageDescription? &amp;\n                          WWLatexImage?\n                        )\n                      )\n                    )\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Sage Code</title>\n\n        <p>Sage is integral.</p>\n\n        <fragment xml:id=\"sage\">\n            <title>Sage code</title>\n            <code>\n            SageOutput = element output {text}\n            SageInput = element input {text}\n            Sage = element sage {\n                Component?,\n                attribute doctest {text}?,\n                attribute tolerance {text}?,\n                attribute auto-evaluate {'no'|'yes'}?,\n                attribute language {text}?,\n                attribute type {text}?,\n                (SageInput, SageOutput?)?\n            }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Legacy Interactive Elements</title>\n\n        <p>Some specific interactive goodies.  These are being phased-out in favor of a more general <tag>interactive</tag> element.</p>\n\n        <fragment xml:id=\"interactive-musescore\">\n            <title>Interactives</title>\n            <code>\n            MuseScore =\n                element score {\n                    attribute musescoreuser {text},\n                    attribute musescore {text}\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Interactive Elements (experimental)</title>\n\n        <p>A general <tag>interactive</tag> element.</p>\n\n        <fragment xml:id=\"interactive\">\n            <title>Interactives</title>\n            <code>\n            Interactive =\n                element interactive {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    attribute aspect { text }?,\n                    attribute width { text }?,\n                    attribute platform { text }?,\n                    attribute preview { text }?,\n                    attribute iframe { text }?,\n                    attribute source { text }?,\n                    attribute version { text }?,\n                    attribute circuitjs { text }?,\n                    attribute calcplot3d { text }?,\n                    attribute variant { text }?,\n                    attribute dark-mode-enabled { text }?,\n                    attribute resize-behavior { text }?,\n                    (\n                      ImageShortDescription? &amp;\n                      ImageDescription? &amp;\n                      (\n                        Slate |\n                        SideBySideNoCaption |\n                        SideBySideGroupNoCaption\n                      )* &amp;\n                      element instructions { mixed { MetaDataTitleOptional, BlockText } }? &amp;\n                      element static { Image }?\n                    )\n\n                }\n\n            Stack |=\n                element stack {\n                    (\n                        Tabular |\n                        Image |\n                        Video |\n                        Program |\n                        Console |\n                        Paragraph |\n                        Preformatted |\n                        List |\n                        Slate\n                    )+\n                }\n\n            Slate =\n                element slate {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    (\n                      JessieCodeAtt |\n                      (\n                        attribute surface { text },\n                        (\n                          attribute source { text } |\n                          attribute material { text }\n                        )?,\n                        attribute aspect { text }?,\n                        (\n                          Paragraph |\n                          Tabular |\n                          SideBySideNoCaption |\n                          SlateInput |\n                          element xhtml:button {\n                            attribute type { text },\n                            attribute id { text },\n                            text*\n                          }? |\n                          text*\n                        )*\n                      )\n                    )\n                }\n\n              JessieCodeAtt =\n                attribute surface {\"jessiecode\"},\n                attribute axis {\"true\" | \"false\"}?,\n                attribute grid {\"true\" | \"false\"}?,\n                (\n                  attribute source {text} |\n                  text*\n                )\n\n              SlateInput =\n                element input {\n                  attribute type {text}?,\n                  attribute value {text}?,\n                  attribute onkeypress {text}?,\n                  attribute onclick {text}?,\n                  attribute style {text}?\n                }\n\n            # add Interactives where used\n            BlockStatement |= Interactive\n\n            Figure |= element figure { MetaDataCaption, Interactive }\n\n            SideBySide |= element sidebyside {\n                SidebySideAttributes,\n                (Interactive | Slate)+\n            }\n\n            SideBySideNoCaption |= element sidebyside {\n                SidebySideAttributes,\n                (Interactive | Slate)+\n            }\n\n            Exercises |= element exercises {\n                MetaDataAltTitleOptional,\n                IntroductionDivision?,\n                (\n                (Exercise | ExerciseGroup)+ |\n                Subexercises+ | Interactive\n                ),\n                ConclusionDivision?\n            }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Audio and Video</title>\n\n        <p>Well, just video right now.  The <c>xml:id</c> is not used as a target, but rather as a name for a static preview image that is auto-generated by the <c>pretext</c> script thumbnail file, hence optional.  <c>preview</c> maybe be one of two reserved switches, or the filename of a static preview image.</p>\n\n        <p>Note: the <c>Video</c> pattern allows an <attr>xml:id</attr> attribute since it is used to construct a filename for preview images (<q>poster</q>), especially when scraped.</p>\n\n\n        <fragment xml:id=\"audiovideo\">\n            <title>Video and audio</title>\n            <code>\n            Video =\n                element video {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    attribute width {text}?,\n                    attribute margins {text}?,\n                    attribute aspect {text}?,\n                    attribute start {xsd:integer}?,\n                    attribute end {xsd:integer}?,\n                    attribute play-at {\"embed\" | \"popout\" | \"select\"}?,\n                    attribute preview {\"default\" | \"generic\" | text}?,\n                    (AttributesSourceFile | AttributesNetwork | AttributesYouTube |\n                     AttributesYouTubePlaylist | AttributesVimeo),\n                    Track*\n                }\n            Track =\n                element track {\n                    attribute kind {text},\n                    attribute listing {text}?,\n                    XMLLang?,\n                    attribute source {text},\n                    attribute default {\"yes\"}?\n                }\n            AttributesSourceFile =\n                attribute source {text}\n            AttributesNetwork =\n                attribute href {text}\n            AttributesYouTube =\n                attribute youtube {text}\n            AttributesYouTubePlaylist =\n                attribute youtubeplaylist {text}\n            AttributesVimeo =\n                attribute vimeo {text}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Poetry</title>\n\n        <p>Poems!</p>\n\n        <fragment xml:id=\"poetry\">\n            <title>Poems</title>\n            <code>\n            AlignmentPoem = attribute halign {\"left\" | \"center\" | \"right\"}\n            PoemAuthor =\n                element author {\n                    AlignmentPoem?,\n                    TextShort\n                }\n            Poem =\n                element poem {\n                    MetaDataTitleOptional,\n                    AlignmentPoem?,\n                    PoemAuthor?,\n                    (PoemLine+ | Stanza+)\n                }\n            Stanza =\n                element stanza {\n                    MetaDataTitleOptional,\n                    PoemLine+\n                }\n            PoemLine =\n                element line {\n                    attribute indent {xsd:integer}?,\n                    TextShort\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Exercises</title>\n\n        <p>Inline, divisional, and <webwork/>.  Exercises use task to structure parts, where before they used ordered lists for parts of a statement (to eventually be deprecated).</p>\n\n        <fragment xml:id=\"exercise\">\n            <title>Exercises</title>\n            <code>\n            ExerciseOrderedList =\n                element ol {\n                    attribute cols {text}?,\n                    attribute marker {text}?,\n                    ExerciseListItem+\n                }\n            ExerciseListItem = element li {\n                MetaDataTarget,\n                (TextParagraph | BlockText+)\n            }\n            ExerciseBody =\n                (\n                    BlockStatement |\n                    ExerciseOrderedList\n                )+\n            StatementExercise =\n                element statement { ExerciseBody }\n            Exercise =\n                element exercise {\n                    MetaDataTitleOptional,\n                    attribute number {text}?,\n                    attribute workspace {text}?,\n                    (\n                    ExerciseBody |\n                    (StatementExercise, Hint*, Answer*, Solution*) |\n                    (IntroductionStatement?, Task+, ConclusionStatement?) |\n                    (IntroductionText?, WebWork, ConclusionText?)\n                    )\n                }\n            ExerciseGroup =\n                element exercisegroup {\n                    MetaDataTitleOptional,\n                    attribute cols {\"2\"|\"3\"|\"4\"|\"5\"|\"6\"}?,\n                    IntroductionStatementNoCaption,\n                    Exercise+,\n                    ConclusionStatementNoCaption?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Exercises (experimental)</title>\n        <p>\n            We can have exercises that are interactive, such as true/false, multiple choices, Parson's problems, etc.\n        </p>\n\n        <fragment xml:id=\"exercise-dev\">\n            <title>Exercises (experimental)</title>\n            <code>\n            MyOpenMath =\n                MetaDataTitleOptional,\n                IntroductionText?,\n                element myopenmath {\n                    attribute problem {text},\n                    attribute params {text}?\n                },\n                ConclusionText?\n            TrueFalse =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                element statement {\n                    attribute correct {\"yes\"|\"no\"},\n                    Paragraph\n                },\n                Feedback?, Hint*, Answer*, Solution*\n            MultipleChoice =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                element choices {\n                    attribute randomize {\"yes\"|\"no\"}?,\n                    Choice+\n                },\n                Hint*, Answer*, Solution*\n            Choice =\n                element choice {\n                    attribute correct {\"yes\"|\"no\"}?,\n                    ((mixed {BlockText?})\n                    | (StatementExercise, Feedback?))\n                }\n            Parsons =\n                    MetaDataTitleOptional,\n                    attribute number {text}?,\n                    attribute language {text}?,\n                    attribute adaptive {\"yes\"|\"no\"}?,\n                    attribute indentation {text}?,\n                    StatementExercise,\n                    element blocks {\n                        attribute layout {\"horizontal\"}?,\n                        attribute randomize {\"yes\"|\"no\"}?,\n                        Block+\n                    },\n                    Hint*, Answer*, Solution*,\n                    (\n                        element preamble {\n                            attribute indent {text}?,\n                            text\n                        }?,\n                        Program,\n                        element postamble {\n                            attribute indent {text}?,\n                            text\n                        }?\n                    )?\n            Block =\n                element block {\n                    attribute order {xsd:integer}?,\n                    ((\n                        attribute correct {\"yes\"|\"no\"}?,\n                        mixed {BlockText?, CodeLine?}+\n                    ) |\n                    (\n                        element choice {\n                            attribute correct {\"yes\"|\"no\"}?,\n                            mixed {BlockText?, CodeLine?}+\n                        }+\n                    ))\n                }\n            Matching =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Feedback?,\n                Matches,\n                Hint*, Answer*, Solution*\n            Matches = (\n                element cardsort {\n                    Match+\n                } |\n                element matching {\n                    element premise {\n                        attribute ref {text}?,\n                        TextLong\n                    }+,\n                    element response {\n                        UniqueID,\n                        attribute order {xsd:integer}?,\n                        TextLong\n                    }+\n                })\n            Match =\n                element match {\n                    element premise {\n                        attribute order {xsd:integer}?,\n                        TextLong\n                    }+,\n                    element response {\n                        TextLong\n                    }\n                }\n            FreeResponse =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                attribute attachment {\"yes\" | \"no\"}?,\n                (\n                (ExerciseBody, Response?) |\n                (StatementExercise, Response?, Hint*, Answer*, Solution*) |\n                (IntroductionStatement?, Task+, ConclusionStatement?)\n                )\n            Response =\n                element response {empty}\n\n\n            # Selectable areas\n            Area =\n                element area {\n                    attribute correct {\"yes\"|\"no\"}?,\n                    TextLong\n                }\n            TextLongAreas =  mixed { (\n                  Area |\n                  Character |\n                  Generator |\n                  Verbatim |\n                  GroupAreas |\n                  MathInline |\n                  Music |\n                  Reference |\n                  WWVariable)* }\n            GroupAreas |=\n                element q {TextLongAreas} |\n                element sq {TextLongAreas}\n            TextParagraphAreas = mixed { (\n              Character |\n              Generator |\n              Verbatim |\n              Group |\n              WWVariable |\n              MathInline |\n              Music |\n              Reference |\n              CodeDisplay |\n              MathDisplay |\n              List |\n              Footnote |\n              Notation |\n              Index |\n              Area |\n              GroupAreas)* }\n            ParagraphAreas =\n                element p {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    TextParagraphAreas\n                }\n            Areas =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Feedback?,\n                element areas {\n                  ParagraphAreas+\n                },\n                Hint*, Answer*, Solution*\n\n            # General feedback element\n            Feedback =\n                element feedback {\n                    MetaDataTitleOptional,\n                    BlockSolution+\n                }\n            # Fill-in-the-blank exercises (new-style evaluation)\n            FillInBlank =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Evaluation,\n                Hint*, Answer*, Solution*\n            Evaluation =\n                element evaluation {\n                    attribute answers-coupled {\"yes\"|\"no\"}?,\n                    Evaluate+\n                }\n            Evaluate =\n                element evaluate {\n                    attribute name {text}?,\n                    attribute submit {text}?,\n                    attribute all {\"yes\"|\"no\"}?,\n                    FITBTest+\n                }\n            FITBTest =\n                element test {\n                    attribute correct {\"yes\"|\"no\"}?,\n                    FITBComparison,\n                    Feedback?\n                }\n            FITBComparison =\n                FITBNumcmp | FITBStrcmp | FITBJscmp | FITBMathcmp | FITBLogic\n            FITBNumcmp =\n                element numcmp {\n                    attribute use-answer {\"yes\"|\"no\"}?,\n                    attribute value {text}?,\n                    attribute tolerance {text}?,\n                    attribute min {text}?,\n                    attribute max {text}?,\n                    attribute object {text}?\n                }\n            FITBStrcmp =\n                element strcmp {\n                    attribute use-answer {\"yes\"|\"no\"}?,\n                    attribute case {\"insensitive\"}?,\n                    attribute strip {\"no\"}?,\n                    text\n                }\n            FITBJscmp =\n                element jscmp {\n                    text\n                }\n            FITBMathcmp =\n                element mathcmp {\n                    attribute obj {text}?,\n                    mixed {AnyElement*}\n                }\n            FITBLogic =\n                element logic {\n                    attribute op {\"and\"|\"or\"|\"not\"},\n                    (FITBComparison)+\n                }\n            AnyElement =\n                element * {\n                    attribute * {text}*,\n                    mixed {AnyElement*}\n                }\n            # Extended fillin with interactive attributes\n            FillIn |=\n                element fillin {\n                    attribute characters {xsd:integer}?,\n                    attribute cols {xsd:integer}?,\n                    attribute rows {xsd:integer}?,\n                    attribute width {text}?,\n                    attribute answer {text}?,\n                    attribute mode {\"string\"|\"number\"|\"math\"}?,\n                    attribute name {text}?,\n                    attribute ansobj {text}?,\n                    attribute fill {text}?\n                }\n\n            # Datafile element for student data\n            Datafile =\n                element datafile {\n                    UniqueID?,\n                    LabelID?,\n                    Component?,\n                    attribute filename {text},\n                    attribute rows {xsd:integer}?,\n                    attribute cols {xsd:integer}?,\n                    attribute editable {\"yes\"|\"no\"}?,\n                    attribute include-source {\"yes\"|\"no\"}?,\n                    (\n                        element pre {\n                            attribute source {text}?,\n                            text\n                        } |\n                        Image\n                    )\n                }\n            BlockStatement |= Datafile\n\n            # Query (poll/survey) element\n            Query =\n                element query {\n                    LabelID?,\n                    attribute scale {xsd:integer}?,\n                    StatementExercise,\n                    element choices {\n                        Choice+\n                    }?\n                }\n            BlockStatement |= Query\n\n            # Coding exercise: an interactive program (typically\n            # activecode) whose \"tests\" hold unit tests\n            CodingExercise =\n                MetaDataTitleOptional,\n                attribute number {text}?,\n                StatementExercise,\n                Program,\n                Hint*, Answer*, Solution*\n            # Include all exercise types in exercise and activity\n            Exercise |=\n                element exercise {\n                    attribute workspace {text}?,\n                    (\n                    MyOpenMath |\n                    TrueFalse |\n                    MultipleChoice |\n                    Parsons |\n                    Matching |\n                    FreeResponse |\n                    FillInBlank |\n                    Areas |\n                    CodingExercise\n                    )\n                }\n            # STACK assessment exercise type\n            Exercise |=\n                element exercise {\n                    MetaDataTitleOptional,\n                    IntroductionStatement?,\n                    element stack {\n                        LabelID?,\n                        attribute source {text}?\n                    },\n                    ConclusionStatement?\n                }\n            ProjectLike |=\n                MyOpenMath |\n                TrueFalse |\n                MultipleChoice |\n                Parsons |\n                Matching |\n                FreeResponse |\n                FillInBlank |\n                Areas\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Bibliography</title>\n\n        <p>This is all stop-gap and will change radically.  But it seems to work for now.  So these rules should not be taken as definitive, at all.</p>\n\n        <fragment xml:id=\"bibliography\">\n            <title>Bibliography</title>\n            <code>\n            TextBib = mixed { (Character | MathInline)* }\n            BibliographyItem =\n                element biblio {\n                    MetaDataTarget,\n                    ((\n                        attribute type {\"raw\"},\n                        (TextLong |\n                        Ibid |\n                        BibTitle |\n                        BibYear |\n                        BibJournal |\n                        BibNumber |\n                        BibVolume |\n                        BibNote)*\n                    ) |\n                    (\n                        attribute type {\"bibtex\"},\n                        (BibTitle |\n                        BibAuthor |\n                        BibEditor |\n                        BibYear |\n                        BibJournal |\n                        BibNumber |\n                        BibVolume |\n                        BibSeries |\n                        BibPublisher |\n                        BibPages |\n                        BibNote)*\n                    ))\n                }\n            Ibid = element ibid {empty}\n            BibYear = element year {text}\n            BibJournal = element journal { TextBib }\n            BibNumber = element number {text}\n            BibVolume = element volume {text}\n            BibTitle = element title {TextLong}\n            BibNote = element note {UniqueID?, Paragraph+}\n            BibAuthor = element author {text}\n            BibEditor = element editor {text}\n            BibSeries = element series {text}\n            BibPublisher = element publisher {text}\n            BibPages = element pages {\n                (\n                    attribute start {text},\n                    attribute end {text},\n                    empty\n                ) |\n                (\n                    text\n                )\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Glossary</title>\n\n        <p>A <tag>glossary</tag> is primarly built up as a sequence of <q>glossary items,</q>, using the <tag>gi</tag> element, by analogy with list items.</p>\n\n        <fragment xml:id=\"glossary\">\n            <title>Glossary</title>\n            <code>\n            GlossaryItem =\n                element gi {\n                    MetaDataTitle,\n                    BlockStatementNoCaption+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Examples and Questions</title>\n\n        <p>Expository, but with solutions, etc. (Borrows from exercises and projects.)</p>\n\n        <fragment xml:id=\"example-like\">\n            <title>Examples, and similar</title>\n            <code>\n            ExampleLike =\n                MetaDataTitleOptional,\n                (\n                    (BlockStatement)+ |\n                    (Statement, Hint*, Answer*, Solution*) |\n                    (IntroductionStatement?, Task+, ConclusionStatement?)\n                )\n            Example =\n                element example {ExampleLike} |\n                element question {ExampleLike} |\n                element problem {ExampleLike}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title><webwork/> Exercises</title>\n\n        <p>Modified versions of various aspects to allow authoring <webwork/> exercises.</p>\n\n        <p>Notes:<ul>\n            <li>Statements, hints and solutions do not require at least one paragraph, so may be just a table or figure (say).</li>\n            <li>Are static and set elements mutually exclusive?</li>\n            <li>Can the usage part of the var element be split across math and paragraphs?</li>\n        </ul></p>\n\n\n        <fragment xml:id=\"webwork\">\n            <title><webwork/></title>\n            <code>\n            WebWork = (WebWorkAuthored | WebWorkSource)\n            WebWorkSource =\n                element webwork {\n                    attribute source {text}?,\n                    attribute seed {xsd:integer}?\n                }\n            WWDescription =\n                element description {\n                    (\n                        TextSimple |\n                        SimpleLine+\n                    )\n                }\n            WebWorkAuthored =\n                element webwork {\n                    (\n                        UniqueID?,\n                        LabelID?,\n                        Component?,\n                        attribute seed {xsd:integer}?,\n                        attribute copy {text}?,\n                        WWDescription?,\n                        WWMacros?,\n                        element pg-code {text}?,\n                        (\n                            (StatementExerciseWW, HintWW?, SolutionWW?)\n                        |\n                            (IntroductionText?, TaskWW+, ConclusionText?)\n                        )\n                    ) |\n                    text\n                }\n            BlockStatementWW =\n                        Paragraph |\n                        Preformatted |\n                        Tabular |\n                        ImageWW\n            StatementExerciseWW =\n                element statement {\n                    (BlockStatementWW|WWInstruction)+\n                }\n            TaskWW =\n                element task {\n                    MetaDataTitleOptional,\n                    (\n                        (StatementExerciseWW, HintWW?, SolutionWW?) |\n                        (IntroductionText?, TaskWW+, ConclusionText?)\n                    )\n                }\n            WWMacros =\n                element pg-macros {\n                    element macro-file {text}+\n                }\n            WWVariable =\n                ## The WeBWorK \"var\" element appears in the RELAX-NG schema as a child of many elements, but almost always as a descendant of a \"p\" element or a \"cell\" element.  As an element that is only relevant for a WeBWorK problem, occurrences of \"var\" must be within a \"webwork\" element.  A Schematron rule will check on these two situations.\n                element var {\n                    (attribute name {text},\n                    attribute evaluator {text}?,\n                    attribute width {text}?,\n                    attribute category {\n                                        \"angle\" | \"decimal\" | \"exponent\"\n                                      | \"formula\" | \"fraction\" | \"inequality\"\n                                      | \"integer\" | \"interval\" | \"logarithm\"\n                                      | \"limit\" | \"number\" | \"point\"\n                                      | \"syntax\" | \"quantity\" | \"vector\"\n                                      }?,\n                    attribute form {\"popup\"|\"buttons\"|\"checkboxes\"|\"none\"}?) |\n                    (attribute form {\"essay\"},\n                    attribute width {text}?)\n                }\n            WWInstruction =\n                element instruction {TextShort}\n            HintWW =\n                element hint {\n                    (BlockStatementWW)+\n                }\n            SolutionWW =\n                element solution {\n                    (BlockStatementWW)+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Literate Programming</title>\n\n        <p>Literate programming is a technique for documenting programs, with code <term>fragments</term> rearranged to create a syntactically correct program.  A root fragment is indicated by <attr>filename</attr> which could have an <attr>xml:id</attr>, otherwise the <attr>xml:id</attr> is required.</p>\n\n        <fragment xml:id=\"literate-programming\">\n            <title>Literate programming</title>\n            <code>\n            Fragment =\n                element fragment {\n                    (\n                        attribute xml:id {text}\n                    |\n                        (\n                            attribute filename {text},\n                            attribute xml:id {text}?\n                         )\n                    ),\n                    Title,\n                    (\n                        element code {text} |\n                        element fragref {\n                            attribute ref {text}\n                        }\n                    )+\n                }\n            </code>\n        </fragment>\n\n    </section>\n\n    <section>\n        <title>Frequently Used</title>\n\n        <p>Frequently used items, with no natural place to associate them.</p>\n\n\n        <fragment xml:id=\"frequently-used\">\n            <title>Frequent constructions</title>\n            <fragref ref=\"attribution\" />\n            <fragref ref=\"metadata\" />\n        </fragment>\n\n        <p>Used on the end of prefaces to <q>sign</q> them, and on block quotes.</p>\n\n        <fragment xml:id=\"attribution\">\n            <title>Attribution</title>\n            <code>\n            Attribution =\n                element attribution {\n                    (TextLong | LongLine+)\n                }\n            </code>\n        </fragment>\n\n        <p>There is a handful of elements which describe an item, but do not necessarily get processed as content.  Titles are an obvious example, and index entries are another.  Here we isolate a few common patterns to use for consistency throughout.</p>\n\n        <p>Notes: <ul>\n            <li>Language tags go on the root element to affect variants of names of objects, like theorems.</li>\n            <li>The <c>xinlude</c> mechanism may pass language tags down through the root element of included files to make them universally available.</li>\n            <li>The <c>xinclude</c> mechanism inserts a <c>@xml:base</c> attribute on the root element of an included file.  So we allow this attribute on any element that allows a title.</li>\n            <li>The <c>component</c> attribute allows versions to be controlled by a publisher file.</li>\n            <li>These are not unordered specifications since they contain several attributes, and we enforce a <c>title</c>, <c>subtitle</c>, <tag>shorttitle</tag>, <tag>plaintitle</tag>, <c>creator</c>, <c>caption</c>, <c>idx</c> order.</li>\n            <li><c>MetaDataTarget</c> is for items that are targets of cross-references, but without even optional titles.  Since they will be knowled, they can appear in an index.  But without the potential to be titled, we do not set them up as possible root elements of a file to <c>xinclude</c>.</li>\n            <li><c>MetaDataTitle</c> has a required <tag>title</tag>.</li>\n            <li><c>MetaDataAltTitle</c> has a required <tag>title</tag>, and allows optional <tag>shorttitle</tag> and <tag>plaintitle</tag>.</li>\n            <li><c>MetaDataSubtitle</c> implicitly has a required <tag>title</tag>, and allows optional <tag>subtitle</tag>, <tag>shorttitle</tag> and <tag>plaintitle</tag>.</li>\n            <li>A <tag>plaintitle</tag> means no markup whatsoever in the content, this is what <q>plain</q> means.</li>\n            <li><c>MetaDataLinedTitle</c> and <c>MetaDataLinedSubtitle</c> are variants of the <c>AltTitle</c> or <c>Subtitle</c> versions for use on larger divisions with <tag>line</tag> elements used to suggest line breaks in titles.</li>\n            <li><c>MetaDataCaption</c> implicitly has an optional title.</li>\n            <li>Titles may contain external references (<c>url</c>) or internal cross-references (<c>xref</c>), but implementers need not make them active (<ie/>, they maybe text only), since titles are prone to migrating to other locations.</li>\n        </ul></p>\n\n        <fragment xml:id=\"metadata\">\n            <title>Metadata</title>\n            <code>\n            UniqueID =\n                attribute xml:id {text}\n            LabelID =\n                attribute label {text}\n            Component =\n                attribute component {text}\n            Title =\n                element title {TextLong}\n            LinedTitle =\n                element title {LongLine+}\n            Subtitle =\n                element subtitle {TextLong}\n            LinedSubtitle =\n                element subtitle {LongLine+}\n            ShortTitle =\n                element shorttitle {TextShort}\n            PlainTitle =\n                element plaintitle {text}\n            Creator =\n                element creator {TextShort}\n            XMLBase = attribute xml:base {text}\n            XMLLang = attribute xml:lang {text}\n            MetaDataTarget =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                Index*\n            MetaDataTitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title,\n                Index*\n            MetaDataAltTitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title,\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataLinedTitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                (Title | LinedTitle),\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataSubtitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title,\n                Subtitle?,\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataLinedSubtitle =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                (Title | LinedTitle),\n                (Subtitle | LinedSubtitle)?,\n                ShortTitle?,\n                PlainTitle?,\n                Index*\n            MetaDataTitleOptional =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title?,\n                Index*\n            MetaDataAltTitleOptional =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                (Title, ShortTitle?, PlainTitle?)?,\n                Index*\n            MetaDataTitleCreatorOptional =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title?,\n                Creator?,\n                Index*\n            MetaDataCaption =\n                UniqueID?,\n                LabelID?,\n                Component?,\n                XMLBase?,\n                XMLLang?,\n                Title?,\n                Caption,\n                Index*\n            </code>\n        </fragment>\n\n    </section>\n\n    <section>\n        <title>Miscellaneous</title>\n\n        <p>Provisional items, with uncertain futures.</p>\n\n        <fragment xml:id=\"miscellaneous\">\n            <title>Miscellaneous or uncertain</title>\n            <code>\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Organizational Devices</title>\n\n        <p>A <term>list generator</term> is a convenient device.  It can create appendices, or smaller table-of-contents at the start of divisions.</p>\n\n        <p>Notation can be automatically generated.  We restrict its locations to appendices.</p>\n\n        <fragment xml:id=\"listgenerator\">\n            <title>List generator</title>\n            <code>\n            ListGenerator =\n                element list-of {\n                    attribute elements {text},\n                    attribute scope {text}?,\n                    attribute divisions {text}?,\n                    attribute empty {\"yes\" | \"no\"}?\n                }\n            NotationList =\n                element notation-list {empty}\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Front Matter</title>\n\n        <p>Articles and books have material at the start, which gets organized in interesting ways. <c>minilicense</c> is very restrictive, <c>shortlicense</c> allows references (<eg/> <init>URL</init>s).  <c>bibinfo</c> is like a very small database whose content migrates to a titlepage and colophon if <c>titlepage/titlepage-items</c> or <c>colophon/colophon-items</c> are present. For HTML, titlepage means the page for the <c>frontmatter</c> , and for <latex/> these items migrate to the half-title and title pages.  Since it generally makes no sense as the target of a cross-reference, <c>titlepage</c> does not allow an <c>@xml:id</c> attribute.</p>\n\n        <p>Some notes about new additions to <c>bibinfo</c>.\n        <ul>\n            <li>\n                <p>\n                    <c>version</c> might be useful for books (could be draft or preview for example) but is mainly for articles, where it's content could be <q>authors submitted version</q> or <q>revision 2.</q>  A book might have both a version and an edition, but editions don't really apply to articles.\n                </p>\n            </li>\n            <li>\n                <p>\n                    JATS has <c>permissions</c> but we have <c>copyright</c>.  It seems like these have the same content.\n                </p>\n            </li>\n            <li>\n                <p>\n                    We introduce <c>keywords</c> (equivalent to JATS <c>kwd-group</c>) which contains a sequence of <c>keyword</c> elements.  There can be multiple <c>keywords</c> elements, as this can be used for subject classifications, or author keywords, etc.  Attributes on the <c>keywords</c> element can be used to distinguish these: <attr>authority</attr> can be <q>msc</q> for Math Subject Classification, in which cas the <tag>keywords</tag> can also have <attr>variant</attr> to specify the year version of the MSC.  The default <attr>authority</attr> is <q>author.</q>\n                </p>\n            </li>\n            <li>\n                <p>\n                    To describe the financial support for the work, we use <c>support</c>.  This can go in <c>bibinfo</c> directly or tied directly to an author or authors.\n                </p>\n            </li>\n            <li>\n                <p>\n                    Slideshows already have a <tag>event</tag>, which we make official here and use to describe a conference for which the work was prepared.  JATS uses <c>conference</c> for this, and structures it with elements such as <c>date</c>, <c>accronym</c>, and similar, but we do not go that far.\n                </p>\n            </li>\n        </ul>\n        </p>\n\n        <fragment xml:id=\"frontmatter\">\n            <title>Front matter</title>\n            <code>\n            ArticleFrontMatter =\n                element frontmatter {\n                    MetaDataTitleOptional,\n                    Bibinfo,\n                    TitlePage,\n                    Abstract?\n                }\n            BookFrontMatter = element frontmatter {\n                    MetaDataTitleOptional,\n                    Bibinfo,\n                    TitlePage,\n                    ColophonFront?,\n                    Biography*,\n                    Dedication?,\n                    Acknowledgement?,\n                    Preface*\n                }\n            Bibinfo =\n                element bibinfo {\n                    (\n                        (Author+, Editor*)\n                        |\n                        (Editor+)\n                    )?,\n                    ((Credit | ColophonCredit)* &amp;\n                    Date? &amp;\n                    Edition? &amp;\n                    Keywords* &amp;\n                    Support? &amp;\n                    Website? &amp;\n                    Copyright?)\n                }\n            TitlePage =\n                element titlepage {\n                    element titlepage-items {empty}\n                }\n            Email = element email {text}\n            PersonName = element personname {TextSimple}\n            Affiliation =\n                element affiliation {\n                    Department? &amp;\n                    Institution? &amp;\n                    Location?\n                }\n            Department = element department {TextSimple | ShortLine+}\n            Institution = element institution {TextSimple | ShortLine+}\n            Support = element support {TextParagraph}\n            Location = element location {TextSimple | ShortLine+}\n            Keywords = element keywords {\n                attribute authority {text}?,\n                attribute variant {text}?,\n                Title?,\n                Keyword+\n            }\n            Keyword = element keyword {\n                attribute primary {\"yes\"|\"no\"}?,\n                TextSimple\n            }\n            Edition = element edition {text}\n            Event = element event {\n                TextLong\n            }\n            Author =\n                element author {\n                    attribute corresponding {\"yes\" | \"no\"}?,\n                    attribute xml:id {text}?,\n                    PersonName,\n                    (\n                        (Department? &amp; Institution? &amp; Location?) |\n                        Affiliation+\n                    )?,\n                    Email?,\n                    Biography?,\n                    Support?\n                }\n            Editor =\n                element editor {\n                    PersonName,\n                    (\n                        (Department? &amp; Institution? &amp; Location?) |\n                        Affiliation+\n                    )?,\n                    Email?\n                }\n            Credit =\n                element credit {\n                    Title,\n                    Author+\n                }\n            Date =\n                element date {\n                    mixed {(Character | Generator)*}\n                }\n            Abstract =\n                element abstract {\n                    MetaDataTarget,\n                    BlockText+\n                }\n            ColophonCredit = element credit {\n                    element role {TextShort},\n                    element entity {TextLong}\n                }\n            ShortLicense = element shortlicense {TextLong}\n            Website = element website {Url}\n            Copyright =\n                element copyright {\n                    element year {TextShort},\n                    element holder {text},\n                    element minilicense {TextShort}?,\n                    ShortLicense?\n                }\n            ColophonFront =\n                element colophon {\n                    MetaDataTarget,\n                    element colophon-items {empty}\n                }\n            Biography =\n                element biography {\n                    MetaDataTitleOptional,\n                    (BlockStatementNoCaption | ParagraphsNoNumber)+\n                }\n            Dedication =\n                element dedication {\n                    MetaDataTitleOptional,\n                    (Paragraph|ParagraphLined)+\n                }\n            Acknowledgement =\n                element acknowledgement {\n                    MetaDataTitleOptional,\n                    (BlockStatementNoCaption | ParagraphsNoNumber)+\n                }\n            Preface =\n                element preface {\n                    MetaDataTitleOptional,\n                    (\n                        (\n                            (BlockStatementNoCaption | ParagraphsNoNumber)+,\n                            Attribution*\n                        )\n                        |\n                        (\n                            (BlockStatementNoCaption | ParagraphsNoNumber )*,\n                            Contributors,\n                            (BlockStatementNoCaption | ParagraphsNoNumber)*\n                        )\n                    )\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Front matter (experimental)</title>\n\n        <p>A few simple tweaks to frontmatter elements.</p>\n\n        <p>We give an alternative definition of the two elements in the ColophonFront that are different.</p>\n\n        <fragment xml:id=\"frontmatter-dev\">\n            <title>Front matter (dev)</title>\n            <code>\n            ShortLicense_X =\n                element shortlicense {\n                    TextLong &amp;\n                    Footnote*\n                }\n            ShortLicense |= ShortLicense_X\n            Website_X = element website {\n                element name {TextShort},\n                element address {text}\n            }\n            Website |= Website_X\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Contributors</title>\n\n        <p>A single <c>contributors</c> element may be placed into a <c>preface</c> and is a list of <c>contributor</c>.  It can be optionally preceded, or followed, by all the usual things that can go into any preface.  An AuthorByline is a special instance of acknowledging a contributor on a division.</p>\n\n        <fragment xml:id=\"contributor\">\n            <title>Contributor</title>\n            <code>\n            Contributor =\n                element contributor {\n                    MetaDataTarget,\n                    PersonName,\n                    (\n                        (\n                        Department?,\n                        Institution?,\n                        Location?\n                        )\n                        |\n                        Affiliation+\n                    )?,\n                    Email?\n                }\n            Contributors =\n                element contributors {\n                    Contributor+\n                }\n            AuthorByline =\n                element author {(TextSimple|Xref)}\n            </code>\n        </fragment>\n    </section>\n\n\n    <section>\n        <title>Back Matter</title>\n\n        <p>Articles and books have material at the end, structured as a sequence of <c>appendix</c>.  A <c>solutions</c> division should be numbered and rendered as if it was one of the <c>appendix</c>, and so can mix-in in any order.</p>\n\n        <fragment xml:id=\"backmatter\">\n            <title>Back matter</title>\n            <code>\n            ArticleBackMatter =\n                element backmatter {\n                    MetaDataTitleOptional,\n                    (ArticleAppendix|Solutions)*,\n                    References?,\n                    IndexDivision?,\n                    ColophonBack?\n                }\n            BookBackMatter =\n                element backmatter {\n                    MetaDataTitleOptional,\n                    (BookAppendix|Solutions)*,\n                    Glossary?,\n                    References?,\n                    IndexDivision?,\n                    ColophonBack?\n                }\n            ColophonBack =\n                element colophon {\n                    MetaDataTarget,\n                    (BlockText | SideBySideNoCaption | SideBySideGroupNoCaption)+\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Document Information</title>\n\n        <p>The <c>docinfo</c> section is like a small database for the document.</p>\n\n        <fragment xml:id=\"docinfo\">\n            <title>Document information</title>\n            <code>\n            DocInfo =\n                element docinfo {\n                    XMLBase?,\n                    XMLLang?,\n                    Configuration+\n                }\n            </code>\n            <fragref ref=\"brandlogo\" />\n            <fragref ref=\"preambles\" />\n            <fragref ref=\"macros\" />\n            <fragref ref=\"cross-references\" />\n            <fragref ref=\"initialism\" />\n            <fragref ref=\"feedback\" />\n            <fragref ref=\"rename\" />\n            <fragref ref=\"imagearchive\" />\n            <fragref ref=\"authorbiographylength\" />\n            <fragref ref=\"numbering\" />\n            <fragref ref=\"programs\" />\n        </fragment>\n\n        <p>A nice icon near the top of an electronic version is a nice touch, and can link back to a project landing page.</p>\n\n        <fragment xml:id=\"brandlogo\">\n            <title>Brand logo</title>\n            <code>\n            Configuration |=\n                element brandlogo {\n                    attribute url {text}?,\n                    attribute source {text}\n                }\n            </code>\n        </fragment>\n\n        <p>We add some items which will become parts of preambles to support math in <latex/> syntax, <tag>latex-image</tag>, and <tag>asymptote</tag>.  <latex/> packages, and their cousins, MathJax extensions, can be specified to support mathematics elements (<tag>m</tag> and friends).  Images specified by <latex/> or Asymptote syntax sometimes need extra information in their preambles.</p>\n\n        <fragment xml:id=\"preambles\">\n            <title>Preambles</title>\n            <code>\n            Configuration |=\n                    element math-package {\n                        attribute latex-name {text},\n                        attribute mathjax-name {text}\n                    }*\n            Configuration |=\n                element latex-image-preamble {text}\n            Configuration |=\n                element asymptote-preamble {text}\n            </code>\n        </fragment>\n\n        <p>Macros for <latex/> are shared across implementations.  This should move under some general <latex/> section, the name is too vague.</p>\n\n        <fragment xml:id=\"macros\">\n            <title><latex/> macros</title>\n            <code>\n            Configuration |=\n                element macros {text}\n            </code>\n        </fragment>\n\n        <p>The style of text used in a cross-reference (the <c>xref</c> element) is contained in the source and uses the same per-item choices.</p>\n\n        <fragment xml:id=\"cross-references\">\n            <title>Cross-reference text style</title>\n            <code>\n            Configuration |=\n                element\n                    cross-references {\n                        attribute text { XrefTextStyle }\n                    }\n            </code>\n        </fragment>\n\n        <p>An initialism is a useful short version of a book title.</p>\n\n        <fragment xml:id=\"initialism\">\n            <title>Project initialism</title>\n            <code>\n            Configuration |=\n                element initialism {text}\n            </code>\n        </fragment>\n\n        <p>Online versions can request feedback via a URL for some form.  Maybe this should really be an <c>href</c> for consistency.  There should be a device to provide text to go with the link.</p>\n\n        <fragment xml:id=\"feedback\">\n            <title>Feedback link</title>\n            <code>\n            FeedbackUrl = element url {text}\n            Configuration |=\n                element feedback {\n                    FeedbackUrl\n                }\n            </code>\n        </fragment>\n\n        <p>Some elements can be renamed.  This should be a rare event.  Since the content of this element can (optionally) be specified in  different languages, the <attr>xml:lang</attr> attribute is appropriate.<fn><url href=\"https://www.w3.org/International/questions/qa-when-xmllang\"/></fn></p>\n\n        <fragment xml:id=\"rename\">\n            <title>Element renaming</title>\n            <code>\n            Configuration |=\n                element rename {\n                    attribute element {text},\n                    attribute xml:lang {text}?,\n                    text\n                }\n            </code>\n        </fragment>\n\n        <p>Image archives have some global specification.  The <c>from</c> attribute gives a root for only working on a subtree of the document.  The content is a comma-separated list of file extensions.</p>\n\n        <fragment xml:id=\"imagearchive\">\n            <title>Image archives</title>\n            <code>\n            Configuration |=\n                element images {\n                    element archive {\n                        attribute from {text}?,\n                        text\n                    }+\n                }\n            </code>\n        </fragment>\n\n        <p>An author biography (or several) might be a paragraph or two each, or each one might be several pages.  This style can be controlled.</p>\n\n        <fragment xml:id=\"authorbiographylength\">\n            <title>Author biographies</title>\n            <code>\n            Configuration |=\n                element author-biographies {\n                    attribute length {\"short\" | \"long\"}\n                }\n            </code>\n        </fragment>\n\n        <p>Many aspects of numbering are configurable.  These choices affect the numbers printed, and so are an author's decision, and hence run with the source.</p>\n\n        <fragment xml:id=\"numbering\">\n            <title>Numbering of part divisions</title>\n            <code>\n            Configuration |=\n                element numbering {\n                    element division {\n                        attribute part {\"decorative\" | \"structural\"}\n                    }?\n                }\n            </code>\n        </fragment>\n\n        <p>Some global defaults can be set for programs and Parsons problems.</p>\n\n        <fragment xml:id=\"programs\">\n            <title>Program options</title>\n            <code>\n            Configuration |=\n                element programs {\n                    attribute language {text}?,\n                    attribute compiler-args {text}?,\n                    attribute download {\"yes\"|\"no\"}?,\n                    attribute linenumbers {\"yes\"|\"no\"}?,\n                    attribute linker-args {text}?,\n                    attribute interpreter-args {text}?,\n                    attribute timeout {text}?\n                }\n            </code>\n            <title>Parsons options</title>\n            <code>\n            Configuration |=\n                element parsons {\n                    attribute language {text}?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Document Information (experimental)</title>\n\n        <p>We extend the <c>docinfo</c> to include new elements. We\n                add each to the <c>Configuration</c> group.</p>\n\n        <p>A textbook can have a blurb (roughly what you would expect on the back of the book), and optionally a <attr>shelf</attr> that tells Runestone how to categorize the book.</p>\n\n        <fragment xml:id=\"blurb\">\n            <title>Blurb</title>\n            <code>\n            Configuration |=\n                element blurb {\n                    attribute shelf {text},\n                    text\n                }\n            </code>\n        </fragment>\n\n        <fragment xml:id=\"document-id\">\n            <title>Document ID</title>\n            <code>\n            Configuration |=\n                element document-id {\n                    attribute edition {text}?,\n                    text\n                }\n            </code>\n        </fragment>\n\n        <p>Now we collect these to add to the dev schema.</p>\n        <fragment xml:id=\"docinfo-dev\">\n            <title>Experimental Document Info</title>\n            <fragref ref=\"blurb\"/>\n            <fragref ref=\"document-id\"/>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Hierarchical\n                Structure</title>\n\n        <p>We collect all the specifications, roughly in a top-down order, so\n                the generated schema files have a rational ordering to them, even if the order\n                presented here is different.</p>\n\n        <fragment filename=\"pretext.rnc\">\n            <title>Hierarchical Structure</title>\n            <code>\n                    namespace pf = \"https://prefigure.org\"\n                    grammar {\n                </code>\n            <fragref ref=\"start-elements\" />\n            <fragref ref=\"gross-structure\" />\n            <fragref ref=\"document-types\" />\n            <fragref ref=\"divisions\" />\n            <fragref ref=\"frontmatter\" />\n            <fragref ref=\"backmatter\" />\n            <fragref ref=\"paragraphs\" />\n            <fragref ref=\"universal\" />\n            <fragref ref=\"printout\" />\n            <fragref ref=\"block\" />\n            <fragref ref=\"block-component\" />\n            <fragref ref=\"introduction-conclusion-headnote\" />\n            <fragref ref=\"objective-outcome\" />\n            <fragref ref=\"blockquote\" />\n            <fragref ref=\"verbatimdisplay\" />\n            <fragref ref=\"list\" />\n            <fragref ref=\"definition-like\" />\n            <fragref ref=\"theorem-like\" />\n            <fragref ref=\"axiom-like\" />\n            <fragref ref=\"example-like\" />\n            <fragref ref=\"project-like\" />\n            <fragref ref=\"remark-like\" />\n            <fragref ref=\"computation-like\" />\n            <fragref ref=\"aside\" />\n            <fragref ref=\"assemblage\" />\n            <fragref ref=\"table-figure\" />\n            <fragref ref=\"sidebyside\" />\n            <fragref ref=\"image\" />\n            <fragref ref=\"tabular\" />\n            <fragref ref=\"sage\" />\n            <fragref ref=\"interactive-musescore\" />\n            <fragref ref=\"audiovideo\" />\n            <fragref ref=\"exercise\" />\n            <fragref ref=\"poetry\" />\n            <fragref ref=\"bibliography\" />\n            <fragref ref=\"glossary\" />\n            <fragref ref=\"contributor\" />\n            <fragref ref=\"webwork\" />\n            <fragref ref=\"literate-programming\" />\n            <fragref ref=\"miscellaneous\" />\n            <fragref ref=\"frequently-used\" />\n            <fragref ref=\"paragraph\" />\n            <fragref ref=\"shorttext\" />\n            <fragref ref=\"footnote\" />\n            <fragref ref=\"index-entries\" />\n            <fragref ref=\"reference\" />\n            <fragref ref=\"mathematics\" />\n            <fragref ref=\"verbatim\" />\n            <fragref ref=\"group\" />\n            <fragref ref=\"generator\" />\n            <fragref ref=\"fillin-character\" />\n            <fragref ref=\"siunit\" />\n            <fragref ref=\"character\" />\n            <fragref ref=\"listgenerator\" />\n            <fragref ref=\"docinfo\" />\n            <code>\n                    }\n                </code>\n            </fragment>\n        </section>\n\n    <section>\n        <title>Development\n                Schema</title>\n\n        <p>Here we collect all fragments that are still experimental and put them\n                in a rnc file that includes the stable schema.</p>\n\n        <fragment filename=\"pretext-dev.rnc\">\n            <title>Development Schema</title>\n            <code>\n              namespace xhtml = \"http://www.w3.org/1999/xhtml\"\n                grammar {\n\n                include \"pretext.rnc\"\n            </code>\n            <fragref ref=\"interactive\" />\n            <fragref ref=\"frontmatter-dev\"/>\n            <fragref ref=\"docinfo-dev\"/>\n            <fragref ref=\"proof-like\"/>\n            <fragref ref=\"figure-dev\"/>\n            <fragref ref=\"handout\"/>\n            <fragref ref=\"solutions-dev\"/>\n            <fragref ref=\"reference-dev\"/>\n            <fragref ref=\"exercise-dev\"/>\n            <code>\n                }\n            </code>\n            </fragment>\n        </section>\n\n    <backmatter>\n        <appendix xml:id=\"fragment-list\">\n            <title>\n                    Fragments</title>\n\n            <list-of elements=\"fragment\"/>\n            </appendix>\n        </backmatter>\n\n    </article>\n</pretext>\n"
  },
  {
    "path": "schema/pretext.xsd",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\" xmlns:pf=\"https://prefigure.org\">\n  <xs:import namespace=\"http://www.w3.org/XML/1998/namespace\" schemaLocation=\"xml.xsd\"/>\n  <xs:import namespace=\"https://prefigure.org\" schemaLocation=\"pf.xsd\"/>\n  <xs:group name=\"PretextRoot\">\n    <xs:sequence>\n      <xs:element name=\"pretext\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:element minOccurs=\"0\" ref=\"docinfo\"/>\n            <xs:choice>\n              <xs:element ref=\"book\"/>\n              <xs:element ref=\"article\"/>\n              <xs:element ref=\"letter\"/>\n              <xs:element ref=\"memo\"/>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attribute ref=\"xml:lang\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"article\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataLinedSubtitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"ArticleFrontMatter\"/>\n            <xs:choice>\n              <xs:sequence>\n                <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n                <xs:choice maxOccurs=\"unbounded\">\n                  <xs:group ref=\"BlockDivision\"/>\n                  <xs:group ref=\"Paragraphs\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"objectives\"/>\n                  <xs:group ref=\"IntroductionDivision\"/>\n                </xs:choice>\n                <xs:choice>\n                  <xs:element ref=\"section\"/>\n                  <xs:group ref=\"Printout\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"section\"/>\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"outcomes\"/>\n                  <xs:group ref=\"ConclusionDivision\"/>\n                </xs:choice>\n                <xs:group minOccurs=\"0\" ref=\"ArticleBackMatter\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"book\">\n    <xs:annotation>\n      <xs:documentation>Here is what a book looks like.</xs:documentation>\n    </xs:annotation>\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataLinedSubtitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"BookFrontMatter\"/>\n            <xs:choice>\n              <xs:element maxOccurs=\"unbounded\" ref=\"part\"/>\n              <xs:element maxOccurs=\"unbounded\" ref=\"chapter\"/>\n              <xs:group maxOccurs=\"unbounded\" ref=\"Printout\"/>\n            </xs:choice>\n            <xs:group minOccurs=\"0\" ref=\"BookBackMatter\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"letter\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"memo\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"part\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataLinedTitle\">\n          <xs:sequence>\n            <xs:element maxOccurs=\"unbounded\" ref=\"chapter\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"chapter\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataLinedTitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AuthorByline\"/>\n            <xs:choice>\n              <xs:sequence>\n                <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n                <xs:choice maxOccurs=\"unbounded\">\n                  <xs:group ref=\"BlockDivision\"/>\n                  <xs:group ref=\"Paragraphs\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"objectives\"/>\n                  <xs:group ref=\"IntroductionDivision\"/>\n                </xs:choice>\n                <xs:choice>\n                  <xs:element ref=\"section\"/>\n                  <xs:group ref=\"Printout\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"section\"/>\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"outcomes\"/>\n                  <xs:group ref=\"ConclusionDivision\"/>\n                </xs:choice>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"section\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataLinedTitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AuthorByline\"/>\n            <xs:choice>\n              <xs:sequence>\n                <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n                <xs:choice maxOccurs=\"unbounded\">\n                  <xs:group ref=\"BlockDivision\"/>\n                  <xs:group ref=\"Paragraphs\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"objectives\"/>\n                  <xs:group ref=\"IntroductionDivision\"/>\n                </xs:choice>\n                <xs:choice>\n                  <xs:element ref=\"subsection\"/>\n                  <xs:group ref=\"Printout\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"subsection\"/>\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"outcomes\"/>\n                  <xs:group ref=\"ConclusionDivision\"/>\n                </xs:choice>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"subsection\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AuthorByline\"/>\n            <xs:choice>\n              <xs:sequence>\n                <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n                <xs:choice maxOccurs=\"unbounded\">\n                  <xs:group ref=\"BlockDivision\"/>\n                  <xs:group ref=\"Paragraphs\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"objectives\"/>\n                  <xs:group ref=\"IntroductionDivision\"/>\n                </xs:choice>\n                <xs:choice>\n                  <xs:element ref=\"subsubsection\"/>\n                  <xs:group ref=\"Printout\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"subsubsection\"/>\n                  <xs:group ref=\"Printout\"/>\n                  <xs:element ref=\"reading-questions\"/>\n                  <xs:element ref=\"exercises\"/>\n                  <xs:element ref=\"solutions\"/>\n                  <xs:element ref=\"references\"/>\n                  <xs:element ref=\"glossary\"/>\n                </xs:choice>\n                <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                  <xs:element ref=\"outcomes\"/>\n                  <xs:group ref=\"ConclusionDivision\"/>\n                </xs:choice>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"subsubsection\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AuthorByline\"/>\n            <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n            <xs:choice maxOccurs=\"unbounded\">\n              <xs:group ref=\"BlockDivision\"/>\n              <xs:group ref=\"Paragraphs\"/>\n            </xs:choice>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:group ref=\"Printout\"/>\n              <xs:element ref=\"reading-questions\"/>\n              <xs:element ref=\"exercises\"/>\n              <xs:element ref=\"solutions\"/>\n              <xs:element ref=\"references\"/>\n              <xs:element ref=\"glossary\"/>\n            </xs:choice>\n            <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"ArticleAppendix\">\n    <xs:sequence>\n      <xs:element name=\"appendix\">\n        <xs:complexType>\n          <xs:complexContent>\n            <xs:extension base=\"MetaDataAltTitle\">\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AuthorByline\"/>\n                <xs:choice>\n                  <xs:sequence>\n                    <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n                    <xs:choice maxOccurs=\"unbounded\">\n                      <xs:group ref=\"BlockDivision\"/>\n                      <xs:group ref=\"Paragraphs\"/>\n                      <xs:element ref=\"notation-list\"/>\n                    </xs:choice>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:group ref=\"Printout\"/>\n                      <xs:element ref=\"reading-questions\"/>\n                      <xs:element ref=\"exercises\"/>\n                      <xs:element ref=\"solutions\"/>\n                      <xs:element ref=\"references\"/>\n                      <xs:element ref=\"glossary\"/>\n                    </xs:choice>\n                    <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n                  </xs:sequence>\n                  <xs:sequence>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:element ref=\"objectives\"/>\n                      <xs:group ref=\"IntroductionDivision\"/>\n                    </xs:choice>\n                    <xs:choice>\n                      <xs:element ref=\"subsection\"/>\n                      <xs:group ref=\"Printout\"/>\n                    </xs:choice>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:element ref=\"subsection\"/>\n                      <xs:group ref=\"Printout\"/>\n                      <xs:element ref=\"reading-questions\"/>\n                      <xs:element ref=\"exercises\"/>\n                      <xs:element ref=\"solutions\"/>\n                      <xs:element ref=\"references\"/>\n                      <xs:element ref=\"glossary\"/>\n                    </xs:choice>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:element ref=\"outcomes\"/>\n                      <xs:group ref=\"ConclusionDivision\"/>\n                    </xs:choice>\n                  </xs:sequence>\n                </xs:choice>\n              </xs:sequence>\n            </xs:extension>\n          </xs:complexContent>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BookAppendix\">\n    <xs:sequence>\n      <xs:element name=\"appendix\">\n        <xs:complexType>\n          <xs:complexContent>\n            <xs:extension base=\"MetaDataAltTitle\">\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"AuthorByline\"/>\n                <xs:choice>\n                  <xs:sequence>\n                    <xs:element minOccurs=\"0\" ref=\"objectives\"/>\n                    <xs:choice maxOccurs=\"unbounded\">\n                      <xs:group ref=\"BlockDivision\"/>\n                      <xs:group ref=\"Paragraphs\"/>\n                      <xs:element ref=\"notation-list\"/>\n                    </xs:choice>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:group ref=\"Printout\"/>\n                      <xs:element ref=\"reading-questions\"/>\n                      <xs:element ref=\"exercises\"/>\n                      <xs:element ref=\"solutions\"/>\n                      <xs:element ref=\"references\"/>\n                      <xs:element ref=\"glossary\"/>\n                    </xs:choice>\n                    <xs:element minOccurs=\"0\" ref=\"outcomes\"/>\n                  </xs:sequence>\n                  <xs:sequence>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:element ref=\"objectives\"/>\n                      <xs:group ref=\"IntroductionDivision\"/>\n                    </xs:choice>\n                    <xs:choice>\n                      <xs:element ref=\"section\"/>\n                      <xs:group ref=\"Printout\"/>\n                    </xs:choice>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:element ref=\"section\"/>\n                      <xs:group ref=\"Printout\"/>\n                      <xs:element ref=\"reading-questions\"/>\n                      <xs:element ref=\"exercises\"/>\n                      <xs:element ref=\"solutions\"/>\n                      <xs:element ref=\"references\"/>\n                      <xs:element ref=\"glossary\"/>\n                    </xs:choice>\n                    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                      <xs:element ref=\"outcomes\"/>\n                      <xs:group ref=\"ConclusionDivision\"/>\n                    </xs:choice>\n                  </xs:sequence>\n                </xs:choice>\n              </xs:sequence>\n            </xs:extension>\n          </xs:complexContent>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"index\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:element ref=\"index-list\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"ArticleFrontMatter\">\n    <xs:sequence>\n      <xs:element name=\"frontmatter\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:element ref=\"bibinfo\"/>\n            <xs:element ref=\"titlepage\"/>\n            <xs:element minOccurs=\"0\" ref=\"abstract\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BookFrontMatter\">\n    <xs:sequence>\n      <xs:element name=\"frontmatter\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:element ref=\"bibinfo\"/>\n            <xs:element ref=\"titlepage\"/>\n            <xs:group minOccurs=\"0\" ref=\"ColophonFront\"/>\n            <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"biography\"/>\n            <xs:element minOccurs=\"0\" ref=\"dedication\"/>\n            <xs:element minOccurs=\"0\" ref=\"acknowledgement\"/>\n            <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"preface\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"bibinfo\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:choice minOccurs=\"0\">\n          <xs:sequence>\n            <xs:group maxOccurs=\"unbounded\" ref=\"Author\"/>\n            <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Editor\"/>\n          </xs:sequence>\n          <xs:group maxOccurs=\"unbounded\" ref=\"Editor\"/>\n        </xs:choice>\n        <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n          <xs:choice>\n            <xs:group ref=\"Credit\"/>\n            <xs:group ref=\"ColophonCredit\"/>\n          </xs:choice>\n          <xs:element ref=\"date\"/>\n          <xs:element ref=\"edition\"/>\n          <xs:element ref=\"keywords\"/>\n          <xs:element ref=\"support\"/>\n          <xs:element ref=\"website\"/>\n          <xs:group ref=\"Copyright\"/>\n        </xs:choice>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"titlepage\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element ref=\"titlepage-items\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"titlepage-items\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"email\" type=\"xs:string\"/>\n  <xs:element name=\"personname\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextSimple\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"affiliation\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"department\"/>\n        <xs:element ref=\"institution\"/>\n        <xs:element ref=\"location\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"department\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice>\n        <xs:group ref=\"TextSimple\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"ShortLine\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"institution\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice>\n        <xs:group ref=\"TextSimple\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"ShortLine\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"support\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextParagraph\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"location\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice>\n        <xs:group ref=\"TextSimple\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"ShortLine\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"keywords\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group minOccurs=\"0\" ref=\"Title\"/>\n        <xs:element maxOccurs=\"unbounded\" ref=\"keyword\"/>\n      </xs:sequence>\n      <xs:attribute name=\"authority\"/>\n      <xs:attribute name=\"variant\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"keyword\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextSimple\"/>\n      <xs:attribute name=\"primary\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"edition\" type=\"xs:string\"/>\n  <xs:element name=\"event\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Author\">\n    <xs:sequence>\n      <xs:element name=\"author\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:element ref=\"personname\"/>\n            <xs:choice minOccurs=\"0\">\n              <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                <xs:element ref=\"department\"/>\n                <xs:element ref=\"institution\"/>\n                <xs:element ref=\"location\"/>\n              </xs:choice>\n              <xs:element maxOccurs=\"unbounded\" ref=\"affiliation\"/>\n            </xs:choice>\n            <xs:element minOccurs=\"0\" ref=\"email\"/>\n            <xs:element minOccurs=\"0\" ref=\"biography\"/>\n            <xs:element minOccurs=\"0\" ref=\"support\"/>\n          </xs:sequence>\n          <xs:attribute name=\"corresponding\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute ref=\"xml:id\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Editor\">\n    <xs:sequence>\n      <xs:element name=\"editor\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:element ref=\"personname\"/>\n            <xs:choice minOccurs=\"0\">\n              <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n                <xs:element ref=\"department\"/>\n                <xs:element ref=\"institution\"/>\n                <xs:element ref=\"location\"/>\n              </xs:choice>\n              <xs:element maxOccurs=\"unbounded\" ref=\"affiliation\"/>\n            </xs:choice>\n            <xs:element minOccurs=\"0\" ref=\"email\"/>\n          </xs:sequence>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Credit\">\n    <xs:sequence>\n      <xs:element name=\"credit\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"Title\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"Author\"/>\n          </xs:sequence>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"date\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:group ref=\"Character\"/>\n        <xs:group ref=\"Generator\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"abstract\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTarget\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTarget\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"ColophonCredit\">\n    <xs:sequence>\n      <xs:element name=\"credit\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:element ref=\"role\"/>\n            <xs:element ref=\"entity\"/>\n          </xs:sequence>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"role\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"entity\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"shortlicense\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"website\">\n    <xs:complexType>\n      <xs:group ref=\"Url\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Copyright\">\n    <xs:sequence>\n      <xs:element name=\"copyright\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:element name=\"year\">\n              <xs:complexType mixed=\"true\">\n                <xs:group ref=\"TextShort\"/>\n              </xs:complexType>\n            </xs:element>\n            <xs:element ref=\"holder\"/>\n            <xs:element minOccurs=\"0\" ref=\"minilicense\"/>\n            <xs:element minOccurs=\"0\" ref=\"shortlicense\"/>\n          </xs:sequence>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"holder\" type=\"xs:string\"/>\n  <xs:element name=\"minilicense\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"ColophonFront\">\n    <xs:sequence>\n      <xs:element name=\"colophon\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTarget\"/>\n            <xs:element ref=\"colophon-items\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTarget\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"colophon-items\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"biography\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:choice maxOccurs=\"unbounded\">\n          <xs:group ref=\"BlockStatementNoCaption\"/>\n          <xs:group ref=\"ParagraphsNoNumber\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"dedication\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:choice maxOccurs=\"unbounded\">\n          <xs:group ref=\"Paragraph\"/>\n          <xs:group ref=\"ParagraphLined\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"acknowledgement\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:choice maxOccurs=\"unbounded\">\n          <xs:group ref=\"BlockStatementNoCaption\"/>\n          <xs:group ref=\"ParagraphsNoNumber\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"preface\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:choice>\n          <xs:sequence>\n            <xs:choice maxOccurs=\"unbounded\">\n              <xs:group ref=\"BlockStatementNoCaption\"/>\n              <xs:group ref=\"ParagraphsNoNumber\"/>\n            </xs:choice>\n            <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"attribution\"/>\n          </xs:sequence>\n          <xs:sequence>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:group ref=\"BlockStatementNoCaption\"/>\n              <xs:group ref=\"ParagraphsNoNumber\"/>\n            </xs:choice>\n            <xs:element ref=\"contributors\"/>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:group ref=\"BlockStatementNoCaption\"/>\n              <xs:group ref=\"ParagraphsNoNumber\"/>\n            </xs:choice>\n          </xs:sequence>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"ArticleBackMatter\">\n    <xs:sequence>\n      <xs:element name=\"backmatter\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:group ref=\"ArticleAppendix\"/>\n              <xs:element ref=\"solutions\"/>\n            </xs:choice>\n            <xs:element minOccurs=\"0\" ref=\"references\"/>\n            <xs:element minOccurs=\"0\" ref=\"index\"/>\n            <xs:group minOccurs=\"0\" ref=\"ColophonBack\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BookBackMatter\">\n    <xs:sequence>\n      <xs:element name=\"backmatter\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:group ref=\"BookAppendix\"/>\n              <xs:element ref=\"solutions\"/>\n            </xs:choice>\n            <xs:element minOccurs=\"0\" ref=\"glossary\"/>\n            <xs:element minOccurs=\"0\" ref=\"references\"/>\n            <xs:element minOccurs=\"0\" ref=\"index\"/>\n            <xs:group minOccurs=\"0\" ref=\"ColophonBack\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ColophonBack\">\n    <xs:sequence>\n      <xs:element name=\"colophon\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTarget\"/>\n            <xs:choice maxOccurs=\"unbounded\">\n              <xs:group ref=\"BlockText\"/>\n              <xs:group ref=\"SideBySideNoCaption\"/>\n              <xs:group ref=\"SideBySideGroupNoCaption\"/>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTarget\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Paragraphs\">\n    <xs:sequence>\n      <xs:element name=\"paragraphs\">\n        <xs:complexType>\n          <xs:complexContent>\n            <xs:extension base=\"MetaDataTitle\">\n              <xs:sequence>\n                <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"BlockDivision\"/>\n              </xs:sequence>\n            </xs:extension>\n          </xs:complexContent>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ParagraphsNoNumber\">\n    <xs:sequence>\n      <xs:element name=\"paragraphs\">\n        <xs:complexType>\n          <xs:complexContent>\n            <xs:extension base=\"MetaDataTitle\">\n              <xs:sequence>\n                <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementNoCaption\"/>\n              </xs:sequence>\n            </xs:extension>\n          </xs:complexContent>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"reading-questions\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"IntroductionDivision\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"Exercise\"/>\n            <xs:group minOccurs=\"0\" ref=\"ConclusionDivision\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercises\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"IntroductionDivision\"/>\n            <xs:choice>\n              <xs:choice maxOccurs=\"unbounded\">\n                <xs:group ref=\"Exercise\"/>\n                <xs:element ref=\"exercisegroup\"/>\n              </xs:choice>\n              <xs:element maxOccurs=\"unbounded\" ref=\"subexercises\"/>\n            </xs:choice>\n            <xs:group minOccurs=\"0\" ref=\"ConclusionDivision\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"subexercises\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"IntroductionDivision\"/>\n            <xs:choice maxOccurs=\"unbounded\">\n              <xs:group ref=\"Exercise\"/>\n              <xs:element ref=\"exercisegroup\"/>\n            </xs:choice>\n            <xs:group minOccurs=\"0\" ref=\"ConclusionDivision\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"solutions\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"IntroductionDivision\"/>\n            <xs:group minOccurs=\"0\" ref=\"ConclusionDivision\"/>\n          </xs:sequence>\n          <xs:attribute name=\"inline\"/>\n          <xs:attribute name=\"divisional\"/>\n          <xs:attribute name=\"project\"/>\n          <xs:attribute name=\"admit\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"all\"/>\n                <xs:enumeration value=\"odd\"/>\n                <xs:enumeration value=\"even\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"references\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"IntroductionDivision\"/>\n            <xs:element maxOccurs=\"unbounded\" ref=\"biblio\"/>\n            <xs:group minOccurs=\"0\" ref=\"ConclusionDivision\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"glossary\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:element minOccurs=\"0\" ref=\"headnote\"/>\n            <xs:element maxOccurs=\"unbounded\" ref=\"gi\"/>\n          </xs:sequence>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"PrintoutAttributes\">\n    <xs:attribute name=\"margin\"/>\n    <xs:attribute name=\"top\"/>\n    <xs:attribute name=\"bottom\"/>\n    <xs:attribute name=\"right\"/>\n    <xs:attribute name=\"left\"/>\n  </xs:attributeGroup>\n  <xs:group name=\"PrintoutBlock\">\n    <xs:choice>\n      <xs:group ref=\"BlockStatement\"/>\n      <xs:group ref=\"Remark\"/>\n      <xs:group ref=\"Computation\"/>\n      <xs:group ref=\"Theorem\"/>\n      <xs:element ref=\"proof\"/>\n      <xs:element ref=\"definition\"/>\n      <xs:group ref=\"Axiom\"/>\n      <xs:group ref=\"Example\"/>\n      <xs:group ref=\"PrintoutExercise\"/>\n      <xs:group ref=\"Project\"/>\n      <xs:element ref=\"poem\"/>\n      <xs:element ref=\"assemblage\"/>\n      <xs:element ref=\"list-of\"/>\n      <xs:element ref=\"fragment\"/>\n      <xs:group ref=\"PrintoutSideBySide\"/>\n      <xs:group ref=\"Paragraphs\"/>\n    </xs:choice>\n  </xs:group>\n  <!-- Allow exercise in sidebyside -->\n  <xs:group name=\"PrintoutSideBySide\">\n    <xs:sequence>\n      <xs:element name=\"sidebyside\">\n        <xs:complexType>\n          <xs:choice maxOccurs=\"unbounded\">\n            <xs:group ref=\"Figure\"/>\n            <xs:element ref=\"poem\"/>\n            <xs:element ref=\"tabular\"/>\n            <xs:group ref=\"Image\"/>\n            <xs:element ref=\"video\"/>\n            <xs:element ref=\"program\"/>\n            <xs:element ref=\"console\"/>\n            <xs:group ref=\"Paragraph\"/>\n            <xs:element ref=\"pre\"/>\n            <xs:group ref=\"List\"/>\n            <xs:element ref=\"stack\"/>\n            <xs:group ref=\"PrintoutExercise\"/>\n            <xs:group ref=\"PrintoutTask\"/>\n          </xs:choice>\n          <xs:attributeGroup ref=\"SidebySideAttributes\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <!-- Exercises and tasks can have workspace: -->\n  <xs:group name=\"PrintoutExercise\">\n    <xs:sequence>\n      <xs:element name=\"exercise\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice>\n              <xs:group ref=\"ExerciseBody\"/>\n              <xs:sequence>\n                <xs:group ref=\"StatementExercise\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Hint\"/>\n                <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"answer\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Solution\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n                <xs:group ref=\"WebWork\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionStatement\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"PrintoutTask\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionStatement\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n          <xs:attribute name=\"number\"/>\n          <xs:attribute name=\"workspace\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"PrintoutTask\">\n    <xs:sequence>\n      <xs:element name=\"task\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice>\n              <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n              <xs:sequence>\n                <xs:group ref=\"Statement\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Hint\"/>\n                <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"answer\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Solution\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionStatement\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"PrintoutTask\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionStatement\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n          <xs:attribute name=\"workspace\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <!-- Page can contain a printout block or be empty -->\n  <xs:element name=\"page\">\n    <xs:complexType>\n      <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"PrintoutBlock\"/>\n    </xs:complexType>\n  </xs:element>\n  <!-- Main worksheet definition -->\n  <xs:element name=\"worksheet\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitleOptional\">\n          <xs:sequence>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:element ref=\"objectives\"/>\n              <xs:group ref=\"IntroductionDivision\"/>\n            </xs:choice>\n            <xs:choice>\n              <xs:element maxOccurs=\"unbounded\" ref=\"page\"/>\n              <xs:group maxOccurs=\"unbounded\" ref=\"PrintoutBlock\"/>\n            </xs:choice>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:element ref=\"outcomes\"/>\n              <xs:group ref=\"ConclusionDivision\"/>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"PrintoutAttributes\"/>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <!-- Printout currently just means a Worksheet, but could be extended later. -->\n  <xs:group name=\"Printout\">\n    <xs:sequence>\n      <xs:element ref=\"worksheet\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BlockText\">\n    <xs:choice>\n      <xs:group ref=\"Paragraph\"/>\n      <xs:element ref=\"blockquote\"/>\n      <xs:element ref=\"pre\"/>\n      <xs:group ref=\"Image\"/>\n      <xs:element ref=\"video\"/>\n      <xs:element ref=\"program\"/>\n      <xs:element ref=\"console\"/>\n      <xs:element ref=\"tabular\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"BlockStatementNoCaption\">\n    <xs:choice>\n      <xs:group ref=\"BlockText\"/>\n      <xs:group ref=\"Aside\"/>\n      <xs:group ref=\"SideBySideNoCaption\"/>\n      <xs:group ref=\"SideBySideGroupNoCaption\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"BlockStatement\">\n    <xs:choice>\n      <xs:group ref=\"BlockText\"/>\n      <xs:group ref=\"Figure\"/>\n      <xs:group ref=\"Aside\"/>\n      <xs:group ref=\"SideBySide\"/>\n      <xs:group ref=\"SideBySideGroup\"/>\n      <xs:element ref=\"sage\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"BlockSolution\">\n    <xs:choice>\n      <xs:group ref=\"BlockStatement\"/>\n      <xs:element ref=\"proof\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"BlockDivision\">\n    <xs:choice>\n      <xs:group ref=\"BlockStatement\"/>\n      <xs:group ref=\"Remark\"/>\n      <xs:group ref=\"Computation\"/>\n      <xs:group ref=\"Theorem\"/>\n      <xs:element ref=\"proof\"/>\n      <xs:element ref=\"definition\"/>\n      <xs:group ref=\"Axiom\"/>\n      <xs:group ref=\"Example\"/>\n      <xs:group ref=\"Exercise\"/>\n      <xs:group ref=\"Project\"/>\n      <xs:element ref=\"poem\"/>\n      <xs:element ref=\"assemblage\"/>\n      <xs:element ref=\"list-of\"/>\n      <xs:element ref=\"fragment\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"prelude\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"interlude\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"postlude\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Statement\">\n    <xs:sequence>\n      <xs:element name=\"statement\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Hint\">\n    <xs:sequence>\n      <xs:element name=\"hint\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"BlockSolution\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"answer\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"BlockSolution\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Solution\">\n    <xs:sequence>\n      <xs:element name=\"solution\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"BlockSolution\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"IntroductionText\">\n    <xs:sequence>\n      <xs:element name=\"introduction\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ConclusionText\">\n    <xs:sequence>\n      <xs:element name=\"conclusion\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"IntroductionStatementNoCaption\">\n    <xs:sequence>\n      <xs:element name=\"introduction\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementNoCaption\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ConclusionStatementNoCaption\">\n    <xs:sequence>\n      <xs:element name=\"conclusion\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementNoCaption\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"IntroductionStatement\">\n    <xs:sequence>\n      <xs:element name=\"introduction\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ConclusionStatement\">\n    <xs:sequence>\n      <xs:element name=\"conclusion\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"IntroductionDivision\">\n    <xs:sequence>\n      <xs:element name=\"introduction\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"BlockDivision\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ConclusionDivision\">\n    <xs:sequence>\n      <xs:element name=\"conclusion\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"MetaDataTitleOptional\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"BlockDivision\"/>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"headnote\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementNoCaption\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"objectives\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n        <xs:group ref=\"List\"/>\n        <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"outcomes\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n        <xs:group ref=\"List\"/>\n        <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"blockquote\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"Paragraph\"/>\n        <xs:element minOccurs=\"0\" ref=\"attribution\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"SimpleLine\">\n    <xs:sequence>\n      <xs:element name=\"line\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextSimple\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ShortLine\">\n    <xs:sequence>\n      <xs:element name=\"line\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextShort\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"LongLine\">\n    <xs:sequence>\n      <xs:element name=\"line\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextLong\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"cline\" type=\"xs:string\"/>\n  <xs:element name=\"cd\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"cline\"/>\n      </xs:sequence>\n      <xs:attribute name=\"latexsep\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"pre\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"cline\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"output\" type=\"xs:string\"/>\n  <xs:group name=\"ConsoleInput\">\n    <xs:sequence>\n      <xs:element name=\"input\">\n        <xs:complexType mixed=\"true\">\n          <xs:attribute name=\"prompt\"/>\n          <xs:attribute name=\"continuation\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"console\">\n    <xs:complexType>\n      <xs:sequence maxOccurs=\"unbounded\">\n        <xs:group ref=\"ConsoleInput\"/>\n        <xs:element minOccurs=\"0\" ref=\"output\"/>\n      </xs:sequence>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"prompt\"/>\n      <xs:attribute name=\"continuation\"/>\n      <xs:attribute name=\"width\"/>\n      <xs:attribute name=\"margins\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"preamble\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"visible\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"code\" type=\"xs:string\"/>\n  <xs:element name=\"postamble\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"visible\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"tests\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"iotest\"/>\n      </xs:sequence>\n      <xs:attribute name=\"visible\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"iotest\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element name=\"input\" type=\"xs:string\"/>\n        <xs:element ref=\"output\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"stdin\" type=\"xs:string\"/>\n  <xs:element name=\"checkpoint\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element ref=\"prompt\"/>\n        <xs:element minOccurs=\"0\" name=\"feedback\">\n          <xs:complexType>\n            <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n          </xs:complexType>\n        </xs:element>\n      </xs:sequence>\n      <xs:attribute name=\"line\" use=\"required\"/>\n      <xs:attribute name=\"answer\"/>\n      <xs:attribute name=\"answer-variable\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"prompt\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"program\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence minOccurs=\"0\">\n        <xs:element minOccurs=\"0\" ref=\"preamble\"/>\n        <xs:element ref=\"code\"/>\n        <xs:element minOccurs=\"0\" ref=\"postamble\"/>\n        <xs:element minOccurs=\"0\" ref=\"tests\"/>\n        <xs:element minOccurs=\"0\" ref=\"stdin\"/>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"checkpoint\"/>\n      </xs:sequence>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"label\"/>\n      <xs:attribute ref=\"xml:id\"/>\n      <xs:attribute name=\"width\"/>\n      <xs:attribute name=\"margins\"/>\n      <xs:attribute name=\"autorun\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"chatcodes\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"codelens\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"starting-step\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"compiler-args\"/>\n      <xs:attribute name=\"extra-compiler-args\"/>\n      <xs:attribute name=\"database\"/>\n      <xs:attribute name=\"add-files\"/>\n      <xs:attribute name=\"compile-also\"/>\n      <xs:attribute name=\"download\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"hidecode\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"highlight-lines\"/>\n      <xs:attribute name=\"include\"/>\n      <xs:attribute name=\"filename\"/>\n      <xs:attribute name=\"interactive\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"codelens\"/>\n            <xs:enumeration value=\"activecode\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"interpreter-args\"/>\n      <xs:attribute name=\"language\"/>\n      <xs:attribute name=\"line-numbers\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"linker-args\"/>\n      <xs:attribute name=\"timelimit\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"ListItem\">\n    <xs:sequence>\n      <xs:element name=\"li\">\n        <xs:complexType mixed=\"true\">\n          <xs:choice>\n            <xs:sequence>\n              <xs:group ref=\"MetaDataTarget\"/>\n              <xs:group ref=\"TextParagraph\"/>\n            </xs:sequence>\n            <xs:sequence>\n              <xs:group ref=\"MetaDataTitleOptional\"/>\n              <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n            </xs:sequence>\n          </xs:choice>\n          <xs:attributeGroup ref=\"MetaDataTarget\"/>\n          <xs:attribute ref=\"xml:base\"/>\n          <xs:attribute ref=\"xml:lang\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"DefinitionListItem\">\n    <xs:sequence>\n      <xs:element name=\"li\">\n        <xs:complexType>\n          <xs:complexContent>\n            <xs:extension base=\"MetaDataTitle\">\n              <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n            </xs:extension>\n          </xs:complexContent>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"List\">\n    <xs:choice>\n      <xs:element name=\"ol\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"ListItem\"/>\n          <xs:attribute name=\"component\"/>\n          <xs:attribute name=\"cols\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"2\"/>\n                <xs:enumeration value=\"3\"/>\n                <xs:enumeration value=\"4\"/>\n                <xs:enumeration value=\"5\"/>\n                <xs:enumeration value=\"6\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute name=\"marker\"/>\n        </xs:complexType>\n      </xs:element>\n      <xs:element ref=\"ul\"/>\n      <xs:element ref=\"dl\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"ul\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"ListItem\"/>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"cols\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"marker\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"disc\"/>\n            <xs:enumeration value=\"circle\"/>\n            <xs:enumeration value=\"square\"/>\n            <xs:enumeration value=\"\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"dl\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"DefinitionListItem\"/>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"width\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"narrow\"/>\n            <xs:enumeration value=\"medium\"/>\n            <xs:enumeration value=\"wide\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:complexType name=\"DefinitionLike\">\n    <xs:sequence>\n      <xs:group ref=\"MetaDataTitleOptional\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"notation\"/>\n      <xs:group ref=\"Statement\"/>\n    </xs:sequence>\n    <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n  </xs:complexType>\n  <xs:element name=\"definition\" type=\"DefinitionLike\"/>\n  <xs:element name=\"case\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n      <xs:attribute name=\"direction\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"proof\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:choice maxOccurs=\"unbounded\">\n          <xs:group ref=\"BlockStatement\"/>\n          <xs:element ref=\"case\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:complexType name=\"TheoremLike\">\n    <xs:complexContent>\n      <xs:extension base=\"MetaDataTitleCreatorOptional\">\n        <xs:choice>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n          <xs:sequence>\n            <xs:group ref=\"Statement\"/>\n            <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"proof\"/>\n          </xs:sequence>\n        </xs:choice>\n      </xs:extension>\n    </xs:complexContent>\n  </xs:complexType>\n  <xs:group name=\"Theorem\">\n    <xs:choice>\n      <xs:element ref=\"theorem\"/>\n      <xs:element ref=\"lemma\"/>\n      <xs:element ref=\"corollary\"/>\n      <xs:element ref=\"claim\"/>\n      <xs:element ref=\"proposition\"/>\n      <xs:element ref=\"algorithm\"/>\n      <xs:element ref=\"fact\"/>\n      <xs:element ref=\"identity\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"theorem\" type=\"TheoremLike\"/>\n  <xs:element name=\"lemma\" type=\"TheoremLike\"/>\n  <xs:element name=\"corollary\" type=\"TheoremLike\"/>\n  <xs:element name=\"claim\" type=\"TheoremLike\"/>\n  <xs:element name=\"proposition\" type=\"TheoremLike\"/>\n  <xs:element name=\"algorithm\" type=\"TheoremLike\"/>\n  <xs:element name=\"fact\" type=\"TheoremLike\"/>\n  <xs:element name=\"identity\" type=\"TheoremLike\"/>\n  <xs:complexType name=\"AxiomLike\">\n    <xs:complexContent>\n      <xs:extension base=\"MetaDataTitleCreatorOptional\">\n        <xs:group ref=\"Statement\"/>\n      </xs:extension>\n    </xs:complexContent>\n  </xs:complexType>\n  <xs:group name=\"Axiom\">\n    <xs:choice>\n      <xs:element ref=\"axiom\"/>\n      <xs:element ref=\"principle\"/>\n      <xs:element ref=\"conjecture\"/>\n      <xs:element ref=\"heuristic\"/>\n      <xs:element ref=\"hypothesis\"/>\n      <xs:element ref=\"assumption\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"axiom\" type=\"AxiomLike\"/>\n  <xs:element name=\"principle\" type=\"AxiomLike\"/>\n  <xs:element name=\"conjecture\" type=\"AxiomLike\"/>\n  <xs:element name=\"heuristic\" type=\"AxiomLike\"/>\n  <xs:element name=\"hypothesis\" type=\"AxiomLike\"/>\n  <xs:element name=\"assumption\" type=\"AxiomLike\"/>\n  <xs:complexType name=\"ExampleLike\">\n    <xs:sequence>\n      <xs:group ref=\"MetaDataTitleOptional\"/>\n      <xs:choice>\n        <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n        <xs:sequence>\n          <xs:group ref=\"Statement\"/>\n          <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Hint\"/>\n          <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"answer\"/>\n          <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Solution\"/>\n        </xs:sequence>\n        <xs:sequence>\n          <xs:group minOccurs=\"0\" ref=\"IntroductionStatement\"/>\n          <xs:group maxOccurs=\"unbounded\" ref=\"Task\"/>\n          <xs:group minOccurs=\"0\" ref=\"ConclusionStatement\"/>\n        </xs:sequence>\n      </xs:choice>\n    </xs:sequence>\n    <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n  </xs:complexType>\n  <xs:group name=\"Example\">\n    <xs:choice>\n      <xs:element ref=\"example\"/>\n      <xs:element ref=\"question\"/>\n      <xs:element ref=\"problem\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"example\" type=\"ExampleLike\"/>\n  <xs:element name=\"question\" type=\"ExampleLike\"/>\n  <xs:element name=\"problem\" type=\"ExampleLike\"/>\n  <xs:complexType name=\"ProjectLike\">\n    <xs:sequence>\n      <xs:group ref=\"MetaDataTitleOptional\"/>\n      <xs:choice>\n        <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n        <xs:sequence>\n          <xs:element minOccurs=\"0\" ref=\"prelude\"/>\n          <xs:choice>\n            <xs:sequence>\n              <xs:group ref=\"Statement\"/>\n              <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Hint\"/>\n              <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"answer\"/>\n              <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Solution\"/>\n            </xs:sequence>\n            <xs:sequence>\n              <xs:group minOccurs=\"0\" ref=\"IntroductionStatement\"/>\n              <xs:group maxOccurs=\"unbounded\" ref=\"Task\"/>\n              <xs:group minOccurs=\"0\" ref=\"ConclusionStatement\"/>\n            </xs:sequence>\n            <xs:sequence>\n              <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n              <xs:group ref=\"WebWork\"/>\n              <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n            </xs:sequence>\n          </xs:choice>\n          <xs:element minOccurs=\"0\" ref=\"postlude\"/>\n        </xs:sequence>\n      </xs:choice>\n    </xs:sequence>\n    <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n  </xs:complexType>\n  <xs:group name=\"Project\">\n    <xs:choice>\n      <xs:element ref=\"activity\"/>\n      <xs:element ref=\"investigation\"/>\n      <xs:element ref=\"exploration\"/>\n      <xs:element ref=\"project\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"activity\" type=\"ProjectLike\"/>\n  <xs:element name=\"investigation\" type=\"ProjectLike\"/>\n  <xs:element name=\"exploration\" type=\"ProjectLike\"/>\n  <xs:element name=\"project\" type=\"ProjectLike\"/>\n  <xs:group name=\"Task\">\n    <xs:sequence>\n      <xs:element name=\"task\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice>\n              <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n              <xs:sequence>\n                <xs:group ref=\"Statement\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Hint\"/>\n                <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"answer\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Solution\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionStatement\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"Task\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionStatement\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n          <xs:attribute name=\"workspace\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:complexType name=\"RemarkLike\">\n    <xs:sequence>\n      <xs:group ref=\"MetaDataTitleOptional\"/>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n    </xs:sequence>\n    <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n  </xs:complexType>\n  <xs:group name=\"Remark\">\n    <xs:choice>\n      <xs:element ref=\"remark\"/>\n      <xs:element ref=\"convention\"/>\n      <xs:element name=\"note\" type=\"RemarkLike\"/>\n      <xs:element ref=\"observation\"/>\n      <xs:element ref=\"warning\"/>\n      <xs:element ref=\"insight\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"remark\" type=\"RemarkLike\"/>\n  <xs:element name=\"convention\" type=\"RemarkLike\"/>\n  <xs:element name=\"observation\" type=\"RemarkLike\"/>\n  <xs:element name=\"warning\" type=\"RemarkLike\"/>\n  <xs:element name=\"insight\" type=\"RemarkLike\"/>\n  <xs:complexType name=\"ComputationLike\">\n    <xs:sequence>\n      <xs:group ref=\"MetaDataTitleOptional\"/>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatement\"/>\n    </xs:sequence>\n    <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n  </xs:complexType>\n  <xs:group name=\"Computation\">\n    <xs:choice>\n      <xs:element ref=\"computation\"/>\n      <xs:element ref=\"technology\"/>\n      <xs:element ref=\"data\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"computation\" type=\"ComputationLike\"/>\n  <xs:element name=\"technology\" type=\"ComputationLike\"/>\n  <xs:element name=\"data\" type=\"ComputationLike\"/>\n  <xs:complexType name=\"AsideLike\">\n    <xs:sequence>\n      <xs:group ref=\"MetaDataTitleOptional\"/>\n      <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n    </xs:sequence>\n    <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n  </xs:complexType>\n  <xs:group name=\"Aside\">\n    <xs:choice>\n      <xs:element ref=\"aside\"/>\n      <xs:element ref=\"biographical\"/>\n      <xs:element ref=\"historical\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"aside\" type=\"AsideLike\"/>\n  <xs:element name=\"biographical\" type=\"AsideLike\"/>\n  <xs:element name=\"historical\" type=\"AsideLike\"/>\n  <xs:element name=\"assemblage\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:choice maxOccurs=\"unbounded\">\n          <xs:group ref=\"BlockText\"/>\n          <xs:group ref=\"SideBySideNoCaption\"/>\n          <xs:group ref=\"SideBySideGroupNoCaption\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"caption\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"Landscape\">\n    <xs:attribute name=\"landscape\" use=\"required\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"yes\"/>\n          <xs:enumeration value=\"no\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n  </xs:attributeGroup>\n  <xs:group name=\"Figure\">\n    <xs:choice>\n      <xs:element ref=\"figure\"/>\n      <xs:element ref=\"table\"/>\n      <xs:element ref=\"listing\"/>\n      <xs:element ref=\"list\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"figure\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataCaption\">\n          <xs:choice>\n            <xs:group ref=\"Image\"/>\n            <xs:element ref=\"video\"/>\n            <xs:group ref=\"SideBySide\"/>\n            <xs:group ref=\"SideBySideGroup\"/>\n            <xs:element ref=\"score\"/>\n          </xs:choice>\n          <xs:attribute name=\"landscape\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"table\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitle\">\n          <xs:sequence>\n            <xs:element ref=\"tabular\"/>\n          </xs:sequence>\n          <xs:attribute name=\"landscape\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"listing\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitle\">\n          <xs:choice>\n            <xs:element ref=\"program\"/>\n            <xs:element ref=\"console\"/>\n          </xs:choice>\n          <xs:attribute name=\"landscape\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"list\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataAltTitle\">\n          <xs:sequence>\n            <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n            <xs:group ref=\"List\"/>\n            <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n          </xs:sequence>\n          <xs:attribute name=\"landscape\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"stack\">\n    <xs:complexType>\n      <xs:choice maxOccurs=\"unbounded\">\n        <xs:element ref=\"tabular\"/>\n        <xs:group ref=\"Image\"/>\n        <xs:element ref=\"video\"/>\n        <xs:element ref=\"program\"/>\n        <xs:element ref=\"console\"/>\n        <xs:group ref=\"Paragraph\"/>\n        <xs:element ref=\"pre\"/>\n        <xs:group ref=\"List\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"SidebySideAttributes\">\n    <xs:attribute name=\"component\"/>\n    <xs:attribute name=\"margins\"/>\n    <xs:attribute name=\"width\"/>\n    <xs:attribute name=\"widths\"/>\n    <xs:attribute name=\"valign\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"top\"/>\n          <xs:enumeration value=\"middle\"/>\n          <xs:enumeration value=\"bottom\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n    <xs:attribute name=\"valigns\"/>\n  </xs:attributeGroup>\n  <xs:group name=\"SideBySide\">\n    <xs:sequence>\n      <xs:element name=\"sidebyside\">\n        <xs:complexType>\n          <xs:choice maxOccurs=\"unbounded\">\n            <xs:group ref=\"Figure\"/>\n            <xs:element ref=\"poem\"/>\n            <xs:element ref=\"tabular\"/>\n            <xs:group ref=\"Image\"/>\n            <xs:element ref=\"video\"/>\n            <xs:element ref=\"program\"/>\n            <xs:element ref=\"console\"/>\n            <xs:group ref=\"Paragraph\"/>\n            <xs:element ref=\"pre\"/>\n            <xs:group ref=\"List\"/>\n            <xs:element ref=\"stack\"/>\n          </xs:choice>\n          <xs:attributeGroup ref=\"SidebySideAttributes\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"SideBySideNoCaption\">\n    <xs:sequence>\n      <xs:element name=\"sidebyside\">\n        <xs:complexType>\n          <xs:choice maxOccurs=\"unbounded\">\n            <xs:element ref=\"poem\"/>\n            <xs:element ref=\"tabular\"/>\n            <xs:group ref=\"Image\"/>\n            <xs:element ref=\"video\"/>\n            <xs:element ref=\"program\"/>\n            <xs:element ref=\"console\"/>\n            <xs:group ref=\"Paragraph\"/>\n            <xs:element ref=\"pre\"/>\n            <xs:group ref=\"List\"/>\n            <xs:element ref=\"stack\"/>\n          </xs:choice>\n          <xs:attributeGroup ref=\"SidebySideAttributes\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"SideBySideGroup\">\n    <xs:sequence>\n      <xs:element name=\"sbsgroup\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"SideBySide\"/>\n          <xs:attributeGroup ref=\"SidebySideAttributes\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"SideBySideGroupNoCaption\">\n    <xs:sequence>\n      <xs:element name=\"sbsgroup\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"SideBySideNoCaption\"/>\n          <xs:attributeGroup ref=\"SidebySideAttributes\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Image\">\n    <xs:choice>\n      <xs:group ref=\"ImageRaster\"/>\n      <xs:group ref=\"ImageCode\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"ImageDescription\">\n    <xs:sequence>\n      <xs:element name=\"description\">\n        <xs:complexType>\n          <xs:choice maxOccurs=\"unbounded\">\n            <xs:group ref=\"Paragraph\"/>\n            <xs:element ref=\"tabular\"/>\n          </xs:choice>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ImageShortDescription\">\n    <xs:sequence>\n      <xs:element name=\"shortdescription\" type=\"xs:string\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ImageShortDescriptionCode\">\n    <xs:sequence>\n      <xs:element name=\"shortdescription\">\n        <xs:complexType mixed=\"true\">\n          <xs:sequence>\n            <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"var\"/>\n          </xs:sequence>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ImageRaster\">\n    <xs:sequence>\n      <xs:element name=\"image\">\n        <xs:complexType>\n          <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n            <xs:group ref=\"ImageShortDescription\"/>\n            <xs:group ref=\"ImageDescription\"/>\n          </xs:choice>\n          <xs:attribute ref=\"xml:id\"/>\n          <xs:attribute name=\"component\"/>\n          <xs:attribute name=\"width\"/>\n          <xs:attribute name=\"margins\"/>\n          <xs:attribute name=\"rotate\"/>\n          <xs:attribute name=\"archive\"/>\n          <xs:attribute name=\"source\" use=\"required\"/>\n          <xs:attribute name=\"decorative\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"CodeLatexImage\">\n    <xs:sequence>\n      <xs:element name=\"latex-image\">\n        <xs:complexType mixed=\"true\">\n          <xs:attribute name=\"label\"/>\n          <xs:attribute name=\"component\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"AnyPFContent\">\n    <xs:sequence>\n      <xs:any minOccurs=\"0\" processContents=\"skip\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ImageCode\">\n    <xs:sequence>\n      <xs:element name=\"image\">\n        <xs:complexType>\n          <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n            <xs:group ref=\"ImageShortDescriptionCode\"/>\n            <xs:group ref=\"ImageDescription\"/>\n            <xs:choice>\n              <xs:group ref=\"CodeLatexImage\"/>\n              <xs:element ref=\"asymptote\"/>\n              <xs:element ref=\"sageplot\"/>\n              <xs:element ref=\"mermaid\"/>\n              <xs:element ref=\"pf:prefigure\"/>\n            </xs:choice>\n          </xs:choice>\n          <xs:attribute ref=\"xml:id\"/>\n          <xs:attribute name=\"component\"/>\n          <xs:attribute name=\"width\"/>\n          <xs:attribute name=\"margins\"/>\n          <xs:attribute name=\"archive\"/>\n          <xs:attribute name=\"decorative\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"asymptote\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"label\"/>\n      <xs:attribute name=\"component\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"sageplot\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"label\"/>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"variant\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"2d\"/>\n            <xs:enumeration value=\"3d\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"aspect\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"mermaid\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"label\"/>\n      <xs:attribute name=\"component\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"WWLatexImage\">\n    <xs:sequence>\n      <xs:element name=\"latex-image\" type=\"xs:string\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ImageWW\">\n    <xs:sequence>\n      <xs:element name=\"image\">\n        <xs:complexType>\n          <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n            <xs:group ref=\"ImageShortDescriptionCode\"/>\n            <xs:group ref=\"ImageDescription\"/>\n            <xs:group ref=\"WWLatexImage\"/>\n          </xs:choice>\n          <xs:attribute name=\"pg-name\"/>\n          <xs:attribute name=\"width\"/>\n          <xs:attribute name=\"decorative\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:simpleType name=\"BorderThickness\">\n    <xs:restriction base=\"xs:token\">\n      <xs:enumeration value=\"none\"/>\n      <xs:enumeration value=\"minor\"/>\n      <xs:enumeration value=\"medium\"/>\n      <xs:enumeration value=\"major\"/>\n    </xs:restriction>\n  </xs:simpleType>\n  <xs:attributeGroup name=\"BorderTop\">\n    <xs:attribute name=\"top\" use=\"required\" type=\"BorderThickness\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"BorderBottom\">\n    <xs:attribute name=\"bottom\" use=\"required\" type=\"BorderThickness\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"BorderLeft\">\n    <xs:attribute name=\"left\" use=\"required\" type=\"BorderThickness\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"BorderRight\">\n    <xs:attribute name=\"right\" use=\"required\" type=\"BorderThickness\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"AlignmentHorizontal\">\n    <xs:attribute name=\"halign\" use=\"required\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"left\"/>\n          <xs:enumeration value=\"center\"/>\n          <xs:enumeration value=\"right\"/>\n          <xs:enumeration value=\"justify\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"AlignmentVertical\">\n    <xs:attribute name=\"valign\" use=\"required\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"top\"/>\n          <xs:enumeration value=\"middle\"/>\n          <xs:enumeration value=\"bottom\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n  </xs:attributeGroup>\n  <xs:element name=\"cell\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice>\n        <xs:group ref=\"TextLong\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"LongLine\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"Paragraph\"/>\n      </xs:choice>\n      <xs:attribute name=\"halign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"left\"/>\n            <xs:enumeration value=\"center\"/>\n            <xs:enumeration value=\"right\"/>\n            <xs:enumeration value=\"justify\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"bottom\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"right\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"colspan\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"row\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element maxOccurs=\"unbounded\" ref=\"cell\"/>\n      </xs:sequence>\n      <xs:attribute name=\"header\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n            <xs:enumeration value=\"vertical\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"halign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"left\"/>\n            <xs:enumeration value=\"center\"/>\n            <xs:enumeration value=\"right\"/>\n            <xs:enumeration value=\"justify\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"valign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"top\"/>\n            <xs:enumeration value=\"middle\"/>\n            <xs:enumeration value=\"bottom\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"bottom\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"left\" type=\"BorderThickness\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"col\">\n    <xs:complexType>\n      <xs:attribute name=\"halign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"left\"/>\n            <xs:enumeration value=\"center\"/>\n            <xs:enumeration value=\"right\"/>\n            <xs:enumeration value=\"justify\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"top\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"right\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"width\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"tabular\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"col\"/>\n        <xs:element maxOccurs=\"unbounded\" ref=\"row\"/>\n      </xs:sequence>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"width\"/>\n      <xs:attribute name=\"margins\"/>\n      <xs:attribute name=\"row-headers\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"halign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"left\"/>\n            <xs:enumeration value=\"center\"/>\n            <xs:enumeration value=\"right\"/>\n            <xs:enumeration value=\"justify\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"valign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"top\"/>\n            <xs:enumeration value=\"middle\"/>\n            <xs:enumeration value=\"bottom\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"top\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"bottom\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"left\" type=\"BorderThickness\"/>\n      <xs:attribute name=\"right\" type=\"BorderThickness\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"SageInput\">\n    <xs:sequence>\n      <xs:element name=\"input\" type=\"xs:string\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"sage\">\n    <xs:complexType>\n      <xs:sequence minOccurs=\"0\">\n        <xs:group ref=\"SageInput\"/>\n        <xs:element minOccurs=\"0\" ref=\"output\"/>\n      </xs:sequence>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"doctest\"/>\n      <xs:attribute name=\"tolerance\"/>\n      <xs:attribute name=\"auto-evaluate\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"no\"/>\n            <xs:enumeration value=\"yes\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"language\"/>\n      <xs:attribute name=\"type\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"score\">\n    <xs:complexType>\n      <xs:attribute name=\"musescoreuser\" use=\"required\"/>\n      <xs:attribute name=\"musescore\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"video\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"track\"/>\n      </xs:sequence>\n      <xs:attribute ref=\"xml:id\"/>\n      <xs:attribute name=\"label\"/>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"width\"/>\n      <xs:attribute name=\"margins\"/>\n      <xs:attribute name=\"aspect\"/>\n      <xs:attribute name=\"start\" type=\"xs:integer\"/>\n      <xs:attribute name=\"end\" type=\"xs:integer\"/>\n      <xs:attribute name=\"play-at\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"embed\"/>\n            <xs:enumeration value=\"popout\"/>\n            <xs:enumeration value=\"select\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"preview\"/>\n      <xs:attribute name=\"source\"/>\n      <xs:attribute name=\"href\"/>\n      <xs:attribute name=\"youtube\"/>\n      <xs:attribute name=\"youtubeplaylist\"/>\n      <xs:attribute name=\"vimeo\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"track\">\n    <xs:complexType>\n      <xs:attribute name=\"kind\" use=\"required\"/>\n      <xs:attribute name=\"listing\"/>\n      <xs:attribute ref=\"xml:lang\"/>\n      <xs:attribute name=\"source\" use=\"required\"/>\n      <xs:attribute name=\"default\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"AttributesSourceFile\">\n    <xs:attribute name=\"source\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"AttributesNetwork\">\n    <xs:attribute name=\"href\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"AttributesYouTube\">\n    <xs:attribute name=\"youtube\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"AttributesYouTubePlaylist\">\n    <xs:attribute name=\"youtubeplaylist\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"AttributesVimeo\">\n    <xs:attribute name=\"vimeo\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:group name=\"ExerciseOrderedList\">\n    <xs:sequence>\n      <xs:element name=\"ol\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"ExerciseListItem\"/>\n          <xs:attribute name=\"cols\"/>\n          <xs:attribute name=\"marker\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ExerciseListItem\">\n    <xs:sequence>\n      <xs:element name=\"li\">\n        <xs:complexType mixed=\"true\">\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTarget\"/>\n            <xs:choice>\n              <xs:group ref=\"TextParagraph\"/>\n              <xs:group maxOccurs=\"unbounded\" ref=\"BlockText\"/>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTarget\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ExerciseBody\">\n    <xs:sequence>\n      <xs:choice maxOccurs=\"unbounded\">\n        <xs:group ref=\"BlockStatement\"/>\n        <xs:group ref=\"ExerciseOrderedList\"/>\n      </xs:choice>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"StatementExercise\">\n    <xs:sequence>\n      <xs:element name=\"statement\">\n        <xs:complexType>\n          <xs:group ref=\"ExerciseBody\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Exercise\">\n    <xs:sequence>\n      <xs:element name=\"exercise\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice>\n              <xs:group ref=\"ExerciseBody\"/>\n              <xs:sequence>\n                <xs:group ref=\"StatementExercise\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Hint\"/>\n                <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"answer\"/>\n                <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Solution\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionStatement\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"Task\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionStatement\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n                <xs:group ref=\"WebWork\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n          <xs:attribute name=\"number\"/>\n          <xs:attribute name=\"workspace\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"exercisegroup\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group ref=\"IntroductionStatementNoCaption\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"Exercise\"/>\n        <xs:group minOccurs=\"0\" ref=\"ConclusionStatementNoCaption\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n      <xs:attribute name=\"cols\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"AlignmentPoem\">\n    <xs:attribute name=\"halign\" use=\"required\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"left\"/>\n          <xs:enumeration value=\"center\"/>\n          <xs:enumeration value=\"right\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n  </xs:attributeGroup>\n  <xs:group name=\"PoemAuthor\">\n    <xs:sequence>\n      <xs:element name=\"author\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextShort\"/>\n          <xs:attribute name=\"halign\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"left\"/>\n                <xs:enumeration value=\"center\"/>\n                <xs:enumeration value=\"right\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"poem\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group minOccurs=\"0\" ref=\"PoemAuthor\"/>\n        <xs:choice>\n          <xs:group maxOccurs=\"unbounded\" ref=\"PoemLine\"/>\n          <xs:element maxOccurs=\"unbounded\" ref=\"stanza\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n      <xs:attribute name=\"halign\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"left\"/>\n            <xs:enumeration value=\"center\"/>\n            <xs:enumeration value=\"right\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"stanza\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTitleOptional\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"PoemLine\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"PoemLine\">\n    <xs:sequence>\n      <xs:element name=\"line\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextShort\"/>\n          <xs:attribute name=\"indent\" type=\"xs:integer\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:complexType name=\"TextBib\" mixed=\"true\">\n    <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n      <xs:group ref=\"Character\"/>\n      <xs:element ref=\"m\"/>\n    </xs:choice>\n  </xs:complexType>\n  <xs:element name=\"biblio\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTarget\"/>\n        <xs:choice>\n          <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n            <xs:group ref=\"TextLong\"/>\n            <xs:element ref=\"ibid\"/>\n            <xs:group ref=\"BibTitle\"/>\n            <xs:element ref=\"year\"/>\n            <xs:element ref=\"journal\"/>\n            <xs:element ref=\"number\"/>\n            <xs:element ref=\"volume\"/>\n            <xs:group ref=\"BibNote\"/>\n          </xs:choice>\n          <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n            <xs:group ref=\"BibTitle\"/>\n            <xs:group ref=\"BibAuthor\"/>\n            <xs:group ref=\"BibEditor\"/>\n            <xs:element ref=\"year\"/>\n            <xs:element ref=\"journal\"/>\n            <xs:element ref=\"number\"/>\n            <xs:element ref=\"volume\"/>\n            <xs:element ref=\"series\"/>\n            <xs:element ref=\"publisher\"/>\n            <xs:element ref=\"pages\"/>\n            <xs:group ref=\"BibNote\"/>\n          </xs:choice>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTarget\"/>\n      <xs:attribute name=\"type\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"raw\"/>\n            <xs:enumeration value=\"bibtex\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"ibid\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"year\" type=\"xs:string\"/>\n  <xs:element name=\"journal\" type=\"TextBib\"/>\n  <xs:element name=\"number\" type=\"xs:string\"/>\n  <xs:element name=\"volume\" type=\"xs:string\"/>\n  <xs:group name=\"BibTitle\">\n    <xs:sequence>\n      <xs:element name=\"title\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextLong\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BibNote\">\n    <xs:sequence>\n      <xs:element name=\"note\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"Paragraph\"/>\n          <xs:attribute ref=\"xml:id\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BibAuthor\">\n    <xs:sequence>\n      <xs:element name=\"author\" type=\"xs:string\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"BibEditor\">\n    <xs:sequence>\n      <xs:element name=\"editor\" type=\"xs:string\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"series\" type=\"xs:string\"/>\n  <xs:element name=\"publisher\" type=\"xs:string\"/>\n  <xs:element name=\"pages\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"start\"/>\n      <xs:attribute name=\"end\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"gi\">\n    <xs:complexType>\n      <xs:complexContent>\n        <xs:extension base=\"MetaDataTitle\">\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementNoCaption\"/>\n        </xs:extension>\n      </xs:complexContent>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"contributor\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTarget\"/>\n        <xs:element ref=\"personname\"/>\n        <xs:choice minOccurs=\"0\">\n          <xs:sequence>\n            <xs:element minOccurs=\"0\" ref=\"department\"/>\n            <xs:element minOccurs=\"0\" ref=\"institution\"/>\n            <xs:element minOccurs=\"0\" ref=\"location\"/>\n          </xs:sequence>\n          <xs:element maxOccurs=\"unbounded\" ref=\"affiliation\"/>\n        </xs:choice>\n        <xs:element minOccurs=\"0\" ref=\"email\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTarget\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"contributors\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element maxOccurs=\"unbounded\" ref=\"contributor\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"AuthorByline\">\n    <xs:sequence>\n      <xs:element name=\"author\">\n        <xs:complexType mixed=\"true\">\n          <xs:choice>\n            <xs:group ref=\"TextSimple\"/>\n            <xs:element ref=\"xref\"/>\n          </xs:choice>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"WebWork\">\n    <xs:choice>\n      <xs:group ref=\"WebWorkAuthored\"/>\n      <xs:group ref=\"WebWorkSource\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"WebWorkSource\">\n    <xs:sequence>\n      <xs:element name=\"webwork\">\n        <xs:complexType>\n          <xs:attribute name=\"source\"/>\n          <xs:attribute name=\"seed\" type=\"xs:integer\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"WWDescription\">\n    <xs:sequence>\n      <xs:element name=\"description\">\n        <xs:complexType mixed=\"true\">\n          <xs:choice>\n            <xs:group ref=\"TextSimple\"/>\n            <xs:group maxOccurs=\"unbounded\" ref=\"SimpleLine\"/>\n          </xs:choice>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"WebWorkAuthored\">\n    <xs:sequence>\n      <xs:element name=\"webwork\">\n        <xs:complexType mixed=\"true\">\n          <xs:sequence minOccurs=\"0\">\n            <xs:group minOccurs=\"0\" ref=\"WWDescription\"/>\n            <xs:element minOccurs=\"0\" ref=\"pg-macros\"/>\n            <xs:element minOccurs=\"0\" ref=\"pg-code\"/>\n            <xs:choice>\n              <xs:sequence>\n                <xs:group ref=\"StatementExerciseWW\"/>\n                <xs:group minOccurs=\"0\" ref=\"HintWW\"/>\n                <xs:group minOccurs=\"0\" ref=\"SolutionWW\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"TaskWW\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attribute ref=\"xml:id\"/>\n          <xs:attribute name=\"label\"/>\n          <xs:attribute name=\"component\"/>\n          <xs:attribute name=\"seed\" type=\"xs:integer\"/>\n          <xs:attribute name=\"copy\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"pg-code\" type=\"xs:string\"/>\n  <xs:group name=\"BlockStatementWW\">\n    <xs:choice>\n      <xs:group ref=\"Paragraph\"/>\n      <xs:element ref=\"pre\"/>\n      <xs:element ref=\"tabular\"/>\n      <xs:group ref=\"ImageWW\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:group name=\"StatementExerciseWW\">\n    <xs:sequence>\n      <xs:element name=\"statement\">\n        <xs:complexType>\n          <xs:choice maxOccurs=\"unbounded\">\n            <xs:group ref=\"BlockStatementWW\"/>\n            <xs:element ref=\"instruction\"/>\n          </xs:choice>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"TaskWW\">\n    <xs:sequence>\n      <xs:element name=\"task\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:group ref=\"MetaDataTitleOptional\"/>\n            <xs:choice>\n              <xs:sequence>\n                <xs:group ref=\"StatementExerciseWW\"/>\n                <xs:group minOccurs=\"0\" ref=\"HintWW\"/>\n                <xs:group minOccurs=\"0\" ref=\"SolutionWW\"/>\n              </xs:sequence>\n              <xs:sequence>\n                <xs:group minOccurs=\"0\" ref=\"IntroductionText\"/>\n                <xs:group maxOccurs=\"unbounded\" ref=\"TaskWW\"/>\n                <xs:group minOccurs=\"0\" ref=\"ConclusionText\"/>\n              </xs:sequence>\n            </xs:choice>\n          </xs:sequence>\n          <xs:attributeGroup ref=\"MetaDataTitleOptional\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"pg-macros\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element maxOccurs=\"unbounded\" ref=\"macro-file\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"macro-file\" type=\"xs:string\"/>\n  <xs:element name=\"var\">\n    <xs:annotation>\n      <xs:documentation>The WeBWorK \"var\" element appears in the RELAX-NG schema as a child of many elements, but almost always as a descendant of a \"p\" element or a \"cell\" element.  As an element that is only relevant for a WeBWorK problem, occurrences of \"var\" must be within a \"webwork\" element.  A Schematron rule will check on these two situations.</xs:documentation>\n    </xs:annotation>\n    <xs:complexType>\n      <xs:attribute name=\"form\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"popup\"/>\n            <xs:enumeration value=\"buttons\"/>\n            <xs:enumeration value=\"checkboxes\"/>\n            <xs:enumeration value=\"none\"/>\n            <xs:enumeration value=\"essay\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"name\"/>\n      <xs:attribute name=\"evaluator\"/>\n      <xs:attribute name=\"width\"/>\n      <xs:attribute name=\"category\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"angle\"/>\n            <xs:enumeration value=\"decimal\"/>\n            <xs:enumeration value=\"exponent\"/>\n            <xs:enumeration value=\"formula\"/>\n            <xs:enumeration value=\"fraction\"/>\n            <xs:enumeration value=\"inequality\"/>\n            <xs:enumeration value=\"integer\"/>\n            <xs:enumeration value=\"interval\"/>\n            <xs:enumeration value=\"logarithm\"/>\n            <xs:enumeration value=\"limit\"/>\n            <xs:enumeration value=\"number\"/>\n            <xs:enumeration value=\"point\"/>\n            <xs:enumeration value=\"syntax\"/>\n            <xs:enumeration value=\"quantity\"/>\n            <xs:enumeration value=\"vector\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"instruction\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"HintWW\">\n    <xs:sequence>\n      <xs:element name=\"hint\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementWW\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"SolutionWW\">\n    <xs:sequence>\n      <xs:element name=\"solution\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"BlockStatementWW\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"fragment\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:group ref=\"Title\"/>\n        <xs:choice maxOccurs=\"unbounded\">\n          <xs:element ref=\"code\"/>\n          <xs:element ref=\"fragref\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attribute ref=\"xml:id\"/>\n      <xs:attribute name=\"filename\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"fragref\">\n    <xs:complexType>\n      <xs:attribute name=\"ref\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"attribution\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice>\n        <xs:group ref=\"TextLong\"/>\n        <xs:group maxOccurs=\"unbounded\" ref=\"LongLine\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"UniqueID\">\n    <xs:attribute ref=\"xml:id\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"LabelID\">\n    <xs:attribute name=\"label\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"Component\">\n    <xs:attribute name=\"component\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:group name=\"Title\">\n    <xs:sequence>\n      <xs:element name=\"title\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextLong\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"LinedTitle\">\n    <xs:sequence>\n      <xs:element name=\"title\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"LongLine\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Subtitle\">\n    <xs:sequence>\n      <xs:element name=\"subtitle\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextLong\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"LinedSubtitle\">\n    <xs:sequence>\n      <xs:element name=\"subtitle\">\n        <xs:complexType>\n          <xs:group maxOccurs=\"unbounded\" ref=\"LongLine\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"shorttitle\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"plaintitle\" type=\"xs:string\"/>\n  <xs:element name=\"creator\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"XMLBase\">\n    <xs:attribute ref=\"xml:base\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:attributeGroup name=\"XMLLang\">\n    <xs:attribute ref=\"xml:lang\" use=\"required\"/>\n  </xs:attributeGroup>\n  <xs:group name=\"MetaDataTarget\">\n    <xs:sequence>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:attributeGroup name=\"MetaDataTarget\">\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n  </xs:attributeGroup>\n  <xs:complexType name=\"MetaDataTitle\">\n    <xs:sequence>\n      <xs:group ref=\"Title\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:complexType name=\"MetaDataAltTitle\">\n    <xs:sequence>\n      <xs:group ref=\"Title\"/>\n      <xs:element minOccurs=\"0\" ref=\"shorttitle\"/>\n      <xs:element minOccurs=\"0\" ref=\"plaintitle\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:complexType name=\"MetaDataLinedTitle\">\n    <xs:sequence>\n      <xs:choice>\n        <xs:group ref=\"Title\"/>\n        <xs:group ref=\"LinedTitle\"/>\n      </xs:choice>\n      <xs:element minOccurs=\"0\" ref=\"shorttitle\"/>\n      <xs:element minOccurs=\"0\" ref=\"plaintitle\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:group name=\"MetaDataSubtitle\">\n    <xs:sequence>\n      <xs:group ref=\"Title\"/>\n      <xs:group minOccurs=\"0\" ref=\"Subtitle\"/>\n      <xs:element minOccurs=\"0\" ref=\"shorttitle\"/>\n      <xs:element minOccurs=\"0\" ref=\"plaintitle\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:attributeGroup name=\"MetaDataSubtitle\">\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:attributeGroup>\n  <xs:complexType name=\"MetaDataLinedSubtitle\">\n    <xs:sequence>\n      <xs:choice>\n        <xs:group ref=\"Title\"/>\n        <xs:group ref=\"LinedTitle\"/>\n      </xs:choice>\n      <xs:choice minOccurs=\"0\">\n        <xs:group ref=\"Subtitle\"/>\n        <xs:group ref=\"LinedSubtitle\"/>\n      </xs:choice>\n      <xs:element minOccurs=\"0\" ref=\"shorttitle\"/>\n      <xs:element minOccurs=\"0\" ref=\"plaintitle\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:group name=\"MetaDataTitleOptional\">\n    <xs:sequence>\n      <xs:group minOccurs=\"0\" ref=\"Title\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:attributeGroup name=\"MetaDataTitleOptional\">\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:attributeGroup>\n  <xs:complexType name=\"MetaDataAltTitleOptional\">\n    <xs:sequence>\n      <xs:sequence minOccurs=\"0\">\n        <xs:group ref=\"Title\"/>\n        <xs:element minOccurs=\"0\" ref=\"shorttitle\"/>\n        <xs:element minOccurs=\"0\" ref=\"plaintitle\"/>\n      </xs:sequence>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:complexType name=\"MetaDataTitleCreatorOptional\">\n    <xs:sequence>\n      <xs:group minOccurs=\"0\" ref=\"Title\"/>\n      <xs:element minOccurs=\"0\" ref=\"creator\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:complexType name=\"MetaDataCaption\">\n    <xs:sequence>\n      <xs:group minOccurs=\"0\" ref=\"Title\"/>\n      <xs:element ref=\"caption\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n    </xs:sequence>\n    <xs:attribute ref=\"xml:id\"/>\n    <xs:attribute name=\"label\"/>\n    <xs:attribute name=\"component\"/>\n    <xs:attribute ref=\"xml:base\"/>\n    <xs:attribute ref=\"xml:lang\"/>\n  </xs:complexType>\n  <xs:group name=\"TextParagraph\">\n    <xs:sequence>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:group ref=\"Character\"/>\n        <xs:group ref=\"Generator\"/>\n        <xs:group ref=\"Verbatim\"/>\n        <xs:group ref=\"Group\"/>\n        <xs:element ref=\"var\"/>\n        <xs:element ref=\"m\"/>\n        <xs:group ref=\"Music\"/>\n        <xs:group ref=\"Reference\"/>\n        <xs:element ref=\"custom\"/>\n        <xs:element ref=\"cd\"/>\n        <xs:element ref=\"md\"/>\n        <xs:group ref=\"List\"/>\n        <xs:element ref=\"fn\"/>\n        <xs:element ref=\"notation\"/>\n        <xs:element ref=\"idx\"/>\n      </xs:choice>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"Paragraph\">\n    <xs:sequence>\n      <xs:element name=\"p\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextParagraph\"/>\n          <xs:attribute ref=\"xml:id\"/>\n          <xs:attribute name=\"label\"/>\n          <xs:attribute name=\"component\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"ParagraphLined\">\n    <xs:sequence>\n      <xs:element name=\"p\">\n        <xs:complexType>\n          <xs:sequence>\n            <xs:element maxOccurs=\"unbounded\" name=\"line\">\n              <xs:complexType mixed=\"true\">\n                <xs:group ref=\"TextShort\"/>\n              </xs:complexType>\n            </xs:element>\n          </xs:sequence>\n          <xs:attribute ref=\"xml:id\"/>\n          <xs:attribute name=\"label\"/>\n          <xs:attribute name=\"component\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"TextSimple\">\n    <xs:sequence>\n      <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"Character\"/>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"TextShort\">\n    <xs:sequence>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:group ref=\"Character\"/>\n        <xs:group ref=\"Generator\"/>\n        <xs:group ref=\"Verbatim\"/>\n        <xs:group ref=\"Group\"/>\n        <xs:element ref=\"m\"/>\n        <xs:group ref=\"Music\"/>\n      </xs:choice>\n    </xs:sequence>\n  </xs:group>\n  <xs:group name=\"TextLong\">\n    <xs:sequence>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:group ref=\"Character\"/>\n        <xs:group ref=\"Generator\"/>\n        <xs:group ref=\"Verbatim\"/>\n        <xs:group ref=\"Group\"/>\n        <xs:element ref=\"m\"/>\n        <xs:group ref=\"Music\"/>\n        <xs:group ref=\"Reference\"/>\n        <xs:element ref=\"custom\"/>\n        <xs:element ref=\"var\"/>\n      </xs:choice>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"fn\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTarget\"/>\n        <xs:group ref=\"TextLong\"/>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTarget\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"h\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n      <xs:attribute name=\"sortby\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"idx\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTarget\"/>\n        <xs:choice>\n          <xs:group ref=\"TextShort\"/>\n          <xs:sequence>\n            <xs:element ref=\"h\"/>\n            <xs:element minOccurs=\"0\" ref=\"h\"/>\n            <xs:element minOccurs=\"0\" ref=\"h\"/>\n            <xs:choice minOccurs=\"0\">\n              <xs:element ref=\"see\"/>\n              <xs:element ref=\"seealso\"/>\n            </xs:choice>\n          </xs:sequence>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTarget\"/>\n      <xs:attribute name=\"sortby\"/>\n      <xs:attribute name=\"start\"/>\n      <xs:attribute name=\"finish\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"see\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"seealso\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"index-list\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:simpleType name=\"XrefTextStyle\">\n    <xs:restriction base=\"xs:token\">\n      <xs:enumeration value=\"local\"/>\n      <xs:enumeration value=\"global\"/>\n      <xs:enumeration value=\"hybrid\"/>\n      <xs:enumeration value=\"type-local\"/>\n      <xs:enumeration value=\"type-global\"/>\n      <xs:enumeration value=\"type-hybrid\"/>\n      <xs:enumeration value=\"phrase-global\"/>\n      <xs:enumeration value=\"phrase-hybrid\"/>\n      <xs:enumeration value=\"type-local-title\"/>\n      <xs:enumeration value=\"type-global-title\"/>\n      <xs:enumeration value=\"title\"/>\n      <xs:enumeration value=\"custom\"/>\n    </xs:restriction>\n  </xs:simpleType>\n  <xs:group name=\"Reference\">\n    <xs:choice>\n      <xs:group ref=\"Url\"/>\n      <xs:element ref=\"xref\"/>\n      <xs:element ref=\"dataurl\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"custom\">\n    <xs:complexType>\n      <xs:attribute name=\"ref\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"dataurl\">\n    <xs:complexType mixed=\"true\">\n      <xs:group minOccurs=\"0\" ref=\"TextShort\"/>\n      <xs:attribute name=\"href\"/>\n      <xs:attribute name=\"source\"/>\n      <xs:attribute name=\"visual\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Url\">\n    <xs:sequence>\n      <xs:element name=\"url\">\n        <xs:complexType mixed=\"true\">\n          <xs:group minOccurs=\"0\" ref=\"TextShort\"/>\n          <xs:attribute name=\"href\" use=\"required\"/>\n          <xs:attribute name=\"visual\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"xref\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextShort\"/>\n      <xs:attribute name=\"ref\"/>\n      <xs:attribute name=\"first\"/>\n      <xs:attribute name=\"last\"/>\n      <xs:attribute name=\"provisional\"/>\n      <xs:attribute name=\"text\" type=\"XrefTextStyle\"/>\n      <xs:attribute name=\"detail\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"NotationDescription\">\n    <xs:sequence>\n      <xs:element name=\"description\">\n        <xs:complexType mixed=\"true\">\n          <xs:group ref=\"TextShort\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"notation\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element ref=\"usage\"/>\n        <xs:group ref=\"NotationDescription\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"usage\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element ref=\"m\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"FillInMath\">\n    <xs:sequence>\n      <xs:element name=\"fillin\">\n        <xs:complexType>\n          <xs:attribute name=\"fill\"/>\n          <xs:attribute name=\"characters\" type=\"xs:integer\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"m\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:group ref=\"FillInMath\"/>\n        <xs:element ref=\"var\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"mrow\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:group ref=\"MetaDataTarget\"/>\n        <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n          <xs:element ref=\"xref\"/>\n          <xs:group ref=\"FillInMath\"/>\n          <xs:element ref=\"var\"/>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attributeGroup ref=\"MetaDataTarget\"/>\n      <xs:attribute name=\"number\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"tag\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"star\"/>\n            <xs:enumeration value=\"dstar\"/>\n            <xs:enumeration value=\"tstar\"/>\n            <xs:enumeration value=\"dagger\"/>\n            <xs:enumeration value=\"ddagger\"/>\n            <xs:enumeration value=\"tdagger\"/>\n            <xs:enumeration value=\"daggerdbl\"/>\n            <xs:enumeration value=\"ddaggerdbl\"/>\n            <xs:enumeration value=\"tdaggerdbl\"/>\n            <xs:enumeration value=\"hash\"/>\n            <xs:enumeration value=\"dhash\"/>\n            <xs:enumeration value=\"thash\"/>\n            <xs:enumeration value=\"maltese\"/>\n            <xs:enumeration value=\"dmaltese\"/>\n            <xs:enumeration value=\"tmaltese\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"break\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"intertext\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"md\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"idx\"/>\n        <xs:choice>\n          <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n            <xs:element ref=\"xref\"/>\n            <xs:group ref=\"FillInMath\"/>\n            <xs:element ref=\"var\"/>\n          </xs:choice>\n          <xs:sequence>\n            <xs:element ref=\"mrow\"/>\n            <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n              <xs:element ref=\"mrow\"/>\n              <xs:element ref=\"intertext\"/>\n            </xs:choice>\n          </xs:sequence>\n        </xs:choice>\n      </xs:sequence>\n      <xs:attribute name=\"component\"/>\n      <xs:attribute name=\"number\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute ref=\"xml:id\"/>\n      <xs:attribute name=\"break\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"alignment\"/>\n      <xs:attribute name=\"alignat-columns\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Verbatim\">\n    <xs:choice>\n      <xs:element ref=\"c\"/>\n      <xs:element ref=\"email\"/>\n      <xs:element ref=\"pf\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"c\" type=\"xs:string\"/>\n  <xs:element name=\"pf\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"language\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Group\">\n    <xs:choice>\n      <xs:choice>\n        <xs:element ref=\"abbr\"/>\n        <xs:element ref=\"acro\"/>\n        <xs:element ref=\"init\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"q\"/>\n        <xs:element ref=\"sq\"/>\n        <xs:element ref=\"angles\"/>\n        <xs:element ref=\"dblbrackets\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"em\"/>\n        <xs:element ref=\"term\"/>\n        <xs:element ref=\"alert\"/>\n        <xs:element ref=\"pubtitle\"/>\n        <xs:element ref=\"articletitle\"/>\n        <xs:element ref=\"foreign\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"delete\"/>\n        <xs:element ref=\"insert\"/>\n        <xs:element ref=\"stale\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"tag\"/>\n        <xs:element ref=\"tage\"/>\n        <xs:element ref=\"attr\"/>\n      </xs:choice>\n      <xs:element ref=\"taxon\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"abbr\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextSimple\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"acro\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextSimple\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"init\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextSimple\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"q\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"sq\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"angles\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"dblbrackets\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"em\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"term\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"alert\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"pubtitle\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"articletitle\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"foreign\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n      <xs:attribute ref=\"xml:lang\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"delete\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"insert\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"stale\">\n    <xs:complexType mixed=\"true\">\n      <xs:group ref=\"TextLong\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"tag\" type=\"xs:string\"/>\n  <xs:element name=\"tage\" type=\"xs:string\"/>\n  <xs:element name=\"attr\" type=\"xs:string\"/>\n  <xs:element name=\"taxon\">\n    <xs:complexType mixed=\"true\">\n      <xs:sequence minOccurs=\"0\">\n        <xs:element minOccurs=\"0\" ref=\"genus\"/>\n        <xs:element minOccurs=\"0\" ref=\"species\"/>\n      </xs:sequence>\n      <xs:attribute name=\"ncbi\" type=\"xs:integer\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"genus\" type=\"xs:string\"/>\n  <xs:element name=\"species\" type=\"xs:string\"/>\n  <xs:group name=\"Generator\">\n    <xs:choice>\n      <xs:choice>\n        <xs:element ref=\"today\"/>\n        <xs:element ref=\"timeofday\"/>\n        <xs:element ref=\"tex\"/>\n        <xs:element ref=\"latex\"/>\n        <xs:element ref=\"xetex\"/>\n        <xs:element ref=\"xelatex\"/>\n        <xs:element name=\"pretext\">\n          <xs:complexType/>\n        </xs:element>\n        <xs:element ref=\"prefigure\"/>\n        <xs:element name=\"webwork\">\n          <xs:complexType/>\n        </xs:element>\n        <xs:element ref=\"ad\"/>\n        <xs:element ref=\"am\"/>\n        <xs:element ref=\"bc\"/>\n        <xs:element ref=\"ca\"/>\n        <xs:element ref=\"eg\"/>\n        <xs:element ref=\"etal\"/>\n        <xs:element ref=\"etc\"/>\n        <xs:element ref=\"ie\"/>\n        <xs:element ref=\"nb\"/>\n        <xs:element ref=\"pm\"/>\n        <xs:element ref=\"ps\"/>\n        <xs:element ref=\"vs\"/>\n        <xs:element ref=\"viz\"/>\n      </xs:choice>\n      <xs:group ref=\"FillInText\"/>\n      <xs:element ref=\"quantity\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"today\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"timeofday\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"tex\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"latex\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"xetex\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"xelatex\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"prefigure\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ad\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"am\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"bc\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ca\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"eg\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"etal\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"etc\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ie\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"nb\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"pm\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ps\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"vs\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"viz\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"quantity\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" ref=\"mag\"/>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"unit\"/>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"per\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"mag\" type=\"xs:string\"/>\n  <xs:element name=\"unit\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"UnitSpecification\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"per\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"UnitSpecification\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"FillInText\">\n    <xs:sequence>\n      <xs:element name=\"fillin\">\n        <xs:complexType>\n          <xs:attribute name=\"characters\" type=\"xs:integer\"/>\n          <xs:attribute name=\"rows\" type=\"xs:integer\"/>\n          <xs:attribute name=\"cols\" type=\"xs:integer\"/>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:attributeGroup name=\"UnitSpecification\">\n    <xs:attribute name=\"prefix\"/>\n    <xs:attribute name=\"base\" use=\"required\"/>\n    <xs:attribute name=\"exp\" type=\"xs:integer\"/>\n  </xs:attributeGroup>\n  <xs:group name=\"Character\">\n    <xs:choice>\n      <xs:choice>\n        <xs:element ref=\"nbsp\"/>\n        <xs:element ref=\"ndash\"/>\n        <xs:element ref=\"mdash\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"lsq\"/>\n        <xs:element ref=\"rsq\"/>\n        <xs:element ref=\"rq\"/>\n        <xs:element ref=\"lq\"/>\n        <xs:element ref=\"ldblbracket\"/>\n        <xs:element ref=\"rdblbracket\"/>\n        <xs:element ref=\"langle\"/>\n        <xs:element ref=\"rangle\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"minus\"/>\n        <xs:element ref=\"times\"/>\n        <xs:element ref=\"solidus\"/>\n        <xs:element ref=\"obelus\"/>\n        <xs:element ref=\"plusminus\"/>\n        <xs:element ref=\"degree\"/>\n        <xs:element ref=\"prime\"/>\n        <xs:element ref=\"dblprime\"/>\n      </xs:choice>\n      <xs:choice>\n        <xs:element ref=\"ellipsis\"/>\n        <xs:element ref=\"midpoint\"/>\n        <xs:element ref=\"swungdash\"/>\n        <xs:element ref=\"permille\"/>\n        <xs:element ref=\"pilcrow\"/>\n        <xs:element ref=\"section-mark\"/>\n        <xs:element ref=\"copyleft\"/>\n        <xs:group ref=\"CopyrightCharacter\"/>\n        <xs:element ref=\"registered\"/>\n        <xs:element ref=\"trademark\"/>\n        <xs:element ref=\"phonomark\"/>\n        <xs:element ref=\"servicemark\"/>\n      </xs:choice>\n      <xs:element ref=\"icon\"/>\n      <xs:element ref=\"kbd\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"nbsp\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ndash\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"mdash\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"lsq\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"rsq\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"rq\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"lq\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ldblbracket\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"rdblbracket\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"langle\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"rangle\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"minus\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"times\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"solidus\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"obelus\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"plusminus\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"degree\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"prime\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"dblprime\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"ellipsis\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"midpoint\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"swungdash\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"permille\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"pilcrow\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"section-mark\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"copyleft\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"registered\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"trademark\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"phonomark\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"servicemark\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"icon\">\n    <xs:complexType>\n      <xs:attribute name=\"name\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"kbd\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"name\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"CopyrightCharacter\">\n    <xs:sequence>\n      <xs:element name=\"copyright\">\n        <xs:complexType/>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"flat\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"sharp\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:group name=\"Music\">\n    <xs:choice>\n      <xs:element ref=\"doublesharp\"/>\n      <xs:element ref=\"sharp\"/>\n      <xs:element ref=\"natural\"/>\n      <xs:element ref=\"flat\"/>\n      <xs:element ref=\"doubleflat\"/>\n      <xs:element ref=\"scaledeg\"/>\n      <xs:element ref=\"timesignature\"/>\n      <xs:element ref=\"n\"/>\n      <xs:element ref=\"chord\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"doublesharp\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"natural\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"doubleflat\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"scaledeg\">\n    <xs:simpleType>\n      <xs:restriction base=\"xs:token\">\n        <xs:enumeration value=\"0\"/>\n        <xs:enumeration value=\"1\"/>\n        <xs:enumeration value=\"2\"/>\n        <xs:enumeration value=\"3\"/>\n        <xs:enumeration value=\"4\"/>\n        <xs:enumeration value=\"5\"/>\n        <xs:enumeration value=\"6\"/>\n        <xs:enumeration value=\"7\"/>\n        <xs:enumeration value=\"8\"/>\n        <xs:enumeration value=\"9\"/>\n        <xs:enumeration value=\"10\"/>\n      </xs:restriction>\n    </xs:simpleType>\n  </xs:element>\n  <xs:element name=\"timesignature\">\n    <xs:complexType>\n      <xs:attribute name=\"top\" use=\"required\"/>\n      <xs:attribute name=\"bottom\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"n\">\n    <xs:complexType>\n      <xs:attribute name=\"pc\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"A\"/>\n            <xs:enumeration value=\"B\"/>\n            <xs:enumeration value=\"C\"/>\n            <xs:enumeration value=\"D\"/>\n            <xs:enumeration value=\"E\"/>\n            <xs:enumeration value=\"F\"/>\n            <xs:enumeration value=\"G\"/>\n            <xs:enumeration value=\"a\"/>\n            <xs:enumeration value=\"b\"/>\n            <xs:enumeration value=\"c\"/>\n            <xs:enumeration value=\"d\"/>\n            <xs:enumeration value=\"e\"/>\n            <xs:enumeration value=\"f\"/>\n            <xs:enumeration value=\"g\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n            <xs:enumeration value=\"7\"/>\n            <xs:enumeration value=\"8\"/>\n            <xs:enumeration value=\"9\"/>\n            <xs:enumeration value=\"10\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"acc\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"doublesharp\"/>\n            <xs:enumeration value=\"sharp\"/>\n            <xs:enumeration value=\"flat\"/>\n            <xs:enumeration value=\"doubleflat\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"octave\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"chord\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"alteration\"/>\n      </xs:sequence>\n      <xs:attribute name=\"root\"/>\n      <xs:attribute name=\"mode\"/>\n      <xs:attribute name=\"bps\"/>\n      <xs:attribute name=\"bass\"/>\n      <xs:attribute name=\"suspended\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"parentheses\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"alteration\">\n    <xs:complexType mixed=\"true\">\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:group ref=\"TextSimple\"/>\n        <xs:element ref=\"sharp\"/>\n        <xs:element ref=\"flat\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"list-of\">\n    <xs:complexType>\n      <xs:attribute name=\"elements\" use=\"required\"/>\n      <xs:attribute name=\"scope\"/>\n      <xs:attribute name=\"divisions\"/>\n      <xs:attribute name=\"empty\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"notation-list\">\n    <xs:complexType/>\n  </xs:element>\n  <xs:element name=\"docinfo\">\n    <xs:complexType>\n      <xs:group maxOccurs=\"unbounded\" ref=\"Configuration\"/>\n      <xs:attribute ref=\"xml:base\"/>\n      <xs:attribute ref=\"xml:lang\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Configuration\">\n    <xs:choice>\n      <xs:element ref=\"brandlogo\"/>\n      <xs:element minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"math-package\"/>\n      <xs:element ref=\"latex-image-preamble\"/>\n      <xs:element ref=\"asymptote-preamble\"/>\n      <xs:element ref=\"macros\"/>\n      <xs:element ref=\"cross-references\"/>\n      <xs:element ref=\"initialism\"/>\n      <xs:element ref=\"feedback\"/>\n      <xs:element ref=\"rename\"/>\n      <xs:element ref=\"images\"/>\n      <xs:element ref=\"author-biographies\"/>\n      <xs:element ref=\"numbering\"/>\n      <xs:element ref=\"programs\"/>\n      <xs:element ref=\"parsons\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"brandlogo\">\n    <xs:complexType>\n      <xs:attribute name=\"url\"/>\n      <xs:attribute name=\"source\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"math-package\">\n    <xs:complexType>\n      <xs:attribute name=\"latex-name\" use=\"required\"/>\n      <xs:attribute name=\"mathjax-name\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"latex-image-preamble\" type=\"xs:string\"/>\n  <xs:element name=\"asymptote-preamble\" type=\"xs:string\"/>\n  <xs:element name=\"macros\" type=\"xs:string\"/>\n  <xs:element name=\"cross-references\">\n    <xs:complexType>\n      <xs:attribute name=\"text\" use=\"required\" type=\"XrefTextStyle\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"initialism\" type=\"xs:string\"/>\n  <xs:element name=\"feedback\" type=\"FeedbackUrl\"/>\n  <xs:element name=\"rename\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"element\" use=\"required\"/>\n      <xs:attribute ref=\"xml:lang\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"images\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element maxOccurs=\"unbounded\" ref=\"archive\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"archive\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"from\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"author-biographies\">\n    <xs:complexType>\n      <xs:attribute name=\"length\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"short\"/>\n            <xs:enumeration value=\"long\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"numbering\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" ref=\"division\"/>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"division\">\n    <xs:complexType>\n      <xs:attribute name=\"part\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"decorative\"/>\n            <xs:enumeration value=\"structural\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"programs\">\n    <xs:complexType>\n      <xs:attribute name=\"language\"/>\n      <xs:attribute name=\"compiler-args\"/>\n      <xs:attribute name=\"download\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"linenumbers\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"linker-args\"/>\n      <xs:attribute name=\"interpreter-args\"/>\n      <xs:attribute name=\"timeout\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"parsons\">\n    <xs:complexType>\n      <xs:attribute name=\"language\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:complexType name=\"FeedbackUrl\">\n    <xs:sequence>\n      <xs:element name=\"url\" type=\"xs:string\"/>\n    </xs:sequence>\n  </xs:complexType>\n</xs:schema>\n"
  },
  {
    "path": "schema/publication-schema.rnc",
    "content": "\n            grammar {\n            \n            start = Publication\n            \n            Publication =\n                element publication {\n                    Common? &\n                    Source? &\n                    Numbering? &\n                    Latex? &\n                    Html? &\n                    Revealjs? &\n                    Epub? &\n                    Webwork?\n                }\n            \n            Common =\n                element common {\n                    element chunking {\n                        attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                    }? &\n                    element tableofcontents {\n                        attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                    }? &\n                    element exercise-inline {\n                        ExerciseAttributes\n                    }? &\n                    element exercise-divisional {\n                        ExerciseAttributes\n                    }? &\n                    element exercise-worksheet {\n                        ExerciseAttributes\n                    }? &\n                    element exercise-reading {\n                        ExerciseAttributes\n                    }? &\n                    element exercise-project {\n                        ExerciseAttributes\n                    }? &\n                    element fillin {\n                        attribute textstyle { \"underline\" | \"box\" | \"shade\" }?,\n                        attribute mathstyle { \"underline\" | \"box\" | \"shade\" }?\n                    }? &\n                    element watermark {\n                        attribute scale { xsd:decimal },\n                        text\n                    }? &\n                    element mermaid {\n                        attribute theme { text }\n                    }? &\n                    element qrcode {\n                        attribute image { text }\n                    }? &\n                    element journal {\n                        attribute name {text}\n                    }? &\n                    element worksheet {\n                        attribute margin {text}?,\n                        attribute top {text}?,\n                        attribute right {text}?,\n                        attribute bottom {text}?,\n                        attribute left {text}?,\n                        HeaderFooterElements?\n                    }?\n                }\n\n            ExerciseAttributes =\n                attribute statement { \"yes\" | \"no\" }?,\n                attribute hint { \"yes\" | \"no\" }?,\n                attribute answer { \"yes\" | \"no\" }?,\n                attribute solution { \"yes\" | \"no\" }?\n\n            HeaderFooterElements =\n                element first-page-header {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }? &\n                element running-header {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }? &\n                element first-page-footer {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }? &\n                element running-footer {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }?\n            \n            Source =\n                element source {\n                    attribute customizations { text }?,\n                    attribute private-solutions { text }?,\n                    attribute webwork-solutions { text }?,\n                    (Directories? & Version?)\n                }\n\n            Directories =\n                element directories {\n                    attribute external { text },\n                    attribute generated { text }\n                }\n\n            Version =\n                element version {\n                    attribute include { text }\n                }\n            \n            Numbering =\n                element numbering {\n                    Divisions? &\n                    Blocks? &\n                    Projects? &\n                    Equations? &\n                    Footnotes?\n                }\n\n            Divisions =\n                element divisions {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }?,\n                    attribute chapter-start { xsd:integer }?,\n                    attribute parts-structure { \"decorative\" | \"structural\" }?\n                }\n\n            Blocks =\n                element blocks {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                }\n\n            Projects =\n                element projects {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                }\n\n            Equations =\n                element equations {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                }\n\n            Footnotes =\n                element footnotes {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }?\n                }\n            \n            Latex =\n                element latex {\n                    attribute latex-style {text}?,\n                    attribute print { \"yes\" | \"no\" }?,\n                    attribute sides { \"one\" | \"two\" }?,\n                    attribute open-odd { \"add-blanks\" | \"skip-pages\" | \"no\" }?,\n                    attribute font-size { \"9\" | \"10\" | \"11\" | \"12\" | \"14\" | \"17\" | \"20\" }?,\n                    attribute page-ref { \"yes\" | \"no\" }?,\n                    attribute draft { \"yes\" | \"no\" }?,\n                    attribute snapshow { \"yes\" | \"no\" }?,\n                    attribute link-highlight { \"none\" | \"underline\" }?,\n                    ( Page? & Worksheet? & Cover? & Asymptote?)\n                }\n\n            Page =\n                element page {\n                    attribute right-alignment { \"flush\" | \"ragged\" }?,\n                    attribute bottom-alignment { \"flush\" | \"ragged\" }?,\n                    attribute crop-marks { \"none\" | \"a0\" | \"a1\" | \"a2\" | \"a3\" | \"a4\" | \"a5\" | \"a6\" | \"b0\" | \"b1\" | \"b2\" | \"b3\" | \"b4\" | \"b5\" | \"b6\" | \"letter\" | \"legal\" | \"executive\" }?,\n                    element geometry { text }?\n                }\n\n            Worksheet =\n                element worksheet {\n                    attribute formatted { \"yes\" | \"no\" }?\n                }\n\n            Cover =\n                element cover {\n                    attribute front { text }?,\n                    attribute back { text }?\n                }\n\n            Asymptote =\n                element asymptote {\n                    attribute links { \"yes\" | \"no\" }?\n                }\n            \n            Html =\n                element html {\n                    attribute design-width { xsd:integer }?,\n                    attribute favicon { \"none\" | \"simple\" }?,\n                    attribute short-answer-responses { \"graded\" | \"always\" }?,\n                    (\n                        Analytics? &\n                        Asymptote? &\n                        Baseurl? &\n                        Calculator? &\n                        Css? &\n                        Crossreferences? &\n                        Exercises? &\n                        Feedback? &\n                        Indexpage? &\n                        Interactives? &\n                        Knowls? &\n                        NavigationHTML? &\n                        Platform? &\n                        Search? &\n                        Tableofcontents? &\n                        Video? &\n                        WebworkDynamism?\n                    )\n                }\n\n            Analytics =\n                element analytics {\n                    attribute google-gst { text }?,\n                    attribute statcounter-project { text }?,\n                    attribute statcounter-security { text }?\n                }\n\n            Baseurl =\n                element baseurl {\n                    attribute href { text }\n                }\n\n            Calculator =\n                element calculator {\n                    attribute model { \"geogebra-classic\" | \"geogebra-graphing\" | \"geogebra-geometry\" | \"geogebra-3d\" | \"none \"}?,\n                    attribute activecode { \"python\" | \"javascript\" | \"html\" | \"sql\" | \"c\" | \"cpp\" | \"java\" | \"kotlin\" | \"python3\" | \"octave\" | \"none\"}?\n                }\n\n            Crossreferences =\n                element cross-references {\n                    attribute knowled { \"maximum\" | \"never\" | \"cross-page\" }\n                }\n\n            Css =\n                element css {\n                    attribute colors { text }?,\n                    attribute style { text }?,\n                    attribute knowls { text }?,\n                    attribute toc { text }?,\n                    attribute banner { text }?,\n                    attribute navbar { text }?,\n                    attribute shell { text }?\n                }\n\n            Exercises =\n                element exercises {\n                    attribute tabbed-tasks { \"divisional\" | \"inline\" | \"reading\" | \"project\" }\n                }\n\n            Feedback =\n                element feedback {\n                    attribute href { text }\n                }\n\n            Indexpage =\n                element index-page {\n                    attribute ref { text }\n                }\n\n            Interactives =\n                element interactives {\n                    attribute resize-behavior { \"fixed-height\" | \"responsive\" }?,\n                    InteractiveTypes*\n                }\n\n            InteractiveTypes =\n                element (\n                    geogebra |\n                    desmos |\n                    calcplot3d |\n                    circuitjs |\n                    d3 |\n                    doenetml |\n                    iframe |\n                    javascript |\n                    jsxgraph |\n                    sage\n                ) {\n                    attribute resize-behavior { \"fixed-height\" | \"responsive\" }?\n                }\n\n            Knowls =\n                element knowl {\n                    attribute theorem { \"yes\" | \"no\" }?,\n                    attribute proof { \"yes\" | \"no\" }?,\n                    attribute definition { \"yes\" | \"no\" }?,\n                    attribute example { \"yes\" | \"no\" }?,\n                    attribute example-solution { \"yes\" | \"no\" }?,\n                    attribute project { \"yes\" | \"no\" }?,\n                    attribute task { \"yes\" | \"no\" }?,\n                    attribute remark { \"yes\" | \"no\" }?,\n                    attribute objectives { \"yes\" | \"no\" }?,\n                    attribute outcomes { \"yes\" | \"no\" }?,\n                    attribute figure { \"yes\" | \"no\" }?,\n                    attribute table { \"yes\" | \"no\" }?,\n                    attribute listing { \"yes\" | \"no\" }?,\n                    attribute list { \"yes\" | \"no\" }?,\n                    attribute exercise-inline { \"yes\" | \"no\" }?,\n                    attribute exercise-divisional { \"yes\" | \"no\" }?,\n                    attribute exercise-worksheet { \"yes\" | \"no\" }?,\n                    attribute exercise-readingquestion { \"yes\" | \"no\" }?\n                }\n\n            NavigationHTML =\n                element navigation {\n                    attribute logic { \"linear\" | \"tree\" }?,\n                    attribute upbutton { \"yes\" | \"no\" }?\n                }\n            Platform =\n                element platform {\n                    attribute host { \"web\" | \"runestone\" },\n                    attribute portable { \"yes\" | \"no\" }\n                }\n            Search =\n                element search {\n                    attribute variant { \"textbook\" | \"reference\" | \"none\" }?,\n                    attribute google-cx { text }?\n                }\n\n            Tableofcontents =\n                element table-of-contents {\n                    attribute focused { \"yes\" | \"no\" }?,\n                    attribute preexpanded-levels { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\"}?\n                }\n\n            Video =\n                element video {\n                    attribute privacy { \"yes\" | \"no\" }\n                }\n\n            WebworkDynamism =\n                element webwork {\n                    attribute inline { \"dynamic\" | \"static\" }?,\n                    attribute divisional { \"dynamic\" | \"static\" }?,\n                    attribute reading { \"dynamic\" | \"static\" }?,\n                    attribute worksheet { \"dynamic\" | \"static\" }?,\n                    attribute project { \"dynamic\" | \"static\" }?\n                }\n\n            \n            Revealjs =\n                element revealjs {\n                    Appearance? &\n                    Controls? &\n                    NavigationReveal? &\n                    Resources?\n                }\n\n            Appearance =\n                element appearance {\n                    attribute theme { text }\n                }\n\n            Controls =\n                element controls {\n                    attribute backarrow { \"faded\" | \"hidden\" | \"visible\" }?,\n                    attribute display { \"yes\" | \"no\" }?,\n                    attribute layout { \"edges\" | \"bottom-right\" }?,\n                    attribute tutorial { \"yes\" | \"no\" }?\n                }\n\n            NavigationReveal =\n                element navigation {\n                    attribute mode { \"default\" | \"linear\" | \"grid\" }\n                }\n\n            Resources =\n                element resources {\n                    attribute host { \"local\" | \"cdn\" }\n                }\n            \n            Epub =\n                element epub {\n                    element cover {\n                        attribute front { text }\n                    }\n                }\n            \n            Webwork =\n                element webwork {\n                    attribute server { text },\n                    attribute course { text }?,\n                    attribute user { text }?,\n                    attribute password { text }?,\n                    attribute task-reveal { \"preceding-correct\" | \"all\" }?\n                }\n            \n            }\n            "
  },
  {
    "path": "schema/publication-schema.rng",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<grammar xmlns=\"http://relaxng.org/ns/structure/1.0\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\">\n  <start>\n    <ref name=\"Publication\"/>\n  </start>\n  <define name=\"Publication\">\n    <element name=\"publication\">\n      <interleave>\n        <optional>\n          <ref name=\"Common\"/>\n        </optional>\n        <optional>\n          <ref name=\"Source\"/>\n        </optional>\n        <optional>\n          <ref name=\"Numbering\"/>\n        </optional>\n        <optional>\n          <ref name=\"Latex\"/>\n        </optional>\n        <optional>\n          <ref name=\"Html\"/>\n        </optional>\n        <optional>\n          <ref name=\"Revealjs\"/>\n        </optional>\n        <optional>\n          <ref name=\"Epub\"/>\n        </optional>\n        <optional>\n          <ref name=\"Webwork\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Common\">\n    <element name=\"common\">\n      <interleave>\n        <optional>\n          <element name=\"chunking\">\n            <attribute name=\"level\">\n              <choice>\n                <value>0</value>\n                <value>1</value>\n                <value>2</value>\n                <value>3</value>\n                <value>4</value>\n                <value>5</value>\n                <value>6</value>\n              </choice>\n            </attribute>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"tableofcontents\">\n            <attribute name=\"level\">\n              <choice>\n                <value>0</value>\n                <value>1</value>\n                <value>2</value>\n                <value>3</value>\n                <value>4</value>\n                <value>5</value>\n                <value>6</value>\n              </choice>\n            </attribute>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"exercise-inline\">\n            <ref name=\"ExerciseAttributes\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"exercise-divisional\">\n            <ref name=\"ExerciseAttributes\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"exercise-worksheet\">\n            <ref name=\"ExerciseAttributes\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"exercise-reading\">\n            <ref name=\"ExerciseAttributes\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"exercise-project\">\n            <ref name=\"ExerciseAttributes\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"fillin\">\n            <optional>\n              <attribute name=\"textstyle\">\n                <choice>\n                  <value>underline</value>\n                  <value>box</value>\n                  <value>shade</value>\n                </choice>\n              </attribute>\n            </optional>\n            <optional>\n              <attribute name=\"mathstyle\">\n                <choice>\n                  <value>underline</value>\n                  <value>box</value>\n                  <value>shade</value>\n                </choice>\n              </attribute>\n            </optional>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"watermark\">\n            <attribute name=\"scale\">\n              <data type=\"decimal\"/>\n            </attribute>\n            <text/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"mermaid\">\n            <attribute name=\"theme\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"qrcode\">\n            <attribute name=\"image\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"journal\">\n            <attribute name=\"name\"/>\n          </element>\n        </optional>\n        <optional>\n          <element name=\"worksheet\">\n            <optional>\n              <attribute name=\"margin\"/>\n            </optional>\n            <optional>\n              <attribute name=\"top\"/>\n            </optional>\n            <optional>\n              <attribute name=\"right\"/>\n            </optional>\n            <optional>\n              <attribute name=\"bottom\"/>\n            </optional>\n            <optional>\n              <attribute name=\"left\"/>\n            </optional>\n            <optional>\n              <ref name=\"HeaderFooterElements\"/>\n            </optional>\n          </element>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"ExerciseAttributes\">\n    <optional>\n      <attribute name=\"statement\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </optional>\n    <optional>\n      <attribute name=\"hint\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </optional>\n    <optional>\n      <attribute name=\"answer\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </optional>\n    <optional>\n      <attribute name=\"solution\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </optional>\n  </define>\n  <define name=\"HeaderFooterElements\">\n    <interleave>\n      <optional>\n        <element name=\"first-page-header\">\n          <optional>\n            <attribute name=\"left\"/>\n          </optional>\n          <optional>\n            <attribute name=\"center\"/>\n          </optional>\n          <optional>\n            <attribute name=\"right\"/>\n          </optional>\n        </element>\n      </optional>\n      <optional>\n        <element name=\"running-header\">\n          <optional>\n            <attribute name=\"left\"/>\n          </optional>\n          <optional>\n            <attribute name=\"center\"/>\n          </optional>\n          <optional>\n            <attribute name=\"right\"/>\n          </optional>\n        </element>\n      </optional>\n      <optional>\n        <element name=\"first-page-footer\">\n          <optional>\n            <attribute name=\"left\"/>\n          </optional>\n          <optional>\n            <attribute name=\"center\"/>\n          </optional>\n          <optional>\n            <attribute name=\"right\"/>\n          </optional>\n        </element>\n      </optional>\n      <optional>\n        <element name=\"running-footer\">\n          <optional>\n            <attribute name=\"left\"/>\n          </optional>\n          <optional>\n            <attribute name=\"center\"/>\n          </optional>\n          <optional>\n            <attribute name=\"right\"/>\n          </optional>\n        </element>\n      </optional>\n    </interleave>\n  </define>\n  <define name=\"Source\">\n    <element name=\"source\">\n      <optional>\n        <attribute name=\"customizations\"/>\n      </optional>\n      <optional>\n        <attribute name=\"private-solutions\"/>\n      </optional>\n      <optional>\n        <attribute name=\"webwork-solutions\"/>\n      </optional>\n      <interleave>\n        <optional>\n          <ref name=\"Directories\"/>\n        </optional>\n        <optional>\n          <ref name=\"Version\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Directories\">\n    <element name=\"directories\">\n      <attribute name=\"external\"/>\n      <attribute name=\"generated\"/>\n    </element>\n  </define>\n  <define name=\"Version\">\n    <element name=\"version\">\n      <attribute name=\"include\"/>\n    </element>\n  </define>\n  <define name=\"Numbering\">\n    <element name=\"numbering\">\n      <interleave>\n        <optional>\n          <ref name=\"Divisions\"/>\n        </optional>\n        <optional>\n          <ref name=\"Blocks\"/>\n        </optional>\n        <optional>\n          <ref name=\"Projects\"/>\n        </optional>\n        <optional>\n          <ref name=\"Equations\"/>\n        </optional>\n        <optional>\n          <ref name=\"Footnotes\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Divisions\">\n    <element name=\"divisions\">\n      <optional>\n        <attribute name=\"level\">\n          <choice>\n            <value>0</value>\n            <value>1</value>\n            <value>2</value>\n            <value>3</value>\n            <value>4</value>\n            <value>5</value>\n            <value>6</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"chapter-start\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"parts-structure\">\n          <choice>\n            <value>decorative</value>\n            <value>structural</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Blocks\">\n    <element name=\"blocks\">\n      <attribute name=\"level\">\n        <choice>\n          <value>0</value>\n          <value>1</value>\n          <value>2</value>\n          <value>3</value>\n          <value>4</value>\n          <value>5</value>\n          <value>6</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Projects\">\n    <element name=\"projects\">\n      <attribute name=\"level\">\n        <choice>\n          <value>0</value>\n          <value>1</value>\n          <value>2</value>\n          <value>3</value>\n          <value>4</value>\n          <value>5</value>\n          <value>6</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Equations\">\n    <element name=\"equations\">\n      <attribute name=\"level\">\n        <choice>\n          <value>0</value>\n          <value>1</value>\n          <value>2</value>\n          <value>3</value>\n          <value>4</value>\n          <value>5</value>\n          <value>6</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Footnotes\">\n    <element name=\"footnotes\">\n      <optional>\n        <attribute name=\"level\">\n          <choice>\n            <value>0</value>\n            <value>1</value>\n            <value>2</value>\n            <value>3</value>\n            <value>4</value>\n            <value>5</value>\n            <value>6</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Latex\">\n    <element name=\"latex\">\n      <optional>\n        <attribute name=\"latex-style\"/>\n      </optional>\n      <optional>\n        <attribute name=\"print\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"sides\">\n          <choice>\n            <value>one</value>\n            <value>two</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"open-odd\">\n          <choice>\n            <value>add-blanks</value>\n            <value>skip-pages</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"font-size\">\n          <choice>\n            <value>9</value>\n            <value>10</value>\n            <value>11</value>\n            <value>12</value>\n            <value>14</value>\n            <value>17</value>\n            <value>20</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"page-ref\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"draft\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"snapshow\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"link-highlight\">\n          <choice>\n            <value>none</value>\n            <value>underline</value>\n          </choice>\n        </attribute>\n      </optional>\n      <interleave>\n        <optional>\n          <ref name=\"Page\"/>\n        </optional>\n        <optional>\n          <ref name=\"Worksheet\"/>\n        </optional>\n        <optional>\n          <ref name=\"Cover\"/>\n        </optional>\n        <optional>\n          <ref name=\"Asymptote\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Page\">\n    <element name=\"page\">\n      <optional>\n        <attribute name=\"right-alignment\">\n          <choice>\n            <value>flush</value>\n            <value>ragged</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"bottom-alignment\">\n          <choice>\n            <value>flush</value>\n            <value>ragged</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"crop-marks\">\n          <choice>\n            <value>none</value>\n            <value>a0</value>\n            <value>a1</value>\n            <value>a2</value>\n            <value>a3</value>\n            <value>a4</value>\n            <value>a5</value>\n            <value>a6</value>\n            <value>b0</value>\n            <value>b1</value>\n            <value>b2</value>\n            <value>b3</value>\n            <value>b4</value>\n            <value>b5</value>\n            <value>b6</value>\n            <value>letter</value>\n            <value>legal</value>\n            <value>executive</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <element name=\"geometry\">\n          <text/>\n        </element>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Worksheet\">\n    <element name=\"worksheet\">\n      <optional>\n        <attribute name=\"formatted\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Cover\">\n    <element name=\"cover\">\n      <optional>\n        <attribute name=\"front\"/>\n      </optional>\n      <optional>\n        <attribute name=\"back\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Asymptote\">\n    <element name=\"asymptote\">\n      <optional>\n        <attribute name=\"links\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Html\">\n    <element name=\"html\">\n      <optional>\n        <attribute name=\"design-width\">\n          <data type=\"integer\"/>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"favicon\">\n          <choice>\n            <value>none</value>\n            <value>simple</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"short-answer-responses\">\n          <choice>\n            <value>graded</value>\n            <value>always</value>\n          </choice>\n        </attribute>\n      </optional>\n      <interleave>\n        <optional>\n          <ref name=\"Analytics\"/>\n        </optional>\n        <optional>\n          <ref name=\"Asymptote\"/>\n        </optional>\n        <optional>\n          <ref name=\"Baseurl\"/>\n        </optional>\n        <optional>\n          <ref name=\"Calculator\"/>\n        </optional>\n        <optional>\n          <ref name=\"Css\"/>\n        </optional>\n        <optional>\n          <ref name=\"Crossreferences\"/>\n        </optional>\n        <optional>\n          <ref name=\"Exercises\"/>\n        </optional>\n        <optional>\n          <ref name=\"Feedback\"/>\n        </optional>\n        <optional>\n          <ref name=\"Indexpage\"/>\n        </optional>\n        <optional>\n          <ref name=\"Interactives\"/>\n        </optional>\n        <optional>\n          <ref name=\"Knowls\"/>\n        </optional>\n        <optional>\n          <ref name=\"NavigationHTML\"/>\n        </optional>\n        <optional>\n          <ref name=\"Platform\"/>\n        </optional>\n        <optional>\n          <ref name=\"Search\"/>\n        </optional>\n        <optional>\n          <ref name=\"Tableofcontents\"/>\n        </optional>\n        <optional>\n          <ref name=\"Video\"/>\n        </optional>\n        <optional>\n          <ref name=\"WebworkDynamism\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Analytics\">\n    <element name=\"analytics\">\n      <optional>\n        <attribute name=\"google-gst\"/>\n      </optional>\n      <optional>\n        <attribute name=\"statcounter-project\"/>\n      </optional>\n      <optional>\n        <attribute name=\"statcounter-security\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Baseurl\">\n    <element name=\"baseurl\">\n      <attribute name=\"href\"/>\n    </element>\n  </define>\n  <define name=\"Calculator\">\n    <element name=\"calculator\">\n      <optional>\n        <attribute name=\"model\">\n          <choice>\n            <value>geogebra-classic</value>\n            <value>geogebra-graphing</value>\n            <value>geogebra-geometry</value>\n            <value>geogebra-3d</value>\n            <value>none </value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"activecode\">\n          <choice>\n            <value>python</value>\n            <value>javascript</value>\n            <value>html</value>\n            <value>sql</value>\n            <value>c</value>\n            <value>cpp</value>\n            <value>java</value>\n            <value>kotlin</value>\n            <value>python3</value>\n            <value>octave</value>\n            <value>none</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Crossreferences\">\n    <element name=\"cross-references\">\n      <attribute name=\"knowled\">\n        <choice>\n          <value>maximum</value>\n          <value>never</value>\n          <value>cross-page</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Css\">\n    <element name=\"css\">\n      <optional>\n        <attribute name=\"colors\"/>\n      </optional>\n      <optional>\n        <attribute name=\"style\"/>\n      </optional>\n      <optional>\n        <attribute name=\"knowls\"/>\n      </optional>\n      <optional>\n        <attribute name=\"toc\"/>\n      </optional>\n      <optional>\n        <attribute name=\"banner\"/>\n      </optional>\n      <optional>\n        <attribute name=\"navbar\"/>\n      </optional>\n      <optional>\n        <attribute name=\"shell\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Exercises\">\n    <element name=\"exercises\">\n      <attribute name=\"tabbed-tasks\">\n        <choice>\n          <value>divisional</value>\n          <value>inline</value>\n          <value>reading</value>\n          <value>project</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Feedback\">\n    <element name=\"feedback\">\n      <attribute name=\"href\"/>\n    </element>\n  </define>\n  <define name=\"Indexpage\">\n    <element name=\"index-page\">\n      <attribute name=\"ref\"/>\n    </element>\n  </define>\n  <define name=\"Interactives\">\n    <element name=\"interactives\">\n      <optional>\n        <attribute name=\"resize-behavior\">\n          <choice>\n            <value>fixed-height</value>\n            <value>responsive</value>\n          </choice>\n        </attribute>\n      </optional>\n      <zeroOrMore>\n        <ref name=\"InteractiveTypes\"/>\n      </zeroOrMore>\n    </element>\n  </define>\n  <define name=\"InteractiveTypes\">\n    <element>\n      <choice>\n        <name>geogebra</name>\n        <name>desmos</name>\n        <name>calcplot3d</name>\n        <name>circuitjs</name>\n        <name>d3</name>\n        <name>doenetml</name>\n        <name>iframe</name>\n        <name>javascript</name>\n        <name>jsxgraph</name>\n        <name>sage</name>\n      </choice>\n      <optional>\n        <attribute name=\"resize-behavior\">\n          <choice>\n            <value>fixed-height</value>\n            <value>responsive</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Knowls\">\n    <element name=\"knowl\">\n      <optional>\n        <attribute name=\"theorem\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"proof\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"definition\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"example\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"example-solution\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"project\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"task\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"remark\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"objectives\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"outcomes\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"figure\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"table\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"listing\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"list\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"exercise-inline\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"exercise-divisional\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"exercise-worksheet\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"exercise-readingquestion\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"NavigationHTML\">\n    <element name=\"navigation\">\n      <optional>\n        <attribute name=\"logic\">\n          <choice>\n            <value>linear</value>\n            <value>tree</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"upbutton\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Platform\">\n    <element name=\"platform\">\n      <attribute name=\"host\">\n        <choice>\n          <value>web</value>\n          <value>runestone</value>\n        </choice>\n      </attribute>\n      <attribute name=\"portable\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Search\">\n    <element name=\"search\">\n      <optional>\n        <attribute name=\"variant\">\n          <choice>\n            <value>textbook</value>\n            <value>reference</value>\n            <value>none</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"google-cx\"/>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Tableofcontents\">\n    <element name=\"table-of-contents\">\n      <optional>\n        <attribute name=\"focused\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"preexpanded-levels\">\n          <choice>\n            <value>0</value>\n            <value>1</value>\n            <value>2</value>\n            <value>3</value>\n            <value>4</value>\n            <value>5</value>\n            <value>6</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Video\">\n    <element name=\"video\">\n      <attribute name=\"privacy\">\n        <choice>\n          <value>yes</value>\n          <value>no</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"WebworkDynamism\">\n    <element name=\"webwork\">\n      <optional>\n        <attribute name=\"inline\">\n          <choice>\n            <value>dynamic</value>\n            <value>static</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"divisional\">\n          <choice>\n            <value>dynamic</value>\n            <value>static</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"reading\">\n          <choice>\n            <value>dynamic</value>\n            <value>static</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"worksheet\">\n          <choice>\n            <value>dynamic</value>\n            <value>static</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"project\">\n          <choice>\n            <value>dynamic</value>\n            <value>static</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"Revealjs\">\n    <element name=\"revealjs\">\n      <interleave>\n        <optional>\n          <ref name=\"Appearance\"/>\n        </optional>\n        <optional>\n          <ref name=\"Controls\"/>\n        </optional>\n        <optional>\n          <ref name=\"NavigationReveal\"/>\n        </optional>\n        <optional>\n          <ref name=\"Resources\"/>\n        </optional>\n      </interleave>\n    </element>\n  </define>\n  <define name=\"Appearance\">\n    <element name=\"appearance\">\n      <attribute name=\"theme\"/>\n    </element>\n  </define>\n  <define name=\"Controls\">\n    <element name=\"controls\">\n      <optional>\n        <attribute name=\"backarrow\">\n          <choice>\n            <value>faded</value>\n            <value>hidden</value>\n            <value>visible</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"display\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"layout\">\n          <choice>\n            <value>edges</value>\n            <value>bottom-right</value>\n          </choice>\n        </attribute>\n      </optional>\n      <optional>\n        <attribute name=\"tutorial\">\n          <choice>\n            <value>yes</value>\n            <value>no</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n  <define name=\"NavigationReveal\">\n    <element name=\"navigation\">\n      <attribute name=\"mode\">\n        <choice>\n          <value>default</value>\n          <value>linear</value>\n          <value>grid</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Resources\">\n    <element name=\"resources\">\n      <attribute name=\"host\">\n        <choice>\n          <value>local</value>\n          <value>cdn</value>\n        </choice>\n      </attribute>\n    </element>\n  </define>\n  <define name=\"Epub\">\n    <element name=\"epub\">\n      <element name=\"cover\">\n        <attribute name=\"front\"/>\n      </element>\n    </element>\n  </define>\n  <define name=\"Webwork\">\n    <element name=\"webwork\">\n      <attribute name=\"server\"/>\n      <optional>\n        <attribute name=\"course\"/>\n      </optional>\n      <optional>\n        <attribute name=\"user\"/>\n      </optional>\n      <optional>\n        <attribute name=\"password\"/>\n      </optional>\n      <optional>\n        <attribute name=\"task-reveal\">\n          <choice>\n            <value>preceding-correct</value>\n            <value>all</value>\n          </choice>\n        </attribute>\n      </optional>\n    </element>\n  </define>\n</grammar>\n"
  },
  {
    "path": "schema/publication-schema.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--   = one, mandatory -->\n<!-- ? = one, optional  -->\n<!-- * = zero or more   -->\n<!-- + = one or more    -->\n\n<pretext>\n\n    <docinfo>\n        <cross-references text=\"type-global\" />\n    </docinfo>\n\n    <article xml:id=\"publication\">\n        <title>PreTeXt Publication File RELAX-NG Schema</title>\n\n        <frontmatter>\n            <bibinfo>\n\n               <!-- There can be several authors here -->\n               <author>\n                    <personname>Robert A.<nbsp/>Beezer</personname>\n                    <!-- department here is one line, so unstructured -->\n                    <department>Department of Mathematics and Computer Science</department>\n                    <!-- institution uses two lines, so structured as such -->\n                    <institution>\n                        <line>University of Puget Sound</line>\n                        <line>Tacoma, Washington, USA</line>\n                    </institution>\n                    <email>beezer@pugetsound.edu</email>\n                </author>\n\n                <author>\n                    <personname>Oscar Levin</personname>\n                    <!-- department here is one line, so unstructured -->\n                    <department>Mathematical Sciences</department>\n                    <!-- institution uses two lines, so structured as such -->\n                    <institution>\n                        <line>University of Northern Colorado</line>\n                        <line>Greeley, Co 80639</line>\n                    </institution>\n                    <email>oscar.levin@unco.edu</email>\n                </author>\n\n                <!-- Can set date manually or use the \"today\" element -->\n                <date><today/></date>\n            </bibinfo>\n\n            <titlepage>\n                <titlepage-items />\n            </titlepage>\n        </frontmatter>\n\n    <introduction>\n        <p>\n            This is a literate programming version of the <init>RELAX-NG</init> schema for <pretext/>'s Pulbication Files.  It is based on the corresponding version for <pretext/>'s <init>RELAX-NG</init> schema written by Rob Beezer.  It is used to generate the <init>RELAX-NG</init> compact syntax version (<c>pretext.rnc</c>) and other versions are derived from the compact version with standard tools.\n        </p>\n\n        <p>\n            The main use for this schema currently is to let <em>publishers</em> more easily write publication files for <pretext/> projects since the <c>pretext-tools</c> extension for VS Code uses (the derived version) of this schema to provide completions and (eventually) validation.\n        </p>\n\n        <p>\n            Comments in this file are kept to a minimum.  Full documentation of publisher options are presented in the <url href=\"https://pretextbook.org/doc/guide/html/publication-file-reference.html\"><pretext/> guide</url>.\n        </p>\n\n        <p>\n            More information about how <init>RELAX-NG</init> schemas work, as well as how the literate programming version of this schema works, can be found in the <pretext /> schema.\n        </p>\n    </introduction>\n\n    <section>\n        <title>Start Element</title>\n\n        <p>\n            The only <c>start</c> element for a publication file is <tag>publication</tag>.\n        </p>\n\n        <fragment xml:id=\"start-element\">\n            <title>Start element</title>\n            <code>\n            start = Publication\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Gross Structure</title>\n\n        <p>\n            A publication file always has the root element <tag>publication</tag>.  After that, all elements are optional.  Those elements include common options, and options for numbering, latex, html, reveal.js, epub, source, and <webwork/>.  These can come in any order.\n        </p>\n\n        <fragment xml:id=\"gross-structure\">\n            <title>Gross structure</title>\n            <code>\n            Publication =\n                element publication {\n                    Common? &amp;\n                    Source? &amp;\n                    Numbering? &amp;\n                    Latex? &amp;\n                    Html? &amp;\n                    Revealjs? &amp;\n                    Epub? &amp;\n                    Webwork?\n                }\n            </code>\n        </fragment>\n    </section>\n\n\n    <section>\n        <title>Common Options</title>\n\n        <p>\n            These options will affect more than one output format.\n        </p>\n\n        <fragment xml:id=\"common\">\n            <title>Common Options</title>\n            <code>\n            Common =\n                element common {\n                    element chunking {\n                        attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                    }? &amp;\n                    element tableofcontents {\n                        attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                    }? &amp;\n                    element exercise-inline {\n                        ExerciseAttributes\n                    }? &amp;\n                    element exercise-divisional {\n                        ExerciseAttributes\n                    }? &amp;\n                    element exercise-worksheet {\n                        ExerciseAttributes\n                    }? &amp;\n                    element exercise-reading {\n                        ExerciseAttributes\n                    }? &amp;\n                    element exercise-project {\n                        ExerciseAttributes\n                    }? &amp;\n                    element fillin {\n                        attribute textstyle { \"underline\" | \"box\" | \"shade\" }?,\n                        attribute mathstyle { \"underline\" | \"box\" | \"shade\" }?\n                    }? &amp;\n                    element watermark {\n                        attribute scale { xsd:decimal },\n                        text\n                    }? &amp;\n                    element mermaid {\n                        attribute theme { text }\n                    }? &amp;\n                    element qrcode {\n                        attribute image { text }\n                    }? &amp;\n                    element journal {\n                        attribute name {text}\n                    }? &amp;\n                    element worksheet {\n                        attribute margin {text}?,\n                        attribute top {text}?,\n                        attribute right {text}?,\n                        attribute bottom {text}?,\n                        attribute left {text}?,\n                        HeaderFooterElements?\n                    }?\n                }\n\n            ExerciseAttributes =\n                attribute statement { \"yes\" | \"no\" }?,\n                attribute hint { \"yes\" | \"no\" }?,\n                attribute answer { \"yes\" | \"no\" }?,\n                attribute solution { \"yes\" | \"no\" }?\n\n            HeaderFooterElements =\n                element first-page-header {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }? &amp;\n                element running-header {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }? &amp;\n                element first-page-footer {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }? &amp;\n                element running-footer {\n                    attribute left { text }?,\n                    attribute center { text }?,\n                    attribute right { text }?\n                }?\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Source Options</title>\n\n        <p>\n            These options relate to how the source files are interpreted and organized.\n        </p>\n\n        <fragment xml:id=\"source\">\n            <title>Source Options</title>\n            <code>\n            Source =\n                element source {\n                    attribute customizations { text }?,\n                    attribute private-solutions { text }?,\n                    attribute webwork-solutions { text }?,\n                    (Directories? &amp; Version?)\n                }\n\n            Directories =\n                element directories {\n                    attribute external { text },\n                    attribute generated { text }\n                }\n\n            Version =\n                element version {\n                    attribute include { text }\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Numbering Options</title>\n\n        <p>\n            These options will affect multiplt output formats, all related to numbering.\n        </p>\n\n        <fragment xml:id=\"numbering\">\n            <title>Numbering Options</title>\n            <code>\n            Numbering =\n                element numbering {\n                    Divisions? &amp;\n                    Blocks? &amp;\n                    Projects? &amp;\n                    Equations? &amp;\n                    Footnotes?\n                }\n\n            Divisions =\n                element divisions {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }?,\n                    attribute chapter-start { xsd:integer }?,\n                    attribute parts-structure { \"decorative\" | \"structural\" }?\n                }\n\n            Blocks =\n                element blocks {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                }\n\n            Projects =\n                element projects {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                }\n\n            Equations =\n                element equations {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }\n                }\n\n            Footnotes =\n                element footnotes {\n                    attribute level { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\" }?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>LaTeX Options</title>\n\n        <p>\n            These options are specific to the PDF/LaTeX output formats.\n        </p>\n\n        <fragment xml:id=\"latex\">\n            <title>LaTeX Options</title>\n            <code>\n            Latex =\n                element latex {\n                    attribute latex-style {text}?,\n                    attribute print { \"yes\" | \"no\" }?,\n                    attribute sides { \"one\" | \"two\" }?,\n                    attribute open-odd { \"add-blanks\" | \"skip-pages\" | \"no\" }?,\n                    attribute font-size { \"9\" | \"10\" | \"11\" | \"12\" | \"14\" | \"17\" | \"20\" }?,\n                    attribute page-ref { \"yes\" | \"no\" }?,\n                    attribute draft { \"yes\" | \"no\" }?,\n                    attribute snapshow { \"yes\" | \"no\" }?,\n                    attribute link-highlight { \"none\" | \"underline\" }?,\n                    ( Page? &amp; Worksheet? &amp; Cover? &amp; Asymptote?)\n                }\n\n            Page =\n                element page {\n                    attribute right-alignment { \"flush\" | \"ragged\" }?,\n                    attribute bottom-alignment { \"flush\" | \"ragged\" }?,\n                    attribute crop-marks { \"none\" | \"a0\" | \"a1\" | \"a2\" | \"a3\" | \"a4\" | \"a5\" | \"a6\" | \"b0\" | \"b1\" | \"b2\" | \"b3\" | \"b4\" | \"b5\" | \"b6\" | \"letter\" | \"legal\" | \"executive\" }?,\n                    element geometry { text }?\n                }\n\n            Worksheet =\n                element worksheet {\n                    attribute formatted { \"yes\" | \"no\" }?\n                }\n\n            Cover =\n                element cover {\n                    attribute front { text }?,\n                    attribute back { text }?\n                }\n\n            Asymptote =\n                element asymptote {\n                    attribute links { \"yes\" | \"no\" }?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>HTML Options</title>\n\n        <p>\n            These options control the Online/HTML output's presentation.\n        </p>\n\n        <p>\n            Note that the named pattern for Asymptote is defined in the <latex /> section above.\n        </p>\n\n        <fragment xml:id=\"html\">\n            <title>HTML Options</title>\n            <code>\n            Html =\n                element html {\n                    attribute design-width { xsd:integer }?,\n                    attribute favicon { \"none\" | \"simple\" }?,\n                    attribute short-answer-responses { \"graded\" | \"always\" }?,\n                    (\n                        Analytics? &amp;\n                        Asymptote? &amp;\n                        Baseurl? &amp;\n                        Calculator? &amp;\n                        Css? &amp;\n                        Crossreferences? &amp;\n                        Exercises? &amp;\n                        Feedback? &amp;\n                        Indexpage? &amp;\n                        Interactives? &amp;\n                        Knowls? &amp;\n                        NavigationHTML? &amp;\n                        Platform? &amp;\n                        Search? &amp;\n                        Tableofcontents? &amp;\n                        Video? &amp;\n                        WebworkDynamism?\n                    )\n                }\n\n            Analytics =\n                element analytics {\n                    attribute google-gst { text }?,\n                    attribute statcounter-project { text }?,\n                    attribute statcounter-security { text }?\n                }\n\n            Baseurl =\n                element baseurl {\n                    attribute href { text }\n                }\n\n            Calculator =\n                element calculator {\n                    attribute model { \"geogebra-classic\" | \"geogebra-graphing\" | \"geogebra-geometry\" | \"geogebra-3d\" | \"none \"}?,\n                    attribute activecode { \"python\" | \"javascript\" | \"html\" | \"sql\" | \"c\" | \"cpp\" | \"java\" | \"kotlin\" | \"python3\" | \"octave\" | \"none\"}?\n                }\n\n            Crossreferences =\n                element cross-references {\n                    attribute knowled { \"maximum\" | \"never\" | \"cross-page\" }\n                }\n\n            Css =\n                element css {\n                    attribute colors { text }?,\n                    attribute style { text }?,\n                    attribute knowls { text }?,\n                    attribute toc { text }?,\n                    attribute banner { text }?,\n                    attribute navbar { text }?,\n                    attribute shell { text }?\n                }\n\n            Exercises =\n                element exercises {\n                    attribute tabbed-tasks { \"divisional\" | \"inline\" | \"reading\" | \"project\" }\n                }\n\n            Feedback =\n                element feedback {\n                    attribute href { text }\n                }\n\n            Indexpage =\n                element index-page {\n                    attribute ref { text }\n                }\n\n            Interactives =\n                element interactives {\n                    attribute resize-behavior { \"fixed-height\" | \"responsive\" }?,\n                    InteractiveTypes*\n                }\n\n            InteractiveTypes =\n                element (\n                    geogebra |\n                    desmos |\n                    calcplot3d |\n                    circuitjs |\n                    d3 |\n                    doenetml |\n                    iframe |\n                    javascript |\n                    jsxgraph |\n                    sage\n                ) {\n                    attribute resize-behavior { \"fixed-height\" | \"responsive\" }?\n                }\n\n            Knowls =\n                element knowl {\n                    attribute theorem { \"yes\" | \"no\" }?,\n                    attribute proof { \"yes\" | \"no\" }?,\n                    attribute definition { \"yes\" | \"no\" }?,\n                    attribute example { \"yes\" | \"no\" }?,\n                    attribute example-solution { \"yes\" | \"no\" }?,\n                    attribute project { \"yes\" | \"no\" }?,\n                    attribute task { \"yes\" | \"no\" }?,\n                    attribute remark { \"yes\" | \"no\" }?,\n                    attribute objectives { \"yes\" | \"no\" }?,\n                    attribute outcomes { \"yes\" | \"no\" }?,\n                    attribute figure { \"yes\" | \"no\" }?,\n                    attribute table { \"yes\" | \"no\" }?,\n                    attribute listing { \"yes\" | \"no\" }?,\n                    attribute list { \"yes\" | \"no\" }?,\n                    attribute exercise-inline { \"yes\" | \"no\" }?,\n                    attribute exercise-divisional { \"yes\" | \"no\" }?,\n                    attribute exercise-worksheet { \"yes\" | \"no\" }?,\n                    attribute exercise-readingquestion { \"yes\" | \"no\" }?\n                }\n\n            NavigationHTML =\n                element navigation {\n                    attribute logic { \"linear\" | \"tree\" }?,\n                    attribute upbutton { \"yes\" | \"no\" }?\n                }\n            Platform =\n                element platform {\n                    attribute host { \"web\" | \"runestone\" },\n                    attribute portable { \"yes\" | \"no\" }\n                }\n            Search =\n                element search {\n                    attribute variant { \"textbook\" | \"reference\" | \"none\" }?,\n                    attribute google-cx { text }?\n                }\n\n            Tableofcontents =\n                element table-of-contents {\n                    attribute focused { \"yes\" | \"no\" }?,\n                    attribute preexpanded-levels { \"0\" | \"1\" | \"2\" | \"3\" | \"4\" | \"5\" | \"6\"}?\n                }\n\n            Video =\n                element video {\n                    attribute privacy { \"yes\" | \"no\" }\n                }\n\n            WebworkDynamism =\n                element webwork {\n                    attribute inline { \"dynamic\" | \"static\" }?,\n                    attribute divisional { \"dynamic\" | \"static\" }?,\n                    attribute reading { \"dynamic\" | \"static\" }?,\n                    attribute worksheet { \"dynamic\" | \"static\" }?,\n                    attribute project { \"dynamic\" | \"static\" }?\n                }\n\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Reveal.js Options</title>\n\n        <p>\n            These options control the Reveal.js slides presentation.\n        </p>\n\n        <fragment xml:id=\"revealjs\">\n            <title>Reveal.js Options</title>\n            <code>\n            Revealjs =\n                element revealjs {\n                    Appearance? &amp;\n                    Controls? &amp;\n                    NavigationReveal? &amp;\n                    Resources?\n                }\n\n            Appearance =\n                element appearance {\n                    attribute theme { text }\n                }\n\n            Controls =\n                element controls {\n                    attribute backarrow { \"faded\" | \"hidden\" | \"visible\" }?,\n                    attribute display { \"yes\" | \"no\" }?,\n                    attribute layout { \"edges\" | \"bottom-right\" }?,\n                    attribute tutorial { \"yes\" | \"no\" }?\n                }\n\n            NavigationReveal =\n                element navigation {\n                    attribute mode { \"default\" | \"linear\" | \"grid\" }\n                }\n\n            Resources =\n                element resources {\n                    attribute host { \"local\" | \"cdn\" }\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>EPUB Options</title>\n\n        <p>\n            These option(s) control the EPUB output.\n        </p>\n\n        <fragment xml:id=\"epub\">\n            <title>EPUB Options</title>\n            <code>\n            Epub =\n                element epub {\n                    element cover {\n                        attribute front { text }\n                    }\n                }\n            </code>\n        </fragment>\n    </section>\n\n\n    <section>\n        <title><webwork/> Options</title>\n\n        <p>\n            These options are for when an author wants to pull out <webwork/> problems for use on a <webwork /> server.\n        </p>\n\n        <fragment xml:id=\"webwork\">\n            <title><webwork /> Options</title>\n            <code>\n            Webwork =\n                element webwork {\n                    attribute server { text },\n                    attribute course { text }?,\n                    attribute user { text }?,\n                    attribute password { text }?,\n                    attribute task-reveal { \"preceding-correct\" | \"all\" }?\n                }\n            </code>\n        </fragment>\n    </section>\n\n    <section>\n        <title>Hierarchical Structure</title>\n\n        <p>\n            We collect all the specifications, roughly in a top-down order, so the generated schema files have a rational ordering to them, even if the order presented here is different.\n        </p>\n\n        <fragment filename=\"publication-schema.rnc\">\n            <title>Hierarchical Structure</title>\n            <code>\n            grammar {\n            </code>\n            <fragref ref=\"start-element\" />\n            <fragref ref=\"gross-structure\" />\n            <fragref ref=\"common\" />\n            <fragref ref=\"source\" />\n            <fragref ref=\"numbering\" />\n            <fragref ref=\"latex\" />\n            <fragref ref=\"html\" />\n            <fragref ref=\"revealjs\" />\n            <fragref ref=\"epub\" />\n            <fragref ref=\"webwork\" />\n            <code>\n            }\n            </code>\n            </fragment>\n    </section>\n\n    <backmatter>\n        <appendix xml:id=\"fragment-list\">\n            <title>\n                    Fragments</title>\n\n            <list-of elements=\"fragment\"/>\n        </appendix>\n    </backmatter>\n\n    </article>\n</pretext>\n"
  },
  {
    "path": "schema/publication-schema.xsd",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\">\n  <xs:element name=\"publication\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"common\"/>\n        <xs:element ref=\"source\"/>\n        <xs:element ref=\"numbering\"/>\n        <xs:element ref=\"latex\"/>\n        <xs:element ref=\"html\"/>\n        <xs:element ref=\"revealjs\"/>\n        <xs:element ref=\"epub\"/>\n        <xs:group ref=\"Webwork\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"common\">\n    <xs:complexType>\n      <xs:all>\n        <xs:element minOccurs=\"0\" ref=\"chunking\"/>\n        <xs:element minOccurs=\"0\" ref=\"tableofcontents\"/>\n        <xs:element minOccurs=\"0\" ref=\"exercise-inline\"/>\n        <xs:element minOccurs=\"0\" ref=\"exercise-divisional\"/>\n        <xs:element minOccurs=\"0\" ref=\"exercise-worksheet\"/>\n        <xs:element minOccurs=\"0\" ref=\"exercise-reading\"/>\n        <xs:element minOccurs=\"0\" ref=\"exercise-project\"/>\n        <xs:element minOccurs=\"0\" ref=\"fillin\"/>\n        <xs:element minOccurs=\"0\" ref=\"watermark\"/>\n        <xs:element minOccurs=\"0\" ref=\"mermaid\"/>\n        <xs:element minOccurs=\"0\" ref=\"qrcode\"/>\n        <xs:element minOccurs=\"0\" ref=\"journal\"/>\n        <xs:element minOccurs=\"0\" name=\"worksheet\">\n          <xs:complexType>\n            <xs:group minOccurs=\"0\" ref=\"HeaderFooterElements\"/>\n            <xs:attribute name=\"margin\"/>\n            <xs:attribute name=\"top\"/>\n            <xs:attribute name=\"right\"/>\n            <xs:attribute name=\"bottom\"/>\n            <xs:attribute name=\"left\"/>\n          </xs:complexType>\n        </xs:element>\n      </xs:all>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"chunking\">\n    <xs:complexType>\n      <xs:attribute name=\"level\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"tableofcontents\">\n    <xs:complexType>\n      <xs:attribute name=\"level\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercise-inline\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"ExerciseAttributes\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercise-divisional\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"ExerciseAttributes\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercise-worksheet\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"ExerciseAttributes\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercise-reading\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"ExerciseAttributes\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercise-project\">\n    <xs:complexType>\n      <xs:attributeGroup ref=\"ExerciseAttributes\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"fillin\">\n    <xs:complexType>\n      <xs:attribute name=\"textstyle\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"underline\"/>\n            <xs:enumeration value=\"box\"/>\n            <xs:enumeration value=\"shade\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"mathstyle\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"underline\"/>\n            <xs:enumeration value=\"box\"/>\n            <xs:enumeration value=\"shade\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"watermark\">\n    <xs:complexType mixed=\"true\">\n      <xs:attribute name=\"scale\" use=\"required\" type=\"xs:decimal\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"mermaid\">\n    <xs:complexType>\n      <xs:attribute name=\"theme\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"qrcode\">\n    <xs:complexType>\n      <xs:attribute name=\"image\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"journal\">\n    <xs:complexType>\n      <xs:attribute name=\"name\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:attributeGroup name=\"ExerciseAttributes\">\n    <xs:attribute name=\"statement\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"yes\"/>\n          <xs:enumeration value=\"no\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n    <xs:attribute name=\"hint\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"yes\"/>\n          <xs:enumeration value=\"no\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n    <xs:attribute name=\"answer\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"yes\"/>\n          <xs:enumeration value=\"no\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n    <xs:attribute name=\"solution\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"yes\"/>\n          <xs:enumeration value=\"no\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n  </xs:attributeGroup>\n  <xs:group name=\"HeaderFooterElements\">\n    <xs:sequence>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"first-page-header\"/>\n        <xs:element ref=\"running-header\"/>\n        <xs:element ref=\"first-page-footer\"/>\n        <xs:element ref=\"running-footer\"/>\n      </xs:choice>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"first-page-header\">\n    <xs:complexType>\n      <xs:attribute name=\"left\"/>\n      <xs:attribute name=\"center\"/>\n      <xs:attribute name=\"right\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"running-header\">\n    <xs:complexType>\n      <xs:attribute name=\"left\"/>\n      <xs:attribute name=\"center\"/>\n      <xs:attribute name=\"right\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"first-page-footer\">\n    <xs:complexType>\n      <xs:attribute name=\"left\"/>\n      <xs:attribute name=\"center\"/>\n      <xs:attribute name=\"right\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"running-footer\">\n    <xs:complexType>\n      <xs:attribute name=\"left\"/>\n      <xs:attribute name=\"center\"/>\n      <xs:attribute name=\"right\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"source\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"directories\"/>\n        <xs:element ref=\"version\"/>\n      </xs:choice>\n      <xs:attribute name=\"customizations\"/>\n      <xs:attribute name=\"private-solutions\"/>\n      <xs:attribute name=\"webwork-solutions\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"directories\">\n    <xs:complexType>\n      <xs:attribute name=\"external\" use=\"required\"/>\n      <xs:attribute name=\"generated\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"version\">\n    <xs:complexType>\n      <xs:attribute name=\"include\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"numbering\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"divisions\"/>\n        <xs:element ref=\"blocks\"/>\n        <xs:element ref=\"projects\"/>\n        <xs:element ref=\"equations\"/>\n        <xs:element ref=\"footnotes\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"divisions\">\n    <xs:complexType>\n      <xs:attribute name=\"level\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"chapter-start\" type=\"xs:integer\"/>\n      <xs:attribute name=\"parts-structure\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"decorative\"/>\n            <xs:enumeration value=\"structural\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"blocks\">\n    <xs:complexType>\n      <xs:attribute name=\"level\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"projects\">\n    <xs:complexType>\n      <xs:attribute name=\"level\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"equations\">\n    <xs:complexType>\n      <xs:attribute name=\"level\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"footnotes\">\n    <xs:complexType>\n      <xs:attribute name=\"level\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"latex\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"page\"/>\n        <xs:element ref=\"worksheet\"/>\n        <xs:element ref=\"cover\"/>\n        <xs:element ref=\"asymptote\"/>\n      </xs:choice>\n      <xs:attribute name=\"latex-style\"/>\n      <xs:attribute name=\"print\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"sides\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"one\"/>\n            <xs:enumeration value=\"two\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"open-odd\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"add-blanks\"/>\n            <xs:enumeration value=\"skip-pages\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"font-size\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"9\"/>\n            <xs:enumeration value=\"10\"/>\n            <xs:enumeration value=\"11\"/>\n            <xs:enumeration value=\"12\"/>\n            <xs:enumeration value=\"14\"/>\n            <xs:enumeration value=\"17\"/>\n            <xs:enumeration value=\"20\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"page-ref\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"draft\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"snapshow\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"link-highlight\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"none\"/>\n            <xs:enumeration value=\"underline\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"page\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element minOccurs=\"0\" ref=\"geometry\"/>\n      </xs:sequence>\n      <xs:attribute name=\"right-alignment\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"flush\"/>\n            <xs:enumeration value=\"ragged\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"bottom-alignment\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"flush\"/>\n            <xs:enumeration value=\"ragged\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"crop-marks\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"none\"/>\n            <xs:enumeration value=\"a0\"/>\n            <xs:enumeration value=\"a1\"/>\n            <xs:enumeration value=\"a2\"/>\n            <xs:enumeration value=\"a3\"/>\n            <xs:enumeration value=\"a4\"/>\n            <xs:enumeration value=\"a5\"/>\n            <xs:enumeration value=\"a6\"/>\n            <xs:enumeration value=\"b0\"/>\n            <xs:enumeration value=\"b1\"/>\n            <xs:enumeration value=\"b2\"/>\n            <xs:enumeration value=\"b3\"/>\n            <xs:enumeration value=\"b4\"/>\n            <xs:enumeration value=\"b5\"/>\n            <xs:enumeration value=\"b6\"/>\n            <xs:enumeration value=\"letter\"/>\n            <xs:enumeration value=\"legal\"/>\n            <xs:enumeration value=\"executive\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"geometry\" type=\"xs:string\"/>\n  <xs:element name=\"worksheet\">\n    <xs:complexType>\n      <xs:attribute name=\"formatted\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"cover\">\n    <xs:complexType>\n      <xs:attribute name=\"front\"/>\n      <xs:attribute name=\"back\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"asymptote\">\n    <xs:complexType>\n      <xs:attribute name=\"links\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"html\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"analytics\"/>\n        <xs:element ref=\"asymptote\"/>\n        <xs:element ref=\"baseurl\"/>\n        <xs:element ref=\"calculator\"/>\n        <xs:element ref=\"css\"/>\n        <xs:element ref=\"cross-references\"/>\n        <xs:element ref=\"exercises\"/>\n        <xs:element ref=\"feedback\"/>\n        <xs:element ref=\"index-page\"/>\n        <xs:element ref=\"interactives\"/>\n        <xs:element ref=\"knowl\"/>\n        <xs:group ref=\"NavigationHTML\"/>\n        <xs:element ref=\"platform\"/>\n        <xs:element ref=\"search\"/>\n        <xs:element ref=\"table-of-contents\"/>\n        <xs:element ref=\"video\"/>\n        <xs:group ref=\"WebworkDynamism\"/>\n      </xs:choice>\n      <xs:attribute name=\"design-width\" type=\"xs:integer\"/>\n      <xs:attribute name=\"favicon\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"none\"/>\n            <xs:enumeration value=\"simple\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"short-answer-responses\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"graded\"/>\n            <xs:enumeration value=\"always\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"analytics\">\n    <xs:complexType>\n      <xs:attribute name=\"google-gst\"/>\n      <xs:attribute name=\"statcounter-project\"/>\n      <xs:attribute name=\"statcounter-security\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"baseurl\">\n    <xs:complexType>\n      <xs:attribute name=\"href\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"calculator\">\n    <xs:complexType>\n      <xs:attribute name=\"model\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"geogebra-classic\"/>\n            <xs:enumeration value=\"geogebra-graphing\"/>\n            <xs:enumeration value=\"geogebra-geometry\"/>\n            <xs:enumeration value=\"geogebra-3d\"/>\n            <xs:enumeration value=\"none \"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"activecode\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"python\"/>\n            <xs:enumeration value=\"javascript\"/>\n            <xs:enumeration value=\"html\"/>\n            <xs:enumeration value=\"sql\"/>\n            <xs:enumeration value=\"c\"/>\n            <xs:enumeration value=\"cpp\"/>\n            <xs:enumeration value=\"java\"/>\n            <xs:enumeration value=\"kotlin\"/>\n            <xs:enumeration value=\"python3\"/>\n            <xs:enumeration value=\"octave\"/>\n            <xs:enumeration value=\"none\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"cross-references\">\n    <xs:complexType>\n      <xs:attribute name=\"knowled\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"maximum\"/>\n            <xs:enumeration value=\"never\"/>\n            <xs:enumeration value=\"cross-page\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"css\">\n    <xs:complexType>\n      <xs:attribute name=\"colors\"/>\n      <xs:attribute name=\"style\"/>\n      <xs:attribute name=\"knowls\"/>\n      <xs:attribute name=\"toc\"/>\n      <xs:attribute name=\"banner\"/>\n      <xs:attribute name=\"navbar\"/>\n      <xs:attribute name=\"shell\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"exercises\">\n    <xs:complexType>\n      <xs:attribute name=\"tabbed-tasks\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"divisional\"/>\n            <xs:enumeration value=\"inline\"/>\n            <xs:enumeration value=\"reading\"/>\n            <xs:enumeration value=\"project\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"feedback\">\n    <xs:complexType>\n      <xs:attribute name=\"href\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"index-page\">\n    <xs:complexType>\n      <xs:attribute name=\"ref\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"interactives\">\n    <xs:complexType>\n      <xs:group minOccurs=\"0\" maxOccurs=\"unbounded\" ref=\"InteractiveTypes\"/>\n      <xs:attribute name=\"resize-behavior\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"fixed-height\"/>\n            <xs:enumeration value=\"responsive\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:complexType name=\"InteractiveTypes\">\n    <xs:attribute name=\"resize-behavior\">\n      <xs:simpleType>\n        <xs:restriction base=\"xs:token\">\n          <xs:enumeration value=\"fixed-height\"/>\n          <xs:enumeration value=\"responsive\"/>\n        </xs:restriction>\n      </xs:simpleType>\n    </xs:attribute>\n  </xs:complexType>\n  <xs:group name=\"InteractiveTypes\">\n    <xs:choice>\n      <xs:element ref=\"geogebra\"/>\n      <xs:element ref=\"desmos\"/>\n      <xs:element ref=\"calcplot3d\"/>\n      <xs:element ref=\"circuitjs\"/>\n      <xs:element ref=\"d3\"/>\n      <xs:element ref=\"doenetml\"/>\n      <xs:element ref=\"iframe\"/>\n      <xs:element ref=\"javascript\"/>\n      <xs:element ref=\"jsxgraph\"/>\n      <xs:element ref=\"sage\"/>\n    </xs:choice>\n  </xs:group>\n  <xs:element name=\"geogebra\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"desmos\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"calcplot3d\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"circuitjs\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"d3\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"doenetml\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"iframe\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"javascript\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"jsxgraph\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"sage\" type=\"InteractiveTypes\"/>\n  <xs:element name=\"knowl\">\n    <xs:complexType>\n      <xs:attribute name=\"theorem\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"proof\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"definition\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"example\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"example-solution\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"project\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"task\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"remark\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"objectives\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"outcomes\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"figure\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"table\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"listing\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"list\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"exercise-inline\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"exercise-divisional\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"exercise-worksheet\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"exercise-readingquestion\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"NavigationHTML\">\n    <xs:sequence>\n      <xs:element name=\"navigation\">\n        <xs:complexType>\n          <xs:attribute name=\"logic\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"linear\"/>\n                <xs:enumeration value=\"tree\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute name=\"upbutton\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"yes\"/>\n                <xs:enumeration value=\"no\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"platform\">\n    <xs:complexType>\n      <xs:attribute name=\"host\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"web\"/>\n            <xs:enumeration value=\"runestone\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"portable\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"search\">\n    <xs:complexType>\n      <xs:attribute name=\"variant\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"textbook\"/>\n            <xs:enumeration value=\"reference\"/>\n            <xs:enumeration value=\"none\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"google-cx\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"table-of-contents\">\n    <xs:complexType>\n      <xs:attribute name=\"focused\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"preexpanded-levels\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"0\"/>\n            <xs:enumeration value=\"1\"/>\n            <xs:enumeration value=\"2\"/>\n            <xs:enumeration value=\"3\"/>\n            <xs:enumeration value=\"4\"/>\n            <xs:enumeration value=\"5\"/>\n            <xs:enumeration value=\"6\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"video\">\n    <xs:complexType>\n      <xs:attribute name=\"privacy\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"WebworkDynamism\">\n    <xs:sequence>\n      <xs:element name=\"webwork\">\n        <xs:complexType>\n          <xs:attribute name=\"inline\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"dynamic\"/>\n                <xs:enumeration value=\"static\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute name=\"divisional\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"dynamic\"/>\n                <xs:enumeration value=\"static\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute name=\"reading\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"dynamic\"/>\n                <xs:enumeration value=\"static\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute name=\"worksheet\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"dynamic\"/>\n                <xs:enumeration value=\"static\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n          <xs:attribute name=\"project\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"dynamic\"/>\n                <xs:enumeration value=\"static\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"revealjs\">\n    <xs:complexType>\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n        <xs:element ref=\"appearance\"/>\n        <xs:element ref=\"controls\"/>\n        <xs:group ref=\"NavigationReveal\"/>\n        <xs:element ref=\"resources\"/>\n      </xs:choice>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"appearance\">\n    <xs:complexType>\n      <xs:attribute name=\"theme\" use=\"required\"/>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"controls\">\n    <xs:complexType>\n      <xs:attribute name=\"backarrow\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"faded\"/>\n            <xs:enumeration value=\"hidden\"/>\n            <xs:enumeration value=\"visible\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"display\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"layout\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"edges\"/>\n            <xs:enumeration value=\"bottom-right\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n      <xs:attribute name=\"tutorial\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"yes\"/>\n            <xs:enumeration value=\"no\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"NavigationReveal\">\n    <xs:sequence>\n      <xs:element name=\"navigation\">\n        <xs:complexType>\n          <xs:attribute name=\"mode\" use=\"required\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"default\"/>\n                <xs:enumeration value=\"linear\"/>\n                <xs:enumeration value=\"grid\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n  <xs:element name=\"resources\">\n    <xs:complexType>\n      <xs:attribute name=\"host\" use=\"required\">\n        <xs:simpleType>\n          <xs:restriction base=\"xs:token\">\n            <xs:enumeration value=\"local\"/>\n            <xs:enumeration value=\"cdn\"/>\n          </xs:restriction>\n        </xs:simpleType>\n      </xs:attribute>\n    </xs:complexType>\n  </xs:element>\n  <xs:element name=\"epub\">\n    <xs:complexType>\n      <xs:sequence>\n        <xs:element name=\"cover\">\n          <xs:complexType>\n            <xs:attribute name=\"front\" use=\"required\"/>\n          </xs:complexType>\n        </xs:element>\n      </xs:sequence>\n    </xs:complexType>\n  </xs:element>\n  <xs:group name=\"Webwork\">\n    <xs:sequence>\n      <xs:element name=\"webwork\">\n        <xs:complexType>\n          <xs:attribute name=\"server\" use=\"required\"/>\n          <xs:attribute name=\"course\"/>\n          <xs:attribute name=\"user\"/>\n          <xs:attribute name=\"password\"/>\n          <xs:attribute name=\"task-reveal\">\n            <xs:simpleType>\n              <xs:restriction base=\"xs:token\">\n                <xs:enumeration value=\"preceding-correct\"/>\n                <xs:enumeration value=\"all\"/>\n              </xs:restriction>\n            </xs:simpleType>\n          </xs:attribute>\n        </xs:complexType>\n      </xs:element>\n    </xs:sequence>\n  </xs:group>\n</xs:schema>\n"
  },
  {
    "path": "schema/publication.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<publication>\n    <common>\n        <tableofcontents level=\"1\"/>\n        <chunking level=\"0\"/>\n    </common>\n</publication>\n"
  },
  {
    "path": "schema/xml.xsd",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" elementFormDefault=\"qualified\" targetNamespace=\"http://www.w3.org/XML/1998/namespace\" xmlns:pf=\"https://prefigure.org\">\n  <xs:import schemaLocation=\"pretext.xsd\"/>\n  <xs:import namespace=\"https://prefigure.org\" schemaLocation=\"pf.xsd\"/>\n  <xs:attribute name=\"lang\"/>\n  <xs:attribute name=\"id\"/>\n  <xs:attribute name=\"base\"/>\n</xs:schema>\n"
  },
  {
    "path": "script/README.md",
    "content": "PreTeXt Script Directory\n========================\n\n`mbx`\n-----\n\nA stub replacing an obsolete script, which simply tries to\nexecute the `pretext/pretext` script.  DO NOT USE.\n\n`braille`\n----------\n\nFiles for converting PreTeXt to Braille, see README there.\n\n\n"
  },
  {
    "path": "script/cssbuilder/README.md",
    "content": "# CSS Builder\n\n## Installing Node and Dependencies\n\nYou will need to [install node](https://nodejs.org/en/download/package-manager).\n\nInstall the needed dependencies by switching to the `pretext/script/cssbuilder` and doing `npm install`.\n\n## Use\n\nTo build all targets to `pretext/css/dist`, from the cssbuilder directory do:\n\n```bash\nnpm run build\n```\n\nTo view the help, do:\n\n```bash\nnpm run build -- -h\n```\n\nNote that parameters being passed to the script must come after a `--` or they will be interpreted as parameters for npm itself.\n\nFor debugging, you likely want to build one target by using:\n\n* The `-t` flag to specify a target matching one of the output targets listed in cssbuilder (`theme-salem`, `theme-default-modern`, etc...)\n* The `-o` flag to specify an output directory (generally the `_static/pretext/css` folder of your book)\n* The `-w` flag to specify that you want cssbuilder to \"watch\" the source files and rebuild any time they are changed.\n\nSomething like this:\n\n```bash\nnpm run build -- -t theme-default-modern -o yourbookpath/_static/pretext/css -w'\n```\n\nTo specify options or variables you can add the `-c` flag followed by a string containing JSON like this:\n\n```bash\nnpm run build -- -t theme-default-modern -o ../../examples/sample-article/out/_static/pretext/css -c '{\"options\":{\"color-scheme\":\"blues\", \"primary-color\":\"rgb(80, 30, 80)\"}'\n```\n\nThe options that can be set for a given theme correspond to the variables with default values in that that theme's entry file. For example, theme-salem lists:\n\n```sass\n// light colors\n$color-scheme: 'ice-fire' !default; \n$color-main: null !default;\n$color-do: null !default;\n$color-fact: null !default;\n$color-meta: null !default;\n\n// dark colors\n$primary-color-dark: #9db9d3 !default;\n$background-color-dark: #23241f !default;\n```\n\nSo to override the `color-scheme` and `primary-color-dark` while building theme-salem, you could do:\n\n```bash\nnpm run build -- -t theme-default-modern -o ../../examples/sample-article/out/_static/pretext/css -c '{\"options\":{\"color-scheme\":\"leaves\", \"primary-color-dark\":\"#549676\"}'\n```\n\nFor full help:\n\n```bash\nnpm run build -- -h\n```\n\nAlso see [README.md in css](../../css/README.md)\n"
  },
  {
    "path": "script/cssbuilder/cssbuilder.mjs",
    "content": "import esbuild from 'esbuild';\nimport { sassPlugin } from 'esbuild-sass-plugin';\nimport commandLineArgs from 'command-line-args';\nimport commandLineUsage from 'command-line-usage';\nimport path from 'path';\nimport * as url from 'url';\n\n// Path to pretext/css relative to the pretext/script/cssbuilder directory\nconst __dirname = url.fileURLToPath(new URL('.', import.meta.url));\nconst cssRoot = path.join(__dirname, '../../css/');\n\nfunction getOptions() {\n  const optionDefinitions = [\n    { name: 'output-directory', alias: 'o', type: String },\n    { name: 'watch', alias: 'w', type: Boolean },\n    { name: 'selected-target', alias: 't', type: String },\n    { name: 'config-options', alias: 'c', type: String },\n    { name: 'list-targets', alias: 'l', type: Boolean },\n    { name: 'help', alias: 'h', type: Boolean },\n    { name: 'verbose', alias: 'v', type: Boolean },\n  ]\n  let configs = commandLineArgs(optionDefinitions);\n\n  if (configs['config-options']) {\n    // Convert the JSON string to an object\n    const configOptions = JSON.parse(configs['config-options']);\n    configs['config-options'] = configOptions;\n  }\n\n  return configs;\n}\n\nconst helpContents = [\n  {\n    header: 'PreTeXt CSS Builder',\n    content: 'Generates CSS files for PreTeXt themes. By default, all build targets are built to the css/dist directory.'\n  },\n  {\n    header: 'Options',\n    optionList: [\n      {\n        name: 'config-options',\n        typeLabel: '{underline json-text}',\n        description: 'A string containing a JSON blob with configuration options for the build. This includes variables and options for building a customized version of a theme. This might look like {bold \\'\\\\{\"options\": \\\\{\"primary-color\": \"#801811\", \"primary-color-dark\": \"#801811\", \"secondary-color\": \"#2a5ea4\"\\\\}\\\\}\\'}.',\n      },\n      {\n        name: 'help',\n        description: 'Print this usage guide.',\n        alias: 'h',\n      },\n      {\n        name: 'list-targets',\n        description: 'List all build targets.',\n        alias: 'l',\n      },\n      {\n        name: 'output-directory',\n        description: 'Directory to place output in. Can be absolute or relative to the {bold pretext/script/cssbuilder/} directory.',\n        alias: 'o',\n      },\n      {\n        name: 'selected-target',\n        description: 'Which one target to build. Use {underline list-targets} option to see available targets. If there is an {underline output-directory} set and the target is not a module, the target will be build with the name {bold theme.css} regardless of the input target name.',\n        alias: 't',\n      },\n      {\n        name: 'verbose',\n        description: 'Print extra output.',\n        alias: 'v',\n      },\n      {\n        name: 'watch',\n        description: 'Continuously watch for changes to css/scss and rebuild.',\n        alias: 'w',\n      }\n    ]\n  },\n  {\n    header: 'Usage',\n    content: [\n      {\n        desc: 'Build one or more themes. Note that options must be separated from the command with --.',\n        example: '$ npm run build [-- options...]'\n      },\n      {},\n      {\n        desc: 'Build one target to a specified output directory, rebuilding with any changes.',\n        example: '$ npm run build -- -t theme-default-modern -o /path/to/output -w'\n      },\n    ]\n  },\n]\n\nfunction getOutDir(options) {\n  if (options['output-directory'])\n    return options['output-directory'];\n  else\n    return path.join(cssRoot, 'dist');\n}\n\nfunction getTargets(options) {\n  let targets = [\n    // -------------------------------------------------------------------------\n    // Web targets - pretext assumes output name will be 'theme-XXX'\n    // Legacy targets\n    { out: 'theme-default-legacy', in: path.join(cssRoot, 'targets/html/legacy/default/theme-default.scss')},\n    { out: 'theme-min-legacy', in: path.join(cssRoot, 'targets/html/legacy/min/theme-min.scss')},\n    { out: 'theme-crc-legacy', in: path.join(cssRoot, 'targets/html/legacy/crc/theme-crc.scss')},\n    { out: 'theme-soundwriting-legacy', in: path.join(cssRoot, 'targets/html/legacy/soundwriting/theme-soundwriting.scss')},\n    { out: 'theme-wide-legacy', in: path.join(cssRoot, 'targets/html/legacy/wide/theme-wide.scss')},\n    { out: 'theme-oscarlevin-legacy', in: path.join(cssRoot, 'targets/html/legacy/oscarlevin/theme-oscarlevin.scss')},\n    // -------------------------------------------------------------------------\n    // Modern web targets\n    { out: 'theme-default-modern', in: path.join(cssRoot, 'targets/html/default-modern/theme-default-modern.scss')},\n    { out: 'theme-salem', in: path.join(cssRoot, 'targets/html/salem/theme-salem.scss')},\n    { out: 'theme-denver', in: path.join(cssRoot, 'targets/html/denver/theme-denver.scss') },\n    { out: 'theme-greeley', in: path.join(cssRoot, 'targets/html/greeley/theme-greeley.scss') },\n    { out: 'theme-boulder', in: path.join(cssRoot, 'targets/html/boulder/theme-boulder.scss') },\n    { out: 'theme-tacoma', in: path.join(cssRoot, 'targets/html/tacoma/theme-tacoma.scss') },\n    // -------------------------------------------------------------------------\n    // Non-web targets\n    { out: 'pretext-reveal', in: path.join(cssRoot, 'targets/revealjs/reveal.scss')},\n    { out: 'kindle', in: path.join(cssRoot, 'targets/ebook/kindle/kindle.scss')},\n    { out: 'epub', in: path.join(cssRoot, 'targets/ebook/epub/epub.scss')},\n  ]\n\n  if (options['selected-target']) {\n    // Build the one selected target\n    if(options['selected-target'] !== 'theme-custom') {\n      targets = targets.filter(target => target.out === options['selected-target']);\n    } else {\n      // Custom theme build\n      const configOptions = options['config-options'];\n      // console.log('configOptions', configOptions);\n      if (configOptions && configOptions['options'] && configOptions['options']['entry-point']) {\n        // Custom theme build with output directory\n        targets = [\n          { out: 'theme-custom', in: configOptions['options']['entry-point']}\n        ]\n        // Remove the entry-point from the options so it doesn't get turned into scss variable\n        delete configOptions['options']['entry-point'];\n      } else {\n        // Custom theme build without output directory\n        console.error('Custom theme build requires an entry-point config option. It should be the path to the custom theme SCSS file.');\n        process.exit(1);\n      }\n    }\n\n    if (targets.length === 0) {\n      console.error('Selected target not found');\n      process.exit(1);\n    } else {\n      // Change the output name if an output directory is set (assume we building directly to book)\n      if (options['output-directory']) {\n        const targetName = targets[0].out;\n        if (targetName.includes('modules/')) {\n          // Modules build directly to destination with no subfolder\n          targets[0].out = targets[0].out.replace('modules/', '');\n        } else {\n          // Individual HTML theme files build as theme.css\n          if(targets[0].in.includes(\"theme-\"))\n              targets[0].out = 'theme';\n        }\n      }\n    }\n  }\n\n  return targets;\n}\n\n// Secondary files that are never the primary target but may need to be built with the theme\nfunction getModules(options) {\n  let webModules = [\n    // -------------------------------------------------------------------------\n    // Modules - these are secondary files\n    { out: 'print-worksheet', in: path.join(cssRoot, 'targets/print-worksheet/print-worksheet.scss')}\n  ];\n  // Could be other types of modules here...\n\n  if (!options['selected-target']) {\n    // No particular target, build all\n    return webModules;\n  }\n  else if (options['selected-target'].indexOf('theme-') !== -1) {\n    // Building a web theme, build the web modules\n    return webModules;\n  }\n\n  return [];\n}\n\nasync function getESBuildConfig(options) {\n  const targets = getTargets(options);\n  const modules = getModules(options);\n  const outDir = getOutDir(options);\n  // Only minify if there is only one target\n  // when building all the prebuilt themes to dist, we want to preserve new lines\n  // as the files are going into git\n  const minifyCSS = targets.length === 1;\n  const ctx = await esbuild\n    .context({\n      entryPoints: targets.concat(modules),\n      bundle: true,\n      sourcemap: true,\n      minify: minifyCSS,\n      outdir: outDir,\n      format: 'esm',\n      plugins: [\n        sassPlugin({\n          'loadPaths': [cssRoot],\n          precompile(source, pathname, isRoot) {\n            // If this is root file, add custom variables. Anything else is just passed through\n            if(!isRoot)\n              return source;\n\n            // Tack on any config variables to the top of the file\n            let prefix = '';\n            if (options['selected-target'] && options['config-options']) {\n              for (const [key, value] of Object.entries(options['config-options']['options'])) {\n                prefix += `$${key}: ${value};\\n`;\n              }\n            }\n            return prefix + source;\n          }\n        }),\n      ],\n      metafile: true,\n      logLevel: 'info',\n    });\n  return ctx;\n}\n\n// --------------------------------------------------------------------------\n// Main\nconst options = getOptions();\nif (options['help']) {\n  console.log(commandLineUsage(helpContents));\n} else if (options['list-targets']) {\n  const targets = getTargets({});\n  console.log('Available targets:');\n  for (const target of targets) {\n    console.log(target.out);\n  }\n} else {\n  // Actual build\n  const ctx = await getESBuildConfig(options);\n  if (options['verbose']) console.log(\"CSSBuilder options\", options);\n\n  if (options.watch) {\n    await ctx.watch();\n  } else {\n    await ctx.rebuild();\n    await ctx.dispose();\n    console.log('CSS build complete!');\n  }\n}\n"
  },
  {
    "path": "script/cssbuilder/package.json",
    "content": "{\n  \"name\": \"pretext-cssbuilder\",\n  \"version\": \"1.0.0\",\n  \"description\": \"PreTeXt CSS Builder\",\n  \"main\": \"bundleEntry.js\",\n  \"scripts\": {\n    \"build\": \"node ./cssbuilder.mjs\",\n    \"watch\": \"node ./cssbuilder.mjs --watch\"\n  },\n  \"dependencies\": {\n    \"command-line-args\": \"^6.0.0\",\n    \"command-line-usage\": \"^7.0.3\",\n    \"esbuild\": \"^0.25.0\",\n    \"esbuild-sass-plugin\": \"^3.3.1\"\n  },\n  \"engines\": {\n    \"node\": \">=14.0.0\"\n  }\n}\n"
  },
  {
    "path": "script/dynsub/README.md",
    "content": "# Dynamic Substitutions Extraction\n\nStatic formats of documents that contain exercises with dynamically-defined content\nrequire a method to substitute constant, static values for that content.\nIn order to do this, a script must run the setup for those exercises using\na static seed value.\n\nThe library defining randomized content needs to be made available to this\nscript, which needs to be installed via the node package manager, `npm`.\n\n### `dynamic_extract.mjs`\nA `node` Javascript program that takes a JSON input file containing\ndefinitions the setup of each exercise with dynamically-defined content.\nFor each such exercise, runs the setup and extracts the value of the\nnecessary substitutions.\nSaves the result in an XML output file that will be made available as\na generated file.\n\n### `package.json`\nManages dependencies for npm installs of libraries used in the dynamic definitions.\n"
  },
  {
    "path": "script/dynsub/dynamic_extract.mjs",
    "content": "// Node style of import\nimport { BTM } from 'btm-expressions/src/BTM_root.js';\nimport { RNG } from 'btm-expressions/src/random.js';\nimport { readFileSync, writeFileSync } from 'node:fs';\nimport { parseArgs} from 'node:util';\n\n// Deno style of import\n// import { readFileSync,writeFileSync } from \"node:fs\";\n// import { BTM } from \"npm:btm-expressions/src/BTM_root.js\";\n// import { RNG } from \"npm:btm-expressions/src/random.js\";\n// import { parseArgs } from \"jsr:@std/cli/parse-args\";\n\n// Node parse arguments\nconst {\n  values: { input, output },\n} = parseArgs({\n  options: {\n    input: {\n      type: \"string\",\n      short: \"i\",\n    },\n    output: {\n      type: \"string\",\n      short: \"o\",\n    },\n  },\n});\nconst args = { input: input, output: output };\n\n// Deno parse arguments\n// const args = parseArgs(Deno.args, {\n//     string: [\"input\", \"output\"]\n// });\n\nconst evaluate = function(setup, seed, substitutions) {\n    var my_rng = new RNG({seed: seed});\n    var execFcnStr = \"var v = {};\\n\" + setup + \"return v;\\n\";\n    const execFcn = new Function('BTM', 'rand', 'subs', execFcnStr);\n    return execFcn(BTM, my_rng.rand, substitutions);\n}\n\ntry {\n    const data = readFileSync(args.input, 'utf8');\n    const dynamic_problems = JSON.parse(data);\n    var xmlResponse = \"<xml>\\n\";\n    for (var i in dynamic_problems) {\n        var prob = dynamic_problems[i];\n        if (prob.exercise_id) {\n            var substitutions = {};\n            for (var j in prob.exercise_evals) {\n                var obj = prob.exercise_evals[j];\n                substitutions[obj] = \"\";\n            }\n            xmlResponse += \"  <dynamic-substitution id=\\\"\" + prob.exercise_id + \"\\\">\\n\";\n            var dyn_vars = evaluate(prob.exercise_setup, prob.exercise_seed, substitutions);\n            var subs_keys = Object.keys(substitutions);\n            for (var k in subs_keys) {\n                var key = subs_keys[k];\n                var obj = dyn_vars[key];\n                var obj_str;\n                if (obj.toTeX) {\n                    obj_str = obj.toTeX();\n                } else {\n                    obj_str = obj.toString();\n                }\n                xmlResponse += \"    <eval-subst obj=\\\"\" + key + \"\\\">\" + obj_str + \"</eval-subst>\\n\";\n            }\n            xmlResponse += \"  </dynamic-substitution>\\n\";\n        }\n    }\n    xmlResponse += \"</xml>\";\n    writeFileSync(args.output, xmlResponse, 'utf8');\n} catch (err) {\n    console.error(\"Error creating dynamic substitutions:\", err);\n} \n"
  },
  {
    "path": "script/dynsub/package.json",
    "content": "{\n  \"name\": \"pretext-dynsub-extractor\",\n  \"version\": \"1.0.0\",\n  \"description\": \"PreTeXt Script to Evaluate Dynamic Substitutions\",\n  \"main\": \"dynamic_extract.mjs\",\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n  },\n  \"dependencies\": {\n    \"btm-expressions\": \">=0.1.12\"\n  },\n  \"license\": \"MIT\"\n}\n"
  },
  {
    "path": "script/mbx",
    "content": "#!/usr/bin/env python3\n# ********************************************************************\n# Copyright 2010-2020 Robert A. Beezer\n#\n# This file is part of PreTeXt.\n#\n# PreTeXt is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 2 or version 3 of the\n# License (at your option).\n#\n# PreTeXt is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n# *********************************************************************\n\n# 2020-05-21: this is a quick-and-dirty attempt to provide \n#             backward-compatibility for the old  script/mbx  script\n\nimport os.path, sys, subprocess\n\nmsg = \"\"\"*********************************************************************\n*********************************************************************\nThe  script/mbx  script has been retired and has\nbeen replaced by the  pretext/pretext  script.  You may need\nto give this new script permission to execute.  Furthermore,\nthe stock configuration file, script/mbx.cfg, has moved to\npretext/pretext.cfg, requiring no changes on your part.\nBut if you have a custom configuration file, user/mbx.cfg,\nthen you will need to rename it to user/pretext.cfg.\n\nPRESS A KEY TO ACKNOWLEDGE THIS MESSAGE, and then we will\nattempt to run the new script for you with either a new custom\nconfiguration file, or if unavailable, your old one.\n\nPlease do not rely on this fallback behavior, and please make the\nnecessary changes soon.  We apologize for the inconvenience.\nThank-you.\n\n2020-05-21\n*********************************************************************\n*********************************************************************\"\"\"\n\nprint(msg)  # to inform\ninput()  # to annoy/cripple\n\n# Orient onesself, form replacement script filename\nmbx_file = os.path.abspath(sys.argv[0])\nscript_dir, _ = os.path.split(mbx_file)\ndistribution_dir, _ = os.path.split(script_dir)\nnew_exec = os.path.join(distribution_dir, 'pretext', 'pretext')\n\n# repeat command line, but sub in new script\ncmd = sys.argv\ncmd[0] = new_exec\n\nprint(\"ATTEMPTING new pretext/pretext script with command line:\")\nprint(' '.join(cmd))\nprint(\"2020-05-21:  Please start using the new  pretext/pretext  script!\")\nprint(\"Press any key.  Again.\")\ninput()  # to annoy/cripple\n\nsubprocess.call(cmd)  # to please\n"
  },
  {
    "path": "script/mjsre/README.md",
    "content": "# MathJax (MJ) and Speech Rule Engine (SRE)\n\nOffline support for conversions to EPUB, Kindle, and braille.\n\nRequires installations of MathJax and Speech Rule Engine,\npresumably via the node package manager, `npm`.\n\n### `mj-sre-page`\nA `node` Javascript program to generate representations of \nmathematics as MathML, SVG, braille, and speech.\n\n### `update-sre`\nbash script to mange npm installs, so SRE is not pinned to MJ.\n\n### `package.json`\nManages dependencies for npm installs.\n"
  },
  {
    "path": "script/mjsre/mj-sre-page.js",
    "content": "#! /usr/bin/env node\n\n/*************************************************************************\n *\n *  pretext\n *\n *  Uses MathJax v3 to convert all TeX in an HTML document to forms\n *  needed by PreTeXt\n *\n * ----------------------------------------------------------------------\n *\n *  Copyright (c) 2020 The MathJax Consortium\n *\n *  Licensed under the Apache License, Version 2.0 (the \"License\");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an \"AS IS\" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n\n// Distributed to the PreTeXt project by Davide Cervone, Volker Sorge\n// via https://gist.github.com/dpvc/386e8aac18c010361ef362b9237c71e9\n// AIM braille textbook workshop, 2020-08\n\n//\n//  Load the packages needed for MathJax\n//\nrequire('mathjax-full/js/util/asyncLoad/node.js');\nconst {mathjax} = require('mathjax-full/js/mathjax.js');\nconst {TeX} = require('mathjax-full/js/input/tex.js');\n//  RAB 2021-09-01, MathML only needed for  svgenhanced  mode\nconst {MathML} = require('mathjax-full/js/input/mathml.js');\nconst {SVG} = require('mathjax-full/js/output/svg.js');\nconst {RegisterHTMLHandler} = require('mathjax-full/js/handlers/html.js');\nconst {liteAdaptor} = require('mathjax-full/js/adaptors/liteAdaptor.js');\nconst {STATE, newState} = require('mathjax-full/js/core/MathItem.js');\n//  RAB 2021-09-01, Enrichhandler only needed for  svgenhanced  mode\nconst {EnrichHandler} = require('mathjax-full/js/a11y/semantic-enrich.js');\n\nconst {AllPackages} = require('mathjax-full/js/input/tex/AllPackages.js');\n\n//\n//  Get the command-line arguments\n//\nvar argv = require('yargs')\n    .demand(0).strict()\n    .usage('$0 [options] infile.html > outfile.html')\n    .options({\n      speech: {\n        boolean: true,\n        default: false,\n        describe: 'produce speech output'\n      },\n      braille: {\n        boolean: true,\n        default: false,\n        describe: 'produce braille output'\n      },\n      svg: {\n        boolean: true,\n        default: false,\n        describe: 'produce svg output'\n      },\n      svgenhanced: {\n        boolean: true,\n        default: false,\n        describe: 'produces speech enhanced svg output'\n      },\n      depth: {\n        default: 'shallow',\n        describe: 'The speech depth for SVG elements'\n      },\n      mathml: {\n        boolean: true,\n        default: false,\n        describe: 'produce MathML output'\n      },\n      fontPaths: {\n        boolean: true,\n        default: false,\n        describe: 'use svg paths not cached paths'\n      },\n      em: {\n        default: 16,\n        describe: 'em-size in pixels'\n      },\n      locale: {\n        default: 'en',\n        describe: 'the locale to use for speech output'\n      },\n      packages: {\n        default: AllPackages.sort().join(', '),\n        describe: 'the packages to use, e.g. \"base, ams\"'\n      },\n      rules: {\n        default: 'mathspeak',\n        describe: 'the rule set to use for speech output'\n      }\n    })\n    .argv;\n\nconst needsSRE = argv.speech || argv.braille || argv.svgenhanced;\n\n//\n//  Load SRE if needed for speech or braille\n//\nconst {Sre} = needsSRE ? require('mathjax-full/js/a11y/sre.js') :\n      {Sre: {sreReady: Promise.resolve()}};\n\n//\n//  Read the HTML file\n//\nconst htmlfile = require('fs').readFileSync(argv._[0], 'utf8');\n\n//\n//  Create DOM adaptor and register it for HTML documents\n//\nconst adaptor = liteAdaptor({fontSize: argv.em});\nconst handler = RegisterHTMLHandler(adaptor);\n\n//\n//  Create a MathML serializer\n//\nconst {SerializedMmlVisitor} = require('mathjax-full/js/core/MmlTree/SerializedMmlVisitor.js');\nconst visitor = new SerializedMmlVisitor();\nconst toMathML = (node => visitor.visitTree(node, html));\n\n\n//\n//  Create a renderAction that calls a function for each math item\n//\nfunction action(state, code, setup = null) {\n  return [state, (doc) => {\n    const adaptor = doc.adaptor;\n    setup && setup();\n    for (const math of doc.math) {\n      try {\n        code(math, doc, adaptor);\n      } catch (err) {\n        const id = adaptor.getAttribute(adaptor.parent(math.start.node), 'id');\n        console.error('Error on item ' + id + ': ' + err.message);\n      }\n    }\n  }];\n}\n\n\n//\n//  States for PreTeXt actions\n//\nnewState('PRETEXT', STATE.METRICS + 10);\nnewState('PRETEXTACTION', STATE.PRETEXT + 10);\n\n//\n//  The renderActions to use\n//\nconst renderActions = {\n  //\n  //  An aciton to set up the pretext data array\n  //  and enrich the MathML, if needed\n  //\n  pretext: action(STATE.PRETEXT, (math, doc, adaptor) => {\n    math.outputData.pretext = [adaptor.text('\\n')];\n    if (needsSRE) {\n      math.outputData.mml = toMathML(math.root).toString();\n    }\n  }),\n  //\n  //  Override the typeset action to make the mjx-data element\n  //\n  typeset: action(STATE.TYPESET, (math, doc, adaptor) => {\n    math.typesetRoot = adaptor.node('mjx-data', {}, math.outputData.pretext);\n  })\n};\n\n//\n//  If SVG is requested, add an action to add it to the output\n//\nif (argv.svg) {\n  renderActions.svg = action(STATE.PRETEXTACTION, (math, doc, adaptor) => {\n    math.outputData.pretext.push(adaptor.firstChild(doc.outputJax.typeset(math, doc)));\n    math.outputData.pretext.push(adaptor.text('\\n'));\n  });\n}\n\n//\n//  If SVG is requested, add an action to add it to the output\n//  RAB 2021-09-01,  svgenhanced  mode not being used (yet)\n//\nconst mmldoc = mathjax.document('', {\n  InputJax: new MathML(),\n  OutputJax: new SVG({fontCache: (argv.fontPaths ? 'none' : 'local')}),\n});\nif (argv.svgenhanced) {\n  renderActions.svg = action(STATE.PRETEXTACTION, (math, doc, adaptor) => {\n    let out = mmldoc.convert(Sre.toEnriched(math.outputData.mml).toString());\n    math.outputData.pretext.push(out);\n    math.outputData.pretext.push(adaptor.text('\\n'));\n  }, () => {\n    Sre.setupEngine({speech: argv.depth, modality: 'speech', locale: argv.locale, domain: argv.rules});\n  });\n}\n\n//\n//  If MathML is requested, add an action to add it to the output\n//\nif (argv.mathml) {\n  renderActions.mathml = action(STATE.PRETEXTACTION, (math, doc, adpator) => {\n    const mml = adaptor.firstChild(adaptor.body(adaptor.parse(toMathML(math.root), 'text/html')));\n    math.outputData.pretext.push(mml);\n    math.outputData.pretext.push(adaptor.text('\\n'));\n  });\n}\n\n//\n//  If speech is requested, add an action to add it to the output\n//  and set up the speech engine for speech in the correct locale\n//\nif (argv.speech) {\n  renderActions.speech = action(STATE.PRETEXTACTION, (math, doc, adaptor) => {\n    const speech = Sre.toSpeech(math.outputData.mml);\n    math.outputData.pretext.push(adaptor.node('mjx-speech', {}, [adaptor.text(speech)]));\n    math.outputData.pretext.push(adaptor.text('\\n'));\n  }, () => {\n    Sre.setupEngine({modality: 'speech', locale: argv.locale, domain: argv.rules});\n  });\n}\n\n//\n//  If braille is requested, add an action to add it to the output\n//  and set up the speech engine for nemeth braille\n//\nif (argv.braille) {\n  renderActions.braille = action(STATE.PRETEXTACTION, (math, doc, adaptor) => {\n    const speech = Sre.toSpeech(math.outputData.mml);\n    math.outputData.pretext.push(adaptor.node('mjx-braille', {}, [adaptor.text(speech)]));\n    math.outputData.pretext.push(adaptor.text('\\n'));\n  }, () => {\n    Sre.setupEngine({modality: 'braille', locale: 'nemeth', markup: 'layout', domain: 'default'});\n  });\n}\n\n//\n// Patch MathJax 3.0.5 SVG bug:\n//\nif (mathjax.version === '3.0.5') {\n  const {SVGWrapper} = require('mathjax-full/js/output/svg/Wrapper.js');\n  const CommonWrapper = SVGWrapper.prototype.__proto__;\n  SVGWrapper.prototype.unicodeChars = function (text, variant) {\n    if (!variant) variant = this.variant || 'normal';\n    return CommonWrapper.unicodeChars.call(this, text, variant);\n  }\n}\n\n//\n//  Create an HTML document using the html file and a new TeX input jax\n//\nconst html = mathjax.document(htmlfile, {\n  renderActions,\n  InputJax: new TeX({packages: argv.packages.split(/\\s*,\\s*/)}),\n  OutputJax: new SVG({fontCache: (argv.fontPaths ? 'none' : 'local')})\n});\n\n//\n//  Don't add the stylesheet unless SVG output is requested\n//\nif (!(argv.svg || argv.svgenhanced)) {\n  html.addStyleSheet = () => {};\n}\n\n(async function () {\n  //\n  //  Wait for SRE, if needed\n  //\n  if (needsSRE) {\n    const feature = {\n      xpath: require.resolve('wicked-good-xpath/dist/wgxpath.install-node.js'),\n      json: require.resolve('speech-rule-engine/lib/mathmaps/base.json').replace(/\\/base\\.json$/, '')\n    };\n    Sre.setupEngine(feature);\n    if (argv.braille) {\n      Sre.setupEngine({locale: 'nemeth'});\n    }\n    if (argv.speech || argv.svgenhanced) {\n      Sre.setupEngine({locale: argv.locale});\n    }\n    await Sre.sreReady();\n  }\n  //\n  //  Render the document\n  //\n  await mathjax.handleRetriesFor(() => html.render());\n  //\n  //  Output the resulting document\n  //\n  console.log(adaptor.outerHTML(adaptor.root(html.document)));\n})()\n  .catch((err) => console.error(err));\n"
  },
  {
    "path": "script/mjsre/package.json",
    "content": "{\n  \"dependencies\": {\n    \"mathjax-full\": \"^3.2.2\",\n    \"speech-rule-engine\": \"4.0.7\",\n    \"yargs\": \"^15.4.1\"\n  }\n}\n"
  },
  {
    "path": "script/mjsre/update-sre",
    "content": "#! /bin/bash\n\nrm -rf node_modules\nnpm install\nrm -rf node_modules/mathjax-full/node_modules\n"
  },
  {
    "path": "script/webwork/pg-ptx.pl",
    "content": "#!/usr/bin/env perl\n\nuse Mojo::Base -signatures, -async_await;\nuse Mojo::IOLoop;\nuse Getopt::Long qw(:config bundling);\nuse Mojo::DOM;\nuse Mojo::JSON;\nuse Encode;\n\nuse lib \"$ENV{PG_ROOT}/lib\";\nuse WeBWorK::PG::Localize;\nuse WeBWorK::PG;\n\nmy $pg_root = $ENV{PG_ROOT};\n\nmy ($templateDirectory, $tempDirectory, @extraMacroDirs);\nGetOptions(\n\t'e|externalFileDir=s' => \\$templateDirectory,\n\t't|tempDirectory=s'   => \\$tempDirectory,\n\t'm|extraMacroDir=s'   => \\@extraMacroDirs\n);\n\n$templateDirectory =~ s|/?$|/| if $templateDirectory;\n$tempDirectory     =~ s|/?$|/| if $tempDirectory;\n\nmy %translationOptions = (\n\tshowSolutions       => 1,\n\tshowHints           => 1,\n\tprocessAnswers      => 1,\n\tdisplayMode         => 'PTX',\n\tlanguage_subroutine => WeBWorK::PG::Localize::getLoc('en'),\n\tmacrosPath          => [\n\t\t'.',                     @extraMacroDirs,\n\t\t\"$pg_root/macros\",       \"$pg_root/macros/answers\",\n\t\t\"$pg_root/macros/capa\",  \"$pg_root/macros/contexts\",\n\t\t\"$pg_root/macros/core\",  \"$pg_root/macros/deprecated\",\n\t\t\"$pg_root/macros/graph\", \"$pg_root/macros/math\",\n\t\t\"$pg_root/macros/misc\",  \"$pg_root/macros/parsers\",\n\t\t\"$pg_root/macros/ui\"\n\t],\n\t$templateDirectory ? (templateDirectory => $templateDirectory) : (),\n\t$tempDirectory     ? (tempDirectory     => $tempDirectory)     : ()\n);\n\nMojo::IOLoop->server(\n\t{ path => \"$tempDirectory/pg-ptx.sock\" } => sub ($loop, $stream, $id) {\n\t\t$stream->on(\n\t\t\tread => async sub ($stream, $bytes) {\n\t\t\t\tif (!$bytes || $bytes eq 'quit') {\n\t\t\t\t\t$loop->stop;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tmy $params = Mojo::JSON::decode_json($bytes);\n\n\t\t\t\treturn $stream->write('error: Invalid parameters')\n\t\t\t\t\tunless defined $params->{source} || defined $params->{sourceFilePath};\n\n\t\t\t\tmy $result = await $loop->subprocess->run_p(sub {\n\t\t\t\t\tmy $pg = WeBWorK::PG->new(\n\t\t\t\t\t\t%translationOptions,\n\t\t\t\t\t\tproblemSeed => $params->{problemSeed} // 1234,\n\t\t\t\t\t\t$params->{problemUUID}    ? (problemUUID    => $params->{problemUUID})    : (),\n\t\t\t\t\t\t$params->{sourceFilePath} ? (sourceFilePath => $params->{sourceFilePath}) : (),\n\t\t\t\t\t\t$params->{source}         ? (r_source       => \\($params->{source}))      : ()\n\t\t\t\t\t);\n\n\t\t\t\t\twarn \"errors:\\n$pg->{errors}\"     if $pg->{errors};\n\t\t\t\t\twarn \"warnings:\\n$pg->{warnings}\" if $pg->{warnings};\n\n\t\t\t\t\tmy $dom = Mojo::DOM->new->xml(1);\n\t\t\t\t\tfor my $answer (sort keys %{ $pg->{answers} }) {\n\t\t\t\t\t\t$dom->append_content($dom->new_tag(\n\t\t\t\t\t\t\t$answer,\n\t\t\t\t\t\t\tans_name                 => $pg->{answers}{$answer}{ans_name} // '',\n\t\t\t\t\t\t\tcorrect_ans              => $pg->{answers}{$answer}{correct_ans} // '',\n\t\t\t\t\t\t\tcorrect_ans_latex_string => $pg->{answers}{$answer}{correct_ans_latex_string} // ''\n\t\t\t\t\t\t));\n\t\t\t\t\t}\n\t\t\t\t\t$dom->wrap_content('<answerhashes></answerhashes>');\n\t\t\t\t\tmy $answerhashXML = $dom->to_string;\n\n\t\t\t\t\tmy $xml = \"<webwork>$answerhashXML\\n$pg->{body_text}\\n</webwork>\";\n\n\t\t\t\t\t$pg->free;\n\n\t\t\t\t\treturn $xml;\n\t\t\t\t});\n\n\t\t\t\treturn $stream->write(Encode::encode('UTF-8', \"${result}ENDOFSOCKETDATA\"));\n\t\t\t}\n\t\t);\n\t\t$stream->on(close => sub ($) { $loop->stop });\n\t\t$stream->timeout(0);\n\t}\n);\n\nMojo::IOLoop->start unless Mojo::IOLoop->is_running;\n"
  },
  {
    "path": "xsl/README.md",
    "content": "eXtensible Stylesheet Language (XSL) Stylesheets\n================================================\n\nXSL stylesheets are the primary vehicle for converting PreTeXt XML\nsource into various output formats.  As such, they are sometimes\nsimply called \"conversions.\"  Here we list **some** of the available\nconversions, the list is not exhaustive.  See _The PreTeXt Guide_\nfor detailed documentation of use, in chapters of the part\ntitled _Publisher's Guide_.\n\n* `pretext-latex.xsl` - conversion to LaTeX, which can then\nbe converted to PDF, in print or electronic flavors.\n* `pretext-html.xsl` - conversion to HTML for online use.\n* `pretext-epub.xsl` - conversion to EPUB, which\nrequires significant additional processing.  So this stylesheet\nis not meant to be applied in isolation.  See the `pretext/pretext`\nPython script for an option to initiate the processing pipeline.\n* `pretext-jupyter.xsl` - conversion to Jupyter notebooks.\n* `pretext-revealjs.xsl` - conversion of slideshows to HTML.\n* `pretext-beamer.xsl` - conversion of slideshows to PDF.\n* `pretext-braille.xsl` - conversion to a precursor for braille output, which\nrequires significant further processing.  So this stylesheet\nis not meant to be applied in isolation.  See the `pretext/pretext`\nPython script for an option to initiate the processing pipeline.\n* `pretext-common.xsl` - base templates, and not useful in isolation.\n* `pretext-assembly.xsl` - pre-processing stylesheet, which creates an\nenhanced version of source.  Applied in a controlled way by other stylesheets.\nSee the `utilities\\pretext-enhanced-source.xsl` stylesheet for a demonstration.\n* `extract-*.xsl` - used to isolate particular parts of a PreTeXt\ndocument, typically for subsequent processing by a script.\n\n(Updated: 2020-06-12)\n"
  },
  {
    "path": "xsl/entities.ent",
    "content": "<!-- ********************************************************************* -->\n<!-- Copyright 2016                                                        -->\n<!-- Robert A. Beezer                                                      -->\n<!--                                                                       -->\n<!-- This file is part of MathBook XML.                                    -->\n<!--                                                                       -->\n<!-- MathBook XML is free software: you can redistribute it and/or modify  -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- MathBook XML is distributed in the hope that it will be useful,       -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with MathBook XML.  If not, see <http://www.gnu.org/licenses/>. -->\n<!-- ********************************************************************* -->\n\n<!-- XSLT Cookbook, 2nd Edition                                     -->\n<!-- Copyright 2006, O'Reilly Media, Inc.                           -->\n<!-- Declaration and entity definition format from Recipe 2.8       -->\n<!-- Unicode strings from http://stackoverflow.com/questions/586231 -->\n<!ENTITY UPPERCASE \"'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞŸŽŠŒ'\">\n<!ENTITY LOWERCASE \"'abcdefghijklmnopqrstuvwxyzàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿžšœ'\">\n\n<!-- Some more of our own design -->\n<!ENTITY DIGIT \"'0123456789'\">\n<!ENTITY ALPHABET \"'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'\">\n<!ENTITY SIMPLECHAR \"concat(&DIGIT;,&ALPHABET;)\">\n\n<!-- for match/select -->\n<!ENTITY STRUCTURAL \"book|article|slideshow|letter|memo|frontmatter|part|chapter|appendix|index|preface|acknowledgement|biography|foreword|dedication|colophon|section|subsection|subsubsection|slide|exercises|worksheet|handout|reading-questions|solutions|references|glossary|backmatter\">\n\n<!ENTITY TRADITIONAL-DIVISION \"book|article|part|chapter|section|subsection|subsubsection|appendix\">\n\n<!ENTITY SPECIALIZED-DIVISION \"exercises|worksheet|handout|reading-questions|references|glossary|solutions\">\n\n<!-- for filtering nodes, eg *[&STRUCTURAL-FILTER;], *[not(&STRUCTURAL-FILTER;)] -->\n<!ENTITY STRUCTURAL-FILTER \"self::book or self::article or self::slideshow or self::letter or self::memo or self::frontmatter or self::part or self::chapter or self::appendix or self::index or self::preface or self::acknowledgement or self::biography or self::foreword or self::dedication or self::colophon or self::section or self::subsection or self::subsubsection or self::slide or self::exercises or self::worksheet or self::handout or self::reading-questions or self::solutions or self::references or self::glossary or self::backmatter\">\n\n<!ENTITY TRADITIONAL-DIVISION-FILTER \"self::book or self::article or self::part or self::chapter or self::section or self::subsection or self::subsubsection or self::appendix\">\n\n<!ENTITY SPECIALIZED-DIVISION-FILTER \"self::exercises or self::worksheet or self::handout or self::reading-questions or self::references or self::glossary or self::solutions\">\n\n<!-- NB: (2019-06-12)  Only the two metadata \"filters\" seem to          -->\n<!-- be in use, so only those are being maintained.  grep'ing on        -->\n<!-- METADATA v. METADATA-FILTER, and applying \"wc\" makes this evident. -->\n<!-- (Include this comment in count!)                                   -->\n\n<!-- typical items in blocks that get special treatment -->\n<!ENTITY METADATA \"title|subtitle|caption|idx|index\">\n<!ENTITY METADATA-FILTER \"self::title or self::subtitle or self::caption or self::idx or self::index[not(index-list)]\">\n\n<!-- Subdivisions and runs of paragraphs (like in a proof)  -->\n<!-- contain \"invisible\" items that get killed  and then    -->\n<!-- used/accessed other ways.  To see if something  is     -->\n<!--first, last, preceded, or followed by other significant -->\n<!-- items requires filtering out these items in forming a  -->\n<!-- node-set (so as to not be confused by their presence)  -->\n<!-- A super-lightweight \"article\" might have \"frontmatter\" -->\n<!-- and \"backmatter\" as peers of content elements, and in  -->\n<!-- other cases it should not be a problem                 -->\n<!-- Typical use:  *[not(&SUBDIVISION-METADATA-FILTER;)]    -->\n<!ENTITY SUBDIVISION-METADATA \"title|subtitle|index|notation|todo|frontmatter|backmatter\">\n<!ENTITY SUBDIVISION-METADATA-FILTER \"self::title or self::subtitle or self::idx or self::index[not(index-list)] or self::notation or self::todo or self::frontmatter or self::backmatter\">\n\n<!-- To implement a new category of blocks, search on    -->\n<!-- \"PROJECT-\" (case-sensitive) since we will mark      -->\n<!-- non-obvious locations with the string PROJECT-LIKE  -->\n<!-- as we immplement this on 2016-07-17, other entities -->\n<!-- below will also match this short form               -->\n\n<!-- definition, just a plain statement, but logically distinct -->\n<!ENTITY DEFINITION-LIKE \"definition\">\n<!ENTITY DEFINITION-FILTER \"self::definition\">\n\n<!-- statement + proof -->\n<!ENTITY THEOREM-LIKE \"theorem|corollary|lemma|algorithm|proposition|claim|fact|identity\">\n<!ENTITY THEOREM-FILTER \"self::theorem or self::corollary or self::lemma or self::algorithm or self::proposition or self::claim or self::fact or self::identity\">\n\n<!-- varieties of proofs -->\n<!ENTITY PROOF-LIKE \"proof|argument|justification|reasoning|explanation\">\n<!ENTITY PROOF-FILTER \"self::proof or self::argument or self::justification or self::reasoning or self::explanation\">\n\n<!-- three types of PROOF-LIKE -->\n<!-- in THEOREM-LIKE, detached/standalone, in solutions                                  -->\n<!-- INNER-PROOF-FILTER only used where heading levels are controlled                    -->\n<!-- SOLUTION-PROOF-FILTER used extensively to control LaTeX environments/macros/styling -->\n<!-- standalone/detached is just everything else (in division, or paragraphs, or...)     -->\n<!ENTITY INNER-PROOF-FILTER \"(&PROOF-FILTER;) and (parent::theorem or parent::corollary or parent::lemma or parent::algorithm or parent::proposition or parent::claim or parent::fact or parent::identity)\">\n<!ENTITY SOLUTION-PROOF-FILTER \"(&PROOF-FILTER;) and (ancestor::hint or ancestor::answer or ancestor::solution)\">\n\n<!-- a mathematical statement, but never with a proof -->\n<!ENTITY AXIOM-LIKE \"axiom|conjecture|principle|heuristic|hypothesis|assumption\">\n<!ENTITY AXIOM-FILTER \"self::axiom or self::conjecture or self::principle or self::heuristic or self::hypothesis or self::assumption\">\n\n<!-- narrative, set off for structure, reference -->\n<!ENTITY REMARK-LIKE \"remark|convention|note|observation|warning|insight\">\n<!ENTITY REMARK-FILTER \"self::remark or self::convention or self::note or self::observation or self::warning or self::insight\">\n\n<!-- about computations or technology -->\n<!ENTITY COMPUTATION-LIKE \"computation|technology|data\">\n<!ENTITY COMPUTATION-FILTER \"self::computation or self::technology or self::data\">\n\n<!-- incidental, skippable, lightweight -->\n<!ENTITY ASIDE-LIKE \"aside|biographical|historical\">\n<!ENTITY ASIDE-FILTER \"self::aside or self::biographical or self::historical\">\n\n<!-- blocks, or statement + solution -->\n<!ENTITY EXAMPLE-LIKE \"example|question|problem\">\n<!ENTITY EXAMPLE-FILTER \"self::example or self::question or self::problem\">\n\n<!-- blocks, or statement + solution -->\n<!-- save off lab, laboratory, experiment for science -->\n<!-- NB: update comprehensive list in the Guide with any additions -->\n<!ENTITY PROJECT-LIKE \"project|activity|exploration|investigation\">\n<!ENTITY PROJECT-FILTER \"self::project or self::activity or self::exploration or self::investigation\">\n\n<!-- blocks with meta-information in lists -->\n<!-- TODO: add in \"standards\", \"goals\"     -->\n<!-- NB: update comprehensive list in the Guide with any additions -->\n<!ENTITY GOAL-LIKE \"objectives|outcomes\">\n<!ENTITY GOAL-FILTER \"self::objectives or self::outcomes\">\n\n<!-- Open = research question/problem/conjecture -->\n<!ENTITY OPENPROBLEM-LIKE \"openproblem|openquestion|openconjecture\">\n<!ENTITY OPENPROBLEM-FILTER \"self::openproblem or self::openquestion or self::openconjecture\">\n\n<!-- displays with captions -->\n<!ENTITY FIGURE-LIKE \"figure|table|listing|list\">\n<!ENTITY FIGURE-FILTER \"self::figure or self::table or self::listing or self::list\">\n\n<!-- appendages of examples, exercises, tasks -->\n<!ENTITY SOLUTION-LIKE \"hint|answer|solution\">\n<!ENTITY SOLUTION-FILTER \"self::hint or self::answer or self::solution\">\n\n<!-- appendages of OPENPROBLEM-LIKE -->\n<!ENTITY DISCUSSION-LIKE \"context|discussion|opinion|status|suggestion\">\n<!ENTITY DISCUSSION-FILTER \"self::context or self::discussion or self::opinion or self::status or self::suggestion\">\n\n<!-- When context is an inline \"exercise\", then this condition is      -->\n<!-- true. We are positive, so as new locations of \"exercise\"          -->\n<!-- are added, then this need not change                              -->\n<!-- Typical use: self::exercise and boolean(&INLINE-EXERCISE-FILTER;) -->\n<!ENTITY INLINE-EXERCISE-FILTER \"parent::article|parent::paragraphs|parent::chapter|parent::section|parent::subsection|parent::subsubsection|parent::handout\">\n"
  },
  {
    "path": "xsl/extract-asymptote.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates <asymptote> elements          -->\n<!-- and wraps them for processing by the \"asy\" exectuable -->\n<!-- This includes the LaTeX macros present in docinfo     -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<!-- Output Asymptote code as text -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Asymptote graphics to standalone file           -->\n<!-- Prepend document's macros, otherwise no changes -->\n<xsl:template match=\"asymptote\" mode=\"extraction\">\n    <xsl:variable name=\"filebase\">\n        <xsl:apply-templates select=\".\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <!-- Do not use directories here, as Windows paths will get mangled -->\n    <!-- Instead, set working directory before applying stylesheet      -->\n    <exsl:document href=\"{$filebase}.asy\" method=\"text\">\n        <xsl:text>usepackage(\"amsmath\");&#xa;</xsl:text>\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\">\n                <xsl:value-of select=\"$docinfo/asymptote-preamble\"/>\n            </xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>texpreamble(\"&#xa;</xsl:text>\n        <xsl:value-of select=\"$latex-macros\" />\n        <xsl:text>\");&#xa;&#xa;</xsl:text>\n        <xsl:value-of select=\".\"/>\n    </exsl:document>\n </xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-biblio-csl.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2025 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates video/@youtube elements and -->\n<!-- prepares a Python dictionary necessary to extract a -->\n<!-- thumbnail for each video from the YouTube servers   -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n                xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n                xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n                xmlns:str=\"http://exslt.org/strings\"\n                exclude-result-prefixes=\"str\"\n>\n<!-- exclude-result-prefixes=\"pi\" -->\n\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<!-- Includes \"escape-json-string\"        -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"xml\" indent=\"yes\" encoding=\"UTF-8\"/>\n\n<!-- In \"normal\" circumstances, this variable is   -->\n<!-- set to \"false()\", but when employing this     -->\n<!-- specialized stylesheet, we override to \"true\" -->\n<xsl:variable name=\"b-extracting-biblio\" select=\"true()\"/>\n\n<!-- We create a structured file of bibliographic and citation  -->\n<!-- information from the document.  Following is an outline of -->\n<!-- this structure, likely all in the \"pi\" (PreTeXt Internal)  -->\n<!-- namespace.  This is all subject to change, which may just  -->\n<!-- be cosmetic changes.                                       -->\n<!--                                                            -->\n<!--   <pretext-biblio-csl>                                     -->\n<!--       <biblio-csl>                                         -->\n<!--          [JSON in CSL-JSON format, per \"references\"]       -->\n<!--      </biblio-csl>                                         -->\n<!--      <xref-csl>                                            -->\n<!--          [list of ref pointing to biblio, per xref]        -->\n<!--      </xref-csl>                                           -->\n<!--   </pretext-biblio-csl>                                    -->\n\n<xsl:template match=\"/\">\n    <!-- overall root container for this file -->\n    <xsl:element name=\"pretext-biblio-csl\" namespace=\"http://pretextbook.org/2020/pretext/internal\">\n        <!-- multiple \"references\" divisions, each with their own element -->\n        <!-- only considering backmatter references now                   -->\n        <xsl:apply-templates select=\"$document-root//backmatter/references\" mode=\"biblio-to-json\"/>\n        <!-- Examine every \"xref\" looking for citations;  -->\n        <!-- a pointer, or pointers to \"biblio\".  Record. -->\n        <xsl:apply-templates select=\"$document-root//xref\" mode=\"citations\"/>\n    </xsl:element>\n</xsl:template>\n\n\n\n<!-- The \"biblio-to-json\" template will convert a single \"references\" division (just the           -->\n<!-- \"backmatter\" instance right now) into a single JSON structure in CSL-JSON/citeproc-JSON       -->\n<!-- format.  (Seems both names are in use, we will use the first.)                                -->\n<!-- Note that the names of PreTeXt elements will mimic the names of JSON fields, so we can        -->\n<!-- use the \"local-name()\" function to have a single template cover multiple possibilities.       -->\n<!--                                                                                               -->\n<!-- Overview:                                                                                     -->\n<!-- https://citeproc-js.readthedocs.io/en/latest/csl-json/markup.html                             -->\n<!--                                                                                               -->\n<!-- CSL-JSON/citeproc-JSON:                                                                       -->\n<!-- https://github.com/citation-style-language/schema?tab=readme-ov-file#csl-json-schema          -->\n<!-- https://github.com/citation-style-language/schema/blob/master/schemas/input/csl-data.json     -->\n<!-- https://github.com/citation-style-language/schema/blob/master/schemas/input/csl-citation.json -->\n\n<!-- TODO: expand to multiple \"references\" divisions -->\n\n<!-- First, a catch-all version of the template to intercept un-implemented markup -->\n<!-- TODO: perhaps report content also, as a better assist, or the self/parent/ancestor biblio id -->\n<!-- TODO: refine to include un-implemented bits of \"citeproc-py\" (e/g static-ordering) -->\n<xsl:template match=\"*\" mode=\"biblio-to-json\">\n    <xsl:message>BUG: PreTeXt \"biblio\" markup using a \"<xsl:value-of select=\"local-name()\"/>\" element is not implemented</xsl:message>\n</xsl:template>\n\n<!-- Gross JSON array structure, duplicate an ID for the division -->\n<xsl:template match=\"backmatter/references\" mode=\"biblio-to-json\">\n    <xsl:element name=\"biblio-csl\" namespace=\"http://pretextbook.org/2020/pretext/internal\">\n        <xsl:attribute name=\"biblio-id\">\n            <xsl:apply-templates select=\".\" mode=\"assembly-id\"/>\n        </xsl:attribute>\n        <xsl:text>[&#xa;</xsl:text>\n        <xsl:apply-templates select=\"biblio\" mode=\"biblio-to-json\"/>\n        <xsl:text>&#xa;]</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- Convert each \"biblio\" to an object, assume PreTeXt markup is 100% structured. -->\n<!-- TODO: refine \"select\" to only match to-level possibilities -->\n<xsl:template match=\"biblio\" mode=\"biblio-to-json\">\n    <xsl:text>{&#xa;</xsl:text>\n    <xsl:apply-templates select=\"@xml:id|@type\" mode=\"biblio-to-json\"/>\n    <xsl:apply-templates select=\"*\" mode=\"biblio-to-json\"/>\n     <xsl:text>&#xa;}</xsl:text>\n    <xsl:if test=\"following-sibling::biblio\">\n        <xsl:text>,&#xa;</xsl:text>\n        <!-- intra-biblio visual formatting help -->\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Attributes -->\n<!-- Happy accident that local-name(@xml:id) is JSON \"id\" key for CSL -->\n\n<!-- TODO: are the following attributes in PreTeXt markup? -->\n<!--   citation-key                                        -->\n<!--   categories  (an array.  of?)                        -->\n<!--   language                                            -->\n<!--   journalAbbreviation                                 -->\n<!--   shortTitle                                          -->\n\n<xsl:template match=\"@xml:id|@type\" mode=\"biblio-to-json\">\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text>\"</xsl:text>\n    <xsl:text>: </xsl:text>\n    <xsl:text>\"</xsl:text>\n    <!-- attribute value content -->\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:value-of select=\".\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\",&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Simple string fields to key/value pair -->\n<!-- NB: in the order presented in CSL-JSON schema, except as noted.                  -->\n<!-- NB: simple fields for parts of a name are later, and grouped together.           -->\n<!-- NB: simple fields for alternate date model are at the end, and grouped together. -->\n<!-- TODO: many more, from \"abstract\" to \"year-suffix\", plus for names and dates.     -->\n<xsl:template match=\"publisher|publisher-place|page|volume|title|collection-title|page-first|number-of-pages|URL|name/family|name/given|name/static-ordering|season|circa\" mode=\"biblio-to-json\">\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text>\"</xsl:text>\n    <!-- separator w/ space -->\n    <xsl:text>: </xsl:text>\n    <xsl:text>\"</xsl:text>\n    <!-- plain text content -->\n    <!-- apply-templates for math in titles??? -->\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <!-- convert to a textual representation -->\n            <xsl:apply-templates select=\"node()\" mode=\"xml-to-string\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\"</xsl:text>\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:text>,</xsl:text>\n        <xsl:choose>\n            <!-- top-label get a newline, else a space -->\n            <xsl:when test=\"parent::biblio\">\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text> </xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Name structures -->\n<!-- ############### -->\n\n<!-- Structured name variables. -->\n<!-- TODO: see  \"$ref\": \"#/definitions/name-variable\"  in CSL-JSON -->\n<!-- schema to identify many more.  \"author\" through \"translator\". -->\n<xsl:template match=\"biblio/author|biblio/editor\" mode=\"biblio-to-json\">\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text>\"</xsl:text>\n    <xsl:text>: </xsl:text>\n    <xsl:text>[</xsl:text>\n    <xsl:apply-templates select=\"name\" mode=\"biblio-to-json\"/>\n    <xsl:text>]</xsl:text>\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:text>,&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Name structure -->\n<xsl:template match=\"biblio/*/name\" mode=\"biblio-to-json\">\n    <xsl:text>{</xsl:text>\n    <!-- Name content model includes simple fields like -->\n    <!--     family, given, suffix, etc.                -->\n    <!-- They will use the simple template above, where -->\n    <!-- fields are qualified with the \"name\" parent    -->\n    <xsl:apply-templates select=\"*\" mode=\"biblio-to-json\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:if test=\"following-sibling::name\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Date structures -->\n<!-- ############### -->\n\n<!-- Structured date variables. -->\n<!-- TODO: see  \"$ref\": \"#/definitions/date-variable\"  in CSL-JSON -->\n<!-- schema to identify many more. \"accessed\" through \"submitted\". -->\n<xsl:template match=\"submitted|issued\" mode=\"biblio-to-json\">\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text>\"</xsl:text>\n    <xsl:text>: </xsl:text>\n    <xsl:text>{&#xa;</xsl:text>\n    <xsl:if test=\"date\">\n    <!-- Outer array structure, even if singleton -->\n        <xsl:text>\"date-parts\": </xsl:text>\n        <xsl:text>[</xsl:text>\n        <xsl:apply-templates select=\"date\" mode=\"biblio-to-json\"/>\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;}</xsl:text>\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:text>,</xsl:text>\n        <xsl:choose>\n            <!-- likely always first test? -->\n            <xsl:when test=\"parent::biblio\">\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text> </xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- An array of length 1 to 3, with spaces after commas -->\n<xsl:template match=\"date\" mode=\"biblio-to-json\">\n    <xsl:text>[</xsl:text>\n    <xsl:if test=\"@year\">\n        <xsl:value-of select=\"@year\"/>\n    </xsl:if>\n    <xsl:if test=\"@month\">\n        <xsl:text>, </xsl:text>\n        <xsl:value-of select=\"@month\"/>\n    </xsl:if>\n    <xsl:if test=\"@day\">\n        <xsl:text>, </xsl:text>\n        <xsl:value-of select=\"@day\"/>\n    </xsl:if>\n    <xsl:text>]</xsl:text>\n    <xsl:if test=\"following-sibling::date\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ######### -->\n<!-- Citations -->\n<!-- ######### -->\n\n<xsl:template match=\"xref\" mode=\"citations\">\n    <!-- xref/@ref may point to a (backmatter) \"biblio\" -->\n    <!-- Or it may point to *several* \"biblio\"          -->\n    <!-- Allow commas or spaces for separators          -->\n    <!-- tokenize() has no root; a sequence of \"token\"  -->\n    <xsl:variable name=\"tokenized-biblio-ref\" select=\"str:tokenize(@ref, ' ,')\"/>\n    <!-- list of @ref values that have been vetted         -->\n    <!-- preliminary, may be null, may have trailing space -->\n    <xsl:variable name=\"citation-item-list-prelim\">\n        <xsl:for-each select=\"$tokenized-biblio-ref\">\n            <xsl:variable name=\"the-ref\">\n                <xsl:value-of select=\".\"/>\n            </xsl:variable>\n            <!-- context switch so id() function works -->\n            <xsl:for-each select=\"$original\">\n                <xsl:variable name=\"target\" select=\"id($the-ref)\"/>\n                <!-- vet each @ref value, only backmatter is considered -->\n                <xsl:if test=\"$target/self::biblio/parent::references/parent::backmatter\">\n                    <xsl:value-of select=\"$the-ref\"/>\n                    <xsl:text> </xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- normalizing will scrub final space, if non-empty -->\n    <xsl:variable name=\"citation-item-list\"\n                  select=\"normalize-space($citation-item-list-prelim)\"/>\n    <!-- the \"xref\" might be some other cross-reference -->\n    <xsl:if test=\"not($citation-item-list = '')\">\n        <!-- only visual, for debugging, etc. -->\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:element name=\"xref-csl\" namespace=\"http://pretextbook.org/2020/pretext/internal\">\n            <!-- namespacing the attribute is sort of ugly -->\n            <xsl:attribute name=\"id\">\n                <xsl:value-of select=\"@assembly-id\"/>\n            </xsl:attribute>\n            <xsl:value-of select=\"$citation-item-list\"/>\n        </xsl:element>\n    </xsl:if>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-datafile.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates instance of binary files in   -->\n<!-- need of base64 (textual) representations, basically   -->\n<!-- the first step in a translation from \"external\" files -->\n<!-- to \"generated\" files                                  -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- The default \"exercise-style\" is \"static\". For data files, -->\n<!-- we will form a different representation, and pass through -->\n<!-- the authored version for a dynamic representation.        -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- Note: identifiers from @label on enclosing \"datafile\" -->\n\n<!-- One line per file; an id to coordinate use      -->\n<!-- and a path within the \"extrnal\" directory tree. -->\n<!-- First: image files in a \"datafile\" element      -->\n<!-- Second: text files given by external file       -->\n<xsl:template match=\"datafile/image|datafile/pre[@source]\" mode=\"extraction\">\n    <!-- 1. identifier -->\n    <xsl:apply-templates select=\"..\" mode=\"assembly-id\" />\n    <xsl:text> </xsl:text>\n    <!-- 2. Type from element used (image, pre) -->\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> </xsl:text>\n    <!-- 3. path relative to external directory   -->\n    <!--    only from files, always has a @source -->\n    <xsl:value-of select=\"@source\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-dynamic.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates exercise elements that have  -->\n<!-- dynamic content. Create a standalone page for each.  -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./pretext-html.xsl\"/>\n<xsl:import href=\"./pretext-runestone-fitb.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<!-- We need to alert the pretext-assembly.xsl stylesheet     -->\n<!-- that it is being used in the very specific instance      -->\n<!-- of extracting these objects for processing externally,   -->\n<!-- with results collected in additional files, for          -->\n<!-- consultation/collection in a more general use of this    -->\n<!-- stylesheet for the purpose of actually building a useful -->\n<!-- output format.  This variable declaration here overrides -->\n<!-- the default setting of \"false\" in pretext-assembly.xsl.  -->\n<!-- Look there for a more comprehensive discussion of the    -->\n<!-- necessity of this scheme.                                -->\n<xsl:variable name=\"b-extracting-fitb\" select=\"true()\"/>\n\n<xsl:variable name=\"b-dynamics-static-seed\" select=\"true()\"/>\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- The  pretext-assembly.xsl  stylesheet is parameterized to create  -->\n<!-- representations of interactive exercises in final \"static\"        -->\n<!-- versions or precursor \"dynamic\" versions.  The conversion to HTML -->\n<!-- is the motivation for this parameterization.  See the definition  -->\n<!-- of this variable in  pretext-assembly.xsl  for more detail.       -->\n<!--                                                                   -->\n<!-- Conversions that build on HTML, but produce formats incapable     -->\n<!-- (braille) or unwilling (EPUB, Jupyter) to employ Javascript, or   -->\n<!-- similar, need to override this variable back to \"static\".         -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- exercise/setup indicates the exercise will     -->\n<!-- require Runestone and javascript to generate   -->\n<!-- the content.                                   -->\n<!-- Stylesheet output is text, with \"visible-id\"   -->\n<!-- of each exercise, one per line, to be captured -->\n<!-- captured in a text file to guide snapshotting  -->\n<!-- Make the standalone page for each exercise     -->\n<!-- with an indication that the exercise uses the  -->\n<!-- static seed.  Results are HTML files           -->\n<!-- (despite this stylesheet having text output).  -->\n<xsl:template match=\"*\" mode=\"extraction-wrapper\">\n    <xsl:text>[ { \"exercise_id\": null }</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"extraction\"/>\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"exercise[@exercise-interactive='fillin' and setup]\n                    | project[@exercise-interactive='fillin' and setup]\n                    | activity[@exercise-interactive='fillin' and setup]\n                    | exploration[@exercise-interactive='fillin' and setup]\n                    | investigation[@exercise-interactive='fillin' and setup]\n                    | exercise//task[@exercise-interactive='fillin' and setup]\n                    | project//task[@exercise-interactive='fillin' and setup]\n                    | activity//task[@exercise-interactive='fillin' and setup]\n                    | exploration//task[@exercise-interactive='fillin' and setup]\n                    | investigation//task[@exercise-interactive='fillin' and setup]\"\n                    mode=\"extraction\">\n    <xsl:text>,&#xa;</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:text>  \"exercise_id\": \"</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n    <xsl:text>\",&#xa;</xsl:text>\n    <xsl:text>  \"exercise_setup\": </xsl:text>\n    <xsl:call-template name=\"dynamic-setup\" />\n    <xsl:text>,&#xa;</xsl:text>\n    <xsl:text>  \"exercise_seed\": \"</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"setup[@seed]\">\n            <xsl:value-of select=\"setup/@seed\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>1234</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\",&#xa;</xsl:text>\n    <xsl:text>  \"exercise_evals\": [</xsl:text>\n    <xsl:for-each select=\"(statement|solution)//eval[@obj]|evaluation//feedback//eval[@obj]|statement//fillin[@ansobj]\">\n        <xsl:if test=\"position() > 1\">\n            <xsl:text>, </xsl:text>\n        </xsl:if>\n        <xsl:choose>\n            <xsl:when test=\"@obj\">\n                <xsl:text>\"</xsl:text>\n                <xsl:value-of select=\"@obj\"/>\n                <xsl:text>\"</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@ansobj\">\n                <xsl:text>\"</xsl:text>\n                <xsl:value-of select=\"@ansobj\"/>\n                <xsl:text>\"</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:for-each>\n    <xsl:text>]</xsl:text>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-identity.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet does nothing but traverse the tree         -->\n<!-- Possibly restricting to a subtree based on xml:id          -->\n<!-- An importing stylesheet can concentrate on a specific task -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n\n<xsl:import href=\"./publisher-variables.xsl\" />\n<xsl:import href=\"./pretext-assembly.xsl\" />\n\n<!-- We do not specify an output method since nothing gets output from here -->\n\n<!-- This template provides several related templates.                    -->\n<!-- See further notes prior to each one.                                 -->\n<!--                                                                      -->\n<!-- 1.  It provides an entry template.                                   -->\n<!--                                                                      -->\n<!-- At the document root (after assembly) or at the root of some subtree -->\n<!-- passed in and indicated by an xml:id for that root.  So a stylesheet -->\n<!-- that uses this stylesheet must import this utility stylesheet *last* -->\n<!-- so that any entry template of some conversion is overridden.         -->\n<!--                                                                      -->\n<!--                                                                      -->\n<!-- 2.  It establishes a tree walker with mode \"extraction\".             -->\n<!--                                                                      -->\n<!-- The modal template here walks the tree and does *nothing* at each    -->\n<!-- node, but descend into children and attributes.  So a consuming      -->\n<!-- stylesheet can provide its own \"extraction\" templates to interrupt   -->\n<!-- this giant no-op and do something interesting.  Note that this modal -->\n<!-- template allows plain/generic templates from established conversions -->\n<!-- to be employed, and conceivably overridden, without disturbing the   -->\n<!-- tree walk.                                                           -->\n<!--                                                                      -->\n<!--                                                                      -->\n<!-- 3.  A template provides for one-time lead-in/lead-out material       -->\n<!-- General an \"extraction\" will make a list of similar items.  But      -->\n<!-- there may need to be header/footer material, or some sort of         -->\n<!-- overall enclosure of the list.  This template can be implemented     -->\n<!-- to accomplish that.                                                  -->\n\n<!-- 2020-05-19: This general-purpose template formerly obtained a      -->\n<!-- \"scratch directory\" where intermediate results might be processed. -->\n<!-- But if a pathname, in Windows syntax, was passed in, then the      -->\n<!-- slashes all got butchered.  Better to set a working directory      -->\n<!-- and have \"extracttion\" worksheets write files, sans paths, into    -->\n<!-- that directory.  We leave a warning behind if there is an attempt  -->\n<!-- to set this, which will likely be something overlooked in a        -->\n<!-- calling script. -->\n<xsl:param name=\"scratch\" select=\"''\"/>\n\n<!-- The xml:id of an element to use as the root                -->\n<!-- no \"subtree\" stringparam denotes starting at document root -->\n<xsl:param name=\"subtree\" select=\"''\" />\n\n<!-- Entry template, allows restriction to a subtree rooted at an element  -->\n<!-- identified by an author-supplied xml:id. This template is not meant   -->\n<!-- to be overridden by an importing stylesheet, though it can be with a  -->\n<!-- use of \"xsl:apply-imports\".  Instead it is meant to be the entry      -->\n<!-- template for an importing stylesheet, which will usually mean it      -->\n<!-- should be imported last.  It provides for careful handling of the     -->\n<!-- alternate subtree root.                                               -->\n<xsl:template match=\"/\">\n    <!-- Fail if a scratch directory is set -->\n    <xsl:if test=\"not($scratch = '')\">\n        <xsl:message terminate=\"yes\">PTX:FATAL:   scratch directory provided (\"<xsl:value-of select=\"$scratch\" />\") which is not supported.  Please report the circumstances revealing this mistake.  Quitting...</xsl:message>\n    </xsl:if>\n    <xsl:choose>\n        <xsl:when test=\"$subtree=''\">\n            <xsl:apply-templates select=\"$root\" mode=\"extraction-wrapper\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- Context is root of *original* source as we are in the entry template. -->\n            <!-- The \"for-each\" allows a switch to the duplicate (assembled) source,   -->\n            <!-- so the id() function scans the enhanced tree.                         -->\n            <xsl:for-each select=\"$root\">\n                <xsl:variable name=\"subtree-root\" select=\"id($subtree)\"/>\n                <xsl:if test=\"not($subtree-root)\">\n                    <xsl:message terminate=\"yes\">PTX:FATAL:   xml:id provided (\"<xsl:value-of select=\"$subtree\"/>\") for restriction to a subtree does not exist.  Quitting...</xsl:message>\n                </xsl:if>\n                <xsl:apply-templates select=\"$subtree-root\" mode=\"extraction-wrapper\"/>\n            </xsl:for-each>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- This template will always be applied with the context being the      -->\n<!-- \"real\" root, or the optional \"subtree\" root.  See applications in    -->\n<!-- the entry template.  The implementation here does nothing, but to    -->\n<!-- initiate the \"extraction\" walker.  This can be optionally overridden -->\n<!-- where the model would be:                                            -->\n<!--                                                                      -->\n<!--    <xsl:template match=\"*\" mode=\"extraction-wrapper\">                -->\n<!--        [do some header, lead-in, and/or set-up, here]                -->\n<!--        <xsl:apply-imports/>                                          -->\n<!--        [do some footer, lead-out, and/or wrap-up, here]              -->\n<!--    </xsl:template>                                                   -->\n<!--                                                                      -->\n<!-- See the \"extract-interactive.xsl\" stylesheet for a simple example.   -->\n<!-- Note that if the extra material needs to come from some other        -->\n<!-- context, the global variables  $root  and  $document-root  should be -->\n<!-- available to initiate a path to some location of interest.           -->\n<xsl:template match=\"*\" mode=\"extraction-wrapper\">\n    <xsl:apply-templates select=\".\" mode=\"extraction\"/>\n</xsl:template>\n\n<!-- This template traverses the tree, from the provided root, looking       -->\n<!-- for something to do.  As defined here, it does nothing.  An importing   -->\n<!-- stylesheet will define this template for items of interest, providing   -->\n<!-- the desired results.  Note that any such definition should (a) continue -->\n<!-- the recursion, or (b) knowingly dead-end and not recurse further.       -->\n<!-- http://stackoverflow.com/questions/3776333/stripping-all-elements-except-one-in-xml-using-xslt -->\n<xsl:template match=\"@*|node()\" mode=\"extraction\">\n    <xsl:apply-templates select=\"@*|node()\" mode=\"extraction\"/>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-interactive.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates video/@youtube elements and -->\n<!-- prepares a Python dictionary necessary to extract a -->\n<!-- thumbnail for each video from the YouTube servers   -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n<xsl:import href=\"./pretext-html.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Avoid Catch-22: default assembly/pre-processor providews output     -->\n<!-- for a conversion to a static format, but that format will *replace* -->\n<!-- \"video\" by a static version (a \"sidebyside\") and it will not be     -->\n<!-- available for extraction.                                           -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- @preview indicates custom image is present    -->\n<!-- Stylesheet output is text, with \"visible-id\"  -->\n<!-- of each interactive, one per line, to be      -->\n<!-- captured in a text file to guide snapshotting -->\n<!-- Make the iframe and standalone page for each  -->\n<!-- interactive, these are two of the three steps -->\n<!-- in the non-modal template for \"interactive\"   -->\n<!-- in pretext-html.xsl.  Results are HTML files  -->\n<!-- (despite this stylesheet having text output). -->\n<xsl:template match=\"interactive[not(@preview)]\" mode=\"extraction\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n    <xsl:text>&#xa;</xsl:text>\n    <!-- (2) Identical content, but now isolated on a reader-friendly page -->\n    <!-- The standalone page has its own masthead h1, so headings inside   -->\n    <!-- start fresh at h2.  Mirrors the standalone-page invocation in     -->\n    <!-- the \"interactive\" template of pretext-html.xsl.                   -->\n    <xsl:apply-templates select=\".\" mode=\"standalone-page\" >\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".\" mode=\"interactive-core\">\n                <xsl:with-param name=\"is-standalone\" select=\"true()\"/>\n                <xsl:with-param name=\"heading-level\" select=\"2\"/>\n            </xsl:apply-templates>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- (3) A simple page that can be used in an iframe construction -->\n    <xsl:apply-templates select=\".\" mode=\"create-iframe-page\" />\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-latex-image.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates <latex-image> elements    -->\n<!-- and wraps them for LaTeX processing               -->\n<!-- This includes the LaTeX macros present in docinfo -->\n<!-- and the $latex-image-preamble from common.        -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"pi exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- We use some common code to make the actual LaTeX code used      -->\n<!-- for the image.  The extract-identity stylesheet will override   -->\n<!-- the entry template, so we just access some templates as needed. -->\n<xsl:import href=\"./pretext-latex.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<!-- Output LaTeX as text -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- LaTeX graphics to a standalone file for subsequent processing.     -->\n<!-- Intercept \"extraction\" process in extract-identity.xsl stylesheet. -->\n<xsl:template match=\"image[latex-image]\" mode=\"extraction\">\n    <xsl:variable name=\"filebase\">\n        <xsl:apply-templates select=\"latex-image\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <!-- Do not use directories here, as Windows paths will get mangled -->\n    <!-- Instead, set working directory before applying stylesheet      -->\n    <exsl:document href=\"{$filebase}.tex\" method=\"text\">\n        <xsl:text>\\documentclass[</xsl:text>\n        <xsl:value-of select=\"$font-size\" />\n        <xsl:text>]{</xsl:text>\n        <xsl:value-of select=\"$document-class-prefix\" />\n        <xsl:text>article}&#xa;</xsl:text>\n        <xsl:text>\\usepackage{geometry}&#xa;</xsl:text>\n        <!-- Determine height of text block, assumes US letterpaper (11in height) -->\n        <!-- Could react to document type, paper, margin specs                    -->\n        <xsl:variable name=\"text-height\">\n            <xsl:text>9.0in</xsl:text>\n        </xsl:variable>\n        <!-- Bringhurst: 30x => 66 chars, so 34x => 75 chars -->\n        <xsl:variable name=\"text-width\">\n            <xsl:value-of select=\"34 * substring-before($font-size, 'pt')\" />\n            <xsl:text>pt</xsl:text>\n        </xsl:variable>\n        <!-- (These are actual TeX comments in the main document's LaTeX output) -->\n        <!-- Text height identically 9 inches, text width varies on point size   -->\n        <!-- See Bringhurst 2.1.1 on measure for recommendations                 -->\n        <!-- 75 characters per line (count spaces, punctuation) is target        -->\n        <!-- which is the upper limit of Bringhurst's recommendations            -->\n        <xsl:text>\\geometry{letterpaper,total={</xsl:text>\n        <xsl:value-of select=\"$text-width\" />\n        <xsl:text>,</xsl:text>\n        <xsl:value-of select=\"$text-height\" />\n        <xsl:text>}}&#xa;</xsl:text>\n        <xsl:text>%% Custom Page Layout Adjustments (use publisher page-geometry)&#xa;</xsl:text>\n        <xsl:if test=\"$latex-page-geometry != ''\">\n            <xsl:text>\\geometry{</xsl:text>\n            <xsl:value-of select=\"$latex-page-geometry\" />\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:text>\\usepackage{amsmath,amssymb}&#xa;</xsl:text>\n        <xsl:value-of select=\"$latex-image-preamble\"/>\n        <xsl:text>\\ifdefined\\tikzset&#xa;</xsl:text>\n        <xsl:text>\\tikzset{ampersand replacement = \\amp}&#xa;</xsl:text>\n        <xsl:text>\\fi&#xa;</xsl:text>\n        <xsl:value-of select=\"$latex-macros\" />\n        <xsl:text>\\begin{document}&#xa;</xsl:text>\n        <xsl:text>\\pagestyle{empty}&#xa;</xsl:text>\n        <!-- The \"latex-image\" template is in  pretext-latex.xsl      -->\n        <xsl:variable name=\"the-latex-image\">\n            <xsl:apply-templates select=\"latex-image\"/>\n        </xsl:variable>\n        <!-- NB: this spurious box is designed to make           -->\n        <!-- processing here match more closely what happens in  -->\n        <!-- a PDF build, where an image is scrunched into a     -->\n        <!-- functional resizing box of given width and          -->\n        <!-- preserved aspect-ratio.                             -->\n        <xsl:text>\\resizebox{\\width}{\\height}{&#xa;</xsl:text>\n        <xsl:value-of select=\"$the-latex-image\"/>\n        <xsl:text>}&#xa;</xsl:text>\n         <xsl:text>\\end{document}&#xa;</xsl:text>\n    </exsl:document>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-mermaid.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates video/@youtube elements and -->\n<!-- prepares a Python dictionary necessary to extract a -->\n<!-- thumbnail for each video from the YouTube servers   -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<xsl:template match=\"mermaid\" mode=\"extraction\">\n    <xsl:variable name=\"filebase\">\n        <xsl:apply-templates select=\".\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n\n    <exsl:document href=\"{$filebase}.mmd\" method=\"text\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    </exsl:document>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-mom.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates video/@youtube elements and -->\n<!-- prepares a Python dictionary necessary to extract a -->\n<!-- thumbnail for each video from the YouTube servers   -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- We need to alert the pretext-assembly.xsl stylesheet     -->\n<!-- that it is being used in the very specific instance      -->\n<!-- of extracting these objects for processing externally,   -->\n<!-- with results collected in additional files, for          -->\n<!-- consultation/collection in a more general use of this    -->\n<!-- stylesheet for the purpose of actually building a useful -->\n<!-- output format.  This variable declaration here overrides -->\n<!-- the default setting of \"false\" in pretext-assembly.xsl.  -->\n<!-- Look there for a more comprehensive discussion of the    -->\n<!-- necessity of this scheme.                                -->\n<xsl:variable name=\"b-extracting-mom\" select=\"true()\"/>\n\n<!-- One problem id per line -->\n<xsl:template match=\"myopenmath[@problem]\" mode=\"extraction\">\n    <xsl:value-of select=\"@problem\" />\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-pg.xsl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- ********************************************************************* -->\n<!-- Copyright 2015-7                                                      -->\n<!-- Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             -->\n<!--                                                                       -->\n<!-- This file is part of PreTeXt.                                         -->\n<!--                                                                       -->\n<!-- PreTeXt is free software: you can redistribute it and/or modify       -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- PreTeXt is distributed in the hope that it will be useful,            -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.      -->\n<!-- ********************************************************************* -->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    extension-element-prefixes=\"str\"\n    exclude-result-prefixes=\"pi\"\n>\n\n<!-- This style sheet is intended to be used by pretext.py. It makes an    -->\n<!-- ephemeral XML tree with data about each webwork exercise in the PTX   -->\n<!-- project. This ephemeral tree also has some global publisher variable  -->\n<!-- data for how PG should be processed. This tree will be used by        -->\n<!-- pretext.py in conjuction with some form of renderer (webwork2, local  -->\n<!-- PG, or the standalone renderer) to write, for each webwork exercise,  -->\n<!-- a file of representations of that problem (named by @assembly-id).    -->\n\n<!-- The top of the ephemeral XML tree has some global attributes.         -->\n\n<!-- Then for each exercise, we record:                                    -->\n<!-- 1.  origin: there are two possible values                             -->\n<!--        \"generated\" (it was authored in PTX)                           -->\n<!--        \"webwork2\" (it is a pg file accessible from a webwork2 host    -->\n<!--            course's templates folder indicated by @source on the      -->\n<!--            webwork element)                                           -->\n<!-- 1b. if it is copied, what is an id from which it was copied?          -->\n<!-- 2.  a seed for randomization                                          -->\n<!-- 3.  path: a file path to a .pg version of the problem                 -->\n<!--         path-defined-by-document-structure                            -->\n<!--         path-defined-by-@source                                       -->\n<!-- 4.  pghuman: human readable PG (for generated exercises only)         -->\n<!-- 5.  PG that is somewhat minimized (and less human-readable)           -->\n\n<!-- The pretext/pretext script (-c webwork) uses all this to write, for   -->\n<!-- each webwork exercise, an XML file of representations of that problem -->\n<!-- (named by @assembly-id). The script must be re-run whenever the       -->\n<!-- author source for a webwork exercise, a .pg file, or some             -->\n<!-- configuration changes.                                                -->\n\n<!-- Then other translation sheets' assembly phase will read the per-      -->\n<!-- exercise representation file for each webwork exercise.               -->\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<!-- We need to alert the pretext-assembly.xsl stylesheet     -->\n<!-- that it is being used in the very specific instance      -->\n<!-- of extracting these objects for processing externally,   -->\n<!-- with results collected in additional files, for          -->\n<!-- consultation/collection in a more general use of this    -->\n<!-- stylesheet for the purpose of actually building a useful -->\n<!-- output format.  This variable declaration here overrides -->\n<!-- the default setting of \"false\" in pretext-assembly.xsl.  -->\n<!-- Look there for a more comprehensive discussion of the    -->\n<!-- necessity of this scheme.                                -->\n<xsl:variable name=\"b-extracting-pg\" select=\"true()\"/>\n\n<!-- Output XML to be read in by Python -->\n<xsl:output method=\"xml\" encoding=\"UTF-8\" />\n\n<!-- ######### -->\n<!-- Variables -->\n<!-- ######### -->\n\n<!-- Enable answer format syntax help links. Each answer blank can have a  -->\n<!-- \"category\" attribute, like \"integer\" or \"formula\". If these are       -->\n<!-- present and this param is 'yes', answer blank fields in HTML are      -->\n<!-- followed with a link to syntax help.                                  -->\n<!-- TODO: in order to omit all answer help links globally, the ptx script -->\n<!-- needs a switch so that it can pass 'no' to this param.                -->\n<xsl:param name=\"pg.answer.form.help\" select=\"'yes'\" />\n\n<!-- This is cribbed from the CSS \"max-width\".  Design width, in pixels.   -->\n<!-- NB: the exact same value, for similar, but not identical, reasons is  -->\n<!-- used in the formation of WeBWorK problems                             -->\n<xsl:variable name=\"design-width-pg\" select=\"'600'\" />\n\n<xsl:variable name=\"chunk-level\">\n    <xsl:choose>\n        <xsl:when test=\"$chunk-level-entered != ''\">\n            <xsl:value-of select=\"$chunk-level-entered\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>0</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!--#######################################################################-->\n<!-- Dictionary Architecture                                               -->\n<!--#######################################################################-->\n\n<!-- Initialize empty dictionaries, then define key-value pairs             -->\n<xsl:template match=\"*\" mode=\"extraction-wrapper\">\n    <ww-extraction>\n        <xsl:attribute name=\"numbered-title-filesafe\">\n            <xsl:apply-templates select=\"$document-root\" mode=\"numbered-title-filesafe\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"localization\">\n            <xsl:value-of select=\"$document-language\"/>\n        </xsl:attribute>\n        <!-- Record certain publisher variables for ease of access by pretext.py -->\n        <server-params-pub>\n            <xsl:attribute name=\"webwork2-server\">\n                <xsl:value-of select=\"$webwork-server\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"course-id\">\n                <xsl:value-of select=\"$webwork-course\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"user-id\">\n                <xsl:value-of select=\"$webwork-user\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"password\">\n                <xsl:value-of select=\"$webwork-password\"/>\n            </xsl:attribute>\n        </server-params-pub>\n        <!-- Settings for how PG is processed -->\n        <processing>\n            <xsl:attribute name=\"static\">\n                <xsl:value-of select=\"$webwork-static-processing\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"pg-location\">\n                <xsl:value-of select=\"$webwork-pg-location\"/>\n            </xsl:attribute>\n        </processing>\n        <!-- Will need to know the folder names for generated and external. -->\n        <!-- These are almost certainly \"generated\" and \"external\", but     -->\n        <!-- rather than hardcode them where we need them, we get them from -->\n        <!-- variables defined in publisher-variables.xsl                   -->\n        <directories>\n            <xsl:attribute name=\"generated-directory\">\n                <xsl:value-of select=\"$generated-directory\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"external-directory\">\n                <xsl:value-of select=\"$external-directory\"/>\n            </xsl:attribute>\n        </directories>\n        <xsl:apply-imports/>\n    </ww-extraction>\n</xsl:template>\n\n<xsl:template match=\"webwork[@source|statement|task|text()]\" mode=\"extraction\">\n    <xsl:variable name=\"problem\">\n        <xsl:value-of select=\"../@assembly-id\"/>\n    </xsl:variable>\n    <problem>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"$problem\" />\n        </xsl:attribute>\n        <!-- 1. a generated|webwork2 flag                                          -->\n        <xsl:attribute name=\"origin\">\n            <xsl:choose>\n                <xsl:when test=\"statement|task|text()\">\n                    <xsl:text>generated</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@source\">\n                    <xsl:text>webwork2</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <!-- 1b. if this problem is a copy, record what it was copied from         -->\n        <xsl:if test=\"@copied-from\">\n            <xsl:attribute name=\"copied-from\">\n                <xsl:value-of select=\"id(@copied-from)/../@assembly-id\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- 2. a seed for randomization (with a default explicitly declared)      -->\n        <xsl:attribute name=\"seed\">\n            <xsl:apply-templates select=\".\" mode=\"get-seed\"/>\n        </xsl:attribute>\n        <!-- 3. file path                                                          -->\n        <xsl:attribute name=\"path\">\n            <xsl:apply-templates select=\".\" mode=\"filename\"/>\n        </xsl:attribute>\n        <xsl:choose>\n            <xsl:when test=\"statement|task\">\n                <!-- 4. human readable PG (for PTX-authored)                           -->\n                <pghuman>\n                    <xsl:variable name=\"pg\">\n                        <xsl:apply-templates select=\".\">\n                            <xsl:with-param name=\"b-human-readable\" select=\"true()\"/>\n                        </xsl:apply-templates>\n                    </xsl:variable>\n                    <xsl:call-template name=\"consolidate-empty-lines\">\n                        <xsl:with-param name=\"text\" select=\"$pg\"/>\n                    </xsl:call-template>\n                </pghuman>\n                <!-- 5. PG optimized (and less human-readable) for use in PTX output modes -->\n                <pgdense>\n                    <xsl:apply-templates select=\".\">\n                        <xsl:with-param name=\"b-human-readable\" select=\"false()\"/>\n                    </xsl:apply-templates>\n                </pgdense>\n            </xsl:when>\n            <xsl:when test=\"text()\">\n                <pghuman>\n                    <xsl:value-of select=\"text()\"/>\n                </pghuman>\n                <pgdense>\n                    <xsl:value-of select=\"text()\"/>\n                </pgdense>\n            </xsl:when>\n        </xsl:choose>\n    </problem>\n</xsl:template>\n\n<!-- Append a filename to the directory path              -->\n<xsl:template match=\"webwork[@source|statement|task|text()]\" mode=\"filename\">\n    <xsl:choose>\n        <xsl:when test=\"@source\">\n            <xsl:value-of select=\"@source\"/>\n        </xsl:when>\n        <xsl:when test=\"statement|task|text()\">\n            <xsl:apply-templates select=\".\" mode=\"directory-path\" />\n            <xsl:if test=\"parent::*[&PROJECT-FILTER;]\">\n                <xsl:apply-templates select=\"parent::*\" mode=\"type-name\"/>\n                <xsl:text>-</xsl:text>\n            </xsl:if>\n            <xsl:apply-templates select=\"parent::*\" mode=\"numbered-title-filesafe\" />\n            <xsl:text>.pg</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Directory path, recursively climb structural nodes,  -->\n<!-- record names as pass up through chunk-level barrier  -->\n<!-- Includes root document node (book, article, etc)     -->\n<xsl:template match=\"*\" mode=\"directory-path\">\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\".\" mode=\"is-structural\"/>\n    </xsl:variable>\n    <xsl:variable name=\"current-level\">\n        <xsl:choose>\n            <xsl:when test=\"$structural = 'true'\">\n                <xsl:apply-templates select=\".\" mode=\"level\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>undefined</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"self::mathbook|self::pretext\" /> <!-- done -->\n        <xsl:when test=\"$structural='false'\">  <!-- skip up -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"directory-path\" />\n        </xsl:when>\n        <!-- structural is true now, compare levels -->\n        <xsl:when test=\"$current-level > $chunk-level\">  <!-- also skip up -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"directory-path\" />\n        </xsl:when>\n        <xsl:otherwise> <!-- append current node name -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"directory-path\" />\n            <xsl:apply-templates select=\".\" mode=\"numbered-title-filesafe\" />\n            <xsl:text>/</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Cross-References -->\n<!-- ################ -->\n\n<!-- The visual text of a cross-reference is formed in the common routines -->\n<!-- but in the PG source we can't really form a link to a target outside  -->\n<!-- the problem.                                                          -->\n\n<!-- This routine won't work well in -common since the human-readable      -->\n<!-- parameter would need to tunnel through all the \"xref\" templates to    -->\n<!-- arrive at the link template.  One solution is to remove the (nice)    -->\n<!-- device of showing the main title in the human forms of the problem    -->\n\n<xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"content\" />\n    <xsl:param name=\"xref\" />\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:copy-of select=\"$content\" />\n    <xsl:if test=\"/mathbook/book|/mathbook/article\">\n        <xsl:text> in </xsl:text>\n        <xsl:apply-templates select=\"/mathbook/book|/mathbook/article\" mode=\"title-full\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- Default randomization seed based on the webwork's number()  -->\n<!-- This is better than a constant default seed, which can lead -->\n<!-- to adjacent problems using the same random values           -->\n<xsl:template match=\"webwork\" mode=\"get-seed\">\n    <xsl:choose>\n        <xsl:when test=\"@seed\">\n            <xsl:value-of select=\"@seed\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:number level=\"any\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Inline warnings go into text, no matter what -->\n<xsl:template name=\"inline-warning\">\n    <xsl:param name=\"warning\" />\n    <xsl:text>(((</xsl:text>\n    <xsl:value-of select=\"$warning\" />\n    <xsl:text>)))</xsl:text>\n</xsl:template>\n\n<!-- Marginal notes are only for author's report                     -->\n<xsl:template name=\"margin-warning\">\n    <xsl:param name=\"warning\" />\n    <xsl:if test=\"$author-tools-new = 'yes'\" >\n        <xsl:value-of select=\"$warning\" />\n    </xsl:if>\n</xsl:template>\n\n\n<!-- The mechanics of a WeBWorK problem come first, with specific PreTeXt  -->\n<!-- markup to support problem expression.                                 -->\n<!--                                                                       -->\n<!-- The latter half of the file is the conversion of more universal       -->\n<!-- PreTeXt markup to its PGML variants.                                  -->\n\n<!-- ################## -->\n<!-- Top-Down Structure -->\n<!-- ################## -->\n\n<!-- A webwork element can either:                                         -->\n<!-- 1. be empty; just for printing \"WeBWorK\"                              -->\n<!-- 2. use an existing .pg problem from the server                        -->\n<!-- 3. have only one text() child, a fully intact .pg problem             -->\n<!-- 4. have a single statement child                                      -->\n<!-- 5. have two or more task children (known in WW as \"scaffolded\")       -->\n<!-- What follows is not concerned with the first three. The next two top  -->\n<!-- level templates follow.                                               -->\n\n\n<xsl:template match=\"webwork[statement]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"converter-blurb-webwork\" />\n        <xsl:call-template name=\"webwork-metadata\" />\n    </xsl:if>\n    <xsl:text>DOCUMENT();&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pg-macros\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>COMMENT('</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'authored'\"/>\n        </xsl:apply-templates>\n        <xsl:text>');&#xa;</xsl:text>\n        <xsl:apply-templates select=\"description\"/>\n    </xsl:if>\n    <xsl:call-template name=\"pg-header\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:apply-templates select=\".\" mode=\"pg-code\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"statement\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"hint\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"solution\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:call-template name=\"end-problem\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"webwork[task]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"converter-blurb-webwork\" />\n        <xsl:call-template name=\"webwork-metadata\" />\n    </xsl:if>\n    <xsl:text>DOCUMENT();&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pg-macros\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>COMMENT('</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'authored'\"/>\n        </xsl:apply-templates>\n        <xsl:text>');&#xa;</xsl:text>\n        <xsl:text>COMMENT('This problem is scaffolded with multiple parts');&#xa;</xsl:text>\n        <xsl:apply-templates select=\"description\"/>\n    </xsl:if>\n    <xsl:call-template name=\"pg-header\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:apply-templates select=\".\" mode=\"pg-code\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Body</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:if test=\"ancestor::exercisegroup/introduction|introduction\">\n        <xsl:text>&#xa;BEGIN_PGML&#xa;</xsl:text>\n        <xsl:if test=\"$b-human-readable\">\n            <xsl:apply-templates select=\"ancestor::exercisegroup/introduction\">\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:apply-templates>\n        </xsl:if>\n        <xsl:apply-templates select=\"introduction\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n        </xsl:apply-templates>\n        <xsl:text>&#xa;END_PGML&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Scaffold</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>Scaffold::Begin(</xsl:text>\n    <xsl:text>numbered =&gt; 1,</xsl:text>\n    <xsl:text>is_open =&gt; \"correct_or_first_incorrect\",</xsl:text>\n    <xsl:text>can_open =&gt; </xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$webwork-task-reveal = 'all'\">\n            <xsl:text>always,</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>when_previous_correct,</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>);</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"task\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>Scaffold::End();</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"conclusion\">\n        <xsl:text>&#xa;BEGIN_PGML&#xa;</xsl:text>\n        <xsl:apply-templates select=\"conclusion\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n        </xsl:apply-templates>\n        <xsl:text>&#xa;END_PGML&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:call-template name=\"end-problem\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"task[statement]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Section</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>Section::Begin(\"</xsl:text>\n    <xsl:if test=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n    </xsl:if>\n    <xsl:text>\");</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"statement\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"hint\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"solution\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>Section::End();</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"task[task]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Section</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>Section::Begin(\"</xsl:text>\n    <xsl:if test=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n    </xsl:if>\n    <xsl:text>\");</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"introduction\">\n        <xsl:text>&#xa;BEGIN_PGML&#xa;</xsl:text>\n        <xsl:apply-templates select=\"introduction\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n        </xsl:apply-templates>\n        <xsl:text>&#xa;END_PGML&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Scaffold</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>Scaffold::Begin(numbered=&gt;1);</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"task\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>Scaffold::End();</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"conclusion\">\n        <xsl:text>&#xa;BEGIN_PGML&#xa;</xsl:text>\n        <xsl:apply-templates select=\"conclusion\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n        </xsl:apply-templates>\n        <xsl:text>&#xa;END_PGML&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>Section::End();</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"webwork\" mode=\"pg-code\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">PG Setup Code</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <!-- All our problems load MathObjects, and so should have at least    -->\n    <!-- one explicit Context() load.                                      -->\n    <xsl:if test=\"not(contains(.//pg-code,'Context('))\">\n        <xsl:text>Context('Numeric');</xsl:text>\n        <xsl:if test=\"$b-human-readable\">\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <!-- pg-code verbatim, but trim indentation -->\n    <xsl:if test=\".//pg-code\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".//pg-code\" />\n        </xsl:call-template>\n    </xsl:if>\n    <!-- if there are latex-image in the problem, put their code here -->\n    <!-- introduction images are not needed except for human readable code -->\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:apply-templates select=\"ancestor::exercisegroup/introduction//image[latex-image]\" mode=\"latex-image-code\"/>\n    </xsl:if>\n    <xsl:apply-templates select=\".//image[latex-image]\" mode=\"latex-image-code\"/>\n</xsl:template>\n\n<!-- default template, for complete presentation -->\n<xsl:template match=\"statement\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Body</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>&#xa;BEGIN_PGML&#xa;</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:apply-templates select=\"ancestor::exercisegroup/introduction\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:text>&#xa;END_PGML&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"task/statement\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:text>&#xa;BEGIN_PGML&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:text>&#xa;END_PGML&#xa;</xsl:text>\n</xsl:template>\n\n<!-- default template, for solution -->\n<xsl:template match=\"solution\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Solution</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>&#xa;BEGIN_PGML_SOLUTION&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param  name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:text>&#xa;END_PGML_SOLUTION&#xa;</xsl:text>\n</xsl:template>\n\n<!-- default template, for hint -->\n<xsl:template match=\"hint\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Hint</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>#Set value of $showHint in PGcourse.pl for course-wide attempt threshhold for revealing hints&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;BEGIN_PGML_HINT&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>&#xa;END_PGML_HINT&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"introduction|conclusion\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n    </xsl:apply-templates>\n    <xsl:if test=\"parent::exercisegroup\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"webwork/description\">\n    <xsl:text>COMMENT(</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"line\">\n            <xsl:for-each select=\"line\">\n                <xsl:apply-templates select=\".\" mode=\"delimit\"/>\n                <xsl:if test=\"following-sibling::line\">\n                    <xsl:text>, </xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"delimit\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>);&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"delimit\">\n    <xsl:variable name=\"delimiter\">\n        <xsl:call-template name=\"find-unused-character\">\n            <xsl:with-param name=\"string\" select=\".\"/>\n            <!-- https://stackoverflow.com/questions/43617820/what-are-the-legal-delimiters-for-perl-5s-pick-your-own-quotes-operators    -->\n            <!-- NB: don't use (), <>, [], {}, because as perl delimiters, closer must be the right version; too complicated to check for -->\n            <!-- Don't use backslash. All other keyboard characters are present below                                                     -->\n            <xsl:with-param name=\"charset\" select=\"concat($apos, '&quot;:;,./?|`~!@#$%^&amp;*-_=+', &SIMPLECHAR;)\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- If the delimiter is not a single quote, use q operator -->\n    <xsl:if test=\"$delimiter != $apos\">\n        <xsl:text>q</xsl:text>\n    </xsl:if>\n    <!-- If the delimiter is alphanumeric (or underscore), it must be preceded by a space -->\n    <xsl:if test=\"contains(concat('_',&SIMPLECHAR;), $delimiter)\">\n        <xsl:text> </xsl:text>\n    </xsl:if>\n    <xsl:value-of select=\"$delimiter\"/>\n    <xsl:apply-templates/>\n    <xsl:value-of select=\"$delimiter\"/>\n</xsl:template>\n\n\n<!-- ############################## -->\n<!-- Problem Header/Initializations -->\n<!-- ############################## -->\n\n<!-- Mine various parts of the surrounding text -->\n<!-- Only ever called in human-readable mode    -->\n<xsl:template name=\"webwork-metadata\">\n    <xsl:text>## DBsubject(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## DBchapter(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## DBsection(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## Level(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## KEYWORDS(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## TitleText1(</xsl:text>\n    <xsl:if test=\"/mathbook/book|/mathbook/article\">\n        <xsl:apply-templates select=\"/mathbook/book|/mathbook/article\" mode=\"title-full\" />\n    </xsl:if>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## EditionText1(</xsl:text>\n    <xsl:if test=\"/mathbook/book/frontmatter/colophon/edition\">\n        <xsl:apply-templates select=\"/mathbook/book/frontmatter/colophon/edition\" />\n    </xsl:if>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## AuthorText1(</xsl:text>\n    <xsl:if test=\"/mathbook/book|/mathbook/article\">\n        <xsl:for-each select=\"/mathbook/book/frontmatter/titlepage/author|/mathbook/article/frontmatter/titlepage/author\">\n            <xsl:value-of select=\"personname\"/>\n            <xsl:if test=\"following-sibling::author\">\n                <xsl:text>, </xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:if>\n    <xsl:text>)&#xa;</xsl:text>\n    <!-- needs structural enclosure inline v. divisional         -->\n    <!-- do not use structure number, makes overrides impossible -->\n    <xsl:text>## Section1(not reported</xsl:text>\n        <!-- <xsl:apply-templates select=\"ancestor::exercise\" mode=\"structure-number\" /> -->\n    <xsl:text>)&#xa;</xsl:text>\n    <!-- WW problem is always enclosed directly by a PTX exercise or PROJECT-LIKE -->\n    <xsl:if test=\"parent::exercise\">\n        <xsl:text>## Problem1(</xsl:text>\n            <xsl:apply-templates select=\"parent::exercise\" mode=\"number\" />\n        <xsl:text>)&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>## Author(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## Institution(</xsl:text>\n    <xsl:text>)&#xa;</xsl:text>\n    <xsl:text>## Language(</xsl:text>\n        <xsl:value-of select=\"$document-language\"/>\n    <xsl:text>)&#xa;&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template name=\"pg-header\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Header</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>TEXT(beginproblem());&#xa;</xsl:text>\n    <xsl:if test=\"not($b-human-readable)\">\n        <!-- see select-latex-macros template -->\n        <xsl:variable name=\"macros\">\n            <xsl:call-template name=\"select-latex-macros\"/>\n        </xsl:variable>\n        <xsl:if test=\"$macros != ''\">\n            <xsl:variable name=\"wrapped-macros\">\n                <xsl:text>&lt;div style=\"display:none;\">\\(</xsl:text>\n                <xsl:value-of select=\"$macros\" />\n                <xsl:text>\\)&lt;/div></xsl:text>\n            </xsl:variable>\n            <xsl:variable name=\"delimiter\">\n                <xsl:call-template name=\"find-unused-character\">\n                    <xsl:with-param name=\"string\" select=\"$wrapped-macros\"/>\n                    <!-- https://stackoverflow.com/questions/43617820/what-are-the-legal-delimiters-for-perl-5s-pick-your-own-quotes-operators    -->\n                    <!-- NB: don't use (), <>, [], {}, because as perl delimiters, closer must be the right version; too complicated to check for -->\n                    <xsl:with-param name=\"charset\" select=\"concat($apos,'|/?.,+-_~`!@$%^&amp;*')\"/>\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:text>TEXT(MODES(PTX=&gt;'',HTML=&gt;</xsl:text>\n            <xsl:if test=\"$delimiter != $apos\">\n                <xsl:text>q</xsl:text>\n            </xsl:if>\n            <xsl:value-of select=\"$delimiter\"/>\n            <xsl:value-of select=\"$wrapped-macros\"/>\n            <xsl:value-of select=\"$delimiter\"/>\n            <xsl:text>));&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- Problem Ending -->\n<!-- ############## -->\n\n<xsl:template name=\"end-problem\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">End Problem</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n    <xsl:text>&#xa;ENDDOCUMENT();</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############## -->\n<!-- Load PG Macros -->\n<!-- ############## -->\n\n<!-- call exactly once,        -->\n<!-- context is \"webwork\" root -->\n<xsl:template match=\"webwork\" mode=\"pg-macros\">\n    <xsl:param name=\"b-human-readable\" />\n\n    <xsl:call-template name=\"begin-block\">\n        <xsl:with-param name=\"block-title\">Load Macros</xsl:with-param>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:call-template>\n\n    <!-- two standard macros always used -->\n    <xsl:variable name=\"standard-macros\">\n        <xsl:call-template name=\"macro-padding\">\n            <xsl:with-param name=\"string\" select=\"'PGstandard.pl'\"/>\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n        </xsl:call-template>\n        <xsl:call-template name=\"macro-padding\">\n            <xsl:with-param name=\"string\" select=\"'PGML.pl'\"/>\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n        </xsl:call-template>\n    </xsl:variable>\n\n    <!-- accumulate macros evidenced by some aspect of problem design      -->\n    <!-- for details on what each macro file provides, see their source at -->\n    <!-- https://github.com/openwebwork/pg/tree/main/macros                -->\n    <xsl:variable name=\"implied-macros\">\n        <xsl:variable name=\"pg-code\" select=\"./pg-code\"/>\n\n        <!-- some publisher variable or stringparam indicates the need for a macro               -->\n        <xsl:if test=\"$pg.answer.form.help = 'yes'\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'AnswerFormatHelp.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n\n        <!-- within the webwork there is some element and/or attribute that necessitates a macro -->\n        <!-- TODO: starting with PG 2.19, niceTables.pl is always loaded by PGML.pl. Once we no  -->\n        <!-- longer support 2.18 or earlier, we can remove this niceTables test.                 -->\n        <xsl:if test=\".//tabular\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'niceTables.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\".//image[@pg-name]\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'PGgraphmacros.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\".//latex-image or ($b-human-readable and ancestor::exercisegroup/introduction//latex-image)\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'PGlateximage.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\"task\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'scaffold.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n\n        <!-- within the webwork there is some element and/or attribute that necessitates a macro -->\n        <!-- OR the pg-code contains some string indicating the need for a macro, but not a      -->\n        <!-- parser or context macro (see below)                                                 -->\n        <xsl:if test=\".//instruction or contains($pg-code,'RandomVariableName') or contains($pg-code,'RandomName') or contains($pg-code,'numberWord')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'PCCmacros.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\".//var[@form='essay'] or contains($pg-code,'explanation_box')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'PGessaymacros.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n\n        <!-- the pg-code contains some string indicating the need for a macro, but not a parser  -->\n        <!-- or context macro (see below)                                                        -->\n        <xsl:if test=\"contains($pg-code,'AnswerHints')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'answerHints.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\"contains($pg-code,'bizarro')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'bizarroArithmetic.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\"contains($pg-code,'NchooseK')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'PGchoicemacros.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n\n        <!-- ############# -->\n        <!-- Parser Macros -->\n        <!-- ############# -->\n\n        <!-- PG parser macros that conform to the convention where the file name is parserXXX.pl -->\n        <!-- and the tool provided is XXX                                                        -->\n        <xsl:for-each select=\"str:tokenize('\n                Assignment\n                AutoStrings\n                CheckboxList\n                DifferenceQuotient\n                FormulaAnyVar\n                FormulaUpToConstant\n                FormulaWithUnits\n                FunctionPrime\n                ImplicitEquation\n                ImplicitPlane\n                LinearInequality\n                MultiAnswer\n                NumberWithUnits\n                OneOf\n                ParametricLine\n                ParametricPlane\n                PopUp\n                QuotedString\n                RadioButtons\n                SolutionFor\n                WordCompletion\n            ')\">\n            <xsl:if test=\"contains($pg-code, .)\">\n                <xsl:call-template name=\"macro-padding\">\n                    <xsl:with-param name=\"string\" select=\"concat('parser', ., '.pl')\"/>\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                </xsl:call-template>\n            </xsl:if>\n        </xsl:for-each>\n\n        <!-- PG parser macros that do NOT conform to the convention where the file name is       -->\n        <!-- parserXXX.pl and the tool provided is XXX                                           -->\n        <xsl:if test=\"contains($pg-code, 'parserFunction')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'parserFunction.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\"contains($pg-code, 'parser::Prime')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'parserPrime.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\"contains($pg-code, 'parser::Root')\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'parserRoot.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:if test=\"contains($pg-code, 'Overline') or contains($pg-code, 'BoldMath' or contains($pg-code, 'non_zero_point') or contains($pg-code, 'non_zero_vector'))\">\n            <xsl:call-template name=\"macro-padding\">\n                <xsl:with-param name=\"string\" select=\"'parserVectorUtils.pl'\"/>\n                <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            </xsl:call-template>\n        </xsl:if>\n\n        <!-- ############## -->\n        <!-- Context Macros -->\n        <!-- ############## -->\n\n        <!-- PG context macros that conform to the convention where the file name is             -->\n        <!-- contextXXX.pl and the context name is XXX                                           -->\n        <xsl:for-each select=\"str:tokenize('\n                ABCD\n                AlternateDecimal\n                AlternateIntervals\n                ArbitraryString\n                Congruence\n                Currency\n                FiniteSolutionSets\n                Form\n                Fraction\n                Inequalities\n                InequalitySetBuilder\n                Integers\n                IntegerFunctions\n                LeadingZero\n                LimitedComplex\n                LimitedFactor\n                LimitedPoint\n                LimitedPolynomial\n                LimitedPowers\n                LimitedRadical\n                LimitedVector\n                Ordering\n                Partition\n                Percent\n                PiecewiseFunction\n                PolynomialFactors\n                RationalFunction\n                Reaction\n                RestrictedDomains\n                ScientificNotation\n                TrigDegrees\n            ')\">\n            <xsl:if test=\"contains($pg-code, .)\">\n                <xsl:call-template name=\"macro-padding\">\n                    <xsl:with-param name=\"string\" select=\"concat('context', ., '.pl')\"/>\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                </xsl:call-template>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- capture problem root to use inside upcoming for-each -->\n    <xsl:variable name=\"problem-root\" select=\".\" />\n    <!-- accumulate new macros supplied by problem author, warn if not new -->\n    <xsl:variable name=\"user-macros\">\n        <xsl:for-each select=\".//pg-macros/macro-file\">\n            <xsl:variable name=\"trimmed-macro\">\n                <xsl:value-of select=\"normalize-space(.)\"/>\n            </xsl:variable>\n            <!-- wrap in quotes to protect accidental matches -->\n            <xsl:variable name=\"fenced-macro\">\n                <xsl:text>\"</xsl:text>\n                <xsl:value-of select=\"$trimmed-macro\" />\n                <xsl:text>\"</xsl:text>\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"contains($standard-macros, $fenced-macro) or ($fenced-macro = '&quot;PGcourse.pl&quot;')\">\n                    <xsl:message>PTX:WARNING: the WeBWorK PG macro <xsl:value-of select=\"$trimmed-macro\"/> is always included for every problem</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                </xsl:when>\n                <xsl:when test=\"$trimmed-macro = 'PG.pl' or $trimmed-macro = 'PGbasicmacros.pl' or $trimmed-macro = 'PGanswermacros.pl' or $trimmed-macro = 'PGauxiliaryFunctions.pl' or $trimmed-macro = 'customizeLaTeX.pl'\">\n                    <xsl:message>PTX:WARNING: the WeBWorK PG macro <xsl:value-of select=\"$trimmed-macro\"/> is always included for every problem as a dependency of PGstandard.pl</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                </xsl:when>\n                <xsl:when test=\"$trimmed-macro = 'Parser.pl' or $trimmed-macro = 'MathObjects.pl' or $trimmed-macro = 'contextTypeset.pl'\">\n                    <xsl:message>PTX:WARNING: the WeBWorK PG macro <xsl:value-of select=\"$trimmed-macro\"/> is always included for every problem as a dependency of PGML.pl</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                </xsl:when>\n                <xsl:when test=\"contains($implied-macros, $fenced-macro)\">\n                    <xsl:message>PTX:WARNING: the WeBWorK PG macro <xsl:value-of select=\"$trimmed-macro\"/> is implied by the problem construction and already included</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:call-template name=\"macro-padding\">\n                        <xsl:with-param name=\"string\" select=\".\"/>\n                        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- PTX-built macros file -->\n    <xsl:variable name=\"ptx-pg-macros\">\n        <xsl:variable name=\"ptx-pg-macros-filename\">\n            <xsl:choose>\n                <xsl:when test=\"$docinfo/initialism\">\n                    <xsl:value-of select=\"$docinfo/initialism\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$document-root\" mode=\"title-filesafe\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n            <text>.pl</text>\n        </xsl:variable>\n        <xsl:call-template name=\"macro-padding\">\n            <xsl:with-param name=\"string\" select=\"$ptx-pg-macros-filename\"/>\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- always finish with PG course macro -->\n    <xsl:variable name=\"course-macros\">\n        <xsl:call-template name=\"macro-padding\">\n            <xsl:with-param name=\"string\" select=\"'PGcourse.pl'\"/>\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- put them together with a wrapper -->\n    <xsl:variable name=\"load-macros\">\n        <xsl:text>loadMacros(</xsl:text>\n        <xsl:if test=\"$b-human-readable\">\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:value-of select=\"$standard-macros\" />\n        <xsl:value-of select=\"$implied-macros\" />\n        <xsl:value-of select=\"$user-macros\" />\n        <xsl:if test=\".//latex-image or ancestor::exercisegroup/introduction//latex-image\">\n            <xsl:value-of select=\"$ptx-pg-macros\" />\n        </xsl:if>\n        <xsl:value-of select=\"$course-macros\" />\n        <xsl:text>);</xsl:text>\n        <xsl:if test=\"$b-human-readable\">\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:value-of select=\"$load-macros\" />\n    <!-- if images are used, explicitly refresh or stale images will be used in HTML -->\n    <xsl:if test=\"(.//image[@pg-name] or .//image[latex-image]) and not($b-human-readable)\">\n        <xsl:text>$refreshCachedImages=1;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"macro-padding\">\n    <xsl:param name=\"string\"/>\n    <xsl:param name=\"b-human-readable\"/>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>  </xsl:text>\n    </xsl:if>\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\"$string\"/>\n    <xsl:text>\",</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############## -->\n<!-- PERL Variables -->\n<!-- ############## -->\n\n<!-- PGML markup for Perl variable in LaTeX expression -->\n<xsl:template match=\"var\">\n    <xsl:text>[</xsl:text>\n    <xsl:value-of select=\"@name\" />\n    <xsl:text>]</xsl:text>\n    <!-- if the variable is a string of PGML syntax to be processed -->\n    <xsl:if test=\"@data='pgml'\">\n        <xsl:text>**</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"latex-image/var\" mode=\"latex-image\">\n    <xsl:value-of select=\"@name\" />\n</xsl:template>\n\n<!-- ############ -->\n<!-- PGML answers -->\n<!-- ############ -->\n\n<!-- PGML answer input               -->\n<!-- Example: [_____]{$ans}          -->\n<xsl:template match=\"statement//var[@width|@form]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:apply-templates select=\".\" mode=\"field\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".\" mode=\"form-help\"/>\n</xsl:template>\n\n<!-- MathObject answers -->\n<!-- with variant for MathObjects like Matrix, Vector, ColumnVector      -->\n<!-- where the shape of the MathObject guides the array of answer blanks -->\n<xsl:template match=\"var[@width|@form]\" mode=\"field\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:variable name=\"width\">\n        <xsl:choose>\n            <xsl:when test=\"@width\">\n                <xsl:value-of select=\"@width\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>5</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Answer inputs all on their own p get indented         -->\n    <!-- This is a styling preference that can't be customized -->\n    <xsl:choose>\n        <!-- We don't indent for radio buttons or checkboxes input -->\n        <!-- which ought to be in their own p in the first place   -->\n        <xsl:when test=\"@form = 'buttons' or @form = 'checkboxes'\"/>\n        <!-- We don't indent for answer input that is within certain structures -->\n        <xsl:when test=\"ancestor::li or ancestor::tabular\"/>\n        <!-- We don't indent when the input field is inline with a p -->\n        <xsl:when test=\"count(parent::p/*) + string-length(normalize-space(parent::p/text())) = 0\">\n            <xsl:text>    </xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>[_]</xsl:text>\n    <!-- multiplier for MathObjects like Matrix, Vector, ColumnVector -->\n    <xsl:if test=\"@form='array'\">\n        <xsl:text>*</xsl:text>\n    </xsl:if>\n    <xsl:text>{</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@evaluator\">\n            <xsl:value-of select=\"@evaluator\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"@name\" />\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$width\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Essay answers -->\n<!-- Example: [@ ANS(essay_cmp); essay_box(6,76) @]*   -->\n<!-- Requires:  PGessaymacros.pl, automatically loaded -->\n<!-- http://webwork.maa.org/moodle/mod/forum/discuss.php?d=3370 -->\n<xsl:template match=\"var[@form='essay']\" mode=\"field\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:text>[@ANS(essay_cmp());</xsl:text>\n    <!-- NECESSARY? -->\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text> </xsl:text>\n    </xsl:if>\n    <xsl:text>essay_box(</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@height\">\n            <xsl:value-of select=\"@height\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>6</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>,</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@width\">\n            <xsl:value-of select=\"@width\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>76</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>)@]*</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"var[@width]|var[@form]\" mode=\"form-help\">\n    <xsl:variable name=\"form\">\n        <xsl:choose>\n            <xsl:when test=\"@form\">\n                <xsl:value-of select=\"@form\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:call-template name=\"category-to-form\">\n                    <xsl:with-param name=\"category\" select=\"@category\"/>\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:if test=\"($pg.answer.form.help = 'yes')\">\n        <xsl:choose>\n            <!-- first, formats we can't help with -->\n            <xsl:when test=\"($form='none') or ($form='popup')  or ($form='buttons') or ($form='checkboxes') or ($form='array')\"/>\n            <xsl:when test=\"$form='essay'\">\n                <xsl:text> [@essay_help()@]*</xsl:text>\n            </xsl:when>\n            <!-- inside a table, do not encase in [@...@]* and do concatenate-->\n            <xsl:when test=\"ancestor::tabular\">\n                <xsl:text>\".AnswerFormatHelp('</xsl:text>\n                <xsl:value-of select=\"$form\"/>\n                <xsl:text>').\"</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text> [@AnswerFormatHelp('</xsl:text>\n                <xsl:value-of select=\"$form\"/>\n                <xsl:text>')@]*</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- Convert a var's \"category\" to the right term for AnswerFormatHelp -->\n<!-- Keep ordered alphabetically, and one value per @test, so          -->\n<!-- that it is easier to maintain a list in the schema                -->\n<xsl:template name=\"category-to-form\">\n    <xsl:param name=\"category\" select=\"none\"/>\n    <xsl:choose>\n        <xsl:when test=\"$category='angle'\">\n            <xsl:text>angles</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='decimal'\">\n            <xsl:text>decimals</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='exponent'\">\n            <xsl:text>exponents</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='formula'\">\n            <xsl:text>formulas</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='fraction'\">\n            <xsl:text>fractions</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='inequality'\">\n            <xsl:text>inequalities</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='integer'\">\n            <xsl:text>numbers</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='interval'\">\n            <xsl:text>intervals</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='logarithm'\">\n            <xsl:text>logarithms</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='limit'\">\n            <xsl:text>limits</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='number'\">\n            <xsl:text>numbers</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='point'\">\n            <xsl:text>points</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='syntax'\">\n            <xsl:text>syntax</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='quantity'\">\n            <xsl:text>units</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$category='vector'\">\n            <xsl:text>vectors</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>none</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ####################### -->\n<!-- PGML Image Construction -->\n<!-- ####################### -->\n\n<xsl:template match=\"image[@pg-name|latex-image]\" mode=\"components\">\n    <xsl:variable name=\"width\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-percentage\" />\n    </xsl:variable>\n    <xsl:text>[@image(insertGraph(</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pg-name\"/>\n    <xsl:text>), width=&gt;</xsl:text>\n    <xsl:value-of select=\"substring-before($width, '%') div 100 * $design-width-pg\"/>\n    <xsl:apply-templates select=\".\" mode=\"shortdescription\"/>\n    <xsl:text>)@]* </xsl:text>\n</xsl:template>\n\n<!-- Puts the description into an \"alt\" tag.                               -->\n<xsl:template match=\"image\" mode=\"shortdescription\">\n    <xsl:choose>\n        <xsl:when test=\"@decorative = 'yes'\">\n            <xsl:text>, alt=&gt;\"\"</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"not(string(shortdescription) = '')\">\n            <xsl:variable name=\"description-text\">\n                <xsl:apply-templates select=\"shortdescription\"/>\n            </xsl:variable>\n            <xsl:variable name=\"delimiter\">\n                <xsl:call-template name=\"find-unused-character\">\n                    <xsl:with-param name=\"string\" select=\"$description-text\"/>\n                    <xsl:with-param name=\"charset\" select=\"concat('&quot;|/\\?:;.,=+-_~`!^&amp;*',&SIMPLECHAR;)\"/>\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:text>, alt=&gt;qq</xsl:text>\n            <xsl:value-of select=\"concat($delimiter, $description-text, $delimiter)\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A description here should only have text nodes and var children.      -->\n<xsl:template match=\"image/shortdescription\">\n    <xsl:apply-templates select=\"text()|var\"/>\n</xsl:template>\n\n<!-- An image description may depend on the value of a simple scalar var   -->\n<!-- Perhaps this should warn if @name is not in Perl scalar syntax        -->\n<xsl:template match=\"shortdescription/var\">\n    <xsl:value-of select=\"@name\"/>\n</xsl:template>\n\n<xsl:template match=\"image[latex-image]\" mode=\"latex-image-code\">\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pg-name\"/>\n    <xsl:text> = createLaTeXImage();&#xa;</xsl:text>\n    <xsl:if test=\"$docinfo/latex-image-preamble\">\n        <xsl:apply-templates select=\".\" mode=\"pg-name\"/>\n        <xsl:text>->addToPreamble(latexImagePreamble());&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:variable name=\"pg-latex-image-code\">\n        <xsl:apply-templates select=\"latex-image/text()|latex-image/var\" mode=\"latex-image\"/>\n    </xsl:variable>\n    <xsl:apply-templates select=\".\" mode=\"pg-name\"/>\n    <xsl:text>->BEGIN_LATEX_IMAGE&#xa;</xsl:text>\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\"$pg-latex-image-code\"/>\n    </xsl:call-template>\n    <xsl:text>&#xa;END_LATEX_IMAGE&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"image\" mode=\"pg-name\">\n    <xsl:choose>\n        <xsl:when test=\"@pg-name\">\n            <xsl:value-of select=\"@pg-name\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>$image_</xsl:text>\n            <xsl:number count=\"image\" from=\"webwork\" level=\"any\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"exercisegroup/introduction//image[latex-image]\" mode=\"pg-name\">\n    <xsl:text>$introduction_image_</xsl:text>\n    <xsl:number count=\"image\" from=\"exercisegroup\" level=\"any\" />\n</xsl:template>\n\n<xsl:template match=\"text()\" mode=\"latex-image\">\n    <xsl:variable name=\"dollar-fixed\"  select=\"str:replace(.,             '\\$', '\\~~$')\"/>\n    <xsl:variable name=\"percent-fixed\" select=\"str:replace($dollar-fixed, '\\%', '\\~~%')\"/>\n    <xsl:variable name=\"at-fixed\"      select=\"str:replace($percent-fixed, '@',  '~~@')\"/>\n    <xsl:value-of select=\"$at-fixed\"/>\n</xsl:template>\n\n<!-- An \"instruction\" is a peer of p, only within a webwork. The purpose   -->\n<!-- is to give the reader something like keyboard syntax instructions     -->\n<!-- but withhold these in print output.                                   -->\n<xsl:template match=\"instruction\">\n    <xsl:if test=\"preceding-sibling::p and not(child::*[1][self::ol] or child::*[1][self::ul])\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:text>[@KeyboardInstructions(</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"delimit\"/>\n    <xsl:text>)@]**</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Inside math we need to print definitions for PTX author-defined      -->\n<!-- LaTeX macros to support WeBWorK's images display mode.               -->\n\n<!-- TODO: This named template examines the current context (see '.' in   -->\n<!-- contains() below), so should be a match template. But its recursive  -->\n<!-- implementation makes it a named template for now.                    -->\n<xsl:template name=\"select-latex-macros\">\n    <xsl:param name=\"macros\" select=\"$latex-macros\" />\n    <xsl:variable name=\"trimmed-start\">\n        <xsl:if test=\"contains($macros, '\\newcommand{')\">\n            <xsl:value-of select=\"substring-after($macros, '\\newcommand{')\"/>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"macro-name\">\n        <xsl:if test=\"contains($trimmed-start, '}')\">\n            <xsl:value-of select=\"substring-before($trimmed-start, '}')\"/>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"macro-command\">\n        <xsl:value-of select=\"substring-before($macros, '&#xa;')\"/>\n    </xsl:variable>\n    <xsl:variable name=\"next-lines\">\n        <xsl:value-of select=\"substring-after($macros, '&#xa;')\"/>\n    </xsl:variable>\n    <xsl:if test=\"contains(., $macro-name)\">\n        <xsl:value-of select=\"normalize-space($macro-command)\"/>\n    </xsl:if>\n    <xsl:if test=\"not($next-lines = '')\">\n        <xsl:call-template name=\"select-latex-macros\">\n            <xsl:with-param name=\"macros\" select=\"$next-lines\"/>\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- ##################################################################### -->\n<!-- ##################################################################### -->\n<!-- Above: templates for elements that only ever apply within a webwork   -->\n<!-- Below: templates for elements that also exist outside webwork         -->\n<!-- ##################################################################### -->\n<!-- ##################################################################### -->\n\n<!-- ########## -->\n<!-- Paragraphs -->\n<!-- ########## -->\n\n<!-- In PGML, paragraph breaks are just blank lines. End as normal with a -->\n<!-- line feed, then issue a blank line to signify the break. If p is     -->\n<!-- inside a list, special handling                                      -->\n<xsl:template match=\"p\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"preceding-sibling::p and not(child::*[1][self::ol] or child::*[1][self::ul])\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <!-- If p is last thing in entire (maybe nested) list, explicitly terminate list with three spaces at end of line. -->\n    <xsl:if test=\"parent::li and not(following-sibling::*) and not(following::li)\">\n        <xsl:text>   </xsl:text>\n    </xsl:if>\n    <!-- Blank line required or PGML will treat two adjacent p as one -->\n    <xsl:if test=\"not(parent::li) or following-sibling::* or parent::li/following-sibling::*\">\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Some common wrappers for image and tabular   -->\n<!-- Formerly this template was for sidebyside    -->\n<!-- And we leave it to also work on a sidebyside -->\n<!-- for backwards compatibility. However, such   -->\n<!-- use will be caught by a deprectation warning -->\n<!-- as well as fail a schema validation.         -->\n<xsl:template match=\"image|tabular|sidebyside\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"preceding-sibling::p\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:if test=\"not(ancestor::li)\">\n        <xsl:text>&gt;&gt; </xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"self::image|self::tabular|self::sidebyside/image|self::sidebyside/tabular\" mode=\"components\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"not(ancestor::li)\">\n        <xsl:text> &lt;&lt;</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Numbering -->\n<!-- ######### -->\n\n<!-- The cross-reference numbering scheme uses \\ref, \\hyperref -->\n<!-- for LaTeX and numbers elsewhere, so it is unimplmented in -->\n<!-- pretext-common.xsl, hence we implement it here           -->\n<!-- This is identical to pretext-html.xsl                    -->\n\n<xsl:template match=\"*\" mode=\"xref-number\">\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n</xsl:template>\n\n<!-- ######### -->\n<!-- PGML Math -->\n<!-- ######### -->\n\n<!-- extract-pg.xsl documentation -->\n<!-- PGML inline math uses its own delimiters: [`...`] and [```...```]     -->\n<!-- NB: we allow the \"var\" element as a child                             -->\n<!-- To support a PTX author's custom LaTeX macros when the problem is     -->\n<!-- used within WeBWorK, we must define each macro as it is used within   -->\n<!-- each math environment. This is the only way to simultaneiously        -->\n<!-- support HTML_mathjax, HTML_dpng, and TeX display modes.               -->\n\n<!-- extract-pg-ptx.xsl documentation -->\n<!-- PGML inline math uses its own delimiters: [`...`] and [```...```]     -->\n<!-- NB: we allow the \"var\" element as a child                             -->\n\n<!-- Common documentation -->\n<!-- See the -common stylesheet for manipulations of math elements     -->\n<!-- and subsequent text nodes that lead with punctuation.  Basically, -->\n<!-- punctuation can migrate from the start of the text node and into  -->\n<!-- the math, wrapped in a \\text{}.  We do this to display math as a  -->\n<!-- service to authors.  But LaTeX handles this situation carefully   -->\n<!-- for inline math, so we do the same here.                          -->\n<xsl:variable name=\"math.punctuation.include\" select=\"'all'\"/>\n\n<xsl:template match=\"m\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:text>[`</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"select-latex-macros\"/>\n    </xsl:if>\n    <xsl:apply-templates select=\"text()|var\" />\n    <!-- look ahead to absorb immediate clause-ending punctuation -->\n    <xsl:apply-templates select=\".\" mode=\"get-clause-punctuation\" />\n    <xsl:text>`]</xsl:text>\n</xsl:template>\n\n<!-- PGML [```...```] creates display math -->\n<xsl:template match=\"md[@pi:authored-one-line]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:text>&#xa;&#xa;</xsl:text>\n    <xsl:if test=\"ancestor::ul|ancestor::ol\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:text>[```</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"select-latex-macros\"/>\n    </xsl:if>\n    <!-- only a single mrow as a child (transition from old \"me\") -->\n    <xsl:apply-templates select=\"mrow/text()|mrow/var\" />\n    <!-- look ahead to absorb immediate clause-ending punctuation -->\n    <xsl:apply-templates select=\".\" mode=\"get-clause-punctuation\" />\n    <xsl:text>```]&#xa;&#xa;</xsl:text>\n    <xsl:if test=\"following-sibling::text()[normalize-space()] or following-sibling::*\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"md[not(@pi:authored-one-line)]\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:apply-templates select=\".\" mode=\"body\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"md[not(@pi:authored-one-line)]\" mode=\"body\">\n    <xsl:param name=\"b-human-readable\"/>\n    <xsl:variable name=\"complete-latex\">\n        <xsl:if test=\"$b-human-readable\">\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:if test=\"ancestor::ul|ancestor::ol\">\n                <xsl:call-template name=\"potential-list-indent\" />\n            </xsl:if>\n        </xsl:if>\n        <xsl:text>\\begin{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"displaymath-alignment\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"alignat-columns\" />\n        <xsl:text>&#xa;</xsl:text>\n        <!-- Indentation of mrow/intertext is in each one's template   -->\n        <xsl:apply-templates select=\"mrow|intertext\"/>\n        <xsl:if test=\"ancestor::ul|ancestor::ol\">\n            <xsl:call-template name=\"potential-list-indent\" />\n        </xsl:if>\n        <xsl:text>\\end{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"displaymath-alignment\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:variable>\n    <xsl:apply-templates select=\".\" mode=\"display-math-wrapper\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n        <xsl:with-param name=\"content\" select=\"$complete-latex\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Within a WeBWorK, md and rows are never numbered -->\n<xsl:template match=\"md[not(@pi:authored-one-line)]\" mode=\"displaymath-alignment\">\n    <xsl:choose>\n        <!-- look for @alignment override, possibly bad -->\n        <xsl:when test=\"@alignment='gather'\">\n            <xsl:text>gathered</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@alignment='alignat'\">\n            <xsl:text>alignedat</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@alignment='align'\">\n            <xsl:text>aligned</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@alignment\">\n            <xsl:message>PTX:ERROR:   display math @alignment attribute \"<xsl:value-of select=\"@alignment\" />\" is not recognized (should be \"aligned\", \"gathered\", \"alignedat\")</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:when>\n        <!-- sniff for alignment specifications    -->\n        <!-- this can be easily fooled, eg matrices-->\n        <xsl:when test=\"contains(., '&amp;') or contains(., '\\amp')\">\n            <xsl:text>aligned</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>gathered</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"md[mrow]\" mode=\"display-math-wrapper\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:param name=\"content\" />\n    <xsl:text>&#xa;&#xa;</xsl:text>\n    <xsl:if test=\"ancestor::ul|ancestor::ol\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:text>[```</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"select-latex-macros\"/>\n    </xsl:if>\n    <xsl:value-of select=\"$content\" />\n    <xsl:if test=\"ancestor::ul|ancestor::ol\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:text>```]</xsl:text>\n    <xsl:text>&#xa;&#xa;</xsl:text>\n    <xsl:if test=\"following-sibling::text()[normalize-space()] or following-sibling::*\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"mrow\">\n    <xsl:if test=\"ancestor::ul|ancestor::ol\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:apply-templates select=\"text()|var|xref\" />\n    <xsl:if test=\"not(following-sibling::*[self::mrow or self::intertext])\">\n        <!-- look ahead to absorb immediate clause-ending punctuation -->\n        <!-- pass the enclosing environment (md) as the context       -->\n        <xsl:apply-templates select=\"parent::md[mrow]\" mode=\"get-clause-punctuation\" />\n    </xsl:if>\n    <!-- PG cannot actually mirror LaTeX intertext functionality. As  -->\n    <!-- a consequence, we should not line break an mrow that         -->\n    <!-- immediately preceds an intertext.                            -->\n    <xsl:if test=\"following-sibling::mrow and not(following-sibling::*[1][self::intertext])\">\n       <xsl:text>\\\\</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Groupings -->\n<!-- ######### -->\n\n<!-- We cannot rely on the -common templates for these,   -->\n<!-- because if they contain math, we need to respect the -->\n<!-- human readable parameter.                            -->\n\n<xsl:template match=\"q\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:apply-templates select=\".\" mode=\"lq-character\"/>\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".\" mode=\"rq-character\"/>\n</xsl:template>\n\n<xsl:template match=\"sq\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:apply-templates select=\".\" mode=\"lsq-character\"/>\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".\" mode=\"rsq-character\"/>\n</xsl:template>\n\n<xsl:template match=\"dblbrackets\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"ldblbracket-character\"/>\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:call-template name=\"rdblbracket-character\"/>\n</xsl:template>\n\n<xsl:template match=\"angles\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:call-template name=\"langle-character\"/>\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:call-template name=\"rangle-character\"/>\n</xsl:template>\n\n\n<!-- ########################## -->\n<!-- Numbers, units, quantities -->\n<!-- ########################## -->\n\n<!-- Implemented similarly as in pretext-html.xsl, but we avoid the       -->\n<!-- unicode thinspace. And avoid the unicode fraction slash with sub and -->\n<!-- sup elements for a fractional unit. And implement exponent with a    -->\n<!-- literal ^ instead of superscript. Perhaps once unicode is supported  -->\n<!-- in WeBWorK, revisit some of these differences.                       -->\n<xsl:template match=\"quantity\">\n    <!-- warning if there is no content -->\n    <xsl:if test=\"not(descendant::unit) and not(descendant::per) and not(descendant::mag)\">\n        <xsl:message>\n        <xsl:text>PTX:WARNING: magnitude or units needed</xsl:text>\n        </xsl:message>\n    </xsl:if>\n    <!-- print magnitude if there is one -->\n    <xsl:if test=\"descendant::mag\">\n        <xsl:apply-templates select=\"mag\"/>\n        <!-- if the units that follow are fractional, space -->\n        <xsl:if test=\"descendant::per\">\n            <xsl:text> </xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <!-- if there are non-fracitonal units, print them -->\n    <xsl:if test=\"descendant::unit and not(descendant::per)\">\n        <xsl:apply-templates select=\"unit\" />\n    </xsl:if>\n    <!-- if there are fracitonal units with a numerator part, print them -->\n    <xsl:if test=\"descendant::unit and descendant::per\">\n        <xsl:apply-templates select=\"unit\" />\n        <xsl:text>/</xsl:text>\n        <xsl:apply-templates select=\"per\" />\n    </xsl:if>\n    <!-- if there are fracitonal units without a numerator part, print them -->\n    <xsl:if test=\"not(descendant::unit) and descendant::per\">\n        <xsl:text>1</xsl:text>\n        <xsl:text>/</xsl:text>\n        <xsl:apply-templates select=\"per\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- Magnitude                                      -->\n<xsl:template match=\"mag\">\n    <xsl:variable name=\"mag\">\n        <xsl:apply-templates/>\n    </xsl:variable>\n    <xsl:value-of select=\"str:replace($mag,'\\pi','[`\\pi`]')\"/>\n</xsl:template>\n\n<!-- unit and per children of a quantity element    -->\n<!-- have a mandatory base attribute                -->\n<!-- may have prefix and exp attributes             -->\n<!-- base and prefix are not abbreviations          -->\n\n<xsl:key name=\"prefix-key\" match=\"prefix\" use=\"concat(../@name, @full)\"/>\n<xsl:key name=\"prefix-key\" match=\"prefix\" use=\"concat(../@name, @full)\"/>\n<xsl:key name=\"base-key\" match=\"base\" use=\"concat(../@name, @full)\"/>\n\n<xsl:template match=\"unit|per\">\n    <xsl:if test=\"not(parent::quantity)\">\n        <xsl:message>PTX:WARNING: unit or per element should have parent quantity element</xsl:message>\n    </xsl:if>\n    <!-- if the unit is 1st and no mag, no need for thinspace. Otherwise, give space -->\n    <xsl:if test=\"position() != 1 or (local-name(.)='unit' and (preceding-sibling::mag or following-sibling::mag) and not(preceding-sibling::per or following-sibling::per))\">\n        <xsl:text> </xsl:text>\n    </xsl:if>\n    <!-- prefix is optional -->\n    <xsl:if test=\"@prefix\">\n        <xsl:variable name=\"prefix\">\n            <xsl:value-of select=\"@prefix\" />\n        </xsl:variable>\n        <xsl:variable name=\"short\">\n            <xsl:for-each select=\"document('pretext-units.xsl')\">\n                <xsl:value-of select=\"key('prefix-key',concat('prefixes',$prefix))/@short\"/>\n            </xsl:for-each>\n        </xsl:variable>\n        <xsl:value-of select=\"$short\" />\n    </xsl:if>\n    <!-- base unit is *mandatory* so check to see if it has been provided -->\n    <xsl:choose>\n        <xsl:when test=\"@base\">\n            <xsl:variable name=\"base\">\n                <xsl:value-of select=\"@base\" />\n            </xsl:variable>\n            <xsl:variable name=\"short\">\n                <xsl:for-each select=\"document('pretext-units.xsl')\">\n                    <xsl:value-of select=\"key('base-key',concat('bases',$base))/@short\"/>\n                </xsl:for-each>\n            </xsl:variable>\n            <xsl:value-of select=\"$short\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>\n                <xsl:text>PTX:WARNING: base unit needed</xsl:text>\n            </xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- exponent is optional -->\n    <xsl:if test=\"@exp\">\n        <xsl:text>^</xsl:text>\n        <xsl:value-of select=\"@exp\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- Various Markup -->\n<!-- ############## -->\n\n<xsl:template match=\"url\">\n    <xsl:text>[@htmlLink(\"</xsl:text>\n    <xsl:value-of select=\"@href\" />\n    <xsl:text>\",\"</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"not(*) and not(normalize-space())\">\n            <xsl:value-of select=\"@href\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\",\"TARGET='_blank'\")@]*</xsl:text>\n</xsl:template>\n\n<!-- http://webwork.maa.org/wiki/Introduction_to_PGML#Basic_Formatting -->\n\n<!-- two spaces at line-end makes a newline in PGML-->\n<xsl:template match=\"cell/line\">\n    <!-- This leads to lines of PG code that would ideally be indented     -->\n    <!-- for human readability, but it cannot be avoided because the       -->\n    <!-- cell is fed to PGML::Format(), and would act on the indentation.  -->\n    <xsl:apply-templates/>\n    <xsl:text>  &#xa;</xsl:text>\n</xsl:template>\n\n<!-- Emphasis: underscores produce italic -->\n<!-- Foreign:  for phrases                -->\n<xsl:template match=\"em|foreign\">\n    <xsl:text>_</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>_</xsl:text>\n</xsl:template>\n\n<!-- Booktitle: slanted normally, we italic here-->\n<xsl:template match=\"booktitle\">\n    <xsl:text>_</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>_</xsl:text>\n</xsl:template>\n\n<!-- Alert: asterik-underscore produces bold-italic -->\n<xsl:template match=\"alert\">\n    <xsl:text>*</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>*</xsl:text>\n</xsl:template>\n\n<!-- TeX logo  -->\n<xsl:template match=\"tex\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:choose>\n        <xsl:when test=\"$b-human-readable\">\n            <xsl:text>[@MODES(HTML =&gt; '\\(\\mathrm\\TeX\\)', TeX =&gt; '\\TeX', PTX =&gt; '&lt;tex/&gt;')@]*</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>[@MODES(HTML=&gt;'\\(\\mathrm\\TeX\\)',TeX=&gt;'\\TeX', PTX=&gt;'&lt;tex/&gt;')@]*</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- LaTeX logo  -->\n<xsl:template match=\"latex\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:choose>\n        <xsl:when test=\"$b-human-readable\">\n            <xsl:text>[$LATEX]*</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>[$TEX]*</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- PGML is content with \"dumb\" quotes and will do    -->\n<!-- the right thing in a conversion to \"smart\" quotes -->\n<!-- in various WW output formats                      -->\n<!-- Futhermore, PGML is not organized to receive      -->\n<!-- \"smart\" quotes, and especially not quotation      -->\n<!-- marks that vary by language.  So we just keep it  -->\n<!-- very simple here.  Note: a static version of a WW -->\n<!-- problem may be produced with  \"q\"  or  \"sq\"       -->\n<!-- elements in it.  And then be incorporated in a    -->\n<!-- document with a  @xml:lang  element that gives a  -->\n<!-- very different rendering.  The pre-processor      -->\n<!-- might be able to \"fix\" this.                      -->\n\n<xsl:template match=\"*\" mode=\"lsq-character\">\n    <xsl:text>'</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"rsq-character\">\n    <xsl:text>'</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"lq-character\">\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"rq-character\">\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<!-- http://webwork.maa.org/wiki/Special_Characters_-_PGML -->\n<!-- suggests PGML understands the TeX special characters. -->\n<!-- There seems enough exceptions that we will routinely  -->\n<!-- escape them. We definitely need to author ampersands  -->\n<!-- and angle brackets with XML elements to avoid source  -->\n<!-- conflicts, the others are conveniences. \\ is PGML's   -->\n<!-- escape character, thus is itself escaped              -->\n<!--   <, >, &, %, $, ^, _, #, ~, {, }                     -->\n\n<!-- NB: angle brackets as characters are not                 -->\n<!-- implemented throughout PTX.  But for math *only*         -->\n<!-- (ie LaTeX) the macros \\lt, \\gt are supported universally -->\n\n<!--       Alex Jordan, 2018-12-07, pretext-dev list                 -->\n<!--                                                                 -->\n<!-- * >  if there are two of these and then a space at the          -->\n<!--      start of a line, right justify the line.                   -->\n<!--                                                                 -->\n<!-- * <  if the above is in effect, and the line ends with          -->\n<!--      a space and two of these, center the line.                 -->\n<!--                                                                 -->\n<!-- * Some combinations of whitespace before the &lt;&lt; and       -->\n<!--   after the &gt;&gt; will prevent any action and print the      -->\n<!--   characters, and other combinations allow the action. I        -->\n<!--   think this is a bug and white space should not prevent        -->\n<!--   the action.                                                   -->\n<!--                                                                 -->\n<!-- * &, %, ^, ~  No need to escape in PGML                         -->\n<!--                                                                 -->\n<!-- * $  No need to escape dollar in PGML, however this needs to be -->\n<!--      escaped when in image descriptions. And harmless to escape -->\n<!--      in PGML.                                                   -->\n<!--                                                                 -->\n<!-- * _  If there are two of these in a line, the parts in          -->\n<!--      between are italicized.                                    -->\n<!--                                                                 -->\n<!-- * [, ] should always be escaped if you want the characters      -->\n<!--        printed. Except if they don't pair up, you don't need to -->\n<!--        escape them.                                             -->\n<!--                                                                 -->\n<!-- * #  If n of these are at the start of a line, that makes       -->\n<!--      the line a heading level n. Whitespace before the # may or -->\n<!--      may not break that, but I think it is a bug and whitespace -->\n<!--      shouldn't break that. Otherwise # doesn't need escaping.   -->\n<!--                                                                 -->\n<!-- * {  I think only needs to be escaped when immediately          -->\n<!--      follow a [ ] pair.                                         -->\n<!--                                                                 -->\n<!-- * }  Not sure about this one if it ever would need escaping.    -->\n<!--                                                                 -->\n<!-- * - - -, ===  Three or more of these in a row make a horizontal -->\n<!--             rule when they start a line, even if other          -->\n<!--             characters come after on that line. (They get       -->\n<!--             printed on the next line.) Leading white space      -->\n<!--             seems to prevent this but I don't think it should.  -->\n<!--                                                                 -->\n<!-- * *  Always escape this if you want the character.              -->\n<!--                                                                 -->\n<!--                                                                 -->\n<!-- * -, + Escape these if they are the first non-white space       -->\n<!--       character on a line or they will start an unordered list. -->\n<!--                                                                 -->\n<!-- * ```  three backticks start and end \"code\" which is more like  -->\n<!--        PTX pre                                                  -->\n<!--                                                                 -->\n<!-- * :  A line opening with a colon and two (three) spaces makes   -->\n<!--      preformatted text. (not really a verbatim block)           -->\n<!--                                                                 -->\n<!-- * ', \" If you want \"dumb\" quotes, escape them.                  -->\n<!--                                                                 -->\n<!-- * \\    Always escape backslash.                                 -->\n<!-- #################################################### -->\n\n<!-- Ellipsis -->\n<!-- Just three periods -->\n<xsl:template name=\"ellipsis-character\">\n    <xsl:text>...</xsl:text>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Text Processing -->\n<!-- ############### -->\n\n<!-- The general template for matching \"text()\" nodes will     -->\n<!-- apply this template (there is a hook there).  Verbatim    -->\n<!-- text should be manipulated in templates with              -->\n<!-- \"xsl:value-of\" and so not come through here.  Conversely, -->\n<!-- when \"xsl:apply-templates\" is applied, the template will  -->\n<!-- have effect.                                              -->\n<!--                                                           -->\n<!-- These are characters which PGML gives special meaning,    -->\n<!-- and should be escaped to prevent accidents.               -->\n\n<!-- Necessary to prevent XML quote confusion -->\n<xsl:variable name=\"apostrophe\">\n    <xsl:text>'</xsl:text>\n</xsl:variable>\n\n<xsl:template name=\"text-processing\">\n    <xsl:param name=\"text\"/>\n\n    <!-- NB: many of these symbols only need to be disrupted in certain    -->\n    <!-- locations or in certain combinations.  With regular expressions   -->\n    <!-- in XSLT 3 we could do better, especially in cases where the       -->\n    <!-- effect only happens at the start of a line.  So, as is, we overdo -->\n    <!-- it, without making too big of an unnecessary mess elsewhere.      -->\n    <!--                                                                   -->\n    <!-- Precise regular expressions for various conditions are at         -->\n    <!-- https://github.com/openwebwork/pg/blob/master/macros/PGML.pl      -->\n    <!-- (as of 2018-12-09)                                                -->\n\n    <!-- Backslash first, since more will be introduced in other replacements -->\n    <xsl:variable name=\"backslash-fixed\" select=\"str:replace($text,            '\\', '\\\\')\"/>\n    <xsl:variable name=\"dollar-fixed\"    select=\"str:replace($backslash-fixed, '$', '\\$')\"/>\n    <xsl:variable name=\"asterisk-fixed\"  select=\"str:replace($dollar-fixed,    '*', '\\*')\"/>\n    <xsl:variable name=\"hash-fixed\"      select=\"str:replace($asterisk-fixed,  '#', '\\#')\"/>\n    <xsl:variable name=\"lbrace-fixed\"    select=\"str:replace($hash-fixed,      '{', '\\{')\"/>\n    <xsl:variable name=\"rbrace-fixed\"    select=\"str:replace($lbrace-fixed,    '}', '\\}')\"/>\n    <xsl:variable name=\"lbracket-fixed\"  select=\"str:replace($rbrace-fixed,    '[', '\\[')\"/>\n    <xsl:variable name=\"rbracket-fixed\"  select=\"str:replace($lbracket-fixed,  ']', '\\]')\"/>\n\n    <!-- We translate textual apostrophes to the escape sequence [$APOS] -->\n    <!-- <xsl:variable name=\"apostrophe-fixed\"  select=\"str:replace($rbracket-fixed, $apostrophe, '[$APOS]')\"/> -->\n\n    <!-- Break up right justify AND center line -->\n    <xsl:variable name=\"centerline-fixed\" select=\"str:replace($rbracket-fixed, '&gt;&gt; ', '\\&gt;\\&gt;')\"/>\n\n    <!-- Break up any possibility of paired underscores for italics (overkill) -->\n    <xsl:variable name=\"italicization-fixed\" select=\"str:replace($centerline-fixed, '_', '\\_')\"/>\n\n    <!-- Break up horizontal rule from three equals or three hyphens -->\n    <!-- We escape the *middle* symbol, as a minimal disruption      -->\n    <xsl:variable name=\"equalrule-fixed\"  select=\"str:replace($italicization-fixed, '===', '=\\==')\"/>\n    <xsl:variable name=\"hyphenrule-fixed\" select=\"str:replace($equalrule-fixed,     '---', '-\\--')\"/>\n\n    <!-- A line-leading hyphen is a list item, but we don't want *every* hyphen escaped  -->\n    <!-- So we trap a hyphen with a space after it, as a compromise                      -->\n    <!-- A regular expression with a match on \"line beginning\" will work better          -->\n    <!-- A plus sign is similar, but outside mathematics, not so pervasive               -->\n    <!-- NB: the hyphen substitution should not introduce consecutive backslashes when   -->\n    <!-- triple-hyphen above is disrupted                                                -->\n    <xsl:variable name=\"unordered-hyphen-fixed\" select=\"str:replace($hyphenrule-fixed,       '- ', '\\- ')\"/>\n    <xsl:variable name=\"unordered-plus-fixed\"   select=\"str:replace($unordered-hyphen-fixed, '+',  '\\+')\"/>\n\n    <!-- Triple backticks indicate code?  Not implemented. -->\n\n    <xsl:value-of select=\"$unordered-plus-fixed\"/>\n</xsl:template>\n\n<!-- Verbatim Snippets, Code -->\n<!-- *Must* be \"value-of\" to avoid low-level text-processing template -->\n<xsl:template name=\"code-wrapper\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"contains($content,'[|') or contains($content,'|]')\">\n            <xsl:message>PTX:ERROR:   the strings '[|' and '|]' are not supported within verbatim text (\"<xsl:value-of select=\"$content\"/>\") in WeBWorK problems</xsl:message>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>[|</xsl:text>\n            <xsl:value-of select=\"$content\"/>\n            <xsl:text>|]*</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Lines of Code -->\n<!-- Note this contruct uses PGML ```,                   -->\n<!-- so it will return with the encompassing p closed,   -->\n<!-- and inside a pre. WeBWorK doesn't really know where -->\n<!-- p's open and close, so we can't hop to return cd.   -->\n<xsl:template match=\"cd\">\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:call-template name=\"potential-list-indent\" />\n    <xsl:text>```&#xa;</xsl:text>\n    <!-- Subsequent lines of PGML should not be indented -->\n    <xsl:choose>\n        <xsl:when test=\"cline\">\n            <xsl:apply-templates select=\"cline\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\" select=\".\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>```&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"cline\">\n    <xsl:variable name=\"trimmed-text\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- Remove carriage return, then append three spaces and carriage return for PGML line break -->\n    <xsl:value-of select=\"concat(substring($trimmed-text, 1, string-length($trimmed-text) - 1),'   &#xa;')\"/>\n</xsl:template>\n\n\n<!-- Preformatted Text -->\n<!-- Sanitization analyzes *all* lines for left margin. -->\n<xsl:template match=\"pre\">\n    <xsl:text>```&#xa;</xsl:text>\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n    <xsl:text>```&#xa;&#xa;</xsl:text>\n</xsl:template>\n\n<!-- The next three are WW macros that PGML will format  -->\n<!-- properly for WW HTML or LaTeX output, and so we use -->\n<!-- them as the desired characters                      -->\n\n<!-- Nonbreaking space -->\n<xsl:template name=\"nbsp-character\">\n    <xsl:text>[$NBSP]*</xsl:text>\n</xsl:template>\n\n<!-- En dash           -->\n<xsl:template name=\"ndash-character\">\n    <xsl:text>[$NDASH]*</xsl:text>\n</xsl:template>\n\n<!-- Em dash           -->\n<xsl:template name=\"mdash-character\">\n    <xsl:text>[$MDASH]*</xsl:text>\n</xsl:template>\n\n<!-- The abstract template for \"mdash\" consults a publisher option -->\n<!-- for thin space, or no space, surrounding an em-dash.  So the  -->\n<!-- \"thin-space-character\" is needed for that purpose, and does   -->\n<!-- not have an associated empty PTX element.                     -->\n<!-- Cannot find such a thing documented for PGML, so just normal  -->\n\n<xsl:template name=\"thin-space-character\">\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n\n<!-- ##### -->\n<!-- Lists -->\n<!-- ##### -->\n\n<!-- Implement PGML unordered lists -->\n<xsl:template match=\"ul|ol\">\n    <xsl:param name=\"b-human-readable\" />\n    <!-- Lists are always inside a p.                                         -->\n    <!-- If some text content or other elements precede the list within the p -->\n    <!-- then line break to get a clean start. Otherwise do nothing; assume   -->\n    <!-- whatever preceded the list gave adequate line breaks.                -->\n    <xsl:if test=\"preceding-sibling::text()[normalize-space()] or preceding-sibling::*\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"li\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- When a list ends, there may be more content before the p ends. This  -->\n    <!-- content needs to be indented the proper amount when the list was a   -->\n    <!-- nested list.                                                         -->\n    <xsl:if test=\"following-sibling::text()[normalize-space()] or following-sibling::*\">\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"li\">\n    <xsl:param name=\"b-human-readable\" />\n    <!-- Indent according to list depth; note this differs from potential-list-indent template. -->\n    <xsl:call-template name=\"duplicate-string\">\n        <xsl:with-param name=\"count\" select=\"4 * (count(ancestor::ul) + count(ancestor::ol) - 1)\" />\n        <xsl:with-param name=\"text\"  select=\"' '\" />\n    </xsl:call-template>\n    <xsl:choose>\n        <xsl:when test=\"parent::ul\">\n            <xsl:choose>\n                <xsl:when test=\"parent::*/@marker='disc'\">*</xsl:when>\n                <xsl:when test=\"parent::*/@marker='circle'\">o</xsl:when>\n                <xsl:when test=\"parent::*/@marker='square'\">+</xsl:when>\n                <xsl:otherwise>\n                    <xsl:choose>\n                        <xsl:when test=\"count(ancestor::ul) mod 3 = 1\">*</xsl:when>\n                        <xsl:when test=\"count(ancestor::ul) mod 3 = 2\">o</xsl:when>\n                        <xsl:when test=\"count(ancestor::ul) mod 3 = 0\">+</xsl:when>\n                    </xsl:choose>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text> </xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::ol\">\n            <xsl:choose>\n                <xsl:when test=\"contains(parent::*/@marker,'1')\">1</xsl:when>\n                <xsl:when test=\"contains(parent::*/@marker,'a')\">a</xsl:when>\n                <xsl:when test=\"contains(parent::*/@marker,'A')\">A</xsl:when>\n                <xsl:when test=\"contains(parent::*/@marker,'i')\">i</xsl:when>\n                <xsl:when test=\"contains(parent::*/@marker,'I')\">I</xsl:when>\n                <xsl:otherwise>\n                    <!-- the exercise will be numbered with Arabic numerals, -->\n                    <!-- so we start the default cycle with lower-case Latin -->\n                    <xsl:choose>\n                        <xsl:when test=\"count(ancestor::ol) mod 4 = 1\">a</xsl:when>\n                        <xsl:when test=\"count(ancestor::ol) mod 4 = 2\">i</xsl:when>\n                        <xsl:when test=\"count(ancestor::ol) mod 4 = 3\">A</xsl:when>\n                        <xsl:when test=\"count(ancestor::ol) mod 4 = 0\">1</xsl:when>\n                    </xsl:choose>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>.  </xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <!-- If the very first thing inside the li is a list or display math, we must line break before it -->\n    <!-- starts. However the line with the li needs *some* non-space characater or it will be ignored  -->\n    <!-- so we give it a NBSP.                                                                         -->\n    <xsl:if test=\"(child::*|child::text())[normalize-space()][1][self::p] and\n                  (\n                    (child::p[1]/child::*|child::p[1]/child::text())[normalize-space()][1][self::ol] or\n                    (child::p[1]/child::*|child::p[1]/child::text())[normalize-space()][1][self::ul] or\n                    (child::p[1]/child::*|child::p[1]/child::text())[normalize-space()][1][self::me] or\n                    (child::p[1]/child::*|child::p[1]/child::text())[normalize-space()][1][self::md[not(mrow)]] or\n                    (child::p[1]/child::*|child::p[1]/child::text())[normalize-space()][1][self::md[mrow]]\n                  )\">\n        <xsl:text>[$NBSP]*&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <!-- Explicitly end lists with three trailing spaces when at the absolute end of all nested list -->\n    <!-- in document order. For structured list items with p, image, tabular children, this trailing -->\n    <!-- whitespace must be added in respective templates prior to their trailing line breaks.       -->\n    <xsl:if test=\"(child::*|child::text())[normalize-space()][position()=last()][self::text()] and not(following::*[1][self::li])\">\n        <xsl:text>   </xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ###### -->\n<!-- Tables -->\n<!-- ###### -->\n\n<xsl:template match=\"table\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:apply-templates select=\"*[not(self::caption)]\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"tabular\" mode=\"components\">\n    <xsl:param name=\"b-human-readable\" />\n\n    <xsl:text>[@DataTable(</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:call-template name=\"potential-list-indent\" />\n        <xsl:text>  </xsl:text>\n    </xsl:if>\n    <xsl:text>[</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"row\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"potential-list-indent\" />\n        <xsl:text>  </xsl:text>\n    </xsl:if>\n    <xsl:text>],</xsl:text>\n    <xsl:call-template name=\"key-value\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n        <xsl:with-param name=\"key\" select=\"'align'\"/>\n        <xsl:with-param name=\"value\">\n            <xsl:apply-templates select=\".\" mode=\"texalignment\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <!-- niceTables default for valign is top -->\n    <xsl:if test=\"@valign = str:tokenize('bottom middle') or not(@valign) or @valign = ''\">\n        <xsl:call-template name=\"key-value\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            <xsl:with-param name=\"key\" select=\"'valign'\"/>\n            <xsl:with-param name=\"value\">\n                <xsl:choose>\n                    <xsl:when test=\"@valign = 'bottom'\">\n                        <xsl:text>bottom</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>middle</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <!-- is there a top border? -->\n    <xsl:if test=\"@top = str:tokenize('minor medium major', ' ')\">\n        <xsl:call-template name=\"key-value\">\n            <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n            <xsl:with-param name=\"key\" select=\"'top'\"/>\n            <xsl:with-param name=\"value\">\n                <xsl:call-template name=\"pg-hrule-specification\">\n                    <xsl:with-param name=\"width\" select=\"@top\"/>\n                </xsl:call-template>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"potential-list-indent\" />\n    </xsl:if>\n    <xsl:text>);@]*</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"tabular\" mode=\"texalignment\">\n    <!-- left border -->\n    <xsl:if test=\"@left\">\n        <xsl:call-template name=\"pg-vrule-specification\">\n            <xsl:with-param name=\"width\" select=\"@left\" />\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:choose>\n        <!-- go through cols if we have them -->\n        <xsl:when test=\"col\">\n            <xsl:apply-templates select=\"col\" mode=\"texalignment\"/>\n        </xsl:when>\n        <!-- there are no cols, so tabular attributes and defaults are in control -->\n        <!-- but we guess how many columns there are using the first row          -->\n        <xsl:otherwise>\n            <xsl:text>*{</xsl:text>\n            <xsl:value-of select=\"count(row[1]/cell) + sum(row[1]/cell[@colspan]/@colspan) - count(row[1]/cell[@colspan])\"/>\n            <xsl:text>}{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"per-column-specification\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"tabular\" mode=\"per-column-specification\">\n    <!-- halign is an l, c, or r -->\n    <xsl:call-template name=\"halign-specification\">\n        <xsl:with-param name=\"align\">\n            <xsl:choose>\n                <!-- if the tabular has a specification -->\n                <xsl:when test=\"@halign\">\n                    <xsl:value-of select=\"@halign\" />\n                </xsl:when>\n                <!-- else the PTX default -->\n                <xsl:otherwise>\n                    <xsl:text>left</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:with-param>\n    </xsl:call-template>\n    <!-- now the right border, if any -->\n    <xsl:call-template name=\"pg-vrule-specification\">\n        <xsl:with-param name=\"width\" select=\"@right\" />\n    </xsl:call-template>\n </xsl:template>\n\n<xsl:template match=\"col\" mode=\"texalignment\">\n    <xsl:choose>\n        <!-- if the column has a width we use that in a p{}-->\n        <xsl:when test=\"@width != ''\">\n            <xsl:text>p{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"absolute-width-inches\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <!-- otherwise use an l, c, or r -->\n        <xsl:otherwise>\n            <xsl:call-template name=\"halign-specification\">\n                <xsl:with-param name=\"align\">\n                    <xsl:choose>\n                        <!-- if the column has a specification -->\n                        <xsl:when test=\"@halign\">\n                            <xsl:value-of select=\"@halign\" />\n                        </xsl:when>\n                        <!-- else if the tabular has a specification -->\n                        <xsl:when test=\"../@halign\">\n                            <xsl:value-of select=\"../@halign\" />\n                        </xsl:when>\n                        <!-- else the PTX default -->\n                        <xsl:otherwise>\n                            <xsl:text>left</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- now the right border, if any -->\n    <xsl:call-template name=\"pg-vrule-specification\">\n        <xsl:with-param name=\"width\">\n            <xsl:choose>\n                <xsl:when test=\"@right\">\n                    <xsl:value-of select=\"@right\"/>\n                </xsl:when>\n                <xsl:when test=\"../@right\">\n                    <xsl:value-of select=\"../@right\"/>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"absolute-width-inches\">\n    <xsl:variable name=\"percent-width\">\n        <xsl:call-template name=\"normalize-percentage\">\n            <xsl:with-param name=\"percentage\" select=\"@width\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:value-of select=\"concat(number(substring-before($percent-width,'%')) div 100 * 6.25, 'in')\"/>\n</xsl:template>\n\n\n<xsl:template match=\"tabular/row\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"potential-list-indent\" />\n        <xsl:text>    </xsl:text>\n    </xsl:if>\n    <xsl:text>[</xsl:text>\n    <xsl:apply-templates select=\"cell\">\n        <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\" />\n    </xsl:apply-templates>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:call-template name=\"potential-list-indent\" />\n        <xsl:text>    </xsl:text>\n    </xsl:if>\n    <xsl:text>],</xsl:text>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<xsl:template match=\"cell\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"$b-human-readable and preceding-sibling::cell\">\n        <xsl:call-template name=\"potential-list-indent\" />\n        <xsl:text>     </xsl:text>\n    </xsl:if>\n\n    <!-- A goal is to minimize length of code, so we work hard here to ascertain -->\n    <!-- when a given cell specification like valign can be omitted, because the -->\n    <!-- inherited or default value does the same thing.                         -->\n\n    <!-- work out which col's left edge and which col's right edge align with this cell -->\n    <xsl:variable name=\"left-col\" select=\"count(preceding-sibling::cell) + sum(preceding-sibling::cell[@colspan]/@colspan) - count(preceding-sibling::cell[@colspan]) + 1\"/>\n    <xsl:variable name=\"right-col\" select=\"$left-col + sum(self::cell[@colspan]/@colspan) - count(self::cell[@colspan])\"/>\n\n    <!-- work out if the cell needs to declare bottom -->\n    <xsl:variable name=\"tabular-bottom\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/@bottom = str:tokenize('minor medium major', ' ')\">\n                <xsl:value-of select=\"ancestor::tabular[1]/@bottom\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"row-bottom\">\n        <xsl:choose>\n            <xsl:when test=\"parent::row/@bottom = str:tokenize('minor medium major none', ' ')\">\n                <xsl:value-of select=\"parent::row/@bottom\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$tabular-bottom\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"cell-bottom\">\n        <xsl:choose>\n            <xsl:when test=\"@bottom = str:tokenize('minor medium major none', ' ')\">\n                <xsl:value-of select=\"@bottom\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$row-bottom\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- work out if the cell needs to declare valign -->\n    <xsl:variable name=\"tabular-valign\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/@valign = str:tokenize('top bottom', ' ')\">\n                <xsl:value-of select=\"ancestor::tabular[1]/@valign\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>middle</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"row-valign\">\n        <xsl:choose>\n            <xsl:when test=\"parent::row/@valign = str:tokenize('top middle bottom', ' ')\">\n                <xsl:value-of select=\"parent::row/@valign\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$tabular-valign\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- work out if the cell needs to declare halign -->\n    <xsl:variable name=\"tabular-halign\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/@halign = str:tokenize('center right', ' ')\">\n                <xsl:value-of select=\"ancestor::tabular[1]/@halign\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>left</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"col-halign\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/col[$left-col]/@halign = str:tokenize('center right left', ' ') and ancestor::tabular[1]/col[$left-col]/@halign != $tabular-halign\">\n                <xsl:value-of select=\"ancestor::tabular[1]/col[$left-col]/@halign\"/>\n            </xsl:when>\n            <xsl:when test=\"ancestor::tabular[1]/col[$left-col]/@halign = 'justify' and 'left' != $tabular-halign\">\n                <xsl:text>left</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$tabular-halign\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"row-halign\">\n        <xsl:choose>\n            <xsl:when test=\"parent::row/@halign = str:tokenize('center right left', ' ') and parent::row/@halign != $col-halign\">\n                <xsl:value-of select=\"parent::row/@halign\"/>\n            </xsl:when>\n            <xsl:when test=\"parent::row/@halign = 'justify' and 'left' != $col-halign\">\n                <xsl:text>left</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$col-halign\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"cell-halign\">\n        <xsl:choose>\n            <xsl:when test=\"@halign = str:tokenize('center right left', ' ') and @halign != $row-halign\">\n                <xsl:value-of select=\"@halign\"/>\n            </xsl:when>\n            <xsl:when test=\"@halign = 'justify' and 'left' != $row-halign\">\n                <xsl:text>left</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$row-halign\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- work out if the cell needs to declare left -->\n    <xsl:variable name=\"tabular-left\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/@left = str:tokenize('minor medium major', ' ')\">\n                <xsl:value-of select=\"ancestor::tabular[1]/@left\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"row-left\">\n        <xsl:choose>\n            <xsl:when test=\"parent::row/@left = str:tokenize('minor medium major none', ' ')\">\n                <xsl:value-of select=\"parent::row/@left\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$tabular-left\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- work out if the cell needs to declare right -->\n    <xsl:variable name=\"tabular-right\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/@right = str:tokenize('minor medium major', ' ')\">\n                <xsl:value-of select=\"ancestor::tabular[1]/@right\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"col-right\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::tabular[1]/col[$right-col]/@right = str:tokenize('minor medium major none', ' ')\">\n                <xsl:value-of select=\"ancestor::tabular[1]/col[$right-col]/@right\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$tabular-right\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"cell-right\">\n        <xsl:choose>\n            <xsl:when test=\"@right = str:tokenize('minor medium major none', ' ') and @right != $col-right\">\n                <xsl:value-of select=\"@right\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$col-right\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:variable name=\"cell-has-traits\" select=\"\n            boolean(@colspan)\n            or\n            $cell-halign != $col-halign\n            or\n            ($row-bottom != 'none' and not(preceding-sibling::cell))\n            or\n            $cell-bottom != $row-bottom\n            or\n            ($row-valign != $tabular-valign and not(preceding-sibling::cell))\n            or\n            ($row-left != $tabular-left and not(preceding-sibling::cell))\n            or\n            $cell-right != $col-right\n    \"/>\n\n    <xsl:choose>\n        <!-- if the cell only has data and no traits to declare, simplify the  -->\n        <!-- output by leaving off the array reference delimiters (brackets)   -->\n        <xsl:when test=\"not($cell-has-traits)\">\n            <xsl:text>PGML(</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"delimit\"/>\n            <xsl:text>),</xsl:text>\n            <xsl:if test=\"$b-human-readable\">\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>[PGML(</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"delimit\"/>\n            <xsl:text>),</xsl:text>\n            <!-- declare rowbottom if needed -->\n            <xsl:if test=\"$row-bottom != 'none' and not(preceding-sibling::cell)\">\n                <xsl:call-template name=\"key-value\">\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    <xsl:with-param name=\"key\" select=\"'rowbottom'\"/>\n                    <xsl:with-param name=\"value\">\n                        <xsl:call-template name=\"pg-hrule-specification\">\n                            <xsl:with-param name=\"width\" select=\"$row-bottom\"/>\n                        </xsl:call-template>\n                    </xsl:with-param>\n                </xsl:call-template>\n                <!-- this is redundant, but it here for backward compatibility -->\n                <xsl:call-template name=\"key-value\">\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    <xsl:with-param name=\"key\" select=\"'midrule'\"/>\n                    <xsl:with-param name=\"value\" select=\"1\"/>\n                </xsl:call-template>\n            </xsl:if>\n             <!-- declare bottom if needed -->\n             <xsl:if test=\"$cell-bottom != $row-bottom\">\n                <xsl:call-template name=\"key-value\">\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    <xsl:with-param name=\"key\" select=\"'bottom'\"/>\n                    <xsl:with-param name=\"value\">\n                        <xsl:call-template name=\"pg-hrule-specification\">\n                            <xsl:with-param name=\"width\" select=\"$cell-bottom\"/>\n                        </xsl:call-template>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:if>\n            <!-- declare valign if needed -->\n            <xsl:if test=\"$row-valign != $tabular-valign and not(preceding-sibling::cell)\">\n                <xsl:call-template name=\"key-value\">\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    <xsl:with-param name=\"key\" select=\"'valign'\"/>\n                    <xsl:with-param name=\"value\" select=\"$row-valign\"/>\n                </xsl:call-template>\n            </xsl:if>\n            <!-- declare halign if needed -->\n            <xsl:if test=\"$cell-halign != $col-halign and not(ancestor::tabular[1]/col[$left-col]/@width) or ($row-left != $tabular-left and not(preceding-sibling::cell)) or ($cell-right != $col-right)\">\n                <xsl:call-template name=\"key-value\">\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    <xsl:with-param name=\"key\" select=\"'halign'\"/>\n                    <xsl:with-param name=\"value\">\n                        <xsl:if test=\"$row-left != $tabular-left and not(preceding-sibling::cell)\">\n                            <xsl:call-template name=\"pg-vrule-specification\">\n                                <xsl:with-param name=\"width\" select=\"$row-left\"/>\n                            </xsl:call-template>\n                        </xsl:if>\n                        <xsl:call-template name=\"halign-specification\">\n                            <xsl:with-param name=\"align\" select=\"$cell-halign\"/>\n                        </xsl:call-template>\n                        <xsl:if test=\"$cell-right != $col-right\">\n                            <xsl:call-template name=\"pg-vrule-specification\">\n                                <xsl:with-param name=\"width\" select=\"$cell-right\"/>\n                            </xsl:call-template>\n                        </xsl:if>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:if>\n            <!-- declare colspan if present-->\n            <xsl:if test=\"@colspan\">\n                <xsl:call-template name=\"key-value\">\n                    <xsl:with-param name=\"b-human-readable\" select=\"$b-human-readable\"/>\n                    <xsl:with-param name=\"key\" select=\"'colspan'\"/>\n                    <xsl:with-param name=\"value\" select=\"@colspan\"/>\n                </xsl:call-template>\n            </xsl:if>\n            <!-- close cell's array reference bracket -->\n            <xsl:text>],</xsl:text>\n            <xsl:if test=\"$b-human-readable\">\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Translate vertical rule width to a LaTeX vertical rule -->\n<xsl:template name=\"pg-vrule-specification\">\n    <xsl:param name=\"width\" />\n    <xsl:choose>\n        <xsl:when test=\"$width = 'none' or $width = '' or not($width)\"/>\n        <xsl:when test=\"$width = 'minor'\">\n            <xsl:text>|</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width = 'medium'\">\n            <xsl:text>!{\\vrule width 0.07em}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width = 'major'\">\n            <xsl:text>!{\\vrule width 0.11em}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING:  left or right attribute not recognized: use none, minor, medium, major</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Translate vertical rule width to a LaTeX vertical rule -->\n<xsl:template name=\"pg-hrule-specification\">\n    <xsl:param name=\"width\" />\n    <xsl:choose>\n        <xsl:when test=\"$width = 'none' or $width = '' or not($width)\">\n            <xsl:text>0</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width = 'minor'\">\n            <xsl:text>1</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width = 'medium'\">\n            <xsl:text>2</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width = 'major'\">\n            <xsl:text>3</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING:  top or bottom attribute not recognized: use none, minor, medium, major</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<xsl:template name=\"key-value\">\n    <xsl:param name=\"b-human-readable\"/>\n    <xsl:param name=\"key\"/>\n    <xsl:param name=\"value\"/>\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:call-template name=\"potential-list-indent\" />\n        <xsl:text>      </xsl:text>\n    </xsl:if>\n    <xsl:value-of select=\"$key\"/>\n    <xsl:choose>\n        <xsl:when test=\"$b-human-readable\">\n            <xsl:text> =&gt; </xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>=&gt;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>'</xsl:text>\n    <xsl:value-of select=\"$value\"/>\n    <xsl:text>',</xsl:text>\n</xsl:template>\n\n\n<!-- ################# -->\n<!-- Utility Templates -->\n<!-- ################# -->\n\n<!-- Very good for readability, very bad for base64 length -->\n<xsl:template name=\"begin-block\">\n    <xsl:param name=\"block-title\"/>\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:if test=\"$b-human-readable\">\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:text>############################################################&#xa;</xsl:text>\n        <xsl:text># </xsl:text>\n        <xsl:value-of select=\"$block-title\"/>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:text>############################################################&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Base indentation for lines of code in the middle of a list -->\n<xsl:template name=\"potential-list-indent\">\n    <xsl:call-template name=\"duplicate-string\">\n        <xsl:with-param name=\"count\" select=\"4 * (count(ancestor::ul) + count(ancestor::ol))\" />\n        <xsl:with-param name=\"text\"  select=\"' '\" />\n    </xsl:call-template>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-prefigure.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates <prefigure> elements and copies them for processing -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:pf=\"https://prefigure.org\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<!-- Output PreFigure XML -->\n<xsl:output method=\"xml\" encoding=\"UTF-8\"/>\n\n<!-- PreFigure graphics to standalone file            -->\n<!-- NB: don't match the empty element that is a text -->\n<!-- generator.  Once PreFigure has a namespace, then -->\n<!-- it should be used here instead.                  -->\n<xsl:template match=\"pf:prefigure[node()]\" mode=\"extraction\">\n    <xsl:variable name=\"filebase\">\n        <xsl:apply-templates select=\".\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <!-- Do not use directories here, as Windows paths will get mangled -->\n    <!-- Instead, set working directory before applying stylesheet      -->\n    <exsl:document href=\"{$filebase}.xml\" method=\"xml\">\n        <!-- xerox the \"prefigure\" element, but with modifications -->\n        <xsl:apply-templates select=\".\" mode=\"prefigure-edit\"/>\n    </exsl:document>\n </xsl:template>\n\n<!-- Identity template, with a mode, so we can edit a diagram -->\n<!-- NB: it does not seem the \"pf:\" is necessary here         -->\n<xsl:template match=\"node()|@*\" mode=\"prefigure-edit\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"prefigure-edit\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Raison d'etre for \"prefigure-edit\": insert a PF \"caption\" with -->\n<!-- a type-name/number pair and a document-wide serial number      -->\n<xsl:template match=\"pf:diagram\" mode=\"prefigure-edit\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"prefigure-edit\"/>\n        <!-- insert a PF \"caption\", hopefully with helpful content -->\n        <!-- duplicate indentation of first child of \"diagram\" to  -->\n        <!-- make insertion of the first new children look good    -->\n        <xsl:value-of select=\"text()[1]\"/>\n        <xsl:comment> Reference to containing ancestor comes from PreTeXt context     </xsl:comment>\n        <xsl:value-of select=\"text()[1]\"/>\n        <xsl:comment> Serial number is from document-wide count of PreFigure diagrams </xsl:comment>\n        <xsl:value-of select=\"text()[1]\"/>\n        <xsl:element name=\"caption\" namespace=\"https://prefigure.org\">\n            <!-- pf:diagram, pf:prefigure, and \"image\" all lack meaningful  -->\n            <!-- numbers, so start searching for a [location with a number] -->\n            <!-- from the parent of the \"image\"                             -->\n            <xsl:apply-templates select=\"parent::pf:prefigure/parent::image/parent::*\" mode=\"prefigure-container\"/>\n            <!-- previous template supplies a space, if it provides a type/number pair -->\n            <!-- Serial number, just document-wide for pf:prefigure -->\n            <!-- NB: implement this as part of the overall numbering -->\n            <!-- scheme, so it comes through as an attribute.        -->\n            <xsl:text>(</xsl:text>\n            <!-- pf:diagram is current context, no danger that an empty \"pretext\" -->\n            <!-- generator will be mistakenly used for the @from pattern          -->\n            <xsl:number count=\"pf:prefigure\" from=\"pretext\" level=\"any\"/>\n            <xsl:text>)</xsl:text>\n        </xsl:element>\n        <!-- xerox remaining elements -->\n        <xsl:apply-templates select=\"node()\" mode=\"prefigure-edit\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Recurse up the tree, looking for the first element with a -->\n<!-- non-empty number.  Produce type-name and a serial number. -->\n<xsl:template match=\"*\" mode=\"prefigure-container\">\n    <!-- Will test on non-empty number strings.  This can be -->\n    <!-- fooled by elements with un-implemented numbers such -->\n    <!-- as a pure container like a \"sidebyside\".            -->\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n    </xsl:variable>\n\n    <xsl:choose>\n        <!-- this is the safety-valve halting condition -->\n        <xsl:when test=\"self::pretext\"/>\n        <!-- Test here for useless containers that have better parents. -->\n        <!-- Examples might be a \"case\" in a \"proof\" or a \"task\" in an  -->\n        <!-- \"exercise\" or an \"li\" in an \"ol\".                          -->\n        <!-- Then recurse with the parent, as below.                    -->\n        <xsl:when test=\"not($the-number = '')\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\" />\n            <xsl:text> </xsl:text>\n            <xsl:value-of select=\"$the-number\"/>\n            <!-- will always follow with a serial number, -->\n            <!-- so add a space here, since conditional   -->\n            <xsl:text> </xsl:text>\n            <!-- mission accomplished, no more recursion -->\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- step-up (recurse) to the parent -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"prefigure-container\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- PreFigure publication file -->\n<!-- We need a one-off generation of a PreFigure publication    -->\n<!-- file, dumped in the same directory as the extracted source -->\n<!-- diagrams.  So we match the *only* guaranteed node and let  -->\n<!-- it do its thing, and then create the necessary file.       -->\n <xsl:template match=\"/\">\n    <xsl:apply-imports/>\n    <exsl:document href=\"pf_publication.xml\" method=\"xml\">\n        <xsl:element name=\"prefigure\" namespace=\"https://prefigure.org\">\n            <!-- No \"prefigure-preamble\" => nothing produced       -->\n            <xsl:copy-of select=\"$docinfo/pf:prefigure-preamble/*\"/>\n            <!-- $latex-macros is never empty (<, >, &) so always a \"macros\" -->\n            <xsl:element name=\"macros\" namespace=\"https://prefigure.org\">\n                <!-- move to a new line for minimal readability -->\n                <xsl:text>&#xa;</xsl:text>\n                <!-- global variable in -common, includes \\lt, \\gt, \\amp -->\n                <xsl:value-of select=\"$latex-macros\"/>\n            </xsl:element>\n        </xsl:element>\n    </exsl:document>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-qrcode.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet extracts URL information for audio, video,  -->\n<!-- and interactive elements.  For each, it writes a sidecar    -->\n<!-- XML file (via exsl:document) containing a standalone URL    -->\n<!-- and an in-context URL, used later for QR code generation    -->\n<!-- (Python) and for links in static representations            -->\n<!-- (pretext-assembly.xsl).                                     -->\n<!--                                                             -->\n<!-- It is hard to get a link into chunked HTML while actually   -->\n<!-- building generic PreTeXt for a static representation.  The  -->\n<!-- chunking level and file extension are format-specific, but  -->\n<!-- assembly must remain format-neutral.  So we set HTML-        -->\n<!-- specific variables ($chunk-level, $file-extension) here in  -->\n<!-- the extraction stylesheet, which has the highest import     -->\n<!-- precedence.  Assembly then reads the pre-computed URLs from  -->\n<!-- the sidecar files rather than computing them itself.         -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Avoid Catch-22: default assembly/pre-processor provides output  -->\n<!-- for a conversion to a static format, but that format will       -->\n<!-- *replace* \"audio\", \"video\", \"interactive\" by a static version   -->\n<!-- (a \"sidebyside\") and it will not be available for extraction.    -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- In \"normal\" circumstances, this variable is   -->\n<!-- set to \"false()\", but when employing this     -->\n<!-- specialized stylesheet, we override to \"true\" -->\n<xsl:variable name=\"b-extracting-qrcode\" select=\"true()\"/>\n\n<!-- Set HTML-specific variables so that \"containing-filename\" -->\n<!-- (used by \"context-url\") produces correct HTML filenames.  -->\n<!-- These override the abstract defaults in pretext-common.xsl -->\n<!-- by virtue of this stylesheet's higher import precedence.   -->\n<xsl:variable name=\"chunk-level\" select=\"$html-chunk-level\"/>\n<xsl:variable name=\"file-extension\" select=\"'.html'\"/>\n\n<xsl:template match=\"audio[@source|@href]|video[@source|@href|@youtube|@youtubeplaylist|@vimeo]|interactive\" mode=\"extraction\">\n    <!-- Sidecar XML file with pre-computed URLs for use      -->\n    <!-- by pretext-assembly.xsl when building static         -->\n    <!-- representations, and by the Python script when       -->\n    <!-- generating QR code images.                           -->\n    <xsl:variable name=\"the-id\">\n        <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n    </xsl:variable>\n    <exsl:document href=\"{$the-id}-url.xml\" method=\"xml\">\n        <pi:qrcode-urls>\n            <pi:standalone-url>\n                <xsl:apply-templates select=\".\" mode=\"static-url\"/>\n            </pi:standalone-url>\n            <pi:context-url>\n                <xsl:apply-templates select=\".\" mode=\"context-url\"/>\n            </pi:context-url>\n            <pi:embed-iframe-url>\n                <xsl:apply-templates select=\".\" mode=\"embed-iframe-url\"/>\n            </pi:embed-iframe-url>\n        </pi:qrcode-urls>\n    </exsl:document>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-sageplot.xsl",
    "content": "<?xml version='1.0'?> \n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates <sageplot> elements     -->\n<!-- and bundles them into a Sage/Python program     -->\n<!-- The program accepts one command-line parameter: -->\n<!-- the file extension of the desired format        -->\n<!-- (i.e. svg, eps, pdf, png, etc)                  -->\n<!-- N.B. 3D plots always render as PNG              -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\" \n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<!-- Output Sage code as text -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- This stylesheet is parameterized by a requested file format to be  -->\n<!-- produced by Sage, which Sage picks up from file extensions in the  -->\n<!-- filename argument in a .save() method.  We supply this from the    -->\n<!-- pretext/pretext  script, so there is no error checking.  Values    -->\n<!-- vary by the @variant of the \"sageplot\".  *.png  are low-quality    -->\n<!-- (not cropped tight), so even if possible for 2D graphics, we do    -->\n<!-- not build such a thing.  Otherwise the formats are exclusive to    -->\n<!-- their variant (Sage capability).                                   -->\n<!--                                                                    -->\n<!--   2D variant: pdf (LaTeX), svg (HTML) formats                      -->\n<!--   3D variant: png (LaTeX), html (HTML) formats                     -->\n\n<xsl:param name=\"sageplot.fileformat\" select=\"'pdf'\"/>\n\n<!-- Sage graphics to standalone Sage/Python file      -->\n<xsl:template match=\"sageplot\" mode=\"extraction\">\n    <!-- Construct the file for Sage to execute                    -->\n    <!-- Convert final line to an assignment, so we can do save(s) -->\n    <!-- First, basename for the file (Sage input, image output)   -->\n    <!-- Second, the (unique) name of the graphics object in Sage  -->\n    <!-- (We do this first, so we can use \"$filebase\" below)       -->\n    <xsl:variable name=\"filebase\">\n        <xsl:apply-templates select=\".\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <xsl:variable name=\"plot-name\">\n        <xsl:text>plot_</xsl:text>\n        <xsl:value-of select=\"generate-id(.)\" />\n    </xsl:variable>\n    <!-- Look to see if \"sageplot\" is building 2d or 3d -->\n    <xsl:variable name=\"variant\">\n        <xsl:choose>\n            <!-- default is a 2d graphic -->\n            <xsl:when test=\"not(@variant)\">\n                <xsl:text>2d</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@variant = '2d'\">\n                <xsl:text>2d</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@variant = '3d'\">\n                <xsl:text>3d</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:ERROR:   a \"sageplot\" has a @variant attribute (\"<xsl:value-of select=\"@variant\"/>\") for \"<xsl:value-of select=\"$filebase\"/>\" whose value is not \"2d\" nor \"3d\".  The default (\"2d\") is being used, which could be incorrect</xsl:message>\n                <xsl:text>2d</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- has one trailing newline, which we ignore later (?) -->\n    <xsl:variable name=\"plot-code-sanitary\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- remove the trailing newline provided by sanitization -->\n    <xsl:variable name=\"plot-code-trimmed\" select=\"substring($plot-code-sanitary,1,string-length($plot-code-sanitary)-1)\"/>\n    <!-- conditionally provide a breakpoint for single-line source -->\n    <xsl:variable name=\"plot-code\">\n        <xsl:if test=\"not(contains($plot-code-trimmed, '&#xa;'))\">\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:value-of select=\"$plot-code-trimmed\"/>\n    </xsl:variable>\n    <!-- split on last newline, which is first character for single-line source -->\n    <xsl:variable name=\"preamble\">\n        <xsl:call-template name=\"substring-before-last\">\n            <xsl:with-param name=\"input\" select=\"$plot-code\"/>\n            <xsl:with-param name=\"substr\" select=\"'&#xa;'\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:variable name=\"plotcmd\">\n        <xsl:call-template name=\"substring-after-last\">\n            <xsl:with-param name=\"input\" select=\"$plot-code\"/>\n            <xsl:with-param name=\"substr\" select=\"'&#xa;'\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- NB: 2D PNG is not preferable, but needed for EPUB sent to Kindle -->\n    <xsl:variable name=\"b-legal-combination\" select=\"($variant = '2d' and $sageplot.fileformat = 'pdf')\n                                                 or  ($variant = '2d' and $sageplot.fileformat = 'svg')\n                                                 or  ($variant = '2d' and $sageplot.fileformat = 'png')\n                                                 or  ($variant = '3d' and $sageplot.fileformat = 'png')\n                                                 or  ($variant = '3d' and $sageplot.fileformat = 'html')\"/>\n    <!-- Only certain combinations are supported and only certain       -->\n    <!-- combinations are needed in subsequent conversions.  Yes,  this -->\n    <!-- setup is all inefficient to just bail out now.                 -->\n    <!-- Do not use directories here, as Windows paths will get mangled -->\n    <!-- Instead, set working directory before applying stylesheet      -->\n    <xsl:if test=\"$b-legal-combination\">\n        <exsl:document href=\"{$filebase}.sage\" method=\"text\">\n            <!-- Duplicate most code, massage code at last line -->\n            <xsl:value-of select=\"$preamble\" />\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:value-of select=\"$plot-name\" />\n            <xsl:text> = </xsl:text>\n            <xsl:value-of select=\"$plotcmd\" />\n            <xsl:text>&#xa;</xsl:text>\n            <!-- We could build a try/except block here, where a ValueError -->\n            <!-- indicates a fileformat not supported, but we may have that -->\n            <!-- covered.  Would need to get the exception out of the sage  -->\n            <!-- executable invocation in the Python script to relay.       -->\n            <xsl:value-of select=\"$plot-name\" />\n            <xsl:text>.save('</xsl:text>\n            <xsl:value-of select=\"$filebase\" />\n            <xsl:text>.</xsl:text>\n            <xsl:value-of select=\"$sageplot.fileformat\"/>\n            <xsl:text>'</xsl:text>\n            <!-- Need to inform Sage display manager for 3d HTML that we -->\n            <!-- are not inside a notebook or the command-line and we    -->\n            <!-- want self-contained  threejs  apllications with         -->\n            <!-- Javascript coming from a CDN.                           -->\n            <xsl:if test=\"$sageplot.fileformat = 'html'\">\n                <xsl:text>, online=True</xsl:text>\n            </xsl:if>\n            <xsl:text>)&#xa;</xsl:text>\n        </exsl:document>\n    </xsl:if>\n </xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-stack.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates all  exercise/stack  elements and     -->\n<!-- writes out a single file listing the @source attribute value  -->\n<!-- for eaCh one (the files with these names will be sent to a    -->\n<!-- server for conversion to static forms)                        -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Flag an extraction pass, so pretext-assembly does not get confused -->\n<xsl:variable name=\"b-extracting-stack\" select=\"true()\"/>\n\n<xsl:template match=\"exercise/stack\" mode=\"extraction\">\n    <xsl:value-of select=\"@source\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"assembly-id\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-trace.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2022 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates \"program\" elements to render as -->\n<!-- CodeLens for interactive execution.  The code itself is -->\n<!-- processed into a trace by the  pretext/pretext  script. -->\n<!-- It produces text output, with one line per program:     -->\n<!--                                                         -->\n<!--     visible-id, language, source                        -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"str\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Needed for processing content embedded in statements/feedback -->\n<!-- for checkpoint questions                                      -->\n<xsl:import href=\"./pretext-html.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- The default \"exercise-style\" is \"static\". For traces,     -->\n<!-- we will form a different representation, and pass through -->\n<!-- the authored version for a dynamic representation.        -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- Constructs a block of text for trace output                       -->\n<!-- Each of the following as its own line:                            -->\n<!--   visible-id                                                      -->\n<!--   runestone-id                                                    -->\n<!--   trace filename                                                  -->\n<!--   language                                                        -->\n<!--   code with newlines escaped                                      -->\n<!--   starting step                                                   -->\n<!-- Followed by 1 line per checkpoint question                        -->\n<!-- Block ends with blank line (double newline)                       -->\n<xsl:template match=\"program[@interactive = 'codelens']\" mode=\"extraction\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"runestone-codelens-trace-filename\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:variable name=\"code-with-newlines\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\"code\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- Windows text files do not get normalized when xi:included -->\n    <!-- with @parse=\"text\" so a CR-LF line-ending might persist.  -->\n    <!-- We do that normalization first, then convert LF to an     -->\n    <!-- escape sequence that is necessary for conversion.         -->\n    <xsl:variable name=\"removed-carriage-returns\">\n        <xsl:value-of select=\"str:replace($code-with-newlines, '&#xd;&#xa;', '&#xa;')\" />\n    </xsl:variable>\n    <xsl:value-of select=\"str:replace($removed-carriage-returns, '&#xa;', '\\n')\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@starting-step != ''\">\n            <!-- Codelens needs to execute n-1 instructions. It has bounds checking -->\n            <xsl:value-of select=\"number(@starting-step) - 1\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>0</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:for-each select=\"checkpoint\">\n        <xsl:value-of select=\"@line\"/>\n        <xsl:text>:||:</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"@answer != ''\">\n                <xsl:text>literal-</xsl:text><xsl:value-of select=\"@answer\"/>\n            </xsl:when>\n            <xsl:when test=\"@answer-variable != ''\">\n                <xsl:text>variable-</xsl:text><xsl:value-of select=\"@answer-variable\"/>\n            </xsl:when>\n        </xsl:choose>\n        <xsl:text>:||:</xsl:text>\n        <xsl:variable name=\"feedback-contents\">\n            <xsl:apply-templates select=\"feedback\"/>\n        </xsl:variable>\n        <xsl:variable name=\"feedback-string\">\n            <xsl:apply-templates select=\"exsl:node-set($feedback-contents)\" mode=\"xml-to-string\"/>\n        </xsl:variable>\n        <xsl:value-of select=\"$feedback-string\"/>\n        <xsl:text>:||:</xsl:text>\n        <xsl:variable name=\"prompt-contents\">\n            <xsl:apply-templates select=\"prompt\"/>\n        </xsl:variable>\n        <xsl:variable name=\"prompt-string\">\n            <xsl:apply-templates select=\"exsl:node-set($prompt-contents)\" mode=\"xml-to-string\"/>\n        </xsl:variable>\n        <xsl:value-of select=\"$prompt-string\"/>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:for-each>\n    <!-- special pattern ends trace group -->\n    <xsl:text>!end_codelens_trace_group!</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/extract-youtube.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2014-2016 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet locates video/@youtube elements and -->\n<!-- prepares a Python dictionary necessary to extract a -->\n<!-- thumbnail for each video from the YouTube servers   -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Get a \"subtree\" xml:id value   -->\n<!-- Then walk the XML source tree  -->\n<!-- applying specializations below -->\n<xsl:import href=\"./extract-identity.xsl\" />\n\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Avoid Catch-22: default assembly/pre-processor providews output     -->\n<!-- for a conversion to a static format, but that format will *replace* -->\n<!-- \"video\" by a static version (a \"sidebyside\") and it will not be     -->\n<!-- available for extraction.                                           -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- YouTube ID, and internal id as a comma-separated pair per line -->\n<xsl:template match=\"video[@youtube and not(@preview)]\" mode=\"extraction\">\n    <!-- replace commas with spaces, then normalize space,                       -->\n    <!-- then tack on a space at the end, then grab content prior to first space -->\n    <xsl:variable name=\"first-video-id\" select=\"substring-before(concat(normalize-space(str:replace(@youtube, ',', ' ')), ' '), ' ')\" />\n    <xsl:value-of select=\"$first-video-id\" />\n    <xsl:text>,</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/html-symbols.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!-- Contains an xsl list of symbols provided by the Material Symbols font -->\n<!-- Used by the insert-symbol template in pretext-html                    -->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n\n<!-- From Material Symbols: https://github.com/google/material-design-icons/blob/master -->\n<!-- License: Apache 2.0 https://github.com/google/material-design-icons/blob/master/LICENSE -->\n\n<xsl:variable name=\"available-symbols-list\">\n    <symbolinfo name=\"10k\" entity=\"e951\"/>\n    <symbolinfo name=\"10mp\" entity=\"e952\"/>\n    <symbolinfo name=\"11mp\" entity=\"e953\"/>\n    <symbolinfo name=\"123\" entity=\"eb8d\"/>\n    <symbolinfo name=\"12mp\" entity=\"e954\"/>\n    <symbolinfo name=\"13mp\" entity=\"e955\"/>\n    <symbolinfo name=\"14mp\" entity=\"e956\"/>\n    <symbolinfo name=\"15mp\" entity=\"e957\"/>\n    <symbolinfo name=\"16mp\" entity=\"e958\"/>\n    <symbolinfo name=\"17mp\" entity=\"e959\"/>\n    <symbolinfo name=\"18_up_rating\" entity=\"f8fd\"/>\n    <symbolinfo name=\"18mp\" entity=\"e95a\"/>\n    <symbolinfo name=\"19mp\" entity=\"e95b\"/>\n    <symbolinfo name=\"1k\" entity=\"e95c\"/>\n    <symbolinfo name=\"1k_plus\" entity=\"e95d\"/>\n    <symbolinfo name=\"1x_mobiledata\" entity=\"efcd\"/>\n    <symbolinfo name=\"1x_mobiledata_badge\" entity=\"f7f1\"/>\n    <symbolinfo name=\"20mp\" entity=\"e95e\"/>\n    <symbolinfo name=\"21mp\" entity=\"e95f\"/>\n    <symbolinfo name=\"22mp\" entity=\"e960\"/>\n    <symbolinfo name=\"23mp\" entity=\"e961\"/>\n    <symbolinfo name=\"24mp\" entity=\"e962\"/>\n    <symbolinfo name=\"2d\" entity=\"ef37\"/>\n    <symbolinfo name=\"2k\" entity=\"e963\"/>\n    <symbolinfo name=\"2k_plus\" entity=\"e964\"/>\n    <symbolinfo name=\"2mp\" entity=\"e965\"/>\n    <symbolinfo name=\"30fps\" entity=\"efce\"/>\n    <symbolinfo name=\"30fps_select\" entity=\"efcf\"/>\n    <symbolinfo name=\"360\" entity=\"e577\"/>\n    <symbolinfo name=\"3d_rotation\" entity=\"e84d\"/>\n    <symbolinfo name=\"3g_mobiledata\" entity=\"efd0\"/>\n    <symbolinfo name=\"3g_mobiledata_badge\" entity=\"f7f0\"/>\n    <symbolinfo name=\"3k\" entity=\"e966\"/>\n    <symbolinfo name=\"3k_plus\" entity=\"e967\"/>\n    <symbolinfo name=\"3mp\" entity=\"e968\"/>\n    <symbolinfo name=\"3p\" entity=\"efd1\"/>\n    <symbolinfo name=\"4g_mobiledata\" entity=\"efd2\"/>\n    <symbolinfo name=\"4g_mobiledata_badge\" entity=\"f7ef\"/>\n    <symbolinfo name=\"4g_plus_mobiledata\" entity=\"efd3\"/>\n    <symbolinfo name=\"4k\" entity=\"e072\"/>\n    <symbolinfo name=\"4k_plus\" entity=\"e969\"/>\n    <symbolinfo name=\"4mp\" entity=\"e96a\"/>\n    <symbolinfo name=\"50mp\" entity=\"f6f3\"/>\n    <symbolinfo name=\"5g\" entity=\"ef38\"/>\n    <symbolinfo name=\"5g_mobiledata_badge\" entity=\"f7ee\"/>\n    <symbolinfo name=\"5k\" entity=\"e96b\"/>\n    <symbolinfo name=\"5k_plus\" entity=\"e96c\"/>\n    <symbolinfo name=\"5mp\" entity=\"e96d\"/>\n    <symbolinfo name=\"60fps\" entity=\"efd4\"/>\n    <symbolinfo name=\"60fps_select\" entity=\"efd5\"/>\n    <symbolinfo name=\"6_ft_apart\" entity=\"f21e\"/>\n    <symbolinfo name=\"6k\" entity=\"e96e\"/>\n    <symbolinfo name=\"6k_plus\" entity=\"e96f\"/>\n    <symbolinfo name=\"6mp\" entity=\"e970\"/>\n    <symbolinfo name=\"7k\" entity=\"e971\"/>\n    <symbolinfo name=\"7k_plus\" entity=\"e972\"/>\n    <symbolinfo name=\"7mp\" entity=\"e973\"/>\n    <symbolinfo name=\"8k\" entity=\"e974\"/>\n    <symbolinfo name=\"8k_plus\" entity=\"e975\"/>\n    <symbolinfo name=\"8mp\" entity=\"e976\"/>\n    <symbolinfo name=\"9k\" entity=\"e977\"/>\n    <symbolinfo name=\"9k_plus\" entity=\"e978\"/>\n    <symbolinfo name=\"9mp\" entity=\"e979\"/>\n    <symbolinfo name=\"abc\" entity=\"eb94\"/>\n    <symbolinfo name=\"ac_unit\" entity=\"eb3b\"/>\n    <symbolinfo name=\"access_alarm\" entity=\"e855\"/>\n    <symbolinfo name=\"access_alarms\" entity=\"e855\"/>\n    <symbolinfo name=\"access_time\" entity=\"efd6\"/>\n    <symbolinfo name=\"access_time_filled\" entity=\"efd6\"/>\n    <symbolinfo name=\"accessibility\" entity=\"e84e\"/>\n    <symbolinfo name=\"accessibility_new\" entity=\"e92c\"/>\n    <symbolinfo name=\"accessible\" entity=\"e914\"/>\n    <symbolinfo name=\"accessible_forward\" entity=\"e934\"/>\n    <symbolinfo name=\"account_balance\" entity=\"e84f\"/>\n    <symbolinfo name=\"account_balance_wallet\" entity=\"e850\"/>\n    <symbolinfo name=\"account_box\" entity=\"e851\"/>\n    <symbolinfo name=\"account_circle\" entity=\"f20b\"/>\n    <symbolinfo name=\"account_circle_filled\" entity=\"f20b\"/>\n    <symbolinfo name=\"account_circle_off\" entity=\"f7b3\"/>\n    <symbolinfo name=\"account_tree\" entity=\"e97a\"/>\n    <symbolinfo name=\"activity_zone\" entity=\"e1e6\"/>\n    <symbolinfo name=\"acute\" entity=\"e4cb\"/>\n    <symbolinfo name=\"ad\" entity=\"e65a\"/>\n    <symbolinfo name=\"ad_group\" entity=\"e65b\"/>\n    <symbolinfo name=\"ad_group_off\" entity=\"eae5\"/>\n    <symbolinfo name=\"ad_off\" entity=\"f7b2\"/>\n    <symbolinfo name=\"ad_units\" entity=\"ef39\"/>\n    <symbolinfo name=\"adb\" entity=\"e60e\"/>\n    <symbolinfo name=\"add\" entity=\"e145\"/>\n    <symbolinfo name=\"add_a_photo\" entity=\"e439\"/>\n    <symbolinfo name=\"add_ad\" entity=\"e72a\"/>\n    <symbolinfo name=\"add_alarm\" entity=\"e856\"/>\n    <symbolinfo name=\"add_alert\" entity=\"e003\"/>\n    <symbolinfo name=\"add_box\" entity=\"e146\"/>\n    <symbolinfo name=\"add_business\" entity=\"e729\"/>\n    <symbolinfo name=\"add_call\" entity=\"f0b7\"/>\n    <symbolinfo name=\"add_card\" entity=\"eb86\"/>\n    <symbolinfo name=\"add_chart\" entity=\"ef3c\"/>\n    <symbolinfo name=\"add_circle\" entity=\"e3ba\"/>\n    <symbolinfo name=\"add_circle_outline\" entity=\"e3ba\"/>\n    <symbolinfo name=\"add_comment\" entity=\"e266\"/>\n    <symbolinfo name=\"add_home\" entity=\"f8eb\"/>\n    <symbolinfo name=\"add_home_work\" entity=\"f8ed\"/>\n    <symbolinfo name=\"add_ic_call\" entity=\"f0b7\"/>\n    <symbolinfo name=\"add_link\" entity=\"e178\"/>\n    <symbolinfo name=\"add_location\" entity=\"e567\"/>\n    <symbolinfo name=\"add_location_alt\" entity=\"ef3a\"/>\n    <symbolinfo name=\"add_moderator\" entity=\"e97d\"/>\n    <symbolinfo name=\"add_notes\" entity=\"e091\"/>\n    <symbolinfo name=\"add_photo_alternate\" entity=\"e43e\"/>\n    <symbolinfo name=\"add_reaction\" entity=\"e1d3\"/>\n    <symbolinfo name=\"add_road\" entity=\"ef3b\"/>\n    <symbolinfo name=\"add_shopping_cart\" entity=\"e854\"/>\n    <symbolinfo name=\"add_task\" entity=\"f23a\"/>\n    <symbolinfo name=\"add_to_drive\" entity=\"e65c\"/>\n    <symbolinfo name=\"add_to_home_screen\" entity=\"e1fe\"/>\n    <symbolinfo name=\"add_to_photos\" entity=\"e39d\"/>\n    <symbolinfo name=\"add_to_queue\" entity=\"e05c\"/>\n    <symbolinfo name=\"addchart\" entity=\"ef3c\"/>\n    <symbolinfo name=\"adf_scanner\" entity=\"eada\"/>\n    <symbolinfo name=\"adjust\" entity=\"e39e\"/>\n    <symbolinfo name=\"admin_meds\" entity=\"e48d\"/>\n    <symbolinfo name=\"admin_panel_settings\" entity=\"ef3d\"/>\n    <symbolinfo name=\"ads_click\" entity=\"e762\"/>\n    <symbolinfo name=\"agender\" entity=\"f888\"/>\n    <symbolinfo name=\"agriculture\" entity=\"ea79\"/>\n    <symbolinfo name=\"air\" entity=\"efd8\"/>\n    <symbolinfo name=\"air_freshener\" entity=\"e2ca\"/>\n    <symbolinfo name=\"air_purifier_gen\" entity=\"e829\"/>\n    <symbolinfo name=\"airline_seat_flat\" entity=\"e630\"/>\n    <symbolinfo name=\"airline_seat_flat_angled\" entity=\"e631\"/>\n    <symbolinfo name=\"airline_seat_individual_suite\" entity=\"e632\"/>\n    <symbolinfo name=\"airline_seat_legroom_extra\" entity=\"e633\"/>\n    <symbolinfo name=\"airline_seat_legroom_normal\" entity=\"e634\"/>\n    <symbolinfo name=\"airline_seat_legroom_reduced\" entity=\"e635\"/>\n    <symbolinfo name=\"airline_seat_recline_extra\" entity=\"e636\"/>\n    <symbolinfo name=\"airline_seat_recline_normal\" entity=\"e637\"/>\n    <symbolinfo name=\"airline_stops\" entity=\"e7d0\"/>\n    <symbolinfo name=\"airlines\" entity=\"e7ca\"/>\n    <symbolinfo name=\"airplane_ticket\" entity=\"efd9\"/>\n    <symbolinfo name=\"airplanemode_active\" entity=\"e53d\"/>\n    <symbolinfo name=\"airplanemode_inactive\" entity=\"e194\"/>\n    <symbolinfo name=\"airplay\" entity=\"e055\"/>\n    <symbolinfo name=\"airport_shuttle\" entity=\"eb3c\"/>\n    <symbolinfo name=\"airware\" entity=\"f154\"/>\n    <symbolinfo name=\"airwave\" entity=\"f154\"/>\n    <symbolinfo name=\"alarm\" entity=\"e855\"/>\n    <symbolinfo name=\"alarm_add\" entity=\"e856\"/>\n    <symbolinfo name=\"alarm_off\" entity=\"e857\"/>\n    <symbolinfo name=\"alarm_on\" entity=\"e858\"/>\n    <symbolinfo name=\"alarm_smart_wake\" entity=\"f6b0\"/>\n    <symbolinfo name=\"album\" entity=\"e019\"/>\n    <symbolinfo name=\"align_center\" entity=\"e356\"/>\n    <symbolinfo name=\"align_end\" entity=\"f797\"/>\n    <symbolinfo name=\"align_flex_center\" entity=\"f796\"/>\n    <symbolinfo name=\"align_flex_end\" entity=\"f795\"/>\n    <symbolinfo name=\"align_flex_start\" entity=\"f794\"/>\n    <symbolinfo name=\"align_horizontal_center\" entity=\"e00f\"/>\n    <symbolinfo name=\"align_horizontal_left\" entity=\"e00d\"/>\n    <symbolinfo name=\"align_horizontal_right\" entity=\"e010\"/>\n    <symbolinfo name=\"align_items_stretch\" entity=\"f793\"/>\n    <symbolinfo name=\"align_justify_center\" entity=\"f792\"/>\n    <symbolinfo name=\"align_justify_flex_end\" entity=\"f791\"/>\n    <symbolinfo name=\"align_justify_flex_start\" entity=\"f790\"/>\n    <symbolinfo name=\"align_justify_space_around\" entity=\"f78f\"/>\n    <symbolinfo name=\"align_justify_space_between\" entity=\"f78e\"/>\n    <symbolinfo name=\"align_justify_space_even\" entity=\"f78d\"/>\n    <symbolinfo name=\"align_justify_stretch\" entity=\"f78c\"/>\n    <symbolinfo name=\"align_self_stretch\" entity=\"f78b\"/>\n    <symbolinfo name=\"align_space_around\" entity=\"f78a\"/>\n    <symbolinfo name=\"align_space_between\" entity=\"f789\"/>\n    <symbolinfo name=\"align_space_even\" entity=\"f788\"/>\n    <symbolinfo name=\"align_start\" entity=\"f787\"/>\n    <symbolinfo name=\"align_stretch\" entity=\"f786\"/>\n    <symbolinfo name=\"align_vertical_bottom\" entity=\"e015\"/>\n    <symbolinfo name=\"align_vertical_center\" entity=\"e011\"/>\n    <symbolinfo name=\"align_vertical_top\" entity=\"e00c\"/>\n    <symbolinfo name=\"all_inbox\" entity=\"e97f\"/>\n    <symbolinfo name=\"all_inclusive\" entity=\"eb3d\"/>\n    <symbolinfo name=\"all_match\" entity=\"e093\"/>\n    <symbolinfo name=\"all_out\" entity=\"e90b\"/>\n    <symbolinfo name=\"allergies\" entity=\"e094\"/>\n    <symbolinfo name=\"allergy\" entity=\"e64e\"/>\n    <symbolinfo name=\"alt_route\" entity=\"f184\"/>\n    <symbolinfo name=\"alternate_email\" entity=\"e0e6\"/>\n    <symbolinfo name=\"altitude\" entity=\"f873\"/>\n    <symbolinfo name=\"ambient_screen\" entity=\"f6c4\"/>\n    <symbolinfo name=\"ambulance\" entity=\"f803\"/>\n    <symbolinfo name=\"amend\" entity=\"f802\"/>\n    <symbolinfo name=\"amp_stories\" entity=\"ea13\"/>\n    <symbolinfo name=\"analytics\" entity=\"ef3e\"/>\n    <symbolinfo name=\"anchor\" entity=\"f1cd\"/>\n    <symbolinfo name=\"android\" entity=\"e859\"/>\n    <symbolinfo name=\"animation\" entity=\"e71c\"/>\n    <symbolinfo name=\"announcement\" entity=\"e87f\"/>\n    <symbolinfo name=\"aod\" entity=\"efda\"/>\n    <symbolinfo name=\"aod_tablet\" entity=\"f89f\"/>\n    <symbolinfo name=\"aod_watch\" entity=\"f6ac\"/>\n    <symbolinfo name=\"apartment\" entity=\"ea40\"/>\n    <symbolinfo name=\"api\" entity=\"f1b7\"/>\n    <symbolinfo name=\"apk_document\" entity=\"f88e\"/>\n    <symbolinfo name=\"apk_install\" entity=\"f88f\"/>\n    <symbolinfo name=\"app_badging\" entity=\"f72f\"/>\n    <symbolinfo name=\"app_blocking\" entity=\"ef3f\"/>\n    <symbolinfo name=\"app_promo\" entity=\"e981\"/>\n    <symbolinfo name=\"app_registration\" entity=\"ef40\"/>\n    <symbolinfo name=\"app_settings_alt\" entity=\"ef41\"/>\n    <symbolinfo name=\"app_shortcut\" entity=\"eae4\"/>\n    <symbolinfo name=\"approval\" entity=\"e982\"/>\n    <symbolinfo name=\"approval_delegation\" entity=\"f84a\"/>\n    <symbolinfo name=\"apps\" entity=\"e5c3\"/>\n    <symbolinfo name=\"apps_outage\" entity=\"e7cc\"/>\n    <symbolinfo name=\"aq\" entity=\"f55a\"/>\n    <symbolinfo name=\"aq_indoor\" entity=\"f55b\"/>\n    <symbolinfo name=\"ar_on_you\" entity=\"ef7c\"/>\n    <symbolinfo name=\"architecture\" entity=\"ea3b\"/>\n    <symbolinfo name=\"archive\" entity=\"e149\"/>\n    <symbolinfo name=\"area_chart\" entity=\"e770\"/>\n    <symbolinfo name=\"arming_countdown\" entity=\"e78a\"/>\n    <symbolinfo name=\"arrow_and_edge\" entity=\"f5d7\"/>\n    <symbolinfo name=\"arrow_back\" entity=\"e5c4\"/>\n    <symbolinfo name=\"arrow_back_ios\" entity=\"e5e0\"/>\n    <symbolinfo name=\"arrow_back_ios_new\" entity=\"e2ea\"/>\n    <symbolinfo name=\"arrow_circle_down\" entity=\"f181\"/>\n    <symbolinfo name=\"arrow_circle_left\" entity=\"eaa7\"/>\n    <symbolinfo name=\"arrow_circle_right\" entity=\"eaaa\"/>\n    <symbolinfo name=\"arrow_circle_up\" entity=\"f182\"/>\n    <symbolinfo name=\"arrow_downward\" entity=\"e5db\"/>\n    <symbolinfo name=\"arrow_downward_alt\" entity=\"e984\"/>\n    <symbolinfo name=\"arrow_drop_down\" entity=\"e5c5\"/>\n    <symbolinfo name=\"arrow_drop_down_circle\" entity=\"e5c6\"/>\n    <symbolinfo name=\"arrow_drop_up\" entity=\"e5c7\"/>\n    <symbolinfo name=\"arrow_forward\" entity=\"e5c8\"/>\n    <symbolinfo name=\"arrow_forward_ios\" entity=\"e5e1\"/>\n    <symbolinfo name=\"arrow_insert\" entity=\"f837\"/>\n    <symbolinfo name=\"arrow_left\" entity=\"e5de\"/>\n    <symbolinfo name=\"arrow_left_alt\" entity=\"ef7d\"/>\n    <symbolinfo name=\"arrow_or_edge\" entity=\"f5d6\"/>\n    <symbolinfo name=\"arrow_outward\" entity=\"f8ce\"/>\n    <symbolinfo name=\"arrow_range\" entity=\"f69b\"/>\n    <symbolinfo name=\"arrow_right\" entity=\"e5df\"/>\n    <symbolinfo name=\"arrow_right_alt\" entity=\"e941\"/>\n    <symbolinfo name=\"arrow_selector_tool\" entity=\"f82f\"/>\n    <symbolinfo name=\"arrow_split\" entity=\"ea04\"/>\n    <symbolinfo name=\"arrow_top_left\" entity=\"f72e\"/>\n    <symbolinfo name=\"arrow_top_right\" entity=\"f72d\"/>\n    <symbolinfo name=\"arrow_upward\" entity=\"e5d8\"/>\n    <symbolinfo name=\"arrow_upward_alt\" entity=\"e986\"/>\n    <symbolinfo name=\"arrows_more_down\" entity=\"f8ab\"/>\n    <symbolinfo name=\"arrows_more_up\" entity=\"f8ac\"/>\n    <symbolinfo name=\"arrows_outward\" entity=\"f72c\"/>\n    <symbolinfo name=\"art_track\" entity=\"e060\"/>\n    <symbolinfo name=\"article\" entity=\"ef42\"/>\n    <symbolinfo name=\"article_shortcut\" entity=\"f587\"/>\n    <symbolinfo name=\"aspect_ratio\" entity=\"e85b\"/>\n    <symbolinfo name=\"assessment\" entity=\"f0cc\"/>\n    <symbolinfo name=\"assignment\" entity=\"e85d\"/>\n    <symbolinfo name=\"assignment_add\" entity=\"f848\"/>\n    <symbolinfo name=\"assignment_ind\" entity=\"e85e\"/>\n    <symbolinfo name=\"assignment_late\" entity=\"e85f\"/>\n    <symbolinfo name=\"assignment_return\" entity=\"e860\"/>\n    <symbolinfo name=\"assignment_returned\" entity=\"e861\"/>\n    <symbolinfo name=\"assignment_turned_in\" entity=\"e862\"/>\n    <symbolinfo name=\"assist_walker\" entity=\"f8d5\"/>\n    <symbolinfo name=\"assistant\" entity=\"e39f\"/>\n    <symbolinfo name=\"assistant_direction\" entity=\"e988\"/>\n    <symbolinfo name=\"assistant_navigation\" entity=\"e989\"/>\n    <symbolinfo name=\"assistant_on_hub\" entity=\"f6c1\"/>\n    <symbolinfo name=\"assistant_photo\" entity=\"f0c6\"/>\n    <symbolinfo name=\"assured_workload\" entity=\"eb6f\"/>\n    <symbolinfo name=\"astrophotography_auto\" entity=\"f1d9\"/>\n    <symbolinfo name=\"astrophotography_off\" entity=\"f1da\"/>\n    <symbolinfo name=\"atm\" entity=\"e573\"/>\n    <symbolinfo name=\"atr\" entity=\"ebc7\"/>\n    <symbolinfo name=\"attach_email\" entity=\"ea5e\"/>\n    <symbolinfo name=\"attach_file\" entity=\"e226\"/>\n    <symbolinfo name=\"attach_file_add\" entity=\"f841\"/>\n    <symbolinfo name=\"attach_money\" entity=\"e227\"/>\n    <symbolinfo name=\"attachment\" entity=\"e2bc\"/>\n    <symbolinfo name=\"attractions\" entity=\"ea52\"/>\n    <symbolinfo name=\"attribution\" entity=\"efdb\"/>\n    <symbolinfo name=\"audio_description\" entity=\"f58c\"/>\n    <symbolinfo name=\"audio_file\" entity=\"eb82\"/>\n    <symbolinfo name=\"audio_video_receiver\" entity=\"f5d3\"/>\n    <symbolinfo name=\"audiotrack\" entity=\"e405\"/>\n    <symbolinfo name=\"auto_activity_zone\" entity=\"f8ad\"/>\n    <symbolinfo name=\"auto_awesome\" entity=\"e65f\"/>\n    <symbolinfo name=\"auto_awesome_mosaic\" entity=\"e660\"/>\n    <symbolinfo name=\"auto_awesome_motion\" entity=\"e661\"/>\n    <symbolinfo name=\"auto_delete\" entity=\"ea4c\"/>\n    <symbolinfo name=\"auto_detect_voice\" entity=\"f83e\"/>\n    <symbolinfo name=\"auto_fix\" entity=\"e663\"/>\n    <symbolinfo name=\"auto_fix_high\" entity=\"e663\"/>\n    <symbolinfo name=\"auto_fix_normal\" entity=\"e664\"/>\n    <symbolinfo name=\"auto_fix_off\" entity=\"e665\"/>\n    <symbolinfo name=\"auto_graph\" entity=\"e4fb\"/>\n    <symbolinfo name=\"auto_label\" entity=\"f6be\"/>\n    <symbolinfo name=\"auto_meeting_room\" entity=\"f6bf\"/>\n    <symbolinfo name=\"auto_mode\" entity=\"ec20\"/>\n    <symbolinfo name=\"auto_read_pause\" entity=\"f219\"/>\n    <symbolinfo name=\"auto_read_play\" entity=\"f216\"/>\n    <symbolinfo name=\"auto_schedule\" entity=\"e214\"/>\n    <symbolinfo name=\"auto_stories\" entity=\"e666\"/>\n    <symbolinfo name=\"auto_timer\" entity=\"ef7f\"/>\n    <symbolinfo name=\"auto_videocam\" entity=\"f6c0\"/>\n    <symbolinfo name=\"autofps_select\" entity=\"efdc\"/>\n    <symbolinfo name=\"autopause\" entity=\"f6b6\"/>\n    <symbolinfo name=\"autopay\" entity=\"f84b\"/>\n    <symbolinfo name=\"autoplay\" entity=\"f6b5\"/>\n    <symbolinfo name=\"autorenew\" entity=\"e863\"/>\n    <symbolinfo name=\"autostop\" entity=\"f682\"/>\n    <symbolinfo name=\"av_timer\" entity=\"e01b\"/>\n    <symbolinfo name=\"avg_pace\" entity=\"f6bb\"/>\n    <symbolinfo name=\"avg_time\" entity=\"f813\"/>\n    <symbolinfo name=\"award_star\" entity=\"f612\"/>\n    <symbolinfo name=\"azm\" entity=\"f6ec\"/>\n    <symbolinfo name=\"baby_changing_station\" entity=\"f19b\"/>\n    <symbolinfo name=\"back_hand\" entity=\"e764\"/>\n    <symbolinfo name=\"back_to_tab\" entity=\"f72b\"/>\n    <symbolinfo name=\"background_dot_large\" entity=\"f79e\"/>\n    <symbolinfo name=\"background_grid_small\" entity=\"f79d\"/>\n    <symbolinfo name=\"background_replace\" entity=\"f20a\"/>\n    <symbolinfo name=\"backlight_high\" entity=\"f7ed\"/>\n    <symbolinfo name=\"backlight_low\" entity=\"f7ec\"/>\n    <symbolinfo name=\"backpack\" entity=\"f19c\"/>\n    <symbolinfo name=\"backspace\" entity=\"e14a\"/>\n    <symbolinfo name=\"backup\" entity=\"e864\"/>\n    <symbolinfo name=\"backup_table\" entity=\"ef43\"/>\n    <symbolinfo name=\"badge\" entity=\"ea67\"/>\n    <symbolinfo name=\"badge_critical_battery\" entity=\"f156\"/>\n    <symbolinfo name=\"bakery_dining\" entity=\"ea53\"/>\n    <symbolinfo name=\"balance\" entity=\"eaf6\"/>\n    <symbolinfo name=\"balcony\" entity=\"e58f\"/>\n    <symbolinfo name=\"ballot\" entity=\"e172\"/>\n    <symbolinfo name=\"bar_chart\" entity=\"e26b\"/>\n    <symbolinfo name=\"bar_chart_4_bars\" entity=\"f681\"/>\n    <symbolinfo name=\"barcode\" entity=\"e70b\"/>\n    <symbolinfo name=\"barcode_reader\" entity=\"f85c\"/>\n    <symbolinfo name=\"barcode_scanner\" entity=\"e70c\"/>\n    <symbolinfo name=\"barefoot\" entity=\"f871\"/>\n    <symbolinfo name=\"batch_prediction\" entity=\"f0f5\"/>\n    <symbolinfo name=\"bath_outdoor\" entity=\"f6fb\"/>\n    <symbolinfo name=\"bath_private\" entity=\"f6fa\"/>\n    <symbolinfo name=\"bath_public_large\" entity=\"f6f9\"/>\n    <symbolinfo name=\"bathroom\" entity=\"efdd\"/>\n    <symbolinfo name=\"bathtub\" entity=\"ea41\"/>\n    <symbolinfo name=\"battery_0_bar\" entity=\"ebdc\"/>\n    <symbolinfo name=\"battery_1_bar\" entity=\"f09c\"/>\n    <symbolinfo name=\"battery_20\" entity=\"f09c\"/>\n    <symbolinfo name=\"battery_2_bar\" entity=\"f09d\"/>\n    <symbolinfo name=\"battery_30\" entity=\"f09d\"/>\n    <symbolinfo name=\"battery_3_bar\" entity=\"f09e\"/>\n    <symbolinfo name=\"battery_4_bar\" entity=\"f09f\"/>\n    <symbolinfo name=\"battery_50\" entity=\"f09e\"/>\n    <symbolinfo name=\"battery_5_bar\" entity=\"f0a0\"/>\n    <symbolinfo name=\"battery_60\" entity=\"f09f\"/>\n    <symbolinfo name=\"battery_6_bar\" entity=\"f0a1\"/>\n    <symbolinfo name=\"battery_80\" entity=\"f0a0\"/>\n    <symbolinfo name=\"battery_90\" entity=\"f0a1\"/>\n    <symbolinfo name=\"battery_alert\" entity=\"e19c\"/>\n    <symbolinfo name=\"battery_change\" entity=\"f7eb\"/>\n    <symbolinfo name=\"battery_charging_20\" entity=\"f0a2\"/>\n    <symbolinfo name=\"battery_charging_30\" entity=\"f0a3\"/>\n    <symbolinfo name=\"battery_charging_50\" entity=\"f0a4\"/>\n    <symbolinfo name=\"battery_charging_60\" entity=\"f0a5\"/>\n    <symbolinfo name=\"battery_charging_80\" entity=\"f0a6\"/>\n    <symbolinfo name=\"battery_charging_90\" entity=\"f0a7\"/>\n    <symbolinfo name=\"battery_charging_full\" entity=\"e1a3\"/>\n    <symbolinfo name=\"battery_error\" entity=\"f7ea\"/>\n    <symbolinfo name=\"battery_full\" entity=\"e1a5\"/>\n    <symbolinfo name=\"battery_full_alt\" entity=\"f13b\"/>\n    <symbolinfo name=\"battery_horiz_000\" entity=\"f8ae\"/>\n    <symbolinfo name=\"battery_horiz_050\" entity=\"f8af\"/>\n    <symbolinfo name=\"battery_horiz_075\" entity=\"f8b0\"/>\n    <symbolinfo name=\"battery_low\" entity=\"f155\"/>\n    <symbolinfo name=\"battery_plus\" entity=\"f7e9\"/>\n    <symbolinfo name=\"battery_profile\" entity=\"e206\"/>\n    <symbolinfo name=\"battery_saver\" entity=\"efde\"/>\n    <symbolinfo name=\"battery_share\" entity=\"f67e\"/>\n    <symbolinfo name=\"battery_status_good\" entity=\"f67d\"/>\n    <symbolinfo name=\"battery_std\" entity=\"e1a5\"/>\n    <symbolinfo name=\"battery_unknown\" entity=\"e1a6\"/>\n    <symbolinfo name=\"battery_vert_005\" entity=\"f8b1\"/>\n    <symbolinfo name=\"battery_vert_020\" entity=\"f8b2\"/>\n    <symbolinfo name=\"battery_vert_050\" entity=\"f8b3\"/>\n    <symbolinfo name=\"battery_very_low\" entity=\"f156\"/>\n    <symbolinfo name=\"beach_access\" entity=\"eb3e\"/>\n    <symbolinfo name=\"bed\" entity=\"efdf\"/>\n    <symbolinfo name=\"bedroom_baby\" entity=\"efe0\"/>\n    <symbolinfo name=\"bedroom_child\" entity=\"efe1\"/>\n    <symbolinfo name=\"bedroom_parent\" entity=\"efe2\"/>\n    <symbolinfo name=\"bedtime\" entity=\"ef44\"/>\n    <symbolinfo name=\"bedtime_off\" entity=\"eb76\"/>\n    <symbolinfo name=\"beenhere\" entity=\"e52d\"/>\n    <symbolinfo name=\"bento\" entity=\"f1f4\"/>\n    <symbolinfo name=\"bia\" entity=\"f6eb\"/>\n    <symbolinfo name=\"bid_landscape\" entity=\"e678\"/>\n    <symbolinfo name=\"bid_landscape_disabled\" entity=\"ef81\"/>\n    <symbolinfo name=\"bike_scooter\" entity=\"ef45\"/>\n    <symbolinfo name=\"biotech\" entity=\"ea3a\"/>\n    <symbolinfo name=\"blanket\" entity=\"e828\"/>\n    <symbolinfo name=\"blender\" entity=\"efe3\"/>\n    <symbolinfo name=\"blind\" entity=\"f8d6\"/>\n    <symbolinfo name=\"blinds\" entity=\"e286\"/>\n    <symbolinfo name=\"blinds_closed\" entity=\"ec1f\"/>\n    <symbolinfo name=\"block\" entity=\"f08c\"/>\n    <symbolinfo name=\"blood_pressure\" entity=\"e097\"/>\n    <symbolinfo name=\"bloodtype\" entity=\"efe4\"/>\n    <symbolinfo name=\"bluetooth\" entity=\"e1a7\"/>\n    <symbolinfo name=\"bluetooth_audio\" entity=\"e60f\"/>\n    <symbolinfo name=\"bluetooth_connected\" entity=\"e1a8\"/>\n    <symbolinfo name=\"bluetooth_disabled\" entity=\"e1a9\"/>\n    <symbolinfo name=\"bluetooth_drive\" entity=\"efe5\"/>\n    <symbolinfo name=\"bluetooth_searching\" entity=\"e60f\"/>\n    <symbolinfo name=\"blur_circular\" entity=\"e3a2\"/>\n    <symbolinfo name=\"blur_linear\" entity=\"e3a3\"/>\n    <symbolinfo name=\"blur_medium\" entity=\"e84c\"/>\n    <symbolinfo name=\"blur_off\" entity=\"e3a4\"/>\n    <symbolinfo name=\"blur_on\" entity=\"e3a5\"/>\n    <symbolinfo name=\"blur_short\" entity=\"e8cf\"/>\n    <symbolinfo name=\"body_fat\" entity=\"e098\"/>\n    <symbolinfo name=\"body_system\" entity=\"e099\"/>\n    <symbolinfo name=\"bolt\" entity=\"ea0b\"/>\n    <symbolinfo name=\"bomb\" entity=\"f568\"/>\n    <symbolinfo name=\"book\" entity=\"e86e\"/>\n    <symbolinfo name=\"book_online\" entity=\"f217\"/>\n    <symbolinfo name=\"bookmark\" entity=\"e8e7\"/>\n    <symbolinfo name=\"bookmark_add\" entity=\"e598\"/>\n    <symbolinfo name=\"bookmark_added\" entity=\"e599\"/>\n    <symbolinfo name=\"bookmark_border\" entity=\"e8e7\"/>\n    <symbolinfo name=\"bookmark_manager\" entity=\"f7b1\"/>\n    <symbolinfo name=\"bookmark_remove\" entity=\"e59a\"/>\n    <symbolinfo name=\"bookmarks\" entity=\"e98b\"/>\n    <symbolinfo name=\"border_all\" entity=\"e228\"/>\n    <symbolinfo name=\"border_bottom\" entity=\"e229\"/>\n    <symbolinfo name=\"border_clear\" entity=\"e22a\"/>\n    <symbolinfo name=\"border_color\" entity=\"e22b\"/>\n    <symbolinfo name=\"border_horizontal\" entity=\"e22c\"/>\n    <symbolinfo name=\"border_inner\" entity=\"e22d\"/>\n    <symbolinfo name=\"border_left\" entity=\"e22e\"/>\n    <symbolinfo name=\"border_outer\" entity=\"e22f\"/>\n    <symbolinfo name=\"border_right\" entity=\"e230\"/>\n    <symbolinfo name=\"border_style\" entity=\"e231\"/>\n    <symbolinfo name=\"border_top\" entity=\"e232\"/>\n    <symbolinfo name=\"border_vertical\" entity=\"e233\"/>\n    <symbolinfo name=\"bottom_app_bar\" entity=\"e730\"/>\n    <symbolinfo name=\"bottom_drawer\" entity=\"e72d\"/>\n    <symbolinfo name=\"bottom_navigation\" entity=\"e98c\"/>\n    <symbolinfo name=\"bottom_panel_close\" entity=\"f72a\"/>\n    <symbolinfo name=\"bottom_panel_open\" entity=\"f729\"/>\n    <symbolinfo name=\"bottom_right_click\" entity=\"f684\"/>\n    <symbolinfo name=\"bottom_sheets\" entity=\"e98d\"/>\n    <symbolinfo name=\"box\" entity=\"f5a4\"/>\n    <symbolinfo name=\"box_add\" entity=\"f5a5\"/>\n    <symbolinfo name=\"box_edit\" entity=\"f5a6\"/>\n    <symbolinfo name=\"boy\" entity=\"eb67\"/>\n    <symbolinfo name=\"brand_awareness\" entity=\"e98e\"/>\n    <symbolinfo name=\"branding_watermark\" entity=\"e06b\"/>\n    <symbolinfo name=\"breakfast_dining\" entity=\"ea54\"/>\n    <symbolinfo name=\"breaking_news\" entity=\"ea08\"/>\n    <symbolinfo name=\"breaking_news_alt_1\" entity=\"f0ba\"/>\n    <symbolinfo name=\"breastfeeding\" entity=\"f856\"/>\n    <symbolinfo name=\"brightness_1\" entity=\"e3fa\"/>\n    <symbolinfo name=\"brightness_2\" entity=\"f036\"/>\n    <symbolinfo name=\"brightness_3\" entity=\"e3a8\"/>\n    <symbolinfo name=\"brightness_4\" entity=\"e3a9\"/>\n    <symbolinfo name=\"brightness_5\" entity=\"e3aa\"/>\n    <symbolinfo name=\"brightness_6\" entity=\"e3ab\"/>\n    <symbolinfo name=\"brightness_7\" entity=\"e3ac\"/>\n    <symbolinfo name=\"brightness_alert\" entity=\"f5cf\"/>\n    <symbolinfo name=\"brightness_auto\" entity=\"e1ab\"/>\n    <symbolinfo name=\"brightness_empty\" entity=\"f7e8\"/>\n    <symbolinfo name=\"brightness_high\" entity=\"e1ac\"/>\n    <symbolinfo name=\"brightness_low\" entity=\"e1ad\"/>\n    <symbolinfo name=\"brightness_medium\" entity=\"e1ae\"/>\n    <symbolinfo name=\"bring_your_own_ip\" entity=\"e016\"/>\n    <symbolinfo name=\"broadcast_on_home\" entity=\"f8f8\"/>\n    <symbolinfo name=\"broadcast_on_personal\" entity=\"f8f9\"/>\n    <symbolinfo name=\"broken_image\" entity=\"e3ad\"/>\n    <symbolinfo name=\"browse\" entity=\"eb13\"/>\n    <symbolinfo name=\"browse_activity\" entity=\"f8a5\"/>\n    <symbolinfo name=\"browse_gallery\" entity=\"ebd1\"/>\n    <symbolinfo name=\"browser_not_supported\" entity=\"ef47\"/>\n    <symbolinfo name=\"browser_updated\" entity=\"e7cf\"/>\n    <symbolinfo name=\"brunch_dining\" entity=\"ea73\"/>\n    <symbolinfo name=\"brush\" entity=\"e3ae\"/>\n    <symbolinfo name=\"bubble\" entity=\"ef83\"/>\n    <symbolinfo name=\"bubble_chart\" entity=\"e6dd\"/>\n    <symbolinfo name=\"bubbles\" entity=\"f64e\"/>\n    <symbolinfo name=\"bug_report\" entity=\"e868\"/>\n    <symbolinfo name=\"build\" entity=\"f8cd\"/>\n    <symbolinfo name=\"build_circle\" entity=\"ef48\"/>\n    <symbolinfo name=\"bungalow\" entity=\"e591\"/>\n    <symbolinfo name=\"burst_mode\" entity=\"e43c\"/>\n    <symbolinfo name=\"bus_alert\" entity=\"e98f\"/>\n    <symbolinfo name=\"business\" entity=\"e7ee\"/>\n    <symbolinfo name=\"business_center\" entity=\"eb3f\"/>\n    <symbolinfo name=\"business_chip\" entity=\"f84c\"/>\n    <symbolinfo name=\"business_messages\" entity=\"ef84\"/>\n    <symbolinfo name=\"buttons_alt\" entity=\"e72f\"/>\n    <symbolinfo name=\"cabin\" entity=\"e589\"/>\n    <symbolinfo name=\"cable\" entity=\"efe6\"/>\n    <symbolinfo name=\"cached\" entity=\"e86a\"/>\n    <symbolinfo name=\"cake\" entity=\"e7e9\"/>\n    <symbolinfo name=\"cake_add\" entity=\"f85b\"/>\n    <symbolinfo name=\"calculate\" entity=\"ea5f\"/>\n    <symbolinfo name=\"calendar_add_on\" entity=\"ef85\"/>\n    <symbolinfo name=\"calendar_apps_script\" entity=\"f0bb\"/>\n    <symbolinfo name=\"calendar_month\" entity=\"ebcc\"/>\n    <symbolinfo name=\"calendar_today\" entity=\"e935\"/>\n    <symbolinfo name=\"calendar_view_day\" entity=\"e936\"/>\n    <symbolinfo name=\"calendar_view_month\" entity=\"efe7\"/>\n    <symbolinfo name=\"calendar_view_week\" entity=\"efe8\"/>\n    <symbolinfo name=\"call\" entity=\"f0d4\"/>\n    <symbolinfo name=\"call_end\" entity=\"f0bc\"/>\n    <symbolinfo name=\"call_end_alt\" entity=\"f0bc\"/>\n    <symbolinfo name=\"call_log\" entity=\"e08e\"/>\n    <symbolinfo name=\"call_made\" entity=\"e0b2\"/>\n    <symbolinfo name=\"call_merge\" entity=\"e0b3\"/>\n    <symbolinfo name=\"call_missed\" entity=\"e0b4\"/>\n    <symbolinfo name=\"call_missed_outgoing\" entity=\"e0e4\"/>\n    <symbolinfo name=\"call_quality\" entity=\"f652\"/>\n    <symbolinfo name=\"call_received\" entity=\"e0b5\"/>\n    <symbolinfo name=\"call_split\" entity=\"e0b6\"/>\n    <symbolinfo name=\"call_to_action\" entity=\"e06c\"/>\n    <symbolinfo name=\"camera\" entity=\"e3af\"/>\n    <symbolinfo name=\"camera_alt\" entity=\"e412\"/>\n    <symbolinfo name=\"camera_enhance\" entity=\"e8fc\"/>\n    <symbolinfo name=\"camera_front\" entity=\"e3b1\"/>\n    <symbolinfo name=\"camera_indoor\" entity=\"efe9\"/>\n    <symbolinfo name=\"camera_outdoor\" entity=\"efea\"/>\n    <symbolinfo name=\"camera_rear\" entity=\"e3b2\"/>\n    <symbolinfo name=\"camera_roll\" entity=\"e3b3\"/>\n    <symbolinfo name=\"camera_video\" entity=\"f7a6\"/>\n    <symbolinfo name=\"cameraswitch\" entity=\"efeb\"/>\n    <symbolinfo name=\"campaign\" entity=\"ef49\"/>\n    <symbolinfo name=\"camping\" entity=\"f8a2\"/>\n    <symbolinfo name=\"cancel\" entity=\"e888\"/>\n    <symbolinfo name=\"cancel_presentation\" entity=\"e0e9\"/>\n    <symbolinfo name=\"cancel_schedule_send\" entity=\"ea39\"/>\n    <symbolinfo name=\"candle\" entity=\"f588\"/>\n    <symbolinfo name=\"candlestick_chart\" entity=\"ead4\"/>\n    <symbolinfo name=\"captive_portal\" entity=\"f728\"/>\n    <symbolinfo name=\"capture\" entity=\"f727\"/>\n    <symbolinfo name=\"car_crash\" entity=\"ebf2\"/>\n    <symbolinfo name=\"car_rental\" entity=\"ea55\"/>\n    <symbolinfo name=\"car_repair\" entity=\"ea56\"/>\n    <symbolinfo name=\"card_giftcard\" entity=\"e8f6\"/>\n    <symbolinfo name=\"card_membership\" entity=\"e8f7\"/>\n    <symbolinfo name=\"card_travel\" entity=\"e8f8\"/>\n    <symbolinfo name=\"cardiology\" entity=\"e09c\"/>\n    <symbolinfo name=\"cards\" entity=\"e991\"/>\n    <symbolinfo name=\"carpenter\" entity=\"f1f8\"/>\n    <symbolinfo name=\"cases\" entity=\"e992\"/>\n    <symbolinfo name=\"casino\" entity=\"eb40\"/>\n    <symbolinfo name=\"cast\" entity=\"e307\"/>\n    <symbolinfo name=\"cast_connected\" entity=\"e308\"/>\n    <symbolinfo name=\"cast_for_education\" entity=\"efec\"/>\n    <symbolinfo name=\"cast_pause\" entity=\"f5f0\"/>\n    <symbolinfo name=\"cast_warning\" entity=\"f5ef\"/>\n    <symbolinfo name=\"castle\" entity=\"eab1\"/>\n    <symbolinfo name=\"category\" entity=\"e574\"/>\n    <symbolinfo name=\"celebration\" entity=\"ea65\"/>\n    <symbolinfo name=\"cell_merge\" entity=\"f82e\"/>\n    <symbolinfo name=\"cell_tower\" entity=\"ebba\"/>\n    <symbolinfo name=\"cell_wifi\" entity=\"e0ec\"/>\n    <symbolinfo name=\"center_focus_strong\" entity=\"e3b4\"/>\n    <symbolinfo name=\"center_focus_weak\" entity=\"e3b5\"/>\n    <symbolinfo name=\"chair\" entity=\"efed\"/>\n    <symbolinfo name=\"chair_alt\" entity=\"efee\"/>\n    <symbolinfo name=\"chalet\" entity=\"e585\"/>\n    <symbolinfo name=\"change_circle\" entity=\"e2e7\"/>\n    <symbolinfo name=\"change_history\" entity=\"e86b\"/>\n    <symbolinfo name=\"charger\" entity=\"e2ae\"/>\n    <symbolinfo name=\"charging_station\" entity=\"f19d\"/>\n    <symbolinfo name=\"chart_data\" entity=\"e473\"/>\n    <symbolinfo name=\"chat\" entity=\"e0c9\"/>\n    <symbolinfo name=\"chat_add_on\" entity=\"f0f3\"/>\n    <symbolinfo name=\"chat_apps_script\" entity=\"f0bd\"/>\n    <symbolinfo name=\"chat_bubble\" entity=\"e0cb\"/>\n    <symbolinfo name=\"chat_bubble_outline\" entity=\"e0cb\"/>\n    <symbolinfo name=\"chat_error\" entity=\"f7ac\"/>\n    <symbolinfo name=\"chat_paste_go\" entity=\"f6bd\"/>\n    <symbolinfo name=\"check\" entity=\"e5ca\"/>\n    <symbolinfo name=\"check_box\" entity=\"e834\"/>\n    <symbolinfo name=\"check_box_outline_blank\" entity=\"e835\"/>\n    <symbolinfo name=\"check_circle\" entity=\"f0be\"/>\n    <symbolinfo name=\"check_circle_filled\" entity=\"f0be\"/>\n    <symbolinfo name=\"check_circle_outline\" entity=\"f0be\"/>\n    <symbolinfo name=\"check_in_out\" entity=\"f6f6\"/>\n    <symbolinfo name=\"check_indeterminate_small\" entity=\"f88a\"/>\n    <symbolinfo name=\"check_small\" entity=\"f88b\"/>\n    <symbolinfo name=\"checklist\" entity=\"e6b1\"/>\n    <symbolinfo name=\"checklist_rtl\" entity=\"e6b3\"/>\n    <symbolinfo name=\"checkroom\" entity=\"f19e\"/>\n    <symbolinfo name=\"cheer\" entity=\"f6a8\"/>\n    <symbolinfo name=\"chess\" entity=\"f5e7\"/>\n    <symbolinfo name=\"chevron_left\" entity=\"e5cb\"/>\n    <symbolinfo name=\"chevron_right\" entity=\"e5cc\"/>\n    <symbolinfo name=\"child_care\" entity=\"eb41\"/>\n    <symbolinfo name=\"child_friendly\" entity=\"eb42\"/>\n    <symbolinfo name=\"chip_extraction\" entity=\"f821\"/>\n    <symbolinfo name=\"chips\" entity=\"e993\"/>\n    <symbolinfo name=\"chrome_reader_mode\" entity=\"e86d\"/>\n    <symbolinfo name=\"chromecast_2\" entity=\"f17b\"/>\n    <symbolinfo name=\"chromecast_device\" entity=\"e83c\"/>\n    <symbolinfo name=\"chronic\" entity=\"ebb2\"/>\n    <symbolinfo name=\"church\" entity=\"eaae\"/>\n    <symbolinfo name=\"cinematic_blur\" entity=\"f853\"/>\n    <symbolinfo name=\"circle\" entity=\"ef4a\"/>\n    <symbolinfo name=\"circle_notifications\" entity=\"e994\"/>\n    <symbolinfo name=\"circles\" entity=\"e7ea\"/>\n    <symbolinfo name=\"circles_ext\" entity=\"e7ec\"/>\n    <symbolinfo name=\"clarify\" entity=\"f0bf\"/>\n    <symbolinfo name=\"class\" entity=\"e86e\"/>\n    <symbolinfo name=\"clean_hands\" entity=\"f21f\"/>\n    <symbolinfo name=\"cleaning_bucket\" entity=\"f8b4\"/>\n    <symbolinfo name=\"cleaning_services\" entity=\"f0ff\"/>\n    <symbolinfo name=\"clear\" entity=\"e5cd\"/>\n    <symbolinfo name=\"clear_all\" entity=\"e0b8\"/>\n    <symbolinfo name=\"clear_day\" entity=\"f157\"/>\n    <symbolinfo name=\"clear_night\" entity=\"f159\"/>\n    <symbolinfo name=\"climate_mini_split\" entity=\"f8b5\"/>\n    <symbolinfo name=\"clinical_notes\" entity=\"e09e\"/>\n    <symbolinfo name=\"clock_loader_10\" entity=\"f726\"/>\n    <symbolinfo name=\"clock_loader_20\" entity=\"f725\"/>\n    <symbolinfo name=\"clock_loader_40\" entity=\"f724\"/>\n    <symbolinfo name=\"clock_loader_60\" entity=\"f723\"/>\n    <symbolinfo name=\"clock_loader_80\" entity=\"f722\"/>\n    <symbolinfo name=\"clock_loader_90\" entity=\"f721\"/>\n    <symbolinfo name=\"close\" entity=\"e5cd\"/>\n    <symbolinfo name=\"close_fullscreen\" entity=\"f1cf\"/>\n    <symbolinfo name=\"closed_caption\" entity=\"e996\"/>\n    <symbolinfo name=\"closed_caption_disabled\" entity=\"f1dc\"/>\n    <symbolinfo name=\"closed_caption_off\" entity=\"e996\"/>\n    <symbolinfo name=\"cloud\" entity=\"f15c\"/>\n    <symbolinfo name=\"cloud_circle\" entity=\"e2be\"/>\n    <symbolinfo name=\"cloud_done\" entity=\"e2bf\"/>\n    <symbolinfo name=\"cloud_download\" entity=\"e2c0\"/>\n    <symbolinfo name=\"cloud_off\" entity=\"e2c1\"/>\n    <symbolinfo name=\"cloud_queue\" entity=\"f15c\"/>\n    <symbolinfo name=\"cloud_sync\" entity=\"eb5a\"/>\n    <symbolinfo name=\"cloud_upload\" entity=\"e2c3\"/>\n    <symbolinfo name=\"cloudy\" entity=\"f15c\"/>\n    <symbolinfo name=\"cloudy_filled\" entity=\"f15c\"/>\n    <symbolinfo name=\"cloudy_snowing\" entity=\"e810\"/>\n    <symbolinfo name=\"co2\" entity=\"e7b0\"/>\n    <symbolinfo name=\"co_present\" entity=\"eaf0\"/>\n    <symbolinfo name=\"code\" entity=\"e86f\"/>\n    <symbolinfo name=\"code_blocks\" entity=\"f84d\"/>\n    <symbolinfo name=\"code_off\" entity=\"e4f3\"/>\n    <symbolinfo name=\"coffee\" entity=\"efef\"/>\n    <symbolinfo name=\"coffee_maker\" entity=\"eff0\"/>\n    <symbolinfo name=\"cognition\" entity=\"e09f\"/>\n    <symbolinfo name=\"collapse_all\" entity=\"e944\"/>\n    <symbolinfo name=\"collections\" entity=\"e3d3\"/>\n    <symbolinfo name=\"collections_bookmark\" entity=\"e431\"/>\n    <symbolinfo name=\"color_lens\" entity=\"e40a\"/>\n    <symbolinfo name=\"colorize\" entity=\"e3b8\"/>\n    <symbolinfo name=\"colors\" entity=\"e997\"/>\n    <symbolinfo name=\"comic_bubble\" entity=\"f5dd\"/>\n    <symbolinfo name=\"comment\" entity=\"e24c\"/>\n    <symbolinfo name=\"comment_bank\" entity=\"ea4e\"/>\n    <symbolinfo name=\"comments_disabled\" entity=\"e7a2\"/>\n    <symbolinfo name=\"commit\" entity=\"eaf5\"/>\n    <symbolinfo name=\"communication\" entity=\"e27c\"/>\n    <symbolinfo name=\"communities\" entity=\"eb16\"/>\n    <symbolinfo name=\"communities_filled\" entity=\"eb16\"/>\n    <symbolinfo name=\"commute\" entity=\"e940\"/>\n    <symbolinfo name=\"compare\" entity=\"e3b9\"/>\n    <symbolinfo name=\"compare_arrows\" entity=\"e915\"/>\n    <symbolinfo name=\"compass_calibration\" entity=\"e57c\"/>\n    <symbolinfo name=\"component_exchange\" entity=\"f1e7\"/>\n    <symbolinfo name=\"compost\" entity=\"e761\"/>\n    <symbolinfo name=\"compress\" entity=\"e94d\"/>\n    <symbolinfo name=\"computer\" entity=\"e31e\"/>\n    <symbolinfo name=\"concierge\" entity=\"f561\"/>\n    <symbolinfo name=\"conditions\" entity=\"e0a0\"/>\n    <symbolinfo name=\"confirmation_number\" entity=\"e638\"/>\n    <symbolinfo name=\"congenital\" entity=\"e0a1\"/>\n    <symbolinfo name=\"connect_without_contact\" entity=\"f223\"/>\n    <symbolinfo name=\"connected_tv\" entity=\"e998\"/>\n    <symbolinfo name=\"connecting_airports\" entity=\"e7c9\"/>\n    <symbolinfo name=\"construction\" entity=\"ea3c\"/>\n    <symbolinfo name=\"contact_emergency\" entity=\"f8d1\"/>\n    <symbolinfo name=\"contact_mail\" entity=\"e0d0\"/>\n    <symbolinfo name=\"contact_page\" entity=\"f22e\"/>\n    <symbolinfo name=\"contact_phone\" entity=\"f0c0\"/>\n    <symbolinfo name=\"contact_phone_filled\" entity=\"f0c0\"/>\n    <symbolinfo name=\"contact_support\" entity=\"e94c\"/>\n    <symbolinfo name=\"contactless\" entity=\"ea71\"/>\n    <symbolinfo name=\"contactless_off\" entity=\"f858\"/>\n    <symbolinfo name=\"contacts\" entity=\"e0ba\"/>\n    <symbolinfo name=\"content_copy\" entity=\"e14d\"/>\n    <symbolinfo name=\"content_cut\" entity=\"e14e\"/>\n    <symbolinfo name=\"content_paste\" entity=\"e14f\"/>\n    <symbolinfo name=\"content_paste_go\" entity=\"ea8e\"/>\n    <symbolinfo name=\"content_paste_off\" entity=\"e4f8\"/>\n    <symbolinfo name=\"content_paste_search\" entity=\"ea9b\"/>\n    <symbolinfo name=\"contract\" entity=\"f5a0\"/>\n    <symbolinfo name=\"contract_delete\" entity=\"f5a2\"/>\n    <symbolinfo name=\"contract_edit\" entity=\"f5a1\"/>\n    <symbolinfo name=\"contrast\" entity=\"eb37\"/>\n    <symbolinfo name=\"contrast_rtl_off\" entity=\"ec72\"/>\n    <symbolinfo name=\"control_camera\" entity=\"e074\"/>\n    <symbolinfo name=\"control_point\" entity=\"e3ba\"/>\n    <symbolinfo name=\"control_point_duplicate\" entity=\"e3bb\"/>\n    <symbolinfo name=\"controller_gen\" entity=\"e83d\"/>\n    <symbolinfo name=\"conversion_path\" entity=\"f0c1\"/>\n    <symbolinfo name=\"conversion_path_off\" entity=\"f7b4\"/>\n    <symbolinfo name=\"conveyor_belt\" entity=\"f867\"/>\n    <symbolinfo name=\"cookie\" entity=\"eaac\"/>\n    <symbolinfo name=\"cookie_off\" entity=\"f79a\"/>\n    <symbolinfo name=\"cooking\" entity=\"e2b6\"/>\n    <symbolinfo name=\"cool_to_dry\" entity=\"e276\"/>\n    <symbolinfo name=\"copy_all\" entity=\"e2ec\"/>\n    <symbolinfo name=\"copyright\" entity=\"e90c\"/>\n    <symbolinfo name=\"coronavirus\" entity=\"f221\"/>\n    <symbolinfo name=\"corporate_fare\" entity=\"f1d0\"/>\n    <symbolinfo name=\"cottage\" entity=\"e587\"/>\n    <symbolinfo name=\"counter_0\" entity=\"f785\"/>\n    <symbolinfo name=\"counter_1\" entity=\"f784\"/>\n    <symbolinfo name=\"counter_2\" entity=\"f783\"/>\n    <symbolinfo name=\"counter_3\" entity=\"f782\"/>\n    <symbolinfo name=\"counter_4\" entity=\"f781\"/>\n    <symbolinfo name=\"counter_5\" entity=\"f780\"/>\n    <symbolinfo name=\"counter_6\" entity=\"f77f\"/>\n    <symbolinfo name=\"counter_7\" entity=\"f77e\"/>\n    <symbolinfo name=\"counter_8\" entity=\"f77d\"/>\n    <symbolinfo name=\"counter_9\" entity=\"f77c\"/>\n    <symbolinfo name=\"countertops\" entity=\"f1f7\"/>\n    <symbolinfo name=\"create\" entity=\"f097\"/>\n    <symbolinfo name=\"create_new_folder\" entity=\"e2cc\"/>\n    <symbolinfo name=\"credit_card\" entity=\"e8a1\"/>\n    <symbolinfo name=\"credit_card_off\" entity=\"e4f4\"/>\n    <symbolinfo name=\"credit_score\" entity=\"eff1\"/>\n    <symbolinfo name=\"crib\" entity=\"e588\"/>\n    <symbolinfo name=\"crisis_alert\" entity=\"ebe9\"/>\n    <symbolinfo name=\"crop\" entity=\"e3be\"/>\n    <symbolinfo name=\"crop_16_9\" entity=\"e3bc\"/>\n    <symbolinfo name=\"crop_3_2\" entity=\"e3bd\"/>\n    <symbolinfo name=\"crop_5_4\" entity=\"e3bf\"/>\n    <symbolinfo name=\"crop_7_5\" entity=\"e3c0\"/>\n    <symbolinfo name=\"crop_9_16\" entity=\"f549\"/>\n    <symbolinfo name=\"crop_din\" entity=\"e3c6\"/>\n    <symbolinfo name=\"crop_free\" entity=\"e3c2\"/>\n    <symbolinfo name=\"crop_landscape\" entity=\"e3c3\"/>\n    <symbolinfo name=\"crop_original\" entity=\"e3f4\"/>\n    <symbolinfo name=\"crop_portrait\" entity=\"e3c5\"/>\n    <symbolinfo name=\"crop_rotate\" entity=\"e437\"/>\n    <symbolinfo name=\"crop_square\" entity=\"e3c6\"/>\n    <symbolinfo name=\"crossword\" entity=\"f5e5\"/>\n    <symbolinfo name=\"crowdsource\" entity=\"eb18\"/>\n    <symbolinfo name=\"cruelty_free\" entity=\"e799\"/>\n    <symbolinfo name=\"css\" entity=\"eb93\"/>\n    <symbolinfo name=\"csv\" entity=\"e6cf\"/>\n    <symbolinfo name=\"currency_bitcoin\" entity=\"ebc5\"/>\n    <symbolinfo name=\"currency_exchange\" entity=\"eb70\"/>\n    <symbolinfo name=\"currency_franc\" entity=\"eafa\"/>\n    <symbolinfo name=\"currency_lira\" entity=\"eaef\"/>\n    <symbolinfo name=\"currency_pound\" entity=\"eaf1\"/>\n    <symbolinfo name=\"currency_ruble\" entity=\"eaec\"/>\n    <symbolinfo name=\"currency_rupee\" entity=\"eaf7\"/>\n    <symbolinfo name=\"currency_yen\" entity=\"eafb\"/>\n    <symbolinfo name=\"currency_yuan\" entity=\"eaf9\"/>\n    <symbolinfo name=\"curtains\" entity=\"ec1e\"/>\n    <symbolinfo name=\"curtains_closed\" entity=\"ec1d\"/>\n    <symbolinfo name=\"custom_typography\" entity=\"e732\"/>\n    <symbolinfo name=\"cut\" entity=\"f08b\"/>\n    <symbolinfo name=\"cycle\" entity=\"f854\"/>\n    <symbolinfo name=\"cyclone\" entity=\"ebd5\"/>\n    <symbolinfo name=\"dangerous\" entity=\"e99a\"/>\n    <symbolinfo name=\"dark_mode\" entity=\"e51c\"/>\n    <symbolinfo name=\"dashboard\" entity=\"e871\"/>\n    <symbolinfo name=\"dashboard_customize\" entity=\"e99b\"/>\n    <symbolinfo name=\"data_alert\" entity=\"f7f6\"/>\n    <symbolinfo name=\"data_array\" entity=\"ead1\"/>\n    <symbolinfo name=\"data_check\" entity=\"f7f2\"/>\n    <symbolinfo name=\"data_exploration\" entity=\"e76f\"/>\n    <symbolinfo name=\"data_info_alert\" entity=\"f7f5\"/>\n    <symbolinfo name=\"data_loss_prevention\" entity=\"e2dc\"/>\n    <symbolinfo name=\"data_object\" entity=\"ead3\"/>\n    <symbolinfo name=\"data_saver_off\" entity=\"eff2\"/>\n    <symbolinfo name=\"data_saver_on\" entity=\"eff3\"/>\n    <symbolinfo name=\"data_table\" entity=\"e99c\"/>\n    <symbolinfo name=\"data_thresholding\" entity=\"eb9f\"/>\n    <symbolinfo name=\"data_usage\" entity=\"eff2\"/>\n    <symbolinfo name=\"database\" entity=\"f20e\"/>\n    <symbolinfo name=\"dataset\" entity=\"f8ee\"/>\n    <symbolinfo name=\"dataset_linked\" entity=\"f8ef\"/>\n    <symbolinfo name=\"date_range\" entity=\"e916\"/>\n    <symbolinfo name=\"deblur\" entity=\"eb77\"/>\n    <symbolinfo name=\"deceased\" entity=\"e0a5\"/>\n    <symbolinfo name=\"decimal_decrease\" entity=\"f82d\"/>\n    <symbolinfo name=\"decimal_increase\" entity=\"f82c\"/>\n    <symbolinfo name=\"deck\" entity=\"ea42\"/>\n    <symbolinfo name=\"dehaze\" entity=\"e3c7\"/>\n    <symbolinfo name=\"delete\" entity=\"e92e\"/>\n    <symbolinfo name=\"delete_forever\" entity=\"e92b\"/>\n    <symbolinfo name=\"delete_outline\" entity=\"e92e\"/>\n    <symbolinfo name=\"delete_sweep\" entity=\"e16c\"/>\n    <symbolinfo name=\"demography\" entity=\"e489\"/>\n    <symbolinfo name=\"density_large\" entity=\"eba9\"/>\n    <symbolinfo name=\"density_medium\" entity=\"eb9e\"/>\n    <symbolinfo name=\"density_small\" entity=\"eba8\"/>\n    <symbolinfo name=\"dentistry\" entity=\"e0a6\"/>\n    <symbolinfo name=\"departure_board\" entity=\"e576\"/>\n    <symbolinfo name=\"deployed_code\" entity=\"f720\"/>\n    <symbolinfo name=\"deployed_code_alert\" entity=\"f5f2\"/>\n    <symbolinfo name=\"deployed_code_history\" entity=\"f5f3\"/>\n    <symbolinfo name=\"deployed_code_update\" entity=\"f5f4\"/>\n    <symbolinfo name=\"dermatology\" entity=\"e0a7\"/>\n    <symbolinfo name=\"description\" entity=\"e873\"/>\n    <symbolinfo name=\"deselect\" entity=\"ebb6\"/>\n    <symbolinfo name=\"design_services\" entity=\"f10a\"/>\n    <symbolinfo name=\"desk\" entity=\"f8f4\"/>\n    <symbolinfo name=\"deskphone\" entity=\"f7fa\"/>\n    <symbolinfo name=\"desktop_access_disabled\" entity=\"e99d\"/>\n    <symbolinfo name=\"desktop_mac\" entity=\"e30b\"/>\n    <symbolinfo name=\"desktop_windows\" entity=\"e30c\"/>\n    <symbolinfo name=\"destruction\" entity=\"f585\"/>\n    <symbolinfo name=\"details\" entity=\"e3c8\"/>\n    <symbolinfo name=\"detection_and_zone\" entity=\"e29f\"/>\n    <symbolinfo name=\"detector\" entity=\"e282\"/>\n    <symbolinfo name=\"detector_alarm\" entity=\"e1f7\"/>\n    <symbolinfo name=\"detector_battery\" entity=\"e204\"/>\n    <symbolinfo name=\"detector_co\" entity=\"e2af\"/>\n    <symbolinfo name=\"detector_offline\" entity=\"e223\"/>\n    <symbolinfo name=\"detector_smoke\" entity=\"e285\"/>\n    <symbolinfo name=\"detector_status\" entity=\"e1e8\"/>\n    <symbolinfo name=\"developer_board\" entity=\"e30d\"/>\n    <symbolinfo name=\"developer_board_off\" entity=\"e4ff\"/>\n    <symbolinfo name=\"developer_guide\" entity=\"e99e\"/>\n    <symbolinfo name=\"developer_mode\" entity=\"e1b0\"/>\n    <symbolinfo name=\"developer_mode_tv\" entity=\"e874\"/>\n    <symbolinfo name=\"device_hub\" entity=\"e335\"/>\n    <symbolinfo name=\"device_reset\" entity=\"e8b3\"/>\n    <symbolinfo name=\"device_thermostat\" entity=\"e1ff\"/>\n    <symbolinfo name=\"device_unknown\" entity=\"e339\"/>\n    <symbolinfo name=\"devices\" entity=\"e326\"/>\n    <symbolinfo name=\"devices_fold\" entity=\"ebde\"/>\n    <symbolinfo name=\"devices_off\" entity=\"f7a5\"/>\n    <symbolinfo name=\"devices_other\" entity=\"e337\"/>\n    <symbolinfo name=\"devices_wearables\" entity=\"f6ab\"/>\n    <symbolinfo name=\"dew_point\" entity=\"f879\"/>\n    <symbolinfo name=\"diagnosis\" entity=\"e0a8\"/>\n    <symbolinfo name=\"dialer_sip\" entity=\"e0bb\"/>\n    <symbolinfo name=\"dialogs\" entity=\"e99f\"/>\n    <symbolinfo name=\"dialpad\" entity=\"e0bc\"/>\n    <symbolinfo name=\"diamond\" entity=\"ead5\"/>\n    <symbolinfo name=\"difference\" entity=\"eb7d\"/>\n    <symbolinfo name=\"digital_out_of_home\" entity=\"f1de\"/>\n    <symbolinfo name=\"dining\" entity=\"eff4\"/>\n    <symbolinfo name=\"dinner_dining\" entity=\"ea57\"/>\n    <symbolinfo name=\"directions\" entity=\"e52e\"/>\n    <symbolinfo name=\"directions_alt\" entity=\"f880\"/>\n    <symbolinfo name=\"directions_alt_off\" entity=\"f881\"/>\n    <symbolinfo name=\"directions_bike\" entity=\"e52f\"/>\n    <symbolinfo name=\"directions_boat\" entity=\"eff5\"/>\n    <symbolinfo name=\"directions_boat_filled\" entity=\"eff5\"/>\n    <symbolinfo name=\"directions_bus\" entity=\"eff6\"/>\n    <symbolinfo name=\"directions_bus_filled\" entity=\"eff6\"/>\n    <symbolinfo name=\"directions_car\" entity=\"eff7\"/>\n    <symbolinfo name=\"directions_car_filled\" entity=\"eff7\"/>\n    <symbolinfo name=\"directions_off\" entity=\"f10f\"/>\n    <symbolinfo name=\"directions_railway\" entity=\"eff8\"/>\n    <symbolinfo name=\"directions_railway_filled\" entity=\"eff8\"/>\n    <symbolinfo name=\"directions_run\" entity=\"e566\"/>\n    <symbolinfo name=\"directions_subway\" entity=\"effa\"/>\n    <symbolinfo name=\"directions_subway_filled\" entity=\"effa\"/>\n    <symbolinfo name=\"directions_transit\" entity=\"effa\"/>\n    <symbolinfo name=\"directions_transit_filled\" entity=\"effa\"/>\n    <symbolinfo name=\"directions_walk\" entity=\"e536\"/>\n    <symbolinfo name=\"directory_sync\" entity=\"e394\"/>\n    <symbolinfo name=\"dirty_lens\" entity=\"ef4b\"/>\n    <symbolinfo name=\"disabled_by_default\" entity=\"f230\"/>\n    <symbolinfo name=\"disabled_visible\" entity=\"e76e\"/>\n    <symbolinfo name=\"disc_full\" entity=\"e610\"/>\n    <symbolinfo name=\"discover_tune\" entity=\"e018\"/>\n    <symbolinfo name=\"dishwasher_gen\" entity=\"e832\"/>\n    <symbolinfo name=\"display_external_input\" entity=\"f7e7\"/>\n    <symbolinfo name=\"display_settings\" entity=\"eb97\"/>\n    <symbolinfo name=\"distance\" entity=\"f6ea\"/>\n    <symbolinfo name=\"diversity_1\" entity=\"f8d7\"/>\n    <symbolinfo name=\"diversity_2\" entity=\"f8d8\"/>\n    <symbolinfo name=\"diversity_3\" entity=\"f8d9\"/>\n    <symbolinfo name=\"diversity_4\" entity=\"f857\"/>\n    <symbolinfo name=\"dns\" entity=\"e875\"/>\n    <symbolinfo name=\"do_disturb\" entity=\"f08c\"/>\n    <symbolinfo name=\"do_disturb_alt\" entity=\"f08d\"/>\n    <symbolinfo name=\"do_disturb_off\" entity=\"f08e\"/>\n    <symbolinfo name=\"do_disturb_on\" entity=\"f08f\"/>\n    <symbolinfo name=\"do_not_disturb\" entity=\"f08d\"/>\n    <symbolinfo name=\"do_not_disturb_alt\" entity=\"f08c\"/>\n    <symbolinfo name=\"do_not_disturb_off\" entity=\"f08e\"/>\n    <symbolinfo name=\"do_not_disturb_on\" entity=\"f08f\"/>\n    <symbolinfo name=\"do_not_disturb_on_total_silence\" entity=\"effb\"/>\n    <symbolinfo name=\"do_not_step\" entity=\"f19f\"/>\n    <symbolinfo name=\"do_not_touch\" entity=\"f1b0\"/>\n    <symbolinfo name=\"dock\" entity=\"e30e\"/>\n    <symbolinfo name=\"dock_to_bottom\" entity=\"f7e6\"/>\n    <symbolinfo name=\"dock_to_left\" entity=\"f7e5\"/>\n    <symbolinfo name=\"dock_to_right\" entity=\"f7e4\"/>\n    <symbolinfo name=\"docs_add_on\" entity=\"f0c2\"/>\n    <symbolinfo name=\"docs_apps_script\" entity=\"f0c3\"/>\n    <symbolinfo name=\"document_scanner\" entity=\"e5fa\"/>\n    <symbolinfo name=\"domain\" entity=\"e7ee\"/>\n    <symbolinfo name=\"domain_add\" entity=\"eb62\"/>\n    <symbolinfo name=\"domain_disabled\" entity=\"e0ef\"/>\n    <symbolinfo name=\"domain_verification\" entity=\"ef4c\"/>\n    <symbolinfo name=\"domain_verification_off\" entity=\"f7b0\"/>\n    <symbolinfo name=\"domino_mask\" entity=\"f5e4\"/>\n    <symbolinfo name=\"done\" entity=\"e876\"/>\n    <symbolinfo name=\"done_all\" entity=\"e877\"/>\n    <symbolinfo name=\"done_outline\" entity=\"e92f\"/>\n    <symbolinfo name=\"donut_large\" entity=\"e917\"/>\n    <symbolinfo name=\"donut_small\" entity=\"e918\"/>\n    <symbolinfo name=\"door_back\" entity=\"effc\"/>\n    <symbolinfo name=\"door_front\" entity=\"effd\"/>\n    <symbolinfo name=\"door_open\" entity=\"e77c\"/>\n    <symbolinfo name=\"door_sensor\" entity=\"e28a\"/>\n    <symbolinfo name=\"door_sliding\" entity=\"effe\"/>\n    <symbolinfo name=\"doorbell\" entity=\"efff\"/>\n    <symbolinfo name=\"doorbell_3p\" entity=\"e1e7\"/>\n    <symbolinfo name=\"doorbell_chime\" entity=\"e1f3\"/>\n    <symbolinfo name=\"double_arrow\" entity=\"ea50\"/>\n    <symbolinfo name=\"downhill_skiing\" entity=\"e509\"/>\n    <symbolinfo name=\"download\" entity=\"f090\"/>\n    <symbolinfo name=\"download_done\" entity=\"f091\"/>\n    <symbolinfo name=\"download_for_offline\" entity=\"f000\"/>\n    <symbolinfo name=\"downloading\" entity=\"f001\"/>\n    <symbolinfo name=\"draft\" entity=\"e66d\"/>\n    <symbolinfo name=\"draft_orders\" entity=\"e7b3\"/>\n    <symbolinfo name=\"drafts\" entity=\"e151\"/>\n    <symbolinfo name=\"drag_click\" entity=\"f71f\"/>\n    <symbolinfo name=\"drag_handle\" entity=\"e25d\"/>\n    <symbolinfo name=\"drag_indicator\" entity=\"e945\"/>\n    <symbolinfo name=\"drag_pan\" entity=\"f71e\"/>\n    <symbolinfo name=\"draw\" entity=\"e746\"/>\n    <symbolinfo name=\"draw_abstract\" entity=\"f7f8\"/>\n    <symbolinfo name=\"draw_collage\" entity=\"f7f7\"/>\n    <symbolinfo name=\"dresser\" entity=\"e210\"/>\n    <symbolinfo name=\"drive_eta\" entity=\"eff7\"/>\n    <symbolinfo name=\"drive_file_move\" entity=\"e9a1\"/>\n    <symbolinfo name=\"drive_file_move_outline\" entity=\"e9a1\"/>\n    <symbolinfo name=\"drive_file_move_rtl\" entity=\"e9a1\"/>\n    <symbolinfo name=\"drive_file_rename_outline\" entity=\"e9a2\"/>\n    <symbolinfo name=\"drive_folder_upload\" entity=\"e9a3\"/>\n    <symbolinfo name=\"drive_fusiontable\" entity=\"e678\"/>\n    <symbolinfo name=\"dropdown\" entity=\"e9a4\"/>\n    <symbolinfo name=\"dry\" entity=\"f1b3\"/>\n    <symbolinfo name=\"dry_cleaning\" entity=\"ea58\"/>\n    <symbolinfo name=\"dual_screen\" entity=\"f6cf\"/>\n    <symbolinfo name=\"duo\" entity=\"e9a5\"/>\n    <symbolinfo name=\"dvr\" entity=\"e1b2\"/>\n    <symbolinfo name=\"dynamic_feed\" entity=\"ea14\"/>\n    <symbolinfo name=\"dynamic_form\" entity=\"f1bf\"/>\n    <symbolinfo name=\"e911_avatar\" entity=\"f11a\"/>\n    <symbolinfo name=\"e911_emergency\" entity=\"f119\"/>\n    <symbolinfo name=\"e_mobiledata\" entity=\"f002\"/>\n    <symbolinfo name=\"e_mobiledata_badge\" entity=\"f7e3\"/>\n    <symbolinfo name=\"earbuds\" entity=\"f003\"/>\n    <symbolinfo name=\"earbuds_battery\" entity=\"f004\"/>\n    <symbolinfo name=\"early_on\" entity=\"e2ba\"/>\n    <symbolinfo name=\"earthquake\" entity=\"f64f\"/>\n    <symbolinfo name=\"east\" entity=\"f1df\"/>\n    <symbolinfo name=\"ecg\" entity=\"f80f\"/>\n    <symbolinfo name=\"ecg_heart\" entity=\"f6e9\"/>\n    <symbolinfo name=\"eco\" entity=\"ea35\"/>\n    <symbolinfo name=\"eda\" entity=\"f6e8\"/>\n    <symbolinfo name=\"edgesensor_high\" entity=\"f005\"/>\n    <symbolinfo name=\"edgesensor_low\" entity=\"f006\"/>\n    <symbolinfo name=\"edit\" entity=\"f097\"/>\n    <symbolinfo name=\"edit_attributes\" entity=\"e578\"/>\n    <symbolinfo name=\"edit_calendar\" entity=\"e742\"/>\n    <symbolinfo name=\"edit_document\" entity=\"f88c\"/>\n    <symbolinfo name=\"edit_location\" entity=\"e568\"/>\n    <symbolinfo name=\"edit_location_alt\" entity=\"e1c5\"/>\n    <symbolinfo name=\"edit_note\" entity=\"e745\"/>\n    <symbolinfo name=\"edit_notifications\" entity=\"e525\"/>\n    <symbolinfo name=\"edit_off\" entity=\"e950\"/>\n    <symbolinfo name=\"edit_road\" entity=\"ef4d\"/>\n    <symbolinfo name=\"edit_square\" entity=\"f88d\"/>\n    <symbolinfo name=\"egg\" entity=\"eacc\"/>\n    <symbolinfo name=\"egg_alt\" entity=\"eac8\"/>\n    <symbolinfo name=\"eject\" entity=\"e8fb\"/>\n    <symbolinfo name=\"elderly\" entity=\"f21a\"/>\n    <symbolinfo name=\"elderly_woman\" entity=\"eb69\"/>\n    <symbolinfo name=\"electric_bike\" entity=\"eb1b\"/>\n    <symbolinfo name=\"electric_bolt\" entity=\"ec1c\"/>\n    <symbolinfo name=\"electric_car\" entity=\"eb1c\"/>\n    <symbolinfo name=\"electric_meter\" entity=\"ec1b\"/>\n    <symbolinfo name=\"electric_moped\" entity=\"eb1d\"/>\n    <symbolinfo name=\"electric_rickshaw\" entity=\"eb1e\"/>\n    <symbolinfo name=\"electric_scooter\" entity=\"eb1f\"/>\n    <symbolinfo name=\"electrical_services\" entity=\"f102\"/>\n    <symbolinfo name=\"elevation\" entity=\"f6e7\"/>\n    <symbolinfo name=\"elevator\" entity=\"f1a0\"/>\n    <symbolinfo name=\"email\" entity=\"e159\"/>\n    <symbolinfo name=\"emergency\" entity=\"e1eb\"/>\n    <symbolinfo name=\"emergency_heat\" entity=\"f15d\"/>\n    <symbolinfo name=\"emergency_home\" entity=\"e82a\"/>\n    <symbolinfo name=\"emergency_recording\" entity=\"ebf4\"/>\n    <symbolinfo name=\"emergency_share\" entity=\"ebf6\"/>\n    <symbolinfo name=\"emergency_share_off\" entity=\"f59e\"/>\n    <symbolinfo name=\"emoji_emotions\" entity=\"ea22\"/>\n    <symbolinfo name=\"emoji_events\" entity=\"ea23\"/>\n    <symbolinfo name=\"emoji_flags\" entity=\"f0c6\"/>\n    <symbolinfo name=\"emoji_food_beverage\" entity=\"ea1b\"/>\n    <symbolinfo name=\"emoji_nature\" entity=\"ea1c\"/>\n    <symbolinfo name=\"emoji_objects\" entity=\"ea24\"/>\n    <symbolinfo name=\"emoji_people\" entity=\"ea1d\"/>\n    <symbolinfo name=\"emoji_symbols\" entity=\"ea1e\"/>\n    <symbolinfo name=\"emoji_transportation\" entity=\"ea1f\"/>\n    <symbolinfo name=\"emoticon\" entity=\"e5f3\"/>\n    <symbolinfo name=\"empty_dashboard\" entity=\"f844\"/>\n    <symbolinfo name=\"enable\" entity=\"f188\"/>\n    <symbolinfo name=\"encrypted\" entity=\"e593\"/>\n    <symbolinfo name=\"endocrinology\" entity=\"e0a9\"/>\n    <symbolinfo name=\"energy_program_saving\" entity=\"f15f\"/>\n    <symbolinfo name=\"energy_program_time_used\" entity=\"f161\"/>\n    <symbolinfo name=\"energy_savings_leaf\" entity=\"ec1a\"/>\n    <symbolinfo name=\"engineering\" entity=\"ea3d\"/>\n    <symbolinfo name=\"enhanced_encryption\" entity=\"e63f\"/>\n    <symbolinfo name=\"ent\" entity=\"e0aa\"/>\n    <symbolinfo name=\"equal\" entity=\"f77b\"/>\n    <symbolinfo name=\"equalizer\" entity=\"e01d\"/>\n    <symbolinfo name=\"error\" entity=\"f8b6\"/>\n    <symbolinfo name=\"error_circle_rounded\" entity=\"f8b6\"/>\n    <symbolinfo name=\"error_med\" entity=\"e49b\"/>\n    <symbolinfo name=\"error_outline\" entity=\"f8b6\"/>\n    <symbolinfo name=\"escalator\" entity=\"f1a1\"/>\n    <symbolinfo name=\"escalator_warning\" entity=\"f1ac\"/>\n    <symbolinfo name=\"euro\" entity=\"ea15\"/>\n    <symbolinfo name=\"euro_symbol\" entity=\"e926\"/>\n    <symbolinfo name=\"ev_charger\" entity=\"e56d\"/>\n    <symbolinfo name=\"ev_mobiledata_badge\" entity=\"f7e2\"/>\n    <symbolinfo name=\"ev_shadow\" entity=\"ef8f\"/>\n    <symbolinfo name=\"ev_shadow_add\" entity=\"f580\"/>\n    <symbolinfo name=\"ev_shadow_minus\" entity=\"f57f\"/>\n    <symbolinfo name=\"ev_station\" entity=\"e56d\"/>\n    <symbolinfo name=\"event\" entity=\"e878\"/>\n    <symbolinfo name=\"event_available\" entity=\"e614\"/>\n    <symbolinfo name=\"event_busy\" entity=\"e615\"/>\n    <symbolinfo name=\"event_list\" entity=\"f683\"/>\n    <symbolinfo name=\"event_note\" entity=\"e616\"/>\n    <symbolinfo name=\"event_repeat\" entity=\"eb7b\"/>\n    <symbolinfo name=\"event_seat\" entity=\"e903\"/>\n    <symbolinfo name=\"event_upcoming\" entity=\"f238\"/>\n    <symbolinfo name=\"exclamation\" entity=\"f22f\"/>\n    <symbolinfo name=\"exercise\" entity=\"f6e6\"/>\n    <symbolinfo name=\"exit_to_app\" entity=\"e879\"/>\n    <symbolinfo name=\"expand\" entity=\"e94f\"/>\n    <symbolinfo name=\"expand_all\" entity=\"e946\"/>\n    <symbolinfo name=\"expand_circle_down\" entity=\"e7cd\"/>\n    <symbolinfo name=\"expand_circle_right\" entity=\"f591\"/>\n    <symbolinfo name=\"expand_circle_up\" entity=\"f5d2\"/>\n    <symbolinfo name=\"expand_content\" entity=\"f830\"/>\n    <symbolinfo name=\"expand_less\" entity=\"e5ce\"/>\n    <symbolinfo name=\"expand_more\" entity=\"e5cf\"/>\n    <symbolinfo name=\"explicit\" entity=\"e01e\"/>\n    <symbolinfo name=\"explore\" entity=\"e87a\"/>\n    <symbolinfo name=\"explore_off\" entity=\"e9a8\"/>\n    <symbolinfo name=\"explosion\" entity=\"f685\"/>\n    <symbolinfo name=\"export_notes\" entity=\"e0ac\"/>\n    <symbolinfo name=\"exposure\" entity=\"e3f6\"/>\n    <symbolinfo name=\"exposure_neg_1\" entity=\"e3cb\"/>\n    <symbolinfo name=\"exposure_neg_2\" entity=\"e3cc\"/>\n    <symbolinfo name=\"exposure_plus_1\" entity=\"e800\"/>\n    <symbolinfo name=\"exposure_plus_2\" entity=\"e3ce\"/>\n    <symbolinfo name=\"exposure_zero\" entity=\"e3cf\"/>\n    <symbolinfo name=\"extension\" entity=\"e87b\"/>\n    <symbolinfo name=\"extension_off\" entity=\"e4f5\"/>\n    <symbolinfo name=\"eyeglasses\" entity=\"f6ee\"/>\n    <symbolinfo name=\"face\" entity=\"f008\"/>\n    <symbolinfo name=\"face_2\" entity=\"f8da\"/>\n    <symbolinfo name=\"face_3\" entity=\"f8db\"/>\n    <symbolinfo name=\"face_4\" entity=\"f8dc\"/>\n    <symbolinfo name=\"face_5\" entity=\"f8dd\"/>\n    <symbolinfo name=\"face_6\" entity=\"f8de\"/>\n    <symbolinfo name=\"face_retouching_natural\" entity=\"ef4e\"/>\n    <symbolinfo name=\"face_retouching_off\" entity=\"f007\"/>\n    <symbolinfo name=\"face_unlock\" entity=\"f008\"/>\n    <symbolinfo name=\"fact_check\" entity=\"f0c5\"/>\n    <symbolinfo name=\"factory\" entity=\"ebbc\"/>\n    <symbolinfo name=\"falling\" entity=\"f60d\"/>\n    <symbolinfo name=\"familiar_face_and_zone\" entity=\"e21c\"/>\n    <symbolinfo name=\"family_history\" entity=\"e0ad\"/>\n    <symbolinfo name=\"family_link\" entity=\"eb19\"/>\n    <symbolinfo name=\"family_restroom\" entity=\"f1a2\"/>\n    <symbolinfo name=\"farsight_digital\" entity=\"f559\"/>\n    <symbolinfo name=\"fast_forward\" entity=\"e01f\"/>\n    <symbolinfo name=\"fast_rewind\" entity=\"e020\"/>\n    <symbolinfo name=\"fastfood\" entity=\"e57a\"/>\n    <symbolinfo name=\"faucet\" entity=\"e278\"/>\n    <symbolinfo name=\"favorite\" entity=\"e87e\"/>\n    <symbolinfo name=\"favorite_border\" entity=\"e87e\"/>\n    <symbolinfo name=\"fax\" entity=\"ead8\"/>\n    <symbolinfo name=\"feature_search\" entity=\"e9a9\"/>\n    <symbolinfo name=\"featured_play_list\" entity=\"e06d\"/>\n    <symbolinfo name=\"featured_video\" entity=\"e06e\"/>\n    <symbolinfo name=\"feed\" entity=\"f009\"/>\n    <symbolinfo name=\"feedback\" entity=\"e87f\"/>\n    <symbolinfo name=\"female\" entity=\"e590\"/>\n    <symbolinfo name=\"femur\" entity=\"f891\"/>\n    <symbolinfo name=\"femur_alt\" entity=\"f892\"/>\n    <symbolinfo name=\"fence\" entity=\"f1f6\"/>\n    <symbolinfo name=\"fertile\" entity=\"f6e5\"/>\n    <symbolinfo name=\"festival\" entity=\"ea68\"/>\n    <symbolinfo name=\"fiber_dvr\" entity=\"e05d\"/>\n    <symbolinfo name=\"fiber_manual_record\" entity=\"e061\"/>\n    <symbolinfo name=\"fiber_new\" entity=\"e05e\"/>\n    <symbolinfo name=\"fiber_pin\" entity=\"e06a\"/>\n    <symbolinfo name=\"fiber_smart_record\" entity=\"e062\"/>\n    <symbolinfo name=\"file_copy\" entity=\"e173\"/>\n    <symbolinfo name=\"file_download\" entity=\"f090\"/>\n    <symbolinfo name=\"file_download_done\" entity=\"f091\"/>\n    <symbolinfo name=\"file_download_off\" entity=\"e4fe\"/>\n    <symbolinfo name=\"file_open\" entity=\"eaf3\"/>\n    <symbolinfo name=\"file_present\" entity=\"ea0e\"/>\n    <symbolinfo name=\"file_upload\" entity=\"f09b\"/>\n    <symbolinfo name=\"file_upload_off\" entity=\"f886\"/>\n    <symbolinfo name=\"filter\" entity=\"e3d3\"/>\n    <symbolinfo name=\"filter_1\" entity=\"e3d0\"/>\n    <symbolinfo name=\"filter_2\" entity=\"e3d1\"/>\n    <symbolinfo name=\"filter_3\" entity=\"e3d2\"/>\n    <symbolinfo name=\"filter_4\" entity=\"e3d4\"/>\n    <symbolinfo name=\"filter_5\" entity=\"e3d5\"/>\n    <symbolinfo name=\"filter_6\" entity=\"e3d6\"/>\n    <symbolinfo name=\"filter_7\" entity=\"e3d7\"/>\n    <symbolinfo name=\"filter_8\" entity=\"e3d8\"/>\n    <symbolinfo name=\"filter_9\" entity=\"e3d9\"/>\n    <symbolinfo name=\"filter_9_plus\" entity=\"e3da\"/>\n    <symbolinfo name=\"filter_alt\" entity=\"ef4f\"/>\n    <symbolinfo name=\"filter_alt_off\" entity=\"eb32\"/>\n    <symbolinfo name=\"filter_b_and_w\" entity=\"e3db\"/>\n    <symbolinfo name=\"filter_center_focus\" entity=\"e3dc\"/>\n    <symbolinfo name=\"filter_drama\" entity=\"e3dd\"/>\n    <symbolinfo name=\"filter_frames\" entity=\"e3de\"/>\n    <symbolinfo name=\"filter_hdr\" entity=\"e3df\"/>\n    <symbolinfo name=\"filter_list\" entity=\"e152\"/>\n    <symbolinfo name=\"filter_list_alt\" entity=\"e94e\"/>\n    <symbolinfo name=\"filter_list_off\" entity=\"eb57\"/>\n    <symbolinfo name=\"filter_none\" entity=\"e3e0\"/>\n    <symbolinfo name=\"filter_tilt_shift\" entity=\"e3e2\"/>\n    <symbolinfo name=\"filter_vintage\" entity=\"e3e3\"/>\n    <symbolinfo name=\"finance\" entity=\"e6bf\"/>\n    <symbolinfo name=\"finance_chip\" entity=\"f84e\"/>\n    <symbolinfo name=\"find_in_page\" entity=\"e880\"/>\n    <symbolinfo name=\"find_replace\" entity=\"e881\"/>\n    <symbolinfo name=\"fingerprint\" entity=\"e90d\"/>\n    <symbolinfo name=\"fire_extinguisher\" entity=\"f1d8\"/>\n    <symbolinfo name=\"fire_hydrant\" entity=\"f1a3\"/>\n    <symbolinfo name=\"fire_truck\" entity=\"f8f2\"/>\n    <symbolinfo name=\"fireplace\" entity=\"ea43\"/>\n    <symbolinfo name=\"first_page\" entity=\"e5dc\"/>\n    <symbolinfo name=\"fit_page\" entity=\"f77a\"/>\n    <symbolinfo name=\"fit_screen\" entity=\"ea10\"/>\n    <symbolinfo name=\"fit_width\" entity=\"f779\"/>\n    <symbolinfo name=\"fitness_center\" entity=\"eb43\"/>\n    <symbolinfo name=\"flag\" entity=\"f0c6\"/>\n    <symbolinfo name=\"flag_circle\" entity=\"eaf8\"/>\n    <symbolinfo name=\"flag_filled\" entity=\"f0c6\"/>\n    <symbolinfo name=\"flaky\" entity=\"ef50\"/>\n    <symbolinfo name=\"flare\" entity=\"e3e4\"/>\n    <symbolinfo name=\"flash_auto\" entity=\"e3e5\"/>\n    <symbolinfo name=\"flash_off\" entity=\"e3e6\"/>\n    <symbolinfo name=\"flash_on\" entity=\"e3e7\"/>\n    <symbolinfo name=\"flashlight_off\" entity=\"f00a\"/>\n    <symbolinfo name=\"flashlight_on\" entity=\"f00b\"/>\n    <symbolinfo name=\"flatware\" entity=\"f00c\"/>\n    <symbolinfo name=\"flex_direction\" entity=\"f778\"/>\n    <symbolinfo name=\"flex_no_wrap\" entity=\"f777\"/>\n    <symbolinfo name=\"flex_wrap\" entity=\"f776\"/>\n    <symbolinfo name=\"flight\" entity=\"e539\"/>\n    <symbolinfo name=\"flight_class\" entity=\"e7cb\"/>\n    <symbolinfo name=\"flight_land\" entity=\"e904\"/>\n    <symbolinfo name=\"flight_takeoff\" entity=\"e905\"/>\n    <symbolinfo name=\"flightsmode\" entity=\"ef93\"/>\n    <symbolinfo name=\"flip\" entity=\"e3e8\"/>\n    <symbolinfo name=\"flip_camera_android\" entity=\"ea37\"/>\n    <symbolinfo name=\"flip_camera_ios\" entity=\"ea38\"/>\n    <symbolinfo name=\"flip_to_back\" entity=\"e882\"/>\n    <symbolinfo name=\"flip_to_front\" entity=\"e883\"/>\n    <symbolinfo name=\"flood\" entity=\"ebe6\"/>\n    <symbolinfo name=\"floor\" entity=\"f6e4\"/>\n    <symbolinfo name=\"floor_lamp\" entity=\"e21e\"/>\n    <symbolinfo name=\"flourescent\" entity=\"f07d\"/>\n    <symbolinfo name=\"flowsheet\" entity=\"e0ae\"/>\n    <symbolinfo name=\"fluid\" entity=\"e483\"/>\n    <symbolinfo name=\"fluid_balance\" entity=\"f80d\"/>\n    <symbolinfo name=\"fluid_med\" entity=\"f80c\"/>\n    <symbolinfo name=\"fluorescent\" entity=\"f07d\"/>\n    <symbolinfo name=\"flutter\" entity=\"f1dd\"/>\n    <symbolinfo name=\"flutter_dash\" entity=\"e00b\"/>\n    <symbolinfo name=\"fmd_bad\" entity=\"f00e\"/>\n    <symbolinfo name=\"fmd_good\" entity=\"f1db\"/>\n    <symbolinfo name=\"foggy\" entity=\"e818\"/>\n    <symbolinfo name=\"folded_hands\" entity=\"f5ed\"/>\n    <symbolinfo name=\"folder\" entity=\"e2c7\"/>\n    <symbolinfo name=\"folder_copy\" entity=\"ebbd\"/>\n    <symbolinfo name=\"folder_data\" entity=\"f586\"/>\n    <symbolinfo name=\"folder_delete\" entity=\"eb34\"/>\n    <symbolinfo name=\"folder_managed\" entity=\"f775\"/>\n    <symbolinfo name=\"folder_off\" entity=\"eb83\"/>\n    <symbolinfo name=\"folder_open\" entity=\"e2c8\"/>\n    <symbolinfo name=\"folder_shared\" entity=\"e2c9\"/>\n    <symbolinfo name=\"folder_special\" entity=\"e617\"/>\n    <symbolinfo name=\"folder_supervised\" entity=\"f774\"/>\n    <symbolinfo name=\"folder_zip\" entity=\"eb2c\"/>\n    <symbolinfo name=\"follow_the_signs\" entity=\"f222\"/>\n    <symbolinfo name=\"font_download\" entity=\"e167\"/>\n    <symbolinfo name=\"font_download_off\" entity=\"e4f9\"/>\n    <symbolinfo name=\"food_bank\" entity=\"f1f2\"/>\n    <symbolinfo name=\"foot_bones\" entity=\"f893\"/>\n    <symbolinfo name=\"footprint\" entity=\"f87d\"/>\n    <symbolinfo name=\"forest\" entity=\"ea99\"/>\n    <symbolinfo name=\"fork_left\" entity=\"eba0\"/>\n    <symbolinfo name=\"fork_right\" entity=\"ebac\"/>\n    <symbolinfo name=\"forklift\" entity=\"f868\"/>\n    <symbolinfo name=\"format_align_center\" entity=\"e234\"/>\n    <symbolinfo name=\"format_align_justify\" entity=\"e235\"/>\n    <symbolinfo name=\"format_align_left\" entity=\"e236\"/>\n    <symbolinfo name=\"format_align_right\" entity=\"e237\"/>\n    <symbolinfo name=\"format_bold\" entity=\"e238\"/>\n    <symbolinfo name=\"format_clear\" entity=\"e239\"/>\n    <symbolinfo name=\"format_color_fill\" entity=\"e23a\"/>\n    <symbolinfo name=\"format_color_reset\" entity=\"e23b\"/>\n    <symbolinfo name=\"format_color_text\" entity=\"e23c\"/>\n    <symbolinfo name=\"format_h1\" entity=\"f85d\"/>\n    <symbolinfo name=\"format_h2\" entity=\"f85e\"/>\n    <symbolinfo name=\"format_h3\" entity=\"f85f\"/>\n    <symbolinfo name=\"format_h4\" entity=\"f860\"/>\n    <symbolinfo name=\"format_h5\" entity=\"f861\"/>\n    <symbolinfo name=\"format_h6\" entity=\"f862\"/>\n    <symbolinfo name=\"format_image_left\" entity=\"f863\"/>\n    <symbolinfo name=\"format_image_right\" entity=\"f864\"/>\n    <symbolinfo name=\"format_indent_decrease\" entity=\"e23d\"/>\n    <symbolinfo name=\"format_indent_increase\" entity=\"e23e\"/>\n    <symbolinfo name=\"format_ink_highlighter\" entity=\"f82b\"/>\n    <symbolinfo name=\"format_italic\" entity=\"e23f\"/>\n    <symbolinfo name=\"format_letter_spacing\" entity=\"f773\"/>\n    <symbolinfo name=\"format_letter_spacing_2\" entity=\"f618\"/>\n    <symbolinfo name=\"format_letter_spacing_standard\" entity=\"f617\"/>\n    <symbolinfo name=\"format_letter_spacing_wide\" entity=\"f616\"/>\n    <symbolinfo name=\"format_letter_spacing_wider\" entity=\"f615\"/>\n    <symbolinfo name=\"format_line_spacing\" entity=\"e240\"/>\n    <symbolinfo name=\"format_list_bulleted\" entity=\"e241\"/>\n    <symbolinfo name=\"format_list_bulleted_add\" entity=\"f849\"/>\n    <symbolinfo name=\"format_list_numbered\" entity=\"e242\"/>\n    <symbolinfo name=\"format_list_numbered_rtl\" entity=\"e267\"/>\n    <symbolinfo name=\"format_overline\" entity=\"eb65\"/>\n    <symbolinfo name=\"format_paint\" entity=\"e243\"/>\n    <symbolinfo name=\"format_paragraph\" entity=\"f865\"/>\n    <symbolinfo name=\"format_quote\" entity=\"e244\"/>\n    <symbolinfo name=\"format_shapes\" entity=\"e25e\"/>\n    <symbolinfo name=\"format_size\" entity=\"e245\"/>\n    <symbolinfo name=\"format_strikethrough\" entity=\"e246\"/>\n    <symbolinfo name=\"format_text_clip\" entity=\"f82a\"/>\n    <symbolinfo name=\"format_text_overflow\" entity=\"f829\"/>\n    <symbolinfo name=\"format_text_wrap\" entity=\"f828\"/>\n    <symbolinfo name=\"format_textdirection_l_to_r\" entity=\"e247\"/>\n    <symbolinfo name=\"format_textdirection_r_to_l\" entity=\"e248\"/>\n    <symbolinfo name=\"format_underlined\" entity=\"e249\"/>\n    <symbolinfo name=\"format_underlined_squiggle\" entity=\"f885\"/>\n    <symbolinfo name=\"forms_add_on\" entity=\"f0c7\"/>\n    <symbolinfo name=\"forms_apps_script\" entity=\"f0c8\"/>\n    <symbolinfo name=\"fort\" entity=\"eaad\"/>\n    <symbolinfo name=\"forum\" entity=\"e8af\"/>\n    <symbolinfo name=\"forward\" entity=\"f57a\"/>\n    <symbolinfo name=\"forward_10\" entity=\"e056\"/>\n    <symbolinfo name=\"forward_30\" entity=\"e057\"/>\n    <symbolinfo name=\"forward_5\" entity=\"e058\"/>\n    <symbolinfo name=\"forward_circle\" entity=\"f6f5\"/>\n    <symbolinfo name=\"forward_media\" entity=\"f6f4\"/>\n    <symbolinfo name=\"forward_to_inbox\" entity=\"f187\"/>\n    <symbolinfo name=\"foundation\" entity=\"f200\"/>\n    <symbolinfo name=\"frame_inspect\" entity=\"f772\"/>\n    <symbolinfo name=\"frame_person\" entity=\"f8a6\"/>\n    <symbolinfo name=\"frame_person_off\" entity=\"f7d1\"/>\n    <symbolinfo name=\"frame_reload\" entity=\"f771\"/>\n    <symbolinfo name=\"frame_source\" entity=\"f770\"/>\n    <symbolinfo name=\"free_breakfast\" entity=\"eb44\"/>\n    <symbolinfo name=\"free_cancellation\" entity=\"e748\"/>\n    <symbolinfo name=\"front_hand\" entity=\"e769\"/>\n    <symbolinfo name=\"front_loader\" entity=\"f869\"/>\n    <symbolinfo name=\"full_coverage\" entity=\"eb12\"/>\n    <symbolinfo name=\"full_hd\" entity=\"f58b\"/>\n    <symbolinfo name=\"full_stacked_bar_chart\" entity=\"f212\"/>\n    <symbolinfo name=\"fullscreen\" entity=\"e5d0\"/>\n    <symbolinfo name=\"fullscreen_exit\" entity=\"e5d1\"/>\n    <symbolinfo name=\"function\" entity=\"f866\"/>\n    <symbolinfo name=\"functions\" entity=\"e24a\"/>\n    <symbolinfo name=\"g_mobiledata\" entity=\"f010\"/>\n    <symbolinfo name=\"g_mobiledata_badge\" entity=\"f7e1\"/>\n    <symbolinfo name=\"g_translate\" entity=\"e927\"/>\n    <symbolinfo name=\"gallery_thumbnail\" entity=\"f86f\"/>\n    <symbolinfo name=\"gamepad\" entity=\"e30f\"/>\n    <symbolinfo name=\"games\" entity=\"e30f\"/>\n    <symbolinfo name=\"garage\" entity=\"f011\"/>\n    <symbolinfo name=\"garage_home\" entity=\"e82d\"/>\n    <symbolinfo name=\"garden_cart\" entity=\"f8a9\"/>\n    <symbolinfo name=\"gas_meter\" entity=\"ec19\"/>\n    <symbolinfo name=\"gastroenterology\" entity=\"e0f1\"/>\n    <symbolinfo name=\"gate\" entity=\"e277\"/>\n    <symbolinfo name=\"gavel\" entity=\"e90e\"/>\n    <symbolinfo name=\"generating_tokens\" entity=\"e749\"/>\n    <symbolinfo name=\"genetics\" entity=\"e0f3\"/>\n    <symbolinfo name=\"genres\" entity=\"e6ee\"/>\n    <symbolinfo name=\"gesture\" entity=\"e155\"/>\n    <symbolinfo name=\"gesture_select\" entity=\"f657\"/>\n    <symbolinfo name=\"get_app\" entity=\"f090\"/>\n    <symbolinfo name=\"gif\" entity=\"e908\"/>\n    <symbolinfo name=\"gif_box\" entity=\"e7a3\"/>\n    <symbolinfo name=\"girl\" entity=\"eb68\"/>\n    <symbolinfo name=\"gite\" entity=\"e58b\"/>\n    <symbolinfo name=\"glass_cup\" entity=\"f6e3\"/>\n    <symbolinfo name=\"globe\" entity=\"e64c\"/>\n    <symbolinfo name=\"globe_asia\" entity=\"f799\"/>\n    <symbolinfo name=\"globe_uk\" entity=\"f798\"/>\n    <symbolinfo name=\"glucose\" entity=\"e4a0\"/>\n    <symbolinfo name=\"glyphs\" entity=\"f8a3\"/>\n    <symbolinfo name=\"go_to_line\" entity=\"f71d\"/>\n    <symbolinfo name=\"golf_course\" entity=\"eb45\"/>\n    <symbolinfo name=\"google_plus_reshare\" entity=\"f57a\"/>\n    <symbolinfo name=\"google_tv_remote\" entity=\"f5db\"/>\n    <symbolinfo name=\"google_wifi\" entity=\"f579\"/>\n    <symbolinfo name=\"gpp_bad\" entity=\"f012\"/>\n    <symbolinfo name=\"gpp_good\" entity=\"f013\"/>\n    <symbolinfo name=\"gpp_maybe\" entity=\"f014\"/>\n    <symbolinfo name=\"gps_fixed\" entity=\"e55c\"/>\n    <symbolinfo name=\"gps_not_fixed\" entity=\"e1b7\"/>\n    <symbolinfo name=\"gps_off\" entity=\"e1b6\"/>\n    <symbolinfo name=\"grade\" entity=\"e885\"/>\n    <symbolinfo name=\"gradient\" entity=\"e3e9\"/>\n    <symbolinfo name=\"grading\" entity=\"ea4f\"/>\n    <symbolinfo name=\"grain\" entity=\"e3ea\"/>\n    <symbolinfo name=\"graphic_eq\" entity=\"e1b8\"/>\n    <symbolinfo name=\"grass\" entity=\"f205\"/>\n    <symbolinfo name=\"grid_3x3\" entity=\"f015\"/>\n    <symbolinfo name=\"grid_3x3_off\" entity=\"f67c\"/>\n    <symbolinfo name=\"grid_4x4\" entity=\"f016\"/>\n    <symbolinfo name=\"grid_goldenratio\" entity=\"f017\"/>\n    <symbolinfo name=\"grid_guides\" entity=\"f76f\"/>\n    <symbolinfo name=\"grid_off\" entity=\"e3eb\"/>\n    <symbolinfo name=\"grid_on\" entity=\"e3ec\"/>\n    <symbolinfo name=\"grid_view\" entity=\"e9b0\"/>\n    <symbolinfo name=\"group\" entity=\"ea21\"/>\n    <symbolinfo name=\"group_add\" entity=\"e7f0\"/>\n    <symbolinfo name=\"group_auto\" entity=\"f551\"/>\n    <symbolinfo name=\"group_off\" entity=\"e747\"/>\n    <symbolinfo name=\"group_remove\" entity=\"e7ad\"/>\n    <symbolinfo name=\"group_work\" entity=\"e886\"/>\n    <symbolinfo name=\"grouped_bar_chart\" entity=\"f211\"/>\n    <symbolinfo name=\"groups\" entity=\"f233\"/>\n    <symbolinfo name=\"groups_2\" entity=\"f8df\"/>\n    <symbolinfo name=\"groups_3\" entity=\"f8e0\"/>\n    <symbolinfo name=\"gynecology\" entity=\"e0f4\"/>\n    <symbolinfo name=\"h_mobiledata\" entity=\"f018\"/>\n    <symbolinfo name=\"h_mobiledata_badge\" entity=\"f7e0\"/>\n    <symbolinfo name=\"h_plus_mobiledata\" entity=\"f019\"/>\n    <symbolinfo name=\"h_plus_mobiledata_badge\" entity=\"f7df\"/>\n    <symbolinfo name=\"hail\" entity=\"e9b1\"/>\n    <symbolinfo name=\"hallway\" entity=\"e6f8\"/>\n    <symbolinfo name=\"hand_bones\" entity=\"f894\"/>\n    <symbolinfo name=\"hand_gesture\" entity=\"ef9c\"/>\n    <symbolinfo name=\"handshake\" entity=\"ebcb\"/>\n    <symbolinfo name=\"handyman\" entity=\"f10b\"/>\n    <symbolinfo name=\"hangout_video\" entity=\"e0c1\"/>\n    <symbolinfo name=\"hangout_video_off\" entity=\"e0c2\"/>\n    <symbolinfo name=\"hard_drive\" entity=\"f80e\"/>\n    <symbolinfo name=\"hard_drive_2\" entity=\"f7a4\"/>\n    <symbolinfo name=\"hardware\" entity=\"ea59\"/>\n    <symbolinfo name=\"hd\" entity=\"e052\"/>\n    <symbolinfo name=\"hdr_auto\" entity=\"f01a\"/>\n    <symbolinfo name=\"hdr_auto_select\" entity=\"f01b\"/>\n    <symbolinfo name=\"hdr_enhanced_select\" entity=\"ef51\"/>\n    <symbolinfo name=\"hdr_off\" entity=\"e3ed\"/>\n    <symbolinfo name=\"hdr_off_select\" entity=\"f01c\"/>\n    <symbolinfo name=\"hdr_on\" entity=\"e3ee\"/>\n    <symbolinfo name=\"hdr_on_select\" entity=\"f01d\"/>\n    <symbolinfo name=\"hdr_plus\" entity=\"f01e\"/>\n    <symbolinfo name=\"hdr_strong\" entity=\"e3f1\"/>\n    <symbolinfo name=\"hdr_weak\" entity=\"e3f2\"/>\n    <symbolinfo name=\"headphones\" entity=\"f01f\"/>\n    <symbolinfo name=\"headphones_battery\" entity=\"f020\"/>\n    <symbolinfo name=\"headset\" entity=\"f01f\"/>\n    <symbolinfo name=\"headset_mic\" entity=\"e311\"/>\n    <symbolinfo name=\"headset_off\" entity=\"e33a\"/>\n    <symbolinfo name=\"healing\" entity=\"e3f3\"/>\n    <symbolinfo name=\"health_and_safety\" entity=\"e1d5\"/>\n    <symbolinfo name=\"health_metrics\" entity=\"f6e2\"/>\n    <symbolinfo name=\"heap_snapshot_large\" entity=\"f76e\"/>\n    <symbolinfo name=\"heap_snapshot_multiple\" entity=\"f76d\"/>\n    <symbolinfo name=\"heap_snapshot_thumbnail\" entity=\"f76c\"/>\n    <symbolinfo name=\"hearing\" entity=\"e023\"/>\n    <symbolinfo name=\"hearing_disabled\" entity=\"f104\"/>\n    <symbolinfo name=\"heart_broken\" entity=\"eac2\"/>\n    <symbolinfo name=\"heart_check\" entity=\"f60a\"/>\n    <symbolinfo name=\"heart_minus\" entity=\"f883\"/>\n    <symbolinfo name=\"heart_plus\" entity=\"f884\"/>\n    <symbolinfo name=\"heat_pump\" entity=\"ec18\"/>\n    <symbolinfo name=\"heat_pump_balance\" entity=\"e27e\"/>\n    <symbolinfo name=\"height\" entity=\"ea16\"/>\n    <symbolinfo name=\"helicopter\" entity=\"f60c\"/>\n    <symbolinfo name=\"help\" entity=\"e8fd\"/>\n    <symbolinfo name=\"help_center\" entity=\"f1c0\"/>\n    <symbolinfo name=\"help_clinic\" entity=\"f810\"/>\n    <symbolinfo name=\"help_outline\" entity=\"e8fd\"/>\n    <symbolinfo name=\"hematology\" entity=\"e0f6\"/>\n    <symbolinfo name=\"hevc\" entity=\"f021\"/>\n    <symbolinfo name=\"hexagon\" entity=\"eb39\"/>\n    <symbolinfo name=\"hide\" entity=\"ef9e\"/>\n    <symbolinfo name=\"hide_image\" entity=\"f022\"/>\n    <symbolinfo name=\"hide_source\" entity=\"f023\"/>\n    <symbolinfo name=\"high_density\" entity=\"f79c\"/>\n    <symbolinfo name=\"high_quality\" entity=\"e024\"/>\n    <symbolinfo name=\"high_res\" entity=\"f54b\"/>\n    <symbolinfo name=\"highlight\" entity=\"e25f\"/>\n    <symbolinfo name=\"highlight_off\" entity=\"e888\"/>\n    <symbolinfo name=\"highlighter_size_1\" entity=\"f76b\"/>\n    <symbolinfo name=\"highlighter_size_2\" entity=\"f76a\"/>\n    <symbolinfo name=\"highlighter_size_3\" entity=\"f769\"/>\n    <symbolinfo name=\"highlighter_size_4\" entity=\"f768\"/>\n    <symbolinfo name=\"highlighter_size_5\" entity=\"f767\"/>\n    <symbolinfo name=\"hiking\" entity=\"e50a\"/>\n    <symbolinfo name=\"history\" entity=\"e8b3\"/>\n    <symbolinfo name=\"history_edu\" entity=\"ea3e\"/>\n    <symbolinfo name=\"history_toggle_off\" entity=\"f17d\"/>\n    <symbolinfo name=\"hive\" entity=\"eaa6\"/>\n    <symbolinfo name=\"hls\" entity=\"eb8a\"/>\n    <symbolinfo name=\"hls_off\" entity=\"eb8c\"/>\n    <symbolinfo name=\"holiday_village\" entity=\"e58a\"/>\n    <symbolinfo name=\"home\" entity=\"e9b2\"/>\n    <symbolinfo name=\"home_app_logo\" entity=\"e295\"/>\n    <symbolinfo name=\"home_filled\" entity=\"e9b2\"/>\n    <symbolinfo name=\"home_health\" entity=\"e4b9\"/>\n    <symbolinfo name=\"home_iot_device\" entity=\"e283\"/>\n    <symbolinfo name=\"home_max\" entity=\"f024\"/>\n    <symbolinfo name=\"home_max_dots\" entity=\"e849\"/>\n    <symbolinfo name=\"home_mini\" entity=\"f025\"/>\n    <symbolinfo name=\"home_pin\" entity=\"f14d\"/>\n    <symbolinfo name=\"home_repair_service\" entity=\"f100\"/>\n    <symbolinfo name=\"home_speaker\" entity=\"f11c\"/>\n    <symbolinfo name=\"home_storage\" entity=\"f86c\"/>\n    <symbolinfo name=\"home_work\" entity=\"f030\"/>\n    <symbolinfo name=\"horizontal_distribute\" entity=\"e014\"/>\n    <symbolinfo name=\"horizontal_rule\" entity=\"f108\"/>\n    <symbolinfo name=\"horizontal_split\" entity=\"e947\"/>\n    <symbolinfo name=\"hot_tub\" entity=\"eb46\"/>\n    <symbolinfo name=\"hotel\" entity=\"e549\"/>\n    <symbolinfo name=\"hotel_class\" entity=\"e743\"/>\n    <symbolinfo name=\"hourglass\" entity=\"ebff\"/>\n    <symbolinfo name=\"hourglass_bottom\" entity=\"ea5c\"/>\n    <symbolinfo name=\"hourglass_disabled\" entity=\"ef53\"/>\n    <symbolinfo name=\"hourglass_empty\" entity=\"e88b\"/>\n    <symbolinfo name=\"hourglass_full\" entity=\"e88c\"/>\n    <symbolinfo name=\"hourglass_top\" entity=\"ea5b\"/>\n    <symbolinfo name=\"house\" entity=\"ea44\"/>\n    <symbolinfo name=\"house_siding\" entity=\"f202\"/>\n    <symbolinfo name=\"house_with_shield\" entity=\"e786\"/>\n    <symbolinfo name=\"houseboat\" entity=\"e584\"/>\n    <symbolinfo name=\"how_to_reg\" entity=\"e174\"/>\n    <symbolinfo name=\"how_to_vote\" entity=\"e175\"/>\n    <symbolinfo name=\"hr_resting\" entity=\"f6ba\"/>\n    <symbolinfo name=\"html\" entity=\"eb7e\"/>\n    <symbolinfo name=\"http\" entity=\"e902\"/>\n    <symbolinfo name=\"https\" entity=\"e899\"/>\n    <symbolinfo name=\"hub\" entity=\"e9f4\"/>\n    <symbolinfo name=\"humerus\" entity=\"f895\"/>\n    <symbolinfo name=\"humerus_alt\" entity=\"f896\"/>\n    <symbolinfo name=\"humidity_helper\" entity=\"f55f\"/>\n    <symbolinfo name=\"humidity_high\" entity=\"f163\"/>\n    <symbolinfo name=\"humidity_indoor\" entity=\"f558\"/>\n    <symbolinfo name=\"humidity_low\" entity=\"f164\"/>\n    <symbolinfo name=\"humidity_mid\" entity=\"f165\"/>\n    <symbolinfo name=\"humidity_percentage\" entity=\"f87e\"/>\n    <symbolinfo name=\"hvac\" entity=\"f10e\"/>\n    <symbolinfo name=\"ice_skating\" entity=\"e50b\"/>\n    <symbolinfo name=\"icecream\" entity=\"ea69\"/>\n    <symbolinfo name=\"ifl\" entity=\"e025\"/>\n    <symbolinfo name=\"iframe\" entity=\"f71b\"/>\n    <symbolinfo name=\"iframe_off\" entity=\"f71c\"/>\n    <symbolinfo name=\"image\" entity=\"e3f4\"/>\n    <symbolinfo name=\"image_aspect_ratio\" entity=\"e3f5\"/>\n    <symbolinfo name=\"image_not_supported\" entity=\"f116\"/>\n    <symbolinfo name=\"image_search\" entity=\"e43f\"/>\n    <symbolinfo name=\"imagesearch_roller\" entity=\"e9b4\"/>\n    <symbolinfo name=\"imagesmode\" entity=\"efa2\"/>\n    <symbolinfo name=\"immunology\" entity=\"e0fb\"/>\n    <symbolinfo name=\"import_contacts\" entity=\"e0e0\"/>\n    <symbolinfo name=\"import_export\" entity=\"e8d5\"/>\n    <symbolinfo name=\"important_devices\" entity=\"e912\"/>\n    <symbolinfo name=\"in_home_mode\" entity=\"e833\"/>\n    <symbolinfo name=\"inactive_order\" entity=\"e0fc\"/>\n    <symbolinfo name=\"inbox\" entity=\"e156\"/>\n    <symbolinfo name=\"inbox_customize\" entity=\"f859\"/>\n    <symbolinfo name=\"incomplete_circle\" entity=\"e79b\"/>\n    <symbolinfo name=\"indeterminate_check_box\" entity=\"e909\"/>\n    <symbolinfo name=\"indeterminate_question_box\" entity=\"f56d\"/>\n    <symbolinfo name=\"info\" entity=\"e88e\"/>\n    <symbolinfo name=\"info_i\" entity=\"f59b\"/>\n    <symbolinfo name=\"infrared\" entity=\"f87c\"/>\n    <symbolinfo name=\"ink_eraser\" entity=\"e6d0\"/>\n    <symbolinfo name=\"ink_eraser_off\" entity=\"e7e3\"/>\n    <symbolinfo name=\"ink_highlighter\" entity=\"e6d1\"/>\n    <symbolinfo name=\"ink_marker\" entity=\"e6d2\"/>\n    <symbolinfo name=\"ink_pen\" entity=\"e6d3\"/>\n    <symbolinfo name=\"inpatient\" entity=\"e0fe\"/>\n    <symbolinfo name=\"input\" entity=\"e890\"/>\n    <symbolinfo name=\"input_circle\" entity=\"f71a\"/>\n    <symbolinfo name=\"insert_chart\" entity=\"f0cc\"/>\n    <symbolinfo name=\"insert_chart_filled\" entity=\"f0cc\"/>\n    <symbolinfo name=\"insert_chart_outlined\" entity=\"f0cc\"/>\n    <symbolinfo name=\"insert_comment\" entity=\"e24c\"/>\n    <symbolinfo name=\"insert_drive_file\" entity=\"e66d\"/>\n    <symbolinfo name=\"insert_emoticon\" entity=\"ea22\"/>\n    <symbolinfo name=\"insert_invitation\" entity=\"e878\"/>\n    <symbolinfo name=\"insert_link\" entity=\"e250\"/>\n    <symbolinfo name=\"insert_page_break\" entity=\"eaca\"/>\n    <symbolinfo name=\"insert_photo\" entity=\"e3f4\"/>\n    <symbolinfo name=\"insert_text\" entity=\"f827\"/>\n    <symbolinfo name=\"insights\" entity=\"f092\"/>\n    <symbolinfo name=\"install_desktop\" entity=\"eb71\"/>\n    <symbolinfo name=\"install_mobile\" entity=\"eb72\"/>\n    <symbolinfo name=\"instant_mix\" entity=\"e026\"/>\n    <symbolinfo name=\"integration_instructions\" entity=\"ef54\"/>\n    <symbolinfo name=\"interactive_space\" entity=\"f7ff\"/>\n    <symbolinfo name=\"interests\" entity=\"e7c8\"/>\n    <symbolinfo name=\"interpreter_mode\" entity=\"e83b\"/>\n    <symbolinfo name=\"inventory\" entity=\"e179\"/>\n    <symbolinfo name=\"inventory_2\" entity=\"e1a1\"/>\n    <symbolinfo name=\"invert_colors\" entity=\"e891\"/>\n    <symbolinfo name=\"invert_colors_off\" entity=\"e0c4\"/>\n    <symbolinfo name=\"ios_share\" entity=\"e6b8\"/>\n    <symbolinfo name=\"iron\" entity=\"e583\"/>\n    <symbolinfo name=\"iso\" entity=\"e3f6\"/>\n    <symbolinfo name=\"jamboard_kiosk\" entity=\"e9b5\"/>\n    <symbolinfo name=\"javascript\" entity=\"eb7c\"/>\n    <symbolinfo name=\"join\" entity=\"f84f\"/>\n    <symbolinfo name=\"join_full\" entity=\"f84f\"/>\n    <symbolinfo name=\"join_inner\" entity=\"eaf4\"/>\n    <symbolinfo name=\"join_left\" entity=\"eaf2\"/>\n    <symbolinfo name=\"join_right\" entity=\"eaea\"/>\n    <symbolinfo name=\"joystick\" entity=\"f5ee\"/>\n    <symbolinfo name=\"jump_to_element\" entity=\"f719\"/>\n    <symbolinfo name=\"kayaking\" entity=\"e50c\"/>\n    <symbolinfo name=\"kebab_dining\" entity=\"e842\"/>\n    <symbolinfo name=\"keep_public\" entity=\"f56f\"/>\n    <symbolinfo name=\"kettle\" entity=\"e2b9\"/>\n    <symbolinfo name=\"key\" entity=\"e73c\"/>\n    <symbolinfo name=\"key_off\" entity=\"eb84\"/>\n    <symbolinfo name=\"key_visualizer\" entity=\"f199\"/>\n    <symbolinfo name=\"keyboard\" entity=\"e312\"/>\n    <symbolinfo name=\"keyboard_alt\" entity=\"f028\"/>\n    <symbolinfo name=\"keyboard_arrow_down\" entity=\"e313\"/>\n    <symbolinfo name=\"keyboard_arrow_left\" entity=\"e314\"/>\n    <symbolinfo name=\"keyboard_arrow_right\" entity=\"e315\"/>\n    <symbolinfo name=\"keyboard_arrow_up\" entity=\"e316\"/>\n    <symbolinfo name=\"keyboard_backspace\" entity=\"e317\"/>\n    <symbolinfo name=\"keyboard_capslock\" entity=\"e318\"/>\n    <symbolinfo name=\"keyboard_capslock_badge\" entity=\"f7de\"/>\n    <symbolinfo name=\"keyboard_command_key\" entity=\"eae7\"/>\n    <symbolinfo name=\"keyboard_control_key\" entity=\"eae6\"/>\n    <symbolinfo name=\"keyboard_double_arrow_down\" entity=\"ead0\"/>\n    <symbolinfo name=\"keyboard_double_arrow_left\" entity=\"eac3\"/>\n    <symbolinfo name=\"keyboard_double_arrow_right\" entity=\"eac9\"/>\n    <symbolinfo name=\"keyboard_double_arrow_up\" entity=\"eacf\"/>\n    <symbolinfo name=\"keyboard_external_input\" entity=\"f7dd\"/>\n    <symbolinfo name=\"keyboard_full\" entity=\"f7dc\"/>\n    <symbolinfo name=\"keyboard_hide\" entity=\"e31a\"/>\n    <symbolinfo name=\"keyboard_keys\" entity=\"f67b\"/>\n    <symbolinfo name=\"keyboard_off\" entity=\"f67a\"/>\n    <symbolinfo name=\"keyboard_onscreen\" entity=\"f7db\"/>\n    <symbolinfo name=\"keyboard_option_key\" entity=\"eae8\"/>\n    <symbolinfo name=\"keyboard_previous_language\" entity=\"f7da\"/>\n    <symbolinfo name=\"keyboard_return\" entity=\"e31b\"/>\n    <symbolinfo name=\"keyboard_tab\" entity=\"e31c\"/>\n    <symbolinfo name=\"keyboard_tab_rtl\" entity=\"ec73\"/>\n    <symbolinfo name=\"keyboard_voice\" entity=\"e31d\"/>\n    <symbolinfo name=\"king_bed\" entity=\"ea45\"/>\n    <symbolinfo name=\"kitchen\" entity=\"eb47\"/>\n    <symbolinfo name=\"kitesurfing\" entity=\"e50d\"/>\n    <symbolinfo name=\"lab_panel\" entity=\"e103\"/>\n    <symbolinfo name=\"lab_profile\" entity=\"e104\"/>\n    <symbolinfo name=\"lab_research\" entity=\"f80b\"/>\n    <symbolinfo name=\"label\" entity=\"e893\"/>\n    <symbolinfo name=\"label_important\" entity=\"e948\"/>\n    <symbolinfo name=\"label_important_outline\" entity=\"e948\"/>\n    <symbolinfo name=\"label_off\" entity=\"e9b6\"/>\n    <symbolinfo name=\"label_outline\" entity=\"e893\"/>\n    <symbolinfo name=\"labs\" entity=\"e105\"/>\n    <symbolinfo name=\"lan\" entity=\"eb2f\"/>\n    <symbolinfo name=\"landscape\" entity=\"e564\"/>\n    <symbolinfo name=\"landslide\" entity=\"ebd7\"/>\n    <symbolinfo name=\"language\" entity=\"e894\"/>\n    <symbolinfo name=\"language_chinese_array\" entity=\"f766\"/>\n    <symbolinfo name=\"language_chinese_cangjie\" entity=\"f765\"/>\n    <symbolinfo name=\"language_chinese_dayi\" entity=\"f764\"/>\n    <symbolinfo name=\"language_chinese_pinyin\" entity=\"f763\"/>\n    <symbolinfo name=\"language_chinese_quick\" entity=\"f762\"/>\n    <symbolinfo name=\"language_chinese_wubi\" entity=\"f761\"/>\n    <symbolinfo name=\"language_french\" entity=\"f760\"/>\n    <symbolinfo name=\"language_gb_english\" entity=\"f75f\"/>\n    <symbolinfo name=\"language_international\" entity=\"f75e\"/>\n    <symbolinfo name=\"language_korean_latin\" entity=\"f75d\"/>\n    <symbolinfo name=\"language_pinyin\" entity=\"f75c\"/>\n    <symbolinfo name=\"language_spanish\" entity=\"f5e9\"/>\n    <symbolinfo name=\"language_us\" entity=\"f759\"/>\n    <symbolinfo name=\"language_us_colemak\" entity=\"f75b\"/>\n    <symbolinfo name=\"language_us_dvorak\" entity=\"f75a\"/>\n    <symbolinfo name=\"laps\" entity=\"f6b9\"/>\n    <symbolinfo name=\"laptop\" entity=\"e31e\"/>\n    <symbolinfo name=\"laptop_chromebook\" entity=\"e31f\"/>\n    <symbolinfo name=\"laptop_mac\" entity=\"e320\"/>\n    <symbolinfo name=\"laptop_windows\" entity=\"e321\"/>\n    <symbolinfo name=\"lasso_select\" entity=\"eb03\"/>\n    <symbolinfo name=\"last_page\" entity=\"e5dd\"/>\n    <symbolinfo name=\"launch\" entity=\"e89e\"/>\n    <symbolinfo name=\"laundry\" entity=\"e2a8\"/>\n    <symbolinfo name=\"layers\" entity=\"e53b\"/>\n    <symbolinfo name=\"layers_clear\" entity=\"e53c\"/>\n    <symbolinfo name=\"lda\" entity=\"e106\"/>\n    <symbolinfo name=\"leaderboard\" entity=\"f20c\"/>\n    <symbolinfo name=\"leaf_spark\" entity=\"f55e\"/>\n    <symbolinfo name=\"leak_add\" entity=\"e3f8\"/>\n    <symbolinfo name=\"leak_remove\" entity=\"e3f9\"/>\n    <symbolinfo name=\"left_click\" entity=\"f718\"/>\n    <symbolinfo name=\"left_panel_close\" entity=\"f717\"/>\n    <symbolinfo name=\"left_panel_open\" entity=\"f716\"/>\n    <symbolinfo name=\"legend_toggle\" entity=\"f11b\"/>\n    <symbolinfo name=\"lens\" entity=\"e3fa\"/>\n    <symbolinfo name=\"lens_blur\" entity=\"f029\"/>\n    <symbolinfo name=\"letter_switch\" entity=\"f758\"/>\n    <symbolinfo name=\"library_add\" entity=\"e03c\"/>\n    <symbolinfo name=\"library_add_check\" entity=\"e9b7\"/>\n    <symbolinfo name=\"library_books\" entity=\"e02f\"/>\n    <symbolinfo name=\"library_music\" entity=\"e030\"/>\n    <symbolinfo name=\"lift_to_talk\" entity=\"efa3\"/>\n    <symbolinfo name=\"light\" entity=\"f02a\"/>\n    <symbolinfo name=\"light_group\" entity=\"e28b\"/>\n    <symbolinfo name=\"light_mode\" entity=\"e518\"/>\n    <symbolinfo name=\"lightbulb\" entity=\"e90f\"/>\n    <symbolinfo name=\"lightbulb_circle\" entity=\"ebfe\"/>\n    <symbolinfo name=\"lightbulb_outline\" entity=\"e90f\"/>\n    <symbolinfo name=\"line_axis\" entity=\"ea9a\"/>\n    <symbolinfo name=\"line_curve\" entity=\"f757\"/>\n    <symbolinfo name=\"line_end\" entity=\"f826\"/>\n    <symbolinfo name=\"line_end_arrow\" entity=\"f81d\"/>\n    <symbolinfo name=\"line_end_arrow_notch\" entity=\"f81c\"/>\n    <symbolinfo name=\"line_end_circle\" entity=\"f81b\"/>\n    <symbolinfo name=\"line_end_diamond\" entity=\"f81a\"/>\n    <symbolinfo name=\"line_end_square\" entity=\"f819\"/>\n    <symbolinfo name=\"line_start\" entity=\"f825\"/>\n    <symbolinfo name=\"line_start_arrow\" entity=\"f818\"/>\n    <symbolinfo name=\"line_start_arrow_notch\" entity=\"f817\"/>\n    <symbolinfo name=\"line_start_circle\" entity=\"f816\"/>\n    <symbolinfo name=\"line_start_diamond\" entity=\"f815\"/>\n    <symbolinfo name=\"line_start_square\" entity=\"f814\"/>\n    <symbolinfo name=\"line_style\" entity=\"e919\"/>\n    <symbolinfo name=\"line_weight\" entity=\"e91a\"/>\n    <symbolinfo name=\"linear_scale\" entity=\"e260\"/>\n    <symbolinfo name=\"link\" entity=\"e250\"/>\n    <symbolinfo name=\"link_off\" entity=\"e16f\"/>\n    <symbolinfo name=\"linked_camera\" entity=\"e438\"/>\n    <symbolinfo name=\"liquor\" entity=\"ea60\"/>\n    <symbolinfo name=\"list\" entity=\"e896\"/>\n    <symbolinfo name=\"list_alt\" entity=\"e0ee\"/>\n    <symbolinfo name=\"list_alt_add\" entity=\"f756\"/>\n    <symbolinfo name=\"lists\" entity=\"e9b9\"/>\n    <symbolinfo name=\"live_help\" entity=\"e0c6\"/>\n    <symbolinfo name=\"live_tv\" entity=\"e63a\"/>\n    <symbolinfo name=\"living\" entity=\"f02b\"/>\n    <symbolinfo name=\"local_activity\" entity=\"e553\"/>\n    <symbolinfo name=\"local_airport\" entity=\"e53d\"/>\n    <symbolinfo name=\"local_atm\" entity=\"e53e\"/>\n    <symbolinfo name=\"local_bar\" entity=\"e540\"/>\n    <symbolinfo name=\"local_cafe\" entity=\"eb44\"/>\n    <symbolinfo name=\"local_car_wash\" entity=\"e542\"/>\n    <symbolinfo name=\"local_convenience_store\" entity=\"e543\"/>\n    <symbolinfo name=\"local_dining\" entity=\"e561\"/>\n    <symbolinfo name=\"local_drink\" entity=\"e544\"/>\n    <symbolinfo name=\"local_fire_department\" entity=\"ef55\"/>\n    <symbolinfo name=\"local_florist\" entity=\"e545\"/>\n    <symbolinfo name=\"local_gas_station\" entity=\"e546\"/>\n    <symbolinfo name=\"local_grocery_store\" entity=\"e8cc\"/>\n    <symbolinfo name=\"local_hospital\" entity=\"e548\"/>\n    <symbolinfo name=\"local_hotel\" entity=\"e549\"/>\n    <symbolinfo name=\"local_laundry_service\" entity=\"e54a\"/>\n    <symbolinfo name=\"local_library\" entity=\"e54b\"/>\n    <symbolinfo name=\"local_mall\" entity=\"e54c\"/>\n    <symbolinfo name=\"local_movies\" entity=\"e8da\"/>\n    <symbolinfo name=\"local_offer\" entity=\"f05b\"/>\n    <symbolinfo name=\"local_parking\" entity=\"e54f\"/>\n    <symbolinfo name=\"local_pharmacy\" entity=\"e550\"/>\n    <symbolinfo name=\"local_phone\" entity=\"f0d4\"/>\n    <symbolinfo name=\"local_pizza\" entity=\"e552\"/>\n    <symbolinfo name=\"local_play\" entity=\"e553\"/>\n    <symbolinfo name=\"local_police\" entity=\"ef56\"/>\n    <symbolinfo name=\"local_post_office\" entity=\"e554\"/>\n    <symbolinfo name=\"local_printshop\" entity=\"e8ad\"/>\n    <symbolinfo name=\"local_see\" entity=\"e557\"/>\n    <symbolinfo name=\"local_shipping\" entity=\"e558\"/>\n    <symbolinfo name=\"local_taxi\" entity=\"e559\"/>\n    <symbolinfo name=\"location_automation\" entity=\"f14f\"/>\n    <symbolinfo name=\"location_away\" entity=\"f150\"/>\n    <symbolinfo name=\"location_chip\" entity=\"f850\"/>\n    <symbolinfo name=\"location_city\" entity=\"e7f1\"/>\n    <symbolinfo name=\"location_disabled\" entity=\"e1b6\"/>\n    <symbolinfo name=\"location_home\" entity=\"f152\"/>\n    <symbolinfo name=\"location_off\" entity=\"e0c7\"/>\n    <symbolinfo name=\"location_on\" entity=\"f1db\"/>\n    <symbolinfo name=\"location_pin\" entity=\"f1db\"/>\n    <symbolinfo name=\"location_searching\" entity=\"e1b7\"/>\n    <symbolinfo name=\"locator_tag\" entity=\"f8c1\"/>\n    <symbolinfo name=\"lock\" entity=\"e899\"/>\n    <symbolinfo name=\"lock_clock\" entity=\"ef57\"/>\n    <symbolinfo name=\"lock_open\" entity=\"e898\"/>\n    <symbolinfo name=\"lock_open_right\" entity=\"f656\"/>\n    <symbolinfo name=\"lock_outline\" entity=\"e899\"/>\n    <symbolinfo name=\"lock_person\" entity=\"f8f3\"/>\n    <symbolinfo name=\"lock_reset\" entity=\"eade\"/>\n    <symbolinfo name=\"login\" entity=\"ea77\"/>\n    <symbolinfo name=\"logo_dev\" entity=\"ead6\"/>\n    <symbolinfo name=\"logout\" entity=\"e9ba\"/>\n    <symbolinfo name=\"looks\" entity=\"e3fc\"/>\n    <symbolinfo name=\"looks_3\" entity=\"e3fb\"/>\n    <symbolinfo name=\"looks_4\" entity=\"e3fd\"/>\n    <symbolinfo name=\"looks_5\" entity=\"e3fe\"/>\n    <symbolinfo name=\"looks_6\" entity=\"e3ff\"/>\n    <symbolinfo name=\"looks_one\" entity=\"e400\"/>\n    <symbolinfo name=\"looks_two\" entity=\"e401\"/>\n    <symbolinfo name=\"loop\" entity=\"e863\"/>\n    <symbolinfo name=\"loupe\" entity=\"e402\"/>\n    <symbolinfo name=\"low_density\" entity=\"f79b\"/>\n    <symbolinfo name=\"low_priority\" entity=\"e16d\"/>\n    <symbolinfo name=\"loyalty\" entity=\"e89a\"/>\n    <symbolinfo name=\"lte_mobiledata\" entity=\"f02c\"/>\n    <symbolinfo name=\"lte_mobiledata_badge\" entity=\"f7d9\"/>\n    <symbolinfo name=\"lte_plus_mobiledata\" entity=\"f02d\"/>\n    <symbolinfo name=\"lte_plus_mobiledata_badge\" entity=\"f7d8\"/>\n    <symbolinfo name=\"luggage\" entity=\"f235\"/>\n    <symbolinfo name=\"lunch_dining\" entity=\"ea61\"/>\n    <symbolinfo name=\"lyrics\" entity=\"ec0b\"/>\n    <symbolinfo name=\"macro_auto\" entity=\"f6f2\"/>\n    <symbolinfo name=\"macro_off\" entity=\"f8d2\"/>\n    <symbolinfo name=\"magic_button\" entity=\"f136\"/>\n    <symbolinfo name=\"magic_exchange\" entity=\"f7f4\"/>\n    <symbolinfo name=\"magic_tether\" entity=\"f7d7\"/>\n    <symbolinfo name=\"magnification_large\" entity=\"f83d\"/>\n    <symbolinfo name=\"magnification_small\" entity=\"f83c\"/>\n    <symbolinfo name=\"magnify_docked\" entity=\"f7d6\"/>\n    <symbolinfo name=\"magnify_fullscreen\" entity=\"f7d5\"/>\n    <symbolinfo name=\"mail\" entity=\"e159\"/>\n    <symbolinfo name=\"mail_lock\" entity=\"ec0a\"/>\n    <symbolinfo name=\"mail_outline\" entity=\"e159\"/>\n    <symbolinfo name=\"male\" entity=\"e58e\"/>\n    <symbolinfo name=\"man\" entity=\"e4eb\"/>\n    <symbolinfo name=\"man_2\" entity=\"f8e1\"/>\n    <symbolinfo name=\"man_3\" entity=\"f8e2\"/>\n    <symbolinfo name=\"man_4\" entity=\"f8e3\"/>\n    <symbolinfo name=\"manage_accounts\" entity=\"f02e\"/>\n    <symbolinfo name=\"manage_history\" entity=\"ebe7\"/>\n    <symbolinfo name=\"manage_search\" entity=\"f02f\"/>\n    <symbolinfo name=\"manga\" entity=\"f5e3\"/>\n    <symbolinfo name=\"map\" entity=\"e55b\"/>\n    <symbolinfo name=\"maps_home_work\" entity=\"f030\"/>\n    <symbolinfo name=\"maps_ugc\" entity=\"ef58\"/>\n    <symbolinfo name=\"margin\" entity=\"e9bb\"/>\n    <symbolinfo name=\"mark_as_unread\" entity=\"e9bc\"/>\n    <symbolinfo name=\"mark_chat_read\" entity=\"f18b\"/>\n    <symbolinfo name=\"mark_chat_unread\" entity=\"f189\"/>\n    <symbolinfo name=\"mark_email_read\" entity=\"f18c\"/>\n    <symbolinfo name=\"mark_email_unread\" entity=\"f18a\"/>\n    <symbolinfo name=\"mark_unread_chat_alt\" entity=\"eb9d\"/>\n    <symbolinfo name=\"markdown\" entity=\"f552\"/>\n    <symbolinfo name=\"markdown_copy\" entity=\"f553\"/>\n    <symbolinfo name=\"markdown_paste\" entity=\"f554\"/>\n    <symbolinfo name=\"markunread\" entity=\"e159\"/>\n    <symbolinfo name=\"markunread_mailbox\" entity=\"e89b\"/>\n    <symbolinfo name=\"masked_transitions\" entity=\"e72e\"/>\n    <symbolinfo name=\"masks\" entity=\"f218\"/>\n    <symbolinfo name=\"match_case\" entity=\"f6f1\"/>\n    <symbolinfo name=\"match_word\" entity=\"f6f0\"/>\n    <symbolinfo name=\"matter\" entity=\"e907\"/>\n    <symbolinfo name=\"maximize\" entity=\"e930\"/>\n    <symbolinfo name=\"measuring_tape\" entity=\"f6af\"/>\n    <symbolinfo name=\"media_bluetooth_off\" entity=\"f031\"/>\n    <symbolinfo name=\"media_bluetooth_on\" entity=\"f032\"/>\n    <symbolinfo name=\"media_link\" entity=\"f83f\"/>\n    <symbolinfo name=\"mediation\" entity=\"efa7\"/>\n    <symbolinfo name=\"medical_information\" entity=\"ebed\"/>\n    <symbolinfo name=\"medical_mask\" entity=\"f80a\"/>\n    <symbolinfo name=\"medical_services\" entity=\"f109\"/>\n    <symbolinfo name=\"medication\" entity=\"f033\"/>\n    <symbolinfo name=\"medication_liquid\" entity=\"ea87\"/>\n    <symbolinfo name=\"meeting_room\" entity=\"eb4f\"/>\n    <symbolinfo name=\"memory\" entity=\"e322\"/>\n    <symbolinfo name=\"memory_alt\" entity=\"f7a3\"/>\n    <symbolinfo name=\"menstrual_health\" entity=\"f6e1\"/>\n    <symbolinfo name=\"menu\" entity=\"e5d2\"/>\n    <symbolinfo name=\"menu_book\" entity=\"ea19\"/>\n    <symbolinfo name=\"menu_open\" entity=\"e9bd\"/>\n    <symbolinfo name=\"merge\" entity=\"eb98\"/>\n    <symbolinfo name=\"merge_type\" entity=\"e252\"/>\n    <symbolinfo name=\"message\" entity=\"e0c9\"/>\n    <symbolinfo name=\"metabolism\" entity=\"e10b\"/>\n    <symbolinfo name=\"mfg_nest_yale_lock\" entity=\"f11d\"/>\n    <symbolinfo name=\"mic\" entity=\"e31d\"/>\n    <symbolinfo name=\"mic_double\" entity=\"f5d1\"/>\n    <symbolinfo name=\"mic_external_off\" entity=\"ef59\"/>\n    <symbolinfo name=\"mic_external_on\" entity=\"ef5a\"/>\n    <symbolinfo name=\"mic_none\" entity=\"e31d\"/>\n    <symbolinfo name=\"mic_off\" entity=\"e02b\"/>\n    <symbolinfo name=\"microbiology\" entity=\"e10c\"/>\n    <symbolinfo name=\"microwave\" entity=\"f204\"/>\n    <symbolinfo name=\"microwave_gen\" entity=\"e847\"/>\n    <symbolinfo name=\"military_tech\" entity=\"ea3f\"/>\n    <symbolinfo name=\"mimo\" entity=\"e9be\"/>\n    <symbolinfo name=\"mimo_disconnect\" entity=\"e9bf\"/>\n    <symbolinfo name=\"mindfulness\" entity=\"f6e0\"/>\n    <symbolinfo name=\"minimize\" entity=\"e931\"/>\n    <symbolinfo name=\"minor_crash\" entity=\"ebf1\"/>\n    <symbolinfo name=\"missed_video_call\" entity=\"f0ce\"/>\n    <symbolinfo name=\"missed_video_call_filled\" entity=\"f0ce\"/>\n    <symbolinfo name=\"mist\" entity=\"e188\"/>\n    <symbolinfo name=\"mixture_med\" entity=\"e4c8\"/>\n    <symbolinfo name=\"mms\" entity=\"e618\"/>\n    <symbolinfo name=\"mobile_friendly\" entity=\"e200\"/>\n    <symbolinfo name=\"mobile_off\" entity=\"e201\"/>\n    <symbolinfo name=\"mobile_screen_share\" entity=\"e0e7\"/>\n    <symbolinfo name=\"mobiledata_off\" entity=\"f034\"/>\n    <symbolinfo name=\"mode\" entity=\"f097\"/>\n    <symbolinfo name=\"mode_comment\" entity=\"e253\"/>\n    <symbolinfo name=\"mode_cool\" entity=\"f166\"/>\n    <symbolinfo name=\"mode_cool_off\" entity=\"f167\"/>\n    <symbolinfo name=\"mode_dual\" entity=\"f557\"/>\n    <symbolinfo name=\"mode_edit\" entity=\"f097\"/>\n    <symbolinfo name=\"mode_edit_outline\" entity=\"f097\"/>\n    <symbolinfo name=\"mode_fan\" entity=\"f168\"/>\n    <symbolinfo name=\"mode_fan_off\" entity=\"ec17\"/>\n    <symbolinfo name=\"mode_heat\" entity=\"f16a\"/>\n    <symbolinfo name=\"mode_heat_cool\" entity=\"f16b\"/>\n    <symbolinfo name=\"mode_heat_off\" entity=\"f16d\"/>\n    <symbolinfo name=\"mode_night\" entity=\"f036\"/>\n    <symbolinfo name=\"mode_of_travel\" entity=\"e7ce\"/>\n    <symbolinfo name=\"mode_off_on\" entity=\"f16f\"/>\n    <symbolinfo name=\"mode_standby\" entity=\"f037\"/>\n    <symbolinfo name=\"model_training\" entity=\"f0cf\"/>\n    <symbolinfo name=\"monetization_on\" entity=\"e263\"/>\n    <symbolinfo name=\"money\" entity=\"e57d\"/>\n    <symbolinfo name=\"money_off\" entity=\"f038\"/>\n    <symbolinfo name=\"money_off_csred\" entity=\"f038\"/>\n    <symbolinfo name=\"monitor\" entity=\"ef5b\"/>\n    <symbolinfo name=\"monitor_heart\" entity=\"eaa2\"/>\n    <symbolinfo name=\"monitor_weight\" entity=\"f039\"/>\n    <symbolinfo name=\"monitor_weight_gain\" entity=\"f6df\"/>\n    <symbolinfo name=\"monitor_weight_loss\" entity=\"f6de\"/>\n    <symbolinfo name=\"monitoring\" entity=\"f190\"/>\n    <symbolinfo name=\"monochrome_photos\" entity=\"e403\"/>\n    <symbolinfo name=\"mood\" entity=\"ea22\"/>\n    <symbolinfo name=\"mood_bad\" entity=\"e7f3\"/>\n    <symbolinfo name=\"mop\" entity=\"e28d\"/>\n    <symbolinfo name=\"more\" entity=\"e619\"/>\n    <symbolinfo name=\"more_down\" entity=\"f196\"/>\n    <symbolinfo name=\"more_horiz\" entity=\"e5d3\"/>\n    <symbolinfo name=\"more_time\" entity=\"ea5d\"/>\n    <symbolinfo name=\"more_up\" entity=\"f197\"/>\n    <symbolinfo name=\"more_vert\" entity=\"e5d4\"/>\n    <symbolinfo name=\"mosque\" entity=\"eab2\"/>\n    <symbolinfo name=\"motion_blur\" entity=\"f0d0\"/>\n    <symbolinfo name=\"motion_mode\" entity=\"f842\"/>\n    <symbolinfo name=\"motion_photos_auto\" entity=\"f03a\"/>\n    <symbolinfo name=\"motion_photos_off\" entity=\"e9c0\"/>\n    <symbolinfo name=\"motion_photos_on\" entity=\"e9c1\"/>\n    <symbolinfo name=\"motion_photos_pause\" entity=\"f227\"/>\n    <symbolinfo name=\"motion_photos_paused\" entity=\"f227\"/>\n    <symbolinfo name=\"motion_sensor_active\" entity=\"e792\"/>\n    <symbolinfo name=\"motion_sensor_alert\" entity=\"e784\"/>\n    <symbolinfo name=\"motion_sensor_idle\" entity=\"e783\"/>\n    <symbolinfo name=\"motion_sensor_urgent\" entity=\"e78e\"/>\n    <symbolinfo name=\"motorcycle\" entity=\"e91b\"/>\n    <symbolinfo name=\"mountain_flag\" entity=\"f5e2\"/>\n    <symbolinfo name=\"mouse\" entity=\"e323\"/>\n    <symbolinfo name=\"move\" entity=\"e740\"/>\n    <symbolinfo name=\"move_down\" entity=\"eb61\"/>\n    <symbolinfo name=\"move_group\" entity=\"f715\"/>\n    <symbolinfo name=\"move_item\" entity=\"f1ff\"/>\n    <symbolinfo name=\"move_location\" entity=\"e741\"/>\n    <symbolinfo name=\"move_selection_down\" entity=\"f714\"/>\n    <symbolinfo name=\"move_selection_left\" entity=\"f713\"/>\n    <symbolinfo name=\"move_selection_right\" entity=\"f712\"/>\n    <symbolinfo name=\"move_selection_up\" entity=\"f711\"/>\n    <symbolinfo name=\"move_to_inbox\" entity=\"e168\"/>\n    <symbolinfo name=\"move_up\" entity=\"eb64\"/>\n    <symbolinfo name=\"moved_location\" entity=\"e594\"/>\n    <symbolinfo name=\"movie\" entity=\"e404\"/>\n    <symbolinfo name=\"movie_creation\" entity=\"e404\"/>\n    <symbolinfo name=\"movie_edit\" entity=\"f840\"/>\n    <symbolinfo name=\"movie_filter\" entity=\"e43a\"/>\n    <symbolinfo name=\"movie_info\" entity=\"e02d\"/>\n    <symbolinfo name=\"moving\" entity=\"e501\"/>\n    <symbolinfo name=\"moving_beds\" entity=\"e73d\"/>\n    <symbolinfo name=\"moving_ministry\" entity=\"e73e\"/>\n    <symbolinfo name=\"mp\" entity=\"e9c3\"/>\n    <symbolinfo name=\"multicooker\" entity=\"e293\"/>\n    <symbolinfo name=\"multiline_chart\" entity=\"e6df\"/>\n    <symbolinfo name=\"multiple_stop\" entity=\"f1b9\"/>\n    <symbolinfo name=\"museum\" entity=\"ea36\"/>\n    <symbolinfo name=\"music_note\" entity=\"e405\"/>\n    <symbolinfo name=\"music_off\" entity=\"e440\"/>\n    <symbolinfo name=\"music_video\" entity=\"e063\"/>\n    <symbolinfo name=\"my_location\" entity=\"e55c\"/>\n    <symbolinfo name=\"mystery\" entity=\"f5e1\"/>\n    <symbolinfo name=\"nat\" entity=\"ef5c\"/>\n    <symbolinfo name=\"nature\" entity=\"e406\"/>\n    <symbolinfo name=\"nature_people\" entity=\"e407\"/>\n    <symbolinfo name=\"navigate_before\" entity=\"e408\"/>\n    <symbolinfo name=\"navigate_next\" entity=\"e409\"/>\n    <symbolinfo name=\"navigation\" entity=\"e55d\"/>\n    <symbolinfo name=\"near_me\" entity=\"e569\"/>\n    <symbolinfo name=\"near_me_disabled\" entity=\"f1ef\"/>\n    <symbolinfo name=\"nearby\" entity=\"e6b7\"/>\n    <symbolinfo name=\"nearby_error\" entity=\"f03b\"/>\n    <symbolinfo name=\"nearby_off\" entity=\"f03c\"/>\n    <symbolinfo name=\"nephrology\" entity=\"e10d\"/>\n    <symbolinfo name=\"nest_audio\" entity=\"ebbf\"/>\n    <symbolinfo name=\"nest_cam_floodlight\" entity=\"f8b7\"/>\n    <symbolinfo name=\"nest_cam_indoor\" entity=\"f11e\"/>\n    <symbolinfo name=\"nest_cam_iq\" entity=\"f11f\"/>\n    <symbolinfo name=\"nest_cam_iq_outdoor\" entity=\"f120\"/>\n    <symbolinfo name=\"nest_cam_magnet_mount\" entity=\"f8b8\"/>\n    <symbolinfo name=\"nest_cam_outdoor\" entity=\"f121\"/>\n    <symbolinfo name=\"nest_cam_stand\" entity=\"f8b9\"/>\n    <symbolinfo name=\"nest_cam_wall_mount\" entity=\"f8ba\"/>\n    <symbolinfo name=\"nest_cam_wired_stand\" entity=\"ec16\"/>\n    <symbolinfo name=\"nest_clock_farsight_analog\" entity=\"f8bb\"/>\n    <symbolinfo name=\"nest_clock_farsight_digital\" entity=\"f8bc\"/>\n    <symbolinfo name=\"nest_connect\" entity=\"f122\"/>\n    <symbolinfo name=\"nest_detect\" entity=\"f123\"/>\n    <symbolinfo name=\"nest_display\" entity=\"f124\"/>\n    <symbolinfo name=\"nest_display_max\" entity=\"f125\"/>\n    <symbolinfo name=\"nest_doorbell_visitor\" entity=\"f8bd\"/>\n    <symbolinfo name=\"nest_eco_leaf\" entity=\"f8be\"/>\n    <symbolinfo name=\"nest_farsight_weather\" entity=\"f8bf\"/>\n    <symbolinfo name=\"nest_found_savings\" entity=\"f8c0\"/>\n    <symbolinfo name=\"nest_gale_wifi\" entity=\"f579\"/>\n    <symbolinfo name=\"nest_heat_link_e\" entity=\"f126\"/>\n    <symbolinfo name=\"nest_heat_link_gen_3\" entity=\"f127\"/>\n    <symbolinfo name=\"nest_hello_doorbell\" entity=\"e82c\"/>\n    <symbolinfo name=\"nest_locator_tag\" entity=\"f8c1\"/>\n    <symbolinfo name=\"nest_mini\" entity=\"e789\"/>\n    <symbolinfo name=\"nest_multi_room\" entity=\"f8c2\"/>\n    <symbolinfo name=\"nest_protect\" entity=\"e68e\"/>\n    <symbolinfo name=\"nest_remote\" entity=\"f5db\"/>\n    <symbolinfo name=\"nest_remote_comfort_sensor\" entity=\"f12a\"/>\n    <symbolinfo name=\"nest_secure_alarm\" entity=\"f12b\"/>\n    <symbolinfo name=\"nest_sunblock\" entity=\"f8c3\"/>\n    <symbolinfo name=\"nest_tag\" entity=\"f8c1\"/>\n    <symbolinfo name=\"nest_thermostat\" entity=\"e68f\"/>\n    <symbolinfo name=\"nest_thermostat_e_eu\" entity=\"f12d\"/>\n    <symbolinfo name=\"nest_thermostat_gen_3\" entity=\"f12e\"/>\n    <symbolinfo name=\"nest_thermostat_sensor\" entity=\"f12f\"/>\n    <symbolinfo name=\"nest_thermostat_sensor_eu\" entity=\"f130\"/>\n    <symbolinfo name=\"nest_thermostat_zirconium_eu\" entity=\"f131\"/>\n    <symbolinfo name=\"nest_true_radiant\" entity=\"f8c4\"/>\n    <symbolinfo name=\"nest_wake_on_approach\" entity=\"f8c5\"/>\n    <symbolinfo name=\"nest_wake_on_press\" entity=\"f8c6\"/>\n    <symbolinfo name=\"nest_wifi_gale\" entity=\"f132\"/>\n    <symbolinfo name=\"nest_wifi_mistral\" entity=\"f133\"/>\n    <symbolinfo name=\"nest_wifi_point\" entity=\"f134\"/>\n    <symbolinfo name=\"nest_wifi_point_vento\" entity=\"f134\"/>\n    <symbolinfo name=\"nest_wifi_pro\" entity=\"f56b\"/>\n    <symbolinfo name=\"nest_wifi_pro_2\" entity=\"f56a\"/>\n    <symbolinfo name=\"nest_wifi_router\" entity=\"f133\"/>\n    <symbolinfo name=\"network_cell\" entity=\"e1b9\"/>\n    <symbolinfo name=\"network_check\" entity=\"e640\"/>\n    <symbolinfo name=\"network_intelligence_history\" entity=\"f5f6\"/>\n    <symbolinfo name=\"network_intelligence_update\" entity=\"f5f5\"/>\n    <symbolinfo name=\"network_locked\" entity=\"e61a\"/>\n    <symbolinfo name=\"network_manage\" entity=\"f7ab\"/>\n    <symbolinfo name=\"network_node\" entity=\"f56e\"/>\n    <symbolinfo name=\"network_ping\" entity=\"ebca\"/>\n    <symbolinfo name=\"network_wifi\" entity=\"e1ba\"/>\n    <symbolinfo name=\"network_wifi_1_bar\" entity=\"ebe4\"/>\n    <symbolinfo name=\"network_wifi_1_bar_locked\" entity=\"f58f\"/>\n    <symbolinfo name=\"network_wifi_2_bar\" entity=\"ebd6\"/>\n    <symbolinfo name=\"network_wifi_2_bar_locked\" entity=\"f58e\"/>\n    <symbolinfo name=\"network_wifi_3_bar\" entity=\"ebe1\"/>\n    <symbolinfo name=\"network_wifi_3_bar_locked\" entity=\"f58d\"/>\n    <symbolinfo name=\"neurology\" entity=\"e10e\"/>\n    <symbolinfo name=\"new_label\" entity=\"e609\"/>\n    <symbolinfo name=\"new_releases\" entity=\"ef76\"/>\n    <symbolinfo name=\"new_window\" entity=\"f710\"/>\n    <symbolinfo name=\"news\" entity=\"e032\"/>\n    <symbolinfo name=\"newsmode\" entity=\"efad\"/>\n    <symbolinfo name=\"newspaper\" entity=\"eb81\"/>\n    <symbolinfo name=\"next_plan\" entity=\"ef5d\"/>\n    <symbolinfo name=\"next_week\" entity=\"e16a\"/>\n    <symbolinfo name=\"nfc\" entity=\"e1bb\"/>\n    <symbolinfo name=\"night_shelter\" entity=\"f1f1\"/>\n    <symbolinfo name=\"night_sight_auto\" entity=\"f1d7\"/>\n    <symbolinfo name=\"night_sight_auto_off\" entity=\"f1f9\"/>\n    <symbolinfo name=\"night_sight_max\" entity=\"f6c3\"/>\n    <symbolinfo name=\"nightlife\" entity=\"ea62\"/>\n    <symbolinfo name=\"nightlight\" entity=\"f03d\"/>\n    <symbolinfo name=\"nightlight_round\" entity=\"f03d\"/>\n    <symbolinfo name=\"nights_stay\" entity=\"ea46\"/>\n    <symbolinfo name=\"no_accounts\" entity=\"f03e\"/>\n    <symbolinfo name=\"no_adult_content\" entity=\"f8fe\"/>\n    <symbolinfo name=\"no_backpack\" entity=\"f237\"/>\n    <symbolinfo name=\"no_crash\" entity=\"ebf0\"/>\n    <symbolinfo name=\"no_drinks\" entity=\"f1a5\"/>\n    <symbolinfo name=\"no_encryption\" entity=\"f03f\"/>\n    <symbolinfo name=\"no_encryption_gmailerrorred\" entity=\"f03f\"/>\n    <symbolinfo name=\"no_flash\" entity=\"f1a6\"/>\n    <symbolinfo name=\"no_food\" entity=\"f1a7\"/>\n    <symbolinfo name=\"no_luggage\" entity=\"f23b\"/>\n    <symbolinfo name=\"no_meals\" entity=\"f1d6\"/>\n    <symbolinfo name=\"no_meeting_room\" entity=\"eb4e\"/>\n    <symbolinfo name=\"no_photography\" entity=\"f1a8\"/>\n    <symbolinfo name=\"no_sim\" entity=\"e1ce\"/>\n    <symbolinfo name=\"no_sound\" entity=\"e710\"/>\n    <symbolinfo name=\"no_stroller\" entity=\"f1af\"/>\n    <symbolinfo name=\"no_transfer\" entity=\"f1d5\"/>\n    <symbolinfo name=\"noise_aware\" entity=\"ebec\"/>\n    <symbolinfo name=\"noise_control_off\" entity=\"ebf3\"/>\n    <symbolinfo name=\"noise_control_on\" entity=\"f8a8\"/>\n    <symbolinfo name=\"nordic_walking\" entity=\"e50e\"/>\n    <symbolinfo name=\"north\" entity=\"f1e0\"/>\n    <symbolinfo name=\"north_east\" entity=\"f1e1\"/>\n    <symbolinfo name=\"north_west\" entity=\"f1e2\"/>\n    <symbolinfo name=\"not_accessible\" entity=\"f0fe\"/>\n    <symbolinfo name=\"not_accessible_forward\" entity=\"f54a\"/>\n    <symbolinfo name=\"not_interested\" entity=\"f08c\"/>\n    <symbolinfo name=\"not_listed_location\" entity=\"e575\"/>\n    <symbolinfo name=\"not_started\" entity=\"f0d1\"/>\n    <symbolinfo name=\"note\" entity=\"e66d\"/>\n    <symbolinfo name=\"note_add\" entity=\"e89c\"/>\n    <symbolinfo name=\"note_alt\" entity=\"f040\"/>\n    <symbolinfo name=\"note_stack\" entity=\"f562\"/>\n    <symbolinfo name=\"note_stack_add\" entity=\"f563\"/>\n    <symbolinfo name=\"notes\" entity=\"e26c\"/>\n    <symbolinfo name=\"notification_add\" entity=\"e399\"/>\n    <symbolinfo name=\"notification_important\" entity=\"e004\"/>\n    <symbolinfo name=\"notification_multiple\" entity=\"e6c2\"/>\n    <symbolinfo name=\"notifications\" entity=\"e7f5\"/>\n    <symbolinfo name=\"notifications_active\" entity=\"e7f7\"/>\n    <symbolinfo name=\"notifications_none\" entity=\"e7f5\"/>\n    <symbolinfo name=\"notifications_off\" entity=\"e7f6\"/>\n    <symbolinfo name=\"notifications_paused\" entity=\"e7f8\"/>\n    <symbolinfo name=\"numbers\" entity=\"eac7\"/>\n    <symbolinfo name=\"nutrition\" entity=\"e110\"/>\n    <symbolinfo name=\"ods\" entity=\"e6e8\"/>\n    <symbolinfo name=\"odt\" entity=\"e6e9\"/>\n    <symbolinfo name=\"offline_bolt\" entity=\"e932\"/>\n    <symbolinfo name=\"offline_pin\" entity=\"e90a\"/>\n    <symbolinfo name=\"offline_share\" entity=\"e9c5\"/>\n    <symbolinfo name=\"oil_barrel\" entity=\"ec15\"/>\n    <symbolinfo name=\"on_device_training\" entity=\"ebfd\"/>\n    <symbolinfo name=\"oncology\" entity=\"e114\"/>\n    <symbolinfo name=\"ondemand_video\" entity=\"e63a\"/>\n    <symbolinfo name=\"online_prediction\" entity=\"f0eb\"/>\n    <symbolinfo name=\"onsen\" entity=\"f6f8\"/>\n    <symbolinfo name=\"opacity\" entity=\"e91c\"/>\n    <symbolinfo name=\"open_in_browser\" entity=\"e89d\"/>\n    <symbolinfo name=\"open_in_full\" entity=\"f1ce\"/>\n    <symbolinfo name=\"open_in_new\" entity=\"e89e\"/>\n    <symbolinfo name=\"open_in_new_down\" entity=\"f70f\"/>\n    <symbolinfo name=\"open_in_new_off\" entity=\"e4f6\"/>\n    <symbolinfo name=\"open_in_phone\" entity=\"e702\"/>\n    <symbolinfo name=\"open_jam\" entity=\"efae\"/>\n    <symbolinfo name=\"open_with\" entity=\"e89f\"/>\n    <symbolinfo name=\"ophthalmology\" entity=\"e115\"/>\n    <symbolinfo name=\"oral_disease\" entity=\"e116\"/>\n    <symbolinfo name=\"order_approve\" entity=\"f812\"/>\n    <symbolinfo name=\"order_play\" entity=\"f811\"/>\n    <symbolinfo name=\"orthopedics\" entity=\"f897\"/>\n    <symbolinfo name=\"other_admission\" entity=\"e47b\"/>\n    <symbolinfo name=\"other_houses\" entity=\"e58c\"/>\n    <symbolinfo name=\"outbound\" entity=\"e1ca\"/>\n    <symbolinfo name=\"outbox\" entity=\"ef5f\"/>\n    <symbolinfo name=\"outbox_alt\" entity=\"eb17\"/>\n    <symbolinfo name=\"outdoor_garden\" entity=\"e205\"/>\n    <symbolinfo name=\"outdoor_grill\" entity=\"ea47\"/>\n    <symbolinfo name=\"outgoing_mail\" entity=\"f0d2\"/>\n    <symbolinfo name=\"outlet\" entity=\"f1d4\"/>\n    <symbolinfo name=\"outlined_flag\" entity=\"f0c6\"/>\n    <symbolinfo name=\"outpatient\" entity=\"e118\"/>\n    <symbolinfo name=\"outpatient_med\" entity=\"e119\"/>\n    <symbolinfo name=\"output\" entity=\"ebbe\"/>\n    <symbolinfo name=\"output_circle\" entity=\"f70e\"/>\n    <symbolinfo name=\"oven_gen\" entity=\"e843\"/>\n    <symbolinfo name=\"overview\" entity=\"e4a7\"/>\n    <symbolinfo name=\"overview_key\" entity=\"f7d4\"/>\n    <symbolinfo name=\"oxygen_saturation\" entity=\"e4de\"/>\n    <symbolinfo name=\"pace\" entity=\"f6b8\"/>\n    <symbolinfo name=\"pacemaker\" entity=\"e656\"/>\n    <symbolinfo name=\"package\" entity=\"e48f\"/>\n    <symbolinfo name=\"package_2\" entity=\"f569\"/>\n    <symbolinfo name=\"padding\" entity=\"e9c8\"/>\n    <symbolinfo name=\"page_control\" entity=\"e731\"/>\n    <symbolinfo name=\"page_info\" entity=\"f614\"/>\n    <symbolinfo name=\"pages\" entity=\"e7f9\"/>\n    <symbolinfo name=\"pageview\" entity=\"e8a0\"/>\n    <symbolinfo name=\"paid\" entity=\"f041\"/>\n    <symbolinfo name=\"palette\" entity=\"e40a\"/>\n    <symbolinfo name=\"pallet\" entity=\"f86a\"/>\n    <symbolinfo name=\"pan_tool\" entity=\"e925\"/>\n    <symbolinfo name=\"pan_tool_alt\" entity=\"ebb9\"/>\n    <symbolinfo name=\"pan_zoom\" entity=\"f655\"/>\n    <symbolinfo name=\"panorama\" entity=\"e40b\"/>\n    <symbolinfo name=\"panorama_fish_eye\" entity=\"e40c\"/>\n    <symbolinfo name=\"panorama_horizontal\" entity=\"e40d\"/>\n    <symbolinfo name=\"panorama_photosphere\" entity=\"e9c9\"/>\n    <symbolinfo name=\"panorama_vertical\" entity=\"e40e\"/>\n    <symbolinfo name=\"panorama_wide_angle\" entity=\"e40f\"/>\n    <symbolinfo name=\"paragliding\" entity=\"e50f\"/>\n    <symbolinfo name=\"park\" entity=\"ea63\"/>\n    <symbolinfo name=\"partly_cloudy_day\" entity=\"f172\"/>\n    <symbolinfo name=\"partly_cloudy_night\" entity=\"f174\"/>\n    <symbolinfo name=\"partner_exchange\" entity=\"f7f9\"/>\n    <symbolinfo name=\"partner_reports\" entity=\"efaf\"/>\n    <symbolinfo name=\"party_mode\" entity=\"e7fa\"/>\n    <symbolinfo name=\"passkey\" entity=\"f87f\"/>\n    <symbolinfo name=\"password\" entity=\"f042\"/>\n    <symbolinfo name=\"patient_list\" entity=\"e653\"/>\n    <symbolinfo name=\"pattern\" entity=\"f043\"/>\n    <symbolinfo name=\"pause\" entity=\"e034\"/>\n    <symbolinfo name=\"pause_circle\" entity=\"e1a2\"/>\n    <symbolinfo name=\"pause_circle_filled\" entity=\"e1a2\"/>\n    <symbolinfo name=\"pause_circle_outline\" entity=\"e1a2\"/>\n    <symbolinfo name=\"pause_presentation\" entity=\"e0ea\"/>\n    <symbolinfo name=\"payment\" entity=\"e8a1\"/>\n    <symbolinfo name=\"payments\" entity=\"ef63\"/>\n    <symbolinfo name=\"pedal_bike\" entity=\"eb29\"/>\n    <symbolinfo name=\"pediatrics\" entity=\"e11d\"/>\n    <symbolinfo name=\"pen_size_1\" entity=\"f755\"/>\n    <symbolinfo name=\"pen_size_2\" entity=\"f754\"/>\n    <symbolinfo name=\"pen_size_3\" entity=\"f753\"/>\n    <symbolinfo name=\"pen_size_4\" entity=\"f752\"/>\n    <symbolinfo name=\"pen_size_5\" entity=\"f751\"/>\n    <symbolinfo name=\"pending\" entity=\"ef64\"/>\n    <symbolinfo name=\"pending_actions\" entity=\"f1bb\"/>\n    <symbolinfo name=\"pentagon\" entity=\"eb50\"/>\n    <symbolinfo name=\"people\" entity=\"ea21\"/>\n    <symbolinfo name=\"people_alt\" entity=\"ea21\"/>\n    <symbolinfo name=\"people_outline\" entity=\"ea21\"/>\n    <symbolinfo name=\"percent\" entity=\"eb58\"/>\n    <symbolinfo name=\"performance_max\" entity=\"e51a\"/>\n    <symbolinfo name=\"pergola\" entity=\"e203\"/>\n    <symbolinfo name=\"perm_camera_mic\" entity=\"e8a2\"/>\n    <symbolinfo name=\"perm_contact_calendar\" entity=\"e8a3\"/>\n    <symbolinfo name=\"perm_data_setting\" entity=\"e8a4\"/>\n    <symbolinfo name=\"perm_device_information\" entity=\"e8a5\"/>\n    <symbolinfo name=\"perm_identity\" entity=\"f0d3\"/>\n    <symbolinfo name=\"perm_media\" entity=\"e8a7\"/>\n    <symbolinfo name=\"perm_phone_msg\" entity=\"e8a8\"/>\n    <symbolinfo name=\"perm_scan_wifi\" entity=\"e8a9\"/>\n    <symbolinfo name=\"person\" entity=\"f0d3\"/>\n    <symbolinfo name=\"person_2\" entity=\"f8e4\"/>\n    <symbolinfo name=\"person_3\" entity=\"f8e5\"/>\n    <symbolinfo name=\"person_4\" entity=\"f8e6\"/>\n    <symbolinfo name=\"person_add\" entity=\"ea4d\"/>\n    <symbolinfo name=\"person_add_alt\" entity=\"ea4d\"/>\n    <symbolinfo name=\"person_add_disabled\" entity=\"e9cb\"/>\n    <symbolinfo name=\"person_alert\" entity=\"f567\"/>\n    <symbolinfo name=\"person_apron\" entity=\"f5a3\"/>\n    <symbolinfo name=\"person_book\" entity=\"f5e8\"/>\n    <symbolinfo name=\"person_cancel\" entity=\"f566\"/>\n    <symbolinfo name=\"person_celebrate\" entity=\"f7fe\"/>\n    <symbolinfo name=\"person_check\" entity=\"f565\"/>\n    <symbolinfo name=\"person_filled\" entity=\"f0d3\"/>\n    <symbolinfo name=\"person_off\" entity=\"e510\"/>\n    <symbolinfo name=\"person_outline\" entity=\"f0d3\"/>\n    <symbolinfo name=\"person_pin\" entity=\"e55a\"/>\n    <symbolinfo name=\"person_pin_circle\" entity=\"e56a\"/>\n    <symbolinfo name=\"person_play\" entity=\"f7fd\"/>\n    <symbolinfo name=\"person_raised_hand\" entity=\"f59a\"/>\n    <symbolinfo name=\"person_remove\" entity=\"ef66\"/>\n    <symbolinfo name=\"person_search\" entity=\"f106\"/>\n    <symbolinfo name=\"personal_injury\" entity=\"e6da\"/>\n    <symbolinfo name=\"personal_video\" entity=\"e63b\"/>\n    <symbolinfo name=\"pest_control\" entity=\"f0fa\"/>\n    <symbolinfo name=\"pest_control_rodent\" entity=\"f0fd\"/>\n    <symbolinfo name=\"pet_supplies\" entity=\"efb1\"/>\n    <symbolinfo name=\"pets\" entity=\"e91d\"/>\n    <symbolinfo name=\"phishing\" entity=\"ead7\"/>\n    <symbolinfo name=\"phone\" entity=\"f0d4\"/>\n    <symbolinfo name=\"phone_alt\" entity=\"f0d4\"/>\n    <symbolinfo name=\"phone_android\" entity=\"e324\"/>\n    <symbolinfo name=\"phone_bluetooth_speaker\" entity=\"e61b\"/>\n    <symbolinfo name=\"phone_callback\" entity=\"e649\"/>\n    <symbolinfo name=\"phone_disabled\" entity=\"e9cc\"/>\n    <symbolinfo name=\"phone_enabled\" entity=\"e9cd\"/>\n    <symbolinfo name=\"phone_forwarded\" entity=\"e61c\"/>\n    <symbolinfo name=\"phone_in_talk\" entity=\"e61d\"/>\n    <symbolinfo name=\"phone_iphone\" entity=\"e325\"/>\n    <symbolinfo name=\"phone_locked\" entity=\"e61e\"/>\n    <symbolinfo name=\"phone_missed\" entity=\"e61f\"/>\n    <symbolinfo name=\"phone_paused\" entity=\"e620\"/>\n    <symbolinfo name=\"phonelink\" entity=\"e326\"/>\n    <symbolinfo name=\"phonelink_erase\" entity=\"e0db\"/>\n    <symbolinfo name=\"phonelink_lock\" entity=\"e0dc\"/>\n    <symbolinfo name=\"phonelink_off\" entity=\"e327\"/>\n    <symbolinfo name=\"phonelink_ring\" entity=\"e0dd\"/>\n    <symbolinfo name=\"phonelink_ring_off\" entity=\"f7aa\"/>\n    <symbolinfo name=\"phonelink_setup\" entity=\"ef41\"/>\n    <symbolinfo name=\"photo\" entity=\"e432\"/>\n    <symbolinfo name=\"photo_album\" entity=\"e411\"/>\n    <symbolinfo name=\"photo_camera\" entity=\"e412\"/>\n    <symbolinfo name=\"photo_camera_back\" entity=\"ef68\"/>\n    <symbolinfo name=\"photo_camera_front\" entity=\"ef69\"/>\n    <symbolinfo name=\"photo_filter\" entity=\"e43b\"/>\n    <symbolinfo name=\"photo_frame\" entity=\"f0d9\"/>\n    <symbolinfo name=\"photo_library\" entity=\"e413\"/>\n    <symbolinfo name=\"photo_prints\" entity=\"efb2\"/>\n    <symbolinfo name=\"photo_size_select_actual\" entity=\"e432\"/>\n    <symbolinfo name=\"photo_size_select_large\" entity=\"e433\"/>\n    <symbolinfo name=\"photo_size_select_small\" entity=\"e434\"/>\n    <symbolinfo name=\"php\" entity=\"eb8f\"/>\n    <symbolinfo name=\"physical_therapy\" entity=\"e11e\"/>\n    <symbolinfo name=\"piano\" entity=\"e521\"/>\n    <symbolinfo name=\"piano_off\" entity=\"e520\"/>\n    <symbolinfo name=\"picture_as_pdf\" entity=\"e415\"/>\n    <symbolinfo name=\"picture_in_picture\" entity=\"e8aa\"/>\n    <symbolinfo name=\"picture_in_picture_alt\" entity=\"e911\"/>\n    <symbolinfo name=\"picture_in_picture_center\" entity=\"f550\"/>\n    <symbolinfo name=\"picture_in_picture_large\" entity=\"f54f\"/>\n    <symbolinfo name=\"picture_in_picture_medium\" entity=\"f54e\"/>\n    <symbolinfo name=\"picture_in_picture_small\" entity=\"f54d\"/>\n    <symbolinfo name=\"pie_chart\" entity=\"f0da\"/>\n    <symbolinfo name=\"pie_chart_filled\" entity=\"f0da\"/>\n    <symbolinfo name=\"pie_chart_outline\" entity=\"f0da\"/>\n    <symbolinfo name=\"pie_chart_outlined\" entity=\"f0da\"/>\n    <symbolinfo name=\"pill\" entity=\"e11f\"/>\n    <symbolinfo name=\"pill_off\" entity=\"f809\"/>\n    <symbolinfo name=\"pin\" entity=\"f045\"/>\n    <symbolinfo name=\"pin_drop\" entity=\"e55e\"/>\n    <symbolinfo name=\"pin_end\" entity=\"e767\"/>\n    <symbolinfo name=\"pin_invoke\" entity=\"e763\"/>\n    <symbolinfo name=\"pinch\" entity=\"eb38\"/>\n    <symbolinfo name=\"pinch_zoom_in\" entity=\"f1fa\"/>\n    <symbolinfo name=\"pinch_zoom_out\" entity=\"f1fb\"/>\n    <symbolinfo name=\"pip\" entity=\"f64d\"/>\n    <symbolinfo name=\"pip_exit\" entity=\"f70d\"/>\n    <symbolinfo name=\"pivot_table_chart\" entity=\"e9ce\"/>\n    <symbolinfo name=\"place\" entity=\"f1db\"/>\n    <symbolinfo name=\"place_item\" entity=\"f1f0\"/>\n    <symbolinfo name=\"plagiarism\" entity=\"ea5a\"/>\n    <symbolinfo name=\"planner_banner_ad_pt\" entity=\"e692\"/>\n    <symbolinfo name=\"play_arrow\" entity=\"e037\"/>\n    <symbolinfo name=\"play_circle\" entity=\"e1c4\"/>\n    <symbolinfo name=\"play_disabled\" entity=\"ef6a\"/>\n    <symbolinfo name=\"play_for_work\" entity=\"e906\"/>\n    <symbolinfo name=\"play_lesson\" entity=\"f047\"/>\n    <symbolinfo name=\"play_music\" entity=\"e6ee\"/>\n    <symbolinfo name=\"play_pause\" entity=\"f137\"/>\n    <symbolinfo name=\"play_shapes\" entity=\"f7fc\"/>\n    <symbolinfo name=\"playing_cards\" entity=\"f5dc\"/>\n    <symbolinfo name=\"playlist_add\" entity=\"e03b\"/>\n    <symbolinfo name=\"playlist_add_check\" entity=\"e065\"/>\n    <symbolinfo name=\"playlist_add_check_circle\" entity=\"e7e6\"/>\n    <symbolinfo name=\"playlist_add_circle\" entity=\"e7e5\"/>\n    <symbolinfo name=\"playlist_play\" entity=\"e05f\"/>\n    <symbolinfo name=\"playlist_remove\" entity=\"eb80\"/>\n    <symbolinfo name=\"plumbing\" entity=\"f107\"/>\n    <symbolinfo name=\"plus_one\" entity=\"e800\"/>\n    <symbolinfo name=\"podcasts\" entity=\"f048\"/>\n    <symbolinfo name=\"podiatry\" entity=\"e120\"/>\n    <symbolinfo name=\"podium\" entity=\"f7fb\"/>\n    <symbolinfo name=\"point_of_sale\" entity=\"f17e\"/>\n    <symbolinfo name=\"point_scan\" entity=\"f70c\"/>\n    <symbolinfo name=\"policy\" entity=\"ea17\"/>\n    <symbolinfo name=\"poll\" entity=\"f0cc\"/>\n    <symbolinfo name=\"polyline\" entity=\"ebbb\"/>\n    <symbolinfo name=\"polymer\" entity=\"e8ab\"/>\n    <symbolinfo name=\"pool\" entity=\"eb48\"/>\n    <symbolinfo name=\"portable_wifi_off\" entity=\"f087\"/>\n    <symbolinfo name=\"portrait\" entity=\"e851\"/>\n    <symbolinfo name=\"position_bottom_left\" entity=\"f70b\"/>\n    <symbolinfo name=\"position_bottom_right\" entity=\"f70a\"/>\n    <symbolinfo name=\"position_top_right\" entity=\"f709\"/>\n    <symbolinfo name=\"post\" entity=\"e705\"/>\n    <symbolinfo name=\"post_add\" entity=\"ea20\"/>\n    <symbolinfo name=\"potted_plant\" entity=\"f8aa\"/>\n    <symbolinfo name=\"power\" entity=\"e63c\"/>\n    <symbolinfo name=\"power_input\" entity=\"e336\"/>\n    <symbolinfo name=\"power_off\" entity=\"e646\"/>\n    <symbolinfo name=\"power_rounded\" entity=\"f8c7\"/>\n    <symbolinfo name=\"power_settings_new\" entity=\"f8c7\"/>\n    <symbolinfo name=\"prayer_times\" entity=\"f838\"/>\n    <symbolinfo name=\"precision_manufacturing\" entity=\"f049\"/>\n    <symbolinfo name=\"pregnancy\" entity=\"f5f1\"/>\n    <symbolinfo name=\"pregnant_woman\" entity=\"f5f1\"/>\n    <symbolinfo name=\"preliminary\" entity=\"e7d8\"/>\n    <symbolinfo name=\"prescriptions\" entity=\"e121\"/>\n    <symbolinfo name=\"present_to_all\" entity=\"e0df\"/>\n    <symbolinfo name=\"preview\" entity=\"f1c5\"/>\n    <symbolinfo name=\"preview_off\" entity=\"f7af\"/>\n    <symbolinfo name=\"price_change\" entity=\"f04a\"/>\n    <symbolinfo name=\"price_check\" entity=\"f04b\"/>\n    <symbolinfo name=\"print\" entity=\"e8ad\"/>\n    <symbolinfo name=\"print_add\" entity=\"f7a2\"/>\n    <symbolinfo name=\"print_connect\" entity=\"f7a1\"/>\n    <symbolinfo name=\"print_disabled\" entity=\"e9cf\"/>\n    <symbolinfo name=\"print_error\" entity=\"f7a0\"/>\n    <symbolinfo name=\"print_lock\" entity=\"f651\"/>\n    <symbolinfo name=\"priority\" entity=\"e19f\"/>\n    <symbolinfo name=\"priority_high\" entity=\"e645\"/>\n    <symbolinfo name=\"privacy\" entity=\"f148\"/>\n    <symbolinfo name=\"privacy_tip\" entity=\"f0dc\"/>\n    <symbolinfo name=\"private_connectivity\" entity=\"e744\"/>\n    <symbolinfo name=\"problem\" entity=\"e122\"/>\n    <symbolinfo name=\"procedure\" entity=\"e651\"/>\n    <symbolinfo name=\"process_chart\" entity=\"f855\"/>\n    <symbolinfo name=\"production_quantity_limits\" entity=\"e1d1\"/>\n    <symbolinfo name=\"productivity\" entity=\"e296\"/>\n    <symbolinfo name=\"progress_activity\" entity=\"e9d0\"/>\n    <symbolinfo name=\"propane\" entity=\"ec14\"/>\n    <symbolinfo name=\"propane_tank\" entity=\"ec13\"/>\n    <symbolinfo name=\"psychiatry\" entity=\"e123\"/>\n    <symbolinfo name=\"psychology\" entity=\"ea4a\"/>\n    <symbolinfo name=\"psychology_alt\" entity=\"f8ea\"/>\n    <symbolinfo name=\"public\" entity=\"e80b\"/>\n    <symbolinfo name=\"public_off\" entity=\"f1ca\"/>\n    <symbolinfo name=\"publish\" entity=\"e255\"/>\n    <symbolinfo name=\"published_with_changes\" entity=\"f232\"/>\n    <symbolinfo name=\"pulmonology\" entity=\"e124\"/>\n    <symbolinfo name=\"punch_clock\" entity=\"eaa8\"/>\n    <symbolinfo name=\"push_pin\" entity=\"f10d\"/>\n    <symbolinfo name=\"qr_code\" entity=\"ef6b\"/>\n    <symbolinfo name=\"qr_code_2\" entity=\"e00a\"/>\n    <symbolinfo name=\"qr_code_2_add\" entity=\"f658\"/>\n    <symbolinfo name=\"qr_code_scanner\" entity=\"f206\"/>\n    <symbolinfo name=\"query_builder\" entity=\"efd6\"/>\n    <symbolinfo name=\"query_stats\" entity=\"e4fc\"/>\n    <symbolinfo name=\"question_answer\" entity=\"e8af\"/>\n    <symbolinfo name=\"question_exchange\" entity=\"f7f3\"/>\n    <symbolinfo name=\"question_mark\" entity=\"eb8b\"/>\n    <symbolinfo name=\"queue\" entity=\"e03c\"/>\n    <symbolinfo name=\"queue_music\" entity=\"e03d\"/>\n    <symbolinfo name=\"queue_play_next\" entity=\"e066\"/>\n    <symbolinfo name=\"quick_phrases\" entity=\"e7d1\"/>\n    <symbolinfo name=\"quick_reference\" entity=\"e46e\"/>\n    <symbolinfo name=\"quick_reference_all\" entity=\"f801\"/>\n    <symbolinfo name=\"quickreply\" entity=\"ef6c\"/>\n    <symbolinfo name=\"quiet_time\" entity=\"e1f9\"/>\n    <symbolinfo name=\"quiet_time_active\" entity=\"e291\"/>\n    <symbolinfo name=\"quiz\" entity=\"f04c\"/>\n    <symbolinfo name=\"r_mobiledata\" entity=\"f04d\"/>\n    <symbolinfo name=\"radar\" entity=\"f04e\"/>\n    <symbolinfo name=\"radio\" entity=\"e03e\"/>\n    <symbolinfo name=\"radio_button_checked\" entity=\"e837\"/>\n    <symbolinfo name=\"radio_button_partial\" entity=\"f560\"/>\n    <symbolinfo name=\"radio_button_unchecked\" entity=\"e836\"/>\n    <symbolinfo name=\"radiology\" entity=\"e125\"/>\n    <symbolinfo name=\"railway_alert\" entity=\"e9d1\"/>\n    <symbolinfo name=\"rainy\" entity=\"f176\"/>\n    <symbolinfo name=\"rainy_heavy\" entity=\"f61f\"/>\n    <symbolinfo name=\"rainy_light\" entity=\"f61e\"/>\n    <symbolinfo name=\"rainy_snow\" entity=\"f61d\"/>\n    <symbolinfo name=\"ramen_dining\" entity=\"ea64\"/>\n    <symbolinfo name=\"ramp_left\" entity=\"eb9c\"/>\n    <symbolinfo name=\"ramp_right\" entity=\"eb96\"/>\n    <symbolinfo name=\"range_hood\" entity=\"e1ea\"/>\n    <symbolinfo name=\"rate_review\" entity=\"e560\"/>\n    <symbolinfo name=\"raven\" entity=\"f555\"/>\n    <symbolinfo name=\"raw_off\" entity=\"f04f\"/>\n    <symbolinfo name=\"raw_on\" entity=\"f050\"/>\n    <symbolinfo name=\"read_more\" entity=\"ef6d\"/>\n    <symbolinfo name=\"readiness_score\" entity=\"f6dd\"/>\n    <symbolinfo name=\"real_estate_agent\" entity=\"e73a\"/>\n    <symbolinfo name=\"rear_camera\" entity=\"f6c2\"/>\n    <symbolinfo name=\"rebase\" entity=\"f845\"/>\n    <symbolinfo name=\"rebase_edit\" entity=\"f846\"/>\n    <symbolinfo name=\"receipt\" entity=\"e8b0\"/>\n    <symbolinfo name=\"receipt_long\" entity=\"ef6e\"/>\n    <symbolinfo name=\"recent_actors\" entity=\"e03f\"/>\n    <symbolinfo name=\"recent_patient\" entity=\"f808\"/>\n    <symbolinfo name=\"recommend\" entity=\"e9d2\"/>\n    <symbolinfo name=\"record_voice_over\" entity=\"e91f\"/>\n    <symbolinfo name=\"rectangle\" entity=\"eb54\"/>\n    <symbolinfo name=\"recycling\" entity=\"e760\"/>\n    <symbolinfo name=\"redeem\" entity=\"e8f6\"/>\n    <symbolinfo name=\"redo\" entity=\"e15a\"/>\n    <symbolinfo name=\"reduce_capacity\" entity=\"f21c\"/>\n    <symbolinfo name=\"refresh\" entity=\"e5d5\"/>\n    <symbolinfo name=\"regular_expression\" entity=\"f750\"/>\n    <symbolinfo name=\"relax\" entity=\"f6dc\"/>\n    <symbolinfo name=\"release_alert\" entity=\"f654\"/>\n    <symbolinfo name=\"remember_me\" entity=\"f051\"/>\n    <symbolinfo name=\"reminder\" entity=\"e6c6\"/>\n    <symbolinfo name=\"reminders_alt\" entity=\"e6c6\"/>\n    <symbolinfo name=\"remote_gen\" entity=\"e83e\"/>\n    <symbolinfo name=\"remove\" entity=\"e15b\"/>\n    <symbolinfo name=\"remove_circle\" entity=\"f08f\"/>\n    <symbolinfo name=\"remove_circle_outline\" entity=\"f08f\"/>\n    <symbolinfo name=\"remove_done\" entity=\"e9d3\"/>\n    <symbolinfo name=\"remove_from_queue\" entity=\"e067\"/>\n    <symbolinfo name=\"remove_moderator\" entity=\"e9d4\"/>\n    <symbolinfo name=\"remove_red_eye\" entity=\"e8f4\"/>\n    <symbolinfo name=\"remove_road\" entity=\"ebfc\"/>\n    <symbolinfo name=\"remove_selection\" entity=\"e9d5\"/>\n    <symbolinfo name=\"remove_shopping_cart\" entity=\"e928\"/>\n    <symbolinfo name=\"reopen_window\" entity=\"f708\"/>\n    <symbolinfo name=\"reorder\" entity=\"e8fe\"/>\n    <symbolinfo name=\"repartition\" entity=\"f8e8\"/>\n    <symbolinfo name=\"repeat\" entity=\"e040\"/>\n    <symbolinfo name=\"repeat_on\" entity=\"e9d6\"/>\n    <symbolinfo name=\"repeat_one\" entity=\"e041\"/>\n    <symbolinfo name=\"repeat_one_on\" entity=\"e9d7\"/>\n    <symbolinfo name=\"replay\" entity=\"e042\"/>\n    <symbolinfo name=\"replay_10\" entity=\"e059\"/>\n    <symbolinfo name=\"replay_30\" entity=\"e05a\"/>\n    <symbolinfo name=\"replay_5\" entity=\"e05b\"/>\n    <symbolinfo name=\"replay_circle_filled\" entity=\"e9d8\"/>\n    <symbolinfo name=\"reply\" entity=\"e15e\"/>\n    <symbolinfo name=\"reply_all\" entity=\"e15f\"/>\n    <symbolinfo name=\"report\" entity=\"f052\"/>\n    <symbolinfo name=\"report_gmailerrorred\" entity=\"f052\"/>\n    <symbolinfo name=\"report_off\" entity=\"e170\"/>\n    <symbolinfo name=\"report_problem\" entity=\"f083\"/>\n    <symbolinfo name=\"request_page\" entity=\"f22c\"/>\n    <symbolinfo name=\"request_quote\" entity=\"f1b6\"/>\n    <symbolinfo name=\"reset_image\" entity=\"f824\"/>\n    <symbolinfo name=\"reset_tv\" entity=\"e9d9\"/>\n    <symbolinfo name=\"reset_wrench\" entity=\"f56c\"/>\n    <symbolinfo name=\"resize\" entity=\"f707\"/>\n    <symbolinfo name=\"respiratory_rate\" entity=\"e127\"/>\n    <symbolinfo name=\"restart_alt\" entity=\"f053\"/>\n    <symbolinfo name=\"restaurant\" entity=\"e56c\"/>\n    <symbolinfo name=\"restaurant_menu\" entity=\"e561\"/>\n    <symbolinfo name=\"restore\" entity=\"e8b3\"/>\n    <symbolinfo name=\"restore_from_trash\" entity=\"e938\"/>\n    <symbolinfo name=\"restore_page\" entity=\"e929\"/>\n    <symbolinfo name=\"resume\" entity=\"f7d0\"/>\n    <symbolinfo name=\"reviews\" entity=\"f07c\"/>\n    <symbolinfo name=\"rewarded_ads\" entity=\"efb6\"/>\n    <symbolinfo name=\"rheumatology\" entity=\"e128\"/>\n    <symbolinfo name=\"rib_cage\" entity=\"f898\"/>\n    <symbolinfo name=\"rice_bowl\" entity=\"f1f5\"/>\n    <symbolinfo name=\"right_click\" entity=\"f706\"/>\n    <symbolinfo name=\"right_panel_close\" entity=\"f705\"/>\n    <symbolinfo name=\"right_panel_open\" entity=\"f704\"/>\n    <symbolinfo name=\"ring_volume\" entity=\"f0dd\"/>\n    <symbolinfo name=\"ring_volume_filled\" entity=\"f0dd\"/>\n    <symbolinfo name=\"ripples\" entity=\"e9db\"/>\n    <symbolinfo name=\"robot\" entity=\"f882\"/>\n    <symbolinfo name=\"robot_2\" entity=\"f5d0\"/>\n    <symbolinfo name=\"rocket\" entity=\"eba5\"/>\n    <symbolinfo name=\"rocket_launch\" entity=\"eb9b\"/>\n    <symbolinfo name=\"roller_shades\" entity=\"ec12\"/>\n    <symbolinfo name=\"roller_shades_closed\" entity=\"ec11\"/>\n    <symbolinfo name=\"roller_skating\" entity=\"ebcd\"/>\n    <symbolinfo name=\"roofing\" entity=\"f201\"/>\n    <symbolinfo name=\"room\" entity=\"f1db\"/>\n    <symbolinfo name=\"room_preferences\" entity=\"f1b8\"/>\n    <symbolinfo name=\"room_service\" entity=\"eb49\"/>\n    <symbolinfo name=\"rotate_90_degrees_ccw\" entity=\"e418\"/>\n    <symbolinfo name=\"rotate_90_degrees_cw\" entity=\"eaab\"/>\n    <symbolinfo name=\"rotate_left\" entity=\"e419\"/>\n    <symbolinfo name=\"rotate_right\" entity=\"e41a\"/>\n    <symbolinfo name=\"roundabout_left\" entity=\"eb99\"/>\n    <symbolinfo name=\"roundabout_right\" entity=\"eba3\"/>\n    <symbolinfo name=\"rounded_corner\" entity=\"e920\"/>\n    <symbolinfo name=\"route\" entity=\"eacd\"/>\n    <symbolinfo name=\"router\" entity=\"e328\"/>\n    <symbolinfo name=\"routine\" entity=\"e20c\"/>\n    <symbolinfo name=\"rowing\" entity=\"e921\"/>\n    <symbolinfo name=\"rss_feed\" entity=\"e0e5\"/>\n    <symbolinfo name=\"rsvp\" entity=\"f055\"/>\n    <symbolinfo name=\"rtt\" entity=\"e9ad\"/>\n    <symbolinfo name=\"rule\" entity=\"f1c2\"/>\n    <symbolinfo name=\"rule_folder\" entity=\"f1c9\"/>\n    <symbolinfo name=\"rule_settings\" entity=\"f64c\"/>\n    <symbolinfo name=\"run_circle\" entity=\"ef6f\"/>\n    <symbolinfo name=\"running_with_errors\" entity=\"e51d\"/>\n    <symbolinfo name=\"rv_hookup\" entity=\"e642\"/>\n    <symbolinfo name=\"safety_check\" entity=\"ebef\"/>\n    <symbolinfo name=\"safety_check_off\" entity=\"f59d\"/>\n    <symbolinfo name=\"safety_divider\" entity=\"e1cc\"/>\n    <symbolinfo name=\"sailing\" entity=\"e502\"/>\n    <symbolinfo name=\"salinity\" entity=\"f876\"/>\n    <symbolinfo name=\"sanitizer\" entity=\"f21d\"/>\n    <symbolinfo name=\"satellite\" entity=\"e562\"/>\n    <symbolinfo name=\"satellite_alt\" entity=\"eb3a\"/>\n    <symbolinfo name=\"sauna\" entity=\"f6f7\"/>\n    <symbolinfo name=\"save\" entity=\"e161\"/>\n    <symbolinfo name=\"save_alt\" entity=\"f090\"/>\n    <symbolinfo name=\"save_as\" entity=\"eb60\"/>\n    <symbolinfo name=\"saved_search\" entity=\"ea11\"/>\n    <symbolinfo name=\"savings\" entity=\"e2eb\"/>\n    <symbolinfo name=\"scale\" entity=\"eb5f\"/>\n    <symbolinfo name=\"scan\" entity=\"f74e\"/>\n    <symbolinfo name=\"scan_delete\" entity=\"f74f\"/>\n    <symbolinfo name=\"scanner\" entity=\"e329\"/>\n    <symbolinfo name=\"scatter_plot\" entity=\"e268\"/>\n    <symbolinfo name=\"scene\" entity=\"e2a7\"/>\n    <symbolinfo name=\"schedule\" entity=\"efd6\"/>\n    <symbolinfo name=\"schedule_send\" entity=\"ea0a\"/>\n    <symbolinfo name=\"schema\" entity=\"e4fd\"/>\n    <symbolinfo name=\"school\" entity=\"e80c\"/>\n    <symbolinfo name=\"science\" entity=\"ea4b\"/>\n    <symbolinfo name=\"score\" entity=\"e269\"/>\n    <symbolinfo name=\"scoreboard\" entity=\"ebd0\"/>\n    <symbolinfo name=\"screen_lock_landscape\" entity=\"e1be\"/>\n    <symbolinfo name=\"screen_lock_portrait\" entity=\"e1bf\"/>\n    <symbolinfo name=\"screen_lock_rotation\" entity=\"e1c0\"/>\n    <symbolinfo name=\"screen_record\" entity=\"f679\"/>\n    <symbolinfo name=\"screen_rotation\" entity=\"e1c1\"/>\n    <symbolinfo name=\"screen_rotation_alt\" entity=\"ebee\"/>\n    <symbolinfo name=\"screen_rotation_up\" entity=\"f678\"/>\n    <symbolinfo name=\"screen_search_desktop\" entity=\"ef70\"/>\n    <symbolinfo name=\"screen_share\" entity=\"e0e2\"/>\n    <symbolinfo name=\"screenshot\" entity=\"f056\"/>\n    <symbolinfo name=\"screenshot_frame\" entity=\"f677\"/>\n    <symbolinfo name=\"screenshot_keyboard\" entity=\"f7d3\"/>\n    <symbolinfo name=\"screenshot_monitor\" entity=\"ec08\"/>\n    <symbolinfo name=\"screenshot_region\" entity=\"f7d2\"/>\n    <symbolinfo name=\"screenshot_tablet\" entity=\"f697\"/>\n    <symbolinfo name=\"scrollable_header\" entity=\"e9dc\"/>\n    <symbolinfo name=\"scuba_diving\" entity=\"ebce\"/>\n    <symbolinfo name=\"sd\" entity=\"e9dd\"/>\n    <symbolinfo name=\"sd_card\" entity=\"e623\"/>\n    <symbolinfo name=\"sd_card_alert\" entity=\"f057\"/>\n    <symbolinfo name=\"sd_storage\" entity=\"e623\"/>\n    <symbolinfo name=\"search\" entity=\"e8b6\"/>\n    <symbolinfo name=\"search_check\" entity=\"f800\"/>\n    <symbolinfo name=\"search_off\" entity=\"ea76\"/>\n    <symbolinfo name=\"security\" entity=\"e32a\"/>\n    <symbolinfo name=\"security_update\" entity=\"f072\"/>\n    <symbolinfo name=\"security_update_good\" entity=\"f073\"/>\n    <symbolinfo name=\"security_update_warning\" entity=\"f074\"/>\n    <symbolinfo name=\"segment\" entity=\"e94b\"/>\n    <symbolinfo name=\"select\" entity=\"f74d\"/>\n    <symbolinfo name=\"select_all\" entity=\"e162\"/>\n    <symbolinfo name=\"select_check_box\" entity=\"f1fe\"/>\n    <symbolinfo name=\"select_to_speak\" entity=\"f7cf\"/>\n    <symbolinfo name=\"select_window\" entity=\"e6fa\"/>\n    <symbolinfo name=\"select_window_off\" entity=\"e506\"/>\n    <symbolinfo name=\"self_care\" entity=\"f86d\"/>\n    <symbolinfo name=\"self_improvement\" entity=\"ea78\"/>\n    <symbolinfo name=\"sell\" entity=\"f05b\"/>\n    <symbolinfo name=\"send\" entity=\"e163\"/>\n    <symbolinfo name=\"send_and_archive\" entity=\"ea0c\"/>\n    <symbolinfo name=\"send_money\" entity=\"e8b7\"/>\n    <symbolinfo name=\"send_time_extension\" entity=\"eadb\"/>\n    <symbolinfo name=\"send_to_mobile\" entity=\"f05c\"/>\n    <symbolinfo name=\"sensor_door\" entity=\"f1b5\"/>\n    <symbolinfo name=\"sensor_occupied\" entity=\"ec10\"/>\n    <symbolinfo name=\"sensor_window\" entity=\"f1b4\"/>\n    <symbolinfo name=\"sensors\" entity=\"e51e\"/>\n    <symbolinfo name=\"sensors_krx\" entity=\"f556\"/>\n    <symbolinfo name=\"sensors_off\" entity=\"e51f\"/>\n    <symbolinfo name=\"sentiment_calm\" entity=\"f6a7\"/>\n    <symbolinfo name=\"sentiment_content\" entity=\"f6a6\"/>\n    <symbolinfo name=\"sentiment_dissatisfied\" entity=\"e811\"/>\n    <symbolinfo name=\"sentiment_excited\" entity=\"f6a5\"/>\n    <symbolinfo name=\"sentiment_extremely_dissatisfied\" entity=\"f194\"/>\n    <symbolinfo name=\"sentiment_frustrated\" entity=\"f6a4\"/>\n    <symbolinfo name=\"sentiment_neutral\" entity=\"e812\"/>\n    <symbolinfo name=\"sentiment_sad\" entity=\"f6a3\"/>\n    <symbolinfo name=\"sentiment_satisfied\" entity=\"e813\"/>\n    <symbolinfo name=\"sentiment_satisfied_alt\" entity=\"e813\"/>\n    <symbolinfo name=\"sentiment_stressed\" entity=\"f6a2\"/>\n    <symbolinfo name=\"sentiment_very_dissatisfied\" entity=\"e814\"/>\n    <symbolinfo name=\"sentiment_very_satisfied\" entity=\"e815\"/>\n    <symbolinfo name=\"sentiment_worried\" entity=\"f6a1\"/>\n    <symbolinfo name=\"set_meal\" entity=\"f1ea\"/>\n    <symbolinfo name=\"settings\" entity=\"e8b8\"/>\n    <symbolinfo name=\"settings_accessibility\" entity=\"f05d\"/>\n    <symbolinfo name=\"settings_account_box\" entity=\"f835\"/>\n    <symbolinfo name=\"settings_alert\" entity=\"f143\"/>\n    <symbolinfo name=\"settings_applications\" entity=\"e8b9\"/>\n    <symbolinfo name=\"settings_b_roll\" entity=\"f625\"/>\n    <symbolinfo name=\"settings_backup_restore\" entity=\"e8ba\"/>\n    <symbolinfo name=\"settings_bluetooth\" entity=\"e8bb\"/>\n    <symbolinfo name=\"settings_brightness\" entity=\"e8bd\"/>\n    <symbolinfo name=\"settings_cell\" entity=\"e8bc\"/>\n    <symbolinfo name=\"settings_cinematic_blur\" entity=\"f624\"/>\n    <symbolinfo name=\"settings_ethernet\" entity=\"e8be\"/>\n    <symbolinfo name=\"settings_input_antenna\" entity=\"e8bf\"/>\n    <symbolinfo name=\"settings_input_component\" entity=\"e8c1\"/>\n    <symbolinfo name=\"settings_input_composite\" entity=\"e8c1\"/>\n    <symbolinfo name=\"settings_input_hdmi\" entity=\"e8c2\"/>\n    <symbolinfo name=\"settings_input_svideo\" entity=\"e8c3\"/>\n    <symbolinfo name=\"settings_motion_mode\" entity=\"f833\"/>\n    <symbolinfo name=\"settings_night_sight\" entity=\"f832\"/>\n    <symbolinfo name=\"settings_overscan\" entity=\"e8c4\"/>\n    <symbolinfo name=\"settings_panorama\" entity=\"f831\"/>\n    <symbolinfo name=\"settings_phone\" entity=\"e8c5\"/>\n    <symbolinfo name=\"settings_photo_camera\" entity=\"f834\"/>\n    <symbolinfo name=\"settings_power\" entity=\"e8c6\"/>\n    <symbolinfo name=\"settings_remote\" entity=\"e8c7\"/>\n    <symbolinfo name=\"settings_slow_motion\" entity=\"f623\"/>\n    <symbolinfo name=\"settings_suggest\" entity=\"f05e\"/>\n    <symbolinfo name=\"settings_system_daydream\" entity=\"e1c3\"/>\n    <symbolinfo name=\"settings_timelapse\" entity=\"f622\"/>\n    <symbolinfo name=\"settings_video_camera\" entity=\"f621\"/>\n    <symbolinfo name=\"settings_voice\" entity=\"e8c8\"/>\n    <symbolinfo name=\"settop_component\" entity=\"e2ac\"/>\n    <symbolinfo name=\"severe_cold\" entity=\"ebd3\"/>\n    <symbolinfo name=\"shadow\" entity=\"e9df\"/>\n    <symbolinfo name=\"shadow_add\" entity=\"f584\"/>\n    <symbolinfo name=\"shadow_minus\" entity=\"f583\"/>\n    <symbolinfo name=\"shape_line\" entity=\"f8d3\"/>\n    <symbolinfo name=\"shapes\" entity=\"e602\"/>\n    <symbolinfo name=\"share\" entity=\"e80d\"/>\n    <symbolinfo name=\"share_location\" entity=\"f05f\"/>\n    <symbolinfo name=\"share_off\" entity=\"f6cb\"/>\n    <symbolinfo name=\"share_reviews\" entity=\"f8a4\"/>\n    <symbolinfo name=\"share_windows\" entity=\"f613\"/>\n    <symbolinfo name=\"sheets_rtl\" entity=\"f823\"/>\n    <symbolinfo name=\"shelf_auto_hide\" entity=\"f703\"/>\n    <symbolinfo name=\"shelf_position\" entity=\"f702\"/>\n    <symbolinfo name=\"shelves\" entity=\"f86e\"/>\n    <symbolinfo name=\"shield\" entity=\"e9e0\"/>\n    <symbolinfo name=\"shield_lock\" entity=\"f686\"/>\n    <symbolinfo name=\"shield_locked\" entity=\"f592\"/>\n    <symbolinfo name=\"shield_moon\" entity=\"eaa9\"/>\n    <symbolinfo name=\"shield_person\" entity=\"f650\"/>\n    <symbolinfo name=\"shield_spark\" entity=\"f55d\"/>\n    <symbolinfo name=\"shield_with_heart\" entity=\"e78f\"/>\n    <symbolinfo name=\"shield_with_house\" entity=\"e78d\"/>\n    <symbolinfo name=\"shift\" entity=\"e5f2\"/>\n    <symbolinfo name=\"shift_lock\" entity=\"f7ae\"/>\n    <symbolinfo name=\"shop\" entity=\"e8c9\"/>\n    <symbolinfo name=\"shop_2\" entity=\"e8ca\"/>\n    <symbolinfo name=\"shop_two\" entity=\"e8ca\"/>\n    <symbolinfo name=\"shopping_bag\" entity=\"f1cc\"/>\n    <symbolinfo name=\"shopping_basket\" entity=\"e8cb\"/>\n    <symbolinfo name=\"shopping_cart\" entity=\"e8cc\"/>\n    <symbolinfo name=\"shopping_cart_checkout\" entity=\"eb88\"/>\n    <symbolinfo name=\"short_stay\" entity=\"e4d0\"/>\n    <symbolinfo name=\"short_text\" entity=\"e261\"/>\n    <symbolinfo name=\"shortcut\" entity=\"f57a\"/>\n    <symbolinfo name=\"show_chart\" entity=\"e6e1\"/>\n    <symbolinfo name=\"shower\" entity=\"f061\"/>\n    <symbolinfo name=\"shuffle\" entity=\"e043\"/>\n    <symbolinfo name=\"shuffle_on\" entity=\"e9e1\"/>\n    <symbolinfo name=\"shutter_speed\" entity=\"e43d\"/>\n    <symbolinfo name=\"shutter_speed_add\" entity=\"f57e\"/>\n    <symbolinfo name=\"shutter_speed_minus\" entity=\"f57d\"/>\n    <symbolinfo name=\"sick\" entity=\"f220\"/>\n    <symbolinfo name=\"side_navigation\" entity=\"e9e2\"/>\n    <symbolinfo name=\"sign_language\" entity=\"ebe5\"/>\n    <symbolinfo name=\"signal_cellular_0_bar\" entity=\"f0a8\"/>\n    <symbolinfo name=\"signal_cellular_1_bar\" entity=\"f0a9\"/>\n    <symbolinfo name=\"signal_cellular_2_bar\" entity=\"f0aa\"/>\n    <symbolinfo name=\"signal_cellular_3_bar\" entity=\"f0ab\"/>\n    <symbolinfo name=\"signal_cellular_4_bar\" entity=\"e1c8\"/>\n    <symbolinfo name=\"signal_cellular_add\" entity=\"f7a9\"/>\n    <symbolinfo name=\"signal_cellular_alt\" entity=\"e202\"/>\n    <symbolinfo name=\"signal_cellular_alt_1_bar\" entity=\"ebdf\"/>\n    <symbolinfo name=\"signal_cellular_alt_2_bar\" entity=\"ebe3\"/>\n    <symbolinfo name=\"signal_cellular_connected_no_internet_0_bar\" entity=\"f0ac\"/>\n    <symbolinfo name=\"signal_cellular_connected_no_internet_4_bar\" entity=\"e1cd\"/>\n    <symbolinfo name=\"signal_cellular_no_sim\" entity=\"e1ce\"/>\n    <symbolinfo name=\"signal_cellular_nodata\" entity=\"f062\"/>\n    <symbolinfo name=\"signal_cellular_null\" entity=\"e1cf\"/>\n    <symbolinfo name=\"signal_cellular_off\" entity=\"e1d0\"/>\n    <symbolinfo name=\"signal_cellular_pause\" entity=\"f5a7\"/>\n    <symbolinfo name=\"signal_disconnected\" entity=\"f239\"/>\n    <symbolinfo name=\"signal_wifi_0_bar\" entity=\"f0b0\"/>\n    <symbolinfo name=\"signal_wifi_4_bar\" entity=\"f065\"/>\n    <symbolinfo name=\"signal_wifi_4_bar_lock\" entity=\"e1e1\"/>\n    <symbolinfo name=\"signal_wifi_bad\" entity=\"f064\"/>\n    <symbolinfo name=\"signal_wifi_connected_no_internet_4\" entity=\"f064\"/>\n    <symbolinfo name=\"signal_wifi_off\" entity=\"e1da\"/>\n    <symbolinfo name=\"signal_wifi_statusbar_4_bar\" entity=\"f065\"/>\n    <symbolinfo name=\"signal_wifi_statusbar_not_connected\" entity=\"f0ef\"/>\n    <symbolinfo name=\"signal_wifi_statusbar_null\" entity=\"f067\"/>\n    <symbolinfo name=\"signature\" entity=\"f74c\"/>\n    <symbolinfo name=\"signpost\" entity=\"eb91\"/>\n    <symbolinfo name=\"sim_card\" entity=\"e32b\"/>\n    <symbolinfo name=\"sim_card_alert\" entity=\"f057\"/>\n    <symbolinfo name=\"sim_card_download\" entity=\"f068\"/>\n    <symbolinfo name=\"single_bed\" entity=\"ea48\"/>\n    <symbolinfo name=\"sip\" entity=\"f069\"/>\n    <symbolinfo name=\"skateboarding\" entity=\"e511\"/>\n    <symbolinfo name=\"skeleton\" entity=\"f899\"/>\n    <symbolinfo name=\"skip_next\" entity=\"e044\"/>\n    <symbolinfo name=\"skip_previous\" entity=\"e045\"/>\n    <symbolinfo name=\"skull\" entity=\"f89a\"/>\n    <symbolinfo name=\"sledding\" entity=\"e512\"/>\n    <symbolinfo name=\"sleep\" entity=\"e213\"/>\n    <symbolinfo name=\"sleep_score\" entity=\"f6b7\"/>\n    <symbolinfo name=\"slide_library\" entity=\"f822\"/>\n    <symbolinfo name=\"sliders\" entity=\"e9e3\"/>\n    <symbolinfo name=\"slideshow\" entity=\"e41b\"/>\n    <symbolinfo name=\"slow_motion_video\" entity=\"e068\"/>\n    <symbolinfo name=\"smart_button\" entity=\"f1c1\"/>\n    <symbolinfo name=\"smart_display\" entity=\"f06a\"/>\n    <symbolinfo name=\"smart_outlet\" entity=\"e844\"/>\n    <symbolinfo name=\"smart_screen\" entity=\"f06b\"/>\n    <symbolinfo name=\"smart_toy\" entity=\"f06c\"/>\n    <symbolinfo name=\"smart_ventilation\" entity=\"f55c\"/>\n    <symbolinfo name=\"smartphone\" entity=\"e32c\"/>\n    <symbolinfo name=\"smb_share\" entity=\"f74b\"/>\n    <symbolinfo name=\"smoke_free\" entity=\"eb4a\"/>\n    <symbolinfo name=\"smoking_rooms\" entity=\"eb4b\"/>\n    <symbolinfo name=\"sms\" entity=\"e625\"/>\n    <symbolinfo name=\"sms_failed\" entity=\"e87f\"/>\n    <symbolinfo name=\"snippet_folder\" entity=\"f1c7\"/>\n    <symbolinfo name=\"snooze\" entity=\"e046\"/>\n    <symbolinfo name=\"snowboarding\" entity=\"e513\"/>\n    <symbolinfo name=\"snowing\" entity=\"e80f\"/>\n    <symbolinfo name=\"snowing_heavy\" entity=\"f61c\"/>\n    <symbolinfo name=\"snowmobile\" entity=\"e503\"/>\n    <symbolinfo name=\"snowshoeing\" entity=\"e514\"/>\n    <symbolinfo name=\"soap\" entity=\"f1b2\"/>\n    <symbolinfo name=\"social_distance\" entity=\"e1cb\"/>\n    <symbolinfo name=\"social_leaderboard\" entity=\"f6a0\"/>\n    <symbolinfo name=\"solar_power\" entity=\"ec0f\"/>\n    <symbolinfo name=\"sort\" entity=\"e164\"/>\n    <symbolinfo name=\"sort_by_alpha\" entity=\"e053\"/>\n    <symbolinfo name=\"sos\" entity=\"ebf7\"/>\n    <symbolinfo name=\"sound_detection_dog_barking\" entity=\"f149\"/>\n    <symbolinfo name=\"sound_detection_glass_break\" entity=\"f14a\"/>\n    <symbolinfo name=\"sound_detection_loud_sound\" entity=\"f14b\"/>\n    <symbolinfo name=\"sound_sampler\" entity=\"f6b4\"/>\n    <symbolinfo name=\"soup_kitchen\" entity=\"e7d3\"/>\n    <symbolinfo name=\"source\" entity=\"f1c8\"/>\n    <symbolinfo name=\"source_notes\" entity=\"e12d\"/>\n    <symbolinfo name=\"south\" entity=\"f1e3\"/>\n    <symbolinfo name=\"south_america\" entity=\"e7e4\"/>\n    <symbolinfo name=\"south_east\" entity=\"f1e4\"/>\n    <symbolinfo name=\"south_west\" entity=\"f1e5\"/>\n    <symbolinfo name=\"spa\" entity=\"eb4c\"/>\n    <symbolinfo name=\"space_bar\" entity=\"e256\"/>\n    <symbolinfo name=\"space_dashboard\" entity=\"e66b\"/>\n    <symbolinfo name=\"spatial_audio\" entity=\"ebeb\"/>\n    <symbolinfo name=\"spatial_audio_off\" entity=\"ebe8\"/>\n    <symbolinfo name=\"spatial_tracking\" entity=\"ebea\"/>\n    <symbolinfo name=\"speaker\" entity=\"e32d\"/>\n    <symbolinfo name=\"speaker_group\" entity=\"e32e\"/>\n    <symbolinfo name=\"speaker_notes\" entity=\"e8cd\"/>\n    <symbolinfo name=\"speaker_notes_off\" entity=\"e92a\"/>\n    <symbolinfo name=\"speaker_phone\" entity=\"e0d2\"/>\n    <symbolinfo name=\"special_character\" entity=\"f74a\"/>\n    <symbolinfo name=\"specific_gravity\" entity=\"f872\"/>\n    <symbolinfo name=\"speech_to_text\" entity=\"f8a7\"/>\n    <symbolinfo name=\"speed\" entity=\"e9e4\"/>\n    <symbolinfo name=\"spellcheck\" entity=\"e8ce\"/>\n    <symbolinfo name=\"splitscreen\" entity=\"f06d\"/>\n    <symbolinfo name=\"splitscreen_bottom\" entity=\"f676\"/>\n    <symbolinfo name=\"splitscreen_left\" entity=\"f675\"/>\n    <symbolinfo name=\"splitscreen_right\" entity=\"f674\"/>\n    <symbolinfo name=\"splitscreen_top\" entity=\"f673\"/>\n    <symbolinfo name=\"spo2\" entity=\"f6db\"/>\n    <symbolinfo name=\"spoke\" entity=\"e9a7\"/>\n    <symbolinfo name=\"sports\" entity=\"ea30\"/>\n    <symbolinfo name=\"sports_bar\" entity=\"f1f3\"/>\n    <symbolinfo name=\"sports_baseball\" entity=\"ea51\"/>\n    <symbolinfo name=\"sports_basketball\" entity=\"ea26\"/>\n    <symbolinfo name=\"sports_cricket\" entity=\"ea27\"/>\n    <symbolinfo name=\"sports_esports\" entity=\"ea28\"/>\n    <symbolinfo name=\"sports_football\" entity=\"ea29\"/>\n    <symbolinfo name=\"sports_golf\" entity=\"ea2a\"/>\n    <symbolinfo name=\"sports_gymnastics\" entity=\"ebc4\"/>\n    <symbolinfo name=\"sports_handball\" entity=\"ea33\"/>\n    <symbolinfo name=\"sports_hockey\" entity=\"ea2b\"/>\n    <symbolinfo name=\"sports_kabaddi\" entity=\"ea34\"/>\n    <symbolinfo name=\"sports_martial_arts\" entity=\"eae9\"/>\n    <symbolinfo name=\"sports_mma\" entity=\"ea2c\"/>\n    <symbolinfo name=\"sports_motorsports\" entity=\"ea2d\"/>\n    <symbolinfo name=\"sports_rugby\" entity=\"ea2e\"/>\n    <symbolinfo name=\"sports_score\" entity=\"f06e\"/>\n    <symbolinfo name=\"sports_soccer\" entity=\"ea2f\"/>\n    <symbolinfo name=\"sports_tennis\" entity=\"ea32\"/>\n    <symbolinfo name=\"sports_volleyball\" entity=\"ea31\"/>\n    <symbolinfo name=\"sprinkler\" entity=\"e29a\"/>\n    <symbolinfo name=\"sprint\" entity=\"f81f\"/>\n    <symbolinfo name=\"square\" entity=\"eb36\"/>\n    <symbolinfo name=\"square_foot\" entity=\"ea49\"/>\n    <symbolinfo name=\"ssid_chart\" entity=\"eb66\"/>\n    <symbolinfo name=\"stack\" entity=\"f609\"/>\n    <symbolinfo name=\"stack_off\" entity=\"f608\"/>\n    <symbolinfo name=\"stack_star\" entity=\"f607\"/>\n    <symbolinfo name=\"stacked_bar_chart\" entity=\"e9e6\"/>\n    <symbolinfo name=\"stacked_email\" entity=\"e6c7\"/>\n    <symbolinfo name=\"stacked_inbox\" entity=\"e6c9\"/>\n    <symbolinfo name=\"stacked_line_chart\" entity=\"f22b\"/>\n    <symbolinfo name=\"stadia_controller\" entity=\"f135\"/>\n    <symbolinfo name=\"stadium\" entity=\"eb90\"/>\n    <symbolinfo name=\"stairs\" entity=\"f1a9\"/>\n    <symbolinfo name=\"star\" entity=\"f09a\"/>\n    <symbolinfo name=\"star_border\" entity=\"f09a\"/>\n    <symbolinfo name=\"star_border_purple500\" entity=\"f09a\"/>\n    <symbolinfo name=\"star_half\" entity=\"e839\"/>\n    <symbolinfo name=\"star_outline\" entity=\"f09a\"/>\n    <symbolinfo name=\"star_purple500\" entity=\"f09a\"/>\n    <symbolinfo name=\"star_rate\" entity=\"f0ec\"/>\n    <symbolinfo name=\"star_rate_half\" entity=\"ec45\"/>\n    <symbolinfo name=\"stars\" entity=\"e8d0\"/>\n    <symbolinfo name=\"start\" entity=\"e089\"/>\n    <symbolinfo name=\"stat_1\" entity=\"e698\"/>\n    <symbolinfo name=\"stat_2\" entity=\"e699\"/>\n    <symbolinfo name=\"stat_3\" entity=\"e69a\"/>\n    <symbolinfo name=\"stat_minus_1\" entity=\"e69b\"/>\n    <symbolinfo name=\"stat_minus_2\" entity=\"e69c\"/>\n    <symbolinfo name=\"stat_minus_3\" entity=\"e69d\"/>\n    <symbolinfo name=\"stay_current_landscape\" entity=\"e0d3\"/>\n    <symbolinfo name=\"stay_current_portrait\" entity=\"e0d4\"/>\n    <symbolinfo name=\"stay_primary_landscape\" entity=\"e0d5\"/>\n    <symbolinfo name=\"stay_primary_portrait\" entity=\"e0d6\"/>\n    <symbolinfo name=\"step\" entity=\"f6fe\"/>\n    <symbolinfo name=\"step_into\" entity=\"f701\"/>\n    <symbolinfo name=\"step_out\" entity=\"f700\"/>\n    <symbolinfo name=\"step_over\" entity=\"f6ff\"/>\n    <symbolinfo name=\"steppers\" entity=\"e9e7\"/>\n    <symbolinfo name=\"steps\" entity=\"f6da\"/>\n    <symbolinfo name=\"stethoscope\" entity=\"f805\"/>\n    <symbolinfo name=\"stethoscope_arrow\" entity=\"f807\"/>\n    <symbolinfo name=\"stethoscope_check\" entity=\"f806\"/>\n    <symbolinfo name=\"sticky_note\" entity=\"e9e8\"/>\n    <symbolinfo name=\"sticky_note_2\" entity=\"f1fc\"/>\n    <symbolinfo name=\"stock_media\" entity=\"f570\"/>\n    <symbolinfo name=\"stop\" entity=\"e047\"/>\n    <symbolinfo name=\"stop_circle\" entity=\"ef71\"/>\n    <symbolinfo name=\"stop_screen_share\" entity=\"e0e3\"/>\n    <symbolinfo name=\"storage\" entity=\"e1db\"/>\n    <symbolinfo name=\"store\" entity=\"e8d1\"/>\n    <symbolinfo name=\"store_mall_directory\" entity=\"e8d1\"/>\n    <symbolinfo name=\"storefront\" entity=\"ea12\"/>\n    <symbolinfo name=\"storm\" entity=\"f070\"/>\n    <symbolinfo name=\"straight\" entity=\"eb95\"/>\n    <symbolinfo name=\"straighten\" entity=\"e41c\"/>\n    <symbolinfo name=\"strategy\" entity=\"f5df\"/>\n    <symbolinfo name=\"stream\" entity=\"e9e9\"/>\n    <symbolinfo name=\"stream_apps\" entity=\"f79f\"/>\n    <symbolinfo name=\"streetview\" entity=\"e56e\"/>\n    <symbolinfo name=\"stress_management\" entity=\"f6d9\"/>\n    <symbolinfo name=\"strikethrough_s\" entity=\"e257\"/>\n    <symbolinfo name=\"stroke_full\" entity=\"f749\"/>\n    <symbolinfo name=\"stroke_partial\" entity=\"f748\"/>\n    <symbolinfo name=\"stroller\" entity=\"f1ae\"/>\n    <symbolinfo name=\"style\" entity=\"e41d\"/>\n    <symbolinfo name=\"styler\" entity=\"e273\"/>\n    <symbolinfo name=\"stylus\" entity=\"f604\"/>\n    <symbolinfo name=\"stylus_laser_pointer\" entity=\"f747\"/>\n    <symbolinfo name=\"stylus_note\" entity=\"f603\"/>\n    <symbolinfo name=\"subdirectory_arrow_left\" entity=\"e5d9\"/>\n    <symbolinfo name=\"subdirectory_arrow_right\" entity=\"e5da\"/>\n    <symbolinfo name=\"subheader\" entity=\"e9ea\"/>\n    <symbolinfo name=\"subject\" entity=\"e8d2\"/>\n    <symbolinfo name=\"subscript\" entity=\"f111\"/>\n    <symbolinfo name=\"subscriptions\" entity=\"e064\"/>\n    <symbolinfo name=\"subtitles\" entity=\"e048\"/>\n    <symbolinfo name=\"subtitles_off\" entity=\"ef72\"/>\n    <symbolinfo name=\"subway\" entity=\"e56f\"/>\n    <symbolinfo name=\"summarize\" entity=\"f071\"/>\n    <symbolinfo name=\"sunny\" entity=\"e81a\"/>\n    <symbolinfo name=\"sunny_snowing\" entity=\"e819\"/>\n    <symbolinfo name=\"superscript\" entity=\"f112\"/>\n    <symbolinfo name=\"supervised_user_circle\" entity=\"e939\"/>\n    <symbolinfo name=\"supervised_user_circle_off\" entity=\"f60e\"/>\n    <symbolinfo name=\"supervisor_account\" entity=\"e8d3\"/>\n    <symbolinfo name=\"support\" entity=\"ef73\"/>\n    <symbolinfo name=\"support_agent\" entity=\"f0e2\"/>\n    <symbolinfo name=\"surfing\" entity=\"e515\"/>\n    <symbolinfo name=\"surgical\" entity=\"e131\"/>\n    <symbolinfo name=\"surround_sound\" entity=\"e049\"/>\n    <symbolinfo name=\"swap_calls\" entity=\"e0d7\"/>\n    <symbolinfo name=\"swap_driving_apps_wheel\" entity=\"e69f\"/>\n    <symbolinfo name=\"swap_horiz\" entity=\"e8d4\"/>\n    <symbolinfo name=\"swap_horizontal_circle\" entity=\"e933\"/>\n    <symbolinfo name=\"swap_vert\" entity=\"e8d5\"/>\n    <symbolinfo name=\"swap_vertical_circle\" entity=\"e8d6\"/>\n    <symbolinfo name=\"sweep\" entity=\"e6ac\"/>\n    <symbolinfo name=\"swipe\" entity=\"e9ec\"/>\n    <symbolinfo name=\"swipe_down\" entity=\"eb53\"/>\n    <symbolinfo name=\"swipe_down_alt\" entity=\"eb30\"/>\n    <symbolinfo name=\"swipe_left\" entity=\"eb59\"/>\n    <symbolinfo name=\"swipe_left_alt\" entity=\"eb33\"/>\n    <symbolinfo name=\"swipe_right\" entity=\"eb52\"/>\n    <symbolinfo name=\"swipe_right_alt\" entity=\"eb56\"/>\n    <symbolinfo name=\"swipe_up\" entity=\"eb2e\"/>\n    <symbolinfo name=\"swipe_up_alt\" entity=\"eb35\"/>\n    <symbolinfo name=\"swipe_vertical\" entity=\"eb51\"/>\n    <symbolinfo name=\"switch\" entity=\"e1f4\"/>\n    <symbolinfo name=\"switch_access\" entity=\"f6fd\"/>\n    <symbolinfo name=\"switch_access_shortcut\" entity=\"e7e1\"/>\n    <symbolinfo name=\"switch_access_shortcut_add\" entity=\"e7e2\"/>\n    <symbolinfo name=\"switch_account\" entity=\"e9ed\"/>\n    <symbolinfo name=\"switch_camera\" entity=\"e41e\"/>\n    <symbolinfo name=\"switch_left\" entity=\"f1d1\"/>\n    <symbolinfo name=\"switch_right\" entity=\"f1d2\"/>\n    <symbolinfo name=\"switch_video\" entity=\"e41f\"/>\n    <symbolinfo name=\"switches\" entity=\"e733\"/>\n    <symbolinfo name=\"sword_rose\" entity=\"f5de\"/>\n    <symbolinfo name=\"swords\" entity=\"f889\"/>\n    <symbolinfo name=\"symptoms\" entity=\"e132\"/>\n    <symbolinfo name=\"synagogue\" entity=\"eab0\"/>\n    <symbolinfo name=\"sync\" entity=\"e627\"/>\n    <symbolinfo name=\"sync_alt\" entity=\"ea18\"/>\n    <symbolinfo name=\"sync_disabled\" entity=\"e628\"/>\n    <symbolinfo name=\"sync_lock\" entity=\"eaee\"/>\n    <symbolinfo name=\"sync_problem\" entity=\"e629\"/>\n    <symbolinfo name=\"sync_saved_locally\" entity=\"f820\"/>\n    <symbolinfo name=\"syringe\" entity=\"e133\"/>\n    <symbolinfo name=\"system_security_update\" entity=\"f072\"/>\n    <symbolinfo name=\"system_security_update_good\" entity=\"f073\"/>\n    <symbolinfo name=\"system_security_update_warning\" entity=\"f074\"/>\n    <symbolinfo name=\"system_update\" entity=\"f072\"/>\n    <symbolinfo name=\"system_update_alt\" entity=\"e8d7\"/>\n    <symbolinfo name=\"tab\" entity=\"e8d8\"/>\n    <symbolinfo name=\"tab_close\" entity=\"f745\"/>\n    <symbolinfo name=\"tab_close_right\" entity=\"f746\"/>\n    <symbolinfo name=\"tab_duplicate\" entity=\"f744\"/>\n    <symbolinfo name=\"tab_group\" entity=\"f743\"/>\n    <symbolinfo name=\"tab_move\" entity=\"f742\"/>\n    <symbolinfo name=\"tab_new_right\" entity=\"f741\"/>\n    <symbolinfo name=\"tab_recent\" entity=\"f740\"/>\n    <symbolinfo name=\"tab_unselected\" entity=\"e8d9\"/>\n    <symbolinfo name=\"table\" entity=\"f191\"/>\n    <symbolinfo name=\"table_bar\" entity=\"ead2\"/>\n    <symbolinfo name=\"table_chart\" entity=\"e265\"/>\n    <symbolinfo name=\"table_chart_view\" entity=\"f6ef\"/>\n    <symbolinfo name=\"table_lamp\" entity=\"e1f2\"/>\n    <symbolinfo name=\"table_restaurant\" entity=\"eac6\"/>\n    <symbolinfo name=\"table_rows\" entity=\"f101\"/>\n    <symbolinfo name=\"table_rows_narrow\" entity=\"f73f\"/>\n    <symbolinfo name=\"table_view\" entity=\"f1be\"/>\n    <symbolinfo name=\"tablet\" entity=\"e32f\"/>\n    <symbolinfo name=\"tablet_android\" entity=\"e330\"/>\n    <symbolinfo name=\"tablet_mac\" entity=\"e331\"/>\n    <symbolinfo name=\"tabs\" entity=\"e9ee\"/>\n    <symbolinfo name=\"tactic\" entity=\"f564\"/>\n    <symbolinfo name=\"tag\" entity=\"e9ef\"/>\n    <symbolinfo name=\"tag_faces\" entity=\"ea22\"/>\n    <symbolinfo name=\"takeout_dining\" entity=\"ea74\"/>\n    <symbolinfo name=\"tamper_detection_off\" entity=\"e82e\"/>\n    <symbolinfo name=\"tamper_detection_on\" entity=\"f8c8\"/>\n    <symbolinfo name=\"tap_and_play\" entity=\"e62b\"/>\n    <symbolinfo name=\"tapas\" entity=\"f1e9\"/>\n    <symbolinfo name=\"target\" entity=\"e719\"/>\n    <symbolinfo name=\"task\" entity=\"f075\"/>\n    <symbolinfo name=\"task_alt\" entity=\"e2e6\"/>\n    <symbolinfo name=\"taunt\" entity=\"f69f\"/>\n    <symbolinfo name=\"taxi_alert\" entity=\"ef74\"/>\n    <symbolinfo name=\"team_dashboard\" entity=\"e013\"/>\n    <symbolinfo name=\"temp_preferences_custom\" entity=\"f8c9\"/>\n    <symbolinfo name=\"temp_preferences_eco\" entity=\"f8ca\"/>\n    <symbolinfo name=\"temple_buddhist\" entity=\"eab3\"/>\n    <symbolinfo name=\"temple_hindu\" entity=\"eaaf\"/>\n    <symbolinfo name=\"tenancy\" entity=\"f0e3\"/>\n    <symbolinfo name=\"terminal\" entity=\"eb8e\"/>\n    <symbolinfo name=\"terrain\" entity=\"e564\"/>\n    <symbolinfo name=\"text_ad\" entity=\"e728\"/>\n    <symbolinfo name=\"text_decrease\" entity=\"eadd\"/>\n    <symbolinfo name=\"text_fields\" entity=\"e262\"/>\n    <symbolinfo name=\"text_format\" entity=\"e165\"/>\n    <symbolinfo name=\"text_increase\" entity=\"eae2\"/>\n    <symbolinfo name=\"text_rotate_up\" entity=\"e93a\"/>\n    <symbolinfo name=\"text_rotate_vertical\" entity=\"e93b\"/>\n    <symbolinfo name=\"text_rotation_angledown\" entity=\"e93c\"/>\n    <symbolinfo name=\"text_rotation_angleup\" entity=\"e93d\"/>\n    <symbolinfo name=\"text_rotation_down\" entity=\"e93e\"/>\n    <symbolinfo name=\"text_rotation_none\" entity=\"e93f\"/>\n    <symbolinfo name=\"text_select_end\" entity=\"f73e\"/>\n    <symbolinfo name=\"text_select_jump_to_beginning\" entity=\"f73d\"/>\n    <symbolinfo name=\"text_select_jump_to_end\" entity=\"f73c\"/>\n    <symbolinfo name=\"text_select_move_back_character\" entity=\"f73b\"/>\n    <symbolinfo name=\"text_select_move_back_word\" entity=\"f73a\"/>\n    <symbolinfo name=\"text_select_move_down\" entity=\"f739\"/>\n    <symbolinfo name=\"text_select_move_forward_character\" entity=\"f738\"/>\n    <symbolinfo name=\"text_select_move_forward_word\" entity=\"f737\"/>\n    <symbolinfo name=\"text_select_move_up\" entity=\"f736\"/>\n    <symbolinfo name=\"text_select_start\" entity=\"f735\"/>\n    <symbolinfo name=\"text_snippet\" entity=\"f1c6\"/>\n    <symbolinfo name=\"text_to_speech\" entity=\"f1bc\"/>\n    <symbolinfo name=\"textsms\" entity=\"e625\"/>\n    <symbolinfo name=\"texture\" entity=\"e421\"/>\n    <symbolinfo name=\"texture_add\" entity=\"f57c\"/>\n    <symbolinfo name=\"texture_minus\" entity=\"f57b\"/>\n    <symbolinfo name=\"theater_comedy\" entity=\"ea66\"/>\n    <symbolinfo name=\"theaters\" entity=\"e8da\"/>\n    <symbolinfo name=\"thermometer\" entity=\"e846\"/>\n    <symbolinfo name=\"thermometer_add\" entity=\"f582\"/>\n    <symbolinfo name=\"thermometer_gain\" entity=\"f6d8\"/>\n    <symbolinfo name=\"thermometer_loss\" entity=\"f6d7\"/>\n    <symbolinfo name=\"thermometer_minus\" entity=\"f581\"/>\n    <symbolinfo name=\"thermostat\" entity=\"f076\"/>\n    <symbolinfo name=\"thermostat_auto\" entity=\"f077\"/>\n    <symbolinfo name=\"thermostat_carbon\" entity=\"f178\"/>\n    <symbolinfo name=\"thumb_down\" entity=\"f578\"/>\n    <symbolinfo name=\"thumb_down_alt\" entity=\"f578\"/>\n    <symbolinfo name=\"thumb_down_filled\" entity=\"f578\"/>\n    <symbolinfo name=\"thumb_down_off\" entity=\"f578\"/>\n    <symbolinfo name=\"thumb_down_off_alt\" entity=\"f578\"/>\n    <symbolinfo name=\"thumb_up\" entity=\"f577\"/>\n    <symbolinfo name=\"thumb_up_alt\" entity=\"f577\"/>\n    <symbolinfo name=\"thumb_up_filled\" entity=\"f577\"/>\n    <symbolinfo name=\"thumb_up_off\" entity=\"f577\"/>\n    <symbolinfo name=\"thumb_up_off_alt\" entity=\"f577\"/>\n    <symbolinfo name=\"thumbnail_bar\" entity=\"f734\"/>\n    <symbolinfo name=\"thumbs_up_down\" entity=\"e8dd\"/>\n    <symbolinfo name=\"thunderstorm\" entity=\"ebdb\"/>\n    <symbolinfo name=\"tibia\" entity=\"f89b\"/>\n    <symbolinfo name=\"tibia_alt\" entity=\"f89c\"/>\n    <symbolinfo name=\"time_auto\" entity=\"f0e4\"/>\n    <symbolinfo name=\"time_to_leave\" entity=\"eff7\"/>\n    <symbolinfo name=\"timelapse\" entity=\"e422\"/>\n    <symbolinfo name=\"timeline\" entity=\"e922\"/>\n    <symbolinfo name=\"timer\" entity=\"e425\"/>\n    <symbolinfo name=\"timer_10\" entity=\"e423\"/>\n    <symbolinfo name=\"timer_10_alt_1\" entity=\"efbf\"/>\n    <symbolinfo name=\"timer_10_select\" entity=\"f07a\"/>\n    <symbolinfo name=\"timer_3\" entity=\"e424\"/>\n    <symbolinfo name=\"timer_3_alt_1\" entity=\"efc0\"/>\n    <symbolinfo name=\"timer_3_select\" entity=\"f07b\"/>\n    <symbolinfo name=\"timer_off\" entity=\"e426\"/>\n    <symbolinfo name=\"tips_and_updates\" entity=\"e79a\"/>\n    <symbolinfo name=\"tire_repair\" entity=\"ebc8\"/>\n    <symbolinfo name=\"title\" entity=\"e264\"/>\n    <symbolinfo name=\"toast\" entity=\"efc1\"/>\n    <symbolinfo name=\"toc\" entity=\"e8de\"/>\n    <symbolinfo name=\"today\" entity=\"e8df\"/>\n    <symbolinfo name=\"toggle_off\" entity=\"e9f5\"/>\n    <symbolinfo name=\"toggle_on\" entity=\"e9f6\"/>\n    <symbolinfo name=\"token\" entity=\"ea25\"/>\n    <symbolinfo name=\"toll\" entity=\"e8e0\"/>\n    <symbolinfo name=\"tonality\" entity=\"e427\"/>\n    <symbolinfo name=\"toolbar\" entity=\"e9f7\"/>\n    <symbolinfo name=\"tools_flat_head\" entity=\"f8cb\"/>\n    <symbolinfo name=\"tools_installation_kit\" entity=\"e2ab\"/>\n    <symbolinfo name=\"tools_ladder\" entity=\"e2cb\"/>\n    <symbolinfo name=\"tools_level\" entity=\"e77b\"/>\n    <symbolinfo name=\"tools_phillips\" entity=\"f8cc\"/>\n    <symbolinfo name=\"tools_pliers_wire_stripper\" entity=\"e2aa\"/>\n    <symbolinfo name=\"tools_power_drill\" entity=\"e1e9\"/>\n    <symbolinfo name=\"tools_wrench\" entity=\"f8cd\"/>\n    <symbolinfo name=\"tooltip\" entity=\"e9f8\"/>\n    <symbolinfo name=\"top_panel_close\" entity=\"f733\"/>\n    <symbolinfo name=\"top_panel_open\" entity=\"f732\"/>\n    <symbolinfo name=\"topic\" entity=\"f1c8\"/>\n    <symbolinfo name=\"tornado\" entity=\"e199\"/>\n    <symbolinfo name=\"total_dissolved_solids\" entity=\"f877\"/>\n    <symbolinfo name=\"touch_app\" entity=\"e913\"/>\n    <symbolinfo name=\"touchpad_mouse\" entity=\"f687\"/>\n    <symbolinfo name=\"tour\" entity=\"ef75\"/>\n    <symbolinfo name=\"toys\" entity=\"e332\"/>\n    <symbolinfo name=\"toys_fan\" entity=\"f887\"/>\n    <symbolinfo name=\"track_changes\" entity=\"e8e1\"/>\n    <symbolinfo name=\"traffic\" entity=\"e565\"/>\n    <symbolinfo name=\"trail_length\" entity=\"eb5e\"/>\n    <symbolinfo name=\"trail_length_medium\" entity=\"eb63\"/>\n    <symbolinfo name=\"trail_length_short\" entity=\"eb6d\"/>\n    <symbolinfo name=\"train\" entity=\"e570\"/>\n    <symbolinfo name=\"tram\" entity=\"e571\"/>\n    <symbolinfo name=\"transcribe\" entity=\"f8ec\"/>\n    <symbolinfo name=\"transfer_within_a_station\" entity=\"e572\"/>\n    <symbolinfo name=\"transform\" entity=\"e428\"/>\n    <symbolinfo name=\"transgender\" entity=\"e58d\"/>\n    <symbolinfo name=\"transit_enterexit\" entity=\"e579\"/>\n    <symbolinfo name=\"translate\" entity=\"e8e2\"/>\n    <symbolinfo name=\"transportation\" entity=\"e21d\"/>\n    <symbolinfo name=\"travel\" entity=\"ef93\"/>\n    <symbolinfo name=\"travel_explore\" entity=\"e2db\"/>\n    <symbolinfo name=\"trending_down\" entity=\"e8e3\"/>\n    <symbolinfo name=\"trending_flat\" entity=\"e8e4\"/>\n    <symbolinfo name=\"trending_up\" entity=\"e8e5\"/>\n    <symbolinfo name=\"trip_origin\" entity=\"e57b\"/>\n    <symbolinfo name=\"trolley\" entity=\"f86b\"/>\n    <symbolinfo name=\"trophy\" entity=\"ea23\"/>\n    <symbolinfo name=\"troubleshoot\" entity=\"e1d2\"/>\n    <symbolinfo name=\"try\" entity=\"f07c\"/>\n    <symbolinfo name=\"tsunami\" entity=\"ebd8\"/>\n    <symbolinfo name=\"tsv\" entity=\"e6d6\"/>\n    <symbolinfo name=\"tty\" entity=\"f1aa\"/>\n    <symbolinfo name=\"tune\" entity=\"e429\"/>\n    <symbolinfo name=\"tungsten\" entity=\"f07d\"/>\n    <symbolinfo name=\"turn_left\" entity=\"eba6\"/>\n    <symbolinfo name=\"turn_right\" entity=\"ebab\"/>\n    <symbolinfo name=\"turn_sharp_left\" entity=\"eba7\"/>\n    <symbolinfo name=\"turn_sharp_right\" entity=\"ebaa\"/>\n    <symbolinfo name=\"turn_slight_left\" entity=\"eba4\"/>\n    <symbolinfo name=\"turn_slight_right\" entity=\"eb9a\"/>\n    <symbolinfo name=\"turned_in\" entity=\"e8e7\"/>\n    <symbolinfo name=\"turned_in_not\" entity=\"e8e7\"/>\n    <symbolinfo name=\"tv\" entity=\"e63b\"/>\n    <symbolinfo name=\"tv_gen\" entity=\"e830\"/>\n    <symbolinfo name=\"tv_guide\" entity=\"e1dc\"/>\n    <symbolinfo name=\"tv_off\" entity=\"e647\"/>\n    <symbolinfo name=\"tv_options_edit_channels\" entity=\"e1dd\"/>\n    <symbolinfo name=\"tv_remote\" entity=\"f5d9\"/>\n    <symbolinfo name=\"tv_signin\" entity=\"e71b\"/>\n    <symbolinfo name=\"tv_with_assistant\" entity=\"e785\"/>\n    <symbolinfo name=\"two_wheeler\" entity=\"e9f9\"/>\n    <symbolinfo name=\"type_specimen\" entity=\"f8f0\"/>\n    <symbolinfo name=\"u_turn_left\" entity=\"eba1\"/>\n    <symbolinfo name=\"u_turn_right\" entity=\"eba2\"/>\n    <symbolinfo name=\"ulna_radius\" entity=\"f89d\"/>\n    <symbolinfo name=\"ulna_radius_alt\" entity=\"f89e\"/>\n    <symbolinfo name=\"umbrella\" entity=\"f1ad\"/>\n    <symbolinfo name=\"unarchive\" entity=\"e169\"/>\n    <symbolinfo name=\"undo\" entity=\"e166\"/>\n    <symbolinfo name=\"unfold_less\" entity=\"e5d6\"/>\n    <symbolinfo name=\"unfold_less_double\" entity=\"f8cf\"/>\n    <symbolinfo name=\"unfold_more\" entity=\"e5d7\"/>\n    <symbolinfo name=\"unfold_more_double\" entity=\"f8d0\"/>\n    <symbolinfo name=\"ungroup\" entity=\"f731\"/>\n    <symbolinfo name=\"universal_currency_alt\" entity=\"e734\"/>\n    <symbolinfo name=\"unknown_2\" entity=\"e6a2\"/>\n    <symbolinfo name=\"unknown_5\" entity=\"e6a5\"/>\n    <symbolinfo name=\"unknown_document\" entity=\"f804\"/>\n    <symbolinfo name=\"unknown_med\" entity=\"eabd\"/>\n    <symbolinfo name=\"unpublished\" entity=\"f236\"/>\n    <symbolinfo name=\"unsubscribe\" entity=\"e0eb\"/>\n    <symbolinfo name=\"upcoming\" entity=\"f07e\"/>\n    <symbolinfo name=\"update\" entity=\"e923\"/>\n    <symbolinfo name=\"update_disabled\" entity=\"e075\"/>\n    <symbolinfo name=\"upgrade\" entity=\"f0fb\"/>\n    <symbolinfo name=\"upload\" entity=\"f09b\"/>\n    <symbolinfo name=\"upload_file\" entity=\"e9fc\"/>\n    <symbolinfo name=\"urology\" entity=\"e137\"/>\n    <symbolinfo name=\"usb\" entity=\"e1e0\"/>\n    <symbolinfo name=\"usb_off\" entity=\"e4fa\"/>\n    <symbolinfo name=\"vaccines\" entity=\"e138\"/>\n    <symbolinfo name=\"valve\" entity=\"e224\"/>\n    <symbolinfo name=\"vape_free\" entity=\"ebc6\"/>\n    <symbolinfo name=\"vaping_rooms\" entity=\"ebcf\"/>\n    <symbolinfo name=\"variables\" entity=\"f851\"/>\n    <symbolinfo name=\"ventilator\" entity=\"e139\"/>\n    <symbolinfo name=\"verified\" entity=\"ef76\"/>\n    <symbolinfo name=\"verified_user\" entity=\"f013\"/>\n    <symbolinfo name=\"vertical_align_bottom\" entity=\"e258\"/>\n    <symbolinfo name=\"vertical_align_center\" entity=\"e259\"/>\n    <symbolinfo name=\"vertical_align_top\" entity=\"e25a\"/>\n    <symbolinfo name=\"vertical_distribute\" entity=\"e076\"/>\n    <symbolinfo name=\"vertical_shades\" entity=\"ec0e\"/>\n    <symbolinfo name=\"vertical_shades_closed\" entity=\"ec0d\"/>\n    <symbolinfo name=\"vertical_split\" entity=\"e949\"/>\n    <symbolinfo name=\"vibration\" entity=\"e62d\"/>\n    <symbolinfo name=\"video_call\" entity=\"e070\"/>\n    <symbolinfo name=\"video_camera_back\" entity=\"f07f\"/>\n    <symbolinfo name=\"video_camera_front\" entity=\"f080\"/>\n    <symbolinfo name=\"video_camera_front_off\" entity=\"f83b\"/>\n    <symbolinfo name=\"video_chat\" entity=\"f8a0\"/>\n    <symbolinfo name=\"video_file\" entity=\"eb87\"/>\n    <symbolinfo name=\"video_label\" entity=\"e071\"/>\n    <symbolinfo name=\"video_library\" entity=\"e04a\"/>\n    <symbolinfo name=\"video_search\" entity=\"efc6\"/>\n    <symbolinfo name=\"video_settings\" entity=\"ea75\"/>\n    <symbolinfo name=\"video_stable\" entity=\"f081\"/>\n    <symbolinfo name=\"videocam\" entity=\"e04b\"/>\n    <symbolinfo name=\"videocam_off\" entity=\"e04c\"/>\n    <symbolinfo name=\"videogame_asset\" entity=\"e338\"/>\n    <symbolinfo name=\"videogame_asset_off\" entity=\"e500\"/>\n    <symbolinfo name=\"view_agenda\" entity=\"e8e9\"/>\n    <symbolinfo name=\"view_array\" entity=\"e8ea\"/>\n    <symbolinfo name=\"view_carousel\" entity=\"e8eb\"/>\n    <symbolinfo name=\"view_column\" entity=\"e8ec\"/>\n    <symbolinfo name=\"view_column_2\" entity=\"f847\"/>\n    <symbolinfo name=\"view_comfy\" entity=\"e42a\"/>\n    <symbolinfo name=\"view_comfy_alt\" entity=\"eb73\"/>\n    <symbolinfo name=\"view_compact\" entity=\"e42b\"/>\n    <symbolinfo name=\"view_compact_alt\" entity=\"eb74\"/>\n    <symbolinfo name=\"view_cozy\" entity=\"eb75\"/>\n    <symbolinfo name=\"view_day\" entity=\"e8ed\"/>\n    <symbolinfo name=\"view_headline\" entity=\"e8ee\"/>\n    <symbolinfo name=\"view_in_ar\" entity=\"efc9\"/>\n    <symbolinfo name=\"view_in_ar_new\" entity=\"efc9\"/>\n    <symbolinfo name=\"view_in_ar_off\" entity=\"f61b\"/>\n    <symbolinfo name=\"view_kanban\" entity=\"eb7f\"/>\n    <symbolinfo name=\"view_list\" entity=\"e8ef\"/>\n    <symbolinfo name=\"view_module\" entity=\"e8f0\"/>\n    <symbolinfo name=\"view_quilt\" entity=\"e8f1\"/>\n    <symbolinfo name=\"view_sidebar\" entity=\"f114\"/>\n    <symbolinfo name=\"view_stream\" entity=\"e8f2\"/>\n    <symbolinfo name=\"view_timeline\" entity=\"eb85\"/>\n    <symbolinfo name=\"view_week\" entity=\"e8f3\"/>\n    <symbolinfo name=\"vignette\" entity=\"e435\"/>\n    <symbolinfo name=\"villa\" entity=\"e586\"/>\n    <symbolinfo name=\"visibility\" entity=\"e8f4\"/>\n    <symbolinfo name=\"visibility_lock\" entity=\"f653\"/>\n    <symbolinfo name=\"visibility_off\" entity=\"e8f5\"/>\n    <symbolinfo name=\"vital_signs\" entity=\"e650\"/>\n    <symbolinfo name=\"vitals\" entity=\"e13b\"/>\n    <symbolinfo name=\"voice_chat\" entity=\"e62e\"/>\n    <symbolinfo name=\"voice_over_off\" entity=\"e94a\"/>\n    <symbolinfo name=\"voice_selection\" entity=\"f58a\"/>\n    <symbolinfo name=\"voicemail\" entity=\"e0d9\"/>\n    <symbolinfo name=\"volcano\" entity=\"ebda\"/>\n    <symbolinfo name=\"volume_down\" entity=\"e04d\"/>\n    <symbolinfo name=\"volume_down_alt\" entity=\"e79c\"/>\n    <symbolinfo name=\"volume_mute\" entity=\"e04e\"/>\n    <symbolinfo name=\"volume_off\" entity=\"e04f\"/>\n    <symbolinfo name=\"volume_up\" entity=\"e050\"/>\n    <symbolinfo name=\"volunteer_activism\" entity=\"ea70\"/>\n    <symbolinfo name=\"voting_chip\" entity=\"f852\"/>\n    <symbolinfo name=\"vpn_key\" entity=\"e0da\"/>\n    <symbolinfo name=\"vpn_key_alert\" entity=\"f6cc\"/>\n    <symbolinfo name=\"vpn_key_off\" entity=\"eb7a\"/>\n    <symbolinfo name=\"vpn_lock\" entity=\"e62f\"/>\n    <symbolinfo name=\"vr180_create2d\" entity=\"efca\"/>\n    <symbolinfo name=\"vr180_create2d_off\" entity=\"f571\"/>\n    <symbolinfo name=\"vrpano\" entity=\"f082\"/>\n    <symbolinfo name=\"wall_art\" entity=\"efcb\"/>\n    <symbolinfo name=\"wall_lamp\" entity=\"e2b4\"/>\n    <symbolinfo name=\"wallet\" entity=\"f8ff\"/>\n    <symbolinfo name=\"wallpaper\" entity=\"e1bc\"/>\n    <symbolinfo name=\"wallpaper_slideshow\" entity=\"f672\"/>\n    <symbolinfo name=\"ward\" entity=\"e13c\"/>\n    <symbolinfo name=\"warehouse\" entity=\"ebb8\"/>\n    <symbolinfo name=\"warning\" entity=\"f083\"/>\n    <symbolinfo name=\"warning_amber\" entity=\"f083\"/>\n    <symbolinfo name=\"warning_off\" entity=\"f7ad\"/>\n    <symbolinfo name=\"wash\" entity=\"f1b1\"/>\n    <symbolinfo name=\"watch\" entity=\"e334\"/>\n    <symbolinfo name=\"watch_button_press\" entity=\"f6aa\"/>\n    <symbolinfo name=\"watch_later\" entity=\"efd6\"/>\n    <symbolinfo name=\"watch_off\" entity=\"eae3\"/>\n    <symbolinfo name=\"watch_screentime\" entity=\"f6ae\"/>\n    <symbolinfo name=\"watch_wake\" entity=\"f6a9\"/>\n    <symbolinfo name=\"water\" entity=\"f084\"/>\n    <symbolinfo name=\"water_bottle\" entity=\"f69d\"/>\n    <symbolinfo name=\"water_bottle_large\" entity=\"f69e\"/>\n    <symbolinfo name=\"water_damage\" entity=\"f203\"/>\n    <symbolinfo name=\"water_do\" entity=\"f870\"/>\n    <symbolinfo name=\"water_drop\" entity=\"e798\"/>\n    <symbolinfo name=\"water_ec\" entity=\"f875\"/>\n    <symbolinfo name=\"water_full\" entity=\"f6d6\"/>\n    <symbolinfo name=\"water_heater\" entity=\"e284\"/>\n    <symbolinfo name=\"water_lock\" entity=\"f6ad\"/>\n    <symbolinfo name=\"water_loss\" entity=\"f6d5\"/>\n    <symbolinfo name=\"water_lux\" entity=\"f874\"/>\n    <symbolinfo name=\"water_medium\" entity=\"f6d4\"/>\n    <symbolinfo name=\"water_orp\" entity=\"f878\"/>\n    <symbolinfo name=\"water_ph\" entity=\"f87a\"/>\n    <symbolinfo name=\"water_pump\" entity=\"f5d8\"/>\n    <symbolinfo name=\"water_voc\" entity=\"f87b\"/>\n    <symbolinfo name=\"waterfall_chart\" entity=\"ea00\"/>\n    <symbolinfo name=\"waves\" entity=\"e176\"/>\n    <symbolinfo name=\"waving_hand\" entity=\"e766\"/>\n    <symbolinfo name=\"wb_auto\" entity=\"e42c\"/>\n    <symbolinfo name=\"wb_cloudy\" entity=\"f15c\"/>\n    <symbolinfo name=\"wb_incandescent\" entity=\"e42e\"/>\n    <symbolinfo name=\"wb_iridescent\" entity=\"f07d\"/>\n    <symbolinfo name=\"wb_shade\" entity=\"ea01\"/>\n    <symbolinfo name=\"wb_sunny\" entity=\"e430\"/>\n    <symbolinfo name=\"wb_twilight\" entity=\"e1c6\"/>\n    <symbolinfo name=\"wc\" entity=\"e63d\"/>\n    <symbolinfo name=\"weather_hail\" entity=\"f67f\"/>\n    <symbolinfo name=\"weather_mix\" entity=\"f60b\"/>\n    <symbolinfo name=\"weather_snowy\" entity=\"e2cd\"/>\n    <symbolinfo name=\"web\" entity=\"e051\"/>\n    <symbolinfo name=\"web_asset\" entity=\"e069\"/>\n    <symbolinfo name=\"web_asset_off\" entity=\"ef47\"/>\n    <symbolinfo name=\"web_stories\" entity=\"e595\"/>\n    <symbolinfo name=\"webhook\" entity=\"eb92\"/>\n    <symbolinfo name=\"weekend\" entity=\"e16b\"/>\n    <symbolinfo name=\"weight\" entity=\"e13d\"/>\n    <symbolinfo name=\"west\" entity=\"f1e6\"/>\n    <symbolinfo name=\"whatshot\" entity=\"e80e\"/>\n    <symbolinfo name=\"wheelchair_pickup\" entity=\"f1ab\"/>\n    <symbolinfo name=\"where_to_vote\" entity=\"e177\"/>\n    <symbolinfo name=\"widgets\" entity=\"e1bd\"/>\n    <symbolinfo name=\"width\" entity=\"f730\"/>\n    <symbolinfo name=\"width_full\" entity=\"f8f5\"/>\n    <symbolinfo name=\"width_normal\" entity=\"f8f6\"/>\n    <symbolinfo name=\"width_wide\" entity=\"f8f7\"/>\n    <symbolinfo name=\"wifi\" entity=\"e63e\"/>\n    <symbolinfo name=\"wifi_1_bar\" entity=\"e4ca\"/>\n    <symbolinfo name=\"wifi_2_bar\" entity=\"e4d9\"/>\n    <symbolinfo name=\"wifi_add\" entity=\"f7a8\"/>\n    <symbolinfo name=\"wifi_calling\" entity=\"ef77\"/>\n    <symbolinfo name=\"wifi_calling_1\" entity=\"f0f6\"/>\n    <symbolinfo name=\"wifi_calling_2\" entity=\"f0f6\"/>\n    <symbolinfo name=\"wifi_calling_3\" entity=\"f0f6\"/>\n    <symbolinfo name=\"wifi_channel\" entity=\"eb6a\"/>\n    <symbolinfo name=\"wifi_find\" entity=\"eb31\"/>\n    <symbolinfo name=\"wifi_home\" entity=\"f671\"/>\n    <symbolinfo name=\"wifi_lock\" entity=\"e1e1\"/>\n    <symbolinfo name=\"wifi_notification\" entity=\"f670\"/>\n    <symbolinfo name=\"wifi_off\" entity=\"e648\"/>\n    <symbolinfo name=\"wifi_password\" entity=\"eb6b\"/>\n    <symbolinfo name=\"wifi_protected_setup\" entity=\"f0fc\"/>\n    <symbolinfo name=\"wifi_proxy\" entity=\"f7a7\"/>\n    <symbolinfo name=\"wifi_tethering\" entity=\"e1e2\"/>\n    <symbolinfo name=\"wifi_tethering_error\" entity=\"ead9\"/>\n    <symbolinfo name=\"wifi_tethering_off\" entity=\"f087\"/>\n    <symbolinfo name=\"wind_power\" entity=\"ec0c\"/>\n    <symbolinfo name=\"window\" entity=\"f088\"/>\n    <symbolinfo name=\"window_closed\" entity=\"e77e\"/>\n    <symbolinfo name=\"window_open\" entity=\"e78c\"/>\n    <symbolinfo name=\"window_sensor\" entity=\"e2bb\"/>\n    <symbolinfo name=\"wine_bar\" entity=\"f1e8\"/>\n    <symbolinfo name=\"woman\" entity=\"e13e\"/>\n    <symbolinfo name=\"woman_2\" entity=\"f8e7\"/>\n    <symbolinfo name=\"work\" entity=\"e943\"/>\n    <symbolinfo name=\"work_alert\" entity=\"f5f7\"/>\n    <symbolinfo name=\"work_history\" entity=\"ec09\"/>\n    <symbolinfo name=\"work_off\" entity=\"e942\"/>\n    <symbolinfo name=\"work_outline\" entity=\"e943\"/>\n    <symbolinfo name=\"work_update\" entity=\"f5f8\"/>\n    <symbolinfo name=\"workflow\" entity=\"ea04\"/>\n    <symbolinfo name=\"workspace_premium\" entity=\"e7af\"/>\n    <symbolinfo name=\"workspaces\" entity=\"ea0f\"/>\n    <symbolinfo name=\"workspaces_outline\" entity=\"ea0f\"/>\n    <symbolinfo name=\"wounds_injuries\" entity=\"e13f\"/>\n    <symbolinfo name=\"wrap_text\" entity=\"e25b\"/>\n    <symbolinfo name=\"wrist\" entity=\"f69c\"/>\n    <symbolinfo name=\"wrong_location\" entity=\"ef78\"/>\n    <symbolinfo name=\"wysiwyg\" entity=\"f1c3\"/>\n    <symbolinfo name=\"yard\" entity=\"f089\"/>\n    <symbolinfo name=\"your_trips\" entity=\"eb2b\"/>\n    <symbolinfo name=\"youtube_activity\" entity=\"f85a\"/>\n    <symbolinfo name=\"youtube_searched_for\" entity=\"e8fa\"/>\n    <symbolinfo name=\"zone_person_alert\" entity=\"e781\"/>\n    <symbolinfo name=\"zone_person_idle\" entity=\"e77a\"/>\n    <symbolinfo name=\"zone_person_urgent\" entity=\"e788\"/>\n    <symbolinfo name=\"zoom_in\" entity=\"e8ff\"/>\n    <symbolinfo name=\"zoom_in_map\" entity=\"eb2d\"/>\n    <symbolinfo name=\"zoom_out\" entity=\"e900\"/>\n    <symbolinfo name=\"zoom_out_map\" entity=\"e56b\"/>\n</xsl:variable>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/latex/pretext-latex-AIM.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- Override specific tenplates of the standard conversion -->\n<xsl:import href=\"../pretext-latex.xsl\" />\n\n<!-- Intend output for rendering by pdflatex -->\n<xsl:output method=\"text\" />\n\n<!-- \"assemblage\" -->\n<!-- Boxed title -->\n<xsl:template match=\"assemblage\" mode=\"tcb-style\">\n    <xsl:text>enhanced, arc=2ex, colback=blue!5, colframe=blue!75!black,&#xa;</xsl:text>\n    <xsl:text>colbacktitle=blue!20, coltitle=black, boxed title style={sharp corners, frame hidden},&#xa;</xsl:text>\n    <xsl:text>fonttitle=\\bfseries, attach boxed title to top left={xshift=4mm,yshift=-3mm}, top=3mm,&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ASIDE-LIKE: \"aside\", \"historical\", \"biographical\" -->\n<!-- Square, drop shadow                               -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>enhanced, sharp corners, colback=blue!3, colframe=blue!50!black,&#xa;</xsl:text>\n    <xsl:text>add to width=-1ex, shadow={1ex}{-1ex}{0ex}{black!50!white},&#xa;</xsl:text>\n    <xsl:text>coltitle=black, fonttitle=\\bfseries, attach title to upper, after title={\\space},</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n\n"
  },
  {
    "path": "xsl/latex/pretext-latex-CLP.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2018 Andrew Rechnitzer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- Override specific tenplates of the standard conversion -->\n<xsl:import href=\"../pretext-latex.xsl\" />\n\n<!-- Intend output for rendering by pdflatex -->\n<xsl:output method=\"text\" />\n\n<!-- \"objectives\", \"outcomes\",etc. -->\n<!-- Default tcb, identically      -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"tcb-style\">\n    <xsl:text/>\n</xsl:template>\n\n<!-- EXAMPLE-LIKE: \"example\", \"question\", \"problem\" -->\n<!-- Default tcolorbox, but with tricolor titles    -->\n<!-- Each just slightly different                   -->\n\n<!-- Example styling from CLP -->\n<xsl:template match=\"example\" mode=\"tcb-style\">\n    <xsl:text>colback=white, colframe=black, colbacktitle=white, coltitle=black,\n      enhanced,\n      breakable,\n      attach boxed title to top left={xshift=7mm, yshift*=-\\tcboxedtitleheight/2},\n      frame hidden,\n      overlay unbroken={\n      \\draw[thick, \\lt-, rounded corners] ([yshift=-3ex]interior.north west)--(interior.north west)--(title);\n      \\draw[thick, -\\gt, rounded corners] (title)--(interior.north east)--([yshift=-3ex]interior.north east);\n      \\draw[thick, \\lt-\\gt, rounded corners] ([yshift=3ex]interior.south west)--(interior.south west)--(interior.south east)--([yshift=3ex]interior.south east);\n      },\n      overlay first={\n        \\draw[thick, \\lt-, rounded corners] ([yshift=-3ex]interior.north west)--(interior.north west)--(title);\n        \\draw[thick, -\\gt, rounded corners] (title)--(interior.north east)--([yshift=-3ex]interior.north east);\n        },\n      overlay middle={},\n      overlay last={\n        \\node[draw, thick, rectangle, rounded corners] (repeatTitle) at ([xshift=-12ex]interior.south east) {\\textbf{Example~\\thetcbcounter}};\n        \\draw[thick, \\lt-, rounded corners] ([yshift=3ex]interior.south west)--(interior.south west)--(repeatTitle);\n        \\draw[thick,-\\gt,rounded corners] (repeatTitle)--(interior.south east)--([yshift=3ex]interior.south east);\n        },\n    </xsl:text>\n</xsl:template>\n\n<xsl:template match=\"question\" mode=\"tcb-style\">\n    <xsl:text>\n      colback=white, colframe=blue, colbacktitle=white, coltitle=blue,\n        enhanced,\n        breakable,\n        attach boxed title to top left={xshift=7mm, yshift*=-\\tcboxedtitleheight/2},\n        frame hidden,\n        overlay unbroken={\n        \\draw[blue, thick, square-, rounded corners] ([yshift=-3ex]interior.north west)--(interior.north west)--(title);\n        \\draw[blue,thick, -square, rounded corners] (title)--(interior.north east)--([yshift=-3ex]interior.north east);\n        \\draw[blue,thick, square-square, rounded corners] ([yshift=3ex]interior.south west)--(interior.south west)--(interior.south east)--([yshift=3ex]interior.south east);\n        },\n        overlay first={\n          \\draw[blue,thick, square-, rounded corners] ([yshift=-3ex]interior.north west)--(interior.north west)--(title);\n          \\draw[blue,thick, -square, rounded corners] (title)--(interior.north east)--([yshift=-3ex]interior.north east);\n          },\n        overlay middle={},\n        overlay last={\n          \\node[blue, draw, thick, rectangle, rounded corners] (repeatTitle) at ([xshift=-12ex]interior.south east) {\\textbf{Example~\\thetcbcounter}};\n          \\draw[blue, thick, square-, rounded corners] ([yshift=3ex]interior.south west)--(interior.south west)--(repeatTitle);\n          \\draw[blue, thick, -square,rounded corners] (repeatTitle)--(interior.south east)--([yshift=3ex]interior.south east);\n          },\n    </xsl:text>\n</xsl:template>\n\n<xsl:template match=\"problem\" mode=\"tcb-style\">\n    <xsl:text>\n      colback=white, colframe=red, colbacktitle=white, coltitle=red,\n        enhanced,\n        breakable,\n        attach boxed title to top left={xshift=7mm, yshift*=-\\tcboxedtitleheight/2},\n        frame hidden,\n        overlay unbroken={\n        \\draw[red, thick, |-, rounded corners] ([yshift=-3ex]interior.north west)--(interior.north west)--(title);\n        \\draw[red,thick, -|, rounded corners] (title)--(interior.north east)--([yshift=-3ex]interior.north east);\n        \\draw[red,thick, |-|, rounded corners] ([yshift=3ex]interior.south west)--(interior.south west)--(interior.south east)--([yshift=3ex]interior.south east);\n        },\n        overlay first={\n          \\draw[red,thick, |-, rounded corners] ([yshift=-3ex]interior.north west)--(interior.north west)--(title);\n          \\draw[red,thick, -|, rounded corners] (title)--(interior.north east)--([yshift=-3ex]interior.north east);\n          },\n        overlay middle={},\n        overlay last={\n          \\node[red, draw, thick, rectangle, rounded corners] (repeatTitle) at ([xshift=-12ex]interior.south east) {\\textbf{Example~\\thetcbcounter}};\n          \\draw[red, thick, |-, rounded corners] ([yshift=3ex]interior.south west)--(interior.south west)--(repeatTitle);\n          \\draw[red, thick, -|,rounded corners] (repeatTitle)--(interior.south east)--([yshift=3ex]interior.south east);\n          },\n    </xsl:text>\n</xsl:template>\n\n<!-- DEFINITION-LIKE: \"definition\"   -->\n<!-- Various extreme choices from the tcolorbox documentation -->\n<!-- Note: a trailing comma is OK, and maybe a good idea      -->\n<!-- Note: the style definition may split across several line -->\n<!-- of the LaTeX source using the hex A (dec 10) character   -->\n<!-- Note: \"enhanced\" is necessary for boxed titles           -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"tcb-style\">\n  breakable, colframe=MidnightBlue, colback=MidnightBlue!5, colbacktitle=MidnightBlue!70, coltitle=black, enhanced, attach boxed title to top left={xshift=7mm, yshift*=-2ex},sharp corners=northwest, arc=10pt,\n</xsl:template>\n\n<!-- REMARK-LIKE: \"remark\", \"convention\", \"note\",   -->\n<!--            \"observation\", \"warning\", \"insight\" -->\n<!-- COMPUTATION-LIKE: \"computation\", \"technology\"  -->\n <!--White title text, but title backgounds vary    -->\n <!--by category, and remarks have sharp corners    -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>colbacktitle=red, sharp corners</xsl:text>\n</xsl:template>\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>colbacktitle=blue</xsl:text>\n</xsl:template>\n\n\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/latex/pretext-latex-chaos.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- Override specific tenplates of the standard conversion -->\n<xsl:import href=\"../pretext-latex.xsl\" />\n\n<!-- Intend output for rendering by pdflatex -->\n<xsl:output method=\"text\" />\n\n<!-- ################### -->\n<!-- Titles of Divisions -->\n<!-- ################### -->\n\n<xsl:template name=\"titlesec-chapter-style\">\n    <!-- should be a global style definitions -->\n    <!-- MOVE ME!!!!!!!!!!!!!!!!!!!!!! -->\n    <xsl:text>\\usepackage[geometry]{ifsym} %to get nice triangles&#xa;</xsl:text>\n    <!-- MOVE ME!!!!!!!!!!!!!!!!!!!!!! -->\n    <xsl:text>\\tikzset{weird fill/.style={append after command={\n    \\pgfextra\n        \\draw[sharp corners, fill=#1]%\n    (\\tikzlastnode.west)%\n    [rounded corners=0pt] |- (\\tikzlastnode.north)%\n    [rounded corners=5pt] -| (\\tikzlastnode.east)%\n    [rounded corners=0pt] |- (\\tikzlastnode.south)%\n    [rounded corners=5pt] -| (\\tikzlastnode.west)%\n    ;\n    \\endpgfextra}}}&#xa;</xsl:text>\n    <!-- NB: #1 used in chapter/numberless because we     -->\n    <!-- can't control the Table of Contents anyway other -->\n    <!-- than redefining the actual name used elsewhere   -->\n    <xsl:text>\\titleformat{name=\\chapter}\n    {\\normalfont}\n    {}\n    {8pt}\n    {\n    \\begin{center}\\begin{tikzpicture}\n    \\draw node[\n    inner sep=10pt, inner ysep=20pt, very thick,\n    weird fill=Green, text=white, minimum width={0.9\\textwidth},\n    text width={0.9\\textwidth}, align=center\n    ](b) {\\scshape\\huge\\filcenter\\titleptx};\n    \\node[right=10pt, rounded corners=0pt, draw, fill=white] at (b.north west)\n    {\\divisionnameptx\\space\\thechapter};\n    \\end{tikzpicture}\\end{center}\n    }\n    [\\hfill{\\Large\\authorsptx}]\n    %%\n    \\titleformat{name=\\chapter,numberless}\n    {\\normalfont}\n    {}\n    {8pt}\n    {\n    \\begin{center}\\begin{tikzpicture}\n    \\draw node[\n    inner sep=10pt, inner ysep=20pt, very thick,\n    weird fill=Green, text=white, minimum width={0.9\\textwidth},\n    text width={0.9\\textwidth}, align=center\n    ](b) {\\scshape\\huge\\filcenter#1};\n    \\end{tikzpicture}\\end{center}\n    }&#xa;</xsl:text>\n    <!-- \\begin{flushright}\\epigraphptx\\end{flushright} -->\n</xsl:template>\n\n<xsl:template name=\"titlesec-section-style\">\n    <xsl:text>\\titleformat{\\section}\n    {\\titlerule\n    \\vspace{.8ex}%\n    \\Large\\bfseries}\n    {\\llap{\\thesection}}{0.0em}{{\\small\\FilledSmallTriangleUp}\\space\\titleptx}\n    [\\hfill{\\large\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titleformat{name=\\section,numberless}\n    {\\titlerule\n    \\vspace{.8ex}%\n    \\Large\\bfseries}\n    {}{0.0em}{{\\small\\FilledSmallTriangleUp}\\space#1}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"titlesec-subsection-style\">\n    <xsl:text>\\titleformat{\\subsection}{\\large\\bfseries}\n    {\\llap{\\thesubsection}}{0.0em}{ {\\small\\FilledSmallTriangleRight\\!\\!\\!\\FilledSmallTriangleRight}\\space\\titleptx}\n    [\\hfill{\\normalsize\\authorsptx}]&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"titlesec-subsubsection-style\">\n    <xsl:text>\\titleformat{\\subsubsection}{\\bfseries}{\\llap{\\thesubsubsection}}{0.0em}{{\\small\\FilledSmallTriangleRight\\!\\!\\!\\FilledSmallTriangleRight\\!\\!\\!\\FilledSmallTriangleRight}\\space\\titleptx}\n    [\\hfill{\\normalsize\\authorsptx}]&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"abbr\", \"acro\", \"init\" -->\n<!-- Simply wild colors, for effect -->\n<!-- Opposite of \"red\" (?) -->\n<xsl:template match=\"abbr\" mode=\"tex-macro-style\">\n    <xsl:text>\\textcolor{-red}{#1}</xsl:text>\n</xsl:template>\n<!-- A \"dvipsnames\" color -->\n<xsl:template match=\"acro\" mode=\"tex-macro-style\">\n    <xsl:text>\\textcolor{JungleGreen}{#1}</xsl:text>\n</xsl:template>\n<!-- A \"svgnames\" color -->\n<xsl:template match=\"init\" mode=\"tex-macro-style\">\n    <xsl:text>\\textcolor{LightCoral}{#1}</xsl:text>\n</xsl:template>\n\n<!-- \"proof\" -->\n<!-- Changes: Bold upright font, abnormally large spacing after title, no tombstone. -->\n<!-- bwminimalstyle is part of the mathbook-latex.xsl file, uncertain                -->\n<!-- if we are committed to making it universally available to be used               -->\n<!-- like this by style writers.                                                     -->\n<xsl:template match=\"proof\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, fonttitle=\\normalfont\\bfseries, attach title to upper, after title={\\qquad}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"objectives\", \"outcomes\", etc -->\n<!-- Green and ugly, plus identical, via the entity match -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>size=minimal, attach title to upper, after title={\\space}, fonttitle=\\bfseries, coltitle=black, colback=green</xsl:text>\n</xsl:template>\n\n<!-- THEOREM-LIKE: \"theorem\", \"corollary\", \"lemma\",    -->\n<!--               \"algorithm\", \"proposition\",         -->\n<!--               \"claim\", \"fact\", \"identity\"         -->\n<!-- AXIOM-LIKE: \"axiom\", \"conjecture\", \"principle\",   -->\n<!--             \"heuristic\", \"hypothesis\",            -->\n<!--             \"assumption                           -->\n<!-- A \"skin\" example from the tcolorbox documentation -->\n<!-- Documentation suggests \"title engine=path\"        -->\n<!-- is necessary, but it seems to not be              -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>enhanced, title engine=path, colback=red!5!white,&#xa;</xsl:text>\n    <xsl:text>colframe=red!75!black, coltitle=blue!50!black,fonttitle=\\bfseries,&#xa;</xsl:text>\n    <xsl:text>title style={left color=blue!15!yellow, right color=red!85!black}, </xsl:text>\n</xsl:template>\n\n<!-- DEFINITION-LIKE: \"definition\"   -->\n<!-- Various extreme choices from the tcolorbox documentation -->\n<!-- Note: a trailing comma is OK, and maybe a good idea      -->\n<!-- Note: the style definition may split across several line -->\n<!-- of the LaTeX source using the hex A (dec 10) character   -->\n<!-- Note: \"enhanced\" is necessary for boxed titles           -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>enhanced, arc=4mm,outer arc=1mm,colback=pink,&#xa;</xsl:text>\n    <xsl:text>attach boxed title to top center={yshift=-\\tcboxedtitleheight/2},&#xa;</xsl:text>\n    <xsl:text>boxed title style={size=small,colback=blue},&#xa;</xsl:text>\n</xsl:template>\n\n<!-- REMARK-LIKE: \"remark\", \"convention\", \"note\",   -->\n<!--            \"observation\", \"warning\", \"insight\" -->\n<!-- COMPUTATION-LIKE: \"computation\", \"technology\"  -->\n <!--White title text, but title backgounds vary    -->\n <!--by category, and remarks have sharp corners    -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>colbacktitle=red, sharp corners</xsl:text>\n</xsl:template>\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>colbacktitle=blue</xsl:text>\n</xsl:template>\n\n<!-- EXAMPLE-LIKE: \"example\", \"question\", \"problem\" -->\n<!-- Default tcolorbox, but with tricolor titles    -->\n<!-- Each just slightly different                   -->\n<xsl:template match=\"example\" mode=\"tcb-style\">\n    <xsl:text>coltitle=red</xsl:text>\n</xsl:template>\n<xsl:template match=\"question\" mode=\"tcb-style\">\n    <xsl:text>coltitle=blue</xsl:text>\n</xsl:template>\n<xsl:template match=\"problem\" mode=\"tcb-style\">\n    <xsl:text>coltitle=yellow</xsl:text>\n</xsl:template>\n\n<!-- PROJECT-LIKE: \"activity\", \"exploration\",      -->\n<!--               \"exploration\", \"investigation\"  -->\n<!-- This from the tcolorbox documentation of      -->\n<!-- the \"tcbinvclipframe\" documentation           -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>enhanced jigsaw,fonttitle=\\bfseries,opacityback=0.35,colback=blue!5!white,</xsl:text>\n    <xsl:text>frame style={left color=red!75!black,right color=red!10!yellow},</xsl:text>\n    <xsl:text>overlay={\\begin{tcbinvclipframe}</xsl:text>\n    <xsl:text>\\draw[red,line width=1cm] ([xshift=-2mm,yshift=2mm]frame.north west)</xsl:text>\n    <xsl:text>--([xshift=2mm,yshift=-2mm]frame.south east);</xsl:text>\n    <xsl:text>\\draw[red,line width=1cm] ([xshift=-2mm,yshift=-2mm]frame.south west)</xsl:text>\n    <xsl:text>--([xshift=2mm,yshift=2mm]frame.north east);</xsl:text>\n    <xsl:text>\\end{tcbinvclipframe}}</xsl:text>\n</xsl:template>\n\n<!-- \"assemblage\" -->\n<!-- Boxed title, borrowed from the AIM style -->\n<xsl:template match=\"assemblage\" mode=\"tcb-style\">\n    <xsl:text>enhanced, arc=2ex, colback=blue!5, colframe=blue!75!black,&#xa;</xsl:text>\n    <xsl:text>colbacktitle=blue!20, coltitle=black, boxed title style={sharp corners, frame hidden},&#xa;</xsl:text>\n    <xsl:text>fonttitle=\\bfseries, attach boxed title to top left={xshift=4mm,yshift=-3mm}, top=3mm,&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ASIDE-LIKE: \"aside\", \"historical\", \"biographical\" -->\n<!-- Square, drop shadow, borrowed from the AIM style  -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>enhanced, sharp corners, colback=blue!3, colframe=blue!50!black,&#xa;</xsl:text>\n    <xsl:text>add to width=-1ex, shadow={1ex}{-1ex}{0ex}{black!50!white},&#xa;</xsl:text>\n    <xsl:text>coltitle=black, fonttitle=\\bfseries, attach title to upper, after title={\\space},</xsl:text>\n</xsl:template>\n\n<!-- LaTeX uses four page styles, and we use the \"titleps\" package  -->\n<!-- to redefine the \"empty\", \"plain\", and \"headings\" styles.  The  -->\n<!-- actual management of which style is used, and when, is         -->\n<!-- controlled by LaTeX with help from PreTeXt.  You can use the   -->\n<!-- \"titleps-global-style\" template to change which style is the   -->\n<!-- global default, optionally in concert with redefinitions of    -->\n<!-- the style.                                                     -->\n<!--                                                                -->\n<!-- We do limited demonstration with the head, and use the         -->\n<!-- left-side of the foot to display information on which          -->\n<!-- pagestyle is in effect, so you could experiment here before    -->\n<!-- making your own style.                                         -->\n<!--                                                                -->\n<!-- Note: the templates will be placed after a \"\\renewpagestyle{}\" -->\n<!-- command, so should be an optional argument, followed by a      -->\n<!-- mandatory argument with commands like \\setfoot, \\sethead,      -->\n<!-- \\headrule, and \\footrule.                                      -->\n<!-- See titleps.pdf in the \"titlesec\" package for more             -->\n<xsl:template match=\"book|article|letter|memo\" mode=\"titleps-empty\">\n    <xsl:text>{\n    \\setfoot[foot/even/empty][][]\n    {foot/odd or one-sided/empty}{}{}\n    }</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"book|article|letter|memo\" mode=\"titleps-plain\">\n    <xsl:text>{\n    \\setfoot[foot/even/plain][\\thepage][]\n    {foot/odd or one-sided/plain}{\\thepage}{}\n    }</xsl:text>\n</xsl:template>\n\n<!-- This is based from Section 8 of \"titleps.pdf\" (2016-03-15) -->\n<!-- Modified to include \\ifthechapter and \\ifthesection -->\n<xsl:template match=\"book\" mode=\"titleps-headings\">\n    <xsl:text>[\\small\\sffamily]{\n    \\sethead[\\textbf{\\thepage}]\n    [\\ifthechapter{\\textsl{Chapter \\thechapter: \\chaptertitle}}{\\textsl{\\chaptertitle}}]\n    [\\ifthesection{\\toptitlemarks\\thesection--\\bottitlemarks\\thesection}{}]\n    {\\ifthesection{\\toptitlemarks\\thesection--\\bottitlemarks\\thesection}{}}\n    {\\ifthesection{\\textsl{\\sectiontitle}}{\\chaptertitle}}\n    {\\textbf{\\thepage}}\n    \\setfoot[foot/even/headings/book][][]\n    {foot/odd or one-sided/headings/book}{}{}\n    }</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"article|letter|memo\" mode=\"titleps-headings\">\n    <xsl:text>[\\small\\sffamily]{\n    \\headrule\n    \\sethead[\\thepage][\\sectiontitle][]\n    {}{\\sectiontitle}{\\thepage}\n    \\setfoot[foot/even/headings/article][][]\n    {foot/odd or one-sided/headings/article}{}{}\n    }</xsl:text>\n</xsl:template>\n\n<!-- Experiment with \"empty\", \"plain\", and \"headings\" to      -->\n<!-- see the effect of the above definitions (for \"article\")  -->\n<!-- employed in the sample article                           -->\n<!-- DO NOT set this to return empty text, errors will result -->\n<!-- You can comment it out, and let base definition execute  -->\n<xsl:template match=\"article\" mode=\"titleps-global-style\">\n    <xsl:text>plain</xsl:text>\n</xsl:template>\n\n<!-- The Iwona font is just chosen from the LaTeX Font      -->\n<!-- Catalogue as a font with math support.  It is an       -->\n<!-- alternative to the Kurier fonts and part of the        -->\n<!-- GUST font project.                                     -->\n<!-- http://www.gust.org.pl/projects/e-foundry/kurier-iwona -->\n<!--                                                        -->\n<!-- Seems to be missing U+0060, \"accent grave\"             -->\n<!-- Seems to be missing U+00B4, \"accent acute\"             -->\n<!-- Seems to be missing superior numbers (1, 2, 3)         -->\n<xsl:template name=\"font-pdflatex-main\">\n    <xsl:text>\\usepackage[math]{iwona}&#xa;</xsl:text>\n    <xsl:text>\\usepackage[T1]{fontenc}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Iwona does not seem to have a monospace/typewriter face.        -->\n<!-- Just as an illustration, we override the use of the Inconsolata -->\n<!-- font, so we probably get the default Computer Modern version.   -->\n<xsl:template name=\"font-pdflatex-mono\"/>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/latex/pretext-latex-dyslexic-font.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This file isolates customizations for the PreText documentation,  -->\n<!-- The PreTeXt Guide, when produced as a PDF via LaTeX.  It is meant -->\n<!-- to be used only with the PreTeXt \"book\" element.  At inception,   -->\n<!-- 2019-11-07, it is not meant to yet be a general-purpose style.    -->\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- We override specific templates of the standard conversion -->\n<!-- There is a relative path here, which bounces up a level   -->\n<!-- from the file you are reading to be in the directory of   -->\n<!-- principal stylesheets.  (Also for entities.ent above)     -->\n<xsl:import href=\"../pretext-latex.xsl\" />\n\n<!-- Intend output for rendering by xelatex -->\n<xsl:output method=\"text\" />\n\n<!-- ##### -->\n<!-- Fonts -->\n<!-- ##### -->\n\n<!-- Following assumes the OTF fonts have been installed    -->\n<!-- in the system so they are known by their font names.   -->\n<!-- This will only be effective if processed with xelatex. -->\n\n<!-- Tested with Ubuntu \"fonts-opendyslexic\" package (18.04 LTS, 20160623-1) -->\n<!-- See also: https://opendyslexic.org/                                     -->\n\n<xsl:template name=\"font-xelatex-main\">\n    <xsl:text>%% XeLaTeX font configuration from PreTeXt Dyslexic Font style&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:call-template name=\"xelatex-font-check\">\n        <xsl:with-param name=\"font-name\" select=\"'OpenDyslexic'\"/>\n    </xsl:call-template>\n    <xsl:text>\\setmainfont{OpenDyslexic}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"font-xelatex-mono\">\n    <xsl:text>%% XeLaTeX font configuration from PreTeXt Dyslexic Font style&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:call-template name=\"xelatex-font-check\">\n        <xsl:with-param name=\"font-name\" select=\"'OpenDyslexicMono'\"/>\n    </xsl:call-template>\n    <xsl:text>\\setmonofont{OpenDyslexicMono}&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/latex/pretext-latex-guide.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This file isolates customizations for the PreText documentation,  -->\n<!-- The PreTeXt Guide, when produced as a PDF via LaTeX.  It is meant -->\n<!-- to be used only with the PreTeXt \"book\" element.  At inception,   -->\n<!-- 2019-11-07, it is not meant to yet be a general-purpose style.    -->\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- We override specific templates of the standard conversion -->\n<!-- There is a relative path here, which bounces up a level   -->\n<!-- from the file you are reading to be in the directory of   -->\n<!-- principal stylesheets.  (Also for entities.ent above)     -->\n<xsl:import href=\"../pretext-latex.xsl\" />\n\n<!-- Intend output for rendering by xelatex -->\n<xsl:output method=\"text\" />\n\n<!-- ##### -->\n<!-- Fonts -->\n<!-- ##### -->\n\n<!-- Old Style figures for the body, but reversed to Lining many  -->\n<!-- other places. \"Old Style\" is a lowercase style, \"Lining\" is  -->\n<!-- a (now traditional) uppercase style.  Ornamentation for page -->\n<!-- header happens to be specific Unicode characters of the same -->\n<!-- font used for the text.  Relevant font table here:           -->\n<!-- http://mirrors.ctan.org/fonts/libertinus-fonts/documentation/LibertinusSerif-Regular-Table.pdf -->\n<xsl:template name=\"font-xelatex-main\">\n    <xsl:text>%% XeLaTeX font configuration from PreTeXt Guide style&#xa;</xsl:text>\n    <xsl:text>%% We rely on a font installed at the system level,&#xa;</xsl:text>\n    <xsl:text>%% so that we can exercise specific font features&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:call-template name=\"xelatex-font-check\">\n        <xsl:with-param name=\"font-name\" select=\"'Libertinus Serif'\"/>\n    </xsl:call-template>\n    <xsl:text>\\setmainfont{Libertinus Serif}[Numbers=OldStyle]&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Libertinus Mono is serifed (and ugly?) so by doing nothing the   -->\n<!-- default Inconsolata font will be employed, which is much more    -->\n<!-- typewriter-like.  Using an empty template would kill Inconsolata -->\n<!-- and yield whatever default Latin Modern provides.  Both these    -->\n<!-- options have trouble with \\textpilcrow and \\textrbrackdbl        -->\n\n<xsl:template name=\"font-xelatex-style\">\n    <xsl:call-template name=\"xelatex-font-check\">\n        <xsl:with-param name=\"font-name\" select=\"'Libertinus Sans'\"/>\n    </xsl:call-template>\n    <xsl:text>\\renewfontfamily{\\divisionfont}{Libertinus Sans}[Numbers=Lining]&#xa;</xsl:text>\n    <xsl:text>\\renewfontfamily{\\contentsfont}{Libertinus Sans}[Numbers=Lining]&#xa;</xsl:text>\n    <xsl:text>\\renewfontfamily{\\pagefont}{Libertinus Sans}[Numbers=Lining]&#xa;</xsl:text>\n    <xsl:text>\\renewfontfamily{\\blocktitlefont}{Libertinus Serif}[Numbers=Lining]&#xa;</xsl:text>\n    <xsl:text>\\renewfontfamily{\\tabularfont}{Libertinus Serif}[Numbers={Monospaced,Lining}]&#xa;</xsl:text>\n    <xsl:text>\\renewfontfamily{\\xreffont}{Libertinus Serif}[Numbers=Lining]&#xa;</xsl:text>\n    <xsl:text>\\renewfontfamily{\\titlepagefont}{Libertinus Serif}[Numbers=Lining]&#xa;</xsl:text>\n    <xsl:text>\\newfontfamily{\\ornamental}{Libertinus Serif}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"book\" mode=\"titleps-style\">\n    <xsl:text>%% Page style configuration from PreTeXt Guide style&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% Plain pages should have the same font for page numbers&#xa;</xsl:text>\n    <xsl:text>\\renewpagestyle{plain}{%&#xa;</xsl:text>\n    <xsl:text>\\setfoot{}{\\pagefont\\thepage}{}%&#xa;</xsl:text>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:text>\\renewpagestyle{headings}{%&#xa;</xsl:text>\n    <xsl:text>\\pagefont\\headrule%&#xa;</xsl:text>\n    <xsl:text>\\sethead%&#xa;</xsl:text>\n    <xsl:text>{\\ifthesection{\\pagefont\\thesection}{\\ifthechapter{\\pagefont\\thechapter}{}}}%&#xa;</xsl:text>\n    <xsl:text>{{\\ornamental &#x2619;}{\\pagefont\\space\\ifthesection{\\sectiontitle}{\\chaptertitle}\\space}{\\ornamental &#x2767;}}\n    {\\pagefont\\thepage}}%&#xa;</xsl:text>\n    <xsl:text>\\pagestyle{headings}&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/latex/pretext-latex-texstyle.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2025 Oscar Levin\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:pf=\"https://prefigure.org\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- Build off of latex-classic, overriding as needed. -->\n<xsl:import href=\"../pretext-latex-classic.xsl\" />\n\n\n\n<!--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-->\n<!-- Import of correct texstyle files -->\n<!--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-->\n\n\n<!-- stringparam that pretext.py will override with the texstyle file name -->\n<!-- (including \"dependents/\" if appropriate and \".xml\")                   -->\n<xsl:param name=\"journal.texstyle.file\" select=\"''\"/>\n\n<!-- Base texstyle folder -->\n<xsl:variable name=\"texstyle-file-path\" select=\"'../../journals/texstyles/'\"/>\n\n\n<!-- Read in the original texstyle file -->\n<xsl:variable name=\"orig-texstyle-root\" select=\"document(concat($texstyle-file-path, $journal.texstyle.file))\"/>\n\n<!-- We create a texstyle-root element which is either the root of the     -->\n<!-- original texstyle file, or is the root of a texstyle file that the    -->\n<!-- original texstyle file extends.  This is done similar to how assembly -->\n<!-- works.                                                                -->\n<xsl:variable name=\"texstyle-root-rtf\">\n    <xsl:apply-templates select=\"$orig-texstyle-root\" mode=\"include-base\" />\n</xsl:variable>\n<xsl:variable name=\"texstyle-root\" select=\"exsl:node-set($texstyle-root-rtf)\"/>\n\n<!-- Entry point to the include-base modal templates.  Looks for the /texstyle/medatadata/extends -->\n<!-- element.  If it's there, gets the file it extends (assumed to be in the parent directory of  -->\n<!-- the original texstyle file) and dives into that base file to copy everything there unless    -->\n<!-- there is a version of that element in the extending/original texstyle file.                  -->\n<xsl:template match=\"texstyle\" mode=\"include-base\">\n    <xsl:choose>\n        <xsl:when test=\"metadata/extends\">\n            <xsl:variable name=\"base-texstyle-file-name\" select=\"metadata/extends\"/>\n            <xsl:variable name=\"base-texstyle-root\" select=\"document(concat($texstyle-file-path, $base-texstyle-file-name, '.xml'))\"/>\n            <xsl:copy>\n                <xsl:apply-templates select=\"$base-texstyle-root/texstyle/*\" mode=\"include-base\"/>\n            </xsl:copy>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- If not extending, then we just take a copy of the original texstyle file -->\n            <xsl:copy-of select=\".\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Modal template that tests each node of base to see if it is in the  -->\n<!-- original texstyle file, in which case it copies the node from the   -->\n<!-- original, or else copies the node from the base texstyle file.      -->\n<!-- Note that we only look at children of the texstyle element.         -->\n<xsl:template match=\"node()|@*\" mode=\"include-base\">\n    <xsl:variable name=\"base-node-name\" select=\"string(name())\"/>\n    <xsl:variable name=\"orig-node-name\" select=\"$orig-texstyle-root/texstyle/*[name()=$base-node-name]\"/>\n    <xsl:choose>\n        <xsl:when test=\"$orig-node-name\">\n            <xsl:copy-of select=\"$orig-node-name\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:copy-of select=\".\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- end of texstyle file import logic -->\n\n\n<!--%%%%%%%%%%%%%%%%%%%%%%%%-->\n<!-- Main \"entry\" templates -->\n<!--%%%%%%%%%%%%%%%%%%%%%%%%-->\n\n<!-- The main template that will be controlled by the texstyle file -->\n<xsl:template match=\"article\">\n    <!-- Some boiler plate at the top of the file -->\n    <xsl:call-template name=\"converter-blurb-latex\"/>\n    <xsl:call-template name=\"snapshot-package-info\"/>\n    <!-- Now hand over control of the document order to the texstyle file -->\n    <xsl:apply-templates select=\"$texstyle-root/texstyle\"/>\n    <!-- Each of the elements of the texstyle file will have its own template below -->\n    <!-- So that's it! -->\n</xsl:template>\n\n\n<!-- Catch-all for elements not yet implemented, to be overridden below -->\n<xsl:template match=\"texstyle/*\">\n    <xsl:message>PTX:WARNING: Unhandled texstyle element: <xsl:value-of select=\"name()\"/></xsl:message>\n</xsl:template>\n\n\n<!-- Sort of an entry template, which get's called as part of -->\n<!-- the match on the pretext source's article.               -->\n<xsl:template match=\"texstyle\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n\n<!--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-->\n<!-- texstyle templates               -->\n<!--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%-->\n\n<!-- Include comments describing the texstyle file used -->\n<xsl:template match=\"texstyle/metadata\">\n    <xsl:text>% This document was created with the texstyle file \"</xsl:text>\n    <xsl:apply-templates select=\"code\"/>\n    <xsl:text>.xml\" to satisfy the requirements of the journal \"</xsl:text>\n    <xsl:apply-templates select=\"name\"/>\n    <xsl:text>.\"&#xa;%&#xa;%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- - - - - - - - - -->\n<!-- Preamble stuff  -->\n<!-- - - - - - - - - -->\n\n<!-- For the document class -->\n<!-- TODO: respond to options with correct options -->\n<xsl:template match=\"texstyle/documentclass\">\n    <xsl:text>\\documentclass</xsl:text>\n    <xsl:if test=\"@opt\">\n        <xsl:text>[</xsl:text>\n        <xsl:value-of select=\"@opt\"/>\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"@name\"/>\n    <xsl:text>}&#xa;%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Sometimes journals require specific packages -->\n<xsl:template match=\"texstyle/packages\">\n<xsl:text>% Required packages:&#xa;</xsl:text>\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n</xsl:template>\n\n<!-- This could be inserted in the texstyle file before or after ptx-preamble -->\n<!-- to add arbitrary preamble content that is needed to resolve conflicts    -->\n<!-- with the journals .cls or .sty files                                     -->\n<xsl:template match=\"texstyle/preamble-addition\">\n    <xsl:text>% TexStyle preamble additions:&#xa;</xsl:text>\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n    <xsl:text>% End TexStyle preamble addioions.</xsl:text>\n</xsl:template>\n\n<!-- Here we build the \"standard\" (classic) latex preamble,       -->\n<!-- with some minor modifications suggested by the texstyle file -->\n<xsl:template match=\"texstyle/ptx-preamble\">\n    <xsl:call-template name=\"frontmatter-helpers\"/>\n    <xsl:call-template name=\"preamble-early\"/>\n    <xsl:call-template name=\"cleardoublepage\"/>\n    <xsl:call-template name=\"standard-packages\"/>\n    <xsl:choose>\n        <xsl:when test=\"theoremstyle\">\n            <xsl:apply-templates select=\"theoremstyle\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- The latex-theorem-environments template from -classic:  -->\n            <xsl:call-template name=\"latex-theorem-environments\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:call-template name=\"tcolorbox-init\"/>\n    <xsl:call-template name=\"numberless-environments\"/>\n    <xsl:call-template name=\"page-setup\"/>\n    <xsl:call-template name=\"latex-engine-support\"/>\n    <xsl:call-template name=\"font-support\"/>\n    <xsl:call-template name=\"math-packages\"/>\n    <xsl:call-template name=\"pdfpages-package\"/>\n    <xsl:call-template name=\"semantic-macros\"/>\n    <xsl:call-template name=\"exercises-and-solutions\"/>\n    <xsl:call-template name=\"chapter-start-number\"/>\n    <xsl:call-template name=\"equation-numbering\"/>\n    <xsl:call-template name=\"image-tcolorbox\"/>\n    <xsl:call-template name=\"tables\"/>\n    <xsl:call-template name=\"font-awesome\"/>\n    <xsl:call-template name=\"poetry-support\"/>\n    <xsl:call-template name=\"music-support\"/>\n    <xsl:call-template name=\"code-support\"/>\n    <xsl:call-template name=\"list-layout\"/>\n    <!-- Option to exclude the hyperref chunk; implemented for the springer nature texstyle -->\n    <xsl:if test=\"not(@hyperref = 'no')\">\n        <xsl:call-template name=\"load-configure-hyperref\"/>\n    </xsl:if>\n    <xsl:call-template name=\"create-numbered-tcolorbox\"/>\n    <xsl:call-template name=\"watermark\"/>\n    <xsl:call-template name=\"showkeys\"/>\n    <xsl:call-template name=\"latex-image-support\"/>\n    <xsl:call-template name=\"sidebyside-environment\"/>\n    <xsl:call-template name=\"kbd-keys\"/>\n    <xsl:call-template name=\"late-preamble-adjustments\"/>\n</xsl:template>\n\n<!-- A list of all the elements that could need \\newtheorem environments -->\n<xsl:variable name=\"numbered-theorem-envs\" select=\"\n        ($document-root//lemma)[1]|\n        ($document-root//proposition)[1]|\n        ($document-root//corollary)[1]|\n        ($document-root//claim)[1]|\n        ($document-root//fact)[1]|\n        ($document-root//identity)[1]|\n        ($document-root//conjecture)[1]|\n        ($document-root//definition)[1]|\n        ($document-root//axiom)[1]|\n        ($document-root//principle)[1]|\n        ($document-root//heuristic)[1]|\n        ($document-root//hypothesis)[1]|\n        ($document-root//assumption)[1]|\n        ($document-root//openproblem)[1]|\n        ($document-root//openquestion)[1]|\n        ($document-root//algorithm)[1]|\n        ($document-root//question)[1]|\n        ($document-root//activity)[1]|\n        ($document-root//exercise)[1]|\n        ($document-root//inlineexercise)[1]|\n        ($document-root//investigation)[1]|\n        ($document-root//exploration)[1]|\n        ($document-root//problem)[1]|\n        ($document-root//example)[1]|\n        ($document-root//project)[1]|\n        ($document-root//convention)[1]|\n        ($document-root//warning)[1]|\n        ($document-root//remark)[1]|\n        ($document-root//insight)[1]|\n        ($document-root//note)[1]|\n        ($document-root//observation)[1]|\n        ($document-root//computation)[1]|\n        ($document-root//technology)[1]|\n        ($document-root//data)[1]\n\"/>\n\n<!-- Determine which \\newtheorem environments to create based on what is in the texstyle file -->\n<xsl:template match=\"theoremstyle\">\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\theoremstyle{</xsl:text>\n    <xsl:value-of select=\"@name\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <!-- In just the first theoremstyle, we use \"theorem\" as the     -->\n    <!-- default theorem for purposes of defining a counter.         -->\n    <!-- Unless we see @define-counter=\"no\", in which case we assume -->\n    <!-- that the package for the journal does this already.         -->\n    <!-- Note that \"theorem\" is not among the $numbered-theorem-envs -->\n    <xsl:if test=\"not(preceding-sibling::theoremstyle) and not(@define-counter='no')\">\n        <xsl:text>\\newtheorem{theorem}{</xsl:text>\n        <xsl:apply-templates select=\"($document-root//theorem)[1]\" mode=\"type-name\"/>\n        <xsl:text>}[section]&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Read in all the names of theorems in the @environments attribute -->\n    <xsl:variable name=\"thm-envs\" select=\"str:tokenize(@environments, ', ')\"/>\n    <!-- Apply the modal newtheorem template to each environment if it belongs in this group -->\n    <xsl:for-each select=\"$thm-envs\">\n        <xsl:variable name=\"env\">\n            <xsl:value-of select=\".\"/>\n        </xsl:variable>\n        <xsl:for-each select=\"$numbered-theorem-envs\">\n            <xsl:if test=\"name() = $env\">\n                <xsl:apply-templates select=\".\" mode=\"newtheorem\"/>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- End preamble stuff -->\n\n\n\n<!-- - - - - - - - - - - - - - - - -->\n<!-- Frontmatter and bibinfo stuff -->\n<!-- - - - - - - - - - - - - - - - -->\n\n<!-- Note: for the rest of the template commands, we will use a couple      -->\n<!-- utility templates, located at the end of this file, to consistently    -->\n<!-- wrap the pretext content in environments, command options and          -->\n<!-- arguments, or below headings. Each of the following templates will     -->\n<!-- pass the appropriate pretext node as needed to these utility templates.-->\n\n<!-- Some journals wrap some of the bibinfo in a `frontmatter` environment -->\n<!-- NB only environment supported as of 2025-03-23 -->\n<xsl:template match=\"texstyle/frontmatter\">\n    <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\"/>\n</xsl:template>\n\n<!-- A title texstyle element.  Currently assumes @cmd structured with opt and arg -->\n<xsl:template match=\"texstyle//title\">\n    <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n        <xsl:with-param name=\"ptx-node\" select=\"$document-root\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"texstyle//title//ptx-short-title\">\n    <xsl:apply-templates select=\"$document-root\" mode=\"title-short\"/>\n</xsl:template>\n\n<xsl:template match=\"texstyle//title//ptx-title\">\n    <xsl:apply-templates select=\"$document-root\" mode=\"title-full\"/>\n    <xsl:if test=\"$document-root/subtitle\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <!-- Trying to match author fontsize -->\n        <xsl:text>{\\small </xsl:text>\n        <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Article-level support statement.  Assumes @cmd as of 2025-03-23 -->\n<!-- NB careful that this does not conflict with author-level support. -->\n<!-- That is, don't allow <support> in author, use <ptx-support> always. -->\n<xsl:template match=\"texstyle//support\">\n    <xsl:if test=\"$bibinfo/support\">\n        <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n            <xsl:with-param name=\"ptx-node\" select=\"$bibinfo\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"ptx-bibinfo-support\">\n    <xsl:apply-templates select=\"$bibinfo/support\"/>\n</xsl:template>\n\n<xsl:template match=\"texstyle//date\">\n    <xsl:if test=\"$bibinfo/date\">\n        <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n            <xsl:with-param name=\"ptx-node\" select=\"$bibinfo\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Author listings -->\n\n<!-- We provide two basic frameworks for listing authors.                                   -->\n<!-- 1. Each author is listed with its own command, possibly tied to an affiliation with    -->\n<!--    some sort of reference or number.  The texstyle file wraps all author information   -->\n<!--    in an <author-list> environment.                                                    -->\n<!-- 2. All authors are listed inside a single command, separated by \\and or similar.       -->\n<!--    In the texstyle, this is indicated by having a top-level <author> element which     -->\n<!--    encloses an <author-list>.                                                          -->\n\n\n<!-- An author-list means we should cycle through the list of authors. -->\n<!-- So we apply templates for $bibinfo/author, but pass the context -->\n<!-- of the texstyle node, so we can keep looking around there. -->\n<!-- NB this works for either framework, either as a direct child of texstyle -->\n<!-- or as a child of author -->\n<xsl:template match=\"texstyle//author-list\">\n    <xsl:apply-templates select=\"$bibinfo/author\" mode=\"author-list\">\n        <xsl:with-param name=\"ts-node\" select=\".\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Here our context is on the author node of the ptx source, but we want to -->\n<!-- now apply each template of the texstyle author-list node in the order of -->\n<!-- the textstyle file.  So we apply templates, and pass the context of the  -->\n<!-- author node from pretext source.                                         -->\n<xsl:template match=\"*\" mode=\"author-list\">\n    <xsl:param name=\"ts-node\"/>\n    <xsl:apply-templates select=\"$ts-node/*\">\n        <xsl:with-param name=\"ptx-node\" select=\".\"/>\n    </xsl:apply-templates>\n    <!-- If we are separating authors, add the separator between each group of texstyle nodes -->\n    <xsl:if test=\"following-sibling::author and $ts-node/@sep\">\n        <xsl:value-of select=\"$ts-node/@sep\"/>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Context: texstyle nodes, Param: ptx-source node (for the author)-->\n<xsl:template match=\"texstyle//author-list/author\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n        <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"texstyle//author-list/affiliation\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:if test=\"$ptx-node/affiliation\">\n        <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n            <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n\n<xsl:template match=\"texstyle//author-list/support\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:if test=\"$ptx-node/support\">\n        <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n            <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n            <xsl:with-param name=\"after\" select=\"@after\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"texstyle//author-list/email\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:if test=\"$ptx-node/email\">\n        <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n            <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- We do the same thing for affiliation-list -->\n<xsl:template match=\"texstyle//affiliation-list\">\n    <xsl:apply-templates select=\"$bibinfo/author\" mode=\"affiliation-list\">\n        <xsl:with-param name=\"ts-node\" select=\".\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Context: ptx-source (likely an author element) -->\n<!-- NB this is currently assuming only one structure of the ts-node.            -->\n<!-- In particular, we do not pass back to the ts-node as we did for author-list -->\n<!-- TODO: should this just be author-list in the ts file? -->\n<xsl:template match=\"*\" mode=\"affiliation-list\">\n    <xsl:param name=\"ts-node\"/>\n    <xsl:if test=\"$ts-node/affiliation\">\n        <xsl:text>\\</xsl:text>\n        <xsl:value-of select=\"$ts-node/affiliation/@cmd\"/>\n        <xsl:if test=\"$ts-node/affiliation/opt\">\n            <xsl:text>[</xsl:text>\n            <xsl:apply-templates select=\"$ts-node/affiliation/opt/*\">\n                <xsl:with-param name=\"ptx-node\" select=\".\"/>\n            </xsl:apply-templates>\n            <xsl:text>]</xsl:text>\n        </xsl:if>\n        <xsl:text>{</xsl:text>\n        <!-- This could be the contents of the <arg> element, but hardcoded for now. -->\n        <xsl:apply-templates select=\"affiliation\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- The next two templates are a little strange: it gives a way to -->\n<!-- get the number of \"ptx-source node\", when called from a different  -->\n<!-- node.  NB we use mode=\"texstyle-number\" to avoid a conflict    -->\n<!-- with the default number modal template.                        -->\n<xsl:template match=\"affiliation-ordinal\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:apply-templates select=\"$ptx-node\" mode=\"texstyle-number\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"texstyle-number\">\n    <xsl:number/>\n</xsl:template>\n\n<!-- Some journals put footnote commands with their contents elsewhere, linked by an id -->\n<xsl:template match=\"fnmark\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:text>\\</xsl:text>\n    <xsl:value-of select=\"@cmd\"/>\n    <xsl:text>{</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@arg = 'unique-id'\">\n            <xsl:value-of select=\"$ptx-node/@unique-id\"/>\n        </xsl:when>\n        <xsl:when test=\"@arg = 'ordinal'\">\n            <xsl:apply-templates select=\"$ptx-node\" mode=\"texstyle-number\"/>\n        </xsl:when>\n        <!-- Todo: add other options here -->\n    </xsl:choose>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"fntext\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:text>\\</xsl:text>\n    <xsl:value-of select=\"@cmd\"/>\n    <xsl:if test=\"@opt\">\n        <xsl:text>[</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"@opt = 'unique-id'\">\n                <xsl:value-of select=\"$ptx-node/@unique-id\"/>\n            </xsl:when>\n            <xsl:when test=\"@arg = 'ordinal'\">\n                <xsl:apply-templates select=\"$ptx-node\" mode=\"texstyle-number\"/>\n            </xsl:when>\n        </xsl:choose>\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"@arg\">\n        <xsl:text>{</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"@arg = 'unique-id'\">\n                <xsl:value-of select=\"$ptx-node/@unique-id\"/>\n            </xsl:when>\n            <xsl:when test=\"@arg = 'ordinal'\">\n                <xsl:apply-templates select=\"$ptx-node\" mode=\"texstyle-number\"/>\n            </xsl:when>\n        </xsl:choose>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n    </xsl:apply-templates>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Now for the second option for listing authors.        -->\n<!-- We only need the top level template here; everything  -->\n<!-- else will be handled by the general author-list above -->\n<!-- NB we can't use texstyle//author because that conflicts with texstyle//authorlist/author -->\n<xsl:template match=\"texstyle/author|/texstyle/frontmatter/author\">\n    <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\">\n        <xsl:with-param name=\"ptx-node\" select=\"$bibinfo\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<xsl:template match=\"ptx-support\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:apply-templates select=\"$ptx-node/support\"/>\n</xsl:template>\n\n<xsl:template match=\"ptx-personname\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:apply-templates select=\"$ptx-node/personname\"/>\n</xsl:template>\n\n<xsl:template match=\"ptx-affiliation\">\n    <xsl:param name=\"ptx-node\"/>\n    <!-- Variable for sep param; use value of attribute or '\\\\&#xa;' for default. -->\n    <xsl:variable name=\"sep\">\n        <xsl:choose>\n            <xsl:when test=\"@sep\">\n                <xsl:value-of select=\"@sep\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\\\&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:apply-templates select=\"$ptx-node/affiliation\">\n        <xsl:with-param name=\"sep\" select=\"$sep\"/>\n        <xsl:with-param name=\"after\" select=\"@after\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"ptx-email\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:apply-templates select=\"$ptx-node/email\" mode=\"article-info\"/>\n</xsl:template>\n\n<xsl:template match=\"ptx-date\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:apply-templates select=\"$ptx-node/date\"/>\n</xsl:template>\n\n<!-- End of author information -->\n\n\n\n<!-- Abstract, keywords, etc. -->\n\n<xsl:template match=\"texstyle//abstract\">\n    <xsl:if test=\"$document-root/frontmatter/abstract\">\n        <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\" />\n    </xsl:if>\n</xsl:template>\n\n\n<xsl:template match=\"texstyle//keywords[keywords]\">\n    <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\"/>\n</xsl:template>\n\n\n<!-- First we select which source keyword element to use for a particular texstyle -->\n<!-- keyword element by matching up their \"authority\" (with authority=\"author\" the -->\n<!-- default for source). In either case, we jump to a modal template with context -->\n<!-- on the source node, passing the texstyle node as a param.                     -->\n<!-- NB we can group keywords inside a parent keywords element, but that's not what we want here. -->\n<xsl:template match=\"texstyle//keywords[not(keywords)]\">\n    <xsl:choose>\n        <xsl:when test=\"@authority = 'author'\">\n            <xsl:apply-templates select=\"$bibinfo/keywords[@authority='author' or not(@authority)]\" mode=\"keywords\">\n                <xsl:with-param name=\"ts-node\" select=\".\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"@authority = 'msc'\">\n            <xsl:apply-templates select=\"$bibinfo/keywords[@authority='msc']\" mode=\"keywords\">\n                <xsl:with-param name=\"ts-node\" select=\".\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: The @authority attribute on a keyword element (in a texstyle file) is required and must be \"author\" or \"msc\".  Found \"@authority=\"<xsl:value-of select=\"@authority\"/>\". </xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Here we insert the correct text for a keywords element based on the ts-node param -->\n<xsl:template match=\"*\" mode=\"keywords\">\n    <xsl:param name=\"ts-node\"/>\n    <xsl:choose>\n        <!-- Case when keywords are in the argument of a command: -->\n        <xsl:when test=\"$ts-node/@cmd\">\n            <xsl:text>\\</xsl:text>\n            <xsl:value-of select=\"$ts-node/@cmd\"/>\n            <xsl:if test=\"$ts-node/@variant-style='opt'\">\n                <xsl:text>[</xsl:text>\n                <xsl:apply-templates select=\"@variant\"/>\n                <xsl:text>]</xsl:text>\n            </xsl:if>\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\"keyword\">\n                <xsl:with-param name=\"sep\" select=\"$ts-node/@sep\"/>\n            </xsl:apply-templates>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:when>\n        <!-- Case when keywords have a boldface heading -->\n        <xsl:when test=\"$ts-node/@style='bf-heading'\">\n            <xsl:if test=\"$ts-node/@before\">\n                <xsl:value-of select=\"$ts-node/@before\"/>\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:if>\n            <xsl:text>\\noindent\\textbf{</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$ts-node/@authority='author'\">\n                    <xsl:text>Keywords</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$ts-node/@authority='msc'\">\n                    <xsl:if test=\"$ts-node/@variant-style='before'\">\n                        <xsl:value-of select=\"@variant\"/>\n                        <xsl:text> </xsl:text>\n                    </xsl:if>\n                    <xsl:text>Math Subject Classification</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n            <xsl:text>}. </xsl:text>\n            <xsl:apply-templates select=\"keyword\">\n                <xsl:with-param name=\"sep\" select=\"$ts-node/@sep\"/>\n            </xsl:apply-templates>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"keyword\">\n                <xsl:with-param name=\"sep\" select=\"$ts-node/@sep\"/>\n            </xsl:apply-templates>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<xsl:template match=\"ptx-abstract\">\n    <xsl:apply-templates select=\"$document-root/frontmatter/abstract/*\"/>\n</xsl:template>\n\n<xsl:template match=\"texstyle/maketitle\">\n    <xsl:text>\\maketitle&#xa;</xsl:text>\n</xsl:template>\n<!-- End frontmatter stuff -->\n\n\n\n<!-- Mainmatter -->\n<xsl:template match=\"texstyle/mainmatter\">\n    <xsl:apply-templates select=\"$document-root/*[not(self::backmatter|self::references)]\"/>\n</xsl:template>\n\n\n<!-- Backmatter -->\n<xsl:template match=\"texstyle/backmatter\">\n    <xsl:apply-templates select=\".\" mode=\"env-cmd-header-wrap\" />\n</xsl:template>\n\n<!-- Todo: fix these -->\n<xsl:template match=\"texstyle/supplement\">\n    <xsl:message>PTX:WARNING: Supplements are not yet available in PreTeXt so this feature is not available currently.</xsl:message>\n    <xsl:if test=\"$document-root//supplement\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>% Supplement sections&#xa;</xsl:text>\n        <xsl:value-of select=\"@heading\"/>\n        <xsl:text>%&#xa;%&#xa;</xsl:text>\n        <xsl:apply-templates select=\"$document-root//supplement\"/>\n    </xsl:if>\n</xsl:template>\n<xsl:template match=\"texstyle/acknowledgments\">\n    <xsl:if test=\"$document-root//acknowledgement\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>% acknowledgement section&#xa;</xsl:text>\n        <xsl:value-of select=\"@heading\"/>\n        <xsl:text>%&#xa;%&#xa;</xsl:text>\n        <xsl:apply-templates select=\"$document-root//acknowledgement\"/>\n    </xsl:if>\n</xsl:template>\n<xsl:template match=\"texstyle/declarations\">\n    <xsl:message>PTX:WARNING: Declarations are not yet available in PreTeXt so this feature is not available currently.</xsl:message>\n    <xsl:if test=\"$document-root//declaration\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>% Declarations sections&#xa;</xsl:text>\n        <xsl:value-of select=\"@heading\"/>\n        <xsl:text>%&#xa;%&#xa;</xsl:text>\n        <xsl:apply-templates select=\"$document-root//declaration\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<xsl:template match=\"texstyle/appendices\">\n    <xsl:if test=\"$document-root//appendix\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>% Appendices&#xa;</xsl:text>\n        <xsl:if test=\"@env\">\n            <xsl:text>\\begin{</xsl:text>\n            <xsl:value-of select=\"@env\"/>\n            <xsl:text>}</xsl:text>\n            <xsl:text>%&#xa;%&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"$document-root//appendix\"/>\n        <xsl:if test=\"@env\">\n            <xsl:text>\\end{</xsl:text>\n            <xsl:value-of select=\"@env\"/>\n            <xsl:text>}%&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n\n<xsl:template match=\"texstyle/bibliography\">\n    <xsl:message>PTX:WARNING: Bibliographies are not implemented correctly yet.</xsl:message>\n    <xsl:apply-templates select=\"$document-root/references|$document-root/backmatter/references\"/>\n</xsl:template>\n\n\n<!-- Begin/End document -->\n<xsl:template match=\"texstyle/begin-document\">\n    <xsl:text>%&#xa;%&#xa;</xsl:text>\n    <xsl:text>%*********************************%&#xa;</xsl:text>\n    <xsl:text>%*      Begin Main Document      *%&#xa;</xsl:text>\n    <xsl:text>%*********************************%&#xa;</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\begin{document}&#xa;</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"texstyle/end-document\">\n    <xsl:text>%&#xa;\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- LaTeX spacing commands -->\n\n<xsl:template match=\"medskip\">\n    <xsl:text>\\par\\medskip&#xa;</xsl:text>\n</xsl:template>\n\n<!-- For cases when the texstyle file should include raw text -->\n<xsl:template match=\"text\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n\n<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -->\n<!-- Utility templates for wrapping pretext content in environments, -->\n<!-- command options and arguments, or below headings.               -->\n<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  -->\n\n\n<!-- First we have a template that will put in the \\begin{env}...\\end{env}, -->\n<!-- or \\cmd or heading depending on what the current ts-node has as an     -->\n<!-- attribute.  We might pass a ptx-node depending on the originating      -->\n<!-- template as well.                                                      -->\n<!-- The `after` param is for templates that need to put a linebreak or     -->\n<!-- or similar text after the end of the command.                          -->\n<xsl:template match=\"*\" mode=\"env-cmd-header-wrap\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:param name=\"after\"/>\n    <xsl:choose>\n        <xsl:when test=\"@env\">\n            <xsl:text>\\begin{</xsl:text>\n            <xsl:value-of select=\"@env\"/>\n            <xsl:text>}&#xa;</xsl:text>\n            <xsl:apply-templates select=\"*\">\n                <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n            </xsl:apply-templates>\n            <xsl:text>\\end{</xsl:text>\n            <xsl:value-of select=\"@env\"/>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@cmd\">\n            <xsl:text>\\</xsl:text>\n            <xsl:value-of select=\"@cmd\"/>\n            <xsl:apply-templates select=\"*\">\n                <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n            </xsl:apply-templates>\n            <xsl:value-of select=\"$after\"/>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@heading\">\n            <xsl:value-of select=\"@heading\"/>\n            <xsl:apply-templates select=\"*\">\n                <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n            </xsl:apply-templates>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Wrappers for opts and args -->\n<!-- These are applied inside commands.  Context is a ts-node -->\n<!-- we always pass the ptx-node parent of any element we will apply using a ptx-element -->\n<xsl:template match=\"opt\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:text>[</xsl:text>\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n        </xsl:apply-templates>\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"arg\">\n    <xsl:param name=\"ptx-node\"/>\n    <xsl:text>{</xsl:text>\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"ptx-node\" select=\"$ptx-node\"/>\n        </xsl:apply-templates>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/localizations/README.md",
    "content": "<!--********************************************************************\nCopyright 2013-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\nPreTeXt Localizations\n=====================\n\nEach file in this directory provides translations of various strings used in titles and headings (and other places) to a specific language.  Filenames reflect the code for language (lowercase) and then the code for the region (uppercase).  This is a requirement.\n\nFor each file of translations, the \"language\" attribute of the \"locale\" element used to reference the language code and the \"string-id\" of each \"localization\" element is the lookup key. Element content is the language-specific string. The English version (\"en-US\") is carefully documented, so additions of new languages do not necessarily require new documentation, though it could help other implementers. See `xsl/pretext-common.xsl` for the two routines which make use of this information, one is a named template and the other (largely) uses the name of an element as the string-id.\n\nSome items peculiar to LaTeX are explained [here](http://www.tex.ac.uk/cgi-bin/texfaq2html?label=fixnam)\n\nThere is a [general overview of language tags](http://www.w3.org/International/articles/language-tags/) and the [Subtag Registry](http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry).\n\nContibutions of new languages are always welcome and especially encouraged! Search on \"Translation needed\" to see where you can help. Use the  en-US  file as a template for a new language file, since it is always most complete.  It is understood that certain English words and phrases have subtleties that can be very hard to capture in another language.  Do your best to concoct a close approximation -- something should be better than nothing.  And it might improve with additions from others later.  We try to address some of this in the  en-US  file, so do be certain to look there for explanations of how these strings are employed.  Comments about your own decisions, within the relevant language file, can be very helpful later.\n\nNEW LANGUAGES: for a new file to be effective, a single line needs to be added to the `xsl/localizations/localizations.xml` file.  It should be obvious what to do by looking at the other lines of that file.  If you create a new file, please include a \"commented-out\" line for any words you do not translate, and please use the **exact** style of commenting as elsewhere (one line per comment, indented).  Including these, and using teh same style, greatly aids in maintenance and reliability.\n\nAdditions to incomplete files, or new files for additional languages, are very welcome and are a huge help in making PreTeXt useable for more authors.  A GitHub pull request is preferable.  If you do not know GitHub well, then emailing the entire language file (as an attachment) is very welcome and just as easy to deal with on our end.  Please respect the order in the en-US file, it saves us time when we add new terms to each and every file.  Thanks.\n\nTo test, or use: place  `xml:lang=\"es-ES\"`, or similar, as an attribute on your `<pretext>` element.  `en-US` is the default if no `@xml:lang` attribute is given on the `pretext` element.\n\nCurrent (partially) implemented language codes and contributors\n* af-ZA, Afrikaans (South Africa), Dirk Basson\n* bg-BG, Bulgarian (Bulgaria), Boyko Bantchev\n* ca-ES, Catalan (Spain), Jordi Saludes\n* cs-CZ, Czech (Czechia), Jiří Lebl\n* de-DE, German (Germany), Karl-Dieter Crisman\n* es-ES, Spanish (Spain), Juan José Torrens\n* en-US, English (United States), Robert A. Beezer\n* fi-FI, Finnish (Finland), Lasse M. Manninen\n* fr-CA, French (Canada), Jean-Sébastien Turcotte\n* fr-FR, French (France), Thomas W. Judson, Julien Giol, Jean-Sébastien Turcotte\n* hu-HU, Hungarian (Hungary), Sándor Czirbusz\n* it-IT, Italian (Italy), Valerio Monti\n* ku-CKB, Rebin Muhammad, Kurdish (Central Kurdish)\n* nl-NL, Dutch (Netherlands), Gosia Wrzesinska\n* pt-BR, Portugese (Brazil), Igor Morgado, Vinicius Monego, Leon Silva\n* pt-PT, Portugese (Portugal), António Pereira\n* zh-HANS, Chinese Simplified (China), Hongqi Wang\n"
  },
  {
    "path": "xsl/localizations/af-ZA.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n\r\n<!--********************************************************************\r\nCopyright 2014-2021 Robert A. Beezer\r\n\r\nThis file is part of PreTeXt.\r\n\r\nPreTeXt is free software: you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by\r\nthe Free Software Foundation, either version 2 or version 3 of the\r\nLicense (at your option).\r\n\r\nPreTeXt is distributed in the hope that it will be useful,\r\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\r\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\nGNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License\r\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\r\n*********************************************************************-->\r\n\r\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\r\n\r\n<!-- af-ZA, Afrikaans (South Africa) -->\r\n<!-- Dirk Basson, djbasson@sun.ac.za, 2018-03-23 -->\r\n\r\n<locale language=\"af-ZA\" direction=\"ltr\"\r\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\r\n    <!-- The english quotation style above is just a default, it needs adjustment -->\r\n    <!-- THEOREM-LIKE blocks -->\r\n    <!-- Environments which have proofs, plus proofs themselves -->\r\n    <localization string-id='theorem'>Stelling</localization>\r\n    <localization string-id='corollary'>Gevolg</localization>\r\n    <localization string-id='lemma'>Hulpstelling</localization> <!-- Or \"Lemma\" as well -->\r\n    <localization string-id='algorithm'>Algoritme</localization>\r\n    <localization string-id='proposition'>Stelling</localization>\r\n    <localization string-id='claim'>Aanvoering</localization> <!-- This was a difficult one for me. The most obvious candidate is \"bewering\", but this is already used as a technical term for a mathematical statement. Words like \"veronderstelling\", \"eis\", \"postuleer\" all convey slightly the wrong meaning. \"Aanvoering\" is slightly awkward, but the best I could think of. -D.Basson -->\r\n    <localization string-id='fact'>Feit</localization>\r\n    <localization string-id='identity'>Identiteit</localization>\r\n    <!-- PROOF-LIKE -->\r\n    <localization string-id='proof'>Bewys</localization>\r\n    <!-- <localization string-id='argument'>Argument</localization> -->\r\n    <!-- <localization string-id='justification'>Justification</localization> -->\r\n    <!-- <localization string-id='reasoning'>Reasoning</localization> -->\r\n    <!-- <localization string-id='explanation'>Explanation</localization> -->\r\n    <!-- used for a (logical) portion of a proof -->\r\n    <localization string-id='case'>Geval</localization>\r\n    <!-- Components of the narrative -->\r\n    <!-- Mathematical statements without proofs -->\r\n    <!-- AXIOM-LIKE blocks -->\r\n    <localization string-id='axiom'>Aksioma</localization>\r\n    <localization string-id='conjecture'>Vermoede</localization>\r\n    <localization string-id='principle'>Beginsel</localization>\r\n    <localization string-id='heuristic'>Heuristiek</localization>\r\n    <localization string-id='hypothesis'>Hipotese</localization>\r\n    <localization string-id='assumption'>Aanname</localization>\r\n    <!-- Definitions -->\r\n    <localization string-id='definition'>Definisie</localization>\r\n    <!--Mathematics -->\r\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\r\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\r\n    <localization string-id='equation'>Vergelyking</localization>\r\n    <localization string-id='displaymath'>Vertoon Wiskunde</localization>\r\n    <!-- Types of documents, mostly for informational messages -->\r\n    <localization string-id='volume'>Volume</localization>\r\n    <localization string-id='book'>Boek</localization>\r\n    <localization string-id='article'>Artikel</localization>\r\n    <localization string-id='slideshow'>Skyfie Vertoning</localization>\r\n    <localization string-id='letter'>Brief</localization>\r\n    <localization string-id='memo'>Memo</localization>\r\n    <localization string-id='presentation'>Aanbieding</localization>\r\n    <!-- Parts of a document -->\r\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\r\n    <localization string-id='frontmatter'>Voorsake</localization> <!-- Can't find this anywhere, so I made it up. -->\r\n    <localization string-id='part'>Deel</localization>\r\n    <localization string-id='chapter'>Hoofstuk</localization>\r\n    <localization string-id='appendix'>Bylaag</localization>\r\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\r\n    <!-- <localization string-id='appendices'>Appendices</localization> -->\r\n    <localization string-id='section'>Afdeling</localization>\r\n    <localization string-id='subsection'>Onderafdeling</localization>\r\n    <localization string-id='subsubsection'>Onderonderafdeling</localization>\r\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\r\n    <localization string-id='slide'>Skyfie</localization>\r\n    <localization string-id='introduction'>Inleiding</localization>\r\n    <localization string-id='conclusion'>Slot</localization>\r\n    <localization string-id='exercises'>Oefeninge</localization>\r\n    <localization string-id='worksheet'>Werkblad</localization>\r\n    <!-- <localization string-id='handout'>Handout</localization> -->\r\n    <localization string-id='reading-questions'>Leesvrae</localization>\r\n    <localization string-id='solutions'>Oplossings</localization>\r\n    <localization string-id='glossary'>Woordelys</localization>\r\n    <localization string-id='references'>Verwysings</localization>\r\n    <localization string-id='backmatter'>Nasake</localization> <!-- Can't find this anywhere, so I made it up. -->\r\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\r\n    <localization string-id='paragraphs'>Paragrawe</localization>\r\n    <localization string-id='subparagraph'>Onderparagrawe</localization>\r\n    <!-- Adjustments to titles of divisions -->\r\n    <!-- <localization string-id='group'>Group</localization> -->\r\n    <!-- Components of the narrative -->\r\n    <!-- REMARK-LIKE blocks -->\r\n    <!-- \"note\" is used within \"biblio\", likely to change -->\r\n    <localization string-id='remark'>Opmerking</localization>\r\n    <localization string-id='convention'>Konvensie</localization>\r\n    <localization string-id='note'>Nota</localization>\r\n    <localization string-id='observation'>Waarneming</localization>\r\n    <localization string-id='warning'>Waarskuwing</localization>\r\n    <localization string-id='insight'>Insig</localization>\r\n    <!-- COMPUTATION-LIKE blocks -->\r\n    <localization string-id='computation'>Berekening</localization>\r\n    <localization string-id='technology'>Tegnologie</localization>\r\n    <!-- <localization string-id='data'>Data</localization> -->\r\n    <!-- ASIDE-LIKE blocks -->\r\n    <localization string-id='aside'>Ter Syde</localization>\r\n    <localization string-id='biographical'>Biografiese Ter Syde</localization>\r\n    <localization string-id='historical'>Geskiedkundige Ter Syde</localization>\r\n    <!-- EXAMPLE-LIKE blocks -->\r\n    <localization string-id='example'>Voorbeeld</localization>\r\n    <localization string-id='question'>Vraag</localization>\r\n    <localization string-id='problem'>Probleem</localization>\r\n    <!-- PROJECT-LIKE blocks -->\r\n    <localization string-id='project'>Projek</localization>\r\n    <localization string-id='activity'>Aktiwiteit</localization>\r\n    <localization string-id='exploration'>Verkenning</localization>\r\n    <localization string-id='task'>Taak</localization>\r\n    <localization string-id='investigation'>Ondersoek</localization>\r\n    <!-- assemblages are collections of minimally structured material -->\r\n    <localization string-id='assemblage'>Samevatting</localization>\r\n    <localization string-id='poem'>Gedig</localization>\r\n    <!-- Objectives is the block, objective is a list item within -->\r\n    <localization string-id='objectives'>Doelstellings</localization>\r\n    <localization string-id='objective'>Doelstelling</localization>\r\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\r\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\r\n    <localization string-id='outcomes'>Uitkomstes</localization>\r\n    <localization string-id='outcome'>Uitkoms</localization>\r\n    <!--  -->\r\n    <!-- \"Open\" means unsolved, a research question/problem -->\r\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\r\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\r\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\r\n    <!-- \"discussion\" on open problems -->\r\n    <!-- <localization string-id='context'>Context</localization> -->\r\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\r\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\r\n    <!-- <localization string-id='status'>Status</localization> -->\r\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\r\n    <!--  -->\r\n    <localization string-id='figure'>Figuur</localization>\r\n    <localization string-id='table'>Tabel</localization>\r\n    <localization string-id='listing'>Lys</localization>\r\n    <localization string-id='fn'>Voetnota</localization>\r\n    <localization string-id='contributor'>Bydraer</localization>\r\n    <!-- Lists and their items -->\r\n    <localization string-id='list'>Lys</localization>\r\n    <localization string-id='li'>Item</localization>\r\n    <!-- A term (word) defined in a glossary item -->\r\n    <localization string-id='gi'>Term</localization>\r\n    <!-- A regular paragraph, not the old sectioning structure -->\r\n    <localization string-id='p'>Paragraaf</localization>\r\n    <localization string-id='blockquote'>Aanhaling</localization>\r\n    <!-- <localization string-id='pre'>Code Block</localization> -->\r\n    <!-- Literate programming, a chunk of computer code -->\r\n    <localization string-id='fragment'>Fragment</localization>\r\n    <!-- Parts of an exercise and its solution -->\r\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\r\n    <localization string-id='divisionalexercise'>Oefening</localization>\r\n    <localization string-id='inlineexercise'>Kontrolepunt</localization>\r\n    <localization string-id='worksheetexercise'>Werkbladoefening</localization>\r\n    <localization string-id='readingquestion'>Leesvraag</localization>\r\n    <localization string-id='webwork'>WeBWorK</localization>\r\n    <localization string-id='hint'>Wenk</localization>\r\n    <localization string-id='answer'>Antwoord</localization>\r\n    <localization string-id='solution'>Oplossing</localization>\r\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\r\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\r\n    <localization string-id='exercisegroup'>Oefening Groep</localization>\r\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\r\n    <localization string-id='biblio'>Bibliografiese Inskrywing</localization>\r\n    <!-- Front matter components -->\r\n    <localization string-id='toc'>Inhoudsopgawe</localization>\r\n    <localization string-id='abstract'>Abstrak</localization>\r\n    <localization string-id='preface'>Voorwoord</localization>\r\n    <localization string-id='acknowledgement'>Erkennings</localization>\r\n    <localization string-id='biography'>Skrywer Biografie</localization>\r\n    <!-- singular and plural titles for biography subdivision -->\r\n    <localization string-id='about-author'>Oor die skrywer</localization>\r\n    <localization string-id='about-authors'>Oor die skrywers</localization>\r\n    <localization string-id='foreword'>Voorwoord</localization>\r\n    <localization string-id='dedication'>Toewyding</localization>\r\n    <localization string-id='colophon'>Kolofon</localization> <!-- I have never heard of an Afrikaans version of colophon. Google Translate gives \"slottitel\" for the Dutch, meaning \"Summary title\". So , I just made this up. -D.Basson -->\r\n    <!-- Runestone Activities -->\r\n    <!-- <localization string-id='video'>Video</localization> -->\r\n    <!-- <localization string-id='program'>Program</localization> -->\r\n    <!-- <localization string-id='true'>True</localization> -->\r\n    <!-- <localization string-id='false'>False</localization> -->\r\n    <!-- <localization string-id='or'>Or</localization> -->\r\n    <!-- <localization string-id='either'>Either</localization> -->\r\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\r\n    <!-- <localization string-id='query'>Query</localization> -->\r\n    <localization string-id='program-activecode'>ActiveCode</localization>\r\n    <localization string-id='program-codelens'>CodeLens</localization>\r\n    <!-- Back matter components -->\r\n    <!-- index-part is deprecated, but not abandoned          -->\r\n    <!-- NB: repurpose translations, maybe move appendix here -->\r\n    <localization string-id='index'>Indeks</localization>\r\n    <localization string-id='jump-to'>Spring na</localization>\r\n    <!-- Parts of the Index -->\r\n    <localization string-id='index'>Indeks</localization>\r\n    <localization string-id='see'>Sien</localization>\r\n    <localization string-id='also'>Sien ook</localization>\r\n    <!-- Notation List headings/foot -->\r\n    <localization string-id='symbol'>Simbool</localization>\r\n    <localization string-id='description'>Beskrywing</localization>\r\n    <localization string-id='location'>Plek</localization>\r\n    <localization string-id='page'>Bladsy</localization>\r\n    <localization string-id='continued'>Voortgesit op volgende bladsy</localization>\r\n    <!-- Navigation Interface elements -->\r\n    <!-- Assistive \"skip to content\" link -->\r\n    <localization string-id='skip-to-content'>Slaan oor na hoofinhoud</localization>\r\n    <localization string-id='previous'>Vorige</localization>\r\n    <localization string-id='up'>Op</localization>\r\n    <localization string-id='next'>Volgende</localization>\r\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\r\n    <localization string-id='previous-short'>Vorig</localization>\r\n    <localization string-id='up-short'>Op</localization>\r\n    <localization string-id='next-short'>Volg</localization>\r\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\r\n    <localization string-id='annotations'>Aantekeninge</localization>\r\n    <localization string-id='feedback'>Terugvoer</localization>\r\n    <!-- This phrase should suggest that PreTeXt is the source -->\r\n    <!-- language that makes a particular output possible      -->\r\n    <localization string-id='authored'>Geskryf in</localization>\r\n    <!-- Search Results display/dialog -->\r\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\r\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\r\n    <!-- Parts of memos and letters -->\r\n    <localization string-id='to'>Aan</localization>\r\n    <localization string-id='from'>Van</localization>\r\n    <localization string-id='subject'>Onderwerp</localization>\r\n    <localization string-id='date'>Datum</localization>\r\n    <localization string-id='copy'>cc</localization>\r\n    <localization string-id='enclosure'>bylae</localization>\r\n    <!-- Various -->\r\n    <localization string-id='todo'>Om Te Doen</localization>\r\n    <localization string-id='editor'>Redakteur</localization>\r\n    <localization string-id='edition'>Uitgawe</localization>\r\n    <localization string-id='website'>Webtuiste</localization>\r\n    <localization string-id='copyright'>Kopiereg</localization>\r\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\r\n    <!-- HTML clickables (lowercase strings to click on) -->\r\n    <localization string-id='permalink'>perma-skakel</localization>\r\n    <localization string-id='incontext'>In Konteks</localization>\r\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\r\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\r\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\r\n    <!-- <localization string-id='embed'>Embed</localization> -->\r\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\r\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\r\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\r\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\r\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\r\n    <!-- Sage Cell evaluate button      -->\r\n    <!-- eg, \"Evaluate (Maxima)\"        -->\r\n    <!-- 2017-05-14: 'code' is obsolete -->\r\n    <!-- This needs to be defined to *something* (always)       -->\r\n    <!-- else whatever crud ends up on the button kills the cell -->\r\n    <localization string-id='evaluate'>Evalueer</localization>\r\n    <localization string-id='evaluate'>Evalueer</localization>\r\n    <!-- <localization string-id='code'>Kode</localization> -->\r\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\r\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\r\n    <!-- Interactive exercise feedback messages -->\r\n    <!-- <localization string-id='correct'>Correct</localization> -->\r\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\r\n    <!-- <localization string-id='blank'>Blank</localization> -->\r\n    <!-- <localization string-id='submit'>Submit</localization> -->\r\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\r\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\r\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\r\n    <!-- <localization string-id='activate'>Activate</localization> -->\r\n    <!-- <localization string-id='reset'>Reset</localization> -->\r\n    <!-- <localization string-id='array'>array</localization> -->\r\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\r\n    <!-- Additional printing options -->\r\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\r\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\r\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\r\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\r\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\r\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\r\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\r\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\r\n    <!-- <localization string-id=\"running\">Running</localization> -->\r\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\r\n    <!-- <localization string-id='print'>Print</localization> -->\r\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\r\n    <!-- <localization string-id='close'>Close</localization> -->\r\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\r\n</locale>\r\n"
  },
  {
    "path": "xsl/localizations/bg-BG.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- bg-BG, Bulgarian (Bulgaria) -->\n<!-- Boyko Bantchev, bantchev@gmail.com, 2019-07-04 -->\n\n<locale language=\"bg-BG\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Теорема</localization>\n    <localization string-id='corollary'>Следствие</localization>\n    <localization string-id='lemma'>Лема</localization>\n    <localization string-id='algorithm'>Алгоритъм</localization>\n    <localization string-id='proposition'>Предложение</localization>\n    <localization string-id='claim'>Твърдение</localization>\n    <localization string-id='fact'>Факт</localization>\n    <localization string-id='identity'>Тъждество</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Доказателство</localization>\n    <!-- <localization string-id='argument'>Argument</localization> -->\n    <!-- <localization string-id='justification'>Justification</localization> -->\n    <!-- <localization string-id='reasoning'>Reasoning</localization> -->\n    <!-- <localization string-id='explanation'>Explanation</localization> -->\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Случай</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Аксиома</localization>\n    <localization string-id='conjecture'>Хипотеза</localization>\n    <localization string-id='principle'>Принцип</localization>\n<!--\n    <localization string-id='heuristic'>Heuristic</localization>\n    <localization string-id='hypothesis'>Хипотеза</localization>\n-->\n    <localization string-id='assumption'>Постулат</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Определение</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Уравнение</localization>\n    <localization string-id='displaymath'>Изнесена формула</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Том</localization>\n    <localization string-id='book'>Книга</localization>\n    <localization string-id='article'>Статия</localization>\n    <!-- <localization string-id='slideshow'>Slideshow</localization> -->\n    <localization string-id='letter'>Писмо</localization>\n    <localization string-id='memo'>Паметна записка</localization>\n    <localization string-id='presentation'>Презентация</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>Титулни страници</localization>\n    <localization string-id='part'>Част</localization>\n    <localization string-id='chapter'>Глава</localization>\n    <localization string-id='appendix'>Приложение</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <!-- <localization string-id='appendices'>Appendices</localization> -->\n    <localization string-id='section'>Параграф</localization>\n    <localization string-id='subsection'>Точка</localization>\n    <localization string-id='subsubsection'>Подточка</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <!-- <localization string-id='slide'>Slide</localization> -->\n    <localization string-id='introduction'>Увод</localization>\n    <localization string-id='conclusion'>Заключение</localization>\n    <localization string-id='exercises'>Упражнения</localization>\n<!--\n    <localization string-id='worksheet'>Worksheet</localization>\n    <localization string-id='handout'>Handout</localization>\n    <localization string-id='reading-questions'>Reading Questions</localization>\n-->\n    <localization string-id='solutions'>Решения</localization>\n    <localization string-id='glossary'>Речник на термините</localization>\n    <localization string-id='references'>Библиография</localization>\n    <localization string-id='backmatter'>Издателско каре</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n<!--\n    <localization string-id='paragraphs'>Paragraphs</localization>\n-->\n<!--\n    <localization string-id='subparagraph'>Subparagraph</localization>\n-->\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n<!--\n    <localization string-id='remark'>Remark</localization>\n    <localization string-id='convention'>Convention</localization>\n-->\n    <localization string-id='note'>Забележка</localization>\n    <!-- <localization string-id='observation'>Observation</localization> -->\n    <!-- <localization string-id='warning'>Warning</localization> -->\n    <!-- <localization string-id='insight'>Insight</localization> -->\n    <!-- COMPUTATION-LIKE blocks -->\n    <!-- <localization string-id='computation'>Computation</localization> -->\n    <!-- <localization string-id='technology'>Technology</localization> -->\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Странична бележка</localization>\n    <localization string-id='biographical'>Библиографична бележка</localization>\n    <localization string-id='historical'>Историческа бележка</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Пример</localization>\n    <localization string-id='question'>Въпрос</localization>\n    <localization string-id='problem'>Задача</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Задание</localization>\n    <localization string-id='activity'>Дейност</localization>\n    <localization string-id='exploration'>Проучване</localization>\n    <localization string-id='task'>Задача</localization>\n    <localization string-id='investigation'>Изследване</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Сборник</localization>\n    <localization string-id='poem'>Стихотворение</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Цели</localization>\n    <localization string-id='objective'>Цел</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n    <localization string-id='outcomes'>Резултати</localization>\n    <localization string-id='outcome'>Резултат</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Фигура</localization>\n    <localization string-id='table'>Таблица</localization>\n    <localization string-id='listing'>Списък</localization>\n    <localization string-id='fn'>Бележка под линия</localization>\n<!--\n    <localization string-id='contributor'>Contributor</localization>\n-->\n    <!-- Lists and their items -->\n    <localization string-id='list'>Списък</localization>\n    <localization string-id='li'>Точка</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Термин</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Абзац</localization>\n    <localization string-id='blockquote'>Цитат</localization>\n    <!-- <localization string-id='pre'>Code Block</localization> -->\n    <!-- Literate programming, a chunk of computer code -->\n    <!-- <localization string-id='fragment'>Fragment</localization> -->\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Упражнение</localization>\n<!--\n    <localization string-id='inlineexercise'>Checkpoint</localization>\n    <localization string-id='worksheetexercise'>Worksheet Exercise</localization>\n    <localization string-id='readingquestion'>Reading Question</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n-->\n    <localization string-id='hint'>Подсказка</localization>\n    <localization string-id='answer'>Отговор</localization>\n    <localization string-id='solution'>Решение</localization>\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n<!--\n    <localization string-id='exercisegroup'>Exercise Group</localization>\n-->\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n<!--\n    <localization string-id='biblio'>Bibliographic Entry</localization>\n-->\n    <!-- Front matter components -->\n    <localization string-id='toc'>Съдържание</localization>\n    <localization string-id='abstract'>Резюме</localization>  <!-- за книга е по-добре „Анотация“ -->\n    <localization string-id='preface'>Предговор</localization><!-- от автора -->\n    <localization string-id='acknowledgement'>Благодарности</localization>\n    <localization string-id='biography'>Биография на автора</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>За автора</localization>\n    <localization string-id='about-authors'>За авторите</localization>\n    <localization string-id='foreword'>Предговор</localization><!-- от другиго -->\n    <localization string-id='dedication'>Посвещение</localization>\n    <localization string-id='colophon'>Библиографско каре</localization>\n    <!-- Runestone Activities -->\n    <!-- <localization string-id='video'>Video</localization> -->\n    <!-- <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n<!--\n    <localization string-id='index'>Index</localization>\n    <localization string-id='jump-to'>Jump to:</localization>\n-->\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Азбучен показалец</localization>\n    <localization string-id='see'>Виж</localization>\n    <localization string-id='also'>Виж също</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Означение</localization>\n    <localization string-id='description'>Описание</localization>\n    <localization string-id='location'>Местоположение</localization>\n    <localization string-id='page'>Страница</localization>\n    <localization string-id='continued'>Продължава на следващата страница</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Главна</localization>\n    <localization string-id='previous'>Предишна</localization>\n    <localization string-id='up'>Нагоре</localization>\n    <localization string-id='next'>Следваща</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>Пред</localization>\n    <localization string-id='up-short'>Наг</localization>\n    <localization string-id='next-short'>След</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n<!--\n    <localization string-id='annotations'>Annotations</localization>\n    <localization string-id='feedback'>Feedback</localization>\n-->\n    <localization string-id='authored'>Направено с</localization>\n    <!-- Search Results display/dialog -->\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>До</localization>\n    <localization string-id='from'>От</localization>\n    <localization string-id='subject'>Тема</localization>\n    <localization string-id='date'>Дата</localization>\n    <localization string-id='copy'>Също до</localization>\n    <localization string-id='enclosure'>Прикачено</localization>\n    <!-- Various -->\n<!--\n    <localization string-id='todo'>To Do</localization>\n    <localization string-id='editor'>Editor</localization>\n    <localization string-id='edition'>Edition</localization>\n    <localization string-id='website'>Website</localization>\n    <localization string-id='copyright'>Copyright</localization>\n-->\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>permalink</localization>\n    <localization string-id='incontext'>In Context</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n<!--\n    <localization string-id='evaluate'>Evaluate</localization>\n    <localization string-id='evaluate'>Evaluate</localization>\n-->\n    <!-- <localization string-id='code'>Code</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\n    <!-- Interactive exercise feedback messages -->\n    <!-- <localization string-id='correct'>Correct</localization> -->\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\n    <!-- <localization string-id='blank'>Blank</localization> -->\n    <!-- <localization string-id='submit'>Submit</localization> -->\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\n    <!-- <localization string-id='activate'>Activate</localization> -->\n    <!-- <localization string-id='reset'>Reset</localization> -->\n    <!-- <localization string-id='array'>array</localization> -->\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print'>Print</localization> -->\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/ca-ES.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- ca-ES, Catalan (Spain) -->\n<!-- Jordi Saludes, jordi.saludes@upc.edu, 2021-07-13 -->\n\n<locale language=\"ca-ES\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id=\"theorem\">Teorema</localization>\n    <localization string-id=\"corollary\">Corol·lari</localization>\n    <localization string-id=\"lemma\">Lema</localization>\n    <localization string-id='algorithm'>Algorisme</localization>\n    <localization string-id='proposition'>Proposició</localization>\n    <localization string-id='claim'>Postulat</localization>\n    <localization string-id='fact'>Fet</localization>\n    <localization string-id='identity'>Identitat</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Demostració</localization>\n    <!-- <localization string-id='argument'>Argument</localization> -->\n    <!-- <localization string-id='justification'>Justification</localization> -->\n    <!-- <localization string-id='reasoning'>Reasoning</localization> -->\n    <!-- <localization string-id='explanation'>Explanation</localization> -->\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Cas</localization>\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axioma</localization>\n    <localization string-id='conjecture'>Conjectura</localization>\n    <localization string-id='principle'>Principi</localization>\n    <localization string-id='heuristic'>Heurística</localization>\n    <localization string-id='hypothesis'>Hipótesi</localization>\n    <localization string-id='assumption'>Hipótesi</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definició</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Equació</localization>\n    <localization string-id='displaymath'>Ecuació destacada</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volum</localization>\n    <localization string-id='book'>Llibre</localization>\n    <localization string-id='article'>Article</localization>\n    <!-- <localization string-id='slideshow'>Slideshow</localization> -->\n    <localization string-id='letter'>Carta</localization>\n    <localization string-id='memo'>Memorándum</localization>\n    <localization string-id='presentation'>Presentació</localization>\n    <!-- Parts of a document -->\n    <localization string-id='frontmatter'>Págines preliminars</localization>\n    <localization string-id='part'>Part</localization>\n    <localization string-id='chapter'>Capítol</localization>\n    <localization string-id='appendix'>Apéndix</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Apèndixs</localization>\n    <localization string-id='section'>Secció</localization>\n    <localization string-id='subsection'>Subsecció</localization>\n    <localization string-id='subsubsection'>Subsubsecció</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Diapositiva</localization>\n    <localization string-id='introduction'>Introducció</localization>\n    <localization string-id='conclusion'>Conclusió</localization>\n    <localization string-id='exercises'>Exercicis</localization>\n    <localization string-id='worksheet'>Full de treball</localization>\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <localization string-id='reading-questions'>Preguntes de comprensió lectora</localization>\n    <localization string-id='solutions'>Solucions</localization>\n    <localization string-id='glossary'>Glossari</localization>\n    <localization string-id='references'>Referències</localization>\n    <!-- Translation needed for Spain Spanish and Catalan -->\n    <localization string-id='backmatter'>Material posterior</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Paràgraf</localization>\n    <localization string-id='subparagraph'>Subparàgraf</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Nota</localization>\n    <localization string-id='convention'>Convenció</localization>\n    <localization string-id='note'>Nota</localization>\n    <localization string-id='observation'>Observació</localization>\n    <localization string-id='warning'>Advertiment</localization>\n    <!-- <localization string-id='insight'>Insight</localization> -->\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Computació</localization>\n    <localization string-id='technology'>Tecnologia</localization>\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n    <!-- <localization string-id='aside'>Aside</localization> -->\n    <!-- <localization string-id='biographical'>Biographical Aside</localization> -->\n    <!-- <localization string-id='historical'>Historical Aside</localization> -->\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Exemple</localization>\n    <localization string-id='question'>Pregunta</localization>\n    <localization string-id='problem'>Problema</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Projecte</localization>\n    <localization string-id='activity'>Activitat</localization>\n    <localization string-id='exploration'>Exploració</localization>\n    <localization string-id='task'>Tasca</localization>\n    <localization string-id='investigation'>Recerca</localization>\n    <!--  -->\n    <!-- assemblages are collections of minimally structured material -->\n    <!-- <localization string-id='assemblage'>Assemblage</localization> -->\n    <!-- <localization string-id='poem'>Poem</localization> -->\n    <!-- Objectives is the block, objective is a list item within -->\n    <!-- <localization string-id='objectives'>Objectives</localization> -->\n    <!-- <localization string-id='objective'>Objective</localization> -->\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- <localization string-id='outcomes'>Outcomes</localization> -->\n    <!-- <localization string-id='outcome'>Outcome</localization> -->\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Figura</localization>\n    <localization string-id='table'>Quadre</localization>\n    <localization string-id='listing'>Llistat</localization>\n    <!-- Translation needed for Spain Spanish -->\n    <!-- <localization string-id='contributor'>Contributor</localization> -->\n    <localization string-id='fn'>Nota al peu</localization>\n    <!-- Lists and their items -->\n    <!-- Translations needed for Spain Spanish -->\n    <localization string-id='list'>Llista</localization>\n    <localization string-id='li'>Ítem</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Terme</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Paràgraf</localization>\n    <localization string-id='blockquote'>Cita</localization>\n    <!-- <localization string-id='pre'>Code Block</localization> -->\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragment</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Exercici</localization>\n    <!-- Translation needed for Spain Spanish -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <localization string-id='inlineexercise'>Punt de control</localization>\n    <!-- <localization string-id='worksheetexercise'>Worksheet Exercise</localization> -->\n    <!-- <localization string-id='readingquestion'>Reading Question</localization> -->\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Pista</localization>\n    <localization string-id='answer'>Resposta</localization>\n    <localization string-id='solution'>Solució</localization>\n    <!-- Translation needed for Spain Spanish -->\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <!-- <localization string-id='exercisegroup'>Exercise Group</localization> -->\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <!-- <localization string-id='biblio'>Bibliographic Entry</localization> -->\n    <!-- Front matter components -->\n    <localization string-id='toc'>Índex</localization>\n    <localization string-id='abstract'>Resum</localization>\n    <localization string-id='preface'>Prefaci</localization>\n    <localization string-id='acknowledgement'>Agraïments</localization>\n    <localization string-id='biography'>Biografia de l'autor</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>Sobre l'autor</localization>\n    <localization string-id='about-authors'>Sobre els autors</localization>\n    <localization string-id='foreword'>Pròleg</localization>\n    <localization string-id='dedication'>Dedicatòria</localization>\n    <localization string-id='colophon'>Colofó</localization>\n    <!-- Runestone Activities -->\n    <!-- <localization string-id='video'>Video</localization> -->\n    <!-- <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Índex alfabètico</localization>\n    <localization string-id='jump-to'>Passeu a:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Índex alfabètico</localization>\n    <localization string-id='see'>Vegeu</localization>\n    <localization string-id='also'>Vegeu també</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Símbol</localization>\n    <localization string-id='description'>Descripció</localization>\n    <localization string-id='location'>Ubicació</localization>\n    <localization string-id='page'>Página</localization>\n    <localization string-id='continued'>Continua a la página següent</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Salta al contingut principal</localization>\n    <localization string-id='previous'>Anterior</localization>\n    <localization string-id='up'>Amunt</localization>\n    <localization string-id='next'>Següent</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <!-- TODO: SHORTEN THESE -->\n    <localization string-id='previous-short'>Anterior</localization>\n    <localization string-id='up-short'>Amunt</localization>\n    <localization string-id='next-short'>Següent</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Anotacions</localization>\n    <localization string-id='feedback'>Comentari</localization>\n    <localization string-id='authored'>Fet amb PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>A</localization>\n    <localization string-id='from'>De</localization>\n    <localization string-id='subject'>Assumpte</localization>\n    <localization string-id='date'>Data</localization>\n    <localization string-id='copy'>Còpia a</localization>\n    <localization string-id='enclosure'>Adjunt</localization>\n    <!-- Various -->\n    <localization string-id='todo'>A fer</localization>\n    <localization string-id='editor'>Editor</localization>\n    <localization string-id='edition'>Edició</localization> \n    <!-- <localization string-id='website'>Website</localization> -->\n    <localization string-id='copyright'>Drets d'autor</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>enllaç permanent</localization>\n    <localization string-id='incontext'>En Context</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Avaluar</localization>\n    <localization string-id='code'>Codi</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\n    <!-- Interactive exercise feedback messages -->\n    <!-- <localization string-id='correct'>Correct</localization> -->\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\n    <!-- <localization string-id='blank'>Blank</localization> -->\n    <!-- <localization string-id='submit'>Submit</localization> -->\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\n    <!-- <localization string-id='activate'>Activate</localization> -->\n    <!-- <localization string-id='reset'>Reset</localization> -->\n    <!-- <localization string-id='array'>array</localization> -->\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print'>Print</localization> -->\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/cs-CZ.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- cs-CZ, Czech (Czechia) -->\n<!-- Jiri Lebl, lebl@okstate.edu, 2023-05-21   -->\n\n<locale language=\"cs-CZ\" direction=\"ltr\"\n        quote-primary=\"down-up-double\" quote-secondary=\"down-up-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Teorém</localization>\n    <localization string-id='corollary'>Důsledek</localization>\n    <localization string-id='lemma'>Lemma</localization>\n    <localization string-id='algorithm'>Algoritmus</localization>\n    <localization string-id='proposition'>Věta</localization>\n    <localization string-id='claim'>Tvrzení</localization>\n    <localization string-id='fact'>Fakt</localization>\n    <localization string-id='identity'>Rovnost</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Důkaz</localization>\n    <localization string-id='argument'>Argument</localization>\n    <localization string-id='justification'>Odůvodnění</localization>\n    <localization string-id='reasoning'>Argumentace</localization>\n    <localization string-id='explanation'>Vysvětlení</localization>\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axiom</localization>\n    <localization string-id='conjecture'>Domněnka</localization>\n    <localization string-id='principle'>Princip</localization>\n    <localization string-id='heuristic'>Heurestika</localization>\n    <localization string-id='hypothesis'>Hypotéza</localization>\n    <localization string-id='assumption'>Předpoklad</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definice</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Rovnice</localization>\n    <localization string-id='displaymath'>Zobrazená matematika</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Díl</localization>\n    <localization string-id='book'>Kniha</localization>\n    <localization string-id='article'>Článek</localization>\n    <localization string-id='slideshow'>Prezentace</localization>\n    <localization string-id='letter'>Dopis</localization>\n    <localization string-id='memo'>Sdělení</localization>\n    <localization string-id='presentation'>Prezentace</localization>\n    <!-- Parts of a document -->\n    <localization string-id='frontmatter'>Úvodní část</localization>\n    <localization string-id='part'>Část</localization>\n    <localization string-id='chapter'>Kapitola</localization>\n    <localization string-id='appendix'>Dodatek</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Dodatky</localization>\n    <localization string-id='section'>Sekce</localization>\n    <localization string-id='subsection'>Podsekce</localization>\n    <localization string-id='subsubsection'>Podpodsekce</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Slajd</localization>\n    <localization string-id='introduction'>Úvod</localization>\n    <localization string-id='conclusion'>Závěr</localization>\n    <localization string-id='exercises'>Cvičení</localization>\n    <localization string-id='worksheet'>Pracovní list</localization>\n    <localization string-id='handout'>Handout</localization>\n    <localization string-id='reading-questions'>Otázky ze čtení</localization>\n    <localization string-id='solutions'>Řešení</localization>\n    <localization string-id='glossary'>Vysvětlivky</localization>\n    <localization string-id='references'>Odkazy</localization>\n    <localization string-id='backmatter'>Závěrečná část</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Odstavce</localization>\n    <localization string-id='subparagraph'>Pododstavec</localization>\n    <!-- Adjustments to titles of divisions -->\n    <localization string-id='group'>Skupina</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Případ</localization>\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Poznámka</localization>\n    <localization string-id='convention'>Konvence</localization>\n    <localization string-id='note'>Poznámka</localization>\n    <localization string-id='observation'>Postřeh</localization>\n    <localization string-id='warning'>Varování</localization>\n    <localization string-id='insight'>Nahléd</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Výpočet</localization>\n    <localization string-id='technology'>Technologie</localization>\n    <localization string-id='data'>Data</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Poznámka stranou</localization>\n    <localization string-id='biographical'>Biografická poznámka</localization>\n    <localization string-id='historical'>Historická poznámka</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Příklad</localization>\n    <localization string-id='question'>Otázka</localization>\n    <localization string-id='problem'>Problém</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Projekt</localization>\n    <localization string-id='activity'>Aktivita</localization>\n    <localization string-id='exploration'>Průzkum</localization>\n    <localization string-id='task'>Úkol</localization>\n    <localization string-id='investigation'>Výzkum</localization>\n    <!--  -->\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Soustava</localization>\n    <localization string-id='poem'>Báseň</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Cíle</localization>\n    <localization string-id='objective'>Cíl</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <localization string-id='outcomes'>Výsledky</localization>\n    <localization string-id='outcome'>Výsledek</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>Nevyřešená otázka</localization>\n    <localization string-id='openproblem'>Nevyřešený problém</localization>\n    <localization string-id='openconjecture'>Nevyřešená domněnka</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>Kontext</localization>\n    <localization string-id='discussion'>Diskuse</localization>\n    <localization string-id='opinion'>Názor</localization>\n    <localization string-id='status'>Status</localization>\n    <localization string-id='suggestion'>Návrh</localization>\n    <!--  -->\n    <localization string-id='figure'>Obrázek</localization>\n    <localization string-id='table'>Tabulka</localization>\n    <localization string-id='listing'>Výpis</localization>\n    <localization string-id='fn'>Vysvětlivka</localization>\n    <localization string-id='contributor'>Přispěvatel</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>Seznam</localization>\n    <localization string-id='li'>Bod</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Termín</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Odstavec</localization>\n    <localization string-id='blockquote'>Citát</localization>\n    <localization string-id='pre'>Blok kódu</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragment</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Cvičení</localization>\n    <!-- Translation needed for Czech Czech -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <localization string-id='inlineexercise'>Zkouška</localization>\n    <localization string-id='worksheetexercise'>Cvičení pracovního listu</localization>\n    <localization string-id='readingquestion'>Otázka ze čtení</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Nápověda</localization>\n    <localization string-id='answer'>Odpověď</localization>\n    <localization string-id='solution'>Řešení</localization>\n    <localization string-id='subexercises'>Dílčí cvičení</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Skupina cvičení</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Bibliografický údaj</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>Obsah</localization>\n    <localization string-id='abstract'>Abstrakt</localization>\n    <localization string-id='preface'>Předmluva</localization>\n    <localization string-id='acknowledgement'>Poděkování</localization>\n    <localization string-id='biography'>Životopis autora</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>O autoru</localization>\n    <localization string-id='about-authors'>O autorech</localization>\n    <localization string-id='foreword'>Předmluva</localization>\n    <localization string-id='dedication'>Věnování</localization>\n    <localization string-id='colophon'>Kolofon</localization>\n    <!-- Runestone Activities -->\n    <localization string-id='video'>Video</localization>\n    <localization string-id='program'>Program</localization>\n    <localization string-id='true'>Pravda</localization>\n    <localization string-id='false'>Nepravda</localization>\n    <localization string-id='or'>Nebo</localization>\n    <localization string-id='either'>Buď</localization>\n    <localization string-id='uncategorized'>Nezařazeno</localization>\n    <localization string-id='query'>Otázka</localization>\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Rejstřík</localization>\n    <localization string-id='jump-to'>Skoč na:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Rejstřík</localization>\n    <localization string-id='see'>Viz</localization>\n    <localization string-id='also'>Viz také</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Symbol</localization>\n    <localization string-id='description'>Popis</localization>\n    <localization string-id='location'>Pozice</localization>\n    <localization string-id='page'>Stránka</localization>\n    <localization string-id='continued'>Pokračuje na další straně</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Přeskočit na hlavní obsah</localization>\n    <localization string-id='previous'>Předchozí</localization>\n    <localization string-id='up'>Nahoru</localization>\n    <localization string-id='next'>Další</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>Zpět</localization>\n    <localization string-id='up-short'>Výš</localization>\n    <localization string-id='next-short'>Dál</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Anotace</localization>\n    <localization string-id='feedback'>Odezva</localization>\n    <localization string-id='authored'>Napsáno v PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <localization string-id='search-results-heading'>Výsledky hledání</localization>\n    <localization string-id='no-search-results'>Žádné výsledky</localization>\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>Komu</localization>\n    <localization string-id='from'>Od</localization>\n    <localization string-id='subject'>Předmět</localization>\n    <localization string-id='date'>Datum</localization>\n    <localization string-id='copy'>Kopie</localization>\n    <localization string-id='enclosure'>Příloha</localization>\n    <!-- Various -->\n    <localization string-id='todo'>To Do</localization>\n    <localization string-id='editor'>Editor</localization>\n    <localization string-id='edition'>Edice</localization>\n    <localization string-id='website'>Webová stránka</localization>\n    <localization string-id='copyright'>Copyright</localization>\n    <localization string-id='keywords'>Kličová slova</localization>\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>permalink</localization>\n    <localization string-id='incontext'>V Souvislosti</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Ohodnotit</localization>\n    <localization string-id='code'>Kód</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Instrukce</localization>\n    <!-- Interactive exercise feedback messages -->\n    <localization string-id='correct'>Správně</localization>\n    <localization string-id='incorrect'>Nesprávně</localization>\n    <localization string-id='blank'>Prázdné</localization>\n    <localization string-id='submit'>Podat</localization>\n    <localization string-id='check-responses'>Zkontrolvat odpovědi</localization>\n    <localization string-id='reveal'>Odkrýt</localization>\n    <localization string-id='randomize'>Randomizovat</localization>\n    <localization string-id='activate'>Aktivovat</localization>\n    <localization string-id='reset'>Reset</localization>\n    <localization string-id='array'>pole</localization>\n    <localization string-id='papersize'>Velikost papíru</localization>\n    <!-- Additional printing options -->\n    <localization string-id=\"printing-options\">Další možnosti tisku</localization>\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <localization string-id=\"hide-hints\">Zakrýt nápovědu</localization>\n    <localization string-id=\"hide-answers\">Zakrýt odpovědi</localization>\n    <localization string-id=\"hide-solutions\">Zakrýt řešení</localization>\n    <localization string-id=\"print-header\">Tisknout záhlaví</localization>\n    <localization string-id=\"print-footer\">Tisknout zápatí</localization>\n    <localization string-id=\"first-page\">První strana</localization>\n    <localization string-id=\"running\">Živé</localization>\n    <localization string-id=\"highlight-workspace\">Zvýraznit pracovní plochu</localization>\n    <localization string-id='print'>Tisk</localization>\n    <localization string-id='print-preview'>Náhled tisku</localization>\n    <localization string-id='close'>Zavřít</localization>\n    <localization string-id='open-new-tab'>Otevřít v nové kartě</localization>\n</locale>\n"
  },
  {
    "path": "xsl/localizations/de-DE.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- de-DE, German (Germany) -->\n<!-- Karl-Dieter Crisman, kcrisman@gmail.com, 2020-06-01   -->\n\n<locale language=\"de-DE\" direction=\"ltr\"\n        quote-primary=\"down-up-double\" quote-secondary=\"down-up-single\">\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Satz</localization>\n    <localization string-id='corollary'>Korollar</localization>\n    <localization string-id='lemma'>Hilfssatz</localization>\n    <localization string-id='algorithm'>Algorithmus</localization>\n    <localization string-id='proposition'>Proposition</localization>\n    <localization string-id='claim'>Behauptung</localization>\n    <localization string-id='fact'>Fakt</localization>\n    <localization string-id='identity'>Identität</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Beweis</localization>\n    <!-- <localization string-id='argument'>Argument</localization> -->\n    <!-- <localization string-id='justification'>Justification</localization> -->\n    <!-- <localization string-id='reasoning'>Reasoning</localization> -->\n    <!-- <localization string-id='explanation'>Explanation</localization> -->\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Fall</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axiom</localization>\n    <localization string-id='conjecture'>Vermutung</localization>\n    <localization string-id='principle'>Prinzip</localization>\n<!--    <localization string-id='heuristic'>Heuristic</localization> -->\n    <localization string-id='hypothesis'>Hypothese</localization>\n    <localization string-id='assumption'>Voraussetzung</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definition</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Gleichung</localization>\n    <!-- <localization string-id='displaymath'>Display Mathematics</localization> -->\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Band</localization>\n    <localization string-id='book'>Buch</localization>\n    <localization string-id='article'>Artikel</localization>\n    <!-- <localization string-id='slideshow'>Slideshow</localization> -->\n    <localization string-id='letter'>Brief</localization>\n    <localization string-id='memo'>Memo</localization> <!-- oder Memorandum? -->\n    <localization string-id='presentation'>Vortrag</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n<!--    <localization string-id='frontmatter'>Front Matter</localization> -->\n    <localization string-id='part'>Teil</localization>\n    <localization string-id='chapter'>Kapitel</localization>\n    <localization string-id='appendix'>Anhang</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <!-- <localization string-id='appendices'>Appendices</localization> -->\n    <localization string-id='section'>Abschnitt</localization>\n    <localization string-id='subsection'>Unterabschnitt</localization>\n    <localization string-id='subsubsection'>Unterunterabschnitt</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <!-- <localization string-id='slide'>Slide</localization> -->\n    <localization string-id='introduction'>Einleitung</localization>\n    <localization string-id='conclusion'>Schluss</localization>\n    <localization string-id='exercises'>Übungen</localization>\n    <localization string-id='worksheet'>Arbeitsblatt</localization>\n    <!-- <localization string-id='handout'>Handout</localization>-->\n    <localization string-id='reading-questions'>Lesefragen</localization>\n    <localization string-id='solutions'>Lösungen</localization>\n    <!-- Wörterverzeichnis scheint viel weniger benutzt zu sein, s. Google ngram -->\n    <localization string-id='glossary'>Glossar</localization> \n    <!-- oder Bibliographie wird auch benutzt -->\n    <localization string-id='references'>Literaturverzeichnis</localization>\n<!--    <localization string-id='backmatter'>Back Matter</localization> -->\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Absätze</localization>\n    <localization string-id='subparagraph'>Unterabsatz</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Bemerkung</localization>\n<!--    <localization string-id='convention'>Convention</localization> -->\n    <localization string-id='note'>Vermerk</localization>\n    <!-- Bemerkung versus Anmerkung - I have reserved Anmerkung for footnote -->\n    <localization string-id='observation'>Bemerkung</localization>\n    <localization string-id='warning'>Warnung</localization>\n<!--    <localization string-id='insight'>Insight</localization> -->\n    <!-- COMPUTATION-LIKE blocks -->\n<!--    <localization string-id='computation'>Computation</localization> -->\n    <localization string-id='technology'>Technologie</localization>\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n<!--    <localization string-id='aside'>Aside</localization> -->\n<!--    <localization string-id='biographical'>Biographical Aside</localization> -->\n<!--    <localization string-id='historical'>Historical Aside</localization> -->\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Beispiel</localization>\n    <localization string-id='question'>Frage</localization>\n    <localization string-id='problem'>Problem</localization>\n    <!-- PROJECT-LIKE blocks -->\n<!--    <localization string-id='project'>Project</localization> -->\n<!--    <localization string-id='activity'>Activity</localization> -->\n<!--    <localization string-id='exploration'>Exploration</localization> -->\n    <localization string-id='task'>Aufgabe</localization>\n<!--    <localization string-id='investigation'>Investigation</localization> -->\n    <!-- assemblages are collections of minimally structured material -->\n<!--    <localization string-id='assemblage'>Assemblage</localization> -->\n    <localization string-id='poem'>Gedicht</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n<!--    <localization string-id='objectives'>Objectives</localization> -->\n<!--    <localization string-id='objective'>Objective</localization> -->\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n<!--    <localization string-id='outcomes'>Outcomes</localization> -->\n<!--    <localization string-id='outcome'>Outcome</localization> -->\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Figur</localization> <!-- Duden 4b für Figur -->\n    <localization string-id='table'>Tabelle</localization>\n<!--    <localization string-id='listing'>Listing</localization> -->\n    <localization string-id='fn'>Anmerkung</localization>\n<!--    <localization string-id='contributor'>Contributor</localization> -->\n    <!-- Lists and their items -->\n    <localization string-id='list'>Liste</localization>\n<!--    <localization string-id='li'>Item</localization> -->\n    <!-- A term (word) defined in a glossary item -->\n<!--    <localization string-id='gi'>Term</localization> -->\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Absatz</localization>\n    <localization string-id='blockquote'>Zitat</localization>\n    <!-- <localization string-id='pre'>Code Block</localization> -->\n    <!-- Literate programming, a chunk of computer code -->\n    <!-- <localization string-id='fragment'>Fragment</localization> -->\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Übung</localization>\n<!--    <localization string-id='inlineexercise'>Checkpoint</localization> -->\n    <localization string-id='worksheetexercise'>Arbeitsübung</localization>\n    <localization string-id='readingquestion'>Lesefrage</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Andeutung</localization>\n    <localization string-id='answer'>Antwort</localization>\n    <localization string-id='solution'>Lösung</localization>\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Übungsgruppe</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n<!--    <localization string-id='biblio'>Bibliographic Entry</localization> -->\n    <!-- Front matter components -->\n    <!-- this one is tough because for short version like in navigation bar Inhalt is fine, but long one in print probably Inhaltsverzeichnis -->\n    <localization string-id='toc'>Inhalt</localization>\n    <localization string-id='abstract'>Zusammenfassung</localization><!-- or is Abstrakt used? -->\n    <localization string-id='preface'>Einleitung</localization>\n<!--    <localization string-id='acknowledgement'>Acknowledgements</localization> -->\n<!--    <localization string-id='biography'>Author Biography</localization> -->\n    <!-- singular and plural titles for biography subdivision -->\n<!--    <localization string-id='about-author'>About the Author</localization> -->\n<!--    <localization string-id='about-authors'>About the Authors</localization> -->\n    <localization string-id='foreword'>Vorwort</localization>\n<!--    <localization string-id='dedication'>Dedication</localization> -->\n<!--    <localization string-id='colophon'>Colophon</localization> -->\n    <!-- Runestone Activities -->\n    <!-- <localization string-id='video'>Video</localization> -->\n    <!-- <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <!-- oder auch Index, siehe http://www.d-indexer.org/frag/grundsatz.html#index -->\n    <localization string-id='index'>Register</localization>\n<!--    <localization string-id='jump-to'>Jump to:</localization> -->\n    <!-- Parts of the Index -->\n    <!-- see https://online.liverpooluniversitypress.co.uk/doi/pdf/10.3828/indexer.2006.21 for lots more info on peculiarities of German indexing we cannot hope to follow -->\n    <localization string-id='index'>Register</localization>\n    <localization string-id='see'>siehe</localization>\n    <localization string-id='also'>siehe auch</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Symbol</localization>\n    <localization string-id='description'>Beschreibung</localization>\n    <localization string-id='location'>Stelle</localization>\n    <localization string-id='page'>Seite</localization>\n    <localization string-id='continued'>Nächste Seite weiter</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Weiter zum Hauptinhalt</localization>\n    <!-- I am not at all sure of the state of the art on this convention -->\n    <localization string-id='previous'>Zurück</localization>\n    <localization string-id='up'>Oben</localization>\n    <localization string-id='next'>Weiter</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <!-- I am even less sure here - can one really shorten \"Weiter\"? -->\n    <localization string-id='previous-short'>Zu</localization>\n    <localization string-id='up-short'>Ob</localization>\n    <localization string-id='next-short'>We</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n<!--    <localization string-id='annotations'>Annotations</localization> -->\n<!--    <localization string-id='feedback'>Feedback</localization> -->\n    <!-- This phrase should suggest that PreTeXt is the source -->\n    <!-- language that makes a particular output possible      -->\n    <localization string-id='authored'>Mit PreTeXt gebaut</localization>\n    <!-- Search Results display/dialog -->\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>An</localization>\n    <localization string-id='from'>Von</localization>\n<!--    <localization string-id='subject'>Subject</localization> -->\n<!--    <localization string-id='date'>Date</localization> -->\n<!--    <localization string-id='copy'>cc</localization> -->\n<!--    <localization string-id='enclosure'>encl</localization> -->\n    <!-- Various -->\n<!--    <localization string-id='todo'>To Do</localization> -->\n    <!-- Herausgeber seems more at publisher, but not always -->\n    <localization string-id='editor'>Redakteur</localization>\n    <localization string-id='edition'>Auflage</localization>\n    <localization string-id='website'>Website</localization>\n    <localization string-id='copyright'>Urheberrechte</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>Permalink</localization>\n    <localization string-id='incontext'>Im Zusammenhang</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <localization string-id='permalink-tooltip'>Kopiere Bezeichnung und Link zu</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Though at least one Sage cell installation uses Auswerten instead -->\n    <localization string-id='evaluate'>Ausführen</localization>\n<!--    <localization string-id='code'>Code</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\n    <!-- Interactive exercise feedback messages -->\n    <!-- <localization string-id='correct'>Correct</localization> -->\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\n    <!-- <localization string-id='blank'>Blank</localization> -->\n    <!-- <localization string-id='submit'>Submit</localization> -->\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\n    <!-- <localization string-id='activate'>Activate</localization> -->\n    <!-- <localization string-id='reset'>Reset</localization> -->\n    <!-- <localization string-id='array'>array</localization> -->\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print'>Print</localization> -->\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/en-US.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- en-US, English (United States) -->\n<!-- Robert A. Beezer, beezer@pugetsound.edu, 2014-08-11   -->\n\n<!-- Every localization should specify the direction of the language, -->\n<!-- there is no assumed default.  Left-to-right is \"ltr\" and         -->\n<!-- right-to-left is \"rtl\".  Provide these exactly as written since  -->\n<!-- they can migrate untouched into output (e.g. HTML).              -->\n\n<!-- Every localization should specify two \"styles\" for how       -->\n<!-- primary/outer quote marks are given (double quotes in        -->\n<!-- English) and how secondary/inner quote marks are given       -->\n<!-- (single quotes in English).  Here are the extant styles      -->\n<!-- and crude Unicode versions of how they might look:           -->\n<!--                                                              -->\n<!--     english-single          ‘word’                           -->\n<!--     english-double          “word”                           -->\n<!--     angle-single            ‹word›                           -->\n<!--     angle-double            «word»                           -->\n<!--     angle-single-space      ‹ word ›                         -->\n<!--     angle-double-space      « word »                         -->\n<!--     down-up-single          ‚word’                           -->\n<!--     down-up-double          „word”                           -->\n<!--                                                              -->\n<!-- Maintainers: please use the  pretext-dev  group to discuss   -->\n<!-- what is best for your language.  If a style exists, then it  -->\n<!-- is just a simple edit of the default English values.  New    -->\n<!-- styles require Unicode values and LaTeX macros to be         -->\n<!-- implemented, work which RAB can do easily.  Examples in the  -->\n<!-- sample article can be updated with new languages/countries,  -->\n<!-- or created with iconic quotes from the specific language.    -->\n<!-- The table at Wikipedia is not a bad thing to consult, even   -->\n<!-- if it seems to have some inaccuracies.                       -->\n<!--                                                              -->\n<!--     https://en.wikipedia.org/wiki/Quotation_mark             -->\n\n<locale language=\"en-US\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Theorem</localization>\n    <localization string-id='corollary'>Corollary</localization>\n    <localization string-id='lemma'>Lemma</localization>\n    <localization string-id='algorithm'>Algorithm</localization>\n    <localization string-id='proposition'>Proposition</localization>\n    <localization string-id='claim'>Claim</localization>\n    <localization string-id='fact'>Fact</localization>\n    <localization string-id='identity'>Identity</localization>\n    <!-- PROOF-LIKE -->\n    <!-- We know these five names for PROOF-LIKE have subtle shades of meaning. -->\n    <!-- Provide a good translation for \"proof\" itself, and do your best with   -->\n    <!-- the others.  It is highly likely authors will rename one or more of    -->\n    <!-- the others.                                                            -->\n    <localization string-id='proof'>Proof</localization>\n    <localization string-id='argument'>Argument</localization>\n    <localization string-id='justification'>Justification</localization>\n    <localization string-id='reasoning'>Reasoning</localization>\n    <localization string-id='explanation'>Explanation</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Case</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axiom</localization>\n    <localization string-id='conjecture'>Conjecture</localization>\n    <localization string-id='principle'>Principle</localization>\n    <localization string-id='heuristic'>Heuristic</localization>\n    <localization string-id='hypothesis'>Hypothesis</localization>\n    <localization string-id='assumption'>Assumption</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definition</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <!-- The first is for elements like \"me\", \"men\", and \"mrow\"                     -->\n    <!-- The second is for elements like \"md\" and \"mdn\"                             -->\n    <localization string-id='equation'>Equation</localization>\n    <localization string-id='displaymath'>Display Mathematics</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volume</localization>\n    <localization string-id='book'>Book</localization>\n    <localization string-id='article'>Article</localization>\n    <localization string-id='letter'>Letter</localization>\n    <localization string-id='slideshow'>Slideshow</localization>\n    <localization string-id='memo'>Memo</localization>\n    <localization string-id='presentation'>Presentation</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>Front Matter</localization>\n    <localization string-id='part'>Part</localization>\n    <localization string-id='chapter'>Chapter</localization>\n    <localization string-id='appendix'>Appendix</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Appendices</localization>\n    <localization string-id='section'>Section</localization>\n    <localization string-id='subsection'>Subsection</localization>\n    <localization string-id='subsubsection'>Subsubsection</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Slide</localization>\n    <localization string-id='introduction'>Introduction</localization>\n    <localization string-id='conclusion'>Conclusion</localization>\n    <localization string-id='exercises'>Exercises</localization>\n    <localization string-id='worksheet'>Worksheet</localization>\n    <localization string-id='handout'>Handout</localization>\n    <localization string-id='reading-questions'>Reading Questions</localization>\n    <localization string-id='solutions'>Solutions</localization>\n    <localization string-id='glossary'>Glossary</localization>\n    <localization string-id='references'>References</localization>\n    <localization string-id='backmatter'>Back Matter</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Paragraphs</localization>\n    <localization string-id='subparagraph'>Subparagraph</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- When the a \"worksheet\" or \"exercises\" is marked as being  -->\n    <!-- \"group work\" the default title gets prefaced with \"Group\". -->\n    <localization string-id='group'>Group</localization>\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Remark</localization>\n    <localization string-id='convention'>Convention</localization>\n    <localization string-id='note'>Note</localization>\n    <localization string-id='observation'>Observation</localization>\n    <localization string-id='warning'>Warning</localization>\n    <localization string-id='insight'>Insight</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Computation</localization>\n    <localization string-id='technology'>Technology</localization>\n    <localization string-id='data'>Data</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Aside</localization>\n    <localization string-id='biographical'>Biographical Aside</localization>\n    <localization string-id='historical'>Historical Aside</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Example</localization>\n    <localization string-id='question'>Question</localization>\n    <localization string-id='problem'>Problem</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Project</localization>\n    <localization string-id='activity'>Activity</localization>\n    <localization string-id='exploration'>Exploration</localization>\n    <localization string-id='task'>Task</localization>\n    <localization string-id='investigation'>Investigation</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Assemblage</localization>\n    <localization string-id='poem'>Poem</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Objectives</localization>\n    <localization string-id='objective'>Objective</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n    <localization string-id='outcomes'>Outcomes</localization>\n    <localization string-id='outcome'>Outcome</localization>\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>Open Question</localization>\n    <localization string-id='openproblem'>Open Problem</localization>\n    <localization string-id='openconjecture'>Open Conjecture</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>Context</localization>\n    <localization string-id='discussion'>Discussion</localization>\n    <localization string-id='opinion'>Opinion</localization>\n    <localization string-id='status'>Status</localization>\n    <localization string-id='suggestion'>Suggestion</localization>\n    <!--  -->\n    <localization string-id='figure'>Figure</localization>\n    <localization string-id='table'>Table</localization>\n    <localization string-id='listing'>Listing</localization>\n    <localization string-id='fn'>Footnote</localization>\n    <localization string-id='contributor'>Contributor</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>List</localization>\n    <localization string-id='li'>Item</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Term</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Paragraph</localization>\n    <localization string-id='blockquote'>Quotation</localization>\n    <!-- The \"pre\" element is short for \"preformatted text\".  PreTeXt uses it -->\n    <!-- more as paragraph, rendered in monospace, with newlines respected. -->\n    <localization string-id='pre'>Code Block</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragment</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- An \"exercise\", at any level, within an \"exercises\" division is a          -->\n    <!-- \"divisional\" exercise and the string employed is 'divisionalexercise'.    -->\n    <!-- An \"exercise\" whose parent is a division (chapter, section, etc) we       -->\n    <!-- call an \"inline exercise\" and the string employed is 'inlineexercise'.    -->\n    <!-- And an \"exercise\" in a \"worksheet\" is a 'worksheetexercise'.              -->\n    <!-- And an \"exercise\" in a \"reading-questions\" is a 'readingquestion'.         -->\n    <!-- It is important to use different translations so that a text with         -->\n    <!-- different types of exercises do not have ambiguous cross-references       -->\n    <!-- (there is an example of this at the start of one of the later             -->\n    <!-- sections of the sample article).                                          -->\n    <!--                                                                           -->\n    <!-- In English, an \"Exercise\" is something you do that has a beneficial       -->\n    <!-- outcome, such as \"I am going to the gym to exercise.\"  A \"Checkpoint\"     -->\n    <!-- is something you must do before you do something else.  Another use of    -->\n    <!-- the term is a location on a roadway where you must stop for the      -->\n    <!-- police to do an inspection. A worksheet is a collection of activities or  -->\n    <!-- problems, typically printed on paper, which might be used in a classroom. -->\n    <localization string-id='divisionalexercise'>Exercise</localization>\n    <localization string-id='inlineexercise'>Checkpoint</localization>\n    <localization string-id='worksheetexercise'>Worksheet Exercise</localization>\n    <localization string-id='readingquestion'>Reading Question</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Hint</localization>\n    <localization string-id='answer'>Answer</localization>\n    <localization string-id='solution'>Solution</localization>\n    <!-- A subdivision of an \"exercises\" section -->\n    <localization string-id='subexercises'>Subexercises</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Exercise Group</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Bibliographic Entry</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>Contents</localization>\n    <localization string-id='abstract'>Abstract</localization>\n    <localization string-id='preface'>Preface</localization>\n    <localization string-id='acknowledgement'>Acknowledgements</localization>\n    <localization string-id='biography'>Author Biography</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>About the Author</localization>\n    <localization string-id='about-authors'>About the Authors</localization>\n    <localization string-id='foreword'>Foreword</localization>\n    <localization string-id='dedication'>Dedication</localization>\n    <localization string-id='colophon'>Colophon</localization>\n    <!-- Runestone Activities -->\n    <!-- These terms will appear in student activity/engagement -->\n    <!-- reports for an instructor of a Runestone course.       -->\n    <!-- Normally they will not be apparent to a reader.        -->\n    <localization string-id='video'>Video</localization>\n    <localization string-id='program'>Program</localization>\n    <!-- Runestone Exercises -->\n    <!-- These terms will appear in static versions of  -->\n    <!-- Runestone exercises, such as a True/False question. -->\n    <localization string-id='true'>True</localization>\n    <localization string-id='false'>False</localization>\n    <localization string-id='or'>Or</localization>\n    <localization string-id='either'>Either</localization>\n    <localization string-id='uncategorized'>Uncategorized</localization>\n    <localization string-id='query'>Query</localization>\n    <!-- \"ActiveCode\" and \"CodeLens\" are Runestone-constructs -->\n    <!-- and so really *should not* be translated.            -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='jump-to'>Jump to:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='see'>See</localization>\n    <localization string-id='also'>See also</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Symbol</localization>\n    <localization string-id='description'>Description</localization>\n    <localization string-id='location'>Location</localization>\n    <localization string-id='page'>Page</localization>\n    <localization string-id='continued'>Continued on next page</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Skip to main content</localization>\n    <localization string-id='previous'>Previous</localization>\n    <localization string-id='up'>Up</localization>\n    <localization string-id='next'>Next</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>Prev</localization>\n    <localization string-id='up-short'>Up</localization>\n    <localization string-id='next-short'>Next</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Annotations</localization>\n    <localization string-id='feedback'>Feedback</localization>\n    <!-- This phrase should suggest that PreTeXt is the source -->\n    <!-- language that makes a particular output possible      -->\n    <localization string-id='authored'>Authored in PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <!-- The result of a search as part of HTML output will throw up       -->\n    <!-- an overlay window with the search results.  \"Search Results\"      -->\n    <!-- is like a heading.  It renders like \"Search Results: algorithm\".  -->\n    <!-- When a reader uses a term that produces no results (perhaps they  -->\n    <!-- misspell the search term) then they get a message to that effect. -->\n    <!-- Capitalize \"Search Results\" - used as a heading, no punctuation   -->\n    <localization string-id='search-results-heading'>Search Results</localization>\n    <!-- Short phrase, no punctuation -->\n    <localization string-id='no-search-results'>No results</localization>\n   <!-- Parts of memos and letters -->\n    <localization string-id='to'>To</localization>\n    <localization string-id='from'>From</localization>\n    <localization string-id='subject'>Subject</localization>\n    <localization string-id='date'>Date</localization>\n    <localization string-id='copy'>cc</localization>\n    <localization string-id='enclosure'>encl</localization>\n    <!-- Various -->\n    <localization string-id='todo'>To Do</localization>\n    <localization string-id='editor'>Editor</localization>\n    <localization string-id='edition'>Edition</localization>\n    <localization string-id='website'>Website</localization>\n    <localization string-id='copyright'>Copyright</localization>\n    <localization string-id='keywords'>Keywords</localization>\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>permalink</localization>\n    <localization string-id='incontext'>In Context</localization>\n    <!-- Static representations of audio, video, and interactive  -->\n    <!-- elements link to the HTML version.  \"standalone\" is for  -->\n    <!-- the dedicated page, \"embed\" is for the embeddable iframe -->\n    <localization string-id='standalone'>Standalone</localization>\n    <localization string-id='embed'>Embed</localization>\n    <!-- A permalink icon in HTML output will have a tooltip (on hover) -->\n    <!-- that says something like                                       -->\n    <!--                                                                -->\n    <!--    Copy heading and permalink for Theorem 5.8 The Chain Rule   -->\n    <!--    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                              -->\n    <!--                                                                -->\n    <!-- The indicated portion will be localized.  \"heading\" might be   -->\n    <!-- replaced by \"description\" if that is easier to translate.      -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <localization string-id='evaluate'>Evaluate</localization>\n    <!-- <localization string-id='code'>Code</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Instructions</localization>\n    <!-- Interactive exercise feedback messages                   -->\n    <!-- These might be part of a feedback message for submitting -->\n    <!-- an answer, e.g. \"Correct!\" or \"Correct: 50%\".            -->\n    <localization string-id='correct'>Correct</localization>\n    <localization string-id='incorrect'>Incorrect</localization>\n    <!-- To signal that a reader left an answer blank             -->\n    <localization string-id='blank'>Blank</localization>\n    <!-- Submit or check responses                                -->\n    <localization string-id='submit'>Submit</localization>\n    <localization string-id='check-responses'>Check Responses</localization>\n    <!-- Reveal correct answers                                   -->\n    <localization string-id='reveal'>Reveal</localization>\n    <!-- Randomize parameters for a randomizable exercise         -->\n    <localization string-id='randomize'>Randomize</localization>\n    <!-- Activate an interactive (from a static preview)          -->\n    <localization string-id='activate'>Activate</localization>\n    <!-- Reset an interactive to its original state               -->\n    <localization string-id='reset'>Reset</localization>\n    <!-- Describe an array of fill-in-the-blanks, say for a matrix -->\n    <localization string-id='array'>array</localization>\n    <!-- \"paper size\" toggle title                                -->\n    <localization string-id=\"papersize\">Paper size</localization>\n    <!-- Additional printing options -->\n    <localization string-id=\"printing-options\">Additional printing options</localization>\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <localization string-id=\"hide-hints\">Hide hints</localization>\n    <localization string-id=\"hide-answers\">Hide answers</localization>\n    <localization string-id=\"hide-solutions\">Hide solutions</localization>\n    <!-- \"header/footer\" toggle title                         -->\n    <localization string-id=\"print-header\">Print headers</localization>\n    <localization string-id=\"print-footer\">Print footers</localization>\n    <localization string-id=\"first-page\">First page</localization>\n    <localization string-id=\"running\">Running</localization>\n    <!-- \"highlight workspace\" toggle title                         -->\n    <localization string-id=\"highlight-workspace\">Highlight workspace</localization>\n    <!-- Print page button text                                   -->\n    <localization string-id='print'>Print</localization>\n    <!-- Print preview tooltip/title text                         -->\n    <localization string-id='print-preview'>Print preview</localization>\n    <!-- Close something interactive                              -->\n    <localization string-id='close'>Close</localization>\n    <localization string-id='open-new-tab'>Open in new tab</localization>\n</locale>\n"
  },
  {
    "path": "xsl/localizations/es-ES.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- es-ES, Spanish (Spain) -->\n<!-- Juan José Torrens, jjtorrens@unavarra.es, 2014-10-27 -->\n<!-- Julian Pfeifle, julian.pfeifle@upc.edu, 2020-05-28 -->\n<!-- Christian Chávez, christian.chavez@usherbrooke.ca, 2025-12-20 -->\n\n\n<locale language=\"es-ES\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id=\"theorem\">Teorema</localization>\n    <localization string-id=\"corollary\">Corolario</localization>\n    <localization string-id=\"lemma\">Lema</localization>\n    <localization string-id='algorithm'>Algoritmo</localization>\n    <localization string-id='proposition'>Proposición</localization>\n    <localization string-id='claim'>Postulado</localization>\n    <localization string-id='fact'>Hecho</localization>\n    <localization string-id='identity'>Identidad</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Demostración</localization>\n    <localization string-id='argument'>Argumento</localization>\n    <localization string-id='justification'>Justificación</localization>\n    <localization string-id='reasoning'>Razonamiento</localization>\n    <localization string-id='explanation'>Explicación</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Caso</localization>\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axioma</localization>\n    <localization string-id='conjecture'>Conjetura</localization>\n    <localization string-id='principle'>Principio</localization>\n    <localization string-id='heuristic'>Heurística</localization>\n    <localization string-id='hypothesis'>Hipótesis</localization>\n    <localization string-id='assumption'>Hipótesis</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definición</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Ecuación</localization>\n    <localization string-id='displaymath'>Ecuación resaltada</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volumen</localization>\n    <localization string-id='book'>Libro</localization>\n    <localization string-id='article'>Artículo</localization>\n    <localization string-id='slideshow'>Diapositivas</localization>\n    <localization string-id='letter'>Carta</localization>\n    <localization string-id='memo'>Memorándum</localization>\n    <localization string-id='presentation'>Presentación</localization>\n    <!-- Parts of a document -->\n    <localization string-id='frontmatter'>Páginas preliminares</localization>\n    <localization string-id='part'>Parte</localization>\n    <localization string-id='chapter'>Capítulo</localization>\n    <localization string-id='appendix'>Apéndice</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Apéndices</localization>\n    <localization string-id='section'>Sección</localization>\n    <localization string-id='subsection'>Subsección</localization>\n    <localization string-id='subsubsection'>Subsubsección</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Diapositiva</localization>\n    <localization string-id='introduction'>Introducción</localization>\n    <localization string-id='conclusion'>Conclusión</localization>\n    <localization string-id='exercises'>Ejercicios</localization>\n    <localization string-id='worksheet'>Hoja de trabajo</localization>\n    <localization string-id='handout'>Folleto</localization>\n    <localization string-id='reading-questions'>Preguntas de comprensión</localization>\n    <localization string-id='solutions'>Soluciones</localization>\n    <localization string-id='glossary'>Glosario</localization>\n    <localization string-id='references'>Referencias</localization>\n    <localization string-id='backmatter'>Paratexto final</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Párrafo</localization>\n    <localization string-id='subparagraph'>Subpárrafo</localization>\n    <!-- Adjustments to titles of divisions -->\n    <localization string-id='group'>Grupo</localization>\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Nota</localization>\n    <localization string-id='convention'>Convención</localization>\n    <localization string-id='note'>Nota</localization>\n    <localization string-id='observation'>Observación</localization>\n    <localization string-id='warning'>Advertencia</localization>\n    <localization string-id='insight'>Perspectiva</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Computación</localization>\n    <localization string-id='technology'>Tecnología</localization>\n    <localization string-id='data'>Datos</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Comentario</localization>\n    <localization string-id='biographical'>Nota biográfica</localization>\n    <localization string-id='historical'>Nota histórica</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Ejemplo</localization>\n    <localization string-id='question'>Pregunta</localization>\n    <localization string-id='problem'>Problema</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Proyecto</localization>\n    <localization string-id='activity'>Actividad</localization>\n    <localization string-id='exploration'>Exploración</localization>\n    <localization string-id='task'>Tarea</localization>\n    <localization string-id='investigation'>Investigación</localization>\n    <!--  -->\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Colección</localization>\n    <localization string-id='poem'>Poema</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Objetivos</localization>\n    <localization string-id='objective'>Objetivo</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <localization string-id='outcomes'>Resultados</localization>\n    <localization string-id='outcome'>Resultado</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>Pregunta abierta</localization>\n    <localization string-id='openproblem'>Problema abierto</localization>\n    <localization string-id='openconjecture'>Conjetura abierta</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>Contexto</localization>\n    <localization string-id='discussion'>Discusión</localization>\n    <localization string-id='opinion'>Opinión</localization>\n    <localization string-id='status'>Estado</localization>\n    <localization string-id='suggestion'>Sugerencia</localization>\n    <!--  -->\n    <localization string-id='figure'>Figura</localization>\n    <localization string-id='table'>Cuadro</localization>\n    <localization string-id='listing'>Listado</localization>\n    <!-- Translation needed for Spain Spanish -->\n    <localization string-id='contributor'>Contribuyente</localization>\n    <localization string-id='fn'>Nota a pie de página</localization>\n    <!-- Lists and their items -->\n    <!-- Translations needed for Spain Spanish -->\n    <localization string-id='list'>Lista</localization>\n    <localization string-id='li'>Ítem</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Término</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Párrafo</localization>\n    <localization string-id='blockquote'>Cita</localization>\n    <localization string-id='pre'>Bloque de código</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragmento</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Ejercicio</localization>\n    <!-- Translation needed for Spain Spanish -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <localization string-id='inlineexercise'>Punto de control</localization>\n    <localization string-id='worksheetexercise'>Ejercicio de hoja de trabajo</localization>\n    <localization string-id='readingquestion'>Pregunta de lectura</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Pista</localization>\n    <localization string-id='answer'>Respuesta</localization>\n    <localization string-id='solution'>Solución</localization>\n    <!-- Translation needed for Spain Spanish -->\n    <localization string-id='subexercises'>Subejercicios</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Grupo de ejercicios</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Entrada bibliográfica</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>Índice</localization>\n    <localization string-id='abstract'>Resumen</localization>\n    <localization string-id='preface'>Prefacio</localization>\n    <localization string-id='acknowledgement'>Agradecimentos</localization>\n    <localization string-id='biography'>Biografía del autor</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>Sobre el autor</localization>\n    <localization string-id='about-authors'>Sobre los autores</localization>\n    <localization string-id='foreword'>Prólogo</localization>\n    <localization string-id='dedication'>Dedicatoria</localization>\n    <localization string-id='colophon'>Colofón</localization>\n    <!-- Runestone Activities -->\n    <localization string-id='video'>Vídeo</localization>\n    <localization string-id='program'>Programa</localization>\n    <localization string-id='true'>Verdadero</localization>\n    <localization string-id='false'>Falso</localization>\n    <localization string-id='or'>O</localization>\n    <localization string-id='either'>Cualquiera</localization>\n    <localization string-id='uncategorized'>Sin categoría</localization>\n    <localization string-id='query'>Consulta</localization>\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Índice alfabético</localization>\n    <localization string-id='jump-to'>Ir a:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Índice alfabético</localization>\n    <localization string-id='see'>Véase</localization>\n    <localization string-id='also'>Véase también</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Símbolo</localization>\n    <localization string-id='description'>Descripción</localization>\n    <localization string-id='location'>Ubicación</localization>\n    <localization string-id='page'>Página</localization>\n    <localization string-id='continued'>Continúa en la página siguiente</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Salta al contenido principal</localization>\n    <localization string-id='previous'>Anterior</localization>\n    <localization string-id='up'>Arriba</localization>\n    <localization string-id='next'>Siguiente</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <!-- TODO: SHORTEN THESE -->\n    <localization string-id='previous-short'>Ant.</localization>\n    <localization string-id='up-short'>Subir</localization>\n    <localization string-id='next-short'>Sig.</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Anotaciones</localization>\n    <localization string-id='feedback'>Comentario</localization>\n    <localization string-id='authored'>Realizado con PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <localization string-id='search-results-heading'>Resultados de la búsqueda</localization>\n    <localization string-id='no-search-results'>Sin resultados</localization>\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>A</localization>\n    <localization string-id='from'>De</localization>\n    <localization string-id='subject'>Asunto</localization>\n    <localization string-id='date'>Fecha</localization>\n    <localization string-id='copy'>Copia a</localization>\n    <localization string-id='enclosure'>Adjunto</localization>\n    <!-- Various -->\n    <localization string-id='todo'>Para hacer</localization>\n    <localization string-id='editor'>Editor</localization>\n    <localization string-id='edition'>Edición</localization>\n    <localization string-id='website'>Sitio web</localization>\n    <localization string-id='copyright'>Derechos de autor</localization>\n    <localization string-id='keywords'>Palabras clave</localization>\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>enlace permanente</localization>\n    <localization string-id='incontext'>En Contexto</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copiar encabezado y enlace permanente para</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Evaluar</localization>\n    <localization string-id='code'>Código</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Instrucciones</localization>\n    <!-- Interactive exercise feedback messages -->\n    <localization string-id='correct'>Correcto</localization>\n    <localization string-id='incorrect'>Incorrecto</localization>\n    <localization string-id='blank'>En blanco</localization>\n    <localization string-id='submit'>Enviar</localization>\n    <localization string-id='check-responses'>Comprobar respuestas</localization>\n    <localization string-id='reveal'>Revelar</localization>\n    <localization string-id='randomize'>Aleatorizar</localization>\n    <localization string-id='activate'>Activar</localization>\n    <localization string-id='reset'>Reiniciar</localization>\n    <localization string-id='array'>Arreglo</localization>\n    <localization string-id='papersize'>Tamaño del papel</localization>\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print'>Print</localization> -->\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n    <!-- Additional printing options -->\n    <localization string-id=\"printing-options\">Opciones de impresión adicionales</localization>\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <localization string-id=\"hide-hints\">Ocultar pistas</localization>\n    <localization string-id=\"hide-answers\">Ocultar respuestas</localization>\n    <localization string-id=\"hide-solutions\">Ocultar soluciones</localization>\n    <localization string-id=\"print-header\">Imprimir encabezados</localization>\n    <localization string-id=\"print-footer\">Imprimir pies de página</localization>\n    <localization string-id=\"first-page\">Primera página</localization>\n    <localization string-id=\"running\">En ejecución</localization>\n    <localization string-id=\"highlight-workspace\">Resaltar espacio de trabajo</localization>\n    <localization string-id='print'>Imprimir</localization>\n    <localization string-id='print-preview'>Vista previa de impresión</localization>\n    <localization string-id='close'>Cerrar</localization>\n</locale>\n"
  },
  {
    "path": "xsl/localizations/fi-FI.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n\r\n<!--********************************************************************\r\nCopyright 2014-2021 Robert A. Beezer\r\n\r\nThis file is part of PreTeXt.\r\n\r\nPreTeXt is free software: you can redistribute it and/or modify\r\nit under the terms of the GNU General Public License as published by\r\nthe Free Software Foundation, either version 2 or version 3 of the\r\nLicense (at your option).\r\n\r\nPreTeXt is distributed in the hope that it will be useful,\r\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\r\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\nGNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License\r\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\r\n*********************************************************************-->\r\n\r\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\r\n\r\n<!-- fi-FI, Finnish (Finland) -->\r\n<!-- Lasse M. Manninen lasse.m.manninen@gmail.com   -->\r\n\r\n<locale language=\"fi-FI\" direction=\"ltr\"\r\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\r\n    <!-- The english quotation style above is just a default, it needs adjustment -->\r\n    <!-- THEOREM-LIKE blocks -->\r\n    <!-- Environments which have proofs, plus proofs themselves -->\r\n    <localization string-id='theorem'>Lause</localization>\r\n    <localization string-id='corollary'>Seuraus</localization>\r\n    <localization string-id='lemma'>Lemma</localization>\r\n    <localization string-id='algorithm'>Algoritmi</localization>\r\n    <localization string-id='proposition'>Propositio</localization>\r\n    <localization string-id='claim'>Väite</localization>\r\n    <localization string-id='fact'>Fakta</localization>\r\n    <localization string-id='identity'>Identiteetti</localization>\r\n    <localization string-id='proof'>Todistus</localization>\r\n    <localization string-id='case'>Tapaus</localization>\r\n    <!-- Components of the narrative -->\r\n    <!-- Mathematical statements without proofs -->\r\n    <!-- AXIOM-LIKE blocks -->\r\n    <localization string-id='axiom'>Aksiooma</localization>\r\n    <localization string-id='conjecture'>Konjektuuri</localization>\r\n    <localization string-id='principle'>Periaate</localization>\r\n    <localization string-id='heuristic'>Heuristiikka</localization>\r\n    <localization string-id='hypothesis'>Hypoteesi</localization>\r\n    <localization string-id='assumption'>Oletus</localization>\r\n    <!-- Definitions -->\r\n    <localization string-id='definition'>Määritelmä</localization>\r\n    <!--Mathematics -->\r\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\r\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\r\n    <localization string-id='equation'>Yhtälö</localization>\r\n    <localization string-id='displaymath'>Rivitetty yhtälö</localization>\r\n    <!-- Types of documents, mostly for informational messages -->\r\n    <localization string-id='volume'>Osa</localization>\r\n    <localization string-id='book'>Kirja</localization>\r\n    <localization string-id='article'>Artikkeli</localization>\r\n    <localization string-id='letter'>Kirje</localization>\r\n    <localization string-id='slideshow'>Diaesitys</localization>\r\n    <localization string-id='memo'>Muistio</localization>\r\n    <localization string-id='presentation'>Esitelmä</localization>\r\n    <!-- Parts of a document -->\r\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\r\n    <localization string-id='frontmatter'>Nimiösivut</localization>\r\n    <localization string-id='part'>Osa</localization>\r\n    <localization string-id='chapter'>Luku</localization>\r\n    <localization string-id='appendix'>Liite</localization>\r\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\r\n    <localization string-id='appendices'>Liitteet</localization>\r\n    <localization string-id='section'>Alaluku</localization>\r\n    <localization string-id='subsection'>Alaluku</localization>\r\n    <localization string-id='subsubsection'>Alaluku</localization>\r\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\r\n    <localization string-id='slide'>Dia</localization>\r\n    <localization string-id='introduction'>Johdanto</localization>\r\n    <localization string-id='conclusion'>Päätäntä</localization>\r\n    <localization string-id='exercises'>Harjoitustehtävät</localization>\r\n    <localization string-id='worksheet'>Tehtävämoniste</localization>\r\n    <!-- <localization string-id='handout'>Handout</localization> -->\r\n    <localization string-id='reading-questions'>Luetun ymmärtäminen</localization>\r\n    <localization string-id='solutions'>Ratkaisut</localization>\r\n    <localization string-id='glossary'>Sanasto</localization>\r\n    <localization string-id='references'>Lähdeluettelo</localization>\r\n    <localization string-id='backmatter'>Lisäykset</localization>\r\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\r\n    <localization string-id='paragraphs'>Kappaleet</localization>\r\n    <localization string-id='subparagraph'>Alakappale</localization>\r\n    <!-- Adjustments to titles of divisions -->\r\n    <!-- <localization string-id='group'>Group</localization> -->\r\n    <!-- Components of the narrative -->\r\n    <!-- REMARK-LIKE blocks -->\r\n    <!-- \"note\" is used within \"biblio\", likely to change -->\r\n    <localization string-id='remark'>Huomautus</localization>\r\n    <localization string-id='convention'>Konventio</localization>\r\n    <localization string-id='note'>Huomautus</localization>\r\n    <localization string-id='observation'>Havainto</localization>\r\n    <localization string-id='warning'>Varoitus</localization>\r\n    <localization string-id='insight'>Oivallus</localization>\r\n    <!-- COMPUTATION-LIKE blocks -->\r\n    <localization string-id='computation'>Lasku</localization>\r\n    <localization string-id='technology'>Teknologia</localization>\r\n    <!-- <localization string-id='data'>Data</localization> -->\r\n    <!-- ASIDE-LIKE blocks -->\r\n    <localization string-id='aside'>Sivuhuomautus</localization>\r\n    <localization string-id='biographical'>Elämäkerrallinen sivuhuomautus</localization>\r\n    <localization string-id='historical'>Historiallinen sivuhuomautus</localization>\r\n    <!-- EXAMPLE-LIKE blocks -->\r\n    <localization string-id='example'>Esimerkki</localization>\r\n    <localization string-id='question'>Kysymys</localization>\r\n    <localization string-id='problem'>Ongelma</localization>\r\n    <!-- PROJECT-LIKE blocks -->\r\n    <localization string-id='project'>Projekti</localization>\r\n    <localization string-id='activity'>Aktiviteetti</localization>\r\n    <localization string-id='exploration'>Tutkimus</localization>\r\n    <localization string-id='task'>Tehtävä</localization>\r\n    <localization string-id='investigation'>Tutkimus</localization>\r\n    <!-- assemblages are collections of minimally structured material -->\r\n    <localization string-id='assemblage'>Kokoelma</localization>\r\n    <localization string-id='poem'>Runo</localization>\r\n    <!-- Objectives is the block, objective is a list item within -->\r\n    <localization string-id='objectives'>Tavoitteet</localization>\r\n    <localization string-id='objective'>Tavoite</localization>\r\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\r\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\r\n    <localization string-id='outcomes'>Lopputulokset</localization>\r\n    <localization string-id='outcome'>Lopputulos</localization>\r\n    <!--  -->\r\n    <!-- \"Open\" means unsolved, a research question/problem -->\r\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\r\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\r\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\r\n    <!-- \"discussion\" on open problems -->\r\n    <!-- <localization string-id='context'>Context</localization> -->\r\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\r\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\r\n    <!-- <localization string-id='status'>Status</localization> -->\r\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\r\n    <!--  -->\r\n    <localization string-id='figure'>Kuva</localization>\r\n    <localization string-id='table'>Taulukko</localization>\r\n    <localization string-id='listing'>Lista</localization>\r\n    <localization string-id='fn'>Alaviite</localization>\r\n    <localization string-id='contributor'>Edistäjä</localization>\r\n    <!-- Lists and their items -->\r\n    <localization string-id='list'>Lista</localization>\r\n    <localization string-id='li'>Nimike</localization>\r\n    <!-- A term (word) defined in a glossary item -->\r\n    <localization string-id='gi'>Termi</localization>\r\n    <!-- A regular paragraph, not the old sectioning structure -->\r\n    <localization string-id='p'>Kappale</localization>\r\n    <localization string-id='blockquote'>Lainaus</localization>\r\n    <!-- <localization string-id='pre'>Code Block</localization> -->\r\n    <!-- Literate programming, a chunk of computer code -->\r\n    <localization string-id='fragment'>Koodinpala</localization>\r\n    <!-- Parts of an exercise and its solution -->\r\n    <!-- An \"exercise\", at any level, within an \"exercises\" division is a          -->\r\n    <!-- \"divisional\" exercise and the string employed is 'divisionalexercise'.    -->\r\n    <!-- An \"exercise\" whose parent is a division (chapter, section, etc) we       -->\r\n    <!-- call an \"inline exercise\" and the string employed is 'inlineexercise'.    -->\r\n    <!-- And an \"exercise\" in a \"worksheet\" is a 'worksheetexercise'.              -->\r\n    <!-- And an \"exercise\" in a \"reading-questions\" is a 'readingquestion'.         -->\r\n    <!-- It is important to use different translations so that a text with         -->\r\n    <!-- different types of exercises do not have ambiguous cross-references       -->\r\n    <!-- (there is an example of this at the start of one of the later             -->\r\n    <!-- sections of the sample article).                                          -->\r\n    <!--                                                                           -->\r\n    <!-- In English, an \"Exercise\" is something you do that has a beneficial       -->\r\n    <!-- outcome, such as \"I am going to the gym to exercise.\"  A \"Checkpoint\"     -->\r\n    <!-- is something you must do before you do something else.  Another use of    -->\r\n    <!-- the term is a location on a roadway where you must stop for the      -->\r\n    <!-- police to do an inspection. A worksheet is a collection of activities or  -->\r\n    <!-- problems, typically printed on paper, which might be used in a classroom. -->\r\n    <localization string-id='divisionalexercise'>Harjoitustehtävä</localization>\r\n    <localization string-id='inlineexercise'>Harjoitus</localization>\r\n    <localization string-id='worksheetexercise'>Tehtävämonisteen tehtävä</localization>\r\n    <localization string-id='readingquestion'>Luetunymmärtämistehtävä</localization>\r\n    <localization string-id='webwork'>WeBWorK</localization>\r\n    <localization string-id='hint'>Vihje</localization>\r\n    <localization string-id='answer'>Vastaus</localization>\r\n    <localization string-id='solution'>Ratkaisu</localization>\r\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\r\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\r\n    <localization string-id='exercisegroup'>Tehtäväsetti</localization>\r\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\r\n    <localization string-id='biblio'>Bibliografinen nimike</localization>\r\n    <!-- Front matter components -->\r\n    <localization string-id='toc'>Sisällys</localization>\r\n    <localization string-id='abstract'>Tiivistelmä</localization>\r\n    <localization string-id='preface'>Johdanto</localization>\r\n    <localization string-id='acknowledgement'>Kiitokset</localization>\r\n    <localization string-id='biography'>Kirjoittajan tausta</localization>\r\n    <!-- singular and plural titles for biography subdivision -->\r\n    <localization string-id='about-author'>Kirjoittajasta</localization>\r\n    <localization string-id='about-authors'>Kirjoittajista</localization>\r\n    <localization string-id='foreword'>Esipuhe</localization>\r\n    <localization string-id='dedication'>Omistus</localization>\r\n    <localization string-id='colophon'>Kolofoni</localization>\r\n    <!-- Runestone Activities -->\r\n    <!-- <localization string-id='video'>Video</localization> -->\r\n    <!-- <localization string-id='program'>Program</localization> -->\r\n    <!-- <localization string-id='true'>True</localization> -->\r\n    <!-- <localization string-id='false'>False</localization> -->\r\n    <!-- <localization string-id='or'>Or</localization> -->\r\n    <!-- <localization string-id='either'>Either</localization> -->\r\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\r\n    <!-- <localization string-id='query'>Query</localization> -->\r\n    <localization string-id='program-activecode'>ActiveCode</localization>\r\n    <localization string-id='program-codelens'>CodeLens</localization>\r\n    <!-- Back matter components -->\r\n    <!-- index-part is deprecated, but not abandoned          -->\r\n    <!-- NB: repurpose translations, maybe move appendix here -->\r\n    <localization string-id='index'>Hakemisto</localization>\r\n    <localization string-id='jump-to'>Mene kohtaan:</localization>\r\n    <!-- Parts of the Index -->\r\n    <localization string-id='index'>Hakemisto</localization>\r\n    <localization string-id='see'>Ks.</localization>\r\n    <localization string-id='also'>Ks. myös</localization>\r\n    <!-- Notation List headings/foot -->\r\n    <localization string-id='symbol'>Symboli</localization>\r\n    <localization string-id='description'>Kuvaus</localization>\r\n    <localization string-id='location'>Paikka</localization>\r\n    <localization string-id='page'>Sivu</localization>\r\n    <localization string-id='continued'>Jatkuu seuraavalla sivulla</localization>\r\n    <!-- Navigation Interface elements -->\r\n    <!-- Assistive \"skip to content\" link -->\r\n    <localization string-id='skip-to-content'>Siirry pääasiaan</localization>\r\n    <localization string-id='previous'>Edellinen</localization>\r\n    <localization string-id='up'>Ylös</localization>\r\n    <localization string-id='next'>Seuraava</localization>\r\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\r\n    <localization string-id='previous-short'>Ed</localization>\r\n    <localization string-id='up-short'>Yl</localization>\r\n    <localization string-id='next-short'>Seur</localization>\r\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\r\n    <localization string-id='annotations'>Huomautukset</localization>\r\n    <localization string-id='feedback'>Palaute</localization>\r\n    <!-- This phrase should suggest that PreTeXt is the source -->\r\n    <!-- language that makes a particular output possible      -->\r\n    <localization string-id='authored'>Tuotettu PreTeXtillä</localization>\r\n    <!-- Search Results display/dialog -->\r\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\r\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\r\n    <!-- Parts of memos and letters -->\r\n    <localization string-id='to'>Vastaanottaja</localization>\r\n    <localization string-id='from'>Lähettäjä</localization>\r\n    <localization string-id='subject'>Aihe</localization>\r\n    <localization string-id='date'>Pvm</localization>\r\n    <localization string-id='copy'>cc</localization>\r\n    <localization string-id='enclosure'>liite</localization>\r\n    <!-- Various -->\r\n    <localization string-id='todo'>To Do</localization>\r\n    <localization string-id='editor'>Toimittaja</localization>\r\n    <localization string-id='edition'>Painos</localization>\r\n    <localization string-id='website'>Nettisivu</localization>\r\n    <localization string-id='copyright'>Tekijänoikeus</localization>\r\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\r\n    <!-- HTML clickables (lowercase strings to click on) -->\r\n    <localization string-id='permalink'>linkki</localization>\r\n    <localization string-id='incontext'>In Context</localization>\r\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\r\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\r\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\r\n    <!-- <localization string-id='embed'>Embed</localization> -->\r\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\r\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\r\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\r\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\r\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\r\n    <!-- Sage Cell evaluate button      -->\r\n    <!-- eg, \"Evaluate (Maxima)\"        -->\r\n    <!-- 2017-05-14: 'code' is obsolete -->\r\n    <!-- This needs to be defined to *something* (always)       -->\r\n    <!-- else whatever crud ends up on the button kills the cell -->\r\n    <localization string-id='evaluate'>Aja</localization>\r\n    <localization string-id='evaluate'>Aja</localization>\r\n    <!-- <localization string-id='code'>Code</localization> -->\r\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\r\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\r\n    <!-- Interactive exercise feedback messages -->\r\n    <!-- <localization string-id='correct'>Correct</localization> -->\r\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\r\n    <!-- <localization string-id='blank'>Blank</localization> -->\r\n    <!-- <localization string-id='submit'>Submit</localization> -->\r\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\r\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\r\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\r\n    <!-- <localization string-id='activate'>Activate</localization> -->\r\n    <!-- <localization string-id='reset'>Reset</localization> -->\r\n    <!-- <localization string-id='array'>array</localization> -->\r\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\r\n    <!-- Additional printing options -->\r\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\r\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\r\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\r\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\r\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\r\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\r\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\r\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\r\n    <!-- <localization string-id=\"running\">Running</localization> -->\r\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\r\n    <!-- <localization string-id='print'>Print</localization> -->\r\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\r\n    <!-- <localization string-id='close'>Close</localization> -->\r\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\r\n</locale>\r\n"
  },
  {
    "path": "xsl/localizations/fr-CA.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016-2021 Robert A. Beezer\nThis file is part of PreTeXt.\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- fr-CA, French (Canada) -->\n<!-- based on initial fr-FR translation -->\n<!-- Jean-Sébastien Turcotte, js.turcotte@cgodin.qc.ca, 2021-02-19-->\n<!-- Added missing fr-CA translations by Christian Chávez, christian.chavez@usherbrooke.ca, 2025-12-20-->\n\n<!-- If/when a new string-id gets translated in French for the first time, it should also be translated into fr-FR -->\n<!-- Quotation styles per Jean-Sébastien Turcotte on pretext-dev: -->\n<!-- primary angle-double-space, secondary english-single.        -->\n<locale language=\"fr-CA\" direction=\"ltr\"\n        quote-primary=\"angle-double-space\" quote-secondary=\"english-single\">\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id=\"theorem\">Théorème</localization>\n    <localization string-id=\"corollary\">Corollaire</localization>\n    <localization string-id=\"lemma\">Lemme</localization>\n    <localization string-id='algorithm'>Algorithme</localization>\n    <localization string-id='proposition'>Proposition</localization>\n    <localization string-id='claim'>Affirmation</localization>\n    <localization string-id='fact'>Fait</localization>\n    <localization string-id='identity'>Identité</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Démonstration</localization>\n    <localization string-id='argument'>Argument</localization>\n    <localization string-id='justification'>Justification</localization>\n    <localization string-id='reasoning'>Raisonnement</localization>\n    <localization string-id='explanation'>Explication</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Cas</localization>\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axiome</localization>\n    <localization string-id='conjecture'>Conjecture</localization>\n    <localization string-id='principle'>Principe</localization>\n    <localization string-id='heuristic'>Heuristique</localization>\n    <localization string-id='hypothesis'>Hypothèse</localization>\n    <localization string-id='assumption'>Supposition</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Définition</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Équation</localization>\n    <localization string-id='displaymath'>Mathématiques en évidence</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volume</localization>\n    <localization string-id='book'>Livre</localization>\n    <localization string-id='article'>Article</localization>\n    <localization string-id='slideshow'>Présentation</localization>\n    <localization string-id='letter'>Lettre</localization>\n    <localization string-id='memo'>Mémo</localization>\n    <localization string-id='presentation'>Présentation</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>Pages Liminaires</localization>\n    <localization string-id='part'>Partie</localization>\n    <localization string-id='chapter'>Chapitre</localization>\n    <localization string-id='appendix'>Appendice</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Appendices</localization>\n    <localization string-id='section'>Section</localization>\n    <localization string-id='subsection'>Sous-section</localization>\n    <localization string-id='subsubsection'>Sous sous-section</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Diapositive</localization>\n    <localization string-id='introduction'>Introduction</localization>\n    <localization string-id='conclusion'>Conclusion</localization>\n    <localization string-id='exercises'>Exercices</localization>\n    <localization string-id='worksheet'>Feuille d'activités</localization> <!-- Harmonisation avec worksheetexercise -->\n    <localization string-id='handout'>Document</localization>\n    <localization string-id='reading-questions'>Questions de compréhension de la lecture</localization> <!-- Peut-être un peu long /might be a bit too long -->\n    <localization string-id='solutions'>Solutions</localization>\n    <localization string-id='glossary'>Glossaire</localization>\n    <localization string-id='references'>Références</localization>\n    <localization string-id='backmatter'>Annexes</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Paragraphes</localization>  <!--checked-->\n    <localization string-id='subparagraph'>Sous-paragraphe</localization> <!--checked-->\n    <!-- Adjustments to titles of divisions -->\n    <localization string-id='group'>Groupe</localization>\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Remarque</localization>\n    <localization string-id='convention'>Convention</localization>\n    <localization string-id='note'>Note</localization>\n    <localization string-id='observation'>Observation</localization>\n    <localization string-id='warning'>Mise en garde</localization>\n    <localization string-id='insight'>Aperçu</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Calcul</localization>\n    <localization string-id='technology'>Technologie</localization>\n    <localization string-id='data'>Données</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Digression</localization>\n    <localization string-id='biographical'>Note biographique</localization> <!-- Knowingly differs from fr-FR, which uses \"digression\" instead of \"note\" -->\n    <localization string-id='historical'>Note historique</localization>     <!-- Knowingly differs from fr-FR, which uses \"digression\" instead of \"note\" -->\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Exemple</localization> <!--checked-->\n    <localization string-id='question'>Question</localization>\n    <localization string-id='problem'>Problème</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Projet</localization>\n    <localization string-id='activity'>Activité</localization>\n    <localization string-id='exploration'>Exploration</localization>\n    <localization string-id='task'>Tâche</localization>\n    <localization string-id='investigation'>Enquête</localization>\n    <!--  -->\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Assemblage</localization>\n    <localization string-id='poem'>Poème</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Objectifs</localization>\n    <localization string-id='objective'>Objectif</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <localization string-id='outcomes'>Résultats</localization>\n    <localization string-id='outcome'>Résultat</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>Question ouverte</localization>\n    <localization string-id='openproblem'>Problème ouvert</localization>\n    <localization string-id='openconjecture'>Conjecture ouverte</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>Contexte</localization>\n    <localization string-id='discussion'>Discussion</localization>\n    <localization string-id='opinion'>Opinion</localization>\n    <localization string-id='status'>Statut</localization>\n    <localization string-id='suggestion'>Suggestion</localization>\n    <!--  -->\n    <localization string-id='figure'>Figure</localization>\n    <localization string-id='table'>Table</localization>\n    <localization string-id='listing'>Listing</localization>\n    <localization string-id='fn'>Note de bas de page</localization> <!--checked-->\n    <localization string-id='contributor'>Contribution de</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>Liste</localization>\n    <localization string-id='li'>Point</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Terme</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Paragraphe</localization>\n    <localization string-id='blockquote'>Citation</localization>\n    <localization string-id='pre'>Bloc de code</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragment</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Exercice</localization>\n    <!-- Translation needed for France French -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <localization string-id='inlineexercise'>Mise au point</localization>\n    <localization string-id='worksheetexercise'>Activité</localization> <!-- base upon en-US, a worksheet is a bunch of activities -->\n    <localization string-id='readingquestion'>Question de compréhension</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Indice</localization>  <!-- Knowingly differs from fr-FR, which uses \"Indication\" instead -->\n    <localization string-id='answer'>Réponse</localization>\n    <localization string-id='solution'>Solution</localization>\n    <localization string-id='subexercises'>Sous-exercices</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Groupe d'exercices</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Entrée bibliographique</localization>\n     <!-- Front matter components -->\n    <localization string-id='toc'>Table des matières</localization>\n    <localization string-id='abstract'>Résumé</localization>\n    <localization string-id='preface'>Préface</localization>\n    <localization string-id='acknowledgement'>Remerciements</localization>\n    <localization string-id='biography'>Biographie</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>À propos de l'auteur</localization>\n    <localization string-id='about-authors'>À propos des auteurs</localization>\n    <localization string-id='foreword'>Avant-propos</localization>\n    <localization string-id='dedication'>Dédicace</localization>\n    <localization string-id='colophon'>Colophon</localization>\n    <!-- Runestone Activities -->\n    <localization string-id='video'>Vidéo</localization>\n    <localization string-id='program'>Programme</localization>\n    <localization string-id='true'>Vrai</localization>\n    <localization string-id='false'>Faux</localization>\n    <localization string-id='or'>Ou</localization>\n    <localization string-id='either'>Soit</localization>\n    <localization string-id='uncategorized'>Non catégorisé</localization>\n    <localization string-id='query'>Requête</localization>\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='jump-to'>Aller à :</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='see'>Visiter</localization>\n    <localization string-id='also'>Voir aussi</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Symbole</localization>\n    <localization string-id='description'>Description</localization>\n    <localization string-id='location'>Emplacement</localization>\n    <localization string-id='page'>Page</localization>\n    <localization string-id='continued'>Suite à la page suivante</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Sauter au contenu</localization>\n    <localization string-id='previous'>Précédent</localization> <!--buttons for HTML navigation-->\n    <localization string-id='up'>Haut</localization>\n    <localization string-id='next'>Suivant</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>Préc.</localization> <!--buttons for HTML navigation-->\n    <localization string-id='up-short'>Haut</localization>\n    <localization string-id='next-short'>Suiv.</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Annotations</localization> <!--does not get printed -->\n    <localization string-id='feedback'>Commentaires</localization>  <!--e.g., in case there is a link for feedback.  Will appear in HTML.-->\n    <localization string-id='authored'>Rédigé avec PreTeXt</localization> <!--e.g., authored in PreTeXt.  Will appear in HTML.-->\n    <!-- Search Results display/dialog -->\n    <localization string-id='search-results-heading'>Résultats de la recherche</localization>\n    <localization string-id='no-search-results'>Aucun résultat</localization>\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>À</localization>\n    <localization string-id='from'>De</localization>\n    <localization string-id='subject'>Sujet</localization>\n    <localization string-id='date'>Date</localization>\n    <localization string-id='copy'>Copie</localization>\n    <localization string-id='enclosure'>Pièce jointe</localization>\n    <!-- Various -->\n    <localization string-id='todo'>À Faire</localization>\n    <localization string-id='editor'>Éditeur</localization>\n    <localization string-id='edition'>Édition</localization>\n    <localization string-id='website'>Site Web</localization>\n    <localization string-id='copyright'>Copyright</localization>\n    <localization string-id='keywords'>Mots-clés</localization>\n    <localization string-id='incontext'>Contexte</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <localization string-id='permalink-tooltip'>Copier le titre et le lien permanent pour</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Évaluer</localization>\n    <localization string-id='code'>Code</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Instructions</localization>\n    <!-- Interactive exercise feedback messages -->\n    <localization string-id='correct'>Correct</localization>\n    <localization string-id='incorrect'>Incorrect</localization>\n    <localization string-id='blank'>Vide</localization>\n    <localization string-id='submit'>Soumettre</localization>\n    <localization string-id='check-responses'>Vérifier les réponses</localization>\n    <localization string-id='reveal'>Dévoiler</localization>\n    <localization string-id='randomize'>Générer une nouvelle version aléatoire</localization>\n    <localization string-id='activate'>Activer</localization>\n    <localization string-id='reset'>Réinitialiser</localization>\n    <localization string-id='array'>Tableau</localization>\n    <localization string-id='papersize'>Format de papier</localization>\n    <!-- Additional printing options -->\n    <localization string-id=\"printing-options\">Options d'impression supplémentaires</localization>\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <localization string-id=\"hide-hints\">Masquer les indices</localization>\n    <localization string-id=\"hide-answers\">Masquer les réponses</localization>\n    <localization string-id=\"hide-solutions\">Masquer les solutions</localization>\n    <localization string-id=\"print-header\">Imprimer les en-têtes</localization>\n    <localization string-id=\"print-footer\">Imprimer les pieds de page</localization>\n    <localization string-id=\"first-page\">Première page</localization>\n    <localization string-id=\"running\">En cours</localization>\n    <localization string-id=\"highlight-workspace\">Mettre en évidence l'espace de travail</localization>\n    <localization string-id='print'>Imprimer</localization>\n    <localization string-id='print-preview'>Aperçu avant impression</localization>\n    <localization string-id='close'>Fermer</localization>\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/fr-FR.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2016-2021 Robert A. Beezer\nThis file is part of PreTeXt.\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- fr-FR, French (France) -->\n\n<!-- Thomas W. Judson, judsontw@sfasu.edu, 2016-03-23 -->\n<!-- Julien Giol, julien.giol@gmail.com, 2018-02-05   -->\n<!-- Jean-Sébastien Turcotte, js.turcotte@cgodin.qc.ca, 2021-02-19-->\n\n<!-- If/when a new string-id gets translated in French for the first time, it should also be translated into fr-CA -->\n<locale language=\"fr-FR\" direction=\"ltr\"\n        quote-primary=\"angle-double-space\" quote-secondary=\"english-double\">\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id=\"theorem\">Théorème</localization>\n    <localization string-id=\"corollary\">Corollaire</localization>\n    <localization string-id=\"lemma\">Lemme</localization>\n    <localization string-id='algorithm'>Algorithme</localization>\n    <localization string-id='proposition'>Proposition</localization>\n    <localization string-id='claim'>Affirmation</localization>\n    <localization string-id='fact'>Fait</localization>\n    <localization string-id='identity'>Identité</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Démonstration</localization>\n\t<localization string-id='argument'>Argument</localization>\n    <localization string-id='justification'>Justification</localization>\n    <localization string-id='reasoning'>Raisonnement</localization>\n    <localization string-id='explanation'>Explication</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Cas</localization>\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axiome</localization>\n    <localization string-id='conjecture'>Conjecture</localization>\n    <localization string-id='principle'>Principe</localization>\n    <localization string-id='heuristic'>Heuristique</localization>\n    <localization string-id='hypothesis'>Hypothèse</localization>\n    <localization string-id='assumption'>Supposition</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Définition</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Équation</localization>\n    <localization string-id='displaymath'>Mathématiques en évidence</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volume</localization>\n    <localization string-id='book'>Livre</localization>\n    <localization string-id='article'>Article</localization>\n    <localization string-id='slideshow'>Présentation</localization>\n    <localization string-id='letter'>Lettre</localization>\n    <localization string-id='memo'>Mémo</localization>\n    <localization string-id='presentation'>Présentation</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>Pages Liminaires</localization>\n    <localization string-id='part'>Partie</localization>\n    <localization string-id='chapter'>Chapitre</localization>\n    <localization string-id='appendix'>Appendice</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Appendices</localization>\n    <localization string-id='section'>Section</localization>\n    <localization string-id='subsection'>Sous-section</localization>\n    <localization string-id='subsubsection'>Sous sous-section</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Diapositive</localization>\n    <localization string-id='introduction'>Introduction</localization>\n    <localization string-id='conclusion'>Conclusion</localization>\n    <localization string-id='exercises'>Exercices</localization>\n    <localization string-id='worksheet'>Feuille d'activités</localization> <!-- À défaut d'un meilleur terme -->\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <localization string-id='reading-questions'>Questions de compréhension de la lecture</localization> <!-- Peut-être un peu long /might be a bit too long -->\n    <localization string-id='solutions'>Solutions</localization>\n    <localization string-id='glossary'>Glossaire</localization>\n    <localization string-id='references'>Références</localization>\n    <localization string-id='backmatter'>Annexes</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Paragraphes</localization>  <!--checked-->\n    <localization string-id='subparagraph'>Sous-paragraphe</localization> <!--checked-->\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Remarque</localization>\n    <localization string-id='convention'>Convention</localization>\n    <localization string-id='note'>Note</localization>\n    <localization string-id='observation'>Observation</localization>\n    <localization string-id='warning'>Mise en garde</localization>\n    <!-- <localization string-id='insight'>Insight</localization> -->\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Calcul</localization>\n    <localization string-id='technology'>Technologie</localization>\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Digression</localization>\n    <localization string-id='biographical'>Digression biographique</localization>\n    <localization string-id='historical'>Digression historique</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Exemple</localization> <!--checked-->\n    <localization string-id='question'>Question</localization>\n    <localization string-id='problem'>Problème</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Projet</localization>\n    <localization string-id='activity'>Activité</localization>\n    <localization string-id='exploration'>Exploration</localization>\n    <localization string-id='task'>Tâche</localization>\n    <localization string-id='investigation'>Enquête</localization>\n    <!--  -->\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Assemblage</localization>\n    <localization string-id='poem'>Poème</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Objectifs</localization>\n    <localization string-id='objective'>Objectif</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <localization string-id='outcomes'>Résultats</localization>\n    <localization string-id='outcome'>Résultat</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Figure</localization>\n    <localization string-id='table'>Table</localization>\n    <localization string-id='listing'>Listing</localization>\n    <localization string-id='fn'>Note de bas de page</localization> <!--checked-->\n    <localization string-id='contributor'>Contribution de</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>Liste</localization>\n    <localization string-id='li'>Point</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Terme</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Paragraphe</localization>\n    <localization string-id='blockquote'>Citation</localization>\n    <!-- <localization string-id='pre'>Code Block</localization> -->\n    <!-- Literate programming, a chunk of computer code -->\n    <!-- <localization string-id='fragment'>Fragment</localization> -->\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Exercice</localization>\n    <!-- Translation needed for France French -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <localization string-id='inlineexercise'>Mise au point</localization>\n    <localization string-id='worksheetexercise'>Activité</localization>\n    <localization string-id='readingquestion'>Question de compréhension</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Indication</localization>\n    <localization string-id='answer'>Réponse</localization>\n    <localization string-id='solution'>Solution</localization>\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Groupe d'exercices</localization>\n     <!-- Front matter components -->\n    <localization string-id='toc'>Table des matières</localization>\n    <localization string-id='abstract'>Résumé</localization>\n    <localization string-id='preface'>Préface</localization>\n    <localization string-id='acknowledgement'>Remerciements</localization>\n    <localization string-id='biography'>Biographie</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>À propos de l'auteur</localization>\n    <localization string-id='about-authors'>À propos des auteurs</localization>\n    <localization string-id='foreword'>Avant-propos</localization>\n    <localization string-id='dedication'>Dédicace</localization>\n    <localization string-id='colophon'>Colophon</localization>\n    <!-- Runestone Activities -->\n    <localization string-id='video'>Vidéo</localization>\n    <!-- <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='jump-to'>Aller à :</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='see'>Visiter</localization>\n    <localization string-id='also'>Voir Aussi</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Symbole</localization>\n    <localization string-id='description'>Description</localization>\n    <localization string-id='location'>Emplacement</localization>\n    <localization string-id='page'>Page</localization>\n    <localization string-id='continued'>Suite à la page suivante</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Sauter au contenu</localization>\n    <localization string-id='previous'>Précédent</localization> <!--buttons for HTML navigation-->\n    <localization string-id='up'>Haut</localization>\n    <localization string-id='next'>Suivant</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <!-- TODO: SHORTEN THESE -->\n    <localization string-id='previous-short'>Précédent</localization> <!--buttons for HTML navigation-->\n    <localization string-id='up-short'>Haut</localization>\n    <localization string-id='next-short'>Suivant</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Annotations</localization> <!--does not get printed -->\n    <localization string-id='feedback'>Commentaires</localization>  <!--e.g., in case there is a link for feedback.  Will appear in HTML.-->\n    <localization string-id='authored'>Rédigé avec PreTeXt</localization> <!--e.g., authored in PreTeXt.  Will appear in HTML.-->\n    <!-- Search Results display/dialog -->\n    <localization string-id='search-results-heading'>Résultats de la recherche</localization>\n    <localization string-id='no-search-results'>Aucun résultat</localization>\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>À</localization>\n    <localization string-id='from'>De</localization>\n    <localization string-id='subject'>Sujet</localization>\n    <localization string-id='date'>Date</localization>\n    <localization string-id='copy'>Copie</localization>\n    <localization string-id='enclosure'>Pièce Jointe</localization>\n    <!-- Various -->\n    <localization string-id='todo'>À Faire</localization>\n    <localization string-id='editor'>Éditeur</localization>\n    <localization string-id='edition'>Édition</localization>\n    <localization string-id='website'>Site Web</localization>\n    <localization string-id='copyright'>Copyright</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <localization string-id='incontext'>Contexte</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Évaluer</localization>\n    <localization string-id='code'>Code</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Instructions</localization>\n    <!-- Interactive exercise feedback messages  -->\n    <localization string-id='correct'>Correct</localization>\n    <localization string-id='incorrect'>Incorrect</localization>\n    <localization string-id='blank'>Vide</localization>\n    <localization string-id='submit'>Soumettre</localization>\n    <localization string-id='check-responses'>Vérifier les réponses</localization>\n    <localization string-id='reveal'>Dévoiler</localization>\n    <localization string-id='randomize'>Générer une nouvelle version aléatoire</localization>\n    <localization string-id='activate'>Activer</localization>\n    <localization string-id='reset'>Réinitialiser</localization>\n    <!-- <localization string-id='array'>array</localization> -->\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <localization string-id='print'>Imprimer</localization>\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <localization string-id='close'>Fermer</localization>\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/hu-HU.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- hu-HU, Hungarian (Hungary) -->\n<!-- Sándor Czirbusz, czirbusz@gmail.com, 2017-04-09 -->\n\n<locale language=\"hu-HU\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Tétel</localization>\n    <localization string-id='corollary'>Következmény</localization>\n    <localization string-id='lemma'>Lemma</localization>\n    <localization string-id='algorithm'>Algoritmus</localization>\n    <localization string-id='proposition'>Állítás</localization>\n    <localization string-id='claim'>Állítás</localization>\n    <localization string-id='fact'>Tény</localization>\n    <localization string-id='identity'>Azonosság</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Bizonyítás</localization>\n    <!-- <localization string-id='argument'>Argument</localization> -->\n    <!-- <localization string-id='justification'>Justification</localization> -->\n    <!-- <localization string-id='reasoning'>Reasoning</localization> -->\n    <!-- <localization string-id='explanation'>Explanation</localization> -->\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Eset</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axióma</localization>\n    <localization string-id='conjecture'>Sejtés</localization>\n    <localization string-id='principle'>Elv</localization>\n    <localization string-id='heuristic'>Heurisztikus</localization>\n    <localization string-id='hypothesis'>Hipotézis</localization>\n    <localization string-id='assumption'>Feltevés</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definíció</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Egyenlet</localization>\n    <localization string-id='displaymath'>Matematikai megjelenítés</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Kötet</localization>\n    <localization string-id='book'>Könyv</localization>\n    <localization string-id='article'>Cikk</localization>\n    <!-- <localization string-id='slideshow'>Slideshow</localization> -->\n    <localization string-id='letter'>Letter</localization>\n    <localization string-id='memo'>Emlékeztető</localization>\n    <localization string-id='presentation'>Prezentáció</localization>\n    <!-- Parts of a document -->\n    <localization string-id='frontmatter'>Bevezető rész</localization>\n    <localization string-id='part'>Rész</localization>\n    <localization string-id='chapter'>Fejezet</localization>\n    <localization string-id='appendix'>Függelék</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <!-- <localization string-id='appendices'>Appendices</localization> -->\n    <localization string-id='section'>Pont</localization>\n    <localization string-id='subsection'>Alpont</localization>\n    <localization string-id='subsubsection'>alpont</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <!-- <localization string-id='slide'>Slide</localization> -->\n    <localization string-id='introduction'>Bevezetés</localization>\n    <localization string-id='conclusion'>Következtetés</localization>\n    <localization string-id='exercises'>Feladatok</localization>\n    <!-- <localization string-id='worksheet'>Worksheet</localization> -->\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <!-- <localization string-id='reading-questions'>Reading Questions</localization> -->\n    <!-- <localization string-id='solutions'>Solutions</localization> -->\n    <!-- <localization string-id='glossary'>Glossary</localization> -->\n    <localization string-id='references'>Hivatkozások</localization>\n    <localization string-id='backmatter'>Záró rész</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Paragrafusok</localization>\n    <localization string-id='subparagraph'>Al-paragrafus</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Megjegyzés</localization>\n    <localization string-id='convention'>Konvenció</localization>\n    <localization string-id='note'>Megjegyzés</localization>\n    <localization string-id='observation'>Megfigyelés</localization>\n    <localization string-id='warning'>Figyelmeztetés</localization>\n    <localization string-id='insight'>Bepillantás</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Számítás</localization>\n    <localization string-id='technology'>Technológia</localization>\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Kiegészítés</localization>\n    <localization string-id='biographical'>Életrajzi kiegészítés</localization>\n    <localization string-id='historical'>Történeti kiegészítés</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Példa</localization>\n    <localization string-id='question'>Kérdéa</localization>\n    <localization string-id='problem'>Probléma</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Projekt</localization>\n    <localization string-id='activity'>Aktivitás</localization>\n    <localization string-id='exploration'>Kutatás</localization>\n    <localization string-id='task'>Feladat</localization>\n    <localization string-id='investigation'>Vizsgálat</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Összeállítás</localization>\n    <localization string-id='poem'>Vers</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Célkitűzések</localization>\n    <localization string-id='objective'>Célkitűzés</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- <localization string-id='outcomes'>Outcomes</localization> -->\n    <!-- <localization string-id='outcome'>Outcome</localization> -->\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Ábra</localization>\n    <localization string-id='table'>Táblázat</localization>\n    <localization string-id='listing'>Felsorolás</localization>\n    <localization string-id='fn'>Lábjegyzet</localization>\n    <localization string-id='contributor'>Résztvevő</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>Lista</localization>\n    <localization string-id='li'>Tétel</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <!-- <localization string-id='gi'>Term</localization> -->\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Paragrafus</localization>\n    <localization string-id='blockquote'>Idézet</localization>\n    <!-- <localization string-id='pre'>Code Block</localization> -->\n    <!-- Literate programming, a chunk of computer code -->\n    <!-- <localization string-id='fragment'>Fragment</localization> -->\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Feladat</localization>\n    <!-- Translation needed for Hungary Hungarian -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <!-- <localization string-id='inlineexercise'>Checkpoint</localization> -->\n    <!-- <localization string-id='worksheetexercise'>Worksheet Exercise</localization> -->\n    <!-- <localization string-id='readingquestion'>Reading Question</localization> -->\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Tipp</localization>\n    <localization string-id='answer'>Vélasz</localization>\n    <localization string-id='solution'>Megoldás</localization>\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Feladatcsoport</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Életrajzi bejegyzés</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>Tartalom</localization>\n    <localization string-id='abstract'>Absztrakt</localization>\n    <localization string-id='preface'>Előszó</localization>\n    <localization string-id='acknowledgement'>Köszönetnyilvánítás</localization>\n    <localization string-id='biography'>Szerzői életrajz</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>A szerzőről</localization>\n    <localization string-id='about-authors'>A szerzőkről</localization>\n    <localization string-id='foreword'>Előszó</localization>\n    <localization string-id='dedication'>Ajánlás</localization>\n    <localization string-id='colophon'>Záradék</localization>\n    <!-- Runestone Activities -->\n    <!-- <localization string-id='video'>Video</localization> -->\n    <!-- <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='jump-to'>Ugrás ide:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='see'>Lásd</localization>\n    <localization string-id='also'>Lásd még</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>szimbólum</localization>\n    <localization string-id='description'>Leírás</localization>\n    <localization string-id='location'>Hely</localization>\n    <localization string-id='page'>Lap</localization>\n    <localization string-id='continued'>Folytatás a következő lapon</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Ugrás a fő tartalomjegyzékre</localization>\n    <localization string-id='previous'>Előző</localization>\n    <localization string-id='up'>Fel</localization>\n    <localization string-id='next'>Következő</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>El.</localization>\n    <localization string-id='up-short'>Fel</localization>\n    <localization string-id='next-short'>Köv.</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Magyarázatok</localization>\n    <localization string-id='feedback'>Visszacsatolás</localization>\n    <localization string-id='authored'>Authored in</localization>\n    <!-- Search Results display/dialog -->\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>Kinek:</localization>\n    <localization string-id='from'>Kitől:</localization>\n    <localization string-id='subject'>Tárgy</localization>\n    <localization string-id='date'>Dátum</localization>\n    <localization string-id='copy'>cc</localization>\n    <localization string-id='enclosure'>beleértve</localization>\n    <!-- Various -->\n    <localization string-id='todo'>Tennivaló</localization>\n    <localization string-id='editor'>Szerkesztő</localization>\n    <localization string-id='edition'>Kiadás</localization>\n    <localization string-id='website'>Weboldal</localization>\n    <localization string-id='copyright'>Szerzői jog</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>permalink</localization>\n    <localization string-id='incontext'>Szövegkörnyezet</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Evaluate</localization>\n    <!-- <localization string-id='code'>Kód</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\n    <!-- Interactive exercise feedback messages -->\n    <!-- <localization string-id='correct'>Correct</localization> -->\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\n    <!-- <localization string-id='blank'>Blank</localization> -->\n    <!-- <localization string-id='submit'>Submit</localization> -->\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\n    <!-- <localization string-id='activate'>Activate</localization> -->\n    <!-- <localization string-id='reset'>Reset</localization> -->\n    <!-- <localization string-id='array'>array</localization> -->\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print'>Print</localization> -->\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/it-IT.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- it-IT, Italian (Italy) -->\n<!-- Valerio Monti, gedeonedepaperoni@gmail.com, 2020-07-27   -->\n\n<locale language=\"it-IT\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Teorema</localization>\n    <localization string-id='corollary'>Corollario</localization>\n    <localization string-id='lemma'>Lemma</localization>\n    <localization string-id='algorithm'>Algoritmo</localization>\n    <localization string-id='proposition'>Proposizione</localization>\n    <localization string-id='claim'>Affermazione</localization>\n    <localization string-id='fact'>Fatto</localization>\n    <localization string-id='identity'>Identità</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Dimostrazione</localization>\n    <localization string-id='argument'>Argomento</localization>\n    <localization string-id='justification'>Giustificazione</localization>\n    <localization string-id='reasoning'>Ragionamento</localization>\n    <localization string-id='explanation'>Spiegazione</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Caso</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Assioma</localization>\n    <localization string-id='conjecture'>Congettura</localization>\n    <localization string-id='principle'>Principio</localization>\n    <localization string-id='heuristic'>Processo euristico</localization>\n    <localization string-id='hypothesis'>Ipotesi</localization>\n    <localization string-id='assumption'>Assunzione</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definizione</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Equazione</localization>\n    <localization string-id='displaymath'>Matematica in display</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volume</localization>\n    <localization string-id='book'>libro</localization>\n    <localization string-id='article'>Articolo</localization>\n    <!-- <localization string-id='slideshow'>Slideshow</localization> -->\n    <localization string-id='letter'>Lettera</localization>\n    <localization string-id='memo'>Memo</localization>\n    <localization string-id='presentation'>Presentazione</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>Materiale iniziale</localization>\n    <localization string-id='part'>Parte</localization>\n    <localization string-id='chapter'>Capitolo</localization>\n    <localization string-id='appendix'>Appendice</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Appendici</localization>\n    <localization string-id='section'>Paragrafo</localization>\n    <localization string-id='subsection'>Sottoparagrafo</localization>\n    <localization string-id='subsubsection'>Sotto-sottoparagrafo</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Diapositiva</localization>\n    <localization string-id='introduction'>Introduzione</localization>\n    <localization string-id='conclusion'>Conclusione</localization>\n    <localization string-id='exercises'>Esercizi</localization>\n    <localization string-id='worksheet'>Scheda didattica</localization>\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <localization string-id='reading-questions'>Domande di comprensione del testo</localization>\n    <localization string-id='solutions'>Soluzioni</localization>\n    <localization string-id='glossary'>Glossario</localization>\n    <localization string-id='references'>Bibliografia</localization>\n    <localization string-id='backmatter'>Materiale finale</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Capoversi</localization>\n    <localization string-id='subparagraph'>Sottocapoverso</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Osservazione</localization>\n    <localization string-id='convention'>Convenzione</localization>\n    <localization string-id='note'>Nota</localization>\n    <!-- <localization string-id='observation'>Observation</localization>  -->\n    <localization string-id='warning'>Attenzione</localization>\n    <localization string-id='insight'>Intuizione</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Computazione</localization>\n    <localization string-id='technology'>Tecnologia</localization>\n    <localization string-id='data'>Dati</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Inciso</localization>\n    <localization string-id='biographical'>Inciso biografico</localization>\n    <localization string-id='historical'>Inciso storico</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Esempio</localization>\n    <localization string-id='question'>Domanda</localization>\n    <localization string-id='problem'>Problema</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Progetto</localization>\n    <localization string-id='activity'>Attività</localization>\n    <localization string-id='exploration'>Esplorazione</localization>\n    <localization string-id='task'>Compito</localization>\n    <localization string-id='investigation'>Investigazione</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Raccolta</localization>\n    <localization string-id='poem'>Poema</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Obiettivi</localization>\n    <localization string-id='objective'>Obiettivo</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n    <localization string-id='outcomes'>Risultati</localization>\n    <localization string-id='outcome'>Risultato</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>Domanda aperta</localization>\n    <localization string-id='openproblem'>Problema aperto</localization>\n    <localization string-id='openconjecture'>Congettura aperta</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>Contesto</localization>\n    <localization string-id='discussion'>Discussione</localization>\n    <localization string-id='opinion'>Opinione</localization>\n    <localization string-id='status'>Stato</localization>\n    <localization string-id='suggestion'>Idea</localization>\n    <!--  -->\n    <localization string-id='figure'>Figura</localization>\n    <localization string-id='table'>Tabella</localization>\n    <localization string-id='listing'>Listato</localization>\n    <localization string-id='fn'>Nota a piè di pagina</localization>\n    <localization string-id='contributor'>Contributore</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>Elenco</localization>\n    <localization string-id='li'>Punto</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Termine</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Capoverso</localization>\n    <localization string-id='blockquote'>Citazione</localization>\n    <localization string-id='pre'>Blocco di codice</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Porzione</localization> -->\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Esercizio</localization>\n    <localization string-id='inlineexercise'>Punto di controllo</localization>\n    <localization string-id='worksheetexercise'>Esercizio in scheda didattica</localization>\n    <localization string-id='readingquestion'>Domanda di comprensione del testo</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Suggerimento</localization>\n    <localization string-id='answer'>Risposta</localization>\n    <localization string-id='solution'>Soluzione</localization>\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Gruppo di esercizi</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Riferimento bibliografico</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>Indice</localization>\n    <localization string-id='abstract'>Sommario</localization>\n    <localization string-id='preface'>Prefazione</localization>\n    <localization string-id='acknowledgement'>Ringraziamenti</localization>\n    <localization string-id='biography'>Biografia dell'autore</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>Sull'autore</localization>\n    <localization string-id='about-authors'>Sugli autori</localization>\n    <localization string-id='foreword'>Presentazione</localization>\n    <localization string-id='dedication'>Dedica</localization>\n    <localization string-id='colophon'>Colophon</localization>\n    <!-- Runestone Activities -->\n    <localization string-id='video'>Video</localization>\n    <localization string-id='program'>Programma</localization>\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Indice analitico</localization>\n    <localization string-id='jump-to'>Vai a:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Indice analitico</localization>\n    <localization string-id='see'>Vedi</localization>\n    <localization string-id='also'>Vedi anche</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Simbolo</localization>\n    <localization string-id='description'>Descrizione</localization>\n    <localization string-id='location'>Posizione</localization>\n    <localization string-id='page'>Pag.</localization>\n    <localization string-id='continued'>Continua alla pagina successiva</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Vai all'indice generale</localization>\n    <localization string-id='previous'>Precedente</localization>\n    <localization string-id='up'>Su</localization>\n    <localization string-id='next'>Successivo</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>Prec</localization>\n    <localization string-id='up-short'>Su</localization>\n    <localization string-id='next-short'>Succ</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Annotazioni</localization>\n    <localization string-id='feedback'>Feedback</localization>\n    <!-- This phrase should suggest that PreTeXt is the source -->\n    <!-- language that makes a particular output possible      -->\n    <localization string-id='authored'>Redatto in PreTeXt</localization>\n    <!-- Parts of memos and letters -->\n    <!-- Search Results display/dialog -->\n    <localization string-id='search-results-heading'>Risultati</localization>\n    <localization string-id='no-search-results'>Nessun risultato</localization>\n    <localization string-id='to'>Per</localization>\n    <localization string-id='from'>Da</localization>\n    <localization string-id='subject'>Oggetto</localization>\n    <localization string-id='date'>Data</localization>\n    <localization string-id='copy'>e p.c.</localization>\n    <localization string-id='enclosure'>allegati</localization>\n    <!-- Various -->\n    <localization string-id='todo'>Da fare</localization>\n    <localization string-id='editor'>Curatore</localization>\n    <localization string-id='edition'>Edizione</localization>\n    <localization string-id='website'>Sito web</localization>\n    <localization string-id='copyright'>Copyright</localization>\n    <localization string-id='keywords'>Parole chiave</localization>\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>permalink</localization>\n    <localization string-id='incontext'>Nel Contesto</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsfolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <localization string-id='evaluate'>Calcola</localization>\n    <localization string-id='code'>Codice</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Istruzioni</localization>\n    <!-- Interactive exercise feedback messages -->\n    <localization string-id='correct'>Giusto</localization>\n    <localization string-id='incorrect'>Sbagliato</localization>\n    <localization string-id='blank'>Spazio vuoto</localization>\n    <localization string-id='submit'>Invia</localization>\n    <localization string-id='check-responses'>Controlla le risposte</localization>\n    <localization string-id='reveal'>Mostra</localization>\n    <localization string-id='randomize'>Casuale</localization>\n    <localization string-id='activate'>Attiva</localization>\n    <localization string-id='reset'>Azzera</localization>\n    <localization string-id='array'>tabella</localization>\n    <localization string-id='papersize'>Formato carta</localization>\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <localization string-id='print'>Stampa</localization>\n    <localization string-id='print-preview'>Anteprima di stampa</localization>\n    <localization string-id='close'>Chiudi</localization>\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/ku-CKB.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- ku-CKB, Kurdish (Cental Kurdish) -->\n<!-- Rebin Muhammad, reben80@gmail.com, 2023-06-24 -->\n\n<locale language=\"ku-CKB\" direction=\"rtl\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>بیردۆز</localization>\n    <localization string-id='corollary'>ئاکام</localization>\n    <localization string-id='lemma'>لێما</localization>\n    <localization string-id='algorithm'>ئەلگۆریزم</localization>\n    <localization string-id='proposition'>دەستەواژە</localization>\n    <localization string-id='claim'>بانگەشە</localization>\n    <localization string-id='fact'>ڕاستی</localization>\n    <localization string-id='identity'>بێلایەن</localization>\n    <!-- PROOF-LIKE -->\n    <!-- We know these five names for PROOF-LIKE have subtle shades of meaning. -->\n    <!-- Provide a good translation for \"proof\" itself, and do your best with   -->\n    <!-- the others.  It is highly likely authors will rename one or more of    -->\n    <!-- the others.                                                            -->\n    <localization string-id='proof'>سەلماندن</localization>\n    <localization string-id='argument'>ئەرگویمينت</localization>\n    <localization string-id='justification'>پاساو</localization>\n    <localization string-id='reasoning'>لێکدانەوە</localization>\n    <localization string-id='explanation'>ڕوونکردنەوە</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>‌‌دۆخ</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>بەڵگەنەویست</localization>\n    <localization string-id='conjecture'>کۆنجێکچەر</localization>\n    <localization string-id='principle'>پرەنسەپڵ</localization>\n    <localization string-id='heuristic'>ئیرشادی</localization>\n    <localization string-id='hypothesis'>گریمانە</localization>\n    <localization string-id='assumption'>گریمانکردن</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>پێناسە</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>هاوکێشە</localization>\n    <localization string-id='displaymath'>بیرکاری پیشانبدە</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>بەرگ</localization>\n    <localization string-id='book'>کتێب</localization>\n    <localization string-id='article'>مەقالە</localization>\n    <localization string-id='letter'>نامە</localization>\n    <localization string-id='slideshow'>سلاید</localization>\n    <localization string-id='memo'>یادنامە</localization>\n    <localization string-id='presentation'>پێشكه‌شكاری</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>بەرگی پشتەوە</localization>\n    <localization string-id='part'>بەش</localization>\n    <localization string-id='chapter'>بەش</localization>\n    <localization string-id='appendix'>پاشکۆ</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>پاشکۆکان</localization>\n    <localization string-id='section'>بەش</localization>\n    <localization string-id='subsection'>کەرتەبەش</localization>\n    <localization string-id='subsubsection'>کەرتەبەش</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>سلاید</localization>\n    <localization string-id='introduction'>پێشەکی</localization>\n    <localization string-id='conclusion'>دەرئەنجام</localization>\n    <localization string-id='exercises'>مەشق</localization>\n    <localization string-id='worksheet'>پەڕەیکار</localization>\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <localization string-id='reading-questions'>پرسیاری خوێندنەوە</localization>\n    <localization string-id='solutions'>شیکار</localization>\n    <localization string-id='glossary'>فەرهەنگۆک</localization>\n    <localization string-id='references'>سەرچاوەکان</localization>\n    <localization string-id='backmatter'>بەرگی پشتەوە</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>پەڕەگرافەکان</localization>\n    <localization string-id='subparagraph'>بەشە پەرەگراف</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>تێبینی</localization>\n    <localization string-id='convention'>ڕێکەوتن</localization>\n    <localization string-id='note'>تيبینی</localization>\n    <localization string-id='observation'>لێ وردبوونەوە</localization>\n    <localization string-id='warning'>وریاکردنەوە</localization>\n    <localization string-id='insight'>دووربینی</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>کۆمپیوتەیشن</localization>\n    <localization string-id='technology'>تەکنەلۆجی</localization>\n    <localization string-id='data'>بەروار</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>بەجیا</localization>\n    <localization string-id='biographical'>ژیاننامە بە جیا</localization>\n    <localization string-id='historical'>مێژووی بە جیا</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>نموونە</localization>\n    <localization string-id='question'>پرسیار</localization>\n    <localization string-id='problem'>کێشە</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>پڕۆژە</localization>\n    <localization string-id='activity'>چالاکی</localization>\n    <localization string-id='exploration'>کنەکردن</localization>\n    <localization string-id='task'>ئەرک</localization>\n    <localization string-id='investigation'>پشکنین</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>پێکەوەنان</localization>\n    <localization string-id='poem'>هۆنراوە</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>ئامانجەکان</localization>\n    <localization string-id='objective'>ئامانج</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n    <localization string-id='outcomes'>دەرهاویشتەکان</localization>\n    <localization string-id='outcome'>دەرهاویشتە</localization>\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>پرسیاری کراوە</localization>\n    <localization string-id='openproblem'>کێشەی کراوە</localization>\n    <localization string-id='openconjecture'>کۆنجێکچەری کراوە</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>کۆنتێکست</localization>\n    <localization string-id='discussion'>گفتووگۆ</localization>\n    <localization string-id='opinion'>بۆچوون</localization>\n    <localization string-id='status'>‌‌دۆخ</localization>\n    <localization string-id='suggestion'>پێشنیاز</localization>\n    <!--  -->\n    <localization string-id='figure'>وێنە</localization>\n    <localization string-id='table'>خشتە</localization>\n    <localization string-id='listing'>لیستەگرتن</localization>\n    <localization string-id='fn'>پەراوێز</localization>\n    <localization string-id='contributor'>بەژداربوو</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>لیست</localization>\n    <localization string-id='li'>بڕگە</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>تێرم</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>پەرەگراف</localization>\n    <localization string-id='blockquote'>ووتەی وەرگیراو</localization>\n    <!-- The \"pre\" element is short for \"preformatted text\".  PreTeXt uses it -->\n    <!-- more as paragraph, rendered in monospace, with newlines respected. -->\n    <localization string-id='pre'>بلۆکی کۆد</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>پارچە</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- An \"exercise\", at any level, within an \"exercises\" division is a          -->\n    <!-- \"divisional\" exercise and the string employed is 'divisionalexercise'.    -->\n    <!-- An \"exercise\" whose parent is a division (chapter, section, etc) we       -->\n    <!-- call an \"inline exercise\" and the string employed is 'inlineexercise'.    -->\n    <!-- And an \"exercise\" in a \"worksheet\" is a 'worksheetexercise'.              -->\n    <!-- And an \"exercise\" in a \"reading-questions\" is a 'readingquestion'.         -->\n    <!-- It is important to use different translations so that a text with         -->\n    <!-- different types of exercises do not have ambiguous cross-references       -->\n    <!-- (there is an example of this at the start of one of the later             -->\n    <!-- sections of the sample article).                                          -->\n    <!--                                                                           -->\n    <!-- In English, an \"Exercise\" is something you do that has a beneficial       -->\n    <!-- outcome, such as \"I am going to the gym to exercise.\"  A \"Checkpoint\"     -->\n    <!-- is something you must do before you do something else.  Another use of    -->\n    <!-- the term is a location on a roadway where you must stop for the      -->\n    <!-- police to do an inspection. A worksheet is a collection of activities or  -->\n    <!-- problems, typically printed on paper, which might be used in a classroom. -->\n    <localization string-id='divisionalexercise'>مەشق</localization>\n    <localization string-id='inlineexercise'>خاڵی پشکنین</localization>\n    <localization string-id='worksheetexercise'>پەڕەکاری ڕاهێنانەکان</localization>\n    <localization string-id='readingquestion'>پرسیارەکانی خوێندنەوە</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>یارمەتی</localization>\n    <localization string-id='answer'>وەڵام</localization>\n    <localization string-id='solution'>شیکار</localization>\n    <!-- A subdivision of an \"exercises\" section -->\n    <localization string-id='subexercises'>بەشە-ڕاهێنانەکان</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>گروپی ڕاهێنانەکان</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>پيڕستی بایۆلۆگرافیا</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>ناوەڕۆک</localization>\n    <localization string-id='abstract'>پوختە</localization>\n    <localization string-id='preface'>پێشەکی</localization>\n    <localization string-id='acknowledgement'>پێزانین</localization>\n    <localization string-id='biography'>ژیاننامەی نووسەر</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>دەربارەی نوسەر</localization>\n    <localization string-id='about-authors'>دەربارەی نوسەرەکان</localization>\n    <localization string-id='foreword'>پێشەکی</localization>\n    <localization string-id='dedication'>پێشکەشە </localization>\n    <localization string-id='colophon'>هاوپلان</localization>\n    <!-- Runestone Activities -->\n    <!-- These terms will appear in student activity/engagement -->\n    <!-- reports for an instructor of a Runestone course.       -->\n    <!-- Normally they will not be apparent to a reader.        -->\n    <localization string-id='video'>ڤیدیۆ</localization>\n    <localization string-id='program'>پرۆگرام</localization>\n    <!-- \"ActiveCode\" and \"CodeLens\" are Runestone-constructs -->\n    <!-- and so really *should not* be translated.            -->\n    <localization string-id='program-activecode'>کۆد-چالاکردن</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>پێرست</localization>\n    <localization string-id='jump-to'>بچۆرە سەر</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>پێرست</localization>\n    <localization string-id='see'>تەماشا بکە</localization>\n    <localization string-id='also'>تەماشای ئەمەیش بکە</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>سیمبول</localization>\n    <localization string-id='description'>وەسفکردن</localization>\n    <localization string-id='location'>شوێن</localization>\n    <localization string-id='page'>پەڕە</localization>\n    <localization string-id='continued'>بەردەوەمبە بۆ سەر پەڕەی داهاتوو</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>بازبدە بۆ سەر بابەتە سەرەکیەکە</localization>\n    <localization string-id='previous'>پێشووتر</localization>\n    <localization string-id='up'>سەرەوە</localization>\n    <localization string-id='next'>داهاتوو</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>پێشوو</localization>\n    <localization string-id='up-short'>سەرەوە</localization>\n    <localization string-id='next-short'>داهاتوو</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>په‌راوێزنووسینەکان</localization>\n    <localization string-id='feedback'>فیدباک</localization>\n    <!-- This phrase should suggest that PreTeXt is the source -->\n    <!-- language that makes a particular output possible      -->\n    <localization string-id='authored'>بەرهەمهاتووە PreTeXt لەڕیگای </localization>\n    <!-- Search Results display/dialog -->\n    <!-- The result of a search as part of HTML output will throw up       -->\n    <!-- an overlay window with the search results.  \"Search Results\"      -->\n    <!-- is like a heading.  It renders like \"Search Results: algorithm\".  -->\n    <!-- When a reader uses a term that produces no results (perhaps they  -->\n    <!-- misspell the search term) then they get a message to that effect. -->\n    <!-- Capitalize \"Search Results\" - used as a heading, no punctuation   -->\n    <localization string-id='search-results-heading'>ئەنجامی گەڕان</localization>\n    <!-- Short phrase, no punctuation -->\n    <localization string-id='no-search-results'>ەنجامی-گەڕانەکان-نیە</localization>\n   <!-- Parts of memos and letters -->\n    <localization string-id='to'>بۆ</localization>\n    <localization string-id='from'>لە</localization>\n    <localization string-id='subject'>بابەت</localization>\n    <localization string-id='date'>بەروار</localization>\n    <localization string-id='copy'>cc</localization>\n    <localization string-id='enclosure'>پیچانەوە</localization>\n    <!-- Various -->\n    <localization string-id='todo'>بۆ کردنی</localization>\n    <localization string-id='editor'>دەستکاریکار</localization>\n    <localization string-id='edition'>چاپ</localization>\n    <localization string-id='website'>وێبسایت</localization>\n    <localization string-id='copyright'>مافی پاراستن</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>بەستەری چەسپاو</localization>\n    <localization string-id='incontext'>ناو-کۆنتێکستدا</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <localization string-id='evaluate'>نرخ دۆزینەوە</localization>\n    <!-- <localization string-id='code'>Code</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>ڕێنماییەکان</localization>\n    <!-- Interactive exercise feedback messages                   -->\n    <!-- These might be part of a feedback message for submitting -->\n    <!-- an answer, e.g. \"Correct!\" or \"Correct: 50%\".            -->\n    <localization string-id='correct'>ڕاست</localization>\n    <localization string-id='incorrect'>ناڕاست</localization>\n    <!-- To signal that a reader left an answer blank             -->\n    <localization string-id='blank'>بەتاڵ</localization>\n    <!-- Submit or check responses                                -->\n    <localization string-id='submit'>پشتڕاستی بکەوە</localization>\n    <localization string-id='check-responses'>وەڵامەکەت ساغبکەرەوە</localization>\n    <!-- Reveal correct answers                                   -->\n    <localization string-id='reveal'>پیشانی بدە</localization>\n    <!-- Randomize parameters for a randomizable exercise         -->\n    <localization string-id='randomize'>هەرەمەکیکردن</localization>\n    <!-- Activate an interactive (from a static preview)          -->\n    <localization string-id='activate'>چالاکردن</localization>\n    <!-- Reset an interactive to its original state               -->\n    <localization string-id='reset'>ڕێکخستنەوە</localization>\n    <!-- Describe an array of fill-in-the-blanks, say for a matrix -->\n    <localization string-id='array'>ڕیزکراو</localization>\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- Print page button text -->\n    <localization string-id='print'>پرنت</localization>\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/localizations.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n<!-- Please respect alphabetical order here                            -->\n\n<!-- NB: there are two very similar elements for each language since   -->\n<!-- they each get used for slightly different purposes (reading       -->\n<!-- files, verifying support) and need to be converted as node-sets   -->\n<!-- without any intermediate manipulation.                            -->\n\n<localizations xmlns:xi=\"http://www.w3.org/2001/XInclude\">\n    <locale>af-ZA</locale><filename>af-ZA.xml</filename>\n    <locale>bg-BG</locale><filename>bg-BG.xml</filename>\n    <locale>cs-CZ</locale><filename>cs-CZ.xml</filename>\n    <locale>ca-ES</locale><filename>ca-ES.xml</filename>\n    <locale>de-DE</locale><filename>de-DE.xml</filename>\n    <locale>en-US</locale><filename>en-US.xml</filename>\n    <locale>es-ES</locale><filename>es-ES.xml</filename>\n    <locale>fi-FI</locale><filename>fi-FI.xml</filename>\n    <locale>fr-CA</locale><filename>fr-CA.xml</filename>\n    <locale>fr-FR</locale><filename>fr-FR.xml</filename>\n    <locale>hu-HU</locale><filename>hu-HU.xml</filename>\n    <locale>it-IT</locale><filename>it-IT.xml</filename>\n    <locale>ku-CKB</locale><filename>ku-CKB.xml</filename>\n    <locale>nl-NL</locale><filename>nl-NL.xml</filename>\n    <locale>pt-BR</locale><filename>pt-BR.xml</filename>\n    <locale>pt-PT</locale><filename>pt-PT.xml</filename>\n    <locale>zh-HANS</locale><filename>zh-HANS.xml</filename>\n</localizations>\n"
  },
  {
    "path": "xsl/localizations/nl-NL.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- nl-NL, Dutch (The Netherlands) -->\n<!-- Gosia Wrzesinska, gosia@coderso.com, 2022-12-21   -->\n\n<locale language=\"nl-NL\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>Stelling</localization>\n    <localization string-id='corollary'>Gevolg</localization>\n    <localization string-id='lemma'>Lemma</localization>\n    <localization string-id='algorithm'>Algoritme</localization>\n    <localization string-id='proposition'>Propositie</localization>\n    <localization string-id='claim'>Claim</localization>\n    <localization string-id='fact'>Feit</localization>\n    <localization string-id='identity'>Identiteit</localization>\n    <!-- PROOF-LIKE -->\n    <!-- We know these five names for PROOF-LIKE have subtle shades of meaning. -->\n    <!-- Provide a good translation for \"proof\" itself, and do your best with   -->\n    <!-- the others.  It is highly likely authors will rename one or more of    -->\n    <!-- the others.                                                            -->\n    <localization string-id='proof'>Bewijs</localization>\n    <localization string-id='argument'>Argument</localization>\n    <localization string-id='justification'>Verantwoording</localization>\n    <localization string-id='reasoning'>Redenering</localization>\n    <localization string-id='explanation'>Uitleg</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Geval</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axioma</localization>\n    <localization string-id='conjecture'>Vermoeden</localization>\n    <localization string-id='principle'>Principe</localization>\n    <localization string-id='heuristic'>Heuristiek</localization>\n    <localization string-id='hypothesis'>Hypothese</localization>\n    <localization string-id='assumption'>Aanname</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definitie</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Formule</localization>\n    <!-- <localization string-id='displaymath'>Display Mathematics</localization> -->\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Boekdeel</localization>\n    <localization string-id='book'>Boek</localization>\n    <localization string-id='article'>Artikel</localization>\n    <localization string-id='letter'>Brief</localization>\n    <localization string-id='slideshow'>Diavoorstelling</localization>\n    <localization string-id='memo'>Notitie</localization>\n    <localization string-id='presentation'>Presentatie</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>Voorpagina</localization>\n    <localization string-id='part'>Deel</localization>\n    <localization string-id='chapter'>Hoofdstuk</localization>\n    <localization string-id='appendix'>Bijlage</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Bijlagen</localization>\n    <localization string-id='section'>Sectie</localization>\n    <localization string-id='subsection'>Subsectie</localization>\n    <localization string-id='subsubsection'>Subsubsectie</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Dia</localization>\n    <localization string-id='introduction'>Inleiding</localization>\n    <localization string-id='conclusion'>Slot</localization>\n    <localization string-id='exercises'>Oefeningen</localization>\n    <localization string-id='worksheet'>Werkblad</localization>\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <!-- <localization string-id='reading-questions'>Reading Questions</localization> -->\n    <localization string-id='solutions'>Oplossingen</localization>\n    <localization string-id='glossary'>Begrippenlijst</localization>\n    <localization string-id='references'>Verwijzingen</localization>\n    <localization string-id='backmatter'>Achterpagina</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages\n    -->\n    <localization string-id='paragraphs'>Alinea's</localization>\n    <localization string-id='subparagraph'>Subalinea</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Opmerking</localization>\n    <localization string-id='convention'>Conventie</localization>\n    <localization string-id='note'>Notitie</localization>\n    <localization string-id='observation'>Observatie</localization>\n    <localization string-id='warning'>Waarschuwing</localization>\n    <localization string-id='insight'>Inzicht</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Berekening</localization>\n    <localization string-id='technology'>Technologie</localization>\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n    <!--\n    <localization string-id='aside'>Aside</localization>\n    <localization string-id='biographical'>Biographical Aside</localization>\n    <localization string-id='historical'>Historical Aside</localization>\n    -->\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Voorbeeld</localization>\n    <localization string-id='question'>Vraag</localization>\n    <localization string-id='problem'>Probleem</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Project</localization>\n    <localization string-id='activity'>Activiteit</localization>\n    <localization string-id='exploration'>Verkenning</localization>\n    <localization string-id='task'>Taak</localization>\n    <localization string-id='investigation'>Onderzoek</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Verzameling</localization>\n    <localization string-id='poem'>Gedicht</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Doelstellingen</localization>\n    <localization string-id='objective'>Doelstelling</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n    <localization string-id='outcomes'>Uitkomsten</localization>\n    <localization string-id='outcome'>Uitkomst</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Afbeelding</localization>\n    <localization string-id='table'>Tabel</localization>\n    <!-- <localization string-id='listing'>Listing</localization> -->\n    <localization string-id='fn'>Voetnoot</localization>\n    <!-- <localization string-id='contributor'>Contributor</localization> -->\n    <!-- Lists and their items -->\n    <localization string-id='list'>Lijst</localization>\n    <localization string-id='li'>Lijstelement</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Begrip</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Alinea</localization>\n    <localization string-id='blockquote'>Citaat</localization>\n    <!-- The \"pre\" element is short for \"preformatted text\".  PreTeXt uses it -->\n    <!-- more as paragraph, rendered in monospace, with newlines respected. -->\n    <localization string-id='pre'>Codeblok</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragment</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- An \"exercise\", at any level, within an \"exercises\" division is a          -->\n    <!-- \"divisional\" exercise and the string employed is 'divisionalexercise'.    -->\n    <!-- An \"exercise\" whose parent is a division (chapter, section, etc) we       -->\n    <!-- call an \"inline exercise\" and the string employed is 'inlineexercise'.    -->\n    <!-- And an \"exercise\" in a \"worksheet\" is a 'worksheetexercise'.              -->\n    <!-- And an \"exercise\" in a \"reading-questions\" is a 'readingquestion'.         -->\n    <!-- It is important to use different translations so that a text with         -->\n    <!-- different types of exercises do not have ambiguous cross-references       -->\n    <!-- (there is an example of this at the start of one of the later             -->\n    <!-- sections of the sample article).                                          -->\n    <!--                                                                           -->\n    <!-- In English, an \"Exercise\" is something you do that has a beneficial       -->\n    <!-- outcome, such as \"I am going to the gym to exercise.\"  A \"Checkpoint\"     -->\n    <!-- is something you must do before you do something else.  Another use of    -->\n    <!-- the term is a location on a roadway where you must stop for the      -->\n    <!-- police to do an inspection. A worksheet is a collection of activities or  -->\n    <!-- problems, typically printed on paper, which might be used in a classroom. -->\n    <localization string-id='divisionalexercise'>Oefening</localization>\n    <localization string-id='inlineexercise'>Controlepunt</localization>\n    <localization string-id='worksheetexercise'>Werkblad-oefening</localization>\n    <localization string-id='readingquestion'>Leesvraag</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Tip</localization>\n    <localization string-id='answer'>Antwoord</localization>\n    <localization string-id='solution'>Oplossing</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- <localization string-id='exercisegroup'>Exercise Group</localization> -->\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <!-- <localization string-id='biblio'>Bibliographic Entry</localization> -->\n    <!-- Front matter components -->\n    <localization string-id='toc'>Inhoudsopgave</localization>\n    <localization string-id='abstract'>Samenvatting</localization>\n    <localization string-id='preface'>Voorwoord</localization>\n    <localization string-id='acknowledgement'>Dankbetuigingen</localization>\n    <localization string-id='biography'>Schrijversbiografie</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>Over de schrijver</localization>\n    <localization string-id='about-authors'>Over de schrijvers</localization>\n    <localization string-id='foreword'>Voorwoord</localization>\n    <!-- <localization string-id='dedication'>Dedication</localization> -->\n    <localization string-id='colophon'>Colofon</localization>\n    <!-- Runestone Activities -->\n    <!-- These terms will appear in student activity/engagement -->\n    <!-- reports for an instructor of a Runestone course.       -->\n    <!-- Normally they will not be apparent to a reader.        -->\n    <!--\n    <localization string-id='video'>Video</localization>\n    <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <!-- \"ActiveCode\" and \"CodeLens\" are Runestone-constructs -->\n    <!-- and so really *should not* be translated.            -->\n    <!--\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    -->\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='jump-to'>Jump to:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Index</localization>\n    <localization string-id='see'>Zie</localization>\n    <localization string-id='also'>Zie ook</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Symbool</localization>\n    <localization string-id='description'>Omschrijving</localization>\n    <localization string-id='location'>Locatie</localization>\n    <localization string-id='page'>Pagina</localization>\n    <localization string-id='continued'>Vervolg op de volgende pagina</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Naar de hoofdinhoud</localization>\n    <localization string-id='previous'>Vorig</localization>\n    <localization string-id='up'>Omhoog</localization>\n    <localization string-id='next'>Volgend</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>Vorig</localization>\n    <localization string-id='up-short'>Omhoog</localization>\n    <localization string-id='next-short'>Volgend</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <!--\n    <localization string-id='annotations'>Annotations</localization>\n    <localization string-id='feedback'>Feedback</localization>\n    -->\n    <!-- This phrase should suggest that PreTeXt is the source -->\n    <!-- language that makes a particular output possible      -->\n    <localization string-id='authored'>Opgesteld met PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <!-- The result of a search as part of HTML output will throw up       -->\n    <!-- an overlay window with the search results.  \"Search Results\"      -->\n    <!-- is like a heading.  It renders like \"Search Results: algorithm\".  -->\n    <!-- When a reader uses a term that produces no results (perhaps they  -->\n    <!-- misspell the search term) then they get a message to that effect. -->\n    <!-- Capitalize \"Search Results\" - used as a heading, no punctuation   -->\n    <localization string-id='search-results-heading'>Zoekresultaten</localization>\n    <!-- Short phrase, no punctuation -->\n    <localization string-id='no-search-results'>Geen resultaten</localization>\n   <!-- Parts of memos and letters -->\n    <localization string-id='to'>Aan</localization>\n    <localization string-id='from'>Van</localization>\n    <localization string-id='subject'>Onderwerp</localization>\n    <localization string-id='date'>Datum</localization>\n    <localization string-id='copy'>kopie</localization>\n    <localization string-id='enclosure'>bijgevoegd</localization>\n    <!-- Various -->\n    <localization string-id='todo'>Takenlijst</localization>\n    <localization string-id='editor'>Redacteur</localization> <!-- As in: person who edits -->\n    <localization string-id='edition'>Uitgaven</localization>\n    <localization string-id='website'>Website</localization>\n    <localization string-id='copyright'>Copyright</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <!-- <localization string-id='permalink'>permalink</localization> -->\n    <localization string-id='incontext'>In Context</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <localization string-id='evaluate'>Evalueer</localization>\n    <localization string-id='evaluate'>Evalueer</localization>\n    <localization string-id='code'>Code</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\n    <!-- Interactive exercise feedback messages                   -->\n    <!-- These might be part of a feedback message for submitting -->\n    <!-- an answer, e.g. \"Correct!\" or \"Correct: 50%\".            -->\n    <localization string-id='correct'>Correct</localization>\n    <localization string-id='incorrect'>Niet correct</localization>\n    <!-- To signal that a reader left an answer blank             -->\n    <localization string-id='blank'>Blanco</localization>\n    <!-- Submit or check responses                                -->\n    <localization string-id='submit'>Indienen</localization>\n    <localization string-id='check-responses'>Controleren</localization>\n    <localization string-id='reveal'>Onthullen</localization>\n    <!-- Randomize parameters for a randomizable exercise         -->\n    <localization string-id='randomize'>Randomiseren</localization>\n    <!-- Activate an interactive (from a static preview)          -->\n    <localization string-id='activate'>Activeren</localization>\n    <!-- Reset an interactive to its original state               -->\n    <localization string-id='reset'>Resetten</localization>\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print'>Print</localization> -->\n    <!--<localization string-id='print-preview'>Print preview</localization>-->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/localizations/pt-BR.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- pt-BR, Portugese (Brazil)-->\n<!-- Igor Morgado, morgado.igor@gmail.com, 2014-08-11, 2014-08-14 -->\n<!-- Vinicius Monego, monego@posteo.net, 2020-11-07 -->\n<!-- Leon Silva, leon.silva@ufrpe.br, 2022-03-30 -->\n\n<locale language=\"pt-BR\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id=\"theorem\">Teorema</localization>\n    <localization string-id=\"corollary\">Corolário</localization>\n    <localization string-id=\"lemma\">Lema</localization>\n    <localization string-id='algorithm'>Algoritmo</localization>\n    <localization string-id='proposition'>Proposição</localization>\n    <localization string-id='claim'>Afirmação</localization>\n    <localization string-id='fact'>Fato</localization>\n    <localization string-id='identity'>Identidade</localization>\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Demonstração</localization>\n    <localization string-id='argument'>Argumento</localization>\n    <localization string-id='justification'>Justificativa</localization>\n    <localization string-id='reasoning'>Raciocínio</localization>\n    <localization string-id='explanation'>Explicação</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>Caso</localization>\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axioma</localization>\n    <localization string-id='conjecture'>Conjectura</localization>\n    <localization string-id='principle'>Princípio</localization>\n    <localization string-id='heuristic'>Heurística</localization>\n    <localization string-id='hypothesis'>Hipótese</localization>\n    <localization string-id='assumption'>Suposição</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>Definição</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Equação</localization>\n    <localization string-id='displaymath'>Matemática em Destaque</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volume</localization>\n    <localization string-id='book'>Livro</localization>\n    <localization string-id='article'>Artigo</localization>\n    <!-- Translation needed for Brazilian Portugese -->\n    <localization string-id='slideshow'>Apresentação de Slides</localization>\n    <localization string-id='letter'>Carta</localization>\n    <localization string-id='memo'>Memorando</localization>\n    <localization string-id='presentation'>Apresentação</localization>\n    <!-- Parts of a document -->\n    <localization string-id='frontmatter'>Pré-textual</localization>\n    <localization string-id='part'>Parte</localization>\n    <localization string-id='chapter'>Capítulo</localization>\n    <localization string-id='appendix'>Apêndice</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>Apêndices</localization>\n    <localization string-id='section'>Seção</localization>\n    <localization string-id='subsection'>Subseção</localization>\n    <localization string-id='subsubsection'>Subsubseção</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>Transparência</localization>\n    <localization string-id='introduction'>Introdução</localization>\n    <localization string-id='conclusion'>Conclusão</localization>\n    <localization string-id='exercises'>Exercícios</localization>\n    <!-- Translation needed for Brazilian Portugese -->\n    <localization string-id='worksheet'>Lista de Exercícios</localization>\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <localization string-id='reading-questions'>Exercícios de Interpretação</localization>\n    <localization string-id='solutions'>Soluções</localization>\n    <localization string-id='glossary'>Glossário</localization>\n    <localization string-id='references'>Referêcias</localization>\n    <!-- Translation needed for Brazilian Portugese -->\n    <localization string-id='backmatter'>Pós-textual</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Parágrafos</localization>\n    <localization string-id='subparagraph'>Subparágrafo</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Nota</localization>\n    <localization string-id='convention'>Convenção</localization>\n    <localization string-id='note'>Nota</localization>\n    <localization string-id='observation'>Observação</localization>\n    <localization string-id='warning'>Atenção</localization>\n    <!-- Translation needed for Brazilian Portugese -->\n    <localization string-id='insight'>Ideia</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>Cálculo</localization>\n    <localization string-id='technology'>Tecnologia</localization>\n    <localization string-id='data'>Dados</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>Nota</localization>\n    <localization string-id='biographical'>Nota Biográfica Aside</localization>\n    <localization string-id='historical'>Nota Histórica</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Exemplo</localization>\n    <localization string-id='question'>Questão</localization>\n    <localization string-id='problem'>Problema</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>Projeto</localization>\n    <localization string-id='activity'>Atividade</localization>\n    <localization string-id='exploration'>Exploração</localization>\n    <localization string-id='task'>Tarefa</localization>\n    <localization string-id='investigation'>Investigação</localization>\n    <!--  -->\n    <!-- Translation needed for Brazilian Portugese -->\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>Coleção</localization>\n    <localization string-id='poem'>Poema</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>Objetivos</localization>\n    <localization string-id='objective'>Objetivo</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <localization string-id='outcomes'>Resultados</localization>\n    <localization string-id='outcome'>Resultado</localization>\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Figura</localization>\n    <localization string-id='table'>Tabela</localization>\n    <localization string-id='listing'>Listagem</localization>\n    <localization string-id='fn'>Nota de rodapé</localization>\n    <localization string-id='contributor'>Contribuidor</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>Lista</localization>\n    <localization string-id='li'>Item</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>Termo</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Parágrafo</localization>\n    <localization string-id='blockquote'>Citação</localization>\n    <localization string-id='pre'>Bloco de Código</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>Fragmento</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Exercício</localization>\n    <!-- Translation needed for Brazilian Portugese -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <localization string-id='inlineexercise'>Exercício de Verificação</localization>\n    <localization string-id='worksheetexercise'>Exercício da Lista</localization>\n    <localization string-id='readingquestion'>Exercício de Interpretação</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Dica</localization>\n    <localization string-id='answer'>Resposta</localization>\n    <localization string-id='solution'>Solução</localization>\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>Grupo de exercícios</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>Referência bibliográfica</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>Sumário</localization>\n    <localization string-id='abstract'>Resumo</localization>\n    <localization string-id='preface'>Prefácio</localization>\n    <localization string-id='acknowledgement'>Agradecimentos</localization>\n    <localization string-id='biography'>Biografia do autor</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>Sobre o autor</localization>\n    <localization string-id='about-authors'>Sobre os autores</localization>\n    <localization string-id='foreword'>Preâmbulo</localization>\n    <localization string-id='dedication'>Dedicatória</localization>\n    <localization string-id='colophon'>Ficha técnica</localization>\n    <!-- Runestone Activities -->\n    <localization string-id='video'>Vídeo</localization>\n    <localization string-id='program'>Programa</localization>\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Índice</localization>\n    <localization string-id='jump-to'>Ir para:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Índice</localization>\n    <localization string-id='see'>Veja</localization>\n    <localization string-id='also'>Veja também</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Símbolo</localization>\n    <localization string-id='description'>Descrição</localization>\n    <localization string-id='location'>Posição</localization>\n    <localization string-id='page'>Página</localization>\n    <localization string-id='continued'>Continua na próxima página</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>Ir ao conteúdo principal</localization>\n    <localization string-id='previous'>Anterior</localization>\n    <localization string-id='up'>Acima</localization>\n    <localization string-id='next'>Próximo</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <!-- TODO: SHORTEN THESE -->\n    <localization string-id='previous-short'>Anterior</localization>\n    <localization string-id='up-short'>Acima</localization>\n    <localization string-id='next-short'>Próximo</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Anotações</localization>\n    <localization string-id='feedback'>Comentários</localization>\n    <localization string-id='authored'>Feito com PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <localization string-id='search-results-heading'>Buscando por</localization>\n    <localization string-id='no-search-results'>Não encontrado</localization>\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>Para</localization>\n    <localization string-id='from'>De</localization>\n    <localization string-id='subject'>Assunto</localization>\n    <localization string-id='date'>Data</localization>\n    <localization string-id='copy'>Cópia</localization>\n    <localization string-id='enclosure'>Anexo</localization>\n    <!-- Various -->\n    <localization string-id='todo'>Para fazer</localization>\n    <localization string-id='editor'>Editor</localization>\n    <localization string-id='edition'>Edição</localization>\n    <localization string-id='website'>Endereço eletrônico</localization>\n    <localization string-id='copyright'>XXXCopyright</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>link permanente</localization>\n    <localization string-id='incontext'>Em Contexto</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Executar</localization>\n    <localization string-id='code'>Código</localization>\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>Instruções</localization>\n    <!-- Interactive exercise feedback messages -->\n    <localization string-id='correct'>Correto</localization>\n    <localization string-id='incorrect'>Incorreto</localization>\n    <localization string-id='blank'>Em brancoBlank</localization>\n    <localization string-id='submit'>Enviar</localization>\n    <localization string-id='check-responses'>Conferir Respostas</localization>\n    <localization string-id='reveal'>Revelar</localization>\n    <localization string-id='randomize'>Aleatoriza</localization>\n    <localization string-id='activate'>Ativar</localization>\n    <localization string-id='reset'>Redefinir</localization>\n    <localization string-id='array'>lista</localization>\n    <!-- \"paper size\" toggle title                                -->\n    <localization string-id='papersize'>Formato do papel</localization>\n    <!-- Additional printing options -->\n    <localization string-id=\"printing-options\">Opções de impressão</localization>\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <localization string-id=\"hide-hints\">Esconder dicas</localization>\n    <localization string-id=\"hide-answers\">Esconder respostas</localization>\n    <localization string-id=\"hide-solutions\">Esconder soluções</localization>\n    <localization string-id=\"print-header\">Imprimir cabeçalho</localization>\n    <localization string-id=\"print-footer\">Imprimir rodapé</localization>\n    <localization string-id=\"first-page\">Primeira página</localization>\n    <localization string-id=\"running\">Página atual</localization>\n    <localization string-id=\"highlight-workspace\">Destacar área para solução</localization>\n    <localization string-id='print'>Imprimir</localization>\n    <localization string-id='print-preview'>Pré-visualização da impressão</localization>\n    <localization string-id='close'>Fechar</localization>\n    <localization string-id='open-new-tab'>Abrir em nova aba</localization>\n</locale>\n"
  },
  {
    "path": "xsl/localizations/pt-PT.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2015-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- pt-PT, Portugese (Portugal) -->\n<!-- António Pereira, apereiraua@gmail.com, 2015-07-26 -->\n\n<locale language=\"pt-PT\" direction=\"ltr\"\n        quote-primary=\"english-double\" quote-secondary=\"english-single\">\n    <!-- The english quotation style above is just a default, it needs adjustment -->\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id=\"theorem\">Teorema</localization>\n    <localization string-id=\"corollary\">Corolário</localization>\n    <localization string-id=\"lemma\">Lema</localization>\n    <localization string-id='algorithm'>Algoritmo</localization>\n    <localization string-id='proposition'>Proposição</localization>\n    <localization string-id='claim'>Afirmação</localization>\n    <localization string-id='fact'>Facto</localization>\n    <!-- <localization string-id='identity'>Identity</localization> -->\n    <!-- PROOF-LIKE -->\n    <localization string-id='proof'>Demonstração</localization>\n    <!-- <localization string-id='argument'>Argument</localization> -->\n    <!-- <localization string-id='justification'>Justification</localization> -->\n    <!-- <localization string-id='reasoning'>Reasoning</localization> -->\n    <!-- <localization string-id='explanation'>Explanation</localization> -->\n    <!-- used for a (logical) portion of a proof -->\n    <!-- <localization string-id='case'>Case</localization> -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>Axioma</localization>\n    <localization string-id='conjecture'>Conjectura</localization>\n    <localization string-id='principle'>Princípio</localization>\n    <!-- <localization string-id='heuristic'>Heuristic</localization> -->\n    <!-- <localization string-id='hypothesis'>Hypothesis</localization> -->\n    <!-- <localization string-id='assumption'>Assumption</localization> -->\n    <!-- Definitions -->\n    <localization string-id='definition'>Definição</localization>\n    <!--Mathematics -->\n    <!-- \"equation\" is a string signaling one line of displayed mathematics         -->\n    <!-- \"displaymath\" is a string signaling several lines of displayed mathematics -->\n    <localization string-id='equation'>Equação</localization>\n    <!-- the translations for 'display mathematics' need revision! -->\n    <localization string-id='displaymath'>Equação</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>Volume</localization>\n    <localization string-id='book'>Livro</localization>\n    <localization string-id='article'>Artigo</localization>\n    <!-- <localization string-id='slideshow'>Slideshow</localization> -->\n    <localization string-id='letter'>Carta</localization>\n    <localization string-id='memo'>Memorando</localization>\n    <localization string-id='presentation'>Apresentação</localization>\n    <!-- Parts of a document -->\n    <!-- 'Front Matter' and 'Back matter' translations need more thinking... -->\n    <localization string-id='frontmatter'>Pré Texto</localization>\n    <localization string-id='part'>Parte</localization>\n    <localization string-id='chapter'>Capítulo</localization>\n    <localization string-id='appendix'>Apêndice</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <!-- <localization string-id='appendices'>Appendices</localization> -->\n    <localization string-id='section'>Secção</localization>\n    <localization string-id='subsection'>Subsecção</localization>\n    <localization string-id='subsubsection'>Subsubsecção</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <!-- <localization string-id='slide'>Slide</localization> -->\n    <localization string-id='introduction'>Introdução</localization>\n    <localization string-id='conclusion'>Conclusão</localization>\n    <localization string-id='exercises'>Exercícios</localization>\n    <!-- <localization string-id='worksheet'>Worksheet</localization> -->\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <!-- <localization string-id='reading-questions'>Reading Questions</localization> -->\n    <!-- <localization string-id='solutions'>Solutions</localization> -->\n    <!-- <localization string-id='glossary'>Glossary</localization> -->\n    <localization string-id='references'>Referências</localization>\n    <localization string-id='backmatter'>Pós Texto</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>Parágrafos</localization>\n    <!-- Adjustments to titles of divisions -->\n    <!-- <localization string-id='group'>Group</localization> -->\n    <localization string-id='subparagraph'>Subparágrafo</localization>\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>Observação</localization>\n    <!-- <localization string-id='convention'>Convention</localization> -->\n    <localization string-id='note'>Nota</localization>\n    <!-- <localization string-id='observation'>Observation</localization> -->\n    <!-- <localization string-id='warning'>Warning</localization> -->\n    <!-- <localization string-id='insight'>Insight</localization> -->\n    <!-- COMPUTATION-LIKE blocks -->\n    <!-- <localization string-id='computation'>Computation</localization> -->\n    <!-- <localization string-id='technology'>Technology</localization> -->\n    <!-- <localization string-id='data'>Data</localization> -->\n    <!-- ASIDE-LIKE blocks -->\n    <!-- <localization string-id='aside'>Aside</localization> -->\n    <!-- <localization string-id='biographical'>Biographical Aside</localization> -->\n    <!-- <localization string-id='historical'>Historical Aside</localization> -->\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>Exemplo</localization>\n    <!-- <localization string-id='question'>Question</localization> -->\n    <!-- <localization string-id='problem'>Problem</localization> -->\n    <!-- PROJECT-LIKE blocks -->\n    <!-- <localization string-id='project'>Project</localization> -->\n    <!-- <localization string-id='activity'>Activity</localization> -->\n    <!-- <localization string-id='exploration'>Exploration</localization> -->\n    <!-- <localization string-id='task'>Task</localization> -->\n    <!-- <localization string-id='investigation'>Investigation</localization> -->\n    <!--  -->\n    <!-- assemblages are collections of minimally structured material -->\n    <!-- <localization string-id='assemblage'>Assemblage</localization> -->\n    <!-- <localization string-id='poem'>Poem</localization> -->\n    <!-- Objectives is the block, objective is a list item within -->\n    <!-- <localization string-id='objectives'>Objectives</localization> -->\n    <!-- <localization string-id='objective'>Objective</localization> -->\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- <localization string-id='outcomes'>Outcomes</localization> -->\n    <!-- <localization string-id='outcome'>Outcome</localization> -->\n    <!--  -->\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <!-- <localization string-id='openquestion'>Open Question</localization> -->\n    <!-- <localization string-id='openproblem'>Open Problem</localization> -->\n    <!-- <localization string-id='openconjecture'>Open Conjecture</localization> -->\n    <!-- \"discussion\" on open problems -->\n    <!-- <localization string-id='context'>Context</localization> -->\n    <!-- <localization string-id='discussion'>Discussion</localization> -->\n    <!-- <localization string-id='opinion'>Opinion</localization> -->\n    <!-- <localization string-id='status'>Status</localization> -->\n    <!-- <localization string-id='suggestion'>Suggestion</localization> -->\n    <!--  -->\n    <localization string-id='figure'>Figura</localization>\n    <localization string-id='table'>Tabela</localization>\n    <!-- Translation needed for Portugal Portugese -->\n    <!-- <localization string-id='listing'>Listing</localization> -->\n    <localization string-id='fn'>Nota de rodapé</localization>\n    <!-- Translation needed for Portugal Portugese -->\n    <!-- <localization string-id='contributor'>Contributor</localization> -->\n    <!-- Lists and their items -->\n    <!-- Translations needed for Portugal Portugese -->\n    <!-- <localization string-id='list'>List</localization> -->\n    <!-- <localization string-id='li'>Item</localization> -->\n    <!-- A term (word) defined in a glossary item -->\n    <!-- <localization string-id='gi'>Term</localization> -->\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>Parágrafo</localization>\n    <!-- <localization string-id='blockquote'>Quotation</localization> -->\n    <!-- <localization string-id='pre'>Code Block</localization> -->\n    <!-- Literate programming, a chunk of computer code -->\n    <!-- <localization string-id='fragment'>Fragment</localization> -->\n    <!-- Parts of an exercise and its solution -->\n    <!-- See the en-US file for a detailed explanation of the words for exercises -->\n    <localization string-id='divisionalexercise'>Exercício</localization>\n    <!-- Translation needed for Portugal Portugese -->\n    <!-- See en-US file for distinctions here, do not repeat previous translation -->\n    <!-- <localization string-id='inlineexercise'>Checkpoint</localization> -->\n    <!-- <localization string-id='worksheetexercise'>Worksheet Exercise</localization> -->\n    <!-- <localization string-id='readingquestion'>Reading Question</localization> -->\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>Dica</localization>\n    <localization string-id='answer'>Resposta</localization>\n    <localization string-id='solution'>Solução</localization>\n    <!-- Translation needed for Portugal Portugese -->\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <!-- <localization string-id='subexercises'>Subexercises</localization> -->\n    <!-- <localization string-id='exercisegroup'>Exercise Group</localization> -->\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <!-- the term 'Bibliographic Item' could be just 'Referência'... -->\n    <localization string-id='biblio'>Referência Bibliográfica</localization>\n    <!-- Front matter components -->\n    <!-- Other possible names for 'toc' are: Conteúdo, Sumário, Índice -->\n    <localization string-id='toc'>Sumário</localization>\n    <localization string-id='abstract'>Resumo</localization>\n    <localization string-id='preface'>Prefácio</localization>\n    <localization string-id='acknowledgement'>Agradecimentos</localization>\n    <localization string-id='biography'>Biografia do Autor</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <!-- <localization string-id='about-author'>About the Author</localization> -->\n    <!-- <localization string-id='about-authors'>About the Authors</localization> -->\n    <!-- Other possible names for 'foreword': Prefácio -->\n    <localization string-id='foreword'>Prefácio</localization>\n    <localization string-id='dedication'>Dedicatória</localization>\n    <localization string-id='colophon'>Ficha técnica</localization>\n    <!-- Runestone Activities -->\n    <!-- <localization string-id='video'>Video</localization> -->\n    <!-- <localization string-id='program'>Program</localization> -->\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index'>Índice Remissivo</localization>\n    <!-- <localization string-id='jump-to'>Jump to:</localization> -->\n    <!-- Parts of the Index -->\n    <localization string-id='index'>Índice Remissivo</localization>\n    <localization string-id='see'>Veja</localization>\n    <localization string-id='also'>Veja também</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>Símbolo</localization>\n    <localization string-id='description'>Descrição</localization>\n    <!-- Translation needed for Portugal Portugese -->\n    <!-- <localization string-id='location'>Location</localization> -->\n    <localization string-id='page'>Página</localization>\n    <localization string-id='continued'>Continua na página seguinte</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <!-- <localization string-id='skip-to-content'>Skip to main content</localization> -->\n    <localization string-id='previous'>Anterior</localization>\n    <localization string-id='up'>Acima</localization>\n    <localization string-id='next'>Seguinte</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <!-- TODO: SHORTEN THESE -->\n    <localization string-id='previous-short'>Anterior</localization>\n    <localization string-id='up-short'>Acima</localization>\n    <localization string-id='next-short'>Seguinte</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>Anotações</localization>\n    <localization string-id='feedback'>Comentário</localization>\n    <localization string-id='authored'>Produzido com PreTeXt</localization>\n    <!-- Search Results display/dialog -->\n    <!-- <localization string-id='search-results-heading'>Search Results</localization> -->\n    <!-- <localization string-id='no-search-results'>No results</localization> -->\n    <!-- Parts of memos and letters -->\n    <localization string-id='to'>Para</localization>\n    <localization string-id='from'>De</localization>\n    <localization string-id='subject'>Assunto</localization>\n    <localization string-id='date'>Data</localization>\n    <localization string-id='copy'>Cópia</localization>\n    <localization string-id='enclosure'>Anexo</localization>\n    <!-- Various -->\n    <localization string-id='todo'>Para fazer</localization>\n    <localization string-id='editor'>Editor</localization>\n    <!-- <localization string-id='edition'>Edition</localization> -->\n    <!-- <localization string-id='website'>Website</localization> -->\n    <localization string-id='copyright'>Copyright</localization>\n    <!-- <localization string-id='keywords'>Keywords</localization> -->\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <!-- Translation needed for Portugal Portugese -->\n    <!-- <localization string-id='permalink'>permalink</localization> -->\n    <!-- <localization string-id='incontext'>In Context</localization> -->\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Following is in ENGLISH and should be translated.  Due to its -->\n    <!-- ubiquitous nature we have not left it undefined.  See the     -->\n    <!-- \"en-US\" file for a more complete explanation of its use.      -->\n    <!-- Please remove this entire comment when translated.  Thanks.   -->\n    <localization string-id='permalink-tooltip'>Copy heading and permalink for</localization>\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (English)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <!-- Translate at first opportunity, please                  -->\n    <localization string-id='evaluate'>Evaluate</localization>\n    <!-- <localization string-id='code'>Code</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <!-- <localization string-id='instructions'>Instructions</localization> -->\n    <!-- Interactive exercise feedback messages -->\n    <!-- <localization string-id='correct'>Correct</localization> -->\n    <!-- <localization string-id='incorrect'>Incorrect</localization> -->\n    <!-- <localization string-id='blank'>Blank</localization> -->\n    <!-- <localization string-id='submit'>Submit</localization> -->\n    <!-- <localization string-id='check-responses'>Check Responses</localization> -->\n    <!-- <localization string-id='reveal'>Reveal</localization> -->\n    <!-- <localization string-id='randomize'>Randomize</localization> -->\n    <!-- <localization string-id='activate'>Activate</localization> -->\n    <!-- <localization string-id='reset'>Reset</localization> -->\n    <!-- <localization string-id='array'>array</localization> -->\n    <!-- \"paper size\" toggle title                                -->\n    <localization string-id='papersize'>Formato do papel</localization>\n    <!-- Additional printing options -->\n    <localization string-id=\"printing-options\">Opções de impressão</localization>\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <localization string-id=\"hide-hints\">Esconder dicas</localization>\n    <localization string-id=\"hide-answers\">Esconder respostas</localization>\n    <localization string-id=\"hide-solutions\">Esconder soluções</localization>\n    <localization string-id=\"print-header\">Imprimir cabeçalho</localization>\n    <localization string-id=\"print-footer\">Imprimir rodapé</localization>\n    <localization string-id=\"first-page\">Primeira página</localization>\n    <localization string-id=\"running\">Página atual</localization>\n    <localization string-id=\"highlight-workspace\">Destacar área para solução</localization>\n    <localization string-id='print'>Imprimir</localization>\n    <localization string-id='print-preview'>Pré-visualização da impressão</localization>\n    <localization string-id='close'>Fechar</localization>\n    <localization string-id='open-new-tab'>Abrir em nova aba</localization>\n</locale>\n"
  },
  {
    "path": "xsl/localizations/zh-HANS.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!--********************************************************************\nCopyright 2014-2021 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- See  xsl/localizations/README.md  for an explanation of this file -->\n\n<!-- zh-HANS, Chinese Simplified (China) -->\n<!-- Hongqi Wang, whq_nuaa@qq.com, 2024-01-03   -->\n\n<!-- Every localization should specify the direction of the language, -->\n<!-- there is no assumed default.  Left-to-right is \"ltr\" and         -->\n<!-- right-to-left is \"rtl\".  Provide these exactly as written since  -->\n<!-- they can migrate untouched into output (e.g. HTML).              -->\n<locale language=\"zh-HANS\" direction=\"ltr\">\n    <!-- THEOREM-LIKE blocks -->\n    <!-- Environments which have proofs, plus proofs themselves -->\n    <localization string-id='theorem'>定理</localization>\n    <localization string-id='corollary'>推论</localization>\n    <localization string-id='lemma'>引理</localization>\n    <localization string-id='algorithm'>算法</localization>\n    <localization string-id='proposition'>命题</localization>\n    <localization string-id='claim'>断言</localization>\n    <localization string-id='fact'>事实</localization>\n    <localization string-id='identity'>恒等</localization>\n    <!-- PROOF-LIKE -->\n    <!-- We know these five names for PROOF-LIKE have subtle shades of meaning. -->\n    <!-- Provide a good translation for \"proof\" itself, and do your best with   -->\n    <!-- the others.  It is highly likely authors will rename one or more of    -->\n    <!-- the others.                                                            -->\n    <localization string-id='proof'>证明</localization>\n    <localization string-id='argument'>论证</localization>\n    <localization string-id='justification'>论证</localization>\n    <localization string-id='reasoning'>推理</localization>\n    <localization string-id='explanation'>解释</localization>\n    <!-- used for a (logical) portion of a proof -->\n    <localization string-id='case'>情形</localization>\n    <!-- Components of the narrative -->\n    <!-- Mathematical statements without proofs -->\n    <!-- AXIOM-LIKE blocks -->\n    <localization string-id='axiom'>公理</localization>\n    <localization string-id='conjecture'>猜想</localization>\n    <localization string-id='principle'>原理</localization>\n    <localization string-id='heuristic'>启发</localization>\n    <localization string-id='hypothesis'>假设</localization>\n    <localization string-id='assumption'>假设</localization>\n    <!-- Definitions -->\n    <localization string-id='definition'>定义</localization>\n    <!-- Single Line Mathematics -->\n    <localization string-id='me'>方程</localization>\n    <localization string-id='men'>方程</localization>\n    <localization string-id='mrow'>方程</localization>\n    <!-- Display Mathematics -->\n    <localization string-id='md'>独立展示</localization>\n    <localization string-id='mdn'>独立展示</localization>\n    <!-- Types of documents, mostly for informational messages -->\n    <localization string-id='volume'>卷册</localization>\n    <localization string-id='book'>书籍</localization>\n    <localization string-id='article'>论文</localization>\n    <localization string-id='letter'>书札</localization>\n    <localization string-id='slideshow'>幻灯片</localization>\n    <localization string-id='memo'>备忘录</localization>\n    <localization string-id='presentation'>演示文稿</localization>\n    <!-- Parts of a document -->\n    <!-- \"part\" will also be used for a \"stage\" of a WeBWorK problem -->\n    <localization string-id='frontmatter'>前置页</localization>\n    <localization string-id='part'>部分</localization>\n    <localization string-id='chapter'>章</localization>\n    <localization string-id='appendix'>附录</localization>\n    <!-- Next is the plural of Appendix, used to identify a group of appendix -->\n    <localization string-id='appendices'>附录</localization>\n    <localization string-id='section'>节</localization>\n    <localization string-id='subsection'>子节</localization>\n    <localization string-id='subsubsection'>子子节</localization>\n    <!-- A \"slide\" is a screenful of a presentation (Powerpoint, Beamer) -->\n    <localization string-id='slide'>幻灯片</localization>\n    <localization string-id='introduction'>绪言</localization>\n    <localization string-id='conclusion'>结论</localization>\n    <localization string-id='exercises'>练习</localization>\n    <localization string-id='worksheet'>工作单</localization>\n    <!-- <localization string-id='handout'>Handout</localization> -->\n    <localization string-id='reading-questions'>问题</localization>\n    <localization string-id='solutions'>解答</localization>\n    <localization string-id='glossary'>术语</localization>\n    <localization string-id='references'>参考文献</localization>\n    <localization string-id='backmatter'>后置页</localization>\n    <!-- paragraph is deprecated, getting plural correct is not super critical, just in messages -->\n    <localization string-id='paragraphs'>段落</localization>\n    <localization string-id='commentary'>备注</localization>\n    <localization string-id='subparagraph'>子段落</localization>\n    <!-- Components of the narrative -->\n    <!-- REMARK-LIKE blocks -->\n    <!-- \"note\" is used within \"biblio\", likely to change -->\n    <localization string-id='remark'>备注</localization>\n    <localization string-id='convention'>约定</localization>\n    <localization string-id='note'>备注</localization>\n    <localization string-id='observation'>观察</localization>\n    <localization string-id='warning'>警告</localization>\n    <localization string-id='insight'>洞察</localization>\n    <!-- COMPUTATION-LIKE blocks -->\n    <localization string-id='computation'>计算</localization>\n    <localization string-id='technology'>技术</localization>\n    <localization string-id='data'>数据</localization>\n    <!-- ASIDE-LIKE blocks -->\n    <localization string-id='aside'>旁注</localization>\n    <localization string-id='biographical'>传记旁注</localization>\n    <localization string-id='historical'>历史旁注</localization>\n    <!-- EXAMPLE-LIKE blocks -->\n    <localization string-id='example'>例</localization>\n    <localization string-id='question'>问题</localization>\n    <localization string-id='problem'>问题</localization>\n    <!-- PROJECT-LIKE blocks -->\n    <localization string-id='project'>工程</localization>\n    <localization string-id='activity'>活动</localization>\n    <localization string-id='exploration'>探究</localization>\n    <localization string-id='task'>任务</localization>\n    <localization string-id='investigation'>调查</localization>\n    <!-- assemblages are collections of minimally structured material -->\n    <localization string-id='assemblage'>集</localization>\n    <localization string-id='poem'>诗</localization>\n    <!-- Objectives is the block, objective is a list item within -->\n    <localization string-id='objectives'>目标清单</localization>\n    <localization string-id='objective'>目标</localization>\n    <!-- Outcomes is the block, outcome is a list item within (different) -->\n    <!-- These two words need to be different, to avoid ambiguous cross-references -->\n    <localization string-id='outcomes'>成果清单</localization>\n    <localization string-id='outcome'>成果</localization>\n    <!-- \"Open\" means unsolved, a research question/problem -->\n    <localization string-id='openquestion'>开放问题</localization>\n    <localization string-id='openproblem'>开放问题</localization>\n    <localization string-id='openconjecture'>开放猜想</localization>\n    <!-- \"discussion\" on open problems -->\n    <localization string-id='context'>上下文</localization>\n    <localization string-id='discussion'>讨论</localization>\n    <localization string-id='opinion'>见解</localization>\n    <localization string-id='status'>状态</localization>\n    <localization string-id='suggestion'>建议</localization>\n    <!--  -->\n    <localization string-id='figure'>图</localization>\n    <localization string-id='table'>表</localization>\n    <localization string-id='listing'>清单</localization>\n    <localization string-id='fn'>脚注</localization>\n    <localization string-id='contributor'>贡献者</localization>\n    <!-- Lists and their items -->\n    <localization string-id='list'>列表</localization>\n    <localization string-id='li'>项</localization>\n    <!-- A term (word) defined in a glossary item -->\n    <localization string-id='gi'>术语</localization>\n    <!-- A regular paragraph, not the old sectioning structure -->\n    <localization string-id='p'>段落</localization>\n    <localization string-id='blockquote'>引用</localization>\n    <!-- The \"pre\" element is short for \"preformatted text\".  PreTeXt uses it -->\n    <!-- more as paragraph, rendered in monospace, with newlines respected. -->\n    <localization string-id='pre'>代码块</localization>\n    <!-- Literate programming, a chunk of computer code -->\n    <localization string-id='fragment'>代码片段</localization>\n    <!-- Parts of an exercise and its solution -->\n    <!-- An \"exercise\", at any level, within an \"exercises\" division is a          -->\n    <!-- \"divisional\" exercise and the string employed is 'divisionalexercise'.    -->\n    <!-- An \"exercise\" whose parent is a division (chapter, section, etc) we       -->\n    <!-- call an \"inline exercise\" and the string employed is 'inlineexercise'.    -->\n    <!-- And an \"exercise\" in a \"worksheet\" is a 'worksheetexercise'.              -->\n    <!-- And an \"exercise\" in a \"reading-questions\" is a 'readingquestion'.         -->\n    <!-- It is important to use different translations so that a text with         -->\n    <!-- different types of exercises do not have ambiguous cross-references       -->\n    <!-- (there is an example of this at the start of one of the later             -->\n    <!-- sections of the sample article).                                          -->\n    <!--                                                                           -->\n    <!-- In English, an \"Exercise\" is something you do that has a beneficial       -->\n    <!-- outcome, such as \"I am going to the gym to exercise.\"  A \"Checkpoint\"     -->\n    <!-- is something you must do before you do something else.  Another use of    -->\n    <!-- the term is a location on a roadway where you must stop for the      -->\n    <!-- police to do an inspection. A worksheet is a collection of activities or  -->\n    <!-- problems, typically printed on paper, which might be used in a classroom. -->\n    <localization string-id='divisionalexercise'>练习</localization>\n    <localization string-id='inlineexercise'>检查点</localization>\n    <localization string-id='worksheetexercise'>工作单练习</localization>\n    <localization string-id='readingquestion'>问题</localization>\n    <localization string-id='webwork'>WeBWorK</localization>\n    <localization string-id='hint'>提示</localization>\n    <localization string-id='answer'>答案</localization>\n    <localization string-id='solution'>解答</localization>\n    <!-- A subdivision of an \"exercises\" section -->\n    <localization string-id='subexercises'>子练习</localization>\n    <!-- A group of divisional exercises (with introduction and conclusion) -->\n    <localization string-id='exercisegroup'>练习组</localization>\n    <!-- Bibliographic items (note is distinct from sidebar \"Annotations\" below) -->\n    <localization string-id='biblio'>书目项</localization>\n    <!-- Front matter components -->\n    <localization string-id='toc'>目录</localization>\n    <localization string-id='abstract'>摘要</localization>\n    <localization string-id='preface'>前言</localization>\n    <localization string-id='acknowledgement'>致谢</localization>\n    <localization string-id='biography'>作者简介</localization>\n    <!-- singular and plural titles for biography subdivision -->\n    <localization string-id='about-author'>关于作者</localization>\n    <localization string-id='about-authors'>关于作者</localization>\n    <localization string-id='foreword'>前言</localization>\n    <localization string-id='dedication'>致谢</localization>\n    <localization string-id='colophon'>版权</localization>\n    <!-- Runestone Activities -->\n    <!-- These terms will appear in student activity/engagement -->\n    <!-- reports for an instructor of a Runestone course.       -->\n    <!-- Normally they will not be apparent to a reader.        -->\n    <localization string-id='video'>Video</localization>\n    <localization string-id='program'>Program</localization>\n    <!-- <localization string-id='true'>True</localization> -->\n    <!-- <localization string-id='false'>False</localization> -->\n    <!-- <localization string-id='or'>Or</localization> -->\n    <!-- <localization string-id='either'>Either</localization> -->\n    <!-- <localization string-id='uncategorized'>Uncategorized</localization> -->\n    <!-- <localization string-id='query'>Query</localization> -->    <!-- \"ActiveCode\" and \"CodeLens\" are Runestone-constructs -->\n    <!-- and so really *should not* be translated.            -->\n    <localization string-id='program-activecode'>ActiveCode</localization>\n    <localization string-id='program-codelens'>CodeLens</localization>\n    <!-- Back matter components -->\n    <!-- index-part is deprecated, but not abandoned          -->\n    <!-- NB: repurpose translations, maybe move appendix here -->\n    <localization string-id='index-part'>索引</localization>\n    <localization string-id='jump-to'>跳转:</localization>\n    <!-- Parts of the Index -->\n    <localization string-id='index'>索引</localization>\n    <localization string-id='see'>见</localization>\n    <localization string-id='also'>另见</localization>\n    <!-- Notation List headings/foot -->\n    <localization string-id='symbol'>符号</localization>\n    <localization string-id='description'>描述</localization>\n    <localization string-id='location'>位置</localization>\n    <localization string-id='page'>页</localization>\n    <localization string-id='continued'>续</localization>\n    <!-- Navigation Interface elements -->\n    <!-- Assistive \"skip to content\" link -->\n    <localization string-id='skip-to-content'>主要内容</localization>\n    <localization string-id='previous'>向前</localization>\n    <localization string-id='up'>向上</localization>\n    <localization string-id='next'>向后</localization>\n    <!-- Keep these short, so buttons are not overly wide, 4 characters maximum -->\n    <localization string-id='previous-short'>向前</localization>\n    <localization string-id='up-short'>向上</localization>\n    <localization string-id='next-short'>向后</localization>\n    <!-- NB: Use toc from above for both headings and navigation sidebar-->\n    <localization string-id='annotations'>注释</localization>\n    <localization string-id='feedback'>反馈</localization>\n    <!-- This phrase should suggest that PreTeXt is the source -->\n    <!-- language that makes a particular output possible      -->\n    <localization string-id='authored'>PreTeXt写就</localization>\n    <!-- Search Results display/dialog -->\n    <!-- The result of a search as part of HTML output will throw up       -->\n    <!-- an overlay window with the search results.  \"Search Results\"      -->\n    <!-- is like a heading.  It renders like \"Search Results: algorithm\".  -->\n    <!-- When a reader uses a term that produces no results (perhaps they  -->\n    <!-- misspell the search term) then they get a message to that effect. -->\n    <!-- Capitalize \"Search Results\" - used as a heading, no punctuation   -->\n    <localization string-id='search-results-heading'>搜索结果</localization>\n    <!-- Short phrase, no punctuation -->\n    <localization string-id='no-search-results'>没有结果</localization>\n   <!-- Parts of memos and letters -->\n    <localization string-id='to'>致</localization>\n    <localization string-id='from'>来自</localization>\n    <localization string-id='subject'>主题</localization>\n    <localization string-id='date'>日期</localization>\n    <localization string-id='copy'>抄送</localization>\n    <localization string-id='enclosure'>附件</localization>\n    <!-- Various -->\n    <localization string-id='todo'>待办</localization>\n    <localization string-id='editor'>编辑器</localization>\n    <localization string-id='edition'>版本</localization>\n    <localization string-id='website'>网站</localization>\n    <localization string-id='copyright'>版权</localization>\n    <!-- HTML clickables (lowercase strings to click on) -->\n    <localization string-id='permalink'>永久链接</localization>\n    <localization string-id='incontext'>文中</localization>\n    <!-- Static representation link to the dedicated HTML page (\"standalone\") -->\n    <!-- <localization string-id='standalone'>Standalone</localization> -->\n    <!-- Static representation link to the embeddable iframe version (\"embed\") -->\n    <!-- <localization string-id='embed'>Embed</localization> -->\n    <!-- Sage Cell evaluate button      -->\n    <!-- eg, \"Evaluate (Maxima)\"        -->\n    <!-- 2017-05-14: 'code' is obsolete -->\n    <!-- This needs to be defined to *something* (always)       -->\n    <!-- else whatever crud ends up on the button kills the cell -->\n    <localization string-id='evaluate'>求解</localization>\n    <!-- <localization string-id='code'>Code</localization> -->\n    <!-- How to run an interactive widget, sliders, checkboxes, etc -->\n    <localization string-id='instructions'>说明</localization>\n    <!-- Interactive exercise feedback messages                   -->\n    <!-- These might be part of a feedback message for submitting -->\n    <!-- an answer, e.g. \"Correct!\" or \"Correct: 50%\".            -->\n    <localization string-id='correct'>正确</localization>\n    <localization string-id='incorrect'>错误</localization>\n    <!-- To signal that a reader left an answer blank             -->\n    <localization string-id='blank'>空白</localization>\n    <!-- Submit or check responses                                -->\n    <localization string-id='submit'>提交</localization>\n    <localization string-id='check-responses'>校验</localization>\n    <!-- Reveal correct answers                                   -->\n    <localization string-id='reveal'>显示</localization>\n    <!-- Randomize parameters for a randomizable exercise         -->\n    <localization string-id='randomize'>随机</localization>\n    <!-- Activate an interactive (from a static preview)          -->\n    <localization string-id='activate'>激活</localization>\n    <!-- Reset an interactive to its original state               -->\n    <localization string-id='reset'>重置</localization>\n    <!-- Describe an array of fill-in-the-blanks, say for a matrix -->\n    <localization string-id='array'>数组</localization>\n    <!-- Print page button text -->\n    <localization string-id='print'>打印</localization>\n    <!-- <localization string-id='papersize'>Paper size</localization> -->\n    <!-- Additional printing options -->\n    <!-- <localization string-id=\"printing-options\">Additional printing options</localization> -->\n    <!-- \"hide hint/answer/solutions\" toggle title                         -->\n    <!-- <localization string-id=\"hide-hints\">Hide hints</localization> -->\n    <!-- <localization string-id=\"hide-answers\">Hide answers</localization> -->\n    <!-- <localization string-id=\"hide-solutions\">Hide solutions</localization> -->\n    <!-- <localization string-id=\"print-header\">Print headers</localization> -->\n    <!-- <localization string-id=\"print-footer\">Print footers</localization> -->\n    <!-- <localization string-id=\"first-page\">First page</localization> -->\n    <!-- <localization string-id=\"running\">Running</localization> -->\n    <!-- <localization string-id=\"highlight-workspace\">Highlight workspace</localization> -->\n    <!-- <localization string-id='print-preview'>Print preview</localization> -->\n    <!-- <localization string-id='close'>Close</localization> -->\n    <!-- <localization string-id='open-new-tab'>Open in new tab</localization> -->\n</locale>\n"
  },
  {
    "path": "xsl/pretext-assembly.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:pf=\"https://prefigure.org\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl date str\"\n    exclude-result-prefixes=\"pi\"\n>\n\n<!-- This is the once-mythical pre-processor, though we prefer     -->\n<!-- to describe it as the \"assembly\" of \"enhanced\" source.  By    -->\n<!-- \"assembly\" we mean pre-processing of source, by \"assembling\"  -->\n<!-- various pieces of material or content, authored or computed,  -->\n<!-- into an enhanced source tree. This template operates by       -->\n<!-- successive passes through the entire source tree making       -->\n<!-- adjustments into a new \"enhanced\" or modified source tree     -->\n<!-- with each pass.                                               -->\n<!--                                                               -->\n<!-- * $original will point to source file/tree/XML at the overall -->\n<!--   \"pretext\" element.                                          -->\n<!-- * The \"version\" templates are applied to decide if certain    -->\n<!--   elements are excluded from the source tree.  This creates   -->\n<!--   the new $version source tree by *removing* source.  It also -->\n<!--   resolves \"custom\" elements.  If these two features have     -->\n<!--   been used properly by an author, then the result should be  -->\n<!--   valid PreTeXt (when perhaps the authored source was not).   -->\n<!-- * The modal \"assembly\" templates are applied to the source    -->\n<!--   root element, creating a new version of the source, which   -->\n<!--   has been \"enhanced\".  Various things happen in this pass,   -->\n<!--   such as assembling auxiliary files of content (WeBWorK      -->\n<!--   representations, private solutions, bibliographic items).   -->\n<!--   This creates the $assembly source tree by *adding* new      -->\n<!--   source elements.                                            -->\n<!-- * The \"repair\" templates will automatically repair deprecated -->\n<!--   constructions so that actual conversions can remove         -->\n<!--   orphaned code.  Despite the name, we also implement         -->\n<!--   conveniences that are universal accross all conversions, so -->\n<!--   that conversions can assume a more canonical version of the -->\n<!--   source, or remove the need for additional templates to      -->\n<!--   realize certain constructions (e.g. url/@visual).  This     -->\n<!--   creates the $repair source tree by *changing* source.       -->\n<!-- * $root will point to the root of the final enhanced          -->\n<!--   source file/tree/XML.                                       -->\n<!-- * Derived variables, $docinfo and $document-root, will        -->\n<!--   be created here for use in subsequent stylesheets.          -->\n<!--                                                               -->\n<!-- Notes:                                                        -->\n<!--                                                               -->\n<!-- 1.  $original is needed for context switches back into the    -->\n<!--     original authored source, such as for determining the     -->\n<!--     location of the source in the file system.                -->\n<!-- 2.  Any coordination of automatically assigned identifiers    -->\n<!--     requires identical source, so even a simple extraction    -->\n<!--     stylesheet might require preparing identical source       -->\n<!--     via this method.                                          -->\n<!-- 3.  Overrides, customization of the assembly will typically   -->\n<!--     happen here, but can be converter-specific in some ways.  -->\n<!--                                                               -->\n<!-- The \"publisher-variables.xsl\" and \"pretext-assembly.xsl\"      -->\n<!-- stylesheets are symbiotic, and should be imported             -->\n<!-- simultaneously.  Assembly will change the source in various   -->\n<!-- ways, while some defaults for publisher variables will depend -->\n<!-- on source.  The default variables should depend on gross      -->\n<!-- structure and adjustments should be to smaller portions of    -->\n<!-- the source, but we don't take any chances.  So, note in       -->\n<!-- \"assembly\" that an intermediate tree is defined as a          -->\n<!-- variable, which is then used in defining some variables,      -->\n<!-- based on assembled source.  Conversely, certain variables,    -->\n<!-- such as locations of customizations or private solutions,     -->\n<!-- are needed early in assembly, while other variables, such     -->\n<!-- as options for numbering, are needed for later enhancements   -->\n<!-- to the source.  If new code results in undefined, or          -->\n<!-- recursively defined, variables, this discussion may be        -->\n<!-- relevant.  (This is repeated verbatim in the other            -->\n<!-- stylesheet).                                                  -->\n<!--  -->\n<!-- Note too, that we want this stylesheet to be independent, and -->\n<!-- that can be tested with the  pretext-enhanced-source.xsl      -->\n<!-- stylesheet.  There is one danger: any (modal) template        -->\n<!-- applied here, needs to be defined here.  \"Normal\" conversions -->\n<!-- will import things like \"pretext-common.xsl\" and templates    -->\n<!-- defined there will be available.  But when not defined here,  -->\n<!-- the default is to just apply default templates to the         -->\n<!-- content, which may generally just produce a lot of text.      -->\n<!-- Which is no good, say as an attribute value.                  -->\n\n<!-- Isolate computation of numbers -->\n<xsl:import href=\"./pretext-numbers.xsl\"/>\n<!-- Isolate conversion of Runestone/interactive to PreTeXt/static -->\n<xsl:import href=\"./pretext-runestone-static.xsl\"/>\n\n<!-- We explicitly do not import \"pretext-common.xsl\" as we want    -->\n<!-- this important pre-processing stylesheet to have no hidden     -->\n<!-- dependencies.  In almost every rational use, the \"-common\"     -->\n<!-- stylesheet is imported by a conversion, so it is easy to       -->\n<!-- miss these dependencies.  An example in 2022-06 was the use    -->\n<!-- of the \"visible-id\" template to coordinate construction and    -->\n<!-- insertion of WeBWorK problems with an intervening trip to a    -->\n<!-- WW server.  The \"pretext-enhanced-source.xsl\" stylesheet is    -->\n<!-- one place where \"-common\" does not creep in.  Use of a modal   -->\n<!-- template here, with a definition in -common, will do a         -->\n<!-- massive \"value-of\" when not defined for the \"-enhanced-source\" -->\n<!-- stylesheet, which might be detectable (in strange ways).       -->\n\n<!-- The \"representations\" pass is used to make derived versions of      -->\n<!-- authored exercises which can be rendered dynamically.  For example, -->\n<!-- a multiple choice question.  These representations can be \"static\"  -->\n<!-- and so meant for use in PDF or braille output, or \"dynamic\", which  -->\n<!-- means anyplace Javascript (or similar) is available.  Right now     -->\n<!-- that is just HTML (and not output built on HTML, such as EPUB).     -->\n<!--                                                                     -->\n<!-- Notes:                                                              -->\n<!--   * We default here to \"static\".  HTML production will override     -->\n<!--     to \"dynamic\" and then any importing stylesheet will need to     -->\n<!--     override back to \"static\".                                      -->\n<!--   * 'pg-problems' are WeBWork problems for an archive               -->\n<!--   * If testing, the pretext-enhanced-source.xsl  stylesheet will    -->\n<!--     need a stringparam override to view and test dynamic versions.  -->\n<xsl:variable name=\"exercise-style\" select=\"'static'\"/>\n\n<!-- Short-Circuit -->\n<!-- Sometimes we only want to convert to a \"version\" (valid PreTeXt) via -->\n<!-- the resolution of version support and customizations.  Examples are  -->\n<!-- determining publisher variables (for generating something like LaTeX -->\n<!-- images, when we do not process the whole source) or performiong      -->\n<!-- validation.  We control this with an internal variable, which is not -->\n<!-- documented as an author or publisher feature.  When we select only   -->\n<!-- the production of the \"version\" tree, the choice of \"exercise-style\" -->\n<!-- is irrelevant.                                                       -->\n\n<!-- default is empty, so we ccan detect non-use -->\n<xsl:param name=\"assembly.version-only\" select=\"''\"/>\n\n<!-- Set to 'yes' to enable diagnostic checks, such as   -->\n<!-- verifying coherence of @assembly-id and @unique-id. -->\n<!-- Not documented as an author or publisher feature.   -->\n<xsl:param name=\"assembly.debug\" select=\"''\"/>\n<xsl:variable name=\"b-assembly-debug\" select=\"$assembly.debug = 'yes'\"/>\n\n<!-- onvert to a boolean, with error-checking -->\n<xsl:variable name=\"version-only\">\n    <xsl:choose>\n        <xsl:when test=\"$assembly.version-only = ''\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$assembly.version-only = 'yes'\">\n            <xsl:text>yes</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$assembly.version-only = 'no'\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:  the internal parameter  assembly.version-only  received an unrecognized value of \"<xsl:value-of select=\"$assembly.version-only\"/>\" (possible values are \"yes\" and \"no\")</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-version-only\" select=\"$version-only = 'yes'\"/>\n\n<!-- ################################################ -->\n<!-- Controlling Two-Pass Extraction and Substitution -->\n<!-- ################################################ -->\n\n<!-- Some objects are authored in their native source languages,     -->\n<!-- and after one application of this stylesheet, can be extracted, -->\n<!-- \"compiled\", and then automatically incorporated into output     -->\n<!-- formats.  An example is a \"latex-image\", which is extracted,    -->\n<!-- and compiled by LaTeX into an image, which can then simply be   -->\n<!-- pointed to reliably by the mechanisms of the various output     -->\n<!-- formats.  In other words, the result of this \"compilation\"      -->\n<!-- stands on its own, and is not brought back into the source.     -->\n<!--                                                                 -->\n<!-- Other objects are extracted, then processed (sent to a server   -->\n<!-- typically), and a \"static\" PreTeXt version, in valid PreTeXt    -->\n<!-- syntax, is returned and captured in files by the Python         -->\n<!-- extraction step.  Then in a general aplication of this          -->\n<!-- stylesheet to produce static output formats, those files are    -->\n<!-- read and the static versions are substituted into the eventual  -->\n<!-- source, for processing by stylesheets producing less-capable    -->\n<!-- output (less-capable than HTML).                                -->\n<!--                                                                 -->\n<!-- Such objects are:                                               -->\n<!--                                                                 -->\n<!--   WeBWorK (WW/PG), MyOpenMath (MOM),                            -->\n<!--   Dynamic Fill-in-the-Blank (FITB)                              -->\n<!--                                                                 -->\n<!-- But there is a \"cicken-and-egg condition\" if two such objects   -->\n<!-- are present in a fresh, un-processed, source document.  The     -->\n<!-- extraction of the first object will also try to \"sub in\" the    -->\n<!-- static versions of the second object from its                   -->\n<!-- extracted/generated files, which do not yet exist.  So we note  -->\n<!-- which extraction is happening *by a variable that is            -->\n<!-- over-ridden by the particular extraction stylesheet* and we     -->\n<!-- use this information to avoid the substitution.  We assume this -->\n<!-- does not disturb the identifiers in use to coordinate the       -->\n<!-- extraction and substitution.                                    -->\n<!--                                                                 -->\n<!-- At most, one of the following is true, and only if running      -->\n<!-- an extraction stylesheet.  In general use (producing useful     -->\n<!-- final output formats), they are all false.  The \"extraction\"    -->\n<!-- stylesheets for each type of object, will override exactly one  -->\n<!-- variable by setting it to \"true()\"                              -->\n<xsl:variable name=\"b-extracting-pg\"   select=\"false()\"/>\n<xsl:variable name=\"b-extracting-mom\"  select=\"false()\"/>\n<xsl:variable name=\"b-extracting-fitb\" select=\"false()\"/>\n<xsl:variable name=\"b-extracting-biblio\" select=\"false()\"/>\n<xsl:variable name=\"b-extracting-stack\" select=\"false()\"/>\n<xsl:variable name=\"b-extracting-qrcode\" select=\"false()\"/>\n\n<xsl:variable name=\"b-extracting\" select=\"$b-extracting-pg or $b-extracting-mom or $b-extracting-fitb or $b-extracting-biblio or $b-extracting-stack or $b-extracting-qrcode\"/>\n\n\n<!-- ############################## -->\n<!-- Source Assembly Infrastructure -->\n<!-- ############################## -->\n\n<!-- When building duplicates, we have occasion -->\n<!-- to inspect the original in various places  -->\n<!-- We do not know if we have \"fixed\" the      -->\n<!-- deprecated overall element, so need to     -->\n<!-- try both.  For example, this variable is   -->\n<!-- employed by the warnings and deprecation   -->\n<!-- messages that result from analyzing an     -->\n<!-- author's source, since we may \"repair\"     -->\n<!-- some of them later, so we have to catch    -->\n<!-- them early. -->\n<xsl:variable name=\"original\" select=\"/mathbook|/pretext\"/>\n\n<!-- These modal templates duplicate the source exactly for each -->\n<!-- pass: elements, attributes, text, whitespace, comments,     -->\n<!-- everything. Various other templates will override these     -->\n<!-- templates to create a new enhanced source tree.             -->\n\n<xsl:template match=\"node()|@*\" mode=\"private-solutions\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"private-solutions\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"version\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"version\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"assembly\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"assembly\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"dynamic-substitution\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"dynamic-substitution\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"representations\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"enrichment\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"enrichment\"/>\n    </xsl:copy>\n</xsl:template>\n\n\n<xsl:template match=\"node()|@*\" mode=\"labels\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"labels\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Later, this template only *adds* an attribute to an element -->\n<!-- it is copying over to the result tree.  Here we copy text   -->\n<!-- nodes and the other attributes and the parameters are not   -->\n<!-- needed.  This is a general-purpose template, see comments   -->\n<!-- at further definition for elements.                         -->\n<xsl:template match=\"node()|@*\" mode=\"id-attribute\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"id-attribute\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"language\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"language\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"augment\">\n    <xsl:param name=\"parent-struct\" select=\"''\"/>\n    <xsl:param name=\"level\" select=\"0\"/>\n    <xsl:param name=\"ordered-list-level\" select=\"0\"/>\n\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"augment\">\n            <xsl:with-param name=\"parent-struct\" select=\"$parent-struct\"/>\n            <xsl:with-param name=\"level\" select=\"$level\"/>\n            <xsl:with-param name=\"ordered-list-level\" select=\"$ordered-list-level\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"exercise\">\n    <xsl:param name=\"division\" select=\"''\"/>\n\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"exercise\">\n            <xsl:with-param name=\"division\" select=\"$division\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- These templates initiate and create several iterations of -->\n<!-- the source tree via modal templates.  Think of each as a  -->\n<!-- \"pass\" through the source. Generally this constructs the  -->\n<!-- new tree as a (text) result tree fragment and then we     -->\n<!-- convert it into real XML nodes. These \"real\" trees have a -->\n<!-- root element, as a result of the node-set() manufacture.  -->\n\n<!-- ################################################### -->\n<!-- Structural Contract for Identification Passes       -->\n<!-- ################################################### -->\n\n<!-- The \"id-attribute\" template (mode=\"id-attribute\")       -->\n<!-- produces identification strings by a depth-first        -->\n<!-- traversal, encoding each element's position among its   -->\n<!-- siblings.  An element's ID depends only on its          -->\n<!-- ancestors and their sibling positions, so the template  -->\n<!-- is fast, unique, and local.                             -->\n<!--                                                         -->\n<!-- This template is applied three times, producing three   -->\n<!-- attributes on every element:                            -->\n<!--                                                         -->\n<!--   @original-id                                          -->\n<!--       after \"version\", before any additions             -->\n<!--   @assembly-id                                          -->\n<!--       after \"exercise\", before \"representations\"        -->\n<!--   @unique-id                                            -->\n<!--       after \"labels\", the final structural form         -->\n<!--                                                         -->\n<!-- The architecture relies on one critical invariant:      -->\n<!--                                                         -->\n<!--   BETWEEN ANY TWO ID-STAMPING PASSES, NO INTERVENING    -->\n<!--   PASS MAY CHANGE THE NUMBER OR ORDER OF SIBLING        -->\n<!--   ELEMENTS AT ANY LEVEL OF THE TREE, EXCEPT WITHIN A    -->\n<!--   SUBTREE THAT IS BEING WHOLLY REPLACED (SAME PARENT,   -->\n<!--   SAME SIBLING POSITION).                               -->\n<!--                                                         -->\n<!-- This invariant holds because:                           -->\n<!--                                                         -->\n<!--   (a) Replacements (e.g. an interactive replaced by a   -->\n<!--       static sidebyside) occupy the same sibling        -->\n<!--       position as the original element.                 -->\n<!--                                                         -->\n<!--   (b) Replacements are never nested: a replaced         -->\n<!--       subtree does not itself contain another element   -->\n<!--       that will be replaced at a different sibling      -->\n<!--       position.                                         -->\n<!--                                                         -->\n<!--   (c) Each ID-stamping pass is placed at a moment when  -->\n<!--       the tree is structurally quiet - no pending       -->\n<!--       changes will shift sibling positions before the   -->\n<!--       next one.                                         -->\n<!--                                                         -->\n<!-- Consequence: the id-attribute template produces the     -->\n<!-- same ID for every non-replaced element across passes,   -->\n<!-- and a replaced element's ID (consumed during isolation) -->\n<!-- remains valid through to the substitution phase.        -->\n<!--                                                         -->\n<!-- Any future pass that inserts or removes sibling         -->\n<!-- elements (rather than replacing in-place) MUST be       -->\n<!-- placed so that it does not fall between two ID-stamping -->\n<!-- passes, or else the identification will silently drift. -->\n\n<!-- Grab private solutions first.  The \"exercise\" (and more) -->\n<!-- that they belong to might be part of a version (have a   -->\n<!-- @component attribute) and we don't want to miss that.    -->\n<!-- It can happen next.                                      -->\n<xsl:variable name=\"private-solutions-rtf\">\n    <xsl:apply-templates select=\"/\" mode=\"private-solutions\"/>\n</xsl:variable>\n<xsl:variable name=\"private-solutions\" select=\"exsl:node-set($private-solutions-rtf)\"/>\n\n<xsl:variable name=\"version-rtf\">\n    <xsl:apply-templates select=\"$private-solutions\" mode=\"version\"/>\n</xsl:variable>\n<xsl:variable name=\"version\" select=\"exsl:node-set($version-rtf)\"/>\n\n<!-- The \"version\" tree should be valid PreTeXt.  Furthermore, there  -->\n<!-- should not be anymore modifications in subsequent passes which   -->\n<!-- change the gross structure of a document (i.e. nature of the     -->\n<!-- divisions).  The determination of various publisher variables,   -->\n<!-- mostly relative to numbering depth, have default values that     -->\n<!-- depend on the structure.  So aspects of this tree are consulted  -->\n<!-- frequently in  publisher-variables.xsl.  This includes           -->\n<!-- $html-chunk-level which inspects top-level division structure    -->\n<!-- (book/part, article/section) to set chunking defaults.           -->\n<!-- Also, note that this tree is useful for certain tasks, like      -->\n<!-- validation, or reporting values of publisher variables, without  -->\n<!-- regard to the subsequent passes.                                 -->\n<xsl:variable name=\"version-root\" select=\"$version/pretext\"/>\n<xsl:variable name=\"version-docinfo\" select=\"$version-root/docinfo\"/>\n<xsl:variable name=\"version-document-root\" select=\"$version-root/*[not(self::docinfo)]\"/>\n\n<!-- This pass adds 100% internal identification for elements before   -->\n<!-- anything has been added or subtracted. The tree it builds is used -->\n<!-- for constructing \"View Source\" knowls in HTML output as a form of -->\n<!-- always-accurate documentation.  And this is its only purpose.     -->\n<!-- N.B.: see the $original-labeled tree used in the HTML conversion, -->\n<!-- optionally, under the sway of a string parameter.  This is in the -->\n<!-- (imported) pretext-view-source.xsl stylesheet.                    -->\n<!-- Hack: to short-circuit this stylesheet, in the case of desiring   -->\n<!-- the \"version\" tree *only*, we create an empty RTF.  This becomes  -->\n<!-- a (essentially) empty node-set.  The empty node-set is the input  -->\n<!-- the next pass, which will create an empty RTF, which will create  -->\n<!-- an empty node-set.  Rinse.  Repeat.  Even though all these        -->\n<!-- passes/variables are created, this is about a 17x speed-up.       -->\n<!-- A review suggests there is no fixed overhead in any of these      -->\n<!-- subsequent passes.                                                -->\n<xsl:variable name=\"original-labeled-rtf\">\n    <!-- written as a \"choose\" for clarity -->\n    <xsl:choose>\n        <!-- short-circuit to stop after \"version\" -->\n        <xsl:when test=\"$b-version-only\"/>\n        <!-- build on \"version\" to add original id's -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"$version\" mode=\"id-attribute\">\n                <!-- $parent-id defaults to 'root' in template -->\n                <xsl:with-param name=\"attr-name\" select=\"'original-id'\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"original-labeled\" select=\"exsl:node-set($original-labeled-rtf)\"/>\n\n<xsl:variable name=\"assembly-rtf\">\n    <xsl:apply-templates select=\"$original-labeled\" mode=\"assembly\"/>\n</xsl:variable>\n<xsl:variable name=\"assembly\" select=\"exsl:node-set($assembly-rtf)\"/>\n\n<!-- Make static substitutions for dynamic exercises.  -->\n<xsl:variable name=\"dynamic-rtf\">\n    <xsl:apply-templates select=\"$assembly\" mode=\"dynamic-substitution\"/>\n</xsl:variable>\n<xsl:variable name=\"dynamic\" select=\"exsl:node-set($dynamic-rtf)\"/>\n\n<!-- Exercises are \"tagged\" as to their nature (division, inline, -->\n<!-- worksheet, reading, project-like) and interactive exercises  -->\n<!-- get more precise categorization.  The latter is used to      -->\n<!-- determine if Runestone Services are loaded.                  -->\n\n<xsl:variable name=\"exercise-rtf\">\n    <!-- initialize with default, 'inline' -->\n    <xsl:apply-templates select=\"$dynamic\" mode=\"exercise\">\n        <xsl:with-param name=\"division\" select=\"'inline'\"/>\n    </xsl:apply-templates>\n</xsl:variable>\n<xsl:variable name=\"exercise\" select=\"exsl:node-set($exercise-rtf)\"/>\n\n<xsl:variable name=\"assembly-label-rtf\">\n    <xsl:apply-templates select=\"$exercise\" mode=\"id-attribute\">\n        <!-- $parent-id defaults to 'root' in template -->\n        <xsl:with-param name=\"attr-name\" select=\"'assembly-id'\"/>\n    </xsl:apply-templates>\n</xsl:variable>\n<xsl:variable name=\"assembly-label\" select=\"exsl:node-set($assembly-label-rtf)\"/>\n\n<xsl:variable name=\"representations-rtf\">\n    <xsl:apply-templates select=\"$assembly-label\" mode=\"representations\"/>\n</xsl:variable>\n<xsl:variable name=\"representations\" select=\"exsl:node-set($representations-rtf)\"/>\n\n<!-- Dependency: \"repair\" will fix some exercise representations, -->\n<!-- especially coming from an \"old\" WeBWorK server, so the       -->\n<!-- \"repair\" pass must come after the \"representations\" pass.    -->\n<xsl:variable name=\"repair-rtf\">\n    <xsl:apply-templates select=\"$representations\" mode=\"repair\"/>\n</xsl:variable>\n<xsl:variable name=\"repair\" select=\"exsl:node-set($repair-rtf)\"/>\n\n<!-- \"enrichment\" will *add* to the source automatically,  -->\n<!-- such as footnotes with URLs that might not be visible -->\n<!-- in static formats.                                    -->\n<xsl:variable name=\"enrichment-rtf\">\n    <xsl:apply-templates select=\"$repair\" mode=\"enrichment\"/>\n</xsl:variable>\n<xsl:variable name=\"enrichment\" select=\"exsl:node-set($enrichment-rtf)\"/>\n\n<!-- 2024-02-08: the construction of @label from @xml:id was split  -->\n<!-- out of the \"identification\" pass, so is located here.  Perhaps -->\n<!-- it can/should move earlier, maybe not.                         -->\n<xsl:variable name=\"labels-rtf\">\n    <!-- pass in all elements with authored @xml:id -->\n    <!-- to look for authored duplicates            -->\n    <xsl:call-template name=\"duplication-check-xmlid\">\n        <xsl:with-param name=\"nodes\" select=\"$enrichment//*[@xml:id]\"/>\n        <xsl:with-param name=\"purpose\" select=\"'authored'\"/>\n    </xsl:call-template>\n    <!-- pass in all elements with authored @label -->\n    <!-- to look for authored duplicates           -->\n    <xsl:call-template name=\"duplication-check-label\">\n        <xsl:with-param name=\"nodes\" select=\"$enrichment//*[@label]\"/>\n        <xsl:with-param name=\"purpose\" select=\"'authored'\"/>\n    </xsl:call-template>\n    <xsl:apply-templates select=\"$enrichment\" mode=\"labels\"/>\n</xsl:variable>\n<xsl:variable name=\"labels\" select=\"exsl:node-set($labels-rtf)\"/>\n\n<xsl:variable name=\"identification-rtf\">\n    <xsl:apply-templates select=\"$labels\" mode=\"id-attribute\">\n        <!-- $parent-id defaults to 'root' in template -->\n        <xsl:with-param name=\"attr-name\" select=\"'unique-id'\"/>\n    </xsl:apply-templates>\n</xsl:variable>\n<xsl:variable name=\"identification\" select=\"exsl:node-set($identification-rtf)\"/>\n\n<xsl:variable name=\"language-rtf\">\n    <xsl:apply-templates select=\"$identification\" mode=\"id-coherence-check\"/>\n    <xsl:apply-templates select=\"$identification\" mode=\"language\"/>\n</xsl:variable>\n<xsl:variable name=\"language\" select=\"exsl:node-set($language-rtf)\"/>\n\n<xsl:variable name=\"augment-rtf\">\n    <xsl:apply-templates select=\"$language\" mode=\"augment\"/>\n</xsl:variable>\n<xsl:variable name=\"augment\" select=\"exsl:node-set($augment-rtf)\"/>\n\n<!--                        IMPORTANT                           -->\n<!--                                                            -->\n<!-- Definitions that follow may be overridden after additional -->\n<!-- per-conversion passes that takeoff from the final tree,    -->\n<!-- here $augment.                                             -->\n<!--                                                            -->\n<!--    IF $augment CHANGES, SEARCH FOR AFFECTED CONVERSIONS    -->\n<!--                                                            -->\n<!-- 2023-03-20: braille conversion incorporares Nemeth braille -->\n\n<!-- The main \"pretext\" element only has two possible children      -->\n<!-- One is \"docinfo\", the other is \"book\", \"article\", etc.         -->\n<!-- This is of interest by itself, or the root of content searches -->\n<!-- And docinfo is the other child, these help prevent searching   -->\n<!-- the wrong half.                                                -->\n<!-- NB: source repair below converts a /mathbook to a /pretext     -->\n<xsl:variable name=\"root\" select=\"$augment/pretext\"/>\n<xsl:variable name=\"docinfo\" select=\"$root/docinfo\"/>\n<xsl:variable name=\"document-root\" select=\"$root/*[not(self::docinfo)]\"/>\n<xsl:variable name=\"bibinfo\" select=\"$document-root/frontmatter/bibinfo\"/>\n\n\n<!-- ################# -->\n<!-- Private Solutions -->\n<!-- ################# -->\n\n<!-- \"solutions\" here refers generically to \"hint\", \"answer\",  -->\n<!-- and \"solution\" elements of an \"exercise\".  An author may  -->\n<!-- wish to provide limited distribution of some solutions to -->\n<!-- exercises, which we deem \"private\" here.  If a            -->\n<!-- \"private-solutions-file\" is provided, it will be mined    -->\n<!-- for these private solutions.                              -->\n\n<!-- Note: there may be (nested) \"pi:privatesolutionsdivision\"  -->\n<!-- elements in this file.  They are largely meaningless, but  -->\n<!-- are necessary if an author wants to modularize their       -->\n<!-- collection across multiple files.  Then each file can be a -->\n<!-- single overall element.  (We expect/require no additional  -->\n<!-- structure in this file.)  The consequence is the \"//\" in   -->\n<!-- each expression below.                                     -->\n<!-- NB: relative to *original* source file/tree                -->\n<xsl:variable name=\"privatesolns\" select=\"document($private-solutions-file, $original)\"/>\n<xsl:variable name=\"n-hint\"     select=\"$privatesolns/pi:privatesolutions//hint\"/>\n<xsl:variable name=\"n-answer\"   select=\"$privatesolns/pi:privatesolutions//answer\"/>\n<xsl:variable name=\"n-solution\" select=\"$privatesolns/pi:privatesolutions//solution\"/>\n\n<!-- Note that when there are any private solutions then we make a copy that     -->\n<!--   - does not preserve interstitial text nodes (whitespace indentation)      -->\n<!--   - preserves things like \"feedback\", \"choices\", but may reorder them       -->\n<!--     to occur before solutions                                               -->\n<!--   - this happens for *every* \"exercise\", even if it does not have           -->\n<!--     private solutions                                                       -->\n<!--                                                                             -->\n<!-- So there could be                                                           -->\n<!--   - more care about placing new \"hint\", \"answer\", \"solution\"                -->\n<!--     in the right order, perhaps by exploding this out into templates        -->\n<!--   - condition on                                                            -->\n<!--     $n-hint[@ref=$the-id]|$n-answer[@ref=$the-id]|$n-solution[@ref=$the-id] -->\n<!--     to only manipulate an exercise that needs it                            -->\n<xsl:template match=\"exercise|task\" mode=\"private-solutions\">\n    <xsl:choose>\n        <!-- $b-private-solutions is a publisher variable determined   -->\n        <!-- by the specification of a file of private solutions there -->\n        <xsl:when test=\"$b-private-solutions\">\n            <xsl:variable name=\"the-id\" select=\"@xml:id\"/>\n            <xsl:copy>\n                <!-- attributes, then all elements that are not solutions                               -->\n                <!--   unstructured exercise:  \"p\" etc, then solutions OK even if schema violation?     -->\n                <!--   structured exercise: copy statement, then interleave solutions                   -->\n                <!--   non-terminal Task: introduction, task, conclusion                                -->\n                <!--   terminal unstructured task: \"p\" etc, then solutions OK even if schema violation? -->\n                <!--   terminal structured task: copy statement, then interleave solutions              -->\n                <!-- TODO: defend against non-terminal task, unstructured cases      -->\n                <!-- (identify proper structure + non-empty union of three additions -->\n                <!-- Fix unstructured cases by inserting \"statement\",                -->\n                <!-- warn about non-terminal task case and drop additions (error)    -->\n                <xsl:apply-templates select=\"*[not(self::hint or self::answer or self::solution)]|@*\" mode=\"private-solutions\"/>\n                <!-- hints, answers, solutions; first regular, second private -->\n                <xsl:apply-templates select=\"hint\" mode=\"private-solutions\"/>\n                <xsl:apply-templates select=\"$n-hint[@ref=$the-id]\" mode=\"private-solutions\"/>\n                <xsl:apply-templates select=\"answer\" mode=\"private-solutions\"/>\n                <xsl:apply-templates select=\"$n-answer[@ref=$the-id]\" mode=\"private-solutions\"/>\n                <xsl:apply-templates select=\"solution\" mode=\"private-solutions\"/>\n                <xsl:apply-templates select=\"$n-solution[@ref=$the-id]\" mode=\"private-solutions\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- otherwise, just a straight xerox -->\n        <xsl:otherwise>\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"private-solutions\"/>\n            </xsl:copy>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ######## -->\n<!-- Versions -->\n<!-- ######## -->\n\n<!-- The version feature (@component markings) allows for   -->\n<!-- invalid PreTeXt source.  For example, an author might  -->\n<!-- have two different \"docinfo\" elements for some reason. -->\n<!-- So we allow a sort of pre-PreTeXt, which does not      -->\n<!-- satisfy the schema.  Support for the \"custom\" element  -->\n<!-- is similar in spirit.  So very early on, we unravel    -->\n<!-- (resolve) these features, and if used properly the     -->\n<!-- result will be valid PreTeXt, according to the schema. -->\n\n<!-- Only elements \"marked\" with @component need to be      -->\n<!-- examined, the catch-all xerox template above suffices. -->\n<xsl:template match=\"*[@component]\" mode=\"version\">\n    <!-- prepare for test below -->\n    <xsl:variable name=\"single-component-fenced\" select=\"concat('|', normalize-space(@component), '|')\"/>\n    <xsl:choose>\n        <!-- version scheme not elected, so use element no matter what -->\n        <!-- note that @include=\"\" yields \"||\" in test here            -->\n        <xsl:when test=\"$components-fenced = ''\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"version\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- version scheme elected, element participating, so use element -->\n        <!-- if it is a component in publisher's selection of components   -->\n        <xsl:when test=\"contains($components-fenced, $single-component-fenced)\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"version\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- version scheme elected, element participating, but its component -->\n        <!-- has not been selected in publisher file, so it gets dropped here -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We use various ad-hoc, non-author elements in lots of places.     -->\n<!-- Best to prefix them all with a namespace and keep them separate   -->\n<!-- from author-land.  Thus, the \"pretext internal\" namespace with    -->\n<!-- prefix/alias \"pi\". But we don't want authors to use some of       -->\n<!-- these elements, like the presentational \"pi:bold\"!                -->\n<!--                                                                   -->\n<!-- So we kill these elements (and attributes) early.  So this is     -->\n<!-- really unrelated to versions, but tere should be little danger in -->\n<!-- doing in here and now.  The \"private-solutions\" pass is a place   -->\n<!-- where files use this prefix, so maybe best not to do it there.    -->\n\n<xsl:template match=\"pi:*\" mode=\"version\"/>\n<xsl:template match=\"@pi:*\" mode=\"version\"/>\n\n<!-- The \"custom\" element, with a @name in an auxiliary file,     -->\n<!-- and a @ref in a source file, allows for custom substitutions -->\n\n<!-- If the publisher variable  $customizations-file  is bad, -->\n<!-- then  document()  will raise an error.  The empty string -->\n<!-- (default) will not raise an error, so if not specified,  -->\n<!-- no problem.  But an empty string, and an attempted       -->\n<!-- access in the template *will* raise the error below.     -->\n<xsl:variable name=\"customizations\" select=\"document($customizations-file, $original)\"/>\n\n<!-- Set the key, nodes to be located are named -->\n<!-- \"custom\" within the file just accessed     -->\n<!-- For each one, @name is the search term     -->\n<!-- that will locate it: the key, the index    -->\n<xsl:key name=\"name-key\" match=\"custom\" use=\"@name\"/>\n\n<xsl:template match=\"custom[@ref]\" mode=\"version\">\n    <!-- We need to get the @ref attribute now, due to a context shift -->\n    <!-- And the \"custom\" context also, for use in a location report   -->\n    <xsl:variable name=\"the-ref\" select=\"string(@ref)\"/>\n    <xsl:variable name=\"the-custom\" select=\".\"/>\n    <!-- Now the context shift to query the customizations -->\n    <xsl:for-each select=\"$customizations\">\n        <xsl:variable name=\"the-lookup\" select=\"key('name-key', $the-ref)\"/>\n        <!-- This is an AWOL node, not empty content (which is allowed) -->\n        <xsl:if test=\"not($the-lookup)\">\n            <xsl:text>[MISSING CUSTOM CONTENT HERE]</xsl:text>\n            <xsl:message>PTX:WARNING:   lookup for a \"custom\" element with @name set to \"<xsl:value-of select=\"$the-ref\"/>\" has failed, while consulting the customization file \"<xsl:value-of select=\"$customizations-file\"/>\".  Output will contain \"[MISSING CUSTOM CONTENT HERE]\" instead</xsl:message>\n            <xsl:apply-templates select=\"$the-custom\" mode=\"location-report\"/>\n        </xsl:if>\n        <!-- Copying the contents of \"custom\" via the \"version\" templates  -->\n        <!-- will keep the \"pi\" namespace from appearing in places, as it  -->\n        <!-- will with an \"xsl:copy-of\" on the same node set.  But it      -->\n        <!-- allows nested \"custom\" elements.                              -->\n        <!--                                                               -->\n        <!-- Do we want authors to potentially create cyclic references?   -->\n        <!-- A simple 2-cycle test failed quickly and obviously, so it     -->\n        <!-- will be caught quite easily, it seems.                        -->\n        <xsl:apply-templates select=\"$the-lookup/node()\" mode=\"version\"/>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- ######################## -->\n<!-- Bibliography Manufacture -->\n<!-- ######################## -->\n\n<!-- Initial experiment, overall \"references\" flagged with -->\n<!-- a @source filename as the place to go get a list of   -->\n<!-- candidate \"biblio\" (in desired order)                 -->\n<!-- NB: this needs a rethink when revisited.  A file of   -->\n<!-- bibliography items can be specified, perhaps in       -->\n<!-- in docinfo (runs with the source?), formed as         -->\n<!-- $biblios in -common, and then mined for matches not   -->\n<!-- explicitly present?                                   -->\n<xsl:template match=\"backmatter/references[@source]\" mode=\"assembly\">\n    <!-- Grab the list, filename is relative to the -->\n    <!-- \"document\" holding \"references\" (original) -->\n    <xsl:variable name=\"biblios\" select=\"document(@source, .)\"/>\n    <!-- Copy the \"references\" element (could be literal, but maybe not in \"text\" output mode) -->\n    <xsl:copy>\n        <!-- @source attribute not needed in enhanced source -->\n        <xsl:apply-templates select=\"@*[not(local-name() = 'source')]\" mode=\"assembly\"/>\n        <!-- likely more elements to duplicate, consult schema -->\n        <xsl:apply-templates select=\"title\" mode=\"assembly\"/>\n        <!-- Look at each \"biblio\" in the external file -->\n        <xsl:for-each select=\"$biblios/pretext-biblios/biblio\">\n            <xsl:variable name=\"the-id\" select=\"@xml:id\"/>\n            <xsl:message>@xml:id of &lt;biblio&gt; in bibliography file: <xsl:value-of select=\"$the-id\"/></xsl:message>\n            <!-- Building duplicate, so look at $original for    -->\n            <!-- \"xref\" pointing to the current context \"biblio\" -->\n            <xsl:if test=\"$original//xref[@ref = $the-id]\">\n                <xsl:message>  Located this &lt;biblio&gt; cited in original source</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"assembly\"/>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:copy>\n</xsl:template>\n\n<!-- ########################################################## -->\n<!-- ########################################################## -->\n<!-- 2025-08-13: these error checks are not really right.       -->\n<!-- Testing for existence of the file of references seems      -->\n<!-- to be the big problem?  If it does not exist, the          -->\n<!-- processor just fails altogether?  Further, these variables -->\n<!-- might be renamed as positive events, to ease the logic.    -->\n<!-- ########################################################## -->\n<!-- ########################################################## -->\n\n<!-- To use CSL styles, we need to determine if a few things are in place -->\n<!-- (a)  are we even using CSL style files at all                        -->\n<!-- (b)  if we are extracting or not                                     -->\n<!-- (c)  if the desired generated references and citations exist         -->\n<!-- (d)  if the generated file exists, built with the same style file?   -->\n<!-- Without everything in place, we just copy references/\"biblio\".        -->\n<!-- Here comes the gauntlet -->\n\n<!-- $b-using-csl-styles: a consequence of opting in via publisher file         -->\n<!-- $b-extracting-biblio: set here and overridden in the extraction stylesheet -->\n\n<!-- two error conditions -->\n<!-- 2025-08-13: this variable is always false -->\n<xsl:variable name=\"missing-csl-file\">\n    <xsl:choose>\n        <!-- can't be missing if we don't need it, and we   -->\n        <!-- don't induce panic by looking for it, when it  -->\n        <!-- isn't called for, and getting ominous warnings -->\n        <xsl:when test=\"not($b-using-csl-styles)\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>no</xsl:text>\n            <!-- this is only a test, variable is local and not retained -->\n            <!-- <xsl:variable name=\"the-references\" -->\n                <!-- select=\"document($csl-file, $original)/pi:csl-references\"/> -->\n            <!-- since we build the file, condiition on the size of -->\n            <!-- this node-set:  one (good) or none (bad, missing)  -->\n            <!-- <xsl:choose> -->\n                <!-- file looks good -->\n                <!-- <xsl:when test=\"count($the-references) = 1\"> -->\n                    <!-- <xsl:text>no</xsl:text> -->\n                <!-- </xsl:when> -->\n                <!-- nothing came of document() -->\n                <!-- <xsl:otherwise> -->\n                    <!-- <xsl:text>yes</xsl:text> -->\n                    <!-- and we take the opportunity to say so, just once, and early on -->\n                    <!-- <xsl:message>PTX:ERROR:     your publisher file indicates the use of a Citation Stylesheet Language (CSL) specification for references, but we have not located your file of generated references and citations at \"<xsl:value-of select=\"$csl-file\"/>\".  We will fall back to default processing in order to proceed.</xsl:message> -->\n                <!-- </xsl:otherwise> -->\n            <!-- </xsl:choose> -->\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-missing-csl-file\" select=\"$missing-csl-file = 'yes'\"/>\n\n<!-- This is the case of having a style file specified in    -->\n<!-- the publisher file AND having a generated file of       -->\n<!-- references and citations AND the two versions of the    -->\n<!-- style file used do not match.  The first two conditions -->\n<!-- should always be consulted.                             -->\n<xsl:variable name=\"style-file-mismatch\">\n    <xsl:choose>\n        <!-- we do not warning at the end of this template, -->\n        <!-- just because the file itself does not exist    -->\n        <xsl:when test=\"not($b-using-csl-styles) or $missing-csl-file\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- now we are using CSL styles and we do have a file to interrogate -->\n        <xsl:otherwise>\n            <!-- this is only a test, variable is local and not retained -->\n            <xsl:variable name=\"the-references\"\n                select=\"document($csl-file, $original)/pi:csl-references\"/>\n            <!-- attribute in generated file saying which style file was used -->\n            <xsl:variable name=\"csl-style-file-for-generated\">\n                <xsl:value-of select=\"$the-references/@csl-style-file\"/>\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"$csl-style-file = $csl-style-file-for-generated\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>yes</xsl:text>\n                    <!-- and we take the opportunity to say so, just once, and early on -->\n                    <xsl:message>PTX:WARNING:     your publisher file indicates the use of one Citation Stylesheet Language (CSL) specification for references (\"<xsl:value-of select=\"$csl-style-file\"/>\"), but your file of generated references and citations at \"<xsl:value-of select=\"$csl-file\"/>\" was built using a different CSL style file (\"<xsl:value-of select=\"$csl-style-file-for-generated\"/>\").  We will fall back to default processing in order to proceed.</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-style-file-mismatch\" select=\"$style-file-mismatch = 'yes'\"/>\n\n<!-- ########################################################## -->\n<!-- ########################################################## -->\n<!-- 2025-08-13: end of incomplete error logic.                 -->\n<!-- ########################################################## -->\n<!-- ########################################################## -->\n\n<xsl:template match=\"backmatter/references[not(@source)]\" mode=\"assembly\">\n    <xsl:choose>\n        <!-- duplicate for biblio extraction process or if using -->\n        <!-- default (simplistic) PreTeXt bibliography support   -->\n        <xsl:when test=\"$b-extracting-biblio or not($b-using-csl-styles)\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"assembly\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- not extracting, so doing a conversion, and also     -->\n        <!-- must be using CSL styles, so a collection of        -->\n        <!-- processed references and citations should exist     -->\n        <!-- but maybe not (this \"when\" is separate for clarity) -->\n        <xsl:when test=\"$b-missing-csl-file or $b-style-file-mismatch\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"assembly\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- not extracting, using CSL, have a generated file,  -->\n        <!-- matching styles in publihser file and in generated -->\n        <!-- file.  We can just do it.                          -->\n        <xsl:otherwise>\n            <!-- $csl-file is defined in the publisher-variables stylesheet, -->\n            <xsl:variable name=\"the-references\"\n                select=\"document($csl-file, $original)/pi:csl-references\"/>\n            <!-- Now, a \"choose\" within the above \"otherwise\".  If the file -->\n            <!-- is missing or mis-matched, we just duplicate.  Otherwise,  -->\n            <!-- we finally make replacment entries in the \"references\".    -->\n            <xsl:copy>\n                <!-- duplicate attributes on \"references\" -->\n                <xsl:apply-templates select=\"@*\" mode=\"assembly\"/>\n                <!-- duplicate/massage each bibliographic entry   -->\n                <!-- realize as a standard \"raw\" type reference,  -->\n                <!-- though make take this tyepe private some day -->\n                <xsl:for-each select=\"$the-references/pi:csl-biblio\">\n                    <biblio type=\"raw\">\n                        <!-- An @xml:id is likely present, but conceivably -->\n                        <!-- absent if a \"biblio\" is never referenced.     -->\n                        <!-- Preserve it through the process.              -->\n                        <xsl:copy-of select=\"@xml:id\"/>\n                        <!-- preserve numeric identification -->\n                        <xsl:attribute name=\"numeric\">\n                            <xsl:value-of select=\"@numeric\"/>\n                        </xsl:attribute>\n                        <xsl:apply-templates select=\"node()\" mode=\"assembly\"/>\n                    </biblio>\n                </xsl:for-each>\n            </xsl:copy>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"xref\" mode=\"assembly\">\n    <!-- determine if this \"xref\" points to a \"biblio\",  -->\n    <!-- and really just a backmatter/references/biblio, -->\n    <!-- plus using CSL styles for citations             -->\n    <xsl:variable name=\"is-biblio-target\">\n        <xsl:choose>\n            <!-- not doing styles, target is not of interest -->\n            <!-- to us anyway and we want to bail out as     -->\n            <!-- quickly and as easily as possible           -->\n            <xsl:when test=\"not($b-using-csl-styles)\">\n                <xsl:text>no</xsl:text>\n            </xsl:when>\n            <!-- first/last page-range device -->\n            <xsl:when test=\"@first\">\n                <xsl:text>no</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@provisional\">\n                <xsl:text>no</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:variable name=\"tokenized-refs\" select=\"str:tokenize(@ref, ' ,')\"/>\n                <xsl:variable name=\"first-ref\">\n                    <xsl:value-of select=\"$tokenized-refs[1]\"/>\n                </xsl:variable>\n                <!-- context switch -->\n                <xsl:for-each select=\"$original\">\n                    <xsl:choose>\n                        <xsl:when test=\"id($first-ref)/self::biblio/parent::references/parent::backmatter\">\n                            <xsl:text>yes</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>no</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:for-each>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"b-is-biblio-target\" select=\"$is-biblio-target = 'yes'\"/>\n    <!--  -->\n    <xsl:choose>\n        <!-- duplicate for biblio extraction process or if the \"xref\"  -->\n        <!-- is not a candidate for replacement by a CSL citation      -->\n        <!-- Note: not using CSL styles immediately determines that    -->\n        <!-- this \"xrref\" is not a \"biblio target\" and a copy is       -->\n        <!-- made here, immediately as well                            -->\n        <xsl:when test=\"not($b-is-biblio-target) or $b-extracting-biblio\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"assembly\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- a candidate for replacement  -->\n        <xsl:otherwise>\n            <xsl:variable name=\"the-xref-id\">\n                <xsl:value-of select=\"@original-id\"/>\n            </xsl:variable>\n            <xsl:variable name=\"matched-citation\" select=\"document('gen/references/csl-bibliography.xml', $original)/pi:csl-references/pi:csl-citation[@xml:id = $the-xref-id]\"/>\n            <xsl:copy-of select=\"$matched-citation\"/>\n            <!-- WARN ON UNMATCHED -->\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We cosmetically change a \"drag-n-drop\" style matching problem from    -->\n<!-- being signaled by \"matches\" and instead call it a \"cardsort\" problem, -->\n<!-- which is a more accurate description of the interface from Runestoone -->\n<!-- Services.  We can't wait for \"repair\" since we do manipulation of     -->\n<!-- exercises in advance.  Why's that?  So an old WeBWorK server can send -->\n<!-- back old PreTeXt and have it be repaired.  So we do this change in an -->\n<!-- earlier pass.                                                         -->\n<xsl:template match=\"exercise/matches|project/matches|activity/matches|exploration/matches|investigation/matches|task/matches\" mode=\"assembly\">\n    <!-- literal element gets namespace declarations -->\n    <xsl:element name=\"cardsort\">\n        <xsl:apply-templates select=\"node()|@*\" mode=\"assembly\"/>\n    </xsl:element>\n</xsl:template>\n\n<!-- Ordering for static version of a cardsort exercise no longer goes   -->\n<!-- on the \"match\", due to the possibility of multiple \"premise\" inside -->\n<!-- the \"match\".  If the problem is an old-style 1-1 corrspondence, we  -->\n<!-- will move it onto *all* contained \"premise\", which will be fine if  -->\n<!-- there is one or less within the \"match\".  We allow for a recent     -->\n<!-- transition from \"matches\" to \"cardsort\".                            -->\n<xsl:template match=\"matches/match/@order|cardsort/match/@order\" mode=\"assembly\"/>\n\n<xsl:template match=\"matches/match/premise|cardsort/match/premise\" mode=\"assembly\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"assembly\"/>\n        <xsl:if test=\"parent::match/@order\">\n            <xsl:attribute name=\"order\">\n                <xsl:value-of select=\"parent::match/@order\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <xsl:apply-templates select=\"node()\" mode=\"assembly\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- WeBWorK @copy resolution -->\n\n<!-- A \"webwork\" with a @copy attribute is a lightweight reference  -->\n<!-- to another authored \"webwork\".  We resolve the copy here in    -->\n<!-- the assembly pass by pulling the target's content into a new   -->\n<!-- \"webwork\" element.                                             -->\n<xsl:template match=\"webwork[@copy]\" mode=\"assembly\">\n    <!-- Find the target.  Maybe. -->\n    <xsl:variable name=\"target\" select=\"id(@copy)\"/>\n    <!-- Trap potential pitfalls and record part of an error -->\n    <!-- message.  Use a non-empty error message as a signal -->\n    <!-- to bail out gracefully on the copy.                 -->\n    <xsl:variable name=\"error-message-for-copy\">\n        <xsl:choose>\n            <xsl:when test=\"not($target)\">\n                <xsl:text>the @copy attribute points to nothing, check the spelling?</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"not($target/self::webwork)\">\n                <xsl:text>the @copy attribute points to a \"</xsl:text>\n                <xsl:value-of select=\"local-name($target)\"/>\n                <xsl:text>\" element, not another \"webwork\".</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$target/self::webwork[@source]\">\n                <xsl:text>the @copy attribute points a \"webwork\" with a @source attribute.  (Replace the @copy by the @source?)</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$target/self::webwork[@copy]\">\n                <xsl:text>the @copy attribute points to \"webwork\" with a @copy attribute. Sorry, we are not that sophisticated.</xsl:text>\n            </xsl:when>\n            <!-- Presumably OK, no error message -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:choose>\n        <!-- no error means to proceed with copy -->\n        <xsl:when test=\"$error-message-for-copy = ''\">\n            <xsl:copy>\n                <xsl:attribute name=\"copied-from\">\n                    <xsl:value-of select=\"@copy\"/>\n                </xsl:attribute>\n                <!-- Duplicate attributes, but remove the @copy attribute -->\n                <!-- used as a signal here.  We don't want to copy this   -->\n                <!-- again after we have been to the WeBWorK server.      -->\n                <xsl:apply-templates select=\"@*[not(local-name(.) = 'copy')]\" mode=\"assembly\"/>\n                <!-- The @seed makes the problem different, and there are also  -->\n                <!-- unique identifiers, so grab any other attributes of the    -->\n                <!-- original, but exclude these while formulating a copy/clone. -->\n                <xsl:apply-templates select=\"$target/@*[(not(local-name(.) = 'id')) and\n                                                        (not(local-name(.) = 'label')) and\n                                                        (not(local-name(.) = 'seed'))]\" mode=\"assembly\"/>\n                <!-- NB: authored WeBWorK content never has @xml:id or @label, -->\n                <!-- so no scrubbing of unique IDs is needed here.             -->\n                <xsl:apply-templates select=\"$target/node()\" mode=\"assembly\"/>\n            </xsl:copy>\n        </xsl:when>\n        <!-- with an error in formulation, drop in something very -->\n        <!-- similar in gross form, and alert at the console      -->\n        <xsl:otherwise>\n            <xsl:copy>\n                <!-- Carry over as much metadata as possible -->\n                <xsl:apply-templates select=\"@*[not(local-name(.) = 'copy')]\" mode=\"assembly\"/>\n                <!-- Now a minimal, but correct PreTeXt, WeBWorK problem into the  -->\n                <!-- extraction machinery, and out into all possible final outputs  -->\n                <statement>\n                    <p>\n                        A WeBWorK problem right here was meant to be a copy of another problem,\n                        but potentially with different randomization, but there was a failure.\n                        The <c>@copy</c> attribute was set to <c><xsl:value-of select=\"@copy\"/></c>.\n                        Please report me, so the publisher can get more details by searching the\n                        runtime output for <q><c>PTX:ERROR</c></q>.\n                    </p>\n                </statement>\n            </xsl:copy>\n            <!-- minimalist report into source, more at console -->\n            <xsl:message>PTX:ERROR:   A WeBWorK problem has a @copy attribute with value \"<xsl:value-of select=\"@copy\"/>\".</xsl:message>\n            <xsl:message>             However, the problem did not render:</xsl:message>\n            <xsl:message><xsl:text>             </xsl:text><xsl:value-of select=\"$error-message-for-copy\"/></xsl:message>\n            <xsl:message>             A placeholder problem will appear in your output instead.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ##################################################### -->\n<!-- Dynamic Substitutions                                 -->\n<!-- Cut out dynamic setup and evaluation for static mode. -->\n<!-- ##################################################### -->\n<xsl:template match=\"setup[de-object|setupScript]\" mode=\"dynamic-substitution\">\n    <xsl:if test=\"$exercise-style = 'dynamic'\">\n        <xsl:copy>\n            <xsl:apply-templates select=\"node()|@*\" mode=\"dynamic-substitution\"/>\n        </xsl:copy>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"numcmp|strcmp|jscmp|mathcmp|logic[parent::test]\" mode=\"dynamic-substitution\">\n    <xsl:if test=\"$exercise-style = 'dynamic'\">\n        <xsl:copy>\n            <xsl:apply-templates select=\"node()|@*\" mode=\"dynamic-substitution\"/>\n        </xsl:copy>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"fillin[@ansobj]\" mode=\"dynamic-substitution\">\n    <xsl:choose>\n        <xsl:when test=\"($exercise-style = 'static') and not($b-extracting)\">\n            <xsl:variable name=\"parent-id\">\n                <xsl:apply-templates select=\"ancestor::statement/../@label\" />\n            </xsl:variable>\n            <xsl:variable name=\"eval-subs\" select=\"document($dynamic-substitutions-file,$original)\"/>\n            <xsl:variable name=\"object\" select=\"@ansobj\"/>\n            <xsl:variable name=\"substitution\">\n                <xsl:value-of select=\"$eval-subs//dynamic-substitution[@id=$parent-id]/eval-subst[@obj=$object]\"/>\n            </xsl:variable>\n            <xsl:copy>\n                <xsl:attribute name=\"answer\">\n                    <xsl:value-of select=\"$substitution\"/>\n                </xsl:attribute>\n                <xsl:apply-templates select=\"@*|node()\" mode=\"dynamic-substitution\"/>\n            </xsl:copy>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"dynamic-substitution\"/>\n            </xsl:copy>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"eval[@obj]\" mode=\"dynamic-substitution\">\n    <xsl:choose>\n        <!-- static, for multiple conversions, but primarily LaTeX -->\n        <xsl:when test=\"($exercise-style = 'static') and not($b-extracting)\">\n            <xsl:variable name=\"parent-id\">\n               <xsl:apply-templates select=\"(ancestor::statement|ancestor::solution|ancestor::evaluation)/../@label\" />\n            </xsl:variable>\n            <xsl:variable name=\"eval-subs\" select=\"document($dynamic-substitutions-file,$original)\"/>\n            <xsl:variable name=\"object\" select=\"@obj\"/>\n            <xsl:variable name=\"substitution\">\n                <xsl:value-of select=\"$eval-subs//dynamic-substitution[@id=$parent-id]/eval-subst[@obj=$object]\"/>\n            </xsl:variable>\n            <xsl:value-of select=\"$substitution\"/>\n        </xsl:when>\n        <!-- dynamic (aka HTML), needs static previews, server base64, etc, -->\n        <!-- so just copy as-is with \"webwork-reps\" to signal and organize  -->\n        <!-- to/for HTML conversion                                         -->\n        <xsl:otherwise>\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"dynamic-substitution\"/>\n            </xsl:copy>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- An #eval child of test is implicit mathcmp. -->\n<xsl:template match=\"test/eval[@obj]\" mode=\"dynamic-substitution\">\n    <xsl:choose>\n        <xsl:when test=\"$exercise-style = 'static'\">\n            <evaluation/>\n        </xsl:when>\n        <xsl:when test=\"$exercise-style = 'dynamic'\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"dynamic-substitution\"/>\n            </xsl:copy>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ########## -->\n<!-- Enrichment -->\n<!-- ########## -->\n\n<!-- Certain markup can be translated into more primitive versions using      -->\n<!-- existing markup, so we do a translation of certain forms into more       -->\n<!-- potentially verbose forms that an author might tire of doing repeatedly. -->\n<!-- See below for examples.  This is better than making a result-tree        -->\n<!-- fragment and applying templates, since all context is lost that way.     -->\n\n<!-- Visual URLs -->\n<!-- A great way to present a URL is with some clickable text.  But that    -->\n<!-- is useless in print.  And maybe a reader really would like to see the  -->\n<!-- actual URL.  So \"@visual\" is a version of the URL that is pleasing to  -->\n<!-- look at, maybe just a TLD, no protocol (e.g \"https://\"), no \"www.\"     -->\n<!-- if unnecessary, etc.  This \"visual URL\"  may be provided by an author  -->\n<!-- through a @visual attribute.  When this attribute is not provided, we  -->\n<!-- manufacture a reasonable version from the real, actual URL that must   -->\n<!-- necessarily be given.  To prevent consideration of a visual version,   -->\n<!-- an author can set @visual=\"\" and no manufactured version will be made. -->\n<xsl:template match=\"url[node() and not(@visual)]|dataurl[node() and not(@visual)]\" mode=\"enrichment\">\n    <!-- We create a new \"default-ish\" visual URL for a  -->\n    <!-- content-full \"url\" when none has been authored -->\n    <!--  -->\n    <!-- We get a candidate visual URI             -->\n    <!--   @href: external link/reference/location -->\n    <!--   dataurl[@source]:  internal link        -->\n    <xsl:variable name=\"uri\">\n        <xsl:choose>\n            <!-- \"url\" and \"dataurl\" both support external @href -->\n            <xsl:when test=\"@href\">\n                <xsl:value-of select=\"@href\"/>\n            </xsl:when>\n            <!-- a \"dataurl\" might be local, @source is         -->\n            <!-- indication, so prefix with a base URL,         -->\n            <!-- add \"external\" directory, via template useful  -->\n            <!-- also for visual URL formulation in -assembly   -->\n            <!-- N.B. we are using the base URL, since this is  -->\n            <!-- the most likely need by employing conversions. -->\n            <!-- It would eem duplicative in a conversion to    -->\n            <!-- HTML, so could perhaps be killed in that case. -->\n            <!-- But it is what we want for LaTeX, and perhaps  -->\n            <!-- for EPUB, etc.                                 -->\n            <xsl:when test=\"self::dataurl and @source\">\n                <xsl:apply-templates select=\".\" mode=\"static-url\"/>\n            </xsl:when>\n            <!-- empty will be non-functional -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- And clean-up automatically in the prevalent cases -->\n    <xsl:variable name=\"truncated-href\">\n        <xsl:choose>\n            <xsl:when test=\"substring(@href, 1, 8) = 'https://'\">\n                <xsl:value-of select=\"substring($uri, 9)\"/>\n            </xsl:when>\n            <xsl:when test=\"substring(@href, 1, 7) = 'http://'\">\n                <xsl:value-of select=\"substring($uri, 8)\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$uri\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!--  -->\n    <xsl:copy>\n        <!-- copy all the attributes, which might include a @visual,      -->\n        <!-- and that @visual could be empty (a signal it is not desired) -->\n        <xsl:apply-templates select=\"@*\" mode=\"enrichment\"/>\n        <!-- Provide the \"missing\" @visual (see match above),  -->\n        <!-- so now *every* content-full \"url\" has an @visual, -->\n        <!-- either authored or provided automatically here.   -->\n        <!-- Conversions decide what to do with it.            -->\n        <xsl:attribute name=\"visual\">\n            <xsl:value-of select=\"$truncated-href\"/>\n        </xsl:attribute>\n        <!-- done with attributes, copy the content -->\n        <xsl:apply-templates select=\"node()\" mode=\"enrichment\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- ######################################## -->\n<!-- Enrichment of Geogebra interactives      -->\n<!-- ######################################## -->\n\n<!-- Expand reference to Geogebra by material-id to use -->\n<!-- an implicit applet approach with a slate to better -->\n<!-- facilitate all of the applet control parameters.   -->\n<xsl:template match=\"interactive[@geogebra]\" mode=\"enrichment\">\n    <xsl:param name=\"default-aspect\" select=\"'1:1'\" />\n    <xsl:variable name=\"ggbMaterialWidth\">\n        <xsl:choose>\n            <xsl:when test=\"@material-width\">\n                <xsl:value-of select=\"@material-width\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>800</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"aspect-ratio\">\n        <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\">\n            <xsl:with-param name=\"default-aspect\" select=\"$default-aspect\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"ggbMaterialHeight\">\n        <xsl:choose>\n            <xsl:when test=\"@material-height\">\n                <xsl:value-of select=\"@material-height\"/>\n            </xsl:when>\n            <xsl:when test=\"$aspect-ratio=''\"/>\n            <xsl:otherwise>\n                <xsl:value-of select=\"round($ggbMaterialWidth div $aspect-ratio)\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"slate-copy-attr\" select=\"'toolbar algebra-input reset-icon shift-drag-zoom zoom-buttons'\"/>\n    <xsl:variable name=\"interactive-drop-attr\" select=\"concat($slate-copy-attr, ' ', 'geogebra material-width material-height')\"/>\n    <interactive>\n        <xsl:attribute name=\"platform\">\n            <xsl:text>geogebra</xsl:text>\n        </xsl:attribute>\n        <xsl:if test=\"not(@aspect)\">\n            <xsl:attribute name=\"aspect\">\n                <xsl:value-of select=\"$aspect-ratio\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- Restore all of the original attributes not processed separately -->\n        <xsl:copy-of select=\"@*[not(contains(concat(' ', $interactive-drop-attr, ' '), concat(' ', local-name(), ' ')))]\"/>\n        <slate>\n            <xsl:attribute name=\"xml:id\">\n                <xsl:value-of select=\"@assembly-id\"/>\n                <xsl:text>-ggb-slate</xsl:text>\n            </xsl:attribute>\n            <xsl:attribute name=\"surface\">\n                <xsl:text>geogebra</xsl:text>\n            </xsl:attribute>\n            <xsl:attribute name=\"material\">\n                <xsl:value-of select=\"@geogebra\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"material-width\">\n                <xsl:value-of select=\"$ggbMaterialWidth\"/>\n            </xsl:attribute>\n            <xsl:if test=\"$ggbMaterialHeight != ''\">\n                <xsl:attribute name=\"material-height\">\n                    <xsl:value-of select=\"$ggbMaterialHeight\"/>\n                </xsl:attribute>\n            </xsl:if>\n            <xsl:copy-of select=\"@*[contains(concat(' ', $slate-copy-attr, ' '), concat(' ', local-name(), ' '))]\"/>\n        </slate>\n    </interactive>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- Source Repair -->\n<!-- ############# -->\n\n<!-- We unilaterally make various changes to an author's source -->\n<!-- so a conversion (every conversion?) can assume more        -->\n<!-- accurately that the source has certain characteristics.    -->\n\n<!-- 2019-04-02  \"mathbook\" replaced by \"pretext\" -->\n<xsl:template match=\"/mathbook\" mode=\"repair\">\n    <pretext>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </pretext>\n</xsl:template>\n\n<!-- 2021-07-02 wrap notation/usage in \"m\" if not present -->\n<xsl:template match=\"notation/usage[not(m)]\" mode=\"repair\">\n    <!-- duplicate \"usage\" w/ attributes, insert \"m\" as repair -->\n    <usage>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <m>\n            <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n        </m>\n    </usage>\n</xsl:template>\n\n<!-- 2021-10-04 \"glossary\" was finalized, so old-style preserved -->\n\n<!-- glossary introductions become headnotes -->\n<xsl:template match=\"glossary/introduction\" mode=\"repair\">\n    <headnote>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </headnote>\n</xsl:template>\n\n<!-- \"terms\" only ever had \"defined-term\" as children    -->\n<!-- and is now obsolete, so dropped as excess structure -->\n<xsl:template match=\"glossary/terms\" mode=\"repair\">\n    <xsl:apply-templates select=\"defined-term\" mode=\"repair\"/>\n</xsl:template>\n\n<!-- \"defined-term\" was structured, so we just select elements -->\n<xsl:template match=\"glossary/terms/defined-term\" mode=\"repair\">\n    <gi>\n        <xsl:apply-templates select=\"*|@*\" mode=\"repair\"/>\n    </gi>\n</xsl:template>\n\n<!-- no more \"conclusion\", so drop it here; deprecation will warn -->\n<xsl:template match=\"glossary/conclusion\" mode=\"repair\"/>\n\n<!-- 2022-04-22 replace Python Tutor with Runestone CodeLens -->\n<xsl:template match=\"program/@interactive\" mode=\"repair\">\n    <xsl:choose>\n        <xsl:when test=\". = 'pythontutor'\">\n            <xsl:attribute name=\"interactive\">\n                <xsl:text>codelens</xsl:text>\n            </xsl:attribute>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:copy/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- 2022-04-25 @label deprecated, slated for renewal in starring  -->\n<!-- role. Lists with markers (not description lists) -->\n<xsl:template match=\"ol/@label|ul/@label\" mode=\"repair\">\n    <xsl:attribute name=\"marker\">\n        <xsl:value-of select=\".\"/>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- 2022-04-24 An exception, label on video tracks mimicing HTML -->\n<xsl:template match=\"video/track/@label\" mode=\"repair\">\n    <xsl:attribute name=\"listing\">\n        <xsl:value-of select=\".\"/>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- 2022-06-09 WeBWorK \"stage\" deprecated in favor of \"task\"       -->\n<!-- We could use  match=\"webwork/stage\"  but then this would only  -->\n<!-- happen to the author's source while being prepared for the     -->\n<!-- \"extract-pg.xsl\" worksheet.  But we also want to catch \"stage\" -->\n<!-- coming back from an old WeBWorK server, which may be various   -->\n<!-- places after we algorithmically manipulate the \"webwork-reps\"  -->\n<!-- structure.  Instead, we just wait until now.  If necessary,    -->\n<!-- perhaps \"exercise/stage\" for the post-server pass.             -->\n<xsl:template match=\"stage\" mode=\"repair\">\n    <task>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </task>\n</xsl:template>\n\n<!-- 2022-07-10 webwork//latex-image[syntax='PGtikz'] deprecated    -->\n<!-- to just a normal latex-image. The text content for the code    -->\n<!-- must be wrapped in a tikzpicture environment.                  -->\n<xsl:template match=\"latex-image[@syntax='PGtikz']\" mode=\"repair\">\n    <xsl:copy>\n        <!-- we drop the @syntax attribute -->\n        <xsl:apply-templates select=\"node()|@*[not(local-name(.) = 'syntax')]\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n<xsl:template match=\"latex-image[@syntax='PGtikz']/text()\" mode=\"repair\">\n    <xsl:text>\\begin{tikzpicture}&#xa;</xsl:text>\n    <xsl:call-template name=\"sanitize-latex\">\n        <xsl:with-param name=\"text\">\n            <xsl:copy>\n                <xsl:apply-templates select=\".\"/>\n            </xsl:copy>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>&#xa;\\end{tikzpicture}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Deprecated 2018-12-30 in favor of \"ca\"   -->\n<!-- Copy attributes...because you never know -->\n<xsl:template match=\"circa\" mode=\"repair\">\n    <ca>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n    </ca>\n</xsl:template>\n\n<!-- Due to naivete, we had empty templates for \"keyboard characters\"    -->\n<!-- we did not have the skills to handle.  A good example was <dollar/> -->\n<!-- simply because it is a (very) special character in LaTeX.  These    -->\n<!-- were deprecated on 2019-02-06.  Beginning in 2022-12-26, we are     -->\n<!-- providing fixes here, and removing all the (dead) code meant for    -->\n<!-- backward compatibility.                                             -->\n\n<!-- XML characters -->\n\n<xsl:template match=\"less\" mode=\"repair\">\n    <xsl:text>&lt;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"greater\" mode=\"repair\">\n    <xsl:text>&gt;</xsl:text>\n</xsl:template>\n\n<!-- Ten LaTeX characters -->\n<!-- # $ % ^ & _ { } ~ \\  -->\n\n<xsl:template match=\"hash\" mode=\"repair\">\n    <xsl:text>#</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"ampersand\" mode=\"repair\">\n    <xsl:text>&amp;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"dollar\" mode=\"repair\">\n    <xsl:text>$</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"percent\" mode=\"repair\">\n    <xsl:text>%</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"circumflex\" mode=\"repair\">\n    <xsl:text>^</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"underscore\" mode=\"repair\">\n    <xsl:text>_</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"lbrace\" mode=\"repair\">\n    <xsl:text>{</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"rbrace\" mode=\"repair\">\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"tilde\" mode=\"repair\">\n    <xsl:text>~</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"backslash\" mode=\"repair\">\n    <xsl:text>\\</xsl:text>\n</xsl:template>\n\n<!-- Lesser keyboard characters -->\n<!-- [, ], *, /, `,             -->\n\n<xsl:template match=\"lbracket\" mode=\"repair\">\n    <xsl:text>[</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"rbracket\" mode=\"repair\">\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"asterisk\" mode=\"repair\">\n    <xsl:text>*</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"slash\" mode=\"repair\">\n    <xsl:text>/</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"backtick\" mode=\"repair\">\n    <xsl:text>`</xsl:text>\n</xsl:template>\n\n<!-- Grouping constructions  -->\n<!-- \"braces\" and \"brackets\" -->\n\n<xsl:template match=\"braces\" mode=\"repair\">\n    <xsl:text>{</xsl:text>\n    <!-- attributes will be lost -->\n    <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"brackets\" mode=\"repair\">\n    <xsl:text>[</xsl:text>\n    <!-- attributes will be lost -->\n    <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<!-- 2023-01-27: deprecate \"datafile\" to make way for a better    -->\n<!-- Runestone-powered version.  Cosmetic replacement: \"dataurl\". -->\n<!-- 2023-01-30: refine deprecation repair just after a minor CLI -->\n<!-- release. A \"datafile\" element may be OK as a \"new\" use,      -->\n<!-- with the presence of @label indicating use/application with  -->\n<!-- Runestone Javascript.  So only automatically upgrade \"old\"   -->\n<!-- uses lacking @label.                                         -->\n<xsl:template match=\"datafile[not(@label)]\" mode=\"repair\">\n    <dataurl>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </dataurl>\n</xsl:template>\n\n<xsl:template match=\"colophon/website[address]\" mode=\"repair\">\n    <website>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <url>\n            <xsl:attribute name=\"href\">\n                <xsl:value-of select=\"address\"/>\n            </xsl:attribute>\n            <xsl:apply-templates select=\"name/node()\" mode=\"repair\"/>\n        </url>\n    </website>\n</xsl:template>\n\n<!-- 2023-08-28: deprecate the \"console\" \"prompt\" element -->\n\n<!-- Removing this entire line typically orphans a text node    -->\n<!-- just prior with a newline and indentation, but this should -->\n<!-- not harm subsequent processing since we do not assume      -->\n<!-- source is carefully authored as one element per line.      -->\n<xsl:template match=\"console/prompt\" mode=\"repair\"/>\n\n<!-- If there was a \"prompt\" element just preceding an \"input\"      -->\n<!-- element, then we reach up and grab it and make it an attribute -->\n<!-- of the \"input\" - but not if somebody happened to already start -->\n<!-- using a @prompt attribute.                                     -->\n<!-- https://www.oxygenxml.com/archives/xsl-list/199910/msg00541.html -->\n<xsl:template match=\"console/input\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:if test=\"not(@prompt) and preceding-sibling::*[1][self::prompt]\">\n            <xsl:attribute name=\"prompt\">\n                <xsl:value-of select=\"preceding-sibling::*[1][self::prompt]\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- 2023-09-07: move \"description\" to \"shortdescription\" -->\n\n<xsl:template match=\"image/description[not(*[not(self::var)])]\" mode=\"repair\">\n    <xsl:element name=\"shortdescription\" namespace=\"\">\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </xsl:element>\n</xsl:template>\n\n<!-- 2023-10-17: docinfo/latex-preamble is history -->\n\n<xsl:template match=\"docinfo/latex-preamble\" mode=\"repair\">\n    <!-- any attributes (no such thing?) are simply  -->\n    <!-- orphaned and we just process child elements -->\n    <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n</xsl:template>\n\n<!-- 2023-10-17: and \"extra\" LaTeX packages are re-worked -->\n\n<xsl:template match=\"docinfo/latex-preamble/package\" mode=\"repair\">\n    <xsl:element name=\"math-package\">\n        <xsl:attribute name=\"latex-name\">\n            <xsl:value-of select=\".\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"mathjax-name\">\n            <xsl:value-of select=\".\"/>\n        </xsl:attribute>\n    </xsl:element>\n</xsl:template>\n\n<!-- 2024-10-29: program is reworked -->\n\n<!-- Add code element around text in program when missing -->\n<xsl:template match=\"program[not(input|code)]\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <code>\n            <xsl:value-of select=\"text()\"/>\n        </code>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"program[not(code)]/input\" mode=\"repair\">\n    <xsl:element name=\"code\">\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </xsl:element>\n</xsl:template>\n\n<!-- Index deprecations -->\n<!-- The way an index was constructed changed in 2017-07-14.  At 2024-08-08  -->\n<!-- we are using the \"repair\" phase to move the old style to the new.  The  -->\n<!-- old style looked like a \"index-part\" division with a mandatory          -->\n<!-- \"index-list\" child.  Elements sprinkled into the text were an           -->\n<!-- unstructured \"index\" or an \"index\" with up to three headings: \"main\",   -->\n<!-- followed by possibly two \"sub\".  Now the division is \"index\" (as it     -->\n<!-- should be!) and the entries are \"idx\".  A structured \"idx\" can have     -->\n<!-- one to three \"h\" elements as the headings.                              -->\n\n<!-- Change the division element -->\n<xsl:template match=\"index-part\" mode=\"repair\">\n    <index>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </index>\n</xsl:template>\n\n<!-- Change tne entry element, but avoid a new division name -->\n<xsl:template match=\"index[not(index-list)]\" mode=\"repair\">\n    <idx>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </idx>\n</xsl:template>\n\n<!-- Change first old style heading -->\n<xsl:template match=\"index[not(index-list)]/main\" mode=\"repair\">\n    <h>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </h>\n</xsl:template>\n\n<!-- Change second and third old style headings -->\n<xsl:template match=\"index[not(index-list)]/sub\" mode=\"repair\">\n    <h>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </h>\n</xsl:template>\n\n<!-- Frontmatter repairs -->\n<!-- 2024-10-10: we will no longer require an author to decide  -->\n<!-- which frontmatter elements belong on a titlepage or in the -->\n<!-- front colophon.  All the elements from both titlepage and  -->\n<!-- colophon should now go in bibinfo. We run repair whenever  -->\n<!-- the author has an existing titlepage or colophon without   -->\n<!-- the new titlepage-items or colophon-items children.        -->\n<xsl:template match=\"frontmatter[titlepage[not(titlepage-items)] or colophon[not(colophon-items)]]\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <bibinfo>\n            <!-- Include deprecated children of titlepage and colophon -->\n            <xsl:apply-templates select=\"titlepage/author\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"titlepage/editor\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"titlepage/credit\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"titlepage/date\" mode=\"repair\"/>\n            <!-- for slides, we allowed an \"event\" -->\n            <xsl:apply-templates select=\"titlepage/event\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"colophon/credit\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"colophon/edition\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"colophon/website\" mode=\"repair\"/>\n            <xsl:apply-templates select=\"colophon/copyright\" mode=\"repair\"/>\n        </bibinfo>\n        <!-- We (pretty much) duplicate everything, except two templates -->\n        <!-- below hollow-out old-style \"titlepage\" and \"colophon\" to    -->\n        <!-- match the new style with generators.                        -->\n        <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- We repair a \"titlepage\" that is not in the new style using a text   -->\n<!-- generator.  The \"titlepage\" is structural and the empty text        -->\n<!-- generator will be implemented in conversions to do the right thing. -->\n<xsl:template match=\"titlepage[not(titlepage-items)]\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"titlepage/@*\" mode=\"repair\"/>\n        <titlepage-items/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- We repair a front \"colophon\" that is not in the new style using a   -->\n<!-- text generator.  The \"colophon\" is structural and the empty text    -->\n<!-- generator will be implemented in conversions to do the right thing. -->\n<!-- NB: \"frontmatter\" is necessary so we don't clobber a BACK colophon! -->\n<xsl:template match=\"frontmatter/colophon[not(colophon-items)]\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:choose>\n            <!-- Keep authored xml:id or label -->\n            <xsl:when test=\"colophon/@xml:id|colophon/@label\">\n                <xsl:apply-templates select=\"colophon/@xml:id|colophon/@label\" mode=\"repair\"/>\n            </xsl:when>\n            <!-- Otherwise, use the label \"front-colophon\" -->\n            <xsl:otherwise>\n                <xsl:attribute name=\"label\">\n                    <xsl:text>front-colophon</xsl:text>\n                </xsl:attribute>\n            </xsl:otherwise>\n        </xsl:choose>\n        <!-- Include the colophon-items generator -->\n        <colophon-items/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- We allow an author/editor/contributor to have their affiliation information not -->\n<!-- wrapped in affiliation tags, but in that case we put them in affiliation tags.  -->\n<xsl:template match=\"frontmatter//author[not(affiliation)]|frontmatter//editor[not(affiliation)]|frontmatter//contributor[not(affiliation)]\" mode=\"repair\">\n    <xsl:copy>\n        <!-- Include \"personname\" first -->\n        <xsl:apply-templates select=\"personname|@*\" mode=\"repair\"/>\n        <!-- If there are bare deparmtment/institution/address, wrap them in affailiation -->\n        <xsl:if test=\"department or institution or location\">\n            <affiliation>\n                <xsl:apply-templates select=\"department|institution|location\" mode=\"repair\"/>\n            </affiliation>\n        </xsl:if>\n        <!-- Include all additional elements as they are -->\n        <xsl:apply-templates select=\"*[not(self::personname or self::department or self::institution or self::location)]\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- 2025-03-08:  \"commentary\" is deprecated.  Authors should remove it, -->\n<!-- but we have suggested that it could be used with version support.   -->\n<!-- So, if extant here in the repair phase, then it must have had a     -->\n<!-- @component value that a publication file suggested retaining.       -->\n<!-- So, just like the previous (now gone) \"component\" pass, we just     -->\n<!-- unwrap the element.                                                 -->\n<xsl:template match=\"commentary\" mode=\"repair\">\n    <!-- do not duplicate \"commentary\", do not replicate   -->\n    <!-- @component, do replicate element and text children -->\n    <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n</xsl:template>\n\n<!-- Change listing captions to titles if there is not already a title -->\n<xsl:template match=\"listing/caption\" mode=\"repair\">\n    <xsl:if test=\"not(parent::listing/title)\">\n        <title>\n            <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n        </title>\n    </xsl:if>\n</xsl:template>\n\n<!-- 2025-08-15: Ensure that interactives all have a @interactive-platform -->\n<!-- that identifies their basic type                                      -->\n<xsl:template match=\"interactive\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:attribute name=\"interactive-platform\">\n            <xsl:choose>\n                <xsl:when test=\"@platform\">\n                    <xsl:value-of select=\"@platform\"/>\n                </xsl:when>\n                <xsl:when test=\"@desmos\">desmos</xsl:when>\n                <xsl:when test=\"@geogebra\">geogebra</xsl:when>\n                <xsl:when test=\"@calcplot3d\">calcplot3d</xsl:when>\n                <xsl:when test=\"@circuitjs\">circuitjs</xsl:when>\n                <xsl:when test=\"@iframe\">iframe</xsl:when>\n                <xsl:otherwise>unknown</xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- 2025-11-04: a @runestone attribute was used to point into a file      -->\n<!-- of raw HTML versions of Runestone exercises.  This was a              -->\n<!-- transitional device to allow conversions of Runestone books into      -->\n<!-- PreTeXt books as work progressed on better integration of Runestone.  -->\n<!-- We make a dead simple replacment exercise, so numbering is preserved, -->\n<!-- etc, and authors can adapt at their leisure.  We remove the offending -->\n<!-- @runestone attribute via a very specialized template.                 -->\n\n<!-- applies to exercise, PROJECT-LIKE, task -->\n<xsl:template match=\"exercise[@runestone]|project[@runestone]|activity[@runestone]|exploration[@runestone]|investigation[@runestone]|task[@runestone]\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <p>There was once a (temporary) Runestone exercise here, which would only render in <init>HTML</init> output, and never in static output forms.  That (temporary) device is no longer supported as of 2025-11-04, since the exercise should now be authored in supported <pretext/> syntax.  You might alert the author to this situation.</p>\n    </xsl:copy>\n</xsl:template>\n\n<!-- remove the @runestone, just in case -->\n<xsl:template match=\"@runestone\" mode=\"repair\"/>\n\n\n<!-- Deprecate \"me\", \"men\", \"mdn\" in favor of \"md\" (w/ \"mrow\" or bare) -->\n\n<!-- Strategy: only two forms may be authored:                       -->\n<!--                                                                 -->\n<!--   Regular \"md\" with (multiple) \"mrow\" children                  -->\n<!--     - @xml:id goes on the \"mrow\"                                -->\n<!--     - @number may go on individual \"mrow\"                       -->\n<!--     - @number may go on overall \"md\" (to mimic \"mdn\")           -->\n<!--                                                                 -->\n<!--   Bare \"md\" with content (like old \"me\" and \"men\")              -->\n<!--     - @xml:id goes on the \"md\"                                  -->\n<!--     - md/@number allows for me/men dichotomy                    -->\n<!--     - md/@number is not assumed                                 -->\n<!--                                                                 -->\n<!-- Conversion here makes every existing display math construction  -->\n<!-- look like the \"regular\" version described above.                -->\n\n<!-- Not always a \"repair\" function, but we take the opportunity to  -->\n<!-- record if an \"mrow\" is numbered or not, via a  @pi:numbered     -->\n<!-- attribute, which is in our private namespace. For deprecations, -->\n<!-- we just do it.  For authored forms, we interpret an authored    -->\n<!-- @number attribute on authored \"mrow\" (status quo), on a regular -->\n<!-- or bare \"md\" (new), and a global specification in \"docinfo\"     -->\n<!-- (new).  These new features compensate for the deprecation       -->\n<!-- of the \"n\"-series elements.                                     -->\n<!-- The @tag attribute is a \"local tag\" formed with symbols,        -->\n<!-- and precludes a number.                                         -->\n\n<!-- Replace \"me\" and \"me\" by an \"md\" with one \"mrow\"    -->\n<!--   - @xml:id will live on the \"md\" (new)             -->\n<!--   - forcible  @npi:umbered  attribute for each,     -->\n<!--       to preserve old behavior                      -->\n<!--   - @pi:authored-one-line as empty sentinel, to     -->\n<!--       distinguish from an *authored* single \"mrow\"  -->\n<xsl:template match=\"me|men\" mode=\"repair\">\n    <xsl:element name=\"md\">\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <!-- note origin as single-line display math -->\n        <xsl:attribute name=\"pi:authored-one-line\"/>\n        <!-- manufacture an \"mrow\" to hold content -->\n        <xsl:element name=\"mrow\">\n            <xsl:attribute name=\"pi:numbered\">\n                <xsl:choose>\n                    <xsl:when test=\"self::me\">\n                        <xsl:text>no</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"self::men\">\n                        <xsl:text>yes</xsl:text>\n                    </xsl:when>\n                </xsl:choose>\n            </xsl:attribute>\n            <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n        </xsl:element>\n    </xsl:element>\n</xsl:template>\n\n<!-- \"md\" with \"mrow\" needs no adjustment (status quo),   -->\n<!-- the default \"repair\" templates are correct.  But     -->\n<!-- see \"mrow\" template below for @pi:numbered behavior. -->\n\n<!-- Replace \"mdn\" with \"mrow\" , by an \"md\" with @number     -->\n<!--   - see \"mrow\" template below for @pi:numbered behavior -->\n<!--   - @xml:id  was only ever allowed on individual \"mrow\" -->\n<xsl:template match=\"mdn[mrow]\" mode=\"repair\">\n    <xsl:element name=\"md\">\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <!-- copy the mrows -->\n        <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n    </xsl:element>\n</xsl:template>\n\n<!-- A bare \"mdn\" was just a transitional device during all    -->\n<!-- the deprecation of the majority of math display elements  -->\n<!-- and the introduction of more robust numbering options.    -->\n<!-- It *never* enjoyed full support and was only in the wild  -->\n<!-- for a couple of weeks.  We warn about this removal (as a  -->\n<!-- deprecation) and suggest the \"md\" replacement.            -->\n<xsl:template match=\"mdn[not(mrow)]\" mode=\"repair\"/>\n\n<!-- Replace bare \"md\" by \"md\" with one \"mrow\"          -->\n<!--   - @xml:id will live on the \"md\" (new)            -->\n<!--   - md/@number  respected first                    -->\n<!--   - md/@tag  transferred to the manufactured       -->\n<!--       \"mrow\", where downstream processing expects  -->\n<!--       it; @tag and @number are mutually exclusive  -->\n<!--   - @pi:authored-one-line as empty sentinel, to    -->\n<!--       distinguish from an *authored* single \"mrow\" -->\n<xsl:template match=\"md[not(mrow)]\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*[not(local-name(.) = 'tag')]\" mode=\"repair\"/>\n        <!-- note origin as single-line display math -->\n        <xsl:attribute name=\"pi:authored-one-line\"/>\n        <!-- manufacture an \"mrow\" to hold content -->\n        <xsl:element name=\"mrow\">\n            <!-- a @tag on the bare \"md\" is transferred to the \"mrow\" -->\n            <xsl:copy-of select=\"@tag\"/>\n            <xsl:attribute name=\"pi:numbered\">\n                <xsl:choose>\n                    <!-- a local @tag precludes a number -->\n                    <xsl:when test=\"@tag\">\n                        <xsl:text>no</xsl:text>\n                    </xsl:when>\n                    <!-- possibly authored with @number -->\n                    <xsl:when test=\"@number = 'yes'\">\n                        <xsl:text>yes</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"@number = 'no'\">\n                        <xsl:text>no</xsl:text>\n                    </xsl:when>\n                    <!-- Now the global default set in \"docinfo\".  It would be -->\n                    <!-- nice to store this choice in a global variable, but   -->\n                    <!-- the mechanics of that result in erroneous recursion.  -->\n                    <!-- So we simply repeatedly consult the \"docinfo\" built   -->\n                    <!-- in the previous tree.                                 -->\n                    <xsl:when test=\"$representations/pretext/docinfo/numbering/@equations = 'yes'\">\n                        <xsl:text>yes</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"$representations/pretext/docinfo/numbering/@equations = 'no'\">\n                        <xsl:text>no</xsl:text>\n                    </xsl:when>\n                    <!-- the default default is to not number equations -->\n                    <xsl:otherwise>\n                        <xsl:text>no</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n            <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n        </xsl:element>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Authored \"mrow\", inside \"md\" or \"mdn\", get a @pi: numbered -->\n<!-- attribute, according to hierarchy of specifications.       -->\n<!-- (\"md\" and \"mdn\" parents in \"match\" could be overkill.)     -->\n<xsl:template match=\"md/mrow|mdn/mrow\" mode=\"repair\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"repair\"/>\n        <xsl:attribute name=\"pi:numbered\">\n            <xsl:choose>\n                <xsl:when test=\"@tag\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@number = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@number = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <!-- now look to a (possible) \"mdn\" element as the      -->\n                <!-- container, the @number attribute is not supported, -->\n                <!-- the \"n\" implies a number by default                -->\n                <xsl:when test=\"parent::mdn\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <!-- now look to the (certain) \"md\" element as the container -->\n                <xsl:when test=\"parent::md[@number = 'yes']\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"parent::md[@number = 'no']\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <!-- Now the global default set in \"docinfo\".  It would be -->\n                <!-- nice to store this choice in a global variable, but   -->\n                <!-- the mechanics of that result in erroneous recursion.  -->\n                <!-- So we simply repeatedly consult the \"docinfo\" built   -->\n                <!-- in the previous tree.                                 -->\n                <xsl:when test=\"$representations/pretext/docinfo/numbering/@equations = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$representations/pretext/docinfo/numbering/@equations = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <!-- the default default is to not number equations -->\n                <xsl:otherwise>\n                    <xsl:text>no</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()\" mode=\"repair\"/>\n    </xsl:copy>\n</xsl:template>\n\n\n<!-- Display math with \"intertext\"                           -->\n<!-- We explode display math with \"inertext\" into a series   -->\n<!-- of \"md\" interspered with \"pi:intertext\" elements.       -->\n<!-- Note that $nodes only selects \"mrow\" and \"intertext\".   -->\n<!-- Note:                                                   -->\n<!-- *  This really is a \"repair\" for \"mdn\" with intertext   -->\n<!--    there is a transformation to many \"md\".              -->\n<!-- *  When the \"mrow\" get hit by the \"repair\" template,    -->\n<!--    the numbering is recorded, based on the usual        -->\n<!--     hierarchy,including the \"md\" or \"mdn\" container.    -->\n<!-- *  The text of the \"intertext\" also gets hit by         -->\n<!--   \"repair\"s of any sentence-level changes will be made. -->\n\n<xsl:template match=\"md[intertext]|mdn[intertext]\" mode=\"repair\">\n\n    <!-- We are going to explode an \"md\" with \"intertext\" into  -->\n    <!-- multiple \"md\".  But for LaTeX, only, we are going to   -->\n    <!-- basically put them all back together again.  But as we -->\n    <!-- come up to each exploded \"md\" in the LaTeX conversion  -->\n    <!-- it will not be so easy to see if the *original* \"md\"   -->\n    <!-- had numbers or local tags.  So we determine this       -->\n    <!-- prior to the explosion and record it onto each \"md\".   -->\n    <!--                                                        -->\n    <!-- The logic of deprecations here means it is perhaps     -->\n    <!-- best to construct all the \"mrow\" in a disposable       -->\n    <!-- node-set and analyze it for numbers and tags, recorded -->\n    <!-- as a single boolean we can replicate.                  -->\n\n    <xsl:variable name=\"trial-mrow-rtf\">\n        <xsl:apply-templates select=\"mrow\" mode=\"repair\"/>\n    </xsl:variable>\n    <xsl:variable name=\"trial-mrow\" select=\"exsl:node-set($trial-mrow-rtf)\"/>\n    <xsl:variable name=\"b-needs-tags\" select=\"boolean($trial-mrow/mrow[@pi:numbered = 'yes' or @tag])\"/>\n\n    <xsl:apply-templates select=\".\" mode=\"intertext-exploder\">\n        <xsl:with-param name=\"nodes\" select=\"mrow|intertext\"/>\n        <xsl:with-param name=\"location\" select=\"'first'\"/>\n        <xsl:with-param name=\"b-needs-tags\" select=\"$b-needs-tags\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"md[intertext]|mdn[intertext]\" mode=\"intertext-exploder\">\n    <xsl:param name=\"nodes\"/>\n    <xsl:param name=\"location\"/>\n    <xsl:param name=\"b-needs-tags\"/>\n\n    <!-- No nodes, no action, so recursion ends, -->\n    <!-- AND there is no $lead-node to switch on. -->\n    <xsl:if test=\"$nodes\">\n        <!-- will switch on if $lead node is \"mrow\" or \"interext\" -->\n        <xsl:variable name=\"lead-node\" select=\"$nodes[1]\"/>\n        <xsl:choose>\n            <xsl:when test=\"$lead-node[self::mrow]\">\n                <!-- The first intertext after $lead-node (if any) -->\n                <!-- marks the end of a non-empty run of \"mrow\"    -->\n                <!-- (we know $lead-node is an \"mrow\")             -->\n                <xsl:variable name=\"break\" select=\"$lead-node/following-sibling::intertext[1]\"/>\n                <!-- A maximal run of contiguous \"mrow\" starting at $lead-node.    -->\n                <!-- All \"mrow\" including $lead-node, and those coming afterwards. -->\n                <!-- $break is empty for the last run, so \"not($break)\" will be    -->\n                <!-- true and there is no filtering.  Otherwise we compare an      -->\n                <!-- \"mrow\"'s following \"intertext\" to see if it is $break or not. -->\n                <xsl:variable name=\"md-block\" select=\"$lead-node |\n                    $lead-node/following-sibling::mrow[not($break) or (following-sibling::intertext[1] = $break)]\"/>\n                <!-- put the maximal run into a fresh \"md\"     -->\n                <!-- Location helps with reconstruction in     -->\n                <!-- the LaTeX conversion, where we un-explode -->\n                <md pi:location=\"{$location}\">\n                    <xsl:attribute name=\"pi:latex-intertext-needs-tags\">\n                        <xsl:choose>\n                            <xsl:when test=\"$b-needs-tags\">\n                                <xsl:text>yes</xsl:text>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:text>no</xsl:text>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <xsl:apply-templates select=\"$md-block\" mode=\"repair\"/>\n                </md>\n                <!-- \"first\" is never repeated, and  -->\n                <!-- \"last\" only happens in one case -->\n                <xsl:variable name=\"next-location\">\n                    <xsl:choose>\n                        <xsl:when test=\"not($break/following-sibling::intertext)\">\n                            <xsl:text>last</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>intermediate</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:variable>\n                <!-- We strip down the set of $nodes, starting at the     -->\n                <!-- last \"mrow\" of the $md-block, so the remainder will  -->\n                <!-- normally start with an \"intertext\", or the remainder -->\n                <!-- might be empty (which will halt the recursion).      -->\n                <xsl:apply-templates select=\".\" mode=\"intertext-exploder\">\n                    <xsl:with-param name=\"nodes\" select=\"$md-block[last()]/following-sibling::*\"/>\n                    <xsl:with-param name=\"location\" select=\"$next-location\"/>\n                    <xsl:with-param name=\"b-needs-tags\" select=\"$b-needs-tags\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:when test=\"$lead-node[self::intertext]\">\n                <!-- We place the text of the intertext into a custom      -->\n                <!-- internal element for handling by the common templates -->\n                <pi:intertext>\n                    <xsl:apply-templates select=\"$lead-node/node()\" mode=\"repair\"/>\n                </pi:intertext>\n                <!-- Strip down $nodes by simply removing the leading \"intertext\" -->\n                <xsl:apply-templates select=\".\" mode=\"intertext-exploder\">\n                    <xsl:with-param name=\"nodes\" select=\"$lead-node/following-sibling::*\"/>\n                    <xsl:with-param name=\"location\" select=\"$location\"/>\n                    <xsl:with-param name=\"b-needs-tags\" select=\"$b-needs-tags\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- orioginal  $nodes  ensures we never get here -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############################## -->\n<!-- Killed, in Chronological Order -->\n<!-- ############################## -->\n\n<!-- 2017-07-16  killed, from 2015-03-13 deprecation -->\n<xsl:template match=\"paragraph\" mode=\"repair\"/>\n\n<!-- 2019-02-20  deprecated and killed simultaneously -->\n<xsl:template match=\"todo\" mode=\"repair\"/>\n\n<!-- A \"pagebreak\" should have had limited -->\n<!-- uptake, so no real care taken,        -->\n<!-- Deprecated 2021-03-17                 -->\n<xsl:template match=\"pagebreak\" mode=\"repair\"/>\n\n<!-- @permid experiments retired 2024-07-24, -->\n<!-- so eliminated in this phase             -->\n<xsl:template match=\"@permid\" mode=\"repair\"/>\n\n<!-- 2024-08-05: remove metadata elements from a sidebyside, -->\n<!-- which have not been schema-compliant since circa 2017   -->\n<xsl:template match=\"sidebyside/*[&METADATA-FILTER;]\" mode=\"repair\"/>\n\n<!-- ########### -->\n<!-- Assembly ID -->\n<!-- ########### -->\n\n<!-- Some maniulations of source require stable identification *before*     -->\n<!-- we assign @unique-id values for general use in the very late           -->\n<!-- \"identification\" phase.  This is a role for the \"@assembly-id\" which   -->\n<!-- is formed after the author's source has been versioned, customized,    -->\n<!-- repaired, but before replacements. It should suffice for \"big\" objects -->\n<!-- which are unlikely to change much (other than going away in a version) -->\n<!-- and may only be \"repaired\" in a one-to-one cosmetic rename.  We use    -->\n<!-- this sparingly, thus we are careful about the match, along with        -->\n<!-- documenting rationale for each object.                                 -->\n<!--                                                                        -->\n<!-- Another way to think about this is as an \"early\" id, versus the        -->\n<!-- more general \"late\" id.                                                -->\n<!--                                                                        -->\n<!-- audio|video|interactive                                                -->\n<!--     Static versions of these interactive elements have previews        -->\n<!--     (YouTube thumbnails, automatically generated screenshots),         -->\n<!--     generated QR codes, and various links meant for use in static      -->\n<!--     contexts.  So we form names of these related objects based on      -->\n<!--     an \"earlier\" id.                                                   -->\n<!--                                                                        -->\n<!-- datafile                                                               -->\n<!--     For static versions of this Runestone component, when the file is  -->\n<!--     a text file provided in the external directory, we need to         -->\n<!--     interrogate the file manufactured in the generated directory in    -->\n<!--     order to make a sample of its content.  This happens before we     -->\n<!--     construct unique-id.                                               -->\n\n<!-- NB: we believe the @assembly-id will equal the @unique-id    -->\n<!-- (\"visible-id\" template) for objects at the level of blocks,  -->\n<!-- and certainly for any object replaced by a different static  -->\n<!-- representation.  But for generated objects, e.g. QR codes,   -->\n<!-- it would be best if the generation process used the          -->\n<!-- \"assembly-id\" template for guranteed consistency.  This *is* -->\n<!-- being done for \"datafile\" but is technical debt otherwise.   -->\n\n<!-- [Ed. this once prefaced the \"visible-id-early\" template, a weak  -->\n<!-- forerunner of the \"assembly-id\" template.  But the commentary    -->\n<!-- is still good, so we have preserved it here.]                    -->\n<!-- This template produces identification that happens early in the  -->\n<!-- passes this stylesheet executes.  The idea is that some elements -->\n<!-- get replaced wholesale (such as an \"interactive\" being replaced  -->\n<!-- by a \"sidebyside\" in the creation of a static precursor.  But we -->\n<!-- want these ids, especially if automatic, to be consistent when   -->\n<!-- used in derived versions (such as manufacturing, or displaying,  -->\n<!-- a QR code file for a static \"interactive\").                      -->\n<!-- NB: this template needs to be defined in this stylesheet, since  -->\n<!-- we want the stylesheet to be independent, and the template is    -->\n<!-- also applied here.                                               -->\n\n<xsl:template match=\"audio|video|interactive|image\" mode=\"assembly-id\">\n    <xsl:value-of select=\"@assembly-id\"/>\n</xsl:template>\n\n<xsl:template match=\"exercise[@exercise-interactive='fillin' and setup]\n                   | project[@exercise-interactive='fillin' and setup]\n                   | activity[@exercise-interactive='fillin' and setup]\n                   | exploration[@exercise-interactive='fillin' and setup]\n                   | investigation[@exercise-interactive='fillin' and setup]\"\n                   mode=\"assembly-id\">\n    <xsl:value-of select=\"@assembly-id\"/>\n</xsl:template>\n<xsl:template match=\"exercise[.//task and .//task/@exercise-interactive='fillin' and .//setup]\n                   | project[.//task and .//task/@exercise-interactive='fillin' and .//setup]\n                   | activity[.//task and .//task/@exercise-interactive='fillin' and .//setup]\n                   | exploration[.//task and .//task/@exercise-interactive='fillin' and .//setup]\n                   | investigation[.//task and .//task/@exercise-interactive='fillin' and .//setup]\"\n                   mode=\"assembly-id\">\n    <xsl:value-of select=\"@assembly-id\"/>\n</xsl:template>\n\n<xsl:template match=\"datafile\" mode=\"assembly-id\">\n    <xsl:value-of select=\"@assembly-id\"/>\n</xsl:template>\n\n<xsl:template match=\"exercise/stack\" mode=\"assembly-id\">\n    <xsl:value-of select=\"@assembly-id\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"assembly-id\">\n    <xsl:message>\n        <xsl:text>PTX:BUG:  the \"assembly-id\" template was applied to an element it did not expect--</xsl:text>\n        <xsl:value-of select=\"name()\"/>\n        <xsl:text>.</xsl:text>\n        <xsl:value-of select=\"@exercise-interactive\"/>\n        <xsl:text>.</xsl:text>\n        <xsl:value-of select=\"@assembly-id\"/>\n    </xsl:message>\n    <xsl:text>unexpected-assembly-id-template-use-here</xsl:text>\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- Identification -->\n<!-- ############## -->\n\n<!-- The \"visible-id\" template switched to prefer @label,         -->\n<!-- rather than @xml:id (at 1779e6dbc84c6ecc).  So to preserve   -->\n<!-- authored (crafted) identifier strings, we copy the old over  -->\n<!-- into the new.  This preserves identifiers in output          -->\n<!-- (filenames, fragment identifiers).  Subsequent passes        -->\n<!-- should not introduce or remove elements.                     -->\n\n<!-- 2023-03-30: This is old commentary about the use of the -->\n<!-- \"unique-id\" identifier in the LaTeX conversion, which   -->\n<!-- has now become more universal.  Once identifiers settle -->\n<!-- down, we can clean up the parts of this worth keeping.  -->\n<!--  -->\n<!-- This produces unique strings that are internal to the  -->\n<!-- LaTeX (intermediate) file.  Since neither author nor   -->\n<!-- reader will ever see these, they can be as fast and as -->\n<!-- wild as necessary.  But for mature works, likely with  -->\n<!-- @permid on many relevant objects, or many @xml:id      -->\n<!-- provided for URLs in HTML, these can be predictable    -->\n<!-- across runs (and therefore help with tweaking the LaTeX-->\n<!-- output under revision control) These are employed with -->\n<!-- \\label{}, \\ref{}, \\cite{}, \\pageref{}, \\eqref{}, etc.  -->\n<!-- We can change this at will, with no adverse effects    -->\n<!-- NB: colons are banned from PTX @xml:id, and will not   -->\n<!-- appear in @permid, though we could use dashes instead  -->\n<!-- without getting duplicates.  The prefixes guarantee    -->\n<!-- that the three uniqueness schemes do not overlap.      -->\n\n<!-- First, we upgrade an authored @xml:id to a @label,       -->\n<!-- WHEN there is no authored @label present.  This is a     -->\n<!-- sort of backward-compatibility maneuver.  An @xml:id     -->\n<!-- now serves only as a sort of internal name for a target  -->\n<!-- node (like a cross-reference, \"xref\"), while it formerly -->\n<!-- served as a string to generate various bits of output,   -->\n<!-- such as filenames in HTML output.                        -->\n\n<xsl:template match=\"*\" mode=\"labels\">\n    <xsl:copy>\n        <!-- duplicate all attributes -->\n        <xsl:apply-templates select=\"@*\" mode=\"labels\"/>\n        <!-- Case: an authored @xml:id, not an authored @label -->\n        <xsl:if test=\"@xml:id and not(@label)\">\n            <xsl:attribute name=\"label\">\n                <xsl:value-of select=\"@xml:id\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- Case: a @label provided in source by author                 -->\n        <!-- It is helpful to distinguish between an authored @label and -->\n        <!-- one that this template creates by copying over a @xml:id.   -->\n        <!-- So we drop an (empty) attribute as a boolean indicator.     -->\n        <!-- This form will simplify checks later at \"run-time\".         -->\n        <xsl:if test=\"@label\">\n            <xsl:attribute name=\"authored-label\"/>\n        </xsl:if>\n        <!-- recurse -->\n        <xsl:apply-templates select=\"node()\" mode=\"labels\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- This general-purpose template constructs unique strings as part   -->\n<!-- of a natural depth-first exploration of the tree.  Strings are    -->\n<!-- reset when provided by authors on elements (ideally via @label).  -->\n<!-- Otherwise the tree structure is reflected by location at each     -->\n<!-- level of the subtree rooted at the last authored string.  A bit   -->\n<!-- unsightly, and only partialy effective to unwind the numers back  -->\n<!-- to an element.  But super-fast to construct and reliably unique   -->\n<!-- (though an author could provide two strings that make a conflict, -->\n<!-- we believe).                                                      -->\n<xsl:template match=\"*\" mode=\"id-attribute\">\n    <xsl:param name=\"parent-id\"  select=\"'root'\"/>\n    <xsl:param name=\"attr-name\"  select=\"''\"/>\n\n    <xsl:copy>\n        <!-- duplicate all attributes -->\n        <xsl:apply-templates select=\"@*\" mode=\"id-attribute\"/>\n        <!-- * Strategy is much like @original-id but maybe needs as much care            -->\n        <!-- * Element counts are used to reflect document tree structure                 -->\n        <!-- * Non-numeric separator needed to preserve uniqueness (e.g.1-12 != 11-2).    -->\n        <!-- * Separators are therefore hyphens                                           -->\n        <!-- * Colons as separators would create confusion with namespaces                -->\n        <!-- * Salt added to authored values could decrease risk of collision             -->\n        <xsl:variable name=\"new-id\">\n            <xsl:choose>\n                <!-- A @label might be authored.  Or not authored, and   -->\n                <!-- then an authored @xml:id was promoted into a @label -->\n                <xsl:when test=\"@label\">\n                    <xsl:value-of select=\"@label\"/>\n                </xsl:when>\n                <!-- This mimics the upgrade of an authored xml:id to a label -->\n                <!-- NB: this might not ever happen in some passes, when an   -->\n                <!-- @xml:id value has been upgraed to a @label value in a    -->\n                <!-- prior pass, because if there was an @xml:id, then it     -->\n                <!-- was upgraded to being a @label and if this \"choose\" gets -->\n                <!-- here, then the next test is false.                       -->\n                <xsl:when test=\"@xml:id\">\n                    <xsl:value-of select=\"@xml:id\"/>\n                </xsl:when>\n                <!-- Author has not supplied any sort of identification, no -->\n                <!-- @label and no @xml:id.  So we automatically devise one -->\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$parent-id\"/>\n                    <xsl:text>-</xsl:text>\n                    <!-- Start counting from 1, easier to debug -->\n                    <xsl:number value=\"count(preceding-sibling::*) + 1\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:attribute name=\"{$attr-name}\">\n            <xsl:value-of select=\"$new-id\"/>\n        </xsl:attribute>\n        <!-- recurse -->\n        <xsl:apply-templates select=\"node()\" mode=\"id-attribute\">\n            <xsl:with-param name=\"parent-id\" select=\"$new-id\"/>\n            <xsl:with-param name=\"attr-name\" select=\"$attr-name\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- There is no real purpose to put identification onto an     -->\n<!-- (X)HTML element floating around as part of an interactive. -->\n<xsl:template match=\"pf:*|xhtml:*\" mode=\"id-attribute\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*|node()\" mode=\"id-attribute\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- We look for duplicate identifiers both right after    -->\n<!-- assembly and right after automatic generation.  The   -->\n<!-- application of these templates is mixed-in to the     -->\n<!-- creation of the trees.                                -->\n<!-- NB: these were built as regular templates and the     -->\n<!-- root of the relevant tree was passed in, this created -->\n<!-- some error with the construction of the final tree:   -->\n<!-- \"Recursive definition of root\"                        -->\n<xsl:template name=\"duplication-check-xmlid\">\n    <!-- pass in all elements with @xml:id attributes -->\n    <xsl:param name=\"nodes\"/>\n    <!-- 'authored' or 'generated', just influences messages -->\n    <xsl:param name=\"purpose\"/>\n\n    <xsl:call-template name=\"duplication-check-attribute\">\n        <xsl:with-param name=\"nodes\" select=\"$nodes\"/>\n        <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n        <xsl:with-param name=\"target-attr\" select=\"'xml:id'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"duplication-check-label\">\n    <!-- pass in all elements with @label attributes -->\n    <xsl:param name=\"nodes\"/>\n    <!-- 'authored' or 'generated', just influences messages -->\n    <xsl:param name=\"purpose\"/>\n\n    <xsl:call-template name=\"duplication-check-attribute\">\n        <xsl:with-param name=\"nodes\" select=\"$nodes\"/>\n        <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n        <xsl:with-param name=\"target-attr\" select=\"'label'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"duplication-check-attribute\">\n    <xsl:param name=\"nodes\"/>\n    <!-- 'authored' or 'generated', just influences messages -->\n    <xsl:param name=\"purpose\"/>\n    <xsl:param name=\"target-attr\"/>\n\n    <!-- construct a list of just the sorted labels -->\n    <xsl:variable name=\"attr-values-sorted-rtf\">\n        <xsl:for-each select=\"$nodes/@*[name() = $target-attr]\">\n            <xsl:sort select=\".\"/>\n            <label>\n                <xsl:value-of select=\".\"/>\n            </label>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"attr-values-sorted\" select=\"exsl:node-set($attr-values-sorted-rtf)\"/>\n\n    <!-- traverse sorted list to find duplicates -->\n    <xsl:for-each select=\"$attr-values-sorted/*\">\n        <!-- save off the string on current node -->\n        <xsl:variable name=\"attr-value\" select=\".\"/>\n        <!-- get previous two labels - will be '' if out of bounds -->\n        <xsl:variable name=\"prev-value\" select=\"string(preceding-sibling::*[1])\"/>\n        <xsl:variable name=\"prev-prev-value\" select=\"string(preceding-sibling::*[2])\"/>\n        <!-- identify only first instance of a duplicate for each label -->\n        <xsl:if test=\"($attr-value= $prev-value) and ($attr-value != $prev-prev-value)\">\n            <xsl:choose>\n                <xsl:when test=\"$purpose = 'authored'\">\n                    <xsl:message>PTX:ERROR: the @<xsl:value-of select=\"$target-attr\"/> value \"<xsl:value-of select=\"$attr-value\"/>\" should be unique, but is authored multiple times.</xsl:message>\n                </xsl:when>\n            </xsl:choose>\n            <xsl:message>           Results will be unpredictable, and likely incorrect.  Information on the locations follows:</xsl:message>\n            <!-- use the original nodes to report location of instances -->\n            <!-- select where they have an attr with the correct name and it has correct value -->\n            <xsl:for-each select=\"$nodes[@*[name() = $target-attr] = $attr-value]\">\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:for-each>\n        </xsl:if>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Diagnostic: verify @assembly-id equals @unique-id for  -->\n<!-- every element that carries both.  A mismatch indicates -->\n<!-- a structural change between the two ID-stamping passes -->\n<!-- that violates the identification contract documented   -->\n<!-- near the top of this stylesheet.  Gated by the         -->\n<!-- assembly.debug parameter; does nothing when off.       -->\n\n<xsl:template match=\"node()|@*\" mode=\"id-coherence-check\">\n    <xsl:if test=\"$b-assembly-debug\">\n        <xsl:for-each select=\".//*[@assembly-id and @unique-id and not(@assembly-id = @unique-id)]\">\n            <xsl:message>\n                <xsl:text>PTX:DEBUG:  @assembly-id / @unique-id mismatch on &lt;</xsl:text>\n                <xsl:value-of select=\"local-name()\"/>\n                <xsl:text>&gt;: assembly-id=\"</xsl:text>\n                <xsl:value-of select=\"@assembly-id\"/>\n                <xsl:text>\" unique-id=\"</xsl:text>\n                <xsl:value-of select=\"@unique-id\"/>\n                <xsl:text>\"</xsl:text>\n            </xsl:message>\n        </xsl:for-each>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ######### -->\n<!-- Languages -->\n<!-- ######### -->\n\n<!-- The variable $locales is a node-set of all the locales which have    -->\n<!-- supported localization files.  A comparison of an @xml:lang (string) -->\n<!-- with $locales (node-set) will be true if the attribute value is a    -->\n<!-- string value of one of the nodes in the node-set.  So it is easy to  -->\n<!-- create a boolean value for localization support .                    -->\n<xsl:variable name=\"locales\" select=\"document('localizations/localizations.xml')/localizations/locale\" />\n\n<!-- We want the root node to always have full and accurate language         -->\n<!-- information since it will be the fail-safe node on a query up the tree. -->\n<!-- Earlier \"repair\" pass eliminates \"mathbook\".                            -->\n<xsl:template match=\"/pretext\" mode=\"language\">\n    <!-- see above description of $locales, false if missing -->\n    <xsl:variable name=\"b-is-supported\" select=\"@xml:lang = $locales\"/>\n    <!-- duplicate with better language information -->\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"language\"/>\n        <xsl:choose>\n            <xsl:when test=\"$b-is-supported\">\n                <!-- if supported, it was just duplicated, save off a -->\n                <!-- new attribute indicating use for localizations   -->\n                <xsl:attribute name=\"locale-lang\">\n                    <xsl:value-of select=\"@xml:lang\"/>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- if missing we add the default          -->\n                <!-- if unsupported, overwrite with default -->\n                <xsl:attribute name=\"xml:lang\">\n                    <xsl:text>en-US</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"locale-lang\">\n                    <xsl:text>en-US</xsl:text>\n                </xsl:attribute>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:apply-templates select=\"node()\" mode=\"language\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- An  @xml:id  is checked to see if it is supported for localizations.  -->\n<!-- If so, we augment the elment with an internal attribute.  If not,     -->\n<!-- we just leave a copy alone, it might be relevant for future features. -->\n<xsl:template match=\"*[@xml:lang]\" mode=\"language\">\n    <!-- see above description of $locales -->\n    <xsl:variable name=\"b-is-supported\" select=\"@xml:lang = $locales\"/>\n    <!-- duplicate with additional language information -->\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"language\"/>\n        <xsl:if test=\"$b-is-supported\">\n            <xsl:attribute name=\"locale-lang\">\n                <xsl:value-of select=\"@xml:lang\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <xsl:apply-templates select=\"node()\" mode=\"language\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Note: the $language tree is accessed (repeatedly) in the  -->\n<!-- $augment pass in order to determine the global default for  -->\n<!-- numbering equations.  So the order of these two must be  -->\n<!-- preserved.  See notes below for more explanation. -->\n\n\n<!-- ######### -->\n<!-- Numbering -->\n<!-- ######### -->\n\n<!-- We use the \"augment\" pass to compute, and add, partially naïve        -->\n<!-- information about numbers of objects, to be interpreted later by      -->\n<!-- templates in the \"-common\" stylesheet.  By \"naïve\" we mean that       -->\n<!-- these routines may depend on publisher variables (e.g. specification  -->\n<!-- of roots of subtrees for serial numbers of blocks) but do not depend  -->\n<!-- on subtlties of numbering (such as the structured/unstructured        -->\n<!-- division dichotomy), which are addressed in the \"-common\" stylesheet. -->\n<!-- In this way, this information could be interpreted in new ways by     -->\n<!-- additional conversions.                                               -->\n<!--                                                                       -->\n<!-- The manufactured @struct attribute is the (naïve) hierarchical number -->\n<!-- of the *container* of an element, known as the \"structure number\"     -->\n<!-- of an element.  The @serial attribute is the computed serial number   -->\n<!-- of the element, known as the \"serial number\".  Typically combining    -->\n<!-- these two attributes forms teh number of an element.  As many         -->\n<!-- practical subtleties about these numbers is delayed until their       -->\n<!-- interpretation by templates in the \"-common\" stylesheet.              -->\n\n<!-- For every type of division, everywhere, the \"division-serial-number\"   -->\n<!-- modal template will return a count of preceding peers at that level.   -->\n<!-- The @struct attribute is the structure number of the *parent*          -->\n<!-- (container), which seems odd here, but fits the general scheme better. -->\n<!-- The @level attribute is helpful, and trvislly to compute here.         -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|exercises|solutions|reading-questions|references|glossary|worksheet|handout\" mode=\"augment\">\n    <xsl:param name=\"parent-struct\"/>\n    <xsl:param name=\"level\"/>\n    <xsl:param name=\"ordered-list-level\" />\n\n    <xsl:variable name=\"the-serial\">\n        <xsl:apply-templates select=\".\" mode=\"division-serial-number\"/>\n    </xsl:variable>\n    <xsl:variable name=\"new-struct\">\n        <xsl:choose>\n            <!-- Parts as Roman numerals make for a lot of clutter.      -->\n            <!-- We tend to only use them when necessary to diambiguate  -->\n            <!-- a cross-reference in the case where these numbers are   -->\n            <!-- structural.  So rightly or wrongly, and owing to        -->\n            <!-- historical work, we squelch them as the lead item of a  -->\n            <!-- structural number.  So here the Roman numeral will be   -->\n            <!-- preserved as a serial number, but the construction of   -->\n            <!-- the structural numbers will be delayed one level.       -->\n            <!-- (It seems harder to strip these in -common.)            -->\n            <xsl:when test=\"self::part\"/>\n            <!-- Decorative specialized divisions are transparent:    -->\n            <!-- they do not extend the structure number chain, so    -->\n            <!-- blocks inside them use the parent division's chain.  -->\n            <!-- Specialized divisions are leaves of the division     -->\n            <!-- tree, so this does not affect any descendant         -->\n            <!-- division's @struct.                                  -->\n            <xsl:when test=\"&SPECIALIZED-DIVISION-FILTER;\">\n                <xsl:variable name=\"is-numbered\">\n                    <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n                </xsl:variable>\n                <xsl:choose>\n                    <xsl:when test=\"$is-numbered = 'true'\">\n                        <xsl:value-of select=\"$parent-struct\"/>\n                        <xsl:if test=\"not($parent-struct='')\">\n                            <xsl:text>.</xsl:text>\n                        </xsl:if>\n                        <xsl:value-of select=\"$the-serial\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$parent-struct\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$parent-struct\"/>\n                <xsl:if test=\"not($parent-struct='')\">\n                    <xsl:text>.</xsl:text>\n                </xsl:if>\n                <xsl:value-of select=\"$the-serial\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"next-level\" select=\"$level + 1\"/>\n    <xsl:variable name=\"next-ordered-list-level\">\n        <xsl:choose>\n            <xsl:when test=\"self::exercises or self::worksheet or self::handout or self::reading-questions or self::references\">\n                <xsl:number value=\"1\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:number value=\"0\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:copy>\n        <xsl:attribute name=\"struct\">\n            <xsl:value-of select=\"$parent-struct\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"serial\">\n            <xsl:value-of select=\"$the-serial\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"level\">\n            <xsl:value-of select=\"$next-level\"/>\n        </xsl:attribute>\n        <!-- Full structure chain including this division's       -->\n        <!-- contribution.  Decorative specialized divisions are  -->\n        <!-- transparent (pass through parent's chain).  Used by  -->\n        <!-- block elements to compute their structure numbers.   -->\n        <xsl:attribute name=\"block-struct\">\n            <xsl:value-of select=\"$new-struct\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"augment\">\n            <xsl:with-param name=\"parent-struct\" select=\"$new-struct\"/>\n            <xsl:with-param name=\"level\" select=\"$next-level\"/>\n            <xsl:with-param name=\"ordered-list-level\" select=\"$next-ordered-list-level\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- See the definitions of levels in -common.  For a book with parts   -->\n<!-- ($parts != 'absent') we consider parts as peers of frontmatter and -->\n<!-- backmatter.  So we need to increment the level in this case, only. -->\n<!-- NB: this might consolidate with above, but seems better solo.      -->\n<!-- NB: with some study and work, this situation might be improved?    -->\n<xsl:template match=\"frontmatter|backmatter\" mode=\"augment\">\n    <xsl:param name=\"parent-struct\"/>\n    <xsl:param name=\"level\"/>\n\n    <xsl:variable name=\"next-level\">\n        <xsl:choose>\n            <xsl:when test=\"($parts = 'decorative') or ($parts = 'structural')\">\n                <xsl:value-of select=\"$level + 1\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$level\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- we only add a level (not necessary?) -->\n    <!-- and just pass along structure number -->\n    <xsl:copy>\n        <xsl:attribute name=\"level\">\n            <xsl:value-of select=\"$next-level\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"augment\">\n            <xsl:with-param name=\"parent-struct\" select=\"$parent-struct\"/>\n            <xsl:with-param name=\"level\" select=\"$next-level\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Labels of ordered lists have formatting codes, which  -->\n<!-- we detect here and pass on to other more specialized  -->\n<!-- templates for implementation specifics                -->\n<!-- In order: Arabic (0-based), Arabic (1-based)          -->\n<!-- lower-case Latin, upper-case Latin,                   -->\n<!-- lower-case Roman numeral, upper-case Roman numeral    -->\n<!-- Absent a label attribute, defaults go 4 levels deep   -->\n<!-- (max for Latex) as: Arabic, lower-case Latin,         -->\n<!-- lower-case Roman numeral, upper-case Latin            -->\n<xsl:template match=\"ol\" mode=\"format-code\">\n    <xsl:param name=\"level\"/>\n    <xsl:choose>\n        <xsl:when test=\"@marker\">\n            <xsl:choose>\n                <xsl:when test=\"contains(@marker,'0')\">0</xsl:when>\n                <xsl:when test=\"contains(@marker,'1')\">1</xsl:when>\n                <xsl:when test=\"contains(@marker,'a')\">a</xsl:when>\n                <xsl:when test=\"contains(@marker,'A')\">A</xsl:when>\n                <xsl:when test=\"contains(@marker,'i')\">i</xsl:when>\n                <xsl:when test=\"contains(@marker,'I')\">I</xsl:when>\n                <!-- DEPRECATED 2015-12-12 -->\n                <xsl:when test=\"@marker=''\" />\n                <xsl:otherwise>\n                    <xsl:message>PTX:ERROR: ordered list label (<xsl:value-of select=\"@marker\" />) not recognized</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:choose>\n                <xsl:when test=\"$level='0'\">1</xsl:when>\n                <xsl:when test=\"$level='1'\">a</xsl:when>\n                <xsl:when test=\"$level='2'\">i</xsl:when>\n                <xsl:when test=\"$level='3'\">A</xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:ERROR: ordered list is more than 4 levels deep (at level <xsl:value-of select=\"$level\" />) or is inside an \"exercise\" and is more than 3 levels deep  (at level <xsl:value-of select=\"$level - 1\" />)</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"ol\" mode=\"augment\">\n    <xsl:param name=\"ordered-list-level\"/>\n    <xsl:variable name=\"next-level\" select=\"$ordered-list-level + 1\" />\n    <xsl:variable name=\"format-code\">\n        <xsl:apply-templates select=\".\" mode=\"format-code\">\n            <xsl:with-param name=\"level\" select=\"$ordered-list-level\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <!-- deconstruct the left and right adornments of the label   -->\n    <!-- or provide default adornments, consistent with LaTeX     -->\n    <!-- then store them                                          -->\n    <xsl:variable name=\"marker-prefix\">\n        <xsl:choose>\n            <xsl:when test=\"@marker\">\n                <xsl:value-of select=\"substring-before(@marker, $format-code)\" />\n            </xsl:when>\n            <xsl:when test=\"$format-code = 'a' and $ordered-list-level = '1'\">\n                <xsl:text>(</xsl:text>\n            </xsl:when>\n            <xsl:otherwise />\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"marker-suffix\">\n        <xsl:choose>\n            <xsl:when test=\"@marker\">\n                <xsl:value-of select=\"substring-after(@marker, $format-code)\" />\n            </xsl:when>\n            <xsl:when test=\"$format-code = 'a' and $ordered-list-level = '1'\">\n                <xsl:text>)</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>.</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:copy>\n        <xsl:attribute name=\"ordered-list-level\">\n            <xsl:value-of select=\"$ordered-list-level\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"format-code\">\n            <xsl:value-of select=\"$format-code\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"marker-prefix\">\n            <xsl:value-of select=\"$marker-prefix\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"marker-suffix\">\n            <xsl:value-of select=\"$marker-suffix\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"augment\">\n            <xsl:with-param name=\"ordered-list-level\" select=\"$next-level\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Exercises -->\n<!-- ######### -->\n\n<!-- Exercises, and their kin, are complicated.  They come in five types   -->\n<!-- (inline, divisional, reading, worksheet, project-like) based largely  -->\n<!-- on location.  They can be static, interactive in HTML, interactive    -->\n<!-- on a server.  Interactive versions come in many flavors, such as      -->\n<!-- short answer, multiple choice, true/false, Parson, cardsort, fill-in, -->\n<!-- and so on.  Their solutions (hint, answer, solution) apear, or do not -->\n<!-- appear, where born or in specialized \"solutions\" divisions.  We       -->\n<!-- scribble on each to record as much as we can right now.  It'll be     -->\n<!-- useful below and forever.                                             -->\n\n<!-- Record exercise ancestors/location-->\n<!-- An \"exercise\" can be in one of four places.  We reset the parameter   -->\n<!-- as we pass through.  Default is \"inline\" and we initialize with that  -->\n<!-- value.  These three specialized divisions are always terminal, so we  -->\n<!-- will never find an inline exercise contained within.  We allow        -->\n<!-- publisher customization of exercises based on these locations, *and*  -->\n<!-- for project-like.  These templates are just about divisions.          -->\n\n<xsl:template match=\"reading-questions\" mode=\"exercise\">\n    <xsl:param name=\"division\"/>\n\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"exercise\">\n            <xsl:with-param name=\"division\" select=\"'reading'\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"worksheet\" mode=\"exercise\">\n    <xsl:param name=\"division\"/>\n\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"exercise\">\n            <xsl:with-param name=\"division\" select=\"'worksheet'\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"exercises\" mode=\"exercise\">\n    <xsl:param name=\"division\"/>\n\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"exercise\">\n            <xsl:with-param name=\"division\" select=\"'divisional'\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Annotate \"exercise\" and PROJECT-LIKE -->\n<!-- Pre-processing here is entirely about supporting interactive       -->\n<!-- exercises powered by Runestone Services.  We allow publisher       -->\n<!-- options to control interactivity of \"short answer\" questions       -->\n<!-- when hosted on a server, so that is why locations are being noted. -->\n<!--   1.  \"exercise-customization\" refers to the situation where       -->\n<!--       certain publication options can vary behavior or visibility  -->\n<!--   2.  \"exercise-interactive\" refers to the type of                 -->\n<!--        interactivity, \"static\" is the default                      -->\n<!--                                                                    -->\n<!-- TODO:                                                              -->\n<!-- 1.  Expand to WW, example-like, and task                           -->\n<!-- 2.  Insert \"statement\" when not authored                           -->\n<!-- 3.  Use locations computed here, remove elsewhere                  -->\n<!-- 4.  Recognize new, modern fill-in problems                         -->\n\n<xsl:template match=\"exercise|&PROJECT-LIKE;|task\" mode=\"exercise\">\n    <xsl:param name=\"division\"/>\n\n    <xsl:copy>\n        <!-- Record one of five categories for customization, which    -->\n        <!-- are not relevant for \"example\" (always inline), or \"task\" -->\n        <!-- (always just a component of something larger).  WeBWork   -->\n        <!-- problems are interactive or static, inline or not, based  -->\n        <!-- on publisher options.                                     -->\n        <xsl:if test=\"not(self::task)\">\n            <xsl:attribute name=\"exercise-customization\">\n                <xsl:choose>\n                    <xsl:when test=\"&PROJECT-FILTER;\">\n                        <xsl:text>project</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$division\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- Determine and record types of interactivity -->\n        <xsl:apply-templates select=\".\" mode=\"exercise-interactive-attribute\"/>\n        <!-- catch remaining attributes -->\n        <xsl:apply-templates select=\"@*\" mode=\"exercise\">\n            <xsl:with-param name=\"division\" select=\"$division\"/>\n        </xsl:apply-templates>\n        <!-- Now the child elements -->\n        <!-- NB: this would be a place to insert a \"statement\" for  -->\n        <!-- \"exercise\", \"example\", \"project\" and \"task\", for which -->\n        <!-- an author has not needed/elected to use one.           -->\n        <xsl:apply-templates select=\"node()\" mode=\"exercise\">\n            <xsl:with-param name=\"division\" select=\"$division\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- These \"interactivity types\" are meant for Runestone-enabled  -->\n<!-- interactive exercises and projects                           -->\n<xsl:template match=\"*\" mode=\"exercise-interactive-attribute\">\n    <xsl:attribute name=\"exercise-interactive\">\n        <xsl:choose>\n            <!-- This is defensive, so statement//var below does not -->\n            <!-- match for WeBWorK.                                  -->\n            <xsl:when test=\"self::task and ancestor::webwork\">\n                <xsl:text>webwork-task</xsl:text>\n            </xsl:when>\n            <!-- WeBWorK exercises always retain \"webwork\" child     -->\n            <!-- through the pipeline.  Substitution from the        -->\n            <!-- representations file happens in the representations -->\n            <!-- pass, after exercise tagging.                       -->\n            <xsl:when test=\"webwork\">\n                <xsl:text>webwork</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"myopenmath\">\n                <xsl:text>myopenmath</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"stack\">\n                <xsl:text>stack</xsl:text>\n            </xsl:when>\n            <!-- @runestone was once used to signify a Runestone exercise given  -->\n            <!-- just by raw HTML.  The  @exercise-interactive  value uses was,  -->\n            <!-- appropriately, \"htmlhack\".  We now replace it with an old-time, -->\n            <!-- static PreTeXt style (dumb) exercise.  Changing the value here  -->\n            <!-- is a quick way to nullify activity in later passes.   See below -->\n            <!-- where the \"repair\" phase removes the  @runestone  attribute and -->\n            <!-- creates the (dumb) exercise, in order to understand more fully. -->\n            <!-- The commit with these changes might also help. (2025-11-04)     -->\n            <xsl:when test=\"@runestone\">\n                <xsl:text>static</xsl:text>\n            </xsl:when>\n            <!-- true/false -->\n            <xsl:when test=\"statement/@correct\">\n                <xsl:text>truefalse</xsl:text>\n            </xsl:when>\n            <!-- multiple choice -->\n            <xsl:when test=\"statement and choices\">\n                <xsl:text>multiplechoice</xsl:text>\n            </xsl:when>\n            <!-- vertical is default/traditional -->\n            <xsl:when test=\"statement and blocks and not(blocks/@layout = 'horizontal')\">\n                <xsl:text>parson</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"statement and blocks and (blocks/@layout = 'horizontal')\">\n                <xsl:text>parson-horizontal</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"statement and cardsort\">\n                <xsl:text>cardsort</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"statement and matching\">\n                <xsl:text>matching</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"statement and areas\">\n                <xsl:text>clickablearea</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"select\">\n                <xsl:text>select</xsl:text>\n            </xsl:when>\n            <!-- noted WeBWork earlier, so this is Runestone fillin -->\n            <xsl:when test=\"statement//var\">\n                <xsl:text>fillin-basic</xsl:text>\n            </xsl:when>\n            <!-- new dynamic fillin goes here, perhaps:                     -->\n            <!-- statement//fillin[(@*|node()) and not(@characters|@fill)]? -->\n            <xsl:when test=\"statement//fillin and evaluation\">\n                <xsl:text>fillin</xsl:text>\n            </xsl:when>\n            <!-- only interactive programs make sense after a \"statement\" -->\n            <xsl:when test=\"statement and program[(@interactive = 'codelens') or (@interactive = 'activecode')]\">\n                <xsl:text>coding</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"dynamic and static\">\n                <xsl:text>dual</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"statement and response\">\n                <xsl:text>shortanswer</xsl:text>\n            </xsl:when>\n            <!-- That's it, we are out of opportunities to be interactive -->\n\n            <!-- A child that is a task indicates the exercise/project/task -->\n            <!-- that is its parent is simply a container, rather than a    -->\n            <!-- terminal task which would be structured with a \"statement\" -->\n            <!-- in order to be interactive                                 -->\n            <xsl:when test=\"task\">\n                <xsl:text>container</xsl:text>\n            </xsl:when>\n            <!-- Now we have what once would have been called a \"traditional\"     -->\n            <!-- PreTeXt question, which is just \"statement|hint|answer|solution\" -->\n            <!-- Or maybe just a bare statement that is not structured as such    -->\n            <xsl:otherwise>\n                <xsl:text>static</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:attribute>\n</xsl:template>\n\n\n<!-- ############### -->\n<!-- Representations -->\n<!-- ############### -->\n\n<!-- Build multiple (two) representations of exercises that are produced  -->\n<!-- in static (almost everything) and dynamic (HTML) versions.            -->\n<!-- Generally these templates are parameterized by the $exercise-style   -->\n<!-- variable/parameter.  We need the parameterization, since we do not   -->\n<!-- want to make *multiple* copies of each exercise in the source, since -->\n<!-- then duplicate items might confuse later templates e.g numbering).   -->\n<!--                                                                      -->\n<!-- A \"static\" version should be entirely in the style of a \"regular\"    -->\n<!-- PreTeXt exercise, having a statement|hint|answer|solution structure. -->\n<!-- Then it can be leveraged through all the infrastructure for things   -->\n<!-- like solutions manuals and non-capable output formats.               -->\n<!--                                                                      -->\n<!-- A \"dynamic\" version is simply a duplicate of the author's source,    -->\n<!-- which is handled by templates elsewhere, applied in the HTML         -->\n<!-- conversion itself.                                                   -->\n\n<!-- True/False        -->\n<!-- Multiple Choice   -->\n<!-- Parson problems   -->\n<!-- Cardsort problems -->\n<!-- Matching problems -->\n<!-- Clickable Area    -->\n<!-- ActiveCode        -->\n\n<!-- TODO: definitely need better filters -->\n<!-- complement (not()), single attribute -->\n<!-- Also in Runestone manifest creation  -->\n\n<xsl:template match=\"exercise[ (@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'fillin') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'shortanswer')]\n                      |\n                      project[ (@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'fillin') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'shortanswer')]\n                     |\n                     activity[ (@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'fillin') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'shortanswer')]\n                     |\n                  exploration[ (@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'fillin') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'shortanswer')]\n                     |\n                investigation[ (@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'fillin') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'shortanswer')]\n                     |\n                         task[ (@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'fillin') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'shortanswer')]\" mode=\"representations\">\n    <!-- always preserve \"exercise/project\" container here, with attributes -->\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n        <xsl:choose>\n            <!-- make a static version, in a PreTeXt   -->\n            <!-- statement|hint|answer|solution style  -->\n            <!-- for use naturally by most conversions -->\n            <xsl:when test=\"$exercise-style = 'static'\">\n                <!-- overwrite classification as purely static now -->\n                <xsl:attribute name=\"exercise-interactive\">\n                    <xsl:text>static</xsl:text>\n                </xsl:attribute>\n                <xsl:apply-templates select=\".\" mode=\"runestone-to-static\"/>\n            </xsl:when>\n            <!-- duplicate for a dynamic version -->\n            <xsl:when test=\"$exercise-style = 'dynamic'\">\n                <xsl:apply-templates select=\"node()\" mode=\"representations\"/>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:copy>\n</xsl:template>\n\n<!-- A select question is only really capable on a Runestone server.  So when    -->\n<!-- assembling for dynamic exercises, and not hosting on Runestone, go instead  -->\n<!-- with the static version.  We have three scenarios, handled with variations. -->\n<!-- Note that these matches have been carved out from the above massive match.  -->\n<xsl:template match=\"exercise[(@exercise-interactive = 'select')]\n                   | project[(@exercise-interactive = 'select')]\n                   | activity[(@exercise-interactive = 'select')]\n                   | exploration[(@exercise-interactive = 'select')]\n                   | investigation[(@exercise-interactive = 'select')]\n                   | task[(@exercise-interactive = 'select')]\" mode=\"representations\">\n    <xsl:copy>\n        <xsl:choose>\n            <xsl:when test=\"($exercise-style = 'static')\">\n                <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n                <!-- overwrite classification as purely static now -->\n                <xsl:attribute name=\"exercise-interactive\">\n                    <xsl:text>static</xsl:text>\n                </xsl:attribute>\n                <xsl:apply-templates select=\".\" mode=\"runestone-to-static\"/>\n            </xsl:when>\n            <!-- Use static version when making dynamic exercises *that are -->\n            <!-- not hosted on Runestone*.  Classify as now being 'static'. -->\n            <xsl:when test=\"($exercise-style = 'dynamic') and not($b-host-runestone)\">\n                <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n                <!-- overwrite classification as purely static now -->\n                <xsl:attribute name=\"exercise-interactive\">\n                    <xsl:text>static</xsl:text>\n                </xsl:attribute>\n                <xsl:apply-templates select=\".\" mode=\"runestone-to-static\"/>\n            </xsl:when>\n            <!-- duplicate for a dynamic version -->\n            <xsl:when test=\"$exercise-style = 'dynamic'\">\n                <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"node()\" mode=\"representations\"/>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:copy>\n</xsl:template>\n\n<!-- dual copy (not copy-of) -->\n\n<xsl:template match=\"exercise[(@exercise-interactive = 'dual')]\n                   | project[(@exercise-interactive = 'dual')]\n                   | activity[(@exercise-interactive = 'dual')]\n                   | exploration[(@exercise-interactive = 'dual')]\n                   | investigation[(@exercise-interactive = 'dual')]\n                   | task[(@exercise-interactive = 'dual')]\" mode=\"representations\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n        <xsl:choose>\n            <xsl:when test=\"($exercise-style = 'static')\">\n                <!-- make a \"static\" classification, over-writing a \"dual\" -->\n                <xsl:attribute name=\"exercise-interactive\">\n                    <xsl:text>static</xsl:text>\n                </xsl:attribute>\n                <!-- copy overall title and idx, METADATA-FILTER feels too broad  -->\n                <xsl:apply-templates select=\"title|idx\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"static/*\" mode=\"representations\"/>\n            </xsl:when>\n            <xsl:when test=\"($exercise-style = 'dynamic')\">\n                <!-- copy overall title and idx, METADATA-FILTER feels too broad  -->\n                <xsl:apply-templates select=\"title|idx\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"dynamic/*\" mode=\"representations\"/>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:copy>\n</xsl:template>\n\n\n<!-- Static (non-interactive) -->\n<!-- @exercise-interactive = 'static' needs no adjustments -->\n\n<!-- Mine webwork-reps for relevant application -->\n\n<!-- WeBWorK exercises retain a \"webwork\" child element through the    -->\n<!-- pipeline.  Here in the representations pass, we look up the       -->\n<!-- corresponding \"webwork-reps\" from the representations file using  -->\n<!-- the parent exercise's @assembly-id, and substitute it in place    -->\n<!-- of the \"webwork\" element.  We then split three ways, for PGML,    -->\n<!-- static, and dynamic (HTML) employment, via modal templates.       -->\n<!-- During extraction, the \"webwork\" child is left intact.            -->\n<!-- NB: including \"task\" though this may not be supported.            -->\n<xsl:template match=\"exercise[(@exercise-interactive = 'webwork')]\n                   | project[(@exercise-interactive = 'webwork')]\n                   | activity[(@exercise-interactive = 'webwork')]\n                   | exploration[(@exercise-interactive = 'webwork')]\n                   | investigation[(@exercise-interactive = 'webwork')]\" mode=\"representations\">\n    <xsl:choose>\n        <!-- During extraction, pass through the exercise with its    -->\n        <!-- \"webwork\" child intact for the extraction stylesheet     -->\n        <!-- to process the authored content.                         -->\n        <xsl:when test=\"$b-extracting\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n            </xsl:copy>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- Load the per-exercise representation file for this    -->\n            <!-- exercise, identified by its @assembly-id.             -->\n            <xsl:variable name=\"webwork-rep-uri\"\n                select=\"concat($webwork-representations-dir, @assembly-id, '.xml')\"/>\n            <xsl:variable name=\"the-webwork-rep\"\n                select=\"document($webwork-rep-uri, $original)/webwork-reps\"/>\n            <xsl:choose>\n                <!-- An empty string for $webwork-representations-dir, and       -->\n                <!-- the \"document()\" still succeeds (returns the source file?). -->\n                <!-- But this is hopeless. So just totally bail out repeatedly   -->\n                <!-- and leave the containing \"exercise\" hollow.                 -->\n                <xsl:when test=\"$webwork-representations-dir = ''\">\n                    <xsl:copy>\n                        <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n                    </xsl:copy>\n                    <xsl:message>PTX:ERROR:   no WeBWorK representations directory configured in the publication file; WeBWorK exercise with @assembly-id \"<xsl:value-of select=\"@assembly-id\"/>\" will be empty.</xsl:message>\n                </xsl:when>\n                <!-- This should only fail if the file is missing or stale.  Repeatedly. -->\n                <xsl:when test=\"not($the-webwork-rep)\">\n                    <xsl:copy>\n                        <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n                    </xsl:copy>\n                    <xsl:message>PTX:ERROR:   could not load WeBWorK representation file \"<xsl:value-of select=\"$webwork-rep-uri\"/>\" for @assembly-id \"<xsl:value-of select=\"@assembly-id\"/>\"; re-generate the WeBWorK representations.  A \"webwork-representations.xml\" in that directory indicates old-format files that need replacing.</xsl:message>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- The representation file may record a server failure   -->\n                    <!-- from when the WeBWorK representations were generated. -->\n                    <!-- In that case the file holds a placeholder \"faux       -->\n                    <!-- problem\" (statement only) so assembly still proceeds, -->\n                    <!-- but warn the author so the failure does not go        -->\n                    <!-- unnoticed in later builds.                            -->\n                    <xsl:if test=\"$the-webwork-rep/static/@failure\">\n                        <xsl:message>PTX:WARNING:   the WeBWorK problem with @assembly-id \"<xsl:value-of select=\"@assembly-id\"/>\" has a stored \"<xsl:value-of select=\"$the-webwork-rep/static/@failure\"/>\" failure recorded when the WeBWorK representations were last generated.  A placeholder is being rendered in its place.  Re-generate the WeBWorK representations (and watch for errors) to retry.</xsl:message>\n                    </xsl:if>\n                    <!-- Build a temporary exercise with \"webwork-reps\" from the  -->\n                    <!-- representations file substituted in place of \"webwork\".   -->\n                    <!-- This preserves the parent-child relationship that         -->\n                    <!-- downstream templates rely on (e.g. \"../introduction\" in   -->\n                    <!-- webwork-rep-to-static navigates from webwork-reps up to   -->\n                    <!-- the exercise).                                            -->\n                    <xsl:variable name=\"exercise-with-reps-rtf\">\n                        <xsl:copy>\n                            <xsl:copy-of select=\"@*\"/>\n                            <xsl:for-each select=\"node()\">\n                                <xsl:choose>\n                                    <xsl:when test=\"self::webwork\">\n                                        <xsl:copy-of select=\"$the-webwork-rep\"/>\n                                    </xsl:when>\n                                    <xsl:otherwise>\n                                        <xsl:copy-of select=\".\"/>\n                                    </xsl:otherwise>\n                                </xsl:choose>\n                            </xsl:for-each>\n                        </xsl:copy>\n                    </xsl:variable>\n                    <xsl:variable name=\"exercise-with-reps\" select=\"exsl:node-set($exercise-with-reps-rtf)/*\"/>\n\n                    <xsl:choose>\n                        <!-- destined for creating problem sets, really just need PG code -->\n                        <xsl:when test=\"$exercise-style = 'pg-problems'\">\n                            <xsl:copy>\n                                <xsl:apply-templates select=\"@*\" mode=\"webwork-rep-to-pg\"/>\n                                <xsl:apply-templates select=\"title\" mode=\"webwork-rep-to-pg\"/>\n                                <xsl:apply-templates select=\"$exercise-with-reps/webwork-reps\" mode=\"webwork-rep-to-pg\"/>\n                            </xsl:copy>\n                        </xsl:when>\n                        <!-- static, for multiple conversions, but primarily LaTeX -->\n                        <xsl:when test=\"$exercise-style = 'static'\">\n                            <xsl:copy>\n                                <xsl:apply-templates select=\"@*\" mode=\"webwork-rep-to-static\"/>\n                                <xsl:attribute name=\"exercise-interactive\">\n                                    <xsl:text>static</xsl:text>\n                                </xsl:attribute>\n                                <xsl:apply-templates select=\"$exercise-with-reps/node()\" mode=\"webwork-rep-to-static\"/>\n                            </xsl:copy>\n                        </xsl:when>\n                        <!-- dynamic (aka HTML), needs static previews, server base64, etc -->\n                        <xsl:otherwise>\n                            <xsl:copy>\n                                <xsl:apply-templates select=\"@*\" mode=\"webwork-rep-to-html\"/>\n                                <xsl:apply-templates select=\"$exercise-with-reps/node()\" mode=\"webwork-rep-to-html\"/>\n                            </xsl:copy>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Edit a \"webwork-reps\" from the server into just PG material -->\n<xsl:template match=\"node()|@*\" mode=\"webwork-rep-to-pg\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"webwork-rep-to-pg\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Promote \"pg\" specific information to \"webwork-reps\" -->\n<xsl:template match=\"webwork-reps\" mode=\"webwork-rep-to-pg\">\n    <xsl:copy>\n        <!-- copy existing attributes -->\n        <xsl:apply-templates select=\"@*\" mode=\"webwork-rep-to-pg\"/>\n        <!-- promote \"pg\" attributes (@source, @copied-from) -->\n        <xsl:apply-templates select=\"pg/@*\" mode=\"webwork-rep-to-pg\"/>\n        <!-- attributes done, recurse into child *elements*  -->\n        <!-- no node() here, so drops interstial whitespace  -->\n        <!-- that accumulates into the textual PG code, even -->\n        <!-- if it does get sanitized in its use/application -->\n        <xsl:apply-templates select=\"*\" mode=\"webwork-rep-to-pg\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Attributes preserved, drop \"pg\" element, duplicate the guts -->\n<!-- which should just be the actual PG version of the problem   -->\n<xsl:template match=\"webwork-reps/pg\" mode=\"webwork-rep-to-pg\">\n    <xsl:apply-templates select=\"node()\" mode=\"webwork-rep-to-pg\"/>\n</xsl:template>\n\n<!-- Drop \"webwork-reps\" children we don't need for problem sets -->\n<xsl:template match=\"webwork-reps/static\" mode=\"webwork-rep-to-pg\"/>\n<xsl:template match=\"webwork-reps/server-data\" mode=\"webwork-rep-to-pg\"/>\n\n\n<!-- Static from webwork-reps as a generic exercise  -->\n<!-- Edit a \"webwork-reps\" from the server into guts -->\n<!-- of a static exercise or PROJECT-LIKE            -->\n\n<!-- Kill author's lead-in/lead-out material on sight, we recreate -->\n<!-- their children with \"node()\" in main reorganization template  -->\n<xsl:template match=\"introduction[following-sibling::webwork-reps]\" mode=\"webwork-rep-to-static\"/>\n<xsl:template match=\"conclusion[preceding-sibling::webwork-reps]\" mode=\"webwork-rep-to-static\"/>\n\n<!-- Meld an author's \"introduction\" and \"conclusion\" into          -->\n<!-- (a) the similarly-named items of a task-structured object      -->\n<!-- (b) the statement of an object with a simpler structure        -->\n<!-- We recurse into (many, principal) selected components of       -->\n<!-- webwork-reps/static which effectively ignores  webwork-reps/pg -->\n<!-- and  webwork-reps/server  so these pieces never make it into   -->\n<!-- the assembled source.                                          -->\n<!--                                                                -->\n<!-- NB: we lose some attributes attached above to                  -->\n<!-- \"introduction\" and \"conclusion\" (not \"exercise\"), BUT          -->\n<!--   (i) we cannot point *into* a WW problem (no targets)         -->\n<!--   (ii) we do not have numbered items (eg Figure)               -->\n<!--   (iii) by removing them, we just disrupt any                  -->\n<!--         sequences, and uniqueness is preserved                 -->\n<!--   (iv) we could figure out which ones to copy where, if needed -->\n<!-- NB: a possible refactor here:                                  -->\n<!-- (i)  kill all the children of \"webwork-reps\", barring \"static\" -->\n<!--      (currently they are just ignored)                         -->\n<!-- (ii) rerwrite this template to have \"static\" as the context.   -->\n<!--      This would mean adjust some paths to go one more step up  -->\n<!--      to find things like \"introduction\".                       -->\n<!-- Consequence: when leveraged for HTML previews this rearrangment-->\n<!-- will be a big change.  Not clear if it is a desirable change.  -->\n<xsl:template match=\"webwork-reps\" mode=\"webwork-rep-to-static\">\n    <xsl:choose>\n        <!-- a WW \"staged\" exercise, may have an top-level introduction and -->\n        <!-- conclusion already, and does not have a top-level statement    -->\n        <xsl:when test=\"static/task\">\n            <xsl:if test=\".//introduction|static/introduction\">\n                <introduction>\n                    <xsl:apply-templates select=\"../introduction/node()\" mode=\"webwork-rep-to-static\"/>\n                    <xsl:apply-templates select=\"static/introduction/node()\" mode=\"webwork-rep-to-static\"/>\n                </introduction>\n            </xsl:if>\n            <xsl:apply-templates select=\"static/task\" mode=\"webwork-rep-to-static\"/>\n            <xsl:if test=\"../conclusion|static/conclusion\">\n                <conclusion>\n                    <xsl:apply-templates select=\"../conclusion/node()\" mode=\"webwork-rep-to-static\"/>\n                    <xsl:apply-templates select=\"static/conclusion/node()\" mode=\"webwork-rep-to-static\"/>\n                </conclusion>\n            </xsl:if>\n        </xsl:when>\n        <xsl:otherwise>\n            <statement>\n                <xsl:apply-templates select=\"../introduction/node()\" mode=\"webwork-rep-to-static\"/>\n                <xsl:apply-templates select=\"static/statement/node()\" mode=\"webwork-rep-to-static\"/>\n                <xsl:apply-templates select=\"../conclusion/node()\" mode=\"webwork-rep-to-static\"/>\n            </statement>\n            <xsl:apply-templates select=\"static/hint\" mode=\"webwork-rep-to-static\"/>\n            <xsl:apply-templates select=\"static/answer\" mode=\"webwork-rep-to-static\"/>\n            <xsl:apply-templates select=\"static/solution\" mode=\"webwork-rep-to-static\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Good time to clean-up what came back from a WW server.     -->\n<!-- As part of the \"webwork-rep-to-static\" mode, we can be     -->\n<!-- sure that only returns from the server are being adjusted. -->\n\n<!-- From the code comment when this was done with Python: \"p with -->\n<!-- only a single fillin, not counting those inside an li without -->\n<!-- preceding siblings\"                                           -->\n<!-- We likewise prune the \"p\" that only have a var with           -->\n<!-- @form=\"essay. These come from WeBWorK essay questions         -->\n<!-- starting with v2.19                                           -->\n<xsl:template match=\"p\" mode=\"webwork-rep-to-static\">\n    <!-- Substantially faster to have a simple match and then selectively -->\n    <!-- filter matched elements. Start with the tests that are cheapest  -->\n    <!-- and hope short-circuit evaluation avoids expensive ones.         -->\n    <xsl:variable name=\"prune\">\n        <xsl:if test=\"(count(fillin)=1 or count(var[@form='essay'])=1) and\n                      count(*)=1 and \n                      not(normalize-space(text())) and\n                      (not(parent::li) or preceding-sibling::*)\">\n            <xsl:value-of select=\"true()\"/>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:if test=\"$prune != 'true'\">\n        <xsl:copy>\n            <xsl:apply-templates select=\"node()|@*\" mode=\"webwork-rep-to-static\"/>\n        </xsl:copy>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Some answer forms return a default/initial choice that is -->\n<!-- simply a question-mark.  We scrub them here, with care.   -->\n<xsl:template match=\"statement//var[@form = 'popup']/li[(p[. = '?']) or (normalize-space(.) = '?')]\" mode=\"webwork-rep-to-static\"/>\n<xsl:template match=\"statement//ul[@form = 'popup']/li[(p[. = '?']) or (normalize-space(.) = '?')]\" mode=\"webwork-rep-to-static\"/>\n<!-- This may only be needed as support for older servers' generated PreTeXt. -->\n<xsl:template match=\"statement//var[@form = 'checkboxes']/li[(p[. = '?']) or (normalize-space(.) = '?')]\" mode=\"webwork-rep-to-static\"/>\n\n<!-- @form comes back from the server as a result of authored      -->\n<!-- \"answer forms\" and should be rendered as lists in static      -->\n<!-- representations.                                              -->\n<!-- NB: this does not preclude the match below (scrubbing default -->\n<!-- items) from functioning.                                      -->\n<xsl:template match=\"statement//ul[@form]|statement//var[@form]\" mode=\"webwork-rep-to-static\">\n    <ul>\n        <!-- duplicate attributes, but for @form -->\n        <xsl:apply-templates select=\"@*[not(name() = 'form')]\" mode=\"repair\"/>\n        <!-- internal attribute to indicate WW origins -->\n        <xsl:attribute name=\"pi:ww-form\">\n            <xsl:value-of select=\"@form\"/>\n        </xsl:attribute>\n        <!-- add a marker for an unordered list -->\n        <xsl:attribute name=\"marker\">\n            <xsl:choose>\n                <xsl:when test=\"@form = 'popup'\">\n                    <xsl:text>square</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@form = 'buttons'\">\n                    <xsl:text>circle</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@form = 'checkboxes'\">\n                    <xsl:text>square</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()\" mode=\"webwork-rep-to-static\"/>\n    </ul>\n</xsl:template>\n\n<xsl:template match=\"statement//ol[@form]\" mode=\"webwork-rep-to-static\">\n    <ol>\n        <!-- duplicate attributes, but for @form -->\n        <xsl:apply-templates select=\"@*[not(name() = 'form')]\" mode=\"repair\"/>\n        <!-- internal attribute to indicate WW origins -->\n        <xsl:attribute name=\"pi:ww-form\">\n            <xsl:value-of select=\"@form\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()\" mode=\"webwork-rep-to-static\"/>\n    </ol>\n</xsl:template>\n\n<xsl:template match=\"statement//dl[@form]\" mode=\"webwork-rep-to-static\">\n    <dl>\n        <!-- duplicate attributes, but for @form -->\n        <xsl:apply-templates select=\"@*[not(name() = 'form')]\" mode=\"repair\"/>\n        <!-- internal attribute to indicate WW origins -->\n        <xsl:attribute name=\"pi:ww-form\">\n            <xsl:value-of select=\"@form\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()\" mode=\"webwork-rep-to-static\"/>\n    </dl>\n</xsl:template>\n\n<!-- Default xeroxing template -->\n<xsl:template match=\"node()|@*\" mode=\"webwork-rep-to-static\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"webwork-rep-to-static\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Edit a \"webwork-reps\" from the server into just HTML material -->\n\n<!-- We have a static version that gets employed in the HTML conversion -->\n<!-- as a \"preview\" before a reader hits an \"Activate\" button.  We are  -->\n<!-- leveraging the clean-up of static versions here.                   -->\n<!-- NB: for historical reasons, and so as to get a clean refactor, we  -->\n<!-- apply this modal template to \"static\" which is a level lower down  -->\n<!-- than its complete implementation, which starts at \"webwork-reps\".  -->\n<!-- This means that there is no rearrangement of the overall           -->\n<!-- \"introduction\" into the \"statement\".  But see the comments about a -->\n<!-- potential refactor of the \"webwork-rep-to-static\" templates.       -->\n<xsl:template match=\"static\" mode=\"webwork-rep-to-html\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"webwork-rep-to-static\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Default xeroxing template -->\n<xsl:template match=\"node()|@*\" mode=\"webwork-rep-to-html\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"webwork-rep-to-html\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- MyOpenMath (MOM) to static -->\n\n<!-- Static versions come from a MOM server, and have been stored  -->\n<!-- as a \"generated\" component of a project.  We meld with a      -->\n<!-- PreTeXt introduction and conclusion, into a \"regular\" PreTeXt -->\n<!-- format, for any conversion to a static format to use.         -->\n<!-- NB: very similar to STACK template below                      -->\n<xsl:template match=\"exercise[(@exercise-interactive = 'myopenmath')]\n                   | project[(@exercise-interactive = 'myopenmath')]\n                   | activity[(@exercise-interactive = 'myopenmath')]\n                   | exploration[(@exercise-interactive = 'myopenmath')]\n                   | investigation[(@exercise-interactive = 'myopenmath')]\" mode=\"representations\">\n    <!-- duplicate the exercise/project -->\n    <xsl:copy>\n        <!-- and preserve attributes on the exercise/project -->\n        <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n        <!-- Now bifurcate on static/dynamic.  PG problem creation should not fall in here. -->\n        <xsl:choose>\n            <xsl:when test=\"($exercise-style = 'static') and not($b-extracting)\">\n                <!-- overwrite classification as purely static now -->\n                <xsl:attribute name=\"exercise-interactive\">\n                    <xsl:text>static</xsl:text>\n                </xsl:attribute>\n                <!-- locate the static representation in a file, generated independently -->\n                <!-- NB: this filename is relative to the author's source                -->\n                <xsl:variable name=\"filename\">\n                    <xsl:if test=\"$b-managed-directories\">\n                        <xsl:value-of select=\"$generated-directory-source\"/>\n                    </xsl:if>\n                    <xsl:text>problems/mom-</xsl:text>\n                    <xsl:value-of select=\"myopenmath/@problem\"/>\n                    <xsl:text>.xml</xsl:text>\n                </xsl:variable>\n                <!-- \"myopenmath\" child guaranteed by @exercise-interactive value -->\n                <xsl:variable name=\"mom-static-rep\" select=\"document($filename, $original)/myopenmath\"/>\n                <!-- duplicate metadata first -->\n                <xsl:apply-templates select=\"title|idx\" mode=\"representations\"/>\n                <!-- Meld PreTeXt introduction, conclusion with MOM statement. We could -->\n                <!-- duplicate MOM/statement attributes here, if there were any.        -->\n                <statement>\n                    <xsl:apply-templates select=\"introduction/node()\" mode=\"representations\"/>\n                    <xsl:apply-templates select=\"$mom-static-rep/statement/node()\" mode=\"representations\"/>\n                    <xsl:apply-templates select=\"conclusion/node()\" mode=\"representations\"/>\n                </statement>\n                <!-- these might not all be present, ever, but just to be safe -->\n                <xsl:apply-templates select=\"$mom-static-rep/hint\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"$mom-static-rep/answer\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"$mom-static-rep/solution\" mode=\"representations\"/>\n                <!-- NB: the \"myopenmath\" element has been ignored is now gone -->\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- Duplicate authored content for the non-static conversions   -->\n                <!-- and let the conversions handle dynamic content.  Also, when -->\n                <!-- extracting MOM we need the authored source unmolested.      -->\n                <xsl:apply-templates select=\"node()\" mode=\"representations\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:copy>\n</xsl:template>\n\n<!-- STACK questions to static -->\n\n<!-- Static versions crom a STACK server, and have been stored     -->\n<!-- as a \"generated\" component of a project.  We meld with a      -->\n<!-- PreTeXt introduction and conclusion, into a \"regular\" PreTeXt -->\n<!-- format, for any conversion to a static format to use.         -->\n<!-- NB: very similar to MyOpenMath template above                 -->\n<xsl:template match=\"exercise[(@exercise-interactive = 'stack')]\n                   | project[(@exercise-interactive = 'stack')]\n                   | activity[(@exercise-interactive = 'stack')]\n                   | exploration[(@exercise-interactive = 'stack')]\n                   | investigation[(@exercise-interactive = 'stack')]\" mode=\"representations\">\n    <!-- duplicate the exercise/project -->\n    <xsl:copy>\n        <!-- and preserve attributes on the exercise/project -->\n        <xsl:apply-templates select=\"@*\" mode=\"representations\"/>\n        <!-- Now bifurcate on static/dynamic.  PG problem creation should not fall in here. -->\n        <xsl:choose>\n            <xsl:when test=\"($exercise-style = 'static') and not($b-extracting)\">\n                <!-- overwrite classification as purely static now -->\n                <xsl:attribute name=\"exercise-interactive\">\n                    <xsl:text>static</xsl:text>\n                </xsl:attribute>\n                <!-- locate the static representation in a file, generated independently -->\n                <!-- NB: this filename is relative to the author's source in \"generated\" -->\n                <xsl:variable name=\"filename\">\n                    <xsl:if test=\"$b-managed-directories\">\n                        <xsl:value-of select=\"$generated-directory-source\"/>\n                    </xsl:if>\n                    <xsl:text>stack/</xsl:text>\n                    <xsl:apply-templates select=\"stack\" mode=\"assembly-id\"/>\n                    <xsl:text>.ptx</xsl:text>\n                </xsl:variable>\n                <xsl:variable name=\"stack-static-rep\" select=\"document($filename, $original)/stack-static\"/>\n                <!-- duplicate metadata first -->\n                <xsl:apply-templates select=\"title|idx\" mode=\"representations\"/>\n                <!-- Meld PreTeXt introduction, conclusion with STACK statement. We      -->\n                <!-- could duplicate stack/statement attributes here, if there were any. -->\n                <statement>\n                    <xsl:apply-templates select=\"introduction/node()\" mode=\"representations\"/>\n                    <xsl:apply-templates select=\"$stack-static-rep/statement/node()\" mode=\"representations\"/>\n                    <xsl:apply-templates select=\"conclusion/node()\" mode=\"representations\"/>\n                </statement>\n                <!-- these might not all be present, ever, but just to be safe -->\n                <xsl:apply-templates select=\"$stack-static-rep/hint\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"$stack-static-rep/answer\" mode=\"representations\"/>\n                <xsl:apply-templates select=\"$stack-static-rep/solution\" mode=\"representations\"/>\n                <!-- NB: the \"stack\" element has been ignored is now gone -->\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- Duplicate authored content for the non-static conversions   -->\n                <!-- and let the conversions handle dynamic content.  Also, when -->\n                <!-- extracting STACK we need the authored source unmolested.    -->\n                <xsl:apply-templates select=\"node()\" mode=\"representations\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:copy>\n</xsl:template>\n\n<!-- A \"program\" is \"made\" interactive by setting a value of the        -->\n<!-- @interactive attribute.  For static (incapable) formats, code      -->\n<!-- simply does not even consult the @interactive attribute.  By       -->\n<!-- explicitly dropping it here, we insure that even if we are         -->\n<!-- making HTML, but with static contents (e.g. EPUB), a \"program\"     -->\n<!-- will not get routed into templates that make Runestone components. -->\n<xsl:template match=\"program/@interactive\" mode=\"representations\">\n    <xsl:choose>\n        <!-- drop  @interactive  for static formats -->\n        <xsl:when test=\"$exercise-style = 'static'\"/>\n        <xsl:otherwise>\n            <xsl:copy/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"datafile|query\" mode=\"representations\">\n    <xsl:choose>\n        <!-- make a static version, in a PreTeXt style -->\n        <!-- for use naturally by most conversions     -->\n        <xsl:when test=\"$exercise-style = 'static'\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-to-static\"/>\n        </xsl:when>\n        <!-- duplicate for a dynamic version -->\n        <xsl:when test=\"$exercise-style = 'dynamic'\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n            </xsl:copy>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Static versions of Audio, Video, Interactives -->\n\n<!-- Form a PreTeXt side-by-side with an image, a QR code and links -->\n\n<xsl:template match=\"audio|video|interactive[not(static)]\" mode=\"representations\">\n    <xsl:choose>\n        <xsl:when test=\"($exercise-style = 'static') and not($b-extracting)\">\n            <!-- Read pre-computed URLs from sidecar file -->\n            <!-- But not if doing an extraction           -->\n            <xsl:variable name=\"url-file\"\n                select=\"document(concat($generated-directory-source, 'qrcode/', @assembly-id, '-url.xml'), $original)\"/>\n            <!-- panel widths are experimental -->\n            <sidebyside margins=\"7.5% 7.5%\" widths=\"47% 21%\" valign=\"top\" halign=\"center\">\n                <!-- copy over @xml:id, which may be in use by -->\n                <!-- page-breaking mechanism for LaTeX output  -->\n                <xsl:copy-of select=\"@xml:id\"/>\n                <!-- A @label could mask an authored @xml:id           -->\n                <!-- Note: this may be manufactured by an earlier pass -->\n                <xsl:copy-of select=\"@label\"/>\n                <xsl:choose>\n                    <!-- @preview present, so author provides a static image  -->\n                    <!--                                                      -->\n                    <!-- \"video\" is exceptional, we allow for a generic image -->\n                    <xsl:when test=\"self::video and (@preview = 'generic')\">\n                        <image>\n                            <xsl:attribute name=\"pi:generated\">\n                                <xsl:text>play-button/play-button.png</xsl:text>\n                            </xsl:attribute>\n                        </image>\n                    </xsl:when>\n                    <!--  -->\n                    <xsl:when test=\"@preview\">\n                        <image>\n                            <xsl:attribute name=\"source\">\n                                <xsl:value-of select=\"@preview\"/>\n                            </xsl:attribute>\n                        </image>\n                    </xsl:when>\n                    <!-- semi-automatic images vary by format     -->\n                    <!--                                          -->\n                    <!-- interactive: screenshots with playwright -->\n                    <!-- video: we scrape YouTube, only           -->\n                    <!--        YouTube playlist gets generic     -->\n                    <!-- audio: immature                          -->\n                    <xsl:when test=\"self::interactive\">\n                        <image>\n                            <xsl:attribute name=\"pi:generated\">\n                                <xsl:text>preview/</xsl:text>\n                                <xsl:apply-templates select=\".\" mode=\"assembly-id\"/>\n                                <xsl:text>-preview.png</xsl:text>\n                            </xsl:attribute>\n                        </image>\n                    </xsl:when>\n                    <!--  -->\n                    <xsl:when test=\"self::video and @youtube\">\n                        <image>\n                            <xsl:attribute name=\"pi:generated\">\n                                <xsl:text>youtube/</xsl:text>\n                                <xsl:apply-templates select=\".\" mode=\"assembly-id\"/>\n                                <xsl:text>.jpg</xsl:text>\n                            </xsl:attribute>\n                        </image>\n                    </xsl:when>\n                    <!--  -->\n                    <xsl:when test=\"self::video and @youtubeplaylist\">\n                        <image>\n                            <xsl:attribute name=\"pi:generated\">\n                                <xsl:text>play-button/play-button.png</xsl:text>\n                            </xsl:attribute>\n                        </image>\n                    </xsl:when>\n                    <!--  -->\n                    <xsl:when test=\"self::audio\">\n                        <p>No static image provided via <c>@preview</c> attribute</p>\n                    </xsl:when>\n                    <!--  -->\n                    <xsl:otherwise>\n                        <p>BUG: PREVIEW NOT HANDLED</p>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <stack>\n                    <!-- 2023-02-07: wrapping in a URL failed    -->\n                    <!-- for a LaTeX build of the sample article -->\n                    <image>\n                        <xsl:attribute name=\"pi:generated\">\n                            <xsl:text>qrcode/</xsl:text>\n                            <xsl:apply-templates select=\".\" mode=\"assembly-id\"/>\n                            <xsl:text>.png</xsl:text>\n                        </xsl:attribute>\n                    </image>\n                    <!-- We kill the automatic footnotes, a debatable decision -->\n                    <!--  -->\n                    <xsl:variable name=\"standalone-url\">\n                        <xsl:value-of select=\"$url-file/pi:qrcode-urls/pi:standalone-url\"/>\n                    </xsl:variable>\n                    <xsl:if test=\"not($standalone-url = '')\">\n                        <p pi:indent=\"no\">\n                            <url href=\"{$standalone-url}\" visual=\"\">\n                                <pi:localize string-id=\"standalone\"/>\n                            </url>\n                        </p>\n                    </xsl:if>\n                    <!--  -->\n                    <xsl:variable name=\"context-url\">\n                        <xsl:value-of select=\"$url-file/pi:qrcode-urls/pi:context-url\"/>\n                    </xsl:variable>\n                    <xsl:if test=\"not($context-url = '')\">\n                        <p pi:indent=\"no\">\n                            <url href=\"{$context-url}\" visual=\"\">\n                                <pi:localize string-id=\"incontext\"/>\n                            </url>\n                        </p>\n                    </xsl:if>\n                    <!--  -->\n                    <xsl:variable name=\"embed-iframe-url\">\n                        <xsl:value-of select=\"$url-file/pi:qrcode-urls/pi:embed-iframe-url\"/>\n                    </xsl:variable>\n                    <xsl:if test=\"not($embed-iframe-url = '')\">\n                        <p pi:indent=\"no\">\n                            <!-- Kill the automatic footnote -->\n                            <url href=\"{$embed-iframe-url}\" visual=\"\">\n                                <pi:localize string-id=\"embed\"/>\n                            </url>\n                        </p>\n                    </xsl:if>\n                    <!--  -->\n                </stack>\n            </sidebyside>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- duplicate authored content for the non-static conversions and extractions-->\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n            </xsl:copy>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- If a \"static\" is given, just copy it's children -->\n<xsl:template match=\"interactive[static]\" mode=\"representations\">\n    <xsl:choose>\n        <!-- duplicate the contents of an alternative \"static\" element -->\n        <xsl:when test=\"$exercise-style = 'static'\">\n            <xsl:apply-templates select=\"static\" mode=\"representations\"/>\n        </xsl:when>\n        <xsl:when test=\"($exercise-style = 'dynamic') or ($exercise-style = 'pg-problems')\">\n            <!-- duplicate authored content for the non-static conversions -->\n            <xsl:copy>\n                <xsl:apply-templates select=\"node()|@*\" mode=\"representations\"/>\n            </xsl:copy>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ###################################### -->\n<!-- Static versions of Interactive Content -->\n<!-- ###################################### -->\n\n<!-- Templates for the pre-processor (and other stylesheets) to use -->\n<!-- for the creation of static versions of interactive content.    -->\n\n<!-- The HTML conversion generates \"standalone\" pages for videos   -->\n<!-- and other interactives.  Then the LaTeX conversion will make  -->\n<!-- links to these pages (eg, via QR codes).  And we might use    -->\n<!-- these pages as the basis for scraping preview images.  So we  -->\n<!-- place a template here to achieve consistency across uses.     -->\n<!--                                                               -->\n<!-- We need to always import this assembly stylesheet, so these   -->\n<!-- templates will be available in all conversions, but notably   -->\n<!-- in the creation of a \"universal\" static version of the        -->\n<!-- document (\"assembly-static\" in the pretext/pretext script)    -->\n<!-- which is fed to specific conversion into static output        -->\n<!-- formats (e.g. LaTeX, braille).  As such, these templates      -->\n<!-- should                                                        -->\n<!--   (a) be applied someplace as part of the assembly process    -->\n<!--   (b) produce only text (i.e. not XML, not HTML, not LaTeX)   -->\n\n\n<!-- NB: it could be tempting to change the next template to stuff -->\n<!-- these \"iframe\" files into a dedicated directory.  Even though -->\n<!-- this template ensures some consistency, a pile of links still -->\n<!-- need to change, such as the \"script\" tag for locations of     -->\n<!-- extra JS as part of making one of these go.                   -->\n<xsl:template match=\"audio|video|interactive\" mode=\"iframe-filename\">\n    <xsl:apply-templates select=\".\" mode=\"assembly-id\" />\n    <xsl:text>-if.html</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"audio|video|interactive\" mode=\"standalone-filename\">\n    <xsl:apply-templates select=\".\" mode=\"assembly-id\" />\n    <xsl:text>.html</xsl:text>\n</xsl:template>\n<xsl:template match=\"*\" mode=\"standalone-filename\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n    <xsl:text>-ERROR-no-standalone-filename.html</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"exercise[@exercise-interactive='fillin' and setup]\n                   | project[@exercise-interactive='fillin' and setup]\n                   | activity[@exercise-interactive='fillin' and setup]\n                   | exploration[@exercise-interactive='fillin' and setup]\n                   | investigation[@exercise-interactive='fillin' and setup]\"\n                   mode=\"standalone-filename\">\n    <xsl:apply-templates select=\".\" mode=\"assembly-id\" />\n    <xsl:text>.html</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"exercise[//task/@exercise-interactive='fillin' and //task/setup]\n                   | project[//task/@exercise-interactive='fillin' and //task/setup]\n                   | activity[//task/@exercise-interactive='fillin' and //task/setup]\n                   | exploration[//task/@exercise-interactive='fillin' and //task/setup]\n                   | investigation[//task/@exercise-interactive='fillin' and //task/setup]\"\n                   mode=\"standalone-filename\">\n    <xsl:apply-templates select=\".\" mode=\"assembly-id\" />\n    <xsl:text>.html</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"standalone-filename\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n    <xsl:text>-ERROR-no-standalone-filename.html</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"audio|video|interactive\" mode=\"standalone-url\">\n    <xsl:if test=\"$b-has-baseurl\">\n        <xsl:value-of select=\"$baseurl\"/>\n        <xsl:apply-templates select=\".\" mode=\"standalone-filename\" />\n    </xsl:if>\n    <!-- empty without a baseurl -->\n</xsl:template>\n\n<xsl:template match=\"audio|video|interactive\" mode=\"embed-iframe-url\">\n    <xsl:if test=\"$b-has-baseurl\">\n        <xsl:value-of select=\"$baseurl\"/>\n        <xsl:apply-templates select=\".\" mode=\"iframe-filename\" />\n    </xsl:if>\n    <!-- empty without a baseurl -->\n</xsl:template>\n\n<!-- These interactives *are* iFrames, so we don't build a dedicated   -->\n<!-- page to make them into iFrames.  Over in -html we construct a URL -->\n<!-- for each one, embedded in a iFrame construction.  We need to work -->\n<!-- out the right thing to do for an \"Embed\" link in static formats.  -->\n<!-- For now, an empty result means no link in sttic formats.          -->\n<!-- NB: coordinate with \"create-iframe-page\" in -html                 -->\n<xsl:template match=\"audio|video\"  mode=\"embed-iframe-url\"/>\n<xsl:template match=\"interactive[@desmos|@geogebra|@calcplot3d|@circuitjs|@iframe]\"  mode=\"embed-iframe-url\"/>\n\n\n<!-- Static URL's -->\n<!-- Predictable and/or stable URLs for versions         -->\n<!-- of interactives available online.  These are        -->\n<!--                                                     -->\n<!--   (1) \"standalone\" pages for author/local material, -->\n<!--       as a product of the HTML conversion           -->\n<!--   (2) computable addresses of network resources,    -->\n<!--       eg the YouTube page of a resource             -->\n\n<!-- Point to HTML-produced, and canonically-hosted, standalone page -->\n<!-- NB: baseurl is assumed to have a trailing slash                 -->\n\n<xsl:template match=\"audio[@source|@href]|video[@source|@href]|interactive\" mode=\"static-url\">\n    <xsl:value-of select=\"$baseurl\"/>\n    <xsl:apply-templates select=\".\" mode=\"standalone-filename\" />\n</xsl:template>\n\n<!-- Natural override for YouTube videos               -->\n<!-- Better - standalone page, with \"View on You Tube\" -->\n\n<!-- NB: ampersand is escaped for LaTeX use, be careful with switch to QR codes via Python! -->\n<!-- POTENTIAL BUG: this should be un-LaTeX'ed for general use and then  -->\n<!-- sanitized on the receiving end in the LaTeX conversion, or maybe    -->\n<!-- the LaTeX conversion will do just fine if the right URL package is  -->\n<!-- used and the ampersand is handled correctly?                        -->\n\n<xsl:template match=\"video[@youtube|@youtubeplaylist]\" mode=\"static-url\">\n    <xsl:apply-templates select=\".\" mode=\"youtube-view-url\" />\n    <xsl:if test=\"@start\">\n        <xsl:text>\\&amp;start=</xsl:text>\n        <xsl:value-of select=\"@start\" />\n    </xsl:if>\n    <xsl:if test=\"@end\">\n        <xsl:text>\\&amp;end=</xsl:text>\n        <xsl:value-of select=\"@end\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"video[@youtube|@youtubeplaylist]\" mode=\"youtube-view-url\">\n    <xsl:variable name=\"youtube\">\n        <xsl:choose>\n            <xsl:when test=\"@youtubeplaylist\">\n                <xsl:value-of select=\"normalize-space(@youtubeplaylist)\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"normalize-space(str:replace(@youtube, ',', ' '))\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>https://www.youtube.com/</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@youtubeplaylist\">\n            <xsl:text>playlist?list=</xsl:text>\n            <xsl:value-of select=\"$youtube\" />\n        </xsl:when>\n        <xsl:when test=\"contains($youtube, ' ')\">\n            <xsl:text>watch_videos?video_ids=</xsl:text>\n            <xsl:value-of select=\"str:replace($youtube, ' ', ',')\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>watch?v=</xsl:text>\n            <xsl:value-of select=\"$youtube\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Vimeo view URL -->\n<xsl:template match=\"video[@vimeo]\" mode=\"static-url\">\n    <xsl:text>https://vimeo.com/</xsl:text>\n    <xsl:value-of select=\"@vimeo\"/>\n</xsl:template>\n\n<!-- A bit different than above, but same mode -->\n<!-- When a \"datafile\" is produced in a static -->\n<!-- context, then we append the $baseurl, and -->\n<!-- provide the external directory.           -->\n<xsl:template match=\"dataurl[@source]\" mode=\"static-url\">\n    <xsl:value-of select=\"$baseurl\"/>\n    <!-- empty when not using managed directories -->\n    <xsl:value-of select=\"$external-directory\"/>\n    <xsl:apply-templates select=\"@source\" />\n</xsl:template>\n\n<!-- The contents of a datafile may be encoded as text in an XML   -->\n<!-- file within the generated/datafile directory.  The filename   -->\n<!-- has this construction, even if we do not always consult it.   -->\n<!-- NB: these XML files will be read with a \"document()\" call,    -->\n<!-- with a path relative to the author's main source file, hence  -->\n<!-- the filename uses the directory name in author's source.      -->\n<!-- NB: identical code in static constructions.                   -->\n<xsl:template match=\"datafile\" mode=\"datafile-filename\">\n    <xsl:value-of select=\"$generated-directory-source\"/>\n    <xsl:text>datafile/</xsl:text>\n    <!-- context is \"datafile\", the basis for identifier -->\n    <!-- ned an early identifier in assembly phase       -->\n    <xsl:apply-templates select=\".\" mode=\"assembly-id\"/>\n    <xsl:text>.xml</xsl:text>\n</xsl:template>\n\n<!-- The actual text contents of a \"datafile\", specified in a \"pre\" element.  -->\n<!-- We assume (enforce) a \"pre\" child.  Then actual text comes authored in   -->\n<!-- the source \"pre\" element or in an author-provided external file.         -->\n<xsl:template match=\"datafile[pre]\" mode=\"datafile-text-contents\">\n    <xsl:choose>\n        <!-- via an external file -->\n        <!-- Once upon a time, we hit the text from a file with   -->\n        <!-- \"sanitize-text\".  This was a bad idea because        -->\n        <!--   (a) the manipulations (especially pad-length (?) ) -->\n        <!--       caused a false infinite recursion warning, and -->\n        <!--   (b) the file should be *exactly* what is desired.  -->\n        <xsl:when test=\"pre/@source\">\n            <!-- filename is relative to author's source -->\n            <xsl:variable name=\"data-filename\">\n                <xsl:apply-templates select=\".\"  mode=\"datafile-filename\"/>\n            </xsl:variable>\n            <xsl:variable name=\"text-file-elt\" select=\"document($data-filename, $original)/pi:text-file\"/>\n            <xsl:value-of select=\"$text-file-elt\"/>\n        </xsl:when>\n        <!-- via source \"pre\" element content -->\n        <xsl:otherwise>\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\">\n                    <xsl:value-of select=\"pre\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-basic-html.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:b64=\"https://github.com/ilyakharlamov/xslt_base64\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    exclude-result-prefixes=\"b64\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<xsl:import href=\"./pretext-html.xsl\" />\n\n<!-- Unknowl as much as possible -->\n<xsl:param name=\"html.knowl.theorem\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.proof\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.definition\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.example\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.project\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.task\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.list\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.remark\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.objectives\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.outcomes\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.figure\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.table\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.listing\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.exercise.inline\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.exercise.sectional\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.exercise.worksheet\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.exercise.readingquestion\" select=\"'no'\" />\n\n<xsl:template match=\"*\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n\n    <xsl:variable name=\"filename\">\n        <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n    </xsl:variable>\n    <exsl:document href=\"{$filename}\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n        <xsl:call-template name=\"converter-blurb-html\" />\n        <html lang=\"{$document-language}\"> <!-- dir=\"rtl\" here -->\n            <head>\n                <xsl:call-template name=\"mathjax\" />\n            </head>\n            <body>\n                <xsl:call-template name=\"latex-macros\" />\n                <xsl:copy-of select=\"$content\" />\n            </body>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-beamer.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Oscar Levin, Andrew Rechnitzer, Steven Clontz, Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"./entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    extension-element-prefixes=\"exsl date\"\n>\n<xsl:import href=\"./pretext-latex.xsl\" />\n\n<xsl:output method=\"text\" indent=\"no\" encoding=\"UTF-8\"/>\n\n<xsl:template match=\"/\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Conversion to Beamer presentations/slideshows is experimental and needs improvements&#xa;Requests for additional specific constructions welcome&#xa;Additional PreTeXt elements are subject to change</xsl:with-param>\n      </xsl:call-template>\n  <xsl:apply-templates select=\"pretext\"/>\n</xsl:template>\n\n<xsl:template match=\"/pretext\">\n  <xsl:apply-templates select=\"slideshow\" />\n</xsl:template>\n\n<xsl:template match=\"slideshow\">\n  <xsl:call-template name=\"preamble\" />\n  <xsl:call-template name=\"body\" />\n</xsl:template>\n\n<xsl:template name=\"preamble\">\n  <xsl:text>\\documentclass[11pt, compress]{beamer}&#xa;</xsl:text>\n  <xsl:if test=\"$latex.preamble.early != ''\">\n    <xsl:text>%% Custom Preamble Entries, early (use latex.preamble.early)&#xa;</xsl:text>\n    <xsl:value-of select=\"$latex.preamble.early\" />\n    <xsl:text>&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:text>\\usepackage{amsmath}&#xa;</xsl:text>\n\n  <xsl:text>\\usetheme{Boadilla}&#xa;</xsl:text>\n  <xsl:text>\\usefonttheme[onlymath]{serif}&#xa;</xsl:text>\n  <xsl:text>%get rid of navigation:&#xa;\\setbeamertemplate{navigation symbols}{}&#xa;</xsl:text>\n  <xsl:text>&#xa;&#xa; %%%% Start PreTeXt generated preamble: %%%%% &#xa;&#xa;</xsl:text>\n  <xsl:text>%% Some aspects of the preamble are conditional,&#xa;</xsl:text>\n  <xsl:text>%% the LaTeX engine is one such determinant&#xa;</xsl:text>\n  <xsl:text>\\usepackage{ifthen}&#xa;</xsl:text>\n  <xsl:text>\\newcommand{\\tabularfont}{}&#xa;</xsl:text>\n  <xsl:text>\\usepackage[xparse, raster]{tcolorbox}&#xa;</xsl:text>\n  <xsl:text>\\tcbset{colback=white, colframe=white}&#xa;</xsl:text>\n  <xsl:text>\\NewTColorBox{image}{mmm}{boxrule=0.25pt, colframe=gray, left skip=#1\\linewidth,width=#2\\linewidth}&#xa;</xsl:text>\n  <xsl:text>\\RenewTColorBox{definition}{m}{colback=teal!30!white, colbacktitle=teal!30!white, coltitle=black, colframe=gray, boxrule=0.5pt, sharp corners=downhill, titlerule = 0.25pt, title={#1}}&#xa;</xsl:text>\n  <xsl:text>\\RenewTColorBox{theorem}{m}{colback=pink!30!white, colbacktitle=pink!30!white, coltitle=black, colframe=gray, boxrule=0.5pt, sharp corners=downhill, titlerule = 0.25pt, title={#1}}&#xa;</xsl:text>\n  <xsl:text>\\RenewTColorBox{proof}{}{boxrule=0.25pt, colframe=gray, colback=white, before upper={Proof:}, after upper={\\qed}}&#xa;</xsl:text>\n       <xsl:if test=\"$b-has-program or $b-has-console or $b-has-sage\">\n        <xsl:text>%% Program listing support: for listings, programs, consoles, and Sage code&#xa;</xsl:text>\n        <!-- NB: the \"listingsutf8\" package is not a panacea, as it only       -->\n        <!-- cooperates with UTF-8 characters when code snippets are read      -->\n        <!-- in from external files.  We do condition on the LaTeX engines     -->\n        <!-- since (a) it is easy and (b) the tcolorbox documentation warns    -->\n        <!-- about not being careful.  NB: LuaTeX is not tested nor supported. -->\n        <xsl:text>\\ifthenelse{\\boolean{xetex} \\or \\boolean{luatex}}%&#xa;</xsl:text>\n        <xsl:text>  {\\tcbuselibrary{listings}}%&#xa;</xsl:text>\n        <xsl:text>  {\\tcbuselibrary{listingsutf8}}%&#xa;</xsl:text>\n        <xsl:text>%% We define the listings font style to be the default \"ttfamily\"&#xa;</xsl:text>\n        <xsl:text>%% To fix hyphens/dashes rendered in PDF as fancy minus signs by listing&#xa;</xsl:text>\n        <xsl:text>%% http://tex.stackexchange.com/questions/33185/listings-package-changes-hyphens-to-minus-signs&#xa;</xsl:text>\n        <xsl:text>\\makeatletter&#xa;</xsl:text>\n        <xsl:text>\\lst@CCPutMacro\\lst@ProcessOther {\"2D}{\\lst@ttfamily{-{}}{-{}}}&#xa;</xsl:text>\n        <xsl:text>\\@empty\\z@\\@empty&#xa;</xsl:text>\n        <xsl:text>\\makeatother&#xa;</xsl:text>\n        <xsl:text>%% We define a null language, free of any formatting or style&#xa;</xsl:text>\n        <xsl:text>%% for use when a language is not supported, or pseudo-code, or consoles&#xa;</xsl:text>\n        <xsl:text>%% Not necessary for Sage code, so in limited cases included unnecessarily&#xa;</xsl:text>\n        <xsl:text>\\lstdefinelanguage{none}{identifierstyle=,commentstyle=,stringstyle=,keywordstyle=}&#xa;</xsl:text>\n        <xsl:text>\\ifthenelse{\\boolean{xetex}}{}{%&#xa;</xsl:text>\n        <xsl:text>%% begin: pdflatex-specific listings configuration&#xa;</xsl:text>\n        <xsl:text>%% translate U+0080 - U+00F0 to their textmode LaTeX equivalents&#xa;</xsl:text>\n        <xsl:text>%% Data originally from https://www.w3.org/Math/characters/unicode.xml, 2016-07-23&#xa;</xsl:text>\n        <xsl:text>%% Lines marked in XSL with \"$\" were converted from mathmode to textmode&#xa;</xsl:text>\n        <!-- encoding, etc: http://tex.stackexchange.com/questions/24528/ -->\n        <!-- Format: {Unicode}{TeX}{rendered-length} Unicode name (in numerical order) -->\n        <xsl:text>\\lstset{extendedchars=true}&#xa;</xsl:text>\n        <xsl:text>\\lstset{literate=</xsl:text>\n        <xsl:text>{&#x00A0;}{{~}}{1}</xsl:text>    <!--NO-BREAK SPACE-->\n        <xsl:text>{&#x00A1;}{{\\textexclamdown }}{1}</xsl:text>    <!--INVERTED EXCLAMATION MARK-->\n        <xsl:text>{&#x00A2;}{{\\textcent }}{1}</xsl:text>    <!--CENT SIGN-->\n        <xsl:text>{&#x00A3;}{{\\textsterling }}{1}</xsl:text>    <!--POUND SIGN-->\n        <xsl:text>{&#x00A4;}{{\\textcurrency }}{1}</xsl:text>    <!--CURRENCY SIGN-->\n        <xsl:text>{&#x00A5;}{{\\textyen }}{1}</xsl:text>    <!--YEN SIGN-->\n        <xsl:text>{&#x00A6;}{{\\textbrokenbar }}{1}</xsl:text>    <!--BROKEN BAR-->\n        <xsl:text>{&#x00A7;}{{\\textsection }}{1}</xsl:text>    <!--SECTION SIGN-->\n        <xsl:text>{&#x00A8;}{{\\textasciidieresis }}{1}</xsl:text>    <!--DIAERESIS-->\n        <xsl:text>{&#x00A9;}{{\\textcopyright }}{1}</xsl:text>    <!--COPYRIGHT SIGN-->\n        <xsl:text>{&#x00AA;}{{\\textordfeminine }}{1}</xsl:text>    <!--FEMININE ORDINAL INDICATOR-->\n        <xsl:text>{&#x00AB;}{{\\guillemotleft }}{1}</xsl:text>    <!--LEFT-POINTING DOUBLE ANGLE QUOTATION MARK-->\n        <xsl:text>{&#x00AC;}{{\\textlnot }}{1}</xsl:text>    <!--NOT SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00AD;}{{\\-}}{1}</xsl:text>    <!--SOFT HYPHEN-->\n        <xsl:text>{&#x00AE;}{{\\textregistered }}{1}</xsl:text>    <!--REGISTERED SIGN-->\n        <xsl:text>{&#x00AF;}{{\\textasciimacron }}{1}</xsl:text>    <!--MACRON-->\n        <xsl:text>{&#x00B0;}{{\\textdegree }}{1}</xsl:text>    <!--DEGREE SIGN-->\n        <xsl:text>{&#x00B1;}{{\\textpm }}{1}</xsl:text>    <!--PLUS-MINUS SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00B2;}{{\\texttwosuperior }}{1}</xsl:text>    <!--SUPERSCRIPT TWO-->  <!-- $ -->\n        <xsl:text>{&#x00B3;}{{\\textthreesuperior }}{1}</xsl:text>    <!--SUPERSCRIPT THREE-->   <!-- $ -->\n        <xsl:text>{&#x00B4;}{{\\textasciiacute }}{1}</xsl:text>    <!--ACUTE ACCENT-->\n        <xsl:text>{&#x00B5;}{{\\textmu }}{1}</xsl:text>    <!--MICRO SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00B6;}{{\\textparagraph }}{1}</xsl:text>    <!--PILCROW SIGN-->\n        <xsl:text>{&#x00B7;}{{\\textperiodcentered }}{1}</xsl:text>    <!--MIDDLE DOT-->  <!-- $ -->\n        <xsl:text>{&#x00B8;}{{\\c{}}}{1}</xsl:text>    <!--CEDILLA-->\n        <xsl:text>{&#x00B9;}{{\\textonesuperior }}{1}</xsl:text>    <!--SUPERSCRIPT ONE-->  <!-- $ -->\n        <xsl:text>{&#x00BA;}{{\\textordmasculine }}{1}</xsl:text>    <!--MASCULINE ORDINAL INDICATOR-->\n        <xsl:text>{&#x00BB;}{{\\guillemotright }}{1}</xsl:text>    <!--RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK-->\n        <xsl:text>{&#x00BC;}{{\\textonequarter }}{1}</xsl:text>    <!--VULGAR FRACTION ONE QUARTER-->\n        <xsl:text>{&#x00BD;}{{\\textonehalf }}{1}</xsl:text>    <!--VULGAR FRACTION ONE HALF-->\n        <xsl:text>{&#x00BE;}{{\\textthreequarters }}{1}</xsl:text>    <!--VULGAR FRACTION THREE QUARTERS-->\n        <xsl:text>{&#x00BF;}{{\\textquestiondown }}{1}</xsl:text>    <!--INVERTED QUESTION MARK-->\n        <xsl:text>{&#x00C0;}{{\\`{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH GRAVE-->\n        <xsl:text>{&#x00C1;}{{\\'{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH ACUTE-->\n        <xsl:text>{&#x00C2;}{{\\^{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00C3;}{{\\~{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH TILDE-->\n        <xsl:text>{&#x00C4;}{{\\\"{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH DIAERESIS-->\n        <xsl:text>{&#x00C5;}{{\\AA }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH RING ABOVE-->\n        <xsl:text>{&#x00C6;}{{\\AE }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER AE-->\n        <xsl:text>{&#x00C7;}{{\\c{C}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER C WITH CEDILLA-->\n        <xsl:text>{&#x00C8;}{{\\`{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH GRAVE-->\n        <xsl:text>{&#x00C9;}{{\\'{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH ACUTE-->\n        <xsl:text>{&#x00CA;}{{\\^{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00CB;}{{\\\"{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH DIAERESIS-->\n        <xsl:text>{&#x00CC;}{{\\`{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH GRAVE-->\n        <xsl:text>{&#x00CD;}{{\\'{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH ACUTE-->\n        <xsl:text>{&#x00CE;}{{\\^{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00CF;}{{\\\"{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH DIAERESIS-->\n        <xsl:text>{&#x00D0;}{{\\DH }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER ETH-->\n        <xsl:text>{&#x00D1;}{{\\~{N}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER N WITH TILDE-->\n        <xsl:text>{&#x00D2;}{{\\`{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH GRAVE-->\n        <xsl:text>{&#x00D3;}{{\\'{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH ACUTE-->\n        <xsl:text>{&#x00D4;}{{\\^{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00D5;}{{\\~{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH TILDE-->\n        <xsl:text>{&#x00D6;}{{\\\"{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH DIAERESIS-->\n        <xsl:text>{&#x00D7;}{{\\texttimes }}{1}</xsl:text>    <!--MULTIPLICATION SIGN-->\n        <xsl:text>{&#x00D8;}{{\\O }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH STROKE-->\n        <xsl:text>{&#x00D9;}{{\\`{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH GRAVE-->\n        <xsl:text>{&#x00DA;}{{\\'{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH ACUTE-->\n        <xsl:text>{&#x00DB;}{{\\^{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00DC;}{{\\\"{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH DIAERESIS-->\n        <xsl:text>{&#x00DD;}{{\\'{Y}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER Y WITH ACUTE-->\n        <xsl:text>{&#x00DE;}{{\\TH }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER THORN-->\n        <xsl:text>{&#x00DF;}{{\\ss }}{1}</xsl:text>    <!--LATIN SMALL LETTER SHARP S-->\n        <xsl:text>{&#x00E0;}{{\\`{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH GRAVE-->\n        <xsl:text>{&#x00E1;}{{\\'{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH ACUTE-->\n        <xsl:text>{&#x00E2;}{{\\^{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00E3;}{{\\~{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH TILDE-->\n        <xsl:text>{&#x00E4;}{{\\\"{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH DIAERESIS-->\n        <xsl:text>{&#x00E5;}{{\\aa }}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH RING ABOVE-->\n        <xsl:text>{&#x00E6;}{{\\ae }}{1}</xsl:text>    <!--LATIN SMALL LETTER AE-->\n        <xsl:text>{&#x00E7;}{{\\c{c}}}{1}</xsl:text>    <!--LATIN SMALL LETTER C WITH CEDILLA-->\n        <xsl:text>{&#x00E8;}{{\\`{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH GRAVE-->\n        <xsl:text>{&#x00E9;}{{\\'{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH ACUTE-->\n        <xsl:text>{&#x00EA;}{{\\^{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00EB;}{{\\\"{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH DIAERESIS-->\n        <xsl:text>{&#x00EC;}{{\\`{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH GRAVE-->\n        <xsl:text>{&#x00ED;}{{\\'{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH ACUTE-->\n        <xsl:text>{&#x00EE;}{{\\^{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00EF;}{{\\\"{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH DIAERESIS-->\n        <xsl:text>{&#x00F0;}{{\\dh }}{1}</xsl:text>    <!--LATIN SMALL LETTER ETH-->\n        <xsl:text>{&#x00F1;}{{\\~{n}}}{1}</xsl:text>    <!--LATIN SMALL LETTER N WITH TILDE-->\n        <xsl:text>{&#x00F2;}{{\\`{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH GRAVE-->\n        <xsl:text>{&#x00F3;}{{\\'{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH ACUTE-->\n        <xsl:text>{&#x00F4;}{{\\^{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00F5;}{{\\~{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH TILDE-->\n        <xsl:text>{&#x00F6;}{{\\\"{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH DIAERESIS-->\n        <xsl:text>{&#x00F7;}{{\\textdiv }}{1}</xsl:text>    <!--DIVISION SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00F8;}{{\\o }}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH STROKE-->\n        <xsl:text>{&#x00F9;}{{\\`{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH GRAVE-->\n        <xsl:text>{&#x00FA;}{{\\'{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH ACUTE-->\n        <xsl:text>{&#x00FB;}{{\\^{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00FC;}{{\\\"{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH DIAERESIS-->\n        <xsl:text>{&#x00FD;}{{\\'{y}}}{1}</xsl:text>    <!--LATIN SMALL LETTER Y WITH ACUTE-->\n        <xsl:text>{&#x00FE;}{{\\th }}{1}</xsl:text>    <!--LATIN SMALL LETTER THORN-->\n        <xsl:text>{&#x00FF;}{{\\\"{y}}}{1}</xsl:text>    <!--LATIN SMALL LETTER Y WITH DIAERESIS-->\n        <xsl:text>}&#xa;</xsl:text> <!-- end of literate set -->\n        <xsl:text>%% end: pdflatex-specific listings configuration&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>%% End of generic listing adjustments&#xa;</xsl:text>\n        <xsl:if test=\"$b-has-program\">\n            <xsl:text>%% Program listings via new tcblisting environment&#xa;</xsl:text>\n            <xsl:text>%% First a universal color scheme for parts of any language&#xa;</xsl:text>\n            <xsl:if test=\"$latex.print='no'\" >\n                <xsl:text>%% Colors match a subset of Google prettify \"Default\" style&#xa;</xsl:text>\n                <xsl:text>%% Set latex.print='yes' to get all black&#xa;</xsl:text>\n                <xsl:text>%% http://code.google.com/p/google-code-prettify/source/browse/trunk/src/prettify.css&#xa;</xsl:text>\n                <xsl:text>\\definecolor{identifiers}{rgb}{0.375,0,0.375}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{comments}{rgb}{0.5,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{strings}{rgb}{0,0.5,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{keywords}{rgb}{0,0,0.5}&#xa;</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$latex.print='yes'\" >\n                <xsl:text>%% All-black colors&#xa;</xsl:text>\n                <xsl:text>%% Set latex.print='no' to get actual colors&#xa;</xsl:text>\n                <xsl:text>\\definecolor{identifiers}{rgb}{0,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{comments}{rgb}{0,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{strings}{rgb}{0,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{keywords}{rgb}{0,0,0}&#xa;</xsl:text>\n            </xsl:if>\n            <xsl:text>%% Options passed to the listings package via tcolorbox&#xa;</xsl:text>\n            <xsl:text>\\lstdefinestyle{programcodestyle}{identifierstyle=\\color{identifiers},commentstyle=\\color{comments},stringstyle=\\color{strings},keywordstyle=\\color{keywords}, breaklines=true, breakatwhitespace=true, columns=fixed, extendedchars=true, aboveskip=0pt, belowskip=0pt}&#xa;</xsl:text>\n            <!-- We want a \"program\" to be able to break across pages    -->\n            <!-- Trying \"enforce breakable\" for a long listing inside of -->\n            <!-- a \"listing\" just led to a \"mess of shattered boxes\" so  -->\n            <!-- simply advise that a \"listing\" is not breakable.        -->\n            <!-- NB: rules \"at break\" need to come after \"boxrule\"       -->\n            <xsl:text>\\tcbset{ programboxstyle/.style={left=3ex, right=0pt, top=0ex, bottom=0ex, middle=0pt, toptitle=0pt, bottomtitle=0pt, boxsep=0pt, &#xa;</xsl:text>\n            <xsl:text>listing only, fontupper=\\small\\ttfamily,&#xa;</xsl:text>\n            <xsl:text>colback=white, sharp corners, boxrule=-0.3pt, leftrule=0.5pt,&#xa;</xsl:text>\n            <xsl:text>parbox=false,&#xa;</xsl:text>\n            <xsl:text>} }&#xa;</xsl:text>\n            <!--  -->\n            <xsl:text>\\newtcblisting{program}[1]{programboxstyle, listing options={language=#1, style=programcodestyle}}&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$document-root//console\">\n            <xsl:text>%% Console session with prompt, input, output&#xa;</xsl:text>\n            <xsl:text>%% listings allows for escape sequences to enable LateX,&#xa;</xsl:text>\n            <xsl:text>%% so we bold the input commands via the following macro&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\consoleinput}[1]{\\textbf{#1}}&#xa;</xsl:text>\n            <!-- https://tex.stackexchange.com/questions/299401/bold-just-one-line-inside-of-lstlisting/299406 -->\n            <!-- Syntax highlighting is not so great for \"language=bash\" -->\n            <!-- Line-breaking off to match old behavior, prebreak option fails inside LaTeX for input -->\n            <xsl:text>\\lstdefinestyle{consolecodestyle}{language=none, escapeinside={(*}{*)}, identifierstyle=, commentstyle=, stringstyle=, keywordstyle=, breaklines=false, breakatwhitespace=false, columns=fixed, extendedchars=true, aboveskip=0pt, belowskip=0pt}&#xa;</xsl:text>\n            <!--  -->\n            <xsl:text>\\tcbset{ consoleboxstyle/.style={left=0pt, right=0pt, top=0ex, bottom=0ex, middle=0pt, toptitle=0pt, bottomtitle=0pt, boxsep=0pt,&#xa;</xsl:text>\n            <xsl:text>listing only, fontupper=\\small\\ttfamily,&#xa;</xsl:text>\n            <xsl:text>colback=white, boxrule=-0.3pt,&#xa;</xsl:text>\n            <xsl:text>parbox=false,&#xa;</xsl:text>\n            <xsl:text>} }&#xa;</xsl:text>\n            <!--  -->\n            <xsl:text>\\newtcblisting{console}{consoleboxstyle, listing options={style=consolecodestyle}}&#xa;</xsl:text>\n       </xsl:if>\n        <xsl:if test=\"$b-has-sage\">\n            <xsl:text>%% The listings package as tcolorbox for Sage code&#xa;</xsl:text>\n            <xsl:text>%% We do as much styling as possible with tcolorbox, not listings&#xa;</xsl:text>\n            <xsl:text>%% Sage's blue is 50%, we go way lighter (blue!05 would also work)&#xa;</xsl:text>\n            <xsl:text>%% Note that we defuse listings' default \"aboveskip\" and \"belowskip\"&#xa;</xsl:text>\n            <!-- NB: tcblisting \"forgets\" its colors as it breaks across pages, -->\n            <!-- and \"frame empty\" on the output is not sufficient.  So we set  -->\n            <!-- the frame color to white.                                      -->\n            <!-- See: https://tex.stackexchange.com/questions/240246/           -->\n            <!-- problem-with-tcblisting-at-page-break                          -->\n            <!-- TODO: integrate into the LaTeX styling schemes -->\n            <xsl:text>\\definecolor{sageblue}{rgb}{0.95,0.95,1}&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ sagestyle/.style={left=0pt, right=0pt, top=0ex, bottom=0ex, middle=0pt, toptitle=0pt, bottomtitle=0pt,&#xa;</xsl:text>\n            <xsl:text>boxsep=4pt, listing only, fontupper=\\small\\ttfamily,&#xa;</xsl:text>\n            <xsl:text>parbox=false, &#xa;</xsl:text>\n            <xsl:text>listing options={language=Python,breaklines=true,breakatwhitespace=true, extendedchars=true, aboveskip=0pt, belowskip=0pt}} }&#xa;</xsl:text>\n            <xsl:text>\\newtcblisting{sageinput}{sagestyle, colback=sageblue, sharp corners, boxrule=0.5pt, }&#xa;</xsl:text>\n            <xsl:text>\\newtcblisting{sageoutput}{sagestyle, colback=white, colframe=white, frame empty, before skip=0pt, after skip=0pt, }&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n  <xsl:if test=\"$document-root//sidebyside\">\n    <!-- \"minimal\" is no border or spacing at all -->\n    <!-- set on $sbsdebug to \"tight\" with some background    -->\n    <!-- From the tcolorbox manual, \"center\" vs. \"flush center\":      -->\n    <!-- \"The differences between the flush and non-flush version     -->\n    <!-- are explained in detail in the TikZ manual. The short story  -->\n    <!-- is that the non-flush versions will often look more balanced -->\n    <!-- but with more hyphenations.\"                                 -->\n    <xsl:choose>\n      <xsl:when test=\"$sbsdebug\">\n        <xsl:text>%% tcolorbox styles for *DEBUGGING* sidebyside layout&#xa;</xsl:text>\n        <xsl:text>%% \"tight\" -> 0.4pt border, pink background&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ sbsstyle/.style={raster equal height=rows,raster force size=false} }&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ sbspanelstyle/.style={size=tight,colback=pink} }&#xa;</xsl:text>\n      </xsl:when>\n      <xsl:otherwise>\n        <xsl:text>%% tcolorbox styles for sidebyside layout&#xa;</xsl:text>\n        <!-- \"frame empty\" is needed to counteract very faint outlines in some PDF viewers -->\n        <!-- framecol=white is inadvisable, \"frame hidden\" is ineffective for default skin -->\n        <xsl:text>\\tcbset{ bwminimalstyle/.style={size=minimal, boxrule=-0.3pt, frame empty,&#xa;</xsl:text>\n        <xsl:text>colback=white, colbacktitle=white, coltitle=black, opacityfill=0.0} }&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ sbsstyle/.style={raster before skip=2.0ex, raster equal height=rows, raster force size=false} }&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ sbspanelstyle/.style={bwminimalstyle} }&#xa;</xsl:text>\n      </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>%% Enviroments for side-by-side and components&#xa;</xsl:text>\n    <xsl:text>%% Necessary to use \\NewTColorBox for boxes of the panels&#xa;</xsl:text>\n    <xsl:text>%% \"newfloat\" environment to squash page-breaks within a single sidebyside&#xa;</xsl:text>\n    <!-- Main side-by-side environment, given by xparse            -->\n    <!-- raster equal height: boxes of same *row* have same height -->\n    <!-- raster force size: false lets us control width            -->\n    <!-- We do not try here to keep captions attached (when not    -->\n    <!-- in a \"figure\"), unfortunately, this is an un-semantic     -->\n    <!-- command inbetween the list of panels and the captions     -->\n    <xsl:text>%% \"xparse\" environment for entire sidebyside&#xa;</xsl:text>\n    <xsl:text>\\NewDocumentEnvironment{sidebyside}{mmmm}&#xa;</xsl:text>\n    <xsl:text>  {\\begin{tcbraster}&#xa;</xsl:text>\n    <xsl:text>    [sbsstyle,raster columns=#1,&#xa;</xsl:text>\n    <xsl:text>    raster left skip=#2\\linewidth,raster right skip=#3\\linewidth,raster column skip=#4\\linewidth]}&#xa;</xsl:text>\n    <xsl:text>  {\\end{tcbraster}}&#xa;</xsl:text>\n    <xsl:text>%% \"tcolorbox\" environment for a panel of sidebyside&#xa;</xsl:text>\n    <xsl:text>\\NewTColorBox{sbspanel}{mO{top}}{sbspanelstyle,width=#1\\linewidth,valign=#2}&#xa;</xsl:text>\n  </xsl:if>\n\n  <xsl:if test=\"$document-root//tabular\">\n    <xsl:text>%% For improved tables&#xa;</xsl:text>\n    <xsl:text>\\usepackage{array}&#xa;</xsl:text>\n    <xsl:text>%% Some extra height on each row is desirable, especially with horizontal rules&#xa;</xsl:text>\n    <xsl:text>%% Increment determined experimentally&#xa;</xsl:text>\n    <xsl:text>\\setlength{\\extrarowheight}{0.2ex}&#xa;</xsl:text>\n    <xsl:text>%% Define variable thickness horizontal rules, full and partial&#xa;</xsl:text>\n    <xsl:text>%% Thicknesses are 0.03, 0.05, 0.08 in the  booktabs  package&#xa;</xsl:text>\n    <!-- http://tex.stackexchange.com/questions/119153/table-with-different-rule-widths -->\n    <xsl:text>\\newcommand{\\hrulethin}  {\\noalign{\\hrule height 0.04em}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\hrulemedium}{\\noalign{\\hrule height 0.07em}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\hrulethick} {\\noalign{\\hrule height 0.11em}}&#xa;</xsl:text>\n    <!-- http://tex.stackexchange.com/questions/24549/horizontal-rule-with-adjustable-height-behaving-like-clinen-m -->\n    <!-- Could preserve/restore \\arrayrulewidth on entry/exit to tabular -->\n    <!-- But we'll get cleaner source with this built into macros        -->\n    <!-- Could condition \\setlength debacle on the use of extpfeil       -->\n    <!-- arrows (see discussion below)                                   -->\n    <xsl:text>%% We preserve a copy of the \\setlength package before other&#xa;</xsl:text>\n    <xsl:text>%% packages (extpfeil) get a chance to load packages that redefine it&#xa;</xsl:text>\n    <xsl:text>\\let\\oldsetlength\\setlength&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\Oldarrayrulewidth}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\crulethin}[1]%&#xa;</xsl:text>\n    <xsl:text>{\\noalign{\\global\\oldsetlength{\\Oldarrayrulewidth}{\\arrayrulewidth}}%&#xa;</xsl:text>\n    <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{0.04em}}\\cline{#1}%&#xa;</xsl:text>\n    <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{\\Oldarrayrulewidth}}}%&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\crulemedium}[1]%&#xa;</xsl:text>\n    <xsl:text>{\\noalign{\\global\\oldsetlength{\\Oldarrayrulewidth}{\\arrayrulewidth}}%&#xa;</xsl:text>\n    <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{0.07em}}\\cline{#1}%&#xa;</xsl:text>\n    <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{\\Oldarrayrulewidth}}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\crulethick}[1]%&#xa;</xsl:text>\n    <xsl:text>{\\noalign{\\global\\oldsetlength{\\Oldarrayrulewidth}{\\arrayrulewidth}}%&#xa;</xsl:text>\n    <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{0.11em}}\\cline{#1}%&#xa;</xsl:text>\n    <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{\\Oldarrayrulewidth}}}&#xa;</xsl:text>\n    <!-- http://tex.stackexchange.com/questions/119153/table-with-different-rule-widths -->\n    <xsl:text>%% Single letter column specifiers defined via array package&#xa;</xsl:text>\n    <xsl:text>\\newcolumntype{A}{!{\\vrule width 0.04em}}&#xa;</xsl:text>\n    <xsl:text>\\newcolumntype{B}{!{\\vrule width 0.07em}}&#xa;</xsl:text>\n    <xsl:text>\\newcolumntype{C}{!{\\vrule width 0.11em}}&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:if test=\"$document-root//cell/line\">\n    <xsl:text>\\newcommand{\\tablecelllines}[3]%&#xa;</xsl:text>\n    <xsl:text>{\\begin{tabular}[#2]{@{}#1@{}}#3\\end{tabular}}&#xa;</xsl:text>\n  </xsl:if>\n\n  <xsl:text>\\newcommand{\\lt}{&lt;}&#xa;</xsl:text>\n  <xsl:text>\\newcommand{\\gt}{&gt;}&#xa;</xsl:text>\n  <xsl:text>\\newcommand{\\amp}{&amp;}&#xa;&#xa;</xsl:text>\n  <!-- ############### -->\n  <!-- Semantic Macros -->\n  <!-- ############### -->\n  <xsl:text>%% Begin: Semantic Macros&#xa;</xsl:text>\n  <xsl:text>%% To preserve meaning in a LaTeX file&#xa;</xsl:text>\n  <xsl:text>%%&#xa;</xsl:text>\n  <xsl:text>%% \\mono macro for content of \"c\", \"cd\", \"tag\", etc elements&#xa;</xsl:text>\n  <xsl:text>%% Also used automatically in other constructions&#xa;</xsl:text>\n  <xsl:text>%% Simply an alias for \\texttt&#xa;</xsl:text>\n  <xsl:text>%% Always defined, even if there is no need, or if a specific tt font is not loaded&#xa;</xsl:text>\n  <xsl:text>\\newcommand{\\mono}[1]{\\texttt{#1}}&#xa;</xsl:text>\n  <xsl:text>%%&#xa;</xsl:text>\n  <xsl:text>%% Following semantic macros are only defined here if their&#xa;</xsl:text>\n  <xsl:text>%% use is required only in this specific document&#xa;</xsl:text>\n  <xsl:text>%%&#xa;</xsl:text>\n  <xsl:variable name=\"one-line-reps\" select=\"\n        ($document-root//abbr)[1]|\n        ($document-root//acro)[1]|\n        ($document-root//init)[1]\"/>\n  <!-- (after fillin before swung-dash) -->\n  <!-- Eventually move explanation of section to condition  -->\n  <xsl:for-each select=\"$one-line-reps\">\n    <xsl:apply-templates select=\".\" mode=\"tex-macro\"/>\n  </xsl:for-each>\n  <xsl:if test=\"$document-root//alert\">\n    <xsl:text>%% Used for warnings, typically bold and italic&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\alert}[1]{\\textbf{\\textit{#1}}}&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:if test=\"$document-root//term\">\n    <xsl:text>%% Used for inline definitions of terms&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\terminology}[1]{\\textbf{#1}}&#xa;</xsl:text>\n  </xsl:if>\n  <!-- 2018-02-05: \"booktitle\" deprecated -->\n  <xsl:if test=\"$document-root//pubtitle|$document-root//booktitle\">\n    <xsl:text>%% Titles of longer works (e.g. books, versus articles)&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\pubtitle}[1]{\\textsl{#1}}&#xa;</xsl:text>\n  </xsl:if>\n  <!-- http://tex.stackexchange.com/questions/23711/strikethrough-text -->\n  <!-- http://tex.stackexchange.com/questions/287599/thickness-for-sout-strikethrough-command-from-ulem-package -->\n  <xsl:if test=\"$document-root//insert|$document-root//delete|$document-root//stale\">\n    <xsl:text>%% Edits (insert, delete), stale (irrelevant, obsolete)&#xa;</xsl:text>\n    <xsl:text>%% Package: underlines and strikethroughs, no change to \\emph{}&#xa;</xsl:text>\n    <xsl:text>\\usepackage[normalem]{ulem}&#xa;</xsl:text>\n    <xsl:text>%% Rules in this package reset proportional to fontsize&#xa;</xsl:text>\n    <xsl:text>%% NB: *never* reset to package default (0.4pt?) after use&#xa;</xsl:text>\n    <xsl:text>%% Macros will use colors if latex.print='no'  (the default)&#xa;</xsl:text>\n    <xsl:if test=\"$document-root//insert\">\n      <xsl:text>%% Used for an edit that is an addition&#xa;</xsl:text>\n      <xsl:text>\\newcommand{\\insertthick}{.1ex}&#xa;</xsl:text>\n      <xsl:choose>\n        <xsl:when test=\"$latex.print='yes'\">\n          <xsl:text>\\newcommand{\\inserted}[1]{\\renewcommand{\\ULthickness}{\\insertthick}\\uline{#1}}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n          <xsl:text>\\newcommand{\\inserted}[1]{\\renewcommand{\\ULthickness}{\\insertthick}\\textcolor{green}{\\uline{#1}}}&#xa;</xsl:text>\n        </xsl:otherwise>\n      </xsl:choose>\n    </xsl:if>\n    <xsl:if test=\"$document-root//delete\">\n      <xsl:text>%% Used for an edit that is a deletion&#xa;</xsl:text>\n      <xsl:text>\\newcommand{\\deletethick}{.25ex}&#xa;</xsl:text>\n      <xsl:choose>\n        <xsl:when test=\"$latex.print='yes'\">\n          <xsl:text>\\newcommand{\\deleted}[1]{\\renewcommand{\\ULthickness}{\\deletethick}\\sout{#1}}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n          <xsl:text>\\newcommand{\\deleted}[1]{\\renewcommand{\\ULthickness}{\\deletethick}\\textcolor{red}{\\sout{#1}}}&#xa;</xsl:text>\n        </xsl:otherwise>\n      </xsl:choose>\n    </xsl:if>\n    <xsl:if test=\"$document-root//stale\">\n      <xsl:text>%% Used for inline irrelevant or obsolete text&#xa;</xsl:text>\n      <xsl:text>\\newcommand{\\stalethick}{.1ex}&#xa;</xsl:text>\n      <xsl:text>\\newcommand{\\stale}[1]{\\renewcommand{\\ULthickness}{\\stalethick}\\sout{#1}}&#xa;</xsl:text>\n    </xsl:if>\n  </xsl:if>\n  <xsl:if test=\"$document-root//fillin[not(parent::m or parent::me or parent::men or parent::mrow)]\">\n    <xsl:call-template name=\"fillin-text\"/>\n  </xsl:if>\n  <xsl:if test=\"$document-root//m/fillin|$document-root//me/fillin|$document-root//men/fillin|$document-root//mrow/fillin\">\n      <xsl:call-template name=\"fillin-math\"/>\n  </xsl:if>\n  <!-- http://andrewmccarthy.ie/2014/11/06/swung-dash-in-latex/ -->\n  <xsl:if test=\"$document-root//swungdash\">\n    <xsl:text>%% A character like a tilde, but different&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\swungdash}{\\raisebox{-2.25ex}{\\scalebox{2}{\\~{}}}}&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:if test=\"$document-root//quantity\">\n    <xsl:text>%% Used for units and number formatting&#xa;</xsl:text>\n    <xsl:text>\\usepackage[per-mode=fraction]{siunitx}&#xa;</xsl:text>\n    <xsl:text>\\sisetup{inter-unit-product=\\cdot}&#xa;</xsl:text>\n    <xsl:text>\\ifxetex\\sisetup{math-micro=\\text{µ},text-micro=µ}\\fi</xsl:text>\n    <xsl:text>\\ifluatex\\sisetup{math-micro=\\text{µ},text-micro=µ}\\fi</xsl:text>\n    <xsl:text>%% Common non-SI units&#xa;</xsl:text>\n    <xsl:for-each select=\"document('pretext-units.xsl')//base[@siunitx]\">\n      <xsl:text>\\DeclareSIUnit\\</xsl:text>\n      <xsl:value-of select=\"@full\" />\n      <xsl:text>{</xsl:text>\n      <xsl:choose>\n        <xsl:when test=\"@siunitx='none'\">\n          <xsl:value-of select=\"@short\" />\n        </xsl:when>\n        <xsl:otherwise>\n          <xsl:value-of select=\"@siunitx\" />\n        </xsl:otherwise>\n      </xsl:choose>\n      <xsl:text>}&#xa;</xsl:text>\n    </xsl:for-each>\n  </xsl:if>\n  <xsl:if test=\"$document-root//case[@direction]\">\n    <!-- Perhaps customize these via something like tex-macro-style      -->\n    <!-- And/or move these closer to the environment where they are used -->\n    <xsl:text>%% Arrows for iff proofs, with trailing space&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\forwardimplication}{($\\Rightarrow$)}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\backwardimplication}{($\\Leftarrow$)}&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:if test=\"$document-root//ol/li/title|$document-root//ul/li/title\">\n    <!-- Styling: expose this macro to easier overriding for style work -->\n    <xsl:text>%% Style of a title on a list item, for ordered and unordered lists&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\lititle}[1]{{\\slshape#1}}&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:text>%% End: Semantic Macros&#xa;</xsl:text>\n  <xsl:if test=\"$latex.preamble.late != ''\">\n    <xsl:text>%% Custom Preamble Entries, late (use latex.preamble.late)&#xa;</xsl:text>\n    <xsl:value-of select=\"$latex.preamble.late\" />\n    <xsl:text>&#xa;</xsl:text>\n  </xsl:if>\n\n  <xsl:apply-templates select=\"/pretext/docinfo/macros\"/>\n  <xsl:if test=\"$latex-image-preamble\">\n    <xsl:text>%% Graphics Preamble Entries&#xa;</xsl:text>\n    <xsl:value-of select=\"$latex-image-preamble\"/>\n  </xsl:if>\n  <xsl:text>&#xa;&#xa;%%%% End of PreTeXt generated preamble %%%%% &#xa;&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"pretext/docinfo/macros\">\n    <xsl:value-of select=\".\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"body\">\n  <xsl:text>\\title{</xsl:text>\n    <xsl:apply-templates select=\"/pretext/slideshow\" mode=\"title-full\" />\n  <xsl:text>}&#xa;</xsl:text>\n  <xsl:if test=\"/pretext/slideshow/subtitle\">\n  <xsl:text>\\subtitle{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"subtitle\" />\n  <xsl:text>}&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:text>\\author{</xsl:text>\n    <xsl:apply-templates select=\"author|$bibinfo/author\" mode=\"article-info\"/>\n  <xsl:text>}&#xa;</xsl:text>\n  <xsl:text>\\date[</xsl:text>\n  <xsl:if test=\"$bibinfo/date\">\n    <xsl:apply-templates select=\"$bibinfo/date\"/>\n  </xsl:if>\n  <xsl:if test=\"date\">\n    <xsl:apply-templates select=\"date\"/>\n  </xsl:if>\n  <xsl:text>]{</xsl:text>\n  <xsl:if test=\"$bibinfo/event\">\n    <xsl:apply-templates select=\"$bibinfo/event\"/>\n  </xsl:if>\n  <xsl:if test=\"event\">\n    <xsl:apply-templates select=\"event\"/>\n  </xsl:if>\n  <xsl:text>}&#xa;&#xa;</xsl:text>\n  <xsl:text>\\begin{document}&#xa;</xsl:text>\n  <xsl:call-template name=\"titlepage\"/>\n  <xsl:call-template name=\"beamertoc\"/>\n\n  <xsl:apply-templates select=\"section|slide\"/>\n  <xsl:text>\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"titlepage\">\n  <xsl:text>\\begin{frame}&#xa;</xsl:text>\n  <xsl:text>\\maketitle &#xa;</xsl:text>\n  <xsl:text>\\end{frame}&#xa; &#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"beamertoc\">\n  <xsl:text>\\begin{frame}&#xa;</xsl:text>\n  <xsl:text>\\frametitle{Overview}&#xa;</xsl:text>\n  <xsl:text>\\tableofcontents &#xa;</xsl:text>\n  <xsl:text>\\end{frame}&#xa; &#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"section\">\n  <xsl:text>&#xa;\\section{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n  <xsl:text>}&#xa;</xsl:text>\n  <xsl:apply-templates select=\"slide\"/>\n  <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"slide\">\n  <xsl:text>\\begin{frame}&#xa;</xsl:text>\n    <xsl:text>\\frametitle{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates/>\n  <xsl:text>\\end{frame}&#xa; &#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"p\">\n    <xsl:if test=\"@pause = 'yes'\">\n        <xsl:text>&#xa;\\pause \\vfill &#xa;&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"ul\">\n  <xsl:if test=\"@pause = 'yes'\">\n    <xsl:text>&#xa;\\pause &#xa;&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:text>\\begin{itemize}</xsl:text>\n  <xsl:if test=\"@pause = 'yes'\">\n    <xsl:text>[&lt;+-&gt;]</xsl:text>\n  </xsl:if>\n  <xsl:apply-templates/>\n  <xsl:text>\\end{itemize}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"ol\">\n  <xsl:if test=\"@pause = 'yes'\">\n    <xsl:text>&#xa;\\pause &#xa;&#xa;</xsl:text>\n  </xsl:if>\n  <xsl:text>\\begin{enumerate}</xsl:text>\n  <xsl:if test=\"@pause = 'yes'\">\n    <xsl:text>[&lt;+-&gt;]</xsl:text>\n  </xsl:if>\n  <xsl:apply-templates/>\n  <xsl:text>\\end{enumerate}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"li\">\n  <xsl:text>&#xa;\\item{} </xsl:text>\n  <xsl:apply-templates/>\n  <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \n<xsl:template match=\"sidebyside\">\n  <xsl:text>\\begin{tcbraster}[arc=0pt, raster columns=</xsl:text>\n  <xsl:value-of select=\"count(*)\"/>\n  <xsl:text>, raster equal height=rows, raster force size=false, raster column skip=0ex] &#xa;</xsl:text>\n\n  <xsl:variable name=\"columnCount\">\n    <xsl:value-of select=\"count(*)\"/>\n  </xsl:variable>\n  <xsl:variable name=\"widthFraction\">\n    <xsl:value-of select=\"1 div $columnCount\" />\n  </xsl:variable>\n\n  <xsl:for-each select=\"*\">\n    <xsl:if test=\"parent::*/@pause = 'yes'\">\n      <xsl:text>&#xa;\\pause &#xa;&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{tcolorbox}[valign=top, width=</xsl:text>\n      <xsl:value-of select=\"$widthFraction\" />\n    <xsl:text>\\textwidth]&#xa;</xsl:text>\n      <xsl:apply-templates select=\".\"/>\n    <xsl:text>\\end{tcolorbox}&#xa; </xsl:text>\n  </xsl:for-each>\n  <xsl:text>\\end{tcbraster} &#xa;</xsl:text>\n</xsl:template> -->\n\n<xsl:template match=\"&PROOF-LIKE;\">\n  <xsl:text>\\begin{proof}</xsl:text>\n  <xsl:apply-templates/>\n  <xsl:text>\\end{proof}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"xref\">\n  [REF=TODO]\n<!--  Look up this in some xsl files -->\n<!-- <xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"target\" />\n    <xsl:param name=\"content\" />\n\n    <xsl:copy-of select=\"$content\"/>\n</xsl:template> -->\n</xsl:template>\n\n\n\n<xsl:template match=\"example\">\n  <xsl:text>\\begin{example}[</xsl:text>\n  <xsl:apply-templates select=\".\" mode=\"title-full\" />\n<xsl:text>]</xsl:text>\n    <xsl:apply-templates/>\n<xsl:text>\\end{example}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"definition\" mode=\"type-name\">\n  <xsl:text>Definition</xsl:text>\n</xsl:template>\n<xsl:template match=\"definition\">\n  <xsl:text>\\begin{definition}{</xsl:text>\n  <xsl:apply-templates select=\".\" mode=\"type-name\" />\n  <xsl:choose>\n</xsl:choose>\n<xsl:text>: </xsl:text>\n  <xsl:apply-templates select=\".\" mode=\"title-full\" />\n<xsl:text>}</xsl:text>\n    <xsl:apply-templates/>\n<xsl:text>\\end{definition}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"theorem\" mode=\"type-name\">\n  <xsl:text>Theorem</xsl:text>\n</xsl:template>\n<xsl:template match=\"corollary\" mode=\"type-name\">\n  <xsl:text>Corollary</xsl:text>\n</xsl:template>\n<xsl:template match=\"theorem|corollary\">\n  <xsl:text>\\begin{theorem}{</xsl:text>\n  <xsl:apply-templates select=\".\" mode=\"type-name\" />\n  <xsl:choose>\n</xsl:choose>\n<xsl:text>: </xsl:text>\n  <xsl:apply-templates select=\".\" mode=\"title-full\" />\n<xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\"statement\"/>\n<xsl:text>\\end{theorem}&#xa;</xsl:text>\n<xsl:apply-templates select=\"&PROOF-LIKE;\"/>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-braille-preprint.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"pi exsl date str\"\n>\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- With @indent=\"yes\" the (intermediate) file is much easier to study    -->\n<!-- and debug, but it introduces whitespace we can not (or do not want    -->\n<!-- to) control for.  The situation is a single isolated sentence that    -->\n<!-- is entirely a font change.  Here \"isolated\" means it becomes an       -->\n<!-- entire \"segment\", such as being between two \"displays\" when breaking  -->\n<!-- up a paragraph.  For example, an entire sentence could be in italics, -->\n<!-- thus leading to a \"segment\" with a child \"italic\" and nothing else.   -->\n<!-- The indentation provided introduces whitespace where we are expecting -->\n<!-- mixed content.  In old parlance, we expect a \"segment\" to be \"tight\". -->\n<!-- We saw this just twice in all of AATA (2023-04-07) where a lone \"m\"   -->\n<!-- (plus absorbed punctuation) was caught between displays in a          -->\n<!-- paragraph, and the whitespace bled into a diff when the previous      -->\n<!-- commit led to the @indent suddenly being effective.                   -->\n\n<xsl:output method=\"xml\" indent=\"no\" encoding=\"UTF-8\"/>\n\n<xsl:variable name=\"exercise-style\" select=\"'static'\"/>\n\n<!-- Not so much \"include\" as \"manipulate\"            -->\n<xsl:param name=\"math.punctuation.include\" select=\"'all'\"/>\n\n<!-- ############################## -->\n<!-- Incorporate (Meld) Mathematics -->\n<!-- ############################## -->\n\n<!-- We do a pass (similar to those in the \"pretext-assembly.xsl\"   -->\n<!-- stylesheet.  Purpose is to incorporate Nemeth braille versions -->\n<!-- of mathematics, produced by MathJax/Speech RTule Engine.       -->\n\n<!-- Necessary to get pre-constructed Nemeth braille for math elements. -->\n<!-- This file of math representations will come from another process   -->\n<!-- that involves mathJax and Speech Rule Engine (SRE).                -->\n<!-- Note: this is a manual step during development.                    -->\n<xsl:param name=\"mathfile\" select=\"''\"/>\n<xsl:variable name=\"math-repr\"  select=\"document($mathfile)/pi:math-representations\"/>\n\n<!-- Default xerox machine for \"meld-math\" pass -->\n<xsl:template match=\"node()|@*\" mode=\"meld-math\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"meld-math\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- $math-repr is a \"global\" variable with \"pi:math\" elements -->\n<xsl:key name=\"math-elts\" match=\"pi:math\" use=\"@id\"/>\n\n<!-- Replace math elements with a substructure: -->\n<!--     math-original: the guts, simply xeroxed, necessary for -->\n<!--         examining simple situations which do not require a -->\n<!--         switch to Nemeth, or use simpler indicators        -->\n<!--     math-nemeth: unicode from SRE                          -->\n<!-- NB: after a  md[mrow]  goes through MathJax/SRE there is   -->\n<!-- no \"mrow\" left.  So they are absent in \"math-nemeth\".  They -->\n<!-- *are* present in \"math-original\" but that introduces a new  -->\n<!-- element in-between \"md\" and \"mrow\", so matches on           -->\n<!-- \"md[mrow]\" can be problematic here (and perhaps elsewhere). -->\n<xsl:template match=\"m|md\" mode=\"meld-math\">\n    <!-- preserve author's element -->\n    <xsl:copy>\n        <!-- preserve attributes -->\n        <xsl:apply-templates select=\"@*\" mode=\"meld-math\"/>\n        <!-- get braille from representations file -->\n        <xsl:variable name=\"id\">\n            <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n        </xsl:variable>\n        <math-original>\n            <xsl:apply-templates select=\"node()|@*\" mode=\"meld-math\"/>\n        </math-original>\n        <math-nemeth>\n            <xsl:for-each select=\"$math-repr\">\n                <xsl:value-of select=\"key('math-elts', $id)/div[@class = 'braille']\"/>\n            </xsl:for-each>\n        </math-nemeth>\n    </xsl:copy>\n</xsl:template>\n\n<!-- Convert to \"real\" XML, starting with \"$augment\" the   -->\n<!-- (current) final tree produced by the -assembly phase. -->\n<xsl:variable name=\"math-meld-rtf\">\n    <xsl:apply-templates select=\"$augment\" mode=\"meld-math\"/>\n</xsl:variable>\n<xsl:variable name=\"melded-math\" select=\"exsl:node-set($math-meld-rtf)\"/>\n\n<!-- Replace the \"standard\" key landmarks normally  -->\n<!-- produced by the -assembly stylesheet. -->\n<xsl:variable name=\"root\" select=\"$melded-math/pretext\"/>\n<xsl:variable name=\"docinfo\" select=\"$root/docinfo\"/>\n<xsl:variable name=\"document-root\" select=\"$root/*[not(self::docinfo)]\"/>\n\n<!-- Source analysis -->\n\n<!-- We need to determine \"how deep\" the division hierarchy goes, so       -->\n<!-- we probe for depths of four and five.  Note how specialized           -->\n<!-- divisions result in additional depth beyond traditional divisions.    -->\n<!-- (exercises|worksheet|handout|reading-questions|solutions|references|glossary) -->\n\n<xsl:variable name=\"b-has-level-four\" select=\"boolean(\n      $document-root//subsubsection\n    | $document-root//subsection/exercises\n    | $document-root//subsection/worksheet\n    | $document-root//subsection/handout\n    | $document-root//subsection/reading-questions\n    | $document-root//subsection/solutions\n    | $document-root//subsection/references\n    | $document-root//subsection/glossary)\"/>\n\n<xsl:variable name=\"b-has-level-five\" select=\"boolean(\n      $document-root//subsubsection/exercises\n    | $document-root//subsubsection/worksheet\n    | $document-root//subsubsection/handout\n    | $document-root//subsubsection/reading-questions\n    | $document-root//subsubsection/solutions\n    | $document-root//subsubsection/references\n    | $document-root//subsubsection/glossary)\"/>\n\n<!-- And anything less -->\n<xsl:variable name=\"b-has-level-three-or-less\" select=\"not($b-has-level-four) and not($b-has-level-five)\"/>\n\n<!-- ###################### -->\n<!-- Conversion to Segments -->\n<!-- ###################### -->\n\n<!-- A \"segment\" is a chunk of text that begins on a new line and finishes  -->\n<!-- with a partial line followed by a newline, ready for another segment.  -->\n<!-- Various properties, akin to the main tools of braille formatting,      -->\n<!-- affect how it is formatted into a BRF.  The XSL analyzes the nature of -->\n<!-- the text and its surrounding from preTeXt markup, so then Python gets  -->\n<!-- something that just describes how it should be formatted.              -->\n<!--                                                                        -->\n<!-- This documents much of the transition from PreTeXt XML to an XML meant -->\n<!-- only for Python text processing.                                       -->\n<!--                                                                        -->\n<!-- Here we do not write anything when a default is correct, and then      -->\n<!-- Python (lxml) will interpret a \"missing\" attribute as the default,     -->\n<!-- and create something of the correct datatype for Python.               -->\n<!--                                                                        -->\n<!--     @newpage - default: no, else yes                                   -->\n<!--     @centered - default: no, else yes                                  -->\n<!--     @breakable - default: yes, else no                                 -->\n<!--     @indentation - default: 0, else positive integer                   -->\n<!--     @runover - default: 0, else positive integer                       -->\n<!--     @lines-before - default: 0, else positive integer                  -->\n<!--     @lines-after - default: 0, else positive integer                   -->\n<!--     @lines-following - default: 0, else positive integer               -->\n\n<!-- This is the main event, hidden within the formulation of a  -->\n<!-- variable holding an RTF.  This is formed by the totality of -->\n<!-- non-modal templates.  It will be converted into a node set, -->\n<!-- for a post-processing step to incorporate \"runin\"           -->\n<!-- title/heading elements into a subsequent segment.           -->\n<xsl:variable name=\"segmented-rtf\">\n    <xsl:call-template name=\"warning-unimplemented\"/>\n    <xsl:call-template name=\"missing-warning\"/>\n    <xsl:apply-templates select=\"$root\"/>\n</xsl:variable>\n\n<!-- And we sneak in a warning that this conversion is underway, but not complete. -->\n<xsl:template name=\"warning-unimplemented\">\n    <xsl:message>** Some PreTeXt elements lack full implementation in the braille conversion.</xsl:message>\n    <xsl:message>** Smaller items will simply be missing from your output.</xsl:message>\n    <xsl:message>** Larger items may have all-caps placeholders in your output.</xsl:message>\n    <xsl:message>** These will all be reported as \"Overlooked\" in the log.</xsl:message>\n    <xsl:message>** Please report the complete list in the PreTeXt support forum,</xsl:message>\n    <xsl:message>** so we can prioritize making the output for your project complete.</xsl:message>\n</xsl:template>\n\n<!-- The entry template \"waits\" for the \"$math-meld-rtf\" and    -->\n<!-- \"$segmented-rtf\" global variables to form, then the actual -->\n<!-- output is a run of modal \"meld-runin\" templates as a sort  -->\n<!-- of post-processing step.                                   -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"exsl:node-set($segmented-rtf)/brf\" mode=\"meld-runin\"/>\n</xsl:template>\n\n<!-- Process segments here, looking for run-in titles/headings -->\n<xsl:template match=\"segment\" mode=\"meld-runin\">\n    <!-- Look for \"run-in\" material just prior -->\n    <xsl:variable name=\"adjacent-runin\" select=\"preceding-sibling::*[1][self::runin]\"/>\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*\" mode=\"meld-runin\"/>\n        <xsl:apply-templates select=\"$adjacent-runin/@indentation|$adjacent-runin/@lines-before\" mode=\"meld-runin\"/>\n        <xsl:apply-templates select=\"$adjacent-runin/node()\" mode=\"meld-runin\"/>\n        <xsl:value-of select=\"$adjacent-runin/@separator\"/>\n        <xsl:apply-templates select=\"node()\" mode=\"meld-runin\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- It is entirely possible for a segment to be preceded by     -->\n<!-- consecutive \"runin\" elements.  Three examples:              -->\n<!--                                                             -->\n<!--   \"proof\" then \"case\"                                       -->\n<!--   \"hint\" then \"li\" (and other SOLUTION-LIKE)                -->\n<!--   \"exercise\" then \"li\" (but should probably be \"task\"?)     -->\n<!--                                                             -->\n<!-- Likely a structure with an immediate \"p\" with an immediate  -->\n<!-- list could result in a run-in title for the structure and   -->\n<!-- a run-in title for the first list item.  Experimentation on -->\n<!-- 2023-04-05 with Judson's AATA did not reveal any runs of    -->\n<!-- three (or more) consecutive \"runin\" elements.  So our       -->\n<!-- solution is ad-hoc for the double case, with a bug report   -->\n<!-- for three or more.                                          -->\n<!-- We convert the first \"runin\" to a \"segment\" (rather than    -->\n<!-- killing it) and let the second \"runin\" get absorbed by the  -->\n<!-- subsequent \"segment\".                                       -->\n<xsl:template match=\"runin[following-sibling::*[1][self::runin]]\" mode=\"meld-runin\">\n    <segment>\n        <xsl:apply-templates select=\"@*|node()\" mode=\"meld-runin\"/>\n    </segment>\n    <xsl:if test=\"following-sibling::*[2][self::runin]\">\n        <xsl:message>BUG: the braille conversion has encountered three \"run-in\" titles in a row,</xsl:message>\n        <xsl:message>which we had not expected.  Please report me.  Thank-you.</xsl:message>\n        <xsl:message>First: <xsl:value-of select=\".\"/></xsl:message>\n        <xsl:message>Second: <xsl:value-of select=\"following-sibling::*[1][self::runin]\"/></xsl:message>\n        <xsl:message>Third: <xsl:value-of select=\"following-sibling::*[2][self::runin]\"/></xsl:message>\n    </xsl:if>\n</xsl:template>\n\n<!-- Every \"runin\" has been absorbed into a trailing \"segment\" or -->\n<!-- perhaps converted into a \"segment\".  This will prevent the   -->\n<!-- absorbed ones from persisting.                               -->\n<xsl:template match=\"runin\" mode=\"meld-runin\"/>\n\n<!-- Xerox machine -->\n<xsl:template match=\"@*|node()\" mode=\"meld-runin\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@*|node()\" mode=\"meld-runin\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- with /, so a plain generator can match others -->\n<xsl:template match=\"/pretext\">\n    <!-- Need an overall container   -->\n    <!-- Maybe copy a language code? -->\n    <brf>\n        <!-- centered heading on line 1 -->\n        <segment centered=\"yes\" lines-after=\"1\">Transcriber Notes</segment>\n        <!-- Literal text for each note, control whitespace,  -->\n        <!-- etc here, since it will not be handled otherwise -->\n        <xsl:if test=\"//c\">\n        <!-- See \"c\" template for explanation -->\n            <segment indentation=\"2\">\n                <xsl:text>Literal, or verbatim, computer code used in sentences is indicated by a set of transcriber-defined emphasis given by the following indicators, which all begin with the two cells dot-4 and dot-3456.  Single letter: 4-3456-23.  Begin, end word: 4-3456-2, 4-3456-3.  Begin, end phrase: 4-3456-2356, 4-3456-3.</xsl:text>\n            </segment>\n        </xsl:if>\n        <!--  -->\n        <xsl:if test=\"//image\">\n            <segment indentation=\"2\">\n                <xsl:text>Images are replaced by authors' descriptions, and then in an embossed version, a full (numbered) page comes next, which can be manually replaced by a tactile version of the image.</xsl:text>\n            </segment>\n        </xsl:if>\n        <!--  -->\n        <xsl:if test=\"//sidebyside\">\n            <segment indentation=\"2\">\n                <xsl:text>A \"side-by-side\" is a horizontal layout of document elements.  The components of a side-by-side are called \"panels\".  Typically panels are images or figures, but can also be items like program listings, tables, or paragraphs.  For braille, we let each panel use the full width of the page, so we announce the start, indicating the total number of panels.  Then we preface each panel with its number in the sequence.  Finally we announce the end because it may be hard to distinguish a final panel from the ensuing text.</xsl:text>\n            </segment>\n        </xsl:if>\n        <!--  -->\n        <!-- automatically infers we have a note already for \"sidebyside\" -->\n        <xsl:if test=\"//sbsgroup\">\n            <segment indentation=\"2\">\n                <xsl:text>A \"side-by-side group\" is a sequence down the page of \"side-by-side\" (see previous note).  We announce the start with the number of side-by-side in the group to expect, and let the beginning and ending notes for each side-by-side delineate the sequence.</xsl:text>\n            </segment>\n        </xsl:if>\n        <!-- mention how \"tabular\" are implenented and suggest possible improvements-->\n        <xsl:if test=\"//tabular\">\n            <segment indentation=\"2\">\n                <xsl:text>Tabular material is always implemented using a \"linear table format\".  A human transcriber may be able to improve small tables, or larger tables that could use multiple pages when embossed, by using a different format.</xsl:text>\n            </segment>\n        </xsl:if>\n        <!-- process segments and blocks of \"brf\" -->\n        <xsl:apply-templates select=\"*\"/>\n    </brf>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Divisions -->\n<!-- ######### -->\n\n<!-- [BANA, 2016] 4.2.1 -->\n<!-- As a general rule, centered headings are used to represent     -->\n<!-- the print headings of major sections of the text, and cell-5   -->\n<!-- and cell-7 headings are used to represent the print headings   -->\n<!-- for subsections shown within major sections. When there are    -->\n<!-- more than three distinct heading levels in print, cell-7       -->\n<!-- headings are applied only to the lowest hierarchy level; the   -->\n<!-- use of centered headings is extended to one or more subsection -->\n<!-- levels as necessary.                                           -->\n\n<!-- Braille division headings are centered, indented 4 cells (\"cell-5\"),   -->\n<!-- or indented 6 cells (\"cell-7\"), along with blank lines possibly        -->\n<!-- before and after.  Cell-7 is always terminal and is only used at one   -->\n<!-- level.   To \"fill\" when there are more than three levels, centered     -->\n<!-- headings get extended.  At the chapter level of a book, we start at    -->\n<!-- the top of a page, which somewhat distinguishes the centered style     -->\n<!-- of a chapter.  From PreTeXt, division numbers (if used) are            -->\n<!-- unambiguous indicators of levels.                                      -->\n<!--                                                                        -->\n<!-- Level                        book                      article         -->\n<!-- 1 chapter           center  center  center                             -->\n<!-- 2 section           cell-5  center  center      center  center  center -->\n<!-- 3 subsection        cell-7  cell-5  center      cell-7  cell-5  center -->\n<!-- 4 subsubsection             cell-7  cell-5              cell-7  cell-5 -->\n<!-- 5 (specialized)                     cell-7                      cell-7 -->\n\n<!-- Divisions apparent in a rendered BRF. -->\n<xsl:template match=\"chapter|appendix|index[index-list]|index-part|preface|acknowledgement|biography|foreword|dedication|colophon|section|subsection|subsubsection|slide|exercises|worksheet|handout|reading-questions|solutions|references|glossary\">\n\n    <!-- Determine: newpage, centered, cell5, cell7 -->\n    <xsl:variable name=\"heading-style\">\n        <xsl:apply-templates select=\".\" mode=\"heading-style\"/>\n    </xsl:variable>\n\n    <segment breakable=\"no\" lines-following=\"1\">\n        <!-- various attributes are fixed (above) or -->\n        <!-- vary according to the heading-style     -->\n        <xsl:attribute name=\"newpage\">\n            <xsl:choose>\n                <xsl:when test=\"$heading-style = 'newpage'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- Explicit defaults for Python, partially to get types right -->\n                    <xsl:text>no</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <!--  -->\n        <xsl:attribute name=\"centered\">\n            <xsl:choose>\n                <xsl:when test=\"($heading-style = 'newpage') or ($heading-style = 'centered')\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <!-- Explicit defaults for Python, partially to get types right -->\n                <xsl:otherwise>\n                    <xsl:text>no</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <!--  -->\n        <xsl:variable name=\"indentation\">\n            <xsl:choose>\n                <xsl:when test=\"$heading-style = 'cell5'\">\n                    <xsl:text>4</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-style = 'cell7'\">\n                    <xsl:text>6</xsl:text>\n                </xsl:when>\n                <!-- Explicit defaults for Python, partially to get types right -->\n                <xsl:otherwise>\n                    <xsl:text>0</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!--  -->\n        <xsl:attribute name=\"indentation\">\n            <xsl:value-of select=\"$indentation\"/>\n        </xsl:attribute>\n        <!--  -->\n        <xsl:attribute name=\"runover\">\n            <xsl:value-of select=\"$indentation\"/>\n        </xsl:attribute>\n        <!-- Indicate a \"line-before\" whenever necessary for an     -->\n        <!-- electronic version.  Page formatting for an embossed   -->\n        <!-- version will not include these at the start of a page. -->\n        <xsl:attribute name=\"lines-before\">\n            <xsl:choose>\n                <xsl:when test=\"$heading-style = 'newpage'\">\n                    <xsl:text>1</xsl:text>\n                </xsl:when>\n                <!-- [BANA 2016], 4.4.1                                           -->\n                <!-- A centered heading is preceded and followed by a blank line. -->\n                <xsl:when test=\"$heading-style = 'centered'\">\n                    <xsl:text>1</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-style = 'cell5'\">\n                    <xsl:text>1</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-style = 'cell7'\">\n                    <xsl:text>1</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <!--  -->\n        <xsl:attribute name=\"lines-after\">\n            <xsl:choose>\n                <xsl:when test=\"$heading-style = 'newpage'\">\n                    <xsl:text>1</xsl:text>\n                </xsl:when>\n                <!-- [BANA 2016], 4.4.1                                           -->\n                <!-- A centered heading is preceded and followed by a blank line. -->\n                <xsl:when test=\"$heading-style = 'centered'\">\n                    <xsl:text>1</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-style = 'cell5'\">\n                    <xsl:text>0</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-style = 'cell7'\">\n                    <xsl:text>0</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <!-- division headings go to the Table of Contents -->\n        <xsl:attribute name=\"heading-id\">\n            <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n        </xsl:attribute>\n        <!-- TODO: record heading levels for indentation/runover in ToC -->\n        <!--  -->\n        <!-- Finally, the heading content itself -->\n       <xsl:variable name=\"the-number\">\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </xsl:variable>\n        <xsl:if test=\"not($the-number = '')\">\n            <xsl:value-of select=\"$the-number\"/>\n            <xsl:text> </xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </segment>\n    <!-- end heading segment, recurse into the -->\n    <!-- contents of the (structured) division -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Overall document \"types/classes\", level 0/-1 -->\n<!-- Normalize so that: \"chapter\" is always level 1, \"section\"  -->\n<!-- is always level 2.  We do not ever consult these specific  -->\n<!-- values for the document type/class, they are not imporant. -->\n<!--  Also, the climb up the tree ends here.                    -->\n<xsl:template match=\"book|article|slideshow|letter|memo\" mode=\"braille-level\">\n    <xsl:choose>\n        <!-- \"book\" with parts, make \"part\" level 0 -->\n        <xsl:when test=\"$b-has-parts\">\n            <xsl:text>-1</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>0</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Containiers, inherit from parent -->\n<xsl:template match=\"frontmatter|backmatter\" mode=\"braille-level\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"braille-level\"/>\n</xsl:template>\n\n<!-- True divisions, +1 from parent -->\n<xsl:template match=\"part|chapter|appendix|index[index-list]|index-part|preface|acknowledgement|biography|foreword|dedication|colophon|section|subsection|subsubsection|slide|exercises|worksheet|handout|reading-questions|solutions|references|glossary\" mode=\"braille-level\">\n    <xsl:variable name=\"parent-level\">\n        <xsl:apply-templates select=\"parent::*\" mode=\"braille-level\"/>\n    </xsl:variable>\n    <xsl:value-of select=\"$parent-level + 1\"/>\n</xsl:template>\n\n<!-- Divisions apparent in a BRF.  Four headings styles,       -->\n<!-- which we use to \"define\" how headings are formatted.      -->\n<!-- Specialized divisions can appear at many levels, but will -->\n<!-- be formatted according to their level in the hierarchy.   -->\n<!-- See table above for explanation of choices here.          -->\n<xsl:template match=\"chapter|appendix|index[index-list]|index-part|preface|acknowledgement|biography|foreword|dedication|colophon|section|subsection|subsubsection|slide|exercises|worksheet|handout|reading-questions|solutions|references|glossary\" mode=\"heading-style\">\n    <xsl:variable name=\"braille-level\">\n        <xsl:apply-templates select=\".\" mode=\"braille-level\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- chapters (of books) -->\n        <xsl:when test=\"$braille-level = 1\">\n            <xsl:text>newpage</xsl:text>\n        </xsl:when>\n        <!-- sections (of books or articles) -->\n        <xsl:when test=\"$braille-level = 2\">\n            <xsl:choose>\n                <xsl:when test=\"$b-has-level-three-or-less and $b-is-book\">\n                    <xsl:text>cell5</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>centered</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!--  -->\n        <xsl:when test=\"$braille-level = 3\">\n            <xsl:choose>\n                <xsl:when test=\"$b-has-level-five\">\n                    <xsl:text>centered</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$b-has-level-four\">\n                    <xsl:text>cell5</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>cell7</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!--  -->\n        <xsl:when test=\"$braille-level = 4\">\n            <xsl:choose>\n                <xsl:when test=\"$b-has-level-five\">\n                    <xsl:text>cell5</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>cell7</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!--  -->\n        <xsl:when test=\"$braille-level = 5\">\n            <xsl:text>cell7</xsl:text>\n         </xsl:when>\n        <!--  -->\n        <xsl:otherwise>\n            <xsl:text>UNDEFINED</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ###################### -->\n<!-- Exceptional Containers -->\n<!-- ###################### -->\n\n<!-- A special division: \"paragraphs\" -->\n<xsl:template match=\"paragraphs\">\n    <!-- Should be run-in with automatic space afterward -->\n    <xsl:if test=\"title\">\n        <segment lines-before=\"1\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </segment>\n    </xsl:if>\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Very lightweight, title is optional,    -->\n<!-- and does not default to \"SubExercises\". -->\n<xsl:template match=\"subexercises\">\n    <xsl:if test=\"title\">\n        <segment lines-before=\"1\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </segment>\n    </xsl:if>\n    <xsl:apply-templates select=\"introduction\"/>\n    <xsl:apply-templates select=\"exercise|exercisegroup\"/>\n    <xsl:apply-templates select=\"conclusion\"/>\n</xsl:template>\n\n<!-- An \"exercisegroup\" is very visual, so  -->\n<!-- we delimit it with a transcriber note. -->\n<xsl:template match=\"exercisegroup\">\n    <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n        <xsl:with-param name=\"message\">\n            <xsl:text>An exercise group follows.  </xsl:text>\n            <!-- optional, so with trailing space -->\n            <xsl:if test=\"introduction\">\n                <xsl:text>It begins with an introduction.  </xsl:text>\n            </xsl:if>\n            <xsl:text>The exercises run from number </xsl:text>\n            <xsl:apply-templates select=\"exercise[1]\" mode=\"serial-number\"/>\n            <xsl:text> to number </xsl:text>\n            <xsl:apply-templates select=\"exercise[last()]\" mode=\"serial-number\"/>\n            <xsl:text>.</xsl:text>\n            <!-- optional, so with leading space -->\n            <xsl:if test=\"conclusion\">\n                <xsl:text>  It finishes with a conclusion.</xsl:text>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!--  -->\n    <xsl:apply-templates select=\"introduction\"/>\n    <xsl:apply-templates select=\"exercise\"/>\n    <xsl:apply-templates select=\"conclusion\"/>\n</xsl:template>\n\n\n<!-- ###### -->\n<!-- Blocks -->\n<!-- ###### -->\n\n<!-- \"Blocks\" are major components of PreTeXt output.  Typically  -->\n<!-- numbered, titled, set-off, and sometimes with subsidiary     -->\n<!-- pieces hanging off them.  For braille, they might not        -->\n<!-- cross page boundaries, and may have box lines, etc.          -->\n<!--                                                              -->\n<!-- We handle the title as a heading of sorts, which might not   -->\n<!-- cross a page boundary, and which might be \"stuck\" on a       -->\n<!-- certain number of following lines.  See the discussion below -->\n<!-- about titles.                                                -->\n\n<!-- \"Regular\" blocks, including inline \"exercise\" (aka \"Checkpoint\") -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&ASIDE-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&GOAL-LIKE;|&OPENPROBLEM-LIKE;|exercise[&INLINE-EXERCISE-FILTER;]|assemblage\">\n    <block breakable=\"no\" box=\"standard\" lines-before=\"1\" lines-after=\"1\">\n        <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n        <xsl:apply-templates select=\"*[not(self::title)]\"/>\n    </block>\n</xsl:template>\n\n<!-- \"Other\" exercises (in \"exercises\" divisions, in \"reading questions\", -->\n<!-- in worksheets) are not as prominent and have run-in titles           -->\n<xsl:template match=\"exercise[not(&INLINE-EXERCISE-FILTER;)]\">\n    <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n    <xsl:apply-templates select=\"*[not(self::title)]\"/>\n</xsl:template>\n\n<!-- The appendages are not yet blocks, they live inside blocks           -->\n<!-- NOTE: if these become contained blocks, that is a structural change  -->\n<!-- that will require changes in the Python lxml which assumes otherwise -->\n<xsl:template match=\"&PROOF-LIKE;|&SOLUTION-LIKE;|&DISCUSSION-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n    <xsl:apply-templates select=\"*[not(self::title)]\"/>\n</xsl:template>\n\n<!-- A \"case\" is a further division of a PROOF-LIKE -->\n<xsl:template match=\"case\">\n    <runin indentation=\"2\" separator=\"&#x20;\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </runin>\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Titles of blocks can be an entire \"segment\" if they finish with a  -->\n<!-- newline.  Other titles are \"runin\" and are consolidated in a final -->\n<!-- post-processing step.                                              -->\n\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&ASIDE-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&OPENPROBLEM-LIKE;|exercise[&INLINE-EXERCISE-FILTER;]\" mode=\"block-title\">\n    <segment lines-before=\"0\">\n        <!--  -->\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <!--  -->\n        <xsl:variable name=\"the-number\">\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </xsl:variable>\n        <xsl:if test=\"not($the-number = '')\">\n            <xsl:text> </xsl:text>\n            <xsl:value-of select=\"$the-number\"/>\n        </xsl:if>\n        <!--  -->\n        <xsl:if test=\"title\">\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </xsl:if>\n        <!--  -->\n    </segment>\n</xsl:template>\n\n<!-- An assemblage is not numbered, it is just a box.  The title is optional. -->\n<xsl:template match=\"assemblage\" mode=\"block-title\">\n    <xsl:if test=\"title\">\n        <segment lines-before=\"0\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </segment>\n    </xsl:if>\n</xsl:template>\n\n<!-- Should be run-in with automatic space afterward -->\n<!-- There may be multiple proofs, but we do not number them at birth, -->\n<!-- the number only gets used in a cross-reference.  Maybe standalone -->\n<!-- is different??                                                    -->\n<!-- TENTATIVE: DISCUSSION-LIKE may be identical                       -->\n<xsl:template match=\"&PROOF-LIKE;|&DISCUSSION-LIKE;\" mode=\"block-title\">\n        <runin indentation=\"0\" lines-before=\"1\" separator=\"&#x20;\">\n        <!--  -->\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>.</xsl:text>\n        <!--  -->\n        <xsl:if test=\"title\">\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </xsl:if>\n        <!--  -->\n    </runin>\n</xsl:template>\n\n<!-- Should be run-in with automatic space afterward -->\n<xsl:template match=\"exercise[not(&INLINE-EXERCISE-FILTER;)]\" mode=\"block-title\">\n    <runin indentation=\"0\" lines-before=\"1\" separator=\"&#x20;\">\n        <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n        <xsl:text>.</xsl:text>\n        <!--  -->\n        <xsl:if test=\"title\">\n            <xsl:text> (</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            <xsl:text>)</xsl:text>\n        </xsl:if>\n        <!--  -->\n    </runin>\n</xsl:template>\n\n<!-- Should be run-in with automatic space afterward -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"block-title\">\n    <runin indentation=\"0\" lines-before=\"1\" separator=\"&#x20;\">\n        <!--  -->\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <!--  -->\n        <xsl:variable name=\"the-number\">\n             <xsl:apply-templates select=\".\" mode=\"non-singleton-number\"/>\n        </xsl:variable>\n        <xsl:if test=\"not($the-number = '')\">\n            <xsl:text> </xsl:text>\n            <xsl:value-of select=\"$the-number\"/>\n        </xsl:if>\n        <xsl:text>.</xsl:text>\n        <!--  -->\n        <xsl:if test=\"title\">\n            <xsl:text> (</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            <xsl:text>)</xsl:text>\n        </xsl:if>\n        <!--  -->\n    </runin>\n</xsl:template>\n\n<!-- Print is \"Type: Title\", no number, since there is only one per     -->\n<!-- division and the number is implicitly that of the parent division. -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"block-title\">\n    <segment lines-before=\"0\">\n        <!--  -->\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <!--  -->\n        <xsl:if test=\"title\">\n            <xsl:text>: </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </xsl:if>\n        <!--  -->\n    </segment>\n</xsl:template>\n\n\n<!-- ########### -->\n<!-- FIGURE-LIKE -->\n<!-- ########### -->\n\n<!-- [BANA, 2016] 6.2.2 -->\n<!-- 7-5 margins for captions of \"Illustrative Materials\" -->\n<!-- We generalize to titles of \"table\" and \"list\" blocks -->\n\n<!-- [BANA, 2016] 6.2.2(e) -->\n<!-- When both a print caption and a transcriber-generated description    -->\n<!-- are needed, begin the description (enclosed in transcriber's note    -->\n<!-- indicators) on the line following the caption.                       -->\n<!-- Figures are treated different for the case where their contents are  -->\n<!-- images (thus requiring a tactile graphic page to follow the figure). -->\n<xsl:template match=\"figure[image]\">\n    <block breakable=\"no\" box=\"standard\" lines-before=\"1\" lines-after=\"1\">\n        <segment indentation=\"6\" runover=\"4\">\n            <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n        </segment>\n        <xsl:apply-templates select=\"*[not(self::image)]\"/>\n        <xsl:apply-templates select=\"image\" mode=\"braille-representation\"/>\n    </block>\n    <!-- Form a page to be replaced by tactile version -->\n    <block ownpage=\"yes\">\n        <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n            <xsl:with-param name=\"message\">\n                <xsl:text>Replace this page with </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </block>\n</xsl:template>\n\n<!-- Other FIGURE-LIKE can be handled together -->\n<xsl:template match=\"&FIGURE-LIKE;\">\n    <block breakable=\"no\" box=\"standard\" lines-before=\"1\" lines-after=\"1\">\n        <segment indentation=\"6\" runover=\"4\">\n            <!-- [BANA, 2016, 11.17.1a] \"Leave a blank line after the title.\" -->\n            <!-- Guidance for tables, we mimic for PTX \"list\" block.          -->\n            <xsl:if test=\"self::table or self::list\">\n                <xsl:attribute name=\"lines-after\">\n                    <xsl:text>1</xsl:text>\n                </xsl:attribute>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n        </segment>\n        <xsl:apply-templates select=\"*\"/>\n    </block>\n</xsl:template>\n\n<!-- Caption/title, with label, number, etc.  \"caption\" and -->\n<!-- \"title\" elements are metadata, killed in -common,      -->\n<!-- obtained as needed via modal templates.                -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"block-title\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <!--  -->\n    <xsl:variable name=\"the-number\">\n         <xsl:apply-templates select=\".\" mode=\"number\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($the-number = '')\">\n        <xsl:text> </xsl:text>\n        <xsl:value-of select=\"$the-number\"/>\n    </xsl:if>\n    <xsl:text>. </xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"self::figure\">\n            <xsl:apply-templates select=\".\" mode=\"caption-full\"/>\n        </xsl:when>\n        <xsl:when test=\"self::table|self::list|self::listing\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Images -->\n<!-- ###### -->\n\n<!-- A bare image becomes a transcriber note with a small amount -->\n<!-- of identification, and then generates a replacement page.   -->\n<xsl:template match=\"image\">\n    <!-- A \"segment\" with the ID of the image to identify it, -->\n    <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n        <xsl:with-param name=\"message\">\n            <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- Then the author's descriptions -->\n    <xsl:apply-templates select=\".\" mode=\"braille-representation\"/>\n    <!-- Form a page to be replaced by tactile version -->\n    <block ownpage=\"yes\">\n        <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n            <xsl:with-param name=\"message\">\n                <xsl:text>Replace this page with </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"block-title\"/>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </block>\n</xsl:template>\n\n<!-- A transcriber note replacing an image when included -->\n<!-- in some other (identifying) structure.              -->\n<xsl:template match=\"image\" mode=\"braille-representation\">\n    <!-- A \"segment\" with the author's \"shortdescription\" -->\n    <xsl:if test=\"shortdescription\">\n        <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n            <xsl:with-param name=\"message\">\n                <xsl:apply-templates select=\"shortdescription\"/>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- Not really a title, but a repeated identification of an image  -->\n<!-- to coordinate text and manually inserted tactile versions.     -->\n<xsl:template match=\"image\" mode=\"block-title\">\n    <xsl:text>Image: </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n    <xsl:text>.</xsl:text>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Side-by-Side -->\n<!-- ############ -->\n\n<!-- We delimit the panels of a \"sidebyside\" with an introductory        -->\n<!-- transcriber note and a concluding note.  Each panel is preceded     -->\n<!-- by a very short transcriber note giving its number in the sequence. -->\n<!-- An \"sbsgroup\" only announces its start, but each \"sidebyside\"       -->\n<!-- introduction provides the number within the group.                  -->\n<!--                                                                     -->\n<!-- Otherwise, a \"sidebyside\" is just \"linearized\" and strung out down  -->\n<!-- pages, rather than across, since horizontal real estate is limited  -->\n<!-- and images are going full (own) page.                               -->\n<!-- From discussion with Michael Cantino and Al Maneki, 2023-03-30      -->\n\n<xsl:template match=\"sidebyside\">\n    <xsl:variable name=\"npanels\" select=\"count(*)\"/>\n    <!-- Intro -->\n    <!-- At a 40-character width, this will fit on one line with -->\n    <!-- two cells to spare when the count is single-digit.      -->\n    <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n        <xsl:with-param name=\"message\">\n            <xsl:text>side-by-side: </xsl:text>\n            <!-- panels are simply child elements -->\n            <xsl:value-of select=\"$npanels\"/>\n            <xsl:text> panels</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- Panels -->\n    <xsl:for-each select=\"*\">\n        <xsl:variable name=\"number\" select=\"count(preceding-sibling::*) + 1\"/>\n        <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n            <xsl:with-param name=\"message\">\n                <xsl:text>panel: </xsl:text>\n                <xsl:value-of select=\"$number\"/>\n                <xsl:text>/</xsl:text>\n                <xsl:value-of select=\"$npanels\"/>\n            </xsl:with-param>\n        </xsl:apply-templates>\n        <!-- context switch, so self -->\n        <xsl:apply-templates select=\".\"/>\n    </xsl:for-each>\n    <!-- Outro -->\n    <!-- This message mimics the format of the opening note -->\n    <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n        <xsl:with-param name=\"message\">\n            <xsl:text>side-by-side: end</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"sbsgroup\">\n    <xsl:variable name=\"nsbs\" select=\"count(sidebyside)\"/>\n    <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n        <xsl:with-param name=\"message\">\n            <xsl:text>side-by-side group: </xsl:text>\n            <xsl:value-of select=\"$nsbs\"/>\n            <xsl:text> sbs</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- A \"stack\" is strictly a side-by-side panel and we just -->\n<!-- process its children.  No need to get carried away for -->\n<!-- braille, and maybe an \"apply-imports\" (or nothing at   -->\n<!-- all) is the right thing to do.                         -->\n<xsl:template match=\"stack\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Lists -->\n<!-- ##### -->\n\n<!-- Lists are containers full of list items.  All by   -->\n<!-- themselves they have no real impact on the braille -->\n<!-- output.  The list items are another matter.        -->\n<!-- 2023-04-06: very prelimnary, e.g. no runover       -->\n<!-- 2023-04-10: excessive nesting => excessive run-in  -->\n<xsl:template match=\"ul|ol|dl\">\n    <xsl:apply-templates select=\"li\"/>\n</xsl:template>\n\n<xsl:template match=\"li\">\n    <!-- Marker as a \"runin\" element -->\n    <runin indentation=\"0\" separator=\"&#x20;\">\n        <xsl:choose>\n            <xsl:when test=\"parent::ol\">\n                <xsl:apply-templates select=\".\" mode=\"item-number\"/>\n                <xsl:text>.</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"parent::ul\">\n                <xsl:apply-templates select=\".\" mode=\"unicode-list-marker\"/>\n                <xsl:text>.</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"parent::dl\">\n                <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            </xsl:when>\n        </xsl:choose>\n    </runin>\n    <xsl:apply-templates select=\"node()\"/>\n</xsl:template>\n\n<xsl:template match=\"ul/li\" mode=\"unicode-list-marker\">\n    <xsl:variable name=\"format-code\">\n        <xsl:apply-templates select=\"parent::ul\" mode=\"format-code\"/>\n    </xsl:variable>\n    <!-- The list label.  The file  en-ueb-chardefs.uti        -->\n    <!-- associates these Unicode values with the indicated    -->\n    <!-- dot patterns.  This jibes with [BANA-2016, 8.6.2],    -->\n    <!-- which says the open circle needs a Grade 1 indicator. -->\n    <!-- The file  en-ueb-g2.ctb  lists  x25cb  and  x24a0  as -->\n    <!-- both being \"contraction\" and so needing a             -->\n    <!-- Grade 1 indicator.                                    -->\n    <xsl:choose>\n        <!-- Unicode Character 'BULLET' (U+2022)       -->\n        <!-- Dot pattern: 456-256                      -->\n        <xsl:when test=\"$format-code = 'disc'\">\n            <xsl:text>&#x2022; </xsl:text>\n        </xsl:when>\n        <!-- Unicode Character 'WHITE CIRCLE' (U+25CB) -->\n        <!-- Dot pattern: 1246-123456                  -->\n        <xsl:when test=\"$format-code = 'circle'\">\n            <xsl:text>&#x25cb; </xsl:text>\n        </xsl:when>\n        <!-- Unicode Character 'BLACK SQUARE' (U+25A0) -->\n        <!-- Dot pattern: 456-1246-3456-145            -->\n        <xsl:when test=\"$format-code = 'square'\">\n            <xsl:text>&#x25a0; </xsl:text>\n        </xsl:when>\n        <!-- a bad idea for Braille -->\n        <xsl:when test=\"$format-code = 'none'\">\n            <xsl:text/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ####################### -->\n<!-- Tabular (table content) -->\n<!-- ####################### -->\n\n<!-- Simple tables can be realized nicely in braille by a human transcriber. -->\n<!-- We are not even sure how to identify a table as being \"simple enough.\"  -->\n<!--                                                                         -->\n<!-- So we implement \"Wide Tables: Linear Table Format\" [BANA, 2016, 11.17], -->\n<!-- which is never wrong, and is more or less sympatico with our markup.    -->\n<!--                                                                         -->\n<!-- TODO: Suppose a transcriber *does* replace one of our tables with       -->\n<!-- something better?  We could perhaps capture the BRF version in a new    -->\n<!-- \"braille\" element that lived in source and which was used               -->\n<!-- preferentially once discovered.                                         -->\n\n<xsl:template match=\"tabular\">\n    <xsl:variable name=\"n-column-headings\" select=\"count(row[(@header = 'yes') or (@header = 'vertical')])\"/>\n    <xsl:variable name=\"b-column-headings\" select=\"$n-column-headings > 0\"/>\n    <xsl:variable name=\"b-row-headings\" select=\"@row-headers = 'yes'\"/>\n    <block breakable=\"no\">\n        <!-- Transcriber note, if necessary to explain headings -->\n        <xsl:if test=\"$b-column-headings or $b-row-headings\">\n            <xsl:apply-templates select=\".\" mode=\"transcriber-note\">\n                <xsl:with-param name=\"message\">\n                    <xsl:if test=\"$b-column-headings\">\n                        <xsl:text>The first </xsl:text>\n                        <xsl:value-of select=\"$n-column-headings\"/>\n                        <xsl:text> rows are columm headings, described next.</xsl:text>\n                    </xsl:if>\n                    <!-- separate two sentences, if we have both -->\n                    <xsl:if test=\"$b-column-headings and $b-row-headings\">\n                        <xsl:text> </xsl:text>\n                    </xsl:if>\n                    <xsl:if test=\"$b-row-headings\">\n                        <xsl:text>The first column of this table contains headings for the rows.</xsl:text>\n                    </xsl:if>\n                </xsl:with-param>\n            </xsl:apply-templates>\n            <!-- [BANA, 2016] 11.17.1e \"Leave a blank line after the note.\" -->\n            <segment lines-after=\"1\"/>\n        </xsl:if>\n        <!-- enforce header row(s) first -->\n        <!-- BANA says put column headings inside the transcriber note, -->\n        <!-- but switch to 1-3 margins.  We ignore this and write the   -->\n        <!-- column headings out just tlike all the other rows.  One    -->\n        <!-- concession: a blank line separator.                        -->\n        <xsl:apply-templates select=\"row[(@header = 'yes') or (@header = 'vertical')]\"/>\n        <xsl:if test=\"$b-column-headings\">\n            <segment lines-after=\"1\"/>\n        </xsl:if>\n        <!-- now the \"regular\" lines, possibly with row-headings -->\n        <xsl:apply-templates select=\"row[not((@header = 'yes') or (@header = 'vertical'))]\"/>\n    </block>\n</xsl:template>\n\n<!-- [BANA, 2016] 11.17.1f Each row has 1-3 margins                     -->\n<!-- [BANA, 2016] 11.17.1g \"Do not divide a row between braille pages.\" -->\n<xsl:template match=\"tabular/row\">\n    <segment breakable=\"no\" indentation=\"0\" runover=\"2\">\n        <xsl:choose>\n            <xsl:when test=\"(@header = 'yes') or (@header = 'vertical')\">\n                <xsl:apply-templates select=\"cell[1]\" mode=\"describe-column-headings\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"cell\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </segment>\n</xsl:template>\n\n<!-- \"Regular\" cells in non-header rows (more typical) -->\n<xsl:template match=\"tabular/row/cell\">\n    <xsl:apply-templates/>\n    <xsl:choose>\n        <!-- First cell, trailed by a colon -->\n        <xsl:when test=\"not(preceding-sibling::cell)\">\n            <xsl:text>: </xsl:text>\n        </xsl:when>\n        <!-- Last cell, trailed by nothing -->\n        <xsl:when test=\"not(following-sibling::cell)\"/>\n        <!-- Interior cells, trailed by semi-colons -->\n        <xsl:otherwise>\n            <xsl:text>; </xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:if test=\"@colspan\">\n        <xsl:call-template name=\"duplicate-string\">\n             <xsl:with-param name=\"count\" select=\"@colspan - 1\"/>\n             <xsl:with-param name=\"text\" select=\"';'\"/>\n         </xsl:call-template>\n     </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"tabular/row/cell\" mode=\"describe-column-headings\">\n    <xsl:param name=\"prior-column-number\" select=\"0\"/>\n\n    <!-- Analyze  @colspan  implications.  Note this is correct for -->\n    <!-- no attribute at all and a (silly) attribute value of 1.    -->\n    <xsl:variable name=\"first-column\" select=\"$prior-column-number + 1\"/>\n    <xsl:variable name=\"n-columns\">\n        <xsl:choose>\n            <xsl:when test=\"@colspan\">\n                <xsl:value-of select=\"@colspan\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>1</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"last-column\" select=\"$prior-column-number + $n-columns\"/>\n    <xsl:variable name=\"b-multicolumns\" select=\"$last-column > $first-column\"/>\n\n    <xsl:text>Column</xsl:text>\n    <xsl:if test=\"$b-multicolumns\">\n        <xsl:text>s</xsl:text>\n    </xsl:if>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$first-column\"/>\n    <xsl:if test=\"$b-multicolumns\">\n        <xsl:text> - </xsl:text>\n        <xsl:value-of select=\"$last-column\"/>\n    </xsl:if>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:choose>\n        <!-- First cell, trailed by a colon -->\n        <xsl:when test=\"not(preceding-sibling::cell)\">\n            <xsl:text>: </xsl:text>\n        </xsl:when>\n        <!-- Last cell, trailed by nothing -->\n        <xsl:when test=\"not(following-sibling::cell)\"/>\n        <!-- Interior cells, trailed by semi-colons -->\n        <xsl:otherwise>\n            <xsl:text>; </xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- recurse if there is more to do -->\n    <xsl:if test=\"following-sibling::cell\">\n        <xsl:apply-templates select=\"following-sibling::cell\" mode=\"describe-column-headings\">\n            <xsl:with-param name=\"prior-column-number\" select=\"$last-column\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- A \"p\" normally becomes a \"segment\".  But an entire row of a \"tabular\" -->\n<!-- is a segment and we can't nest them.  So we just dribble out the      -->\n<!-- entire \"p\" without any indentation or anything, so it becomes one     -->\n<!-- very long cell in the braille.  Worse, two \"p\" in a cell will just    -->\n<!-- get concatenated and the distinction between the two will be lost.    -->\n<xsl:template match=\"cell/p\">\n    <xsl:apply-templates select=\"node()\"/>\n    <!-- At least provide a space between consecutive \"p\" -->\n    <xsl:if test=\"following-sibling::p\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ########## -->\n<!-- References -->\n<!-- ########## -->\n\n<!-- Bibliography [BANA-2016, 22.2.1]                           -->\n<!-- Bibliographic items in a \"references\" division have a      -->\n<!-- bracketed number leading each new entry, then two spaces   -->\n<!-- of indentation for the remainder .                         -->\n<!-- TODO: expand to accomodate annotations (\"note\"), BANA 22.3 -->\n<xsl:template match=\"biblio[@type='raw']\">\n    <runin indentation=\"0\" separator=\"&#x20;\">\n        <xsl:text>[</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n        <xsl:text>]</xsl:text>\n    </runin>\n    <segment indentation=\"0\" runover=\"2\">\n        <xsl:apply-templates/>\n    </segment>\n</xsl:template>\n\n<!-- Override usual killing of title, but perhaps a generic -->\n<!-- template (without punctuation!) would be saner?        -->\n<xsl:template match=\"biblio/title\">\n    <italic>\n        <xsl:apply-templates/>\n    </italic>\n</xsl:template>\n\n<xsl:template match=\"volume\">\n    <bold>\n        <xsl:apply-templates/>\n    </bold>\n</xsl:template>\n\n<!-- Generators -->\n\n<xsl:template match=\"pretext\">\n    <xsl:text>PreTeXt</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"tex\">\n    <xsl:text>TeX</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"latex\">\n    <xsl:text>LaTeX</xsl:text>\n</xsl:template>\n\n<!-- static, all \"webwork\" as problems are gone -->\n<xsl:template match=\"webwork\">\n    <xsl:text>WeBWorK</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"ie\">\n    <xsl:text>i.e.</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"etc\">\n    <xsl:text>etc.</xsl:text>\n</xsl:template>\n\n\n<!-- Empty Elements, Characters -->\n\n<!-- Generally Unicode values get translated into UEB equivalents  -->\n<!-- by liblouis.  This is based on a reading of                   -->\n<!--                                                               -->\n<!--     /usr/share/liblouis/tables/en-ueb-chardefs.uti            -->\n<!--                                                               -->\n<!-- which is incorporated via the English-UEB Grade 1 and Grade 2 -->\n<!-- tables.  As of 2023-05-12.  We document the Unicode character -->\n<!-- and the cells described in the liblouis table.                -->\n<!--                                                               -->\n<!-- N.B. there is no attempt here to provide localizations, such  -->\n<!-- as quotation mark styles, since we are limited ourselves to   -->\n<!-- English language documents by larger decisions elsewhere.     -->\n\n<!-- Unicode Character 'NO-BREAK SPACE' (U+00A0)   -->\n<!-- yields a template for \"nbsp\" in -common       -->\n<!-- liblouis seems to pass this through in-kind   -->\n<!-- Used in the manufacture of a cross-reference, -->\n<!-- we will want to strip just before it ends up  -->\n<!-- in BRF .                                      -->\n<xsl:template name=\"nbsp-character\">\n    <xsl:text>&#x00A0;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'EN DASH' (U+2013) -->\n<!-- Liblouis: 6-36                       -->\n<xsl:template name=\"ndash-character\">\n    <xsl:text>&#x2013;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'EM DASH' (U+2014) -->\n<!-- Liblouis: 6-36                       -->\n<xsl:template name=\"mdash-character\">\n    <xsl:text>&#x2014;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'COPYRIGHT SIGN' (U+00A9) -->\n<!-- Liblouis: 45-14                             -->\n<xsl:template name=\"copyright-character\">\n    <xsl:text>&#x00A9;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'REGISTERED SIGN' (U+00AE) -->\n<!-- Liblouis: 45-1235                            -->\n<xsl:template name=\"registered-character\">\n    <xsl:text>&#x00AE;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'TRADE MARK SIGN' (U+2122) -->\n<!-- Liblouis: 45-2345                            -->\n<xsl:template name=\"trademark-character\">\n    <xsl:text>&#x2122;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'DEGREE SIGN' (U+00B0) -->\n<!-- Liblouis: 45-245                         -->\n<xsl:template name=\"degree-character\">\n    <xsl:text>&#x00B0;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'PRIME' (U+2032) -->\n<!-- Liblouis: 2356                     -->\n<xsl:template name=\"prime-character\">\n    <xsl:text>&#x2032;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'DOUBLE PRIME' (U+2033) -->\n<!-- Liblouis: 2356-2356                       -->\n<xsl:template name=\"dblprime-character\">\n    <xsl:text>&#x2033;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'LEFT SINGLE QUOTATION MARK' (U+2018) -->\n<!-- Liblouis: 6-236                                         -->\n<xsl:template match=\"*\" mode=\"lsq-character\">\n    <xsl:text>&#x2018;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'RIGHT SINGLE QUOTATION MARK' (U+2019) -->\n<!-- Liblouis: 6-356                                          -->\n<xsl:template match=\"*\" mode=\"rsq-character\">\n    <xsl:text>&#x2019;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'LEFT DOUBLE QUOTATION MARK' (U+201C) -->\n<!-- Liblouis: 236                                           -->\n<xsl:template match=\"*\" mode=\"lq-character\">\n    <xsl:text>&#x201C;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'RIGHT DOUBLE QUOTATION MARK' (U+201D) -->\n<!-- Liblouis: 356                                            -->\n<xsl:template match=\"*\" mode=\"rq-character\">\n    <xsl:text>&#x201D;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'LEFT ANGLE BRACKET' (U+3008) -->\n<!-- Liblouis: 4-126                                 -->\n<xsl:template name=\"langle-character\">\n    <xsl:text>&#x3008;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'RIGHT ANGLE BRACKET' (U+3009) -->\n<!-- Liblouis: 4-345                                  -->\n<xsl:template name=\"rangle-character\">\n    <xsl:text>&#x3009;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'HORIZONTAL ELLIPSIS' (U+2026) -->\n<!-- Liblouis: 256-256-256                            -->\n<!-- [BANA-2016] Appendix G, UEB is three periods/256 -->\n<xsl:template name=\"ellipsis-character\">\n    <xsl:text>&#x2026;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'MIDDLE DOT' (U+00B7) -->\n<!-- Liblouis: 4-16                          -->\n<xsl:template name=\"midpoint-character\">\n    <xsl:text>&#x00B7;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'SWUNG DASH' (U+2053) -->\n<!-- instead faking it with                  -->\n<!-- Unicode Character 'TILDE' (U+007E)      -->\n<xsl:template name=\"swungdash-character\">\n    <xsl:text>&#x007E;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'PILCROW SIGN' (U+00B6) -->\n<!-- Liblouis: 45-1234                         -->\n<xsl:template name=\"pilcrow-character\">\n    <xsl:text>&#x00B6;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'SECTION SIGN' (U+00A7) -->\n<!-- Liblouis: 45-234                          -->\n<xsl:template name=\"section-mark-character\">\n    <xsl:text>&#x00A7;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'MINUS SIGN' (U+2212) -->\n<!-- Liblouis: 5-36                          -->\n<xsl:template name=\"minus-character\">\n    <xsl:text>&#x2212;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'MULTIPLICATION SIGN' (U+00D7) -->\n<!-- Liblouis: 5-236                                  -->\n<xsl:template name=\"times-character\">\n    <xsl:text>&#x00D7;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'FRACTION SLASH' (U+2044) -->\n<!-- instead faking it with                      -->\n<!-- Unicode Character 'SOLIDUS' (U+002F)        -->\n<xsl:template name=\"solidus-character\">\n    <xsl:text>&#x002F;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'DIVISION SIGN' (U+00F7) -->\n<!-- Liblouis: 5-34                             -->\n<xsl:template name=\"obelus-character\">\n    <xsl:text>&#x00F7;</xsl:text>\n</xsl:template>\n\n<!-- Unicode Character 'PLUS-MINUS SIGN' (U+00B1) -->\n<!-- Liblouis: 456-235                            -->\n<xsl:template name=\"plusminus-character\">\n    <xsl:text>&#x00B1;</xsl:text>\n</xsl:template>\n\n<!-- Icons -->\n<!-- Just the four arrows, unsure about the rest -->\n<!-- Arrows are in liblouis table                -->\n\n<xsl:template match=\"icon\">\n    <xsl:choose>\n        <xsl:when test=\"@name = 'arrow-left'\">\n            <xsl:text>&#x2190;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@name ='arrow-up'\">\n            <xsl:text>&#x2191;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@name = 'arrow-right'\">\n            <xsl:text>&#x2192;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@name ='arrow-down'\">\n            <xsl:text>&#x2193;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>WARNING:  &quot;icon&quot; with @name attribute value \"<xsl:value-of select=\"@name\"/>\" does not have an implementation for braille.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ############ -->\n<!-- Font Changes -->\n<!-- ############ -->\n\n<!-- Certain PreTeXt groupings in running text naturally yield just  -->\n<!-- a font change.  Braille and liblouis have facilities for italic -->\n<!-- and bold.  This is \"internal\" markup that eventually gets       -->\n<!-- interpreted by  lxml  in Python.                                -->\n\n<!-- Italics -->\n<xsl:template match=\"em|foreign|articletitle|pubtitle\">\n    <!-- Python will assume \"italic\" as element name -->\n    <italic>\n        <xsl:apply-templates select=\"node()\"/>\n    </italic>\n</xsl:template>\n\n<!-- Bold -->\n<xsl:template match=\"term|alert\">\n    <!-- Python will assume \"bold\" as element name -->\n    <bold>\n        <xsl:apply-templates select=\"node()\"/>\n    </bold>\n</xsl:template>\n\n<!-- Biological Names -->\n<xsl:template match=\"taxon\">\n    <!-- In italic font -->\n    <italic>\n        <xsl:choose>\n            <!-- both substructures -->\n            <xsl:when test=\"genus and species\">\n                <xsl:apply-templates select=\"genus\"/>\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\"species\"/>\n            </xsl:when>\n            <!-- just one -->\n            <xsl:when test=\"genus\">\n                <xsl:apply-templates select=\"genus\"/>\n            </xsl:when>\n            <!-- just the other one -->\n            <xsl:when test=\"species\">\n                <xsl:apply-templates select=\"species\"/>\n            </xsl:when>\n            <!-- not structured, use content -->\n            <xsl:otherwise>\n                <xsl:apply-templates/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </italic>\n</xsl:template>\n\n<!-- Code -->\n<!-- Accomplished in UEB Grade 2, but with transcriber emphasis scheme 1 -->\n<!-- from liblouis (where is this defined?).  See liblouis table         -->\n<!-- \"en-ueb-g1.ctb\" for exact definition of emphasis code \"trans1\".     -->\n<!--                                                                     -->\n<!--     emphletter trans1 4-3456-23                                     -->\n<!--     begemphword trans1 4-3456-2                                     -->\n<!--     endemphword trans1 4-3456-3                                     -->\n<!--     lenemphphrase trans1 3                                          -->\n<!--     begemphphrase trans1 4-3456-2356                                -->\n<!--     endemphphrase trans1 after 4-3456-3                             -->\n<xsl:template name=\"code-wrapper\">\n    <xsl:param name=\"content\"/>\n\n    <code>\n        <xsl:value-of select=\"$content\"/>\n    </code>\n</xsl:template>\n\n<!-- Pass-through/Dropped -->\n<xsl:template match=\"abbr|acro|init\">\n    <xsl:apply-templates select=\"node()\"/>\n</xsl:template>\n\n<!-- \"idx\" must be dealt with from source otherwise during    -->\n<!-- index construction, but when encountered in a paragraph  -->\n<!-- or a block they should just be killed.  Should never     -->\n<!-- reach an interior \"h\".  Entirely similar for \"notation\"  -->\n<!-- and an interior \"usage\", and \"description\".              -->\n\n<xsl:template match=\"idx|notation\"/>\n\n<!-- Documenting PreText itself -->\n\n<xsl:template match=\"tag\">\n    <xsl:text>&lt;</xsl:text>\n    <xsl:value-of select=\".\"/>\n    <xsl:text>&gt;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"tage\">\n    <xsl:text>&lt;</xsl:text>\n    <xsl:value-of select=\".\"/>\n    <xsl:text>/&gt;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"attr\">\n    <xsl:text>@</xsl:text>\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- #### -->\n<!-- Math -->\n<!-- #### -->\n\n<xsl:template match=\"m[not(contains(math-nemeth, '&#xa;'))]\">\n    <!-- Unicode braille cells from Speech Rule Engine (SRE)   -->\n    <!-- Not expecting any markup, so \"value-of\" is everything -->\n    <xsl:variable name=\"raw-braille\">\n        <xsl:value-of select=\"math-nemeth\"/>\n    </xsl:variable>\n    <!-- We investigate actual source for very simple math   -->\n    <!-- such as one-letter variable names as Latin letters  -->\n    <!-- or positive integers, so we process the orginal     -->\n    <!-- content outside of a MathJax/SRE translation (which -->\n    <!-- could have \"xref\", etc)                             -->\n    <xsl:variable name=\"content\">\n        <xsl:value-of select=\"math-original/node()\"/>\n    </xsl:variable>\n    <xsl:variable name=\"original-content\" select=\"normalize-space($content)\"/>\n    <!-- Note: this mark is *always* removed from the trailing text node,    -->\n    <!-- so we need to *always* restore it.  In other wordds, we usually     -->\n    <!-- put it into an attribute to get picked up by  lxml  in the Python.  -->\n    <!-- But if we short-circuit that process here by turning integers into  -->\n    <!-- digits or making single-letter variables unadorned, then we need to -->\n    <!-- restore the mark in this template.                                  -->\n    <xsl:variable name=\"clause-ending-mark\">\n        <xsl:apply-templates select=\".\" mode=\"get-clause-punctuation-mark\"/>\n    </xsl:variable>\n    <!-- Various cases, more specific first -->\n    <xsl:choose>\n        <!-- Inline math with just one Latin letter. No formatting,  -->\n        <!-- no italics, according to BANA rules via Michael Cantino -->\n        <!-- (2023-01-26) so drop-in $original.  C'est la vie.       -->\n        <xsl:when test=\"(string-length($original-content) = 1) and contains(&ALPHABET;, $original-content)\">\n            <xsl:value-of select=\"$original-content\"/>\n            <!-- restore clause-ending punctuation -->\n            <xsl:value-of select=\"$clause-ending-mark\"/>\n        </xsl:when>\n        <!-- Test is true for non-negative integers, which we drop into -->\n        <!-- the stream as if they were never authored as math anyway   -->\n        <xsl:when test=\"translate($original-content, &DIGIT; ,'') = ''\">\n            <xsl:value-of select=\"$original-content\"/>\n            <!-- restore clause-ending punctuation -->\n            <xsl:value-of select=\"$clause-ending-mark\"/>\n        </xsl:when>\n        <!-- We construct a fragment for the Python formatter.   -->\n        <!-- SRE may convert inline \"m\" into a spatial layout,   -->\n        <!-- such as a fraction or column vector authored inline -->\n        <!-- We treat this elsewhere, more like \"md\" elements    -->\n        <xsl:otherwise>\n            <math>\n                <!-- Add punctuation as an attribute conditionally. -->\n                <!-- We could probably just add an empty string     -->\n                <!-- routinely and push that through to the closing -->\n                <!-- Nemeth indicator, but we take a bit more care. -->\n                <xsl:if test=\"not($clause-ending-mark = '')\">\n                    <xsl:attribute name=\"punctuation\">\n                        <xsl:value-of select=\"$clause-ending-mark\"/>\n                    </xsl:attribute>\n                </xsl:if>\n                <xsl:value-of select=\"$raw-braille\"/>\n            </math>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"m[contains(math-nemeth, '&#xa;')]|md\">\n    <xsl:variable name=\"nemeth\">\n        <xsl:value-of select=\"math-nemeth\"/>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:variable>\n    <block breakable=\"no\" box=\"nemeth\">\n        <xsl:attribute name=\"punctuation\">\n            <xsl:apply-templates select=\".\" mode=\"get-clause-punctuation-mark\"/>\n        </xsl:attribute>\n        <xsl:call-template name=\"segmentize-display-math\">\n            <xsl:with-param name=\"display-math\" select=\"$nemeth\"/>\n        </xsl:call-template>\n    </block>\n</xsl:template>\n\n<xsl:template name=\"segmentize-display-math\">\n    <xsl:param name=\"display-math\"/>\n\n    <xsl:choose>\n        <!-- done, nothing left to work on -->\n        <xsl:when test=\"$display-math = ''\"/>\n        <xsl:otherwise>\n            <!-- first line into a segment -->\n            <segment>\n                <xsl:call-template name=\"trim-nemeth-trailing-whitespace\">\n                   <xsl:with-param name=\"text\" select=\"substring-before($display-math, '&#xa;')\"/>\n               </xsl:call-template>\n            </segment>\n            <!-- recurse on remainder -->\n            <xsl:call-template name=\"segmentize-display-math\">\n                <xsl:with-param name=\"display-math\" select=\"substring-after($display-math, '&#xa;')\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Cross-References -->\n<!-- ################ -->\n\n<!-- Simple implementations of the basic -->\n<!-- components of a cross-reference     -->\n\n<!-- This device is just for the LaTeX conversion -->\n<xsl:template match=\"*\" mode=\"xref-number\">\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n</xsl:template>\n\n<!-- Nothing much to be done, we just -->\n<!-- xerox the text representation    -->\n<xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"target\" />\n    <xsl:param name=\"content\" />\n\n    <xsl:copy-of select=\"$content\"/>\n</xsl:template>\n\n<!-- #### -->\n<!-- URLs -->\n<!-- #### -->\n\n<!-- Some technical debt: these to variables (or at least one) should -->\n<!-- perhaps be placed in -common rather than duplicating them.       -->\n\n<!-- 2023-03-06: these two vraiables have been copied verbatim from the HTML conversion -->\n\n<xsl:template match=\"url|dataurl\">\n    <!-- link/reference/location may be external -->\n    <!-- (@href) or internal (dataurl[@source])  -->\n    <xsl:variable name=\"uri\">\n        <xsl:choose>\n            <!-- \"url\" and \"dataurl\" both support external @href -->\n            <xsl:when test=\"@href\">\n                <xsl:value-of select=\"@href\"/>\n            </xsl:when>\n            <!-- a \"dataurl\" might be local, @source is      -->\n            <!-- indication, so prefix with a local path/URI -->\n            <xsl:when test=\"self::dataurl and @source\">\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"@source\"/>\n            </xsl:when>\n            <!-- empty will be non-functional -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- visible portion of HTML is the URL itself,   -->\n    <!-- formatted as code, or content of PTX element -->\n    <xsl:variable name=\"visible-text\">\n        <xsl:choose>\n            <xsl:when test=\"node()\">\n                <xsl:apply-templates/>\n            </xsl:when>\n            <xsl:otherwise>\n                <code class=\"code-inline tex2jax_ignore\">\n                    <xsl:choose>\n                        <xsl:when test=\"@visual\">\n                            <xsl:value-of select=\"@visual\"/>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:value-of select=\"$uri\"/>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </code>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:value-of select=\"$visible-text\"/>\n</xsl:template>\n\n\n<!-- ######### -->\n<!-- Footnotes -->\n<!-- ######### -->\n\n<!-- Drop a mark at sight, Need to devise an        -->\n<!-- add-on to division-processing to make endnotes -->\n<!-- [BANA-2016] 16.1.4(g): (print observations)  -->\n<!-- In a note section, either at the end of each -->\n<!-- chapter or at the back of the book.          -->\n<!-- [BANA-2016] 16.1.5(c): (braille placement)   -->\n<!-- At the end of the chapter or volume.         -->\n\n<!-- BANA 16.2.2: superscripted number          -->\n<!-- (two-cell indicator, number sign, number). -->\n<!-- TODO: collect footnote *content* at division ends -->\n<xsl:template match=\"fn\">\n    <!--  5-6  3-5  -->\n    <xsl:text>&#x2830;&#x2814;</xsl:text>\n    <!-- A number sign is supplied by liblouis translation -->\n    <!-- 2-4-5-6  U+283C                                   -->\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <!-- trailing space necessary to end superscript?  -->\n    <!-- will get merged with any that already exists? -->\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n\n<!-- ################# -->\n<!-- Verbatim, Program -->\n<!-- ################# -->\n\n<!-- Various templates elsewhere manipulate large chunks of verbatim text, -->\n<!-- such as for a \"program\".  We leverage those as much as possible.      -->\n<!-- Ideally we easily get a chunk of text, given as a sequence of lines   -->\n<!-- defined by newline characters.   The recursive \"braille-source-code\"  -->\n<!-- template makes a \"segment\" for each line, this will allow for runover -->\n<!-- and *code* indentation without any ambiguity.  So most of the braille -->\n<!-- formatting happens in this template.                                  -->\n<!--                                                                       -->\n<!-- IMPORTANT: ensure that $text has a final newline character.           -->\n\n<xsl:template name=\"braille-source-code\">\n    <xsl:param name=\"text\"/>\n\n    <xsl:choose>\n        <!-- $text always ends in a newline, so final recursive call will    -->\n        <!-- have an empty string.  This is the indication that we are done. -->\n        <xsl:when test=\"$text = ''\"/>\n        <!-- Nonempty $text, so split it, and recurse -->\n        <xsl:otherwise>\n            <segment indentation=\"0\" runover=\"0\">\n                <code>\n                    <xsl:value-of select=\"substring-before($text, '&#xa;')\"/>\n                </code>\n            </segment>\n            <xsl:call-template name=\"braille-source-code\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A \"cd\" is structured with \"cline\" or not.  We do not sanitize, that   -->\n<!-- tis what the \"cline\"element is for - control over leading whitespace. -->\n<!-- We provide a final newline here for a bare \"cd\", otherwise the        -->\n<!-- \"cline\" template provides it.                                         -->\n<xsl:template match=\"cd\">\n    <block breakable=\"no\">\n        <xsl:call-template name=\"braille-source-code\">\n            <xsl:with-param name=\"text\">\n                <xsl:choose>\n                    <xsl:when test=\"cline\">\n                        <xsl:apply-templates select=\"cline\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\".\"/>\n                        <xsl:text>&#xa;</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:with-param>\n        </xsl:call-template>\n    </block>\n</xsl:template>\n\n<!-- \"pre\" and \"pre[cline]\" are handled by the \"interior\" -->\n<!-- modal template in -common.                           -->\n<!-- \"pre\" uses \"sanitize-text\", which provides a final   -->\n<!-- newline, while \"pre[cline]\" uses the base \"cline\"    -->\n<!-- template, which also provides a final newline.       -->\n<xsl:template match=\"pre\">\n    <block breakable=\"no\">\n        <xsl:call-template name=\"braille-source-code\">\n            <xsl:with-param name=\"text\">\n                <xsl:apply-templates select=\".\" mode=\"interior\"/>\n            </xsl:with-param>\n        </xsl:call-template>\n    </block>\n</xsl:template>\n\n<!-- A \"program\" gets a lot of treatment in other formats to recognize   -->\n<!-- the language an author specifies and then do some sort of syntax    -->\n<!-- highlighting with fonts and colors.  That would be hard in braille, -->\n<!-- and we don't know of a good tool anyway.  So we just echo the       -->\n<!-- \"input\" portion.                                                    -->\n<!-- \"sanitize-text\" provides a final newline, always                    -->\n<xsl:template match=\"program\">\n    <!-- build up full program text so we can apply sanitize-text to entire blob -->\n    <!-- and thus allow relative indentation for preamble/code/postamble         -->\n    <xsl:variable name=\"program-text\">\n        <xsl:variable name=\"program-text\">\n            <xsl:if test=\"preamble[not(@visible = 'no')]\">\n                <xsl:call-template name=\"substring-before-last\">\n                    <xsl:with-param name=\"input\" select=\"preamble\" />\n                    <xsl:with-param name=\"substr\" select=\"'&#xA;'\" />\n                </xsl:call-template>\n            </xsl:if>\n            <xsl:call-template name=\"substring-before-last\">\n                <xsl:with-param name=\"input\" select=\"code\" />\n                <xsl:with-param name=\"substr\" select=\"'&#xA;'\" />\n            </xsl:call-template>\n            <xsl:text>&#xA;</xsl:text>\n            <xsl:if test=\"postamble[not(@visible = 'no')]\">\n                <xsl:value-of select=\"substring-after(postamble,'&#xA;')\" />\n            </xsl:if>\n        </xsl:variable>\n    </xsl:variable>\n    <block breakable=\"no\">\n        <xsl:call-template name=\"braille-source-code\">\n            <xsl:with-param name=\"text\">\n                <xsl:call-template name=\"sanitize-text\">\n                    <xsl:with-param name=\"text\" select=\"$program-text\" />\n                </xsl:call-template>\n            </xsl:with-param>\n        </xsl:call-template>\n    </block>\n</xsl:template>\n\n<!-- For a \"console\" session, we work hardest on the \"input\", pulling in -->\n<!-- a preceding prompt, and considering the possibility of no \"output\". -->\n<!-- For \"output\", if extant, we provide necessary separators.           -->\n\n<xsl:template match=\"console\">\n    <!-- entire session as a block -->\n    <block breakable=\"no\" lines-before=\"1\" lines-after=\"1\">\n        <!-- respect authored order, so don't split these -->\n        <xsl:apply-templates select=\"input|output\"/>\n    </block>\n</xsl:template>\n\n<xsl:template match=\"console/input\">\n    <xsl:variable name=\"console-input\">\n        <!-- prompt first, if provided; author provides -->\n        <!-- any space that prompt would create         -->\n        <xsl:value-of select=\"preceding-sibling::*[1][self::prompt]\"/>\n        <!-- remainder of the input -->\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- now feed to braille-ification -->\n    <xsl:call-template name=\"braille-source-code\">\n        <xsl:with-param name=\"text\" select=\"$console-input\"/>\n    </xsl:call-template>\n    <!-- add a blank line, only when not provided by the output -->\n    <xsl:if test=\"not(following-sibling::*[1][self::output])\">\n        <segment lines-before=\"1\"/>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"console/output\">\n    <xsl:variable name=\"console-output\">\n        <!-- separate from the input -->\n        <!-- NB: newline here necessary for textual version -->\n        <xsl:text>---------------&#xa;</xsl:text>\n        <!-- remainder of the input -->\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- now feed to braille-ification -->\n    <xsl:call-template name=\"braille-source-code\">\n        <xsl:with-param name=\"text\" select=\"$console-output\"/>\n    </xsl:call-template>\n    <!-- and a blank line to help with session -->\n    <segment lines-before=\"1\"/>\n</xsl:template>\n\n<!-- Sage cells rely on per-conversion overrides of presumed   -->\n<!-- abstract templates, to handle the numerous possibilities. -->\n<!-- Using a long line to simulate input/output split          -->\n\n<xsl:template match=\"sage\" mode=\"sage-active-markup\">\n    <xsl:param name=\"in\" />\n    <xsl:param name=\"out\" />\n\n    <block breakable=\"no\" lines-before=\"1\" lines-after=\"1\">\n        <xsl:call-template name=\"braille-source-code\">\n            <xsl:with-param name=\"text\" select=\"$in\"/>\n        </xsl:call-template>\n\n        <xsl:if test=\"not($out = '')\">\n            <segment>\n                <xsl:text>-----------------</xsl:text>\n            </segment>\n            <xsl:call-template name=\"braille-source-code\">\n                <xsl:with-param name=\"text\" select=\"$out\"/>\n            </xsl:call-template>\n        </xsl:if>\n    </block>\n</xsl:template>\n\n<!-- Display only, just input -->\n<xsl:template name=\"sage-display-markup\">\n    <xsl:param name=\"in\" />\n\n    <block breakable=\"no\" lines-before=\"1\" lines-after=\"1\">\n        <xsl:call-template name=\"braille-source-code\">\n            <xsl:with-param name=\"text\" select=\"$in\"/>\n        </xsl:call-template>\n    </block>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- Miscellaneous -->\n<!-- ############# -->\n\n<!-- Containers that have zero metadata (no title, etc.) -->\n<xsl:template match=\"statement|introduction|conclusion\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Just text nodes, but might have a WeBWorK -->\n<!-- \"var\", so process all children            -->\n<xsl:template match=\"shortdescription\">\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- fillin blanks, outside math -->\n<!-- A fillin inside math will have disappeared on us by now, -->\n<!-- it was mixed into some LaTeX syntax and has been gobbled -->\n<!-- up by MathJax by now.  So the conditional here is really -->\n<!-- moot and not necessary.                                  -->\n<!-- [BANA, 2016] 10.6.2 and Michael Cantino: an underscore   -->\n<!-- Seems to translate as a \"sign\": 46-36 in liblouis table  -->\n<xsl:template match=\"fillin[not(parent::m or parent::mrow)]\">\n    <xsl:text>_</xsl:text>\n</xsl:template>\n\n<!-- Fillin blanks, inside math -->\n<!-- For math see https://nemeth.aphtech.org/lesson3.5 4x U+2824 -->\n\n<!-- ############ -->\n<!-- EXPERIMENTAL -->\n<!-- ############ -->\n\n<!-- A paragraph without \"displays\" is straightforward and -->\n<!-- we can bypass the more complicated procedure next.    -->\n<xsl:template match=\"p\">\n    <segment>\n        <xsl:attribute name=\"indentation\">\n            <xsl:choose>\n                <xsl:when test=\"@pi:indent = 'no'\">\n                    <xsl:text>0</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>2</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()\"/>\n    </segment>\n</xsl:template>\n\n<!-- Two-dimensional displayed itmes will get their own segment and   -->\n<!-- we will explode the rest of a \"p\" into pieces that are segments. -->\n<!-- But with indentation only on the first piece.                    -->\n<!-- Note: leading with a display in a \"p\" means no indentation.      -->\n<!-- Note: this is derived from a similar template in the HTML        -->\n<!-- conversion.                                                      -->\n<xsl:template match=\"p[ol|ul|dl|m[contains(math-nemeth, '&#xa;')]|md|cd]\">\n    <!-- will later loop over displays within paragraph      -->\n    <!-- match guarantees at least one for $initial variable -->\n    <xsl:variable name=\"displays\" select=\"ul|ol|dl|m[contains(math-nemeth, '&#xa;')]|md|cd\" />\n    <!-- content prior to first display is exceptional, but if empty,   -->\n    <!-- as indicated by $initial, we do not produce an empty paragraph -->\n    <!--                                                                -->\n    <!-- all interesting nodes of paragraph, before first display       -->\n    <xsl:variable name=\"initial\" select=\"$displays[1]/preceding-sibling::node()\"/>\n    <xsl:variable name=\"initial-content\">\n        <xsl:apply-templates select=\"$initial\"/>\n    </xsl:variable>\n    <xsl:if test=\"not(normalize-space($initial-content) = '')\">\n        <segment indentation=\"2\">\n            <xsl:apply-templates select=\"$initial\"/>\n        </segment>\n    </xsl:if>\n    <!-- for each display, output the display, plus trailing content -->\n    <xsl:for-each select=\"$displays\">\n        <!-- do the display proper -->\n        <xsl:apply-templates select=\".\"/>\n        <!-- look through remainder, all element and text nodes, and the next display -->\n        <xsl:variable name=\"rightward\" select=\"following-sibling::node()\" />\n        <xsl:variable name=\"next-display\" select=\"following-sibling::*[self::ul or self::ol or self::dl or self::m[contains(math-nemeth, '&#xa;')] or self::md or self::cd][1]\" />\n        <xsl:choose>\n            <xsl:when test=\"$next-display\">\n                <xsl:variable name=\"leftward\" select=\"$next-display/preceding-sibling::node()\" />\n                <!-- device below forms set intersection -->\n                <xsl:variable name=\"common\" select=\"$rightward[count(. | $leftward) = count($leftward)]\" />\n                <!-- Careful, punctuation after display math      -->\n                <!-- gets absorbed into display and so is a node  -->\n                <!-- that produces no content (cannot just count) -->\n                <xsl:variable name=\"common-content\">\n                    <xsl:apply-templates select=\"$common\"/>\n                </xsl:variable>\n                <xsl:if test=\"not(normalize-space($common-content) = '')\">\n                    <segment>\n                        <xsl:apply-templates select=\"$common\"/>\n                    </segment>\n                </xsl:if>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- finish the trailing content, if nonempty -->\n                <xsl:variable name=\"final-content\">\n                    <xsl:apply-templates select=\"$rightward\"/>\n                </xsl:variable>\n                <xsl:if test=\"not(normalize-space($final-content) = '')\">\n                    <segment>\n                        <xsl:apply-templates select=\"$rightward\"/>\n                    </segment>\n                </xsl:if>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- We support books and articles, though nothing in particular -->\n<!-- needs to be done at these root elements.  Yet?              -->\n<xsl:template match=\"book|article\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- \"docinfo\" should *always* be mined directly for pieces that affect output -->\n<xsl:template match=\"docinfo\"/>\n\n<!-- Many pieces of the \"frontmatter\" have templates designed for divisions -->\n<xsl:template match=\"frontmatter\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- The \"titlepage\" and front \"colophon\" should be mined to form front -->\n<!-- matter material in the right places, etc.  We kill them for now so -->\n<!-- we don't see their children being overlooked.                      -->\n<xsl:template match=\"titlepage\"/>\n<xsl:template match=\"frontmatter/colophon\"/>\n\n<!-- Many pieces of the \"backmatter\" have templates designed for divisions -->\n<xsl:template match=\"backmatter\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n\n<!-- ############ -->\n<!-- EXPERIMENTAL -->\n<!-- ############ -->\n\n<!-- Uncaught elements for debugging reporting                     -->\n<!-- These elements have full implementations in -common, or       -->\n<!-- partial/abstract implementations which we extend hee.         -->\n<!-- So we just hit them with \"apply-imports\" so they do not       -->\n<!-- all into the (temporary, development) template below          -->\n<!-- reporting missed elements.   \"Commenting out this template    -->\n<!-- should have zero effect, except to generate more debugging    -->\n<!-- messages, since this reporting template will take precedence. -->\n\n<!-- \"apply-imports\" items necessary during development -->\n\n<!-- nbsp, ndash, mdash characters defined above -->\n<xsl:template match=\"nbsp|ndash|mdash\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- empty elements, characters, defined above -->\n<xsl:template match=\"copyright|registered|trademark|degree|prime|dblprime|lsq|rsq|lq|rq|langle|rangle|ellipsis|midpoint|pilcrow|section-mark|minus|times|obelus|plusminus\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- These elements/characters lack translations in liblouis.      -->\n<!-- We get/use their versions in -common, which will throw an     -->\n<!-- \"unimplemented character\" warning, which is accurate now,     -->\n<!-- *and* accurate later when the \"overlooked\" warning goes away. -->\n<!-- As characters get implemented, move to above template         -->\n<!-- (in proper order) as a way to keep track of the situation.    -->\n<xsl:template match=\"phonomark|copyleft|servicemark|ldblbracket|rdblbracket|swungdash|permille|solidus\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- Groupings, based on characters defined above -->\n<!-- dblbrackets raises warnings since left/right -->\n<!-- characters are not implemented               -->\n<xsl:template match=\"q|sq|dblbrackets|angles\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- xref-number, xref-link defined above -->\n<xsl:template match=\"xref\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- pure text in -common -->\n<xsl:template match=\"today|timeofday\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- Latin Abbreviations -->\n<!-- Fully defined as text in -common, including an \"abbreviation-period\" -->\n<xsl:template match=\"ad|am|bc|ca|eg|etal|etc|ie|nb|pm|ps|vs|viz\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- titles get killed in -common so we don't need to see them here -->\n<xsl:template match=\"title|subtitle|shorttitle|plaintitle|creator\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- captions get killed in -common so we don't need to see them here -->\n<xsl:template match=\"caption\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- We expect the simple template in -common to be active -->\n<xsl:template match=\"cline\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- We expect the simple template in -common to be active -->\n<xsl:template match=\"c\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- Action is in -common, this will catch all occurences? -->\n<xsl:template match=\"sage\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n<!-- Localizations happen in -common, so need the \"rename\" template there -->\n<xsl:template match=\"rename\">\n    <xsl:apply-imports/>\n</xsl:template>\n\n\n<!-- Larger structures, needing implementation, *along with* interior -->\n<!-- structures.  We report AND include a textual place holder.       -->\n\n<xsl:template match=\"notation-list\">\n    <xsl:text>NOTATIONLIST</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"index-list\">\n    <xsl:text>INDEXLIST</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"poem\">\n    <segment>POEM</segment>\n</xsl:template>\n\n<!-- Next two are not structures, so as \"text\" -->\n\n<xsl:template match=\"quantity\">\n    <xsl:text>QUANTITY</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"kbd\">\n    <xsl:text>KBD</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"missing-warning\">\n    <xsl:if test=\"//notation-list\">\n        <xsl:call-template name=\"missing-implementation\">\n            <xsl:with-param name=\"element\" select=\"'notation-list'\"/>\n            <xsl:with-param name=\"ntimes\" select=\"count(//notation-list)\"/>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n    <xsl:if test=\"//index-list\">\n        <xsl:call-template name=\"missing-implementation\">\n            <xsl:with-param name=\"element\" select=\"'index-list'\"/>\n            <xsl:with-param name=\"ntimes\" select=\"count(//index-list)\"/>\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:if test=\"//poem\">\n        <xsl:call-template name=\"missing-implementation\">\n            <xsl:with-param name=\"element\" select=\"'poem'\"/>\n            <xsl:with-param name=\"ntimes\" select=\"count(//poem)\"/>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n    <xsl:if test=\"//quantity\">\n        <xsl:call-template name=\"missing-implementation\">\n            <xsl:with-param name=\"element\" select=\"'quantity'\"/>\n            <xsl:with-param name=\"ntimes\" select=\"count(//quantity)\"/>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n    <xsl:if test=\"//kbd\">\n        <xsl:call-template name=\"missing-implementation\">\n            <xsl:with-param name=\"element\" select=\"'kbd'\"/>\n            <xsl:with-param name=\"ntimes\" select=\"count(//kbd)\"/>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n</xsl:template>\n\n<xsl:template name=\"missing-implementation\">\n    <xsl:param name=\"element\"/>\n    <xsl:param name=\"ntimes\"/>\n\n    <xsl:message>Unimplemented: <xsl:value-of select=\"$element\"/> (<xsl:value-of select=\"$ntimes\"/> times)</xsl:message>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"overlooked\">\n    <xsl:message>Overlooked: <xsl:value-of select=\"local-name()\"/></xsl:message>\n</xsl:template>\n\n<!-- *Every* element needs an implementation, or it ends up here being -->\n<!-- reported as overlooked.  This is temporary during development.    -->\n<xsl:template match=\"*\">\n    <xsl:apply-templates select=\".\" mode=\"overlooked\"/>\n    <!-- <xsl:message>Overlooked: <xsl:value-of select=\"local-name()\"/></xsl:message> -->\n    <!-- recurse into child elements to find more \"missing\" elements -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Utilities -->\n<!-- ######### -->\n\n<!-- Transcriber Notes -->\n\n<!-- Here code is the transcriber, so we can explain places where we   -->\n<!-- have done something different than it might be realized in print. -->\n<!--                                                                   -->\n<!-- [BANA 2016] 3.2.1                                                 -->\n<!-- Two three-cell sequences indicate the begin and end of a          -->\n<!-- transcriber note.  Additionally, the indentation is 7-5 margins.  -->\n<!--                                                                   -->\n<!-- The content provided in the \"message\" parameter by a calling      -->\n<!-- instance will be placed into a segment, so this is not an         -->\n<!-- \"embedded\" note (which is for seven words or less).  Content can  -->\n<!-- contain the *internal* markup used here, such as \"italic\" or      -->\n<!-- \"bold\", and that will be copied into the note for processing when -->\n<!-- converted to braille                                              -->\n<!--                                                                   -->\n<!-- Template could be context-free for literal messages, but the      -->\n<!-- $message will sometimes come from the context of an element       -->\n<!-- (e.g. the \"shortdescription\" of an \"image\")                       -->\n<xsl:template match=\"*\" mode=\"transcriber-note\">\n    <xsl:param name=\"message\"/>\n\n    <segment indentation=\"7\" runover=\"5\">\n        <!-- dot 4, dot 46, dot 126 -->\n        <xsl:text>&#x2808;&#x2828;&#x2823;</xsl:text>\n        <!-- *Copy* literal markup, or result of applying templates -->\n        <xsl:copy-of select=\"$message\"/>\n        <!-- dot 4, dot 46, dot 345 -->\n        <xsl:text>&#x2808;&#x2828;&#x281C;</xsl:text>\n    </segment>\n</xsl:template>\n\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-common.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:dyn=\"http://exslt.org/dynamic\"\n    extension-element-prefixes=\"pi exsl date str dyn\"\n    xmlns:mb=\"https://pretextbook.org/\"\n    xmlns:pf=\"https://prefigure.org\"\n    exclude-result-prefixes=\"mb\"\n>\n\n<!-- PreTeXt common templates                             -->\n<!-- Text creation/manipulation common to HTML, TeX, Sage -->\n\n<!-- This collection of XSL routines is like a base library,          -->\n<!-- it has no entry template and hence used by itself almost         -->\n<!-- nothing should happen.  Typically the situation looks like this: -->\n<!-- (example is LaTeX-specific but generalizes easily)               -->\n<!--                                                                  -->\n<!-- your-book-latex.xsl                                              -->\n<!--   (a) is what you use on the command line                        -->\n<!--   (b) contains very specific, atomic overrides for your project  -->\n<!--   (c) imports xsl/pretext-latex.xsl                             -->\n<!--                                                                  -->\n<!-- xsl/pretext-latex.xsl                                           -->\n<!--   (a) general conversion from PTX to LaTeX                       -->\n<!--   (b) could be used at the command line for default conversion   -->\n<!--   (c) imports xsl/pretext-common.xsl                            -->\n<!--                                                                  -->\n<!-- xsl/pretext-common.xsl                                          -->\n<!--   (a) this file                                                  -->\n<!--   (b) ensures commonality, such as text versions                 -->\n<!--       of numbers for theorems, equations, etc                    -->\n<!--   (c) has some abstract routines that require implementation     -->\n<!--       in files above, such as file wrapping for a LaTeX file     -->\n<!--       in this case                                               -->\n<!--                                                                  -->\n<!-- This creates a linear sequence of imports, so overrides          -->\n<!-- behave as you might expect or predict.                           -->\n<!-- To do otherwise is to invite confusion.                          -->\n\n<!-- Output methods here are just pure text -->\n<xsl:output method=\"text\" />\n\n<!-- Parameters to pass via xsltproc \"stringparam\" on command-line            -->\n<!-- Or make a thin customization layer and use 'select' to provide overrides -->\n<!-- These here are independent of the output format as well                  -->\n\n<!-- Author tools are for drafts, mostly \"todo\" items  -->\n<!-- and \"provisional\" citations and cross-references  -->\n<!-- Default is to hide todo's, inline provisionals    -->\n<!-- Otherwise ('yes'), todo's show in red paragraphs, -->\n<!-- provisional cross-references show in red          -->\n<xsl:param name=\"author.tools\" select=\"''\" />\n\n<!-- ######### -->\n<!-- Variables -->\n<!-- ######### -->\n\n<!-- The single quote character cannot be directly     -->\n<!-- used in a string in XSLT functions, not even as   -->\n<!-- &apos;. But if it is stored as a variable, then   -->\n<!-- XSLT 1.0 will be OK with using $apos.             -->\n<!-- Use like \"concat('L',$apos,'Hospital')\"           -->\n<!-- Unicode Character 'APOSTROPHE' (U+0027)           -->\n<xsl:variable name=\"apos\">&#x0027;</xsl:variable>\n\n<!-- Here we perform manipulations of math elements and subsequent  -->\n<!-- text nodes that lead with punctuation.  Basically, punctuation -->\n<!-- can migrate from the start of the text node and into the math, -->\n<!-- wrapped in a \\text{}.  We generally do this to display math as -->\n<!-- a service to authors.  MathJax needs help for inline math.     -->\n<!-- Braille and audio do not do so well with this manipulation.    -->\n<!-- These variables are meant to be set by other stylesheets in    -->\n<!-- various situations and there should be no cause for authors to -->\n<!-- change them (this no elaborate error-checking, etc.)           -->\n<xsl:variable name=\"math.punctuation.include\" select=\"'none'\"/>\n<xsl:variable name=\"b-include-inline\"\n    select=\"($math.punctuation.include = 'inline')  or ($math.punctuation.include = 'all')\"/>\n<xsl:variable name=\"b-include-display\"\n    select=\"($math.punctuation.include = 'display') or ($math.punctuation.include = 'all')\"/>\n\n<!-- We set this variable a bit differently -->\n<!-- for different conversions, so this is  -->\n<!-- basically an abstract implementation   -->\n<xsl:variable name=\"chunk-level\" select=\"number(0)\"/>\n\n<!-- Inline Exercises can optionally run on their own numbering scheme -->\n<!-- This is set (temporarily) in docinfo, which will change           -->\n<!-- We do no special error-checking here since this will change       -->\n<!-- The variable will be empty if not set                             -->\n<xsl:variable name=\"numbering-exercises\">\n    <xsl:value-of select=\"$docinfo/numbering/exercises/@level\"/>\n</xsl:variable>\n\n<!-- Figure-Like can optionally run on their own numbering scheme      -->\n<!-- This is set (temporarily) in docinfo, which will change           -->\n<!-- We do no special error-checking here since this will change       -->\n<!-- The variable will be empty if not set                             -->\n<xsl:variable name=\"numbering-figures\">\n    <xsl:value-of select=\"$docinfo/numbering/figures/@level\"/>\n</xsl:variable>\n\n<!-- The pre-processing stylesheet (\"pretext-assembly.xsl\") guarantees   -->\n<!-- a root \"pretext\" element with a valid @xml:lang, even if it is the  -->\n<!-- default \"en-US\".                                                    -->\n<xsl:variable name=\"document-language\">\n    <xsl:value-of select=\"$root/@xml:lang\"/>\n</xsl:variable>\n\n<!-- An author may elect to place a unique string into   -->\n<!-- the docinfo/document-id element and conversions may -->\n<!-- use this to distinguish one document from another.  -->\n<!-- The global variable here is empty to signal         -->\n<!-- \"no choice\" by the author.                          -->\n<!-- NB: at some point this should be specified as an    -->\n<!-- attribute, rather than as content, which would make -->\n<!-- things like newlines less likely to appear.  Much   -->\n<!-- as \"doucment-id/@edition\" is given.  Keep the       -->\n<!-- normalizationcan, it just becomes less necessary.   -->\n<xsl:variable name=\"document-id\">\n    <xsl:value-of select=\"normalize-space($docinfo/document-id)\"/>\n</xsl:variable>\n\n<!-- And an edition is critical for maintaing the -->\n<!-- Runestone database, though it may have other -->\n<!-- uses related to maintaining changes.         -->\n<xsl:variable name=\"edition\">\n    <xsl:value-of select=\"normalize-space($docinfo/document-id/@edition)\"/>\n</xsl:variable>\n\n<!-- The new version can return to the generic version  -->\n<!-- once we kill the dashed version for author use.    -->\n<xsl:variable name=\"author-tools-new\">\n    <xsl:choose>\n        <!-- respect old switch, if set properly -->\n        <!-- but don't error check or anything   -->\n        <xsl:when test=\"$author-tools = 'yes'\">\n            <xsl:text>yes</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$author-tools = 'no'\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$author.tools = 'yes'\">\n            <xsl:text>yes</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$author.tools = 'no'\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- could error-check not-empty here -->\n        <!-- default is \"no\"                  -->\n        <xsl:otherwise>\n            <xsl:text>no</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n\n<!-- ############### -->\n<!-- Source Analysis -->\n<!-- ############### -->\n\n<!-- We check certain aspects of the source and record the results  -->\n<!-- in boolean ($b-has-*) variables or as particular nodes high    -->\n<!-- up in the structure ($document-root).  Scans here in -common   -->\n<!-- should be short and definite (no searching paths with //!),    -->\n<!-- and universally useful, largely conveniences for consistency.  -->\n<!-- Remember that many basic templates are shared out of this      -->\n<!-- file for often very simple conversions (e.g. extractions)      -->\n<!-- so excessive setup is an unnecessary drain on processing time. -->\n<!-- $root, $docinfo, $document-root are a product of the           -->\n<!-- \"pretext-assembly.xsl\" stylesheet                              -->\n\n<!-- \"book\" and \"article\" are sometimes different, esp. for LaTeX -->\n<xsl:variable name=\"b-is-book\"    select=\"$document-root/self::book\" />\n<xsl:variable name=\"b-is-article\" select=\"$document-root/self::article\" />\n<!-- w/, w/o parts induces variants -->\n<xsl:variable name=\"b-has-parts\" select=\"boolean($root/book/part)\" />\n\n\n<!-- Some groups of elements are counted distinct -->\n<!-- from other blocks.  A configuration element  -->\n<!-- in \"docinfo\" is indicative of this           -->\n<!-- Note: the \"docinfo/numbering\" signals will     -->\n<!-- move to the publisher file once numbering gets -->\n<!-- refactored.  The elements work as signals, but -->\n<!-- actual usage needs @level to be effective.     -->\n<xsl:variable name=\"b-number-figure-distinct\" select=\"boolean($docinfo/numbering/figures)\" />\n<!-- project historical default, switch it     -->\n<!-- 2021-07-02: debug variable is unsupported -->\n<xsl:variable name=\"b-number-project-distinct\" select=\"$debug.project.number = ''\" />\n<!-- historically false -->\n<xsl:variable name=\"b-number-exercise-distinct\" select=\"boolean($docinfo/numbering/exercises)\" />\n\n<!-- File extensions can be set globally for a conversion, -->\n<!-- we set it here to something outlandish                -->\n<!-- This should be overridden in an importing stylesheet  -->\n<xsl:variable name=\"file-extension\" select=\"'.need-to-set-file-extension-variable'\" />\n\n<!-- We preserve action of the \"autoname\" parameter         -->\n<!-- But originally the default was \"no\", and now is        -->\n<!-- equivalent to \"yes\".  We set to blank on creation,     -->\n<!-- so we can see if there is command-line action          -->\n<!-- There is a warning that the default behavior has       -->\n<!-- changed, and a warning that setting this is deprecated -->\n<!-- (Deprecation 2017-07-25) -->\n<xsl:variable name=\"legacy-autoname\">\n    <xsl:choose>\n        <!-- nothing on command-line, nothing in docinfo    -->\n        <!-- then this is what will be used globally        -->\n        <!-- so preserve this behavior when this is removed -->\n        <xsl:when test=\"$autoname = ''\">\n            <xsl:text>unset</xsl:text>\n        </xsl:when>\n        <!-- legacy had zero error-checking -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$autoname\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Employing variants of the text displayed for a cross-reference -->\n<!-- affects the words shown to the reader, and hence is a choice   -->\n<!-- preserved in the source, and is not just a processing decision -->\n<!-- $xref-text-style is the global choice, based on                -->\n<!--   docinfo/cross-references/@text                               -->\n<!-- We control the possible values with the schema, allowing junk  -->\n<!-- NB: blank is not set, and is ignored so the legacy-autoname    -->\n<!-- scheme controls the global default.  When that goes away, we   -->\n<!-- should set the default here when there is no attribute.        -->\n<xsl:variable name=\"xref-text-style\">\n    <xsl:choose>\n        <xsl:when test=\"$docinfo/cross-references/@text\">\n            <xsl:value-of select=\"$docinfo/cross-references/@text\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <text />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- To forward-reference solutions to exercises, we need       -->\n<!-- to know which ones atually have solutions in place later.  -->\n<!-- So we build 30 node-lists according to the direct product  -->\n<!--                                                            -->\n<!--   {inline, divisional, worksheet, reading, project}        -->\n<!--     x                                                      -->\n<!--   {hint, answer, solution}                                 -->\n<!--     x                                                      -->\n<!--   {main, back}                                             -->\n<!--                                                            -->\n<!-- iff they are elected to be displayed at some point         -->\n<!-- (intra-division or back matter) via a \"solutions\" element. -->\n<!--                                                            -->\n<!-- First, we provide enough of a path to clearly identify the -->\n<!-- exercise component and its location, allowing steps where  -->\n<!-- there may be intervening structure (such as an             -->\n<!-- \"exercisegroup\").  Careful - a component in a \"worksheet\"  -->\n<!-- can be part of an \"exercise\" (worksheet exercise) or part  -->\n<!-- of \"project\" inside a worksheet.                           -->\n<!--                                                            -->\n<!-- Second, we condition on whether there is a                 -->\n<!-- backmatter/solutions  that elects inclusion of the         -->\n<!-- component, or if there is a containing division which      -->\n<!-- contains a solutions (ancestor::*/child::solutions)        -->\n<!-- with the same election.                                    -->\n\n<!-- Hint, Main Matter -->\n<xsl:variable name=\"inline-hint-main\"     select=\"$document-root//exercise[&INLINE-EXERCISE-FILTER;]//hint[ancestor::*/solutions[contains(@inline, 'hint')]]\"/>\n<xsl:variable name=\"divisional-hint-main\" select=\"$document-root//exercises//hint[ancestor::*/solutions[contains(@divisional, 'hint')]]\"/>\n<xsl:variable name=\"worksheet-hint-main\"  select=\"$document-root//worksheet//exercise//hint[ancestor::*/solutions[contains(@worksheet, 'hint')]]\"/>\n<xsl:variable name=\"reading-hint-main\"    select=\"$document-root//reading-questions//hint[ancestor::*/solutions[contains(@reading, 'hint')]]\"/>\n<xsl:variable name=\"project-hint-main\"    select=\"$document-root//*[&PROJECT-FILTER;]//hint[ancestor::*/solutions[contains(@project, 'hint')]]\"/>\n<!-- Hint, Back Matter -->\n<xsl:variable name=\"inline-hint-back\"     select=\"$document-root//exercise[&INLINE-EXERCISE-FILTER;]//hint[$document-root/backmatter/solutions[contains(@inline, 'hint')]]\"/>\n<xsl:variable name=\"divisional-hint-back\" select=\"$document-root//exercises//hint[$document-root/backmatter/solutions[contains(@divisional, 'hint')]]\"/>\n<xsl:variable name=\"worksheet-hint-back\"  select=\"$document-root//worksheet//exercise//hint[$document-root/backmatter/solutions[contains(@worksheet, 'hint')]]\"/>\n<xsl:variable name=\"reading-hint-back\"    select=\"$document-root//reading-questions//hint[$document-root/backmatter/solutions[contains(@reading, 'hint')]]\"/>\n<xsl:variable name=\"project-hint-back\"    select=\"$document-root//*[&PROJECT-FILTER;]//hint[$document-root/backmatter/solutions[contains(@project, 'hint')]]\"/>\n<!-- Answer, Main Matter -->\n<xsl:variable name=\"inline-answer-main\"     select=\"$document-root//exercise[&INLINE-EXERCISE-FILTER;]//answer[ancestor::*/solutions[contains(@inline, 'answer')]]\"/>\n<xsl:variable name=\"divisional-answer-main\" select=\"$document-root//exercises//answer[ancestor::*/solutions[contains(@divisional, 'answer')]]\"/>\n<xsl:variable name=\"worksheet-answer-main\"  select=\"$document-root//worksheet//exercise//answer[ancestor::*/solutions[contains(@worksheet, 'answer')]]\"/>\n<xsl:variable name=\"reading-answer-main\"    select=\"$document-root//reading-questions//answer[ancestor::*/solutions[contains(@reading, 'answer')]]\"/>\n<xsl:variable name=\"project-answer-main\"    select=\"$document-root//*[&PROJECT-FILTER;]//answer[ancestor::*/solutions[contains(@project, 'answer')]]\"/>\n<!-- Answer, Back Matter -->\n<xsl:variable name=\"inline-answer-back\"     select=\"$document-root//exercise[&INLINE-EXERCISE-FILTER;]//answer[$document-root/backmatter/solutions[contains(@inline, 'answer')]]\"/>\n<xsl:variable name=\"divisional-answer-back\" select=\"$document-root//exercises//answer[$document-root/backmatter/solutions[contains(@divisional, 'answer')]]\"/>\n<xsl:variable name=\"worksheet-answer-back\"  select=\"$document-root//worksheet//exercise//answer[$document-root/backmatter/solutions[contains(@worksheet, 'answer')]]\"/>\n<xsl:variable name=\"reading-answer-back\"    select=\"$document-root//reading-questions//answer[$document-root/backmatter/solutions[contains(@reading, 'answer')]]\"/>\n<xsl:variable name=\"project-answer-back\"    select=\"$document-root//*[&PROJECT-FILTER;]//answer[$document-root/backmatter/solutions[contains(@project, 'answer')]]\"/>\n<!-- Solution, Main Matter -->\n<xsl:variable name=\"inline-solution-main\"     select=\"$document-root//exercise[&INLINE-EXERCISE-FILTER;]//solution[ancestor::*/solutions[contains(@inline, 'solution')]]\"/>\n<xsl:variable name=\"divisional-solution-main\" select=\"$document-root//exercises//solution[ancestor::*/solutions[contains(@divisional, 'solution')]]\"/>\n<xsl:variable name=\"worksheet-solution-main\"  select=\"$document-root//worksheet//exercise//solution[ancestor::*/solutions[contains(@worksheet, 'solution')]]\"/>\n<xsl:variable name=\"reading-solution-main\"    select=\"$document-root//reading-questions//solution[ancestor::*/solutions[contains(@reading, 'solution')]]\"/>\n<xsl:variable name=\"project-solution-main\"    select=\"$document-root//*[&PROJECT-FILTER;]//solution[ancestor::*/solutions[contains(@project, 'solution')]]\"/>\n<!-- Solution, Back Matter -->\n<xsl:variable name=\"inline-solution-back\"     select=\"$document-root//exercise[&INLINE-EXERCISE-FILTER;]//solution[$document-root/backmatter/solutions[contains(@inline, 'solution')]]\"/>\n<xsl:variable name=\"divisional-solution-back\" select=\"$document-root//exercises//solution[$document-root/backmatter/solutions[contains(@divisional, 'solution')]]\"/>\n<xsl:variable name=\"worksheet-solution-back\"  select=\"$document-root//worksheet//exercise//solution[$document-root/backmatter/solutions[contains(@worksheet, 'solution')]]\"/>\n<xsl:variable name=\"reading-solution-back\"    select=\"$document-root//reading-questions//solution[$document-root/backmatter/solutions[contains(@reading, 'solution')]]\"/>\n<xsl:variable name=\"project-solution-back\"    select=\"$document-root//*[&PROJECT-FILTER;]//solution[$document-root/backmatter/solutions[contains(@project, 'solution')]]\"/>\n\n<!-- Combinations that are useful -->\n<!-- First: main matter placement vs. back matter placement -->\n<xsl:variable name=\"solutions-mainmatter\" select=\"\n$inline-hint-main    |$divisional-hint-main    |$worksheet-hint-main    |$reading-hint-main    |$project-hint-main|\n$inline-answer-main  |$divisional-answer-main  |$worksheet-answer-main  |$reading-answer-main  |$project-answer-main|\n$inline-solution-main|$divisional-solution-main|$worksheet-solution-main|$reading-solution-main|$project-solution-main\"/>\n<xsl:variable name=\"solutions-backmatter\" select=\"\n$inline-hint-back    |$divisional-hint-back    |$worksheet-hint-back    |$reading-hint-back    |$project-hint-back|\n$inline-answer-back  |$divisional-answer-back  |$worksheet-answer-back  |$reading-answer-back  |$project-answer-back|\n$inline-solution-back|$divisional-solution-back|$worksheet-solution-back|$reading-solution-back|$project-solution-back\"/>\n\n<!-- ################### -->\n<!-- Debugging Variables -->\n<!-- ################### -->\n\n<!-- Collect debugging and transition string parameters.   -->\n<!-- (1) Military style names: debug.*.*, finer purposes   -->\n<!-- (2) Minimal documentation here.                       -->\n<!-- (3) No error-checking, no deprecation plan            -->\n<!-- (4) Perhaps warnings on removal, migrate to Bad Bank  -->\n\n<!-- Look in \"publisher variables\" stylesheet for some -->\n<!-- (convenience) debugging switches that override    -->\n<!-- publisher/default settings                        -->\n\n<!-- Sometimes  xsltproc fails, and fails spectacularly,        -->\n<!-- setting this switch will dump lots of location info to the -->\n<!-- console, and perhaps will be helpful in locating a failure -->\n<!-- You might redirect stderror to a file with \"2> errors.txt\" -->\n<!-- appended to your command line                              -->\n<xsl:param name=\"debug\" select=\"'no'\" />\n<xsl:variable name=\"b-debug\" select=\"$debug = 'yes'\" />\n\n<xsl:param name=\"debug.datedfiles\" select=\"'yes'\" />\n<xsl:variable name=\"b-debug-datedfiles\" select=\"not($debug.datedfiles = 'no')\" />\n\n\n<!-- Single-use to display low-level info on whitespace manipulation -->\n<xsl:param name=\"ws.debug\" select=\"'no'\" />\n<xsl:variable name=\"wsdebug\" select=\"boolean($ws.debug = 'yes')\" />\n\n<!-- Colored boxes on panels -->\n<xsl:param name=\"sbs.debug\" select=\"'no'\" />\n<xsl:variable name=\"sbsdebug\" select=\"boolean($sbs.debug = 'yes')\" />\n\n<!-- very temporary, just for testing -->\n<xsl:param name=\"debug.exercises.forward\" select=\"''\"/>\n\n<!-- LaTeX display style in list items -->\n<xsl:param name=\"debug.displaystyle\" select=\"'yes'\"/>\n\n<!-- 2021-07-30: HTML only, experimental -->\n<!-- Switch to kill all knowls, intended to facilitate -->\n<!-- quick preview builds for use while authoring. -->\n<!-- Change to non-empty string to enable -->\n<xsl:param name=\"debug.skip-knowls\" select=\"''\"/>\n<xsl:variable name=\"b-skip-knowls\" select=\"not($debug.skip-knowls = '')\"/>\n\n<!-- MathJax SVG option (yes/no, could be generalized to -->\n<!-- specifying various options).  Totally unsupported.  -->\n<xsl:param name=\"debug.mathjax.svg\" select=\"''\"/>\n\n<!-- 2021-07-02: any non-empty string will cause project-like  -->\n<!-- to run on the same counter as other blocks. Un-supported. -->\n<xsl:param name=\"debug.project.number\" select=\"''\"/>\n\n<!-- 2022-01-30: transition to React components, get ReactJS -->\n<!-- bundles, etc, locally or globally.  'yes' to activate.  -->\n<!-- Never use both, chaos might result, not error-checked   -->\n<xsl:param name=\"debug.react.local\" select=\"'no'\"/>\n<xsl:param name=\"debug.react.global\" select=\"'no'\"/>\n<!-- three derived internal variables, primarily use latter -->\n<xsl:variable name= \"b-debug-react-local\" select=\"not($debug.react.local = 'no')\"/>\n<xsl:variable name= \"b-debug-react-global\" select=\"not($debug.react.global = 'no')\"/>\n<xsl:variable name=\"b-debug-react\" select=\"$b-debug-react-local or $b-debug-react-global\"/>\n\n<!-- HTML only, a developer must elect to use this CSS file -->\n<xsl:param name=\"debug.developer.css\" select=\"'no'\"/>\n\n<!-- A permanent string parameter to control the creation of  -->\n<!-- \"View Source\" knowls, which is a developer task, not a   -->\n<!-- publisher task (though it could be?).  So permanent, but -->\n<!-- undocumented.                                            -->\n<xsl:param name=\"debug.html.annotate\" select=\"'no'\"/>\n<xsl:variable name=\"b-view-source\" select=\"$debug.html.annotate = 'yes'\"/>\n\n<!-- LaTeX only: verify PreTeXt-computed numbers match LaTeX counter numbers -->\n<xsl:param name=\"debug.numbering.check\" select=\"''\"/>\n<xsl:variable name=\"b-debug-numbering-check\" select=\"$debug.numbering.check = 'yes'\"/>\n\n<!-- Maybe not debugging, but transitional variables -->\n\n<!-- Prior to January 2017 we treated all whitespace as -->\n<!-- significant in mixed-content nodes.  With changes  -->\n<!-- in this policy we preserve the option to process   -->\n<!-- in this older style.  This could avoid frequent    -->\n<!-- applications of low-level text-processing routines -->\n<!-- and perhaps speed up processing.  Switch here      -->\n<!-- controls possible whitespace modes.                -->\n<xsl:param name=\"whitespace\" select=\"'flexible'\" />\n<xsl:variable name=\"whitespace-style\">\n    <xsl:choose>\n        <xsl:when test=\"$whitespace='strict' or $whitespace='flexible'\">\n            <xsl:value-of select=\"$whitespace\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>\n                <xsl:text>PTX:WARNING: the whitespace parameter can be 'strict' or 'flexible', not '</xsl:text>\n                <xsl:value-of select=\"$whitespace\" />\n                <xsl:text>'.  Using the default ('flexible').</xsl:text>\n            </xsl:message>\n            <xsl:text>flexible</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- We never process using just this file, and often want  -->\n<!-- to import it elsewhere for the utilities it contains.  -->\n<!-- So there is no entry template, nor should there be.    -->\n<!-- An importing file, designed for a specific conversion, -->\n<!-- can have an entry template and use the general         -->\n<!-- \"chunking\" templates defined below.                    -->\n\n\n<!-- ###### -->\n<!-- Levels -->\n<!-- ###### -->\n\n<!-- Certain characteristics of the output can be configured    -->\n<!-- based on how deep they are in the hierachy of a structured -->\n<!-- document.  Authors specify these characteristics relative  -->\n<!-- to their own project, more specifically relative to the    -->\n<!-- logical top-level element, such as \"book\" or \"article\".    -->\n<!-- These are \"Level 0\". We normalize these numbers internally -->\n<!-- so that level 0 is the first possible division in any      -->\n<!-- document, which would be a \"part\"                          -->\n\n\n<!-- (Relative) Levels -->\n<!-- Input: an element that is a division of some kind -->\n<!-- Output: its relative level, eg \"book\" is 0        -->\n<!-- Front and back matter are faux divisions, so we   -->\n<!-- filter them out.                                  -->\n\n\n<!--\nSchematic of levels of divisions\n*  \"preface\" has 4 peers, eg, \"dedication\"\n*  \"appendix\" has two peers, \"index\" and \"colophon\"\n*  specialized divisions, e.g \"references\" can go numerous places\n\nArticle, \"section\" at level 1\n||         0            ||    1     ||     2      ||      3        ||\n||          frontmatter ||          ||            ||               ||\n|| article              || section  || subsection || subsubsection ||\n||          backmatter  || appendix || subsection || subsubsection ||\n\n\nBook (no parts), \"section\" at level 2\n||        0         ||    1     ||    2     ||     3      ||      4        ||\n||      frontmatter || preface  ||          ||            ||               ||\n|| book             || chapter  || section  || subsection || subsubsection ||\n||      backmatter  || appendix || section  || subsection || subsubsection ||\n\n\nBook (with parts), \"section\" at level 3\n||  0   ||     1       ||    2     ||    3     ||     4      ||      5        ||\n||      || frontmatter || preface  ||          ||            ||               ||\n|| book || part        || chapter  || section  || subsection || subsubsection ||\n||      || backmatter  || appendix || section  || subsection || subsubsection ||\n-->\n\n<!-- 2021-12-22: we are transitioning to selected (and eventually universal) -->\n<!-- use of levels computed during the \"assembly\" phase.  So we use careful  -->\n<!-- matches and we use careful choices for application.  At every           -->\n<!-- application we compute the \"old\" level to test for consistency.         -->\n\n<!-- ####################################################################### -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|exercises|solutions|reading-questions|references|glossary|worksheet|handout\" mode=\"new-level\">\n    <xsl:variable name=\"old-level\">\n        <xsl:apply-templates select=\".\" mode=\"level\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($old-level = @level)\">\n        <xsl:message>PTX:BUG:  development bug, new level does not match old level for \"<xsl:value-of select=\"local-name(.)\"/>\"</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n    <!-- actual value here, above is debugging -->\n    <xsl:value-of select=\"@level\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"new-level\">\n    <xsl:message>PTX:BUG:   an element (\"<xsl:value-of select=\"local-name(.)\"/>\") does not know its *new* level</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n</xsl:template>\n<!-- ####################################################################### -->\n\n <!-- Specific top-level divisions -->\n<!-- article/frontmatter, article/backmatter are faux divisions, but   -->\n<!-- will function as a terminating condition in recursive count below -->\n<xsl:template match=\"book|article|slideshow|letter|memo|article/frontmatter|article/backmatter\" mode=\"level\">\n    <xsl:value-of select=\"0\"/>\n</xsl:template>\n\n<!-- A book/part will divide the mainmatter, so a \"chapter\" is at -->\n<!-- level 2, so we also put the faux divisions at level 1 in the -->\n<!-- case of parts, to again terminate recursive count            -->\n<xsl:template match=\"book/part|book/frontmatter|book/backmatter\" mode=\"level\">\n    <xsl:choose>\n        <xsl:when test=\"$b-has-parts\">\n            <xsl:value-of select=\"1\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"0\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Remaining divisions will follow a strict progression from their    -->\n<!-- parents.  We have front matter divisions of a book first, which    -->\n<!-- will have the same level as a chapter, then traditional divisions, -->\n<!-- which may structure a chapter of a book, section of an article,    -->\n<!-- or an appendix (structured as a chapter in a book or a sections    -->\n<!-- in an article).  Then follows specialized divisions of the back    -->\n<!-- matter, which are peers of an appendix.  Finally we have the       -->\n<!-- \"specialized divisions\" of PreTeXt, which can be descendants of    -->\n<!-- chapters of books, sections of articles, or in the case of         -->\n<!-- solutions or references, children of an appendix.                  -->\n\n<xsl:template match=\"colophon|biography|dedication|acknowledgement|preface|chapter|section|subsection|subsubsection|slide|appendix|index|colophon|exercises|reading-questions|references|solutions|glossary|worksheet|handout\" mode=\"level\">\n    <xsl:variable name=\"level-above\">\n        <xsl:apply-templates select=\"parent::*\" mode=\"level\"/>\n    </xsl:variable>\n    <xsl:value-of select=\"$level-above + 1\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"level\">\n    <xsl:message>PTX:BUG:   an element (\"<xsl:value-of select=\"local-name(.)\"/>\") does not know its level</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n</xsl:template>\n\n\n<!-- Enclosing Level -->\n<!-- For any element, work up the tree to a structural -->\n<!-- node and then compute level as above              -->\n<!-- NB: to meld with previous would require a better     -->\n<!-- definition of structural, and care with introduction -->\n<xsl:template match=\"*\" mode=\"enclosing-level\">\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\".\" mode=\"is-structural\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$structural = 'true'\">\n            <xsl:apply-templates select=\".\" mode=\"level\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"enclosing-level\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Relative level offset -->\n<!-- This is the adjustment to move a relative       -->\n<!-- level onto the absolute scale                   -->\n<!--     part: 0                                     -->\n<!--     chapter, appendix: 1                        -->\n<!--     section: 2                                  -->\n<!--     subsection: 3                               -->\n<!--     subsubsection: 4                            -->\n<!-- It can be defined as the value on this absolute -->\n<!-- scale that the $document-root (book, article,   -->\n<!-- memo, etc.) would have, depending on options    -->\n<!-- for structure beneath it.  So for all divisions -->\n<!--                                                 -->\n<!-- absolute-level = (relative-)level + root-level  -->\n<!--                                                 -->\n<!-- NB: 2017-09-05, three places, keep as variable  -->\n<xsl:variable name=\"root-level\">\n    <xsl:choose>\n        <xsl:when test=\"$version-root/book/part\">-1</xsl:when>\n        <xsl:when test=\"$version-root/book/chapter\">0</xsl:when>\n        <!-- An article is rooted just above sections, -->\n        <!-- on par with chapters of a book            -->\n        <xsl:when test=\"$version-root/article\">1</xsl:when>\n        <xsl:when test=\"$version-root/slideshow\">1</xsl:when>\n        <xsl:when test=\"$version-root/letter\">1</xsl:when>\n        <xsl:when test=\"$version-root/memo\">1</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: Level offset undefined for this document type</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Names for Levels -->\n<!-- Levels (ie depths in the tree) translate to PTX element -->\n<!-- names and LaTeX divisions, which are generally the same -->\n<!-- This is useful for \"new\" sections (eg exercises) when   -->\n<!-- used with standard LaTeX sectioning and numbering       -->\n\n<!-- Input:  a relative level, ie counted from document root -->\n<!-- Output:  the LaTeX name (or close), HTML element        -->\n<!-- NB:  this is a named template, independent of context   -->\n<!-- NB: (2019-05-09) This could go to the -latex conversion -->\n<xsl:template name=\"level-to-name\">\n    <xsl:param name=\"level\" />\n    <xsl:variable name=\"normalized-level\" select=\"$level + $root-level\" />\n    <xsl:choose>\n        <xsl:when test=\"$normalized-level=0\">part</xsl:when>\n        <xsl:when test=\"$normalized-level=1\">chapter</xsl:when>\n        <xsl:when test=\"$normalized-level=2\">section</xsl:when>\n        <xsl:when test=\"$normalized-level=3\">subsection</xsl:when>\n        <xsl:when test=\"$normalized-level=4\">subsubsection</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Level computation is out-of-bounds (input as <xsl:value-of select=\"$level\" />, normalized to <xsl:value-of select=\"$normalized-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- LaTex Native Levels -->\n<!-- LaTeX has its own internal absolute numbering scheme, -->\n<!-- where sections are always level 1, while PTX uses     -->\n<!-- level 2. So while a LaTeX-specific computation, we do -->\n<!-- the translation here, so as to isolate the use of the -->\n<!-- root-level variable in this -common file.             -->\n<xsl:template name=\"level-to-latex-level\">\n    <xsl:param name=\"level\" />\n    <xsl:value-of select=\"$level + $root-level -1\" />\n</xsl:template>\n\n<!-- ########### -->\n<!-- Mathematics -->\n<!-- ########### -->\n\n<!-- Mathematics authored in LaTeX syntax should be       -->\n<!-- independent of output format.  Despite MathJax's     -->\n<!-- broad array of capabilities, there are still some    -->\n<!-- differences which we need to accomodate via abstract -->\n<!-- templates.  Those abstractions are documented here   -->\n<!-- and also where implemented.  Elsewhere are low-level -->\n<!-- manipulations of whitespace in processed versions    -->\n<!-- of LaTeX output                                      -->\n\n\n<!-- Inline Mathematics (\"m\") -->\n<!--                                                     -->\n<!-- This is fairly simple.  Differences are             -->\n<!--   (1) Some conversions require different delimiters -->\n<!--   (2) We adjust punctuation for HTML, but not Latex -->\n<!--                                                     -->\n<!-- Abstract Templates                                  -->\n<!--                                                     -->\n<!-- (1) named \"inline-math-wrapper\"                     -->\n<!--       Provides the delimiters for inline math       -->\n<!--       Stub warnings follow below                    -->\n<!-- (2) get-clause-punctuation                          -->\n<!--       Look at next node, and if a text node,        -->\n<!--       then look for leading punctuation, and        -->\n<!--       bring into math with \\text() wrapper          -->\n<!--       when  $math.punctuation.include  indicates    -->\n\n<!-- $debug.displaystyle defaults to yes for testing -->\n\n<!-- Warn about bare special characters inside \\text{} in math.      -->\n<!-- The textmacros extension treats # % &amp; as special, so they   -->\n<!-- must be escaped as \\# \\% \\&amp; to produce literal glyphs.      -->\n<!-- We walk through each \\text{...} segment via recursion and check -->\n<!-- the content up to the next } for bare special characters.       -->\n<!-- Imperfect with nested braces, but catches common cases.         -->\n<xsl:template name=\"warn-text-special-characters\">\n    <xsl:variable name=\"math-text\" select=\"string(.)\"/>\n    <xsl:if test=\"contains($math-text, '\\text{')\">\n        <xsl:call-template name=\"check-text-segments\">\n            <xsl:with-param name=\"remaining\" select=\"$math-text\"/>\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Recursive walk through \\text{...} segments of a LaTeX string -->\n<xsl:template name=\"check-text-segments\">\n    <xsl:param name=\"remaining\"/>\n    <xsl:if test=\"contains($remaining, '\\text{')\">\n        <!-- content after \\text{ up to next } -->\n        <xsl:variable name=\"after-text\" select=\"substring-after($remaining, '\\text{')\"/>\n        <xsl:variable name=\"inside\" select=\"substring-before($after-text, '}')\"/>\n        <!-- check for bare # (present but \\# is not) -->\n        <xsl:if test=\"contains($inside, '#') and not(contains($inside, '\\#'))\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING:   a bare \"#\" inside \\text{} in math must be escaped as \"\\#\"</xsl:text>\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>               </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:message>\n        </xsl:if>\n        <!-- check for bare % -->\n        <xsl:if test=\"contains($inside, '%') and not(contains($inside, '\\%'))\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING:   a bare \"%\" inside \\text{} in math must be escaped as \"\\%\"</xsl:text>\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>               </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:message>\n        </xsl:if>\n        <!-- check for bare & -->\n        <xsl:if test=\"contains($inside, '&amp;') and not(contains($inside, '\\&amp;'))\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING:   a bare \"&amp;\" inside \\text{} in math must be escaped as \"\\&amp;\"</xsl:text>\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>               </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:message>\n        </xsl:if>\n        <!-- recurse on remainder after this \\text{...} -->\n        <xsl:call-template name=\"check-text-segments\">\n            <xsl:with-param name=\"remaining\" select=\"$after-text\"/>\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"m\">\n    <xsl:call-template name=\"warn-text-special-characters\"/>\n    <!-- wrap in math delimiters -->\n    <xsl:call-template name=\"inline-math-wrapper\">\n        <xsl:with-param name=\"math\">\n            <!-- Build a textual version of the latex,  -->\n            <!-- applying the rare templates allowed,   -->\n            <!-- save for minor manipulation later.     -->\n            <!-- Note: generic text() template here in  -->\n            <!-- -common should always pass through the -->\n            <!-- text nodes within \"m\" with no changes  -->\n            <xsl:variable name=\"raw-latex\">\n                <xsl:choose>\n                    <xsl:when test=\"ancestor::static/parent::webwork-reps\">\n                        <xsl:apply-templates select=\"text()|var\" />\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:apply-templates select=\"text()|eval|fillin\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n                <!-- look ahead to absorb immediate clause-ending punctuation   -->\n                <!-- this is useful for HTML/MathJax to prevent bad line breaks -->\n                <!-- The template here in -common is generally useful, but      -->\n                <!-- for LaTeX we override to be a no-op, since not necessary   -->\n                <xsl:apply-templates select=\".\" mode=\"get-clause-punctuation\" />\n            </xsl:variable>\n            <!-- Prefix will normally be empty and have no effect.  We also have  -->\n            <!-- an undocumented switch to totally kill the possibility entirely. -->\n            <!-- This was added to support testing of braille output.             -->\n            <xsl:if test=\"not($debug.displaystyle = 'no')\">\n                <xsl:apply-templates select=\".\"  mode=\"display-style-prefix\"/>\n            </xsl:if>\n            <!-- we clean whitespace that is irrelevant to LaTeX so that we -->\n            <!--   (1) avoid LaTeX compilation errors                       -->\n            <!--   (2) avoid spurious blank lines leading to new paragraphs -->\n            <!--   (3) provide human-readable source of high quality        -->\n            <!-- sanitize-latex template does not provide a final newline   -->\n            <!-- and we do not add one here either, since it is inline math -->\n            <!-- MathJax is more tolerant, but readability is still useful  -->\n            <xsl:call-template name=\"sanitize-latex\">\n                <xsl:with-param name=\"text\" select=\"$raw-latex\" />\n            </xsl:call-template>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- This template needs an override in each output mode. -->\n<xsl:template name=\"inline-math-wrapper\">\n    <xsl:param name=\"math\"/>\n    <xsl:message>PTX:BUG:   the \"wrapper\" modal template for inline math needs an implementation in the current conversion</xsl:message>\n    <xsl:text>[[[</xsl:text>\n    <xsl:value-of select=\"$math\"/>\n    <xsl:text>]]]</xsl:text>\n</xsl:template>\n\n\n<!-- Display Style LaTeX markup for inline math -->\n<!--                                                     -->\n<!-- If the current context \"m\" is a child of an \"li\",   -->\n<!-- perhaps with an intervening \"p\", then we            -->\n<!-- contemplate injecting a \\displaystyle, if *the \"m\"  -->\n<!-- is the only content of the \"li\"*.-->\n<xsl:template match=\"m\" mode=\"display-style-prefix\">\n    <!-- We first obtain a parent \"li\" (or come away    -->\n    <!-- empty-handed). Booleans help readability later -->\n    <xsl:variable name=\"parent-li\" select=\"boolean(parent::li)\"/>\n    <xsl:variable name=\"grandparent-li\" select=\"boolean(parent::p/parent::li)\"/>\n    <xsl:variable name=\"the-list-item\" select=\"parent::li|parent::p/parent::li\"/>\n    <!-- If we have inline math inside a list item then we   -->\n    <!-- can collect all of non-whitespace text() nodes.     -->\n    <!-- We are only interested in the case of a single \"p\". -->\n    <xsl:variable name=\"actual-text\">\n        <xsl:if test=\"$the-list-item\">\n            <xsl:choose>\n                <xsl:when test=\"$parent-li\">\n                    <xsl:for-each select=\"$the-list-item/text()\">\n                        <xsl:value-of select=\"normalize-space(.)\"/>\n                    </xsl:for-each>\n                </xsl:when>\n                <xsl:when test=\"$grandparent-li\">\n                    <xsl:for-each select=\"$the-list-item/p[1]/text()\">\n                        <xsl:value-of select=\"normalize-space(.)\"/>\n                    </xsl:for-each>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:if>\n    </xsl:variable>\n    <!-- Potential prefix with \\displaystyle                        -->\n    <!--                                                            -->\n    <!-- (1) If there is not a list item, the next two tests fail.  -->\n    <!-- (2) If there is any significant text() the tests will fail.-->\n    <!-- (3) If there is a parent li, or li/p, the tests will fail  -->\n    <!--     if there are more than two \"p\" or if the content       -->\n    <!--     contains other markup (elements) other elements        -->\n    <!--     besides just the lone \"m\".                             -->\n    <!--                                                            -->\n    <!-- So we improve the appearance of a lone \"m\" inside an \"li\". -->\n    <!-- Authors who do not like this can add innocuous content.    -->\n    <!--  -->\n    <!-- The two \"when\" are disjoint and both may be false.  They   -->\n    <!-- produce the same result.  This is meant to be more         -->\n    <!-- readable than a big \"or\".  Note: this could be wrapped in  -->\n    <!-- a big \"if\" based on the common $actual-text.               -->\n    <!-- The result of this template is \"\\displaystyle \" or \"\"      -->\n    <xsl:choose>\n        <xsl:when test=\"$parent-li and ($actual-text = '') and (count($the-list-item/*) = 1)\">\n            <xsl:text>\\displaystyle </xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$grandparent-li and ($actual-text = '') and (count($the-list-item/p) = 1) and (count($the-list-item/p[1]/*) = 1)\">\n            <xsl:text>\\displaystyle </xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Displayed Multi-Line Math (\"md\", with \"mrow\" children)         -->\n<!-- \"md\" is a container for  \"mrow\" and intermediate \"intertext\".  -->\n<!-- Note that the pre-processor guarantees that every \"md\"         -->\n<!-- is structured with \"mrow\" and optionally \"intertext\".          -->\n<!--                                                                -->\n<!-- Abstract Templates                                             -->\n<!--                                                                -->\n<!-- (1) display-math-visual-blank-line, a named template           -->\n<!--       Just a line in source to help visually (% for LaTeX)     -->\n<!--                                                                -->\n<!-- (2) display-math-wrapper                                       -->\n<!--       An enclosing environment for any displayed mathematics   -->\n<!--       Necessary for HTML, no-op for LaTeX                      -->\n\n<!-- Default implementationis a no-op, can be overidden -->\n<xsl:template name=\"display-math-visual-blank-line\"/>\n\n<!-- All displayed mathematics gets wrapped by  -->\n<!-- an abstract template, a necessity for HTML -->\n<!-- output.  By default, just a copy machine.  -->\n<xsl:template match=\"md[mrow]\" mode=\"display-math-wrapper\">\n    <xsl:param name=\"content\" />\n    <xsl:value-of select=\"$content\" />\n</xsl:template>\n\n<!-- The HTML conversion accomodates duplicated content (i.e. knowls) -->\n<!-- with an elaborate scheme.  The mode=\"body\" template is central,  -->\n<!-- so we run with that here.                                        -->\n<xsl:template match=\"md[mrow]\" mode=\"body\">\n    <!-- block-type parameter is ignored, since the          -->\n    <!-- representation never varies, no heading, no wrapper -->\n    <xsl:param name=\"block-type\" />\n    <!-- If original content, or a duplication -->\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- If the only content of a knowl then we do not -->\n    <!-- include adjacent (trailing) punctuation,      -->\n    <!-- since it is meaningless                       -->\n    <xsl:param name=\"b-top-level\" select=\"false()\" />\n    <!-- Optionally, the \\begin{} (the \"open\") or the \\end{}  -->\n    <!-- (the \"close\") can be suppressed.  This only happens  -->\n    <!-- when making LaTeX output, and only when un-exploding -->\n    <!-- an \"md\" that has \"intertext\" in it.  So the default  -->\n    <!-- values are true, and most conversions can safely     -->\n    <!-- ignore the use of these parameters.                  -->\n    <xsl:param name=\"b-needs-open\"  select=\"true()\"/>\n    <xsl:param name=\"b-needs-close\" select=\"true()\"/>\n    <!-- When applied by the LaTeX conversion to \"put back    -->\n    <!-- together\" an exploded \"md\" with \"intertext\", we need -->\n    <!-- to know if tags are necessary.                       -->\n    <xsl:param name=\"b-latex-intertext-needs-tags\" select=\"false()\"/>\n\n    <!-- Look across all mrow for the necessity of tags. We do not  -->\n    <!-- flag local tags as being numbered, but this affects        -->\n    <!-- LaTeX environment construction, so we need to consider it. -->\n    <!-- This just allows for slightly nicer human-readable source. -->\n    <xsl:variable name=\"b-needs-tags\" select=\"mrow[@pi:numbered = 'yes' or @tag] or $b-latex-intertext-needs-tags\" />\n    <xsl:variable name=\"complete-latex\">\n        <xsl:if test=\"$b-needs-open\">\n            <!-- we provide a newline for visual appeal -->\n            <xsl:call-template name=\"display-math-visual-blank-line\" />\n            <xsl:text>\\begin{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"displaymath-alignment\">\n                <xsl:with-param name=\"b-needs-tags\" select=\"$b-needs-tags\" />\n            </xsl:apply-templates>\n            <xsl:text>}</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"alignat-columns\" />\n            <!-- leading whitespace not present, or stripped -->\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"mrow|intertext\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"b-top-level\" select=\"$b-top-level\" />\n            <xsl:with-param name=\"b-needs-tags\" select=\"$b-needs-tags\" />\n        </xsl:apply-templates>\n        <!-- each mrow provides a newline, so unlike  -->\n        <!-- above, we do not need to add one here    -->\n        <xsl:if test=\"$b-needs-close\">\n            <xsl:text>\\end{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"displaymath-alignment\">\n                <xsl:with-param name=\"b-needs-tags\" select=\"$b-needs-tags\" />\n            </xsl:apply-templates>\n            <xsl:text>}</xsl:text>\n            <!-- We must return to a paragraph, so                     -->\n            <!-- we can add an unprotected newline                     -->\n            <!-- Note: clause-ending punctuation has been absorbed,    -->\n            <!-- so is not left orphaned at the start of the next line -->\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:apply-templates select=\".\" mode=\"display-math-wrapper\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"content\" select=\"$complete-latex\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Rows of Displayed Multi-Line Math (\"mrow\") -->\n<!-- Each mrow finishes with a newline, for visual output      -->\n<!-- We perform LaTeX sanitization on each \"mrow\" here;        -->\n<!--                                                           -->\n<!-- Abstract Templates                                        -->\n<!--                                                           -->\n<!-- (1) display-page-break                                    -->\n<!--       LaTeX scheme, no-op here as base                    -->\n<!-- (2) tag                                                   -->\n<!--       on *rows* of multiline                              -->\n\n<!-- Default implementations of specialized templates -->\n<xsl:template match=\"mrow\" mode=\"display-page-break\"/>\n\n<xsl:template match=\"mrow\" mode=\"tag\">\n     <xsl:message>PTX:BUG:   the modal \"tag\" template needs an implementation for \"mrow\" in the current conversion</xsl:message>\n</xsl:template>\n\n<xsl:template match=\"mrow\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"b-top-level\" select=\"false()\" />\n    <xsl:param name=\"b-needs-tags\" />\n    <xsl:call-template name=\"warn-text-special-characters\"/>\n    <!-- Build a textual version of the latex,       -->\n    <!-- applying the rare templates allowed,        -->\n    <!-- save for minor manipulation later.          -->\n    <!-- Note: generic text() template here in       -->\n    <!-- -common should always pass through the text -->\n    <!-- nodes within \"mrow\" with no changes         -->\n    <xsl:variable name=\"raw-latex\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::webwork\">\n                <xsl:apply-templates select=\"text()|xref|var\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"text()|xref|eval|fillin\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- pull left for visual fidelity -->\n    <xsl:variable name=\"sanitized-latex\">\n        <xsl:call-template name=\"sanitize-latex\">\n            <xsl:with-param name=\"text\" select=\"$raw-latex\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- maybe there is clause-ending punctuation, and maybe we want it -->\n    <xsl:variable name=\"potential-punctuation\">\n        <xsl:if test=\"not(following-sibling::*[self::mrow or self::intertext])\">\n            <!-- look ahead to absorb immediate clause-ending punctuation         -->\n            <!-- for original versions, and as a child of a duplicated element    -->\n            <!-- but not in a duplicate that is entirely the display math         -->\n            <!-- pass the context as enclosing environment (parent::*, md or mdn) -->\n            <xsl:if test=\"$b-original or not($b-top-level)\">\n                <xsl:apply-templates select=\"parent::*\" mode=\"get-clause-punctuation\" />\n            </xsl:if>\n        </xsl:if>\n    </xsl:variable>\n    <!-- Identify if the sanitized LaTeX finishes a \"cases\" environment -->\n    <xsl:variable name=\"b-ends-with-cases\"\n                  select=\"substring($sanitized-latex, string-length($sanitized-latex) - 10) = '\\end{cases}'\"/>\n    <!-- output the latex and the punctuation -->\n    <xsl:choose>\n        <!-- effectively slide the punctuation inside the \"cases\" environment -->\n        <!-- NB: condition on non-empty punctuation could be dropped and the  -->\n        <!-- rearrangement would effective be idential to the \"otherwise\"     -->\n        <!-- clause, but it is clearer to include the condition and do the    -->\n        <!-- \"otherwise\" more of the time.                                    -->\n        <xsl:when test=\"not($potential-punctuation = '') and $b-ends-with-cases\">\n            <xsl:value-of select=\"substring($sanitized-latex, 1, string-length($sanitized-latex) - 11)\"/>\n            <xsl:value-of select=\"$potential-punctuation\"/>\n            <xsl:text>\\end{cases}</xsl:text>\n        </xsl:when>\n        <!-- The usual case, where punctuation has been stripped elsewhere -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$sanitized-latex\"/>\n            <xsl:value-of select=\"$potential-punctuation\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- If we build a pure no-tag environment, then we add nothing      -->\n    <!-- Otherwise, we are in a non-starred environment and get a number -->\n    <!-- unless we \"\\notag\" it, which is the better choice under AMSmath -->\n    <!-- The modal \"tag\" template is more complicated than just forming  -->\n    <!-- a tag, it is everything associated with an equation, like a     -->\n    <!-- \\label{} for LaTeX, and also for HTML/MathJax.  It does depend  -->\n    <!-- on if the display is the original version or not                -->\n    <!-- http://tex.stackexchange.com/questions/48965                    -->\n    <!-- The @tag attribute trumps almost everything                     -->\n    <xsl:choose>\n        <xsl:when test=\"not($b-needs-tags)\" />\n        <!-- \"local\" tag is not numbered, but needs treatment -->\n        <xsl:when test=\"(@pi:numbered = 'yes') or @tag\">\n            <xsl:apply-templates select=\".\" mode=\"tag\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\notag</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- we have a discretionary page break scheme for LaTeX -->\n    <xsl:if test=\"following-sibling::mrow\">\n       <xsl:text>\\\\</xsl:text>\n       <xsl:apply-templates select=\".\" mode=\"display-page-break\" />\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- We convert a token into the LaTeX for a symbol     -->\n<!-- for use as a local tag. Since we need this to work -->\n<!-- in MathJax, we need symbols that are available in  -->\n<!-- its limited set of supported commands.  Generally, -->\n<!-- AMSMath symbols are the best description.  See     -->\n<!-- http://docs.mathjax.org/en/latest/tex.html         -->\n<!--     #supported-latex-commands                      -->\n<!-- Note: \\tag{} expects text mode                     -->\n<!-- More? \\checkmark, \\bullet?                         -->\n<!-- TODO: if some text symbols are used, perhaps from  -->\n<!-- the textcomp package, then math delimiters will    -->\n<!-- move down into the \"when\" parts of the \"choose\"    -->\n<xsl:template match=\"@tag\" mode=\"tag-symbol\">\n    <xsl:choose>\n        <!-- Stars -->\n        <xsl:when test=\". = 'star'\">\n            <xsl:call-template name=\"tag-star\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'dstar'\">\n            <xsl:call-template name=\"tag-star\"/>\n            <xsl:call-template name=\"tag-star\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'tstar'\">\n            <xsl:call-template name=\"tag-star\"/>\n            <xsl:call-template name=\"tag-star\"/>\n            <xsl:call-template name=\"tag-star\"/>\n        </xsl:when>\n        <!-- Dagger -->\n        <xsl:when test=\". = 'dagger'\">\n            <xsl:call-template name=\"tag-dagger\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'ddagger'\">\n            <xsl:call-template name=\"tag-dagger\"/>\n            <xsl:call-template name=\"tag-dagger\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'tdagger'\">\n            <xsl:call-template name=\"tag-dagger\"/>\n            <xsl:call-template name=\"tag-dagger\"/>\n            <xsl:call-template name=\"tag-dagger\"/>\n        </xsl:when>\n        <!-- Double Dagger -->\n        <xsl:when test=\". = 'daggerdbl'\">\n            <xsl:call-template name=\"tag-daggerdbl\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'ddaggerdbl'\">\n            <xsl:call-template name=\"tag-daggerdbl\"/>\n            <xsl:call-template name=\"tag-daggerdbl\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'tdaggerdbl'\">\n            <xsl:call-template name=\"tag-daggerdbl\"/>\n            <xsl:call-template name=\"tag-daggerdbl\"/>\n            <xsl:call-template name=\"tag-daggerdbl\"/>\n        </xsl:when>\n        <!-- Hash -->\n        <xsl:when test=\". = 'hash'\">\n            <xsl:call-template name=\"tag-hash\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'dhash'\">\n            <xsl:call-template name=\"tag-hash\"/>\n            <xsl:call-template name=\"tag-hash\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'thash'\">\n            <xsl:call-template name=\"tag-hash\"/>\n            <xsl:call-template name=\"tag-hash\"/>\n            <xsl:call-template name=\"tag-hash\"/>\n        </xsl:when>\n        <!-- Maltese -->\n        <xsl:when test=\". = 'maltese'\">\n            <xsl:call-template name=\"tag-maltese\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'dmaltese'\">\n            <xsl:call-template name=\"tag-maltese\"/>\n            <xsl:call-template name=\"tag-maltese\"/>\n        </xsl:when>\n        <xsl:when test=\". = 'tmaltese'\">\n            <xsl:call-template name=\"tag-maltese\"/>\n            <xsl:call-template name=\"tag-maltese\"/>\n            <xsl:call-template name=\"tag-maltese\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ####################### -->\n<!-- Display Math Alignments -->\n<!-- ####################### -->\n\n<!-- We sniff around for ampersands, to decide between \"align\"    -->\n<!-- and \"gather\", plus an asterisk for the no-tag version        -->\n<!-- AMSMath has no easy way to make a one-off number within      -->\n<!-- the *-form, so we lean toward always using the un-starred    -->\n<!-- versions, except when we flag tags as needed inside an \"md\"  -->\n<!-- Template is applied twice (begin/end) and its use ensures    -->\n<!-- consistency.                                                 -->\n<xsl:template match=\"md[mrow]\" mode=\"displaymath-alignment\">\n    <xsl:param name=\"b-needs-tags\" select=\"true()\" />\n    <xsl:choose>\n        <!-- look for @alignment override, possibly bad -->\n        <xsl:when test=\"@alignment='gather'\">\n            <xsl:text>gather</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@alignment='alignat'\">\n            <xsl:text>alignat</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@alignment='align'\">\n            <xsl:text>align</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@alignment\">\n            <xsl:message>PTX:ERROR: display math @alignment attribute \"<xsl:value-of select=\"@alignment\" />\" is not recognized (should be \"align\", \"gather\", \"alignat\")</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            <xsl:text>bad-alignment-choice</xsl:text>\n        </xsl:when>\n        <!-- perhaps authored as obviously one-line (no alignment) -->\n        <!-- and manipulated into an  md/@mrow  form               -->\n        <xsl:when test=\"@pi:authored-one-line\">\n            <xsl:text>equation</xsl:text>\n        </xsl:when>\n        <!-- sniff for alignment specifications    -->\n        <!-- this can be easily fooled, eg matrices-->\n        <xsl:when test=\"contains(., '&amp;') or contains(., '\\amp')\">\n            <xsl:text>align</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>gather</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- if absolutely no numbers and no local tags,   -->\n    <!-- we'll economize in favor of human-readability -->\n    <xsl:if test=\"not($b-needs-tags)\">\n        <xsl:text>*</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- With alignment=\"alignat\" we need the number of columns     -->\n<!-- as an argument, complete with the LaTeX group (braces)     -->\n<!-- Mostly we call this regularly, and it usually does nothing -->\n<xsl:template match=\"md[mrow]\" mode=\"alignat-columns\" />\n\n<xsl:template match=\"md[mrow and (@alignment='alignat')]\" mode=\"alignat-columns\">\n    <xsl:variable name=\"number-equation-columns\">\n        <xsl:choose>\n            <!-- override first -->\n            <xsl:when test=\"@alignat-columns\">\n                <!-- MathJax chokes on spaces here -->\n                <xsl:value-of select=\"normalize-space(@alignat-columns)\" />\n            </xsl:when>\n            <!-- count ampersands, compute columns -->\n            <xsl:otherwise>\n                <xsl:variable name=\"number-ampersands\">\n                    <xsl:apply-templates select=\"mrow[1]\" mode=\"max-ampersands\" />\n                </xsl:variable>\n                <!-- amps + 1, divide by 2, round up; 0.5 becomes 0.25, round behaves -->\n                <xsl:value-of select=\"round(($number-ampersands + 1.5) div 2)\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$number-equation-columns\" />\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- count ampersands in a string              -->\n<!-- both as LaTeX macro and as bare character -->\n<xsl:template name=\"count-ampersands\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"amp-char\">\n        <xsl:call-template name=\"count-substring\">\n            <xsl:with-param name=\"text\" select=\"$text\" />\n            <xsl:with-param name=\"word\" select=\"'&amp;'\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:variable name=\"amp-macro\">\n        <xsl:call-template name=\"count-substring\">\n            <xsl:with-param name=\"text\" select=\"$text\" />\n            <xsl:with-param name=\"word\" select=\"'\\amp'\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:value-of select=\"$amp-char + $amp-macro\" />\n</xsl:template>\n\n<!-- Recurse through \"mrow\"s of a presumed \"md\"   -->\n<!-- counting ampersands and tracking the maximum -->\n<xsl:template match=\"mrow\" mode=\"max-ampersands\">\n    <xsl:param name=\"max\" select=\"0\"/>\n    <!-- build string/text content -->\n    <xsl:variable name=\"row-content\">\n        <xsl:for-each select=\"text()\">\n            <xsl:value-of select=\".\" />\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- count row's ampersands -->\n    <xsl:variable name=\"ampersands\">\n        <xsl:call-template name=\"count-ampersands\">\n            <xsl:with-param name=\"text\" select=\"$row-content\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- recalculate maximum -->\n    <xsl:variable name=\"new-max\">\n        <xsl:choose>\n            <xsl:when test=\"$ampersands > $max\">\n                <xsl:value-of select=\"$ampersands\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$max\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- recurse or report -->\n    <xsl:variable name=\"following-mrows\" select=\"following-sibling::mrow\" />\n    <xsl:choose>\n        <xsl:when test=\"$following-mrows\">\n            <xsl:apply-templates select=\"$following-mrows[1]\" mode=\"max-ampersands\">\n                <xsl:with-param name=\"max\" select=\"$new-max\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$new-max\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Intertext -->\n<!-- ######### -->\n\n<!-- Unless overridden somehow, an internal \"pi:intertext\" element -->\n<!-- (coming from the \"intertext-exploder\" mode in -assembly) just -->\n<!-- needs a full-on \"xsl:apply-templates\"                         -->\n<xsl:template match=\"pi:intertext\">\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- #################### -->\n<!-- LaTeX Image Preamble -->\n<!-- #################### -->\n\n<!-- A docinfo may have latex-image-preamble without a  -->\n<!-- @syntax. There should only be one, but schema does -->\n<!-- not enforce that. It is stored here as a variable  -->\n<!-- (possibly empty) to facilitate having other        -->\n<!-- latex-image-preamble that do have special @syntax. -->\n<xsl:variable name=\"latex-image-preamble\">\n    <xsl:choose>\n        <xsl:when test=\"$docinfo/latex-image-preamble[not(@syntax)]\">\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\" select=\"$docinfo/latex-image-preamble[not(@syntax)][1]\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ############## -->\n<!-- LaTeX Preamble -->\n<!-- ############## -->\n\n<!-- We pick up user-supplied macros, and         -->\n<!-- add three of our own that are useful         -->\n<!-- for avoiding conflicts with XML reserved     -->\n<!-- characters.  Even though MathJax defines     -->\n<!-- \\lt  and  \\gt  we go ahead and do it         -->\n<!-- anyway for completeness.  We add these       -->\n<!-- last with a \\newcommand to minimize the      -->\n<!-- possibility author defines them earlier      -->\n<!-- This should be the primary and only          -->\n<!-- interface to the macros list, though         -->\n<!-- it might need some extra                     -->\n<!-- conversion-specific wrapping in use          -->\n<!-- and it may be necessary/desirable to replace -->\n<!-- newline line-endings with something like {}  -->\n<!-- First, we move left-margin as far left as    -->\n<!-- possible, then strip all comments,  without  -->\n<!-- stripping too much, such as useful \\%        -->\n<!-- We save in a variable, so only here once     -->\n<!-- NB: the \\lt definition is removed in the     -->\n<!-- Jupyter conversion, since the Jupyter        -->\n<!-- \"print to LaTeX\" converter will also define  -->\n<!-- it in order to cover for MathJax's decision  -->\n<!-- to make the definition. So if *any* edit is  -->\n<!-- made here, then the \"replace()\" there will   -->\n<!-- need to be edited to match.                  -->\n<xsl:variable name=\"latex-macros\">\n    <xsl:variable name=\"latex-left-justified\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\">\n                <xsl:value-of select=\"$docinfo/macros\" />\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:call-template name=\"latex-macro-first-percent\">\n        <xsl:with-param name=\"latex-code\">\n            <xsl:value-of select=\"$latex-left-justified\" />\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\\newcommand{\\lt}{&lt;}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\gt}{&gt;}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\amp}{&amp;}&#xa;</xsl:text>\n</xsl:variable>\n\n<!-- Recursively, line-by-line, find first %                             -->\n<!-- If preceded by \\, then output and reform with rest of line          -->\n<!-- If a naked %, then drop rest of line, tidy up and move to next line -->\n<!-- Every output line ends with a newline                               -->\n<xsl:template name=\"latex-macro-first-percent\">\n    <xsl:param name=\"latex-code\" />\n    <xsl:variable name=\"first-line\" select=\"concat(substring-before($latex-code, '&#xA;'), '&#xA;')\" />\n    <xsl:variable name=\"remainder\" select=\"substring-after($latex-code, '&#xA;')\" />\n    <xsl:choose>\n        <!-- done, quit recursing -->\n        <xsl:when test=\"not($latex-code)\" />\n        <!-- first potential comment character-->\n        <xsl:when test=\"contains($first-line, '%')\">\n            <xsl:variable name=\"initial\" select=\"substring-before($first-line, '%')\" />\n            <xsl:choose>\n                <xsl:when test=\"substring($initial, string-length($initial))='\\'\">\n                    <!-- false positive, output symptom and reorganize -->\n                    <xsl:value-of select=\"concat($initial, '%')\" />\n                    <xsl:call-template name=\"latex-macro-first-percent\">\n                        <xsl:with-param name=\"latex-code\" select=\"concat(substring-after($first-line, '%'), $remainder)\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- comment character in first column is no line        -->\n                    <!-- else, content prior, with stripped newline restored -->\n                    <xsl:if test=\"$initial\">\n                        <xsl:value-of select=\"concat($initial, '&#xA;')\" />\n                    </xsl:if>\n                    <!-- move on to remaining lines -->\n                    <xsl:call-template name=\"latex-macro-first-percent\">\n                        <xsl:with-param name=\"latex-code\" select=\"$remainder\" />\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- no action, just echo and work the rest -->\n            <xsl:value-of select=\"$first-line\" />\n            <xsl:call-template name=\"latex-macro-first-percent\">\n                <xsl:with-param name=\"latex-code\" select=\"substring-after($latex-code, '&#xA;')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- For a \"fillin\" within math.                                       -->\n<!-- First, define math fillin macro that is common to LaTeX, MathJax. -->\n<!-- Then below, template for matching on each \"fillin\".               -->\n<xsl:template name=\"fillin-math\">\n    <xsl:choose>\n        <xsl:when test=\"$fillin-math-style = 'underline'\">\n            <xsl:text>\\newcommand{\\fillinmath}[1]{\\mathchoice</xsl:text>\n            <xsl:text>{\\underline{\\displaystyle     \\phantom{\\ \\,#1\\ \\,}}}</xsl:text>\n            <xsl:text>{\\underline{\\textstyle        \\phantom{\\ \\,#1\\ \\,}}}</xsl:text>\n            <xsl:text>{\\underline{\\scriptstyle      \\phantom{\\ \\,#1\\ \\,}}}</xsl:text>\n            <xsl:text>{\\underline{\\scriptscriptstyle\\phantom{\\ \\,#1\\ \\,}}}}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$fillin-math-style = 'box'\">\n            <xsl:text>\\newcommand{\\fillinmath}[1]{\\mathchoice</xsl:text>\n            <xsl:text>{\\boxed{\\displaystyle     \\phantom{\\,#1\\,}}}</xsl:text>\n            <xsl:text>{\\boxed{\\textstyle        \\phantom{\\,#1\\,}}}</xsl:text>\n            <xsl:text>{\\boxed{\\scriptstyle      \\phantom{\\,#1\\,}}}</xsl:text>\n            <xsl:text>{\\boxed{\\scriptscriptstyle\\phantom{\\,#1\\,}}}}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$fillin-math-style = 'shade'\">\n            <xsl:text>\\definecolor{fillinmathshade}{gray}{0.9}&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\fillinmath}[1]{\\mathchoice</xsl:text>\n            <xsl:text>{\\colorbox{fillinmathshade}{$\\displaystyle     \\phantom{\\,#1\\,}$}}</xsl:text>\n            <xsl:text>{\\colorbox{fillinmathshade}{$\\textstyle        \\phantom{\\,#1\\,}$}}</xsl:text>\n            <xsl:text>{\\colorbox{fillinmathshade}{$\\scriptstyle      \\phantom{\\,#1\\,}$}}</xsl:text>\n            <xsl:text>{\\colorbox{fillinmathshade}{$\\scriptscriptstyle\\phantom{\\,#1\\,}$}}}&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"m/fillin|mrow/fillin\">\n    <xsl:choose>\n        <xsl:when test=\"@fill\">\n            <xsl:text>\\fillinmath{</xsl:text>\n            <xsl:value-of select=\"@fill\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@characters\">\n            <xsl:text>\\fillinmath{</xsl:text>\n                <xsl:call-template name=\"duplicate-string\">\n                    <xsl:with-param name=\"count\" select=\"@characters\" />\n                    <xsl:with-param name=\"text\"  select=\"'X'\" />\n                </xsl:call-template>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\fillinmath{XXX}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- For a fillin (not in math) that describes itself as an array -->\n<xsl:template match=\"fillin\" mode=\"fillin-array\">\n    <xsl:variable name=\"rows\">\n        <xsl:choose>\n            <xsl:when test=\"@rows\">\n                <xsl:value-of select=\"@rows\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"1\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"cols\">\n        <xsl:choose>\n            <xsl:when test=\"@cols\">\n                <xsl:value-of select=\"@cols\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"1\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:if test=\"$rows &gt; 1 or $cols &gt; 1\">\n        <xsl:text> (</xsl:text>\n        <xsl:value-of select=\"$rows\"/>\n        <xsl:call-template name=\"nbsp-character\"/>\n        <xsl:call-template name=\"times-character\"/>\n        <xsl:call-template name=\"nbsp-character\"/>\n        <xsl:value-of select=\"$cols\"/>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'array'\"/>\n        </xsl:apply-templates>\n        <xsl:text>)</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Sage Cells -->\n<!-- Contents are text manipulations (below)     -->\n<!-- Two abstract named templates in other files -->\n<!-- provide the necessary wrapping, per format  -->\n\n<!-- Utility: Class Names -->\n<!-- This is the class we place on \"pre\" elements to have them configure    -->\n<!-- as Sage cells.  This is given in the Javascript call in the head, and  -->\n<!-- on the actual instances of Sage cells.  So this provides consistency.  -->\n<!-- Passing an empty string for the language is historical, and could      -->\n<!-- perhaps be unwound to be the default language in the parameter.        -->\n<xsl:template name=\"sagecell-class-name\">\n    <xsl:param name=\"language-attribute\"/>\n    <xsl:param name=\"b-autoeval\"/>\n\n    <xsl:text>sagecell</xsl:text>\n    <xsl:text>-</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$language-attribute=''\">\n            <xsl:text>sage</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$language-attribute\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:if test=\"$b-autoeval\">\n        <xsl:text>-</xsl:text>\n        <xsl:text>autoeval</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Type; empty element                      -->\n<!-- Provide an empty cell to scribble in     -->\n<!-- Or break text cells in the Sage notebook -->\n<!-- This cell does respect @language         -->\n<xsl:template match=\"sage[not(input) and not(output) and not(@type)]\">\n    <xsl:apply-templates select=\".\" mode=\"sage-active-markup\">\n        <!-- OK to send empty string, implementation reacts -->\n        <xsl:with-param name=\"language-attribute\">\n            <xsl:value-of select=\"@language\" />\n        </xsl:with-param>\n        <xsl:with-param name=\"b-autoeval\" select=\"@auto-evaluate = 'yes'\"/>\n        <xsl:with-param name=\"in\" select=\"''\"/>\n        <xsl:with-param name=\"out\" select=\"''\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Type: \"invisible\"; to doctest, but never show to a reader -->\n<xsl:template match=\"sage[@type='invisible']\" />\n\n<!-- Type: \"practice\"; empty, but with practice announcement -->\n<!-- We override this in LaTeX, since it is useless          -->\n<!-- (and we can't tell in the abstract wrapping template)   -->\n<xsl:template match=\"sage[@type='practice']\">\n    <xsl:apply-templates select=\".\" mode=\"sage-active-markup\">\n        <xsl:with-param name=\"language-attribute\">\n            <xsl:value-of select=\"'practice'\" />\n        </xsl:with-param>\n        <xsl:with-param name=\"in\" select=\"'# Practice area (not linked for Sage Cell use)&#xa;'\"/>\n        <xsl:with-param name=\"out\" select=\"''\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Type: \"display\"; input portion as uneditable, unevaluatable -->\n<!-- This calls a slightly different abstract template           -->\n<!-- We do not pass along any output, since this is silly        -->\n<!-- These cells are meant to be be incorrect or incomplete      -->\n<xsl:template match=\"sage[@type='display']\">\n    <xsl:call-template name=\"sage-display-markup\">\n        <xsl:with-param name=\"language-attribute\">\n            <xsl:value-of select=\"'display'\" />\n        </xsl:with-param>\n        <xsl:with-param name=\"in\">\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\" select=\"input\" />\n            </xsl:call-template>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Type: \"full\" (the default)         -->\n<!-- Absent meeting any other condition -->\n<xsl:template match=\"sage|sage[@type='full']\">\n    <xsl:apply-templates select=\".\" mode=\"sage-active-markup\">\n        <!-- OK to send empty string, implementation reacts -->\n        <xsl:with-param name=\"language-attribute\">\n            <xsl:value-of select=\"@language\" />\n        </xsl:with-param>\n        <xsl:with-param name=\"b-autoeval\" select=\"@auto-evaluate = 'yes'\"/>\n        <xsl:with-param name=\"in\">\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\" select=\"input\" />\n            </xsl:call-template>\n        </xsl:with-param>\n        <xsl:with-param name=\"out\">\n            <xsl:if test=\"output\">\n                <xsl:call-template name=\"sanitize-text\" >\n                    <xsl:with-param name=\"text\" select=\"output\" />\n                </xsl:call-template>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Console Session, prompt on input line-->\n<!-- An interactive command-line session with pairs of input and output -->\n<!-- Determining the prompt is a bit complicated, but always the same   -->\n<!-- and always a pure textual result.  It becomes a part of the input  -->\n<!-- line, so this modal template has an \"input\" as its context.        -->\n<!--                                                                    -->\n<!-- Priority:                                                          -->\n<!--   1.  a specific @prompt on the \"input\" element                    -->\n<!--   2.  an overall session-wide @prompt on the \"console\" element     -->\n<!--   3.  a default, which can be superseded by a session-wide version -->\n<!-- NB: could add a \"docinfo\" element for use just before the default? -->\n<xsl:template match=\"console/input\" mode=\"determine-console-prompt\">\n    <xsl:choose>\n        <xsl:when test=\"@prompt\">\n            <xsl:value-of select=\"@prompt\"/>\n        </xsl:when>\n        <!-- parent is guaranteed to be a \"console\", which can -->\n        <!-- carry a default prompt for the entire session     -->\n        <xsl:when test=\"parent::console/@prompt\">\n            <xsl:value-of select=\"parent::console/@prompt\"/>\n        </xsl:when>\n        <!-- Default is a $-space, could just as well have been >-space -->\n        <xsl:otherwise>\n            <xsl:text>$&#x20;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Determine what string, if any, should be used for input \"continuation\" -->\n<!-- Each line after the first would be prepended by this string -->\n<!-- Looks for @continuation in the input, fall back to @continuation in console -->\n<!-- Else default to empty. (Or should it be a number of spaces equaling the prompt?) -->\n<xsl:template match=\"console/input\" mode=\"determine-console-continuation\">\n    <xsl:choose>\n        <xsl:when test=\"@continuation\">\n            <xsl:value-of select=\"@continuation\"/>\n        </xsl:when>\n        <!-- parent is guaranteed to be a \"console\", which can    -->\n        <!-- carry a default continuation for the entire session  -->\n        <xsl:when test=\"parent::console/@continuation\">\n            <xsl:value-of select=\"parent::console/@continuation\"/>\n        </xsl:when>\n        <!-- Default is empty -->\n        <xsl:otherwise>\n            <xsl:text/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################# -->\n<!-- Preformatted Text -->\n<!-- ################# -->\n\n<!-- Inline \"code\" uses a \"c\" element and we want to be careful, so    -->\n<!-- we use a universal template here, while leaving peculiarities     -->\n<!-- of output formats to their respective stylesheets.  The \"c\"       -->\n<!-- element never has any elements as children, so we grab the        -->\n<!-- author's characters as their intent.  Output markup languages     -->\n<!-- Important: we use a \"value-of\" instruction so that the            -->\n<!-- text-manipulation routines do not get their hands on any          -->\n<!-- whitespace or anything else.  So the parameter $content is pure   -->\n<!-- character data.  A named template means no context, which is only -->\n<!-- a problem when WeBWorK PG formulation wants to provide a location -->\n<!-- report on a failure due to banned markup.                         -->\n<!-- NB: newlines are assumed to be an editing convenience (hard       -->\n<!-- line-breaks as part of word-wrapping, and not intended by the     -->\n<!-- author to be literal.  We have other devices for multi-line       -->\n<!-- verbatim text. -->\n<xsl:template match=\"c\">\n    <!-- With no newlines, we use \"value-of\" to get the characters -->\n    <!-- precisely.  Otherwise, we have newlines and likely each   -->\n    <!-- will be followed by a run of spaces (indentation on the   -->\n    <!-- subsequent line of the source), so we use a recursive     -->\n    <!-- template to scrub the spaces.                             -->\n    <xsl:variable name=\"raw-content\">\n        <xsl:choose>\n            <xsl:when test=\"not(contains(., '&#xa;'))\">\n                <xsl:value-of select=\".\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:call-template name=\"reduce-line-break\">\n                    <xsl:with-param name=\"text\">\n                        <xsl:value-of select=\".\"/>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- The newlines remain, but all trailing spaces have been -->\n    <!-- scrubbed, so we replace newlines with spaces as part   -->\n    <!-- of the application of the wrapper.                     -->\n    <xsl:call-template name=\"code-wrapper\">\n        <xsl:with-param name=\"content\" select=\"translate($raw-content, '&#xa;', '&#x20;')\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"code-wrapper\">\n    <xsl:message>PTX:BUG:  current conversion needs an implementation of the \"code-wrapper\" template</xsl:message>\n</xsl:template>\n\n\n<!-- The content of a \"pre\" element is wrapped many ways, -->\n<!-- but the content itself is always strictly text       -->\n\n<!-- With no \"cline\", we adjust left margin -->\n<xsl:template match=\"pre\" mode=\"interior\">\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n</xsl:template>\n\n<!-- With a \"cline\", we process the lines -->\n<xsl:template match=\"pre[cline]\" mode=\"interior\">\n    <xsl:apply-templates select=\"cline\" />\n</xsl:template>\n\n<!-- Code Lines -->\n<!-- A \"cline\" is used to (optionally) structure hunks     -->\n<!-- of verbatim text.  Due to its simplicity, it should   -->\n<!-- be universal and the only efffect is to add a newline -->\n<!-- character, which the output format should recognize   -->\n<!-- via its own devices.                                  -->\n<!-- NB: the newline provide by the last \"cline\" of a      -->\n<!-- structure is used by some recursive text utilities as -->\n<!-- a signal, such as the \"braille-source-code\" template. -->\n<xsl:template match=\"cline\">\n    <xsl:value-of select=\".\" />\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############## -->\n<!-- Lists of Names -->\n<!-- ############## -->\n\n<!-- Authors and editors are people credited in the front matter and in   -->\n<!-- mastheads, etc.  Authors can appear on major divisions, such as      -->\n<!-- chapters and sections.  There can be multiple, and we want to string -->\n<!-- them together with commas, and give editors a parenthetical          -->\n<!-- distinction.                                                         -->\n\n<!-- First, we kill these elements as metadata, so we do not process them  -->\n<!-- in document order, but instead need to always process them with modal -->\n<!-- templates.                                                            -->\n<xsl:template match=\"author|editor\" />\n\n<!-- Names can appear structured in the front matter, unstructured on -->\n<!-- divisions, or as cross-references to contributors.               -->\n<xsl:template match=\"author|editor\" mode=\"name-only\">\n    <xsl:choose>\n        <!-- structured version -->\n        <xsl:when test=\"personname\">\n            <xsl:apply-templates select=\"personname\"/>\n        </xsl:when>\n        <!-- Schematron assertion requires the target -->\n        <!-- of the xref to be a contributor element  -->\n        <xsl:when test=\"xref\">\n            <xsl:apply-templates select=\"xref\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"node()\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Authors, editors in serial lists for headers -->\n<xsl:template match=\"author|editor\" mode=\"name-list\" >\n    <!-- separator, if following -->\n    <xsl:if test=\"preceding-sibling::author|preceding-sibling::editor\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n    <!-- name itself, from \"personname\" or the content -->\n    <xsl:apply-templates select=\".\" mode=\"name-only\"/>\n    <xsl:if test=\"self::editor\">\n        <xsl:text> (</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\" />\n        <xsl:text>)</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Text Utilities -->\n<!-- (2022-03-27) A number of basic named templates were split out from this -->\n<!-- location.  Likely wise to move this to the top of this stylesheet.      -->\n<xsl:include href = \"./pretext-text-utilities.xsl\"/>\n\n\n<!-- When trying to represent XML source as it would have been authored, -->\n<!-- we \"break\" the escape characters to result in their authored form.  -->\n<!-- TODO: add &apos; and &quot; (which we *never* author,               -->\n<!-- since just necessary for attributes).                               -->\n<xsl:template match=\"node()\" mode=\"serialize-content\">\n    <xsl:param name=\"as-authored-source\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"$as-authored-source = 'no'\">\n            <xsl:value-of select=\".\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- fix raw ampersands before introducing more -->\n            <xsl:variable name=\"fix-ampersand\"    select=\"str:replace(.,              '&amp;', '&amp;amp;')\"/>\n            <xsl:variable name=\"fix-lessthan\"     select=\"str:replace($fix-ampersand, '&lt;',  '&amp;lt;' )\"/>\n            <xsl:variable name=\"fix-greaterthan\"  select=\"str:replace($fix-lessthan,  '&gt;',  '&amp;gt;' )\"/>\n            <xsl:value-of select=\"$fix-greaterthan\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- LaTeX Shortcomings -->\n<!-- ################## -->\n\n<!-- Math bits are authored in LaTeX syntax, -->\n<!-- but sometimes LaTeX needs a little help -->\n<!-- to do the right thing.  This help is    -->\n<!-- often common to several output formats, -->\n<!-- so we put these modal templates here.   -->\n\n<!-- Clauses ending with math -->\n<!-- We look for an immediately adjacent/subsequent text -->\n<!-- node and if we get any punctuation, we wrap it for  -->\n<!-- inclusion in the final throes of the math part      -->\n<!-- A corresponding event happens with the following    -->\n<!-- text() node: the punctuation will get scrubbed      -->\n<!-- from there iff the punctuation migrates in this     -->\n\n<!-- Sometimes we just need the mark itself (e.g. braille).  Note -->\n<!-- that the \"mark\" could well be plural, but usuually is not.   -->\n<xsl:template match=\"m|md\" mode=\"get-clause-punctuation-mark\">\n    <xsl:if test=\"(self::m and $b-include-inline) or (self::md and $b-include-display)\">\n        <xsl:variable name=\"trailing-text\" select=\"following-sibling::node()[1]/self::text()\" />\n        <xsl:call-template name=\"leading-clause-punctuation\">\n            <xsl:with-param name=\"text\" select=\"$trailing-text\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Usually we wrap the punctuation with \\text{} for use   -->\n<!-- inside LaTeX rendering.                                -->\n<!-- NB: this mode name is not great, but we leave it as-is -->\n<!-- from a refactor. A cosmetic refactor could improve it. -->\n<xsl:template match=\"m|md\" mode=\"get-clause-punctuation\">\n    <xsl:if test=\"(self::m and $b-include-inline) or (self::md and $b-include-display)\">\n        <xsl:variable name=\"punctuation\">\n            <xsl:apply-templates select=\".\" mode=\"get-clause-punctuation-mark\"/>\n        </xsl:variable>\n        <xsl:if test=\"not($punctuation = '')\">\n            <xsl:text>\\text{</xsl:text>\n            <xsl:value-of select=\"$punctuation\" />\n            <xsl:text>}</xsl:text>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ################################## -->\n<!-- General Text Handling and Clean-Up -->\n<!-- ################################## -->\n\n<!-- Text adjustments -->\n<!-- This is a general template for every text node.  -->\n<!-- Note that most verbatim-ish elements should not  -->\n<!-- be applying templates, but instead will use      -->\n<!-- \"xsl:value-of\".  Math is an exception, since     -->\n<!-- we allow some elements in amongst the            -->\n<!-- \"pure text\" LaTeX syntax.  We are first using    -->\n<!-- it to adjust for clause-ending punctuation       -->\n<!-- being absorbed elsewhere into math, so we place  -->\n<!-- this near math handling.                         -->\n<!--                                                  -->\n<!-- Later Strategy                                   -->\n<!--                                                  -->\n<!-- 1.  \"Display\" objects, such as lists, display    -->\n<!-- math, and displayed verbatim text, can have text -->\n<!-- nodes (before and after), stripped of whitespace -->\n<!-- (trailing and leading, respectively).            -->\n<!--                                                  -->\n<!-- 2.  Any newlines left after this can be removed, -->\n<!-- with some whitespace consolidated                -->\n\n<!-- Punctuation ending a clause of a sentence   -->\n<!-- Asymmetric: no space, mark, space           -->\n<xsl:variable name=\"clause-ending-marks\">\n    <xsl:text>.?!:;,</xsl:text>\n</xsl:variable>\n\n<xsl:template match=\"text()\">\n    <!-- Scrub clause-ending punctuation immediately after math  -->\n    <!-- It migrates and is absorbed in math templates elsewhere -->\n    <!-- Side-effect: resulting leading whitespace is scrubbed   -->\n    <!-- for displayed mathematics (only) as it is irrelevant    -->\n    <xsl:variable name=\"first-char\" select=\"substring(., 1, 1)\" />\n    <xsl:variable name=\"math-punctuation\">\n        <xsl:choose>\n            <!-- drop punctuation after display math, if moving to math -->\n            <xsl:when test=\"$b-include-display and contains($clause-ending-marks, $first-char) and preceding-sibling::node()[1][self::md[mrow]]\">\n                <xsl:call-template name=\"strip-leading-whitespace\">\n                    <xsl:with-param name=\"text\">\n                        <xsl:call-template name=\"drop-clause-punctuation\">\n                            <xsl:with-param name=\"text\" select=\".\" />\n                        </xsl:call-template>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:when>\n            <!-- drop punctuation after inline math, if moving to math -->\n            <xsl:when test=\"$b-include-inline and contains($clause-ending-marks, $first-char) and preceding-sibling::node()[1][self::m]\">\n                <xsl:call-template name=\"drop-clause-punctuation\">\n                    <xsl:with-param name=\"text\" select=\".\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\".\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- After math clause-ending rearrangements, we provide some    -->\n    <!-- low-level text manipulations.  We do this via a conversion- -->\n    <!-- specific hook, so we do not do more processing than is      -->\n    <!-- necessary, presuming this template is executed frequently.  -->\n    <!-- A math element that allows XML elements within will         -->\n    <!-- be hit with \"xsl:apply-templates\" and arrive here,          -->\n    <!-- so we need to guard against \"text()\" with parents:          -->\n    <!-- \"fillin\", \"xref\", \"var\"   inside   \"m\",  \"mrow\"             -->\n    <!-- The default behavior is a straight copy, with no changes.   -->\n    <!-- NB: We defer WW-specific work for now.                      -->\n    <xsl:variable name=\"text-processed\">\n        <xsl:choose>\n            <xsl:when test=\"not(parent::m|parent::mrow)\">\n                <xsl:call-template name=\"text-processing\">\n                    <xsl:with-param name=\"text\" select=\"$math-punctuation\"/>\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$math-punctuation\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- TODO: strip leading whitespace above only under  -->\n    <!-- 'strict' policy, and combine two when clauses.   -->\n    <!-- Below, strip leading and trailing whitespace on  -->\n    <!-- either side of displayed objects, math and lists -->\n    <!-- (only?), in addition to first and last nodes     -->\n    <xsl:choose>\n        <!-- pass through if assuming strict adherence to whitespace policy -->\n        <xsl:when test=\"$whitespace-style = 'strict'\">\n            <xsl:value-of select=\"$text-processed\" />\n        </xsl:when>\n        <!-- We must \"apply-templates\" to math bits in order    -->\n        <!-- to process \"var\", \"fillin\" and \"xref\", so we pass  -->\n        <!-- through neighboring text nodes under any policy    -->\n        <!-- and we handle whitespace specially afterward       -->\n        <xsl:when test=\"parent::*[self::m|self::mrow]\">\n            <xsl:value-of select=\"$text-processed\" />\n        </xsl:when>\n        <!-- If a pure-whitespace text node is bracketed on both sides by -->\n        <!-- index or notation elements, then almost certainly the space  -->\n        <!-- is for source-formatting clarity and not significant for the -->\n        <!-- content.  In particular, in LaTeX output the macros left     -->\n        <!-- behind prevent consolidation of this whitespace and can lead -->\n        <!-- to significant runs of abnormal whitespace in the output.    -->\n        <xsl:when test=\"normalize-space($text-processed) = '' and preceding-sibling::node()[1][self::idx|self::notation] and following-sibling::node()[1][self::idx|self::notation]\"/>\n        <!-- manipulate leading, trailing, intermediate whitespace under flexible policy -->\n        <!-- if only text node inside parent, all three transformations may apply        -->\n        <!-- Note: space after clause-punctuation will not be deleted here               -->\n        <xsl:when test=\"$whitespace-style = 'flexible'\">\n            <xsl:variable name=\"original\" select=\"$text-processed\" />\n            <xsl:variable name=\"front-cleaned\">\n                <xsl:choose>\n                    <xsl:when test=\"not(preceding-sibling::node()[self::*|self::text()]) or preceding-sibling::node()[self::*|self::text()][1][self::md[mrow]|self::cd|self::pre|self::ol/parent::p|self::ul/parent::p|self::dl/parent::p]\">\n                        <xsl:call-template name=\"strip-leading-whitespace\">\n                            <xsl:with-param name=\"text\" select=\"$original\" />\n                        </xsl:call-template>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$original\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:variable name=\"back-cleaned\">\n                <xsl:choose>\n                    <xsl:when test=\"not(following-sibling::node()[self::*|self::text()])  or following-sibling::node()[self::*|self::text()][1][self::md[mrow]|self::cd|self::pre|self::ol/parent::p|self::ul/parent::p|self::dl/parent::p]\">\n                        <xsl:call-template name=\"strip-trailing-whitespace\">\n                            <xsl:with-param name=\"text\" select=\"$front-cleaned\" />\n                        </xsl:call-template>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$front-cleaned\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:variable name=\"middle-cleaned\">\n                <xsl:call-template name=\"strip-newlines\">\n                    <xsl:with-param name=\"text\" select=\"$back-cleaned\" />\n                </xsl:call-template>\n            </xsl:variable>\n            <!-- ACTUAL output -->\n            <xsl:value-of select=\"$middle-cleaned\" />\n            <!-- comes from ws.debug string parameter -->\n            <xsl:if test=\"$wsdebug and not($text-processed = $middle-cleaned)\">\n                <!-- DEBUGGING follows, maybe move outward later -->\n                <xsl:message>\n                    <xsl:text>****&#xa;</xsl:text>\n                    <xsl:text>O:</xsl:text>\n                    <xsl:value-of select=\".\" />\n                    <xsl:text>:O&#xa;</xsl:text>\n                    <xsl:text>M:</xsl:text>\n                    <xsl:value-of select=\"$text-processed\" />\n                    <xsl:text>:M&#xa;</xsl:text>\n                    <xsl:text>F:</xsl:text>\n                    <xsl:value-of select=\"$front-cleaned\" />\n                    <xsl:text>:F&#xa;</xsl:text>\n                    <xsl:text>B:</xsl:text>\n                    <xsl:value-of select=\"$back-cleaned\" />\n                    <xsl:text>:B&#xa;</xsl:text>\n                    <xsl:text>M:</xsl:text>\n                    <xsl:value-of select=\"$middle-cleaned\" />\n                    <xsl:text>:M&#xa;</xsl:text>\n                    <xsl:text>****&#xa;</xsl:text>\n                </xsl:message>\n            </xsl:if>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Text-processing should be done carefully in a per-conversion -->\n<!-- manner.  Absent anything special, we just duplicate.         -->\n<xsl:template name=\"text-processing\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n</xsl:template>\n\n<!-- Date and Time Functions -->\n<!-- http://stackoverflow.com/questions/1437995/how-to-convert-2009-09-18-to-18th-sept-in-xslt -->\n<!-- http://remysharp.com/2008/08/15/how-to-default-a-variable-in-xslt/ -->\n<xsl:template match=\"today\">\n    <xsl:variable name=\"format\">\n        <xsl:choose>\n            <xsl:when test=\"@format\"><xsl:value-of select=\"@format\" /></xsl:when>\n            <xsl:otherwise>month-day-year</xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"datetime\" select=\"substring(date:date-time(),1,10)\" />\n    <xsl:choose>\n        <xsl:when test=\"$format='month-day-year'\">\n            <xsl:value-of select=\"date:month-name($datetime)\" />\n            <xsl:text> </xsl:text>\n            <xsl:value-of select=\"date:day-in-month($datetime)\" />\n            <xsl:text>, </xsl:text>\n            <xsl:value-of select=\"date:year($datetime)\" />\n        </xsl:when>\n        <xsl:when test=\"$format='yyyy/mm/dd'\">\n            <xsl:value-of select=\"substring($datetime, 1, 4)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($datetime, 6, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($datetime, 9, 2)\" />\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Could use a format to suppress/manipulate time zone -->\n<xsl:template match=\"timeofday\">\n    <xsl:value-of select=\"substring(date:date-time(),12,8)\" />\n    <xsl:text> (</xsl:text>\n    <xsl:value-of select=\"substring(date:date-time(),20)\" />\n    <xsl:text>)</xsl:text>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Document Structure -->\n<!-- ################## -->\n\n<!-- Structural Nodes -->\n<!-- Some elements of the XML tree are structural elements of the document tree  -->\n<!-- This is our logical overlay on the (finer, larger, more expansive) XML tree -->\n<!-- Example: <section> is structural, and ancestors are all structural          -->\n<!-- Example: <title> is not structural, but does have a structural ancestor     -->\n<!-- NB: These elements need only be specified here, and in leaf template (next) -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"is-structural\">\n    <xsl:value-of select=\"true()\" />\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"is-structural\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n<!-- Structural Leaves -->\n<!-- Some structural elements of the document tree     -->\n<!-- are the leaves of that tree, meaning they do      -->\n<!-- not contain any structural nodes themselves       -->\n<!-- backmatter is always structured, else no purpose  -->\n<!-- frontmatter is anomalous:  \"titlepage\" (and       -->\n<!-- for an \"article\", \"abstract\") are not treated     -->\n<!-- as divisions, they just get mined as part of the  -->\n<!-- frontmatter itself.  So an article/frontmatter    -->\n<!-- is always a leaf, and a book/frontmatter is not   -->\n<!-- a leaf if it has a child other than a \"titlepage\" -->\n<!-- Generally, we look for definitive markers         -->\n<!-- NB: references, exercises, solutions not relevant -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"is-leaf\">\n    <xsl:choose>\n        <xsl:when test=\"self::frontmatter\">\n            <xsl:choose>\n                <xsl:when test=\"parent::article\">\n                    <xsl:value-of select=\"true()\" />\n                </xsl:when>\n                <xsl:when test=\"parent::book\">\n                    <xsl:value-of select=\"not(*[not(self::titlepage)])\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:BUG:     asking if a \"frontmatter\" is a leaf, for a document that is not a \"book\" nor an \"article\"</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"self::backmatter\">\n            <xsl:value-of select=\"false()\" />\n        </xsl:when>\n        <!-- The presence of a traditional division is emblematic of a structured -->\n        <!-- division, so not a leaf of the structural/document tree              -->\n        <xsl:when test=\"part or chapter or section or subsection or subsubsection\">\n            <xsl:value-of select=\"false()\" />\n        </xsl:when>\n        <!-- One exception, a division full of only \"worksheet\" or \"handout\"     -->\n        <!-- (as a subdivision, there could be metadata, \"introduction\", etc.)   -->\n        <!-- We know there are no traditional divisions as subdiivisions at this -->\n        <!-- point.  So we test for at least one worksheet or handout and no     -->\n        <!-- other specialized divisions.                                        -->\n        <xsl:when test=\"(worksheet or handout) and not(exercises|references|glossary|reading-questions|solutions)\">\n            <xsl:value-of select=\"false()\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"true()\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- This once just returned false,      -->\n<!-- but should maybe not even be called -->\n<xsl:template match=\"*\" mode=\"is-leaf\">\n    <xsl:value-of select=\"false()\" />\n    <!-- <xsl:message>PTX:BUG:     asking if a non-structural division is a leaf</xsl:message> -->\n</xsl:template>\n\n<!-- Test if element is a specialized division or not. -->\n<!-- If element is not even a division, give error.    -->\n<xsl:template match=\"*\" mode=\"is-specialized-division\">\n    <xsl:choose>\n        <xsl:when test=\"&TRADITIONAL-DIVISION-FILTER;\">\n            <xsl:value-of select=\"false()\"/>\n        </xsl:when>\n        <xsl:when test=\"&SPECIALIZED-DIVISION-FILTER;\">\n            <xsl:value-of select=\"true()\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: asking if a non-division (<xsl:value-of select=\"local-name(.)\"/>) is a specialized division</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We also want to identify smaller pieces of a document,          -->\n<!-- such as when they contain an index element or defined term,     -->\n<!-- so we can reference back to them.  We call these \"blocks\" here, -->\n<!-- which mostly corresponds to the use of the term in the DTD.     -->\n<!-- The difference is that a paragraph is a \"block\" if and only if  -->\n<!-- it is a direct descendant of a structural node or a directly    -->\n<!-- descended introduction or conclusion .                          -->\n<!-- Also, list items are considered blocks.                         -->\n<!-- NB: we don't point to a sidebyside, so not included here        -->\n<xsl:template match=\"md[mrow]|ul|ol|dl|blockquote|pre|sage|&FIGURE-LIKE;|poem|program|image|tabular|paragraphs|&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|assemblage|exercise|li\" mode=\"is-block\">\n    <xsl:value-of select=\"true()\" />\n</xsl:template>\n\n<xsl:template match=\"p\" mode=\"is-block\">\n    <xsl:choose>\n        <xsl:when test=\"parent::introduction or parent::conclusion\">\n            <xsl:variable name=\"interloper\" select=\"parent::*\" />\n            <xsl:apply-templates select=\"$interloper/parent::*\" mode=\"is-structural\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"is-structural\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"is-block\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n<!-- FIGURE-LIKE as panels of sidebyside -->\n<!-- A \"figure\", \"table\", \"list\", or \"listing\" has slightly different    -->\n<!-- behavior (potentially) when appearing as a panel of a \"sidebyside\". -->\n<!-- It can be \"subnumbered\" (e.g. (a), (b), (c),...) or it may normally -->\n<!-- be titled above, and we want to place the title below (more like a  -->\n<!-- caption) so the faux-titles and captions seem to (almost) align     -->\n<!-- vertically with each other.  Generally this means authoring the     -->\n<!-- panel with bottom alignment.                                        -->\n<!--                                                                     -->\n<!--   \"block\" - child of a division, captions below, titles above,      -->\n<!--     as according to CMoS.                                           -->\n<!--                                                                     -->\n<!--   \"panel\" - a panel of a side-by-side, but with a block number      -->\n<!--     of its own, since there is no enclosing \"figure\"                -->\n<!--                                                                     -->\n<!--   \"subnumber\" - a panel of a side-by-side, which in turn is a       -->\n<!--     child/descendant of a \"figure\" (a \"sbsgroup\" may intervene).    -->\n<!--     This triggers a block number foor the exterior \"figure\" and     -->\n<!--     a subnumber for the interior FIGURE-LIKE.                       -->\n<!--                                                                     -->\n<!-- (These code comments are referenced in the LaTeX conversion.)       -->\n<!--                                                                     -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"figure-placement\">\n    <!-- more specific first, reverse of description above -->\n    <xsl:choose>\n        <xsl:when test=\"parent::sidebyside and ancestor::figure\">\n            <xsl:text>subnumber</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::sidebyside\">\n            <xsl:text>panel</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>block</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ####################### -->\n<!-- Chunking Document Nodes -->\n<!-- ####################### -->\n\n\n<!-- When we break a document into pieces, known as \"chunks,\"       -->\n<!-- there is a configurable level (the \"chunk-level\") where        -->\n<!-- the document nodes at that level are always a chunk.           -->\n<!-- At a lesser level, document nodes are \"intermediate\" nodes     -->\n<!-- and so are output as summaries of their children.              -->\n<!-- However, an intermediate node may have no children             -->\n<!-- (is a \"leaf\") and hence is output as a chunk.                  -->\n<!--                                                                -->\n<!-- Said differently, chunks are natural leaves of the document    -->\n<!-- tree, or leaves (dead-ends) manufactured by an arbitrary       -->\n<!-- cutoff given by the chunk-level variable                       -->\n<!--                                                                -->\n<!-- So we have three types of document nodes:                      -->\n<!-- Intermediate: structural node, not a document leaf, smaller    -->\n<!--               level than chunk-level                           -->\n<!--   Realization: some content (title, introduction, conclusion), -->\n<!--                links/includes to children                      -->\n<!-- Leaf: structural node, at chunk-level or a leaf at smaller     -->\n<!--       level than chunk-level                                   -->\n<!--   Realization: a chunk will all content                        -->\n<!-- Neither: A structural node that is simply a (visual)           -->\n<!--          division of a chunk                                   -->\n<!--   Realization: usual presentation, within the enclosing chunk  -->\n\n\n<!-- An intermediate node is at lesser level -->\n<!-- than chunk-level and is not a leaf      -->\n <xsl:template match=\"*\" mode=\"is-intermediate\">\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\".\" mode=\"is-structural\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$structural='true'\">\n            <xsl:variable name=\"current-level\">\n                <xsl:apply-templates select=\".\" mode=\"level\" />\n            </xsl:variable>\n            <xsl:variable name=\"leaf\">\n                <xsl:apply-templates select=\".\" mode=\"is-leaf\" />\n            </xsl:variable>\n            <xsl:value-of select=\"($leaf='false') and ($chunk-level > $current-level)\" />\n        </xsl:when>\n        <xsl:when test=\"$structural='false'\">\n            <xsl:value-of select=\"$structural\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: Structural determination (<xsl:value-of select=\"$structural\" />) failed for is-intermediate at <xsl:apply-templates select=\".\" mode=\"long-name\"/></xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A chunk node is at the chunk-level, -->\n<!-- or a leaf at a lesser level         -->\n<xsl:template match=\"*\" mode=\"is-chunk\">\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\".\" mode=\"is-structural\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$structural='true'\">\n            <xsl:variable name=\"current-level\">\n                <xsl:apply-templates select=\".\" mode=\"level\" />\n            </xsl:variable>\n            <xsl:variable name=\"leaf\">\n                <xsl:apply-templates select=\".\" mode=\"is-leaf\" />\n            </xsl:variable>\n            <xsl:value-of select=\"($chunk-level = $current-level) or ( ($leaf='true') and ($chunk-level > $current-level) )\" />\n        </xsl:when>\n        <xsl:when test=\"$structural='false'\">\n            <xsl:value-of select=\"$structural\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: Structural determination (<xsl:value-of select=\"$structural\" />) failed for is-chunk at <xsl:apply-templates select=\".\" mode=\"long-name\"/></xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- #################################### -->\n<!-- Abstract Chunking of Structural Nodes-->\n<!-- #################################### -->\n\n<!-- Implementations get structural nodes of two types          -->\n<!--                                                            -->\n<!--   1) \"chunk\"                                               -->\n<!--       usually realizable as a single file by               -->\n<!--       applying default templates                           -->\n<!--                                                            -->\n<!--   2) \"intermediate\":                                       -->\n<!--       usually realizable as a single file with a title,    -->\n<!--       introduction and conclusion surrounding a summary    -->\n<!--       of the subdivisions it contains                      -->\n<!--                                                            -->\n<!-- So an implementation must implement two modal templates    -->\n<!--                                                            -->\n<!--   1) match=\"&STRUCTURAL;\" mode=\"chunk\"                     -->\n<!--   2) match=\"&STRUCTURAL;\" mode=\"intermediate\"              -->\n<!--                                                            -->\n<!-- Similarities can be consolidated within the implementation -->\n<!-- See  xsl/pretext-html.xsl  for a canonical example         -->\n<!--                                                            -->\n<!-- See the discussion just above to understand leaves of the  -->\n<!-- document tree (always chunks), manufactured leaves (due to -->\n<!-- an arbitrary, but configured, chunk level depth), and      -->\n<!-- intermediate nodes (structured divisions above the chunk   -->\n<!-- level line).                                               -->\n<!--                                                            -->\n<!-- NB: as of 2020-12-30 these implementations are used        -->\n<!-- directly as-is or are overridden (in part) by the          -->\n<!-- conversions to WeBWorK problem sets and logical files for  -->\n<!-- Sage doctesting.  They are also extended in the HTML       -->\n<!-- conversion, which is again extended by the EPUB and        -->\n<!-- Jupyter conversions.  This is an exhaustive list of uses.  -->\n\n<xsl:template match=\"&STRUCTURAL;\" mode=\"chunking\">\n    <xsl:variable name=\"chunk\">\n        <xsl:apply-templates select=\".\" mode=\"is-chunk\" />\n    </xsl:variable>\n     <xsl:choose>\n        <xsl:when test=\"$chunk='true'\">\n            <xsl:apply-templates select=\".\" mode=\"chunk\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"intermediate\" />\n            <xsl:apply-templates select=\"&STRUCTURAL;\" mode=\"chunking\" />\n        </xsl:otherwise>\n    </xsl:choose>\n </xsl:template>\n\n<!-- docinfo, and anything else, is immune and dead-ends -->\n<xsl:template match=\"*\" mode=\"chunking\" />\n\n<!-- With an implementation of a file-wrapping routine,     -->\n<!-- a typical use is to                                    -->\n<!--                                                        -->\n<!--   (a) apply a default template to the structural       -->\n<!--       node for a complete (chunk'ed) node              -->\n<!--                                                        -->\n<!--   (b) apply a modal template to the structural         -->\n<!--       node for a summary (intermediate) node           -->\n<!--                                                        -->\n<!-- The \"file-wrap\" routine should accept a $content       -->\n<!-- parameter holding the contents of the body of the page -->\n\n<!-- A complete file/page for a structural division         -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"chunk\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- An intermediate file/page for a structural division    -->\n<!-- It is very possible this implementation is not correct -->\n<!-- or desirable, since the notion of an \"intermediate\"    -->\n<!-- (or \"summary\") page/file is a bit unusual.             -->\n<!--                                                        -->\n<!-- See  xsl/pretext-ww-problem-sets.xsl  for an example   -->\n<!-- use, in addition to a non-trivial application for the  -->\n<!-- (primary) HTML conversion. -->\n<!--                                                        -->\n<!-- See  xsl/pretext-sage-doctest.xsl  for a conversion    -->\n<!-- which only implements the \"file-wrap\" template.        -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"intermediate\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\"*[not(&STRUCTURAL-FILTER;)]\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Containing Filenames, URLs -->\n<!-- Relative to the chunking in effect, every -->\n<!-- XML element is born within some file.     -->\n<!-- That filename will have a different       -->\n<!-- suffix in different conversions.          -->\n<!-- Parameter: $file-extension, set globally  -->\n<xsl:template match=\"*\" mode=\"containing-filename\">\n    <!-- this is a frequent programming error -->\n    <xsl:if test=\"$chunk-level = ''\">\n        <xsl:message>PTX:BUG:   the $chunk-level variable is empty, so must have been set improperly, perhaps when overridden in a conversion.  The \"containing-filename\" template is likely to act incorrectly.  Please report me</xsl:message>\n    </xsl:if>\n    <xsl:variable name=\"intermediate\">\n        <xsl:apply-templates select=\".\" mode=\"is-intermediate\" />\n    </xsl:variable>\n    <xsl:variable name=\"chunk\">\n        <xsl:apply-templates select=\".\" mode=\"is-chunk\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$intermediate='true' or $chunk='true'\">\n            <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n            <xsl:value-of select=\"$file-extension\" />\n        </xsl:when>\n        <!-- Halts since \"mathbook\" element will be chunk (or earlier) -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"..\" mode=\"containing-filename\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Context URL                                                   -->\n<!-- URL for an element on its containing HTML page.               -->\n<!-- Produces: baseurl + containing-filename + \"#\" + visible-id    -->\n<!-- Empty when no baseurl is configured.                          -->\n<!-- NB: requires $chunk-level and $file-extension to be set       -->\n<!-- correctly for HTML output (as in extract-qrcode.xsl).         -->\n<xsl:template match=\"audio|video|interactive\" mode=\"context-url\">\n    <xsl:if test=\"$b-has-baseurl\">\n        <xsl:value-of select=\"$baseurl\"/>\n        <xsl:apply-templates select=\".\" mode=\"containing-filename\"/>\n        <xsl:text>#</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ###### -->\n<!-- Titles -->\n<!-- ###### -->\n\n<!-- Titles are like metadata, they are a useful property    -->\n<!-- of many things and they migrate many different places.  -->\n<!-- So principally, we kill them on sight.  But we provide  -->\n<!-- modal templates as interfaces to titles and derivatives -->\n<!-- of them for purposes where only a restricted subset of  -->\n<!-- their content is allowed.                               -->\n<!--                                                         -->\n<!-- Also, many stock divisions have natural default titles, -->\n<!-- so we want to accomodate that option, and do so via     -->\n<!-- the localization routines.                              -->\n\n\n<!-- With modal templates below, the default template does nothing   -->\n<!-- We include the \"creator\" element of a theorem/axiom as metadata -->\n<!-- NB: since these elements get killed on-sight, when we actually  -->\n<!-- want to process them we need to use a \"select\" attribute        -->\n<!-- similar to  title/*|title/text() or title/node().               -->\n<xsl:template match=\"title\" />\n<xsl:template match=\"subtitle\" />\n<xsl:template match=\"shorttitle\"/>\n<xsl:template match=\"plaintitle\"/>\n<xsl:template match=\"creator\" />\n\n<!-- Some items have default titles that make sense         -->\n<!-- Typically these are one-off subdivisions (eg preface), -->\n<!-- or repeated generic divisions (eg exercises)           -->\n<xsl:template match=\"frontmatter|colophon|preface|foreword|acknowledgement|dedication|biography|abstract|references|glossary|exercises|worksheet|handout|reading-questions|exercisegroup|solutions|backmatter|index|case|interactive/instructions|keywords\" mode=\"has-default-title\">\n    <xsl:text>true</xsl:text>\n</xsl:template>\n<xsl:template match=\"*\" mode=\"has-default-title\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- NB: these templates return a property of the title's parent -->\n\n<xsl:template match=\"keywords\" mode=\"default-title\">\n    <xsl:choose>\n        <xsl:when test=\"@authority='msc'\">\n            <xsl:if test=\"@variant\">\n                <xsl:value-of select=\"@variant\"/>\n                <xsl:text>&#160;</xsl:text>\n            </xsl:if>\n            <xsl:text>Math Subject Classification</xsl:text>\n        </xsl:when>\n        <!-- Default is @authority='author' or no recognized authority given -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Normally a default title is the \"type-name\" of the object. -->\n<!-- But to indicate that a \"worksheet\" or \"exercises\" division -->\n<!-- is groupwork, we preface the title.                        -->\n<xsl:template match=\"*\" mode=\"default-title\">\n    <xsl:if test=\"(@groupwork= 'yes') and (self::worksheet or self::exercises)\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'group'\"/>\n        </xsl:apply-templates>\n        <xsl:text> </xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n</xsl:template>\n\n\n<!-- This has much of the logic of producing a title, but lacks any  -->\n<!-- additional punctuation, so is useful for titles employed places  -->\n<!-- other than immediately adjacent to the content they describe. -->\n<xsl:template match=\"*\" mode=\"title-xref\">\n    <xsl:variable name=\"default-exists\">\n        <xsl:apply-templates select=\".\" mode=\"has-default-title\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"title/line\">\n            <xsl:apply-templates select=\"title/line\">\n                <xsl:with-param name=\"separator\" select=\"$title-separator\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- select=\"title\" would just get it killed -->\n        <xsl:when test=\"title\">\n            <xsl:apply-templates select=\"title/node()\" />\n        </xsl:when>\n        <xsl:when test=\"$default-exists='true'\">\n            <xsl:apply-templates select=\".\" mode=\"default-title\"/>\n        </xsl:when>\n        <!-- otherwise empty -->\n        <xsl:otherwise />\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"title-full\">\n    <!-- first, the punctuation-less version -->\n    <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n    <!-- Should we add punctuation?                       -->\n    <!--   1. Should not have any already,                -->\n    <!--   2. Or should be a default version,             -->\n    <!--   3. Plus should be a situation where we want it -->\n\n    <!-- with no title present, first variable is an empty string -->\n    <xsl:variable name=\"has-punctuation\">\n        <xsl:apply-templates select=\"title\" mode=\"has-punctuation\"/>\n    </xsl:variable>\n    <xsl:variable name=\"default-exists\">\n        <xsl:apply-templates select=\".\" mode=\"has-default-title\" />\n    </xsl:variable>\n    <xsl:variable name=\"default-in-use\">\n        <xsl:value-of select=\"not(title) and $default-exists = 'true'\"/>\n    </xsl:variable>\n    <xsl:variable name=\"wants-period\">\n        <xsl:apply-templates select=\".\" mode=\"title-wants-punctuation\"/>\n    </xsl:variable>\n    <xsl:if test=\"(($has-punctuation = 'false') or ($default-in-use = 'true')) and ($wants-period = 'true')\">\n        <xsl:text>.</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- This template does elective sanitization of a title, which  -->\n<!-- is distinct for universal adjustments (such as protecting   -->\n<!-- LaTeX macros, or making any \"xref\" static.  So removing a   -->\n<!-- footnote is such a sanitization (we allow it on a \"real\"    -->\n<!-- title, but not when migrating other places).  This template -->\n<!-- is not called often, usually the \"title-short\" template is  -->\n<!-- the right template to call when a title is duplicated.      -->\n<!-- We pass a space for the version structured with \"line\".     -->\n<!-- TODO: ban fn in titles, then maybe this is obsolete -->\n<!-- or maybe we should be careful about math            -->\n<xsl:template match=\"*\" mode=\"title-simple\">\n    <xsl:variable name=\"default-exists\">\n        <xsl:apply-templates select=\".\" mode=\"has-default-title\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"title/line\">\n            <xsl:apply-templates select=\"title/line\">\n                <xsl:with-param name=\"separator\" select=\"' '\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- select=\"title\" would just get it killed -->\n        <!-- avoid footnotes in simple version       -->\n        <xsl:when test=\"title\">\n            <xsl:apply-templates select=\"title/*[not(self::fn)]|title/text()\" />\n        </xsl:when>\n        <xsl:when test=\"$default-exists='true'\">\n            <xsl:apply-templates select=\".\" mode=\"default-title\"/>\n        </xsl:when>\n        <!-- otherwise empty -->\n        <xsl:otherwise />\n    </xsl:choose>\n</xsl:template>\n\n<!-- Short titles are meant for places such as the Table of  -->\n<!-- Contents and for LaTeX, the page headers and/or footers -->\n<!-- It'd be silly to structure this with \"line\"             -->\n<xsl:template match=\"*\" mode=\"title-short\">\n    <xsl:choose>\n        <!-- schema should control content, eg no footnotes -->\n        <!-- optional, so check for author's suggestion     -->\n        <xsl:when test=\"shorttitle\">\n            <xsl:apply-templates select=\"shorttitle/node()[not(self::fn)]\"/>\n        </xsl:when>\n        <!-- else, existing title, cleaned up -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"title-simple\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A version of the title with all abnormal characters stripped -->\n<!-- and using underscores in place of spaces                     -->\n<!-- http://stackoverflow.com/questions/1267934/                  -->\n<!-- removing-non-alphanumeric-characters-from-string-in-xsl      -->\n<xsl:template match=\"*\" mode=\"title-filesafe\">\n    <!-- first, the simple title -->\n    <xsl:variable name=\"raw-title\">\n        <xsl:apply-templates select=\".\" mode=\"title-simple\"/>\n    </xsl:variable>\n    <xsl:variable name=\"letter-only-title\">\n        <xsl:value-of select=\"translate($raw-title, translate($raw-title, concat(&SIMPLECHAR;,' '), ''), '')\" />\n    </xsl:variable>\n    <xsl:value-of select=\"translate($letter-only-title, ' ', '_')\" />\n</xsl:template>\n\n<!-- This comes from writing out WW problems to filenames    -->\n<!-- in some sort of reasonable numbering scheme             -->\n<!-- It is not integrated into the above complexity-scheme   -->\n<!-- (though does call the \"title-filesafe\" modal template)  -->\n<!-- Consider integration if there is a refactoring of above -->\n<xsl:template match=\"*\" mode=\"numbered-title-filesafe\">\n    <!-- traditional \"dotted\" number -->\n    <xsl:variable name=\"dotted-number\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:variable name=\"title-string\">\n        <xsl:apply-templates select=\".\" mode=\"title-filesafe\" />\n    </xsl:variable>\n    <!-- number output, with dot to dash conversion -->\n    <xsl:value-of select=\"translate($dotted-number, '.', '_')\" />\n    <!-- separator, if needed -->\n    <xsl:if test=\"not($dotted-number = '' or $title-string = '')\">\n        <xsl:text>-</xsl:text>\n    </xsl:if>\n    <xsl:value-of select=\"$title-string\" />\n</xsl:template>\n\n<!-- We get subtitles the same way, but with no variations -->\n<!-- Structured with \"line\" is a possibility               -->\n<xsl:template match=\"*\" mode=\"subtitle\">\n    <xsl:choose>\n        <xsl:when test=\"subtitle/line\">\n            <xsl:apply-templates select=\"subtitle/line\">\n                <xsl:with-param name=\"separator\" select=\"$title-separator\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- select=\"subtitle\" would just get it killed -->\n        <xsl:when test=\"subtitle\">\n            <xsl:apply-templates select=\"subtitle/*|subtitle/text()\" />\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Plain title: motivation is browser tabs without extensive -->\n<!-- MathJax markup around (little bits) of mathematics        -->\n<!-- Also used for <meta> in HTML carrying identification      -->\n<xsl:template match=\"*\" mode=\"title-plain\">\n    <xsl:variable name=\"default-exists\">\n        <xsl:apply-templates select=\".\" mode=\"has-default-title\" />\n    </xsl:variable>\n    <xsl:choose>\n        <!-- \"plaintitle\" has *no* markup, but we do strip extra   -->\n        <!-- whitespace by sending to generic text node processing -->\n        <xsl:when test=\"plaintitle\">\n            <xsl:apply-templates select=\"plaintitle/text()\"/>\n        </xsl:when>\n        <xsl:when test=\"title\">\n            <xsl:apply-templates select=\"title/node()[not(self::fn)]\" mode=\"plain-title-edit\"/>\n        </xsl:when>\n        <!-- We assume the automatic titles are plain -->\n        <xsl:when test=\"$default-exists='true'\">\n            <xsl:apply-templates select=\".\" mode=\"default-title\"/>\n        </xsl:when>\n        <!-- just empty if there is no titles, no default -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We do not wrap an \"m\" element as part of a plain title -->\n<!-- This will misbehave for m/xref and m/fillin, etc, but  -->\n<!-- these devices should not be in a title anyway          -->\n<!-- N.B. this would be a place to do some crude            -->\n<!-- substitutions, such as \"\\delta\" -> \"δ\" (U+03B4)        -->\n<xsl:template match=\"m\" mode=\"plain-title-edit\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- We do not wrap an \"c\" element as part of a plain title -->\n<xsl:template match=\"c\" mode=\"plain-title-edit\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- We dumb-down quotation marks to \"straight\" ASCII. -->\n<!-- These behave well in output as attribute values,  -->\n<!-- the HTML serialization seems \"smart\" enough to    -->\n<!-- escape properly, even when both typesare present. -->\n\n<xsl:template match=\"q\" mode=\"plain-title-edit\">\n    <xsl:text>\"</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"sq\" mode=\"plain-title-edit\">\n    <xsl:text>'</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>'</xsl:text>\n</xsl:template>\n\n<!-- Return processing to defaults for most elements of titles -->\n<xsl:template match=\"node()\" mode=\"plain-title-edit\">\n    <xsl:apply-templates select=\".\"/>\n</xsl:template>\n\n<!-- We let styling provide punctuation for titles, principally       -->\n<!-- a period at the end.  But this is awkward if there is already    -->\n<!-- punctuation there.  This template returns the string 'true' if,  -->\n<!-- and only if, such punctuation exists.  Else, it returns 'false'. -->\n<!-- Consolidating interior whitespace should have no effect.         -->\n<!-- Text generators (eg <today />) may fool this, but applying       -->\n<!-- templates first will introduce LaTeX macros that will fool this  -->\n<!-- To debug: add messages here, then call via this default template -->\n<!-- TODO: maybe warn about \"bad\" ending-punctuation, like a colon? -->\n<xsl:template match=\"title|subtitle\" mode=\"has-punctuation\">\n    <xsl:variable name=\"title-ending-punctuation\" select=\"'?!'\" />\n    <xsl:variable name=\"all-text\" select=\"normalize-space(string(.))\" />\n    <xsl:variable name=\"last-char\" select=\"substring($all-text, string-length($all-text))\" />\n    <!-- title should not be empty, but if so, the contains() alone is true -->\n    <xsl:value-of select=\"$last-char and contains($title-ending-punctuation, $last-char)\" />\n</xsl:template>\n\n<!-- Some titles should have periods supplied by PTX, mostly   -->\n<!-- \"smaller\" objects like \"example\" and not \"larger\" objects -->\n<!-- like \"chapter\".  We create a template to signal this, for -->\n<!-- consistency across conversions, and so that it can be     -->\n<!-- consciously overridden as part of styling work.  In       -->\n<!-- pieces simply so it is more readable.                     -->\n<!--                                                           -->\n<!-- Blocks -->\n<xsl:template match=\"&THEOREM-LIKE;|&PROOF-LIKE;|&AXIOM-LIKE;|&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&ASIDE-LIKE;|exercise|assemblage\" mode=\"title-wants-punctuation\">\n    <xsl:value-of select=\"true()\"/>\n</xsl:template>\n<!-- Miscellaneous -->\n<xsl:template match=\"paragraphs|case|exercisegroup\" mode=\"title-wants-punctuation\">\n    <xsl:value-of select=\"true()\"/>\n</xsl:template>\n<!-- Titled: list items; tasks of exercise, PROJECT-LIKE, EXAMPLE-LIKE; glossary items -->\n<xsl:template match=\"ol/li|ul/li|task|gi\" mode=\"title-wants-punctuation\">\n    <xsl:value-of select=\"true()\"/>\n</xsl:template>\n<!-- Introductions and Conclusions -->\n<xsl:template match=\"article/introduction|chapter/introduction|section/introduction|subsection/introduction|appendix/introduction|exercises/introduction|solutions/introduction|worksheet/introduction|handout/introduction|reading-questions/introduction|glossary/introduction|references/introduction|article/conclusion|chapter/conclusion|section/conclusion|subsection/conclusion|appendix/conclusion|exercises/conclusion|solutions/conclusion|worksheet/conclusion|handout/conclusion|reading-questions/conclusion|glossary/conclusion|references/conclusion\" mode=\"title-wants-punctuation\">\n    <xsl:value-of select=\"true()\"/>\n</xsl:template>\n<xsl:template match=\"*\" mode=\"title-wants-punctuation\">\n    <xsl:value-of select=\"false()\"/>\n</xsl:template>\n\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"creator-full\">\n    <!-- select=\"creator\" would just get it killed -->\n    <xsl:apply-templates select=\"creator/*|creator/text()\" />\n</xsl:template>\n\n<!-- Structured titles -->\n\n<!-- Each \"line\", except the last, gets a separator     -->\n<!-- Almost always a space, but for LaTeX, at birth,    -->\n<!-- a newline.  We make it obvious that this character -->\n<!-- has not been overridden in a conversion            -->\n\n<xsl:variable name=\"title-separator\" select=\"'[TITLESEP]'\"/>\n\n<!-- Books:    overall title and subtitle, titles of parts, chapters and sections -->\n<!-- Articles: overall title and subtitle, titles of sections                     -->\n<xsl:template match=\"book/title/line|book/subtitle/line|book/part/title/line|book/part/chapter/title/line|book/chapter/title/line|book/part/chapter/section/title/line|book/chapter/section/title/line|article/title/line|article/subtitle/line|article/section/title/line\">\n    <xsl:param name=\"separator\"/>\n\n    <xsl:apply-templates/>\n    <xsl:if test=\"following-sibling::line\">\n        <xsl:value-of select=\"$separator\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ######## -->\n<!-- Captions -->\n<!-- ######## -->\n\n<!-- Captions are similar to titles.  They should be -->\n<!-- killed as metadata and requested when needed.   -->\n\n<xsl:template match=\"caption\"/>\n\n<!-- A caption can have a footnote, thus HTML will create    -->\n<!-- a knowl, and we need to distinguish between original    -->\n<!-- and duplicate scenarios.  For other conversions, the    -->\n<!-- \"b-original\" parameter should just be silently ignored. -->\n<xsl:template match=\"figure|listing\" mode=\"caption-full\">\n    <xsl:param name=\"b-original\" select=\"true()\"/>\n\n    <xsl:if test=\"caption\">\n        <xsl:apply-templates select=\"caption/node()\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- #################################### -->\n<!-- Widths of Images, Audio, Videos, Etc -->\n<!-- #################################### -->\n\n<!-- Because we allow width settings as consequences of sidebyside     -->\n<!-- layout parameters, we need to \"reach up\" and get these widths     -->\n<!-- on occassion.  So we consider the PreTeXt markup/situation and    -->\n<!-- produce a percentage as a string.  Consumers need to convert to   -->\n<!-- a percentage, pixels, fractional linewidths - whatever is needed. -->\n\n<!-- An image appears -->\n<!--                                                                      -->\n<!--   1.  in a figure (itself not in a sidebyside) where it              -->\n<!--       can have a width specification on itself                       -->\n<!--   2.  in a sidebyside directly, or a figure in a sidebyside.         -->\n<!--       These widths come from the layout, and are converter dependent -->\n<!--                                                                      -->\n<!-- Entirely similar for jsxgraph, audio and video but we do             -->\n<!-- not consult default *image* width in docinfo                         -->\n\n<xsl:template match=\"image[not(ancestor::sidebyside)]|audio[not(ancestor::sidebyside)]|video[not(ancestor::sidebyside)]|jsxgraph[not(ancestor::sidebyside)]|interactive[not(ancestor::sidebyside)]|slate[not(ancestor::sidebyside)]\" mode=\"get-width-percentage\">\n    <!-- find it first -->\n    <xsl:variable name=\"raw-width\">\n        <xsl:choose>\n            <!-- right on the element! -->\n            <xsl:when test=\"@width\">\n                <xsl:value-of select=\"@width\" />\n            </xsl:when>\n            <!-- not on an image, but doc-wide default exists -->\n            <xsl:when test=\"self::image and $docinfo/defaults/image-width\">\n                <xsl:value-of select=\"$docinfo/defaults/image-width\" />\n            </xsl:when>\n            <!-- naked slate, look to enclosing interactive -->\n            <xsl:when test=\"self::slate\">\n                <xsl:apply-templates select=\"parent::interactive\" mode=\"get-width-percentage\" />\n            </xsl:when>\n            <!-- what to do? Author will figure it out if too extreme -->\n            <xsl:otherwise>\n                <xsl:text>100%</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- now sanitize it -->\n    <xsl:variable name=\"normalized-width\" select=\"normalize-space($raw-width)\" />\n    <xsl:choose>\n        <xsl:when test=\"not(substring($normalized-width, string-length($normalized-width)) = '%')\">\n            <xsl:message>PTX:WARNING:   a \"width\" attribute should be given as a percentage (such as \"40%\", not as \"<xsl:value-of select=\"$normalized-width\" />, using 100% instead\"</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            <!-- replace by 100% -->\n            <xsl:text>100%</xsl:text>\n        </xsl:when>\n        <!-- test for stray interior spaces here? -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$normalized-width\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Any way that an image gets placed in a sidebyside -->\n<!-- panel it should have a relative size filling that -->\n<!-- panel, so this is easy, just 100% all the time    -->\n<!-- Exception: asymptote WebGL needs actual pixels    -->\n<xsl:template match=\"image[ancestor::sidebyside]\" mode=\"get-width-percentage\">\n    <xsl:text>100%</xsl:text>\n</xsl:template>\n\n<!-- The exception is an image inside a sidebyside in a webwork  -->\n<!-- where the parent sidebyside should only have a single percentage in its @widths -->\n<!-- N.B. This should be reworked/removed when there is a one-item sbs equivalent -->\n<xsl:template match=\"webwork//image[parent::sidebyside/@widths]\" mode=\"get-width-percentage\">\n    <xsl:value-of select=\"parent::sidebyside/@widths\" />\n</xsl:template>\n\n<!-- We need to get the right entry from the sidebyside layout.         -->\n<!-- This is complicated slightly by two possibilities for the element  -->\n<!-- of the sidebyside, a naked object, or a figure holding the object  -->\n<!-- Widths from sidebyside layouts have been error-checked as input    -->\n\n<!-- occurs in a figure, not contained in a sidebyside -->\n<xsl:template match=\"audio[ancestor::sidebyside]|video[ancestor::sidebyside]|jsxgraph[ancestor::sidebyside]|interactive[ancestor::sidebyside]|slate[ancestor::sidebyside]|image[asymptote and ancestor::sidebyside]|image[sageplot and ancestor::sidebyside]\" mode=\"get-width-percentage\">\n    <!-- in a side-by-side, get layout, locate in layout -->\n    <!-- and get width.  The layout-parameters template  -->\n    <!-- will analyze an enclosing sbsgroup              -->\n    <xsl:variable name=\"enclosing-sbs\" select=\"ancestor::sidebyside\" />\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\"$enclosing-sbs\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <xsl:choose>\n        <xsl:when test=\"parent::figure or parent::stack\">\n            <xsl:variable name=\"panel-number\" select=\"count(parent::*/preceding-sibling::*) + 1\" />\n            <xsl:value-of select=\"$layout/width[$panel-number]\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"panel-number\" select=\"count(preceding-sibling::*) + 1\" />\n            <xsl:value-of select=\"$layout/width[$panel-number]\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Assumes element may have an @aspect attribute   -->\n<!-- Caller can provide a default for its context    -->\n<!-- Input:  \"width:height\", or decimal width/height -->\n<!-- Return: real number as fraction width/height    -->\n<!-- Totally blank means nothing could be determined -->\n<xsl:template match=\"slate|interactive|jsxgraph|audio|video|image[asymptote]|image[sageplot]\" mode=\"get-aspect-ratio\">\n    <xsl:param name=\"default-aspect\" select=\"''\" />\n\n    <!-- look to element first, then to supplied default          -->\n    <!-- this could be empty (default default), then return empty -->\n    <xsl:variable name=\"the-aspect\">\n        <xsl:choose>\n            <!-- The aspect ratio is a property of an       -->\n            <!-- interactive Asymptote WebGL version, only. -->\n            <xsl:when test=\"self::image and asymptote/@aspect\">\n                <xsl:value-of select=\"asymptote/@aspect\" />\n            </xsl:when>\n            <xsl:when test=\"self::image and sageplot/@aspect\">\n                <xsl:value-of select=\"sageplot/@aspect\" />\n            </xsl:when>\n            <xsl:when test=\"not(self::image) and @aspect\">\n                <xsl:value-of select=\"@aspect\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$default-aspect\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- nothing provided by element or caller -->\n        <xsl:when test=\"$the-aspect = ''\" />\n        <!-- test if a ratio is given, and assume parts are good -->\n        <xsl:when test=\"contains($the-aspect, ':')\">\n            <xsl:variable name=\"width\" select=\"substring-before($the-aspect, ':')\" />\n            <xsl:variable name=\"height\" select=\"substring-after($the-aspect, ':')\" />\n            <xsl:value-of select=\"$width div $height\" />\n        </xsl:when>\n        <!-- assume a number and see if it is bad, return nothing -->\n        <!-- NaN does not equal *anything*, so tests if a number  -->\n        <!-- http://stackoverflow.com/questions/6895870           -->\n        <xsl:when test=\"not(number($the-aspect) = number($the-aspect)) or ($the-aspect &lt; 0)\">\n            <xsl:message>PTX:WARNING: the @aspect attribute should be a ratio, like 4:3, or a positive number, not \"<xsl:value-of select=\"$the-aspect\" />\"</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:when>\n        <!-- survives as a number -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$the-aspect\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Various components need to be built with pixel widths from % based widths -->\n<!-- design-width is the 100% value.                                           -->\n<!-- Individual stylesheets (e.g. html, reveal) may change this                -->\n<xsl:variable name=\"design-width\" select=\"'600'\" />\n\n<!-- Some elements may allow for a custom design-width.                        -->\n<!-- They will override this template and either provide a different value or  -->\n<!-- fall back on the local variable                                           -->\n<xsl:template match=\"*\" mode=\"get-design-width\">\n    <xsl:value-of select=\"$design-width\" />\n</xsl:template>\n\n<!-- Pixels are an HTML thing, but we may need these numbers -->\n<!-- elsewhere, and these are are pure text templates        -->\n<!-- NB 3D \"sageplot\" needs an \"iframe\" with pixels for size -->\n<xsl:template match=\"slate|audio|video|interactive|image[asymptote]|image[sageplot]\" mode=\"get-width-pixels\">\n    <xsl:variable name=\"local-design-width\">\n        <xsl:apply-templates select=\".\" mode=\"get-design-width\" />\n    </xsl:variable>\n    <xsl:variable name=\"width-percent\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-percentage\" />\n    </xsl:variable>\n    <xsl:variable name=\"width-fraction\">\n        <xsl:value-of select=\"substring-before($width-percent,'%') div 100\" />\n    </xsl:variable>\n    <xsl:value-of select=\"round($local-design-width * $width-fraction)\" />\n</xsl:template>\n\n<!-- Square by default, when asked.  Can override -->\n<xsl:template match=\"slate|audio|video|interactive|image[asymptote]|image[sageplot]\" mode=\"get-height-pixels\">\n    <xsl:param name=\"default-aspect\" select=\"'1:1'\" />\n    <xsl:variable name=\"local-design-width\">\n        <xsl:apply-templates select=\".\" mode=\"get-design-width\" />\n    </xsl:variable>\n    <xsl:variable name=\"width-percent\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-percentage\" />\n    </xsl:variable>\n    <xsl:variable name=\"width-fraction\">\n        <xsl:value-of select=\"substring-before($width-percent,'%') div 100\" />\n    </xsl:variable>\n    <xsl:variable name=\"aspect-ratio\">\n        <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\">\n            <xsl:with-param name=\"default-aspect\" select=\"$default-aspect\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:value-of select=\"round($local-design-width * $width-fraction div $aspect-ratio)\" />\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Names of Objects -->\n<!-- ################ -->\n\n<!-- The  xsl/localizations/localizations.xml  file contains the base -->\n<!-- filenames for the individual (per-language) files.  We form a    -->\n<!-- node-set of these filenames in the  $locale-files  variable.     -->\n<!-- Then the  document()  function will read multiple files and      -->\n<!-- form one grand node-set with all of the translations for         -->\n<!-- all languages.  The  xi:include  device is possible within the   -->\n<!-- localizations  directory, but would require activating that      -->\n<!-- feature (e.g.  xsltproc -xinclude) for even the simplest         -->\n<!-- (non-modular) documents.  Better to accomplish the consolidation -->\n<!-- with standard XSLT.                                              -->\n<!-- NB: the $localizations variable has multiple root nodes, so when -->\n<!-- used in a context-switch before looking up a key, the \"for-each\" -->\n<!-- is actually looping over multiple root nodes.  So when we switch -->\n<!-- context with a \"for-each\" we restrict to the root node for the   -->\n<!-- specific language in play.                                       -->\n<xsl:variable name=\"locale-files\" select=\"document('localizations/localizations.xml')/localizations/filename\" />\n<xsl:variable name=\"localizations\" select=\"document($locale-files)\" />\n<!-- Key to lookup a particular localization -->\n<xsl:key name=\"localization-key\" match=\"localization\" use=\"@string-id\"/>\n\n<!-- Ultimately translations are all contained in the files of  -->\n<!-- the xsl/localizations directory, which provides            -->\n<!-- upper-case, singular versions.  In this way, we only ever  -->\n<!-- hardcode a string (like \"Chapter\") once                    -->\n<!-- Template is intentionally modal.                           -->\n<xsl:template match=\"*\" mode=\"type-name\">\n    <xsl:param name=\"string-id\" select=\"''\"/>\n    <!-- The $string-id parameter allows for an override on        -->\n    <!-- semi-automatic determination of the object being named    -->\n    <!-- (see the modal \"string-id\" templates).  This is necessary -->\n    <!-- for items like the names of interface buttons that are    -->\n    <!-- not associated closely with a certain PreTeXt element.    -->\n    <xsl:variable name=\"str-id\">\n        <xsl:choose>\n            <xsl:when test=\"not($string-id = '')\">\n                <xsl:value-of select=\"$string-id\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"string-id\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- The language \"in force\", or \"ambient language\" is found      -->\n    <!-- by looking up the document tree for the closest containing   -->\n    <!-- specification of the language.                               -->\n    <!--                                                              -->\n    <!-- Tip: To get the \"document-language\" as the in-force          -->\n    <!-- language, *only* for the case of setting a string-id         -->\n    <!-- override, set the context to $root in the employing @select, -->\n    <!-- then $lang-element *will* be $root and $lang *will* be the   -->\n    <!-- overall, document-wide, language (set by -assembly).         -->\n    <xsl:variable name=\"lang\">\n        <xsl:apply-templates select=\".\" mode=\"ambient-language\"/>\n    </xsl:variable>\n\n    <!-- Now, build the actual translation via a lookup -->\n    <xsl:variable name=\"lookup\">\n        <xsl:choose>\n            <!-- First, look in docinfo for document-specific rename with correct language -->\n            <xsl:when test=\"$docinfo/rename[@element=$str-id and @xml:lang=$lang]\">\n                <xsl:apply-templates select=\"$docinfo/rename[@element=$str-id and @xml:lang=$lang]\"/>\n            </xsl:when>\n            <!-- Second, look in docinfo for document-specific rename with correct language, -->\n            <!-- but with @lang attribute which was deprecated on 2019-02-23                 -->\n            <xsl:when test=\"$docinfo/rename[@element=$str-id and @lang=$lang]\">\n                <xsl:apply-templates select=\"$docinfo/rename[@element=$str-id and @lang=$lang]\"/>\n            </xsl:when>\n            <!-- Third, look in docinfo for document-specific rename, but now explicitly language-agnostic -->\n            <xsl:when test=\"$docinfo/rename[@element=$str-id and not(@lang) and not(@xml:lang)]\">\n                <xsl:apply-templates select=\"$docinfo/rename[@element=$str-id and not(@lang) and not(@xml:lang)]\"/>\n            </xsl:when>\n            <!-- Finally, default to a lookup from the localization file's nodes -->\n            <!-- Use a \"for-each\" to effect a context switch for the look-up and -->\n            <!-- restrict the context to the language in play.                   -->\n            <xsl:otherwise>\n                <xsl:for-each select=\"$localizations/locale[@language = $lang]\">\n                    <xsl:value-of select=\"key('localization-key', $str-id)\"/>\n                </xsl:for-each>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Exceptions to failed lookups                     -->\n    <!-- Some un-implemented translations are ubiquitous, -->\n    <!-- so we recognize failure and fallback to English  -->\n    <xsl:variable name=\"translation\">\n        <xsl:choose>\n            <!-- $lookup is good, echo it -->\n            <xsl:when test=\"not($lookup = '')\">\n                <xsl:value-of select=\"$lookup\"/>\n            </xsl:when>\n            <!-- substitute English since $lookup is empty     -->\n            <!-- NB: could test with an \"or\" for multiple      -->\n            <!-- exceptions and then get en-US version with a  -->\n            <!-- proper lookup as a single statement, but not  -->\n            <!-- bothering yet.                                -->\n            <!-- \"Close\" is on every knowl, too many warnings  -->\n            <xsl:when test=\"$str-id = 'close'\">\n                <xsl:text>Close</xsl:text>\n            </xsl:when>\n            <!-- \"Reveal\" is on every knowl, too many warnings -->\n            <xsl:when test=\"$str-id = 'reveal'\">\n                <xsl:text>Reveal</xsl:text>\n            </xsl:when>\n            <!-- $lookup empty and not exceptional    -->\n            <!-- echo the empty lookup as translation -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$translation != ''\">\n            <xsl:value-of select=\"$translation\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>[</xsl:text>\n            <xsl:value-of select=\"$str-id\" />\n            <xsl:text>]</xsl:text>\n            <xsl:message>PTX:WARNING: could not translate string with id \"<xsl:value-of select=\"$str-id\"/>\" into language for code \"<xsl:value-of select=\"$lang\"/>\"</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- In the assembly pass, we sometimes need to postpone localization, -->\n<!-- since we have not analyzed languages and we maybe don't have the  -->\n<!-- $docinfo element needed for renaming.  So we emit a placeholder,  -->\n<!-- in a \"pi:localize\" element with the \"string-id\" as an attribute.  -->\n<!-- Now, as part of a conversion, the substitution can be made.       -->\n<xsl:template match=\"pi:localize\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"@string-id\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Most PreTeXt elements have names, and their localizations, indexed   -->\n<!-- by a \"string-id\" that is simply their local name.  However, others   -->\n<!-- (\"exercise\" is archetypical) have names that vary according to their -->\n<!-- context.  The following templates just report these \"string-id\",     -->\n<!-- defaulting to the \"local name\".  See the \"en-US\" localization file   -->\n<!-- for the best documentation of these non-standard string-id.          -->\n\n<!-- A single objective or outcome is authored as a list item -->\n<xsl:template match=\"objectives/ol/li|objectives/ul/li|objectives/dl/li\" mode=\"string-id\">\n    <xsl:text>objective</xsl:text>\n</xsl:template>\n<xsl:template match=\"outcomes/ol/li|outcomes/ul/li|outcomes/dl/li\" mode=\"string-id\">\n    <xsl:text>outcome</xsl:text>\n</xsl:template>\n\n<!-- There are lots of exercises, but differentiated by their parents,  -->\n<!-- so we use identifiers that remind us of their location in the tree -->\n\n<!-- First, a \"divisional\" \"exercise\" in an \"exercises\",      -->\n<!-- with perhaps intervening groups, like an \"exercisegroup\" -->\n<xsl:template match=\"exercises//exercise\" mode=\"string-id\">\n    <xsl:text>divisionalexercise</xsl:text>\n</xsl:template>\n\n<!-- Second, an \"exercise\" placed within a \"worksheet\"-->\n<xsl:template match=\"worksheet//exercise\" mode=\"string-id\">\n    <xsl:text>worksheetexercise</xsl:text>\n</xsl:template>\n\n<!-- Third, an \"exercise\" placed within a \"reading-questions\"-->\n<xsl:template match=\"reading-questions//exercise\" mode=\"string-id\">\n    <xsl:text>readingquestion</xsl:text>\n</xsl:template>\n\n<!-- Finally, an inline exercise has a division (several possible)        -->\n<!-- as a parent. We just drop in here last if other matches do not       -->\n<!-- succeed, but could improve with a filter or list of specific matches -->\n<!-- This matches the LaTeX environment of the same name, so              -->\n<!-- template to create an \"inlineexercise\" environment runs smoothly     -->\n<xsl:template match=\"exercise\" mode=\"string-id\">\n    <xsl:text>inlineexercise</xsl:text>\n</xsl:template>\n\n<!-- \"solutions\" divisions are \"Solutions 5.6\" in the  -->\n<!-- main matter, but \"Appendix D\" in the back matter -->\n<xsl:template match=\"solutions\" mode=\"string-id\">\n    <xsl:choose>\n        <xsl:when test=\"parent::backmatter\">\n            <xsl:text>appendix</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>solutions</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Display Mathematics can be a single line or multiple      -->\n<!-- lines and the two do not always align with element names, -->\n<!-- so we use two strings to signal the two situations.       -->\n\n<xsl:template match=\"mrow|md[@pi:authored-one-line]\" mode=\"string-id\">\n    <xsl:text>equation</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"md[not(@pi:authored-one-line)]\" mode=\"string-id\">\n    <xsl:text>displaymath</xsl:text>\n</xsl:template>\n\n<!-- And with no better match, the default is  -->\n<!-- the PreTeXt name for the element itself. -->\n<xsl:template match=\"*\" mode=\"string-id\">\n    <xsl:value-of select=\"local-name(.)\"/>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Language Properties -->\n<!-- ################### -->\n\n<!-- At any given point in processing, we may want   -->\n<!-- to know which language is in effect. We look    -->\n<!-- up the tree for the \"closest\" indication of a   -->\n<!-- language for localization. The  @locale-lang    -->\n<!-- attribute is set by the -assembly  stylesheet,  -->\n<!-- and guarantees the language is supported by an  -->\n<!-- extant localization file. Result is a           -->\n<!-- language code we can use.  At worst, we get the -->\n<!-- $document-language from the \"pretext\" element.  -->\n<!-- Typical use would save the result in a          -->\n<!-- variable, say $lang, and then locate a \"locale\" -->\n<!-- via XPath that leads with an expression like    -->\n<!--                                                 -->\n<!--    $localizations/locale[@language = $lang]     -->\n\n<xsl:template match=\"*\" mode=\"ambient-language\">\n    <xsl:value-of select=\"ancestor-or-self::*[@locale-lang][1]/@locale-lang\"/>\n</xsl:template>\n\n<!-- Language direction -->\n\n<!-- Every localiztion should specify the direction of the  -->\n<!-- language, which we record as a variable and as a flag. -->\n<xsl:variable name=\"document-language-direction\">\n    <xsl:value-of select=\"$localizations/locale[@language = $document-language]/@direction\"/>\n</xsl:variable>\n\n<!-- We consider right-to-left as exceptional, so we set a flag   -->\n<!-- for this case.  This should be the primary determinant in    -->\n<!-- code such as the LaTeX coionversion, though the actual value -->\n<!-- of \"$language-direction\" is meant to be used in attributes   -->\n<!-- for HTML pages.                                              -->\n<xsl:variable name=\"b-rtl\" select=\"$document-language-direction = 'rtl'\"/>\n\n<!-- Quotation Marks -->\n\n<!-- Utility templates to query localization specification -->\n\n<xsl:template match=\"*\" mode=\"get-quote-primary\">\n    <xsl:variable name=\"lang\">\n        <xsl:apply-templates select=\".\" mode=\"ambient-language\"/>\n    </xsl:variable>\n    <xsl:value-of select=\"$localizations/locale[@language = $lang]/@quote-primary\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"get-quote-secondary\">\n    <xsl:variable name=\"lang\">\n        <xsl:apply-templates select=\".\" mode=\"ambient-language\"/>\n    </xsl:variable>\n    <xsl:value-of select=\"$localizations/locale[@language = $lang]/@quote-secondary\"/>\n</xsl:template>\n\n<!-- Lookup table: one row per (style, side) with Unicode and LaTeX -->\n<!-- representations.  Output-format templates look up a row by     -->\n<!-- combining @style and @side with a \"|\" separator, then read     -->\n<!-- @unicode-character attribute or the latex-character child.     -->\n<!-- Add a new child element to support additional output formats.  -->\n\n<xsl:variable name=\"quote-character-rtf\">\n    <!-- U+201C: LEFT DOUBLE QUOTATION MARK  -->\n    <!-- U+201D: RIGHT DOUBLE QUOTATION MARK -->\n    <quote-character style=\"english-double\" side=\"left\"  unicode-character=\"&#x201c;\">\n        <latex-character>\\textquotedblleft{}</latex-character>\n    </quote-character>\n    <quote-character style=\"english-double\" side=\"right\" unicode-character=\"&#x201d;\">\n        <latex-character>\\textquotedblright{}</latex-character>\n    </quote-character>\n    <!-- U+2018: LEFT SINGLE QUOTATION MARK  -->\n    <!-- U+2019: RIGHT SINGLE QUOTATION MARK -->\n    <quote-character style=\"english-single\" side=\"left\"  unicode-character=\"&#x2018;\">\n        <latex-character>\\textquoteleft{}</latex-character>\n    </quote-character>\n    <quote-character style=\"english-single\" side=\"right\" unicode-character=\"&#x2019;\">\n        <latex-character>\\textquoteright{}</latex-character>\n    </quote-character>\n    <!-- U+00AB: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK  -->\n    <!-- U+00BB: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->\n    <quote-character style=\"angle-double\" side=\"left\"  unicode-character=\"&#x00ab;\">\n        <latex-character>\\guillemotleft{}</latex-character>\n    </quote-character>\n    <quote-character style=\"angle-double\" side=\"right\" unicode-character=\"&#x00bb;\">\n        <latex-character>\\guillemotright{}</latex-character>\n    </quote-character>\n    <!-- U+2039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK  -->\n    <!-- U+203A: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -->\n    <quote-character style=\"angle-single\" side=\"left\"  unicode-character=\"&#x2039;\">\n        <latex-character>\\guilsinglleft{}</latex-character>\n    </quote-character>\n    <quote-character style=\"angle-single\" side=\"right\" unicode-character=\"&#x203a;\">\n        <latex-character>\\guilsinglright{}</latex-character>\n    </quote-character>\n    <!-- U+202F: NARROW NO-BREAK SPACE -->\n    <quote-character style=\"angle-double-space\" side=\"left\"  unicode-character=\"&#x00ab;&#x202f;\">\n        <latex-character>\\guillemotleft\\thinspace{}</latex-character>\n    </quote-character>\n    <quote-character style=\"angle-double-space\" side=\"right\" unicode-character=\"&#x202f;&#x00bb;\">\n        <latex-character>\\thinspace\\guillemotright{}</latex-character>\n    </quote-character>\n    <quote-character style=\"angle-single-space\" side=\"left\"  unicode-character=\"&#x2039;&#x202f;\">\n        <latex-character>\\guilsinglleft\\thinspace{}</latex-character>\n    </quote-character>\n    <quote-character style=\"angle-single-space\" side=\"right\" unicode-character=\"&#x202f;&#x203a;\">\n        <latex-character>\\thinspace\\guilsinglright{}</latex-character>\n    </quote-character>\n    <!-- U+201E: DOUBLE LOW-9 QUOTATION MARK -->\n    <quote-character style=\"down-up-double\" side=\"left\"  unicode-character=\"&#x201e;\">\n        <latex-character>\\quotedblbase{}</latex-character>\n    </quote-character>\n    <quote-character style=\"down-up-double\" side=\"right\" unicode-character=\"&#x201d;\">\n        <latex-character>\\textquotedblright{}</latex-character>\n    </quote-character>\n    <!-- U+201A: SINGLE LOW-9 QUOTATION MARK -->\n    <quote-character style=\"down-up-single\" side=\"left\"  unicode-character=\"&#x201a;\">\n        <latex-character>\\quotesinglbase{}</latex-character>\n    </quote-character>\n    <quote-character style=\"down-up-single\" side=\"right\" unicode-character=\"&#x2019;\">\n        <latex-character>\\textquoteright{}</latex-character>\n    </quote-character>\n</xsl:variable>\n\n<xsl:variable name=\"quote-character-table\"\n    select=\"exsl:node-set($quote-character-rtf)\"/>\n\n<xsl:key name=\"quote-character-key\" match=\"quote-character\"\n    use=\"concat(@style, '|', @side)\"/>\n\n\n<!-- ##### -->\n<!-- Icons -->\n<!-- ##### -->\n\n<!-- Information about icons -->\n<!--     @name: PreTeXt name, what authors know/use              -->\n<!--     @font-awesome-family: Font Awesome family,              -->\n<!--                           \"classic\" or \"brands\"             -->\n<!--     @font-awesome: the font-awesome name, which becomes     -->\n<!--                    CamelCase for use with the LaTeX package -->\n<!--     @unicode: for use in less-capable formats               -->\n<!--                                                             -->\n<xsl:variable name=\"icon-rtf\">\n    <!-- see Unicode Character 'LEFTWARDS HEAVY ARROW' (U+1F844) -->\n    <!-- for bulkier arrows (in \"Supplemental Arrows-C Block\")   -->\n    <iconinfo name=\"arrow-left\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"arrow-left\"\n              unicode=\"&#x2190;\"/> <!-- LEFTWARDS ARROW -->\n    <iconinfo name=\"arrow-up\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"arrow-up\"\n              unicode=\"&#x2191;\"/> <!-- UPWARDS ARROW -->\n    <iconinfo name=\"arrow-right\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"arrow-right\"\n              unicode=\"&#x2192;\"/> <!-- RIGHTWARDS ARROW -->\n    <iconinfo name=\"arrow-down\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"arrow-down\"\n              unicode=\"&#x2193;\"/> <!-- DOWNWARDS ARROW -->\n    <iconinfo name=\"file-save\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"save\"\n              unicode=\"&#x1f4be;\"/> <!-- FLOPPY DISK -->\n    <iconinfo name=\"gear\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"cog\"\n              unicode=\"&#x2699;\" /> <!-- GEAR -->\n    <iconinfo name=\"menu\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"bars\"\n              unicode=\"&#x2630;\" /> <!-- TRIGRAM FOR HEAVEN -->\n    <iconinfo name=\"wrench\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"wrench\"\n              unicode=\"&#x1f527;\"/> <!-- WRENCH -->\n    <iconinfo name=\"power\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"power-off\"\n              unicode=\"&#x23FB;\"/> <!-- POWER SYMBOL -->\n    <iconinfo name=\"media-play\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"play\"\n              unicode=\"&#x25B6;\"/> <!--BLACK RIGHT-POINTING TRIANGLE-->\n    <iconinfo name=\"media-pause\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"pause\"\n              unicode=\"&#x23F8;\"/> <!-- DOUBLE VERTICAL BAR -->\n    <iconinfo name=\"media-stop\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"stop\"\n              unicode=\"&#x23F9;\"/> <!-- BLACK SQUARE FOR STOP-->\n    <iconinfo name=\"media-fast-forward\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"forward\"\n              unicode=\"&#x23E9;\"/> <!-- BLACK RIGHT-POINTING DOUBLE TRIANGLE -->\n    <iconinfo name=\"media-rewind\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"backward\"\n              unicode=\"&#x23EA;\"/> <!-- BLACK LEFT-POINTING DOUBLE TRIANGLE -->\n    <iconinfo name=\"media-skip-to-end\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"fast-forward\"\n              unicode=\"&#x23ED;\"/> <!-- BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -->\n    <iconinfo name=\"media-skip-to-start\"\n              font-awesome-family=\"classic\"\n              font-awesome=\"fast-backward\"\n              unicode=\"&#x23EE;\"/> <!-- BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -->\n    <!-- Creative Commons, Font Awesome Brands family -->\n    <!-- https://creativecommons.org/2020/03/18/the-unicode-standard-now-includes-cc-license-symbols/ -->\n    <iconinfo name=\"cc\"\n              font-awesome-family=\"brands\"\n              font-awesome=\"creative-commons\"\n              unicode=\"&#x1F16D;\"/> <!-- CIRCLED CC -->\n    <iconinfo name=\"cc-by\"\n              font-awesome-family=\"brands\"\n              font-awesome=\"creative-commons-by\"\n              unicode=\"&#x1F16F;\"/> <!-- CIRCLED HUMAN FIGURE -->\n    <iconinfo name=\"cc-sa\"\n              font-awesome-family=\"brands\"\n              font-awesome=\"creative-commons-sa\"\n              unicode=\"&#x1F10E;\"/> <!-- CIRCLED ANTICLOCKWISE ARROW -->\n    <iconinfo name=\"cc-nc\"\n              font-awesome-family=\"brands\"\n              font-awesome=\"creative-commons-nc\"\n              unicode=\"&#x1F10F;\"/> <!-- CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH -->\n    <iconinfo name=\"cc-pd\"\n              font-awesome-family=\"brands\"\n              font-awesome=\"creative-commons-pd\"\n              unicode=\"&#x1F16E;\"/> <!-- CIRCLED C WITH OVERLAID BACKSLASH -->\n    <iconinfo name=\"cc-zero\"\n              font-awesome-family=\"brands\"\n              font-awesome=\"creative-commons-zero\"\n              unicode=\"&#x1F16D;\"/> <!-- CIRCLED ZERO WITH BACKSLASH -->\n</xsl:variable>\n\n<!-- If read from a file via \"document()\" then   -->\n<!-- the exsl:node-set() call would seem to be   -->\n<!-- unnecessary.  When list above gets too big, -->\n<!-- migrate to a new file after consulting      -->\n<!-- localization scheme                         -->\n<xsl:variable name=\"icon-table\" select=\"exsl:node-set($icon-rtf)\"/>\n\n<xsl:key name=\"icon-key\" match=\"iconinfo\" use=\"@name\"/>\n\n<!-- ##### -->\n<!-- Icons -->\n<!-- ##### -->\n\n<xsl:template match=\"icon\">\n    <!-- the name attribute of the \"icon\" in text as a string -->\n    <xsl:variable name=\"icon-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n\n    <!-- for-each is just one node, but sets context for key() -->\n    <xsl:for-each select=\"$icon-table\">\n        <xsl:value-of select=\"key('icon-key', $icon-name)/@unicode\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!-- ############# -->\n<!-- Keyboard Keys -->\n<!-- ############# -->\n\n<!-- Comments are Unicode names, from fileformat.info             -->\n<!-- @latex values are macros in the menukeys package specifying  -->\n<!-- keyboard keys that are typically labeled with graphics,      -->\n<!-- or \"textcomp Text-mode Math Symbols\" from \"The Comprehensive -->\n<!-- LaTeX Symbol List\", or constructions combining them          -->\n<xsl:variable name=\"kbdkey-rtf\">\n    <kbdkeyinfo name=\"left\"\n                latex=\"\\arrowkeyleft\"\n                unicode=\"&#x2190;\"/> <!-- LEFTWARDS ARROW -->\n    <kbdkeyinfo name=\"up\"\n                latex=\"\\arrowkeyup\"\n                unicode=\"&#x2191;\"/> <!-- UPWARDS ARROW -->\n    <kbdkeyinfo name=\"right\"\n                latex=\"\\arrowkeyright\"\n                unicode=\"&#x2192;\"/> <!-- RIGHTWARDS ARROW -->\n    <kbdkeyinfo name=\"down\"\n                latex=\"\\arrowkeydown\"\n                unicode=\"&#x2193;\"/> <!-- DOWNWARDS ARROW -->\n    <kbdkeyinfo name=\"enter\"\n                latex=\"\\return\"\n                unicode=\"&#x2BA0;\"/> <!-- DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS -->\n    <kbdkeyinfo name=\"shift\"\n                latex=\"\\shift\"\n                unicode=\"&#x21E7;\"/> <!-- UPWARDS WHITE ARROW -->\n    <kbdkeyinfo name=\"ampersand\"\n                latex=\"\\&amp;\"\n                unicode=\"&#x0026;\"/> <!-- AMPERSAND -->\n    <kbdkeyinfo name=\"less\"\n                latex='\\textless'\n                unicode=\"&#x003C;\"/> <!-- LESS-THAN SIGN-->\n    <kbdkeyinfo name=\"greater\"\n                latex='\\textgreater'\n                unicode=\"&#x003E;\"/> <!-- GREATER-THAN SIGN-->\n    <kbdkeyinfo name=\"dollar\"\n                latex='\\$'\n                unicode=\"&#x0024;\"/> <!-- DOLLAR SIGN -->\n    <kbdkeyinfo name=\"percent\"\n                latex='\\%'\n                unicode=\"&#x0025;\"/> <!-- PERCENT SIGN -->\n    <!-- pair of braces is not confused as AVT notation -->\n    <kbdkeyinfo name=\"openbrace\"\n                latex='\\textbraceleft'\n                unicode=\"{{\"/> <!-- LEFT CURLY BRACKET -->\n    <kbdkeyinfo name=\"closebrace\"\n                latex='\\textbraceright'\n                unicode=\"}}\"/> <!-- RIGHT CURLY BRACKET -->\n    <kbdkeyinfo name=\"hash\"\n                latex='\\#'\n                unicode=\"&#x0023;\"/> <!-- OCTOTHORPE -->\n    <kbdkeyinfo name=\"backslash\"\n                latex='\\textbackslash'\n                unicode=\"&#x005C;\"/> <!-- BACKSLASH -->\n    <kbdkeyinfo name=\"tilde\"\n                latex='\\textasciitilde'\n                unicode=\"&#x007E;\"/> <!-- TILDE -->\n    <kbdkeyinfo name=\"circumflex\"\n                latex='\\textasciicircum'\n                unicode=\"&#x005E;\"/> <!-- CIRCUMFLEX ACCENT -->\n    <kbdkeyinfo name=\"underscore\"\n                latex='\\textunderscore'\n                unicode=\"&#x005F;\"/> <!-- LOW LINE -->\n    <kbdkeyinfo name=\"plus\"\n                latex='+'\n                unicode=\"&#x002B;\"/> <!-- PLUS SIGN -->\n    <!-- MINUS SIGN is U+2212, but not in all fonts? -->\n    <kbdkeyinfo name=\"minus\"\n                latex='\\textminus'\n                unicode=\"&#x002D;\"/> <!-- HYPHEN-MINUS -->\n    <kbdkeyinfo name=\"times\"\n                latex='\\texttimes'\n                unicode=\"&#x00D7;\"/> <!-- MULTIPLICATION SIGN -->\n    <kbdkeyinfo name=\"solidus\"\n                latex='\\textfractionsolidus'\n                unicode=\"&#x002F;\"/> <!-- SOLIDUS -->\n    <kbdkeyinfo name=\"obelus\"\n                latex='\\textdiv'\n                unicode=\"&#x00F7;\"/> <!-- DIVISION SIGN -->\n    <kbdkeyinfo name=\"squared\"\n                latex='x\\textasciicircum{}2'\n                unicode=\"x&#x005E;2\"/> <!--  -->\n    <kbdkeyinfo name=\"inverse\"\n                latex='x\\textasciicircum{-1}'\n                unicode=\"x&#x005E;-1\"/> <!--  -->\n    <kbdkeyinfo name=\"left-paren\"\n                latex='('\n                unicode=\"&#x0028;\"/> <!-- LEFT PARENTHESIS -->\n    <kbdkeyinfo name=\"right-paren\"\n                latex=')'\n                unicode=\"&#x0029;\"/> <!-- RIGHT PARENTHESIS -->\n</xsl:variable>\n\n<!-- If read from a file via \"document()\" then   -->\n<!-- the exsl:node-set() call would seem to be   -->\n<!-- unnecessary.  When list above gets too big, -->\n<!-- migrate to a new file after consulting      -->\n<!-- localization scheme                         -->\n<xsl:variable name=\"kbdkey-table\" select=\"exsl:node-set($kbdkey-rtf)\"/>\n\n<xsl:key name=\"kbdkey-key\" match=\"kbdkeyinfo\" use=\"@name\"/>\n\n<!-- ###################### -->\n<!-- Identifiers and Labels -->\n<!-- ###################### -->\n\n<!-- Identifiers are in flux, as of 2023-03-30.  The \"unique-id\" is    -->\n<!-- an attribute built during the descent of the tree during the      -->\n<!-- pre-processor/assembly phase.  As such, it is fast and ugly.      -->\n<!-- Do not let a reader catch sight of it in output ever, beacuase it -->\n<!-- is ugly, and because it is not really permanant.  That is what    -->\n<!-- \"visible-id\" is for.  But constructing \"visible-id\" is very slow  -->\n<!-- (we hope to speed htat up as well).  So we are transitioning to   -->\n<!-- the \"unique-id\" wherever possible, but with careful testing.      -->\n<xsl:template match=\"*\" mode=\"unique-id\">\n    <xsl:value-of select=\"@unique-id\"/>\n</xsl:template>\n\n<!-- These strings are used for items an author must manage              -->\n<!-- (image files) or that a reader will interact with (shared URLs)     -->\n<!-- Since items like filenames and URLs are sometimes shared across     -->\n<!-- conversions (or extractions) this template is in -common            -->\n<xsl:template match=\"*\" mode=\"visible-id\">\n    <xsl:value-of select=\"@unique-id\"/>\n</xsl:template>\n\n<!-- An image described by source code, using languages Asymptote,     -->\n<!-- Sage, or LaTeX, should have its filename determined by properties -->\n<!-- of the associated language-specific element, specifically this is -->\n<!-- the province of the @label attribute.  So this is the preference  -->\n<!-- from approximately 2023-08-12.  Looking to the enclosing (parent) -->\n<!-- \"image\" is historical, preserving backward-compatibility.         -->\n<xsl:template match=\"asymptote|sageplot|mermaid|latex-image\" mode=\"image-source-basename\">\n    <xsl:choose>\n        <!-- 2023-08-12: new behavior, prefer a @label (not @xml:id) -->\n        <!-- on the source code element to provide the filename      -->\n        <xsl:when test=\"@label\">\n           <xsl:value-of select=\"@label\"/>\n        </xsl:when>\n        <!-- Next stanza preserves backward-compatibility: previously an       -->\n        <!-- @xml:id value was used to form the filename of an image described -->\n        <!-- by source code (or a default was provided, like image-37).        -->\n        <xsl:when test=\"parent::image\">\n            <xsl:apply-templates select=\"parent::image\" mode=\"visible-id\"/>\n        </xsl:when>\n        <!-- Well-formed PTX source means we never reach the \"otherwise\" -->\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:  parent of a \"<xsl:value-of select=\"local-name()\"/>\" element in your PreTeXt source is not an \"image\".  If you think this is a programming error (not an error in your source), please report me.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- PreFigure images debuted after the switch to preferring a @label on -->\n<!-- the \"prefigure\" element, and not on the enclosing image, so we can  -->\n<!-- employ an improved version of the \"image-source-basename\" template. -->\n<xsl:template match=\"pf:prefigure\" mode=\"image-source-basename\">\n    <xsl:choose>\n        <!-- Determine if @label is authored or generated for backwrd compatibility -->\n        <xsl:when test=\"not(@authored-label)\">\n            <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n            <xsl:message>PTX:WARNING:  you are encouraged to place a @label attribute on every \"prefigure\" element.  Otherwise, associated image files will have unreliable filenames.</xsl:message>\n        </xsl:when>\n        <!-- this @label is now guaranteed to be authored -->\n        <xsl:when test=\"@label\">\n           <xsl:value-of select=\"@label\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:  a \"prefigure\" element is confused about where its @label came from</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- When hosted on Runestone, an interactive exercise is tracked in a    -->\n<!-- database across courses (\"base course\") and semesters (\"time\").      -->\n<!-- And the HTML representation of an interactive exercise, when powered -->\n<!-- by Runestone services, needs an HTML id.  But the PreTeXt \"exercise\" -->\n<!-- that wraps it has its own HTML id necessary for targets of           -->\n<!-- cross-reference (in-context) URLs.  We will prefer @label for the    -->\n<!-- PreTeXt \"exercise\" HTML id.  And we will require a *stable* @label   -->\n<!-- from an author, which we will dress up here.  Notice that this can   -->\n<!-- change when an author declares a new edition.                        -->\n<xsl:template match=\"exercise|program|datafile|query|&PROJECT-LIKE;|task|video[@youtube]|exercises|worksheet|interactive[@platform = 'doenetml']|interactive[@iframe]\" mode=\"runestone-id\">\n    <!-- With no @xml:id and no @label we realize the author has not given    -->\n    <!-- any thought to a (semi-)peersistent identifire for the Runestone     -->\n    <!-- database.  So we call that out as an error.  And we do not even      -->\n    <!-- attempt to fallback to an automatically generated string, which      -->\n    <!-- would be malleable over time and editing.                            -->\n    <!-- As part of backwards-compatibility, we copy old @xml:id values into  -->\n    <!-- fresh @label.  But have an internal  @authored-label attribute whose -->\n    <!-- absence alerts us to the copying, which is now not best practice.    -->\n    <xsl:choose>\n         <!-- 2024-02-20: neuter thse warnings.  Somehow, it seems @authored-label -->\n         <!-- is not very reliable.  Were added in commit 29a42dc689cd772a         -->\n        <!--  -->\n        <xsl:when test=\"true()\"/>\n        <!--  -->\n        <xsl:when test=\"$b-host-runestone and not(@xml:id) and not(@authored-label)\">\n            <xsl:message>\n                <xsl:text>PTX:ERROR:  While building for a Runestone server, a PreTeXt \"</xsl:text>\n                <xsl:value-of select=\"local-name(.)\"/>\n                <xsl:text>\" element&#xa;</xsl:text>\n                <xsl:text>has been encountered without a @label attribute and without a @xml:id attribute.&#xa;</xsl:text>\n                <xsl:text>This will cause this Runestone component to fail to perform and there will be no&#xa;</xsl:text>\n                <xsl:text>identification of this component in the Runestone database.  You must add a&#xa;</xsl:text>\n                <xsl:text>@label attribute with a unique value.  (It is not necessary to add a @xml:id, &#xa;</xsl:text>\n                <xsl:text>it is consulted as part of a backward-compatibility arrangement you do not need).&#xa;</xsl:text>\n                <xsl:text>[You may get more than one message about this instance.]&#xa;</xsl:text>\n            </xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n        </xsl:when>\n        <xsl:when test=\"$b-host-runestone and not(@authored-label)\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING:  While building for a Runestone server, a PreTeXt \"</xsl:text>\n                <xsl:value-of select=\"local-name(.)\"/>\n                <xsl:text>\" element&#xa;</xsl:text>\n                <xsl:text>has been encountered without a @label attribute.  For reasons of backward-compatibility &#xa;</xsl:text>\n                <xsl:text>we have used the value of an @xml:id.  This may not be what you want, and as of 2024-02-15 &#xa;</xsl:text>\n                <xsl:text>is no longer best practice.  You can copy the @xml:id value exactly into a new @label &#xa;</xsl:text>\n                <xsl:text>attribute and this warning will stop AND your project's entries in any Runestone database &#xa;</xsl:text>\n                <xsl:text>will be preserved and function exactly as before.&#xa;</xsl:text>\n                <xsl:text>[You may get more than one message about this instance.]&#xa;</xsl:text>\n            </xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n        </xsl:when>\n    </xsl:choose>\n    <!-- We require a @label attribute, but allow it to be -->\n    <!-- the result of an automatic copy from an @xml:id.  -->\n    <xsl:variable name=\"label\">\n        <xsl:value-of select=\"@label\"/>\n    </xsl:variable>\n    <xsl:if test=\"$label != ''\">\n        <xsl:call-template name=\"runestone-label-prefix\"/>\n        <xsl:value-of select=\"$label\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Special handling for programs in exercise-like elements.              -->\n<!-- We want to associate those programs with the label on their container -->\n<!-- and NOT with an auto-generated label on the program itself that might -->\n<!-- come from an @xml:id.                                                 -->\n<!-- This is an implicit use of &PROJECT-LIKE; and should be kept in sync  -->\n<xsl:template match=\"exercise/program|task/program|project/program|activity/program|exploration/program|investigation/program\" mode=\"runestone-id\">\n    <xsl:variable name=\"label\">\n        <xsl:value-of select=\"../@label\"/>\n    </xsl:variable>\n    <xsl:if test=\"$label != ''\">\n        <xsl:call-template name=\"runestone-label-prefix\"/>\n        <xsl:value-of select=\"$label\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Prefix just for RS-server builds, in order that the database -->\n<!-- of exercises gets a globally unique identifier.              -->\n<!-- And for a non-RS-server build, we add a prefix in order to   -->\n<!-- differentiate from nearby (wrappers) uses of @label for      -->\n<!-- PreTeXt functions.                                           -->\n<xsl:template name=\"runestone-label-prefix\">\n    <xsl:choose>\n        <xsl:when test=\"$b-host-runestone\">\n            <!-- global variables defined in this stylesheet -->\n            <xsl:value-of select=\"$document-id\"/>\n            <xsl:text>_</xsl:text>\n            <xsl:value-of select=\"$edition\"/>\n            <xsl:text>_</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>rs-</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Need a unique filename for codelens traces                                -->\n<!-- visible-id can change if an xml:id is added to program for other reasons  -->\n<!-- Can't vary with build target (so no runestone-id)                         -->\n<!-- Should generally mirror rs-id but without prefix                          -->\n<xsl:template match=\"program[@interactive = 'codelens']\" mode=\"runestone-codelens-trace-filename\">\n    <xsl:choose>\n        <!-- If part of exercise-like, use that label, otherwise own                -->\n        <!-- This is an implicit use of &PROJECT-LIKE; and should be kept in sync   -->\n        <xsl:when test=\"parent::exercise|parent::task|parent::project|parent::activity|parent::exploration|parent::investigation\">\n            <xsl:value-of select=\"../@unique-id\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"@unique-id\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>.js</xsl:text>\n</xsl:template>\n\n<!--            -->\n<!-- Long Names -->\n<!--            -->\n\n<!-- Simple text representations of structural elements        -->\n<!-- Type, number (empty?), optional title typically           -->\n<!-- Ignore footnotes in these constructions                   -->\n<!-- Used for author's report, LaTeX typeout during processing -->\n<xsl:template match=\"*\" mode=\"long-name\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-simple\"/>\n</xsl:template>\n\n\n<!-- ######### -->\n<!-- Numbering -->\n<!-- ######### -->\n\n<!-- We mimic default LaTeX behavior as much as possible    -->\n<!--                                                        -->\n<!-- There are six numbering schemes in place:              -->\n<!-- 1) divisions: sections, subsections, etc.              -->\n<!-- 2) environments: theorems, examples, exercises, figures -->\n<!-- 3) equations: display mathematics                      -->\n<!-- 4) exercises: as part of a section of exercises        -->\n<!-- 5) bibliographic items: in multiple sections           -->\n<!-- 6) footnotes:                                          -->\n\n<!-- Every such item has two numbers                   -->\n<!--                                                   -->\n<!-- a) \"structural\": for example, X.Y.Z for an item   -->\n<!--     in Chapter X, Section Y, Subsection Z         -->\n<!-- b) \"serial\": for example N, where the item is     -->\n<!--     number N of its scheme, within some division  -->\n<!--                                                   -->\n<!-- We form a \"full number\" by concatenating these,   -->\n<!-- so \"Claim X.Y.Z.N\" would be the N-th instance of  -->\n<!-- a scheme 2 item with division X.Y.Z. An empty     -->\n<!-- serial number is indicative of not being numbered -->\n<!--                                                   -->\n<!-- Parameters of the form \"numbering.<scheme>.level\" -->\n<!-- control the number of components in these numbers -->\n\n<!-- ############## -->\n<!-- Serial Numbers -->\n<!-- ############## -->\n\n<!-- Serial Numbers: Divisions -->\n<!-- To respect the maximum level for numbering, we          -->\n<!-- return an empty serial number at an excessive level,    -->\n<!-- otherwise we call for a serial number relative to peers -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|backmatter/solutions\" mode=\"serial-number\">\n    <xsl:variable name=\"relative-level\">\n        <xsl:apply-templates select=\".\" mode=\"new-level\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$relative-level > $numbering-maxlevel\" />\n        <xsl:otherwise>\n            <xsl:value-of select=\"@serial\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Serial Numbers: Specialized Divisions -->\n<xsl:template match=\"exercises|solutions|worksheet|handout|reading-questions|references|glossary\" mode=\"serial-number\">\n    <xsl:variable name=\"is-numbered\">\n        <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$is-numbered = 'true'\">\n            <xsl:variable name=\"relative-level\">\n                <xsl:apply-templates select=\".\" mode=\"new-level\" />\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"$relative-level > $numbering-maxlevel\" />\n                <xsl:otherwise>\n                    <xsl:value-of select=\"@serial\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"serial-number\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Backmatter references and glossary are unique and un-numbered, -->\n<!-- so an empty serial number.  These matches supersede the above. -->\n<xsl:template match=\"backmatter/references\" mode=\"serial-number\" />\n<xsl:template match=\"backmatter/glossary\" mode=\"serial-number\" />\n\n<!-- Serial Numbers: Theorems, Examples, Inline Exercise, Figures, Etc. -->\n<!-- We determine the appropriate subtree to count within     -->\n<!-- given the document root and the configured depth         -->\n<!-- Note: the \"from\" attribute can only take a match pattern -->\n<!-- See: the footnote template below for a simpler example   -->\n\n<!-- First, if we are at the maximum numbering level,                            -->\n<!-- or less, for a particular scheme then we always base the                    -->\n<!-- subtree at the most immediate enclosing structural element                  -->\n<!-- If we are at a greater level than the maximum numbering level,              -->\n<!-- then we base the subtree at the enclosing structural                        -->\n<!-- element that is at the maximum level                                        -->\n<!-- This template returns the absolute level necessary based on                 -->\n<!-- the particular scheme as a parameter: theorems, equations and footnotes.    -->\n<!-- Divisional exercises and bibliographic items (in references) will always     -->\n<!-- get their serial numbers from within their immediately enclosing structure. -->\n<xsl:template match=\"*\" mode=\"absolute-subtree-level\">\n    <xsl:param name=\"numbering-items\" />\n    <!-- determine enclosing level of numbered item -->\n\n    <!-- determine if the object being numbered is inside    -->\n    <!-- a decorative \"exercises\", \"worksheet\", or \"handout\" -->\n    <xsl:variable name=\"inside-decorative\">\n        <xsl:if test=\"ancestor::*[self::exercises or self::reading-questions or self::worksheet or self::handout]\">\n            <xsl:variable name=\"is-numbered\">\n                <xsl:apply-templates select=\"ancestor::*[self::exercises or self::worksheet or self::handout or self::reading-questions]\" mode=\"is-specialized-own-number\"/>\n            </xsl:variable>\n            <xsl:if test=\"not($is-numbered ='true')\">\n                <xsl:text>true</xsl:text>\n            </xsl:if>\n        </xsl:if>\n    </xsl:variable>\n\n    <xsl:variable name=\"enclosing-level\">\n        <xsl:apply-templates select=\".\" mode=\"enclosing-level\" />\n    </xsl:variable>\n    <!-- we move up a level if the structural element is decorative -->\n    <xsl:variable name=\"raw-element-level\">\n        <xsl:choose>\n            <xsl:when test=\"$inside-decorative = 'true'\">\n                <xsl:value-of select=\"$enclosing-level - 1\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$enclosing-level\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- if we are deep into the tree, beyond resetting counters,           -->\n    <!-- then count from a subtree at the numbering level,                  -->\n    <!-- else remain within enclosing level, as structure number will reset -->\n    <xsl:variable name=\"raw-subtree-level\">\n        <xsl:choose>\n            <xsl:when test=\"$raw-element-level > $numbering-items\">\n                <xsl:value-of select=\"$numbering-items\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$raw-element-level\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:value-of select=\"$raw-subtree-level + $root-level\" />\n</xsl:template>\n\n<!-- \"Blocks\" can be counted \"all together,\" or some types may be \"split out.\" -->\n<!--                                                                           -->\n<!-- Definitions, theorems, axioms, remarks, computations,                     -->\n<!-- and examples always go together.                                          -->\n<!-- Projects, figures, and inline exercises may be split out individually.    -->\n<!--                                                                           -->\n<!-- For each of these items, we count the predecessors within each of the     -->\n<!-- four subgroups.  So every item has four \"atomic\" numbers.  The \"block\"    -->\n<!-- count may, or may not, contain the three other counts as determined by    -->\n<!-- options selected through the \"docinfo/numbering\" configuration.           -->\n\n\n<!-- Serial Numbers: Fundamental Blocks (Theorems, Etc.) -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" mode=\"serial-number\">\n    <xsl:apply-templates select=\".\" mode=\"overall-blocks-serial-number\" />\n</xsl:template>\n\n<!-- Serial Numbers: Projects -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"serial-number\">\n    <xsl:choose>\n        <xsl:when test=\"$b-number-project-distinct\">\n            <xsl:apply-templates select=\".\" mode=\"atomic-project-serial-number\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"overall-blocks-serial-number\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Serial Numbers: Figures -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"serial-number\">\n    <xsl:choose>\n        <xsl:when test=\"$b-number-figure-distinct\">\n            <xsl:apply-templates select=\".\" mode=\"atomic-figure-serial-number\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"overall-blocks-serial-number\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Serial Numbers: Inline Exercises -->\n<xsl:template match=\"exercise\" mode=\"serial-number\">\n    <xsl:choose>\n        <xsl:when test=\"$b-number-exercise-distinct\">\n            <xsl:apply-templates select=\".\" mode=\"atomic-exercise-serial-number\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"overall-blocks-serial-number\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We accumulate counts for any elements     -->\n<!-- included in the grand, overall block      -->\n<!-- count, while excluding those not included -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&FIGURE-LIKE;|exercise\" mode=\"overall-blocks-serial-number\">\n    <!-- always count fundamental blocks -->\n    <xsl:variable name=\"atomic-block\">\n        <xsl:apply-templates select=\".\" mode=\"atomic-block-serial-number\" />\n    </xsl:variable>\n    <!-- include project count? -->\n    <xsl:variable name=\"atomic-project\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-project-distinct\">\n                <xsl:value-of select=\"0\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"atomic-project-serial-number\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- include figure count? -->\n    <xsl:variable name=\"atomic-figure\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-figure-distinct\">\n                <xsl:value-of select=\"0\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"atomic-figure-serial-number\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- include exercise count? -->\n    <xsl:variable name=\"atomic-exercise\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-exercise-distinct\">\n                <xsl:value-of select=\"0\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"atomic-exercise-serial-number\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Add four groups and report -->\n    <xsl:value-of select=\"$atomic-block + $atomic-project + $atomic-figure + $atomic-exercise\" />\n</xsl:template>\n\n<!-- Atomic block serial number -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&FIGURE-LIKE;|exercise\" mode=\"atomic-block-serial-number\">\n    <xsl:variable name=\"subtree-level\">\n        <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n            <xsl:with-param name=\"numbering-items\" select=\"$numbering-blocks\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$subtree-level=-1\">\n            <xsl:number from=\"book|article|letter|memo\" level=\"any\" count=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=0\">\n            <xsl:number from=\"part\" level=\"any\" count=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=1\">\n            <xsl:number from=\"chapter|book/backmatter/appendix\" level=\"any\" count=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=2\">\n            <xsl:number from=\"section|article/backmatter/appendix|chapter/exercises|chapter/worksheet|chapter/handout|chapter/reading-questions\" level=\"any\" count=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=3\">\n            <xsl:number from=\"subsection|section/exercises|section/worksheet|section/handout|section/reading-questions\" level=\"any\" count=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=4\">\n            <xsl:number from=\"subsubsection|subsection/exercises|subsection/worksheet|subsection/handout|subsection/reading-questions\" level=\"any\" count=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Subtree level for atomic block number computation is out-of-bounds (<xsl:value-of select=\"$subtree-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Atomic project serial number -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&FIGURE-LIKE;|exercise\" mode=\"atomic-project-serial-number\">\n    <xsl:variable name=\"subtree-level\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-project-distinct\">\n                <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n                    <xsl:with-param name=\"numbering-items\" select=\"$numbering-projects\" />\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n                    <xsl:with-param name=\"numbering-items\" select=\"$numbering-blocks\" />\n                </xsl:apply-templates>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$subtree-level=-1\">\n            <xsl:number from=\"book|article|letter|memo\" level=\"any\" count=\"&PROJECT-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=0\">\n            <xsl:number from=\"part\" level=\"any\" count=\"&PROJECT-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=1\">\n            <xsl:number from=\"chapter|book/backmatter/appendix\" level=\"any\" count=\"&PROJECT-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=2\">\n            <xsl:number from=\"section|article/backmatter/appendix|chapter/exercises|chapter/worksheet|chapter/handout|chapter/reading-questions\" level=\"any\" count=\"&PROJECT-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=3\">\n            <xsl:number from=\"subsection|section/exercises|section/worksheet|section/handout|section/reading-questions\" level=\"any\" count=\"&PROJECT-LIKE;\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=4\">\n            <xsl:number from=\"subsubsection|subsection/exercises|subsection/worksheet|subsection/handout|subsection/reading-questions\" level=\"any\" count=\"&PROJECT-LIKE;\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Subtree level for project number computation is out-of-bounds (<xsl:value-of select=\"$subtree-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Atomic figure serial number -->\n<!-- Note that since these are captioned items:       -->\n<!-- If these live in \"sidebyside\", which is in       -->\n<!-- turn contained in a \"figure\", then they will     -->\n<!-- earn a subnumber (e.g (a), (b),..), so we ignore -->\n<!-- them in these counts of top-level numbered items -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&FIGURE-LIKE;|exercise\" mode=\"atomic-figure-serial-number\">\n    <xsl:variable name=\"subtree-level\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-figure-distinct\">\n                <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n                    <xsl:with-param name=\"numbering-items\" select=\"$numbering-figures\" />\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n                    <xsl:with-param name=\"numbering-items\" select=\"$numbering-blocks\" />\n                </xsl:apply-templates>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$subtree-level=-1\">\n            <xsl:number from=\"book|article|letter|memo\" level=\"any\"\n                count=\"figure[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                table[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                listing[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                list[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=0\">\n            <xsl:number from=\"part\" level=\"any\"\n                count=\"figure[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                table[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                listing[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                list[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=1\">\n            <xsl:number from=\"chapter|book/backmatter/appendix\" level=\"any\"\n                count=\"figure[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                table[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                listing[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                list[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=2\">\n            <xsl:number from=\"section|article/backmatter/appendix|chapter/exercises|chapter/worksheet|chapter/handout|chapter/reading-questions\" level=\"any\"\n                count=\"figure[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                table[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                listing[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                list[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=3\">\n            <xsl:number from=\"subsection|section/exercises|section/worksheet|section/handout|section/reading-questions\" level=\"any\"\n                count=\"figure[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                table[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                listing[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                list[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=4\">\n            <xsl:number from=\"subsubsection|subsection/exercises|subsection/worksheet|subsection/handout|subsection/reading-questions\" level=\"any\"\n                count=\"figure[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                table[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                listing[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]|\n                list[not(parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)]\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Subtree level for atomic figure number computation is out-of-bounds (<xsl:value-of select=\"$subtree-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Atomic inline exercise serial number -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|exercise|&FIGURE-LIKE;\" mode=\"atomic-exercise-serial-number\">\n    <xsl:variable name=\"subtree-level\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-exercise-distinct\">\n                <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n                    <xsl:with-param name=\"numbering-items\" select=\"$numbering-exercises\" />\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n                    <xsl:with-param name=\"numbering-items\" select=\"$numbering-blocks\" />\n                </xsl:apply-templates>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$subtree-level=-1\">\n            <xsl:number from=\"book|article|letter|memo\" level=\"any\"\n                count=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=0\">\n            <xsl:number from=\"part\" level=\"any\"\n                count=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=1\">\n            <xsl:number from=\"chapter|book/backmatter/appendix\" level=\"any\"\n                count=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=2\">\n            <xsl:number from=\"section|article/backmatter/appendix|chapter/exercises|chapter/worksheet|chapter/handout\" level=\"any\"\n                count=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=3\">\n            <xsl:number from=\"subsection|section/exercises|section/worksheet|section/handout\" level=\"any\"\n                count=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=4\">\n            <xsl:number from=\"subsubsection|subsection/exercises|subsection/worksheet|subsection/handout\" level=\"any\"\n                count=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Subtree level for atomic exercise number computation is out-of-bounds (<xsl:value-of select=\"$subtree-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Proofs may be numbered (for cross-reference knowls) -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"serial-number\">\n    <xsl:number count=\"&PROOF-LIKE;\"/>\n</xsl:template>\n\n\n<!-- Serial Numbers: Equations -->\n<!-- We determine the appropriate subtree to count within   -->\n<!-- given the document root and the configured depth       -->\n<!-- Pre-processor supplies @pi:numbered onto every \"mrow\"  -->\n<!-- and every displayed equation is eventually held in an  -->\n<!-- \"mrow\", so counting is straightforward.  Presence of a -->\n<!-- local tag (@tag) is considered to be unnumbered.       -->\n<xsl:template match=\"mrow[@pi:numbered = 'yes']\" mode=\"serial-number\">\n    <xsl:variable name=\"subtree-level\">\n        <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n            <xsl:with-param name=\"numbering-items\" select=\"$numbering-equations\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$subtree-level=-1\">\n            <xsl:number from=\"book|article|letter|memo\" level=\"any\" count=\"mrow[@pi:numbered = 'yes']\"/>\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=0\">\n            <xsl:number from=\"part\" level=\"any\" count=\"mrow[@pi:numbered = 'yes']\"/>\n            </xsl:when>\n        <xsl:when test=\"$subtree-level=1\">\n            <xsl:number from=\"chapter|book/backmatter/appendix\" level=\"any\" count=\"mrow[@pi:numbered = 'yes']\"/>\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=2\">\n            <xsl:number from=\"section|article/backmatter/appendix|chapter/exercises|chapter/worksheet|chapter/handout|chapter/reading-questions\" level=\"any\" count=\"mrow[@pi:numbered = 'yes']\"/>\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=3\">\n            <xsl:number from=\"subsection|section/exercises|section/worksheet|section/handout|section/reading-questions\" level=\"any\" count=\"mrow[@pi:numbered = 'yes']\"/>\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=4\">\n            <xsl:number from=\"subsubsection|subsection/exercises|subsection/worksheet|subsection/handout|subsection/reading-questions\" level=\"any\" count=\"mrow[@pi:numbered = 'yes']\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Subtree level for equation number computation is out-of-bounds (<xsl:value-of select=\"$subtree-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- An authored bare \"md\" may carry an @xml:id, and so may be cross-referenced. -->\n<!-- We consider its number, as a target of a cross-reference to be that of the  -->\n<!-- contained, single \"mrow\".  This may be an actual number or may be an empty  -->\n<!-- string, depending on how the \"md\" was meant to be numbered.                 -->\n<xsl:template match=\"md[@pi:authored-one-line]\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"mrow\" mode=\"serial-number\"/>\n</xsl:template>\n\n<!-- Serial Numbers: Exercises in Exercises or Worksheet or Reading Question Divisions -->\n<!-- Note: numbers may be hard-coded for longevity        -->\n<!-- exercisegroups  and future lightweight divisions may -->\n<!-- be intermediate, but should not hinder the count     -->\n<!-- NB: there are three historical \"apply-templates\"     -->\n<!-- here which might now be written as \"value-of\",       -->\n<!-- but perhaps it is irrelevant                         -->\n<xsl:template match=\"exercises//exercise\" mode=\"serial-number\">\n    <xsl:number from=\"exercises\" level=\"any\" count=\"exercise\" />\n</xsl:template>\n\n<xsl:template match=\"exercises//exercise[@number]\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"@number\" />\n</xsl:template>\n\n<xsl:template match=\"worksheet//exercise\" mode=\"serial-number\">\n    <xsl:number from=\"worksheet\" level=\"any\" count=\"exercise\" />\n</xsl:template>\n\n<xsl:template match=\"worksheet//exercise[@number]\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"@number\" />\n</xsl:template>\n\n<xsl:template match=\"reading-questions//exercise\" mode=\"serial-number\">\n    <xsl:number from=\"reading-questions\" level=\"any\" count=\"exercise\" />\n</xsl:template>\n\n<xsl:template match=\"reading-questions//exercise[@number]\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"@number\" />\n</xsl:template>\n\n<!-- Serial Numbers: Solutions -->\n<!-- Hints, answers, solutions may be numbered (for cross-reference knowls) -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"serial-number\">\n    <xsl:number />\n</xsl:template>\n\n<!-- Serial Numbers: Bibliographic Items -->\n<!-- Always sequential within a References section -->\n<xsl:template match=\"biblio\" mode=\"serial-number\">\n    <xsl:number from=\"references\" level=\"any\" count=\"biblio\" />\n</xsl:template>\n<!-- Notes may be numbered (for cross-reference knowls) -->\n<xsl:template match=\"biblio/note\" mode=\"serial-number\">\n    <xsl:number />\n</xsl:template>\n\n<!-- Hints, answers, solutions, notes are often singletons.     -->\n<!-- This utility returns the serial number, or if a singleton, -->\n<!-- returns an empty string.  Employing templates will need    -->\n<!-- to check if they want to react accordingly, or they should -->\n<!-- just ask for the serial number itself if they don't care.  -->\n<xsl:template match=\"&SOLUTION-LIKE;|biblio/note\" mode=\"non-singleton-number\">\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n    </xsl:variable>\n    <xsl:choose>\n        <!-- non-singletons always of interest/use -->\n        <xsl:when test=\"not($the-number = 1)\">\n            <xsl:value-of select=\"$the-number\" />\n        </xsl:when>\n        <!-- now being careful with \"1\" -->\n        <xsl:otherwise>\n            <xsl:variable name=\"elt-name\" select=\"local-name(.)\" />\n            <!-- We go to the parent, get all like children, then     -->\n            <!-- filter by name, since hints and answers, etc all mix -->\n            <xsl:variable name=\"siblings-and-self\" select=\"parent::*/*[local-name(.) = $elt-name]\" />\n            <!-- maybe \"1\" is interesting too -->\n            <!-- if not, no result whatsoever -->\n            <xsl:if test=\"count($siblings-and-self) > 1\">\n                <xsl:value-of select=\"$the-number\" />\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Serial Numbers: Footnotes -->\n<!-- We determine the appropriate subtree to count within -->\n<!-- given the document root and the configured depth     -->\n<xsl:template match=\"fn\" mode=\"serial-number\">\n    <xsl:variable name=\"subtree-level\">\n        <xsl:apply-templates select=\".\" mode=\"absolute-subtree-level\">\n            <xsl:with-param name=\"numbering-items\" select=\"$numbering-footnotes\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$subtree-level=-1\">\n            <xsl:number from=\"book|article|letter|memo\" level=\"any\" count=\"fn\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=0\">\n            <xsl:number from=\"part\" level=\"any\" count=\"fn\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=1\">\n            <xsl:number from=\"chapter|book/backmatter/appendix\" level=\"any\" count=\"fn\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=2\">\n            <xsl:number from=\"section|article/backmatter/appendix|chapter/exercises|chapter/worksheet|chapter/handout|chapter/reading-questions\" level=\"any\" count=\"fn\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=3\">\n            <xsl:number from=\"subsection|section/exercises|section/worksheet|section/handout|section/reading-questions\" level=\"any\" count=\"fn\" />\n        </xsl:when>\n        <xsl:when test=\"$subtree-level=4\">\n            <xsl:number from=\"subsubsection|subsection/exercises|subsection/worksheet|subsection/handout|subsection/reading-questions\" level=\"any\" count=\"fn\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Subtree level for footnote number computation is out-of-bounds (<xsl:value-of select=\"$subtree-level\" />)</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Serial Numbers: Subfigures, Subtables, Sublisting-->\n<!-- Subnumbering only happens with figures            -->\n<!-- or tables arranged in a sidebyside, which         -->\n<!-- is again contained inside a figure, the           -->\n<!-- element providing the overall caption             -->\n<!-- The serial number is a sub-number, (a), (b), (c), -->\n<!-- *Always* with the parenthetical formatting        -->\n<!-- Debatable if parentheses should come from here    -->\n\n\n<!-- In this case the structure number is the          -->\n<!-- full number of the enclosing figure               -->\n\n<!-- a lone sidebyside, not in a sbsgroup -->\n<xsl:template match=\"figure/sidebyside/figure | figure/sidebyside/table | figure/sidebyside/listing | figure/sidebyside/list\" mode=\"serial-number\">\n    <xsl:text>(</xsl:text>\n    <xsl:number format=\"a\" count=\"&FIGURE-LIKE;\"/>\n    <xsl:text>)</xsl:text>\n</xsl:template>\n\n<!-- when inside a sbsgroup, subnumbers range across entire group -->\n<xsl:template match=\"figure/sbsgroup/sidebyside/figure | figure/sbsgroup/sidebyside/table | figure/sbsgroup/sidebyside/listing | figure/sbsgroup/sidebyside/list\" mode=\"serial-number\">\n    <xsl:text>(</xsl:text>\n    <xsl:number format=\"a\" count=\"&FIGURE-LIKE;\" level=\"any\" from=\"sbsgroup\"/>\n    <xsl:text>)</xsl:text>\n</xsl:template>\n\n<!-- Serial Numbers: List Items -->\n\n<!-- First, the number of a list item within its own ordered list.  This -->\n<!-- trades on the PTX format codes being identical to the XSLT codes.   -->\n<xsl:template match=\"ol/li\" mode=\"item-number\">\n    <xsl:variable name=\"code\" select=\"../@format-code\" />\n    <xsl:number format=\"{$code}\" />\n</xsl:template>\n\n<!-- Second, the serial number computed recursively.  The       -->\n<!-- entire hierarchy should be ordered lists, since otherwise, -->\n<!-- the template just below will apply instead.                -->\n<xsl:template match=\"ol/li\" mode=\"serial-number\">\n    <xsl:if test=\"ancestor::li\">\n        <xsl:apply-templates select=\"ancestor::li[1]\" mode=\"serial-number\" />\n        <xsl:text>.</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"item-number\" />\n</xsl:template>\n\n<!-- If any ancestor of a list item is not ordered, this     -->\n<!-- template should match first, and the serial number      -->\n<!-- will be empty, the signal that an object has no number. -->\n<xsl:template match=\"ul//li|dl//li\" mode=\"serial-number\" />\n\n\n<!-- Serial Numbers: Exercise Groups -->\n<!-- We provide the range of the     -->\n<!-- group as its serial number.     -->\n<xsl:template match=\"exercisegroup\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"exercise[1]\" mode=\"serial-number\" />\n    <xsl:call-template name=\"ndash-character\"/>\n    <xsl:apply-templates select=\"exercise[last()]\" mode=\"serial-number\" />\n</xsl:template>\n\n<!-- Serial Numbers: Tasks (in Projects) -->\n<!-- Tasks have \"list\" numbers, which we use on labels -->\n<!-- (we could use serial numbers for a more complex look) -->\n<xsl:template match=\"task\" mode=\"list-number\">\n    <xsl:number format=\"a\" />\n</xsl:template>\n<xsl:template match=\"task/task\" mode=\"list-number\">\n    <xsl:number format=\"i\" />\n</xsl:template>\n<xsl:template match=\"task/task/task\" mode=\"list-number\">\n    <xsl:number format=\"A\" />\n</xsl:template>\n<!-- concatenate list numbers to get serial numbers, eg a.i.A -->\n<xsl:template match=\"task\" mode=\"serial-number\">\n    <xsl:apply-templates select=\".\" mode=\"list-number\" />\n</xsl:template>\n<xsl:template match=\"task/task\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"parent::task\" mode=\"serial-number\" />\n    <xsl:text>.</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"list-number\" />\n</xsl:template>\n<xsl:template match=\"task/task/task\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"parent::task\" mode=\"serial-number\" />\n    <xsl:text>.</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"list-number\" />\n</xsl:template>\n\n<!-- Serial Numbers: fragments -->\n<!-- Simply numbered sequentially, globally. -->\n<xsl:template match=\"fragment\" mode=\"serial-number\">\n    <xsl:number level=\"any\"/>\n</xsl:template>\n\n\n<!-- Serial Numbers: the unnumbered     -->\n<!-- Empty string signifies not numbered -->\n\n<!-- We choose not to number unique, or semi-unique      -->\n<!-- (eg prefaces, colophons), elements.  Other elements -->\n<!-- are meant as local commentary, and may also carry   -->\n<!-- a title for identification and cross-referencing.   -->\n<xsl:template match=\"book|article|letter|memo|paragraphs|blockquote|preface|abstract|acknowledgement|biography|foreword|dedication|contributors|index-part|index[index-list]|colophon|webwork|p|assemblage|aside|biographical|historical|case|contributor\" mode=\"serial-number\" />\n\n<!-- Some divisions, like \"exercises\", \"solutions\", \"references\",     -->\n<!-- are part of the hierarchical numbering scheme, and look simply   -->\n<!-- to their parent.  Which could be the top-level when in th main   -->\n<!-- matter (we handle cases of children of \"backmatter\" carefully    -->\n<!-- elsewhere or it does not happen).  So we need an empty structure -->\n<!-- number for these cases.                                          -->\n<xsl:template match=\"book|article|letter|memo\" mode=\"structure-number\" />\n\n<!-- Some items are \"containers\".  They are not numbered, you  -->\n<!-- cannot point to them, they are invisible to the reader    -->\n<!-- in a way.  We kill their serial numbers explicitly here.  -->\n<!-- Lists live in paragraphs, exercises, objectives, so       -->\n<!-- should be referenced as part of some enclosing element.   -->\n<!-- \"mathbook\" helps some tree-climbing routines halt -->\n<xsl:template match=\"mathbook|pretext|introduction|conclusion|frontmatter|backmatter|sidebyside|sbsgroup|ol|ul|dl|statement\" mode=\"serial-number\" />\n\n<!-- Poems go by their titles, not numbers -->\n<xsl:template match=\"poem\" mode=\"serial-number\" />\n\n<!-- Preformatted (\"pre\") appear in search results by name -->\n<xsl:template match=\"pre\" mode=\"serial-number\" />\n\n<!-- List items, subordinate to an unordered list, or a description  -->\n<!-- list, will have numbers that are especically ambiguous, perhaps -->\n<!-- even very clsoe within a multi-level list. They are unnumbered  -->\n<!-- in the vicinity of computing serial numbers of list items in    -->\n<!-- ordered lists.                                                  -->\n\n<!-- Every displayed equation eventually lands inside an \"mrow\" and  -->\n<!-- the pre-processor identifies it as numbered or not, so the      -->\n<!-- unnumbered ones are straightforward.  A local tag (@tag)        -->\n<!-- authored on an \"mrow\" is considered an unnumbered equation.     -->\n<xsl:template match=\"mrow[@pi:numbered = 'no']\" mode=\"serial-number\"/>\n\n<!-- WeBWorK problems are never numbered, because they live    -->\n<!-- in (numbered) exercises.  But they have identically named -->\n<!-- components of exercises, so we might need to explicitly   -->\n<!-- make webwork/solution, etc to be unnumbered.              -->\n\n<!-- Glossary items (\"gi\"), in a \"glossary\", are known by their title -->\n<xsl:template match=\"gi\" mode=\"serial-number\"/>\n\n<!-- GOAL-LIKE are one-per-subdivision,               -->\n<!-- and so get their serial number from their parent -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"serial-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"serial-number\" />\n</xsl:template>\n\n<!-- A subexercises is meant to be minimal, and does not have a number -->\n<xsl:template match=\"subexercises\" mode=\"serial-number\"/>\n\n<!-- We only allow one \"instructions\" for an \"interactive\" -->\n<xsl:template match=\"interactive/instructions\" mode=\"serial-number\"/>\n\n<!-- Multi-part WeBWorK problems have PTX elements        -->\n<!-- called \"stage\" which typically render as \"Part...\"   -->\n<!-- Their serial numbers are useful, there is no attempt -->\n<!-- above to integrate these into our general scheme     -->\n<!-- These are just counted among enclosing \"webwork\"     -->\n<xsl:template match=\"webwork/stage\" mode=\"serial-number\">\n    <xsl:number count=\"stage\" from=\"webwork\" />\n</xsl:template>\n\n<!-- But when a problem is part of the OPL and is retrieved -->\n<!-- from the server, then we don't see the \"stage\" element -->\n<!-- until we merge in the \"static\" version as part of the  -->\n<!-- \"webwork-reps\" collection                              -->\n<xsl:template match=\"webwork-reps/static/stage\" mode=\"serial-number\">\n    <xsl:number count=\"stage\" from=\"static\" />\n</xsl:template>\n\n<!-- TEMPORARY -->\n<!-- 2023-02-16: placeholder numbers for OPENPROBLEM-LIKE, DISCUSSION-LIKE -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"serial-number\">\n    <xsl:text>N</xsl:text>\n</xsl:template>\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"structure-number\">\n    <xsl:text>M</xsl:text>\n</xsl:template>\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"serial-number\">\n    <xsl:number select=\"parent::*\" count=\"&DISCUSSION-LIKE;\"/>\n</xsl:template>\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"number\"/>\n</xsl:template>\n\n<!-- No numbers on pages of worksheets -->\n<xsl:template match=\"page\" mode=\"serial-number\"/>\n\n<!-- Should not drop in here.  Ever. -->\n<xsl:template match=\"*\" mode=\"serial-number\">\n    <xsl:text>[NUM]</xsl:text>\n    <xsl:message>PTX:ERROR:   An object (<xsl:value-of select=\"local-name(.)\" />) lacks a serial number, search output for \"[NUM]\"</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n</xsl:template>\n\n<!--                       -->\n<!-- Multi-Numbers Utility -->\n<!--                       -->\n\n<!--                         -->\n<!-- Structure Numbers       -->\n<!--                         -->\n\n<!-- We compute multi-part numbers to the necessary,  -->\n<!-- or configured, number of components              -->\n<!-- NB: *every* structure number should finish with  -->\n<!-- a period as a separator, which is often provided -->\n<!-- by the \"multi-number\" template.  Some of the     -->\n<!-- cross-reference text code adds a period before   -->\n<!-- testing equality of strings                      -->\n\n<!-- Structure Numbers: Divisions -->\n<!-- NB: this is number of the *container* of the division,   -->\n<!-- a serial number for the division itself will be appended -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|backmatter/solutions\" mode=\"structure-number\">\n    <xsl:value-of select=\"@struct\"/>\n</xsl:template>\n\n<!-- Structure Numbers: Specialized Divisions -->\n<!-- Some divisions get their numbers from their parents, or  -->\n<!-- in other ways.  We are careful to do this by determining -->\n<!-- the serial-numer and the structure-number, so that other -->\n<!-- devices (like local numbers) will behave correctly.      -->\n<!-- Serial numbers are computed elsewhere, but in tandem.    -->\n<xsl:template match=\"exercises|solutions[not(parent::backmatter)]|worksheet|handout|reading-questions|references[not(parent::backmatter)]|glossary[not(parent::backmatter)]\" mode=\"structure-number\">\n    <xsl:variable name=\"is-numbered\">\n        <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$is-numbered = 'true'\">\n            <xsl:value-of select=\"@struct\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"structure-number\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n<!-- \"references\" and \"glossary\" are solo in main matter -->\n<!-- divisions, unique and not numbered in back matter   -->\n<xsl:template match=\"backmatter/references\" mode=\"structure-number\" />\n<xsl:template match=\"backmatter/glossary\" mode=\"structure-number\" />\n\n\n<!-- Structure Numbers: Theorems, Examples, Projects, Figures -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&EXAMPLE-LIKE;\" mode=\"structure-number\">\n    <xsl:call-template name=\"block-structure-number\">\n        <xsl:with-param name=\"levels\" select=\"$numbering-blocks\"/>\n    </xsl:call-template>\n</xsl:template>\n<!-- PROJECT-LIKE is now independent, under control of $numbering-projects -->\n<!-- But all ready to become elective -->\n<xsl:template match=\"&PROJECT-LIKE;\"  mode=\"structure-number\">\n    <xsl:variable name=\"project-levels\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-project-distinct\">\n                <xsl:value-of select=\"$numbering-projects\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$numbering-blocks\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:call-template name=\"block-structure-number\">\n        <xsl:with-param name=\"levels\" select=\"$project-levels\"/>\n    </xsl:call-template>\n</xsl:template>\n<!-- FIGURE-LIKE get a structure number from default $numbering-blocks -->\n<!-- or from \"docinfo\" independent numbering configuration             -->\n<xsl:template match=\"&FIGURE-LIKE;\"  mode=\"structure-number\">\n    <xsl:variable name=\"figure-levels\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-figure-distinct\">\n                <xsl:value-of select=\"$numbering-figures\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$numbering-blocks\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:call-template name=\"block-structure-number\">\n        <xsl:with-param name=\"levels\" select=\"$figure-levels\"/>\n    </xsl:call-template>\n</xsl:template>\n<!-- Proofs get structure number from parent theorem -->\n<!-- NB: assumes proofs are not detached? Maybe not.      -->\n<!-- Definitely a detached proof in a \"paragraphs\" is bad -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"number\" />\n</xsl:template>\n<!-- Captioned items, arranged in a side-by-side,      -->\n<!-- then inside a captioned figure, earn a serial     -->\n<!-- number that is a letter.  So their structure      -->\n<!-- number comes from the enclosing captioned figure. -->\n<!-- The sidebyside may be a child of the figure,      -->\n<!-- or wrapped in an sbsgroup.                        -->\n<xsl:template match=\"figure/sidebyside/figure | figure/sidebyside/table | figure/sidebyside/listing | figure/sidebyside/list\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::sidebyside/parent::figure\" mode=\"number\" />\n</xsl:template>\n<xsl:template match=\"figure/sbsgroup/sidebyside/figure | figure/sbsgroup/sidebyside/table | figure/sbsgroup/sidebyside/listing | figure/sbsgroup/sidebyside/list\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::sidebyside/parent::sbsgroup/parent::figure\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Equations -->\n<!-- \"mrow\" may be numbered, and bare \"md\" inherit a number from their  -->\n<!-- manufactured single \"mrow\".  So we need a structure number for the -->\n<!-- numbered versions of these elements.                               -->\n<xsl:template match=\"mrow|md[@pi:authored-one-line]\" mode=\"structure-number\">\n    <xsl:call-template name=\"block-structure-number\">\n        <xsl:with-param name=\"levels\" select=\"$numbering-equations\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Structure Numbers: Inline Exercises -->\n<!-- Follows the theorem/figure/etc scheme (can't poll parent) -->\n<xsl:template match=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"structure-number\">\n    <xsl:variable name=\"exercise-levels\">\n        <xsl:choose>\n            <xsl:when test=\"$b-number-exercise-distinct\">\n                <xsl:value-of select=\"$numbering-exercises\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$numbering-blocks\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:call-template name=\"block-structure-number\">\n        <xsl:with-param name=\"levels\" select=\"$exercise-levels\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Structure Numbers: Divisional and Worksheet Exercises -->\n<!-- Within a \"exercises\" or \"worksheet\", look up to enclosing division -->\n<!-- in order to decide where the structure number comes from           -->\n<xsl:template match=\"exercises//exercise|worksheet//exercise|reading-questions//exercise\" mode=\"structure-number\">\n    <!-- Need to look up through \"exercisegroup\", \"subexercises\", \"sidebyside\", etc -->\n    <!-- Only one of these specialized divisions, just a single node in variable    -->\n    <xsl:variable name=\"container\" select=\"ancestor::*[self::exercises or self::worksheet or self::reading-questions]\"/>\n    <xsl:apply-templates select=\"$container\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Exercise Groups -->\n<!-- An exercisegroup gets it structure number from the parent exercises -->\n<xsl:template match=\"exercisegroup\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"number\" />\n</xsl:template>\n\n<!-- Hints, answers, solutions get structure number from parent       -->\n<!-- exercise's number. Identical for inline and divisional exercises -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"number\" />\n</xsl:template>\n\n<!-- Anything within a webwork-reps that needs a structure number    -->\n<!-- gets it from the enclosing exercise.                            -->\n<xsl:template match=\"webwork-reps//*\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"ancestor::exercise\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Bibliographic Items -->\n<!-- Bibliographic items get their number from the containing     -->\n<!-- \"references\", which may be solo in an unstructured division, -->\n<!-- or one of potentially several in a structured division.      -->\n<!-- Since the global \"references\" (child of \"backmatter\") is not -->\n<!-- numbered, these items will have un-qualified numbers         -->\n<!-- (serial number only). -->\n<xsl:template match=\"biblio\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"number\" />\n</xsl:template>\n\n<!-- Notes get structure number from parent biblio's number -->\n<xsl:template match=\"biblio/note\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Footnotes -->\n<xsl:template match=\"fn\" mode=\"structure-number\">\n    <xsl:call-template name=\"block-structure-number\">\n        <xsl:with-param name=\"levels\" select=\"$numbering-footnotes\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Structure Numbers: Lists -->\n<!-- Lists occur in paragraphs (anonymously), in \"list\"      -->\n<!-- blocks (numbered), and within exercises (numbered).     -->\n<!-- Typically we are interested in list items (only),       -->\n<!-- since that is where there is content.  And then we      -->\n<!-- are only interested in the list items within an ordered -->\n<!-- list.  We control for items under unordered lists or    -->\n<!-- description lists elsewhere by providing empty numbers. -->\n<!-- NB: the order of these templates may matter             -->\n<xsl:template match=\"li\" mode=\"structure-number\" />\n\n<xsl:template match=\"list//li\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"ancestor::list\" mode=\"number\" />\n</xsl:template>\n\n<xsl:template match=\"exercise//li\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"ancestor::exercise\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Tasks (in projects) -->\n<!-- A task gets it structure number from the parent project-like -->\n<xsl:template match=\"task\" mode=\"structure-number\">\n    <!-- ancestors, strip tasks, get number of next enclosure -->\n    <xsl:apply-templates select=\"ancestor::*[not(self::task)][1]\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: GOAL-LIKE -->\n<!-- Objectives are one-per-subdivision, and so   -->\n<!-- get their structure number from their parent -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"parent::*\" mode=\"structure-number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Objective and Outcome-->\n<!-- A single objective or outcome is a list item -->\n<!-- in an objectives or outcomes environment     -->\n<xsl:template match=\"objectives/ol/li|outcomes/ol/li\" mode=\"structure-number\">\n    <xsl:apply-templates select=\"ancestor::*[&STRUCTURAL-FILTER;][1]\" mode=\"number\" />\n</xsl:template>\n\n<!-- Structure Numbers: Fragment -->\n<!-- We number serially, see below -->\n<xsl:template match=\"fragment\" mode=\"structure-number\"/>\n\n<!-- worksheet pages are unnumbered -->\n<xsl:template match=\"page\" mode=\"structure-number\"/>\n\n<!-- Should not drop in here.  Ever. -->\n<xsl:template match=\"*\" mode=\"structure-number\">\n    <xsl:text>[STRUCT]</xsl:text>\n    <xsl:message>PTX:ERROR:   An object (<xsl:value-of select=\"local-name(.)\" />) lacks a structure number, search output for \"[STRUCT]\"</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n</xsl:template>\n\n<!--              -->\n<!-- Full Numbers -->\n<!--              -->\n\n<!-- Now trivial, the container structure plus the serial.  -->\n<!-- We condition on empty serial number in order to create -->\n<!-- empty full numbers.  This is where we add separator,   -->\n<!-- normally a period, but for a list item within a named  -->\n<!-- list, we use a colon (a double period?).               -->\n<xsl:template match=\"*\" mode=\"number\">\n    <xsl:variable name=\"serial\">\n        <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$serial = ''\" />\n        <xsl:otherwise>\n            <xsl:variable name=\"structure\">\n                <xsl:apply-templates select=\".\" mode=\"structure-number\" />\n            </xsl:variable>\n            <xsl:if test=\"not($structure='')\">\n                <xsl:value-of select=\"$structure\" />\n                <xsl:choose>\n                    <xsl:when test=\"self::li and ancestor::list\">\n                        <xsl:text>:</xsl:text>\n                    </xsl:when>\n                    <!-- A figure-like inside a sidebyside (or       -->\n                    <!-- sbsgroup) inside a figure is subnumbered    -->\n                    <!-- with a letter like \"(a)\", so the serial     -->\n                    <!-- number already carries its own delimiter    -->\n                    <!-- and no period separator is needed.          -->\n                    <xsl:when test=\"(&FIGURE-FILTER;) and (parent::sidebyside/parent::figure or parent::sidebyside/parent::sbsgroup/parent::figure)\"/>\n                    <xsl:otherwise>\n                        <xsl:text>.</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:if>\n            <xsl:value-of select=\"$serial\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!--                       -->\n<!-- Circular Case Numbers -->\n<!--                       -->\n\n<!-- These two templates are to facilitate outputting ⇒\tand ⇐ in different target formats. -->\n<!-- They are (or should be) overridden with appropriate templates of same name in the     -->\n<!-- -latex, -html, etc conversions.                                                       -->\n<xsl:template name=\"double-right-arrow-symbol\">\n    <xsl:message>PTX:BUG: A \"case\" has \"direction\" equal to either \"forward\" or \"cycle\", but the conversion for this output target does not have a double right arrow symbol defined.</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n</xsl:template>\n<xsl:template name=\"double-left-arrow-symbol\">\n    <xsl:message>PTX:BUG: A \"case\" has \"direction\" equal to \"backward\", but the conversion for this output target does not have a double left arrow symbol defined.</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n</xsl:template>\n<!-- This template is to add an extra small horizontal space between the outer delimiters -->\n<!-- and the inner content of the \"cycle\" title for a \"case\", in case the \"marker\" on the -->\n<!-- corresponding \"ol\" also involves delimiters. Not an error if this is left undefined  -->\n<!-- or is defined to be a null string in a particular conversion stylesheet, in which    -->\n <!-- case no extra space is added. -->\n<xsl:template name=\"case-cycle-delimiter-space\">\n    <xsl:message>PTX:BUG A \"case\" has \"direction\" equal to \"cycle\", but the conversion for this output target does not have a \"delimiter space\" symbol defined. The maintainer for this output target may wish to know about this (or may wish to set the \"delimiter space\" symbol to be a null string to suppress this warning message).</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n</xsl:template>\n\n<xsl:template match=\"ol\" mode=\"marker-formatted-case-cycle\">\n    <xsl:param name=\"from\" />\n    <xsl:param name=\"to\" />\n    <xsl:variable name=\"format-code\">\n        <xsl:choose>\n            <xsl:when test=\"self::node()[@format-code]\">\n                <xsl:value-of select=\"./@format-code\" />\n            </xsl:when>\n            <xsl:otherwise>1</xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"adjusted-from\">\n        <xsl:choose>\n            <xsl:when test=\"$format-code = '0'\"><xsl:value-of select=\"$from - 1\" /></xsl:when>\n            <xsl:otherwise><xsl:value-of select=\"$from\" /></xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"adjusted-to\">\n        <xsl:choose>\n            <xsl:when test=\"$format-code = '0'\"><xsl:value-of select=\"$to - 1\" /></xsl:when>\n            <xsl:otherwise><xsl:value-of select=\"$to\" /></xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"original-marker-suffix\" select=\"./@marker-suffix\" />\n    <xsl:variable name=\"marker-suffix\">\n        <xsl:choose>\n            <!-- Strip out any trailing dot from the marker format. -->\n            <xsl:when test=\"substring($original-marker-suffix, string-length($original-marker-suffix)) = '.'\">\n                <xsl:value-of select=\"substring($original-marker-suffix,1,string-length($original-marker-suffix) - 1)\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$original-marker-suffix\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:call-template name=\"formatted-case-cycle\">\n        <xsl:with-param name=\"from\">\n            <xsl:value-of select=\"./@marker-prefix\" />\n            <xsl:number value=\"$adjusted-from\" format=\"{$format-code}\" />\n            <xsl:value-of select=\"$marker-suffix\" />\n        </xsl:with-param>\n        <xsl:with-param name=\"to\">\n            <xsl:value-of select=\"./@marker-prefix\" />\n            <xsl:number value=\"$adjusted-to\" format=\"{$format-code}\" />\n            <xsl:value-of select=\"$marker-suffix\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"formatted-case-cycle\">\n    <xsl:param name=\"from\" />\n    <xsl:param name=\"to\" />\n    <xsl:text>(</xsl:text>\n    <xsl:call-template name=\"case-cycle-delimiter-space\" />\n    <xsl:value-of select=\"$from\" />\n    <xsl:text>&#xa0;</xsl:text>\n    <xsl:call-template name=\"double-right-arrow-symbol\" />\n    <xsl:text>&#xa0;</xsl:text>\n    <xsl:value-of select=\"$to\" />\n    <xsl:call-template name=\"case-cycle-delimiter-space\" />\n    <xsl:text>)&#xa0;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"case\" mode=\"case-cycle-numbers\">\n    <xsl:variable name=\"cycle-position\">\n        <xsl:number count=\"case[@direction='cycle']\" />\n    </xsl:variable>\n    <xsl:number value=\"$cycle-position\" />\n    <xsl:text>|</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$cycle-position = count(../case[@direction='cycle'])\">\n            <xsl:if test=\"$cycle-position = 1\">\n                <xsl:message>PTX:WARNING: a \"case\" with @direction \"cycle\" should be one of several</xsl:message>\n                <xsl:apply-templates select=\"../..\" mode=\"location-report\"/>\n            </xsl:if>\n            <xsl:number value=\"1\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:number value=\"$cycle-position + 1\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"proof[@ref]/case\" mode=\"case-cycle\">\n    <!-- NB existence/validity of \"@ref\" is already error checked   -->\n    <!-- by code that augments the proof title based on the \"@ref\". -->\n    <xsl:variable name=\"cycle-numbers\">\n        <xsl:apply-templates select=\".\" mode=\"case-cycle-numbers\" />\n    </xsl:variable>\n    <xsl:variable name=\"cycle-position\" select=\"substring-before($cycle-numbers,'|')\" />\n    <xsl:variable name=\"cycle-position-plus-one\" select=\"substring-after($cycle-numbers,'|')\" />\n    <xsl:variable name=\"target\" select=\"id(../@ref)\"/>\n    <!-- \"@ref\" should point to something containing an \"ol\". -->\n    <!-- NB In future this might be a \"statement\" child of a  -->\n    <!-- THEOREM-LIKE instead of specifically a THEOREM-LIKE. -->\n    <xsl:choose>\n        <xsl:when test=\"$target//ol[1]\">\n            <xsl:apply-templates select=\"$target//ol[1]\" mode=\"marker-formatted-case-cycle\">\n                <xsl:with-param name=\"from\" select=\"$cycle-position\" />\n                <xsl:with-param name=\"to\" select=\"$cycle-position-plus-one\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING:   a cross-reference (\"ref\") from a \"<xsl:value-of select=\"local-name(..)\"/>\" containing at least one \"case\" with \"direction\" set to \"cycle\" uses a reference [<xsl:value-of select=\"../@ref\"/>] that does not point to an element that contains an \"ol\".</xsl:message>\n            <xsl:apply-templates select=\"../..\" mode=\"location-report\"/>\n            <xsl:call-template name=\"formatted-case-cycle\">\n                <xsl:with-param name=\"from\" select=\"$cycle-position\" />\n                <xsl:with-param name=\"to\" select=\"$cycle-position-plus-one\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"proof[not(@ref)]/case\" mode=\"case-cycle\">\n    <xsl:variable name=\"cycle-numbers\">\n        <xsl:apply-templates select=\".\" mode=\"case-cycle-numbers\" />\n    </xsl:variable>\n    <xsl:variable name=\"cycle-position\" select=\"substring-before($cycle-numbers,'|')\" />\n    <xsl:variable name=\"cycle-position-plus-one\" select=\"substring-after($cycle-numbers,'|')\" />\n    <xsl:choose>\n        <!-- Check if the \"proof\" has a \"statement\" sibling    -->\n        <!-- (implying the \"proof\" is a child of THEOREM-LIKE) -->\n        <!-- where that \"statement\" sibling contains an \"ol\"   -->\n        <!-- from which we can copy the marker information.    -->\n        <!-- NB We don't filter on \"ol[@marker]\" because we    -->\n        <!-- still need to honour the format code which may    -->\n        <!-- be derived from nesting during -assembly. Not     -->\n        <!-- relevant now because our \"ol\" should be top level -->\n        <!-- in its \"statement\" but potentially relevant in    -->\n        <!-- future if THEOREM-LIKE supports multiple          -->\n        <!-- \"statement\" children which would then become the  -->\n        <!-- top-level numbering for any list-like children.   -->\n        <xsl:when test=\"../preceding-sibling::statement[1]//ol[1]\">\n            <xsl:apply-templates select=\"../preceding-sibling::statement[1]//ol[1]\" mode=\"marker-formatted-case-cycle\">\n                <xsl:with-param name=\"from\" select=\"$cycle-position\" />\n                <xsl:with-param name=\"to\" select=\"$cycle-position-plus-one\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"formatted-case-cycle\">\n                <xsl:with-param name=\"from\" select=\"$cycle-position\" />\n                <xsl:with-param name=\"to\" select=\"$cycle-position-plus-one\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"case\" mode=\"case-direction\">\n    <xsl:choose>\n        <xsl:when test=\"@direction='forward'\">\n            <xsl:text>(</xsl:text>\n            <xsl:call-template name=\"double-right-arrow-symbol\" />\n            <xsl:text>)&#xa0;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@direction='backward'\">\n            <xsl:text>(</xsl:text>\n            <xsl:call-template name=\"double-left-arrow-symbol\" />\n            <xsl:text>)&#xa0;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@direction='cycle'\">\n            <xsl:apply-templates select=\".\" mode=\"case-cycle\" />\n        </xsl:when>\n        <!-- DTD will catch wrong values -->\n        <xsl:otherwise />\n    </xsl:choose>\n</xsl:template>\n\n<!-- TESTING -->\n<!-- Some test images and debugging output, -->\n<!-- while this is still in development -->\n\n<!--\n<image />\n<image margins=\"20% 5%\" />\n<image width=\"75%\" />\n<image margins=\"20% 5%\" width=\"75%\" />\n -->\n<!-- ~~~~~~~~~~~~~~ -->\n<!--\n<image margins=\"150pt\" />\n<image width=\"2000\" />\n<image margins=\"-40%\" />\n<image margins=\"300%\" />\n<image margins=\"-20% 5%\" />\n<image margins=\"20% 150%\" />\n<image margins=\"90% 40%\" />\n<image margins=\"5% 10%\" width=\"120%\" />\n<image margins=\"5% 10%\" width=\"-10%\" />\n<image margins=\"5% 10%\" width=\"90%\" />\n<image margins=\"35% 25%\" width=\"39.5%\" />\n-->\n\n<!--\n<xsl:template match=\"image[not(parent::sidebyside or parent::figure)]\">\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <xsl:message><xsl:value-of select=\"$layout/left-margin\" /></xsl:message>\n    <xsl:message><xsl:value-of select=\"$layout/width\" /></xsl:message>\n    <xsl:message><xsl:value-of select=\"$layout/right-margin\" /></xsl:message>\n    <xsl:message><xsl:value-of select=\"$layout/left-margin = $layout/right-margin\" /></xsl:message>\n</xsl:template>\n-->\n\n<!-- ############## -->\n<!-- Simple Layouts -->\n<!-- ############## -->\n\n<!-- This template creates a RTF (result tree fragment), -->\n<!-- which needs to be captured in one variable, then    -->\n<!-- converted to a node-set with an extension function  -->\n\n<!-- aspect-ratio is only needed for videos in HTML.     -->\n<!-- Long story.  It needs to match what is provided     -->\n<!-- in the video (a file or an embedded player).  A     -->\n<!-- sensible default is \"1:1\" but in context we might   -->\n<!-- want to supply some other sensible default like     -->\n<!-- \"16:9\".  The ONLY purpose of specifying an          -->\n<!-- aspect-ratio is to compute some sort of height.     -->\n<!-- So we do not report the aspect-ratio itself, but    -->\n<!-- instead compute a height (*only* for video).        -->\n\n<!-- NB: An RTF has a \"root\" node.  Then the elements    -->\n<!-- manufactured for it occur as children.  If the      -->\n<!-- \"apply-templates\" fails to have the \"/*\" at the end -->\n<!-- of the \"select\", then the main entry template will  -->\n<!-- be called to do any housekeeping it might do.       -->\n<!-- This was a really tough bug to track down.          -->\n\n<xsl:template match=\"image|audio|video|program|console|tabular\" mode=\"layout-parameters\">\n    <xsl:param name=\"default-aspect\" select=\"'1:1'\"/>\n\n    <!-- clean up margins -->\n    <xsl:variable name=\"normalized-margins\">\n        <xsl:choose>\n            <xsl:when test=\"@margins\">\n                <xsl:value-of select=\"normalize-space(@margins)\" />\n            </xsl:when>\n            <!-- default if not specified -->\n            <xsl:otherwise>\n                <xsl:text>auto</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- split on space, or else duplicate (signals centered) -->\n    <xsl:variable name=\"normalized-left-margin\">\n        <xsl:choose>\n            <xsl:when test=\"contains($normalized-margins, ' ')\">\n                <xsl:value-of select=\"substring-before($normalized-margins, ' ')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$normalized-margins\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:variable name=\"normalized-right-margin\">\n        <xsl:choose>\n            <xsl:when test=\"contains($normalized-margins, ' ')\">\n                <xsl:value-of select=\"substring-after($normalized-margins, ' ')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$normalized-margins\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- clean-up single width -->\n    <xsl:variable name=\"normalized-width\">\n        <xsl:choose>\n            <xsl:when test=\"@width\">\n                <xsl:value-of select=\"normalize-space(@width)\" />\n            </xsl:when>\n            <!-- not placed on image, or figure/image,    -->\n            <!-- but a document-wide default width exists -->\n            <xsl:when test=\"self::image and not(ancestor::sidebyside) and $docinfo/defaults/image-width\">\n                <xsl:value-of select=\"$docinfo/defaults/image-width\" />\n            </xsl:when>\n            <!-- default setting if not specified, and not global -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"'auto'\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- clean-up aspect-ratio -->\n    <!-- may be a hollow exercise, but no harm since a -->\n    <!-- valid ratio is given in parameter default     -->\n    <xsl:variable name=\"normalized-aspect\">\n        <xsl:variable name=\"entered-aspect\">\n            <xsl:choose>\n                <xsl:when test=\"@aspect\">\n                    <xsl:value-of select=\"normalize-space(@aspect)\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"normalize-space($default-aspect)\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:choose>\n            <!-- test if a ratio is given, and assume parts are -->\n            <!-- good and that there is only one colon, etc,... -->\n            <xsl:when test=\"contains($entered-aspect, ':')\">\n                <xsl:variable name=\"width\" select=\"substring-before($entered-aspect, ':')\" />\n                <xsl:variable name=\"height\" select=\"substring-after($entered-aspect, ':')\" />\n                <xsl:value-of select=\"$width div $height\" />\n            </xsl:when>\n            <!-- else assume a number was entered -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$entered-aspect\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- Error checks on author's specifications     -->\n    <!-- First, normalized to strings or percentages -->\n\n    <xsl:if test=\"not(($normalized-left-margin = 'auto') or substring($normalized-left-margin, string-length($normalized-left-margin)) = '%')\">\n        <xsl:message>PTX:ERROR:   left margin (<xsl:value-of select=\"$normalized-left-margin\" />) should be given as a percentage (such as \"40%\"), or as the string \"auto\"</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <xsl:if test=\"not(($normalized-width = 'auto') or substring($normalized-width, string-length($normalized-width)) = '%')\">\n        <xsl:message>PTX:ERROR:   width (<xsl:value-of select=\"$normalized-width\" />) should be given as a percentage (such as \"40%\"), or as the string \"auto\"</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <xsl:if test=\"not(($normalized-right-margin = 'auto') or substring($normalized-right-margin, string-length($normalized-right-margin)) = '%')\">\n        <xsl:message>PTX:ERROR:   right margin (<xsl:value-of select=\"$normalized-right-margin\" />) should be given as a percentage (such as \"40%\"), or as the string \"auto\"</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Second, cases where computed values could be negative or too large -->\n\n    <!-- Sanity check author's left margin -->\n    <xsl:if test=\"not($normalized-left-margin = 'auto') and ((substring-before($normalized-left-margin, '%') &lt; 0) or (substring-before($normalized-left-margin, '%') &gt; 100))\">\n        <xsl:message>PTX:ERROR:   left margin (<xsl:value-of select=\"$normalized-left-margin\" />) must be in the interval [0%, 100%]</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Sanity check author's width -->\n    <xsl:if test=\"not($normalized-width= 'auto') and ((substring-before($normalized-width, '%') &lt; 0) or (substring-before($normalized-width, '%') &gt; 100))\">\n        <xsl:message>PTX:ERROR:   width (<xsl:value-of select=\"$normalized-width\" />) must be in the interval [0%, 100%]</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Sanity check author's right margin -->\n    <xsl:if test=\"not($normalized-right-margin = 'auto') and ((substring-before($normalized-right-margin, '%') &lt; 0) or (substring-before($normalized-right-margin, '%') &gt; 100))\">\n        <xsl:message>PTX:ERROR:   right margin (<xsl:value-of select=\"$normalized-right-margin\" />) must be in the interval [0%, 100%]</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Sanity check author's cumulative margins -->\n    <xsl:if test=\"not($normalized-left-margin = 'auto') and ((substring-before($normalized-left-margin, '%') + substring-before($normalized-right-margin, '%') &gt; 100))\">\n        <xsl:message>PTX:ERROR:   margins (<xsl:value-of select=\"$normalized-left-margin\" />, <xsl:value-of select=\"$normalized-right-margin\" />) must not have a sum exceeding 100%</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Sanity check all parameters together as too large -->\n    <xsl:if test=\"not($normalized-left-margin = 'auto') and not($normalized-width= 'auto') and ((substring-before($normalized-left-margin, '%') + substring-before($normalized-width, '%') + substring-before($normalized-right-margin, '%') &gt; 100))\">\n        <xsl:message>PTX:ERROR:   margins and width (<xsl:value-of select=\"$normalized-left-margin\" />, <xsl:value-of select=\"$normalized-width\" />, <xsl:value-of select=\"$normalized-right-margin\" />) must not have a sum exceeding 100%</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Sanity check that all three parameters together sum to 100 *exactly* -->\n    <xsl:if test=\"not($normalized-left-margin = 'auto') and not($normalized-width= 'auto') and not((substring-before($normalized-left-margin, '%') + substring-before($normalized-width, '%') + substring-before($normalized-right-margin, '%') = 100))\">\n        <xsl:message>PTX:ERROR:   margins and width (<xsl:value-of select=\"$normalized-left-margin\" />, <xsl:value-of select=\"$normalized-width\" />, <xsl:value-of select=\"$normalized-right-margin\" />) must sum to 100%</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n\n    <!-- Sanity check on the aspect-ratio -->\n    <!-- NaN does not equal *anything*, so tests if a number  -->\n    <!-- http://stackoverflow.com/questions/6895870           -->\n    <xsl:if test=\"not(number($normalized-aspect) = number($normalized-aspect)) or ($normalized-aspect &lt; 0)\">\n        <xsl:message>PTX:ERROR:   the @aspect attribute should be a ratio, like 4:3, or a positive number, not \"<xsl:value-of select=\"@aspect\" />\"</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n    <xsl:if test=\"$normalized-aspect = 0\">\n        <xsl:message>PTX:FATAL:   an @aspect attribute equal to zero will cause serious errors.</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        <xsl:message terminate=\"yes\">Quitting...</xsl:message>\n    </xsl:if>\n\n    <!-- Perhaps save for debugging -->\n    <!-- <xsl:message>L:<xsl:value-of select=\"$normalized-left-margin\" />:L W:<xsl:value-of select=\"$normalized-width\" />:W R:<xsl:value-of select=\"$normalized-right-margin\" />:R</xsl:message> -->\n\n    <!-- Now have three \"normalized\" percentages, with percentages   -->\n    <!-- or default string values.  We would read the table below as -->\n    <!-- rows (cases), but we instead focus on the three outcomes    -->\n    <!-- as a single variable each.                                  -->\n    <!--                                                             -->\n    <!--     Margin   Width      Left      Width     Right           -->\n    <!--                                                             -->\n    <!--     auto     auto          0        100         0           -->\n    <!--     value    auto      value    compute     value           -->\n    <!--     auto     value    center      value    center           -->\n    <!--     value    value     value      value     value           -->\n    <!--                                                             -->\n    <!-- In contrast to earlier practice, we now (2018-07-20) return -->\n    <!-- percentages with no percent sign, so as to do the least     -->\n    <!-- manipulation possible here.  Consumers can add back the     -->\n    <!-- percent sign, divide by 100, take a fraction of a maximum   -->\n    <!-- width, and so on.                                           -->\n\n    <xsl:variable name=\"left-margin\">\n        <xsl:choose>\n            <xsl:when test=\"($normalized-left-margin = 'auto') and ($normalized-width = 'auto')\">\n                <xsl:value-of select=\"'0'\" />\n            </xsl:when>\n            <xsl:when test=\"not($normalized-left-margin = 'auto') and ($normalized-width = 'auto')\">\n                <xsl:value-of select=\"substring-before($normalized-left-margin, '%')\" />\n            </xsl:when>\n            <xsl:when test=\"($normalized-left-margin = 'auto') and not($normalized-width = 'auto')\">\n                <xsl:value-of select=\"(100 - substring-before($normalized-width, '%')) div 2\" />\n            </xsl:when>\n            <xsl:when test=\"not($normalized-left-margin = 'auto') and not($normalized-width = 'auto')\">\n                <xsl:value-of select=\"substring-before($normalized-left-margin, '%')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>OOOPS1111</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:variable name=\"right-margin\">\n        <xsl:choose>\n            <xsl:when test=\"($normalized-left-margin = 'auto') and ($normalized-width = 'auto')\">\n                <xsl:value-of select=\"'0'\" />\n            </xsl:when>\n            <xsl:when test=\"not($normalized-left-margin = 'auto') and ($normalized-width = 'auto')\">\n                <xsl:value-of select=\"substring-before($normalized-right-margin, '%')\" />\n            </xsl:when>\n            <xsl:when test=\"($normalized-left-margin = 'auto') and not($normalized-width = 'auto')\">\n                <xsl:value-of select=\"(100 - substring-before($normalized-width, '%')) div 2\" />\n            </xsl:when>\n            <xsl:when test=\"not($normalized-left-margin = 'auto') and not($normalized-width = 'auto')\">\n                <xsl:value-of select=\"substring-before($normalized-right-margin, '%')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>OOOPS22222</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:variable name=\"width\">\n        <xsl:choose>\n            <xsl:when test=\"($normalized-left-margin = 'auto') and ($normalized-width = 'auto')\">\n                <xsl:value-of select=\"'100'\" />\n            </xsl:when>\n            <xsl:when test=\"not($normalized-left-margin = 'auto') and ($normalized-width = 'auto')\">\n                <xsl:value-of select=\"100 - substring-before($normalized-left-margin, '%') - substring-before($normalized-right-margin, '%')\" />\n            </xsl:when>\n            <xsl:when test=\"($normalized-left-margin = 'auto') and not($normalized-width = 'auto')\">\n                <xsl:value-of select=\"substring-before($normalized-width, '%')\" />\n            </xsl:when>\n            <xsl:when test=\"not($normalized-left-margin = 'auto') and not($normalized-width = 'auto')\">\n                <xsl:value-of select=\"substring-before($normalized-width, '%')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>OOOPS33333</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- \"height\" is derived from width and aspect-ratio.  -->\n    <!-- We warn above about a potential division by zero. -->\n    <xsl:variable name=\"height\" select=\"$width div $normalized-aspect\"/>\n\n    <xsl:variable name=\"centered\" select=\"$left-margin = $right-margin\" />\n\n    <!-- This is the RTF, which will automatically be bundled with -->\n    <!-- a root. Elements should be mostly self-explanatory.       -->\n    <!-- \"centered\" is reported NOW, not computed later, when the  -->\n    <!-- two margins are either                                    -->\n    <!--   (a) specified identically by the author,                -->\n    <!--   (b) computed identically above, or                      -->\n    <!--   (c) default to identical values.                        -->\n\n    <left-margin>\n        <xsl:value-of select=\"$left-margin\" />\n    </left-margin>\n    <width>\n        <xsl:value-of select=\"$width\" />\n    </width>\n    <!-- Only a \"video\" gets its height from this layout object, -->\n    <!-- so even if we have computed it, we do not report it     -->\n    <xsl:if test=\"self::video\">\n        <height>\n            <xsl:value-of select=\"$height\"/>\n        </height>\n    </xsl:if>\n    <right-margin>\n        <xsl:value-of select=\"$right-margin\" />\n    </right-margin>\n    <centered>\n        <xsl:value-of select=\"$centered\" />\n    </centered>\n\n    <!-- This will be useful in a debugging switch -->\n<!--\n    <xsl:message>l:<xsl:value-of select=\"$left-margin\" />:l w:<xsl:value-of select=\"$width\" />:w r:<xsl:value-of select=\"$right-margin\" />:r c:<xsl:value-of select=\"$centered\" />:c</xsl:message>\n    <xsl:message>- - - - - - - - - - - - - </xsl:message>\n-->\n</xsl:template>\n\n<!-- ################## -->\n<!-- SideBySide Layouts -->\n<!-- ################## -->\n\n<!-- Horizontal layouts of \"panels\" with vertical alignments      -->\n<!-- A container for layout of other elements, eg figures, images -->\n<!-- No notion of columns, no rules or dividers, no row headers   -->\n<!-- This is purely a container to specify layout parameters,     -->\n<!-- and place/control the horizontal arrangement in converters   -->\n\n<!-- Debug with sbs.debug string parameter, $sbsdebug variable  -->\n<!-- Colored boxes in HTML, black boxes in LaTeX with baselines -->\n\n<!-- A \"sidebyside\" is a sequence of objects laid out       -->\n<!-- horizontally in panels.  This is a deviation from      -->\n<!-- the usual vertical rythym of a page.  The \"best\"       -->\n<!-- objects are those that are pliable horizontally,       -->\n<!-- such as a paragraph, or a scalable image.  Rigid       -->\n<!-- objects, like pre-formatted text or some tables,       -->\n<!-- require some care from the author.  Attributes         -->\n<!-- that control the layout follow, and override           -->\n<!-- identical attributes placed on an enclosing            -->\n<!-- \"sbsgroup\" (if employed).                              -->\n<!--                                                        -->\n<!-- (a) \"margins\"                                          -->\n<!--  - one percentage for both left and right (nn%)        -->\n<!--  - \"auto\" => margins are half the space between panels -->\n<!--  - default is \"auto\"                                   -->\n<!-- (b) \"widths\"                                           -->\n<!--  - widths of panels, one per panel                     -->\n<!--  - space separated list of percentages                 -->\n<!--  - default is equal division of available total width  -->\n<!-- (c) \"valigns\", \"valign\"                                -->\n<!--  - vertical alignment of content within panel          -->\n<!--  - space separated list of top, middle, bottom         -->\n<!--  - singular is common alignment for all panels         -->\n<!--  - default is top                                      -->\n<!--                                                        -->\n<!-- Default behavior is automatic margins, no spacing      -->\n<!-- between panels and equally wide panels.                -->\n<!--                                                        -->\n<!-- With widths specified, remaining space is              -->\n<!-- used to create equal spacing between panels            -->\n\n<!-- Extensive layout analysis first, main templates follow -->\n\n<!-- We analyze the attributes of a \"sidebyside\" element -->\n<!-- in order to extract/compute the layout parameters   -->\n<!-- This template creates a RTF (result tree fragment), -->\n<!-- which needs to be captured in one variable, then    -->\n<!-- converted to a node-set with an extension function  -->\n<xsl:template match=\"sidebyside\" mode=\"layout-parameters\">\n\n    <!-- Number of Panels -->\n    <!-- count the elements destined for panels  -->\n    <xsl:variable name=\"number-panels\" select=\"count(*)\" />\n    <xsl:if test=\"$sbsdebug\">\n        <xsl:message>N:<xsl:value-of select=\"$number-panels\" />:N</xsl:message>\n    </xsl:if>\n    <!-- Add to RTF -->\n    <number-panels>\n        <xsl:value-of select=\"$number-panels\" />\n    </number-panels>\n\n    <!-- Vertical Alignments of Panels -->\n    <!-- Produce temporary space-separated list, with trailing space     -->\n    <!-- Look up into enclosing \"sbsgroup\" if none given on \"sidebyside\" -->\n    <!-- Error-check attribute values as $valigns string gets unpacked   -->\n    <xsl:variable name=\"valigns\">\n        <xsl:choose>\n            <!-- individual sbs takes priority -->\n            <xsl:when test=\"@valigns\">\n                <xsl:value-of select=\"concat(normalize-space(@valigns), ' ')\" />\n            </xsl:when>\n            <!-- singular form is convenience -->\n            <xsl:when test=\"@valign\">\n                <xsl:call-template name=\"duplicate-string\">\n                     <xsl:with-param name=\"text\" select=\"concat(normalize-space(@valign), ' ')\" />\n                     <xsl:with-param name=\"count\" select=\"$number-panels\" />\n                 </xsl:call-template>\n            </xsl:when>\n            <!-- look to enclosing sbsgroup -->\n            <xsl:when test=\"parent::sbsgroup[@valigns]\">\n                <xsl:value-of select=\"concat(normalize-space(parent::sbsgroup/@valigns), ' ')\" />\n            </xsl:when>\n            <!-- look to enclosing sbsgroup for singular convenience -->\n            <xsl:when test=\"parent::sbsgroup[@valign]\">\n                <xsl:call-template name=\"duplicate-string\">\n                     <xsl:with-param name=\"text\" select=\"concat(normalize-space(parent::sbsgroup/@valign), ' ')\" />\n                     <xsl:with-param name=\"count\" select=\"$number-panels\" />\n                 </xsl:call-template>\n            </xsl:when>\n            <!-- default: place all panels at the top   -->\n            <!-- NB: space at end of $text is separator -->\n            <xsl:otherwise>\n                <xsl:call-template name=\"duplicate-string\">\n                     <xsl:with-param name=\"text\" select=\"'top '\" />\n                     <xsl:with-param name=\"count\" select=\"$number-panels\" />\n                 </xsl:call-template>\n             </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:if test=\"$sbsdebug\">\n        <xsl:message>VA:<xsl:value-of select=\"$valigns\" />:VA</xsl:message>\n    </xsl:if>\n    <!-- check length (author-supplied could be wrong) -->\n    <xsl:variable name=\"nspaces-valigns\" select=\"string-length($valigns) - string-length(translate($valigns, ' ', ''))\" />\n    <xsl:choose>\n        <xsl:when test=\"$nspaces-valigns &lt; $number-panels\">\n            <xsl:message>PTX:FATAL:   a &lt;sidebyside&gt; or &lt;sbsgroup&gt; does not have enough \"@valigns\" (maybe you did not specify enough?)</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            <xsl:message terminate=\"yes\">             That's fatal.  Sorry.  Quitting...</xsl:message>\n        </xsl:when>\n        <xsl:when test=\"$nspaces-valigns &gt; $number-panels\">\n            <xsl:message>PTX:WARNING: a &lt;sidebyside&gt; or &lt;sbsgroup&gt; has extra \"@valigns\" (did you confuse singular and plural attribute names?)</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:when>\n    </xsl:choose>\n    <!-- unpack with an error-check on attribute values -->\n    <!-- RTF formation happens with unpacking           -->\n    <xsl:call-template name=\"decompose-valigns\">\n        <xsl:with-param name=\"valigns\" select=\"$valigns\" />\n    </xsl:call-template>\n\n\n    <!-- Margins and Widths -->\n    <!-- clean up and organize widths                             -->\n    <!-- Always produces space-separated list with trailing space -->\n    <!-- Error-check as $widths string gets depleted below        -->\n    <xsl:variable name=\"normalized-widths\">\n        <xsl:choose>\n            <!-- individual sbs takes priority -->\n            <xsl:when test=\"@widths\">\n                <xsl:value-of select=\"concat(normalize-space(@widths), ' ')\" />\n            </xsl:when>\n            <!-- singular form is convenience -->\n            <xsl:when test=\"@width\">\n                <xsl:call-template name=\"duplicate-string\">\n                     <xsl:with-param name=\"text\" select=\"concat(normalize-space(@width), ' ')\" />\n                     <xsl:with-param name=\"count\" select=\"$number-panels\" />\n                 </xsl:call-template>\n            </xsl:when>\n            <!-- look to enclosing sidebyside group -->\n            <xsl:when test=\"parent::sbsgroup[@widths]\">\n                <xsl:value-of select=\"concat(normalize-space(parent::sbsgroup/@widths), ' ')\" />\n            </xsl:when>\n            <!-- look to enclosing sidebyside group for singular convenience -->\n            <xsl:when test=\"parent::sbsgroup[@width]\">\n                <xsl:call-template name=\"duplicate-string\">\n                     <xsl:with-param name=\"text\" select=\"concat(normalize-space(parent::sbsgroup/@width), ' ')\" />\n                     <xsl:with-param name=\"count\" select=\"$number-panels\" />\n                 </xsl:call-template>\n            </xsl:when>\n            <!-- defer default computation post-margins      -->\n            <!-- NB: \"undetermined\" widths is a single space -->\n            <xsl:otherwise>\n                <xsl:text> </xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- clean up margins -->\n    <xsl:variable name=\"normalized-margins\">\n        <xsl:choose>\n            <!-- individual sbs takes priority -->\n            <xsl:when test=\"@margins\">\n                <xsl:value-of select=\"normalize-space(@margins)\" />\n            </xsl:when>\n            <!-- look to enclosing sidebyside group -->\n            <xsl:when test=\"parent::sbsgroup[@margins]\">\n                <xsl:value-of select=\"normalize-space(parent::sbsgroup/@margins)\" />\n            </xsl:when>\n            <!-- default will make pleasing layout: -->\n            <!--   (a) for one panel, no settings -->\n            <!--   (b) no margin given, all sensible widths -->\n            <xsl:otherwise>\n                <xsl:text>auto</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- construct left and right margins, possibly identical      -->\n    <!-- these may be 'auto' and get updated later (hence \"early\") -->\n    <xsl:variable name=\"left-margin-early\">\n        <xsl:choose>\n            <xsl:when test=\"contains($normalized-margins, ' ')\">\n                <xsl:value-of select=\"substring-before($normalized-margins, ' ')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$normalized-margins\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"right-margin-early\">\n        <xsl:choose>\n            <xsl:when test=\"contains($normalized-margins, ' ')\">\n                <xsl:value-of select=\"substring-after($normalized-margins, ' ')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$normalized-margins\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- total widths used/available    -->\n    <!-- no attributes, use 100         -->\n    <!-- no width, subtract two margins -->\n    <!-- widths given, sum them         -->\n    <!-- no percent sign, just internal -->\n    <!-- TOD: error-check that sum is 100 or less -->\n    <xsl:variable name=\"sum-widths\">\n        <xsl:choose>\n            <xsl:when test=\"$normalized-widths = ' ' and $normalized-margins = 'auto'\">\n                <xsl:text>100</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$normalized-widths = ' '\">\n                <xsl:value-of select=\"100 - substring-before($left-margin-early, '%') - substring-before($right-margin-early, '%')\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:call-template name=\"sum-percentages\">\n                    <xsl:with-param name=\"percent-list\" select=\"$normalized-widths\" />\n                    <xsl:with-param name=\"sum\" select=\"'0'\" />\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- have width totals, determine margins         -->\n    <!-- automatic creates margins that will be half -->\n    <!-- of the subsequent space-width computation   -->\n    <!-- Input assumes % present (unless 'auto')     -->\n    <!-- Output preserves % on result                -->\n    <xsl:variable name=\"left-margin\">\n        <xsl:choose>\n            <xsl:when test=\"$number-panels = 0\">\n                <xsl:text>0%</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$normalized-margins = 'auto'\">\n                <xsl:value-of select=\"(100 - $sum-widths) div (2 * $number-panels)\" />\n                <xsl:text>%</xsl:text>\n            </xsl:when>\n            <!-- TODO: condition on % present, let otherwise report failure -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$left-margin-early\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"right-margin\">\n        <xsl:choose>\n            <xsl:when test=\"$number-panels = 0\">\n                <xsl:text>0%</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$normalized-margins = 'auto'\">\n                <xsl:value-of select=\"(100 - $sum-widths) div (2 * $number-panels)\" />\n                <xsl:text>%</xsl:text>\n            </xsl:when>\n            <!-- TODO: condition on % present, let otherwise report failure -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$right-margin-early\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:if test=\"$sbsdebug\">\n        <xsl:message>M:<xsl:value-of select=\"$left-margin\" />:<xsl:value-of select=\"$right-margin\" />:M</xsl:message>\n    </xsl:if>\n    <!-- error check for reasonable values -->\n    <!-- When there are three values, the \"left\" margin still -->\n    <!-- has a space character to split on (which of course,  -->\n    <!-- we don't do!).  It seems to survive until here.      -->\n    <xsl:if test=\"contains($right-margin, ' ')\">\n        <xsl:message>PTX:ERROR:   it appears that a &lt;sidebyside&gt; has a @margins attribute with three or more values (\"<xsl:value-of select=\"@margins\" />\").  There should be at most two values (a left margin and a right margin).  Results may be unpredictable.</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n    <xsl:if test=\"(substring-before($left-margin, '%') &lt; 0) or (substring-before($left-margin, '%') &gt; 100)\">\n        <xsl:message>PTX:ERROR:   left margin of a &lt;sidebyside&gt; (\"<xsl:value-of select=\"$left-margin\" />\") is outside the interval [0%, 100%], (this may be computed, check consistency of \"@margins\" and \"@widths\")</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n    <xsl:if test=\"(substring-before($right-margin, '%') &lt; 0) or (substring-before($right-margin, '%') &gt; 100)\">\n        <xsl:message>PTX:ERROR:   right margin of a &lt;sidebyside&gt; (\"<xsl:value-of select=\"$right-margin\" />\") is outside the interval [0%, 100%], (this may be computed, check consistency of \"@margins\" and \"@widths\")</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n    <!-- Add to RTF -->\n    <left-margin>\n        <xsl:value-of select=\"$left-margin\" />\n    </left-margin>\n    <right-margin>\n        <xsl:value-of select=\"$right-margin\" />\n    </right-margin>\n\n    <!-- if no widths given, distribute excess beyond margins -->\n    <!-- NB: with percent signs, blank at end always          -->\n    <!-- Error-check as $widths string gets depleted below    -->\n    <xsl:variable name=\"widths\">\n        <xsl:choose>\n            <xsl:when test=\"$normalized-widths = ' '\">\n                <xsl:variable name=\"common-width\" select=\"(100 - substring-before($left-margin, '%') - substring-before($right-margin, '%')) div $number-panels\" />\n                <!-- transfer as percentages (abstract), with blank at end -->\n                <xsl:call-template name=\"duplicate-string\">\n                     <xsl:with-param name=\"text\" select=\"concat($common-width, '% ')\" />\n                     <xsl:with-param name=\"count\" select=\"$number-panels\" />\n                 </xsl:call-template>\n             </xsl:when>\n             <xsl:otherwise>\n                <xsl:value-of select=\"$normalized-widths\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:if test=\"$sbsdebug\">\n        <xsl:message>W:<xsl:value-of select=\"$widths\" />:W</xsl:message>\n    </xsl:if>\n    <!-- check length (author-supplied could be wrong) -->\n    <xsl:variable name=\"nspaces-widths\" select=\"string-length($widths) - string-length(translate($widths, ' ', ''))\" />\n    <xsl:choose>\n        <xsl:when test=\"$nspaces-widths &lt; $number-panels\">\n            <xsl:message>PTX:FATAL:   a &lt;sidebyside&gt; or &lt;sbsgroup&gt; does not have enough \"@widths\" (maybe you did not specify enough?)</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            <xsl:message terminate=\"yes\">             That's fatal.  Sorry.  Quitting...</xsl:message>\n        </xsl:when>\n        <xsl:when test=\"$nspaces-widths &gt; $number-panels\">\n            <xsl:message>PTX:WARNING: a &lt;sidebyside&gt; or &lt;sbsgroup&gt; has extra \"@widths\" (did you confuse singular and plural attribute names?)</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:when>\n    </xsl:choose>\n    <!-- unpack with an error-check on attribute values -->\n    <!-- RTF formation happens with unpacking           -->\n    <xsl:call-template name=\"decompose-widths\">\n        <xsl:with-param name=\"widths\" select=\"$widths\" />\n    </xsl:call-template>\n\n    <!-- Spacing Between Panels -->\n    <!-- compute common spacing between panels, as percent -->\n    <!-- subtract margins and sum-widths from 100,         -->\n    <!-- and then distribute to n - 1 spaces               -->\n    <!-- includes % for external use                       -->\n    <xsl:variable name=\"space-width\">\n        <xsl:choose>\n            <xsl:when test=\"$number-panels &lt; 2\">\n                <!-- no spaces, avoids all division by zero -->\n                <xsl:text>0</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"(100 - $sum-widths  - substring-before($left-margin, '%') - substring-before($right-margin, '%')) div ($number-panels - 1)\" />\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>%</xsl:text>\n    </xsl:variable>\n    <xsl:if test=\"$sbsdebug\">\n        <xsl:message>SW:<xsl:value-of select=\"$space-width\" />:SW</xsl:message>\n    </xsl:if>\n    <!-- overall error check on space width -->\n    <xsl:choose>\n        <xsl:when test=\"substring-before($space-width, '%') &lt; 0\">\n            <xsl:message>PTX:ERROR:   computed space between panels of a &lt;sidebyside&gt; (\"<xsl:value-of select=\"$space-width\" />\") is negative (this value is computed, check consistency of \"@margins\" and \"@widths\")</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:when>\n        <xsl:when test=\"substring-before($space-width, '%') = 'NaN'\">\n            <xsl:message>PTX:ERROR:   computed space between panels of a &lt;sidebyside&gt; is not a number (this value is computed, check that margins (\"<xsl:value-of select=\"$left-margin\" />, <xsl:value-of select=\"$right-margin\" />\") and widths (\"<xsl:value-of select=\"$widths\" />\") are percentages of the form \"nn%\")</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:when>\n    </xsl:choose>\n    <!-- Add to RTF -->\n    <space-width>\n        <xsl:value-of select=\"$space-width\" />\n    </space-width>\n</xsl:template>\n\n<!-- ########################### -->\n<!-- SidebySide Layout Utilities -->\n<!-- ########################### -->\n\n<!-- From a space-separated list of vertical alignments -->\n<!-- create error-checked result tree fragment          -->\n<xsl:template name=\"decompose-valigns\">\n    <xsl:param name=\"valigns\" />\n    <xsl:variable name=\"the-valign\" select=\"substring-before($valigns, ' ')\" />\n    <xsl:if test=\"not($the-valign = '')\">\n        <!-- error-check, since list bypasses schema -->\n        <!-- \"top\" is default, so check first        -->\n        <xsl:choose>\n            <xsl:when test=\"$the-valign = 'top'\" />\n            <xsl:when test=\"$the-valign = 'bottom'\" />\n            <xsl:when test=\"$the-valign = 'middle'\" />\n            <xsl:otherwise>\n                <xsl:message>PTX:ERROR:   @valign(s) (\"<xsl:value-of select=\"$the-valign\" />\") in &lt;sidebyside&gt; or &lt;sbsgroup&gt; is not \"top,\" \"middle\" or \"bottom\"</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:otherwise>\n        </xsl:choose>\n        <!-- okay, output element -->\n        <valign>\n            <xsl:value-of select=\"$the-valign\" />\n        </valign>\n        <!-- recurse on trailing -->\n        <xsl:call-template name=\"decompose-valigns\">\n            <xsl:with-param name=\"valigns\" select=\"substring-after($valigns, ' ')\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- From a space-separated list of widths (percentages) -->\n<!-- create error-checked result tree fragment           -->\n<xsl:template name=\"decompose-widths\">\n    <xsl:param name=\"widths\" />\n    <xsl:variable name=\"the-width\" select=\"substring-before($widths, ' ')\" />\n    <xsl:if test=\"not($the-width = '')\">\n        <!-- error-check, since author-supplied could be wild -->\n        <xsl:choose>\n            <xsl:when test=\"substring-before($the-width, '%') &lt; 0\">\n                <xsl:message>PTX:ERROR:   panel width (\"<xsl:value-of select=\"$the-width\" />\") in a &lt;sidebyside&gt; or &lt;sbsgroup&gt; is negative (this may be computed, check \"@margin(s)\" and \"@width(s)\")</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:when>\n            <xsl:when test=\"substring-before($the-width, '%') &gt; 100\">\n                <xsl:message>PTX:ERROR:   panel width (\"<xsl:value-of select=\"$the-width\" />\") in a &lt;sidebyside&gt; or &lt;sbsgroup&gt; is bigger than 100% (this may be computed, check \"@margin(s)\" and \"@width(s)\")</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:when>\n        </xsl:choose>\n        <!-- output element -->\n        <width>\n            <xsl:value-of select=\"$the-width\" />\n        </width>\n        <!-- recurse on trailing -->\n        <xsl:call-template name=\"decompose-widths\">\n            <xsl:with-param name=\"widths\" select=\"substring-after($widths, ' ')\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- recursive template to sum percentages         -->\n<!-- input: a space-separated list, with %'s'      -->\n<!-- NB: expect trailing space as sentinel for end -->\n<!-- Output: total, without %, -common use only    -->\n<xsl:template name=\"sum-percentages\">\n    <xsl:param name=\"percent-list\" />\n    <xsl:param name=\"sum\" />\n    <xsl:choose>\n        <xsl:when test=\"$percent-list = ''\">\n            <xsl:value-of select=\"$sum\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"sum-percentages\">\n                <xsl:with-param name=\"percent-list\" select=\"substring-after($percent-list, ' ')\" />\n                <xsl:with-param name=\"sum\" select=\"$sum + substring-before($percent-list, '%')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ######################## -->\n<!-- SideBySide Main Template -->\n<!-- ######################## -->\n\n<xsl:template match=\"sidebyside\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n\n    <!-- local names of objects? -->\n    <!-- below useful for debugging, worth keeping for a while, 2017-07 -->\n    <!--\n    <xsl:message>N:<xsl:value-of select=\"$layout/number-panels\" />:N</xsl:message>\n    <xsl:message>\n        <xsl:text>VA:</xsl:text>\n        <xsl:for-each select=\"$layout/valign\">\n            <xsl:value-of select=\".\" />\n            <xsl:text> </xsl:text>\n        </xsl:for-each>\n        <xsl:text>:VA</xsl:text>\n    </xsl:message>\n    <xsl:message>\n        <xsl:text>W:</xsl:text>\n        <xsl:for-each select=\"$layout/width\">\n            <xsl:value-of select=\".\" />\n            <xsl:text> </xsl:text>\n        </xsl:for-each>\n        <xsl:text>:W</xsl:text>\n    </xsl:message>\n    <xsl:message>\n        <xsl:text>M:</xsl:text>\n        <xsl:value-of select=\"$layout/margins\" />\n        <xsl:text>:M</xsl:text>\n    </xsl:message>\n    <xsl:message>\n        <xsl:text>SW:</xsl:text>\n        <xsl:value-of select=\"$layout/space-width\" />\n        <xsl:text>:SW</xsl:text>\n    </xsl:message>\n    <xsl:message>~~~~~~~~~~~~~~~~~~~~</xsl:message>\n     -->\n\n    <!-- \"paragraphs\" deprecated within sidebyside, 2018-05-02 -->\n    <!-- jsxgraph deprecated?  Check                           -->\n\n    <xsl:variable name=\"panels\" select=\"p|pre|ol|ul|dl|program|console|poem|audio|video|interactive|slate|exercise|image|figure|table|listing|list|tabular|stack|jsxgraph|paragraphs\" />\n\n    <!-- We build up lists of various parts of a panel      -->\n    <!-- It has setup (LaTeX), headers (titles), panels,    -->\n    <!-- and captions.  These then go to \"compose-panels\".  -->\n    <!-- Implementations need to define modal templates     -->\n    <!--   panel-header, panel-panel, panel-caption         -->\n    <!-- The parameters passed to each is the union of what -->\n    <!-- is needed for LaTeX and HTML implementations.      -->\n    <!-- Final results are collectively sent to modal       -->\n    <!--   compose-panels                                   -->\n    <!-- template to be arranged                            -->\n    <!-- TODO: Instead we could pass the $layout to the four,    -->\n    <!-- and infer the $panel-number in the receiving templates. -->\n\n    <xsl:variable name=\"panel-panels\">\n        <xsl:for-each select=\"$panels\">\n            <!-- context is now a particular panel -->\n            <xsl:variable name=\"panel-number\" select=\"count(preceding-sibling::*) + 1\" />\n            <xsl:apply-templates select=\".\" mode=\"panel-panel\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"width\" select=\"$layout/width[$panel-number]\" />\n                <xsl:with-param name=\"left-margin\" select=\"$layout/left-margin\" />\n                <xsl:with-param name=\"right-margin\" select=\"$layout/right-margin\" />\n                <xsl:with-param name=\"valign\" select=\"$layout/valign[$panel-number]\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:for-each>\n    </xsl:variable>\n\n    <xsl:apply-templates select=\".\" mode=\"pre-sidebyside\"/>\n    <!-- now collect components into output wrappers -->\n    <xsl:apply-templates select=\".\" mode=\"compose-panels\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n\n        <xsl:with-param name=\"layout\" select=\"$layout\" />\n        <xsl:with-param name=\"panels\" select=\"$panel-panels\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".\" mode=\"post-sidebyside\"/>\n</xsl:template>\n\n<!-- ########################################### -->\n<!-- Side-By-Side Group (sbsgroup) main template -->\n<!-- ########################################### -->\n\n<!-- A side-by-side group (\"sbsgroup\") is a wrapper    -->\n<!-- around a sequence of \"sidebyside\".  It provides   -->\n<!-- a place to specify common parameters for several  -->\n<!-- side-by-side, for uniformity.  Also sub-captions  -->\n<!-- should respect the grouping.  It is as pure a     -->\n<!-- container as there can be.  Output is to just     -->\n<!-- pile them up vertically.  Note, layout parameters -->\n<!-- on enclosed \"sidebyside\" take precedence, and     -->\n<!-- it is the layout template for each sidebyside     -->\n<!-- that goes out to the enclosing group to get them  -->\n\n<!-- default wrapper does nothing, output modes may    -->\n<!-- optionally provide some containing structure      -->\n<xsl:template name=\"sbsgroup-wrapper\">\n    <xsl:param name=\"sbsgroup-content\"/>\n    <xsl:copy-of select=\"$sbsgroup-content\"/>\n</xsl:template>\n\n<xsl:template match=\"sbsgroup\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:variable name=\"data\">\n        <xsl:apply-templates select=\".\" mode=\"pre-sbsgroup\"/>\n        <xsl:apply-templates select=\"sidebyside\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n        <xsl:apply-templates select=\".\" mode=\"post-sbsgroup\"/>\n    </xsl:variable>\n    <xsl:call-template name=\"sbsgroup-wrapper\">\n        <xsl:with-param name=\"sbsgroup-content\" select=\"$data\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Since stackable items do not carry titles or captions,   -->\n<!-- their templates do the right thing.  Items that normally -->\n<!-- could go nline within a paragraph without any spacing    -->\n<!-- will be preceded by a \\par in their LaTeX representation -->\n<!-- to get them onto a line of their own                     -->\n<!-- 2019-06-28: parameters only consumed by HTML templates   -->\n<xsl:template match=\"sidebyside/stack\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"width\" />\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"tabular|image|p|pre|ol|ul|dl|audio|video|interactive|slate|program|console|exercise\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"width\" select=\"$width\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- ################# -->\n<!-- Post-Layout Hooks -->\n<!-- ################# -->\n\n<!-- We may wish to add information above or below a \"sidebyside\"  -->\n<!-- or a \"sbsgroup\".  Motivation is keyboard shortcut help for    -->\n<!-- interactive accessible diagrams out of PreFigure code with    -->\n<!-- the diagcess JS library.  See invocations above, with no-op   -->\n<!-- stubs here. -->\n\n<xsl:template match=\"sidebyside\" mode=\"pre-sidebyside\"/>\n<xsl:template match=\"sbsgroup\" mode=\"pre-sbsgroup\"/>\n<xsl:template match=\"sidebyside\" mode=\"post-sidebyside\"/>\n<xsl:template match=\"sbsgroup\" mode=\"post-sbsgroup\"/>\n\n<!-- ############## -->\n<!-- List Utilities -->\n<!-- ############## -->\n\n<!-- A list item may be:                                        -->\n<!--   * unstructured, like a sentence of a \"p\"                 -->\n<!--   * structured into paragraphs, sublists, etc.             -->\n<!-- For the first, we cannot automatically strip space         -->\n<!-- To be flexible about the second, we kill interstitial text -->\n<xsl:template match=\"li[p|ol|ul|dl]/text()\">\n    <xsl:variable name=\"text\" select=\"normalize-space(.)\" />\n    <xsl:if test=\"$text\">\n        <xsl:message>PTX:WARNING: Unstructured content within a list item is being ignored (\"<xsl:value-of select=\"$text\" />\")</xsl:message>\n         <xsl:apply-templates select=\"..\" mode=\"location-report\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- List Levels -->\n<!-- Utility templates to determine the depth      -->\n<!-- of a list, relative to nesting in other lists -->\n\n<!-- We determine the depth of an unordered     -->\n<!-- list, relative only to other unordered     -->\n<!-- lists in a nesting, so as to determine     -->\n<!-- the right label to apply, esp. as defaults -->\n<!-- The recursive template should be called    -->\n<!-- without a level, since it defaults to zero -->\n<xsl:template match=\"ul\" mode=\"unordered-list-level\">\n    <!-- Start with level zero, and increment on successive calls -->\n    <xsl:param name=\"level\" select=\"0\"/>\n    <xsl:choose>\n        <!-- Another unordered list above, add one and recurse -->\n        <xsl:when test=\"ancestor::ul\">\n            <xsl:apply-templates select=\"ancestor::ul[1]\" mode=\"unordered-list-level\">\n                <xsl:with-param name=\"level\" select=\"$level + 1\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- No unordered list above, done, so return level -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$level\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Ordered lists follow the same strategy,           -->\n<!-- except we implement exercises and references      -->\n<!-- elements as ordered lists, so we need to absorb   -->\n<!-- them into the general treatment of nested lists   -->\n<!-- They do only occur as top-level elements, so that -->\n<!-- assumption allows for some economy                -->\n<xsl:template match=\"ol\" mode=\"ordered-list-level\">\n    <xsl:param name=\"level\" select=\"0\"/>\n    <xsl:choose>\n        <!-- Since exercises divisions and references are top-level -->\n        <!-- ordered lists, when these are the only interesting     -->\n        <!-- ancestor, we add one to the level and return           -->\n        <xsl:when test=\"(ancestor::exercises or ancestor::worksheet or ancestor::handout or ancestor::reading-questions or ancestor::references) and not(ancestor::ol)\">\n            <xsl:value-of select=\"$level + 1\" />\n        </xsl:when>\n        <xsl:when test=\"ancestor::ol\">\n            <xsl:apply-templates select=\"ancestor::ol[1]\" mode=\"ordered-list-level\">\n                <xsl:with-param name=\"level\" select=\"$level + 1\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$level\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Exercises and References are        -->\n<!-- specialized top-level ordered lists -->\n<xsl:template match=\"exercises|worksheet|handout|reading-questions|references\" mode=\"ordered-list-level\">\n    <xsl:value-of select=\"0\" />\n</xsl:template>\n\n<!-- To indent properly in markdown, we  -->\n<!-- need to count every type of list    -->\n<xsl:template match=\"*\" mode=\"list-level\">\n    <xsl:param name=\"level\" select=\"0\" />\n    <xsl:choose>\n        <xsl:when test=\"ancestor-or-self::ol or ancestor-or-self::ul or ancestor-or-self::dl\">\n            <xsl:choose>\n                <!-- at a node to count -->\n                <xsl:when test=\"self::ol or self::ul or self::dl\">\n                    <xsl:apply-templates select=\"parent::*\" mode=\"list-level\">\n                        <xsl:with-param name=\"level\" select=\"$level + 1\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <!-- go up a level w/out incrementing-->\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"parent::*\" mode=\"list-level\">\n                        <xsl:with-param name=\"level\" select=\"$level\" />\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- now done, report level -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$level\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Labels of unordered list have formatting codes, which -->\n<!-- we detect here and pass on to other more specialized  -->\n<!-- templates for implementation specifics                -->\n<!-- disc, circle, square or blank are the options         -->\n<!-- Default order: disc, circle, square, disc             -->\n<xsl:template match=\"ul\" mode=\"format-code\">\n    <xsl:choose>\n        <xsl:when test=\"@marker\">\n            <xsl:choose>\n                <xsl:when test=\"@marker='disc'\">disc</xsl:when>\n                <xsl:when test=\"@marker='circle'\">circle</xsl:when>\n                <xsl:when test=\"@marker='square'\">square</xsl:when>\n                <xsl:when test=\"@marker=''\">none</xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>ptx:ERROR: unordered list label (<xsl:value-of select=\"@marker\" />) not recognized</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"level\">\n                <xsl:apply-templates select=\".\" mode=\"unordered-list-level\" />\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"$level='0'\">disc</xsl:when>\n                <xsl:when test=\"$level='1'\">circle</xsl:when>\n                <xsl:when test=\"$level='2'\">square</xsl:when>\n                <xsl:when test=\"$level='3'\">disc</xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:ERROR: unordered list is more than 4 levels deep (at level <xsl:value-of select=\"$level\" />)</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- CSS class for multi-column lists -->\n<!-- Context is element with potential \"cols\" attribute -->\n<!-- Return value is \"colsN\" with 2 <= N <= 6           -->\n<!-- @cols absent produces no result (i.e. classless)   -->\n<!-- @cols = 1 produces no result (i.e. classless)      -->\n<!-- Error message if out-of-range, could be made fatal -->\n<!-- Schema should enforce this restriction also        -->\n<xsl:template match=\"ol|ul|exercisegroup\" mode=\"number-cols-CSS-class\">\n    <xsl:choose>\n        <xsl:when test=\"not(@cols)\"/>\n        <xsl:when test=\"@cols = 1\"/>\n        <xsl:when test=\"(@cols = 2) or (@cols = 3) or (@cols = 4) or (@cols = 5) or (@cols = 6)\">\n            <xsl:text>cols</xsl:text>\n            <xsl:value-of select=\"@cols\" />\n            <xsl:text> multicolumn</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR:   @cols attribute of lists or exercise groups, must be between 1 and 6 (inclusive), not \"cols=<xsl:value-of select=\"@cols\" />\"</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Exercise Utilities -->\n<!-- ################## -->\n\n<!-- Exercises, projects and tasks, generally have \"statement\",    -->\n<!-- \"hint\", \"answer\", and \"solution\".  Switches control           -->\n<!-- appearance in the main matter and in solution lists.          -->\n<!--                                                               -->\n<!-- But they are surrounded by infrastructure:  number and title, -->\n<!-- exercise group with introduction and conclusion, division     -->\n<!-- headings.  If switches make all the content disappear within  -->\n<!-- some infrastructure, then the infrastructure becomes          -->\n<!-- superfluous.  So we provide a hierarchy of templates to       -->\n<!-- determine if structure and content yield output.              -->\n\n<!-- Bottom-up, a \"traditional\" exercise is clearest, so first.   -->\n<!-- Strategy is to produce non-empty output if the item would    -->\n<!-- normally produce some *real* output.                         -->\n\n<!-- \"exercise\", not WeBWorK or MyOpenMath, plus project-like. -->\n<!-- Easiest to switch on structured by task, or simpler       -->\n<!-- \"traditional\" exercise.                                   -->\n\n<xsl:template match=\"exercise[not(webwork-reps or myopenmath)]|&PROJECT-LIKE;\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:variable name=\"admitted\">\n        <xsl:apply-templates select=\".\" mode=\"determine-admission\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"b-admitted\" select=\"boolean($admitted = 'yes')\"/>\n\n    <xsl:choose>\n        <!-- return nothing if not admitted -->\n        <xsl:when test=\"not($b-admitted)\"/>\n        <!-- recurse down into \"task\" via two templates above -->\n        <xsl:when test=\"task\">\n            <xsl:apply-templates select=\"task\" mode=\"dry-run\">\n                <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- simple \"traditional\" exercise -->\n        <xsl:otherwise>\n            <xsl:if test=\"$b-has-statement or ($b-has-hint and hint) or ($b-has-answer and answer) or ($b-has-solution and solution)\">\n                <xsl:text>X</xsl:text>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We explicitly burrow down into tasks, since when we produce -->\n<!-- the solutions, the labels on the tasks are infrastructure   -->\n<!-- and we need the precision of knowing just which \"task\"      -->\n<!-- harbor solutions (and which do not).                        -->\n\n<!-- terminal (leaf) tasks -->\n<xsl:template match=\"task[not(task)]\" mode=\"dry-run\">\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:if test=\"$b-has-statement or ($b-has-hint and hint) or ($b-has-answer and answer) or ($b-has-solution and solution)\">\n        <xsl:text>X</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Simply pass through intermediate task since they  -->\n<!-- cannot harbor solutions (says schema) -->\n<xsl:template match=\"task[task]\" mode=\"dry-run\">\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:apply-templates select=\"task\" mode=\"dry-run\">\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- WeBWorK are exceptional.  We use the \"webwork-reps\" element -->\n<!-- added by the assembly routine to examine \"static\" for the   -->\n<!-- indication of existence of solutions - even if the problem  -->\n <!-- is \"live\" in interactive output.  Note that \"stage\" is     -->\n <!-- similar to \"task\" above, we need to carefully burrow down  -->\n <!-- into them to get indications of infrastructure when        -->\n <!-- producing output.                                          -->\n\n<!-- WeBWorK exercise, structured by stages or not -->\n<xsl:template match=\"exercise[webwork-reps]\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:variable name=\"admitted\">\n        <xsl:apply-templates select=\".\" mode=\"determine-admission\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"b-admitted\" select=\"boolean($admitted = 'yes')\"/>\n\n    <xsl:choose>\n        <!-- return nothing if not admitted -->\n        <xsl:when test=\"not($b-admitted)\"/>\n        <xsl:when test=\"webwork-reps/static/task|webwork-reps/static/stage\">\n            <xsl:apply-templates select=\"webwork-reps/static/task|webwork-reps/static/stage\" mode=\"dry-run\">\n                <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:if test=\"$b-has-statement or ($b-has-hint and webwork-reps/static/hint) or ($b-has-answer and webwork-reps/static/answer) or ($b-has-solution and webwork-reps/static/solution)\">\n                <xsl:text>X</xsl:text>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- webwork stage is like a problem by itself-->\n<xsl:template match=\"exercise/webwork-reps/static/stage\" mode=\"dry-run\">\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:if test=\"$b-has-statement or ($b-has-hint and hint) or ($b-has-answer and answer) or ($b-has-solution and solution)\">\n        <xsl:text>X</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- 2020-08-31: MyOpenMath is not really implemented fully, this is a -->\n<!-- marker that will just prevent thse problems from appearing at all -->\n<xsl:template match=\"exercise[myopenmath]\" mode=\"dry-run\"/>\n\n\n<!-- Now we can tell is a given exercise (or project-like) will -->\n<!-- generate some solutions, relative to the various switches  -->\n<!-- in play.  So we now decide if various bits of surrounding  -->\n<!-- infrastructure need repeating, since they do, or do not,   -->\n<!-- contain exercises which will produce solutions.            -->\n\n\n<!-- An \"exercisegroup\" potentially has an \"introduction\"  -->\n<!-- and \"conclusion\" as infrastructure, and can only      -->\n<!-- contain divisional \"exercise\" as varying items        -->\n<!-- In a way, this is like an \"exercise\", it has content  -->\n<!-- that is like a \"statement\", so a \"dry-run\" is checked -->\n<!-- before outputting its introduction/conclusion         -->\n<xsl:template match=\"exercisegroup\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:apply-templates select=\"exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A \"subexercises\" potentially has an \"introduction\"    -->\n<!-- and \"conclusion\" as infrastructure, and can only      -->\n<!-- contain divisional \"exercise\" as varying items        -->\n<!-- in addition to possible \"exercisegroup\"               -->\n<!-- In a way, this is like an \"exercisegroup\", it has     -->\n<!-- content that is like a \"statement\", so a \"dry-run\" is -->\n<!-- checked before outputting its introduction/conclusion -->\n<xsl:template match=\"subexercises\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:apply-templates select=\"exercise|exercisegroup\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Now specialized divisions that can hold \"exercise\".  These      -->\n<!-- typically receive many parameters (~20) but only react/consider -->\n<!-- the ones relevant to the type of division being investigated.   -->\n\n<xsl:template match=\"exercises\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-divisional-statement\" />\n    <xsl:param name=\"b-divisional-hint\" />\n    <xsl:param name=\"b-divisional-answer\" />\n    <xsl:param name=\"b-divisional-solution\" />\n\n    <xsl:apply-templates select=\".//exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-divisional-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-divisional-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-divisional-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-divisional-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"worksheet\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-worksheet-statement\" />\n    <xsl:param name=\"b-worksheet-hint\" />\n    <xsl:param name=\"b-worksheet-answer\" />\n    <xsl:param name=\"b-worksheet-solution\" />\n    <xsl:param name=\"b-project-statement\" />\n    <xsl:param name=\"b-project-hint\" />\n    <xsl:param name=\"b-project-answer\" />\n    <xsl:param name=\"b-project-solution\" />\n\n    <xsl:apply-templates select=\".//exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-worksheet-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-worksheet-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-worksheet-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-worksheet-solution\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".//activity|.//exploration|.//investigation|.//project\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-project-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-project-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-project-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-project-solution\" />\n    </xsl:apply-templates>\n\n</xsl:template>\n\n<xsl:template match=\"reading-questions\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-reading-statement\" />\n    <xsl:param name=\"b-reading-hint\" />\n    <xsl:param name=\"b-reading-answer\" />\n    <xsl:param name=\"b-reading-solution\" />\n\n    <xsl:apply-templates select=\"exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-reading-statement\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-reading-hint\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-reading-answer\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-reading-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- An arbitrary division will have a heading as infrastructure.     -->\n<!-- We drill down into the division at any depth looking for objects -->\n<!-- based on the switches that control them.  This means we do not   -->\n<!-- have to examine all possible subdivisions, both traditional      -->\n<!-- and specialized.  Instead, we just pass through them.  But we do -->\n<!-- need to be careful about sort of division is being considered    -->\n<!-- and what switches are passed along.                              -->\n<xsl:template match=\"part|chapter|section|subsection|subsubsection\" mode=\"dry-run\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-inline-statement\" />\n    <xsl:param name=\"b-inline-answer\" />\n    <xsl:param name=\"b-inline-hint\" />\n    <xsl:param name=\"b-inline-solution\" />\n    <xsl:param name=\"b-divisional-statement\" />\n    <xsl:param name=\"b-divisional-answer\" />\n    <xsl:param name=\"b-divisional-hint\" />\n    <xsl:param name=\"b-divisional-solution\" />\n    <xsl:param name=\"b-worksheet-statement\" />\n    <xsl:param name=\"b-worksheet-answer\" />\n    <xsl:param name=\"b-worksheet-hint\" />\n    <xsl:param name=\"b-worksheet-solution\" />\n    <xsl:param name=\"b-reading-statement\" />\n    <xsl:param name=\"b-reading-answer\" />\n    <xsl:param name=\"b-reading-hint\" />\n    <xsl:param name=\"b-reading-solution\" />\n    <xsl:param name=\"b-project-statement\" />\n    <xsl:param name=\"b-project-answer\" />\n    <xsl:param name=\"b-project-hint\" />\n    <xsl:param name=\"b-project-solution\" />\n\n    <xsl:apply-templates select=\".//exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-inline-statement\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-inline-answer\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-inline-hint\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-inline-solution\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".//exercises//exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-divisional-statement\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-divisional-answer\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-divisional-hint\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-divisional-solution\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".//worksheet//exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-worksheet-statement\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-worksheet-answer\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-worksheet-hint\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-worksheet-solution\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".//reading-questions//exercise\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-reading-statement\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-reading-answer\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-reading-hint\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-reading-solution\" />\n    </xsl:apply-templates>\n    <!-- &PROJECT-LIKE; \"project|activity|exploration|investigation\"> -->\n    <xsl:apply-templates select=\".//project|.//activity|.//exploration|.//investigation\" mode=\"dry-run\">\n        <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-project-statement\" />\n        <xsl:with-param name=\"b-has-answer\"    select=\"$b-project-answer\" />\n        <xsl:with-param name=\"b-has-hint\"      select=\"$b-project-hint\" />\n        <xsl:with-param name=\"b-has-solution\"  select=\"$b-project-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- If not explicitly addressed in another template, dry-run returns      -->\n<!-- empty. This is necessary when stacking headings in output from the    -->\n<!-- solutions generator.  The preceding siblings are examined, and it     -->\n<!-- may include elements that do not naturally does a dry-run inspection. -->\n<!-- This wildcard match could make debugging harder, perhaps reporting    -->\n<!-- the element from this template would be useful.                       -->\n<xsl:template match=\"*\" mode=\"dry-run\"/>\n\n<!-- This template is called for items in a printout that can have a   -->\n<!-- workspace specified.  It is important that this sometimes returns -->\n<!-- an empty string, since that is a signal to not construct some     -->\n<!-- surrounding infrastructure to implement the necessary space.      -->\n<xsl:template match=\"*\" mode=\"sanitize-workspace\">\n    <!-- bail out quickly and empty if not on a printout     -->\n    <!-- bail out if at a \"task\" that is not a terminal task -->\n    <!-- we assume LaTeX will only request this template if  -->\n    <!-- the publisher file allows it.                       -->\n    <!-- NB: a blank workspace is used as a signal in \"divisionexercise\" -->\n    <!--     in LaTeX conversion, via parameter #3 of the  environment   -->\n\n    <xsl:if test=\"(ancestor::worksheet or ancestor::handout) and not(child::task)\">\n        <!-- First element with @workspace, confined to the printout   -->\n        <!-- Could be empty node-set, which will be empty string later -->\n        <xsl:variable name=\"raw-workspace\">\n            <xsl:choose>\n                <!-- @workspace on the terminal task or exercise, if it has it. -->\n                <!-- NB can't have children tasks by conditional above. -->\n                <xsl:when test=\"self::task[@workspace] or self::exercise[@workspace]\">\n                    <xsl:value-of select=\"normalize-space(@workspace)\"/>\n                </xsl:when>\n                <!-- task/exercise w/out workspace but @workspace on the first ancestor with it, if any -->\n                <!-- This can happen for an exercise in an exercisegroup -->\n                <xsl:when test=\"(self::task or self::exercise) and ancestor::*[@workspace][1]\">\n                    <xsl:value-of select=\"normalize-space(ancestor::*[@workspace][1]/@workspace)\"/>\n                </xsl:when>\n                <!-- otherwise, @workspace on the element, if any -->\n                <xsl:otherwise>\n                    <xsl:value-of select=\"normalize-space(@workspace)\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:choose>\n            <!-- bail out empty if empty or absent -->\n            <xsl:when test=\"$raw-workspace = ''\"/>\n            <!-- old-style fraction of a page, indicated by a % at end   -->\n            <!-- warn and convert to inches based on 10-inch page height -->\n            <!-- ( (percent div 100) * 10 inch = div 10 )                -->\n            <xsl:when test=\"substring($raw-workspace, string-length($raw-workspace) - 0) = '%'\">\n                <xsl:variable name=\"approximate-inches\" select=\"concat(substring($raw-workspace, 1, string-length($raw-workspace) - 1) div 10, 'in')\"/>\n                <xsl:value-of select=\"$approximate-inches\"/>\n                <xsl:message>PTX:WARNING:  as of 2020-03-17 worksheet exercises' workspace should be specified in 'in' or in 'cm'.  Approximating a page fraction of <xsl:value-of select=\"@workspace\"/> by <xsl:value-of select=\"$approximate-inches\"/>.</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:when>\n            <xsl:when test=\"substring($raw-workspace, string-length($raw-workspace) - 1) = 'in'\">\n                <xsl:value-of select=\"$raw-workspace\"/>\n            </xsl:when>\n            <xsl:when test=\"substring($raw-workspace, string-length($raw-workspace) - 1) = 'cm'\">\n                <xsl:value-of select=\"$raw-workspace\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:WARNING:  a worksheet exercises', project-likes' or tasks' workspace should be specified with units of 'in' or 'cm', and not as \"<xsl:value-of select=\"@workspace\"/>\".  Using a default of \"2in\".</xsl:message>\n                <xsl:text>2in</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- We have a restrictive match above on a modal template,            -->\n<!-- but it is employed with a wider variety of objects so we          -->\n<!-- need an implementation that does nothing                          -->\n<!-- We kill the worksheet @workspace option for WW exercises until    -->\n<!-- we have a better understanding of just how this will be specified -->\n<!-- A no-op, just remove to enable, but will need testing             -->\n<xsl:template match=\"webwork-reps/static|webwork-reps/static/stage|exercisegroup|&SOLUTION-LIKE;\" mode=\"sanitize-workspace\"/>\n\n\n<!-- Get an RTF element containing information about what components of an exercise -->\n<!-- should be rendered based on its type and publisher settings                    -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;|task\" mode=\"exercise-components-report\">\n    <xsl:variable name=\"exercise-type\">\n        <xsl:choose>\n            <xsl:when test=\"self::task\">project</xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"./@exercise-customization\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$exercise-type = 'inline'\">\n            <exercise-component-report has-hint=\"{$b-has-inline-hint}\" has-answer=\"{$b-has-inline-answer}\" has-solution=\"{$b-has-inline-solution}\"/>\n        </xsl:when>\n        <xsl:when test=\"$exercise-type = 'project'\">\n            <exercise-component-report has-hint=\"{$b-has-project-hint}\" has-answer=\"{$b-has-project-answer}\" has-solution=\"{$b-has-project-solution}\"/>\n        </xsl:when>\n        <xsl:when test=\"$exercise-type = 'divisional'\">\n            <exercise-component-report has-hint=\"{$b-has-divisional-hint}\" has-answer=\"{$b-has-divisional-answer}\" has-solution=\"{$b-has-divisional-solution}\"/>\n        </xsl:when>\n        <xsl:when test=\"$exercise-type = 'worksheet'\">\n            <exercise-component-report has-hint=\"{$b-has-worksheet-hint}\" has-answer=\"{$b-has-worksheet-answer}\" has-solution=\"{$b-has-worksheet-solution}\"/>\n        </xsl:when>\n        <xsl:when test=\"$exercise-type = 'reading'\">\n            <exercise-component-report has-hint=\"{$b-has-reading-hint}\" has-answer=\"{$b-has-reading-answer}\" has-solution=\"{$b-has-reading-solution}\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: can't determine exercise type</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ####################################### -->\n<!-- Solutions Divisions, Content Generation -->\n<!-- ####################################### -->\n\n<!-- A light wrapper around the \"solutions-generator\" template (next). -->\n<!-- We just examine the attributes describing a \"solutions\" division. -->\n<!-- The division is one-off (not knowled), so we treat the            -->\n<!-- introduction and conclusion as original                           -->\n<xsl:template match=\"solutions\" mode=\"solutions\">\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- A \"solutions\" division may exist in the main matter  -->\n    <!-- or the back matter.  When we generate a solution, we -->\n    <!-- want to know which kind it is, so it can be labeled  -->\n    <!-- so that a forward-reference is accurate.             -->\n    <xsl:variable name=\"purpose\">\n        <xsl:choose>\n            <xsl:when test=\"parent::backmatter\">\n                <xsl:text>backmatter</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>mainmatter</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- A \"solutions\" may have an @admit that indicates a subset -->\n    <!-- of which exercises to admit. The default is 'all'        -->\n    <xsl:variable name=\"admit\">\n        <xsl:choose>\n            <xsl:when test=\"@admit\">\n                <xsl:value-of select=\"@admit\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>all</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:apply-templates select=\"introduction\">\n        <xsl:with-param name=\"b-original\" select=\"true()\" />\n    </xsl:apply-templates>\n    <!-- We call the solutions-generator one of two ways, either by     -->\n    <!-- looking up a level, to the parent (jumping over \"backmatter\")  -->\n    <!-- or by respecting a @scope attribute that specifies the parent. -->\n    <!-- The \"call\" is identical, only the @select is different.        -->\n    <!-- (Maybe there is a better way to use just one call?)            -->\n\n    <xsl:choose>\n        <xsl:when test=\"@scope\">\n            <!-- First check that the scope is reasonable, i.e. it -->\n            <!-- exists and is one of the elements defined for the -->\n            <!-- \"solutions-generator\" template                    -->\n            <xsl:variable name=\"scope\" select=\"id(@scope)\"/>\n            <xsl:if test=\"not($scope)\">\n                <xsl:message>PTX:WARNING: unresolved @scope (\"<xsl:value-of select=\"@scope\"/>\") for a &lt;solutions&gt; division</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:if>\n            <xsl:if test=\"not($scope/self::book|$scope/self::article|$scope/self::chapter|$scope/self::section|$scope/self::subsection|$scope/self::subsubsection|$scope/self::exercises|$scope/self::worksheet|$scope/self::reading-questions)\">\n                <xsl:message>PTX:ERROR: the @scope (\"<xsl:value-of select=\"@scope\"/>\") of a &lt;solutions&gt; division is not a supported division.  If you think your attempt is reasonable, please make a feature request.  Results now will be unpredictable</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:if>\n\n            <xsl:apply-templates select=\"$scope\" mode=\"solutions-generator\">\n                <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"scope\" select=\"$scope\"/>\n                <xsl:with-param name=\"b-inline-statement\"     select=\"contains(@inline,     'statement')\" />\n                <xsl:with-param name=\"b-inline-hint\"          select=\"contains(@inline,     'hint')\"      />\n                <xsl:with-param name=\"b-inline-answer\"        select=\"contains(@inline,     'answer')\"    />\n                <xsl:with-param name=\"b-inline-solution\"      select=\"contains(@inline,     'solution')\"  />\n                <xsl:with-param name=\"b-divisional-statement\" select=\"contains(@divisional, 'statement')\" />\n                <xsl:with-param name=\"b-divisional-hint\"      select=\"contains(@divisional, 'hint')\"      />\n                <xsl:with-param name=\"b-divisional-answer\"    select=\"contains(@divisional, 'answer')\"    />\n                <xsl:with-param name=\"b-divisional-solution\"  select=\"contains(@divisional, 'solution')\"  />\n                <xsl:with-param name=\"b-worksheet-statement\"  select=\"contains(@worksheet,  'statement')\" />\n                <xsl:with-param name=\"b-worksheet-hint\"       select=\"contains(@worksheet,  'hint')\"      />\n                <xsl:with-param name=\"b-worksheet-answer\"     select=\"contains(@worksheet,  'answer')\"    />\n                <xsl:with-param name=\"b-worksheet-solution\"   select=\"contains(@worksheet,  'solution')\"  />\n                <xsl:with-param name=\"b-reading-statement\"    select=\"contains(@reading,    'statement')\" />\n                <xsl:with-param name=\"b-reading-hint\"         select=\"contains(@reading,    'hint')\"      />\n                <xsl:with-param name=\"b-reading-answer\"       select=\"contains(@reading,    'answer')\"    />\n                <xsl:with-param name=\"b-reading-solution\"     select=\"contains(@reading,    'solution')\"  />\n                <xsl:with-param name=\"b-project-statement\"    select=\"contains(@project,    'statement')\" />\n                <xsl:with-param name=\"b-project-hint\"         select=\"contains(@project,    'hint')\"      />\n                <xsl:with-param name=\"b-project-answer\"       select=\"contains(@project,    'answer')\"    />\n                <xsl:with-param name=\"b-project-solution\"     select=\"contains(@project,    'solution')\"  />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- the default scope, first ancestor -->\n            <xsl:apply-templates select=\"ancestor::*[not(self::backmatter)][1]\" mode=\"solutions-generator\">\n                <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"scope\" select=\"ancestor::*[not(self::backmatter)][1]\"/>\n                <xsl:with-param name=\"b-inline-statement\"     select=\"contains(@inline,     'statement')\" />\n                <xsl:with-param name=\"b-inline-hint\"          select=\"contains(@inline,     'hint')\"      />\n                <xsl:with-param name=\"b-inline-answer\"        select=\"contains(@inline,     'answer')\"    />\n                <xsl:with-param name=\"b-inline-solution\"      select=\"contains(@inline,     'solution')\"  />\n                <xsl:with-param name=\"b-divisional-statement\" select=\"contains(@divisional, 'statement')\" />\n                <xsl:with-param name=\"b-divisional-hint\"      select=\"contains(@divisional, 'hint')\"      />\n                <xsl:with-param name=\"b-divisional-answer\"    select=\"contains(@divisional, 'answer')\"    />\n                <xsl:with-param name=\"b-divisional-solution\"  select=\"contains(@divisional, 'solution')\"  />\n                <xsl:with-param name=\"b-worksheet-statement\"  select=\"contains(@worksheet,  'statement')\" />\n                <xsl:with-param name=\"b-worksheet-hint\"       select=\"contains(@worksheet,  'hint')\"      />\n                <xsl:with-param name=\"b-worksheet-answer\"     select=\"contains(@worksheet,  'answer')\"    />\n                <xsl:with-param name=\"b-worksheet-solution\"   select=\"contains(@worksheet,  'solution')\"  />\n                <xsl:with-param name=\"b-reading-statement\"    select=\"contains(@reading,    'statement')\" />\n                <xsl:with-param name=\"b-reading-hint\"         select=\"contains(@reading,    'hint')\"      />\n                <xsl:with-param name=\"b-reading-answer\"       select=\"contains(@reading,    'answer')\"    />\n                <xsl:with-param name=\"b-reading-solution\"     select=\"contains(@reading,    'solution')\"  />\n                <xsl:with-param name=\"b-project-statement\"    select=\"contains(@project,    'statement')\" />\n                <xsl:with-param name=\"b-project-hint\"         select=\"contains(@project,    'hint')\"      />\n                <xsl:with-param name=\"b-project-answer\"       select=\"contains(@project,    'answer')\"    />\n                <xsl:with-param name=\"b-project-solution\"     select=\"contains(@project,    'solution')\"  />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n\n\n    <xsl:apply-templates select=\"conclusion\">\n        <xsl:with-param name=\"b-original\" select=\"true()\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Determine whether an exercise should be admitted, given its serial -->\n<!-- number and some specification for what should be admitted.         -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;\" mode=\"determine-admission\">\n    <xsl:param name=\"admit\"/>\n    <xsl:variable name=\"serial-number\">\n        <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"($admit='odd') and ($serial-number mod 2 = 1)\">\n            <xsl:value-of select=\"'yes'\"/>\n        </xsl:when>\n        <xsl:when test=\"($admit='even') and ($serial-number mod 2 = 0)\">\n            <xsl:value-of select=\"'yes'\"/>\n        </xsl:when>\n        <xsl:when test=\"$admit='all'\">\n            <xsl:value-of select=\"'yes'\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Solutions Generator -->\n\n<!-- Context is the originally the scope (root of subtree examined)      -->\n<!-- and is meant to be a \"traditional\" division, as expressed in        -->\n<!-- the schema.  However, on recursion context can be any division      -->\n<!-- containing exercises, such as \"worksheet\".  We do not allow a       -->\n<!-- \"solutions\" division to live inside a \"part\", so in the default     -->\n<!-- use a part is not the context.  This is all to explain that         -->\n<!-- the match is more expansive than first use, in practice.            -->\n<!--                                                                     -->\n<!-- On first call, the placing division should have a descriptive       -->\n<!-- title from the author, such as \"Solutions to Chapter Exercises\",    -->\n<!-- when placed at the level of a section (and assuming default scope). -->\n<!--                                                                     -->\n<!-- \"scope\" is replicated/preserved/remembered in recursive calls.      -->\n<!--                                                                     -->\n<!-- \"heading-stack\" is a node set consisting of all divisional nodes    -->\n<!-- between the current node and the scope that warrant having their    -->\n<!-- heading printed when the \"leaf\" division is finally dropping its    -->\n<!-- content. It includes the \"scope\" even though the scope's heading    -->\n<!-- may ultimately not be printed. The \"division-in-solutions\"          -->\n<!-- template can cut scope from the heading-stack when desired.         -->\n<!--                                                                     -->\n<!-- NB: this template is used/called directly by the                    -->\n<!-- \"solution-manual-latex.xsl\" stylesheet, so coordinate               -->\n<!-- changes here with usage there.                                      -->\n\n<xsl:template match=\"book|article|part|chapter|section|subsection|subsubsection|exercises|worksheet|reading-questions\" mode=\"solutions-generator\">\n    <xsl:param name=\"purpose\"/>\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"heading-stack\" select=\".\"/>\n    <xsl:param name=\"scope\"/>\n    <xsl:param name=\"b-inline-statement\"     />\n    <xsl:param name=\"b-inline-hint\"          />\n    <xsl:param name=\"b-inline-answer\"        />\n    <xsl:param name=\"b-inline-solution\"      />\n    <xsl:param name=\"b-divisional-statement\" />\n    <xsl:param name=\"b-divisional-hint\"      />\n    <xsl:param name=\"b-divisional-answer\"    />\n    <xsl:param name=\"b-divisional-solution\"  />\n    <xsl:param name=\"b-worksheet-statement\"  />\n    <xsl:param name=\"b-worksheet-hint\"       />\n    <xsl:param name=\"b-worksheet-answer\"     />\n    <xsl:param name=\"b-worksheet-solution\"   />\n    <xsl:param name=\"b-reading-statement\"    />\n    <xsl:param name=\"b-reading-hint\"         />\n    <xsl:param name=\"b-reading-answer\"       />\n    <xsl:param name=\"b-reading-solution\"     />\n    <xsl:param name=\"b-project-statement\"    />\n    <xsl:param name=\"b-project-hint\"         />\n    <xsl:param name=\"b-project-answer\"       />\n    <xsl:param name=\"b-project-solution\"     />\n\n    <!-- See if division has *any* content, at any depth, in light of switches. -->\n    <!-- Traditional divisions expect many switches, while specialized          -->\n    <!-- divisions expect a limited subset                                      -->\n    <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\"                  select=\"$admit\"/>\n            <xsl:with-param name=\"b-inline-statement\"     select=\"$b-inline-statement\" />\n            <xsl:with-param name=\"b-inline-answer\"        select=\"$b-inline-answer\" />\n            <xsl:with-param name=\"b-inline-hint\"          select=\"$b-inline-hint\" />\n            <xsl:with-param name=\"b-inline-solution\"      select=\"$b-inline-solution\" />\n            <xsl:with-param name=\"b-divisional-statement\" select=\"$b-divisional-statement\" />\n            <xsl:with-param name=\"b-divisional-answer\"    select=\"$b-divisional-answer\" />\n            <xsl:with-param name=\"b-divisional-hint\"      select=\"$b-divisional-hint\" />\n            <xsl:with-param name=\"b-divisional-solution\"  select=\"$b-divisional-solution\" />\n            <xsl:with-param name=\"b-worksheet-statement\"  select=\"$b-worksheet-statement\" />\n            <xsl:with-param name=\"b-worksheet-answer\"     select=\"$b-worksheet-answer\" />\n            <xsl:with-param name=\"b-worksheet-hint\"       select=\"$b-worksheet-hint\" />\n            <xsl:with-param name=\"b-worksheet-solution\"   select=\"$b-worksheet-solution\" />\n            <xsl:with-param name=\"b-reading-statement\"    select=\"$b-reading-statement\" />\n            <xsl:with-param name=\"b-reading-answer\"       select=\"$b-reading-answer\" />\n            <xsl:with-param name=\"b-reading-hint\"         select=\"$b-reading-hint\" />\n            <xsl:with-param name=\"b-reading-solution\"     select=\"$b-reading-solution\" />\n            <xsl:with-param name=\"b-project-statement\"    select=\"$b-project-statement\" />\n            <xsl:with-param name=\"b-project-answer\"       select=\"$b-project-answer\" />\n            <xsl:with-param name=\"b-project-hint\"         select=\"$b-project-hint\" />\n            <xsl:with-param name=\"b-project-solution\"     select=\"$b-project-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <!-- Now apply dry-run to preceding-siblings. If this comes back empty, -->\n    <!-- we know that this division should pass along the heading-stack     -->\n    <!-- node set of ancestors for grouping stacked headings.               -->\n    <!-- Otherwise, set the heading-stack to just this division.            -->\n    <xsl:variable name=\"preceding-sibling-dry-run\">\n        <xsl:apply-templates select=\"preceding-sibling::*\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\"                  select=\"$admit\"/>\n            <xsl:with-param name=\"b-inline-statement\"     select=\"$b-inline-statement\" />\n            <xsl:with-param name=\"b-inline-answer\"        select=\"$b-inline-answer\" />\n            <xsl:with-param name=\"b-inline-hint\"          select=\"$b-inline-hint\" />\n            <xsl:with-param name=\"b-inline-solution\"      select=\"$b-inline-solution\" />\n            <xsl:with-param name=\"b-divisional-statement\" select=\"$b-divisional-statement\" />\n            <xsl:with-param name=\"b-divisional-answer\"    select=\"$b-divisional-answer\" />\n            <xsl:with-param name=\"b-divisional-hint\"      select=\"$b-divisional-hint\" />\n            <xsl:with-param name=\"b-divisional-solution\"  select=\"$b-divisional-solution\" />\n            <xsl:with-param name=\"b-worksheet-statement\"  select=\"$b-worksheet-statement\" />\n            <xsl:with-param name=\"b-worksheet-answer\"     select=\"$b-worksheet-answer\" />\n            <xsl:with-param name=\"b-worksheet-hint\"       select=\"$b-worksheet-hint\" />\n            <xsl:with-param name=\"b-worksheet-solution\"   select=\"$b-worksheet-solution\" />\n            <xsl:with-param name=\"b-reading-statement\"    select=\"$b-reading-statement\" />\n            <xsl:with-param name=\"b-reading-answer\"       select=\"$b-reading-answer\" />\n            <xsl:with-param name=\"b-reading-hint\"         select=\"$b-reading-hint\" />\n            <xsl:with-param name=\"b-reading-solution\"     select=\"$b-reading-solution\" />\n            <xsl:with-param name=\"b-project-statement\"    select=\"$b-project-statement\" />\n            <xsl:with-param name=\"b-project-answer\"       select=\"$b-project-answer\" />\n            <xsl:with-param name=\"b-project-hint\"         select=\"$b-project-hint\" />\n            <xsl:with-param name=\"b-project-solution\"     select=\"$b-project-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"b-preceding-empty\" select=\"$preceding-sibling-dry-run = ''\"/>\n    <xsl:variable name=\"next-heading-stack\" select=\".|ancestor::*[$b-preceding-empty and (count(.|$heading-stack) = count($heading-stack))]\"/>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <!-- We call the only real abstract template, it simply        -->\n        <!-- provides the correct wrapping for a division appearing    -->\n        <!-- to aid in organizing a collection of solutions.           -->\n        <!--                                                           -->\n        <!-- Context is a division: traditional, or specialized.       -->\n        <!-- We want all \"exercise\" and \"project\", in document order,  -->\n        <!-- without descending into subdivisions.  We handle          -->\n        <!-- \"exercisegroup\" specially, since it has \"statement\"       -->\n        <!-- characteristics.  In a traditional division, an inline    -->\n        <!-- exercise can be inside a \"paragraphs\".  If we divide an   -->\n        <!-- \"exercises\" division, we will need to explicitly burrow   -->\n        <!-- down into it.  Finally, a \"worksheet\" can have \"exercise\" -->\n        <!-- laid out via \"sidebyside\".                                -->\n        <!-- The purpose is sent to the modal \"solutions\" templates    -->\n        <!-- in order to generate accurate labels based on position    -->\n        <!-- The \"heading-level\" is the same as the originating        -->\n        <!-- \"solutions\" division on the first call here               -->\n\n        <!-- But first, we see if just one type of component has been  -->\n        <!-- requested, across the various types of \"exercise\".  The   -->\n        <!-- point is to squelch a repetitive heading all through a    -->\n        <!-- list of solutions, so we need to pass the condition on    -->\n        <!-- through.                                                  -->\n        <!-- NB: this gets recomputed as we recurse into subdivisions, -->\n        <!-- but it must be awful fast, so we don't try to set some    -->\n        <!-- flag indicating necessity of computing it.  But recognize -->\n        <!-- we don't need to pass it in the recursive call below.     -->\n        <!-- NB: this is different than the actual components selected -->\n        <!-- all ending up as the same type in the output, because     -->\n        <!-- some requested type never appears.                        -->\n\n        <xsl:variable name=\"variety\">\n            <xsl:if test=\"$b-inline-statement or $b-divisional-statement or $b-worksheet-statement or $b-reading-statement or $b-project-statement\">\n                <xsl:text>T</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$b-inline-hint or $b-divisional-hint or $b-worksheet-hint or $b-reading-hint or $b-project-hint\">\n                <xsl:text>H</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$b-inline-answer or $b-divisional-answer or $b-worksheet-answer or $b-reading-answer or $b-project-answer\">\n                <xsl:text>A</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$b-inline-solution or $b-divisional-solution or $b-worksheet-solution or $b-reading-solution or $b-project-solution\">\n                <xsl:text>S</xsl:text>\n            </xsl:if>\n        </xsl:variable>\n        <xsl:variable name=\"b-component-heading\" select=\"string-length($variety) &gt; 1\"/>\n\n        <!-- Specialized divisions in unstructured divisions have a heading   -->\n        <!-- level that is 2 deeper from invoking \"solutions\".                -->\n        <!-- Other leaf divisions are 1 deeper than the invoking \"solutions\". -->\n        <xsl:variable name=\"is-specialized-division\">\n            <xsl:apply-templates select=\".\" mode=\"is-specialized-division\"/>\n        </xsl:variable>\n        <xsl:variable name=\"is-child-of-structured\">\n            <xsl:apply-templates select=\"parent::*\" mode=\"is-structured-division\"/>\n        </xsl:variable>\n        <xsl:variable name=\"next-heading-level\">\n            <xsl:choose>\n                <xsl:when test=\"$is-specialized-division = 'true' and $is-child-of-structured = 'false'\">\n                    <xsl:value-of select=\"$heading-level + 2\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$heading-level + 1\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n\n        <xsl:apply-templates select=\".\" mode=\"division-in-solutions\">\n            <xsl:with-param name=\"scope\" select=\"$scope\" />\n            <xsl:with-param name=\"heading-level\" select=\"$next-heading-level\"/>\n            <xsl:with-param name=\"heading-stack\" select=\"$next-heading-stack\"/>\n            <xsl:with-param name=\"content\">\n\n                <!-- N.B.: inline exercises and PROJECT-LIKE can be   -->\n                <!-- \"hidden\" inside the \"paragraphs\" pseudo-division -->\n                <!-- Everything below is 1 deeper than the division's heading -->\n                <xsl:for-each select=\"exercise|subexercises|exercisegroup|&PROJECT-LIKE;|paragraphs/*[self::exercise or &PROJECT-FILTER;]|self::worksheet//*[self::exercise or &PROJECT-FILTER;]\">\n                     <xsl:choose>\n                        <xsl:when test=\"self::exercise and boolean(&INLINE-EXERCISE-FILTER;)\">\n                            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                                <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                                <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                                <xsl:with-param name=\"heading-level\"       select=\"$next-heading-level + 1\"/>\n                                <xsl:with-param name=\"b-has-statement\" select=\"$b-inline-statement\" />\n                                <xsl:with-param name=\"b-has-answer\"    select=\"$b-inline-answer\" />\n                                <xsl:with-param name=\"b-has-hint\"      select=\"$b-inline-hint\" />\n                                <xsl:with-param name=\"b-has-solution\"  select=\"$b-inline-solution\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <xsl:when test=\"self::subexercises|self::exercisegroup\">\n                            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                                <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n                                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                                <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                                <xsl:with-param name=\"heading-level\"       select=\"$next-heading-level + 1\"/>\n                                <xsl:with-param name=\"b-has-statement\" select=\"$b-divisional-statement\" />\n                                <xsl:with-param name=\"b-has-answer\"    select=\"$b-divisional-answer\" />\n                                <xsl:with-param name=\"b-has-hint\"      select=\"$b-divisional-hint\" />\n                                <xsl:with-param name=\"b-has-solution\"  select=\"$b-divisional-solution\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <xsl:when test=\"self::exercise and ancestor::exercises\">\n                            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                                <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n                                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                                <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                                <xsl:with-param name=\"heading-level\"       select=\"$next-heading-level + 1\"/>\n                                <xsl:with-param name=\"b-has-statement\" select=\"$b-divisional-statement\" />\n                                <xsl:with-param name=\"b-has-answer\"    select=\"$b-divisional-answer\" />\n                                <xsl:with-param name=\"b-has-hint\"      select=\"$b-divisional-hint\" />\n                                <xsl:with-param name=\"b-has-solution\"  select=\"$b-divisional-solution\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <xsl:when test=\"self::exercise and ancestor::worksheet\">\n                            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                                <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n                                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                                <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                                <xsl:with-param name=\"heading-level\"       select=\"$next-heading-level + 1\"/>\n                                <xsl:with-param name=\"b-has-statement\" select=\"$b-worksheet-statement\" />\n                                <xsl:with-param name=\"b-has-answer\"    select=\"$b-worksheet-answer\" />\n                                <xsl:with-param name=\"b-has-hint\"      select=\"$b-worksheet-hint\" />\n                                <xsl:with-param name=\"b-has-solution\"  select=\"$b-worksheet-solution\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <xsl:when test=\"self::exercise and ancestor::reading-questions\">\n                            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                                <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n                                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                                <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                                <xsl:with-param name=\"heading-level\"       select=\"$next-heading-level + 1\"/>\n                                <xsl:with-param name=\"b-has-statement\" select=\"$b-reading-statement\" />\n                                <xsl:with-param name=\"b-has-answer\"    select=\"$b-reading-answer\" />\n                                <xsl:with-param name=\"b-has-hint\"      select=\"$b-reading-hint\" />\n                                <xsl:with-param name=\"b-has-solution\"  select=\"$b-reading-solution\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <xsl:when test=\"&PROJECT-FILTER;\">\n                            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                                <xsl:with-param name=\"purpose\" select=\"$purpose\"/>\n                                <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n                                <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                                <xsl:with-param name=\"heading-level\"       select=\"$next-heading-level + 1\"/>\n                                <xsl:with-param name=\"b-has-statement\" select=\"$b-project-statement\" />\n                                <xsl:with-param name=\"b-has-answer\"    select=\"$b-project-answer\" />\n                                <xsl:with-param name=\"b-has-hint\"      select=\"$b-project-hint\" />\n                                <xsl:with-param name=\"b-has-solution\"  select=\"$b-project-solution\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                    </xsl:choose>\n                </xsl:for-each>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- recurse into (sub)divisions which can contain exercises     -->\n    <!-- On every recursion (not initial call) we request a heading  -->\n    <!-- and we pass in the scope of original call for help deciding -->\n    <!-- the level of headings given surroundings.                   -->\n    <!-- This is recurrence, so one might expect to increment $heading-level. -->\n    <!-- But to collapse stacked headings, we leave heading-level stable at   -->\n    <!-- the \"solutions\" level and the output stylesheet should increment 1.  -->\n    <!-- NB: $b-component-heading is recomputed, so is not passed    -->\n    <xsl:apply-templates select=\"book|article|part|chapter|section|subsection|subsubsection|exercises|worksheet|reading-questions\" mode=\"solutions-generator\">\n        <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n        <xsl:with-param name=\"admit\"   select=\"$admit\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-stack\" select=\"$next-heading-stack\"/>\n        <xsl:with-param name=\"scope\" select=\"$scope\" />\n        <xsl:with-param name=\"b-inline-statement\"     select=\"$b-inline-statement\" />\n        <xsl:with-param name=\"b-inline-answer\"        select=\"$b-inline-answer\" />\n        <xsl:with-param name=\"b-inline-hint\"          select=\"$b-inline-hint\" />\n        <xsl:with-param name=\"b-inline-solution\"      select=\"$b-inline-solution\" />\n        <xsl:with-param name=\"b-divisional-statement\" select=\"$b-divisional-statement\" />\n        <xsl:with-param name=\"b-divisional-answer\"    select=\"$b-divisional-answer\" />\n        <xsl:with-param name=\"b-divisional-hint\"      select=\"$b-divisional-hint\" />\n        <xsl:with-param name=\"b-divisional-solution\"  select=\"$b-divisional-solution\" />\n        <xsl:with-param name=\"b-worksheet-statement\"  select=\"$b-worksheet-statement\" />\n        <xsl:with-param name=\"b-worksheet-answer\"     select=\"$b-worksheet-answer\" />\n        <xsl:with-param name=\"b-worksheet-hint\"       select=\"$b-worksheet-hint\" />\n        <xsl:with-param name=\"b-worksheet-solution\"   select=\"$b-worksheet-solution\" />\n        <xsl:with-param name=\"b-reading-statement\"    select=\"$b-reading-statement\" />\n        <xsl:with-param name=\"b-reading-answer\"       select=\"$b-reading-answer\" />\n        <xsl:with-param name=\"b-reading-hint\"         select=\"$b-reading-hint\" />\n        <xsl:with-param name=\"b-reading-solution\"     select=\"$b-reading-solution\" />\n        <xsl:with-param name=\"b-project-statement\"    select=\"$b-project-statement\" />\n        <xsl:with-param name=\"b-project-answer\"       select=\"$b-project-answer\" />\n        <xsl:with-param name=\"b-project-hint\"         select=\"$b-project-hint\" />\n        <xsl:with-param name=\"b-project-solution\"     select=\"$b-project-solution\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- An abstract outer template for each division when repeated in the solutions.                             -->\n<!-- This calls \"duplicate-heading\" modal template, which implements output-specific mechanisms for headings. -->\n\n<xsl:template match=\"book|article|part|chapter|section|subsection|subsubsection|exercises|worksheet|reading-questions\" mode=\"division-in-solutions\">\n    <xsl:param name=\"scope\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"heading-stack\"/>\n    <xsl:param name=\"content\" />\n    <xsl:variable name=\"is-specialized-division\">\n        <xsl:apply-templates select=\".\" mode=\"is-specialized-division\"/>\n    </xsl:variable>\n    <xsl:variable name=\"is-structured\">\n        <xsl:choose>\n            <xsl:when test=\"$is-specialized-division = 'false'\">\n                <xsl:apply-templates select=\".\" mode=\"is-structured-division\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"false()\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"is-child-of-structured\">\n        <xsl:apply-templates select=\"parent::*\" mode=\"is-structured-division\"/>\n    </xsl:variable>\n\n    <!-- We cut \"scope\" from heading-stack if needed.                    -->\n    <!-- Or reset stack if specialized division in unstructured division -->\n    <xsl:variable name=\"final-heading-stack\" select=\".|ancestor-or-self::*[\n        ($is-specialized-division = 'false' or $is-child-of-structured = 'true')\n        and (count(.|$heading-stack) = count($heading-stack))\n        and (count(.|$scope) != count($scope))]\"\n    />\n\n    <!-- A structured division cannot have children that have solution-like things   -->\n    <!-- So we withhold headings for such divisions, passing to the \"leaf\" division, -->\n    <!-- which must itself be unstructured.                                          -->\n    <xsl:choose>\n        <xsl:when test=\"count($final-heading-stack) = 0\">\n            <xsl:copy-of select=\"$content\" />\n        </xsl:when>\n        <xsl:when test=\"not($is-structured = 'true')\">\n            <xsl:apply-templates select=\".\" mode=\"duplicate-heading\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"heading-stack\" select=\"$final-heading-stack\"/>\n            </xsl:apply-templates>\n            <xsl:copy-of select=\"$content\" />\n        </xsl:when>\n        <!-- Content in something structred should just be recursing down to unstructured leaves. -->\n        <xsl:otherwise>\n            <xsl:copy-of select=\"$content\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Printout Margins -->\n<!-- ################ -->\n\n<xsl:template match=\"worksheet|handout\" mode=\"printout-margin\">\n    <xsl:param name=\"author-side\"/>\n    <xsl:param name=\"publisher-side\"/>\n    <xsl:choose>\n        <xsl:when test=\"$author-side\">\n            <xsl:value-of select=\"normalize-space($author-side)\"/>\n        </xsl:when>\n        <xsl:when test=\"@margin\">\n            <xsl:value-of select=\"normalize-space(@margin)\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"normalize-space($publisher-side)\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ##################-->\n<!-- Frontmatter Items -->\n<!-- ##################-->\n\n<!-- Bibliographic information for a document is contained in the     -->\n<!-- frontmatter/bibinfo element.  Items then move to either a        -->\n<!-- titlepage or colophon that contain then empty titlepage-items    -->\n<!-- or colophon-items.  These are implemented by each template.      -->\n <!--Here we define these abstract templates with warnings to do this.-->\n<xsl:template match=\"titlepage-items\">\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"titlepage-items\") in order to specify which bibliographic information to include in the titlepage.</xsl:message>\n</xsl:template>\n\n<xsl:template match=\"colophon-items\">\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"colophon-items\") in order to specify which bibliographic information to include in the front colophon.</xsl:message>\n</xsl:template>\n\n<!-- No conversion will create content directly from bibinfo -->\n<xsl:template match=\"bibinfo\"/>\n\n<!-- Keywords: create a comma-separated list of each keyword -->\n<!-- (the comma can be overridden by a passed param).        -->\n<!-- Include \"Primary\" or \"Secondary\" appropriately, \";\" to  -->\n<!-- separate the list of primary and secondary keywords.    -->\n<!-- No ending period (some styles don't include it).        -->\n<xsl:template match=\"keywords/keyword\">\n    <xsl:param name=\"sep\" select=\"', '\"/>\n    <xsl:if test=\"@primary='yes'\">\n        <xsl:text>Primary </xsl:text>\n    </xsl:if>\n    <xsl:if test=\"@primary='no' or @secondary='yes'\">\n        <xsl:text>Secondary </xsl:text>\n    </xsl:if>\n    <xsl:value-of select=\".\"/>\n    <xsl:choose>\n        <xsl:when test=\"following-sibling::keyword[1][@primary='no' or @secondary='yes']\">\n            <xsl:text>; </xsl:text>\n        </xsl:when>\n        <xsl:when test=\"following-sibling::keyword\">\n            <xsl:value-of select=\"$sep\"/>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- Notation List -->\n<!-- ############# -->\n\n<!-- A list/table where each row is a sample usage (as mathematics), -->\n<!-- a short narrative description, and then a cross-reference or    -->\n<!-- locator to the place where the original \"notation\" element was  -->\n<!-- authored, presumably in the vicinity of a more complete         -->\n<!-- explanation.  These appear in the order of appearance, so no    -->\n<!-- sorting takes place here, document order is what we want.       -->\n\n<!-- Abstract Templates -->\n<!--                                                             -->\n<!-- These require implementation for a new conversion to        -->\n<!-- provide formatting peculiar to an output format.            -->\n<!-- Logic/organization is provided here.                        -->\n<!--                                                             -->\n<!-- \"present-notation-list\"                                     -->\n<!-- A named template (context is not employed), typically with  -->\n<!-- infrastructure to surround the \"content parameter, which is -->\n<!-- the rows of the list/table.  This is applied once.          -->\n<!--                                                             -->\n<!-- \"present-notation-item\"                                     -->\n<!-- A modal template (since a generic template kills \"notation\" -->\n<!-- on-sight) for each instance, forming one row of the table.  -->\n\n<!-- The \"notation\" element can be placed inside a \"p\" or inside a  -->\n<!-- \"definition\".  When encountered in document order it is simply -->\n<!-- killed.  We collect them as a group when forming the list.     -->\n<!-- NB: this is overidden in the conversion to LaTeX since a       -->\n<!-- marker needs to be dropped in order for the cross-reference    -->\n<!-- to find its target.                                            -->\n<xsl:template match=\"notation\"/>\n\n<!-- Match the (single?) \"notation-list\" element, presumably in a     -->\n<!-- back matter division (appendix?).  Provide infrastructure        -->\n<!-- (wrapping) and process global list of individual items in order. -->\n<!-- NB: we tried a \"for-each\", in hopes of easily determining the    -->\n<!-- last \"notation\" so the LaTeX table would not have a final        -->\n<!-- unnecessary \"\\\\\".  But that context switch was lost in the       -->\n<!-- transition to the LaTeX implementation template.  We might form  -->\n<!-- a boolean parameter here (\"$last\") to pass along to every        -->\n<!-- implementation, but that seems like a lot of effort for a        -->\n<!-- problem nobody has mentioned in years.                           -->\n<xsl:template match=\"notation-list\">\n    <xsl:call-template name=\"present-notation-list\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\"$document-root//notation\" mode=\"present-notation-item\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Stub abstract template, with warning -->\n<xsl:template name=\"present-notation-list\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-notation-list\") in order to structure a notation list.</xsl:message>\n</xsl:template>\n\n<!-- Stub abstract template, with warning -->\n<xsl:template match=\"notation\" mode=\"present-notation-item\">\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a modal template (\"present-notation-item\") in order to structure an explanation of a single \"notation\" element.</xsl:message>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Index Production -->\n<!-- ################ -->\n\n<!-- We have templates here that produce an index, provoked      -->\n<!-- by the \"index-list\" element.  They contain the logic of     -->\n<!-- collecting, analyzing, sorting, and grouping the index      -->\n<!-- entries found in the \"idx\" elements.  They rely on abstract -->\n<!-- templates found in conversion stylesheets which handle the  -->\n<!-- peculiarities of the relevant output format. We describe    -->\n<!-- these here, along with stub templates in the vicinity.      -->\n\n<!-- Abstract templates -->\n\n<!-- \"present-index\" -->\n<!-- A named template (context is not employed), typically with -->\n<!-- infrastructure to surround the \"content\" parameter, which  -->\n<!-- the entire body of the index.  This is applied once.       -->\n\n<!-- \"present-letter-group\" -->\n<!-- A named template (context is not employed), to present -->\n<!-- several entries, all leading with the same letter.     -->\n\n<!-- \"present-index-heading\" -->\n<!-- A named template (context is not employed), to format -->\n<!-- a single heading of an index entry (there may be up   -->\n<!-- to three of these).                                   -->\n\n<!-- \"present-index-locator\"  -->\n<!-- \"present-index-see\"      -->\n<!-- \"present-index-see-also\" -->\n<!-- \"present-index-italics\"  -->\n<!-- Named templates (context is not employed) for the  -->\n<!-- format of individual pieces of the locators at the -->\n<!-- end of an index entry.                             -->\n\n<!-- Used at the end of the next template to group index       -->\n<!-- entries by letter for eventual output organized by letter -->\n<xsl:key name=\"index-entry-by-letter\" match=\"index\" use=\"@letter\"/>\n\n<!-- \"index-list\":                                           -->\n<!--     build a sorted list of every \"index\" in text        -->\n<!--     use Muenchian Method to group by letter and process -->\n<!-- \"group-by-heading\":                                     -->\n<!--     consolidate/accumulate entries with common heading  -->\n<!-- \"knowl-list\":                                           -->\n<!--     output the locators, see, see also                  -->\n<xsl:template match=\"index-list\">\n    <!-- Save-off the \"index-list\" as context for placement  -->\n    <!-- of eventual xref/cross-references, since we use a   -->\n    <!-- for-each and context changes.  Not strictly         -->\n    <!-- necessary, but correct.                             -->\n    <!-- We also pass this node down into the construction   -->\n    <!-- of headings, to provide context for the             -->\n    <!-- localization of words like \"see\" and \"see also\" in  -->\n    <!-- the index.  (So it is an @xml:lang on the           -->\n    <!-- \"index-list\" generator which dictates this,         -->\n    <!-- allowing for indices in two different languages.)   -->\n    <!-- TODO: perhaps the originating \"index-list\" should   -->\n    <!-- be the context of this chain of templates, moving   -->\n    <!-- later ones away from named templates?               -->\n    <xsl:variable name=\"the-index-list\" select=\".\"/>\n    <!-- \"idx\" as mixed content.                             -->\n    <!-- Or, \"idx\" structured with up to three \"h\"           -->\n    <!-- Start attribute is actual end of a \"page            -->\n    <!-- range\", goodies at @finish.                         -->\n\n    <!-- \"index-items\" is an internal structure, so very     -->\n    <!-- predictable.  Looks like:                           -->\n    <!--                                                     -->\n    <!-- text/key: always three pairs, some may be empty.    -->\n    <!-- \"text\" is author's heading and will be output at    -->\n    <!-- the end, \"key\" is a sanitized version for sorting,  -->\n    <!-- and could be an entire replacement if the @sortby   -->\n    <!-- attribute is used.                                  -->\n    <!--                                                     -->\n    <!-- locator-type: used to identify a \"traditional\" page -->\n    <!-- locator which points back to a place in the text,   -->\n    <!-- versus a \"see\" or \"see also\" entry.  Only used for  -->\n    <!-- sorting, and really only used to be sure a \"see\"    -->\n    <!-- *follows* the page locator.                         -->\n    <xsl:variable name=\"index-items\">\n        <xsl:for-each select=\"$document-root//idx[not(@start)]\">\n            <index>\n                <!-- identify content of primary sort key      -->\n                <!-- this follows the logic of creating key[1] -->\n                <!-- TODO: this may be too ad-hoc, study       -->\n                <!--       closely on a refactor               -->\n                <xsl:variable name=\"letter-content\">\n                    <xsl:choose>\n                        <xsl:when test=\"@sortby\">\n                            <xsl:value-of select=\"@sortby\" />\n                        </xsl:when>\n                        <xsl:when test=\"not(h)\">\n                            <xsl:apply-templates/>\n                        </xsl:when>\n                        <xsl:when test=\"h and h[1]/@sortby\">\n                            <xsl:apply-templates select=\"h[1]/@sortby\"/>\n                        </xsl:when>\n                        <xsl:when test=\"h\">\n                            <xsl:apply-templates select=\"h[1]\"/>\n                        </xsl:when>\n                        <xsl:otherwise/>\n                    </xsl:choose>\n                </xsl:variable>\n                <!-- lowercase first letter of primary sort key    -->\n                <!-- used later to group items by letter in output -->\n                <xsl:attribute name=\"letter\">\n                    <xsl:value-of select=\"translate(substring($letter-content,1,1), &UPPERCASE;, &LOWERCASE;)\"/>\n                </xsl:attribute>\n                <xsl:choose>\n                    <!-- simple mixed-content first, no structure -->\n                    <!-- one text-key pair, two more empty        -->\n                    <xsl:when test=\"not(h)\">\n                        <xsl:variable name=\"content\">\n                            <xsl:apply-templates/>\n                        </xsl:variable>\n                        <!-- text, key-value for single index heading -->\n                        <text>\n                            <xsl:copy-of select=\"$content\" />\n                        </text>\n                        <key>\n                            <xsl:choose>\n                                <xsl:when test=\"@sortby\">\n                                    <xsl:value-of select=\"translate(@sortby, &UPPERCASE;, &LOWERCASE;)\" />\n                                </xsl:when>\n                                <xsl:otherwise>\n                                    <xsl:value-of select=\"translate($content, &UPPERCASE;, &LOWERCASE;)\" />\n                                </xsl:otherwise>\n                            </xsl:choose>\n                        </key>\n                        <!-- plus two more empty text, key pairs -->\n                        <text/><key/>\n                        <text/><key/>\n                    </xsl:when>\n                    <!-- structured index entry, multiple text-key pairs -->\n                    <!-- \"main\" as indicator is deprecated               -->\n                    <xsl:when test=\"h\">\n                        <!-- \"h\" occur in order, main-sub-sub deprecated -->\n                        <xsl:for-each select=\"h\">\n                            <xsl:variable name=\"content\">\n                                <xsl:apply-templates/>\n                            </xsl:variable>\n                            <text>\n                                <xsl:copy-of select=\"$content\" />\n                            </text>\n                            <key>\n                                <xsl:choose>\n                                    <xsl:when test=\"@sortby\">\n                                        <xsl:value-of select=\"translate(@sortby, &UPPERCASE;, &LOWERCASE;)\" />\n                                    </xsl:when>\n                                    <xsl:otherwise>\n                                        <xsl:value-of select=\"translate($content, &UPPERCASE;, &LOWERCASE;)\" />\n                                    </xsl:otherwise>\n                                </xsl:choose>\n                            </key>\n                        </xsl:for-each>\n                        <!-- add additional empty text, key pairs -->\n                        <!-- so there are always three            -->\n                        <xsl:if test=\"(count(h) = 1) or (count(h) = 2)\">\n                            <text/><key/>\n                        </xsl:if>\n                        <xsl:if test=\"count(h) = 1\">\n                            <text/><key/>\n                        </xsl:if>\n                        <!-- final sort key will prioritize  -->\n                        <!-- this mimics LaTeX's ordering    -->\n                        <!--   0 - has \"see also\"            -->\n                        <!--   1 - has \"see\"                 -->\n                        <!--   2 - is usual index reference  -->\n                        <xsl:if test=\"not(following-sibling::*[self::h])\">\n                            <locator-type>\n                                <xsl:choose>\n                                    <xsl:when test=\"seealso\">\n                                        <xsl:text>2</xsl:text>\n                                    </xsl:when>\n                                    <xsl:when test=\"see\">\n                                        <xsl:text>1</xsl:text>\n                                    </xsl:when>\n                                    <xsl:otherwise>\n                                        <xsl:text>0</xsl:text>\n                                    </xsl:otherwise>\n                                </xsl:choose>\n                            </locator-type>\n                        </xsl:if>\n                    </xsl:when>\n                </xsl:choose>\n                <!-- Create the full locator and save now, since context will -->\n                <!-- be lost later.  Save a page locator in \"cross-reference\" -->\n                <!-- element.  We use the context of the index itself as the  -->\n                <!-- location where the cross-reference is placed.  The       -->\n                <!-- location of the \"idx\" is the start of a search for the   -->\n                <!-- enclosing element.  See and \"see also\" take precedence.  -->\n                <xsl:choose>\n                    <xsl:when test=\"see\">\n                        <see>\n                            <xsl:apply-templates select=\"see\"/>\n                        </see>\n                    </xsl:when>\n                    <xsl:when test=\"seealso\">\n                        <seealso>\n                            <xsl:apply-templates select=\"seealso\"/>\n                        </seealso>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <cross-reference>\n                            <xsl:apply-templates select=\"$the-index-list\" mode=\"index-enclosure\">\n                                <xsl:with-param name=\"enclosure\" select=\".\"/>\n                            </xsl:apply-templates>\n                        </cross-reference>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </index>\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- Sort, now that info from document tree ordering is recorded     -->\n    <!-- Keys, normalized to lowercase, or @sortby attributes, are the   -->\n    <!-- primary key for sorting, but if we have index entries that just -->\n    <!-- differ by upper- or lower-case distinctions, we need to have    -->\n    <!-- identical variants sort next to each other so they get grouped  -->\n    <!-- as one entry with multiple cross-references, so we sort         -->\n    <!-- secondarily on the actual text as well.  The page locators were -->\n    <!-- built in document order and so should remain that way after the -->\n    <!-- sort and so be output in order of appearance.                   -->\n    <xsl:variable name=\"sorted-index\">\n        <xsl:for-each select=\"exsl:node-set($index-items)/*\">\n            <xsl:sort select=\"./key[1]\" />\n            <xsl:sort select=\"./text[1]\"/>\n            <xsl:sort select=\"./key[2]\" />\n            <xsl:sort select=\"./text[2]\"/>\n            <xsl:sort select=\"./key[3]\" />\n            <xsl:sort select=\"./text[3]\"/>\n            <xsl:sort select=\"./locator-type\" />\n            <xsl:sort select=\"./see\"/>\n            <xsl:sort select=\"./seealso\"/>\n            <xsl:copy-of select=\".\" />\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- Group by Letter -->\n    <!-- A careful exposition of the Muenchian Method, named after Steve Muench  -->\n    <!-- of Oracle.  This is an well-known, but complicated, XSLT 1.0 technique. -->\n    <!-- (This is much easier in XSLT 2.0 with certain instructions).  We follow -->\n    <!-- the XSLT Cookbook 2.0, Recipe 6.2, modulo one critical typo, and also   -->\n    <!-- Jeni Tennison's instructive  \"Grouping Using the Muenchian Method\" at   -->\n    <!-- http://www.jenitennison.com/xslt/grouping/muenchian.html.               -->\n    <!--                                                                         -->\n    <!-- Initial \"for-each\" sieves out a single (the first) representative of    -->\n    <!-- each group of \"index\" that have a common initial letter for their sort  -->\n    <!-- criteria.  Each becomes the context node for the remainder.             -->\n    <xsl:call-template name=\"present-index\">\n        <xsl:with-param name=\"content\">\n            <xsl:for-each select=\"exsl:node-set($sorted-index)/index[count(.|key('index-entry-by-letter', @letter)[1]) = 1]\">\n                <!-- save the key to use again in selecting the group -->\n                <xsl:variable name=\"current-letter\" select=\"@letter\"/>\n                <!-- collect all the \"index\" with the same initial letter as representative    -->\n                <!-- this key is still perusing the nodes of $sorted-index as context document -->\n                <xsl:variable name=\"letter-group\" select=\"key('index-entry-by-letter', $current-letter)\"/>\n                <!-- Employ abstract template to present/style a letter group -->\n                <xsl:call-template name=\"present-letter-group\">\n                    <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n                    <xsl:with-param name=\"letter-group\" select=\"$letter-group\"/>\n                    <xsl:with-param name=\"current-letter\" select=\"$current-letter\"/>\n                    <xsl:with-param name=\"content\">\n                        <!-- send to group-by-headings, which is vestigal -->\n                        <xsl:apply-templates select=\"$letter-group[1]\" mode=\"group-by-heading\">\n                            <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n                            <xsl:with-param name=\"heading-group\" select=\"/..\" />\n                            <xsl:with-param name=\"letter-group\" select=\"$letter-group\" />\n                        </xsl:apply-templates>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:for-each>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n\n<xsl:template name=\"present-index\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-index\") in order to structure the overall index.</xsl:message>\n</xsl:template>\n\n<xsl:template name=\"present-letter-group\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"letter-group\"/>\n    <xsl:param name=\"current-letter\"/>\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-letter-group\") in order to structure a group of entries all leading with the same letter.</xsl:message>\n</xsl:template>\n\n<!-- Accumulate index entries with identical headings - their    -->\n<!-- exact text, not anything related to the keys.  Quit         -->\n<!-- accumulating when look-ahead shows next entry differs.      -->\n<!-- Output the (3-part) heading and locators before restarting. -->\n<!-- TODO: investigate reworking this via Muenchian Method       -->\n<xsl:template match=\"index\" mode=\"group-by-heading\">\n    <xsl:param name=\"the-index-list\"/>\n    <!-- Empty node list from parent of root node -->\n    <xsl:param name=\"heading-group\"/>\n    <xsl:param name=\"letter-group\"/>\n\n    <!-- look ahead at next index entry -->\n    <xsl:variable name=\"next-index\" select=\"following-sibling::index[1]\"/>\n    <!-- check if context node is still in the letter-group -->\n    <xsl:if test=\"count(.|$letter-group) = count($letter-group)\">\n        <xsl:variable name=\"new-heading-group\" select=\"$heading-group|.\"/>\n        <xsl:choose>\n            <!-- same heading, accumulate and iterate -->\n            <xsl:when test=\"($next-index/text[1] = ./text[1]) and ($next-index/text[2] = ./text[2]) and ($next-index/text[3] = ./text[3])\">\n                <xsl:apply-templates select=\"$next-index\" mode=\"group-by-heading\">\n                    <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n                    <xsl:with-param name=\"heading-group\" select=\"$new-heading-group\" />\n                    <xsl:with-param name=\"letter-group\" select=\"$letter-group\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- some text differs in next index entry, -->\n            <!-- write and restart heading accumulation -->\n            <xsl:otherwise>\n                <xsl:call-template name=\"output-one-heading-group\">\n                    <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n                    <xsl:with-param name=\"heading-group\" select=\"$new-heading-group\" />\n                </xsl:call-template>\n                <!-- restart grouping by heading, pass through letter-group -->\n                <xsl:apply-templates select=\"$next-index\" mode=\"group-by-heading\">\n                    <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n                    <xsl:with-param name=\"heading-group\" select=\"/..\" />\n                    <xsl:with-param name=\"letter-group\" select=\"$letter-group\"/>\n                </xsl:apply-templates>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Place the (possibly three) components of -->\n<!-- the heading(s) into their proper divs.   -->\n<!-- Do not duplicate prior components that   -->\n<!-- match, do not write an empty heading.    -->\n<xsl:template name=\"output-one-heading-group\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"heading-group\" />\n\n    <xsl:if test=\"$heading-group/see and $heading-group/cross-reference\">\n        <xsl:message>PTX:WARNING: an index entry should not have both a locator and a \"see\" reference.  Results may be unpredictable.  Perhaps you meant to employ a \"seealso\" reference?  Heading is: \"<xsl:value-of select=\"text[1]\"/>; <xsl:value-of select=\"text[2]\"/>; <xsl:value-of select=\"text[3]\"/>\"</xsl:message>\n    </xsl:if>\n    <xsl:if test=\"$heading-group/seealso and not($heading-group/cross-reference)\">\n        <xsl:message>PTX:WARNING: an index entry should not have a \"seealso\" reference without also having a locator.  Results may be unpredictable.  Perhaps you meant to employ a \"see\" reference?  Heading is: \"<xsl:value-of select=\"text[1]\"/>; <xsl:value-of select=\"text[2]\"/>; <xsl:value-of select=\"text[3]\"/>\"</xsl:message>\n    </xsl:if>\n\n    <xsl:variable name=\"pattern\" select=\"$heading-group[1]\" />\n    <xsl:variable name=\"pred\" select=\"$pattern/preceding-sibling::index[1]\" />\n    <!-- booleans for analysis of format of heading, locators -->\n    <xsl:variable name=\"match1\" select=\"($pred/text[1] = $pattern/text[1]) and $pred\" />\n    <xsl:variable name=\"match2\" select=\"($pred/text[2] = $pattern/text[2]) and $pred\" />\n    <xsl:variable name=\"match3\" select=\"($pred/text[3] = $pattern/text[3]) and $pred\" />\n    <xsl:variable name=\"empty2\" select=\"boolean($pattern/text[2] = '')\" />\n    <xsl:variable name=\"empty3\" select=\"boolean($pattern/text[3] = '')\" />\n    <!-- Write headings of a group, indicating the level of -->\n    <!-- each heading (up to 3 levels) and then follow with -->\n    <!-- the associated locators.                           -->\n\n    <!-- First key differs from predecessor, or leads letter group  -->\n    <!-- if $empty2 is true, then headings are complete and time to -->\n    <!-- write locators.  The next conditional will fail so no more -->\n    <!-- output for this heading group. -->\n    <xsl:if test=\"not($match1)\">\n        <xsl:call-template name=\"present-index-heading\">\n            <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n            <xsl:with-param name=\"heading-group\" select=\"$heading-group\"/>\n            <xsl:with-param name=\"b-write-locators\" select=\"$empty2\"/>\n            <xsl:with-param name=\"heading-level\" select=\"1\"/>\n            <xsl:with-param name=\"content\" select=\"$pattern/text[1]/node()\"/>\n        </xsl:call-template>\n    </xsl:if>\n\n    <!-- Second key is substantial, and mis-match is in the second key,  -->\n    <!-- or first key (ie to the left).  If $empty3 is true, then        -->\n    <!-- headings are complete and time to write locators.  The next     -->\n    <!-- conditional will fail so no more output for this heading group. -->\n    <xsl:if test=\"not($empty2) and (not($match1) or not($match2))\">\n        <xsl:call-template name=\"present-index-heading\">\n            <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n            <xsl:with-param name=\"heading-group\" select=\"$heading-group\"/>\n            <xsl:with-param name=\"b-write-locators\" select=\"$empty3\"/>\n            <xsl:with-param name=\"heading-level\" select=\"2\"/>\n            <xsl:with-param name=\"content\" select=\"$pattern/text[2]/node()\"/>\n        </xsl:call-template>\n    </xsl:if>\n\n    <!-- Third key is substantial, and mis-match is in the first key, -->\n    <!-- the second key, or the third key (ie to the left).  Last     -->\n    <!-- chance to write locators, so we pass true.                   -->\n    <xsl:if test=\"not($empty3) and (not($match1) or not($match2) or not($match3))\">\n        <xsl:call-template name=\"present-index-heading\">\n            <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n            <xsl:with-param name=\"heading-group\" select=\"$heading-group\"/>\n            <xsl:with-param name=\"b-write-locators\" select=\"true()\"/>\n            <xsl:with-param name=\"heading-level\" select=\"3\"/>\n            <xsl:with-param name=\"content\" select=\"$pattern/text[3]/node()\"/>\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"present-index-heading\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"heading-group\"/>\n    <xsl:param name=\"b-write-locators\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-index-heading\") in order to format a single heading of an index entry.</xsl:message>\n</xsl:template>\n\n\n<!-- Place all the locators into the div for -->\n<!-- the final (sub)item in its own span.    -->\n\n<!-- Chicago Manual of Style, 15th edition, 18.14 - 18.22  -->\n<!-- \"see\", following main entry, 18.16                    -->\n<!--    Period after entry                                 -->\n<!--    \"See\" capitalized (assumed from localization file) -->\n<!--     multiple: alphabetical order, semicolon separator -->\n<!-- \"see\", following a subentry, 18.17                    -->\n<!--    Space after entry                                  -->\n<!--    \"see\" lower case                                   -->\n<!--    wrapped in parentheses                             -->\n<!-- \"see also\", following main entry, 18.19               -->\n<!--    Period after entry                                 -->\n<!--    \"See\" capitalized (assumed from localization file) -->\n<!--     multiple: alphabetical order, semicolon separator -->\n<!-- \"see\", following a subentry, 18.19                    -->\n<!--    Space after entry                                  -->\n<!--    \"see\" lower case                                   -->\n<!--    wrapped in parentheses                             -->\n<!-- generic references, 18.22                             -->\n<!--   TODO: use content of \"see\" and \"seealso\"            -->\n<xsl:template name=\"locator-list\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"heading-group\"/>\n    <xsl:param name=\"cross-reference-separator\"/>\n\n    <!-- Some formatting depends on presence of subentries -->\n    <xsl:variable name=\"b-has-subentry\" select=\"not(text[2] = '')\"/>\n    <!-- range through node-list, making cross-references -->\n    <!-- Use a comma after the heading, then prefix each  -->\n    <!-- cross-reference with a space as separators       -->\n    <xsl:call-template name=\"present-index-locator\">\n        <xsl:with-param name=\"content\">\n            <xsl:choose>\n                <xsl:when test=\"$heading-group/see and not($b-has-subentry)\">\n                    <xsl:text>. </xsl:text>\n                </xsl:when>\n                <!-- no punctuation, will earn parentheses -->\n                <xsl:when test=\"$heading-group/see and $b-has-subentry\">\n                    <xsl:text> </xsl:text>\n                </xsl:when>\n                <!-- cross-reference, w/ or w/out \"see also\" -->\n                <!-- don't do anything as we will prefix     -->\n                <!-- instances of \"cross-reference\" below    -->\n                <xsl:otherwise/>\n            </xsl:choose>\n            <!-- course over the \"index\" in the group -->\n            <xsl:for-each select=\"$heading-group\">\n                <xsl:choose>\n                    <!--  -->\n                    <xsl:when test=\"cross-reference\">\n                        <!-- *prefix* with a separator, since we do not     -->\n                        <!-- create it previously and this way we can avoid -->\n                        <!-- determining the last \"cross-reference\" element -->\n                        <!-- (which seems difficult)                        -->\n                        <xsl:value-of select=\"$cross-reference-separator\"/>\n                        <xsl:copy-of select=\"cross-reference/node()\"/>\n                    </xsl:when>\n                    <!--  -->\n                    <!-- Various uses of  position()  here are not as dangerous -->\n                    <!-- as they seem, since the nodeset comes from an RTF of   -->\n                    <!-- our construction.  Still, remove them in an eventual   -->\n                    <!-- refactor and abstraction of index construction.        -->\n                    <xsl:when test=\"see\">\n                        <xsl:call-template name=\"present-index-see\">\n                            <xsl:with-param name=\"content\">\n                            <xsl:if test=\"position() = 1\">\n                                <xsl:if test=\"$b-has-subentry\">\n                                    <xsl:text>(</xsl:text>\n                                </xsl:if>\n                                <xsl:call-template name=\"present-index-italics\">\n                                    <xsl:with-param name=\"content\">\n                                    <xsl:choose>\n                                        <xsl:when test=\"$b-has-subentry\">\n                                            <!-- lower-case \"see\" -->\n                                            <xsl:variable name=\"upper\">\n                                                <xsl:apply-templates select=\"$the-index-list\" mode=\"type-name\">\n                                                    <xsl:with-param name=\"string-id\" select=\"'see'\"/>\n                                                </xsl:apply-templates>\n                                            </xsl:variable>\n                                            <xsl:value-of select=\"translate(substring($upper, 1, 1), &UPPERCASE;, &LOWERCASE;)\"/>\n                                            <xsl:value-of select=\"substring($upper, 2)\"/>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <!-- upper-case \"See\" -->\n                                            <xsl:apply-templates select=\"$the-index-list\" mode=\"type-name\">\n                                                <xsl:with-param name=\"string-id\" select=\"'see'\"/>\n                                            </xsl:apply-templates>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                    </xsl:with-param>\n                                </xsl:call-template>\n                            </xsl:if>\n                            <!-- just a space after \"see\", before first  -->\n                            <!-- semi-colon before second and subsequent -->\n                            <xsl:choose>\n                                <xsl:when test=\"position() = 1\">\n                                    <xsl:text> </xsl:text>\n                                </xsl:when>\n                                <xsl:otherwise>\n                                    <xsl:text>; </xsl:text>\n                                </xsl:otherwise>\n                            </xsl:choose>\n                            <xsl:copy-of select=\"see/node()\" />\n                            <xsl:if test=\"$b-has-subentry and (position() = last())\">\n                                <xsl:text>)</xsl:text>\n                            </xsl:if>\n                        </xsl:with-param>\n                    </xsl:call-template>\n                    </xsl:when>\n                    <!--  -->\n                    <xsl:when test=\"seealso\">\n                        <xsl:if test=\"preceding-sibling::index[1]/cross-reference and not($b-has-subentry)\">\n                            <xsl:text>. </xsl:text>\n                        </xsl:if>\n                        <xsl:call-template name=\"present-index-see-also\">\n                            <xsl:with-param name=\"content\">\n                            <xsl:choose>\n                                <xsl:when test=\"preceding-sibling::index[1]/cross-reference\">\n                                    <xsl:choose>\n                                        <xsl:when test=\"$b-has-subentry\">\n                                            <xsl:text> </xsl:text>\n                                            <xsl:text>(</xsl:text>\n                                            <xsl:call-template name=\"present-index-italics\">\n                                                <xsl:with-param name=\"content\">\n                                                <!-- lower-case \"see also\" -->\n                                                <xsl:variable name=\"upper\">\n                                                    <xsl:apply-templates select=\"$the-index-list\" mode=\"type-name\">\n                                                            <xsl:with-param name=\"string-id\" select=\"'also'\"/>\n                                                    </xsl:apply-templates>\n                                                </xsl:variable>\n                                                <xsl:value-of select=\"translate(substring($upper, 1, 1), &UPPERCASE;, &LOWERCASE;)\"/>\n                                                <xsl:value-of select=\"substring($upper, 2)\"/>\n                                                </xsl:with-param>\n                                            </xsl:call-template>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <xsl:call-template name=\"present-index-italics\">\n                                                <xsl:with-param name=\"content\">\n                                                <!-- upper-case \"See also\" -->\n                                                <xsl:apply-templates select=\"$the-index-list\" mode=\"type-name\">\n                                                        <xsl:with-param name=\"string-id\" select=\"'also'\"/>\n                                                </xsl:apply-templates>\n                                                </xsl:with-param>\n                                            </xsl:call-template>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                </xsl:when>\n                                <xsl:otherwise>\n                                    <xsl:text>;</xsl:text>\n                                </xsl:otherwise>\n                            </xsl:choose>\n                            <xsl:text> </xsl:text>\n                            <xsl:copy-of select=\"seealso/node()\"/>\n                            <xsl:if test=\"(position() = last()) and $b-has-subentry\">\n                                <xsl:text>)</xsl:text>\n                            </xsl:if>\n                        </xsl:with-param>\n                    </xsl:call-template>\n                    </xsl:when>\n                </xsl:choose>\n            </xsl:for-each>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n\n<xsl:template name=\"present-index-locator\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-index-locator\") in order to format a locator at the end of an index entry.</xsl:message>\n</xsl:template>\n\n<xsl:template name=\"present-index-see\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-index-see\") in order to format a \"see\" cross-reference at the end of an index entry.</xsl:message>\n</xsl:template>\n\n<xsl:template name=\"present-index-see-also\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-index-see-also\") in order to format a \"see also\" coross-reference at the end of an index entry.</xsl:message>\n</xsl:template>\n\n<xsl:template name=\"present-index-italics\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:message>PTX:BUG:    a conversion to a new output format requires implementation of a named template (\"present-index-italics\") in order to format italic text at the end of an index entry.</xsl:message>\n</xsl:template>\n\n\n\n<!-- ############### -->\n<!-- Arbitrary Lists -->\n<!-- ############### -->\n\n<!-- Format-independent construction of a list of    -->\n<!-- intermediate elements, in order of appearance,  -->\n<!-- with headings from indicated divisions          -->\n<!--                                                 -->\n<!-- Implementation requires four abstract templates -->\n<!--                                                 -->\n<!-- 1.  name=\"list-of-begin\"                        -->\n<!-- hook for start of list                          -->\n<!--                                                 -->\n<!-- 2.  mode=\"list-of-heading\"                      -->\n<!-- Format/output per division                      -->\n<!--                                                 -->\n<!-- 3.  mode=\"list-of-element\"                      -->\n<!-- Format/output per element                       -->\n<!--                                                 -->\n<!-- 4. name=\"list-of-end\"                           -->\n<!-- hook for end of list                            -->\n\n<!-- NB: possible improvements -->\n<!-- 1.  Get $subroot via @ref and work with element, not a string            -->\n<!-- 2.  Somehow abandon user strings sooner, so less reliant on local-name() -->\n\n<xsl:template match=\"list-of\">\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- \"str:tokenize()\" in this form makes a node-set, which has no root -->\n    <!-- the elements may be \"token\" but that is irrelevant for use below  -->\n    <!-- Documentation may say spaces, we also allow comma as a delimiter  -->\n    <xsl:variable name=\"elements\" select=\"str:tokenize(@elements, ', ')\"/>\n    <xsl:variable name=\"divisions\" select=\"str:tokenize(@divisions, ', ')\"/>\n    <!-- Lists of various types of exercises can be useful, but they are         -->\n    <!-- categorized by their ancestors.  So we recognize certain strings        -->\n    <!-- as \"pseudo-elements\".  We do this once and then pass them along.        -->\n    <!--                                                                         -->\n    <!--   * inlineexercise                                                      -->\n    <!--   * divisionexercise                                                    -->\n    <!--   * worksheetexercise                                                   -->\n    <!--   * readingquestion                                                     -->\n    <!--                                                                         -->\n    <!-- Equality of strings (e.g. 'inlineexercise') and the node-set ($elements)-->\n    <!-- is true when the *string-value* of *one* node in the set is identical   -->\n    <!-- NB: if this gets out-of-hand, it should be passed as a structure        -->\n    <xsl:variable name=\"b-inline-exercises\" select=\"'inlineexercise' = $elements\"/>\n    <xsl:variable name=\"b-division-exercises\" select=\"'divisionexercise' = $elements\"/>\n    <xsl:variable name=\"b-worksheet-exercises\" select=\"'worksheetexercise' = $elements\"/>\n    <xsl:variable name=\"b-reading-questions\" select=\"'readingquestion' = $elements\"/>\n    <!-- display subdivision headings with empty contents? -->\n    <xsl:variable name=\"entered-empty\">\n        <xsl:choose>\n            <xsl:when test=\"not(@empty)\">\n                <xsl:text>no</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"@empty\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Schema restricts to 'yes' or 'no'.  Thus we can just interpret -->\n    <!-- absent or anything-but-yes indicating to skip empty divisions. -->\n    <xsl:variable name=\"b-empty\" select=\"$entered-empty = 'yes'\"/>\n    <!-- root of the document subtree for list formation     -->\n    <!-- defaults to document-wide                           -->\n    <!-- DTD should enforce subdivisions as values for scope -->\n    <!-- TODO: perhaps use @ref to indicate $subroot,  -->\n    <!-- and protect against both a @scope and a @ref  -->\n    <xsl:variable name=\"scope\">\n        <xsl:choose>\n            <xsl:when test=\"@scope\">\n                <xsl:value-of select=\"@scope\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"local-name($document-root)\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"subroot\" select=\"ancestor-or-self::*[local-name() = $scope]\" />\n    <!-- variable behavior set, now setup -->\n    <xsl:call-template name=\"list-of-begin\" />\n    <!-- recursive procedure, starting from indicated scope -->\n    <xsl:apply-templates select=\"$subroot\" mode=\"list-of-content\">\n        <!-- list-of was passed a heading level that was incremented by its parent division -->\n        <!-- Since the list-of has no heading itself, we back this up by 1                  -->\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level - 1\"/>\n        <xsl:with-param name=\"elements\" select=\"$elements\"/>\n        <xsl:with-param name=\"divisions\" select=\"$divisions\"/>\n        <xsl:with-param name=\"b-empty\" select=\"$b-empty\"/>\n        <xsl:with-param name=\"b-inline-exercises\" select=\"$b-inline-exercises\"/>\n        <xsl:with-param name=\"b-division-exercises\" select=\"$b-division-exercises\"/>\n        <xsl:with-param name=\"b-worksheet-exercises\" select=\"$b-worksheet-exercises\"/>\n        <xsl:with-param name=\"b-reading-questions\" select=\"$b-reading-questions\"/>\n    </xsl:apply-templates>\n    <xsl:call-template name=\"list-of-end\" />\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"list-of-content\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"elements\"/>\n    <xsl:param name=\"divisions\"/>\n    <xsl:param name=\"b-empty\"/>\n    <xsl:param name=\"b-inline-exercises\"/>\n    <xsl:param name=\"b-division-exercises\"/>\n    <xsl:param name=\"b-worksheet-exercises\"/>\n    <xsl:param name=\"b-reading-questions\"/>\n\n    <!-- Check if we are at a divison that needs a heading                      -->\n    <!-- match only the default namespace                                       -->\n    <xsl:variable name=\"b-division-element\" select=\"(local-name(.) = $divisions) and (namespace-uri(.) = '')\"/>\n    <xsl:choose>\n        <xsl:when test=\"$b-division-element\">\n            <!-- handling a division element that *may* need a heading -->\n            <xsl:choose>\n                <xsl:when test=\"not($b-empty)\">\n                    <!-- probe subtree, even if we found empty super-tree earlier -->\n                    <!-- to see if a heading is *needed*, author has elected to   -->\n                    <!-- not have a heading if there are no elements to list      -->\n                    <!-- N.B. these booleans look rather expensive, owing to the  -->\n                    <!-- extensive searching for \"exercise\", but we hope the      -->\n                    <!-- booleans passed in will short-circuit and result in no   -->\n                    <!-- searching when it is not necessary                       -->\n                    <!-- match only the default namespace                         -->\n                    <xsl:variable name=\"by-name-elements\" select=\"boolean(.//*[(local-name(.) = $elements) and (namespace-uri(.) = '')])\" />\n                    <xsl:variable name=\"division-exercises\" select=\"$b-division-exercises and .//exercise[ancestor::exercises]\"/>\n                    <xsl:variable name=\"worksheet-exercises\" select=\"$b-worksheet-exercises and .//exercise[ancestor::worksheet]\"/>\n                    <xsl:variable name=\"reading-questions\" select=\"$b-reading-questions and .//exercise[ancestor::reading-questions]\"/>\n                    <xsl:variable name=\"inline-exercises\" select=\"$b-inline-exercises and .//exercise[not(ancestor::exercises or ancestor::worksheet or ancestor::reading-questions)]\"/>\n                    <xsl:variable name=\"any-elements\" select=\"$by-name-elements or $inline-exercises or $division-exercises or $worksheet-exercises or $reading-questions\"/>\n                    <xsl:if test=\"$any-elements\">\n                        <xsl:apply-templates select=\".\" mode=\"list-of-heading\">\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                </xsl:when>\n                <xsl:when test=\"$b-empty\">\n                    <!-- always write a heading, even if there will be no items listed -->\n                    <xsl:apply-templates select=\".\" mode=\"list-of-heading\">\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- not at a division, so test element for inclusion -->\n            <!-- match only the default namespace                 -->\n            <xsl:if test=\"((local-name(.) = $elements) and (namespace-uri(.) = ''))\n                       or ($b-division-exercises and self::exercise and ancestor::exercises)\n                       or ($b-worksheet-exercises and self::exercise and ancestor::worksheet)\n                       or ($b-reading-questions and self::exercise and ancestor::reading-questions)\n                       or ($b-inline-exercises and self::exercise and not(ancestor::exercises or ancestor::worksheet or ancestor::reading-questions))\">\n                <xsl:apply-templates select=\".\" mode=\"list-of-element\" />\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- recurse into children; recursion ends when no children   -->\n    <!-- increment heading-level, correct right now for divisions -->\n    <xsl:apply-templates select=\"*\" mode=\"list-of-content\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level + 1\"/>\n        <xsl:with-param name=\"elements\" select=\"$elements\"/>\n        <xsl:with-param name=\"divisions\" select=\"$divisions\"/>\n        <xsl:with-param name=\"b-empty\" select=\"$b-empty\"/>\n        <xsl:with-param name=\"b-inline-exercises\" select=\"$b-inline-exercises\"/>\n        <xsl:with-param name=\"b-division-exercises\" select=\"$b-division-exercises\"/>\n        <xsl:with-param name=\"b-worksheet-exercises\" select=\"$b-worksheet-exercises\"/>\n        <xsl:with-param name=\"b-reading-questions\" select=\"$b-reading-questions\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Stub implementations, with warnings -->\n<xsl:template name=\"list-of-begin\">\n     <xsl:message>PTX:BUG:   the \"list-of-begin\" template needs an implementation in the current conversion</xsl:message>\n     <xsl:text>[[[BEGINLIST]]]</xsl:text>\n </xsl:template>\n\n<xsl:template name=\"list-of-end\">\n     <xsl:message>PTX:BUG:   the \"list-of-end\" template needs an implementation in the current conversion</xsl:message>\n     <xsl:text>[[[ENDLIST]]]</xsl:text>\n </xsl:template>\n\n\n<!-- Programming Language Names -->\n<!-- Packages for listing and syntax highlighting             -->\n<!-- have their own ideas about the names of languages        -->\n<!-- We use keys to perform the translation                   -->\n<!-- See: https://gist.github.com/frabad/4189876              -->\n<!-- for motivation and document() syntax for standalone file -->\n<!-- Also: see contributors in FCLA work                      -->\n\n<!-- The data: attribute is our usage, elements belong to     -->\n<!-- other packages. Blank means not explicitly supported.    -->\n<!-- Alphabetical by type.                                    -->\n\n<!-- Prism: -->\n<!-- Last reviewed 2020-10-21                        -->\n<!-- 2020-10-21: Cutover from Google Code Prettifier -->\n\n<!-- Listings: -->\n<!-- Last reviewed carefully: 2014/06/28           -->\n<!-- Exact matches, or best guesses, some          -->\n<!-- unimplemented.  [] notation is for variants.  -->\n<!-- 2019-09-23: minor review, v 1.7 (2018-09-02)  -->\n\n<!-- ActiveCode (Runestone) -->\n<!-- Languages supported by Runestone ActiveCode and  -->\n<!-- CodeLens interactive elements, added 2020-08-13. -->\n<!-- \"python3\" is just on Runestone servers where     -->\n<!-- additional popular packages (e.g. numpy, pandas) -->\n<!-- are available.                                   -->\n\n<!-- Our strings (@ptx) are always all-lowercase, no symbols, no punctuation -->\n<mb:programming>\n    <!-- Procedural -->\n    <language ptx=\"basic\"       active=\"\"            listings=\"Basic\"            prism=\"basic\"/>\n    <language ptx=\"c\"           active=\"c\"           listings=\"C\"                prism=\"c\"/>\n    <language ptx=\"cpp\"         active=\"cpp\"         listings=\"C++\"              prism=\"cpp\"/>\n    <language ptx=\"go\"          active=\"\"            listings=\"C\"                prism=\"go\"/>\n    <language ptx=\"java\"        active=\"java\"        listings=\"Java\"             prism=\"java\"/>\n    <language ptx=\"javascript\"  active=\"javascript\"  listings=\"\"                 prism=\"javascript\"/>\n    <language ptx=\"kotlin\"      active=\"kotlin\"      listings=\"\"                 prism=\"kotlin\"/>\n    <language ptx=\"lua\"         active=\"\"            listings=\"Lua\"              prism=\"lua\"/>\n    <language ptx=\"pascal\"      active=\"\"            listings=\"Pascal\"           prism=\"pascal\"/>\n    <language ptx=\"perl\"        active=\"\"            listings=\"Perl\"             prism=\"perl\"/>\n    <language ptx=\"python\"      active=\"python\"      listings=\"Python\"           prism=\"py\"/>\n    <language ptx=\"python3\"     active=\"python3\"     listings=\"Python\"           prism=\"py\"/>\n    <language ptx=\"r\"           active=\"\"            listings=\"R\"                prism=\"r\"/>\n    <language ptx=\"s\"           active=\"\"            listings=\"S\"                prism=\"s\"/>\n    <language ptx=\"sas\"         active=\"\"            listings=\"SAS\"              prism=\"s\"/>\n    <language ptx=\"sage\"        active=\"\"            listings=\"Python\"           prism=\"py\"/>\n    <language ptx=\"splus\"       active=\"\"            listings=\"[Plus]S\"          prism=\"s\"/>\n    <language ptx=\"vbasic\"      active=\"\"            listings=\"[Visual]Basic\"    prism=\"visual-basic\"/>\n    <language ptx=\"vbscript\"    active=\"\"            listings=\"VBscript\"         prism=\"visual-basic\"/>\n    <!-- Others (esp. functional)  -->\n    <language ptx=\"clojure\"     active=\"\"            listings=\"Lisp\"             prism=\"clojure\"/>\n    <language ptx=\"lisp\"        active=\"\"            listings=\"Lisp\"             prism=\"lisp\"/>\n    <language ptx=\"clisp\"       active=\"\"            listings=\"Lisp\"             prism=\"lisp\"/>\n    <language ptx=\"elisp\"       active=\"\"            listings=\"Lisp\"             prism=\"elisp\"/>\n    <language ptx=\"scheme\"      active=\"\"            listings=\"Lisp\"             prism=\"scheme\"/>\n    <language ptx=\"racket\"      active=\"\"            listings=\"Lisp\"             prism=\"racket\"/>\n    <language ptx=\"sql\"         active=\"sql\"         listings=\"SQL\"              prism=\"sql\"/>\n    <language ptx=\"llvm\"        active=\"\"            listings=\"LLVM\"             prism=\"llvm\"/>\n    <language ptx=\"matlab\"      active=\"\"            listings=\"Matlab\"           prism=\"matlab\"/>\n    <language ptx=\"octave\"      active=\"octave\"      listings=\"Octave\"           prism=\"matlab\"/>\n    <language ptx=\"ml\"          active=\"\"            listings=\"ML\"               prism=\"\"/>\n    <language ptx=\"ocaml\"       active=\"\"            listings=\"[Objective]Caml\"  prism=\"ocaml\"/>\n    <language ptx=\"fsharp\"      active=\"\"            listings=\"ML\"               prism=\"fsharp\"/>\n    <!-- Text Manipulation -->\n    <language ptx=\"css\"         active=\"\"            listings=\"\"                 prism=\"css\"/>\n    <language ptx=\"latex\"       active=\"\"            listings=\"[LaTeX]TeX\"       prism=\"latex\"/>\n    <language ptx=\"html\"        active=\"html\"        listings=\"HTML\"             prism=\"html\"/>\n    <language ptx=\"tex\"         active=\"\"            listings=\"[plain]TeX\"       prism=\"tex\"/>\n    <language ptx=\"xml\"         active=\"\"            listings=\"XML\"              prism=\"xml\"/>\n    <language ptx=\"xslt\"        active=\"\"            listings=\"XSLT\"             prism=\"xml\"/>\n</mb:programming>\n\n<!-- Define the key for indexing into the data list -->\n<xsl:key name=\"proglang\" match=\"language\" use=\"@ptx\" />\n<!-- And make a variable with the context for key lookups useing that key -->\n<!-- doing the 'document('')/*/mb:programming' repeatedly is expensive.   -->\n<!-- (Especially in program|pf[prism-language]                            -->\n<xsl:variable name=\"proglang-key-context\" select=\"exsl:node-set(document('')/*/mb:programming)\"/>\n\n<!-- Define variables for default active language - will be picked up by -->\n<!-- RS manifest and can be a different string than the raw language. -->\n<xsl:variable name=\"default-active-programming-language\">\n    <xsl:if test=\"$version-docinfo/programs/@language\">\n        <xsl:for-each select=\"$proglang-key-context\">\n            <xsl:value-of select=\"key('proglang', $version-docinfo/programs/@language)/@active\" />\n        </xsl:for-each>\n    </xsl:if>\n</xsl:variable>\n\n<!-- Determine programming language to use. First choice is @language     -->\n<!-- on current element. If that is not available, check docinfo default. -->\n<!-- \"exercise\" might be a Runestone interactive (programming) exercise.  -->\n<xsl:template match=\"program|pf\" mode=\"get-programming-language\">\n    <xsl:call-template name=\"get-program-attr-or-default\">\n        <xsl:with-param name=\"attr\" select=\"'language'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- For a parsons, use @language, default parsons language, or default -->\n<!-- programming language in that order of preference.                  -->\n<xsl:template match=\"*[@exercise-interactive = 'parson' or @exercise-interactive = 'parson-horizontal']\" mode=\"get-programming-language\">\n    <xsl:choose>\n        <xsl:when test=\"@language\">\n            <xsl:value-of select=\"@language\" />\n        </xsl:when>\n        <xsl:when test=\"$version-docinfo/parsons/@language\">\n            <xsl:value-of select=\"$version-docinfo/parsons/@language\" />\n        </xsl:when>\n        <xsl:when test=\"$version-docinfo/programs/@language\">\n            <xsl:value-of select=\"$version-docinfo/programs/@language\" />\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A whole <program> node comes in,  -->\n<!-- text of ActiveCode name comes out -->\n<xsl:template match=\"program|*[@exercise-interactive = 'parson' or @exercise-interactive = 'parson-horizontal']\" mode=\"active-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"get-programming-language\"/>\n    </xsl:variable>\n    <xsl:for-each select=\"$proglang-key-context\">\n        <xsl:value-of select=\"key('proglang', $language)/@active\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!-- A whole <program> node comes in,  -->\n<!-- text of listings name comes out -->\n<xsl:template match=\"program|pf\" mode=\"listings-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"get-programming-language\"/>\n    </xsl:variable>\n    <xsl:for-each select=\"$proglang-key-context\">\n        <xsl:value-of select=\"key('proglang', $language)/@listings\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!-- This works, without keys, and could be adapted to range over actual data in text -->\n<!-- For example, this approach is used for contributors to FCLA                      -->\n<!--\n<xsl:template match=\"*\" mode=\"listings-language\">\n    <xsl:variable name=\"language\">\n        <xsl:value-of select=\"@language\"/>\n    </xsl:variable>\n    <xsl:value-of select=\"document('')/*/mb:programming/language[@ptx=$language]/listings\"/>\n</xsl:template>\n-->\n\n<!-- A whole <program> node comes in,  -->\n<!-- text of prism name comes out -->\n<xsl:template match=\"program|pf\" mode=\"prism-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"get-programming-language\"/>\n    </xsl:variable>\n    <xsl:for-each select=\"$proglang-key-context\">\n        <xsl:value-of select=\"key('proglang', $language)/@prism\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Try an attribute, and if it does not exist, try to get it from docinfo -->\n<!-- if that fails, use the optional default passed in                      -->\n<xsl:template name=\"get-program-attr-or-default\">\n    <xsl:param name=\"attr\"/>\n    <xsl:param name=\"default\" select=\"''\"/>\n    <xsl:choose>\n        <xsl:when test=\"@*[name() = $attr]\">\n            <xsl:value-of select=\"@*[name() = $attr]\" />\n        </xsl:when>\n        <xsl:when test=\"$docinfo/programs/@*[name() = $attr]\">\n            <xsl:value-of select=\"$docinfo/programs/@*[name() = $attr]\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$default\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Helper templates to ensure consistent processing of whitespace in programs. -->\n<!-- We trim leading/trailing whitespace, but preserve possible intentionally    -->\n<!-- authored space as follows:                                                  -->\n<!--   preamble: preserve trailing                                               -->\n<!--   code: preserve leading/trailing                                           -->\n<!--   postamble/tests: preserve leading                                         -->\n<xsl:template match=\"preamble|code|postamble|tests\" mode=\"program-part-processing\">\n    <xsl:call-template name=\"trim-start-lines\">\n        <xsl:with-param name=\"text\">\n            <xsl:call-template name=\"trim-end\">\n                <!-- only include immediate text content                   -->\n                <!-- we want to exclude any nested elements (tests/iotest) -->\n                <xsl:with-param name=\"text\" select=\"text()\" />\n                <xsl:with-param name=\"preserve-intentional\" select=\"self::preamble or self::code\" />\n            </xsl:call-template>\n        </xsl:with-param>\n        <xsl:with-param name=\"preserve-intentional\" select=\"self::code or self::postamble or self::tests\" />\n    </xsl:call-template>\n</xsl:template>\n\n<!-- ############################ -->\n<!-- Table construction utilities -->\n<!-- ############################ -->\n\n<!-- These templates provide frequently-used      -->\n<!-- functions for the construction of tables.    -->\n<!-- Document uses carefully when newly employed. -->\n\n<!-- Translate thickness attribute value to integer short name -->\n<!-- HTML: makes portion of CSS class names for cells          -->\n<!-- PG: makes portion of optional parameter for DataTable     -->\n<!-- macro from niceTable.pl for thickness of table cells      -->\n<xsl:template name=\"thickness-specification\">\n    <xsl:param name=\"width\" />\n    <xsl:choose>\n        <xsl:when test=\"$width='none'\">\n            <xsl:text>0</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='minor'\">\n            <xsl:text>1</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='medium'\">\n            <xsl:text>2</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='major'\">\n            <xsl:text>3</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: tabular rule thickness not recognized: use none, minor, medium, major</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Translate horizontal alignment to CSS short name    -->\n<!-- HTML:  makes portion of CSS class names for cells   -->\n<!-- LaTeX: provides standard LaTeX horizontal alignment -->\n<!-- PG: provide LaTeX-style alignment string for        -->\n<!-- DataTable macro from niceTable.pl                   -->\n<xsl:template name=\"halign-specification\">\n    <xsl:param name=\"align\" />\n    <xsl:choose>\n        <xsl:when test=\"$align='left' or $align='justify'\">\n            <xsl:text>l</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='center'\">\n            <xsl:text>c</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='right'\">\n            <xsl:text>r</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: tabular horizontal alignment attribute not recognized: use left, center, right, justify</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Translate vertical alignment to CSS short name         -->\n<!-- HTML:  makes portion of CSS class names for cells      -->\n<!-- LaTeX: provides one standard LaTeX vertical alignment  -->\n<!-- PG: provide LaTeX-style alignment string for           -->\n<!-- DataTable macro from niceTable.pl                      -->\n<xsl:template name=\"valign-specification\">\n    <xsl:param name=\"align\" />\n    <xsl:choose>\n        <xsl:when test=\"$align='top'\">\n            <xsl:text>t</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='middle'\">\n            <xsl:text>m</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='bottom'\">\n            <xsl:text>b</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: tabular vertical alignment attribute not recognized: use top, middle, bottom</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Structured by Lines -->\n<!-- ################### -->\n\n<!-- Some items, such as an address or an attribution,          -->\n<!-- can be formatted like a poem, as a sequence of lines,      -->\n<!-- without really being able to say just why or how in        -->\n<!-- advance via markup.  So the schema will allow an element   -->\n<!-- to be a simple, single line of text, OR a sequence of      -->\n<!-- \"line\" elements (only), each \"line\" being the same simple  -->\n<!-- text.  Generally, all we need is an abstract separator for -->\n<!-- the first n-1 lines.  What happens after the last line     -->\n<!-- should be in agreement with the single line version.       -->\n\n\n<!-- Allowed to be structured, and handled abstractly -->\n<!--   * department (author, editor, etc.)            -->\n<!--   * institution (author, editor, etc.)           -->\n<!--   * dedication/p                                 -->\n<!--   * attribution                                  -->\n<!--   * cell (tabular/row/cell/line)                 -->\n<!--                                                  -->\n<!-- Specialized, handled specifically (ie not here)  -->\n<!--   * poem/stanza/line                             -->\n<!--   * letter/frontmatter/to/line (from) (LaTeX)    -->\n<!--   * memo/frontmatter/to/line (from) (LaTeX)      -->\n\n<!-- The markup, and visual source necessary for the  -->\n<!-- end of each line, default indicates a problem    -->\n<!-- Needs an override for each conversion            -->\n<xsl:template name=\"line-separator\">\n    <xsl:text>[LINESEP]</xsl:text>\n</xsl:template>\n\n<!-- Explicitly assumes a sequence of \"line\" -->\n<xsl:template match=\"line\">\n    <xsl:apply-templates/>\n    <!-- is there a next line to separate? -->\n    <xsl:if test=\"following-sibling::line\">\n        <xsl:call-template name=\"line-separator\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Poetry Utilities -->\n<!-- ################ -->\n\n<!-- These inherit from their containers,    -->\n<!-- which is why \"poem\" has a default value -->\n\n<xsl:template match=\"poem|poem/author|stanza|stanza/line\" mode=\"poem-indent\">\n    <xsl:choose>\n        <xsl:when test=\"@indent\">\n            <xsl:value-of select=\"@indent\" />\n        </xsl:when>\n        <xsl:when test=\"self::poem\">\n            <xsl:text>0</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"poem-indent\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"poem|poem/author|stanza|stanza/line\" mode=\"poem-halign\">\n    <xsl:choose>\n        <xsl:when test=\"@halign\">\n            <xsl:value-of select=\"@halign\" />\n        </xsl:when>\n        <xsl:when test=\"self::poem\">\n            <xsl:text>left</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"poem-halign\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Music -->\n<!-- ##### -->\n\n<!-- Uses inline math rendering -->\n<xsl:template match=\"n|scaledeg|timesignature|chord\">\n    <xsl:call-template name=\"inline-math-wrapper\">\n        <xsl:with-param name=\"math\">\n            <xsl:apply-templates select=\".\" mode=\"inner-music\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Note -->\n<xsl:template match=\"n\" mode=\"inner-music\">\n    <!-- Test that pitch class is NOT castable as a number -->\n    <xsl:if test=\"not(number(@pc) = number(@pc))\">\n        <xsl:text>\\text{</xsl:text>\n        <xsl:value-of select=\"@pc\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <!-- Provide something to place accidental -->\n    <!-- on if the pitch class is numeric.     -->\n    <xsl:if test=\"number(@pc) = number(@pc) and @acc\">\n        <xsl:text>{}</xsl:text>\n    </xsl:if>\n    <!-- Add an accidental if applicable -->\n    <xsl:if test=\"@acc\">\n        <xsl:text>^</xsl:text>\n        <xsl:call-template name=\"accidentals\">\n            <xsl:with-param name=\"accidental\"><xsl:value-of select=\"@acc\"/></xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <!-- Test that pitch class IS castable as a number -->\n    <!-- Accidentals precede numeric pitch classes     -->\n    <xsl:if test=\"number(@pc) = number(@pc)\">\n        <xsl:value-of select=\"@pc\"/>\n    </xsl:if>\n    <!-- Add an octave number if applicable -->\n    <xsl:if test=\"@octave\">\n        <!-- Consideration: should we accommodate other octave notations?    -->\n        <!-- Current support is for scientific pitch notation (the standard), -->\n        <!-- other octave notation exists such as \"Helmholtz pitch notation\"  -->\n        <xsl:text>_{</xsl:text>\n        <xsl:value-of select=\"@octave\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Scale Degrees -->\n<xsl:template match=\"scaledeg\" mode=\"inner-music\">\n    <!-- Arabic numeral with circumflex accent above)-->\n    <xsl:text>\\hat{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n    <!-- TODO: unclear if trailing space is necessary -->\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n<!-- Time Signatures -->\n<xsl:template match=\"timesignature\" mode=\"inner-music\">\n    <xsl:text>\\begin{smallmatrix}</xsl:text>\n    <xsl:value-of select=\"@top\"/>\n    <xsl:text>\\\\</xsl:text>\n    <xsl:value-of select=\"@bottom\"/>\n    <xsl:text>\\end{smallmatrix}</xsl:text>\n</xsl:template>\n\n<!-- Chord -->\n<xsl:template match=\"chord\" mode=\"inner-music\">\n    <xsl:text>\\left.</xsl:text>\n    <!-- Root -->\n    <xsl:choose>\n        <!-- There is an accidental -->\n        <xsl:when test=\"contains(@root, ' ')\">\n            <!-- Pitch Class -->\n            <xsl:text>\\text{</xsl:text>\n            <xsl:value-of select=\"substring-before(@root, ' ')\"/>\n            <xsl:text>}</xsl:text>\n            <!-- Accidental -->\n            <xsl:text>^</xsl:text>\n            <xsl:call-template name=\"accidentals\">\n                <xsl:with-param name=\"accidental\"><xsl:value-of select=\"substring-after(@root, ' ')\"/></xsl:with-param>\n            </xsl:call-template>\n            <!-- prevent \"double superscript\" error -->\n            <xsl:text>{}</xsl:text>\n        </xsl:when>\n        <!-- There is not an accidental -->\n        <xsl:otherwise>\n            <xsl:text>\\text{</xsl:text>\n            <xsl:value-of select=\"@root\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- Mode (augmented, major, minor, half-diminished, diminished, etc.) -->\n    <xsl:if test=\"@mode\">\n        <xsl:choose>\n            <!-- There is a two part mode -->\n            <xsl:when test=\"contains(@mode, ' ')\">\n                <!-- Lower Mode -->\n                <xsl:call-template name=\"chordsymbols\">\n                    <xsl:with-param name=\"mode\"><xsl:value-of select=\"substring-before(@mode, ' ')\"/></xsl:with-param>\n                </xsl:call-template>\n                <!-- Raise to be in line with bps -->\n                <xsl:text>^</xsl:text>\n                <!-- Higher Mode -->\n                <xsl:call-template name=\"chordsymbols\">\n                    <xsl:with-param name=\"mode\"><xsl:value-of select=\"substring-after(@mode, ' ')\"/></xsl:with-param>\n                </xsl:call-template>\n                <!-- prevent \"double superscript\" error -->\n                <xsl:text>{}</xsl:text>\n            </xsl:when>\n            <!-- There is a single mode -->\n            <xsl:otherwise>\n                <xsl:call-template name=\"chordsymbols\">\n                    <xsl:with-param name=\"mode\"><xsl:value-of select=\"@mode\"/></xsl:with-param>\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n    <!-- Bass Position Symbol -->\n    <xsl:if test=\"@bps\">\n        <!-- Consideration: Even if it is not standard practice, -->\n        <!-- will anyone ever want more than two bps numbers?    -->\n        <xsl:choose>\n            <!-- We use a space to delineate the breaking point of the bps -->\n            <!-- e.g. for 6/4 we write \"6 4\" -->\n            <xsl:when test=\"contains(@bps, ' ')\">\n                <xsl:text>^{</xsl:text>\n                <xsl:value-of select=\"substring-before(@bps, ' ')\"/>\n                <xsl:text>}</xsl:text>\n                <xsl:text>_{</xsl:text>\n                <xsl:value-of select=\"substring-after(@bps, ' ')\"/>\n                <xsl:text>}</xsl:text>\n            </xsl:when>\n            <!-- If there is no space, then we only need a superscript -->\n            <xsl:otherwise>\n                <xsl:text>^{</xsl:text>\n                <xsl:value-of select=\"@bps\"/>\n                <xsl:text>}</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n    <!-- Suspended -->\n    <xsl:if test=\"@suspended = 'yes'\">\n        <!-- Consideration: should we make \"sus\" localized/customizable? -->\n        <xsl:text>\\text{sus}</xsl:text>\n    </xsl:if>\n    <!-- Chord Alterations -->\n    <xsl:if test=\"./*\">\n        <xsl:choose>\n            <!-- Turning off parentheses is usually for showing why parenthesization clarifies meaning. -->\n            <xsl:when test=\"@parentheses = 'no'\">\n                <xsl:text>\\left.</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\left(</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <!-- We only use a smallmatrix if we have more than one alteration         -->\n        <!-- Using smallmatrix with a single entry makes the alteration too small. -->\n        <xsl:if test=\"count(*) > 1\">\n            <xsl:text>\\begin{smallmatrix}</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"*\"/>\n        <xsl:if test=\"count(*) > 1\">\n            <xsl:text>\\end{smallmatrix}</xsl:text>\n        </xsl:if>\n        <xsl:choose>\n            <xsl:when test=\"@parentheses = 'no'\">\n                <xsl:text>\\right.</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\right)</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n    <!-- Alternate Bass Note (e.g. C/G) -->\n    <xsl:if test=\"@bass\">\n        <!-- Resizes based on components of chord -->\n        <xsl:text>\\middle/</xsl:text>\n        <xsl:choose>\n            <!-- Bass note has an accidental -->\n            <xsl:when test=\"contains(@bass, ' ')\">\n                <!-- Pitch Class -->\n                <xsl:text>\\text{</xsl:text>\n                <xsl:value-of select=\"substring-before(@bass, ' ')\"/>\n                <xsl:text>}</xsl:text>\n                <!-- Accidental -->\n                <xsl:text>^{</xsl:text>\n                <xsl:call-template name=\"accidentals\">\n                    <xsl:with-param name=\"accidental\"><xsl:value-of select=\"substring-after(@bass, ' ')\"/></xsl:with-param>\n                </xsl:call-template>\n                <xsl:text>}</xsl:text>\n            </xsl:when>\n            <!-- Bass note does not have an accidental -->\n            <xsl:otherwise>\n                <!-- Pitch Class -->\n                <xsl:text>\\text{</xsl:text>\n                <xsl:value-of select=\"@bass\"/>\n                <xsl:text>}</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n    <xsl:text>\\right.</xsl:text>\n</xsl:template>\n\n<!-- Chord Alteration -->\n<!-- Put a break after each alteration that is not the last -->\n<xsl:template match=\"chord/alteration\">\n    <xsl:text>\\text{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n    <!-- Separate alterations -->\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:text>\\\\</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!--                 -->\n<!-- Musical Symbols -->\n<!--                 -->\n\n<!-- Accidentals -->\n\n<!-- TODO: If requested, add semi- and sesqui- versions of sharp and flat -->\n<!-- (Easy with LilyPond in LaTeX) -->\n<!-- (For HTML ,there are Unicode characters, though font support may be iffy) -->\n\n<!-- Double-Sharp -->\n<xsl:template match=\"doublesharp\">\n    <xsl:call-template name=\"doublesharp\"/>\n</xsl:template>\n\n<!-- Sharp -->\n<xsl:template match=\"sharp\">\n    <xsl:call-template name=\"sharp\"/>\n</xsl:template>\n\n<!-- Natural -->\n<xsl:template match=\"natural\">\n    <xsl:call-template name=\"natural\"/>\n</xsl:template>\n\n<!-- Flat -->\n<xsl:template match=\"flat\">\n    <xsl:call-template name=\"flat\"/>\n</xsl:template>\n\n<!-- Double-Flat -->\n<xsl:template match=\"doubleflat\">\n    <xsl:call-template name=\"doubleflat\"/>\n</xsl:template>\n\n<!-- Insert the correct accidental -->\n<!-- (For use in <n> and <chord>)  -->\n<xsl:template name=\"accidentals\">\n    <xsl:param name=\"accidental\"/>\n    <xsl:choose>\n        <xsl:when test=\"$accidental = 'doubleflat'\">\n            <xsl:call-template name=\"doubleflat\"/>\n        </xsl:when>\n        <xsl:when test=\"$accidental = 'flat'\">\n            <xsl:call-template name=\"flat\"/>\n        </xsl:when>\n        <xsl:when test=\"$accidental = 'natural'\">\n            <xsl:call-template name=\"natural\"/>\n        </xsl:when>\n        <xsl:when test=\"$accidental = 'sharp'\">\n            <xsl:call-template name=\"sharp\"/>\n        </xsl:when>\n        <xsl:when test=\"$accidental = 'doublesharp'\">\n            <xsl:call-template name=\"doublesharp\"/>\n        </xsl:when>\n        <!-- For unknown accidentals, use the given value wrapped in \\text{} -->\n        <xsl:otherwise>\n            <xsl:text>\\text{</xsl:text>\n            <xsl:value-of select=\"$accidental\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Fall-Back values for Accidentals -->\n\n<!-- Double-Sharp -->\n<xsl:template name=\"doublesharp\">\n    <xsl:text>[DOUBLESHARP]</xsl:text>\n</xsl:template>\n\n<!-- Sharp -->\n<xsl:template name=\"sharp\">\n    <xsl:text>[SHARP]</xsl:text>\n</xsl:template>\n\n<!-- Natural -->\n<xsl:template name=\"natural\">\n    <xsl:text>[NATURAL]</xsl:text>\n</xsl:template>\n\n<!-- Flat -->\n<xsl:template name=\"flat\">\n    <xsl:text>[FLAT]</xsl:text>\n</xsl:template>\n\n<!-- Double-Flat -->\n<xsl:template name=\"doubleflat\">\n    <xsl:text>[DOUBLEFLAT]</xsl:text>\n</xsl:template>\n\n<!-- Insert the correct chord symbol -->\n<!-- (For use in <chord>)  -->\n<xsl:template name=\"chordsymbols\">\n    <xsl:param name=\"mode\"/>\n    <xsl:choose>\n        <xsl:when test=\"$mode = 'augmented'\">\n            <xsl:call-template name=\"augmentedchordsymbol\"/>\n        </xsl:when>\n        <xsl:when test=\"$mode = 'major'\">\n            <xsl:call-template name=\"majorchordsymbol\"/>\n        </xsl:when>\n        <xsl:when test=\"$mode = 'minor'\">\n            <xsl:call-template name=\"minorchordsymbol\"/>\n        </xsl:when>\n        <xsl:when test=\"$mode = 'halfdiminished'\">\n            <xsl:text>^</xsl:text>\n            <xsl:call-template name=\"halfdiminishedchordsymbol\"/>\n            <xsl:text>{}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$mode = 'diminished'\">\n            <xsl:text>^</xsl:text>\n            <xsl:call-template name=\"diminishedchordsymbol\"/>\n            <xsl:text>{}</xsl:text>\n        </xsl:when>\n        <!-- For unknown chord symbols, use the given value wrapped in \\text{} -->\n        <!-- e.g. mode=\"maj\" will use \\text{maj}                               -->\n        <xsl:otherwise>\n            <xsl:text>\\text{</xsl:text>\n            <xsl:value-of select=\"$mode\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Chord Symbols -->\n\n<!-- Augmented -->\n<xsl:template name=\"augmentedchordsymbol\">\n    <xsl:text>{+}</xsl:text>\n</xsl:template>\n\n<!-- Major -->\n<xsl:template name=\"majorchordsymbol\">\n    <xsl:text>{\\Delta}</xsl:text>\n</xsl:template>\n\n<!-- Minor -->\n<xsl:template name=\"minorchordsymbol\">\n    <xsl:text>{-}</xsl:text>\n</xsl:template>\n\n<!-- Half Diminished -->\n<xsl:template name=\"halfdiminishedchordsymbol\">\n    <xsl:text>\\text{\\o}</xsl:text>\n</xsl:template>\n\n<!-- Diminished -->\n<xsl:template name=\"diminishedchordsymbol\">\n    <xsl:text>{\\circ}</xsl:text>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Cross-References -->\n<!-- ################ -->\n\n<!-- The logic of the visible text of a cross-reference is all  -->\n<!-- here in the common routines. That text and the target node -->\n<!-- is then sent to templates that are output-format-specific. -->\n\n<!-- The actual manufacture of a (active) link is delegated  -->\n<!-- to implementations, see abstract (null) implementations -->\n<!-- at the end of the \"utilities\" section below             -->\n\n<!-- Match on:                                       -->\n<!--     @ref, no list: the most frequent case       -->\n<!--     @ref, a list: mostly for bibliography lists -->\n<!--     @first, @last: a range                      -->\n<!--     @provisional: author convenience            -->\n<!--     remainder: error check                      -->\n\n<!-- Primary case, no separators in @ref -->\n<xsl:template match=\"xref[@ref and not(contains(normalize-space(@ref), ' ')) and  not(contains(normalize-space(@ref), ','))]\">\n    <xsl:variable name=\"error-message\">\n        <xsl:apply-templates select=\".\" mode=\"error-check-xref\"/>\n    </xsl:variable>\n    <xsl:variable name=\"b-custom-biblio-text\" select=\"@pi:custom-text = 'yes'\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"not($error-message = '')\">\n            <xsl:variable name=\"warning-rtf\">\n                <c>\n                    <xsl:value-of select=\"$error-message\"/>\n                </c>\n            </xsl:variable>\n            <xsl:apply-templates select=\"exsl:node-set($warning-rtf)/c\"/>\n        </xsl:when>\n        <!-- clear of errors, so on to main event -->\n        <xsl:otherwise>\n            <xsl:variable name=\"target\" select=\"id(@ref)\"/>\n            <!-- Determine style of visible text in link -->\n            <xsl:variable name=\"text-style\">\n                <xsl:apply-templates select=\".\" mode=\"get-text-style\" />\n            </xsl:variable>\n            <!-- if target is a bibliography item, generic -->\n            <!-- text template only makes a number, we add -->\n            <!-- brackets before link manufacture          -->\n            <xsl:variable name=\"b-is-biblio-target\" select=\"boolean($target/self::biblio)\" />\n            <!-- form text of the clickable, wrap biblio target -->\n            <!-- since xref-text outputs just a number          -->\n            <xsl:variable name=\"text\">\n                <xsl:if test=\"parent::mrow\">\n                    <xsl:text>\\text{</xsl:text>\n                </xsl:if>\n                <xsl:if test=\"$b-is-biblio-target and not($b-custom-biblio-text)\">\n                    <xsl:text>[</xsl:text>\n                </xsl:if>\n                <xsl:apply-templates select=\".\" mode=\"xref-text\" >\n                    <xsl:with-param name=\"target\" select=\"$target\" />\n                    <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n                    <!-- pass content as an RTF, test vs. empty string, use copy-of -->\n                    <xsl:with-param name=\"custom-text\">\n                        <xsl:apply-templates/>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n                <!-- a bibliography citation (only) may have extra @detail          -->\n                <!-- maybe the detail should migrate to content of a xref to biblio -->\n                <xsl:if test=\"@detail\">\n                    <xsl:choose>\n                        <xsl:when test=\"$b-is-biblio-target\">\n                            <xsl:text>,</xsl:text>\n                            <xsl:call-template name=\"nbsp-character\"/>\n                            <!-- this info should not be in an attribute! -->\n                            <xsl:apply-templates select=\"@detail\" />\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:message>PTX:WARNING: &lt;xref @detail=\"<xsl:value-of select=\"@detail\" />\" /&gt; only implemented for single references to &lt;biblio&gt; elements</xsl:message>\n                            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:if>\n                <xsl:if test=\"$b-is-biblio-target and not($b-custom-biblio-text)\">\n                    <xsl:text>]</xsl:text>\n                </xsl:if>\n                <xsl:if test=\"parent::mrow\">\n                    <xsl:text>}</xsl:text>\n                </xsl:if>\n            </xsl:variable>\n            <!-- Send the text representation for link and target to a    -->\n            <!-- format-specific and target-specific link manufacture.    -->\n            <!-- This depends primarly on the $target, but the context is -->\n            <!-- holds the location of the link.  Example: a link in      -->\n            <!-- display mathematics (rendered by MathJax for HTML)       -->\n            <!-- requires radically different constructions as a knowl,   -->\n            <!-- or as a hyperlink.  LaTeX barely cares.  We do wrap the  -->\n            <!-- xref-text in \\text{} for receipt in display mathematics. -->\n            <!-- NB: could a xref with title text have math in it and mess-up here? -->\n            <xsl:apply-templates select=\".\" mode=\"xref-link\">\n                <xsl:with-param name=\"target\" select=\"$target\" />\n                <xsl:with-param name=\"origin\" select=\"'xref'\" />\n                <xsl:with-param name=\"content\" select=\"$text\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A range given by @first, @last            -->\n<!-- Makes one chunk of text, linked to @first -->\n<!-- Requires same type for targets, since     -->\n<!-- type only occurs once in text             -->\n<!-- Equations look like (4.2)-(4.8)           -->\n<!-- Bibliography looks like [6-14]            -->\n<xsl:template match=\"xref[@first and @last]\">\n    <xsl:variable name=\"error-message\">\n        <xsl:apply-templates select=\".\" mode=\"error-check-xref\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"not($error-message = '')\">\n            <xsl:variable name=\"warning-rtf\">\n                <c>\n                    <xsl:value-of select=\"$error-message\"/>\n                </c>\n            </xsl:variable>\n            <xsl:apply-templates select=\"exsl:node-set($warning-rtf)/c\"/>\n        </xsl:when>\n        <!-- clear of errors, so on to main event -->\n        <xsl:otherwise>\n            <xsl:variable name=\"target-one\" select=\"id(@first)\"/>\n            <xsl:variable name=\"target-two\" select=\"id(@last)\" />\n            <!-- Determine style of visible text in link -->\n            <xsl:variable name=\"text-style-one\">\n                <xsl:apply-templates select=\".\" mode=\"get-text-style\" />\n            </xsl:variable>\n            <!-- Adjust/set style for end of range          -->\n            <!-- Basically supress text manufacture of type -->\n            <!-- Also, no content is passed with @last      -->\n            <xsl:variable name=\"text-style-two\">\n                <xsl:choose>\n                    <!-- do not replicate type name -->\n                    <xsl:when test=\"$text-style-one = 'type-global'\">\n                        <xsl:text>global</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"$text-style-one = 'type-local'\">\n                        <xsl:text>local</xsl:text>\n                    </xsl:when>\n                    <!-- pass through 'global', 'local', 'title', 'phrase-global' -->\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$text-style-one\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <!-- enforce @first, @last point to same kind of element, -->\n            <!-- since we implicitly recycle the type-name of @first  -->\n            <!-- Schematron: possible by inserting id() into XPath test? -->\n            <xsl:if test=\"not(local-name($target-one) = local-name($target-two))\">\n                <xsl:message>PTX:ERROR:   &lt;xref @first=\"<xsl:value-of select=\"@first\" />\" @last=\"<xsl:value-of select=\"@last\" />\" /&gt; references two elements with different tags (<xsl:value-of select=\"local-name($target-one)\" /> vs. <xsl:value-of select=\"local-name($target-two)\" />), so are incompatible as endpoints of a range.  Rewrite using two &lt;xref&gt; elements</xsl:message>\n            </xsl:if>\n            <!-- Once there was a courtesy check here that range  -->\n            <!-- is not out-of-order. It was very inefficient due -->\n            <!-- to two uses of the \"preceeding::\" axis. Seven    -->\n            <!-- instances in the sample article accounted for    -->\n            <!-- ~6% of processing time.                          -->\n            <!-- For the old code, see commit                     -->\n            <!--     05c88bb632e1d232a46955f4e3552494c3219cdc     -->\n            <!-- Testing @last target in the nodes preceeding the -->\n            <!-- first target might cut the time in half, which   -->\n            <!-- is still not great.                              -->\n            <!--  -->\n            <!-- Biblio check assumes targets are equal       -->\n            <!-- If target is a bibliography item, generic    -->\n            <!-- text template only makes numbers, we add     -->\n            <!-- brackets and detail before link manufacture  -->\n            <!-- Content passes with @first, not with @second -->\n            <xsl:variable name=\"b-is-biblio-target\" select=\"boolean($target-one/self::biblio)\" />\n            <!-- Compose two text parts with an ndash, perhaps wrappped -->\n            <xsl:variable name=\"text\">\n                <xsl:if test=\"parent::mrow\">\n                    <xsl:text>\\text{</xsl:text>\n                </xsl:if>\n                <xsl:if test=\"$b-is-biblio-target\">\n                    <xsl:text>[</xsl:text>\n                </xsl:if>\n                <xsl:apply-templates select=\".\" mode=\"xref-text\" >\n                    <xsl:with-param name=\"target\" select=\"$target-one\" />\n                    <xsl:with-param name=\"text-style\" select=\"$text-style-one\" />\n                    <!-- pass content as an RTF, test vs. empty string, use copy-of -->\n                    <xsl:with-param name=\"custom-text\">\n                        <xsl:apply-templates/>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n                <xsl:call-template name=\"ndash-character\"/>\n                <xsl:apply-templates select=\".\" mode=\"xref-text\" >\n                    <xsl:with-param name=\"target\" select=\"$target-two\" />\n                    <xsl:with-param name=\"text-style\" select=\"$text-style-two\" />\n                </xsl:apply-templates>\n                <xsl:if test=\"$b-is-biblio-target\">\n                    <xsl:text>]</xsl:text>\n                </xsl:if>\n                <xsl:if test=\"parent::mrow\">\n                    <xsl:text>}</xsl:text>\n                </xsl:if>\n            </xsl:variable>\n            <!-- Send the text representation for link and target to a    -->\n            <!-- format-specific and target-specific link manufacture.    -->\n            <!-- This depends primarly on the $target, but the context is -->\n            <!-- holds the location of the link.  Example: a link in      -->\n            <!-- display mathematics (rendered by MathJax for HTML)       -->\n            <!-- requires radically different constructions as a knowl,   -->\n            <!-- or as a hyperlink.  LaTeX barely cares.  We do wrap the  -->\n            <!-- xref-text in \\text{} for receipt in display mathematics. -->\n            <!-- NB: could a xref with title text have math in it and mess-up here? -->\n            <xsl:apply-templates select=\".\" mode=\"xref-link\">\n                <xsl:with-param name=\"target\" select=\"$target-one\" />\n                <xsl:with-param name=\"origin\" select=\"'xref'\" />\n                <xsl:with-param name=\"content\" select=\"$text\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A comma-, or space-separated list is unusual, -->\n<!-- outside of a list of bibliography items.  For -->\n<!-- other items we just mimic this case.          -->\n<xsl:template match=\"xref[@ref and (contains(normalize-space(@ref), ' ') or contains(normalize-space(@ref), ','))]\">\n    <xsl:variable name=\"error-message\">\n        <xsl:apply-templates select=\".\" mode=\"error-check-xref\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"not($error-message = '')\">\n            <xsl:variable name=\"warning-rtf\">\n                <c>\n                    <xsl:value-of select=\"$error-message\"/>\n                </c>\n            </xsl:variable>\n            <xsl:apply-templates select=\"exsl:node-set($warning-rtf)/c\"/>\n        </xsl:when>\n        <!-- clear of errors, so on to main event -->\n        <xsl:otherwise>\n            <!-- Determine style of visible text in link -->\n            <xsl:variable name=\"text-style\">\n                <xsl:apply-templates select=\".\" mode=\"get-text-style\" />\n            </xsl:variable>\n            <!-- commas to blanks, normalize, add trailing blank for parsing   -->\n            <!-- initialize with empty previous node, recurse through the list -->\n            <xsl:variable name=\"normalized-ref-list\"\n                select=\"concat(normalize-space(str:replace(@ref,',', ' ')), ' ')\" />\n            <xsl:apply-templates select=\".\" mode=\"process-ref-list\">\n                <xsl:with-param name=\"previous-target\" select=\"/..\" />\n                <xsl:with-param name=\"ref-list\" select=\"$normalized-ref-list\" />\n                <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- $ref-list must always have a trailing blank, if non-empty      -->\n<!-- $previous-target serves two purposes:                          -->\n<!--     empty signals start of the list, so no separator           -->\n<!--     type-checking to preserve a consistent list (unimplmented) -->\n<!-- $text-style is set on first call, then just pass-through       -->\n<!-- Wrapping for bibiography list is based on first, last element  -->\n<!-- No content overrides are allowed, since unclear jut how        -->\n<!-- TODO: improve checking to avoid goofy results -->\n<xsl:template match=\"xref\" mode=\"process-ref-list\">\n    <xsl:param name=\"previous-target\" select=\"/..\" />\n    <xsl:param name=\"ref-list\" select=\"' '\" />\n    <xsl:param name=\"text-style\" select=\"''\" />\n    <!-- split list at first blank, later recurse on $trailing -->\n    <xsl:variable name=\"ref\" select=\"substring-before($ref-list, ' ')\" />\n    <xsl:variable name=\"trailing\" select=\"substring-after($ref-list, ' ')\" />\n    <!-- now work with one $ref and the configured $text-style -->\n    <!-- get the target as a node -->\n    <xsl:variable name=\"target\" select=\"id($ref)\" />\n    <!-- bibiographic targets are special -->\n    <xsl:variable name=\"b-is-biblio-target\" select=\"$target/self::biblio\" />\n    <!-- if starting, begin bibliography list wrapping -->\n    <xsl:if test=\"not($previous-target) and $b-is-biblio-target\">\n        <xsl:text>[</xsl:text>\n    </xsl:if>\n    <!-- output a seperator, if not just starting -->\n    <!-- protect text in a math display           -->\n    <xsl:if test=\"$previous-target\">\n        <xsl:if test=\"parent::mrow\">\n            <xsl:text>\\text{</xsl:text>\n        </xsl:if>\n        <xsl:text>, </xsl:text>\n        <xsl:if test=\"parent::mrow\">\n            <xsl:text>}</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <!-- create the visual/clickable/readable text      -->\n    <!-- no content is passed, so no override in effect -->\n    <xsl:variable name=\"text\">\n        <xsl:if test=\"parent::mrow\">\n            <xsl:text>\\text{</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\".\" mode=\"xref-text\">\n            <xsl:with-param name=\"target\" select=\"$target\" />\n            <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n        </xsl:apply-templates>\n        <xsl:if test=\"parent::mrow\">\n            <xsl:text>}</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <!-- Send the text representation for link and target to a    -->\n    <!-- format-specific and target-specific link manufacture.    -->\n    <!-- This depends primarly on the $target, but the context is -->\n    <!-- holds the location of the link.  Example: a link in      -->\n    <!-- display mathematics (rendered by MathJax for HTML)       -->\n    <!-- requires radically different constructions as a knowl,   -->\n    <!-- or as a hyperlink.  LaTeX barely cares.  We do wrap the  -->\n    <!-- xref-text in \\text{} for receipt in display mathematics. -->\n    <!-- NB: could a xref with title text have math in it and mess-up here? -->\n    <xsl:apply-templates select=\".\" mode=\"xref-link\">\n        <xsl:with-param name=\"target\" select=\"$target\" />\n        <xsl:with-param name=\"origin\" select=\"'xref'\" />\n        <xsl:with-param name=\"content\" select=\"$text\" />\n    </xsl:apply-templates>\n    <!-- check if we have exhausted the list, -->\n    <!-- so check bibliography wrapping       -->\n    <xsl:if test=\"not($trailing) and $b-is-biblio-target\">\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n    <!-- recurse into next reference in the list -->\n    <xsl:if test=\"$trailing\">\n        <xsl:apply-templates select=\".\" mode=\"process-ref-list\">\n            <xsl:with-param name=\"previous-target\" select=\"$target\" />\n            <xsl:with-param name=\"ref-list\" select=\"$trailing\" />\n            <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- Provisional cross-references -->\n<!-- A convenience for authors in early stages of writing -->\n<!-- Just drop a reminder in text                         -->\n<xsl:template match=\"xref[@provisional]\">\n    <xsl:variable name=\"warning-rtf\">\n        <c>\n            <xsl:text>[provisional cross-reference: </xsl:text>\n            <xsl:value-of select=\"@provisional\"/>\n            <xsl:text>]</xsl:text>\n        </c>\n    </xsl:variable>\n    <xsl:variable name=\"warning\" select=\"exsl:node-set($warning-rtf)\"/>\n    <xsl:apply-templates select=\"$warning/c\"/>\n</xsl:template>\n\n<!-- Warnings for a high-frequency mistake -->\n<xsl:template match=\"xref[not(@ref) and not(@first and @last) and not(@provisional)]\">\n    <xsl:message>PTX:WARNING: A cross-reference (&lt;xref&gt;) must have a @ref attribute, a @first/@last attribute pair, or a @provisional attribute</xsl:message>\n    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    <xsl:call-template name=\"inline-warning\">\n        <xsl:with-param name=\"warning\">\n            <xsl:text>xref without ref, first/last, or provisional attribute (check spelling)</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:call-template name=\"margin-warning\">\n        <xsl:with-param name=\"warning\">\n            <xsl:text>xref, no recognized attribute</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- ######################### -->\n<!-- Cross-Reference Utilities -->\n<!-- ######################### -->\n\n<!-- Error-checking first, an \"xref\" in, a placeholder message back -->\n<!-- to insert into text that screams there is a problem.  Routine  -->\n<!-- also scribbles on the console.  To use, capture the output in  -->\n<!--  avariable, if non-empty then use text as result, if empty     -->\n<!-- then do the work.                                              -->\n\n<xsl:template match=\"xref\" mode=\"error-check-xref\">\n    <!-- A @ref attribute can be a list (e.g. of biblio) and the   -->\n    <!-- @first/@last construction is really two @ref.  We package -->\n    <!-- up a list as a string no matter what.  No commas, plus a  -->\n    <!-- trailing space added so we can chop up the list reliably. -->\n    <!-- commas to blanks, normalize spaces, -->\n    <!-- add trailing space for final split  -->\n    <xsl:variable name=\"normalized-ref-list\">\n        <xsl:choose>\n            <xsl:when test=\"@ref\">\n                <xsl:value-of select=\"concat(normalize-space(str:replace(@ref,',', ' ')), ' ')\"/>\n            </xsl:when>\n            <!-- put @first and @last into a normalized two-part list -->\n            <xsl:when test=\"@first and @last\">\n                <xsl:value-of select=\"concat(normalize-space(@first), ' ', normalize-space(@last), ' ')\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:ERROR:   an \"xref\" lacks a @ref, @first/@last, or @provisional; check your source</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Variable will have a list of bad cross-reference -->\n    <!-- labels (no target located!) in a comma-separated -->\n    <!-- list.  Empty is success and we then do nothing.  -->\n    <xsl:variable name=\"bad-xrefs-in-list\">\n        <!-- recursive, start with full list -->\n        <xsl:apply-templates select=\".\" mode=\"check-ref-list\">\n            <xsl:with-param name=\"ref-list\" select=\"$normalized-ref-list\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:if test=\"not($bad-xrefs-in-list = '')\">\n        <!-- error condition, so warn and return  -->\n        <!-- placeholder text as template result  -->\n        <xsl:variable name=\"error-list\" select=\"substring($bad-xrefs-in-list, 1, string-length($bad-xrefs-in-list) - 2)\"/>\n        <xsl:message>PTX:ERROR:   a cross-reference (\"xref\") uses references [<xsl:value-of select=\"$error-list\"/>] that do not point to any target, or perhaps point to multiple targets.  Maybe you typed an @xml:id value wrong, maybe the target of the @xml:id is nonexistent, or maybe you temporarily removed the target from your source, or maybe an auxiliary file contains a duplicate.  Your output will contain some placeholder text that you will not want to distribute to your readers.</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n        <!-- placeholder text -->\n        <xsl:text>[cross-reference to target(s) \"</xsl:text>\n        <xsl:value-of select=\"$error-list\"/>\n        <xsl:text>\" missing or not unique]</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- yes/no boolean for valid targets of an \"xref\"         -->\n<!-- Initial list from entities file as of 2021-02-10      -->\n<!-- Others from test docs, public testing via pretext-dev -->\n<!-- NB: \"men\" is historical.  This element gets repaired  -->\n<!-- to a one-line \"md\" but the target is found in the     -->\n<!-- original source and is identified as an \"men\" element, -->\n<!-- which really *should not* be not on this list.         -->\n<xsl:template match=\"&STRUCTURAL;|&DEFINITION-LIKE;|&THEOREM-LIKE;|&PROOF-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&ASIDE-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&GOAL-LIKE;|&FIGURE-LIKE;|&SOLUTION-LIKE;|&DISCUSSION-LIKE;|exercise|task|subexercises|exercisegroup|poem|assemblage|paragraphs|li|fn|men|md|mrow|biblio|interactive/instructions|case|contributor|gi\" mode=\"is-xref-target\">\n    <xsl:value-of select=\"'yes'\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"is-xref-target\">\n    <xsl:value-of select=\"'no'\"/>\n</xsl:template>\n\n<xsl:template match=\"xref\" mode=\"check-ref-list\">\n    <xsl:param name=\"ref-list\"/>\n    <xsl:choose>\n        <!-- no more to test, stop recursing -->\n        <xsl:when test=\"$ref-list = ''\"/>\n        <!-- test/check initial ref of the list -->\n        <xsl:otherwise>\n            <xsl:variable name=\"initial\" select=\"substring-before($ref-list, ' ')\" />\n            <!-- Look up the ref in all relevant \"documents\":          -->\n            <!-- the original source, and private solution file.       -->\n            <!-- Count the number of successes, hoping it will be 1.   -->\n            <!-- Long-term, this check should be performed in a second -->\n            <!-- pass on a completely assembled source, so the id()    -->\n            <!-- function does not need to survey multiple documents.  -->\n            <xsl:variable name=\"hits\">\n                <!-- always do a context shift to $original -->\n                <xsl:for-each select=\"$original\">\n                    <xsl:if test=\"id($initial)\">\n                        <xsl:text>X</xsl:text>\n                        <xsl:variable name=\"target\" select=\"id($initial)\"/>\n                        <xsl:variable name=\"is-a-target\">\n                            <xsl:apply-templates select=\"$target\" mode=\"is-xref-target\"/>\n                        </xsl:variable>\n                        <xsl:if test=\"$is-a-target = 'no'\">\n                            <xsl:message>PTX:DEBUG: xref/@ref \"<xsl:value-of select=\"$initial\"/>\" points to a \"<xsl:value-of select=\"local-name($target)\"/>\" element.  (1) we made a mistake, and we need to add this element to a list of potential targets of a cross-reference, or (2) you made a mistake and really did not mean this particular construction, or (3) we need to have a discussion about the advisability of this element being a target.   (4) If you are trying to cross-reference a \"p\" element, perhaps using a \"paragraphs\" element is a good alternative.  If (1) or (3) could you please report me!</xsl:message>\n                        </xsl:if>\n                    </xsl:if>\n                </xsl:for-each>\n            </xsl:variable>\n            <xsl:if test=\"not($hits = 'X')\">\n                <!-- drop the failed lookup, plus a separator.  A nonempty -->\n                <!-- result for this template is indicative of a failure   -->\n                <!-- and the list can be reported in the error message     -->\n                <xsl:value-of select=\"$initial\"/>\n                <xsl:text>, </xsl:text>\n            </xsl:if>\n            <!-- recurse to next label -->\n            <xsl:apply-templates select=\".\" mode=\"check-ref-list\">\n                <xsl:with-param name=\"ref-list\" select=\"substring-after($ref-list, ' ')\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Parse, analyze switches, attributes -->\n<!--   global:      5.2                  -->\n<!--   type-global: Theorem 5.2          -->\n<!--   title:       Smith's Theorem      -->\n<xsl:template match=\"xref|&PROOF-LIKE;\" mode=\"get-text-style\">\n    <xsl:choose>\n        <!-- local specification is override of global  -->\n        <!-- new @text attribute first, and if so, bail -->\n        <xsl:when test=\"@text='global'\">\n            <xsl:text>global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='local'\">\n            <xsl:text>local</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='hybrid'\">\n            <xsl:text>hybrid</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='type-global'\">\n            <xsl:text>type-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='type-local'\">\n            <xsl:text>type-local</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='type-hybrid'\">\n            <xsl:text>type-hybrid</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='type-global-title'\">\n            <xsl:text>type-global-title</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='type-local-title'\">\n            <xsl:text>type-local-title</xsl:text>\n        </xsl:when>\n        <!-- no 'type-hybrid-title' yet -->\n        <xsl:when test=\"@text='phrase-global'\">\n            <xsl:text>phrase-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='phrase-hybrid'\">\n            <xsl:text>phrase-hybrid</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='title'\">\n            <xsl:text>title</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@text='custom'\">\n            <xsl:text>custom</xsl:text>\n        </xsl:when>\n        <!-- old (deprecated, 2017-07-25) autoname attribute -->\n        <xsl:when test=\"@autoname='no'\">\n            <xsl:text>global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@autoname='yes'\">\n            <xsl:text>type-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@autoname='title'\">\n            <xsl:text>title</xsl:text>\n        </xsl:when>\n        <!-- otherwise, global setting via attribute/switch  -->\n        <!-- New scheme is set from docinfo attribute        -->\n        <!-- No setting in docinfo yields empty string for   -->\n        <!-- $xref-text-style, so we drop into legacy scheme -->\n        <!-- for the default, which is 'yes'/'type-global'   -->\n        <xsl:when test=\"$xref-text-style='global'\">\n            <xsl:text>global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='local'\">\n            <xsl:text>local</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='hybrid'\">\n            <xsl:text>hybrid</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='type-global'\">\n            <xsl:text>type-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='type-local'\">\n            <xsl:text>type-local</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='type-hybrid'\">\n            <xsl:text>type-hybrid</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='type-global-title'\">\n            <xsl:text>type-global-title</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='type-local-title'\">\n            <xsl:text>type-local-title</xsl:text>\n        </xsl:when>\n        <!-- no 'type-hybrid-title' yet -->\n        <xsl:when test=\"$xref-text-style='phrase-global'\">\n            <xsl:text>phrase-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='phrase-hybrid'\">\n            <xsl:text>phrase-hybrid</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='title'\">\n            <xsl:text>title</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$xref-text-style='custom'\">\n            <xsl:text>custom</xsl:text>\n        </xsl:when>\n        <!-- use this when choose goes away\n        <xsl:if test=\"not($xref-text-style = '')\">\n            <xsl:value-of select=\"$xref-text-style\" />\n        </xsl:if>\n        -->\n        <!-- legacy-autoname is a pass-thru of old autoname  -->\n        <!-- except with no command-line, no docinfo, then   -->\n        <!-- a 'unset' will appear here to activate new      -->\n        <!-- default this could move later to the \"otherwise\"-->\n        <xsl:when test=\"$legacy-autoname='unset'\">\n            <xsl:text>type-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$legacy-autoname='no'\">\n            <xsl:text>global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$legacy-autoname='yes'\">\n            <xsl:text>type-global</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$legacy-autoname='title'\">\n            <xsl:text>title</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:    NO TEXT STYLE DETERMINED</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- The text that will be visible and clickable    -->\n<!-- Bibliography items return a naked number,      -->\n<!-- caller is responsible for adjusting text with  -->\n<!-- brackets prior to shipping to link manufacture -->\n<xsl:template match=\"xref|&PROOF-LIKE;\" mode=\"xref-text\">\n    <xsl:param name=\"target\" />\n    <xsl:param name=\"text-style\" />\n    <xsl:param name=\"custom-text\" select=\"''\" />\n    <!-- an equation target is exceptional -->\n    <!-- Targets are \"mrow\" or bare \"md\" -->\n    <xsl:variable name=\"b-is-equation-target\" select=\"$target/self::mrow or $target/self::md[@pi:authored-one-line]\" />\n    <!-- a bibliography target is exceptional -->\n    <xsl:variable name=\"b-is-biblio-target\" select=\"boolean($target/self::biblio)\" />\n    <!-- a contributor target is exceptional -->\n    <xsl:variable name=\"b-is-contributor-target\" select=\"boolean($target/self::contributor)\"/>\n    <!-- recognize content s potential override -->\n    <xsl:variable name=\"b-has-content\" select=\"not($custom-text = '')\" />\n    <!-- check some situations that would lead to ineffective -->\n    <!-- cross-references due to empty text                   -->\n    <xsl:choose>\n        <xsl:when test=\"$text-style = 'title'\">\n            <xsl:variable name=\"the-title\">\n                <xsl:apply-templates select=\"$target\" mode=\"title-xref\"/>\n            </xsl:variable>\n            <xsl:if test=\"$the-title = ''\">\n                <xsl:message>\n                    <xsl:text>PTX:WARNING:    </xsl:text>\n                    <xsl:text>An &lt;xref&gt; wants to build text using a title to identify the target, but the target (which has @xml:id \"</xsl:text>\n                    <xsl:value-of select=\"@ref\"/>\n                    <xsl:text>\") has no title, not even a default title.</xsl:text>\n                </xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:if>\n        </xsl:when>\n        <xsl:when test=\"$text-style = 'custom'\">\n            <xsl:if test=\"not($b-has-content)\">\n                <xsl:message>\n                    <xsl:text>PTX:WARNING:    </xsl:text>\n                    <xsl:text>An &lt;xref&gt; wants to use custom text to describe the target, but no custom text was provided as the content of the \"xref\".</xsl:text>\n                </xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:if>\n        </xsl:when>\n        <!-- Any other case of a cross-reference employs a number, or parts -->\n        <!-- of a number for the target.  The signal of being numberless is -->\n        <!-- an empty result for the modal \"number\" template.  But it is    -->\n        <!-- subtler than that, especially for equations that can have      -->\n        <!-- \"symbolic\" tags via @tag, and the number/no-number dichotomy   -->\n        <!-- is complicated by element names and attributes.                -->\n        <!-- A cross-reference to a contributor is an exception.            -->\n        <xsl:otherwise>\n            <xsl:variable name=\"the-number\">\n                <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                    <xsl:with-param name=\"xref\" select=\".\" />\n                </xsl:apply-templates>\n            </xsl:variable>\n            <xsl:if test=\"($the-number = '') and not($b-is-contributor-target)\">\n                <xsl:message>\n                    <xsl:text>PTX:WARNING:    </xsl:text>\n                    <xsl:text>An &lt;xref&gt; wants to build text using a number to identify the target, but the target (which has @xml:id \"</xsl:text>\n                    <xsl:value-of select=\"@ref\"/>\n                    <xsl:text>\") does not have a number. You could try 'text=\"title\"' or 'text=\"custom\"' on the \"xref\".</xsl:text>\n                </xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- Start massive \"choose\" for exceptions and twelve general styles -->\n    <xsl:choose>\n        <xsl:when test=\"$b-is-contributor-target\">\n            <xsl:apply-templates select=\"$target/personname\" />\n        </xsl:when>\n        <!-- equations are different -->\n        <!-- custom or full number   -->\n        <xsl:when test=\"$b-is-equation-target\">\n            <!-- \"custom\" style replaces the number -->\n            <xsl:choose>\n                <xsl:when test=\"$text-style = 'custom'\">\n                    <xsl:copy-of select=\"$custom-text\"/>\n                </xsl:when>\n                <!-- prefixing with content is anomalous -->\n                <xsl:otherwise>\n                    <xsl:if test=\"$b-has-content\">\n                        <xsl:copy-of select=\"$custom-text\"/>\n                        <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                    </xsl:if>\n                    <xsl:text>(</xsl:text>\n                    <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                    <xsl:text>)</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- bibliography override       -->\n        <!-- number only, consumer wraps -->\n        <!-- warn about useless content override (use as @detail?) -->\n        <xsl:when test=\"$b-is-biblio-target\">\n            <xsl:choose>\n                <xsl:when test=\"$custom-text = ''\">\n                    <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$custom-text\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- now not an equation or bibliography target -->\n        <!-- custom text is additional, as prefix, with no type -->\n        <xsl:when test=\"$text-style = 'global'\">\n            <xsl:if test=\"$b-has-content\">\n                <xsl:copy-of select=\"$custom-text\" />\n                <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n            </xsl:if>\n            <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                <xsl:with-param name=\"xref\" select=\".\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- custom text is additional, as prefix, with no type -->\n        <xsl:when test=\"$text-style = 'local'\">\n            <xsl:if test=\"$b-has-content\">\n                <xsl:copy-of select=\"$custom-text\" />\n                <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n            </xsl:if>\n            <xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\n        </xsl:when>\n        <xsl:when test=\"$text-style = 'type-global'\">\n            <xsl:choose>\n                <!-- content override of type-prefix -->\n                <xsl:when test=\"$b-has-content\">\n                    <xsl:copy-of select=\"$custom-text\" />\n                    <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                    <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <!-- usual, default case -->\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$target\" mode=\"type-name\" />\n                    <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                    <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"$text-style = 'type-local'\">\n            <xsl:choose>\n                <!-- content override of type-prefix -->\n                <xsl:when test=\"$b-has-content\">\n                    <xsl:copy-of select=\"$custom-text\" />\n                    <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                    <xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\n                </xsl:when>\n                <!-- usual, default case -->\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$target\" mode=\"type-name\" />\n                    <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                    <xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"($text-style = 'type-global-title') or ($text-style = 'type-local-title')\">\n            <xsl:choose>\n                <!-- content override of type-prefix -->\n                <xsl:when test=\"$b-has-content\">\n                    <xsl:copy-of select=\"$custom-text\" />\n                </xsl:when>\n                <!-- usual, default case -->\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$target\" mode=\"type-name\" />\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n            <!-- only difference in behavior is global/local number -->\n            <xsl:choose>\n                <xsl:when test=\"$text-style = 'type-global-title'\">\n                    <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:when test=\"$text-style = 'type-local-title'\">\n                    <xsl:apply-templates select=\"$target\" mode=\"serial-number\"/>\n                </xsl:when>\n                <xsl:otherwise/>\n            </xsl:choose>\n            <xsl:variable name=\"the-title\">\n                <xsl:apply-templates select=\"$target\" mode=\"title-xref\"/>\n            </xsl:variable>\n            <!-- no title, no problem -->\n            <xsl:if test=\"not($the-title = '')\">\n                <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                <!-- title might have markup (eg math in HTML), so copy -->\n                <xsl:copy-of select=\"$the-title\"/>\n            </xsl:if>\n        </xsl:when>\n        <!-- special case for phrase options and list items of anonymous lists        -->\n        <!-- catch this first and provide no text at all (could provide busted text?) -->\n        <!-- anonymous lists live in \"p\", but this is an unreliable indication        -->\n        <xsl:when test=\"($text-style = 'phrase-global' or $text-style = 'phrase-hybrid') and ($target/self::li and not($target/ancestor::list or $target/ancestor::objectives or $target/ancestor::outcomes or $target/ancestor::exercise))\">\n            <xsl:message>PTX:WARNING: a cross-reference to a list item of an anonymous list (\"<xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\") with 'phrase-global' and 'phrase-hybrid' styles for the xref text will yield no text at all, and possibly create unpredictable results in output</xsl:message>\n        </xsl:when>\n        <xsl:when test=\"$text-style = 'phrase-global' or $text-style = 'phrase-hybrid'\">\n            <!-- no content override in this case -->\n            <!-- maybe we can relax this somehow? -->\n            <xsl:if test=\"$b-has-content\">\n                <xsl:message>PTX:WARNING: providing content (\"<xsl:value-of select=\".\" />\") for an \"xref\" element is ignored for 'phrase-global' and 'phrase-hybrid' styles for xref text</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:if>\n            <!-- type-local first, no matter what    -->\n            <!-- for each of the two phrase styles   -->\n            <xsl:apply-templates select=\"$target\" mode=\"type-name\" />\n            <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n            <xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\n            <!-- climb up tree to find highest matching structure numbers -->\n            <!-- we pass through the two styles so reaction can occur     -->\n            <!-- For example for the target Theorem 37.8 of an article,   -->\n            <!-- phrase-global: \"of Section 37\" always                    -->\n            <!-- phrase-hybrid: \"of Section 37\" only if necessary         -->\n            <xsl:apply-templates select=\"$target\" mode=\"smart-xref-text\">\n                <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n                <xsl:with-param name=\"xref\" select=\".\" />\n                <xsl:with-param name=\"target\" select=\"$target\"/>\n                <xsl:with-param name=\"highest-match\" select=\"/..\" />\n                <xsl:with-param name=\"target-structure-number\">\n                    <xsl:apply-templates select=\"$target\" mode=\"structure-number\" />\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"($text-style = 'hybrid') or ($text-style = 'type-hybrid')\">\n            <xsl:choose>\n                <!-- content override of type-prefix -->\n                <!-- or addtion to plain number      -->\n                <xsl:when test=\"$b-has-content\">\n                    <xsl:copy-of select=\"$custom-text\" />\n                    <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                </xsl:when>\n                <!-- no override, use type as prefix -->\n                <xsl:when test=\"$text-style = 'type-hybrid'\">\n                    <xsl:apply-templates select=\"$target\" mode=\"type-name\" />\n                    <xsl:apply-templates select=\".\" mode=\"xref-text-separator\"/>\n                </xsl:when>\n                <!-- just a plain number, do nothing at all -->\n                <xsl:otherwise />\n            </xsl:choose>\n            <!-- For example for the target Theorem 37.8 of an article, -->\n            <!-- hybrid: 8 or if necessary, 37.8                        -->\n            <!-- type-hybrid: Theorem 8 or if necessary, Theorem 37.8   -->\n            <xsl:apply-templates select=\"$target\" mode=\"smart-xref-text\">\n                <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n                <xsl:with-param name=\"xref\" select=\".\" />\n                <xsl:with-param name=\"target\" select=\"$target\"/>\n                <xsl:with-param name=\"highest-match\" select=\"/..\" />\n                <xsl:with-param name=\"target-structure-number\">\n                    <xsl:apply-templates select=\"$target\" mode=\"structure-number\" />\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"$text-style = 'title'\">\n            <xsl:choose>\n                <!-- 2020-02-18: a content override of a title is now  -->\n                <!-- deprecated (since there is now a \"custom\" option  -->\n                <!-- for text).  But it still \"works\", with warnings   -->\n                <!-- here.  Clean this up to complete the deprecation. -->\n                <!-- (We don't do this with other deprecations since   -->\n                <!-- we can get here by a variety of routes.)          -->\n                <xsl:when test=\"$b-has-content\">\n                    <xsl:message>\n                        <xsl:text>PTX:WARNING:    </xsl:text>\n                        <xsl:text>An &lt;xref&gt; requests a 'title' as its text but also provides alternate content.  The construction is deprecated as of 2020-02-18.  Instead, specify that xref/@text should be 'custom', either globally or on a per-xref basis.</xsl:text>\n                    </xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                    <xsl:copy-of select=\"$custom-text\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$target\" mode=\"title-xref\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"$text-style = 'custom'\">\n            <!-- use the content, do not include a number, a warning -->\n            <!-- if the content is empty is provided elsewhere       -->\n            <xsl:copy-of select=\"$custom-text\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:  NO XREF TEXT GENERATED</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:apply-templates select=\".\" mode=\"latex-page-number\">\n        <xsl:with-param name=\"target\" select=\"$target\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- \"xref text\" like \"Theorem 4.5\" benefits from a non-breaking   -->\n<!-- space to keep the pieces together and discourage line-breaks  -->\n<!-- in the middle.  This is less relevant when used as a \"reason\" -->\n<!-- inside of display mathematics *and* it does not play nicely   -->\n<!-- with WeBWorK's PGML, so this template handles the necessary   -->\n<!-- exception for \"xref\" immediately inside of an \"mrow\".         -->\n<xsl:template match=\"xref|&PROOF-LIKE;\" mode=\"xref-text-separator\">\n    <xsl:choose>\n        <xsl:when test=\"parent::mrow\">\n            <xsl:text> </xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"nbsp-character\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- This is a hook to add page numbers to the end of the    -->\n<!-- xref text in LaTeX output via a \\pageref{}, optionally. -->\n<!-- Default for this hook is to do nothing.                 -->\n<xsl:template match=\"xref|&PROOF-LIKE;\" mode=\"latex-page-number\"/>\n\n<!-- A THEOREM-LIKE can have a *detached* PROOF-LIKE (which is not \"inner\" nor  -->\n<!-- \"solution\") that has @ref attribute which points to the THEOREM-LIKE being -->\n<!-- proved.  This abstract template will provide the link/knowl/whatever.      -->\n<!-- It is up to the employing conversion to place and format the result.       -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"proof-xref-theorem\">\n    <xsl:choose>\n        <!-- produce nothing when there is not even a @ref -->\n        <xsl:when test=\"not(@ref)\"/>\n        <!-- only for \"detached\" proofs -->\n        <xsl:when test=\"&INNER-PROOF-FILTER;\"/>\n        <xsl:when test=\"&SOLUTION-PROOF-FILTER;\"/>\n        <!-- now really get into it analyzing target -->\n        <xsl:otherwise>\n            <xsl:variable name=\"target\" select=\"id(@ref)\"/>\n            <xsl:choose>\n                <xsl:when test=\"not($target)\">\n                    <xsl:message>PTX:ERROR:   a cross-reference (\"ref\") from a \"<xsl:value-of select=\"local-name()\"/>\" uses a reference [<xsl:value-of select=\"@ref\"/>] that does not point to any target.  Maybe the @ref and @xml:id values do not match?</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n                </xsl:when>\n                <xsl:when test=\"not($target[&THEOREM-FILTER;])\">\n                    <xsl:message>PTX:ERROR:   a cross-reference (\"ref\") from a \"<xsl:value-of select=\"local-name()\"/>\" uses a reference [<xsl:value-of select=\"@ref\"/>] that does not point to an element that is THEOREM-LIKE (target is a \"<xsl:value-of select=\"local-name($target)\"/>\" element).</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n                </xsl:when>\n                <!-- have a good target finally, do it -->\n                <xsl:otherwise>\n                    <xsl:variable name=\"text-style\">\n                        <xsl:apply-templates select=\".\" mode=\"get-text-style\" />\n                    </xsl:variable>\n                    <xsl:apply-templates select=\".\" mode=\"xref-link\">\n                        <xsl:with-param name=\"target\" select=\"$target\" />\n                        <xsl:with-param name=\"origin\" select=\"'xref'\" />\n                        <xsl:with-param name=\"content\">\n                            <xsl:apply-templates select=\".\" mode=\"xref-text\" >\n                                <xsl:with-param name=\"target\" select=\"$target\" />\n                                <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n                                <!-- $custom-text is not an option -->\n                            </xsl:apply-templates>\n                        </xsl:with-param>\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ###################### -->\n<!-- Smart Cross-References -->\n<!-- ###################### -->\n\n<!-- We climb the tree upward (ancestors) until we hit    -->\n<!-- the \"mathbook\" element, and then quit and assess.    -->\n<!-- The \"xref\" that started all this is used for the     -->\n<!-- eventual \"hybrid\" schemes, to see how close it is.   -->\n<!-- We record the oldest ancestor (highest) with a       -->\n<!-- *number* that is the *structure number* of the       -->\n<!-- target of the cross-reference.  So we know the       -->\n<!-- element (and its type) that originates the bulk      -->\n<!-- of the target's number.                              -->\n<!--                                                      -->\n<!-- There is one subtlety.  Usually one, and only one,   -->\n<!-- ancestor has the matching number, so we could halt   -->\n<!-- once found.  However, the immediately older ancestor -->\n<!-- can have the same number.  The \"objective\" element   -->\n<!-- is this way, it shares numbering with its containing -->\n<!-- division.  So we track through all the ancestors.    -->\n<!--                                                      -->\n<!-- To see if a xref is close to its target, we add the  -->\n<!-- *single* xref node to the subtree of the (highest)   -->\n<!-- node that provides the target's structure number.    -->\n<!-- By comparing the sizes of these node-sets, we can    -->\n<!-- determine if the xref lies outside the subtree and   -->\n<!-- then stick with global numbers.                      -->\n<!--                                                      -->\n<!-- $text-style                                          -->\n<!--   gets passed through, in order to consolidate       -->\n<!-- $xref                                                -->\n<!--   gets passed through for eventual membership test   -->\n<!-- $target                                              -->\n<!--   gets passed through for producing hybrid numbers   -->\n<!-- $highest-match                                       -->\n<!--   starts empty and is updated, if it finishes        -->\n<!--   empty then the target is high in the tree          -->\n<!--   or a match is a root for the structure number      -->\n<!-- $target-structure-number                             -->\n<!--   is produced once as a string, and passed through   -->\n<!--                                                      -->\n<!-- Result is a string that completes the xref text      -->\n<!--                                                      -->\n<xsl:template match=\"*\" mode=\"smart-xref-text\">\n    <xsl:param name=\"text-style\" />\n    <xsl:param name=\"xref\" />\n    <xsl:param name=\"target\" />\n    <xsl:param name=\"highest-match\" select=\"/..\" />\n    <xsl:param name=\"target-structure-number\" />\n    <!-- step up immediately, else test on  -->\n    <!-- structure numbers is vacuous       -->\n    <xsl:variable name=\"parent\" select=\"parent::*\" />\n    <xsl:variable name=\"parent-number\">\n        <xsl:apply-templates select=\"$parent\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:choose>\n        <!-- quit at the top, and examine highest-match,    -->\n        <!-- and for phrase-hybrid, we do a membership test -->\n        <xsl:when test=\"$parent/self::mathbook|$parent/self::pretext\">\n            <xsl:variable name=\"requires-global\">\n                <xsl:choose>\n                    <!-- no match, already high up tree, so no  -->\n                    <!-- qualification is needed in either case -->\n                    <xsl:when test=\"not($highest-match)\">\n                        <xsl:text>false</xsl:text>\n                    </xsl:when>\n                    <!-- now have a match, so for phrase-global -->\n                    <!-- we will always print the global info   -->\n                    <xsl:when test=\"$text-style='phrase-global'\">\n                        <xsl:text>true</xsl:text>\n                    </xsl:when>\n                    <!-- now have a match, so for all other styles -->\n                    <!-- we check to see if xref is in subtree     -->\n                    <xsl:otherwise>\n                        <xsl:variable name=\"target-tree-size\" select=\"count($highest-match/descendant-or-self::*)\" />\n                        <xsl:variable name=\"xref-union-tree-size\" select=\"count(($xref | $highest-match/descendant-or-self::*))\" />\n                        <xsl:value-of select=\"$xref-union-tree-size = $target-tree-size + 1\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <!-- now know local/global, write trailing portion of text -->\n            <!-- here based on the style and the global requirement    -->\n            <!-- NB: the \"choose\" is mirrored in the more specific template, next -->\n            <!-- Question:  why does \"phrase-global\" come through here?           -->\n            <xsl:choose>\n                <!-- phrase styles may need remainder of phrase -->\n                <xsl:when test=\"(($text-style='phrase-global') or ($text-style='phrase-hybrid')) and ($requires-global = 'true')\">\n                    <!-- connector, internationalize -->\n                    <xsl:text> of </xsl:text>\n                    <xsl:apply-templates select=\"$highest-match\" mode=\"type-name\" />\n                    <xsl:call-template name=\"nbsp-character\"/>\n                    <xsl:apply-templates select=\"$highest-match\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <!-- hybrid styles need number for remainder -->\n                <xsl:when test=\"($text-style='hybrid') or ($text-style='type-hybrid')\">\n                    <xsl:choose>\n                        <xsl:when test=\"$requires-global = 'true'\">\n                            <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                                <xsl:with-param name=\"xref\" select=\".\" />\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n        <!-- possible missing implementation bug in numbering -->\n        <xsl:when test=\"$parent-number = '[NUM]'\">\n            <xsl:message>PTX:BUG:     Looks like a [<xsl:value-of select=\"local-name($parent)\" />] element has an ambiguous number, found while making cross-reference text</xsl:message>\n        </xsl:when>\n        <!-- no match, just recurse, and preserve $highest-match -->\n        <xsl:when test=\"not($parent-number = $target-structure-number)\">\n            <xsl:apply-templates select=\"$parent\" mode=\"smart-xref-text\">\n                <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n                <xsl:with-param name=\"xref\" select=\"$xref\" />\n                <xsl:with-param name=\"target\" select=\"$target\"/>\n                <xsl:with-param name=\"highest-match\" select=\"$highest-match\" />\n                <xsl:with-param name=\"target-structure-number\" select=\"$target-structure-number\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- a match, record in updated $highest-match -->\n        <xsl:when test=\"$parent-number = $target-structure-number\">\n            <xsl:apply-templates select=\"$parent\" mode=\"smart-xref-text\">\n                <xsl:with-param name=\"text-style\" select=\"$text-style\" />\n                <xsl:with-param name=\"xref\" select=\"$xref\" />\n                <xsl:with-param name=\"target\" select=\"$target\"/>\n                <xsl:with-param name=\"highest-match\" select=\"$parent\" />\n                <xsl:with-param name=\"target-structure-number\" select=\"$target-structure-number\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- impossible to get here -->\n    </xsl:choose>\n</xsl:template>\n\n<!-- A hybrid scheme for a list item is only for list items         -->\n<!-- of an ordered list, we drop the list number (structure number) -->\n<!-- when xref and target are both inside the same list.            -->\n<!-- No need to recurse.  $target is context, allowing a match.     -->\n\n<xsl:template match=\"list//li\" mode=\"smart-xref-text\">\n    <xsl:param name=\"text-style\" />\n    <xsl:param name=\"xref\" />\n    <xsl:param name=\"target\" />\n\n    <xsl:variable name=\"targets-list\" select=\"$target/ancestor::list\" />\n    <xsl:variable name=\"xrefs-list\"   select=\"$xref/ancestor::list\" />\n\n    <!-- To be a local xref, the \"xref\" must live in some \"list\", and -->\n    <!-- it must be the same \"list\" as the \"li\" (which is in a list   -->\n    <!-- due to the match).  We use the negation to keep the logic    -->\n    <!-- the same as in the more general template, above              -->\n    <xsl:variable name=\"requires-global\" select=\"not((count($xrefs-list) = 1) and (count($targets-list|$xrefs-list) = 1))\" />\n\n    <!-- This \"choose\" largely matches above, and so maybe  -->\n    <!-- could be consolidated into a parameterized template -->\n    <xsl:choose>\n        <!-- phrase styles may need remainder of phrase -->\n        <xsl:when test=\"(($text-style='phrase-global') or ($text-style='phrase-hybrid')) and ($requires-global = 'true')\">\n            <!-- connector, internationalize -->\n            <xsl:text> of </xsl:text>\n            <xsl:apply-templates select=\"$targets-list\" mode=\"type-name\" />\n            <xsl:call-template name=\"nbsp-character\"/>\n            <xsl:apply-templates select=\"$targets-list\" mode=\"xref-number\">\n                <xsl:with-param name=\"xref\" select=\".\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- hybrid styles need number for remainder -->\n        <xsl:when test=\"($text-style='hybrid') or ($text-style='type-hybrid')\">\n            <xsl:choose>\n                <xsl:when test=\"$requires-global = 'true'\">\n                    <xsl:apply-templates select=\"$target\" mode=\"xref-number\">\n                        <xsl:with-param name=\"xref\" select=\".\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$target\" mode=\"serial-number\" />\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- This is an abstract template, to accomodate -->\n<!-- hard-coded HTML numbers and for LaTeX the   -->\n<!-- \\ref and \\label mechanism                   -->\n<xsl:template match=\"*\" mode=\"xref-number\">\n    <xsl:text>[XREFNUM]</xsl:text>\n</xsl:template>\n\n<!-- This is a base implementation for the xref-link -->\n<!-- template, which just repeats the content, with  -->\n<!-- an indication that this needs to be overridden  -->\n<!--   context -                                     -->\n<!--      an xref usually, typically its parent      -->\n<!--      is inspected to vary link style            -->\n<!--   content -                                     -->\n<!--     an RTF of the visual text,                  -->\n<!--     suitable for location of the link           -->\n<!--   target -                                      -->\n<!--     the target of the link, so the right        -->\n<!--     identification can be produced              -->\n<!--  implementation is based on location            -->\n<xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"target\" />\n    <xsl:param name=\"origin\"/>\n    <xsl:param name=\"content\" />\n\n    <xsl:message>PTX:BUG:     a new conversion needs an implementation of the modal \"xref-link\" template.  Search your output for \"[LINK:\"</xsl:message>\n    <xsl:text>[LINK: </xsl:text>\n    <xsl:copy-of select=\"$content\" />\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<!-- For cross-references in books with parts, we only     -->\n<!-- want a part number in the cross-reference when the    -->\n<!-- \"xref\" and the \"$target\" are \"far apart,\" so the part -->\n<!-- number is necessary to disambiguate the result.  This -->\n<!-- utility uses the target as context and the xref as a  -->\n<!-- parameter.  It evaluates to 'true' if and only if the -->\n<!-- two nodes cross a part boundary *and* the target lies -->\n<!-- inside a part.                                        -->\n<!-- NB: \"ancestor-or-self\" is not used here               -->\n<!--   (a) the $xref is not a part                         -->\n<!--   (b) if the target is a part, its number will be     -->\n<!--       its serial number, and will not need a prefix,  -->\n<!--       so this will return false                       -->\n<xsl:template match=\"*\" mode=\"crosses-part-boundary\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n    <xsl:choose>\n        <!-- if parts are not structural, no need -->\n        <xsl:when test=\"$parts='absent' or $parts='decorative'\">\n            <xsl:value-of select=\"false()\" />\n        </xsl:when>\n        <!-- if target is not in a part, no need -->\n        <xsl:when test=\"not(ancestor::part)\">\n            <xsl:value-of select=\"false()\" />\n        </xsl:when>\n        <!-- xref can't be in target's part, so necessary -->\n        <xsl:when test=\"not($xref/ancestor::part)\">\n            <xsl:value-of select=\"true()\" />\n        </xsl:when>\n        <!-- target and xref both in parts.  Same one? -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"count(ancestor::part|$xref/ancestor::part) = 2\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- #################### -->\n<!-- Common Constructions -->\n<!-- #################### -->\n\n<!-- With no special formatting, \"PreTeXt\" can be in -common -->\n<!-- Ditto PreFigure, a great companion project.             -->\n<!-- Use of \"pretext\" as a root container should get higher  -->\n<!-- priority when used with /, or as a variable             -->\n<!-- NB: there is a \\XeTeX macro which renders the first \"E\" -->\n<!-- backwards, but it is only defined when actually using   -->\n<!-- xelatex (not pdflatex).  The LaTeX/PDF conversion could -->\n<!-- conditionally define an internal macro based on the     -->\n<!-- engine.  But we do not talk about XeTeX as much as      -->\n<!-- XeLaTeX.                                                -->\n<!-- NB: We have not attempted to make the \"xe-\" variants    -->\n<!-- with fancy typography for HTML output, but one could    -->\n<!-- mimic the HTML/CSS used for TeX and LaTeX in that       -->\n<!-- conversion.                                             -->\n<xsl:template match=\"pretext\">\n    <xsl:text>PreTeXt</xsl:text>\n</xsl:template>\n<!-- NB: when PreFigure has a namespace then the empty  -->\n<!-- element text generator can be a simpler match here -->\n<xsl:template match=\"prefigure[not(node())]\">\n    <xsl:text>PreFigure</xsl:text>\n</xsl:template>\n<xsl:template match=\"xetex\">\n    <xsl:text>XeTeX</xsl:text>\n</xsl:template>\n<xsl:template match=\"xelatex\">\n    <xsl:text>XeLaTeX</xsl:text>\n</xsl:template>\n\n\n<!-- We place the 13 Latin abbreviations here since they -->\n<!-- are fairly basic.  The final period is implemented  -->\n<!-- as a named template, so we can override it in the   -->\n<!-- LaTeX conversion and get reasonable behavior (i.e.  -->\n<!-- not confused as the end of a sentence).             -->\n\n<!-- See: Chicago Manual of Style, 15e, 15.44, 15.55     -->\n<!-- See: Bringhurst, 4e, 5.4.4                          -->\n\n<xsl:template name=\"abbreviation-period\">\n    <xsl:text>.</xsl:text>\n</xsl:template>\n\n<!-- anno Domini, in the year of the Lord -->\n<!-- CMOS, Bringurst 5.4.4, no periods    -->\n<xsl:template match=\"ad\">\n    <xsl:text>AD</xsl:text>\n</xsl:template>\n<!-- ante meridiem, before midday      -->\n<!-- CMOS, Bringurst 5.4.4, no periods -->\n<xsl:template match=\"am\">\n    <xsl:text>AM</xsl:text>\n</xsl:template>\n<!-- before Christ                     -->\n<!-- CMOS, Bringurst 5.4.4, no periods -->\n<xsl:template match=\"bc\">\n    <xsl:text>BC</xsl:text>\n</xsl:template>\n<!-- circa, about                         -->\n<!-- CMOS, ca. preferable (c. is century) -->\n<!-- \"circa\" deprecated 2018-12-30        -->\n<xsl:template match=\"ca\">\n    <xsl:text>ca</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n<!-- exempli gratia, for example -->\n<xsl:template match=\"eg\">\n    <xsl:text>e.g</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n<!-- et alia, and others -->\n<xsl:template match=\"etal\">\n    <xsl:text>et al</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n<!-- et caetera, and the rest -->\n<xsl:template match=\"etc\">\n    <xsl:text>etc</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n<!-- id est, in other words -->\n<xsl:template match=\"ie\">\n    <xsl:text>i.e</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n<!-- nota bene, note well -->\n<!-- CMOS, no periods     -->\n<xsl:template match=\"nb\">\n    <xsl:text>NB</xsl:text>\n</xsl:template>\n<!-- post meridiem, after midday       -->\n<!-- CMOS, Bringurst 5.4.4, no periods -->\n<xsl:template match=\"pm\">\n    <xsl:text>PM</xsl:text>\n</xsl:template>\n<!-- post scriptum, after what has been written -->\n<!-- CMOS, no periods                           -->\n<xsl:template match=\"ps\">\n    <xsl:text>PS</xsl:text>\n</xsl:template>\n<!-- versus, against                 -->\n<!-- CMOS, v. only in legal contexts -->\n<xsl:template match=\"vs\">\n    <xsl:text>vs</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n<!-- videlicet, namely -->\n<xsl:template match=\"viz\">\n    <xsl:text>viz</xsl:text>\n    <xsl:call-template name=\"abbreviation-period\"/>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Special Characters -->\n<!-- ################## -->\n\n<!-- Dashes and hyphens - worth reviewing       -->\n<!-- http://www.cs.tut.fi/~jkorpela/dashes.html -->\n\n<xsl:template name=\"nbsp-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'nbsp'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"nbsp\">\n    <xsl:call-template name=\"nbsp-character\"/>\n</xsl:template>\n\n<xsl:template name=\"ndash-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'ndash'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"ndash\">\n    <xsl:call-template name=\"ndash-character\"/>\n</xsl:template>\n\n<!-- An mdash may have thin space around it, otherwise it        -->\n<!-- should have none.  It might be difficult to enforce this    -->\n<!-- (we could!), but we don't.  Instead, we make the thin-space -->\n<!-- version a publisher option.  So we need two base characters -->\n<!-- as abstract templates and do everything else here.          -->\n\n<xsl:template name=\"mdash-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'mdash'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"thin-space-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'thin-space'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- The variable, surrounding space. This approach is   -->\n<!-- executed once, so not local to template for \"mdash\" -->\n<xsl:variable name=\"emdash-space-char\">\n    <xsl:choose>\n        <xsl:when test=\"$emdash-space='none'\">\n            <xsl:text />\n        </xsl:when>\n        <xsl:when test=\"$emdash-space='thin'\">\n            <xsl:call-template name=\"thin-space-character\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:template match=\"mdash\">\n    <xsl:value-of select=\"$emdash-space-char\"/>\n    <xsl:call-template name=\"mdash-character\"/>\n    <xsl:value-of select=\"$emdash-space-char\"/>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Special Characters -->\n<!-- ################## -->\n\n\n<!-- These are characters which may look really bad                 -->\n<!-- if faked from a keyboard (double brackets),                    -->\n<!-- or lack an ASCII equivalent (like per-mille).  So we leave     -->\n<!-- them undefined here as named templates with warnings and       -->\n<!-- alarm bells, so that if a new conversion does not have an      -->\n<!-- implementation, that will be discovered early in development.  -->\n\n<xsl:template name=\"warn-unimplemented-character\">\n    <xsl:param name=\"char-name\"/>\n     <xsl:message>PTX:BUG:   the character named \"<xsl:value-of select=\"$char-name\"/>\" needs an implementation in the current conversion</xsl:message>\n     <xsl:text>[[[</xsl:text>\n     <xsl:value-of select=\"$char-name\"/>\n     <xsl:text>]]]</xsl:text>\n</xsl:template>\n\n<!-- A given document may use for different characters for quotations:         -->\n<!--                                                                           -->\n<!--     left/right (open/close)  by  primary/secondary                        -->\n<!--                                                                           -->\n<!-- We then define elements for these characters (should be rarely used)      -->\n<!-- and elements for groupings that will atart with a \"left\" character        -->\n<!-- and end with a \"right\" character.  Some conversions define these four     -->\n<!-- characters outright and universally (e.g. braille), some have more        -->\n<!-- involved processes that react to the ambient language (e.g. HTML). So     -->\n<!-- the follwing for templates are an interface of sorts for implementations. -->\n\n<!-- Left Single Quote -->\n<xsl:template match=\"*\" mode=\"lsq-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'lsq'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"lsq\">\n    <xsl:apply-templates select=\".\" mode=\"lsq-character\"/>\n</xsl:template>\n\n<!-- Right Single Quote -->\n<xsl:template match=\"*\" mode=\"rsq-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'rsq'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"rsq\">\n    <xsl:apply-templates select=\".\" mode=\"rsq-character\"/>\n</xsl:template>\n\n<!-- Left (Double) Quote -->\n<xsl:template match=\"*\" mode=\"lq-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'lq'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"lq\">\n    <xsl:apply-templates select=\".\" mode=\"lq-character\"/>\n</xsl:template>\n\n<!-- Right (Double) Quote -->\n<xsl:template match=\"*\" mode=\"rq-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'rq'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"rq\">\n    <xsl:apply-templates select=\".\" mode=\"rq-character\"/>\n</xsl:template>\n\n<!-- Left Double Bracket -->\n<xsl:template name=\"ldblbracket-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'ldblbracket'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"ldblbracket\">\n    <xsl:call-template name=\"ldblbracket-character\"/>\n</xsl:template>\n\n<!-- Right Double Bracket -->\n<xsl:template name=\"rdblbracket-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'rdblbracket'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"rdblbracket\">\n    <xsl:call-template name=\"rdblbracket-character\"/>\n</xsl:template>\n\n<!-- Left Angle Bracket -->\n<xsl:template name=\"langle-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'langle'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"langle\">\n    <xsl:call-template name=\"langle-character\"/>\n</xsl:template>\n\n<!-- Right Angle Bracket -->\n<xsl:template name=\"rangle-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'rangle'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"rangle\">\n    <xsl:call-template name=\"rangle-character\"/>\n</xsl:template>\n\n<!-- Ellipsis (dots), for text, not math -->\n<xsl:template name=\"ellipsis-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'ellipsis'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"ellipsis\">\n    <xsl:call-template name=\"ellipsis-character\"/>\n</xsl:template>\n\n<!-- Midpoint -->\n<!-- A centered dot used sometimes like a decorative dash -->\n<xsl:template name=\"midpoint-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'midpoint'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"midpoint\">\n    <xsl:call-template name=\"midpoint-character\"/>\n</xsl:template>\n\n<!-- Swung Dash -->\n<!-- A decorative dash, like a tilde, but bigger, and centered -->\n<xsl:template name=\"swungdash-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'swungdash'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"swungdash\">\n    <xsl:call-template name=\"swungdash-character\"/>\n</xsl:template>\n\n<!-- Per Mille -->\n<!-- Or, per thousand, like a percent sign -->\n<xsl:template name=\"permille-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'permille'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"permille\">\n    <xsl:call-template name=\"permille-character\"/>\n</xsl:template>\n\n<!-- Pilcrow -->\n<!-- Often used to mark the start of a paragraph -->\n<xsl:template name=\"pilcrow-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'pilcrow'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"pilcrow\">\n    <xsl:call-template name=\"pilcrow-character\"/>\n</xsl:template>\n\n<!-- Section Mark -->\n<!-- The stylized double-S to indicate section numbers -->\n<xsl:template name=\"section-mark-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'section-mark'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"section-mark\">\n    <xsl:call-template name=\"section-mark-character\"/>\n</xsl:template>\n\n<!-- Minus -->\n<!-- A hyphen/dash for use in text as subtraction or negation-->\n<xsl:template name=\"minus-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'minus'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"minus\">\n    <xsl:call-template name=\"minus-character\"/>\n</xsl:template>\n\n<!-- Times -->\n<!-- A \"multiplication sign\" symbol for use in text -->\n<xsl:template name=\"times-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'times'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"times\">\n    <xsl:call-template name=\"times-character\"/>\n</xsl:template>\n\n<!-- Solidus -->\n<!-- Fraction bar, not as steep as a forward slash -->\n<xsl:template name=\"solidus-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'solidus'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"solidus\">\n    <xsl:call-template name=\"solidus-character\"/>\n</xsl:template>\n\n<!-- Obelus -->\n<!-- A \"division\" symbol for use in text -->\n<xsl:template name=\"obelus-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'obelus'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"obelus\">\n    <xsl:call-template name=\"obelus-character\"/>\n</xsl:template>\n\n<!-- Plus/Minus -->\n<!-- The combined symbol -->\n<xsl:template name=\"plusminus-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'plusminus'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"plusminus\">\n    <xsl:call-template name=\"plusminus-character\"/>\n</xsl:template>\n\n<!-- Copyright -->\n<!-- Bringhurst: on baseline (i.e. not superscript) -->\n<xsl:template name=\"copyright-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'copyright'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"copyright\">\n    <xsl:call-template name=\"copyright-character\"/>\n</xsl:template>\n\n<!-- Phonomark -->\n<!-- copyright on sound recordings                 -->\n<!-- Bringhurst: counterpart copyright on baseline -->\n<xsl:template name=\"phonomark-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'phonomark'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"phonomark\">\n    <xsl:call-template name=\"phonomark-character\"/>\n</xsl:template>\n\n<!-- Copyleft -->\n<!-- Bringhurst: counterpart copyright on baseline -->\n<xsl:template name=\"copyleft-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'copyleft'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"copyleft\">\n    <xsl:call-template name=\"copyleft-character\"/>\n</xsl:template>\n\n<!-- Registered -->\n<!-- Bringhurst: should be superscript -->\n<xsl:template name=\"registered-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'registered'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"registered\">\n    <xsl:call-template name=\"registered-character\"/>\n</xsl:template>\n\n<!-- Trademark -->\n<!-- Bringhurst: should be superscript -->\n<xsl:template name=\"trademark-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'trademark'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"trademark\">\n    <xsl:call-template name=\"trademark-character\"/>\n</xsl:template>\n\n<!-- Servicemark -->\n<!-- Bringhurst: counterpart trademark should be superscript -->\n<xsl:template name=\"servicemark-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'servicemark'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"servicemark\">\n    <xsl:call-template name=\"servicemark-character\"/>\n</xsl:template>\n\n<!-- Coordinates, Temperature, English distance -->\n<!-- Intended for simple non-technical uses, without too -->\n<!-- much overhead.  The SI unit markup would be better  -->\n<!-- suited for scientific or technical work.            -->\n\n<!-- Degree -->\n<xsl:template name=\"degree-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'degree'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"degree\">\n    <xsl:call-template name=\"degree-character\"/>\n</xsl:template>\n\n<!-- Prime -->\n<xsl:template name=\"prime-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'prime'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"prime\">\n    <xsl:call-template name=\"prime-character\"/>\n</xsl:template>\n\n<!-- Double Prime -->\n<xsl:template name=\"dblprime-character\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'dblprime'\"/>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"dblprime\">\n    <xsl:call-template name=\"dblprime-character\"/>\n</xsl:template>\n\n<!-- Characters for Tagging Equations -->\n\n<xsl:template name=\"tag-star\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'tag-star'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"tag-dagger\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'tag-dagger'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"tag-daggerdbl\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'tag-daggerdbl'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"tag-hash\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'tag-hash'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- AMS symbol designed for both text and math modes -->\n<xsl:template name=\"tag-maltese\">\n    <xsl:call-template name=\"warn-unimplemented-character\">\n        <xsl:with-param name=\"char-name\" select=\"'tag-maltese'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Dots\nhttp://tex.stackexchange.com/questions/19180/which-dot-character-to-use-in-which-context\n\nSwung Dash\nhttp://andrewmccarthy.ie/2014/11/06/swung-dash-in-latex/\n -->\n<!-- ######### -->\n<!-- Groupings -->\n<!-- ######## -->\n\n<!-- Characters with left and right variants naturally       -->\n<!-- give rise to tags with begin and end variants           -->\n\n<xsl:template match=\"q\">\n    <xsl:apply-templates select=\".\" mode=\"lq-character\"/>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"rq-character\"/>\n</xsl:template>\n\n<xsl:template match=\"sq\">\n    <xsl:apply-templates select=\".\" mode=\"lsq-character\"/>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"rsq-character\"/>\n</xsl:template>\n\n<xsl:template match=\"dblbrackets\">\n    <xsl:call-template name=\"ldblbracket-character\"/>\n    <xsl:apply-templates/>\n    <xsl:call-template name=\"rdblbracket-character\"/>\n</xsl:template>\n\n<xsl:template match=\"angles\">\n    <xsl:call-template name=\"langle-character\"/>\n    <xsl:apply-templates/>\n    <xsl:call-template name=\"rangle-character\"/>\n</xsl:template>\n\n<!-- ########## -->\n<!-- XML Syntax -->\n<!-- ########## -->\n\n<!-- So we can write knowledgeably about XML in documentation -->\n<!-- NB: we can use RTFs to keep this in -common since the    -->\n<!-- content of each element is so simple                     -->\n\n<!-- A tag, with angle brackets and monospace font -->\n<xsl:template match=\"tag\">\n    <xsl:call-template name=\"code-wrapper\">\n        <xsl:with-param name=\"content\">\n            <xsl:text>&lt;</xsl:text>\n            <xsl:value-of select=\".\"/>\n            <xsl:text>&gt;</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- An empty tag, with angle brackets and monospace font -->\n<xsl:template match=\"tage\">\n    <xsl:call-template name=\"code-wrapper\">\n        <xsl:with-param name=\"content\">\n            <xsl:text>&lt;</xsl:text>\n            <xsl:value-of select=\".\"/>\n            <xsl:text>/&gt;</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- An attribute, with @ and monospace font -->\n<xsl:template match=\"attr\">\n    <xsl:call-template name=\"code-wrapper\">\n        <xsl:with-param name=\"content\">\n            <xsl:text>@</xsl:text>\n            <xsl:value-of select=\".\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Non-Semantic Markup -->\n<!-- ################### -->\n\n<!-- It is useful, initially for bibliographies to be able    -->\n<!-- to render some chunks of text as simply bold or italic.  -->\n<!--                                                          -->\n<!-- So we make an abstract modal templates for this purpose, -->\n<!-- with implementations in derived stylesheets.  We are     -->\n<!-- also able to employ these to define \"internal\" markup,   -->\n<!-- which we use on externally produced source.              -->\n\n<!-- These stubs alert a developer to the need for      -->\n<!-- implementation in a derived stylesheet.  These     -->\n<!-- allow us to define our own bibliography management -->\n<!-- here, not repeatedly in derived stylesheets.       -->\n\n<xsl:template match=\"*\" mode=\"italic\">\n    <xsl:message>PTX:BUG:  current conversion needs an implementation of the italic font</xsl:message>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"bold\">\n    <xsl:message>PTX:BUG:  current conversion needs an implementation of the bold font</xsl:message>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"monospace\">\n    <xsl:message>PTX:BUG:  current conversion needs an implementation of the monospace font</xsl:message>\n</xsl:template>\n\n<xsl:template name=\"biblio-period\">\n    <xsl:message>PTX:BUG:  current conversion needs an implementation of a bibliographic period</xsl:message>\n</xsl:template>\n\n<!-- Single implementations of highly non-semantic elements    -->\n<!-- which trade on the modal templates.  We can use these in  -->\n<!-- manufactured text which is not authored, nor rarely seen. -->\n\n<xsl:template match=\"pi:italic\">\n    <xsl:apply-templates select=\".\" mode=\"italic\"/>\n</xsl:template>\n\n<xsl:template match=\"pi:bold\">\n    <xsl:apply-templates select=\".\" mode=\"bold\"/>\n</xsl:template>\n\n<!-- ############## -->\n<!-- Bibliographies -->\n<!-- ############## -->\n\n<!-- Note: this general approach to \"biblio\" entries is by-passed     -->\n<!-- in the HTML conversion, due to larger architectural limitations. -->\n\n<!-- Historical: first pass, mixed content, with a  -->\n<!-- few elements implemented for visual appearance -->\n<xsl:template match=\"biblio[@type = 'raw']\">\n    <xsl:apply-templates select=\".\" mode=\"bibentry-wrapper\">\n        <xsl:with-param name=\"content\">\n            <!-- mixed-content, text is relevant -->\n            <xsl:apply-templates select=\"text()|*\"/>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- \"BibTeX style\": initiated by David Farmer  -->\n<!-- December 2021, see commit 44c9f8e00d525796 -->\n<!-- Structured, but rendered in document order -->\n<xsl:template match=\"biblio[@type = 'bibtex']\">\n    <xsl:apply-templates select=\".\" mode=\"bibentry-wrapper\">\n        <xsl:with-param name=\"content\">\n            <!-- structured, elements only, document order -->\n            <xsl:apply-templates select=\"*\"/>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- If a plain \"biblio\" survives pre-processing, it means there -->\n<!-- is no CSL stylesheet specified and we just do our best to   -->\n<!-- make something reasonable.  We do assume the author knows   -->\n<!-- this, and has authored the elements in the desired order    -->\n<!-- (processing is in \"document order\").                        -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]\">\n    <xsl:apply-templates select=\".\" mode=\"bibentry-wrapper\">\n        <xsl:with-param name=\"content\">\n            <!-- structured, elements only, document order -->\n            <xsl:apply-templates select=\"*\"/>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"biblio\" mode=\"bibentry-wrapper\">\n    <xsl:message>PTX:BUG:  current conversion needs an implementation of the \"bibentry-wrapper\" template</xsl:message>\n</xsl:template>\n\n\n<!-- Raw Bibliographic Entry Formatting              -->\n<!-- Markup really, not full-blown data preservation -->\n\n<xsl:template match=\"pi:csl-citation\">\n    <!-- Some citations have titles, some titles have  -->\n    <!-- math, and so cannot just select \"text + xref\" -->\n    <xsl:apply-templates select=\"node()\"/>\n</xsl:template>\n\n<!-- Title in italics -->\n<xsl:template match=\"biblio[@type='raw']/title\">\n    <xsl:apply-templates select=\".\" mode=\"italic\"/>\n</xsl:template>\n\n<!-- No treatment for journal -->\n<xsl:template match=\"biblio[@type='raw']/journal\">\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- Volume in bold -->\n<xsl:template match=\"biblio[@type='raw']/volume\">\n    <xsl:apply-templates select=\".\" mode=\"bold\"/>\n</xsl:template>\n\n<!-- Year in parentheses -->\n<xsl:template match=\"biblio[@type='raw']/year\">\n    <xsl:text>(</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>)</xsl:text>\n</xsl:template>\n\n<!-- Number -->\n<xsl:template match=\"biblio[@type='raw']/number\">\n    <xsl:text>no</xsl:text>\n    <xsl:call-template name=\"biblio-period\"/>\n    <xsl:call-template name=\"thin-space-character\"/>\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- Ibid, nee ibidem, empty element -->\n<xsl:template match=\"biblio[@type='raw']/ibid\">\n    <xsl:text>Ibid</xsl:text>\n    <xsl:call-template name=\"biblio-period\"/>\n    <!-- Generally has a trailing comma, so no thin space -->\n</xsl:template>\n\n\n<!-- Fully marked-up bibtex-style bibliographic entry formatting -->\n<!-- Current treatment assumes elements are in the correct order -->\n\n<!-- Comma after author or editor -->\n<xsl:template match=\"biblio[@type='bibtex']/author\">\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>, </xsl:text>\n</xsl:template>\n<xsl:template match=\"biblio[@type='bibtex']/editor\">\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>, </xsl:text>\n</xsl:template>\n\n<!-- Title in italics, followed by comma -->\n<xsl:template match=\"biblio[@type='bibtex']/title\">\n    <xsl:apply-templates select=\".\" mode=\"italic\"/>\n    <xsl:text>, </xsl:text>\n</xsl:template>\n\n<!-- Space after journal -->\n<xsl:template match=\"biblio[@type='bibtex']/journal\">\n    <xsl:apply-templates select=\"text()|m\"/>\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n<!-- Volume in bold -->\n<xsl:template match=\"biblio[@type='bibtex']/volume\">\n    <xsl:apply-templates select=\".\" mode=\"bold\"/>\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n<!-- Series is plain (but space after) -->\n<xsl:template match=\"biblio[@type='bibtex']/series\">\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n<!-- Publisher is plain (but semicolon after) -->\n<xsl:template match=\"biblio[@type='bibtex']/publisher\">\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>; </xsl:text>\n</xsl:template>\n\n<!-- Year in parentheses -->\n<xsl:template match=\"biblio[@type='bibtex']/year\">\n    <xsl:text>(</xsl:text>\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>) </xsl:text>\n</xsl:template>\n\n<!-- Number: no. and comma after -->\n<!-- Note: original pure LaTeX implemenation did not have -->\n<!-- a trailing comma, the pure HTML implementation did   -->\n<xsl:template match=\"biblio[@type='bibtex']/number\">\n    <xsl:text>no</xsl:text>\n    <xsl:call-template name=\"biblio-period\"/>\n    <xsl:call-template name=\"thin-space-character\"/>\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>, </xsl:text>\n</xsl:template>\n\n<!-- A \"pubnote\", which could contain any publication information -->\n<xsl:template match=\"biblio[@type='bibtex']/pubnote\">\n    <xsl:text> [</xsl:text>\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<!-- Pages should come last, so put a period.    -->\n<!-- Two forms: @start and @end,                 -->\n<!-- or total number as content (as for a book). -->\n<xsl:template match=\"biblio[@type='bibtex']/pages[not(@start)]\">\n    <xsl:apply-templates select=\"text()\"/>\n    <xsl:text>.</xsl:text>\n</xsl:template>\n<xsl:template match=\"biblio[@type='bibtex']/pages[@start]\">\n    <xsl:text>pp</xsl:text>\n    <xsl:call-template name=\"biblio-period\"/>\n    <xsl:call-template name=\"thin-space-character\"/>\n    <xsl:value-of select=\"@start\"/><xsl:text>-</xsl:text><xsl:value-of select=\"@end\"/>\n    <xsl:text>.</xsl:text>\n</xsl:template>\n\n<!-- Always: authors first, no leading separator -->\n<!-- Others: leading separators                  -->\n<!-- Document order                              -->\n<!-- Final period when no following-siblings     -->\n\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/*\">\n    <xsl:message>PTX:WARNING:  a child of \"biblio\" (<xsl:value-of select=\"local-name()\"/>) is not being processed.  Please report me so this can be fixed.</xsl:message>\n</xsl:template>\n\n<!-- Authors, no lead-in, no trailing space -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/author\">\n    <xsl:for-each select=\"name\">\n        <xsl:choose>\n            <!-- First, name with family name first -->\n            <xsl:when test=\"not(preceding-sibling::name)\">\n                <xsl:apply-templates select=\"family\"/>\n                <xsl:text>, </xsl:text>\n                <xsl:apply-templates select=\"given\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"given\"/>\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\"family\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:choose>\n            <!-- separators come before subsequent items -->\n            <xsl:when test=\"count(following-sibling::name) = 0\"/>\n            <!-- one more left, use \"and\" -->\n            <xsl:when test=\"count(following-sibling::name) = 1\">\n                <xsl:text> and </xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>; </xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:for-each>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Title, in italics -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/title\">\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"italic\"/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Collection title -->\n<!-- Once had \"lq-character\" and \"rq-character\", but -->\n<!-- removed for consistency with other formats      -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/collection-title\">\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Publisher -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/publisher\">\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Publisher place-->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/publisher-place\">\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Collection title -->\n<!-- Once had \"lq-character\" and \"rq-character\", but -->\n<!-- removed for consistency with other formats      -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/collection-title\">\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Volume in bold -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/volume\">\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"bold\"/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Number, presumes it follows volume -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/number\">\n    <xsl:text> no. </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Date as a year, in parentheses -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/issued\">\n    <xsl:text> </xsl:text>\n    <xsl:text>(</xsl:text>\n    <xsl:value-of select=\"date/@year\"/>\n    <xsl:text>)</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- Pages as a range             -->\n<!-- Differs from \"bibtex\" format -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/page\">\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<!-- URL (upper-case?) -->\n<xsl:template match=\"biblio[not(@type = 'raw') and not(@type = 'bibtex')]/URL\">\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"monospace\"/>\n    <xsl:apply-templates select=\".\" mode=\"plain-biblio-period\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"plain-biblio-period\">\n    <xsl:if test=\"not(following-sibling::*)\">\n        <xsl:text>.</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############ -->\n<!-- Conveniences -->\n<!-- ############ -->\n\n<!-- Conveniences, possibly overridden in format-specific conversions -->\n<!-- NB: we need to distinguish empty elements in some cases.  Since  -->\n<!-- pre-processing is likely to add some attributes, and perhaps an  -->\n<!-- element could have an opening and ending tag split across lines, -->\n<!-- we just presume the non-empty case is indicated by elements as   -->\n<!-- children.  Also, the schema should indicate that there are       -->\n<!-- extraneous authored elements, so the less-severe testing is not  -->\n<!-- a contract.                                                      -->\n<!-- TODO: kern, etc. into LaTeX, HTML versions -->\n<xsl:template match=\"webwork[not(* or @copy or @source)]\">\n    <xsl:text>WeBWorK</xsl:text>\n</xsl:template>\n\n<!-- ##############-->\n<!-- Prophylactics -->\n<!-- ############# -->\n\n<!-- We nullify certain elements here that should only be active -->\n<!-- in some formats, and templates there can override these     -->\n\n<xsl:template match=\"instruction\" />\n\n<!-- ################### -->\n<!-- Errors and Warnings -->\n<!-- ################### -->\n\n<!-- Sometimes we want a big warning as part of  -->\n<!-- every use of some conversion.  This is it.  -->\n<!-- Feed a linefeed in if you want line breaks. -->\n<!-- Designed for an 80 column terminal.         -->\n<xsl:template name=\"banner-warning\">\n    <xsl:param name=\"warning\" />\n    <xsl:message>********************************************************************************</xsl:message>\n    <xsl:call-template name=\"warning-line-by-line\">\n        <xsl:with-param name=\"warning\" select=\"$warning\" />\n    </xsl:call-template>\n    <xsl:message>********************************************************************************</xsl:message>\n</xsl:template>\n\n<xsl:template name=\"warning-line-by-line\">\n    <xsl:param name=\"warning\" />\n    <xsl:variable name=\"after\" select=\"substring-before($warning,'&#xa;')\"/>\n    <xsl:choose>\n        <!-- no line breaks in warning, just print it -->\n        <xsl:when test=\"substring-before($warning,'&#xa;') = ''\">\n            <xsl:message><xsl:value-of select=\"$warning\" /></xsl:message>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message><xsl:value-of select=\"substring-before($warning,'&#xa;')\" /></xsl:message>\n            <xsl:call-template name=\"warning-line-by-line\">\n                <xsl:with-param name=\"warning\" select=\"substring-after($warning,'&#xa;')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We search up the tree, looking for something -->\n<!-- an author will recognize, and then report it -->\n<!-- Useful for warnings that do not contain any  -->\n<!-- identifying information themselves           -->\n<xsl:template match=\"*|@*\" mode=\"location-report\">\n    <xsl:choose>\n        <xsl:when test=\"@xml:id or title\">\n            <!-- print information about location -->\n            <xsl:message>\n                <xsl:text>             located within: </xsl:text>\n                <xsl:if test=\"@xml:id\">\n                    <xsl:text>\"</xsl:text>\n                    <xsl:value-of select=\"@xml:id\" />\n                    <xsl:text>\" (xml:id)</xsl:text>\n                </xsl:if>\n                <xsl:if test=\"@xml:id and title\">\n                    <xsl:text>, </xsl:text>\n                </xsl:if>\n                <xsl:if test=\"title\">\n                    <xsl:text>\"</xsl:text>\n                    <xsl:value-of select=\"title\" />\n                    <xsl:text>\" (title)</xsl:text>\n                </xsl:if>\n            </xsl:message>\n        </xsl:when>\n        <xsl:when test=\"mathbook|pretext\">\n            <!-- at root, fail with no action -->\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- pop up a level and try again -->\n            <xsl:apply-templates select=\"parent::*[1]\" mode=\"location-report\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Debugging info -->\n<!-- @xml:base attribute of xinclude scheme -->\n<!-- @xml:id - self-explanatory             -->\n<!-- title - if there is one                -->\n<xsl:template match=\"*\" mode=\"debug-location\">\n    <xsl:if test=\"$b-debug\">\n        <xsl:message>\n            <xsl:text>PTX:DEBUG:   </xsl:text>\n            <xsl:text>f: </xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@xml:base\">\n                    <xsl:value-of select=\"@xml:base\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text></xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>|e: </xsl:text>\n            <xsl:value-of select=\"local-name(.)\" />\n            <xsl:text>|i: </xsl:text>\n            <xsl:value-of select=\"@xml:id\" />\n            <xsl:text>|t: </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n        </xsl:message>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Global Warnings -->\n<!-- ############### -->\n\n<!-- Checks for errors that would be time-consuming -->\n<!-- if done repeatedly, so a pre-processing step   -->\n<!-- Calling context could be \"mathbook\" element    -->\n<!-- NB: this is called early by any author-facing  -->\n<!-- \"mainline\" conversion (and not by some         -->\n<!-- utilities) where the select attribute is the   -->\n<!-- \"$original\" tree defined as the author's       -->\n<!-- actual source file.                            -->\n<xsl:template match=\"mathbook|pretext\" mode=\"generic-warnings\">\n    <xsl:apply-templates select=\".\" mode=\"literate-programming-warning\" />\n    <xsl:apply-templates select=\".\" mode=\"xinclude-warnings\" />\n    <xsl:apply-templates select=\".\" mode=\"identifier-warning\"/>\n    <xsl:apply-templates select=\".\" mode=\"text-element-warning\" />\n    <xsl:apply-templates select=\".\" mode=\"subdivision-structure-warning\" />\n    <xsl:apply-templates select=\".\" mode=\"table-paragraph-cells-warning\" />\n</xsl:template>\n\n<!-- Literate Programming support is half-baked, 2017-07-21 -->\n<xsl:template match=\"mathbook|pretext\" mode=\"literate-programming-warning\">\n    <xsl:if test=\".//fragment\">\n        <xsl:call-template name=\"banner-warning\">\n            <xsl:with-param name=\"warning\">\n                <xsl:text>  Literate Programming support is incomplete&#xa;</xsl:text>\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>    1.  Code generation is functional, but does not respect indentation&#xa;</xsl:text>\n                <xsl:text>    2.  LaTeX generation is functional, could be improved, 2020-11-11&#xa;</xsl:text>\n                <xsl:text>    2.  HTML generation is functional, could be improved, 2020-11-11&#xa;</xsl:text>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Using the modular  xinclude  scheme at the top level,      -->\n<!-- and forgetting the command-line switch is a common mistake -->\n<!-- The following is not perfect, but reasonably effective     -->\n<xsl:template match=\"mathbook|pretext\" mode=\"xinclude-warnings\">\n    <xsl:if test=\"book and not(book/chapter or book/part/chapter)\">\n        <xsl:message>\n            <xsl:text>PTX:WARNING:    </xsl:text>\n            <xsl:text>Your &lt;book&gt; does not have any chapters.  Maybe you forgot the '--xinclude' switch on your 'xsltproc' command line?</xsl:text>\n        </xsl:message>\n    </xsl:if>\n    <xsl:if test=\"article and not(article/p) and not(article/section) and not(article/worksheet) and not(article/handout)\">\n        <xsl:message>\n            <xsl:text>PTX:WARNING:    </xsl:text>\n            <xsl:text>Your &lt;article&gt; does not have any sections, worksheets, or handouts, nor any top-level paragraphs.  Maybe you forgot the '--xinclude' switch on your 'xsltproc' command line?</xsl:text>\n        </xsl:message>\n    </xsl:if>\n</xsl:template>\n\n<!-- We warn about bad xml:id.  Our limits: -->\n<!-- 26 Latin letters (upper, lower case),  -->\n<!-- 10 digits, hyphen/dash, underscore     -->\n<!-- TODO: Added 2016-10-29, make into a fatal error later -->\n<!-- Unique UI id's added 2017-09-25 as fatal error -->\n<xsl:template match=\"mathbook|pretext\" mode=\"identifier-warning\">\n    <xsl:variable name=\"xmlid-characters\" select=\"concat('-_', &SIMPLECHAR;)\" />\n    <xsl:for-each select=\".//@xml:id\">\n        <xsl:if test=\"not(translate(., $xmlid-characters, '') = '')\">\n            <xsl:message>\n                <xsl:text>PTX:ERROR:      </xsl:text>\n                <xsl:text>The @xml:id \"</xsl:text>\n                <xsl:value-of select=\".\" />\n                <xsl:text>\" is invalid.  Use only letters, numbers, hyphens and underscores.</xsl:text>\n            </xsl:message>\n        </xsl:if>\n        <!-- unique HTML id's in use for PreTeXt-provided UI -->\n        <xsl:if test=\"(. = 'masthead') or\n                      (. = 'content') or\n                      (. = 'primary-navbar') or\n                      (. = 'sidebar-left') or\n                      (. = 'sidebar-right') or\n                      (. = 'toc') or\n                      (. = 'logo-link')\">\n            <xsl:message terminate=\"yes\">\n                <xsl:text>PTX:FATAL:   </xsl:text>\n                <xsl:text>The @xml:id \"</xsl:text>\n                <xsl:value-of select=\".\" />\n                <xsl:text>\" is invalid since it will conflict with a unique HTML id in use by the user interface.  Please use a different string.  Quitting...</xsl:text>\n            </xsl:message>\n        </xsl:if>\n        <!-- index.html is built automatically, so preclude a clash -->\n        <!-- Not terminating until 2019-07-10 deprecation expires   -->\n        <xsl:if test=\". = 'index'\">\n            <xsl:message terminate=\"no\">\n                <xsl:text>PTX:ERROR:   </xsl:text>\n                <xsl:text>The @xml:id \"</xsl:text>\n                <xsl:value-of select=\".\"/>\n                <xsl:text>\" is invalid since it will conflict with the construction of an automatic HTML \"index.html\" page.  Use some alternative for the real index - sorry.</xsl:text>\n            </xsl:message>\n        </xsl:if>\n    </xsl:for-each>\n</xsl:template>\n\n\n<!-- Elements should never happen like this, so we     -->\n<!-- can match on them and offer pretty good advice    -->\n<!-- Last: since both summary and specifics.  We       -->\n<!-- can't catch with a template, since we don't apply -->\n<!-- templates in the places where elements are banned -->\n<!-- c, cline; unstructured cd, pre                    -->\n<!-- prompt, input, output for sage, console, program  -->\n<!-- NB: cline/area is used in Clickable Area problems -->\n<xsl:template match=\"mathbook|pretext\" mode=\"text-element-warning\">\n    <xsl:variable name=\"bad-elements\" select=\".//c/*|.//cline/*[not(self::area)]|.//cd[not(cline)]/*|.//pre[not(cline)]/*|.//prompt[not(parent::checkpoint)]/*|.//input/*|.//output/*\" />\n    <xsl:if test=\"$bad-elements\">\n        <xsl:message>\n            <xsl:text>PTX:WARNING: </xsl:text>\n            <xsl:text>There are apparent XML elements in locations that should be text only (</xsl:text>\n            <xsl:value-of select=\"count($bad-elements)\" />\n            <xsl:text> times).</xsl:text>\n        </xsl:message>\n    </xsl:if>\n    <xsl:for-each select=\"$bad-elements\">\n        <xsl:message>\n            <xsl:text>PTX:WARNING: </xsl:text>\n            <xsl:text>There is an apparent XML element (&lt;</xsl:text>\n            <xsl:value-of select=\"local-name(.)\" />\n            <xsl:text>&gt;) inside an &lt;</xsl:text>\n            <xsl:value-of select=\"local-name(parent::*)\" />\n            <xsl:text>&gt; element, which should only contain text.  Using an escaped \"less than\" ('&amp;lt;') might be the solution, or using a CDATA section.</xsl:text>\n        </xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!-- New authors often begin a subdivision with some material,     -->\n<!-- then begin a run of further subdivisions.  This preliminary   -->\n<!-- material belongs in an introduction (or is for a conclusion). -->\n<!-- This test is not exhaustive, but will catch most cases.       -->\n<xsl:template match=\"mathbook|pretext\" mode=\"subdivision-structure-warning\">\n    <xsl:for-each select=\"./book/chapter\">\n        <xsl:if test=\"p and section\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING: </xsl:text>\n                <xsl:text>In a chapter containing sections, any content that is not inside a section needs to be inside an &lt;introduction&gt; and/or  &lt;conclusion&gt;.</xsl:text>\n            </xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:if>\n    </xsl:for-each>\n    <xsl:for-each select=\"./article/section|./book/chapter/section\">\n        <xsl:if test=\"p and subsection\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING: </xsl:text>\n                <xsl:text>In a section containing subsections, any content that is not inside a subsection needs to be inside an &lt;introduction&gt; and/or  &lt;conclusion&gt;.</xsl:text>\n            </xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:if>\n    </xsl:for-each>\n    <xsl:for-each select=\"./article/section/subsection|./book/chapter/section/subsection\">\n        <xsl:if test=\"p and subsubsection\">\n            <xsl:message>\n                <xsl:text>PTX:WARNING: </xsl:text>\n                <xsl:text>In a subsection containing subsubsections, any content that is not inside a subsubsection needs to be inside an &lt;introduction&gt; and/or  &lt;conclusion&gt;.</xsl:text>\n            </xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:if>\n    </xsl:for-each>\n</xsl:template>\n\n<xsl:template match=\"mathbook|pretext\" mode=\"table-paragraph-cells-warning\">\n    <xsl:for-each select=\".//tabular\">\n        <xsl:if test=\"row/cell/p and not(col/@width)\">\n            <xsl:message>PTX:WARNING:   a &lt;tabular&gt; has at least one paragraph (&lt;p&gt;) inside a &lt;cell&gt;, yet there are no &lt;col&gt; elements with a @width attribute.  Default widths will be supplied.</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:if>\n    </xsl:for-each>\n</xsl:template>\n\n\n\n<!-- ############ -->\n<!-- Deprecations -->\n<!-- ############ -->\n\n<!-- Locating all instances of a deprecated element looks  -->\n<!-- expensive. (Turns out it might be less than 1% of the -->\n<!-- time to build a full book.) But we have a scheme to   -->\n<!-- only look back a limited time period (four years),    -->\n<!-- controlled by a string parameter (not a publisher     -->\n<!-- switch).  The default is to perform a full search     -->\n<!-- of all such deprecations.                             -->\n<xsl:param name=\"author.deprecations.all\" select=\"''\" />\n<xsl:variable name=\"deprecation-max-age\">\n    <xsl:choose>\n        <xsl:when test=\"($author.deprecations.all = 'yes') or ($author.deprecations.all = '')\">\n            <xsl:text>P100Y</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$author.deprecations.all = 'no'\">\n            <xsl:text>P4Y</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>P100Y</xsl:text>\n            <xsl:message>PTX:WARNING:   \"author.deprecations.all\" should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$author.deprecations.all\"/>\", using the default value of \"yes\"</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Generic deprecation message for uniformity    -->\n<!-- \"occurrences\" is a quote-protected expression -->\n<!-- that evaluates to node-set of \"problem\" nodes -->\n<!-- A message string like \"'foo'\" cannot contain  -->\n<!-- a single quote, even if entered as &apos;.    -->\n<!-- If despearate, concatentate with $apos.       -->\n<!-- A &#xa; can be used if necessary, but only    -->\n<!-- rarely do we bother.                          -->\n<!-- NB: this is called early by any author-facing -->\n<!-- \"mainline\" conversion (and not by some        -->\n<!-- utilities) where the select attribute is the  -->\n<!-- \"$original\" tree defined as the author's      -->\n<!-- actual source file.                           -->\n<xsl:template name=\"deprecation-message\">\n    <xsl:param name=\"occurrences\" />\n    <xsl:param name=\"date-string\" />\n    <xsl:param name=\"message\" />\n    <!-- \"max-reports\" caps the per-occurrence location reports.    -->\n    <!-- An empty string (the default) imposes no cap; \"0\" silences -->\n    <!-- the per-location reports entirely (the count line still    -->\n    <!-- appears); a positive integer caps the number of reports.   -->\n    <xsl:param name=\"max-reports\" select=\"''\"/>\n\n    <!-- These apparent re-definitions are local to this template -->\n    <!-- Reasons are historical, so to be a convenience           -->\n    <xsl:variable name=\"docinfo\" select=\"./docinfo\"/>\n    <xsl:variable name=\"document-root\" select=\"./*[not(self::docinfo)]\"/>\n\n    <xsl:variable name=\"expire-date\" select=\"date:seconds(date:add($date-string, $deprecation-max-age))\"/>\n    <xsl:variable name=\"today\" select=\"date:seconds(date:date-time())\"/>\n\n    <!-- Document-wide searches for deprecated constructions are expensive. -->\n    <!-- So we provide for automatic filtering by age.  (We limit this to   -->\n    <!-- \"current\" versus \"all\" as an author/publisher choice.)  So this    -->\n    <!-- templates receives a *string* version of an APath expression,      -->\n    <!-- not the actual *node-set*.  Then the \"dyn:evaluate()\" function     -->\n    <!-- constructs the node-set, but after it survives the date filter.    -->\n    <xsl:if test=\"$expire-date > $today\">\n        <xsl:variable name=\"occurrences-rtf\" select=\"dyn:evaluate($occurrences)\" />\n        <xsl:if test=\"$occurrences-rtf\">\n            <xsl:message>\n                <xsl:text>PTX:DEPRECATE: (</xsl:text>\n                <xsl:value-of select=\"$date-string\" />\n                <xsl:text>) </xsl:text>\n                <xsl:value-of select=\"$message\" />\n                <xsl:text> (</xsl:text>\n                <xsl:value-of select=\"count($occurrences-rtf)\" />\n                <xsl:text> time</xsl:text>\n                <xsl:if test=\"count($occurrences-rtf) > 1\">\n                    <xsl:text>s</xsl:text>\n                </xsl:if>\n                <xsl:text>)</xsl:text>\n                <!-- once verbosity is implemented -->\n                <!-- <xsl:text>, set log.level to see more details</xsl:text> -->\n            </xsl:message>\n            <xsl:for-each select=\"$occurrences-rtf\">\n                <xsl:if test=\"($max-reports = '') or (position() &lt;= number($max-reports))\">\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                </xsl:if>\n            </xsl:for-each>\n            <xsl:message>\n                <xsl:text>--------------</xsl:text>\n            </xsl:message>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<!-- On the suspicion that the next template frequently \"scans\" the entire   -->\n<!-- document tree, we attempted to add a developer-only \"debug\" switch      -->\n<!-- that would bypass the tests here, and in \"generic-warnings\" and         -->\n<!-- \"parameter-deprecation-warnings\". For the sample article the speed-up   -->\n<!-- was about 1%, and for AATA the speed-up was apparently less.  Which was -->\n<!-- all not worth the danger that authors and publishers could \"turn off\"   -->\n<!-- deprecation warnings. (2023-05-11)                                      -->\n<xsl:template match=\"mathbook|pretext\" mode=\"element-deprecation-warnings\">\n\n    <!-- Element deprecation checks can be limited by time   -->\n    <!-- and we want to issue an informational warning about -->\n    <!-- the (possibly limited) time coverage:               -->\n    <!--   * once only, per output build                     -->\n    <!--   * only if a stylesheet actually does the checks   -->\n    <!-- So this is the spot, right before launcing into     -->\n    <!-- the actual checks.                                  -->\n    <xsl:choose>\n        <xsl:when test=\"$deprecation-max-age = 'P100Y'\">\n            <xsl:message>PTX:INFO:   checking all deprecated elements.</xsl:message>\n        </xsl:when>\n        <xsl:when test=\"$deprecation-max-age = 'P4Y'\">\n            <xsl:message>PTX:INFO:   checking ONLY the last FOUR YEARS of element deprecations.&#xa;Rerun with the string parameter \"author.deprecations.all\" set to \"yes\" to check your source against all deprecations.</xsl:message>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n\n    <!-- Older deprecations at the top of this list, -->\n    <!-- so author will see new at the tail end.     -->\n    <!-- NB: XPath expressions to select \"problem\"   -->\n    <!-- nodes must be given as strings, to allow    -->\n    <!-- for delayed evaluation, only if the warning -->\n    <!-- survives a date filter.                     -->\n    <!-- Comments without implementations have moved -->\n    <!-- to Schematron rules after residing here for -->\n    <!-- at least 16 months (one year plus grace)    -->\n    <!--  -->\n    <!-- 2014-05-04  @filebase has been replaced in function by @xml:id -->\n    <!-- 2014-06-25  xref once had cite as a variant -->\n    <!-- 2015-01-28  once both circum and circumflex existed, circumflex won -->\n    <!--  -->\n    <!-- These have been outright removed since they simply became confusing -->\n    <!-- 2017-07-05  top-level items that should have captions, but don't -->\n    <!-- 2017-07-05  sidebyside items that do not have captions, so ineffective -->\n    <!--  -->\n    <!-- 2015-02-08  naked tikz, asymptote, sageplot are no longer accomodated -->\n    <!-- 2015-02-20  tikz element is entirely abandoned -->\n    <!-- 2017-12-22  latex-image-code element is entirely abandoned -->\n    <!--  -->\n    <!-- Active deprecations follow -->\n    <!--  -->\n    <!-- 2015-03-13  paragraph is renamed more accurately to paragraphs           -->\n    <!-- 2017-07-16  removed all backwards compatibility and added empty template -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//paragraph&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2015-03-13'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;paragraph&quot; element is deprecated and any contained content will silently not appear, replaced by functional equivalent &quot;paragraphs&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2015-03-17  various indicators of table rearrangement -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//tgroup&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2015-03-17'\" />\n        <xsl:with-param name=\"message\" select=\"'tables are done quite differently, the &quot;tgroup&quot; element is indicative'\" />\n    </xsl:call-template>\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//tgroup/thead/row/entry|$document-root//tgroup/tbody/row/entry&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2015-03-17'\" />\n            <xsl:with-param name=\"message\" select=\"'tables are done quite differently, the &quot;entry&quot; element should be replaced by the &quot;cell&quot; element'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2015-12-12  empty labels on an ordered list was a bad idea -->\n     <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//ol[@label='']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2015-12-12'\" />\n        <xsl:with-param name=\"message\" select=\"'an ordered list (&lt;ol&gt;) may not have empty labels, and numbering will be unpredictable.  Switch to an unordered list  (&lt;ul&gt;)'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2016-04-07  'plural' option for @autoname discarded -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//xref[@autoname='plural']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2016-04-07'\" />\n        <xsl:with-param name=\"message\" select=\"'a &lt;xref&gt; element may not have an @autoname attribute set to plural.  There is no replacement, perhaps use content in the &lt;xref&gt;.'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2016-05-23  Require parts of a letter to be structured (could be relaxed) -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//letter/frontmatter/from[not(line)] | $document-root//letter/frontmatter/to[not(line)] | $document-root//letter/backmatter/signature[not(line)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2016-05-23'\" />\n        <xsl:with-param name=\"message\" select=\"'&lt;to&gt;, &lt;from&gt;, and &lt;signature&gt; of a letter must be structured as a sequence of &lt;line&gt;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2016-05-23  line breaks are not XML-ish, some places allow \"line\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//br&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2016-05-23'\" />\n        <xsl:with-param name=\"message\" select=\"'&lt;br&gt; can no longer be used to create multiline output; you may use &lt;line&gt; elements in select situations'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2016-07-31  ban @height attribute, except within webwork problems -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//image[@height and not(ancestor::*[self::webwork])]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2016-07-31'\" />\n        <xsl:with-param name=\"message\" select=\"'@height attribute on &lt;image&gt; is no longer effective and will be ignored, except within a WeBWorK exercise'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2016-07-31  widths of images must be expressed as percentages -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//image[@width and not(contains(@width, '%'))]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2016-07-31'\" />\n        <xsl:with-param name=\"message\" select=\"'@width attribute on &lt;image&gt; must be expressed as a percentage'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-02-05  hyphen-minus replaces hyphen; 2018-12-01 use keyboard hyphen -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//hyphen&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-02-05'\" />\n        <xsl:with-param name=\"message\" select=\"'use the keyboard hyphen character as a direct replacement for &lt;hyphen/&gt;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-07-05  a sidebyside cannot have a caption -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//sidebyside[caption]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-05'\" />\n        <xsl:with-param name=\"message\" select=\"'a &lt;sidebyside&gt; cannot have a &lt;caption&gt;.  Place the &lt;sidebyside&gt; inside a &lt;figure&gt;, employing the &lt;caption&gt;, which will be the functional equivalent.'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-07-14  index specification and production reworked -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//index-part&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;index-part&quot; element is deprecated, replaced by functional equivalent &quot;index&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//index[not(main) and not(index-list)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-14'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;index&quot; element is deprecated, replaced by functional equivalent &quot;idx&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//index[main]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-14'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;index&quot; element with &quot;main&quot; and &quot;sub&quot; headings is deprecated, replaced by functional equivalent &quot;idx&quot; with &quot;h&quot; headings'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-07-14  cosmetic replacement of WW image/@tex_size by image/@tex-size -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//@tex_size&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-18'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;tex_size&quot; attribute is deprecated, replaced by functional equivalent &quot;tex-size&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-07-25  replacement of three xref/@autoname attributes by @text -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//xref[@autoname='no']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-25'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;xref/autoname&quot; attribute is deprecated, replace  autoname=&quot;no&quot;  by functional equivalent  text=&quot;global&quot;'\" />\n    </xsl:call-template>\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//xref[@autoname='yes']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-25'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;xref/autoname&quot; attribute is deprecated, replace  autoname=&quot;yes&quot;  by functional equivalent  text=&quot;type-global&quot;'\" />\n    </xsl:call-template>\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//xref[@autoname='title']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-25'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;xref/autoname&quot; attribute is deprecated, replace  autoname=&quot;title&quot;  by functional equivalent  text=&quot;title&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-08-04  repurpose task block for division of project-like -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//task[parent::chapter or parent::appendix or parent::section or parent::subsection or parent::subsubsection or parent::paragraphs or parent::introduction or parent::conclusion]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-08-04'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;task&quot; element is no longer used as a child of a top-level division, but is instead being used to divide the other &quot;project-like&quot; elements.  It can be replaced by a functional equivalent: &quot;project&quot;, &quot;activity&quot;, &quot;exploration&quot;, or &quot;investigation&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-09-10  deprecate title-less paragraphs, outside of sidebyside -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//paragraphs[not(title) and not(parent::sidebyside)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-09-10'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;paragraphs&quot; element (outside of a &quot;sidebyside&quot;) now requires a &quot;title&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-11-09  WeBWorK images now with widths as percentages, only on an enclosing sidebyside -->\n    <!-- 2020-11-04  One-panel sidebysides not necessary, so now only warn about old attributes     -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//webwork//image[@height or @tex-size]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-11-09'\" />\n        <xsl:with-param name=\"message\" select=\"'an &quot;image&quot; within a &quot;webwork&quot; now has its size given by just a &quot;width&quot; attribute expressed as a percentage, including the percent sign (so in particular do not use &quot;height&quot; or &quot;tex-size&quot;)'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-11-09  Assemblages have been rationalized, warn about captioned items -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//assemblage//*[caption]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-11-09'\" />\n        <xsl:with-param name=\"message\" select=\"'an &quot;assemblage&quot; should not contain any items with a &quot;caption&quot;.  You can instead place the content in a bare &quot;sidebyside&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-12-07  \"c\" content totally escaped for LaTeX -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//c/@latexsep|$document-root//cd/@latexsep&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-12-07'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;@latexsep&quot; attribute on the &quot;c&quot; and &quot;cd&quot; elements is no longer necessary.  It is being ignored, and can be removed'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-02-04  geogebra-applet gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//geogebra-applet&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-02-04'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;geogebra-applet&quot; element has been removed, investigate newer &quot;interactive&quot; element'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-02-05  booktitle becomes pubtitle -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//booktitle&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-02-05'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;booktitle&quot; element has been replaced by the functionally equivalent &quot;pubtitle&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-04-06  jsxgraph absorbed into interactive -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//jsxgraph&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-04-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;jsxgraph&quot; element has been deprecated, but remains functional, rework with the &quot;interactive&quot; element'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-05-02  paragraphs purely as a lightweight division -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//sidebyside/paragraphs&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-04-06'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;paragraphs&quot; can no longer appear within a &quot;sidebyside&quot;, replace with a &quot;stack&quot; containing multiple elements, such as &quot;p&quot;'\" />\n    </xsl:call-template>\n    <!-- 2018-05-18  WeBWorK refactor no longer needs setup/var elements for static representations-->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//webwork/setup/var&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-05-18'\" />\n        <xsl:with-param name=\"message\" select=\"'&quot;var&quot; elements in a &quot;webwork/setup&quot; no longer do anything; you may delete them from source'\" />\n    </xsl:call-template>\n    <!-- 2018-07-04  \"solution-list\" generator element replaced by \"solutions\" division -->\n    <!-- 2020-08-31  element, controlling switches, supporting templates, removed/deactivated -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//solution-list&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2020-08-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;solution-list&quot; element has been removed (deprecated since 2018-07-04), please switch to using the improved &quot;solutions&quot; division in your back matter (and elsewhere)'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-09-26  appendix subdivision confusion resolved -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$root/article/backmatter/appendix/section&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-09-26'\" />\n        <xsl:with-param name=\"message\" select=\"'the first division of an &quot;appendix&quot; of an &quot;article&quot; should be a &quot;subsection&quot;'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-12-30  circa shortened to ca -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//circa&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2018-12-30'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;circa&quot; element has been replaced by the functionally equivalent &quot;ca&quot;'\" />\n    </xsl:call-template>\n    <!--                                                     -->\n    <!-- LaTeX's 10 reserved characters: # $ % ^ & _ { } ~ \\ -->\n    <!--                                                     -->\n    <!--  -->\n    <!-- 2019-02-06  hash gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//hash&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;hash&quot; element is no longer necessary, simply replace with a bare &quot;#&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  dollar gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//dollar&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;dollar&quot; element is no longer necessary, simply replace with a bare &quot;$&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  percent gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//percent&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;percent&quot; element is no longer necessary, simply replace with a bare &quot;%&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  circumflex gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//circumflex&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;circumflex&quot; element is no longer necessary, simply replace with a bare &quot;^&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  ampersand gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//ampersand&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;ampersand&quot; element is no longer necessary, simply replace with a bare &quot;&amp;&quot; character (properly escaped, i.e. &quot;&amp;amp;&quot;)'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  underscore gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//underscore&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;underscore&quot; element is no longer necessary, simply replace with a bare &quot;_&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  lbrace gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//lbrace&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;lbrace&quot; element is no longer necessary, simply replace with a bare &quot;{&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  rbrace gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//rbrace&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;rbrace&quot; element is no longer necessary, simply replace with a bare &quot;}&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  tilde gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//tilde&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;tilde&quot; element is no longer necessary, simply replace with a bare &quot;~&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  backslash gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//backslash&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;backslash&quot; element is no longer necessary, simply replace with a bare &quot;\\&quot; character'\"/>\n    </xsl:call-template>\n    <!--                           -->\n    <!-- Nine unnecessary elements -->\n    <!--                           -->\n    <!--  -->\n    <!-- 2019-02-06  less gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//less&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;less&quot; element is no longer necessary, simply replace with a bare &quot;&lt;&quot; character (properly escaped, i.e. &quot;&amp;lt;&quot;)'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  greater gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//greater&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;greater&quot; element is no longer necessary, simply replace with a bare &quot;&gt;&quot; character (possibly escaped, i.e. &quot;&amp;gt;&quot;)'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  lbracket gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//lbracket&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;lbracket&quot; element is no longer necessary, simply replace with a bare &quot;[&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  rbracket gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//rbracket&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;rbracket&quot; element is no longer necessary, simply replace with a bare &quot;]&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  asterisk gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//asterisk&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;asterisk&quot; element is no longer necessary, simply replace with a bare &quot;*&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  slash gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//slash&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;slash&quot; element is no longer necessary, simply replace with a bare &quot;/&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  backtick gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//backtick&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;backtick&quot; element is no longer necessary, simply replace with a bare &quot;`&quot; character'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  braces gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//braces&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;braces&quot; element is no longer necessary, simply replace with bare &quot;{&quot; and &quot;}&quot; characters'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-06  brackets gone -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//brackets&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-06'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;brackets&quot; element is no longer necessary, simply replace with bare &quot;[&quot; and &quot;]&quot; characters'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-20  \"todo\" items now in comments -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//todo&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-20'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;todo&quot; element is no longer effective.  Replace with an XML comment whose first four non-whitespace characters spell &quot;todo&quot; (with no spaces)'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-23  \"rename/@lang\" replaced by (optional) rename/@xml:lang -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo//rename[@lang]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-20'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;@lang&quot; attribute of &quot;rename&quot; has been replaced by &quot;@xml:lang&quot;, and is now optional if your document only uses one language'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-04-02  \"mathbook\" replaced by \"pretext\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;/mathbook&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-04-02'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;mathbook&quot; top-level element has been replaced by the functionally equivalent &quot;pretext&quot;'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-04-14  analytics ID are now a publisher option -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/analytics&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-04-14'\" />\n        <xsl:with-param name=\"message\" select=\"'site-specific ID for HTML analytics services (Statcounter, Google) provided within &quot;docinfo/analytics&quot; are now options supplied by publishers as command-line options.  See the Publishers Guide for specifics.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-04-14  Google search ID is now a publisher option -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/search&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-04-14'\" />\n        <xsl:with-param name=\"message\" select=\"'site-specific ID for HTML search services (Google) is no longer provided within &quot;docinfo/search&quot;.  Please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-08-25  once deprecated named lists to be captioned lists -->\n    <!-- 2019-06-28  deprecated captioned lists to be titled lists     -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//list[caption]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-06-28'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;list&quot; element requires a &quot;title&quot;, an existing &quot;caption&quot; is being ignored'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!--  -->\n    <!-- 2019-06-28  deprecated captioned tables to be titled tables  -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//table[caption]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-06-28'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;table&quot; element requires a &quot;title&quot;, an existing &quot;caption&quot; is being ignored'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-07-10  @xml:id = 'index' deprecated in favor of publisher's @ref  -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//*[@xml:id = 'index']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-07-10'\" />\n        <xsl:with-param name=\"message\" select=\"'an element should no longer have an @xml:id equal to &quot;index&quot; as a way to create an HTML index.html page.  See the Publishers Guides chapter on the HTML conversion for instructions.'\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-11-28  deprecated docinfo analytics in favor of publisher's file  -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/analytics&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2019-11-28'\" />\n        <xsl:with-param name=\"message\" select=\"'use of the docinfo/analytics element has been deprecated.  Existing elements are being respected, but please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.&#xa;  * For StatCounter this is a cosmetic change.&#xa;  * Google Classic has been deprecated by Google and will not be supported.&#xa;  * Google Universal has been replaced, your ID may continue to work.&#xa;  * Google Global Site Tag is fully supported, try your Universal ID.&#xa;'\" />\n    </xsl:call-template>\n\n    <!-- 2020-03-13  deprecated setup element in a webwork -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//webwork/setup&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2020-03-13'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;setup&quot; element in a &quot;webwork&quot; is no longer necessary, simply use &quot;pg-code&quot;'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2020-11-22  deprecate HTML base URL in docinfo -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/html/baseurl/@href&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2020-11-22'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;baseurl/@href&quot; element in the &quot;docinfo&quot; has been replaced and is now specified in the publisher file with &quot;html/baseurl/@href&quot;, as documented in the PreTeXt Guide.  If you have multiple values due to multiple &quot;docinfo&quot; controlled by versions, then results will be very unpredictable.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-01-07  deprecate sidebyside within a webwork -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//webwork//sidebyside&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-07'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;sidebyside&quot; as a descendant of a &quot;webwork&quot; has been replaced and now &quot;image&quot; and &quot;tabular&quot; elements should be used directly.'\"/>\n    </xsl:call-template>\n\n    <!-- 2021-02-14  deprecate using docinfo for part structure -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/numbering/division/@part&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'docinfo/numbering/division/@part has been replaced by the  numbering/divisions/@part-structure  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-03-17  deprecate worksheet/pagebreak in favor of worksheet/page -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//worksheet/pagebreak&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-03-17'\" />\n        <xsl:with-param name=\"message\" select=\"'use of the empty &quot;pagebreak&quot; element has been deprecated in favor of a &quot;page&quot; element.  We will attempt to honor the empty element, but new features may only be available with the new element.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-06-24  deprecate @source to specify media on network -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//video[substring(@source,1,4) = 'http']|$document-root//audio[substring(@source,1,4) = 'http']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-06-24'\" />\n        <xsl:with-param name=\"message\" select=\"'use of a &quot;@source&quot; attribute on a &quot;video&quot; or &quot;audio&quot; element to specify a network location (leading with &quot;http&quot;) has been deprecated, but will still be effective.  Replace with a &quot;@href&quot; attribute.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-07-02  deprecate notation/usage as bare LaTeX, needs exactly 1 \"m\"       -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//notation/usage[not(m)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-07-02'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;notation/usage&quot; element should contain *exactly* one &quot;m&quot;.  There is none, but we will attempt to honor your intent'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-09-19  obsolete Reveal.js slideshow @minified option -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$publication/revealjs/resources/@minified&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-09-19'\" />\n        <xsl:with-param name=\"message\" select=\"'the Reveal.js publisher option for minified resources (revealjs/resources/@minified) is obsolete and is being ignored.  Removing it will stop this message'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-10-04  glossary \"introduction\" is now a \"headnote\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//glossary/introduction&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-10-04'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;glossary&quot; &quot;introduction&quot; is now a &quot;headnote&quot;.  We will attempt to fix your source.  See the documentation for this, and other changes for &quot;glossary&quot;'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-10-04  \"terms\" was necessary to structure a \"glossary\", now obsolete -->\n    <!-- Never in the schema, but a warning here as a public service -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//glossary/terms&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-10-04'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;glossary&quot; no longer needs &quot;terms&quot; to structure its items.  We will attempt to fix your source.  See the documentation for this, and other changes for &quot;glossary&quot;'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-10-04  \"defined-term\" has been replaced by \"gi\" -->\n    <!-- Never in the schema, but a warning here as a public service -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//glossary/terms/defined-term&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-10-04'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;glossary&quot; no longer has &quot;defined-term&quot; but instead has glossary items (&quot;gi&quot;).  We will attempt to fix your source.  See the documentation for this, and other changes for &quot;glossary&quot;'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-10-04  glossary \"conclusion\" is obsolete -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//glossary/conclusion&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2021-10-04'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;glossary&quot; no longer has a &quot;conclusion&quot;.  It is being ignored, so you will need to design an alternative.  See the documentation for this, and other changes for &quot;glossary&quot;'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-04-22  Python Tutor via @interactive=\"pythontutor\" replaced by Runestone CodeLens-->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//program[@interactive = 'pythontutor']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-04-22'\" />\n        <xsl:with-param name=\"message\" select=\"'a Python &quot;program&quot; with the attribute &quot;@interactive&quot; set to &quot;pythontutor&quot; is deprecated, but we will attempt to honor your intent.  Change the attribute value to &quot;codelens&quot; instead, and be certain to manufacture trace data using allied PreTeXt tools'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-04-25  \"label\" (typically on a list) is deprecated for renewal -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//ul/@label|$document-root//ol/@label&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-04-25'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;@label&quot; attribute (on a &quot;ul&quot; or &quot;ol&quot; element) has been deprecated and should be replaced by the functionally equivalent &quot;@marker&quot;.  We will attempt to honor your request'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-04-25  \"label\" (typically on a list) is deprecated for renewal -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//video/track/@label&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-04-25'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;@label&quot; attribute (on a &quot;video/track&quot; element) has been deprecated and should be replaced by the functionally equivalent &quot;@listing&quot;.  We will attempt to honor your request'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-06-09  replace a WebWorK \"stage\" by a standard \"task\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//webwork/stage&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-06-09'\" />\n        <xsl:with-param name=\"message\" select=\"'an ad-hoc &quot;stage&quot; element in a scaffolded WeBWorK problem has been replaced by a standard PreTeXt &quot;task&quot; element, so make simple subsitutions.  We will attempt to honor your request'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-07-10  deprecate latex-image with @syntax=\"PGtikz\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//latex-image[@syntax='PGtikz']&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-07-10'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;latex-image&quot; with &quot;@syntax&quot; attribute set to &quot;PGtikz&quot; is deprecated in favor of a plain &quot;latex-image&quot;.  After removing the attribute, the &quot;latex-image&quot; code needs to be placed inside a &quot;tikzpicture&quot; environment. Until you make such changes to your source, we will attempt to honor your request'\"/>\n    </xsl:call-template>\n    <!-- 2022-07-25  warn of impending Wolfram CDF deprecation -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//interactive[@wolfram-cdf]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-07-25'\" />\n        <xsl:with-param name=\"message\" select=\"'support for Wolfram CDF &quot;interactive&quot; is slated to be removed soon.  Post on the &quot;pretext-support&quot; Google Group if this is an issue for your project'\"/>\n    </xsl:call-template>\n    <!-- 2022-08-07  Wolfram CDF deprecation -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//interactive[@wolfram-cdf]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2022-08-07'\" />\n        <xsl:with-param name=\"message\" select=\"'support for Wolfram CDF &quot;interactive&quot; has been removed'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-01-07  feedback button deprecation -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/feedback&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-01-07'\" />\n        <xsl:with-param name=\"message\" select=\"'election and configuration of a feedback button via a &quot;docinfo/feedback&quot; element has moved to the publication file with some small changes.  We will try to honor your intent, but results could be unpredictable'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-01-10  LaTeX front cover and back cover to publication file -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/covers&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-01-10'\" />\n        <xsl:with-param name=\"message\" select=\"'PDF front and back covers via a &quot;docinfo/covers&quot; element has moved to the publication file with some small changes.  We will try to honor your intent'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-01-27  deprecate \"datafile\" in favor of \"dataurl\"   -->\n    <!-- 2023-02-01  tightened deprecation to uses without @label -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//datafile[not(@label)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-01-27'\" />\n        <xsl:with-param name=\"message\" select=\"'the old use of the &quot;datafile&quot; element has been replaced by the functionally-equivalent &quot;dataurl&quot; element.   New uses of &quot;datafile&quot; require a @label attribute.  So you are seeing this warning since your source has a &quot;datafile&quot; without a @label attribute.  We will try to honor your intent, but please make the change at your first convenience, as an automatic conversion might not be desirable in some cases.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-08-08  Simplify, and make more reliable, the URL for website entry of copyright page -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//colophon/website[address]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-08-08'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;website&quot; element with &quot;address&quot; and &quot;name&quot; children has changed.  Continue to use the &quot;website&quot; element as before, but replace the &quot;address&quot; and &quot;name&quot; children with a single &quot;url&quot; element, which is more flexible and reliable.  We will try to honor your intent, but you may prefer your own adjustments.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-08-10  Kill the half-baked \"demonstration\" element-->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//demonstration&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-08-10'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;demonstration&quot; element has been removed with no natural replacement.  The &quot;interactive&quot; element may be sufficiently flexible to do something similar and will produce a standalone page that might serve a similar purpose.'\"/>\n    </xsl:call-template>\n    <!-- 2023-08-28  Deprecate console/prompt in favor of attributes-->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//console/prompt&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-08-28'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;prompt&quot; element of a &quot;console&quot; has been deprecated.  In its place, an &quot;input&quot; can have a @prompt attribute, or you can place a session-wide (not document-wide) @prompt attribute on the &quot;console&quot; element.  Until then, we will try to honor your intent.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-10-17  Deprecate docinfo/latex-preamble/package in favor of docinfo/math-package -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/latex-preamble/package&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-10-17'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;docinfo/latex-preamble/package&quot; element has been replaced by a &quot;docinfo/math-package&quot; element with &quot;@latex-name&quot; and &quot;@mathjax-name&quot; attributes.  Both attributes are required, but may be different, identical, or empty.  Note too that &quot;latex-preamble&quot; is no longer used for anything.  Until adjusted, we will honor your intent.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-10-17  docinfo/latex-preamble element is history -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/latex-preamble&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-10-17'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;docinfo/latex-preamble&quot; element no longer has a purpose.  Remove the element and adjust any contained &quot;package&quot; elements.  Then this warning will cease.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-02-13   initiate warnings about deprecation/removal of \"commentary\" string parameter -->\n    <!-- This is out of order chronologically, so that it is adjacent to a later follow-up message -->\n    <!-- NB: search entire code base on \"2023-02-13\"  and 2024-02-16                               -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//commentary[not(@component)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2023-02-13'\" />\n        <xsl:with-param name=\"message\" select=\"'the string parameter &quot;commentary&quot; will be removed on, or after, 2024-02-13 (but not yet).  Any &quot;commentary&quot; elements present should be adjusted to have their visibility controlled by version support, specifically by first being placed in a &quot;component&quot;, and then controlled by entries of a publisher file.  Then &quot;commentary&quot; elements can be hidden just with version support.  To be visible you will need to use version support AND continue to use the string parameter.  On, or after, 2024-02-13, this warning will become a fatal error.'\"/>\n    </xsl:call-template>\n    <!-- 2024-02-16: add an additional warning message -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//commentary[not(@component)]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2024-02-16'\" />\n        <xsl:with-param name=\"message\" select=\"'a &quot;commentary&quot; element without a @component attribute is now routinely visible in all conversions.  This is unlikely to be what you want since the same effect can be had with no &quot;commentary&quot; element at all.  This message expands on the warning of 2023-02-13, and you might also be getting messages about the deprecation of the string parameter also named &quot;commentary&quot;.   Remove the &quot;commentary&quot; element, or consult the PreTeXt Guide to learn about version support and place the &quot;commentary&quot; element into a component using the attribute of the same name.'\"/>\n    </xsl:call-template>\n    <!-- 2025-03-08: add yet another warning message, but now -->\n    <!-- it is serious - \"commentary\" is deprecated (even if  -->\n    <!-- its use with version support will be respected)      -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//commentary&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-03-08'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;commentary&quot; element has been deprecated.  Remove the &quot;commentary&quot; element, and consult the PreTeXt Guide to learn about how version support can have the same effect. (If your &quot;commentary&quot; element uses a &quot;component&quot; attribute, we will try to honor your intent.)'\"/>\n    </xsl:call-template>\n    <!-- Any componentless \"commentary\" at all - fatal error -->\n    <!-- NB: $document-root is \"too late\" here it seems,     -->\n    <!-- as this is not the \"deprecation-message\" template,  -->\n    <!-- so we instead hard-code the $original tree          -->\n    <xsl:if test=\"$original//commentary[not(@component)]\">\n        <xsl:message terminate=\"yes\">PTX:FATAL:    a \"commentary\" without a @component attribute is a fatal error from 2024-02-16 onward.  Read preceding error messages (2023-02-13, 2024-02-16, 2025-03-08), and make the suggested changes.  Quitting...</xsl:message>\n    </xsl:if>\n    <!--  -->\n    <!-- 2024-07-08  various mis-matches all settled in favor of \"qrcode\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$publication/common/qr-code&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2024-07-08'\" />\n        <xsl:with-param name=\"message\" select=\"'the publisher file entry &quot;common/qr-code&quot; is obsolete and is being ignored.  Make a cosmetic change to &quot;common/qrcode&quot;.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-07-29  \"label\" element in \"latex-image\" is deprecated -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//latex-image/label&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2024-07-29'\" />\n        <xsl:with-param name=\"message\" select=\"'use of a &quot;label&quot; element inside a &quot;latex-image&quot; is deprecated and there is no replacement.  Formulate the appropriate LaTeX code (TikZ) as a replacement.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-07-31 (warning added 2024-08-05) metadata, notably idx, banned as child of sidebyside -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//sidebyside/*[&METADATA-FILTER;]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-31'\" />\n        <xsl:with-param name=\"message\" select=\"'metadata elements &quot;&METADATA;&quot; in a sidebyside will be ignored'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-10-08 titlepage no longer required for holding author|editor|credit|date in frontmatter -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root/frontmatter/titlepage[author or editor or credit or date or event]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2024-10-08'\" />\n        <xsl:with-param name=\"message\" select=\"'elements previously included in a &quot;titlepage&quot; element inside the &quot;frontmatter&quot; (author, editor, credit, date, and event) should now be placed in &quot;frontmatter/bibinfo&quot;.  To ensure a title page is created, put only the empty element &quot;titlepage-items&quot; inside &quot;titlepage&quot;.  Until you move these elements, we will try to honor your intent.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-10-08 colophon no longer required for holding copyright|credit|edition|website in frontmatter -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root/frontmatter/colophon[credit or copyright or edition or website]&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2024-10-08'\" />\n        <xsl:with-param name=\"message\" select=\"'elements previously included in a &quot;colophon&quot; element inside the &quot;frontmatter&quot; (credit, copyright, edition, and website) should now be placed in &quot;frontmatter/bibinfo&quot;. To produce a &quot;colophon&quot;, include only the empty element &quot;colophon-items&quot; inside &quot;colophon&quot; Until you move these elements, we will try to honor your intent.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-11-09 docinfo \"favicon\" now is a publisher file option -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/html/favicon&quot;\"/>\n        <xsl:with-param name=\"date-string\" select=\"'2024-11-09'\" />\n        <xsl:with-param name=\"message\" select=\"'use of a favicon in HTML output is no longer accomplished with a &quot;favicon&quot; element inside &quot;docinfo&quot;.  Instead use the publication file and put a &quot;@favicon&quot; attribute on the &quot;html&quot; element.  Set its value to &quot;simple&quot; for equivalent behavior.  Until you remove the element in &quot;docinfo&quot;, we will try to honor your intent.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-11-19 (warning added 2024-11-19) program/input renamed program/code and input repurposed -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//program/input&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2024-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'program/input now should be program/code. An automatic correction will be attempted.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!--  -->\n    <!-- 2025-03-09: mass removal of backward-compatiblity of old-style specifications in \"docinfo\" -->\n    <!--  -->\n    <!--  -->\n    <!-- From 2019-04-14 -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/analytics&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-03-09'\" />\n        <xsl:with-param name=\"message\" select=\"'site-specific ID for HTML analytics services (Statcounter, Google) provided within &quot;docinfo/analytics&quot; are now options supplied by publishers as command-line options.  See the Publishers Guide for specifics.  Specification in &quot;docinfo&quot; is now being ignored.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- From 2019-04-14 -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/search&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-03-09'\" />\n        <xsl:with-param name=\"message\" select=\"'site-specific ID for HTML search services (Google) is no longer provided within &quot;docinfo/search&quot;.  Please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide. Specification in &quot;docinfo&quot; is now being ignored.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- From 2020-11-22 -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/html/baseurl/@href&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-03-09'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;baseurl/@href&quot; element in the &quot;docinfo&quot; has been replaced and is now specified in the publisher file with &quot;html/baseurl/@href&quot;, as documented in the PreTeXt Guide.  Specification in &quot;docinfo&quot; is now being ignored.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- From 2023-01-07 -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/feedback&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-03-09'\" />\n        <xsl:with-param name=\"message\" select=\"'election and configuration of a feedback button via a &quot;docinfo/feedback&quot; element has moved to the publication file with some small changes.  Specification in &quot;docinfo&quot; is now being ignored.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- From 2023-01-10  -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/covers&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-03-09'\" />\n        <xsl:with-param name=\"message\" select=\"'PDF front and back covers via a &quot;docinfo/covers&quot; element has moved to the publication file with some small changes.  Specification in &quot;docinfo&quot; is now being ignored.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-07-24 @permid abolished -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//@permid&quot;\"/>\n        <xsl:with-param name=\"date-string\" select=\"'2024-07-24'\" />\n        <xsl:with-param name=\"max-reports\" select=\"'0'\" />\n        <xsl:with-param name=\"message\" select=\"'Experiments using the @permid attribute have concluded, and the attribute is now being ignored.  You can safely remove them all and then this message will stop.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-11-19 listing no longer has caption, uses title only -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"$document-root//listing/caption\"/>\n        <xsl:with-param name=\"date-string\" select=\"'2024-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'Use of caption in listings is no longer supported. Listings should only have a title. We will try to honor your intent.'\"/>\n    </xsl:call-template>\n  <!--  -->\n    <!-- 2025-04-18 -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//matches&quot;\"/>\n        <xsl:with-param name=\"date-string\" select=\"'2025-04-18'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;matches&quot; element inside an &quot;exercise&quot; (or similar) to specify a drag-n-drop problem has been replaced by the &quot;cardsort&quot; element.  This is an entirely cosmetic change.  Until you make the change in your source, we will try to honor your intent.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2025-04-23 -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//matches/match/@order|$document-root//cardsort/match/@order&quot;\"/>\n        <xsl:with-param name=\"date-string\" select=\"'2025-04-23'\" />\n        <xsl:with-param name=\"message\" select=\"'an &quot;@order&quot; attribute on a &quot;match&quot; is deprecated and should instead be placed on the contained &quot;premise&quot; element(s).  If your cardsort problem is simply a 1-1 correspondence, then we will honor your intent.  If your problem is more complicated (multiple &quot;premise&quot; inside a &quot;match&quot;) results may be variable and unpredictable.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2025-04-25  deprecate \"program@datafile\" in favor of \"program@add-files\"   -->\n    <xsl:call-template name=\"deprecation-message\">\n      <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//datafile[@datafile]&quot;\" />\n      <xsl:with-param name=\"date-string\" select=\"'2025-04-25'\" />\n      <xsl:with-param name=\"message\" select=\"'the program@datafile attribute containing datafile@filename has been deprecated. You should change programs to use the @add-files attribute and use it specify the xml:id of datafiles to make available.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2025-07-19  Docinfo worksheet margins for LaTeX now ignored -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$docinfo/latex-output/worksheet&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-07-19'\" />\n        <xsl:with-param name=\"message\" select=\"'Custom margin specification for worksheets (in both HTML and LaTeX) has moved to the publication file in &quot;/publication/common/worksheet&quot;.  Any margins specified in &quot;docinfo/latex-output/worksheet&quot; will be ignored.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2025-08-27  \"label\" element in \"latex-image\" is no longer functional -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//latex-image/label&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-08-27'\" />\n        <xsl:with-param name=\"message\" select=\"'use of a &quot;label&quot; element inside a &quot;latex-image&quot; was deprecated on 2024-07-29.  It is no longer functional, so you must formulate the appropriate LaTeX code (TikZ) as a replacement.  If the &quot;label&quot; element remains, results could be unpredictable.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2025-11-04  @runestone attribute signals obsolete \"htmlhack\" exercises -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//@runestone&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2025-11-04'\" />\n        <xsl:with-param name=\"message\" select=\"'the temporary &quot;@runestone&quot; attribute was used to temporarily specify a raw HTML version of a Runestone problem.  That device is now obsolete.  The exercise remains, but its contents have been neutered to form an informational message.  Consider authoring the exercise using supported PreTeXt syntax.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2026-05-11  \"me\" and \"men\" deprecated in favor of bare \"md\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//me|$document-root//men&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2026-05-11'\" />\n        <xsl:with-param name=\"max-reports\" select=\"'8'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;me&quot; and &quot;men&quot; elements have been deprecated.  The replacement is an &quot;md&quot; with no &quot;mrow&quot; children, and numbering is controlled by the &quot;@number&quot; attribute, or a global setting in &quot;docinfo&quot;.'\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2026-05-11  \"mdn\" deprecated in favor of \"md\" -->\n    <xsl:call-template name=\"deprecation-message\">\n        <xsl:with-param name=\"occurrences\" select=\"&quot;$document-root//mdn&quot;\" />\n        <xsl:with-param name=\"date-string\" select=\"'2026-05-11'\" />\n        <xsl:with-param name=\"max-reports\" select=\"'8'\" />\n        <xsl:with-param name=\"message\" select=\"'the &quot;mdn&quot; element has been deprecated.  The replacement is an &quot;md&quot;, and numbering is controlled by the &quot;@number&quot; attribute, or a global setting in &quot;docinfo&quot;.'\"/>\n    </xsl:call-template>\n    <!--  -->\n</xsl:template>\n\n<!-- Miscellaneous -->\n\n<!-- ToDo's are silent unless requested as part of an -->\n<!-- author's report, then marginal.  They exist in   -->\n<!-- source as prefixed comments, and that prefix     -->\n<!-- suffices as part of the output                   -->\n<xsl:template match=\"comment()[translate(substring(normalize-space(string(.)), 1, 4), &UPPERCASE;, &LOWERCASE;) = 'todo']\">\n    <xsl:call-template name=\"margin-warning\">\n        <xsl:with-param name=\"warning\">\n            <xsl:call-template name=\"strip-leading-whitespace\">\n                <xsl:with-param name=\"text\">\n                    <xsl:value-of select=\".\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Converter information for header, generic -->\n<!-- params are strings to make comment lines in target file    -->\n<!-- \"copy-of\" supresses output-escaping of HTML/XML characters -->\n<!-- Parameterize by need/desire for date/commit information    -->\n<xsl:template name=\"converter-blurb\">\n    <xsl:param name=\"lead-in\" />\n    <xsl:param name=\"lead-out\" />\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>********************************************</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*       Generated from PreTeXt source      *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:if test=\"$b-debug-datedfiles\">\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*       on </xsl:text>  <xsl:value-of select=\"date:date-time()\" />\n                                                                      <xsl:text>       *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*   A recent stable commit (2022-07-01):   *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>* 6c761d3dba23af92cba35001c852aac04ae99a5f *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*                                          *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*         https://pretextbook.org          *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*                                          *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>********************************************</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- This version is identical (keep in sync) but *never* has any date  -->\n<!-- information.  This was added for the multitude of files in an HTML  -->\n<!-- conversion, when we just left one file (index.html) with a date. -->\n<xsl:template name=\"converter-blurb-no-date\">\n    <xsl:param name=\"lead-in\" />\n    <xsl:param name=\"lead-out\" />\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>********************************************</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*       Generated from PreTeXt source      *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*                                          *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*         https://pretextbook.org          *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>*                                          *</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$lead-in\" /><xsl:text>********************************************</xsl:text><xsl:copy-of select=\"$lead-out\" /><xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- We issue specialized blurbs with appropriate comment lines -->\n<xsl:template name=\"converter-blurb-text\">\n    <xsl:call-template name=\"converter-blurb\">\n        <xsl:with-param name=\"lead-in\"  select=\"''\" />\n        <xsl:with-param name=\"lead-out\" select=\"''\" />\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"converter-blurb-latex\">\n    <xsl:call-template name=\"converter-blurb\">\n        <xsl:with-param name=\"lead-in\"  select=\"'%'\" />\n        <xsl:with-param name=\"lead-out\" select=\"'%'\" />\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"converter-blurb-html\">\n    <xsl:call-template name=\"converter-blurb\">\n        <xsl:with-param name=\"lead-in\">\n            <xsl:text disable-output-escaping='yes'>&lt;!--</xsl:text>\n        </xsl:with-param>\n        <xsl:with-param name=\"lead-out\">\n            <xsl:text disable-output-escaping='yes'>--&gt;</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"converter-blurb-html-no-date\">\n    <xsl:call-template name=\"converter-blurb-no-date\">\n        <xsl:with-param name=\"lead-in\">\n            <xsl:text disable-output-escaping='yes'>&lt;!--</xsl:text>\n        </xsl:with-param>\n        <xsl:with-param name=\"lead-out\">\n            <xsl:text disable-output-escaping='yes'>--&gt;</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"converter-blurb-python\">\n    <xsl:call-template name=\"converter-blurb\">\n        <xsl:with-param name=\"lead-in\"  select=\"'#'\" />\n        <xsl:with-param name=\"lead-out\" select=\"'#'\" />\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"converter-blurb-perl\">\n    <xsl:call-template name=\"converter-blurb\">\n        <xsl:with-param name=\"lead-in\"  select=\"'#'\" />\n        <xsl:with-param name=\"lead-out\" select=\"'#'\" />\n    </xsl:call-template>\n</xsl:template>\n\n<!-- WeBWorK's editor is not monospaced, so the right border       -->\n<!-- looks ragged.  We effectively rubout the right margin,        -->\n<!-- then translate all asterisks to octothorpes.  The left margin -->\n<!-- becomes three octothorpes to not be confused with metadata    -->\n<!-- This can revert to  -perl  if the editor changes              -->\n<xsl:template name=\"converter-blurb-webwork\">\n    <xsl:variable name=\"blurb\">\n        <xsl:call-template name=\"converter-blurb\">\n            <xsl:with-param name=\"lead-in\"  select=\"'##'\" />\n            <xsl:with-param name=\"lead-out\" select=\"'XXX'\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:value-of select=\"str:replace(str:replace($blurb, '*XXX', ''), '*', '#')\" />\n</xsl:template>\n\n<!-- ################# -->\n<!-- Percent Utilities -->\n<!-- ################# -->\n\n<!-- Take as input a node set of attributes -->\n<!-- of percentages (with '%' at the end)   -->\n<!-- Check that sum is under 100%           -->\n<!-- NB: can $nodes be stripped without the  position()  function? -->\n<xsl:template name=\"cap-width-at-one-hundred-percent\">\n    <xsl:param name=\"nodeset\" />\n    <xsl:param name=\"cap\" select=\"100\" />\n    <xsl:if test=\"$nodeset\">\n        <xsl:if test=\"substring-before($nodeset[1], '%')&gt;$cap\">\n            <xsl:message terminate=\"yes\">PTX:FATAL:   percentage attributes sum to over 100%</xsl:message>\n        </xsl:if>\n        <xsl:call-template name=\"cap-width-at-one-hundred-percent\">\n            <xsl:with-param name=\"nodeset\" select=\"$nodeset[position()&gt;1]\" />\n            <xsl:with-param name=\"cap\" select=\"$cap - substring-before($nodeset[1], '%')\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Take a string as input    -->\n<!-- Abort if not in the form  -->\n<!-- \\s*[0-9]*\\.?[0-9]*\\s*%\\s* -->\n<!-- Normalize to              -->\n<!-- [0-9]*\\.?[0-9]*%          -->\n<xsl:template name=\"normalize-percentage\">\n    <xsl:param name=\"percentage\" />\n    <xsl:variable name=\"stripped-percentage\">\n        <xsl:value-of select=\"normalize-space($percentage)\" />\n    </xsl:variable>\n    <xsl:if test=\"substring($stripped-percentage,string-length($stripped-percentage)) != '%'\">\n        <xsl:message terminate=\"yes\">PTX:FATAL:   expecting a percentage ending in '%'; got <xsl:value-of select=\"$stripped-percentage\"/></xsl:message>\n    </xsl:if>\n    <xsl:variable name=\"percent\">\n        <xsl:value-of select=\"normalize-space(substring($stripped-percentage,1,string-length($stripped-percentage) - 1))\" />\n    </xsl:variable>\n    <xsl:if test=\"number($percent) != $percent\">\n        <xsl:message terminate=\"yes\">PTX:FATAL:   expecting a numerical value preceding '%'; got <xsl:value-of select=\"$percent\"/></xsl:message>\n    </xsl:if>\n    <xsl:value-of select=\"concat($percent,'%')\" />\n</xsl:template>\n\n<!-- Sometimes this template is useful to see which    -->\n<!-- templates are not implemented at all in some new  -->\n<!-- (basic) conversion building just on this -common. -->\n<!-- Maybe \"dead-ending\" is preferable (remove the     -->\n<!-- apply-templates) and/or maybe a lower priority    -->\n<!-- will work better.                                 -->\n\n<!--\n<xsl:template match=\"*\" priority=\"0\">\n    <xsl:message>[<xsl:value-of select=\"local-name(.)\"/>]</xsl:message>\n    <xsl:apply-templates/>\n</xsl:template>\n-->\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-dynamic.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2022 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<xsl:import href=\"./pretext-html.xsl\"/>\n\n<!-- We create HTML5 output.  The @doctype-system attribute will    -->\n<!-- create a header in the old style that browsers will recognize  -->\n<!-- as signaling HTML5.  However  xsltproc  does one better and    -->\n<!-- writes the super-simple <!DOCTYPE html> header.  See all of    -->\n<!-- https://stackoverflow.com/questions/3387127/                   -->\n<!-- (set-html5-doctype-with-xslt)                                  -->\n<!--                                                                -->\n<!-- Since we write output into a single file, likely this          -->\n<!-- declaration is never active, but it serves as a model here for -->\n<!-- subsequent exsl:document elements.                             -->\n\n<xsl:output method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\" />\n\n<!-- It will be a problem if an author decides to name an interactive -->\n<!-- identically but we will consider this highly unlikely.           -->\n<xsl:variable name=\"main-file\" select=\"'dynamics-needing-static-parsing.html'\"/>\n<xsl:variable name=\"b-dynamics-static-seed\" select=\"true()\"/>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- Build a single page.  Actual use will require copying/placing      -->\n<!-- necessary \"external\" support files (JS, CSS, iframe HTML content). -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"$document-root//exercise[//setup]\" mode=\"standalone-page\"/>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-epub.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n<!-- http://stackoverflow.com/questions/10173139/empty-blank-namespace-declarations-being-generated-within-result-document -->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Building XHTML for the EPUB spec, which requires the    -->\n<!-- XHTML namespace on elements.  But since we import the   -->\n<!-- base HTML conversion, no amount of messing around can   -->\n<!-- make it happen correctly.  So we write literal elements -->\n<!-- as XML and after-the-fact we stich-up the necessary     -->\n<!-- namespace on the output files with regular expressions  -->\n<!-- in Python.  So...we have no namespace at all.           -->\n<xsl:stylesheet xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n                xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n                xmlns:svg=\"http://www.w3.org/2000/svg\"\n                xmlns:math=\"http://www.w3.org/1998/Math/MathML\"\n                xmlns:epub=\"http://www.idpf.org/2007/ops\"\n                xmlns:exsl=\"http://exslt.org/common\"\n                xmlns:date=\"http://exslt.org/dates-and-times\"\n                xmlns:pf=\"https://prefigure.org\"\n                exclude-result-prefixes=\"pi svg math epub pf\"\n                extension-element-prefixes=\"exsl date\">\n\n<!-- Trade on HTML markup, numbering, chunking, etc. -->\n<!-- Override as pecularities of EPUB conversion arise -->\n<xsl:import href=\"./pretext-common.xsl\" />\n<xsl:import href=\"./pretext-assembly.xsl\" />\n<xsl:import href=\"./pretext-html.xsl\" />\n\n<!-- TODO: free chunking level -->\n<!-- TODO: liberate GeoGebra, videos -->\n<!-- TODO: style Sage display-only code in a similar padded box -->\n\n<!-- Output as well-formed xhtml -->\n<!-- This may have no practical effect -->\n<xsl:output method=\"xml\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\" indent=\"no\" />\n\n<!-- This variable controls representations of interactive exercises   -->\n<!-- built in  pretext-assembly.xsl.  The imported  pretext-html.xsl   -->\n<!-- stylesheet sets it to \"dynamic\".  But for this stylesheet we want -->\n<!-- to utilize the \"standard\" PreTeXt exercise versions built with    -->\n<!-- \"static\".  See both  pretext-assembly.xsl  and  pretext-html.xsl  -->\n<!-- for more discussion. -->\n<xsl:variable name=\"exercise-style\" select=\"'static'\"/>\n\n<!-- Content will go into EPUB directory           -->\n<!-- package.opf is main metadata file             -->\n<!-- (META-INF/container.xml will point to it)     -->\n<!-- Unlikely to need to change this, but we could -->\n<xsl:variable name=\"content-dir\">\n    <xsl:text>EPUB</xsl:text>\n</xsl:variable>\n<xsl:variable name=\"css-dir\">\n    <xsl:text>css</xsl:text>\n</xsl:variable>\n<xsl:variable name=\"xhtml-dir\">\n    <xsl:text>xhtml</xsl:text>\n</xsl:variable>\n<xsl:variable name=\"package-file\">\n    <xsl:text>package.opf</xsl:text>\n</xsl:variable>\n<xsl:variable name=\"endnote-file\">\n    <xsl:text>endnotes.xhtml</xsl:text>\n</xsl:variable>\n\n<!-- The value of the unique-identifier attribute of -->\n<!-- the package element of the container file must  -->\n<!-- match the value of the id attribute of the      -->\n<!-- dc:identifier element in the metadata section   -->\n<!-- So we fix it here for uniformity                -->\n<!-- TODO: determine a better way to provide this    -->\n<xsl:variable name=\"uid-string\">\n    <xsl:text>pub-id</xsl:text>\n</xsl:variable>\n<xsl:variable name=\"mock-UUID\">mock-123456789-0-987654321</xsl:variable>\n\n<!-- We hard-code the chunking level.  Level 2 is the  -->\n<!-- default for books, which we presume throughout.   -->\n<!-- Specialized divisions, to the spine, assume this. -->\n<!-- NB: this override is only defined for a \"book\",   -->\n<!-- so when there is support for \"article\" it will    -->\n<!-- need new definitions.                             -->\n<xsl:variable name=\"chunk-level\">\n    <xsl:choose>\n        <xsl:when test=\"$root/book/part\">3</xsl:when>\n        <xsl:when test=\"$root/book\">2</xsl:when>\n        <!-- break \"article\" into \"section\" -->\n        <xsl:when test=\"$root/article/section\">1</xsl:when>\n        <!-- otherwise, no real divisions -->\n        <xsl:when test=\"$root/article\">0</xsl:when>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- We disable the ToC level to avoid any conflicts with chunk level -->\n<xsl:variable name=\"toc-level\" select=\"number(0)\" />\n\n<!-- XHTML files as output -->\n<xsl:variable name=\"file-extension\" select=\"'.xhtml'\" />\n\n<xsl:param name=\"tmpdir\"/>\n<xsl:param name=\"mathfile\"/>\n<xsl:variable name=\"math-repr\" select=\"document($mathfile)/pi:math-representations\"/>\n<!-- For MathML math, the \"speechfile\" is not used and an       -->\n<!-- empty string is passed in.  This does not seem to cause    -->\n<!-- an error here, or in any subsequent uses in the empty case -->\n<xsl:param name=\"speechfile\"/>\n<xsl:variable name=\"speech-repr\" select=\"document($speechfile)/pi:math-representations\"/>\n\n<!-- One of 'svg\", 'mml', 'kindle', or 'speech', always     -->\n<!-- Also 'kindle' dictates MathML output, but is primarily -->\n<!-- responsible for integrating PNG images in place of SVG -->\n<xsl:param name=\"math.format\"/>\n\n<!-- The  mathjax_latex()  routine in  pretext.py  is parameterized    -->\n<!-- by the format of the math being generated:                        -->\n<!--     'svg', 'mml', 'nemeth', 'speech', 'kindle'                    -->\n<!-- In turn, this dictates if clause-ending punctuation is absorbed   -->\n<!-- into the math or not:                                             -->\n<!--     'svg', 'mml', 'kindle' -> absorbed into display math only     -->\n<!--     'nemeth', 'speech'     -> never absorbed                      -->\n<!-- For this stylesheet, which consumes this math, we need to set     -->\n<!-- the matching behavior for the adjacent text nodes via an override -->\n<!-- of the global  math.punctuation.include  variable.                -->\n<xsl:variable name=\"math.punctuation.include\">\n    <xsl:choose>\n        <xsl:when test=\"($math.format = 'svg') or ($math.format = 'mml') or ($math.format = 'kindle')\">\n            <xsl:text>display</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"($math.format = 'speech')\">\n            <xsl:text>none</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- For WeBWorK in EPUB, we force WeBWorK to be static -->\n<xsl:variable name=\"b-webwork-inline-static\" select=\"true()\" />\n<xsl:variable name=\"b-webwork-divisional-static\" select=\"true()\" />\n<xsl:variable name=\"b-webwork-reading-static\" select=\"true()\" />\n<xsl:variable name=\"b-webwork-worksheet-static\" select=\"true()\" />\n\n<!-- Kindle needs various tweaks, way beyond just math as MathML -->\n<!-- and PNG images.  So a misnomer to call it a \"math format\",  -->\n<!-- but a a boolean sure helps                                  -->\n<xsl:variable name=\"b-kindle\" select=\"$math.format = 'kindle'\"/>\n\n<!-- If there are footnotes, we'll build and package a \"endnotes.xhtml\" file -->\n<xsl:variable name=\"b-has-endnotes\" select=\"boolean($document-root//fn|$document-root//aside|$document-root//biographical|$document-root//historical)\"/>\n\n<xsl:variable name=\"endnotes-have-math\">\n    <xsl:if test=\"$b-has-endnotes\">\n        <xsl:choose>\n            <xsl:when test=\"$document-root//fn//m\">\n                <xsl:text>true</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$document-root//aside//m or\n                            $document-root//aside//md[mrow]\">\n                <xsl:text>true</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$document-root//biographical//m or\n                            $document-root//biographical//md[mrow]\">\n                <xsl:text>true</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$document-root//historical//m or\n                            $document-root//historical//md[mrow]\">\n                <xsl:text>true</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:if>\n</xsl:variable>\n\n<xsl:variable name=\"b-endnotes-have-math\" select=\"$endnotes-have-math = 'true'\"/>\n\n<!-- Disable clipboardable -->\n<xsl:template name=\"insert-clipboardable-class\"/>\n\n<!-- Printables -->\n<!-- Worksheets and handouts get a near-duplicate HTML file designed for printing.  -->\n<!-- That is initiated very close to the entry template via a named template        -->\n<!-- \"make-printout-printables\".  We explicitly *do not* include any call to this   -->\n<!-- template in the entry template here, so these pages are not built (good).      -->\n<!-- But we do get little buttons to elect a printable version.  We have to kill    -->\n<!-- those buttons, since EPUB wants to go looking for the printable-version files. -->\n<xsl:template match=\"worksheet|handout\" mode=\"standalone-printout-links\"/>\n\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- Deprecation warnings are universal analysis of source and parameters   -->\n<!-- There is always a \"document root\" directly under the root element,     -->\n<!-- and we process it with the chunking template called below              -->\n<!-- Note that \"docinfo\" is at the same level and not structural, so killed -->\n<xsl:template match=\"/\">\n    <!-- no hope for an \"article\" so fail immediately, with warning -->\n    <xsl:if test=\"not($b-is-book or $b-is-article)\">\n        <xsl:call-template name=\"banner-warning\">\n            <xsl:with-param name=\"warning\">PTX:FATAL: EPUB creation is only implemented for a \"book\" or an \"article\",&#xa;not a \"<xsl:value-of select=\"local-name($document-root)\"/>\", and we cannot recover</xsl:with-param>\n        </xsl:call-template>\n        <xsl:message terminate=\"yes\">Quitting...</xsl:message>\n    </xsl:if>\n    <!-- analyze authored source -->\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"element-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"parameter-deprecation-warnings\"/>\n    <!-- Following should use $root or $document-root as defined -->\n    <!-- by the \"assembly\" template.  Checked 2020-07-16.        -->\n    <xsl:call-template name=\"setup\" />\n    <xsl:apply-templates select=\"$root\"/>\n    <xsl:call-template name=\"package-document\" />\n    <xsl:call-template name=\"packaging-info\"/>\n</xsl:template>\n\n<!-- First, we use the frontmatter element to trigger various necessary files     -->\n<!-- We process structural nodes via chunking routine in  xsl/mathbook-common.xsl -->\n<!-- This in turn calls specific modal templates defined elsewhere in this file   -->\n<xsl:template match=\"/pretext\">\n    <xsl:apply-templates select=\"$document-root//frontmatter\" mode=\"epub\" />\n    <xsl:call-template name=\"endnotes\"/>\n    <xsl:apply-templates mode=\"chunking\" />\n</xsl:template>\n\n<!-- ################ -->\n<!-- Structural Nodes -->\n<!-- ################ -->\n\n<!-- Read the code and documentation for \"chunking\" in xsl/pretext-common.xsl -->\n\n<!-- Normally a \"conclusion\" would be on a \"summary\" page, or a -->\n<!-- component of the page for its containing division.  In the -->\n<!-- EPUB conversion with \"chapter\" having \"section\" it gets an -->\n<!-- HTML page of its own as part of the \"summary\" hack.  Ditto -->\n<!-- for \"outcomes\" which might appear in a different order.    -->\n<xsl:template match=\"&STRUCTURAL;|chapter/conclusion|chapter/outcomes[preceding-sibling::section]\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:variable name=\"file\">\n        <xsl:value-of select=\"$content-dir\" />\n        <xsl:text>/</xsl:text>\n        <xsl:value-of select=\"$xhtml-dir\" />\n        <xsl:text>/</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n    </xsl:variable>\n    <!-- do not use \"doctype-system\" here        -->\n    <!-- do not create faux <!DOCTYPE html> here -->\n    <!-- NB:  If we add  xmlns=\"http://www.w3.org/1999/xhtml\"  to <html> here, -->\n    <!-- then we get plenty of top-level-ish  xmlns=\"\" which do not validate   -->\n    <!-- Any XML declaration seems to get scrubbed by the MathJax processing   -->\n    <!-- (converted to a comment), so we explicitly suppress it here, and in   -->\n    <!-- other exsl:document uses.                                             -->\n    <exsl:document href=\"{$file}\" method=\"xml\" omit-xml-declaration=\"yes\" encoding=\"UTF-8\" indent=\"no\">\n        <html>\n            <xsl:call-template name=\"html-theme-attributes\"/>\n            <head>\n                <xsl:text>&#xa;</xsl:text> <!-- a little formatting help -->\n                <xsl:call-template name=\"converter-blurb-html\" />\n                <xsl:call-template name=\"epub-kindle-css\"/>\n                <title>\n                    <xsl:apply-templates select=\".\" mode=\"type-name-number\" />\n                </title>\n            </head>\n            <!-- use class to repurpose HTML CSS work -->\n            <body class=\"ptx-content epub\">\n                <xsl:copy-of select=\"$content\" />\n                <!-- Copy MathJax's font information to the bottom -->\n                <xsl:copy-of select=\"document($mathfile)/pi:math-representations/svg:svg[@id='font-data']\"/>\n            </body>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- The book element gets mined in various ways,            -->\n<!-- but the \"usual\" HTML treatment can/should be thrown out -->\n<!-- At fixed level 2, this is a summary page from an        -->\n<!-- intermediate node, so we kill it                        -->\n<xsl:template match=\"book\" mode=\"intermediate\" />\n\n<!-- This seems a bit dangerous, but this content is fairly small -->\n<!-- and they are going into their own files.  So it seems the    -->\n<!-- right thing to do, while making minimal changes elsewhere.   -->\n<xsl:template match=\"chapter/conclusion|chapter/outcomes[preceding-sibling::section]\" mode=\"containing-filename\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n    <xsl:text>.xhtml</xsl:text>\n</xsl:template>\n\n<!-- If a \"book\" has some \"chapter\" subdivided by \"section\" then -->\n<!-- at a chunking level of 2, the \"chapter\" is an intermediate  -->\n<!-- node and will produce a \"summary\" page.  We implement that  -->\n<!-- to produce content that is a faux chapter that is just the  -->\n<!-- heading and the lead-in material.  Anything after the last  -->\n<!-- division (conclusion, outcomes) will create s of their own, -->\n<!-- which will appear as a continuation/ending of the chapter.  -->\n<!-- NB: based on version in  pretext-html.xsl                   -->\n<xsl:template match=\"frontmatter|chapter|appendix\" mode=\"intermediate\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <!-- location info for debugging efforts -->\n            <xsl:apply-templates select=\".\" mode=\"debug-location\" />\n            <!-- Heading, div for this structural subdivision -->\n            <section class=\"{local-name(.)}\">\n                <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                <xsl:apply-templates select=\".\" mode=\"section-heading\" />\n                <xsl:apply-templates select=\"author|objectives|introduction|titlepage|abstract\" />\n                <!-- deleted \"nav\" and summary links here -->\n            </section>\n            <xsl:if test=\"conclusion\">\n                <xsl:apply-templates select=\"conclusion\" mode=\"file-wrap\">\n                    <xsl:with-param name=\"content\">\n                        <xsl:apply-templates select=\"conclusion\"/>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n            </xsl:if>\n            <xsl:if test=\"outcomes\">\n                <xsl:apply-templates select=\"outcomes\" mode=\"file-wrap\">\n                    <xsl:with-param name=\"content\">\n                        <xsl:apply-templates select=\"outcomes\"/>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- At level 2, the backmatter summary is useless, since it is  -->\n<!-- all links, so just kill the intermediate chunking template.  -->\n<!-- Also do not include entries in the manifest or spine. -->\n<xsl:template match=\"backmatter\" mode=\"intermediate\" />\n\n\n\n<!-- ##################### -->\n<!-- Setup, Infrastructure -->\n<!-- ##################### -->\n\n<!-- The two fixed files of any EPUB                        -->\n<!-- (1) mimetype at top-level with prescribed content      -->\n<!-- (2) META-INF/container.xml with one variable attribute -->\n<xsl:template name=\"setup\">\n    <!-- No carriage return at the end (20 byte file) -->\n    <exsl:document href=\"mimetype\" method=\"text\">\n        <xsl:text>application/epub+zip</xsl:text>\n    </exsl:document>\n    <!-- Do not use \"doctype-system\" here                            -->\n    <!-- Automatically writes XML header at version 1.0, no encoding -->\n    <!-- Points to OPF metadata file (in two variables)              -->\n    <exsl:document href=\"META-INF/container.xml\" method=\"xml\" omit-xml-declaration=\"yes\" indent=\"no\">\n        <container version=\"1.0\" xmlns=\"urn:oasis:names:tc:opendocument:xmlns:container\">\n            <rootfiles>\n                <rootfile full-path=\"{$content-dir}/{$package-file}\" media-type=\"application/oebps-package+xml\" />\n            </rootfiles>\n        </container>\n    </exsl:document>\n</xsl:template>\n\n<!-- ############################## -->\n<!-- EPUB 3.0 Package Document file -->\n<!-- ############################## -->\n\n<!-- The primary index into various files -->\n<xsl:template name=\"package-document\">\n    <!-- Must be XML, UTF-8/16            -->\n    <!-- Required on package: version, id -->\n    <!-- Trying with no encoding, Gitden rejects? -->\n    <exsl:document href=\"{$content-dir}/{$package-file}\" method=\"xml\" omit-xml-declaration=\"yes\" indent=\"no\">\n        <package xmlns=\"http://www.idpf.org/2007/opf\"\n                 unique-identifier=\"{$uid-string}\" version=\"3.0\">\n            <xsl:call-template name=\"package-metadata\" />\n            <xsl:call-template name=\"package-manifest\" />\n            <xsl:call-template name=\"package-spine\" />\n        </package>\n    </exsl:document>\n</xsl:template>\n\n<!-- Honest to goodness metadata, no attributes     -->\n<!-- Required first child of  package  element      -->\n<!-- Required: dc:identifier, dc:title, dc:language -->\n<!-- TODO: add publisher etc from Dublin Core           -->\n<!-- TODO: see rights info handling in FCLA EPUB sample -->\n<xsl:template name=\"package-metadata\">\n    <metadata xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns=\"http://www.idpf.org/2007/opf\">\n        <!-- Optional in EPUB 3.0.1 spec -->\n        <xsl:for-each select=\"$bibinfo/author|$bibinfo/editor\">\n            <xsl:element name=\"dc:creator\">\n                <xsl:apply-templates select=\"personname\"/>\n            </xsl:element>\n        </xsl:for-each>\n        <!-- Required in EPUB 3.0.1 spec       -->\n        <!-- TODO: title-types can refine this -->\n        <xsl:element name=\"dc:title\">\n            <xsl:apply-templates select=\"$document-root\" mode=\"title-full\" />\n        </xsl:element>\n        <!-- Required in EPUB 3.0.1 spec                -->\n        <!-- Repeatable and more complicated, see spec  -->\n        <!-- id must match attribute on package element -->\n        <xsl:element name=\"dc:identifier\">\n            <xsl:attribute name=\"id\">\n                <xsl:value-of select=\"$uid-string\" />\n            </xsl:attribute>\n            <xsl:value-of select=\"$mock-UUID\" />\n        </xsl:element>\n        <!-- Required in EPUB 3.0.1 spec         -->\n        <!-- Also needed for Kindle conversion   -->\n        <!-- Codes according to RFC5646,         -->\n        <!-- our double form, eg en-US, seems OK -->\n        <xsl:element name=\"dc:language\">\n            <xsl:value-of select=\"$document-language\" />\n        </xsl:element>\n        <!-- Required in EPUB 3.0.1 spec    -->\n        <!-- Drop time zone, replace with Z -->\n        <!-- This is then a mild fiction    -->\n        <xsl:element name=\"meta\">\n            <xsl:attribute name=\"property\">\n                <xsl:text>dcterms:modified</xsl:text>\n            </xsl:attribute>\n            <xsl:value-of select=\"substring(date:date-time(),1,19)\" />\n            <xsl:text>Z</xsl:text>\n        </xsl:element>\n        <meta name=\"cover\" content=\"{$xhtml-dir}/{$epub-cover-dest}\" />\n    </metadata>\n</xsl:template>\n\n<!-- manifest element required as second element of package    -->\n<!-- a list of empty  item  elements (order unimportant),      -->\n<!-- Each item has                                             -->\n<!--    Required: id, for spine ordering                       -->\n<!--    Required: href, absolute or relative                   -->\n<!--    Required: media-type, critical (see PNG/JPG for cover) -->\n<!-- Exactly one item has the \"nav\" property                   -->\n<xsl:template name=\"package-manifest\">\n    <!-- cruise all objects within source via modal template -->\n    <!-- relevant objects report themselves and then recurse -->\n    <!-- create as a legitimate node-set for post-filtering  -->\n    <xsl:variable name=\"discovery\">\n        <xsl:apply-templates select=\"$document-root\" mode=\"manifest\"/>\n    </xsl:variable>\n    <xsl:variable name=\"discovery-manifest\" select=\"exsl:node-set($discovery)\"/>\n    <!-- start \"manifest\" with one-off items -->\n    <manifest xmlns=\"http://www.idpf.org/2007/opf\">\n        <xsl:choose>\n            <xsl:when test=\"$b-kindle\">\n                <item id=\"css-kindle\" href=\"{$css-dir}/kindle.css\" media-type=\"text/css\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <item id=\"css-epub\" href=\"{$css-dir}/epub.css\" media-type=\"text/css\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <item id=\"cover-page\" href=\"{$xhtml-dir}/cover-page.xhtml\" media-type=\"application/xhtml+xml\"/>\n        <item id=\"table-contents\"\n              href=\"{$xhtml-dir}/table-contents.xhtml\"\n              media-type=\"application/xhtml+xml\">\n            <!-- TODO: If the TOC expands to include more than -->\n            <!-- chapter and appendix, this will need revision. -->\n            <xsl:attribute name=\"properties\">\n                <xsl:choose>\n                    <xsl:when test=\"($b-is-book and ($document-root//chapter/title/m or $document-root//appendix/title/m))\">\n                    <xsl:choose>\n                            <xsl:when test=\"$math.format = 'mml' or\n                                            $math.format = 'kindle'\">\n                                <xsl:text>nav mathml</xsl:text>\n                            </xsl:when>\n                            <xsl:when test=\"$math.format = 'svg'\">\n                                <xsl:text>nav svg</xsl:text>\n                            </xsl:when>\n                        </xsl:choose>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>nav</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n        </item>\n        <item id=\"cover-image\" href=\"{$xhtml-dir}/{$epub-cover-dest}\" properties=\"cover-image\">\n            <xsl:attribute name=\"media-type\">\n                <xsl:variable name=\"extension\">\n                    <xsl:call-template name=\"file-extension\">\n                        <xsl:with-param name=\"filename\" select=\"$epub-cover-dest\" />\n                    </xsl:call-template>\n                </xsl:variable>\n                <xsl:choose>\n                    <xsl:when test=\"$extension='png'\">\n                        <xsl:text>image/png</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"$extension='jpeg' or $extension='jpg'\">\n                        <xsl:text>image/jpeg</xsl:text>\n                    </xsl:when>\n                </xsl:choose>\n            </xsl:attribute>\n        </item>\n        <!-- cruise found objects, including comments we generate to help debug       -->\n        <!-- NB: * could be just \"item\", but we generally want all elements           -->\n        <!-- Strategy: compare @href of each candidate item with the @href of each    -->\n        <!-- preceding item, and only copy into the result tree if the @href is \"new\" -->\n        <!-- Duplication removal inspired by:                                         -->\n        <!-- XSLT Cookbook, 2nd Edition, Copyright 2006, O'Reilly Media, Inc.         -->\n        <!-- Recipe 5.1, Ignoring Duplicate Elements                                  -->\n        <!-- www.oreilly.com/library/view/xslt-cookbook/0596003722/ch04s03.html       -->\n        <xsl:for-each select=\"($discovery-manifest/*|$discovery-manifest/comment())[not(@href = preceding::*/@href)]\">\n            <xsl:copy-of select=\".\"/>\n        </xsl:for-each>\n        <xsl:if test=\"$b-has-endnotes\">\n            <item id=\"endnotes\" href=\"{$xhtml-dir}/{$endnote-file}\"\n                  media-type=\"application/xhtml+xml\">\n                <xsl:if test=\"$b-endnotes-have-math\">\n                    <xsl:attribute name=\"properties\">\n                        <xsl:choose>\n                            <xsl:when test=\"$math.format = 'mml' or\n                                            $math.format = 'kindle'\">\n                                <xsl:text>mathml</xsl:text>\n                            </xsl:when>\n                            <xsl:when test=\"$math.format = 'svg'\">\n                                <xsl:text>svg</xsl:text>\n                            </xsl:when>\n                        </xsl:choose>\n                    </xsl:attribute>\n                </xsl:if>\n            </item>\n        </xsl:if>\n    </manifest>\n</xsl:template>\n\n<!-- Traverse elements only in subtree, looking for   -->\n<!-- items that will be files to list in the manifest -->\n<xsl:template match=\"*\" mode=\"manifest\">\n    <xsl:apply-templates select=\"*\" mode=\"manifest\" />\n</xsl:template>\n\n<!-- Build an empty item element for each CHAPTER, -->\n<!-- FRONTMATTER, BACKMATTER, -->\n<!-- Don't include \"backmatter\", all summary       -->\n<!-- recurse into contents for image files, etc    -->\n<!-- See \"Core Media Type Resources\"               -->\n<!-- Add to spine identically                      -->\n<!-- Specialized divisions are terminal in back    -->\n<!-- matter, and only a separate file when within  -->\n<!-- a \"chapter\", at level 2                       -->\n<xsl:template match=\"frontmatter|colophon|biography|dedication|acknowledgement|preface|chapter|chapter/conclusion|chapter/outcomes[preceding-sibling::section]|appendix|index|section|exercises|chapter/reading-questions|chapter/solutions|appendix/solutions|backmatter/solutions|chapter/references|appendix/references|backmatter/references\" mode=\"manifest\">\n    <!-- Annotate manifest entries -->\n    <xsl:comment>\n        <xsl:apply-templates select=\".\" mode=\"long-name\" />\n    </xsl:comment>\n    <!-- one  item  element per chapter -->\n    <xsl:element name=\"item\" xmlns=\"http://www.idpf.org/2007/opf\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <!-- properties are iff, so validator complains if extra -->\n        <!-- condition on math presence for svg/mathml property  -->\n        <!-- TODO: use a parameter switch for output style       -->\n        <!-- Study: https://github.com/w3c/epubcheck/issues/420  -->\n        <!-- Processing with page2svg makes it appear SVG images exist -->\n        <!-- Set properties=\"svg\" or properties=\"mathml\" when a -->\n        <!-- file contains math in one of thse formats. -->\n        <!-- There are simply too many edge cases to do this -->\n        <!-- based on document structure alone, so read the actual -->\n        <!-- XHTML files we've already written and look for svg -->\n        <!-- or math tags in them. -->\n        <xsl:variable name=\"has-math\">\n            <xsl:variable name=\"contents-filename\">\n                <xsl:value-of select=\"$tmpdir\" />\n                <xsl:text>/</xsl:text>\n                <xsl:value-of select=\"$content-dir\" />\n                <xsl:text>/</xsl:text>\n                <xsl:value-of select=\"$xhtml-dir\" />\n                <xsl:text>/</xsl:text>\n                <xsl:apply-templates select=\".\"\n                                     mode=\"containing-filename\"/>\n            </xsl:variable>\n            <xsl:variable name=\"filedata\"\n                          select=\"document($contents-filename)\"/>\n            <xsl:choose>\n                <xsl:when test=\"$filedata//svg:svg|$filedata//math:math\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>false</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:variable name=\"b-has-math\" select=\"$has-math = 'true'\" />\n        <xsl:if test=\"$b-has-math\">\n            <xsl:attribute name=\"properties\">\n                <xsl:choose>\n                    <xsl:when test=\"$math.format = 'mml' or $math.format = 'kindle'\">\n                        <xsl:text>mathml</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"$math.format = 'svg'\">\n                        <xsl:text>svg</xsl:text>\n                    </xsl:when>\n                </xsl:choose>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- TODO: coordinate with manifest/script on xhtml extension -->\n        <xsl:attribute name=\"href\">\n            <xsl:value-of select=\"$xhtml-dir\" />\n            <xsl:text>/</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n        </xsl:attribute>\n        <xsl:attribute name=\"media-type\">\n            <xsl:text>application/xhtml+xml</xsl:text>\n        </xsl:attribute>\n    </xsl:element>\n    <!-- recurse, eg from chapter down into a section -->\n    <xsl:apply-templates select=\"*\" mode=\"manifest\" />\n</xsl:template>\n\n<!-- How the files are organized into the spine  -->\n<!-- Book opens to first time linear=\"no\"        -->\n<!-- Each must reference an id in the manifest   -->\n<xsl:template name=\"package-spine\">\n    <spine xmlns=\"http://www.idpf.org/2007/opf\">\n        <itemref idref=\"cover-page\" linear=\"yes\" />\n        <itemref idref=\"table-contents\" linear=\"yes\"/>\n        <xsl:apply-templates select=\"$document-root\" mode=\"spine\" />\n        <xsl:if test=\"$b-has-endnotes\">\n            <itemref idref=\"endnotes\" linear=\"no\" />\n        </xsl:if>\n    </spine>\n</xsl:template>\n\n<!-- Traverse subtree, looking for items to include  -->\n<xsl:template match=\"*\" mode=\"spine\">\n    <xsl:apply-templates select=\"*\" mode=\"spine\" />\n</xsl:template>\n\n<!-- Simplest scenario is spine matches manifest, all with @linear=\"yes\" -->\n<!-- Specialized divisions will only become files in the manifest at     -->\n<!-- chunk level 2, in other words, peers of chapters or sections        -->\n<!-- (book or chapter/appendix as parent, respectively)                  -->\n<xsl:template match=\"frontmatter|colophon|acknowledgement|biography|dedication|preface|chapter|appendix|index|section|exercises[parent::book|parent::chapter|parent::appendix]|reading-questions[parent::book|parent::chapter|parent::appendix]|chapter/solutions|appendix/solutions|backmatter/solutions|chapter/references|appendix/references|backmatter/references|glossary[parent::book|parent::chapter|parent::appendix]|conclusion[parent::chapter]|outcomes[preceding-sibling::section]\" mode=\"spine\">\n    <xsl:element name=\"itemref\" xmlns=\"http://www.idpf.org/2007/opf\">\n        <xsl:attribute name=\"idref\">\n            <xsl:apply-templates select=\".\" mode=\"html-id\" />\n        </xsl:attribute>\n        <xsl:attribute name=\"linear\">\n            <xsl:text>yes</xsl:text>\n        </xsl:attribute>\n    </xsl:element>\n    <xsl:apply-templates select=\"*\" mode=\"spine\" />\n</xsl:template>\n\n<!-- This template writes out some information necessary     -->\n<!-- for successful organization of the necessary files to   -->\n<!-- make a complete package for the eventual EPUB.  This is -->\n<!-- the actual output of the stylesheet itself.  There is   -->\n<!-- no namespace information, so when the Python script     -->\n<!-- gets this, there is no need for any namespace           -->\n<!-- provisions with the  lxml  library.                     -->\n<!--                                                         -->\n<!-- Each image filename is a legitimate image in use in the -->\n<!-- EPUB XHTML, but the filename may be duplicated is used  -->\n<!-- more than once.  That is OK, the only inefficiency is   -->\n<!-- that it will simply be copied onto itself.              -->\n<xsl:template name=\"packaging-info\">\n    <packaging>\n        <filename>\n            <!-- for actual EPUB file eventually output -->\n            <xsl:apply-templates select=\"$document-root\" mode=\"title-filesafe\"/>\n        </filename>\n        <!-- Information about the cover file to transmit to the Python build routine -->\n        <cover source=\"{$epub-cover-source}\" dest=\"{$epub-cover-dest}\">\n            <!-- yes/no on if the authored provided a custom image file -->\n            <xsl:attribute name=\"authored-cover\">\n                <xsl:choose>\n                    <xsl:when test=\"$b-authored-cover\">\n                        <xsl:text>yes</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>no</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n        </cover>\n        <!-- These may be used in automated creation of a cover image -->\n        <title>\n            <xsl:apply-templates select=\"$document-root\" mode=\"title-simple\"/>\n        </title>\n        <subtitle>\n            <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\"/>\n        </subtitle>\n        <author>\n            <xsl:apply-templates select=\"$bibinfo/author\" mode=\"name-list\"/>\n        </author>\n        <!-- Decide what to do with preview images, etc. -->\n        <images>\n            <xsl:for-each select=\"$document-root//image\">\n                <image>\n                    <!-- filename begins with directories from publisher file -->\n                    <xsl:attribute name=\"sourcename\">\n                        <xsl:apply-templates select=\".\" mode=\"epub-base-filename\">\n                            <xsl:with-param name=\"purpose\" select=\"'read'\"/>\n                        </xsl:apply-templates>\n                    </xsl:attribute>\n                    <xsl:attribute name=\"filename\">\n                        <xsl:apply-templates select=\".\" mode=\"epub-base-filename\">\n                            <xsl:with-param name=\"purpose\" select=\"'write'\"/>\n                        </xsl:apply-templates>\n                    </xsl:attribute>\n                </image>\n            </xsl:for-each>\n        </images>\n    </packaging>\n</xsl:template>\n\n<!-- Include the appropriate CSS file depending on output -->\n<xsl:template name=\"epub-kindle-css\">\n    <xsl:choose>\n        <xsl:when test=\"$b-kindle\">\n            <link href=\"../{$css-dir}/kindle.css\" rel=\"stylesheet\" type=\"text/css\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <link href=\"../{$css-dir}/epub.css\" rel=\"stylesheet\" type=\"text/css\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ############# -->\n<!-- Content files -->\n<!-- ############# -->\n\n<!-- \"coverpage.html\" comes in two flavors:                            -->\n<!--                                                                   -->\n<!-- 1.  An author provides a cover image via the publication file and -->\n<!--     then this page has no need of any CSS and the body has a      -->\n<!--     very specific (short) form. -->\n<!--                                                                   -->\n<!-- 2.  No cover image is provided by the author.  The core Python    -->\n<!--     routines will try very hard to build a simple generic image,  -->\n<!--     very similar (but not identical) to what we create here.  But -->\n<!--     that process can fail, and when it does, various packaging    -->\n<!--     here is backed out.  More immediately, we build a simple page -->\n<!--     (with CSS) having title, subtitle, and authors.               -->\n\n<xsl:template match=\"frontmatter\" mode=\"epub\">\n    <exsl:document href=\"{$content-dir}/{$xhtml-dir}/cover-page.xhtml\" method=\"xml\" omit-xml-declaration=\"yes\" encoding=\"UTF-8\" indent=\"no\">\n        <html>\n            <xsl:call-template name=\"html-theme-attributes\"/>\n            <!-- head element should not be empty -->\n            <head>\n                <meta charset=\"utf-8\"/>\n                <title>\n                    <xsl:apply-templates select=\"$document-root\" mode=\"title-full\"/>\n                </title>\n                <xsl:if test=\"not($b-authored-cover)\">\n                    <xsl:call-template name=\"epub-kindle-css\"/>\n                </xsl:if>\n            </head>\n            <body class=\"ptx-content epub\">\n                <xsl:choose>\n                    <xsl:when test=\"$b-authored-cover\">\n                        <section epub:type=\"cover\">\n                            <!-- https://ebookflightdeck.com/handbook/coverimage   -->\n                            <img src=\"{$epub-cover-dest}\" alt=\"cover image\"/>\n                        </section>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <section epub:type=\"cover\" class=\"frontmatter\">\n                            <h1 class=\"heading\">\n                                <span class=\"title\">\n                                    <xsl:apply-templates select=\"$document-root\" mode=\"title-full\" />\n                                    <xsl:if test=\"$document-root/subtitle\">\n                                        <xsl:text>:</xsl:text>\n                                    </xsl:if>\n                                </span>\n                                <xsl:if test=\"$document-root/subtitle\">\n                                    <xsl:text> </xsl:text>\n                                    <span class=\"subtitle\">\n                                        <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\" />\n                                    </span>\n                                </xsl:if>\n                            </h1>\n                            <div class=\"author\">\n                                <div class=\"author-name\">\n                                    <xsl:apply-templates select=\"$bibinfo/author\" mode=\"name-list\"/>\n                                </div>\n                            </div>\n                        </section>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </body>\n        </html>\n    </exsl:document>\n    <exsl:document href=\"{$content-dir}/{$xhtml-dir}/table-contents.xhtml\" method=\"xml\" omit-xml-declaration=\"yes\" encoding=\"UTF-8\" indent=\"no\">\n        <html xmlns:epub=\"http://www.idpf.org/2007/ops\">\n            <xsl:call-template name=\"html-theme-attributes\"/>\n            <head>\n                <meta charset=\"utf-8\"/>\n                <xsl:call-template name=\"epub-kindle-css\"/>\n                <title>Table of Contents</title>\n            </head>\n            <body class=\"ptx-content epub\" epub:type=\"frontmatter\">\n                <nav epub:type=\"toc\" id=\"toc\">\n                    <h1>Table of Contents</h1>\n                    <ol>\n                        <!-- top-level divisions, for a book -->\n                        <xsl:for-each select=\"$document-root/chapter[$b-is-book]|$document-root/section[$b-is-article]\">\n                            <li>\n                                <xsl:element name=\"a\">\n                                    <xsl:attribute name=\"href\">\n                                        <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n                                    </xsl:attribute>\n                                    <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n                                </xsl:element>\n                            </li>\n                        </xsl:for-each>\n                        <!-- following divisions identical for book v. article -->\n                        <xsl:if test=\"$document-root/backmatter/appendix|$document-root/backmatter/solutions\">\n                            <li class=\"no-marker\">\n                                <span>Appendices</span>\n                                <ol type=\"A\">\n                                    <xsl:for-each select=\"$document-root/backmatter/appendix|$document-root/backmatter/solutions\">\n                                        <li>\n                                            <xsl:element name=\"a\">\n                                                <xsl:attribute name=\"href\">\n                                                    <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n                                                </xsl:attribute>\n                                                <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n                                            </xsl:element>\n                                        </li>\n                                    </xsl:for-each>\n                                </ol>\n                            </li>\n                        </xsl:if>\n                        <xsl:for-each select=\"$document-root/backmatter/references|$document-root/backmatter/index\">\n                            <li class=\"no-marker\">\n                                <xsl:element name=\"a\">\n                                    <xsl:attribute name=\"href\">\n                                        <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n                                    </xsl:attribute>\n                                    <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n                                </xsl:element>\n                            </li>\n                        </xsl:for-each>\n                    </ol>\n                </nav>\n            </body>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- An abstract named template accepts input text and   -->\n<!-- output text, then wraps it for the Sage Cell Server -->\n<xsl:template match=\"sage\" mode=\"sage-active-markup\">\n    <xsl:param name=\"in\" />\n    <xsl:param name=\"out\" />\n    <xsl:if test=\"$in!=''\">\n        <pre class=\"code input\">\n            <xsl:value-of select=\"$in\" />\n        </pre>\n    </xsl:if>\n    <xsl:if test=\"$out!=''\">\n        <pre class=\"code output\">\n            <xsl:value-of select=\"$out\" />\n        </pre>\n    </xsl:if>\n</xsl:template>\n\n<!-- An abstract named template accepts input text   -->\n<!-- and provides the display class, so untouchable  -->\n<xsl:template name=\"sage-display-markup\">\n    <xsl:param name=\"in\" />\n    <xsl:if test=\"$in!=''\">\n        <pre>\n            <xsl:value-of select=\"$in\" />\n        </pre>\n    </xsl:if>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Images -->\n<!-- ###### -->\n\n<!-- We assume each image is a raster image or an SVG -->\n<!-- Raster:      @source has an extension (eg PNG)   -->\n<!-- Vector/SVG:  @source, no extension               -->\n<!-- Code:        eg image/asymptote                  -->\n<!-- Need to add to manifest accurately,              -->\n<!-- and also include into source                     -->\n\n<!-- Base filename for an image,  -->\n<!-- mostly handling the @source case -->\n\n<!-- Parametrized by \"read\": -->\n<!-- 'read' produces path to source file in input folder tree -->\n<!-- 'write' produces path to file in output folder tree      -->\n<xsl:template match=\"image\" mode=\"epub-base-filename\">\n    <xsl:param name=\"purpose\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"@source\">\n            <xsl:variable name=\"extension\">\n                <xsl:call-template name=\"file-extension\">\n                    <xsl:with-param name=\"filename\" select=\"@source\" />\n                </xsl:call-template>\n            </xsl:variable>\n            <!-- PDF LaTeX, SVG HTML, PNG Kindle if not indicated -->\n            <xsl:choose>\n                <xsl:when test=\"$purpose = 'read'\">\n                    <xsl:value-of select=\"$external-directory-source\"/>\n                </xsl:when>\n                <xsl:when test=\"$purpose = 'write'\">\n                    <xsl:value-of select=\"$external-directory\"/>\n                </xsl:when>\n            </xsl:choose>\n            <xsl:apply-templates select=\"@source\" />\n            <xsl:if test=\"$extension=''\">\n                <xsl:call-template name=\"best-file-extension\"/>\n            </xsl:if>\n        </xsl:when>\n        <!-- Various interactive bits get static images as replacements for    -->\n        <!-- interactivity and become images with filenames relative to the    -->\n        <!-- *generated* directories, and hence are of predictable image types -->\n        <!--                                                                   -->\n        <!-- Audio, Video, Interactive: automatic screenshot preview, PNG      -->\n        <!-- Audio, Video, Interactive: QR code, PNG                           -->\n        <!-- Video Play Button (FigLeaf):  PNG stock image                     -->\n        <!-- YouTube: provided video preview, JPG                              -->\n        <!--                                                                   -->\n        <!-- Author-supplied images to be used as previews for audio, video,   -->\n        <!-- and interactive become  image/@source  and so are handled above   -->\n        <!-- and are \"external\", not \"generated\"                               -->\n        <xsl:when test=\"@pi:generated\">\n            <xsl:variable name=\"extension\">\n                <xsl:call-template name=\"file-extension\">\n                    <xsl:with-param name=\"filename\" select=\"@pi:generated\" />\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"$purpose = 'read'\">\n                    <xsl:value-of select=\"$generated-directory-source\"/>\n                </xsl:when>\n                <xsl:when test=\"$purpose = 'write'\">\n                    <xsl:value-of select=\"$generated-directory\"/>\n                </xsl:when>\n            </xsl:choose>\n            <!-- Maybe with an extension and OK.  If not, -->\n            <!-- we provide a good extension right now.   -->\n            <xsl:value-of select=\"@pi:generated\"/>\n            <!-- MOM generated files come extensionless since   -->\n            <!-- we/MOM can make them in all desirable formats, -->\n            <!-- so we switch on Kindle or not.                 -->\n            <xsl:if test=\"$extension = ''\">\n                <xsl:call-template name=\"best-file-extension\"/>\n            </xsl:if>\n        </xsl:when>\n        <xsl:when test=\"latex-image|sageplot|asymptote|mermaid|pf:prefigure\">\n            <xsl:choose>\n                <xsl:when test=\"$purpose = 'read'\">\n                    <xsl:value-of select=\"$generated-directory-source\"/>\n                </xsl:when>\n                <xsl:when test=\"$purpose = 'write'\">\n                    <xsl:value-of select=\"$generated-directory\"/>\n                </xsl:when>\n            </xsl:choose>\n            <!-- All of the following \"source language\" images should     -->\n            <!-- be available as vector graphics, and thus in SVG format, -->\n            <!-- or convertible to SVG format.  We prefer SVG format.     -->\n            <!-- However, Kindle is hostile to SVG, so we need to also    -->\n            <!-- have PNG versions.                                       -->\n            <xsl:choose>\n                <xsl:when test=\"latex-image\">\n                    <xsl:text>latex-image/</xsl:text>\n                    <xsl:apply-templates select=\"latex-image\" mode=\"image-source-basename\"/>\n                    <xsl:call-template name=\"best-file-extension\"/>\n                </xsl:when>\n                <!-- A 2D \"sageplot\" is just like any other image built from source -->\n                <xsl:when test=\"sageplot[not(@variant) or (@variant = '2d')]\">\n                    <xsl:text>sageplot/</xsl:text>\n                    <xsl:apply-templates select=\"sageplot\" mode=\"image-source-basename\"/>\n                    <xsl:call-template name=\"best-file-extension\"/>\n                </xsl:when>\n                <!-- NB: a 3D \"sageplot\" only comes in PNG and HTML variants, -->\n                <!-- so we cannot manufacture the preferable SVG version,     -->\n                <!-- and the PNG is just fine for a Kindle build, so we do    -->\n                <!-- not have to condition on a Kindle build.                 -->\n                <xsl:when test=\"sageplot[@variant = '3d']\">\n                    <xsl:text>sageplot/</xsl:text>\n                    <xsl:apply-templates select=\"sageplot\" mode=\"image-source-basename\"/>\n                    <xsl:text>.png</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"asymptote\">\n                    <xsl:text>asymptote/</xsl:text>\n                    <xsl:apply-templates select=\"asymptote\" mode=\"image-source-basename\"/>\n                    <xsl:call-template name=\"best-file-extension\"/>\n                </xsl:when>\n                <xsl:when test=\"mermaid\">\n                    <xsl:text>mermaid/</xsl:text>\n                    <xsl:apply-templates select=\"mermaid\" mode=\"image-source-basename\"/>\n                    <xsl:call-template name=\"best-file-extension\"/>\n                </xsl:when>\n                <xsl:when test=\"pf:prefigure\">\n                    <xsl:text>prefigure/</xsl:text>\n                    <xsl:apply-templates select=\"pf:prefigure\" mode=\"image-source-basename\"/>\n                    <xsl:call-template name=\"best-file-extension\"/>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:     image filename not determined in EPUB conversion</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Manifest entry with image file information -->\n<!-- For each \"image\" we record basic information in the form the  -->\n<!-- manifest expects (an \"item\").  Later, duplicate files will be -->\n<!-- scrubbed from this list based on the @href value, so that a   -->\n<!-- given file is not referenced more than once in the manifest.  -->\n<xsl:template match=\"image\" mode=\"manifest\">\n    <xsl:variable name=\"extension\">\n        <xsl:call-template name=\"file-extension\">\n            <!-- at most one of these two attributes shold be present -->\n            <xsl:with-param name=\"filename\" select=\"@source|@pi:generated\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- item  element for manifest -->\n    <xsl:element name=\"item\" namespace=\"http://www.idpf.org/2007/opf\">\n        <!-- internal id of the image -->\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <!-- filename relative to EPUB directory -->\n        <xsl:attribute name=\"href\">\n            <xsl:value-of select=\"$xhtml-dir\" />\n            <xsl:text>/</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"epub-base-filename\">\n                <xsl:with-param name=\"purpose\" select=\"'write'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <!-- media attribute -->\n        <xsl:attribute name=\"media-type\">\n            <xsl:choose>\n                <xsl:when test=\"@source and $extension='png'\">\n                    <xsl:text>image/png</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@source and ($extension='jpeg' or $extension='jpg')\">\n                    <xsl:text>image/jpeg</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@source and ($extension = 'svg')\">\n                    <xsl:text>image/svg+xml</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@source and ($extension = '')\">\n                    <xsl:call-template name=\"best-media-type\"/>\n                </xsl:when>\n                <!-- MOM generated images are extensionless -->\n                <xsl:when test=\"@pi:generated and ($extension = '')\">\n                    <xsl:call-template name=\"best-media-type\"/>\n                </xsl:when>\n                <!-- QR code, automatic preview, YouuTube fig leaf -->\n                <xsl:when test=\"@pi:generated and ($extension = 'png')\">\n                    <xsl:text>image/png</xsl:text>\n                </xsl:when>\n                <!-- YouTube-provided previews (always just *.jpg) -->\n                <xsl:when test=\"@pi:generated and ($extension = 'jpg')\">\n                    <xsl:text>image/jpeg</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"latex-image|asymptote|mermaid|pf:prefigure\">\n                    <xsl:text>image/svg+xml</xsl:text>\n                </xsl:when>\n                <!-- A 2D \"sageplot\" is just like any other image built from source -->\n                <xsl:when test=\"sageplot[not(@variant) or (@variant = '2d')]\">\n                    <xsl:text>image/svg+xml</xsl:text>\n                </xsl:when>\n                <!-- NB: a 3D \"sageplot\" only comes in PNG and HTML variants, -->\n                <!-- so we cannot manufacture the preferable SVG version,     -->\n                <!-- and the PNG is just fine for a Kindle build, so we do    -->\n                <!-- not have to condition on a Kindle build.                 -->\n                <xsl:when test=\"sageplot[@variant = '3d']\">\n                    <xsl:text>image/png</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:BUG:     EPUB image media-type not determined</xsl:message>\n                    <xsl:apply-templates select=\".\" mode=\"location-report\" />\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n    </xsl:element>\n    <!-- likely a dead-end here, but we examine children anyway -->\n    <xsl:apply-templates select=\"*\" mode=\"manifest\" />\n</xsl:template>\n\n<!-- Kindle has an upper limit of 25 or so SVG images.  Not sure the       -->\n<!-- rationale.  Anyway, we prefer (our) SVG images which are generally    -->\n<!-- very tight and compact and scale nicely.  When we know that an image  -->\n<!-- (source, or generated) does not have an extension, then we are free   -->\n<!-- to choose, on the assumption that such files have actually been       -->\n<!-- generated.  These utility templates *only* depend on a Kindle switch. -->\n\n<xsl:template name=\"best-file-extension\">\n    <xsl:choose>\n        <xsl:when test=\"$b-kindle\">\n            <xsl:text>.png</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>.svg</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template name=\"best-media-type\">\n    <xsl:choose>\n        <xsl:when test=\"$b-kindle\">\n            <xsl:text>image/png</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>image/svg+xml</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Now the actual image inclusion where born -->\n<xsl:template match=\"image\">\n    <xsl:element name=\"img\">\n        <xsl:attribute name=\"src\">\n            <xsl:apply-templates select=\".\" mode=\"epub-base-filename\">\n                <xsl:with-param name=\"purpose\" select=\"'write'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:if test=\"@width\">\n            <xsl:attribute name=\"style\">\n                <xsl:text>width: </xsl:text>\n                <xsl:value-of select=\"@width\" />\n                <xsl:text>; margin: 0 auto;</xsl:text>\n            </xsl:attribute>\n        </xsl:if>\n    </xsl:element>\n    <xsl:if test=\"description\">\n        <details class=\"image-description\">\n            <summary>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'description'\"/>\n                </xsl:call-template>\n            </summary>\n            <div>\n                <xsl:apply-templates select=\"description\"/>\n            </div>\n        </details>\n    </xsl:if>\n</xsl:template>\n\n<!-- ######### -->\n<!-- OverRides -->\n<!-- ######### -->\n\n<!-- Knowls -->\n<!-- Nothing should be knowled, since we do not have Javascript for it -->\n<!-- We kill both cross-reference and born-hidden knowls by overriding -->\n<!-- templates designed partially for this purpose                     -->\n<xsl:template match=\"*\" mode=\"xref-as-knowl\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n<!-- Everything configurable by author, 2020-01-02         -->\n<!-- Roughly in the order of old  html.knowl.*  switches   -->\n<!-- Similar HTML templates return string for boolean test -->\n<xsl:template match=\"&THEOREM-LIKE;|&PROOF-LIKE;|&DEFINITION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|task|&FIGURE-LIKE;|&REMARK-LIKE;|&GOAL-LIKE;|exercise\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n\n<!-- ######## -->\n<!-- Endnotes -->\n<!-- ######## -->\n\n<!-- Use \"EPUB 3 Structural Semantics Vocabulary\" -->\n<!-- to get desired behavior from e-reader system -->\n<!-- https://help.apple.com/itc/booksassetguide/en.lproj/itccf8ecf5c8.html -->\n\n<!-- Note: Kindle wants \"bidirectional\" links, so you can \"go back\" -->\n<!-- from the content to the source location.  These HTML ids are   -->\n<!-- recognizable by their \"-kindle-return\" suffix.  See 10.3.12:   -->\n<!-- https://kindlegen.s3.amazonaws.com/AmazonKindlePublishingGuidelines.pdf -->\n\n<!-- Asides -->\n<!-- EPUB has a semi-natural mechanism for this, though -->\n<!-- the text we drop could use some work. The marker,  -->\n<!-- a simple title/paragraph, tostyle minimally        -->\n<xsl:template match=\"&ASIDE-LIKE;\">\n    <xsl:variable name=\"hid\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\" />\n    </xsl:variable>\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>para</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"$hid\"/>\n        </xsl:attribute>\n        <a class=\"url\" epub:type=\"noteref\" href=\"{$endnote-file}#{$hid}\">\n            <!-- Older Kindles don't always support pop-ups, so -->\n            <!-- create infrastructure for endnotes to jump back-->\n            <xsl:if test=\"$b-kindle\">\n                <xsl:attribute name=\"id\">\n                    <xsl:value-of select=\"$hid\"/>\n                    <xsl:text>-kindle-return</xsl:text>\n                </xsl:attribute>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"heading-simple\" />\n        </a>\n    </xsl:element>\n</xsl:template>\n\n<!-- The content, unwrapped from HTML infrastructure -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"endnote-content\">\n    <xsl:variable name=\"hid\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\" />\n    </xsl:variable>\n    <!-- Older Kindles don't always support pop-ups, so -->\n    <!-- create infrastructure for endnotes to jump back-->\n    <xsl:if test=\"$b-kindle\">\n        <a epub:type=\"noteref\">\n            <xsl:attribute name=\"href\">\n                <xsl:apply-templates select=\".\" mode=\"containing-filename\"/>\n                <xsl:text>#</xsl:text>\n                <xsl:value-of select=\"$hid\"/>\n                <xsl:text>-kindle-return</xsl:text>\n            </xsl:attribute>\n            <xsl:apply-templates select=\".\" mode=\"heading-full\"/>\n        </a>\n    </xsl:if>\n    <aside epub:type=\"footnote\" id=\"{$hid}\">\n        <!-- mode=\"body\" gets too much CSS -->\n        <xsl:apply-templates select=\".\" mode=\"wrapped-content\"/>\n    </aside>\n</xsl:template>\n\n<!-- Footnotes -->\n<!-- First disable the \"footnote\" popping routine used to -->\n<!-- move the content out of HTML structures where it is  -->\n<!-- not welcome (e.g a \"p\" inside a \"p\").                -->\n<xsl:template match=\"*\" mode=\"pop-footnote-text\"/>\n\n<!-- Drop a marker as a superscript -->\n<xsl:template match=\"fn\">\n    <xsl:variable name=\"hid\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\" />\n    </xsl:variable>\n    <!-- drop cross-reference, super-scripted, spaced -->\n    <xsl:element name=\"sup\">\n        <xsl:attribute name=\"id\">\n            <xsl:apply-templates select=\".\" mode=\"html-id\" />\n        </xsl:attribute>\n        <a epub:type=\"noteref\" href=\"{$endnote-file}#{$hid}\">\n            <xsl:if test=\"$b-kindle\">\n                <xsl:attribute name=\"id\">\n                    <xsl:value-of select=\"$hid\"/>\n                    <xsl:text>-kindle-return</xsl:text>\n                </xsl:attribute>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n        </a>\n    </xsl:element>\n</xsl:template>\n\n<!-- The content. -->\n<xsl:template match=\"fn\" mode=\"endnote-content\">\n    <xsl:variable name=\"hid\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\" />\n    </xsl:variable>\n    <aside epub:type=\"footnote\" id=\"{$hid}\">\n        <xsl:choose>\n            <xsl:when test=\"$b-kindle\">\n                <a epub:type=\"noteref\">\n                    <xsl:attribute name=\"href\">\n                        <xsl:apply-templates select=\".\" mode=\"containing-filename\"/>\n                        <xsl:text>#</xsl:text>\n                        <xsl:value-of select=\"$hid\"/>\n                        <xsl:text>-kindle-return</xsl:text>\n                    </xsl:attribute>\n                    <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n                </a>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>. </xsl:text>\n        <!-- process as mixed-content, don't yet allow paragraphs -->\n        <xsl:apply-templates select=\"node()\" />\n    </aside>\n</xsl:template>\n\n<!-- BackMatter Endnotes page -->\n<xsl:template name=\"endnotes\">\n    <!-- No footnotes or asides, don't bother -->\n    <xsl:if test=\"$b-has-endnotes\">\n        <!-- cribbed from \"file-wrap\" elsewhere -->\n        <exsl:document href=\"{$content-dir}/{$xhtml-dir}/{$endnote-file}\" method=\"xml\" omit-xml-declaration=\"yes\" encoding=\"UTF-8\" indent=\"no\">\n            <html>\n                <xsl:call-template name=\"html-theme-attributes\"/>\n                <head>\n                    <xsl:text>&#xa;</xsl:text> <!-- a little formatting help -->\n                    <xsl:call-template name=\"converter-blurb-html\" />\n                    <xsl:call-template name=\"epub-kindle-css\"/>\n                    <title>Endnotes</title>\n                </head>\n                <!-- use class to repurpose HTML CSS work -->\n                <body class=\"ptx-content epub\">\n                    <h4>Endnotes</h4>\n                    <!-- structure according to footnote level -->\n                    <xsl:apply-templates select=\"$document-root//fn|$document-root//aside|$document-root//biographical|$document-root//historical\" mode=\"endnote-content\"/>\n                </body>\n            </html>\n        </exsl:document>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Subsidiary Items -->\n<!-- ################ -->\n\n<!-- These tend to \"hang\" off other structures and/or are routinely -->\n<!-- rendered as knowls.  So we turn off automatic knowlization     -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Icons -->\n<!-- ##### -->\n\n<!-- Unicode characters will relieve necessity of        -->\n<!-- Font Awesome CSS loading, $icon-table is in -common -->\n<xsl:template match=\"icon\">\n    <!-- the name attribute of the \"icon\" in text as a string -->\n    <xsl:variable name=\"icon-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n\n    <!-- for-each is just one node, but sets context for key() -->\n    <xsl:for-each select=\"$icon-table\">\n        <xsl:value-of select=\"key('icon-key', $icon-name)/@unicode\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!-- #### -->\n<!-- Math -->\n<!-- #### -->\n\n<!-- Pluck SVGs from the file full of them, with matching IDs -->\n<xsl:template match=\"m|md[mrow]\">\n    <!-- NB: math-representation file writes with \"visible-id\" -->\n    <xsl:variable name=\"id\">\n        <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    </xsl:variable>\n    <xsl:variable name=\"math\" select=\"$math-repr/pi:math[@id = $id]\"/>\n    <xsl:variable name=\"speech\" select=\"$speech-repr/pi:math[@id = $id]\"/>\n    <!-- <xsl:message>C:<xsl:value-of select=\"$math/@context\"/>:C</xsl:message> -->\n    <!-- <xsl:copy-of select=\"$math-repr[../@id = $id]\"/> -->\n    <!-- Wrap with a CSS class for MathJax to see before/during processing -->\n    <!-- as to whether or not the math is inline or display.               -->\n    <span>\n        <xsl:attribute name=\"class\">\n            <xsl:choose>\n                <xsl:when test=\"$math/@context = 'inline'\">\n                    <xsl:text>mjpage</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$math/@context = 'displaymath'\">\n                    <xsl:text>mjpage mjpage__block</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <!-- Cannot \"xref\" to inline math, so we only put HTML id attributes   -->\n        <!-- onto display math.  This is overkill, we do not examine what is,  -->\n        <!-- or is not numbered, to make a finer distinction.  An \"xref\" to a  -->\n        <!-- target without a number is likely to fail in other ways.  An      -->\n        <!--\"xref\" will not be a knowl, but a URL with fragment being this id. -->\n        <xsl:if test=\"$math/@context = 'displaymath'\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <!-- Finally, drop a \"svg\" element, \"math\" element, or ASCII speech -->\n        <xsl:choose>\n            <xsl:when test=\"$math.format = 'svg'\">\n                <xsl:apply-templates select=\"$math/div[@class = 'svg']/svg:svg\" mode=\"svg-edit\">\n                    <xsl:with-param name=\"speech\" select=\"$speech\"/>\n                    <xsl:with-param name=\"base-id\" select=\"$id\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:when test=\"$math.format = 'mml'\">\n                <xsl:copy-of select=\"$math/div[@class = 'mathml']/math:math\"/>\n            </xsl:when>\n            <!-- Kindle does best with MathML format -->\n            <xsl:when test=\"$b-kindle\">\n                <xsl:copy-of select=\"$math/div[@class = 'mathml']/math:math\"/>\n            </xsl:when>\n            <!-- 2020-07-17: reprs needed a new \"span.speech\" wrapper -->\n            <xsl:when test=\"$math.format = 'speech'\">\n                <xsl:value-of select=\"$math/div[@class = 'speech']\"/>\n            </xsl:when>\n        </xsl:choose>\n    </span>\n</xsl:template>\n\n<!-- Simple text representations of structural elements for -->\n<!-- head/title, which is really restrictive.               -->\n<xsl:template match=\"*\" mode=\"type-name-number\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n</xsl:template>\n\n<!-- Identity template as a mode coursing through SVGs  -->\n<!-- We are stream editing to satisfy the EPUB standard -->\n<!-- Mostly killing attrributes                         -->\n<xsl:template match=\"node()|@*\" mode=\"svg-edit\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"svg-edit\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- SVG elements to augment -->\n<!-- We enrich the main \"svg\" element with a speech string.      -->\n<!--   1.  Since this is the \"entry template\" for this mode,     -->\n<!--       this is the only place we accept the \"speech\" param.  -->\n<!--   2.  MathJax seems to use SVGs inside of SVGs for placing  -->\n<!--       numbers/tags of numbered equations, so we only enrich -->\n<!--       \"top-level\" SVG - that is the point of the filter.    -->\n<!--   3.  The id of the math element will be used as the base   -->\n<!--       of (unique) ids necessary to point to the speech.     -->\n<!--       Pattern 11 at:                                        -->\n<!--       https://www.deque.com/blog/creating-accessible-svgs/  -->\n<!--   4.  Seems                                                 -->\n<!--           \"title\" + @aria-labelledby                        -->\n<!--           \"desc\"  + @aria-describedby                       -->\n<!--       cover all the bases.  It is suggested that the two    -->\n<!--       elements alone would be recognized by screen readers. -->\n<xsl:template match=\"svg:svg[not(ancestor::svg:svg)]\" mode=\"svg-edit\">\n    <xsl:param name=\"speech\"/>\n    <xsl:param name=\"base-id\"/>\n\n    <!-- manufacture id values for consistency, uniqueness -->\n    <xsl:variable name=\"title-id\">\n        <xsl:value-of select=\"$base-id\"/>\n        <xsl:text>-title</xsl:text>\n    </xsl:variable>\n    <xsl:variable name=\"desc-id\">\n        <xsl:value-of select=\"$base-id\"/>\n        <xsl:text>-desc</xsl:text>\n    </xsl:variable>\n\n    <xsl:copy>\n        <!-- attributes first -->\n        <xsl:apply-templates select=\"@*\" mode=\"svg-edit\"/>\n        <xsl:attribute name=\"role\">\n            <xsl:text>img</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"aria-labelledby\">\n            <xsl:value-of select=\"$title-id\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"aria-describedby\">\n            <xsl:value-of select=\"$desc-id\"/>\n        </xsl:attribute>\n        <!-- now additional metadata, of sorts -->\n        <xsl:element name=\"title\" namespace=\"http://www.w3.org/2000/svg\">\n            <xsl:attribute name=\"id\">\n                <xsl:value-of select=\"$title-id\"/>\n            </xsl:attribute>\n            <xsl:text>Math Expression</xsl:text>\n        </xsl:element>\n        <xsl:element name=\"desc\" namespace=\"http://www.w3.org/2000/svg\">\n            <xsl:attribute name=\"id\">\n                <xsl:value-of select=\"$desc-id\"/>\n            </xsl:attribute>\n            <xsl:value-of select=\"$speech\"/>\n        </xsl:element>\n        <!-- and all the rest of the nodes -->\n        <xsl:apply-templates select=\"node()\" mode=\"svg-edit\"/>\n    </xsl:copy>\n</xsl:template>\n\n<!-- SVG attributes to remove -->\n<!-- There can be attributes of SVG images produced by MathJax     -->\n<!-- which cause validation errors when used within an EPUB.       -->\n<!-- 2021-09-02: these seem to have gone away in a transition from -->\n<!-- EPUB 3.0.0 to EPUB 3.2, as reported by  epubcheck v4.2.2.  We -->\n<!-- will remove @focusable just as an example, in case there are  -->\n<!-- future changes.                                               -->\n<xsl:template match=\"svg:svg/@focusable\" mode=\"svg-edit\"/>\n\n<!-- We don't want any permalinks in epub -->\n<xsl:template match=\"*\" mode=\"permalink\"/>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-html.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<!--                                                    -->\n<!-- NB:                                                -->\n<!--   \"xsl\" is necessary to identify XSL functionality -->\n<!--   \"xml\" is automatic, hence redundant              -->\n<!--   \"svg\" is necessary to for Asymptote 3D images    -->\n<!--   \"pi\" is meant to mark private PreTeXt markup     -->\n<!--   \"exsl\" namespaces enable extension functions     -->\n<!--                                                    -->\n<!-- Excluding result prefixes keeps them from bleeding -->\n<!-- into output unnecessarily -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:svg=\"http://www.w3.org/2000/svg\"\n    xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:fn=\"http://www.w3.org/2005/xpath-functions\"\n    xmlns:pf=\"https://prefigure.org\"\n    exclude-result-prefixes=\"svg xlink pi fn pf\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- Allow writing of JSON from structured HTML -->\n<xsl:import href=\"./xml-to-json.xsl\"/>\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Modularize lots of Runestone-specific code    -->\n<!-- Likely need not be an \"import\" (v. \"include\") -->\n<xsl:import href=\"./pretext-runestone.xsl\"/>\n<xsl:import href=\"./pretext-runestone-fitb.xsl\"/>\n\n<!-- Routines to provide \"View Source\" annotations on HTML output   -->\n<!-- as a service on the PreTeXt website. NB: we use an \"include\"   -->\n<!-- to provide this set of templates.  The included stylesheet has -->\n<!-- radically different \"strip-space\" and \"preserve-space\"         -->\n<!-- declarations, which seem to *not* provide overrrides, and are  -->\n<!-- simply \"local\" to that stylesheet.                             -->\n<xsl:import href=\"./pretext-view-source.xsl\"/>\n\n<!-- We create HTML5 output.  The @doctype-system attribute will    -->\n<!-- create a header in the old style that browsers will recognize  -->\n<!-- as signaling HTML5.  However  xsltproc  does one better and    -->\n<!-- writes the super-simple <!DOCTYPE html> header.  See all of    -->\n<!-- https://stackoverflow.com/questions/3387127/                   -->\n<!-- (set-html5-doctype-with-xslt)                                  -->\n<!--                                                                -->\n<!-- Indentation is weak, it is just strategic newlines.  This is   -->\n<!-- explained late in the thread by Daniel Veillard:               -->\n<!-- http://docbook-apps.oasis-open.narkive.com/tDqyEc91/           -->\n<!-- (two-issues-with-xslt-processors-xsltproc-and-xalan)           -->\n<!--                                                                -->\n<!-- Since we write output into multiple files, likely this         -->\n<!-- declaration is never active, but it serves as a model here for -->\n<!-- subsequent exsl:document elements.                             -->\n\n<xsl:output method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\" />\n\n<!-- ################################################ -->\n<!-- Following is slated to migrate above, 2019-07-10 -->\n<!-- ################################################ -->\n\n<!-- Parameters -->\n<!-- Parameters to pass via xsltproc \"stringparam\" on command-line            -->\n<!-- Or make a thin customization layer and use 'select' to provide overrides -->\n<!-- See more generally applicable parameters in pretext-common.xsl file     -->\n\n<!-- CSS and Javascript Directories -->\n<!-- These are convenience variables to specify file prefixes  -->\n<!-- consistently.  If you know what you are doing you could   -->\n<!-- likely point them elsewhere, even to other servers.       -->\n<!-- So the name says \"dir\", but effectively it is \"location\". -->\n<!-- But this is not the intent, nor supported, and thus can   -->\n<!-- change without warning.                                   -->\n<xsl:variable name=\"html.css.dir\" select=\"concat($cdn-prefix, '_static/pretext/css')\"/>\n<xsl:variable name=\"html.js.dir\" select=\"concat($cdn-prefix, '_static/pretext/js')\"/>\n\n<!-- Add a prefix for the cdn url, which is empty unless the portable html variable is true -->\n<!-- We use version \"latest\" unless the CLI provides a version -->\n<xsl:param name=\"cli.version\" select=\"'latest'\"/>\n<xsl:variable name=\"cdn-prefix\">\n    <xsl:if test=\"$b-portable-html\">\n        <xsl:text>https://cdn.jsdelivr.net/gh/PreTeXtBook/html-static@</xsl:text>\n        <xsl:value-of select=\"$cli.version\"/>\n        <xsl:text>/dist/</xsl:text>\n    </xsl:if>\n</xsl:variable>\n\n<!-- The css file name is usually \"theme.css\", but if portable html is selected, -->\n<!-- then we use a minified version and need to give the full theme name.        -->\n<xsl:variable name=\"html-css-theme-file\">\n    <xsl:choose>\n        <xsl:when test=\"$b-portable-html\">\n            <xsl:text>theme-</xsl:text>\n            <xsl:value-of select=\"$html-theme-name\"/>\n            <xsl:text>.min.css</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>theme.css</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Annotation -->\n<xsl:param name=\"html.annotation\" select=\"''\" />\n<xsl:variable name=\"b-activate-hypothesis\" select=\"boolean($html.annotation='hypothesis')\" />\n\n<!-- Should we build the SCORM manifest file? -->\n<xsl:param name=\"html.scorm\" select=\"'no'\" />\n<xsl:variable name=\"b-build-scorm-manifest\" select=\"$html.scorm = 'yes'\" />\n\n<!-- ######### -->\n<!-- Variables -->\n<!-- ######### -->\n<!-- Variables that affect HTML creation -->\n<!-- More in the common file             -->\n\n<!-- The  pretext-assembly.xsl  stylesheet is parameterized to create  -->\n<!-- representations of interactive exercises in final \"static\"        -->\n<!-- versions or precursor \"dynamic\" versions.  The conversion to HTML -->\n<!-- is the motivation for this parameterization.  See the definition  -->\n<!-- of this variable in  pretext-assembly.xsl  for more detail.       -->\n<!--                                                                   -->\n<!-- Conversions that build on HTML, but produce formats unwilling     -->\n<!-- (EPUB, Jupyter) to employ Javascript, or similar, need to         -->\n<!-- override this variable back to \"static\".                          -->\n<xsl:variable name=\"exercise-style\" select=\"'dynamic'\"/>\n\n<!-- Search for the \"math.punctuation.include\" -->\n<!-- global variable, which is discussed in    -->\n<!-- closer proximity to its application.      -->\n\n<!-- Various components need to be built with pixel widths from % based widths -->\n<!-- design-width is the 100% value. We override the -common value here,       -->\n<!-- possibly getting a value defined in the pub file. If not, this should get -->\n<!-- set to the value from -common                                             -->\n<xsl:variable name=\"design-width\">\n    <xsl:value-of select=\"$html-design-width\"/>\n</xsl:variable>\n\n<!-- We generally want to chunk longer HTML output.       -->\n<!-- Delegates to $html-chunk-level in publisher-variables -->\n<!-- so lightweight stylesheets can access the same logic. -->\n<xsl:variable name=\"chunk-level\" select=\"$html-chunk-level\"/>\n\n<!-- HTML files as output -->\n<xsl:variable name=\"file-extension\" select=\"'.html'\" />\n\n<!-- \"presentation\" mode is experimental, target        -->\n<!-- is in-class presentation of a textbook             -->\n<!--   (1) clickable mathematics (MathJax) at 300% zoom -->\n<!-- boolean variable $b-html-presentation              -->\n<xsl:param name=\"html.presentation\" select=\"'no'\" />\n<xsl:variable name=\"b-html-presentation\" select=\"$html.presentation = 'yes'\" />\n\n<!-- Used to identify if target is reveal.js instead of vanilla html -->\n<xsl:variable name=\"b-reveal-build\" select=\"false()\" />\n\n<!-- ############### -->\n<!-- Source Analysis -->\n<!-- ############### -->\n\n<!-- We check certain aspects of the source and record the results   -->\n<!-- in boolean ($b-has-*) variables or as particular nodes high up  -->\n<!-- in the structure ($document-root).  Scans here in -html should  -->\n<!-- help streamline the construction of the HTML page \"head\" by     -->\n<!-- computing properties that will be used in the \"head\" of every   -->\n<!-- page of every chunk. checked more than once. While technically  -->\n<!-- generally part of constructing the head, there is no real harm  -->\n<!-- in making these global variables.  Short, simple, and universal -->\n<!-- properties are determined in -common. These may duplicate       -->\n<!-- variables in disjoint conversions.                              -->\n\n<xsl:variable name=\"b-has-icon\"         select=\"boolean($document-root//icon)\"/>\n<xsl:variable name=\"b-has-webwork-reps\" select=\"boolean($document-root//webwork-reps)\"/>\n<xsl:variable name=\"b-has-myopenmath\"   select=\"boolean($document-root//myopenmath)\"/>\n<xsl:variable name=\"b-has-stack\"        select=\"boolean($document-root//exercise/stack)\"/>\n<xsl:variable name=\"b-has-program\"      select=\"boolean($document-root//program)\"/>\n<xsl:variable name=\"b-has-sage\"         select=\"boolean($document-root//sage)\"/>\n<xsl:variable name=\"b-has-sfrac\"        select=\"boolean($document-root//m[contains(text(),'sfrac')] or $document-root//mrow[contains(text(),'sfrac')])\" />\n<xsl:variable name=\"b-has-geogebra\"     select=\"boolean($document-root//interactive[@platform='geogebra'])\"/>\n<xsl:variable name=\"b-has-mermaid\"      select=\"boolean($document-root//image[mermaid]|/image[mermaid])\"/>\n<!-- 2018-04-06:  jsxgraph deprecated -->\n<xsl:variable name=\"b-has-jsxgraph\"     select=\"boolean($document-root//jsxgraph)\"/>\n<!-- Plural \"annotations\" is a child of \"diagram\" -->\n<xsl:variable name=\"b-has-prefigure-annotations\" select=\"boolean($document-root//pf:prefigure/pf:diagram/pf:annotations)\"/>\n<xsl:variable name=\"b-dynamics-static-seed\" select=\"false()\"/>\n<!-- Every page has an index button, with a link to the index -->\n<!-- Here we assume there is at most one                      -->\n<xsl:variable name=\"the-index\"          select=\"($document-root//index)[1]\"/>\n\n<!-- ol markers                                                        -->\n<!-- Make a master list of all unique author-supplied ol marker styles -->\n<xsl:key name=\"marker-key\" match=\"ol|ol-marker\" use=\"@marker\"/> <!-- never used on node sets that contain mix of ol and ol-marker -->\n<xsl:variable name=\"ol-markers\">\n    <ol-markers>\n        <xsl:apply-templates select=\"$document-root//ol[@marker and count(. | key('marker-key', @marker)[1]) = 1]\" mode=\"ol-markers\"/>\n    </ol-markers>\n</xsl:variable>\n<!-- Following should be more efficient than 'select=\"boolean($document-root//ol[@marker])\"' -->\n<xsl:variable name=\"b-needs-custom-marker-css\" select=\"boolean(exsl:node-set($ol-markers)/ol-markers/ol-marker)\"/>\n\n\n<!-- ######## -->\n<!-- WeBWorK  -->\n<!-- ######## -->\n\n<!-- We mine some values from the first \"WW representation\" to have been -->\n<!-- inserted into the source by the pre-processor (\"assembly\") when     -->\n<!-- making dynamic exercises.                                           -->\n\n<xsl:variable name=\"webwork-major-version\" select=\"$document-root//webwork-reps[1]/@webwork2_major_version\"/>\n<xsl:variable name=\"webwork-minor-version\" select=\"$document-root//webwork-reps[1]/@webwork2_minor_version\"/>\n\n<!-- #### EXPERIMENTAL #### -->\n<!-- We allow for the HTML conversion to chunk output, starting  -->\n<!-- from an arbitrary node.  $subtree-node needs context.       -->\n<xsl:param name=\"subtree\" select=\"''\"/>\n<xsl:variable name=\"b-subsetting\" select=\"not($subtree = '')\"/>\n<!-- #### EXPERIMENTAL #### -->\n\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- Deprecation warnings are universal analysis of source and parameters   -->\n<!-- There is always a \"document root\" directly under the pretext element,  -->\n<!-- and we process it with the chunking template called below              -->\n<!-- Note that \"docinfo\" is at the same level and not structural, so killed -->\n<!-- TODO: consider moving  manifests, etc to  the \"pretext\" template,      -->\n<!-- leaving this entry template for derived stylesheets to (a) test        -->\n<!-- source, and (b) set the root                                           -->\n<xsl:template match=\"/\">\n    <!-- temporary - while Hypothesis annotation is beta -->\n    <xsl:if test=\"$b-activate-hypothesis\">\n        <xsl:call-template name=\"banner-warning\">\n            <xsl:with-param name=\"warning\">Hypothes.is annotation is experimental</xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"element-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"parameter-deprecation-warnings\"/>\n    <!-- Usually no manifest is created -->\n    <xsl:call-template name=\"runestone-manifest\"/>\n    <!-- A structured Table of Contents for a React app approach -->\n    <xsl:call-template name=\"doc-manifest\"/>\n    <!-- build a search page (in development) -->\n    <xsl:if test=\"$has-native-search and not($b-portable-html)\">\n        <xsl:call-template name=\"search-page-construction\"/>\n    </xsl:if>\n    <!-- Optionally, build a SCORM manifest -->\n    <xsl:if test=\"$b-build-scorm-manifest\">\n        <xsl:call-template name=\"scorm-manifest\"/>\n    </xsl:if>\n    <!-- The main event                          -->\n    <!-- We process the enhanced source pointed  -->\n    <!-- to by $root at  /mathbook  or  /pretext -->\n    <xsl:apply-templates select=\"$root\"/>\n</xsl:template>\n\n\n<!-- We process structural nodes via chunking routine in xsl/pretext-common.xsl    -->\n<!-- This in turn calls specific modal templates defined elsewhere in this file     -->\n<!-- The xref-knowl templates run independently on content node of document tree    -->\n<xsl:template match=\"/mathbook|/pretext\">\n\n    <xsl:choose>\n        <!-- usually not working on a subset -->\n        <xsl:when test=\"not($b-subsetting)\">\n            <!-- Build the index-redirect-page, but not if doing a portable build -->\n            <xsl:if test=\"not($b-portable-html)\">\n                <xsl:call-template name=\"index-redirect-page\"/>\n            </xsl:if>\n            <xsl:apply-templates mode=\"chunking\" />\n        </xsl:when>\n        <!-- if subsetting, begin chunking at specified node -->\n        <!-- and do not build an \"index.html\" page           -->\n        <xsl:otherwise>\n            <!-- we compute the subset node while the context is the -->\n            <!-- tree produced by the -assembly stylesheet, and only -->\n            <!-- if actually requested                               -->\n            <xsl:variable name=\"subtree-node\" select=\"id($subtree)\"/>\n            <!-- this error-checking should be parked somewhere else -->\n            <!-- and maybe there is a fallback to full processing?   -->\n            <xsl:choose>\n                <xsl:when test=\"not($subtree-node)\">\n                    <xsl:message terminate=\"yes\">PTX:FATAL:  the @xml:id given as a subtree root (\"<xsl:value-of select=\"$subtree\"/>\") does not specify any element.  (Check spelling?)  Quitting...</xsl:message>\n                </xsl:when>\n                <xsl:when test=\"not($subtree-node[&STRUCTURAL-FILTER;])\">\n                    <xsl:message terminate=\"yes\">PTX:FATAL:  the element with the @xml:id given as a subtree root (\"<xsl:value-of select=\"$subtree\"/>\") is not division that can be chunked into HTML page(s).  Quitting...</xsl:message>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:variable name=\"current-level\">\n                        <!-- this should be successful having passed previous filter -->\n                        <xsl:apply-templates select=\"$subtree-node\" mode=\"level\"/>\n                    </xsl:variable>\n                    <!-- too deep to chunk into a page (or pages) -->\n                    <xsl:if test=\"$current-level > $chunk-level\">\n                        <xsl:message terminate=\"yes\">PTX:FATAL:  the element with @xml:id given as a subtree root (\"<xsl:value-of select=\"$subtree\"/>\") is only a partial HTML page at the current chunking level.  Quitting...</xsl:message>\n                    </xsl:if>\n                </xsl:otherwise>\n            </xsl:choose>\n            <!-- seems to now be a good place to start chunking -->\n            <xsl:apply-templates select=\"$subtree-node\" mode=\"chunking\" />\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- knowl-production -->\n    <!-- subsetting? don't bother (for now) -->\n    <!-- portable html does not get xref knowls either. -->\n    <xsl:if test=\"not($b-subsetting) and not($b-portable-html)\">\n        <xsl:apply-templates select=\".\" mode=\"make-xref-knowls\"/>\n    </xsl:if>\n    <!-- custom ol marker css production -->\n    <xsl:if test=\"not($b-subsetting) and not($b-portable-html)\">\n        <xsl:call-template name=\"ol-marker-styles\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- However, some PTX document types do not have    -->\n<!-- universal conversion, so these default warnings -->\n<!-- should be overridden by supported conversions   -->\n<xsl:template match=\"letter\" mode=\"chunking\">\n    <xsl:message terminate=\"yes\">\n        <xsl:text>PTX:FATAL:  HTML conversion does not support the \"letter\" document type.  Quitting...</xsl:text>\n    </xsl:message>\n</xsl:template>\n\n<xsl:template match=\"memo\" mode=\"chunking\">\n    <xsl:message terminate=\"yes\">\n        <xsl:text>PTX:FATAL:  HTML conversion does not support the \"memo\" document type.  Quitting...</xsl:text>\n    </xsl:message>\n</xsl:template>\n\n<!-- We build a simple, instantaneous, redirection page based on the    -->\n<!-- publisher html/index-page/@ref option.  We write it first, so if   -->\n<!-- the deprecated scheme is in place then it will overwrite this one. -->\n<!-- See https://css-tricks.com/redirect-web-page/ for alternatives     -->\n<!-- NB: the use of the \"containing-filename\" template will require a   -->\n<!-- chunking level or else the template may go into infinite           -->\n<!-- recursion.  So we also protect against the chunking-level not      -->\n<!-- being set properly.                                                -->\n<xsl:template name=\"index-redirect-page\">\n    <!-- $html-index-page-entered-ref comes from the publisher variables -->\n    <!-- stylesheet.  It may be empty, signifying no election beyond     -->\n    <!-- the defaults, or it is a reference to some actual node with a   -->\n    <!-- matching @xml:id value.  We now need to see if it is a node     -->\n    <!-- that is a complete webpage at the current chunking level.       -->\n    <!--                                                                 -->\n    <!-- But first, we see if there is a coding error, due to            -->\n    <!-- the critical chunk level variable being overridden              -->\n    <xsl:if test=\"$chunk-level = ''\">\n        <xsl:message>PTX:BUG     the $chunk-level variable has been left undefined&#xa;due to a change in a stylesheet that imports the HTML conversion&#xa;and the computation of an index page may fail spectacularly (infinite recursion?)\"</xsl:message>\n    </xsl:if>\n    <xsl:variable name=\"sanitized-ref\">\n        <xsl:choose>\n            <!-- no publisher file entry implies empty entered ref -->\n            <xsl:when test=\"$html-index-page-entered-ref = ''\"/>\n            <!-- now we have a node, is it the top of a page? -->\n            <xsl:otherwise>\n                <!-- true/false values if node creates a web page -->\n                <xsl:variable name=\"is-intermediate\">\n                    <xsl:apply-templates select=\"id($html-index-page-entered-ref)\" mode=\"is-intermediate\"/>\n                </xsl:variable>\n                <xsl:variable name=\"is-chunk\">\n                    <xsl:apply-templates select=\"id($html-index-page-entered-ref)\" mode=\"is-chunk\"/>\n                </xsl:variable>\n                <xsl:choose>\n                    <!-- really is a web-page -->\n                    <xsl:when test=\"($is-intermediate = 'true') or ($is-chunk = 'true')\">\n                        <xsl:value-of select=\"$html-index-page-entered-ref\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:message>PTX:WARNING:   the requested HTML index page cannot be constructed since \"<xsl:value-of select=\"$html-index-page-entered-ref\"/>\" is not a complete web page at the current chunking level (level <xsl:value-of select=\"$chunk-level\"/>).  Defaults will be used instead</xsl:message>\n                        <xsl:text/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Now have a good @xml:id for an extant webpage, or an empty -->\n    <!-- string signals we need to choose a sensible default. The   -->\n    <!-- default is the \"frontmatter\" page, if possible, otherwise  -->\n    <!-- the root page. The variable $html-index-page will be the   -->\n    <!-- full name (*.html) of a page guaranteed to be built by     -->\n    <!-- the chunking routines.                                     -->\n    <xsl:variable name=\"html-index-page\">\n        <xsl:choose>\n            <!-- publisher's choice survives -->\n            <xsl:when test=\"not($sanitized-ref = '')\">\n                <xsl:apply-templates select=\"id($sanitized-ref)\" mode=\"containing-filename\"/>\n            </xsl:when>\n            <!-- now need to create defaults                        -->\n            <!-- the level of the frontmatter is a bit conflicted   -->\n            <!-- but it is a chunk iff there is any chunking at all -->\n            <xsl:when test=\"$document-root/frontmatter and ($chunk-level &gt; 0)\">\n                <xsl:apply-templates select=\"$document-root/frontmatter\" mode=\"containing-filename\"/>\n            </xsl:when>\n            <!-- absolute last option is $document-root, *always* a webpage -->\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"$document-root\" mode=\"containing-filename\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- build a very simple  index.html  page pointing at  $html-index-page -->\n    <!-- This is the one place we insert a (timestamped) blurb, since the    -->\n    <!-- file is already exceptional and one-off                             -->\n    <exsl:document href=\"index.html\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n        <html>\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:call-template name=\"converter-blurb-html\"/>\n            <!-- Open Graph Protocol only in \"meta\" elements, within \"head\" -->\n            <head xmlns:og=\"http://ogp.me/ns#\" xmlns:book=\"https://ogp.me/ns/book#\">\n                <meta http-equiv=\"refresh\" content=\"0; URL='{$html-index-page}'\" />\n                <!-- Add a canonical link here, in generic build case? -->\n                <!-- more \"meta\" elements for discovery -->\n                <xsl:call-template name=\"open-graph-info\"/>\n            </head>\n            <!-- body is non-existent, i.e. empty -->\n            <body/>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Structural Nodes -->\n<!-- ################ -->\n\n<!-- Read the code and documentation for \"chunking\" in      -->\n<!-- xsl/pretext-common.xsl  This will help explain         -->\n<!-- document structure (not XML structure).                -->\n<!--                                                        -->\n<!-- With an implementation of a file-wrapping routine,     -->\n<!-- a typical use is to                                    -->\n<!--                                                        -->\n<!--   (a) apply a default template to the structural       -->\n<!--       node for a complete (chunk'ed) node              -->\n<!--                                                        -->\n<!--   (b) apply a modal template to the structural         -->\n<!--       node for a summary (intermediate) node           -->\n<!--                                                        -->\n<!-- The \"file-wrap\" routine should accept a $content       -->\n<!-- parameter holding the contents of the body of the page -->\n\n<!-- A complete page for a structural division -->\n<!-- Unlike the base implemenation in -common we pass a        -->\n<!-- \"heading-level\", which begins at 2 to account for an \"h1\" -->\n<!-- being used in the masthead of the page infrastructure.    -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"chunk\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".\">\n                 <xsl:with-param name=\"heading-level\" select=\"2\"/>\n            </xsl:apply-templates>\n        </xsl:with-param>\n        <!-- Set b-has-printout to true if the structural node is or contains a worksheet or handout -->\n        <xsl:with-param name=\"b-has-printout\" select=\"descendant-or-self::worksheet or descendant-or-self::handout\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A summary page for a structural division -->\n<!-- Processing of a structural node realized as an           -->\n<!-- intermediate/summary node.                               -->\n<!-- We pass in a \"heading-level\", which begins at 2 to       -->\n<!-- account for an \"h1\" being used in the masthead of the    -->\n<!-- page infrastructure.                                     -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"intermediate\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <!-- location info for debugging efforts -->\n            <xsl:apply-templates select=\".\" mode=\"debug-location\" />\n            <!-- Heading, div for this structural subdivision -->\n            <section class=\"{local-name(.)}\">\n                <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                <xsl:apply-templates select=\".\" mode=\"section-heading\">\n                    <xsl:with-param name=\"heading-level\" select=\"2\"/>\n                </xsl:apply-templates>\n                <xsl:apply-templates select=\".\" mode=\"author-byline\"/>\n                <!-- Special case when building page for frontmatter without a titlepage -->\n                <xsl:if test=\"self::frontmatter[not(titlepage)]\">\n                    <xsl:call-template name=\"frontmatter-title\" />\n                </xsl:if>\n                <xsl:apply-templates select=\"objectives|introduction|titlepage|abstract\">\n                    <xsl:with-param name=\"heading-level\" select=\"3\"/>\n                </xsl:apply-templates>\n                <!-- Links to subsidiary divisions, as a group of button/hyperlinks -->\n                <nav class=\"summary-links\">\n                    <ul>\n                        <xsl:apply-templates select=\"*\" mode=\"summary-nav\" />\n                    </ul>\n                </nav>\n                <xsl:apply-templates select=\"conclusion|outcomes\">\n                    <xsl:with-param name=\"heading-level\" select=\"3\"/>\n                </xsl:apply-templates>\n                <!-- Insert permalink -->\n                <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n            </section>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Navigation -->\n<!-- Structural nodes on a summary page  -->\n<!-- become attractive button/hyperlinks -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"summary-nav\">\n    <xsl:variable name=\"num\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:variable name=\"url\">\n        <xsl:apply-templates select=\".\" mode=\"url\" />\n    </xsl:variable>\n    <li>\n        <a href=\"{$url}\" class=\"internal\">\n            <!-- do not include an empty codenumber span -->\n            <xsl:if test=\"not($num = '')\">\n                <span class=\"codenumber\">\n                    <xsl:value-of select=\"$num\" />\n                </span>\n                <xsl:text> </xsl:text>\n            </xsl:if>\n            <!-- title is required on structural elements -->\n            <span class=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"title-short\" />\n            </span>\n        </a>\n    </li>\n</xsl:template>\n\n<!-- introduction (etc.) and conclusion get dropped -->\n<xsl:template match=\"*\" mode=\"summary-nav\" />\n\n<!-- Default template for content of a structural  -->\n<!-- division, which could be an entire page's     -->\n<!-- worth, or just a subdivision within a page    -->\n<!-- Increment $heading-level via this template    -->\n<!-- We use a modal template, so it can be called  -->\n<!-- one more time for a printout to make          -->\n<!-- printable standalone versions.                -->\n<xsl:template match=\"&STRUCTURAL;\">\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\".\" mode=\"structural-division-content\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- This is where a division becomes an HTML \"section\".  It may -->\n<!-- be the content wrapped as an entire HTML page, or it may be -->\n<!-- a subdivision that is just part of a page.                  -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"structural-division-content\">\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- Specialized divisions \"exercises\" and \"worksheet\" can be used   -->\n    <!-- as vehicles for collections of \"exercise\" as group work modules -->\n    <!-- NB: this assumes that the \"exercises\" is an entire page, so     -->\n    <!-- checks if it is a subdivision of a \"chapter\" (or \"appendix\").   -->\n    <!-- In other words, these divisions must be Runestone \"subchapter\". -->\n\n    <xsl:variable name=\"b-is-groupwork\"\n                  select=\"$b-host-runestone and (@groupwork = 'yes') and (self::worksheet or self::exercises) and (parent::chapter or parent::appendix)\"/>\n\n    <!-- location info for debugging efforts -->\n    <xsl:apply-templates select=\".\" mode=\"debug-location\" />\n    <!-- Heading, div for this structural subdivision -->\n    <!-- newlines inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <section>\n        <xsl:attribute name=\"class\">\n            <xsl:value-of select=\"local-name(.)\"/>\n            <!-- mark \"section\" for potential styling, etc -->\n            <xsl:if test=\"$b-is-groupwork\">\n                <xsl:text> groupwork</xsl:text>\n            </xsl:if>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <!-- page-margins-attribute will be empty unless in a printout division -->\n        <xsl:apply-templates select=\".\" mode=\"page-margins-attribute\"/>\n        <!-- page-header-footer-attributes; empty except in a printout division -->\n        <xsl:apply-templates select=\".\" mode=\"page-header-footer-attributes\"/>\n        <xsl:apply-templates select=\".\" mode=\"section-heading\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n        <!-- Special case when building page for frontmatter without a titlepage -->\n        <xsl:if test=\"self::frontmatter[not(titlepage)]\">\n            <xsl:call-template name=\"frontmatter-title\"/>\n        </xsl:if>\n        <xsl:apply-templates select=\".\" mode=\"author-byline\"/>\n        <!-- If there is watermark text, we print it here in an assistive p -->\n        <!-- so that it is the first thing read by a screen-reader user.    -->\n        <xsl:if test=\"$b-watermark and $heading-level = 2\">\n            <p class=\"watermark\">\n                <xsl:text>Watermark text: </xsl:text>\n                <xsl:value-of select=\"$watermark-text\"/>\n                <xsl:text></xsl:text>\n            </p>\n        </xsl:if>\n        <!-- After the heading, and before the actual guts, we      -->\n        <!-- sometimes annotate with the source                     -->\n        <!-- of the current element.  This calls a stub, unless     -->\n        <!-- a separate stylesheet is used to define the template,  -->\n        <!-- and the method is defined there.                       -->\n        <xsl:apply-templates select=\".\" mode=\"view-source-widget\"/>\n\n        <!-- This is usually recurrence, so increment heading-level,  -->\n        <!-- but \"book\" and \"article\" have an h1  masthead, so if     -->\n        <!-- this is the context, we just pass along the level of     -->\n        <!-- \"2\" which is supplied by the chunking templates          -->\n        <!-- N.B. the modal \"solutions\" templates increment           -->\n        <!--      $heading-level as \"exercise\" are produced, so       -->\n        <!--      we by-pass the increment here.                      -->\n        <xsl:variable name=\"next-level\">\n            <xsl:choose>\n                <xsl:when test=\"self::book or self::article or self::solutions\">\n                    <xsl:value-of select=\"$heading-level\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$heading-level + 1\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n\n        <!-- Most divisions are a simple list of elements to be       -->\n        <!-- processed in document order, once we handle metadata     -->\n        <!-- properly, and also kill it so it is not caught up here.  -->\n        <!-- So the \"inner-content\" template just processes children  -->\n        <!-- in document order.  Exceptions are:                      -->\n        <!--   \"solutions\": no children, so built via a constructive  -->\n        <!--                modal template                            -->\n        <!--   \"glossary\": is presumed to have a very specific        -->\n        <!--               structure which requires elements          -->\n        <!--               at the division level                      -->\n\n        <xsl:apply-templates select=\".\" mode=\"structural-division-inner-content\">\n            <xsl:with-param name=\"heading-level\" select=\"$next-level\"/>\n        </xsl:apply-templates>\n\n        <!-- Sometimes conclude with groupwork submission items -->\n        <xsl:if test=\"$b-is-groupwork\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-groupwork\"/>\n        </xsl:if>\n\n        <!-- Include permalink for the section as last child -->\n        <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n    <xsl:text>&#xa;</xsl:text>\n    </section>\n</xsl:template>\n\n<!-- A glossary has a headnote, followed by a sequence  -->\n<!-- of glossary items ('gi\").  This could be the place -->\n<!-- to get fancy and segment the entries with spacing  -->\n<!-- by letter, or similar. Terminal (as a specialized  -->\n<!-- division) and the  $heading-level  affects nothing -->\n<xsl:template match=\"glossary\" mode=\"structural-division-inner-content\">\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"headnote\"/>\n    <dl class=\"glossary\">\n        <xsl:apply-templates select=\"gi\"/>\n    </dl>\n</xsl:template>\n\n<!-- A \"solutions\" specialized division does not have any children -->\n<!-- at all, it gets built by mining content from other places     -->\n<xsl:template match=\"solutions\" mode=\"structural-division-inner-content\">\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\".\" mode=\"solutions\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- This is identical to the default \"structural-division-inner-content\" -->\n<!-- template just below, excepting there are modifications for Runestone -->\n<!-- to accomodate timed exams and group work.                            -->\n<xsl:template match=\"exercises\" mode=\"structural-division-inner-content\">\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- Similar to variable above, except we know this is an \"exercises\" -->\n    <xsl:variable name=\"b-is-groupwork\"\n              select=\"$b-host-runestone and (@groupwork = 'yes') and (parent::chapter or parent::appendix)\"/>\n\n    <xsl:variable name=\"the-exercises\">\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:choose>\n        <xsl:when test=\"@time-limit and $b-is-groupwork\">\n            <xsl:message>PTX:ERROR:   an &quot;exercises&quot; division cannot simultaneously be a timed exam AND group work</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\"/>\n        </xsl:when>\n        <xsl:when test=\"$b-is-groupwork\">\n            <!-- the actual list of exercises -->\n            <xsl:copy-of select=\"$the-exercises\"/>\n            <!-- Infrastructure for groupwork is provided by -->\n            <!--   \"structural-division-content\"             -->\n            <!-- template (early and late in \"section\")      -->\n            <!-- No progress indicator in this case -->\n        </xsl:when>\n        <!-- some extra wrapping for timed exercises      -->\n        <!-- so we pass the $the-exercises as a parameter -->\n        <!-- presence of @time-limit is the signal        -->\n        <xsl:when test=\"@time-limit\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-timed-exam\">\n                <xsl:with-param name=\"the-exercises\" select=\"$the-exercises\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- the actual list of exercises -->\n            <xsl:copy-of select=\"$the-exercises\"/>\n            <!-- only at \"section\" level. only when building for a Runestone server -->\n            <xsl:apply-templates select=\".\" mode=\"runestone-progress-indicator\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Only &STRUCTURAL; elements will pass through here, but we -->\n<!-- can't limit the match (without explicit exclusions), this -->\n<!-- is the default.  Which is to just apply templates to      -->\n<!-- elements within the division. Optional: add RS progress.  -->\n<xsl:template match=\"*\" mode=\"structural-division-inner-content\">\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n    <!-- only at \"section\" level. only when building for a Runestone server -->\n    <xsl:apply-templates select=\".\" mode=\"runestone-progress-indicator\"/>\n</xsl:template>\n\n\n<!-- ############### -->\n<!-- Bits and Pieces -->\n<!-- ############### -->\n\n<!-- Heading for Document Nodes -->\n<!-- Every document node goes the same way, a    -->\n<!-- heading followed by its subsidiary elements -->\n<!-- hit with templates.  This is the heading.   -->\n<!-- Only \"chapter\" ever gets shown generically  -->\n<!-- Subdivisions have titles, or default titles -->\n<xsl:template match=\"*\" mode=\"section-heading\">\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:variable name=\"html-heading\">\n        <xsl:apply-templates select=\".\" mode=\"html-heading\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"{$html-heading}\">\n        <xsl:attribute name=\"class\">\n            <xsl:choose>\n                <xsl:when test=\"(self::chapter or self::appendix or self::solutions/parent::backmatter) and ($numbering-maxlevel > 0)\">\n                    <xsl:text>heading</xsl:text>\n                </xsl:when>\n                <!-- hide \"Chapter\" when numbers are killed -->\n                <xsl:otherwise>\n                    <xsl:text>heading hide-type</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"heading-content\" />\n    </xsl:element>\n</xsl:template>\n\n<!-- Add an author's names, if present   -->\n<!-- TODO: make match more restrictive?  -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"author-byline\">\n    <xsl:if test=\"author\">\n        <p class=\"byline\">\n            <xsl:apply-templates select=\"author\" mode=\"name-list\"/>\n        </p>\n    </xsl:if>\n</xsl:template>\n\n<!-- The front and back matter have their own style -->\n<xsl:template match=\"frontmatter|backmatter\" mode=\"section-heading\" />\n\n<!-- A book or article is the top level, so the   -->\n<!-- masthead might suffice, else an author can   -->\n<!-- provide a frontmatter/titlepage to provide   -->\n<!-- more specific information.  In either event, -->\n<!-- a typical section heading is out of place.   -->\n<xsl:template match=\"book|article\" mode=\"section-heading\" />\n\n<!-- An abstract needs structure, and an ID for a -->\n<!-- link out of the ToC sidebar for an article   -->\n<xsl:template match=\"abstract\">\n    <div class=\"abstract\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <!-- title or heading?  We go with a default title, which will -->\n        <!-- be localized.  Then ban an author-provided title in the   -->\n        <!-- schema.  This allows for reasonable behavior in a ToC     -->\n        <!-- sidebar.  (This is a non-issue for LaTeX, where a good    -->\n        <!-- \"abstract\" environment exists.)                           -->\n        <span class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </span>\n        <xsl:apply-templates select=\"*\"/>\n        <!-- Display keywords.  Note: the placement of this here works for  -->\n        <!-- articles that have an abstract.  Books (no abstract) will put  -->\n        <!-- their keywords in the colophon.                                -->\n        <xsl:apply-templates select=\"$bibinfo/keywords\" />\n        <!-- Display general support (funding) statement -->\n        <xsl:apply-templates select=\"$bibinfo/support\" />\n    </div>\n</xsl:template>\n\n<!-- ######## -->\n<!-- Headings -->\n<!-- ######## -->\n\n<!-- Both environments and sections have a \"type,\"         -->\n<!-- a \"codenumber,\" and a \"title.\"  We format these       -->\n<!-- consistently here with a modal template.  We can hide -->\n<!-- components with classes on the enclosing \"heading\"    -->\n<xsl:template match=\"*\" mode=\"heading-content\">\n    <span class=\"type\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    </span>\n    <xsl:call-template name=\"space-styled\"/>\n    <span class=\"codenumber\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </span>\n    <xsl:call-template name=\"space-styled\"/>\n    <span class=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    </span>\n</xsl:template>\n\n<!-- Specialized Divisions -->\n<!-- A specialized division may inherit a number from its parent  -->\n<!-- (\"exercises\"), or it may not ever even get a number          -->\n<!-- (backmatter/references is a singleton).  Whether or not to   -->\n<!-- *display* a number at birth is therefore more complicated    -->\n<!-- than *having* a number or not.                               -->\n<!-- NB: We sneak in links for standalone versions of printouts.  -->\n<xsl:template match=\"exercises|solutions|glossary|references|worksheet|handout|reading-questions\" mode=\"heading-content\">\n    <span class=\"type\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    </span>\n    <xsl:call-template name=\"space-styled\"/>\n    <!-- be selective about displaying numbers at birth-->\n    <xsl:variable name=\"is-numbered\">\n        <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n    </xsl:variable>\n    <span class=\"codenumber\">\n        <xsl:if test=\"($is-numbered = 'true')\">\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </xsl:if>\n    </span>\n    <xsl:call-template name=\"space-styled\"/>\n    <span class=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    </span>\n    <!-- add print preview button for printouts -->\n    <xsl:if test=\"(self::worksheet or self::handout)\">\n        <xsl:apply-templates select=\".\" mode=\"standalone-printout-links\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Add print preview button for printouts                          -->\n<!-- As of 2025-12-29, we no longer create a separate html page for  -->\n<!-- print previews.  A simple button with printer icon that reloads -->\n<!-- the page with a url parameter that tells javascript to switch   -->\n<!-- to printout css and format all the pages and workspace.         -->\n<xsl:template match=\"worksheet|handout\" mode=\"standalone-printout-links\">\n    <xsl:variable name=\"printout-id\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n    </xsl:variable>\n    <xsl:variable name=\"print-preview-text\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'print-preview'\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <div class=\"print-links\">\n        <a href=\"?printpreview={$printout-id}\" class=\"print-link\" title=\"{$print-preview-text}\">\n            <xsl:call-template name=\"insert-symbol\">\n                <xsl:with-param name=\"name\" select=\"'print'\"/>\n            </xsl:call-template>\n        </a>\n    </div>\n</xsl:template>\n\n<!-- Recursively finds enclosing structural node -->\n<!-- and reports if it has an xml:id on it       -->\n<!-- Note: from mode=\"containing-filename\", can we return a node-set? -->\n<xsl:template match=\"*\" mode=\"has-id-on-enclosure\">\n    <xsl:variable name=\"intermediate\"><xsl:apply-templates select=\".\" mode=\"is-intermediate\" /></xsl:variable>\n    <xsl:variable name=\"chunk\"><xsl:apply-templates select=\".\" mode=\"is-chunk\" /></xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$intermediate='true' or $chunk='true'\">\n            <!-- found it, is there an xml:id? -->\n            <xsl:choose>\n                <xsl:when test=\"@xml:id\">\n                    <xsl:value-of select=\"true()\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"false()\" />\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"..\" mode=\"has-id-on-enclosure\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ####################### -->\n<!-- Front Matter Components -->\n<!-- ####################### -->\n\n<!-- Title Page -->\n<!-- A frontmatter has no title, so we reproduce the       -->\n<!-- title of the work (book or article) here              -->\n<!-- NB: this could done with a \"section-heading\" template?-->\n<!-- Other divisions (eg, colophon, preface) will follow   -->\n<!-- This is all within a .frontmatter class for CSS       -->\n<xsl:template match=\"titlepage\">\n    <!-- Use a context-free template to generate -->\n    <!-- an \"h2\" title/subtitle heading          -->\n    <xsl:call-template name=\"frontmatter-title\"/>\n    <!-- text generator for title page items from \"bibinfo\" -->\n    <xsl:apply-templates select=\"$document-root/frontmatter/titlepage/titlepage-items\" />\n</xsl:template>\n\n<xsl:template match=\"titlepage-items\">\n    <!-- Put authors and editors first, in document order -->\n    <xsl:apply-templates select=\"$bibinfo/author|$bibinfo/editor\" mode=\"full-info\"/>\n    <!-- Followed by \"contributors\" authored as credit (which have titles) -->\n    <xsl:apply-templates select=\"$bibinfo/credit[title]\" />\n    <!-- and finally date -->\n    <xsl:apply-templates select=\"$bibinfo/date\" />\n</xsl:template>\n\n<!-- Title to put on frontmatter page.  This is a context-free named template      -->\n<!-- since an author's source may not have a frontmatter/titlepage element,        -->\n<!-- yet we still want to grap the title (and subtitle) for use on pages           -->\n<!-- generated by a \"frontmatter\" element (including, e.g., an intermediate page). -->\n<xsl:template name=\"frontmatter-title\">\n    <xsl:variable name=\"b-has-subtitle\" select=\"$document-root/subtitle\"/>\n    <h2 class=\"heading\">\n        <span class=\"title\">\n            <xsl:apply-templates select=\"$document-root\" mode=\"title-full\" />\n        </span>\n        <xsl:if test=\"$b-has-subtitle\">\n            <span class=\"subtitle\">\n                <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\" />\n            </span>\n        </xsl:if>\n    </h2>\n</xsl:template>\n\n<!-- A \"credit\" required \"title\" followed by an author (or several)    -->\n<!-- CSS should give lesser prominence to these (versus \"full\" author) -->\n<xsl:template match=\"bibinfo/credit[title]\">\n    <div class=\"credit\">\n        <div class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </div>\n        <xsl:apply-templates select=\"author\" mode=\"full-info\" />\n    </div>\n</xsl:template>\n\n<!-- The time element has content that is \"human readable\" time -->\n<xsl:template match=\"bibinfo/date\">\n    <div class=\"date\">\n        <xsl:apply-templates/>\n    </div>\n</xsl:template>\n\n<!-- Authors, Editors, Creditors -->\n\n<!-- Authors and editors with affiliations (eg, on title page) -->\n<!-- CSS does not distinguish authors from editors             -->\n<xsl:template match=\"author|editor\" mode=\"full-info\">\n    <div class=\"author\">\n        <div class=\"author-name\">\n            <xsl:apply-templates select=\"personname\" />\n            <xsl:if test=\"self::editor\">\n                <xsl:text>, </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"type-name\" />\n            </xsl:if>\n        </div>\n        <div class=\"author-info\">\n            <xsl:if test=\"affiliation\">\n                <xsl:apply-templates select=\"affiliation\"/>\n                <xsl:if test=\"affiliation/following-sibling::*\">\n                    <br />\n                </xsl:if>\n            </xsl:if>\n            <xsl:if test=\"email\">\n                <xsl:apply-templates select=\"email\" />\n                <xsl:if test=\"email/following-sibling::*\">\n                    <br />\n                </xsl:if>\n            </xsl:if>\n            <xsl:if test=\"support\">\n                <xsl:apply-templates select=\"support\" />\n                <xsl:if test=\"support/following-sibling::*\">\n                    <br />\n                </xsl:if>\n            </xsl:if>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"affiliation\">\n    <xsl:if test=\"department\">\n        <xsl:apply-templates select=\"department\" />\n        <xsl:if test=\"department/following-sibling::*\">\n            <br />\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"institution\">\n        <xsl:apply-templates select=\"institution\" />\n        <xsl:if test=\"institution/following-sibling::*\">\n            <br />\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"location\">\n        <xsl:apply-templates select=\"location\" />\n        <xsl:if test=\"location/following-sibling::*\">\n            <br />\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<!-- Departments and Institutions are free-form, or sequences of lines -->\n<xsl:template match=\"department|institution|location\">\n    <xsl:apply-templates/>\n</xsl:template>\n\n<xsl:template match=\"department[line]|institution[line]|location[line]\">\n    <xsl:apply-templates select=\"line\" />\n</xsl:template>\n\n<!-- Keywords -->\n<xsl:template match=\"bibinfo/keywords\">\n    <div class=\"keywords\">\n        <span class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </span>\n        <xsl:apply-templates select=\"*\" />\n        <xsl:text>.</xsl:text>\n    </div>\n</xsl:template>\n\n<!-- General support (not for a particular author) -->\n<xsl:template match=\"bibinfo/support\">\n    <div class=\"support\">\n        <xsl:apply-templates select=\"*\"/>\n    </div>\n</xsl:template>\n\n\n<!-- Front Colophon -->\n<!-- Licenses, ISBN, Cover Designer, etc -->\n<!-- We process pieces, in document order -->\n<!-- TODO: edition, publisher, production notes, cover design, etc -->\n<!-- TODO: revision control commit hash -->\n<xsl:template match=\"frontmatter/colophon\" mode=\"structural-division-inner-content\">\n    <xsl:param name=\"heading-level\"/>\n    <!-- Include publication data from titlepage appropriate for colophon -->\n    <xsl:apply-templates select=\"colophon-items\"/>\n</xsl:template>\n\n<xsl:template match=\"colophon-items\">\n     <xsl:apply-templates select=\"$bibinfo/credit[role]\" />\n     <xsl:apply-templates select=\"$bibinfo/edition\" />\n     <xsl:apply-templates select=\"$bibinfo/website\" />\n     <xsl:apply-templates select=\"$bibinfo/copyright\" />\n     <!-- NB: keywords are included in a colophon for a book, but under the abstract of an article -->\n     <xsl:apply-templates select=\"$bibinfo/keywords\" />\n     <xsl:apply-templates select=\"$bibinfo/support\" />\n</xsl:template>\n\n<xsl:template match=\"bibinfo/credit[role]\">\n    <div class=\"credit\">\n        <b class=\"title\">\n            <xsl:apply-templates select=\"role\" />\n        </b>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\"entity\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"bibinfo/edition\">\n    <div class=\"credit\">\n        <b class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\" />\n        </b>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates/>\n    </div>\n</xsl:template>\n\n<!-- website for the book -->\n<xsl:template match=\"bibinfo/website\">\n    <div class=\"credit\">\n        <b class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\" />\n        </b>\n        <xsl:text> </xsl:text>\n        <!-- URL for canonical project website                -->\n        <!-- NB: interior of \"website\" is a \"url\" in author's -->\n        <!-- source, but the pre-processor adds a footnote    -->\n        <!-- Only one presumed, and thus enforced here        -->\n        <xsl:apply-templates select=\"url[1]|fn[1]\" />\n    </div>\n</xsl:template>\n\n<xsl:template match=\"bibinfo/copyright\">\n    <div class=\"para copyright\">\n        <xsl:call-template name=\"copyright-character\"/>\n        <xsl:apply-templates select=\"year\" />\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\"holder\" />\n    </div>\n    <xsl:if test=\"shortlicense\">\n        <div class=\"para license\">\n            <xsl:apply-templates select=\"shortlicense\" />\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- Introductions and Conclusions -->\n<!-- Simple containers, allowed before and after           -->\n<!-- explicit subdivisions, to introduce or summarize      -->\n<!-- Title optional, typically just a few paragraphs       -->\n<!-- Also occur in \"smaller\" units (elsewhere), so the     -->\n<!-- HTML element varies from a \"section\" to an \"article\"  -->\n\n<!-- Not knowlable as a component of bigger things, a      -->\n<!-- pure container.  This is the component of a division. -->\n<!-- Tunnel the duplication flag, drop id if duplicate     -->\n<!-- NB: self::page for inside printouts -->\n<xsl:template match=\"introduction[parent::*[&STRUCTURAL-FILTER; or self::page]]|conclusion[parent::*[&STRUCTURAL-FILTER; or self::page]]\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <section>\n        <!-- cheap, but it works -->\n        <xsl:attribute name=\"class\">\n            <xsl:value-of select=\"local-name(.)\" />\n        </xsl:attribute>\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <xsl:if test=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"heading-title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                    <span> </span>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </section>\n</xsl:template>\n\n<!-- ####################### -->\n<!-- Back Matter Components -->\n<!-- ####################### -->\n\n<!-- Back Colophon -->\n<!-- Nothing special, so just process similarly to front -->\n\n<!--               -->\n<!-- Notation List -->\n<!--               -->\n\n<!-- Implementation of abstract templates.       -->\n<!-- See more complete code comments in -common. -->\n\n<xsl:template name=\"present-notation-list\">\n    <xsl:param name=\"content\"/>\n\n    <table class=\"notation-list\">\n        <tr>\n            <th>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'symbol'\"/>\n                </xsl:apply-templates>\n            </th>\n            <th>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'description'\"/>\n                </xsl:apply-templates>\n            </th>\n            <th>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'location'\"/>\n                </xsl:apply-templates>\n            </th>\n        </tr>\n        <xsl:copy-of select=\"$content\"/>\n    </table>\n</xsl:template>\n\n<!-- Process *exactly* one \"m\" element             -->\n<!-- Duplicate the provided description            -->\n<!-- Create a cross-reference to enclosing content -->\n<xsl:template match=\"notation\" mode=\"present-notation-item\">\n    <tr>\n        <td>\n            <xsl:apply-templates select=\"usage/m[1]\"/>\n        </td>\n        <td>\n            <xsl:apply-templates select=\"description\" />\n        </td>\n        <td>\n            <xsl:apply-templates select=\".\" mode=\"enclosure-xref\" />\n        </td>\n    </tr>\n</xsl:template>\n\n<!-- Experimental: maybe belongs in -common -->\n<!-- Not -md, know where the link lives     -->\n<!-- NB: presumes this only gets used for   -->\n<!-- knowls that end up in a \"notation\"     -->\n<!-- list (can't adjust @match since it     -->\n<!-- claws up the tree)                     -->\n<xsl:template match=\"*\" mode=\"enclosure-xref\">\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\".\" mode=\"is-structural\" />\n    </xsl:variable>\n    <xsl:variable name=\"block\">\n        <xsl:apply-templates select=\".\" mode=\"is-block\" />\n    </xsl:variable>\n    <xsl:choose>\n        <!-- found a structural or block parent -->\n        <!-- we fashion a cross-reference link  -->\n        <!-- TODO: xref-link's select is a fiction, maybe lead to bugs? -->\n        <xsl:when test=\"$structural='true' or $block='true'\">\n            <xsl:apply-templates select=\".\" mode=\"xref-link\">\n                <xsl:with-param name=\"target\" select=\".\" />\n                <xsl:with-param name=\"origin\" select=\"'notation'\"/>\n                <xsl:with-param name=\"content\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\" />\n                    <xsl:variable name=\"enclosure-number\">\n                        <xsl:apply-templates select=\".\" mode=\"number\" />\n                    </xsl:variable>\n                    <xsl:if test=\"not($enclosure-number = '')\">\n                        <xsl:text> </xsl:text>\n                        <xsl:value-of select=\"$enclosure-number\" />\n                    </xsl:if>\n                </xsl:with-param>\n            </xsl:apply-templates>\n            <!-- As we make knowl content selectively, we need -->\n            <!-- nto produce the content for the notation link -->\n            <xsl:variable name=\"is-knowl\">\n                <xsl:apply-templates select=\".\" mode=\"xref-as-knowl\"/>\n            </xsl:variable>\n            <xsl:if test=\"$is-knowl = 'true'\">\n                <xsl:apply-templates select=\".\" mode=\"manufacture-knowl\">\n                    <xsl:with-param name=\"origin\" select=\"'notation'\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:when>\n        <!-- nothing interesting here, so step up a level -->\n        <!-- Eventually we find the top-level structure   -->\n        <!-- eg article, book, etc                        -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"enclosure-xref\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ####################################### -->\n<!-- Solutions Divisions, Content Generation -->\n<!-- ####################################### -->\n\n<!-- The \"division-in-solutions\" modal template from -common -->\n<!-- calls the \"duplicate-heading\" modal template.           -->\n\n<xsl:template match=\"*\" mode=\"duplicate-heading\">\n    <!-- If we default b-make-link to true() we could make -->\n    <!-- section headings that appear in solutions into    -->\n    <!-- backlinks to the corresponding sections. As it is -->\n    <!-- only exercises etc become backlinks.              -->\n    <xsl:param name=\"b-make-link\" select=\"false()\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"heading-stack\" select=\".\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"b-make-link\" select=\"$b-make-link\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"extra-heading-classes\">\n            <xsl:if test=\"not(self::chapter) or ($numbering-maxlevel = 0)\">\n                <xsl:text> hide-type</xsl:text>\n            </xsl:if>\n        </xsl:with-param>\n        <xsl:with-param name=\"heading-attr-title\">\n            <xsl:apply-templates select=\".\" mode=\"tooltip-text\" />\n        </xsl:with-param>\n        <xsl:with-param name=\"heading-title\">\n            <xsl:apply-templates select=\"$heading-stack\" mode=\"duplicate-heading-content\"/>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"duplicate-heading-content\">\n    <xsl:variable name=\"is-specialized-division\">\n        <xsl:choose>\n            <xsl:when test=\"self::task\">\n                <xsl:value-of select=\"false()\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"is-specialized-division\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"is-child-of-structured\">\n        <xsl:choose>\n            <xsl:when test=\"parent::*[&TRADITIONAL-DIVISION-FILTER;]\">\n                <xsl:apply-templates select=\"parent::*[&TRADITIONAL-DIVISION-FILTER;]\" mode=\"is-structured-division\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"false()\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    </xsl:variable>\n    <!-- Since headings stack, we use a \"p\" to aid screen readers in pausing between headings -->\n    <xsl:if test=\"$is-specialized-division = 'false' or $is-child-of-structured = 'true'\">\n        <span class=\"codenumber\">\n            <xsl:apply-templates select=\".\" mode=\"number\" />\n        </span>\n        <xsl:if test=\"$title != ''\">\n            <xsl:call-template name=\"space-styled\"/>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$title != ''\">\n        <span class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        </span>\n    </xsl:if>\n    <xsl:if test=\"position() != last()\">\n        <br/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############### -->\n<!-- Arbitrary Lists -->\n<!-- ############### -->\n\n<!-- See general routine in  xsl/pretext-common.xsl -->\n<!-- which expects the two named templates and the  -->\n<!-- two division'al and element'al templates below,  -->\n<!-- it contains the logic of constructing such a list -->\n\n<!-- List-of entry/exit hooks -->\n<!-- No ops for HTML          -->\n<xsl:template name=\"list-of-begin\" />\n<xsl:template name=\"list-of-end\" />\n\n<!-- Subdivision headings in list-of's -->\n<xsl:template match=\"*\" mode=\"list-of-heading\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"duplicate-heading\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Entries in list-of's -->\n<!-- Partly borrowed from common routines -->\n<!-- TODO: CSS styling of the div forcing the knowl to open in the right place -->\n<!-- And spacing should be done with .type, .codenumber, .title                -->\n<xsl:template match=\"*\" mode=\"list-of-element\">\n    <!-- Name and number as a knowl/link, div to open against -->\n    <!-- TODO: xref-link's select is a fiction, maybe lead to bugs? -->\n    <div>\n        <xsl:apply-templates select=\".\" mode=\"xref-link\">\n            <xsl:with-param name=\"target\" select=\".\" />\n            <xsl:with-param name=\"origin\" select=\"'list-of'\"/>\n            <xsl:with-param name=\"content\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\" />\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"number\" />\n            </xsl:with-param>\n        </xsl:apply-templates>\n        <!-- title plain, separated             -->\n        <!-- xref version, no additional period -->\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n    </div>\n    <!-- As we make knowl content selectively, we need -->\n    <!-- nto produce the content for a \"list-of\" link  -->\n    <xsl:variable name=\"is-knowl\">\n        <xsl:apply-templates select=\".\" mode=\"xref-as-knowl\"/>\n    </xsl:variable>\n    <xsl:if test=\"$is-knowl = 'true'\">\n        <xsl:apply-templates select=\".\" mode=\"manufacture-knowl\">\n            <xsl:with-param name=\"origin\" select=\"'list-of'\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Contributor List -->\n<!-- ################ -->\n\n<!-- Not much happening here, will drop -->\n<!-- into environment manufacture       -->\n<xsl:template match=\"contributors\">\n    <xsl:apply-templates select=\"contributor\" />\n</xsl:template>\n\n<!-- ############## -->\n<!-- Index Creation -->\n<!-- ############## -->\n\n<!-- Implementation of abstract index template -->\n<!-- No wrapper in HTML output                 -->\n<xsl:template name=\"present-index\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:copy-of select=\"$content\"/>\n</xsl:template>\n\n<!-- Implementation of abstract letter group template        -->\n<!-- wrap the group in a div, which will be used for styling -->\n<xsl:template name=\"present-letter-group\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"letter-group\"/>\n    <xsl:param name=\"current-letter\"/>\n    <xsl:param name=\"content\"/>\n\n    <div class=\"indexletter\" id=\"indexletter-{$current-letter}\">\n        <xsl:copy-of select=\"$content\"/>\n    </div>\n</xsl:template>\n\n<!-- Implementation of presentation of index item, sub index item,      -->\n<!-- sub sub index item, in other words, headings at depth 1, 2, and 3. -->\n<!--   $heading-level: is 1, 2 or 3, to be translated to indicators     -->\n<!--                   for styling (such as indentation, newlines, etc) -->\n<!--   $content:       the actual text of the heading                   -->\n\n<xsl:template name=\"present-index-heading\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"heading-group\"/>\n    <xsl:param name=\"b-write-locators\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"content\"/>\n\n    <div class=\"indexitem\">\n        <!-- translate heading-level to a CSS class name -->\n        <xsl:attribute name=\"class\">\n            <xsl:choose>\n                <xsl:when test=\"$heading-level = 1\">\n                    <xsl:text>indexitem</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-level = 2\">\n                    <xsl:text>subindexitem</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$heading-level = 3\">\n                    <xsl:text>subsubindexitem</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <!-- the actual heading content -->\n        <xsl:copy-of select=\"$content\"/>\n        <!-- perhaps time to write locators -->\n        <xsl:if test=\"$b-write-locators\">\n            <xsl:call-template name=\"locator-list\">\n                <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n                <xsl:with-param name=\"heading-group\" select=\"$heading-group\" />\n                <!-- use space to separate knowls -->\n                <xsl:with-param name=\"cross-reference-separator\" select=\"' '\" />\n            </xsl:call-template>\n        </xsl:if>\n    </div>\n</xsl:template>\n\n<!-- Implementation of abstract templates for presentation of locators -->\n\n<xsl:template name=\"present-index-locator\">\n    <xsl:param name=\"content\"/>\n\n    <span class=\"indexknowl\">\n        <xsl:copy-of select=\"$content\"/>\n    </span>\n</xsl:template>\n\n<xsl:template name=\"present-index-see\">\n    <xsl:param name=\"content\"/>\n\n    <span class=\"see\">\n        <xsl:copy-of select=\"$content\"/>\n    </span>\n</xsl:template>\n\n<xsl:template name=\"present-index-see-also\">\n    <xsl:param name=\"content\"/>\n\n    <span class=\"seealso\">\n        <xsl:copy-of select=\"$content\"/>\n    </span>\n</xsl:template>\n\n<xsl:template name=\"present-index-italics\">\n    <xsl:param name=\"content\"/>\n\n    <em>\n        <xsl:copy-of select=\"$content\"/>\n    </em>\n</xsl:template>\n\n\n<!-- Climb the tree looking for an enclosing structure of        -->\n<!-- interest.  Create cross-reference.                          -->\n<!-- One notable case: paragraph must be \"top-level\", just below -->\n<!-- a structural document node                                  -->\n<!-- Recursion always halts, since \"pretext\" is structural       -->\n<!-- TODO: save knowl or section link                            -->\n<!-- We create content of \"xref-knowl\" if it is a block.         -->\n<!-- TODO: identify index targets consistently in \"make-xref-knowls\" -->\n<!-- template, presumably parents of \"idx\" that are knowlable.       -->\n<xsl:template match=\"index-list\" mode=\"index-enclosure\">\n    <xsl:param name=\"enclosure\"/>\n\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\"$enclosure\" mode=\"is-structural\"/>\n    </xsl:variable>\n    <xsl:variable name=\"block\">\n        <xsl:apply-templates select=\"$enclosure\" mode=\"is-block\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- found a structural parent first           -->\n        <!-- collect a url for a traditional hyperlink -->\n        <xsl:when test=\"($structural = 'true') or ($block = 'true')\">\n            <xsl:apply-templates select=\".\" mode=\"xref-link\">\n                <xsl:with-param name=\"target\" select=\"$enclosure\"/>\n                <xsl:with-param name=\"origin\" select=\"'index'\"/>\n                <xsl:with-param name=\"content\">\n                    <xsl:apply-templates select=\"$enclosure\" mode=\"type-name\"/>\n                </xsl:with-param>\n            </xsl:apply-templates>\n            <xsl:variable name=\"need-knowl\">\n                <xsl:apply-templates select=\"$enclosure\" mode=\"xref-as-knowl\"/>\n            </xsl:variable>\n            <xsl:if test=\"$block = 'true' and $need-knowl = 'true'\">\n                <xsl:apply-templates select=\"$enclosure\" mode=\"manufacture-knowl\">\n                    <xsl:with-param name=\"origin\" select=\"'index'\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- Recurse.  The \"index-list\" gets passed along unchanged,     -->\n            <!-- as the context for location of the eventual cross-reference -->\n            <xsl:apply-templates select=\".\" mode=\"index-enclosure\">\n                <xsl:with-param name=\"enclosure\" select=\"$enclosure/parent::*\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################################### -->\n<!-- Cross-Reference Knowls (xref-knowl) -->\n<!-- ################################### -->\n\n<!-- Many elements are candidates for cross-references     -->\n<!-- and many of those are nicely implemented as knowls.   -->\n\n<!-- Cross-references as knowls                               -->\n<!-- Override to turn off cross-references as knowls          -->\n<!-- NB: this device makes it easy to turn off knowlification -->\n<!-- entirely, since some renders cannot use knowl JavaScript -->\n<xsl:template match=\"*\" mode=\"xref-as-knowl\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n<!-- TEMPORARY: var/li is a WeBWorK popup or radio button, -->\n<!-- which is not a cross-reference target (it originates  -->\n<!-- in PG-code), and an error results when the heading in -->\n<!-- the knowl content tries to compute a number           -->\n<xsl:template match=\"fn|p|blockquote|biblio|biblio/note|interactive/instructions|gi|&DEFINITION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|task|&FIGURE-LIKE;|&THEOREM-LIKE;|&PROOF-LIKE;|case|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&ASIDE-LIKE;|poem|assemblage|paragraphs|&GOAL-LIKE;|exercise|&SOLUTION-LIKE;|&DISCUSSION-LIKE;|exercisegroup|md[@pi:authored-one-line]|mrow|li[not(parent::var)]|contributor|fragment\" mode=\"xref-as-knowl\">\n    <xsl:param name=\"link\" select=\"/..\" />\n    <xsl:choose>\n        <xsl:when test=\"$b-skip-knowls or $html-xref-knowled = 'never' or $b-portable-html\">\n            <xsl:value-of select=\"false()\"/>\n        </xsl:when>\n        <xsl:when test=\"$html-xref-knowled = 'maximum'\">\n            <xsl:value-of select=\"true()\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- Case $html-xref-knowled = 'cross-page'                                    -->\n            <!-- Find the nearest common ancestor of the link and target                   -->\n            <!-- https://stackoverflow.com/questions/538293/find-common-parent-using-xpath -->\n            <xsl:variable name=\"nearest-common-ancestor\"\n                          select=\"./ancestor::*[count(. | $link/ancestor::*) = count($link/ancestor::*)] [1]\"/>\n            <xsl:variable name=\"nearest-ancestor-level\">\n                <xsl:apply-templates select=\"$nearest-common-ancestor\" mode=\"enclosing-level\"/>\n            </xsl:variable>\n            <!-- remove not(), replace operator with <, then radically different behavior -->\n            <xsl:value-of select=\"not($nearest-ancestor-level >= $chunk-level)\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- This template makes the knowl content for cross-references    -->\n<!-- (and not index entries, notation list entries, etc.)  It      -->\n<!-- accumulates and de-duplicagtes all the @ref/@xml:id strings   -->\n<!-- and then makes the files of content for the target *once*.    -->\n<!-- Initiation is one-time, late in the entry template.           -->\n<!--                                                               -->\n<!-- A \"fragref\" for literate programming has specialized behavior -->\n<!-- when reconstructing program code.  But as a knowl in HTML it  -->\n<!-- is isomorphic to \"xref\", so we lump them into this template.  -->\n<!-- Also, because we collect unique id's it will no longer be     -->\n<!-- possible to use the \"origin\" parameter to distinguish the     -->\n<!-- reference provoking the knowl (an \"xref\" and a \"fragref\"      -->\n<!-- could point to the same target).  There is little downside in -->\n<!-- this, and some upside in not putting identical content into   -->\n<!-- multiple locations.                                           -->\n<xsl:template match=\"*\" mode=\"make-xref-knowls\">\n    <xsl:variable name=\"xref-ids\">\n        <!-- Round up all \"xref\" elements -->\n        <xsl:variable name=\"all-xref\" select=\"$document-root//xref\"/>\n        <!-- Rund up all \"fragref\" elements, which are very similar -->\n        <xsl:variable name=\"all-fragref\" select=\"$document-root//fragref\"/>\n        <!-- A \"proof\" (or similar) with a @ref attribute doubles as  -->\n        <!-- an \"xref\" to the theorem it proves.  This should only be -->\n        <!-- a \"detached\" proof, not living inside a THEOREM-LIKE,    -->\n        <!-- nor inside a SOLUTION-LIKE. An author's attempt to put a -->\n        <!-- @ref on a non-detached proof will not create a knowl     -->\n        <!-- clickable and so will be unavailable. We make the knowl  -->\n        <!-- content here anyway, which does no real harm and should  -->\n        <!-- stop once the author mends their ways.                   -->\n        <!-- NB: there is an implicit PROOF-LIKE here.                -->\n        <xsl:variable name=\"all-proofref\" select=\"$document-root//proof[@ref]|$document-root//argument[@ref]|$document-root//justification[@ref]|$document-root//reasoning[@ref]|$document-root//explanation[@ref]\"/>\n        <!-- Consider all \"xref-like\" together as a group -->\n        <xsl:for-each select=\"$all-xref|$all-fragref|$all-proofref\">\n            <xsl:choose>\n                <!-- ignore, no-op -->\n                <xsl:when test=\"@provisional\"/>\n                <!-- just use @first, clean-up spaces -->\n                <xsl:when test=\"@first and @last\">\n                    <xid>\n                        <xsl:value-of select=\"normalize-space(@first)\"/>\n                    </xid>\n                </xsl:when>\n                <!-- a space-separated or comma-separated list -->\n                <!-- to bust up and wrap many times in \"xid\"   -->\n                <xsl:when test=\"@ref and (contains(normalize-space(@ref), ' ') or contains(@ref, ','))\">\n                    <xsl:variable name=\"clean-list\" select=\"concat(normalize-space(translate(@ref, ',', ' ')), ' ')\"/>\n                    <xsl:call-template name=\"split-ref-list\">\n                        <xsl:with-param name=\"list\" select=\"$clean-list\"/>\n                    </xsl:call-template>\n                </xsl:when>\n                <!-- clean-up reference as a courtesy -->\n                <xsl:when test=\"@ref\">\n                    <xid>\n                        <xsl:value-of select=\"normalize-space(@ref)\"/>\n                    </xid>\n                </xsl:when>\n                <!-- could error-check here -->\n                <xsl:otherwise/>\n            </xsl:choose>\n            <!-- TODO: cruise \"idx\" to get references to parents -->\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"id-nodes\" select=\"exsl:node-set($xref-ids)\"/>\n\n    <!-- might work better if sorted first -->\n    <xsl:variable name=\"unique-ids-rtf\">\n        <xsl:for-each select=\"$id-nodes/xid[not(. = preceding::*/.)]\">\n            <xsl:copy-of select=\".\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"unique-ids\" select=\"exsl:node-set($unique-ids-rtf)\"/>\n\n    <xsl:for-each select=\"$unique-ids/xid\">\n        <!-- context change coming, so save off the actual id string -->\n        <xsl:variable name=\"the-id\" select=\".\"/>\n        <!-- for-each only loops over one item, but changes context, -->\n        <!-- so the id() function is checking against the right document -->\n        <xsl:for-each select=\"$document-root\">\n            <xsl:variable name=\"target\" select=\"id($the-id)\"/>\n            <xsl:variable name=\"is-knowl\">\n                <xsl:apply-templates select=\"$target\" mode=\"xref-as-knowl\"/>\n            </xsl:variable>\n            <xsl:if test=\"$is-knowl = 'true'\">\n                <xsl:apply-templates select=\"$target\" mode=\"manufacture-knowl\">\n                    <xsl:with-param name=\"origin\" select=\"'xref'\" />\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Decompose a string of references into elements for id  -->\n<!-- rtf above.  Note: each token has a space following it  -->\n<xsl:template name=\"split-ref-list\">\n    <xsl:param name=\"list\"/>\n\n    <xsl:choose>\n        <!-- final space causes recursion with -->\n        <!-- totally empty list, so halt       -->\n        <xsl:when test=\"$list = ''\"/>\n        <xsl:otherwise>\n            <xid>\n                <xsl:value-of select=\"substring-before($list, ' ')\"/>\n            </xid>\n            <xsl:call-template name=\"split-ref-list\">\n                <xsl:with-param name=\"list\" select=\"substring-after($list, ' ')\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Build file for xref-knowl content                            -->\n<!-- Context is an object that is the target of a cross-reference -->\n<!-- (\"xref\") and is known/checked to be implemented as a knowl.  -->\n<xsl:template match=\"*\" mode=\"manufacture-knowl\">\n    <xsl:param name=\"origin\" select=\"''\"/>\n\n    <xsl:variable name=\"knowl-file\">\n        <xsl:apply-templates select=\".\" mode=\"knowl-filename\">\n            <xsl:with-param name=\"origin\" select=\"$origin\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <!-- N.B. can't form @href with xsl:attribute -->\n    <exsl:document href=\"{$knowl-file}\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n        <html>\n            <xsl:call-template name=\"language-attributes\"/>\n            <xsl:call-template name=\"pretext-advertisement-and-style\"/>\n            <!-- header since separate file -->\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:call-template name=\"converter-blurb-html-no-date\"/>\n            <head>\n                <!-- dissuade indexing duplicated content -->\n                <meta name=\"robots\" content=\"noindex, nofollow\" />\n                <!-- we need Sage cell configuration functions     -->\n                <!-- in the knowl file itself, the main Javascript -->\n                <!-- is being placed on *every* page, if present   -->\n                <!-- anywhere in the document, and that is         -->\n                <!-- sufficient for the external knowl             -->\n                <xsl:apply-templates select=\".\" mode=\"sagecell\" />\n            </head>\n            <!-- ignore MathJax signals everywhere, then enable selectively -->\n            <body class=\"ignore-math\">\n                <!-- content, in xref style or hidden style     -->\n                <!-- initiate tunneling duplication flag here   -->\n                <!-- We send a flag to the \"body\" template      -->\n                <!-- indicating the call is at the outermost    -->\n                <!-- level of the knowl being constructed,      -->\n                <!-- rather than to manufacture a child element -->\n                <!-- Usually this parameter is ignored          -->\n                <!-- An xref to an mrow results in a knowl      -->\n                <!-- whose content is more than just the xref,  -->\n                <!-- it is the entire containing md or mdn      -->\n\n                <!-- NB: the Javascript controlling the animation of the   -->\n                <!-- open/close of a knowl, presumes it begins with an     -->\n                <!-- element enclosing the content.  This is guaranteed by -->\n                <!-- the \"body\" template via the \"body-element\" template.  -->\n                <xsl:choose>\n                    <xsl:when test=\"self::mrow\">\n                        <xsl:apply-templates select=\"parent::*\" mode=\"body\">\n                            <xsl:with-param name=\"block-type\" select=\"'xref'\" />\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"b-top-level\" select=\"true()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"2\"/>\n                        </xsl:apply-templates>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:apply-templates select=\".\" mode=\"body\">\n                            <xsl:with-param name=\"block-type\" select=\"'xref'\" />\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"b-top-level\" select=\"true()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"2\"/>\n                        </xsl:apply-templates>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <!-- in-context link for xref-knowl content -->\n                <span class=\"incontext\">\n                    <a class=\"internal\">\n                        <xsl:attribute name=\"href\">\n                            <xsl:apply-templates select=\".\" mode=\"url\"/>\n                        </xsl:attribute>\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'incontext'\"/>\n                        </xsl:apply-templates>\n                    </a>\n                </span>\n            </body>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- The directories of knowls that are targets of references.  Most,   -->\n<!-- but not all, filenames are based on the \"visible-id\" template,     -->\n<!-- but this is organized so alternate naming conventions can be used. -->\n<!-- The file extension is *.html so recognized as OK by Moodle, etc    -->\n<xsl:template match=\"*\" mode=\"knowl-filename\">\n    <xsl:param name=\"origin\" select=\"''\"/>\n\n    <xsl:text>./knowl/</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$origin = 'xref'\">\n            <xsl:text>xref/</xsl:text>\n            <!-- Target of an \"xref\" must always have an author-supplied -->\n            <!-- @xml:id value and this is backward-compatible with the  -->\n            <!-- situation before @label became prominent.               -->\n            <xsl:value-of select=\"@xml:id\"/>\n        </xsl:when>\n        <xsl:when test=\"$origin = 'index'\">\n            <xsl:text>index/</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n        </xsl:when>\n        <xsl:when test=\"$origin = 'list-of'\">\n            <xsl:text>list-of/</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n        </xsl:when>\n        <xsl:when test=\"$origin = 'notation'\">\n            <xsl:text>notation/</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n        </xsl:when>\n        <!-- put a \"location-report\" template here to debug a bad knowl file -->\n        <!-- (the file, or a reference to it) that lacks a subdirectory      -->\n        <xsl:otherwise/>\n    </xsl:choose>\n    <xsl:text>.html</xsl:text>\n</xsl:template>\n\n<!-- ######## -->\n<!-- Headings -->\n<!-- ######## -->\n\n<!-- Pretty much everything for actually manipluating titles -->\n<!-- happens in the -common template. But when structured by -->\n<!-- \"line\" we need to implement an abstract variable with a -->\n<!-- separator string.  Since HTML (and EPUB, etc) are       -->\n<!-- zoomable and reflowable, we just insert spaces and      -->\n<!-- leave actual line-breaking to the laTeX conversion.     -->\n<xsl:variable name=\"title-separator\" select=\"' '\"/>\n\n<!-- This template manufactures HTML \"headings\", the \"hN\" elements.   -->\n<!-- We do not style based on these elements, but a screen-reader     -->\n<!-- or offline (no CSS) environment will use these profitably.       -->\n<!-- So it is important for the elements to be in a logical           -->\n<!-- progression corresponding to \"section\" and \"article\" nodes       -->\n<!-- of the HTML tree.                                                -->\n<!--                                                                  -->\n<!-- We set the \"heading-level\" to \"2\" when chunking is initiated,    -->\n<!-- since we expect the masthead/banner to contain an \"h1\".          -->\n<!-- Whenever a template processes its children, we increment the     -->\n<!-- variable as we pass it down, so a template receives the correct  -->\n<!-- level (and before it ever gets here, since we have consciously   -->\n<!-- chosen *not* to increment here).                                 -->\n<!--                                                                  -->\n<!-- There is no h7, so we need to just settle for h6, I guess.       -->\n<!-- TODO: address h7 when \"article\" get careful headings             -->\n<xsl:template match=\"*\" mode=\"html-heading\">\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- Debugging code, preserve temporarily, just for divisions now -->\n    <!-- Turn on \"CHUNK: and \"INTER:\" debugging in -common templates  -->\n    <!-- <xsl:message> -->\n        <!-- <xsl:text>  </xsl:text><xsl:value-of select=\"$heading-level\"/> -->\n        <!-- <xsl:text> : </xsl:text><xsl:value-of select=\"local-name(.)\"/><xsl:text> : </xsl:text><xsl:apply-templates select=\".\" mode=\"long-name\"/> -->\n    <!-- </xsl:message> -->\n\n    <!-- simple -->\n    <xsl:text>h</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$heading-level &lt; 7\">\n            <xsl:value-of select=\"$heading-level\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- TODO: Report excessive heading here, as informational item           -->\n            <!-- Perhaps include advice: chunk more, author with shallower divisions, -->\n            <!-- use less comprehensive solutions nested at depth                     -->\n            <xsl:text>6</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- These are convenience methods for frequently-used headings -->\n\n<!-- Emit the \"hN\" tag name for a heading element.  Every caller is -->\n<!-- expected to thread a $heading-level parameter through from the -->\n<!-- chunk-template starting point (currently 2, accounting for the -->\n<!-- masthead h1) via \"body\", \"wrapped-content\", and the various    -->\n<!-- heading-* helper templates.                                    -->\n<xsl:template match=\"*\" mode=\"hN\">\n    <xsl:param name=\"heading-level\" />\n    <xsl:variable name=\"actual-heading-level\">\n        <xsl:choose>\n            <xsl:when test=\"$heading-level\">\n                <xsl:value-of select=\"$heading-level\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- Reaching this branch is a BUG: every caller of    -->\n                <!-- mode=\"hN\" should now thread a $heading-level      -->\n                <!-- parameter down through \"body\", \"wrapped-content\", -->\n                <!-- and the various heading-* templates.  If you see  -->\n                <!-- this message, locate the apply-templates chain    -->\n                <!-- that omitted the parameter and add it.            -->\n                <xsl:message>PTX:BUG:     \"hN\" template reached without a $heading-level parameter on element &lt;<xsl:value-of select=\"local-name(.)\"/>&gt; at <xsl:for-each select=\"ancestor::*\"><xsl:value-of select=\"local-name(.)\"/><xsl:text>/</xsl:text></xsl:for-each><xsl:value-of select=\"local-name(.)\"/>; defaulting to h2</xsl:message>\n                <xsl:text>2</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$actual-heading-level > 6\">\n            <xsl:text>h6</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"concat('h',$actual-heading-level)\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- REMARK-LIKE, COMPUTATION-LIKE, DEFINITION-LIKE, SOLUTION-LIKE, objectives (xref-content), outcomes (xref-content), EXAMPLE-LIKE, PROJECT-LIKE, OPENPROBLEM-LIKE, exercise (inline), task (xref-content), fn (xref-content), biblio/note (xref-content)-->\n<!-- E.g. Corollary 4.1 (Leibniz, Newton).  The fundamental theorem of calculus. -->\n<xsl:template match=\"*\" mode=\"heading-full\">\n    <xsl:param name=\"b-make-link\" select=\"false()\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"b-make-link\" select=\"$b-make-link\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"type\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n            </span>\n            <!--  -->\n            <xsl:variable name=\"the-number\">\n                <xsl:apply-templates select=\".\" mode=\"number\" />\n            </xsl:variable>\n            <xsl:if test=\"not($the-number='')\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"codenumber\">\n                    <xsl:value-of select=\"$the-number\"/>\n                </span>\n            </xsl:if>\n            <!--  -->\n            <xsl:if test=\"creator and (&THEOREM-FILTER; or &AXIOM-FILTER;)\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"creator\">\n                    <xsl:text>(</xsl:text>\n                    <xsl:apply-templates select=\".\" mode=\"creator-full\"/>\n                    <xsl:text>)</xsl:text>\n                </span>\n            </xsl:if>\n            <!-- A period now, no matter which of 4 combinations we have above-->\n            <xsl:call-template name=\"period-styled\"/>\n            <!-- A title carries its own punctuation -->\n            <xsl:if test=\"title\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                </span>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"figure-caption\">\n    <xsl:param name=\"b-original\"/>\n\n    <!-- Subnumbered panels of a \"sidebyside\" get a simpler caption/title -->\n    <xsl:variable name=\"fig-placement\">\n        <xsl:apply-templates select=\".\" mode=\"figure-placement\"/>\n    </xsl:variable>\n    <xsl:variable name=\"b-subnumbered\" select=\"$fig-placement = 'subnumber'\"/>\n    <figcaption>\n        <!-- A normal caption/title, or a subnumbered caption/title -->\n        <xsl:choose>\n            <xsl:when test=\"$b-subnumbered\">\n                <span class=\"codenumber\">\n                    <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n                </span>\n            </xsl:when>\n            <xsl:otherwise>\n                <span class=\"type\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n                </span>\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"codenumber\">\n                    <xsl:apply-templates select=\".\" mode=\"number\"/>\n                    <xsl:call-template name=\"period-styled\"/>\n                </span>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:call-template name=\"space-styled\"/>\n        <xsl:choose>\n            <!-- a caption can have a footnote, hence a -->\n            <!-- knowl, hence original or duplicate     -->\n            <xsl:when test=\"self::figure\">\n                <xsl:apply-templates select=\".\" mode=\"caption-full\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:when test=\"self::table or self::list or self::listing\">\n                <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            </xsl:when>\n        </xsl:choose>\n        <!-- Insert permalink directly below the title or caption -->\n        <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n    </figcaption>\n</xsl:template>\n\n<!-- hN generic: Helper for other hN constructs.                                                    -->\n<!-- heading-level: Inherited from caller, determines the N                                         -->\n<!-- heading-title: The actual text, including any numbering                                        -->\n<!-- heading-attr-title: If provided, a title attribute will be created on the hN tag               -->\n<!-- extra-heading-classes: Added to the default \"heading\" class on the hN tag                      -->\n<!-- b-make-link: Whether to turn the heading into a link to its origin. Used in solutions sections -->\n<xsl:template match=\"*\" mode=\"heading-generic\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"heading-title\"/>\n    <xsl:param name=\"heading-attr-title\"/>\n    <xsl:param name=\"extra-heading-classes\"/>\n    <xsl:param name=\"b-make-link\" select=\"false()\" />\n    <xsl:variable name=\"hN\">\n        <xsl:apply-templates select=\".\" mode=\"hN\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:element name=\"{$hN}\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>heading</xsl:text>\n            <xsl:value-of select=\"$extra-heading-classes\"/>\n        </xsl:attribute>\n        <xsl:if test=\"$heading-attr-title\">\n            <xsl:attribute name=\"title\">\n                <xsl:value-of select=\"$heading-attr-title\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <xsl:choose>\n            <xsl:when test=\"$b-make-link\">\n                <xsl:element name=\"a\">\n                    <xsl:attribute name=\"href\">\n                        <xsl:apply-templates select=\".\" mode=\"url\"/>\n                    </xsl:attribute>\n                    <xsl:attribute name=\"aria-label\">\n                        <xsl:text>Back to </xsl:text>\n                        <xsl:copy-of select=\"$heading-title\"/>\n                    </xsl:attribute>\n                    <xsl:copy-of select=\"$heading-title\"/>\n                </xsl:element>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:copy-of select=\"$heading-title\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:element>\n</xsl:template>\n\n\n<!-- hN, no type name, full number, title (if exists)   -->\n<!-- divisional exercise, principally for solution list -->\n<xsl:template match=\"*\" mode=\"heading-divisional-exercise\">\n    <xsl:param name=\"b-make-link\" select=\"false()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"b-make-link\" select=\"$b-make-link\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"codenumber\">\n                <xsl:apply-templates select=\".\" mode=\"number\" />\n                <xsl:call-template name=\"period-styled\"/>\n            </span>\n            <xsl:if test=\"title\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                </span>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- hN, no type name, serial number, title (if exists) -->\n<!-- divisional exercise, principally when born         -->\n<xsl:template match=\"*\" mode=\"heading-divisional-exercise-serial\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"codenumber\">\n                <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n                <xsl:call-template name=\"period-styled\"/>\n            </span>\n            <xsl:if test=\"title\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                </span>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- hN, type name, serial number, title (if exists) -->\n<!-- exercise (divisional, xref-content)      -->\n<xsl:template match=\"*\" mode=\"heading-divisional-exercise-typed\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"type\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\" />\n            </span>\n            <xsl:call-template name=\"space-styled\"/>\n            <span class=\"codenumber\">\n                <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n                <xsl:call-template name=\"period-styled\"/>\n            </span>\n            <xsl:if test=\"title\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                </span>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- hN, no type name, just simple list number, no title -->\n<!-- task (when born) -->\n<xsl:template match=\"*\" mode=\"heading-list-number\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"codenumber\">\n                <xsl:text>(</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"list-number\" />\n                <xsl:text>)</xsl:text>\n            </span>\n            <xsl:if test=\"title\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                </span>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- hN, type name, no number (even if exists), title (if exists)              -->\n<!-- eg, objectives is one-per-subdivison, max, so no need to display at birth -->\n<!-- NB: rather specific to \"objectives\" and \"outcomes\", careful               -->\n<!-- objectives and outcomes (when born) -->\n<xsl:template match=\"*\" mode=\"heading-full-implicit-number\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"type\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\" />\n                <xsl:if test=\"title\">\n                    <xsl:call-template name=\"dividing-string-styled\">\n                        <xsl:with-param name=\"divider\" select=\"':'\"/>\n                        <xsl:with-param name=\"name\" select=\"'colon'\"/>\n                    </xsl:call-template>\n                </xsl:if>\n            </span>\n            <!-- codenumber is implicit via placement -->\n            <xsl:if test=\"title\">\n                <xsl:call-template name=\"space-styled\"/>\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                </span>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Not normally titled, but knowl content gives some indication -->\n<!-- NB: no punctuation, intended only for xref knowl content     -->\n<!-- blockquote, exercisegroup, defined term -->\n<xsl:template match=\"*\" mode=\"heading-type\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <span class=\"type\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\" />\n            </span>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A title or the type, with a period   -->\n<!-- PROOF-LIKE. interactive/instructions -->\n<xsl:template match=\"&PROOF-LIKE;|interactive/instructions\" mode=\"heading-no-number\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <xsl:choose>\n                <xsl:when test=\"title\">\n                    <!-- comes with punctuation -->\n                    <span class=\"title\">\n                        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                    </span>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- supply a period -->\n                    <span class=\"type\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\" />\n                        <xsl:call-template name=\"period-styled\"/>\n                    </span>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:if test=\"@ref\">\n                <xsl:text>&#xa0;(</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"proof-xref-theorem\"/>\n                <xsl:text>)</xsl:text>\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Title only -->\n<!-- exercisegroup, dl/li             -->\n<!-- PROOF-LIKE, when titled          -->\n<!-- Subsidiary to paragraphs,        -->\n<!-- and divisions of \"exercises\"     -->\n<!-- No title, then nothing happens   -->\n<xsl:template match=\"*\" mode=\"heading-title\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:variable name=\"has-default-title\">\n        <xsl:apply-templates select=\".\" mode=\"has-default-title\"/>\n    </xsl:variable>\n    <xsl:if test=\"title/*|title/text() or $has-default-title = 'true'\">\n        <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            <xsl:with-param name=\"heading-title\">\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                </span>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- Title only, paragraphs         -->\n<!-- No title, then nothing happens -->\n<!-- TODO: titles will be mandatory sometime -->\n<xsl:template match=\"*\" mode=\"heading-title-paragraphs\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:if test=\"title/*|title/text()\">\n        <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            <xsl:with-param name=\"heading-title\">\n                <span class=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                </span>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- A type, with maybe a serial number to disambiguate -->\n<!-- No hN, optional title                              -->\n<!-- SOLUTION-LIKE (xref-text), biblio/note (xref-text),-->\n<!-- interactive/instructions (xref-text)               -->\n<xsl:template match=\"*\" mode=\"heading-simple\">\n    <!-- the name of the object, its \"type\" -->\n    <!-- The <xsl:text> </xsl:text> to produce a space is -->\n    <!-- essential for EPUB. Calling space-styled creates -->\n    <!-- a line break in EPUB/Kindle.                     -->\n    <span class=\"type\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    </span>\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"non-singleton-number\" />\n    </xsl:variable>\n    <!-- An empty value means element is a singleton -->\n    <!-- else the serial number comes through        -->\n    <xsl:if test=\"not($the-number = '')\">\n        <xsl:call-template name=\"space-styled\"/>\n        <span class=\"codenumber\">\n            <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n        </span>\n    </xsl:if>\n    <!-- Always end, e.g. \"Hint\" or \"Hint 4\", with a period -->\n    <xsl:call-template name=\"period-styled\"/>\n    <xsl:if test=\"title\">\n        <xsl:call-template name=\"space-styled\"/>\n        <span class=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        </span>\n    </xsl:if>\n</xsl:template>\n\n<!-- The next template, \"heading-non-singleton-number\", is basically    -->\n<!-- \"heading-no-number\" with an (optional) non-singleton number,       -->\n<!-- much like in \"heading-simple\".  If/Once PROOF-LIKE gets a          -->\n<!-- non-singleton number then maybe \"heading-no-number\" can come here. -->\n\n<!-- A title or the type, with a period, and an optional number -->\n<!-- &SOLUTION-LIKE;, when unknowled, is the only known case    -->\n<xsl:template match=\"*\" mode=\"heading-non-singleton-number\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <xsl:choose>\n                <xsl:when test=\"title\">\n                    <!-- comes with punctuation -->\n                    <span class=\"title\">\n                        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                    </span>\n                </xsl:when>\n                <xsl:otherwise>\n                    <span class=\"type\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\" />\n                    </span>\n                    <xsl:variable name=\"the-number\">\n                        <xsl:apply-templates select=\".\" mode=\"non-singleton-number\" />\n                    </xsl:variable>\n                    <!-- An empty value means element is a singleton -->\n                    <!-- else the serial number comes through        -->\n                    <xsl:if test=\"not($the-number = '')\">\n                        <xsl:call-template name=\"space-styled\"/>\n                        <span class=\"codenumber\">\n                            <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n                        </span>\n                    </xsl:if>\n                    <!-- supply a period -->\n                    <xsl:call-template name=\"period-styled\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A case in a PROOF-LIKE, eg \"(=>) Necessity.\" -->\n\n<!-- First we need to set up arrow symbols for this output target. -->\n<xsl:template name=\"double-right-arrow-symbol\">\n    <!-- 'RIGHTWARDS DOUBLE ARROW' (U+21D2) -->\n    <xsl:comment>Style arrows in CSS?</xsl:comment>\n    <xsl:text>&#x21d2;</xsl:text>\n</xsl:template>\n<xsl:template name=\"double-left-arrow-symbol\">\n    <!-- 'LEFTWARDS DOUBLE ARROW' (U+21D0) -->\n    <xsl:comment>Style arrows in CSS?</xsl:comment>\n    <xsl:text>&#x21d0;</xsl:text>\n</xsl:template>\n<!-- Also need a \"delimiter space\" for when \"direction\" is \"cycle\". -->\n<xsl:template name=\"case-cycle-delimiter-space\">\n    <!-- 'HAIR SPACE'  (U+200A)                -->\n    <!-- 'WORD JOINER' (U+2060)                -->\n    <!-- Prevents line break after whitespace. -->\n    <!-- May not work in Firefox.              -->\n    <xsl:text>&#x200a;&#x2060;</xsl:text>\n</xsl:template>\n\n<!-- case -->\n<xsl:template match=\"*\" mode=\"heading-case\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <!-- optional direction, given by attribute -->\n            <xsl:apply-templates select=\".\" mode=\"case-direction\" />\n            <!-- If there is a title, the following will produce it. If -->\n            <!-- no title, and we don't have a direction already, the   -->\n            <!-- following will produce a default title, eg \"Case.\"     -->\n            <xsl:if test=\"boolean(title) or not(@direction)\">\n                <xsl:apply-templates select=\".\" mode=\"title-full\" />\n            </xsl:if>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading Utilities -->\n\n<!-- These named templates create a dividing character  -->\n<!-- with enough HTML markup to allow for hiding        -->\n<!-- them if some other part of a heading is hidden.    -->\n<!-- space/period versions are convience wrappers for   -->\n<!-- commonly used characters.                          -->\n\n<xsl:template name=\"space-styled\">\n    <xsl:call-template name=\"dividing-string-styled\"/>\n</xsl:template>\n\n<xsl:template name=\"period-styled\">\n    <xsl:call-template name=\"dividing-string-styled\">\n        <xsl:with-param name=\"divider\" select=\"'.'\"/>\n        <xsl:with-param name=\"name\" select=\"'period'\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"dividing-string-styled\">\n    <xsl:param name=\"divider\" select=\"' '\"/>\n    <xsl:param name=\"name\" select=\"'space'\"/>\n    <span class=\"{$name} heading-divison-mark heading-divison-mark__{$name}\">\n        <xsl:value-of select=\"$divider\"/>\n    </span>\n</xsl:template>\n\n\n<!-- ######################## -->\n<!-- Block Production, Knowls -->\n<!-- ######################## -->\n\n<!-- Generically, a \"block\" is a child of a \"division\"; see the schema for  -->\n<!-- the precise rules.  Blocks also have \"significant components\": for     -->\n<!-- example, a \"solution\" is a significant component of an \"example\".  A   -->\n<!-- \"p\" can be a block in its own right, can be a significant component of -->\n<!-- a larger block, or can be neither.                                     -->\n\n<!-- A block (or significant component) is rendered into HTML in one of     -->\n<!-- three modes:                                                           -->\n\n<!-- (a) Visible and original.  Drawn directly on a main page, with full    -->\n<!-- identifying information (HTML @id, etc.).                              -->\n\n<!-- (b) Hidden and original.  Drawn on a main page as an HTML \"details\"    -->\n<!-- element, with the heading carried by a clickable \"summary\" and the     -->\n<!-- content initially collapsed.  We call this a \"born-hidden knowl\";      -->\n<!-- historically it was called an \"embedded knowl\" because the content     -->\n<!-- lives on the page (in contrast to the external file behind a           -->\n<!-- cross-reference knowl).  Whether a block is born hidden may be         -->\n<!-- automatic (\"hint\" is always hidden), publisher-elective (\"theorem\",    -->\n<!-- \"remark\", \"definition\"), or forbidden (\"blockquote\" is never hidden);  -->\n<!-- the modal \"is-hidden\" template decides.                                -->\n\n<!-- (c) Visible and duplicate.  Drawn into a separate external file, as    -->\n<!-- the content of a cross-reference knowl.  All identifying information   -->\n<!-- is stripped, because the file may be opened many times in many pages   -->\n<!-- and any HTML @id must remain unique within the page it is shown on.    -->\n\n<!-- Every block element appears in the final output at most once as an     -->\n<!-- \"original\" (with identifying information) and at most once as a        -->\n<!-- \"duplicate\" (without).  Duplicates should re-use other duplicates as   -->\n<!-- much as possible.                                                      -->\n\n<!-- The generic (non-modal) dispatch template below matches any element    -->\n<!-- that is a block or a significant component.  Each incoming element     -->\n<!-- falls into one of three situations:                                    -->\n\n<!-- Original, born visible.  The element is rendered as part of a main     -->\n<!-- page with full identification.  The parameter \"b-original\" defaults to -->\n<!-- true.  Children that are themselves blocks recurse through this same   -->\n<!-- dispatch and are rendered as visible or born-hidden originals          -->\n<!-- according to their own \"is-hidden\".                                    -->\n\n<!-- Original, born hidden.  The element is wrapped in an HTML \"details\"    -->\n<!-- element; the @id is placed on the visible \"summary\" (so the element    -->\n<!-- remains a cross-reference target) and the body is placed inside the    -->\n<!-- \"details\".  The \"b-original\" parameter remains true throughout the     -->\n<!-- subtree, so descendant blocks may themselves be original (visible or   -->\n<!-- hidden) as appropriate.                                                -->\n\n<!-- Duplicate (cross-reference knowl).  The set of cross-reference targets -->\n<!-- is collected by the \"make-xref-knowls\" template, which walks the       -->\n<!-- document, gathers every element actually pointed at by an \"xref\", and  -->\n<!-- hands each one to \"manufacture-knowl\".  That template writes one       -->\n<!-- external HTML file per target, whose body comes from a single call to  -->\n<!-- the modal \"body\" template with block-type='xref' and b-original=false. -->\n<!-- Both parameters then flow down through the subtree: every descendant   -->\n<!-- receives b-original=false (so no @id is ever emitted inside the file), -->\n<!-- while block-type reverts to 'visible' or 'hidden' at each block        -->\n<!-- boundary according to that descendant's own \"is-hidden\".               -->\n\n<!-- The cross-reference knowl is also given a richer top-level heading     -->\n<!-- than a born element (see \"heading-xref-knowl\"), so the reader can      -->\n<!-- identify what they have opened.  As a special case, an \"xref\" to an    -->\n<!-- \"mrow\" generates a knowl whose body is the containing \"md\", not just   -->\n<!-- the row.                                                               -->\n\n<!-- The \"b-original\" boolean is threaded down explicitly through every     -->\n<!-- body, wrapped-content, and container template (e.g. \"sidebyside\").     -->\n<!-- XSLT 1.0 has no tunnel parameter, so each forwarding must be written   -->\n<!-- by hand and a missing one is a real source of bugs.  The \"block-type\"  -->\n<!-- parameter (values 'visible', 'hidden', 'xref') is threaded the same    -->\n<!-- way, and is also forwarded down to Sage cells so they can configure    -->\n<!-- themselves correctly when they live inside a knowl.                    -->\n\n<!-- The per-element templates that customize the production of a block     -->\n<!-- are:                                                                   -->\n\n<!-- (1) \"is-hidden\": returns the string 'true' or 'false'.  Decides        -->\n<!-- whether the block is born hidden.  Often a fixed value; sometimes tied -->\n<!-- to a publisher option.                                                 -->\n\n<!-- (2) \"body-element\", \"body-css-class\": the outermost HTML element       -->\n<!-- wrapping the block, and its CSS classes.  The body-element must be a   -->\n<!-- block-level HTML element, because it is the outer container of knowl   -->\n<!-- content and the knowl-open Javascript expects exactly one enclosing    -->\n<!-- element.                                                               -->\n\n<!-- (3) \"heading-birth\": the heading used both when the block is drawn     -->\n<!-- visibly on a page and as the clickable text of a born-hidden knowl.    -->\n\n<!-- (4) \"heading-xref-knowl\": the heading used at the top of a             -->\n<!-- cross-reference knowl.  Sometimes richer than \"heading-birth\"; for     -->\n<!-- example, a cross-reference to a list item benefits from naming the     -->\n<!-- enclosing list and the item's number.                                  -->\n\n<!-- (5) \"body\": the generic body template, defined much later in this      -->\n<!-- file.  It emits the body-element wrapper, an @id when appropriate      -->\n<!-- (visible original; not on a born-hidden wrapper, since the @id is on   -->\n<!-- the summary instead; never in a duplicate), a heading-birth (visible   -->\n<!-- case) or heading-xref-knowl (xref case), and then the inner content    -->\n<!-- via \"wrapped-content\".                                                 -->\n\n<!-- (6) \"wrapped-content\": the inner content of the block.  Most blocks    -->\n<!-- simply apply-templates over their children; some restrict the          -->\n<!-- selection in order to avoid pulling in elements such as \"prelude\" or   -->\n<!-- \"postlude\", which the body template instead places outside the block.  -->\n\n<xsl:template match=\"&REMARK-LIKE;|&COMPUTATION-LIKE;|&DEFINITION-LIKE;|&ASIDE-LIKE;|poem|&FIGURE-LIKE;|assemblage|blockquote|paragraphs|&GOAL-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|subexercises|exercisegroup|exercise|&PROJECT-LIKE;|task|&SOLUTION-LIKE;|&DISCUSSION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&PROOF-LIKE;|case|contributor|biblio|biblio/note|interactive/instructions|gi|p|li|md[mrow]|fragment\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:variable name=\"hidden\">\n        <xsl:apply-templates select=\".\" mode=\"is-hidden\" />\n    </xsl:variable>\n    <xsl:choose>\n        <!-- born-hidden case -->\n        <xsl:when test=\"$hidden = 'true'\">\n            <xsl:apply-templates select=\".\" mode=\"born-hidden\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- born-visible case -->\n        <xsl:otherwise>\n            <!-- pass-thru of b-original mandatory -->\n            <xsl:apply-templates select=\".\" mode=\"born-visible\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"born-visible\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"body\">\n        <xsl:with-param name=\"block-type\" select=\"'visible'\" />\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"born-hidden\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <details>\n        <!-- put an HTML id as a target of cross-references, etc, -->\n        <!-- but only when this is original content.  In other    -->\n        <!-- words, not when a consituent of an xref knowl        -->\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <!-- put relevant class names on \"details\" to help with styling -->\n        <xsl:attribute name=\"class\">\n            <xsl:apply-templates select=\".\" mode=\"body-css-class\"/>\n            <xsl:text> born-hidden-knowl</xsl:text>\n        </xsl:attribute>\n        <!-- the clickable that is visible on the page -->\n        <summary class=\"knowl__link\">\n           <xsl:apply-templates select=\".\" mode=\"heading-birth\">\n               <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n           </xsl:apply-templates>\n        </summary>\n        <!-- the content of the knowl, to be revealed later        -->\n        <!-- NB: the Javascript controlling the animation of the   -->\n        <!-- open/close of a knowl, presumes it begins with an     -->\n        <!-- element enclosing the content.  This is guaranteed by -->\n        <!-- the \"body\" template via the \"body-element\" template.  -->\n        <xsl:apply-templates select=\".\" mode=\"body\">\n            <xsl:with-param name=\"block-type\" select=\"'hidden'\" />\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </details>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Footnotes -->\n<!-- ######### -->\n\n<!-- Currently implemented as a details html element with no guardrails   -->\n<!-- on nested content. Other footnotes, block content, etc... will all   -->\n<!-- be rendered, but perhaps not well. Caveat emptor.                    -->\n<xsl:template match=\"fn\">\n    <details class=\"ptx-footnote\" aria-live=\"polite\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <!-- A superscript number, as the clickable content -->\n        <summary class=\"ptx-footnote__number\">\n            <xsl:attribute name=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"tooltip-text\" />\n            </xsl:attribute>\n            <xsl:apply-templates select=\".\" mode=\"heading-birth\"/>\n        </summary>\n        <!-- the content of the knowl, to be revealed later        -->\n        <!-- NB: the Javascript controlling the animation of the   -->\n        <!-- open/close of a knowl, presumes it begins with an     -->\n        <!-- element enclosing the content.  This is guaranteed by -->\n        <!-- the \"body\" template via the \"body-element\" template.  -->\n        <xsl:apply-templates select=\".\" mode=\"body\"/>\n    </details>\n    <!-- xref-knowl content is manufactured elsewhere in a brute-force   -->\n    <!-- fashion.  This would be a better place to ensure that every     -->\n    <!--  \"fn\" had its content produced in the right way no matter what. -->\n</xsl:template>\n\n<!-- ##################### -->\n<!-- Block Implementations -->\n<!-- ##################### -->\n\n<!-- We devise the more straightforward blocks first, -->\n<!-- saving the exceptions for subsequent exposition  -->\n\n<!-- REMARK-LIKE -->\n<!-- A simple block with full titles and generic contents -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-remark = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> remark-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type               -->\n<!-- Simply process contents, could restict here -->\n<xsl:template match=\"&REMARK-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- COMPUTATION-LIKE -->\n<!-- A simple block with full titles, but more substantial contents -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-remark = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> computation-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type               -->\n<!-- Simply process contents, could restict here -->\n<xsl:template match=\"&COMPUTATION-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- OPENPROBLEM-LIKE -->\n<!-- A simple block with full titles, but more substantial contents -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"false()\"/>\n    <!-- <xsl:value-of select=\"$knowl-remark = 'yes'\" /> -->\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> openproblem-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type               -->\n<!-- Simply process contents, could restict here -->\n\n<!-- NB: we explicitly ignore \"prelude\" and      -->\n<!-- \"postlude\" by being very careful about what -->\n<!-- we process.  A more general template will   -->\n<!-- pick them up *only* when it is original     -->\n<!-- content, and place outside the block.       -->\n\n<xsl:template match=\"&OPENPROBLEM-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:choose>\n        <!-- structured by \"task\" so let templates for tasks work -->\n        <!-- down to terminal task with SOLUTION-LIKE appendages  -->\n        <xsl:when test=\"task\">\n            <xsl:apply-templates select=\"introduction|task|conclusion\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- structured with \"statement\" and DISCUSSION-LIKE  -->\n        <!-- (We don't entertain bare content for a statement -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"statement|&DISCUSSION-LIKE;\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- DEFINITION-LIKE -->\n<!-- A simple block with full titles and generic contents -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-definition = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> definition-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type               -->\n<!-- Simply process contents, could restict here -->\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- ASIDE-LIKE -->\n<!-- A simple block with a title (no number) and generic contents -->\n\n<!-- Rendered as a born hidden knowl -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"is-hidden\">\n    <xsl:text>true</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"body-element\">\n    <xsl:text>aside</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> aside-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full-implicit-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full-implicit-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Potentially knowled, may have statement      -->\n<!-- with Sage, so pass block type                -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- Coordinate with schema, since we enforce it here -->\n    <xsl:apply-templates select=\"p|blockquote|pre|image|video|program|console|tabular\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Poem -->\n<!-- Titled, not numbered, but with an author's name. -->\n<!-- Knowled as a cross-reference target, but never born  -->\n<!-- hidden (for now particular reason).  A complicated  -->\n<!-- implementation, which should rely more on CSS. -->\n\n<!-- Never born-hidden, other devices partially hide -->\n<xsl:template match=\"poem\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"poem\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"poem\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"poem\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"poem\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"poem\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"stanza\" >\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n    <!-- author comes early in schema, but is rendered below -->\n    <xsl:apply-templates select=\"author\" >\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Structured by Lines -->\n<!-- ################### -->\n\n<!-- The HTML-specific line separator for use by   -->\n<!-- the abstract template for a \"line\" elent used -->\n<!-- to (optionally) structure certain elements.   -->\n\n<xsl:template name=\"line-separator\">\n    <br/>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Poetry -->\n<!-- ###### -->\n\n<!-- TODO: Address GitHub issues regarding poetry output:   -->\n<!-- https://github.com/BooksHTML/mathbook-assets/issues/65 -->\n\n<xsl:template match=\"poem/author\">\n    <div>\n        <xsl:attribute name=\"class\">\n            <xsl:text>author</xsl:text>\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"poem-halign\"/>\n        </xsl:attribute>\n        <xsl:apply-templates/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"stanza\">\n    <div class=\"stanza\">\n        <xsl:apply-templates select=\".\" mode=\"heading-title\"/>\n        <xsl:apply-templates select=\"line\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"stanza/line\">\n    <xsl:variable name=\"alignment\">\n        <xsl:apply-templates select=\".\" mode=\"poem-halign\"/>\n    </xsl:variable>\n    <xsl:variable name=\"indentation\">\n        <xsl:apply-templates select=\".\" mode=\"poem-indent\"/>\n    </xsl:variable>\n    <div>\n        <xsl:attribute name=\"class\">\n            <xsl:text>line</xsl:text>\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"poem-halign\"/>\n        </xsl:attribute>\n        <!-- Left Alignment: Indent from Left -->\n        <xsl:if test=\"$alignment='left'\">\n            <xsl:call-template name=\"poem-line-indenting\">\n                <xsl:with-param name=\"count\" select=\"$indentation\"/>\n            </xsl:call-template>\n        </xsl:if>\n        <!-- Center Alignment: Ignore Indentation -->\n        <xsl:apply-templates/>\n        <!-- Right Alignment: Indent from Right -->\n        <xsl:if test=\"$alignment='right'\">\n            <xsl:call-template name=\"poem-line-indenting\">\n                <xsl:with-param name=\"count\" select=\"$indentation\"/>\n            </xsl:call-template>\n        </xsl:if>\n    </div>\n</xsl:template>\n\n<xsl:template name=\"poem-line-indenting\">\n    <xsl:param name=\"count\"/>\n    <xsl:choose>\n        <xsl:when test=\"(0 >= $count)\"/>\n        <xsl:otherwise>\n            <span class=\"tab\"/>\n            <xsl:call-template name=\"poem-line-indenting\">\n                <xsl:with-param name=\"count\" select=\"$count - 1\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- FIGURE-LIKE -->\n<!-- Captioned, titled (heading) -->\n\n<!-- Born-hidden behavior is configurable -->\n<!-- On a per-element basis               -->\n<xsl:template match=\"figure\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-figure = 'yes'\" />\n</xsl:template>\n\n<xsl:template match=\"table\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-table = 'yes'\" />\n</xsl:template>\n\n<xsl:template match=\"listing\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-listing = 'yes'\" />\n</xsl:template>\n\n<xsl:template match=\"list\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-list = 'yes'\" />\n</xsl:template>\n\n<!-- The optionally born-hidden items can be panels of -->\n<!-- a sidebyside, where we should not be hiding them. -->\n<!-- A figure wrapping the sidebyside could be knowled -->\n<!-- if they need to be hidden.                        -->\n<xsl:template match=\"sidebyside/figure|sidebyside/table|sidebyside/listing|sidebyside/list\" mode=\"is-hidden\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<!-- Natural HTML element      -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"body-element\">\n    <xsl:text>figure</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"figure|listing\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> figure-like</xsl:text>\n</xsl:template>\n<!-- a table of data will use this class when -->\n<!-- the title is placed above the tabular    -->\n<xsl:template match=\"table|list\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> table-like</xsl:text>\n</xsl:template>\n\n<!-- TODO - sort out title/caption -->\n<!-- Use title for xref-link text  -->\n\n<!-- When born use this heading -->\n<!-- no heading, since captioned -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"heading-birth\" />\n\n<!-- Heading for interior of xref-knowl content -->\n<!-- no heading, since captioned -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"heading-xref-knowl\" />\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Handle \"caption\" exceptionally               -->\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- Subnumbered caption/title go below, to help with alignment -->\n    <xsl:variable name=\"fig-placement\">\n        <xsl:apply-templates select=\".\" mode=\"figure-placement\"/>\n    </xsl:variable>\n    <xsl:variable name=\"b-place-title-below\" select=\"($fig-placement = 'subnumber') or ($fig-placement = 'panel')\"/>\n    <xsl:choose>\n        <!-- caption at the bottom, always -->\n        <xsl:when test=\"self::figure\">\n            <xsl:apply-templates select=\"*\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n            <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- caption at the top as per CMoS if not subnumbered -->\n        <xsl:when test=\"self::listing\">\n            <xsl:if test=\"not($b-place-title-below)\">\n                <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <div class=\"listing__contents\">\n                <xsl:apply-templates select=\"program|console\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </div>\n            <xsl:if test=\"$b-place-title-below\">\n                <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:when>\n        <!-- table only contains a tabular; if not subnumbered  -->\n        <!-- then title is displayed before data/tabular        -->\n        <xsl:when test=\"self::table\">\n            <xsl:if test=\"not($b-place-title-below)\">\n                <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <xsl:apply-templates select=\"tabular\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n            <xsl:if test=\"$b-place-title-below\">\n                <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:when>\n        <!-- \"title\" at the top, subnumber at the bottom -->\n        <xsl:when test=\"self::list\">\n            <xsl:if test=\"not($b-place-title-below)\">\n                <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <div class=\"named-list-content\">\n                <xsl:apply-templates select=\"introduction|ol|ul|dl|conclusion\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </div>\n            <xsl:if test=\"$b-place-title-below\">\n                <xsl:apply-templates select=\".\" mode=\"figure-caption\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Assemblage -->\n<!-- A simple block with an optional title and limited contents -->\n\n<!-- Never born-hidden, simply by design -->\n<xsl:template match=\"assemblage\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"assemblage\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"assemblage\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> assemblage-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"assemblage\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"assemblage\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template    -->\n<!-- Pass along b-original flag                    -->\n<!-- Simply process contents, restrictions match   -->\n<!-- schema, except schema says no captioned items -->\n<!-- in the side-by-side                           -->\n<xsl:template match=\"assemblage\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <!-- Coordinate with schema, since we enforce it here -->\n    <xsl:apply-templates select=\"p|blockquote|pre|image|video|program|console|tabular|sidebyside|sbsgroup\" >\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Block Quote -->\n<!-- A very simple block with just an enclosing div -->\n\n<!-- Never born-hidden, does not make sense -->\n<xsl:template match=\"blockquote\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element     -->\n<!-- Natural HTML element, usually -->\n<xsl:template match=\"blockquote\" mode=\"body-element\">\n    <xsl:text>blockquote</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"blockquote\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this heading         -->\n<!-- Never hidden, never gets a heading -->\n<xsl:template match=\"blockquote\" mode=\"heading-birth\" />\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"blockquote\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-type\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"blockquote\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Paragraphs -->\n<!-- Technically a division, but small enough to xref knowl -->\n\n<!-- Never born-hidden, does not make sense -->\n<xsl:template match=\"paragraphs\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"paragraphs\" mode=\"body-element\">\n    <xsl:text>section</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"paragraphs\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"paragraphs\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title-paragraphs\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"paragraphs\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title-paragraphs\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"paragraphs\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- GOAL-LIKE -->\n<!-- Special, and restricted, blocks -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"objectives\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-objectives = 'yes'\" />\n</xsl:template>\n<xsl:template match=\"outcomes\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-outcomes = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> goal-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full-implicit-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template        -->\n<!-- Pass along b-original flag                        -->\n<!-- Simply process contents, with partial restriction -->\n<xsl:template match=\"&GOAL-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"introduction|ol|ul|dl|conclusion\" >\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- The next few implementations have hints, answers, -->\n<!-- or solutions hanging off the ends.  Examples may  -->\n<!-- elect to have these.  Exercises may have them and -->\n<!-- they are more configurable.  Projects may have    -->\n<!-- them prima facie, or associated with tasks.  In   -->\n<!-- all cases the hints, answers, and solutions are   -->\n<!-- presented as knowls.                              -->\n\n<!-- EXAMPLE-LIKE -->\n<!-- A simple block, but with possible appendages -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-example = 'yes'\" />\n    <!-- Preserving a way to not knowl anything in a worksheet -->\n    <!--\n    <xsl:choose>\n        <xsl:when test=\"ancestor::worksheet\">\n            <xsl:value-of select=\"false()\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$knowl-example = 'yes'\" />\n        </xsl:otherwise>\n    </xsl:choose>\n    -->\n </xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> example-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type               -->\n<!-- Process according to structure              -->\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:choose>\n        <!-- structured by \"task\" so let templates for tasks work -->\n        <!-- down to terminal task with SOLUTION-LIKE appendages  -->\n        <xsl:when test=\"task\">\n            <xsl:apply-templates select=\"introduction|task|conclusion\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- structured with \"statement\" and SOLUTION-LIKE, -->\n        <!-- or just bare content for a statement           -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\"/>\n                <xsl:with-param name=\"b-has-hint\"      select=\"true()\"/>\n                <xsl:with-param name=\"b-has-answer\"    select=\"true()\"/>\n                <xsl:with-param name=\"b-has-solution\"  select=\"true()\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Subexercises -->\n<!-- A pseudo-division, implemented more like an \"exercisegroup\" -->\n\n<!-- Never born-hidden, does not make sense -->\n<xsl:template match=\"subexercises\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<!-- Natural HTML element      -->\n<xsl:template match=\"subexercises\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"subexercises\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this heading         -->\n<!-- Never hidden, never gets a heading -->\n<xsl:template match=\"subexercises\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<!-- Not knowlizable, more like a division      -->\n<xsl:template match=\"subexercises\" mode=\"heading-xref-knowl\"/>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<!-- Mirror changes here into \"solutions\" below   -->\n<xsl:template match=\"subexercises\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"introduction\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"exercise|exercisegroup\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"conclusion\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- For solutions divisions, we mimic and reuse some of the above -->\n<xsl:template match=\"subexercises\" mode=\"solutions\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <!-- we check for content, subject to selection of switches          -->\n    <!-- if there is no content, then we will not output anything at all -->\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <article class=\"subexercises\">\n            <xsl:apply-templates select=\".\" mode=\"heading-title\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"introduction\">\n                    <xsl:with-param name=\"b-original\" select=\"false()\" />\n                </xsl:apply-templates>\n            </xsl:if>\n            <xsl:apply-templates select=\"exercise|exercisegroup\" mode=\"solutions\">\n                <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n                <xsl:with-param name=\"heading-level\"   select=\"$heading-level + 1\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n            </xsl:apply-templates>\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"conclusion\">\n                    <xsl:with-param name=\"b-original\" select=\"false()\" />\n                </xsl:apply-templates>\n            </xsl:if>\n        </article>\n    </xsl:if>\n</xsl:template>\n\n<!-- Exercise Group -->\n<!-- A very simple block with just an enclosing div -->\n\n<!-- Never born-hidden, does not make sense -->\n<xsl:template match=\"exercisegroup\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<!-- Natural HTML element      -->\n<xsl:template match=\"exercisegroup\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"exercisegroup\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this heading         -->\n<!-- Never hidden, never gets a heading -->\n<xsl:template match=\"exercisegroup\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"exercisegroup\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<!-- Mirror changes here into \"solutions\" below   -->\n<xsl:template match=\"exercisegroup\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"introduction\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n    <div>\n        <xsl:attribute name=\"class\">\n            <xsl:text>exercisegroup-exercises</xsl:text>\n            <xsl:variable name=\"cols-class-name\">\n                <!-- HTML-specific, but in pretext-common.xsl -->\n                <xsl:apply-templates select=\".\" mode=\"number-cols-CSS-class\"/>\n            </xsl:variable>\n            <xsl:if test=\"not($cols-class-name = '')\">\n                <xsl:text> </xsl:text>\n                <xsl:value-of select=\"$cols-class-name\"/>\n            </xsl:if>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"exercise\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </div>\n    <xsl:apply-templates select=\"conclusion\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- For solutions divisions, we mimic and reuse some of the above -->\n<xsl:template match=\"exercisegroup\" mode=\"solutions\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <!-- we check for content, subject to selection of switches          -->\n    <!-- if there is no content, then we will not output anything at all -->\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <div class=\"exercisegroup\">\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"introduction\">\n                    <xsl:with-param name=\"b-original\" select=\"false()\" />\n                </xsl:apply-templates>\n            </xsl:if>\n            <div>\n                <xsl:attribute name=\"class\">\n                    <xsl:text>exercisegroup-exercises</xsl:text>\n                    <xsl:variable name=\"cols-class-name\">\n                        <!-- HTML-specific, but in pretext-common.xsl -->\n                        <xsl:apply-templates select=\".\" mode=\"number-cols-CSS-class\"/>\n                    </xsl:variable>\n                    <xsl:if test=\"not($cols-class-name = '')\">\n                        <xsl:text> </xsl:text>\n                        <xsl:value-of select=\"$cols-class-name\"/>\n                    </xsl:if>\n                </xsl:attribute>\n                <xsl:apply-templates select=\"exercise\" mode=\"solutions\">\n                    <xsl:with-param name=\"admit\"           select=\"$admit\"/>\n                    <xsl:with-param name=\"heading-level\"   select=\"$heading-level\"/>\n                    <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                    <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                    <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                    <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                </xsl:apply-templates>\n            </div>\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"conclusion\">\n                    <xsl:with-param name=\"b-original\" select=\"false()\" />\n                </xsl:apply-templates>\n            </xsl:if>\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- Exercise -->\n<!-- Inline and divisional, with appendages -->\n\n<!-- Born-hidden behavior is configurable   -->\n<!-- Note match first on inline first, override if divisional -->\n<xsl:template match=\"exercise\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-exercise-inline = 'yes'\"/>\n</xsl:template>\n<xsl:template match=\"exercises//exercise\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-exercise-divisional = 'yes'\"/>\n</xsl:template>\n<xsl:template match=\"worksheet//exercise\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-exercise-worksheet = 'yes'\"/>\n</xsl:template>\n<xsl:template match=\"reading-questions//exercise\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-exercise-readingquestion = 'yes'\"/>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"exercise\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"exercise\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> exercise-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<!-- Note match first on inline, then divisional -->\n<xsl:template match=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n<xsl:template match=\"exercises//exercise|worksheet//exercise|reading-questions//exercise\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-divisional-exercise-serial\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Used when headings are created in solutions sections, to make them backlinks -->\n<xsl:template match=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"heading-solutions\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"b-make-link\" select=\"true()\"/>\n    </xsl:apply-templates>\n</xsl:template>\n<xsl:template match=\"exercises//exercise|worksheet//exercise|reading-questions//exercise\" mode=\"heading-solutions\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-divisional-exercise\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"b-make-link\" select=\"true()\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content  -->\n<!-- Note match first on inline, then divisional -->\n<xsl:template match=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n<xsl:template match=\"exercises//exercise|worksheet//exercise|reading-questions//exercise\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-divisional-exercise-typed\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- An \"exercise\" or PROJECT-LIKE authored with a \"webwork\" element -->\n<!-- is always interactive, but for straight HTML output, it has one -->\n<!-- look and for hosting on Runestone it has a slightly different   -->\n<!-- look.  This template isolates this distinction for the core, or -->\n<!-- interior, of such an exercise.                                  -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;\" mode=\"webwork-core\">\n    <xsl:param name=\"b-original\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"$b-host-runestone\">\n            <div class=\"ptx-runestone-container\">\n                <div class=\"runestone\" data-component=\"webwork\">\n                    <!-- Note that this id gets a suffix on div.exercise-wrapper, -->\n                    <!-- so Runestone can coordinate the outer exercise and the   -->\n                    <!-- inner webwork                                            -->\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                    </xsl:attribute>\n                    <xsl:apply-templates select=\"introduction|webwork-reps|conclusion\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    </xsl:apply-templates>\n                </div>\n            </div>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"introduction|webwork-reps|conclusion\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type               -->\n<!-- Process according to structure              -->\n<!-- Mirror changes here into \"solutions\" below  -->\n<xsl:template match=\"exercise\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:choose>\n        <!-- webwork case -->\n        <xsl:when test=\"webwork-reps\">\n            <xsl:apply-templates select=\".\" mode=\"webwork-core\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- MyOpenMath case -->\n        <xsl:when test=\"myopenmath\">\n            <xsl:apply-templates select=\"introduction|myopenmath|conclusion\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- STACK case -->\n        <xsl:when test=\"stack\">\n            <xsl:apply-templates select=\"introduction|stack|conclusion\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- structured by \"task\" so let templates for tasks work -->\n        <!-- down to terminal task with SOLUTION-LIKE appendages  -->\n        <xsl:when test=\"task\">\n            <!-- An \"exercise\" structured by task may electively be presented  -->\n            <!-- by a \"tabbed\" interface from Runestone components.            -->\n            <!-- *  Never for a \"worksheet\" - too messy for printing           -->\n            <!-- *  Not hitting PROJECT-LIKE here, see elsewhere               -->\n            <xsl:variable name=\"b-tabbed-tasks\" select=\"\n                (@exercise-customization = 'divisional' and $b-html-tabbed-tasks-divisional) or\n                (@exercise-customization = 'inline' and $b-html-tabbed-tasks-inline) or\n                (@exercise-customization = 'reading' and $b-html-tabbed-tasks-reading)\"/>\n            <xsl:choose>\n                <xsl:when test=\"$b-tabbed-tasks\">\n                    <!-- Use tabbed viewer from Runestone Components -->\n                    <xsl:apply-templates select=\".\"  mode=\"tabbed-tasks\">\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"introduction|task|conclusion\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!--  -->\n        <!-- structured with \"statement\" and SOLUTION-LIKE, -->\n        <!-- or just bare content for a statement           -->\n        <!--  -->\n        <!-- inline                                        -->\n        <!-- only possibility to be knowled, so only time  -->\n        <!-- we pass block-type for Sage cells to react to -->\n        <xsl:when test=\"boolean(&INLINE-EXERCISE-FILTER;)\">\n            <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-inline-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-inline-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-inline-solution\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- divisional -->\n        <xsl:when test=\"ancestor::exercises\">\n            <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-divisional-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-divisional-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-divisional-solution\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- worksheet -->\n        <xsl:when test=\"ancestor::worksheet\">\n            <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-worksheet-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-worksheet-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-worksheet-solution\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- reading -->\n        <xsl:when test=\"ancestor::reading-questions\">\n            <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-reading-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-reading-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-reading-solution\" />\n            </xsl:apply-templates>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Project-LIKE -->\n<!-- A complex block, possibly structured with task -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-project = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> project-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- When used in solutions -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"heading-solutions\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"b-make-link\" select=\"true()\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement    -->\n<!-- with Sage, so pass block type              -->\n<!-- Process according to structure              -->\n<!-- Mirror changes here into \"solutions\" below  -->\n<!-- NB: we explicitly ignore \"prelude\" and      -->\n<!-- \"postlude\" by being very careful about what -->\n<!-- we process.  A more general template will   -->\n<!-- pick them up *only* when it is original     -->\n<!-- content, and place outside the block.       -->\n<xsl:template match=\"&PROJECT-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:choose>\n        <!-- webwork case -->\n        <xsl:when test=\"webwork-reps\">\n            <xsl:apply-templates select=\".\" mode=\"webwork-core\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"task\">\n            <!-- An \"PROJECT-LIKE\" structured by task may electively  -->\n            <!-- be presented by a \"tabbed\" interface from Runestone  -->\n            <!-- components. Note: this test is simpler than for  -->\n            <!-- \"exercise\" since we know we have a PROJECT-LIKE and  -->\n            <!-- do not need to consult @exercise-customization. -->\n            <xsl:choose>\n                <xsl:when test=\"$b-html-tabbed-tasks-project\">\n                    <!-- Use tabbed viewer from Runestone Components -->\n                    <xsl:apply-templates select=\".\"  mode=\"tabbed-tasks\">\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"introduction|task|conclusion\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-project-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-project-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-project-solution\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- For solutions divisions, we mimic and reuse some of the above -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;\" mode=\"solutions\">\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"heading-level\" />\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <!-- we check for content, subject to selection of switches          -->\n    <!-- if there is no content, then we will not output anything at all -->\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <!-- incongruities here are historical, -->\n        <!-- keeping the diff low-impact        -->\n        <!-- newline inserted to encourage formatted output -->\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:element name=\"article\">\n            <xsl:attribute name=\"class\">\n                <xsl:choose>\n                    <xsl:when test=\"self::exercise\">\n                        <xsl:text>exercise-like</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>project-like</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n            <!-- A variety of headings -->\n            <xsl:apply-templates select=\".\" mode=\"heading-solutions\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n\n            <xsl:choose>\n                <!-- structured version -->\n                <xsl:when test=\"task\">\n                    <xsl:if test=\"$b-has-statement\">\n                        <xsl:apply-templates select=\"introduction\">\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                    <xsl:apply-templates select=\"task\" mode=\"solutions\">\n                        <xsl:with-param name=\"b-original\" select=\"false()\" />\n                        <xsl:with-param name=\"heading-level\"   select=\"$heading-level + 1\"/>\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                    <xsl:if test=\"$b-has-statement\">\n                        <xsl:apply-templates select=\"conclusion\">\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                </xsl:when>\n                <xsl:when test=\"webwork-reps/static/task\">\n                    <xsl:if test=\"$b-has-statement\">\n                        <xsl:apply-templates select=\"webwork-reps/static/introduction\">\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                    <xsl:apply-templates select=\"webwork-reps/static/task\" mode=\"solutions\">\n                        <xsl:with-param name=\"b-original\" select=\"false()\" />\n                        <xsl:with-param name=\"heading-level\"   select=\"$heading-level + 1\"/>\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                    <xsl:if test=\"$b-has-statement\">\n                        <xsl:apply-templates select=\"webwork-reps/static/conclusion\">\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                </xsl:when>\n                <!-- webwork with stages -->\n                <xsl:when test=\"webwork-reps/static/stage\">\n                    <xsl:apply-templates select=\"webwork-reps/static/stage\" mode=\"exercise-components\">\n                        <xsl:with-param name=\"b-original\" select=\"false()\" />\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <!-- webwork without tasks or stages -->\n                <xsl:when test=\"webwork-reps/static\">\n                    <xsl:apply-templates select=\"webwork-reps/static\" mode=\"exercise-components\">\n                        <xsl:with-param name=\"b-original\" select=\"false()\" />\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                        <xsl:with-param name=\"b-original\" select=\"false()\" />\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:element>\n    </xsl:if>\n</xsl:template>\n\n<!-- Task -->\n<!-- A division of a PROJECT-LIKE, with appendages -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"task\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-task = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"task\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"task\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> exercise-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"task\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-list-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"task\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Potentially knowled, may have statement      -->\n<!-- with Sage, so pass block type                -->\n<!-- Process according to structure               -->\n<!-- Mirror changes here into \"solutions\" below  -->\n<xsl:template match=\"task\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- There are two types of \"task\".  Those in \"exercise\", PROJECT-LIKE, -->\n    <!-- or EXAMPLE-LIKE, have appendages that are SOLUTION-LIKE, with      -->\n    <!-- variable behavior.  Those in OPENPROBLEM-LIKE have appendages that -->\n    <!-- are DISCUSSION-LIKE with very predictable behavior.  Easier to     -->\n    <!-- switch on being inside OPENPROBLEM-LIKE.                           -->\n    <xsl:variable name=\"openproblem-container\" select=\"ancestor::*[&OPENPROBLEM-FILTER;]\"/>\n\n    <xsl:choose>\n        <!-- structured by \"task\" so let templates for tasks work down to   -->\n        <!-- terminal task with SOLUTION-LIKE or DISCUSSION-LIKE appendages -->\n        <xsl:when test=\"task\">\n            <xsl:apply-templates select=\"introduction|task|conclusion\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- then terminal task, may have DISCUSSION-LIKE to display -->\n        <!-- we do not entertain bare content as a \"statement\" here  -->\n        <xsl:when test=\"$openproblem-container\">\n            <xsl:apply-templates select=\"statement|&DISCUSSION-LIKE;\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- then terminal task, may have solutions to optionally display -->\n        <!--                                                              -->\n        <!-- NB: a \"task\" rediscovers its context in order to decide      -->\n        <!-- if SOLUTION-LIKE appendages are displayed at birth or not.   -->\n        <!-- A refactor could examine attributes placed by the            -->\n        <!-- pre-processor/assembly pass.                                 -->\n        <!--                                                              -->\n        <!-- It is tempting to think the context could be passed down     -->\n        <!-- through parameters, but each level of \"task\" goes through a  -->\n        <!-- default template, a \"body\" template, and a \"wrapped-content\" -->\n        <!-- template, which would require cluttering those with four     -->\n        <!-- *-has-* parameters, which are not relevant most of the time. -->\n        <xsl:otherwise>\n            <!-- We identify the container, in order to classify the    -->\n            <!-- group of switches that will control visibility of      -->\n            <!-- solutions.  Exactly one of these three is a singleton, -->\n            <!-- the other two are empty.                               -->\n            <xsl:variable name=\"exercise-container\" select=\"ancestor::exercise\"/>\n            <xsl:variable name=\"project-container\" select=\"ancestor::*[&PROJECT-FILTER;]\"/>\n            <xsl:variable name=\"example-container\" select=\"ancestor::*[&EXAMPLE-FILTER;]\"/>\n            <!-- Now booleans for exercises or projects, exercises below -->\n            <xsl:variable name=\"project\" select=\"boolean($project-container)\"/>\n            <xsl:variable name=\"example\" select=\"boolean($example-container)\"/>\n            <!-- We classify the four types of exercises further based -->\n            <!-- on location.  Inline is \"everything else\".            -->\n            <xsl:variable name=\"divisional\" select=\"$exercise-container and $exercise-container/ancestor::exercises\"/>\n            <xsl:variable name=\"worksheet\" select=\"$exercise-container and $exercise-container/ancestor::worksheet\"/>\n            <xsl:variable name=\"reading\" select=\"$exercise-container and $exercise-container/ancestor::reading-questions\"/>\n            <xsl:variable name=\"inline\" select=\"$exercise-container and not($divisional or $worksheet or $reading)\"/>\n            <!-- We have six booleans, exactly one is true, thus  -->\n            <!-- classifying a \"task\" by its employment/location. -->\n            <!-- We now form a set of three booleans, appropriate -->\n            <!-- for setting the task finds itself in.  There are -->\n            <!-- five author-supplied switches and an \"example\"   -->\n            <!-- *always* shows its solutions (not an \"exercise). -->\n            <xsl:variable name=\"b-has-hint\"\n                select=\"($inline and $b-has-inline-hint)  or\n                        ($project and $b-has-project-hint)  or\n                        ($divisional and $b-has-divisional-hint) or\n                        ($worksheet and $b-has-worksheet-hint)  or\n                        ($reading and $b-has-reading-hint)  or\n                         $example\"/>\n            <xsl:variable name=\"b-has-answer\"\n                select=\"($inline and $b-has-inline-answer)  or\n                        ($project and $b-has-project-answer)  or\n                        ($divisional and $b-has-divisional-answer) or\n                        ($worksheet and $b-has-worksheet-answer)  or\n                        ($reading and $b-has-reading-answer)  or\n                         $example\"/>\n            <xsl:variable name=\"b-has-solution\"\n                select=\"($inline and $b-has-inline-solution)  or\n                        ($project and $b-has-project-solution)  or\n                        ($divisional and $b-has-divisional-solution) or\n                        ($worksheet and $b-has-worksheet-solution)  or\n                        ($reading and $b-has-reading-solution)  or\n                         $example\"/>\n            <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n   </xsl:choose>\n</xsl:template>\n\n<!-- For solutions divisions, we mimic and reuse some of the above -->\n<xsl:template match=\"task\" mode=\"solutions\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <!-- we check for content, subject to selection of switches          -->\n    <!-- if there is no content, then we will not output anything at all -->\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <article class=\"exercise-like\">\n            <xsl:apply-templates select=\".\" mode=\"duplicate-heading\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-make-link\" select=\"true()\"/>\n            </xsl:apply-templates>\n\n            <xsl:choose>\n                <!-- introduction?, task+, conclusion? -->\n                <xsl:when test=\"task\">\n                    <xsl:if test=\"$b-has-statement\">\n                        <xsl:apply-templates select=\"introduction\">\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                    <xsl:apply-templates select=\"task\" mode=\"solutions\">\n                        <xsl:with-param name=\"heading-level\"   select=\"$heading-level + 1\" />\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                    <xsl:if test=\"$b-has-statement\">\n                        <xsl:apply-templates select=\"conclusion\">\n                            <xsl:with-param name=\"b-original\" select=\"false()\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:if>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\".\"  mode=\"exercise-components\">\n                        <xsl:with-param name=\"b-original\" select=\"false()\" />\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                        <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                        <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                        <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </article>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- SOLUTION-LIKE -->\n<!-- A simple item hanging off others -->\n\n<!-- Always born-hidden, by design -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"is-hidden\">\n    <xsl:choose>\n        <xsl:when test=\"($knowl-example-solution = 'no') and ancestor::*[&EXAMPLE-FILTER;]\">\n            <xsl:text>false</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>true</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> solution-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:choose>\n        <xsl:when test=\"($knowl-example-solution = 'no') and ancestor::*[&EXAMPLE-FILTER;]\">\n            <xsl:apply-templates select=\".\" mode=\"heading-non-singleton-number\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"heading-simple\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Potentially knowled, may have statement      -->\n<!-- with Sage, so pass block type                -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- DISCUSSION-LIKE -->\n<!-- A simple item hanging off others -->\n\n<!-- Always born-hidden, by design -->\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> discussion-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Potentially knowled, may have statement      -->\n<!-- with Sage, so pass block type                -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"exercise|&PROJECT-LIKE;|task|&EXAMPLE-LIKE;|webwork-reps/static|webwork-reps/static/task|webwork-reps/static/stage\" mode=\"exercise-components\">\n    <xsl:param name=\"b-original\"/>\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:choose>\n        <!-- Select -->\n        <!-- Largely a Runestone/database operation referencing -->\n        <!-- existing questions supplied by the manifest,       -->\n        <!-- so we go straight to an HTML version               -->\n        <xsl:when test=\"@exercise-interactive = 'select'\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-to-interactive\"/>\n        </xsl:when>\n        <!-- True/False        -->\n        <!-- Multiple Choice   -->\n        <!-- Parson problems   -->\n        <!-- Matching problems -->\n        <!-- Clickable Area    -->\n        <!-- Fill-In (Basic)   -->\n        <!-- Coding Exercise   -->\n        <!-- Dual Form Exercise-->\n        <!-- Short Answer      -->\n        <!-- The \"runestone-to-interactive\" templates will combine a   -->\n        <!-- \"regular\" PreTeXt statement together with some additional -->\n        <!-- interactive material to make a hybrid \"statement\"         -->\n        <xsl:when test=\"(@exercise-interactive = 'truefalse') or\n                               (@exercise-interactive = 'multiplechoice') or\n                               (@exercise-interactive = 'parson') or\n                               (@exercise-interactive = 'parson-horizontal') or\n                               (@exercise-interactive = 'cardsort') or\n                               (@exercise-interactive = 'matching') or\n                               (@exercise-interactive = 'clickablearea') or\n                               (@exercise-interactive = 'fillin-basic') or\n                               (@exercise-interactive = 'coding') or\n                               (@exercise-interactive = 'dual') or\n                               (@exercise-interactive = 'shortanswer')\"\n                               >\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-to-interactive\"/>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"solutions-div\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-hint\"  select=\"$b-has-hint\"/>\n                <xsl:with-param name=\"b-has-answer\"  select=\"$b-has-answer\"/>\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- Dynamic fillin is broken out separately because the test for -->\n        <!-- correctness as well as feedback is dynamically chosen.       -->\n        <xsl:when test=\"@exercise-interactive = 'fillin'\">\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-to-interactive\"/>\n            </xsl:if>\n            <!-- Include hints. Solution/answer get special handling       -->\n            <xsl:apply-templates select=\".\" mode=\"solutions-div\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-hint\"  select=\"$b-has-hint\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- Finally nothing too exceptional, do the usual drill. Consider -->\n        <!-- structured versus unstructured, non-interactive.              -->\n        <xsl:when test=\"statement\">\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"statement\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"solutions-div\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"b-has-hint\"  select=\"$b-has-hint\"/>\n                <xsl:with-param name=\"b-has-answer\"  select=\"$b-has-answer\"/>\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- TODO: contained \"if\" should just be a new \"when\"? (look around for similar)\" -->\n        <xsl:otherwise>\n            <!-- no explicit \"statement\", so all content is the statement -->\n            <!-- the \"dry-run\" templates should prevent an empty shell  -->\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"*\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n                <!-- no separator, since no trailing components -->\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- \"exercise\", EXAMPLE-LIKE, PROJECT-LIKE, \"task\", and more have a  -->\n<!-- div.solutions full of SOLUTION-LIKE hanging off them.  But we    -->\n<!-- don't want the div if there is nothing to go into it, and        -->\n<!-- EXAMPLE-LIKE is presentational, so we don't have knowls to       -->\n<!-- package, we just lay them out right after the example.           -->\n<!-- N.B. match could be improved, just being more lazy than careful  -->\n<xsl:template match=\"*\" mode=\"solutions-div\">\n    <xsl:param name=\"b-original\"/>\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n    <!-- no \"statement\" here -->\n    <xsl:param name=\"b-has-hint\"/>\n    <xsl:param name=\"b-has-answer\"/>\n    <xsl:param name=\"b-has-solution\"/>\n\n    <!-- nothing to do if there is nothing so show -->\n    <xsl:if test=\"(hint and $b-has-hint) or (answer and $b-has-answer) or (solution and $b-has-solution)\">\n        <!-- collect all the hint, answer, solution in a variable -->\n        <xsl:variable name=\"all-solutions\">\n            <xsl:if test=\"$b-has-hint\">\n                <xsl:apply-templates select=\"hint\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <xsl:if test=\"$b-has-answer\">\n                <xsl:apply-templates select=\"answer\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <xsl:if test=\"$b-has-solution\">\n                <xsl:apply-templates select=\"solution\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n        </xsl:variable>\n        <!-- If this is an EXAMPLE-LIKE and we are unknowling its solutions,   -->\n        <!-- then just show them.  Otherwise, we use a div to layout knowls    -->\n        <!-- like a sentence: horiziontal flow, with wrapping.                 -->\n        <!-- NB: context here could be an EXAMPLE-LIKE or it might be a \"task\" -->\n        <!-- with an EXAMPLE-LIKE ancestor, thus the ancestor-or-self:: axis   -->\n        <xsl:choose>\n            <xsl:when test=\"($knowl-example-solution = 'no') and ancestor-or-self::*[&EXAMPLE-FILTER;]\">\n                <xsl:copy-of select=\"$all-solutions\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <div class=\"solutions\">\n                    <xsl:copy-of select=\"$all-solutions\"/>\n                </div>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- All of the items matching the template two above (except perhaps  -->\n<!-- the WW exercises) can appear in a printout with some room to      -->\n<!-- work a problem given by a @workspace attribute.  (But we are not  -->\n<!-- careful with the match, given the limited reach here.)  The \"div\" -->\n<!-- we drop here is controlled by the Javascript - on a \"normal\" page -->\n<!-- displaying a printout it is ineffective, and on a printable,      -->\n<!-- standalone page it produces space that is visually apparent, but  -->\n<!-- prints invisible.  No @workspace attribute, nothing is added.     -->\n<!-- We rely on a template in -common to error-check the value of      -->\n<!-- the attribute.                                                    -->\n<xsl:template match=\"*\" mode=\"workspace\">\n    <xsl:variable name=\"vertical-space\">\n        <xsl:apply-templates select=\".\" mode=\"sanitize-workspace\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($vertical-space = '')\">\n        <div class=\"workspace\" data-space=\"{$vertical-space}\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- The next few implementions support theorems,       -->\n<!-- which may have knowls containing PROOF-LIKE        -->\n<!-- hanging  off them.  A PROOF-LIKE can be a block in -->\n<!-- its own right (a \"detached\" PROOF-LIKE).           -->\n\n\n<!-- THEOREM-LIKE, AXIOM-LIKE -->\n<!-- Similar blocks, former may have a PROOF-LIKE appendage -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-theorem = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n    <xsl:text> theorem-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement     -->\n<!-- with Sage, so pass block type              -->\n<!-- Simply process contents, could restict here -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- Alternative: Locate first \"PROOF-LIKE\", select only preceding:: ? -->\n    <xsl:apply-templates select=\"*[not(&PROOF-FILTER;)]\" >\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- PROOF-LIKE -->\n<!-- A fairly simple block, though configurable -->\n\n<!-- Born-hidden behavior is configurable -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"is-hidden\">\n    <xsl:value-of select=\"$knowl-proof = 'yes'\" />\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<!-- Only subsidiary item that is configurable -->\n<!-- as visible or hidden in a knowl           -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"body-css-class\">\n    <xsl:choose>\n        <xsl:when test=\"$knowl-proof = 'yes'\">\n            <xsl:text>hiddenproof</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>proof</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- When born use this heading -->\n<!-- Optionally titled          -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-no-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<!-- Optionally titled                          -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:choose>\n        <xsl:when test=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"heading-title\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"heading-type\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Primary content of generic \"body\" template  -->\n<!-- Pass along b-original flag                  -->\n<!-- Potentially knowled, may have statement    -->\n<!-- with Sage, so pass block type              -->\n<!-- Simply process contents, could restict here -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n        <xsl:with-param name=\"block-type\" select=\"$block-type\"/>\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Case (of a PROOF-LIKE) -->\n<!-- A simple block with an inline heading -->\n\n<!-- Never born-hidden, does not make sense -->\n<xsl:template match=\"case\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<!-- Natural HTML element      -->\n<xsl:template match=\"case\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"case\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this specialized heading -->\n<xsl:template match=\"case\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-case\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"case\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-case\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"case\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Next few implementations fit into general -->\n<!-- framework, but have some one-off flavor   -->\n\n\n<!-- Footnotes -->\n<!-- A bit unusual, as inline with minimal appearance -->\n\n<!-- Always born-hidden, by design -->\n<xsl:template match=\"fn\" mode=\"is-hidden\">\n    <xsl:text>true</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"fn\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"fn\" mode=\"body-css-class\">\n    <xsl:text>ptx-footnote__contents</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<!-- This could move to headings, but is one-off -->\n<xsl:template match=\"fn\" mode=\"heading-birth\">\n    <xsl:element name=\"sup\">\n        <xsl:text>&#x2009;</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n        <xsl:text>&#x2009;</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"fn\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<!-- Schema is TextLong, so need to process mixed -->\n<xsl:template match=\"fn\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:apply-templates>\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Contributor -->\n<!-- A block with no subsidiary elements, no duplication -->\n\n<!-- Never born-hidden, does not make sense -->\n<xsl:template match=\"contributor\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<!-- Natural HTML element      -->\n<xsl:template match=\"contributor\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"contributor\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- Heading is not needed -->\n<xsl:template match=\"contributor\" mode=\"heading-birth\" />\n\n<!-- xref-knowl content makes it obvious-->\n<xsl:template match=\"contributor\" mode=\"heading-xref-knowl\" />\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<xsl:template match=\"contributor\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- not interpreting duplication flag here -->\n    <div class=\"contributor-name\">\n        <xsl:apply-templates select=\"personname\" />\n    </div>\n    <div class=\"contributor-info\">\n        <xsl:if test=\"affiliation\">\n            <xsl:apply-templates select=\"affiliation\"/>\n            <xsl:if test=\"affiliation/following-sibling::*\">\n                <br/>\n            </xsl:if>\n        </xsl:if>\n        <xsl:if test=\"email\">\n            <xsl:apply-templates select=\"email\" />\n            <xsl:if test=\"email/following-sibling::*\">\n                <br />\n            </xsl:if>\n        </xsl:if>\n    </div>\n</xsl:template>\n\n\n<!-- Defined Terms (of a Glossary) -->\n\n<!-- Never born-hidden, always in \"glossary\" -->\n<xsl:template match=\"gi\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"gi\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"gi\" mode=\"body-css-class\">\n    <xsl:value-of select=\"local-name()\"/>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"gi\" mode=\"heading-birth\" />\n\n<!-- Heading for interior of xref-knowl content -->\n<!-- Not necessary, obvious by appearance       -->\n<xsl:template match=\"gi\" mode=\"heading-xref-knowl\" />\n\n<!-- Glossary defined terms have more structure -->\n<!-- The id is placed on the title as a target  -->\n<xsl:template match=\"gi\" mode=\"body\">\n    <xsl:param name=\"block-type\" />\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:choose>\n        <xsl:when test=\"$block-type = 'xref'\">\n            <article class=\"li\">\n                <!-- \"title\" of item is replicated in heading -->\n                <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\">\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n                <!-- a run of paragraphs, conceivably, title is killed -->\n                <xsl:apply-templates select=\"*\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n                <!-- Insert permalink -->\n                <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n            </article>\n        </xsl:when>\n        <xsl:otherwise>\n            <dt>\n                <!-- label original -->\n                <xsl:if test=\"$b-original\">\n                    <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                </xsl:if>\n                <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                <!-- Insert permalink -->\n                <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n            </dt>\n            <dd>\n                <xsl:apply-templates select=\"*\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n            </dd>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Bibliographic Entries -->\n<!-- An obvious use for knowls, but occur inline -->\n\n<!-- Never born-hidden, always in references -->\n<xsl:template match=\"biblio\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"biblio\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<xsl:template match=\"biblio\" mode=\"body-css-class\">\n    <xsl:text>bib</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"biblio\" mode=\"heading-birth\" />\n\n<!-- Heading for interior of xref-knowl content -->\n<!-- Not necessary, obvious by appearance       -->\n<xsl:template match=\"biblio\" mode=\"heading-xref-knowl\" />\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<!-- Schema is TextLong, so need to process mixed -->\n<xsl:template match=\"biblio\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- ignoring original flag at first, -->\n    <!-- nothing interior gets duplicated -->\n    <div class=\"bibitem\">\n        <xsl:choose>\n            <!-- CSL not active, PreTeXt numbers and brackets -->\n            <xsl:when test=\"not(@numeric)\">\n                <xsl:text>[</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n                <xsl:text>]</xsl:text>\n            </xsl:when>\n            <!-- CSL provided, with formatting -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"@numeric\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </div>\n    <div class=\"bibentry\">\n        <xsl:choose>\n            <xsl:when test=\"@type = 'raw'\">\n                <!-- mixed content, include text nodes -->\n                <xsl:apply-templates select=\"text()|*[not(self::note)]\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:when test=\"@type = 'bibtex'\">\n                <!-- structured, document order -->\n                <xsl:apply-templates select=\"*[not(self::note)]\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:when test=\"not(@type = 'raw') and not(@type = 'bibtex')\">\n                <!-- structured, document order -->\n                <xsl:apply-templates select=\"*[not(self::note)]\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n            </xsl:when>\n        </xsl:choose>\n        <xsl:if test=\"note\">\n            <xsl:apply-templates select=\"note\">\n                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            </xsl:apply-templates>\n        </xsl:if>\n    </div>\n</xsl:template>\n\n<!-- Bibliographic Note -->\n<!-- A simple item hanging off others -->\n\n<!-- Always born-hidden, by design -->\n<xsl:template match=\"biblio/note|interactive/instructions\" mode=\"is-hidden\">\n    <xsl:text>true</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"biblio/note|interactive/instructions\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<!-- This is a temporary hack, which should go away -->\n<xsl:template match=\"biblio/note|interactive/instructions\" mode=\"body-css-class\">\n    <xsl:text>solution-like</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"biblio/note\" mode=\"heading-birth\">\n    <xsl:apply-templates select=\".\" mode=\"heading-simple\" />\n</xsl:template>\n<xsl:template match=\"interactive/instructions\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-no-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"biblio/note\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n<xsl:template match=\"interactive/instructions\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-no-number\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n\n<!-- Primary content of generic \"body\" template   -->\n<!-- Pass along b-original flag                   -->\n<!-- Simply process contents, could restrict here -->\n<!-- Schema says just paragraphs, \"p\"             -->\n<xsl:template match=\"biblio/note|interactive/instructions\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\"p\" >\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Fragment (literate programming) -->\n<!-- A simple item hanging off others -->\n\n<!-- Always born-hidden, by design -->\n<xsl:template match=\"fragment\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- Overall enclosing element -->\n<xsl:template match=\"fragment\" mode=\"body-element\">\n    <xsl:text>div</xsl:text>\n</xsl:template>\n\n<!-- And its CSS class -->\n<!-- This is a temporary hack, which should go away -->\n<xsl:template match=\"fragment\" mode=\"body-css-class\">\n    <xsl:text>fragment</xsl:text>\n</xsl:template>\n\n<!-- When born use this heading -->\n<xsl:template match=\"fragment\" mode=\"heading-birth\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        <xsl:with-param name=\"heading-title\">\n            <xsl:call-template name=\"langle-character\"/>\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            <xsl:call-template name=\"rangle-character\"/>\n            <!--  U+2261 ≡ IDENTICAL TO -->\n            <xsl:text> &#x2261;</xsl:text>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <xsl:if test=\"@filename\">\n        <xsl:text>Root of file: </xsl:text>\n        <xsl:value-of select=\"@filename\"/>\n        <br/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Heading for interior of xref-knowl content -->\n<xsl:template match=\"fragment\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Primary content of generic \"body\" template -->\n<!-- Pass along b-original flag                 -->\n<xsl:template match=\"fragment\" mode=\"wrapped-content\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <pre>\n        <xsl:apply-templates select=\"code|fragref\"/>\n    </pre>\n</xsl:template>\n\n<!-- All of the implementations above use the same   -->\n<!-- template for their body, it relies on various   -->\n<!-- templates but most of the work comes via the    -->\n<!-- \"wrapped-content\" template.  Here is that       -->\n<!-- \"body\" template.  The items in the \"match\"      -->\n<!-- are in the order presented above: simple first, -->\n<!-- and top-down when components are also knowled.  -->\n\n\n<xsl:template match=\"&REMARK-LIKE;|&COMPUTATION-LIKE;|&DEFINITION-LIKE;|&ASIDE-LIKE;|poem|&FIGURE-LIKE;|assemblage|blockquote|paragraphs|&GOAL-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|subexercises|exercisegroup|exercise|&PROJECT-LIKE;|task|&SOLUTION-LIKE;|&DISCUSSION-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&PROOF-LIKE;|case|fn|contributor|biblio|biblio/note|interactive/instructions|fragment\" mode=\"body\">\n    <xsl:param name=\"b-original\" select=\"true()\"/>\n    <xsl:param name=\"block-type\"/>\n    <xsl:param name=\"heading-level\"/>\n\n    <!-- prelude beforehand, when original -->\n    <xsl:if test=\"$b-original\">\n        <xsl:apply-templates select=\"prelude\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        </xsl:apply-templates>\n    </xsl:if>\n    <xsl:variable name=\"body-elt\">\n        <xsl:apply-templates select=\".\" mode=\"body-element\" />\n    </xsl:variable>\n    <!-- newlines inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"{$body-elt}\">\n        <xsl:attribute name=\"class\">\n            <xsl:apply-templates select=\".\" mode=\"body-css-class\" />\n            <xsl:if test=\"$block-type = 'hidden'\">\n                <xsl:text> knowl__content</xsl:text>\n            </xsl:if>\n        </xsl:attribute>\n        <!-- Label original, but not if embedded            -->\n        <!-- Then id goes onto the knowl text, so locatable -->\n        <xsl:if test=\"$b-original and not($block-type = 'hidden')\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <!-- If visible, heading interior to article -->\n        <xsl:if test=\"$block-type = 'visible'\">\n            <xsl:apply-templates select=\".\" mode=\"heading-birth\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- If xref-knowl, heading interior to article -->\n        <xsl:if test=\"$block-type = 'xref'\">\n            <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </xsl:if>\n        <!-- After the heading, and before the actual guts, we      -->\n        <!-- sometimes annotate with the source                     -->\n        <!-- of the current element.  This calls a stub, unless     -->\n        <!-- a separate stylesheet is used to define the template,  -->\n        <!-- and the method is defined there.  An \"fn\" necessarily  -->\n        <!-- comes through here, but it is a silly thing to         -->\n        <!-- annotate.  We skip it promptly on the receiving end,   -->\n        <!-- instead of adding clutter here.                        -->\n        <xsl:apply-templates select=\".\" mode=\"view-source-widget\"/>\n        <!-- Then actual content, respecting b-original flag  -->\n        <!-- Pass $block-type for Sage cells to know environs -->\n        <!-- Increment heading-level for descendant blocks    -->\n        <xsl:apply-templates select=\".\" mode=\"wrapped-content\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"block-type\" select=\"$block-type\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level + 1\"/>\n        </xsl:apply-templates>\n        <!-- Apply workspace div (but not in project, exercises or tasks, -->\n        <!-- since they get them applied in their exercise-content        -->\n        <!-- template). Unless the element is in a worksheet or handout,  -->\n        <!-- this div will be killed by the sanatize-workspace template.  -->\n        <!--<xsl:if test=\"not(&PROJECT-FILTER; or self::exercise or self::task)\">-->\n            <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n        <!--</xsl:if>-->\n        <!-- Insert a permalink as the last child of the block, but only   -->\n        <!-- if not FIGURE-LIKE (these get their permalink on the caption) -->\n        <xsl:if test=\"not(&FIGURE-FILTER;)\">\n            <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n        </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    </xsl:element>\n    <!-- Extraordinary: PROOF-LIKE are not displayed within their-->\n    <!-- parent theorem, but as a sibling, following.  It might  -->\n    <!-- be a hidden knowl, it might just be the PROOF-LIKE      -->\n    <!-- visible. The conditional simply prevents abuse.         -->\n    <xsl:if test=\"(&THEOREM-FILTER;)\">\n        <xsl:apply-templates select=\"&PROOF-LIKE;\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- postlude afterward, when original -->\n    <xsl:if test=\"$b-original\">\n        <xsl:apply-templates select=\"postlude\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- The following feed into the same framework,   -->\n<!-- but have their own specific \"body\" templates  -->\n<!-- due to their unique characteristics.  We have -->\n<!-- paragraphs (\"p\"), list items (\"li\"), webwork  -->\n<!-- exercises (\"webwork-reps\"), and numbered      -->\n<!-- mathematics (\"md[mrow]\")                      -->\n\n\n<!-- Paragraph -->\n<!-- These are never born hidden.  They are     -->\n<!-- often xref targets (such as in the index). -->\n<!-- Because we bust up some paragraphs into    -->\n<!-- smaller ones, interleaved with displays    -->\n<!-- (lists, math, code display), and because   -->\n<!-- they do not have titles or heading,        -->\n<!-- we process everything in the body.         -->\n\n<xsl:template match=\"p\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"p\" mode=\"body-element\" />\n\n<xsl:template match=\"p\" mode=\"body-css-class\" />\n\n<xsl:template match=\"p\" mode=\"heading-birth\" />\n\n<xsl:template match=\"p\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-type\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Paragraphs, without lists within   -->\n<xsl:template match=\"p\" mode=\"body\">\n    <xsl:param name=\"block-type\" />\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:if test=\"$block-type = 'xref'\">\n        <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <div>\n        <xsl:attribute name=\"class\">\n            <xsl:text>para</xsl:text>\n            <!-- acknowledge prelude/interlude/postlude parents -->\n            <xsl:apply-templates select=\".\" mode=\"add-lude-parent-class\"/>\n        </xsl:attribute>\n        <!-- label original -->\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <xsl:apply-templates>\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n        <!-- Insert workspace (will only apply to p inside worksheet or handout) -->\n        <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n        <!-- Insert permalink -->\n        <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n    </div>\n</xsl:template>\n\n<!-- Paragraphs, with displays within                    -->\n<!-- Later, so a higher priority match                   -->\n<!-- Lists and display math are HTML blocks              -->\n<!-- and so should not be within an HTML paragraph.      -->\n<!-- We bust them out, and put the id for the paragraph  -->\n<!-- on the first one, even if empty.                    -->\n<xsl:template match=\"p[ol|ul|dl|md[mrow]|cd]\" mode=\"body\">\n    <xsl:param name=\"block-type\" />\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:if test=\"$block-type = 'xref'\">\n        <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <!-- will later loop over displays within paragraph -->\n    <xsl:variable name=\"displays\" select=\"ul|ol|dl|md[mrow]|cd\" />\n    <!-- content prior to first display is exceptional, but if empty,   -->\n    <!-- as indicated by $initial, we do not produce an empty paragraph -->\n    <!--                                                                -->\n    <!-- all interesting nodes of paragraph, before first display       -->\n    <xsl:variable name=\"initial\" select=\"$displays[1]/preceding-sibling::*|$displays[1]/preceding-sibling::text()\" />\n    <xsl:variable name=\"initial-content\">\n        <xsl:apply-templates select=\"$initial\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <div class=\"para logical\">\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <!-- INDENT FOLLOWING ON A WHITESPACE COMMIT -->\n    <!-- XSLT 1.0: RTF is just a string if not converted to node set -->\n    <!-- This comparison might improve with a normalize-space()      -->\n    <xsl:if test=\"not($initial-content='')\">\n        <div>\n            <xsl:attribute name=\"class\">\n                <xsl:text>para</xsl:text>\n            </xsl:attribute>\n            <xsl:copy-of select=\"$initial-content\" />\n        </div>\n    </xsl:if>\n    <!-- for each display, output the display, plus trailing content -->\n    <xsl:for-each select=\"$displays\">\n        <!-- do the display proper -->\n        <xsl:apply-templates select=\".\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n        <!-- look through remainder, all element and text nodes, and the next display -->\n        <xsl:variable name=\"rightward\" select=\"following-sibling::*|following-sibling::text()\" />\n        <xsl:variable name=\"next-display\" select=\"following-sibling::*[self::ul or self::ol or self::dl or self::md[mrow] or self::cd][1]\" />\n        <xsl:choose>\n            <xsl:when test=\"$next-display\">\n                <xsl:variable name=\"leftward\" select=\"$next-display/preceding-sibling::*|$next-display/preceding-sibling::text()\" />\n                <!-- device below forms set intersection -->\n                <xsl:variable name=\"common\" select=\"$rightward[count(. | $leftward) = count($leftward)]\" />\n                <!-- Common content could be just a \"pi:intertext\"  -->\n                <!-- as a result of the \"intertext-exploder\" mode    -->\n                <!-- in -assembly.  This situation is recorded here. -->\n                <xsl:variable name=\"b-common-is-intertext\" select=\"$common[self::pi:intertext]\"/>\n                <!-- No id on these, as the first \"p\" got that    -->\n                <!-- Careful, punctuation after display math      -->\n                <!-- gets absorbed into display and so is a node  -->\n                <!-- that produces no content (cannot just count) -->\n                <xsl:variable name=\"common-content\">\n                    <xsl:apply-templates select=\"$common\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:variable>\n                <!-- XSLT 1.0: RTF is just a string if not converted to node set -->\n                <!-- This comparison might improve with a normalize-space()      -->\n                <!-- When the intervening material aries from an authored        -->\n                <!-- \"intertext\", we mark the paragraph we create here as such   -->\n                <!-- for styling purposes.                                       -->\n                <xsl:if test=\"not($common-content = '')\">\n                    <div>\n                        <xsl:attribute name=\"class\">\n                            <xsl:text>para</xsl:text>\n                            <xsl:if test=\"$b-common-is-intertext\">\n                                <xsl:text> intertext</xsl:text>\n                            </xsl:if>\n                        </xsl:attribute>\n                        <xsl:copy-of select=\"$common-content\" />\n                    </div>\n                </xsl:if>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- finish the trailing content, if nonempty    -->\n                <!-- Note: impossible for this to be \"intertext\" -->\n                <xsl:variable name=\"common-content\">\n                    <xsl:apply-templates select=\"$rightward\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </xsl:variable>\n                <!-- XSLT 1.0: RTF is just a string if not converted to node set -->\n                <!-- This comparison might improve with a normalize-space()      -->\n                <xsl:if test=\"not($common-content = '')\">\n                    <div class=\"para\">\n                        <xsl:copy-of select=\"$common-content\" />\n                    </div>\n                </xsl:if>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:for-each>\n        <!-- INDENT ABOVE ON A WHITESPACE COMMIT -->\n    <!-- Insert workspace (will only apply to p inside worksheet or handout) -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <!-- Insert permalink -->\n    <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n    </div>\n</xsl:template>\n\n\n<!-- List Items -->\n<!-- A list item can be the target of a        -->\n<!-- cross-reference, so we need to make       -->\n<!-- a xref-knowl for that scenario.  Also,    -->\n<!-- we produce the original versions here     -->\n<!-- too.  The \"ol, \"ul\", \"dl\" are pure        -->\n<!-- containers and are implemented elsewhere. -->\n\n<!-- Not applicable -->\n<xsl:template match=\"li\" mode=\"is-hidden\" />\n\n<xsl:template match=\"li\" mode=\"body-element\">\n    <xsl:text>article</xsl:text>\n</xsl:template>\n\n<!-- not yet supported, change this? -->\n<xsl:template match=\"li\" mode=\"body-css-class\">\n    <xsl:text>li</xsl:text>\n</xsl:template>\n\n<!-- Not applicable -->\n<xsl:template match=\"li\" mode=\"heading-birth\" />\n\n<xsl:template match=\"li\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-full\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- For a description list, the title alone is enough -->\n<xsl:template match=\"dl/li\" mode=\"heading-xref-knowl\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:apply-templates select=\".\" mode=\"heading-title\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Pass-through regular list items    -->\n<!-- Allow paragraphs in larger items,  -->\n<!-- or just snippets for smaller items -->\n<!-- radically diffferent looks if part -->\n<!-- of overall list versus being a     -->\n<!-- standalone display of one item     -->\n<!-- var may be a multiple choice list  -->\n<!-- container from a webwork-reps      -->\n<xsl:template match=\"ol/li|ul/li|var/li\" mode=\"body\">\n    <xsl:param name=\"block-type\" />\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:choose>\n        <xsl:when test=\"$block-type = 'xref'\">\n            <article class=\"li\">\n                <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\">\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n                <xsl:apply-templates>\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n            </article>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- newline inserted to encourage formatted output -->\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:element name=\"li\">\n                <!-- label original -->\n                <xsl:if test=\"$b-original\">\n                    <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                </xsl:if>\n                <!-- \"title\" only possible for structured version of a list item -->\n                <xsl:if test=\"title\">\n                    <span class=\"heading li--heading\">\n                        <span class=\"title li--heading-title\">\n                            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                        </span>\n                    </span>\n                </xsl:if>\n                <!-- Unstructured list items will be output as an HTML \"p\"     -->\n                <!-- within the \"li\", much like a structured list item could   -->\n                <!-- have a single \"p\" as its structured content.  This is     -->\n                <!-- meant to help with authoring tools based on HTML content  -->\n                <!-- and for CSS withing Kindle versions.  A \"dl/li\" is always -->\n                <!-- structured, so we can do this here.                       -->\n                <xsl:choose>\n                    <!-- Any of these children is an indicator of a structured  -->\n                    <!-- list item, according to the schema, as of 2021-07-03   -->\n                    <xsl:when test=\"p|blockquote|pre|image|video|program|console|tabular|&FIGURE-LIKE;|&ASIDE-LIKE;|sidebyside|sbsgroup|sage\">\n                        <xsl:apply-templates>\n                            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </xsl:when>\n                    <!-- No good test for unstructured? -->\n                    <xsl:otherwise>\n                        <div class=\"para\">\n                            <!-- Create a derived id, if original.  Somewhat  -->\n                            <!-- contrived so it doesn't collide with another. -->\n                            <xsl:if test=\"$b-original\">\n                                <xsl:attribute name=\"id\">\n                                    <xsl:text>p-derived-</xsl:text>\n                                    <xsl:apply-templates select=\".\" mode=\"html-id\" />\n                                </xsl:attribute>\n                            </xsl:if>\n                            <xsl:apply-templates>\n                                <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                            </xsl:apply-templates>\n                        </div>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <!-- Insert workspace (will only apply if in worksheet or handout) -->\n                <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n                <!-- Insert permalink -->\n                <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n            </xsl:element>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Description list items have more structure -->\n<!-- The id is placed on the title as a target  -->\n<xsl:template match=\"dl/li\" mode=\"body\">\n    <xsl:param name=\"block-type\" />\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <xsl:choose>\n        <xsl:when test=\"$block-type = 'xref'\">\n            <article class=\"li\">\n                <!-- \"title\" of item is replicated in heading -->\n                <xsl:apply-templates select=\".\" mode=\"heading-xref-knowl\">\n                    <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                </xsl:apply-templates>\n                <!-- a run of paragraphs, conceivably, title is killed -->\n                <xsl:apply-templates>\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n            </article>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- newline inserted to encourage formatted output -->\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:element name=\"dt\">\n                <!-- label original -->\n                <xsl:if test=\"$b-original\">\n                    <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                </xsl:if>\n                <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                <!-- Insert permalink -->\n                <xsl:apply-templates select=\".\" mode=\"permalink\"/>\n            </xsl:element>\n            <!-- newline inserted to encourage formatted output -->\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:element name=\"dd\">\n                <xsl:apply-templates>\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n                <!-- Insert workspace -->\n                <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n            </xsl:element>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ########### -->\n<!-- Mathematics -->\n<!-- ########### -->\n\n<!-- Mathematics authored in LaTeX syntax should be       -->\n<!-- independent of output format.  Despite MathJax's     -->\n<!-- broad array of capabilities, there are still some    -->\n<!-- differences which we need to accomodate via abstract -->\n<!-- templates.                                           -->\n\n<!-- See the -common stylesheet for manipulations of math elements      -->\n<!-- and subsequent text nodes that lead with punctuation.  Basically,  -->\n<!-- punctuation can migrate from the start of the text node and into   -->\n<!-- the math, wrapped in a \\text{}.  We do this to display math as a   -->\n<!-- service to authors.  But for HTML/MathJax we avoid bad line-breaks -->\n<!-- if we do this routinely for inline math also.  If MathJax ever     -->\n<!-- gets better at this, then we can set this switch to 'display',     -->\n<!-- as for LaTeX.                                                      -->\n<xsl:variable name=\"math.punctuation.include\" select=\"'all'\"/>\n\n<!-- Inline Mathematics (\"m\") -->\n\n<!-- Never labeled, so not ever knowled,        -->\n<!-- and so no need for a duplicate template    -->\n<!-- Asymmetric LaTeX delimiters \\( and \\) need -->\n<!-- to be part of MathJax configuration, but   -->\n<!-- also free up the dollar sign               -->\n\n\n<!-- This template wraps inline math in delimiters -->\n<xsl:template name=\"inline-math-wrapper\">\n    <xsl:param name=\"math\"/>\n\n    <span class=\"process-math\">\n        <xsl:text>\\(</xsl:text>\n        <xsl:value-of select=\"$math\"/>\n        <xsl:text>\\)</xsl:text>\n    </span>\n</xsl:template>\n\n<!-- Displayed Single-Line Math (\"me\", \"men\") -->\n\n<!-- All displayed mathematics is wrapped by a div,    -->\n<!-- motivated in part by the need to sometimes put an -->\n<!-- HTML id on the first item of an exploded logical  -->\n<!-- paragraph into several HTML block level items     -->\n<!-- NB: displaymath might have an intertext           -->\n<!-- becoming \"p\", thus the necessity of \"copy-of\"     -->\n<xsl:template match=\"md[mrow]\" mode=\"display-math-wrapper\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"content\" />\n\n    <div class=\"displaymath process-math\">\n        <xsl:apply-templates select=\".\" mode=\"knowl-urls\"/>\n        <!-- Following is overkill.  Not every bit of math needs -->\n        <!-- to be referenced, but we err on the side of always  -->\n        <!-- supplying an HTML @id attribute.  Amending the test -->\n        <!-- by \"and mrow[(@pi:numbered = 'yes') or @tag]\" seems -->\n        <!-- to be fairly accurate, without being gross excess.  -->\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <xsl:copy-of select=\"$content\" />\n    </div>\n</xsl:template>\n\n<xsl:template match=\"md[mrow]\" mode=\"knowl-urls\">\n    <xsl:variable name=\"display-math-cross-references\" select=\"..//xref\"/>\n    <!-- don't add such an attribute if there is nothing happening -->\n    <xsl:if test=\"$display-math-cross-references\">\n        <xsl:attribute name=\"data-contains-math-knowls\">\n            <xsl:for-each select=\"$display-math-cross-references\">\n                <!-- space before all, except first -->\n                <xsl:if test=\"position() != 1\">\n                    <xsl:text> </xsl:text>\n                </xsl:if>\n                <xsl:apply-templates select=\"id(@ref)\" mode=\"knowl-filename\">\n                    <xsl:with-param name=\"origin\" select=\"'xref'\"/>\n                </xsl:apply-templates>\n            </xsl:for-each>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<!-- No \"%\" like on the LaTeX side -->\n<xsl:template name=\"display-math-visual-blank-line\">\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Manual Number Tagging -->\n<!-- We do \"tag\" numbered equations in MathJax output, -->\n<!-- because we want to control and duplicate the way  -->\n<!-- numbers are generated and assigned by LaTeX       -->\n<!-- \"me\" is never numbered/tagged, \"men\" always is    -->\n<!-- This is the MathJax hard-coded technique          -->\n<!-- Local tag preempts a hard-coded number, and we    -->\n<!-- need to also take care with the numbering. \\tag{} -->\n<!-- is what a reader sees, usually the number         -->\n<!-- computed in -common, but sometimes symbols        -->\n<!-- generated by mrow/@tag. These are purely visual.  -->\n<!-- Identification and cross-references are managed   -->\n<!-- by HTML id on enclosing HTML elements.            -->\n\n<xsl:template match=\"mrow\" mode=\"tag\">\n    <xsl:text>\\tag{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"mrow[@tag]\" mode=\"tag\">\n    <xsl:text>\\tag{</xsl:text>\n    <xsl:apply-templates select=\"@tag\" mode=\"tag-symbol\" />\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- We need a few templates for knowl production, -->\n<!-- but generally they do nothing                 -->\n\n<!-- always visible -->\n<xsl:template match=\"md[mrow]\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"md[mrow]\" mode=\"body-element\" />\n<xsl:template match=\"md[mrow]\" mode=\"body-css-class\" />\n\n<!-- No title; type and number obvious from content -->\n<xsl:template match=\"md[mrow]\" mode=\"heading-xref-knowl\" />\n\n<!-- Once upon a time, we broke up markup meant for MathJax that occured   -->\n<!-- outside of what we know is a mathematical context (\"accidental        -->\n<!-- mathematics\").   We did this by breaking up strings with a zero-width -->\n<!-- space (U+200B), but a better device is wrapping a delimiter in a span -->\n<!-- (see this technique in the \"text-processing\" template in the Jupyter  -->\n<!-- conversion).  However, MathJax 3 lets us target/ignore specific       -->\n<!-- locations for its translation.  So the \"text-processing\" template     -->\n<!-- that was once here is now gone.  But now it is back, to upgrade a     -->\n<!-- keyboard \"plain\" apostrophe to a Unicode \"curly\" apostrophe.          -->\n\n<xsl:template name=\"text-processing\">\n    <xsl:param name=\"text\"/>\n\n    <!-- 'RIGHT SINGLE QUOTATION MARK' (U+2019) -->\n    <xsl:variable name=\"apostophe-fixed\" select=\"str:replace($text, $apos, '&#x2019;')\"/>\n\n    <xsl:value-of select=\"$apostophe-fixed\"/>\n</xsl:template>\n\n<!-- We cruise knowled content for necessity of hidden knowls -->\n<xsl:template match=\"*\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- ############################# -->\n<!-- End: Block Production, Knowls -->\n<!-- ############################# -->\n\n\n<!-- #################### -->\n<!-- Components of Blocks -->\n<!-- #################### -->\n\n<!-- Introductions and Conclusions -->\n<!-- As components of blocks.      -->\n<!-- NB: self::page for inside printouts -->\n<xsl:template match=\"introduction[not(parent::*[&STRUCTURAL-FILTER; or self::page])]|conclusion[not(parent::*[&STRUCTURAL-FILTER; or self::page])]\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"class\">\n            <xsl:value-of select=\"local-name(.)\" />\n        </xsl:attribute>\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <xsl:if test=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"heading-generic\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                <xsl:with-param name=\"heading-title\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                    <span> </span>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:if>\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:element>\n</xsl:template>\n\n<!-- A \"headnote\" prefaces the content of a \"glossary\".  Below -->\n<!-- is modeled on block introductions (just above), but with  -->\n<!-- no \"title\" and with a provisional recycled CSS class.     -->\n<xsl:template match=\"glossary/headnote\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <section class=\"headnote\">\n        <xsl:if test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        </xsl:if>\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        </xsl:apply-templates>\n    </section>\n</xsl:template>\n\n<!-- Prelude, Interlude, Postlude -->\n<!-- Very simple containiers, to help with movement, use -->\n<xsl:template match=\"prelude|interlude|postlude\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- assume these containers are structured -->\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Indicate if a routine element/object is from a LUDE-LIKE, -->\n<!-- by looking to the parent.  This is meant for use where an -->\n<!-- HTML element is already placing a @class attribute, so a  -->\n<!-- space is included to separate it away.                    -->\n<!-- NB: look to schema for all allowed elements within a \"prelude\", -->\n<!-- etc. and extend implementation beyond just \"p\" if desired.      -->\n<xsl:template match=\"p\" mode=\"add-lude-parent-class\">\n    <xsl:if test=\"parent::prelude|parent::interlude|parent::postlude\">\n        <!-- space off from existing class name(s) -->\n        <xsl:text> </xsl:text>\n        <!-- class name is parent PTX name -->\n        <xsl:value-of select=\"local-name(parent::*)\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ########### -->\n<!-- HTML Markup -->\n<!-- ########### -->\n\n<!-- ##### -->\n<!-- Lists -->\n<!-- ##### -->\n\n<!-- Utility templates to translate PTX              -->\n<!-- enumeration style to HTML list-style-type       -->\n<xsl:template match=\"ol|ol-marker\" mode=\"html-list-class\">\n    <xsl:variable name=\"mbx-format-code\" select=\"./@format-code\" />\n    <xsl:choose>\n        <xsl:when test=\"$mbx-format-code = '0'\">decimal</xsl:when>\n        <xsl:when test=\"$mbx-format-code = '1'\">decimal</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'a'\">lower-alpha</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'A'\">upper-alpha</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'i'\">lower-roman</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'I'\">upper-roman</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: bad ordered list label format code in HTML conversion</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"ul\" mode=\"html-list-class\">\n    <xsl:variable name=\"mbx-format-code\">\n        <xsl:apply-templates select=\".\" mode=\"format-code\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$mbx-format-code = 'disc'\">disc</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'circle'\">circle</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'square'\">square</xsl:when>\n        <xsl:when test=\"$mbx-format-code = 'none'\">no-marker</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: bad unordered list label format code in HTML conversion</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Lists themselves -->\n<!-- Hard-code the list style, trading -->\n<!-- on match in label templates.      -->\n<!-- Tunnel duplication flag to list items -->\n<xsl:template match=\"ol|ul\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <!-- need to switch on 0-1 for ol Arabic -->\n    <!-- no harm if called on \"ul\"           -->\n    <xsl:variable name=\"mbx-format-code\">\n        <xsl:choose>\n            <xsl:when test=\"self::ol\">\n                <xsl:value-of select=\"./@format-code\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"format-code\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"{local-name(.)}\">\n        <xsl:attribute name=\"class\">\n            <xsl:apply-templates select=\".\" mode=\"html-list-class\" />\n            <xsl:variable name=\"ol-marker-class\">\n                <xsl:apply-templates select=\".\" mode=\"ol-marker-class\" />\n            </xsl:variable>\n            <xsl:if test=\"not($ol-marker-class = '')\">\n                <xsl:text> </xsl:text>\n                <xsl:value-of select=\"$ol-marker-class\"/>\n            </xsl:if>\n            <xsl:variable name=\"cols-class-name\">\n                <!-- HTML-specific, but in pretext-common.xsl -->\n                <xsl:apply-templates select=\".\" mode=\"number-cols-CSS-class\"/>\n            </xsl:variable>\n            <xsl:if test=\"not($cols-class-name = '')\">\n                <xsl:text> </xsl:text>\n                <xsl:value-of select=\"$cols-class-name\"/>\n            </xsl:if>\n        </xsl:attribute>\n        <xsl:attribute name=\"id\">\n            <xsl:apply-templates select=\".\" mode=\"html-id\" />\n        </xsl:attribute>\n        <xsl:if test=\"$mbx-format-code = '0'\">\n            <xsl:attribute name=\"start\">\n                <xsl:text>0</xsl:text>\n            </xsl:attribute>\n        </xsl:if>\n        <xsl:apply-templates select=\"li\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:element>\n</xsl:template>\n\n<xsl:template match=\"ol[@marker]\" mode=\"ol-marker-class\">\n    <xsl:variable name=\"marker-value\" select=\"./@marker\" />\n    <xsl:for-each select=\"exsl:node-set($ol-markers)\">\n        <!-- Should be only one match since ol marker -->\n        <!-- index node set contains no duplicates    -->\n        <xsl:value-of select=\"key('marker-key', $marker-value)[1]/@classname\"/>\n    </xsl:for-each >\n</xsl:template>\n\n<xsl:template match=\"ol[not(@marker) and @format-code = 'a' and @ordered-list-level = '1']\" mode=\"ol-marker-class\">\n    <xsl:text>lower-alpha-level-1</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"ol|ul\" mode=\"ol-marker-class\"/>\n\n<xsl:template match=\"ol[@marker]\" mode=\"ol-markers\">\n    <xsl:element name=\"ol-marker\">\n        <xsl:copy-of select=\"@format-code\"/>\n        <xsl:copy-of select=\"@marker\"/>\n        <xsl:copy-of select=\"@marker-prefix\"/>\n        <xsl:copy-of select=\"@marker-suffix\"/>\n        <xsl:attribute name=\"classname\">\n            <xsl:text>ol-marker-</xsl:text>\n            <xsl:value-of select=\"position()\" />\n        </xsl:attribute>\n    </xsl:element>\n</xsl:template>\n\n<!-- Creates custom formatting for each unique ol/@marker -->\n<xsl:template match=\"ol-marker\" mode=\"ol-marker-style\">\n    <!-- format child li elements according to marker prefix/code/suffix -->\n    <xsl:text>ol.</xsl:text>\n    <xsl:value-of select=\"./@classname\"/>\n    <xsl:text> &gt; li::marker { content: &quot;</xsl:text>\n    <xsl:value-of select=\"./@marker-prefix\" />\n    <xsl:text>&quot;counter(list-item,</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"html-list-class\" />\n    <xsl:text>)&quot;</xsl:text>\n    <xsl:value-of select=\"./@marker-suffix\" />\n    <xsl:text> &quot;; }&#xa;</xsl:text>\n</xsl:template>\n\n<!-- CSS file for custom ol markers -->\n<xsl:template name=\"ol-marker-styles\">\n    <!-- We don't produce a file if it will be empty. This would  -->\n    <!-- \"naturally\" be the case, but we have a boolean anyway.   -->\n    <xsl:if test=\"$b-needs-custom-marker-css\">\n        <xsl:variable name=\"ol-marker-nodes\" select=\"exsl:node-set($ol-markers)\" />\n        <exsl:document href=\"{$html.css.dir}/ol-markers.css\" method=\"text\">\n            <xsl:apply-templates select=\"$ol-marker-nodes//ol-marker\" mode=\"ol-marker-style\" />\n        </exsl:document>\n    </xsl:if>\n</xsl:template>\n\n<!-- We let CSS react to narrow titles for dl -->\n<!-- But no support for multiple columns      -->\n<!-- tunnel duplication flag to list items -->\n<xsl:template match=\"dl\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n    <dl>\n        <xsl:attribute name=\"class\">\n            <xsl:choose>\n                <xsl:when test=\"@width = 'narrow'\">\n                    <xsl:text>description-list narrow</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@width = 'wide'\">\n                    <xsl:text>description-list wide</xsl:text>\n                </xsl:when>\n                <!-- 'medium' and any typo (let DTD check) -->\n                <xsl:otherwise>\n                    <xsl:text>description-list</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"li\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </dl>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Images -->\n<!-- ###### -->\n\n<!-- A bare image, or an image in a PTX \"figure\" that is not part  -->\n<!-- of a panel of a \"sidebyside\", can be given horizontal layout  -->\n<!-- control.  This is placed on a constraining \"div.image-box\"    -->\n<!-- via the \"@style\" attribute.  The image simply \"grows\" to      -->\n<!-- fill this box horizontally, with necessary vertical dimension -->\n<!-- to preserve the aspect ratio.  This div is also used to       -->\n<!-- provide vertical spacing from its surroundings.               -->\n<xsl:template match=\"image[not(ancestor::sidebyside)]\">\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <!-- div is constraint/positioning for contained image -->\n    <div class=\"image-box\">\n        <xsl:attribute name=\"style\">\n            <xsl:text>width: </xsl:text>\n            <xsl:value-of select=\"$layout/width\"/>\n            <xsl:text>%;</xsl:text>\n            <xsl:text> margin-left: </xsl:text>\n            <xsl:value-of select=\"$layout/left-margin\"/>\n            <xsl:text>%;</xsl:text>\n            <xsl:text> margin-right: </xsl:text>\n            <xsl:value-of select=\"$layout/right-margin\"/>\n            <xsl:text>%;</xsl:text>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"image-inclusion\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"mermaid[ancestor::image]\" mode=\"image-inclusion\">\n    <pre class=\"mermaid\">\n        <xsl:value-of select=\".\" />\n    </pre>\n</xsl:template>\n\n<!-- The div for a panel of a sidebyside will provide  -->\n<!-- the constraint/positioning of the contained image -->\n<!-- If the panel is a PTX \"figure\" then there will be -->\n<!-- an intermediate HTML \"figure\" which will not      -->\n<!-- interfere with the panel's constraints            -->\n<xsl:template match=\"image[ancestor::sidebyside]\">\n    <div class=\"image-box\">\n        <xsl:apply-templates select=\".\" mode=\"image-inclusion\" />\n    </div>\n</xsl:template>\n\n<!-- With a @source attribute, without an extension, -->\n<!--   we presume an SVG has been manufactured       -->\n<!-- With a @source attribute, with an extension,    -->\n<!--   we write an HTML \"img\" tag with attributes    -->\n<xsl:template match=\"image[@source|@pi:generated]\" mode=\"image-inclusion\">\n    <!-- condition on file extension -->\n    <!-- no period, lowercase'ed     -->\n    <xsl:variable name=\"extension\">\n        <xsl:call-template name=\"file-extension\">\n            <xsl:with-param name=\"filename\">\n                <xsl:choose>\n                    <xsl:when test=\"@pi:generated\">\n                        <xsl:value-of select=\"@pi:generated\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"@source\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- location of image, based on configured directory in publisher file -->\n    <xsl:variable name=\"location\">\n        <xsl:choose>\n            <xsl:when test=\"@pi:generated\">\n                <xsl:value-of select=\"$generated-directory\"/>\n                <xsl:value-of select=\"@pi:generated\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"@source\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- no extension, presume SVG provided as external image -->\n        <xsl:when test=\"$extension=''\">\n            <xsl:apply-templates select=\".\" mode=\"svg-png-wrapper\">\n                <xsl:with-param name=\"image-filename\">\n                    <xsl:value-of select=\"$location\"/>\n                    <xsl:text>.svg</xsl:text>\n                </xsl:with-param>\n            </xsl:apply-templates>\n            <!-- possibly annotate with archive links -->\n            <xsl:apply-templates select=\".\" mode=\"archive\">\n                <xsl:with-param name=\"base-pathname\" select=\"$location\"/>\n            </xsl:apply-templates>\n            <!-- possibly give a long description -->\n            <xsl:apply-templates select=\".\" mode=\"description\"/>\n        </xsl:when>\n        <!-- with extension, just include it -->\n        <xsl:otherwise>\n            <img>\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"class\">\n                    <xsl:text>contained</xsl:text>\n                </xsl:attribute>\n                <!-- alt attribute for accessibility -->\n                <xsl:choose>\n                    <xsl:when test=\"@decorative = 'yes'\">\n                        <xsl:attribute name=\"alt\"/>\n                    </xsl:when>\n                    <xsl:when test=\"not(string(shortdescription) = '')\">\n                        <xsl:attribute name=\"alt\">\n                            <xsl:apply-templates select=\"shortdescription\" />\n                        </xsl:attribute>\n                    </xsl:when>\n                    <xsl:when test=\"description\">\n                        <xsl:attribute name=\"alt\">\n                            <xsl:text>described in detail following the image</xsl:text>\n                        </xsl:attribute>\n                        <xsl:attribute name=\"aria-describedby\">\n                            <xsl:apply-templates select=\".\" mode=\"describedby-id\"/>\n                        </xsl:attribute>\n                    </xsl:when>\n                </xsl:choose>\n                <xsl:if test=\"@rotate\">\n                    <xsl:attribute name=\"style\">\n                        <xsl:text>transform: rotate(</xsl:text>\n                        <xsl:value-of select=\"@rotate\"/>\n                        <xsl:text>deg)</xsl:text>\n                    </xsl:attribute>\n                </xsl:if>\n            </img>\n            <!-- possibly annotate with archive links -->\n            <xsl:apply-templates select=\".\" mode=\"archive\">\n                <xsl:with-param name=\"base-pathname\">\n                    <!-- empty when not using managed directories -->\n                    <xsl:value-of select=\"$external-directory\"/>\n                    <xsl:call-template name=\"substring-before-last\">\n                        <xsl:with-param name=\"input\" select=\"$location\" />\n                        <xsl:with-param name=\"substr\" select=\"'.'\" />\n                    </xsl:call-template>\n                </xsl:with-param>\n            </xsl:apply-templates>\n            <!-- possibly give a long description -->\n            <xsl:apply-templates select=\".\" mode=\"description\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- SVG's produced by pretext/pretext script -->\n<!-- Minor variations to be dual-purpose      -->\n<!--   LaTeX source code images               -->\n<!--   PreFigure source code images           -->\n<xsl:template match=\"image[latex-image]|image[pf:prefigure]\" mode=\"image-inclusion\">\n    <!-- $base-pathname needed later for archive links -->\n    <xsl:variable name=\"base-pathname\">\n        <xsl:value-of select=\"$generated-directory\"/>\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:choose>\n                <xsl:when test=\"latex-image\">\n                    <xsl:text>latex-image/</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"pf:prefigure\">\n                    <xsl:text>prefigure/</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:if>\n        <!-- NB: node-set in @select will have exactly -->\n        <!-- one (child) node, given @match above      -->\n        <xsl:apply-templates select=\"latex-image|pf:prefigure\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <!-- Normally the \"svg-png-wrapper\" will create a \"standard\" HTML      -->\n    <!-- object to hold the image.  For an annotated PreFigure diagram     -->\n    <!-- we need a custom embedding for the diagcess JS to act on.  The    -->\n    <!-- two files (SVG image, XML annotations) are products of PreFigure. -->\n\n    <xsl:choose>\n        <xsl:when test=\"$b-portable-html and (latex-image|pf:prefigure[not(pf:diagram/pf:annotations)])\">\n            <xsl:apply-templates select=\".\" mode=\"svg-embedded\"/>\n        </xsl:when>\n        <xsl:when test=\"latex-image|pf:prefigure[not(pf:diagram/pf:annotations)]\">\n            <xsl:apply-templates select=\".\" mode=\"svg-png-wrapper\">\n                <xsl:with-param name=\"image-filename\" select=\"concat($base-pathname, '.svg')\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"pf:prefigure[pf:diagram/pf:annotations]\">\n            <div class=\"ChemAccess-element\">\n                <xsl:attribute name=\"data-src\">\n                    <xsl:value-of select=\"$base-pathname\"/>\n                    <xsl:text>-diagcess.svg</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"data-cml\">\n                    <xsl:value-of select=\"$base-pathname\"/>\n                    <xsl:text>-annotations.xml</xsl:text>\n                </xsl:attribute>\n            </div>\n            <!-- a named template provides keyboard shortcuts for  -->\n            <!-- the library powering exploration of the PreFigure -->\n            <!-- diagram authored with annotations                 -->\n            <!-- We defer if we are inside a setting where we      -->\n            <!-- might get multiple instances of instructions      -->\n            <!-- right next to each other.  This test will include -->\n            <!-- being inside a \"subsgroup\" as well.               -->\n            <xsl:if test=\"not(ancestor::sidebyside)\">\n                <xsl:call-template name=\"diagacess-instructions\"/>\n            </xsl:if>\n        </xsl:when>\n        <!-- cases should be exhaustive, given match and tests-->\n        <xsl:otherwise/>\n    </xsl:choose>\n    <!-- possibly annotate with archive links -->\n    <xsl:apply-templates select=\".\" mode=\"archive\">\n        <xsl:with-param name=\"base-pathname\" select=\"$base-pathname\" />\n    </xsl:apply-templates>\n    <!-- possibly give a long description -->\n    <xsl:apply-templates select=\".\" mode=\"description\"/>\n</xsl:template>\n\n<xsl:template match=\"image[sageplot]\" mode=\"image-inclusion\">\n    <!-- $base-pathname needed later for archive links -->\n    <xsl:variable name=\"base-pathname\">\n        <xsl:value-of select=\"$generated-directory\"/>\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:text>sageplot/</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"sageplot\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <!-- 2d are SVG, 3d are HTML -->\n    <xsl:choose>\n        <xsl:when test=\"not(sageplot/@variant) or (sageplot/@variant = '2d')\">\n            <!-- construct the \"img\" element -->\n            <xsl:apply-templates select=\".\" mode=\"svg-png-wrapper\">\n                <xsl:with-param name=\"image-filename\" select=\"concat($base-pathname, '.svg')\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"sageplot/@variant = '3d'\">\n            <iframe>\n                <xsl:apply-templates select=\".\" mode=\"size-pixels-attributes\" />\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$base-pathname\"/>\n                    <xsl:text>.html</xsl:text>\n                </xsl:attribute>\n            </iframe>\n        </xsl:when>\n        <!-- attribute errors found out in generation? -->\n        <xsl:otherwise/>\n    </xsl:choose>\n    <!-- possibly annotate with archive links -->\n    <xsl:apply-templates select=\".\" mode=\"archive\">\n        <xsl:with-param name=\"base-pathname\" select=\"$base-pathname\" />\n    </xsl:apply-templates>\n    <!-- possibly give a long description -->\n    <xsl:apply-templates select=\".\" mode=\"description\"/>\n</xsl:template>\n\n<!-- Asymptote graphics language -->\n<xsl:template match=\"image[asymptote]\" mode=\"image-inclusion\">\n    <!-- base-pathname needed later for archive link production. This   -->\n    <!-- is the location for eventual output, in contrast to juat below -->\n    <!-- for source analysis.                                           -->\n    <xsl:variable name=\"base-pathname\">\n        <xsl:value-of select=\"$generated-directory\"/>\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:text>asymptote/</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"asymptote\" mode=\"image-source-basename\"/>\n    </xsl:variable>\n    <xsl:variable name=\"html-filename\" select=\"concat($base-pathname, '.html')\" />\n    <!-- We also need a path to the *source* file, for examination -->\n    <!-- to determine the aspect ratio of the diagram, in order to -->\n    <!-- insert correctly as a scaled instance                     -->\n    <xsl:variable name=\"html-source-filename\">\n        <xsl:value-of select=\"$generated-directory-source\"/>\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:text>asymptote/</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"asymptote\" mode=\"image-source-basename\"/>\n        <xsl:text>.html</xsl:text>\n    </xsl:variable>\n    <!-- Assumes filename is relative to primary source file, -->\n    <!-- which must be specified with the original version,   -->\n    <!-- not the pre-processed, \"assembled\" version           -->\n    <xsl:variable name=\"image-xml\" select=\"document($html-source-filename, $original)\"/>\n\n    <!-- width first -->\n    <xsl:variable name=\"width\">\n        <xsl:choose>\n            <!-- 2-D diagram -->\n            <!-- note necessity of namespace for \"svg\" element -->\n            <xsl:when test=\"$image-xml/html/body/svg:svg\">\n                <xsl:variable name=\"wpt\" select=\"$image-xml/html/body/svg:svg/@width\"/>\n                <!-- Strip \"pt\" suffix -->\n                <xsl:value-of select=\"substring($wpt, 1, string-length($wpt) - 2)\"/>\n            </xsl:when>\n            <!-- 3-D diagram -->\n            <xsl:when test=\"$image-xml/html/body/canvas\">\n                <xsl:value-of select=\"$image-xml/html/body/canvas/@width\"/>\n            </xsl:when>\n            <!-- failure -->\n            <xsl:otherwise>\n                <xsl:message>PTX:ERROR:   the Asymptote diagram produced in \"<xsl:value-of select=\"$image-xml\"/>\" needs to be available relative to the primary source file, or if available it is perhaps ill-formed and its width cannot be determined (which you might report as a bug).  We might be able to proceed as if the diagram is square, but results can be unpredictable.</xsl:message>\n                <!-- reasonable guess at points/pixels -->\n                <xsl:text>400</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- now height, similarly -->\n    <xsl:variable name=\"height\">\n        <xsl:choose>\n            <!-- 2-D diagram -->\n            <!-- note necessity of namespace for \"svg\" element -->\n            <xsl:when test=\"$image-xml/html/body/svg:svg\">\n                <xsl:variable name=\"hpt\" select=\"$image-xml/html/body/svg:svg/@height\"/>\n                <!-- Strip \"pt\" suffix -->\n                <xsl:value-of select=\"substring($hpt, 1, string-length($hpt) - 2)\"/>\n            </xsl:when>\n            <!-- 3-D diagram -->\n            <xsl:when test=\"$image-xml/html/body/canvas\">\n                <xsl:value-of select=\"$image-xml/html/body/canvas/@height\"/>\n            </xsl:when>\n            <!-- failure -->\n            <xsl:otherwise>\n                <xsl:message>PTX:ERROR:   the Asymptote diagram produced in \"<xsl:value-of select=\"$image-xml\"/>\" needs to be available relative to the primary source file, or if available it is perhaps ill-formed and its height cannot be determined (which you might report as a bug).  We might be able to proceed as if the diagram is square, but results can be unpredictable.</xsl:message>\n                <!-- reasonable guess at points/pixels -->\n                <xsl:text>400</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- All that was to get an aspect-ratio for a responsive iframe embedding -->\n    <xsl:variable name=\"aspect-percent\" select=\"($height div $width) * 100\"/>\n\n    <!-- Surrounding/constraining \"image\", or \"sidebyside\" panel, or ...    -->\n    <!-- will provide an overall width.  The \"padding-top\" property is what -->\n    <!-- makes the right shape.  CSS provides some constant properties.     -->\n    <div class=\"asymptote-box\" style=\"padding-top: {$aspect-percent}%\">\n        <iframe src=\"{$html-filename}\" class=\"asymptote\">\n            <xsl:if test=\"shortdescription\">\n                <xsl:attribute name=\"title\">\n                    <xsl:value-of select=\"shortdescription\"/>\n                </xsl:attribute>\n            </xsl:if>\n        </iframe>\n    </div>\n    <!-- possibly annotate with archive links -->\n    <xsl:apply-templates select=\".\" mode=\"archive\">\n        <xsl:with-param name=\"base-pathname\" select=\"$base-pathname\" />\n    </xsl:apply-templates>\n    <!-- possibly provide link to full size image -->\n    <!-- need to set html/asymptote@links=\"yes\" in publisher file to enable -->\n    <xsl:if test=\"$b-asymptote-html-links\">\n      <xsl:variable name=\"image-html-url\">\n          <xsl:value-of select=\"$baseurl\"/>\n          <xsl:value-of select=\"$html-filename\"/>\n      </xsl:variable>\n      <div class=\"asymptote-fullsize-link\">\n        <a href=\"{$image-html-url}\">Link to full-sized image</a>\n      </div>\n    </xsl:if>\n    <!-- possibly give a long description -->\n    <xsl:apply-templates select=\".\" mode=\"description\"/>\n</xsl:template>\n\n<!-- The infrastructure for an SVG or PNG image      -->\n<!-- Parameters                                      -->\n<!--   image-filename: required, full relative path  -->\n<!-- NB: (2020-01-18) Prior, this was SVG specific,  -->\n<!-- and then PNG functionality was folded in (when  -->\n<!-- fallback for \"sageplot\" was no longer necessary -->\n<xsl:template match=\"image\" mode=\"svg-png-wrapper\">\n    <xsl:param name=\"image-filename\" />\n    <img>\n        <!-- source file attribute for img element, the SVG image -->\n        <xsl:attribute name=\"src\">\n            <xsl:value-of select=\"$image-filename\" />\n        </xsl:attribute>\n        <!-- For accessibility use an ARIA role, e.g so screen  -->\n        <!-- readers do not try to read the elements of the SVG -->\n        <!-- NB: if we write SVG into the page, put this        -->\n        <!-- attribute onto the \"svg\" element                   -->\n        <xsl:attribute name=\"role\">\n            <xsl:text>img</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"class\">\n            <xsl:text>contained</xsl:text>\n        </xsl:attribute>\n        <!-- alt attribute for accessibility -->\n        <xsl:choose>\n            <xsl:when test=\"@decorative = 'yes'\">\n                <xsl:attribute name=\"alt\"/>\n            </xsl:when>\n            <xsl:when test=\"shortdescription\">\n                <xsl:attribute name=\"alt\">\n                    <xsl:apply-templates select=\"shortdescription\"/>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:when test=\"description\">\n                <xsl:attribute name=\"alt\">\n                    <xsl:text>described in detail following the image</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"aria-describedby\">\n                    <xsl:apply-templates select=\".\" mode=\"describedby-id\"/>\n                </xsl:attribute>\n            </xsl:when>\n        </xsl:choose>\n    </img>\n</xsl:template>\n\n<!-- Instead of linking to an svg file as in the modal svg-png-wrapper above  -->\n<!-- we can include the svg directly in the html document, which is what      -->\n<!-- this does.  Used with b-portable-html is true, at least now (2025-03-04) -->\n<xsl:template match=\"image\" mode=\"svg-embedded\">\n    <!-- Get the filename of the generated svg file -->\n    <xsl:variable name=\"svg-source-filename\">\n        <xsl:value-of select=\"$generated-directory-source\" />\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:choose>\n                <xsl:when test=\"latex-image\">\n                    <xsl:text>latex-image/</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"pf:prefigure\">\n                    <xsl:text>prefigure/</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:if>\n        <xsl:apply-templates select=\"latex-image|pf:prefigure\" mode=\"image-source-basename\"/>\n        <xsl:text>.svg</xsl:text>\n    </xsl:variable>\n    <!-- Get the SVG file as an XML document -->\n    <xsl:variable name=\"image-svg-xml\" select=\"document($svg-source-filename, $original)\" />\n    <!-- Create an SVG element with the contents of the SVG file -->\n    <svg xmlns=\"http://www.w3.org/2000/svg\">\n        <xsl:copy-of select=\"$image-svg-xml/svg:svg/namespace::*\"/>\n        <xsl:copy-of select=\"$image-svg-xml/svg:svg/@version\"/>\n        <!-- Keep the viewbox, or create one based on the height and width -->\n        <xsl:choose>\n            <xsl:when test=\"$image-svg-xml/svg:svg/@viewBox\">\n                <xsl:attribute name=\"viewBox\">\n                    <xsl:value-of select=\"$image-svg-xml/svg:svg/@viewBox\"/>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:attribute name=\"viewBox\">\n                    <xsl:text>0 0 </xsl:text>\n                    <xsl:value-of select=\"$image-svg-xml/svg:svg/@width\"/>\n                    <xsl:text> </xsl:text>\n                    <xsl:value-of select=\"$image-svg-xml/svg:svg/@height\"/>\n                </xsl:attribute>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:copy-of select=\"$image-svg-xml/svg:svg/@viewBox\"/>\n        <xsl:attribute name=\"role\">\n            <xsl:text>img</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"class\">\n            <xsl:text>contained</xsl:text>\n        </xsl:attribute>\n        <xsl:choose>\n            <xsl:when test=\"@decorative = 'yes'\">\n                <xsl:attribute name=\"aria-hidden\">\n                    <xsl:text>true</xsl:text>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:when test=\"shortdescription\">\n                <xsl:attribute name=\"aria-label\">\n                    <xsl:apply-templates select=\"shortdescription\"/>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:when test=\"description\">\n                <xsl:attribute name=\"aria-describedby\">\n                    <xsl:apply-templates select=\".\" mode=\"describedby-id\"/>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:otherwise/>\n        </xsl:choose>\n        <xsl:if test=\"shortdescription\">\n            <title>\n                <xsl:apply-templates select=\"shortdescription\"/>\n            </title>\n        </xsl:if>\n        <xsl:if test=\"description\">\n            <desc>\n                <xsl:apply-templates select=\"description\"/>\n            </desc>\n        </xsl:if>\n        <!-- Need to add unique ids to latex-image svgs (prefigure does this automatically) -->\n        <xsl:choose>\n            <xsl:when test=\"latex-image\">\n                <xsl:apply-templates select=\"$image-svg-xml/svg:svg/*\" mode=\"svg-unique-ids\">\n                    <xsl:with-param name=\"svg-unique-id\">\n                        <xsl:value-of select=\"@unique-id\"/>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:copy-of select=\"$image-svg-xml/svg:svg/*\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </svg>\n</xsl:template>\n\n<!-- When embedding multiple svgs in a single page, the ids used     -->\n<!-- to refer to svg elements can collide.  This recursively adds    -->\n<!-- a unique id (per svg) suffix to all id and xlink:href elements. -->\n\n<xsl:template match=\"node()|@*\" mode=\"svg-unique-ids\">\n    <xsl:param name=\"svg-unique-id\"/>\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"svg-unique-ids\">\n            <xsl:with-param name=\"svg-unique-id\" select=\"$svg-unique-id\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"@id|@xlink:href\" mode=\"svg-unique-ids\">\n    <xsl:param name=\"svg-unique-id\"/>\n    <xsl:attribute name=\"{local-name()}\">\n        <xsl:value-of select=\".\"/>\n        <xsl:text>_</xsl:text>\n        <xsl:value-of select=\"$svg-unique-id\"/>\n    </xsl:attribute>\n</xsl:template>\n\n\n<xsl:template match=\"image|interactive[@platform]\" mode=\"description\">\n    <xsl:if test=\"description\">\n        <!-- @aria-live means screenreaders will make announcements -->\n        <details class=\"image-description\" aria-live=\"polite\">\n            <summary title=\"details\">\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'info'\"/>\n                </xsl:call-template>\n            </summary>\n            <div>\n                <xsl:attribute name=\"id\">\n                    <xsl:apply-templates select=\".\" mode=\"describedby-id\"/>\n                </xsl:attribute>\n                <xsl:apply-templates select=\"description\"/>\n            </div>\n        </details>\n    </xsl:if>\n</xsl:template>\n\n<!-- Utility template so \"aria-describedby\" values are consistent -->\n<xsl:template match=\"image|interactive[@platform]\" mode=\"describedby-id\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n    <xsl:text>-description</xsl:text>\n</xsl:template>\n\n<!-- Diagacess Instructions -->\n\n<xsl:template name=\"diagacess-instructions\">\n    <details class=\"instructions diagcess__instructions\">\n        <summary>Diagram Exploration Keyboard Controls</summary>\n        <div class=\"diagcess-navigation-controls\">\n            <table>\n            <thead>\n            <tr>\n            <th>Key</th>\n            <th>Action</th>\n            </tr>\n            </thead>\n            <tbody>\n            <tr>\n            <td>Enter, A</td>\n            <td>Activate keyboard driven exploration</td>\n            </tr>\n            <tr>\n            <td>B</td>\n            <td>Activate menu driven exploration</td>\n            </tr>\n            <tr>\n            <td>Escape</td>\n            <td>Leave exploration mode</td>\n            </tr>\n            <tr>\n            <td>Cursor down</td>\n            <td>Explore next lower level</td>\n            </tr>\n            <tr>\n            <td>Cursor up</td>\n            <td>Explore next upper level</td>\n            </tr>\n            <tr>\n            <td>Cursor right</td>\n            <td>Explore next element on level</td>\n            </tr>\n            <tr>\n            <td>Cursor left</td>\n            <td>Explore previous element on level</td>\n            </tr>\n            <tr>\n            <td>X</td>\n            <td>Toggle expert mode</td>\n            </tr>\n            <tr>\n            <td>W</td>\n            <td>Extra details if available</td>\n            </tr>\n            <tr>\n            <td>Space</td>\n            <td>Repeat speech</td>\n            </tr>\n            <tr>\n            <td>M</td>\n            <td>Activate step magnification</td>\n            </tr>\n            <tr>\n            <td>Comma</td>\n            <td>Activate direct magnification</td>\n            </tr>\n            <tr>\n            <td>N</td>\n            <td>Deactivate magnification</td>\n            </tr>\n            <tr>\n            <td>Z</td>\n            <td>Toggle subtitles</td>\n            </tr>\n            <tr>\n            <td>C</td>\n            <td>Cycle contrast settings</td>\n            </tr>\n            <tr>\n            <td>T</td>\n            <td>Monochrome colours</td>\n            </tr>\n            <tr>\n            <td>L</td>\n            <td>Toggle language (if available)</td>\n            </tr>\n            <tr>\n            <td>K</td>\n            <td>Kill current sound</td>\n            </tr>\n            <tr>\n            <td>Y</td>\n            <td>Stop sound output</td>\n            </tr>\n            <tr>\n            <td>O</td>\n            <td>Start and stop sonification</td>\n            </tr>\n            <tr>\n            <td>P</td>\n            <td>Repeat sonification output</td>\n            </tr>\n            </tbody>\n            </table>\n        </div>\n    </details>\n</xsl:template>\n\n\n<!-- Image Archives -->\n<!-- Under an image provide a set of (download) links              -->\n<!-- for archival versions of the image in different formats       -->\n<!--                                                               -->\n<!-- 1.  @archive is a space-delimited list of file suffixes       -->\n<!-- 2.  Author must ensure the versions are next to file employed -->\n<!-- 3.  Formatting and case of suffixes is author's choice        -->\n<!-- 4.  Order in suffix list is respected in output               -->\n<!-- 5.  Per-image, with global spec in \"docinfo/images/archive\"   -->\n<!--                                                               -->\n<!-- The originating image template knows/computes the filename,   -->\n<!-- so this template accepts the filename, sans period and        -->\n<!-- extension, to transmit to the actual link production where    -->\n<!-- different extensions are added                                -->\n<!--                                                               -->\n<xsl:template match=\"image\" mode=\"archive\">\n    <xsl:param name=\"base-pathname\" />\n    <!-- Determine requested archive links            -->\n    <!-- Local request on image overrides global      -->\n    <!-- If $formats ends empty, then nothing happens -->\n    <xsl:variable name=\"formats\">\n        <xsl:choose>\n            <!-- local, given on image, including suppression -->\n            <xsl:when test=\"@archive\">\n                <xsl:value-of select=\"normalize-space(@archive)\" />\n            </xsl:when>\n            <!-- semi-local, semi-global via subtree specification     -->\n            <!-- last in list that contains the image wins             -->\n            <!-- Documented heavily as first \"mid-range\" specification -->\n            <!-- A single @from puts us in mid-range mode              -->\n            <xsl:when test=\"$docinfo/images/archive[@from]\">\n                <!-- context of next \"select\" filters is \"archive\" -->\n                <!-- so save off the present context, the \"image\"  -->\n                <xsl:variable name=\"the-image\" select=\".\" />\n                <!-- Filter all of the \"archive\" in docinfo with @from      -->\n                <!-- Subset occurs in document order                        -->\n                <!-- Form two subtrees of all desendant nodes, rooted at    -->\n                <!--   (1) the image node                                   -->\n                <!--   (2) the node pointed to by @from                     -->\n                <!-- The pipe forms a union of the nodes in the subtrees    -->\n                <!-- \"image\" is on the subtree @from iff union is no larger -->\n                <xsl:variable name=\"containing-archives\"\n                    select=\"$docinfo/images/archive[@from][count($the-image/descendant-or-self::node()|id(@from)/descendant-or-self::node())=count(id(@from)/descendant-or-self::node())]\" />\n                <!-- We mimic XSL and the last applicable \"archive\" is effective -->\n                <!-- This way, big subtrees go first, included subtrees refine   -->\n                <!-- @from can be an empty string and turn off the behavior      -->\n                <!-- We grab the content of the last \"archive\" to be the formats -->\n                <xsl:value-of select=\"$containing-archives[last()]/.\" />\n            </xsl:when>\n            <!-- global, presumes one only, ignores subtree versions -->\n            <xsl:when test=\"$docinfo/images/archive[not(@from)]\">\n                <xsl:value-of select=\"normalize-space($docinfo/images/archive)\" />\n            </xsl:when>\n            <!-- nothing begets nothing -->\n            <xsl:otherwise />\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:if test=\"not($formats = '')\">\n        <!-- Build the links with recursion through formats    -->\n        <!-- First wrap resulting links in overall styling div -->\n        <xsl:element name=\"div\">\n            <xsl:attribute name=\"class\">\n                <xsl:text>image-archive</xsl:text>\n            </xsl:attribute>\n            <!-- Add trailing space as marker for recursion finale -->\n            <xsl:call-template name=\"archive-links\">\n                <xsl:with-param name=\"base-pathname\" select=\"$base-pathname\" />\n                <xsl:with-param name=\"formats\" select=\"concat($formats, ' ')\" />\n            </xsl:call-template>\n        </xsl:element>\n    </xsl:if>\n</xsl:template>\n\n<!-- $base-pathname has no concluding -->\n<!-- period, so we add it here        -->\n<xsl:template name=\"archive-links\">\n    <xsl:param name=\"base-pathname\" />\n    <xsl:param name=\"formats\" />\n    <!-- stop recursion if empty (note extra space added in initial call) -->\n    <xsl:if test=\"not($formats = '')\">\n        <xsl:variable name=\"next-format\" select=\"substring-before($formats, ' ')\" />\n        <xsl:variable name=\"remaining-formats\" select=\"substring-after($formats, ' ')\" />\n        <!-- link to the file, author's responsibility  -->\n        <!-- add period, and the suffix to rest of path -->\n        <!-- text of link is the format suffix verbatim -->\n        <xsl:element name=\"a\">\n            <xsl:attribute name=\"href\">\n                <xsl:value-of select=\"$base-pathname\" />\n                <xsl:text>.</xsl:text>\n                <xsl:value-of select=\"$next-format\" />\n            </xsl:attribute>\n            <xsl:value-of select=\"$next-format\" />\n        </xsl:element>\n        <!-- recurse through remaining formats -->\n        <xsl:call-template name=\"archive-links\">\n            <xsl:with-param name=\"base-pathname\" select=\"$base-pathname\" />\n            <xsl:with-param name=\"formats\" select=\"$remaining-formats\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- SideBySide Layouts -->\n<!-- ################## -->\n\n<!-- See xsl/pretext-common.xsl for descriptions of the  -->\n<!-- four modal templates which must be implemented here  -->\n<!-- The main templates for \"sidebyside\" and \"sbsgroup\"   -->\n<!-- are in xsl/pretext-common.xsl, as befits containers -->\n\n\n<xsl:template name=\"sbsgroup-wrapper\">\n    <xsl:param name=\"sbsgroup-content\"/>\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>sbsgroup</xsl:text>\n        </xsl:attribute>\n        <xsl:copy-of select=\"$sbsgroup-content\"/>\n    </xsl:element>\n</xsl:template>\n\n<!-- When we use CSS margins (or padding), then percentage        -->\n<!-- widths are relative to the remaining space.  This utility    -->\n<!-- takes in a width relative to full-text-width and the margins -->\n<!-- (both with \"%\" attached) and returns the larger percentage   -->\n<!-- of the remaining space.                                      -->\n<xsl:template name=\"relative-width\">\n    <xsl:param name=\"width\" />\n    <xsl:param name=\"left-margin\" />\n    <xsl:param name=\"right-margin\" />\n    <xsl:value-of select=\"(100 * substring-before($width, '%')) div (100 - substring-before($left-margin, '%') - substring-before($right-margin, '%'))\" />\n    <xsl:text>%</xsl:text>\n</xsl:template>\n\n<!-- generic \"panel-panel\" template            -->\n<!-- makes a \"sbspanel\" div of specified width -->\n<!-- calls modal \"panel-html-box\" for contents -->\n<!-- fixed-width class is additional           -->\n<xsl:template match=\"*\" mode=\"panel-panel\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"heading-level\"/>\n\n    <xsl:param name=\"width\" />\n    <xsl:param name=\"left-margin\" />\n    <xsl:param name=\"right-margin\" />\n    <xsl:param name=\"valign\" />\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>sbspanel</xsl:text>\n            <xsl:if test=\"self::table or self::tabular\">\n                <xsl:text> fixed-width</xsl:text>\n            </xsl:if>\n            <!-- assumes \"sbspanel\" class set vertical direction -->\n            <!-- the CSS class equals the source attribute, but that may change -->\n            <xsl:choose>\n                <xsl:when test=\"$valign = 'top'\">\n                    <xsl:text> sbspanel--top top</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$valign = 'middle'\">\n                    <xsl:text> sbspanel--middle middle</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$valign = 'bottom'\">\n                    <xsl:text> sbspanel--bottom bottom</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:attribute name=\"style\">\n            <xsl:if test=\"$sbsdebug\">\n                <xsl:text>box-sizing: border-box;</xsl:text>\n                <xsl:text>-moz-box-sizing: border-box;</xsl:text>\n                <xsl:text>-webkit-box-sizing: border-box;</xsl:text>\n                <xsl:text>border: 2px solid black;</xsl:text>\n            </xsl:if>\n        </xsl:attribute>\n        <!-- Realize each panel's object -->\n        <xsl:apply-templates select=\".\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"width\" select=\"$width\" />\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </xsl:element>\n</xsl:template>\n\n<!-- We take in all three rows and package       -->\n<!-- them up inside an overriding \"sidebyside\"   -->\n<!-- div containing three \"sbsrow\" divs.  Purely -->\n<!--  a container, never a target, so no xml:id  -->\n<!-- in source, so no HTML id on div.sidebyside  -->\n<xsl:template match=\"sidebyside\" mode=\"compose-panels\">\n    <xsl:param name=\"layout\" />\n    <xsl:param name=\"panels\" />\n\n    <xsl:variable name=\"left-margin\"  select=\"$layout/left-margin\" />\n    <xsl:variable name=\"right-margin\" select=\"$layout/right-margin\" />\n\n    <xsl:variable name=\"column-widths\">\n        <xsl:for-each select=\"$layout/width\">\n            <xsl:call-template name=\"relative-width\">\n                <xsl:with-param name=\"width\" select=\".\" />\n                <xsl:with-param name=\"left-margin\"  select=\"$left-margin\" />\n                <xsl:with-param name=\"right-margin\" select=\"$right-margin\" />\n            </xsl:call-template>\n            <xsl:if test=\"following-sibling::width\">\n                <xsl:text> </xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:variable>\n\n    <!-- A \"sidebyside\" div, to contain headers, -->\n    <!-- panels, captions rows as \"sbsrow\" divs  -->\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>sidebyside</xsl:text>\n        </xsl:attribute>\n        <xsl:if test=\"$sbsdebug\">\n            <xsl:attribute name=\"style\">\n                <xsl:text>box-sizing: border-box;</xsl:text>\n                <xsl:text>-moz-box-sizing: border-box;</xsl:text>\n                <xsl:text>-webkit-box-sizing: border-box;</xsl:text>\n                <xsl:text>border: 2px solid purple;</xsl:text>\n            </xsl:attribute>\n        </xsl:if>\n\n        <!-- Panels in an \"sbsrow\" div, always -->\n        <!-- newline inserted to encourage formatted output -->\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:element name=\"div\">\n            <xsl:attribute name=\"class\">\n                <xsl:text>sbsrow</xsl:text>\n            </xsl:attribute>\n            <!-- margins are custom from source -->\n            <xsl:attribute name=\"style\">\n                <xsl:text>margin-left:</xsl:text>\n                <xsl:value-of select=\"$left-margin\" />\n                <xsl:text>;</xsl:text>\n                <xsl:text>margin-right:</xsl:text>\n                <xsl:value-of select=\"$right-margin\" />\n                <xsl:text>;</xsl:text>\n                <xsl:text>grid-template-columns:</xsl:text>\n                <xsl:value-of select=\"$column-widths\" />\n                <xsl:text>;</xsl:text>\n                <xsl:text>column-gap:</xsl:text>\n                <xsl:value-of select=\"$layout/space-width\" />\n                <xsl:text>;</xsl:text>\n                <xsl:if test=\"$sbsdebug\">\n                    <xsl:text>box-sizing: border-box;</xsl:text>\n                    <xsl:text>-moz-box-sizing: border-box;</xsl:text>\n                    <xsl:text>-webkit-box-sizing: border-box;</xsl:text>\n                    <xsl:text>border: 2px solid green;</xsl:text>\n                    <xsl:text>background: LightGray;</xsl:text>\n                    <xsl:text>background-clip: content-box;</xsl:text>\n                </xsl:if>\n            </xsl:attribute>\n            <xsl:copy-of select=\"$panels\" />\n        </xsl:element>\n\n    </xsl:element>\n</xsl:template>\n\n<!-- We do not want a proliferation of instructions for keyboard        -->\n<!-- shortciuts for exploring PreFigure diagrams with the diagacess     -->\n<!-- library.  See hooks for \"sidebyside\" and \"sbsgroup\" explained      -->\n<!-- in pretext-common.xsl.  Logic here is to follow a \"sidebyside\"     -->\n<!-- with any one panel holding an explorable diagram, unless it is     -->\n<!-- a constituent of a \"sbsgroup\".  Once at the conclusion of a        -->\n<!-- \"sbsgroup\" it is time to present instructions.  Note that these    -->\n<!-- instructions are routinely held up right after a diagram in        -->\n<!-- these scenarios.                                                   -->\n<!-- NB: we tried to add these instructions after an \"apply-imports\"    -->\n<!-- in new templates overriding those in -common, but it appears we    -->\n<!-- cannot pass parameters in, so duplicate content inside             -->\n<!-- \"sidebyside\" (such as formulated for xref knowls) ended up getting -->\n<!-- duplicate HTML id.  So we had to resort to specialty hooks.        -->\n\n<xsl:template match=\"sidebyside\" mode=\"post-sidebyside\">\n    <xsl:if test=\".//pf:annotations and not(parent::sbsgroup)\">\n        <xsl:call-template name=\"diagacess-instructions\"/>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"sbsgroup\" mode=\"post-sbsgroup\">\n    <xsl:if test=\".//pf:annotations\">\n        <xsl:call-template name=\"diagacess-instructions\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- Audio & Video -->\n<!-- ############# -->\n\n<!-- Audio and video are similar enough that we share    -->\n<!-- some routines under the general heading of \"media\", -->\n<!-- or else we present them here alongside, due to the  -->\n<!-- similarities.                                       -->\n\n<xsl:template match=\"video\">\n    <!-- This is an RTF of the object, it is important that it returns -->\n    <!-- 100% width as default, so when the object is in an enclosing  -->\n    <!-- \"sidebyside\" only the @aspect is on the object and hence a    -->\n    <!-- $layout/height is computed properly.                          -->\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\">\n            <xsl:with-param name=\"default-aspect\" select=\"'16:9'\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <!-- div is constraint/positioning for contained video   -->\n    <!-- Use of \"padding-top\" for responsive iframes is from -->\n    <!-- https://davidwalsh.name/responsive-iframes          -->\n    <div class=\"video-box\">\n        <xsl:attribute name=\"style\">\n            <xsl:text>width: </xsl:text>\n            <xsl:value-of select=\"$layout/width\"/>\n            <xsl:text>%;</xsl:text>\n            <!-- surrogate for height, except on Runestone -->\n            <xsl:if test=\"not($b-host-runestone and @youtube)\">\n                <xsl:text>padding-top: </xsl:text>\n                <xsl:value-of select=\"$layout/height\"/>\n                <xsl:text>%;</xsl:text>\n            </xsl:if>\n            <xsl:text> margin-left: </xsl:text>\n            <xsl:value-of select=\"$layout/left-margin\"/>\n            <xsl:text>%;</xsl:text>\n            <xsl:text> margin-right: </xsl:text>\n            <xsl:value-of select=\"$layout/right-margin\"/>\n            <xsl:text>%;</xsl:text>\n        </xsl:attribute>\n        <xsl:choose>\n            <xsl:when test=\"$b-host-runestone and @youtube\">\n                <!-- we compute pixels in the parameter value, which become   -->\n                <!-- YT-specific attributes, so we can't use general template -->\n                <!-- providing standard attributes                            -->\n                <xsl:apply-templates select=\".\" mode=\"runestone-youtube-embed\">\n                    <xsl:with-param name=\"width\" select=\"($layout/width * $design-width) div 100\"/>\n                    <xsl:with-param name=\"height\" select=\"($layout/height * $design-width) div 100\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"media-embed\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </div>\n    <!-- Always build a standalone page, PDF links to these -->\n    <!-- The only exception is when building portable html  -->\n    <xsl:if test=\"not($b-portable-html)\">\n        <xsl:apply-templates select=\".\" mode=\"media-standalone-page\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"audio\">\n    <!-- This is an RTF of the object, it is important that it returns -->\n    <!-- 100% width as default, so when the object is in an enclosing  -->\n    <!-- \"sidebyside\" it fills the panel.                              -->\n    <!-- Note: we may want to support images as posters, so we may  -->\n    <!-- want to support an aspect-ratio, or perhaps the image will -->\n    <!-- define the size?                                           -->\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\"/>\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <!-- div is constraint/positioning for contained audio -->\n    <div class=\"audio-box\">\n        <xsl:attribute name=\"style\">\n            <xsl:text>width: </xsl:text>\n            <xsl:value-of select=\"$layout/width\"/>\n            <xsl:text>%;</xsl:text>\n            <xsl:text> margin-left: </xsl:text>\n            <xsl:value-of select=\"$layout/left-margin\"/>\n            <xsl:text>%;</xsl:text>\n            <xsl:text> margin-right: </xsl:text>\n            <xsl:value-of select=\"$layout/right-margin\"/>\n            <xsl:text>%;</xsl:text>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"media-embed\"/>\n    </div>\n    <!-- Always build a standalone page, PDF links to these -->\n    <!-- (except when building portable html)               -->\n    <xsl:if test=\"not($b-portable-html)\">\n        <xsl:apply-templates select=\".\" mode=\"media-standalone-page\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- Formerly a \"pop-out\" page, now a \"standalone\" page     -->\n<!-- Has autoplay on since a reader has elected to go there -->\n<!-- TODO: override preview, since it just plays, pass 'default -->\n<xsl:template match=\"audio|video\" mode=\"media-standalone-page\">\n    <xsl:apply-templates select=\".\" mode=\"standalone-page\">\n        <xsl:with-param name=\"content\">\n            <!-- display preview, and enable autoplay  -->\n            <!-- since reader has elected this page    -->\n            <div style=\"text-align: center;\">Reloading this page will reset a start location</div>\n            <div>\n                <xsl:attribute name=\"class\">\n                    <xsl:choose>\n                        <xsl:when test=\"self::audio\">\n                            <xsl:text>audio-box</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"self::video\">\n                            <xsl:text>video-box</xsl:text>\n                        </xsl:when>\n                    </xsl:choose>\n                </xsl:attribute>\n                <xsl:attribute name=\"style\">\n                    <xsl:text>width: </xsl:text>\n                    <xsl:text>100%;</xsl:text>\n                    <xsl:if test=\"self::video\">\n                        <xsl:variable name=\"rtf-layout\">\n                            <xsl:apply-templates select=\".\" mode=\"layout-parameters\">\n                                <xsl:with-param name=\"default-aspect\" select=\"'16:9'\"/>\n                            </xsl:apply-templates>\n                        </xsl:variable>\n                        <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n                        <!-- get back the aspect ratio via height and width of layout, -->\n                        <!-- which are both defined for a video (but not an audio)     -->\n                        <!-- Pairs with 100% width above                               -->\n                        <xsl:variable name=\"height-percent\" select=\"100 * ($layout/height div $layout/width)\"/>\n                        <xsl:text>padding-top: </xsl:text>\n                        <xsl:value-of select=\"$height-percent\"/>\n                        <xsl:text>%;</xsl:text>\n                    </xsl:if>\n                </xsl:attribute>\n                <xsl:apply-templates select=\".\" mode=\"media-embed\">\n                    <xsl:with-param name=\"preview\" select=\"'false'\" />\n                    <xsl:with-param name=\"autoplay\" select=\"'true'\" />\n                </xsl:apply-templates>\n            </div>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A \"Standalone\" Page -->\n<!-- Formerly a \"pop-out\" page, now a \"standalone\" page    -->\n<!-- (A bit rough - this could be improved, consolidated)  -->\n<!-- no extra libraries, no sidebar                        -->\n<!-- 840px available (~900 - 2*30)                         -->\n<!-- Page's  filename comes from modal template on context -->\n<!-- TODO:  one page template, super-parameterized      -->\n<!-- TODO:  trash navigation further in masthead        -->\n<!-- TODO:  replace libraries by hooks to add some back -->\n<xsl:template match=\"*\" mode=\"standalone-page\">\n    <xsl:param name=\"content\" select=\"''\" />\n    <xsl:variable name=\"filename\">\n        <xsl:apply-templates select=\".\" mode=\"standalone-filename\" />\n    </xsl:variable>\n    <exsl:document href=\"{$filename}\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n        <xsl:call-template name=\"converter-blurb-html-no-date\"/>\n        <html>\n            <xsl:call-template name=\"language-attributes\"/>\n            <xsl:call-template name=\"pretext-advertisement-and-style\"/>\n            <!-- Open Graph Protocol only in \"meta\" elements, within \"head\" -->\n            <head xmlns:og=\"http://ogp.me/ns#\" xmlns:book=\"https://ogp.me/ns/book#\">\n                <title>\n                    <!-- Leading with initials is useful for small tabs -->\n                    <xsl:if test=\"$docinfo/initialism\">\n                        <xsl:apply-templates select=\"$docinfo/initialism\" />\n                        <xsl:text> </xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"title-plain\" />\n                </title>\n                <!-- canonical link for better SEO -->\n                <xsl:call-template name=\"canonical-link\">\n                    <xsl:with-param name=\"filename\" select=\"$filename\"/>\n                </xsl:call-template>\n                <!-- grab the contents every page gets -->\n                <xsl:copy-of select=\"$file-wrap-basic-head-cache\"/>\n                <!-- now do anything that is or could be page-specific and comes after cache -->\n                <xsl:apply-templates select=\".\" mode=\"knowl\" />\n            </head>\n            <body>\n                <!-- potential document-id per-page -->\n                <xsl:call-template name=\"document-id\"/>\n                <!-- React flag -->\n                <xsl:call-template name=\"react-in-use-flag\"/>\n                <!-- the first class controls the default icon -->\n                <xsl:attribute name=\"class\">\n                    <xsl:choose>\n                        <xsl:when test=\"$root/book\">pretext book</xsl:when>\n                        <xsl:when test=\"$root/article\">pretext article</xsl:when>\n                    </xsl:choose>\n                    <!-- ignore MathJax signals everywhere, then enable selectively -->\n                    <xsl:text> ignore-math</xsl:text>\n                    <xsl:text> standalone-page</xsl:text>\n                </xsl:attribute>\n                <!-- assistive \"Skip to main content\" link    -->\n                <!-- this *must* be first for maximum utility -->\n                <xsl:call-template name=\"skip-to-content-link\" />\n                <xsl:call-template name=\"latex-macros\" />\n                 <header id=\"ptx-masthead\" class=\"ptx-masthead\">\n                    <div class=\"ptx-banner\">\n                        <xsl:call-template name=\"brand-logo\" />\n                        <div class=\"title-container\">\n                            <h1 class=\"heading\">\n                                <xsl:variable name=\"root-filename\">\n                                    <xsl:apply-templates select=\"$document-root\" mode=\"containing-filename\" />\n                                </xsl:variable>\n                                <a href=\"{$root-filename}\">\n                                    <xsl:variable name=\"b-has-subtitle\" select=\"boolean($document-root/subtitle)\"/>\n                                    <span class=\"title\">\n                                        <!-- Do not use shorttitle in masthead,  -->\n                                        <!-- which is much like cover of a book  -->\n                                        <xsl:apply-templates select=\"$document-root\" mode=\"title-simple\" />\n                                    </span>\n                                    <xsl:if test=\"$b-has-subtitle and $b-html-banner-subtitle\">\n                                        <xsl:text> </xsl:text>\n                                        <span class=\"subtitle\">\n                                            <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\" />\n                                        </span>\n                                    </xsl:if>\n                                </a>\n                            </h1>\n                            <!-- Serial list of authors/editors -->\n                            <xsl:if test=\"$b-html-banner-byline\">\n                                <p class=\"byline\">\n                                    <xsl:apply-templates select=\"$bibinfo/author\" mode=\"name-list\"/>\n                                    <xsl:apply-templates select=\"$bibinfo/editor\" mode=\"name-list\"/>\n                                </p>\n                            </xsl:if>\n                        </div>  <!-- title-container -->\n                    </div> <!-- banner -->\n                </header> <!-- masthead -->\n                <div class=\"ptx-page\">\n                    <!-- With sidebars killed, this stuff is extraneous     -->\n                    <!-- <xsl:apply-templates select=\".\" mode=\"sidebars\" /> -->\n                    <main class=\"ptx-main\">\n                        <div id=\"ptx-content\">\n                            <!-- This is content passed in as a parameter -->\n                            <xsl:copy-of select=\"$content\" />\n                        </div>\n                    </main>\n                </div>\n                <xsl:copy-of select=\"$file-wrap-basic-endbody-cache\"/>\n            </body>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n<xsl:template name=\"generic-preview-svg\">\n    <!-- viewbox was square (0,0), 96x96, now clipped 14 above and below                   -->\n    <!-- preserveAspectRatio=\"none\" makes it amenable to matching video it hides           -->\n    <!-- SVG scaling, comprehensive: https://css-tricks.com/scale-svg/                     -->\n    <!-- Accessed: 2017-08-08                                                              -->\n    <!-- Page: https://commons.wikimedia.org/wiki/File:YouTube_Play_Button.svg             -->\n    <!-- File: https://upload.wikimedia.org/wikipedia/commons/d/d1/YouTube_Play_Button.svg -->\n    <!-- License text:  This image only consists of simple geometric shapes or text.       -->\n    <!-- It does not meet the threshold of originality needed for copyright protection,    -->\n    <!-- and is therefore in the public domain.                                            -->\n    <!-- See  xsl/support/play-button/README.md  for a description of the static version   -->\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 14 96 68\" style=\"cursor:pointer; position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" preserveAspectRatio=\"none\">\n        <path fill=\"#e62117\" d=\"M94.98,28.84c0,0-0.94-6.6-3.81-9.5c-3.64-3.81-7.72-3.83-9.59-4.05c-13.4-0.97-33.52-0.85-33.52-0.85s-20.12-0.12-33.52,0.85c-1.87,0.22-5.95,0.24-9.59,4.05c-2.87,2.9-3.81,9.5-3.81,9.5S0.18,36.58,0,44.33v7.26c0.18,7.75,1.14,15.49,1.14,15.49s0.93,6.6,3.81,9.5c3.64,3.81,8.43,3.69,10.56,4.09c7.53,0.72,31.7,0.89,32.54,0.9c0.01,0,20.14,0.03,33.54-0.94c1.87-0.22,5.95-0.24,9.59-4.05c2.87-2.9,3.81-9.5,3.81-9.5s0.96-7.75,1.02-15.49v-7.26C95.94,36.58,94.98,28.84,94.98,28.84z M38.28,61.41v-27l25.74,13.5L38.28,61.41z\"/>\n    </svg>\n</xsl:template>\n\n<!-- Take <svg> element above, remove width and height attributes  -->\n<!-- (not ever needed???), compact to one long string.             -->\n<!-- URL encode via: https://meyerweb.com/eric/tools/dencoder/     -->\n<!-- Then add a bit of voodoo, and this may be used as the value   -->\n<!-- of the HTML5 video/@poster attribute (and other places?)      -->\n<xsl:variable name=\"generic-preview-svg-data-uri\">\n    <xsl:text>data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%2014%2096%2068%22%20style%3D%22cursor%3Apointer%3B%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22%23e62117%22%20d%3D%22M94.98%2C28.84c0%2C0-0.94-6.6-3.81-9.5c-3.64-3.81-7.72-3.83-9.59-4.05c-13.4-0.97-33.52-0.85-33.52-0.85s-20.12-0.12-33.52%2C0.85c-1.87%2C0.22-5.95%2C0.24-9.59%2C4.05c-2.87%2C2.9-3.81%2C9.5-3.81%2C9.5S0.18%2C36.58%2C0%2C44.33v7.26c0.18%2C7.75%2C1.14%2C15.49%2C1.14%2C15.49s0.93%2C6.6%2C3.81%2C9.5c3.64%2C3.81%2C8.43%2C3.69%2C10.56%2C4.09c7.53%2C0.72%2C31.7%2C0.89%2C32.54%2C0.9c0.01%2C0%2C20.14%2C0.03%2C33.54-0.94c1.87-0.22%2C5.95-0.24%2C9.59-4.05c2.87-2.9%2C3.81-9.5%2C3.81-9.5s0.96-7.75%2C1.02-15.49v-7.26C95.94%2C36.58%2C94.98%2C28.84%2C94.98%2C28.84z%20M38.28%2C61.41v-27l25.74%2C13.5L38.28%2C61.41z%22%2F%3E%3C%2Fsvg%3E</xsl:text>\n</xsl:variable>\n\n<!-- LaTeX watermark uses default 5cm font which is then scaled by watermark.scale -->\n<!-- We copy that here. We also copy the 45 degree angle.                          -->\n<!-- Color rgb(204,204,204) matches LaTeX 80% grayscale.                           -->\n<xsl:variable name=\"watermark-svg\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" height=\"600\" width=\"600\">\n        <text x=\"50%\" y=\"50%\" text-anchor=\"middle\" transform=\"rotate(-45,300,300)\" fill=\"rgb(204,204,204)\" style=\"font-family:sans-serif; font-size:{5*$watermark-scale}cm;\">\n            <xsl:value-of select=\"$watermark-text\"/>\n        </text>\n    </svg>\n</xsl:variable>\n\n<xsl:variable name=\"watermark-css\">\n    <xsl:text>background-image:url('data:image/svg+xml;charset=utf-8,</xsl:text>\n    <xsl:apply-templates select=\"exsl:node-set($watermark-svg)\" mode=\"xml-to-string\">\n        <!-- as-authored-source to preserve namespace on svg -->\n        <xsl:with-param name=\"as-authored-source\" select=\"true()\"/>\n    </xsl:apply-templates>\n    <xsl:text>');</xsl:text>\n    <xsl:text>background-position:center top;background-repeat:repeat-y;</xsl:text>\n</xsl:variable>\n\n<!-- NB: here, and elesewhere, references -->\n<!-- to \"video\" should become \"media\"     -->\n<xsl:template match=\"audio[@source|@href]\" mode=\"media-embed\">\n    <xsl:param name=\"preview\" select=\"'false'\" />\n    <xsl:param name=\"autoplay\" select=\"'false'\" />\n\n    <xsl:variable name=\"location\">\n        <xsl:choose>\n            <xsl:when test=\"@href\">\n                <xsl:value-of select=\"@href\"/>\n            </xsl:when>\n            <!-- Now, must have a @source. For backwards -->\n            <!-- compatibility, consider a @source that  -->\n            <!-- really appears to be a @href. Might be  -->\n            <!-- http or https.                          -->\n            <xsl:when test=\"substring(@source,1,4) = 'http'\">\n                <xsl:value-of select=\"@source\"/>\n            </xsl:when>\n            <!-- else a local filename in @source -->\n            <xsl:otherwise>\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"@source\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:element name=\"audio\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:attribute name=\"class\">\n            <xsl:text>audio</xsl:text>\n        </xsl:attribute>\n        <!-- empty forms work as boolean switches -->\n        <xsl:attribute name=\"controls\"/>\n        <xsl:if test=\"$autoplay = 'true'\">\n            <xsl:attribute name=\"autoplay\" />\n        </xsl:if>\n        <!-- @poster, or equivalent does not seem trivial -->\n        <!-- Construct the HTML5 source URL(s)                  -->\n        <!-- If this gets refactored, it could be best to form  -->\n        <!-- base, extension, query, fragment strings/variables -->\n        <!-- First, grab extension of source URL in PTX @source -->\n        <xsl:variable name=\"extension\">\n            <xsl:call-template name=\"file-extension\">\n                <xsl:with-param name=\"filename\" select=\"$location\" />\n            </xsl:call-template>\n        </xsl:variable>\n        <!-- \"source\" elements, children of HTML5 audio -->\n        <!-- no extension suggests hosting has multiple -->\n        <!-- versions for browser to sort through       -->\n        <!-- More open formats first!  ;-)              -->\n        <xsl:if test=\"$extension = '' or $extension = 'ogg'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.ogg</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>audio/ogg</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <xsl:if test=\"$extension = '' or $extension = 'mp3'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.mp3</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>audio/mp3</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <xsl:if test=\"$extension = '' or $extension = 'wav'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.wav</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>audio/wav</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <!-- failure to perform -->\n        <xsl:text>Your browser does not support the &lt;audio&gt; tag.</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- create a \"video\" element for author-hosted   -->\n<!-- dimensions and autoplay as parameters        -->\n<!-- Normally $preview is true, and not passed in -->\n<!-- 'false' is an override for standalone pages  -->\n<xsl:template match=\"video[@source|@href]\" mode=\"media-embed\">\n    <xsl:param name=\"preview\" select=\"'true'\" />\n    <xsl:param name=\"autoplay\" select=\"'false'\" />\n\n    <xsl:variable name=\"location\">\n        <xsl:choose>\n            <xsl:when test=\"@href\">\n                <xsl:value-of select=\"@href\"/>\n            </xsl:when>\n            <!-- Now, must have a @source. For backwards -->\n            <!-- compatibility, consider a @source that  -->\n            <!-- really appears to be a @href. Might be  -->\n            <!-- http or https.                          -->\n            <xsl:when test=\"substring(@source,1,4) = 'http'\">\n                <xsl:value-of select=\"@source\"/>\n            </xsl:when>\n            <!-- else a local filename in @source -->\n            <xsl:otherwise>\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"@source\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n\n    <!-- we need to build the element, since @autoplay is optional -->\n    <xsl:element name=\"video\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:attribute name=\"class\">\n            <xsl:text>video</xsl:text>\n        </xsl:attribute>\n        <!-- empty forms work as boolean switches -->\n        <xsl:attribute name=\"controls\" />\n        <xsl:if test=\"$autoplay = 'true'\">\n            <xsl:attribute name=\"autoplay\" />\n        </xsl:if>\n        <!-- Optionally cover up with HTML5 @poster via PTX @preview -->\n        <xsl:if test=\"($preview = 'true') and @preview and not(@preview = 'default')\">\n            <xsl:attribute name=\"poster\">\n                <xsl:choose>\n                    <xsl:when test=\"@preview = 'generic'\">\n                        <xsl:value-of select=\"$generic-preview-svg-data-uri\" />\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <!-- empty when not using managed directories -->\n                        <xsl:value-of select=\"$external-directory\"/>\n                        <xsl:value-of select=\"@preview\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- Construct the HTML5 source URL(s)                  -->\n        <!-- If this gets refactored, it could be best to form  -->\n        <!-- base, extension, query, fragment strings/variables -->\n        <!-- First, grab extension of source URL in PTX @source -->\n        <xsl:variable name=\"extension\">\n            <xsl:call-template name=\"file-extension\">\n                <xsl:with-param name=\"filename\" select=\"$location\" />\n            </xsl:call-template>\n        </xsl:variable>\n        <!-- \"source\" elements, children of HTML5 video -->\n        <!-- no extension suggests hosting has multiple -->\n        <!-- versions for browser to sort through       -->\n        <!-- More open formats first!  ;-)              -->\n        <xsl:if test=\"$extension = '' or $extension = 'ogv'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.ogv</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>video/ogg</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <xsl:if test=\"$extension = '' or $extension = 'webm'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.webm</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>video/webm</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <xsl:if test=\"$extension = '' or $extension = 'mp4'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.mp4</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>video/mp4</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <!-- 2007: *.oog officially replaced by *.ogv    -->\n        <!-- 2018-04-01: we supported *.oog for video at -->\n        <!--    91028991e081d2c933d46d3ce5d4d1cb6759c0bf -->\n        <!-- 2020-07-05: demoted, but continue support   -->\n        <xsl:if test=\"$extension = '' or $extension = 'oog'\">\n            <xsl:element name=\"source\">\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$location\"/>\n                    <!-- augment no-extension form -->\n                    <xsl:if test=\"$extension = ''\">\n                        <xsl:text>.ogg</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\".\" mode=\"temporal-fragment\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>video/ogg</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:if>\n        <!-- failure to perform -->\n        <xsl:text>Your browser does not support the &lt;video&gt; tag.</xsl:text>\n        <xsl:apply-templates select=\"track\"/>\n    </xsl:element>\n</xsl:template>\n\n\n<!-- This an optional component of an author-hosted video, -->\n<!-- and the markup closely tracks the generated HTML.     -->\n<!-- The exception being our @listing; @label is taken.    -->\n<!-- The HTML @default attribute functions simply by being -->\n<!-- present, so we do not provide a value.                -->\n<xsl:template match=\"track\">\n    <xsl:variable name=\"location\">\n        <!-- empty when not using managed directories -->\n        <xsl:value-of select=\"$external-directory\"/>\n        <xsl:value-of select=\"@source\"/>\n    </xsl:variable>\n\n    <track>\n        <xsl:if test=\"@default='yes'\">\n            <xsl:attribute name=\"default\"/>\n        </xsl:if>\n        <xsl:attribute name=\"label\">\n            <xsl:value-of select=\"@listing\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"kind\">\n            <xsl:value-of select=\"@kind\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"srclang\">\n            <xsl:value-of select=\"@xml:lang\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"src\">\n            <xsl:value-of select=\"$location\"/>\n        </xsl:attribute>\n    </track>\n</xsl:template>\n\n<!-- HTML5 Media Fragment URI (shared for audio, video)       -->\n<!-- start/end times (read both, see 4.1, 4.2.1 at w3.org)    -->\n<!-- Media Fragment URI: https://www.w3.org/TR/media-frags/   -->\n<!-- Javascript: https://stackoverflow.com/questions/11212715 -->\n<!-- return is possibly empty, so no harm using that later    -->\n<!-- This portion of URL should follow any query string       -->\n<xsl:template match=\"audio|video\" mode=\"temporal-fragment\">\n    <xsl:if test=\"@start or @end\">\n        <xsl:text>#t=</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"@start\">\n        <xsl:value-of select=\"@start\" />\n    </xsl:if>\n    <!-- can lead with comma, implies 0,xx -->\n    <xsl:if test=\"@end\">\n        <xsl:text>,</xsl:text>\n        <xsl:value-of select=\"@end\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- You Tube, Vimeo -->\n<!-- Better sizing would require CSS classes (16:9, 4:3?)                      -->\n<!-- https://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php -->\n\n<!-- Configurable options, we are considering academic uses                       -->\n<!-- https://developers.google.com/youtube/player_parameters#Manual_IFrame_Embeds -->\n<!-- hl parameter for language seems superfluous, user settings override          -->\n<!-- something to do with cross-domain scripting security?                        -->\n<!-- <xsl:text>&amp;origin=http://example.com</xsl:text>                          -->\n<!-- start/end time parameters                                                    -->\n\n<!-- create iframe embedded video                     -->\n<!-- dimensions and autoplay as parameters            -->\n<!-- Normally $preview is true, and not passed in     -->\n<!-- 'false' is an override for standalone pages      -->\n<!-- Templates, on a per-service basis, supply a URL, -->\n<!-- and any attributes on the \"iframe\" element which -->\n<!-- are not shared                                   -->\n<xsl:template match=\"video[@youtube|@youtubeplaylist|@vimeo]\" mode=\"media-embed\">\n    <xsl:param name=\"preview\" select=\"'true'\" />\n    <xsl:param name=\"autoplay\" select=\"'false'\" />\n\n    <xsl:variable name=\"source-url\">\n        <xsl:apply-templates select=\".\" mode=\"video-embed-url\">\n            <xsl:with-param name=\"autoplay\" select=\"$autoplay\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"source-url-autoplay-on\">\n        <xsl:apply-templates select=\".\" mode=\"video-embed-url\">\n            <xsl:with-param name=\"autoplay\">\n                <xsl:choose>\n                    <!-- the YouTube autoplay won't wait for the poster -->\n                    <!-- to be withdrawn, so two clicks are needed,     -->\n                    <!-- perhaps this is true of *all* services?        -->\n                    <xsl:when test=\"@youtube|@youtubeplaylist\">\n                        <xsl:text>false</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>true</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <!-- allowfullscreen is an iframe parameter,   -->\n    <!-- not a video-embedding parameter, but it's -->\n    <!-- use enables the \"full screen\" button      -->\n    <!-- http://w3c.github.io/test-results/html51/implementation-report.html -->\n    <xsl:choose>\n        <xsl:when test=\"($preview = 'true') and @preview and not(@preview = 'default')\">\n            <!-- hide behind a preview image, code from post at -->\n            <!-- https://stackoverflow.com/questions/7199624    -->\n            <div onclick=\"this.nextElementSibling.style.display='block'; this.style.display='none'\">\n                <xsl:choose>\n                    <xsl:when test=\"@preview = 'generic'\">\n                        <xsl:call-template name=\"generic-preview-svg\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <img class=\"video-poster\" alt=\"Video cover image\">\n                            <xsl:attribute name=\"src\">\n                                <!-- empty when not using managed directories -->\n                                <xsl:value-of select=\"$external-directory\"/>\n                                <xsl:value-of select=\"@preview\"/>\n                            </xsl:attribute>\n                        </img>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </div>\n            <div class=\"hidden-content\">\n                <!-- Hidden content in here                   -->\n                <!-- Turn autoplay on, else two clicks needed -->\n                <iframe class=\"video\" allowfullscreen=\"\" src=\"{$source-url-autoplay-on}\">\n                    <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                    <xsl:apply-templates select=\".\" mode=\"video-iframe-attributes\">\n                        <xsl:with-param name=\"autoplay\" select=\"'true'\"/>\n                    </xsl:apply-templates>\n                </iframe>\n            </div>\n        </xsl:when>\n        <xsl:otherwise>\n            <iframe class=\"video\" allowfullscreen=\"\" src=\"{$source-url}\">\n                <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n                <xsl:apply-templates select=\".\" mode=\"video-iframe-attributes\">\n                    <xsl:with-param name=\"autoplay\" select=\"$autoplay\"/>\n                </xsl:apply-templates>\n            </iframe>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Creates a YouTube URL for embedding for use in an iframe -->\n<!-- Autoplay option is conveyed in the URL query options     -->\n<!-- Autoplay is for popout, otherwise not                    -->\n<xsl:template match=\"video[@youtube|@youtubeplaylist]\" mode=\"video-embed-url\">\n    <xsl:param name=\"autoplay\" select=\"'false'\" />\n    <xsl:variable name=\"youtube\">\n        <xsl:choose>\n            <!-- forgive an author's leading or trailing space -->\n            <xsl:when test=\"@youtubeplaylist\">\n                <xsl:value-of select=\"normalize-space(@youtubeplaylist)\" />\n            </xsl:when>\n            <!-- replace commas with spaces then normalize space    -->\n            <!-- result is a trim space-separated list of video IDs -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"normalize-space(str:replace(@youtube, ',', ' '))\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$b-video-privacy\">\n            <xsl:text>https://www.youtube-nocookie.com/embed</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>https://www.youtube.com/embed</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:choose>\n        <!-- playlist with a YouTube ID -->\n        <xsl:when test=\"@youtubeplaylist\">\n            <xsl:text>?listType=playlist&amp;list=</xsl:text>\n            <xsl:value-of select=\"$youtube\" />\n        </xsl:when>\n        <!-- if we get this far there must be a @youtube -->\n        <!-- and $youtube is one or more video IDs       -->\n        <xsl:when test=\"contains($youtube, ' ')\">\n            <xsl:text>?playlist=</xsl:text>\n            <xsl:value-of select=\"str:replace($youtube, ' ', ',')\" />\n        </xsl:when>\n        <!-- a single video ID -->\n        <xsl:otherwise>\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"$youtube\" />\n            <xsl:text>?</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- use &amp; separator for remaining options -->\n    <xsl:text>&amp;modestbranding=1</xsl:text>\n    <!-- kill related videos at end -->\n    <xsl:text>&amp;rel=0</xsl:text>\n    <!-- start and end times; for a playlist these are applied to first video -->\n    <xsl:if test=\"@start\">\n        <xsl:text>&amp;start=</xsl:text>\n        <xsl:value-of select=\"@start\" />\n    </xsl:if>\n    <xsl:if test=\"@end\">\n        <xsl:text>&amp;end=</xsl:text>\n        <xsl:value-of select=\"@end\" />\n    </xsl:if>\n    <!-- default autoplay is 0, don't -->\n    <xsl:if test=\"$autoplay = 'true'\">\n        <xsl:text>&amp;autoplay=1</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- For a YouTube video, no YT-specific options come in the attributes -->\n<xsl:template match=\"video[@youtube|@youtubeplaylist]\" mode=\"video-iframe-attributes\"/>\n\n<!-- Creates a Vimeo URL for embedding, typically in an iframe  -->\n<xsl:template match=\"video[@vimeo]\" mode=\"video-embed-url\">\n    <xsl:param name=\"autoplay\" select=\"'false'\" />\n    <xsl:text>https://player.vimeo.com/video/</xsl:text>\n    <xsl:value-of select=\"@vimeo\"/>\n    <xsl:text>?color=ffffff</xsl:text>\n    <!-- use &amp; separator for remaining options -->\n    <!-- default autoplay is 0, don't -->\n    <xsl:if test=\"$autoplay = 'true'\">\n        <xsl:text>&amp;autoplay=1</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- These are additional attributes on the \"iframe\" which seem specific to Vimeo -->\n<!-- N.B. the autoplay seems ineffective                                          -->\n<xsl:template match=\"video[@vimeo]\" mode=\"video-iframe-attributes\">\n    <xsl:param name=\"autoplay\" select=\"'false'\" />\n\n    <xsl:attribute name=\"frameborder\">\n        <xsl:text>0</xsl:text>\n    </xsl:attribute>\n    <xsl:attribute name=\"allow\">\n        <xsl:if test=\"$autoplay = 'true'\">\n            <xsl:text>autoplay; </xsl:text>\n        </xsl:if>\n        <xsl:text>fullscreen</xsl:text>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Music Scores -->\n<!-- ############ -->\n\n<!-- Embed an interactive score from MuseScore                          -->\n<!-- Flag: score element has two MuseScore-specific attributes          -->\n<!-- https://musescore.org/user/{usernumber}/scores/{scorenumber}/embed -->\n<!-- into an iframe with width and height (todo)                        -->\n<xsl:template match=\"score[@musescoreuser and @musescore]\">\n    <xsl:element name=\"iframe\">\n        <xsl:attribute name=\"width\">\n            <xsl:text>100%</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"height\">\n            <xsl:text>500</xsl:text>\n        </xsl:attribute>\n        <!-- empty attribute, just switch -->\n        <xsl:attribute name=\"allowfullscreen\">\n            <xsl:text></xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"src\">\n            <xsl:text>https://musescore.com/user/</xsl:text>\n            <xsl:value-of select=\"@musescoreuser\" />\n            <xsl:text>/scores/</xsl:text>\n            <xsl:value-of select=\"@musescore\" />\n            <xsl:text>/embed</xsl:text>\n        </xsl:attribute>\n    </xsl:element>\n</xsl:template>\n\n<!-- ####### -->\n<!-- Tabular -->\n<!-- ####### -->\n\n<!-- Top-down organization -->\n\n<!-- A tabular layout, a naked table -->\n<!-- Allowed to be placed various locations, but gets no              -->\n<!-- vertical space etc, that is the container's responsibiility      -->\n<!-- A sequence of rows, we ignore column group in applying templates -->\n<!-- Realized as an HTML table                                        -->\n\n<xsl:template match=\"tabular[not(ancestor::sidebyside)]\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- naked tabular carries its own width -->\n\n    <xsl:choose>\n        <xsl:when test=\"not(@margins) and (not(@width) or (@width = 'auto'))\">\n            <!-- the \"natural width\" case                       -->\n            <!-- 100% width allows paragraph cells to be widest -->\n            <div class=\"tabular-box natural-width\">\n                <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"width\" select=\"'100%'\" />\n                </xsl:apply-templates>\n            </div>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"rtf-layout\">\n                <xsl:apply-templates select=\".\" mode=\"layout-parameters\"/>\n            </xsl:variable>\n            <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\"/>\n            <div class=\"tabular-box\">\n                <xsl:attribute name=\"style\">\n                    <xsl:text>width: </xsl:text>\n                    <xsl:value-of select=\"$layout/width\"/>\n                    <xsl:text>%;</xsl:text>\n                    <xsl:text> margin-left: </xsl:text>\n                    <xsl:value-of select=\"$layout/left-margin\"/>\n                    <xsl:text>%;</xsl:text>\n                    <xsl:text> margin-right: </xsl:text>\n                    <xsl:value-of select=\"$layout/right-margin\"/>\n                    <xsl:text>%;</xsl:text>\n                </xsl:attribute>\n                <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                    <xsl:with-param name=\"width\" select=\"concat($layout/width, '%')\"/>\n                </xsl:apply-templates>\n            </div>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"tabular[ancestor::sidebyside]\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- sidebyside should always provide width, -->\n    <!-- so no default value provided here       -->\n    <xsl:param name=\"width\"/>\n\n    <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"width\" select=\"$width\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"tabular\" mode=\"tabular-inclusion\">\n    <xsl:param name=\"b-original\" select=\"$b-original\"/>\n    <xsl:param name=\"width\"  select=\"$width\"/>\n\n    <!-- Abort if tabular's cols have widths summing to over 100% -->\n    <xsl:call-template name=\"cap-width-at-one-hundred-percent\">\n        <xsl:with-param name=\"nodeset\" select=\"col/@width\" />\n    </xsl:call-template>\n\n    <table class=\"tabular\">\n        <!-- We *actively* enforce header rows being (a) initial, and      -->\n        <!-- (b) contiguous.  So following two-part match will do no harm  -->\n        <!-- to correct source, but will definitely harm incorrect source. -->\n        <xsl:apply-templates select=\"row[@header]\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"ambient-relative-width\" select=\"$width\" />\n        </xsl:apply-templates>\n        <xsl:apply-templates select=\"row[not(@header)]\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"ambient-relative-width\" select=\"$width\" />\n        </xsl:apply-templates>\n    </table>\n</xsl:template>\n\n<!-- A row of table -->\n<xsl:template match=\"row\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"ambient-relative-width\" />\n\n    <!-- Determine if the row is a header row -->\n    <!-- and construct class names as needed  -->\n    <xsl:variable name=\"header-row\">\n        <xsl:choose>\n            <xsl:when test=\"@header = 'yes'\">\n                <xsl:text>header-horizontal</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@header = 'vertical'\">\n                <xsl:text>header-vertical</xsl:text>\n            </xsl:when>\n            <!-- \"no\" is other choice, or no attribute at all -->\n            <!-- controlled by schema, so no error-check here -->\n            <!-- empty implies no class attribute at all      -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- Form the HTML table row -->\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"tr\">\n        <!-- and a class attribute for horizontal or vertical headers -->\n        <xsl:if test=\"not($header-row = '')\">\n            <xsl:attribute name=\"class\">\n                <xsl:value-of select=\"$header-row\"/>\n            </xsl:attribute>\n        </xsl:if>\n        <!-- Walk the cells of the row -->\n        <xsl:call-template name=\"row-cells\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"ambient-relative-width\">\n                <xsl:value-of select=\"$ambient-relative-width\" />\n            </xsl:with-param>\n            <xsl:with-param name=\"the-cell\" select=\"cell[1]\" />\n            <xsl:with-param name=\"left-col\" select=\"ancestor::tabular/col[1]\" />  <!-- possibly empty -->\n        </xsl:call-template>\n    </xsl:element>\n</xsl:template>\n\n<xsl:template name=\"row-cells\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <xsl:param name=\"ambient-relative-width\" />\n    <xsl:param name=\"the-cell\" />\n    <xsl:param name=\"left-col\" />\n    <!-- A cell may span several columns, or default to just 1              -->\n    <!-- When colspan is not trivial, we identify the col elements          -->\n    <!-- for the left and right ends of the span                            -->\n    <!-- When colspan is trivial, the left and right versions are identical -->\n    <!-- Left is used for left border and for horizontal alignment          -->\n    <!-- Right is used for right border                                     -->\n    <xsl:variable name=\"column-span\">\n        <xsl:choose>\n            <xsl:when test=\"$the-cell/@colspan\">\n                <xsl:value-of select=\"$the-cell/@colspan\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>1</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- For a \"normal\" 1-column cell this variable effectively makes a copy -->\n    <!-- position()  added in 026d6d6d9f69f4de17a012aa32c4e8dee77519fb,      -->\n    <!-- unclear if it can be removed/replaced                               -->\n    <xsl:variable name=\"right-col\" select=\"($left-col/self::*|$left-col/following-sibling::col)[position()=$column-span]\" />\n    <!-- Look ahead one column, anticipating recursion   -->\n    <!-- but also probing for end of row (no more cells) -->\n    <xsl:variable name=\"next-cell\" select=\"$the-cell/following-sibling::cell[1]\" />\n    <xsl:variable name=\"next-col\"  select=\"$right-col/following-sibling::col[1]\" /> <!-- possibly empty -->\n\n    <!-- Check if row-headers are requested -->\n    <xsl:variable name=\"b-row-headers\" select=\"boolean($the-cell/parent::row/parent::tabular[@row-headers = 'yes'])\"/>\n    <!-- And if we are at the first cell -->\n    <xsl:variable name=\"b-row-header\" select=\"$b-row-headers and not($the-cell/preceding-sibling::cell)\"/>\n\n    <xsl:if test=\"$the-cell\">\n        <!-- build an HTML data cell, with CSS decorations              -->\n        <!-- we set properties in various variables,                    -->\n        <!-- then write them in a class attribute                       -->\n        <!-- we look outward and upward for characteristics of the cell -->\n        <!--                                                            -->\n        <!-- horizontal alignment -->\n        <xsl:variable name=\"alignment\">\n            <xsl:choose>\n                <!-- cell attribute first -->\n                <xsl:when test=\"$the-cell/@halign\">\n                    <xsl:value-of select=\"$the-cell/@halign\" />\n                </xsl:when>\n                <!-- parent row attribute next -->\n                <xsl:when test=\"$the-cell/ancestor::row/@halign\">\n                    <xsl:value-of select=\"$the-cell/ancestor::row/@halign\" />\n                </xsl:when>\n                <!-- col attribute next -->\n                <xsl:when test=\"$left-col/@halign\">\n                    <xsl:value-of select=\"$left-col/@halign\" />\n                </xsl:when>\n                <!-- table attribute last -->\n                <xsl:when test=\"$the-cell/ancestor::tabular/@halign\">\n                    <xsl:value-of select=\"$the-cell/ancestor::tabular/@halign\" />\n                </xsl:when>\n                <!-- HTML default is left, we write it for consistency -->\n                <xsl:otherwise>\n                    <xsl:text>left</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!-- vertical alignment -->\n        <xsl:variable name=\"valignment\">\n            <xsl:choose>\n                <!-- parent row attribute first -->\n                <xsl:when test=\"$the-cell/ancestor::row/@valign\">\n                    <xsl:value-of select=\"$the-cell/ancestor::row/@valign\" />\n                </xsl:when>\n                <!-- table attribute last -->\n                <xsl:when test=\"$the-cell/ancestor::tabular/@valign\">\n                    <xsl:value-of select=\"$the-cell/ancestor::tabular/@valign\" />\n                </xsl:when>\n                <!-- HTML default is \"baseline\", not supported by PTX           -->\n                <!-- Instead we default to \"middle\" to be consistent with LaTeX -->\n                <xsl:otherwise>\n                    <xsl:text>middle</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!-- bottom borders -->\n        <xsl:variable name=\"bottom\">\n            <xsl:choose>\n                <!-- cell attribute first -->\n                <xsl:when test=\"$the-cell/@bottom\">\n                    <xsl:value-of select=\"$the-cell/@bottom\" />\n                </xsl:when>\n                <!-- parent row attribute next -->\n                <xsl:when test=\"$the-cell/ancestor::row/@bottom\">\n                    <xsl:value-of select=\"$the-cell/ancestor::row/@bottom\" />\n                </xsl:when>\n                <!-- not available on columns, table attribute last -->\n                <xsl:when test=\"$the-cell/ancestor::tabular/@bottom\">\n                    <xsl:value-of select=\"$the-cell/ancestor::tabular/@bottom\" />\n                </xsl:when>\n                <!-- default is none -->\n                <xsl:otherwise>\n                    <xsl:text>none</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!-- right borders -->\n        <xsl:variable name=\"right\">\n            <xsl:choose>\n                <!-- cell attribute first -->\n                <xsl:when test=\"$the-cell/@right\">\n                    <xsl:value-of select=\"$the-cell/@right\" />\n                </xsl:when>\n                <!-- not available on rows, col attribute next -->\n                <xsl:when test=\"$right-col/@right\">\n                    <xsl:value-of select=\"$right-col/@right\" />\n                </xsl:when>\n                <!-- table attribute last -->\n                <xsl:when test=\"$the-cell/ancestor::tabular/@right\">\n                    <xsl:value-of select=\"$the-cell/ancestor::tabular/@right\" />\n                </xsl:when>\n                <!-- default is none -->\n                <xsl:otherwise>\n                    <xsl:text>none</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!-- left borders -->\n        <xsl:variable name=\"left\">\n            <xsl:choose>\n                <!-- the first cell of the row, so may have left border -->\n                <xsl:when test=\"not($the-cell/preceding-sibling::cell)\">\n                    <xsl:choose>\n                        <!-- row attribute first -->\n                        <xsl:when test=\"$the-cell/ancestor::row/@left\">\n                            <xsl:value-of select=\"$the-cell/ancestor::row/@left\" />\n                        </xsl:when>\n                        <!-- table attribute last -->\n                        <xsl:when test=\"$the-cell/ancestor::tabular/@left\">\n                            <xsl:value-of select=\"$the-cell/ancestor::tabular/@left\" />\n                        </xsl:when>\n                        <!-- default is none -->\n                        <xsl:otherwise>\n                            <xsl:text>none</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:when>\n                <!-- not the first cell of the row, so no left border -->\n                <xsl:otherwise>\n                    <xsl:text>none</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!-- top borders -->\n        <xsl:variable name=\"top\">\n            <xsl:choose>\n                <!-- the first row of the table, so may have top border -->\n                <!-- http://ajaxandxml.blogspot.com/2006/11/xsl-detect-first-of-type-element-in.html -->\n                <xsl:when test=\"not($the-cell/ancestor::row/preceding-sibling::row)\">\n                    <xsl:choose>\n                        <!-- col attribute first -->\n                        <xsl:when test=\"$left-col/@top\">\n                            <xsl:value-of select=\"$left-col/@top\" />\n                        </xsl:when>\n                        <!-- table attribute last -->\n                        <xsl:when test=\"$the-cell/ancestor::tabular/@top\">\n                            <xsl:value-of select=\"$the-cell/ancestor::tabular/@top\" />\n                        </xsl:when>\n                        <!-- default is none -->\n                        <xsl:otherwise>\n                            <xsl:text>none</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:when>\n                <!-- not the first cell of the row, so no left border -->\n                <xsl:otherwise>\n                    <xsl:text>none</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n\n        <!-- a cell of a header row needs to be \"th\" -->\n        <!-- else the HTML mark up is \"td\"           -->\n        <!-- NB: Named templates means context is a  -->\n        <!-- row, which is really wrong.  Tests      -->\n        <!-- should be on  parent::row/@header       -->\n        <xsl:variable name=\"header-row-elt\">\n            <xsl:choose>\n                <xsl:when test=\"@header = 'yes'\">\n                    <xsl:text>th</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"@header = 'vertical'\">\n                    <xsl:text>th</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$b-row-header\">\n                    <xsl:text>th</xsl:text>\n                </xsl:when>\n                <!-- \"no\" is other choice, or no attribute at all -->\n                <!-- controlled by schema, so no error-check here -->\n                <xsl:otherwise>\n                    <xsl:text>td</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n\n        <!-- the HTML element for the cell -->\n        <!-- newline inserted to encourage formatted output -->\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:element name=\"{$header-row-elt}\">\n            <!-- Scope attribute helps with accessibility: what          -->\n            <!-- is the table element/cell describing?                   -->\n            <!-- if this is a row of column headers, declare scope=\"col\" -->\n            <!-- if this is a column of row headers, declare scope=\"row\" -->\n            <xsl:if test=\"$header-row-elt = 'th'\">\n                <xsl:attribute name=\"scope\">\n                    <!-- If in upper-left corner, let column headings dominate -->\n                    <xsl:choose>\n                        <xsl:when test=\"(@header = 'yes') or (@header = 'vertical')\">\n                            <xsl:text>col</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"$b-row-header\">\n                            <xsl:text>row</xsl:text>\n                        </xsl:when>\n                    </xsl:choose>\n                </xsl:attribute>\n            </xsl:if>\n            <!-- and the class attribute -->\n            <xsl:attribute name=\"class\">\n                <!-- always write alignment, so *precede* all subsequent with a space -->\n                <xsl:choose>\n                    <xsl:when test=\"$the-cell/p and $alignment='justify'\">\n                        <xsl:text>j</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:call-template name=\"halign-specification\">\n                            <xsl:with-param name=\"align\" select=\"$alignment\" />\n                        </xsl:call-template>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <!-- vertical alignment -->\n                <xsl:text> </xsl:text>\n                <xsl:call-template name=\"valign-specification\">\n                    <xsl:with-param name=\"align\" select=\"$valignment\" />\n                </xsl:call-template>\n                <!-- bottom border -->\n                <xsl:text> b</xsl:text>\n                <xsl:call-template name=\"thickness-specification\">\n                    <xsl:with-param name=\"width\" select=\"$bottom\" />\n                </xsl:call-template>\n                <!-- right border -->\n                <xsl:text> r</xsl:text>\n                <xsl:call-template name=\"thickness-specification\">\n                    <xsl:with-param name=\"width\" select=\"$right\" />\n                </xsl:call-template>\n                <!-- left border -->\n                <xsl:text> l</xsl:text>\n                <xsl:call-template name=\"thickness-specification\">\n                    <xsl:with-param name=\"width\" select=\"$left\" />\n                </xsl:call-template>\n                <!-- top border -->\n                <xsl:text> t</xsl:text>\n                <xsl:call-template name=\"thickness-specification\">\n                    <xsl:with-param name=\"width\" select=\"$top\" />\n                </xsl:call-template>\n                <!-- no wrapping unless paragraph cell -->\n                <xsl:if test=\"not($the-cell/p)\">\n                    <xsl:text> lines</xsl:text>\n                </xsl:if>\n            </xsl:attribute>\n            <xsl:if test=\"not($column-span = 1)\">\n                <xsl:attribute name=\"colspan\">\n                    <xsl:value-of select=\"$column-span\" />\n                </xsl:attribute>\n            </xsl:if>\n            <xsl:if test=\"$the-cell/p\">\n                <xsl:attribute name=\"style\">\n                    <xsl:text>max-width:</xsl:text>\n                    <xsl:choose>\n                        <xsl:when test=\"$left-col/@width\">\n                            <xsl:variable name=\"width\">\n                                <xsl:call-template name=\"normalize-percentage\">\n                                    <xsl:with-param name=\"percentage\" select=\"$left-col/@width\" />\n                                </xsl:call-template>\n                            </xsl:variable>\n                            <xsl:value-of select=\"$design-width * substring-before($width, '%') div 100 * substring-before($ambient-relative-width, '%') div 100\" />\n                            <xsl:text>px;</xsl:text>\n                        </xsl:when>\n                        <!-- If there is no $left-col/@width, silently use 20% as default -->\n                        <!-- We get some ill-formed WW exercises here, so a less-precise  -->\n                        <!-- warning is given on the author's source.                     -->\n                        <xsl:otherwise>\n                            <xsl:value-of select=\"$design-width * 0.2 * substring-before($ambient-relative-width, '%') div 100\" />\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:attribute>\n            </xsl:if>\n            <!-- process the actual contents           -->\n            <!-- condition on indicators of structure  -->\n            <!-- All \"line\", all \"p\", or mixed content -->\n            <!-- TODO: is it important to pass $b-original -->\n            <!-- flag into template for \"line\" elements?   -->\n            <xsl:choose>\n                <xsl:when test=\"$the-cell/line\">\n                    <xsl:apply-templates select=\"$the-cell/line\"/>\n                </xsl:when>\n                <xsl:when test=\"$the-cell/p\">\n                    <xsl:apply-templates select=\"$the-cell/p\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                    </xsl:apply-templates>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$the-cell\">\n                        <xsl:with-param name=\"b-original\" select=\"$b-original\"/>\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:element>\n        <!-- recurse forward, perhaps to an empty cell -->\n        <xsl:call-template name=\"row-cells\">\n            <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n            <xsl:with-param name=\"ambient-relative-width\" select=\"$ambient-relative-width\" />\n            <xsl:with-param name=\"the-cell\" select=\"$next-cell\" />\n            <xsl:with-param name=\"left-col\" select=\"$next-col\" />\n        </xsl:call-template>\n    </xsl:if>\n    <!-- Arrive here only when we have no cell so      -->\n    <!-- we bail out of recursion with no action taken -->\n</xsl:template>\n\n<!-- ############################ -->\n<!-- Table construction utilities -->\n<!-- ############################ -->\n\n<!-- Utilities are defined in xsl/pretext-common.xsl -->\n\n<!-- \"thickness-specification\" : param \"width\"    -->\n<!--     none, minor, medium, major -> 0, 1, 2, 3 -->\n\n<!-- \"halign-specification\" : param \"align\"       -->\n<!--     left, right, center -> l, c, r           -->\n\n<!-- \"valign-specification\" : param \"align\"       -->\n<!--     top, middle, bottom -> t, m, b           -->\n\n\n<!-- ################ -->\n<!-- Cross-References -->\n<!-- ################ -->\n\n<!-- Much of the cross-reference mechanism is -->\n<!-- implemented in the common routines,      -->\n<!-- here we implement two abstract templates -->\n<!-- which are called from those routines     -->\n\n<!-- The \"text\" of a cross-reference typically   -->\n<!-- includes a number and our numbering code is -->\n<!-- designed to sync with LaTeX's schemes       -->\n\n<!-- The xref-link template provides one of two types of links      -->\n<!--                                                                -->\n<!-- (a) a traditional HTML hyperlink, a jump to a new location     -->\n<!-- (b) a knowl, aka a transclusion, which appears within the text -->\n<!--                                                                -->\n<!-- A hyperlink is the default. For conversions to different       -->\n<!-- HTML outputs, the choice of targets appearing as knowls        -->\n<!-- can be adjusted by overriding the next template                -->\n\n<!-- This is the implementation of an abstract template, -->\n<!-- to accomodate hard-coded HTML numbers and for       -->\n<!-- LaTeX the \\ref and \\label mechanism                 -->\n<xsl:template match=\"*\" mode=\"xref-number\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n    <xsl:variable name=\"needs-part-prefix\">\n        <xsl:apply-templates select=\".\" mode=\"crosses-part-boundary\">\n            <xsl:with-param name=\"xref\" select=\"$xref\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:if test=\"$needs-part-prefix = 'true'\">\n        <xsl:apply-templates select=\"ancestor::part\" mode=\"serial-number\" />\n        <xsl:text>.</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n</xsl:template>\n\n<!-- One exception is a local tag on an mrow -->\n<xsl:template match=\"mrow[@tag]\" mode=\"xref-number\">\n    <xsl:apply-templates select=\"@tag\" mode=\"tag-symbol\" />\n</xsl:template>\n\n<!-- Same for a bare \"md\" whose manufactured \"mrow\" carries a @tag -->\n<xsl:template match=\"md[@pi:authored-one-line and mrow/@tag]\" mode=\"xref-number\">\n    <xsl:apply-templates select=\"mrow/@tag\" mode=\"tag-symbol\" />\n</xsl:template>\n\n<!-- The second abstract template, we condition   -->\n<!-- on if the link is rendered as a knowl or not -->\n<!-- and then condition on the location of the    -->\n<!-- actual link, which is sensitive to display   -->\n<!-- math in particular                           -->\n<!-- See xsl/pretext-common.xsl for more info     -->\n<!-- NB: for HTML output, the $content variable   -->\n<!-- may have HTML elements in it (e.g. link is a  -->\n<!-- title with emphasis, or a MathJax processing  -->\n<!-- span) so we want a \"copy-of\" here, not a      -->\n<!-- \"value-of\".                                   -->\n<!-- TODO: could match on \"xref\" once link routines  -->\n<!-- are broken into two and other uses are rearranged -->\n<xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"target\" select=\"/..\" />\n    <xsl:param name=\"origin\" select=\"''\" />\n    <xsl:param name=\"content\" select=\"'MISSING LINK CONTENT'\"/>\n    <xsl:variable name=\"knowl\">\n        <xsl:apply-templates select=\"$target\" mode=\"xref-as-knowl\">\n            <xsl:with-param name=\"link\" select=\".\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- 1st exceptional case, xref in a webwork, or in    -->\n        <!-- some sort of title.  Then just parrot the content -->\n        <xsl:when test=\"ancestor::webwork-reps|ancestor::title|ancestor::shorttitle|ancestor::subtitle\">\n            <xsl:copy-of select=\"$content\"/>\n        </xsl:when>\n        <!-- 2nd exceptional case, xref in mrow of display math  -->\n        <!--   with Javascript (pure HTML) we can make knowls    -->\n        <!--   without Javascript (EPUB) we use plain text       -->\n        <xsl:when test=\"parent::mrow\">\n            <xsl:apply-templates select=\".\" mode=\"xref-link-display-math\">\n                <xsl:with-param name=\"target\" select=\"$target\"/>\n                <xsl:with-param name=\"origin\" select=\"'xref'\"/>\n                <xsl:with-param name=\"content\" select=\"$content\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- usual case, always an \"a\" element (anchor) -->\n        <xsl:otherwise>\n            <xsl:element name=\"a\">\n                <!-- knowl/hyperlink variability here -->\n                <xsl:choose>\n                    <!-- build a modern knowl -->\n                    <xsl:when test=\"$knowl='true'\">\n                        <!-- provide href for a fallback behavior if knowl is -->\n                        <!-- disabled intentionally or not                    -->\n                        <xsl:attribute name=\"href\">\n                            <xsl:apply-templates select=\"$target\" mode=\"url\" />\n                        </xsl:attribute>\n                        <!-- mark as duplicated content via an xref -->\n                        <xsl:attribute name=\"class\">\n                            <xsl:text>xref</xsl:text>\n                        </xsl:attribute>\n                        <xsl:attribute name=\"data-knowl\">\n                            <xsl:apply-templates select=\"$target\" mode=\"knowl-filename\">\n                                <xsl:with-param name=\"origin\" select=\"$origin\"/>\n                            </xsl:apply-templates>\n                        </xsl:attribute>\n                        <!-- text to use for tooltip/aria  -->\n                        <xsl:attribute name=\"data-reveal-label\">\n                            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                                <xsl:with-param name=\"string-id\" select=\"'reveal'\"/>\n                            </xsl:apply-templates>\n                        </xsl:attribute>\n                        <xsl:attribute name=\"data-close-label\">\n                            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                                <xsl:with-param name=\"string-id\" select=\"'close'\"/>\n                            </xsl:apply-templates>\n                        </xsl:attribute>\n                    </xsl:when>\n                    <!-- build traditional hyperlink -->\n                    <xsl:otherwise>\n                        <xsl:attribute name=\"href\">\n                            <xsl:apply-templates select=\"$target\" mode=\"url\" />\n                        </xsl:attribute>\n                        <!-- use a class to identify an internal link -->\n                        <xsl:attribute name=\"class\">\n                            <xsl:text>internal</xsl:text>\n                        </xsl:attribute>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <!-- add HTML title attribute to the link -->\n                <xsl:attribute name=\"title\">\n                    <xsl:apply-templates select=\"$target\" mode=\"tooltip-text\" />\n                </xsl:attribute>\n                <!-- link content from common template -->\n                <xsl:copy-of select=\"$content\"/>\n            </xsl:element>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- For pure HTML we can make a true knowl or traditional link -->\n<!-- when an \"xref\" is authored inside of a display math \"mrow\" -->\n<!-- Requires a MathJax extension for knowls to render.         -->\n<!-- See discussion in \"xref-link\" about \"copy-of\" necessity.   -->\n<xsl:template match=\"*\" mode=\"xref-link-display-math\">\n    <xsl:param name=\"target\"/>\n    <xsl:param name=\"origin\"/>\n    <xsl:param name=\"content\"/>\n\n    <!-- this could be passed as a parameter, but -->\n    <!-- we have $target anyway, so can recompute -->\n    <xsl:variable name=\"knowl\">\n        <xsl:apply-templates select=\"$target\" mode=\"xref-as-knowl\">\n            <xsl:with-param name=\"link\" select=\".\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$knowl='true'\">\n            <xsl:text>\\knowl{</xsl:text>\n            <xsl:apply-templates select=\"$target\" mode=\"knowl-filename\">\n                <xsl:with-param name=\"origin\" select=\"'xref'\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\href{</xsl:text>\n            <xsl:apply-templates select=\"$target\" mode=\"url\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>}{</xsl:text>\n    <xsl:copy-of select=\"$content\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- A URL is needed various places, such as                     -->\n<!--   1. xref to material larger than a knowl, e.g. a \"chapter\" -->\n<!--   2. \"in-context\" link in xref-knowls                       -->\n<!--   3. summary-page links                                     -->\n<!--   4. many navigation devices, e.g. ToC, prev/next buttons   -->\n<!-- This is strictly an HTML construction.                      -->\n<!-- A containing filename, plus possibly a fragment identifier. -->\n<!-- NB: a \"p\" whose initial content is display math results in  -->\n<!-- a contest for the HTML id that goes on the                  -->\n<!-- div.displaymath.  The \"p\" is only a target of a hyperlink   -->\n<!-- when it is the \"in-context\" link of a knowl for the \"p\",    -->\n<!-- which only happens in the index, so the \"p\" must also have  -->\n<!-- an \"idx\" element.  So we are labeling the div for what it   -->\n<!-- is, display math, so links to numbered equations will work. -->\n<!-- So we have:                                                 -->\n<!-- BUG: a \"p\" that leads with display math and has an \"idx\"    -->\n<!-- creates a knowl in the index whose \"in-context\" link is     -->\n<!-- incorrect.                                                  -->\n<xsl:template match=\"*\" mode=\"url\">\n    <xsl:choose>\n        <xsl:when test=\"$chunk-level = 0\">\n            <!-- When building a single page, we just want the     -->\n            <!-- fragment identifier since links should just jump  -->\n            <!-- around the page. Not including the filename makes -->\n            <!-- it easy for for a user to rename the file later.  -->\n            <xsl:apply-templates select=\".\" mode=\"url-fragment\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- In other other cases, we want a filename plus a fragment -->\n            <!-- identifier if the link is to the interior of a page.     -->\n            <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n            <xsl:variable name=\"intermediate\">\n                <xsl:apply-templates select=\".\" mode=\"is-intermediate\" />\n            </xsl:variable>\n            <xsl:variable name=\"chunk\">\n                <xsl:apply-templates select=\".\" mode=\"is-chunk\" />\n            </xsl:variable>\n            <xsl:if test=\"$intermediate='false' and $chunk='false'\">\n                <!-- interior to a page, needs fragment identifier -->\n                <xsl:apply-templates select=\".\" mode=\"url-fragment\"/>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"url-fragment\">\n    <xsl:text>#</xsl:text>\n    <!-- All display math is in a  div.displaymath  with  -->\n    <!-- an HTML id.  An \"mrow\" can have an @xml:id, and  -->\n    <!-- we direct a URL (typically the \"in-context\" link -->\n    <!-- of a knowl) to the enclosing \"md\" or \"mdn\" (we   -->\n    <!-- can't know which in advance)                     -->\n    <xsl:choose>\n        <xsl:when test=\"self::mrow\">\n            <xsl:apply-templates select=\"parent::*\" mode=\"html-id\"/>\n        </xsl:when>\n        <!-- an \"men\" is fine here, we do not need a parent -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- The @id attribute of an HTML element is critical.      -->\n<!-- We supply the \"visible-id\".                            -->\n<xsl:template match=\"*\" mode=\"html-id\">\n    <xsl:apply-templates select=\".\" mode=\"visible-id\"/>\n</xsl:template>\n\n<!-- And a convenience template to make an id attribute.  -->\n<!-- Note: the purpose of an id is to later reference it, -->\n<!-- so we still need the \"html-id\" template in order to  -->\n<!-- make those references, but these two templates       -->\n<!-- together ensure that they are consistent.  And there -->\n<!-- are limited cases where we need ids derived from     -->\n<!-- these baseline versions.                             -->\n<xsl:template match=\"*\" mode=\"html-id-attribute\">\n    <xsl:attribute name=\"id\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- We manufacture Javascript variables sometimes using            -->\n<!-- this id to keep them unique, but a dash (encouraged in PTX)    -->\n<!-- is banned in Javascript, so we make a \"no-dash\" version,       -->\n<!-- by replacing a hyphen by a double-underscore.                  -->\n<!-- NB: This runs some non-zero probability of breaking uniqueness -->\n<xsl:template match=\"*\" mode=\"visible-id-no-dash\">\n    <xsl:variable name=\"the-id\">\n        <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n    </xsl:variable>\n    <xsl:value-of select=\"str:replace($the-id, '-', '__')\" />\n</xsl:template>\n\n\n<!-- ######## -->\n<!-- SI Units -->\n<!-- ######## -->\n\n<xsl:template match=\"quantity\">\n    <!-- Unicode FRACTION SLASH -->\n    <xsl:variable name=\"fraction-slash\" select=\"'&#x2044;'\"/>\n\n    <!-- span to prevent line breaks within the quantity -->\n    <span class=\"quantity\">\n        <xsl:apply-templates select=\"mag\"/>\n        <!-- if not solo, add separation -->\n        <xsl:if test=\"mag and (unit or per)\">\n            <xsl:text> </xsl:text>\n        </xsl:if>\n        <xsl:choose>\n            <xsl:when test=\"per\">\n               <sup>\n                    <xsl:if test=\"not(unit)\">\n                        <xsl:text>1</xsl:text>\n                    </xsl:if>\n                    <xsl:apply-templates select=\"unit\" />\n                </sup>\n                <xsl:value-of select=\"$fraction-slash\"/>\n                <sub>\n                    <xsl:apply-templates select=\"per\" />\n                </sub>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"unit\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </span>\n    <!-- NB: no mag, no per, no unit implies no output -->\n    <!-- (really should be caught in schema), but      -->\n    <!-- no real harm in just doing nothing            -->\n</xsl:template>\n\n<!-- \"mag\" is pretty much verbatim, but we allow LaTeX syntax  -->\n<!-- for \\pi and we need to make them amenable to MathJax.     -->\n<!-- TODO:                                                     -->\n<!--   - implement <pi/> strictly inside \"mag\" (LaTeX too)     -->\n<!--   - move the recursive template to the \"repair\"           -->\n<!--     pass of the pre-processor                             -->\n<xsl:template match=\"mag\">\n    <xsl:call-template name=\"wrap-units-pi\">\n        <xsl:with-param name=\"text\">\n            <xsl:value-of select=\".\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- We recursively isolate instances of \\pi and replace them  -->\n<!-- with wrapped versions so MathJax will process them.  A    -->\n<!-- simple string replacement will not work since the         -->\n<!-- replacement is a span.process-math (an HTML element).     -->\n<!-- NB: this will not generalize easily to additional symbols -->\n<xsl:template name=\"wrap-units-pi\">\n    <xsl:param name=\"text\"/>\n\n    <xsl:variable name=\"pi\" select=\"'\\pi'\"/>\n    <xsl:choose>\n        <xsl:when test=\"not(contains($text, $pi))\">\n            <!-- nothing left to do, output as-is, and finish -->\n            <xsl:value-of select=\"$text\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- must have a \\pi, output prior text -->\n            <xsl:value-of select=\"substring-before($text, $pi)\"/>\n            <!-- output \\pi, appropriately bundled -->\n            <xsl:call-template name=\"inline-math-wrapper\">\n                <xsl:with-param name=\"math\" select=\"$pi\"/>\n            </xsl:call-template>\n            <!-- recurse on remainder -->\n            <xsl:call-template name=\"wrap-units-pi\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, $pi)\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- unit and per children of a quantity element    -->\n<!-- have a mandatory base attribute                -->\n<!-- may have prefix and exp attributes             -->\n<!-- base and prefix are not abbreviations          -->\n\n<xsl:key name=\"prefix-key\" match=\"prefix\" use=\"concat(../@name, @full)\"/>\n<xsl:key name=\"base-key\" match=\"base\" use=\"concat(../@name, @full)\"/>\n\n<xsl:template match=\"unit|per\">\n    <!-- Unicode MIDDLE-DOT -->\n    <xsl:variable name=\"inter-unit-product\" select=\"'&#x00B7;'\"/>\n\n    <!-- add non-breaking hyphen within a numerator or denominator of units -->\n    <xsl:if test=\"(self::unit and preceding-sibling::unit) or (self::per and preceding-sibling::per)\">\n        <xsl:value-of select=\"$inter-unit-product\"/>\n    </xsl:if>\n    <!-- prefix is optional -->\n    <xsl:if test=\"@prefix\">\n        <xsl:variable name=\"prefix\">\n            <xsl:value-of select=\"@prefix\" />\n        </xsl:variable>\n        <xsl:variable name=\"short\">\n            <xsl:for-each select=\"document('pretext-units.xsl')\">\n                <xsl:value-of select=\"key('prefix-key',concat('prefixes',$prefix))/@short\"/>\n            </xsl:for-each>\n        </xsl:variable>\n        <xsl:value-of select=\"$short\" />\n    </xsl:if>\n    <!-- base unit is required -->\n    <xsl:variable name=\"base\">\n        <xsl:value-of select=\"@base\" />\n    </xsl:variable>\n    <xsl:variable name=\"short\">\n        <xsl:for-each select=\"document('pretext-units.xsl')\">\n            <xsl:value-of select=\"key('base-key',concat('bases',$base))/@short\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:value-of select=\"$short\" />\n     <!-- exponent is optional -->\n    <xsl:if test=\"@exp\">\n        <sup>\n            <xsl:value-of select=\"@exp\"/>\n        </sup>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Attributions -->\n<!-- ############ -->\n\n<!-- At end of: blockquote, preface, foreword       -->\n<!-- free-form for one line, or structured as lines -->\n<!-- TODO: add CSS for attribution, div flush right         -->\n<!-- And go slanted (\"oblique\"?)                            -->\n<!-- Maybe use CSS to right align as a block                -->\n<!-- https://github.com/BooksHTML/mathbook-assets/issues/64 -->\n\n<!-- Single line, mixed-content          -->\n<!-- Or structured by \"line\" elements    -->\n<!-- Quotation dash if within blockquote -->\n<!-- Unicode Character 'HORIZONTAL BAR' aka 'QUOTATION DASH' -->\n<xsl:template match=\"attribution\">\n    <cite class=\"attribution\">\n        <xsl:if test=\"parent::blockquote\">\n            <xsl:text>&#x2015;</xsl:text>\n        </xsl:if>\n        <xsl:choose>\n            <xsl:when test=\"line\">\n                <xsl:apply-templates select=\"line\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </cite>\n</xsl:template>\n\n<!-- Defined terms (bold, typically) -->\n<xsl:template match=\"term\">\n    <dfn class=\"terminology\">\n        <xsl:apply-templates/>\n    </dfn>\n</xsl:template>\n\n<!-- Acronyms, Initialisms, Abbreviations -->\n<!-- abbreviation: contracted form                                  -->\n<!-- acronym: initials, pronounced as a word (eg SCUBA, RADAR)      -->\n<!-- initialism: one letter at a time, (eg CIA, FBI)                -->\n<!-- All are marked as the HTML \"abbr\" tag, but classes distinguish -->\n<!-- Would a screen reader know the difference?                     -->\n<xsl:template match=\"abbr\">\n    <abbr class=\"abbreviation\">\n        <xsl:apply-templates/>\n    </abbr>\n</xsl:template>\n\n<xsl:template match=\"acro\">\n    <abbr class=\"acronym\">\n        <xsl:apply-templates/>\n    </abbr>\n</xsl:template>\n\n<xsl:template match=\"init\">\n    <abbr class=\"initialism\">\n        <xsl:apply-templates/>\n    </abbr>\n</xsl:template>\n\n<!-- Emphasis -->\n<xsl:template match=\"em\">\n    <em class=\"emphasis\">\n        <xsl:apply-templates/>\n    </em>\n</xsl:template>\n\n<!-- Alert -->\n<xsl:template match=\"alert\">\n    <em class=\"alert\">\n        <xsl:apply-templates/>\n    </em>\n</xsl:template>\n\n<!-- CSS for ins, del, s -->\n<!-- http://html5doctor.com/ins-del-s/           -->\n<!-- http://stackoverflow.com/questions/2539207/ -->\n\n<!-- Insert (an edit) -->\n<xsl:template match=\"insert\">\n    <ins class=\"insert\">\n        <xsl:apply-templates/>\n    </ins>\n</xsl:template>\n\n<!-- Delete (an edit) -->\n<xsl:template match=\"delete\">\n    <del class=\"delete\">\n        <xsl:apply-templates/>\n    </del>\n</xsl:template>\n\n<!-- Stale (no longer relevant) -->\n<xsl:template match=\"stale\">\n    <s class=\"stale\">\n        <xsl:apply-templates/>\n    </s>\n</xsl:template>\n\n<!-- Copyright symbol -->\n<xsl:template name=\"copyright-character\">\n    <xsl:text>&#xa9;</xsl:text>\n</xsl:template>\n\n<!-- Phonomark symbol -->\n<xsl:template name=\"phonomark-character\">\n    <xsl:text>&#x2117;</xsl:text>\n</xsl:template>\n\n<!-- Copyleft symbol -->\n<!-- May not be universally available in fonts                 -->\n<!-- Open C (U+254) plus Combining Circle (U+20dd) can imitate -->\n<xsl:template name=\"copyleft-character\">\n    <xsl:text>&#x1f12f;</xsl:text>\n</xsl:template>\n\n<!-- Registered symbol -->\n<!-- Bringhurst: should be superscript                    -->\n<!-- We consider it a font mistake if not superscripted,  -->\n<!-- since if we use a \"sup\" tag then a correct font will -->\n<!-- get way too small                                    -->\n<xsl:template name=\"registered-character\">\n    <xsl:text>&#xae;</xsl:text>\n</xsl:template>\n\n<!-- Trademark symbol -->\n<xsl:template name=\"trademark-character\">\n    <xsl:text>&#x2122;</xsl:text>\n</xsl:template>\n\n<!-- Servicemark symbol -->\n<xsl:template name=\"servicemark-character\">\n    <xsl:text>&#x2120;</xsl:text>\n</xsl:template>\n\n<!-- Degree -->\n<xsl:template name=\"degree-character\">\n    <xsl:text>&#xb0;</xsl:text>\n</xsl:template>\n\n<!-- Prime -->\n<xsl:template name=\"prime-character\">\n    <xsl:text>&#x2032;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"dblprime-character\">\n    <xsl:text>&#x2033;</xsl:text>\n</xsl:template>\n\n<!-- Characters for Tagging Equations -->\n\n<!-- 'SIX POINTED BLACK STAR' (U+2736) -->\n<xsl:template name=\"tag-star\">\n    <xsl:text>&#x2736;</xsl:text>\n</xsl:template>\n\n<!-- 'DAGGER' (U+2020) -->\n<xsl:template name=\"tag-dagger\">\n    <xsl:text>&#x2020;</xsl:text>\n</xsl:template>\n\n<!-- 'DOUBLE DAGGER' (U+2021) -->\n<xsl:template name=\"tag-daggerdbl\">\n    <xsl:text>&#x2021;</xsl:text>\n</xsl:template>\n\n<!-- 'NUMBER SIGN' (U+0023), identical to LaTeX -->\n<xsl:template name=\"tag-hash\">\n    <xsl:text>\\#</xsl:text>\n</xsl:template>\n\n<!-- 'MALTESE CROSS' (U+2720) -->\n<xsl:template name=\"tag-maltese\">\n    <xsl:text>&#x2720;</xsl:text>\n</xsl:template>\n\n<!-- Fill-in blank -->\n<!-- Bringhurst suggests 5/11 em per character                            -->\n<!-- A 'span' normally, but a MathJax non-standard \\Rule for math         -->\n<!-- \"\\Rule is a MathJax-specific extension with parameters being width,  -->\n<!-- height and depth of the rule\"                                        -->\n<!-- Davide Cervone                                                       -->\n<!-- https://groups.google.com/forum/#!topic/mathjax-users/IEivs1D7ntM    -->\n<xsl:template match=\"fillin[not(parent::m or parent::mrow)]\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::statement/../@exercise-interactive='fillin'\">\n            <xsl:apply-imports />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"characters\">\n                <xsl:choose>\n                    <xsl:when test=\"@characters\">\n                        <xsl:value-of select=\"@characters\" />\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>10</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <span class=\"fillin {$fillin-text-style}\" role=\"img\">\n                <xsl:attribute name=\"aria-label\">\n                    <xsl:value-of select=\"$characters\" />\n                    <xsl:text>-character blank</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"style\">\n                    <xsl:text>width: </xsl:text>\n                    <xsl:value-of select=\"5 * $characters div 11\" />\n                    <xsl:text>em;</xsl:text>\n                </xsl:attribute>\n            </span>\n            <xsl:if test=\"@rows or @cols\">\n                <xsl:apply-templates select=\".\" mode=\"fillin-array\"/>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Implication Symbols -->\n<!-- TODO: better names! -->\n<xsl:template match=\"imply\">\n    <xsl:text>&#x21D2;</xsl:text>\n</xsl:template>\n<xsl:template match=\"implyreverse\">\n    <xsl:text>&#x21D0;</xsl:text>\n</xsl:template>\n\n<!-- TeX, LaTeX w/ CSS -->\n<!-- Corresponding CSS from William Hammond   -->\n<!-- attributed to David Carlisle             -->\n<!-- \"mathjax-users\" Google Group, 2015-12-27 -->\n<!-- PreTeXt, XeLaTeX, XeTeX are in -common   -->\n\n<xsl:template match=\"latex\">\n    <span class=\"latex-logo\">L<span class=\"A\">a</span>T<span class=\"E\">e</span>X</span>\n</xsl:template>\n<xsl:template match=\"tex\">\n    <span class=\"latex-logo\">T<span class=\"E\">e</span>X</span>\n</xsl:template>\n\n<!-- External URLs, Email        -->\n<!-- Open in new window/tab as external reference                        -->\n<!-- If \"no-content\", prefer @visual to @href, and then automatically    -->\n<!-- format like code (verbatim)                                         -->\n<!-- Within titles, we just produce (formatted) text, but nothing active -->\n<!-- N.B.  In \"content\" case, we get a special footnote from the         -->\n<!-- assembly phase, so look elsewhere for that handling.                -->\n<!-- N.B. compare with LaTeX version, could move much to -common         -->\n<xsl:template match=\"url|dataurl\">\n    <!-- link/reference/location may be external -->\n    <!-- (@href) or internal (dataurl[@source])  -->\n    <xsl:variable name=\"uri\">\n        <xsl:choose>\n            <!-- \"url\" and \"dataurl\" both support external @href -->\n            <xsl:when test=\"@href\">\n                <xsl:value-of select=\"@href\"/>\n            </xsl:when>\n            <!-- a \"dataurl\" might be local, @source is      -->\n            <!-- indication, so prefix with a local path/URI -->\n            <xsl:when test=\"self::dataurl and @source\">\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"@source\"/>\n            </xsl:when>\n            <!-- empty will be non-functional -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- visible portion of HTML is the URL itself,   -->\n    <!-- formatted as code, or content of PTX element -->\n    <xsl:variable name=\"visible-text\">\n        <xsl:choose>\n            <xsl:when test=\"node()\">\n                <xsl:apply-templates/>\n            </xsl:when>\n            <xsl:otherwise>\n                <code class=\"code-inline tex2jax_ignore\">\n                    <xsl:choose>\n                        <xsl:when test=\"@visual\">\n                            <xsl:value-of select=\"@visual\"/>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:value-of select=\"$uri\"/>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </code>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Normally in an active link, except inactive in titles -->\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::shorttitle|ancestor::subtitle\">\n            <xsl:copy-of select=\"$visible-text\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- class name identifies an external link -->\n            <a class=\"external\" href=\"{$uri}\" target=\"_blank\">\n                <xsl:copy-of select=\"$visible-text\" />\n            </a>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"email\">\n    <xsl:element name=\"a\">\n        <xsl:attribute name=\"href\">\n            <xsl:text>mailto:</xsl:text>\n            <xsl:value-of select=\".\" />\n        </xsl:attribute>\n        <xsl:value-of select=\".\" />\n    </xsl:element>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- Verbatim Text -->\n<!-- ############# -->\n\n<!-- Code, inline -->\n<!-- HTML \"code\" element, with classes -->\n<xsl:template name=\"code-wrapper\">\n    <xsl:param name=\"content\"/>\n\n    <code class=\"code-inline tex2jax_ignore\">\n        <xsl:value-of select=\"$content\"/>\n    </code>\n</xsl:template>\n\n<xsl:template name=\"insert-clipboardable-class\">\n    <xsl:text> clipboardable</xsl:text>\n</xsl:template>\n\n<!-- 100% analogue of LaTeX's verbatim            -->\n<!-- environment or HTML's <pre> element          -->\n<!-- TODO: center on page?                        -->\n\n<!-- When visual spaces are requested, we mimic the               -->\n<!-- long-established pattern in LaTeX and use a (short) open     -->\n<!-- box character, which is also suggested as a \"graphic for     -->\n<!-- space\" as part of the Unicode standard.                      -->\n<!-- Unicode Character 'OPEN BOX' (U+2423)                        -->\n<!-- https://www.fileformat.info/info/unicode/char/2423/index.htm -->\n\n<!-- cd is for use in paragraphs, inline -->\n<!-- Unstructured is pure text           -->\n<xsl:template match=\"cd\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"pre\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>code-display tex2jax_ignore</xsl:text>\n            <xsl:call-template name=\"insert-clipboardable-class\" />\n        </xsl:attribute>\n        <xsl:choose>\n            <xsl:when test=\"not(@showspaces) or (@showspaces = 'none')\">\n                <xsl:value-of select=\".\" />\n            </xsl:when>\n            <xsl:when test=\"@showspaces = 'all'\">\n                <xsl:value-of select=\"str:replace(., '&#x20;', '&#x2423;')\" />\n            </xsl:when>\n        </xsl:choose>\n    </xsl:element>\n</xsl:template>\n\n<!-- cline template is in xsl/pretext-common.xsl -->\n<xsl:template match=\"cd[cline]\">\n    <xsl:param name=\"b-original\" select=\"true()\" />\n    <!-- newline inserted to encourage formatted output -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:element name=\"pre\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>code-display tex2jax_ignore</xsl:text>\n            <xsl:call-template name=\"insert-clipboardable-class\" />\n        </xsl:attribute>\n        <xsl:apply-templates select=\"cline\" />\n    </xsl:element>\n</xsl:template>\n\n<!-- Override from -common to insert visual spaces -->\n<xsl:template match=\"cline[parent::cd/@showspaces = 'all']\">\n    <xsl:value-of select=\"str:replace(., '&#x20;', '&#x2423;')\" />\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"pre\" is analogous to the HTML tag of the same name -->\n<!-- The \"interior\" templates decide between two styles  -->\n<!--   (a) clean up raw text, just like for Sage code    -->\n<!--   (b) interpret cline as line-by-line structure     -->\n<!-- (See templates in xsl/pretext-common.xsl file)     -->\n<!-- Then wrap in a pre element that MathJax ignores     -->\n<xsl:template match=\"pre\">\n    <pre>\n        <xsl:attribute name=\"class\">\n            <xsl:text>code-block tex2jax_ignore</xsl:text>\n            <xsl:call-template name=\"insert-clipboardable-class\" />\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"interior\"/>\n    </pre>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Special Characters -->\n<!-- ################## -->\n\n<!-- Quotation marks come in left and right variants. -->\n<!-- The lookup table is in pretext-common.xsl.       -->\n<xsl:template match=\"*\" mode=\"quote-character-unicode\">\n    <xsl:param name=\"style\"/>\n    <xsl:param name=\"side\"/>\n    <xsl:variable name=\"unicode-character\">\n        <xsl:for-each select=\"$quote-character-table\">\n            <xsl:value-of select=\"key('quote-character-key',\n                concat($style, '|', $side))/@unicode-character\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$unicode-character != ''\">\n            <xsl:value-of select=\"$unicode-character\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>\n                <xsl:text>PTX:BUG:  a quotation style (\"</xsl:text>\n                <xsl:value-of select=\"$style\"/>\n                <xsl:text>\") for a left quote character in HTML was not recognized</xsl:text>\n            </xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Left Single Quote -->\n<xsl:template match=\"*\" mode=\"lsq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-unicode\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-secondary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'left'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Right Single Quote -->\n<xsl:template match=\"*\" mode=\"rsq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-unicode\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-secondary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'right'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Left (Primary) Quote -->\n<xsl:template match=\"*\" mode=\"lq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-unicode\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-primary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'left'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Right (Double) Quote -->\n<xsl:template match=\"*\" mode=\"rq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-unicode\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-primary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'right'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Left Double Bracket -->\n<!-- MATHEMATICAL LEFT WHITE SQUARE BRACKET -->\n<xsl:template name=\"ldblbracket-character\">\n    <xsl:text>&#x27e6;</xsl:text>\n</xsl:template>\n\n<!-- Right Double Bracket -->\n<!-- MATHEMATICAL RIGHT WHITE SQUARE BRACKET -->\n<xsl:template name=\"rdblbracket-character\">\n    <xsl:text>&#x27e7;</xsl:text>\n</xsl:template>\n\n<!-- Left Angle Bracket -->\n<!-- LEFT ANGLE BRACKET -->\n<!-- U+2329 was once used and caused a validator warning      -->\n<!-- \"Text run is not in Unicode Normalization Form C\" (NFC)  -->\n<xsl:template name=\"langle-character\">\n    <xsl:text>&#x3008;</xsl:text>\n</xsl:template>\n\n<!-- Right Angle Bracket -->\n<!-- RIGHT ANGLE BRACKET -->\n<!-- U+232A was once used and caused a validator warning      -->\n<!-- \"Text run is not in Unicode Normalization Form C\" (NFC)  -->\n<xsl:template name=\"rangle-character\">\n    <xsl:text>&#x3009;</xsl:text>\n</xsl:template>\n\n\n<!-- Other Miscellaneous Symbols, Constructions -->\n\n<!-- Ellipsis (dots), for text, not math -->\n<xsl:template name=\"ellipsis-character\">\n    <xsl:text>&#x2026;</xsl:text>\n</xsl:template>\n\n<!-- Midpoint -->\n<!-- A centered dot used sometimes like a decorative dash -->\n<!-- Bringhurst: Not Unicode +387, \"GREEK ANO TELEIA\"     -->\n<xsl:template name=\"midpoint-character\">\n    <xsl:text>&#xb7;</xsl:text>\n</xsl:template>\n\n<!-- Swung Dash -->\n<!-- A decorative dash, like a tilde, but bigger, and centered -->\n<xsl:template name=\"swungdash-character\">\n    <xsl:text>&#x2053;</xsl:text>\n</xsl:template>\n\n<!-- Per Mille -->\n<!-- Or, per thousand, like a percent sign -->\n<xsl:template name=\"permille-character\">\n    <xsl:text>&#x2030;</xsl:text>\n</xsl:template>\n\n<!-- Pilcrow -->\n<!-- Often used to mark the start of a paragraph -->\n<xsl:template name=\"pilcrow-character\">\n    <xsl:text>&#xb6;</xsl:text>\n</xsl:template>\n\n<!-- Section Mark -->\n<!-- The stylized double-S to indicate section numbers -->\n<xsl:template name=\"section-mark-character\">\n    <xsl:text>&#xa7;</xsl:text>\n</xsl:template>\n\n<!-- Minus -->\n<!-- A hyphen/dash for use in text as subtraction or negation-->\n<xsl:template name=\"minus-character\">\n    <xsl:text>&#x2212;</xsl:text>\n</xsl:template>\n\n<!-- Times -->\n<!-- A \"multiplication sign\" symbol for use in text   -->\n<!-- Styled to enhance, consensus at Google Group was -->\n<!-- font-size: larger; vertical-align: -.2ex;        -->\n<xsl:template name=\"times-character\">\n    <xsl:element name=\"span\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>times-sign</xsl:text>\n        </xsl:attribute>\n        <xsl:text>&#xd7;</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- Solidus -->\n<!-- Fraction bar, not as steep as a forward slash -->\n<xsl:template name=\"solidus-character\">\n    <xsl:text>&#x2044;</xsl:text>\n</xsl:template>\n\n<!-- Obelus -->\n<!-- A \"division\" symbol for use in text -->\n<xsl:template name=\"obelus-character\">\n    <xsl:text>&#xf7;</xsl:text>\n</xsl:template>\n\n<!-- Plus/Minus -->\n<!-- The combined symbol -->\n<xsl:template name=\"plusminus-character\">\n    <xsl:text>&#xb1;</xsl:text>\n</xsl:template>\n\n<!-- Foreign words/idioms -->\n<!-- Rutter, Web Typography, p.50 advocates a \"span\" with      -->\n<!-- a \"lang\" attribute for foreign words so screen readers    -->\n<!-- and hyphenation react properly.  Elsewhere, italics is    -->\n<!-- suggested only for transliterated wods, to avoid          -->\n<!-- confusion. However, for now, we are using \"i\" by default, -->\n<!-- with a class that can be used in CSS for distinctions.    -->\n<!-- But see also (2018-03-23):                                -->\n<!-- https://www.w3.org/TR/html5/text-level-semantics.html#the-i-element -->\n<xsl:template match=\"foreign\">\n    <i class=\"foreign\">\n        <xsl:if test=\"@xml:lang\">\n            <xsl:attribute name=\"lang\">\n                <xsl:value-of select=\"@xml:lang\" />\n            </xsl:attribute>\n        </xsl:if>\n        <xsl:apply-templates/>\n    </i>\n</xsl:template>\n\n<!-- Symbols -->\n<!-- Symbols are for internal use within theme designs.            -->\n<!-- Compare to \"icons\" which are designed for author use.         -->\n<!-- Presumes material symbols font was loaded in \"fonts\" template -->\n<xsl:include href=\"./html-symbols.xsl\"/>\n<xsl:key name=\"symbol-key\" match=\"symbolinfo\" use=\"@name\"/>\n<xsl:variable name=\"symbol-table\" select=\"exsl:node-set($available-symbols-list)\"/>\n\n<xsl:template name=\"insert-symbol\">\n    <xsl:param name = \"name\" />\n    <!-- List of available html symbols for symbol    -->\n\n    <!-- lookup entity code as sanity check -->\n    <xsl:variable name=\"entity-name\">\n        <xsl:for-each select=\"$symbol-table\">\n            <xsl:value-of select=\"key('symbol-key', $name)/@entity\"/>\n        </xsl:for-each>\n    </xsl:variable>\n\n    <xsl:if test=\"$entity-name=''\">\n        <xsl:message>PTX:ERROR: the symbol name <xsl:value-of select=\"$name\"/> is not a known symbol. It will not render correctly.</xsl:message>\n    </xsl:if>\n\n    <!-- Could also just use $name here if assume browser supports ligatures. (Just about all do)  -->\n    <span class=\"icon material-symbols-outlined\" aria-hidden=\"true\">\n        <xsl:text disable-output-escaping=\"yes\">&amp;#x</xsl:text><xsl:value-of select=\"$entity-name\"/><xsl:text>;</xsl:text>\n    </span>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Icons -->\n<!-- ##### -->\n\n<!-- Presumes CSS headers have been loaded -->\n<xsl:template match=\"icon\">\n    <!-- the name attribute of the \"icon\" in text as a string -->\n    <xsl:variable name=\"icon-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n\n    <!-- for-each is just one node, but sets context for key() -->\n    <xsl:variable name=\"fa-family\">\n        <xsl:for-each select=\"$icon-table\">\n            <xsl:value-of select=\"key('icon-key', $icon-name)/@font-awesome-family\"/>\n        </xsl:for-each>\n    </xsl:variable>\n\n    <!-- for-each is just one node, but sets context for key() -->\n    <xsl:variable name=\"fa-name\">\n        <xsl:for-each select=\"$icon-table\">\n            <xsl:value-of select=\"key('icon-key', $icon-name)/@font-awesome\"/>\n        </xsl:for-each>\n    </xsl:variable>\n\n    <!-- Element could be \"i\", but seems non-semantic for screenreaders -->\n    <xsl:element name=\"span\">\n        <xsl:attribute name=\"class\">\n            <xsl:choose>\n                <xsl:when test=\"$fa-family = 'classic'\">\n                    <!-- \"solid\", may become \"fa-solid\" in v6\" -->\n                    <xsl:text>fas</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$fa-family = 'brands'\">\n                    <!-- \"brands\", may become \"fa-brand\" in v6\" -->\n                    <xsl:text>fab</xsl:text>\n                </xsl:when>\n                <xsl:otherwise/>\n            </xsl:choose>\n            <xsl:text> </xsl:text>\n            <xsl:text>fa-</xsl:text>\n            <xsl:value-of select=\"$fa-name\"/>\n        </xsl:attribute>\n    </xsl:element>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- Keyboard Keys -->\n<!-- ############# -->\n\n<xsl:template match=\"kbd[not(@name)]\">\n    <kbd class=\"kbdkey\">\n        <xsl:value-of select=\".\"/>\n    </kbd>\n</xsl:template>\n\n<xsl:template match=\"kbd[@name]\">\n    <!-- the name attribute of the \"kbd\" in text as a string -->\n    <xsl:variable name=\"kbdkey-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n    <!-- Entirely similar HTML/CSS, but will hold a Unicode character -->\n    <kbd class=\"kbdkey\">\n        <!-- for-each is just one node, but sets context for key() -->\n        <xsl:for-each select=\"$kbdkey-table\">\n            <xsl:value-of select=\"key('kbdkey-key', $kbdkey-name)/@unicode\" />\n        </xsl:for-each>\n    </kbd>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Biological Names -->\n<!-- ################ -->\n\n<!-- typically in an italic font -->\n\n<xsl:template match=\"taxon\">\n    <span class=\"taxon\">\n        <xsl:choose>\n            <!-- both substructures -->\n            <xsl:when test=\"genus and species\">\n                <xsl:apply-templates select=\"genus\"/>\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\"species\"/>\n            </xsl:when>\n            <!-- just one -->\n            <xsl:when test=\"genus\">\n                <xsl:apply-templates select=\"genus\"/>\n            </xsl:when>\n            <!-- just the other one -->\n            <xsl:when test=\"species\">\n                <xsl:apply-templates select=\"species\"/>\n            </xsl:when>\n            <!-- not structured, use content -->\n            <xsl:otherwise>\n                <xsl:apply-templates/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </span>\n</xsl:template>\n\n<xsl:template match=\"genus\">\n    <span class=\"genus\">\n        <xsl:apply-templates select=\"text()\"/>\n    </span>\n</xsl:template>\n\n<xsl:template match=\"species\">\n    <span class=\"species\">\n        <xsl:apply-templates select=\"text()\"/>\n    </span>\n</xsl:template>\n\n<!-- Titles of Publications -->\n<!-- 2018-02-05: Deprecate \"booktitle\" in favor of       -->\n<!-- \"pubtitle\".  Will still maintain all for a while.   -->\n<!-- CMOS:  When quoted in text or listed in a           -->\n<!-- bibliography, titles of books, journals, plays,     -->\n<!-- and other freestanding works are italicized; titles -->\n<!-- of articles, chapters, and other shorter works      -->\n<!-- are set in roman and enclosed in quotation marks.   -->\n<xsl:template match=\"pubtitle|booktitle\">\n    <span class=\"booktitle\">\n        <xsl:apply-templates/>\n    </span>\n</xsl:template>\n\n<!-- We provide the quotation marks explicitly, along       -->\n<!-- with a span for any additional styling.  The quotation -->\n<!-- marks are necessary for accessibility.                 -->\n<xsl:template match=\"articletitle\">\n    <span class=\"articletitle\">\n        <xsl:apply-templates select=\".\" mode=\"lq-character\"/>\n        <xsl:apply-templates/>\n        <xsl:apply-templates select=\".\" mode=\"rq-character\"/>\n    </span>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- Special Characters -->\n<!-- ################## -->\n\n<!-- These are specific instances of abstract templates        -->\n<!-- See the similar section of  pretext-common.xsl  for more -->\n\n<!-- Non-breaking space, which \"joins\" two words as a unit            -->\n<!-- Using &nbsp; does not travel well into node-set() in common file -->\n<!-- http://stackoverflow.com/questions/31870                         -->\n<!-- /using-a-html-entity-in-xslt-e-g-nbsp                            -->\n<!-- Should create UTF-8 anyway:                                      -->\n<!-- https://html.spec.whatwg.org/multipage/semantics.html#charset    -->\n\n<xsl:template name=\"nbsp-character\">\n    <xsl:text>&#xa0;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"ndash-character\">\n    <xsl:text>&#8211;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"mdash-character\">\n    <xsl:text>&#8212;</xsl:text>\n</xsl:template>\n\n<!-- The abstract template for \"mdash\" consults a publisher option -->\n<!-- for thin space, or no space, surrounding an em-dash.  So the  -->\n<!-- \"thin-space-character\" is needed for that purpose, and does   -->\n<!-- not have an associated empty PTX element.                     -->\n\n<xsl:template name=\"thin-space-character\">\n    <xsl:text>&#8201;</xsl:text>\n</xsl:template>\n\n<!--       -->\n<!-- Music -->\n<!--       -->\n\n<!--                 -->\n<!-- Musical Symbols -->\n<!--                 -->\n\n<!-- Accidentals -->\n\n<!-- TODO: If requested, add semi- and sesqui- versions of sharp and flat -->\n\n<!-- Double Sharp -->\n<!-- Unicode Character 'MUSICAL SYMBOL DOUBLE SHARP' (U+1D12A)    -->\n<!-- http://www.fileformat.info/info/unicode/char/1d12a/index.htm -->\n<xsl:template name=\"doublesharp\">\n    <xsl:text>&#x1D12A;</xsl:text>\n</xsl:template>\n\n<!-- Sharp -->\n<!-- Unicode Character 'MUSIC SHARP SIGN' (U+266F)               -->\n<!-- http://www.fileformat.info/info/unicode/char/266f/index.htm -->\n<xsl:template name=\"sharp\">\n    <xsl:text>&#x266F;</xsl:text>\n</xsl:template>\n\n<!-- Natural -->\n<!-- Unicode Character 'MUSIC NATURAL SIGN' (U+266E)             -->\n<!-- http://www.fileformat.info/info/unicode/char/266e/index.htm -->\n<xsl:template name=\"natural\">\n    <xsl:text>&#x266E;</xsl:text>\n</xsl:template>\n\n<!-- Flat -->\n<!-- Unicode Character 'MUSIC FLAT SIGN' (U+266D)                -->\n<!-- http://www.fileformat.info/info/unicode/char/266d/index.htm -->\n<xsl:template name=\"flat\">\n    <xsl:text>&#x266D;</xsl:text>\n</xsl:template>\n\n<!-- Double Flat -->\n<!-- Unicode Character 'MUSICAL SYMBOL DOUBLE FLAT' (U+1D12B)     -->\n<!-- http://www.fileformat.info/info/unicode/char/1d12b/index.htm -->\n<xsl:template name=\"doubleflat\">\n    <xsl:text>&#x1D12B;</xsl:text>\n</xsl:template>\n\n<!-- Half Diminished -->\n<!-- (MathJax does not support \"\\o\") -->\n<!-- Unicode Character 'LATIN SMALL LETTER O WITH STROKE' (U+00F8) -->\n<!-- http://www.fileformat.info/info/unicode/char/00F8/index.htm -->\n<xsl:template name=\"halfdiminishedchordsymbol\">\n    <xsl:text>&#x00F8;</xsl:text>\n</xsl:template>\n\n<!-- Implement abstract templates to support      -->\n<!-- formatting of bibliographic entries in HTML. -->\n\n<xsl:template match=\"*\" mode=\"italic\">\n    <i>\n        <xsl:apply-templates/>\n    </i>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"bold\">\n    <b>\n        <xsl:apply-templates/>\n    </b>\n</xsl:template>\n\n<!-- This should likely become an \"a\" for URLS -->\n<xsl:template match=\"*\" mode=\"monospace\">\n    <code class=\"code-inline tex2jax_ignore\">\n        <xsl:apply-templates/>\n    </code>\n</xsl:template>\n\n<xsl:template name=\"biblio-period\">\n    <xsl:text>.</xsl:text>\n</xsl:template>\n\n<!-- Index Entries -->\n<!-- Kill on sight, collect later to build index  -->\n<xsl:template match=\"index[not(index-list)]\" />\n<xsl:template match=\"idx\" />\n\n\n<!-- ############################ -->\n<!-- Literate Programming Support -->\n<!-- ############################ -->\n\n<!-- The \"fragment\" element is used various other places, so that it   -->\n<!-- slots into the knowl-creation system.  The pointer to a fragment, -->\n<!-- \"fragref\", is different, and this makes a visual representation   -->\n<!-- of a pointer to the target, as a knowl.  The next two templates   -->\n<!-- support the \"wrapped-content\" template for \"fragment\".            -->\n\n<!-- @ref is simply a pointer to a fragment, so -->\n<!-- convert title into a knowl for the target  -->\n<xsl:template match=\"fragref\">\n    <xsl:variable name=\"target\" select=\"id(@ref)\"/>\n    <span>\n        <xsl:call-template name=\"langle-character\"/>\n        <xsl:apply-templates select=\".\" mode=\"xref-link\">\n            <xsl:with-param name=\"target\" select=\"$target\" />\n            <!-- \"fragref\" is isomorpic to \"xref\" as a link -->\n            <xsl:with-param name=\"origin\" select=\"'xref'\" />\n            <xsl:with-param name=\"content\">\n                <xsl:apply-templates select=\"$target\" mode=\"title-full\"/>\n            </xsl:with-param>\n        </xsl:apply-templates>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\"$target\" mode=\"number\"/>\n        <xsl:call-template name=\"rangle-character\"/>\n    </span>\n    <br/>\n</xsl:template>\n\n<!-- wrap code in a \"pre\" environment, after pulling left -->\n<!-- Drop whitespace only text() nodes                    -->\n<xsl:template match=\"fragment/code\">\n    <xsl:variable name=\"normalized-frag\" select=\"normalize-space(.)\"/>\n    <xsl:if test=\"not($normalized-frag = '')\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Sage Cells -->\n<!-- TODO: make hidden autoeval cells link against sage-compute cells -->\n\n<!-- The block-type parameter is only received from, and sent to, the -->\n<!-- templates in the HTML conversion.  The purpose is to inform that -->\n<!-- conversion that the Sage cell is inside a born-hidden knowl      -->\n<!-- ($block-type = 'hidden') and adjust the class name accordingly.  -->\n\n<!-- Never an @id , so just repeat -->\n<xsl:template match=\"sage\" mode=\"duplicate\">\n    <xsl:apply-templates select=\".\" />\n</xsl:template>\n\n<!-- An abstract named template accepts input text and   -->\n<!-- output text, then wraps it for the Sage Cell Server -->\n<!-- TODO: consider showing output in green span (?),    -->\n<!-- presently output is dropped as computable           -->\n<!-- NB: button text is also set as part of knowls code  -->\n<xsl:template match=\"sage\" mode=\"sage-active-markup\">\n    <xsl:param name=\"language-attribute\" />\n    <xsl:param name=\"b-autoeval\" select=\"false()\"/>\n    <xsl:param name=\"in\" />\n    <xsl:param name=\"out\" />\n    <xsl:param name=\"b-original\"/>\n\n    <xsl:element name=\"div\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:attribute name=\"class\">\n            <!-- \".ptx-sagecell\" for CSS (and not simply .sagecell). -->\n            <!-- See https://github.com/sagemath/sagecell/issues/542 -->\n            <xsl:text>ptx-sagecell </xsl:text>\n            <xsl:call-template name=\"sagecell-class-name\">\n                <xsl:with-param name=\"language-attribute\" select=\"$language-attribute\"/>\n                <xsl:with-param name=\"b-autoeval\" select=\"$b-autoeval\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n\n        <xsl:element name=\"script\">\n            <xsl:attribute name=\"type\">\n                <xsl:text>text/x-sage</xsl:text>\n            </xsl:attribute>\n            <xsl:value-of select=\"$in\" />\n        </xsl:element>\n    </xsl:element>\n</xsl:template>\n\n<!-- An abstract named template accepts input text   -->\n<!-- and provides the display class, so untouchable  -->\n<xsl:template name=\"sage-display-markup\">\n    <xsl:param name=\"in\" />\n\n    <pre>\n        <xsl:attribute name=\"class\">\n            <!-- \".ptx-sagecell\" for CSS (and not simply .sagecell). -->\n            <!-- See https://github.com/sagemath/sagecell/issues/542 -->\n            <xsl:text>ptx-sagecell sage-display</xsl:text>\n        </xsl:attribute>\n        <script type=\"text/x-sage\">\n            <xsl:value-of select=\"$in\" />\n        </script>\n    </pre>\n</xsl:template>\n\n<!-- Program Listings -->\n<!-- Research:  http://softwaremaniacs.org/blog/2011/05/22/highlighters-comparison/  -->\n<!-- See common file for more on language handlers, and \"language-prism\" template    -->\n<!-- TODO: maybe ship sanitized \"input\" to each modal template? -->\n<xsl:template match=\"program[not(ancestor::sidebyside)]|console[not(ancestor::sidebyside)]\">\n    <!-- Possibly annotate with the source                     -->\n    <xsl:apply-templates select=\".\" mode=\"view-source-widget\"/>\n    <xsl:choose>\n        <!-- if  a program is elected as interactive, then     -->\n        <!-- let Runestone do the best it can via the template -->\n        <xsl:when test=\"self::program and (@interactive='activecode')\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-activecode\"/>\n        </xsl:when>\n        <!-- if  a program is elected as interactive, then     -->\n        <!-- let Runestone do the best it can via the template -->\n        <xsl:when test=\"self::program and (@interactive='codelens')\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-codelens\"/>\n        </xsl:when>\n        <!-- fallback is a less-capable static version, which -->\n        <!-- might actually be desired for many formats       -->\n        <xsl:otherwise>\n            <xsl:variable name=\"rtf-layout\">\n                <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n            </xsl:variable>\n            <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n            <!-- div is constraint/positioning for contained program/console -->\n            <div class=\"code-box\">\n                <!-- only produce inline styles if width has been changed -->\n                <xsl:if test=\"$layout/width != 100\">\n                    <xsl:attribute name=\"style\">\n                        <xsl:text>width: </xsl:text>\n                        <xsl:value-of select=\"$layout/width\"/>\n                        <xsl:text>%;</xsl:text>\n                        <xsl:text> margin-left: </xsl:text>\n                        <xsl:value-of select=\"$layout/left-margin\"/>\n                        <xsl:text>%;</xsl:text>\n                        <xsl:text> margin-right: </xsl:text>\n                        <xsl:value-of select=\"$layout/right-margin\"/>\n                        <xsl:text>%;</xsl:text>\n                    </xsl:attribute>\n                </xsl:if>\n                <xsl:apply-templates select=\".\" mode=\"code-inclusion\"/>\n            </div>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"program[ancestor::sidebyside]|console[ancestor::sidebyside]\">\n    <!-- Possibly annotate with the source                     -->\n    <xsl:apply-templates select=\".\" mode=\"view-source-widget\"/>\n    <xsl:choose>\n        <!-- if  a program is elected as interactive, then     -->\n        <!-- let Runestone do the best it can via the template -->\n        <xsl:when test=\"self::program and (@interactive='activecode')\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-activecode\"/>\n        </xsl:when>\n        <!-- if  a program is elected as interactive, then     -->\n        <!-- let Runestone do the best it can via the template -->\n        <xsl:when test=\"self::program and (@interactive='codelens')\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-codelens\"/>\n        </xsl:when>\n        <!-- fallback is a less-capable static version, which -->\n        <!-- might actually be desired for many formats       -->\n        <!-- constrained by side-by-side boxes                -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"code-inclusion\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- An inline program fragment with potential -->\n<!-- syntax highlighting from Prism            -->\n<!-- Whitespace is left as authored            -->\n<xsl:template match=\"pf\">\n    <xsl:variable name=\"prism-language\">\n        <xsl:apply-templates select=\".\" mode=\"prism-language\"/>\n    </xsl:variable>\n    <code>\n        <xsl:attribute name=\"class\">\n            <xsl:text>code-inline tex2jax_ignore</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"not($prism-language = '')\">\n                    <xsl:text> language-</xsl:text>\n                    <xsl:value-of select=\"$prism-language\" />\n                </xsl:when>\n                <!-- else, explicitly use what code gives -->\n                <xsl:otherwise>\n                    <xsl:text> language-none</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:value-of select=\".\" />\n    </code>\n</xsl:template>\n\n<!-- A non-interactive version with potential -->\n<!-- syntax highlighting from Prism           -->\n<xsl:template match=\"program\" mode=\"code-inclusion\">\n    <xsl:variable name=\"prism-language\">\n        <xsl:apply-templates select=\".\" mode=\"prism-language\"/>\n    </xsl:variable>\n    <!-- a \"program\" element may be empty in a coding       -->\n    <!-- exercise, and just used to indicate an interactive -->\n    <!-- area supporting some language                      -->\n    <xsl:variable name=\"b-has-code\" select=\"not(normalize-space(code) = '') or preamble[@visible = 'yes'] or postamble[@visible = 'yes']\"/>\n    <xsl:if test=\"$b-has-code\">\n        <pre>\n            <!-- always identify as coming from \"program\" -->\n            <xsl:attribute name=\"class\">\n                <xsl:text>program</xsl:text>\n                <xsl:call-template name=\"insert-clipboardable-class\" />\n                <!-- conditionally request line numbers -->\n                <xsl:if test=\"@line-numbers = 'yes'\">\n                    <xsl:text> line-numbers</xsl:text>\n                </xsl:if>\n            </xsl:attribute>\n            <!-- Setup line highlighting and numbering -->\n            <xsl:if test=\"@highlight-lines != ''\">\n                <xsl:attribute name=\"data-line\">\n                    <!-- force comma-, or space-separated, list to commas -->\n                    <xsl:value-of select=\"translate(normalize-space(translate(@highlight-lines, ',', ' ')), ' ', ',')\"/>\n                </xsl:attribute>\n            </xsl:if>\n            <code>\n                <!-- Runestone may have a use for ids and filenames, even on non-interactive -->\n                <!-- programs (e.g. inclusion elsewhere).                                    -->\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <xsl:if test=\"@filename\">\n                    <xsl:attribute name=\"data-filename\">\n                        <xsl:value-of select=\"@filename\"/>\n                    </xsl:attribute>\n                </xsl:if>\n                <!-- Prism only needs a single class name, per language  -->\n                <!-- placed on \"code\" but will migrate to the \"pre\" also -->\n                <xsl:attribute name=\"class\">\n                    <xsl:choose>\n                        <xsl:when test=\"not($prism-language = '')\">\n                            <xsl:text>language-</xsl:text>\n                            <xsl:value-of select=\"$prism-language\" />\n                        </xsl:when>\n                        <!-- else, explicitly use what code gives -->\n                        <xsl:otherwise>\n                            <xsl:text>language-none</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:attribute>\n                <!-- build up full program text so we can apply sanitize-text to entire blob -->\n                <!-- and thus allow relative indentation for preamble/code/postamble         -->\n                <xsl:variable name=\"program-text\">\n                    <xsl:if test=\"preamble[not(@visible = 'no')]\">\n                        <xsl:apply-templates select=\"preamble\" mode=\"program-part-processing\"/>\n                    </xsl:if>\n                    <xsl:apply-templates select=\"code\" mode=\"program-part-processing\"/>\n                    <xsl:if test=\"postamble[not(@visible = 'no')]\">\n                        <xsl:apply-templates select=\"postamble\" mode=\"program-part-processing\"/>\n                    </xsl:if>\n                </xsl:variable>\n                <!-- now sanitize the whole blob -->\n                <xsl:call-template name=\"sanitize-text\">\n                    <xsl:with-param name=\"text\" select=\"$program-text\" />\n                </xsl:call-template>\n            </code>\n        </pre>\n    </xsl:if>\n</xsl:template>\n\n<!-- Data Files -->\n\n<xsl:template match=\"datafile\">\n    <xsl:apply-templates select=\".\" mode=\"runestone-to-interactive\"/>\n</xsl:template>\n\n<!-- Queries -->\n\n<xsl:template match=\"query\">\n    <xsl:apply-templates select=\".\" mode=\"runestone-to-interactive\"/>\n</xsl:template>\n\n<!-- Console/input helper -->\n<!-- A single line of input, possibly with \"prefix\" (prompt or continuation) -->\n<!-- prefix gets wrapped in span if not empty -->\n<xsl:template name=\"input-line-with-prompt\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"prefix\" />\n    <xsl:if test=\"not($prefix = '')\">\n        <span class=\"prompt unselectable\">\n            <xsl:value-of select=\"$prefix\"/>\n        </span>\n    </xsl:if>\n    <b>\n        <xsl:value-of select=\"$text\" />\n    </b>\n</xsl:template>\n\n<!-- Console Session -->\n<!-- An interactive command-line session with a prompt, input and output -->\n<xsl:template match=\"console\" mode=\"code-inclusion\">\n    <!-- ignore prompt, and pick it up in trailing input -->\n    <pre>\n        <xsl:attribute name=\"class\">\n            <xsl:text>console</xsl:text>\n            <xsl:call-template name=\"insert-clipboardable-class\" />\n        </xsl:attribute>\n        <xsl:apply-templates select=\"input|output\"/>\n    </pre>\n</xsl:template>\n\n<xsl:template match=\"console/input\">\n    <xsl:variable name=\"prompt\">\n        <xsl:apply-templates select=\".\" mode=\"determine-console-prompt\"/>\n    </xsl:variable>\n    <xsl:variable name=\"continuation\">\n        <xsl:apply-templates select=\".\" mode=\"determine-console-continuation\"/>\n    </xsl:variable>\n    <xsl:variable name=\"sanitized-text\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$continuation = ''\">\n            <xsl:call-template name=\"input-line-with-prompt\">\n                <xsl:with-param name=\"text\" select=\"$sanitized-text\" />\n                <xsl:with-param name=\"prefix\" select=\"$prompt\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:for-each select=\"str:tokenize($sanitized-text, '&#xa;')\">\n                <xsl:choose>\n                    <xsl:when test=\"preceding-sibling::token\">\n                        <xsl:call-template name=\"input-line-with-prompt\">\n                            <xsl:with-param name=\"text\" select=\".\" />\n                            <xsl:with-param name=\"prefix\" select=\"$continuation\" />\n                        </xsl:call-template>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:call-template name=\"input-line-with-prompt\">\n                            <xsl:with-param name=\"text\" select=\".\" />\n                            <xsl:with-param name=\"prefix\" select=\"$prompt\" />\n                        </xsl:call-template>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:for-each>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"console/output\">\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n</xsl:template>\n\n\n<!-- ############ -->\n<!-- Interactives -->\n<!-- ############ -->\n\n<!-- Every interactive is an \"iframe\" - this allows us to confine      -->\n<!-- libraries, variables, and scripts to just where they are needed.  -->\n<!-- And we can \"sandbox\" an iframe.  Some simple interactives, coming -->\n<!-- from servers, are built to be iframes.  In other cases, we build  -->\n<!-- a super-minimal page to serve as the @src of an iframe.  For each -->\n<!-- \"interactive\", we also build a stand-alone page to serve as the   -->\n<!-- target of a live link in a static format (such as a QR code in a  -->\n<!-- LaTeX/PDF document).                                              -->\n<!--                                                                   -->\n<!-- PTX source may include a \"static\" element - we routinely ignore   -->\n<!-- for HTML output, as it is only employed in static output formats  -->\n<!-- https://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/ -->\n\n<!-- Three actions, all based on \"interactive-core\" template -->\n<xsl:template match=\"interactive\">\n    <xsl:param name=\"heading-level\"/>\n    <!-- (1) Build, display full content on the page, where born -->\n    <xsl:apply-templates select=\".\" mode=\"interactive-core\">\n        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n    </xsl:apply-templates>\n    <!-- (2) Identical content, but now isolated on a reader-friendly page -->\n    <!-- (we skip this for portable html)                                  -->\n    <!-- The standalone page has its own masthead h1, so headings inside   -->\n    <!-- start fresh at h2.                                                -->\n    <xsl:if test=\"not($b-portable-html)\">\n        <xsl:apply-templates select=\".\" mode=\"standalone-page\" >\n            <xsl:with-param name=\"content\">\n                <xsl:apply-templates select=\".\" mode=\"interactive-core\">\n                    <xsl:with-param name=\"is-standalone\" select=\"true()\"/>\n                    <xsl:with-param name=\"heading-level\" select=\"2\"/>\n                </xsl:apply-templates>\n            </xsl:with-param>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- (3) A simple page that can be used in an iframe construction -->\n    <!-- (portable html still needs these, since they contain the     -->\n    <!-- the content for the interactive                              -->\n    <xsl:apply-templates select=\".\" mode=\"create-iframe-page\" />\n</xsl:template>\n\n<!-- Following will generate:              -->\n<!--   1.  Instructions (paragraphs, etc)  -->\n<!--   2.  An iframe, via modal-template   -->\n<xsl:template match=\"interactive\" mode=\"interactive-core\">\n    <xsl:param name=\"is-standalone\" select=\"false()\"/>\n    <xsl:param name=\"heading-level\"/>\n    <!-- We want to recognize an \"interactive\" authored  -->\n     <!-- in an \"exercise\" (or similar) which originated -->\n     <!-- from a \"dual\" dynamic/static exercise.         -->\n    <xsl:variable name=\"b-in-dual-exercise\" select=\"ancestor::*[@exercise-interactive = 'dual']\"/>\n    <xsl:choose>\n        <!-- A DoenetML interactive lives two lives.  Plain 'ol PreTeXt,  -->\n        <!-- supported by a Doenet CDN for its interactivity.  But when   -->\n        <!-- hosted on Runestone it can communicate its results.  So it   -->\n        <!-- needs surrounding infrastructure, in part to hold an id.     -->\n        <xsl:when test=\"(@platform = 'doenetml') and $b-host-runestone\">\n            <div class=\"ptx-runestone-container\">\n                <div data-component=\"doenet\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                    </xsl:attribute>\n                    <xsl:apply-templates select=\".\" mode=\"iframe-interactive\"/>\n                </div>\n            </div>\n        </xsl:when>\n        <!-- An iframe interactive lives two lives.  Plain 'ol PreTeXt. But  -->\n        <!-- when hosted on Runestone, and authored as the \"dynamic\" part of -->\n        <!-- a \"dual\" exercise it needs surrounding infrastructure, in part  -->\n        <!-- to hold an id.  SPLICE is the protocol for a generic iframe to  -->\n        <!-- communicate reader responses, plus save and restore state.      -->\n        <xsl:when test=\"@iframe and $b-in-dual-exercise and $b-host-runestone\">\n            <div class=\"ptx-runestone-container\">\n                <div data-component=\"splice\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                    </xsl:attribute>\n                    <xsl:apply-templates select=\".\" mode=\"iframe-interactive\"/>\n                </div>\n            </div>\n        </xsl:when>\n        <!-- no more special situations for Runestone exercises -->\n        <xsl:otherwise>\n            <div class=\"interactive-iframe-container\">\n                <xsl:apply-templates select=\".\" mode=\"iframe-interactive\"/>\n            </div>\n            <xsl:variable name=\"resize-behavior\">\n                <xsl:apply-templates select=\".\" mode=\"get-resize-behavior\"/>\n            </xsl:variable>\n            <xsl:if test=\"$is-standalone = false()\">\n                <div class=\"interactive-iframe-container__opener\">\n                    <xsl:variable name=\"if-filename\">\n                        <xsl:apply-templates select=\".\" mode=\"standalone-filename\" />\n                    </xsl:variable>\n                    <xsl:variable name=\"label\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'open-new-tab'\"/>\n                        </xsl:apply-templates>\n                    </xsl:variable>\n                    <a href=\"{$if-filename}\" title=\"{$label}\" aria-label=\"{$label}\" target=\"_blank\">\n                        <xsl:call-template name=\"insert-symbol\">\n                            <xsl:with-param name=\"name\" select=\"'open_in_new'\"/>\n                        </xsl:call-template>\n                    </a>\n                </div>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- \"instructions\" next, *always* as a knowl -->\n    <!-- \"title\" is handled in knowl creation     -->\n    <!-- div.solutions is good, but replacable?   -->\n    <xsl:if test=\"instructions\">\n        <div class=\"instructions interactive__instructions\">\n            <xsl:apply-templates select=\"instructions\">\n                <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n            </xsl:apply-templates>\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- ################### -->\n<!-- iframe Interactives -->\n<!-- ################### -->\n\n<!-- Given by a small piece of information used -->\n<!-- to form the @src attribute of an \"iframe\"  -->\n<!-- An iframe has @width, @height attributes,  -->\n<!-- specified in pixels                        -->\n\n<!-- Check if author wants to dark mode to propagate into iframe   -->\n<!-- Propogation will only work for iframes on same server as page -->\n<xsl:template match=\"*\" mode=\"iframe-dark-mode-attribute\">\n    <xsl:if test=\"$b-theme-has-darkmode and @dark-mode-enabled\">\n        <xsl:attribute name=\"data-dark-mode-enabled\">true</xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<!-- Desmos -->\n<!-- The simplest possible example of this type -->\n<xsl:template match=\"interactive[@desmos]\" mode=\"iframe-interactive\">\n    <iframe src=\"https://www.desmos.com/calculator/{@desmos}\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:apply-templates select=\".\" mode=\"iframe-dark-mode-attribute\" />\n        <xsl:apply-templates select=\".\" mode=\"interactive-sizing-style-attribute\" />\n    </iframe>\n</xsl:template>\n\n<!-- CalcPlot3D -->\n<!-- A bit more complicated, as the configuration   -->\n<!-- is a query string of a URL, and we can specify -->\n<!-- the style of the interface through @variant    -->\n<xsl:template match=\"interactive[@calcplot3d]\" mode=\"iframe-interactive\">\n    <!-- Use @variant to pick an endpoint/view/infrastructure -->\n    <xsl:variable name=\"cp3d-endpoint\">\n        <xsl:choose>\n            <xsl:when test=\"@variant='application'\">\n                <xsl:text>https://c3d.libretexts.org/CalcPlot3D/index.html</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@variant='controls'\">\n                <xsl:text>https://c3d.libretexts.org/CalcPlot3D/dynamicFigureWCP/index.html</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@variant='minimal'\">\n                <xsl:text>https://c3d.libretexts.org/CalcPlot3D/dynamicFigure/index.html</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- just a silly domain so something none-too-crazy happens -->\n                <xsl:text>http://www.example.com/</xsl:text>\n                <xsl:message>PTX:ERROR:  @variant=\"<xsl:value-of select=\"@variant\" />\" is not recognized for a CalcPlot3D &lt;interactive&gt;</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- load 'em up and go -->\n    <!-- TODO: box-sizing, etc does not seem to help with vertical scroll bars -->\n    <xsl:variable name=\"full-url\" select=\"concat($cp3d-endpoint, '?', @calcplot3d)\" />\n    <iframe src=\"{$full-url}\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:apply-templates select=\".\" mode=\"interactive-sizing-style-attribute\" />\n        <xsl:apply-templates select=\".\" mode=\"iframe-dark-mode-attribute\" />\n    </iframe>\n</xsl:template>\n\n<!-- CircuitJS: https://www.falstad.com -->\n<!-- www.bait-consulting.com/publications/circuit_simulator_manual.pdf -->\n<xsl:template match=\"interactive[@circuitjs]\" mode=\"iframe-interactive\">\n    <!-- CircuitJS native language, as a URL-safe string -->\n    <xsl:variable name=\"url-string\">\n        <xsl:choose>\n            <!-- a prepared string is in the signaling attribute -->\n            <xsl:when test=\"normalize-space(@circuitjs)\">\n                <xsl:value-of select=\"@circuitjs\"/>\n            </xsl:when>\n            <!-- Else, a more-friendly version is in a \"source\" element -->\n            <!-- Note that when a \"source\" element is used, and then    -->\n            <!-- provided in iframe/@src, the XSL processing itself     -->\n            <!-- will do the necessary escaping to join lines, etc      -->\n            <!-- (such as newlines to \"%0A\" and spaces to \"%20\")        -->\n            <!-- So we just strip leading whitespace primarily          -->\n            <xsl:when test=\"source\">\n                <xsl:call-template name=\"sanitize-text\">\n                    <xsl:with-param  name=\"text\">\n                        <xsl:value-of select=\"source\"/>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:when>\n            <!-- no code, empty string, still makes a nice widget -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <iframe src=\"https://www.falstad.com/circuit/circuitjs.html?cct='{$url-string}'\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:apply-templates select=\".\" mode=\"interactive-sizing-style-attribute\" />\n        <xsl:apply-templates select=\".\" mode=\"iframe-dark-mode-attribute\" />\n    </iframe>\n</xsl:template>\n\n<!-- Arbitrary IFrame -->\n<!-- Almost too easy and trivial, so last, not first -->\n<!-- Assumes a local, \"external\", HTML file to house -->\n<xsl:template match=\"interactive[@iframe]\" mode=\"iframe-interactive\">\n    <!-- Distinguish netowk location versus (external) file -->\n    <xsl:variable name=\"b-network-location\" select=\"(substring(@iframe, 1, 7) = 'http://') or\n                                                    (substring(@iframe, 1, 8) = 'https://')\"/>\n\n    <xsl:variable name=\"location\">\n        <!-- prefix with directory information if not obviously a network location -->\n        <xsl:if test=\"not($b-network-location)\">\n            <!-- empty when not using managed directories -->\n            <xsl:value-of select=\"$external-directory\"/>\n        </xsl:if>\n        <xsl:value-of select=\"@iframe\"/>\n    </xsl:variable>\n    <iframe src=\"{$location}\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:apply-templates select=\".\" mode=\"interactive-sizing-style-attribute\" />\n        <xsl:apply-templates select=\".\" mode=\"iframe-dark-mode-attribute\" />\n    </iframe>\n</xsl:template>\n\n<!-- For more complicated interactives, we just point to the page we generate -->\n<xsl:template match=\"interactive[@platform]\" mode=\"iframe-interactive\">\n    <iframe>\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:apply-templates select=\".\" mode=\"interactive-sizing-style-attribute\" />\n        <xsl:attribute name=\"src\">\n            <xsl:apply-templates select=\".\" mode=\"iframe-filename\" />\n        </xsl:attribute>\n        <!-- title attribute for accessibility -->\n        <xsl:choose>\n            <xsl:when test=\"not(string(shortdescription) = '')\">\n                <xsl:attribute name=\"title\">\n                    <xsl:apply-templates select=\"shortdescription\" />\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:when test=\"description\">\n                <xsl:attribute name=\"title\">\n                    <xsl:text>described in detail following the image</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"aria-describedby\">\n                    <xsl:apply-templates select=\".\" mode=\"describedby-id\"/>\n                </xsl:attribute>\n            </xsl:when>\n        </xsl:choose>\n        <xsl:apply-templates select=\".\" mode=\"iframe-dark-mode-attribute\" />\n    </iframe>\n    <!-- possibly give a long description -->\n    <xsl:apply-templates select=\".\" mode=\"description\"/>\n</xsl:template>\n\n<!-- ######################### -->\n<!-- Source File Interactives  -->\n<!-- ######################### -->\n\n<!-- Build a minimal page for iframe contents -->\n<!-- This version for @platform variant       -->\n<!--   MathJax for PTX delimiters             -->\n<!--   Platform specific libraries into head  -->\n<!--   Author-libraries after slate exist     -->\n<xsl:template match=\"interactive[@platform]\" mode=\"create-iframe-page\">\n    <xsl:variable name=\"if-filename\">\n        <xsl:apply-templates select=\".\" mode=\"iframe-filename\" />\n    </xsl:variable>\n    <exsl:document href=\"{$if-filename}\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n        <xsl:call-template name=\"converter-blurb-html-no-date\"/>\n        <html>\n            <xsl:call-template name=\"language-attributes\"/>\n            <head>\n                <!-- grab the contents every iframe gets -->\n                <xsl:copy-of select=\"$file-wrap-iframe-head-cache\"/>\n                <!-- now do anything that is or could be page-specific and comes after cache -->\n                <!-- and CSS for the entire interactive, into the head -->\n                <xsl:apply-templates select=\"@css\" />\n                <!-- load header libraries (for all \"slate\") -->\n                <xsl:apply-templates select=\".\" mode=\"header-libraries\" />\n            </head>\n                <!-- ignore MathJax signals everywhere, then enable selectively -->\n                <body class=\"ptx-content ignore-math\">\n                <!-- potential document-id per-page -->\n                <xsl:call-template name=\"document-id\"/>\n                <!-- React flag -->\n                <xsl:call-template name=\"react-in-use-flag\"/>\n                <!-- Some interactives use slates that are PreTeXt  -->\n                <!-- elements, hence could have math, hence need to -->\n                <!-- know globally available macros from the author -->\n                <xsl:call-template name=\"latex-macros\"/>\n                <xsl:if test=\"slate|sidebyside|sbsgroup\">\n                    <div>\n                        <!-- aspect ratio will force the proper height for wrapper div                           -->\n                        <!-- don't want to mess with width as iframe has applied any % width and px is redundant -->\n                        <xsl:attribute name=\"style\">\n                            <xsl:text>aspect-ratio: </xsl:text>\n                            <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\"/>\n                            <xsl:text>;</xsl:text>\n                        </xsl:attribute>\n\n                        <!-- stack, else use a layout -->\n                        <xsl:apply-templates select=\"slate|sidebyside|sbsgroup\" />\n                    </div>\n                </xsl:if>\n                <!-- accumulate script tags *after* HTML elements -->\n                <xsl:apply-templates select=\"@source\" />\n                <!-- accumulate script elements *after* @source scripts -->\n                <xsl:apply-templates select=\"script\"/>\n            </body>\n        </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- These forms *are* iframes, so we don't need to build their content -->\n<!-- NB: coordinate with \"embed-iframe-url\" in -common                  -->\n<xsl:template match=\"interactive[@desmos|@geogebra|@calcplot3d|@circuitjs|@iframe]\" mode=\"create-iframe-page\" />\n\n\n<!-- ################ -->\n<!-- Header Libraries -->\n<!-- ################ -->\n\n<!-- Specified by libraries through @platform attribute  -->\n<!-- or explicitly with @library, and with per-slate     -->\n<!-- @source files stored locally, these draw on \"slate\" -->\n<!-- elements having different @surface characteristics  -->\n\n<!-- Geogebra header libraries -->\n<xsl:template match=\"interactive[@platform = 'geogebra']\" mode=\"header-libraries\">\n    <script type=\"text/javascript\" src=\"https://cdn.geogebra.org/apps/deployggb.js\"></script>\n</xsl:template>\n\n<!-- Sage Interact header libraries -->\n<!-- \".sage-interact\" must match use in \"slate\" -->\n<xsl:template match=\"interactive[@platform = 'sage']\" mode=\"header-libraries\">\n    <script src=\"https://sagecell.sagemath.org/static/embedded_sagecell.js\"></script>\n    <script>\n        <xsl:text>sagecell.makeSagecell(</xsl:text>\n        <xsl:call-template name=\"json\">\n            <xsl:with-param name=\"content\">\n                <map xmlns=\"http://www.w3.org/2005/xpath-functions\">\n                    <string key=\"inputLocation\">.sage-interact</string>\n                    <boolean key=\"autoeval\">true</boolean>\n                    <array key=\"hide\">\n                        <string>editor</string>\n                        <string>evalButton</string>\n                        <string>permalink</string>\n                    </array>\n                </map>\n            </xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>);&#xa;</xsl:text>\n    </script>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"https://sagecell.sagemath.org/static/sagecell_embed.css\" />\n</xsl:template>\n\n<!-- JSXGraph header libraries -->\n<xsl:template match=\"interactive[@platform = 'jsxgraph']\" mode=\"header-libraries\">\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/1.8.0/jsxgraph.css\" />\n    <script type=\"text/javascript\" src=\"https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/1.8.0/jsxgraphcore.js\"></script>\n</xsl:template>\n\n<!-- D3.js header libraries -->\n<xsl:template match=\"interactive[@platform = 'd3']\" mode=\"header-libraries\">\n    <xsl:variable name=\"d3-library-url\">\n        <xsl:text>https://d3js.org/d3.v</xsl:text>\n        <!-- versions could be 3, 4, 5 -->\n        <xsl:choose>\n            <xsl:when test=\"@version\">\n                <xsl:value-of select=\"@version\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>5</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>.min.js</xsl:text>\n    </xsl:variable>\n    <script src=\"{$d3-library-url}\"></script>\n</xsl:template>\n\n<!-- DoenetML header libraries -->\n<xsl:template match=\"interactive[@platform = 'doenetml']\" mode=\"header-libraries\">\n    <xsl:variable name=\"doenet-version\">\n        <xsl:choose>\n            <xsl:when test=\"@version\">\n                <xsl:value-of select=\"@version\"/>\n            </xsl:when>\n            <xsl:when test=\"$docinfo/doenetml/@version\">\n                <xsl:value-of select=\"$docinfo/doenetml/@version\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>latest</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"doenet-css-url\">\n        <xsl:text>https://cdn.jsdelivr.net/npm/@doenet/standalone@</xsl:text>\n        <xsl:value-of select=\"$doenet-version\"/>\n        <xsl:text>/style.css</xsl:text>\n    </xsl:variable>\n    <xsl:variable name=\"doenet-js-url\">\n        <xsl:text>https://cdn.jsdelivr.net/npm/@doenet/standalone@</xsl:text>\n        <xsl:value-of select=\"$doenet-version\"/>\n        <xsl:text>/doenet-standalone.js</xsl:text>\n    </xsl:variable>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"{$doenet-css-url}\" />\n    <script onload=\"onLoad()\" type=\"module\" src=\"{$doenet-js-url}\"></script>\n    <script>\n        <xsl:text>function onLoad() {window.renderDoenetViewerToContainer(document.querySelector(\".doenetml-applet\"))}</xsl:text>\n    </script>\n</xsl:template>\n\n<xsl:template match=\"image/mermaid\" mode=\"header-libraries\">\n    <xsl:call-template name=\"mermaid-header\"/>\n</xsl:template>\n\n<!-- Javascript header libraries (none) -->\n<xsl:template match=\"interactive[@platform = 'javascript']\" mode=\"header-libraries\" />\n\n<!-- ########################### -->\n<!-- Slates (objects to draw on) -->\n<!-- ########################### -->\n\n<!-- Slates are where we draw, with different surfaces -->\n\n<xsl:template match=\"slate[@surface='div']\">\n    <div>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"@xml:id\" />\n        </xsl:attribute>\n        <!-- aspect ratio will force the proper height for wrapper div -->\n        <xsl:attribute name=\"style\">\n            <xsl:text>aspect-ratio: </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\"/>\n            <xsl:text>;</xsl:text>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"interactive-slate-sizing-style-attributes\" />\n    </div>\n</xsl:template>\n\n<xsl:template match=\"slate[@surface = 'pretext']\">\n    <div class=\"slate-ptx\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <!-- Perhaps more children make sense?  A 1-panel \"sidebyside\" -->\n        <!-- does allow for a wider range of children.                 -->\n        <xsl:apply-templates select=\"p|tabular|sidebyside|sbsgroup\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"slate[@surface='svg']\">\n    <svg>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"@xml:id\" />\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"interactive-slate-sizing-style-attributes\" />\n    </svg>\n</xsl:template>\n\n<xsl:template match=\"slate[@surface = 'canvas']\">\n    <canvas>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"@xml:id\" />\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"interactive-slate-sizing-style-attributes\" />\n    </canvas>\n</xsl:template>\n\n<!-- HTML Code -->\n<!-- Simply create deep-copy of HTML elements -->\n<!-- TODO: should this be a div, with width and height? -->\n<xsl:template match=\"slate[@surface = 'html']\">\n    <xsl:copy-of select=\"*\" />\n</xsl:template>\n\n<!-- Similar to the \"div\" surface, but with class information -->\n<xsl:template match=\"slate[@surface = 'jsxboard']\">\n    <div>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"@xml:id\" />\n        </xsl:attribute>\n        <xsl:attribute name=\"class\">\n            <xsl:text>jxgbox</xsl:text>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"size-pixels-style-attribute\" />\n    </div>\n</xsl:template>\n\n<!-- Sage Cell Server will execute an interact, when     -->\n<!-- properly bundled up with the right HTML markup      -->\n<!-- \".sage-interact\" must match use in \"header-library\" -->\n<xsl:template match=\"slate[@surface = 'sage']\">\n    <!-- \".ptx-sagecell\" for CSS (and not simply .sagecell). -->\n    <!-- See https://github.com/sagemath/sagecell/issues/542 -->\n    <pre class=\"ptx-sagecell sage-interact\">\n      <script type=\"text/x-sage\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n      </script>\n    </pre>\n</xsl:template>\n\n<xsl:template match=\"slate[@surface='geogebra']\">\n    <!-- size of the window, to be passed as a parameter -->\n    <xsl:variable name=\"width\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-pixels\" />\n    </xsl:variable>\n    <xsl:variable name=\"height\">\n        <xsl:apply-templates select=\".\" mode=\"get-height-pixels\" />\n    </xsl:variable>\n    <xsl:variable name=\"material-width\">\n        <xsl:choose>\n            <xsl:when test=\"@material-width\">\n                <xsl:value-of select=\"@material-width\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$width\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"material-height\">\n        <xsl:choose>\n            <xsl:when test=\"@material-height\">\n                <xsl:value-of select=\"@material-height\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$height\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- We need a Javascript identifier to name the applet.      -->\n    <!-- Other variables will use this as their root.  Need to    -->\n    <!-- ensure identifier does not lead with a digit, so \"ggb_\". -->\n    <xsl:variable name=\"applet-name\">\n        <xsl:text>ggb_</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"visible-id-no-dash\" />\n    </xsl:variable>\n    <!-- And a Javascript identifier for the parameters -->\n    <xsl:variable name=\"applet-parameters\">\n        <xsl:value-of select=\"$applet-name\"/>\n        <xsl:text>_params</xsl:text>\n    </xsl:variable>\n    <!-- And a Javascript identifier for the onload function -->\n    <xsl:variable name=\"applet-onload\">\n        <xsl:value-of select=\"$applet-name\"/>\n        <xsl:text>_onload</xsl:text>\n    </xsl:variable>\n    <!-- And a Javascript identifier for the onload function argument -->\n    <!-- not strictly necessary, but clarifies HTML                   -->\n    <xsl:variable name=\"applet-onload-argument\">\n        <xsl:value-of select=\"$applet-name\"/>\n        <xsl:text>_applet</xsl:text>\n    </xsl:variable>\n    <!-- And an HTML unique identifier -->\n    <xsl:variable name=\"applet-container\">\n        <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n        <xsl:text>-container</xsl:text>\n    </xsl:variable>\n    <!-- Javascript API for loading GeoGebra                               -->\n    <script>\n        <!-- API commands, as text() nodes in the slate. Manual at:   -->\n        <!-- https://wiki.geogebra.org/en/Reference:GeoGebra_Apps_API -->\n        <!-- In PTX source, use the commands one per line, as in:     -->\n        <!-- setCoordSystem(0, 20, 0, 10);                            -->\n        <!-- enableShiftDragZoom(false);                              -->\n        <xsl:if test=\"normalize-space(text())\">\n            <xsl:text>var </xsl:text>\n            <xsl:value-of select=\"$applet-onload\" />\n            <xsl:text> = function(</xsl:text>\n            <xsl:value-of select=\"$applet-onload-argument\" />\n            <xsl:text>) {&#xa;</xsl:text>\n            <xsl:call-template name=\"prepend-string\">\n                <xsl:with-param name=\"text\">\n                    <xsl:call-template name=\"sanitize-text\">\n                        <xsl:with-param name=\"text\" select=\".\" />\n                    </xsl:call-template>\n                </xsl:with-param>\n                <!-- period below is Javascript syntax for methods -->\n                <xsl:with-param name=\"pad\" select=\"concat($applet-onload-argument,'.')\" />\n            </xsl:call-template>\n            <!-- call a function named 'listeners()' in attached .js file to communicate with other divs -->\n            <xsl:text>listeners(</xsl:text><xsl:value-of select='$applet-onload-argument'/><xsl:text>)</xsl:text>\n            <xsl:text>};&#xa;</xsl:text>\n        </xsl:if>\n        <!-- Parameter reference:                                              -->\n        <!-- https://wiki.geogebra.org/en/Reference:GeoGebra_App_Parameters    -->\n        <!-- We leave most parameters as their default value. In most cases,   -->\n        <!-- an author could use API commands to alter these settings.         -->\n        <xsl:text>var </xsl:text>\n        <xsl:value-of select=\"$applet-parameters\" />\n        <xsl:text> = {&#xa;</xsl:text>\n        <!-- Prioritize local over remote -->\n        <xsl:choose>\n            <xsl:when test=\"@base64\">\n                <xsl:text>ggbBase64:\"</xsl:text>\n                <xsl:value-of select=\"@base64\" />\n                <xsl:text>\",&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@source\">\n                <xsl:text>filename:\"</xsl:text>\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"@source\" />\n                <xsl:text>\",&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@material\">\n                <xsl:text>material_id:\"</xsl:text>\n                <xsl:value-of select=\"@material\" />\n                <xsl:text>\",&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@geogebra\">\n                <xsl:message>PTX Warning:  \"geogebra\" attribute on \"slate\" element is deprecated; use \"material\" attribute</xsl:message>\n                <xsl:text>material_id:\"</xsl:text>\n                <xsl:value-of select=\"@geogebra\" />\n                <xsl:text>\",&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise/>\n        </xsl:choose>\n        <!-- Perspective must be authored in source, so we can check -->\n        <!-- setting perspective via an attribute.  This bypasses a  -->\n        <!-- bug where using \"setPerspective()\" in source caused the -->\n        <!-- focus to be grabbed here.                               -->\n        <xsl:if test=\"@perspective\">\n            <xsl:text>perspective:\"</xsl:text>\n            <xsl:value-of select=\"@perspective\"/>\n            <xsl:text>\",&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"@toolbar\">\n            <xsl:text>showToolBar: </xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@toolbar='yes'\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>false</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"@algebra-input\">\n            <xsl:text>showAlgebraInput: </xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@algebra-input='yes'\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>false</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"@reset-icon\">\n            <xsl:text>showResetIcon: </xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@reset-icon='yes'\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>false</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"@shift-drag-zoom\">\n            <xsl:text>enableShiftDragZoom: </xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@shift-drag-zoom='yes'\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>false</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"@zoom-buttons\">\n            <xsl:text>showZoomButtons: </xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@zoom-buttons='yes'\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>false</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:text>width:</xsl:text><xsl:value-of select=\"$material-width\" />\n        <xsl:text>,&#xa;</xsl:text>\n        <xsl:text>height:</xsl:text><xsl:value-of select=\"$material-height\" />\n        <xsl:text>,&#xa;</xsl:text>\n        <xsl:if test=\"normalize-space(text())\">\n            <xsl:text>appletOnLoad:</xsl:text>\n            <xsl:value-of select=\"$applet-onload\" />\n        </xsl:if>\n        <xsl:text>};&#xa;</xsl:text>\n\n        <xsl:text>new Promise((resolve, reject) => {&#xa;</xsl:text>\n        <xsl:text>var </xsl:text>\n            <xsl:value-of select=\"$applet-name\" />\n        <xsl:text> = new GGBApplet(</xsl:text>\n            <xsl:value-of select=\"$applet-parameters\" />\n        <xsl:text>, true);&#xa;</xsl:text>\n\n      <xsl:text>resolve(</xsl:text><xsl:value-of select=\"$applet-name\" /><xsl:text>);})&#xa;</xsl:text>\n      <xsl:text>.then((</xsl:text><xsl:value-of select=\"$applet-name\" /><xsl:text>) => {&#xa;</xsl:text>\n        <!-- inject the applet into the div below -->\n        <xsl:text>window.onload = function() { </xsl:text>\n        <xsl:value-of select=\"$applet-name\" />\n        <xsl:text>.inject('</xsl:text>\n        <xsl:value-of select=\"$applet-container\" />\n        <xsl:text>'); }&#xa;</xsl:text>\n        <xsl:text>},&#xa;</xsl:text>\n        <xsl:text>(error) => {console.log('GGB applet load failure.', error)});&#xa;</xsl:text>\n    </script>\n    <!-- Force line-height 0 to prevent scroll bars -->\n    <div style=\"line-height: 0;\">\n        <!-- build a container div with the right shape -->\n        <div class=\"geogebra-applet\" id=\"{$applet-container}\">\n            <xsl:apply-templates select=\".\" mode=\"size-pixels-style-attribute\" />\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"slate[@surface = 'jessiecode']\">\n  <!-- size of the window, to be passed as a parameter -->\n  <xsl:variable name=\"width\">\n      <xsl:apply-templates select=\".\" mode=\"get-width-pixels\" />\n  </xsl:variable>\n  <xsl:variable name=\"height\">\n      <xsl:apply-templates select=\".\" mode=\"get-height-pixels\" />\n  </xsl:variable>\n  <!-- the div that jsxgraph will take over -->\n  <xsl:element name=\"div\">\n      <xsl:attribute name=\"id\">\n          <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n      </xsl:attribute>\n      <xsl:attribute name=\"class\">\n          <xsl:text>jxgbox</xsl:text>\n      </xsl:attribute>\n      <xsl:apply-templates select=\".\" mode=\"size-pixels-style-attribute\" />\n  </xsl:element>\n  <!-- Add a script wrapper to parse using JSXGraph -->\n  <xsl:choose>\n      <xsl:when test=\"text()\">\n          <xsl:element name=\"script\">\n              <xsl:attribute name=\"type\">\n                  <xsl:text>text/jessiecode</xsl:text>\n              </xsl:attribute>\n              <!-- Put the board in the appropriate container. -->\n              <xsl:attribute name=\"container\">\n                  <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n              </xsl:attribute>\n              <xsl:if test=\"@boundingbox\">\n                  <xsl:attribute name=\"boundingbox\">\n                      <xsl:value-of select=\"@boundingbox\" />\n                  </xsl:attribute>\n              </xsl:if>\n              <xsl:if test=\"@axis\">\n                  <xsl:attribute name=\"axis\">\n                      <xsl:value-of select=\"@axis\" />\n                  </xsl:attribute>\n              </xsl:if>\n              <xsl:if test=\"@grid\">\n                  <xsl:attribute name=\"grid\">\n                      <xsl:value-of select=\"@grid\" />\n                  </xsl:attribute>\n              </xsl:if>\n              <!-- Add the script -->\n              <xsl:call-template name=\"sanitize-text\">\n                  <xsl:with-param name=\"text\" select=\".\" />\n              </xsl:call-template>\n          </xsl:element>\n      </xsl:when>\n      <xsl:when test=\"@source\">\n          <xsl:element name=\"script\">\n              <xsl:attribute name=\"type\">\n                  <xsl:text>text/javascript</xsl:text>\n              </xsl:attribute>\n              <xsl:text>function parseJessie(code) {&#xa;</xsl:text>\n              <xsl:text>  let board = JXG.JSXGraph.initBoard('</xsl:text>\n              <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n              <xsl:text>', {</xsl:text>\n              <xsl:if test=\"@boundingbox\">\n                  <xsl:text>boundingbox:[</xsl:text>\n                  <xsl:value-of select=\"@boundingbox\" />\n                  <xsl:text>], </xsl:text>\n              </xsl:if>\n              <xsl:if test=\"@axis\">\n                  <xsl:text>axis:</xsl:text>\n                  <xsl:value-of select=\"@axis\" />\n                  <xsl:text>, </xsl:text>\n              </xsl:if>\n              <xsl:if test=\"@grid\">\n                  <xsl:text>grid:</xsl:text>\n                  <xsl:value-of select=\"@grid\" />\n                  <xsl:text>, </xsl:text>\n              </xsl:if>\n              <xsl:text>keepaspectratio:true});&#xa;</xsl:text>\n              <xsl:text>  board.jc = new JXG.JessieCode();&#xa;</xsl:text>\n              <xsl:text>  board.jc.use(board);&#xa;</xsl:text>\n              <xsl:text>  board.suspendUpdate();&#xa;</xsl:text>\n              <xsl:text>  board.jc.parse(code);&#xa;</xsl:text>\n              <xsl:text>  board.unsuspendUpdate();&#xa;</xsl:text>\n              <xsl:text>}&#xa;</xsl:text>\n              <xsl:text>fetch('</xsl:text>\n              <!-- empty when not using managed directories -->\n              <xsl:value-of select=\"$external-directory\"/>\n              <xsl:value-of select=\"@source\" />\n              <xsl:text>').then(function(response) { response.text().then( function(text) { parseJessie(text); }); });&#xa;</xsl:text>\n          </xsl:element>\n      </xsl:when>\n  </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"slate[@surface = 'doenetml']\">\n    <div class=\"doenetml-applet\" data-doenet-add-virtual-keyboard=\"false\" data-doenet-send-resize-events=\"true\">\n        <!-- on Runestone builds, enable SPLICE messaging to the parent -->\n        <xsl:if test=\"$b-host-runestone\">\n            <xsl:attribute name=\"data-doenet-message-parent\">\n                <xsl:text>true</xsl:text>\n            </xsl:attribute>\n        </xsl:if>\n        <div class=\"doenetml-loading\" style=\"text-align:center\">\n            <p><img src=\"https://www.doenet.org/Doenet_Logo_Frontpage.png\"/></p>\n            <p><xsl:text>Waiting on the page to load...</xsl:text></p>\n        </div>\n        <script type=\"text/doenetml\">\n            <xsl:value-of select=\"text()\"/>\n        </script>\n    </div>\n</xsl:template>\n\n<!-- Utilities -->\n\n<!-- These can be vastly improved with a call to \"tokenize()\"   -->\n<!-- and then a \"for-each\" can effectively loop over the pieces -->\n\n<!-- @source attribute to multiple script tags -->\n<xsl:template match=\"interactive[@platform]/@source\">\n    <xsl:variable name=\"scripts\" select=\"str:tokenize(., ', ')\"/>\n    <!-- $scripts is a collection of \"token\" and does not have -->\n    <!-- a root, which implies the form of the \"for-each\"      -->\n    <xsl:for-each select=\"$scripts\">\n        <!-- create a script tag for each JS file -->\n        <script>\n            <!-- this is a hack to allow for local files and network resources,   -->\n            <!-- with or without managed directories.  There should be a separate -->\n            <!-- attribute like an @href used for audio and video, and then any   -->\n            <!-- \"http\"-leading string should be flagged as a deprecation         -->\n            <xsl:variable name=\"location\">\n                <xsl:variable name=\"raw-location\">\n                    <xsl:value-of select=\".\"/>\n                </xsl:variable>\n                <xsl:choose>\n                    <xsl:when test=\"substring($raw-location,1,4) = 'http'\">\n                        <xsl:value-of select=\"$raw-location\"/>\n                    </xsl:when>\n                    <xsl:when test=\"not($b-managed-directories)\">\n                        <xsl:value-of select=\"$raw-location\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <!-- empty when not using managed directories -->\n                        <xsl:value-of select=\"$external-directory\"/>\n                        <xsl:value-of select=\"$raw-location\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:attribute name=\"src\">\n                <xsl:value-of select=\"$location\" />\n            </xsl:attribute>\n        </script>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- @css attribute to multiple \"link\" element -->\n<xsl:template match=\"interactive[@platform]/@css\">\n    <xsl:variable name=\"csses\" select=\"str:tokenize(., ', ')\"/>\n    <!-- $scripts is a collection of \"token\" and does not have -->\n    <!-- a root, which implies the form of the \"for-each\"      -->\n    <xsl:for-each select=\"$csses\">\n        <link rel=\"stylesheet\" type=\"text/css\">\n            <!-- This is a hack to allow for local files and network -->\n            <!-- resources, with or without managed directories.     -->\n            <xsl:variable name=\"location\">\n                <xsl:variable name=\"raw-location\">\n                    <xsl:value-of select=\".\"/>\n                </xsl:variable>\n                <xsl:choose>\n                    <xsl:when test=\"substring($raw-location,1,4) = 'http'\">\n                        <xsl:value-of select=\"$raw-location\"/>\n                    </xsl:when>\n                    <xsl:when test=\"not($b-managed-directories)\">\n                        <xsl:value-of select=\"$raw-location\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <!-- empty when not using managed directories -->\n                        <xsl:value-of select=\"$external-directory\"/>\n                        <xsl:value-of select=\"$raw-location\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:attribute name=\"href\">\n                <xsl:value-of select=\"$location\" />\n            </xsl:attribute>\n        </link>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Sizing styles for interactives                                       -->\n<!-- Two major modes based on how to resize: responsive or fixed-height   -->\n<!-- fixed-height applies aspect ratio at build as css height             -->\n<!-- responsive dynamically applies aspect ratio via css                  -->\n\n<xsl:template name=\"responsive-height-style-rules\">\n    <!-- max-width should already have px or % -->\n    <xsl:param name=\"max-width\"/>\n    <xsl:param name=\"aspect-ratio\"/>\n    <xsl:text>max-width: </xsl:text>\n    <xsl:value-of select=\"$max-width\"/>\n    <xsl:text>; </xsl:text>\n    <xsl:text>width: 100%; </xsl:text>\n    <xsl:text>aspect-ratio:</xsl:text>\n    <xsl:value-of select=\"$aspect-ratio\"/>\n</xsl:template> \n\n<xsl:template match=\"interactive\" mode=\"interactive-sizing-style-attribute\">\n    <xsl:param name=\"default-aspect\" select=\"'1:1'\" />\n    <xsl:variable name=\"resize-behavior\">\n        <xsl:apply-templates select=\".\" mode=\"get-resize-behavior\"/>\n    </xsl:variable>\n    <!-- tag wide interactives with some data attributes that styling/js can use -->\n    <xsl:if test=\"@design-width != ''\">\n        <xsl:attribute name=\"data-design-width\">\n            <xsl:value-of select=\"@design-width\"/>\n        </xsl:attribute>\n        <!-- css can't easily test numerics, so provide hint this content is wide -->\n        <xsl:if test=\"@design-width > $html-design-width\">\n            <xsl:attribute name=\"data-design-width-wide\"/>\n        </xsl:if>\n    </xsl:if>\n    <xsl:choose>\n        <xsl:when test=\"$resize-behavior = 'responsive'\">\n            <xsl:attribute name=\"style\">\n                <xsl:variable name=\"max-width\">\n                    <xsl:choose>\n                        <xsl:when test=\"@design-width != ''\">\n                            <xsl:value-of select=\"@design-width\"/>\n                            <xsl:text>px</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:apply-templates select=\".\" mode=\"get-width-percentage\"/>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:variable>\n                <xsl:variable name=\"aspect-ratio\">\n                    <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\">\n                        <xsl:with-param name=\"default-aspect\" select=\"'1:1'\" />\n                    </xsl:apply-templates>\n                </xsl:variable>\n                <xsl:text>max-width: </xsl:text>\n                <xsl:value-of select=\"$max-width\"/>\n                <xsl:text>; </xsl:text>\n                <xsl:text>width: 100%; </xsl:text>\n                <xsl:text>aspect-ratio:</xsl:text>\n                <xsl:value-of select=\"$aspect-ratio\"/>\n            </xsl:attribute>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- resize-behavior: fixed-height -->\n            <xsl:apply-templates select=\".\" mode=\"size-pixels-style-attribute\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Existing -common template handles if we have slate@aspect. But if attr -->\n<!-- is missing, look to parent interactive for an aspect and use that      -->\n<xsl:template match=\"slate[not(@aspect)]\" mode=\"get-aspect-ratio\">\n    <xsl:param name=\"default-aspect\" select=\"'1:1'\"/>\n    <xsl:apply-templates select=\"ancestor::interactive\" mode=\"get-aspect-ratio\">\n        <xsl:with-param name=\"default-aspect\" select=\"$default-aspect\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"slate\" mode=\"interactive-slate-sizing-style-attributes\">\n    <xsl:variable name=\"resize-behavior\">\n        <xsl:apply-templates select=\"ancestor::interactive\" mode=\"get-resize-behavior\"/>\n    </xsl:variable>\n    <xsl:variable name=\"aspect-ratio\">\n        <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\">\n            <xsl:with-param name=\"default-aspect\" select=\"'1:1'\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$resize-behavior = 'responsive'\">\n            <xsl:attribute name=\"style\">\n                <!-- size is already constrained by interactive... only need max here -->\n                <!-- if there is a specific design width                              -->\n                <xsl:if test=\"@design-width != ''\">\n                    <xsl:text>max-width: </xsl:text>\n                    <xsl:value-of select=\"@design-width\"/>\n                    <xsl:text>px; </xsl:text>\n                </xsl:if>\n                <xsl:text>width: 100%; </xsl:text>\n                <xsl:text>aspect-ratio:</xsl:text>\n                <xsl:value-of select=\"$aspect-ratio\"/>\n                <xsl:text>;</xsl:text>\n            </xsl:attribute>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- fixed height -->\n            <xsl:attribute name=\"style\">\n                <xsl:apply-templates select=\".\" mode=\"size-pixels-style-attribute-core\"/>\n                <!-- May or may not need aspect ratio. Usually height overrides    -->\n                <!-- but can help for elements that are in a flex layout container -->\n                <xsl:text>aspect-ratio:</xsl:text>\n                <xsl:value-of select=\"$aspect-ratio\"/>\n                <xsl:text>;</xsl:text>\n            </xsl:attribute>\n            <!-- may or may not need width/height attributes, but won't hurt if not needed-->\n            <xsl:apply-templates select=\".\" mode=\"size-pixels-attributes\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"interactive\" mode=\"get-design-width\">\n    <xsl:choose>\n        <xsl:when test=\"@design-width != ''\">\n            <xsl:value-of select=\"@design-width\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- global value set by stylesheet -->\n            <xsl:value-of select=\"$design-width\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"slate\" mode=\"get-design-width\">\n    <xsl:choose>\n        <xsl:when test=\"@design-width != ''\">\n            <xsl:value-of select=\"@design-width\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"ancestor::interactive\" mode=\"get-design-width\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"interactive\" mode=\"get-resize-behavior\">\n    <xsl:variable name=\"platform\" select=\"@interactive-platform\"/>\n    <xsl:choose>\n        <xsl:when test=\"@resize-behavior != ''\">\n            <xsl:value-of select=\"@resize-behavior\"/>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/interactives/*[local-name()=$platform and @resize-behavior != '']\">\n            <xsl:apply-templates select=\"$publisher-attribute-options/html/interactives/*[local-name()=$platform]/pi:pub-attribute[@name='resize-behavior']\" mode=\"set-pubfile-variable\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"$publisher-attribute-options/html/interactives/pi:pub-attribute[@name='resize-behavior']\" mode=\"set-pubfile-variable\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"slate\" mode=\"get-resize-behavior\">\n    <xsl:choose>\n        <xsl:when test=\"@resize-behavior != ''\">\n            <xsl:value-of select=\"@resize-behavior\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"container\" select=\"ancestor::interactive\"/>\n            <xsl:apply-templates select=\"$container\" mode=\"get-resize-behavior\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Next two utilities write attributes, so cannot go in -common -->\n\n<!-- iframes, etc, need size as a pair of attributes in pixels -->\n<xsl:template match=\"*\" mode=\"size-pixels-attributes\">\n    <xsl:attribute name=\"width\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-pixels\" />\n    </xsl:attribute>\n    <xsl:attribute name=\"height\">\n        <xsl:apply-templates select=\".\" mode=\"get-height-pixels\" />\n    </xsl:attribute>\n</xsl:template>\n\n<!-- various elements need size in a style attribute -->\n<xsl:template match=\"*\" mode=\"size-pixels-style-attribute\">\n    <xsl:attribute name=\"style\">\n        <xsl:apply-templates select=\".\" mode=\"size-pixels-style-attribute-core\" />\n    </xsl:attribute>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"size-pixels-style-attribute-core\">\n    <xsl:variable name=\"width\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-pixels\" />\n    </xsl:variable>\n    <xsl:variable name=\"height\">\n        <xsl:apply-templates select=\".\" mode=\"get-height-pixels\" />\n    </xsl:variable>\n    <xsl:text>width:</xsl:text>\n    <xsl:value-of select=\"$width\" />\n    <xsl:text>px; </xsl:text>\n    <xsl:text>height:</xsl:text>\n    <xsl:value-of select=\"$height\" />\n    <xsl:text>px; </xsl:text>\n    <xsl:text>display: block; </xsl:text>\n</xsl:template>\n\n<!-- Add js from script elemenets inside interactives     -->\n<!-- Scripts are added in order, after all other elements -->\n<!-- in the interactive, include scripts created from     -->\n<!-- @source directives in the interactive element        -->\n<xsl:template match=\"interactive[@platform = 'javascript']/script\">\n    <script>\n        <!-- ECMAScript modules need type=\"module\" on the script -->\n        <xsl:if test=\"@type\">\n          <xsl:attribute name=\"type\">\n            <xsl:value-of select=\"@type\"/>\n          </xsl:attribute>\n        </xsl:if>\n        <xsl:value-of select=\".\"/>\n    </script>\n</xsl:template>\n\n<!-- JSXGraph -->\n<!-- DEPRECATED (2018-04-06)                             -->\n<!-- Restrict edits to cosmetic, no functional change    -->\n<!-- Remove when continued maintenance becomes untenable -->\n<xsl:template match=\"jsxgraph\">\n    <!-- interpret @width percentage and @aspect ratio -->\n    <xsl:variable name=\"width-percent\">\n        <xsl:apply-templates select=\".\" mode=\"get-width-percentage\" />\n    </xsl:variable>\n    <xsl:variable name=\"width-fraction\">\n        <xsl:value-of select=\"substring-before($width-percent,'%') div 100\" />\n    </xsl:variable>\n    <xsl:variable name=\"aspect-ratio\">\n        <xsl:apply-templates select=\".\" mode=\"get-aspect-ratio\">\n            <xsl:with-param name=\"default-aspect\" select=\"'1:1'\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <!-- these are now standardized templates -->\n    <xsl:variable name=\"width\"  select=\"$design-width * $width-fraction\" />\n    <xsl:variable name=\"height\" select=\"$design-width * $width-fraction div $aspect-ratio\" />\n    <!-- the div to hold the JSX output -->\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"id\">\n            <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n        </xsl:attribute>\n        <xsl:attribute name=\"class\">\n            <xsl:text>jxgbox</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"style\">\n            <xsl:text>width:</xsl:text>\n            <xsl:value-of select=\"$width\" />\n            <xsl:text>px; height:</xsl:text>\n            <xsl:value-of select=\"$height\" />\n            <xsl:text>px;</xsl:text>\n        </xsl:attribute>\n    </xsl:element>\n    <!-- the script to hold the code                       -->\n    <!-- JSXGraph code must reference the id on the div,   -->\n    <!-- so ideally an xml:id specifies this in the source -->\n    <xsl:element name=\"script\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\"input\" />\n        </xsl:call-template>\n    </xsl:element>\n    <xsl:copy-of select=\"controls\" />\n</xsl:template>\n\n<!-- ########################## -->\n<!-- WeBWorK Embedded Exercises -->\n<!-- ########################## -->\n\n<!-- WeBWorK Javascript header -->\n<xsl:template name=\"webwork-js\">\n    <xsl:if test=\"$b-has-webwork-reps\">\n        <script src=\"{$html.js.dir}/pretext-webwork/2.{$webwork-minor-version}/pretext-webwork.js\"></script>\n        <script src=\"{$webwork-server}/webwork2_files/node_modules/iframe-resizer/js/iframeResizer.min.js\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- lti-iframe-resizer -->\n<xsl:template name=\"lti-iframe-resizer\">\n    <script src=\"{$html.js.dir}/lti_iframe_resizer.js\"></script>\n</xsl:template>\n\n\n<!-- The guts of a WeBWorK problem realized in HTML -->\n<!-- This is heart of an external knowl version, or -->\n<!-- what is born visible under control of a switch -->\n<xsl:template match=\"webwork-reps\">\n    <xsl:param name=\"b-original\" select=\"true()\"/>\n    <!-- TODO: simplify these variables, much like for LaTeX -->\n    <xsl:variable name=\"b-has-hint\" select=\"(ancestor::*[&PROJECT-FILTER;] and $b-has-project-hint) or\n                                            (ancestor::exercises and $b-has-divisional-hint) or\n                                            (ancestor::reading-questions and $b-has-reading-hint) or\n                                            (ancestor::worksheet and $b-has-worksheet-hint) or\n                                            (not(ancestor::*[&PROJECT-FILTER;] or ancestor::exercises or ancestor::reading-questions or ancestor::worksheet) and $b-has-inline-hint)\" />\n    <xsl:variable name=\"b-has-answer\" select=\"(ancestor::*[&PROJECT-FILTER;] and $b-has-project-answer) or\n                                              (ancestor::exercises and $b-has-divisional-answer) or\n                                              (ancestor::reading-questions and $b-has-reading-answer) or\n                                              (ancestor::worksheet and $b-has-worksheet-answer) or\n                                              (not(ancestor::*[&PROJECT-FILTER;] or ancestor::exercises or ancestor::reading-questions or ancestor::worksheet) and $b-has-inline-answer)\" />\n    <xsl:variable name=\"b-has-solution\" select=\"(ancestor::*[&PROJECT-FILTER;] and $b-has-project-solution) or\n                                                (ancestor::exercises and $b-has-divisional-solution) or\n                                                (ancestor::reading-questions and $b-has-reading-solution) or\n                                                (ancestor::worksheet and $b-has-worksheet-solution) or\n                                                (not(ancestor::*[&PROJECT-FILTER;] or ancestor::exercises or ancestor::reading-questions or ancestor::worksheet) and $b-has-inline-solution)\"/>\n    <xsl:variable name=\"b-static\" select=\"(ancestor::*[&PROJECT-FILTER;] and $b-webwork-project-static) or\n                                          (ancestor::exercises and $b-webwork-divisional-static) or\n                                          (ancestor::reading-questions and $b-webwork-reading-static) or\n                                          (ancestor::worksheet and $b-webwork-worksheet-static) or\n                                          (not(ancestor::*[&PROJECT-FILTER;] or ancestor::exercises or ancestor::reading-questions or ancestor::worksheet) and $b-webwork-inline-static)\"/>\n    <xsl:choose>\n        <!-- We print the static version when that is explicitly directed. -->\n        <xsl:when test=\"$b-static\">\n            <xsl:apply-templates select=\"static\" mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\"      select=\"$b-original\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\"/>\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\"/>\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\"/>\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"webwork-interactive-div\">\n                <xsl:with-param name=\"b-original\"     select=\"$b-original\"/>\n                <xsl:with-param name=\"b-has-hint\"     select=\"$b-has-hint\"/>\n                <xsl:with-param name=\"b-has-answer\"   select=\"$b-has-answer\"/>\n                <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Make a div with a button, where pretext-webwork.js can   -->\n<!-- replace the div content with a live, interactive problem -->\n<xsl:template match=\"webwork-reps\" mode=\"webwork-interactive-div\">\n    <xsl:param name=\"b-original\"/>\n    <xsl:param name=\"b-has-hint\"/>\n    <xsl:param name=\"b-has-answer\"/>\n    <xsl:param name=\"b-has-solution\"/>\n\n    <!-- For Runestone, the WW problem is handled in isolation, -->\n    <!-- yet capturing and storing student work/results needs   -->\n    <!-- to be associated with the parent/enclosing \"exercise\"  -->\n    <!-- (or PROJECT-LIKE).  So in this case (only) we place    -->\n    <!-- an id value on the  div.exercise-wrapper that is       -->\n    <!-- derived from the parent.  Otherwise, we use the        -->\n    <!-- parent @assembly-id with a \"-ww-inner\" suffix.         -->\n    <!-- The suffix ensures the inner wrapper's DOM id is       -->\n    <!-- distinct from the enclosing \"exercise\" article's       -->\n    <!-- id (which also holds the @assembly-id value).          -->\n    <!-- Without the suffix, JavaScript (handleWW) would        -->\n    <!-- look up the inner id with getElementById and find      -->\n    <!-- the outer \"exercise\" article instead.                  -->\n    <xsl:variable name=\"inner-id\">\n        <xsl:choose>\n            <xsl:when test=\"$b-host-runestone\">\n                <xsl:apply-templates select=\"parent::*\" mode=\"runestone-id\"/>\n                <xsl:text>-ww-rs</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"concat(@assembly-id, '-ww-inner')\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <div id=\"{$inner-id}\" class=\"exercise-wrapper\">\n        <xsl:attribute name=\"data-domain\">\n            <xsl:value-of select=\"$webwork-server\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-seed\" >\n            <xsl:value-of select=\"static/@seed\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-correct\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'correct'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-incorrect\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'incorrect'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-blank\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'blank'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-submit\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'submit'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-check-responses\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'check-responses'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-reveal\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'reveal'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-randomize\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'randomize'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-reset\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'reset'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-hint\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'hint'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-localize-solution\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'solution'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-origin\">\n            <xsl:value-of select=\"rendering-data/@origin\"/>\n        </xsl:attribute>\n        <xsl:choose>\n            <xsl:when test=\"rendering-data/@problemSource\">\n                <xsl:attribute name=\"data-problemSource\">\n                    <xsl:value-of select=\"rendering-data/@problemSource\"/>\n                </xsl:attribute>\n                <!-- When rendering a problem with problemSource, we want to know the base course id -->\n                <xsl:attribute name=\"data-documentID\">\n                    <xsl:value-of select=\"$document-id\"/>\n                </xsl:attribute>\n            </xsl:when>\n            <xsl:when test=\"rendering-data/@sourceFilePath\">\n                <xsl:attribute name=\"data-sourceFilePath\">\n                    <xsl:value-of select=\"rendering-data/@sourceFilePath\"/>\n                </xsl:attribute>\n            </xsl:when>\n        </xsl:choose>\n        <xsl:attribute name=\"data-courseID\">\n            <xsl:value-of select=\"rendering-data/@course-id\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-userID\">\n            <xsl:value-of select=\"rendering-data/@user-id\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"data-coursePassword\">\n            <xsl:choose>\n                <xsl:when test=\"rendering-data/@passwd\">\n                    <xsl:value-of select=\"rendering-data/@passwd\"/>\n                </xsl:when>\n                <!-- Old representations files will have one of the following @password -->\n                <xsl:when test=\"rendering-data/@password\">\n                    <xsl:value-of select=\"rendering-data/@password\"/>\n                </xsl:when>\n                <!-- Old representations files will have @course-password instead of @password -->\n                <xsl:otherwise>\n                    <xsl:value-of select=\"rendering-data/@course-password\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:attribute name=\"aria-live\">\n            <xsl:value-of select=\"'polite'\"/>\n        </xsl:attribute>\n        <div class=\"problem-buttons\">\n            <button class=\"webwork-button\" onclick=\"handleWW('{$inner-id}')\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'activate'\"/>\n                </xsl:apply-templates>\n            </button>\n        </div>\n        <div class=\"problem-contents\">\n            <xsl:apply-templates select=\"static\" mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\"      select=\"$b-original\"/>\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\"/>\n                <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\"/>\n                <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\"/>\n                <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\"/>\n            </xsl:apply-templates>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- Select the correct URL from four pre-generated choices -->\n<!-- and package up as an iframe for interactive version    -->\n<!-- Used with 2.15- WW servers (webwork-reps version 1)    -->\n<xsl:template match=\"webwork-reps\" mode=\"webwork-iframe\">\n    <xsl:param name=\"b-has-hint\"/>\n    <xsl:param name=\"b-has-solution\"/>\n    <xsl:variable name=\"the-url\">\n        <xsl:choose>\n            <xsl:when test=\"$b-has-hint and $b-has-solution\">\n                <xsl:apply-templates select=\"server-url[@hint='yes' and @solution='yes']\"/>\n            </xsl:when>\n            <xsl:when test=\"$b-has-hint and not($b-has-solution)\">\n                <xsl:apply-templates select=\"server-url[@hint='yes' and @solution='no']\"/>\n            </xsl:when>\n            <xsl:when test=\"not($b-has-hint) and $b-has-solution\">\n                <xsl:apply-templates select=\"server-url[@hint='no'  and @solution='yes']\"/>\n            </xsl:when>\n            <xsl:when test=\"not($b-has-hint) and not($b-has-solution)\">\n                <xsl:apply-templates select=\"server-url[@hint='no'  and @solution='no']\"/>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- build the iframe -->\n    <!-- mimicking Mike Gage's blog post -->\n    <iframe name=\"{concat(@assembly-id, '-ww-inner')}\" width=\"{$design-width}\" src=\"{$the-url}\" data-seed=\"{static/@seed}\"/>\n    <script>\n        <xsl:text>iFrameResize({log:true,inPageLinks:true,resizeFrom:'child',checkOrigin:[\"</xsl:text>\n        <xsl:value-of select=\"$webwork-server\" />\n        <xsl:text>\"]})</xsl:text>\n    </script>\n</xsl:template>\n\n<!-- ############################# -->\n<!-- STACK Embedded Exercises -->\n<!-- ############################# -->\n\n<!-- STACK Javascript header -->\n<xsl:template name=\"stack-js\">\n\n    <xsl:if test=\"$b-has-stack\">\n        <script src=\"{$html.js.dir}/pretext-stack/stackjsvle.js\" type=\"text/javascript\"></script>\n        <script src=\"{$html.js.dir}/pretext-stack/stackapicalls.js\" type=\"text/javascript\"></script>\n        <script type=\"text/javascript\">\n            const stack_api_url = \"<xsl:value-of select=\"$stack-server\"/>\";\n        </script>\n        <script type=\"text/javascript\">\n            function docHasLoaded() {\n                stackSetup();\n            }\n        </script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Not to be confused with  sidebyside/stack  panel -->\n<xsl:template match=\"exercise/stack\">\n    <!-- A little bit of STACK-specific HTML to  -->\n    <!-- embed a question file onto the page -->\n    <div class=\"container-fluid que stack\">\n        <xsl:attribute name=\"data-qfile\">\n            <!-- empty when not using managed directories -->\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:value-of select=\"@source\"/>\n        </xsl:attribute>\n        <xsl:if test=\"@qname != ''\">\n            <xsl:attribute name=\"data-qname\">\n                <xsl:value-of select=\"@qname\" />\n            </xsl:attribute>\n        </xsl:if>\n    </div>\n</xsl:template>\n\n<!-- ############################# -->\n<!-- MyOpenMath Embedded Exercises -->\n<!-- ############################# -->\n\n<xsl:template match=\"myopenmath\">\n    <!-- A container controls the width. At 100% this is the     -->\n    <!-- full page width and when revealed in a knowl it shrinks -->\n    <!-- to fill available width.  In another application, the   -->\n    <!-- width might come from an author's source.               -->\n    <xsl:variable name=\"an-id\">\n        <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n    </xsl:variable>\n    <div id=\"mom{$an-id}wrap\" style=\"width:100%;overflow:visible;position:relative\">\n        <!-- This preserves the aspect-ratio, and there is no       -->\n        <!-- clipping.  Basically this says scale the iframe to     -->\n        <!-- fill whatever width is available in the containing div -->\n        <iframe id=\"mom{$an-id}\" style=\"position:absolute;z-index:1;object-fit: contain; width: 100%\"\n            frameborder=\"0\" data-knowl-callback=\"sendResizeRequest\">\n            <xsl:attribute name=\"src\">\n                <xsl:text>https://www.myopenmath.com/embedq2.php?id=</xsl:text>\n                <xsl:value-of select=\"@problem\" />\n                <!-- can't disable escaping text of an attribute -->\n                <xsl:text>&amp;frame_id=mom</xsl:text>\n                <xsl:value-of select=\"$an-id\" />\n                <xsl:if test=\"@params != ''\">\n                    <xsl:text>&amp;</xsl:text>\n                    <xsl:value-of select=\"str:replace(@params, ',', '&amp;')\" />\n                </xsl:if>\n            </xsl:attribute>\n        </iframe>\n    </div>\n</xsl:template>\n\n<!--                         -->\n<!-- Web Page Infrastructure -->\n<!--                         -->\n\n<!-- Start by building a series of \"cache\" variables that hold common head/foot -->\n<!-- page elements. Ideally, all pages types can be kept in a strict ordering   -->\n<!-- of complexity so each cahce is a superset of the previous ones.            -->\n\n<!-- Start with what is required by iframes -->\n<xsl:variable name=\"file-wrap-iframe-head-cache\">\n    <xsl:call-template name=\"fonts\"/>\n    <xsl:call-template name=\"font-awesome\"/>\n    <xsl:call-template name=\"css\"/>\n    <xsl:call-template name=\"mathjax\"/>\n</xsl:variable>\n\n<!-- Build a cache of the head elements that are constant across ALL standalone -->\n<!-- pages in the document. Main targets are \"standalone\" pages for meadia and  -->\n<!-- interactive extraction.                                                    -->\n<xsl:variable name=\"file-wrap-basic-head-cache\">\n    <xsl:copy-of select=\"$file-wrap-iframe-head-cache\"/>\n    <!-- Add keywords, including those in bibinfo -->\n    <xsl:call-template name=\"keywords-meta-element\"/>\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"/>\n    <!-- more \"meta\" elements for discovery -->\n    <xsl:call-template name=\"open-graph-info\"/>\n    <xsl:call-template name=\"pretext-js\"/>\n    <xsl:call-template name=\"runestone-header\"/>\n    <xsl:call-template name=\"scorm-js\"/>\n    <xsl:call-template name=\"diagcess-header\"/>\n    <xsl:call-template name=\"lti-iframe-resizer\"/>\n</xsl:variable>\n\n<!-- Content used by simple-file-wrap -->\n<xsl:variable name=\"file-wrap-simple-head-cache\">\n    <xsl:copy-of select=\"$file-wrap-basic-head-cache\"/>\n    <xsl:call-template name=\"sagecell-code\" />\n    <xsl:call-template name=\"favicon\"/>\n    <xsl:call-template name=\"webwork-js\"/>\n    <xsl:call-template name=\"stack-js\"/>\n    <xsl:call-template name=\"syntax-highlight\"/>\n    <xsl:call-template name=\"hypothesis-annotation\" />\n    <xsl:call-template name=\"geogebra\" />\n    <xsl:call-template name=\"jsxgraph\" />\n    <xsl:call-template name=\"mermaid-header\" />\n</xsl:variable>\n\n<!-- Content used by main file-wrap template -->\n<xsl:variable name=\"file-wrap-full-head-cache\">\n    <xsl:copy-of select=\"$file-wrap-simple-head-cache\"/>\n    <xsl:call-template name=\"google-search-box-js\" />\n    <xsl:call-template name=\"native-search-box-js\" />\n</xsl:variable>\n\n<!-- Now build end of body caches in the same manner          -->\n<!-- Again, start with univeral content and build from there  -->\n\n<!-- basic content is in any standalone page-->\n<xsl:variable name=\"file-wrap-basic-endbody-cache\">\n    <xsl:call-template name=\"statcounter\"/>\n    <xsl:call-template name=\"google-classic\"/>\n    <xsl:call-template name=\"google-universal\"/>\n    <xsl:call-template name=\"google-gst\"/>\n    <xsl:call-template name=\"diagcess-footer\"/>\n    <xsl:call-template name=\"extra-js-footer\"/>\n</xsl:variable>\n\n<!-- extra contents for main file-wrap template -->\n<xsl:variable name=\"file-wrap-full-endbody-cache\">\n    <xsl:copy-of select=\"$file-wrap-basic-endbody-cache\"/>\n    <xsl:call-template name=\"runestone-ethical-ads\"/>\n</xsl:variable>\n\n<xsl:template name=\"pretext-advertisement-and-style\">\n    <!-- 40 characters within comment for each line -->\n    <xsl:variable name=\"fixed-width-theme\"\n        select=\"concat(substring(concat($html-theme-name,   '                               '), 1, 31), '*')\"/>\n    <xsl:variable name=\"fixed-width-palette\"\n        select=\"concat(substring(concat($html-palette-name, '                               '), 1, 29), '*')\"/>\n    <xsl:comment>******************************************</xsl:comment><xsl:text>&#xa;</xsl:text>\n    <xsl:comment>*  Authored with PreTeXt                 *</xsl:comment><xsl:text>&#xa;</xsl:text>\n    <xsl:comment>*  pretextbook.org                       *</xsl:comment><xsl:text>&#xa;</xsl:text>\n    <xsl:comment>*  Theme: <xsl:value-of select=\"$fixed-width-theme\"/></xsl:comment><xsl:text>&#xa;</xsl:text>\n    <xsl:comment>*  Palette: <xsl:value-of select=\"$fixed-width-palette\"/></xsl:comment><xsl:text>&#xa;</xsl:text>\n    <xsl:comment>******************************************</xsl:comment><xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n\n\n<!-- An individual page:                                   -->\n<!-- Inputs:                                               -->\n<!-- * page content (exclusive of banners, navigation etc) -->\n<xsl:template match=\"*\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:param name=\"filename\" select=\"''\"/>\n    <xsl:param name=\"b-has-printout\" select=\"false()\"/>\n\n    <xsl:variable name=\"the-filename\">\n        <xsl:choose>\n            <xsl:when test=\"not($filename = '')\">\n                <xsl:value-of select=\"$filename\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <exsl:document href=\"{$the-filename}\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n    <xsl:call-template name=\"converter-blurb-html-no-date\"/>\n    <html>\n        <xsl:call-template name=\"language-attributes\"/>\n        <xsl:call-template name=\"html-theme-attributes\"/>\n        <xsl:call-template name=\"pretext-advertisement-and-style\"/>\n        <!-- Open Graph Protocol only in \"meta\" elements, within \"head\" -->\n        <head xmlns:og=\"http://ogp.me/ns#\" xmlns:book=\"https://ogp.me/ns/book#\">\n            <title>\n                <!-- Leading with initials is useful for small tabs -->\n                <xsl:if test=\"$docinfo/initialism\">\n                    <xsl:apply-templates select=\"$docinfo/initialism\" />\n                    <xsl:text> </xsl:text>\n                </xsl:if>\n                <xsl:apply-templates select=\".\" mode=\"title-plain\" />\n            </title>\n            <!-- canonical link for better SEO -->\n            <xsl:call-template name=\"canonical-link\">\n                <xsl:with-param name=\"filename\" select=\"$the-filename\"/>\n            </xsl:call-template>\n            <!-- grab the contents every page gets -->\n            <xsl:copy-of select=\"$file-wrap-full-head-cache\"/>\n            <!-- now do anything that is or could be page-specific and comes after cache -->\n            <xsl:apply-templates select=\".\" mode=\"knowl\" />\n            <!-- webwork's iframeResizer needs to come before sagecell template -->\n            <xsl:apply-templates select=\".\" mode=\"sagecell\" />\n        </head>\n        <body>\n            <xsl:if test=\"$b-has-stack\">\n                <xsl:attribute name=\"onload\">\n                    <xsl:text>docHasLoaded()</xsl:text>\n                </xsl:attribute>\n            </xsl:if>\n\n            <!-- potential document-id per-page -->\n            <xsl:call-template name=\"document-id\"/>\n            <!-- React flag -->\n            <xsl:call-template name=\"react-in-use-flag\"/>\n            <!-- the first class controls the default icon -->\n            <xsl:attribute name=\"class\">\n                <xsl:choose>\n                    <xsl:when test=\"$root/book\">pretext book</xsl:when>\n                    <xsl:when test=\"$root/article\">pretext article</xsl:when>\n                </xsl:choose>\n                <!-- ignore MathJax signals everywhere, then enable selectively -->\n                <xsl:text> ignore-math</xsl:text>\n            </xsl:attribute>\n            <!-- assistive \"Skip to main content\" link    -->\n            <!-- this *must* be first for maximum utility -->\n            <xsl:call-template name=\"skip-to-content-link\" />\n            <!-- HTML5 body/header will be a \"banner\" landmark automatically -->\n            <header id=\"ptx-masthead\" class=\"ptx-masthead\">\n                <div class=\"ptx-banner\">\n                    <xsl:call-template name=\"brand-logo\" />\n                    <div class=\"title-container\">\n                        <h1 class=\"heading\">\n                            <xsl:variable name=\"root-filename\">\n                                <xsl:apply-templates select=\"$document-root\" mode=\"containing-filename\" />\n                            </xsl:variable>\n                            <a href=\"{$root-filename}\">\n                                <xsl:variable name=\"b-has-subtitle\" select=\"boolean($document-root/subtitle)\"/>\n                                <span class=\"title\">\n                                    <!-- Do not use shorttitle in masthead,  -->\n                                    <!-- which is much like cover of a book  -->\n                                    <xsl:apply-templates select=\"$document-root\" mode=\"title-simple\" />\n                                </span>\n                                <xsl:if test=\"$b-has-subtitle and $b-html-banner-subtitle\">\n                                    <xsl:text> </xsl:text>\n                                    <span class=\"subtitle\">\n                                        <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\" />\n                                    </span>\n                                </xsl:if>\n                            </a>\n                        </h1>\n                        <!-- Serial list of authors/editors -->\n                        <xsl:if test=\"$b-html-banner-byline\">\n                            <p class=\"byline\">\n                                <xsl:apply-templates select=\"$bibinfo/author\" mode=\"name-list\"/>\n                                <xsl:apply-templates select=\"$bibinfo/editor\" mode=\"name-list\"/>\n                            </p>\n                        </xsl:if>\n                    </div>  <!-- title-container -->\n                </div>  <!-- banner -->\n            </header>  <!-- masthead -->\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation\"/>\n            <xsl:call-template name=\"latex-macros\"/>\n            <div class=\"ptx-page\">\n                <xsl:apply-templates select=\".\" mode=\"sidebars\" />\n                <!-- HTML5 main will be a \"main\" landmark automatically -->\n                <main class=\"ptx-main\">\n                    <xsl:if test=\"$b-watermark\">\n                        <xsl:attribute name=\"style\">\n                            <xsl:value-of select=\"$watermark-css\"/>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <div id=\"ptx-content\" class=\"ptx-content\">\n                        <xsl:if test=\"$b-has-printout\">\n                            <xsl:apply-templates select=\".\" mode=\"print-preview-header\"/>\n                        </xsl:if>\n                        <!-- Alternative to \"copy-of\": convert $content to a  -->\n                        <!-- node-set, and then hit with an identity template -->\n                        <!-- to duplicate.  Experiment indicates no change in -->\n                        <!-- output. (2023-01-11)                             -->\n                        <xsl:copy-of select=\"$content\" />\n                    </div>\n                    <div id=\"ptx-content-footer\" class=\"ptx-content-footer\">\n                        <xsl:apply-templates select=\".\" mode=\"previous-button\"/>\n                        <a class=\"top-button button\" href=\"#\" title=\"Top\">\n                            <xsl:call-template name=\"insert-symbol\">\n                                <xsl:with-param name=\"name\" select=\"'expand_less'\"/>\n                            </xsl:call-template>\n                            <span class=\"name\">Top</span>\n                        </a>\n                        <xsl:apply-templates select=\".\" mode=\"next-button\"/>\n                    </div>\n                </main>\n            </div>\n            <!-- formerly \"extra\" -->\n            <div id=\"ptx-page-footer\" class=\"ptx-page-footer\">\n                <xsl:apply-templates select=\".\" mode=\"feedback-button\"/>\n                <xsl:call-template name=\"pretext-link\" />\n                <xsl:call-template name=\"runestone-link\"/>\n                <xsl:call-template name=\"mathjax-link\" />\n            </div>\n            <xsl:copy-of select=\"$file-wrap-full-endbody-cache\"/>\n            <!-- For portable builds we stash the lunr search here -->\n            <xsl:if test=\"$b-portable-html and $has-native-search\">\n                <xsl:call-template name=\"embedded-search-construction\"/>\n            </xsl:if>\n        </body>\n    </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- A minimal individual page:                              -->\n<!-- Inputs:                                                 -->\n<!-- * page content (exclusive of banners, navigation etc)   -->\n<xsl:template match=\"*\" mode=\"simple-file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:variable name=\"filename\">\n        <!-- do not use \"containing-filename\" may be different -->\n        <xsl:apply-templates select=\".\" mode=\"visible-id\" />\n        <text>.html</text>\n    </xsl:variable>\n    <exsl:document href=\"{$filename}\" method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\">\n    <xsl:call-template name=\"converter-blurb-html-no-date\"/>\n    <html>\n        <xsl:call-template name=\"language-attributes\"/>\n        <xsl:call-template name=\"pretext-advertisement-and-style\"/>\n        <!-- Open Graph Protocol only in \"meta\" elements, within \"head\" -->\n        <head xmlns:og=\"http://ogp.me/ns#\" xmlns:book=\"https://ogp.me/ns/book#\">\n            <title>\n                <xsl:apply-templates select=\".\" mode=\"title-plain\" />\n            </title>\n            <!-- canonical link for better SEO -->\n            <xsl:call-template name=\"canonical-link\">\n                <xsl:with-param name=\"filename\" select=\"$filename\"/>\n            </xsl:call-template>\n            <!-- grab the contents every page gets -->\n            <xsl:copy-of select=\"$file-wrap-simple-head-cache\"/>\n            <!-- now do anything that is or could be page-specific and comes after cache -->\n            <xsl:apply-templates select=\".\" mode=\"knowl\" />\n            <xsl:apply-templates select=\".\" mode=\"sagecell\" />\n        </head>\n        <!-- TODO: needs some padding etc -->\n        <!-- ignore MathJax signals everywhere, then enable selectively -->\n        <body class=\"ignore-math\">\n            <!-- potential document-id per-page -->\n            <xsl:call-template name=\"document-id\"/>\n            <!-- React flag -->\n            <xsl:call-template name=\"react-in-use-flag\"/>\n            <xsl:copy-of select=\"$content\" />\n            <xsl:copy-of select=\"$file-wrap-basic-endbody-cache\"/>\n        </body>\n    </html>\n    </exsl:document>\n</xsl:template>\n\n<!-- The body element of every page will (optionally) carry  -->\n<!-- an id that identifies which document the HTML page is a -->\n<!-- portion of.  This requires the author to specify the    -->\n<!-- string in the docinfo/document-id element, which comes  -->\n<!-- here via the $document-id variable.                     -->\n<xsl:template name=\"document-id\">\n    <xsl:if test=\"not($document-id = '')\">\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"$document-id\"/>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"react-in-use-flag\">\n    <xsl:if test=\"$b-debug-react\">\n        <xsl:attribute name=\"data-react-in-use\">\n            <xsl:value-of select=\"'yes'\"/>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############# -->\n<!-- Meta keywords -->\n<!-- ############# -->\n\n<xsl:template name=\"keywords-meta-element\" >\n    <meta name=\"Keywords\">\n        <xsl:attribute name=\"content\">\n            <xsl:if test=\"$bibinfo/keywords[not(@authority='msc')]\">\n                <xsl:apply-templates select=\"$bibinfo/keywords[not(@authority='msc')]/keyword\" />\n                <xsl:text>, </xsl:text>\n            </xsl:if>\n            <xsl:text>Authored in PreTeXt</xsl:text>\n        </xsl:attribute>\n    </meta>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Page Identification -->\n<!-- ################### -->\n\n<!-- Canonical Link -->\n<!-- TODO: condition for generic builds at $site-root, need base-url, etc -->\n<xsl:template name=\"canonical-link\">\n    <xsl:param name=\"filename\"/>\n\n    <!-- book-wide site URL -->\n    <xsl:variable name=\"site-root\">\n        <xsl:value-of select=\"concat('https://runestone.academy/ns/books/published/', $document-id, '/')\"/>\n    </xsl:variable>\n    <!-- just for Runestone builds -->\n    <xsl:if test=\"$b-host-runestone\">\n        <xsl:variable name=\"full-url\" select=\"concat($site-root, $filename)\"/>\n        <link rel=\"canonical\" href=\"{$full-url}\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Open Graph Protocol, advertise to Facebook, others       -->\n<!-- https://ogp.me/                                          -->\n<!-- https://developers.facebook.com/docs/sharing/webmasters/ -->\n<!-- https://webcode.tools/generators/open-graph/book         -->\n<!-- Sanity-check live instance: https://opengraphcheck.com/  -->\n<!-- NB not used for EPUB nor Jupyter (could be in RevealJS?) -->\n\n<xsl:template name=\"open-graph-info\">\n    <!-- og:type - book, article, or missing -->\n    <xsl:if test=\"$b-is-article or $b-is-book\">\n        <xsl:call-template name=\"open-graph-meta-element\">\n            <xsl:with-param name=\"namespace\" select=\"'og'\"/>\n            <xsl:with-param name=\"property\" select=\"'type'\"/>\n            <xsl:with-param name=\"content\">\n                <xsl:choose>\n                    <xsl:when test=\"$b-is-book\">\n                        <xsl:text>book</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"$b-is-article\">\n                        <xsl:text>article</xsl:text>\n                    </xsl:when>\n                </xsl:choose>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <!-- og:image - if it's URL can be constructed -->\n    <xsl:if test=\"$b-has-baseurl and $docinfo/brandlogo\">\n        <xsl:call-template name=\"open-graph-meta-element\">\n            <xsl:with-param name=\"namespace\" select=\"'og'\"/>\n            <xsl:with-param name=\"property\" select=\"'image'\"/>\n            <!-- URL = baseurl + external + @source -->\n            <xsl:with-param name=\"content\">\n                <!-- empty when not using managed directories -->\n                <xsl:value-of select=\"$baseurl\"/>\n                <xsl:value-of select=\"$external-directory\"/>\n                <xsl:value-of select=\"$docinfo/brandlogo/@source\"/>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n    <!-- book:title (always exactly one)-->\n    <xsl:if test=\"$b-is-book\">\n        <xsl:call-template name=\"open-graph-meta-element\">\n            <xsl:with-param name=\"namespace\" select=\"'book'\"/>\n            <xsl:with-param name=\"property\" select=\"'title'\"/>\n            <xsl:with-param name=\"content\">\n                <xsl:apply-templates select=\"$document-root\" mode=\"title-plain\"/>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <!--  -->\n    <!-- book:author (allow for multiple) -->\n    <xsl:if test=\"$b-is-book\">\n        <xsl:for-each select=\"$bibinfo/author\">\n            <xsl:call-template name=\"open-graph-meta-element\">\n                <xsl:with-param name=\"namespace\" select=\"'book'\"/>\n                <xsl:with-param name=\"property\" select=\"'author'\"/>\n                <xsl:with-param name=\"content\">\n                    <xsl:value-of select=\"personname\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:for-each>\n    </xsl:if>\n    <!--  -->\n</xsl:template>\n\n<xsl:template name=\"open-graph-meta-element\">\n    <xsl:param name=\"namespace\"/>\n    <xsl:param name=\"property\"/>\n    <xsl:param name=\"content\"/>\n    <meta>\n        <xsl:attribute name=\"property\">\n            <xsl:value-of select=\"$namespace\"/>\n            <xsl:text>:</xsl:text>\n            <xsl:value-of select=\"$property\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"content\">\n            <xsl:value-of select=\"$content\"/>\n        </xsl:attribute>\n    </meta>\n</xsl:template>\n\n\n<!-- ################# -->\n<!-- Navigational Aids -->\n<!-- ################# -->\n\n<!-- Skip to Main Content link -->\n<!-- For accessibilty, a link (hidden off-screen)  -->\n<!-- which allows a quick by-pass of all the other -->\n<!-- navigational elements, direct to content      -->\n<xsl:template name=\"skip-to-content-link\">\n    <xsl:element name=\"a\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>assistive</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"href\">\n            <xsl:text>#ptx-content</xsl:text>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'skip-to-content'\"/>\n        </xsl:apply-templates>\n    </xsl:element>\n</xsl:template>\n\n<!-- Prev/Up/Next URL's -->\n<!-- The \"tree\" versions are simpler, though less natural for a reader -->\n<!-- They often return empty and require the use of the Up button      -->\n<!-- The \"linear\" versions are breadth-first search, and so mimic      -->\n<!-- the way a reader would encounter the sections in a (linear) book  -->\n\n<!-- TODO: perhaps isolate logic to return nodes and put into \"common\" -->\n\n<!-- Check if the XML tree has a preceding/following/parent node -->\n<!-- Then check if it is a document node (structural)            -->\n<!-- If so, compute the URL for the node                         -->\n<!-- NB: tree urls maybe enabled as a processing option          -->\n<xsl:template match=\"*\" mode=\"previous-tree-url\">\n    <xsl:if test=\"preceding-sibling::*\">\n        <xsl:variable name=\"preceding\" select=\"preceding-sibling::*[1]\" />\n        <xsl:variable name=\"structural\">\n            <xsl:apply-templates select=\"$preceding\" mode=\"is-structural\" />\n        </xsl:variable>\n        <xsl:if test=\"$structural='true'\">\n            <xsl:apply-templates select=\"$preceding\" mode=\"url\" />\n        </xsl:if>\n    </xsl:if>\n    <!-- could be empty -->\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"next-tree-url\">\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:variable name=\"following\" select=\"following-sibling::*[1]\" />\n        <xsl:variable name=\"structural\">\n            <xsl:apply-templates select=\"$following\" mode=\"is-structural\" />\n        </xsl:variable>\n        <xsl:if test=\"$structural='true'\">\n            <xsl:apply-templates select=\"$following\" mode=\"url\" />\n        </xsl:if>\n    </xsl:if>\n    <!-- could be empty -->\n</xsl:template>\n\n<!-- Create the URL of the parent document node    -->\n<!-- Parent always exists, since the               -->\n<!-- structural check fails at <pretext>           -->\n<!-- Identical in tree/linear schemes, up is up    -->\n<xsl:template match=\"*\" mode=\"up-url\">\n    <xsl:if test=\"parent::*\">\n        <xsl:variable name=\"parent\" select=\"parent::*[1]\" />\n        <xsl:variable name=\"structural\">\n            <xsl:apply-templates select=\"$parent\" mode=\"is-structural\" />\n        </xsl:variable>\n        <xsl:if test=\"$structural='true'\">\n            <xsl:apply-templates select=\"$parent\" mode=\"url\" />\n        </xsl:if>\n    </xsl:if>\n    <!-- will be empty precisely at children of <pretext> -->\n</xsl:template>\n\n<!-- Next Linear URL -->\n<!-- Breadth-first search, try to descend into first summary link -->\n<!-- Else, look sideways for next structural sibling              -->\n<!-- Else, go up to parent and look sideways                      -->\n<!-- Else done and return empty url                               -->\n<xsl:template match=\"*\" mode=\"next-linear-url\">\n    <xsl:variable name=\"intermediate\">\n        <xsl:apply-templates select=\".\" mode=\"is-intermediate\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$intermediate='true'\">\n            <!-- Descend once, will always have a child that is structural -->\n            <xsl:variable name=\"first-structural-child\" select=\"*[&STRUCTURAL-FILTER;][1]\" />\n            <xsl:apply-templates select=\"$first-structural-child\" mode=\"url\" />\n            <!-- remainder is a basic check, could be removed -->\n            <xsl:variable name=\"structural\">\n                <xsl:apply-templates select=\"$first-structural-child\" mode=\"is-structural\" />\n            </xsl:variable>\n            <xsl:if test=\"$structural='false'\">\n                <xsl:message>PTX:ERROR: descending into first node of an intermediate page (<xsl:value-of select=\"local-name($first-structural-child)\" />) that is non-structural; maybe your source has incorrect structure</xsl:message>\n                <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            </xsl:if>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- try going sideways, which climbs up the tree recursively -->\n            <xsl:apply-templates select=\".\" mode=\"next-sideways-url\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Recursively look sideways to the right, else up    -->\n<!-- <pretext> is not structural, so halt looking there -->\n<xsl:template match=\"*\" mode=\"next-sideways-url\">\n    <xsl:variable name=\"url\">\n        <xsl:if test=\"following-sibling::*\">\n            <xsl:variable name=\"following\" select=\"following-sibling::*[1]\" />\n            <xsl:variable name=\"structural\">\n                <xsl:apply-templates select=\"$following\" mode=\"is-structural\" />\n            </xsl:variable>\n            <xsl:if test=\"$structural='true'\">\n                <!-- A normal sibling following -->\n                <xsl:apply-templates select=\"$following\" mode=\"url\" />\n            </xsl:if>\n        </xsl:if>\n        <!-- could be empty here-->\n    </xsl:variable>\n    <xsl:value-of select=\"$url\" /> <!-- no harm if empty -->\n    <xsl:if test=\"$url=''\">\n        <!-- Try going up and then sideways                          -->\n        <!-- parent always exists, since <pretext> is non-structural -->\n        <xsl:variable name=\"parent\" select=\"parent::*[1]\" />\n        <xsl:variable name=\"structural\">\n            <xsl:apply-templates select=\"$parent\" mode=\"is-structural\" />\n        </xsl:variable>\n        <xsl:if test=\"$structural='true'\">\n            <!-- Up a level, so try looking sideways again -->\n            <xsl:apply-templates select=\"$parent\" mode=\"next-sideways-url\" />\n        </xsl:if>\n        <!-- otherwise we are off the top and quit with an empty url -->\n    </xsl:if>\n</xsl:template>\n\n<!-- Look sideways to the left                                  -->\n<!-- If present, move there and descend right branches          -->\n<!-- If nothing there, move up once                             -->\n<!-- <pretext> is not structural, so halt if we go up to there  -->\n<xsl:template match=\"*\" mode=\"previous-linear-url\">\n    <xsl:variable name=\"url\">\n        <xsl:if test=\"preceding-sibling::*\">\n            <xsl:variable name=\"preceding\" select=\"preceding-sibling::*[1]\" />\n            <xsl:variable name=\"structural\">\n                <xsl:apply-templates select=\"$preceding\" mode=\"is-structural\" />\n            </xsl:variable>\n            <xsl:if test=\"$structural='true'\">\n                <!-- A normal sibling precedin, result is just a sentinel-->\n                <xsl:apply-templates select=\"$preceding\" mode=\"url\" />\n            </xsl:if>\n        </xsl:if>\n        <!-- could be empty here -->\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$url=''\">\n            <!-- Go up to parent and get the URL there (not recursive)   -->\n            <!-- parent always exists, since <pretext> is non-structural -->\n            <xsl:variable name=\"parent\" select=\"parent::*[1]\" />\n            <xsl:variable name=\"structural\">\n                <xsl:apply-templates select=\"$parent\" mode=\"is-structural\" />\n            </xsl:variable>\n            <xsl:if test=\"$structural='true'\">\n                <xsl:apply-templates select=\"$parent\" mode=\"url\" />\n            </xsl:if>\n            <!-- otherwise we are off the top and quit with an empty url -->\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- found a preceding sibling, so descend right branches to a leaf -->\n            <xsl:apply-templates select=\"preceding-sibling::*[1]\" mode=\"previous-descent-url\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Descend recursively through summary pages -->\n<!-- to a leaf (content) and get URL           -->\n<xsl:template match=\"*\" mode=\"previous-descent-url\" >\n    <xsl:variable name=\"intermediate\">\n        <xsl:apply-templates select=\".\" mode=\"is-intermediate\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$intermediate='false'\">\n            <xsl:apply-templates select=\".\" mode=\"url\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"last-structural-child\" select=\"*[&STRUCTURAL-FILTER;][last()]\" />\n            <xsl:apply-templates select=\"$last-structural-child\" mode=\"previous-descent-url\" />\n            <!-- remainder is a basic check, could be removed -->\n            <xsl:variable name=\"structural\">\n                <xsl:apply-templates select=\"$last-structural-child\" mode=\"is-structural\" />\n            </xsl:variable>\n            <xsl:if test=\"$structural='false'\">\n                <xsl:message>PTX:ERROR: descending into last node of an intermediate page (<xsl:value-of select=\"local-name($last-structural-child)\" />) that is non-structural</xsl:message>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ########## -->\n<!-- Permalinks -->\n<!-- ########## -->\n\n<xsl:template match=\"*\" mode=\"permalink\">\n    <xsl:variable name=\"permalink-description\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'permalink-tooltip'\"/>\n        </xsl:apply-templates>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"tooltip-text\"/>\n    </xsl:variable>\n    <div class=\"autopermalink\">\n        <xsl:attribute name=\"data-description\">\n            <xsl:apply-templates select=\".\" mode=\"tooltip-text\"/>\n        </xsl:attribute>\n        <a>\n            <xsl:attribute name=\"href\">\n                <xsl:text>#</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"title\">\n                <xsl:value-of select=\"$permalink-description\"/>\n            </xsl:attribute>\n            <xsl:attribute name=\"aria-label\">\n                <xsl:value-of select=\"$permalink-description\"/>\n            </xsl:attribute>\n            <xsl:text>🔗</xsl:text>\n        </a>\n    </div>\n</xsl:template>\n\n<!-- Asides and footnotes don't get permalinks -->\n<xsl:template match=\"fn|&ASIDE-LIKE;\" mode=\"permalink\"/>\n\n<!-- 2025-05-29: \"p\" inside a \"feedback\" of a dynamic FITB exercise -->\n<!-- are losing their context, can't look up the tree, don't know   -->\n<!-- their language, and can't make a tooltip.  This match is more  -->\n<!-- aggressive than necessary, but should suffice while we wait    -->\n<!-- for the underlying problem to be addressed.  Details may       -->\n<!-- appear at  https://github.com/PreTeXtBook/pretext/pull/2534    -->\n<xsl:template match=\"feedback/p\" mode=\"permalink\"/>\n\n<!-- 2025-10-19: elements in the label for a multiple choice  -->\n<!-- option overlaps the label itself, obscuring the content. -->\n<!-- NB: \"choices\" are in multiple-choice exercises, and in   -->\n<!-- \"query\" polling-like elements.                           -->\n<xsl:template match=\"choices//*\" mode=\"permalink\"/>\n\n<!-- 2025-11-1: elements inside Parsons problem should not get permalinks -->\n<xsl:template match=\"blocks//*\" mode=\"permalink\"/>\n\n<!-- 2025-11-9: no permalink for elements inside cardsort/matching/clickable -->\n<xsl:template match=\"cardsort//*\" mode=\"permalink\"/>\n<xsl:template match=\"matching//*\" mode=\"permalink\"/>\n<xsl:template match=\"areas//*\" mode=\"permalink\"/>\n\n\n<!--                     -->\n<!-- Navigation Sections -->\n<!--                     -->\n\n<!-- Button code, <a href=\"\"> when active   -->\n<!-- <span> with \"disabled\" class otherwise -->\n<xsl:template match=\"*\" mode=\"previous-button\">\n    <xsl:variable name=\"previous-url\">\n        <xsl:choose>\n            <xsl:when test=\"$nav-logic='linear'\">\n                <xsl:apply-templates select=\".\" mode=\"previous-linear-url\" />\n            </xsl:when>\n            <xsl:when test=\"$nav-logic='tree'\">\n                <xsl:apply-templates select=\".\" mode=\"previous-tree-url\" />\n            </xsl:when>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$previous-url!=''\">\n            <xsl:element name=\"a\">\n                <xsl:attribute name=\"class\">previous-button button</xsl:attribute>\n                <xsl:attribute name=\"href\">\n                    <xsl:value-of select=\"$previous-url\" />\n                </xsl:attribute>\n                <xsl:attribute name=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'previous'\"/>\n                    </xsl:apply-templates>\n                </xsl:attribute>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'chevron_left'\"/>\n                </xsl:call-template>\n                <span class=\"name\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'previous-short'\"/>\n                    </xsl:apply-templates>\n                </span>\n            </xsl:element>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:element name=\"span\">\n                <xsl:attribute name=\"class\">previous-button button disabled</xsl:attribute>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'chevron_left'\"/>\n                </xsl:call-template>\n                <span class=\"name\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'previous-short'\"/>\n                    </xsl:apply-templates>\n                </span>\n            </xsl:element>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"index-button\">\n    <xsl:if test=\"$the-index\">\n        <xsl:variable name=\"url\">\n            <xsl:apply-templates select=\"$the-index\" mode=\"url\" />\n        </xsl:variable>\n        <xsl:element name=\"a\">\n            <xsl:attribute name=\"class\">\n                <xsl:text>index-button button</xsl:text>\n            </xsl:attribute>\n            <xsl:attribute name=\"href\">\n                <xsl:value-of select=\"$url\" />\n            </xsl:attribute>\n            <xsl:attribute name=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'index'\"/>\n                </xsl:apply-templates>\n            </xsl:attribute>\n            <xsl:call-template name=\"insert-symbol\">\n                <xsl:with-param name=\"name\" select=\"'info'\"/>\n            </xsl:call-template>\n            <span class=\"name\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'index'\"/>\n                </xsl:apply-templates>\n            </span>\n        </xsl:element>\n    </xsl:if>\n</xsl:template>\n\n<!-- The \"jump to\" navigation on a page with the index -->\n<xsl:template match=\"*\" mode=\"index-jump-nav\">\n    <div class=\"indexnav\">\n        <span class=\"mininav\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'jump-to'\"/>\n            </xsl:apply-templates>\n        </span>\n        <span class=\"indexjump\">\n            <a href=\"#indexletter-a\">A </a>\n            <a href=\"#indexletter-b\">B </a>\n            <a href=\"#indexletter-c\">C </a>\n            <a href=\"#indexletter-d\">D </a>\n            <a href=\"#indexletter-e\">E </a>\n            <a href=\"#indexletter-f\">F </a>\n            <a href=\"#indexletter-g\">G </a>\n            <a href=\"#indexletter-h\">H </a>\n            <a href=\"#indexletter-i\">I </a>\n            <a href=\"#indexletter-j\">J </a>\n            <a href=\"#indexletter-k\">K </a>\n            <a href=\"#indexletter-l\">L </a>\n            <a href=\"#indexletter-m\">M </a>\n            <br />\n            <a href=\"#indexletter-n\">N </a>\n            <a href=\"#indexletter-o\">O </a>\n            <a href=\"#indexletter-p\">P </a>\n            <a href=\"#indexletter-q\">Q </a>\n            <a href=\"#indexletter-r\">R </a>\n            <a href=\"#indexletter-s\">S </a>\n            <a href=\"#indexletter-t\">T </a>\n            <a href=\"#indexletter-u\">U </a>\n            <a href=\"#indexletter-v\">V </a>\n            <a href=\"#indexletter-w\">W </a>\n            <a href=\"#indexletter-x\">X </a>\n            <a href=\"#indexletter-y\">Y </a>\n            <a href=\"#indexletter-z\">Z </a>\n        </span>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"next-button\">\n    <xsl:variable name=\"next-url\">\n        <xsl:choose>\n            <xsl:when test=\"$nav-logic='linear'\">\n                <xsl:apply-templates select=\".\" mode=\"next-linear-url\" />\n            </xsl:when>\n            <xsl:when test=\"$nav-logic='tree'\">\n                <xsl:apply-templates select=\".\" mode=\"next-tree-url\" />\n            </xsl:when>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$next-url!=''\">\n            <xsl:element name=\"a\">\n                <xsl:attribute name=\"class\">next-button button</xsl:attribute>\n                <xsl:attribute name=\"href\">\n                    <xsl:value-of select=\"$next-url\" />\n                </xsl:attribute>\n                <xsl:attribute name=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'next'\"/>\n                    </xsl:apply-templates>\n                </xsl:attribute>\n                <span class=\"name\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'next-short'\"/>\n                    </xsl:apply-templates>\n                </span>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'chevron_right'\"/>\n                </xsl:call-template>\n            </xsl:element>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:element name=\"span\">\n                <xsl:attribute name=\"class\">next-button button disabled</xsl:attribute>\n                <span class=\"name\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'next-short'\"/>\n                    </xsl:apply-templates>\n                </span>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'chevron_right'\"/>\n                </xsl:call-template>\n            </xsl:element>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"up-button\">\n    <!-- up URL is identical for linear, tree logic -->\n    <xsl:variable name=\"up-url\">\n        <xsl:apply-templates select=\".\" mode=\"up-url\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$up-url!=''\">\n            <xsl:element name=\"a\">\n                <xsl:attribute name=\"class\">up-button button</xsl:attribute>\n                <xsl:attribute name=\"href\">\n                    <xsl:value-of select=\"$up-url\" />\n                </xsl:attribute>\n                <xsl:attribute name=\"title\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'up'\"/>\n                    </xsl:apply-templates>\n                </xsl:attribute>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'expand_less'\"/>\n                </xsl:call-template>\n                <span class=\"name\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'up-short'\"/>\n                    </xsl:apply-templates>\n                </span>\n            </xsl:element>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:element name=\"span\">\n                <xsl:attribute name=\"class\">up-button button disabled</xsl:attribute>\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'expand_less'\"/>\n                </xsl:call-template>\n                <span class=\"name\">\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'up-short'\"/>\n                    </xsl:apply-templates>\n                </span>\n            </xsl:element>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template name=\"calculator-toggle\">\n    <button id=\"calculator-toggle\" class=\"calculator-toggle button\" title=\"Show calculator\" aria-expanded=\"false\" aria-controls=\"calculator-container\">\n        <xsl:call-template name=\"insert-symbol\">\n            <xsl:with-param name=\"name\" select=\"'calculate'\"/>\n        </xsl:call-template>\n        <span class=\"name\">Calc</span>\n    </button>\n</xsl:template>\n\n<xsl:template name=\"light-dark-button\">\n    <button id=\"light-dark-button\" class=\"light-dark-button button\" title=\"Dark Mode\">\n        <xsl:call-template name=\"insert-symbol\">\n            <xsl:with-param name=\"name\" select=\"'dark_mode'\"/>\n        </xsl:call-template>\n        <span class=\"name\">Dark Mode</span>\n    </button>\n</xsl:template>\n\n<xsl:template name=\"embed-button\">\n    <button id=\"embed-button\" class=\"embed-button button\" title=\"Embed this page\">\n        <xsl:call-template name=\"insert-symbol\">\n            <xsl:with-param name=\"name\" select=\"'code'\"/>\n        </xsl:call-template>\n        <span class=\"name\">Embed</span>\n\n    </button>\n    <div class=\"embed-popup hidden\" id=\"embed-popup\">\n        <p>Copy the code below to embed this page in your own website or LMS page.</p>\n        <div class=\"embed-code-container\">\n            <textarea class=\"embed-code-textbox\" id=\"embed-code-textbox\" readonly=\"true\" aria-label=\"textbox\">\n                <iframe src=\"https://example.com/embed\" width=\"100%\" height=\"1000\"></iframe>\n            </textarea>\n            <button class=\"copy-embed-button button\" id=\"copy-embed-button\" title=\"Copy embed code\">\n                <xsl:call-template name=\"insert-symbol\">\n                    <xsl:with-param name=\"name\" select=\"'content_copy'\"/>\n                </xsl:call-template>\n                <span class=\"name\">Copy</span>\n            </button>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"print-button\">\n    <xsl:variable name=\"print-text\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'print'\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <button class=\"print-button\" title=\"{$print-text}\" onClick=\"window.print()\">\n        <xsl:call-template name=\"insert-symbol\">\n            <xsl:with-param name=\"name\" select=\"'print'\"/>\n        </xsl:call-template>\n        <span class=\"name\">\n            <xsl:value-of select=\"$print-text\"/>\n        </span>\n    </button>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"print-preview-header\">\n    <div class=\"print-preview-header\">\n        <h2 class=\"print-preview\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'print-preview'\"/>\n            </xsl:apply-templates>\n        </h2>\n        <div class=\"print-controls\">\n            <div class=\"print-controls-toggles\">\n                <xsl:apply-templates select=\".\" mode=\"papersize-toggle\"/>\n                <xsl:apply-templates select=\".\" mode=\"printing-options\"/>\n            </div>\n            <xsl:apply-templates select=\".\" mode=\"print-button\"/>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"papersize-toggle\">\n    <xsl:variable name=\"papersize\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'papersize'\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <form class=\"papersize-select\" id=\"papersize-select\">\n        <span class=\"name\"><xsl:value-of select=\"$papersize\"/></span>\n        <label>\n            <input type=\"radio\" name=\"papersize\" value=\"a4\"/>A4\n        </label>\n        <label>\n            <input type=\"radio\" name=\"papersize\" value=\"letter\"/>Letter\n        </label>\n    </form>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"printing-options\">\n    <details class=\"print-options\">\n        <summary>\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'printing-options'\"/>\n            </xsl:apply-templates>\n        </summary>\n        <xsl:apply-templates select=\".\" mode=\"hide-solutions\"/>\n        <xsl:apply-templates select=\".\" mode=\"header-footer-toggles\"/>\n        <xsl:apply-templates select=\".\" mode=\"highlight-workspace-toggle\"/>\n    </details>\n</xsl:template>\n\n<!-- We provide a checkboxes to hide hints, answers, and solution -->\n<!-- but only if the worksheet contains these elements.           -->\n<xsl:template match=\"*\" mode=\"hide-solutions\">\n    <xsl:if test=\".//solution or .//answer or .//hint\">\n        <div class=\"hide-solutions-options\">\n            <xsl:if test=\".//hint\">\n                <div class=\"hide-option\">\n                    <label for=\"hide-hint-checkbox\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'hide-hints'\"/>\n                        </xsl:apply-templates>\n                    </label>\n                    <input type=\"checkbox\" id=\"hide-hint-checkbox\"/>\n                </div>\n            </xsl:if>\n            <xsl:if test=\".//answer\">\n                <div class=\"hide-option\">\n                    <label for=\"hide-answer-checkbox\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'hide-answers'\"/>\n                        </xsl:apply-templates>\n                    </label>\n                    <input type=\"checkbox\" id=\"hide-answer-checkbox\"/>\n                </div>\n            </xsl:if>\n            <xsl:if test=\".//solution\">\n                <div class=\"hide-option\">\n                    <label for=\"hide-solution-checkbox\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'hide-solutions'\"/>\n                        </xsl:apply-templates>\n                    </label>\n                    <input type=\"checkbox\" id=\"hide-solution-checkbox\"/>\n                </div>\n            </xsl:if>\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"header-footer-toggles\">\n    <div class=\"header-footer-options\">\n        <div class=\"header-option\">\n            <span class=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'print-header'\"/>\n                </xsl:apply-templates>\n            </span>\n            <label>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'first-page'\"/>\n                </xsl:apply-templates>\n                <input type=\"checkbox\" id=\"print-first-page-header-checkbox\" checked=\"checked\"/>\n            </label>\n            <label>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'running'\"/>\n                </xsl:apply-templates>\n                <input type=\"checkbox\" id=\"print-running-header-checkbox\" checked=\"checked\"/>\n            </label>\n        </div>\n        <div class=\"footer-option\">\n            <span class=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'print-footer'\"/>\n                </xsl:apply-templates>\n            </span>\n            <label>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'first-page'\"/>\n                </xsl:apply-templates>\n                <input type=\"checkbox\" id=\"print-first-page-footer-checkbox\" checked=\"checked\"/>\n            </label>\n            <label>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'running'\"/>\n                </xsl:apply-templates>\n                <input type=\"checkbox\" id=\"print-running-footer-checkbox\" checked=\"checked\"/>\n            </label>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"highlight-workspace-toggle\">\n    <div class=\"highlight-workspace-option\">\n        <label for=\"highlight-workspace-checkbox\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'highlight-workspace'\"/>\n            </xsl:apply-templates>\n        </label>\n        <input type=\"checkbox\" id=\"highlight-workspace-checkbox\"/>\n    </div>\n</xsl:template>\n\n<!-- Primary Navigation Panels -->\n<!-- ToC, Prev/Up/Next/Annotation buttons  -->\n<!-- Also organized for small screen modes -->\n<xsl:template match=\"*\" mode=\"primary-navigation\">\n\n    <nav id=\"ptx-navbar\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>ptx-navbar navbar</xsl:text>\n        </xsl:attribute>\n\n        <div class=\"ptx-navbar-contents\">\n            <!-- Pick an ordering for the nav components based on layout needs -->\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation-toc\" />\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation-index\" />\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation-search\" />\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation-other-controls\" />\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation-treebuttons\" />\n            <xsl:apply-templates select=\".\" mode=\"primary-navigation-runestone\" />\n\n            <!-- Annotations button was once here, see GitHub issue -->\n            <!-- https://github.com/rbeezer/mathbook/issues/1010    -->\n        </div>\n    </nav>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"primary-navigation-search\">\n    <xsl:call-template name=\"google-search-box\" />\n    <xsl:call-template name=\"native-search-box\" />\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"primary-navigation-treebuttons\">\n    <!-- Span to encase Prev/Up/Next buttons and float right    -->\n    <!-- Each button gets an id for keypress recognition/action -->\n    <span class=\"treebuttons\">\n        <xsl:apply-templates select=\".\" mode=\"previous-button\"/>\n        <xsl:if test=\"$nav-upbutton='yes'\">\n            <xsl:apply-templates select=\".\" mode=\"up-button\"/>\n        </xsl:if>\n        <xsl:apply-templates select=\".\" mode=\"next-button\"/>\n    </span>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"primary-navigation-runestone\">\n    <!-- Runestone user menu -->\n    <xsl:if test=\"not($b-debug-react) and ($b-host-runestone or $b-has-scratch-activecode)\">\n        <span class=\"nav-runestone-controls\">\n            <!-- A scratch ActiveCode via a pencil icon, always -->\n            <xsl:call-template name=\"runestone-scratch-activecode\"/>\n            <!-- Conditional on a build for Runestone hosting -->\n            <xsl:call-template name=\"runestone-bust-menu\"/>\n        </span>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"primary-navigation-other-controls\">\n    <span class=\"nav-other-controls\">\n        <!-- Button to show/hide the calculator -->\n        <xsl:if test=\"$b-has-calculator\">\n            <xsl:call-template name=\"calculator-toggle\" />\n            <xsl:call-template name=\"calculator\" />\n        </xsl:if>\n        <!-- Button to show code for embedding in an LMS or webpage  -->\n         <xsl:if test=\"$b-has-embed-button\">\n             <xsl:call-template name=\"embed-button\" />\n        </xsl:if>\n        <xsl:if test=\"$b-theme-has-darkmode\">\n            <xsl:call-template name=\"light-dark-button\" />\n        </xsl:if>\n    </span>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"primary-navigation-index\">\n    <!-- A page either has an/the index as    -->\n    <!-- a child, and gets the \"jump to\" bar, -->\n    <!-- or it deserves an index button       -->\n    <xsl:choose>\n        <xsl:when test=\"index-list\">\n            <xsl:apply-templates select=\".\" mode=\"index-jump-nav\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"index-button\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"primary-navigation-toc\">\n    <button>\n        <xsl:attribute name=\"class\">\n            <xsl:text>toc-toggle button</xsl:text>\n            <xsl:if test=\"$toc-level = 0\">\n                <xsl:text> hidden</xsl:text>\n            </xsl:if>\n        </xsl:attribute>\n        <xsl:attribute name=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'toc'\"/>\n            </xsl:apply-templates>\n        </xsl:attribute>\n        <xsl:call-template name=\"insert-symbol\">\n            <xsl:with-param name=\"name\" select=\"'menu'\"/>\n        </xsl:call-template>\n        <span class=\"name\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'toc'\"/>\n            </xsl:apply-templates>\n        </span>\n    </button>\n</xsl:template>\n\n<!-- ToC sidebar                                                -->\n<xsl:template match=\"*\" mode=\"sidebars\">\n    <div id=\"ptx-sidebar\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>ptx-sidebar</xsl:text>\n            <xsl:if test=\"$toc-level = 0\">\n                <xsl:text> hidden</xsl:text>\n            </xsl:if>\n        </xsl:attribute>\n        <nav id=\"ptx-toc\">\n            <xsl:attribute name=\"class\">\n                <xsl:text>ptx-toc</xsl:text>\n                <!-- A class indicates how much of the ToC we want   -->\n                <!-- to see, as set in the publication file. Always. -->\n                <xsl:text> depth</xsl:text>\n                <xsl:value-of select=\"$toc-level\"/>\n                <!-- Optionally place a class name to allow for numbering  -->\n                <!-- parts and chapters, when parts are present (w/ space) -->\n                <xsl:if test=\"$b-has-parts\">\n                    <xsl:text> parts</xsl:text>\n                </xsl:if>\n                <xsl:if test=\"$b-html-toc-focused\">\n                    <xsl:text> focused</xsl:text>\n                </xsl:if>\n            </xsl:attribute>\n            <!-- if focused, add info for js to pick up about levels -->\n            <xsl:if test=\"$b-html-toc-focused\">\n                <xsl:attribute name=\"data-preexpanded-levels\">\n                    <xsl:value-of select=\"$html-toc-preexpanded-levels\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"data-max-levels\">\n                    <xsl:value-of select=\"$toc-level\"/>\n                </xsl:attribute>\n            </xsl:if>\n            <!-- now, all the actual ToC entries -->\n            <xsl:apply-templates select=\".\" mode=\"customized-toc-items\"/>\n        </nav>\n    </div>\n </xsl:template>\n\n<xsl:template name=\"calculator\">\n    <xsl:if test=\"contains($html-calculator,'geogebra')\">\n        <div id=\"calculator-container\" class=\"calculator-container\" style=\"display: none; z-index:100;\">\n            <div id=\"geogebra-calculator\"></div>\n        </div>\n        <script>\n            <xsl:text>&#xa;</xsl:text>\n            <!-- Here is where we could initialize some things to customize the display.                    -->\n            <!-- But the customization should be different depending on classic, graphing, geometry, or 3d. -->\n            <!-- For instance geometry probably does not benefit from showing the grid.                     -->\n            <!-- If this is not in use, no need to set \"appletOnLoad\" further below.                        -->\n            <!-- var onLoad = function(applet) {\n                applet.setAxisLabels(1,'x','y','z');\n                applet.setGridVisible(1,true);\n                applet.showFullscreenButton(true);\n            }; -->\n            <xsl:text>var ggbApp = new GGBApplet({\"appName\": \"</xsl:text>\n            <xsl:value-of select=\"substring-after($html-calculator,'-')\"/>\n            <xsl:text>\",&#xa;</xsl:text>\n            <!-- width and height are required parameters                   -->\n            <!-- All the rest is customizing some things away from defaults -->\n            <!-- (or maybe in some cases explicitly using the defaults)     -->\n            <!-- The last parameters have to do with scaling. This combination allows the 330x600 applet -->\n            <!-- to scale up or down to the width of the contining div with class calculator-container.  -->\n            <!-- The applet's height will scale proportionately.                                         -->\n            <xsl:text>    \"width\": 330,&#xa;</xsl:text>\n            <xsl:text>    \"height\": 600,&#xa;</xsl:text>\n            <xsl:text>    \"showToolBar\": true,&#xa;</xsl:text>\n            <xsl:text>    \"showAlgebraInput\": true,&#xa;</xsl:text>\n            <xsl:text>    \"perspective\": \"G/A\",&#xa;</xsl:text>\n            <xsl:text>    \"algebraInputPosition\": \"bottom\",&#xa;</xsl:text>\n            <!--          \"appletOnLoad\": onLoad, -->\n            <xsl:text>    \"scaleContainerClass\": \"calculator-container\",&#xa;</xsl:text>\n            <xsl:text>    \"allowUpscale\": true,&#xa;</xsl:text>\n            <xsl:text>    \"autoHeight\": true,&#xa;</xsl:text>\n            <xsl:text>    \"disableAutoScale\": false},&#xa;</xsl:text>\n            <xsl:text>true);&#xa;</xsl:text>\n            <!--   The calculator is created by                    -->\n            <!--   ggbApp.inject('geogebra-calculator');           -->\n            <!--   which is inserted by code in pretext_add_on.js  -->\n        </script>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Table of Contents Contents (Items)                            -->\n<!-- This is the pre-computed TOC that is on every page. It will   -->\n<!-- be customized later as it is rendered to each page.           -->\n<xsl:variable name=\"toc-cache-rtf\">\n    <xsl:apply-templates select=\"/\" mode=\"toc-items\"/>\n</xsl:variable>\n\n<xsl:template match=\"*\" mode=\"toc-items\">\n    <!-- start recursion at the top, since the  -->\n    <!-- ToC is global for the whole document   -->\n    <ul class=\"structural toc-item-list\">\n        <xsl:apply-templates select=\"$document-root\" mode=\"toc-item\"/>\n    </ul>\n</xsl:template>\n\n<!-- NB no \"book\", \"article\" -->\n<xsl:template match=\"frontmatter|abstract|frontmatter/colophon|biography|dedication|acknowledgement|preface|contributors|part|chapter|section|subsection|subsubsection|exercises|solutions|reading-questions|references|glossary|worksheet|handout|backmatter|appendix|index|backmatter/colophon\" mode=\"toc-item\">\n    <li>\n        <xsl:apply-templates select=\".\" mode=\"toc-item-properties\"/>\n        <!-- Recurse into children divisions (if any)-->\n        <xsl:variable name=\"child-list\" select=\"frontmatter|abstract|frontmatter/colophon|biography|dedication|acknowledgement|preface|contributors|part|chapter|section|subsection|subsubsection|exercises|solutions|reading-questions|references|glossary|worksheet|handout|backmatter|appendix|index|backmatter/colophon\"/>\n        <xsl:if test=\"$child-list\">\n            <ul>\n                <!-- copy id of this ui for use in customization pass, will remove there -->\n                <xsl:attribute name=\"uid\">\n                    <xsl:value-of select=\"@unique-id\"/>\n                </xsl:attribute>\n                <xsl:attribute name=\"class\">\n                    <xsl:text>structural toc-item-list</xsl:text>\n                </xsl:attribute>\n                <xsl:apply-templates select=\"*\" mode=\"toc-item\"/>\n            </ul>\n        </xsl:if>\n    </li>\n</xsl:template>\n\n<!-- Recurse through un-interesting elements -->\n<!-- NB: pass along current page -->\n<!-- Will pickup blocks, etc on unstructured divisions while picking up specialized divisions -->\n<xsl:template match=\"*\" mode=\"toc-item\">\n    <xsl:apply-templates select=\"*\" mode=\"toc-item\"/>\n</xsl:template>\n\n<!-- The contents of a division's \"li\" -->\n<xsl:template match=\"*\" mode=\"toc-item-properties\">\n    <xsl:variable name=\"the-url\">\n        <xsl:apply-templates select=\".\" mode=\"url\"/>\n    </xsl:variable>\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:attribute name=\"class\">\n        <xsl:text>toc-item</xsl:text>\n        <xsl:text> toc-</xsl:text><xsl:value-of select=\"translate(local-name(), '/', '-')\"/>\n    </xsl:attribute>\n    <!-- copy id of this li for use in customization pass, will remove there -->\n    <xsl:attribute name=\"uid\">\n        <xsl:value-of select=\"@unique-id\"/>\n    </xsl:attribute>\n    <div class=\"toc-title-box\">\n        <a href=\"{$the-url}\" class=\"internal\">\n            <xsl:if test=\"not($the-number = '')\">\n                <span class=\"codenumber\">\n                    <xsl:value-of select=\"$the-number\" />\n                </span>\n                <!-- separating space, only if needed -->\n                <xsl:text> </xsl:text>\n            </xsl:if>\n            <!-- *always* a title for divisions -->\n            <span class=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"title-short\" />\n            </span>\n        </a>\n    </div>\n</xsl:template>\n\n<!-- Table of Contents per-page customization      -->\n<xsl:template match=\"*\" mode=\"customized-toc-items\">\n    <!-- get a copy of the toc-cach that we will decorate -->\n    <xsl:variable name=\"toc-contents-rtf\">\n        <xsl:copy-of select=\"$toc-cache-rtf\"/>\n    </xsl:variable>\n    <xsl:variable name=\"toc-contents\" select=\"exsl:node-set($toc-contents-rtf)\"/>\n\n    <!-- get the unique id of the current page -->\n    <xsl:variable name=\"uid\" select=\"@unique-id\"/>\n    <!-- use that to find the ToC node for that page -->\n    <xsl:variable name=\"this-page-node\" select=\"$toc-contents//*[@uid = $uid]\"/>\n    <!-- ancestor list will allow us to identify when we are in the path to the page -->\n    <xsl:variable name=\"this-page-ancestors\" select=\"$this-page-node/ancestor::*\" />\n\n    <!-- begin copying ToC at root element -->\n    <xsl:apply-templates select=\"$toc-contents\" mode=\"customized-toc-item\">\n        <xsl:with-param name=\"this-page\" select=\"$this-page-node\"/>\n        <xsl:with-param name=\"this-page-ancestors\" select=\"$this-page-ancestors\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- boring element (span, etc...) -->\n<xsl:template match=\"@*|*\" mode=\"customized-toc-item\">\n    <xsl:param name=\"this-page\"/>\n    <xsl:param name=\"this-page-ancestors\"/>\n    <xsl:copy>\n        <!-- process all other attributes, nodes, and text-->\n        <xsl:apply-templates select=\"@*|*|text()\" mode=\"customized-toc-item\">\n            <xsl:with-param name=\"this-page\" select=\"$this-page\"/>\n            <xsl:with-param name=\"this-page-ancestors\" select=\"$this-page-ancestors\"/>\n        </xsl:apply-templates>\n    </xsl:copy>\n</xsl:template>\n\n<!-- items that may need to be customized-->\n<xsl:template match=\"ul|li\" mode=\"customized-toc-item\">\n    <xsl:param name=\"this-page\"/>\n    <xsl:param name=\"this-page-ancestors\"/>\n\n    <!-- root ul in toc should always be considered \"is-ancestor\"     -->\n    <!-- even if there is no active page (e.g. index.html)            -->\n    <xsl:variable name=\"is-ancestor\" select=\"not(ancestor::ul) or count($this-page-ancestors|.) = count($this-page-ancestors)\"/>\n    <xsl:variable name=\"is-page\" select=\"count($this-page|.) = count($this-page)\"/>\n    <xsl:choose>\n        <!-- ToC item contains or is active page -->\n        <xsl:when test=\"$is-ancestor or $is-page\">\n            <!-- need to copy with modified class list -->\n            <xsl:copy>\n                <!-- reconstruct class attr -->\n                <xsl:variable name=\"old-class\" select=\"@class\"/>\n                <xsl:attribute name=\"class\">\n                    <xsl:value-of select=\"$old-class\"/>\n                    <xsl:choose>\n                        <xsl:when test=\"$is-ancestor\">\n                            <xsl:text> contains-active</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text> active</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:attribute>\n                <!-- filter the uids and class, process all other attributes, nodes, and text-->\n                <xsl:apply-templates select=\"@*[name() != 'uid' and name() != 'class']|*|text()\" mode=\"customized-toc-item\">\n                    <xsl:with-param name=\"this-page\" select=\"$this-page\"/>\n                    <xsl:with-param name=\"this-page-ancestors\" select=\"$this-page-ancestors\"/>\n                </xsl:apply-templates>\n            </xsl:copy>\n        </xsl:when>\n        <!-- ToC item is not on path to active page, simple copy minus uid-->\n        <xsl:otherwise>\n            <xsl:copy>\n                <xsl:apply-templates select=\"@*[name() != 'uid']|*|text()\" mode=\"customized-toc-item\">\n                    <xsl:with-param name=\"this-page\" select=\"$this-page\"/>\n                    <xsl:with-param name=\"this-page-ancestors\" select=\"$this-page-ancestors\"/>\n                </xsl:apply-templates>\n            </xsl:copy>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A standalone XML file with ToC necessities  -->\n<!-- Infrastructure for file, initiate recursion -->\n<xsl:template name=\"doc-manifest\">\n    <xsl:if test=\"$b-debug-react\">\n        <exsl:document href=\"doc-manifest.xml\" method=\"xml\" indent=\"yes\" encoding=\"UTF-8\">\n            <toc>\n                <xsl:apply-templates select=\"$document-root\" mode=\"toc-item-list\"/>\n            </toc>\n        </exsl:document>\n    </xsl:if>\n</xsl:template>\n\n<!-- The top-level organization is of two flavors:                  -->\n<!--                                                                -->\n<!-- (1a) For a book with no parts                                  -->\n<!--                                                                -->\n<!-- frontmatter                                                    -->\n<!-- mainmatter                                                     -->\n<!--   chapter                                                      -->\n<!--   chapter                                                      -->\n<!-- backmatter                                                     -->\n<!--                                                                -->\n<!-- (1b) For an article                                            -->\n<!--                                                                -->\n<!-- frontmatter                                                    -->\n<!-- mainmatter                                                     -->\n<!--   section                                                      -->\n<!--   section                                                      -->\n<!-- backmatter                                                     -->\n<!--                                                                -->\n<!-- (2) For a book with parts                                      -->\n<!--                                                                -->\n<!--   frontmatter                                                  -->\n<!--   part                                                         -->\n<!--   part                                                         -->\n<!--   backmatter                                                   -->\n<!--                                                                -->\n<!-- So there are four top-level divisions for the ToC:             -->\n<!--                                                                -->\n<!--   frontmatter, mainmatter, backmatter, part                    -->\n<!--                                                                -->\n<!-- which are always peers.  Then, for example, a book chapter     -->\n<!-- and a book appendix are always at the same depth, parts or     -->\n<!-- not.  The \"mainmatter\" division is a fiction, so not rendered. -->\n\n<xsl:template match=\"article|book\" mode=\"toc-item-list\">\n    <division>\n        <xsl:apply-templates select=\".\" mode=\"doc-manifest-division-attributes\"/>\n        <xsl:choose>\n            <xsl:when test=\"$b-has-parts\">\n                <!-- identical to general recursion below, see comments -->\n                <xsl:apply-templates select=\"*\" mode=\"toc-item-list\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"frontmatter\" mode=\"toc-item-list\"/>\n                <!-- insert a faux \"mainmatter\" division to coordinate the levels -->\n                <!-- of similar divisions, such a chapter and appendix in a book  -->\n                <!-- attributes are sensible defaults                             -->\n                <division type=\"mainmatter\" number=\"\" id=\"mainmatter\">\n                    <!-- form URL of \"mainmatter\" to be the document root -->\n                    <xsl:variable name=\"the-url\">\n                        <xsl:apply-templates select=\".\" mode=\"url\"/>\n                    </xsl:variable>\n                    <xsl:attribute name=\"url\">\n                        <xsl:value-of select=\"$the-url\"/>\n                        <!-- add the HTML id as a fragment identifier when absent, -->\n                        <!-- which is the case where the division is a chunk/page  -->\n                        <xsl:if test=\"not(contains($the-url, '#'))\">\n                            <xsl:text>#</xsl:text>\n                            <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n                        </xsl:if>\n                    </xsl:attribute>\n                    <!-- title not localized, not expected to be displayed -->\n                    <title>Main Matter</title>\n                    <xsl:apply-templates select=\"*[not(self::frontmatter or self::backmatter)]\" mode=\"toc-item-list\"/>\n                </division>\n                <xsl:apply-templates select=\"backmatter\" mode=\"toc-item-list\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </division>\n</xsl:template>\n\n<!-- Every item that could be a TOC entry, mined from the schema. -->\n<xsl:template match=\"frontmatter|frontmatter/colophon|biography|dedication|acknowledgement|preface|contributors|part|chapter|section|subsection|subsubsection|exercises|solutions|reading-questions|references|glossary|worksheet|handout|backmatter|appendix|index|backmatter/colophon\" mode=\"toc-item-list\">\n    <division>\n        <xsl:apply-templates select=\".\" mode=\"doc-manifest-division-attributes\"/>\n        <!-- Recurse into children divisions (if any)                 -->\n        <!-- NB: the select here could match the one above and this   -->\n        <!-- would be much more efficient.  But we may include blocks -->\n        <!-- in the future, which could complicate how this is done   -->\n        <!-- (perhaps a \"block-item\" call right here which recurses   -->\n        <!-- through an entire division? -->\n        <xsl:apply-templates select=\"*\" mode=\"toc-item-list\"/>\n    </division>\n</xsl:template>\n\n<!-- Recurse through un-interesting elements                -->\n<!-- NB: this could be unnecessary in context of note above -->\n<xsl:template match=\"*\" mode=\"toc-item-list\">\n    <xsl:apply-templates select=\"*\" mode=\"toc-item-list\"/>\n</xsl:template>\n\n<!-- Coordinate changes here with faux division, \"mainmatter\", above -->\n<xsl:template match=\"*\" mode=\"doc-manifest-division-attributes\">\n        <xsl:attribute name=\"type\">\n            <xsl:value-of select=\"local-name(.)\"/>\n        </xsl:attribute>\n        <xsl:attribute name=\"number\">\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:variable name=\"the-url\">\n            <xsl:apply-templates select=\".\" mode=\"url\"/>\n        </xsl:variable>\n        <xsl:attribute name=\"url\">\n            <xsl:value-of select=\"$the-url\"/>\n            <!-- add the HTML id as a fragment identifier when absent, -->\n            <!-- which is the case where the division is a chunk/page  -->\n            <xsl:if test=\"not(contains($the-url, '#'))\">\n                <xsl:text>#</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n            </xsl:if>\n        </xsl:attribute>\n        <title>\n            <xsl:apply-templates select=\".\" mode=\"title-short\"/>\n        </title>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Search -->\n<!-- ###### -->\n\n<!-- We build a collection of what Lunr calls \"search documents\" -->\n<!-- as a Javascript object stored in a file.  For Runestone, it -->\n<!-- needs to go in a different directory than the HTML files.   -->\n<xsl:variable name=\"lunr-search-file\">\n    <xsl:if test=\"$b-host-runestone\">\n        <xsl:text>_static/</xsl:text>\n    </xsl:if>\n    <xsl:text>lunr-pretext-search-index.js</xsl:text>\n</xsl:variable>\n\n<xsl:template name=\"search-page-construction\">\n    <!-- The a Javascript file with the Lunr search index (non-portable builds).  -->\n    <exsl:document href=\"{$lunr-search-file}\" method=\"text\" encoding=\"UTF-8\">\n        <xsl:call-template name=\"search-script-contents\"/>\n    </exsl:document>\n</xsl:template>\n\n<xsl:template name=\"embedded-search-construction\">\n    <!-- For portable html builds, we include the contents of what    -->\n    <!-- what would otherwise go in the lunr-search-file inside the   -->\n    <!-- HTML file itself, inside script tags (to be placed as the    -->\n    <!-- last script tag in the body).                                -->\n    <script>\n        <xsl:call-template name=\"search-script-contents\"/>\n    </script>\n</xsl:template>\n\n<xsl:template name=\"search-script-contents\">\n    <!-- The contents of either the lunr-search-page or the script  -->\n    <!-- embedded in HTML. This defines  the raw \"documents\"        -->\n    <!-- of the eventual index, and then converted by Lunr into     -->\n    <!-- a Javascript variable , ptx_lunr_idx.  This index variable -->\n    <!-- is included later in the search page via a script element, -->\n    <!-- for use/consumption by the Lunr search() method.           -->\n    <xsl:text>var ptx_lunr_search_style = \"</xsl:text>\n    <xsl:value-of select=\"$native-search-variant\"/>\n    <xsl:text>\";&#xa;</xsl:text>\n    <!-- the actual search documents in one HUGE variable, then a list -->\n    <xsl:variable name=\"json-docs\">\n        <xsl:apply-templates select=\"$document-root\" mode=\"search-page-docs\"/>\n    </xsl:variable>\n    <xsl:text>var ptx_lunr_docs = [&#xa;</xsl:text>\n    <!-- Strip a trailing comma, and a newline, to be proper JSON -->\n    <xsl:value-of select=\"substring($json-docs, 1, string-length($json-docs) - 2)\"/>\n    <!-- restore newline just stripped -->\n    <xsl:text>&#xa;]&#xa;</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- the Javascript function to make the index -->\n    <xsl:text>var ptx_lunr_idx = lunr(function () {&#xa;</xsl:text>\n    <xsl:text>  this.ref('id')&#xa;</xsl:text>\n    <xsl:text>  this.field('title')&#xa;</xsl:text>\n    <xsl:text>  this.field('body')&#xa;</xsl:text>\n    <xsl:text>  this.metadataWhitelist = ['position']&#xa;</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>  ptx_lunr_docs.forEach(function (doc) {&#xa;</xsl:text>\n    <xsl:text>    this.add(doc)&#xa;</xsl:text>\n    <xsl:text>  }, this)&#xa;</xsl:text>\n    <xsl:text>})&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- The modal template \"search-page-docs\" traverses the structural   -->\n<!-- elements (divisions), stopping when a division is a chunk of the -->\n<!-- HTML ouput (as configured by the publisher).  A search document  -->\n<!-- is created for the content of such HTML output page.  This is    -->\n<!-- one collection of possible search results, in correspondence     -->\n<!-- with the actual pages of the output, and displayed at level 1    -->\n<!-- (no indentation).  Each such page then gives rise to more        -->\n<!-- detailed results, which are primarily \"blocks\" of the page.      -->\n\n<xsl:template match=\"&STRUCTURAL;\" mode=\"search-page-docs\">\n    <xsl:variable name=\"chunk\">\n        <xsl:apply-templates select=\".\" mode=\"is-chunk\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$chunk = 'true'\">\n            <!-- stop and build a search document for the page,    -->\n            <!-- as a first-level indentation in the outline-style -->\n            <!-- of the search results                             -->\n            <xsl:apply-templates select=\".\" mode=\"search-document\">\n                <xsl:with-param name=\"level\" select=\"'1'\"/>\n            </xsl:apply-templates>\n            <!-- recursively cruise the *children* of the page for   -->\n            <!-- blocks that will be second-level indentation in the -->\n            <!-- outline-style of the search results                 -->\n            <!-- This is where we adjust our priorities on what      -->\n            <!-- becomes a search document, see descriptions of      -->\n            <!-- the modal templates for those priorities.           -->\n            <xsl:choose>\n                <xsl:when test=\"$native-search-variant = 'textbook'\">\n                    <xsl:apply-templates select=\"*\" mode=\"search-block-docs-textbook\"/>\n                </xsl:when>\n                <xsl:when test=\"$native-search-variant = 'reference'\">\n                    <xsl:apply-templates select=\"*\" mode=\"search-block-docs-reference\"/>\n                </xsl:when>\n                <xsl:otherwise/>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"&STRUCTURAL;\" mode=\"search-page-docs\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Textbook search -->\n<!-- The modal \"search-block-docs-textbook\" traverses all the elements      -->\n<!-- (of a page), starting with the children of the page's division,        -->\n<!-- stopping to create a search document for selected blocks. Generally    -->\n<!-- these are elements that admit/display titles. These are assigned       -->\n<!-- level 2, so they can be displayed with an indentation.  We do not      -->\n<!-- recurse into blocks.  So only \"first-class\" paragraphs are considered, -->\n<!-- and only if they have a definition (\"term\" element) within.            -->\n\n<xsl:template match=\"*\" mode=\"search-block-docs-textbook\">\n    <xsl:apply-templates select=\"*\" mode=\"search-block-docs-textbook\"/>\n</xsl:template>\n\n<!-- Note: could add &STRUCTURAL; here in order to make a    -->\n<!-- search-document for each SUBDIVISION on the page/chunk. -->\n<xsl:template match=\"&DEFINITION-LIKE;|&THEOREM-LIKE;|&PROOF-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&GOAL-LIKE;|&FIGURE-LIKE;|exercise|p[descendant::term]\" mode=\"search-block-docs-textbook\">\n    <!-- build a search document and dead-end -->\n    <xsl:apply-templates select=\".\" mode=\"search-document\">\n        <xsl:with-param name=\"level\" select=\"'2'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Reference search -->\n<!-- The modal \"search-block-docs-textbook\" traverses all the elements -->\n<!-- (of a page), starting with the children of the page's division,   -->\n<!-- stopping to create a search document for subdivisions, blocks,    -->\n<!-- and first-class paragraphs (plus block quotes and pre-formatted   -->\n<!-- paragraphs.  This relies more on division structure, and *all*    -->\n<!-- of the content.                                                   -->\n\n<xsl:template match=\"*\" mode=\"search-block-docs-reference\">\n    <xsl:apply-templates select=\"*\" mode=\"search-block-docs-reference\"/>\n</xsl:template>\n\n<xsl:template match=\"&STRUCTURAL;|&DEFINITION-LIKE;|&THEOREM-LIKE;|&PROOF-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&GOAL-LIKE;|&FIGURE-LIKE;|exercise|p|blockquote|pre\" mode=\"search-block-docs-reference\">\n    <!-- build a search document and dead-end -->\n    <xsl:apply-templates select=\".\" mode=\"search-document\">\n        <xsl:with-param name=\"level\" select=\"'2'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- For any node, be it a page or a block, a \"search document\"  -->\n<!-- data structure is created, the actual content is realized   -->\n<!-- by the \"search-node-text\" template, which is designed to be -->\n<!-- overridden in some situations.  The level comes in as a     -->\n<!-- parameter and is recorded in the data structure.            -->\n\n<xsl:template match=\"*\" mode=\"search-document\">\n    <xsl:param name=\"level\"/>\n\n    <!-- With \"textbook\" search, paragraphs using a \"term\" -->\n    <!-- to make a definition have some exceptions below.  -->\n    <xsl:variable name=\"b-is-definition-paragraph\"\n                  select=\"($native-search-variant = 'textbook') and self::p and descendant::term\"/>\n\n    <xsl:text>{&#xa;</xsl:text>\n    <!-- string to identify results with original docs -->\n    <xsl:text>  \"id\": \"</xsl:text>\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\",&#xa;</xsl:text>\n    <!-- level 2 indicates need for indentation -->\n    <xsl:text>  \"level\": \"</xsl:text>\n    <xsl:value-of select=\"$level\"/>\n    <xsl:text>\",&#xa;</xsl:text>\n    <!-- filename relative to search page -->\n    <xsl:text>  \"url\": \"</xsl:text>\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"url\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\",&#xa;</xsl:text>\n    <!-- the type of the division -->\n    <xsl:text>  \"type\": \"</xsl:text>\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:if test=\"$b-is-definition-paragraph\">\n        <xsl:text> (with a defined term)</xsl:text>\n    </xsl:if>\n    <xsl:text>\",&#xa;</xsl:text>\n    <!-- the number of the division -->\n    <xsl:text>  \"number\": \"</xsl:text>\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\",&#xa;</xsl:text>\n    <!-- title of division that is a page -->\n    <xsl:text>  \"title\": \"</xsl:text>\n    <!-- title might have HTML markup          -->\n    <!-- e.g. emphasis, span.process-math      -->\n    <!-- RTF -> node-set ->  serialized string -->\n    <xsl:variable name=\"title-html\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </xsl:variable>\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\"exsl:node-set($title-html)\" mode=\"xml-to-string\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\",&#xa;</xsl:text>\n    <!-- all text on the page, more or less, duplicates title -->\n    <xsl:text>  \"body\": \"</xsl:text>\n    <!-- Some elements need special treatment, for specific forms of   -->\n    <!-- search, when they *are* the search document, rather than when -->\n    <!-- they are *a part of* some other larger search document.  We   -->\n    <!-- intercept them here, most-specific first.                     -->\n    <xsl:choose>\n        <!-- \"textbook\" search treats first-class -->\n        <!-- paragraphs with a term specially     -->\n        <xsl:when test=\"$b-is-definition-paragraph\">\n            <xsl:apply-templates select=\".\" mode=\"search-term-paragraph-text\"/>\n        </xsl:when>\n        <!-- for most elements, just extract text -->\n        <!-- nodes with various adjustments       -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"search-node-text\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- text here, sanitized -->\n    <xsl:text>\"&#xa;</xsl:text>\n    <!-- NB: final comma AND newline are stripped above -->\n    <xsl:text>},&#xa;</xsl:text>\n</xsl:template>\n\n<!-- The \"search-node-text\" templates basically recurses into elements -->\n<!-- with no effect and duplicate the text() nodes, properly escaped   -->\n<!-- for use in a big old JSON data structure.  This is the place to   -->\n<!-- make adjustments by ignoring or modifying certain aspects of the  -->\n<!-- content of an element.                                            -->\n\n<xsl:template match=\"*\" mode=\"search-node-text\">\n    <xsl:apply-templates select=\"node()\" mode=\"search-node-text\"/>\n</xsl:template>\n\n<!-- \"Generators\" need content, LaTeX and TeX avoid goofy CSS -->\n<xsl:template match=\"pretext|webwork[not(node())]\" mode=\"search-node-text\">\n    <xsl:apply-templates select=\".\"/>\n    <xsl:text> </xsl:text>\n</xsl:template>\n<xsl:template match=\"latex\" mode=\"search-node-text\">\n    <xsl:text>latex </xsl:text>\n</xsl:template>\n<xsl:template match=\"tex\" mode=\"search-node-text\">\n    <xsl:text>tex </xsl:text>\n</xsl:template>\n<xsl:template match=\"copyright\" mode=\"search-node-text\">\n    <xsl:text>copyright </xsl:text>\n</xsl:template>\n<xsl:template match=\"copyleft\" mode=\"search-node-text\">\n    <xsl:text>copyleft </xsl:text>\n</xsl:template>\n\n<!-- tags need angle brackets -->\n<!-- Empty tag version needs JSON escaping, otherwise -->\n<!-- this shouldn't be necessary - but for tag abuse. -->\n<xsl:template match=\"tag|tage\" mode=\"search-node-text\">\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:text>&lt;</xsl:text>\n            <xsl:value-of select=\"text()\"/>\n            <xsl:if test=\"self::tage\">\n                <xsl:text>/</xsl:text>\n            </xsl:if>\n            <xsl:text>&gt; </xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- First-class paragraphs (children of divisions or \"paragraphs\",    -->\n<!-- and not in blocks) containing \"term\" are considered differently   -->\n<!-- in a textbook search.  Without a \"term\" they are ignored, while   -->\n<!-- with \"term\" the search document is just the content of the terms. -->\n<xsl:template match=\"p[descendant::term]\" mode=\"search-term-paragraph-text\">\n    <xsl:apply-templates select=\".//term\" mode=\"search-node-text\"/>\n</xsl:template>\n\n<!-- Lots of stuff can make very misleading search documents. -->\n<!-- Examples have included: \"\\subset\" in math and \"limits\"   -->\n<!-- in a WW problem to specify a domain.  So we kill stuff.  -->\n\n<xsl:template match=\"m|md[mrow]\" mode=\"search-node-text\"/>\n<xsl:template match=\"latex-image|asymptote|sageplot\" mode=\"search-node-text\"/>\n<xsl:template match=\"sage\" mode=\"search-node-text\"/>\n<!-- \"slate\" in an \"interactive\" can have JS code, GeoGebra too, etc -->\n<xsl:template match=\"interactive\" mode=\"search-node-text\"/>\n\n<!-- WeBWorK exercises, as output of the pre-processor, include    -->\n<!-- a \"webwork-reps\" element with three elements:                 -->\n<!--                                                               -->\n<!--   \"static\": meant for LaTeX, but we *will* index this version -->\n<!--   \"server-data\": base64 versions, empty element with just     -->\n<!--                  attributes, so harmless for search           -->\n<!--   \"pg\": native WW version (for problem archives), which will  -->\n<!--         be misleading                                         -->\n<!--                                                               -->\n<!-- NB: ideally the \"pg\" version will not make it here after some -->\n<!-- pre-processor work.  Parsing \"static\" in the pre-processor    -->\n<!-- and labeling the result with a \"pi:\" prefix would make sense. -->\n<xsl:template match=\"pg\" mode=\"search-node-text\"/>\n\n<!--\nTODO:\n  hints, answers, solutions (only if elected by publisher in text)\n-->\n\n<xsl:template match=\"text()\" mode=\"search-node-text\">\n    <xsl:choose>\n        <!-- collapse authored whitespace, and structural whitespace -->\n        <!-- that is being preserved with whitespace declarations    -->\n        <!-- Replaced by universal addition at end of the template.  -->\n        <!-- Reduces file size by 40%. (sample article)              -->\n        <xsl:when test=\"normalize-space() = ''\"/>\n        <xsl:otherwise>\n            <xsl:call-template name=\"escape-json-string\">\n                <!-- normalize-space adds another 2% reduction -->\n                <xsl:with-param name=\"text\" select=\"normalize-space(.)\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- a space seems necessary to separate some text() nodes, -->\n    <!-- like consecutive (simple) list items.  Presumably it   -->\n    <!-- can't hurt to have too many?                           -->\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n\n<!-- Feedback Button goes in page-footer                -->\n<!-- Values of variables set in publisher-variables.xsl -->\n<!-- Context influences default button text language    -->\n<xsl:template match=\"*\" mode=\"feedback-button\">\n    <xsl:if test=\"$b-has-feedback-button\">\n        <a class=\"feedback-link\" href=\"{$feedback-button-href}\" target=\"_blank\">\n            <xsl:choose>\n                <xsl:when test=\"not($feedback-button-text = '')\">\n                    <xsl:value-of select=\"$feedback-button-text\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'feedback'\"/>\n                    </xsl:apply-templates>\n                </xsl:otherwise>\n            </xsl:choose>\n        </a>\n    </xsl:if>\n</xsl:template>\n\n<!-- Branding in page-footer, mostly hard-coded     -->\n<!-- HTTPS for authors delivering from secure sites -->\n<xsl:template name=\"pretext-link\">\n    <a class=\"pretext-link\" href=\"https://pretextbook.org\" title=\"PreTeXt\">\n        <div class=\"logo\">\n            <!-- explicitly only have a height here to prevent rendering issue in Safari -->\n            <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"100%\" viewBox=\"338 3000 8772 6866\" role=\"img\">\n            <!-- Use @role=\"img\" and <title> elements for accessibility -->\n                <title>PreTeXt logo</title>\n                <g style=\"stroke-width:.025in; stroke:currentColor; fill:none\">\n                    <polyline points=\"472,3590 472,9732 \" style=\"stroke-width:174; stroke-linejoin:miter; stroke-linecap:round; \"/>\n                    <path style=\"stroke-width:126;stroke-linecap:butt;\"  d=\"M 4724,9448 A 4660 4660  0  0  1  8598  9259\"/>\n                    <path style=\"stroke-width:174;stroke-linecap:butt;\"  d=\"M 4488,9685 A 4228 4228  0  0  0   472  9732\"/>\n                    <path style=\"stroke-width:126;stroke-linecap:butt;\"  d=\"M 4724,3590 A 4241 4241  0  0  1  8598  3496\"/>\n                    <path style=\"stroke-width:126;stroke-linecap:round;\" d=\"M 850,3496  A 4241 4241  0  0  1  4724  3590\"/>\n                    <path style=\"stroke-width:126;stroke-linecap:round;\" d=\"M 850,9259  A 4507 4507  0  0  1  4724  9448\"/>\n                    <polyline points=\"5385,4299 4062,8125\"           style=\"stroke-width:300; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <polyline points=\"8598,3496 8598,9259\"           style=\"stroke-width:126; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <polyline points=\"850,3496 850,9259\"             style=\"stroke-width:126; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <polyline points=\"4960,9685 4488,9685\"           style=\"stroke-width:174; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <polyline points=\"3070,4582 1889,6141 3070,7700\" style=\"stroke-width:300; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <polyline points=\"6418,4582 7600,6141 6418,7700\" style=\"stroke-width:300; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <polyline points=\"8976,3590 8976,9732\"           style=\"stroke-width:174; stroke-linejoin:miter; stroke-linecap:round;\"/>\n                    <path style=\"stroke-width:174;stroke-linecap:butt;\" d=\"M 4960,9685 A 4228 4228  0  0  1  8976  9732\"/>\n                </g>\n            </svg>\n        </div>\n    </a>\n</xsl:template>\n\n<xsl:template name=\"runestone-link\">\n    <a class=\"runestone-link\" href=\"https://runestone.academy\" title=\"Runestone Academy\">\n        <img class=\"logo\" src=\"https://runestone.academy/runestone/static/images/RAIcon_cropped.png\" alt=\"Runstone Academy logo\"/>\n    </a>\n</xsl:template>\n\n<xsl:template name=\"mathjax-link\">\n    <a class=\"mathjax-link\" href=\"https://www.mathjax.org\" title=\"MathJax\">\n        <img class=\"logo\" src=\"https://www.mathjax.org/badge/badge-square-2.png\" alt=\"MathJax logo\"/>\n    </a>\n</xsl:template>\n\n<!-- Runestone build only, revenue generator -->\n<xsl:template name=\"runestone-ethical-ads\">\n    <xsl:if test=\"$b-host-runestone\">\n        <xsl:text>{% if show_ethical_ad %}</xsl:text>\n        <div style=\"width: 100%\">\n            <div data-ea-publisher=\"runestoneacademy\" data-ea-type=\"image\" style=\"display: flex; justify-content: center\"/>\n        </div>\n        <xsl:text>{% endif %}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Tooltip Text -->\n<!-- Text for an HTML \"title\" attribute      -->\n<!-- Always leverage the PreTeXt title, e.g. -->\n<!-- don't use \"caption\", it could be BIG    -->\n<xsl:template match=\"*\" mode=\"tooltip-text\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    <xsl:variable name=\"num\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:if test=\"not($num = '')\">\n        <xsl:text> </xsl:text>\n        <xsl:value-of select=\"$num\" />\n    </xsl:if>\n    <xsl:if test=\"title\">\n        <xsl:text>: </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-plain\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- MathJax header                                             -->\n<!-- XML manages equation numbers                               -->\n<!-- Config MathJax to make anchor names on equations           -->\n<!--   these are just the contents of the \\label on an equation -->\n<!--   which we provide as the xml:id of the equation           -->\n<!-- Note: we could set \\label with something different         -->\n<!-- extpfeil.js provides extensible arrows: \\xmapsto, \\xtofrom -->\n<!--   \\xtwoheadrightarrow, \\xtwoheadleftarrow, \\xlongequal     -->\n<!--   equivalent to the LaTeX package of the same name         -->\n<!-- Autobold extension is critical for captions (bold'ed) that -->\n<!-- have mathematics in them (suggested by P. Krautzberger)    -->\n<xsl:template name=\"mathjax\">\n    <!-- MathJax 4 configuration via JavaScript module -->\n    <script type=\"module\">\n        <xsl:text>import { startMathJax } from './</xsl:text>\n        <xsl:value-of select=\"$html.js.dir\"/>\n        <xsl:text>/mathjax_startup.js';&#xa;</xsl:text>\n        <xsl:text>startMathJax({&#xa;</xsl:text>\n            <xsl:text>hasWebworkReps: </xsl:text><xsl:value-of select=\"$b-has-webwork-reps\"/><xsl:text>,&#xa;</xsl:text>\n            <xsl:text>hasSage: </xsl:text><xsl:value-of select=\"$b-has-sage\"/><xsl:text>,&#xa;</xsl:text>\n            <xsl:text>isReact: </xsl:text><xsl:value-of select=\"$b-debug-react\"/><xsl:text>,&#xa;</xsl:text>\n            <xsl:text>htmlPresentation: </xsl:text><xsl:value-of select=\"$b-html-presentation\"/><xsl:text>,&#xa;</xsl:text>\n        <xsl:text>});&#xa;</xsl:text>\n    </script>\n    <!-- MathJax 4 CDN -->\n    <script defer=\"true\">\n        <xsl:attribute name=\"src\">\n            <xsl:text>https://cdn.jsdelivr.net/npm/mathjax@4/</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$debug.mathjax.svg = 'yes'\">\n                    <xsl:text>tex-svg.js</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>tex-mml-chtml.js</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n    </script>\n</xsl:template>\n\n<!-- SageCell Javascript-->\n<!-- We never know if a Sage cell might be inside a knowl, -->\n<!-- so we load the relevant JavaScript onto every page if -->\n<!-- a cell occurs *anywhere* in the entire document       -->\n<xsl:template name=\"sagecell-code\">\n    <xsl:if test=\"$b-has-sage\">\n        <script src=\"https://sagecell.sagemath.org/static/embedded_sagecell.js\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Sage Cell Setup -->\n<!-- TODO: internationalize button labels, strings below -->\n<!-- TODO: make an initialization cell which links with the sage-compute cells -->\n\n<!-- A template for a generic makeSageCell script element -->\n<!-- Parameters: language, evaluate-button text -->\n<xsl:template name=\"makesagecell\">\n    <xsl:param name=\"language-attribute\" />\n    <xsl:param name=\"b-autoeval\" select=\"false()\"/>\n    <xsl:param name=\"language-text\" />\n\n    <xsl:element name=\"script\">\n        <xsl:text>// Make *any* div with class '</xsl:text>\n        <xsl:call-template name=\"sagecell-class-name\">\n            <xsl:with-param name=\"language-attribute\" select=\"$language-attribute\"/>\n            <xsl:with-param name=\"b-autoeval\" select=\"$b-autoeval\"/>\n        </xsl:call-template>\n        <xsl:text>' an executable Sage cell&#xa;</xsl:text>\n        <xsl:text>// Their results will be linked, only within language type&#xa;</xsl:text>\n        <xsl:text>sagecell.makeSagecell(</xsl:text>\n        <xsl:call-template name=\"json\">\n            <xsl:with-param name=\"content\">\n                <map xmlns=\"http://www.w3.org/2005/xpath-functions\">\n                    <string key=\"inputLocation\">\n                        <xsl:text>div.</xsl:text>\n                        <xsl:call-template name=\"sagecell-class-name\">\n                            <xsl:with-param name=\"language-attribute\" select=\"$language-attribute\"/>\n                            <xsl:with-param name=\"b-autoeval\" select=\"$b-autoeval\"/>\n                        </xsl:call-template>\n                    </string>\n                    <boolean key=\"linked\">true</boolean>\n                    <string key=\"linkKey\">\n                        <xsl:text>linked-</xsl:text>\n                        <xsl:value-of select=\"$language-attribute\" />\n                    </string>\n                    <boolean key=\"autoeval\">\n                        <xsl:value-of select=\"$b-autoeval\"/>\n                    </boolean>\n                    <array key=\"languages\">\n                        <string>\n                            <xsl:value-of select=\"$language-attribute\" />\n                        </string>\n                    </array>\n                    <string key=\"evalButtonText\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'evaluate'\"/>\n                        </xsl:apply-templates>\n                        <xsl:text> (</xsl:text>\n                        <xsl:value-of select=\"$language-text\" />\n                        <xsl:text>)</xsl:text>\n                    </string>\n                    <xsl:if test=\"$b-autoeval\">\n                        <array key=\"hide\">\n                            <string>evalButton</string>\n                        </array>\n                    </xsl:if>\n                </map>\n            </xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>);&#xa;</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- template for a \"display only\" version -->\n<xsl:template name=\"sagecell-display\">\n    <xsl:element name=\"script\">\n        <xsl:text>// Make *any* div with class 'sage-display' a visible, uneditable Sage cell&#xa;</xsl:text>\n        <xsl:text>sagecell.makeSagecell(</xsl:text>\n        <xsl:call-template name=\"json\">\n            <xsl:with-param name=\"content\">\n                <map xmlns=\"http://www.w3.org/2005/xpath-functions\">\n                    <string key=\"inputLocation\">div.sage-display</string>\n                    <string key=\"editor\">codemirror-readonly</string>\n                    <array key=\"hide\">\n                        <string>evalButton</string>\n                        <string>editorToggle</string>\n                        <string>language</string>\n                    </array>\n                </map>\n            </xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>);&#xa;</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- All languages, linked only to similar   -->\n<!-- Generic button, drop-down for languages -->\n<xsl:template name=\"sagecell-practice\">\n    <xsl:element name=\"script\">\n        <xsl:text>// Make *any* div with class 'sagecell-practice' an executable Sage cell&#xa;</xsl:text>\n        <xsl:text>// Their results will be linked, only within language type&#xa;</xsl:text>\n        <xsl:text>sagecell.makeSagecell(</xsl:text>\n        <xsl:call-template name=\"json\">\n            <xsl:with-param name=\"content\">\n                <map xmlns=\"http://www.w3.org/2005/xpath-functions\">\n                    <string key=\"inputLocation\">div.sagecell-practice</string>\n                    <boolean key=\"linked\">true</boolean>\n                    <string key=\"evalButtonText\">\n                        <xsl:apply-templates select=\".\" mode=\"type-name\">\n                            <xsl:with-param name=\"string-id\" select=\"'evaluate'\"/>\n                        </xsl:apply-templates>\n                    </string>\n                    <!-- drop-down allows practice with all possible languages -->\n                    <raw key=\"languages\">sagecell.allLanguages</raw>\n                </map>\n            </xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>);&#xa;</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n\n<!-- Make Sage Cell Server headers on a per-language basis -->\n<!-- Examine the subtree of the page, which can still be   -->\n<!-- excessive for summary pages, so room for improvement  -->\n<!-- Note: this template employs the context given in a    -->\n<!-- \"select\" attribute so that only the Javascript        -->\n<!-- necessary for a page is invoked.  Further,            -->\n<!-- cross-reference knowls also have these bits of set-up -->\n<!-- javascript, but only for what the knowl content needs.-->\n<xsl:template match=\"*\" mode=\"sagecell\">\n    <!-- only check for all the special types if there is actually a sage element -->\n    <xsl:if test=\"$b-has-sage\">\n        <!-- special types -->\n        <xsl:if test=\".//sage[@type='display']\">\n            <xsl:call-template name=\"sagecell-display\" />\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@type='practice']\">\n            <xsl:call-template name=\"sagecell-practice\" />\n        </xsl:if>\n\n        <!-- 2016-06-13: sage, gap, gp, html, maxima, octave, python, r, and singular -->\n        <!-- 2024-02-07: add macaulay2                                                -->\n\n        <xsl:if test=\".//sage[not(@type) and (not(@language) or @language='sage') and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>sage</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">Sage</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[not(@type) and (not(@language) or @language='sage') and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>sage</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">Sage</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='gap' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>gap</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">GAP</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='gap' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>gap</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">GAP</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='gp' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>gp</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">GP</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='gp' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>gp</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">GP</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='html' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>html</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">HTML</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='html' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>html</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">HTML</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='macaulay2' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>macaulay2</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">Macaulay2</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='macaulay2' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>macaulay2</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">Macaulay2</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='maxima' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>maxima</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">Maxima</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='maxima' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>maxima</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">Maxima</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='octave' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>octave</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">Octave</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='octave' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>octave</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">Octave</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='python' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>python</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">Python</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='python' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>python</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">Python</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='r' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>r</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">R</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='r' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>r</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">R</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='singular' and not(@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>singular</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"false()\"/>\n                <xsl:with-param name=\"language-text\">Singular</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n\n        <xsl:if test=\".//sage[@language='singular' and (@auto-evaluate = 'yes')]\">\n            <xsl:call-template name=\"makesagecell\">\n                <xsl:with-param name=\"language-attribute\">\n                    <xsl:text>singular</xsl:text>\n                </xsl:with-param>\n                <xsl:with-param name=\"b-autoeval\" select=\"true()\"/>\n                <xsl:with-param name=\"language-text\">Singular</xsl:with-param>\n            </xsl:call-template>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Program Listings highlighted by Prism -->\n<xsl:template name=\"syntax-highlight\">\n    <xsl:if test=\"$b-has-program and not($b-debug-react)\">\n        <script src=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/components/prism-core.min.js\"></script>\n        <script src=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/autoloader/prism-autoloader.min.js\"></script>\n        <script src=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/line-numbers/prism-line-numbers.min.js\" integrity=\"sha512-dubtf8xMHSQlExGRQ5R7toxHLgSDZ0K7AunqPWHXmJQ8XyVIG19S1T95gBxlAeGOK02P4Da2RTnQz0Za0H0ebQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script>\n        <script src=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/line-highlight/prism-line-highlight.min.js\" integrity=\"sha512-93uCmm0q+qO5Lb1huDqr7tywS8A2TFA+1/WHvyiWaK6/pvsFl6USnILagntBx8JnVbQH5s3n0vQZY6xNthNfKA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"></script>\n        <xsl:if test=\"$b-html-theme-legacy or $b-reveal-build\" >\n            <!-- Legacy themes rely on external css for prism, but newer ones have it built in -->\n            <link href=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/themes/prism.css\" rel=\"stylesheet\"/>\n            <!-- We could conditionally load the following based on line number -->\n            <!-- requests, but have chosen not to enact that efficiency         -->\n            <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/line-numbers/prism-line-numbers.min.css\" integrity=\"sha512-cbQXwDFK7lj2Fqfkuxbo5iD1dSbLlJGXGpfTDqbggqjHJeyzx88I3rfwjS38WJag/ihH7lzuGlGHpDBymLirZQ==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />\n            <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/prism/1.26.0/plugins/line-highlight/prism-line-highlight.min.css\" integrity=\"sha512-nXlJLUeqPMp1Q3+Bd8Qds8tXeRVQscMscwysJm821C++9w6WtsFbJjPenZ8cQVMXyqSAismveQJc0C1splFDCA==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\" />\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<!-- JS setup for a Google Custom Search Engine box -->\n<!-- Empty if not enabled via presence of cx number -->\n<xsl:template name=\"google-search-box-js\">\n    <xsl:if test=\"$b-google-cse and not($b-debug-react)\">\n        <script async=\"\">\n            <xsl:attribute name=\"src\">\n                <xsl:text>https://cse.google.com/cse.js?cx=</xsl:text>\n                <xsl:value-of select=\"$google-search-cx\"/>\n            </xsl:attribute>\n        </script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Div for Google Search -->\n<!-- https://developers.google.com/custom-search/docs/element -->\n<!-- Empty if not enabled via presence of cx number           -->\n<xsl:template name=\"google-search-box\">\n    <xsl:if test=\"$b-google-cse\">\n        <!-- ARIA: \"search\" role for Google Search div/wrapper -->\n        <div class=\"searchwrapper\" role=\"search\">\n            <div class=\"gcse-search\" />\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- JS for native search -->\n<!-- The async attribute may help with slow downloads,  -->\n<!-- especially the project-specific search-file which  -->\n<!-- can be as large as several megabytes.              -->\n<!-- NB: async attribute also on Lunr and PTX-JS        -->\n<!-- resulted in console errors (2022-02-08)            -->\n<xsl:template name=\"native-search-box-js\">\n    <xsl:if test=\"$has-native-search and not($b-debug-react)\">\n        <script src=\"https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min.js\" integrity=\"sha512-4xUl/d6D6THrAnXAwGajXkoWaeMNwEKK4iNfq5DotEbLPAfk6FSxSP3ydNxqDgCw1c/0Z1Jg6L8h2j+++9BZmg==\" crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"/>\n        <!-- document-specific variables with search documents -->\n        <script src=\"{$lunr-search-file}\" async=\"\"/>\n        <!-- PreTeXt Javascript and CSS to form and render results of a search -->\n        <script src=\"{$html.js.dir}/pretext_search.js\"/>\n        <!-- CSS for search is bundled into theme.css -->\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Div for native search -->\n<xsl:template name=\"native-search-box\">\n    <xsl:if test=\"$has-native-search\">\n        <div class=\"searchbox\">\n            <div class=\"searchwidget\">\n                <button id=\"searchbutton\" class=\"searchbutton button\" type=\"button\" title=\"Search book\">\n                    <xsl:call-template name=\"insert-symbol\">\n                        <xsl:with-param name=\"name\" select=\"'search'\"/>\n                    </xsl:call-template>\n                    <span class=\"name\">Search Book</span>\n                </button>\n            </div>\n            <xsl:call-template name=\"native-search-results\"/>\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- Div for native search results -->\n<xsl:template name=\"native-search-results\">\n    <xsl:if test=\"$has-native-search\">\n        <div id=\"searchresultsplaceholder\" class=\"searchresultsplaceholder\" style=\"display: none\">\n            <div class=\"search-results-controls\">\n                <input aria-label=\"Search term\" id=\"ptxsearch\" class=\"ptxsearch\" type=\"text\" name=\"terms\" placeholder=\"Search term\"/>\n                <button title=\"Close search\" id=\"closesearchresults\" class=\"closesearchresults\"><span class=\"material-symbols-outlined\">close</span></button>\n            </div>\n            <h2 class=\"search-results-heading\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'search-results-heading'\"/>\n                </xsl:apply-templates>\n                <xsl:text>: </xsl:text>\n            </h2>\n            <!-- div#searchempty is not visible when there are results -->\n            <div id=\"searchempty\" class=\"searchempty\">\n                <span>\n                    <xsl:apply-templates select=\".\" mode=\"type-name\">\n                        <xsl:with-param name=\"string-id\" select=\"'no-search-results'\"/>\n                    </xsl:apply-templates>\n                    <xsl:text>.</xsl:text>\n                </span>\n            </div>\n            <ol id=\"searchresults\" class=\"searchresults\">\n            </ol>\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- Knowl header -->\n<xsl:template match=\"*\" mode=\"knowl\">\n    <xsl:if test=\"not($b-debug-react)\">\n        <script src=\"{$html.js.dir}/knowl.js\"></script>\n        <!-- Variables are defined to defaults in knowl.js and  -->\n        <!-- we can override them with new values here          -->\n        <xsl:comment>knowl.js code controls Sage Cells within knowls</xsl:comment>\n        <script>\n            <!-- button text, internationalized -->\n            <xsl:text>sagecellEvalName='</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'evaluate'\"/>\n            </xsl:apply-templates>\n            <xsl:text> (</xsl:text>\n            <!-- $language-text hard-coded since language  -->\n            <!-- support within knowls is not yet settled -->\n            <xsl:text>Sage</xsl:text>\n            <xsl:text>)</xsl:text>\n            <xsl:text>';&#xa;</xsl:text>\n        </script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Header information for favicon -->\n<!-- Presently: needs two image files placeed in  HTML output     -->\n<!-- Publisher file could be extended to allow for other schemes. -->\n<!--      See: https://realfavicongenerator.net/faq               -->\n<!-- for one such option and ideas for others.                    -->\n<xsl:template name=\"favicon\">\n    <!-- $docinfo/html/favicon indicator is legacy code.  We do -->\n    <!-- not rewrite the publisher file as part of the assembly -->\n    <!-- (pre-processor) phase, so we leave this in.  Removal   -->\n    <!-- will require a sterner deprecation message that the    -->\n    <!-- current, gentle, reminder.                             -->\n    <xsl:if test=\"($favicon-scheme = 'simple') or $docinfo/html/favicon\">\n        <!-- Expects publisher to provide both -->\n        <!--     favicon/favicon-32x32.png     -->\n        <!--     favicon/favicon-16x16.png     -->\n        <!-- in the external images directory  -->\n        <xsl:variable name=\"res32\">\n            <!-- empty when not using managed directories -->\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:text>favicon/favicon-32x32.png</xsl:text>\n        </xsl:variable>\n        <xsl:variable name=\"res16\">\n            <!-- empty when not using managed directories -->\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:text>favicon/favicon-16x16.png</xsl:text>\n        </xsl:variable>\n        <link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"{$res32}\"/>\n        <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"{$res16}\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- SCORM tracking script -->\n<!-- Emits a <script> tag that loads ptx-scorm-events.js only when the   -->\n<!-- build target has html.scorm = 'yes' (i.e. compression=\"scorm\").     -->\n<!-- ptx-scorm-events.js hooks into RunestoneBase.prototype.logBookEvent -->\n<!-- to capture exercise submissions and report them to the LMS via the  -->\n<!-- SCORM 1.2 / SCORM 2004 JavaScript API.                              -->\n<xsl:template name=\"scorm-js\">\n    <xsl:if test=\"$b-build-scorm-manifest\">\n        <script src=\"{$html.js.dir}/ptx-scorm-events.js\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- PreTeXt Javascript header -->\n<xsl:template name=\"pretext-js\">\n    <xsl:choose>\n        <xsl:when test=\"not($b-debug-react)\">\n            <!-- condition first on toc present? -->\n            <script src=\"{$html.js.dir}/jquery.min.js\"></script>\n            <script src=\"{$html.js.dir}/pretext.js\"></script>\n            <script src=\"{$html.js.dir}/pretext_add_on.js?x=1\"></script>\n        </xsl:when>\n        <xsl:when test=\"$b-debug-react-local\">\n            <script type=\"module\" defer=\"\" src=\"./static/js/main.js\"></script>\n            <link href=\"./static/css/main.css\" rel=\"stylesheet\"/>\n        </xsl:when>\n        <!-- provisional implementation -->\n        <xsl:when test=\"$b-debug-react-global\">\n            <xsl:variable name=\"prefix\" select=\"'https://siefkenj.github.io/pretext-react'\"/>\n            <script type=\"module\" defer=\"\" src=\"{$prefix}/static/js/main.js\"></script>\n            <link href=\"{$prefix}/static/css/main.css\" rel=\"stylesheet\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Font header -->\n<!-- Google Fonts -->\n<!-- Text: Open Sans by default (was: Istok Web font, regular and italic (400), bold (700)) -->\n<!-- Code: Inconsolata, regular (400), bold (700) (was: Source Code Pro regular (400))      -->\n<!-- (SourceCodePro being removed) -->\n<xsl:template name=\"fonts\">\n    <link rel=\"preconnect\" href=\"https://fonts.googleapis.com\"/>\n    <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin=\"\"/>\n    <!-- Material Symbols font used for symbols -->\n    <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0\" />\n    <!-- Legacy themes need these fonts, modern ones load them on their own -->\n    <xsl:if test=\"$b-html-theme-legacy\">\n            <!-- DejaVu Serif from an alternate CDN -->\n            <link href=\"https://fonts.cdnfonts.com/css/dejavu-serif\" rel=\"stylesheet\"/>\n            <!-- A variable font from Google, with serifs -->\n            <link href=\"https://fonts.googleapis.com/css2?family=PT+Serif:ital,wght@0,400;0,700;1,400;1,700&amp;display=swap\" rel=\"stylesheet\"></link>\n            <!-- A variable font from Google, sans serif -->\n            <link href=\"https://fonts.googleapis.com/css2?family=Open+Sans:wdth,wght@75..100,300..800&amp;display=swap\" rel=\"stylesheet\"/>\n            <!-- NB: not loading (binary) italic axis for variable fonts, tests seem to indicate this is OK -->\n            <link href=\"https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&amp;\" rel=\"stylesheet\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Hypothes.is Annotations -->\n<!-- Configurations are the defaults as of 2016-11-04   -->\n<!-- async=\"\" is a guessed-hack, docs have no attribute -->\n<xsl:template name=\"hypothesis-annotation\">\n    <xsl:if test=\"$b-activate-hypothesis\">\n        <script type=\"application/json\" class=\"js-hypothesis-config\">\n        <xsl:text>{&#xa;</xsl:text>\n        <xsl:text>    \"openSidebar\": false,</xsl:text>\n        <xsl:text>    \"showHighlights\": true,</xsl:text>\n        <xsl:text>}</xsl:text>\n        </script>\n        <script src=\"https://hypothes.is/embed.js\" async=\"\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- GeoGebra -->\n<!-- The JS necessary to load the \"App\" for a generic calculator -->\n<xsl:template name=\"geogebra\">\n    <xsl:if test=\"$b-has-calculator and contains($html-calculator,'geogebra')\">\n        <script src=\"https://cdn.geogebra.org/apps/deployggb.js\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- JSXGraph -->\n<xsl:template name=\"jsxgraph\">\n    <xsl:if test=\"$b-has-jsxgraph\">\n        <link rel=\"stylesheet\" type=\"text/css\" href=\"https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraph.css\" />\n        <script src=\"https://cdnjs.cloudflare.com/ajax/libs/jsxgraph/0.99.6/jsxgraphcore.js\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Mermaid header libraries -->\n<xsl:template name=\"mermaid-header\">\n    <xsl:if test=\"$b-has-mermaid\">\n        <script type=\"module\">\n            import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';\n            import elkLayouts from 'https://cdn.jsdelivr.net/npm/@mermaid-js/layout-elk/dist/mermaid-layout-elk.esm.min.mjs';\n            mermaid.registerLayoutLoaders(elkLayouts);\n            let theme = '<xsl:value-of select=\"$mermaid-theme\"/>';\n            let layout = '<xsl:value-of select=\"$mermaid-layout-engine\"/>';\n            if (isDarkMode())\n                theme = 'dark';\n            mermaid.initialize({\n                securityLevel: 'loose',\n                theme: theme,\n                layout: layout,\n            });\n        </script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Diagcess header library -->\n<xsl:template name=\"diagcess-header\">\n    <xsl:if test=\"$b-has-prefigure-annotations\">\n        <script src=\"{$html.js.dir}/diagcess/diagcess.js\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- Diagcess footer initialization -->\n<xsl:template name=\"diagcess-footer\">\n    <xsl:if test=\"$b-has-prefigure-annotations\">\n        <script>diagcess.Base.init()</script>\n    </xsl:if>\n</xsl:template>\n\n<!-- CSS header -->\n<xsl:template name=\"css-common\">\n    <!-- Temporary until css handling overhaul by ascholer complete -->\n    <xsl:if test=\"$b-needs-custom-marker-css\">\n        <link href=\"{$html.css.dir}/ol-markers.css\" rel=\"stylesheet\" type=\"text/css\"/>\n    </xsl:if>\n    <!-- If extra CSS is specified, then unpack multiple CSS files -->\n    <xsl:if test=\"not($html.css.extra = '')\">\n        <xsl:variable name=\"csses\" select=\"str:tokenize($html.css.extra, ', ')\"/>\n        <!-- $scripts is a collection of \"token\" and does not have -->\n        <!-- a root, which implies the form of the \"for-each\"      -->\n        <xsl:for-each select=\"$csses\">\n            <link rel=\"stylesheet\" type=\"text/css\">\n                <xsl:attribute name=\"href\">\n                    <xsl:value-of select=\".\" />\n                </xsl:attribute>\n            </link>\n        </xsl:for-each>\n    </xsl:if>\n    <!-- For testing purposes a developer can set the stringparam -->\n    <!-- \"debug.developer.css\" to the value \"yes\" and provide a   -->\n    <!-- CSS file to be loaded last.                              -->\n    <xsl:if test=\"$debug.developer.css = 'yes'\">\n        <xsl:comment> This HTML version has been built with elective CSS strictly </xsl:comment>\n        <xsl:comment> for testing purposes, and the developer who chose to use it </xsl:comment>\n        <xsl:comment> must supply it.                                             </xsl:comment>\n        <link href=\"developer.css\" rel=\"stylesheet\" type=\"text/css\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"css\">\n    <xsl:if test=\"not($b-debug-react)\">\n        <link href=\"{$html.css.dir}/{$html-css-theme-file}\" rel=\"stylesheet\" type=\"text/css\"/>\n    </xsl:if>\n    <xsl:call-template name=\"css-common\"/>\n</xsl:template>\n\n<!-- Inject classes into the root div of a book. Only for used for   -->\n<!-- legacy styles - handles old css@colors and dark-mode disabling  -->\n<xsl:template name=\"html-theme-attributes\">\n    <!-- check for use of old css color sheets -->\n    <xsl:if test=\"$b-html-theme-legacy\">\n        <xsl:attribute name=\"data-legacy-colorscheme\">\n            <xsl:choose>\n                <xsl:when test=\"not($debug.colors = '')\">\n                    <xsl:value-of select=\"$debug.colors\"/>\n                </xsl:when>\n                <xsl:when test=\"not($html.css.colors = '')\">\n                    <xsl:value-of select=\"$html.css.colors\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>default</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($b-theme-has-darkmode)\">\n        <xsl:attribute name=\"data-darkmode\">\n            <xsl:text>disabled</xsl:text>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<!-- Treated as characters, these could show up often, -->\n<!-- so load into every possible HTML page instance    -->\n<xsl:template name=\"font-awesome\">\n    <xsl:if test=\"$b-has-icon\">\n        <!-- CDNJS is an alternative for obtaining this CSS -->\n        <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.15.4/css/all.css\" crossorigin=\"anonymous\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- A place to put *one* Javascript file at the *end* of an  -->\n<!-- HTML page/file.  Not present in *every* page implemented -->\n<!-- in this file, such as knowls.                            -->\n<xsl:template name=\"extra-js-footer\">\n    <xsl:if test=\"not($html.js.extra = '')\">\n        <script src=\"{$html.js.extra}\"></script>\n    </xsl:if>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Language Direction -->\n<!-- ################## -->\n\n<!-- Note: perhaps this should begin in a localization file, -->\n<!-- and come through as a key; but perhaps this template    -->\n<!-- can stay as is.                                         -->\n<xsl:template name=\"language-attributes\">\n    <xsl:attribute name=\"lang\">\n        <xsl:value-of select=\"$document-language\"/>\n    </xsl:attribute>\n    <xsl:attribute name=\"dir\">\n        <xsl:value-of select=\"$document-language-direction\"/>\n    </xsl:attribute>\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- LaTeX Preamble -->\n<!-- ############## -->\n\n<!-- First a variable to massage the author-supplied -->\n<!-- package list to the form MathJax expects        -->\n<xsl:variable name=\"latex-packages-mathjax\">\n    <xsl:for-each select=\"$docinfo/math-package\">\n        <!-- must be specified, but can be empty/null -->\n        <xsl:if test=\"not(normalize-space(@mathjax-name)) = ''\">\n            <xsl:text>\\require{</xsl:text>\n            <xsl:value-of select=\"@mathjax-name\"/>\n            <xsl:apply-templates/>\n            <xsl:text>}</xsl:text>\n            <!-- all on one line, not very readable, but historical -->\n        </xsl:if>\n    </xsl:for-each>\n</xsl:variable>\n\n<!-- MathJax expects math wrapping, and we place in   -->\n<!-- a hidden div so not visible and take up no space -->\n<!-- Inline CSS added because a \"flash\" was visible   -->\n<!-- between HTML loading and CSS taking effect.      -->\n<!-- We could rename this properly, since we are      -->\n<!-- sneaking in packages, which load first, in       -->\n<!-- case authors want to build on these macros       -->\n<!-- NB: \"math support\" macros (fillin-math, sfrac) must  -->\n<!-- be defined here AND in the \"extraction-wrapper\"      -->\n<!-- template in  support/extract-math.xsl                -->\n<xsl:template name=\"latex-macros\">\n    <div id=\"latex-macros\" class=\"hidden-content process-math\" style=\"display:none\">\n        <xsl:call-template name=\"inline-math-wrapper\">\n            <xsl:with-param name=\"math\">\n                <xsl:value-of select=\"$latex-packages-mathjax\"/>\n                <xsl:value-of select=\"$latex-macros\"/>\n                <xsl:call-template name=\"fillin-math\"/>\n                <!-- legacy built-in support for \"slanted|beveled|nice\" fractions -->\n                <xsl:if test=\"$b-has-sfrac\">\n                    <xsl:text>\\newcommand{\\sfrac}[2]{{#1}/{#2}}&#xa;</xsl:text>\n                </xsl:if>\n            </xsl:with-param>\n        </xsl:call-template>\n    </div>\n</xsl:template>\n\n\n<!-- Brand Logo -->\n<!-- Place image in masthead -->\n<!-- We either create a link with an image, or just an image. -->\n<!-- NB: This template does nothing unless $docinfo/brandlogo -->\n<!-- exists, in which case we assume @source exists, as       -->\n<!-- required by the schema.                                  -->\n<xsl:template name=\"brand-logo\">\n    <xsl:if test=\"$docinfo/brandlogo\">\n        <xsl:variable name=\"location\">\n            <!-- empty when not using managed directories -->\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:value-of select=\"$docinfo/brandlogo/@source\"/>\n        </xsl:variable>\n\n        <xsl:choose>\n            <xsl:when test=\"$docinfo/brandlogo/@url\">\n                <a id=\"logo-link\" class=\"logo-link\" target=\"_blank\" >\n                    <xsl:attribute name=\"href\">\n                        <xsl:value-of select=\"$docinfo/brandlogo/@url\"/>\n                    </xsl:attribute>\n                    <img src=\"{$location}\" alt=\"Logo image\"/>\n                </a>\n            </xsl:when>\n            <xsl:otherwise>\n                    <img src=\"{$location}\" alt=\"Logo image\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- Analytics Footers -->\n\n<!-- Google Analytics                     -->\n<!-- \"Classic\", not compared to Universal -->\n<xsl:template name=\"google-classic\">\n    <xsl:if test=\"$b-google-classic\">\n        <xsl:comment>Start: Google Classic code</xsl:comment>\n        <xsl:comment>*** DO NOT COPY ANOTHER PROJECT'S MAGIC NUMBERS/ID ***</xsl:comment>\n        <xsl:comment>***           GET YOUR OWN FROM GOOGLE             ***</xsl:comment>\n        <xsl:text>&#xa;</xsl:text>\n        <script>\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:text>var _gaq = _gaq || [];&#xa;</xsl:text>\n            <xsl:text>_gaq.push(['_setAccount', '</xsl:text>\n            <xsl:value-of select=\"$google-classic-tracking\" />\n            <xsl:text>']);&#xa;</xsl:text>\n            <xsl:text>_gaq.push(['_trackPageview']);&#xa;</xsl:text>\n            <xsl:text>(function() {&#xa;</xsl:text>\n            <xsl:text>var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;&#xa;</xsl:text>\n            <xsl:text>ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'https://www') + '.google-analytics.com/ga.js';&#xa;</xsl:text>\n            <xsl:text>var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);&#xa;</xsl:text>\n            <xsl:text>})();&#xa;</xsl:text>\n        </script>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:comment>End: Google Classic code</xsl:comment>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"google-universal\">\n    <xsl:if test=\"$b-google-universal\">\n        <xsl:comment>Start: Google Universal code</xsl:comment>\n        <xsl:comment>*** DO NOT COPY ANOTHER PROJECT'S MAGIC NUMBERS/ID ***</xsl:comment>\n        <xsl:comment>***           GET YOUR OWN FROM GOOGLE             ***</xsl:comment>\n        <xsl:text>&#xa;</xsl:text>\n        <script>\n            <xsl:text>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){&#xa;</xsl:text>\n            <xsl:text>(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),&#xa;</xsl:text>\n            <xsl:text>m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)&#xa;</xsl:text>\n            <xsl:text>})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');&#xa;</xsl:text>\n            <xsl:text>ga('create', '</xsl:text>\n            <xsl:value-of select=\"$google-universal-tracking\" />\n            <xsl:text>', 'auto');&#xa;</xsl:text>\n            <xsl:text>ga('send', 'pageview');&#xa;</xsl:text>\n        </script>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:comment>End: Google Universal code</xsl:comment>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Google says use first in <head>, seems fine in foot -->\n<xsl:template name=\"google-gst\">\n    <xsl:if test=\"$b-google-gst\">\n        <xsl:variable name=\"gst-url\">\n            <xsl:text>https://www.googletagmanager.com/gtag/js?id=</xsl:text>\n            <xsl:value-of select=\"$google-gst-tracking\"/>\n        </xsl:variable>\n        <xsl:comment>Start: Google Global Site Tag code</xsl:comment>\n        <xsl:comment>*** DO NOT COPY ANOTHER PROJECT'S MAGIC NUMBERS/ID ***</xsl:comment>\n        <xsl:comment>***           GET YOUR OWN FROM GOOGLE             ***</xsl:comment>\n        <xsl:text>&#xa;</xsl:text>\n        <script async=\"\" src=\"{$gst-url}\"></script>\n        <script>\n            <xsl:text>  window.dataLayer = window.dataLayer || [];&#xa;</xsl:text>\n            <xsl:text>  function gtag(){dataLayer.push(arguments);}&#xa;</xsl:text>\n            <xsl:text>  gtag('js', new Date());&#xa;</xsl:text>\n            <xsl:text>  gtag('config', '</xsl:text>\n            <xsl:value-of select=\"$google-gst-tracking\"/>\n            <xsl:text>');&#xa;</xsl:text>\n        </script>\n        <xsl:comment>End: Google Global Site Tag code</xsl:comment>\n    </xsl:if>\n</xsl:template>\n\n<!-- StatCounter                                -->\n<!-- Set sc_invisible to 1                      -->\n<!-- In noscript URL, final 1 is an edit from 0 -->\n<xsl:template name=\"statcounter\">\n    <xsl:if test=\"$b-statcounter\">\n        <xsl:variable name=\"noscript_url\">\n            <xsl:text>https://c.statcounter.com/</xsl:text>\n            <xsl:value-of select=\"$statcounter-project\" />\n            <xsl:text>/0/</xsl:text>\n            <xsl:value-of select=\"$statcounter-security\" />\n            <xsl:text>/1/</xsl:text>\n        </xsl:variable>\n        <xsl:comment>Start: StatCounter code</xsl:comment>\n        <xsl:comment>*** DO NOT COPY ANOTHER PROJECT'S MAGIC NUMBERS/ID ***</xsl:comment>\n        <xsl:comment>***        GET YOUR OWN FROM STATCOUNTER           ***</xsl:comment>\n        <script>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:text>var sc_project=</xsl:text>\n        <xsl:value-of select=\"$statcounter-project\" />\n        <xsl:text>;&#xa;</xsl:text>\n        <xsl:text>var sc_invisible=1;&#xa;</xsl:text>\n        <xsl:text>var sc_security=\"</xsl:text>\n        <xsl:value-of select=\"$statcounter-security\" />\n        <xsl:text>\";&#xa;</xsl:text>\n        <xsl:text>var scJsHost = ((\"https:\" == document.location.protocol) ? \"https://secure.\" : \"https://www.\");&#xa;</xsl:text>\n        <xsl:text>document.write(\"&lt;sc\"+\"ript src='\" + scJsHost+ \"statcounter.com/counter/counter.js'&gt;&lt;/\"+\"script&gt;\");&#xa;</xsl:text>\n        </script>\n        <noscript>\n        <div class=\"statcounter\">\n        <a title=\"web analytics\" href=\"https://statcounter.com/\" target=\"_blank\">\n        <img class=\"statcounter\" src=\"{$noscript_url}\" alt=\"web analytics\" /></a>\n        </div>\n        </noscript>\n        <xsl:comment>End: StatCounter code</xsl:comment>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############################################# -->\n<!-- Worksheet Margins, Headers/Footers, and Pages -->\n<!-- ############################################# -->\n\n<!-- We put page-margins-attributes only on printout sections -->\n<xsl:template match=\"*\" mode=\"page-margins-attribute\"/>\n\n<xsl:template match=\"worksheet|handout\" mode=\"page-margins-attribute\">\n    <xsl:attribute name=\"data-margins\">\n        <!-- A space-separated list for top, right, bottom, and left margins -->\n        <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n            <xsl:with-param name=\"author-side\" select=\"@top\"/>\n            <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-top\"/>\n        </xsl:apply-templates>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n            <xsl:with-param name=\"author-side\" select=\"@right\"/>\n            <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-right\"/>\n        </xsl:apply-templates>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n            <xsl:with-param name=\"author-side\" select=\"@bottom\"/>\n            <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-bottom\"/>\n        </xsl:apply-templates>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n            <xsl:with-param name=\"author-side\" select=\"@left\"/>\n            <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-left\"/>\n        </xsl:apply-templates>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- Add data-* attributes for headers and footers -->\n<xsl:template match=\"*\" mode=\"page-header-footer-attributes\"/>\n\n<xsl:template match=\"worksheet|handout\" mode=\"page-header-footer-attributes\">\n    <xsl:if test=\"not($ws-header-first-left = '')\">\n        <xsl:attribute name=\"data-header-first-left\">\n            <xsl:value-of select=\"normalize-space($ws-header-first-left)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-header-first-center = '')\">\n        <xsl:attribute name=\"data-header-first-center\">\n            <xsl:value-of select=\"normalize-space($ws-header-first-center)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-header-first-right = '')\">\n        <xsl:attribute name=\"data-header-first-right\">\n            <xsl:value-of select=\"normalize-space($ws-header-first-right)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-header-running-left = '')\">\n        <xsl:attribute name=\"data-header-running-left\">\n            <xsl:value-of select=\"normalize-space($ws-header-running-left)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-header-running-center = '')\">\n        <xsl:attribute name=\"data-header-running-center\">\n            <xsl:value-of select=\"normalize-space($ws-header-running-center)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-header-running-right = '')\">\n        <xsl:attribute name=\"data-header-running-right\">\n            <xsl:value-of select=\"normalize-space($ws-header-running-right)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-footer-first-left = '')\">\n        <xsl:attribute name=\"data-footer-first-left\">\n            <xsl:value-of select=\"normalize-space($ws-footer-first-left)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-footer-first-center = '')\">\n        <xsl:attribute name=\"data-footer-first-center\">\n            <xsl:value-of select=\"normalize-space($ws-footer-first-center)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-footer-first-right = '')\">\n        <xsl:attribute name=\"data-footer-first-right\">\n            <xsl:value-of select=\"normalize-space($ws-footer-first-right)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-footer-running-left = '')\">\n        <xsl:attribute name=\"data-footer-running-left\">\n            <xsl:value-of select=\"normalize-space($ws-footer-running-left)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-footer-running-center = '')\">\n        <xsl:attribute name=\"data-footer-running-center\">\n            <xsl:value-of select=\"normalize-space($ws-footer-running-center)\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"not($ws-footer-running-right = '')\">\n        <xsl:attribute name=\"data-footer-running-right\">\n            <xsl:value-of select=\"normalize-space($ws-footer-running-right)\"/>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<!-- A printout is (mostly) structured by \"page\", which translates    -->\n<!-- into an HTML section.onepage.  Note that an \"introduction\" and    -->\n<!-- \"objectives\" can precede the first \"page\" as HTML output, and the -->\n<!-- final \"page\" may be followed by a \"conclusion\" and \"outcomes\"     -->\n<xsl:template match=\"worksheet/page|handout/page\">\n    <xsl:param name=\"heading-level\"/>\n    <section class=\"onepage\">\n        <xsl:apply-templates select=\".\" mode=\"html-id-attribute\"/>\n        <xsl:apply-templates select=\"*\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:apply-templates>\n    </section>\n</xsl:template>\n\n<!-- 2020-03-17: Empty element, since originally a       -->\n<!-- \"page\" element interrupted numbering of contents.   -->\n<!-- Now deprecated in favor of a proper \"page\" element. -->\n<xsl:template match=\"worksheet/pagebreak\">\n    <hr class=\"pagebreak\"/>\n</xsl:template>\n\n<!-- Miscellaneous -->\n\n<!-- Inline warnings go into text, no matter what -->\n<!-- They are colored for an author's report -->\n<xsl:template name=\"inline-warning\">\n    <xsl:param name=\"warning\" />\n    <xsl:element name=\"span\">\n        <!-- Color for author tools version -->\n        <xsl:if test=\"$author-tools-new = 'yes'\" >\n            <xsl:attribute name=\"style\">color:red</xsl:attribute>\n        </xsl:if>\n        <xsl:text>(((</xsl:text>\n        <xsl:value-of select=\"$warning\" />\n        <xsl:text>)))</xsl:text>\n    </xsl:element>\n</xsl:template>\n\n<!-- Marginal notes are only for author's report                     -->\n<!-- and are always colored red.  Marginpar's from                   -->\n<!-- http://www.sitepoint.com/web-foundations/floating-clearing-css/ -->\n<xsl:template name=\"margin-warning\">\n    <xsl:param name=\"warning\" />\n    <xsl:if test=\"$author-tools-new = 'yes'\" >\n        <xsl:element name=\"span\">\n            <xsl:attribute name=\"style\">color:red;float:right;width:20em;margin-right:-25em;</xsl:attribute>\n            <xsl:value-of select=\"$warning\" />\n        </xsl:element>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- SCORM manifest -->\n<!-- Generate a simple xml file describing a minimal SCORM \"course\". -->\n<!-- Besides some boiler plate, we include the title of the course   -->\n<!-- (under the main organization), a single item (since the entire  -->\n<!-- document is a single iframe), and the entry point for that item -->\n<!-- (the resource with its file).  It appears that while other files-->\n<!-- can be listed as files for that resource, this is not required. -->\n\n<!-- The only customization we do here is setting the main title to  -->\n<!-- the title of the document.  We could easily expand this.        -->\n<xsl:template name=\"scorm-manifest\">\n    <xsl:variable name=\"root-filename\">\n        <xsl:apply-templates select=\"$document-root\" mode=\"containing-filename\" />\n    </xsl:variable>\n    <exsl:document href=\"imsmanifest.xml\" method=\"xml\" omit-xml-declaration=\"no\" indent=\"yes\">\n        <manifest identifier=\"ptx-scorm-test\" version=\"1\" xmlns=\"http://www.imsglobal.org/xsd/imscp_v1p1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:adlcp=\"http://www.adlnet.org/xsd/adlcp_v1p3\" xmlns:adlseq=\"http://www.adlnet.org/xsd/adlseq_v1p3\" xmlns:adlnav=\"http://www.adlnet.org/xsd/adlnav_v1p3\" xmlns:imsss=\"http://www.imsglobal.org/xsd/imsss\" xsi:schemaLocation=\"http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd http://www.adlnet.org/xsd/adlnav_v1p3 adlnav_v1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd\">\n            <!--The metadata node simply declares which SCORM version this course operates under.-->\n            <metadata>\n                <schema>ADL SCORM</schema>\n                <schemaversion>2004 3rd Edition</schemaversion>\n            </metadata>\n            <!-- There is just one organization. The organization contains just one item.-->\n            <organizations default=\"main\">\n                <organization identifier=\"main\">\n                    <title>\n                        <xsl:apply-templates select=\"$document-root\" mode=\"title-full\"/>\n                    </title>\n                    <item identifier=\"item_1\" identifierref=\"main-resource\">\n                        <!-- \"Main\" here is a generic name.  Only visible when importing a into LMS -->\n                        <!-- (at least in Canvas), sort of a sole entry in the table of contents.   -->\n                        <title>Main</title>\n                    </item>\n                </organization>\n            </organizations>\n            <!-- There is just one resource that represents the single SCO that comprises the entirety of this course. The href attribute points to the launch URL for the course and all of the files required by the course are listed. -->\n            <resources>\n                <!-- We use the index.html file pretext produces, as this always points to the right place.  -->\n                <!-- NB we could point to any entry filename, as long as it is in the resulting zip          -->\n                <resource identifier=\"main-resource\" type=\"webcontent\" adlcp:scormType=\"sco\" href=\"index.html\">\n                <file href=\"index.html\"/>\n                </resource>\n            </resources>\n        </manifest>\n    </exsl:document>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-json-manifest.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Command-line Documentation                              -->\n<!--                                                         -->\n<!-- 1.  xsltproc                                            -->\n<!-- 2.  -xinclude                                           -->\n<!--     Necessary for PTX source in modular files           -->\n<!-- 3.  -stringparam chunk.level <integer>                  -->\n<!--     Level at which text divisions become entire pages.  -->\n<!--     Default is \"2\", which would create an HTML page for -->\n<!--     each section.  \"3\" would create a page for each     -->\n<!--     subsection.  This needs to match how the actual     -->\n<!--     pages are constructed, so the filenames here match  -->\n<!--     the actual pages output.                            -->\n<!-- 3.  -stringparam base-url <url>                         -->\n<!--     Prefix of filenames, including a trailing slash     -->\n<!-- 4.  path/to/mathbook/xsl/pretext-json-manifest.xsl      -->\n<!-- 5.  path/to/master-file.xml                             -->\n<!--                                                         -->\n<!-- Output will be on stdout.                               -->\n<!--                                                         -->\n<!-- Example for Judson's Abstract Algebra:                  -->\n<!--                                                         -->\n<!-- $ xsltproc -xinclude                                    -->\n<!--   -stringparam chunk.level 2                            -->\n<!--   -stringparam base-url \"http://abstract.ups.edu/aata/\" -->\n<!--   /path/to/mathbook/xsl/pretext-json-manifest.xsl       -->\n<!--   /path/to/aata/src/aata.xml                            -->\n\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<xsl:import href=\"./pretext-text.xsl\" />\n\n<!-- override on command-line with xsltproc's \"-stringparam\" option -->\n<xsl:param name=\"chunk.level\" select=\"2\"/>\n<xsl:param name=\"base-url\" select=\"'http://abstract.ups.edu/aata/'\"/>\n<!-- <xsl:param name=\"base-url\" select=\"'http://set-base-url/'\"/> -->\n\n<!-- Necessary variables, typically set in  pretext-html.xsl -->\n<!-- $chunk-level will eventually be referenced by templates  -->\n<!-- for the containing filename used to construct a URL      -->\n<!-- Since we are describing HTML output, we want filenames   -->\n<!-- describing those files                                   -->\n<xsl:variable name=\"file-extension\" select=\"'.html'\"/>\n<xsl:variable name=\"chunk-level\">\n    <xsl:value-of select=\"$chunk-level-entered\"/>\n</xsl:variable>\n\n<!-- Entry Template               -->\n<!-- Create outermost array       -->\n<!-- Start with \"book\", \"article\" -->\n<xsl:template match=\"/\">\n    <xsl:text>[&#xa;</xsl:text>\n     <xsl:apply-templates select=\"$document-root\"/>\n    <xsl:text>]&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"&STRUCTURAL;\">\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n    </xsl:variable>\n    <xsl:variable name=\"current-level\">\n        <xsl:apply-templates select=\".\" mode=\"level\" />\n    </xsl:variable>\n\n    <!-- no newline on opening of object -->\n    <xsl:text>{</xsl:text>\n    <xsl:text>\"title\": </xsl:text>\n    <xsl:text>\"</xsl:text>\n    <xsl:if test=\"not($the-number = '')\">\n        <xsl:value-of select=\"$the-number\"/>\n        <xsl:text>: </xsl:text>\n    </xsl:if>\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\"</xsl:text>\n    <xsl:text>,&#xa;</xsl:text>\n    <xsl:text>\"link\": </xsl:text>\n    <xsl:text>\"</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"full-url\"/>\n    <xsl:text>\"</xsl:text>\n    <xsl:text>,&#xa;</xsl:text>\n    <xsl:text>\"children\": [</xsl:text>\n    <!-- only examine children if a level  -->\n    <!-- above the desired chunk-level     -->\n    <xsl:if test=\"$current-level &lt; $chunk-level\">\n        <!-- if no children, then put -->\n        <!-- empty array on one line  -->\n        <xsl:if test=\"&STRUCTURAL;\">\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n        <!-- recurse into structural children -->\n        <xsl:apply-templates select=\"&STRUCTURAL;\"/>\n    </xsl:if>\n    <xsl:text>]&#xa;</xsl:text>\n    <xsl:text>}</xsl:text>\n    <!-- separate children, if necessary -->\n    <xsl:if test=\"following-sibling::*[&STRUCTURAL-FILTER;]\">\n        <xsl:text>,</xsl:text>\n    </xsl:if>\n    <!-- newline after every child -->\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"&STRUCTURAL;\" mode=\"full-url\">\n    <xsl:value-of select=\"$base-url\"/>\n    <xsl:apply-templates select=\".\" mode=\"containing-filename\"/>\n</xsl:template>\n\n<!-- Necessary, override any definition in \"pretext-text.xsl\" -->\n<xsl:template name=\"inline-math-wrapper\">\n    <xsl:param name=\"math\"/>\n    <xsl:text>\\(</xsl:text>\n    <xsl:value-of select=\"$math\"/>\n    <xsl:text>\\)</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-jupyter.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2015 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl str\"\n    >\n\n<!-- Trade on HTML markup, numbering, chunking, etc.        -->\n<!-- Override as pecularities of Jupytr/JSON arise          -->\n<!-- NB: this will import -assembly and -common stylesheets -->\n<xsl:import href=\"./pretext-html.xsl\" />\n\n<!-- Output is JSON, enriched with serialized HTML -->\n<xsl:output method=\"text\" />\n\n<!-- ######### -->\n<!-- Variables -->\n<!-- ######### -->\n\n<!-- This variable controls representations of interactive exercises   -->\n<!-- built in  pretext-assembly.xsl.  The imported  pretext-html.xsl   -->\n<!-- stylesheet sets it to \"dynamic\".  But for this stylesheet we want -->\n<!-- to utilize the \"standard\" PreTeXt exercise versions built with    -->\n<!-- \"static\".  See both  pretext-assembly.xsl  and  pretext-html.xsl  -->\n<!-- for more discussion. -->\n<xsl:variable name=\"exercise-style\" select=\"'static'\"/>\n\n<!-- iPython files as output -->\n<xsl:variable name=\"file-extension\" select=\"'.ipynb'\" />\n\n<xsl:param name=\"jupyter.kernel\" select=\"''\" />\n\n<!-- Disable clipboardable -->\n<xsl:template name=\"insert-clipboardable-class\"/>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"$root\"/>\n</xsl:template>\n\n<!-- Deprecation warnings are universal analysis of source and parameters        -->\n<!-- We process structural nodes via chunking routine in  xsl/pretext-common.xsl -->\n<!-- This in turn calls specific modal templates defined elsewhere in this file  -->\n<!-- There is always a \"document root\" directly under the mathbook element,      -->\n<!-- and we process it with the chunking template called below                   -->\n<!-- Note that \"docinfo\" is at the same level and not structural, so killed      -->\n<xsl:template match=\"/pretext\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Jupyter notebook conversion is experimental and incomplete&#xa;Requests to fix/implement specific constructions welcome</xsl:with-param>\n    </xsl:call-template>\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"element-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"parameter-deprecation-warnings\"/>\n    <xsl:apply-templates mode=\"chunking\" />\n</xsl:template>\n\n<!-- ########### -->\n<!-- Compromises -->\n<!-- ########### -->\n\n<!-- Knowls are not yet functional in Jupyter notebooks    -->\n<!-- See:  https://github.com/jupyter/notebook/pull/2947   -->\n<!-- So we kill them while we wait and get hyperlinks only -->\n<xsl:template match=\"*\" mode=\"xref-as-knowl\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Structural Nodes -->\n<!-- ################ -->\n\n<!-- Read the code and documentation for \"chunking\" in xsl/pretext-common.xsl -->\n<!-- This will explain document structure (not XML structure) and has the       -->\n<!-- routines which call the necessary realizations of two abstract templates.  -->\n\n<!-- Divisions, and pseudo-divisions -->\n<!-- A heading cell, then apply templates here to children -->\n<xsl:template match=\"&STRUCTURAL;|paragraphs|introduction[parent::*[&STRUCTURAL-FILTER;]]|conclusion[parent::*[&STRUCTURAL-FILTER;]]\">\n    <!-- <xsl:message>S:<xsl:value-of select=\"local-name(.)\" />:S</xsl:message> -->\n    <xsl:apply-templates select=\".\" mode=\"pretext-heading\" />\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Some structural nodes do not need their title,                -->\n<!-- (or subtitle) so we don't put a section heading there         -->\n<!-- Title(s) for an article are forced by a frontmatter/titlepage -->\n<!-- TODO: incorporate in above by implementing null heading template? -->\n<xsl:template match=\"article|frontmatter\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- We have entire cells for division headings. -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"pretext-heading\">\n    <xsl:variable name=\"html-rtf\">\n        <xsl:apply-templates select=\".\" mode=\"section-heading\" />\n    </xsl:variable>\n    <xsl:variable name=\"html-node-set\" select=\"exsl:node-set($html-rtf)\" />\n    <xsl:call-template name=\"pretext-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n                <xsl:apply-templates select=\"$html-node-set\" mode=\"xml-to-string\" />\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"paragraphs|introduction|conclusion\" mode=\"pretext-heading\">\n    <xsl:variable name=\"html-rtf\">\n        <xsl:apply-templates select=\".\" mode=\"heading-title\" />\n    </xsl:variable>\n    <xsl:variable name=\"html-node-set\" select=\"exsl:node-set($html-rtf)\" />\n    <xsl:call-template name=\"pretext-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n                <xsl:apply-templates select=\"$html-node-set\" mode=\"xml-to-string\" />\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"pretext-heading\">\n    <xsl:message>pretext-heading unmatched <xsl:value-of select=\"local-name(.)\" /></xsl:message>\n</xsl:template>\n\n<!-- Three modal templates accomodate all document structure nodes -->\n<!-- and all possibilities for chunking.  Read the description     -->\n<!-- in  xsl/pretext-common.xsl  and  -html  to understand these.  -->\n<!-- The  \"file-wrap\"  template is defined elsewhere in this file. -->\n\n<!-- Content of a summary page is usual content,  -->\n<!-- or link to subsidiary content, all from HTML -->\n<!-- template with same mode, as one big cell     -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"intermediate\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <!-- should perhaps initialize/pass $heading-level = 2 here -->\n            <!-- perhaps irrelevant since headings are done in markown? -->\n            <xsl:apply-templates select=\"objectives|introduction\" />\n            <xsl:variable name=\"html-rtf\">\n                <nav class=\"summary-links\">\n                    <xsl:apply-templates select=\"*\" mode=\"summary-nav\" />\n                </nav>\n            </xsl:variable>\n            <xsl:variable name=\"html-node-set\" select=\"exsl:node-set($html-rtf)\" />\n            <xsl:call-template name=\"pretext-cell\">\n                <xsl:with-param name=\"content\">\n                    <xsl:call-template name=\"begin-string\" />\n                        <xsl:apply-templates select=\"$html-node-set\" mode=\"xml-to-string\" />\n                    <xsl:call-template name=\"end-string\" />\n                </xsl:with-param>\n            </xsl:call-template>\n            <xsl:apply-templates select=\"conclusion\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- ########## -->\n<!-- Worksheets -->\n<!-- ########## -->\n\n<!-- Worksheets are a great feature for a Jupyter notebook.  But we need -->\n<!-- to adjust the page-oriented flavor of the base HTML (which exists   -->\n<!-- as part of accommodating printing from a web browser). All children  -->\n<!-- of a \"page\" get processed, and elsewhere get recognized as items    -->\n<!-- deserving of their own cells.                                       -->\n<xsl:template match=\"worksheet/page\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- File Structure -->\n<!-- ############## -->\n\n<!-- Gross structure of a Jupyter notebook -->\n<!-- TODO: need to make a \"simple file wrap\" template?  Or just call this?-->\n<xsl:template match=\"*\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:param name=\"filename\" select=\"''\"/>\n    <!--  -->\n    <xsl:variable name=\"the-filename\">\n        <xsl:choose>\n            <xsl:when test=\"not($filename = '')\">\n                <xsl:value-of select=\"$filename\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"cell-list\">\n        <!-- a code cell for reader to load CSS -->\n        <!-- First, so already with focus       -->\n        <xsl:call-template name=\"load-css\" />\n        <!-- load LaTeX macros for MathJax               -->\n        <!-- Empty visually, so also provides separation -->\n        <xsl:call-template name=\"latex-macros\" />\n        <!-- the real content of the page -->\n        <xsl:copy-of select=\"$content\" />\n    </xsl:variable>\n    <exsl:document href=\"{$the-filename}\" method=\"text\">\n        <!-- <xsl:call-template name=\"converter-blurb-html\" /> -->\n        <!-- begin outermost group -->\n        <xsl:text>{&#xa;</xsl:text>\n        <!-- cell list first, majority of notebook, metadata to finish -->\n        <xsl:text>\"cells\": [&#xa;</xsl:text>\n        <!-- Escape JSON strings now, be sure later adjustments -->\n        <!-- conform to JSON syntax in this regard              -->\n        <xsl:variable name=\"escaped-cell-list\">\n            <xsl:call-template name=\"escape-json-string\">\n                <xsl:with-param name=\"text\" select=\"$cell-list\"/>\n            </xsl:call-template>\n        </xsl:variable>\n        <!-- Multiple strings in a cell are merged into one by    -->\n        <!-- combining adjoining end/begin pairs, leaving only    -->\n        <!-- leading and trailing delimiters (next substitution). -->\n        <!-- This is one solution of the problem of $n-1$         -->\n        <!-- separators for $n$ items.                            -->\n        <xsl:variable name=\"split-strings\" select=\"str:replace($escaped-cell-list, $ESBS, '')\" />\n        <xsl:variable name=\"finalize-strings\" select=\"str:replace(str:replace($split-strings, $ES, '&quot;'), $BS, '&quot;')\" />\n        <!-- The only pseudo-markup left is that of the two types -->\n        <!-- of cells possible in a Jupyter notebook.  We split   -->\n        <!-- just the adjacent brackets with comma-newline, so    -->\n        <!-- source has each cell entirely on its own line.  This -->\n        <!-- is the other solution of the problem of $n-1$        -->\n        <!-- separators for $n$ items.                            -->\n        <xsl:variable name=\"split-cells\" select=\"str:replace($finalize-strings, $RBLB, $RBLB-comma)\" />\n        <!-- Now we consider the actual markers and replace   -->\n        <!-- with the JSON that Jupyter expects as source.    -->\n        <!-- We are done, so \"value-of\" is good enough,       -->\n        <!-- rather than having a final $code-cells.  The     -->\n        <!-- four *-wrap variables here are just conveniences -->\n        <xsl:variable name=\"markdown-cells\" select=\"str:replace(str:replace($split-cells, $BM, $begin-markdown-wrap), $EM, $end-markdown-wrap)\" />\n        <xsl:value-of select=\"str:replace(str:replace($markdown-cells, $BC, $begin-code-wrap), $EC, $end-code-wrap)\" />\n        <!-- end cell list -->\n        <xsl:text>&#xa;],&#xa;</xsl:text>\n        <!-- version identifiers -->\n        <xsl:text>\"nbformat\": 4, \"nbformat_minor\": 0, </xsl:text>\n        <!-- metadata copied from blank SMC notebook -->\n        <xsl:text>\"metadata\": {</xsl:text>\n        <xsl:text>\"kernelspec\": {</xsl:text>\n        <!-- TODO: configure kernel in \"docinfo\" -->\n        <!-- \"display_name\" seems ineffective, but is required -->\n        <xsl:text>\"display_name\": \"\", </xsl:text>\n        <!-- TODO: language not needed? -->\n        <!-- <xsl:text>\"language\": \"python\", </xsl:text> -->\n        <!-- TODO: make kernelspec configurable? -->\n        <!-- <xsl:text>\"name\": \"python2\"</xsl:text> -->\n        <!-- \"sagemath\" as  \"name\" will be latest kernel -->\n        <!-- in Sage distribution Jupyter, and in CoCalc -->\n        <xsl:choose>\n            <xsl:when test=\"contains('|python3|Python3|python 3|Python 3|py|Py|python|Python|'\n                , concat('|', $jupyter.kernel, '|'))\">\n                <xsl:text>\"name\": \"python3\"</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\"name\": \"sagemath\"</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <!-- TODO: how much of the following is necessary before loading? -->\n        <xsl:text>}, </xsl:text>\n        <xsl:text>\"language_info\": {</xsl:text>\n        <xsl:text>\"codemirror_mode\": {</xsl:text>\n        <xsl:text>\"name\": \"ipython\", </xsl:text>\n        <xsl:text>\"version\": 3</xsl:text>\n        <xsl:text>}, </xsl:text>\n        <xsl:text>\"file_extension\": \".py\", </xsl:text>\n        <xsl:text>\"mimetype\": \"text/x-python\", </xsl:text>\n        <xsl:text>\"name\": \"python\", </xsl:text>\n        <xsl:text>\"nbconvert_exporter\": \"python\", </xsl:text>\n        <xsl:text>\"pygments_lexer\": \"ipython3\", </xsl:text>\n        <xsl:text>\"version\": \"3.6.4\"</xsl:text>\n        <xsl:text>}, </xsl:text>\n        <xsl:text>\"name\": \"</xsl:text>\n        <xsl:value-of select=\"$the-filename\" />\n        <xsl:text>\"</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n        <!-- end outermost group -->\n        <xsl:text>}</xsl:text>\n    </exsl:document>\n</xsl:template>\n\n<!-- a code cell with HTML magic         -->\n<!-- allows reader to activate styling   -->\n<!-- Code first, so it begins with focus -->\n<xsl:template name=\"load-css\">\n    <!-- HTML as one-off code cell   -->\n    <!-- Serialize HTML by hand here -->\n    <xsl:call-template name=\"code-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n            <xsl:text>%%html&#xa;</xsl:text>\n            <!-- for offline testing -->\n            <!-- <xsl:text>&lt;link href=\"./mathbook-content.css\" rel=\"stylesheet\" type=\"text/css\" /&gt;&#xa;</xsl:text> -->\n            <xsl:text>&lt;link href=\"https://pretextbook.org/beta/mathbook-content.css\" rel=\"stylesheet\" type=\"text/css\" /&gt;&#xa;</xsl:text>\n            <xsl:text>&lt;link href=\"https://aimath.org/mathbook/mathbook-add-on.css\" rel=\"stylesheet\" type=\"text/css\" /&gt;&#xa;</xsl:text>\n            <!-- A bad hack since \"subtitle\" is in masthead code, better CSS should take care of this -->\n            <xsl:if test=\"$document-root/subtitle\">\n                <xsl:text>&lt;style&gt;.subtitle {font-size:medium; display:block}&lt;/style&gt;&#xa;</xsl:text>\n            </xsl:if>\n            <xsl:text>&lt;link href=\"https://fonts.googleapis.com/css?family=Open+Sans:400,400italic,600,600italic\" rel=\"stylesheet\" type=\"text/css\" /&gt;&#xa;</xsl:text>\n            <xsl:text>&lt;link href=\"https://fonts.googleapis.com/css?family=Inconsolata:400,700&amp;subset=latin,latin-ext\" rel=\"stylesheet\" type=\"text/css\" /&gt;</xsl:text>\n            <!-- Cell hider is unwrapped from some notebook display command that injects HTML: -->\n            <!-- https://nbviewer.jupyter.org/github/shashi/ijulia-notebooks/blob/master/funcgeo/Functional%20Geometry.ipynb -->\n            <xsl:text>&lt;!-- Hide this cell. --&gt;&#xa;</xsl:text>\n            <xsl:text>&lt;script&gt;&#xa;</xsl:text>\n            <xsl:text>var cell = $(\".container .cell\").eq(0), ia = cell.find(\".input_area\")&#xa;</xsl:text>\n            <xsl:text>if (cell.find(\".toggle-button\").length == 0) {&#xa;</xsl:text>\n            <xsl:text>ia.after(&#xa;</xsl:text>\n            <xsl:text>    $('&lt;button class=\"toggle-button\"&gt;Toggle hidden code&lt;/button&gt;').click(&#xa;</xsl:text>\n            <xsl:text>        function (){ ia.toggle() }&#xa;</xsl:text>\n            <xsl:text>        )&#xa;</xsl:text>\n            <xsl:text>    )&#xa;</xsl:text>\n            <xsl:text>ia.hide()&#xa;</xsl:text>\n            <xsl:text>}&#xa;</xsl:text>\n            <xsl:text>&lt;/script&gt;&#xa;</xsl:text>\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n    <!-- instructions as Markdown cell        -->\n    <!-- Use markdown, since no CSS yet (duh) -->\n    <xsl:call-template name=\"markdown-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n            <xsl:text>**Important:** to view this notebook properly you will need to execute the cell above, which assumes you have an Internet connection.  It should already be selected, or place your cursor anywhere above to select.  Then press the \"Run\" button in the menu bar above (the right-pointing arrowhead), or press Shift-Enter on your keyboard.</xsl:text>\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- This will override the HTML version, but is patterned -->\n<!-- after same.  Adjustments are: different overall       -->\n<!-- delimiters, and no enclosing div to hide content      -->\n<!-- (thereby avoiding the need for serialization).        -->\n<!-- We *remove* our defintion of \\lt since MathJax does   -->\n<!-- it anyway and Jupyter adds it in as part of a         -->\n<!-- conversion to LateX.  Bad practice?  Maybe better to  -->\n<!-- go back to -common and rework the entire latex-macro  -->\n<!-- generation scheme?                                    -->\n<xsl:template name=\"latex-macros\">\n    <xsl:call-template name=\"markdown-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n            <xsl:call-template name=\"inline-math-wrapper\">\n                <xsl:with-param name=\"math\">\n                    <xsl:value-of select=\"$latex-packages-mathjax\" />\n                    <!-- Sequence replacements if \\gt and/or \\amp need to go -->\n                    <xsl:value-of select=\"str:replace($latex-macros,'\\newcommand{\\lt}{&lt;}&#xa;', '')\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n\n<!-- ################# -->\n<!-- Block Level Items -->\n<!-- ################# -->\n\n<!-- Everything configurable by author, 2020-01-02         -->\n<!-- Roughly in the order of old  html.knowl.*  switches   -->\n<!-- Similar HTML templates return string for boolean test -->\n<!-- Jupyter is hostile to knowls code, so we don't knowl  -->\n<!-- anything and ignore any choice in a publisher file    -->\n<!-- https://github.com/jupyter/notebook/pull/2947         -->\n<xsl:template match=\"&THEOREM-LIKE;|&PROOF-LIKE;|&DEFINITION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|task|&FIGURE-LIKE;|&REMARK-LIKE;|&GOAL-LIKE;|exercise\" mode=\"is-hidden\">\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- These are \"top-level\" items, children of divisions    -->\n<!-- and pseudo-divisions.  Normally they would get a high -->\n<!-- priority, but we want them to have the same low       -->\n<!-- priority as a generic (default) wilcard match         -->\n<!-- TODO: remove filter on paragraphs once we add stack for sidebyside -->\n<xsl:template match=\"*[parent::*[&STRUCTURAL-FILTER; or self::paragraphs[not(ancestor::sidebyside)] or self::introduction[parent::*[&STRUCTURAL-FILTER;]] or self::conclusion[parent::*[&STRUCTURAL-FILTER;]]]]|*[parent::page]\" priority=\"-0.5\">\n    <!-- <xsl:message>G:<xsl:value-of select=\"local-name(.)\" />:G</xsl:message> -->\n    <xsl:variable name=\"html-rtf\">\n        <xsl:apply-imports />\n    </xsl:variable>\n    <xsl:variable name=\"html-node-set\" select=\"exsl:node-set($html-rtf)\" />\n    <xsl:call-template name=\"pretext-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n                <xsl:apply-templates select=\"$html-node-set\" mode=\"xml-to-string\" />\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Kill some templates temporarily -->\n<xsl:template name=\"inline-warning\" />\n<xsl:template name=\"margin-warning\" />\n\n<!-- Kill some metadata -->\n<xsl:template match=\"title|idx|notation\" />\n\n\n<!-- Sage code -->\n<!-- Should evolve to accomodate general template -->\n<xsl:template match=\"sage\">\n    <!-- formulate lines of code -->\n    <xsl:variable name=\"loc\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\">\n                <xsl:value-of select=\"input\" />\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- we trim a final trailing newline -->\n    <!-- as we wrap into a single string  -->\n    <xsl:call-template name=\"code-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"begin-string\" />\n                <xsl:value-of select=\"substring($loc, 1, string-length($loc)-1)\" />\n            <xsl:call-template name=\"end-string\" />\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- #### -->\n<!-- Math -->\n<!-- #### -->\n\n<!-- Our sanitization procedures will preserve author's line   -->\n<!-- breaks within mathematics.  Even inline math might be a   -->\n<!-- complicated construction, like a column vector, with line -->\n<!-- breaks.  Replacements late in the conversion will make    -->\n<!-- these the \"\\n\" acceptable in JSON.                        -->\n\n<!-- This template wraps inline math in delimiters                   -->\n<!-- The Jupyter notebook appears to support the AMS-style for       -->\n<!-- inline math ( \\(, \\) ).  But in doing so, it fails to prevent   -->\n<!-- Markdown syntax from mucking up the math.  For example, two     -->\n<!-- underscores in a Markdown cell will look like underlining       -->\n<!-- and override the LaTeX meaning for subscripts.  They can        -->\n<!-- be escaped, but easier to just deal with \"plain text\" dollar    -->\n<!-- signs as a possibility.  There is no issue for display          -->\n<!-- mathematics, presumably since we use environments, exclusively. -->\n<xsl:template name=\"inline-math-wrapper\">\n    <xsl:param name=\"math\"/>\n    <xsl:text>$</xsl:text>\n    <xsl:value-of select=\"$math\"/>\n    <xsl:text>$</xsl:text>\n</xsl:template>\n\n<!-- The \"display-math-wrapper\" in the base HTML conversion has an -->\n<!-- additional \"process-math\" class, to be used with a MathJax 3  -->\n<!-- configuration to limit the scope of MathJax's conversions.    -->\n<!-- Rather than a hook or override to get this just right, we     -->\n<!-- leave the additional class name in place, to no real effect.  -->\n<!-- For it to be effective will require the overall \"ignore-math\" -->\n<!-- class, and access to the MathJax configuration.               -->\n\n<!-- Images -->\n\n<!-- Jupyter seems to not allow an \"object\" tag.        -->\n<!-- So we override the HTML wrapper with a simpler     -->\n<!-- version.  Interface info copied from HTML version. -->\n\n<!-- A named template creates the infrastructure for an SVG image -->\n<!-- Parameters                                 -->\n<!-- svg-filename: required, full relative path -->\n<!-- png-fallback-filename: optional            -->\n<!-- image-width: required                      -->\n<!-- image-description: optional                -->\n<xsl:template name=\"svg-wrapper\">\n    <xsl:param name=\"svg-filename\" />\n    <xsl:param name=\"png-fallback-filename\" select=\"''\" />\n    <xsl:param name=\"image-width\" />\n    <xsl:param name=\"image-description\" select=\"''\" />\n    <xsl:element name=\"img\">\n        <xsl:attribute name=\"src\">\n            <xsl:value-of select=\"$svg-filename\" />\n        </xsl:attribute>\n        <xsl:attribute name=\"width\">\n            <xsl:value-of select=\"$image-width\" />\n        </xsl:attribute>\n        <!-- alt attribute for accessibility -->\n        <xsl:attribute name=\"alt\">\n            <xsl:value-of select=\"$image-description\" />\n        </xsl:attribute>\n    </xsl:element>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Icons -->\n<!-- ##### -->\n\n<!-- Unicode characters will relieve necessity of        -->\n<!-- Font Awesome CSS loading, $icon-table is in -common -->\n<xsl:template match=\"icon\">\n    <!-- the name attribute of the \"icon\" in text as a string -->\n    <xsl:variable name=\"icon-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n\n    <!-- for-each is just one node, but sets context for key() -->\n    <xsl:for-each select=\"$icon-table\">\n        <xsl:value-of select=\"key('icon-key', $icon-name)/@unicode\" />\n    </xsl:for-each>\n</xsl:template>\n\n<!--\nTODO: (overall)\n\n1.  DONE: Interfere with left-angle bracket to make elements not evaporate in serialization.\n2.  DONE: Escape $ so that pairs do not go MathJax on us.\n3.  DONE: Do we need to protect a hash?  So not interpreted as a title?  Underscores, too.\n4.  Update CSS, use add-on, make an output version to parse as text.\n5.  ABANDON: Markup enclosed Sage cells (non-top-level) to allow dropout, dropin.\n    Bad idea, breaks CSS begin/end across multiple cells\n6.  Remove empty strings, empty anything, with search/replace step on null constructions.\n7.  Maybe replace tabs (good for Sage code and/or JSON fidelity)?\n8.  Hyperlinks within a file work better if not prefixed with file name.\n    (General improvement, but not so important with knowls available.)\n-->\n\n\n<!-- ############### -->\n<!-- Text Processing -->\n<!-- ############### -->\n\n<!-- The general template for matching \"text()\" nodes will     -->\n<!-- apply this template (there is a hook there).  Verbatim    -->\n<!-- text should be manipulated in templates with              -->\n<!-- \"xsl:value-of\" and so not come through here.  Conversely, -->\n<!-- when \"xsl:apply-templates\" is applied, the template will  -->\n<!-- have effect.                                              -->\n<!--                                                           -->\n<!-- Our emphasis originally is on escaping characters that    -->\n<!-- Markdown has hijacked for special purposes.               -->\n\n<xsl:template name=\"text-processing\">\n    <xsl:param name=\"text\"/>\n\n    <!-- Backslash first, then clear to add more -->\n    <xsl:variable name=\"backslash-fixed\"  select=\"str:replace($text,            '\\',  '\\\\')\"/>\n    <xsl:variable name=\"lbrace-fixed\"     select=\"str:replace($backslash-fixed, '{',  '\\{')\"/>\n    <xsl:variable name=\"rbrace-fixed\"     select=\"str:replace($lbrace-fixed,    '}',  '\\}')\"/>\n    <xsl:variable name=\"hash-fixed\"       select=\"str:replace($rbrace-fixed,    '#',  '\\#')\"/>\n    <xsl:variable name=\"dollar-fixed\"     select=\"str:replace($hash-fixed,      '$',  '\\$')\"/>\n    <xsl:variable name=\"underscore-fixed\" select=\"str:replace($dollar-fixed,    '_',  '\\_')\"/>\n    <xsl:variable name=\"asterisk-fixed\"   select=\"str:replace($underscore-fixed,'*',  '\\*')\"/>\n    <xsl:variable name=\"backtick-fixed\"   select=\"str:replace($asterisk-fixed,  '`',  '\\`')\"/>\n\n    <!-- We disrupt accidental MathJax formulations in running text.  MathJax     -->\n    <!-- needs both begin *and* end markers, enclosed in a single HTML element,   -->\n    <!-- before it will start injecting itself onto the page.  We leave a begin   -->\n    <!-- marker alone, but disrupt an end marker with a superfluous minimal span. -->\n    <!-- This is advice from David Cervone, JMM Baltimore, 2019-01-18.            -->\n    <!-- Note: we serialize the necessary HTML by hand, and the brace and         -->\n    <!-- backslash used in matching the leading portion of a LaTeX environment    -->\n    <!-- were both escaped above.                                                 -->\n    <xsl:variable name=\"inline-fixed\"      select=\"str:replace($backtick-fixed, '\\)',      '&lt;span&gt;\\)&lt;/span&gt;' )\"/>\n    <xsl:variable name=\"environment-fixed\" select=\"str:replace($inline-fixed,   '\\\\end\\{', '&lt;span&gt;\\\\end\\{&lt;/span&gt;' )\"/>\n\n    <xsl:value-of select=\"$environment-fixed\"/>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Inline Verbatim -->\n<!-- ############### -->\n\n<!-- Jupyter does a very good (but incomplete) job with inline -->\n<!-- verbatim text, requiring little care by authors.  But a   -->\n<!-- few gotchas need adjustment.  So we override.             -->\n<xsl:template name=\"code-wrapper\">\n    <xsl:param name=\"content\"/>\n\n    <!-- Jupyter notebook is careful about XML special characters, -->\n    <!-- but if you want to write about the escaped versions, they -->\n    <!-- just get converted to the real thing.  So in these five   -->\n    <!-- very special situations we escape the leading ampersand   -->\n    <!-- and whatever conversion is happening is satiated.         -->\n    <xsl:variable name=\"escaped-ampersand-fixed\"    select=\"str:replace($content,                    '&amp;amp;',  '&amp;amp;amp;' )\"/>\n    <xsl:variable name=\"escaped-leftbracket-fixed\"  select=\"str:replace($escaped-ampersand-fixed,    '&amp;lt;',   '&amp;amp;lt;' )\"/>\n    <xsl:variable name=\"escaped-rightbracket-fixed\" select=\"str:replace($escaped-leftbracket-fixed,  '&amp;gt;',   '&amp;amp;gt;' )\"/>\n    <xsl:variable name=\"escaped-apostrophe-fixed\"   select=\"str:replace($escaped-rightbracket-fixed, '&amp;apos;', '&amp;amp;apos;' )\"/>\n    <xsl:variable name=\"escaped-quote-fixed\"        select=\"str:replace($escaped-apostrophe-fixed,   '&amp;quot;', '&amp;amp;quot;' )\"/>\n\n    <!-- If you want to write about elements (like in the Author's     -->\n    <!-- Guide!) then you cannot have elements/tags sitting unaltered  -->\n    <!-- in verbatim text, since they now look like interior HTML.     -->\n    <!-- So we disrupt the leading left-bracket with an escaped        -->\n    <!-- version and let that convert to the character.                -->\n    <xsl:variable name=\"leftbracket-fixed\" select=\"str:replace($escaped-quote-fixed, '&lt;', '&amp;lt;' )\"/>\n\n    <!-- We wrap verbatim inline text with an HTML \"code\" element. -->\n    <!-- We enclose with PreTeXt's HTML, serializing by hand.      -->\n    <xsl:text>&lt;code class=\"code-inline tex2jax_ignore\"&gt;</xsl:text>\n        <xsl:value-of select=\"$leftbracket-fixed\"/>\n    <xsl:text>&lt;/code&gt;</xsl:text>\n</xsl:template>\n\n<!-- #### -->\n<!-- URLs -->\n<!-- #### -->\n\n<!-- We encode some characters in href attributes, here   -->\n<!-- just for the Jupyter conversion, as an override of   -->\n<!-- part of the serialization.  This could instead be    -->\n<!-- sanitization of the \"url\"element, in the general     -->\n<!-- HTML conversion or here for just Jupyter.  So        -->\n<!-- eventually this could migrate to another location    -->\n<!-- in the pipeline.                                     -->\n<!--                                                      -->\n<!-- The problem seems to be characters, used in pairs,   -->\n<!-- to delimit text for Markdown or MathJax:  underscore -->\n<!-- is italics, asterisk is emphasis, and dollar signs   -->\n<!-- delimit math.  This is a hunch based on similar      -->\n<!-- experiences with inline verbatim text.  But here we  -->\n<!-- are fortunate to be able to encode the dollar sign.  -->\n<!-- NOTE: This was a hook into the old                   -->\n<!-- \"serialize\" templates. Now intercepts xml-to-string  -->\n<!-- but behavior with it is untested. Does it work?      -->\n<!-- is it still necessary???                             -->\n<!-- Tested: preserves old behavior, unclear if necessary -->\n<xsl:template match=\"@href\" mode=\"xml-to-string\">\n    <!-- sanitize value first -->\n    <xsl:variable name=\"text\">\n        <xsl:value-of select=\".\"/>\n    </xsl:variable>\n    <xsl:variable name=\"underscore-fixed\" select=\"str:replace($text,             '_',  '%5F')\"/>\n    <xsl:variable name=\"asterisk-fixed\"   select=\"str:replace($underscore-fixed, '*',  '%2A')\"/>\n    <xsl:variable name=\"dollar-fixed\"     select=\"str:replace($asterisk-fixed,   '$',  '%24')\"/>\n    <!-- construct new attribute, spacing, name, value -->\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"name()\"/>\n    <xsl:text>=\"</xsl:text>\n    <xsl:value-of select=\"$dollar-fixed\"/>\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<!-- ########################## -->\n<!-- Intermediate Pseudo-Markup -->\n<!-- ########################## -->\n\n<!-- A Jupyter notebook is a flat sequence of cells, of type either     -->\n<!-- \"markdown\" or \"code.\"  The content is primarily a list of strings. -->\n<!-- This presents two fundamental problems:                            -->\n<!--                                                                    -->\n<!--   1.  Lists of cells, or lists of strings, with  n  items          -->\n<!--       need exactly  n-1  commas.  It is hard to predict/find       -->\n<!--       the first or last element of a list.                         -->\n<!--                                                                    -->\n<!--   2.  Cells cannot be nested and content should not lie            -->\n<!--       outside of cells.                                            -->\n<!--                                                                    -->\n<!-- We use a sort of pseudo-markup.  Adjacency of items lets           -->\n<!-- us solve the comma problem.  We are also able to effectively       -->\n<!-- merge content into a cell, without knowing anything about          -->\n<!-- the following cell.                                                -->\n<!--                                                                    -->\n<!-- We pipeline a pseudo-markup as an intermediate text format.        -->\n<!--                                                                    -->\n<!-- Pseudo-markup language:                                            -->\n<!--                                                                    -->\n<!-- LB, RB: left and right brackets - should be UUIDs eventually       -->\n<!--                                                                    -->\n<!-- BS, ES: begin and end string                                       -->\n<!--                                                                    -->\n<!-- BM, EM, BC, EC: begin and end, markdown and code, cells            -->\n\n\n<!-- ####### -->\n<!-- Markers -->\n<!-- ####### -->\n\n<!-- This is pseudo-markup, starting with delimiters       -->\n<!-- analagous to < and > of XML.   Make these delimiters  -->\n<!-- exceedingly unique.  Comment out salt while debugging -->\n<!-- if it helps to see intermediate structure. Or leave   -->\n<!-- salt in, and grep final output for this \"bad\" string  -->\n<!-- that should not survive.                              -->\n\n<!-- Random-ish output from  mkpasswd  utility,           -->\n<!-- 2017-10-24 at AMS airport, Starbucks by faux gate D1 -->\n<xsl:variable name=\"salt\" select=\"'x9rNtyUydoz3o'\" />\n\n<xsl:variable name=\"LB\">\n    <xsl:text>[[[</xsl:text>\n    <xsl:value-of select=\"$salt\" />\n</xsl:variable>\n\n<xsl:variable name=\"RB\">\n    <xsl:value-of select=\"$salt\" />\n    <xsl:text>]]]</xsl:text>\n</xsl:variable>\n\n<!-- These are analagous to XML opening           -->\n<!-- (\"begin\", B) and closing (\"end\", E) elements -->\n\n<!-- Destined to be string -->\n<xsl:variable name=\"BS\">\n    <xsl:value-of select=\"$LB\" />\n    <xsl:text>BS</xsl:text>\n    <xsl:value-of select=\"$RB\" />\n</xsl:variable>\n<xsl:variable name=\"ES\">\n    <xsl:value-of select=\"$LB\" />\n    <xsl:text>ES</xsl:text>\n    <xsl:value-of select=\"$RB\" />\n</xsl:variable>\n\n<!-- Destined to be a Jupyter markdown cell in JSON output-->\n<xsl:variable name=\"BM\">\n    <xsl:value-of select=\"$LB\" />\n    <xsl:text>BM</xsl:text>\n    <xsl:value-of select=\"$RB\" />\n</xsl:variable>\n<xsl:variable name=\"EM\">\n    <xsl:value-of select=\"$LB\" />\n    <xsl:text>EM</xsl:text>\n    <xsl:value-of select=\"$RB\" />\n</xsl:variable>\n\n<!-- Destined to be a Jupyter code cell in JSON output-->\n<xsl:variable name=\"BC\">\n    <xsl:value-of select=\"$LB\" />\n    <xsl:text>BC</xsl:text>\n    <xsl:value-of select=\"$RB\" />\n</xsl:variable>\n<xsl:variable name=\"EC\">\n    <xsl:value-of select=\"$LB\" />\n    <xsl:text>EC</xsl:text>\n    <xsl:value-of select=\"$RB\" />\n</xsl:variable>\n\n<!-- These variables describe adjacent pseudo-markup -->\n<!-- that will be converted to JSON equivalents.     -->\n\n<xsl:variable name=\"ESBS\">\n    <xsl:value-of select=\"$ES\" />\n    <xsl:value-of select=\"$BS\" />\n</xsl:variable>\n\n<xsl:variable name=\"RBLB\">\n    <xsl:value-of select=\"$RB\" />\n    <xsl:value-of select=\"$LB\" />\n</xsl:variable>\n\n<!-- This is a convenience for the replacement that -->\n<!-- splits cells into lines within JSON file       -->\n<xsl:variable name=\"RBLB-comma\">\n    <xsl:value-of select=\"$RB\" />\n    <xsl:text>,&#xa;</xsl:text>\n    <xsl:value-of select=\"$LB\" />\n</xsl:variable>\n\n<!-- Convenience templates -->\n<!-- These are primary interface to our creation          -->\n<!-- of pseudo-markup above, but are not the whole        -->\n<!-- story since we convert markup based on the variables -->\n\n<xsl:template name=\"begin-string\">\n    <xsl:value-of select=\"$BS\" />\n</xsl:template>\n\n<xsl:template name=\"end-string\">\n    <xsl:value-of select=\"$ES\" />\n</xsl:template>\n\n<xsl:template name=\"begin-markdown-cell\">\n    <xsl:value-of select=\"$BM\" />\n</xsl:template>\n\n<xsl:template name=\"end-markdown-cell\">\n    <xsl:value-of select=\"$EM\" />\n</xsl:template>\n\n<xsl:template name=\"begin-code-cell\">\n    <xsl:value-of select=\"$BC\" />\n</xsl:template>\n\n<xsl:template name=\"end-code-cell\">\n    <xsl:value-of select=\"$EC\" />\n</xsl:template>\n\n\n<!-- ################# -->\n<!-- Cell Construction -->\n<!-- ################# -->\n\n<xsl:variable name=\"begin-markdown-wrap\">\n    <xsl:text>{\"cell_type\":\"markdown\", \"metadata\":{}, \"source\":[</xsl:text>\n</xsl:variable>\n\n<xsl:variable name=\"end-markdown-wrap\">\n    <xsl:text>]}</xsl:text>\n</xsl:variable>\n\n<xsl:variable name=\"begin-code-wrap\">\n    <xsl:text>{\"cell_type\":    \"code\", \"execution_count\":null, \"metadata\":{}, \"source\":[</xsl:text>\n</xsl:variable>\n\n<xsl:variable name=\"end-code-wrap\">\n    <xsl:text>], \"outputs\":[]}</xsl:text>\n</xsl:variable>\n\n<!-- A Jupyter markdown cell intended  -->\n<!-- to hold markdown or unstyled HTML -->\n<xsl:template name=\"markdown-cell\">\n    <xsl:param name=\"content\" />\n    <xsl:call-template name=\"begin-markdown-cell\" />\n    <xsl:value-of select=\"$content\" />\n    <xsl:call-template name=\"end-markdown-cell\" />\n</xsl:template>\n\n<!-- A Jupyter markdown cell intended -->\n<!-- to hold PreTeXt styled HTML      -->\n<!-- Serialization here is \"by hand\"  -->\n<xsl:template name=\"pretext-cell\">\n    <xsl:param name=\"content\" />\n    <xsl:call-template name=\"begin-markdown-cell\" />\n    <xsl:call-template name=\"begin-string\" />\n    <xsl:text>&lt;div class=\"mathbook-content\"&gt;</xsl:text>\n    <xsl:call-template name=\"end-string\" />\n    <xsl:value-of select=\"$content\" />\n    <xsl:call-template name=\"begin-string\" />\n    <xsl:text>&lt;/div&gt;</xsl:text>\n    <xsl:call-template name=\"end-string\" />\n    <xsl:call-template name=\"end-markdown-cell\" />\n</xsl:template>\n\n<!-- A Jupyter code cell intended -->\n<!-- to hold raw text/code        -->\n<xsl:template name=\"code-cell\">\n    <xsl:param name=\"content\" />\n    <xsl:call-template name=\"begin-code-cell\" />\n    <xsl:value-of select=\"$content\" />\n    <xsl:call-template name=\"end-code-cell\" />\n</xsl:template>\n\n<!-- We don't want any permalinks -->\n<xsl:template match=\"*\" mode=\"permalink\"/>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-latex-classic.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n\n<!-- WARNING: this is an experimental conversion for LaTeX -->\n<!-- Use `pretext-latex.xsl` for the standard conversion.  -->\n\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"./entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- We override specific templates of the common conversion   -->\n\n<xsl:import href=\"./pretext-latex-common.xsl\" />\n\n<!-- Note (2025-01-29): This is the start of a new \"classic\"    -->\n<!-- latex conversion that can be used to create journal-ready  -->\n<!-- latex documents. It is still a work in progress, although  -->\n<!-- it does now produce a working amsart latex file.           -->\n\n\n<xsl:template match=\"/\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">You are using (a version of) the pretext-latex-classic conversion, which is still experimental and under development.</xsl:with-param>\n      </xsl:call-template>\n  <xsl:apply-imports />\n</xsl:template>\n\n<!-- Currently there are no changes for a book (or letter or memo), so we note this and exit -->\n<xsl:template match=\"book|letter|memo\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">You have selected a latex style designed for articles, but are not building an article.  The resulting output will be identical to that of not specifying any latex style.</xsl:with-param>\n      </xsl:call-template>\n</xsl:template>\n\n<!-- Do not support exercises or reading questions or solutions -->\n<xsl:template match=\"exercises|reading-questions|solutions\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Exercises divisions are not yet supported in latex-classic conversions.  No content of such a division will be included in your output, and xref's to such divisions will be broken.</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Do not support glossary yet -->\n<xsl:template match=\"glossary\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Glossary divisions are not yet supported in latex-classic conversions.  No content of such a division will be included in your output, and xref's to such divisions will be broken.</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"section//references\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">References (bibliography) for individual sections are not yet supported in latex-classic conversions.  No content of such a division will be included in your output, and xref's to such divisions will be broken. You can still have a bibliography at the end of your article.</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"worksheet\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Worksheets are not yet supported in latex-classic conversions.  No content of such a division will be included in your output, and xref's to such divisions will be broken.</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"handout\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Handouts are not yet supported in latex-classic conversions.  No content of such a division will be included in your output, and xref's to such divisions will be broken.</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Defaults that can be overriden by style files -->\n<xsl:variable name=\"documentclass\" select=\"'article'\"/>\n<xsl:variable name=\"bibliographystyle\" select=\"'amsplain'\"/>\n\n<!-- An article, LaTeX structure -->\n<!--     One page, full of sections (with abstract, references)                    -->\n<!--     Or, one page, totally unstructured, just lots of paragraphs, widgets, etc -->\n<xsl:template match=\"article\">\n    <xsl:call-template name=\"converter-blurb-latex\"/>\n    <xsl:call-template name=\"snapshot-package-info\"/>\n    <xsl:text>\\documentclass[</xsl:text>\n    <xsl:call-template name=\"sidedness\"/>\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$font-size\"/>\n    <xsl:text>,</xsl:text>\n    <xsl:if test=\"$b-latex-draft-mode\" >\n        <xsl:text>draft,</xsl:text>\n    </xsl:if>\n    <xsl:text>]{</xsl:text>\n    <xsl:value-of select=\"$documentclass\" />\n    <xsl:text>}&#xa;</xsl:text>\n\n    <xsl:call-template name=\"latex-preamble\" />\n\n    <xsl:call-template name=\"bibinfo-pre-begin-document\" />\n    <xsl:text>\\begin{document}&#xa;</xsl:text>\n    <xsl:call-template name=\"bibinfo-post-begin-document\" />\n\n    <xsl:apply-templates select=\"*\"/>\n\n    <xsl:text>\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template name=\"latex-preamble\">\n    <!-- Some journal styles require specific packages be loaded right away -->\n    <xsl:call-template name=\"journal-packages\"/>\n    <xsl:call-template name=\"frontmatter-helpers\"/>\n    <xsl:call-template name=\"preamble-early\"/>\n    <xsl:call-template name=\"cleardoublepage\"/>\n    <xsl:call-template name=\"standard-packages\"/>\n    <xsl:call-template name=\"latex-theorem-environments\"/>\n    <xsl:call-template name=\"tcolorbox-init\"/>\n    <xsl:call-template name=\"numberless-environments\"/>\n    <xsl:call-template name=\"page-setup\"/>\n    <xsl:call-template name=\"latex-engine-support\"/>\n    <xsl:call-template name=\"font-support\"/>\n    <xsl:call-template name=\"math-packages\"/>\n    <xsl:call-template name=\"text-symbols\"/>\n    <xsl:call-template name=\"pdfpages-package\"/>\n    <!--<xsl:call-template name=\"division-titles\"/>-->\n    <xsl:call-template name=\"semantic-macros\"/>\n    <xsl:call-template name=\"exercises-and-solutions\"/>\n    <xsl:call-template name=\"chapter-start-number\"/>\n    <xsl:call-template name=\"equation-numbering\"/>\n    <xsl:call-template name=\"image-tcolorbox\"/>\n    <xsl:call-template name=\"tables\"/>\n    <!--<xsl:call-template name=\"footnote-numbering\"/>  -->\n    <xsl:call-template name=\"font-awesome\"/>\n    <xsl:call-template name=\"poetry-support\"/>\n    <xsl:call-template name=\"music-support\"/>\n    <xsl:call-template name=\"code-support\"/>\n    <xsl:call-template name=\"list-layout\"/>\n    <xsl:call-template name=\"load-configure-hyperref\"/>\n    <xsl:call-template name=\"create-numbered-tcolorbox\"/>\n    <xsl:call-template name=\"watermark\"/>\n    <xsl:call-template name=\"showkeys\"/>\n    <xsl:call-template name=\"latex-image-support\"/>\n    <xsl:call-template name=\"sidebyside-environment\"/>\n    <xsl:call-template name=\"kbd-keys\"/>\n    <xsl:call-template name=\"late-preamble-adjustments\"/>\n</xsl:template>\n\n<!-- No journal-packages by default; can be overridden by importing xsl -->\n<xsl:template name=\"journal-packages\"/>\n\n<!-- paragraph and page setup -->\n<!-- TODO: Clean this up with just what -classic needs. -->\n<xsl:template name=\"page-setup\">\n    <!-- This should save-off the indentation used for the first line of  -->\n    <!-- a paragraph, in effect for the chosen document class.  Then the  -->\n    <!-- \"parbox\" used by \"tcolorbox\" can restore indentation rather than -->\n    <!-- run with none.  Part of                                          -->\n    <!-- https://tex.stackexchange.com/questions/250165/                  -->\n    <!-- normal-body-text-within-tcolorbox                                -->\n    <!-- In a similar fashion we save/restore the parskip, only should    -->\n    <!-- an ambitious publisher try to set it globally                    -->\n    <xsl:text>%% Save default paragraph indentation and parskip for use later, when adjusting parboxes&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\ptxnormalparindent}&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\ptxnormalparskip}&#xa;</xsl:text>\n    <xsl:text>\\AtBeginDocument{\\setlength{\\ptxnormalparindent}{\\parindent}}&#xa;</xsl:text>\n    <xsl:text>\\AtBeginDocument{\\setlength{\\ptxnormalparskip}{\\parskip}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\setparstyle}{\\setlength{\\parindent}{\\ptxnormalparindent}\\setlength{\\parskip}{\\ptxnormalparskip}}</xsl:text>\n\n    <!-- could condition on \"subfigure-reps\" -->\n    <xsl:if test=\"$b-has-sidebyside\">\n        <xsl:text>%% shorter subnumbers in some side-by-side require manipulations&#xa;</xsl:text>\n        <xsl:text>\\usepackage{xstring}&#xa;</xsl:text>\n    </xsl:if>\n    <!--<xsl:if test=\"$document-root//fn|$document-root//part\">\n        <xsl:text>%% Footnote counters and part/chapter counters are manipulated&#xa;</xsl:text>\n        <xsl:text>%% April 2018:  chngcntr  commands now integrated into the kernel,&#xa;</xsl:text>\n        <xsl:text>%% but circa 2018/2019 the package would still try to redefine them,&#xa;</xsl:text>\n        <xsl:text>%% so we need to do the work of loading conditionally for old kernels.&#xa;</xsl:text>\n        <xsl:text>%% From version 1.1a,  chngcntr  should detect defintions made by LaTeX kernel.&#xa;</xsl:text>\n        <xsl:text>\\ifdefined\\counterwithin&#xa;</xsl:text>\n        <xsl:text>\\else&#xa;</xsl:text>\n        <xsl:text>    \\usepackage{chngcntr}&#xa;</xsl:text>\n        <xsl:text>\\fi&#xa;</xsl:text>-->\n        <!-- implies book/part -->\n        <!--<xsl:if test=\"$parts = 'structural'\">\n            <xsl:text>%% Structural chapter numbers reset within parts&#xa;</xsl:text>\n            <xsl:text>%% Starred form will not prefix part number&#xa;</xsl:text>\n            <xsl:text>\\counterwithin*{chapter}{part}&#xa;</xsl:text>\n        </xsl:if>-->\n    <!--</xsl:if>-->\n    <!-- Determine height of text block, assumes US letterpaper (11in height) -->\n    <!-- Could react to document type, paper, margin specs                    -->\n    <!--<xsl:variable name=\"text-height\">\n        <xsl:text>9.0in</xsl:text>\n    </xsl:variable>-->\n    <!-- Bringhurst: 30x => 66 chars, so 34x => 75 chars -->\n    <!--<xsl:variable name=\"text-width\">\n        <xsl:value-of select=\"34 * substring-before($font-size, 'pt')\" />\n        <xsl:text>pt</xsl:text>\n    </xsl:variable>-->\n    <!--<xsl:text>%% Text height identically 9 inches, text width varies on point size&#xa;</xsl:text>\n    <xsl:text>%% See Bringhurst 2.1.1 on measure for recommendations&#xa;</xsl:text>\n    <xsl:text>%% 75 characters per line (count spaces, punctuation) is target&#xa;</xsl:text>\n    <xsl:text>%% which is the upper limit of Bringhurst's recommendations&#xa;</xsl:text>\n    <xsl:text>\\geometry{letterpaper,total={</xsl:text>\n    <xsl:value-of select=\"$text-width\" />\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$text-height\" />\n    <xsl:text>}}&#xa;</xsl:text>-->\n    <xsl:text>%% Custom Page Layout Adjustments (use publisher page-geometry entry)&#xa;</xsl:text>\n    <xsl:if test=\"$latex-page-geometry != ''\">\n        <xsl:text>\\geometry{</xsl:text>\n        <xsl:value-of select=\"$latex-page-geometry\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Crop marks, as independent of author tools           -->\n    <!-- Always *after* geometry package, no driver selected, -->\n    <!-- since it should auto-detect.  Tested with xelatex.   -->\n    <!-- crop  package suggests explicitly turning off driver -->\n    <!-- options for the geometery package.  We don't.        -->\n    <xsl:if test=\"$b-latex-crop-marks\">\n        <xsl:text>\\usepackage[</xsl:text>\n        <xsl:value-of select=\"$latex-crop-papersize\"/>\n        <xsl:text>,cam,center]{crop}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$latex-right-alignment = 'ragged'\">\n        <xsl:text>%% better handing of text alignment&#xa;</xsl:text>\n        <xsl:text>\\usepackage{ragged2e}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- By default, no bibinfo is included before the \\begin{document}.     -->\n<!-- Other latex styles can override this to put some information there. -->\n<xsl:template name=\"bibinfo-pre-begin-document\">\n    <xsl:apply-templates select=\"$document-root\" mode=\"article-title\"/>\n    <!--<xsl:apply-templates select=\"$bibinfo/support\" mode=\"article-frontmatter\"/>-->\n    <xsl:call-template name=\"article-authors\"/>\n    <xsl:apply-templates select=\"$bibinfo/date\" mode=\"article-frontmatter\"/>\n</xsl:template>\n\n\n<!-- By default, all bibinfo goes inside (after) \\begin{document}.             -->\n<!-- Other latex styles can override this in combination with the pre-version. -->\n<!-- Order of bibinfo elements after \\begin{document} -->\n<xsl:template name=\"bibinfo-post-begin-document\">\n    <xsl:text>\\maketitle&#xa;</xsl:text>\n    <xsl:apply-templates select=\"$document-root/frontmatter/abstract\" mode=\"article-frontmatter\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"article-title\">\n    <xsl:text>%% Title page information for article&#xa;</xsl:text>\n    <xsl:text>\\title{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:apply-templates select=\"$bibinfo/support\" mode=\"article-frontmatter\"/>\n    <xsl:if test=\"subtitle\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <!-- Trying to match author fontsize -->\n        <xsl:text>{\\small </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"subtitle\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- For now, this just wraps the common article-info for author in an \\author{...} tag -->\n<xsl:template name=\"article-authors\">\n    <xsl:text>\\author{</xsl:text>\n    <xsl:apply-templates select=\"$bibinfo/author\" mode=\"article-frontmatter\"/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"author\" mode=\"article-frontmatter\">\n    <xsl:apply-templates select=\"personname\" />\n    <xsl:if test=\"support\">\n        <xsl:text>\\thanks{</xsl:text>\n        <xsl:apply-templates select=\"support\" />\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"affiliation\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"affiliation\" />\n    </xsl:if>\n    <xsl:if test=\"email\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"email\" mode=\"article-info\"/>\n    </xsl:if>\n    <xsl:if test=\"following-sibling::author\" >\n        <xsl:text>&#xa;\\and</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- Preprocessor always puts Department, Institution, and Address          -->\n<!-- inside Affiliation. This just adds line breaks between them as needed. -->\n<xsl:template match=\"affiliation\">\n    <xsl:param name=\"sep\" select=\"'\\\\&#xa;'\"/>\n    <xsl:param name=\"after\"/>\n    <xsl:if test=\"department\">\n        <xsl:apply-templates select=\"department\">\n            <xsl:with-param name=\"sep\" select=\"$sep\"/>\n        </xsl:apply-templates>\n        <xsl:if test=\"department/following-sibling::*\">\n            <xsl:value-of select=\"$sep\"/>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"institution\">\n        <xsl:apply-templates select=\"institution\">\n            <xsl:with-param name=\"sep\" select=\"$sep\"/>\n        </xsl:apply-templates>\n        <xsl:if test=\"institution/following-sibling::*\">\n            <xsl:value-of select=\"$sep\"/>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"location\">\n        <xsl:apply-templates select=\"location\">\n            <xsl:with-param name=\"sep\" select=\"$sep\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n    <!-- always end with a new line, after the `after` param if passed -->\n    <xsl:value-of select=\"$after\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- override the default department[line] etc and line templates to use sep param -->\n<xsl:template match=\"department[line]|institution[line]|location[line]\">\n    <xsl:param name=\"sep\" select=\"'\\\\&#xa;'\"/>\n    <xsl:apply-templates select=\"line\">\n        <xsl:with-param name=\"sep\" select=\"$sep\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"line\">\n    <xsl:param name=\"sep\" select=\"'\\\\&#xa;'\"/>\n    <xsl:apply-templates/>\n    <xsl:if test=\"following-sibling::line\">\n        <xsl:value-of select=\"$sep\"/>\n    </xsl:if>\n</xsl:template>\n\n\n<xsl:template match=\"bibinfo/date\" mode=\"article-frontmatter\">\n    <xsl:text>\\date{</xsl:text>\n    <xsl:apply-templates select=\".\"/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"bibinfo/support\" mode=\"article-frontmatter\">\n    <xsl:text>\\support{</xsl:text>\n    <xsl:apply-templates select=\"$bibinfo/support\" mode=\"article-info\"/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"frontmatter/abstract\" mode=\"article-frontmatter\">\n    <xsl:text>\\begin{abstract}&#xa;</xsl:text>\n        <xsl:apply-templates select=\"*\"/>\n        <xsl:apply-templates select=\"$bibinfo/keywords\"/>\n    <xsl:text>\\end{abstract}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"email\" mode=\"article-info\">\n    <xsl:value-of select=\".\" />\n</xsl:template>\n\n<!-- Since the bibinfo-post-begin-document takes care of all frontmatter, we kill the frontmatter as a separate thing here -->\n<xsl:template match=\"article/frontmatter\"/>\n\n\n<!-- latex-common includes a title-page-info-article template, but latex-classic -->\n<!-- does not use this.  So we warn in case we forget and call it by mistake.    -->\n<xsl:template name=\"title-page-info-article\">\n    <xsl:message>PTX:BUG:     latex-classic based templates do not use title-page-info-article template.</xsl:message>\n</xsl:template>\n\n\n<!-- Theorems, Proofs, Definitions, Examples, Exercises -->\n\n<!-- Theorems have statement/proof structure                    -->\n<!-- Definitions have notation, which is handled elsewhere      -->\n<!-- Examples have no structure, or have statement and solution -->\n<!-- Exercises have hints, answers and solutions                -->\n\n<!-- For preamble -->\n<xsl:template name=\"latex-theorem-environments\">\n    <xsl:text>%% Theorem-like environments&#xa;</xsl:text>\n    <xsl:text>%&#xa;% amsthm package: redundant if using amsart documentclass, but required otherwise.&#xa;</xsl:text>\n    <xsl:text>\\usepackage{amsthm}%&#xa;%&#xa;</xsl:text>\n    <xsl:text>\\theoremstyle{plain}&#xa;</xsl:text>\n    <!-- We need a counter, and want it to be \"theorem\" to agree with some journal styles -->\n    <!-- So if the document contains theorem's, we can create it.  Otherwise we don't care-->\n    <!-- what it is called, so we can still use this and it will just have a blank name.  -->\n    <xsl:text>\\newtheorem{theorem}{</xsl:text>\n    <xsl:apply-templates select=\"($document-root//theorem)[1]\" mode=\"type-name\"/>\n    <xsl:text>}[section]&#xa;</xsl:text>\n    <!-- Now continue with the remaining elements, checking to see if they are present -->\n    <xsl:variable name=\"theoremstyle-plain\" select=\"\n        ($document-root//lemma)[1]|\n        ($document-root//proposition)[1]|\n        ($document-root//corollary)[1]|\n        ($document-root//claim)[1]|\n        ($document-root//fact)[1]|\n        ($document-root//identity)[1]|\n        ($document-root//conjecture)[1]\n    \"/>\n    <xsl:for-each select=\"$theoremstyle-plain\">\n        <xsl:apply-templates select=\".\" mode=\"newtheorem\"/>\n    </xsl:for-each>\n    <xsl:text>&#xa;</xsl:text>\n\n    <xsl:text>\\theoremstyle{definition}&#xa;</xsl:text>\n    <xsl:variable name=\"theoremstyle-definition\" select=\"\n        ($document-root//definition)[1]|\n        ($document-root//axiom)[1]|\n        ($document-root//principle)[1]|\n        ($document-root//heuristic)[1]|\n        ($document-root//hypothesis)[1]|\n        ($document-root//assumption)[1]|\n        ($document-root//openproblem)[1]|\n        ($document-root//openquestion)[1]|\n        ($document-root//algorithm)[1]|\n        ($document-root//question)[1]|\n        ($document-root//activity)[1]|\n        ($document-root//exercise)[1]|\n        ($document-root//inlineexercise)[1]|\n        ($document-root//investigation)[1]|\n        ($document-root//exploration)[1]|\n        ($document-root//problem)[1]|\n        ($document-root//example)[1]|\n        ($document-root//project)[1]\n    \"/>\n    <xsl:for-each select=\"$theoremstyle-definition\">\n        <xsl:apply-templates select=\".\" mode=\"newtheorem\"/>\n    </xsl:for-each>\n    <xsl:text>&#xa;</xsl:text>\n\n    <xsl:text>\\theoremstyle{remark}&#xa;</xsl:text>\n        <xsl:variable name=\"theoremstyle-remark\" select=\"\n        ($document-root//convention)[1]|\n        ($document-root//warning)[1]|\n        ($document-root//remark)[1]|\n        ($document-root//insight)[1]|\n        ($document-root//note)[1]|\n        ($document-root//observation)[1]|\n        ($document-root//computation)[1]|\n        ($document-root//technology)[1]|\n        ($document-root//data)[1]\n    \"/>\n    <xsl:for-each select=\"$theoremstyle-remark\">\n        <xsl:apply-templates select=\".\" mode=\"newtheorem\"/>\n    </xsl:for-each>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"newtheorem\">\n        <xsl:text>\\newtheorem{</xsl:text>\n        <xsl:choose>\n            <!-- One exception for inline exercises -->\n            <xsl:when test=\"local-name(.) = 'exercise'\">\n                <xsl:text>inlineexercise</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"local-name(.)\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>}[theorem]{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Preamble assemblage environment -->\n\n<xsl:template name=\"numberless-environments\">\n    <!-- Assemblages -->\n    <xsl:if test=\"$document-root//assemblage\">\n        <xsl:apply-templates select=\"($document-root//assemblage)[1]\" mode=\"environment\"/>\n    </xsl:if>\n    <!-- ASIDE-LIKE -->\n    <xsl:variable name=\"aside-reps\" select=\"\n        ($document-root//aside)[1]|\n        ($document-root//historical)[1]|\n        ($document-root//biographical)[1]\"/>\n    <xsl:if test=\"$aside-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for ASIDE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$aside-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- We need to redefine these to be more like regular environments -->\n<xsl:template match=\"assemblage|&ASIDE-LIKE;\" mode=\"environment\">\n    <!-- Names of various pieces use the element name -->\n    <xsl:variable name=\"environment-name\">\n        <xsl:value-of select=\"local-name(.)\"/>\n    </xsl:variable>\n    <xsl:text>%% </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>: fairly simple un-numbered block/structure&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\"/>\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}[1][]{title={#1}, </xsl:text>\n    <xsl:text>breakable, before upper app={\\setparstyle}, </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- In document -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;|&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&ASIDE-LIKE;|exercise[boolean(&INLINE-EXERCISE-FILTER;)]|assemblage\" mode=\"block-options\">\n    <xsl:apply-templates select=\".\" mode=\"env-title\"/>\n    <xsl:text>\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n\n\n<!-- Proofs and cases are handled using amsthm; anything other than a proof gets a title or the name of the proof-like env. -->\n<xsl:template match=\"&PROOF-LIKE;\">\n    <xsl:text>\\begin{proof}</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"title\">\n            <xsl:text>[</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-simple\"/>\n            <xsl:text>]</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"local-name(.)!='proof'\">\n            <xsl:text>[</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n            <xsl:text>]</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{proof}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Cases in proofs -->\n<xsl:template match=\"case\">\n    <xsl:text>\\par\\medskip%&#xa;</xsl:text>\n    <xsl:text>\\noindent{}</xsl:text>\n    <xsl:if test=\"@direction\">\n        <xsl:apply-templates select=\".\" mode=\"case-direction\"/>\n        <xsl:text> </xsl:text>\n    </xsl:if>\n    <xsl:if test=\"title\">\n        <xsl:text>\\textit{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"not(title) and not(@direction)\">\n        <xsl:text>\\textit{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <!-- label -->\n    <xsl:text>\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;|&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"env-title\"> \n    <xsl:if test=\"title|creator\">\n        <xsl:text>[</xsl:text>\n        <xsl:if test=\"title\">\n            <!-- Title, but without punctuation.  Or is there a smarter way? -->\n            <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n        </xsl:if>\n        <xsl:if test=\"(title) and (creator)\">\n            <xsl:text>&#160;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"creator\">\n            <xsl:apply-templates select=\".\" mode=\"creator-full\"/>\n        </xsl:if>\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"&ASIDE-LIKE;|assemblage\" mode=\"env-title\">\n    <xsl:if test=\"title\">\n        <xsl:text>[</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Divisions -->\n\n<xsl:template match=\"section|subsection|subsubsection|appendix\">\n    <xsl:apply-templates select=\".\" mode=\"console-typeout\"/>\n    <xsl:text>\\</xsl:text>\n    <xsl:value-of select=\"local-name(.)\"/>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>% end of </xsl:text>\n    <xsl:value-of select=\"local-name(.)\"/>\n    <xsl:text>: </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"subsubsubsection\">\n    <xsl:apply-templates select=\".\" mode=\"console-typeout\"/>\n    <xsl:text>\\paragraph</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>% end of subsubsubsection: </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Paragraphs -->\n<!-- Use *-version of section/subsection/subsubsection/etc at a level one below parent -->\n<xsl:template match=\"paragraphs\">\n    <xsl:choose>\n        <xsl:when test=\"parent::article\">\n            <xsl:text>\\section*{</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::section\">\n            <xsl:text>\\subsection*{</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::subsection\">\n            <xsl:text>\\subsubsection*{</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::subsubsection\">\n            <xsl:text>\\paragraph*{</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\subparagraph*{</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>% end of paragraphs&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Introductions and Conclusions -->\n<!-- Introductions and conclusions are just their contents at their position. -->\n<xsl:template match=\"article/introduction|chapter/introduction|section/introduction|subsection/introduction|appendix/introduction|exercises/introduction|solutions/introduction|worksheet/introduction|reading-questions/introduction|references/introduction\">\n    <xsl:text>% Introduction&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>% end of introduction&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"article/conclusion|chapter/conclusion|section/conclusion|subsection/conclusion|appendix/conclusion|exercises/conclusion|solutions/conclusion|worksheet/conclusion|reading-questions/conclusion|references/conclusion\">\n    <xsl:text>% Conclusion&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>% end of conclusion&#xa;</xsl:text>\n</xsl:template>\n\n\n\n<!-- ################### -->\n<!-- References Sections -->\n<!-- ################### -->\n<!-- TODO: The following will certainly change when the bibliography work is completed -->\n\n<xsl:template match=\"references\">\n    <xsl:apply-templates select=\".\" mode=\"console-typeout\"/>\n    <xsl:text>\\bibliographystyle{</xsl:text>\n    <xsl:value-of select=\"$bibliographystyle\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\begin{thebibliography}{99}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{thebibliography}&#xa;</xsl:text>\n</xsl:template>\n\n\n<xsl:template match=\"biblio[@type='raw'] | biblio[@type='bibtex']\">\n    <xsl:text>\\bibitem</xsl:text>\n    <!-- \"label\" (e.g. Jud99), or by default serial number -->\n    <!-- LaTeX's bibitem will provide the visual brackets  -->\n    <xsl:text>[</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n    <xsl:text>]</xsl:text>\n    <!-- \"key\" for cross-referencing -->\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n    <xsl:apply-templates/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- A much smaller version from common: -->\n<!-- TODO: Refactor this to give only what we need. -->\n<xsl:template name=\"create-numbered-tcolorbox\">\n    <!-- ################## -->\n    <!-- Division Numbering -->\n    <!-- ################## -->\n    <xsl:text>%% Division Numbering: Chapters, Sections, Subsections, etc&#xa;</xsl:text>\n    <xsl:text>%% Division numbers may be turned off at some level (\"depth\")&#xa;</xsl:text>\n    <xsl:text>%% A section *always* has depth 1, contrary to us counting from the document root&#xa;</xsl:text>\n    <xsl:text>%% The latex default is 3.  If a larger number is present here, then&#xa;</xsl:text>\n    <xsl:text>%% removing this command may make some cross-references ambiguous&#xa;</xsl:text>\n    <xsl:text>%% The precursor variable $numbering-maxlevel is checked for consistency in the common XSL file&#xa;</xsl:text>\n    <xsl:text>\\setcounter{secnumdepth}{</xsl:text>\n        <xsl:value-of select=\"$latex-numbering-maxlevel\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n\n    <!--  -->\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% A faux tcolorbox whose only purpose is to provide common numbering&#xa;</xsl:text>\n    <xsl:text>%% facilities for most blocks (possibly not projects, 2D displays)&#xa;</xsl:text>\n    <xsl:text>%% Controlled by  numbering.theorems.level  processing parameter&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n    <!-- control the levels of the numbering -->\n    <!-- global (no periods) is the default  -->\n    <xsl:if test=\"not($numbering-blocks = 0)\">\n        <xsl:text>, number within=</xsl:text>\n        <xsl:call-template name=\"level-to-name\">\n            <xsl:with-param name=\"level\" select=\"$numbering-blocks\" />\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:text>]{block}{}&#xa;</xsl:text>\n    <!-- should condition on $project-reps, but it is not defined yet -->\n    <xsl:if test=\"$b-number-project-distinct\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% This document is set to number PROJECT-LIKE on a separate numbering scheme&#xa;</xsl:text>\n        <xsl:text>%% So, a faux tcolorbox whose only purpose is to provide this numbering&#xa;</xsl:text>\n        <xsl:text>%% Controlled by  numbering.projects.level  processing parameter&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n        <!-- control the levels of the numbering -->\n        <!-- global (no periods) is the default  -->\n        <xsl:if test=\"not($numbering-projects = 0)\">\n            <xsl:text>, number within=</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-projects\" />\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:text>]{project-distinct}{}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$b-number-exercise-distinct\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% This document is set to number inline exercises on a separate numbering scheme&#xa;</xsl:text>\n        <xsl:text>%% So, a faux tcolorbox whose only purpose is to provide this numbering&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n        <!-- control the levels of the numbering -->\n        <!-- global (no periods) is the default  -->\n        <xsl:if test=\"not($numbering-exercises = 0)\">\n            <xsl:text>, number within=</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-exercises\" />\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:text>]{exercise-distinct}{}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$b-number-figure-distinct\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% This document is set to number figure, table, list, listing on a separate numbering scheme&#xa;</xsl:text>\n        <xsl:text>%% So, a faux tcolorbox whose only purpose is to provide this numbering&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n        <!-- control the levels of the numbering -->\n        <!-- global (no periods) is the default  -->\n        <xsl:if test=\"not($numbering-figures = 0)\">\n            <xsl:text>, number within=</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-figures\" />\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:text>]{figure-distinct}{}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- TODO: condition of figure/*/figure-like, or $subfigure-reps -->\n    <xsl:text>%% A faux tcolorbox whose only purpose is to provide common numbering&#xa;</xsl:text>\n    <xsl:text>%% facilities for 2D displays which are subnumbered as part of a \"sidebyside\"&#xa;</xsl:text>\n    <!-- faux subdisplay requires manipulating low-level counters -->\n    <!-- TODO: condition on presence of (plain) 2-D displays to limit use? -->\n    <xsl:text>\\makeatletter&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n    <!-- control the levels of the numbering -->\n    <!-- global (no periods) is the default  -->\n    <xsl:text>, number within=</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$b-number-figure-distinct\">\n            <xsl:text>tcb@cnt@figure-distinct</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>tcb@cnt@block</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>, number freestyle={\\noexpand\\thetcb@cnt@block(\\noexpand\\alph{\\tcbcounter})}</xsl:text>\n    <xsl:text>]{subdisplay}{}&#xa;</xsl:text>\n    <!-- faux subdisplay requires manipulating low-level counters -->\n    <xsl:text>\\makeatother&#xa;</xsl:text>\n   <!-- Groups of environments/blocks -->\n\n    <!-- GOAL-LIKE -->\n    <xsl:variable name=\"goal-reps\" select=\"\n        ($document-root//objectives)[1]|\n        ($document-root//outcomes)[1]\"/>\n    <xsl:if test=\"$goal-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for GOAL-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$goal-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n\n    <!-- FIGURE-LIKE -->\n    <!-- FIGURE-LIKE come in three flavors: blocks (not in a side-by-side),  -->\n    <!-- panels (in a side-by-side, but not in an overall \"figure\"), or      -->\n    <!-- subnumbered (panel of a side-by-side, which is then in an overall   -->\n    <!-- \"figure').  Selections must be careful (not like dropping through   -->\n    <!-- a choose/when).  Environments need to consider title/caption        -->\n    <!-- placement and counters.  So we might create twelve different        -->\n    <!-- environments here.  In -common, see the \"figure-placement\" template -->\n    <!-- for another determination, and a more careful explanation.          -->\n    <!-- (There was once a subtle bug when we were not so careful here.)     -->\n    <xsl:variable name=\"figure-reps\" select=\"\n        ($document-root//figure[not(parent::sidebyside)])[1]|\n        ($document-root//table[not(parent::sidebyside)])[1]|\n        ($document-root//listing[not(parent::sidebyside)])[1]|\n        ($document-root//list[not(parent::sidebyside)])[1]\"/>\n    <xsl:if test=\"$figure-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for FIGURE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$figure-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- (PANEL)FIGURE-LIKE -->\n    <!-- sidebyside panel versions, if not contained by overall figure -->\n    <xsl:variable name=\"panel-reps\" select=\"\n        ($document-root//sidebyside/figure[not(ancestor::figure)])[1]|\n        ($document-root//sidebyside/table[not(ancestor::figure)])[1]|\n        ($document-root//sidebyside/listing[not(ancestor::figure)])[1]|\n        ($document-root//sidebyside/list[not(ancestor::figure)])[1]\"/>\n    <xsl:if test=\"$panel-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for (PANEL)FIGURE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$panel-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- (SUB)FIGURE-LIKE -->\n    <!-- subnumbered versions, if contained by overall figure -->\n    <xsl:variable name=\"subnumber-reps\" select=\"\n        ($document-root//figure/sidebyside/figure|$document-root//figure/sbsgroup/sidebyside/figure)[1]|\n        ($document-root//figure/sidebyside/table|$document-root//figure/sbsgroup/sidebyside/table)[1]|\n        ($document-root//figure/sidebyside/listing|$document-root//figure/sbsgroup/sidebyside/listing)[1]|\n        ($document-root//figure/sidebyside/list|$document-root//figure/sbsgroup/sidebyside/list)[1]\"/>\n    <xsl:if test=\"$subnumber-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for (SUB)FIGURE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$subnumber-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n\n    <!-- MISCELLANEOUS -->\n    <!-- \"paragraphs\" are partly like a division, -->\n    <!-- but we include it here as a one-off      -->\n    <xsl:variable name=\"miscellaneous-reps\" select=\"\n        ($document-root//gi)[1]|\n        ($document-root//backmatter/colophon)[1]\"/>\n    <xsl:if test=\"$miscellaneous-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for miscellaneous environments&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$miscellaneous-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n</xsl:template>\n\n\n<!-- Preamble template for elements needed to produce the frontmatter -->\n<xsl:template name=\"frontmatter-helpers\">\n    <!-- If there is a <support> tag in an article, create a unnumbered footnote environment for it -->\n    <!-- NB: this is also part of the footnote-numbering named template (as of 2025-02-24), but we don't call that for -classic -->\n    <xsl:if test=\"$b-is-article and $bibinfo/support\">\n        <xsl:text>%% add a \\support command as unnumbered footnote&#xa;</xsl:text>\n        <xsl:text>\\let\\svdthefootnote\\thefootnote%&#xa;</xsl:text>\n        <xsl:text>\\newcommand\\support[1]{%&#xa;</xsl:text>\n        <xsl:text>  \\let\\thefootnote\\relax%&#xa;</xsl:text>\n        <xsl:text>  \\footnotetext{#1}%&#xa;</xsl:text>\n        <xsl:text>  \\let\\thefootnote\\svdthefootnote%&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-latex-common.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:pf=\"https://prefigure.org\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Intend output for rendering by pdflatex -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Parameters to pass via xsltproc \"stringparam\" on command-line            -->\n<!-- Or make a thin customization layer and use 'select' to provide overrides -->\n<!--  -->\n<!--  -->\n<!-- Author's Tools                                            -->\n<!-- Set the author-tools parameter to 'yes'                   -->\n<!-- (Documented in pretext-common.xsl)                       -->\n<!-- Installs some LaTeX-specific behavior                     -->\n<!-- (1) Index entries in margin of the page                   -->\n<!--      where defined, on single pass (no real index)        -->\n<!-- (2) LaTeX labels near definition and use                  -->\n<!--     N.B. Some are author-defined; others are internal,    -->\n<!--     and CANNOT be used as xml:id's (will raise a warning) -->\n<!--  -->\n<!-- Preamble insertions                    -->\n<!-- Insert packages, options into preamble -->\n<!-- early or late                          -->\n<xsl:param name=\"latex.preamble.early\" select=\"''\" />\n<xsl:param name=\"latex.preamble.late\" select=\"''\" />\n\n\n<!-- ############### -->\n<!-- Source Analysis -->\n<!-- ############### -->\n\n<!-- We check certain aspects of the source and record the results   -->\n<!-- in boolean ($b-has-*) variables or as particular nodes high     -->\n<!-- up in the structure ($document-root).  Scans here in -latex     -->\n<!-- should help streamline the construction of the preamble by      -->\n<!-- computing properties that will be checked more than once.       -->\n<!-- While technically generally part of constructing the preamble,  -->\n<!-- there is no real harm in making these global variables.  Short, -->\n<!-- simple, and universal properties are determined in -common.     -->\n<!-- These may duplicate variables in disjoint conversions.          -->\n\n<xsl:variable name=\"b-has-icon\"         select=\"boolean($document-root//icon)\" />\n<xsl:variable name=\"b-has-webwork-var\"  select=\"boolean($document-root//statement//ul[@pi:ww-form])\" />\n<xsl:variable name=\"b-has-program\"      select=\"boolean($document-root//program|$document-root//pf)\" />\n<xsl:variable name=\"b-has-console\"      select=\"boolean($document-root//console)\" />\n<xsl:variable name=\"b-has-sidebyside\"   select=\"boolean($document-root//sidebyside)\" />\n<xsl:variable name=\"b-has-sage\"         select=\"boolean($document-root//sage)\" />\n<xsl:variable name=\"b-has-sfrac\"        select=\"boolean($document-root//m[contains(text(),'sfrac')] or $document-root//mrow[contains(text(),'sfrac')])\" />\n<!-- These are *significant*, *intentional* source elements requiring a monospace font   -->\n<!-- (and not incindentals like an email address which could just be the default tt font -->\n<xsl:variable name=\"b-needs-mono-font\" select=\"$b-has-program or $b-has-sage or $b-has-console or $document-root//c or $document-root//cd or $document-root//pre or $document-root//tag or $document-root//tage or $document-root//attr\"/>\n<xsl:variable name=\"b-has-long-tabular\" select=\"boolean($document-root//notation-list|$document-root//list-of|$document-root//tabular[@break='yes'])\" />\n\n<!-- ######### -->\n<!-- Variables -->\n<!-- ######### -->\n\n<!-- Variables that affect LaTeX creation -->\n<!-- More in the -common file             -->\n\n<!-- Search for the \"math.punctuation.include\" -->\n<!-- global variable, which is discussed in    -->\n<!-- closer proximity to its application.      -->\n\n<!-- Not a parameter, a variable to override deliberately within a conversion -->\n<xsl:variable name=\"b-latex-hardcode-numbers\" select=\"false()\"/>\n\n<!-- LaTeX always puts sections at level \"1\", while PTX         -->\n<!-- has sections at level \"2\", so we provide adjusted,         -->\n<!-- LaTeX-only variables for packages/macros that crudely      -->\n<!-- expect these kinds of numbers (rather than division names) -->\n<xsl:variable name=\"latex-toc-level\">\n    <xsl:call-template name=\"level-to-latex-level\">\n        <xsl:with-param name=\"level\" select=\"$toc-level\" />\n    </xsl:call-template>\n</xsl:variable>\n<xsl:variable name=\"latex-numbering-maxlevel\">\n    <xsl:call-template name=\"level-to-latex-level\">\n        <xsl:with-param name=\"level\" select=\"$numbering-maxlevel\" />\n    </xsl:call-template>\n</xsl:variable>\n\n<!-- We override the default ToC structure    -->\n<!-- just to kill the ToC always for articles -->\n<xsl:variable name=\"toc-level-override\">\n    <xsl:choose>\n        <!-- this is really bad, we should not be consulting -->\n        <!-- the publisher file here, so consider a better   -->\n        <!-- way to make this override                       -->\n        <xsl:when test=\"$publication/common/tableofcontents/@level\">\n            <xsl:value-of select=\"$publication/common/tableofcontents/@level\"/>\n        </xsl:when>\n        <!-- legacy, respect string parameter -->\n        <xsl:when test=\"$toc.level != ''\">\n            <xsl:value-of select=\"$toc.level\" />\n        </xsl:when>\n        <xsl:when test=\"$root/book/article\">3</xsl:when>\n        <xsl:when test=\"$root/book\">2</xsl:when>\n        <xsl:when test=\"$root/article\">0</xsl:when>\n        <xsl:when test=\"$root/letter\">0</xsl:when>\n        <xsl:when test=\"$root/memo\">0</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Table of Contents level (for LateX conversion) not determined</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"toc-level\" select=\"number($toc-level-override)\"/>\n\n<!-- font-size also dictates document class for -->\n<!-- those provided by extsizes, but we can get -->\n<!-- these by just inserting the \"ext\" prefix   -->\n<!-- We don't load the package, the classes     -->\n<!-- are incorporated in the documentclass[]{}  -->\n<!-- and only if we need the extreme values     -->\n\n<!-- A convenient shortcut/hack that might need expansion later   -->\n<!-- insert \"ext\" or nothing in front of \"regular\" document class -->\n<xsl:variable name=\"document-class-prefix\">\n    <xsl:choose>\n        <xsl:when test=\"$font-size='10pt'\"></xsl:when>\n        <xsl:when test=\"$font-size='12pt'\"></xsl:when>\n        <xsl:when test=\"$font-size='11pt'\"></xsl:when>\n        <xsl:otherwise>\n            <xsl:text>ext</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Including page numbers in cross-references defaults to      -->\n<!-- 'yes' for an electronic PDF and to 'no' for a print PDF,    -->\n<!-- and of course can be switched away from the default at will -->\n<!-- $latex-pageref is a publisher variable, and so guaranteed   -->\n<!-- to be \"yes\", \"no\" or empty.                                 -->\n<!-- NB: upgrade the latex.print variable to something like this -->\n<xsl:variable name=\"pagerefs-option\">\n    <xsl:choose>\n        <!-- electronic PDF -->\n        <xsl:when test=\"not($b-latex-print)\">\n            <xsl:choose>\n                <xsl:when test=\"$latex-pageref = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"($latex-pageref = 'no') or ($latex-pageref = '')\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n        <!-- print PDF -->\n        <xsl:when test=\"$b-latex-print\">\n            <xsl:choose>\n                <xsl:when test=\"$latex-pageref = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"($latex-pageref = 'yes') or ($latex-pageref = '')\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-pageref\" select=\"$pagerefs-option = 'yes'\"/>\n\n<!-- Conversions, like creating a solutions manual, may need   -->\n<!-- LaTeX styles for the solutions to exercises, even if the  -->\n<!-- source never has a \"solutions\" element.  So this variable -->\n<!-- is set to false here, and an importing stylesheet can     -->\n<!-- override it to be true.                                   -->\n<xsl:variable name=\"b-needs-solution-styles\" select=\"false()\"/>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- Deprecation warnings are universal analysis of source and parameters   -->\n<!-- There is always a \"document root\" directly under the mathbook element, -->\n<!-- and we process it with the chunking template called below              -->\n<!-- Note that \"docinfo\" is at the same level and not structural, so killed -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"element-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"parameter-deprecation-warnings\"/>\n    <!-- We process the enhanced source pointed  -->\n    <!-- to by $root at  /mathbook  or  /pretext -->\n    <xsl:apply-templates select=\"$root\"/>\n</xsl:template>\n\n<!-- We will have just one of the following -->\n<!-- four types, and totally ignore docinfo -->\n<xsl:template match=\"/mathbook|/pretext\">\n    <xsl:apply-templates select=\"article|book|letter|memo\"/>\n</xsl:template>\n\n<!-- TODO: combine article, book, letter, templates -->\n<!-- with abstract templates for latex classes, page sizes -->\n\n<!-- An article, LaTeX structure -->\n<!--     One page, full of sections (with abstract, references)                    -->\n<!--     Or, one page, totally unstructured, just lots of paragraphs, widgets, etc -->\n<xsl:template match=\"article\">\n    <xsl:call-template name=\"converter-blurb-latex\" />\n    <xsl:call-template name=\"snapshot-package-info\"/>\n    <xsl:text>\\documentclass[</xsl:text>\n    <xsl:call-template name=\"sidedness\"/>\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$font-size\" />\n    <xsl:text>,</xsl:text>\n    <xsl:if test=\"$b-latex-draft-mode\" >\n        <xsl:text>draft,</xsl:text>\n    </xsl:if>\n    <xsl:text>]{</xsl:text>\n    <xsl:value-of select=\"$document-class-prefix\" />\n    <xsl:text>article}&#xa;</xsl:text>\n    <xsl:call-template name=\"latex-preamble\" />\n    <!-- parameterize preamble template with \"page-geometry\" template conditioned on self::article etc -->\n    <xsl:call-template name=\"title-page-info-article\" />\n    <xsl:text>\\begin{document}&#xa;</xsl:text>\n    <xsl:call-template name=\"text-alignment\"/>\n    <xsl:call-template name=\"front-cover\"/>\n    <!-- Target for xref to top-level element -->\n    <!-- immediately, or first in ToC         -->\n    <xsl:choose>\n        <xsl:when test=\"$b-has-toc\">\n            <xsl:text>%% Target for xref to top-level element is ToC&#xa;</xsl:text>\n            <xsl:text>\\addtocontents{toc}{</xsl:text>\n            <xsl:if test=\"$b-pageref\">\n                <xsl:text>\\protect\\label{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>\\protect\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}{}</xsl:text>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>%% Target for xref to top-level element is document start&#xa;</xsl:text>\n            <xsl:if test=\"$b-pageref\">\n                <xsl:text>\\label{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}{}&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- If no frontmatter/titlepage, then title is not printed       -->\n    <!-- so we make sure it happens here, else triggered by titlepage -->\n    <!-- If a title, we know it is page 1, so use empty style -->\n    <xsl:if test=\"title and not(frontmatter/titlepage)\">\n        <xsl:text>\\maketitle&#xa;</xsl:text>\n        <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:call-template name=\"back-cover\"/>\n    <xsl:text>\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- A book, LaTeX structure -->\n<!-- The ordering of the frontmatter is from             -->\n<!-- \"Bookmaking\", 3rd Edition, Marshall Lee, Chapter 27 -->\n<xsl:template match=\"book\">\n    <xsl:call-template name=\"converter-blurb-latex\" />\n    <xsl:call-template name=\"snapshot-package-info\"/>\n    <xsl:text>\\documentclass[</xsl:text>\n    <xsl:call-template name=\"sidedness\"/>\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$font-size\" />\n    <xsl:text>,</xsl:text>\n    <xsl:if test=\"$b-latex-draft-mode\" >\n        <xsl:text>draft,</xsl:text>\n    </xsl:if>\n    <xsl:text>]{</xsl:text>\n    <xsl:value-of select=\"$document-class-prefix\" />\n    <xsl:text>book}&#xa;</xsl:text>\n    <xsl:call-template name=\"latex-preamble\" />\n    <xsl:text>\\begin{document}&#xa;</xsl:text>\n    <xsl:call-template name=\"text-alignment\"/>\n    <!-- Front cover before \\frontmatter is OK,     -->\n    <!-- since we do not number the page (main role -->\n    <!-- of \\frontmatter is to use Roman numerals)  -->\n    <xsl:call-template name=\"front-cover\"/>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:call-template name=\"back-cover\"/>\n    <xsl:text>\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- A letter, LaTeX structure -->\n<xsl:template match=\"letter\">\n    <xsl:call-template name=\"converter-blurb-latex\" />\n    <xsl:call-template name=\"snapshot-package-info\"/>\n    <xsl:text>\\documentclass[</xsl:text>\n    <xsl:call-template name=\"sidedness\"/>\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$font-size\" />\n    <xsl:text>,</xsl:text>\n    <xsl:if test=\"$b-latex-draft-mode\" >\n        <xsl:text>draft,</xsl:text>\n    </xsl:if>\n    <xsl:text>]{</xsl:text>\n    <xsl:value-of select=\"$document-class-prefix\" />\n    <xsl:text>article}&#xa;</xsl:text>\n    <xsl:call-template name=\"latex-preamble\" />\n    <xsl:text>\\begin{document}&#xa;</xsl:text>\n    <xsl:call-template name=\"text-alignment\"/>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- A memo, LaTeX structure -->\n<xsl:template match=\"memo\">\n    <xsl:call-template name=\"converter-blurb-latex\" />\n    <xsl:call-template name=\"snapshot-package-info\"/>\n    <xsl:text>\\documentclass[</xsl:text>\n    <xsl:call-template name=\"sidedness\"/>\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$font-size\" />\n    <xsl:text>,</xsl:text>\n    <xsl:if test=\"$b-latex-draft-mode\" >\n        <xsl:text>draft,</xsl:text>\n    </xsl:if>\n    <xsl:text>]{</xsl:text>\n    <xsl:value-of select=\"$document-class-prefix\" />\n    <xsl:text>article}&#xa;</xsl:text>\n    <xsl:call-template name=\"latex-preamble\" />\n    <xsl:text>\\begin{document}&#xa;</xsl:text>\n    <xsl:call-template name=\"text-alignment\"/>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{document}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- We write \"snapshot\" information into <job>.dep, primarily for     -->\n<!-- developer's use to see what possible (dependent) packages are     -->\n<!-- loaded.  Some authors may be able to copy this information out of -->\n<!-- the dep file and use it to make an \"archival\" version of their    -->\n<!-- LaTeX source with frozen dependencies.                            -->\n<!-- 2022-11-22: Now opt-in since this package is maybe not standard?  -->\n<!-- David Farmer uploaded to the arXiv and this caused an error.      -->\n<xsl:template name=\"snapshot-package-info\">\n    <xsl:if test=\"$b-latex-snapshot\">\n        <xsl:text>%% A publication file entry has requested writing snapshot output into the &lt;job&gt;.dep file&#xa;</xsl:text>\n        <xsl:text>\\RequirePackage{snapshot}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- LaTeX preamble is common for both books, articles, memos and letters -->\n<!-- Except: title info allows an \"event\" for an article (presentation)   -->\n<xsl:template name=\"latex-preamble\">\n    <xsl:call-template name=\"preamble-early\"/>\n    <xsl:call-template name=\"cleardoublepage\"/>\n    <xsl:call-template name=\"standard-packages\"/>\n    <xsl:call-template name=\"tcolorbox-init\"/>\n    <xsl:call-template name=\"page-setup\"/>\n    <xsl:call-template name=\"latex-engine-support\"/>\n    <xsl:call-template name=\"font-support\"/>\n    <xsl:call-template name=\"math-packages\"/>\n    <xsl:call-template name=\"text-symbols\"/>\n    <xsl:call-template name=\"pdfpages-package\"/>\n    <xsl:call-template name=\"division-titles\"/>\n    <xsl:call-template name=\"semantic-macros\"/>\n    <xsl:call-template name=\"exercises-and-solutions\"/>\n    <xsl:call-template name=\"chapter-start-number\"/>\n    <xsl:call-template name=\"equation-numbering\"/>\n    <xsl:call-template name=\"image-tcolorbox\"/>\n    <xsl:call-template name=\"tables\"/>\n    <xsl:call-template name=\"footnote-numbering\"/>\n    <xsl:call-template name=\"font-awesome\"/>\n    <xsl:call-template name=\"poetry-support\"/>\n    <xsl:call-template name=\"music-support\"/>\n    <xsl:call-template name=\"code-support\"/>\n    <xsl:call-template name=\"list-layout\"/>\n    <!-- This is the place to add part numbers to the numbering, which   -->\n    <!-- is *not* the default LaTeX behavior.  The \\p@section scheme     -->\n    <!-- is complicated, leading to about ten constructions like         -->\n    <!--                                                                 -->\n    <!-- \\ifdefined\\p@namedlist\\renewcommand{\\p@namedlist}{\\thepart.}\\fi -->\n    <!--                                                                 -->\n    <!-- Advice is to redefine these *before* loading hyperref           -->\n    <!-- https://tex.stackexchange.com/questions/172962                  -->\n    <!-- (hyperref-include-part-number-for-cross-references-to-chapters) -->\n    <!-- Easier is to just adjust the chapter number, which filters down -->\n    <!-- into anything that uses the chapter, though perhaps per-part    -->\n    <!-- numbering will still need something?                            -->\n    <!--                                                                 -->\n    <!-- \\renewcommand{\\thechapter}{\\thepart.\\arabic{chapter}}           -->\n    <!--                                                                 -->\n    <xsl:call-template name=\"load-configure-hyperref\"/>\n    <!-- We create counters and numbered  tcolorbox  environments -->\n    <!-- *after* loading the  hyperref  package, so as to avoid a -->\n    <!-- pdfTeX warning about duplicate identifiers.              -->\n    <xsl:call-template name=\"create-numbered-tcolorbox\"/>\n    <!-- The \"xwatermark\" package has way more options, including the -->\n    <!-- possibility of putting the watermark onto the foreground     -->\n    <!-- (above shaded/colored \"tcolorbox\").  But on 2018-10-24,      -->\n    <!-- xwatermark was at v1.5.2d, 2012-10-23, and draftwatermark    -->\n    <!-- was at v1.2, 2015-02-19.                                     -->\n\n    <xsl:call-template name=\"watermark\"/>\n    <xsl:call-template name=\"showkeys\"/>\n    <xsl:call-template name=\"latex-image-support\"/>\n    <xsl:call-template name=\"sidebyside-environment\"/>\n    <xsl:call-template name=\"kbd-keys\"/>\n    <xsl:call-template name=\"late-preamble-adjustments\"/>\n\n</xsl:template>\n\n\n<!--####################-->\n<!-- Preamble Templates -->\n<!--####################-->\n\n<!-- As of 2021-02-28 we have begun modularizing the components of the -->\n<!-- preamble, into topical, similar/related groups of commands and    -->\n<!-- definitions.  This was prompted by the necessity of  tcolorbox's  -->\n<!-- numbering scheme needing to *follow* the introduction of the      -->\n<!-- hyperref  package, contrary to the usual advice.  Routines here   -->\n<!-- should mimic the order of their use in the real template.         -->\n\n<!-- Preamble early -->\n<xsl:template name=\"preamble-early\">\n    <xsl:text>%% Custom Preamble Entries, early (use latex.preamble.early)&#xa;</xsl:text>\n    <xsl:if test=\"$latex.preamble.early != ''\">\n        <xsl:value-of select=\"$latex.preamble.early\" />\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Redefine \"cleardoublepage\" -->\n<xsl:template name=\"cleardoublepage\">\n    <xsl:choose>\n        <xsl:when test=\"($b-latex-two-sides) or ($latex-open-odd = 'add-blanks')\">\n            <!-- Redefines \\cleardoublepage as suggested, plus empty page style on blanks: -->\n            <!-- https://tex.stackexchange.com/questions/185821/openright-in-oneside-book  -->\n            <xsl:text>%% Always open on odd page&#xa;</xsl:text>\n            <xsl:text>%%   The following adjusts cleardoublepage to remove twosided&#xa;</xsl:text>\n            <xsl:text>%%   check so that we open on odd pages even in one-sided mode&#xa;</xsl:text>\n            <xsl:text>%%   by adding an extra blank page on the preceding even page.&#xa;</xsl:text>\n            <xsl:text>\\makeatletter%&#xa;</xsl:text>\n            <xsl:text>\\def\\cleardoublepage{%&#xa;</xsl:text>\n            <xsl:text>\\clearpage\\ifodd\\c@page\\else\\thispagestyle{empty}\\hbox{}\\newpage\\if@twocolumn\\hbox{}\\newpage\\fi\\fi%&#xa;</xsl:text>\n            <xsl:text>}&#xa;</xsl:text>\n            <xsl:text>\\makeatother%&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"not($b-latex-two-sides) and ($latex-open-odd = 'skip-pages')\">\n            <xsl:text>%% Always open on odd page&#xa;</xsl:text>\n            <xsl:text>%%   The following adjusts cleardoublepage to remove twosided&#xa;</xsl:text>\n            <xsl:text>%%   check so that we open on odd pages even in one-sided mode&#xa;</xsl:text>\n            <xsl:text>%%   by incrementing the page number to skip over the preceding&#xa;</xsl:text>\n            <xsl:text>%%   even page.&#xa;</xsl:text>\n            <xsl:text>\\makeatletter%&#xa;</xsl:text>\n            <xsl:text>\\def\\cleardoublepage{%&#xa;</xsl:text>\n            <xsl:text>\\clearpage\\ifodd\\c@page\\else\\addtocounter{page}{1}\\fi%&#xa;</xsl:text>\n            <xsl:text>}&#xa;</xsl:text>\n            <xsl:text>\\makeatother%&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Standard packages -->\n<xsl:template name=\"standard-packages\">\n    <!-- Following need to be mature, robust, powerful, flexible, well-maintained -->\n    <xsl:text>%% Default LaTeX packages&#xa;</xsl:text>\n    <xsl:text>%%   1.  always employed (or nearly so) for some purpose, or&#xa;</xsl:text>\n    <xsl:text>%%   2.  a stylewriter may assume their presence&#xa;</xsl:text>\n    <xsl:text>\\usepackage{geometry}&#xa;</xsl:text>\n    <xsl:text>%% Some aspects of the preamble are conditional,&#xa;</xsl:text>\n    <xsl:text>%% the LaTeX engine is one such determinant&#xa;</xsl:text>\n    <xsl:text>\\usepackage{ifthen}&#xa;</xsl:text>\n    <xsl:text>%% etoolbox has a variety of modern conveniences&#xa;</xsl:text>\n    <!-- e.g, \\notblank -->\n    <xsl:text>\\usepackage{etoolbox}&#xa;</xsl:text>\n    <xsl:text>\\usepackage{ifxetex,ifluatex}&#xa;</xsl:text>\n    <xsl:text>%% Raster graphics inclusion&#xa;</xsl:text>\n    <xsl:text>\\usepackage{graphicx}&#xa;</xsl:text>\n    <xsl:text>%% Color support, xcolor package&#xa;</xsl:text>\n    <xsl:text>%% Always loaded, for: add/delete text, author tools&#xa;</xsl:text>\n    <xsl:text>%% Here, since tcolorbox loads tikz, and tikz loads xcolor&#xa;</xsl:text>\n    <!-- Avoid option conflicts causing errors:                                       -->\n    <!-- http://tex.stackexchange.com/questions/57364/option-clash-for-package-xcolor -->\n    <!-- svg later will clobber dvips?  See starred versions in xcolor documentation  -->\n    <!-- v3.02, 2024-09-29 package documentation says                                 -->\n    <!--   * \"usenames\" option is obsolete                                            -->\n    <!--   * \"table\" option loads the \"colortbl\" package                              -->\n    <!--   * Section 2.15.1 discusses \"Name clashs between dvipsnames and svgnames\"   -->\n    <xsl:text>\\PassOptionsToPackage{dvipsnames,svgnames,table}{xcolor}&#xa;</xsl:text>\n    <xsl:text>\\usepackage{xcolor}&#xa;</xsl:text>\n    <!-- This tempalte for defining colors is provisional, and subject to change -->\n    <xsl:text>%% begin: defined colors, via xcolor package, for styling&#xa;</xsl:text>\n    <xsl:call-template name=\"xcolor-style\"/>\n    <xsl:text>%% end: defined colors, via xcolor package, for styling&#xa;</xsl:text>\n</xsl:template>\n\n<!-- tcolorbox initial setup -->\n<xsl:template name=\"tcolorbox-init\">\n    <xsl:text>%% Colored boxes, and much more, though mostly styling&#xa;</xsl:text>\n    <xsl:text>%% skins library provides \"enhanced\" skin, employing tikzpicture&#xa;</xsl:text>\n    <xsl:text>%% boxes may be configured as \"breakable\" or \"unbreakable\"&#xa;</xsl:text>\n    <xsl:text>%% \"raster\" controls grids of boxes, aka side-by-side&#xa;</xsl:text>\n    <xsl:text>\\usepackage{tcolorbox}&#xa;</xsl:text>\n    <xsl:text>\\tcbuselibrary{skins}&#xa;</xsl:text>\n    <xsl:text>\\tcbuselibrary{breakable}&#xa;</xsl:text>\n    <xsl:text>\\tcbuselibrary{raster}&#xa;</xsl:text>\n    <xsl:text>%% We load some \"stock\" tcolorbox styles that we use a lot&#xa;</xsl:text>\n    <xsl:text>%% Placement here is provisional, there will be some color work also&#xa;</xsl:text>\n    <xsl:text>%% First, black on white, no border, transparent, but no assumption about titles&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ bwminimalstyle/.style={size=minimal, boxrule=-0.3pt, frame empty,&#xa;</xsl:text>\n    <xsl:text>colback=white, colbacktitle=white, coltitle=black, opacityfill=0.0} }&#xa;</xsl:text>\n    <xsl:text>%% Second, bold title, run-in to text/paragraph/heading&#xa;</xsl:text>\n    <xsl:text>%% Space afterwards will be controlled by environment,&#xa;</xsl:text>\n    <xsl:text>%% independent of constructions of the tcb title&#xa;</xsl:text>\n    <xsl:text>%% Places \\blocktitlefont onto many block titles&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ runintitlestyle/.style={fonttitle=\\blocktitlefont\\upshape\\bfseries, attach title to upper} }&#xa;</xsl:text>\n    <xsl:text>%% Spacing prior to each exercise, anywhere&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ exercisespacingstyle/.style={before skip={1.5ex plus 0.5ex}} }&#xa;</xsl:text>\n    <xsl:text>%% Spacing prior to each block&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ blockspacingstyle/.style={before skip={2.0ex plus 0.5ex}} }&#xa;</xsl:text>\n    <xsl:text>%% xparse allows the construction of more robust commands,&#xa;</xsl:text>\n    <xsl:text>%% this is a necessity for isolating styling and behavior&#xa;</xsl:text>\n    <xsl:text>%% The tcolorbox library of the same name loads the base library&#xa;</xsl:text>\n    <xsl:text>\\tcbuselibrary{xparse}&#xa;</xsl:text>\n    <xsl:text>%% The tcolorbox library loads TikZ, its calc package is generally useful,&#xa;</xsl:text>\n    <xsl:text>%% and is necessary for some smaller documents that use partial tcolor boxes&#xa;</xsl:text>\n    <xsl:text>%% See:  https://github.com/PreTeXtBook/pretext/issues/1624&#xa;</xsl:text>\n    <xsl:text>\\usetikzlibrary{calc}&#xa;</xsl:text>\n    <xsl:text>%% We use some more exotic tcolorbox keys to restore indentation to parboxes&#xa;</xsl:text>\n    <xsl:text>\\tcbuselibrary{hooks}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- paragraph and page setup -->\n<xsl:template name=\"page-setup\">\n    <!-- This should save-off the indentation used for the first line of  -->\n    <!-- a paragraph, in effect for the chosen document class.  Then the  -->\n    <!-- \"parbox\" used by \"tcolorbox\" can restore indentation rather than -->\n    <!-- run with none.  Part of                                          -->\n    <!-- https://tex.stackexchange.com/questions/250165/                  -->\n    <!-- normal-body-text-within-tcolorbox                                -->\n    <!-- In a similar fashion we save/restore the parskip, only should    -->\n    <!-- an ambitious publisher try to set it globally                    -->\n    <xsl:text>%% Save default paragraph indentation and parskip for use later, when adjusting parboxes&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\normalparindent}&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\normalparskip}&#xa;</xsl:text>\n    <xsl:text>\\AtBeginDocument{\\setlength{\\normalparindent}{\\parindent}}&#xa;</xsl:text>\n    <xsl:text>\\AtBeginDocument{\\setlength{\\normalparskip}{\\parskip}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\setparstyle}{\\setlength{\\parindent}{\\normalparindent}\\setlength{\\parskip}{\\normalparskip}}</xsl:text>\n    <xsl:text>%% Hyperref should be here, but likes to be loaded late&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% Inline math delimiters, \\(, \\), need to be robust&#xa;</xsl:text>\n    <xsl:text>%% 2016-01-31:  latexrelease.sty  supersedes  fixltx2e.sty&#xa;</xsl:text>\n    <xsl:text>%% If  latexrelease.sty  exists, bugfix is in kernel&#xa;</xsl:text>\n    <xsl:text>%% If not, bugfix is in  fixltx2e.sty&#xa;</xsl:text>\n    <xsl:text>%% See:  https://tug.org/TUGboat/tb36-3/tb114ltnews22.pdf&#xa;</xsl:text>\n    <xsl:text>%% and read \"Fewer fragile commands\" in distribution's  latexchanges.pdf&#xa;</xsl:text>\n    <xsl:text>\\IfFileExists{latexrelease.sty}{}{\\usepackage{fixltx2e}}&#xa;</xsl:text>\n    <!-- could condition on \"subfigure-reps\" -->\n    <xsl:if test=\"$b-has-sidebyside\">\n        <xsl:text>%% shorter subnumbers in some side-by-side require manipulations&#xa;</xsl:text>\n        <xsl:text>\\usepackage{xstring}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//fn|$document-root//part\">\n        <xsl:text>%% Footnote counters and part/chapter counters are manipulated&#xa;</xsl:text>\n        <xsl:text>%% April 2018:  chngcntr  commands now integrated into the kernel,&#xa;</xsl:text>\n        <xsl:text>%% but circa 2018/2019 the package would still try to redefine them,&#xa;</xsl:text>\n        <xsl:text>%% so we need to do the work of loading conditionally for old kernels.&#xa;</xsl:text>\n        <xsl:text>%% From version 1.1a,  chngcntr  should detect defintions made by LaTeX kernel.&#xa;</xsl:text>\n        <xsl:text>\\ifdefined\\counterwithin&#xa;</xsl:text>\n        <xsl:text>\\else&#xa;</xsl:text>\n        <xsl:text>    \\usepackage{chngcntr}&#xa;</xsl:text>\n        <xsl:text>\\fi&#xa;</xsl:text>\n        <xsl:if test=\"$parts = 'structural'\">  <!-- implies book/part -->\n            <xsl:text>%% Structural chapter numbers reset within parts&#xa;</xsl:text>\n            <xsl:text>%% Starred form will not prefix part number&#xa;</xsl:text>\n            <xsl:text>\\counterwithin*{chapter}{part}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <!-- Determine height of text block, assumes US letterpaper (11in height) -->\n    <!-- Could react to document type, paper, margin specs                    -->\n    <xsl:variable name=\"text-height\">\n        <xsl:text>9.0in</xsl:text>\n    </xsl:variable>\n    <!-- Bringhurst: 30x => 66 chars, so 34x => 75 chars -->\n    <xsl:variable name=\"text-width\">\n        <xsl:value-of select=\"34 * substring-before($font-size, 'pt')\" />\n        <xsl:text>pt</xsl:text>\n    </xsl:variable>\n    <xsl:text>%% Text height identically 9 inches, text width varies on point size&#xa;</xsl:text>\n    <xsl:text>%% See Bringhurst 2.1.1 on measure for recommendations&#xa;</xsl:text>\n    <xsl:text>%% 75 characters per line (count spaces, punctuation) is target&#xa;</xsl:text>\n    <xsl:text>%% which is the upper limit of Bringhurst's recommendations&#xa;</xsl:text>\n    <xsl:text>\\geometry{letterpaper,total={</xsl:text>\n    <xsl:value-of select=\"$text-width\" />\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"$text-height\" />\n    <xsl:text>}}&#xa;</xsl:text>\n    <xsl:text>%% Custom Page Layout Adjustments (use publisher page-geometry entry)&#xa;</xsl:text>\n    <xsl:if test=\"$latex-page-geometry != ''\">\n        <xsl:text>\\geometry{</xsl:text>\n        <xsl:value-of select=\"$latex-page-geometry\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Crop marks, as independent of author tools           -->\n    <!-- Always *after* geometry package, no driver selected, -->\n    <!-- since it should auto-detect.  Tested with xelatex.   -->\n    <!-- crop  package suggests explicitly turning off driver -->\n    <!-- options for the geometery package.  We don't.        -->\n    <xsl:if test=\"$b-latex-crop-marks\">\n        <xsl:text>\\usepackage[</xsl:text>\n        <xsl:value-of select=\"$latex-crop-papersize\"/>\n        <xsl:text>,cam,center]{crop}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$latex-right-alignment = 'ragged'\">\n        <xsl:text>%% better handing of text alignment&#xa;</xsl:text>\n        <xsl:text>\\usepackage{ragged2e}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Conditional LaTeX engine support (exclusive of fonts) -->\n<xsl:template name=\"latex-engine-support\">\n    <xsl:text>%% This LaTeX file may be compiled with pdflatex, xelatex, or lualatex executables&#xa;</xsl:text>\n    <xsl:text>%% LuaTeX is not explicitly supported, but we do accept additions from knowledgeable users&#xa;</xsl:text>\n    <xsl:text>%% The conditional below provides  pdflatex  specific configuration last&#xa;</xsl:text>\n    <xsl:text>%% begin: engine-specific capabilities&#xa;</xsl:text>\n    <xsl:text>\\ifthenelse{\\boolean{xetex} \\or \\boolean{luatex}}{%&#xa;</xsl:text>\n    <xsl:text>%% begin: xelatex and lualatex-specific default configuration&#xa;</xsl:text>\n    <xsl:text>\\ifxetex\\usepackage{xltxtra}\\fi&#xa;</xsl:text>\n    <xsl:text>%% realscripts is the only part of xltxtra relevant to lualatex &#xa;</xsl:text>\n    <xsl:text>\\ifluatex\\usepackage{realscripts}\\fi&#xa;</xsl:text>\n    <xsl:text>%% end:   xelatex and lualatex-specific default configuration&#xa;</xsl:text>\n    <xsl:text>}{&#xa;</xsl:text>\n    <xsl:text>%% begin: pdflatex-specific default configuration&#xa;</xsl:text>\n    <xsl:text>%% We assume a PreTeXt XML source file may have Unicode characters&#xa;</xsl:text>\n    <xsl:text>%% and so we ask LaTeX to parse a UTF-8 encoded file&#xa;</xsl:text>\n    <xsl:text>%% This may work well for accented characters in Western language,&#xa;</xsl:text>\n    <xsl:text>%% but not with Greek, Asian languages, etc.&#xa;</xsl:text>\n    <xsl:text>%% When this is not good enough, switch to the  xelatex  engine&#xa;</xsl:text>\n    <xsl:text>%% where Unicode is better supported (encouraged, even)&#xa;</xsl:text>\n    <xsl:text>\\usepackage[utf8]{inputenc}&#xa;</xsl:text>\n    <xsl:text>%% end: pdflatex-specific default configuration&#xa;</xsl:text>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>%% end:   engine-specific capabilities&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Font support (conditional on engine) -->\n<xsl:template name=\"font-support\">\n    <xsl:text>%% Fonts.  Conditional on LaTex engine employed.&#xa;</xsl:text>\n    <xsl:text>%% Default Text Font: The Latin Modern fonts are&#xa;</xsl:text>\n    <xsl:text>%% \"enhanced versions of the [original TeX] Computer Modern fonts.\"&#xa;</xsl:text>\n    <xsl:text>%% We use them as the default text font for PreTeXt output.&#xa;</xsl:text>\n    <xsl:if test=\"$b-needs-mono-font\">\n        <xsl:text>%% Default Monospace font: Inconsolata (aka zi4)&#xa;</xsl:text>\n        <xsl:text>%% Sponsored by TUG: http://levien.com/type/myfonts/inconsolata.html&#xa;</xsl:text>\n        <xsl:text>%% Loaded for documents with intentional objects requiring monospace&#xa;</xsl:text>\n        <xsl:text>%% See package documentation for excellent instructions&#xa;</xsl:text>\n        <xsl:text>%% fontspec will work universally if we use filename to locate OTF files&#xa;</xsl:text>\n        <xsl:text>%% Loads the \"upquote\" package as needed, so we don't have to&#xa;</xsl:text>\n        <xsl:text>%% Upright quotes might come from the  textcomp  package, which we also use&#xa;</xsl:text>\n        <xsl:text>%% We employ the shapely \\ell to match Google Font version&#xa;</xsl:text>\n        <xsl:text>%% pdflatex: \"varl\" package option produces shapely \\ell&#xa;</xsl:text>\n        <xsl:text>%% pdflatex: \"var0\" package option produces plain zero (not used)&#xa;</xsl:text>\n        <xsl:text>%% pdflatex: \"varqu\" package option produces best upright quotes&#xa;</xsl:text>\n        <xsl:text>%% xelatex,lualatex: add OTF StylisticSet 1 for shapely \\ell&#xa;</xsl:text>\n        <xsl:text>%% xelatex,lualatex: add OTF StylisticSet 2 for plain zero (not used)&#xa;</xsl:text>\n        <xsl:text>%% xelatex,lualatex: add OTF StylisticSet 3 for upright quotes&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>%% Automatic Font Control&#xa;</xsl:text>\n    <xsl:text>%% Portions of a document, are, or may, be affected by defined commands&#xa;</xsl:text>\n    <xsl:text>%% These are perhaps more flexible when using  xelatex  rather than  pdflatex&#xa;</xsl:text>\n    <xsl:text>%% The following definitions are meant to be re-defined in a style, using \\renewcommand&#xa;</xsl:text>\n    <xsl:text>%% They are scoped when employed (in a TeX group), and so should not be defined with an argument&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\divisionfont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\blocktitlefont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\contentsfont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\pagefont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\tabularfont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\xreffont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\titlepagefont}{\\relax}&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>\\ifthenelse{\\boolean{xetex} \\or \\boolean{luatex}}{%&#xa;</xsl:text>\n    <xsl:text>%% begin: font setup and configuration for use with xelatex&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% Generally, xelatex is necessary for non-Western fonts&#xa;</xsl:text>\n    <xsl:text>%% fontspec package provides extensive control of system fonts,&#xa;</xsl:text>\n    <xsl:text>%% meaning *.otf (OpenType), and apparently *.ttf (TrueType)&#xa;</xsl:text>\n    <xsl:text>%% that live *outside* your TeX/MF tree, and are controlled by your *system*&#xa;</xsl:text>\n    <xsl:text>%% (it is possible that a TeX distribution will place fonts in a system location)&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% The fontspec package is the best vehicle for using different fonts in  xelatex&#xa;</xsl:text>\n    <xsl:text>%% So we load it always, no matter what a publisher or style might want&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>\\usepackage{fontspec}&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: xelatex main font (\"font-xelatex-main\" template)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-xelatex-main\"/>\n    <xsl:text>%% end:   xelatex main font (\"font-xelatex-main\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: xelatex math font (\"font-xelatex-math\" template)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-xelatex-math\"/>\n    <xsl:text>%% end:   xelatex math font (\"font-xelatex-math\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: xelatex mono font (\"font-xelatex-mono\" template)&#xa;</xsl:text>\n    <xsl:text>%% (conditional on non-trivial uses being present in source)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-xelatex-mono\"/>\n    <xsl:text>%% end:   xelatex mono font (\"font-xelatex-mono\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: xelatex font adjustments (\"font-xelatex-style\" template)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-xelatex-style\"/>\n    <xsl:text>%% end:   xelatex font adjustments (\"font-xelatex-style\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:if test=\"$b-has-icon\">\n        <xsl:text>%% Icons being used, so xelatex needs a system font&#xa;</xsl:text>\n        <xsl:text>%% This can only be determined at compile-time&#xa;</xsl:text>\n        <xsl:call-template name=\"xelatex-font-check\">\n            <xsl:with-param name=\"font-name\" select=\"'Font Awesome 5 Free'\"/>\n        </xsl:call-template>\n        <xsl:call-template name=\"xelatex-font-check\">\n            <xsl:with-param name=\"font-name\" select=\"'Font Awesome 5 Brands'\"/>\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:text>%%&#xa;</xsl:text>\n    <!-- language tags appear in docinfo in renames, so be careful -->\n    <xsl:text>%% Extensive support for other languages&#xa;</xsl:text>\n    <xsl:text>\\usepackage{polyglossia}&#xa;</xsl:text>\n    <xsl:text>%% Set main/default language based on pretext/@xml:lang value&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$document-language = 'en-US'\">\n            <xsl:text>%% document language code is \"en-US\", US English&#xa;</xsl:text>\n            <xsl:text>%% usmax variant has extra hypenation&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage[variant=usmax]{english}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'el'\">\n            <xsl:text>%% document language code is \"el\", Modern Greek (1453-)&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage[variant=monotonic]{greek}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'es-ES'\">\n            <xsl:text>%% document language code is \"es-ES\", Spanish&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage{spanish}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'hu-HU'\">\n            <xsl:text>%% document language code is \"hu-HU\", Magyar (Hungarian)&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage{magyar}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'ko-KR'\">\n            <xsl:text>%% document language code is \"ko-KR\", Korean&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage{korean}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'ru-RU'\">\n            <xsl:text>%% document language code is \"ru-RU\", Russian&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage{russian}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'vi-VN'\">\n            <xsl:text>%% document language code is \"vi-VN\", Vietnamese&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage{vietnamese}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$document-language = 'it-IT'\">\n            <xsl:text>%% document language code is \"it-IT\", Italian&#xa;</xsl:text>\n            <xsl:text>\\setmainlanguage{italian}&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>%% Enable secondary languages based on discovery of @xml:lang values&#xa;</xsl:text>\n    <!-- collect every @xml:lang attribute in use into a variable/node-set -->\n    <xsl:variable name=\"secondary-languages\" select=\"$document-root//@xml:lang\"/>\n\n    <!-- sort into a new node-set so we can eliminate duplicate values -->\n    <xsl:variable name=\"sorted-language-values-rtf\">\n        <xsl:for-each select=\"$secondary-languages\">\n            <xsl:sort select=\".\"/>\n            <language>\n                <xsl:value-of select=\".\"/>\n            </language>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"sorted-language-values\" select=\"exsl:node-set($sorted-language-values-rtf)\"/>\n\n    <!-- secondary language support, not already the \"main\" language -->\n    <xsl:for-each select=\"$sorted-language-values/language\">\n        <!-- take action for first occurence -->\n        <xsl:if test=\"not(. = preceding-sibling::language)\">\n            <xsl:variable name=\"language\">\n                <xsl:value-of select=\".\"/>\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"not($document-language = 'en-US') and ($language = 'en-US')\">\n                    <xsl:text>%% document contains language code \"en-US\", US English&#xa;</xsl:text>\n                    <xsl:text>%% usmax variant has extra hypenation&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage[variant=usmax]{english}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"not($document-language = 'es-ES') and ($language = 'es-ES')\">\n                    <xsl:text>%% document contains language code \"es-ES\", Spanish&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage{spanish}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"not($document-language = 'el') and ($language = 'el')\">\n                    <xsl:text>%% document contains language code \"el\", Modern Greek (1453-)&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage[variant=monotonic]{greek}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"not($document-language = 'hu-HU') and ($language = 'hu-HU')\">\n                    <xsl:text>%% document contains language code \"hu-HU\", Magyar (Hungarian)&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage{magyar}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"not($document-language = 'ko-KR') and ($language = 'ko-KR')\">\n                    <xsl:text>%% document contains language code \"ko-KR\", Korean&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage{korean}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"not($document-language = 'ru-RU') and ($language = 'ru-RU')\">\n                    <xsl:text>%% document contains language code \"ru-RU\", Russian&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage{russian}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"not($document-language = 'vi-VN') and ($language = 'vi-VN')\">\n                    <xsl:text>%% document contains language code \"vi-VN\", Vietnamese&#xa;</xsl:text>\n                    <xsl:text>\\setotherlanguage{vietnamese}&#xa;</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:if>\n    </xsl:for-each>\n\n    <xsl:text>%% Enable fonts/scripts based on discovery of @xml:lang values&#xa;</xsl:text>\n    <xsl:text>%% Western languages should be ably covered by Latin Modern Roman&#xa;</xsl:text>\n    <xsl:for-each select=\"$sorted-language-values/language\">\n        <!-- take action for first occurence -->\n        <xsl:if test=\"not(. = preceding-sibling::language)\">\n            <xsl:variable name=\"language\">\n                <xsl:value-of select=\".\"/>\n            </xsl:variable>\n            <xsl:choose>\n                <xsl:when test=\"$language = 'el'\">\n                    <xsl:text>%% Font for Modern Greek&#xa;</xsl:text>\n                    <xsl:text>%% Font families: CMU Serif (Ubuntu fonts-cmu package), Linux Libertine O, GFS Artemisia&#xa;</xsl:text>\n                    <xsl:text>%% OTF Script needs to be enabled&#xa;</xsl:text>\n                    <xsl:text>\\newfontfamily\\greekfont[Script=Greek]{CMU Serif}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$language = 'ko-KR'\">\n                    <xsl:text>%% Font for Hangul&#xa;</xsl:text>\n                    <xsl:text>%% Font families: alternate - UnBatang with [Script=Hangul]&#xa;</xsl:text>\n                    <xsl:text>%% Debian/Ubuntu \"fonts-nanum\" package&#xa;</xsl:text>\n                    <xsl:text>\\newfontfamily\\koreanfont{NanumMyeongjo}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$language = 'ru-RU'\">\n                    <xsl:text>%% Font for Cyrillic&#xa;</xsl:text>\n                    <xsl:text>%% Font families: CMU Serif, Linux Libertine O&#xa;</xsl:text>\n                    <xsl:text>%% OTF Script needs to be enabled&#xa;</xsl:text>\n                    <xsl:text>\\newfontfamily\\russianfont[Script=Cyrillic]{CMU Serif}&#xa;</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:if>\n    </xsl:for-each>\n    <xsl:text>%% end:   font setup and configuration for use with xelatex&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>}{%&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: font setup and configuration for use with pdflatex&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: pdflatex main font (\"font-pdflatex-main\" template)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-pdflatex-main\"/>\n    <xsl:text>%% end:   pdflatex main font (\"font-pdflatex-main\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: pdflatex mono font (\"font-pdflatex-mono\" template)&#xa;</xsl:text>\n    <xsl:text>%% (conditional on non-trivial uses being present in source)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-pdflatex-mono\"/>\n    <xsl:text>%% end:   pdflatex mono font (\"font-pdflatex-mono\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% begin: pdflatex font adjustments (\"font-pdflatex-style\" template)&#xa;</xsl:text>\n    <xsl:call-template name=\"font-pdflatex-style\"/>\n    <xsl:text>%% end:   pdflatex font adjustments (\"font-pdflatex-style\" template)&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% end:   font setup and configuration for use with pdflatex&#xa;</xsl:text>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>%% Micromanage spacing, etc.  The named \"microtype-options\"&#xa;</xsl:text>\n    <xsl:text>%% template may be employed to fine-tune package behavior&#xa;</xsl:text>\n    <xsl:text>\\usepackage</xsl:text>\n    <!-- This template supplies [] w options iff there really are options -->\n    <xsl:call-template name=\"microtype-option-argument\"/>\n    <xsl:text>{microtype}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Additional packages for math -->\n<xsl:template name=\"math-packages\">\n    <xsl:text>%% Symbols, align environment, commutative diagrams, bracket-matrix&#xa;</xsl:text>\n    <xsl:text>\\usepackage{amsmath}&#xa;</xsl:text>\n    <xsl:text>\\usepackage{amscd}&#xa;</xsl:text>\n    <!-- AMS symbol package clashes with the  unicode-math    -->\n    <!-- package as they both try to define identical macros. -->\n    <!-- First problem seems to be the  \\eth  macro.          -->\n    <xsl:if test=\"not($b-alternate-math-font)\">\n        <xsl:text>\\usepackage{amssymb}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>%% allow page breaks within display mathematics anywhere&#xa;</xsl:text>\n    <xsl:text>%% level 4 is maximally permissive&#xa;</xsl:text>\n    <xsl:text>%% this is exactly the opposite of AMSmath package philosophy&#xa;</xsl:text>\n    <xsl:text>%% there are per-display, and per-equation options to control this&#xa;</xsl:text>\n    <xsl:text>%% split, aligned, gathered, and alignedat are not affected&#xa;</xsl:text>\n    <xsl:text>\\allowdisplaybreaks[4]&#xa;</xsl:text>\n    <xsl:text>%% allow more columns to a matrix&#xa;</xsl:text>\n    <xsl:text>%% can make this even bigger by overriding with  latex.preamble.late  processing option&#xa;</xsl:text>\n    <xsl:text>\\setcounter{MaxMatrixCols}{30}&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Various symbols to use with text.  \"pifont\" package should -->\n<!-- be reliable for use with both pdflatex and xelatex.        -->\n<xsl:template name=\"text-symbols\">\n    <xsl:text>%% Symbols for use in text mode (i.e. not in math mode)&#xa;</xsl:text>\n    <xsl:text>\\usepackage{pifont}&#xa;</xsl:text>\n    <xsl:text>%% Solid geometric shapes to mark ends of environments&#xa;</xsl:text>\n    <!-- solid black disc (bigger than a bullet) is #108 -->\n    <!-- various possibilities exist for stars           -->\n    <xsl:text>\\newcommand{\\ptxsquare}{\\ding{110}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\ptxtriangle}{\\ding{115}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\ptxdiamond}{\\ding{117}}&#xa;</xsl:text>\n    <xsl:text>%% Markers for unordered list items&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\ptxlistdisc}{\\raisebox{0.3ex}{\\textbullet}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\ptxlistcircle}{\\raisebox{0.3ex}{\\textopenbullet}}&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\ptxlistsquare}{\\raisebox{0.4ex}{\\scalebox{0.5}{\\ding{110}}}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- pdfpages package for covers -->\n<xsl:template name=\"pdfpages-package\">\n    <xsl:if test=\"$b-has-latex-front-cover or $b-has-latex-back-cover\">\n        <xsl:text>%% pdfpages package for front and back covers as PDFs&#xa;</xsl:text>\n        <xsl:text>\\usepackage[</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"$b-latex-draft-mode\">\n                <xsl:text>draft</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>final</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>]{pdfpages}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>%%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Division titles and headers/footers for styling -->\n<xsl:template name=\"division-titles\">\n    <xsl:text>%% Division Titles, and Page Headers/Footers&#xa;</xsl:text>\n    <!-- The final mandatory argument of the titlesec \\titleformat  -->\n    <!-- command is the \"before-code\", meaning before the text of   -->\n    <!-- the title.  For greater flexibility, the text of the title -->\n    <!-- can be referenced *explicitly* by macro parameter #1 in    -->\n    <!-- whatever code is placed into this argument.  This is       -->\n    <!-- accomplished with the \"explicit\" argument.                 -->\n    <!-- In particular, the numberless, chapter-level \"Index\" and   -->\n    <!-- \"Contents\" are generated semi-automatically with a macro,  -->\n    <!-- so PTX never sees the title (but can use built-in LaTeX    -->\n    <!-- facilities to change it to another language)               -->\n    <!-- \"pagestyles\" option is equivalent to loading the           -->\n    <!-- \"titleps\" package and have it execute cooperatively        -->\n    <xsl:text>%% titlesec package, loading \"titleps\" package cooperatively&#xa;</xsl:text>\n    <xsl:text>%% See code comments about the necessity and purpose of \"explicit\" option.&#xa;</xsl:text>\n    <xsl:text>%% The \"newparttoc\" option causes a consistent entry for parts in the ToC &#xa;</xsl:text>\n    <xsl:text>%% file, but it is only effective if there is a \\titleformat for \\part.&#xa;</xsl:text>\n    <xsl:text>%% \"pagestyles\" loads the  titleps  package cooperatively.&#xa;</xsl:text>\n    <xsl:text>\\usepackage[explicit, newparttoc, pagestyles]{titlesec}&#xa;</xsl:text>\n    <xsl:text>%% The companion titletoc package for the ToC.&#xa;</xsl:text>\n    <xsl:text>\\usepackage{titletoc}&#xa;</xsl:text>\n    <!-- Necessary fix for chapter/appendix transition              -->\n    <!-- From titleps package author, 2013 post                     -->\n    <!-- https://tex.stackexchange.com/questions/117222/            -->\n    <!-- issue-with-titlesec-page-styles-and-appendix-in-book-class -->\n    <!-- Maybe this is a problem for an \"article\" as well?  Hints:  -->\n    <!-- https://tex.stackexchange.com/questions/319581/   issue-   -->\n    <!-- with-titlesec-section-styles-and-appendix-in-article-class -->\n    <xsl:if test=\"$b-is-book\">\n        <xsl:text>%% Fixes a bug with transition from chapters to appendices in a \"book\"&#xa;</xsl:text>\n        <xsl:text>%% See generating XSL code for more details about necessity&#xa;</xsl:text>\n        <xsl:text>\\newtitlemark{\\chaptertitlename}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>%% begin: customizations of page styles via the modal \"titleps-style\" template&#xa;</xsl:text>\n    <xsl:text>%% Designed to use commands from the LaTeX \"titleps\" package&#xa;</xsl:text>\n    <xsl:apply-templates select=\"$document-root\" mode=\"titleps-style\"/>\n    <xsl:text>%% end: customizations of page styles via the modal \"titleps-style\" template&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%% Create globally-available macros to be provided for style writers&#xa;</xsl:text>\n    <xsl:text>%% These are redefined for each occurence of each division&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\divisionnameptx}{\\relax}%&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\titleptx}{\\relax}%&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\subtitleptx}{\\relax}%&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\shortitleptx}{\\relax}%&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\authorsptx}{\\relax}%&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\epigraphptx}{\\relax}%&#xa;</xsl:text>\n    <!-- Create xparse enviroments for each PTX division.          -->\n    <!-- The pervasive environments need qualification so          -->\n    <!-- that the right LaTeX divisions are created.               -->\n    <!-- These look like environments like \"solutions-subsection\"  -->\n    <!-- We want one (and only one) of each type that is necessary -->\n    <!-- For each line below think CAREFULLY about the level       -->\n    <!-- created, it is one level below what it might appear       -->\n    <xsl:variable name=\"division-reps\" select=\"\n        ($document-root//acknowledgement)[1]|\n        ($document-root//foreword)[1]|\n        ($document-root//preface)[1]|\n        ($document-root//part)[1]|\n        ($document-root//chapter)[1]|\n        ($document-root//section)[1]|\n        ($document-root//subsection)[1]|\n        ($document-root//subsubsection)[1]|\n        ($document-root//subsubsection)[1]|\n        ($root/book/backmatter/appendix|$root/article/backmatter/appendix)[1]|\n        ($document-root//index)[1]|\n        ($document-root//chapter/exercises|$root/book/backmatter/appendix/exercises|$root/article/exercises)[1]|\n        ($document-root//section/exercises|$root/article/backmatter/appendix/exercises)[1]|\n        ($document-root//subsection/exercises)[1]|\n        ($document-root//subsubsection/exercises)[1]|\n        ($root/book/backmatter/solutions)[1]|\n        ($document-root//chapter/solutions|$root/article/solutions|$root/article/backmatter/solutions)[1]|\n        ($document-root//section/solutions)[1]|\n        ($document-root//subsection/solutions)[1]|\n        ($document-root//subsubsection/solutions)[1]|\n        ($document-root//chapter/worksheet|$root/article/worksheet)[1]|\n        ($document-root//section/worksheet)[1]|\n        ($document-root//subsection/worksheet)[1]|\n        ($document-root//subsubsection/worksheet)[1]|\n        ($document-root//chapter/handout|$root/article/handout)[1]|\n        ($document-root//section/handout)[1]|\n        ($document-root//subsection/handout)[1]|\n        ($document-root//subsubsection/handout)[1]|\n        ($document-root//chapter/reading-questions|$root/article/reading-questions)[1]|\n        ($document-root//section/reading-questions)[1]|\n        ($document-root//subsection/reading-questions)[1]|\n        ($document-root//subsubsection/reading-questions)[1]|\n        ($root/book/backmatter/glossary)[1]|\n        ($document-root//chapter/glossary|$root/article/backmatter/glossary|$root/book/backmatter/appendix/glossary)[1]|\n        ($document-root//section/glossary|$root/article/backmatter/appendix/glossary)[1]|\n        ($document-root//subsection/glossary)[1]|\n        ($document-root//subsubsection/glossary)[1]|\n        ($root/book/backmatter/references)[1]|\n        ($document-root//chapter/references|$root/article/references|$root/article/backmatter/references|$root/book/backmatter/appendix/references)[1]|\n        ($document-root//section/references|$root/article/backmatter/appendix/references)[1]|\n        ($document-root//subsection/references)[1]|\n        ($document-root//subsubsection/references)[1]\"/>\n    <xsl:text>%% Create environments for possible occurences of each division&#xa;</xsl:text>\n    <xsl:for-each select=\"$division-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% Styles for six traditional LaTeX divisions&#xa;</xsl:text>\n    <!-- Create six title styles, part to paragraph     -->\n    <!-- NB: paragraph is like a \"subsubsubsection\"     -->\n    <!-- \"titlesec\" works on a level basis, so          -->\n    <!-- we just build all six named styles             -->\n    <!-- N.B.: we are using the LaTeX \"subparagraph\"    -->\n    <!-- traditional division for a PTX \"paragraphs\",   -->\n    <!-- but perhaps we can fake that with a tcolorbox, -->\n    <!-- since we don't allow it to be styled.          -->\n    <xsl:call-template name=\"titlesec-part-style\"/>\n    <xsl:call-template name=\"titlesec-chapter-style\"/>\n    <xsl:call-template name=\"titlesec-section-style\"/>\n    <xsl:call-template name=\"titlesec-subsection-style\"/>\n    <xsl:call-template name=\"titlesec-subsubsection-style\"/>\n    <xsl:call-template name=\"titlesec-paragraph-style\"/>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% Styles for five traditional LaTeX divisions&#xa;</xsl:text>\n    <!-- Create five title styles, part to subsubsection -->\n    <xsl:call-template name=\"titletoc-part-style\"/>\n    <xsl:call-template name=\"titletoc-chapter-style\"/>\n    <xsl:call-template name=\"titletoc-section-style\"/>\n    <xsl:call-template name=\"titletoc-subsection-style\"/>\n    <xsl:call-template name=\"titletoc-subsubsection-style\"/>\n    <xsl:text>%%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Semantic Macros -->\n<xsl:template name=\"semantic-macros\">\n    <xsl:text>%% Begin: Semantic Macros&#xa;</xsl:text>\n    <xsl:text>%% To preserve meaning in a LaTeX file&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% \\mono macro for content of \"c\", \"cd\", \"tag\", etc elements&#xa;</xsl:text>\n    <xsl:text>%% Also used automatically in other constructions&#xa;</xsl:text>\n    <xsl:text>%% Simply an alias for \\texttt&#xa;</xsl:text>\n    <xsl:text>%% Always defined, even if there is no need, or if a specific tt font is not loaded&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\mono}[1]{\\texttt{#1}}&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <!-- \\linkhilite macro for highlighting hyperlinks (xref, url) -->\n    <!-- Only defined when needed, i.e. when not \"none\"            -->\n    <!-- \"underline\": wraps with \\underline                        -->\n    <xsl:if test=\"$latex-link-highlight != 'none'\">\n        <xsl:text>%% \\linkhilite macro: wraps hyperlink visible text for highlighting&#xa;</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"$latex-link-highlight = 'underline'\">\n                <xsl:text>\\newcommand{\\linkhilite}[1]{\\underline{#1}}&#xa;</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:if>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% Following semantic macros are only defined here if their&#xa;</xsl:text>\n    <xsl:text>%% use is required only in this specific document&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:variable name=\"one-line-reps\" select=\"\n        ($document-root//abbr)[1]|\n        ($document-root//acro)[1]|\n        ($document-root//init)[1]\"/>\n    <!-- (after fillin before swung-dash) -->\n    <!-- Eventually move explanation of section to condition  -->\n    <xsl:for-each select=\"$one-line-reps\">\n        <xsl:apply-templates select=\".\" mode=\"tex-macro\"/>\n    </xsl:for-each>\n    <xsl:if test=\"$document-root//alert\">\n        <xsl:text>%% Used for warnings, typically bold and italic&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\alert}[1]{\\textbf{\\textit{#1}}}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//term\">\n        <xsl:text>%% Used for inline definitions of terms&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\terminology}[1]{\\textbf{#1}}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- 2018-02-05: \"booktitle\" deprecated -->\n    <xsl:if test=\"$document-root//pubtitle|$document-root//booktitle\">\n        <xsl:text>%% Titles of longer works (e.g. books, versus articles)&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\pubtitle}[1]{\\textsl{#1}}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- http://tex.stackexchange.com/questions/23711/strikethrough-text -->\n    <!-- http://tex.stackexchange.com/questions/287599/thickness-for-sout-strikethrough-command-from-ulem-package -->\n    <xsl:if test=\"$document-root//insert|$document-root//delete|$document-root//stale\">\n        <xsl:text>%% Edits (insert, delete), stale (irrelevant, obsolete)&#xa;</xsl:text>\n        <xsl:text>%% Package: underlines and strikethroughs, no change to \\emph{}&#xa;</xsl:text>\n        <xsl:text>\\usepackage[normalem]{ulem}&#xa;</xsl:text>\n        <xsl:text>%% Rules in this package reset proportional to fontsize&#xa;</xsl:text>\n        <xsl:text>%% NB: *never* reset to package default (0.4pt?) after use&#xa;</xsl:text>\n        <xsl:text>%% Macros will use colors for \"electronic\" version (the default)&#xa;</xsl:text>\n        <xsl:if test=\"$document-root//insert\">\n            <xsl:text>%% Used for an edit that is an addition&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\insertthick}{.1ex}&#xa;</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$b-latex-print\">\n                    <xsl:text>\\newcommand{\\inserted}[1]{\\renewcommand{\\ULthickness}{\\insertthick}\\uline{#1}}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>\\newcommand{\\inserted}[1]{\\renewcommand{\\ULthickness}{\\insertthick}\\textcolor{green}{\\uline{#1}}}&#xa;</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:if>\n        <xsl:if test=\"$document-root//delete\">\n            <xsl:text>%% Used for an edit that is a deletion&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\deletethick}{.25ex}&#xa;</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$b-latex-print\">\n                    <xsl:text>\\newcommand{\\deleted}[1]{\\renewcommand{\\ULthickness}{\\deletethick}\\sout{#1}}&#xa;</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>\\newcommand{\\deleted}[1]{\\renewcommand{\\ULthickness}{\\deletethick}\\textcolor{red}{\\sout{#1}}}&#xa;</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:if>\n        <xsl:if test=\"$document-root//stale\">\n            <xsl:text>%% Used for inline irrelevant or obsolete text&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\stalethick}{.1ex}&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\stale}[1]{\\renewcommand{\\ULthickness}{\\stalethick}\\sout{#1}}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$document-root//fillin[not(parent::m or parent::mrow)]\">\n        <xsl:call-template name=\"fillin-text\"/>\n    </xsl:if>\n    <xsl:if test=\"$document-root//m/fillin|$document-root//mrow/fillin\">\n        <xsl:call-template name=\"fillin-math\"/>\n    </xsl:if>\n    <!-- http://andrewmccarthy.ie/2014/11/06/swung-dash-in-latex/ -->\n    <xsl:if test=\"$document-root//swungdash\">\n        <xsl:text>%% A character like a tilde, but different&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\swungdash}{\\raisebox{-2.25ex}{\\scalebox{2}{\\~{}}}}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//quantity\">\n        <xsl:text>%% Used for units and number formatting&#xa;</xsl:text>\n        <xsl:text>\\usepackage[per-mode=fraction]{siunitx}&#xa;</xsl:text>\n        <!-- v2 -> v3 is a major upgrade, we need to accomodate both    -->\n        <!-- Eventually we may want to just fail on version 2 and warn. -->\n        <!-- Kernel test is actually \"equal or later\" according to      -->\n        <!-- https://tex.stackexchange.com/questions/47743/             -->\n        <!--   require-a-certain-or-later-version-of-a-package          -->\n        <!-- IfPackageAtLeastTF: maybe only available since 2020-10-01? -->\n        <xsl:text>%% v3 dated 2021-05-17, fix major behavior change&#xa;</xsl:text>\n        <xsl:text>\\makeatletter%&#xa;</xsl:text>\n        <xsl:text>\\@ifpackagelater{siunitx}{2021/05/17}&#xa;</xsl:text>\n        <xsl:text>{%&#xa;</xsl:text>\n        <xsl:text>\\typeout{PTX: discovered siunitx v3, >= 2021-05-17}%&#xa;</xsl:text>\n        <xsl:text>\\sisetup{parse-numbers = false}%&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>{%&#xa;</xsl:text>\n        <xsl:text>\\typeout{PTX: discovered siunitx v2, &lt; 2021-05-17}%&#xa;</xsl:text>\n        <xsl:text>}%&#xa;</xsl:text>\n        <xsl:text>\\makeatother%&#xa;</xsl:text>\n        <xsl:text>\\sisetup{inter-unit-product=\\cdot}&#xa;</xsl:text>\n        <xsl:text>\\ifxetex\\sisetup{math-micro=\\text{µ},text-micro=µ}\\fi</xsl:text>\n        <xsl:text>\\ifluatex\\sisetup{math-micro=\\text{µ},text-micro=µ}\\fi</xsl:text>\n        <xsl:text>%% Common non-SI units&#xa;</xsl:text>\n        <xsl:for-each select=\"document('pretext-units.xsl')//base[@siunitx]\">\n            <xsl:text>\\DeclareSIUnit\\</xsl:text>\n            <xsl:value-of select=\"@full\" />\n            <xsl:text>{</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"@siunitx='none'\">\n                    <xsl:value-of select=\"@short\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"@siunitx\" />\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:for-each>\n    </xsl:if>\n    <xsl:if test=\"$document-root//ol/li/title|$document-root//ul/li/title|$document-root//task/title\">\n        <!-- Styling: expose this macro to easier overriding for style work -->\n        <!-- NB: needs a rename (and duplication) before exposing publicly  -->\n        <!-- conditional can be split for list items v. tasks               -->\n        <xsl:text>%% Style of a title on a list item, for ordered and unordered lists&#xa;</xsl:text>\n        <xsl:text>%% Also \"task\" of exercise, PROJECT-LIKE, EXAMPLE-LIKE&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\lititle}[1]{{\\slshape#1}}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>%% End: Semantic Macros&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Exercises and solutions setup -->\n<xsl:template name=\"exercises-and-solutions\">\n    <xsl:if test=\"$document-root//solutions or $b-needs-solution-styles\">\n        <xsl:text>%% begin: environments for duplicates in solutions divisions&#xa;</xsl:text>\n        <!-- Solutions present, check for exercise types     -->\n        <!-- This may have false positives, but no real harm -->\n        <!--  -->\n        <!-- solutions to inline exercises -->\n        <xsl:if test=\"$document-root//exercise[boolean(&INLINE-EXERCISE-FILTER;)]\">\n        <xsl:text>%% Solutions to inline exercises, style and environment&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ inlinesolutionstyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, after title={\\space}, breakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n            <xsl:text>\\newtcolorbox{inlinesolution}[4]</xsl:text>\n            <xsl:text>{inlinesolutionstyle, title={\\hyperref[#4]{#1~#2}\\notblank{#3}{\\space#3}{}}}&#xa;</xsl:text>\n        </xsl:if>\n        <!-- Division Solution -->\n        <!-- Explicitly breakable, run-in title -->\n        <xsl:if test=\"$document-root//exercises//exercise[not(ancestor::exercisegroup)]|$document-root//worksheet//exercise[not(ancestor::exercisegroup)]|$document-root//reading-questions//exercise[not(ancestor::exercisegroup)]\">\n            <xsl:text>%% Solutions to division exercises, not in exercise group&#xa;</xsl:text>\n            <xsl:text>%% Parameter #1 is type-name and is ignored&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ divisionsolutionstyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, after title={\\space}, breakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n            <xsl:text>\\newtcolorbox{divisionsolution}[4]</xsl:text>\n            <xsl:text>{divisionsolutionstyle, title={\\hyperlink{#4}{#2}.\\notblank{#3}{\\space#3}{}}}&#xa;</xsl:text>\n        </xsl:if>\n        <!-- Division Solution, Exercise Group -->\n        <!-- Explicitly breakable, run-in title -->\n        <xsl:if test=\"$document-root//exercisegroup[not(@cols)]\">\n            <xsl:text>%% Solutions to division exercises, in exercise group, no columns&#xa;</xsl:text>\n            <xsl:text>%% Parameter #1 is type-name and is ignored&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ divisionsolutionegstyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, after title={\\space}, left skip=\\egindent, breakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n            <xsl:text>\\newtcolorbox{divisionsolutioneg}[4]</xsl:text>\n            <xsl:text>{divisionsolutionegstyle, title={\\hyperlink{#4}{#2}.\\notblank{#3}{\\space#3}{}}}&#xa;</xsl:text>\n        </xsl:if>\n        <!-- Division Solution, Exercise Group, Columnar -->\n        <!-- Explicity unbreakable, to behave in multicolumn tcbraster -->\n        <xsl:if test=\"$document-root//exercisegroup/@cols\">\n            <xsl:text>%% Solutions to division exercises, in exercise group with columns&#xa;</xsl:text>\n            <xsl:text>%% Parameter #1 is type-name and is ignored&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ divisionsolutionegcolstyle/.style={bwminimalstyle, runintitlestyle,  exercisespacingstyle, after title={\\space}, halign=flush left, unbreakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n            <xsl:text>\\newtcolorbox{divisionsolutionegcol}[4]</xsl:text>\n            <xsl:text>{divisionsolutionegcolstyle, title={\\hyperlink{#4}{#2}.\\notblank{#3}{\\space#3}{}}}&#xa;</xsl:text>\n        </xsl:if>\n        <!-- solutions to PROJECT-LIKE -->\n        <!-- \"project-rep\" variable defined twice (each local) -->\n        <xsl:variable name=\"project-reps\" select=\"\n            ($document-root//project)[1]|\n            ($document-root//activity)[1]|\n            ($document-root//exploration)[1]|\n            ($document-root//investigation)[1]\"/>\n        <xsl:for-each select=\"$project-reps\">\n            <xsl:variable name=\"elt-name\">\n                <xsl:value-of select=\"local-name(.)\"/>\n            </xsl:variable>\n            <!-- set the style -->\n            <xsl:text>\\tcbset{ </xsl:text>\n            <xsl:value-of select=\"$elt-name\"/>\n            <xsl:text>solutionstyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, after title={\\space}, breakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n            <!-- create the environment -->\n            <xsl:text>\\newtcolorbox{</xsl:text>\n            <xsl:value-of select=\"$elt-name\"/>\n            <xsl:text>solution}[4]</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:value-of select=\"$elt-name\"/>\n            <xsl:text>solutionstyle, title={\\hyperref[#4]{#1~#2}\\notblank{#3}{\\space#3}{}}}&#xa;</xsl:text>\n        </xsl:for-each>\n    </xsl:if>\n    <!-- Generic exercise lead-in -->\n    <xsl:if test=\"$document-root//exercises//exercise|$document-root//worksheet//exercise|$document-root//reading-questions//exercise\">\n        <xsl:text>%% Divisional exercises (and worksheet) as LaTeX environments&#xa;</xsl:text>\n        <xsl:text>%% Third argument is option for extra workspace in worksheets&#xa;</xsl:text>\n        <xsl:text>%% Hanging indent occupies a 5ex width slot prior to left margin&#xa;</xsl:text>\n        <xsl:text>%% Experimentally this seems just barely sufficient for a bold \"888.\"&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Division Exercise -->\n    <!-- Numbered, styled with a hanging indent -->\n    <xsl:if test=\"$document-root//exercises//exercise[not(ancestor::exercisegroup)]|$document-root//worksheet//exercise[not(ancestor::exercisegroup)]|$document-root//reading-questions//exercise[not(ancestor::exercisegroup)]\">\n        <xsl:text>%% Division exercises, not in exercise group&#xa;</xsl:text>\n        <!-- Outdenting the problem number requires an \"\\hspace*\" to avoid an edge case -->\n        <!-- https://tex.stackexchange.com/questions/722329/unwanted-space-in-tcbraster -->\n        <!-- https://tex.stackexchange.com/questions/89082/hspace-vs-hspace             -->\n        <xsl:text>\\tcbset{ divisionexercisestyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, left=5ex, breakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox{divisionexercise}[4]</xsl:text>\n        <xsl:text>{divisionexercisestyle, before title={\\hspace*{-5ex}\\makebox[5ex][l]{#1.}}, title={\\notblank{#2}{#2}{}}, after title={\\notblank{#2}{\\space}{}}, phantom={</xsl:text>\n        <xsl:if test=\"$b-pageref\">\n            <xsl:text>\\label{#4}</xsl:text>\n        </xsl:if>\n        <xsl:text>\\hypertarget{#4}{}}, after={\\notblank{#3}{\\par\\rule{\\workspacestrutwidth}{#3}\\par\\vfill}{\\par}}}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Division Exercise, Exercise Group -->\n    <!-- The exercise itself carries the indentation, hence we can use breakable -->\n    <!-- boxes and get good page breaks (as these problems could be long)        -->\n    <xsl:if test=\"$document-root//exercisegroup[not(@cols)]\">\n        <xsl:text>%% Division exercises, in exercise group, no columns&#xa;</xsl:text>\n        <!-- Outdenting the problem number requires an \"\\hspace*\" to avoid an edge case -->\n        <!-- https://tex.stackexchange.com/questions/722329/unwanted-space-in-tcbraster -->\n        <!-- https://tex.stackexchange.com/questions/89082/hspace-vs-hspace             -->\n        <xsl:text>\\tcbset{ divisionexerciseegstyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, left=5ex, left skip=\\egindent, breakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox{divisionexerciseeg}[4]</xsl:text>\n        <xsl:text>{divisionexerciseegstyle, before title={\\hspace*{-5ex}\\makebox[5ex][l]{#1.}}, title={\\notblank{#2}{#2}{}}, after title={\\notblank{#2}{\\space}{}}, phantom={</xsl:text>\n        <xsl:if test=\"$b-pageref\">\n            <xsl:text>\\label{#4}</xsl:text>\n        </xsl:if>\n        <xsl:text>\\hypertarget{#4}{}}, after={\\notblank{#3}{\\par\\rule{\\workspacestrutwidth}{#3}\\par\\vfill}{\\par}}}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Division Exercise, Exercise Group, Columnar -->\n    <!-- Explicity unbreakable, to behave in multicolumn tcbraster -->\n    <xsl:if test=\"$document-root//exercisegroup/@cols\">\n        <xsl:text>%% Division exercises, in exercise group with columns&#xa;</xsl:text>\n        <!-- Outdenting the problem number requires an \"\\hspace*\" to avoid an edge case -->\n        <!-- https://tex.stackexchange.com/questions/722329/unwanted-space-in-tcbraster -->\n        <!-- https://tex.stackexchange.com/questions/89082/hspace-vs-hspace             -->\n        <xsl:text>\\tcbset{ divisionexerciseegcolstyle/.style={bwminimalstyle, runintitlestyle, exercisespacingstyle, left=5ex, halign=flush left, unbreakable, before upper app={\\setparstyle} } }&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox{divisionexerciseegcol}[4]</xsl:text>\n        <xsl:text>{divisionexerciseegcolstyle, before title={\\hspace*{-5ex}\\makebox[5ex][l]{#1.}}, title={\\notblank{#2}{#2}{}}, after title={\\notblank{#2}{\\space}{}}, phantom={</xsl:text>\n        <xsl:if test=\"$b-pageref\">\n            <xsl:text>\\label{#4}</xsl:text>\n        </xsl:if>\n        <xsl:text>\\hypertarget{#4}{}}, after upper={\\notblank{#3}{\\par\\rule{\\workspacestrutwidth}{#3}\\par\\vfill}{\\par}}}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//@workspace\">\n        <xsl:text>%% Worksheets and handouts children may have workspaces&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\workspacestrutwidth}&#xa;</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"$b-latex-draft-mode\">\n                <xsl:text>%% LaTeX draft mode, @workspace strut is visible&#xa;</xsl:text>\n                <xsl:text>\\setlength{\\workspacestrutwidth}{2pt}&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>%% @workspace strut is invisible&#xa;</xsl:text>\n                <xsl:text>\\setlength{\\workspacestrutwidth}{0pt}&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- Chapter start number -->\n<xsl:template name=\"chapter-start-number\">\n    <!-- Publishers can start chapter numbering at will.  Chapter 0 for -->\n    <!-- the computer scientists, and perhaps a certain chapter number  -->\n    <!-- for a book spread across multiple physical valumes.            -->\n    <xsl:if test=\"$document-root//chapter and not($chapter-start = 1)\">\n        <xsl:text>%% Publisher file requests an alternate chapter numbering&#xa;</xsl:text>\n        <xsl:text>\\setcounter{chapter}{</xsl:text>\n        <xsl:value-of select=\"$chapter-start - 1\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Equation numbering -->\n<xsl:template name=\"equation-numbering\">\n    <!-- Numbering Equations -->\n    <!-- See numbering-equations variable being set in pretext-common.xsl         -->\n    <!-- With number=\"yes|no\" on mrow, we must allow for the possibility of an md  -->\n    <!-- variant having numbers (we could be more careful, but it is not critical) -->\n    <!-- NB: global numbering is level 0 and \"level-to-name\" is (a) incorrect,     -->\n    <!-- and (b) not useful (\\numberwithin will fail)                              -->\n    <!-- NB: perhaps the chngcntr package should/could be used here                -->\n    <xsl:if test=\"$document-root//men|$document-root//mdn[mrow]|$document-root//md[mrow]\">\n        <xsl:text>%% Equation Numbering&#xa;</xsl:text>\n        <xsl:text>%% Controlled by  numbering.equations.level  processing parameter&#xa;</xsl:text>\n        <xsl:text>%% No adjustment here implies document-wide numbering&#xa;</xsl:text>\n        <xsl:if test=\"not($numbering-equations = 0)\">\n            <xsl:text>\\numberwithin{equation}{</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-equations\" />\n            </xsl:call-template>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<!-- tcolorbox for images -->\n<xsl:template name=\"image-tcolorbox\">\n    <xsl:if test=\"$document-root//image\">\n        <xsl:text>%% \"tcolorbox\" environment for a single image, occupying entire \\linewidth&#xa;</xsl:text>\n        <xsl:text>%% arguments are left-margin, width, right-margin, as multiples of&#xa;</xsl:text>\n        <xsl:text>%% \\linewidth, and are guaranteed to be positive and sum to 1.0&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ imagestyle/.style={bwminimalstyle} }&#xa;</xsl:text>\n        <xsl:text>\\NewTColorBox{tcbimage}{mmm}{imagestyle,left skip=#1\\linewidth,width=#2\\linewidth}&#xa;</xsl:text>\n        <xsl:text>%% Wrapper environment for tcbimage environment with a fourth argument&#xa;</xsl:text>\n        <xsl:text>%% Fourth argument, if nonempty, is a vertical space adjustment&#xa;</xsl:text>\n        <xsl:text>%% and implies image will be preceded by \\leavevmode\\nopagebreak&#xa;</xsl:text>\n        <xsl:text>%% Intended use is for alignment with a list marker&#xa;</xsl:text>\n        <xsl:text>\\NewDocumentEnvironment{image}{mmmm}{\\notblank{#4}{\\leavevmode\\nopagebreak\\vspace{#4}}{}\\begin{tcbimage}{#1}{#2}{#3}}{\\end{tcbimage}%&#xa;}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Tables -->\n<xsl:template name=\"tables\">\n    <xsl:if test=\"$document-root//tabular\">\n        <xsl:text>%% For improved tables&#xa;</xsl:text>\n        <xsl:text>\\usepackage{array}&#xa;</xsl:text>\n        <xsl:text>%% Some extra height on each row is desirable, especially with horizontal rules&#xa;</xsl:text>\n        <xsl:text>%% Increment determined experimentally&#xa;</xsl:text>\n        <xsl:text>\\setlength{\\extrarowheight}{0.2ex}&#xa;</xsl:text>\n        <xsl:text>%% Define variable thickness horizontal rules, full and partial&#xa;</xsl:text>\n        <xsl:text>%% Thicknesses are 0.03, 0.05, 0.08 in the  booktabs  package&#xa;</xsl:text>\n        <!-- http://tex.stackexchange.com/questions/119153/table-with-different-rule-widths -->\n        <xsl:text>\\newcommand{\\hrulethin}  {\\noalign{\\hrule height 0.04em}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\hrulemedium}{\\noalign{\\hrule height 0.07em}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\hrulethick} {\\noalign{\\hrule height 0.11em}}&#xa;</xsl:text>\n        <!-- http://tex.stackexchange.com/questions/24549/horizontal-rule-with-adjustable-height-behaving-like-clinen-m -->\n        <!-- Could preserve/restore \\arrayrulewidth on entry/exit to tabular -->\n        <!-- But we'll get cleaner source with this built into macros        -->\n        <!-- Could condition \\setlength debacle on the use of extpfeil       -->\n        <!-- arrows (see discussion below)                                   -->\n        <xsl:text>%% We preserve a copy of the \\setlength package before other&#xa;</xsl:text>\n        <xsl:text>%% packages (extpfeil) get a chance to load packages that redefine it&#xa;</xsl:text>\n        <xsl:text>\\let\\oldsetlength\\setlength&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\Oldarrayrulewidth}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\crulethin}[1]%&#xa;</xsl:text>\n        <xsl:text>{\\noalign{\\global\\oldsetlength{\\Oldarrayrulewidth}{\\arrayrulewidth}}%&#xa;</xsl:text>\n        <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{0.04em}}\\cline{#1}%&#xa;</xsl:text>\n        <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{\\Oldarrayrulewidth}}}%&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\crulemedium}[1]%&#xa;</xsl:text>\n        <xsl:text>{\\noalign{\\global\\oldsetlength{\\Oldarrayrulewidth}{\\arrayrulewidth}}%&#xa;</xsl:text>\n        <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{0.07em}}\\cline{#1}%&#xa;</xsl:text>\n        <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{\\Oldarrayrulewidth}}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\crulethick}[1]%&#xa;</xsl:text>\n        <xsl:text>{\\noalign{\\global\\oldsetlength{\\Oldarrayrulewidth}{\\arrayrulewidth}}%&#xa;</xsl:text>\n        <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{0.11em}}\\cline{#1}%&#xa;</xsl:text>\n        <xsl:text>\\noalign{\\global\\oldsetlength{\\arrayrulewidth}{\\Oldarrayrulewidth}}}&#xa;</xsl:text>\n        <!-- http://tex.stackexchange.com/questions/119153/table-with-different-rule-widths -->\n        <xsl:text>%% Single letter column specifiers defined via array package&#xa;</xsl:text>\n        <xsl:text>\\newcolumntype{A}{!{\\vrule width 0.04em}}&#xa;</xsl:text>\n        <xsl:text>\\newcolumntype{B}{!{\\vrule width 0.07em}}&#xa;</xsl:text>\n        <xsl:text>\\newcolumntype{C}{!{\\vrule width 0.11em}}&#xa;</xsl:text>\n        <!-- naked tabulars work best in a tcolorbox -->\n        <xsl:text>%% tcolorbox to place tabular outside of a sidebyside&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ tabularboxstyle/.style={bwminimalstyle,} }&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox{tabularbox}[3]{tabularboxstyle, left skip=#1\\linewidth, width=#2\\linewidth,}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//cell/line\">\n        <xsl:text>\\newcommand{\\tablecelllines}[3]%&#xa;</xsl:text>\n        <xsl:text>{\\begin{tabular}[#2]{@{}#1@{}}#3\\end{tabular}}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Numbering Footnotes -->\n<xsl:template name=\"footnote-numbering\">\n    <xsl:if test=\"$document-root//fn\">\n        <xsl:text>%% Footnote Numbering&#xa;</xsl:text>\n        <xsl:text>%% Specified by numbering.footnotes.level&#xa;</xsl:text>\n        <xsl:if test=\"$b-is-book\">\n            <xsl:text>%% Undo counter reset by chapter for a book&#xa;</xsl:text>\n            <xsl:text>\\counterwithout{footnote}{chapter}&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:choose>\n            <xsl:when test=\"$numbering-footnotes = 0\">\n                <xsl:text>%% Global numbering, since numbering.footnotes.level = 0&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\counterwithin*{footnote}{</xsl:text>\n                <xsl:call-template name=\"level-to-name\">\n                    <xsl:with-param name=\"level\" select=\"$numbering-footnotes\" />\n                </xsl:call-template>\n                <xsl:text>}&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:if>\n    <!-- If there is a <support> tag in an article, create a unnumbered footnote environment for it -->\n    <xsl:if test=\"$b-is-article and $bibinfo/support\">\n        <xsl:text>%% add a \\support command as unnumbered footnote&#xa;</xsl:text>\n        <xsl:text>\\let\\svdthefootnote\\thefootnote%&#xa;</xsl:text>\n        <xsl:text>\\newcommand\\support[1]{%&#xa;</xsl:text>\n        <xsl:text>  \\let\\thefootnote\\relax%&#xa;</xsl:text>\n        <xsl:text>  \\footnotetext{#1}%&#xa;</xsl:text>\n        <xsl:text>  \\let\\thefootnote\\svdthefootnote%&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Font Awesome package -->\n<xsl:template name=\"font-awesome\">\n    <xsl:if test=\"$b-has-icon\">\n        <xsl:text>%% Font Awesome 5 icons in a LaTeX package&#xa;</xsl:text>\n        <xsl:text>%% https://ctan.org/pkg/fontawesome5 (v5.15.4) &#xa;</xsl:text>\n        <xsl:text>\\usepackage{fontawesome5}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Poetry -->\n<xsl:template name=\"poetry-support\">\n    <xsl:if test=\"$document-root//poem\">\n        <xsl:text>%% Poetry Support&#xa;</xsl:text>\n        <xsl:text>\\newenvironment{poem}{\\setlength{\\parindent}{0em}}{}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemTitle}[1]{\\begin{center}\\large\\textbf{#1}\\end{center}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemIndent}{\\hspace{2 em}}&#xa;</xsl:text>\n        <xsl:text>\\newenvironment{stanza}{\\vspace{0.25 em}\\hangindent=4em}{\\vspace{1 em}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\stanzaTitle}[1]{{\\centering\\textbf{#1}\\par}\\vspace{-\\parskip}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemauthorleft}[1]{\\vspace{-1em}\\begin{flushleft}\\textit{#1}\\end{flushleft}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemauthorcenter}[1]{\\vspace{-1em}\\begin{center}\\textit{#1}\\end{center}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemauthorright}[1]{\\vspace{-1em}\\begin{flushright}\\textit{#1}\\end{flushright}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemlineleft}[1]{{\\raggedright{#1}\\par}\\vspace{-\\parskip}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemlinecenter}[1]{{\\centering{#1}\\par}\\vspace{-\\parskip}}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\poemlineright}[1]{{\\raggedleft{#1}\\par}\\vspace{-\\parskip}}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Music -->\n<xsl:template name=\"music-support\">\n    <xsl:if test=\"$document-root//flat | $document-root//doubleflat | $document-root//sharp | $document-root//doublesharp | $document-root//natural | $document-root//n | $document-root//scaledeg | $document-root//chord\">\n        <xsl:text>%% Musical Symbol Support&#xa;</xsl:text>\n        <xsl:text>%% The musicography package builds on the \"musix\" fonts and&#xa;</xsl:text>\n        <xsl:text>%% provides music notation for use with both pdflatex and xelatex&#xa;</xsl:text>\n        <xsl:text>%% For Ubuntu/Debian use the  texlive-music  package&#xa;</xsl:text>\n        <!-- Note: package's shorthand macros  \\fl, \\sh, \\na  might conflict with authors' macros? -->\n        <xsl:text>\\usepackage{musicography}&#xa;</xsl:text>\n        <xsl:text>\\renewcommand{\\flat}{\\musFlat}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\doubleflat}{\\musDoubleFlat}&#xa;</xsl:text>\n        <xsl:text>\\renewcommand{\\sharp}{\\musSharp}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\doublesharp}{\\musDoubleSharp}&#xa;</xsl:text>\n        <xsl:text>\\renewcommand{\\natural}{\\musNatural}&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Code support -->\n<xsl:template name=\"code-support\">\n    <!-- Inconsolata font, sponsored by TUG: http://levien.com/type/myfonts/inconsolata.html            -->\n    <!-- As seen on: http://tex.stackexchange.com/questions/50810/good-monospace-font-for-code-in-latex -->\n    <!-- \"Fonts for Displaying Program Code in LaTeX\":  http://nepsweb.co.uk/docs%/progfonts.pdf        -->\n    <!-- Fonts and xelatex:  http://tex.stackexchange.com/questions/102525/use-type-1-fonts-with-xelatex -->\n    <!--   http://tex.stackexchange.com/questions/179448/beramono-in-xetex -->\n    <!-- http://tex.stackexchange.com/questions/25249/how-do-i-use-a-particular-font-for-a-small-section-of-text-in-my-document -->\n    <!-- Bitstream Vera Font names within: https://github.com/timfel/texmf/blob/master/fonts/map/vtex/bera.ali -->\n    <!-- Coloring listings: http://tex.stackexchange.com/questions/18376/beautiful-listing-for-csharp -->\n    <!-- Song and Dance for font changes: http://jevopi.blogspot.com/2010/03/nicely-formatted-listings-in-latex-with.html -->\n    <xsl:if test=\"$b-has-program or $b-has-console or $b-has-sage\">\n        <xsl:text>%% Program listing support: for listings, programs, consoles, and Sage code&#xa;</xsl:text>\n        <!-- NB: the \"listingsutf8\" package is not a panacea, as it only       -->\n        <!-- cooperates with UTF-8 characters when code snippets are read      -->\n        <!-- in from external files.  We do condition on the LaTeX engines     -->\n        <!-- since (a) it is easy and (b) the tcolorbox documentation warns    -->\n        <!-- about not being careful.  NB: LuaTeX is not tested nor supported. -->\n        <xsl:text>\\ifthenelse{\\boolean{xetex} \\or \\boolean{luatex}}%&#xa;</xsl:text>\n        <xsl:text>  {\\tcbuselibrary{listings}}%&#xa;</xsl:text>\n        <xsl:text>  {\\tcbuselibrary{listingsutf8}}%&#xa;</xsl:text>\n        <xsl:text>%% We define the listings font style to be the default \"ttfamily\"&#xa;</xsl:text>\n        <xsl:text>%% To fix hyphens/dashes rendered in PDF as fancy minus signs by listing&#xa;</xsl:text>\n        <xsl:text>%% http://tex.stackexchange.com/questions/33185/listings-package-changes-hyphens-to-minus-signs&#xa;</xsl:text>\n        <xsl:text>\\makeatletter&#xa;</xsl:text>\n        <xsl:text>\\lst@CCPutMacro\\lst@ProcessOther {\"2D}{\\lst@ttfamily{-{}}{-{}}}&#xa;</xsl:text>\n        <xsl:text>\\@empty\\z@\\@empty&#xa;</xsl:text>\n        <xsl:text>\\makeatother&#xa;</xsl:text>\n        <xsl:text>%% We define a null language, free of any formatting or style&#xa;</xsl:text>\n        <xsl:text>%% for use when a language is not supported, or pseudo-code, or consoles&#xa;</xsl:text>\n        <xsl:text>%% Not necessary for Sage code, so in limited cases included unnecessarily&#xa;</xsl:text>\n        <xsl:text>\\lstdefinelanguage{none}{identifierstyle=,commentstyle=,stringstyle=,keywordstyle=}&#xa;</xsl:text>\n        <xsl:text>\\ifthenelse{\\boolean{xetex}}{}{%&#xa;</xsl:text>\n        <xsl:text>%% begin: pdflatex-specific listings configuration&#xa;</xsl:text>\n        <xsl:text>%% translate U+0080 - U+00F0 to their textmode LaTeX equivalents&#xa;</xsl:text>\n        <xsl:text>%% Data originally from https://www.w3.org/Math/characters/unicode.xml, 2016-07-23&#xa;</xsl:text>\n        <xsl:text>%% Lines marked in XSL with \"$\" were converted from mathmode to textmode&#xa;</xsl:text>\n        <!-- encoding, etc: http://tex.stackexchange.com/questions/24528/ -->\n        <!-- Format: {Unicode}{TeX}{rendered-length} Unicode name (in numerical order) -->\n        <xsl:text>\\lstset{extendedchars=true}&#xa;</xsl:text>\n        <xsl:text>\\lstset{literate=</xsl:text>\n        <xsl:text>{&#x00A0;}{{~}}{1}</xsl:text>    <!--NO-BREAK SPACE-->\n        <xsl:text>{&#x00A1;}{{\\textexclamdown }}{1}</xsl:text>    <!--INVERTED EXCLAMATION MARK-->\n        <xsl:text>{&#x00A2;}{{\\textcent }}{1}</xsl:text>    <!--CENT SIGN-->\n        <xsl:text>{&#x00A3;}{{\\textsterling }}{1}</xsl:text>    <!--POUND SIGN-->\n        <xsl:text>{&#x00A4;}{{\\textcurrency }}{1}</xsl:text>    <!--CURRENCY SIGN-->\n        <xsl:text>{&#x00A5;}{{\\textyen }}{1}</xsl:text>    <!--YEN SIGN-->\n        <xsl:text>{&#x00A6;}{{\\textbrokenbar }}{1}</xsl:text>    <!--BROKEN BAR-->\n        <xsl:text>{&#x00A7;}{{\\textsection }}{1}</xsl:text>    <!--SECTION SIGN-->\n        <xsl:text>{&#x00A8;}{{\\textasciidieresis }}{1}</xsl:text>    <!--DIAERESIS-->\n        <xsl:text>{&#x00A9;}{{\\textcopyright }}{1}</xsl:text>    <!--COPYRIGHT SIGN-->\n        <xsl:text>{&#x00AA;}{{\\textordfeminine }}{1}</xsl:text>    <!--FEMININE ORDINAL INDICATOR-->\n        <xsl:text>{&#x00AB;}{{\\guillemotleft }}{1}</xsl:text>    <!--LEFT-POINTING DOUBLE ANGLE QUOTATION MARK-->\n        <xsl:text>{&#x00AC;}{{\\textlnot }}{1}</xsl:text>    <!--NOT SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00AD;}{{\\-}}{1}</xsl:text>    <!--SOFT HYPHEN-->\n        <xsl:text>{&#x00AE;}{{\\textregistered }}{1}</xsl:text>    <!--REGISTERED SIGN-->\n        <xsl:text>{&#x00AF;}{{\\textasciimacron }}{1}</xsl:text>    <!--MACRON-->\n        <xsl:text>{&#x00B0;}{{\\textdegree }}{1}</xsl:text>    <!--DEGREE SIGN-->\n        <xsl:text>{&#x00B1;}{{\\textpm }}{1}</xsl:text>    <!--PLUS-MINUS SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00B2;}{{\\texttwosuperior }}{1}</xsl:text>    <!--SUPERSCRIPT TWO-->  <!-- $ -->\n        <xsl:text>{&#x00B3;}{{\\textthreesuperior }}{1}</xsl:text>    <!--SUPERSCRIPT THREE-->   <!-- $ -->\n        <xsl:text>{&#x00B4;}{{\\textasciiacute }}{1}</xsl:text>    <!--ACUTE ACCENT-->\n        <xsl:text>{&#x00B5;}{{\\textmu }}{1}</xsl:text>    <!--MICRO SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00B6;}{{\\textparagraph }}{1}</xsl:text>    <!--PILCROW SIGN-->\n        <xsl:text>{&#x00B7;}{{\\textperiodcentered }}{1}</xsl:text>    <!--MIDDLE DOT-->  <!-- $ -->\n        <xsl:text>{&#x00B8;}{{\\c{}}}{1}</xsl:text>    <!--CEDILLA-->\n        <xsl:text>{&#x00B9;}{{\\textonesuperior }}{1}</xsl:text>    <!--SUPERSCRIPT ONE-->  <!-- $ -->\n        <xsl:text>{&#x00BA;}{{\\textordmasculine }}{1}</xsl:text>    <!--MASCULINE ORDINAL INDICATOR-->\n        <xsl:text>{&#x00BB;}{{\\guillemotright }}{1}</xsl:text>    <!--RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK-->\n        <xsl:text>{&#x00BC;}{{\\textonequarter }}{1}</xsl:text>    <!--VULGAR FRACTION ONE QUARTER-->\n        <xsl:text>{&#x00BD;}{{\\textonehalf }}{1}</xsl:text>    <!--VULGAR FRACTION ONE HALF-->\n        <xsl:text>{&#x00BE;}{{\\textthreequarters }}{1}</xsl:text>    <!--VULGAR FRACTION THREE QUARTERS-->\n        <xsl:text>{&#x00BF;}{{\\textquestiondown }}{1}</xsl:text>    <!--INVERTED QUESTION MARK-->\n        <xsl:text>{&#x00C0;}{{\\`{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH GRAVE-->\n        <xsl:text>{&#x00C1;}{{\\'{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH ACUTE-->\n        <xsl:text>{&#x00C2;}{{\\^{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00C3;}{{\\~{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH TILDE-->\n        <xsl:text>{&#x00C4;}{{\\\"{A}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH DIAERESIS-->\n        <xsl:text>{&#x00C5;}{{\\AA }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER A WITH RING ABOVE-->\n        <xsl:text>{&#x00C6;}{{\\AE }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER AE-->\n        <xsl:text>{&#x00C7;}{{\\c{C}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER C WITH CEDILLA-->\n        <xsl:text>{&#x00C8;}{{\\`{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH GRAVE-->\n        <xsl:text>{&#x00C9;}{{\\'{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH ACUTE-->\n        <xsl:text>{&#x00CA;}{{\\^{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00CB;}{{\\\"{E}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER E WITH DIAERESIS-->\n        <xsl:text>{&#x00CC;}{{\\`{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH GRAVE-->\n        <xsl:text>{&#x00CD;}{{\\'{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH ACUTE-->\n        <xsl:text>{&#x00CE;}{{\\^{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00CF;}{{\\\"{I}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER I WITH DIAERESIS-->\n        <xsl:text>{&#x00D0;}{{\\DH }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER ETH-->\n        <xsl:text>{&#x00D1;}{{\\~{N}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER N WITH TILDE-->\n        <xsl:text>{&#x00D2;}{{\\`{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH GRAVE-->\n        <xsl:text>{&#x00D3;}{{\\'{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH ACUTE-->\n        <xsl:text>{&#x00D4;}{{\\^{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00D5;}{{\\~{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH TILDE-->\n        <xsl:text>{&#x00D6;}{{\\\"{O}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH DIAERESIS-->\n        <xsl:text>{&#x00D7;}{{\\texttimes }}{1}</xsl:text>    <!--MULTIPLICATION SIGN-->\n        <xsl:text>{&#x00D8;}{{\\O }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER O WITH STROKE-->\n        <xsl:text>{&#x00D9;}{{\\`{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH GRAVE-->\n        <xsl:text>{&#x00DA;}{{\\'{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH ACUTE-->\n        <xsl:text>{&#x00DB;}{{\\^{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00DC;}{{\\\"{U}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER U WITH DIAERESIS-->\n        <xsl:text>{&#x00DD;}{{\\'{Y}}}{1}</xsl:text>    <!--LATIN CAPITAL LETTER Y WITH ACUTE-->\n        <xsl:text>{&#x00DE;}{{\\TH }}{1}</xsl:text>    <!--LATIN CAPITAL LETTER THORN-->\n        <xsl:text>{&#x00DF;}{{\\ss }}{1}</xsl:text>    <!--LATIN SMALL LETTER SHARP S-->\n        <xsl:text>{&#x00E0;}{{\\`{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH GRAVE-->\n        <xsl:text>{&#x00E1;}{{\\'{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH ACUTE-->\n        <xsl:text>{&#x00E2;}{{\\^{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00E3;}{{\\~{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH TILDE-->\n        <xsl:text>{&#x00E4;}{{\\\"{a}}}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH DIAERESIS-->\n        <xsl:text>{&#x00E5;}{{\\aa }}{1}</xsl:text>    <!--LATIN SMALL LETTER A WITH RING ABOVE-->\n        <xsl:text>{&#x00E6;}{{\\ae }}{1}</xsl:text>    <!--LATIN SMALL LETTER AE-->\n        <xsl:text>{&#x00E7;}{{\\c{c}}}{1}</xsl:text>    <!--LATIN SMALL LETTER C WITH CEDILLA-->\n        <xsl:text>{&#x00E8;}{{\\`{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH GRAVE-->\n        <xsl:text>{&#x00E9;}{{\\'{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH ACUTE-->\n        <xsl:text>{&#x00EA;}{{\\^{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00EB;}{{\\\"{e}}}{1}</xsl:text>    <!--LATIN SMALL LETTER E WITH DIAERESIS-->\n        <xsl:text>{&#x00EC;}{{\\`{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH GRAVE-->\n        <xsl:text>{&#x00ED;}{{\\'{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH ACUTE-->\n        <xsl:text>{&#x00EE;}{{\\^{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00EF;}{{\\\"{\\i}}}{1}</xsl:text>    <!--LATIN SMALL LETTER I WITH DIAERESIS-->\n        <xsl:text>{&#x00F0;}{{\\dh }}{1}</xsl:text>    <!--LATIN SMALL LETTER ETH-->\n        <xsl:text>{&#x00F1;}{{\\~{n}}}{1}</xsl:text>    <!--LATIN SMALL LETTER N WITH TILDE-->\n        <xsl:text>{&#x00F2;}{{\\`{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH GRAVE-->\n        <xsl:text>{&#x00F3;}{{\\'{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH ACUTE-->\n        <xsl:text>{&#x00F4;}{{\\^{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00F5;}{{\\~{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH TILDE-->\n        <xsl:text>{&#x00F6;}{{\\\"{o}}}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH DIAERESIS-->\n        <xsl:text>{&#x00F7;}{{\\textdiv }}{1}</xsl:text>    <!--DIVISION SIGN-->  <!-- $ -->\n        <xsl:text>{&#x00F8;}{{\\o }}{1}</xsl:text>    <!--LATIN SMALL LETTER O WITH STROKE-->\n        <xsl:text>{&#x00F9;}{{\\`{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH GRAVE-->\n        <xsl:text>{&#x00FA;}{{\\'{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH ACUTE-->\n        <xsl:text>{&#x00FB;}{{\\^{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH CIRCUMFLEX-->\n        <xsl:text>{&#x00FC;}{{\\\"{u}}}{1}</xsl:text>    <!--LATIN SMALL LETTER U WITH DIAERESIS-->\n        <xsl:text>{&#x00FD;}{{\\'{y}}}{1}</xsl:text>    <!--LATIN SMALL LETTER Y WITH ACUTE-->\n        <xsl:text>{&#x00FE;}{{\\th }}{1}</xsl:text>    <!--LATIN SMALL LETTER THORN-->\n        <xsl:text>{&#x00FF;}{{\\\"{y}}}{1}</xsl:text>    <!--LATIN SMALL LETTER Y WITH DIAERESIS-->\n        <xsl:text>}&#xa;</xsl:text> <!-- end of literate set -->\n        <xsl:text>%% end: pdflatex-specific listings configuration&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>%% End of generic listing adjustments&#xa;</xsl:text>\n        <xsl:if test=\"$b-has-program\">\n            <xsl:text>%% Program listings via new tcblisting environment&#xa;</xsl:text>\n            <xsl:text>%% First a universal color scheme for parts of any language&#xa;</xsl:text>\n            <xsl:if test=\"not($b-latex-print)\" >\n                <xsl:text>%% Colors match a subset of Google prettify \"Default\" style&#xa;</xsl:text>\n                <xsl:text>%% Full colors for \"electronic\" version&#xa;</xsl:text>\n                <xsl:text>%% http://code.google.com/p/google-code-prettify/source/browse/trunk/src/prettify.css&#xa;</xsl:text>\n                <xsl:text>\\definecolor{identifiers}{rgb}{0.375,0,0.375}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{comments}{rgb}{0.5,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{strings}{rgb}{0,0.5,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{keywords}{rgb}{0,0,0.5}&#xa;</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$b-latex-print\" >\n                <xsl:text>%% All-black colors for \"print\" version&#xa;</xsl:text>\n                <xsl:text>\\definecolor{identifiers}{rgb}{0,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{comments}{rgb}{0,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{strings}{rgb}{0,0,0}&#xa;</xsl:text>\n                <xsl:text>\\definecolor{keywords}{rgb}{0,0,0}&#xa;</xsl:text>\n            </xsl:if>\n            <xsl:text>%% Options passed to the listings package via tcolorbox&#xa;</xsl:text>\n            <xsl:text>\\lstdefinestyle{programcodestyle}{identifierstyle=\\color{identifiers},commentstyle=\\color{comments},stringstyle=\\color{strings},keywordstyle=\\color{keywords}, breaklines=true, breakatwhitespace=true, columns=fixed, extendedchars=true, aboveskip=0pt, belowskip=0pt}&#xa;</xsl:text>\n            <!-- This variant style is what will turn on line numbering -->\n            <xsl:text>\\lstdefinestyle{programcodenumberedstyle}{style=programcodestyle, numbers=left}&#xa;</xsl:text>\n            <!-- We want a \"program\" to be able to break across pages -->\n            <!-- 2020-10-07: \"breakable\" seems ineffective            -->\n            <!-- 3 ex left margin moves code off of leftrule by a generous amount -->\n            <xsl:text>\\tcbset{ programboxstyle/.style={left=3ex, right=0pt, top=0ex, bottom=0ex, middle=0pt, toptitle=0pt, bottomtitle=0pt, boxsep=0pt, &#xa;</xsl:text>\n            <xsl:text>listing only, fontupper=\\small\\ttfamily,&#xa;</xsl:text>\n            <xsl:text>colback=white, sharp corners, boxrule=-0.3pt, leftrule=0.5pt, toprule at break=-0.3pt, bottomrule at break=-0.3pt,&#xa;</xsl:text>\n            <xsl:text>breakable,&#xa;</xsl:text>\n            <xsl:text>} }&#xa;</xsl:text>\n            <!-- Repeat the box style, but move numbers out of the margin and past -->\n            <!-- the left rule with a 6ex space.  Plenty of room for double-digit  -->\n            <!-- line numbers, and should be OK for triple-digits                   -->\n            <xsl:text>%% Overwrite the margin to make room for numbers (up to line 999)&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ programboxnumberedstyle/.style={programboxstyle, left=6ex} }&#xa;</xsl:text>\n            <!-- Two \"tcblisting\" environments for numbered v. not numbered,            -->\n            <!-- see switching between them in employment in body                       -->\n            <!-- Arguments: language, left margin, width, right margin (latter ignored) -->\n            <xsl:text>\\newtcblisting{program}[4]{programboxstyle, left skip=#2\\linewidth, width=#3\\linewidth, listing options={language=#1, style=programcodestyle}}&#xa;</xsl:text>\n            <xsl:text>\\newtcblisting{programnumbered}[4]{programboxnumberedstyle, left skip=#2\\linewidth, width=#3\\linewidth, listing options={language=#1, style=programcodenumberedstyle}}&#xa;</xsl:text>\n            <!-- Arguments: language, body text. body text must start and end with a    -->\n            <!-- single character delimeter not in the text itself.                     -->\n            <xsl:text>\\newcommand{\\programfragment}[2]{\\lstinline[language=#1, style=programcodestyle, basicstyle=\\ttfamily]#2}&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$document-root//console\">\n            <xsl:text>%% Console session with prompt, input, output&#xa;</xsl:text>\n            <xsl:text>%% listings allows for escape sequences to enable LateX,&#xa;</xsl:text>\n            <xsl:text>%% so we bold the input commands via the following macro&#xa;</xsl:text>\n            <xsl:text>\\newcommand{\\consoleinput}[1]{\\textbf{#1}}&#xa;</xsl:text>\n            <!-- https://tex.stackexchange.com/questions/299401/bold-just-one-line-inside-of-lstlisting/299406 -->\n            <!-- Syntax highlighting is not so great for \"language=bash\" -->\n            <!-- Line-breaking off to match old behavior, prebreak option fails inside LaTeX for input -->\n            <xsl:text>\\lstdefinestyle{consolecodestyle}{language=none, escapeinside={(*}{*)}, identifierstyle=, commentstyle=, stringstyle=, keywordstyle=, breaklines=true, breakatwhitespace=true, columns=fixed, extendedchars=true, aboveskip=0pt, belowskip=0pt}&#xa;</xsl:text>\n            <!--  -->\n            <xsl:text>\\tcbset{ consoleboxstyle/.style={left=0pt, right=0pt, top=0ex, bottom=0ex, middle=0pt, toptitle=0pt, bottomtitle=0pt, boxsep=0pt,&#xa;</xsl:text>\n            <xsl:text>listing only, fontupper=\\small\\ttfamily,&#xa;</xsl:text>\n            <xsl:text>colback=white, boxrule=-0.3pt, toprule at break=-0.3pt, bottomrule at break=-0.3pt,&#xa;</xsl:text>\n            <xsl:text>breakable,&#xa;</xsl:text>\n            <xsl:text>} }&#xa;</xsl:text>\n            <!-- Arguments: left margin, width, right margin (latter ignored) -->\n            <xsl:text>\\newtcblisting{console}[3]{consoleboxstyle, left skip=#1\\linewidth, width=#2\\linewidth, listing options={style=consolecodestyle}}&#xa;</xsl:text>\n       </xsl:if>\n        <xsl:if test=\"$b-has-sage\">\n            <xsl:text>%% The listings package as tcolorbox for Sage code&#xa;</xsl:text>\n            <xsl:text>%% We do as much styling as possible with tcolorbox, not listings&#xa;</xsl:text>\n            <xsl:text>%% Sage's blue is 50%, we go way lighter (blue!05 would also work)&#xa;</xsl:text>\n            <xsl:text>%% Note that we defuse listings' default \"aboveskip\" and \"belowskip\"&#xa;</xsl:text>\n            <!-- NB: tcblisting \"forgets\" its colors as it breaks across pages, -->\n            <!-- and \"frame empty\" on the output is not sufficient.  So we set  -->\n            <!-- the frame color to white.                                      -->\n            <!-- See: https://tex.stackexchange.com/questions/240246/           -->\n            <!-- problem-with-tcblisting-at-page-break                          -->\n            <!-- TODO: integrate into the LaTeX styling schemes -->\n            <xsl:text>\\definecolor{sageblue}{rgb}{0.95,0.95,1}&#xa;</xsl:text>\n            <xsl:text>\\tcbset{ sagestyle/.style={left=0pt, right=0pt, top=0ex, bottom=0ex, middle=0pt, toptitle=0pt, bottomtitle=0pt,&#xa;</xsl:text>\n            <xsl:text>boxsep=4pt, listing only, fontupper=\\small\\ttfamily,&#xa;</xsl:text>\n            <xsl:text>breakable, &#xa;</xsl:text>\n            <xsl:text>listing options={language=Python,breaklines=true,breakatwhitespace=true, extendedchars=true, aboveskip=0pt, belowskip=0pt}} }&#xa;</xsl:text>\n            <xsl:text>\\newtcblisting{sageinput}{sagestyle, colback=sageblue, sharp corners, boxrule=0.5pt, toprule at break=-0.3pt, bottomrule at break=-0.3pt, }&#xa;</xsl:text>\n            <xsl:text>\\newtcblisting{sageoutput}{sagestyle, colback=white, colframe=white, frame empty, before skip=0pt, after skip=0pt, }&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$document-root//pre|$document-root//cd|$document-root//fragment\">\n        <xsl:text>%% Fancy Verbatim for consoles, preformatted, code display, literate programming&#xa;</xsl:text>\n        <xsl:text>\\usepackage{fancyvrb}&#xa;</xsl:text>\n        <xsl:if test=\"$document-root//pre|$document-root//fragment\">\n            <xsl:text>%% Pre-formatted text, a peer of paragraphs&#xa;</xsl:text>\n            <xsl:text>\\DefineVerbatimEnvironment{preformatted}{Verbatim}{}&#xa;</xsl:text>\n        </xsl:if>\n        <!-- see commit d2560edd0cc3974c for removal of code for a centered box of verbatim text -->\n        <xsl:if test=\"$document-root//cd\">\n            <xsl:text>%% code display (cd), by analogy with math display (md)&#xa;</xsl:text>\n            <xsl:text>%% (a) indented slightly, so a paragraph appears to hang together&#xa;</xsl:text>\n            <xsl:text>\\DefineVerbatimEnvironment{codedisplay}{Verbatim}{xleftmargin=4ex}&#xa;</xsl:text>\n            <xsl:text>%% (b) flush left works well in exceptions like list items, etc&#xa;</xsl:text>\n            <xsl:text>\\DefineVerbatimEnvironment{codedisplayleft}{Verbatim}{}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<!-- Lists and related layouts -->\n<xsl:template name=\"list-layout\">\n    <!-- TODO:  \\showidx package as part of a draft mode, prints entries in margin -->\n     <xsl:if test=\"($index-maker = 'pretext') or\n                   ($document-root//ol[@cols]|$document-root//ul[@cols]|$document-root//contributors)\">\n        <xsl:text>%% Multiple column, column-major lists&#xa;</xsl:text>\n        <xsl:text>%% ol, ul, contributors, PreTeXt index&#xa;</xsl:text>\n        <xsl:text>\\usepackage{multicol}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//@landscape\">\n        <xsl:text>%% The rotating package provides sidewaysfigure and sidewaystables environments&#xa;</xsl:text>\n        <xsl:text>\\usepackage{rotating}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//ol or $document-root//ul or $document-root//task or $document-root//references or $b-has-webwork-var\">\n        <xsl:text>%% More flexible list management, esp. for references&#xa;</xsl:text>\n        <xsl:text>%% But also for specifying labels (i.e. custom order) on nested lists&#xa;</xsl:text>\n        <xsl:text>\\usepackage</xsl:text>\n        <!-- next test is simpler than necessary, only needed for 'popup' versions of @form -->\n        <xsl:if test=\"$b-has-webwork-var\">\n            <xsl:text>[inline]</xsl:text>\n        </xsl:if>\n        <xsl:text>{enumitem}&#xa;</xsl:text>\n        <xsl:if test=\"$document-root//references\">\n            <xsl:text>%% Lists of references in their own section, maximum depth 1&#xa;</xsl:text>\n            <xsl:text>\\newlist{referencelist}{description}{4}&#xa;</xsl:text>\n            <!-- labelindent defaults to 0, ! means computed -->\n            <xsl:text>\\setlist[referencelist]{leftmargin=!,labelwidth=!,labelsep=0ex,itemsep=1.0ex,topsep=1.0ex,partopsep=0pt,parsep=0pt}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$document-root//dl\">\n        <xsl:text>%% Description lists as tcolorbox sidebyside&#xa;</xsl:text>\n        <xsl:text>%% \"dli\" short for \"description list item\"&#xa;</xsl:text>\n        <!-- title widths, gaps, from David Farmer, ~2021-09-15, pretext-support, \"inline titles\" -->\n        <xsl:text>\\newlength{\\dlititlewidth}&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\dlimaxnarrowtitle}\\setlength{\\dlimaxnarrowtitle}{11ex}&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\dlimaxmediumtitle}\\setlength{\\dlimaxmediumtitle}{18ex}&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\dlimaxwidetitle}\\setlength{\\dlimaxwidetitle}{25ex}&#xa;</xsl:text>\n        <!-- \"top seam\" alignment works better for titles that are display math -->\n        <!-- halign applies only to \"upper\", which is \"right\" in sidebyside     -->\n        <xsl:text>\\tcbset{ dlistyle/.style={sidebyside, sidebyside align=top seam, lower separated=false, bwminimalstyle, bottomtitle=0.75ex, after skip=1.5ex, boxsep=0pt, left=0pt, right=0pt, top=0pt, bottom=0pt, before lower app={\\setparstyle\\noindent}} }&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ dlinarrowstyle/.style={dlistyle, lefthand width=\\dlimaxnarrowtitle, sidebyside gap=1ex, halign=flush left, righttitle=10ex} }&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ dlimediumstyle/.style={dlistyle, lefthand width=\\dlimaxmediumtitle, sidebyside gap=4ex, halign=flush right} }&#xa;</xsl:text>\n        <xsl:text>\\tcbset{ dliwidestyle/.style={dlistyle, lefthand width=\\dlimaxwidetitle, sidebyside gap=4ex, halign=flush right} }&#xa;</xsl:text>\n        <xsl:text>\\NewDocumentEnvironment{descriptionlist}{}{\\par\\vspace*{1.5ex}}{\\par\\vspace*{1.5ex}}%&#xa;</xsl:text>\n        <xsl:text>%% begin enviroment has an if/then to open the tcolorbox&#xa;</xsl:text>\n        <xsl:text>\\NewDocumentEnvironment{dlinarrow}{mm}{%&#xa;</xsl:text>\n        <xsl:text>\\settowidth{\\dlititlewidth}{{\\textbf{#1}}}%&#xa;</xsl:text>\n        <xsl:text>\\ifthenelse{\\dlititlewidth > \\dlimaxnarrowtitle}%&#xa;</xsl:text>\n        <xsl:text>{\\begin{tcolorbox}[title={\\textbf{#1}}, phantom={\\hypertarget{#2}{}}, dlinarrowstyle]\\tcblower}%&#xa;</xsl:text>\n        <xsl:text>{\\begin{tcolorbox}[dlinarrowstyle, phantom={\\hypertarget{#2}{}}]\\textbf{#1}\\tcblower}%&#xa;</xsl:text>\n        <xsl:text>}%&#xa;</xsl:text>\n        <xsl:text>{\\end{tcolorbox}}%&#xa;</xsl:text>\n        <xsl:text>%% medium option is simpler&#xa;</xsl:text>\n        <xsl:text>\\NewDocumentEnvironment{dlimedium}{mm}%&#xa;</xsl:text>\n        <xsl:text>{\\begin{tcolorbox}[dlimediumstyle, phantom={\\hypertarget{#2}{}}]\\textbf{#1}\\tcblower}%&#xa;</xsl:text>\n        <xsl:text>{\\end{tcolorbox}}%&#xa;</xsl:text>\n        <xsl:text>%% wide option is similar&#xa;</xsl:text>\n        <xsl:text>\\NewDocumentEnvironment{dliwide}{mm}%&#xa;</xsl:text>\n        <xsl:text>{\\begin{tcolorbox}[dliwidestyle, phantom={\\hypertarget{#2}{}}]\\textbf{#1}\\tcblower}%&#xa;</xsl:text>\n        <xsl:text>{\\end{tcolorbox}}%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//exercisegroup\">\n        <xsl:text>%% Indented groups of \"exercise\" within an \"exercises\" division&#xa;</xsl:text>\n        <xsl:text>%% Lengths control the indentation (always) and gaps (multi-column)&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\egindent}\\setlength{\\egindent}{0.05\\linewidth}&#xa;</xsl:text>\n        <xsl:text>\\newlength{\\exggap}\\setlength{\\exggap}{0.05\\linewidth}&#xa;</xsl:text>\n        <xsl:if test=\"$document-root//exercisegroup[not(@cols)]\">\n            <xsl:text>%% Thin \"xparse\" environments will represent the entire exercise&#xa;</xsl:text>\n            <xsl:text>%% group, in the case when it does not hold multiple columns.&#xa;</xsl:text>\n            <!-- DO NOT make this a tcolorbox, since we would want it -->\n            <!-- to be breakable, and then the individual exercises   -->\n            <!-- could not be breakable tcolorbox themselves          -->\n            <!-- TODO: add some pre- spacing commands here -->\n            <xsl:text>\\NewDocumentEnvironment{exercisegroup}{}&#xa;</xsl:text>\n            <xsl:text>{}{}&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$document-root//exercisegroup/@cols\">\n            <xsl:text>%% An exercise group with multiple columns is a tcbraster.&#xa;</xsl:text>\n            <xsl:text>%% If the contained exercises are explicitly unbreakable,&#xa;</xsl:text>\n            <xsl:text>%% the raster should break at rows for page breaks.&#xa;</xsl:text>\n            <xsl:text>%% The number of columns is a parameter, passed to tcbraster.&#xa;</xsl:text>\n            <!-- raster equal height: boxes of same *row* have same height    -->\n            <!-- raster left skip: indentation of all exercises               -->\n            <!-- raster columns: controls layout, so no line separators, etc. -->\n            <xsl:text>\\tcbset{ exgroupcolstyle/.style={raster equal height=rows, raster left skip=\\egindent, raster column skip=\\exggap} }&#xa;</xsl:text>\n            <xsl:text>\\NewDocumentEnvironment{exercisegroupcol}{m}&#xa;</xsl:text>\n            <xsl:text>{\\begin{tcbraster}[exgroupcolstyle,raster columns=#1]}{\\end{tcbraster}}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$document-root//index-list\">\n        <!-- See http://tex.blogoverflow.com/2012/09/dont-forget-to-run-makeindex/ for \"imakeidx\" usage -->\n        <xsl:text>%% Support for index creation&#xa;</xsl:text>\n        <xsl:if test=\"$author-tools-new = 'no'\">\n            <xsl:text>%% imakeidx package does not require extra pass (as with makeidx)&#xa;</xsl:text>\n            <xsl:text>%% Title of the \"Index\" section set via a keyword&#xa;</xsl:text>\n            <xsl:text>%% Language support for the \"see\" and \"see also\" phrases,&#xa;</xsl:text>\n            <xsl:text>%% but to do so presumes exactly one \"index-list\" generator is present&#xa;</xsl:text>\n            <xsl:text>\\usepackage{imakeidx}&#xa;</xsl:text>\n            <!-- context for localization is single extant $document-root//index-list -->\n            <!-- Restrict to just a single instance, multiple may be unpredictable    -->\n            <xsl:variable name=\"the-index\" select=\"($document-root//index-list)[1]\"/>\n            <!-- NB: multiple indices will require major adjustments here             -->\n            <xsl:text>\\makeindex[title=</xsl:text>\n            <xsl:apply-templates select=\"$the-index\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'index'\"/>\n            </xsl:apply-templates>\n            <xsl:text>, intoc=true]&#xa;</xsl:text>\n            <xsl:text>\\renewcommand{\\seename}{</xsl:text>\n            <xsl:apply-templates select=\"$the-index\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'see'\"/>\n            </xsl:apply-templates>\n            <xsl:text>}&#xa;</xsl:text>\n            <xsl:text>\\renewcommand{\\alsoname}{</xsl:text>\n            <xsl:apply-templates select=\"$the-index\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'also'\"/>\n            </xsl:apply-templates>\n           <xsl:text>}&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$author-tools-new = 'yes'\">\n            <xsl:text>%% author-tools = 'yes' activates marginal notes about index&#xa;</xsl:text>\n            <xsl:text>%% and supresses the actual creation of the index itself&#xa;</xsl:text>\n            <xsl:text>\\usepackage{showidx}&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <xsl:if test=\"$docinfo/logo\">\n        <xsl:text>%% Package for precise image placement (for logos on pages)&#xa;</xsl:text>\n        <xsl:text>\\usepackage{eso-pic}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Lists are built as \"longtable\" so they span multiple pages    -->\n    <!-- and get \"continuation\" footers, for example.  It is the       -->\n    <!-- \"list generator\" element which provokes the package inclusion -->\n    <!-- An author can elect breakable \"tabular\" as well                -->\n    <xsl:if test=\"$b-has-long-tabular\">\n        <xsl:text>%% Package for tables (potentially) spanning multiple pages&#xa;</xsl:text>\n        <xsl:text>\\usepackage{longtable}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- http://tex.stackexchange.com/questions/106159/why-i-shouldnt-load-pdftex-option-with-hyperref -->\n<xsl:template name=\"load-configure-hyperref\">\n    <xsl:text>%% hyperref driver does not need to be specified, it will be detected&#xa;</xsl:text>\n    <xsl:text>%% Footnote marks in tcolorbox have broken linking under&#xa;</xsl:text>\n    <xsl:text>%% hyperref, so it is necessary to turn off all linking&#xa;</xsl:text>\n    <xsl:text>%% It *must* be given as a package option, not with \\hypersetup&#xa;</xsl:text>\n    <xsl:text>\\usepackage[hyperfootnotes=false]{hyperref}&#xa;</xsl:text>\n    <!-- http://tex.stackexchange.com/questions/79051/how-to-style-text-in-hyperref-url -->\n    <xsl:if test=\"$document-root//url\">\n    <xsl:text>%% configure hyperref's  \\href{}{}  and  \\nolinkurl  to match listings' inline verbatim&#xa;</xsl:text>\n        <xsl:text>\\renewcommand\\UrlFont{\\small\\ttfamily}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"not($b-latex-print)\">\n        <xsl:text>%% Hyperlinking active in electronic PDFs, all links without surrounding boxes and blue&#xa;</xsl:text>\n        <xsl:text>\\hypersetup{colorlinks=true,linkcolor=blue,citecolor=blue,filecolor=blue,urlcolor=blue}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$b-latex-print\">\n        <xsl:text>%% For a print PDF, no surrounding boxes, so simply textcolor (but still active to preserve spacing)&#xa;</xsl:text>\n        <!-- https://tex.stackexchange.com/questions/503000/          -->\n        <!-- unexpected-value-for-option-hidelinkshyperref-is-ignored -->\n        <!-- https://tex.stackexchange.com/a/503001                   -->\n        <xsl:text>\\hypersetup{hidelinks}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Hyperref gives names to destinations for links that look like      -->\n    <!-- \"section*.5.2\" which you can guess is the second section of        -->\n    <!-- Chapter 5.  But if you have structural parts and chapter names     -->\n    <!-- do not incorporate part numbers, then you can get two \"chapter*.3\" -->\n    <!-- and things like the Table of Contents do not work as expected.     -->\n    <!-- Instead you can have hyperref use names like \"chapter.748\" from a  -->\n    <!-- sequential numbering that will always provide unique names.        -->\n    <!-- Short, but concise, explanation:                                   -->\n    <!-- https://tex.stackexchange.com/questions/3188/                      -->\n    <!-- what-does-the-hyperref-option-hypertexnames-do                     -->\n    <!--                                                                    -->\n    <!-- Another approach is to \"renewcommand\" macros like \"\\theHchapter\"   -->\n    <!-- within respective environments to use our LaTeX label (usually a   -->\n    <!-- final parameter of the environment).  These make very interesting  -->\n    <!-- names in files like \"*.out\" and \"*.toc\", a dotted hierachy of very -->\n    <!-- long strings.  For us, the origin of these are 100% unambiguous    -->\n    <!-- (an of course, unique).  But very verbose.  And the environment    -->\n    <!-- changes need to go lots of places to have the same effect.  But a  -->\n    <!-- simple experiment was very effective at resolving just chapters in -->\n     <!-- structural parts.                                                 -->\n    <!--                                                                    -->\n    <!-- For both approaches, see revalatory post:                          -->\n    <!-- https://tex.stackexchange.com/questions/231361/                    -->\n    <!-- table-of-contents-labels-not-directing-hyperlinks-to-correct-page  -->\n    <xsl:text>%% Less-clever names for hyperlinks are more reliable, *especially* for structural parts&#xa;</xsl:text>\n    <xsl:text>%% See comments in the code to learn more about the importance of this setting&#xa;</xsl:text>\n    <xsl:text>\\hypersetup{hypertexnames=false}&#xa;</xsl:text>\n    <!-- Index entries now have the correct (printed) page number, but the -->\n    <!-- hyperlink is way off (owing to significant front matter) and uses -->\n    <!-- a page number that is way too early.  Fix comes from the answer:  -->\n    <!--     https://tex.stackexchange.com/a/516275                        -->\n    <!-- on the post:                                                      -->\n    <!--     https://tex.stackexchange.com/questions/516267/               -->\n    <!--     compatibility-of-hypertexnames-false-and-indexes              -->\n    <xsl:text>%%The  hypertexnames  setting then confuses the hyperlinking from the index&#xa;</xsl:text>\n    <xsl:text>%%This patch resolves the incorrect links, see code for StackExchange post.&#xa;</xsl:text>\n    <xsl:text>\\makeatletter&#xa;</xsl:text>\n    <xsl:text>\\patchcmd\\Hy@EveryPageBoxHook{\\Hy@EveryPageAnchor}{\\Hy@hypertexnamestrue\\Hy@EveryPageAnchor}{}{\\fail}&#xa;</xsl:text>\n    <xsl:text>\\makeatother&#xa;</xsl:text>\n    <!-- Title goes interesting places in a PDF -->\n    <xsl:text>\\hypersetup{pdftitle={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-short\" />\n    <xsl:text>}}&#xa;</xsl:text>\n    <!-- http://tex.stackexchange.com/questions/44088/when-do-i-need-to-invoke-phantomsection -->\n    <!-- NB: \\phantomsection is rarely used - literate programming fragments and the ToC      -->\n    <xsl:text>%% If you manually remove hyperref, leave in this next command&#xa;</xsl:text>\n    <xsl:text>%% This will allow LaTeX compilation, employing this no-op command&#xa;</xsl:text>\n    <xsl:text>\\providecommand\\phantomsection{}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"create-numbered-tcolorbox\">\n    <!-- ################## -->\n    <!-- Division Numbering -->\n    <!-- ################## -->\n    <xsl:text>%% Division Numbering: Chapters, Sections, Subsections, etc&#xa;</xsl:text>\n    <xsl:text>%% Division numbers may be turned off at some level (\"depth\")&#xa;</xsl:text>\n    <xsl:text>%% A section *always* has depth 1, contrary to us counting from the document root&#xa;</xsl:text>\n    <xsl:text>%% The latex default is 3.  If a larger number is present here, then&#xa;</xsl:text>\n    <xsl:text>%% removing this command may make some cross-references ambiguous&#xa;</xsl:text>\n    <xsl:text>%% The precursor variable $numbering-maxlevel is checked for consistency in the common XSL file&#xa;</xsl:text>\n    <xsl:text>\\setcounter{secnumdepth}{</xsl:text>\n        <xsl:value-of select=\"$latex-numbering-maxlevel\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <!--  -->\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:text>%% A faux tcolorbox whose only purpose is to provide common numbering&#xa;</xsl:text>\n    <xsl:text>%% facilities for most blocks (possibly not projects, 2D displays)&#xa;</xsl:text>\n    <xsl:text>%% Controlled by  numbering.theorems.level  processing parameter&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n    <!-- control the levels of the numbering -->\n    <!-- global (no periods) is the default  -->\n    <xsl:if test=\"not($numbering-blocks = 0)\">\n        <xsl:text>, number within=</xsl:text>\n        <xsl:call-template name=\"level-to-name\">\n            <xsl:with-param name=\"level\" select=\"$numbering-blocks\" />\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:text>]{block}{}&#xa;</xsl:text>\n    <!-- should condition on $project-reps, but it is not defined yet -->\n    <xsl:if test=\"$b-number-project-distinct\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% This document is set to number PROJECT-LIKE on a separate numbering scheme&#xa;</xsl:text>\n        <xsl:text>%% So, a faux tcolorbox whose only purpose is to provide this numbering&#xa;</xsl:text>\n        <xsl:text>%% Controlled by  numbering.projects.level  processing parameter&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n        <!-- control the levels of the numbering -->\n        <!-- global (no periods) is the default  -->\n        <xsl:if test=\"not($numbering-projects = 0)\">\n            <xsl:text>, number within=</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-projects\" />\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:text>]{project-distinct}{}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$b-number-exercise-distinct\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% This document is set to number inline exercises on a separate numbering scheme&#xa;</xsl:text>\n        <xsl:text>%% So, a faux tcolorbox whose only purpose is to provide this numbering&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n        <!-- control the levels of the numbering -->\n        <!-- global (no periods) is the default  -->\n        <xsl:if test=\"not($numbering-exercises = 0)\">\n            <xsl:text>, number within=</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-exercises\" />\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:text>]{exercise-distinct}{}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$b-number-figure-distinct\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% This document is set to number figure, table, list, listing on a separate numbering scheme&#xa;</xsl:text>\n        <xsl:text>%% So, a faux tcolorbox whose only purpose is to provide this numbering&#xa;</xsl:text>\n        <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n        <!-- control the levels of the numbering -->\n        <!-- global (no periods) is the default  -->\n        <xsl:if test=\"not($numbering-figures = 0)\">\n            <xsl:text>, number within=</xsl:text>\n            <xsl:call-template name=\"level-to-name\">\n                <xsl:with-param name=\"level\" select=\"$numbering-figures\" />\n            </xsl:call-template>\n        </xsl:if>\n        <xsl:text>]{figure-distinct}{}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- TODO: condition of figure/*/figure-like, or $subfigure-reps -->\n    <xsl:text>%% A faux tcolorbox whose only purpose is to provide common numbering&#xa;</xsl:text>\n    <xsl:text>%% facilities for 2D displays which are subnumbered as part of a \"sidebyside\"&#xa;</xsl:text>\n    <!-- faux subdisplay requires manipulating low-level counters -->\n    <!-- TODO: condition on presence of (plain) 2-D displays to limit use? -->\n    <xsl:text>\\makeatletter&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox[auto counter</xsl:text>\n    <!-- control the levels of the numbering -->\n    <!-- global (no periods) is the default  -->\n    <xsl:text>, number within=</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$b-number-figure-distinct\">\n            <xsl:text>tcb@cnt@figure-distinct</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>tcb@cnt@block</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>, number freestyle={\\noexpand\\thetcb@cnt@block(\\noexpand\\alph{\\tcbcounter})}</xsl:text>\n    <xsl:text>]{subdisplay}{}&#xa;</xsl:text>\n    <!-- faux subdisplay requires manipulating low-level counters -->\n    <xsl:text>\\makeatother&#xa;</xsl:text>\n    <!-- Debug: macro to compare PreTeXt-computed numbers against LaTeX counters -->\n    <xsl:if test=\"$b-debug-numbering-check\">\n        <xsl:text>%% Debug: verify PreTeXt-computed numbers match LaTeX counter numbers&#xa;</xsl:text>\n        <xsl:text>\\makeatletter&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\ptxnumbercheck}[1]{%&#xa;</xsl:text>\n        <xsl:text>  \\protected@edef\\ptx@expected{#1}%&#xa;</xsl:text>\n        <xsl:text>  \\protected@edef\\ptx@actual{\\thetcbcounter}%&#xa;</xsl:text>\n        <xsl:text>  \\ifx\\ptx@expected\\ptx@actual\\else&#xa;</xsl:text>\n        <xsl:text>    \\GenericWarning{(PreTeXt)}{PreTeXt Warning: Number mismatch for block: expected \\ptx@expected, LaTeX produced \\ptx@actual}%&#xa;</xsl:text>\n        <xsl:text>  \\fi&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>%% Debug: verify PreTeXt division numbers match LaTeX counter numbers&#xa;</xsl:text>\n        <xsl:text>%% Second argument is a LaTeX counter name (section, chapter, etc.)&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\ptxdivisionnumbercheck}[2]{%&#xa;</xsl:text>\n        <xsl:text>  \\protected@edef\\ptx@expected{#1}%&#xa;</xsl:text>\n        <xsl:text>  \\protected@edef\\ptx@actual{\\csname the#2\\endcsname}%&#xa;</xsl:text>\n        <xsl:text>  \\ifx\\ptx@expected\\ptx@actual\\else&#xa;</xsl:text>\n        <xsl:text>    \\GenericWarning{(PreTeXt)}{PreTeXt Warning: Division number mismatch for #2: expected \\ptx@expected, LaTeX produced \\ptx@actual}%&#xa;</xsl:text>\n        <xsl:text>  \\fi&#xa;</xsl:text>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>\\makeatother&#xa;</xsl:text>\n    </xsl:if>\n   <!-- Groups of environments/blocks -->\n    <!-- Variables hold exactly one node of each type in use -->\n    <!-- \"environment\" template constructs...environments -->\n    <!-- THEOREM-LIKE -->\n    <xsl:variable name=\"theorem-reps\" select=\"\n        ($document-root//theorem)[1]|\n        ($document-root//lemma)[1]|\n        ($document-root//corollary)[1]|\n        ($document-root//algorithm)[1]|\n        ($document-root//proposition)[1]|\n        ($document-root//claim)[1]|\n        ($document-root//fact)[1]|\n        ($document-root//identity)[1]\"/>\n    <xsl:if test=\"$theorem-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for THEOREM-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$theorem-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- PROOF-LIKE -->\n    <!-- detached/standalone and inner are same style     -->\n    <!-- solution have a more minimal (hard-coded) style -->\n    <xsl:variable name=\"proof-reps\" select=\"\n        ($document-root//proof[ancestor::hint|ancestor::answer|ancestor::solution])[1]|\n        ($document-root//proof[not(ancestor::hint|ancestor::answer|ancestor::solution)])[1]|\n        ($document-root//argument[ancestor::hint|ancestor::answer|ancestor::solution])[1]|\n        ($document-root//argument[not(ancestor::hint|ancestor::answer|ancestor::solution)])[1]|\n        ($document-root//justification[ancestor::hint|ancestor::answer|ancestor::solution])[1]|\n        ($document-root//justification[not(ancestor::hint|ancestor::answer|ancestor::solution)])[1]|\n        ($document-root//reasoning[ancestor::hint|ancestor::answer|ancestor::solution])[1]|\n        ($document-root//reasoning[not(ancestor::hint|ancestor::answer|ancestor::solution)])[1]|\n        ($document-root//explanation[ancestor::hint|ancestor::answer|ancestor::solution])[1]|\n        ($document-root//explanation[not(ancestor::hint|ancestor::answer|ancestor::solution)])[1]\"/>\n    <xsl:if test=\"$proof-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for PROOF-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$proof-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- AXIOM-LIKE -->\n    <xsl:variable name=\"axiom-reps\" select=\"\n        ($document-root//axiom)[1]|\n        ($document-root//conjecture)[1]|\n        ($document-root//principle)[1]|\n        ($document-root//heuristic)[1]|\n        ($document-root//hypothesis)[1]|\n        ($document-root//assumption)[1]\"/>\n    <xsl:if test=\"$axiom-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for AXIOM-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$axiom-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- DEFINITION-LIKE -->\n    <xsl:variable name=\"definition-reps\" select=\"\n        ($document-root//definition)[1]\"/>\n    <xsl:if test=\"$definition-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for DEFINITION-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$definition-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- REMARK-LIKE -->\n    <!-- NB: a \"note\" in \"biblio\" is a (harmless?) false positive here -->\n    <xsl:variable name=\"remark-reps\" select=\"\n        ($document-root//remark)[1]|\n        ($document-root//convention)[1]|\n        ($document-root//note)[1]|\n        ($document-root//observation)[1]|\n        ($document-root//warning)[1]|\n        ($document-root//insight)[1]\"/>\n    <xsl:if test=\"$remark-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for REMARK-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$remark-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- COMPUTATION-LIKE -->\n    <xsl:variable name=\"computation-reps\" select=\"\n        ($document-root//computation)[1]|\n        ($document-root//technology)[1]|\n        ($document-root//data)[1]\"/>\n    <xsl:if test=\"$computation-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for COMPUTATION-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$computation-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- OPENPROBLEM-LIKE -->\n    <xsl:variable name=\"openproblem-reps\" select=\"\n        ($document-root//openproblem)[1]|\n        ($document-root//openquestion)[1]|\n        ($document-root//openconjecture)[1]\"/>\n    <xsl:if test=\"$openproblem-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for OPENPROBLEM-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$openproblem-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- EXAMPLE-LIKE -->\n    <xsl:variable name=\"example-reps\" select=\"\n        ($document-root//example)[1]|\n        ($document-root//question)[1]|\n        ($document-root//problem)[1]\"/>\n    <xsl:if test=\"$example-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for EXAMPLE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$example-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- Inline Exercises -->\n    <xsl:variable name=\"inlineexercise-reps\" select=\"\n        ($document-root//exercise[boolean(&INLINE-EXERCISE-FILTER;)])[1]\"/>\n    <xsl:if test=\"$inlineexercise-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for inline exercises&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$inlineexercise-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- PROJECT-LIKE -->\n    <!-- \"project-rep\" variable defined twice (each local) -->\n    <!-- Used several times, search on \"project-reps\"      -->\n    <xsl:variable name=\"project-reps\" select=\"\n        ($document-root//project)[1]|\n        ($document-root//activity)[1]|\n        ($document-root//exploration)[1]|\n        ($document-root//investigation)[1]\"/>\n    <xsl:if test=\"$project-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for PROJECT-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$project-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- GOAL-LIKE -->\n    <xsl:variable name=\"goal-reps\" select=\"\n        ($document-root//objectives)[1]|\n        ($document-root//outcomes)[1]\"/>\n    <xsl:if test=\"$goal-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for GOAL-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$goal-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- ASIDE-LIKE -->\n    <xsl:variable name=\"aside-reps\" select=\"\n        ($document-root//aside)[1]|\n        ($document-root//historical)[1]|\n        ($document-root//biographical)[1]\"/>\n    <xsl:if test=\"$aside-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for ASIDE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$aside-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- FIGURE-LIKE -->\n    <!-- FIGURE-LIKE come in three flavors: blocks (not in a side-by-side),  -->\n    <!-- panels (in a side-by-side, but not in an overall \"figure\"), or      -->\n    <!-- subnumbered (panel of a side-by-side, which is then in an overall   -->\n    <!-- \"figure').  Selections must be careful (not like dropping through   -->\n    <!-- a choose/when).  Environments need to consider title/caption        -->\n    <!-- placement and counters.  So we might create twelve different        -->\n    <!-- environments here.  In -common, see the \"figure-placement\" template -->\n    <!-- for another determination, and a more careful explanation.          -->\n    <!-- (There was once a subtle bug when we were not so careful here.)     -->\n    <xsl:variable name=\"figure-reps\" select=\"\n        ($document-root//figure[not(parent::sidebyside)])[1]|\n        ($document-root//table[not(parent::sidebyside)])[1]|\n        ($document-root//listing[not(parent::sidebyside)])[1]|\n        ($document-root//list[not(parent::sidebyside)])[1]\"/>\n    <xsl:if test=\"$figure-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for FIGURE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$figure-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- (PANEL)FIGURE-LIKE -->\n    <!-- sidebyside panel versions, if not contained by overall figure -->\n    <xsl:variable name=\"panel-reps\" select=\"\n        ($document-root//sidebyside/figure[not(ancestor::figure)])[1]|\n        ($document-root//sidebyside/table[not(ancestor::figure)])[1]|\n        ($document-root//sidebyside/listing[not(ancestor::figure)])[1]|\n        ($document-root//sidebyside/list[not(ancestor::figure)])[1]\"/>\n    <xsl:if test=\"$panel-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for (PANEL)FIGURE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$panel-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- (SUB)FIGURE-LIKE -->\n    <!-- subnumbered versions, if contained by overall figure -->\n    <xsl:variable name=\"subnumber-reps\" select=\"\n        ($document-root//figure/sidebyside/figure|$document-root//figure/sbsgroup/sidebyside/figure)[1]|\n        ($document-root//figure/sidebyside/table|$document-root//figure/sbsgroup/sidebyside/table)[1]|\n        ($document-root//figure/sidebyside/listing|$document-root//figure/sbsgroup/sidebyside/listing)[1]|\n        ($document-root//figure/sidebyside/list|$document-root//figure/sbsgroup/sidebyside/list)[1]\"/>\n    <xsl:if test=\"$subnumber-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for (SUB)FIGURE-LIKE&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$subnumber-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- INTRODUCTION, CONCLUSION (divisional) -->\n    <xsl:variable name=\"introduction-reps\" select=\"\n        ($root/article/introduction|$document-root//chapter/introduction|$document-root//section/introduction|$document-root//subsection/introduction|$document-root//appendix/introduction|$document-root//exercises/introduction|$document-root//solutions/introduction|$document-root//worksheet/introduction|$document-root//handout/introduction|$document-root//reading-questions/introduction|$document-root//glossary/introduction|$document-root//references/introduction)[1]|\n        ($root/article/conclusion|$document-root//chapter/conclusion|$document-root//section/conclusion|$document-root//subsection/conclusion|$document-root//appendix/conclusion|$document-root//exercises/conclusion|$document-root//solutions/conclusion|$document-root//worksheet/conclusion|$document-root//handout/conclusion|$document-root//handout/conclusion|$document-root//reading-questions/conclusion|$document-root//glossary/conclusion|$document-root//references/conclusion)[1]\"/>\n    <xsl:if test=\"$introduction-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% xparse environments for introductions and conclusions of divisions&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$introduction-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n    <!-- MISCELLANEOUS -->\n    <!-- \"paragraphs\" are partly like a division, -->\n    <!-- but we include it here as a one-off      -->\n    <xsl:variable name=\"miscellaneous-reps\" select=\"\n        ($document-root//gi)[1]|\n        ($document-root//case)[1]|\n        ($document-root//assemblage)[1]|\n        ($document-root//backmatter/colophon)[1]|\n        ($document-root//paragraphs)[1]\"/>\n    <xsl:if test=\"$miscellaneous-reps\">\n        <xsl:text>%%&#xa;</xsl:text>\n        <xsl:text>%% tcolorbox, with styles, for miscellaneous environments&#xa;</xsl:text>\n        <xsl:text>%%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:for-each select=\"$miscellaneous-reps\">\n        <xsl:apply-templates select=\".\" mode=\"environment\"/>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Watermark -->\n<xsl:template name=\"watermark\">\n    <xsl:if test=\"$b-watermark or $b-latex-watermark\">\n        <xsl:text>\\usepackage{draftwatermark}&#xa;</xsl:text>\n        <xsl:text>\\SetWatermarkText{</xsl:text>\n        <xsl:value-of select=\"$watermark-text\" />\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>\\SetWatermarkScale{</xsl:text>\n        <xsl:value-of select=\"$watermark-scale\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- showkeys for author tools -->\n<xsl:template name=\"showkeys\">\n    <xsl:if test=\"$author-tools-new = 'yes'\" >\n        <xsl:text>%% Collected author tools options (author-tools='yes')&#xa;</xsl:text>\n        <xsl:text>%% others need to be elsewhere, these are simply package additions&#xa;</xsl:text>\n        <xsl:text>\\usepackage{showkeys}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- latex-image support -->\n<xsl:template name=\"latex-image-support\">\n    <xsl:if test=\"$latex-image-preamble\">\n        <xsl:text>%% Graphics Preamble Entries&#xa;</xsl:text>\n        <xsl:value-of select=\"$latex-image-preamble\"/>\n    </xsl:if>\n    <xsl:text>%% If tikz has been loaded, replace ampersand with \\amp macro&#xa;</xsl:text>\n    <xsl:if test=\"$document-root//latex-image\">\n        <xsl:text>\\ifdefined\\tikzset&#xa;</xsl:text>\n        <xsl:text>    \\tikzset{ampersand replacement = \\amp}&#xa;</xsl:text>\n        <xsl:text>\\fi&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Side-by-side environmnet -->\n<xsl:template name=\"sidebyside-environment\">\n    <xsl:if test=\"$document-root//sidebyside\">\n        <!-- \"minimal\" is no border or spacing at all -->\n        <!-- set on $sbsdebug to \"tight\" with some background    -->\n        <!-- From the tcolorbox manual, \"center\" vs. \"flush center\":      -->\n        <!-- \"The differences between the flush and non-flush version     -->\n        <!-- are explained in detail in the TikZ manual. The short story  -->\n        <!-- is that the non-flush versions will often look more balanced -->\n        <!-- but with more hyphenations.\"                                 -->\n        <xsl:choose>\n            <xsl:when test=\"$sbsdebug\">\n                <xsl:text>%% tcolorbox styles for *DEBUGGING* sidebyside layout&#xa;</xsl:text>\n                <xsl:text>%% \"tight\" -> 0.4pt border, pink background&#xa;</xsl:text>\n                <xsl:text>\\tcbset{ sbsstyle/.style={raster equal height=rows,raster force size=false} }&#xa;</xsl:text>\n                <xsl:text>\\tcbset{ sbspanelstyle/.style={size=tight,colback=pink} }&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>%% tcolorbox styles for sidebyside layout&#xa;</xsl:text>\n                <!-- \"frame empty\" is needed to counteract very faint outlines in some PDF viewers -->\n                <!-- framecol=white is inadvisable, \"frame hidden\" is ineffective for default skin -->\n                <xsl:text>\\tcbset{ sbsstyle/.style={raster before skip=2.0ex, raster equal height=rows, raster force size=false, raster after skip=0.7\\baselineskip} }&#xa;</xsl:text>\n                <xsl:text>\\tcbset{ sbspanelstyle/.style={bwminimalstyle, fonttitle=\\blocktitlefont, before upper app={\\setparstyle}} }&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>%% Enviroments for side-by-side and components&#xa;</xsl:text>\n        <xsl:text>%% Necessary to use \\NewTColorBox for boxes of the panels&#xa;</xsl:text>\n        <xsl:text>%% \"newfloat\" environment to squash page-breaks within a single sidebyside&#xa;</xsl:text>\n        <!-- Main side-by-side environment, given by xparse            -->\n        <!-- raster equal height: boxes of same *row* have same height -->\n        <!-- raster force size: false lets us control width            -->\n        <!-- We do not try here to keep captions attached (when not    -->\n        <!-- in a \"figure\"), unfortunately, this is an un-semantic     -->\n        <!-- command inbetween the list of panels and the captions     -->\n        <xsl:text>%% \"xparse\" environment for entire sidebyside&#xa;</xsl:text>\n        <xsl:text>\\NewDocumentEnvironment{sidebyside}{mmmm}&#xa;</xsl:text>\n        <xsl:text>  {\\begin{tcbraster}&#xa;</xsl:text>\n        <xsl:text>    [sbsstyle,raster columns=#1,&#xa;</xsl:text>\n        <xsl:text>    raster left skip=#2\\linewidth,raster right skip=#3\\linewidth,raster column skip=#4\\linewidth]}&#xa;</xsl:text>\n        <xsl:text>  {\\end{tcbraster}}&#xa;</xsl:text>\n        <xsl:text>%% \"tcolorbox\" environment for a panel of sidebyside&#xa;</xsl:text>\n        <xsl:text>\\NewTColorBox{sbspanel}{mO{top}}{sbspanelstyle,width=#1\\linewidth,valign=#2}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- kbd keys -->\n<xsl:template name=\"kbd-keys\">\n    <xsl:if test=\"$document-root//kbd\">\n        <!-- https://github.com/tweh/menukeys/issues/41 -->\n        <xsl:text>%% menukeys package says:&#xa;</xsl:text>\n        <xsl:text>%%   Since menukeys uses catoptions, which does some heavy&#xa;</xsl:text>\n        <xsl:text>%%   changes on key-value options, it is recommended to load&#xa;</xsl:text>\n        <xsl:text>%%   menukeys as the last package (even after hyperref)!&#xa;</xsl:text>\n        <xsl:text>\\usepackage{menukeys}&#xa;</xsl:text>\n        <!-- https://tex.stackexchange.com/questions/96300/how-to-change-the-style-of-menukeys -->\n        <xsl:text>\\renewmenumacro{\\keys}{shadowedroundedkeys}&#xa;</xsl:text>\n        <!-- Seemingly extra braces protect comma that kbdkeys package uses -->\n        <xsl:text>\\newcommand{\\kbd}[1]{\\keys{{#1}}}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Late preamble, misc. adjustments           -->\n<!-- NB: This could be split up more if needed. -->\n<xsl:template name=\"late-preamble-adjustments\">\n    <!-- N.B. Author-supplied LaTeX macros come *after* the -->\n    <!-- late-preamble stringparam in order that an author  -->\n    <!-- cannot attempt a conversion-specific redefinition  -->\n    <!-- of a macro that has been used used in a less       -->\n    <!-- capable conversion, i.e. HTML/MathJax              -->\n    <xsl:text>%% Custom Preamble Entries, late (use latex.preamble.late)&#xa;</xsl:text>\n    <xsl:if test=\"$latex.preamble.late != ''\">\n        <xsl:value-of select=\"$latex.preamble.late\" />\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <!-- \"extra\" packages specified by the author -->\n    <xsl:variable name=\"latex-packages\">\n        <xsl:for-each select=\"$docinfo/math-package\">\n            <!-- must be specified, but can be empty/null -->\n            <xsl:if test=\"not(normalize-space(@latex-name)) = ''\">\n                <xsl:text>\\usepackage{</xsl:text>\n                <xsl:value-of select=\"@latex-name\"/>\n                <xsl:apply-templates/>\n                <xsl:text>}</xsl:text>\n                <!-- one per line for readability -->\n                <xsl:text>&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:variable>\n    <!-- We could use contains() on the 5 types of arrows  -->\n    <!-- to really defend against this problematic package -->\n    <xsl:if test=\"contains($latex-packages, '\\usepackage{extpfeil}')\">\n        <xsl:text>%% You have elected to load the LaTeX \"extpfeil\" package&#xa;</xsl:text>\n        <xsl:text>%% for certain extensible arrows, and it should appear just below.&#xa;</xsl:text>\n        <xsl:text>%% This package has numerous shortcomings leading to conflicts with&#xa;</xsl:text>\n        <xsl:text>%% packages like \"stmaryrd\" and our manipulations of lengths to support&#xa;</xsl:text>\n        <xsl:text>%% variable thickness of rules in tables.  It should appear late&#xa;</xsl:text>\n        <xsl:text>%% in the preamble in an effort to mitigate these shortcomings.&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"not($latex-packages = '')\">\n        <xsl:text>%% Begin: Author-provided TeX/LaTeX packages&#xa;</xsl:text>\n        <xsl:text>%% (From  docinfo/math-package  elements)&#xa;</xsl:text>\n        <xsl:value-of select=\"$latex-packages\"/>\n        <xsl:text>%% End: Author-provided TeX/LaTeX packages&#xa;</xsl:text>\n    </xsl:if>\n    <!-- \"extra\" macros specified by the author -->\n    <xsl:text>%% Begin: Author-provided macros&#xa;</xsl:text>\n    <xsl:text>%% (From  docinfo/macros  element)&#xa;</xsl:text>\n    <xsl:text>%% Plus three from PTX for XML characters&#xa;</xsl:text>\n    <xsl:value-of select=\"$latex-macros\" />\n    <xsl:text>%% End: Author-provided macros&#xa;</xsl:text>\n    <!-- 2023-10-18: source has \\sfrac{}{} macro, but now author needs     -->\n    <!-- to specify the LaTeX \"xfrac\" package in a docinfo/math-package    -->\n    <!-- element to continue support.  This is the fallback subpar macro,  -->\n    <!-- just like we use in HTML, when author has not loaded the package. -->\n    <!-- Perhaps relevant: http://tex.stackexchange.com/questions/3372/    -->\n    <xsl:if test=\"$b-has-sfrac and not(contains($latex-packages, '\\usepackage{xfrac}'))\">\n        <xsl:text>%% Historical (subpar) support for \\sfrac macro&#xa;</xsl:text>\n        <xsl:text>%% to achieve pleasing slanted (beveled) fractions.&#xa;</xsl:text>\n        <xsl:text>%% Add \"xfrac\" package with a  docinfo/math-package  element&#xa;</xsl:text>\n        <xsl:text>%% to achieve superior typesetting in LaTeX/PDF output&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\sfrac}[2]{{#1}/{#2}}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$document-root//contributors\">\n        <xsl:text>%% Semantic macros for contributor list&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\contributor}[1]{\\parbox{\\linewidth}{#1}\\par\\bigskip}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\contributorname}[1]{\\textsc{#1}\\\\[0.25\\baselineskip]}&#xa;</xsl:text>\n        <xsl:text>\\newcommand{\\contributorinfo}[1]{\\hspace*{0.05\\linewidth}\\parbox{0.95\\linewidth}{\\textsl{#1}}}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- End of Preamble Templates -->\n\n\n<!-- Text Alignment, Right and Bottom -->\n<!-- \\RaggedRight is from the \"ragged2e\" package, and  -->\n<!-- will allow for some hypenation (vs. \\raggedright) -->\n<!-- Bottom varies by oneside/twoside, and by          -->\n<!-- book/article, so we just make it explicit no      -->\n<!-- matter what (breaking that dichotomy)             -->\n<!-- See: https://www.sascha-frank.com/page-break.html -->\n<!-- N.B. Perhaps this template should be used in the  -->\n<!-- LaTeX preamble, perhaps with \\AtBeginDocument{}   -->\n<!-- https://tex.stackexchange.com/questions/33913/    -->\n<!-- global-ragged-right-justification-of-report       -->\n<xsl:template name=\"text-alignment\">\n    <!-- horizontal/right first -->\n    <xsl:choose>\n        <xsl:when test=\"$latex-right-alignment = 'ragged'\">\n            <xsl:text>\\RaggedRight&#xa;</xsl:text>\n        </xsl:when>\n        <!-- Flush right is default LaTeX -->\n        <xsl:when test=\"$latex-right-alignment = 'flush'\"/>\n    </xsl:choose>\n    <!-- vertical/bottom -->\n    <xsl:text>%% bottom alignment is explicit, since it normally depends on oneside, twoside&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$latex-bottom-alignment = 'ragged'\">\n            <xsl:text>\\raggedbottom&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$latex-bottom-alignment = 'flush'\">\n            <xsl:text>\\flushbottom&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Sidedness -->\n<!-- \\documentclass option, no comma -->\n<xsl:template name=\"sidedness\">\n    <xsl:choose>\n        <xsl:when test=\"$latex-sides= 'one'\">\n            <xsl:text>oneside</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$latex-sides= 'two'\">\n            <xsl:text>twoside</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- For a \"book\" place *before* \\frontmatter so  -->\n<!-- as to not disrupt Roman numeral numbering -->\n<xsl:template name=\"front-cover\">\n    <xsl:if test=\"$b-has-latex-front-cover\">\n        <xsl:text>%% Cover image, not numbered&#xa;</xsl:text>\n        <xsl:text>\\setcounter{page}{0}%&#xa;</xsl:text>\n        <xsl:text>\\includepdf[noautoscale=false]{</xsl:text>\n        <xsl:value-of select=\"$latex-front-cover-filename\"/>\n        <xsl:text>}%&#xa;</xsl:text>\n        <xsl:if test=\"$latex-sides= 'two'\">\n            <xsl:text>%% Blank obverse for 2-sided version&#xa;</xsl:text>\n            <xsl:text>\\thispagestyle{empty}\\hbox{}\\setcounter{page}{0}\\cleardoublepage%&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"back-cover\">\n    <xsl:if test=\"$b-has-latex-back-cover\">\n        <xsl:text>%% Back cover image, not numbered&#xa;</xsl:text>\n        <xsl:text>\\cleardoublepage%&#xa;</xsl:text>\n        <xsl:if test=\"$latex-sides= 'two'\">\n            <xsl:text>%% 2-sided, and at end of even page, so add odd page&#xa;</xsl:text>\n            <xsl:text>\\thispagestyle{empty}\\hbox{}\\newpage%&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:text>\\includepdf[noautoscale=false]{</xsl:text>\n        <xsl:value-of select=\"$latex-back-cover-filename\"/>\n        <xsl:text>}%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Fill-in-the-blank in text content -->\n<xsl:template name=\"fillin-text\">\n    <xsl:text>%% Used for fillin answer blank in text&#xa;</xsl:text>\n    <xsl:text>%% Relies on calc package, loaded via tcolorbox&#xa;</xsl:text>\n    <xsl:text>%% Argument is intended number of characters of blank&#xa;</xsl:text>\n    <xsl:text>%% Length may compress for output to fit in one line&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\fillinmaxwidth}&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\fillincontract}&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\charmaxwidth}\\setlength{\\charmaxwidth}{0.5em}&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\charminwidth}\\setlength{\\charminwidth}{0.1em}&#xa;</xsl:text>\n    <xsl:text>\\newlength{\\fillinheight}&#xa;</xsl:text>\n    <xsl:if test=\"$fillin-text-style = 'shade'\">\n        <xsl:text>\\definecolor{fillintextshade}{gray}{0.9}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\newcommand{\\fillintext}[1]{%&#xa;</xsl:text>\n    <xsl:text>\\setlength{\\fillinmaxwidth}{#1\\charmaxwidth}%&#xa;</xsl:text>\n    <xsl:text>\\setlength{\\fillincontract}{#1\\charminwidth}%&#xa;</xsl:text>\n    <xsl:text>\\setlength{\\fillinheight}{\\baselineskip}\\addtolength{\\fillinheight}{1.2pt}%&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$fillin-text-style = 'underline'\">\n            <xsl:text>\\strut\\nobreak\\leaders\\vbox{\\hrule width 0.3pt height 0.3pt \\vskip -1.2pt}\\hskip 1\\fillinmaxwidth minus \\fillincontract\\nobreak\\strut%&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$fillin-text-style = 'box'\">\n            <xsl:text>\\rule[-1.2pt]{0.3pt}{\\heightof{\\strut}+1.8pt}\\nobreak\\hspace{-0.3pt}\\nobreak\\leaders\\vbox{\\hrule width 0.3pt height 0.3pt \\vskip \\fillinheight \\hrule width 0.3pt height 0.3pt \\vskip -1.2pt}\\hskip 1\\fillinmaxwidth minus \\fillincontract\\nobreak\\hspace{-0.3pt}\\rule[-1.2pt]{0.3pt}{\\heightof{\\strut}+1.8pt}%&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$fillin-text-style = 'shade'\">\n            <xsl:text>{\\color{fillintextshade}\\strut\\nobreak\\leaders\\vbox{\\hrule width 0.3pt height \\fillinheight \\vskip -1.2pt}\\hskip 1\\fillinmaxwidth minus \\fillincontract}%&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Vertical workspace for worksheets and handouts -->\n<xsl:template match=\"*\" mode=\"workspace\">\n    <xsl:variable name=\"vertical-space\">\n        <xsl:apply-templates select=\".\" mode=\"sanitize-workspace\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($vertical-space = '')\">\n        <xsl:text>\\par\\rule{\\workspacestrutwidth}{</xsl:text>\n        <xsl:value-of select=\"$vertical-space\"/>\n        <xsl:text>}%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- When workspace is requested, we call the modal \"sanitize-workspace\" which in -->\n<!-- pretext-common returns an empty string if the requested workspace is not in  -->\n<!-- an appropriate division.  But we automatically want the empty string if the  -->\n<!-- publisher variable latex-worksheet-formatted is not set to \"yes\", so here we -->\n<!-- only apply the template in pretext-common if the variable is set to \"yes\".   -->\n<!-- NB: it is important to do this here and not in the  pretext-common           -->\n<!-- stylesheet's template since that is also used for HTML                       -->\n<xsl:template match=\"*\" mode=\"sanitize-workspace\">\n    <xsl:if test=\"$b-latex-worksheet-formatted\">\n        <xsl:apply-imports/>\n    </xsl:if>\n</xsl:template>\n\n\n<!--##################################-->\n<!-- PTX Divisions to LaTeX Divisions -->\n<!--##################################-->\n\n\n<!-- PTX has a variety of divisions not native to LaTeX, so normally -->\n<!-- an author would have to engineer/design these themselves.  We   -->\n<!-- do something similar and implement them using the stock LaTeX   -->\n<!-- divisons.  This is the dictionary which maps PreTeXt division   -->\n<!-- elements to stock LaTeX division environments.                  -->\n<!-- NB: we formerly did this using the \"level\" template and the     -->\n<!-- \"level-to-name\" templates, which we should consider obsoleting, -->\n<!-- simplifying, or consolidating.                                  -->\n<xsl:template match=\"part|chapter|section|subsection|subsubsection\" mode=\"division-name\">\n    <xsl:value-of select=\"local-name(.)\"/>\n</xsl:template>\n\n<!-- Front matter divisions are only in book, and always at chapter level -->\n<xsl:template match=\"acknowledgement|foreword|preface\" mode=\"division-name\">\n    <xsl:text>chapter</xsl:text>\n</xsl:template>\n\n<!-- Some divisions can appear at multiple levels (eg, exercises) -->\n<!-- Divisions in the back matter vary between books and articles -->\n<!--     Book:    children of backmatter -> chapter               -->\n<!--     Article: children of backmatter -> section               -->\n<xsl:template match=\"exercises|solutions|worksheet|handout|reading-questions|references|glossary|appendix|index\" mode=\"division-name\">\n    <xsl:choose>\n        <xsl:when test=\"parent::article\">\n            <xsl:text>section</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::chapter\">\n            <xsl:text>section</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::section\">\n            <xsl:text>subsection</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::subsection\">\n            <xsl:text>subsubsection</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"parent::subsubsection\">\n            <xsl:text>paragraph</xsl:text>\n        </xsl:when>\n        <!-- children of backmatter (appendix, solutions, reference, index) -->\n        <!-- in book/article are at chapter/section level                   -->\n        <xsl:when test=\"parent::backmatter\">\n            <xsl:choose>\n                <xsl:when test=\"ancestor::book\">\n                    <xsl:text>chapter</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"ancestor::article\">\n                    <xsl:text>section</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n        <!-- appendix in book/article is at chapter/section level -->\n        <!-- so descendants (exercises, solutions) down one level -->\n        <xsl:when test=\"parent::appendix\">\n            <xsl:choose>\n                <xsl:when test=\"ancestor::book\">\n                    <xsl:text>section</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"ancestor::article\">\n                    <xsl:text>subsection</xsl:text>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"division-name\">\n    <xsl:message>PTX:BUG: Asking for the name of an element (<xsl:value-of select=\"local-name(.)\" />) that is not a division</xsl:message>\n</xsl:template>\n\n<!-- ####################### -->\n<!-- LaTeX Macro Definitions -->\n<!-- ####################### -->\n\n<!-- These are not yet meant for style writer use. -->\n\n<!-- Abbreviations, Acronyms, Initialisms, -->\n<!-- \"abbr\", \"acro\", \"init\"                -->\n<!-- Body: \\abbreviation{ABC}              -->\n<!-- Titles: \\abbreviationuntitle{ABC}     -->\n<!-- PDF navigation panels has titles as simple strings,    -->\n<!-- devoid of any formatting, so we just give up, as any   -->\n<!-- attempt to use title-specific macros, \\texorpdfstring, -->\n<!-- \\protect, \\DeclareRobustCommand does not help get      -->\n<!-- ToC, PDF navigation panel, text heading all correct    -->\n<!-- Obstacle is that sc shape does not come in bold,       -->\n<!-- http://tex.stackexchange.com/questions/17830/using-textsc-within-section -->\n<xsl:template match=\"abbr\" mode=\"tex-macro\">\n    <xsl:text>\\newcommand{\\abbreviation}[1]{</xsl:text>\n    <xsl:text>%% Used to markup abbreviations, text or titles&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tex-macro-style\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\DeclareRobustCommand{\\abbreviationintitle}[1]{\\texorpdfstring{#1}{#1}}&#xa;</xsl:text>\n</xsl:template>\n<xsl:template match=\"acro\" mode=\"tex-macro\">\n    <xsl:text>%% Used to markup acronyms, text or titles&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\acronym}[1]{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tex-macro-style\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\DeclareRobustCommand{\\acronymintitle}[1]{\\texorpdfstring{#1}{#1}}&#xa;</xsl:text>\n</xsl:template>\n<xsl:template match=\"init\" mode=\"tex-macro\">\n    <xsl:text>%% Used to markup initialisms, text or titles&#xa;</xsl:text>\n    <xsl:text>\\newcommand{\\initialism}[1]{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tex-macro-style\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\DeclareRobustCommand{\\initialismintitle}[1]{\\texorpdfstring{#1}{#1}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############################# -->\n<!-- LaTeX Environment Definitions -->\n<!-- ############################# -->\n\n<!-- These are not yet meant for style writer use. -->\n\n<!-- Notes: -->\n<!-- *  Generally, all boxes should be \"breakable\"     -->\n<!--    tcolorbox uses minipages and parboxes, which   -->\n<!--    seem to kill indentation and line spacing to   -->\n<!--    delineate paragraphs. If the contents can be   -->\n<!--    reasonably expected toto be organized as       -->\n<!--    paragraphs we add to the style:                -->\n<!--                                                   -->\n<!--    before upper app={\\setparstyle} -->\n<!--                                                   -->\n<!--    which *appends* to the \"before upper\" code     -->\n<!--    and requires the tcolorbox \"hooks\" library.    -->\n<!--    Order may be important (such as after          -->\n<!--    \"runinstyle\") and we may not  have it right    -->\n<!--    everywhere.                                    -->\n<!-- *  The  etoolbox  package has some good tools     -->\n<!-- *  Some items need a \"phantom={\\hypertarget{}{}}\" -->\n<!--    search on mode=\"xref-as-ref\" for more          -->\n<!-- *  Traditional LaTeX labels are implemented with  -->\n<!--    tcolorbox \"phantomlabel=\" option               -->\n<!-- *  tcolor box seem to begin in horizontal mode,   -->\n<!--    and need to return to vertical mode once       -->\n<!--    concluded (lest, e.g., consecutive boxes       -->\n<!--    overlap). Use of \"after={\\par}\" is the right   -->\n<!--    fix.  See                                      -->\n<!--    https://tex.stackexchange.com/questions/235848 -->\n<!--    /how-to-leave-horizontal-mode                  -->\n\n<!-- Style: -->\n<!-- Provide some comments for the LaTeX source, to aid     -->\n<!-- with standalone use or debugging.  Preface with \"%% \". -->\n\n<!-- We have lots of divisions, some traditional (chapters),      -->\n<!-- some one-off (preface), some pervasive (exercises).  Many    -->\n<!-- are always numbered (chapters), some are never numbered      -->\n<!-- (prefaces), some go both ways (exercises).  All get their    -->\n<!-- own environments, with two for the numbered/unnumbered.      -->\n<!-- Traditional need a suffix 'ptx' to distinguish from the      -->\n<!-- built-in LaTeX names, one-off get their own natural name,    -->\n<!-- and pervasive get a suffix that indicates their level.       -->\n<!--                                                              -->\n<!-- These environments will be defined using the LaTeX macros    -->\n<!-- which correspond to the traditional names, so as to leverage -->\n<!-- LaTeX numbering, titlesec styling, and migration of titles   -->\n<!-- to running heads via the cooperating titleps package.  But   -->\n<!-- the environments will also be enhanced through the titlesec  -->\n<!-- package to allow the seamless addition of authors and        -->\n<!-- epigraphs, in addition to actual styling.                    -->\n\n<!-- \"introduction\", \"conclusion\" -->\n<!-- Body:  \\begin{outcomes}{title}              -->\n<!-- Divisional, want to obsolete title soon     -->\n<!-- Simple, w/ temporary run-in title, no label -->\n<!-- (so don't merge with other titled environments) -->\n\n<!-- NB: Once upon a time, this was a breakable tcolorbox.  But then if   -->\n<!-- the contents were too complicated, then a breakable tcolorbox might  -->\n<!-- be contained (like a theorem, say).  That interior breakable         -->\n<!-- tcolorbox would *automatically* be made unbreakable, and the result  -->\n<!-- was really bad page breaks, or worse, the potential for the interior -->\n<!-- box dribbling off the bottom of the page.                            -->\n<xsl:template match=\"introduction|conclusion\" mode=\"environment\">\n    <xsl:variable name=\"environment-name\">\n        <xsl:value-of select=\"local-name(.)\"/>\n    </xsl:variable>\n    <xsl:text>%% </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>: in a structured division&#xa;</xsl:text>\n    <xsl:text>\\NewDocumentEnvironment{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}{m}&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"self::introduction\">\n            <xsl:text>{\\notblank{#1}{\\noindent\\textbf{#1}\\space}{}}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"self::conclusion\">\n            <xsl:text>{\\par\\medskip\\noindent\\notblank{#1}{\\textbf{#1}\\space}{}}</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:choose>\n        <xsl:when test=\"self::introduction\">\n            <xsl:text>{\\par\\medskip}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"self::conclusion\">\n            <xsl:text>{}</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- A division has a PTX name via local-name() and a corresponding -->\n<!-- LaTeX traditional division via the \"division-name\" template.   -->\n<!-- The following templates build the names of the environments,   -->\n<!-- so we can build and employ them consistently.                  -->\n\n<!-- Traditional -->\n<!-- Add suffix to avoid clashes (NB: \\appendix, \\index exists) -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|index\" mode=\"division-environment-name\">\n    <xsl:value-of select=\"local-name(.)\"/>\n    <xsl:text>ptx</xsl:text>\n</xsl:template>\n\n<!-- One-Off -->\n<!-- Free here to use the PTX name, without clashing with LaTeX -->\n<xsl:template match=\"acknowledgement|foreword|preface\" mode=\"division-environment-name\">\n    <xsl:value-of select=\"local-name(.)\"/>\n</xsl:template>\n\n<!-- Pervasive -->\n<!-- Specialized divisions                         -->\n<!-- Product of PTX name with LaTeX level/division -->\n<xsl:template match=\"exercises|solutions|worksheet|handout|reading-questions|glossary|references|index\" mode=\"division-environment-name\">\n    <xsl:value-of select=\"local-name(.)\"/>\n    <xsl:text>-</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"division-name\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"division-environment-name\">\n    <xsl:message>NO DIVISION ENVIRONMENT NAME for <xsl:value-of select=\"local-name(.)\"/></xsl:message>\n</xsl:template>\n\n<!-- Possibly numberless?  When employed, we can tell if a specialized -->\n<!-- division should be numberless at birth.  This needs to be broken  -->\n<!-- out since when we *create* the environments in the preamble we    -->\n<!-- just make \"regular\" and \"numberless\" variants, always.            -->\n<xsl:template match=\"exercises|worksheet|handout|references|glossary|reading-questions|solutions\" mode=\"division-environment-name-suffix\">\n    <xsl:variable name=\"is-numbered\">\n        <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n    </xsl:variable>\n    <xsl:if test=\"$is-numbered = 'false'\">\n        <xsl:text>-numberless</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Only specialized divisions get a \"numberless\" variant, -->\n<!-- so we return nothing and do not call a template about  -->\n<!-- specialized divisions improperly                       -->\n<xsl:template match=\"*\" mode=\"division-environment-name-suffix\"/>\n\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|acknowledgement|foreword|preface|index|exercises|solutions|worksheet|handout|reading-questions|glossary|references\" mode=\"environment\">\n    <!-- for specialized divisions we always make a numbered -->\n    <!-- and unnumbered version, with the latter happening   -->\n    <!-- on a second trip through the template               -->\n    <xsl:param name=\"second-trip\" select=\"false()\"/>\n\n    <xsl:variable name=\"elt-name\" select=\"local-name(.)\"/>\n    <!-- the (traditional) LaTex name of this division -->\n    <xsl:variable name=\"div-name\">\n        <xsl:apply-templates select=\".\" mode=\"division-name\"/>\n    </xsl:variable>\n    <!-- explanatory string in preamble -->\n    <xsl:text>%% Environment for a PTX \"</xsl:text>\n    <xsl:value-of select=\"$elt-name\"/>\n    <xsl:text>\" at the level of a LaTeX \"</xsl:text>\n    <xsl:value-of select=\"$div-name\"/>\n    <xsl:text>\"&#xa;</xsl:text>\n    <!-- Define implementation of a 5-argument environment          -->\n    <!-- Template ensures consistency of definition and application -->\n    <xsl:text>\\NewDocumentEnvironment{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"division-environment-name\"/>\n    <!-- second trip through for a specialized -->\n    <!-- division, build unnumbered version    -->\n    <xsl:if test=\"$second-trip\">\n        <xsl:text>-numberless</xsl:text>\n    </xsl:if>\n    <xsl:text>}{mmmmmmm}&#xa;</xsl:text>\n    <xsl:text>{%&#xa;</xsl:text>\n    <!-- load 6 macros with values, for style writer use -->\n    <xsl:text>\\renewcommand{\\divisionnameptx}{#1}%&#xa;</xsl:text>\n    <xsl:text>\\renewcommand{\\titleptx}{#2}%&#xa;</xsl:text>\n    <xsl:text>\\renewcommand{\\subtitleptx}{#3}%&#xa;</xsl:text>\n    <xsl:text>\\renewcommand{\\shortitleptx}{#4}%&#xa;</xsl:text>\n    <xsl:text>\\renewcommand{\\authorsptx}{#5}%&#xa;</xsl:text>\n    <xsl:text>\\renewcommand{\\epigraphptx}{#6}%&#xa;</xsl:text>\n    <!-- invoke the right LaTeX division, causes title format -->\n    <!-- and spacing, along with setting running heads        -->\n    <xsl:text>\\</xsl:text>\n    <xsl:value-of select=\"$div-name\"/>\n    <xsl:choose>\n        <!-- Second trip through, building unnumbered version -->\n        <!-- OR                                               -->\n        <!-- Never numbered, always build a starred form      -->\n        <!-- and manually add short version to ToC            -->\n        <xsl:when test=\"$second-trip or boolean(self::acknowledgement|self::foreword|self::preface|self::index)\">\n            <xsl:text>*</xsl:text>\n            <xsl:text>{#2}%&#xa;</xsl:text>\n            <xsl:text>\\addcontentsline{toc}{</xsl:text>\n            <xsl:value-of select=\"$div-name\"/>\n            <xsl:text>}{#4}&#xa;</xsl:text>\n        </xsl:when>\n        <!-- optional short title, and the real title  -->\n        <!-- NB: the short title (#3) needs a group to -->\n        <!-- protect a right square bracket \"]\" from   -->\n        <!-- prematurely ending the optional argument  -->\n        <xsl:otherwise>\n            <xsl:text>[{#4}]{#2}%&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\\label{#7}%&#xa;</xsl:text>\n    <!-- close the environment definition, no finish -->\n    <xsl:text>}{}%&#xa;</xsl:text>\n    <!-- send specialized division back through a second time -->\n    <xsl:if test=\"not($second-trip) and boolean(self::exercises|self::solutions|self::worksheet|self::handout|self::reading-questions|self::glossary|self::references)\">\n        <xsl:apply-templates select=\".\" mode=\"environment\">\n            <xsl:with-param name=\"second-trip\" select=\"true()\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- PROOF-LIKE (regular, major) -->\n<!-- Breakable tcolorbox since a child of a       -->\n<!-- division, i.e. top level, and hence stylable -->\n<!-- Body:  \\begin{proof}{title}{label}           -->\n<!-- Title comes with punctuation, always.        -->\n<xsl:template match=\"*[&PROOF-FILTER;][not(&SOLUTION-PROOF-FILTER;)]\" mode=\"environment\">\n    <xsl:variable name=\"proof-name\" select=\"local-name(.)\"/>\n    <xsl:text>%% proof: title is a replacement&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ </xsl:text>\n    <xsl:value-of select=\"$proof-name\"/>\n    <xsl:text>style/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\" />\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{</xsl:text>\n    <xsl:value-of select=\"$proof-name\"/>\n    <xsl:text>}[3]{title={\\notblank{#2}{#2}{#1.}}, phantom={</xsl:text>\n    <xsl:if test=\"$b-pageref\">\n        <xsl:text>\\label{#3}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\hypertarget{#3}{}}, breakable, after={\\par}, </xsl:text>\n    <xsl:value-of select=\"$proof-name\"/>\n    <xsl:text>style, before upper app={\\setparstyle} }&#xa;</xsl:text>\n</xsl:template>\n\n<!-- PROOF-LIKE (solutions, minor) -->\n<!-- NOT a tcolorbox since embedded in others,      -->\n<!-- hence an inner box and thus always unbreakable -->\n<!-- Body:  \\begin{solutionproof}                   -->\n<!-- Really simple.  No label, so not a target of a -->\n<!-- cross-reference.  Not stylable, though we      -->\n<!-- could use a macro for the tombstone/Halmos/QED -->\n<!-- so that could be set.                          -->\n<xsl:template match=\"*[&PROOF-FILTER;][&SOLUTION-PROOF-FILTER;]\" mode=\"environment\">\n    <xsl:text>\\NewDocumentEnvironment{solution</xsl:text>\n    <xsl:value-of select=\"local-name(.)\"/>\n    <xsl:text>}{m}&#xa;</xsl:text>\n    <xsl:text>{\\par\\smallskip\\noindent\\textit{#1}.\\space\\space}{\\space\\space\\hspace*{\\stretch{1}}\\ptxsquare\\par\\smallskip}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"case\" (of a PROOF-LIKE) -->\n<!-- Body:  \\begin{proof}{directionarrow}{title}{label} -->\n<!-- Title comes with punctuation, always.              -->\n<!-- TODO: move implication definitions here, and       -->\n<!-- pass semantic strings out of the construction      -->\n<xsl:template match=\"case\" mode=\"environment\">\n    <xsl:text>\\NewDocumentEnvironment{case}{mmmm}&#xa;</xsl:text>\n    <xsl:text>{\\par\\medskip\\noindent\\notblank{#2}{#2\\space{}}{}\\textit{\\notblank{#3}{#3\\space{}}{}\\notblank{#2#3}{}{#1.\\space{}}}</xsl:text>\n    <xsl:if test=\"$b-pageref\">\n        <xsl:text>\\label{#4}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\hypertarget{#4}{}}{}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"objectives\" -->\n<!-- Body:  \\begin{objectives}{m:title}    -->\n<!-- Title comes without new punctuation.  -->\n<xsl:template match=\"objectives\" mode=\"environment\">\n    <xsl:text>%% objectives: early in a subdivision, introduction/list/conclusion&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ objectivesstyle/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\" />\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{objectives}[2]{title={#1}, phantomlabel={#2}, breakable, objectivesstyle, before upper app={\\setparstyle}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"outcomes\" -->\n<!-- Body:  \\begin{outcomes}{m:title}      -->\n<!-- Title comes without new punctuation.  -->\n<xsl:template match=\"outcomes\" mode=\"environment\">\n    <xsl:text>%% outcomes: late in a subdivision, introduction/list/conclusion&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ outcomesstyle/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\" />\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{outcomes}[2]{title={#1}, phantomlabel={#2}, breakable, outcomesstyle, before upper app={\\setparstyle}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- back \"colophon\" -->\n<!-- Body:  \\begin{backcolophon}{label} -->\n<xsl:template match=\"backmatter/colophon\" mode=\"environment\">\n    <xsl:text>%% back colophon, at the very end, typically on its own page&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ backcolophonstyle/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\" />\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{backcolophon}[2]{title={#1}, phantom={</xsl:text>\n    <xsl:if test=\"$b-pageref\">\n        <xsl:text>\\label{#2}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\hypertarget{#2}{}}, breakable, backcolophonstyle, before upper app={\\setparstyle}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"assemblage\" -->\n<!-- Identical to ASIDE-LIKE, but we keep it distinct -->\n<xsl:template match=\"assemblage\" mode=\"environment\">\n    <!-- Names of various pieces use the element name -->\n    <xsl:variable name=\"environment-name\">\n        <xsl:value-of select=\"local-name(.)\"/>\n    </xsl:variable>\n    <xsl:text>%% </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>: fairly simple un-numbered block/structure&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\"/>\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}[3]{title={\\notblank{#2}{#2}{}}, </xsl:text>\n    <xsl:text>phantomlabel={#3}, breakable, </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style, before upper app={\\setparstyle}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"gi\" -->\n<!-- A \"glossary item\"                         -->\n<!-- Body:  \\begin{glossaryitem}{title}{label} -->\n<xsl:template match=\"gi\" mode=\"environment\">\n    <xsl:text>%% glossary item, style and tcolorbox&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ glossaryitemstyle/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\" />\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{glossaryitem}[2]{title={#1}, after title={\\notblank{#1}{\\space}{}}, phantomlabel={#2}, breakable, glossaryitemstyle, before upper app={\\setparstyle}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"paragraphs\" -->\n<!-- Body:  \\begin{paragraphs}{title}{label}   -->\n<!-- \"titlesec\" package, Subsection 9.2 has LaTeX defaults -->\n<!-- We drop the indentation, and we pass the title itself -->\n<!-- explicity with macro parameter #1 since we do not save-->\n<!-- off the title in a PTX macro.  None of this is meant  -->\n<!-- to support customization in a style.                  -->\n<!-- Once a tcolorbox, see warnings as part of divisional  -->\n<!-- introductions and conclusions.                        -->\n<xsl:template match=\"paragraphs\" mode=\"environment\">\n    <xsl:text>%% paragraphs: the terminal, pseudo-division&#xa;</xsl:text>\n    <xsl:text>%% We use the lowest LaTeX traditional division&#xa;</xsl:text>\n    <xsl:text>\\titleformat{\\subparagraph}[runin]{\\normalfont\\normalsize\\bfseries}{\\thesubparagraph}{1em}{#1}&#xa;</xsl:text>\n    <xsl:text>\\titlespacing*{\\subparagraph}{0pt}{3.25ex plus 1ex minus .2ex}{1em}&#xa;</xsl:text>\n    <xsl:text>\\NewDocumentEnvironment{paragraphs}{mm}&#xa;</xsl:text>\n    <xsl:text>{\\subparagraph*{#1}</xsl:text>\n    <xsl:if test=\"$b-pageref\">\n        <xsl:text>\\label{#2}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\hypertarget{#2}{}}{}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ASIDE-LIKE: \"aside\", \"historical\", \"biographical\" -->\n<!-- Note: do not integrate into others, as treatment may necessarily vary -->\n<xsl:template match=\"&ASIDE-LIKE;\" mode=\"environment\">\n    <!-- Names of various pieces use the element name -->\n    <xsl:variable name=\"environment-name\">\n        <xsl:value-of select=\"local-name(.)\"/>\n    </xsl:variable>\n    <xsl:text>%% </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>: fairly simple un-numbered block/structure&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\"/>\n    <xsl:text>} }&#xa;</xsl:text>\n    <xsl:text>\\newtcolorbox{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}[3]{title={\\notblank{#2}{#2}{}}, </xsl:text>\n    <xsl:text>phantomlabel={#3}, breakable, </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style, before upper app={\\setparstyle}}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- THEOREM-LIKE: \"theorem\", \"corollary\", \"lemma\",    -->\n<!--               \"algorithm\", \"proposition\",         -->\n<!--               \"claim\", \"fact\", \"identity\"         -->\n<!-- AXIOM-LIKE: \"axiom\", \"conjecture\", \"principle\",   -->\n<!--             \"heuristic\", \"hypothesis\",            -->\n<!--             \"assumption                           -->\n<!-- DEFINITION-LIKE: \"definition\"                     -->\n<!-- REMARK-LIKE: \"remark\", \"convention\", \"note\",      -->\n<!--              \"observation\", \"warning\", \"insight\"  -->\n<!-- COMPUTATION-LIKE: \"computation\", \"technology\",    -->\n<!--                    \"data\"                         -->\n<!-- OPENPROBLEM-LIKE: \"openproblem\", \"openquestion\"   -->\n<!-- EXAMPLE-LIKE: \"example\", \"question\", \"problem\"    -->\n<!-- PROJECT-LIKE: \"activity\", \"exploration\",          -->\n<!--               \"exploration\", \"investigation\"      -->\n<!-- Inline Exercises                                  -->\n<!-- Body: \\begin{example}{title}{label}, etc.         -->\n<!--       \\begin{inlineexercise}{title}{label}        -->\n<!-- Type, number, optional title                      -->\n<!-- Title comes without new punctuation.              -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;|&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|exercise[boolean(&INLINE-EXERCISE-FILTER;)]\" mode=\"environment\">\n    <!-- Names of various pieces normally use the      -->\n    <!-- element name, but \"exercise\" does triple duty -->\n    <xsl:variable name=\"environment-name\">\n        <xsl:choose>\n            <!-- TODO: filter is redundant, here and below, given match? -->\n            <xsl:when test=\"self::exercise and boolean(&INLINE-EXERCISE-FILTER;)\">\n                <xsl:text>inlineexercise</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"local-name(.)\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- projects and inline exercises sometimes run on their own counters -->\n    <xsl:variable name=\"counter\">\n        <xsl:choose>\n            <xsl:when test=\"(&PROJECT-FILTER;) and $b-number-project-distinct\">\n                <xsl:text>project-distinct</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"self::exercise and boolean(&INLINE-EXERCISE-FILTER;) and $b-number-exercise-distinct\">\n                <xsl:text>exercise-distinct</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>block</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>%% </xsl:text>\n    <!-- per-environment style -->\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>: fairly simple numbered block/structure&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\"/>\n    <xsl:text>} }&#xa;</xsl:text>\n    <!-- create and configure the environment/tcolorbox -->\n    <xsl:text>\\newtcolorbox</xsl:text>\n    <!-- run on a common, default, faux counter -->\n    <xsl:text>[</xsl:text>\n    <xsl:text>use counter from=</xsl:text>\n    <xsl:value-of select=\"$counter\"/>\n    <xsl:text>]</xsl:text>\n    <!-- environment's tcolorbox name, pair -->\n    <!-- with actual constructions in body  -->\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}</xsl:text>\n    <!-- number of arguments -->\n    <xsl:choose>\n        <xsl:when test=\"&THEOREM-FILTER; or &AXIOM-FILTER;\">\n            <xsl:text>[4]</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>[3]</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- begin: options -->\n    <xsl:text>{</xsl:text>\n    <!-- begin: title construction -->\n    <xsl:text>title={{#1~\\thetcbcounter</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"&THEOREM-FILTER; or &AXIOM-FILTER;\">\n            <!-- first space of double space -->\n            <xsl:text>\\notblank{#2#3}{\\space}{}</xsl:text>\n            <xsl:text>\\notblank{#2}{\\space#2}{}</xsl:text>\n            <xsl:text>\\notblank{#3}{\\space(#3)}{}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\notblank{#2}{\\space\\space#2}{}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>}}, </xsl:text>\n    <!-- end: title construction -->\n    <!-- label in argument 3 or argument 4 -->\n    <xsl:choose>\n        <xsl:when test=\"&THEOREM-FILTER; or &AXIOM-FILTER;\">\n            <xsl:text>phantomlabel={#4}, </xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>phantomlabel={#3}, </xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- always breakable -->\n    <xsl:text>breakable, after={\\par}, </xsl:text>\n    <!-- italic body (this should be set elsewhere) -->\n    <xsl:if test=\"&THEOREM-FILTER; or &AXIOM-FILTER;\">\n        <xsl:text>fontupper=\\itshape, </xsl:text>\n    </xsl:if>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style, }&#xa;</xsl:text>\n    <!-- end: options -->\n</xsl:template>\n\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"environment\">\n    <xsl:variable name=\"fig-placement\">\n        <xsl:apply-templates select=\".\" mode=\"figure-placement\"/>\n    </xsl:variable>\n    <xsl:variable name=\"b-subnumbered\" select=\"$fig-placement = 'subnumber'\"/>\n    <xsl:variable name=\"b-panel\" select=\"$fig-placement = 'panel'\"/>\n    <xsl:variable name=\"environment-name\">\n        <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    </xsl:variable>\n    <!-- counters may run as: subnumbers, independently, or with blocks -->\n    <xsl:variable name=\"counter\">\n        <xsl:choose>\n            <xsl:when test=\"$b-subnumbered\">\n                <xsl:text>subdisplay</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$b-number-figure-distinct\">\n                <xsl:text>figure-distinct</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>block</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>%% </xsl:text>\n    <!-- per-environment style -->\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>: 2-D display structure&#xa;</xsl:text>\n    <xsl:text>\\tcbset{ </xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style/.style={</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tcb-style\"/>\n    <xsl:text>} }&#xa;</xsl:text>\n    <!-- subnumbered version requires manipulating low-level counters -->\n    <xsl:if test=\"$b-subnumbered\">\n        <xsl:text>\\makeatletter&#xa;</xsl:text>\n    </xsl:if>\n    <!-- create and configure the environment/tcolorbox -->\n    <xsl:text>\\newtcolorbox</xsl:text>\n    <xsl:text>[</xsl:text>\n    <xsl:text>use counter from=</xsl:text>\n    <xsl:value-of select=\"$counter\"/>\n    <xsl:text>]</xsl:text>\n    <!-- environment's tcolorbox name, pair -->\n    <!-- with actual constructions in body  -->\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}</xsl:text>\n    <!-- number of arguments -->\n    <xsl:text>[4]</xsl:text>\n    <!-- begin: options -->\n    <xsl:text>{</xsl:text>\n    <!-- begin: title/caption construction -->\n    <xsl:choose>\n        <!-- Captions/titlesof 2D displays within panels of figure/sidebyside  -->\n        <!-- \\thetcbcounter comes from subdisplay, looks like 25.3(b),         -->\n        <!-- and this is what will render in a cross-reference via \\label/\\ref -->\n        <!-- The enclosing figure is numbered from block or figure-distinct.   -->\n        <!-- We us the \"xstring\" package to strip out this number (e.g. 25.3)  -->\n        <!-- and leave just the sub-numbering (e.g, (b)).                      -->\n        <!-- NB: parameter #3 is a hardcoded number supplied by the -common    -->\n        <!-- routines, since it gets massaged to (a), (b), (c), etc. and this  -->\n        <!-- part is independent of the structure number, it will be right     -->\n        <!-- even if the LaTeX source is a subset (we can't optionally include -->\n        <!-- panels of a \"sidebyside\").  Short answer, we ignore #3 in this    -->\n        <!-- case.  Always.                                                    -->\n        <xsl:when test=\"$b-subnumbered\">\n            <xsl:text>lower separated=false, </xsl:text>\n            <xsl:text>before lower={{</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$b-number-figure-distinct\">\n                    <xsl:text>\\textbf{\\StrSubstitute{\\thetcbcounter}{\\thetcb@cnt@figure-distinct}{}}</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>\\textbf{\\StrSubstitute{\\thetcbcounter}{\\thetcb@cnt@block}{}}</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>\\space#2</xsl:text>\n            <xsl:text>}}, </xsl:text>\n        </xsl:when>\n        <!-- Case for text placed below, but \"regular\" numbers.  \"figure\"  -->\n        <!-- and \"listing\" always, and always for panels of a side-by-side -->\n        <!-- not already handled as subnumbered panels.                    -->\n        <!-- Only the type-number is bolded, caption in #1 is plain text   -->\n        <xsl:when test=\"self::figure or $b-panel\">\n            <xsl:text>lower separated=false, </xsl:text>\n            <xsl:text>before lower={{</xsl:text>\n            <xsl:text>\\textbf{#1~</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$b-latex-hardcode-numbers\">\n                    <xsl:text>#4</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>\\thetcbcounter</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>}</xsl:text>\n            <xsl:text>\\space#2</xsl:text>\n            <xsl:text>}}, </xsl:text>\n        </xsl:when>\n        <!-- Case for titles placed above with \"regular\" numbers,            -->\n        <!-- just remaining \"table\", \"list\" and \"listing\", as per CMoS       -->\n        <!-- Only the type-number is bolded here, caption in #1 is bold text -->\n        <xsl:when test=\"self::table|self::list|self::listing\">\n            <xsl:text>title={{</xsl:text>\n            <xsl:text>\\textbf{#1~</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$b-latex-hardcode-numbers\">\n                    <xsl:text>#4</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>\\thetcbcounter</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>}</xsl:text>\n            <xsl:text>\\space#2</xsl:text>\n            <xsl:text>}}, </xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <!-- end: title/caption construction -->\n    <!-- label in argument 2             -->\n    <xsl:text>phantomlabel={#3}, </xsl:text>\n    <!-- always unbreakable, except for \"list\"               -->\n    <!-- and list needs paragraph=style indentation restored -->\n    <!-- 2023-09-01: next comment seems incorrect?           -->\n    <!-- list will be unbreakable once inside sidebyside     -->\n    <xsl:choose>\n        <xsl:when test=\"self::list\">\n            <xsl:text>breakable, </xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>unbreakable, </xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>style, </xsl:text>\n    <xsl:if test=\"self::list\">\n        <xsl:text>before upper app={\\setparstyle}, </xsl:text>\n    </xsl:if>\n    <xsl:text>}&#xa;</xsl:text>\n    <!-- end: options -->\n    <!-- subnumbered version requires manipulating low-level counters -->\n    <xsl:if test=\"$b-subnumbered\">\n        <xsl:text>\\makeatother&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ########################## -->\n<!-- LaTeX Styling via Preamble -->\n<!-- ########################## -->\n\n<!-- General Notes: -->\n<!--                -->\n<!-- * Protect tcolorbox arguments with braces, especially titles, -->\n<!--   since commas will bleed through into the options otherwise  -->\n<!-- * Separate the tcolorbox options with spaces after commas     -->\n<!-- * Run the LaTeX compilation at least twice before giving up   -->\n<!-- * The tcolorbox \"title\" option is set in the environment      -->\n<!-- * End lists of styling options with a trailing comma          -->\n<!-- * tcolorbox, boxrule=-0.3pt seems necessary to avoid          -->\n<!--   very faint lines/rules appearing in some PDF viewers,       -->\n<!--   not clear if \"frame empty\" is also necessary                -->\n<!-- * See discussion of end-of-block markers (eg, a PROOF-LIKE    -->\n<!--   tombstone/Halmos) at the default style for PROOF-LIKE       -->\n\n<!-- \"abbr\", \"acro\", \"init\" -->\n<!-- We default to small caps for abbreviations, acronyms, and  -->\n<!-- initialisms.  See Bringhurst, 4e, 3.2.2, p. 48.  These can -->\n<!-- be overridden with simply \"#1\" to provide macros that just -->\n<!-- repeat their arguments.                                    -->\n<!-- lower-casing macro:  (\"force-all-small-caps\") at           -->\n<!-- http://tex.stackexchange.com/questions/114592/             -->\n<xsl:template match=\"abbr|acro|init\" mode=\"tex-macro-style\">\n    <!-- <xsl:text>{\\scshape #1}</xsl:text> -->\n    <xsl:text>\\textsc{\\MakeLowercase{#1}}</xsl:text>\n</xsl:template>\n\n<!-- Colors -->\n<!-- This named template is called immediately after the \"xcolor\"     -->\n<!-- package is loaded.  It can be overridden to define colors used   -->\n<!-- later in a style, so as to modularize these choices.  It is      -->\n<!-- provisional since there may be better ways to specify or handle  -->\n<!--                                                                  -->\n<!--   (a) switching easily between color and black-and-white schemes -->\n<!--   (b) specifiying a default set of color names employed          -->\n<!--       automatically in certain locations                         -->\n<!--                                                                  -->\n<!-- Both of these features could be handled in an ad-hoc way now     -->\n<xsl:template name=\"xcolor-style\"/>\n\n<!-- \"introduction\", \"conclusion\" -->\n<!-- Run-in optional title, which will eventually go away       -->\n<!-- We add a gap before just a \"conclusion\", using XSL.        -->\n<!-- If you are using this as an example/guide, and don't       -->\n<!-- understand this more advanced use of XSL, just make two    -->\n<!-- templates, one for \"introduction\" and one for \"conclusion\" -->\n<xsl:template match=\"introduction|conclusion\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, runintitlestyle, blockspacingstyle, </xsl:text>\n    <xsl:if test=\"self::conclusion\">\n        <xsl:text>before skip=3ex</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- PROOF-LIKE -->\n<!-- Title in italics, as in amsthm style.           -->\n<!-- Filled, black square as QED, tombstone, Halmos. -->\n<!-- Pushing the tombstone flush-right is a bit      -->\n<!-- ham-handed, but more elegant TeX-isms           -->\n<!-- (eg \\hfill) did not get it done.  We require at -->\n<!-- least two spaces gap to remain on the same      -->\n<!-- line. Presumably the line will stretch when the -->\n<!-- tombstone moves onto its own line.              -->\n<!-- NB: this style is NOT used for a PROOF-LIKE     -->\n<!-- inside a \"hint\", \"answer\", or \"solution\", since -->\n<!-- that would lead to an inner tcolorbox which is  -->\n<!-- *always* unbreakable and leads to real          -->\n<!-- formatting problems.  We could restrict the     -->\n<!-- match, but that would complicate style writing. -->\n<!-- Instead, this template is simply not employed   -->\n<!-- for the \"solution proof\" case.                  -->\n<xsl:template match=\"&PROOF-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, fonttitle=\\blocktitlefont\\itshape, attach title to upper, after title={\\space}, after upper={\\space\\space\\hspace*{\\stretch{1}}\\ptxsquare},&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"objectives\" -->\n<!-- Rules top and bottom, title on its own line, as a heading -->\n<xsl:template match=\"objectives\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, blockspacingstyle, fonttitle=\\blocktitlefont\\large\\bfseries, toprule=0.1ex, toptitle=0.5ex, top=2ex, bottom=0.5ex, bottomrule=0.1ex</xsl:text>\n</xsl:template>\n\n<!-- \"outcomes\" -->\n<!-- Differs only by spacing prior, this could go away  -->\n<!-- if headings, etc handle vertical space correctly   -->\n<xsl:template match=\"outcomes\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, blockspacingstyle, fonttitle=\\blocktitlefont\\large\\bfseries, toprule=0.1ex, toptitle=0.5ex, top=2ex, bottom=0.5ex, bottomrule=0.1ex, before skip=2ex</xsl:text>\n</xsl:template>\n\n<!-- back \"colophon\" -->\n<xsl:template match=\"backmatter/colophon\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, blockspacingstyle, before skip=5ex, left skip=0.15\\textwidth, right skip=0.15\\textwidth, fonttitle=\\blocktitlefont\\large\\bfseries, center title, halign=center, bottomtitle=2ex</xsl:text>\n</xsl:template>\n\n<!-- \"gi\" -->\n<!-- Differs only by spacing prior, this could go away  -->\n<!-- if headings, etc handle vertical space correctly   -->\n<xsl:template match=\"gi\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, runintitlestyle, </xsl:text>\n</xsl:template>\n\n\n<!-- THEOREM-LIKE: \"theorem\", \"corollary\", \"lemma\",    -->\n<!--               \"algorithm\", \"proposition\",         -->\n<!--               \"claim\", \"fact\", \"identity\"         -->\n<!-- AXIOM-LIKE: \"axiom\", \"conjecture\", \"principle\",   -->\n<!--             \"heuristic\", \"hypothesis\",            -->\n<!--             \"assumption                           -->\n<!-- DEFINITION-LIKE: \"definition\"                     -->\n<!-- REMARK-LIKE: \"remark\", \"convention\", \"note\",      -->\n<!--              \"observation\", \"warning\", \"insight\"  -->\n<!-- COMPUTATION-LIKE: \"computation\", \"technology\",    -->\n<!--                    \"data\"                         -->\n<!-- OPENPROBLEM-LIKE: \"openproblem\", \"openquestion\"   -->\n<!-- EXAMPLE-LIKE: \"example\", \"question\", \"problem\"    -->\n<!-- PROJECT-LIKE: \"activity\", \"exploration\",          -->\n<!--               \"exploration\", \"investigation\"      -->\n<!-- ASIDE-LIKE: \"aside\", \"historical\", \"biographical\" -->\n<!-- Inline Exercises                                  -->\n<!--                                                   -->\n<!-- Inline, bold face title, otherwise B/W, plain     -->\n<!-- The \"\\normalfont\" on the title is to counteract   -->\n<!-- the italicized bodies of theorems and axioms      -->\n<!-- coming from the \"environment\" template, since the -->\n<!-- title is being smashed inline into the upper part -->\n<!-- of the box.  It has no effect on other            -->\n<!-- environments.  But ideally, we would split out    -->\n<!-- this piece into a template for just theorems      -->\n<!-- and axioms.                                       -->\n<!-- DEFINITION-LIKE and EXAMPLE-LIKE are exceptional  -->\n<!-- in that markers are inserted with \"after upper\"   -->\n<!-- to indicate the end of the environment.           -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&PROJECT-LIKE;|exercise[boolean(&INLINE-EXERCISE-FILTER;)]|&ASIDE-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, runintitlestyle, blockspacingstyle, after title={\\space}, before upper app={\\setparstyle}, </xsl:text>\n</xsl:template>\n\n<xsl:template match=\"&DEFINITION-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, runintitlestyle, blockspacingstyle, after title={\\space}, after upper={\\space\\space\\hspace*{\\stretch{1}}\\ptxdiamond}, before upper app={\\setparstyle}, </xsl:text>\n</xsl:template>\n\n<xsl:template match=\"&EXAMPLE-LIKE;\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, runintitlestyle, blockspacingstyle, after title={\\space}, after upper={\\space\\space\\hspace*{\\stretch{1}}\\ptxtriangle}, before upper app={\\setparstyle}, </xsl:text>\n</xsl:template>\n\n<!-- FIGURE-LIKE: -->\n<!-- 2019-08-08: ad-hoc for now, named-styles will evolve      -->\n<!-- \"table\", \"list\", and \"listing\" are very similar (titles)  -->\n<!-- NB: these will be used for \"plain\" 2D displays and for    -->\n<!-- when these are the panels of a \"sidebyside\".  So within   -->\n<!-- environments we bold titles (table and list) as produced, -->\n<!-- and do not bold captions as produced.  This way titles    -->\n<!-- that migrate to the lower part when subnumbered will be   -->\n<!-- bold.  So we also bold type names and numbers as          -->\n<!-- produced. Net result is that we do not apply font weights -->\n<!-- to titles via styles.                                     -->\n<!-- NB: there could be 4 more styles, conditioning all 8 on   -->\n<!-- \"ancestor::*[self::figure]\" (or \"not()\") to manage the    -->\n<!-- panels of a subnumbered sidebyside.                      -->\n<xsl:template match=\"figure\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, middle=1ex, blockspacingstyle, fontlower=\\blocktitlefont</xsl:text>\n</xsl:template>\n\n<!-- panels of a subnumbered sidebyside.                      -->\n<xsl:template match=\"listing\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, blockspacingstyle, bottomtitle=2ex, fonttitle=\\blocktitlefont</xsl:text>\n</xsl:template>\n\n<!-- This style is \"breakable\" to allow for \"tabular\" realized as \"longtable\". -->\n<!-- Normally a table will not break at all, so the breakability of the        -->\n<!-- tcolorbox is not really relevant.  This is in lieu of trying to make      -->\n<!-- a special-case style within the confines of the semi-elaborate process    -->\n<!-- of naming/using styles. -->\n<xsl:template match=\"table\" mode=\"tcb-style\">\n    <xsl:text>bwminimalstyle, middle=1ex, blockspacingstyle, coltitle=black, bottomtitle=2ex, titlerule=-0.3pt, fonttitle=\\blocktitlefont, breakable</xsl:text>\n</xsl:template>\n\n<!-- \"list\" contents are breakable, so we rub out annoying faint lines -->\n<xsl:template match=\"list\" mode=\"tcb-style\">\n    <xsl:text>middle=1ex, blockspacingstyle, colback=white, colbacktitle=white, coltitle=black, colframe=black, titlerule=-0.3pt, toprule at break=-0.3pt, bottomrule at break=-0.3pt, sharp corners, fonttitle=\\blocktitlefont</xsl:text>\n</xsl:template>\n\n<!-- This is mostly ad-hoc.  An assemblage is meant to be prominent,   -->\n<!-- we just use a simple box with rounded corners as a default, with  -->\n<!-- the title (if present) centered.  Note that we get a bit of extra -->\n<!-- vertical space in the title box in the event the title is null.   -->\n<!-- For a document with titled and untitled assemblages maybe we need -->\n<!-- a way to have two styles (tcb-title-style, tcb-notitle-style?)    -->\n<!-- specified?                                                        -->\n<!--                                                                   -->\n<!-- A \"list\" will have square corners, thus the explicit rounded      -->\n<!-- corners (the default).  We want to tell the difference when       -->\n<!-- debugging or authoring.                                           -->\n<!--                                                                   -->\n<!-- NB: standard jigsaw, opacityback=0.0, opacitybacktitle=0.0  makes -->\n<!-- title rule visible, and  opacity-fill=0.0  kills the the border   -->\n<xsl:template match=\"assemblage\" mode=\"tcb-style\">\n    <xsl:text>size=normal, colback=white, colbacktitle=white, coltitle=black, colframe=black, rounded corners, titlerule=0.0pt, center title, fonttitle=\\blocktitlefont\\bfseries, blockspacingstyle, </xsl:text>\n</xsl:template>\n\n<!-- This is the gross default, across all objects and all styles -->\n<!-- It is convenient for development, testing, and convenience    -->\n<xsl:template match=\"*\" mode=\"tcb-style\" />\n\n<!-- ################### -->\n<!-- Titles of Divisions -->\n<!-- ################### -->\n\n<!-- Section 9.2 of the \"titlesec\" package has default parameters   -->\n<!-- which mimic LaTeX style and spacing.  We use those here, so    -->\n<!-- we can integrate an author credit into the heading/title       -->\n<!-- before any spacing happens.  Authors are one fontsize smaller, -->\n<!-- and placed in the optional \"after-code\" argument.              -->\n<!-- We provide variants for the \"numberless\" case, which are only  -->\n<!-- primarily necessary for chapter-level items (eg \"preface\"),    -->\n<!-- but might also occur due to one-count specialized divisions,   -->\n<!-- present in \"unstructured\" divisions. \"chapter\" has a \"display\" -->\n<!-- format, to mimic the LaTeX two-line look, even for multiline   -->\n<!-- titles.  For finer divisions, when numbered, we use a \"hang\"   -->\n<!-- format, so any extra lines begin aligned with the first line   -->\n<!-- (whether they are authored-too long and then wtap, or if       -->\n<!-- structured with a \"line\" element and so earning dedicated \"\\\\\" -->\n<!-- automatically.  For \"numberless\" variants the \"block\" shape    -->\n<!-- seems sufficient as there is no label.  If more elaborate      -->\n<!-- styling is employed, it may be necessary to put titles into    -->\n<!-- \"minipage\" environments, or other LaTex boxes                  -->\n<!-- NB: since have elected to use the \"explicit\" package option    -->\n<!-- of titlesec, we need to *explicity* place a parameter #1.      -->\n<!-- This will allow maximum flexibility for style writers.         -->\n<!-- Simple use (as here) will be as the last thing in the          -->\n<!-- \"before-code\" argument.                                        -->\n<!-- TODO: integrate \"epigraph\" package perhaps                     -->\n\n<!-- Pretty much everything for actually manipulating titles -->\n<!-- happens in the -common template. But when structured by -->\n<!-- \"line\" we need to implement an abstract variable with a -->\n<!-- separator string.                                       -->\n<!-- NB: \\\\ works better than \\newline in a \\centering       -->\n<xsl:variable name=\"title-separator\" select=\"'\\\\'\"/>\n\n<!-- This is adapted from the chapter format, and   -->\n<!-- could be simpler than desired, specifically    -->\n<!--   * no \"number-less\" version                   -->\n<!--   * no \\titlespacing needed for full page      -->\n<!--   * author placement is untested               -->\n<!--   * otherwise, jut a bit grander, and centered -->\n<!-- There must be a  \\titleformat{\\part}  to get   -->\n<!-- consistent entries in the ToC files            -->\n<xsl:template name=\"titlesec-part-style\">\n    <xsl:text>\\titleformat{\\part}[display]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\Huge\\bfseries\\centering}{\\divisionnameptx\\space\\thepart}{30pt}{\\Huge#1}&#xa;</xsl:text>\n    <xsl:text>[{\\Large\\centering\\authorsptx}]&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Note the use of \"\\divisionnameptx\" macro              -->\n<!-- A multiline title should be fine in a \"display\" shape -->\n<xsl:template name=\"titlesec-chapter-style\">\n    <xsl:text>\\titleformat{\\chapter}[display]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\huge\\bfseries}{\\divisionnameptx\\space\\thechapter}{20pt}{\\Huge#1}&#xa;</xsl:text>\n    <xsl:text>[{\\Large\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titleformat{name=\\chapter,numberless}[display]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\huge\\bfseries}{}{0pt}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\Large\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titlespacing*{\\chapter}{0pt}{50pt}{40pt}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Refences, and especially Index, are unnumbered -->\n<!-- section-level items in the back matter         -->\n<xsl:template name=\"titlesec-section-style\">\n    <xsl:text>\\titleformat{\\section}[hang]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\Large\\bfseries}{\\thesection}{1ex}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\large\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titleformat{name=\\section,numberless}[block]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\Large\\bfseries}{}{0pt}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\large\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titlespacing*{\\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"titlesec-subsection-style\">\n    <xsl:text>\\titleformat{\\subsection}[hang]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\large\\bfseries}{\\thesubsection}{1ex}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\normalsize\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titleformat{name=\\subsection,numberless}[block]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\large\\bfseries}{}{0pt}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\normalsize\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titlespacing*{\\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"titlesec-subsubsection-style\">\n    <xsl:text>\\titleformat{\\subsubsection}[hang]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\normalsize\\bfseries}{\\thesubsubsection}{1em}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\small\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titleformat{name=\\subsubsection,numberless}[block]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\normalsize\\bfseries}{}{0pt}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\normalsize\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titlespacing*{\\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- We stick with LaTeX names for the hierarchy, so \"paragraph\" is next. -->\n<!-- This will be used for single (hence numberless only) specialized     -->\n<!-- divisions (e.g. \"exercises\") contained within a PTX subsubsection.   -->\n<xsl:template name=\"titlesec-paragraph-style\">\n    <xsl:text>\\titleformat{\\paragraph}[hang]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\normalsize\\bfseries}{\\theparagraph}{1em}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\small\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titleformat{name=\\paragraph,numberless}[block]&#xa;</xsl:text>\n    <xsl:text>{\\divisionfont\\normalsize\\bfseries}{}{0pt}{#1}&#xa;</xsl:text>\n    <xsl:text>[{\\normalsize\\authorsptx}]&#xa;</xsl:text>\n    <xsl:text>\\titlespacing*{\\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{1.5em}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ################# -->\n<!-- Table of Contents -->\n<!-- ################# -->\n\n<!-- Like division headings, the entries of the Table of -->\n<!-- Contents can be styled on a per-division basis      -->\n\n<!-- As normally written into LaTeX's *.toc file, the Roman     -->\n<!-- number/label is tightly bound to the title and so it       -->\n<!-- would be  the \"number-less\" argument in control.  Instead, -->\n<!-- we load the  titlesec  package with the \"newparttoc\"       -->\n<!-- option and get ToC entries that use LaTeX's \"\\numberline\"  -->\n<!-- macro, and so look to  titlesec  as numbered divisions.    -->\n<!-- Hence the formatting here is the numbered argument.        -->\n<!--                                                            -->\n<!-- We drop page numbers for the parts as being redundant,     -->\n<!-- since there *must* be a chapter starting on the next page. -->\n<xsl:template name=\"titletoc-part-style\">\n    <xsl:text>\\titlecontents{part}%&#xa;</xsl:text>\n    <xsl:text>[0pt]{\\contentsmargin{0em}\\addvspace{1pc}\\contentsfont\\bfseries}%&#xa;</xsl:text>\n    <xsl:text>{\\Large\\thecontentslabel\\enspace}{\\Large}%&#xa;</xsl:text>\n    <xsl:text>{}%&#xa;</xsl:text>\n    <xsl:text>[\\addvspace{.5pc}]%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- This should be mostly self-explanatory -->\n<xsl:template name=\"titletoc-chapter-style\">\n    <xsl:text>\\titlecontents{chapter}%&#xa;</xsl:text>\n    <xsl:text>[0pt]{\\contentsmargin{0em}\\addvspace{1pc}\\contentsfont\\bfseries}%&#xa;</xsl:text>\n    <xsl:text>{\\large\\thecontentslabel\\enspace}{\\large}%&#xa;</xsl:text>\n    <xsl:text>{\\hfill\\bfseries\\thecontentspage}%&#xa;</xsl:text>\n    <xsl:text>[\\addvspace{.5pc}]%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- The indent, and space for the number/label are straight  -->\n<!-- from the  titletoc  documentation, which says they match -->\n<!-- the LaTeX  book  class                                   -->\n<xsl:template name=\"titletoc-section-style\">\n    <xsl:text>\\dottedcontents{section}[3.8em]{\\contentsfont}{2.3em}{1pc}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- The indent, and space for the number/label are straight  -->\n<!-- from the  titletoc  documentation, which says they match -->\n<!-- the LaTeX  book  class                                   -->\n<xsl:template name=\"titletoc-subsection-style\">\n    <xsl:text>\\dottedcontents{subsection}[6.1em]{\\contentsfont}{3.2em}{1pc}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Each successive indent is increased by the maximum width -->\n<!-- of the preceding label, so we just continue that pattern -->\n<xsl:template name=\"titletoc-subsubsection-style\">\n    <xsl:text>\\dottedcontents{subsubsection}[9.3em]{\\contentsfont}{4.3em}{1pc}%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ############################ -->\n<!-- Page Styles, Headers/Footers -->\n<!-- ############################ -->\n\n<!-- These definitions are just default LaTeX.  Why?  To insert the    -->\n<!-- \\pagefont font-change command into just the right places          -->\n<!-- (later we can add color).                                         -->\n<!--                                                                   -->\n<!-- In more general use, make new page styles, or renew the \"empty\",  -->\n<!-- \"plain\", \"headings\", and/or \"myheadings\" styles.  *Always* finish -->\n<!-- by declaring a \\pagestyle to be in effect.  But note, LaTeX will  -->\n<!-- automagically decide some pages are plain or some are empty.  And -->\n<!-- if you adjust \"headings\" or \"myheadings\" by doing something like  -->\n<!-- changing a font, you might want to also change \"plain\" so that    -->\n<!-- the (presumably) simple numbers or other information will be in   -->\n<!-- a matching font.                                                  -->\n\n<!-- N.B. This would be a natural place for \\geometry{} commands       -->\n<!-- N.B. We use an XSL variable to make the LaTeX output specific to  -->\n<!-- one-sided or two-sided output.  Conceivably this *could* be done  -->\n<!-- with a LaTeX conditional (at the cost of extraneous code)         -->\n<!-- NB: the \\ifthechapter conditional stops a \"Chapter 0\"             -->\n<!-- appearing in the front matter                                     -->\n<!-- NB: titlesec (not titleps) provides \\chaptertitlename so that the -->\n<!-- LaTeX \\chaptername and \\appendixname (which we internationalize)  -->\n<!-- are used in the right places                                      -->\n<!-- N.B. Investigate the \"textcase\" package for a more capable        -->\n<!-- \"\\MakeTextUppercase\" (or similar)                                 -->\n<!-- TODO: redefine article, memo, letter correctly                    -->\n<xsl:template match=\"book\" mode=\"titleps-style\">\n    <xsl:text>%% Plain pages should have the same font for page numbers&#xa;</xsl:text>\n    <xsl:text>\\renewpagestyle{plain}{%&#xa;</xsl:text>\n    <xsl:text>\\setfoot{}{\\pagefont\\thepage}{}%&#xa;</xsl:text>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"not($b-latex-two-sides)\">\n            <!-- Every \"regular\" page has number top right -->\n            <!-- CHAPTER 8. TITLE                      234 -->\n            <xsl:text>%% Single pages as in default LaTeX&#xa;</xsl:text>\n            <xsl:text>\\renewpagestyle{headings}{%&#xa;</xsl:text>\n            <xsl:text>\\sethead{\\pagefont\\slshape\\MakeUppercase{\\ifthechapter{\\chaptertitlename\\space\\thechapter.\\space}{}\\chaptertitle}}{}{\\pagefont\\thepage}%&#xa;</xsl:text>\n            <xsl:text>}%&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$b-latex-two-sides\">\n            <!-- Two-page spread:  (Section empty if not in use)           -->\n            <!-- 234       CHAPTER 8. TITLE || SECTION 8.4 TITLE       235 -->\n            <xsl:text>%% Two-page spread as in default LaTeX&#xa;</xsl:text>\n            <xsl:text>\\renewpagestyle{headings}{%&#xa;</xsl:text>\n            <xsl:text>\\sethead%&#xa;</xsl:text>\n            <xsl:text>[\\pagefont\\thepage]%&#xa;</xsl:text>\n            <xsl:text>[]&#xa;</xsl:text>\n            <xsl:text>[\\pagefont\\slshape\\MakeUppercase{\\ifthechapter{\\chaptertitlename\\space\\thechapter.\\space}{}\\chaptertitle}]%&#xa;</xsl:text>\n            <!-- LaTeX book style lacks  \\sectionname                                                -->\n            <!-- 2022-12-14: we tried our own \\sectionnameptx but it was not satisfactory            -->\n            <!--   (a) need to handle specialized divisions at the section level                     -->\n            <!--   (b) still got mismatches like running head with \"References 2.6 Exercises\"        -->\n            <!--       (where the 2.6 is for the Exercises, but 2.7 on the same page is \"references\" -->\n            <xsl:text>{\\pagefont\\slshape\\MakeUppercase{\\ifthesection{\\thesection.\\space\\sectiontitle}{}}}%&#xa;</xsl:text>\n            <xsl:text>{}%&#xa;</xsl:text>\n            <xsl:text>{\\pagefont\\thepage}%&#xa;</xsl:text>\n            <xsl:text>}%&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>\\pagestyle{headings}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"article|letter|memo\" mode=\"titleps-style\">\n    <xsl:text>\\pagestyle{plain}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ##### -->\n<!-- Fonts -->\n<!-- ##### -->\n\n<!-- General notes:                                                   -->\n<!--                                                                  -->\n<!-- * Any preamble activity relative to fonts can be set here        -->\n<!-- * A font which has a \"T1\" encoding is more modern than one       -->\n<!--   with \"OT1\" encoding, and preferred                             -->\n<!--   https://tex.stackexchange.com/questions/664/                   -->\n<!--   https://tex.stackexchange.com/questions/108417/                -->\n<!-- * We could assume everybody will use fonts with T1 encoding,     -->\n<!--   but have instead allowed for flexibility, so be sure to        -->\n<!--   include the \\usepackage{fontenc} with an option for the        -->\n<!--   default encoding                                               -->\n<!-- * If the <, > characters become upside-down exclamation or       -->\n<!--   question mark, then you have a problem with font-encoding      -->\n<!--   https://tex.stackexchange.com/questions/2369/                  -->\n<!-- * The LaTeX Font Catalogue is a good place to start and shows    -->\n<!--   recommended commands.  That is all we have done here to obtain -->\n<!--   Latin Modern (which seems to be universally recommended)       -->\n<!--   http://www.tug.dk/FontCatalogue/                               -->\n<!-- * Some math fonts are designed to be more harmonious             -->\n<!--   with certain text fonts, do your research                      -->\n<!-- * If you only use \"\\usepackage[T1]{fontenc}\" then the            -->\n<!--   CM-Super fonts will be loaded.  These work well, but           -->\n<!--   are inferior to Latin Modern in some ways                      -->\n<!--   http://tex.stackexchange.com/questions/88368/                  -->\n<!--   https://tex.stackexchange.com/questions/1390/                  -->\n<!-- * Check new fonts carefully for missing, or poorly created,      -->\n<!--   glyphs.  The sample article can be useful for this.            -->\n<!--   Also: search the LaTeX *.log file for the string               -->\n<!--   \"Missing character:\" for further clues.                        -->\n\n<!-- Actual font commands to specifically influence fonts             -->\n<!-- These are the defaults for out-of-the-box behavior               -->\n<!--   -main: the \"document font\"                                     -->\n<!--   -mono: \"typewriter\" or monospace font                          -->\n<!--   -style: additions, adjustments, esp. via font-control commands -->\n\n<!-- This is the default Latin Modern Roman font/package -->\n<xsl:template name=\"font-pdflatex-main\">\n    <xsl:text>\\usepackage{lmodern}&#xa;</xsl:text>\n    <xsl:text>\\usepackage[T1]{fontenc}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Inconsolata package, conditionally            -->\n<!-- Formerly known as  zi4.sty based on NFSS name -->\n<xsl:template name=\"font-pdflatex-mono\">\n    <xsl:if test=\"$b-needs-mono-font\">\n        <xsl:text>\\usepackage[varqu,varl]{inconsolata}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- No extra adjustments for default out-of-the-box behavior             -->\n<!-- But one example of switching to a sans serif font on division titles -->\n<!-- See the \"font-xelatex-style\" template for more clues                 -->\n<xsl:template name=\"font-pdflatex-style\">\n    <!-- uncomment to test -->\n    <!-- <xsl:text>\\renewcommand{\\divisionfont}{\\fontfamily{lmss}\\selectfont}&#xa;</xsl:text> -->\n</xsl:template>\n\n\n<!-- Latin Modern Roman is the xelatex default -->\n<xsl:template name=\"font-xelatex-main\">\n    <xsl:text>%% Latin Modern Roman is the default font for xelatex and so is loaded with a TU encoding&#xa;</xsl:text>\n    <xsl:text>%% *in the format* so we can't touch it, only perhaps adjust it later&#xa;</xsl:text>\n    <xsl:text>%% in one of two ways (then known by NFSS names such as \"lmr\")&#xa;</xsl:text>\n    <xsl:text>%% (1) via NFSS with font family names such as \"lmr\" and \"lmss\"&#xa;</xsl:text>\n    <xsl:text>%% (2) via fontspec with commands like \\setmainfont{Latin Modern Roman}&#xa;</xsl:text>\n    <xsl:text>%% The latter requires the font to be known at the system-level by its font name,&#xa;</xsl:text>\n    <xsl:text>%% but will give access to OTF font features through optional arguments&#xa;</xsl:text>\n    <xsl:text>%% https://tex.stackexchange.com/questions/470008/&#xa;</xsl:text>\n    <xsl:text>%% where-and-how-does-fontspec-sty-specify-the-default-font-latin-modern-roman&#xa;</xsl:text>\n    <xsl:text>%% http://tex.stackexchange.com/questions/115321&#xa;</xsl:text>\n    <xsl:text>%% /how-to-optimize-latin-modern-font-with-xelatex&#xa;</xsl:text>\n    <xsl:text>%%&#xa;</xsl:text>\n    <xsl:if test=\"$b-alternate-main-font\">\n        <xsl:text>\\setmainfont{</xsl:text>\n        <!-- guaranteed non-empty string by enclosing boolean -->\n        <xsl:value-of select=\"$latex-font-main-regular\"/>\n        <xsl:text>}</xsl:text>\n        <!-- optonally add font options -->\n        <xsl:if test=\"not($latex-font-main-options = '')\">\n            <xsl:text>[</xsl:text>\n            <xsl:value-of select=\"$latex-font-main-options\"/>\n            <xsl:text>]</xsl:text>\n        </xsl:if>\n        <!-- end the line (in any event) -->\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"font-xelatex-math\">\n    <!-- nothing if there is no attempt to use a Unicode math font -->\n    <xsl:if test=\"$b-alternate-math-font\">\n        <xsl:text>%% Load a Unicode math font (as specified by a publisher)&#xa;</xsl:text>\n        <xsl:text>%% This is not a simple add-on/replacement:&#xa;</xsl:text>\n        <xsl:text>%%   *  must use  unicode-math  package&#xa;</xsl:text>\n        <xsl:text>%%   *  \\setmathfont then enabled, which takes options&#xa;</xsl:text>\n        <xsl:text>%%   *  clashes with  amssymb  so we do not load that package&#xa;</xsl:text>\n        <xsl:text>%%   *  packages like  extpfeil  load amssymb, which is a problem&#xa;</xsl:text>\n        <xsl:text>\\usepackage{unicode-math}&#xa;</xsl:text>\n        <!-- now can use the \\setmathfont{} command -->\n        <xsl:text>\\setmathfont{</xsl:text>\n        <!-- guaranteed non-empty string by enclosing boolean -->\n        <xsl:value-of select=\"$latex-font-math-regular\"/>\n        <xsl:text>}</xsl:text>\n        <!-- NB: some options are from the unicode-math package and   -->\n        <!-- apply no matter which font might be loaded, for example  -->\n        <!-- \"math-style=french\".  Other options are features of the  -->\n        <!-- selected font itself, such as \"Slashed Zero\" being a     -->\n        <!-- feature of the Libertinus Math font.  The former can go  -->\n        <!-- with the package loading, OR with the font selection,    -->\n        <!-- so we just use one publisher attribute for all of them.  -->\n        <xsl:if test=\"not($latex-font-math-options = '')\">\n            <xsl:text>[</xsl:text>\n            <xsl:value-of select=\"$latex-font-math-options\"/>\n            <xsl:text>]</xsl:text>\n        </xsl:if>\n        <!-- end the line (in any event) -->\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Filenames necessary to be cross-platform -->\n<xsl:template name=\"font-xelatex-mono\">\n    <xsl:if test=\"$b-needs-mono-font\">\n        <xsl:call-template name=\"xelatex-font-check\">\n            <xsl:with-param name=\"font-name\" select=\"'Inconsolatazi4-Regular.otf'\"/>\n        </xsl:call-template>\n        <xsl:call-template name=\"xelatex-font-check\">\n            <xsl:with-param name=\"font-name\" select=\"'Inconsolatazi4-Bold.otf'\"/>\n        </xsl:call-template>\n        <xsl:text>\\usepackage{zi4}&#xa;</xsl:text>\n        <xsl:text>\\setmonofont[BoldFont=Inconsolatazi4-Bold.otf,StylisticSet={1,3}]{Inconsolatazi4-Regular.otf}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- We describe how to adjust the default font in specific locations     -->\n<!-- * The LaTeX macro, \\divisionfont, is hard-wired into every division  -->\n<!--   title of your output.  By default the macro does nothing.  Instead -->\n<!-- * (1) Out-of-the-box xelatex sets up various Latin Modern font       -->\n<!--       families.  Below we use \"lmss\" (Latin Modern Sans Serif)       -->\n<!--        to redefine \\divisionfont to make a font switch.              -->\n<!-- * (2) Use fontspec to define a new font family (like standard        -->\n<!--       LaTeX \\rmfamily) named \"\\lmsansserif\" and then redefine        -->\n<!--       \\divisionfont to make a font switch.                           -->\n<!-- Long-term (1) is easier, while (2) may allow more fine-tuning        -->\n<!-- with OTF font features and may be used to provide entirely different -->\n<!-- fonts (provided they are known at the system level).                 -->\n\n<xsl:template name=\"font-xelatex-style\">\n    <!-- (1) NFSS, uncomment to test -->\n    <!-- <xsl:text>\\renewcommand{\\divisionfont}{\\fontfamily{lmss}\\selectfont}&#xa;</xsl:text> -->\n    <!-- (2) fontspec, uncomment to test -->\n    <!-- <xsl:text>\\newfontfamily{\\lmsansserif}{Latin Modern Sans}&#xa;</xsl:text> -->\n    <!-- <xsl:text>\\renewcommand{\\divisionfont}{\\lmsansserif}&#xa;</xsl:text> -->\n</xsl:template>\n\n<!-- This template calls the \"microtype-options\" template, but     -->\n<!-- uses a variable to not produce an empty [ ].  Thus two        -->\n<!-- templates. This one is internal, not for a stylewriter's use. -->\n<xsl:template name=\"microtype-option-argument\">\n    <xsl:variable name=\"the-options\">\n        <xsl:call-template name=\"microtype-options\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($the-options = '')\">\n        <xsl:text>[</xsl:text>\n        <xsl:value-of select=\"$the-options\"/>\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- This is the template a stylewriter can override to influence fonts. -->\n<!-- See the documentation for the  microtype  package for details.      -->\n<xsl:template name=\"microtype-options\"/>\n\n\n<!-- ################## -->\n<!-- End: LaTeX Styling -->\n<!-- ################## -->\n\n<!-- Tack in a graphic with initials                   -->\n<!-- Height is just enough to not disrupt line spacing -->\n<!-- Place inline, no carriage returns                 -->\n<xsl:template match=\"initial\">\n  <xsl:text>\\hspace*{-0.75ex}{}</xsl:text>\n  <xsl:text>\\raisebox{0.2\\baselineskip}{\\includegraphics[height=0.55\\baselineskip]{</xsl:text>\n  <xsl:apply-templates select=\"@source\" />\n  <xsl:text></xsl:text>\n  <xsl:text>}}\\hspace*{-0.75ex}{}</xsl:text>\n</xsl:template>\n\n<!-- Includes an \"event\" for presentations -->\n<xsl:template name=\"title-page-info-article\">\n    <xsl:text>%% Title page information for article&#xa;</xsl:text>\n    <xsl:text>\\title{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:if test=\"subtitle\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <!-- Trying to match author fontsize -->\n        <xsl:text>{\\large </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"subtitle\" />\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$docinfo/event\">\n        <xsl:if test=\"title\">\n            <xsl:text>\\\\</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"$docinfo/event\" />\n    </xsl:if>\n    <xsl:if test=\"$bibinfo/support\">\n        <xsl:text>\\support{</xsl:text>\n        <xsl:apply-templates select=\"$bibinfo/support\" mode=\"article-info\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:if test=\"$bibinfo/author or $bibinfo/editor\">\n        <xsl:text>\\author{</xsl:text>\n        <xsl:apply-templates select=\"$bibinfo/author\" mode=\"article-info\"/>\n        <xsl:apply-templates select=\"$bibinfo/editor\" mode=\"article-info\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\date{</xsl:text><xsl:apply-templates select=\"$bibinfo/date\" /><xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"half-title\" is leading page with -->\n<!-- title only, at about 1:2 split    -->\n<xsl:template match=\"book\" mode=\"half-title-ad-card\" >\n    <xsl:text>%% begin: half-title&#xa;</xsl:text>\n    <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n    <xsl:text>{\\titlepagefont\\centering&#xa;</xsl:text>\n    <xsl:text>\\vspace*{0.28\\textheight}&#xa;</xsl:text>\n    <xsl:text>{\\Huge </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}\\\\</xsl:text> <!-- always end line inside centering -->\n    <xsl:if test=\"subtitle\">\n        <xsl:text>[2\\baselineskip]&#xa;</xsl:text> <!-- extend line break if subtitle -->\n        <xsl:text>{\\LARGE </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"subtitle\"/>\n        <xsl:text>}\\\\&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>}&#xa;</xsl:text> <!-- finish centering, title page font -->\n    <xsl:text>\\clearpage&#xa;</xsl:text>\n    <xsl:text>%% end:   half-title&#xa;</xsl:text>\n    <!-- ad-card may very well be blank, and otherwise -->\n    <!-- requires some customization                   -->\n    <xsl:variable name=\"the-ad-card\">\n        <xsl:apply-templates select=\".\" mode=\"ad-card\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- Additional page for non-empty ad-card, -->\n        <!-- sideness is irrelevant                 -->\n        <xsl:when test=\"not($the-ad-card = '')\">\n            <xsl:text>%% begin: adcard&#xa;</xsl:text>\n            <xsl:value-of select=\"$the-ad-card\"/>\n            <xsl:text>\\clearpage&#xa;</xsl:text>\n            <xsl:text>%% end:   adcard&#xa;</xsl:text>\n        </xsl:when>\n        <!-- need an empty page, obverse of half-title    -->\n        <!-- could also be left-side of title page spread -->\n        <xsl:when test=\"($b-latex-two-sides) or ($latex-open-odd = 'add-blanks')\">\n            <xsl:text>%% begin: adcard (empty)&#xa;</xsl:text>\n            <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n            <xsl:text>\\null%&#xa;</xsl:text>\n            <xsl:text>\\clearpage&#xa;</xsl:text>\n            <xsl:text>%% end:   adcard (empty)&#xa;</xsl:text>\n        </xsl:when>\n        <!-- no content, and one-sided, do nothing -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Ad card is the obverse of half-title, and may contain a list -->\n<!-- of other books by the author, or in a two-sided version, it  -->\n<!-- can be used as the left-side of a title page spread.  Send   -->\n<!-- a feature request if you need/want both. This template is as -->\n<!-- a hook meant to be overidden as part of custom XSL provided  -->\n<!-- by a knowledgeable publisher, so empty in typical use.  When -->\n<!-- overridden, it should produce a complete page, but without   -->\n<!-- a \\clearpage at the bottom, that happens automatically.      -->\n<!-- The macro \\titlepagefont can be used (scoped to the page)    -->\n<!-- for harmony with the actual title page, which appears next.  -->\n<xsl:template match=\"book\" mode=\"ad-card\"/>\n\n<!-- LaTeX's title page is not very robust, so we totally redo it         -->\n<!-- Template produces a single page, followed by a \\clearpage            -->\n<!-- Customize with an override of this template in an imported stylesheet -->\n<!-- For a two-page spread, consider modifying the \"ad-card\" template     -->\n<!-- For \"\\centering\" to work properly, obey the following scheme:              -->\n<!-- Each group, but first, should begin with [<length>]&#xa; as vertical break -->\n<!-- Each group, should end with only \\\\ as prelude to vertical break           -->\n<xsl:template match=\"book\" mode=\"title-page\">\n    <xsl:text>%% begin: title page&#xa;</xsl:text>\n    <xsl:text>%% Inspired by Peter Wilson's \"titleDB\" in \"titlepages\" CTAN package&#xa;</xsl:text>\n    <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n    <xsl:text>{\\titlepagefont\\centering&#xa;</xsl:text>\n    <xsl:text>\\vspace*{0.14\\textheight}&#xa;</xsl:text>\n    <!-- Target for xref to top-level element -->\n    <!-- immediately, or first in ToC         -->\n    <xsl:choose>\n        <xsl:when test=\"$b-has-toc\">\n            <!-- N.B.  A font change command for the entire ToC -->\n            <!-- could be inserted here with something like     -->\n            <!--   \\addtocontents{toc}{\\protect\\contentsfont}   -->\n            <!-- but I wanted to document it in place and could -->\n            <!-- not determine how to add a comment into the    -->\n            <!-- *.toc file.  Perhaps best to just employ the   -->\n            <!-- font in the  titletoc  style templates anyway. -->\n            <xsl:text>%% Target for xref to top-level element is ToC&#xa;</xsl:text>\n            <xsl:text>\\addtocontents{toc}{</xsl:text>\n            <xsl:if test=\"$b-pageref\">\n                <xsl:text>\\protect\\label{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>\\protect\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}{}</xsl:text>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>%% Target for xref to top-level element is document start&#xa;</xsl:text>\n            <xsl:if test=\"$b-pageref\">\n                <xsl:text>\\label{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}{}&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>{\\Huge </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}\\\\</xsl:text> <!-- end line inside centering -->\n    <xsl:if test=\"subtitle\">\n        <xsl:text>[\\baselineskip]&#xa;</xsl:text>  <!-- extend if subtitle -->\n        <xsl:text>{\\LARGE </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"subtitle\" />\n        <xsl:text>}\\\\</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"frontmatter/titlepage/titlepage-items\" />\n    <xsl:text>}&#xa;</xsl:text> <!-- finish centering, titlepage font -->\n    <xsl:text>\\clearpage&#xa;</xsl:text>\n    <xsl:text>%% end:   title page&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"titlepage-items\">\n    <xsl:apply-templates select=\"$bibinfo/author\" mode=\"title-page\"/>\n    <xsl:apply-templates select=\"$bibinfo/editor\" mode=\"title-page\" />\n    <xsl:apply-templates select=\"$bibinfo/credit[title]\" mode=\"title-page\" />\n    <xsl:apply-templates select=\"$bibinfo/date\"   mode=\"title-page\" />\n</xsl:template>\n\n<xsl:template match=\"author|editor\" mode=\"title-page\">\n    <xsl:text>[3\\baselineskip]&#xa;</xsl:text>\n    <xsl:text>{\\Large </xsl:text>\n    <xsl:apply-templates select=\"personname\" />\n    <xsl:if test=\"self::editor\">\n        <xsl:text>, </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    </xsl:if>\n    <xsl:text>}\\\\</xsl:text>\n    <xsl:if test=\"affiliation/institution\">\n        <xsl:text>[0.5\\baselineskip]&#xa;</xsl:text>\n        <xsl:text>{\\Large </xsl:text>\n        <xsl:apply-templates select=\"affiliation/institution\" />\n        <xsl:text>}\\\\</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- One \"title\" per-credit, but multiple authors are OK -->\n<xsl:template match=\"credit\" mode=\"title-page\">\n    <xsl:text>[3\\baselineskip]&#xa;</xsl:text>\n    <xsl:text>{\\Large </xsl:text>\n    <xsl:apply-templates  select=\".\" mode=\"title-full\" />\n    <xsl:text>}\\\\[0.5\\baselineskip]&#xa;</xsl:text>\n    <xsl:for-each select=\"author\">\n        <xsl:text>{\\normalsize </xsl:text>\n        <xsl:apply-templates select=\"personname\" />\n        <xsl:text>}\\\\</xsl:text>\n        <xsl:if test=\"affiliation/institution\">\n            <xsl:text>[0.25\\baselineskip]&#xa;</xsl:text>\n            <xsl:apply-templates select=\"affiliation/institution\" />\n            <xsl:text>\\\\</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"following-sibling::author\">\n            <xsl:text>[0.5\\baselineskip]&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:for-each>\n</xsl:template>\n\n<xsl:template match=\"date\" mode=\"title-page\">\n    <xsl:text>[3\\baselineskip]&#xa;</xsl:text>\n    <xsl:text>{\\Large </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}\\\\</xsl:text>\n</xsl:template>\n\n<!-- Copyright page is obverse of title page    -->\n<!-- Lots of stuff here, much of it optional    -->\n<!-- But we assume an author eventually states  -->\n<!-- their copyright, so do not handle the case -->\n<!-- of this content ever being empty (such as  -->\n<!-- with the ad-card).  So a LaTeX label is OK -->\n<!-- as well.  A final \"\\null\" is just          -->\n<!-- protection for a non-mature project.       -->\n<xsl:template match=\"book\" mode=\"copyright-page\" >\n    <!-- TODO: split out sections like \"website\" -->\n    <!-- ISBN, Cover Design, Publisher -->\n    <xsl:text>%% begin: copyright-page&#xa;</xsl:text>\n    <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n    <!-- This is the most obvious place for   -->\n    <!-- a target to the front colophon       -->\n    <!-- NB: only a book has a front colophon -->\n    <xsl:apply-templates select=\"frontmatter/colophon\" mode=\"label\" />\n    <xsl:if test=\"not(../docinfo/author-biographies/@length = 'long')\">\n        <xsl:apply-templates select=\"frontmatter/biography\" mode=\"copyright-page\" />\n    </xsl:if>\n    <xsl:text>\\vspace*{\\stretch{2}}&#xa;</xsl:text>\n\n    <xsl:if test=\"$bibinfo/credit[role]\">\n        <xsl:text>\\par\\noindent&#xa;</xsl:text>\n    </xsl:if>\n    <!-- We accomodate multiple \"credit\" with a context shift -->\n    <xsl:for-each select=\"$bibinfo/credit[role]\">\n        <xsl:text>\\textbf{</xsl:text>\n        <xsl:apply-templates select=\"role\" />\n        <xsl:text>}:\\ \\ </xsl:text>\n        <xsl:apply-templates select=\"entity\" />\n        <xsl:if test=\"following-sibling::credit\">\n            <xsl:text>\\\\</xsl:text>\n        </xsl:if>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:for-each>\n    <xsl:if test=\"$bibinfo/credit[role]\">\n        <xsl:text>\\par\\vspace*{\\stretch{2}}&#xa;</xsl:text>\n    </xsl:if>\n\n    <!-- A book cannot be multiple editions, and if -->\n    <!-- attempted this will produce a mish-mash.   -->\n    <xsl:if test=\"$bibinfo/edition\" >\n        <xsl:text>\\noindent{\\bfseries </xsl:text>\n        <xsl:apply-templates select=\"$bibinfo/edition\" mode=\"type-name\"/>\n        <xsl:text>}: </xsl:text>\n        <xsl:apply-templates select=\"$bibinfo/edition\" />\n        <xsl:text>\\par\\medskip&#xa;</xsl:text>\n    </xsl:if>\n\n    <!-- We accomodate zero to many \"website\". -->\n    <xsl:apply-templates select=\"$bibinfo/website\"/>\n\n    <!-- There may be multiple copyrights (a fork under the GFDL -->\n    <!-- requires as much).  This accomodates zero to many.  The -->\n    <!-- \"for-each\" enacts a context shift so we know we are     -->\n    <!-- mining one \"copyright\" element at a time.               -->\n    <xsl:for-each select=\"$bibinfo/copyright\">\n        <xsl:text>\\noindent</xsl:text>\n        <xsl:call-template name=\"copyright-character\"/>\n        <xsl:apply-templates select=\"year\" />\n        <xsl:text>\\quad{}</xsl:text>\n        <xsl:apply-templates select=\"holder\" />\n        <xsl:if test=\"shortlicense\">\n            <xsl:text>\\\\[0.5\\baselineskip]&#xa;</xsl:text>\n            <xsl:apply-templates select=\"shortlicense\" />\n        </xsl:if>\n        <xsl:text>\\par\\medskip&#xa;</xsl:text>\n    </xsl:for-each>\n\n    <xsl:text>\\vspace*{\\stretch{1}}&#xa;</xsl:text>\n    <!-- Add support statement from bibinfo if present. -->\n    <xsl:if test=\"$bibinfo/support\">\n        <xsl:apply-templates select=\"$bibinfo/support\" mode=\"copyright-page\"/>\n    </xsl:if>\n    <!-- Something so page is not totally nothing -->\n    <xsl:text>\\null\\clearpage&#xa;</xsl:text>\n    <xsl:text>%% end:   copyright-page&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Only for a book with a colophon, we put the statement of support at the bottom of the colophon -->\n<xsl:template match=\"bibinfo/support\" mode=\"copyright-page\">\n    <xsl:text>%% Funding/Support statement:</xsl:text>\n    <xsl:text>\\par\\medskip&#xa;</xsl:text>\n    <xsl:text>\\noindent{}</xsl:text>\n    <xsl:apply-templates select=\"*\" />\n    <xsl:text>\\par&#xa;</xsl:text>\n    <xsl:text>\\vspace*{\\stretch{1}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- URL for canonical project website -->\n<xsl:template match=\"frontmatter/bibinfo/website\">\n    <xsl:text>\\noindent{\\bfseries </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}: </xsl:text>\n    <!-- NB: interior of \"website\" is a \"url\" in author's -->\n    <!-- source, but the pre-processor adds a footnote    -->\n    <!-- Only one presumed, and thus enforced here        -->\n    <xsl:apply-templates select=\"url[1]|fn[1]\" />\n    <xsl:text>\\par\\medskip&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- Author biographies -->\n<!-- Verso of title page, we call this the front colophon -->\n<!-- Title is optional, presumably for a single author    -->\n<xsl:template match=\"biography\" mode=\"copyright-page\">\n    <xsl:if test=\"preceding-sibling::*[self::biography]\">\n        <xsl:text>\\bigskip</xsl:text>\n    </xsl:if>\n    <xsl:text>\\noindent</xsl:text>\n    <xsl:if test=\"title\">\n        <xsl:text>\\textbf{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        <xsl:text>}\\space\\space</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <!-- drop a par, for next bio, or for big vspace -->\n    <xsl:text>\\par&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Authors, editors, info for article info to \\maketitle -->\n<!-- http://stackoverflow.com/questions/2817664/xsl-how-to-tell-if-element-is-last-in-series -->\n<xsl:template match=\"author\" mode=\"article-info\">\n    <xsl:apply-templates select=\"personname\" />\n    <xsl:if test=\"affiliation\">\n        <xsl:apply-templates select=\"affiliation\" />\n    </xsl:if>\n    <xsl:if test=\"email\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"email\" />\n    </xsl:if>\n    <xsl:if test=\"support\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"support\" />\n    </xsl:if>\n    <xsl:if test=\"following-sibling::author\" >\n        <xsl:text>&#xa;\\and</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"editor\" mode=\"article-info\">\n    <xsl:apply-templates select=\"personname\" />\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:if test=\"affiliation\">\n        <xsl:apply-templates select=\"affiliation\"/>\n    </xsl:if>\n    <xsl:if test=\"email\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"email\" />\n    </xsl:if>\n    <xsl:if test=\"following-sibling::editor\" >\n        <xsl:text>&#xa;\\and</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Preprocessor always puts Department, Institution, and Location         -->\n<!-- inside Affiliation. This just adds line breaks between them as needed. -->\n<xsl:template match=\"affiliation\">\n    <xsl:if test=\"department\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"department\" />\n    </xsl:if>\n    <xsl:if test=\"institution\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"institution\" />\n    </xsl:if>\n    <xsl:if test=\"location\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n        <xsl:apply-templates select=\"location\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"bibinfo/support\" mode=\"article-info\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<xsl:template match=\"bibinfo/support\" mode=\"article-info\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Departments, Institutions, and Addresses are free-form, or sequences of lines  -->\n<!-- Line breaks are inserted above, due to \\and, etc, so do not end last line here -->\n<xsl:template match=\"department|institution|location\">\n    <xsl:apply-templates/>\n</xsl:template>\n\n<xsl:template match=\"department[line]|institution[line]|location[line]\">\n    <xsl:apply-templates select=\"line\" />\n</xsl:template>\n\n<!-- ###################### -->\n<!-- Front Matter, Articles -->\n<!-- ###################### -->\n\n<!-- The DTD should enforce order(titlepage|abstract) -->\n<!-- An optional ToC follows and is final decoration  -->\n<xsl:template match=\"article/frontmatter\">\n    <xsl:apply-templates select=\"titlepage|abstract\" />\n    <xsl:if test=\"$latex-toc-level > 0\">\n        <xsl:text>%% Adjust Table of Contents&#xa;</xsl:text>\n        <xsl:text>\\setcounter{tocdepth}{</xsl:text>\n        <xsl:value-of select=\"$latex-toc-level\" />\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>\\renewcommand*\\contentsname{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'toc'\"/>\n        </xsl:apply-templates>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>\\tableofcontents&#xa;</xsl:text>\n        <xsl:text>\\clearpage&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Title information handling is a bit ad-hoc                        -->\n<!-- We should perhaps roll-our-own here                               -->\n<!-- Instead we assume the title-page-info-article has set *something* -->\n<!-- NB: it is possible for there to be no article/title               -->\n<xsl:template match=\"article/frontmatter/titlepage\">\n    <xsl:text>\\maketitle&#xa;</xsl:text>\n    <!-- If a title, we know it is page 1, so use empty style -->\n    <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Articles may have an abstract in the frontmatter. We -->\n<!-- accept the LaTeX article class approach and switch   -->\n<!-- to a localization of the heading just prior to use.  -->\n<!-- Keywords are placed inside the abstract, at the end. -->\n<xsl:template match=\"article/frontmatter/abstract\">\n    <xsl:text>\\renewcommand*{\\abstractname}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\begin{abstract}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:if test=\"$bibinfo/keywords\">\n        <xsl:apply-templates select=\"$bibinfo/keywords\"/>\n    </xsl:if>\n    <xsl:text>\\end{abstract}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"bibinfo/keywords\">\n    <xsl:text>\\par\\medskip&#xa;</xsl:text>\n    <xsl:text>\\noindent{\\bfseries </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}. </xsl:text>\n    <xsl:apply-templates select=\"*\" />\n    <xsl:text>.&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ################### -->\n<!-- Front Matter, Books -->\n<!-- ################### -->\n\n<!-- The <colophon> portion of <frontmatter> generally  -->\n<!-- gets mined to migrate various places, so we kill   -->\n<!-- it as part of processing the front matter element. -->\n<!-- Author biography migrates to the obverse of the    -->\n<!-- copyright page in LaTeX, sans any provided title.  -->\n<!-- So we kill this part of the front matter as        -->\n<!-- a section of its own.  (In HTML the material       -->\n<!-- is its own titled division).                       -->\n<xsl:template match=\"book/frontmatter\">\n    <!-- DTD: does the next line presume <frontmatter> is required? -->\n    <xsl:text>\\frontmatter&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*[not(self::colophon or self::biography)]\" />\n    <xsl:text>%% begin: table of contents&#xa;</xsl:text>\n    <xsl:if test=\"$latex-toc-level > -1\">\n        <xsl:text>%% Adjust Table of Contents&#xa;</xsl:text>\n        <xsl:text>\\setcounter{tocdepth}{</xsl:text>\n        <xsl:value-of select=\"$latex-toc-level\" />\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>\\renewcommand*\\contentsname{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'toc'\"/>\n        </xsl:apply-templates>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:text>\\tableofcontents&#xa;</xsl:text>\n        <xsl:text>%% end:   table of contents&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Potentially: list of illustrations, etc.     -->\n    <!-- Potentially: introduction, second half-title -->\n    <!-- if we have a \\frontmatter, we must end it with \\mainmatter -->\n    <xsl:text>\\mainmatter&#xa;</xsl:text>\n</xsl:template>\n\n<!-- A huge decoration, spanning many pages             -->\n<!-- Not structural, titlepage element is just a signal -->\n<!-- Includes items from the colophon                   -->\n<xsl:template match=\"book/frontmatter/titlepage\">\n    <!-- first page, half-title only; obverse -->\n    <!-- of half-title is possible adcard     -->\n    <xsl:apply-templates select=\"../..\" mode=\"half-title-ad-card\" />\n    <!-- title page -->\n    <xsl:apply-templates select=\"../..\" mode=\"title-page\" />\n    <!-- title page obverse is copyright, assumed non-empty -->\n    <xsl:apply-templates select=\"../..\" mode=\"copyright-page\" />\n    <!-- long biographies come earliest, since normally on copyright page -->\n    <!-- short biographies are part of the copyright-page template        -->\n    <xsl:if test=\"$docinfo/author-biographies/@length = 'long' and ../biography\">\n        <xsl:apply-templates select=\"../..\" mode=\"author-biography-subdivision\" />\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"book\" mode=\"author-biography-subdivision\">\n    <xsl:variable name=\"number-authors\" select=\"count(frontmatter/biography)\" />\n    <xsl:variable name=\"title-string\">\n        <xsl:choose>\n            <xsl:when test=\"$number-authors > 1\">\n                <xsl:apply-templates select=\"frontmatter\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'about-authors'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"frontmatter\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'about-author'\"/>\n                </xsl:apply-templates>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>%% begin: author biography (long)&#xa;</xsl:text>\n    <xsl:text>\\chapter*{</xsl:text>\n    <xsl:value-of select=\"$title-string\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\addcontentsline{toc}{chapter}{</xsl:text>\n    <xsl:value-of select=\"$title-string\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$number-authors > 1\">\n            <xsl:apply-templates select=\"frontmatter/biography\" mode=\"biography-subdivision\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:if test=\"frontmatter/biography/title\">\n                <xsl:text>\\section*{</xsl:text>\n                <xsl:apply-templates select=\"frontmatter/biography\" mode=\"title-full\" />\n                <xsl:text>}&#xa;</xsl:text>\n            </xsl:if>\n            <!-- else don't bother titling-->\n            <xsl:apply-templates select=\"frontmatter/biography/*\" />\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\\cleardoublepage</xsl:text>\n    <xsl:text>%% end: author biography (long)&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"biography\" mode=\"biography-subdivision\">\n    <xsl:text>\\section*{</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>DEFAULT TO FULL NAME HERE</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Dedication page is very plain, with a blank obverse     -->\n<!-- Accomodates multiple recipient (eg if multiple authors) -->\n<xsl:template match=\"dedication\">\n    <xsl:text>%% begin: dedication-page&#xa;</xsl:text>\n    <xsl:text>\\cleardoublepage&#xa;</xsl:text>\n    <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n    <xsl:text>\\vspace*{\\stretch{1}}&#xa;</xsl:text>\n    <!-- paragraphs only, one per dedication -->\n    <xsl:apply-templates select=\"p\"/>\n    <xsl:text>\\vspace*{\\stretch{2}}&#xa;</xsl:text>\n    <xsl:text>\\clearpage&#xa;</xsl:text>\n    <xsl:text>%% end:   dedication-page&#xa;</xsl:text>\n    <xsl:if test=\"$b-latex-two-sides\">\n        <xsl:text>%% begin: obverse-dedication-page (empty)&#xa;</xsl:text>\n        <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n        <xsl:text>\\null%&#xa;</xsl:text>\n        <xsl:text>\\clearpage&#xa;</xsl:text>\n        <xsl:text>%% end:   obverse-dedication-page (empty)&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Dedications are meant to be very short      -->\n<!-- so are each a single paragraph and          -->\n<!-- are centered on a page of their own         -->\n<!-- The center environment provides good        -->\n<!-- vertical break between multiple instances   -->\n<!-- Each \"p\" may be structured by \"line\"        -->\n<!-- The p[1] elsewhere is the default,          -->\n<!-- hence we use the priority mechanism (>0.5)  -->\n<xsl:template match=\"dedication/p|dedication/p[1]\" priority=\"1\">\n    <xsl:text>\\begin{center}\\Large%&#xa;</xsl:text>\n        <xsl:apply-templates/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\end{center}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ##################### -->\n<!-- Front Matter, Letters -->\n<!-- ##################### -->\n\n<xsl:template match=\"letter/frontmatter\">\n    <!-- Logos (letterhead images) immediately -->\n    <xsl:apply-templates select=\"$docinfo/logo\" />\n    <xsl:text>\\vspace*{\\stretch{1}}&#xa;</xsl:text>\n    <xsl:text>\\thispagestyle{empty}&#xa;</xsl:text>\n    <!-- Push down some on first page to accomodate letterhead -->\n    <xsl:text>\\vspace*{0.75in}&#xa;</xsl:text>\n    <!-- Stretchy vertical space if page 1 does not fill -->\n    <xsl:text>\\vspace*{\\stretch{1}}&#xa;%&#xa;</xsl:text>\n    <!-- Sender's address, sans name typically -->\n    <!-- and if not already on letterhead      -->\n    <!-- Structured as lines, always           -->\n    <!-- http://tex.stackexchange.com/questions/13542/flush-a-left-flushed-box-right -->\n    <xsl:if test=\"from or date\">\n        <xsl:text>\\hfill\\begin{tabular}{l@{}}&#xa;</xsl:text>\n        <xsl:if test=\"from\">\n            <xsl:apply-templates select=\"from/line\" />\n            <xsl:if test=\"date\">\n                <!-- end from -->\n                <xsl:text>\\\\&#xa;</xsl:text>\n                <!-- introduce a blank line -->\n                <xsl:text>\\mbox{}\\\\&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:if>\n        <!-- Date -->\n        <xsl:if test=\"date\">\n            <xsl:apply-templates select=\"date\" />\n        </xsl:if>\n        <xsl:text>&#xa;\\end{tabular}\\\\\\par&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Destination address, flush left -->\n    <!-- Structured as lines, always     -->\n    <xsl:if test=\"to\">\n        <xsl:text>\\noindent{}</xsl:text>\n        <xsl:apply-templates select=\"to/line\" />\n        <xsl:text>\\\\\\par</xsl:text>\n        <!-- extra comment line before salutation/body -->\n        <xsl:text>&#xa;%&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Salutation, flush left                   -->\n    <!-- No punctuation (author's responsibility) -->\n    <xsl:if test=\"salutation\">\n        <xsl:text>\\noindent{}</xsl:text>\n        <xsl:apply-templates select=\"salutation\" />\n        <xsl:text>\\\\\\par</xsl:text>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Final lines of from/to address get treated carefully above -->\n<!-- Differentiate from memo versions                           -->\n<xsl:template match=\"letter/frontmatter/from/line|letter/frontmatter/to/line\">\n    <xsl:apply-templates/>\n    <!-- is there a following line to separate? -->\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Front Matter, Memos -->\n<!-- ################### -->\n\n<xsl:template match=\"memo/frontmatter\">\n    <xsl:text>\\thispagestyle{empty}&#xa;%&#xa;</xsl:text>\n    <!-- Logos (letterhead images) to first page -->\n    <xsl:apply-templates select=\"$docinfo/logo\" />\n    <!-- Get width of widest out-dented text -->\n    <xsl:text>\\newlength{\\subjectwidth}&#xa;</xsl:text>\n    <xsl:text>\\settowidth{\\subjectwidth}{\\textsf{Subject:}}&#xa;</xsl:text>\n    <!-- Push down some on first page to accomodate letterhead -->\n    <xsl:text>\\vspace*{0.75in}&#xa;</xsl:text>\n    <!-- Outdent experimentally, scales well at 10pt, 11pt, 12pt -->\n    <!-- Control separation                                      -->\n    <xsl:text>\\hspace*{-1.87\\subjectwidth}%&#xa;</xsl:text>\n    <xsl:text>{\\setlength{\\tabcolsep}{1ex}%&#xa;</xsl:text>\n    <!-- Second column at textwidth is slightly too much -->\n    <xsl:text>\\begin{tabular}{rp{0.97\\textwidth}}&#xa;</xsl:text>\n    <xsl:text>\\textsf{To:}</xsl:text>\n    <xsl:choose>\n        <!-- multiline structured -->\n        <xsl:when test=\"to/line\">\n            <xsl:apply-templates select=\"to/line\" />\n        </xsl:when>\n        <!-- always a newline, even if blank -->\n        <xsl:otherwise>\n            <xsl:text>&amp;</xsl:text>\n            <xsl:apply-templates select=\"to\" />\n            <xsl:text>\\\\&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\\textsf{From:}</xsl:text>\n    <xsl:choose>\n        <!-- multiline structured -->\n        <xsl:when test=\"from/line\">\n            <xsl:apply-templates select=\"from/line\" />\n        </xsl:when>\n        <!-- always a newline, even if blank -->\n        <xsl:otherwise>\n            <xsl:text>&amp;</xsl:text>\n            <xsl:apply-templates select=\"from\" />\n            <xsl:text>\\\\&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\\textsf{Date:}&amp;</xsl:text>\n    <xsl:apply-templates select=\"date\" /><xsl:text>\\\\&#xa;</xsl:text>\n    <xsl:text>\\textsf{Subject:}&amp;</xsl:text>\n    <xsl:apply-templates select=\"subject\" /><xsl:text>&#xa;</xsl:text>\n    <xsl:text>\\end{tabular}%&#xa;</xsl:text>\n    <xsl:text>}%&#xa;</xsl:text>\n    <!-- And drop a bit -->\n    <xsl:text>\\par\\bigskip&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Differentiate from letter versions -->\n<xsl:template match=\"memo/frontmatter/from/line|memo/frontmatter/to/line\">\n    <xsl:text>&amp;</xsl:text>\n    <xsl:apply-templates/>\n    <!-- part of a big block, use newline everywhere -->\n    <xsl:text>\\\\&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Back Matter -->\n<!-- ############ -->\n\n<!-- A PreTeXt \"backmatter\" includes appendices, references, index,  -->\n<!-- colophon, etc.  However, LaTeX uses \\appendix to morph chapters -->\n<!-- into appendices (name and numbering), and then uses \\backmatter -->\n<!-- to switch to un-numbered chapters, though we should write these -->\n<!-- as un-numbered anyway, since the \"article\" class has no         -->\n<!-- \\backmatter command anyway.  So our \"backmatter\" is not a       -->\n<!-- significant marker for LaTeX conversion.  We instead process    -->\n<!-- appendices and solutions (specialized appendices), and then     -->\n<!-- everything left in \"backmatter\".                                -->\n<!-- NB: could restrict the second \"select\" further                  -->\n<!-- NB: these two templates are similar logically, but merging      -->\n<!-- them had too many exceptions and they became unreadable         -->\n<!--                                                                 -->\n<!-- A LaTeX \"article\" can only have sections (i.e. at most) so we   -->\n<!-- just add visual breaks into the ToC, which already works well   -->\n<!-- in a PDF sidebar.  A LaTeX \"book\" can have parts.  Whether or   -->\n<!-- not the PreTeXt \"book\" has parts, using a LaTeX part works very -->\n<!-- well in either case.                                            -->\n\n<xsl:template match=\"article/backmatter\">\n    <xsl:variable name=\"appendices-name\">\n        <xsl:apply-templates select=\".\" mode=\"type-name\">\n            <xsl:with-param name=\"string-id\" select=\"'appendices'\"/>\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:if test=\"appendix|solutions\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>\\appendix%&#xa;</xsl:text>\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>%% A lineskip in table of contents as a transition to the appendices&#xa;</xsl:text>\n        <xsl:text>\\addtocontents{toc}{\\vspace{\\normalbaselineskip}}%&#xa;</xsl:text>\n        <!-- backmatter solutions divisions are realized as appendices -->\n        <xsl:apply-templates select=\"appendix|solutions\"/>\n    </xsl:if>\n    <xsl:if test=\"*[not(self::appendix|self::solutions)]\">\n        <!-- Some vertical separation into ToC prior to backmatter is useful -->\n        <xsl:text>%% A lineskip in table of contents as a transition to the rest of the backmatter&#xa;</xsl:text>\n        <xsl:text>\\addtocontents{toc}{\\vspace{\\normalbaselineskip}}&#xa;</xsl:text>\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:apply-templates select=\"*[not(self::appendix|self::solutions)]\"/>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"book/backmatter\">\n    <xsl:if test=\"appendix|solutions\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>\\appendix%&#xa;</xsl:text>\n        <xsl:text>%&#xa;</xsl:text>\n        <!-- A book without parts gets a ToC entry, which is functional, -->\n        <!-- while a book with parts gets a full-fledged part that is a  -->\n        <!-- page of its own, etc, along with a ToC entry                -->\n        <xsl:choose>\n            <xsl:when test=\"$parts = 'absent'\">\n                <!-- make sure we are on a fresh page and drop a target -->\n                <xsl:text>\\clearpage\\phantomsection%&#xa;</xsl:text>\n                <xsl:text>\\addcontentsline{toc}{part}{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'appendices'\"/>\n                </xsl:apply-templates>\n                <xsl:text>}%&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\part*{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'appendices'\"/>\n                </xsl:apply-templates>\n                <xsl:text>}%&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <!-- backmatter solutions divisions are realized as appendices -->\n        <xsl:apply-templates select=\"appendix|solutions\"/>\n    </xsl:if>\n    <xsl:if test=\"*[not(self::appendix|self::solutions)]\">\n        <xsl:text>%&#xa;</xsl:text>\n        <xsl:text>\\backmatter%&#xa;</xsl:text>\n        <xsl:text>%&#xa;</xsl:text>\n        <!-- make sure we are on a fresh page and drop a target -->\n        <xsl:text>\\clearpage\\phantomsection%&#xa;</xsl:text>\n        <!-- We only *enhance* the ToC, parts or not -->\n        <xsl:text>\\addcontentsline{toc}{part}{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>}%&#xa;</xsl:text>\n        <xsl:apply-templates select=\"*[not(self::appendix|self::solutions)]\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- The back colophon of a book goes on its own recto page -->\n<!-- The \"backcolophon\" environment is a tcolorbox          -->\n<xsl:template match=\"book/backmatter/colophon\">\n    <xsl:choose>\n        <xsl:when test=\"$b-latex-two-sides\">\n            <xsl:text>\\cleardoublepage&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\clearpage&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\\pagestyle{empty}&#xa;</xsl:text>\n    <xsl:text>\\vspace*{\\stretch{1}}&#xa;</xsl:text>\n    <xsl:text>\\begin{backcolophon}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{backcolophon}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n    <xsl:text>\\vspace*{\\stretch{2}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- The back colophon of an article is simpler -->\n<xsl:template match=\"article/backmatter/colophon\">\n    <xsl:text>\\begin{backcolophon}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{backcolophon}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- Appendices are handled in the general subdivision template -->\n\n<!-- The index itself needs special handling    -->\n<!-- The \"index\" element signals an index,      -->\n<!-- and the content is just an optional title  -->\n<!-- and a compulsory \"index-list\"              -->\n<!-- For a LaTeX-native index, we just          -->\n<!-- apply-templates to the \"index-list\"        -->\n<!-- element since the \"\\printindex macro takes -->\n<!-- care of the heading.  For a PreTeXt index  -->\n<!-- we utilize an environment purpose-built    -->\n<!-- for the index.                             -->\n<!-- TODO: multiple indices, with different titles -->\n<xsl:template match=\"index\">\n    <xsl:choose>\n        <xsl:when test=\"$index-maker = 'pretext'\">\n            <!-- The LaTeX \"classic\" index always appears on a new page. -->\n            <!-- Perhaps this should be part of some page/division       -->\n            <!-- infrastructure and not so hard-coded as it is here.     -->\n            <xsl:text>\\newpage%&#xa;</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"latex-division-heading\"/>\n            <xsl:apply-templates select=\"index-list\"/>\n            <xsl:apply-templates select=\".\" mode=\"latex-division-footing\"/>\n        </xsl:when>\n        <xsl:when test=\"$index-maker = 'latex'\">\n            <xsl:apply-templates select=\"index-list\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- TEMPORARY (2024-08-11) (migrate to publisher)  -->\n<!-- We parameterize creation of the index with     -->\n<!-- a switch that determines \"who\" does the work.  -->\n<!-- 'latex'                                        -->\n<!--     The usual default semi-automatic procedure -->\n<!-- 'pretext'                                      -->\n<!--     Logic, organization, and content via the   -->\n<!--     same routines that create an HTML index,   -->\n<!--     with presentation details handled here     -->\n<!--     (Not implemented yet!)                     -->\n<xsl:param name=\"index-maker\" select=\"'latex'\"/>\n\n<xsl:template match=\"index-list\">\n    <xsl:choose>\n        <!-- Reach down into -common for shared code that   -->\n        <!-- relies on abstract templates for presentation. -->\n        <!-- Start here with abstract template matching     -->\n        <!-- \"index-list\"                                   -->\n        <xsl:when test=\"$index-maker = 'pretext'\">\n            <xsl:apply-imports/>\n        </xsl:when>\n        <!-- Have LaTeX do all the work. -->\n        <xsl:when test=\"$index-maker = 'latex'\">\n            <xsl:text>%&#xa;</xsl:text>\n            <xsl:text>%% The index is here, setup is all in preamble&#xa;</xsl:text>\n            <xsl:text>%% Index locators are cross-references, so same font here&#xa;</xsl:text>\n            <xsl:text>{\\xreffont\\printindex}&#xa;</xsl:text>\n            <xsl:text>%&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n\n<xsl:template name=\"present-index\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:text>\\begin{multicols*}{2}%&#xa;</xsl:text>\n    <!-- Turn off paragraph indentation within the -->\n    <!-- scope of the multicolumn environment      -->\n    <xsl:text>\\setlength{\\parindent}{0pt}%&#xa;</xsl:text>\n    <xsl:copy-of select=\"$content\"/>\n    <xsl:text>\\end{multicols*}%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"present-letter-group\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"letter-group\"/>\n    <xsl:param name=\"current-letter\"/>\n    <xsl:param name=\"content\"/>\n\n    <xsl:copy-of select=\"$content\"/>\n\n    <!-- The index for CMoS has only gaps between letter groups,  -->\n    <!-- about 2 lines, much like default LaTeX.  Bringhurst has  -->\n    <!-- fleurons and in the margin, the first and last entry of  -->\n    <!-- each page.                                               -->\n\n    <!-- Visual separation to next letter group          -->\n    <!-- Seems to be about 20% taller than default LaTeX -->\n    <!-- TODO: pass in flag for last letter group, so we don't write -->\n    <!-- this out when not necessary (and maybe force a new page?    -->\n    <xsl:text>\\par\\vspace*{1.0\\parskip}%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"present-index-heading\">\n    <xsl:param name=\"the-index-list\"/>\n    <xsl:param name=\"heading-group\"/>\n    <xsl:param name=\"b-write-locators\"/>\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"content\"/>\n\n    <!-- TODO: implement indentation with macros? -->\n    <xsl:choose>\n        <xsl:when test=\"$heading-level = 1\">\n            <!-- visual formatting, break with the past -->\n            <xsl:text>%&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$heading-level = 2\">\n            <xsl:text>\\hspace*{18pt}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$heading-level = 3\">\n            <xsl:text>\\hspace*{36pt}</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n\n    <xsl:copy-of select=\"$content\"/>\n\n    <!-- perhaps time to write locators -->\n    <xsl:if test=\"$b-write-locators\">\n        <xsl:call-template name=\"locator-list\">\n            <xsl:with-param name=\"the-index-list\" select=\"$the-index-list\"/>\n            <xsl:with-param name=\"heading-group\" select=\"$heading-group\" />\n            <!-- use comma-space to separate knowls -->\n            <xsl:with-param name=\"cross-reference-separator\" select=\"', '\" />\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:text>\\\\%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- This is poorly named and maybe needs a refactor.  For an HTML index,  -->\n<!-- we look up the tree to find an object that can be knowlized as the    -->\n<!-- locator, and build a knowl cross-reference.  The $enclosure parameter -->\n<!-- is the provoking \"idx\", unclear why that is not passed through the    -->\n<!-- match/select.  In any event, we need to make a cross-reference here,  -->\n<!-- a standard page reference, which will be fine in print and which will -->\n<!-- be a hyperlink in electronic versions.  The \\pageref\\label mechanism  -->\n<!-- uses the string from the \"unique-id\" for the \"idx\" element, so the    -->\n<!-- \\label must be set elsewhere.                                         -->\n<xsl:template match=\"index-list\" mode=\"index-enclosure\">\n    <xsl:param name=\"enclosure\"/>\n\n    <!-- NB: $enclosure is always an \"idx\" element, -->\n    <!-- this should be unwound in a refactor       -->\n\n    <xsl:text>\\pageref{</xsl:text>\n    <xsl:apply-templates select=\"$enclosure\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"present-index-locator\">\n    <xsl:param name=\"content\"/>\n    <xsl:copy-of select=\"$content\"/>\n</xsl:template>\n\n<!-- Just duplicate, processed text from -->\n<!-- abstract templates is sufficient    -->\n<xsl:template name=\"present-index-see\">\n    <xsl:param name=\"content\"/>\n    <xsl:copy-of select=\"$content\"/>\n</xsl:template>\n\n<!-- Just duplicate, processed text from -->\n<!-- abstract templates is sufficient    -->\n<xsl:template name=\"present-index-see-also\">\n    <xsl:param name=\"content\"/>\n    <xsl:copy-of select=\"$content\"/>\n</xsl:template>\n\n<xsl:template name=\"present-index-italics\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:text>{\\textit </xsl:text>\n    <xsl:copy-of select=\"$content\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n\n<!--               -->\n<!-- Notation List -->\n<!--               -->\n\n<!-- At location, we just drop a marker to get the page number -->\n<xsl:template match=\"notation\">\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n    <!-- do not introduce anymore whitespace into a \"p\" than there   -->\n    <!-- already is, but do format these one-per-line outside of \"p\" -->\n    <xsl:if test=\"not(ancestor::p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Implementation of abstract templates.       -->\n<!-- See more complete code comments in -common. -->\n\n<!-- Deccription column is \"p\" to enable word-wrapping  -->\n<!-- The 60% width is arbitrary, could see improvements -->\n<!-- This is not a PreTeXt \"table\" so we don't let      -->\n<!-- LaTeX number it, nor increment the table counter   -->\n<xsl:template name=\"present-notation-list\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:text>\\begin{longtable}[l]{lp{0.60\\textwidth}r}&#xa;</xsl:text>\n    <xsl:text>\\addtocounter{table}{-1}&#xa;</xsl:text>\n    <xsl:text>\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'symbol'\"/>\n    </xsl:apply-templates>\n    <xsl:text>}&amp;\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'description'\"/>\n    </xsl:apply-templates>\n    <xsl:text>}&amp;\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'page'\"/>\n    </xsl:apply-templates>\n    <xsl:text>}\\\\[1em]&#xa;</xsl:text>\n    <xsl:text>\\endfirsthead&#xa;</xsl:text>\n    <xsl:text>\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'symbol'\"/>\n    </xsl:apply-templates>\n    <xsl:text>}&amp;\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'description'\"/>\n    </xsl:apply-templates>\n    <xsl:text>}&amp;\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'page'\"/>\n    </xsl:apply-templates>\n    <xsl:text>}\\\\[1em]&#xa;</xsl:text>\n    <xsl:text>\\endhead&#xa;</xsl:text>\n    <xsl:text>\\multicolumn{3}{r}{(</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'continued'\"/>\n    </xsl:apply-templates>\n    <xsl:text>)}\\\\&#xa;</xsl:text>\n    <xsl:text>\\endfoot&#xa;</xsl:text>\n    <xsl:text>\\endlastfoot&#xa;</xsl:text>\n    <!-- the actual body/rows/content -->\n    <xsl:copy-of select=\"$content\"/>\n    <xsl:text>\\end{longtable}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"notation\" mode=\"present-notation-item\">\n    <!-- Process *exactly* one \"m\" element -->\n    <xsl:apply-templates select=\"usage/m[1]\"/>\n    <xsl:text>&amp;</xsl:text>\n    <xsl:apply-templates select=\"description\" />\n    <xsl:text>&amp;</xsl:text>\n    <xsl:text>\\pageref{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <!-- It seems very expensive to test for the last \"notation\"    -->\n    <!-- globally (not(following::notation)), adding a second or    -->\n    <!-- two to a 12-second run-time for the sample article.        -->\n    <!-- But it would be nice not to have the unnecessary \"\\\\\"      -->\n    <!-- on the last row of the table.  See comments in -common for -->\n    <!-- a complicated approach that might be reasonably efficient. -->\n    <xsl:text>\\\\&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ####################################### -->\n<!-- Solutions Divisions, Content Generation -->\n<!-- ####################################### -->\n\n<!-- The \"division-in-solutions\" modal template from -common   -->\n<!-- calls the \"duplicate-heading\" modal template.             -->\n<!-- Stacked headings are all \\Large, regardless of which      -->\n<!-- level of depth they reflect. This is consistent with      -->\n<!-- treating stacked headings as a single \"squashed\" heading. -->\n\n<xsl:template match=\"*\" mode=\"duplicate-heading\">\n    <xsl:param name=\"heading-level\"/>\n    <xsl:param name=\"heading-stack\" select=\".\"/>\n    <xsl:variable name=\"text-size\">\n        <xsl:call-template name=\"get-heading-text-size\">\n            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:text>\\par\\medskip&#xa;\\noindent\\textbf{</xsl:text>\n    <xsl:value-of select=\"$text-size\"/>\n    <xsl:text>{}</xsl:text>\n    <xsl:apply-templates select=\"$heading-stack\" mode=\"duplicate-heading-content\">\n        <xsl:with-param name=\"heading-stack\" select=\"$heading-stack\"/>\n    </xsl:apply-templates>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"duplicate-heading-content\">\n    <xsl:param name=\"heading-stack\"/>\n    <xsl:variable name=\"is-specialized-division\">\n        <xsl:choose>\n            <xsl:when test=\"self::task\">\n                <xsl:value-of select=\"false()\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"is-specialized-division\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"is-child-of-structured\">\n        <xsl:choose>\n            <xsl:when test=\"parent::*[&TRADITIONAL-DIVISION-FILTER;]\">\n                <xsl:apply-templates select=\"parent::*[&TRADITIONAL-DIVISION-FILTER;]\" mode=\"is-structured-division\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"false()\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$is-specialized-division = 'true' and $is-child-of-structured = 'false'\">\n            <xsl:text>\\textperiodcentered\\space{}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"number\" />\n            <xsl:text>\\space\\textperiodcentered\\space{}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <!-- line break, but not on last -->\n    <xsl:if test=\"count(descendant::*[count(.|$heading-stack) = count($heading-stack)]) > 0\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"get-heading-text-size\">\n    <xsl:param name=\"heading-level\" select=\"6\"/>\n    <xsl:choose>\n        <xsl:when test=\"$heading-level = 1\">\n            <xsl:text>\\Huge</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$heading-level = 2\">\n            <xsl:text>\\huge</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$heading-level = 3\">\n            <xsl:text>\\Large</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$heading-level = 4\">\n            <xsl:text>\\large</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$heading-level = 5\">\n            <xsl:text>\\normalsize</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\normalsize</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n\n<!-- ############### -->\n<!-- Arbitrary Lists -->\n<!-- ############### -->\n\n<!-- See general routine in  xsl/pretext-common.xsl -->\n<!-- which expects the two named templates and the  -->\n<!-- two division'al and element'al templates below,  -->\n<!-- it contains the logic of constructing such a list -->\n\n<!-- List-of entry/exit hooks, for long table,        -->\n<!-- two columns and just \"continued\" adornment       -->\n<!-- This is not a PreTeXt \"table\" so we don't let    -->\n<!-- LaTeX number it, nor increment the table counter -->\n<xsl:template name=\"list-of-begin\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:text>\\noindent&#xa;</xsl:text>\n    <xsl:text>\\begin{longtable}[l]{ll}&#xa;</xsl:text>\n    <xsl:text>\\addtocounter{table}{-1}&#xa;</xsl:text>\n    <xsl:text>\\endfirsthead&#xa;</xsl:text>\n    <xsl:text>\\endhead&#xa;</xsl:text>\n    <xsl:text>\\multicolumn{2}{r}{(</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\">\n        <xsl:with-param name=\"string-id\" select=\"'continued'\"/>\n    </xsl:apply-templates>\n    <xsl:text>)}\\\\&#xa;</xsl:text>\n    <xsl:text>\\endfoot&#xa;</xsl:text>\n    <xsl:text>\\endlastfoot&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Done -->\n<xsl:template name=\"list-of-end\">\n    <xsl:text>\\end{longtable}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Some insulating space around headings    -->\n<!-- All in one, so not part of table columns -->\n<xsl:template match=\"*\" mode=\"list-of-heading\">\n    <xsl:text>\\multicolumn{2}{l}{\\null}\\\\[1.5ex] </xsl:text>\n    <xsl:text>\\multicolumn{2}{l}{\\large </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}\\\\[0.5ex]&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Hyperlink with type, number, then a title -->\n<!-- TODO: xref-link's select is a fiction and may lead to  bugs -->\n<xsl:template match=\"*\" mode=\"list-of-element\">\n    <xsl:apply-templates select=\".\" mode=\"xref-link\">\n        <xsl:with-param name=\"target\" select=\".\" />\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"number\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- title plain, separated             -->\n    <!-- xref version, no additional period -->\n    <xsl:text>&amp;</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n    <xsl:text>\\\\&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Contributor List -->\n<!-- ################ -->\n\n<xsl:template match=\"contributors\">\n    <!-- <xsl:text>\\par\\bigskip&#xa;</xsl:text> -->\n    <xsl:text>\\begin{multicols}{2}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"contributor\" />\n    <xsl:text>\\end{multicols}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- label works best before *anything* happens -->\n<!-- tested for first name in second column     -->\n<xsl:template match=\"contributor\">\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\contributor{</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\contributorname{</xsl:text>\n    <xsl:apply-templates select=\"personname\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:if test=\"affiliation|email\">\n        <xsl:text>\\contributorinfo{</xsl:text>\n        <xsl:if test=\"affiliation/department\">\n            <xsl:apply-templates select=\"affiliation/department\" />\n            <xsl:if test=\"affiliation/department/following-sibling::*\">\n                <xsl:text>\\\\&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:if>\n        <xsl:if test=\"affiliation/institution\">\n            <xsl:apply-templates select=\"affiliation/institution\" />\n            <xsl:if test=\"affiliation/institution/following-sibling::*\">\n                <xsl:text>\\\\&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:if>\n        <xsl:if test=\"affiliation/location\">\n            <xsl:apply-templates select=\"affiliation/location\" />\n            <xsl:if test=\"affiliation/location/following-sibling::*\">\n                <xsl:text>\\\\&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:if>\n        <xsl:if test=\"affiliation/following-sibling::*\">\n            <xsl:text>\\\\&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"email\">\n            <!-- switch to node-set with \"c\" if characters need escaping -->\n            <xsl:text>\\mono{</xsl:text>\n            <xsl:apply-templates select=\"email\" />\n            <xsl:text>}</xsl:text>\n        </xsl:if>\n        <xsl:text>}%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- #################### -->\n<!-- Back Matter, Letters -->\n<!-- #################### -->\n\n<xsl:template match=\"letter/backmatter\">\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:if test=\"closing\">\n        <xsl:text>\\par&#xa;</xsl:text>\n        <xsl:text>\\vspace*{1.5\\baselineskip}\\noindent&#xa;</xsl:text>\n        <xsl:text>\\hspace{\\stretch{2}}&#xa;</xsl:text>\n        <xsl:text>\\begin{tabular}{l@{}}&#xa;</xsl:text>\n        <xsl:apply-templates select=\"closing\" />\n        <xsl:choose>\n            <xsl:when test=\"graphic-signature\">\n                <xsl:text>\\\\[1ex]&#xa;</xsl:text>\n                <xsl:text>\\includegraphics[height=</xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"graphic-signature/@height\">\n                        <xsl:value-of select=\"graphic-signature/@height\" />\n                    </xsl:when>\n                    <xsl:otherwise>24pt</xsl:otherwise>\n                </xsl:choose>\n                <xsl:text>]{</xsl:text>\n                <xsl:value-of select=\"graphic-signature/@source\" />\n                <xsl:text>}\\\\[0.5ex]&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- About two blank lines for written signature -->\n                <xsl:text>\\\\[5.5ex]&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:apply-templates select=\"signature/line\" />\n        <xsl:text>&#xa;\\end{tabular}&#xa;</xsl:text>\n        <xsl:text>\\hspace{\\stretch{1}}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Stretchy vertical space, useful if still on page 1 -->\n    <xsl:text>\\par\\vspace*{\\stretch{2}}&#xa;%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Final line of signature get treated carefully above -->\n<xsl:template match=\"signature/line\">\n    <xsl:apply-templates/>\n    <!-- is there a following line to separate? -->\n    <xsl:if test=\"following-sibling::*\">\n        <xsl:text>\\\\&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- Back Matter, Memos -->\n<!-- ################## -->\n\n<!-- No such thing yet                -->\n<!-- TODO: add \"cc\" block like to/from -->\n<xsl:template match=\"memo/backmatter\" />\n\n\n<!-- ####################### -->\n<!-- Logos (image placements) -->\n<!-- ####################### -->\n\n<!-- Fine-grained placement of graphics files on pages      -->\n<!-- May be placed anywhere on current page                 -->\n<!-- Page coordinates are measured in \"true\" points         -->\n<!-- (72.27 points to the inch)                             -->\n<!-- (0,0) is the lower left corner of the page             -->\n<!-- llx, lly: places lower-left corner of graphic          -->\n<!-- at the specified coordinates of the page               -->\n<!-- Use width, in fixed units (eg cm), to optionally scale -->\n<!-- pages='first|all' controls repetition, default: first  -->\n<xsl:template match=\"docinfo/logo\" >\n    <xsl:text>\\AddToShipoutPicture</xsl:text>\n    <xsl:if test=\"not(@pages) or @pages='first'\">\n        <xsl:text>*</xsl:text>\n    </xsl:if>\n    <xsl:text>{\\put(</xsl:text>\n    <xsl:value-of select=\"@llx\" />\n    <xsl:text>,</xsl:text>\n    <xsl:value-of select=\"@lly\" />\n    <xsl:text>){\\includegraphics</xsl:text>\n    <xsl:if test=\"@width\">\n        <xsl:text>[width=</xsl:text>\n            <xsl:value-of select=\"@width\" />\n        <xsl:text>]</xsl:text>\n    </xsl:if>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"@source\" />\n    <xsl:text>}}}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Structural Nodes -->\n<!-- ################ -->\n\n<!-- Divisions, \"part\" to \"subsubsection\", and specialized -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|acknowledgement|foreword|preface|exercises|worksheet|handout|reading-questions|solutions|glossary|references\">\n    <xsl:apply-templates select=\".\" mode=\"console-typeout\" />\n    <xsl:apply-templates select=\".\" mode=\"begin-language\" />\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:apply-templates select=\".\" mode=\"latex-division-heading\" />\n    <!-- Process the contents, title, idx killed, but avoid author -->\n    <!-- \"solutions\" content needs to call content generator       -->\n    <xsl:choose>\n        <xsl:when test=\"self::solutions\">\n            <xsl:apply-templates select=\"idx\"/>\n            <xsl:apply-templates select=\".\" mode=\"solutions\">\n                <xsl:with-param name=\"heading-level\">\n                    <xsl:choose>\n                        <xsl:when test=\"parent::book\">1</xsl:when>\n                        <xsl:when test=\"parent::part\">2</xsl:when>\n                        <xsl:when test=\"parent::article\">3</xsl:when>\n                        <xsl:when test=\"parent::chapter\">3</xsl:when>\n                        <xsl:when test=\"parent::section\">4</xsl:when>\n                        <xsl:when test=\"parent::subsection\">5</xsl:when>\n                        <xsl:when test=\"parent::subsubsection\">6</xsl:when>\n                        <xsl:when test=\"parent::backmatter and $b-is-book\">2</xsl:when>\n                        <xsl:when test=\"parent::backmatter and $b-is-article\">3</xsl:when>\n                        <xsl:when test=\"parent::appendix and $b-is-book\">3</xsl:when>\n                        <xsl:when test=\"parent::appendix and $b-is-article\">4</xsl:when>\n                        <xsl:otherwise>6</xsl:otherwise>\n                    </xsl:choose>\n                </xsl:with-param>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"*\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:apply-templates select=\".\" mode=\"latex-division-footing\" />\n    <xsl:apply-templates select=\".\" mode=\"end-language\" />\n</xsl:template>\n\n<!-- Information to console for latex run -->\n<!-- Generally these precede structural divisions, so some -->\n<!-- nearly-blank lines provide some visual organization   -->\n<xsl:template match=\"*\" mode=\"console-typeout\">\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\typeout{************************************************}&#xa;</xsl:text>\n    <xsl:text>\\typeout{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"long-name\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:text>\\typeout{************************************************}&#xa;</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############################## -->\n<!-- Division Headings and Footings -->\n<!-- ############################## -->\n\n<!-- A typical division has 5 arguments (below).  For specialized       -->\n<!-- divisions we need to adjust the environment name for numbered      -->\n<!-- v. unnumbered instances.  Worksheets and handouts are exception    -->\n<!-- with a page layout change.                                         -->\n<!--                                                                    -->\n<!--    1. title                                                        -->\n<!--    2. subtitle                                                     -->\n<!--    3. shorttitle                                                   -->\n<!--    4. author                                                       -->\n<!--    5. epigraph (unimplemented)                                     -->\n<!--                                                                    -->\n<!-- A \"solutions\" division in the back matter is implemented as an     -->\n<!-- appendix.  The levels and division-name templates will produce a   -->\n<!-- LaTeX chapter for a \"book\" and a LaTeX \"section\" for an \"article\". -->\n<!-- Specialized Divisions: we do not implement \"author\", \"subtitle\",   -->\n<!-- or \"epigraph\" yet.  These may be added/supported later.            -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|acknowledgement|foreword|preface|exercises|solutions|reading-questions|glossary|references|index|worksheet|handout\" mode=\"latex-division-heading\">\n    <!-- NB: could be obsoleted, see single use -->\n    <xsl:variable name=\"b-is-specialized\" select=\"boolean(self::exercises|self::solutions[not(parent::backmatter)]|self::reading-questions|self::glossary|self::references|self::worksheet|self::handout|self::index)\"/>\n\n    <!-- change geometry if worksheet or handout should be formatted -->\n    <xsl:if test=\"(self::worksheet or self::handout) and $b-latex-worksheet-formatted\">\n        <!-- \\newgeometry includes a \\clearpage -->\n        <xsl:apply-templates select=\".\" mode=\"new-geometry\"/>\n    </xsl:if>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"division-environment-name\" />\n    <!-- possibly numberless -->\n    <xsl:apply-templates select=\".\" mode=\"division-environment-name-suffix\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <!-- subtitle here -->\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-short\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <!-- author here -->\n    <!-- historical, could be relaxed -->\n    <xsl:if test=\"not($b-is-specialized)\">\n        <xsl:apply-templates select=\"author\" mode=\"name-list\"/>\n    </xsl:if>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <!-- epigraph here -->\n    <!-- <xsl:text>An epigraph here\\\\with two lines\\\\-Rob</xsl:text> -->\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:if test=\"$b-debug-numbering-check\">\n        <xsl:variable name=\"the-number\">\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </xsl:variable>\n        <xsl:variable name=\"numberless-suffix\">\n            <xsl:apply-templates select=\".\" mode=\"division-environment-name-suffix\"/>\n        </xsl:variable>\n        <!-- Only check divisions that are numbered and use       -->\n        <!-- a numbered LaTeX environment (not numberless).       -->\n        <!-- Numberless specialized divisions (exercises, etc.)   -->\n        <!-- have a PreTeXt number but no LaTeX counter step.     -->\n        <xsl:if test=\"not($the-number = '') and not($numberless-suffix = '-numberless')\">\n            <xsl:text>\\ptxdivisionnumbercheck{</xsl:text>\n            <xsl:value-of select=\"$the-number\"/>\n            <xsl:text>}{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"division-name\"/>\n            <xsl:text>}%&#xa;</xsl:text>\n        </xsl:if>\n    </xsl:if>\n    <!-- Various LaTeX classes and packages define various names, see   -->\n    <!-- two links below.  The ones redefined here seem critical for    -->\n    <!-- how the \"titleps\" package makes heads and foots, in concert    -->\n    <!-- with the \"titlesec\" package.  We want these to change to the   -->\n    <!-- right language when a division indicates a different language. -->\n    <!-- NB: not clear if this should be after, or before, the \\begin{} -->\n    <!-- of the environment.  In other words, when is the head/foot     -->\n    <!-- manufactured?                                                  -->\n    <!-- https://texfaq.org/FAQ-fixnam -->\n    <!-- http://tex.stackexchange.com/questions/62020/how-to-change-the-word-proof-in-the-proof-environment -->\n    <!-- https://tex.stackexchange.com/questions/82993/how-to-change-the-name-of-document-elements-like-figure-contents-bibliogr -->\n    <xsl:if test=\"self::part\">\n        <xsl:text>\\renewcommand*{\\partname}{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"self::chapter\">\n        <xsl:text>\\renewcommand*{\\chaptername}{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"self::appendix\">\n        <xsl:text>\\renewcommand*{\\appendixname}{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <!-- For references we open a list to hold \"biblio\" -->\n    <!-- unless we need to wait for an \"introduction\"   -->\n    <xsl:if test=\"self::references and not(introduction)\">\n        <xsl:call-template name=\"open-reference-list\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Exceptional, for a printouts only, we clear the page  -->\n<!-- at the start and provide many options for specifying  -->\n<!-- the four margins, in units LaTeX understands (such as -->\n<!-- cm, in, pt).  This only produces text, so could go in -->\n<!-- -common, but is also only useful for LaTeX output.    -->\n<xsl:template match=\"worksheet|handout\" mode=\"new-geometry\">\n    <!-- Four similar \"choose\" effect hierarchy/priority -->\n    <!-- NB: a publisher string parameter to      -->\n    <!-- *really* override (worksheet.left, etc.) -->\n    <xsl:text>\\newgeometry{</xsl:text>\n    <xsl:text>left=</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n        <xsl:with-param name=\"author-side\" select=\"@left\"/>\n        <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-left\"/>\n    </xsl:apply-templates>\n    <xsl:text>, right=</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n        <xsl:with-param name=\"author-side\" select=\"@right\"/>\n        <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-right\"/>\n    </xsl:apply-templates>\n    <xsl:text>, top=</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n        <xsl:with-param name=\"author-side\" select=\"@top\"/>\n        <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-top\"/>\n    </xsl:apply-templates>\n    <xsl:text>, bottom=</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"printout-margin\">\n        <xsl:with-param name=\"author-side\" select=\"@bottom\"/>\n        <xsl:with-param name=\"publisher-side\" select=\"$ws-margin-bottom\"/>\n    </xsl:apply-templates>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Footings are straightforward -->\n<xsl:template match=\"part|chapter|appendix|section|subsection|subsubsection|acknowledgement|foreword|preface|exercises|solutions|reading-questions|glossary|references|index|worksheet|handout\" mode=\"latex-division-footing\">\n    <!-- For references we close a list holding \"biblio\"    -->\n    <!-- unless we already added it before the \"conclusion\" -->\n    <xsl:if test=\"self::references and not(conclusion)\">\n        <xsl:call-template name=\"close-reference-list\"/>\n    </xsl:if>\n\n    <xsl:text>\\end{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"division-environment-name\" />\n    <!-- possibly numberless -->\n    <xsl:apply-templates select=\".\" mode=\"division-environment-name-suffix\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:if test=\"(self::worksheet or self::handout) and $b-latex-worksheet-formatted\">\n        <!-- \\restoregeometry includes a \\clearpage -->\n        <xsl:text>\\restoregeometry&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Introductions and Conclusions -->\n<!-- Simple containers, allowed before and after      -->\n<!-- explicit subdivisions, to introduce or summarize -->\n<!-- Title optional (and discouraged), in argument    -->\n<!-- typically just a few paragraphs                  -->\n<!-- NB: a glossary has a \"headnote\" (elsewhere) and does not have a \"conclusion\" -->\n<xsl:template match=\"article/introduction|chapter/introduction|section/introduction|subsection/introduction|appendix/introduction|exercises/introduction|solutions/introduction|worksheet/introduction|handout/introduction|reading-questions/introduction|references/introduction\">\n    <xsl:text>\\begin{introduction}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{introduction}%&#xa;</xsl:text>\n    <!-- We have not opened the list of references yet    -->\n    <!-- when it has an \"introduction\".  Now is the time. -->\n    <xsl:if test=\"parent::references\">\n        <xsl:call-template name=\"open-reference-list\"/>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"article/conclusion|chapter/conclusion|section/conclusion|subsection/conclusion|appendix/conclusion|exercises/conclusion|solutions/conclusion|worksheet/conclusion|handout/conclusion|reading-questions/conclusion|references/conclusion\">\n    <!-- We will not close the list of references when -->\n    <!-- it has an \"introduction\".  Now is the time.   -->\n    <xsl:if test=\"parent::references\">\n        <xsl:call-template name=\"close-reference-list\"/>\n    </xsl:if>\n    <xsl:text>\\begin{conclusion}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{conclusion}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- \"exercisegroup\" and \"task\" have structured -->\n<!-- \"introduction\" and \"conclusion\"            -->\n\n<xsl:template match=\"exercisegroup/introduction|task/introduction\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<xsl:template match=\"exercisegroup/conclusion|task/conclusion\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Pages in a worksheet or handout-->\n<!-- Produce a  \\clearpage  indicating the end -->\n<!-- of a page, but not for the last page.     -->\n\n<xsl:template match=\"worksheet/page|handout/page\">\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:if test=\"following-sibling::page and $b-latex-worksheet-formatted\">\n        <xsl:text>\\clearpage&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- 2020-03-17: Empty element, since originally a       -->\n<!-- \"page\" element interrupted numbering of contents.   -->\n<!-- Now deprecated in favor of a proper \"page\" element. -->\n<xsl:template match=\"worksheet/pagebreak\">\n    <xsl:if test=\"$b-latex-worksheet-formatted\">\n        <xsl:text>\\clearpage&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Statement -->\n<!-- Simple containier for blocks with structured contents -->\n<!-- Consumers are responsible for surrounding breaks      -->\n<xsl:template match=\"statement\">\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- Prelude, Interlude, Postlude -->\n<!-- Very simple containiers, to help with movement, use -->\n<xsl:template match=\"prelude|interlude|postlude\">\n    <xsl:text>\\par&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n\n<!-- Paragraphs -->\n<!-- Non-structural, even if they appear to be -->\n<xsl:template match=\"paragraphs\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <!-- Warn about paragraph deprecation -->\n    <xsl:text>\\begin{paragraphs}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{paragraphs}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Theorems, Proofs, Definitions, Examples, Exercises -->\n\n<!-- Theorems have statement/proof structure                    -->\n<!-- Definitions have notation, which is handled elsewhere      -->\n<!-- Examples have no structure, or have statement and solution -->\n<!-- Exercises have hints, answers and solutions                -->\n\n<!-- Environments/blocks implemented with tcolorbox          -->\n<!-- expect certain arguments.  This template provides them. -->\n<!--                                                         -->\n<!-- 1.  title, with punctuation as needed                   -->\n<!-- 2.  the \"unique-id\", which suffices for                 -->\n<!--     the LaTeX label/ref mechanism                       -->\n<!--                                                         -->\n<!-- Or, for THEOREM-LIKE and AXIOM-LIKE,                    -->\n<!--                                                         -->\n<!-- 1.  title, right now we add punctuation as needed       -->\n<!-- 2.  a list of creator(s)                                -->\n<!-- 3.  the \"unique-id\", which suffices for                 -->\n<!--     the LaTeX label/ref mechanism                       -->\n<!-- N.B.: \"objectives\", \"outcomes\" need to use this         -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;|&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&ASIDE-LIKE;|exercise[boolean(&INLINE-EXERCISE-FILTER;)]|assemblage\" mode=\"block-options\">\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:if test=\"&THEOREM-FILTER; or &AXIOM-FILTER;\">\n        <xsl:text>{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"creator-full\" />\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <!-- unique-id destined for tcolorbox  phantomlabel=  option -->\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Theorems and Axioms-->\n<!-- Very similar to case of definitions       -->\n<!-- Adds (potential) PROOF-LIKE, and creators -->\n<!-- Statement structure should be relaxed     -->\n<!-- Style is controlled in the preamble       -->\n<xsl:template match=\"&THEOREM-LIKE;|&AXIOM-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <!-- environment, title, label string, newline -->\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"block-options\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"debug-numbering-check\"/>\n    <!-- statement is required now, to be relaxed in schema             -->\n    <!-- explicitly ignore PROOF-LIKE and pickup just for theorems      -->\n    <!-- Alternative: ocate first PROOF-LIKE, select only preceding:: ? -->\n    <xsl:apply-templates select=\"*[not(&PROOF-FILTER;)]\" />\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{</xsl:text>\n        <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <!-- PROOF-LIKE(s) are optional, so may not match at all          -->\n    <!-- And the point of the AXIOM-LIKE is that they lack PROOF-LIKE -->\n    <xsl:if test=\"&THEOREM-FILTER;\">\n        <xsl:apply-templates select=\"&PROOF-LIKE;\" />\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- PROOF-LIKE (regular, major) -->\n<!-- Subsidary to THEOREM-LIKE, or standalone        -->\n<!-- Defaults to \"Proof\", can be replaced by \"title\" -->\n<xsl:template match=\"proof[not(&SOLUTION-PROOF-FILTER;)]|argument[not(&SOLUTION-PROOF-FILTER;)]|justification[not(&SOLUTION-PROOF-FILTER;)]|reasoning[not(&SOLUTION-PROOF-FILTER;)]|explanation[not(&SOLUTION-PROOF-FILTER;)]\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:variable name=\"environment-name\">\n        <xsl:value-of select=\"local-name(.)\"/>\n    </xsl:variable>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:if test=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </xsl:if>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <!-- TODO: move this into an environment argument -->\n    <!-- to enable styling options (possibly blank)   -->\n    <xsl:if test=\"@ref\">\n        <xsl:text>\\space(</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"proof-xref-theorem\"/>\n        <xsl:text>)\\space</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <!-- A standalone proof may need to have its footnote text popped,     -->\n    <!-- rather than waiting for a container like \"theorem\" to do the job. -->\n    <xsl:if test=\"not(parent::*[&THEOREM-FILTER;])\">\n        <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- PROOF-LIKE (solutions, minor) -->\n<!-- Inside \"hint\", \"answer\", solution\" -->\n<xsl:template match=\"proof[&SOLUTION-PROOF-FILTER;]|argument[&SOLUTION-PROOF-FILTER;]|justification[&SOLUTION-PROOF-FILTER;]|reasoning[&SOLUTION-PROOF-FILTER;]|explanation[&SOLUTION-PROOF-FILTER;]\">\n    <xsl:variable name=\"environment-name\">\n        <xsl:text>solution</xsl:text>\n        <xsl:value-of select=\"local-name(.)\"/>\n    </xsl:variable>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"$environment-name\"/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- cases in PROOF-LIKEs -->\n\n<!-- First we need to set up arrow symbols for this output target. -->\n<!-- Perhaps customize these via something like tex-macro-style.   -->\n<xsl:template name=\"double-right-arrow-symbol\">\n    <xsl:text>$\\Rightarrow$</xsl:text>\n</xsl:template>\n<xsl:template name=\"double-left-arrow-symbol\">\n    <xsl:text>$\\Leftarrow$</xsl:text>\n</xsl:template>\n<!-- Also need a \"delimiter space\" for when \"direction\" is \"cycle\". -->\n<xsl:template name=\"case-cycle-delimiter-space\" />\n\n<!-- case -->\n<!-- Three arguments: direction arrow, title, label -->\n<!-- The environment combines and styles            -->\n<xsl:template match=\"case\">\n    <xsl:text>\\begin{case}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <!-- optional direction, given by attribute -->\n    <xsl:apply-templates select=\".\" mode=\"case-direction\" />\n    <xsl:text>}</xsl:text>\n    <!-- optional title -->\n    <xsl:text>{</xsl:text>\n    <xsl:if test=\"title\">\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    </xsl:if>\n    <xsl:text>}</xsl:text>\n    <!-- label -->\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{case}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############################################################# -->\n<!-- Infrastructure surrounding Exercises (but not main Divisions) -->\n<!-- ############################################################# -->\n\n<!-- ############ -->\n<!-- Subexercises -->\n<!-- ############ -->\n\n<!-- A minimal division within an \"exercises\" division. -->\n\n<xsl:template match=\"subexercises\">\n    <xsl:variable name=\"id\">\n        <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    </xsl:variable>\n    <xsl:text>\\paragraph{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:if test=\"$b-pageref\">\n        <xsl:text>\\label{</xsl:text>\n        <xsl:value-of select=\"$id\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\hypertarget{</xsl:text>\n    <xsl:value-of select=\"$id\"/>\n    <xsl:text>}{}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"idx|notation|introduction|exercisegroup|exercise|conclusion\"/>\n</xsl:template>\n\n<xsl:template match=\"subexercises\" mode=\"solutions\">\n    <xsl:param name=\"purpose\"/>\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <!-- When we subset exercises for solutions, an entire      -->\n    <!-- \"subexercises\" can become empty.  So we do a dry-run  -->\n    <!-- and if there is no content at all we bail out.         -->\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <xsl:if test=\"title\">\n            <xsl:text>\\paragraph</xsl:text>\n            <!-- keep optional title if LaTeX source is re-purposed -->\n            <xsl:text>[{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-short\" />\n            <xsl:text>}]</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n            <xsl:text>}</xsl:text>\n            <!-- no label, as this is a duplicate              -->\n            <!-- no title, no heading, so only line-break here -->\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$b-has-statement\">\n            <xsl:apply-templates select=\"introduction\" />\n        </xsl:if>\n        <xsl:apply-templates select=\"exercise|exercisegroup\" mode=\"solutions\">\n            <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n        <xsl:if test=\"$b-has-statement\">\n            <xsl:apply-templates select=\"conclusion\" />\n        </xsl:if>\n        <xsl:text>\\par\\medskip\\noindent&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Exercise Groups -->\n<!-- ############### -->\n\n<!-- Exercise Group -->\n<!-- We interrupt a run of exercises with short discussion, -->\n<!-- typically instructions for a list of similar exercises -->\n<!-- discussion goes in an introduction and/or conclusion   -->\n<!-- When we point to these, we use custom hypertarget, etc -->\n<xsl:template match=\"exercisegroup\">\n    <!-- Determine the number of columns -->\n    <!-- Restrict to 1-6 via the schema  -->\n    <xsl:variable name=\"ncols\">\n        <xsl:choose>\n            <xsl:when test=\"@cols\">\n                <xsl:value-of select=\"@cols\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>1</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- build it -->\n    <xsl:text>\\par\\medskip\\noindent%&#xa;</xsl:text>\n    <xsl:text>\\textbf{</xsl:text>\n    <!-- title may be default title -->\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}\\space\\space</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"optional-label\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"introduction\" />\n    <xsl:choose>\n        <xsl:when test=\"$ncols = 1\">\n            <xsl:text>\\begin{exercisegroup}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\begin{exercisegroupcol}</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:value-of select=\"$ncols\"/>\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- Each \"idx\" produces its own newline -->\n    <xsl:apply-templates select=\"idx\"/>\n    <!-- an exercisegroup can only appear in an \"exercises\" division,    -->\n    <!-- the template for exercises//exercise will consult switches for  -->\n    <!-- visibility of components when born (not doing \"solutions\" here) -->\n    <xsl:apply-templates select=\"exercise\"/>\n    <xsl:choose>\n        <xsl:when test=\"$ncols = 1\">\n            <xsl:text>\\end{exercisegroup}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\end{exercisegroupcol}&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:if test=\"conclusion\">\n        <xsl:text>\\par\\noindent%&#xa;</xsl:text>\n        <xsl:apply-templates select=\"conclusion\" />\n    </xsl:if>\n    <xsl:text>\\par\\medskip\\noindent&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Exercise Group (in solutions division) -->\n<!-- Nothing produced if there is no content         -->\n<!-- Otherwise, no label, since duplicate            -->\n<!-- Introduction and conclusion iff with statements -->\n<xsl:template match=\"exercisegroup\" mode=\"solutions\">\n    <xsl:param name=\"purpose\"/>\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <!-- When we subset exercises for solutions, an entire      -->\n    <!-- \"exercisegroup\" can become empty.  So we do a dry-run  -->\n    <!-- and if there is no content at all we bail out.         -->\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <!-- Determine the number of columns         -->\n        <!-- Restrict to 1-6 via the schema          -->\n        <!-- Override for solutions takes precedence -->\n        <xsl:variable name=\"ncols\">\n            <xsl:choose>\n                <xsl:when test=\"@solutions-cols\">\n                    <xsl:value-of select=\"@solutions-cols\"/>\n                </xsl:when>\n                <xsl:when test=\"@cols\">\n                    <xsl:value-of select=\"@cols\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>1</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:if test=\"title\">\n            <xsl:text>\\subparagraph</xsl:text>\n            <!-- keep optional title if LaTeX source is re-purposed -->\n            <xsl:text>[{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-short\" />\n            <xsl:text>}]</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n            <xsl:text>}</xsl:text>\n            <!-- no label, as this is a duplicate              -->\n            <!-- no title, no heading, so only line-break here -->\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$b-has-statement\">\n            <xsl:apply-templates select=\"introduction\" />\n        </xsl:if>\n        <!-- the container for the exercisegroup does not need to change -->\n        <!-- when in a solutions list.  The indentation might look odd   -->\n        <!-- without an introduction (when there are no statements), or  -->\n        <!-- it might remind the reader of the grouping                  -->\n        <xsl:choose>\n            <xsl:when test=\"$ncols = 1\">\n                <xsl:text>\\begin{exercisegroup}&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\begin{exercisegroupcol}</xsl:text>\n                <xsl:text>{</xsl:text>\n                <xsl:value-of select=\"$ncols\"/>\n                <xsl:text>}&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:apply-templates select=\"exercise\" mode=\"solutions\">\n            <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\" select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n        <xsl:choose>\n            <xsl:when test=\"$ncols = 1\">\n                <xsl:text>\\end{exercisegroup}&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>\\end{exercisegroupcol}&#xa;</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:if test=\"$b-has-statement\">\n            <xsl:apply-templates select=\"conclusion\" />\n        </xsl:if>\n        <xsl:text>\\par\\medskip\\noindent&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ###################### -->\n<!-- Exercises and Projects -->\n<!-- ###################### -->\n\n<!-- Exercises are inline (parent is a division), or           -->\n<!-- divisional by virtue of being in an \"exercises\"           -->\n<!-- division, though they may be buried down in an            -->\n<!-- \"exercisedivision\" or an \"exercisegroup\"                  -->\n\n<!-- Switches provided here as defaults are the global values  -->\n<!-- specified for the main narrative by an author, so these   -->\n<!-- are employed when matching in document order.  Other uses -->\n<!-- will need more care about passing in the right switches.  -->\n<!-- Some of these switches might be moot, eg WeBWorK does not -->\n<!-- have an \"answer\" and MyOpenMath only has \"solution\".  But -->\n<!-- passing in values for the relevant switches will not do   -->\n<!-- any harm in these cases.                                  -->\n\n<!-- Every exercise may have its four components               -->\n<!-- (statement, hint, answer, solution) visible or not        -->\n\n<!-- A template formulates the various possible environments   -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;\" mode=\"environment-name\">\n    <xsl:choose>\n        <!-- projects sit in divisions according to schema,  -->\n        <!-- just like inline exercises, so we catch them    -->\n        <!-- first, before differentiating exercises based   -->\n        <!-- on placement, just recycle PreTeXt element name -->\n        <xsl:when test=\"&PROJECT-FILTER;\">\n            <xsl:value-of select=\"local-name(.)\" />\n        </xsl:when>\n        <!-- must now be an \"exercise\" -->\n        <xsl:when test=\"&INLINE-EXERCISE-FILTER;\">\n            <xsl:text>inlineexercise</xsl:text>\n        </xsl:when>\n        <!-- \"exercisegroup\" and \"exercisegroup/@cols\" become -->\n        <!-- progressively more complicated to organize       -->\n        <xsl:when test=\"ancestor::exercises or ancestor::worksheet or ancestor::reading-questions\">\n            <xsl:text>divisionexercise</xsl:text>\n            <xsl:if test=\"ancestor::exercisegroup\">\n                <xsl:text>eg</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"ancestor::exercisegroup/@cols\">\n                <xsl:text>col</xsl:text>\n            </xsl:if>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>exercise-project-without-environment-name</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Inline exercises (inside divisions, or pseudo-divisons     -->\n<!-- like \"paragraphs\"), project-like, and divisional exercises -->\n<!-- (exercises//exercise, worksheet//exercise, etc) when born, -->\n<!-- so appearance of components is under control of switches   -->\n<!-- A division with \"exercise\" might be divided by a           -->\n<!-- \"subexercises\", \"exercisegroup\" or \"sidebyside\"            -->\n<!-- (worksheet), so we match with a //                         -->\n<xsl:template match=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]|&PROJECT-LIKE;|exercises//exercise|worksheet//exercise|reading-questions//exercise\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <!-- Five types of exercise... determine which we are in    -->\n    <xsl:variable name=\"exercise-type\">\n        <xsl:choose>\n            <xsl:when test=\"self::task\">project</xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"./@exercise-customization\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- Rather than checking strings in logic below, set some  -->\n    <!-- boolean variables to make tests clearer.               -->\n    <xsl:variable name=\"inline\" select=\"$exercise-type = 'inline'\"/>\n    <xsl:variable name=\"project\" select=\"$exercise-type = 'project'\"/>\n    <xsl:variable name=\"divisional\" select=\"$exercise-type = 'divisional'\"/>\n    <xsl:variable name=\"worksheet\" select=\"$exercise-type = 'worksheet'\"/>\n    <xsl:variable name=\"reading\" select=\"$exercise-type = 'reading'\"/>\n\n    <!-- This template is for exercises when born and so should always -->\n    <!-- include the statement, so we set this parameter to true.      -->\n    <xsl:variable name=\"b-has-statement\" select=\"true()\"/>\n\n    <!-- determine which components publisher wants rendered-->\n    <xsl:variable name=\"ex-components-rtf\">\n        <xsl:apply-templates select=\".\" mode=\"exercise-components-report\"/>\n    </xsl:variable>\n    <xsl:variable name=\"ex-components-report\" select=\"exsl:node-set($ex-components-rtf)/exercise-component-report\"/>\n\n    <!-- structured version of a project-like may contain a     -->\n    <!-- prelude, which is rendered *before* environment begins -->\n    <xsl:if test=\"$project and (statement or task)\">\n        <xsl:apply-templates select=\"prelude\" />\n    </xsl:if>\n    <!-- The exact environment depends on the placement of the -->\n    <!-- \"exercise\" when located in an \"exercises\" division    -->\n    <xsl:variable name=\"env-name\">\n        <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    </xsl:variable>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"$env-name\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"$inline or $project\">\n            <!-- Looks like lots of other environments -->\n            <xsl:apply-templates select=\".\" mode=\"block-options\"/>\n        </xsl:when>\n        <xsl:when test=\"$divisional or $worksheet or $reading\">\n            <!-- just a shortened number, since in a division -->\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n            <xsl:text>}</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            <xsl:text>}</xsl:text>\n            <!-- if not in a \"worksheet\" and if the exercise or project-like does  -->\n            <!-- not have a \"workspace\" attribute then this argument will be blank -->\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"sanitize-workspace\"/>\n            <xsl:text>}</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{exercise-arguments-missing}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>%&#xa;</xsl:text>\n    <!-- Debug numbering check only for inline exercises and    -->\n    <!-- projects, which use tcolorbox auto counters.           -->\n    <!-- Divisional/worksheet/reading exercises use manual      -->\n    <!-- serial numbers, not auto counters.                     -->\n    <xsl:if test=\"$inline or $project\">\n        <xsl:apply-templates select=\".\" mode=\"debug-numbering-check\"/>\n    </xsl:if>\n    <!-- Each \"idx\" produces its own newline -->\n    <xsl:apply-templates select=\"idx\"/>\n    <!-- Now the guts of the exercise, inside of its  -->\n    <!-- (variable) identification, environment, etc. -->\n    <!-- NB: the \"b-component-heading\" relates to     -->\n    <!-- reducing duplication in solutions divisions, -->\n    <!-- so comes down through the \"solutions\" modal  -->\n    <!-- templates.  So we set it to \"true()\" for     -->\n    <!-- \"where born\" exercises.                      -->\n    <!-- NB: this is where we say goodbye to the      -->\n    <!-- \"solutions\" modal templates and switch to    -->\n    <!-- the \"exercise-components\"templates with the  -->\n    <!-- $b-original flag.                            -->\n    <xsl:apply-templates select=\".\" mode=\"exercise-components\">\n        <xsl:with-param name=\"b-original\" select=\"true()\" />\n        <xsl:with-param name=\"b-component-heading\" select=\"true()\"/>\n        <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n        <xsl:with-param name=\"b-has-hint\" select=\"$ex-components-report/@has-hint = 'true'\"/>\n        <xsl:with-param name=\"b-has-answer\" select=\"$ex-components-report/@has-answer = 'true'\"/>\n        <xsl:with-param name=\"b-has-solution\" select=\"$ex-components-report/@has-solution = 'true'\"/>\n    </xsl:apply-templates>\n    <!-- Currently inline exercises and project-like elements -->\n    <!-- are not getting workspace above, so we add it here.  -->\n    <xsl:if test=\"$inline or $project\">\n        <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    </xsl:if>\n    <!-- closing % necessary, as newline between adjacent environments -->\n    <!-- will cause a slight indent on trailing exercise               -->\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"$env-name\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n    <!-- structured version of a project may contain a postlude, -->\n    <!-- which is rendered *after* environment ends              -->\n    <xsl:if test=\"$project and (statement or task)\">\n        <xsl:apply-templates select=\"postlude\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- ############################################## -->\n<!-- Exercises and Projects for Solutions Divisions -->\n<!-- ############################################## -->\n\n<!-- A template formulates the various possible environments -->\n<!-- Just as above, but now a different mode                 -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;\" mode=\"solutions-environment-name\">\n    <xsl:choose>\n        <!-- projects sit in divisions according to schema,  -->\n        <!-- just like inline exercises, so we catch them    -->\n        <!-- first, before differentiating exercises based   -->\n        <!-- on placement, just recycle PreTeXt element name -->\n        <xsl:when test=\"&PROJECT-FILTER;\">\n            <xsl:value-of select=\"local-name(.)\" />\n            <xsl:text>solution</xsl:text>\n        </xsl:when>\n        <!-- must now be an \"exercise\" -->\n        <xsl:when test=\"&INLINE-EXERCISE-FILTER;\">\n            <xsl:text>inlinesolution</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"ancestor::exercises or ancestor::worksheet or ancestor::reading-questions\">\n            <xsl:text>divisionsolution</xsl:text>\n            <!-- \"exercisegroup\" and \"exercisegroup/@cols\" become  -->\n            <!-- progressively more complicated to organize -->\n            <xsl:if test=\"ancestor::exercisegroup\">\n                <xsl:text>eg</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"ancestor::exercisegroup/@cols\">\n                <xsl:text>col</xsl:text>\n            </xsl:if>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>exercise-solution-without-environment-name</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Exercises and projects (as above) in solutions-->\n<!-- Nothing produced if there is no content       -->\n<!-- Otherwise, no label, since duplicate          -->\n<!-- Different environment, with hard-coded number -->\n<!-- Switches for solutions are generated          -->\n<!-- elsewhere and always supplied in call         -->\n<!-- NB: switches originate in solutions generator -->\n<xsl:template match=\"exercise[boolean(&INLINE-EXERCISE-FILTER;)]|&PROJECT-LIKE;|exercises//exercise|worksheet//exercise|reading-questions//exercise\" mode=\"solutions\">\n    <xsl:param name=\"purpose\"/>\n    <xsl:param name=\"admit\"/>\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\"      />\n    <xsl:param name=\"b-has-answer\"    />\n    <xsl:param name=\"b-has-solution\"  />\n\n    <!-- Subsetting, especially in the back matter can yield no content at all    -->\n    <!-- Schema says there is always some sort of statement, explicit or implicit -->\n    <!-- We frequently build collections of \"dry-run\" output to determine if a    -->\n    <!-- collection of exercises (e.g. in an \"exercisegroup\") is empty or not.    -->\n    <!-- So it is *critical* that we get zero output for an exercise that has     -->\n    <!-- no content due to settings of switches.                                  -->\n\n     <xsl:variable name=\"dry-run\">\n        <xsl:apply-templates select=\".\" mode=\"dry-run\">\n            <xsl:with-param name=\"admit\" select=\"$admit\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n\n    <xsl:if test=\"not($dry-run = '')\">\n        <!-- no project-like prelude, as duplicating in solutions division -->\n        <!-- The exact environment depends on the placement of the -->\n        <!-- \"exercise\" when located in an \"exercises\" division    -->\n        <xsl:variable name=\"env-name\">\n            <xsl:apply-templates select=\".\" mode=\"solutions-environment-name\"/>\n        </xsl:variable>\n        <xsl:text>\\begin{</xsl:text>\n        <xsl:value-of select=\"$env-name\"/>\n        <xsl:text>}</xsl:text>\n        <!-- Always supply a type-name, even if the     -->\n        <!-- receiving environment does not utilize it. -->\n        <!-- Five categories, four are \"exercise\".      -->\n        <xsl:text>{</xsl:text>\n        <xsl:choose>\n            <!--divisional exercise -->\n            <xsl:when test=\"self::exercise and ancestor::exercises\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'divisionalexercise'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- worksheet exercise -->\n            <xsl:when test=\"self::exercise and ancestor::worksheet\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'worksheetexercise'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- reading question -->\n            <xsl:when test=\"self::exercise and ancestor::reading-questions\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'readingquestion'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- inline exercise (\"Checkpoint\") by elimination -->\n            <xsl:when test=\"self::exercise\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'inlineexercise'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- now PROJECT-LIKE by elimination, don't need $string-id -->\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>}</xsl:text>\n        <!-- Always a hard-coded full number, never any workspace -->\n        <!-- indication, so unified across the four types         -->\n        <xsl:text>{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n        <xsl:text>}</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        <xsl:text>}</xsl:text>\n        <!-- label of the exercise, to link back to it -->\n        <xsl:text>{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>%&#xa;</xsl:text>\n        <!-- Now the guts of the exercise, inside of its  -->\n        <!-- (variable) identification, environment, etc. -->\n        <!-- NB: this is where we say goodbye to the      -->\n        <!-- \"solutions\" modal templates and switch to    -->\n        <!-- the \"exercise-components\"templates with the  -->\n        <!-- $b-original flag.                            -->\n        <xsl:apply-templates select=\".\" mode=\"exercise-components\">\n            <xsl:with-param name=\"b-original\" select=\"false()\" />\n            <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n            <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n        <!-- closing % necessary, as newline between adjacent environments -->\n        <!-- will cause a slight indent on trailing exercise               -->\n        <xsl:text>\\end{</xsl:text>\n        <xsl:value-of select=\"$env-name\"/>\n        <xsl:text>}%&#xa;</xsl:text>\n        <!-- no project-like postlude, as duplicating in solutions division -->\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ######################### -->\n<!-- Components of an Exercise -->\n<!-- ######################### -->\n\n<!-- NB: this bit of documentation seems to have hd most of the       -->\n<!-- relevant code near it removed (as variations of exercises have   -->\n<!-- moved to the -assembly stylesheet).  So parts are no longer      -->\n<!-- applicable and maybe none of it is useful.                       -->\n\n<!-- Five components of a \"regular\" exercise, two components          -->\n<!-- of a \"webwork\" exercise, two components of a \"webwork/stage\",    -->\n<!-- and one component of a \"myopenmath\".  In other words, \"hint\",    -->\n<!-- \"answer\", \"solution\".  For re-use in solution lists and          -->\n<!-- solutions manuals, we also interpret \"statement\" as a component. -->\n<!-- $purpose determines if the components are being built for the    -->\n<!-- main matter or back matter and so help be certain the right      -->\n<!-- label is created.                                                -->\n<!-- NB: once into an exercise, we abandon the \"solutions\" modal      -->\n<!-- templates and instead rely on the $b-original flag to            -->\n<!-- distinguish between \"when born\" ($b-original = true()) and a     -->\n<!-- duplicate in some sort of collection of solutions                -->\n<!-- ($b-original = false()).                                         -->\n<!-- NB: The $b-component-heading variable gets passed down from the  -->\n<!-- solutions generator, to prevent repeated headings when they are  -->\n<!-- all the same.  For use when an exercise is born the situation    -->\n<!-- is simpler and always has a \"statement\", necessitating a heading -->\n<!-- on a component.  So we default the parameter to true right here. -->\n\n\n<!-- ################ -->\n<!-- WeBWorK Problems -->\n<!-- ################ -->\n\n<!-- The following routines are particular to extensions present  -->\n<!-- in \"static\" versions of a WeBWorK problem.  In some cases,   -->\n<!-- the PTX/XML markup includes tags and attributes generated    -->\n<!-- by a WW server.  These may not be part of an author's source -->\n<!-- and so is not part of the PTX schema.                        -->\n\n<!-- A few WW-specific items need special interpretation     -->\n<!-- answer blank for other kinds of answers                 -->\n<xsl:template match=\"ul[@pi:ww-form]\">\n    <xsl:choose>\n        <xsl:when test=\"@pi:ww-form = 'popup'\" >\n            <xsl:text>\\quad(\\begin{itemize*}[label=$\\square$,leftmargin=3em,itemjoin=\\hspace{1em}]&#xa;</xsl:text>\n            <xsl:apply-templates select=\"li\"/>\n            <xsl:text>\\end{itemize*})\\quad&#xa;</xsl:text>\n        </xsl:when>\n        <!-- Radio button alternatives:                                -->\n        <!--     \\odot, \\circledcirc (amssymb),                        -->\n        <!--     \\textopenbullet, \\textbigcircle (textcomp)            -->\n        <!-- To adjust in preamble, see use of $b-has-webwork-var      -->\n        <xsl:when test=\"@pi:ww-form = 'buttons'\" >\n            <xsl:text>\\begin{itemize}[label=$\\bigcirc$,leftmargin=3em,]&#xa;</xsl:text>\n            <xsl:apply-templates select=\"li\"/>\n            <xsl:text>\\end{itemize}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@pi:ww-form = 'checkboxes'\" >\n            <xsl:text>\\begin{itemize}[label=$\\Box$,leftmargin=3em,]&#xa;</xsl:text>\n            <xsl:apply-templates select=\"li\"/>\n            <xsl:text>\\end{itemize}&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################################################ -->\n<!-- Task (for structured exercises and project-like) -->\n<!-- ################################################ -->\n\n<!-- \"exercise\", PROJECT-LIKE and EXAMPLE-LIKE can be structured     -->\n<!-- with up to three level of \"task\".  When this is done, each      -->\n<!-- level may have an \"introduction\" and a \"conclusion\".  This      -->\n<!-- template handles every structure that can have a \"task\" child,  -->\n<!-- which includes a \"task\" itself. We run over each nested \"task\". -->\n<!-- We make sure a nested list has content, before starting (and    -->\n<!-- later ending) a list to hold the tasks.  Only terminal tasks    -->\n<!-- have statement|hint|answer|solution.                            -->\n<xsl:template match=\"exercise[task]|project[task]|activity[task]|exploration[task]|investigation[task]|example[task]|question[task]|problem[task]|task[task]\" mode=\"exercise-components\">\n    <xsl:param name=\"b-original\" />\n    <xsl:param name=\"purpose\" />\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\"  />\n    <xsl:param name=\"b-has-solution\"  />\n\n    <xsl:if test=\"$b-has-statement\">\n        <xsl:apply-templates select=\"introduction\"/>\n    </xsl:if>\n\n    <!-- Now we see if the list of contained tasks is empty or not -->\n    <xsl:variable name=\"task-list-dry-run\">\n        <xsl:apply-templates select=\"task\" mode=\"dry-run\">\n            <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n            <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n            <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n            <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <xsl:variable name=\"b-has-task-list\" select=\"not($task-list-dry-run = '')\"/>\n\n    <xsl:if test=\"$b-has-task-list\">\n        <xsl:apply-templates select=\".\" mode=\"begin-task-list\"/>\n\n        <xsl:for-each select=\"task\">\n            <!-- just for this particular task -->\n            <xsl:variable name=\"dry-run\">\n                <xsl:apply-templates select=\".\" mode=\"dry-run\">\n                    <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                    <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                    <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                    <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                </xsl:apply-templates>\n            </xsl:variable>\n\n            <!-- The entire task list is non-empty, so some particular task -->\n            <!-- must be non-empty, ensuring we never create a list without -->\n            <!-- at least one \\item inside it.                              -->\n            <xsl:if test=\"not($dry-run = '')\">\n                <!-- always a list item -->\n                <xsl:text>\\item</xsl:text>\n                <!-- We use the ref/label mechanism for tasks where born. -->\n                <!-- But if in a \"solutions\" division, we may be skipping -->\n                <!-- some and need to hard-code the task label/number.    -->\n                <xsl:choose>\n                    <xsl:when test=\"$b-original\">\n                        <!-- \\label{} will separate content, if   -->\n                        <!-- employed, else we use an empty group -->\n                        <xsl:choose>\n                            <!-- not quite tight for modal \"optional-label\" -->\n                            <xsl:when test=\"@xml:id\">\n                                <xsl:apply-templates select=\".\" mode=\"label\" />\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:text>{}</xsl:text>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <!-- hard-code the number when duplicating, since some items -->\n                        <!-- are absent, and then automatic numbering would be wrong -->\n                        <xsl:text>[(</xsl:text>\n                        <xsl:apply-templates select=\".\" mode=\"list-number\" />\n                        <xsl:text>)]</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <!-- Something is being output, so include an (optional) title  -->\n                <!-- Semantic macro defined in preamble, mostly for font change -->\n                <xsl:if test=\"title\">\n                    <xsl:text>\\lititle{</xsl:text>\n                    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                    <xsl:text>}\\par%&#xa;</xsl:text>\n                </xsl:if>\n                <!-- Identification in place, we can write the generic guts -->\n                <xsl:apply-templates select=\".\" mode=\"exercise-components\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                    <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                    <xsl:with-param name=\"b-has-statement\" select=\"$b-has-statement\" />\n                    <xsl:with-param name=\"b-has-hint\"      select=\"$b-has-hint\" />\n                    <xsl:with-param name=\"b-has-answer\"    select=\"$b-has-answer\" />\n                    <xsl:with-param name=\"b-has-solution\"  select=\"$b-has-solution\" />\n                </xsl:apply-templates>\n                <!-- possibly add some workspace for items from a worksheet     -->\n                <!-- an empty result is a signal there is no workspace authored -->\n                <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n            </xsl:if>\n        </xsl:for-each>\n\n        <xsl:apply-templates select=\".\" mode=\"end-task-list\"/>\n    </xsl:if>\n\n    <xsl:if test=\"$b-has-statement\">\n        <xsl:apply-templates select=\"conclusion\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- These two templates construct the infrastructure around a sequence  -->\n<!-- of \"task\" realized as a LaTeX list, with help from the \"enumitem\"   -->\n<!-- package to set the label style.  Might be better as a wrapper, but  -->\n<!-- since LaTeX is text we can use different templates for the          -->\n<!-- beginning and ending.  Note that the context is a *container*       -->\n<!-- which has a sequence of \"task\" children, and the container could be -->\n <!-- a \"task\" itself, since we nest them.  Each produces a single line, -->\n <!-- with a trailing newline. -->\n\n<xsl:template match=\"exercise|&PROJECT-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|task\" mode=\"begin-task-list\">\n    <xsl:text>\\begin{enumerate}[font=\\bfseries,label=</xsl:text>\n    <xsl:choose>\n        <!-- parent is a \"task\", so context/container is a \"task\"   -->\n        <!-- and it's children are \"task\" three deep in the nesting -->\n        <xsl:when test=\"parent::task\">\n            <xsl:text>(\\Alph*),ref=\\theenumi.\\theenumii.\\Alph*</xsl:text>\n        </xsl:when>\n        <!-- container/context is a \"task\" (but it's parent is not), so -->\n        <!-- the children that are \"task\" are two deep in the nesting   -->\n        <xsl:when test=\"self::task\">\n            <xsl:text>(\\roman*),ref=\\theenumi.\\roman*</xsl:text>\n        </xsl:when>\n        <!-- container/context is *not* a \"task\", it is something else,  -->\n        <!-- and so children that are \"task\" are one deep in the nesting -->\n        <xsl:otherwise>\n            <xsl:text>(\\alph*),ref=\\alph*</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>]%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"exercise|&PROJECT-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|task\" mode=\"end-task-list\">\n    <xsl:text>\\end{enumerate}%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- An object that reaches here is either just a statement (bare) or        -->\n<!-- is structured as statement|hint|answer|solution.  Likely we could       -->\n<!-- split this into two templates, but a choose seems more convenient.      -->\n<!-- When structured, a forward reference is constructed to the first        -->\n<!-- hint|answer|solution that might appear somewhere else.  Since there     -->\n<!-- could be multiple targets, we use the heuristic of choosing main matter -->\n<!-- over back matter.  Unclear what happens if there are multiple targets.  -->\n<xsl:template match=\"exercise|&EXAMPLE-LIKE;|&PROJECT-LIKE;|task[not(task)]\" mode=\"exercise-components\">\n    <xsl:param name=\"b-original\" />\n    <xsl:param name=\"purpose\" />\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-statement\" />\n    <xsl:param name=\"b-has-hint\" />\n    <xsl:param name=\"b-has-answer\"  />\n    <xsl:param name=\"b-has-solution\"  />\n\n    <!-- The  $b-has-*  variables are a *desire* to see some component.   -->\n    <!-- But if an individual exercise does not have such a component,    -->\n    <!-- then it will not be shown.  So these  $b-showing-*s  variables   -->\n    <!-- are per-exercise indications.                                    -->\n    <!--                                                                  -->\n    <!-- An exercise always has a \"statement\" and if shown, it is inline. -->\n    <!-- When not shown (like in backmatter solutions) the exercise may   -->\n    <!-- still have a \"title\" which is shown inline.  So the first        -->\n    <!-- solution-like may be inline (no statement shown, no title        -->\n    <!-- authored), or it may follow the statement/title and need a       -->\n    <!-- separator to begin on a new line with a bit of a break.          -->\n\n    <xsl:variable name=\"b-showing-statement\" select=\"$b-has-statement or title\"/>\n    <xsl:variable name=\"b-showing-hints\" select=\"$b-has-hint and hint\"/>\n    <xsl:variable name=\"b-showing-answers\" select=\"$b-has-answer and answer\"/>\n    <xsl:variable name=\"b-showing-solutions\" select=\"$b-has-solution and solution\"/>\n\n    <!-- structured (with components) versus unstructured (simply a bare statement) -->\n    <xsl:choose>\n        <xsl:when test=\"statement\">\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"statement\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n                <!-- we consider a \"program\" of a coding exercise as part of the \"statement\" -->\n                <xsl:apply-templates select=\"program\"/>\n                <xsl:if test=\"$b-original and ($debug.exercises.forward = 'yes')\">\n                    <!-- if several, all exist together, so just work with first one -->\n                    <xsl:for-each select=\"hint[1]|answer[1]|solution[1]\">\n                        <!-- closer is better, so mainmatter solutions first -->\n                        <xsl:choose>\n                            <xsl:when test=\"count(.|$solutions-mainmatter) = count($solutions-mainmatter)\">\n                                <xsl:text>\\space</xsl:text>\n                                <xsl:text>\\hyperlink{</xsl:text>\n                                <xsl:apply-templates select=\".\" mode=\"unique-id-duplicate\">\n                                    <xsl:with-param name=\"suffix\" select=\"'main'\"/>\n                                </xsl:apply-templates>\n                                <xsl:text>}{[</xsl:text>\n                                <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n                                <xsl:text>]}</xsl:text>\n                            </xsl:when>\n                            <xsl:when test=\"count(.|$solutions-backmatter) = count($solutions-backmatter)\">\n                                <xsl:text>\\space</xsl:text>\n                                <xsl:text>\\hyperlink{</xsl:text>\n                                <xsl:apply-templates select=\".\" mode=\"unique-id-duplicate\">\n                                    <xsl:with-param name=\"suffix\" select=\"'back'\"/>\n                                </xsl:apply-templates>\n                                <xsl:text>}{[</xsl:text>\n                                <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n                                <xsl:text>]}</xsl:text>\n                            </xsl:when>\n                        </xsl:choose>\n                    </xsl:for-each>\n                </xsl:if>\n            </xsl:if>\n            <!-- more coming and inline presentation already used up, so add a final separator -->\n            <xsl:if test=\"$b-showing-statement and ($b-showing-hints or $b-showing-answers or $b-showing-solutions)\">\n                <xsl:call-template name=\"exercise-component-separator\"/>\n            </xsl:if>\n            <xsl:if test=\"$b-showing-hints\">\n                <xsl:apply-templates select=\"hint\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                    <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                    <xsl:with-param name=\"b-has-answer\" select=\"$b-has-answer\" />\n                    <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n                </xsl:apply-templates>\n                <!-- more coming, add a final separator -->\n                <xsl:if test=\"$b-showing-answers or $b-showing-solutions\">\n                    <xsl:call-template name=\"exercise-component-separator\"/>\n                </xsl:if>\n            </xsl:if>\n            <xsl:if test=\"$b-showing-answers\">\n                <xsl:apply-templates select=\"answer\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                    <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                    <xsl:with-param name=\"b-has-solution\" select=\"$b-has-solution\" />\n                </xsl:apply-templates>\n                <!-- more coming, add a final separator -->\n                <xsl:if test=\"$b-showing-solutions\">\n                    <xsl:call-template name=\"exercise-component-separator\"/>\n                </xsl:if>\n            </xsl:if>\n            <xsl:if test=\"$b-showing-solutions\">\n                <xsl:apply-templates select=\"solution\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                    <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n                    <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n                </xsl:apply-templates>\n            </xsl:if>\n            <!-- done, no final separator is provided -->\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- no explicit \"statement\", so all content is the statement -->\n            <xsl:if test=\"$b-has-statement\">\n                <xsl:apply-templates select=\"*\">\n                    <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n                </xsl:apply-templates>\n                <!-- no separator, since no trailing components -->\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We place a separator *after* an exercise component if, and only if, -->\n<!-- we know there are more components to come.  So if we have multiple  -->\n<!-- solution-like, we place one after instance, but the last (see       -->\n<!-- templates for each solution-like).  Between groups of identical     -->\n<!-- solution-like we need to *perhaps* place a separator.               -->\n<xsl:template name=\"exercise-component-separator\">\n    <xsl:text>\\par\\smallskip%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"hint\">\n    <xsl:param name=\"b-original\" />\n    <xsl:param name=\"purpose\" />\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-answer\" />\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:apply-templates select=\".\" mode=\"solution-heading\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n        <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n    <!-- separate hints after all but final one -->\n    <xsl:if test=\"following-sibling::hint\">\n        <xsl:call-template name=\"exercise-component-separator\"/>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"answer\">\n    <xsl:param name=\"b-original\" />\n    <xsl:param name=\"purpose\" />\n    <xsl:param name=\"b-component-heading\"/>\n    <xsl:param name=\"b-has-solution\" />\n\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:apply-templates select=\".\" mode=\"solution-heading\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n        <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n    <!-- separate answers after all but final one -->\n    <xsl:if test=\"following-sibling::answer\">\n        <xsl:call-template name=\"exercise-component-separator\"/>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"solution\">\n    <xsl:param name=\"b-original\" />\n    <xsl:param name=\"purpose\" />\n    <xsl:param name=\"b-component-heading\"/>\n\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:apply-templates select=\".\" mode=\"solution-heading\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n        <xsl:with-param name=\"purpose\" select=\"$purpose\" />\n        <xsl:with-param name=\"b-component-heading\" select=\"$b-component-heading\"/>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"*\">\n        <xsl:with-param name=\"b-original\" select=\"$b-original\" />\n    </xsl:apply-templates>\n    <!-- separate solutions after all but final one -->\n    <xsl:if test=\"following-sibling::solution\">\n        <xsl:call-template name=\"exercise-component-separator\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Each component has a similar look, so we combine here -->\n<!-- Separators depend on possible trailing items, so no   -->\n<!-- vertical spacing beforehand is present here           -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"solution-heading\">\n    <xsl:param name=\"b-original\" />\n    <xsl:param name=\"purpose\" />\n    <xsl:param name=\"b-component-heading\"/>\n\n\n    <!-- NB: this is the only place \\blocktitlefont is written into   -->\n    <!-- the body, so a tcbcolorbox could be a great idea to maintain -->\n    <!-- a separation between the preamble and body                   -->\n    <!-- Two slight variants, one with the type-name, one without     -->\n    <!-- Here we compute numbers of multiple versions of a component, -->\n    <!-- so we can later tell if we need spacing at the very end. An  -->\n    <!-- empty value means element is a singleton, else the serial    -->\n    <!-- number comes through.                                        -->\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"non-singleton-number\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$b-component-heading\">\n            <xsl:text>\\noindent\\textbf{\\blocktitlefont </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n            <xsl:if test=\"not($the-number = '')\">\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n            </xsl:if>\n            <xsl:text>}</xsl:text> <!-- end bold type/number -->\n            <xsl:if test=\"title\">\n                <xsl:text> (</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                <xsl:text>)</xsl:text>\n            </xsl:if>\n            <xsl:text>.</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\noindent</xsl:text>\n            <xsl:if test=\"not($the-number = '') or title\">\n                <xsl:text>\\textbf{\\blocktitlefont </xsl:text>\n            </xsl:if>\n            <xsl:if test=\"not($the-number = '')\">\n                <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n                <xsl:text>.</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"title\">\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                <xsl:text>.</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"not($the-number = '') or title\">\n                <xsl:text>}</xsl:text> <!-- end bold number/title -->\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- if original, label in the usual ways  -->\n    <!-- if duplicate, use extraordinary label -->\n    <xsl:choose>\n        <!-- a solution right where the exercise is born -->\n        <xsl:when test=\"$b-original\">\n            <xsl:apply-templates select=\".\" mode=\"label\"/>\n        </xsl:when>\n            <!-- Finally, the purpose of $purpose.  We know if this  -->\n            <!-- solution is being displayed in the main matter or   -->\n            <!-- in the back matter, so we can provide the correct   -->\n            <!-- suffix to the label.                                -->\n        <xsl:when test=\"$purpose = 'mainmatter'\">\n            <xsl:text>\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id-duplicate\">\n                <xsl:with-param name=\"suffix\" select=\"'main'\"/>\n            </xsl:apply-templates>\n            <xsl:text>}{}</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$purpose = 'backmatter'\">\n            <xsl:text>\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id-duplicate\">\n                <xsl:with-param name=\"suffix\" select=\"'back'\"/>\n            </xsl:apply-templates>\n            <xsl:text>}{}</xsl:text>\n        </xsl:when>\n        <!-- linking not enabled for PDF solution manual -->\n        <xsl:when test=\"$purpose = 'solutionmanual'\" />\n        <!-- born (original=true), or mainmatter, or backmatter, or solutionmanual -->\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG:     Exercise component mis-labeled</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- some distance to actual content, if necessary -->\n    <xsl:if test=\"$b-component-heading or not($the-number = '') or title\">\n        <xsl:text>\\quad{}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Definition Like, Remark Like, Computation Like, Example Like  -->\n<!-- Simpler than theorems, definitions, etc      -->\n<!-- Only EXAMPLE-LIKE has hint, answer, solution -->\n<xsl:template match=\"&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <!-- structured version may contain a prelude -->\n    <!-- no structure => don't even consider it   -->\n    <xsl:if test=\"statement or task\">\n        <xsl:apply-templates select=\"prelude\" />\n    </xsl:if>\n    <!-- environment, title, label string, newline -->\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"block-options\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"debug-numbering-check\"/>\n    <xsl:choose>\n        <!-- We use common routines for this variant, but     -->\n        <!-- components of these objects are not controllable -->\n        <!-- by switches, as their nomenclature implies they  -->\n        <!-- are essential, not like exercises or projects.   -->\n        <!-- NB: template is not parameterized at all         -->\n        <!-- prelude?, statement, hint*, answer*, solution*, postlude? -->\n        <xsl:when test=\"&EXAMPLE-FILTER;\">\n            <xsl:apply-templates select=\".\" mode=\"exercise-components\">\n                <xsl:with-param name=\"b-original\" select=\"true()\" />\n                <xsl:with-param name=\"b-component-heading\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-statement\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-hint\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-answer\" select=\"true()\" />\n                <xsl:with-param name=\"b-has-solution\" select=\"true()\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"&OPENPROBLEM-FILTER;\">\n            <xsl:apply-templates select=\".\" mode=\"openproblem-components\"/>\n        </xsl:when>\n        <!-- unstructured, just a bare statement          -->\n        <!-- no need to avoid dangerous misunderstandings -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"*\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{</xsl:text>\n        <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n    <!-- structured version may contain a postlude -->\n    <!-- no structure => don't even consider it    -->\n    <xsl:if test=\"statement or task\">\n        <xsl:apply-templates select=\"postlude\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- An aside goes into a framed box             -->\n<!-- We do not distinguish biographical or       -->\n<!-- historical semantically, but perhaps should -->\n<!-- title is inline, boldface in mdframe setup  -->\n<xsl:template match=\"&ASIDE-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <!-- environment, title, label string, newline -->\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"block-options\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <!-- Process any metadata-type elements,  -->\n    <!-- except title is in the block options -->\n    <xsl:apply-templates select=\"idx\"/>\n    <!-- Coordinate with schema, since we enforce it here -->\n    <xsl:apply-templates select=\"p|blockquote|pre|image|video|program|console|tabular\"/>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- Assemblages -->\n<!-- Low-structure content, high-visibility presentation -->\n<!-- Title is optional, keep remainders coordinated      -->\n<xsl:template match=\"assemblage\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <!-- environment, title, label string, newline -->\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"block-options\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <!-- Coordinate with schema, since we enforce it here -->\n    <xsl:apply-templates select=\"p|blockquote|pre|image|video|program|console|tabular|sidebyside|sbsgroup\" />\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- A GOAL-LIKE element holds a list,         -->\n<!-- surrounded by introduction and conclusion -->\n<xsl:template match=\"&GOAL-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <!-- Following is not consistent, might be better to    -->\n    <!-- opt for a default title of one is not provided     -->\n    <!-- Then maybe integrate with \"block-options\" template -->\n    <!-- 2022-12-14: now more consistent, as in-context     -->\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:if test=\"title\">\n        <xsl:text>: </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    </xsl:if>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\"introduction\" />\n    <xsl:apply-templates select=\"ol|ul|dl\" />\n    <xsl:apply-templates select=\"conclusion\" />\n    <!-- Apply workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"local-name(.)\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- DISCUSSION-LIKE -->\n\n<!-- DISCUSSION-LIKE are appendages of OPENPROBLEM-LIKE, or an        -->\n<!-- OPENPROBLEM-LIKE can be structured with \"task\" and then the      -->\n<!-- appendages are the content of *terminal* \"task\".  So we always   -->\n<!-- have the OPEN-PROBLEMLIKE as an overall container (giving rise   -->\n<!-- to a LaTeX environment) and perhaps \"task\" as a container at     -->\n<!-- the leaves of the tree of \"task\".                                -->\n<!--                                                                  -->\n<!-- This is very similar to \"exercise\" (and similar) and appendages  -->\n<!-- that are SOLUTION-LIKE.  However, it is much simpler since we do -->\n<!-- not have varieties of options for visibility and \"dry-run\"       -->\n<!-- templates to see if enclosing structures are needed or not.      -->\n<!--                                                                  -->\n<!-- The modal \"openproblem-components\" template is modeled after     -->\n<!-- the earlier-implemented \"exercise-components\".  It is recursive  -->\n<!-- in the case of (nested) \"task\".  And it is much simpler.  As a   -->\n<!-- modal template, this will maintain a separation with the modal   -->\n<!-- \"exercise-components\", especially as it pertains to              -->\n<!-- intermediate \"task\".                                             -->\n\n <!-- The case of terminal containers.  We do not entertain bare content   -->\n <!-- as a \"statement\", though a pre-processor might allow that in source. -->\n<xsl:template match=\"&OPENPROBLEM-LIKE;|task\" mode=\"openproblem-components\">\n    <xsl:apply-templates select=\"statement|&DISCUSSION-LIKE;\"/>\n</xsl:template>\n\n<xsl:template match=\"openproblem[task]|openquestion[task]|openconjecture[task]|task[task]\" mode=\"openproblem-components\">\n    <xsl:apply-templates select=\"introduction\"/>\n\n    <xsl:apply-templates select=\".\" mode=\"begin-task-list\"/>\n    <xsl:for-each select=\"task\">\n        <xsl:text>\\item</xsl:text>\n        <!-- We use the ref/label mechanism       -->\n        <!-- \\label{} will separate content, if   -->\n        <!-- employed, else we use an empty group -->\n        <xsl:choose>\n            <xsl:when test=\"@xml:id\">\n                <xsl:apply-templates select=\".\" mode=\"label\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>{}</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <!-- Semantic macro defined in preamble, mostly for font change -->\n        <xsl:if test=\"title\">\n            <xsl:text>\\lititle{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n            <xsl:text>}\\par%&#xa;</xsl:text>\n        </xsl:if>\n        <!-- Note: context is *child* task due to context switch via \"for-each\" -->\n        <xsl:apply-templates select=\".\" mode=\"openproblem-components\"/>\n    </xsl:for-each>\n    <xsl:apply-templates select=\".\" mode=\"end-task-list\"/>\n\n    <xsl:apply-templates select=\"conclusion\"/>\n</xsl:template>\n\n<!-- DISCUSSION-LIKE proper are fairly simple and hard-coded to a  -->\n<!-- large extent, since using tcolorbox for these might lead to a -->\n<!-- breakable/unbreakable mess.  Still, these could have their    -->\n<!-- matches split out to provide finer distinctions.              -->\n\n<xsl:template match=\"&DISCUSSION-LIKE;\">\n    <!-- break *before* the appendage -->\n    <xsl:text>\\par%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:apply-templates select=\".\" mode=\"discussion-heading\"/>\n    <!-- DISCUSSION-LIKE assumed to be structured -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<xsl:template match=\"&DISCUSSION-LIKE;\" mode=\"discussion-heading\">\n    <xsl:text>\\noindent\\textbf{\\blocktitlefont </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n    <xsl:text>}</xsl:text> <!-- end bold type/number -->\n    <xsl:if test=\"title\">\n        <xsl:text> (</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        <xsl:text>)</xsl:text>\n    </xsl:if>\n    <xsl:text>.\\space\\space</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"label\"/>\n    <xsl:text>%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- Paragraphs -->\n<!-- \\par *separates* paragraphs So look backward for          -->\n<!-- cases where a paragraph would have been the previous      -->\n<!-- thing in the output Not: \"notation\", \"todo\", index, etc   -->\n<!-- Guarantee: Never a blank line, always finish with newline -->\n<!--                                                           -->\n<!-- Note: a paragraph could end with an item we want          -->\n<!-- to look good in the source, like a list or display        -->\n<!-- math and we already have a newline so any subsequent      -->\n<!-- content from the paragraph will start anwew.  But         -->\n<!-- there might not be anything more to output.  So we        -->\n<!-- always end with a %-newline combo.                        -->\n\n<!-- TODO: maybe we could look backward at the end of a paragraph       -->\n<!-- to see if the above scenario happens, and we could end gracefully. -->\n<xsl:template match=\"p\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:variable name=\"node-preceding-current\" select=\"preceding-sibling::*[not(&SUBDIVISION-METADATA-FILTER;)][1]\" />\n    <xsl:if test=\"$node-preceding-current[self::p or self::paragraphs or self::sidebyside or self::case]\">\n        <xsl:text>\\par</xsl:text>\n        <xsl:if test=\"$node-preceding-current[self::paragraphs or self::case]\">\n            <xsl:text>\\medskip</xsl:text>\n        </xsl:if>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <!-- we can't cross-reference here without an @xml:id -->\n    <!-- place it on a line of its own just prior to guts -->\n    <xsl:apply-templates select=\".\" mode=\"optional-label\"/>\n    <!-- line break is optional as well -->\n    <xsl:if test=\"@xml:id\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Suppress indentation when directed by assembly -->\n    <xsl:if test=\"@pi:indent = 'no'\">\n        <xsl:text>\\noindent{}</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates/>\n    <xsl:text>%&#xa;</xsl:text>\n    <!-- Add workspace if appropriate -->\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n</xsl:template>\n\n<!-- For a memo, not indenting the first paragraph helps -->\n<!-- with alignment and the to/from/subject/date block   -->\n<!-- TODO: maybe memo header should set this up          -->\n<xsl:template match=\"memo/p[1]\">\n    <xsl:text>\\noindent{}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ########### -->\n<!-- Mathematics -->\n<!-- ########### -->\n\n<!-- Mathematics authored in LaTeX syntax should be       -->\n<!-- independent of output format.  Despite MathJax's     -->\n<!-- broad array of capabilities, there are still some    -->\n<!-- differences which we need to accomodate via abstract -->\n<!-- templates.                                           -->\n\n<!-- See the -common stylesheet for manipulations of math elements     -->\n<!-- and subsequent text nodes that lead with punctuation.  Basically, -->\n<!-- punctuation can migrate from the start of the text node and into  -->\n<!-- the math, wrapped in a \\text{}.  We do this to display math as a  -->\n<!-- service to authors.  But LaTeX handles this situation carefully   -->\n<!-- for inline math.                                                  -->\n<xsl:variable name=\"math.punctuation.include\" select=\"'display'\"/>\n\n<!-- Inline Mathematics (\"m\") -->\n<!-- We use the asymmetric LaTeX delimiters \\( and \\).     -->\n<!-- For LaTeX these are not \"robust\", hence break moving  -->\n<!-- items (titles, index), so use the \"fixltx2e\" package, -->\n<!-- which declares \\MakeRobust\\( and \\MakeRobust\\)        -->\n\n<!-- This template wraps inline math in delimiters -->\n<xsl:template name=\"inline-math-wrapper\">\n    <xsl:param name=\"math\"/>\n\n    <xsl:text>\\(</xsl:text>\n    <xsl:value-of select=\"$math\"/>\n    <xsl:text>\\)</xsl:text>\n</xsl:template>\n\n<!-- Displayed Multi-Line Math (\"md\", with \"mrow\" children) -->\n\n<!-- Additional blank-ish line for LaTeX source readability -->\n<xsl:template name=\"display-math-visual-blank-line\">\n    <xsl:text>%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- The default template for the \"md\" container just      -->\n<!-- calls the modal \"body\" template needed for the HTML   -->\n<!-- knowl production scheme. The variables in the \"body\"  -->\n<!-- template have the right defaults for this application -->\n<!-- When an \"md\" is the result of exploding an \"md\" with  -->\n<!-- \"intertext\" (via the \"intertext-exploder\" mode in     -->\n<!-- -assembly), then it will have a  @pi:location         -->\n<!-- attribute set to \"first\", \"intermediate\", or \"last\".  -->\n<!-- So:                                                   -->\n<!--   *  No such attribute, yes, we need both open and close delimiters             -->\n<!--   *  Have such an attribute, put an open delimiter on the \"first\" exploded \"md\" -->\n<!--   *  Have such an attribute, put a close delimiter on the \"last\" exploded \"md\"  -->\n<!--   *  Have such an attribute, no delimiters on the \"intermediate\" exploded \"md\"  -->\n<!-- Why?  Now LaTeX can typeset the original \"md\" with    -->\n<!-- alignment preserved across the intervening \"intertext\"-->\n<!-- The necessity of tags on the \"mrow\" (and if we use a  -->\n<!-- *-form of the environment) is conveyed by an internal -->\n<!-- attribute placed by the pre-processor in the          -->\n<!-- \"intertext\" case.                                     -->\n<xsl:template match=\"md[mrow]\">\n    <xsl:apply-templates select=\".\" mode=\"body\">\n        <xsl:with-param name=\"b-needs-open\"  select=\"not(@pi:location) or @pi:location = 'first'\"/>\n        <xsl:with-param name=\"b-needs-close\" select=\"not(@pi:location) or @pi:location = 'last'\"/>\n        <xsl:with-param name=\"b-latex-intertext-needs-tags\" select=\"@pi:latex-intertext-needs-tags = 'yes'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"mrow\" mode=\"tag\">\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n</xsl:template>\n\n<!-- An mrow with a \\label{} can be cross-referenced    -->\n<!-- md/mdn and \\notag in -common control much of this  -->\n<!-- For a local tag, we need to provide the symbol AND -->\n<!-- also provide a label for the cross-reference       -->\n<xsl:template match=\"mrow[@tag]\" mode=\"tag\">\n    <!-- if mrow has custom tag, we add it here -->\n    <xsl:text>\\tag{</xsl:text>\n    <xsl:apply-templates select=\"@tag\" mode=\"tag-symbol\" />\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n</xsl:template>\n\n<!-- When tagging the manufactured \"mrow\" of a bare \"md\" we  -->\n<!-- get the identification from the containing parent \"md\"; -->\n<!-- a @tag transferred from the bare \"md\" still emits the   -->\n<!-- symbol via the usual \\tag{} mechanism                   -->\n<xsl:template match=\"mrow[parent::md/@pi:authored-one-line]\" mode=\"tag\">\n    <xsl:if test=\"@tag\">\n        <xsl:text>\\tag{</xsl:text>\n        <xsl:apply-templates select=\"@tag\" mode=\"tag-symbol\" />\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"parent::md\" mode=\"label\" />\n</xsl:template>\n\n<!-- Page Breaks within Display Math -->\n<!-- \\allowdisplaybreaks is on globally always          -->\n<!-- If parent has  break=\"no\"  then surpress with a *  -->\n<!-- Unless \"mrow\" has  break=\"yes\" then leave alone    -->\n<!-- no-op for the base version, where it is irrelevant -->\n\n<xsl:template match=\"mrow\" mode=\"display-page-break\">\n    <xsl:if test=\"parent::md/@break='no' and not(@break='yes')\">\n        <xsl:text>*</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Intertext -->\n<!-- An <mrow> will provide trailing newline, -->\n<!-- so we do the same here for visual source -->\n<!-- We need to do this very differently for  -->\n<!-- HTML (we fake it).                       -->\n<xsl:template match=\"pi:intertext\">\n    <xsl:text>\\intertext{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ##### -->\n<!-- Index -->\n<!-- ##### -->\n\n<!-- Support LaTeX-native or PreTeXt universal -->\n\n<!-- $index-maker is a parameter that will eventually be set as a  -->\n<!-- publisher variable.  It defaults to \"latex\", though this may  -->\n<!-- change.  We support two schemes for marking index locations.  -->\n\n<xsl:template match=\"idx\">\n    <xsl:choose>\n        <xsl:when test=\"$index-maker = 'pretext'\">\n            <xsl:apply-templates select=\".\" mode=\"pretext-index\"/>\n        </xsl:when>\n        <xsl:when test=\"$index-maker = 'latex'\">\n            <xsl:apply-templates select=\".\" mode=\"latex-index\"/>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"idx\" mode=\"pretext-index\">\n    <xsl:text>\\label{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n    <!-- do not introduce anymore whitespace into a \"p\" than there   -->\n    <!-- already is, but do format these one-per-line outside of \"p\" -->\n    <xsl:if test=\"not(ancestor::p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Unstructured                       -->\n<!-- simple and quick, minimal features -->\n<!-- Only supports  @sortby  attribute  -->\n<xsl:template match=\"idx[not(h)]\" mode=\"latex-index\">\n    <xsl:text>\\index{</xsl:text>\n    <xsl:apply-templates select=\"@sortby\" mode=\"latex-index\"/>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n    <!-- do not introduce anymore whitespace into a \"p\" than there   -->\n    <!-- already is, but do format these one-per-line outside of \"p\" -->\n    <xsl:if test=\"not(ancestor::p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Structured                                      -->\n<!--   h - one to three                              -->\n<!--   see, seealso - one total                      -->\n<!--   @start, @finish support page ranges for print -->\n<xsl:template match=\"idx[h]\" mode=\"latex-index\">\n    <xsl:text>\\index{</xsl:text>\n    <xsl:apply-templates select=\"h\" mode=\"latex-index\"/>\n    <xsl:apply-templates select=\"see\" mode=\"latex-index\"/>\n    <xsl:apply-templates select=\"seealso\" mode=\"latex-index\"/>\n    <xsl:apply-templates select=\"@finish\" mode=\"latex-index\"/>\n    <xsl:text>}</xsl:text>\n    <!-- do not introduce anymore whitespace into a \"p\" than there   -->\n    <!-- already is, but do format these one-per-line outside of \"p\" -->\n    <xsl:if test=\"not(ancestor::p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Page Range, Finish Variant              -->\n<!-- @start is a marker for END of a range   -->\n<!-- End of page range duplicates it's start -->\n<xsl:template match=\"index[@start] | idx[@start]\" mode=\"latex-index\">\n    <xsl:variable name=\"start\" select=\"id(@start)\" />\n    <xsl:text>\\index{</xsl:text>\n    <xsl:apply-templates select=\"$start/h\" mode=\"latex-index\"/>\n    <xsl:apply-templates select=\"$start/see\" mode=\"latex-index\"/>\n    <xsl:apply-templates select=\"$start/seealso\" mode=\"latex-index\"/>\n    <xsl:apply-templates select=\"@start\" mode=\"latex-index\"/>\n    <xsl:text>}</xsl:text>\n    <!-- do not introduce anymore whitespace into a \"p\" than there   -->\n    <!-- already is, but do format these one-per-line outside of \"p\" -->\n    <xsl:if test=\"not(ancestor::p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"index/@sortby|idx/@sortby|h/@sortby\" mode=\"latex-index\">\n    <xsl:value-of select=\".\" />\n    <xsl:text>@</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"idx/h\" mode=\"latex-index\">\n    <xsl:if test=\"preceding-sibling::h\">\n        <xsl:text>!</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"@sortby\" mode=\"latex-index\"/>\n    <xsl:apply-templates/>\n</xsl:template>\n\n<xsl:template match=\"idx/see\" mode=\"latex-index\">\n    <xsl:text>|see{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"idx/seealso\" mode=\"latex-index\">\n    <xsl:text>|seealso{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- finish  attribute suggests range (only) -->\n<xsl:template match=\"@finish\" mode=\"latex-index\">\n    <xsl:text>|(</xsl:text>\n</xsl:template>\n\n<!-- start  attribute marks end of range  -->\n<xsl:template match=\"@start\" mode=\"latex-index\">\n    <xsl:text>|)</xsl:text>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Lists -->\n<!-- ##### -->\n\n<!-- Good match between basic HTML types and basic LaTeX types -->\n\n<!-- Utility templates to translate @marker specification -->\n<!-- for use with LaTeX enumitem package's label keyword  -->\n<xsl:template match=\"ol\" mode=\"latex-list-label\">\n    <xsl:variable name=\"format-code\" select=\"./@format-code\" />\n    <xsl:value-of select=\"./@marker-prefix\" />\n    <xsl:choose>\n        <xsl:when test=\"$format-code = '0'\">\\arabic*</xsl:when>\n        <xsl:when test=\"$format-code = '1'\">\\arabic*</xsl:when>\n        <xsl:when test=\"$format-code = 'a'\">\\alph*</xsl:when>\n        <xsl:when test=\"$format-code = 'A'\">\\Alph*</xsl:when>\n        <xsl:when test=\"$format-code = 'i'\">\\roman*</xsl:when>\n        <xsl:when test=\"$format-code = 'I'\">\\Roman*</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: bad ordered list label format code in LaTeX conversion</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:value-of select=\"./@marker-suffix\" />\n</xsl:template>\n\n<xsl:template match=\"ul\" mode=\"latex-list-label\">\n    <xsl:variable name=\"format-code\">\n        <xsl:apply-templates select=\".\" mode=\"format-code\" />\n    </xsl:variable>\n   <xsl:choose>\n        <xsl:when test=\"$format-code = 'disc'\">\\ptxlistdisc</xsl:when>\n        <xsl:when test=\"$format-code = 'circle'\">\\ptxlistcircle</xsl:when>\n        <xsl:when test=\"$format-code = 'square'\">\\ptxlistsquare</xsl:when>\n        <xsl:when test=\"$format-code = 'none'\"></xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: bad unordered list label format code in LaTeX conversion</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Utility template to translate unordered    -->\n<!-- list level to HTML list-style-type         -->\n<!-- This is similar to Firefox default choices -->\n<!-- but different in the fourth slot           -->\n<!-- disc, circle, square, disc                 -->\n<xsl:template match=\"*\" mode=\"latex-unordered-list-label-default\">\n    <xsl:variable name=\"level\">\n        <xsl:apply-templates select=\".\" mode=\"unordered-list-level\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$level='0'\">\\ptxlistdisc</xsl:when>\n        <xsl:when test=\"$level='1'\">\\ptxlistcircle</xsl:when>\n        <xsl:when test=\"$level='2'\">\\ptxlistsquare</xsl:when>\n        <xsl:when test=\"$level='3'\">\\ptxlistdisc</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: unordered list is more than 4 levels deep</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Lists themselves -->\n<!-- If columns are specified, we        -->\n<!-- wrap in the multicolumn environment -->\n<xsl:template match=\"ol\">\n    <!-- need to switch on 0-1 for ol Arabic -->\n    <!-- no harm if called on \"ul\"           -->\n    <xsl:variable name=\"format-code\" select=\"./@format-code\" />\n    <!-- Determine the number of columns -->\n    <!-- Restrict to 1-6 via the schema  -->\n    <xsl:variable name=\"ncols\">\n        <xsl:choose>\n            <xsl:when test=\"@cols\">\n                <xsl:value-of select=\"@cols\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>1</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:if test=\"not($ncols = 1)\">\n        <xsl:text>\\begin{multicols}{</xsl:text>\n        <xsl:value-of select=\"@cols\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{enumerate}</xsl:text>\n    <!-- override LaTeX defaults as indicated -->\n    <xsl:if test=\"@marker or ($format-code = '0') or ancestor::exercises or ancestor::worksheet or ancestor::handout or ancestor::reading-questions or ancestor::references\">\n        <xsl:text>[label={</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"latex-list-label\" />\n        <xsl:if test=\"$format-code = '0'\">\n            <xsl:text>, start=0</xsl:text>\n        </xsl:if>\n        <xsl:text>}]</xsl:text>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n     <xsl:apply-templates select=\"li\"/>\n    <xsl:text>\\end{enumerate}&#xa;</xsl:text>\n    <xsl:if test=\"not($ncols = 1)\">\n        <xsl:text>\\end{multicols}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- PTX unordered list scheme is distinct -->\n<!-- from LaTeX's so we write out a label  -->\n<!-- choice for each such list             -->\n<xsl:template match=\"ul\">\n    <!-- Determine the number of columns -->\n    <!-- Restrict to 1-6 via the schema  -->\n    <xsl:variable name=\"ncols\">\n        <xsl:choose>\n            <xsl:when test=\"@cols\">\n                <xsl:value-of select=\"@cols\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>1</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:if test=\"not($ncols = 1)\">\n        <xsl:text>\\begin{multicols}{</xsl:text>\n        <xsl:value-of select=\"@cols\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{itemize}[label=</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"latex-list-label\" />\n    <xsl:text>]&#xa;</xsl:text>\n    <xsl:apply-templates select=\"li\"/>\n    <xsl:text>\\end{itemize}&#xa;</xsl:text>\n    <xsl:if test=\"not($ncols = 1)\">\n        <xsl:text>\\end{multicols}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"dl\">\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\begin{descriptionlist}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"li\"/>\n    <xsl:text>\\end{descriptionlist}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- List Items -->\n<!-- If the content is structured, we presume the last  -->\n<!-- element ends the line with a newline of some sort. -->\n<!-- If the content is unstructured, we end the line    -->\n<!-- with at least some content (%) and a newline.      -->\n<!-- Keep the tests here in sync with DTD.              -->\n\n<!-- In an ordered list, an item can be a target -->\n<!-- but only if it has an @xml:id to use        -->\n<xsl:template match=\"ol/li\">\n    <xsl:text>\\item</xsl:text>\n    <!-- \\label{} will separate content, if   -->\n    <!-- employed, else we use an empty group -->\n    <xsl:choose>\n        <!-- not quite tight for modal \"optional-label\" -->\n        <xsl:when test=\"@xml:id\">\n            <xsl:apply-templates select=\".\" mode=\"label\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- \"title\" only possible for structured version of a list item -->\n    <!-- Semantic macro defined in preamble, mostly for font change  -->\n    <xsl:if test=\"title\">\n        <xsl:text>\\lititle{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        <xsl:text>}\\par%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates/>\n    <xsl:if test=\"not(p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n</xsl:template>\n\n<!-- In an unordered list, an item cannot be a target -->\n<!-- So we use an empty group to end the \\item        -->\n<xsl:template match=\"ul/li\">\n    <xsl:text>\\item{}</xsl:text>\n    <!-- \"title\" only possible for structured version of a list item -->\n    <!-- Semantic macro defined in preamble, mostly for font change  -->\n    <xsl:if test=\"title\">\n        <xsl:text>\\lititle{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        <xsl:text>}\\par%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates/>\n    <xsl:if test=\"not(p)\">\n        <xsl:text>%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"workspace\"/>\n</xsl:template>\n\n<!-- Description lists always have title as additional -->\n<!-- argument In a description list, an item can be a  -->\n<!-- target but only if it has an @xml:id to use       -->\n<xsl:template match=\"dl/li\">\n    <xsl:variable name=\"item-environment\">\n        <xsl:choose>\n            <xsl:when test=\"parent::dl/@width = 'narrow'\">\n                <xsl:text>dlinarrow</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"parent::dl/@width = 'wide'\">\n                <xsl:text>dliwide</xsl:text>\n            </xsl:when>\n            <!-- the default (specified, or absent) -->\n            <xsl:otherwise>\n                <xsl:text>dlimedium</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"$item-environment\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"$item-environment\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n\n<!-- ############ -->\n<!-- Music Scores -->\n<!-- ############ -->\n\n<!-- Embed an interactive score from MuseScore                          -->\n<!-- Flag: score element has two MuseScore-specific attributes          -->\n<!-- https://musescore.org/user/{usernumber}/scores/{scorenumber}/embed -->\n<!-- into an iframe with width and height (todo)                        -->\n<xsl:template match=\"score[@musescoreuser and @musescore]\">\n    <xsl:text>[\\mono{\\nolinkurl{https://musescore.org/user/</xsl:text>\n    <xsl:value-of select=\"@musescoreuser\" />\n    <xsl:text>/scores/</xsl:text>\n    <xsl:value-of select=\"@musescore\" />\n    <xsl:text>}} not yet realized in \\LaTeX]&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ######## -->\n<!-- SI Units -->\n<!-- ######## -->\n\n<xsl:template match=\"quantity\">\n    <xsl:choose>\n        <!-- no magnitude, only units -->\n        <xsl:when test=\"not(mag) and (unit or per)\">\n            <xsl:text>\\si{</xsl:text>\n            <xsl:apply-templates select=\"unit\"/>\n            <xsl:apply-templates select=\"per\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <!-- magnitude, plus units -->\n        <xsl:when test=\"mag and (unit or per)\">\n            <xsl:text>\\SI{</xsl:text>\n            <xsl:value-of select=\"mag\"/>\n            <xsl:text>}{</xsl:text>\n            <xsl:apply-templates select=\"unit\"/>\n            <xsl:apply-templates select=\"per\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <!-- magnitude only -->\n        <xsl:when test=\"mag\">\n            <xsl:text>\\num{</xsl:text>\n            <xsl:value-of select=\"mag\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <!-- nothing (really should be caught in schema) -->\n        <!-- but no real harm in just doing nothing      -->\n        <xsl:otherwise />\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"unit|per\">\n    <xsl:if test=\"self::per\">\n        <xsl:text>\\per</xsl:text>\n    </xsl:if>\n    <!-- prefix is optional -->\n    <xsl:if test=\"@prefix\">\n        <xsl:text>\\</xsl:text>\n        <xsl:value-of select=\"@prefix\"/>\n    </xsl:if>\n    <!-- base unit is required -->\n    <xsl:text>\\</xsl:text>\n    <xsl:value-of select=\"@base\"/>\n    <!-- optional exponent -->\n    <xsl:if test=\"@exp\">\n        <xsl:text>\\tothe{</xsl:text>\n            <xsl:value-of select=\"@exp\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Actual Quotations                -->\n<!-- TODO: <quote> element for inline -->\n<xsl:template match=\"blockquote\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:text>\\begin{quote}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"optional-label\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{quote}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Attributions -->\n<!-- ############ -->\n\n<!-- At end of: blockquote, preface, foreword       -->\n<!-- free-form for one line, or structured as lines -->\n<!-- LaTeX lacks a quotation dash, emdash instead   -->\n<!-- Discourage a page break prior                  -->\n<!-- TODO: make a rule for quotation-dash?          -->\n\n<!-- Single line, mixed-content                     -->\n<!-- Or structured by \"line\" elements               -->\n<!-- Quotation dash if within blockquote            -->\n<!-- A table, pushed right, with left-justification -->\n<!-- TODO: CMOS says blockquote-attribution goes in -->\n<!-- parentheses (see 5e, 11.81), while this style  -->\n<!-- is for chapter epigraphs (see 5e, 1.39, 11.40) -->\n<xsl:template match=\"attribution\">\n    <xsl:text>\\nopagebreak\\par%&#xa;</xsl:text>\n    <xsl:text>\\hfill</xsl:text>\n    <xsl:if test=\"parent::blockquote\">\n        <xsl:call-template name=\"mdash-character\"/>\n        <!-- remove the left-side column spacing -->\n        <xsl:text>{\\setlength{\\tabcolsep}{0pt}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{tabular}[t]{l@{}}&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"line\">\n            <xsl:apply-templates select=\"line\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>\\end{tabular}</xsl:text>\n    <!-- end group with table spacing change -->\n    <xsl:if test=\"parent::blockquote\">\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:text>\\\\\\par&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Emphasis -->\n<xsl:template match=\"em\">\n    <xsl:text>\\emph{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Alert -->\n<!-- \\alert{} defined in preamble as semantic macro -->\n<xsl:template match=\"alert\">\n    <xsl:text>\\alert{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Insert (an edit) -->\n<!-- \\inserted{} defined in preamble as semantic macro -->\n<xsl:template match=\"insert\">\n    <xsl:text>\\inserted{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n<!-- Protect the version of the macro appearing in titles -->\n<xsl:template match=\"title//insert|shortitle//insert\">\n    <xsl:text>\\protect\\inserted{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Delete (an edit) -->\n<!-- \\deleted{} defined in preamble as semantic macro -->\n<xsl:template match=\"delete\">\n    <xsl:text>\\deleted{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n<!-- Protect the version of the macro appearing in titles -->\n<xsl:template match=\"title//delete|shortitle//delete\">\n    <xsl:text>\\protect\\deleted{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Stale (no longer relevant) -->\n<!-- \\stale{} defined in preamble as semantic macro -->\n<xsl:template match=\"stale\">\n    <xsl:text>\\stale{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n<!-- Protect the version of the macro appearing in titles -->\n<xsl:template match=\"title//stale|shorttitle//stale\">\n    <xsl:text>\\protect\\stale{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Term (defined terms) -->\n<!-- \\terminology{} defined in preamble as semantic macro -->\n<xsl:template match=\"term\">\n    <xsl:text>\\terminology{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Acronyms, Initialisms, Abbreviations -->\n<!-- abbreviation: contracted form                             -->\n<!-- acronym: initials, pronounced as a word (eg SCUBA, RADAR) -->\n<!-- initialism: one letter at a time, (eg CIA, FBI)           -->\n<!-- All use (no-op) semantic macros, defined in preamble      -->\n<!-- TODO:  Test here for content ends in a period            -->\n<!-- if next char is space, use macro that accomplishes \"\\@.\" -->\n<!-- if next char is a char, use macro for .\\@                -->\n<!-- BUT if new sentence, then just leave the period alone    -->\n<xsl:template match=\"abbr\">\n    <xsl:text>\\abbreviation{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"acro\">\n    <xsl:text>\\acronym{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"init\">\n    <xsl:text>\\initialism{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Titles migrate to PDF bookmarks/ToC and need to be handled  -->\n<!-- differently, even if we haven't quite figured out how       -->\n<xsl:template match=\"title//abbr|shortitle//abbr\">\n    <xsl:text>\\abbreviationintitle{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"title//acro|shortitle//acro\">\n    <xsl:text>\\acronymintitle{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"title//init|shortitle//acro\">\n    <xsl:text>\\initialismintitle{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n\n<!-- ############# -->\n<!-- External URLs -->\n<!-- ############# -->\n\n<!-- We escape all the problem LaTeX characters      -->\n<!-- when given in the @href attribute, \\nolinkurl{} -->\n<!-- and \\href{}{} seem to do the right thing        -->\n<!-- and they do better in footnotes and table cells -->\n<!-- Within titles, we just produce (formatted)      -->\n<!-- text, but nothing active                        -->\n<!-- N.B. compare with LaTeX version, could move much to -common -->\n\n<!-- \\nolinkurl{} seems to provide line-breaking     -->\n<xsl:template match=\"url|dataurl\">\n    <!-- link/reference/location may be external -->\n    <!-- (@href) or internal (dataurl[@source])  -->\n    <xsl:variable name=\"uri\">\n        <xsl:choose>\n            <!-- \"url\" and \"dataurl\" both support external @href -->\n            <xsl:when test=\"@href\">\n                <xsl:value-of select=\"@href\"/>\n            </xsl:when>\n            <!-- a \"dataurl\" might be local, @source is        -->\n            <!-- indication, so prefix with a local path/URI,  -->\n            <!-- add \"external\" directory, via template useful -->\n            <!-- also for visual URL formulation in -assembly  -->\n            <xsl:when test=\"self::dataurl and @source\">\n                <xsl:apply-templates select=\".\" mode=\"static-url\"/>\n            </xsl:when>\n            <!-- empty will be non-functional -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- form the \"clickable\" (visible) text -->\n    <xsl:variable name=\"visible-text\">\n        <xsl:choose>\n            <!-- process content, as-is, when authored -->\n            <xsl:when test=\"node()\">\n                <xsl:apply-templates/>\n            </xsl:when>\n            <!-- absent content, use a URL, with   -->\n            <!-- preference for @visual over @href -->\n            <xsl:otherwise>\n                <xsl:text>\\nolinkurl{</xsl:text>\n                <!-- sanitize the URL for LaTeX output -->\n                <xsl:call-template name=\"escape-url-to-latex\">\n                    <xsl:with-param name=\"text\">\n                        <xsl:choose>\n                            <xsl:when test=\"@visual\">\n                                <xsl:value-of select=\"@visual\"/>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$uri\"/>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:with-param>\n                </xsl:call-template>\n                <xsl:text>}</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::shorttitle|ancestor::subtitle\">\n            <xsl:choose>\n                <xsl:when test=\"node()\">\n                    <xsl:copy-of select=\"$visible-text\"/>\n                </xsl:when>\n                <!-- migration to a title requires a version without a -->\n                <!-- \"\\nolinkurl{}\" else the *.out file gets messed up -->\n                <!-- (PDF bookmarks?)                                  -->\n                <xsl:when test=\"@visual\">\n                    <xsl:text>\\mono{</xsl:text>\n                    <xsl:value-of select=\"@visual\"/>\n                    <xsl:text>}</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>\\mono{</xsl:text>\n                    <xsl:value-of select=\"$uri\"/>\n                    <xsl:text>}</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- the actual URL -->\n            <xsl:text>\\href{</xsl:text>\n            <xsl:call-template name=\"escape-url-to-latex\">\n                <xsl:with-param name=\"text\">\n                    <xsl:value-of select=\"$uri\" />\n                </xsl:with-param>\n            </xsl:call-template>\n            <xsl:text>}</xsl:text>\n            <!-- the visible clickable -->\n            <xsl:text>{</xsl:text>\n            <xsl:if test=\"$latex-link-highlight != 'none'\">\n                <xsl:text>\\linkhilite{</xsl:text>\n            </xsl:if>\n            <xsl:copy-of select=\"$visible-text\"/>\n            <xsl:if test=\"$latex-link-highlight != 'none'\">\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>}</xsl:text>\n            <!-- A content-full URL will have an authored @visual version,  -->\n            <!-- or the pre-processor will have manufactured a reasonable   -->\n            <!-- one.  Only if an author explicitly denies this option with -->\n            <!-- an empty string will this not be available/possible.  For  -->\n            <!-- print versions of a PDF we add this parenthetically.       -->\n            <xsl:if test=\"$b-latex-print and node() and not(@visual = '')\">\n                <!-- space to separate -->\n                <xsl:text> </xsl:text>\n                <!-- parentheses, plus line-breakable monospace font -->\n                <xsl:text>(\\nolinkurl{</xsl:text>\n                <xsl:call-template name=\"escape-url-to-latex\">\n                    <xsl:with-param name=\"text\">\n                        <xsl:value-of select=\"@visual\" />\n                    </xsl:with-param>\n                </xsl:call-template>\n                <xsl:text>})</xsl:text>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ############# -->\n<!-- Verbatim Text -->\n<!-- ############# -->\n\n<!-- Code, inline -->\n<!-- We escape every possible problematic character before     -->\n<!-- applying a macro which will presumably apply a typewriter -->\n<!-- font (which is not presumed to get strict mono spacing).  -->\n<xsl:template name=\"code-wrapper\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:text>\\mono{</xsl:text>\n    <xsl:call-template name=\"escape-text-to-latex\">\n        <xsl:with-param name=\"text\" select=\"$content\" />\n    </xsl:call-template>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- cd is for use in paragraphs, inline            -->\n<!-- One line is mixed content, and should be tight -->\n<!-- Formatted for visual appeal in LaTeX source    -->\n<!-- \"cd\" could be first in a paragraph, so do not  -->\n<!-- drop an empty line                             -->\n<!-- With a \"cline\" element present, we assume      -->\n<!-- that is the entire structure (see the cline    -->\n<!-- template in the pretext-common.xsl file)       -->\n<xsl:template match=\"cd\">\n    <xsl:variable name=\"cd-env\">\n        <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    </xsl:variable>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"$cd-env\"/>\n    <xsl:text>}</xsl:text>\n    <!-- optional visible spaces -->\n    <xsl:choose>\n        <xsl:when test=\"not(@showspaces) or (@showspaces = 'none')\">\n            <!-- line break now for verbatim text -->\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@showspaces = 'all'\">\n            <!-- option, *then* line break now for verbatim text -->\n            <xsl:text>[showspaces=true]&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <!-- content: structured, then single line -->\n    <xsl:choose>\n        <xsl:when test=\"cline\">\n            <xsl:apply-templates select=\"cline\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\".\"/>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"$cd-env\"/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- An indented structure. like an item in a list likely does not -->\n<!-- need *more* indentation.  A \"cd\" inside a \"p\" inside a list   -->\n<!-- *will* be indented, but a bare \"cd\" as a *child* of an \"li\"   -->\n<!-- will not be.  Unclear if we want this condition for when the  -->\n<!-- \"cd\" is the only non-metadate element of an \"li\".             -->\n<xsl:template match=\"cd\" mode=\"environment-name\">\n    <xsl:choose>\n        <xsl:when test=\"parent::li\">\n            <xsl:text>codedisplayleft</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>codedisplay</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- \"pre\" is analogous to the HTML tag of the same name -->\n<!-- The \"interior\" templates decide between two styles  -->\n<!--   (a) clean up raw text, just like for Sage code    -->\n<!--   (b) interpret cline as line-by-line structure     -->\n<!-- (See templates in xsl/pretext-common.xsl file)     -->\n<!-- Then wrap in a  verbatim  environment               -->\n<xsl:template match=\"pre\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:text>\\begin{preformatted}&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"interior\"/>\n    <xsl:text>\\end{preformatted}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"email\">\n    <xsl:text>\\href{mailto:</xsl:text>\n    <xsl:value-of select=\".\" />\n    <xsl:text>}{\\nolinkurl{</xsl:text>\n    <xsl:value-of select=\".\" />\n    <xsl:text>}}</xsl:text>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- Special Characters -->\n<!-- ################## -->\n\n<!-- Note: characters given by argument-less macros    -->\n<!-- should finish with an empty group ({}) so that    -->\n<!-- they do not run-in to subsequent text.            -->\n<!-- Alternatives:                                     -->\n<!--   1.  Wrap macro in a group, eg \"{\\foo}\".         -->\n<!--       Disrupts any kerning that might occur.      -->\n<!--   2.  Add a trailing space, eg \"\\foo \".           -->\n<!--       Breaks when output is edited, lines broken. -->\n<!--   3.  \\xspace might work after words.             -->\n<!--       Even if followed by punctuation (?).  Ugly. -->\n\n<!-- Single and Double Quote Marks -->\n<!-- LaTeX is a bit brain-dead when a single quote        -->\n<!-- is up tight against a double quote, or vice-versa,   -->\n<!-- as the three consecutive single-quote characters are -->\n<!-- ambiguous.  So we opt for accuracy and use macros    -->\n<!-- that are precise and avoid ambiguity when adjacent.  -->\n<!-- Even if the LaTeX is less natural looking.           -->\n\n<!-- Quotation marks come in left and right variants. -->\n<!-- The lookup table is in pretext-common.xsl.       -->\n<xsl:template match=\"*\" mode=\"quote-character-latex\">\n    <xsl:param name=\"style\"/>\n    <xsl:param name=\"side\"/>\n    <xsl:variable name=\"latex-character\">\n        <xsl:for-each select=\"$quote-character-table\">\n            <xsl:value-of select=\"key('quote-character-key',\n                concat($style, '|', $side))/latex-character\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$latex-character != ''\">\n            <xsl:value-of select=\"$latex-character\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>\n                <xsl:text>PTX:BUG:  a quotation style (\"</xsl:text>\n                <xsl:value-of select=\"$style\"/>\n                <xsl:text>\") for a quote character in LaTeX was not recognized</xsl:text>\n            </xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Left Single Quote -->\n<xsl:template match=\"*\" mode=\"lsq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-latex\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-secondary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'left'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Right Single Quote -->\n<xsl:template match=\"*\" mode=\"rsq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-latex\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-secondary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'right'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Left (Primary) Quote -->\n<xsl:template match=\"*\" mode=\"lq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-latex\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-primary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'left'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Right (Double) Quote -->\n<xsl:template match=\"*\" mode=\"rq-character\">\n    <xsl:apply-templates select=\".\" mode=\"quote-character-latex\">\n        <xsl:with-param name=\"style\">\n            <xsl:apply-templates select=\".\" mode=\"get-quote-primary\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"side\" select=\"'right'\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Left Double Bracket -->\n<xsl:template name=\"ldblbracket-character\">\n    <xsl:text>\\textlbrackdbl{}</xsl:text>\n</xsl:template>\n\n<!-- Right Double Bracket -->\n<xsl:template name=\"rdblbracket-character\">\n    <xsl:text>\\textrbrackdbl{}</xsl:text>\n</xsl:template>\n\n<!-- Left Angle Bracket -->\n<xsl:template name=\"langle-character\">\n    <xsl:text>\\textlangle{}</xsl:text>\n</xsl:template>\n\n<!-- Right Angle Bracket -->\n<xsl:template name=\"rangle-character\">\n    <xsl:text>\\textrangle{}</xsl:text>\n</xsl:template>\n\n<!-- Vertical Bar -->\n<!-- Bringhurst: a \"pipe\" is a broken bar -->\n<!-- Exists as \\textbrokenbar             -->\n<xsl:template name=\"bar-character\">\n    <xsl:text>\\textbar{}</xsl:text>\n</xsl:template>\n\n<!-- Other Miscellaneous Symbols, Constructions -->\n\n<!-- Ellipsis (dots), for text, not math -->\n<xsl:template name=\"ellipsis-character\">\n    <xsl:text>\\textellipsis{}</xsl:text>\n</xsl:template>\n\n<!-- Midpoint -->\n<!-- A centered dot used sometimes like a decorative dash -->\n<!-- http://tex.stackexchange.com/questions/19180/which-dot-character-to-use-in-which-context -->\n<xsl:template name=\"midpoint-character\">\n    <xsl:text>\\textperiodcentered{}</xsl:text>\n</xsl:template>\n\n<!-- Swung Dash -->\n<!-- A decorative dash, like a tilde, but bigger, and centered -->\n<!-- http://andrewmccarthy.ie/2014/11/06/swung-dash-in-latex/  -->\n<xsl:template name=\"swungdash-character\">\n    <xsl:text>\\swungdash{}</xsl:text>\n</xsl:template>\n<!-- Protect the version of the macro appearing in titles -->\n<!-- This is an override of the base *template*           -->\n<xsl:template match=\"title//swungdash|shortitle//swungdash\">\n    <xsl:text>\\protect</xsl:text>\n    <xsl:call-template name=\"swungdash-character\"/>\n</xsl:template>\n\n<!-- Per Mille -->\n<!-- Or, per thousand, like a percent sign -->\n<xsl:template name=\"permille-character\">\n    <xsl:text>\\textperthousand{}</xsl:text>\n</xsl:template>\n\n<!-- Pilcrow -->\n<!-- Often used to mark the start of a paragraph -->\n<xsl:template name=\"pilcrow-character\">\n    <xsl:text>\\textpilcrow{}</xsl:text>\n</xsl:template>\n\n<!-- Section Mark -->\n<!-- The stylized double-S to indicate section numbers -->\n<xsl:template name=\"section-mark-character\">\n    <xsl:text>\\textsection{}</xsl:text>\n</xsl:template>\n\n<!-- Minus -->\n<!-- A hyphen/dash for use in text as subtraction or negation-->\n<xsl:template name=\"minus-character\">\n    <xsl:text>\\textminus{}</xsl:text>\n</xsl:template>\n\n<!-- Times -->\n<!-- A \"multiplication sign\" symbol for use in text -->\n<xsl:template name=\"times-character\">\n    <xsl:text>\\texttimes{}</xsl:text>\n</xsl:template>\n\n<!-- Solidus -->\n<!-- Fraction bar, not as steep as a forward slash -->\n<!-- This should not allow a linebreak, not tested -->\n<xsl:template name=\"solidus-character\">\n    <xsl:text>\\textfractionsolidus{}</xsl:text>\n</xsl:template>\n\n<!-- Obelus -->\n<!-- A \"division\" symbol for use in text -->\n<xsl:template name=\"obelus-character\">\n    <xsl:text>\\textdiv{}</xsl:text>\n</xsl:template>\n\n<!-- Plus/Minus -->\n<!-- The combined symbol -->\n<xsl:template name=\"plusminus-character\">\n    <xsl:text>\\textpm{}</xsl:text>\n</xsl:template>\n\n<!-- All Latin abbreviations are defined in -common    -->\n<!-- since they are largely very simple.  But we       -->\n<!-- implement the final period with a named template, -->\n<!-- so we can get better behavior from LaTeX, mostly  -->\n<!-- avoiding confusion with the end of a sentence.    -->\n\n<!-- \\@ following a period makes it an abbreviation, not the end of          -->\n<!-- a sentence. So use it for abbreviations which will not end a sentence   -->\n<!-- Best: \\makeatletter\\newcommand\\etc{etc\\@ifnextchar.{}{.\\@}}\\makeatother -->\n<!-- http://latex-alive.tumblr.com/post/827168808/                           -->\n<!-- correct-punctuation-spaces                                              -->\n<!-- https://tex.stackexchange.com/questions/22561/                          -->\n<!-- what-is-the-proper-use-of-i-e-backslash-at                              -->\n\n<xsl:template name=\"abbreviation-period\">\n    <xsl:text>.\\@</xsl:text>\n</xsl:template>\n\n<!-- Copyright symbol -->\n<!-- http://tex.stackexchange.com/questions/1676/             -->\n<!-- how-to-get-good-looking-copyright-and-registered-symbols -->\n<xsl:template name=\"copyright-character\">\n    <xsl:text>\\textcopyright{}</xsl:text>\n</xsl:template>\n\n<!-- Phonomark symbol -->\n<xsl:template name=\"phonomark-character\">\n    <xsl:text>\\textcircledP{}</xsl:text>\n</xsl:template>\n\n<!-- Copyleft symbol -->\n<xsl:template name=\"copyleft-character\">\n    <xsl:text>\\textcopyleft{}</xsl:text>\n</xsl:template>\n\n<!-- Registered symbol -->\n<xsl:template name=\"registered-character\">\n    <xsl:text>\\textregistered{}</xsl:text>\n</xsl:template>\n\n<!-- Trademark symbol -->\n<xsl:template name=\"trademark-character\">\n    <xsl:text>\\texttrademark{}</xsl:text>\n</xsl:template>\n\n<!-- Servicemark symbol -->\n<xsl:template name=\"servicemark-character\">\n    <xsl:text>\\textservicemark{}</xsl:text>\n</xsl:template>\n\n<!-- Degree -->\n<xsl:template name=\"degree-character\">\n    <xsl:text>\\textdegree{}</xsl:text>\n</xsl:template>\n\n<!-- Prime -->\n<!-- A construction such as  \\(^{\\prime}\\)  looks much better,     -->\n<!-- but will require a lot of extra care in the \"text-processing\" -->\n<!-- template since all this math-mode will need to be protected   -->\n<!-- at the outset.  Bringhurst opines that many text fonts lack   -->\n<!-- a prime and/or double-prime glyph, and LaTeX does not seem    -->\n<!-- to have any good way to realize them without using math-mode. -->\n<xsl:template name=\"prime-character\">\n    <xsl:text>\\textquotesingle{}</xsl:text>\n</xsl:template>\n\n<!-- Double Prime -->\n<xsl:template name=\"dblprime-character\">\n    <xsl:text>\\textquotesingle\\textquotesingle{}</xsl:text>\n</xsl:template>\n\n<!-- Characters for Tagging Equations -->\n\n<xsl:template name=\"tag-star\">\n    <xsl:text>\\textasteriskcentered</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"tag-dagger\">\n    <xsl:text>\\textdagger</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"tag-daggerdbl\">\n    <xsl:text>\\textdaggerdbl</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"tag-hash\">\n    <xsl:text>\\#</xsl:text>\n</xsl:template>\n\n<!-- AMS symbol designed for both text and math modes -->\n<xsl:template name=\"tag-maltese\">\n    <xsl:text>\\maltese</xsl:text>\n</xsl:template>\n\n<!-- Fill-in blank -->\n<!-- \\fillintext{} defined in preamble as semantic macro   -->\n<!-- Argument is intended number of characters             -->\n<xsl:template match=\"fillin[not(parent::m or parent::mrow)]\">\n    <xsl:variable name=\"characters\">\n        <xsl:choose>\n            <xsl:when test=\"@characters\">\n                <xsl:value-of select=\"@characters\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>10</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>\\fillintext{</xsl:text>\n    <xsl:value-of select=\"$characters\" />\n    <xsl:text>}</xsl:text>\n    <xsl:if test=\"@rows or @cols\">\n        <xsl:apply-templates select=\".\" mode=\"fillin-array\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Implication Symbols -->\n<!-- TODO: better names! -->\n<xsl:template match=\"imply\">\n    <xsl:text>$\\Rightarrow$</xsl:text>\n</xsl:template>\n<xsl:template match=\"implyreverse\">\n    <xsl:text>$\\Leftarrow$</xsl:text>\n</xsl:template>\n\n<!-- TeX, LaTeX via macros -->\n<!-- PreTeXt, XeLaTeX, XeTeX are in -common -->\n<xsl:template match=\"latex\">\n    <xsl:text>\\LaTeX{}</xsl:text>\n</xsl:template>\n<xsl:template match=\"tex\">\n    <xsl:text>\\TeX{}</xsl:text>\n</xsl:template>\n\n<!-- Foreign words/idioms -->\n<xsl:template match=\"foreign\">\n    <xsl:apply-templates select=\".\" mode=\"begin-language\" />\n    <xsl:text>\\textit{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"end-language\" />\n</xsl:template>\n\n<!-- ##### -->\n<!-- Icons -->\n<!-- ##### -->\n\n<xsl:template match=\"icon\">\n    <!-- the name attribute of the \"icon\" in text as a string -->\n    <xsl:variable name=\"icon-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n\n    <xsl:variable name=\"fa-name\">\n        <!-- for-each is just one node, but sets context for key() -->\n        <xsl:for-each select=\"$icon-table\">\n            <xsl:value-of select=\"key('icon-key', $icon-name)/@font-awesome\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:text>\\fa</xsl:text>\n    <xsl:call-template name=\"camel-case-font-name\">\n        <xsl:with-param name=\"text\" select=\"$fa-name\"/>\n    </xsl:call-template>\n    <xsl:text>{}</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"camel-case-font-name\">\n    <xsl:param name=\"text\"/>\n    <xsl:choose>\n        <xsl:when test=\"not(contains($text, '-'))\">\n            <xsl:value-of select=\"translate(substring($text, 1, 1), &LOWERCASE;, &UPPERCASE;)\"/>\n            <xsl:value-of select=\"substring($text, 2)\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"first-part\">\n                <xsl:value-of select=\"substring-before($text, '-')\"/>\n            </xsl:variable>\n            <xsl:value-of select=\"translate(substring($first-part, 1, 1), &LOWERCASE;, &UPPERCASE;)\"/>\n            <xsl:value-of select=\"substring($first-part, 2)\"/>\n            <xsl:call-template name=\"camel-case-font-name\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '-')\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ############## -->\n<!-- Keyboard Input -->\n<!-- ############## -->\n\n<xsl:template match=\"kbd[not(@name)]\">\n    <xsl:text>\\kbd{</xsl:text>\n        <xsl:call-template name=\"escape-text-to-latex\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"kbd[@name]\">\n    <!-- the name attribute of the \"kbd\" in text as a string -->\n    <xsl:variable name=\"kbdkey-name\">\n        <xsl:value-of select=\"@name\"/>\n    </xsl:variable>\n\n    <xsl:text>\\kbd{</xsl:text>\n        <!-- for-each is just one node, but sets context for key() -->\n        <xsl:for-each select=\"$kbdkey-table\">\n            <xsl:value-of select=\"key('kbdkey-key', $kbdkey-name)/@latex\" />\n        </xsl:for-each>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Biological Names -->\n<!-- ################ -->\n\n<!-- See a potentially cleaner template in the braille conversion -->\n\n<xsl:template match=\"taxon[not(genus) and not(species)]\">\n    <xsl:text>\\textit{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"taxon[genus or species]\">\n    <xsl:if test=\"genus\">\n        <xsl:text>\\textit{</xsl:text>\n        <xsl:apply-templates select=\"genus\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"genus and species\">\n        <xsl:text> </xsl:text>\n    </xsl:if>\n    <xsl:if test=\"species\">\n        <xsl:text>\\textit{</xsl:text>\n        <xsl:apply-templates select=\"species\"/>\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Titles of Publications -->\n<!-- 2018-02-05: Deprecate \"booktitle\" in favor of       -->\n<!-- \"pubtitle\".  Will still maintain all for a while.   -->\n<!-- CMOS:  When quoted in text or listed in a           -->\n<!-- bibliography, titles of books, journals, plays,     -->\n<!-- and other freestanding works are italicized; titles -->\n<!-- of articles, chapters, and other shorter works      -->\n<!-- are set in roman and enclosed in quotation marks.   -->\n<!-- \\pubtitle is a semantic macro defined only if       -->\n<!-- \"pubtitle\" or \"booktitle\" is employed.  Adjust if   -->\n<!-- deprecation is removed.                             -->\n<xsl:template match=\"pubtitle|booktitle\">\n    <xsl:text>\\pubtitle{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"articletitle\">\n    <xsl:apply-templates select=\".\" mode=\"lq-character\"/>\n    <xsl:apply-templates/>\n    <xsl:apply-templates select=\".\" mode=\"rq-character\"/>\n</xsl:template>\n\n<!-- ################-->\n<!-- Other Characters -->\n<!-- ################ -->\n\n<!-- These are specific instances of abstract templates        -->\n<!-- See the similar section of  pretext-common.xsl  for more -->\n\n<!-- TODO: Perhaps use LaTeX double and triple hyphen variants of  -->\n<!-- en-dash and em-dash under some option for human-variant LaTeX -->\n\n<xsl:template name=\"nbsp-character\">\n    <xsl:text>~</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"ndash-character\">\n    <xsl:text>\\textendash{}</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"mdash-character\">\n    <xsl:text>\\textemdash{}</xsl:text>\n</xsl:template>\n\n<!-- The abstract template for \"mdash\" consults a publisher option -->\n<!-- for thin space, or no space, surrounding an em-dash.  So the  -->\n<!-- \"thin-space-character\" is needed for that purpose, and does   -->\n<!-- not have an associated empty PTX element.                     -->\n\n<xsl:template name=\"thin-space-character\">\n    <xsl:text>\\,</xsl:text>\n</xsl:template>\n\n<!-- Sage Cells -->\n\n<!-- An abstract named template accepts input text and               -->\n<!-- output text, then wraps it for print, including output          -->\n<!-- But we do not write an environment if there isn't any content   -->\n<!-- So conceivably, this template can do nothing (ie an empty cell) -->\n<!-- As a named template, the context is a calling sage element,     -->\n<!-- this could be reworked and many of the parameters inferred      -->\n<xsl:template match=\"sage\" mode=\"sage-active-markup\">\n    <xsl:param name=\"in\" />\n    <xsl:param name=\"out\" />\n\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:if test=\"$in!=''\">\n        <xsl:text>\\begin{sageinput}&#xa;</xsl:text>\n        <xsl:value-of select=\"$in\" />\n        <xsl:text>\\end{sageinput}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"$out!=''\">\n        <xsl:text>\\begin{sageoutput}&#xa;</xsl:text>\n        <xsl:value-of select=\"$out\" />\n        <xsl:text>\\end{sageoutput}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- An abstract named template accepts input text -->\n<!-- and wraps it, untouchable by default in print -->\n<xsl:template name=\"sage-display-markup\">\n    <xsl:param name=\"in\" />\n    <xsl:if test=\"$in!=''\">\n        <xsl:text>\\begin{sageinput}&#xa;</xsl:text>\n        <xsl:value-of select=\"$in\" />\n        <xsl:text>\\end{sageinput}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Type: \"practice\"; not much point to show to a print reader  -->\n<!-- This overrides the default, which is a small annotated cell -->\n<xsl:template match=\"sage[@type='practice']\" />\n\n<!-- ##################### -->\n<!-- Programs and Consoles -->\n<!-- ##################### -->\n\n<!-- Program fragment, inline                                  -->\n<!-- Similar to a \"c\" element, but will attempt to syntax      -->\n<!-- highlight language in the same way as \"program\"           -->\n<xsl:template match=\"pf\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"listings-language\" />\n    </xsl:variable>\n    <xsl:if test=\"$language = ''\">\n        <xsl:message>PTX:WARNING: pf element without a language. Styling will be unpredictable.</xsl:message>\n    </xsl:if>\n    <!-- Need a single delimiter char not present in body -->\n    <xsl:variable name=\"delimiter\">\n        <xsl:call-template name=\"find-unused-character\">\n            <xsl:with-param name=\"string\" select=\".\"/>\n            <!-- Try a few ascii symbols before iterating through alphanumerics -->\n            <xsl:with-param name=\"charset\" select=\"concat('`~^|#',&SIMPLECHAR;)\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:text>\\programfragment{</xsl:text>\n    <xsl:value-of select=\"$language\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:value-of select=\"$delimiter\"/>\n    <xsl:call-template name=\"escape-latex-special-chars\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n        <!-- <xsl:value-of select=\".\" /> -->\n    <xsl:value-of select=\"$delimiter\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Both \"program\" and \"console\" are implemented as tcolorbox -->\n<!-- \"tcblisting\", based on the LaTeX \"lstlistings\" package.   -->\n<!-- As such they are tcolorboxes, amenable to manipulation.   -->\n<!-- When placed in a \"sidebyside\" they will word-wrap to fit  -->\n<!-- within the constraints imposed by the layout control of   -->\n<!-- the \"sidebyside\".  When naked, or in a \"listing\" element, -->\n<!-- they carry basic layout information, and as a tcolorbox   -->\n<!-- we can constrain them.  There is a commonality in the     -->\n<!-- approach here, but they are distinct.                     -->\n\n<!-- Embeddings first -->\n\n<xsl:template match=\"program[not(ancestor::sidebyside)]\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n\n    <xsl:apply-templates select=\".\" mode=\"program-inclusion\">\n        <xsl:with-param name=\"left-margin\" select=\"$layout/left-margin div 100\"/>\n        <xsl:with-param name=\"width\" select=\"$layout/width div 100\"/>\n        <xsl:with-param name=\"right-margin\" select=\"$layout/right-margin div 100\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"program[ancestor::sidebyside]\">\n    <xsl:apply-templates select=\".\" mode=\"program-inclusion\">\n        <!-- no margins, \"full\" width, constrained in tcbraster -->\n        <xsl:with-param name=\"left-margin\" select=\"0\"/>\n        <xsl:with-param name=\"width\" select=\"1\"/>\n        <xsl:with-param name=\"right-margin\" select=\"0\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"program\" mode=\"program-inclusion\">\n    <!-- parameters are real numbers (not percentages) -->\n    <xsl:param name=\"left-margin\"/>\n    <xsl:param name=\"width\"/>\n    <xsl:param name=\"right-margin\"/>\n\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"listings-language\" />\n    </xsl:variable>\n    <xsl:variable name=\"b-has-language\" select=\"not($language = '')\" />\n    <!-- a \"program\" element may be empty in a coding       -->\n    <!-- exercise, and just used to indicate an interactive -->\n    <!-- area supporting some language                      -->\n    <xsl:variable name=\"b-has-code\" select=\"not(normalize-space(code) = '') or preamble[@visible = 'yes'] or postamble[@visible = 'yes']\"/>\n    <xsl:if test=\"$b-has-code\">\n          <!-- build up full program text so we can apply sanitize-text to entire blob -->\n          <!-- and thus allow relative indentation for preamble/code/postamble         -->\n          <xsl:variable name=\"program-text\">\n              <xsl:if test=\"preamble[not(@visible = 'no')]\">\n                  <xsl:call-template name=\"substring-before-last\">\n                      <xsl:with-param name=\"input\" select=\"preamble\" />\n                      <xsl:with-param name=\"substr\" select=\"'&#xA;'\" />\n                  </xsl:call-template>\n              </xsl:if>\n              <xsl:call-template name=\"substring-before-last\">\n                  <xsl:with-param name=\"input\" select=\"code\" />\n                  <xsl:with-param name=\"substr\" select=\"'&#xA;'\" />\n              </xsl:call-template>\n              <xsl:text>&#xA;</xsl:text>\n              <xsl:if test=\"postamble[not(@visible = 'no')]\">\n                  <xsl:value-of select=\"substring-after(postamble,'&#xA;')\" />\n              </xsl:if>\n        </xsl:variable>\n        <!-- Style choices for numbering lines filter though into different    -->\n        <!-- \"tcblisting\" environments.  We set the environment in a variable, -->\n        <!-- so the begin/end are consistent.                                  -->\n        <xsl:variable name=\"program-env\">\n            <xsl:choose>\n                <xsl:when test=\"@line-numbers = 'yes'\">\n                    <xsl:text>programnumbered</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>program</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:text>\\begin{</xsl:text>\n        <xsl:value-of select=\"$program-env\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"$b-has-language\">\n                <xsl:value-of select=\"$language\" />\n            </xsl:when>\n            <!-- null language defined in preamble -->\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>}</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:value-of select=\"$left-margin\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:value-of select=\"$width\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:value-of select=\"$right-margin\"/>\n        <xsl:text>}&#xa;</xsl:text>\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\"$program-text\" />\n        </xsl:call-template>\n        <!-- Concluding line is still being parsed as verbatim text, -->\n        <!-- so *any* extra characters will produce a LaTeX warning  -->\n        <!-- starting with \"Character dropped after \\end{program}\"   -->\n        <!-- So...do not put a % (or anything else extra) here       -->\n        <xsl:text>\\end{</xsl:text>\n        <xsl:value-of select=\"$program-env\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Consoles, specialized code listings -->\n<!-- An interactive command-line session with a prompt, input and output -->\n\n<xsl:template match=\"console[not(ancestor::sidebyside)]\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <xsl:apply-templates select=\".\" mode=\"console-inclusion\">\n        <xsl:with-param name=\"left-margin\" select=\"$layout/left-margin div 100\"/>\n        <xsl:with-param name=\"width\" select=\"$layout/width div 100\"/>\n        <xsl:with-param name=\"right-margin\" select=\"$layout/right-margin div 100\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"console[ancestor::sidebyside]\">\n    <xsl:apply-templates select=\".\" mode=\"console-inclusion\">\n        <!-- no margins, \"full\" width, constrained in tcbraster -->\n        <xsl:with-param name=\"left-margin\" select=\"0\"/>\n        <xsl:with-param name=\"width\" select=\"1\"/>\n        <xsl:with-param name=\"right-margin\" select=\"0\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"console\" mode=\"console-inclusion\">\n    <!-- parameters are real numbers (not percentages) -->\n    <xsl:param name=\"left-margin\"/>\n    <xsl:param name=\"width\"/>\n    <xsl:param name=\"right-margin\"/>\n\n    <!-- ignore prompt, and pick it up in trailing input  -->\n    <xsl:text>\\begin{console}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$left-margin\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$width\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$right-margin\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"input|output\" />\n    <!-- Concluding line is still being parsed as verbatim text, -->\n    <!-- so *any* extra characters will produce a LaTeX warning  -->\n    <!-- starting with \"Character dropped after \\end{console}\"   -->\n    <!-- So...do not put a % (or anything else extra) here       -->\n    <xsl:text>\\end{console}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- match immediately preceding, only if a prompt:                   -->\n<!-- https://www.oxygenxml.com/archives/xsl-list/199910/msg00541.html -->\n<xsl:template match=\"console/input\">\n    <xsl:variable name=\"prompt\">\n        <xsl:apply-templates select=\".\" mode=\"determine-console-prompt\"/>\n    </xsl:variable>\n    <xsl:variable name=\"continuation\">\n        <xsl:apply-templates select=\".\" mode=\"determine-console-continuation\"/>\n    </xsl:variable>\n    <!-- We first sanitize left-margin, etc -->\n    <xsl:variable name=\"sanitized-text\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- Special case where input is empty/whitespace, in which -->\n    <!-- case the for loop finds no tokens -->\n    <xsl:if test=\"not(normalize-space($sanitized-text))\">\n        <xsl:call-template name=\"wrap-console-input-line\">\n            <xsl:with-param name=\"text\" select=\"normalize-space($sanitized-text)\" />\n            <xsl:with-param name=\"prefix\" select=\"$prompt\" />\n        </xsl:call-template>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Other cases are caught by the loop -->\n    <xsl:for-each select=\"str:tokenize($sanitized-text, '&#xa;')\">\n        <xsl:choose>\n            <xsl:when test=\"preceding-sibling::token\">\n                <xsl:call-template name=\"wrap-console-input-line\">\n                    <xsl:with-param name=\"text\" select=\".\" />\n                    <xsl:with-param name=\"prefix\" select=\"$continuation\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:call-template name=\"wrap-console-input-line\">\n                    <xsl:with-param name=\"text\" select=\".\" />\n                    <xsl:with-param name=\"prefix\" select=\"$prompt\" />\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Input helper to prepare one line of console input -->\n<!-- Including any needed \"prefix\" prompt/continuation -->\n<xsl:template name=\"wrap-console-input-line\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"prefix\" />\n    <!-- Prefix first, assumes does not exceed one line -->\n    <xsl:if test=\"not($prefix = '')\">\n        <xsl:call-template name=\"escape-console-prefix-output\">\n            <xsl:with-param name=\"text\" select=\"$prefix\" />\n        </xsl:call-template>\n    </xsl:if>\n    <!-- Then employ \\consoleinput macro on the line -->\n    <xsl:text>(*\\consoleinput{</xsl:text>\n        <xsl:call-template name=\"escape-console-input-to-latex\">\n            <xsl:with-param name=\"text\" select=\"$text\" />\n        </xsl:call-template>\n    <xsl:text>}*)</xsl:text>\n</xsl:template>\n\n<!-- Output code gets massaged to remove a left margin, -->\n<!-- leading blank lines, etc., then wrap as above-->\n<xsl:template match=\"console/output\">\n    <xsl:call-template name=\"wrap-console-output\">\n        <xsl:with-param name=\"text\">\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\">\n                    <xsl:call-template name=\"escape-console-prefix-output\">\n                        <xsl:with-param name=\"text\"  select=\".\"/>\n                    </xsl:call-template>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- TODO: consolidate/generalize next two templates -->\n\n<!-- Line-by-line  -->\n<xsl:template name=\"wrap-console-output\">\n    <xsl:param name=\"text\" />\n    <xsl:choose>\n        <xsl:when test=\"$text=''\" />\n        <xsl:otherwise>\n            <xsl:value-of select=\"substring-before($text, '&#xa;')\" />\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:call-template name=\"wrap-console-output\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Interactives -->\n<!-- ############ -->\n\n<!-- Geogebra -->\n<xsl:template match=\"interactive[@geogebra]\" mode=\"info-text\">\n    <xsl:text>Geogebra: \\href{https://www.geogebra.org/m/</xsl:text>\n    <xsl:value-of select=\"@geogebra\" />\n    <xsl:text>}{\\mono{www.geogebra.org/m/</xsl:text>\n    <xsl:value-of select=\"@geogebra\" />\n    <xsl:text>}}</xsl:text>\n</xsl:template>\n\n<!-- Desmos -->\n<xsl:template match=\"interactive[@desmos]\" mode=\"info-text\">\n    <xsl:text>Desmos: \\href{https://www.desmos.com/calculator/</xsl:text>\n    <xsl:value-of select=\"@desmos\" />\n    <xsl:text>}{\\mono{www.desmos.com/calculator/</xsl:text>\n    <xsl:value-of select=\"@desmos\" />\n    <xsl:text>}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- CalcPlot3D -->\n<xsl:template match=\"interactive[@platform='calcplot3d']\" mode=\"info-text\">\n    <!-- code/url too much to include! -->\n    <xsl:text>CalcPlot3D: \\href{https://c3d.libretexts.org/CalcPlot3D/index.html}</xsl:text>\n    <xsl:text>{\\mono{c3d.libretexts.org/CalcPlot3D/index.html}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- JSXGraph -->\n<xsl:template match=\"jsxgraph\">\n    <xsl:text>\\par\\smallskip\\centerline{A deprecated JSXGraph interactive demonstration goes here in interactive output.}\\smallskip&#xa;</xsl:text>\n</xsl:template>\n\n<!-- We sometimes need to explicitly leave LaTeX's vertical mode.     -->\n<!-- But we try to be judicious about using this.  Overuse makes      -->\n<!-- for bad spacing.                                                 -->\n<!-- Explanation:  http://tex.stackexchange.com/questions/22852/      -->\n<!-- function-and-usage-of-leavevmode                                 -->\n<!--   \"Use \\leavevmode for all macros which could be used at         -->\n<!--   the begin of the paragraph and add horizontal boxes            -->\n<!--   by themselves (e.g. in form of text).\"                         -->\n<!-- Potential alternate solution: write a leading \"empty\" \\mbox{}    -->\n<!-- http://tex.stackexchange.com/questions/171220/                   -->\n<!-- include-non-floating-graphic-in-a-theorem-environment            -->\n<xsl:template match=\"sidebyside\" mode=\"leave-vertical-mode\">\n    <xsl:if test=\"not(preceding-sibling::*[not(&SUBDIVISION-METADATA-FILTER;)]) and parent::paragraphs\">\n        <xsl:text>\\leavevmode\\par\\noindent%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"&FIGURE-LIKE;\" mode=\"environment-name\">\n    <xsl:variable name=\"fig-placement\">\n        <xsl:apply-templates select=\".\" mode=\"figure-placement\"/>\n    </xsl:variable>\n    <!-- prefix first -->\n    <xsl:choose>\n        <xsl:when test=\"$fig-placement = 'subnumber'\">\n            <xsl:text>sub</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$fig-placement = 'panel'\">\n            <xsl:text>panel</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$fig-placement = 'block'\"/>\n        <xsl:otherwise>\n            <xsl:message>PTX:BUG: figure placement not recognized, plase report me</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- always element name and suffix -->\n    <xsl:value-of select=\"local-name(.)\"/>\n    <!-- too many LaTeX names to clash with -->\n    <xsl:text>ptx</xsl:text>\n</xsl:template>\n\n<!-- Figures, Listings -->\n<!-- 0: enviroment name may be prefixed with \"sub\" -->\n<!-- 1: caption text                               -->\n<!-- 2: standard identifier for cross-references   -->\n<!-- 3: empty, or a hard-coded number from -common -->\n<xsl:template match=\"figure\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:if test=\"@landscape and $b-latex-print\">\n      <xsl:text>\\begin{sidewaysfigure}%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"caption-full\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:if test=\"$b-latex-hardcode-numbers\">\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n    </xsl:if>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"debug-numbering-check\"/>\n    <!-- images have margins and widths, so centering not needed -->\n    <!-- likewise, sidebyside and tabular will center themselves -->\n    <!-- Eventually everything in a figure should control itself -->\n    <!-- TODO: need to investigate more (poem? etc)              -->\n    <xsl:if test=\"self::figure and not(image or sidebyside or tabular)\">\n        <xsl:text>\\centering&#xa;</xsl:text>\n    </xsl:if>\n    <!-- TODO: process meta-data, then restrict contents -->\n    <!-- multiple, program|console                       -->\n    <xsl:apply-templates select=\"*\"/>\n    <!-- reserve space for the caption -->\n    <xsl:text>\\tcblower&#xa;</xsl:text>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:if test=\"@landscape and $b-latex-print\">\n      <xsl:text>\\end{sidewaysfigure}%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- Tables, (Named) Lists -->\n<!-- 0: enviroment name may be prefixed with \"sub\"  -->\n<!-- 1: title text, bolded here, not in environment -->\n<!-- 2: standard identifier for cross-references    -->\n<!-- 3: empty, or a hard-coded number from -common  -->\n<xsl:template match=\"table|list|listing\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:if test=\"@landscape and $b-latex-print\">\n      <xsl:text>\\begin{sidewaystable}%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:text>\\textbf{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>}{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}{</xsl:text>\n    <xsl:if test=\"$b-latex-hardcode-numbers\">\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n    </xsl:if>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"debug-numbering-check\"/>\n    <!-- A \"list\" has an introduction/conclusion, with a       -->\n    <!-- list of some type in-between, and these will all      -->\n    <!-- automatically word-wrap to fill the available width.  -->\n    <!-- TODO: process meta-data, then restrict contents -->\n    <!-- tabular, introduction|list|conclusion           -->\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:variable name=\"fig-placement\">\n        <xsl:apply-templates select=\".\" mode=\"figure-placement\"/>\n    </xsl:variable>\n    <!-- title goes in lower part when in a sidebyside -->\n    <xsl:if test=\"($fig-placement = 'subnumber') or ($fig-placement = 'panel')\">\n        <xsl:text>\\tcblower&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\end{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"environment-name\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:if test=\"@landscape and $b-latex-print\">\n        <xsl:text>\\end{sidewaystable}%&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- SideBySide Layouts -->\n<!-- ################## -->\n\n<!-- See xsl/pretext-common.xsl for descriptions of the  -->\n<!-- four modal templates which must be implemented here  -->\n<!-- The main templates for \"sidebyside\" and \"sbsgroup\"   -->\n<!-- are in xsl/pretext-common.xsl, as befits containers -->\n\n<!-- Note: Various end-of-line \"%\" are necessary to keep  -->\n<!-- headers, panels, and captions together as one unit   -->\n<!-- without a page -break, via the LaTeX                 -->\n<!-- \\nopagebreak=\\nopagebreak[4] command                 -->\n\n<xsl:template match=\"*\" mode=\"panel-panel\">\n    <xsl:param name=\"width\" />\n    <xsl:param name=\"valign\" />\n\n    <xsl:text>\\begin{sbspanel}{</xsl:text>\n    <xsl:value-of select=\"substring-before($width,'%') div 100\" />\n    <xsl:text>}</xsl:text>\n    <!-- 'top' is the sbspanel environment default -->\n    <!-- could generate brackets of optional       -->\n    <!-- argument outside of the choose            -->\n    <xsl:choose>\n        <xsl:when test=\"$valign = 'top'\" />\n        <xsl:when test=\"$valign = 'middle'\">\n            <xsl:text>[center]</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$valign = 'bottom'\">\n            <xsl:text>[bottom]</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <xsl:text>%&#xa;</xsl:text>\n    <!-- Realize each panel's object -->\n    <xsl:apply-templates select=\".\"/>\n    <xsl:text>\\end{sbspanel}%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- We take in all three rows of a LaTeX    -->\n<!-- table and package them up appropriately -->\n<xsl:template match=\"sidebyside\" mode=\"compose-panels\">\n    <xsl:param name=\"layout\" />\n    <xsl:param name=\"panels\" />\n\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:variable name=\"number-panels\" select=\"$layout/number-panels\" />\n    <xsl:variable name=\"left-margin\" select=\"$layout/left-margin\" />\n    <xsl:variable name=\"right-margin\" select=\"$layout/right-margin\" />\n    <xsl:variable name=\"space-width\" select=\"$layout/space-width\" />\n\n    <!-- TODO: Make \"sidebyside\" a 3-argument environment:          -->\n    <!-- headers, panels, captions.  Then put \"\\nopagebreak\"        -->\n    <!-- into the definition, so it is \"hidden\" and not in the body -->\n\n    <xsl:apply-templates select=\".\" mode=\"leave-vertical-mode\"/>\n    <xsl:text>\\begin{sidebyside}{</xsl:text>\n    <xsl:value-of select=\"$number-panels\" />\n    <xsl:text>}{</xsl:text>\n    <xsl:value-of select=\"substring-before($left-margin, '%') div 100\" />\n    <xsl:text>}{</xsl:text>\n    <xsl:value-of select=\"substring-before($right-margin, '%') div 100\" />\n    <xsl:text>}{</xsl:text>\n    <xsl:value-of select=\"substring-before($space-width, '%') div 100\" />\n    <xsl:text>}%&#xa;</xsl:text>\n    <!-- The main event -->\n    <xsl:value-of select=\"$panels\" />\n    <xsl:text>\\end{sidebyside}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- Possibility for a newpage -->\n<xsl:template match=\"sbsgroup\" mode=\"pre-sbsgroup\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Images -->\n<!-- ###### -->\n\n<!-- First: images in full-width contexts                   -->\n<!-- naked images go into a tcolorbox for layout control    -->\n<!-- figure/image (not in a sidebyside) into same tcolorbox -->\n<xsl:template match=\"image[not(ancestor::sidebyside)]\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:variable name=\"rtf-layout\">\n        <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n    </xsl:variable>\n    <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n    <xsl:text>\\begin{image}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$layout/left-margin div 100\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$layout/width div 100\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$layout/right-margin div 100\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"vertical-adjustment\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"image-inclusion\" />\n    <xsl:text>\\end{image}%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"image\" mode=\"vertical-adjustment\">\n    <xsl:choose>\n        <!-- When the image is the first thing in an exercisegroup (tcbraster) exercise -->\n        <!-- NB: ancestor::exercisegroup would catch too many cases                     -->\n        <xsl:when test=\"parent::statement/parent::exercise/parent::exercisegroup or parent::exercise/parent::exercisegroup and not(preceding-sibling::*)\">\n            <xsl:text>-0.5\\baselineskip</xsl:text>\n        </xsl:when>\n        <!-- When the image is the first thing in a list item, project-like, (not exercisegroup) exercise, or task -->\n        <xsl:when test=\"(parent::li|parent::statement|parent::exercise|parent::task|parent::*[PROJECT-FILTER]) and not(preceding-sibling::*)\">\n            <xsl:text>-1.5\\baselineskip</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Second: images already constrained by side-by-side panels -->\n<xsl:template match=\"image[ancestor::sidebyside]\">\n    <!-- get a newline if inside a \"stack\" -->\n    <xsl:if test=\"parent::stack and preceding-sibling::*\">\n        <xsl:text>\\par&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\noindent</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"image-inclusion\" />\n</xsl:template>\n\n<!-- Various versions of images have their width set to the         -->\n<!-- prevailing available width.  This is \\linewidth when:          -->\n<!-- full text width is available, width is constrained (like in    -->\n<!-- a list item), or width is constrained by a side-by-side panel. -->\n\n<!-- With full source specified, default to PDF format -->\n<xsl:template match=\"image[@source|@pi:generated]\" mode=\"image-inclusion\">\n    <xsl:variable name=\"extension\">\n        <xsl:call-template name=\"file-extension\">\n            <xsl:with-param name=\"filename\">\n                <xsl:choose>\n                    <xsl:when test=\"@pi:generated\">\n                        <xsl:value-of select=\"@pi:generated\" />\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"@source\" />\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:text>\\includegraphics[width=\\linewidth</xsl:text>\n    <xsl:if test=\"@rotate\">\n      <xsl:text>,angle=</xsl:text>\n      <xsl:value-of select=\"@rotate\"/>\n      <xsl:text>,origin=c</xsl:text>\n    </xsl:if>\n    <xsl:text>]{</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@pi:generated\">\n            <xsl:value-of select=\"$generated-directory\"/>\n            <xsl:value-of select=\"@pi:generated\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- empty when not using managed directories -->\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:value-of select=\"@source\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:if test=\"$extension = ''\">\n        <xsl:text>.pdf</xsl:text>\n    </xsl:if>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Asymptote graphics language  -->\n<!-- PDF's produced by mbx script -->\n<xsl:template match=\"image[asymptote]\" mode=\"image-inclusion\">\n    <!-- need image filename in two different scenarios -->\n    <xsl:variable name=\"image-file-name\">\n        <xsl:value-of select=\"$generated-directory\"/>\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:text>asymptote/</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\"asymptote\" mode=\"image-source-basename\"/>\n        <xsl:text>.pdf</xsl:text>\n    </xsl:variable>\n    <xsl:choose>\n      <xsl:when test=\"$b-asymptote-links\">\n        <xsl:variable name=\"image-html-url\">\n            <xsl:value-of select=\"$baseurl\"/>\n            <xsl:value-of select=\"$generated-directory\"/>\n            <xsl:if test=\"$b-managed-directories\">\n                <xsl:text>asymptote/</xsl:text>\n            </xsl:if>\n            <xsl:apply-templates select=\"asymptote\" mode=\"image-source-basename\"/>\n            <xsl:text>.html</xsl:text>\n        </xsl:variable>\n        <xsl:text>\\href{</xsl:text>\n        <xsl:value-of select=\"$image-html-url\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>{\\includegraphics[width=\\linewidth]</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:value-of select=\"$image-file-name\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>}</xsl:text>\n      </xsl:when>\n      <xsl:otherwise>\n        <xsl:text>\\includegraphics[width=\\linewidth]</xsl:text>\n        <xsl:text>{</xsl:text>\n        <xsl:value-of select=\"$image-file-name\"/>\n        <xsl:text>}</xsl:text>\n      </xsl:otherwise>\n    </xsl:choose>\n    <!-- end line universally -->\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Sage graphics plots              -->\n<!-- PDF's produced by pretext script -->\n<!-- PDF for 2d, PNG for 3d           -->\n<xsl:template match=\"image[sageplot]\" mode=\"image-inclusion\">\n    <xsl:text>\\includegraphics[width=\\linewidth]</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$generated-directory\"/>\n    <xsl:if test=\"$b-managed-directories\">\n        <xsl:text>sageplot/</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"sageplot\" mode=\"image-source-basename\"/>\n    <xsl:choose>\n        <xsl:when test=\"not(sageplot/@variant) or (sageplot/@variant = '2d')\">\n            <xsl:text>.pdf</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"sageplot/@variant = '3d'\">\n            <xsl:text>.png</xsl:text>\n        </xsl:when>\n        <!-- attribute errors found out in generation? -->\n        <xsl:otherwise/>\n    </xsl:choose>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Mermaid images                       -->\n<!-- PNGs produced by extraction process  -->\n<!-- into -bw and -color versions, hence  -->\n<!-- vary by print, or not                -->\n<xsl:template match=\"image[mermaid]\" mode=\"image-inclusion\">\n    <xsl:text>\\includegraphics[width=\\linewidth]</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$generated-directory\"/>\n    <xsl:if test=\"$b-managed-directories\">\n        <xsl:text>mermaid/</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"mermaid\" mode=\"image-source-basename\"/>\n    <xsl:text>.png</xsl:text>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- PreFigure diagrams always produced as PDF for LaTeX -->\n<xsl:template match=\"image[pf:prefigure]\" mode=\"image-inclusion\">\n    <xsl:text>\\includegraphics[width=\\linewidth]</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:value-of select=\"$generated-directory\"/>\n    <xsl:if test=\"$b-managed-directories\">\n        <xsl:text>prefigure/</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"pf:prefigure\" mode=\"image-source-basename\"/>\n    <xsl:text>.pdf</xsl:text>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- LaTeX Image Code (tikz, pgfplots, pstricks, etc) -->\n<!-- Clean indentation, drop into LaTeX               -->\n<!-- See \"latex-image-preamble\" for critical parts    -->\n<!-- Side-By-Side scaling happens there, could be here -->\n<!-- TODO: maybe these should be split into current v. legacy -->\n<xsl:template match=\"image[latex-image]\" mode=\"image-inclusion\">\n    <!-- tikz images go into a tcolorbox where \\linewidth is reset. -->\n    <!-- grouping reins in the scope of any local graphics settings -->\n    <!-- we resize what tikz produces, to fill a containing box     -->\n    <!-- changes to accomodate resizing to fit requested layouts -->\n    <xsl:text>\\resizebox{\\linewidth}{!}{%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"latex-image\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- This template is also used in \"extract-latex-image.xsl\" -->\n<!-- so check consequences there if this changes.            -->\n<xsl:template match=\"latex-image\">\n    <xsl:variable name=\"latex-code\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\">\n                <!-- 2025-08-27: we once considered a mix of text() -->\n                <!-- and \"label\" here.  Now we ignore the \"label\"   -->\n                <!-- and only use a \"value-of\" to get the LaTeX     -->\n                <!-- code describing the image.                     -->\n                <xsl:value-of select=\".\"/>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- All but a guaranteed trailing newline as last -->\n    <!-- character (which comes from \"sanitize-text\")  -->\n    <xsl:value-of select=\"substring($latex-code, 1, string-length($latex-code)-1)\"/>\n    <!-- A percent to control unwanted space, post-LaTeX  -->\n    <!-- code, then newline as visual formatting          -->\n    <xsl:text>%&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- EXPERIMENTAL -->\n<!-- use only for testing uses of QR codes          -->\n<!-- this WILL change and/or disappear              -->\n<!-- For LaTeX output only, place within an \"image\" -->\n<!-- @size - a length LaTeX understands             -->\n<!-- @href - realtive path or URL                   -->\n<xsl:template match=\"image[qrcode-trial]\">\n    <xsl:apply-templates select=\"qrcode-trial\" />\n</xsl:template>\n\n<xsl:template match=\"qrcode-trial\">\n    <xsl:text>{\\hypersetup{urlcolor=black}</xsl:text>\n    <xsl:text>\\qrcode[height=</xsl:text>\n    <xsl:value-of select=\"@size\" />\n    <xsl:text>]{</xsl:text>\n        <xsl:value-of select=\"@href\" />\n    <xsl:text>}}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############## -->\n<!-- Tabular Layout -->\n<!-- ############## -->\n\n<xsl:template match=\"tabular[not(ancestor::sidebyside)]\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:choose>\n        <!-- the \"natural width\" case, centered -->\n        <xsl:when test=\"not(@margins) and not(@width)\">\n            <xsl:choose>\n                <xsl:when test=\"parent::table\">\n                    <!-- center with no space more than \"tableptx\" provides -->\n                    <xsl:text>\\centering%&#xa;</xsl:text>\n                    <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- center with some vertical separation -->\n                    <xsl:text>\\begin{center}%&#xa;</xsl:text>\n                    <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\"/>\n                    <xsl:text>\\end{center}%&#xa;</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- an option for a long table here? -->\n        <!-- Or does it go with \"table\"?      -->\n        <xsl:otherwise>\n            <xsl:variable name=\"rtf-layout\">\n                <xsl:apply-templates select=\".\" mode=\"layout-parameters\" />\n            </xsl:variable>\n            <xsl:variable name=\"layout\" select=\"exsl:node-set($rtf-layout)\" />\n            <xsl:text>\\begin{tabularbox}</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:value-of select=\"$layout/left-margin div 100\"/>\n            <xsl:text>}</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:value-of select=\"$layout/width div 100\"/>\n            <xsl:text>}</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:value-of select=\"$layout/right-margin div 100\"/>\n            <xsl:text>}%&#xa;</xsl:text>\n            <!-- with layout control, scale down, but not up                      -->\n            <!-- https://tex.stackexchange.com/questions/327887/                  -->\n            <!-- resizing-or-scaling-table-only-if-it-is-larger-than-column-width -->\n            <xsl:text>\\resizebox{\\ifdim\\width > \\linewidth\\linewidth\\else\\width\\fi}{!}{%&#xa;</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\"/>\n            <xsl:text>}%&#xa;</xsl:text>\n            <xsl:text>\\end{tabularbox}%&#xa;</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"tabular[ancestor::sidebyside]\">\n    <!-- with layout control (inside sidebyside), scale down, but not up  -->\n    <!-- https://tex.stackexchange.com/questions/327887/                  -->\n    <!-- resizing-or-scaling-table-only-if-it-is-larger-than-column-width -->\n    <xsl:text>\\noindent\\resizebox{\\ifdim\\width > \\linewidth\\linewidth\\else\\width\\fi}{!}{%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"tabular-inclusion\"/>\n    <xsl:text>}%&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"tabular\" mode=\"tabular-inclusion\">\n    <!-- Abort if tabular's cols have widths summing to over 100% -->\n    <xsl:call-template name=\"cap-width-at-one-hundred-percent\">\n        <xsl:with-param name=\"nodeset\" select=\"col/@width\" />\n    </xsl:call-template>\n    <!-- Determine global, table-wide properties -->\n    <!-- set defaults here if values not given   -->\n    <xsl:variable name=\"table-top\">\n        <xsl:choose>\n            <xsl:when test=\"@top\">\n                <xsl:value-of select=\"@top\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"table-left\">\n        <xsl:choose>\n            <xsl:when test=\"@left\">\n                <xsl:value-of select=\"@left\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"table-bottom\">\n        <xsl:choose>\n            <xsl:when test=\"@bottom\">\n                <xsl:value-of select=\"@bottom\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"table-right\">\n        <xsl:choose>\n            <xsl:when test=\"@right\">\n                <xsl:value-of select=\"@right\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"table-halign\">\n        <xsl:choose>\n            <xsl:when test=\"@halign\">\n                <xsl:value-of select=\"@halign\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>left</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"table-valign\">\n        <xsl:choose>\n            <xsl:when test=\"@valign\">\n                <xsl:value-of select=\"@valign\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>middle</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- set environment based on breakability -->\n    <xsl:variable name=\"tabular-environment\">\n        <xsl:choose>\n            <xsl:when test=\"@break = 'yes'\">\n                <xsl:text>longtable</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>tabular</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- get a newline if inside a \"stack\" -->\n    <xsl:if test=\"parent::stack and preceding-sibling::*\">\n        <xsl:text>\\par&#xa;</xsl:text>\n    </xsl:if>\n    <!-- center within a sidebyside if by itself       -->\n    <!-- \\centering needs a closing \\par within a      -->\n    <!-- defensive group if it is to be effective      -->\n    <!-- https://tex.stackexchange.com/questions/23650 -->\n    <!-- Necessary for both sidebyside/tabular AND sidebyside/table/tabular -->\n    <!-- Does latter get a double-nested centering?                         -->\n    <!-- Maybe this goes away with tcolorbox?                               -->\n    <!-- NB: paired conditional way below!                                  -->\n    <xsl:if test=\"ancestor::sidebyside\">\n        <xsl:text>{\\centering%&#xa;</xsl:text>\n    </xsl:if>\n    <!-- Build latex column specification                         -->\n    <!--   vertical borders (left side, right side, three widths) -->\n    <!--   horizontal alignment (left, center, right)             -->\n    <xsl:text>{\\tabularfont%&#xa;</xsl:text>\n    <xsl:text>\\begin{</xsl:text>\n    <xsl:value-of select=\"$tabular-environment\"/>\n    <xsl:text>}{</xsl:text>\n    <!-- start with left vertical border -->\n    <xsl:call-template name=\"vrule-specification\">\n        <xsl:with-param name=\"width\" select=\"$table-left\" />\n    </xsl:call-template>\n    <xsl:choose>\n        <!-- Potential for individual column overrides    -->\n        <!--   Deduce number of columns from col elements -->\n        <!--   Employ individual column overrides,        -->\n        <!--   or use global table-wide values            -->\n        <!--   write alignment (mandatory)                -->\n        <!--   follow with right border (optional)        -->\n        <xsl:when test=\"col\">\n            <xsl:for-each select=\"col\">\n                <xsl:call-template name=\"halign-specification\">\n                    <xsl:with-param name=\"align\">\n                        <xsl:choose>\n                            <xsl:when test=\"@halign\">\n                                <xsl:value-of select=\"@halign\" />\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$table-halign\" />\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:with-param>\n                </xsl:call-template>\n                <xsl:call-template name=\"vrule-specification\">\n                    <xsl:with-param name=\"width\">\n                        <xsl:choose>\n                            <xsl:when test=\"@right\">\n                                <xsl:value-of select=\"@right\" />\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$table-right\" />\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:for-each>\n        </xsl:when>\n        <!-- No col specifiaction                                  -->\n        <!--   so default identically to global, table-wide values -->\n        <!--   first row determines the  number of columns         -->\n        <!--   write the alignment (mandatory)                     -->\n        <!--   follow with right border (optional)                 -->\n        <!-- TODO: error check each row for correct number of columns -->\n        <xsl:otherwise>\n            <xsl:variable name=\"ncols\" select=\"count(row[1]/cell) + sum(row[1]/cell[@colspan]/@colspan) - count(row[1]/cell[@colspan])\" />\n            <xsl:call-template name=\"duplicate-string\">\n                <xsl:with-param name=\"count\" select=\"$ncols\" />\n                <xsl:with-param name=\"text\">\n                    <xsl:call-template name=\"halign-specification\">\n                        <xsl:with-param name=\"align\" select=\"$table-halign\" />\n                    </xsl:call-template>\n                    <xsl:call-template name=\"vrule-specification\">\n                        <xsl:with-param name=\"width\" select=\"$table-right\" />\n                    </xsl:call-template>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>}</xsl:text>\n    <!-- column specification done -->\n    <!-- top horizontal rule is specified after column specification -->\n    <xsl:choose>\n        <!-- A col element might indicate top border customizations   -->\n        <!-- so we walk the cols to build a cline-style specification -->\n        <!-- $clines accumulates the specification when complicated   -->\n        <!-- For convenience, recursion passes along the $table-top   -->\n        <xsl:when test=\"col/@top\">\n            <xsl:apply-templates select=\"col[1]\" mode=\"column-cols\">\n                <xsl:with-param name=\"col-number\" select=\"1\" />\n                <xsl:with-param name=\"clines\" select=\"''\" />\n                <xsl:with-param name=\"table-top\" select=\"$table-top\"/>\n                <xsl:with-param name=\"start-run\" select=\"1\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- with no customization, we have one continuous rule (if at all) -->\n        <!-- use global, table-wide value of top specification              -->\n        <xsl:otherwise>\n            <xsl:call-template name=\"hrule-specification\">\n                <xsl:with-param name=\"width\" select=\"$table-top\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- now ready to build rows -->\n    <xsl:text>&#xa;</xsl:text>\n    <!-- table-wide values are needed to reconstruct/determine overrides -->\n    <!-- We *actively* enforce header rows being (a) initial, and        -->\n    <!-- (b) contiguous.  So following two-part match will do no harm    -->\n    <!-- to correct source, but will definitely harm incorrect source.   -->\n    <xsl:apply-templates select=\"row[@header]\">\n        <xsl:with-param name=\"table-left\" select=\"$table-left\" />\n        <xsl:with-param name=\"table-bottom\" select=\"$table-bottom\" />\n        <xsl:with-param name=\"table-right\" select=\"$table-right\" />\n        <xsl:with-param name=\"table-halign\" select=\"$table-halign\" />\n        <xsl:with-param name=\"table-valign\" select=\"$table-valign\" />\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\"row[not(@header)]\">\n        <xsl:with-param name=\"table-left\" select=\"$table-left\" />\n        <xsl:with-param name=\"table-bottom\" select=\"$table-bottom\" />\n        <xsl:with-param name=\"table-right\" select=\"$table-right\" />\n        <xsl:with-param name=\"table-halign\" select=\"$table-halign\" />\n        <xsl:with-param name=\"table-valign\" select=\"$table-valign\" />\n    </xsl:apply-templates>\n    <!-- mandatory finish, exclusive of any final row specifications -->\n    <xsl:text>\\end{</xsl:text>\n    <xsl:value-of select=\"$tabular-environment\"/>\n    <xsl:text>}&#xa;</xsl:text>\n    <!-- finish grouping for tabular font -->\n    <xsl:text>}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n    <xsl:if test=\"ancestor::sidebyside\">\n        <xsl:text>\\par}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- We recursively traverse the \"col\" elements of the \"column\" group         -->\n<!-- The cline specification is accumulated in the clines variable            -->\n<!-- A similar strategy is used to traverse the \"cell\" elements of each \"row\" -->\n<!-- but becomes much more involved, see the \"row-cells\" template             -->\n<xsl:template match=\"col\" mode=\"column-cols\">\n    <xsl:param name=\"col-number\" />\n    <xsl:param name=\"clines\" />\n    <xsl:param name=\"table-top\" />\n    <xsl:param name=\"start-run\" />\n\n    <!-- Look ahead one column, anticipating recursion           -->\n    <!-- but also probing for end of column group (no more cols) -->\n    <!-- An empty node-set will signal final \"col\" element       -->\n    <xsl:variable name=\"next-col\"  select=\"following-sibling::col[1]\"/>\n    <xsl:variable name=\"b-final-col\" select=\"not($next-col)\"/>\n    <!-- The desired top border styles for columns, both -->\n    <!-- current and next, so as to recognize a change   -->\n    <xsl:variable name=\"current-top\">\n        <xsl:choose>\n            <!-- cell specification -->\n            <xsl:when test=\"@top\">\n                <xsl:value-of select=\"@top\" />\n            </xsl:when>\n            <!-- inherited specification for top -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-top\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"next-top\">\n        <xsl:choose>\n            <!-- empty is sentinel for currently on the final -->\n             <!-- \"col\", and will not match any specification -->\n            <xsl:when test=\"$b-final-col\"/>\n            <!-- cell specification -->\n            <xsl:when test=\"$next-col/@top\">\n                <xsl:value-of select=\"$next-col/@top\" />\n            </xsl:when>\n            <!-- inherited specification for top -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-top\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Formulate any necessary update to    -->\n    <!-- cline information for the top border -->\n    <xsl:variable name=\"updated-cline\">\n        <!-- write current cline information -->\n        <xsl:value-of select=\"$clines\" />\n        <!-- is there a change, or end of column group, indicating need to flush -->\n        <xsl:if test=\"not($current-top = $next-top)\">\n            <xsl:choose>\n                <!-- end of column group and have never flushed -->\n                <!-- hence a uniform top border                 -->\n                <xsl:when test=\"$b-final-col and ($start-run = 1)\">\n                    <xsl:call-template name=\"hrule-specification\">\n                        <xsl:with-param name=\"width\" select=\"$current-top\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <!-- write cline for up-to, and including, current col -->\n                <!-- if current run is \"none\" nothing is written       -->\n                <xsl:when test=\"not($current-top = 'none')\">\n                    <xsl:call-template name=\"crule-specification\">\n                        <xsl:with-param name=\"width\" select=\"$current-top\" />\n                        <xsl:with-param name=\"start\" select=\"$start-run\" />\n                        <xsl:with-param name=\"finish\" select=\"$col-number\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <xsl:otherwise/>\n            </xsl:choose>\n        </xsl:if>\n    </xsl:variable>\n    <!-- recycle start-run if contiguous, else we have flushed  -->\n    <!-- a partial specification into accululated $clines, so   -->\n    <!-- restart at next \"col\".  If the new start is \"too big\", -->\n    <!-- then no matter, since recursion halts anyway           -->\n    <xsl:variable name=\"new-start-run\" >\n        <xsl:choose>\n            <xsl:when test=\"$current-top = $next-top\">\n                <xsl:value-of select=\"$start-run\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$col-number + 1\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- if this is the final \"col\" the recursion will end (next) -->\n    <!-- and we need to drop the accumulated cline specification  -->\n    <xsl:if test=\"$b-final-col\">\n        <xsl:value-of select=\"$updated-cline\"/>\n    </xsl:if>\n    <!-- Recursive call of this template on next \"col\",    -->\n    <!-- which if empty will be a no-op and recursion ends -->\n    <xsl:apply-templates select=\"$next-col\" mode=\"column-cols\">\n        <xsl:with-param name=\"col-number\" select=\"$col-number + 1\" />\n        <xsl:with-param name=\"clines\" select=\"$updated-cline\" />\n        <xsl:with-param name=\"table-top\" select=\"$table-top\" />\n        <xsl:with-param name=\"start-run\" select=\"$new-start-run\" />\n    </xsl:apply-templates>\n</xsl:template>\n\n<xsl:template match=\"row\">\n    <xsl:param name=\"table-left\" />\n    <xsl:param name=\"table-bottom\" />\n    <xsl:param name=\"table-right\" />\n    <xsl:param name=\"table-halign\" />\n    <xsl:param name=\"table-valign\" />\n    <!-- inherit global table-wide values    -->\n    <!-- or replace with row-specific values -->\n    <xsl:variable name=\"row-left\">\n        <xsl:choose>\n            <xsl:when test=\"@left\">\n                <xsl:value-of select=\"@left\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-left\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"row-bottom\">\n        <xsl:choose>\n            <xsl:when test=\"@bottom\">\n                <xsl:value-of select=\"@bottom\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-bottom\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Walking the row's cells, write contents and bottom borders -->\n    <xsl:apply-templates select=\"cell[1]\">\n        <xsl:with-param name=\"left-col\" select=\"parent::tabular/col[1]\" /> <!-- possibly empty -->\n        <xsl:with-param name=\"left-column-number\" select=\"1\" />\n        <xsl:with-param name=\"clines\" select=\"''\" />\n        <xsl:with-param name=\"start-run\" select=\"1\" />\n        <xsl:with-param name=\"table-left\" select=\"$table-left\"/>\n        <xsl:with-param name=\"table-bottom\" select=\"$table-bottom\"/>\n        <xsl:with-param name=\"table-right\" select=\"$table-right\" />\n        <xsl:with-param name=\"table-halign\" select=\"$table-halign\" />\n        <xsl:with-param name=\"table-valign\" select=\"$table-valign\" />\n        <xsl:with-param name=\"row-left\" select=\"$row-left\" />\n        <xsl:with-param name=\"row-bottom\" select=\"$row-bottom\" />\n    </xsl:apply-templates>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Recursively traverse the \"cell\" of a \"row\" while simultaneously       -->\n<!-- traversing the \"col\" elements of the column group, if present.        -->\n<!-- Inspect the (previously) built column specifications to see if        -->\n<!-- a \\multicolumn is necessary for an override on a table entry          -->\n<!-- Accumulate cline information to write at the end of the line/row.     -->\n<!-- Study the \"column-cols\" template for a less-involved template         -->\n<!-- that uses an identical strategy, if you want to see something simpler -->\n<!-- NB: column numbers are always accurate.  There may be either (1) no   -->\n<!-- tabular/col or (2) one tabular/col for each column of the table.  So  -->\n<!-- the $left-col parameter might  be empty through the entire recursion. -->\n<!-- NB: the $table-* and $row-* parameters could be recomputed inside     -->\n<!-- this template by looking outward and implmenting the same effective   -->\n<!-- override and defaults strategy.  They are left in place as a          -->\n<!-- historical artifact, and they might be just a smidge more efficient.  -->\n<xsl:template match=\"cell\">\n    <xsl:param name=\"left-col\" />\n    <xsl:param name=\"left-column-number\" />\n    <xsl:param name=\"clines\" />\n    <xsl:param name=\"start-run\" />\n    <xsl:param name=\"table-left\" />\n    <xsl:param name=\"table-bottom\" />\n    <xsl:param name=\"table-right\" />\n    <xsl:param name=\"table-halign\" />\n    <xsl:param name=\"table-valign\" />\n    <xsl:param name=\"row-left\" />\n    <xsl:param name=\"row-bottom\" />\n    <!-- A cell may span several columns, or default to just 1              -->\n    <!-- When colspan is not trivial, we identify the left and right ends   -->\n    <!-- of the span, both as col elements and as column numbers            -->\n    <!-- When colspan is trivial, the left and right versions are identical -->\n    <!-- Left is used for left border and for horizontal alignment          -->\n    <!-- Right is used for right border                                     -->\n    <xsl:variable name=\"column-span\">\n        <xsl:choose>\n            <xsl:when test=\"@colspan\">\n                <xsl:value-of select=\"@colspan\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>1</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"b-multiple-columns\" select=\"$column-span > 1\"/>\n    <xsl:variable name=\"right-column-number\" select=\"$left-column-number + $column-span - 1\"/>\n    <xsl:variable name=\"right-col\" select=\"(parent::row/parent::tabular/col)[$right-column-number]\"/>\n    <!-- recreate the column specification for a right border       -->\n    <!-- either a per-column value, or the global, table-wide value -->\n    <xsl:variable name=\"column-right\">\n        <xsl:choose>\n            <xsl:when test=\"$right-col/@right\">\n                <xsl:value-of select=\"$right-col/@right\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-right\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- determine a custom right border on a cell -->\n    <!-- else default to the column value          -->\n    <xsl:variable name=\"cell-right\">\n        <xsl:choose>\n            <xsl:when test=\"@right\">\n                <xsl:value-of select=\"@right\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$column-right\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Use cell attributes, or col attributes for horizontal alignment -->\n    <!-- recreate the column specification for horizontal alignment      -->\n    <!-- either a per-column value, or the global, table-wide value      -->\n    <xsl:variable name=\"column-halign\">\n        <xsl:choose>\n            <xsl:when test=\"$left-col/@halign\">\n                <xsl:value-of select=\"$left-col/@halign\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-halign\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- determine a custom horizontal alignment on a cell        -->\n    <!-- check for row override, else default to the column value -->\n    <xsl:variable name=\"cell-halign\">\n        <xsl:choose>\n            <xsl:when test=\"@halign\">\n                <xsl:value-of select=\"@halign\" />\n            </xsl:when>\n            <!-- look to the row -->\n            <xsl:when test=\"parent::row/@halign\">\n                <xsl:value-of select=\"parent::row/@halign\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$column-halign\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Use row attributes for vertical alignment                -->\n    <!-- recreate the row specification for vertical alignment    -->\n    <!-- either a per-row value, or the global, table-wide value  -->\n    <xsl:variable name=\"row-valign\">\n        <xsl:choose>\n            <xsl:when test=\"parent::row/@valign\">\n                <xsl:value-of select=\"parent::row/@valign\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$table-valign\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Look ahead to next cell, anticipating recursion     -->\n    <!-- but also probing for end of row (empty $next-cell), -->\n    <!-- which is needed when flushing cline specification.  -->\n    <!-- Also for identifying changes in border styles       -->\n    <xsl:variable name=\"next-cell\" select=\"following-sibling::cell[1]\"/>\n    <!-- Write the cell's contents -->\n    <!-- Wrap in a multicolumn in any of the following situations for    -->\n    <!-- the purposes of vertical boundary rules or content formatting:  -->\n    <!--    -if the left border, horizontal alignment or right border    -->\n    <!--         conflict with the column specification                  -->\n    <!--    -if we have a colspan                                        -->\n    <!--    -if there are paragraphs in the cell                         -->\n    <!-- $table-left and $row-left *can* differ on first use,            -->\n    <!-- but row-left is subsequently set to $table-left.                -->\n    <xsl:choose>\n        <xsl:when test=\"not($table-left = $row-left) or not($column-halign = $cell-halign) or not($column-right = $cell-right) or $b-multiple-columns or p\">\n            <xsl:text>\\multicolumn{</xsl:text>\n            <xsl:value-of select=\"$column-span\" />\n            <xsl:text>}{</xsl:text>\n            <!-- only place latex allows/needs a left border -->\n            <xsl:if test=\"$left-column-number = 1\">\n                <xsl:call-template name=\"vrule-specification\">\n                    <xsl:with-param name=\"width\" select=\"$row-left\" />\n                </xsl:call-template>\n            </xsl:if>\n            <xsl:choose>\n                <xsl:when test=\"p\">\n                    <!-- paragraph-valign-specification differs from valign-specification -->\n                    <xsl:call-template name=\"paragraph-valign-specification\">\n                        <xsl:with-param name=\"align\" select=\"$row-valign\" />\n                    </xsl:call-template>\n                    <xsl:text>{</xsl:text>\n                    <xsl:choose>\n                        <xsl:when test=\"$left-col/@width\">\n                            <xsl:variable name=\"width\">\n                                <xsl:call-template name=\"normalize-percentage\">\n                                    <xsl:with-param name=\"percentage\" select=\"$left-col/@width\" />\n                                </xsl:call-template>\n                            </xsl:variable>\n                            <xsl:value-of select=\"substring-before($width, '%') div 100\" />\n                        </xsl:when>\n                        <!-- If there is no $left-col/@width, silently use 20% as default -->\n                        <!-- We get some ill-formed WW exercises here, so a less-precise  -->\n                        <!-- warning is given on the author's source.                     -->\n                        <xsl:otherwise>\n                            <xsl:text>0.2</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                    <xsl:text>\\linewidth}</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:call-template name=\"halign-specification\">\n                        <xsl:with-param name=\"align\" select=\"$cell-halign\" />\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:call-template name=\"vrule-specification\">\n                <xsl:with-param name=\"width\" select=\"$cell-right\" />\n            </xsl:call-template>\n            <xsl:text>}{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"table-cell-wrapper\">\n                <xsl:with-param name=\"halign\" select=\"$cell-halign\" />\n                <xsl:with-param name=\"valign\" select=\"$row-valign\" />\n            </xsl:apply-templates>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"table-cell-wrapper\">\n                <xsl:with-param name=\"halign\" select=\"$cell-halign\" />\n                <xsl:with-param name=\"valign\" select=\"$row-valign\" />\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- more content to come, use tabular separator -->\n    <xsl:if test=\"$next-cell\">\n        <xsl:text>&amp;</xsl:text>\n    </xsl:if>\n    <!-- The desired bottom border style for this cell     -->\n    <xsl:variable name=\"current-bottom\">\n        <xsl:choose>\n            <!-- cell specification -->\n            <xsl:when test=\"@bottom\">\n                <xsl:value-of select=\"@bottom\" />\n            </xsl:when>\n            <!-- inherited specification for row -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$row-bottom\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- The desired bottom border style for the next cell     -->\n    <xsl:variable name=\"next-bottom\">\n        <xsl:choose>\n            <!-- end of row, no next cell, so      -->\n            <!-- bottom style signals change/flush -->\n            <xsl:when test=\"not($next-cell)\">\n                <xsl:text>undefined-bottom</xsl:text>\n            </xsl:when>\n            <!-- next cell's specification -->\n            <xsl:when test=\"$next-cell/@bottom\">\n                <xsl:value-of select=\"$next-cell/@bottom\" />\n            </xsl:when>\n            <!-- inherited specification for row -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$row-bottom\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- Formulate any necessary update to cline -->\n    <!-- information for the bottom border       -->\n    <xsl:variable name=\"updated-cline\">\n        <xsl:value-of select=\"$clines\" />\n        <!-- if there a change in bottom border, and always at end -->\n        <!-- of row, conclude the creation of a specification      -->\n        <xsl:if test=\"not($current-bottom = $next-bottom)\">\n            <xsl:choose>\n                <!-- end of row and have never flushed -->\n                <!-- hence a uniform bottom border     -->\n                <xsl:when test=\"not($next-cell) and ($start-run = 1)\">\n                    <xsl:call-template name=\"hrule-specification\">\n                        <xsl:with-param name=\"width\" select=\"$current-bottom\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <!-- write cline for up-to, and including, prior cell      -->\n                <!-- prior-bottom always lags, so never operate on cell #1 -->\n                <xsl:when test=\"not($current-bottom = 'none')\">\n                    <xsl:call-template name=\"crule-specification\">\n                        <xsl:with-param name=\"width\" select=\"$current-bottom\" />\n                        <xsl:with-param name=\"start\" select=\"$start-run\" />\n                        <xsl:with-param name=\"finish\" select=\"$right-column-number\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <xsl:otherwise/>\n            </xsl:choose>\n        </xsl:if>\n    </xsl:variable>\n    <!-- duplicate start of current border style or reset to next column -->\n    <xsl:variable name=\"new-start-run\">\n        <xsl:choose>\n            <xsl:when test=\"$current-bottom = $next-bottom\">\n                <xsl:value-of select=\"$start-run\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$right-column-number + 1\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <!-- Always attempt a recursive call.  If cells are exhausted, -->\n    <!-- $next-cell is empty/false and nothing happens here        -->\n    <!-- Leap forward to column element just beyond end of colspan -->\n    <xsl:apply-templates select=\"$next-cell\">\n        <xsl:with-param name=\"left-col\" select=\"$right-col/following-sibling::col[1]\" />\n        <xsl:with-param name=\"left-column-number\" select=\"$right-column-number + 1\" />\n        <xsl:with-param name=\"clines\" select=\"$updated-cline\" />\n        <xsl:with-param name=\"start-run\" select=\"$new-start-run\" />\n        <xsl:with-param name=\"table-left\" select=\"$table-left\" />\n        <xsl:with-param name=\"table-bottom\" select=\"$table-bottom\" />\n        <xsl:with-param name=\"table-right\" select=\"$table-right\" />\n        <xsl:with-param name=\"table-halign\" select=\"$table-halign\" />\n        <xsl:with-param name=\"table-valign\" select=\"$table-valign\" />\n        <xsl:with-param name=\"row-left\" select=\"$table-left\" />\n        <xsl:with-param name=\"row-bottom\" select=\"$row-bottom\" />\n    </xsl:apply-templates>\n\n    <!-- finish the row, dump cline info, etc -->\n    <xsl:if test=\"not($next-cell)\">\n        <xsl:choose>\n            <!-- \\tabularnewline is unambiguous, better than \\\\ -->\n            <!-- *any* line with decoration needs a conclusion  -->\n            <xsl:when test=\"not($updated-cline = '')\">\n                <xsl:text>\\tabularnewline</xsl:text>\n                <xsl:value-of select=\"$updated-cline\"/>\n            </xsl:when>\n            <!-- Test determines if there are more rows.         -->\n            <!-- Next row could begin with bare [ and LaTeX sees -->\n            <!-- the start of \\tabularnewline[] which would      -->\n            <!-- indicate the need for some unit of length for a -->\n            <!-- space, so we just appease the macro with a 0pt. -->\n            <!-- https://github.com/rbeezer/mathbook/issues/300  -->\n            <xsl:when test=\"parent::row/following-sibling::row\">\n                <xsl:text>\\tabularnewline[0pt]</xsl:text>\n            </xsl:when>\n            <!-- last row, no decoration, \\end{tabular} concludes-->\n            <xsl:otherwise/>\n         </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ############################ -->\n<!-- Table construction utilities -->\n<!-- ############################ -->\n\n<!-- Mostly translating PTX terms to LaTeX terms         -->\n<!-- Typically use these at the last moment,             -->\n<!-- while outputting, and thus use PTX terms internally -->\n\n<!-- Some utilities are defined in xsl/pretext-common.xsl -->\n\n<!-- \"halign-specification\" : param \"align\" -->\n<!--     left, right, center -> l, c, r     -->\n\n<!-- \"valign-specification\" : param \"align\" -->\n<!--     top, middle, bottom -> t, m, b     -->\n\n<!-- paragraph valign-specifications (p, m, b) are  -->\n<!-- different from (t, m, b) in pretext-common    -->\n\n<!-- paragraph halign-specifications (left, center, right, justify) -->\n<!-- converted to \\raggedright, \\centering, \\raggedleft, <empty>    -->\n\n<xsl:template name=\"paragraph-valign-specification\">\n    <xsl:param name=\"align\" />\n    <xsl:choose>\n        <xsl:when test=\"$align='top'\">\n            <xsl:text>p</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='middle'\">\n            <xsl:text>m</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='bottom'\">\n            <xsl:text>b</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: vertical alignment attribute not recognized: use top, middle, bottom</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template name=\"paragraph-halign-specification\">\n    <xsl:param name=\"align\" />\n    <xsl:choose>\n        <xsl:when test=\"$align='justify'\">\n            <xsl:text></xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='left'\">\n            <xsl:text>\\raggedright</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='center'\">\n            <xsl:text>\\centering</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$align='right'\">\n            <xsl:text>\\raggedleft</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: horizontal alignment attribute not recognized: use left, center, right, justify</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Translate vertical rule width to a LaTeX \"new\" column specification -->\n<xsl:template name=\"vrule-specification\">\n    <xsl:param name=\"width\" />\n    <xsl:choose>\n        <xsl:when test=\"$width='none'\">\n            <xsl:text></xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='minor'\">\n            <xsl:text>A</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='medium'\">\n            <xsl:text>B</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='major'\">\n            <xsl:text>C</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: tabular left or right attribute not recognized: use none, minor, medium, major</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Translate horizontal rule width to hrule terms -->\n<xsl:template name=\"hrule-specification\">\n    <xsl:param name=\"width\" />\n    <xsl:choose>\n        <xsl:when test=\"$width='none'\">\n            <xsl:text></xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='minor'\">\n            <xsl:text>\\hrulethin</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='medium'\">\n            <xsl:text>\\hrulemedium</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='major'\">\n            <xsl:text>\\hrulethick</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: tabular top or bottom attribute not recognized: use none, minor, medium, major</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Translate abbreviated horizontal rules to cline specifications -->\n<xsl:template name=\"crule-specification\">\n    <xsl:param name=\"width\" />\n    <xsl:param name=\"start\" />\n    <xsl:param name=\"finish\" />\n    <!-- style. thickness -->\n    <xsl:choose>\n        <xsl:when test=\"$width='none'\">\n            <xsl:text></xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='minor'\">\n            <xsl:text>\\crulethin</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='medium'\">\n            <xsl:text>\\crulemedium</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$width='major'\">\n            <xsl:text>\\crulethick</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: tabular top or bottom attribute not recognized: use none, minor, medium, major</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- span -->\n    <xsl:if test=\"not($width='none')\">\n        <xsl:text>{</xsl:text>\n        <xsl:value-of select=\"$start\" />\n        <xsl:text>-</xsl:text>\n        <xsl:value-of select=\"$finish\" />\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"cell\" mode=\"table-cell-wrapper\">\n    <xsl:param name=\"the-cell\" />\n    <xsl:param name=\"halign\" />\n    <xsl:param name=\"valign\" />\n\n    <!-- a cell of a header row needs to be bold -->\n    <xsl:variable name=\"b-header-row\" select=\"(parent::row/@header = 'yes') or (parent::row/@header = 'vertical')\"/>\n    <!-- and vertical text is a refinement -->\n    <xsl:variable name=\"b-vertical-header\" select=\"parent::row/@header = 'vertical'\"/>\n\n    <xsl:variable name=\"b-row-headers\" select=\"(parent::row/parent::tabular[@row-headers = 'yes'])\"/>\n    <xsl:variable name=\"b-first-cell\" select=\"not(preceding-sibling::cell)\"/>\n\n    <xsl:variable name=\"b-bold-face-cell\" select=\"$b-header-row or ($b-row-headers and $b-first-cell)\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"p\">\n            <!-- paragraph-halign-specification differs from halign-specification -->\n            <xsl:call-template name=\"paragraph-halign-specification\">\n                <xsl:with-param name=\"align\" select=\"$halign\" />\n            </xsl:call-template>\n            <!-- styling choice for interparagraph spacing within a table cell    -->\n            <xsl:if test=\"count(p) > 1\">\n                <xsl:text>\\setlength{\\parskip}{0.5\\baselineskip}</xsl:text>\n            </xsl:if>\n            <xsl:text>%&#xa;</xsl:text>\n            <xsl:apply-templates select=\"p\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:if test=\"$b-bold-face-cell\">\n                <xsl:text>{\\bfseries{}</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$b-vertical-header\">\n                <xsl:text>\\rotatebox{90}{</xsl:text>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"table-cell-content\">\n                <xsl:with-param name=\"halign\" select=\"$halign\" />\n                <xsl:with-param name=\"valign\" select=\"$valign\" />\n            </xsl:apply-templates>\n            <!-- a little space keeps text off a top rule -->\n            <xsl:if test=\"$b-vertical-header\">\n                <xsl:text>\\space}</xsl:text>\n            </xsl:if>\n            <xsl:if test=\"$b-bold-face-cell\">\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"cell\" mode=\"table-cell-content\">\n    <xsl:param name=\"halign\" />\n    <xsl:param name=\"valign\" />\n    <xsl:choose>\n        <xsl:when test=\"line\">\n            <!-- macro for multiline cell -->\n            <xsl:text>\\tablecelllines{</xsl:text>\n            <xsl:call-template name=\"halign-specification\">\n                <xsl:with-param name=\"align\" select=\"$halign\" />\n            </xsl:call-template>\n            <xsl:text>}{</xsl:text>\n            <xsl:call-template name=\"valign-specification\">\n                <xsl:with-param name=\"align\" select=\"$valign\" />\n            </xsl:call-template>\n            <xsl:text>}&#xa;</xsl:text>\n            <xsl:text>{</xsl:text>\n            <!-- adding \\textbf, \\bfseries not 100% effective here -->\n            <xsl:apply-templates select=\"line\" />\n            <xsl:text>}&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- the content of unstructured cell -->\n            <xsl:apply-templates/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ########################### -->\n<!-- Labels and Cross-References -->\n<!-- ########################### -->\n\n\n<!-- We have two schemes in place for marking, number-generation, and       -->\n<!-- cross-referencing of objects.  Our use of the  hyperref  package       -->\n<!-- allows for more expressive links which allow us to duplicate LaTeX     -->\n<!-- packages like \"cleverref\" and the base functionality of HTML.  We      -->\n<!-- could accomplish (nearly) all of this with the second scheme only, but -->\n<!-- we are following LaTeX's rules for numbering PreTeXt-wide, so the      -->\n<!-- first scheme provides good checks.                                     -->\n<!--                                                                        -->\n<!-- 1.  Traditional LaTeX \\label{}, \\ref{}                                 -->\n<!-- \\label marks a location.  If inside an item/object which LaTeX numbers -->\n<!-- \\naturally, then ref{} will generate that number.  In order to make an -->\n<!-- \\electronic PDF, we use the  hyperref  package, and specifically, the  -->\n<!-- \\hyperref[]{} command.  The string that associates these comes from    -->\n<!-- \\our \"unique-id\" template, often the @xml:id.  Example:              -->\n<!--                                                                        -->\n<!--   \\begin{theorem}\\label{foo}                                           -->\n<!--                                                                        -->\n<!--   \\hyperref[foo]{Theorem~\\ref{foo}}                                    -->\n<!--                                                                        -->\n<!-- Note: for print, we could use \"Theorem~\\ref{foo}\" just as easily and   -->\n<!-- not utilize  hyperref (presently, we use a hyperref \"hidelinks\" key)   -->\n<!--                                                                        -->\n<!-- 2.  Hyperref                                                           -->\n<!-- Some items are not numbered naturally by LaTeX, like a \"proof\".  Other -->\n<!-- items we number in different ways, such as a solo \"exercises\" division -->\n<!-- whose number is that of its containing division.  Some items are not   -->\n<!-- numbered at all, like a \"preface\".  Here we use \\hypertarget{}{} as    -->\n<!-- the marker, and \\hyperlink{}{} with custom text (title, hard-coded     -->\n<!-- number, etc) as the visual, clickable link.  The \"unique-id\" is used -->\n<!-- as before to link the two commands.  The second argument of            -->\n<!-- \\hypertarget can be text, but we uniformly leave it empty (a \\null     -->\n<!-- target text was unnecessary and visible, 2015-12-12).  Example:        -->\n<!--                                                                        -->\n<!--   \\begin{proof}\\hypertarget{foo}{}                                     -->\n<!--                                                                        -->\n<!--   \\hyperlink{foo}{Proof~2.4.17}                                        -->\n<!--                                                                        -->\n<!-- Note: for print, we could use \"Proof~2.4.17\" just as easily and not    -->\n<!-- not utilize  hyperref (presently, we use a hyperref \"hidelinks\" key)   -->\n<!--                                                                        -->\n<!-- Note: footnotes, \"fn\" are exceptional, see notes below                 -->\n\n<!-- ################## -->\n<!-- Unique Identifiers -->\n<!-- ################## -->\n\n<!-- We use the universal \"unique-id\" template to create strings -->\n<!-- identifying items in LaTeX output, as names and as pointers.  -->\n\n<!-- ################################ -->\n<!-- Labels (cross-reference targets) -->\n<!-- ################################ -->\n\n<!-- We assume traditional LaTeX  label/ref  system as the default, so      -->\n<!-- anything that we allow to be the target of a cross-reference AND LaTeX -->\n<!-- does not number automatically, we need to list in the \"false\"          -->\n<!-- template. Anything in this latter list, which can be cross-referenced  -->\n<!-- (by number or by title) will get a  \\hypertarget  via the \"label\"      -->\n<!-- template. Exceptions - \"book\" and \"article\" are carefully marked in    -->\n<!-- special ways, so inclusion here is not ever exercised, unless we made  -->\n<!-- some edits to employ this template in those special places. This list  -->\n<!-- here is everything numbered by PreTeXt, followed by targets that are   -->\n<!-- not numbered.                                                          -->\n\n<xsl:template match=\"*\" mode=\"xref-as-ref\">\n    <xsl:value-of select=\"true()\" />\n</xsl:template>\n\n<!-- Any target of a PreTeXt cross-reference, which is not naturally -->\n<!-- numbered by a LaTeX \\label{} command, needs to go here.         -->\n<xsl:template match=\"exercises//exercise|worksheet//exercise|reading-questions//exercise|biblio|biblio/note|&PROOF-LIKE;|case|ol/li|dl/li|&SOLUTION-LIKE;|subexercises|exercisegroup|p|paragraphs|blockquote|contributor|colophon|book|article\" mode=\"xref-as-ref\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n<!-- A specialized division in an unstructured division may  -->\n<!-- not be numbered correctly via LaTeX's label/ref system, -->\n<!-- so we will use the hypertarget/hyperlink system         -->\n<!-- NB: template returns strings \"true\" or \"false\"          -->\n<xsl:template  match=\"exercises|reading-questions|glossary|references|worksheet|handout|solutions\" mode=\"xref-as-ref\">\n    <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"label\">\n    <xsl:variable name=\"xref-as-ref\">\n        <xsl:apply-templates select=\".\" mode=\"xref-as-ref\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$xref-as-ref = 'true'\">\n            <xsl:text>\\label{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <!-- Objects cross-referenced outside of LaTeX's usual     -->\n        <!-- scheme need a \\hypertarget, but for page numbers      -->\n        <!-- in cross-references, we need a traditional label.     -->\n        <xsl:otherwise>\n            <xsl:if test=\"$b-pageref\">\n                <xsl:text>\\label{</xsl:text>\n                <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n                <xsl:text>}{}</xsl:text>\n            </xsl:if>\n            <xsl:text>\\hypertarget{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}{}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- We sometimes use the presence of @xml:id to indicate that an     -->\n<!-- author intends an element to be the target of a cross-reference, -->\n<!-- and then *elect* to place a label.                               -->\n<xsl:template match=\"*\" mode=\"optional-label\">\n    <xsl:if test=\"@xml:id\">\n        <xsl:apply-templates select=\".\" mode=\"label\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- An extraordinary template produces labels for exercise components -->\n<!-- (hint, answer, solution) displayed in solution lists (via the     -->\n<!-- \"solutions\" element).  The purpose is to allow the original       -->\n<!-- version of an exercise to point to solutions elsewhere.           -->\n<!-- The suffix is general-purpose, but is intended now to be          -->\n<!-- \"main\" or \"back\", depending on where the solution is located.     -->\n<xsl:template match=\"&SOLUTION-LIKE;\" mode=\"unique-id-duplicate\">\n    <xsl:param name=\"suffix\" select=\"'bad-suffix'\"/>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>-</xsl:text>\n    <xsl:value-of select=\"$suffix\"/>\n</xsl:template>\n\n\n<!-- ################ -->\n<!-- Cross-References -->\n<!-- ################ -->\n\n<!-- Much of the cross-reference mechanism is implemented in the common     -->\n<!-- routines, here we need to implement two abstract templates which are   -->\n<!-- called from those routines. First we generate a number, which for      -->\n<!-- LaTeX may be the abstract representation of a \\ref{} with a string     -->\n<!-- identifier.  This goes back to the common routines and is used to      -->\n<!-- fashion the entire link text.  This is the $content variable below.    -->\n<!-- From this the actual \\hyperref or \\hypertarget is made. Almost always, -->\n<!-- across PreTeXt, the \"xref-number\" template will return the number of   -->\n<!-- an item as computed in the -common routines.  However, to maintain     -->\n<!-- fidelity with LaTeX's automatic numbering system, we create  \\ref{}    -->\n<!-- as often as possible. -->\n<!--                                                                        -->\n<!-- This is the implementation of an abstract template, creating \\ref{} by -->\n<!-- default. We check if a part number is needed to prevent ambiguity. The -->\n<!-- exceptions above should be either (a) not numbered, or (b) numbered in -->\n<!-- ways LaTeX cannot, so the union of the match critera here should be    -->\n<!-- the list above.  Or said differently, a new object needs to preserve   -->\n<!-- this union property across the various \"xref-number\" templates.        -->\n<!-- See xsl/pretext-common.xsl for more info.                             -->\n\n<xsl:template match=\"*\" mode=\"xref-number\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n\n    <xsl:apply-templates select=\".\" mode=\"xref-number-latex\">\n        <xsl:with-param name=\"xref\" select=\"$xref\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Tasks have a structure number from the enclosing project   -->\n<!-- and a serial number from the enumitem package on the lists -->\n<!-- We compose the two LaTeX \\ref{}                            -->\n<xsl:template match=\"task\" mode=\"xref-number\">\n    <!-- ancestors, strip tasks, get number of next enclosure -->\n    <xsl:apply-templates select=\"ancestor::*[not(self::task)][1]\" mode=\"xref-number\" />\n    <xsl:text>.</xsl:text>\n    <!-- task always gets a number, but we have to avoid recursion -->\n    <!-- that would result by just getting a \\ref from xref-number -->\n    <xsl:text>{\\xreffont\\ref{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}}</xsl:text>\n</xsl:template>\n\n<!-- Straightforward exception, simple implementation,  -->\n<!-- when an \"mrow\" of display mathematics is tagged    -->\n<!-- with symbols not numbers                           -->\n<xsl:template match=\"mrow[@tag]\" mode=\"xref-number\">\n    <xsl:text>{\\xreffont\\ref{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}}</xsl:text>\n</xsl:template>\n\n<!-- Same for a bare \"md\" whose manufactured \"mrow\" carries a @tag; -->\n<!-- the \\label{} lives on the \"md\", so \\ref{} resolves to its \\tag -->\n<xsl:template match=\"md[@pi:authored-one-line and mrow/@tag]\" mode=\"xref-number\">\n    <xsl:text>{\\xreffont\\ref{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n    <xsl:text>}}</xsl:text>\n</xsl:template>\n\n<!-- These exceptions are unnumbered, and are just handled explicitly, -->\n<!-- along with a check, the template produces *nothing*               -->\n<xsl:template match=\"p|paragraphs|blockquote|contributor|colophon|book|article\" mode=\"xref-number\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n\n    <!-- number is necessary only for a checking mechanism -->\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:if test=\"not($the-number = '')\">\n        <xsl:message>PTX:BUG:     LaTeX conversion thinks an item is not numbered, but common routines do produce a number.  The \"xref\" is</xsl:message>\n        <xsl:apply-templates select=\"$xref\" mode=\"location-report\" />\n        <xsl:message>             The target is</xsl:message>\n        <xsl:apply-templates select=\".\" mode=\"location-report\" />\n    </xsl:if>\n</xsl:template>\n\n<!-- Now we have items that PreTeXt numbers itself, in ways LaTeX does not. -->\n<!-- \"fn\" is exceptional - the \\label\\ref mechanism works well, providing   -->\n<!-- local numbers where born (both on the same page), but we need to       -->\n<!-- inlude \"fn\" at the end of this template so that cross-references get   -->\n<!-- fully-qualified numbers in the link text.                              -->\n<!--                                                                        -->\n<!-- Note: objectives are one-per-subdivision, and precede the              -->\n<!-- introduction, so the LaTeX \\ref{} mechanism assigns the correct        -->\n<!-- number - that of the enclosing subdivision                             -->\n<xsl:template match=\"exercises//exercise|worksheet//exercise|reading-questions//exercise|biblio|biblio/note|&PROOF-LIKE;|case|ol/li|dl/li|&SOLUTION-LIKE;|&DISCUSSION-LIKE;|exercisegroup|fn\" mode=\"xref-number\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n\n    <xsl:apply-templates select=\".\" mode=\"xref-number-hardcoded\">\n        <xsl:with-param name=\"xref\" select=\"$xref\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A specialized division in an unstructured division may  -->\n<!-- not be numbered correctly via LaTeX's label/ref system, -->\n<!-- so we will use the hypertarget/hyperlink system         -->\n<!-- This template just copies the gut of two above, perhaps -->\n<!-- there should be two utility templates that each get     -->\n<!-- called twice overall.                                   -->\n<xsl:template  match=\"exercises|reading-questions|glossary|references|worksheet|handout|solutions\" mode=\"xref-number\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n\n    <xsl:variable name=\"is-numbered\">\n        <xsl:apply-templates select=\".\" mode=\"is-specialized-own-number\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$is-numbered = 'true'\">\n            <xsl:apply-templates select=\".\" mode=\"xref-number-latex\">\n                <xsl:with-param name=\"xref\" select=\"$xref\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"xref-number-hardcoded\">\n                <xsl:with-param name=\"xref\" select=\"$xref\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Two utility routines generate an \"xref number\" in a   -->\n<!-- traditional way or in a hyperref way.  These are used -->\n<!-- above in at least two places each.                    -->\n\n<!-- A hardcoded number respecting the necessity of parts -->\n<xsl:template  match=\"*\" mode=\"xref-number-hardcoded\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n\n    <xsl:variable name=\"needs-part-prefix\">\n        <xsl:apply-templates select=\".\" mode=\"crosses-part-boundary\">\n            <xsl:with-param name=\"xref\" select=\"$xref\" />\n        </xsl:apply-templates>\n    </xsl:variable>\n    <!-- Hard-coded can use a space that LaTeX gobbles up -->\n    <xsl:text>{\\xreffont </xsl:text>\n    <xsl:if test=\"$needs-part-prefix = 'true'\">\n        <xsl:apply-templates select=\"ancestor::part\" mode=\"serial-number\" />\n        <xsl:text>.</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- A LaTeX \\ref (number) respecting the necessity of parts -->\n<xsl:template  match=\"*\" mode=\"xref-number-latex\">\n    <xsl:param name=\"xref\" select=\"/..\" />\n\n    <!-- number is necessary only for a checking mechanism -->\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"number\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"not($the-number = '')\">\n            <!-- no matter the \"if\" a \\ref follows -->\n            <xsl:text>{\\xreffont</xsl:text>\n            <!-- check if part prefix is needed -->\n            <xsl:variable name=\"needs-part-prefix\">\n                <xsl:apply-templates select=\".\" mode=\"crosses-part-boundary\">\n                    <xsl:with-param name=\"xref\" select=\"$xref\" />\n                </xsl:apply-templates>\n            </xsl:variable>\n            <!-- if so, append prefix with separator -->\n            <xsl:if test=\"$needs-part-prefix = 'true'\">\n                <xsl:text>\\ref{</xsl:text>\n                <xsl:apply-templates select=\"ancestor::part\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n                <xsl:text>.</xsl:text>\n            </xsl:if>\n            <!-- and always, a representation for the text of the xref -->\n            <xsl:text>\\ref{</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"unique-id\" />\n            <xsl:text>}</xsl:text>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:WARNING: there appears to be an \"xref\" by number to an item (of type \"<xsl:value-of select=\"local-name(.)\" />\") without a number (or there is a bug).  The \"xref\" is</xsl:message>\n            <xsl:apply-templates select=\"$xref\" mode=\"location-report\" />\n            <xsl:message>             The target is</xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- This template actually manufactures the link.  When the link lives in  -->\n<!-- a title, the link text is just reproduced.  If the number is hard-     -->\n<!-- coded, fine.  If the number is obtained by a \\ref, we use the starred  -->\n<!-- form to prevent some link-inside-a-link confusion.  Some internet      -->\n<!-- sites suggest maybe we should just use the *-form universally, though  -->\n<!-- that would make the LaTex source a bit less portable?  This is where   -->\n<!-- we could use \"latex.print\" to output the $content variable with no     -->\n<!-- linking, perhaps making a better PDF?                                  -->\n<!--                                                                        -->\n<!-- Note that the \"xref-as-ref\" template is needed here to accomodate the  -->\n<!-- $target's characteristics.  Also, this template then does not need to  -->\n<!-- be edited.                                                             -->\n<xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"target\" select=\"/..\" />\n    <xsl:param name=\"content\" select=\"'MISSING LINK CONTENT'\"/>\n\n    <xsl:variable name=\"xref-as-ref\">\n        <xsl:apply-templates select=\"$target\" mode=\"xref-as-ref\" />\n    </xsl:variable>\n    <xsl:choose>\n        <!-- inactive in titles, just text               -->\n        <!-- With protection against incorrect, sloppy   -->\n        <!-- matches, we sneak in the starred version    -->\n        <!-- of \\ref{} so as to get a number for a label -->\n        <!-- in a cross-references, not an active link   -->\n        <xsl:when test=\"ancestor::title|ancestor::subtitle\">\n            <xsl:variable name=\"active-ref\">\n                <xsl:text>\\ref{</xsl:text>\n                <xsl:apply-templates select=\"$target\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n            </xsl:variable>\n            <xsl:variable name=\"inactive-ref\">\n                <xsl:text>\\ref*{</xsl:text>\n                <xsl:apply-templates select=\"$target\" mode=\"unique-id\" />\n                <xsl:text>}</xsl:text>\n            </xsl:variable>\n            <xsl:value-of select=\"str:replace($content, $active-ref, $inactive-ref)\" />\n        </xsl:when>\n        <xsl:when test=\"$xref-as-ref='true'\">\n            <xsl:text>\\hyperref[</xsl:text>\n            <xsl:apply-templates select=\"$target\" mode=\"unique-id\" />\n            <xsl:text>]{</xsl:text>\n            <xsl:if test=\"$latex-link-highlight != 'none'\">\n                <xsl:text>\\linkhilite{</xsl:text>\n            </xsl:if>\n            <xsl:value-of select=\"$content\" />\n            <xsl:if test=\"$latex-link-highlight != 'none'\">\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\hyperlink{</xsl:text>\n            <xsl:apply-templates select=\"$target\" mode=\"unique-id\" />\n            <xsl:text>}{</xsl:text>\n            <xsl:if test=\"$latex-link-highlight != 'none'\">\n                <xsl:text>\\linkhilite{</xsl:text>\n            </xsl:if>\n            <xsl:value-of select=\"$content\" />\n            <xsl:if test=\"$latex-link-highlight != 'none'\">\n                <xsl:text>}</xsl:text>\n            </xsl:if>\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"xref|&PROOF-LIKE;\" mode=\"latex-page-number\">\n    <xsl:param name=\"target\"/>\n\n    <xsl:choose>\n        <!-- looks bad when bibliographic number gets wrapped in [] -->\n        <!-- and the number should suffice on its own               -->\n        <xsl:when test=\"$target/self::biblio\"/>\n        <!-- and trailing a () for an equation number is overkill -->\n        <xsl:when test=\"$target/self::mrow|$target/self::md\"/>\n        <!-- and it is really bad for an xref inside a title -->\n        <xsl:when test=\"ancestor::title\"/>\n        <!-- off by default electronic PDF, -->\n        <!-- or on by default for print PDF -->\n        <xsl:when test=\"not($b-pageref)\"/>\n        <!-- OK, requested and helps, let's add it -->\n        <xsl:otherwise>\n            <xsl:text>, p.\\,\\pageref{</xsl:text>\n            <xsl:apply-templates select=\"$target\" mode=\"unique-id\"/>\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- Languages, Scripts -->\n<!-- ################## -->\n\n<!-- TODO: the @xml:lang attribute serves more than one purpose. -->\n<!-- For LaTeX it is both localization of terms (\"Theorem\"),     -->\n<!-- especially in multilingual documents or translations, but   -->\n<!-- also a selection of necessary fonts/glyphs/scripts.  We     -->\n<!-- might wish for a more robust method of determing which      -->\n<!-- languages have supported fonts than just an empty return    -->\n<!-- from the \"country-to-language\" template.                    -->\n<!-- TODO: these would be more XSLT-ish if there were wrapper    -->\n<!-- templates rather than a begin template and an end template. -->\n\n<!-- Absent @xml:lang, do nothing -->\n<xsl:template match=\"*\" mode=\"begin-language\" />\n<xsl:template match=\"*\" mode=\"end-language\" />\n\n<!-- More specifically, change language                -->\n<!-- This assumes element is enabled for this behavior -->\n<xsl:template match=\"*[@xml:lang]\" mode=\"begin-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"country-to-language\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($language = '')\">\n        <xsl:text>\\begin{</xsl:text>\n        <xsl:value-of select=\"$language\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"*[@xml:lang]\" mode=\"end-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"country-to-language\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($language = '')\">\n        <xsl:text>\\end{</xsl:text>\n        <xsl:value-of select=\"$language\"/>\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Even more specifically, we provide an inline version -->\n<!-- This should be more readable in LaTex source         -->\n<xsl:template match=\"foreign[@xml:lang]\" mode=\"begin-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"country-to-language\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($language = '')\">\n        <xsl:text>\\text</xsl:text>\n        <xsl:value-of select=\"$language\"/>\n        <xsl:text>{</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"foreign[@xml:lang]\" mode=\"end-language\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"country-to-language\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($language = '')\">\n        <xsl:text>}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Assumes element has an xml:lang attribute      -->\n<!-- Translates a country-region code to a language -->\n<xsl:template match=\"*[@xml:lang]\" mode=\"country-to-language\">\n    <xsl:choose>\n        <xsl:when test=\"@xml:lang='el'\">\n            <xsl:text>greek</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@xml:lang='ko-KR'\">\n            <xsl:text>korean</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@xml:lang='hu-HU'\">\n            <xsl:text>magyar</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@xml:lang='ru-RU'\">\n            <xsl:text>russian</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@xml:lang='es-ES'\">\n            <xsl:text>spanish</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@xml:lang='vi-VN'\">\n            <xsl:text>vietnamese</xsl:text>\n        </xsl:when>\n        <!-- no supported language, return nothing -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ################### -->\n<!-- Structured by Lines -->\n<!-- ################### -->\n\n<!-- The LaTeX-specific line separator for use by  -->\n<!-- the abstract template for a \"line\" elent used -->\n<!-- to (optionally) structure certain elements.   -->\n\n<xsl:template name=\"line-separator\">\n    <xsl:text>\\\\&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ###### -->\n<!-- Poetry -->\n<!-- ###### -->\n\n<xsl:template match=\"poem\">\n    <xsl:apply-templates select=\".\" mode=\"newpage\"/>\n    <xsl:text>\\begin{poem}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"optional-label\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:text>\\poemTitle{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n    <xsl:text>}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"stanza|idx\"/>\n    <xsl:apply-templates select=\"author\" />\n    <xsl:text>\\end{poem}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"poem/author\">\n    <xsl:variable name=\"alignment\">\n        <xsl:apply-templates select=\".\" mode=\"poem-halign\"/>\n    </xsl:variable>\n    <xsl:text>\\poemauthor</xsl:text>\n    <xsl:value-of select=\"$alignment\"/>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"stanza\">\n    <xsl:if test=\"title\">\n        <xsl:text>\\stanzaTitle{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        <xsl:text>}&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:text>\\begin{stanza}&#xa;</xsl:text>\n    <xsl:apply-templates select=\"line|idx\"/>\n    <xsl:text>\\end{stanza}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"stanza/line\">\n    <!-- Find Alignment -->\n    <xsl:variable name=\"alignment\">\n        <xsl:apply-templates select=\".\" mode=\"poem-halign\"/>\n    </xsl:variable>\n    <!-- Find Indentation -->\n    <xsl:variable name=\"indentation\">\n        <xsl:apply-templates select=\".\" mode=\"poem-indent\"/>\n    </xsl:variable>\n    <!-- Apply Alignment and Indentation -->\n    <xsl:text>\\poemline</xsl:text>\n    <xsl:value-of select=\"$alignment\"/>\n    <xsl:text>{</xsl:text>\n    <xsl:if test=\"$alignment='left'\"><!-- Left Alignment: Indent from Left -->\n        <xsl:call-template name=\"poem-line-indenting\">\n            <xsl:with-param name=\"count\"><xsl:value-of select=\"$indentation\"/></xsl:with-param>\n        </xsl:call-template>\n    </xsl:if>\n    <xsl:apply-templates/><!-- Center Alignment: Ignore Indentation -->\n    <xsl:if test=\"$alignment='right'\"><!-- Right Alignment: Indent from Right -->\n        <xsl:call-template name=\"poem-line-indenting\">\n            <xsl:with-param name=\"count\"><xsl:value-of select=\"$indentation\"/></xsl:with-param>\n        </xsl:call-template>\n        <!-- Latex seems to \"eat\" one indentation while right aligned, so we add one extra -->\n        <xsl:text>\\poemIndent{}</xsl:text>\n    </xsl:if>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"poem-line-indenting\">\n    <xsl:param name=\"count\"/>\n    <xsl:choose>\n        <xsl:when test=\"(0 >= $count)\"/>\n        <xsl:otherwise>\n            <xsl:text>\\poemIndent{}</xsl:text>\n            <xsl:call-template name=\"poem-line-indenting\">\n                <xsl:with-param name=\"count\" select=\"$count - 1\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!--       -->\n<!-- Music -->\n<!--       -->\n\n<!--                 -->\n<!-- Musical Symbols -->\n<!--                 -->\n\n<!-- Accidentals -->\n\n<!-- TODO: If requested, add semi- and sesqui- versions of sharp and flat -->\n\n<!-- These \"choose\" should really be separate match -->\n<!-- templates on title//*, but the use of named    -->\n<!-- templates would require a big re-write, so we  -->\n<!-- have some technical debt here                  -->\n\n<!-- Our macros need protection in titles and typeout commands -->\n\n<!-- Double Sharp -->\n<xsl:template name=\"doublesharp\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::subtitle\">\n            <xsl:text>\\protect\\doublesharp</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{\\doublesharp}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Sharp -->\n<xsl:template name=\"sharp\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::subtitle\">\n            <xsl:text>\\protect\\sharp</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{\\sharp}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Natural -->\n<xsl:template name=\"natural\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::subtitle\">\n            <xsl:text>\\protect\\natural</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{\\natural}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Flat -->\n<xsl:template name=\"flat\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::subtitle\">\n            <xsl:text>\\protect\\flat</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{\\flat}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Double Flat -->\n<xsl:template name=\"doubleflat\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::title|ancestor::subtitle\">\n            <xsl:text>\\protect\\doubleflat</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>{\\doubleflat}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Footnotes -->\n<!-- For blocks implemented as \"tcolorbox\" we need to manage -->\n<!-- footnotes more carefully.  Also for captions since they -->\n<!-- migrate to list of figures.  At the location, we just   -->\n<!-- drop a mark, with no text.  Testing with the \"footmisc\" -->\n<!-- package, and its \"\\mpfootnotemark\" alternative works    -->\n<!-- worse than simple default LaTeX (though the numbers     -->\n<!-- could be hard-coded if necessary).                      -->\n<!-- NB: (2020-11-15) New environments may mean there is no  -->\n<!-- migration to the *.aux file, hence the \\protect may not -->\n<!-- be necessary.                                           -->\n<!-- 2023-06-03: one of REMARK-LIKE is a \"note\", but we also -->\n<!-- have, from long ago, a biblio/note.  So a footnote      -->\n<!-- inside a  biblio/note  was being caught here and        -->\n<!-- producing a \\footnotemark{}.  However, there was no     -->\n<!-- matching  \\footnotetext  since \"biblio\" is not yet a    -->\n<!-- tcolorbox and the \"pop-footnote-text\" template was not  -->\n<!-- present as part of processing  biblio/note.             -->\n<xsl:template match=\"fn\">\n    <xsl:choose>\n        <xsl:when test=\"ancestor::*[&ASIDE-FILTER; or &THEOREM-FILTER; or &AXIOM-FILTER;  or &DEFINITION-FILTER; or &REMARK-FILTER; or &COMPUTATION-FILTER; or &OPENPROBLEM-FILTER; or &EXAMPLE-FILTER; or &PROJECT-FILTER; or &GOAL-FILTER; or &FIGURE-FILTER; or self::tabular or self::list or self::sidebyside or self::gi or self::colophon/parent::backmatter or self::assemblage or self::exercise or (self::li and parent::dl) or self::proof[not(parent::*[&THEOREM-FILTER;])] or self::argument[not(parent::*[&THEOREM-FILTER;])] or self::justification[not(parent::*[&THEOREM-FILTER;])] or self::reasoning[not(parent::*[&THEOREM-FILTER;])] or self::explanation[not(parent::*[&THEOREM-FILTER;])]] and not(ancestor::note/parent::biblio)\">\n            <!-- a footnote in the text of a caption will migrate to -->\n            <!-- the auxiliary file for use in the \"list of figures\" -->\n            <!-- and there is some confusion of braces and the use   -->\n            <!-- of \\footnote and \\footnotemark, hence a \\protect    -->\n            <!-- https://tex.stackexchange.com/questions/10181       -->\n            <xsl:if test=\"ancestor::*[&FIGURE-FILTER;]\">\n                <xsl:text>\\protect</xsl:text>\n            </xsl:if>\n            <xsl:text>\\footnotemark{}</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>\\footnote{</xsl:text>\n            <xsl:apply-templates/>\n            <xsl:apply-templates select=\".\" mode=\"label\" />\n            <xsl:text>}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Part 2: for items implemented as \"tcolorbox\", and other       -->\n<!-- environments that could harbor a footnote, such as            -->\n<!-- \"figure\", \"table\", \"tabular\", etc., we scan back              -->\n<!-- through the contents, formulating the text of footnotes,      -->\n<!-- in order.  It is necessary to hard-code the (serial) number   -->\n<!-- of the footnote since otherwise the numbering gets confused   -->\n<!-- by an intervening \"tcolorbox\".  The template should be placed -->\n<!-- immediately after the \"\\end{}\" of affected environments.      -->\n<!-- It will format as one footnote text per output line.          -->\n<!--                                                               -->\n<!-- We need to pop all interior footnotes iff we are free of      -->\n<!-- enclosing blocks implemented with tcolorbox.  So this         -->\n<!-- template is called at the end of a template for a block,      -->\n<!-- but after the tcolorbox closes.  So we are in the clear when  -->\n<!-- no ancestors are implmented by tcolorbox.  Otherwise, we      -->\n<!-- \"wait\" and pop all interior footnotes later.                  -->\n<!-- NB: these templates could be improved with an entity          -->\n<!-- NB: \"detached\" proofs require a proliferation of              -->\n<!-- complicated constructions                                     -->\n<xsl:template match=\"&ASIDE-LIKE;|&THEOREM-LIKE;|&AXIOM-LIKE;|&DEFINITION-LIKE;|&REMARK-LIKE;|&COMPUTATION-LIKE;|&OPENPROBLEM-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|&FIGURE-LIKE;|tabular|list|sidebyside|gi|&GOAL-LIKE;|backmatter/colophon|assemblage|exercise|dl/li|proof[not(parent::*[&THEOREM-FILTER;])]|argument[not(parent::*[&THEOREM-FILTER;])]|justification[not(parent::*[&THEOREM-FILTER;])]|reasoning[not(parent::*[&THEOREM-FILTER;])]|explanation[not(parent::*[&THEOREM-FILTER;])]\" mode=\"pop-footnote-text\">\n    <xsl:if test=\"count(ancestor::*[&ASIDE-FILTER; or &THEOREM-FILTER; or &AXIOM-FILTER;  or &DEFINITION-FILTER; or &REMARK-FILTER; or &COMPUTATION-FILTER; or &EXAMPLE-FILTER; or &PROJECT-FILTER; or &GOAL-FILTER; or &FIGURE-FILTER; or self::tabular or self::list or self::sidebyside or self::gi or self::colophon/parent::backmatter or self::assemblage or self::exercise or (self::li and parent::dl) or self::proof[not(parent::*[&THEOREM-FILTER;])] or self::argument[not(parent::*[&THEOREM-FILTER;])] or self::justification[not(parent::*[&THEOREM-FILTER;])] or self::reasoning[not(parent::*[&THEOREM-FILTER;])] or self::explanation[not(parent::*[&THEOREM-FILTER;])]]) = 0\">\n        <xsl:for-each select=\".//fn\">\n            <xsl:text>\\footnotetext[</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n            <xsl:text>]</xsl:text>\n            <xsl:text>{</xsl:text>\n            <xsl:apply-templates/>\n            <xsl:apply-templates select=\".\" mode=\"label\" />\n            <xsl:text>}%&#xa;</xsl:text>\n        </xsl:for-each>\n    </xsl:if>\n</xsl:template>\n\n<!-- TEMPORARILY: render a glossary \"headnote\" as an \"introduction\" -->\n<xsl:template match=\"glossary/headnote\">\n    <xsl:text>%% this should be a new (isomorphic) \"headnote\" environment&#xa;</xsl:text>\n    <xsl:text>\\begin{introduction}{}%&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{introduction}%&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Defined Terms, in a Glossary -->\n<xsl:template match=\"gi\">\n    <xsl:text>\\begin{glossaryitem}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <xsl:text>\\end{glossaryitem}&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"pop-footnote-text\"/>\n</xsl:template>\n\n<!-- ############################ -->\n<!-- Literate Programming Support -->\n<!-- ############################ -->\n\n<!-- A fragment has contents, and may also be a root (file) node -->\n<xsl:template match=\"fragment\">\n    <xsl:text>\\par\\medskip%&#xa;</xsl:text>\n    <!-- always possible to label (universal PTX capability) -->\n    <xsl:text>\\noindent\\phantomsection</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"label\"/>\n    <xsl:call-template name=\"langle-character\"/>\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:call-template name=\"rangle-character\"/>\n    <xsl:text> </xsl:text>\n    <xsl:call-template name=\"inline-math-wrapper\">\n        <xsl:with-param name=\"math\" select=\"'\\equiv'\"/>\n    </xsl:call-template>\n    <!-- sortby first, @ separator, then tt version -->\n    <xsl:text>\\index{</xsl:text>\n    <xsl:value-of select=\"@xml:id\" />\n    <xsl:text>@</xsl:text>\n    <xsl:value-of select=\"@xml:id\" />\n    <xsl:text>}</xsl:text>\n    <xsl:text>\\\\&#xa;</xsl:text>\n    <!-- special case, root node with filename -->\n    <xsl:if test=\"@filename\">\n        <xsl:text>Root of file: </xsl:text>\n        <xsl:text>\\mono{</xsl:text>\n        <xsl:value-of select=\"@filename\" />\n        <xsl:text>}</xsl:text>\n        <xsl:text>\\index{file root!\\mono{</xsl:text>\n        <xsl:value-of select=\"@filename\" />\n        <xsl:text>}}</xsl:text>\n        <xsl:text>\\\\&#xa;</xsl:text>\n    </xsl:if>\n    <!-- now the guts, two different types of pieces -->\n    <xsl:apply-templates select=\"code|fragref\"/>\n</xsl:template>\n\n<!-- wrap code in a Verbatim environment, though perhaps another -->\n<!-- LaTeX environment or a tcolor box would work better         -->\n<!-- Simple \\mono{} needs escapes, won't line break              -->\n<!-- Drop whitespace only text() nodes                           -->\n<xsl:template match=\"fragment/code\">\n    <xsl:variable name=\"normalized-frag\" select=\"normalize-space(.)\"/>\n    <xsl:if test=\"not($normalized-frag = '')\">\n        <xsl:text>\\begin{preformatted}</xsl:text>\n        <xsl:text>&#xa;</xsl:text>  <!-- required by fancyvrb -->\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\".\" />\n        </xsl:call-template>\n        <xsl:text>\\end{preformatted}&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- A \"fragref\" has a @ref that is simply a pointer to another fragment, -->\n<!-- so convert to a visual representation of a pointer to a target,      -->\n<!-- with a hyperlink to the target (as a page number for print)          -->\n<xsl:template match=\"fragref\">\n    <xsl:variable name=\"target\" select=\"id(@ref)\"/>\n    <xsl:call-template name=\"langle-character\"/>\n    <xsl:apply-templates select=\"$target\" mode=\"title-full\"/>\n    <xsl:text> </xsl:text>\n    <xsl:text>{\\scriptsize </xsl:text>\n    <xsl:apply-templates select=\"$target\" mode=\"number\"/>\n    <xsl:text>\\space[\\pageref{</xsl:text>\n    <xsl:apply-templates select=\"$target\" mode=\"unique-id\"/>\n    <xsl:text>}]</xsl:text>\n    <xsl:text>}</xsl:text>\n    <xsl:call-template name=\"rangle-character\"/>\n    <xsl:text>\\\\&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ################### -->\n<!-- References Sections -->\n<!-- ################### -->\n\n<!-- We use description lists to manage bibliographies,  -->\n<!-- and \\bibitem seems comfortable there, so our source -->\n<!-- is nearly compatible with the usual usage           -->\n\n<!-- We open and close a single \"referencelist\" environment,    -->\n<!-- which we create in the preamble.  It opens right after     -->\n<!-- a \"references\" division, or after optional \"introduction\". -->\n<!-- It closes right before the \"references\" division closes,   -->\n<!-- or right before the \"conclusion\" begins.  The templates    -->\n<!-- below ensure consistency, and help with overrides.  You    -->\n<!-- can search on them to see the two pairs of scenarios       -->\n<!-- just described.                                            -->\n\n<xsl:template name=\"open-reference-list\">\n    <xsl:text>%% If this is a top-level references&#xa;</xsl:text>\n    <xsl:text>%%   you can replace the \"referencelist\" environment&#xa;</xsl:text>\n    <xsl:text>%%   with a standard \"thebibliography\" environment&#xa;</xsl:text>\n    <xsl:text>\\begin{referencelist}&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"close-reference-list\">\n    <xsl:text>\\end{referencelist}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- As an item of a description list, but compatible        -->\n<!-- with the  thebibliography  environment.                 -->\n<!-- Note: matching \"bibentry\" happens within the common     -->\n<!-- templates, which in turn employs this wrapper template. -->\n<xsl:template match=\"biblio\" mode=\"bibentry-wrapper\">\n    <xsl:param name=\"content\"/>\n\n    <xsl:text>\\bibitem</xsl:text>\n    <!-- \"label\" (e.g. Jud99), or by default serial number -->\n    <!-- LaTeX's bibitem will provide the visual brackets  -->\n    <xsl:text>[</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n    <xsl:text>]</xsl:text>\n    <!-- \"key\" for cross-referencing -->\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n    <xsl:text>}</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"label\" />\n    <xsl:copy-of select=\"$content\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Implement abstract templates to support      -->\n<!-- formatting of bibliographic entries in HTML. -->\n\n<xsl:template match=\"*\" mode=\"italic\">\n    <xsl:text>\\textit{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"bold\">\n    <xsl:text>\\textbf{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- \\mono{} macro *always* defined in preamble -->\n<xsl:template match=\"*\" mode=\"monospace\">\n    <xsl:text>\\mono{</xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"biblio-period\">\n    <xsl:text>.\\@</xsl:text>\n</xsl:template>\n\n<!-- Annotated Bibliography Items -->\n<!--   Presumably just paragraphs, nothing too complicated -->\n<!--   We first close off the citation itself -->\n<xsl:template match=\"biblio/note\">\n    <xsl:text>\\par</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"optional-label\"/>\n    <xsl:text>%&#xa;</xsl:text>\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Text Processing -->\n<!-- ############### -->\n\n<!-- The general template for matching \"text()\" nodes will     -->\n<!-- apply this template (there is a hook there).  Verbatim    -->\n<!-- text should be manipulated in templates with              -->\n<!-- \"xsl:value-of\" and so not come through here.  Conversely, -->\n<!-- when \"xsl:apply-templates\" is applied, the template will  -->\n<!-- have effect.                                              -->\n<!--                                                           -->\n<!-- Our emphasis originally is on escaping characters that    -->\n<!-- LaTeX has hijacked for special purposes.  First we define -->\n<!-- some variables globally, so it is only necessary once.    -->\n\n<!-- Following for disruption of \"TeX ligatures\"           -->\n<!-- Second two are necessary to avoid XML quote confusion -->\n<xsl:variable name=\"double-hyphen\">\n    <text>--</text>\n</xsl:variable>\n<xsl:variable name=\"double-hyphen-replacement\">\n    <text>-{}-{}</text>\n</xsl:variable>\n\n<xsl:variable name=\"double-apostrophe\">\n    <text>''</text>\n</xsl:variable>\n<xsl:variable name=\"double-apostrophe-replacement\">\n    <text>'{}'{}</text>\n</xsl:variable>\n\n<xsl:template name=\"text-processing\">\n    <xsl:param name=\"text\"/>\n    <!-- LaTeX's 10 reserved characters:  # $ % ^ & _ { } ~ \\          -->\n    <!-- We allow these in source, but must *always* escape them       -->\n    <!--                                                               -->\n    <!-- Strategy: replacements for backslash and braces use all       -->\n    <!-- three characters, so it can be circular to just plow through  -->\n    <!-- them.  We replace the backslash, then do replacements for the -->\n    <!-- braces.  But we leave off the ending empty-group protection.  -->\n    <!-- A second pass will never accidentally match remaining source  -->\n    <!-- text due to the backslash replacements, so we safely place    -->\n    <!-- the groups as pairs of braces.                                -->\n    <!--                                                               -->\n    <!-- This involves just one more search/replace than a previous    -->\n    <!-- strategy that used a risky \"unique string\" strategy.          -->\n    <!-- (Discussion referenced in \"escape-text-to-latex\" template)    -->\n\n    <xsl:variable name=\"bs-one\" select=\"str:replace($text,   '\\', '\\textbackslash')\"/>\n    <xsl:variable name=\"lb-one\" select=\"str:replace($bs-one, '{', '\\textbraceleft')\"/>\n    <xsl:variable name=\"rb-one\" select=\"str:replace($lb-one, '}', '\\textbraceright')\"/>\n\n    <xsl:variable name=\"bs-two\" select=\"str:replace($rb-one, '\\textbackslash',  '\\textbackslash{}')\"/>\n    <xsl:variable name=\"lb-two\" select=\"str:replace($bs-two, '\\textbraceleft',  '\\textbraceleft{}')\"/>\n    <xsl:variable name=\"rb-two\" select=\"str:replace($lb-two, '\\textbraceright', '\\textbraceright{}')\"/>\n\n    <xsl:variable name=\"amp-fixed\"        select=\"str:replace($rb-two,           '&amp;', '\\&amp;')\"/>\n    <xsl:variable name=\"hash-fixed\"       select=\"str:replace($amp-fixed,        '#',     '\\#')\"/>\n    <xsl:variable name=\"dollar-fixed\"     select=\"str:replace($hash-fixed,       '$',     '\\textdollar{}')\"/>\n    <xsl:variable name=\"percent-fixed\"    select=\"str:replace($dollar-fixed,     '%',     '\\%')\"/>\n    <xsl:variable name=\"circumflex-fixed\" select=\"str:replace($percent-fixed,    '^',     '\\textasciicircum{}')\"/>\n    <xsl:variable name=\"underscore-fixed\" select=\"str:replace($circumflex-fixed, '_',     '\\textunderscore{}')\"/>\n    <xsl:variable name=\"tilde-fixed\"      select=\"str:replace($underscore-fixed, '~',     '\\textasciitilde{}')\"/>\n\n    <!-- These are characters improved by LaTeX versions (mostly from textcomp)                 -->\n    <!-- \\slash is important since it allows line-breaking, contrary to a bare \"forward \"slash\" -->\n    <xsl:variable name=\"less-fixed\"     select=\"str:replace($tilde-fixed,    '&lt;', '\\textless{}')\"/>\n    <xsl:variable name=\"greater-fixed\"  select=\"str:replace($less-fixed,      '&gt;', '\\textgreater{}')\"/>\n    <xsl:variable name=\"backtick-fixed\" select=\"str:replace($greater-fixed,   '`',    '\\textasciigrave{}')\"/>\n    <xsl:variable name=\"bar-fixed\"      select=\"str:replace($backtick-fixed,  '|',    '\\textbar{}')\"/>\n    <xsl:variable name=\"slash-fixed\"    select=\"str:replace($bar-fixed,       '/',    '\\slash{}')\"/>\n    <xsl:variable name=\"asterisk-fixed\" select=\"str:replace($slash-fixed,     '*',    '\\textasteriskcentered{}')\"/>\n\n    <!-- We disrupt certain \"TeX ligatures\" - combinations of keyboard -->\n    <!-- characters which result in a single glyph in output           -->\n\n    <!-- Hyphens -->\n    <!-- An even number of hyphens will earn the same number of disrupting {} -->\n    <!-- An odd number of hyphens will earn one less disrupting {} -->\n    <!-- In particular, a single hyphen gets none -->\n    <xsl:variable name=\"hyphen-fixed\"    select=\"str:replace($asterisk-fixed, $double-hyphen, $double-hyphen-replacement)\"/>\n\n    <!-- Apostrophes -->\n    <!-- Should not be combined in pairs to become a single right -->\n    <!-- smart quote. Strategy is the same as for hyphens         -->\n    <xsl:variable name=\"apostrophe-fixed\" select=\"str:replace($hyphen-fixed, $double-apostrophe, $double-apostrophe-replacement)\"/>\n\n    <!-- Backticks -->\n    <!-- Should not be combined in pairs to become a single left smart -->\n    <!-- quote.  Replacement above by a macro will prevent this.       -->\n\n    <!-- Currency -->\n    <!-- Dollar is processed above.  13 other currencies seem to     -->\n    <!-- behave just fine with our defaults, when simply entered     -->\n    <!-- by their Unicode numbers, though each could be replaced     -->\n    <!-- by a textcomp version, which we have elected to skirt until -->\n    <!-- necessary.  The one exception is the Paraguayan guarani.    -->\n\n    <!-- Paraguayan guarani -->\n    <xsl:variable name=\"guarani-fixed\" select=\"str:replace($apostrophe-fixed, '&#x20b2;', '\\textguarani')\"/>\n\n    <xsl:value-of select=\"$guarani-fixed\"/>\n</xsl:template>\n\n\n<!-- ######### -->\n<!-- Utilities -->\n<!-- ######### -->\n\n<!-- \"escape-latex-special-chars\"                          -->\n<!-- Escape for the Latex 10 special characters            -->\n<!-- First define the replacements. These must be in       -->\n<!-- order as search + replace pairs                       -->\n<xsl:variable name=\"latex-replacements\">\n    <search>\\</search>\n    <replace>\\\\</replace>\n    <search>&amp;</search>\n    <replace>\\&amp;</replace>\n    <search>%</search>\n    <replace>\\%</replace>\n    <search>$</search>\n    <replace>\\$</replace>\n    <search>#</search>\n    <replace>\\#</replace>\n    <search>_</search>\n    <replace>\\_</replace>\n    <search>{</search>\n    <replace>\\{</replace>\n    <search>}</search>\n    <replace>\\}</replace>\n    <search>~</search>\n    <replace>\\~</replace>\n    <search>^</search>\n    <replace>\\^</replace>\n</xsl:variable>\n<xsl:variable name=\"latex-replacements-search-set\" select=\"exsl:node-set($latex-replacements)/search\" />\n<xsl:variable name=\"latex-replacements-replace-set\" select=\"exsl:node-set($latex-replacements)/replace\" />\n<xsl:template name=\"escape-latex-special-chars\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"str:replace($text, $latex-replacements-search-set, $latex-replacements-replace-set)\" />\n</xsl:template>\n\n<!-- Escape URL Text as LaTeX -->\n<!-- Slash first, so don't clobber later additions    -->\n<!-- Double-quote is problematic in LaTeX, and also   -->\n<!-- in strings below, so use &#x22; it's hex Unicode -->\n<!--     \\ & # % ~ { } \"                              -->\n<!-- no problem yet with math underscore or caret     -->\n<!-- (a text-only template, but LaTeX-specific)       -->\n<!-- This is a subset of following utility, certain   -->\n<!-- substitutions (such as \\textsinglequote) will    -->\n<!-- foul up the applications of this cleaner.        -->\n<xsl:template name=\"escape-url-to-latex\">\n    <xsl:param    name=\"text\" />\n\n    <xsl:variable name=\"sans-slash\" select=\"str:replace($text,       '\\',      '\\\\'      )\" />\n    <xsl:variable name=\"sans-amp\"   select=\"str:replace($sans-slash, '&amp;',  '\\&amp;'  )\" />\n    <xsl:variable name=\"sans-hash\"  select=\"str:replace($sans-amp,   '#',      '\\#'      )\" />\n    <xsl:variable name=\"sans-per\"   select=\"str:replace($sans-hash,  '%',      '\\%'      )\" />\n    <xsl:variable name=\"sans-tilde\" select=\"str:replace($sans-per,   '~',      '\\~'      )\" />\n    <xsl:variable name=\"sans-open\"  select=\"str:replace($sans-tilde, '{',      '\\{'      )\" />\n    <xsl:variable name=\"sans-close\" select=\"str:replace($sans-open,  '}',      '\\}'      )\" />\n    <xsl:variable name=\"sans-quote\" select=\"str:replace($sans-close, '&#x22;', '\\&#x22;' )\" />\n    <xsl:value-of select=\"$sans-quote\" />\n</xsl:template>\n\n<!-- Necessary for next template, defined globally -->\n<xsl:variable name=\"sq\">\n    <xsl:text>'</xsl:text>\n</xsl:variable>\n<xsl:variable name=\"dq\">\n    <xsl:text>\"</xsl:text>\n</xsl:variable>\n\n<!-- Author's Inline Verbatim to Escaped LaTeX -->\n<!-- 10 wicked LaTeX characters:   & % $ # _ { } ~ ^ \\.    -->\n<!-- Plus single quote, double quote, and backtick.        -->\n<!-- \\, {, } all need replacement, and also occur in some  -->\n<!-- replacements.  So order, and some care, is necessary. -->\n<!-- Generally this is a \"cleaner\" template , prior  to    -->\n<!--wrapping in our \\mono macro, implemented with \\texttt. -->\n<!-- http://tex.stackexchange.com/questions/34580/         -->\n<xsl:template name=\"escape-text-to-latex\">\n    <xsl:param    name=\"text\" />\n\n    <!-- See \"text-processing\" for discussion of a very similar strategy -->\n\n    <xsl:variable name=\"bs-one\" select=\"str:replace($text,   '\\', '\\textbackslash')\"/>\n    <xsl:variable name=\"lb-one\" select=\"str:replace($bs-one, '{', '\\textbraceleft')\"/>\n    <xsl:variable name=\"rb-one\" select=\"str:replace($lb-one, '}', '\\textbraceright')\"/>\n\n    <xsl:variable name=\"bs-two\" select=\"str:replace($rb-one, '\\textbackslash',  '\\textbackslash{}')\"/>\n    <xsl:variable name=\"lb-two\" select=\"str:replace($bs-two, '\\textbraceleft',  '\\{')\"/>\n    <xsl:variable name=\"rb-two\" select=\"str:replace($lb-two, '\\textbraceright', '\\}')\"/>\n\n    <xsl:variable name=\"sans-amp\"   select=\"str:replace($rb-two,      '&amp;', '\\&amp;'  )\" />\n    <xsl:variable name=\"sans-hash\"  select=\"str:replace($sans-amp,    '#',     '\\#'      )\" />\n    <xsl:variable name=\"sans-per\"   select=\"str:replace($sans-hash,   '%',     '\\%'      )\" />\n    <xsl:variable name=\"sans-tilde\" select=\"str:replace($sans-per,    '~',     '\\textasciitilde{}')\" />\n    <xsl:variable name=\"sans-dollar\" select=\"str:replace($sans-tilde, '$',     '\\$' )\" />\n    <xsl:variable name=\"sans-under\" select=\"str:replace($sans-dollar, '_',     '\\_'      )\" />\n    <xsl:variable name=\"sans-caret\" select=\"str:replace($sans-under,  '^',     '\\textasciicircum{}')\" />\n    <xsl:variable name=\"sans-quote\" select=\"str:replace($sans-caret,  $sq,     '\\textquotesingle{}')\" />\n    <xsl:variable name=\"sans-dblqt\" select=\"str:replace($sans-quote,  $dq,     '\\textquotedbl{}')\" />\n    <xsl:value-of select=\"str:replace($sans-dblqt,  '`',     '\\textasciigrave{}')\" />\n</xsl:template>\n\n<!-- Escape Console Input to Latex -->\n<!-- The entire input string is bolded, but now we have escaped     -->\n<!-- into LaTeX for the entire string.  So we need to               -->\n<!--   (1) Escape the usual problematic characters into their LaTeX -->\n<!--       text equivalents.                                        -->\n<!--   (2) Convert the \"listings\" escape sequence into something    -->\n<!--       isomorphic, but not equal, in LaTeX.  We do this by      -->\n<!--       adding an empty group to the escape sequences.           -->\n<xsl:template name=\"escape-console-input-to-latex\">\n    <xsl:param name=\"text\" />\n\n    <xsl:variable name=\"all-latex\">\n        <xsl:call-template name=\"escape-text-to-latex\">\n            <xsl:with-param name=\"text\" select=\"$text\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- A trailing group seems necessary on the opening escape -->\n    <!-- sequence, otherwise a trailing spce goes missing.      -->\n    <!-- We add this to the closing sequence just in case.      -->\n    <xsl:variable name=\"left-escape\"  select=\"str:replace($all-latex, '(*', '({}*{}' )\"/>\n    <xsl:variable name=\"right-escape\" select=\"str:replace($left-escape, '*)', '*{}){}' )\"/>\n    <xsl:value-of select=\"$right-escape\"/>\n</xsl:template>\n\n<!-- Escape Console Text -->\n<!-- The prefix and output for a \"console\" are handled capably by the   -->\n<!-- \"listings\" package.  Except we need to break the escape characters -->\n<!-- we use to accomodate bold text for the input.  So...we escape into -->\n<!-- LaTeX mode, duplicate the desired sequence, and break it with an   -->\n<!-- empty group.  Presumably no additional empty groups are necessary. -->\n<!-- The usual three-step in necessary to not clobber earlier edits,    -->\n<!-- we did not figure out a clever way to avoid a \"unique\" string.     -->\n<xsl:template name=\"escape-console-prefix-output\">\n    <xsl:param name=\"text\" />\n\n    <xsl:variable name=\"left-escape-temp\"  select=\"str:replace($text, '(*', 'XXvVY4DtfemxHkcXX' )\"/>\n    <xsl:variable name=\"right-escape\" select=\"str:replace($left-escape-temp, '*)', '(**{})*)' )\"/>\n    <xsl:variable name=\"left-escape\" select=\"str:replace($right-escape, 'XXvVY4DtfemxHkcXX', '(*({}**)' )\"/>\n    <xsl:value-of select=\"$left-escape\"/>\n</xsl:template>\n\n<!-- Issue check and warning, under xelatex engine, -->\n<!-- for a font missing from a system               -->\n<xsl:template name=\"xelatex-font-check\">\n    <xsl:param name=\"font-name\"/>\n\n    <xsl:text>\\IfFontExistsTF{</xsl:text>\n    <xsl:value-of select=\"$font-name\"/>\n    <xsl:text>}{}{\\GenericError{}{The font \"</xsl:text>\n    <xsl:value-of select=\"$font-name\"/>\n    <xsl:text>\" requested by PreTeXt output processed by the  xelatex  executable is not available.  Either a file cannot be located in default locations via a filename, or a font is not known by its name as part of your system.}{Consult the PreTeXt Guide for help with LaTeX fonts, or perhaps try using  pdflatex  as a test.}{}}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Miscellaneous -->\n\n<!-- Inline warnings go into text, no matter what -->\n<!-- They are colored for an author's report      -->\n<!-- A bad xml:id might have underscores, so we   -->\n<!-- sanitize the entire warning text for LaTeX   -->\n<xsl:template name=\"inline-warning\">\n    <xsl:param name=\"warning\" />\n    <!-- Color for author tools version -->\n    <xsl:if test=\"$author-tools-new = 'yes'\" >\n        <xsl:text>\\textcolor{red}</xsl:text>\n    </xsl:if>\n    <xsl:text>{</xsl:text>\n    <xsl:text>(((</xsl:text>\n    <xsl:value-of select=\"str:replace($warning, '_', '\\_')\" />\n    <xsl:text>)))</xsl:text>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- Marginal notes are only for author's report          -->\n<!-- and are always colored red                           -->\n<!-- Marginpar's from http://www.f.kth.se/~ante/latex.php -->\n<xsl:template name=\"margin-warning\">\n    <xsl:param name=\"warning\" />\n    <xsl:if test=\"$author-tools-new = 'yes'\" >\n        <xsl:text>\\marginpar[\\raggedleft\\footnotesize\\textcolor{red}{</xsl:text>\n        <xsl:value-of select=\"$warning\" />\n        <xsl:text>}]{\\raggedright\\footnotesize\\textcolor{red}{</xsl:text>\n        <xsl:value-of select=\"$warning\" />\n        <xsl:text>}}</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Publisher-declared pagebreaks -->\n<xsl:template match=\"*\" mode=\"newpage\">\n    <xsl:if test=\"@xml:id = str:tokenize($latex-pagebreaks-string)\">\n        <xsl:text>\\newpage%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<!-- Debug: emit a LaTeX assertion comparing PreTeXt's number -->\n<!-- against the number LaTeX computed from its own counters  -->\n<xsl:template match=\"*\" mode=\"debug-numbering-check\">\n    <xsl:if test=\"$b-debug-numbering-check\">\n        <xsl:text>\\ptxnumbercheck{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n        <xsl:text>}%&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-latex.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This is the default LaTeX stylesheet for PreTeXt.  -->\n\n\n<!-- Conveniences for classes of similar elements -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"./entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- We override specific templates of the common conversion   -->\n\n<xsl:import href=\"./pretext-latex-common.xsl\" />\n\n<!-- Note (2024-11-14): This is the start of a refactoring of  -->\n<!-- the latex stylesheet into templates common to both this   -->\n<!-- and \"classic\" journal-ready latex templates (in the       -->\n<!-- pretext-latex-classic.xsl stylesheet). Eventually more    -->\n<!-- templates will move here.                                 -->\n\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-litprog.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2013-2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- Begin with PreTeXt source, locate \"fragment\" with @filename attribute, -->\n<!-- and do a depth-first search through the \"fragment\" that are pointers   -->\n<!-- to other \"fragment\".  Any given \"fragment\" will be a mix of source     -->\n<!-- \"code\" (to emit) and other \"fragment\".  If your source code has & or < -->\n<!-- as characters, author them as &amp; or &lt; (respectively).            -->\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Intend output for rendering as source code for some language -->\n<!-- An output in XML syntax, like XSL, might be tricky           -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- Deprecation warnings are universal analysis of source and parameters  -->\n<!-- There is always a \"document root\" directly under the pretext element, -->\n<!-- Note that \"docinfo\" is at the same level and not processed            -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"element-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"parameter-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$root\" />\n</xsl:template>\n\n<!-- Locate file roots by presence of the filename attribute -->\n<xsl:template match=\"pretext\">\n    <xsl:apply-templates select=\"$document-root//fragment[@filename]\"/>\n</xsl:template>\n\n<!-- Use filename as a root indicator, allowing multiple files as output -->\n<!-- Otherwise process as a fragment.  No banner since we have no idea   -->\n<!-- what the target language's comments look like. Maybe the target     -->\n<!-- language's comment character could be a docinfo item utilized by    -->\n<!-- the banner templates?                                               -->\n<xsl:template match=\"fragment[@filename]\">\n    <exsl:document href=\"{@filename}\" method=\"text\">\n        <xsl:apply-templates select=\"code|fragref\"/>\n    </exsl:document>\n</xsl:template>\n\n<!-- If not a root, process allowed children -->\n<xsl:template match=\"fragment[not(@filename)]\">\n    <xsl:apply-templates select=\"code|fragref\"/>\n</xsl:template>\n\n<!-- Duplicate code, rather than default sanitization, so author -->\n<!-- needs to be cognizant of indentation in PreTeXt source and  -->\n<!-- resulting indentation of output                             -->\n<!-- TODO: indentation/relative indentation specification on a \"fragment\"? -->\n<!--     In \"indentation units\" with global value in spaces (or tabs?)?    -->\n<!-- TODO: or maybe a \"mangle\" attribute (newlines, and/or more)           -->\n<!-- TODO: global switch to minify (remove indentation, remove newlines?)  -->\n<xsl:template match=\"fragment/code\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- As we process a fragment, a mix of code and pointers, -->\n<!-- we incorporate the referenced material referenced by  -->\n<!-- pointers, a depth-first traversal                     -->\n <xsl:template match=\"fragref\">\n    <xsl:apply-templates select=\"id(@ref)\"/>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-merge.xsl",
    "content": "<?xml version='1.0'?>\n\n<!-- ********************************************************************* -->\n<!-- Copyright 2017                                                        -->\n<!-- Robert A. Beezer, Alex Jordan                                         -->\n<!--                                                                       -->\n<!-- This file is part of PreTeXt.                                         -->\n<!--                                                                       -->\n<!-- PreTeXt is free software: you can redistribute it and/or modify       -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- PreTeXt is distributed in the hope that it will be useful,            -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.      -->\n<!-- ********************************************************************* -->\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">\n\n<!-- The function of this file has been subsumed into the \"assembly\" -->\n<!-- phase of processing PreTeXt source, and so its only purpose is  -->\n<!-- to announce its retirement as of 2020-06-19.                    -->\n<xsl:template match=\"/\">\n    <xsl:message>\n        <xsl:text>************************************************************&#xa;</xsl:text>\n        <xsl:text>The WeBWorK merge stylesheet is no longer necessary and no&#xa;</xsl:text>\n        <xsl:text>longer has any functionality.  Any regular PreTeXt conversion&#xa;</xsl:text>\n        <xsl:text>will now incorporate the WeBWorK problem representations if&#xa;</xsl:text>\n        <xsl:text>the file is specified in the publisher file.  Consult the&#xa;</xsl:text>\n        <xsl:text>documentation for more details.  (2020-06-19)&#xa;</xsl:text>\n        <xsl:text>************************************************************&#xa;</xsl:text>\n    </xsl:message>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-numbers.xsl",
    "content": "<?xml version='1.0'?>\n\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    extension-element-prefixes=\"exsl date\"\n    exclude-result-prefixes=\"pi\"\n>\n\n<!-- Intend output as plain text (numbers) -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- Read documentation in the \"-assembly\" stylesheet to understand -->\n<!-- employment/purpose of these templates there.                   -->\n<!--                                                                -->\n<!-- 2021-12-22: moving the computation of serial numbers out of    -->\n<!-- the \"-common\" stylesheet, so as to be pre-computed.            -->\n\n<!-- ############## -->\n<!-- Serial Numbers -->\n<!-- ############## -->\n\n<!-- These templates count the occurences of an element within a       -->\n<!-- subtree.  Sometimes that subtree is rooted just above the element -->\n<!-- (e.g. divisions) or sometimes it is many levels higher, such as   -->\n<!-- when an \"example\" might be in a \"subsubsection\" but they are      -->\n<!-- grouped (\"count within\" in LaTeX-speak) and counted across all    -->\n<!-- \"example\" within a chapter (ignoring the divisions by section,    -->\n<!-- subsection, and subsubsection).                                   -->\n<!--                                                                   -->\n<!-- All of the hard work of counting is done in these templates.      -->\n<!-- Elsewhere, serial numbers are combined with hierarchical          -->\n<!-- numbering of divisions to form \"full\" numbers.                    -->\n\n<!-- Traditional Divisions -->\n<!-- Mostly obvious, counting peers, including specialized         -->\n<!-- divisions.  Roman numerals for parts, letters for appendices. -->\n<xsl:template match=\"part\" mode=\"division-serial-number\">\n    <xsl:number format=\"I\" />\n</xsl:template>\n<xsl:template match=\"chapter\" mode=\"division-serial-number\">\n    <!-- chapters, in parts or not -->\n    <xsl:choose>\n        <xsl:when test=\"($parts = 'absent') or ($parts = 'decorative')\">\n            <xsl:variable name=\"true-count\">\n                <xsl:number from=\"book\" level=\"any\" count=\"chapter\" format=\"1\" />\n            </xsl:variable>\n            <!-- $chapter-start defaults to 1 -->\n            <xsl:value-of select=\"$true-count + $chapter-start - 1\" />\n        </xsl:when>\n        <!-- author-specified chapter start number does  -->\n        <!-- not really make sense for structural parts? -->\n        <xsl:when test=\"$parts = 'structural'\">\n            <xsl:number from=\"part\" count=\"chapter\" format=\"1\" />\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n<!-- A \"solutions\" is a specialized division, but is numbered -->\n<!-- as an appendix when present in the backmatter, so        -->\n<!-- included in the count here.                              -->\n<xsl:template match=\"appendix\" mode=\"division-serial-number\">\n    <xsl:number from=\"backmatter\" level=\"any\" count=\"appendix|solutions\" format=\"A\"/>\n</xsl:template>\n<!-- NB: following do not assume an ordering on the subdivisions,     -->\n<!-- since this has not been solidified in the schema. At that point, -->\n<!-- we might enforce some assumptions here, and elsewhere, by only   -->\n<!-- including predecessors in the @count attribute.                  -->\n<xsl:template match=\"section\" mode=\"division-serial-number\">\n    <xsl:number count=\"section|exercises|reading-questions|solutions|references|glossary|worksheet|handout\" format=\"1\" />\n</xsl:template>\n<xsl:template match=\"subsection\" mode=\"division-serial-number\">\n    <xsl:number count=\"subsection|exercises|reading-questions|solutions|references|glossary|worksheet|handout\" format=\"1\" />\n</xsl:template>\n<xsl:template match=\"subsubsection\" mode=\"division-serial-number\">\n    <xsl:number count=\"subsubsection|exercises|reading-questions|solutions|references|glossary|worksheet|handout\" format=\"1\" />\n</xsl:template>\n\n<!-- Specialized Divisions -->\n<!-- \"exercises\", \"solutions\", references, \"worksheet\",-->\n<!-- \"handout\", \"reading-questions\", \"glossary\"        -->\n<!-- This is the case of a \"structured\" division,      -->\n<!-- where we use the resulting number for the         -->\n<!-- division. (In the unstructured case, the number   -->\n<!-- will be inherited from the parent, so this number -->\n<!-- is incorrect, meaningless, and ignored.)  So we   -->\n<!-- simply count preceding peers.  Note that every    -->\n<!-- possible traditional division that could be a     -->\n<!-- peer is listed here in the \"match\", but only one  -->\n<!-- type will actually be present in the structured   -->\n<!-- division.                                         -->\n<xsl:template match=\"exercises|reading-questions|solutions|references|glossary|worksheet|handout\" mode=\"division-serial-number\">\n    <xsl:number count=\"chapter|section|subsection|subsubsection|exercises|reading-questions|solutions|references|glossary|worksheet|handout\" format=\"1\" />\n</xsl:template>\n<!-- Following \"backmatter\" matches will be more specific than above -->\n<!-- A \"solutions\" is a specialized division, but is numbered        -->\n<!-- as an appendix when present in the backmatter, see above        -->\n<xsl:template match=\"backmatter/solutions\" mode=\"division-serial-number\">\n    <xsl:number from=\"backmatter\" level=\"any\" count=\"appendix|solutions\" format=\"A\"/>\n</xsl:template>\n\n<!-- ######################### -->\n<!-- Structured vs. Decorative -->\n<!-- ######################### -->\n\n<!-- These templates determine the structure of divisions, needed    -->\n<!-- during assembly to compute block structure numbers.  They are   -->\n<!-- also used at render time from pretext-common.xsl and elsewhere, -->\n<!-- available via cross-import resolution (every conversion         -->\n<!-- stylesheet imports both pretext-assembly.xsl and                -->\n<!-- pretext-common.xsl).                                            -->\n\n<!-- There are two models for most of the divisions (part -->\n<!-- through subsubsection, plus appendix).  One has      -->\n<!-- subdivisions, and possibly specialized subdivisions. -->\n<!-- The other has no subdivisions, and then at most one  -->\n<!-- of each type of specialized subdivision, which       -->\n<!-- inherit numbers from their parent division. This is  -->\n<!-- the test, which is very similar to \"is-leaf\" in      -->\n<!-- pretext-common.xsl.                                  -->\n<!--                                                      -->\n<!-- A \"part\" must have chapters, so will always return   -->\n<!-- 'true' and for a 'subsubsection' there are no more   -->\n<!-- subdivisions to employ and so will return empty.     -->\n<!--                                                      -->\n<!-- An exception is a division of *only* worksheets.     -->\n<!-- Although there could be titles and the like.         -->\n<!-- So we compare all-children to  metadata + worksheet. -->\n<!-- TODO: should there be a similar exception for handouts? -->\n<xsl:template match=\"book|article|part|chapter|appendix|section|subsection|subsubsection\" mode=\"is-structured-division\">\n    <xsl:variable name=\"has-traditional\" select=\"boolean(&TRADITIONAL-DIVISION;)\"/>\n    <xsl:variable name=\"all-children\" select=\"*\"/>\n    <xsl:variable name=\"all-worksheet\" select=\"title|shorttitle|plaintitle|idx|introduction|worksheet|handout|conclusion\"/>\n    <xsl:variable name=\"only-worksheets\" select=\"count($all-children) = count($all-worksheet)\"/>\n\n    <xsl:value-of select=\"$has-traditional or $only-worksheets\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"is-structured-division\">\n    <xsl:message>PTX:BUG: asking if a non-traditional division (<xsl:value-of select=\"local-name(.)\"/>) is structured or not</xsl:message>\n</xsl:template>\n\n<!-- Specialized divisions sometimes inherit a number from their  -->\n<!-- parent (as part of an unstructured division) and sometimes   -->\n<!-- they do not even have a number (singleton \"references\" as    -->\n<!-- child of \"backmatter\").  This template returns \"true\" if a   -->\n<!-- specialized division \"owns\" its \"own\" number.                -->\n<xsl:template match=\"exercises|worksheet|handout|references|glossary|reading-questions|solutions\" mode=\"is-specialized-own-number\">\n    <xsl:choose>\n        <!-- *Some* specialized divisions can appear as a child of the    -->\n        <!-- \"backmatter\" too.  But only those below.  The rest are       -->\n        <!-- banned as top-level items in the backmatter, but might       -->\n        <!-- occur in an \"appendix\" or below, with or without structure.  -->\n        <!--   \"solutions\" will look like an appendix, thus numbered.     -->\n        <!--   \"references\" or \"glossary\" are singletons, never numbered. -->\n        <xsl:when test=\"parent::*[self::backmatter]\">\n            <xsl:choose>\n                <xsl:when test=\"self::solutions\">\n                    <xsl:text>true</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"self::references or self::glossary\">\n                    <xsl:text>false</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:ERROR:   encountered a specialized division (\"<xsl:value-of select=\"local-name(.)\"/>\") as a child of \"backmatter\" that was unexpected.  Results will be unpredictable</xsl:message>\n                    <!-- no idea if we should say true or false here -->\n                    <xsl:text>true</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- parent must now be a \"traditional\" division -->\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"parent::*\" mode=\"is-structured-division\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"is-specialized-own-number\">\n    <xsl:message>PTX:BUG: asking if a non-specialized division (<xsl:value-of select=\"local-name(.)\"/>) is numbered or not</xsl:message>\n    <xsl:text>false</xsl:text>\n</xsl:template>\n\n<!-- ######################## -->\n<!-- Block Structure Numbers  -->\n<!-- ######################## -->\n\n<!-- Given a block element, produce its structure number prefix      -->\n<!-- by reading the pre-computed @block-struct from the nearest      -->\n<!-- ancestor division, then truncating or padding to the configured -->\n<!-- number of levels.  The @block-struct chain already excludes     -->\n<!-- parts (they are squelched in assembly), so when parts are       -->\n<!-- present the caller's $levels (which counts from \"part\" depth)   -->\n<!-- must be reduced by one to match the shorter chain.              -->\n<xsl:template name=\"block-structure-number\">\n    <xsl:param name=\"levels\"/>\n    <xsl:variable name=\"raw-struct\"\n        select=\"ancestor::*[@block-struct][1]/@block-struct\"/>\n    <!-- The @block-struct chain already excludes parts, so when  -->\n    <!-- parts are present the $levels count (which includes the -->\n    <!-- part depth) must be reduced by one.  But only for       -->\n    <!-- blocks actually inside a part or backmatter — blocks    -->\n    <!-- in frontmatter have no part ancestor and should use     -->\n    <!-- $levels unmodified.                                     -->\n    <xsl:variable name=\"effective-levels\">\n        <xsl:choose>\n            <xsl:when test=\"not($parts = 'absent') and ancestor::*[self::part or self::backmatter]\">\n                <xsl:choose>\n                    <xsl:when test=\"$levels > 0\">\n                        <xsl:value-of select=\"$levels - 1\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"0\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$levels\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:call-template name=\"truncate-pad-struct\">\n        <xsl:with-param name=\"struct\" select=\"$raw-struct\"/>\n        <xsl:with-param name=\"levels\" select=\"$effective-levels\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Truncate a dotted-number string to a given number of     -->\n<!-- components, padding with \".0\" if fewer components exist.  -->\n<xsl:template name=\"truncate-pad-struct\">\n    <xsl:param name=\"struct\"/>\n    <xsl:param name=\"levels\"/>\n    <xsl:param name=\"count\" select=\"0\"/>\n\n    <xsl:choose>\n        <!-- Emitted enough levels, halt -->\n        <xsl:when test=\"$count = $levels\"/>\n        <!-- Components remaining in the string -->\n        <xsl:when test=\"$struct != ''\">\n            <xsl:if test=\"$count > 0\">\n                <xsl:text>.</xsl:text>\n            </xsl:if>\n            <xsl:choose>\n                <xsl:when test=\"contains($struct, '.')\">\n                    <xsl:value-of select=\"substring-before($struct, '.')\"/>\n                    <xsl:call-template name=\"truncate-pad-struct\">\n                        <xsl:with-param name=\"struct\"\n                            select=\"substring-after($struct, '.')\"/>\n                        <xsl:with-param name=\"levels\" select=\"$levels\"/>\n                        <xsl:with-param name=\"count\" select=\"$count + 1\"/>\n                    </xsl:call-template>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$struct\"/>\n                    <xsl:call-template name=\"truncate-pad-struct\">\n                        <xsl:with-param name=\"struct\" select=\"''\"/>\n                        <xsl:with-param name=\"levels\" select=\"$levels\"/>\n                        <xsl:with-param name=\"count\" select=\"$count + 1\"/>\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- Out of components, pad with zero -->\n        <xsl:otherwise>\n            <xsl:if test=\"$count > 0\">\n                <xsl:text>.</xsl:text>\n            </xsl:if>\n            <xsl:text>0</xsl:text>\n            <xsl:call-template name=\"truncate-pad-struct\">\n                <xsl:with-param name=\"struct\" select=\"''\"/>\n                <xsl:with-param name=\"levels\" select=\"$levels\"/>\n                <xsl:with-param name=\"count\" select=\"$count + 1\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-revealjs.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2019 Andrew Rechnitzer, Steven Clontz, Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- \"pi\" necessary to trap \"visual\" URLs automatically being -->\n<!-- added by \"assembly\" for with-content \"url\" elements      -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- Necessary to get some HTML constructions,    -->\n<!-- but want to be sure to override the entry    -->\n<!-- template to avoid chunking, etc.             -->\n<!-- The pretext-assembly stylesheet is employed, -->\n<!-- so be sure to use the right trees in the     -->\n<!-- entry template                               -->\n<xsl:import href=\"pretext-html.xsl\" />\n\n<!-- Disable clipboardable -->\n<xsl:template name=\"insert-clipboardable-class\"/>\n\n<!-- Used to identify build target in templates shared with plain  -->\n<!-- HTML conversion (preferably avoid using this).                -->\n<xsl:variable name=\"b-reveal-build\" select=\"true()\" />\n\n<!-- Reveal.js output is one monolithic page, so heading levels are -->\n<!-- threaded, not chunked.  The slideshow title (h1) and subtitle  -->\n<!-- (h2) are fixed.  A \"section\" is always level 2 (sections never -->\n<!-- nest in a slideshow), so a \"slide\" title is level 3 when there -->\n<!-- are sections and level 2 when there are none; slide content    -->\n<!-- begins one level deeper.                                       -->\n<xsl:variable name=\"b-reveal-has-sections\" select=\"boolean($root/slideshow/section)\"/>\n<xsl:variable name=\"reveal-slide-heading-level\">\n    <xsl:choose>\n        <xsl:when test=\"$b-reveal-has-sections\">\n            <xsl:text>3</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>2</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- HTML5 format -->\n<xsl:output method=\"html\" indent=\"yes\" encoding=\"UTF-8\" doctype-system=\"about:legacy-compat\"/>\n\n<!-- Publisher Switches -->\n<!-- Various configuration options are set in the publisher file,  -->\n<!-- which is analyzed by its own stylesheet, which is imported in -->\n<!-- the process of importing the pretext-html.xsl stylesheet.     -->\n\n<!-- ################ -->\n<!-- # Entry Template -->\n<!-- ################ -->\n\n<!-- We override the entry template, so as to avoid the \"chunking\"    -->\n<!-- procedure, since we are going to *always* produce one monolithic -->\n<!-- HTML file as the output/slideshow                                -->\n<xsl:template match=\"/\">\n    <xsl:call-template name=\"reveal-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"element-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$original\" mode=\"parameter-deprecation-warnings\"/>\n    <xsl:apply-templates select=\"$root\"/>\n</xsl:template>\n\n<xsl:template match=\"/pretext\">\n  <xsl:apply-templates select=\"slideshow\" />\n</xsl:template>\n\n<!-- Kill creation of the index page from the -html -->\n<!-- conversion (we just build one monolithic page) -->\n<xsl:variable name=\"html-index-page\" select=\"/..\"/>\n\n<!-- Kill knowl-ing of various environments -->\n<xsl:template match=\"&THEOREM-LIKE;|&PROOF-LIKE;|&DEFINITION-LIKE;|&EXAMPLE-LIKE;|&PROJECT-LIKE;|task|&FIGURE-LIKE;|&REMARK-LIKE;|&GOAL-LIKE;|exercise\" mode=\"is-hidden\">\n    <xsl:text>no</xsl:text>\n</xsl:template>\n\n<!-- The HTML conversion computes a global \"universal\" Table of    -->\n<!-- Contents for the sidebar.  Then later, for each page it sees  -->\n<!-- some customization.  So we reset the variable here, and that  -->\n<!-- also means the work done in the \"toc-items\" template never    -->\n<!-- occurs.  (And even better, doing the work was exposing that   -->\n<!-- the \"level\" template wasn't working right for a \"slideshow\".) -->\n<xsl:variable name=\"toc-cache-rtf\" select=\"''\"/>\n\n<!-- Write the infrastructure for a page -->\n<xsl:template match=\"slideshow\">\n    <xsl:call-template name=\"converter-blurb-html\" />\n    <html>\n        <head>\n            <title>\n                <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n            </title>\n\n            <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes\"></meta>\n\n            <xsl:call-template name=\"sagecell-code\" />\n            <xsl:apply-templates select=\".\" mode=\"sagecell\" />\n            <xsl:call-template name=\"syntax-highlight\"/>\n\n            <!-- load reveal.js resources; w/ v 4.1.2 -->\n            <!-- these seem to be *always* minified   -->\n            <link href=\"{$reveal-root}/reset.css\" rel=\"stylesheet\"></link>\n            <link href=\"{$reveal-root}/reveal.css\" rel=\"stylesheet\"></link>\n            <link href=\"{$reveal-root}/theme/{$reveal-theme}.css\" rel=\"stylesheet\"></link>\n            <script src=\"{$reveal-root}/reveal.js\"></script>\n            <script src=\"{$reveal-root}/plugin/math/math.js\"></script>\n\n            <link href=\"_static/pretext/css/pretext-reveal.css\" rel=\"stylesheet\"></link>\n          <style>\n          </style>\n          <xsl:call-template name=\"diagcess-header\"/>\n\n          <!-- custom-css, if specified, should be last -->\n          <xsl:if test=\"not($reveal-custom-css = '')\">\n              <xsl:variable name=\"csses\" select=\"str:tokenize($reveal-custom-css, ', ')\"/>\n              <xsl:for-each select=\"$csses\">\n                  <link rel=\"stylesheet\" type=\"text/css\">\n                      <xsl:attribute name=\"href\">\n                          <xsl:value-of select=\".\" />\n                      </xsl:attribute>\n                  </link>\n              </xsl:for-each>\n          </xsl:if>\n        </head>\n\n        <body>\n            <div class=\"reveal ptx-content\">\n                <!-- For mathematics/MathJax, must be located -->\n                <!-- within div.reveal to be effective        -->\n                <xsl:call-template name=\"latex-macros\"/>\n                <div class=\"slides\">\n                     <xsl:apply-templates select=\"frontmatter\"/>\n                    <xsl:apply-templates select=\"section|slide\"/>\n                </div>\n            </div>\n            <xsl:call-template name=\"diagcess-footer\"/>\n        </body>\n\n        <script>\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:text>Reveal.initialize({&#xa;</xsl:text>\n            <xsl:text>  controls: </xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"$b-reveal-control-display\">\n                        <xsl:text>true</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>false</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n            <xsl:text>  controlsTutorial: </xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"$b-reveal-control-tutorial\">\n                        <xsl:text>true</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>false</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            <xsl:text>,&#xa;</xsl:text>\n            <xsl:text>  controlsLayout: '</xsl:text>\n                <xsl:value-of select=\"$reveal-control-layout\"/>\n            <xsl:text>',&#xa;</xsl:text>\n            <xsl:text>  controlsBackArrows: '</xsl:text>\n                <xsl:value-of select=\"$reveal-control-backarrow\"/>\n            <xsl:text>',&#xa;</xsl:text>\n            <xsl:text>  navigationMode: '</xsl:text>\n                <xsl:value-of select=\"$reveal-navigation-mode\"/>\n            <xsl:text>',&#xa;</xsl:text>\n            <xsl:text>  progress: false,&#xa;</xsl:text>\n            <xsl:text>  center: false,&#xa;</xsl:text>\n            <xsl:text>  hash: true,&#xa;</xsl:text>\n            <xsl:text>  transition: 'fade',&#xa;</xsl:text>\n            <xsl:text>  width: \"100%\",&#xa;</xsl:text>\n            <xsl:text>  height: \"100%\",&#xa;</xsl:text>\n            <xsl:text>  margin: \"0.025\",&#xa;</xsl:text>\n            <!-- Explicitly enable AMS-style inline \\(...\\),      -->\n            <!-- and explicitly disable TeX-style inline $...$    -->\n            <!-- The main HTML conversion does not do anything    -->\n            <!-- special for display math, so we disable any such -->\n            <!-- markup, since we use environments exclusively.   -->\n            <!-- N.B. default HTML adds a \"zero-width\" space into -->\n            <!-- a \\( authored in a non-math context.             -->\n            <!-- N.B. This may need to be changed for MathJax 3   -->\n\n            <!-- Suggested by  https://revealjs.com/math/, 2021-09-19 -->\n            <xsl:text>  math: {&#xa;</xsl:text>\n            <xsl:text>    mathjax: 'https://cdn.jsdelivr.net/gh/mathjax/mathjax@2.7.8/MathJax.js',&#xa;</xsl:text>\n            <xsl:text>    config: 'TeX-AMS_HTML-full',&#xa;</xsl:text>\n            <xsl:text>    // other options are passed into MathJax.Hub.Config()&#xa;</xsl:text>\n            <xsl:text>    tex2jax: {&#xa;</xsl:text>\n            <xsl:text>      inlineMath:  [['\\\\(','\\\\)']],&#xa;</xsl:text>\n            <xsl:text>      displayMath: [],&#xa;</xsl:text>\n            <xsl:text>    }&#xa;</xsl:text>\n            <xsl:text>  },&#xa;</xsl:text>\n            <xsl:text>  plugins: [ RevealMath ]&#xa;</xsl:text>\n            <xsl:text>});&#xa;</xsl:text>\n        </script>\n    </html>\n</xsl:template>\n\n<!-- A \"section\" contains multiple \"slide\", which we process,   -->\n<!-- but first we make a special slide announcing the \"section\" -->\n<!-- With reveal.js navigationMode set to \"default\" or \"grid\"   -->\n<!-- we organize title slides as the \"horizontal\" (or major)    -->\n<!-- slides, with the slides within a section as the \"vertical\" -->\n<!-- (or minor) slides.  But if the navigationMode is \"linear\"  -->\n<!-- we do not even create this two-deep organization at all,   -->\n<!-- in part because we think the linear mode is buggy for      -->\n<!-- the last vertical set.                                     -->\n<xsl:template match=\"section\">\n    <xsl:choose>\n        <xsl:when test=\"($reveal-navigation-mode = 'default') or ($reveal-navigation-mode = 'grid')\">\n            <section>\n                <section>\n                    <h2>\n                        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                    </h2>\n                </section>\n                <xsl:apply-templates select=\"slide\"/>\n            </section>\n        </xsl:when>\n        <xsl:when test=\"$reveal-navigation-mode = 'linear'\">\n            <section>\n                <h2>\n                    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                </h2>\n            </section>\n            <xsl:apply-templates select=\"slide\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:BUG: a reveal.js navigation mode (\"<xsl:value-of select=\"$reveal-navigation-mode\"/>\") is implemented but the section construction is not prepared for that mode</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"frontmatter\">\n    <section>\n      <section>\n        <!-- we assume an overall title exists -->\n        <h1>\n            <xsl:apply-templates select=\"$root/slideshow\" mode=\"title-full\" />\n        </h1>\n        <!-- subtitle would be optional, subsidary -->\n        <xsl:if test=\"$root/slideshow/subtitle\">\n            <h2>\n                <xsl:apply-templates select=\"$root/slideshow\" mode=\"subtitle\" />\n            </h2>\n        </xsl:if>\n        <!-- we assume at least one author, these are in a table -->\n        <xsl:apply-templates select=\"titlepage\" mode=\"author-list\"/>\n        <!-- optional \"event\" -->\n        <xsl:if test=\"bibinfo/event\">\n            <h3>\n                <xsl:apply-templates select=\"bibinfo/event\"/>\n            </h3>\n        </xsl:if>\n        <!-- optional \"date\" -->\n        <xsl:if test=\"bibinfo/date\">\n            <h3>\n                <xsl:apply-templates select=\"bibinfo/date\"/>\n            </h3>\n        </xsl:if>\n    </section>\n    <xsl:apply-templates select=\"abstract\"/>\n  </section>\n</xsl:template>\n\n<xsl:template match=\"titlepage\" mode=\"author-list\">\n  <table>\n  <tr>\n  <xsl:for-each select=\"$bibinfo/author\">\n    <th align=\"center\" style=\"border-bottom: 0px;\"><xsl:value-of select=\"personname\"/></th>\n  </xsl:for-each>\n</tr>\n  <tr>\n  <xsl:for-each select=\"$bibinfo/author\">\n    <td align=\"center\" style=\"border-bottom: 0px;\"><xsl:value-of select=\"affiliation|institution\"/></td>\n  </xsl:for-each>\n</tr>\n<tr>\n  <xsl:for-each select=\"$bibinfo/author\">\n    <td align=\"center\"><xsl:apply-templates select=\"logo\" /></td>\n  </xsl:for-each>\n  </tr>\n</table>\n</xsl:template>\n\n<xsl:template match=\"abstract\">\n    <section>\n          <h2>Abstract</h2>\n          <div align=\"left\">\n              <xsl:apply-templates select=\"*\"/>\n          </div>\n    </section>\n</xsl:template>\n\n<xsl:template match=\"slide\">\n    <section>\n          <xsl:variable name=\"slide-hN\">\n              <xsl:apply-templates select=\".\" mode=\"hN\">\n                  <xsl:with-param name=\"heading-level\" select=\"$reveal-slide-heading-level\"/>\n              </xsl:apply-templates>\n          </xsl:variable>\n          <xsl:element name=\"{$slide-hN}\">\n              <xsl:apply-templates select=\".\" mode=\"title-full\" />\n          </xsl:element>\n          <div align=\"left\">\n              <!-- Single monolithic page: heading levels are threaded, not -->\n              <!-- chunked.  The slide title is one level below a \"section\" -->\n              <!-- (when present); slide content is one level below that.   -->\n              <xsl:apply-templates select=\"*\">\n                  <xsl:with-param name=\"heading-level\" select=\"$reveal-slide-heading-level + 1\"/>\n              </xsl:apply-templates>\n          </div>\n      </section>\n</xsl:template>\n\n<xsl:template match=\"subslide\">\n  <div class=\"fragment\">\n    <xsl:apply-templates select=\"*\"/>\n  </div>\n</xsl:template>\n\n<xsl:template match=\"ul/li|ol/li\">\n  <li>\n    <xsl:if test=\"parent::*/@pause = 'yes'\">\n      <xsl:attribute name=\"class\">\n        <xsl:text>fragment</xsl:text>\n      </xsl:attribute>\n    </xsl:if>\n    <!-- content may be structured, or not -->\n    <xsl:if test=\"title\">\n        <h6 class=\"heading\">\n            <span class=\"title\">\n                <xsl:apply-templates select=\".\" mode=\"title-xref\"/>\n            </span>\n        </h6>\n    </xsl:if>\n    <xsl:apply-templates/>\n  </li>\n</xsl:template>\n\n<!-- We group dt/dd pairs in a div so that fragments work properly -->\n<!-- Yes, this seems to be legitimate HTML structure               -->\n<!-- https://www.stefanjudis.com/today-i-learned/                  -->\n<!-- divs-are-valid-elements-inside-of-a-definition-list/          -->\n<xsl:template match=\"dl/li\">\n  <div>\n    <xsl:if test=\"parent::*/@pause = 'yes'\">\n      <xsl:attribute name=\"class\">\n        <xsl:text>fragment</xsl:text>\n      </xsl:attribute>\n    </xsl:if>\n    <dt>\n      <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </dt>\n    <dd>\n      <!-- assumes content part is structured -->\n      <!-- title gets killed on-sight         -->\n      <xsl:apply-templates select=\"*\"/>\n    </dd>\n  </div>\n</xsl:template>\n\n<xsl:template match=\"p\">\n  <p>\n    <xsl:if test=\"@pause = 'yes'\">\n      <xsl:attribute name=\"class\">\n        <xsl:text>fragment</xsl:text>\n      </xsl:attribute>\n    </xsl:if>\n    <xsl:apply-templates/>\n  </p>\n</xsl:template>\n\n<!-- Images get wrapped in a div with @class=\"fragment\" if they are  -->\n<!-- paused                                                          -->\n<xsl:template match=\"image[not(ancestor::sidebyside) and (@pause='yes')]\">\n    <div class=\"fragment\">\n      <xsl:apply-imports/>\n    </div>\n</xsl:template>\n\n<!-- Side-By-Side -->\n<!-- Built by implementing two abstract   -->\n<!-- templates from the -common templates -->\n\n<!-- Overall wrapper of a sidebyside  -->\n<xsl:template match=\"sidebyside\" mode=\"compose-panels\">\n    <xsl:param name=\"layout\" />\n    <xsl:param name=\"panels\" />\n\n    <xsl:variable name=\"left-margin\"  select=\"$layout/left-margin\" />\n    <xsl:variable name=\"right-margin\" select=\"$layout/right-margin\" />\n\n    <div style=\"display: table;\">\n       <xsl:attribute name=\"class\">\n            <xsl:text>sidebyside</xsl:text>\n       </xsl:attribute>\n       <xsl:attribute name=\"style\">\n            <xsl:text>display:table;</xsl:text>\n            <xsl:text>margin-left:</xsl:text>\n            <xsl:value-of select=\"$left-margin\" />\n            <xsl:text>;</xsl:text>\n            <xsl:text>margin-right:</xsl:text>\n            <xsl:value-of select=\"$right-margin\" />\n            <xsl:text>;</xsl:text>\n        </xsl:attribute>\n        <xsl:copy-of select=\"$panels\" />\n    </div>\n</xsl:template>\n\n<!-- A single panel of the sidebyside -->\n<xsl:template match=\"*\" mode=\"panel-panel\">\n    <xsl:param name=\"width\" />\n    <xsl:param name=\"left-margin\" />\n    <xsl:param name=\"right-margin\" />\n    <xsl:param name=\"valign\" />\n\n    <xsl:element name=\"div\">\n        <xsl:if test=\"parent::sidebyside/@pause = 'yes'\">\n          <xsl:attribute name=\"class\">\n            <xsl:text>fragment</xsl:text>\n          </xsl:attribute>\n        </xsl:if>\n        <xsl:attribute name=\"style\">\n            <xsl:text>display:table-cell;</xsl:text>\n            <xsl:text>width:</xsl:text>\n            <xsl:call-template name=\"relative-width\">\n                <xsl:with-param name=\"width\" select=\"$width\" />\n                <xsl:with-param name=\"left-margin\"  select=\"$left-margin\" />\n                <xsl:with-param name=\"right-margin\" select=\"$right-margin\" />\n            </xsl:call-template>\n            <xsl:text>;</xsl:text>\n            <!-- top, middle, bottom -->\n            <xsl:text>vertical-align:</xsl:text>\n            <xsl:value-of select=\"$valign\"/>\n            <xsl:text>;</xsl:text>\n        </xsl:attribute>\n        <!-- Realize each panel's object -->\n        <xsl:apply-templates select=\".\">\n            <xsl:with-param name=\"width\" select=\"$width\" />\n        </xsl:apply-templates>\n    </xsl:element>\n</xsl:template>\n\n<xsl:template match=\"xref\">\n  [REF=TODO]\n</xsl:template>\n\n<!-- We don't want any permalinks -->\n<xsl:template match=\"*\" mode=\"permalink\"/>\n\n<!-- ######## -->\n<!-- Bad Bank -->\n<!-- ######## -->\n\n<!-- Reveal.js specific, so best to place inside this stylesheet.  -->\n\n<!-- A couple of temporary command-line stringparam will just be    -->\n<!-- ignored as this stylesheet was first released about the time   -->\n<!-- the publisher file came into existence.                        -->\n\n<!-- 2020-02-09: Stopped using a temporary \"theme\" stringparam -->\n<xsl:param name=\"theme\" select=\"''\"/>\n<!-- 2020-02-09: Stopped using a temporary \"local\" stringparam -->\n<xsl:param name=\"local\" select=\"''\"/>\n\n<xsl:template name=\"reveal-warnings\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Conversion to reveal.js presentations/slideshows is experimental&#xa;Requests for additional specific constructions welcome&#xa;Additional PreTeXt elements are subject to change</xsl:with-param>\n    </xsl:call-template>\n    <xsl:if test=\"not($theme = '')\">\n        <xsl:message >PTX:WARNING: the temporary \"theme\" stringparam is deprecated and is being ignored by the conversion to a Reveal.js slideshow.  Please switch to using a publisher file to set this option, see documentation in The Guide.  The default theme is \"simple\".</xsl:message>\n        <xsl:text>simple</xsl:text>\n    </xsl:if>\n    <xsl:if test=\"not($local = '')\">\n        <xsl:message >PTX:WARNING: the temporary \"local\" stringparam is deprecated and is being ignored.  Please switch to using a publisher file to set this option, see documentation in The Guide.  The default behavior is to get resources from a CDN.</xsl:message>\n    </xsl:if>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-runestone-fitb.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!DOCTYPE xsl:stylesheet>\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<xsl:variable name=\"b-include-postContent\" select=\"true()\"/>\n\n<!-- ==================================================== -->\n<!-- Actual rules for substution when generating HTML     -->\n<!-- ==================================================== -->\n\n<!-- Convert fillin tag to an input element on the page -->\n<xsl:template match=\"exercise[@exercise-interactive='fillin']//fillin\n                     | project[@exercise-interactive='fillin']//fillin\n                     | activity[@exercise-interactive='fillin']//fillin\n                     | exploration[@exercise-interactive='fillin']//fillin\n                     | investigation[@exercise-interactive='fillin']//fillin\n                     | task[@exercise-interactive='fillin']//fillin\">\n    <xsl:param name=\"b-human-readable\" />\n    <xsl:variable name=\"parent-id\">\n        <xsl:apply-templates select=\"ancestor::exercise\" mode=\"html-id\" />\n    </xsl:variable>\n    <xsl:element name=\"input\">\n        <xsl:attribute name=\"type\">\n            <xsl:choose>\n                <xsl:when test=\"@mode = 'number'\">\n                    <xsl:text>number</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>text</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"$parent-id\"/>\n            <xsl:text>-</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"blank-name\"/>\n        </xsl:attribute>\n        <xsl:if test=\"@name\">\n            <xsl:attribute name=\"name\"><xsl:value-of select=\"@name\"/></xsl:attribute>\n        </xsl:if>\n        <xsl:if test=\"@width\">\n            <xsl:attribute name=\"size\">\n                <xsl:value-of select=\"@width\"/>\n            </xsl:attribute>\n        </xsl:if>\n    </xsl:element>\n</xsl:template>\n\n<!-- ========================================================= -->\n<!-- The Runestone element is based on JSON scripts describing -->\n<!-- the exercise, how to set it up, and how to evaluate it.   -->\n<!-- The HTML will contain this JSON and Runestone extracts it -->\n<!-- and inserts it into the HTML page via JS.                 -->\n<!-- ========================================================= -->\n<xsl:template match=\"exercise[@exercise-interactive='fillin']\n                     | project[@exercise-interactive='fillin']\n                     | activity[@exercise-interactive='fillin']\n                     | exploration[@exercise-interactive='fillin']\n                     | investigation[@exercise-interactive='fillin']\n                     | task[@exercise-interactive='fillin']\" mode=\"runestone-to-interactive\">\n    <xsl:variable name=\"b-is-dynamic\" select=\"boolean(./setup)\"/>\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone\">\n            <div data-component=\"fillintheblank\" class=\"fillintheblank\" style=\"visibility: hidden;\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <script type=\"application/json\">\n                    <xsl:text>{&#xa;</xsl:text>\n                    <!-- A seed is provided to generate consistent static content -->\n                    <xsl:if test=\"setup and $b-dynamics-static-seed\">\n                        <xsl:text>\"static_seed\": \"</xsl:text>\n                        <xsl:choose>\n                            <xsl:when test=\"setup/@seed\">\n                                <xsl:value-of select=\"setup/@seed\"/>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <!-- Report if a seed is not provided-->\n                                <xsl:message>PTX:WARNING:   Dynamic exercise \"<xsl:value-of select=\"@visible-id\"/>\" is missing setup @seed for static content generation.</xsl:message>\n                                <xsl:text>1234</xsl:text>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                        <xsl:text>\",&#xa;</xsl:text>\n                    </xsl:if>\n                    <!-- The formatted HTML presentation of the problem, -->\n                    <!-- with escape codes for dynamic content, all of   -->\n                    <!-- which is serialized and escaped to a string.    -->\n                    <xsl:text>\"problemHtml\": </xsl:text>\n                    <xsl:call-template name=\"escape-quote-xml\">\n                        <xsl:with-param name=\"xml_content\">\n                            <xsl:apply-templates select=\"statement/*\" />\n                            <xsl:if test=\"$b-dynamics-static-seed\">\n                                <div>\n                                    <xsl:attribute name=\"id\">\n                                        <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n                                        <xsl:text>-substitutions</xsl:text>\n                                    </xsl:attribute>\n                                    <xsl:apply-templates select=\"(statement|solution)//eval[@obj]|evaluation//feedback//eval[@obj]|statement//fillin[@ansobj]\" mode=\"track-evaluation\" />\n                                </div>\n                            </xsl:if>\n                        </xsl:with-param>\n                    </xsl:call-template>\n                    <!-- The formatted HTML presentation of the solution, -->\n                    <!-- similar to statement but no fillins              -->\n                    <xsl:text>,&#xa;\"solutionHtml\": </xsl:text>\n                    <xsl:call-template name=\"escape-quote-xml\">\n                        <xsl:with-param name=\"xml_content\">\n                            <xsl:apply-templates select=\"solution/*\" />\n                        </xsl:with-param>\n                    </xsl:call-template>\n                    <!-- Add packages that need to be loaded as javascript -->\n                    <xsl:if test=\"$b-is-dynamic\">\n                        <xsl:text>,&#xa;\"dyn_imports\": [</xsl:text>\n                        <xsl:text>\"BTM\"</xsl:text>\n                        <!-- Future: add additional packages here -->\n                        <xsl:text>]</xsl:text>\n                    </xsl:if>\n                    <!-- Names assigned to the blanks.      -->\n                    <!-- Empty if none named.               -->\n                    <xsl:text>,&#xa;\"blankNames\": {</xsl:text>\n                    <xsl:apply-templates select=\"statement//fillin\" mode=\"declare-blanks\" />\n                    <xsl:text>}</xsl:text>\n                    <xsl:if test=\"$b-is-dynamic\">\n                        <!-- The actual setup code is javascript enclosed in quotes. -->\n                        <!-- The declaration creates the objects that are needed.    -->\n                        <!-- The script is included as an escaped string             -->\n                        <xsl:text>,&#xa;\"dyn_vars\": </xsl:text>\n                        <xsl:call-template name=\"dynamic-setup\" />\n                    </xsl:if>\n                    <!-- An array of tests and feedback for answer evaluation    -->\n                    <!-- Each blank has a corresponding array of test/feedback   -->\n                    <!-- response. The test is Javascript (stringified) that     -->\n                    <!-- returns a boolean response. The first test is for       -->\n                    <!-- correctness. The last response is default.              -->\n                    <xsl:text>,&#xa;\"feedbackArray\": [</xsl:text>\n                    <!-- In case all answers are based on one test               -->\n                    <xsl:variable name=\"multiAns\">\n                        <xsl:apply-templates select=\"evaluation\" mode=\"get-multianswer-check\"/>\n                    </xsl:variable>\n                    <!-- Generate test/feedback pair for each fillin             -->\n                    <xsl:apply-templates select=\"statement//fillin\" mode=\"dynamic-feedback\">\n                        <xsl:with-param name=\"multiAns\" select=\"$multiAns\" />\n                    </xsl:apply-templates>\n                    <xsl:text>]</xsl:text>\n                    <xsl:text>&#xa;}</xsl:text>\n                </script>\n            </div>\n            <xsl:text>&#xa;</xsl:text>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- Fillins can be provided a name or use a default rule -->\n<xsl:template match=\"fillin\" mode=\"blank-name\">\n    <xsl:choose>\n        <xsl:when test=\"@name\">\n            <xsl:value-of select=\"@name\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>blank</xsl:text>\n            <xsl:value-of select=\"position()\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Creating a list of blank names. -->\n<xsl:template match=\"fillin\" mode=\"declare-blanks\">\n    <xsl:variable name=\"blankNum\">\n        <xsl:value-of select=\"position()\" />\n    </xsl:variable>\n    <xsl:if test=\"$blankNum>1\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n    <xsl:call-template name=\"quote-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"blank-name\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>: </xsl:text>\n    <xsl:value-of select=\"$blankNum - 1\"/>\n</xsl:template>\n\n<!-- #eval in a dynamic exercise (has setup) is to evaluate -->\n<!-- an expression that has been previously generated. If   -->\n<!-- in math-mode, we want to see if it is an object that   -->\n<!-- knows how to formulate a LaTeX representation          -->\n<!-- The `toTeX` javascript function is defined in BTM.js   -->\n<!-- which is loaded by Runestone.                          -->\n<xsl:template match=\"eval[@obj]\">\n    <xsl:text>[%= </xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"ancestor::m|ancestor::mrow\">\n            <xsl:text>toTeX(</xsl:text>\n            <xsl:value-of select=\"@obj\"/>\n            <xsl:text>)</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"@obj\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text> %]</xsl:text>\n</xsl:template>\n\n\n<!-- Part of static output content extraction process,   -->\n<!-- this creates elements that will be pulled from the  -->\n<!-- stand-alone page into a generated XML document that -->\n<!-- gives the actual substitution in static mode.       -->\n<xsl:template match=\"eval[@obj]\" mode=\"track-evaluation\">\n    <eval-subst>\n        <xsl:attribute name=\"obj\">\n            <xsl:value-of select=\"@obj\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\"/>\n    </eval-subst>\n</xsl:template>\n\n<xsl:template match=\"fillin[@ansobj]\" mode=\"track-evaluation\">\n    <eval-subst>\n        <xsl:attribute name=\"obj\">\n            <xsl:value-of select=\"@ansobj\"/>\n        </xsl:attribute>\n        <xsl:variable name=\"temp-eval\">\n            <xsl:choose>\n                <xsl:when test=\"@mode='math' or @mode='number'\">\n                    <m><eval>\n                        <xsl:attribute name=\"obj\">\n                            <xsl:value-of select=\"@ansobj\"/>\n                        </xsl:attribute>\n                    </eval></m>\n                </xsl:when>\n                <xsl:otherwise>\n                    <eval>\n                        <xsl:attribute name=\"obj\">\n                            <xsl:value-of select=\"@ansobj\"/>\n                        </xsl:attribute>\n                    </eval>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <xsl:apply-templates select=\"exsl:node-set($temp-eval)//eval\"/>\n    </eval-subst>\n</xsl:template>\n\n\n<!-- Create the dynamic aspect of the problem.           -->\n<!-- Define all of the mathematical elements as well as  -->\n<!-- objects (e.g. graphs) that might depend on them     -->\n<!-- A script in setup/setupScript is executed after     -->\n<!-- object-based setup concludes.                       -->\n<!-- A script in setup/postRenderScript is executed      -->\n<!-- after the dynamic creation is complete.             -->\n<xsl:template name=\"dynamic-setup\">\n    <xsl:variable name=\"js_code\">\n        <!-- Initialize the evaluation environment -->\n        <xsl:call-template name=\"setup-evaluation-environment\"/>\n        <!-- Any direct JS for environment setup   -->\n        <xsl:if test=\"setup/setupScript\">\n            <xsl:value-of select=\"setup/setupScript\"/>\n        </xsl:if>\n        <!-- Prepare evaluation and feedback       -->\n        <xsl:call-template name=\"setup-fillin-parsers\"/>\n        <!-- Create the call-back for post-render tasks -->\n        <xsl:if test=\"$b-include-postContent\">\n            <xsl:call-template name=\"setup-postContent\"/>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:call-template name=\"escape-quote-string\">\n        <xsl:with-param name=\"text\" select=\"$js_code\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Parse any settings for the math environment for the problem -->\n<xsl:template name=\"setup-evaluation-environment\">\n    <xsl:text>v._mobjs = new BTM({</xsl:text>\n        <!-- Setup seeded random number generator  -->\n        <xsl:text>'rand': rand</xsl:text>\n        <!-- FUTURE: Pull additional settings from an environment element -->\n        <xsl:apply-templates select=\"de-environment\" mode=\"runestone-setup\"/>\n    <xsl:text>});&#xa;</xsl:text>\n    <xsl:text>var RNG = v._mobjs.menv.rng;&#xa;</xsl:text>\n    <!-- Generate all of the XML-declared math objects -->\n    <xsl:apply-templates select=\"setup/de-object\" mode=\"runestone-setup\"/>\n</xsl:template>\n\n<!-- Environment Setup: Define the mathematical objects -->\n<xsl:template match=\"de-object\" mode=\"runestone-setup\">\n    <xsl:text>v.</xsl:text><xsl:value-of select=\"@name\"/>\n    <xsl:text> = v._mobjs.addMathObject(</xsl:text>\n    <xsl:call-template name=\"quote-string\">\n        <xsl:with-param name=\"text\" select=\"@name\"/>\n    </xsl:call-template>\n    <xsl:text>, </xsl:text>\n    <!-- Get the context of the object here -->\n    <xsl:call-template name=\"quote-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:choose>\n                <!-- Usually use value of @context but in case strings change. -->\n                <xsl:when test=\"@context='interval' or @context='set'\">\n                    <xsl:text>set</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"@context\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>, </xsl:text>\n    <xsl:apply-templates select=\"*\" mode=\"evaluate\">\n        <xsl:with-param name=\"setupMode\"><xsl:text>1</xsl:text></xsl:with-param>\n    </xsl:apply-templates>\n    <xsl:text>);&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Runestone requires declaring an array of answer-types for  -->\n<!-- validating and parsing what the user enters as a response. -->\n<xsl:template name=\"setup-fillin-parsers\">\n    <xsl:text>v.types = [</xsl:text>\n    <xsl:apply-templates select=\"statement//fillin\" mode=\"setup-parsers\" />\n    <xsl:text>];&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Create a call-back for what occurs post-rendering.  -->\n<!-- This includes automated tasks as well as any script -->\n<!-- commands in setup/postRenderScript                  -->\n<xsl:template name=\"setup-postContent\">\n    <xsl:text>v.afterContentRender = function() {&#xa;</xsl:text>\n        <xsl:if test=\"setup/postRenderScript\">\n            <xsl:value-of select=\"setup/postRenderScript\"/>\n        </xsl:if>\n    <xsl:text>};&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- Each fillin defines a blank. Establish the list of parsers. -->\n<!-- During setup and called while creating dyn_vars.            -->\n<xsl:template match=\"fillin\" mode=\"setup-parsers\">\n    <xsl:if test=\"position() > 1\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n     <xsl:choose>\n        <xsl:when test=\"@mode='math-formula'\">\n            <xsl:text>v._mobjs.getParser()</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"@mode='number'\">\n            <xsl:text>Number</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>function(val){ return val; }</xsl:text>\n        </xsl:otherwise>\n     </xsl:choose>\n</xsl:template>\n\n\n<!-- ========================================================== -->\n<!-- Evaluation and Feedback                                    -->\n<!-- ========================================================== -->\n\n<!-- Default localized feedback strings. -->\n<xsl:template match=\"*\" mode=\"get-default-feedback\">\n    <xsl:param name=\"b-correct\" select=\"'no'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$b-correct='yes'\">\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'correct'\"/>\n            </xsl:apply-templates>\n            <xsl:text>!</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"type-name\">\n                <xsl:with-param name=\"string-id\" select=\"'incorrect'\"/>\n            </xsl:apply-templates>\n            <xsl:text>.</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Deal with possibility of global checker for all blanks -->\n<xsl:template match=\"evaluation\" mode=\"get-multianswer-check\">\n    <xsl:variable name=\"responseTree\" select=\"../statement//fillin\" />\n    <xsl:if test=\"count($responseTree) > 1 and evaluate[@all='yes']/test\">\n        <xsl:apply-templates select=\"evaluate[@all='yes']/test\" mode=\"create-test-feedback\">\n            <xsl:with-param name=\"b-correct\" select=\"'yes'\"/>\n            <xsl:with-param name=\"fillin\" select=\"$responseTree\"/>\n        </xsl:apply-templates>\n    </xsl:if>\n</xsl:template>\n\n<!-- Return the index of an evaluate -->\n<xsl:template match=\"evaluation/evaluate\" mode=\"get-index\">\n    <xsl:value-of select=\"position()\"/>\n</xsl:template>\n\n<!-- Build feedback based on the #evaluate element. -->\n<xsl:template match=\"evaluate\" mode=\"dynamic-feedback\">\n    <xsl:param name=\"multiAns\"/>\n    <xsl:param name=\"match-fillin\"/>\n\n    <!-- Defend against name mismatches -->\n    <xsl:if test=\"@name and $match-fillin/@name and not(@name = $match-fillin/@name)\">\n        <xsl:message>PTX:ERROR:    Dynamic content missing label \"<xsl:value-of select=\"@visible-id\"/>\"</xsl:message>\n    </xsl:if>\n\n    <!-- First check is for correctness. -->\n    <xsl:text>[</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"string-length($multiAns) > 0\">\n            <xsl:value-of select=\"$multiAns\"/>\n        </xsl:when>\n        <xsl:when test=\"test[@correct='yes']\">\n            <xsl:apply-templates select=\"test[@correct='yes']\" mode=\"create-test-feedback\">\n                <xsl:with-param name=\"fillin\" select=\"$match-fillin\" />\n                <xsl:with-param name=\"b-correct\" select=\"'yes'\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- If no explicit test is provided, use given answer. -->\n        <xsl:otherwise>\n            <xsl:text>{</xsl:text>\n            <xsl:choose>\n                <xsl:when test=\"$match-fillin/@answer\">\n                    <xsl:choose>\n                        <xsl:when test=\"$match-fillin/@mode='number'\">\n                            <xsl:text>\"number\": [</xsl:text>\n                            <xsl:value-of select=\"$match-fillin/@answer\"/>\n                            <xsl:text>,</xsl:text>\n                            <xsl:value-of select=\"$match-fillin/@answer\"/>\n                            <xsl:text>]</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"$match-fillin/@mode='string'\">\n                            <xsl:text>\"regex\": \"</xsl:text>\n                            <xsl:value-of select=\"$match-fillin/@answer\"/>\n                            <xsl:text>\"</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:message>PTX:ERROR: fillin has an @answer with invalid or missing mode (valid: number or string) in \"<xsl:value-of select=\"@visible-id\"/>. If dynamic, you should use @ansobj.\".</xsl:message>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:when>\n                <xsl:when test=\"$match-fillin/@ansobj\">\n                    <xsl:choose>\n                        <xsl:when test=\"$match-fillin/@mode='number'\">\n                            <xsl:text>function() {&#xa;</xsl:text>\n                            <xsl:text>    return (Math.abs(</xsl:text>\n                            <xsl:value-of select=\"$match-fillin/@ansobj\"/>\n                            <xsl:text>- ans) &lt; 1e-10);&#xa;}</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"$match-fillin/@mode='string'\">\n                            <xsl:text>function() {&#xa;</xsl:text>\n                            <xsl:text>    return (</xsl:text>\n                            <xsl:value-of select=\"$match-fillin/@ansobj\"/>\n                            <xsl:text>== ans);&#xa;}</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"$match-fillin/@mode='math'\">\n                            <xsl:text>function() {&#xa;</xsl:text>\n                            <xsl:text>    return _mobjs.compareExpressions(</xsl:text>\n                            <xsl:value-of select=\"$match-fillin/@ansobj\"/>\n                            <xsl:text>, ans</xsl:text>\n                            <xsl:text>);&#xa;}</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:message>PTX:ERROR: fillin has an @ansobj with invalid or missing mode (valid: number|string|math) in \"<xsl:value-of select=\"@visible-id\"/>\".</xsl:message>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:ERROR: No method provided to identify a correct answer for #fillin in \"<xsl:value-of select=\"@visible-id\"/>\".</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>, \"feedback\": \"</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"get-default-feedback\">\n                <xsl:with-param name=\"b-correct\" select=\"'yes'\"/>\n            </xsl:apply-templates>\n            <xsl:text>\"}</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n\n    <!-- Now add additional checks for feedback. -->\n    <xsl:for-each select=\"test[not(@correct='yes')]\">\n        <xsl:text>, </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"create-test-feedback\">\n            <xsl:with-param name=\"fillin\" select=\"$match-fillin\"/>\n        </xsl:apply-templates>\n    </xsl:for-each>\n    <!-- Default feedback for the blank. Always evaluates true.   -->\n    <xsl:text>, {\"feedback\": \"</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"get-default-feedback\">\n        <xsl:with-param name=\"b-correct\" select=\"'no'\"/>\n    </xsl:apply-templates>\n    <xsl:text>\"}]</xsl:text>\n</xsl:template>\n\n<!-- Template for answer checking. Actual work done by specialized templates. -->\n<xsl:template match=\"fillin\" mode=\"dynamic-feedback\">\n    <xsl:param name=\"multiAns\"/>\n    <xsl:variable name=\"curFillIn\" select=\".\"/>\n    <xsl:variable name=\"fillinName\">\n        <xsl:apply-templates select=\".\" mode=\"blank-name\"/>\n    </xsl:variable>\n    <xsl:variable name=\"blankNum\">\n        <xsl:value-of select=\"position()\" />\n    </xsl:variable>\n\n    <!-- we need to know which #evaluate matches the #fillin -->\n    <xsl:variable name=\"evaluate-index\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::statement/../evaluation/evaluate[@name = $fillinName]\">\n                <xsl:apply-templates select=\"ancestor::statement/../evaluation/evaluate[@name = $fillinName]\" mode=\"get-index\"/>\n            </xsl:when>\n            <xsl:when test=\"ancestor::statement/../evaluation/evaluate[position() = $blankNum]\">\n                <xsl:value-of select=\"$blankNum\"/>\n            </xsl:when>\n            <!-- No check matches: Make blank default. -->\n            <xsl:otherwise>\n                <xsl:number value=\"-1\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:if test=\"$blankNum > 1\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n    <xsl:choose>\n        <!-- First look for a matching name. -->\n        <xsl:when test=\"ancestor::statement/../evaluation/evaluate[@name = $fillinName]\">\n            <xsl:apply-templates select=\"ancestor::statement/../evaluation/evaluate[@name = $fillinName]\" mode=\"dynamic-feedback\">\n                <xsl:with-param name=\"multiAns\" select=\"$multiAns\"/>\n                <xsl:with-param name=\"match-fillin\" select=\".\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- Otherwise match on order. -->\n        <xsl:when test=\"ancestor::statement/../evaluation/evaluate[position() = $blankNum]\">\n            <xsl:apply-templates select=\"ancestor::statement/../evaluation/evaluate[position() = $blankNum]\" mode=\"dynamic-feedback\">\n                <xsl:with-param name=\"multiAns\" select=\"$multiAns\"/>\n                <xsl:with-param name=\"match-fillin\" select=\".\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- No check matches: Make blank default. -->\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: No matching #evaluate for #fillin in \"<xsl:value-of select=\"@visible-id\"/>\".</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"test\" mode=\"create-test-feedback\">\n    <xsl:param name=\"fillin\"/>\n    <xsl:param name=\"b-correct\" select=\"'no'\"/>\n    <xsl:variable name=\"feedback-rtf\">\n        <xsl:apply-templates select=\"feedback\"/>\n    </xsl:variable>\n    <xsl:text>{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"create-test\">\n        <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n    </xsl:apply-templates>\n    <xsl:text>, \"feedback\": \"</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"feedback\">\n            <!-- serialize HTML as text, then escape as JSON -->\n            <xsl:call-template name=\"escape-json-string\">\n                <xsl:with-param name=\"text\">\n                    <xsl:apply-templates select=\"exsl:node-set($feedback-rtf)\" mode=\"xml-to-string\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\".\" mode=\"get-default-feedback\">\n                <xsl:with-param name=\"b-correct\" select=\"$b-correct\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n<xsl:text>\"}</xsl:text>\n</xsl:template>\n\n<!-- Template for simple answer checkers: no interaction between different fillins. -->\n<!-- Add a post-filter to deal with additional feedback, similar to AnswerHints but allowing more complex logic. -->\n<!-- JSON dictionary for numerical condition -->\n<xsl:template match=\"test[numcmp]\" mode=\"create-test\">\n    <xsl:param name=\"fillin\"/>\n    <xsl:choose>\n        <xsl:when test=\"(numcmp/@use-answer='yes' and $fillin/@ansobj) or numcmp/@object\">\n            <xsl:apply-templates select=\".\" mode=\"create-test-ansobj\">\n                <xsl:with-param name=\"fillin\" select=\"$fillin\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"answer\">\n                <xsl:choose>\n                    <xsl:when test=\"numcmp/@use-answer='yes' and $fillin/@answer\">\n                        <xsl:value-of select=\"$fillin/@answer\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"numcmp/@value\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:variable name=\"tolerance\">\n                <xsl:choose>\n                    <xsl:when test=\"numcmp/@use-answer='yes' and $fillin/@tolerance\">\n                        <xsl:value-of select=\"$fillin/@tolerance\"/>\n                    </xsl:when>\n                    <xsl:when test=\"numcmp/@tolerance\">\n                        <xsl:value-of select=\"numcmp/@tolerance\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>0</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:variable name=\"min-val\">\n              <xsl:choose>\n                <xsl:when test=\"numcmp/@min\">\n                  <xsl:value-of select=\"numcmp/@min\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                  <xsl:value-of select=\"$answer - $tolerance\"/>\n                </xsl:otherwise>\n              </xsl:choose>\n            </xsl:variable>\n            <xsl:variable name=\"max-val\">\n              <xsl:choose>\n                <xsl:when test=\"numcmp/@max\">\n                  <xsl:value-of select=\"numcmp/@max\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                  <xsl:value-of select=\"$answer + $tolerance\"/>\n                </xsl:otherwise>\n              </xsl:choose>\n            </xsl:variable>\n            <xsl:text>\"number\": [</xsl:text>\n            <xsl:value-of select=\"$min-val\"/>\n            <xsl:text>,</xsl:text>\n            <xsl:value-of select=\"$max-val\"/>\n            <xsl:text>]</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- When the comparison is with an object, we rely on function comparisons. -->\n<xsl:template match=\"test[numcmp]\" mode=\"create-test-ansobj\">\n    <xsl:param name=\"fillin\"/>\n    <xsl:variable name=\"ansObject\">\n        <xsl:choose>\n            <xsl:when test=\"numcmp/@use-answer='yes' and $fillin/@ansobj\">\n                <xsl:value-of select=\"$fillin/@ansobj\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"numcmp/@object\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"tolerance\">\n        <xsl:choose>\n            <xsl:when test=\"numcmp/@use-answer='yes' and $fillin/@tolerance\">\n                <xsl:value-of select=\"$fillin/@tolerance\"/>\n            </xsl:when>\n            <xsl:when test=\"numcmp/@tolerance\">\n                <xsl:value-of select=\"numcmp/@tolerance\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>0</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"min-val\">\n        <xsl:choose>\n            <xsl:when test=\"numcmp/@min\">\n                <xsl:value-of select=\"numcmp/@min\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$ansObject\"/>\n                <xsl:text> - </xsl:text>\n                <xsl:value-of select=\"$tolerance\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"max-val\">\n        <xsl:choose>\n            <xsl:when test=\"numcmp/@max\">\n                <xsl:value-of select=\"numcmp/@max\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$ansObject\"/>\n                <xsl:text> + </xsl:text>\n                <xsl:value-of select=\"$tolerance\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:text>\"solution_code\": </xsl:text>\n    <xsl:variable name=\"js_code\">\n        <xsl:text>function() { </xsl:text>\n        <xsl:text>return (ans &gt;= </xsl:text>\n        <xsl:value-of select=\"$min-val\"/>\n        <xsl:text>) &amp;&amp; (ans &lt;= </xsl:text>\n        <xsl:value-of select=\"$max-val\"/>\n        <xsl:text>); }()</xsl:text>\n    </xsl:variable>\n    <xsl:call-template name=\"escape-quote-string\">\n        <xsl:with-param name=\"text\" select=\"$js_code\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- JSON dictionary for string condition -->\n<xsl:template match=\"test[strcmp]\" mode=\"create-test\">\n    <xsl:param name=\"fillin\"/>\n    <xsl:choose>\n        <xsl:when test=\"strcmp/@use-answer='yes' and $fillin/@ansobj or strcmp//eval\">\n            <xsl:apply-templates mode=\"create-test-ansobj\">\n                <xsl:with-param name=\"fillin\" select=\"$fillin\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"answer\">\n                <xsl:choose>\n                    <xsl:when test=\"strcmp/@use-answer='yes'\">\n                        <xsl:value-of select=\"$fillin/@answer\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"strcmp\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:variable>\n            <xsl:variable name=\"regexFlags\">\n                <xsl:choose>\n                    <xsl:when test=\"strcmp/@use-answer='yes' and $fillin/@case = 'insensitive'\">\n                        <xsl:text>i</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"strcmp/@case = 'insensitive'\">\n                        <xsl:text>i</xsl:text>\n                    </xsl:when>\n                    <!-- Otherwise nothing -->\n                </xsl:choose>\n            </xsl:variable>\n            <!-- regex string match, drop    -->\n            <!-- leading/trailing whitespace -->\n            <xsl:text>\"regex\": \"</xsl:text>\n            <!-- JSON escapes necessary for regular expression -->\n            <xsl:call-template name=\"escape-json-string\">\n                <xsl:with-param name=\"text\">\n                    <xsl:choose>\n                        <xsl:when test=\"strcmp/@strip = 'no'\">\n                            <xsl:value-of select=\"$answer\"/>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>^\\s*</xsl:text>\n                            <xsl:value-of select=\"$answer\"/>\n                            <xsl:text>\\s*$</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:with-param>\n            </xsl:call-template>\n            <xsl:text>\"</xsl:text>\n            <!-- flag for case-sensitive match -->\n            <!-- default:  'sensitive'         -->\n            <xsl:text>, \"regexFlags\": \"</xsl:text>\n            <xsl:value-of select=\"$regexFlags\"/>\n            <xsl:text>\"</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- When the comparison is with an object, we rely on function comparisons. -->\n<xsl:template match=\"test[strcmp]\" mode=\"create-test-ansobj\">\n    <xsl:variable name=\"regex\">\n        <xsl:choose>\n            <xsl:when test=\"strcmp/@use-answer='yes' and $fillin/@ansobj\">\n                <xsl:text>`${</xsl:text>\n                <xsl:value-of select=\"$fillin/@ansobj\"/>\n                <xsl:text>}`</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>`</xsl:text>\n                <xsl:apply-templates select=\"strcmp/*\" mode=\"strcmp-object-substitution\"/>\n                <xsl:text>`</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"regexFlags\">\n        <xsl:choose>\n            <xsl:when test=\"strcmp/@use-answer='yes' and $fillin/@case = 'insensitive'\">\n                <xsl:text>i</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"strcmp/@case = 'insensitive'\">\n                <xsl:text>i</xsl:text>\n            </xsl:when>\n            <!-- Otherwise Nothing -->\n        </xsl:choose>\n    </xsl:variable>\n    <!-- create a function to do the regex -->\n    <xsl:text>\"solution_code\": </xsl:text>\n    <xsl:variable name=\"js_code\">\n        <xsl:text>function(){&#xa;</xsl:text>\n            <xsl:text>  const re_str = </xsl:text><xsl:value-of select=\"$regex\"/><xsl:text>;&#xa;</xsl:text>\n            <xsl:text>  const re = new RegExp(re_str, \"</xsl:text>\n            <xsl:value-of select=\"$regexFlags\"/>\n            <xsl:text>\");&#xa;</xsl:text>\n            <xsl:text>  return re.test(ans);&#xa;</xsl:text>\n            <xsl:text>}()&#xa;</xsl:text>\n            </xsl:variable>\n    <xsl:call-template name=\"escape-quote-string\">\n        <xsl:with-param name=\"text\" select=\"$js_code\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template match=\"eval\" mode=\"strcmp-object-substitution\">\n    <xsl:text>${</xsl:text>\n    <xsl:value-of select=\".\"/>\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"strcmp-object-substitution\">\n    <xsl:copy-of select=\".\"/>\n</xsl:template>\n\n<!-- Otherwise create a function that deals with the test. -->\n<xsl:template match=\"test\" mode=\"create-test\">\n    <xsl:param name=\"fillin\" />\n    <xsl:variable name=\"conditions\" select=\"*[not(self::feedback)]\"/>\n    <xsl:text>\"solution_code\": </xsl:text>\n    <xsl:variable name=\"js_code\">\n        <xsl:text>function() {&#xa;</xsl:text>\n        <!-- Create a checker function. Initialize a stack of flag variables to track results. -->\n        <xsl:text>    var testResults = new Array();&#xa;</xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"count($conditions) = 1\">\n                <xsl:call-template name=\"checker-simple\">\n                    <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                    <xsl:with-param name=\"curTest\" select=\"$conditions\" />\n                    <xsl:with-param name=\"level\" select=\"0\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:call-template name=\"checker-layer\">\n                    <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                    <xsl:with-param name=\"tests\" select=\"$conditions\" />\n                    <xsl:with-param name=\"level\" select=\"0\" />\n                    <xsl:with-param name=\"logic\" select=\"'and'\" /> <!-- All tests at first layer must be true -->\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:text>    return (testResults[0]);&#xa;</xsl:text>\n        <xsl:text>}()</xsl:text>\n    </xsl:variable>\n    <xsl:call-template name=\"escape-quote-string\">\n        <xsl:with-param name=\"text\" select=\"$js_code\"/>\n    </xsl:call-template>\n</xsl:template>\n\n\n<!-- This template is called for a simple test (no compound logic). -->\n<xsl:template name=\"checker-simple\">\n    <xsl:param name=\"curTest\" />\n    <xsl:param name=\"fillin\" />\n    <xsl:param name=\"level\" select=\"0\" />\n    <xsl:choose>\n        <!-- Test might be coded directly in javascript -->\n        <xsl:when test=\"name($curTest) = 'jscmp'\">\n            <xsl:text>    testResults[</xsl:text>\n            <xsl:value-of select=\"$level\" />\n            <xsl:text>] = </xsl:text>\n            <xsl:value-of select=\"$curTest\"/>\n        </xsl:when>\n        <!-- Test might require logic -->\n        <xsl:when test=\"name($curTest)='logic'\">\n            <xsl:call-template name=\"checker-layer\">\n                <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                <xsl:with-param name=\"tests\" select=\"$curTest/*\" />\n                <xsl:with-param name=\"level\" select=\"$level + 1\" />\n                <xsl:with-param name=\"logic\" select=\"$curTest/@op\" /> <!-- Default: All tests at first layer must be true -->\n            </xsl:call-template>\n            <xsl:text>    testResults[</xsl:text>\n            <xsl:value-of select=\"$level\" />\n            <xsl:text>] = testResults[</xsl:text>\n            <xsl:value-of select=\"$level + 1\" />\n            <xsl:text>];&#xa;</xsl:text>\n        </xsl:when>\n        <!-- Otherwise simple test -->\n        <xsl:otherwise>\n            <!-- A test can have an implied equal or an explicit equal -->\n            <!-- At root level, the test might also have a feedback. Skip that. -->\n            <xsl:text>    testResults[</xsl:text>\n            <xsl:value-of select=\"$level\" />\n            <xsl:text>] = </xsl:text>\n            <xsl:text>_mobjs.compareExpressions(</xsl:text>\n            <xsl:choose>\n                <!-- An equal element must have two expression children. -->\n                <xsl:when test=\"name($curTest)='mathcmp' and $curTest/@use-answer='yes'\">\n                    <xsl:choose>\n                        <xsl:when test=\"not($fillin/@ansobj)\">\n                            <xsl:message>PTX:WARNING: Feedback for \"<xsl:value-of select=\"@visible-id\"/>\" says to use given math answer, but @ansobj not defined. </xsl:message>\n                            <xsl:text>UNDEFINED</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:value-of select=\"$fillin/@ansobj\"/>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                    <xsl:text>, ans</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"name($curTest)='mathcmp' and $curTest/@obj\">\n                    <xsl:value-of select=\"$curTest/@obj\"/>\n                    <xsl:text>, ans</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"name($curTest)='mathcmp' and count($curTest/*)=1\">\n                    <xsl:apply-templates select=\"$curTest/*[1]\" mode=\"evaluate\"/>\n                    <xsl:text>, ans</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"name($curTest)='mathcmp' and count($curTest/*)=2\">\n                    <xsl:apply-templates select=\"$curTest/*[1]\" mode=\"evaluate\"/>\n                    <xsl:text>, </xsl:text>\n                    <xsl:apply-templates select=\"$curTest/*[2]\" mode=\"evaluate\"/>\n                </xsl:when>\n                <!-- An implied equal compares the submitted answer to the given expression. -->\n                <xsl:otherwise>   <!-- Must be expression: #eval or #de-expression -->\n                    <xsl:apply-templates select=\"$curTest\" mode=\"evaluate\"/>\n                    <xsl:text>, ans</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <xsl:text>)</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>;&#xa;</xsl:text>\n</xsl:template>\n\n<!-- A test can also be composite involving a combination of logical tests -->\n<!-- This template works through one layer, recursively dealing with deeper layers as needed -->\n<xsl:template name=\"checker-layer\" >\n    <xsl:param name=\"fillin\" />\n    <xsl:param name=\"tests\" />                   <!-- The layer of tests (subtree) -->\n    <xsl:param name=\"level\" select=\"0\" />        <!-- Level (or depth) of the layer -->\n    <xsl:param name=\"logic\" select=\"'and'\" />    <!-- and = all must be true, or = at least one, not = negation -->\n    <xsl:choose>\n        <xsl:when test=\"$logic = 'and'\">         <!-- Treat logic like multipication. A single false (0) makes product zero -->\n            <xsl:text>    testResults[</xsl:text><xsl:value-of select=\"$level\" /><xsl:text>] = 1;&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$logic = 'or'\">         <!-- Treat logic like addition. A single true makes sum positive -->\n            <xsl:text>testResults[</xsl:text><xsl:value-of select=\"$level\" /><xsl:text>] = 0;&#xa;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$logic = 'not'\"/>         <!-- Negation has no preparation -->\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR:    Invalid logic operator in dynamic fillin for \"<xsl:value-of select=\"@visible-id\"/>\"</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:for-each select=\"$tests\">    <!-- Work through the layer of tests one at a time. -->\n        <xsl:choose>\n            <xsl:when test=\"name()='and'\">\n                <xsl:text>    testResults[</xsl:text>\n                <xsl:value-of select=\"$level+1\" />\n                <xsl:text>] = 1;&#xa;</xsl:text>\n                <xsl:call-template name=\"checker-layer\">\n                    <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                    <xsl:with-param name=\"tests\" select=\"./*\" />\n                    <xsl:with-param name=\"level\" select=\"$level+1\" />\n                    <xsl:with-param name=\"logic\" select=\"'and'\" /> <!-- Default: All tests at first layer must be true -->\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:when test=\"name()='or'\">\n                <xsl:text>    testResults[</xsl:text>\n                <xsl:value-of select=\"$level+1\" />\n                <xsl:text>] = 0;&#xa;</xsl:text>\n                <xsl:call-template name=\"checker-layer\">\n                    <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                    <xsl:with-param name=\"tests\" select=\"./*\" />\n                    <xsl:with-param name=\"level\" select=\"$level+1\" />\n                    <xsl:with-param name=\"logic\" select=\"'or'\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:when test=\"name()='not'\">\n                <xsl:call-template name=\"checker-layer\">\n                    <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                    <xsl:with-param name=\"tests\" select=\"./*\" />\n                    <xsl:with-param name=\"level\" select=\"$level+1\" />\n                    <xsl:with-param name=\"logic\" select=\"'not'\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:call-template name=\"checker-simple\">\n                    <xsl:with-param name=\"fillin\" select=\"$fillin\" />\n                    <xsl:with-param name=\"curTest\" select=\".\" />\n                    <xsl:with-param name=\"level\" select=\"$level+1\" />\n                </xsl:call-template>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:choose> <!-- Deal with the results of that recursive call to a deeper layer. -->\n            <xsl:when test=\"$logic = 'and'\">\n                <xsl:text>    testResults[</xsl:text><xsl:value-of select=\"$level\" />\n                <xsl:text>] &amp;= testResults[</xsl:text><xsl:value-of select=\"$level+1\" /><xsl:text>];&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$logic = 'or'\">\n                <xsl:text>    testResults[</xsl:text><xsl:value-of select=\"$level\" />\n                <xsl:text>] |= testResults[</xsl:text><xsl:value-of select=\"$level+1\" /><xsl:text>];&#xa;</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$logic = 'not'\">\n                <xsl:text>    testResults[</xsl:text><xsl:value-of select=\"$level\" />\n                <xsl:text>] = !(testResults[</xsl:text><xsl:value-of select=\"$level+1\" /><xsl:text>]);&#xa;</xsl:text>\n            </xsl:when>\n            <!-- Otherwise: invalid logic call was signaled as Error earlier. -->\n        </xsl:choose>\n    </xsl:for-each>\n</xsl:template>\n\n\n<!-- ================================================ -->\n<!-- Templates for working with evaluation objects    -->\n<!-- ================================================ -->\n\n<!-- Wrappers for calling appropriate javascript commands that  -->\n<!-- will parse the expression for a number appropriately,     -->\n<!-- which could be written as an expression involving symbols -->\n<!-- or a random number                                        -->\n<xsl:template match=\"de-number\" mode=\"evaluate\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"de_env\">\n        <xsl:value-of select=\"$prefix\"/>\n        <xsl:text>_mobjs</xsl:text>\n    </xsl:variable>\n    <xsl:value-of select=\"$de_env\"/>\n    <xsl:text>.parseExpression(</xsl:text>\n    <xsl:call-template name=\"quote-strip-string\">\n        <xsl:with-param name=\"text\" select=\".\"/>\n    </xsl:call-template>\n    <xsl:text>, \"number\")</xsl:text>\n    <xsl:text>.reduce().simplifyConstants()</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"de-evaluate\" mode=\"evaluate\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"de_env\">\n        <xsl:value-of select=\"$prefix\"/>\n        <xsl:text>_mobjs</xsl:text>\n    </xsl:variable>\n    <xsl:value-of select=\"$de_env\"/>\n    <xsl:text>.evaluateExpression(</xsl:text>\n        <xsl:apply-templates select=\"formula/*\" mode=\"evaluate\">\n            <xsl:with-param name=\"setupMode\" select=\"$setupMode\"/>\n        </xsl:apply-templates>\n        <xsl:text>, \"number\", {</xsl:text>\n        <xsl:apply-templates select=\"variable\" mode=\"evaluation-binding\" >\n            <xsl:with-param name=\"setupMode\" select=\"$setupMode\" />\n        </xsl:apply-templates>\n    <xsl:text>})</xsl:text>\n    <xsl:if test=\"@reduce='yes'\">\n        <xsl:text>.reduce().simplifyConstants()</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"de-random[@distribution='discrete']\" mode=\"evaluate\">\n    <xsl:text>v._mobjs.generateRandom(\"discrete\", { min:</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@min\">\n            <xsl:value-of select=\"@min\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>0</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>, max:</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@max\">\n            <xsl:value-of select=\"@max\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>1</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>, by:</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@by\">\n            <xsl:value-of select=\"@by\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>1</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>, nonzero:</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@nonzero = 'yes'\">\n            <xsl:text>true</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>false</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>})</xsl:text>\n</xsl:template>\n\n<!-- Objects defined as formulas. Several possible modes: -->\n<!-- formula (literal), substitution (composition),       -->\n<!-- derivative and evaluate                              -->\n<xsl:template match=\"de-expression[not(@mode) or @mode='formula']\" mode=\"evaluate\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"de_env\">\n        <xsl:value-of select=\"$prefix\"/>\n        <xsl:text>_mobjs</xsl:text>\n    </xsl:variable>\n    <xsl:value-of select=\"$de_env\"/>\n    <xsl:text>.parseExpression(</xsl:text>\n    <xsl:call-template name=\"quote-strip-string\">\n        <xsl:with-param name=\"text\" select=\".\"/>\n    </xsl:call-template>\n    <xsl:text>, \"formula\")</xsl:text>\n    <xsl:if test=\"@reduce='yes'\">\n        <xsl:text>.reduce().simplifyConstants()</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"de-expression[@mode='substitution']\" mode=\"evaluate\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"de_env\">\n        <xsl:value-of select=\"$prefix\"/>\n        <xsl:text>_mobjs</xsl:text>\n    </xsl:variable>\n    <xsl:value-of select=\"$de_env\"/>\n    <xsl:text>.composeExpression(</xsl:text>\n    <xsl:apply-templates select=\"formula/*\" mode=\"evaluate\">\n        <xsl:with-param name=\"setupMode\" select=\"$setupMode\"/>\n    </xsl:apply-templates>\n    <xsl:text>, {</xsl:text>\n    <xsl:apply-templates select=\"variable\" mode=\"evaluation-binding\" >\n        <xsl:with-param name=\"setupMode\" select=\"$setupMode\" />\n    </xsl:apply-templates>\n    <xsl:text>})</xsl:text>\n    <xsl:if test=\"@reduce='yes'\">\n        <xsl:text>.reduce().simplifyConstants()</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"de-expression[@mode='derivative']\" mode=\"evaluate\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:variable name=\"de_env\">\n        <xsl:value-of select=\"$prefix\"/>\n        <xsl:text>_mobjs</xsl:text>\n    </xsl:variable>\n    <xsl:apply-templates select=\"formula/*\" mode=\"evaluate\">\n        <xsl:with-param name=\"setupMode\" select=\"$setupMode\" />\n    </xsl:apply-templates>\n    <xsl:text>.derivative(</xsl:text>\n    <xsl:call-template name=\"quote-string\">\n        <xsl:with-param name=\"text\" select=\"variable/@name\"/>\n    </xsl:call-template>\n    <xsl:text>)</xsl:text>\n    <xsl:if test=\"@reduce='yes'\">\n        <xsl:text>.reduce().simplifyConstants()</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- Used during composition or evaluation of a variable-->\n<xsl:template match=\"variable\" mode=\"evaluation-binding\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:if test=\"position() > 1\">\n        <xsl:text>, </xsl:text>\n    </xsl:if>\n    <xsl:call-template name=\"quote-string\">\n        <xsl:with-param name=\"text\" select=\"@name\" />\n    </xsl:call-template>\n    <xsl:text>: </xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"eval or de-number or de-expression\">\n            <xsl:apply-templates select=\"eval|de-number|de-expression\" mode=\"evaluate\">\n                <xsl:with-param name=\"setupMode\" select=\"$setupMode\" />\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\".\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- var elements in expressions (evaluate) are replaced by their name -->\n<!-- During setup, we need to use the context of the `v` object        -->\n<xsl:template match=\"eval\" mode=\"evaluate\">\n    <xsl:param name=\"setupMode\" />\n    <xsl:variable name=\"prefix\">\n        <xsl:if test=\"$setupMode\">\n            <xsl:text>v.</xsl:text>\n        </xsl:if>\n    </xsl:variable>\n    <xsl:value-of select=\"$prefix\"/>\n    <xsl:value-of select=\"@obj\"/>\n</xsl:template>\n\n<!-- Nothing else is defined for evaluation during setup  -->\n<xsl:template match=\"/\" mode=\"evaluate\"/>\n\n<xsl:template match=\"feedback\" mode=\"serialize-feedback\">\n    <xsl:variable name=\"feedback-rtf\">\n        <xsl:apply-templates select=\"*\" />\n    </xsl:variable>\n    <!-- serialize HTML as text, then escape as JSON -->\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\"exsl:node-set($feedback-rtf)\" mode=\"xml-to-string\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-runestone-static.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2022 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"pi exsl str\"\n>\n\n<!-- Conversion of author source for Runestone/interactive exercises  -->\n<!-- to \"standard\" PreTeXt exercises, which can be used as-is in      -->\n<!-- *every* conversion, except the HTML conversion, where a more     -->\n<!-- capable version is designed to be powered by Runestone Services. -->\n\n<!-- We include text utilities so we can manipulate indentation -->\n<!-- in blocks of code as part of Parsons problems              -->\n<xsl:include href = \"./pretext-text-utilities.xsl\"/>\n\n<!-- The enclosing \"exercise\" and its attributes are preserved -->\n<!-- before these templates are applied, so these should just  -->\n<!-- produce the \"body\" of the exercise.                       -->\n\n<!-- The application of the \"runestone-to-static\" template is     -->\n<!-- controlled by a surrounding \"match\" that limits elements     -->\n<!-- to \"exercise\", PROJECT-LIKE, and soon \"task\".  So the        -->\n<!-- matches here are fine with a *[@exercise-interactive='foo'], -->\n<!-- as a convenience.                                            -->\n\n<!-- These get-programming-language templates duplicate logic from pretext-common  -->\n<!-- as the contents of that file are not available yet.                           -->\n<xsl:template match=\"program\" mode=\"get-programming-language\">\n    <xsl:choose>\n        <xsl:when test=\"@language\">\n            <xsl:value-of select=\"@language\" />\n        </xsl:when>\n        <xsl:when test=\"$version-docinfo/programs/@language\">\n            <xsl:value-of select=\"$version-docinfo/programs/@language\" />\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"*[@exercise-interactive = 'parson' or @exercise-interactive = 'parson-horizontal']\" mode=\"get-programming-language\">\n    <xsl:choose>\n        <xsl:when test=\"@language\">\n            <xsl:value-of select=\"@language\" />\n        </xsl:when>\n        <xsl:when test=\"$version-docinfo/parsons/@language\">\n            <xsl:value-of select=\"$version-docinfo/parsons/@language\" />\n        </xsl:when>\n        <xsl:when test=\"$version-docinfo/programs/@language\">\n            <xsl:value-of select=\"$version-docinfo/programs/@language\" />\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- True/False -->\n\n<xsl:template match=\"*[@exercise-interactive = 'truefalse']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- prompt, followed by ordered list of choices -->\n    <statement>\n        <xsl:copy-of select=\"statement/node()\"/>\n    </statement>\n    <!-- Hints are authored, not derived from problem formulation -->\n    <xsl:copy-of select=\"hint\"/>\n    <!-- Any authored answers, not derived from problem formulation.  -->\n    <!-- *Before* automatic ones, so numbering matches interactive    -->\n    <!-- versions on authored ones.                                   -->\n    <xsl:copy-of select=\"answer\"/>\n    <!-- the answer, simply \"True\" or \"False\" -->\n    <answer>\n        <xsl:choose>\n            <xsl:when test=\"statement/@correct = 'yes'\">\n                <p>\n                    <xsl:element name=\"pi:localize\">\n                        <xsl:attribute name=\"string-id\">true</xsl:attribute>\n                    </xsl:element>\n                    <xsl:text>.</xsl:text>\n                </p>\n            </xsl:when>\n            <xsl:when test=\"statement/@correct = 'no'\">\n                <p>\n                    <xsl:element name=\"pi:localize\">\n                        <xsl:attribute name=\"string-id\">false</xsl:attribute>\n                    </xsl:element>\n                    <xsl:text>.</xsl:text>\n                </p>\n            </xsl:when>\n            <xsl:otherwise/>\n        </xsl:choose>\n    </answer>\n    <!-- Any authored solutions, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive     -->\n    <!-- versions on authored ones.                                    -->\n    <xsl:copy-of select=\"solution\"/>\n    <!-- Answer, as above, plus explication with feedback -->\n    <!-- TODO: experiment with a one-item \"dl\" for a slightly more       -->\n    <!--       appealing presentation, rather than a one-word paragraph. -->\n    <solution>\n        <xsl:choose>\n            <xsl:when test=\"statement/@correct = 'yes'\">\n                <p>\n                    <xsl:element name=\"pi:localize\">\n                        <xsl:attribute name=\"string-id\">true</xsl:attribute>\n                    </xsl:element>\n                    <xsl:text>.</xsl:text>\n                </p>\n            </xsl:when>\n            <xsl:when test=\"statement/@correct = 'no'\">\n                <p>\n                    <xsl:element name=\"pi:localize\">\n                        <xsl:attribute name=\"string-id\">false</xsl:attribute>\n                    </xsl:element>\n                    <xsl:text>.</xsl:text>\n                </p>\n            </xsl:when>\n            <xsl:otherwise/>\n        </xsl:choose>\n        <xsl:copy-of select=\"feedback/node()\"/>\n    </solution>\n</xsl:template>\n\n<xsl:template match=\"*[@exercise-interactive = 'multiplechoice']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- prompt, followed by ordered list of choices -->\n    <statement>\n        <xsl:copy-of select=\"statement/node()\"/>\n        <p><ol marker=\"A.\"> <!-- conforms to RS markers -->\n            <!-- duplicate an optional @cols -->\n            <xsl:copy-of select=\"choices/@cols\"/>\n            <xsl:for-each select=\"choices/choice\">\n                <li>\n                    <xsl:copy-of select=\"statement/node()\"/>\n                </li>\n            </xsl:for-each>\n        </ol></p>\n    </statement>\n    <!-- Hints are authored, not derived from problem formulation -->\n    <xsl:copy-of select=\"hint\"/>\n    <!-- Any authored answers, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive   -->\n    <!-- versions on authored ones.                                  -->\n    <xsl:copy-of select=\"answer\"/>\n    <!-- the correct choices, as letters, in a sentence as a list -->\n    <answer>\n        <p>\n            <xsl:for-each select=\"choices/choice\">\n                <xsl:if test=\"@correct = 'yes'\">\n                    <xsl:number format=\"A\"/>\n                    <xsl:if test=\"following-sibling::choice[@correct = 'yes']\">\n                        <xsl:text>, </xsl:text>\n                    </xsl:if>\n                </xsl:if>\n            </xsl:for-each>\n            <xsl:text>.</xsl:text>\n        </p>\n    </answer>\n    <!-- Any authored solutions, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive     -->\n    <!-- versions on authored ones.                                    -->\n    <xsl:copy-of select=\"solution\"/>\n    <!-- feedback for each choice, in a list -->\n    <solution>\n        <p><ol marker=\"A.\"> <!-- conforms to RS markers -->\n            <xsl:for-each select=\"choices/choice\">\n                <li>\n                    <title>\n                        <xsl:choose>\n                            <xsl:when test=\"@correct = 'yes'\">\n                                <xsl:element name=\"pi:localize\">\n                                    <xsl:attribute name=\"string-id\">correct</xsl:attribute>\n                                </xsl:element>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:element name=\"pi:localize\">\n                                    <xsl:attribute name=\"string-id\">incorrect</xsl:attribute>\n                                </xsl:element>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </title>\n                    <xsl:copy-of select=\"feedback/node()\"/>\n                </li>\n            </xsl:for-each>\n        </ol></p>\n    </solution>\n</xsl:template>\n\n<xsl:template match=\"*[@exercise-interactive = 'parson']\" mode=\"runestone-to-static\">\n    <!-- determine these options before context switches -->\n    <xsl:variable name=\"language\">\n        <!-- we just need the \"raw\" programming language, not active-language translation -->\n        <xsl:apply-templates select=\".\" mode=\"get-programming-language\"/>\n    </xsl:variable>\n    <xsl:variable name=\"b-natural\" select=\"($language = '') or ($language = 'natural')\"/>\n    <xsl:attribute name=\"language\">\n        <xsl:value-of select=\"$language\"/>\n    </xsl:attribute>\n    <!-- default for @indentation is \"show\", regards presentation -->\n    <xsl:variable name=\"b-indent\" select=\"@indentation = 'hide'\"/>\n    <!-- we use numbers in static versions, if requested, but ignore left/right distinction -->\n    <!-- default for @numbered is \"no\" -->\n    <!-- do not confuse this attribute with the  @pi:numbered  attribute for numbered equations -->\n    <xsl:variable name=\"b-numbered\" select=\"(blocks/@numbered = 'left') or (blocks/@numbered = 'right')\"/>\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- Statement -->\n    <statement>\n        <xsl:copy-of select=\"statement/node()\"/>\n        <xsl:variable name=\"list-type\">\n            <xsl:choose>\n                <xsl:when test=\"$b-numbered\">\n                    <xsl:text>ol</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>ul</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:variable>\n        <!-- blocks, in author-defined order, via @order attribute -->\n        <p>\n            <xsl:element name=\"{$list-type}\">\n                <xsl:if test=\"$list-type = 'ol'\">\n                    <xsl:attribute name=\"marker\">\n                        <xsl:text>1.</xsl:text>\n                    </xsl:attribute>\n                </xsl:if>\n                <xsl:for-each select=\"blocks/block\">\n                    <xsl:sort select=\"@order\"/>\n                    <li>\n                        <xsl:choose>\n                            <xsl:when test=\"choice\">\n                                <!-- a paired distractor in the block        -->\n                                <!-- separate alternatives with \"Either/Or\"  -->\n                                <!-- Order is as authored                    -->\n                                <xsl:element name=\"{$list-type}\">\n                                    <xsl:attribute name=\"marker\">\n                                        <xsl:choose>\n                                            <xsl:when test=\"$list-type = 'ol'\">\n                                                <!-- sub-number as a, b, c -->\n                                                <xsl:text>(a)</xsl:text>\n                                            </xsl:when>\n                                            <xsl:when test=\"$list-type = 'ul'\">\n                                                <!-- no markers on \"bulleted\" sublists -->\n                                                <xsl:text/>\n                                            </xsl:when>\n                                        </xsl:choose>\n                                    </xsl:attribute>\n                                    <xsl:for-each select=\"choice\">\n                                        <li>\n                                            <xsl:if test=\"$list-type = 'ul'\">\n                                                <xsl:choose>\n                                                    <xsl:when test=\"not(preceding-sibling::choice)\">\n                                                        <p>\n                                                            <xsl:element name=\"pi:localize\">\n                                                                <xsl:attribute name=\"string-id\">either</xsl:attribute>\n                                                            </xsl:element>\n                                                            <xsl:text>:</xsl:text>\n                                                        </p>\n                                                    </xsl:when>\n                                                    <xsl:otherwise>\n                                                        <p>\n                                                            <xsl:element name=\"pi:localize\">\n                                                                <xsl:attribute name=\"string-id\">or</xsl:attribute>\n                                                            </xsl:element>\n                                                            <xsl:text>:</xsl:text>\n                                                        </p>\n                                                    </xsl:otherwise>\n                                                </xsl:choose>\n                                            </xsl:if>\n                                            <xsl:choose>\n                                                <xsl:when test=\"$b-natural\">\n                                                    <!-- replicate source of choice -->\n                                                    <xsl:copy-of select=\"node()\"/>\n                                                </xsl:when>\n                                                <xsl:otherwise>\n                                                    <!-- computer code, make a code display           -->\n                                                    <!-- A \"p\" gets indentation relative to Either/Or -->\n                                                    <!-- Otherwsie, we could make a sublist?          -->\n                                                    <p>\n                                                        <cd>\n                                                            <xsl:choose>\n                                                                <xsl:when test=\"$b-indent\">\n                                                                    <xsl:apply-templates select=\".\" mode=\"strip-cline-indentation\"/>\n                                                                </xsl:when>\n                                                                <xsl:otherwise>\n                                                                    <xsl:copy-of select=\"node()\"/>\n                                                                </xsl:otherwise>\n                                                            </xsl:choose>\n                                                        </cd>\n                                                    </p>\n                                                </xsl:otherwise>\n                                            </xsl:choose>\n                                        </li>\n                                    </xsl:for-each>\n                                </xsl:element>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <!-- not a paired distractor -->\n                                <xsl:choose>\n                                    <xsl:when test=\"$b-natural\">\n                                        <!-- replicate source of block -->\n                                        <xsl:copy-of select=\"node()\"/>\n                                    </xsl:when>\n                                    <xsl:otherwise>\n                                        <!-- computer code, make a code display -->\n                                        <cd>\n                                            <xsl:choose>\n                                                <xsl:when test=\"$b-indent\">\n                                                    <!-- a hard problem, reader supplies indentation -->\n                                                    <xsl:apply-templates select=\".\" mode=\"strip-cline-indentation\"/>\n                                                </xsl:when>\n                                                <xsl:otherwise>\n                                                    <!-- a little help, indentation preserved and visible -->\n                                                    <xsl:attribute name=\"showspaces\">\n                                                        <xsl:text>all</xsl:text>\n                                                    </xsl:attribute>\n                                                    <xsl:text>&#xa;</xsl:text>\n                                                    <xsl:copy-of select=\"node()\"/>\n                                                </xsl:otherwise>\n                                            </xsl:choose>\n                                        </cd>\n                                    </xsl:otherwise>\n                                </xsl:choose>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </li>\n                </xsl:for-each>\n            </xsl:element>\n        </p>\n    </statement>\n    <!-- Any authored answers, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive   -->\n    <!-- versions on authored ones.                                  -->\n    <xsl:copy-of select=\"answer\"/>\n    <!-- Answer (potentially) -->\n    <xsl:if test=\"$b-numbered\">\n        <!-- can make an economical answer with numbers of the -->\n        <!-- (correct) blocks in the order of the solution     -->\n        <answer>\n            <p>\n                <xsl:for-each select=\"blocks/block\">\n                    <!-- default on \"block\" is  correct=\"yes\" -->\n                    <xsl:if test=\"not(@correct = 'no')\">\n                        <xsl:value-of select=\"@order\"/>\n                        <xsl:if test=\"choice\">\n                            <xsl:for-each select=\"choice\">\n                                <!-- default on \"choice\" is  correct=\"no\" -->\n                                <xsl:if test=\"@correct = 'yes'\">\n                                    <xsl:number format=\"a\"/>\n                                </xsl:if>\n                            </xsl:for-each>\n                        </xsl:if>\n                        <xsl:if test=\"following-sibling::block\">\n                            <xsl:text>, </xsl:text>\n                        </xsl:if>\n                    </xsl:if>\n                </xsl:for-each>\n            </p>\n        </answer>\n    </xsl:if>\n    <!-- Any authored solutions, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive     -->\n    <!-- versions on authored ones.                                   -->\n    <xsl:copy-of select=\"solution\"/>\n    <!-- Solution -->\n    <solution>\n        <xsl:choose>\n            <xsl:when test=\"$b-natural\">\n                <!-- not a programming exercise, use unordered     -->\n                <!-- or description list and copy \"natural\" markup -->\n                <xsl:variable name=\"list-type\">\n                    <xsl:choose>\n                        <xsl:when test=\"$b-numbered\">\n                            <xsl:text>dl</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>ul</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:variable>\n                <p>\n                    <xsl:element name=\"{$list-type}\">\n                        <xsl:if test=\"$list-type = 'dl'\">\n                            <xsl:attribute name=\"width\">\n                                <xsl:text>narrow</xsl:text>\n                            </xsl:attribute>\n                        </xsl:if>\n                        <xsl:for-each select=\"blocks/block\">\n                            <!-- default on \"block\" is  correct=\"yes\" -->\n                            <xsl:if test=\"not(@correct = 'no')\">\n                                <li>\n                                    <xsl:if test=\"$list-type = 'dl'\">\n                                        <title>\n                                            <xsl:value-of select=\"@order\"/>\n                                            <xsl:if test=\"choice\">\n                                                <xsl:for-each select=\"choice\">\n                                                    <!-- default on \"choice\" is  correct=\"no\" -->\n                                                    <xsl:if test=\"@correct = 'yes'\">\n                                                        <xsl:number format=\"a\"/>\n                                                    </xsl:if>\n                                                </xsl:for-each>\n                                            </xsl:if>\n                                        </title>\n                                    </xsl:if>\n                                    <xsl:choose>\n                                        <xsl:when test=\"choice\">\n                                            <!-- just the correct one -->\n                                            <xsl:for-each select=\"choice\">\n                                                <xsl:if test=\"@correct = 'yes'\">\n                                                    <xsl:copy-of select=\"node()\"/>\n                                                </xsl:if>\n                                            </xsl:for-each>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <xsl:copy-of select=\"node()\"/>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                </li>\n                            </xsl:if>\n                        </xsl:for-each>\n                    </xsl:element>\n                </p>\n            </xsl:when>\n            <xsl:otherwise>\n                <!-- programming language specified, assume \"cline\" -->\n                <!-- structure, reconstruct as a program/input      -->\n                <program>\n                    <xsl:attribute name=\"language\">\n                        <xsl:value-of select=\"$language\"/>\n                    </xsl:attribute>\n                    <input>\n                        <xsl:for-each select=\"blocks/block\">\n                            <xsl:if test=\"not(@correct = 'no')\">\n                                <xsl:choose>\n                                    <xsl:when test=\"choice\">\n                                        <!-- just the correct choice              -->\n                                        <!-- default on \"choice\" is  correct=\"no\" -->\n                                        <xsl:for-each select=\"choice\">\n                                            <xsl:if test=\"@correct = 'yes'\">\n                                                <xsl:for-each select=\"cline\">\n                                                    <xsl:value-of select=\".\"/>\n                                                    <xsl:text>&#xa;</xsl:text>\n                                                </xsl:for-each>\n                                            </xsl:if>\n                                        </xsl:for-each>\n                                    </xsl:when>\n                                    <xsl:otherwise>\n                                        <xsl:for-each select=\"cline\">\n                                            <xsl:value-of select=\".\"/>\n                                            <xsl:text>&#xa;</xsl:text>\n                                        </xsl:for-each>\n                                    </xsl:otherwise>\n                                </xsl:choose>\n                            </xsl:if>\n                        </xsl:for-each>\n                    </input>\n                </program>\n            </xsl:otherwise>\n        </xsl:choose>\n    </solution>\n</xsl:template>\n\n<!-- If a sequence of \"cline\" are in a problem where a student does      -->\n<!-- not get indentation help, then we need to strip it out for          -->\n<!-- presentation in a static form.  This template forms the text block, -->\n<!-- strips leading/gross indentation with a utility template, then uses -->\n<!-- a recursive template to wrap back into \"cline\".                     -->\n\n<xsl:template match=\"block|choice\" mode=\"strip-cline-indentation\">\n    <xsl:variable name=\"text-block\">\n        <xsl:for-each select=\"cline\">\n            <xsl:value-of select=\".\"/>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:call-template name=\"restore-cline\">\n        <xsl:with-param name=\"text\">\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\">\n                    <xsl:value-of select=\"$text-block\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"restore-cline\">\n    <xsl:param name=\"text\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"$text = ''\"/>\n        <xsl:otherwise>\n            <cline>\n                <xsl:value-of select=\"substring-before($text, '&#xa;')\"/>\n            </cline>\n            <xsl:call-template name=\"restore-cline\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Parson (Horizontal) -->\n\n<xsl:template match=\"*[@exercise-interactive = 'parson-horizontal']\" mode=\"runestone-to-static\">\n    <xsl:attribute name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:attribute>\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- Statement -->\n    <statement>\n        <xsl:copy-of select=\"statement/node()\"/>\n        <!-- programming language version -->\n        <p>\n            <cd>\n                <cline>\n                    <!-- hard to tell which is last once sorted, -->\n                    <!-- so we just mark front *and* end         -->\n                    <xsl:text> | </xsl:text>\n                    <xsl:for-each select=\"blocks/block[@order]\">\n                        <xsl:sort select=\"@order\"/>\n                        <xsl:apply-templates select=\".\" mode=\"static-horizontal-block\"/>\n                        <xsl:text> | </xsl:text>\n                    </xsl:for-each>\n                </cline>\n            </cd>\n        </p>\n    </statement>\n    <!-- We provide a complete solution below, -->\n    <!-- so no automatic hint or answer        -->\n    <xsl:copy-of select=\"hint\"/>\n    <xsl:copy-of select=\"answer\"/>\n    <!-- Any authored solutions, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive     -->\n    <!-- versions on authored ones.                                   -->\n    <xsl:copy-of select=\"solution\"/>\n    <solution>\n        <!-- programming language version -->\n        <!-- filter out distractors for the solution -->\n        <xsl:variable name=\"the-blocks\" select=\"blocks/block[not(@correct = 'no')]\"/>\n        <p>\n            <cd>\n                <cline>\n                    <!-- authored in order, but need to follow @ref -->\n                    <xsl:for-each select=\"$the-blocks\">\n                        <xsl:apply-templates select=\".\" mode=\"static-horizontal-block\"/>\n                        <!-- context shift should handle distractors at the end -->\n                        <xsl:if test=\"following-sibling::block\">\n                            <xsl:text> </xsl:text>\n                        </xsl:if>\n                    </xsl:for-each>\n                </cline>\n            </cd>\n        </p>\n    </solution>\n</xsl:template>\n\n<xsl:template match=\"blocks/block\" mode=\"static-horizontal-block\">\n    <xsl:choose>\n        <!-- follow @ref, copy children -->\n        <xsl:when test=\"@ref\">\n            <xsl:copy-of select=\"id(@ref)/node()\"/>\n        </xsl:when>\n        <!-- otherwisr duplicate children -->\n        <xsl:otherwise>\n            <xsl:copy-of select=\"node()\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Cardsort and Matching Problems -->\n\n<!-- Cardsort problems are (roughly) functions, while a (general)   -->\n<!-- matching would be a relation.  Both match \"premise\" with       -->\n<!-- \"response\".  An implementation might have a colum of \"premise\" -->\n<!-- to the left and a column of \"response\" to the right, with an   -->\n<!-- interface allowing the reader to make associations.            -->\n<!-- The markup for each is similar and different.  Some templates  -->\n<!-- here do double-duty, some are specific (solutions).            -->\n\n<!-- Note how this template accomodates both types of problems  -->\n<!-- by using match/select and modal template names effectively. -->\n<xsl:template match=\"*[@exercise-interactive = 'cardsort']|*[@exercise-interactive = 'matching']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- Statement -->\n    <statement>\n        <xsl:copy-of select=\"statement/node()\"/>\n        <xsl:apply-templates select=\"cardsort|matching\" mode=\"cardsort-matching-statement\"/>\n    </statement>\n    <!-- Any authored hint, answers, solutions not derived from   -->\n    <!-- problem formulation. *Before* automatic solution, so     -->\n    <!-- numbering matches interactive versions on authored ones. -->\n    <xsl:copy-of select=\"hint\"/>\n    <xsl:copy-of select=\"answer\"/>\n    <xsl:copy-of select=\"solution\"/>\n    <!-- Automatically generated solution -->\n    <solution>\n        <xsl:apply-templates select=\"cardsort|matching\" mode=\"cardsort-matching-solution\"/>\n    </solution>\n</xsl:template>\n\n<!-- Exercise statement as a tabular -->\n\n<!-- For a problem statement, we use a response list re-ordered    -->\n<!-- according to response/@order attribute values given by author -->\n<xsl:template match=\"cardsort|matching\" mode=\"cardsort-matching-statement\">\n\n    <!-- We allow for sorting the premise and response lists,  -->\n    <!-- independently of each other, so that a static version -->\n    <!-- may have a given permutation, decided by the author.  -->\n    <!-- As a practical matter, a \"cardsort\" should have an    -->\n    <!-- ordering, and premise might be easiest.  A \"matching\" -->\n    <!-- can be authored in a desired fashion and ordering is  -->\n    <!-- not needed.                                           -->\n\n    <!-- Reorder and collect premises -->\n    <xsl:variable name=\"sorted-premises-rtf\">\n        <xsl:for-each select=\"match/premise|premise\">\n            <xsl:sort select=\"@order\"/>\n            <xsl:copy-of select=\".\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"sorted-premises\" select=\"exsl:node-set($sorted-premises-rtf)\"/>\n\n    <!-- Reorder and collect responses -->\n    <xsl:variable name=\"sorted-responses-rtf\">\n        <xsl:for-each select=\"match/response|response\">\n            <xsl:sort select=\"@order\"/>\n            <xsl:copy-of select=\".\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"sorted-responses\" select=\"exsl:node-set($sorted-responses-rtf)\"/>\n\n    <tabular>\n        <xsl:call-template name=\"matching-row\">\n            <!-- $sorted-premises gets a root element, collecting the \"premise\" -->\n            <xsl:with-param name=\"premises\" select=\"$sorted-premises/premise\"/>\n            <!-- $sorted-responses gets a root element, collecting the \"response\" -->\n            <xsl:with-param name=\"responses\" select=\"$sorted-responses/response\"/>\n        </xsl:call-template>\n    </tabular>\n</xsl:template>\n\n<!-- Make one row of a tabular, recursively.  We do not know which list  -->\n<!-- is longer (or they are the same length).  So we \"zip\" them together -->\n<!-- by making a row and then effectively discarding the contents of the -->\n<!-- row in the recursive call.  (We could pass/increment a row number   -->\n<!-- and not keep updating the node-set.)                                -->\n<xsl:template name=\"matching-row\">\n    <xsl:param name=\"premises\"/>\n    <xsl:param name=\"responses\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"not($premises) and not($responses)\"/>\n        <xsl:otherwise>\n            <row>\n                <cell>\n                    <xsl:if test=\"count($premises) > 1\">\n                        <xsl:attribute name=\"bottom\">\n                            <xsl:text>minor</xsl:text>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <xsl:copy-of select=\"$premises[1]/node()\"/>\n                </cell>\n                <!-- An empty (two-character wide) column is a bit of a hack to get -->\n                <!-- a visual separation.  Could we do better with paragraph cells? -->\n                <cell bottom=\"none\"><nbsp/><nbsp/></cell>\n                <cell>\n                    <xsl:if test=\"count($responses) > 1\">\n                        <xsl:attribute name=\"bottom\">\n                            <xsl:text>minor</xsl:text>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <xsl:copy-of select=\"$responses[1]/node()\"/>\n                </cell>\n            </row>\n            <xsl:call-template name=\"matching-row\">\n                <xsl:with-param name=\"premises\" select=\"$premises[position() > 1]\"/>\n                <xsl:with-param name=\"responses\" select=\"$responses[position() > 1]\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Solutions are lists of lists, but seem to      -->\n<!-- require two different, but similar, templates. -->\n\n<!-- For a solution, we make an unordered list of the responses     -->\n<!-- (the \"buckets\" in true cardsort terminology) and for each      -->\n<!-- we make a sub-list wioth the premises that match (the \"cards\"  -->\n<!-- in true cardsort terminology.  Note that potential distractors -->\n<!-- are a premise with no response (empty sub-list) and a response -->\n<!-- with no premise (a premise that is null-ish).                  -->\n<xsl:template match=\"cardsort\" mode=\"cardsort-matching-solution\">\n    <p><ul>\n        <xsl:for-each select=\"match\">\n            <li>\n                <p>\n                    <xsl:choose>\n                        <xsl:when test=\"response\">\n                            <xsl:copy-of select=\"response\"/>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>(</xsl:text>\n                            <xsl:element name=\"pi:localize\">\n                                <xsl:attribute name=\"string-id\">uncategorized</xsl:attribute>\n                            </xsl:element>\n                            <xsl:text>)</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                    <xsl:if test=\"premise\">\n                        <ul>\n                            <xsl:for-each select=\"premise\">\n                                <li>\n                                    <xsl:copy-of select=\".\"/>\n                                </li>\n                            </xsl:for-each>\n                        </ul>\n                    </xsl:if>\n                </p>\n            </li>\n        </xsl:for-each>\n    </ul></p>\n</xsl:template>\n\n<!-- For a solution, we make an unordered list of the    -->\n<!-- responses (mirroring the cardsort organization) and -->\n<!-- for each we make a sub-list with the premises that. -->\n<!-- are matched.  Distractors are a premise with no     -->\n<!-- response (empty sub-list) and a response with no    -->\n<!-- premise (a premise that is null-ish).               S-->\n<xsl:template match=\"matching\" mode=\"cardsort-matching-solution\">\n    <p><ul>\n        <xsl:for-each select=\"response\">\n            <xsl:variable name=\"response-xmlid-fenced\" select=\"concat('|', @xml:id, '|')\"/>\n            <li>\n                <p>\n                    <xsl:copy-of select=\".\"/>\n                    <!-- form list items of matching premise -->\n                    <!-- this could be empty, so we not open -->\n                    <!-- a sub-list prematurely              -->\n                    <xsl:variable name=\"matched-premises-rtf\">\n                        <!-- context is a \"response\" step up to get \"permise\" -->\n                        <xsl:for-each select=\"parent::matching/premise\">\n                            <xsl:variable name=\"the-ref-fenced\" select=\"concat('|', translate(@ref, ' ', '|'), '|')\"/>\n                            <!-- the test for adjacency -->\n                            <xsl:if test=\"contains($the-ref-fenced, $response-xmlid-fenced)\">\n                                <li>\n                                    <xsl:copy-of select=\".\"/>\n                                </li>\n                            </xsl:if>\n                        </xsl:for-each>\n                    </xsl:variable>\n                    <xsl:variable name=\"matched-premises\" select=\"exsl:node-set($matched-premises-rtf)\"/>\n                    <!-- create a non-empty sublist of matched premise -->\n                    <xsl:if test=\"$matched-premises/li\">\n                        <ul>\n                            <xsl:copy-of select=\"$matched-premises\"/>\n                        </ul>\n                    </xsl:if>\n                </p>\n            </li>\n        </xsl:for-each>\n        <!-- And we need to catch premises that do not get   -->\n        <!-- matched to any response (through null-ish @ref) -->\n        <!-- NB: context is now the \"matching\"               -->\n        <xsl:variable name=\"unmatched-premises-rtf\">\n            <xsl:for-each select=\"premise\">\n                <xsl:if test=\"not(@ref) or (normalize-space(@ref) = '')\">\n                    <li>\n                        <xsl:copy-of select=\".\"/>\n                    </li>\n                </xsl:if>\n            </xsl:for-each>\n        </xsl:variable>\n        <xsl:variable name=\"unmatched-premises\" select=\"exsl:node-set($unmatched-premises-rtf)\"/>\n        <!-- Make a top-level list item \"uncategorized\" response,-->\n        <!-- and populate it with a sub-list of all the premise  -->\n        <!-- that do not get matched with anything               -->\n        <xsl:if test=\"$unmatched-premises/li\">\n            <li><p>\n                <xsl:text>(</xsl:text>\n                <xsl:element name=\"pi:localize\">\n                    <xsl:attribute name=\"string-id\">uncategorized</xsl:attribute>\n                </xsl:element>\n                <xsl:text>)</xsl:text>\n                <ul>\n                    <xsl:copy-of select=\"$unmatched-premises/li\"/>\n                </ul>\n            </p></li>\n        </xsl:if>\n    </ul></p>\n</xsl:template>\n\n\n<!-- Clickable Area -->\n\n<xsl:template match=\"*[@exercise-interactive = 'clickablearea']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- Statement -->\n    <statement>\n        <xsl:copy-of select=\"statement/node()\"/>\n        <xsl:apply-templates select=\"areas\" mode=\"static-areas\"/>\n    </statement>\n    <xsl:copy-of select=\"hint\"/>\n    <!-- Any authored answers, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive   -->\n    <!-- versions on authored ones.                                  -->\n    <xsl:copy-of select=\"answer\"/>\n    <answer>\n        <p>\n            <xsl:element name=\"pi:localize\">\n                <xsl:attribute name=\"string-id\">correct</xsl:attribute>\n            </xsl:element>\n            <xsl:text>: </xsl:text>\n            <xsl:for-each select=\"areas//area[not(@correct = 'no')]\">\n                <xsl:apply-templates select=\".\" mode=\"answer-areas\"/>\n                <xsl:if test=\"not(position() = last())\">\n                    <xsl:text>; </xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n            <xsl:text>.</xsl:text>\n            <xsl:text> </xsl:text>\n            <xsl:element name=\"pi:localize\">\n                <xsl:attribute name=\"string-id\">incorrect</xsl:attribute>\n            </xsl:element>\n            <xsl:text>: </xsl:text>\n            <xsl:for-each select=\"areas//area[@correct = 'no']\">\n                <xsl:apply-templates select=\".\" mode=\"answer-areas\"/>\n                <xsl:if test=\"not(position() = last())\">\n                    <xsl:text>; </xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n            <xsl:text>.</xsl:text>\n        </p>\n        <xsl:copy-of select=\"feedback/node()\"/>\n    </answer>\n    <!-- Any authored solutions, not derived from problem formulation. -->\n    <!-- *Before* automatic ones, so numbering matches interactive     -->\n    <!-- versions on authored ones.                                    -->\n    <xsl:copy-of select=\"solution\"/>\n    <!-- A text version can get markup of correct and incorrect areas    -->\n    <!-- (italics, strikethrough) but no good way to markup code easily. -->\n    <!-- So no \"solution\" for code versions.                             -->\n    <xsl:if test=\"not(areas/cline)\">\n        <solution>\n            <xsl:apply-templates select=\"areas/node()\" mode=\"solution-areas\"/>\n        </solution>\n    </xsl:if>\n</xsl:template>\n\n<!-- We do a xerox'ing pass to construct the problem. -->\n<!--   (1) \"area\" gets dropped (invisible in static)  -->\n<!--       [could italicize correct and incorrect?]   -->\n<!--   (2) \"cline\" get reconstructed as a \"program\"   -->\n\n<xsl:template match=\"node()|@*\" mode=\"static-areas\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"static-areas\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"areas\" mode=\"static-areas\">\n    <xsl:choose>\n        <xsl:when test=\"cline\">\n            <!-- code, so make a \"program\" structure -->\n            <program>\n                <xsl:attribute name=\"language\">\n                    <xsl:apply-templates select=\".\" mode=\"get-programming-language\"/>\n                </xsl:attribute>\n                <input>\n                    <xsl:apply-templates select=\"cline\" mode=\"static-areas\"/>\n                </input>\n            </program>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- regular text, this will match a default template later -->\n            <xsl:apply-templates select=\"*\" mode=\"static-areas\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"areas/cline\" mode=\"static-areas\">\n    <xsl:apply-templates select=\"text()|area\" mode=\"static-areas\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"cline/text()\" mode=\"static-areas\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- NB: don't apply to attributes of an \"area\" (just @correct) -->\n<xsl:template match=\"area\" mode=\"static-areas\">\n    <xsl:apply-templates select=\"node()\" mode=\"static-areas\"/>\n</xsl:template>\n\n<!-- Modal templates reproduce answers, which could have some  -->\n<!-- markup in them?  We enter here at each \"area\" to form the -->\n<!-- lists of correct and incorrect areas.                     -->\n\n<xsl:template match=\"node()|@*\" mode=\"answer-areas\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"answer-areas\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"area[parent::cline]\" mode=\"answer-areas\">\n    <c>\n        <!-- NB: don't xerox attributes of an \"area\" (just @correct) -->\n        <xsl:apply-templates select=\"node()\" mode=\"answer-areas\"/>\n    </c>\n</xsl:template>\n\n<xsl:template match=\"area[not(parent::cline) and not(@correct = 'no')]\" mode=\"answer-areas\">\n    <em>\n        <!-- NB: don't xerox attributes of an \"area\" (just @correct) -->\n        <xsl:apply-templates select=\"node()\" mode=\"answer-areas\"/>\n    </em>\n</xsl:template>\n\n<xsl:template match=\"area[not(parent::cline) and (@correct = 'no')]\" mode=\"answer-areas\">\n    <delete>\n        <!-- NB: don't xerox attributes of an \"area\" (just @correct) -->\n        <xsl:apply-templates select=\"node()\" mode=\"answer-areas\"/>\n    </delete>\n</xsl:template>\n\n<!-- protect from low-level routines in -common -->\n<xsl:template match=\"cline/area/text()\" mode=\"answer-areas\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- For a text version (only, not a code version) we xerox -->\n<!-- the contents of \"areas\" and slide-in some highlighting -->\n<!-- of the correct and incorrect \"area\".                   -->\n\n<xsl:template match=\"node()|@*\" mode=\"solution-areas\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"solution-areas\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"area[not(@correct = 'no')]\" mode=\"solution-areas\">\n    <em>\n        <!-- NB: don't xerox attributes of an \"area\" (just @correct) -->\n        <xsl:apply-templates select=\"node()\" mode=\"solution-areas\"/>\n    </em>\n</xsl:template>\n\n<xsl:template match=\"area[@correct = 'no']\" mode=\"solution-areas\">\n    <delete>\n        <!-- NB: don't xerox attributes of an \"area\" (just @correct) -->\n        <xsl:apply-templates select=\"node()\" mode=\"solution-areas\"/>\n    </delete>\n</xsl:template>\n\n\n<!-- Select -->\n\n<xsl:template match=\"*[@exercise-interactive = 'select']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"select/preceding-sibling::*\"/>\n\n    <!-- identify the type of \"select\"                    -->\n    <!-- duplicated in \"pretext-runestone.xsl\"            -->\n    <!-- No good place to put this, since static versions -->\n    <!-- are forned in assembly phase and we do not want  -->\n    <!-- to introduce too many templates there.           -->\n    <!-- Save off which type, since context is lost looping over refs -->\n    <xsl:variable name=\"select-variant\">\n        <xsl:choose>\n            <!-- Runestone JS picks a random problem from many-->\n            <xsl:when test=\"select/@grade='random'\">\n                <xsl:text>random</xsl:text>\n            </xsl:when>\n            <!-- Two questions, split across roster into A, B groups. -->\n            <xsl:when test=\"select/@grade='ab-experiment'\">\n                <xsl:text>ab-experiment</xsl:text>\n            </xsl:when>\n            <!-- Two questions (usually), the first will always be graded,  -->\n            <!-- while any others may be worked and may be helpful.         -->\n            <!-- Colloquially known as a \"toggle lock\" question.            -->\n            <xsl:when test=\"select/@grade='first'\">\n                <xsl:text>first</xsl:text>\n            </xsl:when>\n            <!-- Two questions (usually), any one may be     -->\n            <!-- chosen by the reader to be graded.          -->\n            <!-- Colloquially known as a \"toggle \" question. -->\n            <xsl:when test=\"select/@grade='any'\">\n                <xsl:text>any</xsl:text>\n            </xsl:when>\n            <!-- default to \"random\" selection -->\n            <xsl:otherwise>\n                <xsl:text>random</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- One simple sentence in a \"p\", typically presented -->\n    <!-- just after a lead-in title from \"exercise\"        -->\n    <p>\n        <!-- some lead-in explanation -->\n        <xsl:text>Runestone-only: </xsl:text>\n        <xsl:choose>\n            <xsl:when test=\"$select-variant = 'random'\">\n                <xsl:text>exercise to grade will be automatically chosen by Runestone from </xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$select-variant = 'ab-experiment'\">\n                <xsl:text>an A/B experiment (named </xsl:text>\n                    <c>\n                        <xsl:value-of select=\"select/@experiment-name\"/>\n                    </c>\n                <xsl:text>) with </xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$select-variant = 'first'\">\n                <xsl:text>a toggle question where the question graded is </xsl:text>\n                <em>always</em>\n                <xsl:text> the first of </xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$select-variant = 'any'\">\n                <xsl:text>a toggle question where the question graded is </xsl:text>\n                <em>any</em>\n                <xsl:text> question chosen by the reader from </xsl:text>\n            </xsl:when>\n        </xsl:choose>\n        <!-- list \"xref\" to questions -->\n        <xsl:for-each select=\"str:tokenize(select/@questions, ' ,')\">\n            <!-- cross-reference, will be in default document style -->\n            <xref>\n                <xsl:attribute name=\"ref\">\n                    <xsl:value-of select=\".\"/>\n                </xsl:attribute>\n            </xref>\n            <!-- punctuation -->\n            <xsl:choose>\n                <xsl:when test=\"not($select-variant = 'ab-experiment')\">\n                    <xsl:choose>\n                        <!-- penultimate; trailing comma, plus \"or\" -->\n                        <xsl:when test=\"count(following-sibling::token) = 1\">\n                            <xsl:text>, or </xsl:text>\n                        </xsl:when>\n                        <!-- more, more coming; trailing comma -->\n                        <xsl:when test=\"following-sibling::token\">\n                            <xsl:text>, </xsl:text>\n                        </xsl:when>\n                        <!-- done; need final period -->\n                        <xsl:otherwise>\n                            <xsl:text>.</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:choose>\n                        <!-- finish \"A\", and separate from \"B\" -->\n                        <xsl:when test=\"following-sibling::token\">\n                            <xsl:text> as (A)</xsl:text>\n                            <xsl:text> and </xsl:text>\n                        </xsl:when>\n                        <!-- final period -->\n                        <xsl:otherwise>\n                            <xsl:text> as (B).</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:for-each>\n    </p>\n</xsl:template>\n\n\n<!-- Fill-In the Blanks (Basic) -->\n\n<xsl:template match=\"*[@exercise-interactive = 'fillin-basic']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- reproduce statement identically, but replace var w/ fillin -->\n    <xsl:apply-templates select=\"statement\" mode=\"fillin-statement\"/>\n    <!-- Any authored hints, answers, solutions, not derived from   -->\n    <!-- problem formulation. *Before* automatic ones, so numbering -->\n    <!-- matches interactive versions on authored ones.             -->\n    <xsl:copy-of select=\"hint\"/>\n    <xsl:copy-of select=\"answer\"/>\n    <xsl:copy-of select=\"solution\"/>\n    <xsl:apply-templates select=\"statement\" mode=\"fillin-solution\"/>\n</xsl:template>\n\n<!-- Fillin Statement -->\n<xsl:template match=\"node()|@*\" mode=\"fillin-statement\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"fillin-statement\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"var\" mode=\"fillin-statement\">\n    <fillin>\n        <xsl:attribute name=\"characters\">\n            <xsl:choose>\n                <xsl:when test=\"@width\">\n                    <xsl:value-of select=\"@width\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- arbitrary default width -->\n                    <xsl:text>5</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n    </fillin>\n</xsl:template>\n\n<!-- Fillin complete solution -->\n\n<xsl:template match=\"node()|@*\" mode=\"fillin-solution\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"fillin-solution\"/>\n    </xsl:copy>\n</xsl:template>\n\n<xsl:template match=\"statement\" mode=\"fillin-solution\">\n    <xsl:variable name=\"exercise\" select=\"..\"/>\n    <solution>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"fillin-solution\"/>\n        <!-- xerox feedback for correct response on each var -->\n        <xsl:for-each select=\"../setup/var/condition[1]/feedback\">\n            <xsl:apply-templates select=\"node()\" mode=\"fillin-solution\"/>\n        </xsl:for-each>\n        <xsl:for-each select=\".//fillin[@answer]\">\n            <xsl:variable name=\"fillin-name\" select=\"@name\"/>\n            <xsl:variable name=\"fillin-pos\" select=\"position()\"/>\n            <xsl:choose>\n                <!-- If #evaluate matches by name, find feedback on a correct result -->\n                <xsl:when test=\"$exercise/evaluation/evaluate[@name='$fillin-name']/test[@correct='yes']\">\n                    <xsl:apply-templates select=\"$exercise/evaluation/evaluate[@name='$fillin-name']/test[@correct='yes']/feedback/node()\" mode=\"fillin-solution\"/>\n                </xsl:when>\n                <!-- Otherwise #evaluate matches by order, find feedback on a correct result -->\n                <xsl:when test=\"$exercise/evaluation/evaluate[$fillin-pos]/test[@correct='yes']\">\n                    <xsl:apply-templates select=\"$exercise/evaluation/evaluate[$fillin-pos]/test[@correct='yes']/feedback/node()\" mode=\"fillin-solution\"/>\n                </xsl:when>\n            </xsl:choose>\n        </xsl:for-each>\n        <xsl:if test=\"../evaluation[@answers-coupled='yes']\">\n            <xsl:apply-templates select=\"$exercise/evaluation/evaluate[@all='yes']/test[@correct='yes']/feedback/node()\" mode=\"fillin-solution\"/>\n        </xsl:if>\n    </solution>\n</xsl:template>\n\n<xsl:template match=\"var\" mode=\"fillin-solution\">\n    <!-- NB: this code is used in formulating HTML representations -->\n    <!-- count location of (context) \"var\" in problem statement    -->\n    <xsl:variable name=\"location\">\n        <xsl:number from=\"statement\"/>\n    </xsl:variable>\n    <!-- locate corresponding \"var\" in \"setup\" -->\n    <xsl:variable name=\"setup-var\" select=\"ancestor::exercise/setup/var[position() = $location]\"/>\n\n    <!-- Know can tell what the correct answer is, from first \"condition\"-->\n    <fillin characters=\"1\"/>\n    <xsl:choose>\n        <xsl:when test=\"$setup-var/condition[1]/@number\">\n            <m>\n                <xsl:value-of select=\"$setup-var/condition[1]/@number\"/>\n            </m>\n        </xsl:when>\n        <xsl:when test=\"$setup-var/condition[1]/@string\">\n            <xsl:value-of select=\"$setup-var/condition[1]/@string\"/>\n        </xsl:when>\n    </xsl:choose>\n    <fillin characters=\"1\"/>\n</xsl:template>\n\n<!-- Fill-In the Blanks (Complete) -->\n\n<xsl:template match=\"*[@exercise-interactive = 'fillin']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- reproduce statement identically, but replace var w/ fillin -->\n    <xsl:apply-templates select=\"statement\" mode=\"fillin-statement\"/>\n    <!-- Any authored hints, answers, solutions, not derived from   -->\n    <!-- problem formulation. *Before* automatic ones, so numbering -->\n    <!-- matches interactive versions on authored ones.             -->\n    <xsl:copy-of select=\"hint\"/>\n    <xsl:copy-of select=\"answer\"/>\n    <xsl:choose>\n        <xsl:when test=\"solution[@include-automatic='no']\">\n            <xsl:copy-of select=\"solution\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"statement\" mode=\"fillin-solution\"/>\n            <xsl:copy-of select=\"solution\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Fillin Statement -->\n<xsl:template match=\"fillin\" mode=\"fillin-statement\">\n    <fillin>\n        <xsl:attribute name=\"characters\">\n            <xsl:choose>\n                <xsl:when test=\"@width\">\n                    <xsl:value-of select=\"@width\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- arbitrary default width -->\n                    <xsl:text>5</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:attribute>\n    </fillin>\n</xsl:template>\n\n<!-- Fillin complete solution -->\n<xsl:template match=\"fillin\" mode=\"fillin-solution\">\n    <!-- Correct answer is in @answer. -->\n    <fillin characters=\"1\"/>\n    <xsl:choose>\n        <xsl:when test=\"@mode='math' or @mode='number'\">\n            <m><xsl:value-of select=\"@answer\"/></m>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"@answer\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <fillin characters=\"1\"/>\n</xsl:template>\n\n<!-- Short Answer -->\n\n<!-- Authored with a \"response\" element, we effectively drop it here -->\n<xsl:template match=\"*[@exercise-interactive = 'shortanswer']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <!-- reproduce usual components -->\n    <xsl:copy-of select=\"statement\"/>\n    <!-- skip over response until it carries something relevant -->\n    <xsl:copy-of select=\"hint\"/>\n    <xsl:copy-of select=\"answer\"/>\n    <xsl:copy-of select=\"solution\"/>\n</xsl:template>\n\n<!-- Queries -->\n\n<xsl:template match=\"query\" mode=\"runestone-to-static\">\n    <paragraphs>\n        <!-- no period, it is supplied by conversions -->\n        <title>\n            <xsl:element name=\"pi:localize\">\n                <xsl:attribute name=\"string-id\">query</xsl:attribute>\n            </xsl:element>\n        </title>\n        <!-- reproduce structured statement's pieces -->\n        <xsl:copy-of select=\"statement/*\"/>\n        <xsl:choose>\n            <xsl:when test=\"choices\">\n                <p><ol format=\"1.\">\n                    <xsl:for-each select=\"choices/choice\">\n                        <li>\n                            <xsl:copy-of select=\".\"/>\n                        </li>\n                    </xsl:for-each>\n                </ol></p>\n            </xsl:when>\n            <xsl:when test=\"@scale\">\n                <!-- A pre-formatted \"display\" of the integer choices, -->\n                <!-- which could be printed and circled by the reader. -->\n                <pre>\n                    <xsl:apply-templates select=\".\" mode=\"scale-choices\"/>\n                </pre>\n            </xsl:when>\n            <xsl:otherwise/>\n        </xsl:choose>\n    </paragraphs>\n</xsl:template>\n\n<!-- Recursively count-up and layout choices with rows of -->\n<!-- 10 choices each, with blank lines between the rows.  -->\n<xsl:template match=\"query\" mode=\"scale-choices\">\n    <xsl:param name=\"the-choice\" select=\"'1'\"/>\n\n    <xsl:choose>\n        <!-- Done.  Emit and that's it -->\n        <xsl:when test=\"$the-choice = ./@scale\">\n            <xsl:value-of select=\"$the-choice\"/>\n        </xsl:when>\n        <!-- Done with a row, but not done.  Newline, and blankline. -->\n        <xsl:when test=\"$the-choice mod 10 = 0\">\n            <xsl:value-of select=\"$the-choice\"/>\n            <xsl:text>&#xa;&#xa;</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"scale-choices\">\n                <xsl:with-param name=\"the-choice\" select=\"$the-choice + 1\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <!-- Mid-row, use two spaces to separate. -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$the-choice\"/>\n            <xsl:text>&#x20;&#x20;</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"scale-choices\">\n                <xsl:with-param name=\"the-choice\" select=\"$the-choice + 1\"/>\n            </xsl:apply-templates>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Active Code -->\n\n<xsl:template match=\"*[@exercise-interactive = 'coding']\" mode=\"runestone-to-static\">\n    <!-- metadata (idx, title) -->\n    <xsl:copy-of select=\"statement/preceding-sibling::*\"/>\n    <statement>\n        <!-- duplicate the authored prompt/statement -->\n        <xsl:copy-of select=\"statement/node()\"/>\n        <!-- Bring up the program as part of the problem statement and -->\n        <!-- also neuter any @interactive indication.  This was not    -->\n        <!-- tagged as a coding exercise without a \"program\" outside   -->\n        <!-- the \"statement\", but we are careful about not making an   -->\n        <!-- empty \"program\" where there is none.                      -->\n        <xsl:if test=\"program\">\n            <xsl:element name=\"program\">\n                <xsl:copy-of select=\"program/@*[not(name() = 'interactive')]\"/>\n                <xsl:copy-of select=\"program/node()\"/>\n            </xsl:element>\n        </xsl:if>\n    </statement>\n    <xsl:copy-of select=\"hint\"/>\n    <xsl:copy-of select=\"answer\"/>\n    <xsl:copy-of select=\"solution\"/>\n</xsl:template>\n\n\n<xsl:template match=\"datafile\" mode=\"runestone-to-static\">\n    <!-- Some templates and variables are defined in -common for consistency -->\n\n    <!-- Mostly the data file is a \"pre\", or an \"image\", but we -->\n    <!-- want to have a title of sorts indicating the filename. -->\n    <!-- To accomplish an overall element that won't disrupt    -->\n    <!-- subsequent automatic ids, we do a bit of a hack: a     -->\n    <!-- \"sidebyside\" as the overall element with a \"stack\".    -->\n    <sidebyside>\n        <stack>\n            <!-- faux title -->\n            <p>\n                <xsl:element name=\"pi:localize\">\n                    <xsl:attribute name=\"string-id\">data</xsl:attribute>\n                </xsl:element>\n                <xsl:text>: </xsl:text>\n                <c>\n                    <xsl:value-of select=\"@filename\"/>\n                </c>\n            </p>\n            <!-- image or code, one panel -->\n            <xsl:choose>\n                <xsl:when test=\"image\">\n                    <xsl:copy-of select=\"image\"/>\n                </xsl:when>\n                <xsl:when test=\"pre\">\n                    <!-- provide default rows and cols, sync with dynamic version -->\n                    <xsl:variable name=\"desired-rows\">\n                        <xsl:choose>\n                            <xsl:when test=\"@rows\">\n                                <xsl:value-of select=\"@rows\"/>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$datafile-default-rows\"/>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:variable>\n                    <xsl:variable name=\"desired-cols\">\n                        <xsl:choose>\n                            <xsl:when test=\"@cols\">\n                                <xsl:value-of select=\"@cols\"/>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$datafile-default-cols\"/>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:variable>\n                    <pre>\n                        <!-- form an \"upper-left-corner\" view -->\n                        <xsl:call-template name=\"text-viewport\">\n                            <xsl:with-param name=\"nrows\" select=\"$desired-rows\"/>\n                            <xsl:with-param name=\"ncols\" select=\"$desired-cols\"/>\n                            <xsl:with-param name=\"text\">\n                                <!-- defined in -common -->\n                                <xsl:apply-templates select=\".\" mode=\"datafile-text-contents\"/>\n                            </xsl:with-param>\n                        </xsl:call-template>\n                    </pre>\n                </xsl:when>\n                <!-- no other source/PTX element is supported , bail out-->\n                <xsl:otherwise/>\n            </xsl:choose>\n        </stack>\n    </sidebyside>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-runestone.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2022 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- exsl: necessary to write out Runestone manifest -->\n<!-- str: necessary to tokenize alternate Runestone Services -->\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl str pi\"\n>\n\n<!-- ######################## -->\n<!-- Runestone Infrastructure -->\n<!-- ######################## -->\n\n<!-- Runestone Services -->\n<!-- Runestone provides universally-applicable Javascript, and since Brad Miller -->\n<!-- is \"such a nice guy\" he provides an XML version of the necessary files.     -->\n<!-- These are obtained/created/analyzed in the Python script. The structure     -->\n<!-- of this file is pretty simple, and should be apparent to the cognescenti.   -->\n\n<!-- The content of the services file  is provided via                 -->\n<!-- string parameters passed into this stylesheet. The purpose is to  -->\n<!-- allow the core Python routines to query the Runestone server for  -->\n<!-- the *very latest* services file available online. This is meant   -->\n<!-- to be a totally automated operation, so parameter names are not   -->\n<!-- always human-friendly.  Sometimes these parameters are provided   -->\n<!-- from alternate sources due to some debugging mode being employed. -->\n<!-- See the Python script for more detail.                            -->\n<xsl:param name=\"rs-js\" select=\"''\"/>\n<xsl:param name=\"rs-css\" select=\"''\"/>\n<xsl:param name=\"rs-version\" select=\"''\"/>\n\n<!-- The Runestone Services version actually in use is -->\n<!-- needed several places, so we compute it once now. -->\n<!-- Manifest, two \"ebookConfig\".                      -->\n<xsl:variable name=\"runestone-version\">\n    <xsl:value-of select=\"$rs-version\"/>\n</xsl:variable>\n\n<!-- The Runestone platform option requires output that can be used  -->\n<!-- on the server with a templating language/tool.  For books       -->\n<!-- originating from PreTeXt we use a non-default pair of strings.  -->\n<!-- This is because the default is {{, }} and these behave poorly   -->\n<!-- in  a/@href  output, since the outer pair looks like an XSL AVT -->\n<!-- and then the inner pair gets escaped as a reserved character in -->\n<!-- a URI.  (We can turn off URI-escaping with XSLT 2.0, but the    -->\n<!-- AVT confusion may still be a problem.)                          -->\n\n<!-- These are used two places, so defined globally, not  -->\n<!-- conditionally.  Due to their ubiquity in these two   -->\n<!-- concentrated locations, the variable names are       -->\n<!-- intentionally cryptic, contrary to usual practice.   -->\n<!-- rs = Runestone, o = open, c = close.                 -->\n\n<xsl:variable name=\"rso\" select=\"'~._'\"/>\n<xsl:variable name=\"rsc\" select=\"'_.~'\"/>\n\n<!-- Runestone Services (Javascript)  -->\n<!-- OR, Hosting at Runestone Academy -->\n<xsl:template name=\"runestone-header\">\n    <!-- Runestone templating for customizing hosted books   -->\n    <!-- no Sphinx {% %} templating for build system at all, -->\n    <!-- conditional on $b-host-runestone                    -->\n    <!-- 'true'  - hosted on a Runestone server,             -->\n    <!--           {{ }} templating replaced by $rso, $rsc   -->\n    <!-- 'false' - local viewing, no server,                 -->\n    <!--           just Runestone Services, so dummy values  -->\n    <xsl:choose>\n        <!-- Runestone Server build -->\n        <xsl:when test=\"$b-host-runestone\">\n            <script type=\"text/javascript\">\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>eBookConfig = {};&#xa;</xsl:text>\n                <xsl:text>eBookConfig.useRunestoneServices = true;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.host = '';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.app = eBookConfig.host + '/runestone';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.course = '</xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> course_name </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.termStartDate = '</xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> term_start_date </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.basecourse = '</xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> base_course </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.isLoggedIn = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> is_logged_in </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.email = '</xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> user_email </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.isInstructor = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> is_instructor </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.logLevel = 10;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.ajaxURL = eBookConfig.app + \"/ajax/\";&#xa;</xsl:text>\n                <!-- no .loglevel -->\n                <xsl:text>eBookConfig.username = '</xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> user_id </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.readings = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> readings|safe </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.activities = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> activity_info|safe </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.downloadsEnabled = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> downloads_enabled </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.allow_pairs = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> allow_pairs </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.course_attrs = </xsl:text><xsl:value-of select=\"$rso\"/><xsl:text> course_attrs|default({})|tojson|safe </xsl:text><xsl:value-of select=\"$rsc\"/><xsl:text>;&#xa;</xsl:text>\n                <!-- Scratch ActiveCode windows are a publisher option -->\n                <xsl:text>eBookConfig.enableScratchAC = </xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"$b-has-scratch-activecode\">\n                        <xsl:text>true</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>false</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <xsl:text>;&#xa;</xsl:text>\n                <!-- And set the language when scratch ActiveCode is enabled -->\n                <xsl:if test=\"$b-has-scratch-activecode\">\n                    <xsl:text>eBookConfig.acDefaultLanguage = '</xsl:text>\n                    <xsl:value-of select=\"$html-scratch-activecode-language\"/>\n                    <xsl:text>';&#xa;</xsl:text>\n                </xsl:if>\n                <!-- end Scratch ActiveCode windows -->\n                <xsl:text>eBookConfig.new_server_prefix = \"/ns\";&#xa;</xsl:text>\n                <xsl:text>eBookConfig.runestone_version = '</xsl:text>\n                <xsl:value-of select=\"$runestone-version\"/>\n                <xsl:text>';&#xa;</xsl:text>\n                <!-- no .build_info -->\n                <!-- no .python3 -->\n                <!-- no .jobehost -->\n                <!-- no .proxyuri_runs -->\n                <!-- no .proxyuri_files -->\n                <!-- no .enable_chatcodes -->\n            </script>\n            <xsl:text>&#xa;</xsl:text>\n\n            <!-- Ethical Ads: only on Runestone server, only visible in -->\n            <!-- *non-login* versions of books hosted at Runestone      -->\n            <script src=\"https://media.ethicalads.io/media/client/ethicalads.min.js\"/>\n\n        </xsl:when>\n        <!-- Runestone for All build -->\n        <!-- Hosted without a Runestone Server, just using Javascript -->\n        <xsl:when test=\"not($b-host-runestone)\">\n            <xsl:comment>** eBookCongig is necessary to configure interactive       **</xsl:comment><xsl:text>&#xa;</xsl:text>\n            <xsl:comment>** Runestone components to run locally in reader's browser **</xsl:comment><xsl:text>&#xa;</xsl:text>\n            <xsl:comment>** No external communication:                              **</xsl:comment><xsl:text>&#xa;</xsl:text>\n            <xsl:comment>**     log level is 0, Runestone Services are disabled     **</xsl:comment><xsl:text>&#xa;</xsl:text>\n            <script type=\"text/javascript\">\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>eBookConfig = {};&#xa;</xsl:text>\n                <xsl:text>eBookConfig.useRunestoneServices = false;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.host = 'http://127.0.0.1:8000';&#xa;</xsl:text>\n                <!-- no .app -->\n                <!-- scratch Active Code fails if these faux strings have spaces or colons -->\n                <xsl:text>eBookConfig.course = 'PTX_Course_Title_Here';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.basecourse = 'PTX_Base_Course';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.isLoggedIn = false;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.email = '';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.isInstructor = false;&#xa;</xsl:text>\n                <!-- no .ajaxURL since no .app -->\n                <xsl:text>eBookConfig.logLevel = 0;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.username = '';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.readings = null;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.activities = null;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.downloadsEnabled = false;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.allow_pairs = false;&#xa;</xsl:text>\n                <!-- Scratch ActiveCode windows are a publisher option -->\n                <xsl:text>eBookConfig.enableScratchAC = </xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"$b-has-scratch-activecode\">\n                        <xsl:text>true</xsl:text>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>false</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n                <xsl:text>;&#xa;</xsl:text>\n                <!-- And set the language when scratch ActiveCode is enabled -->\n                <xsl:if test=\"$b-has-scratch-activecode\">\n                    <xsl:text>eBookConfig.acDefaultLanguage = '</xsl:text>\n                    <xsl:value-of select=\"$html-scratch-activecode-language\"/>\n                    <xsl:text>';&#xa;</xsl:text>\n                </xsl:if>\n                <!-- end Scratch ActiveCode windows -->\n                <xsl:text>eBookConfig.build_info = \"\";&#xa;</xsl:text>\n                <xsl:text>eBookConfig.python3 = null;&#xa;</xsl:text>\n                <xsl:text>eBookConfig.runestone_version = '</xsl:text>\n                <xsl:value-of select=\"$runestone-version\"/>\n                <xsl:text>';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.jobehost = '';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.proxyuri_runs = '';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.proxyuri_files = '';&#xa;</xsl:text>\n                <xsl:text>eBookConfig.enable_chatcodes =  false;&#xa;</xsl:text>\n            </script>\n            <xsl:text>&#xa;</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n\n    <!-- The Runestone Services file typically contains multiple filenames    -->\n    <!-- for Javascript and CSS (like two or three).                          -->\n    <!-- We expect the two string parameters to be lists delimited by a colon -->\n    <!-- (':'), so this character should not ever appear in the filenames.    -->\n    <!-- Note: these variables will be vacuous when the string parameters are -->\n    <!-- empty strings, and then will not ever be employed                    -->\n    <xsl:variable name=\"rs-js-tokens\" select=\"str:tokenize($rs-js, ':')\"/>\n    <xsl:variable name=\"rs-css-tokens\" select=\"str:tokenize($rs-css, ':')\"/>\n\n    <!-- Javascript and CSS \"master\" links/pointers into _static -->\n    <xsl:comment>*** Runestone Services ***</xsl:comment>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:for-each select=\"$rs-js-tokens\">\n        <script>\n            <xsl:attribute name=\"src\">\n                <xsl:value-of select=\"$cdn-prefix\"/>\n                <xsl:text>_static/</xsl:text>\n                <xsl:value-of select=\".\"/>\n            </xsl:attribute>\n        </script>\n    </xsl:for-each>\n    <xsl:for-each select=\"$rs-css-tokens\">\n        <link rel=\"stylesheet\" type=\"text/css\">\n            <xsl:attribute name=\"href\">\n                <xsl:value-of select=\"$cdn-prefix\"/>\n                <xsl:text>_static/</xsl:text>\n                <xsl:value-of select=\".\"/>\n            </xsl:attribute>\n        </link>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- User Menu (aka Bust Menu)                    -->\n<!-- Conditional on a build for Runestone hosting -->\n\n<xsl:template name=\"runestone-bust-menu\">\n    <!-- \"Bust w/ Silhoutte\" is U+1F464, used as menu icon -->\n    <xsl:if test=\"$b-host-runestone\">\n        <button class=\"runestone-profile dropdown button\" title=\"Profile\">\n            <xsl:call-template name=\"insert-symbol\">\n                <xsl:with-param name=\"name\" select=\"'person'\"/>\n            </xsl:call-template>\n            <span class=\"name\"><xsl:text>Profile</xsl:text></span>\n            <div class=\"dropdown-content\">\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>{% if settings.academy_mode: %}&#xa;</xsl:text>\n                <a href=\"/ns/course/index\">Course Home</a>\n                <a href=\"/runestone/assignments/chooseAssignment\">Assignments</a>\n                <a href=\"/runestone/assignments/practice\">Practice</a>\n                <hr/>\n                <!-- NB: next two entries were once templated with \"appname\" and           -->\n                <!-- the requisite spaces were percent-encoded by XSLT since it is         -->\n                <!-- known to be forming a  a/@href.                                       -->\n                <!-- Short-term fix: hard-code \"runestone\" as the appname, which should    -->\n                <!-- migrate to \"assignment\" when peer-instruction code moves.             -->\n                <!-- Long-term might suggest some XSL variables for the names of the apps. -->\n                <!-- if reader is not an instructor the next link will be removed by javascript -->\n                <a id=\"inst_peer_link\" href=\"/runestone/peer/instructor.html\">Peer Instruction (Instructor)</a>\n                <a href=\"/runestone/peer/student.html\">Peer Instruction (Student)</a>\n                <hr/>\n                <a href=\"/runestone/default/courses\">Change Course</a>\n                <hr/>\n                <a id=\"ip_dropdown_link\" href=\"/admin/instructor/menu\">Instructor Dashboard</a>\n                <hr/>\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:text>{% endif %}&#xa;</xsl:text>\n                <a href=\"/runestone/dashboard/studentreport\">Progress Page</a>\n                <hr/>\n                <xsl:text>&#xa;{% if is_logged_in %}&#xa;</xsl:text>\n                <a href=\"/runestone/default/user/profile\">Edit Profile</a>\n                <a href=\"/runestone/default/user/change_password\">Change Password</a>\n                <a href=\"/runestone/default/user/logout\">Log Out</a>\n                <xsl:text>&#xa;{% else %}&#xa;</xsl:text>\n                <a href=\"/runestone/default/user/register\">Register</a>\n                <a href=\"/runestone/default/user/login\">Login</a>\n                <xsl:text>&#xa;{% endif %}&#xa;</xsl:text>\n            </div>\n        </button>\n    </xsl:if>\n</xsl:template>\n\n<!-- Scratch ActiveCode window, for all builds (powered by Runestone   -->\n<!-- Javascript).  But more languages available on a Runestone server. -->\n<!-- Only if requested, explicitly or implicitly, via publisher file.  -->\n<!-- Unicode Character 'PENCIL' (U+270F)                               -->\n<xsl:template name=\"runestone-scratch-activecode\">\n    <xsl:if test=\"$b-has-scratch-activecode\">\n        <button onclick=\"runestoneComponents.popupScratchAC()\" class=\"activecode-toggle button\" title=\"Open Scratch ActiveCode\">\n            <xsl:call-template name=\"insert-symbol\">\n                <xsl:with-param name=\"name\" select=\"'edit'\"/>\n            </xsl:call-template>\n            <span class=\"name\">Scratch ActiveCode</span>\n        </button>\n    </xsl:if>\n</xsl:template>\n\n<!-- A convenience for attaching a Runestone id -->\n<!-- NB: we attempt to only use this template in this stylesheet. -->\n<!-- To enforce this, we *could* make a no-op, plus warning,      -->\n<!-- template in the \"pretext-html\" stylesheet, with this         -->\n<!-- implementation doing an overide.                             -->\n<xsl:template match=\"exercise|program|datafile|query|&PROJECT-LIKE;|task|video[@youtube]|exercises|worksheet\" mode=\"runestone-id-attribute\">\n    <xsl:variable name=\"id\">\n        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n    </xsl:variable>\n    <xsl:if test=\"$id != ''\">\n        <xsl:attribute name=\"id\">\n              <xsl:value-of select=\"$id\"/>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Runestone Hooks -->\n<!-- ############### -->\n\n<!-- Various additions/modifications to the HTML output, but which  -->\n<!-- we isolate here in this stylesheet for organizational reasons. -->\n\n<!-- A textual and visual progress indicator of completed activities  -->\n<!-- for a book hosted on a RS server, only.  At the RS \"subchapter\"  -->\n<!-- level, which we shortcut by checking for a chapter-level parent. -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"runestone-progress-indicator\">\n    <xsl:if test=\"$b-host-runestone and (parent::chapter or parent::appendix)\">\n        <div id=\"scprogresscontainer\">You have attempted <span id=\"scprogresstotal\"/> of <span id=\"scprogressposs\"/> activities on this page.<div id=\"subchapterprogress\" aria-label=\"Page progress\"/></div>\n    </xsl:if>\n</xsl:template>\n\n<!-- A timed exam requires markup that wraps an entire collection -->\n<!-- of exercises, so we pass the exercises in as a parameter     -->\n<xsl:template match=\"exercises\" mode=\"runestone-timed-exam\">\n    <xsl:param name=\"the-exercises\"/>\n    <xsl:param name=\"b-manifest\" select=\"false()\"/>\n\n    <!-- Since the component wraps the exercises, we do not need any  -->\n    <!-- restriction about being at teh Runestone \"subchapter\" level. -->\n    <xsl:if test=\"$b-host-runestone\">\n        <div class=\"timedAssessment\">\n            <!-- for the manifest only, report information about -->\n            <!-- the \"exercises\" division being re-purposed      -->\n            <xsl:if test=\"$b-manifest\">\n                <title>\n                    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                </title>\n                <number>\n                    <xsl:apply-templates select=\".\" mode=\"number\"/>\n                </number>\n            </xsl:if>\n            <ul data-component=\"timedAssessment\" data-question_label=\"\">\n                <!-- a Runestone id -->\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <xsl:apply-templates select=\".\" mode=\"runestone-timed-exam-attributes\"/>\n                <!-- the actual list of exercises -->\n                <xsl:copy-of select=\"$the-exercises\"/>\n                <xsl:if test=\"not($b-manifest)\">\n                    <!-- only at \"section\" level. only when building for a Runestone server -->\n                    <xsl:apply-templates select=\".\" mode=\"runestone-progress-indicator\"/>\n                </xsl:if>\n            </ul>\n        </div>\n    </xsl:if>\n</xsl:template>\n\n<!-- These are the possible attributes the Runestone component -->\n<!-- expects for a timed exam, in a style that the Runestone   -->\n<!-- HTML uses.  We repeat them *verbatim* when the Runestone  -->\n<!-- manifect reports an \"exercises\" as a timed exam, as the   -->\n<!-- best way to endure some consistency in defaults, etc.     -->\n<xsl:template match=\"exercises\" mode=\"runestone-timed-exam-attributes\">\n    <!-- one mandatory attribute -->\n    <xsl:attribute name=\"data-time\">\n        <xsl:value-of select=\"@time-limit\"/>\n    </xsl:attribute>\n    <!-- result, timer, feedback, pause are *on* by  -->\n    <!-- default if a PreTeXt attribute is \"no\" then -->\n    <!-- issue empty \"data-no-*\" Runestone attribute -->\n    <xsl:if test=\"@results = 'no'\">\n        <xsl:attribute name=\"data-no-result\"/>\n    </xsl:if>\n    <xsl:if test=\"@timer = 'no'\">\n        <xsl:attribute name=\"data-no-timer\"/>\n    </xsl:if>\n    <xsl:if test=\"@feedback = 'no'\">\n        <xsl:attribute name=\"data-no-feedback\"/>\n    </xsl:if>\n    <xsl:if test=\"@pause = 'no'\">\n        <xsl:attribute name=\"data-no-pause\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- An \"exercises\" division can be a group work exercise, by virtue -->\n<!-- of selection and submission features at the bottom of the page. -->\n<xsl:template match=\"exercises|worksheet\" mode=\"runestone-groupwork\">\n    <div class=\"runestone\">\n        <div data-component=\"groupsub\">\n            <!-- the Runestone id -->\n            <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n            <xsl:attribute name=\"data-size_limit\">\n                <xsl:choose>\n                    <xsl:when test=\"@groupsize\">\n                        <xsl:value-of select=\"@groupsize\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>3</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n            <!-- students select their partners in their group -->\n            <div>\n                <select multiple=\"\" class=\"assignment_partner_select\"  style=\"width: 100%\"/>\n            </div>\n            <!-- and a submit button once done -->\n            <div class=\"groupsub_button\"/>\n            <div class=\"para\">The Submit Group button will submit the answer for each each question on this page for each member of your group. It also logs you as the official group submitter.</div>\n        </div>\n    </div>\n</xsl:template>\n\n\n<!-- ################## -->\n<!-- Runestone Manifest -->\n<!-- ################## -->\n\n<!-- HTML ID and real title for each chapter and section -->\n<!-- A PTX \"section\" is a Runestone \"subchapter\"         -->\n<!-- Document hierarchy is preserved in XML structure    -->\n<!-- TODO: add exercises as \"question\"                   -->\n\n<!-- Conditional run-in -->\n<xsl:template name=\"runestone-manifest\">\n    <xsl:if test=\"$b-host-runestone and ($b-is-book or $b-is-article)\">\n        <!-- $document-root *will* be a book -->\n        <xsl:apply-templates select=\"$document-root\" mode=\"runestone-manifest\"/>\n    </xsl:if>\n</xsl:template>\n\n<!-- Compute list of any programs that are linked to from other programs, -->\n<!-- they will need to be rendered into the source. Result is a node-set  -->\n<!-- containing <token>id</token>                                         -->\n<xsl:variable name=\"linked-programs-list-rtf\">\n    <xsl:variable name=\"linked-id-string\">\n      <xsl:for-each select=\"//program[boolean(@add-files) or boolean(@include) or boolean(@compile-also)]\">\n          <xsl:value-of select=\"@add-files\"/>\n          <xsl:text>,</xsl:text>\n          <xsl:value-of select=\"@include\"/>\n          <xsl:text>,</xsl:text>\n          <xsl:value-of select=\"@compile-also\"/>\n          <xsl:text>,</xsl:text>\n      </xsl:for-each>\n    </xsl:variable>\n    <xsl:call-template name=\"unique-token-set\">\n        <xsl:with-param name=\"s\" select=\"$linked-id-string\"/>\n    </xsl:call-template>\n</xsl:variable>\n<xsl:variable name=\"linked-programs-list\" select=\"exsl:node-set($linked-programs-list-rtf)/token\"/>\n\n<xsl:template match=\"book|article\" mode=\"runestone-manifest\">\n    <exsl:document href=\"runestone-manifest.xml\" method=\"xml\" indent=\"yes\" encoding=\"UTF-8\">\n        <manifest>\n            <!-- version of Runestone Services used for this build -->\n            <runestone-services>\n                <xsl:attribute name=\"version\">\n                    <xsl:value-of select=\"$runestone-version\"/>\n                </xsl:attribute>\n            </runestone-services>\n            <!-- default programming language for book as specified in docinfo -->\n            <!-- if not specified, assume python                               -->\n            <default-language>\n                <xsl:choose>\n                    <xsl:when test=\"$default-active-programming-language != ''\">\n                        <xsl:value-of select=\"$default-active-programming-language\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:text>python</xsl:text>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </default-language>\n            <!-- mine various bits and pieces of the source for RS metadata  -->\n            <!-- collection, which is technically a \"conf.py\" file, per-book -->\n            <library-metadata publisher=\"pretext\">\n                <!-- sanitizes footnotes, quotes, math for overall title-->\n                <title>\n                    <xsl:apply-templates select=\"$document-root\" mode=\"title-plain\"/>\n                </title>\n                <subtitle>\n                    <xsl:apply-templates select=\"$document-root\" mode=\"subtitle\"/>\n                </subtitle>\n                <xsl:for-each select=\"$document-root/frontmatter/bibinfo/author\">\n                    <author>\n                        <xsl:apply-templates select=\"personname\"/>\n                    </author>\n                </xsl:for-each>\n                <!-- edition, too? -->\n                <document-id>\n                    <!-- global variables defined in -common -->\n                    <xsl:attribute name=\"edition\">\n                        <xsl:value-of select=\"$edition\"/>\n                    </xsl:attribute>\n                    <xsl:value-of select=\"$document-id\"/>\n                </document-id>\n                <!-- duplicate blurb, blurb/@shelf for Runestone's convenience -->\n                <!-- use \"value-of\" to enforce assumption there is no markup   -->\n                <!-- NB: if absent in PTX source, these are empty in manifest  -->\n                <shelf>\n                    <xsl:value-of select=\"$docinfo/blurb/@shelf\"/>\n                </shelf>\n                <blurb>\n                    <xsl:value-of select=\"$docinfo/blurb\"/>\n                </blurb>\n            </library-metadata>\n            <!-- LaTeX packages and macros first -->\n            <latex-macros>\n                <xsl:text>&#xa;</xsl:text>\n                <xsl:value-of select=\"$latex-packages-mathjax\"/>\n                <xsl:value-of select=\"$latex-macros\"/>\n            </latex-macros>\n            <!-- Report major and minor versions from WW so Runestone knows what's up.   -->\n            <!-- These variables are formed in  -html  and could be empty/blank. Hoever, -->\n            <!-- they should always be defined as global variables.                      -->\n            <webwork-version major=\"{$webwork-major-version}\" minor=\"{$webwork-minor-version}\"/>\n            <xsl:choose>\n                <xsl:when test=\"self::book\">\n                    <!-- Now recurse into chapters, appendix -->\n                    <xsl:apply-templates select=\"*\" mode=\"runestone-manifest\"/>\n                </xsl:when>\n                <xsl:when test=\"self::article\">\n                    <!-- Now recurse into sections, appendix  -->\n                    <!-- with a faux chapter, using \"article\" -->\n                    <chapter>\n                        <id>\n                            <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n                        </id>\n                        <title>\n                            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n                        </title>\n                        <number>\n                            <xsl:apply-templates select=\".\" mode=\"number\"/>\n                        </number>\n                        <division>\n                            <xsl:value-of select=\"local-name()\"/>\n                        </division>\n                        <xsl:apply-templates select=\"*\" mode=\"runestone-manifest\"/>\n                    </chapter>\n                </xsl:when>\n            </xsl:choose>\n        </manifest>\n    </exsl:document>\n</xsl:template>\n\n<xsl:template match=\"chapter\" mode=\"runestone-manifest\">\n    <chapter>\n        <id>\n            <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n        </id>\n        <title>\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </title>\n        <number>\n            <xsl:apply-templates select=\".\" mode=\"number\"/>\n        </number>\n        <division>\n            <xsl:value-of select=\"local-name()\"/>\n        </division>\n    <!-- Recurse into PTX sections, or if the chapter is not structured, -->\n    <!-- then pick up inline exercises directly within a chapter         -->\n    <xsl:apply-templates select=\"*\" mode=\"runestone-manifest\"/>\n    </chapter>\n</xsl:template>\n\n<!-- Every division at PreTeXt \"section\" level, potentially containing  -->\n<!-- an \"exercise\", e.g. a \"worksheet\", but not a \"references\", is a    -->\n<!-- Runestone \"subchapter\".  Runestone \"timed exams\" (on a per-chapter -->\n<!-- basis here), which are an \"exercises\" with a @time-limit, are      -->\n<!-- exceptional and have templates elsewhere.                          -->\n<xsl:template match=\"section|chapter/exercises[not(@time-limit)]|chapter/worksheet|chapter/handout|chapter/reading-questions\" mode=\"runestone-manifest\">\n    <subchapter>\n        <!-- some properties of the division -->\n        <xsl:apply-templates select=\".\" mode=\"runestone-division-properties\"/>\n        <!-- nearly a dead end, recurse into \"exercise\" and PROJECT-LIKE at *any* PTX -->\n        <!-- depth, for example within a \"subsection\" (which Runestone does not have) -->\n        <!-- If any of the next select are containers (full of \"task\") they will not  -->\n        <!-- meet the dead-end monster match below, and the default template will     -->\n        <!-- recurse into non-container \"task\" eventually, so \"task\" do get           -->\n        <!-- processed, even if they seem to be missing from this select.             -->\n        <!-- Exceptions (early in the select): we explicitly recurse into a           -->\n        <!-- \"exercises\" division at the PreTeXt \"subsection\" level that is a         -->\n        <!-- Runestone timed exam associated with some \"section\".  We also avoid      -->\n        <!-- collecting \"exercise\" at arbitrary depth for the timed exams, as the     -->\n        <!-- template for those divisions will do that collection.                    -->\n        <xsl:apply-templates select=\"exercises[@time-limit]|.//exercise[not(ancestor::exercises[@time-limit])]|.//project|.//activity|.//exploration|.//investigation|.//video[@youtube]|.//program[(@interactive = 'codelens') and not(parent::exercise)]|.//program[(@interactive = 'activecode') and not(parent::exercise)]|.//datafile\" mode=\"runestone-manifest\"/>\n\n        <!-- Now check for programs that have been included elsewhere. They need      -->\n        <!-- to be rendered into <source> elements.                                   -->\n        <xsl:apply-templates select=\".//program[@xml:id = $linked-programs-list]\" mode=\"runestone-manifest-source\"/>\n    </subchapter>\n    <!-- dead end structurally, no more recursion, even if \"subsection\", etc. -->\n</xsl:template>\n\n<!-- \"exercises\" divisions with @time-limit are Runestone \"timed-exams\".      -->\n<!-- They can be at the PreTeXt \"section\" level (as a Runestone \"subchapter\") -->\n<!-- or they are at the PreTeXt \"subsection\" level. Their contained           -->\n<!-- \"exercise\" are excluded previously, and are now collected here.          -->\n<xsl:template match=\"chapter/exercises[@time-limit]|chapter/section/exercises[@time-limit]\" mode=\"runestone-manifest\">\n    <!-- Duplicate the division, ehnhanced with indicators of a timed -->\n    <!-- exam.  Include the contained exercises as manifest items.    -->\n    <!-- Strictly speaking this not exactly correct, for example,     -->\n    <!-- we get a progress indicator we do not want.                  -->\n    <xsl:apply-templates select=\".\" mode=\"runestone-timed-exam\">\n        <xsl:with-param name=\"the-exercises\">\n            <xsl:apply-templates select=\".//exercise\" mode=\"runestone-manifest\"/>\n        </xsl:with-param>\n        <xsl:with-param name=\"b-manifest\" select=\"true()\"/>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Properties to report for each division -->\n<xsl:template match=\"*\" mode=\"runestone-division-properties\">\n    <id>\n        <xsl:apply-templates select=\".\" mode=\"html-id\"/>\n    </id>\n    <title>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </title>\n    <number>\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n    </number>\n    <!-- report the division type -->\n    <division>\n        <xsl:value-of select=\"local-name()\"/>\n    </division>\n</xsl:template>\n\n<!-- A Runestone exercise needs to identify itself when an instructor wants   -->\n<!-- to select it for assignment, so we want to provide enough identification -->\n<!-- in the manifest, via a \"label\" element full of raw text.                 -->\n<xsl:template match=\"exercise|project|activity|exploration|investigation|task\" mode=\"runestone-manifest-label\">\n    <label>\n        <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"number\"/>\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </label>\n</xsl:template>\n\n<!-- Minimal label.  In database for obvious reasons, -->\n<!-- this is best (only?) thing to use as a label.    -->\n<xsl:template match=\"datafile\" mode=\"runestone-manifest-label\">\n    <label>\n        <xsl:value-of select=\"@filename\"/>\n    </label>\n</xsl:template>\n\n<!-- Runestone tracks engagement with YouTube videos and \"stray\" -->\n<!-- ActiveCode and CodeLens (i.e. an \"inline\" \"program\", not as -->\n<!-- a portion of an \"exercise\".  As these are atomic elements,  -->\n<!-- there is little to grab onto for a label in a report for an -->\n<!-- instructor.  So we provide examination of an enclosing      -->\n<!-- figure (\"video\") or listing (\"program\").                    -->\n\n<xsl:template match=\"video[@youtube]|program[((@interactive = 'codelens') or (@interactive = 'activecode')) and not(parent::exercise)]\" mode=\"runestone-manifest-label\">\n    <label>\n        <!-- three ways to get a type-name -->\n        <xsl:choose>\n            <xsl:when test=\"self::video[@youtube]\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n            </xsl:when>\n            <xsl:when test=\"self::program[@interactive = 'codelens']\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'program-codelens'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n            <xsl:when test=\"self::program[@interactive = 'activecode']\">\n                <xsl:apply-templates select=\".\" mode=\"type-name\">\n                    <xsl:with-param name=\"string-id\" select=\"'program-activecode'\"/>\n                </xsl:apply-templates>\n            </xsl:when>\n        </xsl:choose>\n        <!-- \"video\" can be a \"figure\", and \"program\" can be in a -->\n        <!-- \"listing\", but the two situations are similar enough -->\n        <!-- to combine and work with a generic parent/enclosure. -->\n        <!-- This could well be empty if inline objects.          -->\n        <xsl:variable name=\"enclosure\" select=\"parent::figure|parent::listing\"/>\n        <xsl:variable name=\"b-title\" select=\"boolean(title)\"/>\n        <xsl:variable name=\"b-enclosure\" select=\"boolean($enclosure)\"/>\n        <!-- more coming, use a separator -->\n        <xsl:if test=\"$b-title or $b-enclosure\">\n            <xsl:text>: </xsl:text>\n        </xsl:if>\n        <!-- object's title is \"closer\" (or may be only  -->\n        <!-- possible identification if standalone) -->\n        <xsl:if test=\"$b-title\">\n            <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        </xsl:if>\n        <!-- if an abundance, use a separator -->\n        <xsl:if test=\"$b-title and $b-enclosure\">\n            <xsl:text>; </xsl:text>\n        </xsl:if>\n        <xsl:if test=\"$b-enclosure\">\n            <xsl:apply-templates select=\"$enclosure\" mode=\"type-name\"/>\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\"$enclosure\" mode=\"number\"/>\n            <xsl:if test=\"$enclosure/title\">\n                <xsl:text> </xsl:text>\n                <xsl:apply-templates select=\"$enclosure\" mode=\"title-full\"/>\n            </xsl:if>\n        </xsl:if>\n        <!-- last ditch effor for a YouTube video -->\n        <xsl:if test=\"self::video[@youtube] and not($b-title) and not($b-enclosure)\">\n            <xsl:text>: </xsl:text>\n            <!-- need to know Runestone CSS to make this code/monospace -->\n            <xsl:value-of select=\"@youtube\"/>\n        </xsl:if>\n    </label>\n</xsl:template>\n\n<!-- Exercises to the Runestone manifest                                 -->\n<!-- This is includes some things that can't exist. e.g. webwork in task -->\n<!-- but standardized treatment is easier to maintain than explicit      -->\n<!-- listing of expected combinations.                                   -->\n<!-- Intentionally matching all containers and then filtering with if on -->\n<!-- attribute. Explicit listing in template match might be slightly more-->\n<!-- efficient but has proven to be a popular spot for bugs.             -->\n<xsl:template match=\"exercise|&PROJECT-LIKE;|task\" mode=\"runestone-manifest\">\n    <xsl:variable name=\"manifestable-interactives-fenced\">|truefalse|multiplechoice|parson|parson-horizontal|cardsort|matching|clickablearea|select|fillin-basic|fillin|coding|dual|shortanswer|webwork|</xsl:variable>\n    <xsl:if test=\"contains($manifestable-interactives-fenced, concat('|', @exercise-interactive, '|'))\">\n        <question>\n            <!-- A divisional exercise (\"exercises/../exercise\") is not really   -->\n            <!-- a reading activity in the Runestone model, so we flag these     -->\n            <!-- exercises as such.  Also, interactive \"task\" come through here, -->\n            <!-- so we need to look to an ancestor to see if the containing      -->\n            <!-- \"exercise\" is divisional. The @optional attribute matches the   -->\n            <!-- \"optional\" flag in the Runestone database.  We simply set the   -->\n            <!-- value to \"yes\" and never bother to say \"no\".  The  only         -->\n            <!-- consumer is the import into the Runestone database, so any      -->\n            <!-- change needs only coordinate there.                             -->\n            <xsl:if test=\"(@exercise-customization = 'divisional') or\n                          (self::task and ancestor::exercise[@exercise-customization = 'divisional'])\">\n                <xsl:attribute name=\"optional\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:attribute>\n            </xsl:if>\n            <!-- label is from the \"exercise\" -->\n            <xsl:apply-templates select=\".\" mode=\"runestone-manifest-label\"/>\n            <!-- Duplicate, but still should look like original (ID, etc.),  -->\n            <!-- not knowled. Solutions are available in the originals, via  -->\n            <!-- an \"in context\" link off the Assignment page                -->\n            <htmlsrc>\n                <!-- next template produces nothing, unless the  -->\n                <!-- \"exercise\" is in an \"exercisegroup\" (\"eg\")  -->\n                <xsl:apply-templates select=\".\" mode=\"eg-introduction\"/>\n                <xsl:choose>\n                    <!-- with \"webwork\" guts, the HTML is exceptional -->\n                    <xsl:when test=\"@exercise-interactive = 'webwork'\">\n                        <xsl:apply-templates select=\".\" mode=\"webwork-core\">\n                            <xsl:with-param name=\"b-original\" select=\"true()\"/>\n                        </xsl:apply-templates>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <!-- next template collects \"introduction\" preceding a \"task\" -->\n                        <!-- Note: we are explicitly dodging webwork/task             -->\n                        <xsl:apply-templates select=\".\" mode=\"task-introductions\"/>\n\n                        <!-- determine which components publisher wants rendered-->\n                        <xsl:variable name=\"ex-components-rtf\">\n                            <xsl:apply-templates select=\".\" mode=\"exercise-components-report\"/>\n                        </xsl:variable>\n                        <xsl:variable name=\"ex-components-report\" select=\"exsl:node-set($ex-components-rtf)/exercise-component-report\"/>\n\n                        <xsl:apply-templates select=\".\" mode=\"exercise-components\">\n                            <xsl:with-param name=\"b-original\" select=\"true()\"/>\n                            <xsl:with-param name=\"block-type\" select=\"'visible'\"/>\n                            <xsl:with-param name=\"b-has-statement\" select=\"true()\"/>\n                            <xsl:with-param name=\"b-has-hint\" select=\"$ex-components-report/@has-hint = 'true'\"/>\n                            <xsl:with-param name=\"b-has-answer\" select=\"$ex-components-report/@has-answer = 'true'\"/>\n                            <xsl:with-param name=\"b-has-solution\" select=\"$ex-components-report/@has-solution = 'true'\"/>\n                        </xsl:apply-templates>\n\n                        <!-- next template collects \"conclusion\" preceding a \"task\" -->\n                        <!-- Note: we are explicitly dodging webwork/task           -->\n                        <xsl:apply-templates select=\".\" mode=\"task-conclusions\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </htmlsrc>\n        </question>\n    </xsl:if>\n    <!-- The match for this template will include \"exercise\" and &PROJECT-LIKE  -->\n    <!-- that are just containers for a bunch of \"task\".  In other words, they  -->\n    <!-- will not be marked with the \"@exercise-interactive\" attribute.  So the -->\n    <!-- \"xsl:if\" above will fail.  And right here is a dead-end.  We need to   -->\n    <!-- recurse into \"task\" for the possibility they are marked with           -->\n    <!-- \"@exercise-interactive\" so they can potentially get placed properly in -->\n    <!-- the manifest.                                                          -->\n    <xsl:apply-templates select=\"task\" mode=\"runestone-manifest\"/>\n</xsl:template>\n\n<!-- For an \"exercise\" divorced from it's \"exercisegroup\" \"introduction\", -->\n<!-- we pick it up to be part of what is shown to the student on the      -->\n<!-- Runestone Assignment page.                                           -->\n\n<xsl:template match=\"*\" mode=\"eg-introduction\"/>\n\n<xsl:template match=\"exercisegroup/exercise\" mode=\"eg-introduction\">\n    <xsl:apply-templates select=\"parent::exercisegroup/introduction\"/>\n</xsl:template>\n\n<!-- Next two templates replicate all ancestral \"introduction\"   -->\n<!-- and \"conclusion\" on a per-task basis so that when a \"task\"  -->\n<!-- is viewed in the Runestone assignment builder, any overall  -->\n<!-- explanatory text is available.                              -->\n\n<xsl:template match=\"task\" mode=\"task-introductions\">\n    <!-- collect in a variable, so processing is subsequently in document order -->\n    <xsl:variable name=\"introductions\" select=\"ancestor-or-self::task/preceding-sibling::introduction\"/>\n    <xsl:apply-templates select=\"$introductions\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"task-introductions\"/>\n\n<xsl:template match=\"task\" mode=\"task-conclusions\">\n    <!-- collect in a variable, so processing is subsequently in document order -->\n    <xsl:variable name=\"conclusions\" select=\"ancestor-or-self::task/following-sibling::conclusion\"/>\n    <xsl:apply-templates select=\"$conclusions\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"task-conclusions\"/>\n\n<!-- TODO: by renaming/refactoring the templates inside of   -->\n<!-- \"htmlsrc\" then perhaps several of these templates with  -->\n<!-- similar structure can be combined via one larger match. -->\n\n<xsl:template match=\"video[@youtube]\" mode=\"runestone-manifest\">\n    <question>\n        <!-- label is from the \"video\", or enclosing \"figure\" -->\n        <xsl:apply-templates select=\".\" mode=\"runestone-manifest-label\"/>\n        <htmlsrc>\n            <xsl:apply-templates select=\".\" mode=\"runestone-youtube-embed\"/>\n        </htmlsrc>\n    </question>\n</xsl:template>\n\n<xsl:template match=\"program[(@interactive = 'codelens') and not(parent::*[self::exercise or &PROJECT-FILTER;])]\" mode=\"runestone-manifest\">\n    <question>\n        <!-- label is from the \"program\", or enclosing \"listing\" -->\n        <xsl:apply-templates select=\".\" mode=\"runestone-manifest-label\"/>\n        <htmlsrc>\n            <xsl:apply-templates select=\".\" mode=\"runestone-codelens\"/>\n        </htmlsrc>\n    </question>\n</xsl:template>\n\n<xsl:template match=\"program[(@interactive = 'activecode') and not(parent::*[self::exercise or &PROJECT-FILTER;])]\" mode=\"runestone-manifest\">\n    <!-- verify that program is in a language that can be made active -->\n    <xsl:variable name=\"active-language\">\n        <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:variable>\n    <xsl:if test=\"$active-language != ''\">\n        <question>\n            <!-- label is from the \"program\", or enclosing \"listing\" -->\n            <xsl:apply-templates select=\".\" mode=\"runestone-manifest-label\"/>\n            <htmlsrc>\n                <xsl:apply-templates select=\".\" mode=\"runestone-activecode\"/>\n            </htmlsrc>\n        </question>\n    </xsl:if>\n</xsl:template>\n\n<!-- Source for every program that is linked to goes in as a <source>              -->\n<!-- For activecode/codelens, source will also appear in a <question> element      -->\n<!-- but in that location it will be buried in a pile of html.                     -->\n<xsl:template match=\"program\" mode=\"runestone-manifest-source\">\n    <xsl:variable name=\"filename\">\n        <xsl:apply-templates select=\".\" mode=\"runestone-filename\"/>\n    </xsl:variable>\n    <source>\n        <xsl:attribute name=\"filename\">\n            <xsl:value-of select=\"$filename\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\"code\"/>\n        </xsl:call-template>\n    </source>\n</xsl:template>\n\n<!-- Get filename to use for an element, fallback on label if filename is missing -->\n<xsl:template match=\"program|datafile\" mode=\"runestone-filename\">\n    <xsl:choose>\n        <xsl:when test=\"@filename\">\n            <xsl:value-of select=\"@filename\"/>\n        </xsl:when>\n        <xsl:when test=\"@label\">\n            <xsl:value-of select=\"@label\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>Missing filename attribute on </xsl:text>\n            <xsl:value-of select=\"name()\"/>\n            <xsl:text> with xml:id </xsl:text>\n            <xsl:value-of select=\"@xml:id\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- In database with the same structure as an exercise/question.     -->\n<!-- When datafile is in appendix, we want to wrap it with <datafile> -->\n<!-- and not write it as a question, which are expected to be in      -->\n<!-- numbered chapters.                                               -->\n<xsl:template match=\"datafile\" mode=\"runestone-manifest\">\n    <xsl:variable name=\"container-name\">\n        <xsl:choose>\n            <xsl:when test=\"ancestor::appendix\">\n                <xsl:text>datafile</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>question</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:element name=\"{$container-name}\">\n        <xsl:attribute name=\"optional\">\n            <xsl:text>yes</xsl:text>\n        </xsl:attribute>\n        <!-- label is from the \"program\", or enclosing \"listing\" -->\n        <xsl:apply-templates select=\".\" mode=\"runestone-manifest-label\"/>\n        <htmlsrc>\n            <xsl:apply-templates select=\".\" mode=\"runestone-to-interactive\"/>\n        </htmlsrc>\n    </xsl:element>\n</xsl:template>\n\n<!-- Appendix is currently not allowed to have \"questions\" as Runestone  -->\n<!-- requires those to have a chapter with an integer number             -->\n<!-- But look for code and datafiles that should go in source_code table -->\n<xsl:template match=\"appendix[.//program or .//datafile]\" mode=\"runestone-manifest\">\n    <appendix>\n        <!-- Check for programs that have been included elsewhere.           -->\n        <xsl:apply-templates select=\".//program[@xml:id = $linked-programs-list]\" mode=\"runestone-manifest-source\"/>\n        <!-- Check for datafiles, and write them as \"<datafile>\"s            -->\n        <xsl:apply-templates select=\".//datafile\" mode=\"runestone-manifest\"/>\n    </appendix>\n</xsl:template>\n<!-- If no programs or datafiles, do nothing -->\n<xsl:template match=\"appendix\" mode=\"runestone-manifest\"/>\n\n<!-- Traverse the tree,looking for things to do          -->\n<!-- http://stackoverflow.com/questions/3776333/         -->\n<!-- stripping-all-elements-except-one-in-xml-using-xslt -->\n<xsl:template match=\"*\" mode=\"runestone-manifest\">\n    <xsl:apply-templates select=\"*\" mode=\"runestone-manifest\"/>\n</xsl:template>\n\n<!-- ########## -->\n<!-- Components -->\n<!-- ########## -->\n\n<!-- The \"runestone-to-interactive\" templates will combine a   -->\n<!-- \"regular\" PreTeXt statement together with some additional -->\n<!-- interactive material to make a hybrid \"statement\"         -->\n\n<!-- The application of the \"runestone-to-interactive\" template is -->\n<!-- controlled by a surrounding \"match\" that limits elements      -->\n<!-- to \"exercise\", PROJECT-LIKE, and soon \"task\".  So the         -->\n<!-- matches here are fine with a *[@exercise-interactive='foo'],  -->\n<!-- as a convenience.                                             -->\n\n<!-- True/False -->\n\n<xsl:template match=\"*[@exercise-interactive = 'truefalse']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone multiplechoice_section\">\n            <!-- ul can have multiple answer attribute -->\n            <ul data-component=\"multiplechoice\" data-multipleanswers=\"false\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <!-- Q: the statement is not a list item, but appears *inside* the list? -->\n                <!-- overall statement, not per-choice -->\n                <xsl:apply-templates select=\"statement\"/>\n                <!-- radio button for True -->\n                <li data-component=\"answer\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                        <xsl:text>_opt_t</xsl:text>\n                    </xsl:attribute>\n                    <!-- Correct answer if problem statement is correct/True -->\n                    <xsl:if test=\"statement/@correct = 'yes'\">\n                        <xsl:attribute name=\"data-correct\"/>\n                    </xsl:if>\n                    <p>True.</p>\n                </li>\n                <li data-component=\"feedback\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                        <xsl:text>_opt_t</xsl:text>\n                    </xsl:attribute>\n                    <!-- identical feedback for each reader responses -->\n                    <xsl:apply-templates select=\"feedback\"/>\n                </li>\n                <!-- radio button for False -->\n                <li data-component=\"answer\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                        <xsl:text>_opt_f</xsl:text>\n                    </xsl:attribute>\n                    <!-- Correct answer if problem statement is incorrect/False -->\n                    <xsl:if test=\"statement/@correct = 'no'\">\n                        <xsl:attribute name=\"data-correct\"/>\n                    </xsl:if>\n                    <p>False.</p>\n                </li>\n                <li data-component=\"feedback\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                        <xsl:text>_opt_f</xsl:text>\n                    </xsl:attribute>\n                    <!-- identical feedback for each reader responses -->\n                    <xsl:apply-templates select=\"feedback\"/>\n                </li>\n            </ul>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- Multiple Choice -->\n\n<xsl:template match=\"*[@exercise-interactive = 'multiplechoice']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone multiplechoice_section\">\n            <!-- overall statement, not per-choice -->\n            <div class=\"exercise-statement\">\n                <xsl:apply-templates select=\"statement\"/>\n            </div>\n            <!-- ul can have multiple answer attribute -->\n            <ul data-component=\"multiplechoice\" class=\"exercise-interactives\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <xsl:variable name=\"ncorrect\" select=\"count(choices/choice[@correct = 'yes'])\"/>\n                <xsl:attribute name=\"data-multipleanswers\">\n                    <xsl:choose>\n                        <xsl:when test=\"choices/@multiple-correct = 'yes'\">\n                            <xsl:text>true</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"choices/@multiple-correct = 'no'\">\n                            <xsl:text>false</xsl:text>\n                        </xsl:when>\n                        <xsl:when test=\"$ncorrect > 1\">\n                            <xsl:text>true</xsl:text>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>false</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:attribute>\n                <!-- bare attribute, iff requested -->\n                <xsl:if test=\"choices/@randomize = 'yes'\">\n                    <xsl:attribute name=\"data-random\"/>\n                </xsl:if>\n                <xsl:apply-templates select=\"choices/choice\">\n                    <xsl:with-param name=\"the-id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n            </ul>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"choices/choice\">\n    <xsl:param name=\"the-id\"/>\n\n    <!-- id for each \"choice\"                  -->\n    <!-- with common base, then a, b, c suffix -->\n    <!-- Used *twice* on adjacent \"li\"?        -->\n    <xsl:variable name=\"choice-id\">\n        <xsl:value-of select=\"$the-id\"/>\n        <xsl:text>_opt_</xsl:text>\n        <!-- will count preceding \"choice\" only -->\n        <xsl:number format=\"a\"/>\n    </xsl:variable>\n    <li data-component=\"answer\">\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"$choice-id\"/>\n        </xsl:attribute>\n        <!-- mark correct answers (empty attribute value) -->\n        <xsl:if test=\"@correct = 'yes'\">\n            <xsl:attribute name=\"data-correct\"/>\n        </xsl:if>\n        <!-- per-choice statement -->\n        <xsl:apply-templates select=\"statement\"/>\n    </li>\n    <li data-component=\"feedback\">\n        <xsl:attribute name=\"id\">\n            <xsl:value-of select=\"$choice-id\"/>\n        </xsl:attribute>\n        <!-- per-choice explanation -->\n        <xsl:apply-templates select=\"feedback\"/>\n    </li>\n</xsl:template>\n\n<!-- Parsons Problem -->\n\n<xsl:template match=\"*[@exercise-interactive = 'parson']\" mode=\"runestone-to-interactive\">\n    <!-- active-language only used if runnable but needed multiple places -->\n    <xsl:variable name=\"active-language\">\n        <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:variable>\n    <!-- determine this option before context switches -->\n    <xsl:variable name=\"b-natural\" select=\"($active-language = '') or ($active-language = 'natural')\"/>\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone parsons_section\" style=\"max-width: none;\">\n            <div data-component=\"parsons\" class=\"parsons\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <div class=\"parsons_question parsons-text\" >\n                    <!-- the prompt -->\n                    <xsl:apply-templates select=\"statement\"/>\n                </div>\n                <pre class=\"parsonsblocks\" data-question_label=\"\" style=\"visibility: hidden;\">\n                    <!-- presence of a program implies runnable when completed -->\n                    <xsl:if test=\"program\">\n                        <xsl:choose>\n                            <xsl:when test=\"$active-language != ''\">\n                                <xsl:attribute name=\"data-runnable\">\n                                    <xsl:text>true</xsl:text>\n                                </xsl:attribute>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:variable name=\"id\">\n                                    <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n                                </xsl:variable>\n                                <xsl:message>PTX:WARNING:  Parsons problems need a @langauge that is a valid activecode language to be runnable</xsl:message>\n                                <xsl:message>              id: <xsl:value-of select=\"$id\"></xsl:value-of></xsl:message>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:if>\n                    <!-- author opts-in to adaptive problems -->\n                    <xsl:attribute name=\"data-language\">\n                        <xsl:choose>\n                            <xsl:when test=\"$b-natural\">\n                                <xsl:text>natural</xsl:text>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <!-- must now have a language -->\n                                <xsl:value-of select=\"$active-language\"/>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <!-- do not confuse this attribute with the  @pi:numbered -->\n                    <!-- attribute for numbered equations                     -->\n                    <xsl:variable name=\"numbered\" select=\"blocks/@numbered\"/>\n                    <xsl:choose>\n                        <xsl:when test=\"($numbered = 'left') or ($numbered = 'right')\">\n                            <xsl:attribute name=\"data-numbered\">\n                                <xsl:value-of select=\"$numbered\"/>\n                            </xsl:attribute>\n                        </xsl:when>\n                        <!-- default is un-numbered, so no attribute at all -->\n                        <xsl:when test=\"$numbered = 'no'\"/>\n                        <xsl:otherwise/>\n                    </xsl:choose>\n                    <xsl:if test=\"@adaptive = 'yes'\">\n                        <xsl:attribute name=\"data-adaptive\">\n                            <xsl:text>true</xsl:text>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <xsl:if test=\"blocks/block/@depends\">\n                        <xsl:attribute name=\"data-grader\">\n                            <xsl:text>dag</xsl:text>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <!-- author asks student to provide indentation via  -->\n                    <!-- the indentation-enabled \"drop\" text window      -->\n                    <!-- (not relevant for natural language)             -->\n                    <xsl:attribute name=\"data-noindent\">\n                        <xsl:choose>\n                            <xsl:when test=\"@indentation = 'hide'\">\n                                <xsl:text>false</xsl:text>\n                            </xsl:when>\n                            <!-- default is 'show' -->\n                            <xsl:otherwise>\n                                <xsl:text>true</xsl:text>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <!-- the blocks -->\n                    <xsl:apply-templates select=\"blocks/block\" mode=\"vertical-blocks\">\n                        <xsl:with-param name=\"b-natural\" select=\"$b-natural\"/>\n                    </xsl:apply-templates>\n                </pre>\n            </div>\n            <xsl:if test=\"program\">\n                <!-- Parsons is executable when finished -->\n                <div style=\"display: none\">\n                    <xsl:attribute name=\"id\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                        <xsl:text>-runnable</xsl:text>\n                    </xsl:attribute>\n                    <div data-component=\"parsons-runnable\">\n                        <xsl:attribute name=\"id\">\n                            <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                            <xsl:text>-runnable-ac</xsl:text>\n                        </xsl:attribute>\n                        <textarea data-lang=\"{$active-language}\" data-audio=\"\" data-coach=\"true\" style=\"visibility: hidden;\">\n                            <xsl:variable name=\"hosting\">\n                                <xsl:apply-templates select=\".\" mode=\"activecode-host\"/>\n                            </xsl:variable>\n                            <!-- loop just to set context. program should be single -->\n                            <xsl:for-each select=\"program\">\n                                <xsl:call-template name=\"runestone-activecode-editor-attributes\">\n                                    <xsl:with-param name=\"active-language\" select=\"$active-language\"/>\n                                    <xsl:with-param name=\"hosting\" select=\"$hosting\"/>\n                                </xsl:call-template>\n                            </xsl:for-each>\n                            <!-- the content -->\n                            <xsl:text>&#xa;</xsl:text>\n                            <xsl:call-template name=\"add-indentation\">\n                                <xsl:with-param name=\"text\">\n                                    <xsl:call-template name=\"sanitize-text\">\n                                        <xsl:with-param name=\"text\" select=\"program-preamble\"/>\n                                        <xsl:with-param name=\"preserve-end\" select=\"true()\"/>\n                                    </xsl:call-template>\n                                </xsl:with-param>\n                                <xsl:with-param name=\"indent\"><xsl:value-of select=\"program-preamble/@indent\"/></xsl:with-param>\n                            </xsl:call-template>\n                            <!-- placeholder for user code -->\n                            <xsl:text>==PARSONSCODE==&#xa;</xsl:text>\n                            <xsl:call-template name=\"add-indentation\">\n                                <xsl:with-param name=\"text\">\n                                    <xsl:call-template name=\"sanitize-text\">\n                                        <xsl:with-param name=\"text\" select=\"program-postamble\"/>\n                                        <xsl:with-param name=\"preserve-start\" select=\"true()\"/>\n                                    </xsl:call-template>\n                                </xsl:with-param>\n                                <xsl:with-param name=\"indent\"><xsl:value-of select=\"program-postamble/@indent\"/></xsl:with-param>\n                            </xsl:call-template>\n                        </textarea>\n                    </div>\n                </div>\n            </xsl:if>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"blocks/block\" mode=\"vertical-blocks\">\n    <xsl:param name=\"b-natural\"/>\n    <xsl:variable name=\"name\">\n        <xsl:choose>\n            <xsl:when test=\"@name|@depends\">\n                <xsl:text> #tag:</xsl:text>\n                <xsl:value-of select=\"@name\"/>\n                <xsl:text>; depends:</xsl:text>\n                <xsl:value-of select=\"str:replace(@depends, ' ', ',')\"/>\n                <xsl:text>;</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:variable>\n\n    <xsl:choose>\n        <xsl:when test=\"choice\">\n            <!-- put single correct choice first      -->\n            <!-- default on \"choice\" is  correct=\"no\" -->\n            <xsl:apply-templates select=\"choice[@correct = 'yes']\">\n                <xsl:with-param name=\"b-natural\" select=\"$b-natural\"/>\n                <xsl:with-param name=\"name\" select=\"$name\"/>\n            </xsl:apply-templates>\n            <xsl:apply-templates select=\"choice[not(@correct = 'yes')]\">\n                <xsl:with-param name=\"b-natural\" select=\"$b-natural\"/>\n                <xsl:with-param name=\"name\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:choose>\n                <xsl:when test=\"$b-natural\">\n                    <xsl:apply-templates/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:for-each select=\"cline\">\n                        <xsl:value-of select=\".\"/>\n                        <xsl:if test=\"following-sibling::cline\">\n                            <xsl:text>&#xa;</xsl:text>\n                        </xsl:if>\n                    </xsl:for-each>\n                </xsl:otherwise>\n            </xsl:choose>\n            <!-- default on \"block\" is  correct=\"yes\" -->\n            <xsl:if test=\"@correct = 'no'\">\n                <xsl:text> #distractor</xsl:text>\n            </xsl:if>\n            <xsl:value-of select=\"$name\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:if test=\"following-sibling::block\">\n        <xsl:text>&#xa;---&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template match=\"blocks/block/choice\">\n    <xsl:param name=\"b-natural\"/>\n    <xsl:param name=\"name\"/>\n\n    <!-- Exactly one choice is correct, it is placed first. -->\n    <!-- Then the  n - 1  separators can be placed on all   -->\n    <!-- the \"wrong\" choices.                               -->\n    <xsl:if test=\"not(@correct = 'yes')\">\n        <xsl:text>&#xa;---&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:choose>\n        <xsl:when test=\"$b-natural\">\n            <xsl:apply-templates select=\"*\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:for-each select=\"cline\">\n                <xsl:value-of select=\".\"/>\n                <xsl:if test=\"following-sibling::cline\">\n                    <xsl:text>&#xa;</xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:if test=\"not(@correct = 'yes')\">\n        <xsl:text> #paired</xsl:text>\n    </xsl:if>\n    <xsl:value-of select=\"$name\"/>\n</xsl:template>\n\n<!-- Parsons Problem (Horizontal)-->\n\n<xsl:template  match=\"*[@exercise-interactive = 'parson-horizontal']\" mode=\"runestone-to-interactive\">\n    <!-- determine these options before context switches -->\n    <xsl:variable name=\"active-language\">\n      <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:variable>\n    <xsl:variable name=\"b-natural\" select=\"($active-language = '') or ($active-language = 'natural')\"/>\n    <!-- randomize by default, so must explicitly turn off -->\n    <xsl:variable name=\"b-randomize\" select=\"not(blocks/@randomize = 'no')\"/>\n    <!-- A @ref is automatic indicator, else reuse has been requested on blocks -->\n    <xsl:variable name=\"b-reuse\" select=\"blocks/block[@ref] or (blocks/@reuse = 'yes')\"/>\n    <!-- We loop over blocks, as authored, so this is just a convenience -->\n    <xsl:variable name=\"authored-blocks\" select=\"blocks/block\"/>\n    <!-- A block with @ref indicates reuse of some other block, for answer         -->\n    <!-- specifications we want to treat them as duplicates.  And we do not        -->\n    <!-- write them into the HTML either.  So we make a subset of *unique* blocks. -->\n    <xsl:variable name=\"unique-blocks\" select=\"blocks/block[not(@ref)]\"/>\n\n     <div class=\"ptx-runestone-container\">\n        <div class=\"runestone hparsons_section\">\n            <div data-component=\"hparsons\" class=\"hparsons_section\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <div class=\"hp_question\">\n                    <!-- the prompt -->\n                    <xsl:apply-templates select=\"statement\"/>\n                </div>\n                <!-- empty div seems necessary? -->\n                <div class=\"hparsons\"/>\n                <textarea style=\"visibility: hidden\">\n                    <!-- A SQL database can be provided for automated  -->\n                    <!-- testing of correct answers via unit tests.    -->\n                    <!-- This is a location in the external directory. -->\n                    <!-- NB: sample had paths with a leading backslash -->\n                    <xsl:if test=\"@database\">\n                        <xsl:attribute name=\"data-dburl\">\n                            <xsl:choose>\n                                <xsl:when test=\"$b-managed-directories\">\n                                    <xsl:value-of select=\"$external-directory\"/>\n                                    <xsl:value-of select=\"@database\"/>\n                                </xsl:when>\n                                <xsl:otherwise>\n                                    <xsl:value-of select=\"@database\"/>\n                                </xsl:otherwise>\n                            </xsl:choose>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <!-- for natural language, just skip attribute -->\n                    <xsl:if test=\"not($b-natural)\">\n                        <xsl:attribute name=\"data-language\">\n                            <xsl:value-of select=\"$active-language\"/>\n                        </xsl:attribute>\n                    </xsl:if>\n                    <!-- default is to randomize, so only set -->\n                    <!-- to \"false\" when explicitly requested -->\n                    <xsl:attribute name=\"data-randomize\">\n                        <xsl:choose>\n                            <xsl:when test=\"$b-randomize\">\n                                <xsl:text>true</xsl:text>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:text>false</xsl:text>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <!-- default is to not allow reuse, so only  -->\n                    <!-- set to \"true\" when explicitly requested -->\n                    <xsl:attribute name=\"data-reuse\">\n                        <xsl:choose>\n                            <xsl:when test=\"$b-reuse\">\n                                <xsl:text>true</xsl:text>\n                            </xsl:when>\n                            <xsl:otherwise>\n                                <xsl:text>false</xsl:text>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <!-- the @blockanswer attribute is a space-separated  -->\n                    <!-- list of the block numbers, *in the order listed  -->\n                    <!-- in the HTML* (see below), starting at zero, that -->\n                    <!-- consitutes a correct answer.  But the authored   -->\n                    <!-- order is the corrrect answer, so we loop over    -->\n                    <!-- those blocks as we determine positions/locations -->\n                    <!-- in the HTML list.                                -->\n                    <!-- NB: the \"blockanswer\" appears to be parsed based  -->\n                    <!-- on *exactly* one space between separating indices -->\n                    <xsl:variable name=\"blockanswer\">\n                        <!-- answer is list as long as authored blocks, -->\n                        <!-- so loop over authored in every case        -->\n                        <xsl:for-each select=\"$authored-blocks\">\n                            <!-- save off the block in question before context shifts below -->\n                            <xsl:variable name=\"the-block\" select=\".\"/>\n                            <xsl:choose>\n                                <!-- Randomized or not (below), a distractor is a distractor  -->\n                                <!-- and does not go in the \"blockanswer\" attribute. -->\n                                <xsl:when test=\"@correct = 'no'\"/>\n                                <!-- For the randomized case the answer is list of       -->\n                                <!-- non-negative integers in order, but interrupted     -->\n                                <!-- by duplicates authored as references as references. -->\n                                <xsl:when test=\"$b-randomize\">\n                                    <xsl:choose>\n                                        <!-- placeholder/pointer/resuse, locate origin -->\n                                        <xsl:when test=\"@ref\">\n                                            <xsl:variable name=\"target\" select=\"id(@ref)\"/>\n                                            <!-- error-check $target here? -->\n                                            <xsl:for-each select=\"$unique-blocks\">\n                                                <xsl:if test=\"count(.|$target) = 1\">\n                                                    <xsl:value-of select=\"position() - 1\"/>\n                                                </xsl:if>\n                                            </xsl:for-each>\n                                        </xsl:when>\n                                        <!-- \"original\" block, count place among originals -->\n                                        <xsl:otherwise>\n                                            <xsl:for-each select=\"$unique-blocks\">\n                                                <xsl:if test=\"count(.|$the-block) = 1\">\n                                                    <xsl:value-of select=\"position() - 1\"/>\n                                                </xsl:if>\n                                            </xsl:for-each>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                </xsl:when>\n                                <!-- For the fixed rearrangement case, the blocks are    -->\n                                <!-- rearranged in the HTML, so we re-create that        -->\n                                <!-- order when determining the location/number of any   -->\n                                <!-- given block.  The \"choose\" stanza here is identical -->\n                                <!-- to the above, except the unique blocks are sorted   -->\n                                <!-- into their HTML order.  (Can't see how to vary an   -->\n                                <!-- unsorted list versus a sorted list as a parameter   -->\n                                <!-- to remove duplication.)                             -->\n                                <xsl:otherwise>\n                                    <xsl:choose>\n                                        <!-- placeholder/pointer/resuse, locate origin -->\n                                        <xsl:when test=\"@ref\">\n                                            <xsl:variable name=\"target\" select=\"id(@ref)\"/>\n                                            <!-- error-check $target here? -->\n                                            <xsl:for-each select=\"$unique-blocks\">\n                                                <xsl:sort select=\"@order\"/>\n                                                <xsl:if test=\"count(.|$target) = 1\">\n                                                    <xsl:value-of select=\"position() - 1\"/>\n                                                </xsl:if>\n                                            </xsl:for-each>\n                                        </xsl:when>\n                                        <!-- \"original\" block, count place among originals -->\n                                        <xsl:otherwise>\n                                            <xsl:for-each select=\"$unique-blocks\">\n                                                <xsl:sort select=\"@order\"/>\n                                                <xsl:if test=\"count(.|$the-block) = 1\">\n                                                    <xsl:value-of select=\"position() - 1\"/>\n                                                </xsl:if>\n                                            </xsl:for-each>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                </xsl:otherwise>\n                            </xsl:choose>\n                            <!-- space-separated list, per block, one extra at the very end -->\n                            <!-- when a distractor is skipped, do not place a separator     -->\n                            <xsl:if test=\"not(@correct= 'no')\">\n                                <xsl:text> </xsl:text>\n                            </xsl:if>\n                        </xsl:for-each>\n                    </xsl:variable>\n                    <!-- strip an extra space separator created just above -->\n                    <xsl:attribute name=\"data-blockanswer\">\n                        <xsl:value-of select=\"substring($blockanswer, 1, string-length($blockanswer) - 1)\"/>\n                    </xsl:attribute>\n                    <!-- blocks themselves, left justified on margin      -->\n                    <!-- reused blocks are not presented, distractors are -->\n                    <!-- leading newline is just cosmetic                 -->\n                    <xsl:text>&#xa;--blocks--&#xa;</xsl:text>\n                    <xsl:choose>\n                        <!-- just go with authored order as canonical -->\n                        <xsl:when test=\"$b-randomize\">\n                            <xsl:apply-templates select=\"$unique-blocks\" mode=\"horizontal-blocks\">\n                                <xsl:with-param name=\"b-natural\" select=\"$b-natural\"/>\n                            </xsl:apply-templates>\n                        </xsl:when>\n                        <!-- sort by the order provided  by author -->\n                        <xsl:otherwise>\n                            <xsl:for-each select=\"$unique-blocks\">\n                                <xsl:sort select=\"@order\"/>\n                                <xsl:apply-templates select=\".\" mode=\"horizontal-blocks\">\n                                    <xsl:with-param name=\"b-natural\" select=\"$b-natural\"/>\n                                </xsl:apply-templates>\n                            </xsl:for-each>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                    <!-- a block of unit tests for automatic feedback (with, say, an SQL database) -->\n                    <!-- NB: could mimic \"program/tests\" to avoid empty \"tests\" elements           -->\n                    <xsl:if test=\"tests\">\n                        <xsl:text>--unittest--&#xa;</xsl:text>\n                        <xsl:call-template name=\"sanitize-text\">\n                            <xsl:with-param name=\"text\" select=\"tests\" />\n                        </xsl:call-template>\n                    </xsl:if>\n                </textarea>\n            </div>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- Assumes a \"tight\" run of text, or a \"c\", no newlines authored. -->\n<!-- Non-reused block.  Perhaps text should be massaged here?       -->\n<!-- We do not ever dump duplicates into HTML or to the reader      -->\n<xsl:template match=\"blocks/block[not(@ref)]\" mode=\"horizontal-blocks\">\n    <xsl:param name=\"b-natural\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"$b-natural\">\n            <xsl:apply-templates select=\".\"/>\n        </xsl:when>\n        <!-- Now this a problem with code, requiring a \"c\" wrapper -->\n        <!-- 2023-03-07: can move to warnings or validation-plus, semi-deprecated -->\n        <xsl:when test=\"not(c)\">\n            <xsl:message>PTX:WARNING:  a block of a horizontal Parson problem with</xsl:message>\n            <xsl:message>              code needs to be enclosed in a \"c\" element</xsl:message>\n            <xsl:apply-templates select=\".\"/>\n            <xsl:text> (NEEDS \"c\" ELEMENT)</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"c\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Carsort Problem -->\n\n<xsl:template match=\"*[@exercise-interactive = 'cardsort']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone cardsort_section\">\n            <ul data-component=\"dragndrop\" data-question_label=\"\" style=\"visibility: hidden;\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <span data-subcomponent=\"question\">\n                    <xsl:apply-templates select=\"statement\"/>\n                </span>\n                <xsl:if test=\"feedback\">\n                    <span data-subcomponent=\"feedback\">\n                        <xsl:apply-templates select=\"feedback\"/>\n                    </span>\n                </xsl:if>\n                <!-- NB: need to compute Runestone ID in current context -->\n                <!-- and save off before changing context with for-each  -->\n                <xsl:variable name=\"rsid\">\n                    <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n                </xsl:variable>\n                <xsl:for-each select=\"cardsort/match\">\n\n                    <!-- PTX premise = RS draggable -->\n                    <!-- may be multiple premise or none -->\n                    <xsl:for-each select=\"premise\">\n                        <li data-subcomponent=\"draggable\">\n                            <xsl:attribute name=\"id\">\n                                <xsl:value-of select=\"$rsid\"/>\n                                <xsl:text>_drag</xsl:text>\n                                <xsl:number count=\"premise\" from=\"cardsort\" level=\"any\"/>\n                            </xsl:attribute>\n                            <xsl:apply-templates select=\"parent::match\" mode=\"category-attribute\"/>\n                            <xsl:apply-templates select=\".\"/>\n                        </li>\n                    </xsl:for-each>\n                    <!-- PTX response = RS dropzone -->\n                    <!-- one response, or none -->\n                    <xsl:for-each select=\"response\">\n                        <li data-subcomponent=\"dropzone\">\n                            <xsl:attribute name=\"for\">\n                                <xsl:value-of select=\"$rsid\"/>\n                                <xsl:text>_drag</xsl:text>\n                                <xsl:number count=\"response\" from=\"cardsort\" level=\"any\"/>\n                            </xsl:attribute>\n                            <xsl:apply-templates select=\"parent::match\" mode=\"category-attribute\"/>\n                            <xsl:apply-templates select=\".\"/>\n                        </li>\n                    </xsl:for-each>\n                </xsl:for-each>\n            </ul>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- A \"category\" is simply the sequence number of an     -->\n<!-- enclosing \"match\" element, which serves to group     -->\n<!-- any number of \"premise\" with zero or one \"response\", -->\n<!-- indicating they have a relationship (they match!).   -->\n<xsl:template match=\"match\" mode=\"category-attribute\">\n    <xsl:attribute name=\"data-category\">\n        <!-- no @count, then implies count=\"match\" (peers),   -->\n        <!-- from=\"cardsort\", while @level=\"single\" is default -->\n        <xsl:number/>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- Matching Problem -->\n\n<xsl:template match=\"*[@exercise-interactive = 'matching']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div data-component=\"matching\" class=\"runestone\">\n            <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n            <!-- Note: Runestone will condition on script/@type as -->\n            <!-- it handles this (mostly to differentiate between  -->\n            <!-- JSON blobs.  Note below describes how this is     -->\n            <!-- really HTML, not XML.  So any adjustment here     -->\n            <!-- must be coordinated with the Runestone consumer.  -->\n            <script type=\"text/xml\">\n                <!-- one-off XML for Runestone JS to consume -->\n                <matching>\n                    <!-- Provide authored statement of the exercise. -->\n                    <!-- Here, and elsewhere, we need to be careful. -->\n                    <!-- We want to produce XML, but a rendered      -->\n                    <!-- \"statement\" will be HTML and have some      -->\n                    <!-- undesirable things, like unclosed tags      -->\n                    <!-- (e.g. \"img\").  We really want what was once -->\n                    <!-- called XHTML.  Our made-up XML below seems  -->\n                    <!-- to be OK when parsed as if it were HTML.    -->\n                    <statement>\n                        <xsl:apply-templates select=\"statement\"/>\n                    </statement>\n                    <!-- \"feedback\" is for the interactive interface -->\n                    <!-- to show to the reader at the right time     -->\n                    <feedback>\n                        <xsl:apply-templates select=\"feedback\"/>\n                    </feedback>\n                    <!-- sequence of \"premise\" -->\n                    <xsl:apply-templates select=\"matching/premise\" mode=\"node-info\"/>\n                    <!-- sequence of \"response\" -->\n                    <xsl:apply-templates select=\"matching/response\" mode=\"node-info\"/>\n                    <!-- sequence of \"edge\" -->\n                    <xsl:apply-templates select=\"matching\" mode=\"matching-adjacencies\"/>\n                </matching>\n            </script>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- utility template to create unique ID for each premise and       -->\n<!-- response for use in the user interface, invisible to the reader -->\n<xsl:template match=\"matching/premise|matching/response\" mode=\"matching-identification\">\n    <xsl:value-of select=\"parent::matching/parent::*/@label\"/>\n    <xsl:text>-</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"self::premise\">\n            <xsl:text>p</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"self::response\">\n            <xsl:text>r</xsl:text>\n        </xsl:when>\n    </xsl:choose>\n    <!-- counts among elements of current type -->\n    <xsl:number/>\n</xsl:template>\n\n<xsl:template match=\"premise|response\" mode=\"node-info\">\n    <xsl:variable name=\"element-name\" select=\"local-name(.)\"/>\n    <xsl:element name=\"{$element-name}\">\n        <id>\n            <xsl:apply-templates select=\".\" mode=\"matching-identification\"/>\n        </id>\n        <label>\n            <xsl:apply-templates select=\".\"/>\n        </label>\n    </xsl:element>\n</xsl:template>\n\n\n<xsl:template match=\"matching\" mode=\"matching-adjacencies\">\n    <!-- Run over all response, to see if their single @xml:id -->\n    <!-- is present in the premise's multi-valued @ref         -->\n    <!-- array of pairs -->\n    <xsl:for-each select=\"premise\">\n        <!-- save off some \"premise\" info before context change -->\n        <xsl:variable name=\"the-ref-fenced\" select=\"concat('|', translate(@ref, ' ', '|'), '|')\"/>\n        <xsl:variable name=\"the-premise-identification\">\n            <xsl:apply-templates select=\".\" mode=\"matching-identification\"/>\n        </xsl:variable>\n        <!-- note context is no longer \"matching\", so step up -->\n        <xsl:for-each select=\"../response\">\n            <xsl:variable name=\"response-xmlid-fenced\" select=\"concat('|', @xml:id, '|')\"/>\n            <!-- finally, the test for adjacency -->\n            <xsl:if test=\"contains($the-ref-fenced, $response-xmlid-fenced)\">\n                <!-- a pair, connecting \"premise\" to \"response\"-->\n                <edge>\n                    <label>\n                        <!-- \"matching-identification\", saved off above -->\n                        <xsl:value-of select=\"$the-premise-identification\"/>\n                    </label>\n                    <label>\n                        <xsl:apply-templates select=\".\" mode=\"matching-identification\"/>\n                    </label>\n                </edge>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:for-each>\n</xsl:template>\n\n\n<!-- Clickable Area Problem -->\n\n<xsl:template match=\"*[@exercise-interactive = 'clickablearea']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone clickablearea_section\">\n            <div data-component=\"clickablearea\" data-question_label=\"\" style=\"visibility: hidden;\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <span data-question=\"\">\n                    <xsl:apply-templates select=\"statement\"/>\n                </span>\n                <span data-feedback=\"\">\n                    <xsl:apply-templates select=\"feedback\"/>\n                </span>\n                <xsl:apply-templates select=\"areas\" mode=\"clickable-html\"/>\n            </div>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- We use modal templates, primarily for the case of code, -->\n<!-- so we do not mangle text() using routines in -common    -->\n<!-- and to preserve the structure of the program.           -->\n\n<xsl:template match=\"areas\" mode=\"clickable-html\">\n    <xsl:choose>\n        <xsl:when test=\"cline\">\n            <!-- code, so make the \"pre\" structure -->\n            <pre>\n                <xsl:apply-templates select=\"cline\" mode=\"clickable-html\"/>\n            </pre>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- regular text, this will match a default template later -->\n            <xsl:apply-templates select=\"*\" mode=\"clickable-html\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- A mix of text and \"area\", and needs a newline -->\n<xsl:template match=\"areas/cline\" mode=\"clickable-html\">\n    <xsl:apply-templates select=\"text()|area\" mode=\"clickable-html\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Avoid falling into low-level manipulations to remain verbatim -->\n<xsl:template match=\"areas/cline/text()\" mode=\"clickable-html\">\n    <xsl:value-of select=\".\"/>\n</xsl:template>\n\n<!-- Constructions for regular text (\"p\", \"ul\", etc) should   -->\n<!-- drop out to default templates, as will an \"area\" element -->\n<!-- (both code and regular text).                            -->\n<xsl:template match=\"*\" mode=\"clickable-html\">\n    <xsl:apply-templates select=\".\"/>\n</xsl:template>\n\n<!-- NB: we want a generic template (not modal) for use within      -->\n<!-- sentences, etc.  As such it will then be available in every    -->\n<!-- derived conversion, *but* the \"area\" element should not        -->\n<!-- survive a conversion to a static form, so will not be present. -->\n<xsl:template match=\"area\">\n    <span>\n        <xsl:choose>\n            <xsl:when test=\"@correct = 'no'\">\n                <xsl:attribute name=\"data-incorrect\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:attribute name=\"data-correct\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:apply-templates/>\n    </span>\n</xsl:template>\n\n<!-- Select Questions -->\n\n<!-- \"Select\" questions come in three types                            -->\n<!--   * Question List - several equivalent problems,                  -->\n<!--     reader is assigned just one (good for exams)                  -->\n<!--   * A/B Experiment - two choices, experiment managed by Runestone -->\n<xsl:template match=\"*[@exercise-interactive = 'select']\" mode=\"runestone-to-interactive\">\n    <!-- identify the type of \"select\"                -->\n    <!-- duplicated in \"pretext-runestone-static.xsl\" -->\n    <xsl:variable name=\"select-variant\">\n        <xsl:choose>\n            <!-- Runestone JS picks a random problem from many-->\n            <xsl:when test=\"select/@grade='random'\">\n                <xsl:text>random</xsl:text>\n            </xsl:when>\n            <!-- Two questions, split across roster into A, B groups. -->\n            <xsl:when test=\"select/@grade='ab-experiment'\">\n                <xsl:text>ab-experiment</xsl:text>\n            </xsl:when>\n            <!-- Two questions (usually), the first will always be graded,  -->\n            <!-- while any others may be worked and may be helpful.         -->\n            <!-- Colloquially known as a \"toggle lock\" question.            -->\n            <xsl:when test=\"select/@grade='first'\">\n                <xsl:text>first</xsl:text>\n            </xsl:when>\n            <!-- Two questions (usually), any one may be     -->\n            <!-- chosen by the reader to be graded.          -->\n            <!-- Colloquially known as a \"toggle \" question. -->\n            <xsl:when test=\"select/@grade='any'\">\n                <xsl:text>any</xsl:text>\n            </xsl:when>\n            <!-- default to \"random\" selection -->\n            <xsl:otherwise>\n                <xsl:text>random</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!--  -->\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone sqcontainer selectquestion_section\">\n            <div data-component=\"selectquestion\" data-points=\"1\" data-limit-basecourse=\"false\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <!-- attributes vary by type of select question -->\n                <xsl:choose>\n                    <!-- no attributes for generic selection -->\n                    <xsl:when test=\"$select-variant='random'\"/>\n                    <!-- @experiment name is required (and is a signal) -->\n                    <xsl:when test=\"$select-variant='ab-experiment'\">\n                         <xsl:attribute name=\"data-ab\">\n                            <xsl:value-of select=\"select/@experiment-name\"/>\n                        </xsl:attribute>\n                    </xsl:when>\n                    <!-- set lock on first question -->\n                    <xsl:when test=\"$select-variant='first'\">\n                        <xsl:attribute name=\"data-toggleoptions\">\n                            <xsl:text>toggle, lock</xsl:text>\n                        </xsl:attribute>\n                        <xsl:attribute name=\"data-togglelabels\">\n                            <xsl:text>togglelabels:</xsl:text>\n                        </xsl:attribute>\n                    </xsl:when>\n                    <!-- allow any question to be chosen by reader -->\n                    <xsl:when test=\"$select-variant='any'\">\n                        <xsl:attribute name=\"data-toggleoptions\">\n                            <xsl:text>toggle</xsl:text>\n                        </xsl:attribute>\n                        <xsl:attribute name=\"data-togglelabels\">\n                            <xsl:text>togglelabels:</xsl:text>\n                        </xsl:attribute>\n                    </xsl:when>\n                </xsl:choose>\n                <!-- always form the list of ids for the questions -->\n                <xsl:attribute name=\"data-questionlist\">\n                    <xsl:call-template name=\"runestone-targets\">\n                        <xsl:with-param name=\"id-list\" select=\"select/@questions\"/>\n                        <xsl:with-param name=\"separator\" select=\"', '\"/>\n                    </xsl:call-template>\n                </xsl:attribute>\n                <p>Loading a select question (grading type: <xsl:value-of select=\"$select-variant\"/>)...</p>\n            </div>\n        </div>\n    </div>\n</xsl:template>\n\n\n<!-- Fill-in-the-Blanks problem -->\n\n<!-- Runestone structure -->\n<xsl:template match=\"*[@exercise-interactive = 'fillin-basic']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone fillintheblank_section\">\n            <!-- dropped \"visibility: hidden\" on next div -->\n            <div data-component=\"fillintheblank\" data-question_label=\"\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <xsl:apply-templates select=\"statement\"/>\n                <script type=\"application/json\">\n                    <xsl:apply-templates select=\"setup\" mode=\"json-conditions\"/>\n                </script>\n            </div>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- simple substitution in output -->\n<xsl:template match=\"exercise/statement//var\">\n    <!-- NB: this code is used in formulating static representations -->\n    <!-- count location of (context) \"var\" in problem statement      -->\n    <xsl:variable name=\"location\">\n        <xsl:number from=\"statement\"/>\n    </xsl:variable>\n    <!-- locate corresponding \"var\" in \"setup\" -->\n    <xsl:variable name=\"setup-var\" select=\"ancestor::exercise/setup/var[position() = $location]\"/>\n\n    <!-- Know can tell what sort of data goes into the form entry -->\n    <xsl:variable name=\"placeholder-hint\">\n        <xsl:choose>\n            <xsl:when test=\"$setup-var/condition[1]/@number\">\n                <xsl:text>Number</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"$setup-var/condition[1]/@string\">\n                <xsl:text>Text</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- the actual form fill-in, with hint and width -->\n    <input type=\"text\" placeholder=\"{$placeholder-hint}\">\n        <xsl:if test=\"@width\">\n            <xsl:attribute name=\"size\">\n                <xsl:value-of select=\"@width\"/>\n            </xsl:attribute>\n        </xsl:if>\n    </input>\n</xsl:template>\n\n<!-- JSON list-of-list structure -->\n<xsl:template match=\"exercise/setup\"  mode=\"json-conditions\">\n    <!-- outermost list begin -->\n    <xsl:text>[</xsl:text>\n    <xsl:for-each select=\"var\">\n        <!-- per-var list begin -->\n        <xsl:text>[</xsl:text>\n        <xsl:for-each select=\"condition\">\n            <!-- where the real content originates -->\n            <xsl:apply-templates select=\".\" mode=\"condition-to-json\"/>\n            <!-- separate dictionaries for conditions -->\n            <xsl:if test=\"following-sibling::condition\">\n                <xsl:text>, </xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n        <!-- per-var list end -->\n        <xsl:text>]</xsl:text>\n        <!-- separate vars -->\n        <xsl:if test=\"following-sibling::var\">\n            <xsl:text>, </xsl:text>\n        </xsl:if>\n    </xsl:for-each>\n    <!-- outermost list end -->\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<!-- JSON dictionary for numerical condition -->\n<xsl:template match=\"setup/var/condition[@number]\" mode=\"condition-to-json\">\n    <!-- per-condition dictionary begin -->\n    <xsl:text>{</xsl:text>\n    <xsl:text>\"number\": [</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"@tolerance\">\n            <xsl:value-of select=\"@number - @tolerance\"/>\n            <xsl:text>,</xsl:text>\n            <xsl:value-of select=\"@number + @tolerance\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"@number\"/>\n            <xsl:text>, </xsl:text>\n            <xsl:value-of select=\"@number\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <xsl:text>]</xsl:text>\n    <xsl:if test=\"feedback\">\n        <xsl:text>, \"feedback\": \"</xsl:text>\n        <xsl:apply-templates select=\"feedback\" mode=\"serialize-feedback\"/>\n        <xsl:text>\"</xsl:text>\n    </xsl:if>\n    <!-- per-condition dictionary end -->\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<!-- JSON dictionary for string condition -->\n<xsl:template match=\"setup/var/condition[@string]\" mode=\"condition-to-json\">\n    <!-- per-condition dictionary begin -->\n    <xsl:text>{</xsl:text>\n    <!-- regex string match, drop    -->\n    <!-- leading/trailing whitespace -->\n    <xsl:text>\"regex\": \"</xsl:text>\n    <!-- JSON escapes necessary for regular expression -->\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:text>^\\s*</xsl:text>\n            <xsl:value-of select=\"@string\"/>\n            <xsl:text>\\s*$</xsl:text>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>\"</xsl:text>\n    <!-- flag for case-sensitive match -->\n    <!-- default:  'sensitive'         -->\n    <xsl:text>, \"regexFlags\": \"</xsl:text>\n    <xsl:if test=\"parent::var/@case = 'insensitive'\">\n        <xsl:text>i</xsl:text>\n    </xsl:if>\n    <xsl:text>\"</xsl:text>\n    <!-- optional feedback -->\n    <xsl:if test=\"feedback\">\n        <xsl:text>, \"feedback\": \"</xsl:text>\n        <xsl:apply-templates select=\"feedback\" mode=\"serialize-feedback\"/>\n        <xsl:text>\"</xsl:text>\n    </xsl:if>\n    <!-- per-condition dictionary end -->\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"setup/var/condition/feedback\" mode=\"serialize-feedback\">\n    <xsl:variable name=\"feedback-rtf\">\n        <xsl:apply-templates select=\".\"/>\n    </xsl:variable>\n    <!-- serialize HTML as text, then escape as JSON -->\n    <xsl:call-template name=\"escape-json-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:apply-templates select=\"exsl:node-set($feedback-rtf)\" mode=\"xml-to-string\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n\n<!-- Coding exercise -->\n\n<xsl:template match=\"*[@exercise-interactive = 'coding']\" mode=\"runestone-to-interactive\">\n    <!-- We don't have a 'coding' attribute value  -->\n    <!-- unless one of the two tests below is true -->\n    <xsl:choose>\n        <xsl:when test=\"program/@interactive = 'codelens'\">\n            <xsl:apply-templates select=\"program\" mode=\"runestone-codelens\">\n                <xsl:with-param name=\"exercise-statement\" select=\"statement\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n        <xsl:when test=\"program/@interactive = 'activecode'\">\n            <xsl:apply-templates select=\"program\" mode=\"runestone-activecode\">\n                <xsl:with-param name=\"exercise-statement\" select=\"statement\"/>\n            </xsl:apply-templates>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Dual Form exercise (dynamic/static)-->\n\n<!-- 2025-11-11: Runestone HTML is speculative -->\n<xsl:template match=\"*[@exercise-interactive = 'dual']\" mode=\"runestone-to-interactive\">\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone dualquestion_section\">\n            <div data-component=\"dual\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <!-- Assume only \"p\" and a single \"interactive\".  The -->\n                <!-- \"p\" could be expanded to include some options.   -->\n                <xsl:apply-templates select=\"statement/p|statement/interactive[1]\"/>\n            </div>\n        </div>\n    </div>\n</xsl:template>\n\n\n<!-- Short Answer problem -->\n\n<!-- Traditional form, but not converted like other interactive exercises -->\n<!-- Won't match indiscriminately, there is some control over when to be  -->\n<!-- interactive, see \"static\" v. \"dynamic\" publisher variables.          -->\n<!-- NB - not currently applying to short-form with no \"statement\" -->\n<!-- NB: match is recycled in manifest formation                   -->\n<xsl:template match=\"*[@exercise-interactive = 'shortanswer']\" mode=\"runestone-to-interactive\">\n    <xsl:choose>\n        <xsl:when test=\"$b-host-runestone or ($short-answer-responses = 'always')\">\n            <!-- when \"response\" has attributes, perhaps they get interpreted here -->\n            <div class=\"ptx-runestone-container\">\n                <div class=\"runestone shortanswer_section\">\n                    <div data-component=\"shortanswer\" data-question_label=\"\" class=\"journal\" data-mathjax=\"\">\n                        <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                        <!-- showing a box, but it can't be graded, so warn reader -->\n                        <xsl:if test=\"not($b-host-runestone)\">\n                            <xsl:attribute name=\"data-placeholder\">\n                                <xsl:text>You can write here, and it will be saved on this device, but your response will not be graded.</xsl:text>\n                            </xsl:attribute>\n                        </xsl:if>\n                        <!-- Author can indicate problem expects an  -->\n                        <!-- attachment. Effectively, default is no. -->\n                        <xsl:if test=\"(@attachment = 'yes') and $b-host-runestone\">\n                            <xsl:attribute name=\"data-attachment\"/>\n                        </xsl:if>\n                        <xsl:apply-templates select=\"statement\"/>\n                    </div>\n                </div>\n            </div>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- pointless to do fancy outside of a server/LMS situation -->\n            <xsl:apply-templates select=\"statement\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- YouTube Video -->\n<!-- When hosted on a Runestone server, we use a different embedding  -->\n<!-- for a YouTube video (only), which allows using a YouTube API for -->\n<!-- monitoring events from readers.  We have to pass in an actual    -->\n<!-- height and width (in pixels) for semi-custom attributes here.    -->\n<!-- Many PreTeXt video features (like posters) are lost.             -->\n<!-- The Runestone JavaScript will automatically include the          -->\n<!-- player_api JavaScript after it has set up the appropriate        -->\n<!-- events such as API loaded.                                       -->\n\n<!-- TODO: are start/end attributes useful?      -->\n<xsl:template match=\"video[@youtube]\" mode=\"runestone-youtube-embed\">\n    <xsl:param name=\"width\"/>\n    <xsl:param name=\"height\"/>\n\n    <xsl:variable name=\"hid\">\n        <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n    </xsl:variable>\n\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone yt_section\">\n            <div id=\"{$hid}\" data-component=\"youtube\" class=\"align-left youtube-video\"\n                 data-video-height=\"{$height}\" data-video-width=\"{$width}\"\n                 data-video-videoid=\"{@youtube}\" data-video-divid=\"{$hid}\"\n                 data-video-start=\"0\" data-video-end=\"-1\"/>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- ########### -->\n<!-- Active Code -->\n<!-- ########### -->\n\n<!-- Runestone has support for various languages.  Some    -->\n<!-- are \"in-browser\" while others are backed by \"real\"    -->\n<!-- compilers as part of a Runestone server.  For an      -->\n<!-- exercise, we pass in some lead-in text, which is      -->\n<!-- the directions for using the ActiveCode component.    -->\n<!-- This template does the best job possible:             -->\n<!--   1.  Unsupported language, static rendering.         -->\n<!--   2.  Supported in-browser, always interactive.       -->\n<!--   3.  On a Runestone server, always interactive.      -->\n<!--                                                       -->\n<!-- When a \"program\" is part of an exercise/project-like, -->\n<!-- then we need to get the problem \"statement\" absorbed  -->\n<!-- into the ActiveCode.  This is an authored \"statement\" -->\n<!-- passed in via the $exercise-statement parameter.      -->\n<!-- Other times a \"program\" is an atomic item             -->\n<!-- and surrounding text explains its purpose, hence      -->\n<!-- \"exercise-statment\" appropriately defaults to an      -->\n<!-- empty node-set.                                       -->\n<xsl:template match=\"program\" mode=\"runestone-activecode\">\n    <xsl:param name=\"exercise-statement\" select=\"/..\"/>\n    <xsl:variable name=\"active-language\">\n        <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:variable>\n    <xsl:variable name=\"hosting\">\n        <xsl:apply-templates select=\".\" mode=\"activecode-host\"/>\n    </xsl:variable>\n    <!-- Use an id from the \"program\" element, unless employed -->\n    <!-- inside an exercise/project-like, which is up a level  -->\n    <!-- (and could be many different types of project-like).  -->\n    <xsl:variable name=\"rsid\">\n        <xsl:choose>\n            <xsl:when test=\"$exercise-statement\">\n                <xsl:apply-templates select=\"parent::*\" mode=\"runestone-id\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"runestone-id\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- unsupported on Runestone, period -->\n        <xsl:when test=\"$active-language = ''\">\n            <xsl:apply-templates select=\"$exercise-statement\"/>\n            <xsl:apply-templates select=\".\" mode=\"code-inclusion\"/>\n        </xsl:when>\n        <!-- needs server, and we aren't there -->\n        <xsl:when test=\"($hosting = 'jobeserver') and not($b-host-runestone)\">\n            <xsl:apply-templates select=\"$exercise-statement\"/>\n            <xsl:apply-templates select=\".\" mode=\"code-inclusion\"/>\n        </xsl:when>\n        <!-- this is the logical negation of the previous, so could be \"otherwise\" -->\n        <xsl:when test=\"($hosting = 'browser') or $b-host-runestone\">\n            <div class=\"ptx-runestone-container\">\n                <div class=\"runestone explainer ac_section \">\n                    <div data-component=\"activecode\">\n                        <xsl:attribute name=\"id\">\n                            <xsl:value-of select=\"$rsid\"/>\n                        </xsl:attribute>\n                        <!-- filename used for this data if another program makes use of it -->\n                        <!-- via add-files                                                  -->\n                        <xsl:if test=\"@filename\">\n                            <xsl:attribute name=\"data-filename\">\n                                <xsl:value-of select=\"@filename\"/>\n                            </xsl:attribute>\n                        </xsl:if>\n                        <!-- add some lead-in text to the window -->\n                        <xsl:if test=\"$exercise-statement\">\n                            <div class=\"ac_question exercise-statement\">\n                                <xsl:attribute name=\"id\">\n                                    <xsl:value-of select=\"$rsid\"/>\n                                    <xsl:text>_question</xsl:text>\n                                </xsl:attribute>\n                                <xsl:apply-templates select=\"$exercise-statement\"/>\n                            </div>\n                        </xsl:if>\n                        <textarea data-lang=\"{$active-language}\" data-audio=\"\" data-coach=\"true\" style=\"visibility: hidden;\">\n                            <xsl:if test=\"stdin\">\n                                <xsl:attribute name=\"data-stdin\">\n                                    <xsl:call-template name=\"sanitize-text\">\n                                        <xsl:with-param name=\"text\" select=\"stdin\" />\n                                    </xsl:call-template>\n                                </xsl:attribute>\n                            </xsl:if>\n                            <xsl:attribute name=\"id\">\n                                <xsl:value-of select=\"$rsid\"/>\n                                <xsl:text>_editor</xsl:text>\n                            </xsl:attribute>\n                            <!-- conditional attributes shared with parsons activecodes -->\n                            <xsl:call-template name=\"runestone-activecode-editor-attributes\">\n                                <xsl:with-param name=\"active-language\" select=\"$active-language\"/>\n                                <xsl:with-param name=\"hosting\" select=\"$hosting\"/>\n                            </xsl:call-template>\n                            <!-- This is a bit awful, but we need to figure out how much margin     -->\n                            <!-- to add to runestone dividers. It must match indentation used for   -->\n                            <!-- the overall program.                                               -->\n                            <!-- To avoid as much as possible of the duplicate work, clean each     -->\n                            <!-- part and store those for reuse later.                              -->\n                            <xsl:variable name=\"program-preamble-trimmed\">\n                                <xsl:apply-templates select=\"preamble\" mode=\"program-part-processing\"/>\n                            </xsl:variable>\n                            <xsl:variable name=\"program-code-trimmed\">\n                                <xsl:apply-templates select=\"code\" mode=\"program-part-processing\"/>\n                            </xsl:variable>\n                            <xsl:variable name=\"program-postamble-trimmed\">\n                                <xsl:apply-templates select=\"postamble\" mode=\"program-part-processing\"/>\n                            </xsl:variable>\n                            <!-- Now temporarily assemble to count left margin spaces                -->\n                            <xsl:variable name=\"program-left-margin\">\n                                <xsl:call-template name=\"count-pad-length\">\n                                    <xsl:with-param name=\"text\">\n                                        <!-- need to clear any blank line left by empty preamble and/or -->\n                                        <!-- leading blank lines at the start of code if no preamble    -->\n                                        <xsl:call-template name=\"trim-start-lines\">\n                                            <xsl:with-param name=\"text\">\n                                                <xsl:value-of select=\"$program-preamble-trimmed\"/>\n                                                <xsl:value-of select=\"$program-code-trimmed\"/>\n                                                <xsl:value-of select=\"$program-postamble-trimmed\"/>\n                                            </xsl:with-param>\n                                        </xsl:call-template>\n                                    </xsl:with-param>\n                                </xsl:call-template>\n                            </xsl:variable>\n                            <!-- Build actual string we will prepend to magic dividers -->\n                            <xsl:variable name=\"left-margin-string\">\n                                <xsl:value-of select=\"str:padding($program-left-margin, ' ')\" />\n                            </xsl:variable>\n                            <!-- Now we are ready to build the real program text.                       -->\n                            <!-- For historical reasons, this does not include potential <tests> child. -->\n                            <xsl:variable name=\"program-text\">\n                                <xsl:for-each select=\"preamble\">\n                                    <!-- only expect one, for-each just for binding -->\n                                    <xsl:value-of select=\"$program-preamble-trimmed\"/>\n                                    <xsl:value-of select=\"$left-margin-string\"/>\n                                    <xsl:choose>\n                                        <xsl:when test='@visible = \"no\"'>\n                                            <xsl:text>^^^^&#xa;</xsl:text>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <xsl:text>^^^!&#xa;</xsl:text>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                </xsl:for-each>\n                                <!-- code - clean up start and end                                             -->\n                                <xsl:value-of select=\"$program-code-trimmed\"/>\n                                <!-- postamble - clean up start                                                -->\n                                <xsl:for-each select=\"postamble\">\n                                    <!-- only expect one, for-each just for binding -->\n                                    <xsl:value-of select=\"$left-margin-string\"/>\n                                    <xsl:choose>\n                                        <xsl:when test='@visible = \"no\"'>\n                                            <xsl:text>====&#xa;</xsl:text>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <xsl:text>===!&#xa;</xsl:text>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                    <xsl:value-of select=\"$program-postamble-trimmed\"/>\n                                </xsl:for-each>\n                            </xsl:variable>\n                            <!-- now sanitize the whole blob -->\n                            <xsl:call-template name=\"sanitize-text\">\n                                <xsl:with-param name=\"text\" select=\"$program-text\" />\n                            </xsl:call-template>\n                            <!-- optional unit testing -->\n                            <xsl:if test=\"tests\">\n                                <!-- Be wary of empty \"test\" elements which lead to -->\n                                <!-- empty files, which are possibly not legal      -->\n                                <!-- programs for their target languages, and hence -->\n                                <!-- raise errors due to  the Runestone back-end    -->\n                                <!-- trying to process them.                        -->\n                                <!-- NB: static versions never show \"tests\" anyway  -->\n                                <xsl:variable name=\"tests-content\">\n                                    <xsl:variable name=\"trimmed-text\">\n                                        <xsl:apply-templates select=\"tests\" mode=\"program-part-processing\"/>\n                                    </xsl:variable>\n                                    <xsl:call-template name=\"left-align-text\">\n                                        <xsl:with-param name=\"text\" select=\"$trimmed-text\" />\n                                    </xsl:call-template>\n                                </xsl:variable>\n                                <!-- guard against whitespace-only tests, could be tests/iotests -->\n                                <xsl:if test=\"not(normalize-space($tests-content) = '')\">\n                                    <xsl:choose>\n                                        <xsl:when test=\"tests[@visible = 'yes']\">\n                                            <xsl:choose>\n                                                <xsl:when test=\"postamble[@visible = 'no']\">\n                                                    <xsl:message>PTX:WARNING: There is no support for visible tests after an invisible postamble. (Issue in <xsl:value-of select=\"$rsid\"/>).</xsl:message>\n                                                </xsl:when>\n                                                <xsl:when test=\"not(postamble)\">\n                                                    <!-- need to add header -->\n                                                    <xsl:text>===!&#xa;</xsl:text>\n                                                </xsl:when>\n                                                <!-- otherwise header created by postamble -->\n                                            </xsl:choose>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <!-- invisible tests, need header if not after invisible postamble -->\n                                            <xsl:if test=\"not(postamble[@visible = 'no'])\">\n                                                <xsl:text>====&#xa;</xsl:text>\n                                            </xsl:if>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                    <xsl:value-of select=\"$tests-content\"/>\n                                </xsl:if>\n                                <xsl:if test=\"tests/iotest\">\n                                    <xsl:choose>\n                                        <xsl:when test=\"not(normalize-space(tests/text()) = '')\">\n                                            <xsl:message>WARNING: You can either write text based tests or use iotests, but not both. iotests ignored in <xsl:value-of select=\"$rsid\"/>.</xsl:message>\n                                        </xsl:when>\n                                        <xsl:otherwise>\n                                            <xsl:text>===iotests===&#x0a;</xsl:text>\n                                            <xsl:text>[</xsl:text>\n                                            <xsl:for-each select=\"tests/iotest\">\n                                                <xsl:text>{\"input\":\"</xsl:text>\n                                                <xsl:call-template name=\"escape-json-string\">\n                                                    <xsl:with-param name=\"text\">\n                                                        <xsl:call-template name=\"sanitize-text\">\n                                                            <xsl:with-param name=\"text\">\n                                                                <xsl:value-of select=\"input\"/>\n                                                            </xsl:with-param>\n                                                        </xsl:call-template>\n                                                    </xsl:with-param>\n                                                </xsl:call-template>\n                                                <xsl:text>\",\"out\":\"</xsl:text>\n                                                <xsl:call-template name=\"escape-json-string\">\n                                                    <xsl:with-param name=\"text\">\n                                                        <xsl:call-template name=\"sanitize-text\">\n                                                            <xsl:with-param name=\"text\">\n                                                                <xsl:value-of select=\"output\"/>\n                                                            </xsl:with-param>\n                                                        </xsl:call-template>\n                                                    </xsl:with-param>\n                                                </xsl:call-template>\n                                                <xsl:text>\"}</xsl:text>\n                                                <xsl:if test=\"position() != last()\">\n                                                    <xsl:text>,</xsl:text>\n                                                </xsl:if>\n                                            </xsl:for-each>\n                                            <xsl:text>]&#x0a;</xsl:text>\n                                        </xsl:otherwise>\n                                    </xsl:choose>\n                                </xsl:if>\n                            </xsl:if>\n                        </textarea>\n                    </div>\n                </div>\n            </div>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template name=\"runestone-activecode-editor-attributes\">\n    <xsl:param name=\"active-language\"/>\n    <xsl:param name=\"hosting\"/>\n    <xsl:attribute name=\"data-question_label\"/>\n    <!-- Code Lens only for certain languages -->\n    <xsl:attribute name=\"data-codelens\">\n        <xsl:choose>\n            <xsl:when test=\"@codelens = 'no'\">\n                <xsl:text>false</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"($active-language = 'python') or ($active-language = 'python2') or ($active-language = 'python3')\">\n                <xsl:text>true</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"($active-language = 'c') or ($active-language = 'cpp') or ($active-language = 'java')\">\n                <xsl:text>true</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>false</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:attribute>\n    <!-- allow @datafile attribute on <program> -->\n    <xsl:if test=\"@datafile\">\n        <!-- multiple files, coma- or space- separated -->\n        <xsl:variable name=\"tokens\" select=\"str:tokenize(@datafile, ', ')\"/>\n        <xsl:attribute name=\"data-datafile\">\n            <xsl:for-each select=\"$tokens\">\n                <xsl:value-of select=\".\"/>\n                <!-- n - 1 separators, required by receiving Javascript -->\n                <!-- comma-separated this time                          -->\n                <xsl:if test=\"following-sibling::token\">\n                    <xsl:text>,</xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n        </xsl:attribute>\n    </xsl:if>\n\n    <!-- Merge add-files and compile-also, get unique items               -->\n    <!-- This will be the list that we use as add-files for the manifest  -->\n    <xsl:variable name=\"all-extra-files\">\n        <xsl:variable name=\"id-list\">\n            <xsl:value-of select=\"@add-files\"/>\n            <xsl:if test=\"@add-files and @compile-also\">\n                <xsl:text>, </xsl:text>\n            </xsl:if>\n            <xsl:value-of select=\"@compile-also\"/>\n        </xsl:variable>\n        <xsl:variable name=\"unique-tokens\">\n            <xsl:call-template name=\"unique-token-set\">\n                <xsl:with-param name=\"s\" select=\"$id-list\"/>\n            </xsl:call-template>\n        </xsl:variable>\n        <xsl:for-each select=\"exsl:node-set($unique-tokens)/token\">\n            <xsl:value-of select=\".\"/>\n            <xsl:if test=\"following-sibling::token\">\n                <xsl:text>,</xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:variable>\n\n    <!-- allow @add-files attribute on <program> -->\n    <xsl:if test=\"$all-extra-files != ''\">\n        <xsl:attribute name=\"data-add-files\">\n            <xsl:call-template name=\"runestone-targets\">\n                <xsl:with-param name=\"id-list\" select=\"$all-extra-files\"/>\n                <xsl:with-param name=\"separator\" select=\"','\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- allow @compile-with attribute on <program> -->\n    <xsl:if test=\"@compile-also\">\n        <xsl:attribute name=\"data-compile-also\">\n            <xsl:call-template name=\"runestone-targets\">\n                <xsl:with-param name=\"id-list\" select=\"@compile-also\"/>\n                <xsl:with-param name=\"separator\" select=\"','\"/>\n                <xsl:with-param name=\"output-field\" select=\"'filename'\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- allow @include attribute on <program> -->\n    <xsl:if test=\"@include\">\n        <!-- space-separated this time -->\n        <xsl:attribute name=\"data-include\">\n            <xsl:call-template name=\"runestone-targets\">\n                <xsl:with-param name=\"id-list\" select=\"@include\"/>\n                <xsl:with-param name=\"separator\" select=\"' '\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- SQL (only) needs an attribute so it can find some code -->\n    <xsl:if test=\"$active-language = 'sql'\">\n        <xsl:attribute name=\"data-wasm\">\n            <xsl:text>/_static</xsl:text>\n        </xsl:attribute>\n        <!-- A SQL database can be provided for automated  -->\n        <!-- testing of correct answers via unit tests.    -->\n        <!-- This is a location in the external directory. -->\n        <xsl:if test=\"@database\">\n            <xsl:attribute name=\"data-dburl\">\n                <xsl:choose>\n                    <xsl:when test=\"$b-managed-directories\">\n                        <xsl:value-of select=\"$external-directory\"/>\n                        <xsl:value-of select=\"@database\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"@database\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:attribute>\n        </xsl:if>\n    </xsl:if>\n    <!-- interpreter arguments for hosted languages -->\n    <xsl:variable name=\"interpreter-args\">\n        <xsl:call-template name=\"get-program-attr-or-default\">\n            <xsl:with-param name=\"attr\" select=\"'interpreter-args'\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:if test=\"$interpreter-args != '' and ($hosting = 'jobeserver')\">\n        <xsl:attribute name=\"data-interpreterargs\">\n            <xsl:call-template name=\"comma-list-to-json-array\">\n                <xsl:with-param name=\"list\" select=\"$interpreter-args\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- compiler arguments for hosted languages -->\n    <xsl:variable name=\"compiler-args\">\n        <xsl:call-template name=\"get-program-attr-or-default\">\n            <xsl:with-param name=\"attr\" select=\"'compiler-args'\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- extra compiler args, appended to compiler args -->\n    <xsl:variable name=\"extra-compiler-args\" select=\"@extra-compiler-args\"/>\n    <xsl:if test=\"($compiler-args != '' or $extra-compiler-args != '') and ($hosting = 'jobeserver')\">\n        <xsl:variable name=\"compiler-args-full\">\n            <xsl:value-of select=\"$compiler-args\"/>\n            <xsl:if test=\"$compiler-args != '' and $extra-compiler-args != ''\">\n                <xsl:text>,</xsl:text>\n            </xsl:if>\n            <xsl:value-of select=\"$extra-compiler-args\"/>\n        </xsl:variable>\n        <xsl:attribute name=\"data-compileargs\">\n            <xsl:call-template name=\"comma-list-to-json-array\">\n                <xsl:with-param name=\"list\" select=\"$compiler-args-full\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- linker arguments for hosted languages -->\n    <xsl:variable name=\"linker-args\">\n        <xsl:call-template name=\"get-program-attr-or-default\">\n            <xsl:with-param name=\"attr\" select=\"'linker-args'\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:if test=\"$linker-args != '' and ($hosting = 'jobeserver')\">\n        <xsl:attribute name=\"data-linkargs\">\n            <xsl:call-template name=\"comma-list-to-json-array\">\n                <xsl:with-param name=\"list\" select=\"$linker-args\"/>\n            </xsl:call-template>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- timelimit -->\n    <xsl:variable name=\"timelimit\">\n        <xsl:call-template name=\"get-program-attr-or-default\">\n            <xsl:with-param name=\"attr\" select=\"'timelimit'\"/>\n            <xsl:with-param name=\"default\" select=\"'25000'\"/>\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:if test=\"$timelimit != ''\">\n        <xsl:attribute name=\"data-timelimit\">\n            <xsl:value-of select=\"$timelimit\"/>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- assorted boolean flags -->\n    <xsl:variable name=\"download\">\n      <xsl:call-template name=\"get-program-attr-or-default\">\n          <xsl:with-param name=\"attr\" select=\"'download'\"/>\n          <xsl:with-param name=\"default\" select=\"''\"/>\n      </xsl:call-template>\n    </xsl:variable>\n    <xsl:if test=\"$download = 'yes'\">\n        <xsl:attribute name=\"data-enabledownload\">\n            <xsl:text>yes</xsl:text>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"@autorun = 'yes'\">\n        <xsl:attribute name=\"data-autorun\">\n            <xsl:text>yes</xsl:text>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"@hidecode = 'yes'\">\n        <xsl:attribute name=\"data-hidecode\">\n            <xsl:text>yes</xsl:text>\n        </xsl:attribute>\n    </xsl:if>\n    <xsl:if test=\"@chatcodes = 'yes'\">\n        <xsl:attribute name=\"data-chatcodes\">\n            <xsl:text>yes</xsl:text>\n        </xsl:attribute>\n    </xsl:if>\n    <!-- Pass on highlighted line numbering -->\n    <xsl:if test=\"@highlight-lines != ''\">\n        <xsl:attribute name=\"data-highlight-lines\">\n            <!-- force comma-, or space-separated, list to commas -->\n            <xsl:value-of select=\"translate(normalize-space(translate(@highlight-lines, ',', ' ')), ' ', ',')\"/>\n        </xsl:attribute>\n    </xsl:if>\n</xsl:template>\n\n\n<!-- ######## -->\n<!-- CodeLens -->\n<!-- ######## -->\n\n<xsl:template match=\"program[@interactive = 'codelens']\" mode=\"runestone-codelens\">\n    <xsl:param name=\"exercise-statement\" select=\"/..\"/>\n    <xsl:variable name=\"active-language\">\n      <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:variable>\n    <!-- as a variable so it does not look like an AVT -->\n    <xsl:variable name=\"parameter-dictionary\">\n        <xsl:text>{</xsl:text>\n        <xsl:text>\"embeddedMode\": true, </xsl:text>\n        <xsl:text>\"lang\": \"</xsl:text>\n        <xsl:value-of select=\"$active-language\"/>\n        <xsl:text>\", </xsl:text>\n        <xsl:text>\"jumpToEnd\": false</xsl:text>\n        <xsl:text>}</xsl:text>\n    </xsl:variable>\n    <!-- locate trace data via a *.js file, managed or not -->\n    <xsl:variable name=\"trace-file\">\n        <xsl:value-of select=\"$generated-directory\"/>\n        <xsl:if test=\"$b-managed-directories\">\n            <xsl:text>trace/</xsl:text>\n        </xsl:if>\n        <xsl:apply-templates select=\".\" mode=\"runestone-codelens-trace-filename\"/>\n    </xsl:variable>\n    <!-- the Runestone HTML -->\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone codelens\">\n            <div class=\"cd_section\" data-component=\"codelens\" data-question_label=\"\">\n                <xsl:if test=\"$exercise-statement\">\n                    <div class=\"exercise-statement\">\n                        <xsl:apply-templates select=\"$exercise-statement\"/>\n                    </div>\n                </xsl:if>\n                <div class=\"pytutorVisualizer exercise-interactive\">\n                    <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                    <xsl:attribute name=\"data-params\">\n                        <xsl:value-of select=\"$parameter-dictionary\"/>\n                    </xsl:attribute>\n                </div>\n                <!-- no caption, should go inside a listing? -->\n            </div>\n            <!-- access simple script with variable set to -->\n            <!-- the trace data via the @src attribute     -->\n            <script>\n                <xsl:attribute name=\"src\">\n                    <xsl:value-of select=\"$trace-file\"/>\n                </xsl:attribute>\n                <!-- script tag MUST not be self closing. force content to prevent -->\n                <xsl:text> </xsl:text>\n            </script>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- Some Runestone languages are supported within a browser,      -->\n<!-- so can be used as part of Runestone for All, while others     -->\n<!-- require a JOBE server on the Runestone server.  This template -->\n<!-- simply returns the necessary hosting capability.              -->\n<!-- N.B. This match could be simply on \"program\", but a runnable  -->\n<!-- Parsons problem may have a @language on it as part of being   -->\n<!-- runnable, thus a more liberal match (which could be           -->\n<!-- tightened, most likely).                                      -->\n<xsl:template match=\"*\" mode=\"activecode-host\">\n    <xsl:variable name=\"language\">\n        <xsl:apply-templates select=\".\" mode=\"active-language\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$language = 'python'\">      <xsl:text>browser</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'javascript'\">  <xsl:text>browser</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'html'\">        <xsl:text>browser</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'sql'\">         <xsl:text>browser</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'c'\">           <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'cpp'\">         <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'java'\">        <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'kotlin'\">      <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'python2'\">     <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'python3'\">     <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:when test=\"$language = 'octave'\">      <xsl:text>jobeserver</xsl:text></xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Data Files -->\n<xsl:template match=\"datafile\" mode=\"runestone-to-interactive\">\n    <!-- Possibly annotate with the source                     -->\n    <xsl:apply-templates select=\".\" mode=\"view-source-widget\"/>\n    <!-- Some templates and variables are defined in -common for consistency -->\n\n    <!-- If there is a child \"pre\" element, then we build an un-editable  -->\n    <!-- HTML \"pre\" in the uneditable case and an editable HTML           -->\n    <!-- \"textarea\" in the editable case.  This discintion is mirrored in -->\n    <!-- this variable and a subsequent boolean.                          -->\n    <xsl:variable name=\"pre-element\">\n        <xsl:choose>\n            <!-- only a clear \"yes\" will yield editable, -->\n            <!-- default is \"no\" (or anything but \"yes\") -->\n            <xsl:when test=\"pre and not(@editable = 'yes')\">\n                <xsl:text>pre</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"pre and (@editable = 'yes')\">\n                <xsl:text>textarea</xsl:text>\n            </xsl:when>\n            <!-- safeguard, should not ever be queried -->\n            <!-- outside of \"pre\" in source            -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"b-is-editable\" select=\"$pre-element = 'textarea'\"/>\n\n    <!-- The HTML that Runestone expects -->\n    <div class=\"runestone datafile\">\n        <div class=\"datafile_caption\">\n            <code class=\"code-inline tex2jax_ignore\">\n                <!-- Internationalize?  See comments in static conversion -->\n                <xsl:text>Data: </xsl:text>\n                <xsl:value-of select=\"@filename\" />\n            </code>\n        </div>\n        <xsl:choose>\n            <xsl:when test=\"image\">\n                <!-- filename is relative to author's source -->\n                <xsl:variable name=\"data-filename\">\n                    <xsl:apply-templates select=\".\"  mode=\"datafile-filename\"/>\n                </xsl:variable>\n                <xsl:variable name=\"image-b64-elt\" select=\"document($data-filename, $original)/pi:image-b64\"/>\n                <img data-component=\"datafile\" data-isimage=\"true\">\n                    <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                    <xsl:attribute name=\"data-filename\">\n                        <xsl:value-of select=\"@filename\"/>\n                    </xsl:attribute>\n                    <xsl:attribute name=\"src\">\n                        <xsl:text>data:</xsl:text>\n                        <xsl:value-of select=\"$image-b64-elt/@pi:mime-type\"/>\n                        <xsl:text>;base64,</xsl:text>\n                        <xsl:value-of select=\"$image-b64-elt/@pi:base64\"/>\n                    </xsl:attribute>\n                </img>\n            </xsl:when>\n            <!-- text, an authored toy example, or a serious external file -->\n            <xsl:when test=\"pre\">\n                <xsl:element name=\"{$pre-element}\">\n                    <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                    <xsl:attribute name=\"data-component\">\n                        <xsl:text>datafile</xsl:text>\n                    </xsl:attribute>\n                    <xsl:attribute name=\"data-filename\">\n                        <xsl:value-of select=\"@filename\"/>\n                    </xsl:attribute>\n                    <xsl:attribute name=\"data-edit\">\n                        <!-- conveniently, value is true/false -->\n                        <xsl:value-of select=\"$b-is-editable\"/>\n                    </xsl:attribute>\n                    <!-- Runestone can only hide non-editable text -->\n                    <xsl:if test=\"(not(@editable = 'yes')) and (@hide = 'yes')\">\n                        <xsl:attribute name=\"data-hidden\"/>\n                    </xsl:if>\n                    <xsl:attribute name=\"data-rows\">\n                        <xsl:choose>\n                            <xsl:when test=\"@rows\">\n                                <xsl:value-of select=\"@rows\"/>\n                            </xsl:when>\n                            <!-- default is 20 rows -->\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$datafile-default-rows\"/>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <xsl:attribute name=\"data-cols\">\n                        <xsl:choose>\n                            <xsl:when test=\"@cols\">\n                                <xsl:value-of select=\"@cols\"/>\n                            </xsl:when>\n                            <!-- default is 40 columns -->\n                            <xsl:otherwise>\n                                <xsl:value-of select=\"$datafile-default-cols\"/>\n                            </xsl:otherwise>\n                        </xsl:choose>\n                    </xsl:attribute>\n                    <xsl:apply-templates select=\".\" mode=\"datafile-text-contents\"/>\n                </xsl:element>\n            </xsl:when>\n            <!-- no other source/PTX element is supported , bail out-->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </div>\n</xsl:template>\n\n<!-- ############# -->\n<!-- Tabbed Viewer -->\n<!-- ############# -->\n\n<!-- Strictly a presentational device, but useful in certain situations  -->\n<!-- as a pedogogical device.  But we start with presentation.  An       -->\n<!-- \"exercise\" or PROJECT-LIKE, structured by \"task\" can have each      -->\n<!-- top-level task go into a tab, along with tabs for \"introduction\"    -->\n<!-- and \"conclusion\".  We *never* do this for worksheets, to avoid      -->\n<!-- gumming up printing and spacing.  And WeBWorK problems manage       -->\n<!-- their own tasks.  The \"match\" here is pretty selective for          -->\n<!-- \"exercise\", should perhaps be tighter for PROJECT-LIKE.  Of course, -->\n<!-- Runestone Components play nicely with this device, along with more  -->\n<!-- boring exercises.                                                   -->\n\n<xsl:template match=\"exercise[task and not(@exercise-customization = 'worksheet')]|&PROJECT-LIKE;\" mode=\"tabbed-tasks\">\n    <xsl:param name=\"heading-level\"/>\n    <div class=\"ptx-runestone-container\">\n        <div>\n            <xsl:attribute name=\"class\">\n                <xsl:text>runestone tabbed_section</xsl:text>\n                <!-- need to know if it contains an element that wants to be wide in wide layout -->\n                <xsl:if test=\".//program[@interactive = 'activecode'] or .//program[@interactive = 'codelens'] or .//exercise/blocks\">\n                    <xsl:text> contains-wide</xsl:text>\n                </xsl:if>\n            </xsl:attribute>\n            <!-- \"introduction\" first as lead-in, not as a tab -->\n            <xsl:if test=\"introduction\">\n                <div class=\"tabs-introduction exercise-leadin\">\n                    <xsl:apply-templates select=\"introduction\">\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </div>\n            </xsl:if>\n            <!-- @data-component=\"tab\" do not need an HTML @id for any -->\n            <!-- purpose in Runestone (such as, say, tracking activity -->\n            <!-- as a reader clicks from tab to tab)                   -->\n            <div data-component=\"tabbedStuff\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <xsl:for-each select=\"task\">\n                    <xsl:variable name=\"the-task-number\">\n                        <xsl:text>(</xsl:text>\n                        <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n                        <xsl:text>)</xsl:text>\n                    </xsl:variable>\n                    <div data-component=\"tab\" data-tabname=\"{$the-task-number}\">\n                        <xsl:apply-templates select=\".\">\n                            <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                        </xsl:apply-templates>\n                    </div>\n                </xsl:for-each>\n            </div>\n            <!--  -->\n            <!-- \"conclusion\" last as lead-out, not as a tab -->\n            <xsl:if test=\"conclusion\">\n                <div class=\"tabs-conclusion exercise-leadout\">\n                    <xsl:apply-templates select=\"conclusion\">\n                        <xsl:with-param name=\"heading-level\" select=\"$heading-level\"/>\n                    </xsl:apply-templates>\n                </div>\n            </xsl:if>\n        </div>\n    </div>\n</xsl:template>\n\n<!-- ####### -->\n<!-- Queries -->\n<!-- ####### -->\n\n<xsl:template match=\"query\" mode=\"runestone-to-interactive\">\n    <!-- <xsl:text>FOO</xsl:text> -->\n    <xsl:variable name=\"the-choices\" select=\"choices/choice\"/>\n    <div class=\"ptx-runestone-container\">\n        <div class=\"runestone\">\n            <ul data-component=\"poll\">\n                <xsl:apply-templates select=\".\" mode=\"runestone-id-attribute\"/>\n                <xsl:attribute name=\"data-results\">\n                    <xsl:choose>\n                        <xsl:when test=\"(@visibility = 'instructor') or (@visibility = 'all')\">\n                            <xsl:value-of select=\"@visibility\"/>\n                        </xsl:when>\n                        <xsl:otherwise>\n                            <xsl:text>instructor</xsl:text>\n                        </xsl:otherwise>\n                    </xsl:choose>\n                </xsl:attribute>\n                <xsl:apply-templates select=\"statement\"/>\n                <!-- infrastructure to here is common to a query with -->\n                <!-- explicit distinct choices, versus a query with a -->\n                <!-- simple scale for responses                       -->\n                <!-- NB: could define a variable early on indicating  -->\n                <!-- the nature of the poll, should there need to be  -->\n                <!-- more differentiation                             -->\n                <xsl:choose>\n                    <xsl:when test=\"choices\">\n                        <xsl:apply-templates select=\"choices/choice\"/>\n                    </xsl:when>\n                    <xsl:when test=\"foome\">\n                        <!-- context switch will allow \"position()\" to behave -->\n                        <xsl:for-each select=\"$the-choices\">\n                            <li>\n                                <span class=\"poll-choice\">\n                                    <xsl:value-of select=\"position()\"/>\n                                </span>\n                                <xsl:apply-templates/>\n                            </li>\n                        </xsl:for-each>\n                    </xsl:when>\n                    <xsl:when test=\"@scale\">\n                        <!-- generate list items with numbers recursively -->\n                        <xsl:call-template name=\"numbered-list-items\">\n                            <xsl:with-param name=\"max\" select=\"@scale\"/>\n                        </xsl:call-template>\n                    </xsl:when>\n                    <!-- could add error warning here?  Or rely on schema? -->\n                    <xsl:otherwise/>\n                </xsl:choose>\n            </ul>\n        </div>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"query/choices/choice\">\n    <li>\n        <!-- <span class=\"poll-choice\">\n            <xsl:number/>\n        </span> -->\n        <xsl:number/>\n        <xsl:text>. </xsl:text>\n        <xsl:apply-templates/>\n    </li>\n</xsl:template>\n\n<xsl:template name=\"numbered-list-items\">\n    <!-- always initialize with 1 to start -->\n    <xsl:param name=\"current\" select=\"'1'\"/>\n    <xsl:param name=\"max\"/>\n\n    <xsl:choose>\n        <!-- $current is too big, done with recursion -->\n        <xsl:when test=\"$current > $max\"/>\n        <xsl:otherwise>\n            <!-- make numbered list-item -->\n            <li>\n                <xsl:value-of select=\"$current\"/>\n            </li>\n            <!-- recurse with next integer -->\n            <xsl:call-template name=\"numbered-list-items\">\n                <xsl:with-param name=\"current\" select=\"$current + 1\"/>\n                <xsl:with-param name=\"max\" select=\"$max\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Utilities -->\n<!-- ######### -->\n\n<!-- Interpreter/compiler/linker args all start as comma separated lists \"-Wall, -std=c++17\" -->\n<!-- and need to end up a JSON array of strings: \"['-Wall', '-std=c++17']\"                   -->\n<xsl:template name=\"comma-list-to-json-array\">\n    <xsl:param name=\"list\"/>\n    <!-- comma separated in PreTeXt source -->\n    <xsl:variable name=\"tokens\" select=\"str:tokenize($list, ',')\"/>\n    <xsl:text>[</xsl:text>\n    <xsl:for-each select=\"$tokens\">\n        <xsl:text>'</xsl:text>\n        <!-- prune leading/trailing spaces but leave ones in middle -->\n        <xsl:value-of select=\"normalize-space(.)\"/>\n        <xsl:text>'</xsl:text>\n        <xsl:if test=\"following-sibling::token\">\n            <xsl:text>, </xsl:text>\n        </xsl:if>\n    </xsl:for-each>\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<!-- Runestone components, such as data files and select questions,  -->\n<!-- frequently point to other Runestone components in the database. -->\n<!--   * Authors point in their source with @xml:id                  -->\n<!--     values in a space- or comma- separated list                 -->\n<!--   * We locate the targets in the orginal source                 -->\n<!--   * Compute the Runestone database id                           -->\n<!--   * Return a list (varying separator) to use in Runestone HTML. -->\n<xsl:template name=\"runestone-targets\">\n    <xsl:param name=\"id-list\"/>\n    <xsl:param name=\"separator\" select=\"'MISSING SEPARATOR'\"/>\n    <xsl:param name=\"output-field\" select=\"'runestone-id'\"/>\n\n    <!-- comma or space separated in PreTeXt source -->\n    <xsl:variable name=\"tokens\" select=\"str:tokenize($id-list, ', ')\"/>\n    <xsl:for-each select=\"$tokens\">\n        <!-- attribute value is an xml:id, get target interactive -->\n        <xsl:variable name=\"the-id\">\n            <xsl:value-of select=\".\"/>\n        </xsl:variable>\n        <!-- context shift so  id()  functions properly -->\n        <xsl:for-each select=\"$original\">\n            <xsl:variable name=\"target\" select=\"id($the-id)\"/>\n            <xsl:if test=\"not($target)\">\n                <xsl:message>PTX:ERROR:   an @xml:id value \"<xsl:value-of select=\"$the-id\"/>\" was used to specify a runestone component but no item with that id exists.</xsl:message>\n            </xsl:if>\n            <!-- build Runestone database id of the target -->\n            <xsl:choose>\n                <xsl:when test=\"$output-field = 'runestone-id'\">\n                    <xsl:apply-templates select=\"$target\" mode=\"runestone-id\"/>\n                </xsl:when>\n                <xsl:when test=\"$output-field = 'filename'\">\n                    <xsl:value-of select=\"$target/@filename\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:apply-templates select=\"$target\" mode=\"runestone-id\"/>\n                    <xsl:message>PTX:ERROR:   runestone-targets template was called with an invalid @output-field value \"<xsl:value-of select=\"$output-field\"/>\"</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n            <!-- n - 1 separators, required by receiving Javascript -->\n        </xsl:for-each>\n        <xsl:if test=\"following-sibling::token\">\n            <xsl:value-of select=\"$separator\"/>\n        </xsl:if>\n    </xsl:for-each>\n</xsl:template>\n\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-sage-doctest.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    extension-element-prefixes=\"exsl date\"\n>\n\n<!-- For numbers, titles, text utilities, etc -->\n<!-- Standard conversion groundwork           -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- Intend output for Python docstring -->\n<xsl:output method=\"text\" />\n\n<!-- Doctest files are Python (docstring) -->\n<xsl:variable name=\"file-extension\" select=\"'.py'\" />\n\n<!-- Set the chunking level variable for the routines in pretext-common.xsl. -->\n<!-- Default to zero, else use whatever an author specifies                  -->\n<xsl:variable name=\"chunk-level\">\n    <xsl:choose>\n        <xsl:when test=\"$chunk-level-entered != ''\">\n            <xsl:value-of select=\"$chunk-level-entered\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>0</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"$root\"/>\n</xsl:template>\n\n<!-- We process structural nodes via chunking        -->\n<!-- routine in   xsl/pretext-common.xsl             -->\n<!-- The default templates there do everything       -->\n<!-- we need once we have \"file-wrap\" modal template -->\n<xsl:template match=\"/pretext\">\n    <xsl:apply-templates mode=\"chunking\" />\n</xsl:template>\n\n\n<!-- ########################## -->\n<!-- Default Element Processing -->\n<!-- ########################## -->\n\n<!-- Default is to just recurse into descendant elements            -->\n<!-- Ignoring text() nodes in mixed-content and mostly dead-end'ing -->\n<xsl:template match=\"*\">\n    <xsl:apply-templates select=\"*\" />\n</xsl:template>\n\n\n<!-- ####################### -->\n<!-- Sage Element Processing -->\n<!-- ####################### -->\n\n<!-- \"Normal\" Sage blocks, including \"invisible\" -->\n<!-- Form doctring/ReST verbatim block           -->\n<!-- for one input/output pair                   -->\n<!-- Filter limits to Sage language only         -->\n<xsl:template match=\"sage[(not(@type) or @type='full' or @type='invisible') and (not(@language) or @language='sage')]\">\n    <xsl:text>~~~~~~~~~~~~~~~~~~~~~~ ::&#xA;&#xA;</xsl:text>\n    <xsl:apply-templates select=\"input\" />\n    <xsl:apply-templates select=\"output\" />\n    <xsl:text>&#xA;</xsl:text>\n</xsl:template>\n\n<!-- Kill anything else that has not matched -->\n<xsl:template match=\"sage\" />\n\n<!-- Options to doctesting -->\n<!-- A property of the Sage element,         -->\n<!-- but employed in processing input        -->\n<!-- Returns: necessary string, no adornment -->\n<!-- TODO: simplify repeated strings -->\n<xsl:template match=\"sage\" mode=\"doctest-marker\">\n    <xsl:if test=\"@doctest\">\n        <xsl:choose>\n            <xsl:when test=\"@doctest='random'\">\n                <xsl:text>random</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@doctest='long time'\">\n                <xsl:text>long time</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@doctest='not implemented'\">\n                <xsl:text>not implemented</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@doctest='not tested'\">\n                <xsl:text>not tested</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"@doctest='known bug'\">\n                <xsl:text>known bug</xsl:text>\n            </xsl:when>\n            <!-- absolute and relative floating point need literal tolerance -->\n            <xsl:when test=\"@doctest='absolute' or @doctest='relative'\">\n                <xsl:choose>\n                    <xsl:when test=\"@doctest='absolute'\">\n                        <xsl:text>absolute</xsl:text>\n                    </xsl:when>\n                    <xsl:when test=\"@doctest='relative'\">\n                        <xsl:text>relative</xsl:text>\n                    </xsl:when>\n                </xsl:choose>\n                <xsl:text> tolerance </xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"@tolerance\">\n                        <xsl:value-of select=\"@tolerance\" />\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:message>PTX:WARNING: '<xsl:value-of select=\"@doctest\" /> tolerance' Sage doctest needs 'tolerance=' attribute</xsl:message>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <!-- 'optional' indicates an optional package is needed for the test -->\n            <xsl:when test=\"@doctest='optional'\">\n                <xsl:text>optional</xsl:text>\n                <xsl:choose>\n                    <xsl:when test=\"@package\">\n                        <xsl:text>: </xsl:text>\n                        <xsl:value-of select=\"@package\" />\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:message>PTX:WARNING: 'optional' Sage doctest missing package, supply a 'package=' attribute</xsl:message>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:if>\n</xsl:template>\n\n<!-- NB: input and output can appear in \"program\", etc -->\n<!-- so templates below must be specific enough        -->\n\n<!-- Sanitize input block       -->\n<!-- Add in 4-space indentation -->\n<!-- and Sage prompts, then     -->\n<!-- add Sage doctest markers   -->\n<xsl:template match=\"sage/input\">\n    <xsl:variable name=\"input-block\">\n        <xsl:call-template name=\"prepend-prompt\">\n            <xsl:with-param name=\"text\">\n                <xsl:call-template name=\"sanitize-text\" >\n                    <xsl:with-param name=\"text\" select=\".\" />\n                </xsl:call-template>\n            </xsl:with-param>\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- Construct an option marker, perhaps empty -->\n    <xsl:variable name=\"doctest-marker\">\n        <xsl:apply-templates select=\"..\" mode=\"doctest-marker\" />\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$doctest-marker!=''\">\n            <!-- Locate pieces relative to: end of first line of last input command -->\n            <xsl:variable name=\"before-last-sage\">\n                <xsl:call-template name=\"substring-before-last\">\n                    <xsl:with-param name=\"input\"  select=\"$input-block\" />\n                    <xsl:with-param name=\"substr\" select=\"'sage:'\" />\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:variable name=\"after-last-sage\">\n                <xsl:call-template name=\"substring-after-last\">\n                    <xsl:with-param name=\"input\"  select=\"$input-block\" />\n                    <xsl:with-param name=\"substr\" select=\"'sage:'\" />\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:variable name=\"before-eol\" select=\"substring-before($after-last-sage, '&#xa;')\" />\n            <xsl:variable name=\"after-eol\"  select=\"substring-after($after-last-sage, '&#xa;')\" />\n            <!-- Back in its box, with markers and doctest marker -->\n            <xsl:value-of select=\"$before-last-sage\" />\n            <xsl:text>sage:</xsl:text>\n            <xsl:value-of select=\"$before-eol\" />\n            <xsl:text>   # </xsl:text>\n            <xsl:value-of select=\"$doctest-marker\" />\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:value-of select=\"$after-eol\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$input-block\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Sanitize output block      -->\n<!-- Add in 4-space indentation -->\n<xsl:template match=\"sage/output\">\n    <xsl:call-template name=\"add-indentation\">\n        <xsl:with-param name=\"text\">\n            <xsl:call-template name=\"sanitize-text\" >\n                <xsl:with-param name=\"text\" select=\".\" />\n            </xsl:call-template>\n        </xsl:with-param>\n        <xsl:with-param name=\"indent\" select=\"'    '\" />\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Doctest specific template, others are in common XSL file -->\n<xsl:template name=\"prepend-prompt\">\n    <xsl:param name=\"text\" />\n    <!-- Just quit when string becomes empty -->\n    <xsl:if test=\"string-length($text)\">\n        <xsl:variable name=\"first-line\" select=\"substring-before($text, '&#xA;')\" />\n        <xsl:choose>\n            <!-- blank lines are treated as continuation -->\n            <!-- could be important content of triply-quoted strings? -->\n            <!-- no harm if really just spacing at totally out-dented level? -->\n            <xsl:when test=\"not(string-length($first-line))\">\n                <xsl:text>    ....: </xsl:text>\n            </xsl:when>\n            <!-- leading blank indicates continuation -->\n            <xsl:when test=\"substring($first-line,1,1)=' '\">\n                <xsl:text>    ....: </xsl:text>\n            </xsl:when>\n            <!-- otherwise, totally outdented, needs sage prompt -->\n            <xsl:otherwise>\n                <xsl:text>    sage: </xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n        <xsl:value-of select=\"$first-line\"/>\n        <xsl:text>&#xA;</xsl:text>\n        <!-- recursive call on remainder of string -->\n        <xsl:call-template name=\"prepend-prompt\">\n            <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xA;')\"/>\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- ################# -->\n<!-- File Construction -->\n<!-- ################# -->\n\n<xsl:template match=\"&STRUCTURAL;\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:if test=\"$content!=''\">\n        <xsl:variable name=\"filename\">\n            <xsl:apply-templates select=\".\" mode=\"containing-filename\" />\n        </xsl:variable>\n        <exsl:document href=\"{$filename}\" method=\"text\">\n            <xsl:call-template name=\"doctest-file-header\" />\n            <xsl:text>## </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"type-name\" />\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"number\" />\n            <xsl:text> </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:text>##&#xa;</xsl:text>\n            <xsl:text>r\"\"\"&#xa;</xsl:text>\n            <xsl:value-of select=\"$content\" />\n            <xsl:text>\"\"\"&#xa;</xsl:text>\n        </exsl:document>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"doctest-file-header\">\n    <xsl:text>##          Sage Doctest File         ##&#xa;</xsl:text>\n    <xsl:call-template name=\"converter-blurb-python\" />\n    <xsl:text>##&#xa;</xsl:text>\n    <xsl:text>## To execute doctests in these files, run&#xa;</xsl:text>\n    <xsl:text>##   $ $SAGE_ROOT/sage -t &lt;directory-of-these-files&gt;&#xa;</xsl:text>\n    <xsl:text>## or&#xa;</xsl:text>\n    <xsl:text>##   $ $SAGE_ROOT/sage -t &lt;a-single-file&gt;&#xa;</xsl:text>\n    <xsl:text>##&#xa;</xsl:text>\n    <xsl:text>## Replace -t by \"-tp n\" for parallel testing,&#xa;</xsl:text>\n    <xsl:text>##   \"-tp 0\" will use a sensible number of threads&#xa;</xsl:text>\n    <xsl:text>##&#xa;</xsl:text>\n    <xsl:text>## See: http://www.sagemath.org/doc/developer/doctesting.html&#xa;</xsl:text>\n    <xsl:text>##   or run  $ $SAGE_ROOT/sage --advanced  for brief help&#xa;</xsl:text>\n    <xsl:text>##&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-smc.xsl",
    "content": "<?xml version='1.0'?>\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:math=\"http://exslt.org/math\"\n    extension-element-prefixes=\"exsl date math\">\n\n<xsl:import href=\"./pretext-html.xsl\" />\n\n<!-- Intend output for rendering by browsers-->\n<xsl:output method=\"html\" indent=\"yes\"/>\n\n<!-- Content as Knowls -->\n<!-- Turn off all knowls, as incompatible -->\n<xsl:param name=\"html.knowl.theorem\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.proof\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.definition\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.example\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.remark\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.figure\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.table\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.exercise.inline\" select=\"'no'\" />\n<xsl:param name=\"html.knowl.exercise.sectional\" select=\"'no'\" />\n\n<!-- SageWS files as output -->\n<xsl:variable name=\"file-extension\" select=\"'.sagews'\" />\n\n<!-- Do not implement any cross-reference as a knowl -->\n<xsl:template match=\"*\" mode=\"xref-as-knowl\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n<!-- Deprecation warnings are universal analysis of source and parameters   -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"mathbook\" mode=\"deprecation-warnings\" />\n    <xsl:apply-templates />\n</xsl:template>\n\n<!-- We process structural nodes via chunking routine in   xsl/pretext-common.xsl   -->\n<!-- This in turn calls specific modal templates defined elsewhere in this file     -->\n<!-- Contrary to HTML production, we do not have a pass through to build the knowls -->\n<xsl:template match=\"mathbook\">\n    <xsl:apply-templates mode=\"chunking\" />\n</xsl:template>\n\n<!-- File wrap -->\n<!-- Per file setup, CSS, LaTeX macros, crude nav bars top and bottom -->\n<xsl:template match=\"*\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:variable name=\"url\">\n        <xsl:apply-templates select=\".\" mode=\"url\" />\n    </xsl:variable>\n    <exsl:document href=\"{$url}\" method=\"html\">\n        <xsl:call-template name=\"sage-css-setup\" />\n        <xsl:call-template name=\"html-css-mathjax-setup\" />\n        <xsl:apply-templates select=\".\" mode=\"crude-nav-bar\" />\n        <!-- the guts -->\n        <xsl:copy-of select=\"$content\" />\n        <!-- A nav bar at the bottom too -->\n        <xsl:apply-templates select=\".\" mode=\"crude-nav-bar\" />\n    </exsl:document>\n</xsl:template>\n\n<!-- The abstract chunking routines expect a default  -->\n<!-- template for a structural subdivision that is an -->\n<!-- entire chunk, so we define that here.  We just   -->\n<!-- ship out to the \"smc-cell\" modal templates       -->\n<xsl:template match=\"&STRUCTURAL;\">\n    <xsl:apply-templates select=\".\" mode=\"smc-cell\" />\n</xsl:template>\n\n<!-- The abstract chunking routines expect a modal   -->\n<!-- \"summary\" template for a subdivision that sits  -->\n<!-- above the chunking level.  We write a heading,  -->\n<!-- process the remainder in document order, either -->\n<!-- as content (eg introduction) or as a pointer    -->\n<!-- to a finer subdivision                          -->\n<!-- TODO: This is functional but the output will not win style points -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"summary\">\n    <!-- Heading, div for subdivision that is this page -->\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:variable name=\"hid\">\n                <xsl:apply-templates select=\".\" mode=\"html-id\" />\n            </xsl:variable>\n            <section class=\"{local-name(.)}\" id=\"{$hid}\">\n                <xsl:apply-templates select=\".\" mode=\"section-heading\" />\n            </section>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- Take structural elements to links         -->\n    <!-- Introduction and conclusion, etc as cells -->\n    <xsl:for-each select=\"*[not(&METADATA-FILTER;)]\">\n        <xsl:choose>\n            <xsl:when test=\"&STRUCTURAL-FILTER;\">\n                <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n                    <xsl:with-param name=\"content\">\n                        <xsl:variable name=\"num\"><xsl:apply-templates select=\".\" mode=\"number\" /></xsl:variable>\n                        <xsl:variable name=\"url\"><xsl:apply-templates select=\".\" mode=\"url\" /></xsl:variable>\n                        <div style=\"font-size:150%; padding-bottom:1.5ex\">\n                            <a href=\"{$url}\">\n                                <!-- important not include codenumber span -->\n                                <xsl:if test=\"$num!=''\">\n                                    <span class=\"codenumber\"><xsl:value-of select=\"$num\" /></span>\n                                    <xsl:text> </xsl:text>\n                                </xsl:if>\n                                <span class=\"title\">\n                                    <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n                                </span>\n                            </a>\n                        </div>\n                    </xsl:with-param>\n                </xsl:apply-templates>\n            </xsl:when>\n            <!-- objectives, introduction, conclusion are included on page -->\n            <!-- as SMC cells as they are processed in document order      -->\n            <xsl:otherwise>\n                <xsl:apply-templates select=\".\" mode=\"smc-cell\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Subdivisions get a full heading in a cell, then  -->\n<!-- children are dispatched for possible refinement -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"smc-cell\">\n    <!-- Subdivision heading, as its own HTML cell -->\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:variable name=\"hid\">\n                <xsl:apply-templates select=\".\" mode=\"html-id\" />\n            </xsl:variable>\n            <section class=\"{local-name(.)}\" id=\"{$hid}\">\n                <xsl:apply-templates select=\".\" mode=\"section-heading\" />\n            </section>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- Direct, and interesting, children become cells             -->\n    <!-- Further subdivisions (not chunked) come through here again -->\n    <xsl:apply-templates select=\"*[not(&METADATA-FILTER;)]\" mode=\"smc-cell\" />\n</xsl:template>\n\n<!-- Introductions and conclusions get a milder heading in a    -->\n<!-- cell, then children are dispatched for possible refinement -->\n<!-- TODO: condition on no title, so no cell -->\n<xsl:template match=\"introduction|conclusion\" mode=\"smc-cell\">\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:variable name=\"hid\">\n                <xsl:apply-templates select=\".\" mode=\"html-id\" />\n            </xsl:variable>\n            <article class=\"{local-name(.)}\" id=\"{$hid}\">\n                <h5 class=\"heading\">\n                    <xsl:apply-templates select=\".\" mode=\"title-full\" />\n                    <span> </span>\n                </h5>\n            </article>\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <!-- Build cells for remaining children -->\n    <xsl:apply-templates select=\"*[not(&METADATA-FILTER;)]\" mode=\"smc-cell\" />\n</xsl:template>\n\n<!-- Most children of a subdivision will be HTML cells,    -->\n<!-- so wrap as such and then call their default templates -->\n<xsl:template match=\"*\" mode=\"smc-cell\">\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Handle Sage code with a minimum of interference   -->\n<!-- This comes second, so as to overide generic above -->\n<xsl:template match=\"sage\" mode=\"smc-cell\">\n    <xsl:apply-templates select=\".\" mode=\"smc-compute-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".\" />\n            <!-- Sage input always ends with a newline -->\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Most Sage options are implemented in  xsl/pretext-common.xsl -->\n<!-- We just output the input code, with no XHTML protections      -->\n<xsl:template match=\"sage\" mode=\"sage-active-markup\">\n    <xsl:param name=\"in\" />\n    <xsl:value-of select=\"$in\" disable-output-escaping=\"yes\" />\n</xsl:template>\n\n<!-- TODO: sage-display-only abstract template needed (?) -->\n<!--       Or deprecate type=\"display\"                    -->\n\n\n<!-- Mimics depth-first search, into its own HTML cell -->\n<!-- This is functional but will not win style points  -->\n<xsl:template match=\"*\" mode=\"crude-nav-bar\">\n    <xsl:variable name=\"prev\">\n        <xsl:apply-templates select=\".\" mode=\"previous-linear-url\" />\n    </xsl:variable>\n    <xsl:variable name=\"up\">\n        <xsl:apply-templates select=\".\" mode=\"up-url\" />\n    </xsl:variable>\n    <xsl:variable name=\"next\">\n        <xsl:apply-templates select=\".\" mode=\"next-linear-url\" />\n    </xsl:variable>\n    <!-- HTML cell begins here, holds a table element -->\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <table width=\"90%\" style=\"font-size: 200%;\">\n                <tr>\n                    <xsl:if test=\"not($prev = '')\">\n                        <td align=\"left\">\n                            <xsl:element name=\"a\">\n                                <xsl:attribute name=\"href\">\n                                    <xsl:value-of select=\"$prev\" />\n                                </xsl:attribute>\n                                <xsl:text>Previous</xsl:text>\n                            </xsl:element>\n                        </td>\n                    </xsl:if>\n                    <xsl:if test=\"not($up = '')\">\n                        <td align=\"center\">\n                            <xsl:element name=\"a\">\n                                <xsl:attribute name=\"href\">\n                                    <xsl:value-of select=\"$up\" />\n                                </xsl:attribute>\n                                <xsl:text>Up</xsl:text>\n                            </xsl:element>\n                        </td>\n                    </xsl:if>\n                    <xsl:if test=\"not($next = '')\">\n                        <td align=\"right\">\n                            <xsl:element name=\"a\">\n                                <xsl:attribute name=\"href\">\n                                    <xsl:value-of select=\"$next\" />\n                                </xsl:attribute>\n                                <xsl:text>Next</xsl:text>\n                            </xsl:element>\n                        </td>\n                    </xsl:if>\n                </tr>\n            </table>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- We bypass image creation and just let SMC -->\n<!-- do the job with an executable cell        -->\n<xsl:template match=\"image[child::sageplot]\">\n    <xsl:apply-templates select=\"sageplot\" />\n</xsl:template>\n\n<!-- TODO: Not fixed up yet 2016-10-02 -->\n<xsl:template match=\"sageplot\">\n    <!-- Drop out of HTML mode -->\n    <xsl:apply-templates select=\".\" mode=\"inputoutput\" />\n    <xsl:apply-templates select=\".\" mode=\"outputend\" />\n    <!-- Create a complete Sage cell region -->\n    <xsl:apply-templates select=\".\" mode=\"inputbegin-execute\" />\n    <xsl:text>%hide&#xa;</xsl:text>\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\".\" />\n    </xsl:call-template>\n    <xsl:apply-templates select=\".\" mode=\"inputoutput\" />\n    <xsl:apply-templates select=\".\" mode=\"outputend\" />\n    <!-- Start back in HTML mode -->\n    <xsl:apply-templates select=\".\" mode=\"inputbegin-execute\" />\n    <xsl:text>%html&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Override for SVG images                        -->\n<!-- SMC treates the object tag badly.  We ignore   -->\n<!-- any PNG fallback and so just use an img tag.   -->\n<!-- A named template creates the infrastructure    -->\n<!-- for an SVG image.  Parameter lists (doc, code) -->\n<!-- are identical to those for HTML conversion     -->\n<!-- Parameters                                     -->\n<!-- svg-filename: required, full relative path     -->\n<!-- png-fallback-filename: optional                -->\n<!-- image-width: required                          -->\n<!-- image-description: optional                    -->\n<xsl:template name=\"svg-wrapper\">\n    <xsl:param name=\"svg-filename\" />\n    <xsl:param name=\"png-fallback-filename\" select=\"''\" />\n    <xsl:param name=\"image-width\" />\n    <xsl:param name=\"image-description\" select=\"''\" />\n    <xsl:element name=\"img\">\n        <xsl:attribute name=\"style\">\n            <xsl:text>width:</xsl:text>\n            <xsl:value-of select=\"$image-width\" />\n            <xsl:text>; margin:0 auto;</xsl:text>\n        </xsl:attribute>\n        <xsl:attribute name=\"src\">\n            <xsl:value-of select=\"$svg-filename\" />\n        </xsl:attribute>\n        <xsl:attribute name=\"alt\">\n            <xsl:value-of select=\"$image-description\" />\n        </xsl:attribute>\n    </xsl:element>\n</xsl:template>\n\n<!-- ##################### -->\n<!-- Set-up, per-worksheet -->\n<!-- ##################### -->\n\n<!-- HTML code for CSS load -->\n<!-- Gets a div.mathbook-content wrapper      -->\n<!-- which seems to only produce excess space -->\n<xsl:template name=\"sage-css-setup\">\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:element name=\"link\">\n                <xsl:attribute name=\"rel\">\n                    <xsl:text>stylesheet</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>text/css</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"href\">\n                    <xsl:text>http://buzzard.ups.edu/mathbook-content.css</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n            <xsl:element name=\"link\">\n                <xsl:attribute name=\"rel\">\n                    <xsl:text>stylesheet</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"type\">\n                    <xsl:text>text/css</xsl:text>\n                </xsl:attribute>\n                <xsl:attribute name=\"href\">\n                    <xsl:text>https://aimath.org/mathbook/mathbook-add-on.css</xsl:text>\n                </xsl:attribute>\n            </xsl:element>\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- HTML code for MathJax macros -->\n<xsl:template name=\"html-css-mathjax-setup\">\n    <xsl:apply-templates select=\".\" mode=\"smc-html-cell\">\n        <xsl:with-param name=\"content\">\n            <xsl:call-template name=\"latex-macros\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- ########################### -->\n<!-- SageMathCloud Cell Wrappers -->\n<!-- ########################### -->\n\n<!-- SMC HTML Cell -->\n<!-- Pass in HTML content, after templates applied -->\n<!-- USe SMC UUID markers on their own lines       -->\n<!-- Wrap in custom CSS class, mathbook-content    -->\n<xsl:template match=\"*\" mode=\"smc-html-cell\">\n    <xsl:param name=\"content\" />\n    <xsl:apply-templates select=\".\" mode=\"smc-input-marker\" />\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>%auto&#xa;</xsl:text>\n    <xsl:text>%html(hide=True)&#xa;</xsl:text>\n    <xsl:element name=\"div\">\n        <xsl:attribute name=\"class\">\n            <xsl:text>mathbook-content</xsl:text>\n        </xsl:attribute>\n        <xsl:copy-of select=\"$content\" />\n    </xsl:element>\n    <!-- Be certain output marker is on own line -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"smc-output-marker\" />\n    <!-- We could parse HTML $content into a JSON-escaped string -->\n    <!-- Belongs *immediately* after output marker (?)           -->\n    <!-- <xsl:text disable-output-escaping='yes'>{\"done\":true,\"html\":\"&lt;p&gt;Execute cell above for proper output.&lt;/p&gt;\"}&#xa;</xsl:text> -->\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- SMC Compute Cell -->\n<!-- Pass in content, after templates applied -->\n<!-- USe SMC UUID markers on their own lines       -->\n<!-- Wrap in custom CSS class, mathbook-content    -->\n<xsl:template match=\"*\" mode=\"smc-compute-cell\">\n    <xsl:param name=\"content\" />\n    <xsl:apply-templates select=\".\" mode=\"smc-input-marker\" />\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:copy-of select=\"$content\" />\n    <!-- Be certain $content ends with newline -->\n    <xsl:apply-templates select=\".\" mode=\"smc-output-marker\" />\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n\n<!-- ########################## -->\n<!-- SageMathCloud Cell Markers -->\n<!-- ########################## -->\n\n<!-- SMC uses markers to denote the start of each cell, -->\n<!-- differentiating input from output.                 -->\n<!-- By default these are Sage compute cells, but       -->\n<!-- decorators/magics can make them behave differently -->\n\n<!-- Pair of matched seldom-used Unicode, with a UUID -->\n<!-- 'COMBINING LIGATURE LEFT HALF' (U+FE20)          -->\n<xsl:template match=\"*\" mode=\"smc-input-marker\">\n    <xsl:text>&#xFE20;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"uuid\" />\n    <xsl:text>&#xFE20;</xsl:text>\n</xsl:template>\n\n<!-- Pair of matched seldom-used Unicode, with a UUID -->\n<!-- 'COMBINING LIGATURE RIGHT HALF' (U+FE21)         -->\n<xsl:template match=\"*\" mode=\"smc-output-marker\">\n    <xsl:text>&#xFE21;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"uuid\" />\n    <xsl:text>&#xFE21;</xsl:text>\n</xsl:template>\n\n<!-- Version 4 UUID -->\n<!-- Improvements:                     -->\n<!-- Use EXSLT random:random-sequence  -->\n<!--   (1) Get a random number         -->\n<!--   (2) Get content id of object    -->\n<!--   (3) Mix to a new seed           -->\n<!--   (4) Generate sequence and adorn -->\n<!-- idpXXXXXXXX (universal format?)   -->\n<!-- <xsl:value-of select=\"substring(generate-id(.), 4, 8)\" /> -->\n<xsl:template match=\"*\" mode=\"uuid\">\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 1 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 2 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 3 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 4 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 5 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 6 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 7 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 8 -->\n    <xsl:text>-</xsl:text>\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 1 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 2 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 3 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 4 -->\n    <xsl:text>-</xsl:text>\n    <xsl:text>4</xsl:text> <!-- Version 4 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 2 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 3 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 4 -->\n    <xsl:text>-</xsl:text>\n    <xsl:text>a</xsl:text> <!-- Variant: leading bits 10 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 2 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 3 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 4 -->\n    <xsl:text>-</xsl:text>\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 1 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 2 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 3 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 4 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 5 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 6 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 7 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 8 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 9 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 0 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 1 -->\n    <xsl:call-template name=\"random-hex-digit\" /> <!-- 2 -->\n</xsl:template>\n\n<xsl:template name=\"random-hex-digit\">\n    <xsl:variable name=\"digit\" select=\"floor(16*math:random())\" />\n    <xsl:choose>\n        <xsl:when test=\"10 > $digit\">\n            <xsl:value-of select=\"$digit\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:choose>\n                <xsl:when test=\"$digit = 10\">a</xsl:when>\n                <xsl:when test=\"$digit = 11\">b</xsl:when>\n                <xsl:when test=\"$digit = 12\">c</xsl:when>\n                <xsl:when test=\"$digit = 13\">d</xsl:when>\n                <xsl:when test=\"$digit = 14\">e</xsl:when>\n                <xsl:when test=\"$digit = 15\">f</xsl:when>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-solution-manual-latex.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- This import will include the assembly phase, which is -->\n<!-- necessary as support for a private solutions file     -->\n<xsl:import href=\"./pretext-latex.xsl\" />\n\n<!-- Intend output for rendering by pdflatex -->\n<xsl:output method=\"text\" />\n\n<!-- These variables are interpreted in pretext-common.xsl and  -->\n<!-- so may be used/set in a custom XSL stylesheet for a         -->\n<!-- project's solution manual.                                  -->\n<!--                                                             -->\n<!-- exercise.inline.statement                                   -->\n<!-- exercise.inline.hint                                        -->\n<!-- exercise.inline.answer                                      -->\n<!-- exercise.inline.solution                                    -->\n<!-- exercise.divisional.statement                               -->\n<!-- exercise.divisional.hint                                    -->\n<!-- exercise.divisional.answer                                  -->\n<!-- exercise.divisional.solution                                -->\n<!-- exercise.worksheet.statement                                -->\n<!-- exercise.worksheet.hint                                     -->\n<!-- exercise.worksheet.answer                                   -->\n<!-- exercise.worksheet.solution                                 -->\n<!-- exercise.reading.statement                                  -->\n<!-- exercise.reading.hint                                       -->\n<!-- exercise.reading.answer                                     -->\n<!-- exercise.reading.solution                                   -->\n<!-- project.statement                                           -->\n<!-- project.hint                                                -->\n<!-- project.answer                                              -->\n<!-- project.solution                                            -->\n<!--                                                             -->\n<!-- The second set of variables are internal, and are derived   -->\n<!-- from the above via careful routines in pretext-common.xsl. -->\n<!--                                                             -->\n<!-- b-has-inline-statement                                      -->\n<!-- b-has-inline-hint                                           -->\n<!-- b-has-inline-answer                                         -->\n<!-- b-has-inline-solution                                       -->\n<!-- b-has-divisional-statement                                  -->\n<!-- b-has-divisional-hint                                       -->\n<!-- b-has-divisional-answer                                     -->\n<!-- b-has-divisional-solution                                   -->\n<!-- b-has-worksheet-statement                                   -->\n<!-- b-has-worksheet-hint                                        -->\n<!-- b-has-worksheet-answer                                      -->\n<!-- b-has-worksheet-solution                                    -->\n<!-- b-has-reading-statement                                     -->\n<!-- b-has-reading-hint                                          -->\n<!-- b-has-reading-answer                                        -->\n<!-- b-has-reading-solution                                      -->\n<!-- b-has-project-statement                                     -->\n<!-- b-has-project-hint                                          -->\n<!-- b-has-project-answer                                        -->\n<!-- b-has-project-solution                                      -->\n\n<!-- Conceived as a \"print only\" PDF, this is also necessary    -->\n<!-- to keep links (such as a solution number linking back to   -->\n<!-- the original) from being seen/interpreted as actual links. -->\n<!-- Here, we override a variable from the stylesheet           -->\n<!-- pulisher-variables.xsl.  Note that it is important to      -->\n<!-- change the boolean variable, so other properties default   -->\n<!-- properly, such as \"sided-ness\".                            -->\n<xsl:variable name=\"b-latex-print\" select=\"true()\"/>\n<!-- There are not even labels for page numbers, beside -->\n<!-- the fact that they don't make much sense           -->\n<xsl:variable name=\"latex-pageref\" select=\"'no'\"/>\n\n<!-- We have a switch for just this situation, to force -->\n<!-- (overrule) the auto-detetion of the necessity for  -->\n<!-- LaTeX styles for the solutions to exercises.       -->\n<!-- See  pretext-latex.xsl  for more explanation.     -->\n<xsl:variable name=\"b-needs-solution-styles\" select=\"true()\"/>\n\n<!-- We hardcode the numbers of 2D displays so they are correct where  -->\n<!-- born, this switch could be expanded to the cross-references -->\n<xsl:variable name=\"b-latex-hardcode-numbers\" select=\"true()\"/>\n\n<!-- For a \"book\" we replace the first chapter by a call to the        -->\n<!-- solutions generator.  So we burrow into parts to get at chapters. -->\n\n<xsl:template match=\"part|chapter|section|backmatter/solutions\" />\n\n<xsl:template match=\"part[1]\">\n    <xsl:apply-templates select=\"chapter[1]\" />\n</xsl:template>\n\n<!-- provoke the \"solutions-generator\" at the first sign of main matter content -->\n<xsl:template match=\"chapter[1]|article/section[1]\">\n    <xsl:apply-templates select=\"$document-root\" mode=\"solutions-generator\">\n        <xsl:with-param name=\"purpose\" select=\"'solutionmanual'\" />\n        <xsl:with-param name=\"admit\" select=\"'all'\" />\n        <xsl:with-param name=\"scope\" select=\"$document-root\"/>\n        <xsl:with-param name=\"b-inline-statement\"     select=\"$b-has-inline-statement\" />\n        <xsl:with-param name=\"b-inline-hint\"          select=\"$b-has-inline-hint\"  />\n        <xsl:with-param name=\"b-inline-answer\"        select=\"$b-has-inline-answer\"  />\n        <xsl:with-param name=\"b-inline-solution\"      select=\"$b-has-inline-solution\"  />\n        <xsl:with-param name=\"b-divisional-statement\" select=\"$b-has-divisional-statement\" />\n        <xsl:with-param name=\"b-divisional-hint\"      select=\"$b-has-divisional-hint\"  />\n        <xsl:with-param name=\"b-divisional-answer\"    select=\"$b-has-divisional-answer\"  />\n        <xsl:with-param name=\"b-divisional-solution\"  select=\"$b-has-divisional-solution\"  />\n        <xsl:with-param name=\"b-worksheet-statement\"  select=\"$b-has-worksheet-statement\" />\n        <xsl:with-param name=\"b-worksheet-hint\"       select=\"$b-has-worksheet-hint\"  />\n        <xsl:with-param name=\"b-worksheet-answer\"     select=\"$b-has-worksheet-answer\"  />\n        <xsl:with-param name=\"b-worksheet-solution\"   select=\"$b-has-worksheet-solution\"  />\n        <xsl:with-param name=\"b-reading-statement\"    select=\"$b-has-reading-statement\" />\n        <xsl:with-param name=\"b-reading-hint\"         select=\"$b-has-reading-hint\"  />\n        <xsl:with-param name=\"b-reading-answer\"       select=\"$b-has-reading-answer\"  />\n        <xsl:with-param name=\"b-reading-solution\"     select=\"$b-has-reading-solution\"  />\n        <xsl:with-param name=\"b-project-statement\"    select=\"$b-has-project-statement\" />\n        <xsl:with-param name=\"b-project-hint\"         select=\"$b-has-project-hint\"  />\n        <xsl:with-param name=\"b-project-answer\"       select=\"$b-has-project-answer\"  />\n        <xsl:with-param name=\"b-project-solution\"     select=\"$b-has-project-solution\"  />\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- Not really \"duplicate\" here in solutions manual, but conforms to -common -->\n<xsl:template match=\"*\" mode=\"duplicate-heading\">\n    <xsl:param name=\"heading-stack\" select=\".\"/>\n\n    <!-- Iterate through heading-stack, opening divisions -->\n    <!-- and creating toc entry.                          -->\n    <!-- Number is hard-coded into title                  -->\n    <xsl:for-each select=\"$heading-stack\">\n        <xsl:variable name=\"the-number\">\n            <xsl:apply-templates select=\".\" mode=\"number\" />\n        </xsl:variable>\n        <xsl:variable name=\"original-title\">\n            <!-- no trailing space if no number -->\n            <xsl:if test=\"not($the-number = '')\">\n                <xsl:value-of select=\"$the-number\" />\n                <xsl:text> </xsl:text>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"title-full\" />\n        </xsl:variable>\n        <xsl:variable name=\"moving-title\">\n            <!-- no trailing space if no number -->\n            <xsl:if test=\"not($the-number = '')\">\n                <xsl:value-of select=\"$the-number\" />\n                <xsl:text> </xsl:text>\n            </xsl:if>\n            <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n        </xsl:variable>\n\n        <xsl:text>\\</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"division-name\" />\n        <xsl:text>*{</xsl:text>\n        <xsl:value-of select=\"$original-title\"/>\n        <xsl:text>}&#xa;</xsl:text>\n        <!-- An entry for the ToC, since we hard-code numbers -->\n        <!-- These mainmatter divisions should always have a number -->\n        <xsl:text>\\addcontentsline{toc}{</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"division-name\" />\n        <xsl:text>}{</xsl:text>\n        <xsl:value-of select=\"$moving-title\"/>\n        <xsl:text>}&#xa;</xsl:text>\n        <!-- Explicit marks, since divisions are the starred form -->\n        <xsl:choose>\n            <xsl:when test=\"self::chapter\">\n                <xsl:text>\\chaptermark{</xsl:text>\n                <xsl:value-of select=\"$moving-title\"/>\n                <xsl:text>}&#xa;</xsl:text>\n            </xsl:when>\n            <!-- \"section\", \"exercises\", \"worksheet\", at section-level, etc. -->\n            <xsl:when test=\"parent::chapter\">\n                <xsl:text>\\sectionmark{</xsl:text>\n                <xsl:value-of select=\"$moving-title\"/>\n                <xsl:text>}&#xa;</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:for-each>\n</xsl:template>\n\n<!-- Page headers + Chapter/Section XYZ Title      -->\n<!-- \\sethead[even-left][even-center][even-right]  -->\n<!--         {odd-left}{odd-center}{odd-right}     -->\n<xsl:template match=\"book\" mode=\"titleps-headings\">\n    <xsl:text>{&#xa;</xsl:text>\n    <xsl:text>\\sethead[\\thepage][][\\textsl{\\chaptertitle}]&#xa;</xsl:text>\n    <xsl:text>{\\textsl{\\sectiontitle}}{}{\\thepage}&#xa;</xsl:text>\n    <xsl:text>}&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Hard-Coded Numbers -->\n<!-- As a subset of full content, we can't          -->\n<!-- point to much of the content with hyperlinks   -->\n<!-- But we do have the full context as we process, -->\n<!-- so we can get numbers for cross-references     -->\n<!-- and *hard-code* them into the LaTeX            -->\n\n<!-- We don't dither about possibly using a \\ref{} and  -->\n<!-- just produce numbers.  These might lack the \"part\" -->\n<xsl:template match=\"*\" mode=\"xref-number\">\n  <xsl:apply-templates select=\".\" mode=\"number\" />\n</xsl:template>\n\n<!-- The actual link is not a \\hyperlink nor a    -->\n<!-- hyperref, but instead is just plain 'ol text -->\n<xsl:template match=\"*\" mode=\"xref-link\">\n    <xsl:param name=\"content\" select=\"'MISSING LINK CONTENT'\"/>\n    <xsl:value-of select=\"$content\" />\n</xsl:template>\n\n<!-- Exercise numbers are always hard-coded at birth, given -->\n<!-- complications of numbering, placement, duplication     -->\n\n<!-- Since divisions have hard-coded numbers, a \\label{}   -->\n<!-- on an equation will be inaccurate.  These versions of -->\n<!-- the templates for hard-coded equation numbers are     -->\n<!-- from the HTML conversion.                             -->\n\n<xsl:template match=\"mrow\" mode=\"tag\">\n    <xsl:text>\\tag{</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\" />\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"mrow[@tag]\" mode=\"tag\">\n    <xsl:text>\\tag{</xsl:text>\n    <xsl:apply-templates select=\"@tag\" mode=\"tag-symbol\" />\n    <xsl:text>}</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-text-utilities.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2022 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Indicated basic utilities are from:                      -->\n<!-- XSLT Cookbook, 2nd Edition                               -->\n<!-- Copyright 2006, O'Reilly Media, Inc.                     -->\n<!--                                                          -->\n<!-- From the section of the Preface, \"Using Code Examples\":  -->\n<!-- \"You do not need to contact us for permission unless     -->\n<!-- you're reproducing a significant portion of the code.    -->\n<!-- For example, writing a program that uses several chunks  -->\n<!-- of code from this book does not require permission.\"     -->\n\n<!-- This stylesheet is meant to xsl:include'd into other stylesheets.     -->\n<!-- All the templates were once part of \"pretext-common.xsl\" (2022-03-27) -->\n<!-- and so are being included at the point where the vast majority were   -->\n<!-- originally created.  Perhaps the include can move to a more obvious   -->\n<!-- location near the top of that file.  There is no entry template and   -->\n<!-- every template is a named template which relies on parameters, not    -->\n<!-- context or a match/select mechanism.  (With some exceptions.)         -->\n<!--                                                                       -->\n<!-- Used in:                                                              -->\n<!--     xsl/pretext-common.xsl (2022-03-27)                               -->\n<!--     xsl/pretext/pretext-runestone-static.xsl (2022-03-28)             -->\n\n<!-- \"unit\" tests for these templates are (partially) implemented in       -->\n<!-- xsl/tests/pretext-text-utilities-test.xsl                             -->\n<!-- Before modifying any templates in this file, you are encouraged to    -->\n<!-- make sure there is a set of tests for the template(s) and use those   -->\n<!-- to verify changes allong with diffs of sample-book/sample-article     -->\n\n<!-- There are &LOWERCASE; and &UPPERCASE; entities  -->\n<!-- in the \"file-extension\" template (only?) -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- EXSL needed for token list template (only?) -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:math=\"http://exslt.org/math\"\n    xmlns:set=\"http://exslt.org/sets\"\n    extension-element-prefixes=\"pi str math\"\n>\n\n<!-- Allow serialization of XML in various contexts     -->\n<!-- See the XSL file for more info about Lenz' utility -->\n<xsl:import href=\"./xml-to-string.xsl\"/>\n\n<!-- ########################## -->\n<!-- Text Manipulation Routines -->\n<!-- ########################## -->\n\n<!-- Various bits of textual material            -->\n<!-- (eg Sage, code, verbatim, LaTeX)            -->\n<!-- require manipulation to                     -->\n<!--                                             -->\n<!--   (a) behave in some output format          -->\n<!--   (b) produce human-readable output (LaTeX) -->\n\n<!-- We need to identify particular characters   -->\n<!-- space, tab, carriage return, newline        -->\n<xsl:variable name=\"whitespaces\">\n    <xsl:text>&#x20;&#x9;&#xD;&#xA;</xsl:text>\n</xsl:variable>\n\n<!-- Sanitize Code -->\n<!-- No leading whitespace, no trailing -->\n<!-- http://stackoverflow.com/questions/1134318/xslt-xslstrip-space-does-not-work -->\n<!-- Trim all whitespace at end of code hunk -->\n<!-- Append carriage return to mark last line, remove later -->\n<!-- preserve-intentional keeps all whitespace that comes   -->\n<!-- before the last newline                                -->\n<xsl:template name=\"trim-end\">\n   <xsl:param name=\"text\"/>\n   <xsl:param name=\"preserve-intentional\" select=\"false()\" />\n   <xsl:variable name=\"last-char\" select=\"substring($text, string-length($text), 1)\" />\n   <xsl:choose>\n        <xsl:when test=\"$last-char=''\">\n            <xsl:text>&#xA;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"($preserve-intentional = true()) and ($last-char = '&#xA;')\">\n            <xsl:value-of select=\"$text\"/>\n        </xsl:when>\n        <xsl:when test=\"contains($whitespaces, $last-char)\">\n            <xsl:call-template name=\"trim-end\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 1, string-length($text) - 1)\" />\n                <xsl:with-param name=\"preserve-intentional\" select=\"$preserve-intentional\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n            <xsl:text>&#xA;</xsl:text>\n        </xsl:otherwise>\n   </xsl:choose>\n</xsl:template>\n\n<!-- Trim all totally whitespace lines from beginning of code hunk -->\n<!-- preserve-intentional removes all whitespace through first     -->\n<!-- newline (inclusive) and preserves the rest.                   -->\n<xsl:template name=\"trim-start-lines\">\n   <xsl:param name=\"text\"/>\n   <xsl:param name=\"pad\" select=\"''\"/>\n   <xsl:param name=\"preserve-intentional\" select=\"false()\" />\n   <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\" />\n   <xsl:choose>\n        <!-- Possibly nothing, return just final carriage return -->\n        <xsl:when test=\"$first-char=''\">\n            <xsl:text>&#xA;</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$first-char='&#xA;'\">\n            <xsl:choose>\n                <xsl:when test=\"$preserve-intentional=true()\">\n                    <xsl:value-of select=\"substring($text, 2)\" />\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:call-template name=\"trim-start-lines\">\n                        <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"contains($whitespaces, $first-char)\">\n            <xsl:call-template name=\"trim-start-lines\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n                <xsl:with-param name=\"pad\"  select=\"concat($pad, $first-char)\" />\n                <xsl:with-param name=\"preserve-intentional\" select=\"$preserve-intentional\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"concat($pad, $text)\" />\n        </xsl:otherwise>\n   </xsl:choose>\n</xsl:template>\n\n<!-- Compute length of indentation of first line                   -->\n<!-- Assumes no leading blank lines                                -->\n<xsl:template name=\"count-pad-length\">\n    <xsl:param name=\"text\"/>\n    <xsl:param name=\"index\" select=\"1\"/>\n    <xsl:variable name=\"first-char\" select=\"substring($text, $index, 1)\" />\n    <xsl:choose>\n        <!-- reached end of string or newline... bail out -->\n        <xsl:when test=\"$first-char = '' or $first-char = '&#xA;'\">\n            <xsl:value-of select=\"$index - 1\"/>\n        </xsl:when>\n        <xsl:when test=\"contains($whitespaces, $first-char)\">\n            <xsl:call-template name=\"count-pad-length\">\n                <xsl:with-param name=\"text\" select=\"$text\" />\n                <xsl:with-param name=\"index\" select=\"$index + 1\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$index - 1\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Compute width of left margin                                -->\n<!-- Assumes each line ends in a newline                         -->\n<!-- A blank line will not contribute                            -->\n<!-- Intentionally non-recursive to avoid recursion depth issues -->\n<!-- on long code samples                                        -->\n<xsl:template name=\"left-margin\">\n    <xsl:param name=\"text\" />\n\n    <!-- construct a variable that is just a list of padding counts -->\n    <!-- as pad nodes                                               -->\n    <xsl:variable name=\"lines\" select=\"str:tokenize($text, '&#xA;')\" />\n    <xsl:variable name=\"pad-counts-rtf\">\n        <xsl:for-each select=\"$lines\">\n            <!-- str:tokenize in current implementation does not produce -->\n            <!-- zero-length strings. (e.g. string between two newlines) -->\n            <!-- but that appears to differ between implementations, so  -->\n            <!-- guard against it                                        -->\n            <xsl:if test=\". != ''\">\n                <pad>\n                    <xsl:call-template name=\"count-pad-length\">\n                        <xsl:with-param name=\"text\" select=\".\" />\n                    </xsl:call-template>\n                </pad>\n            </xsl:if>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:variable name=\"pad-counts\" select=\"exsl:node-set($pad-counts-rtf)\"/>\n\n    <!-- grab minimum value from list-->\n    <xsl:variable name=\"min-pad\" select=\"math:min($pad-counts/pad)\" />\n\n    <!-- min-pad will be NaN if there was nothing to count -->\n    <xsl:choose>\n        <xsl:when test=\"string($min-pad)='NaN'\">\n            <xsl:value-of select=\"0\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$min-pad\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Divide and conquer strip-indentation                              -->\n<!-- Appropriate for long chunks of text. Minimal overhead on small    -->\n<!-- chunks of text.                                                   -->\n<!-- An \"out-dented\" line is assumed to be intermediate blank line     -->\n<!-- indent parameter is a number giving number of characters to strip -->\n<xsl:template name=\"strip-indentation\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"indent\" />\n\n    <!-- string length at which to give up divide and conquer          -->\n    <xsl:variable name=\"divide-threshold\" select=\"500\" />\n\n    <xsl:variable name=\"text-len\" select=\"string-length($text)\" />\n    <xsl:choose>\n        <!-- short string, hand off to line by line algorithm -->\n        <xsl:when test=\"$divide-threshold > $text-len\">\n            <xsl:call-template name=\"strip-indentation-core\">\n                <xsl:with-param name=\"text\" select=\"$text\" />\n                <xsl:with-param name=\"indent\" select=\"$indent\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- Cut string in half -->\n            <xsl:variable name=\"cut-location\" select=\"floor(string-length($text) div 2)\"/>\n            <xsl:variable name=\"first-half\" select=\"substring($text, 1, $cut-location)\"/>\n            <xsl:variable name=\"second-half\" select=\"substring($text, $cut-location + 1)\"/>\n            <!-- First half needs to take on everything before first newline -->\n            <!-- in second-half and have a trailing newline                  -->\n            <xsl:variable name=\"first-half-augmented\" select=\"concat($first-half, substring-before($second-half, '&#xA;'), '&#xA;')\"/>\n            <!-- Second half only gets text after the first newline in it    -->\n            <xsl:variable name=\"second-half-augmented\" select=\"substring-after($second-half, '&#xA;')\"/>\n\n            <!-- Stop dividing? -->\n            <xsl:choose>\n                <xsl:when test=\"$second-half-augmented = ''\">\n                    <!-- Nothing in second half (can happen with really long lines) -->\n                    <!-- Give up and hand first half to line-by-line                -->\n                    <xsl:call-template name=\"strip-indentation-core\">\n                        <xsl:with-param name=\"text\" select=\"$first-half-augmented\" />\n                        <xsl:with-param name=\"indent\" select=\"$indent\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- Recurse on each half -->\n                    <xsl:call-template name=\"strip-indentation\">\n                        <xsl:with-param name=\"text\" select=\"$first-half-augmented\" />\n                        <xsl:with-param name=\"indent\" select=\"$indent\" />\n                    </xsl:call-template>\n                    <xsl:call-template name=\"strip-indentation\">\n                        <xsl:with-param name=\"text\" select=\"$second-half-augmented\" />\n                        <xsl:with-param name=\"indent\" select=\"$indent\" />\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Line by line strip-indentation                                    -->\n<!-- should only be called on shortish chunks of text                  -->\n<!-- (dozens of lines not hundreds)                                    -->\n<!-- An \"out-dented\" line is assumed to be intermediate blank line     -->\n<!-- indent parameter is a number giving number of characters to strip -->\n<xsl:template name=\"strip-indentation-core\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"indent\" />\n    <xsl:if test=\"$text != ''\">\n        <xsl:variable name=\"first-line\" select=\"substring-before($text, '&#xA;')\" />\n        <xsl:if test=\"string-length($first-line) > $indent\" >\n            <xsl:value-of select=\"substring($first-line, $indent + 1)\" />\n        </xsl:if>\n        <xsl:text>&#xA;</xsl:text>\n        <xsl:call-template name=\"strip-indentation-core\">\n            <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xA;')\" />\n            <xsl:with-param name=\"indent\" select=\"$indent\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Add a common string in front of every line of a block -->\n<!-- Typically spaces to format output block for doctest   -->\n<!-- indent parameter is a string                          -->\n<!-- Assumes last character is xA                          -->\n<!-- Result has trailing xA                                -->\n<xsl:template name=\"add-indentation\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"indent\" />\n    <xsl:if test=\"$text != ''\">\n        <xsl:value-of select=\"concat($indent,substring-before($text, '&#xA;'))\" />\n        <xsl:text>&#xA;</xsl:text>\n        <xsl:call-template name=\"add-indentation\">\n            <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xA;')\" />\n            <xsl:with-param name=\"indent\" select=\"$indent\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Shift all lines in text to the left far enough that   -->\n<!-- line with the least indentation is at the left margin -->\n<xsl:template name=\"left-align-text\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"left-margin\">\n        <xsl:call-template name=\"left-margin\">\n            <xsl:with-param name=\"text\" select=\"$text\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:variable name=\"stripped-text\">\n        <xsl:call-template name=\"strip-indentation\">\n            <!-- strip-indentation requires trailing newline -->\n            <!-- add one here and trim it when done          -->\n            <xsl:with-param name=\"text\" select=\"concat($text, '&#xA;')\" />\n            <xsl:with-param name=\"indent\" select=\"$left-margin\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- produce value without the added newline -->\n    <xsl:value-of select=\"substring($stripped-text, 1, string-length($stripped-text) - 1)\" />\n</xsl:template>\n\n\n<!-- Main template for cleaning up hunks of raw text      -->\n<!--                                                      -->\n<!-- 1) Trim all trailing whitespace                      -->\n<!-- 2) Add carriage return marker to last line           -->\n<!-- 3) Strip all totally blank leading lines             -->\n<!-- 4) Determine indentation of left-most non-blank line -->\n<!-- 5) Strip indentation from all lines                  -->\n<!-- 6) Allow intermediate blank lines                    -->\n\n<xsl:template name=\"sanitize-text\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"preserve-end\" select=\"false()\" />\n    <xsl:param name=\"preserve-start\" select=\"false()\" />\n    <xsl:variable name=\"trimmed-text\">\n        <xsl:call-template name=\"trim-start-lines\">\n            <xsl:with-param name=\"text\">\n                <xsl:call-template name=\"trim-end\">\n                    <xsl:with-param name=\"text\" select=\"$text\" />\n                    <xsl:with-param name=\"preserve-intentional\" select=\"$preserve-end\" />\n                </xsl:call-template>\n            </xsl:with-param>\n            <xsl:with-param name=\"preserve-intentional\" select=\"$preserve-start\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <xsl:call-template name=\"left-align-text\" >\n        <xsl:with-param name=\"text\" select=\"$trimmed-text\" />\n    </xsl:call-template>\n</xsl:template>\n\n<!-- Substrings at last markers               -->\n<!-- XSLT Cookbook, 2nd Edition               -->\n<!-- Copyright 2006, O'Reilly Media, Inc.     -->\n<!-- Recipe 2.4, nearly verbatim, reformatted -->\n<xsl:template name=\"substring-before-last-iterative\">\n    <xsl:param name=\"input\" />\n    <xsl:param name=\"substr\" />\n    <xsl:if test=\"$substr and contains($input, $substr)\">\n        <xsl:variable name=\"temp\" select=\"substring-after($input, $substr)\" />\n        <xsl:value-of select=\"substring-before($input, $substr)\" />\n        <xsl:if test=\"contains($temp, $substr)\">\n            <xsl:value-of select=\"$substr\" />\n            <xsl:call-template name=\"substring-before-last-iterative\">\n                <xsl:with-param name=\"input\" select=\"$temp\" />\n                <xsl:with-param name=\"substr\" select=\"$substr\" />\n            </xsl:call-template>\n        </xsl:if>\n    </xsl:if>\n</xsl:template>\n\n<!-- Substrings at last markers                                 -->\n<!-- Approach - keep throwing away the first half of the string -->\n<!-- until we reach a point where one more slice would result   -->\n<!-- in no more copies of substr. Produce everything that was   -->\n<!-- sliced, then let iterative version handle the rest.        -->\n<!-- Implemented mostly to prevent lxml from dying due to       -->\n<!-- depth limit when processing large strings                  -->\n<xsl:template name=\"substring-before-last\">\n    <xsl:param name=\"input\" />\n    <xsl:param name=\"substr\" />\n\n    <xsl:variable name=\"mid-index\" select=\"ceiling(string-length($input) div 2)\"/>\n    <xsl:variable name=\"front\" select=\"substring($input, 1, $mid-index)\"/>\n    <xsl:variable name=\"back\" select=\"substring($input, $mid-index + 1)\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"contains($back, $substr)\">\n            <!-- Need front for sure, recurse on back -->\n            <xsl:value-of select=\"$front\" />\n            <xsl:call-template name=\"substring-before-last\">\n                <xsl:with-param name=\"input\" select=\"$back\" />\n                <xsl:with-param name=\"substr\" select=\"$substr\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- substr might be in front, or bridging front and back -->\n            <!-- hand off entire string to iterative version          -->\n            <xsl:call-template name=\"substring-before-last-iterative\">\n                <xsl:with-param name=\"input\" select=\"$input\" />\n                <xsl:with-param name=\"substr\" select=\"$substr\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- substring from $input after first instance of $substr         -->\n<!-- if no match, returns original string                          -->\n<!-- similar to substring-after() function but preserves original  -->\n<xsl:template name=\"substring-after-preserve\">\n    <xsl:param name=\"input\"/>\n    <xsl:param name=\"substr\"/>\n    <!-- Extract the string which comes after the first occurrence -->\n    <xsl:variable name=\"temp\" select=\"substring-after($input,$substr)\"/>\n    <xsl:choose>\n        <xsl:when test=\"$temp = ''\">\n            <xsl:value-of select=\"$input\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$temp\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- If the substring is not contained, the first substring-after()   -->\n<!-- will return empty and entire template will return empty.  To     -->\n<!-- get the whole string, prepend $input with $substr prior to using -->\n<xsl:template name=\"substring-after-last\">\n    <xsl:param name=\"input\"/>\n    <xsl:param name=\"substr\"/>\n    <!-- Extract the string which comes after the first occurrence -->\n    <xsl:variable name=\"temp\" select=\"substring-after($input,$substr)\"/>\n    <xsl:choose>\n        <!-- If it still contains the search string then recursively process -->\n        <xsl:when test=\"$substr and contains($temp,$substr)\">\n            <xsl:call-template name=\"substring-after-last\">\n                <xsl:with-param name=\"input\" select=\"$temp\"/>\n                <xsl:with-param name=\"substr\" select=\"$substr\"/>\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$temp\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Duplicating Strings                      -->\n<!-- XSLT Cookbook, 2nd Edition               -->\n<!-- Copyright 2006, O'Reilly Media, Inc.     -->\n<!-- Recipe 2.5, nearly verbatim, reformatted -->\n<xsl:template name=\"duplicate-string\">\n     <xsl:param name=\"text\" />\n     <xsl:param name=\"count\" select=\"1\" />\n     <xsl:choose>\n          <xsl:when test=\"not($count) or not($text)\" />\n          <xsl:when test=\"$count = 1\">\n               <xsl:value-of select=\"$text\" />\n          </xsl:when>\n          <xsl:otherwise>\n               <!-- If $count is odd, append one copy of input -->\n               <xsl:if test=\"$count mod 2\">\n                    <xsl:value-of select=\"$text\" />\n               </xsl:if>\n               <!-- Recursively apply template, after -->\n               <!-- doubling input and halving count  -->\n               <xsl:call-template name=\"duplicate-string\">\n                    <xsl:with-param name=\"text\" select=\"concat($text,$text)\" />\n                    <xsl:with-param name=\"count\" select=\"floor($count div 2)\" />\n               </xsl:call-template>\n          </xsl:otherwise>\n     </xsl:choose>\n</xsl:template>\n\n<!-- Prepending Strings -->\n<!-- Add  count  copies of the string  pad  to  each line of  text -->\n<!-- Presumes  text  has a newline character at the very end       -->\n<xsl:template name=\"prepend-string\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"pad\" />\n    <xsl:param name=\"count\" select=\"1\" />\n    <xsl:variable name=\"bigpad\">\n        <xsl:call-template name=\"duplicate-string\">\n            <xsl:with-param name=\"text\" select=\"$pad\" />\n            <xsl:with-param name=\"count\" select=\"$count\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- Quit when string becomes empty -->\n    <xsl:if test=\"string-length($text)\">\n        <xsl:variable name=\"first-line\" select=\"substring-before($text, '&#xa;')\" />\n        <xsl:value-of select=\"$bigpad\" />\n        <xsl:value-of select=\"$first-line\" />\n        <xsl:text>&#xa;</xsl:text>\n        <!-- recursive call on remaining lines -->\n        <xsl:call-template name=\"prepend-string\">\n            <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\" />\n            <xsl:with-param name=\"pad\" select=\"$bigpad\" />\n            <xsl:with-param name=\"count\" select=\"1\" />\n        </xsl:call-template>\n    </xsl:if>\n</xsl:template>\n\n<!-- Counting Substrings -->\n<xsl:template name=\"count-substring\">\n    <xsl:param name=\"text\" />\n    <xsl:param name=\"word\" />\n    <xsl:param name=\"count\" select=\"'0'\" />\n    <xsl:choose>\n        <xsl:when test=\"not(contains($text, $word))\">\n            <xsl:value-of select=\"$count\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"count-substring\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, $word)\" />\n                <xsl:with-param name=\"word\" select=\"$word\" />\n                <xsl:with-param name=\"count\" select=\"$count + 1\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Remove empty lines -->\n<!-- These are lines with no characters -->\n<!-- at all, just a newline             -->\n<!-- 2017-01-22: UNUSED, UNTESTED, incorporate with caution  -->\n<xsl:template name=\"strip-empty-lines\">\n    <xsl:param name=\"text\" />\n    <xsl:choose>\n        <!-- no more splitting, output $text, empty or not -->\n        <xsl:when test=\"not(contains($text, '&#xa;'))\">\n            <xsl:value-of select=\"$text\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:variable name=\"firstline\" select=\"substring-before($text, '&#xa;')\" />\n            <xsl:choose>\n                <!-- silently drop an empty line, newline already gone -->\n                <xsl:when test=\"not($firstline)\" />\n                <!-- output first line with restored newline -->\n                <xsl:otherwise>\n                    <xsl:value-of select=\"concat($firstline, '&#xa;')\" />\n                </xsl:otherwise>\n            </xsl:choose>\n            <!-- recurse with remainder -->\n            <xsl:call-template name=\"strip-empty-lines\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Merge consecutive empty lines -->\n<!-- In other words, if there are three or more consecutive newline -->\n<!-- characters, replace them with just two newline characters.     -->\n<xsl:template name=\"consolidate-empty-lines\">\n    <xsl:param name=\"text\" />\n    <xsl:choose>\n        <xsl:when test=\"not(contains($text, '&#xa;&#xa;&#xa;'))\">\n            <xsl:value-of select=\"$text\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"consolidate-empty-lines\">\n                <xsl:with-param name=\"text\" select=\"str:replace($text,'&#xa;&#xa;&#xa;','&#xa;&#xa;')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Gobble leading whitespace -->\n<!-- Drop consecutive leading spaces and tabs, only     -->\n<!-- Designed for a single line as input                -->\n<!-- Used after maniplating sentence ending punctuation -->\n<xsl:template name=\"strip-leading-blanks\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\" />\n    <xsl:choose>\n        <!-- if empty, done -->\n        <xsl:when test=\"not($first-char)\" />\n        <!-- first character is space, tab, drop it -->\n        <xsl:when test=\"contains('&#x20;&#x9;', $first-char)\">\n            <xsl:call-template name=\"strip-leading-blanks\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <!-- finished stripping, output as-is -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Shove text left -->\n<!-- Remove all leading whitespace from every line -->\n<!-- Note: very similar to \"sanitize-latex\" below           -->\n<!-- 2017-01-22: UNUSED, UNTESTED, incorporate with caution -->\n<xsl:template name=\"slide-text-left\">\n    <xsl:param name=\"text\" />\n    <xsl:choose>\n        <!-- no more splitting, strip leading whitespace -->\n        <xsl:when test=\"not(contains($text, '&#xa;'))\">\n            <xsl:call-template name=\"strip-leading-blanks\">\n                <xsl:with-param name=\"text\">\n                    <xsl:value-of select=\"$text\" />\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"strip-leading-blanks\">\n                <xsl:with-param name=\"text\" select=\"concat(substring-before($text, '&#xa;'), '&#xa;')\" />\n            </xsl:call-template>\n            <!-- recurse with remainder -->\n            <xsl:call-template name=\"slide-text-left\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\" />\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Strip whitespace after line break -->\n<!-- A hard line-break (newline) in authors' source will typically  -->\n<!-- introduce leading whitespace (spaces) prior to the next line.  -->\n<!-- This template scrubs the spaces, but leaves the newline (which -->\n<!-- can be dealt with by the consumer).  Strategy is to replace    -->\n<!-- <newline><space> by <newline> until it cannot be done anymore. -->\n<xsl:template name=\"reduce-line-break\">\n    <xsl:param name=\"text\"/>\n\n    <xsl:choose>\n        <xsl:when test=\"not(contains($text, '&#xa;&#x20;'))\">\n            <xsl:value-of select=\"$text\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:call-template name=\"reduce-line-break\">\n                <xsl:with-param name=\"text\" select=\"str:replace($text, '&#xa;&#x20;', '&#xa;')\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Sanitize Nemeth Braille -->\n<!-- We receive Nemeth braille from MathJax and Speech Rule Engine (SRE) as -->\n<!--                                                                        -->\n<!--   1. Optional indentation U+2800 for second, and subsequent lines of   -->\n<!--      2D layout display math                                            -->\n<!--   2. Actual content with U+2800 as spaces                              -->\n<!--   3. An optional run of U+2800 to form a uniform right margin for      -->\n<!--      (eventual) 2D physical devices.                                   -->\n<!--                                                                        -->\n<!--  To play nice with liblouis we let U+2800 be an unbreakable space      -->\n<!--  and U+0020 (\"regular\" space) be a breakable space.  So                -->\n<!--    -->\n<!--   1.  We preserve indentation as unbreakable spaces.                   -->\n<!--   2.  We convert content spaces to \"regular\" spaces.  In some cases    -->\n<!--       we make convert them back to unbreakable spaces.                 -->\n<!--   3.  We drop trailing (right margin) whitespace, as unnecessary,      -->\n<!--       and even problematic.                                            -->\n\n\n<!-- Break on newlines.  Trim trailing whitespace, massage whitespace in   -->\n<!-- remainder.  Reconstitute with same patter of newlines.  Note: for     -->\n<!-- single-line braille from SRE there is no indentation and no trailing  -->\n<!-- whitespace for a right margin.                                        -->\n<!-- NB: \"otherwise\" might be simpler if some conditioning was different   -->\n<!-- in the \"when.                                                         -->\n\n<xsl:template name=\"sanitize-nemeth-braille\">\n    <xsl:param name=\"text\"/>\n    <xsl:choose>\n        <xsl:when test=\"contains($text, '&#xa;')\">\n            <xsl:variable name=\"one-line\" select=\"substring-before($text, '&#xa;')\"/>\n            <!-- strip end of a single line of U+2800, a braille empty cell -->\n            <xsl:variable name=\"end-trimmed\">\n                <xsl:call-template name=\"trim-nemeth-trailing-whitespace\">\n                    <xsl:with-param name=\"text\" select=\"$one-line\"/>\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:call-template name=\"convert-nemeth-whitespace\">\n                <xsl:with-param name=\"text\" select=\"$end-trimmed\"/>\n            </xsl:call-template>\n            <!-- restore \"split-out\" newline -->\n            <xsl:text>&#xa;</xsl:text>\n            <!-- recursively process remainder -->\n            <xsl:call-template name=\"sanitize-nemeth-braille\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\"/>\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- last line, needs manipulation -->\n            <xsl:variable name=\"end-trimmed\">\n                <xsl:call-template name=\"trim-nemeth-trailing-whitespace\">\n                    <xsl:with-param name=\"text\" select=\"$text\"/>\n                </xsl:call-template>\n            </xsl:variable>\n            <xsl:call-template name=\"convert-nemeth-whitespace\">\n                <xsl:with-param name=\"text\" select=\"$end-trimmed\"/>\n            </xsl:call-template>\n            <!-- no newline to restore     -->\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Work in from right margin, dropping consecutive U+2800 -->\n<xsl:template name=\"trim-nemeth-trailing-whitespace\">\n   <xsl:param name=\"text\"/>\n   <xsl:variable name=\"last-char\" select=\"substring($text, string-length($text), 1)\" />\n   <xsl:choose>\n        <xsl:when test=\"$last-char = '&#x2800;'\">\n            <xsl:call-template name=\"trim-nemeth-trailing-whitespace\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 1, string-length($text) - 1)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n   </xsl:choose>\n</xsl:template>\n\n<!-- Work in from the left.  The $b-indentation boolean signals that       -->\n<!-- the last character examined was a U+2800 from the run of indentation  -->\n<!-- (which we simply duplicate).  It begins true as the default value,    -->\n<!-- which is not present in initial call.  Once it flips false, it stays  -->\n<!-- false.  Spaces within content convert to \"regular\" spaces.            -->\n<!-- Note: once $b-indentation flips false, we could just do a             -->\n<!-- search/replace on the string to output with a \"value-of\"              -->\n\n<xsl:template name=\"convert-nemeth-whitespace\">\n   <xsl:param name=\"text\"/>\n   <xsl:param name=\"b-indentation\" select=\"true()\"/>\n\n   <xsl:choose>\n        <xsl:when test=\"$text\">\n            <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\"/>\n            <xsl:variable name=\"b-found-indentation\" select=\"$b-indentation and ($first-char = '&#x2800;')\"/>\n            <xsl:choose>\n                <!-- echo a leading U+2800 in the indentation-->\n                <xsl:when test=\"$b-found-indentation\">\n                    <xsl:text>&#x2800;</xsl:text>\n                </xsl:when>\n                <!-- convert space in content into a regular space -->\n                <xsl:when test=\"$first-char = '&#x2800;'\">\n                    <xsl:text>&#x0020;</xsl:text>\n                </xsl:when>\n                <!-- echo any other character -->\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$first-char\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n            <!-- Recurse with all but the first character -->\n            <xsl:call-template name=\"convert-nemeth-whitespace\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2, string-length($text) - 1)\"/>\n                <xsl:with-param name=\"b-indentation\" select=\"$b-found-indentation\"/>\n            </xsl:call-template>\n        </xsl:when>\n        <!-- $text is empty string, done -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- Sanitize LaTex -->\n<!-- We allow authors to include whitespace for readability          -->\n<!--                                                                 -->\n<!-- (1) Newlines used to format complicated math (eg matrices)      -->\n<!-- (2) Newlines used to avoid word-wrapping in editing tools       -->\n<!-- (3) Newlines to support atomic version control changesets       -->\n<!-- (4) Source indentation of above, consonant with XML indentation -->\n<!--                                                                 -->\n<!-- But once we form LaTeX output we want to                        -->\n<!--                                                                 -->\n<!--   (i)   Remove 100% whitespace lines                            -->\n<!--   (ii)  Remove leading whitespace                               -->\n<!--   (iii) Finish without a newline                                -->\n<!--                                                                 -->\n<!-- So we                                                           -->\n<!--                                                                 -->\n<!-- (a) Strip all leading whitespace                                -->\n<!-- (b) Remove any 100% resulting empty lines (newline only)        -->\n<!-- (c) Preserve remaining newlines (trailing after content)        -->\n<!-- (d) Preserve remaining whitespace (eg, within expressions)      -->\n<!-- (e) Take care with trailing characters, except final newline    -->\n<!--                                                                 -->\n<!-- We can do this because of the limited purposes of the           -->\n<!-- m, me, men, md, mdn elements.  The whitespace we strip is not   -->\n<!-- relevant/important, and what we leave does not change output    -->\n<xsl:template name=\"sanitize-latex\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\" />\n    <xsl:choose>\n        <!-- empty, end recursion -->\n        <xsl:when test=\"$first-char = ''\" />\n        <!-- first character is whitespace, including newline -->\n        <!-- silently drop it as we recurse on remainder      -->\n        <xsl:when test=\"contains($whitespaces, $first-char)\">\n            <xsl:call-template name=\"sanitize-latex\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <!-- content followed by newline                           -->\n        <!-- split, preserve newline, output, and recurse, but     -->\n        <!-- drop a newline that only protects trailing whitespace -->\n        <xsl:when test=\"contains($text, '&#xa;')\">\n            <xsl:value-of select=\"substring-before($text, '&#xa;')\" />\n            <xsl:variable name=\"remainder\" select=\"substring-after($text, '&#xa;')\" />\n            <xsl:choose>\n                <xsl:when test=\"normalize-space($remainder) = ''\" />\n                <xsl:otherwise>\n                    <xsl:text>&#xa;</xsl:text>\n                    <xsl:call-template name=\"sanitize-latex\">\n                        <xsl:with-param name=\"text\" select=\"$remainder\" />\n                    </xsl:call-template>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- content, no following newline -->\n        <!-- output in full, end recursion -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- This collects \"clause-ending\" punctuation     -->\n<!-- from the *front* of a text node.  It does not -->\n<!-- change the text node, but simply outputs the  -->\n<!-- punctuation for use by another template       -->\n<xsl:template name=\"leading-clause-punctuation\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\" />\n    <xsl:choose>\n        <!-- empty, quit -->\n        <xsl:when test=\"not($first-char)\" />\n        <!-- if punctuation, output and recurse -->\n        <!-- else silently quit recursion       -->\n        <xsl:when test=\"contains($clause-ending-marks, $first-char)\">\n            <xsl:value-of select=\"$first-char\" />\n            <xsl:call-template name=\"leading-clause-punctuation\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <!-- consecutive only, stop collecting -->\n        <xsl:otherwise />\n    </xsl:choose>\n</xsl:template>\n\n<!-- If we absorb punctuation, we need to scrub it by    -->\n<!-- examining and manipulating the text node with       -->\n<!-- those characters.  We drop consecutive punctuation. -->\n<xsl:template name=\"drop-clause-punctuation\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\" />\n    <xsl:choose>\n        <!-- if empty, done -->\n        <xsl:when test=\"not($first-char)\" />\n        <!-- first character ends sentence, drop it, recurse -->\n        <xsl:when test=\"contains($clause-ending-marks, $first-char)\">\n            <xsl:call-template name=\"drop-clause-punctuation\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <!-- no more punctuation, output as-is -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Remove consecutive run of blanks and  -->\n<!-- newlines in first portion of a string -->\n<!-- Performance audited 2024-12-15 - this is so frequently called -->\n<!-- in the simple case (nothing to strip) that just about any     -->\n<!-- optimization for the general case ends up being slower.       -->\n<xsl:template name=\"strip-leading-whitespace\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"first-char\" select=\"substring($text, 1, 1)\" />\n    <xsl:choose>\n        <!-- if empty, quit -->\n        <xsl:when test=\"not($first-char)\" />\n        <!-- if first character is whitespace, drop it -->\n        <xsl:when test=\"contains($whitespaces, $first-char)\">\n            <xsl:call-template name=\"strip-leading-whitespace\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 2)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <!-- else finished stripping, output as-is -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Remove consecutive run of blanks and -->\n<!-- newlines in last portion of a string -->\n<!-- Performance audited 2024-12-15 - this is so frequently called -->\n<!-- in the simple case (nothing to strip) that just about any     -->\n<!-- optimization for the general case ends up being slower.       -->\n<xsl:template name=\"strip-trailing-whitespace\">\n    <xsl:param name=\"text\" />\n    <xsl:variable name=\"last-char\" select=\"substring($text, string-length($text), 1)\" />\n    <xsl:choose>\n        <!-- if empty, quit -->\n        <xsl:when test=\"not($last-char)\" />\n        <!-- if last character is whitespace, drop it -->\n        <xsl:when test=\"contains($whitespaces, $last-char)\">\n            <xsl:call-template name=\"strip-trailing-whitespace\">\n                <xsl:with-param name=\"text\" select=\"substring($text, 1, string-length($text)-1)\" />\n            </xsl:call-template>\n        </xsl:when>\n        <!-- else finished stripping, output as-is -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- spurious newlines introduce whitespace on either side -->\n<!-- we split at newlines, strip consecutive whitesapce on either side, -->\n<!-- and replace newlines by spaces (could restore a single newline) -->\n<xsl:template name=\"strip-newlines\">\n    <xsl:param name=\"text\" />\n    <xsl:choose>\n        <!-- if has newline, modify newline-free front portion -->\n        <!-- replace splitting newline with new separator      -->\n        <!-- modify trailing portion, and recurse with it      -->\n        <xsl:when test=\"contains($text, '&#xa;')\">\n            <!-- clean trailing portion of left half -->\n            <xsl:call-template name=\"strip-trailing-whitespace\">\n                <xsl:with-param name=\"text\" select=\"substring-before($text, '&#xa;')\" />\n            </xsl:call-template>\n            <!-- restore a separator, blank now -->\n            <!-- Note: this could be a newline, perhaps optionally (whitespace=\"breaks\") -->\n            <!-- Note: this could be \" %\\n\" in LaTeX output to be super explicit -->\n            <xsl:text> </xsl:text>\n            <!-- recurse with modified right half -->\n            <xsl:call-template name=\"strip-newlines\">\n                <xsl:with-param name=\"text\">\n                    <!-- clean leading portion of right half -->\n                    <xsl:call-template name=\"strip-leading-whitespace\">\n                        <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\" />\n                    </xsl:call-template>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:when>\n        <!-- else finished stripping, output as-is -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$text\" />\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- JSON Escaped Strings -->\n<!-- Convert a string, just prior to dropping it into a  -->\n<!-- JSON data structure, so this presumes nothing       -->\n<!-- special has been done with the contents before-hand -->\n<!-- In order converted, using the standard JSON names:  -->\n<!--     reverse solidus (backslash), solidus (slash),   -->\n<!--     quotation mark, backspace, horizontal tab,      -->\n<!--     newline, form feed, carriage return             -->\n<!-- Escaping solidus (forward slash) is only necessary  -->\n<!-- for <\\ inside a script tag (or similar?)  It makes  -->\n<!-- URLs ugly, but we do it anyway so we don't get bit. -->\n<!-- Strictly needed:  backslash, double quote, newline. -->\n<!-- XSLT3:                                              -->\n<!-- But XML 1.0 does not allow x08 (backspace) and x0c  -->\n<!-- (form feed) so we ignore them for now.  Perhaps see -->\n<!-- https://stackoverflow.com/questions/404107/         -->\n<!-- why-are-control-characters-illegal-in-xml-1-0       -->\n\n<!-- First define the replacements. These must be in     -->\n<!-- order as search + replace pairs                     -->\n<xsl:variable name=\"json-replacements\">\n    <search>\\</search>\n    <replace>\\\\</replace>\n    <search>/</search>\n    <replace>\\/</replace>\n    <search><xsl:value-of select=\"string('&#x0a;')\"/></search>\n    <replace>\\n</replace>\n    <search><xsl:value-of select=\"string('&#x09;')\"/></search>\n    <replace>\\t</replace>\n    <search><xsl:value-of select=\"string('&#x0d;')\"/></search>\n    <replace>\\r</replace>\n    <search><xsl:value-of select=\"string('&#x22;')\"/></search>\n    <replace>\\&#x22;</replace>\n</xsl:variable>\n<xsl:variable name=\"json-replacements-search-set\" select=\"exsl:node-set($json-replacements)/search\" />\n<xsl:variable name=\"json-replacements-replace-set\" select=\"exsl:node-set($json-replacements)/replace\" />\n\n<xsl:template name=\"escape-json-string\">\n    <xsl:param name=\"text\"/>\n\n    <xsl:value-of select=\"str:replace($text, $json-replacements-search-set, $json-replacements-replace-set)\" />\n</xsl:template>\n\n<xsl:template name=\"quote-string\">\n    <xsl:param name=\"text\" />\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\"$text\" />\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"quote-strip-string\">\n    <xsl:param name=\"text\" />\n    <xsl:text>\"</xsl:text>\n    <xsl:call-template name=\"strip-newlines\">\n        <xsl:with-param name=\"text\" select=\"$text\" />\n    </xsl:call-template>\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"escape-quote-string\">\n    <xsl:param name=\"text\" />\n    <xsl:call-template name=\"quote-string\">\n        <xsl:with-param name=\"text\">\n            <xsl:call-template name=\"escape-json-string\">\n                <xsl:with-param name=\"text\" select=\"$text\"/>\n            </xsl:call-template>\n        </xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<xsl:template name=\"escape-quote-xml\">\n    <xsl:param name=\"xml_content\"/>\n    <xsl:variable name=\"xml_text\">\n        <xsl:apply-templates select=\"exsl:node-set($xml_content)\" mode=\"xml-to-string\"/>\n    </xsl:variable>\n    <xsl:call-template name=\"escape-quote-string\">\n        <xsl:with-param name=\"text\" select=\"$xml_text\"/>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- File Extension -->\n<!-- Input: full filename                       -->\n<!-- Output: extension (no period), lowercase'd -->\n<!-- Note: appended query string is stripped    -->\n<xsl:template name=\"file-extension\">\n    <xsl:param name=\"filename\" />\n    <!-- Add a question mark, then grab leading substring -->\n    <!-- This will fail if \"?\" is encoded                 -->\n    <xsl:variable name=\"no-query-string\" select=\"substring-before(concat($filename, '?'), '?')\" />\n    <!-- get extension after last period   -->\n    <!-- will return empty if no extension -->\n    <xsl:variable name=\"extension\">\n        <xsl:call-template name=\"substring-after-last\">\n            <xsl:with-param name=\"input\" select=\"$no-query-string\" />\n            <xsl:with-param name=\"substr\" select=\"'.'\" />\n        </xsl:call-template>\n    </xsl:variable>\n    <!-- to lowercase -->\n    <xsl:value-of select=\"translate($extension, &UPPERCASE;, &LOWERCASE;)\" />\n</xsl:template>\n\n<!-- ################# -->\n<!-- String Utilities -->\n<!-- ################# -->\n\n<!-- Find a delimiter: find a character that can be wrapped around a string -->\n<!-- Take a string as one input and a list of characters as another input   -->\n<!-- Return the first character from the list that is not in the string     -->\n<xsl:template name=\"find-unused-character\">\n    <xsl:param name=\"string\" select=\"''\"/>\n    <!-- set of characters that are candidates for use as delimiters -->\n    <!-- with empty string as default, failure is guaranteed         -->\n    <xsl:param name=\"charset\" select=\"''\"/>\n    <!-- If a character in $charset is inside the string, then we do   -->\n    <!-- not want to use it as a delimiter.  The translate() function  -->\n    <!-- operates so as to morph its first argument, $charset.  Called -->\n    <!-- this way, each character of the $charset that is in $string,  -->\n    <!-- will be replaced by an empty string.  So any character of     -->\n    <!-- $charset that survives un-translated, is not in $string.      -->\n    <xsl:variable name=\"characters\" select=\"translate($charset, $string, '')\"/>\n\n    <!-- We fail, big time, or elect to use the first available character -->\n    <xsl:choose>\n        <xsl:when test=\"$characters = ''\">\n            <xsl:message>PTX:FATAL:   Unable to find an unused character in:&#xa;<xsl:value-of select=\"$string\" />&#xa;using characters from: <xsl:value-of select=\"$charset\" /></xsl:message>\n            <xsl:apply-templates select=\".\" mode=\"location-report\" />\n            <xsl:message terminate=\"yes\">             That's fatal.  Sorry.  Quitting...</xsl:message>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"substring($characters, 1, 1)\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Token Utilities -->\n<!-- ############### -->\n\n<!-- The \"tokenize()\" function could replace this? -->\n<!-- And then dependence on EXSL might be removed. -->\n\n<!-- Routines that can be employed in a recursive      -->\n<!-- formulation to process a string (attribute value, -->\n<!-- usually) that is separated by spaces or by commas -->\n\n<!-- Replace commas by blanks, constrict blanks to singletons, -->\n<!-- add trailing blank for last step of iteration             -->\n<xsl:template name=\"prepare-token-list\">\n    <xsl:param name=\"token-list\" />\n    <xsl:value-of select=\"concat(normalize-space(str:replace($token-list, ',', ' ')), ' ')\" />\n</xsl:template>\n\n<!-- Now, to work through the $token-list                          -->\n<!--   1. If $token-list = '', end recursion                       -->\n<!--   2. Process substring-before($token-list, ' ') as next token -->\n<!--   3. Pass substring-after($token-list, ' ') recursively       -->\n\n<!-- Generate a unique set of tokens from a given string                  -->\n<!-- Final structure will consist of set of <token>value</token> elements -->\n<!-- Produces a RTF, so result must be converted to nodeset               -->\n<xsl:template name=\"unique-token-set\">\n    <xsl:param name=\"s\" />\n    <xsl:param name=\"delimiter\" select=\"', '\" />\n    <xsl:variable name=\"token-list\" select=\"str:tokenize($s, $delimiter)\"/>\n    <xsl:variable name=\"token-set-temp\" select=\"set:distinct($token-list)\"/>\n    <!-- Next step is currently a no-op as str:tokenize drops empty strings. But that -->\n    <!-- appears to not be part of the spec. So for safety, get difference with       -->\n    <!-- a nodeset composed of a single empty token                                   -->\n    <xsl:variable name=\"token-set\" select=\"set:difference($token-set-temp, str:tokenize(''))\"/>\n    <xsl:copy-of select=\"$token-set\" />\n</xsl:template>\n\n\n<!-- ################################## -->\n<!-- Runestone Services General Support -->\n<!-- ################################## -->\n\n<!-- Some items that are in play relative to Runestone Services -->\n<!-- that are independendt of dynamic/static and which can      -->\n<!-- promote consistence if defined only once.  End game is the -->\n<!-- text of a datafile, so appropriate here.  However, they    -->\n<!-- are a bit different than above in spirit, as they involve  -->\n<!-- global variables, file manipulations, and are not named    -->\n<!-- templates generally.  They are necessary to create static  -->\n<!-- versions of Runestone datafile elements during the         -->\n<!-- assembly phase, and the enhanced-source stylesheet avoids  -->\n<!-- using -common, hence movement here on 2023-10-30.          -->\n\n<!-- Datafiles have default rows and columns -->\n<xsl:variable name=\"datafile-default-rows\" select=\"20\"/>\n<xsl:variable name=\"datafile-default-cols\" select=\"60\"/>\n\n<!-- Get a \"view\" of a chunk of text, from the \"upper-left corner\".  -->\n<!-- Motivation is a static version of a (large) datafile of text    -->\n<!-- for interactive programs to consume.                            -->\n<!--   text: the text, we provide a version hit by \"santitize-tex\"   -->\n<!--         above, which pulls left, and drops leading blank lines. -->\n<!--   nrows: the number of (initial) lines output                   -->\n<!--   ncols: the number of (initial) characters on each line        -->\n<!--          if not provided, the entire line is output             -->\n<!--                                                                 -->\n<!-- NB: there can be excess blank lines (nrows in not a maximum)    -->\n<!-- TODO: could be extended to have a \"start\" location other than   -->\n<!-- upper left corner.  Consume initial lines with no action,       -->\n<!-- decrementing start line, then switch to outputing lines         -->\n<!-- themselves.  Substring selection should be obvious.             -->\n<xsl:template name=\"text-viewport\">\n    <xsl:param name=\"text\"/>\n    <xsl:param name=\"nrows\"/>\n    <xsl:param name=\"ncols\" select=\"''\"/>\n\n    <xsl:choose>\n        <!-- decremented (or initialized) to zero or below -->\n        <xsl:when test=\"$nrows &lt; 1\"/>\n        <!-- produce a line and recurse -->\n        <xsl:otherwise>\n            <xsl:variable name=\"line\" select=\"substring-before($text, '&#xa;')\"/>\n            <xsl:choose>\n                <!-- sentinel: output whole line -->\n                <xsl:when test=\"$ncols = ''\">\n                    <xsl:value-of select=\"$line\"/>\n                </xsl:when>\n                <!-- within length limit: output whole line -->\n                <xsl:when test=\"string-length($line) &lt;= $ncols\">\n                    <xsl:value-of select=\"$line\"/>\n                </xsl:when>\n                <!-- truncate line to value of $ncols-1, and add  -->\n                <!-- a simple right arrow to indicate truncation  -->\n                <xsl:otherwise>\n                    <xsl:value-of select=\"substring($line, 1, $ncols - 1)\"/>\n                    <!-- Unicode Character 'RIGHTWARDS ARROW' -->\n                    <xsl:text>&#x2192;</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n            <!-- restore the missing line-break -->\n            <xsl:value-of select=\"'&#xa;'\"/>\n            <!-- rceurse, with remainder of text, requesting  -->\n            <!-- one less row, and simply passing along ncols -->\n            <xsl:call-template name=\"text-viewport\">\n                <xsl:with-param name=\"text\" select=\"substring-after($text, '&#xa;')\"/>\n                <xsl:with-param name=\"nrows\" select=\"$nrows - 1\"/>\n                <xsl:with-param name=\"ncols\" select=\"$ncols\"/>\n            </xsl:call-template>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-text.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl date str\"\n>\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n\n<!-- This is a conversion to \"plain\" text.  Upon initiation it is mainly -->\n<!-- meant as a foundation for various simple conversions to things like -->\n<!-- doctests or JSON table-of-contents.  But it is designed as a \"real\" -->\n<!-- conversion.  But obviously, there are many PreTeXt constructions    -->\n<!-- which cannot be realized in text.                                   -->\n<!--                                                                     -->\n<!-- Goal is to make it so *no* conversion imports \"pretext-common.xsl\" -->\n<!-- since some foundational conversion (such as this one) can be the    -->\n<!-- basis of the conversion and will import the foundationa one instead.-->\n<!--                                                                     -->\n<!-- Initial work might be to implement certain characters as 7-bit      -->\n<!-- ASCII and as Unicode, under the control of a switch.  For example,  -->\n<!-- the \"q\" element could have dumb generic quotes or smart left and    -->\n<!-- right quotes.                                                       -->\n\n<xsl:output method=\"text\"/>\n\n<!-- if chunking, this is the extension of the files produced -->\n<xsl:variable name=\"file-extension\" select=\"'.txt'\"/>\n\n\n<!-- Entry Template -->\n<!-- Kickstart the process, ignore \"docinfo\"  -->\n<xsl:template match=\"/\">\n    <xsl:call-template name=\"banner-warning\">\n        <xsl:with-param name=\"warning\">Conversion to simple text is incomplete&#xa;But importing this stylesheet could be helpful for certain purposes&#xa;Override the entry template to make this warning go away</xsl:with-param>\n    </xsl:call-template>\n    <xsl:apply-templates select=\"$document-root\"/>\n</xsl:template>\n\n<!-- TEMPORARY: defined to stop errors, need stubs in -common -->\n<xsl:template name=\"inline-warning\"/>\n<xsl:template name=\"margin-warning\"/>\n<xsl:template match=\"sage\" mode=\"sage-active-markup\"/>\n<xsl:template name=\"sage-display-markup\"/>\n\n<!-- ######### -->\n<!-- Divisions -->\n<!-- ######### -->\n\n<xsl:template match=\"part|chapter|section|subsection|subsubsection|exercises|reading-questions|worksheet|handout|glossary|references|solutions\">\n    <!-- empty line prior -->\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <!-- Title is required (or default is supplied) -->\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- metadata-ish, eg \"title\", should be killed by default -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- ################ -->\n<!-- Cross-References -->\n<!-- ################ -->\n\n<!-- Nothing fancy (like in LaTeX conversion) for  -->\n<!-- the number of the target of a cross-reference -->\n<xsl:template match=\"*\" mode=\"xref-number\">\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n</xsl:template>\n\n<!-- No good way to link/direct to target, so we just   -->\n<!-- parrot the text produced typically for a clickable -->\n<xsl:template match=\"xref\" mode=\"xref-link\">\n    <xsl:param name=\"target\"/>\n    <xsl:param name=\"content\"/>\n\n    <xsl:value-of select=\"$content\"/>\n</xsl:template>\n\n<!-- Characters -->\n\n<!-- Idea: variables from \"choose\" on $text.encoding variable      -->\n<!-- to use cheap ASCII versions (or stand-ins, like [PER-MILLE]), -->\n<!-- versus more realistic Unicode versions                        -->\n\n<!-- N.B. Quotation marks are localized by language in other       -->\n<!-- conversions (HTML, LaTeX) and skipped in other conversions    -->\n<!-- (braille).  They would likely need to use Unicode characters  -->\n<!-- like  «, »  rather than cheap 7-bit ASCII versions, like      -->\n<!-- <<, >>.  So this would force the issue of a Unicode (8-bit    -->\n<!-- and more-than) switch and supporting that.  So as of          -->\n<!-- 2026-02-18 we are punting.                                    -->\n\n<!-- ASCII we just use a regular space -->\n<xsl:template name=\"nbsp-character\">\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n<xsl:template name=\"ndash-character\">\n    <xsl:text>-</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"mdash-character\">\n    <xsl:text>-</xsl:text>\n</xsl:template>\n\n<!-- The abstract template for \"mdash\" consults a publisher option -->\n<!-- for thin space, or no space, surrounding an em-dash.  So the  -->\n<!-- \"thin-space-character\" is needed for that purpose, and does   -->\n<!-- not have an associated empty PTX element.                     -->\n\n<!-- ASCII we just use a full space -->\n<xsl:template name=\"thin-space-character\">\n    <xsl:text> </xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"lsq-character\">\n    <xsl:text>'</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"rsq-character\">\n    <xsl:text>'</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"lq-character\">\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"rq-character\">\n    <xsl:text>\"</xsl:text>\n</xsl:template>\n\n<xsl:template name=\"ellipsis-character\">\n    <xsl:text>...</xsl:text>\n</xsl:template>\n\n<!-- Math -->\n<!-- Until we think of something better, we just -->\n<!-- bracket raw LaTeX that appears inline       -->\n<!-- This can be overridden, if necessary        -->\n<xsl:template name=\"inline-math-wrapper\">\n    <xsl:param name=\"math\"/>\n    <xsl:text>[</xsl:text>\n    <xsl:value-of select=\"$math\"/>\n    <xsl:text>]</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"p\">\n    <!-- space with a blank line if not -->\n    <!-- first in a structured element  -->\n    <!-- barring metadata-ish           -->\n    <xsl:if test=\"preceding-sibling::*[not(self::title)]\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <!-- mixed-content -->\n    <xsl:apply-templates/>\n    <!-- end onto a newline -->\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############ -->\n<!-- Environments -->\n<!-- ############ -->\n\n<xsl:template match=\"&REMARK-LIKE;\">\n    <!-- space with a blank line if not -->\n    <!-- first in a structured element  -->\n    <!-- barring metadata-ish           -->\n    <xsl:if test=\"preceding-sibling::*[not(self::title)]\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <xsl:if test=\"title\">\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- structured -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<xsl:template match=\"&EXAMPLE-LIKE;\">\n    <!-- space with a blank line if not -->\n    <!-- first in a structured element  -->\n    <!-- barring metadata-ish           -->\n    <xsl:if test=\"preceding-sibling::*[not(self::title)]\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <xsl:if test=\"title\">\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"statement\">\n            <xsl:apply-templates select=\"statement\"/>\n            <xsl:apply-templates select=\"&SOLUTION-LIKE;\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"*[self::hint|self::answer|self::solution]\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"&THEOREM-LIKE;\">\n    <!-- space with a blank line if not -->\n    <!-- first in a structured element  -->\n    <!-- barring metadata-ish           -->\n    <xsl:if test=\"preceding-sibling::*[not(self::title)]\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <xsl:if test=\"title\">\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    </xsl:if>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"statement\">\n            <xsl:apply-templates select=\"statement\"/>\n            <xsl:apply-templates select=\"&PROOF-LIKE;\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"*\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- General-purpose container, we  -->\n<!-- do not enforce possibilities -->\n<xsl:template match=\"statement\">\n    <!-- structured -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- THEOREM-LIKE only -->\n<xsl:template match=\"&PROOF-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text>.&#xa;</xsl:text>\n    <!-- structured -->\n    <xsl:apply-templates select=\"*\"/>\n</xsl:template>\n\n<!-- ######### -->\n<!-- Exercises -->\n<!-- ######### -->\n\n<xsl:template match=\"exercise\">\n    <!-- space with a blank line if not -->\n    <!-- first in a structured element  -->\n    <!-- barring metadata-ish           -->\n    <xsl:if test=\"preceding-sibling::*[not(self::title)]\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n    <xsl:text>.</xsl:text>\n    <xsl:if test=\"title\">\n        <xsl:text> (</xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n        <xsl:text>)</xsl:text>\n    </xsl:if>\n    <xsl:text> </xsl:text>\n    <xsl:choose>\n        <xsl:when test=\"statement\">\n            <xsl:apply-templates select=\"statement\"/>\n            <xsl:apply-templates select=\"&SOLUTION-LIKE;\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"*[self::hint|self::answer|self::solution]\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"&SOLUTION-LIKE;\">\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:variable name=\"the-number\">\n        <xsl:apply-templates select=\".\" mode=\"non-singleton-number\" />\n    </xsl:variable>\n    <!-- An empty value means element is a singleton -->\n    <!-- else the serial number comes through        -->\n    <xsl:if test=\"not($the-number = '')\">\n        <xsl:text> </xsl:text>\n        <xsl:apply-templates select=\".\" mode=\"serial-number\" />\n    </xsl:if>\n    <xsl:text>. </xsl:text>\n    <xsl:apply-templates select=\"*\"/>\n    <!-- not needed if structured -->\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<!-- ############### -->\n<!-- Captioned Items -->\n<!-- ############### -->\n\n<xsl:template match=\"figure\">\n    <!-- space with a blank line if not -->\n    <!-- first in a structured element  -->\n    <!-- barring metadata-ish           -->\n    <xsl:if test=\"preceding-sibling::*[not(self::title)]\">\n        <xsl:text>&#xa;</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\".\" mode=\"type-name\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"number\"/>\n    <xsl:text>: </xsl:text>\n    <xsl:apply-templates select=\"caption\"/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"caption\">\n    <!-- mixed-content -->\n    <xsl:apply-templates/>\n</xsl:template>\n\n<!-- ##### -->\n<!-- Lists -->\n<!-- ##### -->\n\n<xsl:template match=\"ul|ol|dl\">\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:apply-templates select=\"li\"/>\n</xsl:template>\n\n<xsl:template match=\"ol/li\">\n    <xsl:apply-templates select=\".\" mode=\"serial-number\"/>\n    <xsl:text>. </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"ul/li\">\n    <xsl:text>* </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"dl/li\">\n    <xsl:apply-templates select=\".\" mode=\"title-full\"/>\n    <xsl:text> </xsl:text>\n    <xsl:apply-templates/>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-units.xsl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<xsl:stylesheet version=\"1.0\"\n xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This file contains unit-related abbreviations, such as 'kilo' => 'k'           -->\n<!-- and 'meter' => 'm'. These are used by the quantity/unit and quantity/per       -->\n<!-- elements for HMTL output, and possibly other places in the future.             -->\n<!-- For tex, the siunitx package knows \\kilo, \\meter, etc. If there is a unit      -->\n<!-- that siunitx does not know, the abbreviations here are used to add it to       -->\n<!-- the preamble.                                                                  -->\n<!-- Future enhancements (which maybe happen in other stylesheets, not here):       -->\n<!-- 1. If MathJax siunitx extension is functional, start using it for HTML.        -->\n<!-- 2. Make use of siunitx's \\of{}.                                                -->\n<!-- 3. Create a docinfo element that adds custom units.                            -->\n\n<!-- Unit prefixes (the prefix attribute in a unit or per tag)                      -->\n<!-- SI prefixes                                                                    -->\n<xsl:variable name=\"prefixes\">\n    <prefix full='yocto'                short='y'/>\n    <prefix full='zepto'                short='z'/>\n    <prefix full='atto'                 short='a'/>\n    <prefix full='femto'                short='f'/>\n    <prefix full='pico'                 short='p'/>\n    <prefix full='nano'                 short='n'/>\n    <prefix full='micro'                short='&#xb5;'/>\n    <prefix full='milli'                short='m'/>\n    <prefix full='centi'                short='c'/>\n    <prefix full='deci'                 short='d'/>\n    <prefix full='deca'                 short='da'/>\n    <prefix full='deka'                 short='da'/>\n    <prefix full='hecto'                short='h'/>\n    <prefix full='kilo'                 short='k'/>\n    <prefix full='mega'                 short='M'/>\n    <prefix full='giga'                 short='G'/>\n    <prefix full='tera'                 short='T'/>\n    <prefix full='peta'                 short='P'/>\n    <prefix full='exa'                  short='E'/>\n    <prefix full='zetta'                short='Z'/>\n    <prefix full='yotta'                short='Y'/>\n</xsl:variable>\n\n\n<!-- Unit bases  (the base attribute in a unit or per tag)                          -->\n<xsl:variable name=\"bases\">\n<!-- SI fundamental units                                                           -->\n    <base full='ampere'                 short='A'/>\n    <base full='candela'                short='cd'/>\n    <base full='kelvin'                 short='K'/>\n    <base full='gram'                   short='g'/>\n    <base full='meter'                  short='m'/>\n    <base full='metre'                  short='m'/>\n    <base full='mole'                   short='mol'/>\n    <base full='second'                 short='s'/>\n\n<!-- SI derived units and non-SI units with a simple relationship to SI units       -->\n    <!-- Radioactivity                                                              -->\n    <base full='becquerel'              short='Bq'/>\n    <base full='gray'                   short='Gy'/>\n    <base full='sievert'                short='Sv'/>\n\n    <!-- Temperature                                                                -->\n    <base full='degreeCelsius'          short='&#176;C'/>\n    <base full='celsius'                short='&#176;C'/>\n\n    <!-- Elecro-magnetic                                                            -->\n    <base full='coulomb'                short='C'/>\n    <base full='henry'                  short='H'/>\n    <base full='ohm'                    short='&#8486;'/>\n    <base full='siemens'                short='S'/>\n    <base full='tesla'                  short='T'/>\n    <base full='volt'                   short='V'/>\n    <base full='electronvolt'           short='eV'/>\n    <base full='weber'                  short='Wb'/>\n\n    <!-- Frequency and Catalytic Activity                                           -->\n    <base full='hertz'                  short='Hz'/>\n    <base full='katal'                  short='kat'/>\n\n    <!-- Energy, Work, Power, Force                                                 -->\n    <base full='joule'                  short='J'/>\n    <base full='newton'                 short='N'/>\n    <base full='pascal'                 short='Pa'/>\n    <base full='watt'                   short='W'/>\n\n    <!-- Candela-related                                                            -->\n    <base full='lumen'                  short='lm'/>\n    <base full='lux'                    short='lx'/>\n\n    <!-- Angle (2D and 3D)                                                          -->\n    <base full='radian'                 short='rad'/>\n    <base full='steradian'              short='sr'/>\n    <base full='degree'                 short='&#176;'/>\n    <base full='arcminute'              short='&#8242;'/>\n    <base full='arcsecond'              short='&#8243;'/>\n\n    <!-- Time                                                                       -->\n    <base full='day'                    short='d'/>\n    <base full='hour'                   short='h'/>\n    <base full='minute'                 short='min'/>\n\n    <!-- Area                                                                       -->\n    <base full='hectare'                short='ha'/>\n\n    <!-- Volume                                                                     -->\n    <base full='liter'                  short='L'/>\n    <base full='litre'                  short='l'/>\n\n    <!-- Mass                                                                       -->\n    <base full='tonne'                  short='t'/>\n\n    <!-- Percent                                                                    -->\n    <base full='percent'                short='&#37;'/>\n\n<!-- completely non-SI units; these are not part of the siunitx package, so they    -->\n<!-- need siunitx='none'. The value of 'short' will be used as the macro output,    -->\n<!-- unless something else is specified. This is necessary if the value of 'short'  -->\n<!-- has unusual characters, as with Fahrenheit below.                              -->\n    <!-- Temperature                                                                -->\n    <base full='degreeFahrenheit'       short='&#176;F'     siunitx='\\SIUnitSymbolDegree{F}' />\n    <base full='fahrenheit'             short='&#176;F'     siunitx='\\degreeFahrenheit'      />\n\n    <!-- Weight, Force                                                              -->\n    <base full='pound'                  short='lb'          siunitx='none' />\n    <base full='ounce'                  short='oz'          siunitx='none' />\n    <base full='ton'                    short='T'           siunitx='none' />\n\n    <!-- Length                                                                     -->\n    <base full='foot'                   short='ft'          siunitx='none' />\n    <base full='inch'                   short='in'          siunitx='none' />\n    <base full='yard'                   short='yd'          siunitx='none' />\n    <base full='mile'                   short='mi'          siunitx='none' />\n\n    <!-- Time                                                                       -->\n    <base full='millennium'             short='millennium'  siunitx='none' />\n    <base full='century'                short='century'     siunitx='none' />\n    <base full='decade'                 short='decade'      siunitx='none' />\n    <base full='year'                   short='yr'          siunitx='none' />\n    <base full='month'                  short='mo'          siunitx='none' />\n    <base full='week'                   short='wk'          siunitx='none' />\n\n    <!-- Speed                                                                      -->\n    <base full='kilometerperhour'       short='kph'         siunitx='none' />\n    <base full='kilometreperhour'       short='kph'         siunitx='none' />\n    <base full='mileperhour'            short='mph'         siunitx='none' />\n\n    <!-- Volume                                                                     -->\n    <base full='gallon'                 short='gal'         siunitx='none' />\n    <base full='cubiccentimeter'        short='cc'          siunitx='none' />\n    <base full='tablespoon'             short='tbsp'        siunitx='none' />\n    <base full='teaspoon'               short='tsp'         siunitx='none' />\n    <base full='cup'                    short='c'           siunitx='none' />\n    <base full='pint'                   short='pt'          siunitx='none' />\n    <base full='quart'                  short='qt'          siunitx='none' />\n    <base full='fluidounce'             short='fl&#8239;oz'  siunitx='none' />\n\n    <!-- Distance per Volume                                                        -->\n    <base full='milepergallon'          short='mpg'         siunitx='none' />\n    <base full='kilometerpergallon'     short='kpg'         siunitx='none' />\n\n    <!-- Frequency and Catalytic Activity                                           -->\n    <base full='revolution'             short='rev'         siunitx='none' />\n    <base full='revolutionperminute'    short='rpm'         siunitx='none' />\n    <base full='cycle'                  short='cycle'       siunitx='none' />\n\n    <!-- Storage, Memory, and Transfer Rate                                         -->\n    <base full='bit'                    short='b'           siunitx='none' />\n    <base full='byte'                   short='B'           siunitx='none' />\n    <base full='bitpersecond'           short='bps'         siunitx='none' />\n    <base full='bytepersecond'          short='Bps'         siunitx='none' />\n\n</xsl:variable>\n\n\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-view-source.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2019 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    extension-element-prefixes=\"exsl\"\n>\n\n<!--                       IMPORTANT                         -->\n<!-- The \"sanitize-text\" template can be called on sizeable  -->\n<!-- chunks of text, in a recursive manner, and then looks   -->\n<!-- like runaway recursion.  \"xsltproc\" has a \"-maxdepth\"   -->\n<!-- argument.  For the sample article, we increased it from -->\n<!-- 3000 to 6000 to prevent a spurious error.               -->\n\n<!-- We assume the source is in great shape, typically having been -->\n<!-- created by a pretty-printing tool.  So we keep all the        -->\n<!-- whitespace as being of interest to human reader.   This is    -->\n<!-- the beauty of a separate stylesheet here:                     -->\n<!--   (a) we can override the strip-space declarations            -->\n<!--       of the main HTML stylesheet                             -->\n<!--   (b) the election of the addition of source annotations      -->\n<!--       is made by simply using a different stylesheet          -->\n<xsl:preserve-space elements=\"*\"/>\n<!-- But whitespace in the root element gets regurgitated          -->\n<!-- outside/before/above any file writing and ends up on the      -->\n<!-- terminal.  So we kill it with no loss.                        -->\n<xsl:strip-space elements=\"pretext\"/>\n\n<!-- Below, we use a purpose-built attribute to match elements which    -->\n<!-- have been through the pre-proccessor with their (nearly-)original  -->\n<!-- progenitors.  So we need this id here, late in the game, but we    -->\n<!-- don't want authors wondering if they should be authoring it in     -->\n<!-- their source.  So at the last minute, while creating text versions -->\n<!-- of source material, we kill it.  Any similar leakage could be      -->\n<!-- handled the same way.                                              -->\n<xsl:template match=\"@original-id\" mode=\"xml-to-string\"/>\n\n\n<!-- N.B.: the -assembly stylesheet first construct a \"version\" which   -->\n<!-- is the resolution of version support and customizations.  Then     -->\n<!-- \"original-id\" are added in the next pass.  These are solely for    -->\n<!-- the purpose of \"going back\" to this second pass to identify pieces -->\n<!-- of a document before the assembly process perturbs them.  So the   -->\n<!-- key tree this next template acts on is in the variable             -->\n<!-- $original-labeled.  Just above we explain how these id's get       -->\n<!-- scrubbed before presenting source to the reader.                   -->\n\n<!-- The template to place into the HTML stylesheet, which is        -->\n<!-- overriding a do-nothing stub in the HTML stylesheet.  This is   -->\n<!-- a no-op unless the $b-view-source has been set to true()        -->\n<!-- electively.  Not too much of a performance hit as bailing out   -->\n<!-- is quick, and use is limited to divisions and blocks (roughly). -->\n<xsl:template match=\"*\" mode=\"view-source-widget\">\n    <!-- Footnotes are silly to annotate, and are also automatically -->\n    <!-- generated for URLs and hence have no original source, so we -->\n    <!-- kill them here.  Careful experiments suggest these are the  -->\n    <!-- only elements without source.                               -->\n    <xsl:variable name=\"b-banned\" select=\"boolean(self::fn)\"/>\n    <!-- Allow for annotations of select elements                    -->\n    <xsl:variable name=\"include-source\" select=\"@include-source = 'yes'\"/>\n    <xsl:if test=\"($b-view-source and not($b-banned)) or $include-source\">\n        <!-- Part 1: Serialize the source -->\n        <!-- Save off the id of the element being annotated -->\n        <xsl:variable name=\"the-element-id\" select=\"@original-id\"/>\n        <!-- Locate the element with the same id, but in a very early -->\n        <!-- pass of the assembly stylesheet, so with as little (no?) -->\n        <!-- extraneous manufactured markup as possible.              -->\n        <xsl:variable name=\"original-element\" select=\"$original-labeled//*[@original-id = $the-element-id]\"/>\n        <!-- Just for convenience, capture highly sanitized text      -->\n        <!-- version of the XML source within a variable.             -->\n        <!--                                                          -->\n        <!--   (1) Grab the node *just prior* to the element.         -->\n        <!--   (2) This ends with a newline and then some             -->\n        <!--       indentation, we grab this indentation.             -->\n        <!--   (3) Serialize the element, a photocopy machine         -->\n        <!--       which converts XML nodes into text (originally     -->\n        <!--       built to put HTML into JSON for Jupyter).          -->\n        <!--   (4) Run (2)+(3) through \"sanitize-text\" mainly to pull -->\n        <!--       the whole stanza left, since it may have a lot of  -->\n        <!--       common indentation (which is why we caught         -->\n        <!--       the preceding indentation).                        -->\n        <!--   (5) Run that through \"sanitize-text\" to deindent       -->\n        <!-- NB: the $original-element is used *twice* below, in      -->\n        <!-- order to have the right conteaxt for the manipulations   -->\n        <xsl:variable name=\"serialized-html\">\n            <xsl:variable name=\"serialized-html-raw\">\n                <xsl:variable name=\"lead-in\">\n                    <xsl:apply-templates select=\"$original-element/preceding-sibling::node()[1]\" mode=\"xml-to-string\">\n                        <xsl:with-param name=\"depth\" select=\"1\"/>\n                    </xsl:apply-templates>\n                </xsl:variable>\n                <xsl:call-template name=\"substring-after-last\">\n                    <xsl:with-param name=\"input\" select=\"$lead-in\" />\n                    <xsl:with-param name=\"substr\" select=\"'&#xa;'\" />\n                </xsl:call-template>\n                <xsl:apply-templates select=\"$original-element\" mode=\"xml-to-string\">\n                    <xsl:with-param name=\"depth\" select=\"1\"/>\n                </xsl:apply-templates>\n            </xsl:variable>\n            <xsl:call-template name=\"sanitize-text\">\n                <xsl:with-param name=\"text\">\n                    <xsl:value-of select=\"$serialized-html-raw\"/>\n                </xsl:with-param>\n            </xsl:call-template>\n        </xsl:variable>\n\n        <!-- Part 2: drop the source into a details on the page -->\n        <details class=\"source-view\">\n          <summary class=\"source-view__link\" data-reveal-label=\"Open\" data-close-label=\"Close\">\n              <!-- TODO: internationalize me? -->\n              <xsl:text>View Source for </xsl:text><xsl:value-of select=\"name()\"/>\n          </summary>\n          <!-- -->\n          <article class=\"view-source-view__content\" >\n              <pre>\n                  <code class=\"language-xml\">\n                      <xsl:value-of select=\"$serialized-html\"/>\n                  </code>\n              </pre>\n          </article>\n      </details>\n\n    </xsl:if>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/pretext-ww-problem-sets.xsl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- ********************************************************************* -->\n<!-- Copyright 2015-18                                                     -->\n<!-- Robert A. Beezer, Michael Gage, Geoff Goehle, Alex Jordan             -->\n<!--                                                                       -->\n<!-- This file is part of PreTeXt.                                         -->\n<!--                                                                       -->\n<!-- PreTeXt is free software: you can redistribute it and/or modify       -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- PreTeXt is distributed in the hope that it will be useful,            -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.      -->\n<!-- ********************************************************************* -->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"entities.ent\">\n    %entities;\n]>\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:date=\"http://exslt.org/dates-and-times\"\n    extension-element-prefixes=\"exsl date\"\n>\n\n<!-- Apply this style sheet to to produce a folder tree of PG problem files -->\n<!-- with set defintion and set header files. Compress into a .tgz and      -->\n<!-- upload into a WeBWorK course (perhaps in the templates/local folder);  -->\n<!-- or into a server's libraries folder and set up site-wide access.       -->\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"./publisher-variables.xsl\"/>\n<xsl:import href=\"./pretext-assembly.xsl\"/>\n<xsl:import href=\"./pretext-common.xsl\"/>\n<xsl:import href=\"./extract-pg.xsl\"/>\n\n<!-- Intend output to be a PG/PGML problem or a \"def\" file -->\n<xsl:output method=\"text\" />\n\n<!-- ######### -->\n<!-- Variables -->\n<!-- ######### -->\n\n<!-- This variable controls representations of interactive exercises    -->\n<!-- built in  pretext-assembly.xsl.  This is the one place we override -->\n<!-- this variable to the value 'pg-problems' as a signal to only mine  -->\n<!-- PG representations from the multiple representations available.    -->\n<xsl:variable name=\"exercise-style\" select=\"'pg-problems'\"/>\n\n<!-- We default to one massive def file -->\n<xsl:variable name=\"chunk-level\">\n    <xsl:choose>\n        <xsl:when test=\"$chunk-level-entered != ''\">\n            <xsl:value-of select=\"$chunk-level-entered\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>0</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ############## -->\n<!-- Entry template -->\n<!-- ############## -->\n\n<!-- First, create the problem files in directories                           -->\n<!-- Organized in directories as in the document tree, cut off at chunk level -->\n<!-- Then chunk the document to write reasonable problem definition files     -->\n<xsl:template match=\"/\">\n    <xsl:apply-templates select=\"$original\" mode=\"generic-warnings\"/>\n    <xsl:apply-templates select=\"$document-root//webwork[statement|task|text()]\" mode=\"write-file\"/>\n    <xsl:apply-templates select=\"$document-root\" mode=\"chunking\"/>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Filename Utilities -->\n<!-- ################## -->\n\n<xsl:template name=\"project-folder\">\n    <xsl:apply-templates select=\"$document-root\" mode=\"numbered-title-filesafe\" />\n</xsl:template>\n\n<!-- Directory path, recursively climb structural nodes,  -->\n<!-- record names as pass up through chunk-level barrier  -->\n<!-- Includes root document node (book, article, etc)     -->\n<xsl:template match=\"*\" mode=\"directory-path\">\n    <xsl:variable name=\"structural\">\n        <xsl:apply-templates select=\".\" mode=\"is-structural\"/>\n    </xsl:variable>\n    <xsl:variable name=\"current-level\">\n        <xsl:choose>\n            <xsl:when test=\"$structural = 'true'\">\n                <xsl:apply-templates select=\".\" mode=\"level\" />\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>undefined</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"self::mathbook|self::pretext\" /> <!-- done -->\n        <xsl:when test=\"$structural='false'\">  <!-- skip up -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"directory-path\" />\n        </xsl:when>\n        <!-- structural is true now, compare levels -->\n        <xsl:when test=\"$current-level > $chunk-level\">  <!-- also skip up -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"directory-path\" />\n        </xsl:when>\n        <xsl:otherwise> <!-- append current node name -->\n            <xsl:apply-templates select=\"parent::*\" mode=\"directory-path\" />\n            <xsl:apply-templates select=\".\" mode=\"numbered-title-filesafe\" />\n            <xsl:text>/</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- Append a filename to the directory path              -->\n<xsl:template match=\"webwork[statement|task|text()]\" mode=\"relative-filename\">\n    <xsl:apply-templates select=\".\" mode=\"directory-path\" />\n    <xsl:if test=\"parent::*[&PROJECT-FILTER;]\">\n        <xsl:apply-templates select=\"parent::*\" mode=\"type-name\"/>\n        <xsl:text>-</xsl:text>\n    </xsl:if>\n    <xsl:apply-templates select=\"parent::*\" mode=\"numbered-title-filesafe\" />\n    <xsl:text>.pg</xsl:text>\n</xsl:template>\n<xsl:template match=\"webwork[statement|task|text()]\" mode=\"filename\">\n    <xsl:apply-templates select=\".\" mode=\"relative-filename\"/>\n</xsl:template>\n\n<xsl:template match=\"webwork[@source|@local]\" mode=\"filename\">\n    <xsl:apply-templates select=\".\" mode=\"relative-filename\"/>\n</xsl:template>\n\n<!-- For problems from the OPL, just report the @source -->\n<xsl:template match=\"webwork[@source]\" mode=\"relative-filename\">\n    <xsl:value-of select=\"@source\"/>\n</xsl:template>\n\n<!-- For local, just report @local but inside external directory, and all   -->\n<!-- inside the project folder, with the expectation that a host WW course  -->\n<!-- will copy the external folder to the project folder in templates/      -->\n<xsl:template match=\"webwork[@local]\" mode=\"relative-filename\">\n    <xsl:call-template name=\"project-folder\"/>\n    <xsl:value-of select=\"concat('/',$external-directory,@local)\"/>\n</xsl:template>\n\n<!-- For copied problems move to the problem that was copied -->\n<xsl:template match=\"webwork[@copied-from]\" mode=\"relative-filename\">\n    <xsl:variable name=\"copied-from\" select=\"@copied-from\"/>\n    <xsl:apply-templates select=\"$document-root//webwork[@xml:id=$copied-from]\" mode=\"relative-filename\"/>\n</xsl:template>\n<xsl:template match=\"webwork[@copied-from]\" mode=\"filename\">\n    <xsl:variable name=\"copied-from\" select=\"@copied-from\"/>\n    <xsl:apply-templates select=\"$document-root//webwork[@xml:id=$copied-from]\" mode=\"filename\"/>\n</xsl:template>\n\n<!-- ################## -->\n<!-- Problem Extraction -->\n<!-- ################## -->\n\n<!-- Extract an authored problem into its own file, flush left -->\n<xsl:template match=\"webwork[statement|task|text()]\" mode=\"write-file\">\n    <xsl:variable name=\"filename\">\n        <xsl:apply-templates select=\".\" mode=\"filename\" />\n    </xsl:variable>\n    <exsl:document href=\"{$filename}\" method=\"text\">\n        <xsl:choose>\n            <xsl:when test=\"statement|task\">\n                <xsl:call-template name=\"sanitize-text\">\n                    <xsl:with-param name=\"text\">\n                        <xsl:call-template name=\"consolidate-empty-lines\">\n                            <xsl:with-param name=\"text\">\n                                <xsl:apply-templates select=\".\">\n                                    <xsl:with-param name=\"b-hint\" select=\"true()\" />\n                                    <xsl:with-param name=\"b-solution\" select=\"true()\" />\n                                    <xsl:with-param name=\"b-human-readable\" select=\"true()\" />\n                                </xsl:apply-templates>\n                            </xsl:with-param>\n                        </xsl:call-template>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\".\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </exsl:document>\n</xsl:template>\n\n<!-- We don't write a new file for a copied webwork exercise -->\n<xsl:template match=\"webwork[@copied-from]\" mode=\"write-file\"/>\n\n<!-- ################## -->\n<!-- Chunking Def Files-->\n<!-- ################## -->\n\n<!-- A complete file for a structural subdivision -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"chunk\">\n    <!-- Separate webwork within any exercises into their own set. -->\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".//webwork[statement|task|text()|@source|@local|@copy and not(ancestor::exercises)]\" mode=\"def-info-v2\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"exercises\" select=\"true()\" />\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\".//webwork[statement|task|text()|@source|@local|@copy and ancestor::exercises]\" mode=\"def-info-v2\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- A summary file for a structural subdivision                -->\n<!-- Any webwork not in a subdivision (say, in an introduction) -->\n<!-- The // is OK here (rather than descendant-or-self) since   -->\n<!-- there will at least be an intervening \"exercise\" wrapper   -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"intermediate\">\n    <xsl:apply-templates select=\".\" mode=\"file-wrap\">\n        <xsl:with-param name=\"content\">\n            <xsl:apply-templates select=\"*[not(&STRUCTURAL-FILTER;)]//webwork[statement|task|text()|@source|@local|@copy]\" mode=\"def-info-v2\" />\n        </xsl:with-param>\n    </xsl:apply-templates>\n</xsl:template>\n\n<!-- ##################### -->\n<!-- Def File Construction -->\n<!-- ##################### -->\n\n<!-- A *.def file for a structural subdivision -->\n<xsl:template match=\"&STRUCTURAL;\" mode=\"file-wrap\">\n    <xsl:param name=\"content\" />\n    <xsl:param name=\"exercises\" select=\"false()\" />\n    <!-- no problems, no def infos, then no file -->\n    <xsl:if test=\"not($content = '')\">\n        <!-- filenames -->\n        <xsl:variable name=\"def-filename\">\n            <xsl:call-template name=\"project-folder\" />\n            <xsl:text>/def/</xsl:text>\n            <!-- mandatory filename initial string -->\n            <xsl:text>set</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"numbered-title-filesafe\" />\n            <xsl:if test=\"$exercises\">\n                <xsl:text>_Exercises</xsl:text>\n            </xsl:if>\n            <xsl:text>.def</xsl:text>\n        </xsl:variable>\n        <xsl:variable name=\"relative-header-filename\">\n            <xsl:call-template name=\"project-folder\" />\n            <xsl:text>/header/</xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"numbered-title-filesafe\" />\n            <xsl:if test=\"$exercises\">\n                <xsl:text>_Exercises</xsl:text>\n            </xsl:if>\n            <xsl:text>.pg</xsl:text>\n        </xsl:variable>\n        <xsl:variable name=\"header-filename\">\n            <xsl:value-of select=\"$relative-header-filename\"/>\n        </xsl:variable>\n        <!-- set-definition file -->\n        <exsl:document href=\"{$def-filename}\" method=\"text\">\n            <xsl:variable name=\"open\" select=\"substring(date:date-time(),1,10)\" />\n            <xsl:variable name=\"due\" select=\"date:add($open,'P6M')\" />\n            <xsl:variable name=\"answer\" select=\"$due\" />\n            <xsl:text>openDate          = </xsl:text>\n            <xsl:value-of select=\"substring($open, 6, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($open, 9, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($open, 1, 4)\" />\n            <xsl:text> at 12:00am&#xa;</xsl:text>\n            <xsl:text>dueDate           = </xsl:text>\n            <xsl:value-of select=\"substring($due, 6, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($due, 9, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($due, 1, 4)\" />\n            <xsl:text> at 10:00pm&#xa;</xsl:text>\n            <xsl:text>answerDate        = </xsl:text>\n            <xsl:value-of select=\"substring($due, 6, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($due, 9, 2)\" />\n            <xsl:text>/</xsl:text>\n            <xsl:value-of select=\"substring($due, 1, 4)\" />\n            <xsl:text> at 10:00pm&#xa;</xsl:text>\n            <xsl:text>paperHeaderFile   = </xsl:text>\n            <xsl:value-of select=\"$relative-header-filename\" />\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:text>screenHeaderFile  = </xsl:text>\n            <xsl:value-of select=\"$relative-header-filename\" />\n            <xsl:text>&#xa;</xsl:text>\n            <xsl:text>description       = </xsl:text>\n            <xsl:apply-templates select=\".\" mode=\"title-simple\" />\n            <xsl:text>&#xa;</xsl:text>\n            <!-- Version 2 problem list lead-in -->\n            <xsl:text>problemListV2&#xa;</xsl:text>\n            <xsl:copy-of select=\"$content\" />\n        </exsl:document>\n        <!-- set-header file -->\n        <!-- a bit of a hack to write a second file here -->\n        <!-- but we avoid the entire $content used above -->\n        <exsl:document href=\"{$header-filename}\" method=\"text\">\n            <xsl:apply-templates select=\".\" mode=\"header-content\" />\n        </exsl:document>\n    </xsl:if>\n</xsl:template>\n\n<!-- Version 2 problem info -->\n<!-- Each problem gets its own line in the problem set   -->\n<!-- definition file. Be careful to create no content if -->\n<!-- there are no problems in a subdivision as we employ -->\n<!-- non-emptieness up the wrapping chain to ensure      -->\n<!--  no trivial problem definition files are created.   -->\n<!-- http://webwork.maa.org/wiki/Set_Definition_Files#Version_2 -->\n<xsl:template match=\"webwork\" mode=\"def-info-v2\">\n    <xsl:text>problem_start&#xa;</xsl:text>\n    <xsl:text>source_file = </xsl:text> <!-- PG file -->\n    <xsl:apply-templates select=\".\" mode=\"relative-filename\" />\n    <xsl:text>&#xa;</xsl:text>\n    <!--Much of the following commented out until we decide we should include them.   -->\n    <!--WeBWorK provides good default values, customizable by sysadmin or instructor. -->\n    <!--<xsl:text>value = 1&#xa;</xsl:text>--> <!-- default problem weight -->\n    <!--<xsl:text>max_attempts = -1&#xa;</xsl:text>--> <!-- default max attempts is unlimited -->\n    <!--<xsl:text>showMeAnother = -1&#xa;</xsl:text>--> <!-- default SMA is off -->\n    <xsl:text>problem_id = </xsl:text>\n    <xsl:apply-templates select=\"ancestor::exercise\" mode=\"serial-number\" />\n    <xsl:text>&#xa;</xsl:text>\n    <!--<xsl:text>counts_parent_grade = 0&#xa;</xsl:text>--> <!-- for JIT sets only -->\n    <!--<xsl:text>att_to_open_children = 0&#xa;</xsl:text>--> <!-- for JIT sets only -->\n    <xsl:text>problem_end&#xa;</xsl:text>\n</xsl:template>\n\n<!-- Header file content -->\n<!-- Gives some information about where in the PTX project the set came from -->\n<!-- Some info changes with WW variables, such as due date -->\n<xsl:template match=\"*\" mode=\"header-content\">\n    <!-- Inneficient: indented text in variable, then strip indentation -->\n    <!-- Alternative: wrap each line in \"text\" with linefeeds           -->\n    <xsl:variable name=\"header-text\">\n        <xsl:text>\n        # Header file for problem set </xsl:text><xsl:apply-templates select=\".\" mode=\"numbered-title-filesafe\" />\n        <xsl:text>\n        # This header file can be used for both the screen and hardcopy output\n\n        DOCUMENT();\n\n        loadMacros(\n            \"PG.pl\",\n            \"PGbasicmacros.pl\",\n            \"PGML.pl\",\n            \"PGcourse.pl\",\n        );\n\n        TEXT($BEGIN_ONE_COLUMN);\n\n        $texTopLine = \"\\noindent {\\large \\bf $studentName}\\hfill{\\large \\bf {\".protect_underbar($courseName).\"}}\";\n        if (defined($sectionName) and ($sectionName ne '')) {$texTopLine .= \"  {\\large \\bf { Section: \".protect_underbar($sectionName).\" } }\"}; \n        $texTopLine .= \"\\par\";\n\n        ####################################################\n        #\n        # MODES provides for distinct output for TeX and HTML\n        #\n        ####################################################\n\n        TEXT(MODES(\n            TeX =&gt;\"$texTopLine\",\n            HTML=&gt;\"\",\n        ));\n\n        TEXT(MODES(\n            TeX =>\"\\noindent{\\large \\sc {Assignment \".protect_underbar($setNumber).\" due $formatedDueDate}}\\par\".\n                  \"\\noindent \\bigskip \",\n            HTML=>\"&lt;span style='font-variant: small-caps; font-size:large;'&gt;WeBWorK Assignment \".protect_underbar($setNumber).\" is due: $formattedDueDate. &lt;/span&gt;$PAR\",\n        ));\n        </xsl:text><xsl:choose><xsl:when test=\"$document-root//frontmatter/colophon/website\"><xsl:text>\n        TEXT(MODES(\n            TeX =>\"\\noindent This assignment contains exercises from </xsl:text><xsl:apply-templates select=\".\" mode=\"type-name\" /><xsl:text> </xsl:text><xsl:apply-templates select=\".\" mode=\"number\" /><xsl:text> of </xsl:text><xsl:apply-templates select=\"$document-root\"  mode=\"title-simple\" /><xsl:text>.\",\n            HTML=>\"This assignment contains exercises from \".htmlLink(qq!</xsl:text><xsl:apply-templates select=\"$document-root//frontmatter/colophon/website/url/@href\" /><xsl:text>/</xsl:text><xsl:apply-templates select=\".\" mode=\"visible-id\" /><xsl:text>.html!,\"</xsl:text><xsl:apply-templates select=\".\" mode=\"type-name\" /><xsl:text> </xsl:text><xsl:apply-templates select=\".\" mode=\"number\" /><xsl:text>\").\" of </xsl:text><xsl:apply-templates select=\"$document-root\"  mode=\"title-simple\" /><xsl:text>.\"\n        ));\n        </xsl:text></xsl:when><xsl:otherwise><xsl:text>\n        TEXT(\"This assignment contains exercises from </xsl:text><xsl:apply-templates select=\".\" mode=\"type-name\" /><xsl:text> </xsl:text><xsl:apply-templates select=\".\" mode=\"number\" /><xsl:text> of </xsl:text><xsl:apply-templates select=\"$document-root\"  mode=\"title-simple\" /><xsl:text>.\");\n        </xsl:text></xsl:otherwise></xsl:choose>\n\n        <xsl:text>\n        TEXT($END_ONE_COLUMN);\n\n        ENDDOCUMENT();\n        </xsl:text>\n    </xsl:variable>\n    <!-- lazy, strips indentation, etc -->\n    <xsl:call-template name=\"sanitize-text\">\n        <xsl:with-param name=\"text\" select=\"$header-text\" />\n    </xsl:call-template>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/publisher-variables.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:dyn=\"http://exslt.org/dynamic\"\n    extension-element-prefixes=\"exsl str dyn\"\n>\n\n<!-- ######################### -->\n<!-- Publisher Options Support -->\n<!-- ######################### -->\n\n<!-- Elements and attributes of a publisher file are meant to          -->\n<!-- influence decisions taken *after* an author is completed writing. -->\n<!-- In limited cases a command-line string parameter may be used to   -->\n<!-- override the settings (especially for testing purposes).          -->\n<!-- In other cases, deprecated string parameters may be consulted     -->\n<!-- secondarily, for a limited time.                                  -->\n\n<!-- A single command-line string parameter points to an XML file that      -->\n<!-- is structured to carry various options that a *publisher* might set.   -->\n<!-- Generally, these affect the *look* of the output, rather than the      -->\n<!-- actual *content* that appears on the page, i.e. the actual characters. -->\n<!-- We initialize with an empty node-set, then if not used, there is no    -->\n<!-- loading of the entire source all over again (which seems to be the     -->\n<!-- case with an empty string).  When set on the command-line, a string    -->\n<!-- value will be interpreted correctly. -->\n<xsl:param name=\"publisher\" select=\"/..\"/>\n\n<!-- NB: the second argument is simply a node, it causes $publisher -->\n<!-- to be interpreted relative to the location of the *current XML -->\n<!-- file* rather than the location of the *stylesheet*. The actual -->\n<!-- node does not seem so critical.                                -->\n<!-- NB A publisher might provide a filename, which when resolved   -->\n<!-- as an absolute path (think \"My Documents\") by some helper      -->\n<!-- program or front-end, will arrive here containing a space,     -->\n<!-- which will cause the  document()  function to fail silently.   -->\n<!-- The location provided in the first argument of document() is   -->\n<!-- a URI, so the proper escape mechanism is percent-encoding.     -->\n<xsl:variable name=\"publication\" select=\"document(str:replace($publisher, '&#x20;', '%20'), .)/publication\"/>\n\n<!-- The \"publisher-variables.xsl\" and \"pretext-assembly.xsl\"      -->\n<!-- stylesheets are symbiotic, and should be imported             -->\n<!-- simultaneously.  Assembly will change the source in various   -->\n<!-- ways, while some defaults for publisher variables will depend -->\n<!-- on source.  The default variables should depend on gross      -->\n<!-- structure and adjustments should be to smaller portions of    -->\n<!-- the source, but we don't take any chances.  So, note in       -->\n<!-- \"assembly\" that an intermediate tree is defined as a          -->\n<!-- variable, which is then used in defining some variables,      -->\n<!-- based on assembled source.  Conversely, certain variables,    -->\n<!-- such as locations of customizations or private solutions,     -->\n<!-- are needed early in assembly, while other variables, such     -->\n<!-- as options for numbering, are needed for later enhancements   -->\n<!-- to the source.  If new code results in undefined, or          -->\n<!-- recursively defined, variables, this discussion may be        -->\n<!-- relevant.  (This is repeated verbatim in the other            -->\n<!-- stylesheet).                                                  -->\n<!--                                                               -->\n<!-- Also, in this stylesheet, we should not be letting \"docinfo\"  -->\n<!-- directly set variables, as \"docinfo\" contains                 -->\n<!-- settings/characteristics that are part of the author's source -->\n<!-- and are not changed/influenced by a publisher.  Some uses are -->\n<!-- historical when we we were not so aware of the distinction,   -->\n<!-- and some uses are tangential (such as the type of \"part\" the  -->\n<!-- author has chosen).                                           -->\n\n<!-- ############## -->\n<!-- Common Options -->\n<!-- ############## -->\n\n<!-- Override chunking publisher variable, for testing -->\n<xsl:param name=\"debug.chunk\" select=\"''\"/>\n\n<xsl:variable name=\"chunks\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/chunking/pi:pub-attribute[@name='level']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- We do not convert this to a number since various   -->\n<!-- conversions will consume this and produce their    -->\n<!-- own defaults, and we need to recognize \"no choice\" -->\n<!-- as an empty string -->\n<xsl:variable name=\"chunk-level-entered\" select=\"string($chunks)\"/>\n\n<!-- A book must have a chapter              -->\n<!-- An article need not have a section      -->\n<!-- This gets replaced in -latex stylehseet -->\n<xsl:variable name=\"toc-level-entered\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/tableofcontents/pi:pub-attribute[@name='level']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:template match=\"common/tableofcontents/pi:pub-attribute[@name='level']\" mode=\"get-default-pub-variable\">\n    <xsl:choose>\n        <!-- defaults purely by structure, not by output format -->\n        <xsl:when test=\"$version-root/book/part/chapter/section\">3</xsl:when>\n        <xsl:when test=\"$version-root/book/part/chapter\">2</xsl:when>\n        <xsl:when test=\"$version-root/book/chapter/section\">2</xsl:when>\n        <xsl:when test=\"$version-root/book/chapter\">1</xsl:when>\n        <xsl:when test=\"$version-root/article/section/subsection\">2</xsl:when>\n        <xsl:when test=\"$version-root/article/section|$version-root/article/worksheet|$version-root/article/handout\">1</xsl:when>\n        <xsl:when test=\"$version-root/article\">0</xsl:when>\n        <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n        <xsl:when test=\"$version-root/letter\">0</xsl:when>\n        <xsl:when test=\"$version-root/memo\">0</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: Table of Contents level not determined</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n<xsl:variable name=\"toc-level\" select=\"number($toc-level-entered)\"/>\n\n<!-- Flag Table of Contents, or not, with boolean variable -->\n<xsl:variable name=\"b-has-toc\" select=\"$toc-level > 0\" />\n\n<!-- Fillin styles (underline, box, shade) -->\n<xsl:variable name=\"fillin-text-style\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/fillin/pi:pub-attribute[@name='textstyle']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"fillin-math-style\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/fillin/pi:pub-attribute[@name='mathstyle']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"mermaid-theme\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/mermaid/pi:pub-attribute[@name='theme']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"mermaid-layout-engine\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/mermaid/pi:pub-attribute[@name='layout-engine']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- QR code image to be placed at center of QR codes -->\n<xsl:variable name=\"qrcode-image\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/qrcode/pi:pub-attribute[@name='image']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Em dash Width -->\n\n<xsl:variable name=\"emdash-space\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/pi:pub-attribute[@name='emdash-space']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Watermarking -->\n<!-- Variables for watermark text (simple!), and a scale factor. -->\n<!-- Boolean variables for existence (one is deprecated LaTeX).  -->\n\n<xsl:variable name=\"watermark-text\">\n    <xsl:choose>\n        <!-- via publication file -->\n        <xsl:when test=\"$publication/common/watermark\">\n            <xsl:value-of select=\"$publication/common/watermark\"/>\n        </xsl:when>\n        <!-- string parameter, general -->\n        <xsl:when test=\"($watermark.text != '')\">\n            <xsl:value-of select=\"$watermark.text\"/>\n        </xsl:when>\n        <!-- old LaTeX-specific string parameter -->\n        <xsl:when test=\"($latex.watermark != '')\">\n            <xsl:value-of select=\"$latex.watermark\"/>\n        </xsl:when>\n        <!-- won't get employed if we get here, but... -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Unedited comment, copied from old code:                            -->\n<!-- watermark uses a 5cm font, which can be scaled                     -->\n<!-- and scaling by 0.5 makes \"CONFIDENTIAL\" fit well in 600 pixel HTML -->\n<!-- and in the default body width for LaTeX                            -->\n\n<xsl:variable name=\"watermark-scale\">\n    <xsl:choose>\n        <!-- via publication file -->\n        <xsl:when test=\"$publication/common/watermark and $publication/common/watermark/@scale\">\n            <xsl:value-of select=\"$publication/common/watermark/@scale\"/>\n        </xsl:when>\n        <!-- string parameter, general -->\n        <xsl:when test=\"($watermark.text != '') and ($watermark.scale != '')\">\n            <xsl:value-of select=\"$watermark.scale\"/>\n        </xsl:when>\n        <!-- old LaTeX-specific string parameter -->\n        <xsl:when test=\"($latex.watermark != '') and ($latex.watermark.scale != '')\">\n            <xsl:value-of select=\"$latex.watermark.scale\"/>\n        </xsl:when>\n        <!-- employ (historical) defaults to accompany provided text-->\n        <xsl:otherwise>\n            <xsl:choose>\n                <!-- via publication file -->\n                <xsl:when test=\"$publication/common/watermark\">\n                    <xsl:text>0.5</xsl:text>\n                </xsl:when>\n                <!-- string parameter, general -->\n                <xsl:when test=\"($watermark.text != '')\">\n                    <xsl:text>0.5</xsl:text>\n                </xsl:when>\n                <!-- old LaTeX-specific string parameter -->\n                <xsl:when test=\"($latex.watermark != '')\">\n                    <xsl:text>2.0</xsl:text>\n                </xsl:when>\n                <!-- won't get employed if we get here, but... -->\n                <xsl:otherwise/>\n            </xsl:choose>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- General watermarking, publication file or deprecated stringparam.  Plus  .-->\n<!-- the option of double-deprecated string parameter (indicating LaTeX only). -->\n<xsl:variable name=\"b-watermark\" select=\"$publication/common/watermark or ($watermark.text != '')\"/>\n<xsl:variable name=\"b-latex-watermark\" select=\"$b-watermark or ($latex.watermark != '')\"/>\n\n<!-- Journal name for bibliography formatting and latex style selection -->\n<xsl:variable name=\"journal-name\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/journal/pi:pub-attribute[@name='name']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- This is the minimum information to locate a     -->\n<!-- Citation Stylesheet Language (CSL) style file   -->\n<!-- in the CSL repository.  It is not expected to   -->\n<!-- have the \".csl\" suffix, but should have partial -->\n<!-- path names, such as \"dependent/\".  Employers    -->\n<!-- should provide \".cls\" and any additional path   -->\n<!-- information.                                    -->\n<xsl:variable name=\"csl-style-file\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/citation-stylesheet-language/pi:pub-attribute[@name='style']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<!-- global indication of if a publisher has opted in -->\n<xsl:variable name=\"b-using-csl-styles\" select=\"not(normalize-space($csl-style-file) = '')\"/>\n<!-- if using styles we form the filename of generated references and citations -->\n<xsl:variable name=\"csl-file\">\n    <xsl:choose>\n        <xsl:when test=\"$b-using-csl-styles\">\n            <xsl:value-of select=\"$generated-directory-source\"/>\n            <xsl:text>references/csl-bibliography.xml</xsl:text>\n        </xsl:when>\n        <!-- explicitly empty/null if not using CSL styles -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Printout margins.  Applies to both PDF and HTML. -->\n\n<xsl:variable name=\"ws-margin\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/pi:pub-attribute[@name='margin']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-margin-top\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/pi:pub-attribute[@name='top']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-margin-right\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/pi:pub-attribute[@name='right']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-margin-bottom\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/pi:pub-attribute[@name='bottom']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-margin-left\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/pi:pub-attribute[@name='left']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<!-- Set the default values of each directional margin to be the value of the ws-margin element -->\n<xsl:template match=\"common/worksheet/pi:pub-attribute[@name='top']\" mode=\"get-default-pub-variable\">\n    <xsl:value-of select=\"$ws-margin\"/>\n</xsl:template>\n<xsl:template match=\"common/worksheet/pi:pub-attribute[@name='right']\" mode=\"get-default-pub-variable\">\n    <xsl:value-of select=\"$ws-margin\"/>\n</xsl:template>\n<xsl:template match=\"common/worksheet/pi:pub-attribute[@name='bottom']\" mode=\"get-default-pub-variable\">\n    <xsl:value-of select=\"$ws-margin\"/>\n</xsl:template>\n<xsl:template match=\"common/worksheet/pi:pub-attribute[@name='left']\" mode=\"get-default-pub-variable\">\n    <xsl:value-of select=\"$ws-margin\"/>\n</xsl:template>\n\n<!-- Printout headers and footers.  We have separate variables for \"first-page\" and \"running\" -->\n<!-- Each can take a \"left\", \"center\", and \"right\" value. -->\n<xsl:variable name=\"ws-header-first-left\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/first-page-header/pi:pub-attribute[@name='left']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-header-first-center\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/first-page-header/pi:pub-attribute[@name='center']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-header-first-right\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/first-page-header/pi:pub-attribute[@name='right']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-header-running-left\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/running-header/pi:pub-attribute[@name='left']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-header-running-center\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/running-header/pi:pub-attribute[@name='center']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-header-running-right\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/running-header/pi:pub-attribute[@name='right']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-footer-first-left\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/first-page-footer/pi:pub-attribute[@name='left']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-footer-first-center\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/first-page-footer/pi:pub-attribute[@name='center']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-footer-first-right\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/first-page-footer/pi:pub-attribute[@name='right']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-footer-running-left\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/running-footer/pi:pub-attribute[@name='left']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-footer-running-center\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/running-footer/pi:pub-attribute[@name='center']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"ws-footer-running-right\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/common/worksheet/running-footer/pi:pub-attribute[@name='right']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- ########################### -->\n<!-- Exercise component switches -->\n<!-- ########################### -->\n\n<!-- We santitize exercise component switches.  These control -->\n<!-- text/narrative appearances *only*, solution lists in the -->\n<!-- backmatter are given in alternate ways.  However, an     -->\n<!-- alternate conversion (such as an Instructor's Guide) may -->\n<!-- use these as well. We only do quality control here.      -->\n<!-- The first \"*.text.*\" forms are deprecated with warnings  -->\n<!-- elsewhere, but we try to preserve their intent here.     -->\n<!-- The second \"exercise.{type}.{component}\" also have       -->\n<!-- deprecation warnings elsewhere, and are honored here.    -->\n<!-- NB: \"-statement\" versions are necessary for the solution -->\n<!-- manual stylesheet, which feeds these into the solutions  -->\n<!-- generator template.                                      -->\n\n<xsl:variable name=\"entered-exercise-inline-statement\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-inline/@statement\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-inline/@statement = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-inline/@statement = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-inline/@statement in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-inline/@statement\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.inline.statement = 'yes') or\n                        ($exercise.inline.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.inline.statement\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.statement = 'yes') or ($exercise.text.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.text.statement\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.inline.statement = ''\">\n            <xsl:value-of select=\"$exercise.text.statement\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.inline.statement parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.inline.statement\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-inline-hint\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-inline/@hint\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-inline/@hint = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-inline/@hint = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-inline/@hint in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-inline/@hint\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.inline.hint = 'yes') or\n                        ($exercise.inline.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.inline.hint\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.hint = 'yes') or ($exercise.text.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.text.hint\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.inline.hint = ''\">\n            <xsl:value-of select=\"$exercise.text.hint\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.inline.hint parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.inline.hint\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-inline-answer\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-inline/@answer\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-inline/@answer = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-inline/@answer = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-inline/@answer in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-inline/@answer\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.inline.answer = 'yes') or\n                        ($exercise.inline.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.inline.answer\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.answer = 'yes') or ($exercise.text.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.text.answer\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.inline.answer = ''\">\n            <xsl:value-of select=\"$exercise.text.answer\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.inline.answer parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.inline.answer\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-inline-solution\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-inline/@solution\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-inline/@solution = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-inline/@solution = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-inline/@solution in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-inline/@solution\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.inline.solution = 'yes') or\n                        ($exercise.inline.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.inline.solution\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.solution = 'yes') or ($exercise.text.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.text.solution\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.inline.solution = ''\">\n            <xsl:value-of select=\"$exercise.text.solution\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.inline.solution parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.inline.solution\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-divisional-statement\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-divisional/@statement\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-divisional/@statement = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-divisional/@statement = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-divisional/@statement in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-divisional/@statement\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.divisional.statement = 'yes') or\n                        ($exercise.divisional.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.divisional.statement\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.statement = 'yes') or ($exercise.text.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.text.statement\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.divisional.statement = ''\">\n            <xsl:value-of select=\"$exercise.divisional.statement\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.divisional.statement parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.divisional.statement\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-divisional-hint\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-divisional/@hint\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-divisional/@hint = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-divisional/@hint = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-divisional/@hint in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-divisional/@hint\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.divisional.hint = 'yes') or\n                        ($exercise.divisional.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.divisional.hint\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.hint = 'yes') or ($exercise.text.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.text.hint\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.divisional.hint = ''\">\n            <xsl:value-of select=\"$exercise.divisional.hint\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.divisional.hint parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.divisional.hint\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-divisional-answer\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-divisional/@answer\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-divisional/@answer = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-divisional/@answer = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-divisional/@answer in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-divisional/@answer\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.divisional.answer = 'yes') or\n                        ($exercise.divisional.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.divisional.answer\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.answer = 'yes') or ($exercise.text.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.text.answer\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.divisional.answer = ''\">\n            <xsl:value-of select=\"$exercise.divisional.answer\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.divisional.answer parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.divisional.answer\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-divisional-solution\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-divisional/@solution\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-divisional/@solution = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-divisional/@solution = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-divisional/@solution in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-divisional/@solution\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.divisional.solution = 'yes') or\n                        ($exercise.divisional.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.divisional.solution\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.solution = 'yes') or ($exercise.text.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.text.solution\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.divisional.solution = ''\">\n            <xsl:value-of select=\"$exercise.divisional.solution\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.divisional.solution parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.divisional.solution\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-worksheet-statement\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-worksheet/@statement\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@statement = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@statement = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-worksheet/@statement in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-worksheet/@statement\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.worksheet.statement = 'yes') or\n                        ($exercise.worksheet.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.worksheet.statement\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.statement = 'yes') or ($exercise.text.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.text.statement\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.worksheet.statement = ''\">\n            <xsl:value-of select=\"$exercise.worksheet.statement\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.worksheet.statement parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.worksheet.statement\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-worksheet-hint\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-worksheet/@hint\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@hint = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@hint = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-worksheet/@hint in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-worksheet/@hint\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.worksheet.hint = 'yes') or\n                        ($exercise.worksheet.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.worksheet.hint\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.hint = 'yes') or ($exercise.text.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.text.hint\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.worksheet.hint = ''\">\n            <xsl:value-of select=\"$exercise.worksheet.hint\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.worksheet.hint parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.worksheet.hint\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-worksheet-answer\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-worksheet/@answer\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@answer = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@answer = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-worksheet/@answer in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-worksheet/@answer\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.worksheet.answer = 'yes') or\n                        ($exercise.worksheet.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.worksheet.answer\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.answer = 'yes') or ($exercise.text.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.text.answer\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.worksheet.answer = ''\">\n            <xsl:value-of select=\"$exercise.worksheet.answer\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.worksheet.answer parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.worksheet.answer\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-worksheet-solution\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-worksheet/@solution\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@solution = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-worksheet/@solution = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-worksheet/@solution in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-worksheet/@solution\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.worksheet.solution = 'yes') or\n                        ($exercise.worksheet.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.worksheet.solution\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.solution = 'yes') or ($exercise.text.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.text.solution\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.worksheet.solution = ''\">\n            <xsl:value-of select=\"$exercise.worksheet.solution\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.worksheet.solution parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.worksheet.solution\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-reading-statement\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-reading/@statement\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-reading/@statement = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-reading/@statement = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-reading/@statement in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-reading/@statement\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.reading.statement = 'yes') or\n                        ($exercise.reading.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.reading.statement\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.statement = 'yes') or ($exercise.text.statement = 'no')\">\n            <xsl:value-of select=\"$exercise.text.statement\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.reading.statement = ''\">\n            <xsl:value-of select=\"$exercise.reading.statement\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.reading.statement parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.reading.statement\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-reading-hint\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-reading/@hint\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-reading/@hint = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-reading/@hint = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-reading/@hint in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-reading/@hint\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.reading.hint = 'yes') or\n                        ($exercise.reading.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.reading.hint\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.hint = 'yes') or ($exercise.text.hint = 'no')\">\n            <xsl:value-of select=\"$exercise.text.hint\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.reading.hint = ''\">\n            <xsl:value-of select=\"$exercise.reading.hint\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.reading.hint parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.reading.hint\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-reading-answer\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-reading/@answer\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-reading/@answer = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-reading/@answer = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-reading/@answer in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-reading/@answer\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.reading.answer = 'yes') or\n                        ($exercise.reading.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.reading.answer\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.answer = 'yes') or ($exercise.text.answer = 'no')\">\n            <xsl:value-of select=\"$exercise.text.answer\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.reading.answer = ''\">\n            <xsl:value-of select=\"$exercise.reading.answer\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.reading.answer parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.reading.answer\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-exercise-reading-solution\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-reading/@solution\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-reading/@solution = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-reading/@solution = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-reading/@solution in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-reading/@solution\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($exercise.reading.solution = 'yes') or\n                        ($exercise.reading.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.reading.solution\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($exercise.text.solution = 'yes') or ($exercise.text.solution = 'no')\">\n            <xsl:value-of select=\"$exercise.text.solution\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$exercise.reading.solution = ''\">\n            <xsl:value-of select=\"$exercise.reading.solution\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: exercise.reading.solution parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$exercise.reading.solution\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-project-statement\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-project/@statement\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-project/@statement = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-project/@statement = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-project/@statement in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-project/@statement\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($project.statement = 'yes') or\n                        ($project.statement = 'no')\">\n            <xsl:value-of select=\"$project.statement\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$project.statement = ''\">\n            <xsl:value-of select=\"$project.statement\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: project.statement parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$project.statement\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-project-hint\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-project/@hint\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-project/@hint = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-project/@hint = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-project/@hint in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-project/@hint\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($project.hint = 'yes') or\n                        ($project.hint = 'no')\">\n            <xsl:value-of select=\"$project.hint\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($project.text.hint = 'yes') or ($project.text.hint = 'no')\">\n            <xsl:value-of select=\"$project.text.hint\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$project.hint = ''\">\n            <xsl:value-of select=\"$project.hint\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: project.hint parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$project.hint\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-project-answer\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-project/@answer\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-project/@answer = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-project/@answer = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-project/@answer in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-project/@answer\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($project.answer = 'yes') or\n                        ($project.answer = 'no')\">\n            <xsl:value-of select=\"$project.answer\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($project.text.answer = 'yes') or ($project.text.answer = 'no')\">\n            <xsl:value-of select=\"$project.text.answer\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$project.answer = ''\">\n            <xsl:value-of select=\"$project.answer\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: project.answer parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$project.answer\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"entered-project-solution\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/common/exercise-project/@solution\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/common/exercise-project/@solution = 'yes'\">\n                    <xsl:text>yes</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/common/exercise-project/@solution = 'no'\">\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING:   the exercise component visibility setting (common/exercise-project/@solution in the publisher file) must be \"yes\" or \"no\", not \"<xsl:value-of select=\"$publication/common/exercise-project/@solution\"/>\".  Proceeding with the default, which is \"yes\".</xsl:message>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- deprecated, but still honored -->\n        <xsl:when test=\"($project.solution = 'yes') or\n                        ($project.solution = 'no')\">\n            <xsl:value-of select=\"$project.solution\" />\n        </xsl:when>\n        <!-- deprecated, but still honored, though with no error-checking, -->\n        <!-- erroneous values will fall into default of replacement switch -->\n        <xsl:when test=\"($project.text.solution = 'yes') or ($project.text.solution = 'no')\">\n            <xsl:value-of select=\"$project.text.solution\" />\n        </xsl:when>\n        <!-- stick with no action by author/publisher -->\n        <xsl:when test=\"$project.solution = ''\">\n            <xsl:value-of select=\"$project.solution\" />\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message >PTX:WARNING: project.solution parameter should be \"yes\" or \"no\", not \"<xsl:value-of select=\"$project.solution\" />\".  Proceeding with default value.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- The \"entered-*\" versions have been sanitized      -->\n<!-- to be \"yes\", \"no\" or \"\".  We make and use boolean -->\n<!-- switches. Unset, or mis-entered is the default,   -->\n<!-- which is to show all components until an author   -->\n<!-- decides to hide them.                             -->\n<!-- These are used in the solution manual conversion  -->\n<xsl:variable name=\"b-has-inline-statement\"\n              select=\"($entered-exercise-inline-statement = 'yes') or ($entered-exercise-inline-statement = '')\" />\n<xsl:variable name=\"b-has-inline-hint\"\n              select=\"($entered-exercise-inline-hint = 'yes') or ($entered-exercise-inline-hint = '')\" />\n<xsl:variable name=\"b-has-inline-answer\"\n              select=\"($entered-exercise-inline-answer = 'yes') or ($entered-exercise-inline-answer = '')\" />\n<xsl:variable name=\"b-has-inline-solution\"\n              select=\"($entered-exercise-inline-solution = 'yes') or ($entered-exercise-inline-solution = '')\" />\n<xsl:variable name=\"b-has-divisional-statement\"\n              select=\"($entered-exercise-divisional-statement = 'yes') or ($entered-exercise-divisional-statement = '')\" />\n<xsl:variable name=\"b-has-divisional-hint\"\n              select=\"($entered-exercise-divisional-hint = 'yes') or ($entered-exercise-divisional-hint = '')\" />\n<xsl:variable name=\"b-has-divisional-answer\"\n              select=\"($entered-exercise-divisional-answer = 'yes') or ($entered-exercise-divisional-answer = '')\" />\n<xsl:variable name=\"b-has-divisional-solution\"\n              select=\"($entered-exercise-divisional-solution = 'yes') or ($entered-exercise-divisional-solution = '')\" />\n<xsl:variable name=\"b-has-worksheet-statement\"\n              select=\"($entered-exercise-worksheet-statement = 'yes') or ($entered-exercise-worksheet-statement = '')\" />\n<xsl:variable name=\"b-has-worksheet-hint\"\n              select=\"($entered-exercise-worksheet-hint = 'yes') or ($entered-exercise-worksheet-hint = '')\" />\n<xsl:variable name=\"b-has-worksheet-answer\"\n              select=\"($entered-exercise-worksheet-answer = 'yes') or ($entered-exercise-worksheet-answer = '')\" />\n<xsl:variable name=\"b-has-worksheet-solution\"\n              select=\"($entered-exercise-worksheet-solution = 'yes') or ($entered-exercise-worksheet-solution = '')\" />\n<xsl:variable name=\"b-has-reading-statement\"\n              select=\"($entered-exercise-reading-statement = 'yes') or ($entered-exercise-reading-statement = '')\" />\n<xsl:variable name=\"b-has-reading-hint\"\n              select=\"($entered-exercise-reading-hint = 'yes') or ($entered-exercise-reading-hint = '')\" />\n<xsl:variable name=\"b-has-reading-answer\"\n              select=\"($entered-exercise-reading-answer = 'yes') or ($entered-exercise-reading-answer = '')\" />\n<xsl:variable name=\"b-has-reading-solution\"\n              select=\"($entered-exercise-reading-solution = 'yes') or ($entered-exercise-reading-solution = '')\" />\n<xsl:variable name=\"b-has-project-statement\"\n              select=\"($entered-project-statement = 'yes') or ($entered-project-statement = '')\" />\n<xsl:variable name=\"b-has-project-hint\"\n              select=\"($entered-project-hint = 'yes') or ($entered-project-hint = '')\" />\n<xsl:variable name=\"b-has-project-answer\"\n              select=\"($entered-project-answer = 'yes') or ($entered-project-answer = '')\" />\n<xsl:variable name=\"b-has-project-solution\"\n              select=\"($entered-project-solution = 'yes') or ($entered-project-solution = '')\" />\n\n\n<!-- ############## -->\n<!-- Source Options -->\n<!-- ############## -->\n\n<!-- A directory of images that *are not* generated, or reproducible,     -->\n<!-- from an author's source.  Canonical example would be a photograph.   -->\n<!-- The directory specified is always a relative path rooted at the      -->\n<!-- author's source file containing the \"pretext\" element (i.e. if       -->\n<!-- source is modularized, the \"master\" or \"top-level\" file).            -->\n<!-- Historically, authors were 100% responsible for this path, so the    -->\n<!-- default is empty.  With this publisher file specification, a         -->\n<!-- redundance in these paths (a common leading path) may be specified   -->\n<!-- once, and source can assume less about the location of these images. -->\n<!-- A leading slash is an error, since that'd be an absolute path,       -->\n<!-- while a trailing slash will be reliably added if                     -->\n<!--     (a) not present in publisher file specification                  -->\n<!--     (b) the path is not empty                                        -->\n<xsl:variable name=\"external-directory-source\">\n    <xsl:variable name=\"raw-input\" select=\"$publication/source/directories/@external\"/>\n    <xsl:choose>\n        <!-- leading path separator is an error -->\n        <xsl:when test=\"substring($raw-input, 1, 1) = '/'\">\n            <xsl:message>PTX:ERROR:   an external-image directory (source/directories/@external in the publisher file) must be a relative path and not begin with \"/\" as in \"<xsl:value-of select=\"$raw-input\"/>\".  Proceeding with the default, which is an empty string, and may lead to unexpected results.</xsl:message>\n            <xsl:text/>\n        </xsl:when>\n        <!-- trailing path separator is good and -->\n        <!-- we know it is not due to simply '/' -->\n        <xsl:when test=\"substring($raw-input, string-length($raw-input), 1) = '/'\">\n            <xsl:value-of select=\"$raw-input\"/>\n        </xsl:when>\n        <!-- if there is substance, we need to add a trailing slash -->\n        <xsl:when test=\"string-length($raw-input) > 0\">\n            <xsl:value-of select=\"concat($raw-input, '/')\"/>\n        </xsl:when>\n        <!-- specification must be empty, so we leave it that way -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Historically this was given by the \"images\" directory as a default, -->\n<!-- and it seems almost every author just ran with this.                -->\n<xsl:variable name=\"generated-directory-source\">\n    <xsl:variable name=\"raw-input\" select=\"$publication/source/directories/@generated\"/>\n    <xsl:choose>\n        <xsl:when test=\"$b-managed-directories\">\n            <xsl:choose>\n                <xsl:when test=\"substring($raw-input, 1, 1) = '/'\">\n                    <xsl:message>PTX:WARNING:   a generated-image directory (source/directories/@generated in the publisher file) must be a relative path and not begin with \"/\" as in \"<xsl:value-of select=\"$raw-input\"/>\".  Proceeding with the default, which is an empty string, and may lead to unexpected results.</xsl:message>\n                    <xsl:text/>\n                </xsl:when>\n                <!-- trailing path separator is good -->\n                <xsl:when test=\"substring($raw-input, string-length($raw-input), 1) = '/'\">\n                    <xsl:value-of select=\"$raw-input\"/>\n                </xsl:when>\n                <!-- if there is substance, we need to add a trailing slash -->\n                <xsl:when test=\"string-length($raw-input) > 0\">\n                    <xsl:value-of select=\"concat($raw-input, '/')\"/>\n                </xsl:when>\n                <!-- specification must be empty, so we leave it that way -->\n                <xsl:otherwise/>\n            </xsl:choose>\n        </xsl:when>\n        <!-- Should issue a deprecation warning (elsewhere) for this.    -->\n        <!-- directory.images *is* defined elsewhere in this stylesheet, -->\n        <!-- and defaults to \"images\", but does not have a slash, which  -->\n        <!-- is presumed for the $generated-directory variable           -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"concat($directory.images, '/')\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- For backward-compatibility, we want to know if the collection of  -->\n<!-- generated images is structured by their production method (newer) -->\n<!-- or not (older, historical).  So we create a boolean based on the  -->\n<!-- presence of the publisher file specification.                     -->\n<xsl:variable name=\"managed-directories\">\n    <xsl:if test=\"$publication/source/directories/@external = ''\">\n        <xsl:message terminate=\"yes\">PTX:FATAL:   the value of source/directories/@external in the publisher file must be nonempty</xsl:message>\n    </xsl:if>\n    <xsl:if test=\"$publication/source/directories/@generated = ''\">\n        <xsl:message terminate=\"yes\">PTX:FATAL:   the value of source/directories/@generated in the publisher file must be nonempty</xsl:message>\n    </xsl:if>\n    <xsl:choose>\n        <xsl:when test=\"$publication/source/directories/@external and $publication/source/directories/@generated\">\n            <xsl:text>yes</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"not($publication/source/directories/@external) and not($publication/source/directories/@generated)\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR:   the publisher file specifies one of source/directories/@external and source/directories/@generated, but not both. Proceeding as if neither was specified.</xsl:message>\n            <xsl:text>no</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-managed-directories\" select=\"$managed-directories = 'yes'\"/>\n\n<!-- Destination directory is hard-coded here and used in      -->\n<!-- various conversions under the managed directories scheme. -->\n<xsl:variable name=\"external-directory\">\n    <xsl:choose>\n        <xsl:when test=\"$b-managed-directories\">\n            <xsl:text>external/</xsl:text>\n        </xsl:when>\n        <!-- backwards-compatiblity, there never was any sort of   -->\n        <!-- naming/copying scheme for externally produced content -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- There was once a scheme of sorts for managing the directory -->\n<!-- where generated images landed and were found.  So we need   -->\n<!-- to preserve that logic for backward-compatibility.          -->\n<xsl:variable name=\"generated-directory\">\n    <xsl:choose>\n        <xsl:when test=\"$b-managed-directories\">\n            <xsl:value-of select=\"'generated/'\"/>\n        </xsl:when>\n        <!-- Should issue a deprecation warning (elsewhere) for this.    -->\n        <!-- directory.images *is* defined elsewhere in this stylesheet, -->\n        <!-- and defaults to \"images\", but does not have a slash, which  -->\n        <!-- is presumed for the $generated-directory variable           -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"concat($directory.images, '/')\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n\n<!-- This is a directory that may need to be copied to a      -->\n<!-- scratch location in anticipation of data files necessary -->\n<!-- for compilation of images, such as pie charts or plots   -->\n<!-- NB: this is broken and waiting for generated and external to settle down -->\n<xsl:variable name=\"data-directory\">\n    <xsl:variable name=\"raw-input\">\n        <xsl:choose>\n            <xsl:when test=\"$publication/source/directories/@data\">\n                <xsl:value-of select=\"'data'\"/>\n            </xsl:when>\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"substring($raw-input, 1, 1) = '/'\">\n            <xsl:message>PTX:ERROR:   a data directory (source/directories/@data in the publisher file) must be a relative path and not begin with \"/\" as in \"<xsl:value-of select=\"$raw-input\"/>\".  Proceeding with the default, which is an empty string, and may lead to unexpected results.</xsl:message>\n            <xsl:text/>\n        </xsl:when>\n        <!-- trailing path separator is good -->\n        <xsl:when test=\"substring($raw-input, string-length($raw-input), 1) = '/'\">\n            <xsl:value-of select=\"$raw-input\"/>\n        </xsl:when>\n        <!-- if there is substance, we need to add a trailing slash -->\n        <xsl:when test=\"string-length($raw-input) > 0\">\n            <xsl:value-of select=\"concat($raw-input, '/')\"/>\n        </xsl:when>\n        <!-- specification must be empty, so we leave it that way -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ###################### -->\n<!-- Filenames for Assembly -->\n<!-- ###################### -->\n\n<!-- These are auxiliary files provided by authors and publishers, -->\n<!-- generally for derived versions of a project.  Their use can   -->\n<!-- be found in the  pretext-assembly.xsl  file.                  -->\n<!--                                                               -->\n<!-- NB  Generally these files are given as relative paths to a    -->\n<!-- project's source file and the  document()  function will      -->\n<!-- locate them as such.  So absolute paths gaining \"extra\"       -->\n<!-- directories with spaces is not as much of a concern as with   -->\n<!-- the publisher file (see above).  But an author or publisher   -->\n<!-- can still place these files' names into an attribute of the   -->\n<!-- publisher file using a space.  This will cause the            -->\n<!-- document()  function to fail silently. The location provided  -->\n<!-- in the first argument of document() is a URI, so the proper   -->\n<!-- escape mechanism is percent-encoding.                         -->\n\n\n<!-- A file of hint|answer|solution, with @ref back to \"exercise\" -->\n<!-- so that the solutions can see limited distribution.  No real -->\n<!-- error-checking.  If not set/present, then an empty string.   -->\n<!-- NB: the empty string is checked in pretext-assembly.xsl to   -->\n<!-- prevent unnecessary manipulations of \"exercise\" and \"task\"   -->\n<!-- when no file is indicated.                                   -->\n\n<xsl:variable name=\"private-solutions-file\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/source/@private-solutions\">\n            <xsl:value-of select=\"str:replace($publication/source/@private-solutions, '&#x20;', '%20')\"/>\n        </xsl:when>\n        <!-- sentinel for no private solution manipulation -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-private-solutions\" select=\"not($private-solutions-file = '')\"/>\n\n\n<!-- ############### -->\n<!-- STACK Options -->\n<!-- ############### -->\n\n<!-- STACK server location -->\n<xsl:variable name=\"stack-server\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/stack/pi:pub-attribute[@name='server']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- ############### -->\n<!-- WeBWorK Options -->\n<!-- ############### -->\n\n<!-- How to process PG for static output -->\n<xsl:variable name=\"webwork-static-processing\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='static-processing']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Location of PG library for local static processing -->\n<xsl:variable name=\"webwork-pg-location\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='pg-location']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- WeBWorK server location and credentials for the daemon course -->\n<xsl:variable name=\"webwork-server\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='server']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"webwork-course\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='course']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"webwork-user\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='user']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"webwork-password\">\n    <xsl:choose>\n        <!-- For backwards compatibility -->\n        <xsl:when test=\"$publication/webwork/@coursepassword\">\n            <xsl:value-of select=\"$publication/webwork/@coursepassword\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='password']\" mode=\"set-pubfile-variable\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- WeBWorK tasks can be revealed incrementally or all at once -->\n<xsl:variable name=\"webwork-task-reveal\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/webwork/pi:pub-attribute[@name='task-reveal']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n\n<!-- WeBWorK problem representations are formed by Python routines  -->\n<!-- in the   pretext.py  module that communicates with a WeBWorK   -->\n<!-- server.  One file per exercise is written into this directory, -->\n<!-- named by the exercise's @assembly-id.  This variable is only   -->\n<!-- relevant for consumption of WW representations into output.    -->\n<!-- Keep this variable silent since it may not be necessary.       -->\n<xsl:variable name=\"webwork-representations-dir\">\n    <!-- Only relevant if there are WW problems present. A version    -->\n    <!-- might remove all WW problems but there is no harm in this    -->\n    <!-- variable since it will not be used, and it is silent.        -->\n    <xsl:if test=\"$original//webwork[node() or @*]\">\n        <xsl:choose>\n            <!-- Note: $generated-directory-source is never empty?    -->\n            <!-- Defaults to the very old \"directory.images\"?         -->\n            <!-- So testing for the publication file entry is better. -->\n            <xsl:when test=\"$publication/source/directories/@generated\">\n                <xsl:value-of select=\"str:replace(concat($generated-directory-source, 'webwork/'), '&#x20;', '%20')\"/>\n            </xsl:when>\n            <xsl:when test=\"$publication/source/@webwork-problems\">\n                <xsl:value-of select=\"str:replace($publication/source/@webwork-problems, '&#x20;', '%20')\"/>\n                <xsl:message>PTX:ERROR:   the publication file entry  source/@webwork-problems  is</xsl:message>\n                <xsl:message>             deprecated, please move to using managed directories</xsl:message>\n            </xsl:when>\n            <!-- no specification, so empty string for filename -->\n            <!-- this will be noted where it is employed        -->\n            <!-- no specification, so empty string for directory    -->\n            <!-- this will be noted where it is employed            -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:if>\n</xsl:variable>\n\n<!-- Dynamic problem substitutions are formed by Python routines    -->\n<!-- in the   pretext.py  module that opens HTML representations    -->\n<!-- on a local http.server process. The summary of all             -->\n<!-- are recorded in the dynamic-substitutions-file.                -->\n<xsl:variable name=\"dynamic-substitutions-file\">\n    <!-- Only relevant if there are dynamic exercises present.      -->\n    <xsl:if test=\"$original//exercise//setup\">\n        <xsl:choose>\n            <!-- Look in the publication file for the generated directory -->\n            <xsl:when test=\"$publication/source/directories/@generated\">\n                <xsl:value-of select=\"str:replace(concat($generated-directory-source, 'dynamic_subs/dynamic_substitutions.xml'), '&#x20;', '%20')\"/>\n            </xsl:when>\n            <!-- no specification, so empty string for filename -->\n            <!-- this will be noted where it is employed        -->\n            <xsl:otherwise/>\n        </xsl:choose>\n    </xsl:if>\n</xsl:variable>\n\n<!-- File of  custom/@name  elements, whose content is a custom -->\n<!-- replacement for a corresponding  custom/@ref  element in   -->\n<!-- the source.                                                -->\n<xsl:variable name=\"customizations-file\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/source/@customizations\">\n            <xsl:value-of select=\"str:replace($publication/source/@customizations, '&#x20;', '%20')\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ################## -->\n<!-- Version Components -->\n<!-- ################## -->\n\n\n<!-- A version may be specified as a list of components.  We \"fence\" -->\n<!-- the list so as to make matching a single component in the list  -->\n<!-- more reliable (don't match substrings).  A totally empty string -->\n<!-- means it has not been set, while  @include=\"\"  yields \"||\".     -->\n<xsl:variable name=\"components-fenced\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/source/version/@include\">\n            <xsl:value-of select=\"concat('|', translate(normalize-space($publication/source/version/@include), ' ', '|'), '|')\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n\n<!-- ######### -->\n<!-- Numbering -->\n<!-- ######### -->\n\n<!-- NB: the \"$assembly-*\" trees are a bit dangerous, being formed  -->\n<!-- partway through the pre-processing phase.  Their purpose, when -->\n<!-- used to query the structure of the document was to be certain  -->\n<!-- that the pre-processing was done building versions, and/or     -->\n<!-- done adding/deleting material.  We want to build numbers as    -->\n<!-- part of pre-processing, and various defaults are a function    -->\n<!-- of structure, hence the intermediate trees. (We are being very -->\n<!-- cautious here, likely the $original trees would suffice for    -->\n<!-- determining gross sructure.                                    -->\n\n<!-- User-supplied Numbering for Maximum Level     -->\n<!-- Respect switch, or provide sensible defaults  -->\n<!-- NB: level number counts the number of         -->\n<!-- separators (periods) present once qualified   -->\n<!-- with a numbered item contained within         -->\n<!-- NB: If we were to allow multiple (hence       -->\n<!-- numbered) specialized divisions of a          -->\n<!-- \"subsubsection\", then the non-zero maximums   -->\n<!-- below would go up by 1                        -->\n<!--   article/section: s.ss.sss => 3              -->\n<!--   book:            c.s.ss.sss => 4            -->\n<!--   book/part:       p.c.s.ss.sss => 5          -->\n<xsl:variable name=\"numbering-maxlevel-entered\">\n    <!-- these are the maximum possible for a given document type -->\n    <!-- the default, and also an error-check upper-limit         -->\n    <xsl:variable name=\"max-feasible\">\n        <xsl:choose>\n            <xsl:when test=\"$version-root/book/part\">5</xsl:when>\n            <xsl:when test=\"$version-root/book\">4</xsl:when>\n            <xsl:when test=\"$version-root/article/section|$version-root/article/worksheet\">3</xsl:when>\n            <xsl:when test=\"$version-root/article\">0</xsl:when>\n            <xsl:when test=\"$version-root/letter\">0</xsl:when>\n            <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n            <xsl:when test=\"$version-root/memo\">0</xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:BUG: a document type needs a maximum division level defined</xsl:message>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"candidate-maxlevel\">\n        <xsl:choose>\n            <!-- go with publisher file, check for numerical value -->\n            <xsl:when test=\"$publication/numbering/divisions/@level\">\n                <xsl:variable name=\"the-number\" select=\"$publication/numbering/divisions/@level\"/>\n                <xsl:choose>\n                    <!-- NaN does not equal *anything*, so tests if a number -->\n                    <xsl:when test=\"not(number($the-number) = number($the-number)) or ($the-number &lt; 0)\">\n                        <xsl:message>PTX:WARNING:   numbering level for divisions given in the publisher file (\"<xsl:value-of select=\"$the-number\"/>\") is not a number or is negative.  The default value will be used instead</xsl:message>\n                        <xsl:value-of select=\"$max-feasible\"/>\n                        </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$publication/numbering/divisions/@level\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <!-- respect deprecated analog -->\n            <xsl:when test=\"not($numbering.maximum.level = '')\">\n                <xsl:value-of select=\"$numbering.maximum.level\" />\n            </xsl:when>\n            <!-- various defaults are the maximum possible -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$max-feasible\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- check $candidate against upper bound, $max-feasible -->\n    <xsl:choose>\n        <xsl:when test=\"$candidate-maxlevel > $max-feasible\">\n            <xsl:message>PTX:WARNING:   numbering level set for divisions (\"<xsl:value-of select=\"$candidate-maxlevel\"/>\") is greater than the maximum possible (\"<xsl:value-of select=\"$max-feasible\"/>\") for this document type.  The default value will be used instead</xsl:message>\n            <xsl:value-of select=\"$max-feasible\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$candidate-maxlevel\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"numbering-maxlevel\" select=\"number($numbering-maxlevel-entered)\"/>\n\n<!-- TODO: next five variables have wildly similar structure,  -->\n<!-- and could best be created/defined with a single template, -->\n<!-- parameterized by (a) publisher file entry, (b) old        -->\n<!-- deprecated stringparam (or docinfo coming soon),          -->\n<!-- (c) string for messages (e.g. \"footnotes\").               -->\n<!-- EZ: make one \"default\" variable, since they all look identical -->\n\n<!-- User-supplied Numbering for Theorems, etc    -->\n<!-- Respect switch, or provide sensible defaults -->\n<xsl:variable name=\"numbering-blocks-entered\">\n    <xsl:variable name=\"default-blocks\">\n        <xsl:choose>\n            <xsl:when test=\"$version-root/book/part\">3</xsl:when>\n            <xsl:when test=\"$version-root/book\">2</xsl:when>\n            <xsl:when test=\"$version-root/article/section|$version-root/article/worksheet\">1</xsl:when>\n            <xsl:when test=\"$version-root/article\">0</xsl:when>\n            <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n            <xsl:when test=\"$version-root/letter\">0</xsl:when>\n            <xsl:when test=\"$version-root/memo\">0</xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:BUG: a document type needs a default block numbering level defined</xsl:message>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"candidate-blocks\">\n        <xsl:choose>\n            <!-- go with publisher file, check for numerical value -->\n            <xsl:when test=\"$publication/numbering/blocks/@level\">\n                <xsl:variable name=\"the-number\" select=\"$publication/numbering/blocks/@level\"/>\n                <xsl:choose>\n                    <!-- NaN does not equal *anything*, so tests if a number -->\n                    <xsl:when test=\"not(number($the-number) = number($the-number)) or ($the-number &lt; 0)\">\n                        <xsl:message>PTX:WARNING:   numbering level for blocks given in the publisher file (\"<xsl:value-of select=\"$the-number\"/>\") is not a number or is negative.  The default value will be used instead</xsl:message>\n                        <xsl:value-of select=\"$default-blocks\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$publication/numbering/blocks/@level\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <!-- respect deprecated analog -->\n            <xsl:when test=\"$numbering.theorems.level != ''\">\n                <xsl:value-of select=\"$numbering.theorems.level\" />\n            </xsl:when>\n            <!-- use a default -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$default-blocks\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- check $candidate-blocks against upper bound, $numbering-maxlevel -->\n    <xsl:choose>\n        <xsl:when test=\"$candidate-blocks > $numbering-maxlevel\">\n            <xsl:message>PTX:WARNING:   numbering level set for blocks (\"<xsl:value-of select=\"$candidate-blocks\"/>\") is greater than the maximum possible levels (\"<xsl:value-of select=\"$numbering-maxlevel\"/>\") configured.  The default value will be used instead</xsl:message>\n            <xsl:value-of select=\"$default-blocks\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$candidate-blocks\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"numbering-blocks\" select=\"number($numbering-blocks-entered)\"/>\n\n<!-- User-supplied Numbering for Projects, etc    -->\n<!-- Respect switch, or provide sensible defaults -->\n<!-- PROJECT-LIKE -->\n<!-- NB: this should become elective, more like the -->\n<!-- schemes for inline exercises and figure-like.  -->\n<xsl:variable name=\"numbering-projects-entered\">\n    <xsl:variable name=\"default-projects\">\n        <xsl:choose>\n            <xsl:when test=\"$version-root/book/part\">3</xsl:when>\n            <xsl:when test=\"$version-root/book\">2</xsl:when>\n            <xsl:when test=\"$version-root/article/section|$version-root/article/worksheet\">1</xsl:when>\n            <xsl:when test=\"$version-root/article\">0</xsl:when>\n            <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n            <xsl:when test=\"$version-root/letter\">0</xsl:when>\n            <xsl:when test=\"$version-root/memo\">0</xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:BUG: a document type needs a default project level defined</xsl:message>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"candidate-projects\">\n        <xsl:choose>\n            <!-- go with publisher file, check for numerical value -->\n            <xsl:when test=\"$publication/numbering/projects/@level\">\n                <xsl:variable name=\"the-number\" select=\"$publication/numbering/projects/@level\"/>\n                <xsl:choose>\n                    <!-- NaN does not equal *anything*, so tests if a number -->\n                    <xsl:when test=\"not(number($the-number) = number($the-number)) or ($the-number &lt; 0)\">\n                        <xsl:message>PTX:WARNING:   numbering level for projects given in the publisher file (\"<xsl:value-of select=\"$the-number\"/>\") is not a number or is negative.  The default value will be used instead</xsl:message>\n                        <xsl:value-of select=\"$default-projects\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$publication/numbering/projects/@level\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <!-- respect deprecated analog -->\n            <xsl:when test=\"$numbering.projects.level != ''\">\n                <xsl:value-of select=\"$numbering.projects.level\" />\n            </xsl:when>\n            <!-- use a default -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$default-projects\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- check $candidate-projects against upper bound, $numbering-maxlevel -->\n    <xsl:choose>\n        <xsl:when test=\"$candidate-projects > $numbering-maxlevel\">\n            <xsl:message>PTX:WARNING:   numbering level set for projects (\"<xsl:value-of select=\"$candidate-projects\"/>\") is greater than the maximum possible levels (\"<xsl:value-of select=\"$numbering-maxlevel\"/>\") configured.  The default value will be used instead</xsl:message>\n            <xsl:value-of select=\"$default-projects\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$candidate-projects\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"numbering-projects\" select=\"number($numbering-projects-entered)\"/>\n\n<!-- User-supplied Numbering for Equations        -->\n<!-- Respect switch, or provide sensible defaults -->\n<xsl:variable name=\"numbering-equations-entered\">\n    <xsl:variable name=\"default-equations\">\n        <xsl:choose>\n            <xsl:when test=\"$version-root/book/part\">3</xsl:when>\n            <xsl:when test=\"$version-root/book\">2</xsl:when>\n            <xsl:when test=\"$version-root/article/section|$version-root/article/worksheet\">1</xsl:when>\n            <xsl:when test=\"$version-root/article\">0</xsl:when>\n            <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n            <xsl:when test=\"$version-root/letter\">0</xsl:when>\n            <xsl:when test=\"$version-root/memo\">0</xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:BUG: a document type needs a default equation project level defined</xsl:message>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"candidate-equations\">\n        <xsl:choose>\n            <!-- go with publisher file, check for numerical value -->\n            <xsl:when test=\"$publication/numbering/equations/@level\">\n                <xsl:variable name=\"the-number\" select=\"$publication/numbering/equations/@level\"/>\n                <xsl:choose>\n                    <!-- NaN does not equal *anything*, so tests if a number -->\n                    <xsl:when test=\"not(number($the-number) = number($the-number)) or ($the-number &lt; 0)\">\n                        <xsl:message>PTX:WARNING:   numbering level for equations given in the publisher file (\"<xsl:value-of select=\"$the-number\"/>\") is not a number or is negative.  The default value will be used instead</xsl:message>\n                        <xsl:value-of select=\"$default-equations\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$publication/numbering/equations/@level\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <!-- respect deprecated analog -->\n            <xsl:when test=\"$numbering.equations.level != ''\">\n                <xsl:value-of select=\"$numbering.equations.level\" />\n            </xsl:when>\n            <!-- use a default -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$default-equations\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- check $candidate-equations against upper bound, $numbering-maxlevel -->\n    <xsl:choose>\n        <xsl:when test=\"$candidate-equations > $numbering-maxlevel\">\n            <xsl:message>PTX:WARNING:   numbering level set for equations (\"<xsl:value-of select=\"$candidate-equations\"/>\") is greater than the maximum possible levels (\"<xsl:value-of select=\"$numbering-maxlevel\"/>\") configured.  The default value will be used instead</xsl:message>\n            <xsl:value-of select=\"$default-equations\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$candidate-equations\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"numbering-equations\" select=\"number($numbering-equations-entered)\"/>\n\n<!-- User-supplied Numbering for Footnotes        -->\n<!-- Respect switch, or provide sensible defaults -->\n<xsl:variable name=\"numbering-footnotes-entered\">\n    <xsl:variable name=\"default-footnotes\">\n        <xsl:choose>\n            <xsl:when test=\"$version-root/book/part\">3</xsl:when>\n            <xsl:when test=\"$version-root/book\">2</xsl:when>\n            <xsl:when test=\"$version-root/article/section|$version-root/article/worksheet\">1</xsl:when>\n            <xsl:when test=\"$version-root/article\">0</xsl:when>\n            <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n            <xsl:when test=\"$version-root/letter\">0</xsl:when>\n            <xsl:when test=\"$version-root/memo\">0</xsl:when>\n            <xsl:otherwise>\n                <xsl:message>PTX:BUG: a document type needs a default footnote project level defined</xsl:message>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"candidate-footnotes\">\n        <xsl:choose>\n            <!-- go with publisher file, check for numerical value -->\n            <xsl:when test=\"$publication/numbering/footnotes/@level\">\n                <xsl:variable name=\"the-number\" select=\"$publication/numbering/footnotes/@level\"/>\n                <xsl:choose>\n                    <!-- NaN does not equal *anything*, so tests if a number -->\n                    <xsl:when test=\"not(number($the-number) = number($the-number)) or ($the-number &lt; 0)\">\n                        <xsl:message>PTX:WARNING:   numbering level for footnotes given in the publisher file (\"<xsl:value-of select=\"$the-number\"/>\") is not a number or is negative.  The default value will be used instead</xsl:message>\n                        <xsl:value-of select=\"$default-footnotes\"/>\n                    </xsl:when>\n                    <xsl:otherwise>\n                        <xsl:value-of select=\"$publication/numbering/footnotes/@level\"/>\n                    </xsl:otherwise>\n                </xsl:choose>\n            </xsl:when>\n            <!-- respect deprecated analog -->\n            <xsl:when test=\"$numbering.footnotes.level != ''\">\n                <xsl:value-of select=\"$numbering.footnotes.level\" />\n            </xsl:when>\n            <!-- use a default -->\n            <xsl:otherwise>\n                <xsl:value-of select=\"$default-footnotes\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <!-- check $candidate-footnotes against upper bound, $numbering-maxlevel -->\n    <xsl:choose>\n        <xsl:when test=\"$candidate-footnotes > $numbering-maxlevel\">\n            <xsl:message>PTX:WARNING:   numbering level set for footnotes (\"<xsl:value-of select=\"$candidate-footnotes\"/>\") is greater than the maximum possible levels (\"<xsl:value-of select=\"$numbering-maxlevel\"/>\") configured.  The default value will be used instead</xsl:message>\n            <xsl:value-of select=\"$default-footnotes\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$candidate-footnotes\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"numbering-footnotes\" select=\"number($numbering-footnotes-entered)\"/>\n\n<xsl:variable name=\"chapter-start-entered\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/numbering/divisions/@chapter-start\">\n            <xsl:variable name=\"the-number\" select=\"$publication/numbering/divisions/@chapter-start\"/>\n            <xsl:choose>\n                <!-- NaN does not equal *anything*, so tests if a number -->\n                <xsl:when test=\"not(number($the-number) = number($the-number)) or ($the-number &lt; 0)\">\n                    <xsl:message>PTX:WARNING:   starting number for chapters given in the publisher file (\"<xsl:value-of select=\"$the-number\"/>\") is not a number or is negative.  The default value will be used instead</xsl:message>\n                    <xsl:value-of select=\"1\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$publication/numbering/divisions/@chapter-start\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- default if not specified -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"1\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"chapter-start\" select=\"number($chapter-start-entered)\"/>\n\n<!-- Status quo, for no-part books and articles is \"absent\".     -->\n<!-- The \"structural\" option will change numbers and numbering   -->\n<!-- substantially.  The \"decorative\" option is the default for  -->\n<!-- books with parts, and it looks just like the LaTeX default. -->\n<xsl:variable name=\"parts\">\n    <xsl:choose>\n        <!-- no parts, just record as absent,  -->\n        <!-- but warn of ill-advised attempts  -->\n        <xsl:when test=\"not($version-root/book/part)\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/numbering/divisions/@part-structure\">\n                    <xsl:message>PTX:WARNING: your document is not a book with parts, so the publisher file  numbering/divisions/@part-structure  entry is being ignored</xsl:message>\n                </xsl:when>\n                <xsl:when test=\"$version-docinfo/numbering/division/@part\">\n                    <xsl:message>PTX:WARNING: your document is not a book with parts, and docinfo/numbering/division/@part is deprecated anyway and is being ignored</xsl:message>\n                </xsl:when>\n            </xsl:choose>\n            <!-- flag this situation -->\n            <xsl:text>absent</xsl:text>\n        </xsl:when>\n        <!-- now we have parts to deal with -->\n        <!-- first via publisher file       -->\n        <xsl:when test=\"$publication/numbering/divisions/@part-structure\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/numbering/divisions/@part-structure = 'structural'\">\n                    <xsl:text>structural</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$publication/numbering/divisions/@part-structure = 'decorative'\">\n                    <xsl:text>decorative</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING: the publisher file  numbering/divisions/@part-structure  entry should be \"decorative\" or \"structural\", not \"<xsl:value-of select=\"$publication/numbering/divisions/@part-structure\" />\".  The default will be used instead.</xsl:message>\n                    <xsl:text>decorative</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- Preserve much of old behavior, warning is elsewhere -->\n        <xsl:when test=\"$version-docinfo/numbering/division/@part\">\n            <xsl:choose>\n                <xsl:when test=\"$version-docinfo/numbering/division/@part = 'structural'\">\n                    <xsl:text>structural</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"$version-docinfo/numbering/division/@part = 'decorative'\">\n                    <xsl:text>decorative</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING: the  docinfo/numbering/division/@part  entry should be \"decorative\" or \"structural\", not \"<xsl:value-of select=\"$version-docinfo/numbering/division/@part\"/>\".  The default will be used instead.</xsl:message>\n                    <xsl:text>decorative</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- no specification, use default -->\n        <xsl:otherwise>\n            <xsl:text>decorative</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- ##################### -->\n<!-- HTML-Specific Options -->\n<!-- ##################### -->\n\n<!-- Various components need to be built with pixel widths from % based widths -->\n<!-- design-width serves as the value that percent is based on                 -->\n<xsl:variable name=\"html-design-width\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/html[@design-width != '']\">\n            <xsl:apply-templates select=\"$publisher-attribute-options/html/pi:pub-attribute[@name='design-width']\" mode=\"set-pubfile-variable\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"'600'\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Calculator -->\n<!-- Possible values are geogebra-classic, geogebra-graphing -->\n<!-- geogebra-geometry, geogebra-3d                          -->\n<!-- Default is empty, meaning the calculator is not wanted. -->\n<xsl:variable name=\"html-calculator\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/calculator/pi:pub-attribute[@name='model']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-has-calculator\" select=\"not($html-calculator = 'none')\" />\n\n<!-- Scratch ActiveCode Window -->\n<!-- Pop-up a window for testing program code.  So \"calculator-like\" but we      -->\n<!-- reserve the word \"calculator\" for the hand-held type (even if more modern). -->\n<xsl:variable name=\"html-scratch-activecode-language\">\n    <!-- Builds for a Runestone server default to having this   -->\n    <!-- available via a button, and a \"generic\" build defaults -->\n    <!-- to not having a button (or teh feature in any event).  -->\n    <xsl:variable name=\"activecode-default\">\n        <xsl:choose>\n            <xsl:when test=\"$b-host-runestone\">\n                <xsl:text>python</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>none</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:variable>\n    <xsl:variable name=\"entered-lang\" select=\"$publication/html/calculator/@activecode\"/>\n    <xsl:choose>\n        <!-- languages *always* supported, including \"none\" -->\n        <xsl:when test=\"($entered-lang = 'none') or\n                        ($entered-lang = 'python') or\n                        ($entered-lang = 'javascript') or\n                        ($entered-lang = 'html') or\n                        ($entered-lang = 'sql')\">\n            <!-- HTML has odd identifier, due to CodeMirror API, we  -->\n            <!-- use a simple one for our authors and translate here -->\n            <xsl:choose>\n                <xsl:when test=\"$entered-lang = 'html'\">\n                    <xsl:text>htmlmixed</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$entered-lang\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- languages only available on a Runestone server -->\n        <xsl:when test=\"($entered-lang = 'c') or\n                        ($entered-lang = 'cpp') or\n                        ($entered-lang = 'java') or\n                        ($entered-lang = 'kotlin') or\n                        ($entered-lang = 'python3') or\n                        ($entered-lang = 'octave')\">\n            <xsl:choose>\n                <!-- good when hosting on a server -->\n                <xsl:when test=\"$b-host-runestone\">\n                    <xsl:value-of select=\"$entered-lang\"/>\n                </xsl:when>\n                <!-- sounds good, but no, not the right build -->\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING: HTML calculator/@activecode in publisher file requests \"<xsl:value-of select=\"$entered-lang\"/>\", but this language is not supported unless the publisher file also indicates the build is meant to be hosted on a Runestone server. Proceeding with the default value for current build: \"<xsl:value-of select=\"$activecode-default\"/>\"</xsl:message>\n                    <xsl:value-of select=\"$activecode-default\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- an attempt was made, but failed to be any sort of language -->\n        <xsl:when test=\"$publication/html/calculator/@activecode\">\n            <xsl:message>PTX:WARNING: HTML calculator/@activecode in publisher file should be a programming language or \"none\", not \"<xsl:value-of select=\"$publication/html/calculator/@activecode\"/>\". Proceeding with the default value for current build: \"<xsl:value-of select=\"$activecode-default\"/>\"</xsl:message>\n            <xsl:value-of select=\"$activecode-default\"/>\n        </xsl:when>\n        <!-- no attempt to specify build-dependent default value -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$activecode-default\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"b-has-scratch-activecode\" select=\"not($html-scratch-activecode-language = 'none')\"/>\n\n<!--                                      -->\n<!-- HTML Reading Question Response Boxes -->\n<!--                                      -->\n\n<xsl:variable name=\"short-answer-responses\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/pi:pub-attribute[@name='short-answer-responses']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!--                          -->\n<!-- HTML Index Page Redirect -->\n<!--                          -->\n\n<!-- A generic \"index.html\" page will be built to redirect to an        -->\n<!-- existing page from the HTML build/chunking.  Here we simply        -->\n<!-- record the @xml:id present in the publication file and error-check -->\n<!-- the ref.  The processing and decisions about defaults, etc. are    -->\n<!-- delegated to the HTML conversion since it relies on chunk level    -->\n<!-- and associated routines (which may not be available in some other  -->\n<!-- conversion which imports this stylesheet).                         -->\n\n<xsl:variable name=\"html-index-page-entered-ref\">\n    <!-- needs to be realized as a *string*, not a node -->\n    <xsl:variable name=\"entered-ref\" select=\"string($publication/html/index-page/@ref)\"/>\n    <xsl:choose>\n        <!-- signal no choice with empty string-->\n        <xsl:when test=\"$entered-ref = ''\">\n            <xsl:text/>\n        </xsl:when>\n        <!-- bad choice, set to empty string -->\n        <xsl:when test=\"not(id($entered-ref))\">\n            <xsl:message>PTX:WARNING:   the requested HTML index page cannot be constructed since \"<xsl:value-of select=\"$entered-ref\"/>\" is not an @xml:id anywhere in the document.  Defaults will be used instead</xsl:message>\n            <xsl:text/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$entered-ref\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!--                      -->\n<!-- HTML Feedback Button -->\n<!--                      -->\n\n<xsl:variable name=\"feedback-button-href\">\n    <!-- internal variable, just for error-checking -->\n    <xsl:variable name=\"attempted-href\">\n        <xsl:if test=\"$publication/html/feedback/@href\">\n            <xsl:value-of select=\"$publication/html/feedback/@href\"/>\n        </xsl:if>\n        <!-- default to empty, as a signal of failure -->\n    </xsl:variable>\n    <!-- we error-check a bad @href *only* as a publisher -->\n    <!-- variable, and not in the deprecated situation    -->\n    <xsl:if test=\"$publication/html/feedback and ($attempted-href = '')\">\n        <xsl:message>PTX:ERROR:  an HTML \"feedback\" button with an empty, or missing, @href will be ineffective, or worse, non-existent</xsl:message>\n    </xsl:if>\n    <!-- now capture the internal variable -->\n    <xsl:value-of select=\"$attempted-href\"/>\n</xsl:variable>\n\n<!-- Pure text, no markup, no math, etc. -->\n<!-- Empty is a meaningful value         -->\n<xsl:variable name=\"feedback-button-text\">\n    <xsl:variable name=\"provided-button-text\">\n        <xsl:if test=\"$publication/html/feedback\">\n            <xsl:value-of select=\"$publication/html/feedback\"/>\n        </xsl:if>\n    </xsl:variable>\n    <!-- Clean-up *and* utilize emptieness as a signal to use -->\n    <!-- default text. If empty, provide default text in      -->\n    <!-- language of the page at implementation time          -->\n    <xsl:value-of select=\"normalize-space($provided-button-text)\"/>\n</xsl:variable>\n\n<!-- Since we capture alternate text easily, and   -->\n<!-- we *need* an @href, we use this as the signal -->\n<!-- for the election of a feedback button         -->\n<xsl:variable name=\"b-has-feedback-button\" select=\"not($feedback-button-href = '')\"/>\n\n<!--                       -->\n<!-- HTML WeBWorK Dynamism -->\n<!--                       -->\n\n<!-- In HTML output a WeBWorK problem may be static or dynamic.  This  -->\n<!-- is a dichotomy, so we make (historical) boolean variables, where  -->\n<!-- static = True, which get used in the HTML conversion.  But as a   -->\n<!-- publisher setting, we have allowed for possibilities beyond just  -->\n<!-- two.  Inline and project-like default to \"dynamic\" since they may -->\n<!-- be formative, while the others are \"static\" since they may be     -->\n<!-- summative.                                                        -->\n\n<xsl:variable name=\"webwork-inline-capability\">\n    <xsl:variable name=\"ww-default\" select=\"'dynamic'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/webwork/@inline = 'dynamic'\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/webwork/@inline = 'static'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <!-- attempted to set, but wrong -->\n        <xsl:when test=\"$publication/html/webwork/@inline\">\n            <xsl:message>PTX:WARNING: HTML WeBWorK @inline setting in publisher file should be \"static\" or \"dynamic\", not \"<xsl:value-of select=\"$publication/html/webwork/@inline\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$ww-default\"/>\"</xsl:message>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:when>\n        <!-- backwards compatibility: 'yes' indicated static,     -->\n        <!-- anything else would be interpreted as if it was 'no' -->\n        <xsl:when test=\"$webwork.inline.static = 'yes'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$webwork.inline.static != ''\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <!-- no effort to set this switch, so use default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- the variable is now either 'static' or 'dynamic' -->\n<xsl:variable name=\"b-webwork-inline-static\" select=\"$webwork-inline-capability = 'static'\" />\n\n<xsl:variable name=\"webwork-divisional-capability\">\n    <xsl:variable name=\"ww-default\" select=\"'static'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/webwork/@divisional = 'dynamic'\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/webwork/@divisional = 'static'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <!-- attempted to set, but wrong -->\n        <xsl:when test=\"$publication/html/webwork/@divisional\">\n            <xsl:message>PTX:WARNING: HTML WeBWorK @divisional setting in publisher file should be \"static\" or \"dynamic\", not \"<xsl:value-of select=\"$publication/html/webwork/@divisional\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$ww-default\"/>\"</xsl:message>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:when>\n        <!-- backwards compatibility: 'yes' indicated static,     -->\n        <!-- anything else would be interpreted as if it was 'no' -->\n        <xsl:when test=\"$webwork.divisional.static = 'yes'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$webwork.divisional.static != ''\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <!-- no effort to set this switch, so use default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- the variable is now either 'static' or 'dynamic' -->\n<xsl:variable name=\"b-webwork-divisional-static\" select=\"$webwork-divisional-capability = 'static'\" />\n\n<xsl:variable name=\"webwork-reading-capability\">\n    <xsl:variable name=\"ww-default\" select=\"'static'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/webwork/@reading = 'dynamic'\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/webwork/@reading = 'static'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <!-- attempted to set, but wrong -->\n        <xsl:when test=\"$publication/html/webwork/@reading\">\n            <xsl:message>PTX:WARNING: HTML WeBWorK @reading setting in publisher file should be \"static\" or \"dynamic\", not \"<xsl:value-of select=\"$publication/html/webwork/@reading\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$ww-default\"/>\"</xsl:message>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:when>\n        <!-- backwards compatibility: 'yes' indicated static,     -->\n        <!-- anything else would be interpreted as if it was 'no' -->\n        <xsl:when test=\"$webwork.reading.static = 'yes'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$webwork.reading.static != ''\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <!-- no effort to set this switch, so use default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- the variable is now either 'static' or 'dynamic' -->\n<xsl:variable name=\"b-webwork-reading-static\" select=\"$webwork-reading-capability = 'static'\" />\n\n<xsl:variable name=\"webwork-worksheet-capability\">\n    <xsl:variable name=\"ww-default\" select=\"'static'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/webwork/@worksheet = 'dynamic'\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/webwork/@worksheet = 'static'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <!-- attempted to set, but wrong -->\n        <xsl:when test=\"$publication/html/webwork/@worksheet\">\n            <xsl:message>PTX:WARNING: HTML WeBWorK @worksheet setting in publisher file should be \"static\" or \"dynamic\", not \"<xsl:value-of select=\"$publication/html/webwork/@worksheet\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$ww-default\"/>\"</xsl:message>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:when>\n        <!-- backwards compatibility: 'yes' indicated static,     -->\n        <!-- anything else would be interpreted as if it was 'no' -->\n        <xsl:when test=\"$webwork.worksheet.static = 'yes'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$webwork.worksheet.static != ''\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <!-- no effort to set this switch, so use default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- the variable is now either 'static' or 'dynamic' -->\n<xsl:variable name=\"b-webwork-worksheet-static\" select=\"$webwork-worksheet-capability = 'static'\" />\n\n<xsl:variable name=\"webwork-project-capability\">\n    <xsl:variable name=\"ww-default\" select=\"'dynamic'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/webwork/@project = 'dynamic'\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/webwork/@project = 'static'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <!-- attempted to set, but wrong -->\n        <xsl:when test=\"$publication/html/webwork/@project\">\n            <xsl:message>PTX:WARNING: HTML WeBWorK @project setting in publisher file should be \"static\" or \"dynamic\", not \"<xsl:value-of select=\"$publication/html/webwork/@project\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$ww-default\"/>\"</xsl:message>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:when>\n        <!-- backwards compatibility: 'yes' indicated static,     -->\n        <!-- anything else would be interpreted as if it was 'no' -->\n        <xsl:when test=\"$webwork.project.static = 'yes'\">\n            <xsl:text>static</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$webwork.project.static != ''\">\n            <xsl:text>dynamic</xsl:text>\n        </xsl:when>\n        <!-- no effort to set this switch, so use default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$ww-default\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- the variable is now either 'static' or 'dynamic' -->\n<xsl:variable name=\"b-webwork-project-static\" select=\"$webwork-project-capability = 'static'\" />\n\n\n<!--                   -->\n<!-- HTML Knowlization -->\n<!--                   -->\n\n<!-- A multitude of switches to control whether various HTML \"blocks\"      -->\n<!-- are born hidden as knowls.  Most names of resulting variables are     -->\n<!-- self-explanatory, the ones for exercises come in different varities.  -->\n<!-- Each template here ALWAYS produces \"yes\" or \"no\".  We do not make     -->\n<!-- boolean variables, since these are consumed (exclusively) in modal    -->\n<!-- \"is-hidden\" templates that produce string \"true\" or \"false\"           -->\n<!-- (respectively).  Some HTML-based conversions cannot accomodate knowls -->\n<!-- (EPUB, braille) so we turn off the \"is-hidden\" templates rather       -->\n<!-- than override these variables.                                        -->\n\n<xsl:variable name=\"knowl-theorem\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='theorem']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-proof\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='proof']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-definition\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='definition']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-example\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='example']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-example-solution\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='example-solution']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-project\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='project']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-task\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='task']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-list\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='list']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-remark\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='remark']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-objectives\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='objectives']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-outcomes\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='outcomes']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-figure\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='figure']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-table\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='table']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-listing\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='listing']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-exercise-inline\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='exercise-inline']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-exercise-divisional\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='exercise-divisional']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-exercise-worksheet\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='exercise-worksheet']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"knowl-exercise-readingquestion\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/knowl/pi:pub-attribute[@name='exercise-readingquestion']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!--                   -->\n<!-- HTML Tabbed Tasks -->\n<!--                   -->\n\n<!-- Presentational choice for exercises and projects that are  -->\n<!-- structured by task.  Value is a list of possible types,    -->\n<!-- seen in creation of four boolean variables.  Never for the -->\n<!-- fifth type: \"exercise\" inside a \"worksheet\".               -->\n\n<xsl:variable name=\"html-tabbed-tasks\" select=\"str:tokenize($publication/html/exercises/@tabbed-tasks, ' ,')\"/>\n\n<!-- A string is equal to a node-set (the result of tokenize()) -->\n<!-- if it is equal to *one* child's text value.                -->\n<xsl:variable name=\"b-html-tabbed-tasks-divisional\" select=\"'divisional' = $html-tabbed-tasks\"/>\n<xsl:variable name=\"b-html-tabbed-tasks-inline\" select=\"'inline' = $html-tabbed-tasks\"/>\n<xsl:variable name=\"b-html-tabbed-tasks-reading\" select=\"'reading' = $html-tabbed-tasks\"/>\n<xsl:variable name=\"b-html-tabbed-tasks-project\" select=\"'project' = $html-tabbed-tasks\"/>\n\n<!--               -->\n<!-- HTML Base URL -->\n<!--               -->\n\n<!-- This is used to build/reference standalone pages.    -->\n<!-- Specified as a property of the HTML conversion, it   -->\n<!-- actually gets used in the LaTeX conversion to form   -->\n<!-- QR codes and make links to HTML versions of          -->\n<!-- Asymptote figures.                                   -->\n<!-- NB: We add a trailing slash, if not authored already -->\n<xsl:variable name=\"baseurl\">\n    <xsl:variable name=\"raw-input\">\n        <!-- if publisher file has a base url, use it -->\n        <xsl:if test=\"$publication/html/baseurl/@href\">\n            <xsl:value-of select=\"$publication/html/baseurl/@href\"/>\n        </xsl:if>\n        <!-- otherwise use the default, is empty as sentinel -->\n    </xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$raw-input =''\"/>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$raw-input\"/>\n            <xsl:if test=\"not(substring($raw-input, string-length($raw-input), 1) = '/')\">\n                <xsl:text>/</xsl:text>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- For determining use in places such as static interactives -->\n<xsl:variable name=\"b-has-baseurl\" select=\"not($baseurl = '')\"/>\n\n<!--                 -->\n<!-- HTML Navigation -->\n<!--                 -->\n\n<!-- Navigation may follow two different logical models:                     -->\n<!--   (a) Linear, Prev/Next - depth-first search, linear layout like a book -->\n<!--       Previous and Next take you to the adjacent \"page\"                 -->\n<!--   (b) Tree, Prev/Up/Next - explicitly traverse the document tree        -->\n<!--       Prev and Next remain at same depth/level in tree                  -->\n<!--       Must follow a summary link to descend to finer subdivisions       -->\n<!--   'linear' is the default, 'tree' is an option                          -->\n<xsl:variable name=\"nav-logic\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/navigation/pi:pub-attribute[@name='logic']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- The \"up\" button is optional given the contents sidebar, default is to have it -->\n<!-- An up button is very desirable if you use the tree-like logic                 -->\n<xsl:variable name=\"nav-upbutton\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/navigation/pi:pub-attribute[@name='upbutton']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!--                 -->\n<!-- HTML TOC        -->\n<!--                 -->\n\n<!-- Whether or not to tag TOC as focused -->\n<xsl:variable name=\"html-toc-focused_value\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/tableofcontents/@focused != ''\">\n            <xsl:apply-templates select=\"$publisher-attribute-options/html/tableofcontents/pi:pub-attribute[@name='focused']\" mode=\"set-pubfile-variable\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <!-- check the theme for a default  -->\n            <xsl:if test=\"$html-theme/@focused-toc\">\n                <xsl:value-of select=\"$html-theme/@focused-toc\"/>\n            </xsl:if>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-html-toc-focused\" select=\"$html-toc-focused_value='yes'\"/>\n\n<!-- How many levels from root to pre-expand in focused view -->\n<xsl:variable name=\"html-toc-preexpanded-levels\">\n    <xsl:variable name=\"preexpanded-value\" >\n        <xsl:apply-templates select=\"$publisher-attribute-options/html/tableofcontents/pi:pub-attribute[@name='preexpanded-levels']\" mode=\"set-pubfile-variable\"/>\n    </xsl:variable>\n    <xsl:if test=\"not($b-html-toc-focused) and $preexpanded-value > 0\">\n        <xsl:message>PTX:WARNING:   the preexpanded-levels setting (html/tableofcontents/@preexpanded-levels in the publisher file) has no effect if the table of contents is not set to focused mode (/html/tableofcontents/@focused is \"yes\").\"</xsl:message>\n    </xsl:if>\n    <xsl:value-of select=\"$preexpanded-value\"/>\n</xsl:variable>\n\n<!--                 -->\n<!-- HTML XREFS      -->\n<!--                 -->\n\n<!-- How to render xrefs. Default is \"maximum\" which renders xrefs to divisions as -->\n<!-- links and other xrefs as knowls. \"never\" renders all xrefs as links.          -->\n<!-- \"cross-page\" renders like \"never\" within a page and \"maximum\" otherwise.       -->\n<xsl:variable name=\"html-xref-knowled\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/cross-references/pi:pub-attribute[@name='knowled']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!--                              -->\n<!-- HTML CSS Style Specification -->\n<!--                              -->\n\n<!-- A temporary variable for testing -->\n<xsl:param name=\"debug.colors\" select=\"''\"/>\n<!-- A space-separated list of CSS URLs (points to servers or local files) -->\n<xsl:param name=\"html.css.extra\"  select=\"''\" />\n<!-- A single JS file for development purposes -->\n<xsl:param name=\"html.js.extra\" select=\"''\" />\n\n<!-- Name of color file possibly used in legacy styling -->\n<xsl:variable name=\"html.css.colors\">\n    <xsl:value-of select=\"$publication/html/css/@colors\"/>\n</xsl:variable>\n\n<!--                              -->\n<!-- HTML Theme Specification     -->\n<!--                              -->\n\n<!-- Stringparam to override theme. For testing and website build. -->\n<xsl:param name=\"debug.html.theme-name\"  select=\"''\" />\n\n<xsl:variable name=\"html-theme-name\">\n    <xsl:variable name=\"warning-message\">PTX:WARNING: The \"FROMSTYLE\" style requested in publication/html/css is deprecated. Your book will be built with theme=\"TOSTYLE\". See the PreTeXt Guide for options for the newer HTML themes and their specification .</xsl:variable>\n    <xsl:choose>\n        <xsl:when test=\"$debug.html.theme-name != ''\">\n            <xsl:value-of select=\"$debug.html.theme-name\"/>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/css/@theme\">\n            <xsl:value-of select=\"$publication/html/css/@theme\"/>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/css/@style or $publication/html/css/@shell\">\n            <!-- legacy style detection and overriding -->\n            <xsl:choose>\n                <!-- crc and min are best detected via @shell -->\n                <xsl:when test=\"contains($publication/html/css/@shell, 'crc')\">\n                    <xsl:message><xsl:value-of select=\"str:replace(str:replace($warning-message, 'FROMSTYLE', 'crc'), 'TOSTYLE', 'denver')\"/></xsl:message>\n                    <xsl:text>denver</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"contains($publication/html/css/@shell, 'min')\">\n                    <xsl:message><xsl:value-of select=\"str:replace(str:replace($warning-message, 'FROMSTYLE', 'min'), 'TOSTYLE', 'tacoma')\"/></xsl:message>\n                    <xsl:text>tacoma</xsl:text>\n                </xsl:when>\n                <!-- others by @style                         -->\n                <xsl:when test=\"contains($publication/html/css/@style, 'wide')\">\n                    <xsl:message><xsl:value-of select=\"str:replace(str:replace($warning-message, 'FROMSTYLE', 'wide'), 'TOSTYLE', 'salem')\"/></xsl:message>\n                    <xsl:text>salem</xsl:text>\n                </xsl:when>\n                <xsl:when test=\"contains($publication/html/css/@style, 'oscarlevin')\">\n                    <xsl:message><xsl:value-of select=\"str:replace(str:replace($warning-message, 'FROMSTYLE', 'oscarlevin'), 'TOSTYLE', 'denver')\"/></xsl:message>\n                    <xsl:text>denver</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                  <xsl:variable name=\"legacy-style\">\n                    <xsl:value-of select=\"$publication/html/css/@style\"/>\n                  </xsl:variable>\n                  <xsl:message><xsl:value-of select=\"str:replace(str:replace($warning-message, 'FROMSTYLE', $legacy-style), 'TOSTYLE', 'default-modern')\"/></xsl:message>\n                  <xsl:text>default-modern</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>default-modern</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"b-html-theme-legacy\" select=\"contains($html-theme-name, '-legacy')\"/>\n\n<xsl:variable name=\"html-palette-name\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/css/pi:pub-attribute[@name='palette']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n\n<!-- lookup dict for known theme options -->\n<xsl:variable name=\"html-theme-option-list\">\n    <theme name=\"default-modern\" focused-toc=\"yes\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"palette\" default=\"default\"/>\n        <option name=\"primary-color\" check-contrast=\"#fff\"/>\n        <option name=\"secondary-color\" check-contrast=\"#fff\"/>\n        <option name=\"primary-color-dark\" check-contrast=\"#23241f\"/>\n    </theme>\n    <theme name=\"denver\" focused-toc=\"yes\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"palette\" default=\"default\"/>\n        <option name=\"color-main\" check-contrast=\"#fff\"/>\n        <option name=\"color-do\" check-contrast=\"#fff\"/>\n        <option name=\"color-fact\" check-contrast=\"#fff\"/>\n        <option name=\"color-meta\" check-contrast=\"#fff\"/>\n        <option name=\"primary-color-dark\" check-contrast=\"#23241f\"/>\n    </theme>\n    <theme name=\"tacoma\"  focused-toc=\"yes\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"primary-color\" check-contrast=\"#fff\"/>\n        <option name=\"primary-color-dark\" check-contrast=\"#23241f\"/>\n    </theme>\n    <theme name=\"salem\" focused-toc=\"yes\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"palette\" default=\"default\"/>\n        <option name=\"color-main\" check-contrast=\"#fff\"/>\n        <option name=\"color-do\" check-contrast=\"#fff\"/>\n        <option name=\"color-fact\" check-contrast=\"#fff\"/>\n        <option name=\"color-meta\" check-contrast=\"#fff\"/>\n        <option name=\"primary-color-dark\" check-contrast=\"#23241f\"/>\n    </theme>\n    <theme name=\"greeley\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"primary-color\" check-contrast=\"#fff\"/>\n        <option name=\"primary-color-dark\" check-contrast=\"#23241f\"/>\n    </theme>\n    <theme name=\"boulder\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"primary-color\" check-contrast=\"#fff\"/>\n        <option name=\"primary-color-dark\" check-contrast=\"#23241f\"/>\n    </theme>\n    <theme name=\"custom\">\n        <option name=\"provide-dark-mode\" default=\"yes\"/>\n        <option name=\"entry-point\" default=\"custom-theme.scss\"/>\n    </theme>\n</xsl:variable>\n\n<!-- Setup and use key to get the active theme                          -->\n<xsl:key name=\"html-theme-option-key\" match=\"theme\" use=\"@name\"/>\n<xsl:variable name=\"html-theme-rtf\">\n    <xsl:for-each select=\"exsl:node-set($html-theme-option-list)\">\n        <xsl:copy-of select=\"key('html-theme-option-key', $html-theme-name)\"/>\n    </xsl:for-each>\n</xsl:variable>\n\n<!-- Turn tree fragment into a node-set containing the selected theme   -->\n<xsl:variable name=\"html-theme\" select=\"exsl:node-set($html-theme-rtf)/theme\"/>\n\n<!-- Get an option (attr) from pub file css/theme. Available options    -->\n<!-- are constrained by html-theme-option-list above.                   -->\n<xsl:template name=\"get-theme-option\">\n    <xsl:param name=\"optname\"/>\n    <xsl:choose>\n        <!-- Must be an option in the theme or a custom theme -->\n        <xsl:when test=\"$html-theme/option[@name = $optname] or $html-theme[@name = 'custom']\">\n            <xsl:choose>\n                <xsl:when test=\"$publication/html/css/@*[name() = $optname]\">\n                    <!-- Exists in pub file, use that -->\n                    <xsl:value-of select=\"$publication/html/css/@*[name() = $optname]\"/>\n                </xsl:when>\n                <xsl:otherwise>\n                    <!-- Use default from theme def -->\n                    <xsl:value-of select=\"$html-theme/option[@name = $optname]/@default\"/>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- <xsl:otherwise>\n            <xsl:message>PTX:WARNING: HTML theme \"<xsl:value-of select=\"$html-theme-name\"/>\" does not support option \"<xsl:value-of select=\"$optname\"/>\".</xsl:message>\n        </xsl:otherwise> -->\n    </xsl:choose>\n</xsl:template>\n\n<!-- Test if current theme supports dark mode                           -->\n<xsl:variable name=\"theme-has-darkmode\">\n    <xsl:call-template name=\"get-theme-option\">\n        <xsl:with-param name=\"optname\" select=\"'provide-dark-mode'\"/>\n    </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"b-theme-has-darkmode\" select=\"$theme-has-darkmode = 'yes'\"/>\n\n<!-- Grabs the html theme options element and returns its attr/values   -->\n<!-- in JSON format for use by theme build tools.                       -->\n<xsl:variable name=\"html-theme-options\">\n    <xsl:text>{</xsl:text>\n        <xsl:text>&quot;options&quot;:{</xsl:text>\n        <!-- if inside for-each, so can't use position to selectively add -->\n        <!-- commas. So build a string with a , after each item           -->\n        <xsl:variable name=\"options-string\">\n            <xsl:for-each select=\"$publication/html/css/@*\">\n                <xsl:variable name=\"optname\" select=\"name(.)\"/>\n                <!-- only pass on values that match theme options unless custom -->\n                <xsl:if test=\"$html-theme/option[@name = $optname] or $html-theme[@name = 'custom']\">\n                    <xsl:value-of select=\"concat('&quot;', name(.), '&quot;:')\"/>\n                    <xsl:value-of select=\"concat('&quot;', ., '&quot;')\"/>\n                    <xsl:text>,</xsl:text>\n                </xsl:if>\n            </xsl:for-each>\n        </xsl:variable>\n        <!-- then trim the trailing ,                                     -->\n        <xsl:value-of select=\"substring($options-string, 1, string-length($options-string) - 1)\"/>\n        <xsl:text>}</xsl:text>\n        <xsl:text>,&quot;contrast-checks&quot;:{</xsl:text>\n        <xsl:for-each select=\"$html-theme/*[@check-contrast]\">\n            <xsl:if test=\"position() > 1\"><xsl:text>,</xsl:text></xsl:if>\n            <xsl:value-of select=\"concat('&quot;', @name, '&quot;:')\"/>\n            <xsl:value-of select=\"concat('&quot;', @check-contrast, '&quot;')\"/>\n        </xsl:for-each>\n        <xsl:text>}</xsl:text>\n    <xsl:text>}</xsl:text>\n</xsl:variable>\n\n<!--                              -->\n<!-- HTML Analytics Configuration -->\n<!--                              -->\n\n<!-- String parameters are deprecated, so in -common -->\n<!-- file, and are only consulted secondarily here   -->\n\n<!-- NB: the \"$assembly-*\" trees are a bit dangerous, being formed  -->\n<!-- partway through the pre-processing phase.  Their previous      -->\n<!-- purpose, when used to query the \"docinfo\" was to be certain    -->\n<!-- that the pre-processing was done building versions, and/or     -->\n<!-- done adding/deleting material.  They could probably be         -->\n<!-- changed to \"$original/docinfo\".  The risk is that a project    -->\n<!-- might have multiple \"docinfo\" for multiple versions (the       -->\n<!-- supported scheme for this) and would be relying on only one    -->\n<!-- \"docinfo\" surviving.  However, uses below are for deprecated   -->\n<!-- situations, so we can warn about multiple \"docinfo\" in the     -->\n<!-- deprecation messages (as has been done for html/baseurl/@href. -->\n\n<xsl:variable name=\"statcounter-project\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/analytics/@statcounter-project\">\n            <xsl:value-of select=\"$publication/html/analytics/@statcounter-project\"/>\n        </xsl:when>\n        <!-- obsolete, to deprecate -->\n        <xsl:when test=\"not($html.statcounter.project = '')\">\n            <xsl:value-of select=\"$html.statcounter.project\"/>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<xsl:variable name=\"statcounter-security\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/analytics/@statcounter-security\">\n            <xsl:value-of select=\"$publication/html/analytics/@statcounter-security\"/>\n        </xsl:when>\n        <!-- obsolete, to deprecate -->\n        <xsl:when test=\"not($html.statcounter.security = '')\">\n            <xsl:value-of select=\"$html.statcounter.security\"/>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- 2019-11-28 all settings used here are deprecated -->\n<xsl:variable name=\"google-classic-tracking\">\n    <xsl:choose>\n        <xsl:when test=\"not($html.google-classic = '')\">\n            <xsl:value-of select=\"$html.google-classic\"/>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- 2019-11-28 all settings used here are deprecated -->\n<xsl:variable name=\"google-universal-tracking\">\n    <xsl:if test=\"not($html.google-universal = '')\">\n        <xsl:value-of select=\"$html.google-universal\"/>\n    </xsl:if>\n</xsl:variable>\n\n<!-- This is the preferred Google method as of 2019-11-28 -->\n<xsl:variable name=\"google-gst-tracking\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/analytics/pi:pub-attribute[@name='google-gst']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- And boolean variables for the presence of these services -->\n<!-- 2019-11-28 Two old Google services are deprecated        -->\n<xsl:variable name=\"b-statcounter\" select=\"not($statcounter-project = '') and not($statcounter-security = '')\" />\n<xsl:variable name=\"b-google-classic\" select=\"not($google-classic-tracking = '')\" />\n<xsl:variable name=\"b-google-universal\" select=\"not($google-universal-tracking = '')\" />\n<xsl:variable name=\"b-google-gst\" select=\"not($google-gst-tracking = '')\" />\n\n<!--                           -->\n<!-- HTML Search Configuration -->\n<!--                           -->\n\n<!-- String parameters are deprecated, so in -common     -->\n<!-- file, and are only consulted secondarily here       -->\n<xsl:variable name=\"google-search-cx\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/search/@google-cx\">\n            <xsl:value-of select=\"$publication/html/search/@google-cx\"/>\n        </xsl:when>\n        <xsl:when test=\"not($html.google-search = '')\">\n            <xsl:value-of select=\"$html.google-search\"/>\n        </xsl:when>\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- And a boolean variable for the presence of this service -->\n<xsl:variable name=\"b-google-cse\" select=\"not($google-search-cx = '')\" />\n\n<!-- Possible values for search/@variant are:                      -->\n<!--                                                               -->\n<!--   \"none\" - self-explanatory, no computation, no interface     -->\n<!--   \"textbook\" - pages, divisions on pages, blocks, p[term],    -->\n<!--                chronological and indented presentation        -->\n<!--   \"reference\" - pages, divisions, all children of a division  -->\n<!--                 (blocks, first-class \"p\")                     -->\n<!--   \"default\" - historical, equal to \"textbook\"                 -->\n<!--                                                               -->\n<!-- Resulting variable values are \"none\", \"textbook\", \"reference\" -->\n<!-- and *not* \"default\", it was an historical fudge.              -->\n<!-- Note the boolean variable for the no-search case              -->\n<xsl:variable name=\"native-search-variant\">\n    <xsl:variable name=\"default-native-search\" select=\"'textbook'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/html/search/@variant = 'none'\">\n            <xsl:text>none</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/search/@variant = 'textbook'\">\n            <xsl:text>textbook</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/search/@variant = 'reference'\">\n            <xsl:text>reference</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/search/@variant = 'default'\">\n            <!-- change to default variable once this becomes opt-out -->\n            <xsl:text>textbook</xsl:text>\n        </xsl:when>\n        <!-- set, but not correct, so inform and use default -->\n        <xsl:when test=\"$publication/html/search/@variant\">\n            <xsl:message>PTX:WARNING: HTML search/@variant in publisher file should be \"none\", \"textbook\", \"reference\" or \"default\", not \"<xsl:value-of select=\"$publication/html/search/@variant\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$default-native-search\"/>\"</xsl:message>\n            <xsl:value-of select=\"$default-native-search\"/>\n        </xsl:when>\n        <!-- unset, so use default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$default-native-search\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n    <!-- warn if Google search is also set               -->\n    <!-- TODO: implementation might prefer native search -->\n    <xsl:if test=\"$b-google-cse and $publication/html/search/@variant and not($publication/html/search/@variant = 'none')\">\n        <xsl:message>PTX:WARNING: specifying HTML search/@variant AND search/@google-cx in publisher file is not possible and will lead to unpredictable results</xsl:message>\n    </xsl:if>\n</xsl:variable>\n\n<xsl:variable name=\"has-native-search\" select=\"not($native-search-variant = 'none')\"/>\n\n<!-- Add a boolean variable to toggle \"enhanced privacy mode\" -->\n<!-- This is an option for embedded YouTube videos            -->\n<!-- and possibly other platforms at a later date.            -->\n<!-- The default is for privacy (fewer tracking cookies)      -->\n<xsl:variable name=\"embedded-video-privacy\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/video/pi:pub-attribute[@name='privacy']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-video-privacy\" select=\"$embedded-video-privacy = 'yes'\"/>\n\n<!--                       -->\n<!-- HTML Platform Options -->\n<!--                       -->\n\n<!-- 2019-12-17:  Under development, not documented -->\n\n<!-- 2024-01-18: the value of this option is queried by the Python -->\n<!-- routines, so keep their features and documentation in sync.   -->\n\n<xsl:variable name=\"host-platform\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/platform/pi:pub-attribute[@name='host']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Intent is for exactly one of these boolean to be true -->\n<!-- 'web' is the default, so we may not condition with it -->\n<!-- 2019-12-19: only 'web' vs. 'runestone' implemented    -->\n<xsl:variable name=\"b-host-web\"       select=\"$host-platform = 'web'\"/>\n<xsl:variable name=\"b-host-runestone\" select=\"$host-platform = 'runestone'\"/>\n\n<!-- To create a standalone html document with all css and js served by CDN -->\n<!-- we can select platform/@portable to \"yes\"                              -->\n<xsl:variable name=\"portable-html\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/platform/pi:pub-attribute[@name='portable']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-portable-html\" select=\"$portable-html = 'yes'\"/>\n\n<!-- HTML chunk-level defaults, available to any stylesheet that    -->\n<!-- needs to compute HTML filenames via the \"containing-filename\"  -->\n<!-- template (pretext-common.xsl) without importing the full       -->\n<!-- pretext-html.xsl.  Uses $version-root rather than $root        -->\n<!-- because this is computed before later assembly passes.  The    -->\n<!-- contract (documented at the definition of $version-root in     -->\n<!-- pretext-assembly.xsl) is that no assembly pass alters the      -->\n<!-- gross document structure (book/article type, part/chapter/     -->\n<!-- section hierarchy), so $version-root is reliable for these     -->\n<!-- top-level queries.  Same contract relied upon by $toc-level.   -->\n<xsl:variable name=\"html-chunk-level\">\n    <xsl:choose>\n        <!-- portable html always gets chunk level 0 -->\n        <xsl:when test=\"$b-portable-html\">0</xsl:when>\n        <xsl:when test=\"$chunk-level-entered != ''\">\n            <xsl:value-of select=\"$chunk-level-entered\" />\n        </xsl:when>\n        <xsl:when test=\"$version-root/book/part\">3</xsl:when>\n        <xsl:when test=\"$version-root/book\">2</xsl:when>\n        <xsl:when test=\"$version-root/article/section\">1</xsl:when>\n        <xsl:when test=\"$version-root/article\">0</xsl:when>\n        <xsl:when test=\"$version-root/slideshow\">0</xsl:when>\n        <xsl:when test=\"$version-root/letter\">0</xsl:when>\n        <xsl:when test=\"$version-root/memo\">0</xsl:when>\n        <xsl:otherwise>\n            <xsl:message>PTX:ERROR: HTML chunk level not determined</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!--                            -->\n<!-- HTML Favicon Specification -->\n<!--                            -->\n\n<xsl:variable name=\"favicon-scheme\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/pi:pub-attribute[@name='favicon']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!--                            -->\n<!-- HTML Embed Page button     -->\n<!--                            -->\n\n<xsl:variable name=\"embed-button\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/pi:pub-attribute[@name='embed-button']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-has-embed-button\" select=\"$embed-button = 'yes'\"/>\n\n\n<!--                            -->\n<!-- HTML Banner options        -->\n<!--                            -->\n<xsl:variable name=\"html-banner-subtitle\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/banner/pi:pub-attribute[@name='subtitle']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-html-banner-subtitle\" select=\"$html-banner-subtitle = 'yes'\"/>\n\n<xsl:variable name=\"html-banner-byline\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/html/banner/pi:pub-attribute[@name='byline']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-html-banner-byline\" select=\"$html-banner-byline = 'yes'\"/>\n\n\n<!-- ##################### -->\n<!-- EPUB-Specific Options -->\n<!-- ##################### -->\n\n<!-- Cover image specification -->\n\n<!-- Author-specified relative to source external directory -->\n<xsl:variable name=\"epub-cover-base-filename\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/epub/cover/pi:pub-attribute[@name='front']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- If the author does not say, eventually we will try to build a cover -->\n<xsl:variable name=\"b-authored-cover\" select=\"not(normalize-space($epub-cover-base-filename)) = ''\"/>\n\n<!-- This is where the file lives within the author's version of -->\n<!-- the external files, so eventually Python will pick this up  -->\n<xsl:variable name=\"epub-cover-source\">\n    <xsl:value-of select=\"$external-directory-source\"/>\n    <xsl:value-of select=\"$epub-cover-base-filename\"/>\n</xsl:variable>\n\n<!-- This is where the image file lands in the final XHTML directory. -->\n<!-- So this gets written into several constituents of the EPUB files -->\n<!-- as the (special) cover image.  When an author does not provide   -->\n<!-- the file, the Python makes one and it is always placed in the    -->\n<!-- top-level of the EPUB package.                                   -->\n<xsl:variable name=\"epub-cover-dest\">\n    <xsl:choose>\n        <xsl:when test=\"$b-authored-cover\">\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:value-of select=\"$epub-cover-base-filename\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:text>cover.png</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n\n<!-- ###################### -->\n<!-- LaTeX-Specific Options -->\n<!-- ###################### -->\n\n<!-- Sides are given as \"one\" or \"two\".  And we cannot think of    -->\n<!-- any other options.  So we build, and use, a boolean variable.   -->\n<!-- But if a third option aries, we can use it, and switch away  -->\n<!-- from the boolean variable without the author knowing. -->\n<xsl:variable name=\"latex-sides\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='sides']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:template match=\"latex/pi:pub-attribute[@name='sides']\" mode=\"get-default-pub-variable\">\n    <xsl:choose>\n        <xsl:when test=\"$b-latex-print\">\n            <xsl:text>two</xsl:text>\n        </xsl:when>\n        <xsl:otherwise> <!-- electronic -->\n            <xsl:text>one</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n<!-- We have \"one\" or \"two\", or junk from the deprecated string parameter -->\n<xsl:variable name=\"b-latex-two-sides\" select=\"$latex-sides = 'two'\"/>\n\n<!-- Print versus electronic.  Historically \"yes\" versus \"no\" -->\n<!-- and that seems stable enough, as in, we don't need to    -->\n<!-- contemplate some third variant of LaTeX output.          -->\n<xsl:variable name=\"latex-print\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='print']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- We have \"yes\" or \"no\", or possibly junk from the deprecated string    -->\n<!-- parameter, so we want the default (false) to be more likely than not. -->\n<xsl:variable name=\"b-latex-print\" select=\"not($latex-print = 'no')\"/>\n\n<!-- Always open on odd page in one-sided version, to        -->\n<!-- to faciltate matching page-for-page with two-sided      -->\n<!-- version.                                                -->\n<!-- \"add-blanks\" means make a blank page on the even page   -->\n<!--              preceding open odd page, when necessary    -->\n<!-- \"skip-pages\" means skip over an even page number in the -->\n<!--              pagination to open on an odd page number,  -->\n<!--              when necessary                             -->\n<!-- \"no\"         continuous pagination, parts/chapters/etc  -->\n<!--              can open on either even or odd pages       -->\n<xsl:variable name=\"latex-open-odd\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='open-odd']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Used to determine which xsl file to processess with.  Current options are based on what is present in xsl/latex.   -->\n<!-- To build with `pretext-latex-styleName.xsl` variable should have valuse `stylename`. Default of empty string means -->\n<!-- build with the default `pretext-latex.xsl` -->\n<xsl:variable name=\"latex-style\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='latex-style']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- \"none\" (default) or \"underline\": whether hyperlinks (xref, url) -->\n<!-- receive visual highlighting in the LaTeX/PDF output.            -->\n<xsl:variable name=\"latex-link-highlight\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='link-highlight']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- LaTeX/Page -->\n\n<!-- Right Alignment -->\n<!-- guaranteed to be 'flush' or 'ragged'   -->\n<!-- N.B. let HTML be different/independent -->\n<xsl:variable name=\"latex-right-alignment\">\n    <xsl:variable name=\"default-align\" select=\"'flush'\"/>\n    <xsl:choose>\n        <xsl:when test=\"$publication/latex/page/@right-alignment = 'flush'\">\n            <xsl:text>flush</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$publication/latex/page/@right-alignment = 'ragged'\">\n            <xsl:text>ragged</xsl:text>\n        </xsl:when>\n        <!-- attempted to set, but wrong -->\n        <xsl:when test=\"$publication/latex/page/@right-alignment\">\n            <xsl:message>PTX:WARNING: LaTeX right-alignment setting in publisher file should be \"flush\" or \"ragged\", not \"<xsl:value-of select=\"$publication/latex/page/@right-alignment\"/>\". Proceeding with default value: \"<xsl:value-of select=\"$default-align\"/>\"</xsl:message>\n            <xsl:value-of select=\"$default-align\"/>\n        </xsl:when>\n        <!-- or respect deprecated stringparam in use, text.alignment -->\n        <xsl:when test=\"$text.alignment = 'justify'\">\n            <xsl:text>flush</xsl:text>\n        </xsl:when>\n        <xsl:when test=\"$text.alignment = 'raggedright'\">\n            <xsl:text>ragged</xsl:text>\n        </xsl:when>\n        <!-- no attempt at all, so default -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$default-align\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Bottom Alignment -->\n<!-- guaranteed to be 'flush' or 'ragged'            -->\n<!-- LaTeX varies this according to oneside, twoside -->\n<!-- https://www.sascha-frank.com/page-break.html    -->\n<!-- N.B. makes no sense for HTML                    -->\n<xsl:variable name=\"latex-bottom-alignment\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/page/pi:pub-attribute[@name='bottom-alignment']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- LaTeX worksheet formatting -->\n<!-- By default, worksheets in LaTeX will be formatted -->\n<!-- with specified margins, pages, and workspace.     -->\n<!-- Publisher switch to format continuously with      -->\n<!-- other divisions here                              -->\n<xsl:variable name=\"latex-worksheet-formatted\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/worksheet/pi:pub-attribute[@name='formatted']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-latex-worksheet-formatted\" select=\"$latex-worksheet-formatted = 'yes'\"/>\n\n<!-- LaTeX insertions -->\n<!-- Pagebreaks-->\n<xsl:variable name=\"latex-pagebreaks-string\">\n    <xsl:variable name=\"join-latex-pagebreaks\">\n        <xsl:for-each select=\"$publication/latex/insertions/@pagebreaks\">\n            <xsl:text> </xsl:text>\n            <xsl:value-of select=\"normalize-space(.)\"/>\n        </xsl:for-each>\n    </xsl:variable>\n    <xsl:value-of select=\"substring-after($join-latex-pagebreaks, ' ')\"/>\n</xsl:variable>\n\n<!-- For historical reasons, this variable has \"pt\" as part -->\n<!-- of its value.  A change would need to be coordinated   -->\n<!-- with every application in the -latex conversion.       -->\n<xsl:variable name=\"font-size\">\n    <xsl:choose>\n        <!-- via publication file -->\n        <xsl:when test=\"$publication/latex/@font-size\">\n            <!-- provisional, convenience -->\n            <xsl:variable name=\"fs\" select=\"$publication/latex/@font-size\"/>\n            <xsl:choose>\n                <xsl:when test=\"($fs =  '8') or\n                                ($fs =  '9') or\n                                ($fs = '10') or\n                                ($fs = '11') or\n                                ($fs = '12') or\n                                ($fs = '14') or\n                                ($fs = '17') or\n                                ($fs = '20')\">\n                    <xsl:value-of select=\"$fs\"/>\n                    <xsl:text>pt</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:message>PTX:WARNING: LaTeX @font-size in publication file should be 8, 9, 10, 11, 12, 14, 17 or 20 points, not \"<xsl:value-of select=\"$publication/latex/@font-size\"/>\".  Proceeding with default value: \"10\"</xsl:message>\n                    <xsl:text>10pt</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- via deprecated stringparam: assumes \"pt\" as the unit of measure   -->\n        <!-- (this is recycled code, so no real attempt to do better)          -->\n        <xsl:when test=\"not($latex.font.size = '')\">\n            <xsl:choose>\n                <xsl:when test=\"$latex.font.size='10pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='12pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='11pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='8pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='9pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='14pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='17pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:when test=\"$latex.font.size='20pt'\"><xsl:value-of select=\"$latex.font.size\" /></xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>10pt</xsl:text>\n                    <xsl:message>PTX:ERROR   the *deprecated* latex.font.size parameter must be 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, or 20pt, not \"<xsl:value-of select=\"$latex.font.size\" />\".  Using the default (\"10pt\")</xsl:message>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <!-- no publication file entry, no deprecated  -->\n        <!-- string parameter, so use the default value -->\n        <xsl:otherwise>\n            <xsl:text>10pt</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- Simple - just feeds into a LaTeX \\geometry{} -->\n<xsl:variable name=\"latex-page-geometry\">\n    <xsl:choose>\n        <!-- prefer publication file entry -->\n        <xsl:when test=\"$publication/latex/page/geometry\">\n            <xsl:value-of select=\"$publication/latex/page/geometry\"/>\n        </xsl:when>\n        <!-- deprecated string parameter in use-->\n        <xsl:when test=\"($latex.geometry != '')\">\n            <xsl:value-of select=\"$latex.geometry\"/>\n        </xsl:when>\n        <!-- empty is the signal to not use -->\n        <xsl:otherwise/>\n    </xsl:choose>\n</xsl:variable>\n\n<!-- For crop marks to make sense, a paper size must be known -->\n<!-- There is no error-checking here, any non-empty value     -->\n<!-- initiates the crop marks and becomes the paper size.     -->\n<!-- Values from the  crop  package, 2023-05-19 are:          -->\n<!--     a0, a1, a2, a3, a4, a5, a6,                          -->\n<!--     b0, b1, b2, b3, b4, b5, b6,                          -->\n<!--     letter, legal, executive                             -->\n<xsl:variable name=\"latex-crop-papersize\">\n    <xsl:choose>\n        <xsl:when test=\"$publication/latex/page/@crop-marks = 'none'\"/>\n        <xsl:when test=\"not($publication/latex/page/@crop-marks)\"/>\n        <xsl:otherwise>\n            <xsl:value-of select=\"$publication/latex/page/@crop-marks\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<!-- empty implies feature not selected -->\n<xsl:variable name=\"b-latex-crop-marks\" select=\"not($latex-crop-papersize = '')\"/>\n\n<!-- The default for the use of page references varies, so that  -->\n<!-- particular logic is in the -latex conversion.  Here we just -->\n<!-- sanitize to \"yes\", \"no\" or empty (i.e. ignored)             -->\n<xsl:variable name=\"latex-pageref\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='pageref']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Draft Copies                                              -->\n<!-- Various options for working copies for authors            -->\n<!-- (1) LaTeX's draft mode                                    -->\n<!-- (2) Crop marks on letter paper, centered                  -->\n<!--     presuming geometry sets smaller page size             -->\n<!--     with paperheight, paperwidth                          -->\n<xsl:variable name=\"latex-draft-mode\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='draft']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-latex-draft-mode\" select=\"$latex-draft-mode = 'yes'\"/>\n\n<!-- LaTeX/Asymptote -->\n\n<!-- Add a boolean variable to toggle links for Asymptote images in PDF.    -->\n<!-- If a baseurl is set, and an HTML version is available with interactive -->\n<!-- WebGL images the publisher may want static images in the PDF to link   -->\n<!-- to the interactive images online.                                      -->\n<xsl:variable name=\"asymptote-links\">\n    <xsl:choose>\n        <!-- fail automatically and silently for print -->\n        <xsl:when test=\"$b-latex-print\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- proceed when requested, so long as there is a base URL -->\n        <xsl:when test=\"$publication/latex/asymptote/@links = 'yes'\">\n            <xsl:choose>\n                <!-- fail when no base URL is given -->\n                <xsl:when test=\"not($b-has-baseurl)\">\n                    <xsl:message>PTX WARNING: baseurl must be set in publisher file to enable links from Asymptote images</xsl:message>\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"$publication/latex/asymptote/@links = 'no'\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- set, but not correct, so inform and use default -->\n        <xsl:when test=\"$publication/latex/asymptote/@links\">\n            <xsl:message>PTX WARNING: LaTeX links to Asymptote publisher file should be \"yes\" (links to HTML) or \"no\" (no links), not \"<xsl:value-of select=\"$publication/latex/asymptote/@links\"/>\". Proceeding with default value: \"no\" (no links)</xsl:message>\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- unset, use the default, which is \"no\" since -->\n        <!-- it also needs action to set base URL        -->\n        <xsl:otherwise>\n            <xsl:text>no</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-asymptote-links\" select=\"$asymptote-links = 'yes'\"/>\n\n<!-- Add another boolean to turn on links in html -->\n<!-- so reader can click to open a larger version -->\n\n<xsl:variable name=\"asymptote-html-links\">\n    <xsl:choose>\n        <!-- proceed when requested, so long as there is a base URL -->\n        <xsl:when test=\"$publication/html/asymptote/@links = 'yes'\">\n            <xsl:choose>\n                <!-- fail when no base URL is given -->\n                <xsl:when test=\"not($b-has-baseurl)\">\n                    <xsl:message>PTX WARNING: baseurl must be set in publisher file to enable links from Asymptote images</xsl:message>\n                    <xsl:text>no</xsl:text>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:text>yes</xsl:text>\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:when>\n        <xsl:when test=\"$publication/html/asymptote/@links = 'no'\">\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- set, but not correct, so inform and use default -->\n        <xsl:when test=\"$publication/html/asymptote/@links\">\n            <xsl:message>PTX WARNING: HTML links to Asymptote publisher file should be \"yes\" (adds link below image) or \"no\" (no links), not \"<xsl:value-of select=\"$publication/latex/asymptote/@links\"/>\". Proceeding with default value: \"no\" (no links)</xsl:message>\n            <xsl:text>no</xsl:text>\n        </xsl:when>\n        <!-- unset, use the default, which is \"no\" since -->\n        <!-- it also needs action to set base URL        -->\n        <xsl:otherwise>\n            <xsl:text>no</xsl:text>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-asymptote-html-links\" select=\"$asymptote-html-links = 'yes'\"/>\n\n<xsl:variable name=\"latex-snapshot\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/pi:pub-attribute[@name='snapshot']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<xsl:variable name=\"b-latex-snapshot\" select=\"$latex-snapshot = 'yes'\"/>\n\n<!-- LaTeX Cover Pages -->\n\n<!-- Front and back, a filename and a flag -->\n\n<xsl:variable name=\"latex-front-cover-filename\">\n    <xsl:choose>\n        <!-- post-managed directories, but $external-directory -->\n        <!-- should preserve backward-compatibilty             -->\n        <xsl:when test=\"$publication/latex/cover/@front\">\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:value-of select=\"$publication/latex/cover/@front\"/>\n        </xsl:when>\n        <otherwise/>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-has-latex-front-cover\" select=\"not($latex-front-cover-filename = '')\"/>\n\n<xsl:variable name=\"latex-back-cover-filename\">\n    <xsl:choose>\n        <!-- post-managed directories, but $external-directory -->\n        <!-- should preserve backward-compatibilty             -->\n        <xsl:when test=\"$publication/latex/cover/@back\">\n            <xsl:value-of select=\"$external-directory\"/>\n            <xsl:value-of select=\"$publication/latex/cover/@back\"/>\n        </xsl:when>\n        <otherwise/>\n    </xsl:choose>\n</xsl:variable>\n<xsl:variable name=\"b-has-latex-back-cover\" select=\"not($latex-back-cover-filename = '')\"/>\n\n\n<!-- ########### -->\n<!-- LaTeX Fonts -->\n<!-- ########### -->\n\n<xsl:variable name=\"latex-font-main-regular\">\n    <!-- having a main font specification *requires* a @regular -->\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/fonts/main/pi:pub-attribute[@name='regular']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<!-- A convenience boolean variable for indication of alternate main font -->\n<xsl:variable name=\"b-alternate-main-font\" select=\"not($latex-font-main-regular = '')\"/>\n\n<xsl:variable name=\"latex-font-main-options\">\n    <!-- having a main font specification *requires* a @regular -->\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/fonts/main/pi:pub-attribute[@name='options']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<xsl:variable name=\"latex-font-math-regular\">\n    <!-- having a math font specification *requires* a @regular -->\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/fonts/math/pi:pub-attribute[@name='regular']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<!-- A convenience boolean variable for indication of alternate math font -->\n<xsl:variable name=\"b-alternate-math-font\" select=\"not($latex-font-math-regular = '')\"/>\n\n<xsl:variable name=\"latex-font-math-options\">\n    <!-- having a math font specification *requires* a @regular -->\n    <xsl:apply-templates select=\"$publisher-attribute-options/latex/fonts/math/pi:pub-attribute[@name='options']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- ########################### -->\n<!-- Reveal.js Slideshow Options -->\n<!-- ########################### -->\n\n<!-- Reveal.js Theme -->\n\n<xsl:variable name=\"reveal-theme\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/appearance/pi:pub-attribute[@name='theme']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- A space-separated list of CSS URLs (points to servers or local files) -->\n<xsl:variable name=\"reveal-custom-css\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/appearance/pi:pub-attribute[@name='custom-css']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Reveal.js Controls Back Arrows -->\n\n<xsl:variable name=\"reveal-control-backarrow\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/controls/pi:pub-attribute[@name='backarrows']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Reveal.js Controls (on-screen navigation) -->\n\n<xsl:variable name=\"reveal-control-display\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/controls/pi:pub-attribute[@name='display']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<!-- Convert \"yes\"/\"no\" to a boolean variable -->\n<xsl:variable name=\"b-reveal-control-display\" select=\"$reveal-control-display= 'yes'\"/>\n\n<!-- Reveal.js Controls Layout -->\n\n<xsl:variable name=\"reveal-control-layout\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/controls/pi:pub-attribute[@name='layout']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Reveal.js Controls Tutorial (animated arrows) -->\n\n<xsl:variable name=\"reveal-control-tutorial\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/controls/pi:pub-attribute[@name='tutorial']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n<!-- Convert \"yes\"/\"no\" to a boolean variable -->\n<xsl:variable name=\"b-reveal-control-tutorial\" select=\"$reveal-control-tutorial= 'yes'\"/>\n\n<!-- Reveal.js Navigation Mode -->\n\n<xsl:variable name=\"reveal-navigation-mode\">\n    <xsl:apply-templates select=\"$publisher-attribute-options/revealjs/navigation/pi:pub-attribute[@name='mode']\" mode=\"set-pubfile-variable\"/>\n</xsl:variable>\n\n<!-- Reveal.js Resources file location -->\n\n<!-- String to prefix  reveal.js  resources -->\n<xsl:variable name=\"reveal-root\">\n    <!-- CDN is used twice, so just edit here -->\n    <!-- NB: deprecation is frozen -->\n    <xsl:variable name=\"cdn-url\">\n        <xsl:text>https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.1.2</xsl:text>\n    </xsl:variable>\n\n    <xsl:choose>\n        <!-- if publisher.xml file has CDN option specified, use it       -->\n        <!-- keep this URL updated, but not for the deprecation situation -->\n        <xsl:when test=\"$publication/revealjs/resources/@host = 'cdn'\">\n            <xsl:value-of select=\"$cdn-url\"/>\n        </xsl:when>\n        <!-- if publisher.xml file has the local option specified, use it -->\n        <xsl:when test=\"$publication/revealjs/resources/@host = 'local'\">\n            <xsl:text>.</xsl:text>\n        </xsl:when>\n        <!-- Experimental - just some file path/url -->\n        <xsl:when test=\"$publication/revealjs/resources/@host\">\n            <xsl:value-of select=\"$publication/revealjs/resources/@host\"/>\n        </xsl:when>\n        <!-- default to the CDN if no specification -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$cdn-url\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:variable>\n\n\n<!-- ########################################### -->\n<!-- Set Values/Defaults for Publisher Variables -->\n<!-- ########################################### -->\n\n<!-- The pi:publisher tree should mirror the official list of options   -->\n<!-- for publisher file attributes. Each pi:pub-attribute has a name.   -->\n<!-- The following attributes are optional.                             -->\n<!-- default: default string to use (should not contain spaces)         -->\n<!-- options: space-separated lits of options aside from the default    -->\n<!-- freeform: if 'yes' then pub attributee can be anything             -->\n<!-- stringparam: a stringparam that can override the pubfile entry     -->\n<!-- legacy-stringparam: a deprecated stringparam, last in chain        -->\n<!-- legacy-options: space separated list of retired options            -->\n\n<pi:publisher>\n    <common>\n        <pi:pub-attribute name=\"emdash-space\" default=\"none\" options=\"thin\" legacy-stringparam=\"emdash.space\"/>\n        <chunking>\n            <pi:pub-attribute name=\"level\" default=\"\" options=\"0 1 2 3 4 5 6\" stringparam=\"debug.chunk\" legacy-stringparam=\"chunk.level\"/>\n        </chunking>\n        <tableofcontents>\n            <pi:pub-attribute name=\"level\" options=\"0 1 2 3 4 5 6\" legacy-stringparam=\"toc.level\"/>\n        </tableofcontents>\n        <fillin>\n            <pi:pub-attribute name=\"textstyle\" default=\"underline\" options=\"box shade\"/>\n            <pi:pub-attribute name=\"mathstyle\" default=\"shade\" options=\"underline box\"/>\n        </fillin>\n        <qrcode>\n            <pi:pub-attribute name=\"image\" default=\"\" freeform=\"yes\"/>\n        </qrcode>\n        <mermaid>\n            <pi:pub-attribute name=\"theme\" default=\"default\" options=\"dark forest light\"/>\n            <pi:pub-attribute name=\"layout-engine\" default=\"dagre\" options=\"elk\"/>\n        </mermaid>\n        <journal>\n            <pi:pub-attribute name=\"name\" default=\"\" freeform=\"yes\"/>\n        </journal>\n        <!-- The default CSL style file is empty so that this  -->\n        <!-- feature can be \"opt in\", initially, and perhaps   -->\n        <!-- forever.  A good first choice for a CSL style is  -->\n        <!-- the \"harvard1\" style since it is copied into the  -->\n        <!-- right place in the citeproc-py distribution and   -->\n        <!-- should be present out-of-the-box.                 -->\n        <citation-stylesheet-language>\n            <pi:pub-attribute name=\"style\" default=\"\" freeform=\"yes\"/>\n        </citation-stylesheet-language>\n        <worksheet>\n            <pi:pub-attribute name=\"margin\" default=\"0.75in\" freeform=\"yes\"/>\n            <pi:pub-attribute name=\"top\" freeform=\"yes\"/>\n            <pi:pub-attribute name=\"right\" freeform=\"yes\"/>\n            <pi:pub-attribute name=\"bottom\" freeform=\"yes\"/>\n            <pi:pub-attribute name=\"left\" freeform=\"yes\"/>\n            <first-page-header>\n                <pi:pub-attribute name=\"left\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"center\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"right\" default=\"\" freeform=\"yes\"/>\n            </first-page-header>\n            <first-page-footer>\n                <pi:pub-attribute name=\"left\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"center\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"right\" default=\"\" freeform=\"yes\"/>\n            </first-page-footer>\n            <running-header>\n                <pi:pub-attribute name=\"left\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"center\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"right\" default=\"\" freeform=\"yes\"/>\n            </running-header>\n            <running-footer>\n                <pi:pub-attribute name=\"left\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"center\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"right\" default=\"\" freeform=\"yes\"/>\n            </running-footer>\n        </worksheet>\n    </common>\n    <html>\n        <pi:pub-attribute name=\"short-answer-responses\" default=\"graded\" options=\"always\"/>\n        <pi:pub-attribute name=\"favicon\" default=\"none\" options=\"simple\"/>\n        <pi:pub-attribute name=\"embed-button\" default=\"no\" options=\"yes\"/>\n        <pi:pub-attribute name=\"design-width\" freeform=\"yes\"/>\n        <calculator>\n            <pi:pub-attribute name=\"model\" default=\"none\" options=\"geogebra-classic geogebra-graphing geogebra-geometry geogebra-3d\" legacy-stringparam=\"html.calculator\"/>\n        </calculator>\n        <css>\n            <pi:pub-attribute name=\"palette\" freeform=\"yes\"/>\n        </css>\n        <knowl>\n            <pi:pub-attribute name=\"theorem\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.theorem\"/>\n            <pi:pub-attribute name=\"proof\" default=\"yes\" options=\"no\" legacy-stringparam=\"html.knowl.proof\"/>\n            <pi:pub-attribute name=\"definition\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.definition\"/>\n            <pi:pub-attribute name=\"example\" default=\"yes\" options=\"no\" legacy-stringparam=\"html.knowl.example\"/>\n            <pi:pub-attribute name=\"example-solution\" default=\"yes\" options=\"no\"/>\n            <pi:pub-attribute name=\"project\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.project\"/>\n            <pi:pub-attribute name=\"task\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.task\"/>\n            <pi:pub-attribute name=\"list\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.list\"/>\n            <pi:pub-attribute name=\"remark\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.remark\"/>\n            <pi:pub-attribute name=\"objectives\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.objectives\"/>\n            <pi:pub-attribute name=\"outcomes\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.outcomes\"/>\n            <pi:pub-attribute name=\"figure\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.figure\"/>\n            <pi:pub-attribute name=\"table\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.table\"/>\n            <pi:pub-attribute name=\"listing\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.listing\"/>\n            <pi:pub-attribute name=\"exercise-inline\" default=\"yes\" options=\"no\" legacy-stringparam=\"html.knowl.exercise.inline\"/>\n            <pi:pub-attribute name=\"exercise-divisional\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.exercise.sectional\"/>\n            <pi:pub-attribute name=\"exercise-worksheet\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.exercise.worksheet\"/>\n            <pi:pub-attribute name=\"exercise-readingquestion\" default=\"no\" options=\"yes\" legacy-stringparam=\"html.knowl.exercise.readingquestion\"/>\n        </knowl>\n        <cross-references>\n            <pi:pub-attribute name=\"knowled\" default=\"maximum\" options=\"never cross-page\"/>\n        </cross-references>\n        <navigation>\n            <pi:pub-attribute name=\"logic\" default=\"linear\" options=\"tree\" legacy-stringparam=\"html.navigation.logic\"/>\n            <pi:pub-attribute name=\"upbutton\" default=\"yes\" options=\"no\" legacy-stringparam=\"html.navigation.logic\"/>\n        </navigation>\n        <tableofcontents>\n            <pi:pub-attribute name=\"focused\" default=\"no\" options=\"yes\"/>\n            <pi:pub-attribute name=\"preexpanded-levels\" default=\"0\" options=\"1 2 3 4 5 6\"/>\n        </tableofcontents>\n        <analytics>\n            <pi:pub-attribute name=\"google-gst\" freeform=\"yes\"/>\n        </analytics>\n        <banner>\n            <pi:pub-attribute name=\"byline\" default=\"yes\" options=\"no\"/>\n            <pi:pub-attribute name=\"subtitle\" default=\"yes\" options=\"no\"/>\n        </banner>\n        <video>\n            <pi:pub-attribute name=\"privacy\" default=\"yes\" options=\"no\"/>\n        </video>\n        <platform>\n            <pi:pub-attribute name=\"host\" default=\"web\" options=\"runestone\" legacy-options=\"aim\"/>\n            <pi:pub-attribute name=\"portable\" default=\"no\" options=\"yes\"/>\n        </platform>\n        <interactives>\n            <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            <calcplot3d>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </calcplot3d>\n            <circuitjs>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </circuitjs>\n            <d3>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </d3>\n            <desmos>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </desmos>\n            <doenetml>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </doenetml>\n            <geogebra>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </geogebra>\n            <iframe>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </iframe>\n            <javascript>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </javascript>\n            <jsxgraph>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </jsxgraph>\n            <sage>\n                <pi:pub-attribute name=\"resize-behavior\" default=\"fixed-height\" options=\"responsive\"/>\n            </sage>\n        </interactives>\n    </html>\n    <epub>\n        <cover>\n            <pi:pub-attribute name=\"front\" freeform=\"yes\"/>\n        </cover>\n    </epub>\n    <latex>\n        <pi:pub-attribute name=\"sides\" options=\"one two\" legacy-stringparam=\"latex.sides\"/>\n        <pi:pub-attribute name=\"print\" default=\"no\" options=\"yes\" legacy-stringparam=\"latex.print\"/>\n        <pi:pub-attribute name=\"snapshot\" default=\"no\" options=\"yes\"/>\n        <pi:pub-attribute name=\"pageref\" options=\"yes no\" legacy-stringparam=\"latex.pageref\"/>\n        <pi:pub-attribute name=\"draft\" default=\"no\" options=\"yes\" legacy-stringparam=\"latex.draft\"/>\n        <pi:pub-attribute name=\"open-odd\" default=\"no\" options=\"add-blanks skip-pages\"/>\n        <pi:pub-attribute name=\"latex-style\" default=\"\" options=\"AIM chaos CLP dyslexic-font guide texstyle\"/>\n        <pi:pub-attribute name=\"link-highlight\" default=\"none\" options=\"underline\"/>\n        <page>\n            <pi:pub-attribute name=\"bottom-alignment\" default=\"ragged\" options=\"flush\"/>\n        </page>\n        <worksheet>\n            <pi:pub-attribute name=\"formatted\" default=\"yes\" options=\"no\"/>\n        </worksheet>\n        <fonts>\n            <main>\n                <pi:pub-attribute name=\"regular\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"options\" default=\"\" freeform=\"yes\"/>\n            </main>\n            <math>\n                <pi:pub-attribute name=\"regular\" default=\"\" freeform=\"yes\"/>\n                <pi:pub-attribute name=\"options\" default=\"\" freeform=\"yes\"/>\n            </math>\n        </fonts>\n    </latex>\n    <webwork>\n        <pi:pub-attribute name=\"static-processing\" default=\"webwork2\" options=\"local\"/>\n        <pi:pub-attribute name=\"pg-location\" default=\"/opt/webwork/pg\" freeform=\"yes\"/>\n        <pi:pub-attribute name=\"server\" default=\"https://webwork-ptx.aimath.org\" freeform=\"yes\"/>\n        <pi:pub-attribute name=\"course\" default=\"anonymous\" freeform=\"yes\"/>\n        <pi:pub-attribute name=\"user\" default=\"anonymous\" freeform=\"yes\"/>\n        <pi:pub-attribute name=\"password\" default=\"anonymous\" freeform=\"yes\"/>\n        <pi:pub-attribute name=\"task-reveal\" default=\"all\" options=\"preceding-correct\"/>\n    </webwork>\n    <stack>\n        <pi:pub-attribute name=\"server\" default=\"https://stack-api.maths.ed.ac.uk\" freeform=\"yes\"/>\n    </stack>\n    <revealjs>\n        <appearance>\n            <pi:pub-attribute name=\"theme\" default=\"simple\" freeform=\"yes\"/>\n            <pi:pub-attribute name=\"custom-css\" default=\"\" freeform=\"yes\"/>\n        </appearance>\n        <controls>\n            <pi:pub-attribute name=\"backarrows\" default=\"faded\" options=\"hidden visible\"/>\n            <pi:pub-attribute name=\"display\" default=\"yes\" options=\"no\"/>\n            <pi:pub-attribute name=\"layout\" default=\"bottom-right\" options=\"edges\"/>\n            <pi:pub-attribute name=\"tutorial\" default=\"yes\" options=\"no\"/>\n        </controls>\n        <navigation>\n            <pi:pub-attribute name=\"mode\" default=\"default\" options=\"linear grid\"/>\n        </navigation>\n    </revealjs>\n</pi:publisher>\n\n<!-- global variable for pi:publisher tree above -->\n<xsl:variable name=\"publisher-attribute-options\" select=\"document('')/xsl:stylesheet/pi:publisher\"/>\n\n<!-- context for a match below will be an attribute from the pi:publisher tree -->\n<xsl:template match=\"pi:pub-attribute\" mode=\"set-pubfile-variable\">\n    <xsl:variable name=\"all-options\" select=\"str:tokenize(concat(@default, ' ', @options), ' ')\"/>\n    <xsl:variable name=\"legacy-options\" select=\"str:tokenize(@legacy-options, ' ')\"/>\n    <!-- get the path to this attribute in the actual publisher file-->\n    <xsl:variable name=\"path\">\n        <xsl:apply-templates select=\".\" mode=\"pub-entry-path\"/>\n    </xsl:variable>\n    <!-- get the corresponding attribute from the publisher file -->\n    <!-- which may not exist                                     -->\n    <xsl:variable name=\"full-path\" select=\"concat('$publication/', $path)\"/>\n    <xsl:variable name=\"pubfile-attribute\" select=\"dyn:evaluate($full-path)\"/>\n    <!-- The default value, which may be specified or may vary conditionally -->\n    <!-- (via a custom template) appears frequently as the provided value    -->\n    <!-- when there is an error condition of some type, and is also echo'ed  -->\n    <!-- back to the publisher in those cases.  So we grab it once..         -->\n    <xsl:variable name=\"the-default\">\n        <xsl:apply-templates select=\".\" mode=\"get-default-pub-variable\"/>\n    </xsl:variable>\n    <xsl:choose>\n        <!-- if we respect a stringparam override and it is provided, use it -->\n        <xsl:when test=\"@stringparam and dyn:evaluate(concat('$', @stringparam)) != ''\">\n            <xsl:value-of select=\"dyn:evaluate(concat('$', @stringparam))\"/>\n        </xsl:when>\n        <!-- if nothing is declared in the publisher file, not even as null  -->\n        <!-- and if there is an old stringparam that we still honor, and if  -->\n        <!-- it is among the legal options, use it and issue warning         -->\n        <xsl:when test=\"not($pubfile-attribute) and @legacy-stringparam and (@freeform = 'yes' or dyn:evaluate(concat('$', @legacy-stringparam)) = $all-options)\">\n            <xsl:value-of select=\"dyn:evaluate(concat('$', @legacy-stringparam))\"/>\n            <xsl:message>PTX:WARNING: the stringparam \"<xsl:value-of select=\"@legacy-stringparam\"/>\" is deprecated. Your value, \"<xsl:value-of select=\"dyn:evaluate(concat('$', @legacy-stringparam))\"/>\" will be used. However you should move to using a publisher file entry for  <xsl:value-of select=\"$full-path\"/>  instead.</xsl:message>\n        </xsl:when>\n        <!-- if nothing is declared in the publisher file, not even as null  -->\n        <!-- and if there is an old stringparam that we still honor, and if  -->\n        <!-- it is among the legacy options, use default and issue warning   -->\n        <xsl:when test=\"not($pubfile-attribute) and @legacy-stringparam and dyn:evaluate(concat('$', @legacy-stringparam)) = $legacy-options\">\n            <xsl:value-of select=\"$the-default\"/>\n            <xsl:message>PTX:WARNING: the stringparam \"<xsl:value-of select=\"@legacy-stringparam\"/>\" is deprecated. Also your value, \"<xsl:value-of select=\"dyn:evaluate(concat('$', @legacy-stringparam))\"/>\" has been retired. You should move to using a publisher file entry  <xsl:value-of select=\"$full-path\"/>  with possible values: <xsl:apply-templates select=\"$all-options\" mode=\"quoted-list\"/>.  The default, \"<xsl:value-of select=\"$the-default\"/>\", will be used instead.</xsl:message>\n        </xsl:when>\n        <!-- if nothing is declared in the publisher file, not even as null  -->\n        <!-- and if there is an old stringparam that we still honor, but its -->\n        <!-- value isn't legal, legacy, or the default strinigparam '',      -->\n        <!-- then use default and issue warning                              -->\n        <xsl:when test=\"not($pubfile-attribute) and @legacy-stringparam and dyn:evaluate(concat('$', @legacy-stringparam)) != ''\">\n            <xsl:value-of select=\"$the-default\"/>\n            <xsl:message>PTX:WARNING: the stringparam \"<xsl:value-of select=\"@legacy-stringparam\"/>\" is deprecated. Also your value, \"<xsl:value-of select=\"dyn:evaluate(concat('$', @legacy-stringparam))\"/>\" is not a legal option. You should move to using a publisher file entry  <xsl:value-of select=\"$full-path\"/>  with possible values: <xsl:apply-templates select=\"$all-options\" mode=\"quoted-list\"/>.  The default, \"<xsl:value-of select=\"$the-default\"/>\", will be used instead.</xsl:message>\n        </xsl:when>\n        <!-- if nothing is declared in the publisher file or it is declared  -->\n        <!-- as null, use the default, which might be null                   -->\n        <xsl:when test=\"string($pubfile-attribute) = ''\">\n            <xsl:value-of select=\"$the-default\"/>\n        </xsl:when>\n        <!-- if a non-empty string declared in the pubfile and if freeform   -->\n        <!-- is permitted, use whatever the pubfile entry was                -->\n        <xsl:when test=\"@freeform = 'yes'\">\n            <xsl:value-of select=\"$pubfile-attribute\"/>\n        </xsl:when>\n        <!-- now freeform not permittted; check if entry is among the legal  -->\n        <!-- options and if so, use it                                       -->\n        <xsl:when test=\"$pubfile-attribute = $all-options\">\n            <xsl:value-of select=\"$pubfile-attribute\"/>\n        </xsl:when>\n        <!-- if it's among the legacy options, use default and issue warning  -->\n        <xsl:when test=\"$pubfile-attribute = $legacy-options\">\n            <xsl:value-of select=\"$the-default\"/>\n            <xsl:message>PTX:WARNING: your value \"<xsl:value-of select=\"$pubfile-attribute\"/>\"  for the publisher file entry  <xsl:value-of select=\"$path\"/>  has been retired; possible values are <xsl:apply-templates select=\"$all-options\" mode=\"quoted-list\"/>. The default, \"<xsl:value-of select=\"$the-default\"/>\", will be used instead.</xsl:message>\n        </xsl:when>\n        <!-- pubfile has some string that is not among legal options, and    -->\n        <!-- freeform is disallowed, so give a warning and use default       -->\n        <xsl:otherwise>\n            <xsl:value-of select=\"$the-default\"/>\n            <xsl:message>PTX:WARNING: the publisher file  <xsl:value-of select=\"$path\"/>  entry should not have value \"<xsl:value-of select=\"$pubfile-attribute\"/>\".  Possible values are: <xsl:apply-templates select=\"$all-options\" mode=\"quoted-list\"/>.  The default, \"<xsl:value-of select=\"$the-default\"/>\", will be used instead.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<!-- can be overrided when the default is dynamic -->\n<xsl:template match=\"pi:pub-attribute\" mode=\"get-default-pub-variable\">\n    <xsl:value-of select=\"@default\"/>\n</xsl:template>\n\n<!-- Recurse back up the tree to get the path to an attribute -->\n<xsl:template match=\"pi:pub-attribute\" mode=\"pub-entry-path\">\n    <xsl:apply-templates select=\"..\" mode=\"pub-entry-path\"/>\n    <xsl:value-of select=\"concat('@', @name)\"/>\n</xsl:template>\n\n<xsl:template match=\"*\" mode=\"pub-entry-path\">\n    <xsl:apply-templates select=\"..\" mode=\"pub-entry-path\"/>\n    <xsl:value-of select=\"concat(local-name(), '/')\"/>\n</xsl:template>\n\n<xsl:template match=\"pi:publisher\" mode=\"pub-entry-path\"/>\n\n<!-- Expects a node set from tokenize()                       -->\n<!-- Produces a string where each token is wrapped in quotes  -->\n<!-- When there are multiple options, separates with a comma  -->\n<!-- Last options preceded by \"or\" with Oxford comma if 3+    -->\n<xsl:template match=\"token\" mode=\"quoted-list\">\n    <xsl:text>\"</xsl:text>\n    <xsl:value-of select=\".\"/>\n    <xsl:text>\"</xsl:text>\n    <xsl:choose>\n        <!-- if there are at least two more coming -->\n        <xsl:when test=\"count(following-sibling::token) &gt;= 2\">\n            <xsl:text>, </xsl:text>\n        </xsl:when>\n        <!-- if there is exactly one more coming and we have a list of at least three -->\n        <xsl:when test=\"preceding-sibling::token and following-sibling::token\">\n            <xsl:text>, or </xsl:text>\n        </xsl:when>\n        <!-- if there is exactly one more coming and we have a list of two -->\n        <xsl:when test=\"following-sibling::token\">\n            <xsl:text> or </xsl:text>\n        </xsl:when>\n    </xsl:choose>\n</xsl:template>\n\n\n<!-- ######################### -->\n<!-- String Parameter Bad Bank -->\n<!-- ######################### -->\n\n<!-- 2022-12-26: this list of deprecated, retired, obsolete (string)  -->\n<!-- parameters has evolved over time and the comments are a bit      -->\n<!-- haphazard.  The primary motivation for keeping (most of) these   -->\n<!-- is to allow deprecation warnings to flag (and often react        -->\n<!-- favorably) to attempted uses. Dated, and in chronological        -->\n<!-- order.  Grep, or the git pickaxe (log -S) using the date strings -->\n <!-- is often effective in locating all the pieces of a deprecation. -->\n\n<!-- Conversion specific parameters that die will   -->\n<!-- live on in warnings, which are isolated in the -->\n<!-- pretext-common stylesheet.  So we need to      -->\n<!-- declare them here for use in the warnings      -->\n\n<!-- Some string parameters have been deprecated without any      -->\n<!-- sort of replacement, fallback, or upgrade.  But for a        -->\n<!-- deprecation message to be effective, they need to exist.     -->\n<!-- If you add something here, make a note by the deprecation    -->\n<!-- message.  These definitions expain why it is *always* best   -->\n<!-- to define a user variable as empty, and then supply defaults -->\n<!-- to an internal variable.                                     -->\n\n<!-- HTML-specific deprecated 2015-06, but still functional -->\n<xsl:param name=\"html.chunk.level\" select=\"''\" />\n\n<!-- DEPRECATED: 2017-12-18, do not use, any value -->\n<!-- besides an empty string will raise a warning  -->\n<xsl:param name=\"latex.console.macro-char\" select=\"''\" />\n<xsl:param name=\"latex.console.begin-char\" select=\"''\" />\n<xsl:param name=\"latex.console.end-char\" select=\"''\" />\n\n<!-- html.knowl.sidebyside is deprecated 2017-07  -->\n<!-- null value necessary for deprecation message -->\n<xsl:param name=\"html.knowl.sidebyside\" select=\"''\" />\n\n<!-- Analytics deprecated 2019-11-28               -->\n<!-- null values necessary for deprecation message -->\n<xsl:param name=\"html.statcounter.project\" select=\"''\"/>\n<xsl:param name=\"html.statcounter.security\" select=\"''\"/>\n<xsl:param name=\"html.google-classic\" select=\"''\"/>\n<xsl:param name=\"html.google-universal\" select=\"''\"/>\n\n<!-- Google search via string parameter deprecated 2019-11-29 -->\n<xsl:param name=\"html.google-search\" select=\"''\"/>\n\n<!-- DEPRECATED: 2020-05-29  In favor of       -->\n<!-- html/calculator/@model  in publisher file -->\n<xsl:param name=\"html.calculator\" select=\"''\" />\n\n<!-- The old (incomplete) methods for duplicating components of -->\n<!-- exercises have been deprecated as of 2018-11-07.  We keep  -->\n<!-- these here as we have tried to preserve their intent, and  -->\n<!-- we are generating warnings if they are ever set.           -->\n<!-- 2020-08-31 exercise.backmatter.* only remain for warnings  -->\n<xsl:param name=\"exercise.text.statement\" select=\"''\" />\n<xsl:param name=\"exercise.text.hint\" select=\"''\" />\n<xsl:param name=\"exercise.text.answer\" select=\"''\" />\n<xsl:param name=\"exercise.text.solution\" select=\"''\" />\n<xsl:param name=\"project.text.hint\" select=\"''\" />\n<xsl:param name=\"project.text.answer\" select=\"''\" />\n<xsl:param name=\"project.text.solution\" select=\"''\" />\n<xsl:param name=\"task.text.hint\" select=\"''\" />\n<xsl:param name=\"task.text.answer\" select=\"''\" />\n<xsl:param name=\"task.text.solution\" select=\"''\" />\n<xsl:param name=\"exercise.backmatter.statement\" select=\"''\" />\n<xsl:param name=\"exercise.backmatter.hint\" select=\"''\" />\n<xsl:param name=\"exercise.backmatter.answer\" select=\"''\" />\n<xsl:param name=\"exercise.backmatter.solution\" select=\"''\" />\n\n<!-- The dashed version is deprecated 2019-02-10,      -->\n<!-- but we still recognize it.  Move to variable bad  -->\n<!-- bank once killed.                                 -->\n<xsl:param name=\"author-tools\" select=\"''\" />\n\n<!-- The autoname parameter is deprecated (2017-07-25) -->\n<!-- Replace with docinfo/cross-references/@text       -->\n<xsl:param name=\"autoname\" select=\"''\" />\n\n<!-- 2020-11-22: latex.print to publisher file -->\n<xsl:param name=\"latex.print\" select=\"''\"/>\n<!-- 2020-11-22 sidedness to publisher file -->\n<xsl:param name=\"latex.sides\" select=\"''\"/>\n\n<!-- Replaced by more specific versions, 2019-02-10     -->\n<!-- These are variables, but still react when supplied -->\n<!-- to xsltproc/lxml as command-line arguments         -->\n<xsl:variable name=\"html.css.file\" select=\"''\"/>\n<xsl:variable name=\"html.permalink\" select=\"''\"/>\n\n<!-- RETIRED: 2020-11-22 Not a deprecation, this is a string parameter that             -->\n<!-- was never used at all.  Probably no real harm in parking it here for now.          -->\n<!-- N.B. This has no effect, and may never.  xelatex and lualatex support is automatic -->\n<xsl:param name=\"latex.engine\" select=\"'pdflatex'\" />\n\n<!-- RETIRED: 2020-11-23 this parameter was never used, now    -->\n<!-- silently moved here, which should make no real difference -->\n<xsl:param name=\"directory.media\"  select=\"''\" />\n\n<!-- RETIRED: 2020-11-23 this parameter was never used, now    -->\n<!-- silently moved here, which should make no real difference -->\n<xsl:param name=\"directory.knowls\"  select=\"''\" />\n\n<!-- Deprecated 2020-11-23 in favor of publisher file -->\n<!-- specification, but will still be respected       -->\n<xsl:param name=\"directory.images\" select=\"'images'\" />\n\n<!-- 2021-01-03 chunk.level to publisher file -->\n<xsl:param name=\"chunk.level\" select=\"''\" />\n<!-- 2021-01-03 toc.level to publisher file -->\n<xsl:param name=\"toc.level\" select=\"''\" />\n\n<!-- Deprecated 2021-01-23, but still respected -->\n<xsl:param name=\"html.knowl.theorem\" select=\"''\" />\n<xsl:param name=\"html.knowl.proof\" select=\"''\" />\n<xsl:param name=\"html.knowl.definition\" select=\"''\" />\n<xsl:param name=\"html.knowl.example\" select=\"''\" />\n<xsl:param name=\"html.knowl.project\" select=\"''\" />\n<xsl:param name=\"html.knowl.task\" select=\"''\" />\n<xsl:param name=\"html.knowl.list\" select=\"''\" />\n<xsl:param name=\"html.knowl.remark\" select=\"''\" />\n<xsl:param name=\"html.knowl.objectives\" select=\"''\" />\n<xsl:param name=\"html.knowl.outcomes\" select=\"''\" />\n<xsl:param name=\"html.knowl.figure\" select=\"''\" />\n<xsl:param name=\"html.knowl.table\" select=\"''\" />\n<xsl:param name=\"html.knowl.listing\" select=\"''\" />\n<xsl:param name=\"html.knowl.exercise.inline\" select=\"''\" />\n<xsl:param name=\"html.knowl.exercise.sectional\" select=\"''\" />\n<xsl:param name=\"html.knowl.exercise.worksheet\" select=\"''\" />\n<xsl:param name=\"html.knowl.exercise.readingquestion\" select=\"''\" />\n\n<!-- Deprecated 2021-02-14 but still respected -->\n<!-- maxlevel -> divisions.level, theorems.level -> blocks.level -->\n<xsl:param name=\"numbering.theorems.level\" select=\"''\" />\n<xsl:param name=\"numbering.projects.level\" select=\"''\" />\n<xsl:param name=\"numbering.equations.level\" select=\"''\" />\n<xsl:param name=\"numbering.footnotes.level\" select=\"''\" />\n<xsl:param name=\"numbering.maximum.level\" select=\"''\" />\n\n<!-- Deprecated 2021-02-14, now ignored, but warning exists -->\n<xsl:param name=\"debug.chapter.start\" select=\"''\" />\n\n<!-- Deprecated 2021-11-04, but respected by LaTeX publisher -->\n<!-- switch for right alignment of page's text               -->\n<xsl:param name=\"text.alignment\" select=\"''\" />\n\n<!-- String parameters were the *second* wave of these        -->\n<!-- switches, see variables below.  Deprecated on 2022-01-31 -->\n<!-- when they migrated to the publication file.              -->\n\n<xsl:param name=\"exercise.inline.statement\" select=\"''\" />\n<xsl:param name=\"exercise.inline.hint\" select=\"''\" />\n<xsl:param name=\"exercise.inline.answer\" select=\"''\" />\n<xsl:param name=\"exercise.inline.solution\" select=\"''\" />\n<xsl:param name=\"exercise.divisional.statement\" select=\"''\" />\n<xsl:param name=\"exercise.divisional.hint\" select=\"''\" />\n<xsl:param name=\"exercise.divisional.answer\" select=\"''\" />\n<xsl:param name=\"exercise.divisional.solution\" select=\"''\" />\n<xsl:param name=\"exercise.worksheet.statement\" select=\"''\" />\n<xsl:param name=\"exercise.worksheet.hint\" select=\"''\" />\n<xsl:param name=\"exercise.worksheet.answer\" select=\"''\" />\n<xsl:param name=\"exercise.worksheet.solution\" select=\"''\" />\n<xsl:param name=\"exercise.reading.statement\" select=\"''\" />\n<xsl:param name=\"exercise.reading.hint\" select=\"''\" />\n<xsl:param name=\"exercise.reading.answer\" select=\"''\" />\n<xsl:param name=\"exercise.reading.solution\" select=\"''\" />\n<xsl:param name=\"project.statement\" select=\"''\" />\n<xsl:param name=\"project.hint\" select=\"''\" />\n<xsl:param name=\"project.answer\" select=\"''\" />\n<xsl:param name=\"project.solution\" select=\"''\" />\n\n<!-- On 2021-03-03 abandoned a \"fast-id\" scheme that was never -->\n<!-- really used since it was in-effect a developer testing    -->\n<!-- option. Then on 2022-05-23 removed code, strengthened     -->\n<!-- deprecation message, and moved parameter here.            -->\n<xsl:param name=\"oldids\" select=\"''\"/>\n\n<!-- Deprecated on 2022-10-24.  Definition has changed from  -->\n<!-- a default value of \"10pt\" to an empty string, so we can -->\n<!-- detect use for a deprecation warning.  Default value is -->\n<!-- preserved in other ways as part of the deprecation.     -->\n<xsl:param name=\"latex.font.size\" select=\"''\" />\n\n<!-- Geometry: page shape, margins, etc. Deprecated    -->\n<!--2022-10-24, non-empty triggers deprecation warning -->\n<xsl:param name=\"latex.geometry\" select=\"''\"/>\n\n<!-- Page Numbers in cross-references, deprecated 2022-10-24 -->\n<xsl:param name=\"latex.pageref\" select=\"''\"/>\n\n<!-- Electing LaTeX draft mode, deprecated 2022-10-24 -->\n<xsl:param name=\"latex.draft\" select=\"''\"/>\n\n<!-- These first two are deprecated in favor of watermark.text  -->\n<!-- and watermark.scale, which in turn are deprecated in favor -->\n<!-- of publication file entry.  Double deprecation, second one -->\n<!-- on 2022-10-24.                                             -->\n<xsl:param name=\"latex.watermark\" select=\"''\"/>\n<xsl:param name=\"latex.watermark.scale\" select=\"''\"/>\n<xsl:param name=\"watermark.text\" select=\"''\" />\n<xsl:param name=\"watermark.scale\" select=\"''\" />\n\n<!-- These were yes/no string parameters.  We converted to values -->\n<!-- of \"static\" or \"dynamic\" as publisher entries on 2022-11-19. -->\n<xsl:param name=\"webwork.inline.static\" select=\"''\" />\n<xsl:param name=\"webwork.divisional.static\" select=\"''\" />\n<xsl:param name=\"webwork.reading.static\" select=\"''\" />\n<xsl:param name=\"webwork.worksheet.static\" select=\"''\" />\n<xsl:param name=\"webwork.project.static\" select=\"''\" />\n\n<!-- Navigation options move to the publisher file on 2022-11-20. -->\n<xsl:param name=\"html.navigation.logic\"  select=\"''\"/>\n<xsl:param name=\"html.navigation.upbutton\"  select=\"''\"/>\n<xsl:param name=\"html.navigation.style\"  select=\"''\"/>\n\n<!-- Publisher option to surround emdash, deprecated 2022-11-20 -->\n<xsl:param name=\"emdash.space\" select=\"''\" />\n\n<!-- \"commentary\" element relegated to version support, so string    -->\n<!-- parameter is deprecated and ineffective, deprecated 2024-02-16. -->\n<xsl:param name=\"commentary\" select=\"''\" />\n\n<!-- ###################################### -->\n<!-- Parameter Deprecation Warning Messages -->\n<!-- ###################################### -->\n\n<!-- Pass in a condition, true is a problem.       -->\n<!-- A message string like \"'foo'\" cannot contain  -->\n<!-- a single quote, even if entered as &apos;.    -->\n<!-- If despearate, concatentate with $apos.       -->\n<!-- A &#xa; can be used if necessary, but only    -->\n<!-- rarely do we bother.                          -->\n<xsl:template name=\"parameter-deprecation-message\">\n    <xsl:param name=\"incorrect-use\" select=\"false()\" />\n    <xsl:param name=\"date-string\" />\n    <xsl:param name=\"message\" />\n    <xsl:if test=\"$incorrect-use\">\n        <xsl:message>\n            <xsl:text>PTX:DEPRECATE: (</xsl:text>\n            <xsl:value-of select=\"$date-string\" />\n            <xsl:text>) </xsl:text>\n            <xsl:value-of select=\"$message\" />\n            <!-- once verbosity is implemented -->\n            <!-- <xsl:text>, set log.level to see more details</xsl:text> -->\n        </xsl:message>\n        <xsl:message>\n            <xsl:text>--------------</xsl:text>\n        </xsl:message>\n    </xsl:if>\n</xsl:template>\n\n<!-- 2023-01-11: These warnings are originally about string parameters -->\n<!-- moving to the publisher file.  But they seem to work just as well -->\n<!-- when an option in the publisher file changes.  So \"parameter\" is  -->\n<!-- the nomenclature, but usage is a bit more broad.                  -->\n\n<xsl:template match=\"mathbook|pretext\" mode=\"parameter-deprecation-warnings\">\n    <!-- These apparent re-definitions are local to this template -->\n    <!-- Reasons are historical, so to be a convenience           -->\n    <xsl:variable name=\"docinfo\" select=\"./docinfo\"/>\n    <xsl:variable name=\"document-root\" select=\"./*[not(self::docinfo)]\"/>\n\n\n    <!-- 2017-07-05  sidebyside cannot be cross-referenced anymore, so not knowlizable -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-05'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.sidebyside  parameter is now obsolete and will be ignored'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.sidebyside != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2015-06-26  chunking became a general thing -->\n    <!-- 2021-01-03  rendered ineffective            -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2015-06-26'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.chunk.level  parameter has been replaced by the common/chunking/@level  entry in the publisher file.  It will be ignored.  Please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.chunk.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-07-25  deprecate intentional autoname without new setting -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-25'\" />\n        <xsl:with-param name=\"message\" select=\"'the  autoname  parameter is deprecated, but is still effective since  &quot;docinfo/cross-references/@text&quot;  has not been set.  The following parameter values equate to the attribute values: &quot;no&quot; is &quot;global&quot;, &quot;yes&quot; is &quot;type-global&quot;, &quot;title&quot; is &quot;title&quot;'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"not($autoname = '') and not(//docinfo/cross-references)\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-07-25  deprecate intentional autoname also with new setting -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2017-07-25'\" />\n        <xsl:with-param name=\"message\" select=\"'the  autoname  parameter is deprecated, and is being overidden by a  &quot;docinfo/cross-references/@text&quot;  and so is totally ineffective and can be removed'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"not($autoname = '') and //docinfo/cross-references\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2017-12-18  deprecate three console macro characters -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2017-12-18'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.console.macro-char  parameter is deprecated, and there is no longer a need to be careful about the backslash (\\) character in a console'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"not($latex.console.macro-char = '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2017-12-18'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.console.begin-char  parameter is deprecated, and there is no longer a need to be careful about the begin group ({) character in a console'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"not($latex.console.begin-char = '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2017-12-18'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.console.end-char  parameter is deprecated, and there is no longer a need to be careful about the end group (}) character in a console'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"not($latex.console.end-char = '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-11-07  obsolete exercise component switches          -->\n    <!-- Still exists in \"String Parameter Bad Bank\" for use here  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2018-11-07'\" />\n        <xsl:with-param name=\"message\" select=\"'the  *.text.*  parameters that control the visibility of components of exercises and projects have been removed and replaced by a greater variety of  exercise.*.*  and  project.*  parameters'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"not(($exercise.text.statement = '') and ($exercise.text.hint = '') and ($exercise.text.answer = '') and ($exercise.text.solution = '') and ($project.text.hint = '') and ($project.text.answer = '') and ($project.text.solution = '') and ($task.text.hint = '') and ($task.text.answer = '') and ($task.text.solution = ''))\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2018-11-07  obsolete backmatter exercise component switches -->\n    <!-- Still exists in \"String Parameter Bad Bank\" for use here    -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2018-11-07'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.backmatter.*  parameters that control the visibility of components of exercises and projects in the back matter have been removed and replaced by the &quot;solutions&quot; element, which is much more versatile'\"/>\n            <xsl:with-param name=\"incorrect-use\" select=\"not(($exercise.backmatter.statement = '') and ($exercise.backmatter.hint = '') and ($exercise.backmatter.answer = '') and ($exercise.backmatter.solution = ''))\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-10  obsolete  html.css.file  removed             -->\n    <!-- Still exists in \"String Parameter Bad Bank\" for use here -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-10'\" />\n        <xsl:with-param name=\"message\" select=\"'the obsolete  html.css.file  parameter has been removed, please use html.css.colorfile to choose a color scheme'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($html.css.file != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-02-20  replace author-tools with author.tools                       -->\n    <!-- Still exists and is respected, move to \"String Parameter Bad Bank\" later -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2019-02-20'\" />\n        <xsl:with-param name=\"message\" select=\"'the  author-tools  parameter has been replaced by the functionally equivalent  author.tools'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"not($author-tools = '')\"/>\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-03-07  replace latex.watermark with watermark.text                  -->\n    <!-- 2022-10-24  update - to publication file                                 -->\n    <!-- Still exists and is respected, move to \"String Parameter Bad Bank\" later -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2019-03-07'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.watermark  string parameter has been replaced by a publication file entry which is effective in HTML as well as LaTeX'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($latex.watermark != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-03-07  replace latex.watermark.scale with watermark.scale           -->\n    <!-- 2022-10-24  update - to publication file                                 -->\n    <!-- Still exists and is respected, move to \"String Parameter Bad Bank\" later -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2019-03-07'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.watermark.scale  string parameter has been replaced by a publication file entry which is effective in HTML as well as LaTeX'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($latex.watermark.scale != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- And switches for analytics  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2019-11-28'\" />\n        <xsl:with-param name=\"message\" select=\"'use of string parameters for analytics configuration has been deprecated.  Existing switches are being respected, but please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.&#xa;  * For StatCounter this is a cosmetic change.&#xa;  * Google Classic has been deprecated by Google and will not be supported.&#xa;  * Google Universal has been replaced, your ID may continue to work.&#xa;  * Google Global Site Tag is fully supported, try your Universal ID.&#xa;'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($html.statcounter.project != '') or ($html.statcounter.security != '') or ($html.google-classic != '') or ($html.google-universal != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2019-11-29  deprecated Google search via string parameter -->\n    <!-- see 2019-04-14 for docinfo deprecation                    -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2019-11-29'\" />\n        <xsl:with-param name=\"message\" select=\"'Google search is no longer specified with a string parameter.  Please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"$html.google-search != ''\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2020-05-10  permalinks (their style actually) are now controlled by Javascript -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2020-05-10'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.permalink  parameter is now obsolete and will be ignored as this is now controlled by Javascript'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.permalink != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2020-05-29  HTML calculator model controlled by publisher file -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2020-05-29'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.calculator  parameter has been replaced by the  html/calculator/@model  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.calculator != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2020-11-22  LaTeX print option controlled by publisher file -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2020-11-22'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.print  parameter has been replaced by the  latex/@print  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($latex.print != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2020-11-22  LaTeX sideness option controlled by publisher file -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2020-11-22'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.sides  parameter has been replaced by the  latex/@sides  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($latex.sides != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-01-03  chunk.level now in publisher file -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-03'\" />\n        <xsl:with-param name=\"message\" select=\"'the  chunk.level  parameter has been replaced by the  common/chunking/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($chunk.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2021-01-03  toc.level now in publisher file -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-03'\"/>\n        <xsl:with-param name=\"message\" select=\"'the  toc.level  parameter has been replaced by the  common/tableofcontents/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($toc.level != '')\" />\n    </xsl:call-template>\n    <!-- 2020-11-23  directory.images replaced by publisher file specification -->\n    <!-- Reverse this soon, hot fix -->\n    <!--\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2020-11-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  directory.images  parameter has been replaced by specification of two directories in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($directory.images != '')\" />\n    </xsl:call-template>\n -->\n    <!--  -->\n    <!--                                                  -->\n    <!-- 2021-01-23  Seventeen old knowl-ization switches -->\n    <!--                                                  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.theorem  parameter has been replaced by the  html/knowl/@theorem  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.theorem != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.proof  parameter has been replaced by the  html/knowl/@proof  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.proof != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.definition  parameter has been replaced by the  html/knowl/@definition  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.definition != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.example  parameter has been replaced by the  html/knowl/@example  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.example != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.project  parameter has been replaced by the  html/knowl/@project  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.project != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.task  parameter has been replaced by the  html/knowl/@task  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.task != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.list  parameter has been replaced by the  html/knowl/@list  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.list != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.remark  parameter has been replaced by the  html/knowl/@remark  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.remark != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.objectives  parameter has been replaced by the  html/knowl/@objectives  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.objectives != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.outcomes  parameter has been replaced by the  html/knowl/@outcomes  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.outcomes != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.figure  parameter has been replaced by the  html/knowl/@figure  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.figure != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.table  parameter has been replaced by the  html/knowl/@table  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.table != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.listing  parameter has been replaced by the  html/knowl/@listing  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.listing != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.exercise.inline  parameter has been replaced by the  html/knowl/@exercise-inline  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.exercise.inline != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.exercise.sectional  parameter has been replaced by the  html/knowl/@exercise-divisional  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.exercise.sectional != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.exercise.worksheet  parameter has been replaced by the  html/knowl/@exercise-worksheet  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.exercise.worksheet != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-01-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.knowl.exercise.readingquestion  parameter has been replaced by the  html/knowl/@exercise-readingquestion  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($html.knowl.exercise.readingquestion != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2014-02-14 Five parameters for numbering level to publisher file -->\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the  numbering.maximum.level  parameter has been replaced by the  numbering/divisions/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($numbering.maximum.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the  numbering.theorems.level  parameter has been replaced by the  numbering/blocks/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($numbering.theorems.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the  numbering.projects.level  parameter has been replaced by the  numbering/projects/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($numbering.projects.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the  numbering.equations.level  parameter has been replaced by the  numbering/equations/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($numbering.equations.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the  numbering.footnotes.level  parameter has been replaced by the  numbering/footnotes/@level  entry in the publisher file.  We will attempt to honor your selection.  But please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($numbering.footnotes.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-02-14'\" />\n        <xsl:with-param name=\"message\" select=\"'the  debug.chapter.start  parameter has been removed entirely and so will be ignored.  Please switch to using the Publishers File for configuration, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($debug.chapter.start != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2021-11-04'\" />\n        <xsl:with-param name=\"message\" select=\"'the  text.alignment  parameter has been deprecated, but we will attempt to honor your intent.  Please switch to using the Publishers File for configuration of LaTeX page shape, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($text.alignment != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 1/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.inline.statement  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.inline.statement != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 2/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.inline.hint  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.inline.hint != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 3/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.inline.answer  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.inline.answer != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 4/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.inline.solution  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.inline.solution != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 5/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.divisional.statement  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.divisional.statement != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 6/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.divisional.hint  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.divisional.hint != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 7/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.divisional.answer  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.divisional.answer != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 8/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.divisional.solution  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.divisional.solution != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 9/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.worksheet.statement  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.worksheet.statement != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 10/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.worksheet.hint  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.worksheet.hint != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 11/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.worksheet.answer  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.worksheet.answer != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 12/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.worksheet.solution  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.worksheet.solution != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 13/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.reading.statement  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.reading.statement != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 14/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.reading.hint  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.reading.hint != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 15/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.reading.answer  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.reading.answer != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 16/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  exercise.reading.solution  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($exercise.reading.solution != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 17/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  project.statement  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($project.statement != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 18/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  project.hint  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($project.hint != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 19/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  project.answer  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($project.answer != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-01-31  exercise component visibility setting 20/20 -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-01-31'\" />\n        <xsl:with-param name=\"message\" select=\"'the  project.solution  string parameter is now deprecated, but we will attempt to honor your intent.  Please switch to using the Publication File, as documented in the PreTeXt Guide.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($project.solution != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-05-23  experimental scheme for \"fast-id\" abandonend -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-05-23'\" />\n        <xsl:with-param name=\"message\" select=\"'the  oldids  string parameter was used for testing, was deprecated on 2021-03-03, is now obsolete, there is no replacement, relevant code has been removed, and the parameter is being ignored'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($oldids != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-05-28  \"latex.fillin.style\" is deprecated for publisher variables -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-05-28'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.fillin.style  parameter has been replaced by the  common/fillin/@textstyle  and  common/fillin/mathstyle  entries in the publication file. The default style for a text fillin is now  underline  and the default style for a math fillin is now  shade .  To use  box  style for either, set values in the publication file.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($numbering.maximum.level != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-10-24  \"latex.font.size\" is deprecated for publisher variables -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-10-24'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.font.size  parameter has been replaced by the  latex/@font-size  entry in the publication file.   We will attempt to honor your intent.  Note that possible values are the same, but you no longer provide &quot;pt&quot; as the unit of measure.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($latex.font.size != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-10-24  \"latex.geometry\" is deprecated for publisher variables -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-10-24'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.geometry  parameter has been replaced by the  latex/page/geometry  entry in the publication file.  We will attempt to honor your intent.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($latex.geometry != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-10-24  \"latex.pageref\" is deprecated for publisher variables -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-10-24'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.pageref string parameter has been replaced by the  latex/@pageref  entry in the publication file.  We will attempt to honor your intent.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($latex.pageref != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-10-24  \"latex.draft\" is deprecated for publisher variables -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-10-24'\" />\n        <xsl:with-param name=\"message\" select=\"'the  latex.draft string parameter has been replaced by the  latex/@draft  entry in the publication file.  We will attempt to honor your intent.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($latex.draft != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-10-24  watermark.text  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-10-24'\" />\n        <xsl:with-param name=\"message\" select=\"'the  watermark.text  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($watermark.text != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-10-24  watermark.scale  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-10-24'\" />\n        <xsl:with-param name=\"message\" select=\"'the  watermark.scale  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($watermark.scale != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-19  webwork.inline.static  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'the  webwork.inline.static  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($webwork.inline.static != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-19  webwork.divisional.static  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'the  webwork.divisional.static  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($webwork.divisional.static != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-19  webwork.reading.static  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'the  webwork.reading.static  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($webwork.reading.static != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-19  webwork.worksheet.static  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'the  webwork.worksheet.static  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($webwork.worksheet.static != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-19  webwork.project.static  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-19'\" />\n        <xsl:with-param name=\"message\" select=\"'the  webwork.project.static  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($webwork.project.static != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-20  html.navigation.logic  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-20'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.navigation.logic  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($html.navigation.logic != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-20  html.navigation.upbutton  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-20'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.navigation.upbutton  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($html.navigation.upbutton != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-20  html.navigation.style  deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-20'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html.navigation.style  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($html.navigation.style != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2022-11-20  emdash.space deprecated in favor of publication file entry-->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2022-11-20'\" />\n        <xsl:with-param name=\"message\" select=\"'the  emdash.space  string parameter has been replaced by a publication file entry.  We will try to honor your intent.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($emdash.space != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-01-11  EPUB cover image publication file entry totally reworked -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2023-01-11'\" />\n        <xsl:with-param name=\"message\" select=\"'the  epub/@cover  publication file entry has been replaced, and likely you will only get a simple generic cover image.  Please read the documentation for how to transition to the new specification'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($publication/epub/@cover != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2023-05-05  HTML navigation buttons' style publication file entry removed -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2023-05-05'\" />\n        <xsl:with-param name=\"message\" select=\"'the  html/navigation/@style  publication file entry has been removed, since the &quot;compact&quot; option is no longer implemented, and the only option left is &quot;full&quot;.  Remove your publication file entry to stop this message re-appearing'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($publication/html/navigation/@style != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <!-- 2024-02-16  \"commentary\" string parameter deprecated with changes in \"commentary\" element -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2024-02-16'\" />\n        <xsl:with-param name=\"message\" select=\"'the  commentary  string parameter has been deprecated, is no longer functional, and has no replacement.  Instead control the visibility of a &quot;commentary&quot; element by placing it into a component and using version support.  You likely also have related deprecation messages about that situation which are more informative.'\" />\n            <xsl:with-param name=\"incorrect-use\" select=\"($commentary != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2024-07-12'\" />\n        <xsl:with-param name=\"message\" select=\"'the html/css/@style publication file entry has been deprecated for replacement by @theme. See the Guide for theme options.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($publication/html/css/@style != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2024-07-12'\" />\n        <xsl:with-param name=\"message\" select=\"'the html/css/@toc, @navbar, @shell, @knowls, and @banner publication entries have been deprecated. Use @theme to control html appearance. See the Guide for theme options.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($publication/html/css/@toc != '' or $publication/html/css/@navbar != '' or $publication/html/css/@shell != '' or $publication/html/css/@knowls != '' or $publication/html/css/@banner != '')\" />\n    </xsl:call-template>\n    <!--  -->\n    <xsl:call-template name=\"parameter-deprecation-message\">\n        <xsl:with-param name=\"date-string\" select=\"'2025-05-09'\" />\n        <xsl:with-param name=\"message\" select=\"'the webwork/@coursepassword and @userpassword publication entries have been deprecated. Use @password instead.'\" />\n        <xsl:with-param name=\"incorrect-use\" select=\"($publication/webwork/@coursepassword != '' or $publication/webwork/@userpassword != '')\" />\n    </xsl:call-template>\n    <!--  -->\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/support/README.md",
    "content": "# PreTeXt (Miscellaneous) Support Files\n\n### Runestone Services\n\nThe `webpack_static_imports.xml` file contains the current version of the minimal set of JS and CSS files for providing \"Runestone Services\", either when hosted on a Runestone Server or when creating HTML for self-hosting.\n\nAs of 2024-07-31 the latest version can obtained with a `wget` from [https://runestone.academy/cdn/runestone/latest/webpack_static_imports.xml](https://runestone.academy/cdn/runestone/latest/webpack_static_imports.xml).\n\nAn outline of the procedure to update this file is:\n\n```\ncd xsl/support\nwget -O webpack_static_imports.xml https://runestone.academy/cdn/runestone/latest/webpack_static_imports.xml\ngit diff\ngit st\n\n<verify/obtain new version number in diff, use in commit message>\n\ngit commit -am \"Runestone: update services file to vX.Y.Z\"\n\n<push new commit to PreTeXt repository>\n```\n"
  },
  {
    "path": "xsl/support/extract-math.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- We build a very basic HTML page intended for MathJax    -->\n<!-- to process with its *-page tools                        -->\n<!--                                                         -->\n<!-- Pro: faster than a new system call for each and         -->\n<!--      every math element                                 -->\n<!-- Pro: if MathJax produces output that is not XHTML       -->\n<!--      any defects will be minimal and controllable       -->\n<!-- Con: one massive cache of font info, which could be     -->\n<!--      much more than an eventual chunked page might need -->\n<!--                                                         -->\n<!-- The result is meant to be processed by the              -->\n<!-- package-math.xsl  stylesheet for eventual use           -->\n\n<!-- NB: string functions can leave if latex macros get fixed elsewhere -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"str\"\n>\n\n<!-- Get internal ID's for filenames, etc -->\n<!-- Standard conversion groundwork       -->\n<xsl:import href=\"../publisher-variables.xsl\"/>\n<xsl:import href=\"../pretext-assembly.xsl\"/>\n<xsl:import href=\"../pretext-common.xsl\"/>\n\n<!-- Use the HTML variants, as we are making input for MathJax -->\n<xsl:import href=\"../pretext-html.xsl\" />\n\n<!-- Extraction infrastructure, plus redefinition -->\n<!-- of entry template, so *after* HTML template  -->\n<xsl:import href=\"../extract-identity.xsl\" />\n\n<!-- Write XML, since 'output=\"html\"' creates things  -->\n<!-- like unclosed \"meta\" and these get replicated by  -->\n<!-- the MathJax tools, producing a non-XML file. -->\n\n<!-- Output an HTML for MathJax to consume page -->\n<xsl:output method=\"xml\" encoding=\"UTF-8\" omit-xml-declaration=\"yes\" doctype-system=\"about:legacy-compat\"/>\n\n<!-- This variable controls representations of interactive exercises   -->\n<!-- built in  pretext-assembly.xsl.  The imported  pretext-html.xsl   -->\n<!-- stylesheet sets it to \"dynamic\".  But for this stylesheet we want -->\n<!-- to utilize the \"standard\" PreTeXt exercise versions built with    -->\n<!-- \"static\".  See both  pretext-assembly.xsl  and  pretext-html.xsl  -->\n<!-- for more discussion. -->\n<xsl:variable name=\"exercise-style\" select=\"'static'\"/>\n\n<!-- This stylesheet is parameterized by how trailing punctuation       -->\n<!-- is handled by math elements.  An  xsl:param  immediately overrides -->\n<!-- the global cross-stylesheet variable, to counteract how the HTML   -->\n<!-- routinely incorporates trailing punctuation into the LaTeX math.   -->\n<!-- The param default is the same as the variable default.             -->\n<!-- NB: a stylesheet that eventually consumes this math will need to   -->\n<!-- use the modal \"get-clause-punctuation\" template to coordinate with -->\n<!-- what happens here.  Give the global varible the same value and     -->\n<!-- then the \"get-clause-punctuation\" used at the end of the           -->\n<!-- construction of the math element should produce the right action.  -->\n<xsl:param name=\"math.punctuation\" select=\"'none'\"/>\n<xsl:variable name=\"math.punctuation.include\" select=\"$math.punctuation\"/>\n\n<!-- We import the HTML stylesheet since we want HTML versions of -->\n<!-- the math bits, but we don't need all the chunking machinery  -->\n<!-- for extracting math, since we are building a single file,    -->\n<!-- so we set the level to control associated templates          -->\n<xsl:variable name=\"chunk-level\" select=\"number(0)\"/>\n\n<!-- Base HTML conversion (which we have imported) wraps mathematics   -->\n<!-- with a class \"process-math\", which is specified in the MathJax 3  -->\n<!-- configuration so we can ignore non-math bits and not get confused -->\n<!-- by stray LaTeX/ASCIIMath/MathJax markup.  Here we just rip out    -->\n<!-- and package math for subsequent processing, so no such            -->\n<!-- contortions are necessary and a simpler wrapping is possible.     -->\n\n<!-- Inline math does not need a \"span\", just delimiters -->\n<xsl:template name=\"inline-math-wrapper\">\n     <xsl:param name=\"math\"/>\n     <xsl:text>\\(</xsl:text>\n     <xsl:value-of select=\"$math\"/>\n     <xsl:text>\\)</xsl:text>\n </xsl:template>\n\n<!-- No special wrapping needed for display  -->\n<!-- mathematics, so just copy the content   -->\n<xsl:template match=\"md[mrow]\" mode=\"display-math-wrapper\">\n    <xsl:param name=\"content\" />\n    <xsl:copy-of select=\"$content\" />\n</xsl:template>\n\n<!-- Build a super-simple HTML page, whose only -->\n<!-- purpose is to serve as input to a MathJax  -->\n<!-- *-page routine.                            -->\n<!-- calling context is $root, or subtree root  -->\n<xsl:template match=\"*\" mode=\"extraction-wrapper\">\n    <html>\n        <!-- no \"head\" at all -->\n        <body>\n            <!-- MathJax predefines \\lt and \\gt to avoid XML's <, >      -->\n            <!-- We therefore define these for LaTeX use to be           -->\n            <!-- universal.  Usually no harm having them in HTML output, -->\n            <!-- BUT MathJax puts raw LaTeX into the @alttext attribute, -->\n            <!-- where our definitions with unescaped version of <, >    -->\n            <!-- are a syntax violation.  So we scrub them.              -->\n            <!-- TODO: move this and make two $latex-macros,             -->\n            <!-- one for HTML and one for LaTeX                          -->\n            <xsl:variable name=\"no-less-than\"      select=\"str:replace($latex-macros, '\\newcommand{\\lt}{&lt;}&#xa;', '')\"/>\n            <xsl:variable name=\"latex-macros-html\" select=\"str:replace($no-less-than, '\\newcommand{\\gt}{&gt;}&#xa;', '')\"/>\n            <!-- put macros and packages early for MJ to find         -->\n            <!-- give the div an @id so we can trash it as a leftover -->\n            <!-- NB: \"math support\" macros (fillin-math, sfrac) must  -->\n            <!-- be defined here AND in the \"latex-macros\" named      -->\n            <!-- template in  pretext-html.xsl                        -->\n            <div id=\"latex-macros\">\n                <xsl:call-template name=\"inline-math-wrapper\">\n                    <xsl:with-param name=\"math\">\n                        <xsl:value-of select=\"$latex-packages-mathjax\"/>\n                        <xsl:value-of select=\"$latex-macros-html\"/>\n                        <xsl:call-template name=\"fillin-math\"/>\n                        <!-- legacy built-in support for \"slanted|beveled|nice\" fractions -->\n                        <xsl:if test=\"$b-has-sfrac\">\n                            <xsl:text>\\newcommand{\\sfrac}[2]{{#1}/{#2}}&#xa;</xsl:text>\n                        </xsl:if>\n                    </xsl:with-param>\n                </xsl:call-template>\n            </div>\n            <!-- initiate tree-walker \"extraction\" templates -->\n            <xsl:apply-imports/>\n        </body>\n    </html>\n</xsl:template>\n\n<!-- Associate IDs with the LaTeX so we know where     -->\n<!-- the processed results belong when reinserted.     -->\n<!-- Flag the context as \"inline\" v. \"displaymath\"     -->\n<!-- so that we can do things like place a CSS class   -->\n<!-- for MathJax to see when processing the math bits. -->\n<xsl:template match=\"m|md\" mode=\"extraction\">\n    <xsl:variable name=\"context\">\n        <xsl:choose>\n            <xsl:when test=\"self::m\">\n                <xsl:text>inline</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"self::md\">\n                <xsl:text>displaymath</xsl:text>\n            </xsl:when>\n        </xsl:choose>\n    </xsl:variable>\n    <div context=\"{$context}\">\n        <!-- NB: stylesheets receiving these representations will  -->\n        <!-- want to *also* mark math bits via the \"unique-id\"   -->\n        <!-- The speed of the \"unique-id\" is critical here       -->\n        <xsl:attribute name=\"id\">\n            <xsl:apply-templates select=\".\" mode=\"unique-id\"/>\n        </xsl:attribute>\n        <xsl:apply-templates select=\".\"/>\n    </div>\n</xsl:template>\n\n\n<!-- An \"xref\" inside of math is a delicate matter.                                   -->\n<!--                                                                                  -->\n<!--   1.  A number is computed based on various numbering switches so this           -->\n<!--       sort of information needs to be available to this conversion.              -->\n<!--                                                                                  -->\n<!--   2.  A \\href{} is recognized by MathJax and puts an \"a\" element into            -->\n<!--       an output SVG.  But Calibre (for example) does not seem to recognize this. -->\n<!--       See \"xLinks\" section of https://wiki.mobileread.com/wiki/SVG (2020-03-25), -->\n<!--       perhaps the MathJax version does not have enough namespace info, etc.      -->\n<!--       The \\knowl{} extension of the conversion to HTML is not understood at all. -->\n<!--       A knowl requires that PreTeXt Javascript named like \"mathjaxknowl.js\"      -->\n<!--       loaded as a MathJax extension for knowls to possibly render                -->\n<!--                                                                                  -->\n<!--   3.  Our links' base filename will depend on chunking level, and the file       -->\n<!--       extension may need to \".xhtml\" (not \".html\") if the destination is EPUB.   -->\n<!--       And the lxml parser complains when a global XSL variable is redefined      -->\n<!--       in an override/import.                                                     -->\n<!--                                                                                  -->\n<!-- We are going to punt right now and just drop in text, so (1) is  important,      -->\n<!-- but (2) and (3) are no longer issues. This override just plops in text, which    -->\n<!-- automatically comes wrapped in a LaTeX \\text{}                                   -->\n<xsl:template match=\"*\" mode=\"xref-link-display-math\">\n    <xsl:param name=\"target\"/>\n    <xsl:param name=\"content\"/>\n    <!-- <xsl:text>\\text{</xsl:text> -->\n    <xsl:value-of select=\"$content\"/>\n    <!-- <xsl:text>}</xsl:text> -->\n</xsl:template>\n\n<!-- Knowls -->\n<!-- No cross-reference should be a knowl      -->\n<!-- Turn off knowls so SVG production goes OK -->\n<!-- TODO: Need to know desired chunk level for links to be -->\n<!-- correct, possibly in the publisher file once revisited -->\n<xsl:template match=\"*\" mode=\"xref-as-knowl\">\n    <xsl:value-of select=\"false()\" />\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/support/package-math.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- This stylesheet expects the XHTML built by the  extract-math.xsl -->\n<!-- stylesheet, to have been processed by MathJax 3 and Speech Rule  -->\n<!-- Engine (SRE).  The result, which as an organization created by   -->\n<!-- the script from mathJax is here repackaged with PreTeXt          -->\n<!-- internal elements (in a different namespace).                    -->\n<!-- The output is organized as follows:                              -->\n<!--                                                                  -->\n<!-- pi:math-representations                                          -->\n<!--     pi:math                                                      -->\n<!--     ...                                                          -->\n<!--     pi:math                                                      -->\n<!--     svg/defs                                                     -->\n<!--                                                                  -->\n<!-- The multiple  pi:math  elements have                             -->\n<!--   @id: matches the id of its progenitor in the source            -->\n<!--   @context: category of progenitor (\"inline\" v. \"displaymath\")   -->\n<!--       div: one to four, with classes indicating content          -->\n<!--           MathML and/or SVG (structured)                         -->\n<!--           braille, speech (raw content)                          -->\n<!--                                                                  -->\n<!-- The final element is a font cache, which                         -->\n<!-- has the @id attribute value \"font-data\"                          -->\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:svg=\"http://www.w3.org/2000/svg\"\n    xmlns:math=\"http://www.w3.org/1998/Math/MathML\"\n    exclude-result-prefixes=\"svg\"\n>\n\n<xsl:output method=\"xml\" encoding=\"UTF-8\"/>\n\n<!-- Our simple webpage is processed by MathJax via the mathjax-node-page -->\n<!-- program.  This invocation is parameterized by a choice of SVG output -->\n<!-- or MathML output.  Either way, the structure of the page is          -->\n<!-- identical, so we seem to handle both simultaneously here.  However,  -->\n<!-- only one or the other is present.                                    -->\n\n<!-- This is \"pure\" MathJax output, we leave adjustments to consumers -->\n\n<!-- Entry template, and cruiser -->\n<!-- We start here, and at each node, we simply descend, -->\n<!-- *unless* some template below kicks into action      -->\n<xsl:template match=\"/|node()|@*\">\n    <xsl:apply-templates select=\"node()|@*\"/>\n</xsl:template>\n\n<!-- We explicitly kill the LaTeX macro div, lest  -->\n<!-- it get picked up as similar to the other math -->\n<xsl:template match=\"div[@id = 'latex-macros']\"/>\n\n<!-- Body has what we want/need -->\n<xsl:template match=\"body\">\n    <pi:math-representations>\n        <xsl:apply-templates select=\"node()|@*\"/>\n        <xsl:text>&#xa;&#xa;</xsl:text>\n    </pi:math-representations>\n</xsl:template>\n\n<!-- Replace PreTeXt \"div\" w/ location info plus MJ \"mjx-data\" -->\n<!-- container by a consolidated PreteXt \"pi:math\" container   -->\n<!-- with location info                                        -->\n<xsl:template match=\"div/mjx-data\">\n    <xsl:text>&#xa;&#xa;</xsl:text>\n    <pi:math>\n        <!-- duplicate location, context info -->\n        <xsl:copy-of select=\"../@*\"/>\n        <!-- pickup whatever gets produced by MJ/SRE script with    -->\n        <!-- its own containerization: MathML, SVG, braille, speech -->\n        <xsl:apply-templates select=\"math:math|svg:svg|mjx-braille|mjx-speech\"/>\n    </pi:math>\n</xsl:template>\n\n<!-- Now duplicate actual representations (structured or -->\n<!-- raw content), always wrapped in an identifying div  -->\n\n<xsl:template match=\"math:math\">\n    <div class=\"mathml\">\n        <xsl:copy-of select=\".\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"svg:svg\">\n    <div class=\"svg\">\n        <xsl:copy-of select=\".\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"mjx-braille\">\n    <div class=\"braille\">\n        <xsl:copy-of select=\"node()\"/>\n    </div>\n</xsl:template>\n\n<xsl:template match=\"mjx-speech\">\n    <div class=\"speech\">\n        <xsl:copy-of select=\"node()\"/>\n    </div>\n</xsl:template>\n\n<!-- SVG font (glyphs) cache -->\n<!-- Following depends on font caching behavior      -->\n<!-- as passed to  mathjax-node-page  routine        -->\n<!--   global cache:  a pile of defs in a single SVG -->\n<!--   no caching:  defs are per-SVG, no match here  -->\n<!-- NB: need to have this prefixed with \"body\" to   -->\n<!-- identify it as top-level, global situation,     -->\n<!-- rather than local to each individual SVG        -->\n<xsl:template match=\"body/svg:svg[svg:defs]\">\n    <xsl:copy>\n        <xsl:attribute name=\"id\">\n            <xsl:text>font-data</xsl:text>\n        </xsl:attribute>\n        <xsl:apply-templates select=\"node()|@*\"/>\n    </xsl:copy>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/support/play-button/README.md",
    "content": "Generic Video Preview Image\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n2023-02-07: This image was previously provided for LaTeX output as a macro that resolves to a TikZ version.  See removed code and comments below.  In HTML we use an SVG we have mildly edited.  Search the HTML conversion for a template with name \"generic-preview-svg\".\n\nThe SVG image in this directory is a copy of the HTML SVG code.\n\nImageMagick's `convert` command has been used to make the PNG here.  The option `-density 600` was used to reduce pixelated lines.\n\nThe purpose of the PNG image is to be the static version created via the pre-processor.\n\n\n%% Page: https://commons.wikimedia.org/wiki/File:YouTube_Play_Button.svg\n%% File: https://upload.wikimedia.org/wikipedia/commons/d/d1/YouTube_Play_Button.svg\n%% License text:  This image only consists of simple geometric shapes or text.\n%% It does not meet the threshold of originality needed for copyright protection,\n%% and is therefore in the public domain.\n%% Converted from HTML's SVG into tikZ code via  github.com/kjellmf/svg2tikz.git\n%% Generic red play button (from SVG)\n%% tikz package should be loaded by now\n\\definecolor{playred}{RGB}{230,33,23}\n\\newcommand{\\genericpreview}{\n\\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]\n\\path[fill=playred] (94.9800,28.8400) .. controls (94.9800,28.8400) and\n(94.0400,22.2400) .. (91.1700,19.3400) .. controls (87.5300,15.5300) and\n(83.4500,15.5100) .. (81.5800,15.2900) .. controls (68.1800,14.3200) and\n(48.0600,14.4400) .. (48.0600,14.4400) .. controls (48.0600,14.4400) and\n(27.9400,14.3200) .. (14.5400,15.2900) .. controls (12.6700,15.5100) and\n(8.5900,15.5300) .. (4.9500,19.3400) .. controls (2.0800,22.2400) and\n(1.1400,28.8400) .. (1.1400,28.8400) .. controls (1.1400,28.8400) and\n(0.1800,36.5800) .. (0.0000,44.3300) -- (0.0000,51.5900) .. controls\n(0.1800,59.3400) and (1.1400,67.0800) .. (1.1400,67.0800) .. controls\n(1.1400,67.0800) and (2.0700,73.6800) .. (4.9500,76.5800) .. controls\n(8.5900,80.3900) and (13.3800,80.2700) .. (15.5100,80.6700) .. controls\n(23.0400,81.3900) and (47.2100,81.5600) .. (48.0500,81.5700) .. controls\n(48.0600,81.5700) and (68.1900,81.6000) .. (81.5900,80.6300) .. controls\n(83.4600,80.4100) and (87.5400,80.3900) .. (91.1800,76.5800) .. controls\n(94.0500,73.6800) and (94.9900,67.0800) .. (94.9900,67.0800) .. controls\n(94.9900,67.0800) and (95.9500,59.3300) .. (96.0100,51.5900) --\n(96.0100,44.3300) .. controls (95.9400,36.5800) and (94.9800,28.8400) ..\n(94.9800,28.8400) -- cycle(38.2800,61.4100) -- (38.2800,34.4100) --\n(64.0200,47.9100) -- (38.2800,61.4100) -- cycle;\n\\end{tikzpicture}\n}\n"
  },
  {
    "path": "xsl/support/pretext-pg-macros.xsl",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n<!-- ********************************************************************* -->\n<!-- Copyright 2021                                                        -->\n<!-- Robert A. Beezer                                                      -->\n<!--                                                                       -->\n<!-- This file is part of PreTeXt.                                         -->\n<!--                                                                       -->\n<!-- PreTeXt is free software: you can redistribute it and/or modify       -->\n<!-- it under the terms of the GNU General Public License as published by  -->\n<!-- the Free Software Foundation, either version 2 or version 3 of the    -->\n<!-- License (at your option).                                             -->\n<!--                                                                       -->\n<!-- PreTeXt is distributed in the hope that it will be useful,            -->\n<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of        -->\n<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         -->\n<!-- GNU General Public License for more details.                          -->\n<!--                                                                       -->\n<!-- You should have received a copy of the GNU General Public License     -->\n<!-- along with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.      -->\n<!-- ********************************************************************* -->\n\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:str=\"http://exslt.org/strings\"\n    extension-element-prefixes=\"exsl str\"\n>\n\n<!-- This style sheet creates a perl library (.pl) file with WeBWorK PG    -->\n<!-- macros that support WeBWorK problems authored in a PreTeXt project.   -->\n<!-- Eventually when used by the pretext script, the name of the perl      -->\n<!-- library file will be generated from the project title.                -->\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"../publisher-variables.xsl\"/>\n<xsl:import href=\"../pretext-assembly.xsl\"/>\n<xsl:import href=\"../pretext-common.xsl\"/>\n\n<!-- We need to alert the pretext-assembly.xsl stylesheet     -->\n<!-- that it is being used in the very specific instance      -->\n<!-- of extracting these objects for processing externally,   -->\n<!-- with results collected in additional files, for          -->\n<!-- consultation/collection in a more general use of this    -->\n<!-- stylesheet for the purpose of actually building a useful -->\n<!-- output format.  This variable declaration here overrides -->\n<!-- the default setting of \"false\" in pretext-assembly.xsl.  -->\n<!-- Look there for a more comprehensive discussion of the    -->\n<!-- necessity of this scheme.                                -->\n<xsl:variable name=\"b-extracting-pg\" select=\"true()\"/>\n\n<!-- We are outputting perl code, and there is no reason to output         -->\n<!-- anything other than \"text\"                                            -->\n<xsl:output method=\"text\" encoding=\"UTF-8\" />\n\n<!--#######################################################################-->\n<!-- Entry Template                                                        -->\n<!--#######################################################################-->\n\n<xsl:template match=\"/\">\n    <xsl:variable name=\"macro-file-name\">\n        <xsl:choose>\n            <xsl:when test=\"$docinfo/initialism\">\n                <xsl:value-of select=\"$docinfo/initialism\"/>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:apply-templates select=\"$document-root\" mode=\"title-filesafe\"/>\n            </xsl:otherwise>\n        </xsl:choose>\n        <text>.pl</text>\n    </xsl:variable>\n    <xsl:variable name=\"macro-file-content\">\n        <xsl:call-template name=\"header\"/>\n        <xsl:apply-templates select=\"$document-root\" mode=\"latex-image-preamble\"/>\n    </xsl:variable>\n    <exsl:document href=\"{$macro-file-name}\" method=\"text\">\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\"$macro-file-content\" />\n        </xsl:call-template>\n    </exsl:document>\n</xsl:template>\n\n<xsl:template match=\"book|article\" mode=\"latex-image-preamble\">\n    <xsl:if test=\"$docinfo/latex-image-preamble\">\n        <xsl:text># Return a string containing the latex-image-preamble contents.&#xa;</xsl:text>\n        <xsl:text># To be used by LaTeXImage objects as in:&#xa;</xsl:text>\n        <xsl:text># $image->addToPreamble(latexImagePreamble())&#xa;</xsl:text>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:text>sub latexImagePreamble {&#xa;</xsl:text>\n        <xsl:text>return &lt;&lt;'END_LATEX_IMAGE_PREAMBLE'&#xa;</xsl:text>\n        <xsl:call-template name=\"sanitize-text\">\n            <xsl:with-param name=\"text\" select=\"$docinfo/latex-image-preamble\" />\n        </xsl:call-template>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:text>END_LATEX_IMAGE_PREAMBLE&#xa;</xsl:text>\n        <xsl:text>}&#xa;&#xa;</xsl:text>\n    </xsl:if>\n</xsl:template>\n\n<xsl:template name=\"header\">\n    <xsl:text>#############################################################################&#xa;</xsl:text>\n    <xsl:text># This macro library supports WeBWorK problems from the PreTeXt project named&#xa;</xsl:text>\n    <xsl:text># </xsl:text>\n    <xsl:apply-templates select=\"$document-root\" mode=\"title-full\" />\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>#############################################################################&#xa;</xsl:text>\n    <xsl:text>&#xa;&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/support/webpack_static_imports.xml",
    "content": "<?xml version=\"1.0\" ?>\n<all>\n\t<js type=\"list\">\n\t\t<item type=\"str\">prefix-runtime.00db6230172ad960.bundle.js</item>\n\t\t<item type=\"str\">prefix-347.8328b60515045466.bundle.js</item>\n\t\t<item type=\"str\">prefix-runestone.aa624e4071d017c3.bundle.js</item>\n\t</js>\n\t<css type=\"list\">\n\t\t<item type=\"str\">prefix-347.f9add1ca35d5ad93.css</item>\n\t\t<item type=\"str\">prefix-runestone.51d479d87f8466bb.css</item>\n\t</css>\n\t<cdn-url type=\"str\">https://runestone.academy/cdn/runestone/</cdn-url>\n\t<version type=\"str\">7.4.4</version>\n</all>\n"
  },
  {
    "path": "xsl/tests/README.md",
    "content": "# XSL Automated Tests\n\nThis folder contains testing utilities for XSL templates. The tests focus on function-like templates for tasks like string manipulation that are used as helpers throughout the XSL stylesheets. Most of these functions are otherwise only observable indirectly through their effects on the output of the main XSL stylesheets.\n\n## Running Tests\n\nTo run the tests, you can use the `xsltproc` command-line tool. For example:\n\n```\nxsltproc pretext-text-utilities-test.xsl null.xml\n```\n\nA successfully run will just produce the output `Tests complete!`. If there are any issues, the output will include error messages indicating what went wrong.\n\n## Writing Tests\n\nIdeally, before making changes to any low-level utility XSL templates, a developer should document the intended behavior of the template in a set of tests. These tests can be submitted as part of a pull request as evidence the XSL works as intended and to prevent regressions in the future.\n\nRefer to the existing tests in `pretext-text-utilities-test.xsl` for examples of how to do so.\n\n## Files\n\n- `pretext-text-utilities-test.xsl`: Contains tests for the text utilities templates.\n- `null.xml`: A minimal XML file used as input for the tests."
  },
  {
    "path": "xsl/tests/null.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!-- intentionally empty valid XML file for use with pretext-text-utilities-text.xsl -->\n<nothing>\n</nothing>"
  },
  {
    "path": "xsl/tests/pretext-text-utilities-test.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2022 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Standalone testbed for pretext-text-utilities templates        -->\n<!-- Invoke this stylesheet on null.xml in the same folder:         -->\n<!-- xsltproc pretext-text-utilities-test.xsl null.xml              -->\n\n<!-- There are &LOWERCASE; and &UPPERCASE; entities  -->\n<!-- in the \"file-extension\" template (only?) -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- EXSL needed for token list template (only?) -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n    xmlns:pi=\"http://pretextbook.org/2020/pretext/internal\"\n    xmlns:str=\"http://exslt.org/strings\"\n    xmlns:exsl=\"http://exslt.org/common\"\n    xmlns:math=\"http://exslt.org/math\"\n    xmlns:set=\"http://exslt.org/sets\"\n    extension-element-prefixes=\"pi str math\"\n>\n\n<!-- Allow serialization of XML in various contexts     -->\n<!-- See the XSL file for more info about Lenz' utility -->\n<xsl:import href=\"../pretext-text-utilities.xsl\"/>\n\n<!-- Output helper -->\n<xsl:variable name=\"verbose-output\" select=\"false()\"/>\n\n<xsl:template name=\"assert-equal\">\n  <xsl:param name=\"expected\"/>\n  <xsl:param name=\"actual\"/>\n  <xsl:param name=\"test-name\"/>\n  <xsl:choose>\n    <xsl:when test=\"$expected = $actual\">\n      <xsl:if test=\"$verbose-output\">\n        <xsl:message>Test <xsl:value-of select=\"$test-name\"/> passed.</xsl:message>\n      </xsl:if>\n    </xsl:when>\n    <xsl:otherwise>\n      <xsl:message>Test <xsl:value-of select=\"$test-name\"/> failed: </xsl:message>\n      <xsl:message>  expected = \"<xsl:value-of select=\"$expected\"/>\"  (<xsl:value-of select=\"exsl:object-type($expected)\"/>)</xsl:message>\n      <xsl:message>  actual = \"<xsl:value-of select=\"$actual\"/>\"  (<xsl:value-of select=\"exsl:object-type($actual)\"/>)</xsl:message>\n    </xsl:otherwise>\n  </xsl:choose>\n</xsl:template>\n\n<!--========================================================================-->\n<!-- test count-pad-length-->\n<xsl:variable name=\"count-pad-length-0\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"count-pad-length\">\n      <xsl:with-param name=\"text\" select=\"'a'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"0\"/>\n    <xsl:with-param name=\"actual\" select=\"number($test-val)\"/>\n    <xsl:with-param name=\"test-name\" select=\"'count-pad-length-0'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"count-pad-length-2\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"count-pad-length\">\n      <xsl:with-param name=\"text\" select=\"'  a'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"2\"/>\n    <xsl:with-param name=\"actual\" select=\"number($test-val)\"/>\n    <xsl:with-param name=\"test-name\" select=\"'count-pad-length-2'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"count-pad-length-2-empty\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"count-pad-length\">\n      <xsl:with-param name=\"text\" select=\"'  '\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"2\"/>\n    <xsl:with-param name=\"actual\" select=\"number($test-val)\"/>\n    <xsl:with-param name=\"test-name\" select=\"'count-pad-length-2'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<!--========================================================================-->\n<!-- test substring-after-last-->\n<xsl:variable name=\"substring-after-last-b1\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-last\">\n      <xsl:with-param name=\"input\" select=\"'aabcc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'cc'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-last-b1'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-after-last-b2\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-last\">\n      <xsl:with-param name=\"input\" select=\"'aabccbcc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'cc'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-last-b2'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-after-last-missing\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-last\">\n      <xsl:with-param name=\"input\" select=\"'aacc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"''\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-last-missing'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-after-last-leading\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-last\">\n      <xsl:with-param name=\"input\" select=\"'baacc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'aacc'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-last-leading'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n\n<!--========================================================================-->\n<!-- test substring-before-last-->\n<xsl:variable name=\"substring-before-last-b1\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-before-last\">\n      <xsl:with-param name=\"input\" select=\"'aabcc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'aa'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-before-last-b1'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-before-last-b2\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-before-last\">\n      <xsl:with-param name=\"input\" select=\"'aabccbcc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'aabcc'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-before-last-b2'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-before-last-missing\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-before-last\">\n      <xsl:with-param name=\"input\" select=\"'aacc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"''\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-before-last-missing'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<!--========================================================================-->\n<!-- test substring-after-preserve-->\n<xsl:variable name=\"substring-after-preserve-b1\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-preserve\">\n      <xsl:with-param name=\"input\" select=\"'aabcc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'cc'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-preserve-b1'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-after-preserve-miss\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-preserve\">\n      <xsl:with-param name=\"input\" select=\"'aacc'\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"'aacc'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-preserve-miss'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"substring-after-preserve-empty\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"substring-after-preserve\">\n      <xsl:with-param name=\"input\" select=\"''\"/>\n      <xsl:with-param name=\"substr\" select=\"'b'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <xsl:with-param name=\"expected\" select=\"''\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'substring-after-preserve-empty'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n\n<!--========================================================================-->\n<!-- test left-align-text -->\n<xsl:variable name=\"align-left-first-line-shortest\">\n  <xsl:variable name=\"test-val\">\n    <xsl:call-template name=\"left-align-text\">\n      <xsl:with-param name=\"text\" select=\"'  Line one&#10;   Line two&#10;    Line three'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <!-- 2/3/4 spaces should become 0/1/2 spaces -->\n    <xsl:with-param name=\"expected\" select=\"'Line one&#10; Line two&#10;  Line three'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'align-left-first-line-shortest'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"align-left-other-line-shortest\">\n  <xsl:variable name=\"test-val-rtf\">\n    <xsl:call-template name=\"left-align-text\">\n      <xsl:with-param name=\"text\" select=\"'    Line one&#10; Line two&#10;  Line three'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:variable name=\"test-val\">\n    <xsl:value-of select=\"$test-val-rtf\"/>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <!-- 4/1/2 spaces should become 3/0/1 spaces -->\n    <xsl:with-param name=\"expected\" select=\"'   Line one&#10;Line two&#10; Line three'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'align-left-other-line-shortest'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"align-left-no-indent\">\n  <xsl:variable name=\"test-val-rtf\">\n    <xsl:call-template name=\"left-align-text\">\n      <xsl:with-param name=\"text\" select=\"'  Line one&#10;Line two&#10;  Line three'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:variable name=\"test-val\">\n    <xsl:value-of select=\"$test-val-rtf\"/>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <!-- 2/0/2 spaces should become 2/0/2 spaces -->\n    <xsl:with-param name=\"expected\" select=\"'  Line one&#10;Line two&#10;  Line three'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'align-left-no-indent'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n<xsl:variable name=\"align-left-trailing-empty-preserved\">\n  <xsl:variable name=\"test-val-rtf\">\n    <xsl:call-template name=\"left-align-text\">\n      <xsl:with-param name=\"text\" select=\"'  Line one&#10;Line two&#10;  Line three&#10;'\"/>\n    </xsl:call-template>\n  </xsl:variable>\n  <xsl:variable name=\"test-val\">\n    <xsl:value-of select=\"$test-val-rtf\"/>\n  </xsl:variable>\n  <xsl:call-template name=\"assert-equal\">\n    <!-- 2/0/2 spaces should become 2/0/2 spaces -->\n    <xsl:with-param name=\"expected\" select=\"'  Line one&#10;Line two&#10;  Line three&#10;'\"/>\n    <xsl:with-param name=\"actual\" select=\"$test-val\"/>\n    <xsl:with-param name=\"test-name\" select=\"'align-left-trailing-empty-preserved'\"/>\n  </xsl:call-template>\n</xsl:variable>\n\n\n<!--========================================================================-->\n\n<!-- \"main\" -->\n<xsl:template match=\"/\">\n  <xsl:message>Tests complete!</xsl:message>\n</xsl:template>\n\n</xsl:stylesheet>"
  },
  {
    "path": "xsl/utilities/README.md",
    "content": "# Utilities\n\n## Source-to-Source conversions\n\nFor utility programs here which rewrite your source, be **sure** to use version control (collect and review changes on a branch, stash and drop undesirable outcomes), or have backups handy.  The effects are not reversible.  Stylesheets will output to standard output, so you can redirect their output, or you can use something like the `-o` flag on the `xsltproc` command-line invocation.  Experiment first.\n\n### `fix-deprecations.xsl`\nThis will convert any obsolete element names or constructions to their replacements.  As deprecations are added, you may run it anew, and only the new changes will be applied.  Despite the name, it does make some minor changes.  Empty tags will get a single space prior to the closing backslash.\n\nBe sure to read all the details in the Author's Guide before using this on your source.  Here is an absolute minimal example.\n```\n$ xsltproc /path/to/xsl/utilities/fix-deprecations.xsl -stringparam fix all /path/to/examples/sample-errors-and-warnings.xml > new-sample.xml\n\n$ diff /path/to/examples/sample-errors-and-warnings.xml new-sample.xml\n```\n(Updated: 2017-07-04)\n\n\n## Author Report\n\n`author-report.xsl` is a very simple stylesheet which will produce a text version of items in your source that could benefit from your attention.  This is different than validating your PreTeXt source against the schema, but is part of using automated tools to ensure healthy source material.\n\n(Updated: 2018-12-09)\n\n## Intermediate Enhanced Source\n\n`pretext-enhanced-source.xsl` is mainly meant for development use.  It outputs an XML file, which is not necessarily valid PreTeXt, at a key stage of the processing.  It gives you a look under the hood (or bonnet).  So generally not useful (or necessary) for authors.\n\n(Updated: 2020-02-25)\n"
  },
  {
    "path": "xsl/utilities/author-report.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2018 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\" >\n\n<!-- NB: (2020-06-07) xref/@provisional gets replaced by placeholder -->\n<!-- text in the \"assembly\" phase, so think carefully about whether  -->\n<!-- or not this stylesheet should run against orginal source or     -->\n<!-- enhanced source, they *are* different.                          -->\n\n<!-- Uses \"strip-leading-whitespace\" and more -->\n<!-- Standard conversion groundwork           -->\n<xsl:import href=\"../publisher-variables.xsl\"/>\n<xsl:import href=\"../pretext-assembly.xsl\"/>\n<xsl:import href=\"../pretext-common.xsl\"/>\n\n<!-- ASCII output intended, consistent with -common -->\n<xsl:output method=\"text\" />\n\n<!-- Generally, traverse the tree,                       -->\n<!-- looking for things to do                            -->\n<!-- http://stackoverflow.com/questions/3776333/         -->\n<!-- stripping-all-elements-except-one-in-xml-using-xslt -->\n<xsl:template match=\"@*|node()|comment()\">\n    <xsl:apply-templates select=\"@*|node()|comment()\"/>\n</xsl:template>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<xsl:template match=\"/\">\n    <xsl:call-template name=\"converter-blurb-text\"/>\n    <xsl:apply-templates select=\"$document-root\" />\n</xsl:template>\n\n<!-- Headers, per division or structure -->\n<xsl:template match=\"&STRUCTURAL;\">\n    <xsl:text>&#xa;**************************************&#xa;</xsl:text>\n    <xsl:apply-templates select=\".\" mode=\"long-name\" />\n    <xsl:text>&#xa;**************************************&#xa;</xsl:text>\n    <xsl:apply-templates select=\"*[not(self::subtitle)]|comment()\"/>\n</xsl:template>\n\n<!-- Kill titles as metadata, but restore behavior on nodes to   -->\n<!-- allow the \"long-name\" template above to perform as intended -->\n<xsl:template match=\"title\"/>\n<xsl:template match=\"title/node()\">\n    <xsl:value-of select=\".\" />\n</xsl:template>\n\n<!-- Looking for todo's and provisional citations, cross-references -->\n<!-- May need to abandon counting if conditions get more complex    -->\n\n<!-- This template comes close to doing the right thing, -->\n<!-- but is off by one (or more) in strange ways, so we  -->\n<!-- are not numbering the reported items                -->\n<xsl:template match=\"xref|comment()\" mode=\"overall-number\">\n    <xsl:number level=\"any\" count=\"xref[@provisional]|comment()[translate(substring(normalize-space(string(.)), 1, 4), &UPPERCASE;, &LOWERCASE;) = 'todo']\"/>\n</xsl:template>\n\n<xsl:template match=\"comment()[translate(substring(normalize-space(string(.)), 1, 4), &UPPERCASE;, &LOWERCASE;) = 'todo']\">\n    <!-- <xsl:apply-templates select=\".\" mode=\"overall-number\"/> -->\n    <!-- <xsl:text>. </xsl:text> -->\n    <xsl:call-template name=\"strip-leading-whitespace\">\n        <xsl:with-param name=\"text\">\n            <xsl:value-of select=\".\"/>\n        </xsl:with-param>\n    </xsl:call-template>\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n<xsl:template match=\"xref[@provisional]\">\n    <!-- <xsl:apply-templates select=\".\" mode=\"overall-number\"/> -->\n    <!-- <xsl:text>.</xsl:text> -->\n    <xsl:text>xref: </xsl:text>\n    <xsl:value-of select=\"@provisional\" />\n    <xsl:text>&#xa;</xsl:text>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/utilities/deprecate-autoname.sed",
    "content": "# PreTeXt deprecations of xref/@autoname attribute\n# Robert Beezer, 2017-07-25\n\n# Sample usage on directory of *.xml files\n# Converts from current directory to \"newdir\" subdirectory\n#\n# for f in *.xml; do echo $f; sed -f mathbook/xsl/utilities/deprecate-autoname.sed $f > newdir/$f; done\n\n\ns/autoname=\"no\"/text=\"global\"/g\ns/autoname = \"no\"/text = \"global\"/g\n\ns/autoname=\"yes\"/text=\"type-global\"/g\ns/autoname = \"yes\"/text = \"type-global\"/g\n\ns/autoname=\"title\"/text=\"title\"/g\ns/autoname = \"title\"/text = \"title\"/g\n\n"
  },
  {
    "path": "xsl/utilities/deprecate-index.sed",
    "content": "# PreTeXt deprecations of index creation elements\n# Robert Beezer, 2017-07-14\n\n# Sample usage on directory of *.xml files\n# Converts from current directory to \"newdir\" subdirectory\n#\n# for f in *.xml; do echo $f; sed -f mathbook/xsl/utilities/deprecate-index.sed $f > newdir/$f; done\n\n\n# First, protect elements that begin with \"index\"\n# so \"index\" match below will not affect them\ns/<index-part/PARTPART/g\ns/<\\/index-part>/PARTENDPARTEND/g\ns/<index-list/LISTLIST/g\n\n# index -> idx\ns/<index/<idx/g\ns/<\\/index>/<\\/idx>/g\n\n# main -> h\ns/<main/<h/g\ns/<\\/main>/<\\/h>/g\n\n# sub -> h\n# careful not to clobber <subsection>, etc.\ns/<sub /<h /g\ns/<sub>/<h>/g\ns/<\\/sub>/<\\/h>/g\n\n# Remove protection, convert to new elements\ns/PARTPART/<index/g\ns/PARTENDPARTEND/<\\/index>/g\ns/LISTLIST/<index-list/g\n"
  },
  {
    "path": "xsl/utilities/fix-deprecations.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2017 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- Identify as a stylesheet -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    exclude-result-prefixes=\"xsl\"\n>\n\n<xsl:output method=\"xml\" encoding=\"UTF-8\" />\n\n<!-- ###################### -->\n<!-- Deprecations and Fixes -->\n<!-- ###################### -->\n\n<!-- Deprecations that can be fixed with a transformation -->\n<!-- In reverse chronological order, with dates           -->\n\n<!-- 2020-03-13  webwork setup obsolete -->\n<xsl:template match=\"webwork/setup\">\n    <xsl:apply-templates select=\"@* | node()\" />\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2020-03-13</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing &lt;setup&gt; wrapper from a &lt;webwork&gt;, preserving contents (&lt;pg-code&gt;?)</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2019-06-28  deprecate captioned lists to be titled lists -->\n<xsl:template match=\"list[title]/caption\">\n    <xsl:comment>\n        <xsl:text>Commented list/caption: </xsl:text>\n        <xsl:apply-templates select=\"*|text()\" />\n    </xsl:comment>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-06-28</xsl:with-param>\n        <xsl:with-param name=\"message\">Converting a &lt;list&gt;/&lt;caption&gt; to a source comment</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2019-06-28  deprecate captioned lists to be titled lists -->\n<xsl:template match=\"list[not(title)]/caption\">\n    <title>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </title>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-06-28</xsl:with-param>\n        <xsl:with-param name=\"message\">Converting a &lt;list&gt;/&lt;caption&gt; to a &lt;list&gt;/&lt;title&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2019-06-28  deprecate captioned tables to be titled tables -->\n<xsl:template match=\"table/caption\">\n    <title>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </title>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-06-28</xsl:with-param>\n        <xsl:with-param name=\"message\">Converting a &lt;table&gt;/&lt;caption&gt; to a &lt;table&gt;/&lt;title&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2019-02-10  todo element replaced by a prefixed XML comment -->\n<xsl:template match=\"todo\">\n    <xsl:comment>\n        <xsl:text> </xsl:text>\n        <xsl:text>ToDo: </xsl:text>\n        <xsl:apply-templates/>\n        <xsl:text> </xsl:text>\n    </xsl:comment>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-10</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing a &lt;todo&gt; with a prefixed XML comment</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2019-02-06 Nine unnecessary elements     -->\n<!-- <, >, [, ], *, /, `, braces and brackets -->\n<xsl:template match=\"less\">\n    <xsl:text>&lt;</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;less/&gt; with &quot;&lt;&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"greater\">\n    <xsl:text>&gt;</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;greater/&gt; with &quot;&gt;&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"lbracket\">\n    <xsl:text>[</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;lbracket/&gt; with &quot;[&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"rbracket\">\n    <xsl:text>]</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;rbracket/&gt; with &quot;]&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"asterisk\">\n    <xsl:text>*</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;asterisk/&gt; with &quot;*&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"slash\">\n    <xsl:text>/</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;slash/&gt; with &quot;/&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"backtick\">\n    <xsl:text>`</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;backtick/&gt; with &quot;`&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"braces\">\n    <xsl:text>{</xsl:text>\n        <xsl:apply-templates select=\"@* | node()\" />\n    <xsl:text>}</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;braces&gt; by {...}</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"brackets\">\n    <xsl:text>[</xsl:text>\n        <xsl:apply-templates select=\"@* | node()\" />\n    <xsl:text>]</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;brackets&gt; by [...]</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2019-02-06 LaTeX's 10 reserved characters: # $ % ^ & _ { } ~ \\ -->\n<xsl:template match=\"hash\">\n    <xsl:text>#</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;hash/&gt; with &quot;#&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"dollar\">\n    <xsl:text>$</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;dollar/&gt; with &quot;$&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"percent\">\n    <xsl:text>%</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;percent/&gt; with &quot;%&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"circumflex\">\n    <xsl:text>^</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;circumflex/&gt; with &quot;^&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"ampersand\">\n    <xsl:text>&amp;</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;ampersand/&gt; with &quot;&amp;&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"underscore\">\n    <xsl:text>_</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;underscore/&gt; with &quot;_&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"lbrace\">\n    <xsl:text>{</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;lbrace/&gt; with &quot;{&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"rbrace\">\n    <xsl:text>}</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;rbrace/&gt; with &quot;}&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"tilde\">\n    <xsl:text>~</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;tilde/&gt; with &quot;~&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"backslash\">\n    <xsl:text>\\</xsl:text>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2019-02-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;backslash/&gt; with &quot;\\&quot;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2018-12-30  circa shortened to ca -->\n<xsl:template match=\"circa\">\n    <ca/>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2018-12-30</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;circa/&gt; by &lt;ca/&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2018-05-02  sidebyside paragraphs to stack, preserve title -->\n<xsl:template match=\"sidebyside/paragraphs\">\n    <stack>\n        <xsl:comment> Old paragraphs title: <xsl:apply-templates select=\"title/node()\" /> </xsl:comment>\n        <xsl:apply-templates select=\"@*[not(self::title)] | node()\" />\n    </stack>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2018-05-02</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;paragraphs&gt; inside &lt;sidebyside&gt; with &lt;stack&gt;, &quot;title&quot; preserved in a comment</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2018-02-05  booktitle to simply pubtitle -->\n<xsl:template match=\"booktitle\">\n    <pubtitle>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </pubtitle>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2018-02-05</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;booktitle&gt; by &lt;pubtitle&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-12-07  \"c\" content totally escaped for LaTeX -->\n<xsl:template match=\"c/@latexsep|cd/@latexsep\">\n    <!-- do nothing, just drop it and report -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-12-07</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing &lt;@latexsep&gt; from a &lt;c&gt; or &lt;cd&gt; element</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-08-06  wrap \"program\" and \"console\" in \"sidebyside\" at full width -->\n<xsl:template match=\"program[not(parent::sidebyside or parent::listing)]\">\n    <sidebyside width=\"100%\">\n        <program>\n            <xsl:apply-templates select=\"@* | node()\" />\n        </program>\n    </sidebyside>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-08-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Wrapping top-level &lt;program&gt; with full-width &lt;sidebyside&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<xsl:template match=\"console[not(parent::sidebyside or parent::listing)]\">\n    <sidebyside width=\"100%\">\n        <console>\n            <xsl:apply-templates select=\"@* | node()\" />\n        </console>\n    </sidebyside>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-08-06</xsl:with-param>\n        <xsl:with-param name=\"message\">Wrapping top-level &lt;console&gt; with full-width &lt;sidebyside&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-08-04  top-level \"task\" become \"exploration\" -->\n<xsl:template match=\"task[parent::chapter or parent::appendix or parent::section or parent::subsection or parent::subsubsection or parent::paragraphs or parent::introduction or parent::conclusion]\">\n    <exploration>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </exploration>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-08-04</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;task&gt; by &lt;exploration&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-07-25  replacement of three xref/@autoname attributes by @text -->\n<xsl:template match=\"@autoname\">\n    <xsl:variable name=\"old-value\" select=\"string(.)\" />\n    <xsl:attribute name=\"text\">\n        <xsl:choose>\n            <xsl:when test=\"$old-value = 'no'\">global</xsl:when>\n            <xsl:when test=\"$old-value = 'yes'\">type-global</xsl:when>\n            <xsl:when test=\"$old-value = 'title'\">title</xsl:when>\n        </xsl:choose>\n    </xsl:attribute>\n</xsl:template>\n\n<!-- 2017-07-18:  cosmetic changes to WeBWorK image attribute -->\n<xsl:template match=\"@tex_size\">\n    <xsl:attribute name=\"tex-size\">\n        <xsl:value-of select=\".\" />\n    </xsl:attribute>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-18</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing @tex_size by @tex-size in WeBWorK &lt;image&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!--  -->\n<!-- 2017-07-14:  cosmetic changes to index specification and production -->\n<xsl:template match=\"index-part\">\n    <index>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </index>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-14</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;index-part&gt; by &lt;index&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!--  -->\n<!-- try not to clobber new \"index\" division on subsequent run -->\n<xsl:template match=\"index[not(index-list)]\">\n    <idx>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </idx>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-14</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;index&gt; by &lt;idx&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!--  -->\n<xsl:template match=\"index/main\">\n    <h>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </h>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-14</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;index&gt;/&lt;main&gt; by &lt;idx&gt;/&lt;h&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!--  -->\n<xsl:template match=\"index/sub\">\n    <h>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </h>\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-14</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;index&gt;/&lt;sub&gt; by &lt;idx&gt;/&lt;h&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-07-05:  wrap a captioned side-by-side as a captioned figure -->\n<xsl:template match=\"sidebyside[caption]\">\n    <figure>\n        <xsl:copy-of select=\"@xml:id\" />\n        <!-- <xsl:apply-templates select=\"@*[not(self::@xml:id)]\" /> -->\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:copy-of select=\"caption\" />\n        <xsl:text>&#xa;    </xsl:text>\n        <sidebyside>\n            <xsl:apply-templates select=\"@*[name()!='xml:id'] | node()[not(self::caption)]\" />\n        </sidebyside>\n        <xsl:text>&#xa;</xsl:text>\n    </figure>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-05</xsl:with-param>\n        <xsl:with-param name=\"message\">Moving a &lt;<xsl:value-of select=\"local-name(.)\" />&gt; with a &lt;caption&gt; into a new &lt;figure&gt; with the same &lt;caption&gt; and @xml:id</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-07-05:  convert top-level caption-less figure/table/listing to a side-by-side  -->\n<!-- 2019-06-28:  removed fixes for tables, since they now have titles                   -->\n<xsl:template match=\"figure[not(caption) and not(parent::sidebyside)] | listing[not(caption) and not(parent::sidebyside)]\">\n    <sidebyside>\n        <!-- migrate an image width attribute -->\n        <xsl:if test=\"self::figure and image[@width]\">\n            <xsl:copy-of select=\"image/@width\" />\n        </xsl:if>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </sidebyside>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-05</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;<xsl:value-of select=\"local-name(.)\" />&gt; that is a child of a division, and has no &lt;caption&gt;, by an equivalent &lt;sidebyside&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!-- @width moves above, now trash it at origin -->\n<xsl:template match=\"figure[not(caption) and not(parent::sidebyside)]/image\">\n    <image>\n        <xsl:apply-templates select=\"@*[name()!='width'] | node()\" />\n    </image>\n</xsl:template>\n\n<xsl:template match=\"figure[not(caption) and parent::sidebyside] | listing[not(caption) and parent::sidebyside]\">\n    <xsl:if test=\"@xml:id\">\n        <xsl:comment>NOTE: @xml:id=<xsl:value-of select=\"@xml:id\" /> from a &lt;<xsl:value-of select=\"local-name(.)\" />&gt; was dropped while fixing deprecations.  The @xml:id may belong on an element just below, though it is unlikely a caption-less item was ever the target of a cross-reference.</xsl:comment>\n    </xsl:if>\n    <xsl:apply-templates select=\"node()\" />\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-07-05</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing a &lt;<xsl:value-of select=\"local-name(.)\" />&gt; that is a child of a division, and has no &lt;caption&gt;, by an equivalent &lt;sidebyside&gt;.  NOTE: attributes, such as an  @xml:id  might be lost in the process, see comment in the resulting source</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2017-02-05:  replace hyphen element by hyphen-minus element -->\n<xsl:template match=\"hyphen\">\n    <hyphen-minus/>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2017-02-05</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;hyphen/&gt; by &lt;hyphen-minus/&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2016-07-31: requiring @width attribute to be a percentage, -->\n<!-- no easy way to fix this, so warnings will have to suffice  -->\n\n<!-- 2016-07-31: withdrew @height attribute on image element -->\n<xsl:template match=\"image/@height[not(ancestor::*[self::webwork])]\">\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2016-07-31</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing @height attribute of &lt;image&gt; (outside of a WeBWorK exercise)</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2016-05-23:  empty \"br\" elements for multiline output are banned    -->\n<!-- No easy way to uniformly fix this, so warnings will have to suffice -->\n\n<!-- 2016-05-23:  parts of a letter or memorandum suggest     -->\n<!-- they *must* be structured with \"line\" elements           -->\n<!-- Perhaps more accurate to just warn about misuse of \"br\", -->\n<!-- as we can go with mixed-content or structured versions   -->\n\n<!-- 2016-04-27: withdrew pluralizing prefix names in xref link text -->\n<xsl:template match=\"xref/@autoname[. = 'plural']\">\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2016-04-27</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing @autoname attribute of &lt;xref&gt; set to obsolete value 'plural'</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2015-12-12: an ordered list with blank labels -->\n<!-- should be an unordered list with blank labels -->\n<xsl:template match=\"ol[@label='']\">\n    <ul>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </ul>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2015-12-12</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;ol&gt; with empty labels by a &lt;ul&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2015-03-17: tables are very different  -->\n<!-- Some automated fixing, will            -->\n<!-- need attention by hand also            -->\n<!--  -->\n<!-- enclosing  tgroup  becomes a  tabular  -->\n<xsl:template match=\"tgroup\">\n    <tabular>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </tabular>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2015-03-17</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;tgroup&gt; by &lt;tabular&gt;, tables are now very different</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!-- alignment is different, will require a hand-fix -->\n<xsl:template match=\"tgroup/@align|tgroup/@cols\">\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2015-03-17</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing obsolete @align and @cols attributes, adjust alignment of contents of tabular by hand</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!-- drop intermediate  thead  and  tbody  -->\n<xsl:template match=\"thead|tbody\">\n    <xsl:apply-templates select=\"@* | node()\" />\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2015-03-17</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing intermediate &lt;thead&gt; and &lt;tbody&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n<!-- maybe we'll recycle entry for something else, so protect it -->\n<xsl:template match=\"row/entry\">\n    <cell>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </cell>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2015-03-17</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;entry&gt; by &lt;cell&gt; in a &lt;row&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2015-03-13: the paragraph lightweight sectioning is better in plural -->\n<xsl:template match=\"paragraph\">\n    <paragraphs>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </paragraphs>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2015-03-13</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;paragraph&gt; by &lt;paragraphs&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2015-01-28: <circum /> is gone, <circumflex /> won -->\n<xsl:template match=\"circum\">\n    <circumflex>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </circumflex>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2014-06-25</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;circumflex/&gt; by &lt;circum/&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2014-06-25: <cite> gone, replace directly with <xref> -->\n<xsl:template match=\"cite\">\n    <xref>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </xref>\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2014-06-25</xsl:with-param>\n        <xsl:with-param name=\"message\">Replacing &lt;cite&gt; by &lt;xref&gt;</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- 2014-05-04: @filebase attributes is obsolete, we drop it -->\n<!-- Author's responsibility to introduce/adjust an @xml:id   -->\n<xsl:template match=\"@filebase\">\n    <!--  -->\n    <xsl:call-template name=\"deprecation-fix-report\">\n        <xsl:with-param name=\"date\">2014-05-04</xsl:with-param>\n        <xsl:with-param name=\"message\">Removing obsolete @filebase attribute, introduce or adjust an @xml:id to play this role</xsl:with-param>\n    </xsl:call-template>\n</xsl:template>\n\n<!-- ######################### -->\n<!-- Stylesheet Infrastructure -->\n<!-- ######################### -->\n\n<!-- We place these templates at the end,  -->\n<!-- the deprecations above are the items of -->\n<!-- interest, in reverse chronological order -->\n\n<!-- We do a few things to get started              -->\n<!-- We override matching the root element of the   -->\n<!-- imported worksheet with the identity template, -->\n<!-- and then resume walking the tree               -->\n\n<!-- Switch to prevent naive use -->\n<xsl:param name=\"fix\" select=\"'no'\" />\n\n<xsl:template match=\"/\">\n    <xsl:choose>\n        <!-- print to console and quit -->\n        <xsl:when test=\"$fix = 'no'\">\n            <xsl:call-template name=\"instructions\" />\n        </xsl:when>\n        <!-- modal run on root to just change source cosmetically -->\n        <xsl:when test=\"$fix = 'normalize'\">\n            <xsl:apply-templates select=\".\" mode=\"normalize\"/>\n        </xsl:when>\n        <!-- default templates on children to actually change source -->\n        <xsl:when test=\"$fix = 'all'\">\n            <xsl:copy>\n                <xsl:apply-templates select=\"@* | node()\" />\n            </xsl:copy>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:message>The parameter \"fix\" must be set to 'no', 'normalize', or 'all'.  Assuming 'no'.</xsl:message>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template name=\"instructions\">\n    <xsl:message terminate=\"yes\">\n        <text>*                                                                        *&#xa;</text>\n        <text>*  The \"fix-deprecations\" stylesheet will change your source files       *&#xa;</text>\n        <text>*                                                                        *&#xa;</text>\n        <text>*   1.  Experiment on copies and keep good backups                       *&#xa;</text>\n        <text>*   2.  Send output to a file in some other directory than originals     *&#xa;</text>\n        <text>*   3.  Do not enable  xinclude  processing if you want modular files    *&#xa;</text>\n        <text>*   4.  Indentation and whitespace will be preserved                     *&#xa;</text>\n        <text>*   5.  Attributes will likely be re-ordered, with normalized spacing    *&#xa;</text>\n        <text>*   6.  Empty elements will have spaces removed from the tag             *&#xa;</text>\n        <text>*   7.  Elements with no content may be written with a single empty tag  *&#xa;</text>\n        <text>*   8.  CDATA sections will have some characters replaced by entities    *&#xa;</text>\n        <text>*   9.  The output files will be labeled as having UTF-8 encoding        *&#xa;</text>\n        <text>*  10.  It might be necessary to run this more than once                 *&#xa;</text>\n        <text>*  11.  Be sure to inspect the results, perhaps using a \"diff\" tool      *&#xa;</text>\n        <text>*  12.  It should be safe to run this repeatedly, even after updates     *&#xa;</text>\n        <text>*                                                                        *&#xa;</text>\n        <text>*  Quitting now.  Instructions:                                          *&#xa;</text>\n        <text>*                                                                        *&#xa;</text>\n        <text>*  To use, and confirm you have read this far, use a parameter on the    *&#xa;</text>\n        <text>*  command line that sets the parameter \"fix\" to the value 'all'         *&#xa;</text>\n        <text>*                                                                        *&#xa;</text>\n        <text>*  Set the parameter \"fix\" to 'normalize' to only adjust source format   *&#xa;</text>\n        <text>*  (This might be a useful first step the first time you use this)       *&#xa;</text>\n        <text>*                                                                        *&#xa;</text>\n    </xsl:message>\n</xsl:template>\n\n<!-- A template to report to console, so we can adjust later -->\n<xsl:template name=\"deprecation-fix-report\">\n    <xsl:param name=\"message\" select=\"''\" />\n    <xsl:param name=\"date\" select=\"''\" />\n    <xsl:message><xsl:value-of select=\"$message\" /> (from <xsl:value-of select=\"$date\" />)</xsl:message>\n</xsl:template>\n\n<!-- Walk the tree, copying everything as-is -->\n<!-- with templates above as exceptions      -->\n<xsl:template match=\"@* | node()\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@* | node()\" />\n    </xsl:copy>\n</xsl:template>\n\n<!-- Walk the tree, copying everything *exactly* -->\n<xsl:template match=\"@* | node()\" mode=\"normalize\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"@* | node()\" mode=\"normalize\" />\n    </xsl:copy>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/utilities/pretext-enhanced-source.xsl",
    "content": "<?xml version='1.0'?>\n\n<!--********************************************************************\nCopyright 2020 Robert A. Beezer\n\nThis file is part of PreTeXt.\n\nPreTeXt is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nPreTeXt is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with PreTeXt.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n    xmlns:xml=\"http://www.w3.org/XML/1998/namespace\"\n>\n\n<!-- This stylesheet should behave, without any errors, without    -->\n<!-- importing the \"pretext-common.xsl\" stylesheet.  Typically,    -->\n<!-- in other uses of the two stylesheets above, we import         -->\n<!-- \"pretext-common.xsl\" as well, which will include many         -->\n<!-- \"strip-space\" directives, which will impact the assembled     -->\n<!-- source (without any real harm, though, just different).       -->\n<!-- In other words, the two (symbiotic) stylesheets used here     -->\n<!-- should remain independent of the -common stylesheet.          -->\n<!--                                                               -->\n<!-- The \"publisher-variables.xsl\" and \"pretext-assembly.xsl\"      -->\n<!-- stylesheets are symbiotic, and should be imported             -->\n<!-- simultaneously.  Assembly will change the source in various   -->\n<!-- ways, while some defaults for publisher variables will depend -->\n<!-- on source.  The default variables should depend on gross      -->\n<!-- structure and adjustments should be to smaller portions of    -->\n<!-- the source, but we don't take any chances.  So, note in       -->\n<!-- \"assembly\" that an intermediate tree is defined as a          -->\n<!-- variable, which is then used in defining some variables,      -->\n<!-- based on assembled source.  Conversely, certain variables,    -->\n<!-- such as locations of customizations or private solutions,     -->\n<!-- are needed early in assembly, while other variables, such     -->\n<!-- as options for numbering, are needed for later enhancements   -->\n<!-- to the source.  If new code results in undefine, or           -->\n<!-- recursively defined, variables, this discussion may be        -->\n<!-- relevant.  (This is repeated verbatim in the other            -->\n<!-- stylesheet).                                                  -->\n\n<xsl:import href=\"../publisher-variables.xsl\"/>\n<xsl:import href=\"../pretext-assembly.xsl\"/>\n\n<!-- Every conversion that imports \"pretext-assembly.xsl\"        -->\n<!-- also imports \"pretext-common.xsl\".  So we do likewise here, -->\n<!-- which brings in whitespace control via \"strip-space\" and    -->\n<!-- templates (like \"type-name\") that assembly-time processing  -->\n<!-- may depend on.                                              -->\n\n<xsl:import href=\"../pretext-common.xsl\"/>\n\n<xsl:output method=\"xml\" indent=\"yes\" encoding=\"UTF-8\"/>\n\n<!-- The \"pretext-assembly.xsl\" stylesheet is parameterized by a   -->\n<!-- *variable* for what types of exercises to create - mostly     -->\n<!-- static, but for HTML, interactive (dynamic).  In this way     -->\n<!-- importing stylesheets can set and override the variable as    -->\n<!-- necessary, but it is a bit harder to set via string parameters-->\n<!-- in the usual ways.  But for this utility, we want to run both -->\n<!-- modes.  So we *do* have a parameter here, and it just becomes -->\n<!-- the value of the variable, as just described.  Default if not -->\n<!-- set is \"static\", the alternative is \"dynamic\".                -->\n\n<xsl:param name=\"debug.assembly.exercise\" select=\"'static'\"/>\n<xsl:variable name=\"exercise-style\">\n    <xsl:value-of select=\"$debug.assembly.exercise\"/>\n</xsl:variable>\n\n<!-- ############## -->\n<!-- Entry Template -->\n<!-- ############## -->\n\n<!-- $root points to intermediate enhanced source created        -->\n<!-- in the \"pretext-assembly.xsl\" stylesheet, so study that     -->\n<!-- stylesheet to understand what it is being displayed.        -->\n<!-- This stylesheet will be affected by whatever parameters     -->\n<!-- and auxiliary files that the assembly stylesheet reacts to. -->\n\n<xsl:template match=\"/\">\n    <xsl:choose>\n        <xsl:when test=\"$b-version-only\">\n            <xsl:apply-templates select=\"$version\" mode=\"showme\"/>\n        </xsl:when>\n        <xsl:otherwise>\n            <xsl:apply-templates select=\"$root\" mode=\"showme\"/>\n        </xsl:otherwise>\n    </xsl:choose>\n</xsl:template>\n\n<xsl:template match=\"node()|@*\" mode=\"showme\">\n    <xsl:copy>\n        <xsl:apply-templates select=\"node()|@*\" mode=\"showme\"/>\n    </xsl:copy>\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/utilities/report-publisher-variables.xsl",
    "content": "<?xml version='1.0'?> <!-- As XML file -->\n\n<!--********************************************************************\nCopyright 2013 Robert A. Beezer\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!-- http://pimpmyxslt.com/articles/entity-tricks-part2/ -->\n<!DOCTYPE xsl:stylesheet [\n    <!ENTITY % entities SYSTEM \"../entities.ent\">\n    %entities;\n]>\n\n<!-- Identify as a stylesheet -->\n<!-- We choose to not include a default namespace       -->\n<!-- (in particular  http://www.w3.org/1999/xhtml),     -->\n<!-- even if this complicates adding namespaces onto    -->\n<!-- derivatives, such as HTML destined for EPUB output -->\n<!-- xmlns=\"http://www.w3.org/1999/xhtml\"               -->\n<!--                                                    -->\n<!-- NB:                                                -->\n<!--   \"xsl\" is necessary to identify XSL functionality -->\n<!--   \"xml\" is automatic, hence redundant              -->\n<!--   \"svg\" is necessary to for Asymptote 3D images    -->\n<!--   \"pi\" is meant to mark private PreTeXt markup     -->\n<!--   \"exsl\" namespaces enable extension functions     -->\n<!--                                                    -->\n<!-- Excluding result prefixes keeps them from bleeding -->\n<!-- into output unnecessarily -->\n<xsl:stylesheet\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"\n>\n\n<!-- DEBUGGING -->\n<!-- xsltproc -o crap.txt  -stringparam publisher ~/mathbook/mathbook/examples/sample-article/publication.xml /home/rob/mathbook/mathbook/xsl/utilities/report-publisher-variables.xsl ~/mathbook/mathbook/examples/sample-article/sample-article.xml -->\n\n<!-- Standard conversion groundwork -->\n<xsl:import href=\"../publisher-variables.xsl\"/>\n<xsl:import href=\"../pretext-assembly.xsl\"/>\n\n<!-- Intend output for a text file -->\n<xsl:output method=\"text\" encoding=\"UTF-8\"/>\n\n<!-- IMPORTANT: to report the value of a (computed) publisher variable,   -->\n<!-- two related routines are involved.  For a variable not previously    -->\n<!-- supported, a developer must take action to implement a report. The   -->\n<!-- XSL in the \"utilities/report-publisher-variable.xsl\" stylesheet must -->\n<!-- include the report of a value, which will be captured in a temporary -->\n<!-- file to be read by the Python routine \"get_publisher_variable()\".    -->\n\n<xsl:template match=\"/\">\n    <!-- 2024-06-20 Testing-->\n    <xsl:text>generated-directory-source</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$generated-directory-source\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2024-06-20 Testing-->\n    <xsl:text>external-directory-source</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$external-directory-source\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2024-06-26 Mermaid theme -->\n    <xsl:text>mermaid-theme</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$mermaid-theme\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2024-07-07 QR code image -->\n    <xsl:text>qrcode-image</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$qrcode-image\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2024-07-21 theme for html build -->\n    <xsl:text>html-theme-name</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$html-theme-name\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <xsl:text>html-theme-options</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$html-theme-options\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2024-10-04 LaTeX style xsl -->\n    <xsl:text>latex-style</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$latex-style\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2025-02-25 journal name -->\n    <xsl:text>journal-name</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$journal-name\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2025-03-10 portable html switch -->\n    <xsl:text>portable-html</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$portable-html\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2025-05-10 CSL style indicator -->\n    <xsl:text>b-using-csl-styles</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$b-using-csl-styles\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2025-05-10 CSL style filename -->\n    <xsl:text>csl-style-file</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$csl-style-file\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2025-06-26 Mermaid layout engine -->\n    <xsl:text>mermaid-layout-engine</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$mermaid-layout-engine\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2025-09-18 Server to call for STACK question rendering -->\n    <xsl:text>stack-server</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$stack-server\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- 2026-02-16 Base URL that  interactives -->\n    <xsl:text>baseurl</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$baseurl\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-- -->\n\n    <!--\n    Boilerplate to support a new variable\n    Please use this style, as above\n    (remove \"X\" to format comments properly)\n\n    <!-X- YYY-MM-DD Purpose-X->\n    <xsl:text>[[var-name-here]]</xsl:text>\n    <xsl:text> </xsl:text>\n    <xsl:value-of select=\"$[[var-name-here-keep-prefix-$]]\"/>\n    <xsl:text>&#xa;</xsl:text>\n    <!-X- -X->\n    -->\n\n</xsl:template>\n\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/xml-to-json.xsl",
    "content": "<?xml version=\"1.0\"?>\n\n<!--********************************************************************\nCopyright 2023 Jason Siefken\n\nThis file is part of MathBook XML.\n\nMathBook XML is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 2 or version 3 of the\nLicense (at your option).\n\nMathBook XML is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with MathBook XML.  If not, see <http://www.gnu.org/licenses/>.\n*********************************************************************-->\n\n<!--\n    A basic recreation of the XSLT3.0 xml-to-json conversion.\n    Valid JSON nodes are: <map>, <array>, <number>, <string>, <boolean>, <null>.\n    Each node may have an optional @key (but only if the node is a child of <map>.\n    Nodes must be in the namespace http://www.w3.org/2005/xpath-functions\n\n    See https://www.w3.org/TR/xslt-30/#json-to-xml-mapping for some examples.\n\n    In addition to the usual JSON elements, a <raw> tag has been added. Contents of the <raw> tag\n    are passed directly through and printed (though leading indentation is still applied).\n\n    Example:\n    ```\n    <map xmlns=\"http://www.w3.org/2005/xpath-functions\">\n        <number key=\"Sunday\">\n            1\n        </number>\n        <boolean key=\"Wednesday\">\n            true\n        </boolean>\n        <boolean key=\"Wednesday\">\n        </boolean>\n        <null key=\"Monday\" />\n        <array key=\"content\">\n            <map>\n                <number key=\"id\">\n                    70805774\n                </number>\n                <string key=\"value\">1  0\\\"01\"fo\\o &gt;&#xa;bar</string>\n                <array key=\"position\">\n                    <number>\n                        1004.0\n                    </number>\n                    <number>\n                        288.0\n                    </number>\n                    <number>\n                        1050.0\n                    </number>\n                    <number>\n                        324.0\n                    </number>\n                </array>\n            </map>\n        </array>\n    </map>\n    ```\n    will produce in the document\n    ```\n    {\n       \"Sunday\": 1,\n       \"Wednesday\": true,\n       \"Wednesday\": false,\n       \"Monday\": null,\n       \"content\": [\n          {\n             \"id\": 70805774,\n             \"value\": \"1  0\\\\\\\"01\\\"fo\\\\o >\\nbar\",\n             \"position\": [\n                1004.0,\n                288.0,\n                1050.0,\n                324.0\n             ]\n          }\n       ]\n    }\n    ```\n\n    For debuggining, it can be helpful to have xsltproc run whenever this file changes. If you\n    are on linux and have inotifywait installed, you can run\n    `while inotifywait -e close_write xml-to-json.xsl; do xsltproc xml-to-json.xsl sample-data.xml;\ndone`\n    where `sample-data.xml` is the JSON data you're converting.\n-->\n\n<xsl:stylesheet version=\"1.0\"\n    xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n    xmlns:fn=\"http://www.w3.org/2005/xpath-functions\"\n    xmlns:exsl=\"http://exslt.org/common\"\n>\n    <xsl:output method=\"text\" encoding=\"utf-8\" />\n    <xsl:preserve-space elements=\"fn:string\" />\n\n\n    <!-- This is the main template that should be called to output\n         JSON from the structured XML content. -->\n    <xsl:template name=\"json\">\n        <xsl:param name=\"content\" />\n        <xsl:param name=\"indentDepth\" select=\"0\" />\n        <xsl:variable name=\"output\">\n            <xsl:apply-templates select=\"exsl:node-set($content)/*\" />\n        </xsl:variable>\n        <xsl:variable name=\"indentation\">\n            <xsl:call-template name=\"indent\">\n                <xsl:with-param name=\"depth\" select=\"$indentDepth\" />\n            </xsl:call-template></xsl:variable>\n        <xsl:call-template name=\"printIndented\">\n            <xsl:with-param name=\"indent\" select=\"$indentation\" />\n            <xsl:with-param name=\"text\" select=\"$output\" />\n        </xsl:call-template>\n    </xsl:template>\n\n    <xsl:template match=\"fn:raw\">\n        <xsl:apply-templates select=\"@key\" mode=\"attr\" />\n        <xsl:value-of select=\".\" />\n    </xsl:template>\n\n    <xsl:template match=\"fn:null\">\n        <xsl:apply-templates select=\"@key\" mode=\"attr\" />\n        <xsl:text>null</xsl:text>\n    </xsl:template>\n\n    <xsl:template match=\"fn:boolean\">\n        <xsl:apply-templates select=\"@key\" mode=\"attr\" />\n        <xsl:choose>\n            <xsl:when test=\"normalize-space(text()) = 'false'\">\n                <xsl:text>false</xsl:text>\n            </xsl:when>\n            <xsl:when test=\"normalize-space(text()) = '0'\">\n                <xsl:text>false</xsl:text>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:text>true</xsl:text>\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:template>\n\n    <xsl:template match=\"fn:number\">\n        <xsl:apply-templates select=\"@key\" mode=\"attr\" />\n        <xsl:value-of select=\"normalize-space(text())\" />\n    </xsl:template>\n\n    <xsl:template match=\"fn:string\">\n        <xsl:apply-templates select=\"@key\" mode=\"attr\" />\n        <xsl:text>\"</xsl:text>\n        <xsl:call-template name=\"escape-for-json\" />\n        <xsl:text>\"</xsl:text>\n    </xsl:template>\n\n    <xsl:template match=\"fn:array\">\n        <xsl:variable name=\"depth\" select=\"count(ancestor::*)\" />\n        <xsl:apply-templates\n            select=\"@key\"\n            mode=\"attr\" />\n        <xsl:text>[&#xa;</xsl:text>\n        <xsl:for-each select=\"./*\">\n            <xsl:call-template name=\"indent\">\n                <xsl:with-param name=\"depth\" select=\"$depth+1\"></xsl:with-param>\n            </xsl:call-template>\n            <xsl:apply-templates select=\".\" />\n            <xsl:if test=\"not(position() = last())\">\n                <xsl:text>,&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:call-template name=\"indent\">\n            <xsl:with-param name=\"depth\" select=\"$depth\"></xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>]</xsl:text>\n    </xsl:template>\n\n    <xsl:template match=\"fn:map\">\n        <xsl:variable name=\"depth\" select=\"count(ancestor::*)\" />\n        <xsl:apply-templates select=\"@key\" mode=\"attr\" />\n        <xsl:text>{&#xa;</xsl:text>\n        <xsl:for-each select=\"./*\">\n            <xsl:call-template name=\"indent\">\n                <xsl:with-param name=\"depth\" select=\"$depth+1\"></xsl:with-param>\n            </xsl:call-template>\n            <xsl:apply-templates select=\".\" />\n            <xsl:if test=\"not(position() = last())\">\n                <xsl:text>,&#xa;</xsl:text>\n            </xsl:if>\n        </xsl:for-each>\n        <xsl:text>&#xa;</xsl:text>\n        <xsl:call-template name=\"indent\">\n            <xsl:with-param name=\"depth\" select=\"$depth\"></xsl:with-param>\n        </xsl:call-template>\n        <xsl:text>}</xsl:text>\n    </xsl:template>\n\n\n    <!-- Wrap any @key in quotes. No special care is taken to escape the key name,\n         so make it sensible right from the get-go! -->\n    <xsl:template match=\"@key\" mode=\"attr\">\n        <xsl:text>\"</xsl:text>\n        <xsl:value-of select=\".\" />\n        <xsl:text>\": </xsl:text>\n    </xsl:template>\n\n    <!-- 2 paces of indentation for each $depth -->\n    <xsl:template name=\"indent\">\n        <xsl:param name=\"depth\" select=\"'0'\" />\n\n        <xsl:call-template name=\"duplicate-string\">\n             <xsl:with-param name=\"text\" select=\"'  '\"/>\n             <xsl:with-param name=\"count\" select=\"$depth\" />\n        </xsl:call-template>\n    </xsl:template>\n\n    <!-- Escape strings for JSON. This process first escapes backslashes,\n         then escapes quotes (\") and finally escapes newlines. Other characters\n         should be valid JSON -->\n    <xsl:template name=\"escape-for-json\">\n        <xsl:param name=\"pText\" select=\".\" />\n        <xsl:variable name=\"escaped1\">\n            <xsl:call-template name=\"escapeBackslash\">\n                <xsl:with-param name=\"pText\" select=\"$pText\" />\n            </xsl:call-template>\n        </xsl:variable>\n        <xsl:variable name=\"escaped2\">\n            <xsl:call-template name=\"escapeQuotes\">\n                <xsl:with-param name=\"pText\" select=\"$escaped1\" />\n            </xsl:call-template>\n        </xsl:variable>\n        <xsl:variable name=\"escaped3\">\n            <xsl:call-template name=\"escapeNewlines\">\n                <xsl:with-param name=\"pText\" select=\"$escaped2\" />\n            </xsl:call-template>\n        </xsl:variable>\n        <xsl:value-of select=\"$escaped3\" />\n    </xsl:template>\n\n    <xsl:template name=\"escapeBackslash\">\n        <xsl:param name=\"pText\" select=\".\" />\n        <xsl:variable name=\"head\" select=\"substring-before($pText, '\\')\" />\n        <xsl:variable name=\"tail\" select=\"substring-after($pText, '\\')\" />\n        <xsl:choose>\n            <xsl:when test=\"$head or $tail\">\n                <xsl:value-of select=\"$head\" />\n                <xsl:text>\\\\</xsl:text>\n                <xsl:call-template name=\"escapeBackslash\">\n                    <xsl:with-param name=\"pText\" select=\"$tail\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$pText\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:template>\n\n    <xsl:template name=\"escapeQuotes\">\n        <xsl:param name=\"pText\" select=\".\" />\n        <xsl:variable name=\"head\" select=\"substring-before($pText, '&quot;')\" />\n        <xsl:variable name=\"tail\" select=\"substring-after($pText, '&quot;')\" />\n        <xsl:choose>\n            <xsl:when test=\"$head or $tail\">\n                <xsl:value-of select=\"$head\" />\n                <xsl:text>\\\"</xsl:text>\n                <xsl:call-template name=\"escapeQuotes\">\n                    <xsl:with-param name=\"pText\" select=\"$tail\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$pText\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:template>\n\n    <xsl:template name=\"escapeNewlines\">\n        <xsl:param name=\"pText\" select=\".\" />\n        <xsl:variable name=\"head\" select=\"substring-before($pText, '&#xa;')\" />\n        <xsl:variable name=\"tail\" select=\"substring-after($pText, '&#xa;')\" />\n        <xsl:choose>\n            <xsl:when test=\"$head or $tail\">\n                <xsl:value-of select=\"$head\" />\n                <xsl:text>\\n</xsl:text>\n                <xsl:call-template name=\"escapeNewlines\">\n                    <xsl:with-param name=\"pText\" select=\"$tail\" />\n                </xsl:call-template>\n            </xsl:when>\n            <xsl:otherwise>\n                <xsl:value-of select=\"$pText\" />\n            </xsl:otherwise>\n        </xsl:choose>\n    </xsl:template>\n\n    <!-- This function is from Stack Overflow\n    https://stackoverflow.com/questions/24513266/indent-multi-line-blocks-of-xsltext\n    CC-BY-SA license -->\n    <xsl:template name=\"printIndented\">\n        <xsl:param name=\"text\" />\n        <xsl:param name=\"indent\" />\n\n        <xsl:if test=\"$text\">\n            <xsl:value-of select=\"$indent\" />\n            <xsl:variable name=\"thisLine\" select=\"substring-before($text, '&#10;')\" />\n            <xsl:choose>\n                <xsl:when test=\"$thisLine\"><!-- $text contains at least one newline -->\n                    <!-- print this line -->\n                    <xsl:value-of select=\"concat($thisLine, '&#10;')\" />\n                    <!-- and recurse to process the rest -->\n                    <xsl:call-template name=\"printIndented\">\n                        <xsl:with-param name=\"text\" select=\"substring-after($text, '&#10;')\" />\n                        <xsl:with-param name=\"indent\" select=\"$indent\" />\n                    </xsl:call-template>\n                </xsl:when>\n                <xsl:otherwise>\n                    <xsl:value-of select=\"$text\" />\n                </xsl:otherwise>\n            </xsl:choose>\n        </xsl:if>\n    </xsl:template>\n</xsl:stylesheet>\n"
  },
  {
    "path": "xsl/xml-to-string.xsl",
    "content": "<!--\nCopyright (c) 2001-2009, Evan Lenz\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n    * Neither the name of Lenz Consulting Group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n\n\t    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nRecent changes:\n\n2010-06-10: Added the $force-exclude-all-namespaces parameter\n2009-10-19: Added the $exclude-these-namespaces parameter \n2009-10-08: Added $att-value parameter and template name to template rule for attributes.\n\n2025-05-27: PreTeXt, R. Beezer.  Escaped \"greater-than\".\n\n-->\n<xsl:stylesheet version=\"1.0\"\n  xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n\n  <xsl:output omit-xml-declaration=\"yes\"/>\n\n  <xsl:param name=\"use-empty-syntax\" select=\"true()\"/>\n  <xsl:param name=\"exclude-unused-prefixes\" select=\"true()\"/>\n\n  <xsl:param name=\"force-exclude-all-namespaces\" select=\"false()\"/>\n\n  <!-- a node-set; each node's string-value\n       will be interpreted as a namespace URI to be\n       excluded from the serialization. -->\n  <xsl:param name=\"namespaces-to-exclude\" select=\"/..\"/>\n                                          <!-- initialized to empty node-set -->\n\n  <xsl:param name=\"start-tag-start\"     select=\"'&lt;'\"/>\n  <xsl:param name=\"start-tag-end\"       select=\"'>'\"/>\n  <xsl:param name=\"empty-tag-end\"       select=\"'/>'\"/>\n  <xsl:param name=\"end-tag-start\"       select=\"'&lt;/'\"/>\n  <xsl:param name=\"end-tag-end\"         select=\"'>'\"/>\n  <xsl:param name=\"space\"               select=\"' '\"/>\n  <xsl:param name=\"ns-decl\"             select=\"'xmlns'\"/>\n  <xsl:param name=\"colon\"               select=\"':'\"/>\n  <xsl:param name=\"equals\"              select=\"'='\"/>\n  <xsl:param name=\"attribute-delimiter\" select=\"'&quot;'\"/>\n  <xsl:param name=\"comment-start\"       select=\"'&lt;!--'\"/>\n  <xsl:param name=\"comment-end\"         select=\"'-->'\"/>\n  <xsl:param name=\"pi-start\"            select=\"'&lt;?'\"/>\n  <xsl:param name=\"pi-end\"              select=\"'?>'\"/>\n\n  <xsl:template name=\"xml-to-string\">\n    <xsl:param name=\"node-set\" select=\".\"/>\n    <xsl:apply-templates select=\"$node-set\" mode=\"xml-to-string\">\n      <xsl:with-param name=\"depth\" select=\"1\"/>\n    </xsl:apply-templates>\n  </xsl:template>\n\n  <xsl:template match=\"/\" name=\"xml-to-string-root-rule\">\n    <xsl:call-template name=\"xml-to-string\"/>\n  </xsl:template>\n\n  <xsl:template match=\"/\" mode=\"xml-to-string\">\n    <xsl:param name=\"depth\"/>\n    <xsl:apply-templates mode=\"xml-to-string\">\n      <xsl:with-param name=\"depth\" select=\"$depth\"/>\n    </xsl:apply-templates>\n  </xsl:template>\n\n  <xsl:template match=\"*\" mode=\"xml-to-string\">\n    <xsl:param name=\"depth\"/>\n    <xsl:variable name=\"element\" select=\".\"/>\n    <xsl:value-of select=\"$start-tag-start\"/>\n    <xsl:call-template name=\"element-name\">\n      <xsl:with-param name=\"text\" select=\"name()\"/>\n    </xsl:call-template>\n    <xsl:apply-templates select=\"@*\" mode=\"xml-to-string\"/>\n    <xsl:if test=\"not($force-exclude-all-namespaces)\">\n      <xsl:for-each select=\"namespace::*\">\n        <xsl:call-template name=\"process-namespace-node\">\n          <xsl:with-param name=\"element\" select=\"$element\"/>\n          <xsl:with-param name=\"depth\" select=\"$depth\"/>\n        </xsl:call-template>\n      </xsl:for-each>\n    </xsl:if>\n    <xsl:choose>\n      <xsl:when test=\"node() or not($use-empty-syntax)\">\n        <xsl:value-of select=\"$start-tag-end\"/>\n        <xsl:apply-templates mode=\"xml-to-string\">\n          <xsl:with-param name=\"depth\" select=\"$depth + 1\"/>\n        </xsl:apply-templates>\n        <xsl:value-of select=\"$end-tag-start\"/>\n        <xsl:call-template name=\"element-name\">\n          <xsl:with-param name=\"text\" select=\"name()\"/>\n        </xsl:call-template>\n        <xsl:value-of select=\"$end-tag-end\"/>\n      </xsl:when>\n      <xsl:otherwise>\n        <xsl:value-of select=\"$empty-tag-end\"/>\n      </xsl:otherwise>\n    </xsl:choose>\n  </xsl:template>\n\n  <xsl:template name=\"process-namespace-node\">\n    <xsl:param name=\"element\"/>\n    <xsl:param name=\"depth\"/>\n    <xsl:variable name=\"declaredAbove\">\n      <xsl:call-template name=\"isDeclaredAbove\">\n        <xsl:with-param name=\"depth\" select=\"$depth - 1\"/>\n        <xsl:with-param name=\"element\" select=\"$element/..\"/>\n      </xsl:call-template>\n    </xsl:variable>\n\n    <xsl:variable name=\"is-used-on-this-element\" select=\"($element    | $element/@*) [namespace-uri() = current()]\"/>\n    <xsl:variable name=\"is-used-on-a-descendant\" select=\"($element//* | $element//@*)[namespace-uri() = current()]\"/>          \n    <xsl:variable name=\"is-unused\" select=\"not($is-used-on-this-element) and\n                                           not($is-used-on-a-descendant)\"/>\n    <xsl:variable name=\"exclude-ns\" select=\"($is-unused and $exclude-unused-prefixes) or\n                                            (. = $namespaces-to-exclude)\"/>\n\n    <xsl:variable name=\"force-include\" select=\"$is-used-on-this-element and (. = $namespaces-to-exclude)\"/>\n\n    <xsl:if test=\"(name() != 'xml') and ($force-include or (not($exclude-ns) and not(string($declaredAbove))))\">\n      <xsl:value-of select=\"$space\"/>\n      <xsl:value-of select=\"$ns-decl\"/>\n      <xsl:if test=\"name()\">\n        <xsl:value-of select=\"$colon\"/>\n        <xsl:call-template name=\"ns-prefix\">\n          <xsl:with-param name=\"text\" select=\"name()\"/>\n        </xsl:call-template>\n      </xsl:if>\n      <xsl:value-of select=\"$equals\"/>\n      <xsl:value-of select=\"$attribute-delimiter\"/>\n      <xsl:call-template name=\"ns-uri\">\n        <xsl:with-param name=\"text\" select=\"string(.)\"/>\n      </xsl:call-template>\n      <xsl:value-of select=\"$attribute-delimiter\"/>\n    </xsl:if>\n  </xsl:template>\n\n  <xsl:template name=\"isDeclaredAbove\">\n    <xsl:param name=\"element\"/>\n    <xsl:param name=\"depth\"/>\n    <xsl:if test=\"$depth > 0\">\n      <xsl:choose>\n        <xsl:when test=\"$element/namespace::*[name(.)=name(current()) and .=current()]\">1</xsl:when>\n        <xsl:when test=\"$element/namespace::*[name(.)=name(current())]\"/>\n        <xsl:otherwise>\n          <xsl:call-template name=\"isDeclaredAbove\">\n            <xsl:with-param name=\"depth\" select=\"$depth - 1\"/>\n            <xsl:with-param name=\"element\" select=\"$element/..\"/>\n          </xsl:call-template>\n        </xsl:otherwise>\n      </xsl:choose>\n    </xsl:if>\n  </xsl:template>\n\n  <xsl:template match=\"@*\" mode=\"xml-to-string\" name=\"serialize-attribute\">\n    <xsl:param name=\"att-value\" select=\"string(.)\"/>\n    <xsl:value-of select=\"$space\"/>\n    <xsl:call-template name=\"attribute-name\">\n      <xsl:with-param name=\"text\" select=\"name()\"/>\n    </xsl:call-template>\n    <xsl:value-of select=\"$equals\"/>\n    <xsl:value-of select=\"$attribute-delimiter\"/>\n    <xsl:call-template name=\"attribute-value\">\n      <xsl:with-param name=\"text\" select=\"$att-value\"/>\n    </xsl:call-template>\n    <xsl:value-of select=\"$attribute-delimiter\"/>\n  </xsl:template>\n\n  <xsl:template match=\"comment()\" mode=\"xml-to-string\">\n    <xsl:value-of select=\"$comment-start\"/>\n    <xsl:call-template name=\"comment-text\">\n      <xsl:with-param name=\"text\" select=\"string(.)\"/>\n    </xsl:call-template>\n    <xsl:value-of select=\"$comment-end\"/>\n  </xsl:template>\n\n  <xsl:template match=\"processing-instruction()\" mode=\"xml-to-string\">\n    <xsl:value-of select=\"$pi-start\"/>\n    <xsl:call-template name=\"pi-target\">\n      <xsl:with-param name=\"text\" select=\"name()\"/>\n    </xsl:call-template>\n    <xsl:value-of select=\"$space\"/>\n    <xsl:call-template name=\"pi-text\">\n      <xsl:with-param name=\"text\" select=\"string(.)\"/>\n    </xsl:call-template>\n    <xsl:value-of select=\"$pi-end\"/>\n  </xsl:template>\n\n  <xsl:template match=\"text()\" mode=\"xml-to-string\">\n    <xsl:call-template name=\"text-content\">\n      <xsl:with-param name=\"text\" select=\"string(.)\"/>\n    </xsl:call-template>\n  </xsl:template>\n\n  <xsl:template name=\"element-name\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n  </xsl:template>\n\n  <xsl:template name=\"attribute-name\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n  </xsl:template>\n\n  <xsl:template name=\"attribute-value\">\n    <xsl:param name=\"text\"/>\n    <xsl:variable name=\"escaped-markup\">\n      <xsl:call-template name=\"escape-markup-characters\">\n        <xsl:with-param name=\"text\" select=\"$text\"/>\n      </xsl:call-template>\n    </xsl:variable>\n    <xsl:choose>\n      <xsl:when test=\"$attribute-delimiter = &quot;'&quot;\">\n        <xsl:call-template name=\"replace-string\">\n          <xsl:with-param name=\"text\" select=\"$escaped-markup\"/>\n          <xsl:with-param name=\"replace\" select=\"&quot;'&quot;\"/>\n          <xsl:with-param name=\"with\" select=\"'&amp;apos;'\"/>\n        </xsl:call-template>\n      </xsl:when>\n      <xsl:when test=\"$attribute-delimiter = '&quot;'\">\n        <xsl:call-template name=\"replace-string\">\n          <xsl:with-param name=\"text\" select=\"$escaped-markup\"/>\n          <xsl:with-param name=\"replace\" select=\"'&quot;'\"/>\n          <xsl:with-param name=\"with\" select=\"'&amp;quot;'\"/>\n        </xsl:call-template>\n      </xsl:when>\n      <xsl:otherwise>\n        <xsl:call-template name=\"replace-string\">\n          <xsl:with-param name=\"text\" select=\"$escaped-markup\"/>\n          <xsl:with-param name=\"replace\" select=\"$attribute-delimiter\"/>\n          <xsl:with-param name=\"with\" select=\"''\"/>\n        </xsl:call-template>\n      </xsl:otherwise>\n    </xsl:choose>\n  </xsl:template>\n\n  <xsl:template name=\"ns-prefix\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n  </xsl:template>\n\n  <xsl:template name=\"ns-uri\">\n    <xsl:param name=\"text\"/>\n    <xsl:call-template name=\"attribute-value\">\n      <xsl:with-param name=\"text\" select=\"$text\"/>\n    </xsl:call-template>\n  </xsl:template>\n\n  <xsl:template name=\"text-content\">\n    <xsl:param name=\"text\"/>\n    <xsl:call-template name=\"escape-markup-characters\">\n      <xsl:with-param name=\"text\" select=\"$text\"/>\n    </xsl:call-template>\n  </xsl:template>\n\n  <xsl:template name=\"pi-target\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n  </xsl:template>\n\n  <xsl:template name=\"pi-text\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n  </xsl:template>\n\n  <xsl:template name=\"comment-text\">\n    <xsl:param name=\"text\"/>\n    <xsl:value-of select=\"$text\"/>\n  </xsl:template>\n\n  <xsl:template name=\"escape-markup-characters\">\n    <xsl:param name=\"text\"/>\n    <xsl:variable name=\"ampEscaped\">\n      <xsl:call-template name=\"replace-string\">\n        <xsl:with-param name=\"text\" select=\"$text\"/>\n        <xsl:with-param name=\"replace\" select=\"'&amp;'\"/>\n        <xsl:with-param name=\"with\" select=\"'&amp;amp;'\"/>\n      </xsl:call-template>\n    </xsl:variable>\n    <xsl:variable name=\"ltEscaped\">\n      <xsl:call-template name=\"replace-string\">\n        <xsl:with-param name=\"text\" select=\"$ampEscaped\"/>\n        <xsl:with-param name=\"replace\" select=\"'&lt;'\"/>\n        <xsl:with-param name=\"with\" select=\"'&amp;lt;'\"/>\n      </xsl:call-template>\n    </xsl:variable>\n    <!-- 2025-05-27: PreTeXt, R. Beezer.  Escaped \"greater-than\". -->\n    <!-- Inserted new step w/ \"gtEscaped\" variable                -->\n    <xsl:variable name=\"gtEscaped\">\n      <xsl:call-template name=\"replace-string\">\n        <xsl:with-param name=\"text\" select=\"$ltEscaped\"/>\n        <xsl:with-param name=\"replace\" select=\"'&gt;'\"/>\n        <xsl:with-param name=\"with\" select=\"'&amp;gt;'\"/>\n      </xsl:call-template>\n    </xsl:variable>\n    <xsl:call-template name=\"replace-string\">\n      <xsl:with-param name=\"text\" select=\"$gtEscaped\"/>\n      <xsl:with-param name=\"replace\" select=\"']]>'\"/>\n      <xsl:with-param name=\"with\" select=\"']]&amp;gt;'\"/>\n    </xsl:call-template>\n  </xsl:template>\n\n  <xsl:template name=\"replace-string\">\n    <xsl:param name=\"text\"/>\n    <xsl:param name=\"replace\"/>\n    <xsl:param name=\"with\"/>\n    <xsl:variable name=\"stringText\" select=\"string($text)\"/>\n    <xsl:choose>\n      <xsl:when test=\"contains($stringText,$replace)\">\n        <xsl:value-of select=\"substring-before($stringText,$replace)\"/>\n        <xsl:value-of select=\"$with\"/>\n        <xsl:call-template name=\"replace-string\">\n          <xsl:with-param name=\"text\" select=\"substring-after($stringText,$replace)\"/>\n          <xsl:with-param name=\"replace\" select=\"$replace\"/>\n          <xsl:with-param name=\"with\" select=\"$with\"/>\n        </xsl:call-template>\n      </xsl:when>\n      <xsl:otherwise>\n        <xsl:value-of select=\"$stringText\"/>\n      </xsl:otherwise>\n    </xsl:choose>\n  </xsl:template>\n\n</xsl:stylesheet>\n"
  }
]